{"version":3,"file":"./js/index.bundle.js","mappings":";;;;;;;;;;;;;;AAAA;AACAA,kDAAA,CAAW,CAACC,8CAAD,EAAaC,8CAAb,EAAyBC,8CAAzB,CAAX;AACA;CAGA;;AACA,IAAIH,8CAAJ,CAAW,iBAAX,EAA8B;AAC5BK,EAAAA,IAAI,EAAE,IADsB;AAE5BC,EAAAA,aAAa,EAAE,CAFa;AAG5BC,EAAAA,YAAY,EAAE,CAHc;AAI5BC,EAAAA,WAAW,EAAE;AACX,SAAK;AACHF,MAAAA,aAAa,EAAE;AADZ,KADM;AAIX,SAAK;AACHA,MAAAA,aAAa,EAAE;AADZ;AAJM;AAJe,CAA9B,GAcA;;AACA,IAAIN,8CAAJ,CAAW,eAAX,EAA4B;AAC1BM,EAAAA,aAAa,EAAE,CADW;AAE1BC,EAAAA,YAAY,EAAE,EAFY;AAG1BF,EAAAA,IAAI,EAAE,IAHoB;AAI1BG,EAAAA,WAAW,EAAE;AACX,SAAK;AACHF,MAAAA,aAAa,EAAE,CADZ;AAEHC,MAAAA,YAAY,EAAE;AAFX,KADM;AAKX,SAAK;AACHD,MAAAA,aAAa,EAAE,CADZ;AAEHC,MAAAA,YAAY,EAAE,EAFX;AAGHF,MAAAA,IAAI,EAAE;AAHH;AALM;AAJa,CAA5B,GAiBA;;AACA,IAAIL,8CAAJ,CAAW,mBAAX,EAAgC;AAC9BM,EAAAA,aAAa,EAAE,CADe;AAE9BG,EAAAA,KAAK,EAAE,GAFuB;AAG9BC,EAAAA,MAAM,EAAE,MAHsB;AAI9BL,EAAAA,IAAI,EAAE,IAJwB;AAK9BM,EAAAA,UAAU,EAAE;AACVC,IAAAA,SAAS,EAAE;AADD,GALkB;AAQ9BC,EAAAA,UAAU,EAAE;AACVC,IAAAA,EAAE,EAAE,uBADM;AAEVC,IAAAA,SAAS,EAAE;AAFD,GARkB;AAY9BC,EAAAA,UAAU,EAAE;AACVC,IAAAA,MAAM,EAAE,uBADE;AAEVC,IAAAA,MAAM,EAAE;AAFE;AAZkB,CAAhC,GAkBA;;AACA,IAAIlB,8CAAJ,CAAW,wBAAX,EAAqC;AACnCM,EAAAA,aAAa,EAAE,CADoB;AAEnCG,EAAAA,KAAK,EAAE,GAF4B;AAGnCC,EAAAA,MAAM,EAAE,MAH2B;AAInCL,EAAAA,IAAI,EAAE,IAJ6B;AAKnCM,EAAAA,UAAU,EAAE;AACVC,IAAAA,SAAS,EAAE;AADD,GALuB;AAQnCC,EAAAA,UAAU,EAAE;AACVC,IAAAA,EAAE,EAAE,4BADM;AAEVC,IAAAA,SAAS,EAAE;AAFD,GARuB;AAYnCC,EAAAA,UAAU,EAAE;AACVC,IAAAA,MAAM,EAAE,0BADE;AAEVC,IAAAA,MAAM,EAAE;AAFE;AAZuB,CAArC,GAkBA;;AACA,IAAIlB,8CAAJ,CAAW,4BAAX,EAAyC;AACvCM,EAAAA,aAAa,EAAE,CADwB;AAEvCD,EAAAA,IAAI,EAAE,IAFiC;AAGvCG,EAAAA,WAAW,EAAE;AACX,SAAK;AACHF,MAAAA,aAAa,EAAE;AADZ,KADM;AAIX,SAAK;AACHA,MAAAA,aAAa,EAAE;AADZ,KAJM;AAOX,UAAM;AACJA,MAAAA,aAAa,EAAE;AADX;AAPK,GAH0B;AAcvCU,EAAAA,UAAU,EAAE;AACVC,IAAAA,MAAM,EAAE,8BADE;AAEVC,IAAAA,MAAM,EAAE;AAFE;AAd2B,CAAzC,GAoBA;;AACA,IAAMC,QAAQ,GAAGC,QAAQ,CAACC,gBAAT,CAA0B,sBAA1B,CAAjB;AACAC,MAAM,CAACC,gBAAP,CAAwB,QAAxB,EAAkCC,cAAlC;;AAEA,SAASA,cAAT,GAA0B;AACxB,MAAIC,OAAO,GAAGH,MAAM,CAACI,WAArB;AAEAP,EAAAA,QAAQ,CAACQ,OAAT,CAAiB,UAACC,OAAD,EAAa;AAC5B,QAAMC,aAAa,GAAGD,OAAO,CAACE,YAA9B;AAEA,QAAMC,UAAU,GACdH,OAAO,CAACI,qBAAR,GAAgCC,GAAhC,GAAsCX,MAAM,CAACI,WAA7C,GAA2D,GAD7D;AAEA,QAAIQ,SAAS,GAAGN,OAAO,CAACO,EAAxB;;AAEA,QAAIV,OAAO,GAAGM,UAAV,IAAwBN,OAAO,IAAIM,UAAU,GAAGF,aAApD,EAAmE;AACjET,MAAAA,QAAQ,CACLgB,aADH,CACiB,4BAA4BF,SAA5B,GAAwC,GADzD,EAEGG,SAFH,CAEaC,GAFb,CAEiB,QAFjB;AAGD,KAJD,MAIO;AACLlB,MAAAA,QAAQ,CACLgB,aADH,CACiB,4BAA4BF,SAA5B,GAAwC,GADzD,EAEGG,SAFH,CAEaE,MAFb,CAEoB,QAFpB;AAGD;AACF,GAhBD;AAiBD;;AAED,IAAIC,SAAS,GAAGpB,QAAQ,CAACC,gBAAT,CAA0B,YAA1B,CAAhB;AACA,IAAIoB,QAAQ,GAAGrB,QAAQ,CAACC,gBAAT,CAA0B,UAA1B,CAAf;;2BAESqB;AACPF,EAAAA,SAAS,CAACE,CAAD,CAAT,CAAanB,gBAAb,CAA8B,OAA9B,EAAuC,UAAUoB,CAAV,EAAa;AAClD,QAAIH,SAAS,CAACE,CAAD,CAAT,CAAaL,SAAb,CAAuBO,KAAvB,KAAiC,QAArC,EAA+C;AAC7CJ,MAAAA,SAAS,CAACE,CAAD,CAAT,CAAaG,aAAb,CAA2BR,SAA3B,CAAqCE,MAArC,CAA4C,QAA5C;AACAI,MAAAA,CAAC,CAACG,eAAF;AACD,KAHD,MAGO;AACLN,MAAAA,SAAS,CAACE,CAAD,CAAT,CAAaN,aAAb,CAA2B,UAA3B,EAAuCC,SAAvC,CAAiDC,GAAjD,CAAqD,QAArD;AACD;AACF,GAPD;;;AADF,KAAK,IAAII,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,SAAS,CAACO,MAA9B,EAAsCL,CAAC,EAAvC,EAA2C;AAAA,QAAlCA,CAAkC;AAS1C;;AAEDtB,QAAQ,CACLgB,aADH,CACiB,qBADjB,EAEGb,gBAFH,CAEoB,OAFpB,EAE6B,YAAY;AACrCH,EAAAA,QAAQ,CAACgB,aAAT,CAAuB,MAAvB,EAA+BC,SAA/B,CAAyCW,MAAzC,CAAgD,OAAhD;;AAEA,MAAI,CAAC5B,QAAQ,CAACgB,aAAT,CAAuB,MAAvB,EAA+BC,SAA/B,CAAyCY,QAAzC,CAAkD,OAAlD,CAAL,EAAiE;AAC/D,SAAK,IAAIP,EAAC,GAAG,CAAb,EAAgBA,EAAC,GAAGD,QAAQ,CAACM,MAA7B,EAAqCL,EAAC,EAAtC,EAA0C;AACxCD,MAAAA,QAAQ,CAACC,EAAD,CAAR,CAAYL,SAAZ,CAAsBE,MAAtB,CAA6B,QAA7B;AACD;AACF;AACF,CAVH;;AAYA,IAAInB,QAAQ,CAACgB,aAAT,CAAuB,gBAAvB,CAAJ,EAA8C;AAC5ChB,EAAAA,QAAQ,CACLgB,aADH,CACiB,gBADjB,EAEGb,gBAFH,CAEoB,OAFpB,EAE6B,YAAY;AACrCH,IAAAA,QAAQ,CAACgB,aAAT,CAAuB,UAAvB,EAAmCC,SAAnC,CAA6CC,GAA7C,CAAiD,QAAjD;AACAlB,IAAAA,QAAQ,CAACgB,aAAT,CAAuB,MAAvB,EAA+BC,SAA/B,CAAyCC,GAAzC,CAA6C,OAA7C;AACD,GALH;AAMD;;AAED,IAAIlB,QAAQ,CAACgB,aAAT,CAAuB,gBAAvB,CAAJ,EAA8C;AAC5ChB,EAAAA,QAAQ,CACLgB,aADH,CACiB,gBADjB,EAEGb,gBAFH,CAEoB,OAFpB,EAE6B,YAAY;AACrCH,IAAAA,QAAQ,CAACgB,aAAT,CAAuB,UAAvB,EAAmCC,SAAnC,CAA6CE,MAA7C,CAAoD,QAApD;AACAnB,IAAAA,QAAQ,CAACgB,aAAT,CAAuB,MAAvB,EAA+BC,SAA/B,CAAyCE,MAAzC,CAAgD,OAAhD;AACD,GALH;AAMD;;AAED,IAAIW,cAAc,GAAG9B,QAAQ,CAACC,gBAAT,CAA0B,sBAA1B,CAArB;;AAEA,KAAK,IAAIqB,GAAC,GAAG,CAAb,EAAgBA,GAAC,GAAGQ,cAAc,CAACH,MAAnC,EAA2CL,GAAC,EAA5C,EAAgD;AAC9CQ,EAAAA,cAAc,CAACR,GAAD,CAAd,CAAkBnB,gBAAlB,CAAmC,OAAnC,EAA4C,YAAY;AACtD,SAAKc,SAAL,CAAeC,GAAf,CAAmB,QAAnB;AACD,GAFD;AAGD;;AAEDlB,QAAQ,CAACG,gBAAT,CAA0B,QAA1B,EAAoC,YAAY;AAC9C,MAAIH,QAAQ,CAACgB,aAAT,CAAuB,gBAAvB,CAAJ,EAA8C;AAC5C,QAAIe,WAAW,GAAG/B,QAAQ,CAACgB,aAAT,CAAuB,gBAAvB,CAAlB;AACA,QAAIgB,cAAc,GAAGD,WAAW,CAACnB,qBAAZ,GAAoCC,GAAzD;AACA,QAAIoB,aAAa,GAAGjC,QAAQ,CAACgB,aAAT,CAAuB,kBAAvB,CAApB;;AAEA,QAAIgB,cAAc,GAAG,EAArB,EAAyB;AACvBC,MAAAA,aAAa,CAAChB,SAAd,CAAwBE,MAAxB,CAA+B,QAA/B;AACAY,MAAAA,WAAW,CAACd,SAAZ,CAAsBE,MAAtB,CAA6B,QAA7B;AACD,KAHD,MAGO;AACLc,MAAAA,aAAa,CAAChB,SAAd,CAAwBC,GAAxB,CAA4B,QAA5B;AACAa,MAAAA,WAAW,CAACd,SAAZ,CAAsBC,GAAtB,CAA0B,QAA1B;AACD;AACF;AACF,CAdD;AAgBA,IAAIgB,iBAAiB,GAAGlC,QAAQ,CAACC,gBAAT,CAA0B,yBAA1B,CAAxB;;AAEA,IAAIiC,iBAAJ,EAAuB;AACrB,OAAK,IAAIZ,GAAC,GAAG,CAAb,EAAgBA,GAAC,GAAGY,iBAAiB,CAACP,MAAtC,EAA8CL,GAAC,EAA/C,EAAmD;AACjDY,IAAAA,iBAAiB,CAACZ,GAAD,CAAjB,CAAqBnB,gBAArB,CAAsC,OAAtC,EAA+C,YAAY;AACzD,WAAKc,SAAL,CAAeW,MAAf,CAAsB,QAAtB;AACD,KAFD;AAGD;AACF;;AAED5B,QAAQ,CACLgB,aADH,CACiB,wCADjB,EAEGb,gBAFH,CAEoB,OAFpB,EAE6B,YAAY;AACrCH,EAAAA,QAAQ,CACLgB,aADH,CACiB,4CADjB,EAEGC,SAFH,CAEaC,GAFb,CAEiB,QAFjB;AAGD,CANH;AAQAlB,QAAQ,CACLgB,aADH,CACiB,0CADjB,EAEGb,gBAFH,CAEoB,OAFpB,EAE6B,YAAY;AACrCH,EAAAA,QAAQ,CACLgB,aADH,CACiB,4CADjB,EAEGC,SAFH,CAEaE,MAFb,CAEoB,QAFpB;AAGD,CANH;;;;;;;;;;;;;;ACjNA,iEAAe,qBAAuB,gBAAgB;;;;;;;;;;;;;;ACAtD,iEAAe,qBAAuB,qBAAqB;;;;;;;;;;;ACA3D;;;;;;;;;;;;ACAA;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;AACA,SAASkB,YAAT,CAAsBC,GAAtB,EAA2B;AACzB,QAAMC,KAAK,GAAGD,GAAG,CAACE,SAAlB;AACAC,EAAAA,MAAM,CAACC,cAAP,CAAsBJ,GAAtB,EAA2B,WAA3B,EAAwC;AACtCK,IAAAA,GAAG,GAAG;AACJ,aAAOJ,KAAP;AACD,KAHqC;;AAKtCK,IAAAA,GAAG,CAACpB,KAAD,EAAQ;AACTe,MAAAA,KAAK,CAACC,SAAN,GAAkBhB,KAAlB;AACD;;AAPqC,GAAxC;AAUD;;AAED,MAAMqB,IAAN,SAAmBC,KAAnB,CAAyB;AACvBC,EAAAA,WAAW,CAACC,KAAD,EAAQ;AACjB,UAAM,IAAIA,KAAK,IAAI,EAAb,CAAN;AACAX,IAAAA,YAAY,CAAC,IAAD,CAAZ;AACD;;AAJsB;;AAQzB,SAASY,SAAT,CAAmBC,GAAG,GAAG,EAAzB,EAA6B;AAC3B,QAAMC,GAAG,GAAG,EAAZ;AACAD,EAAAA,GAAG,CAAC3C,OAAJ,CAAYb,EAAE,IAAI;AAChB,QAAIoD,KAAK,CAACM,OAAN,CAAc1D,EAAd,CAAJ,EAAuB;AACrByD,MAAAA,GAAG,CAACE,IAAJ,CAAS,GAAGJ,SAAS,CAACvD,EAAD,CAArB;AACD,KAFD,MAEO;AACLyD,MAAAA,GAAG,CAACE,IAAJ,CAAS3D,EAAT;AACD;AACF,GAND;AAOA,SAAOyD,GAAP;AACD;;AACD,SAASG,WAAT,CAAqBJ,GAArB,EAA0BK,QAA1B,EAAoC;AAClC,SAAOT,KAAK,CAACU,SAAN,CAAgBC,MAAhB,CAAuBC,IAAvB,CAA4BR,GAA5B,EAAiCK,QAAjC,CAAP;AACD;;AACD,SAASI,WAAT,CAAqBT,GAArB,EAA0B;AACxB,QAAMU,WAAW,GAAG,EAApB;;AAEA,OAAK,IAAItC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4B,GAAG,CAACvB,MAAxB,EAAgCL,CAAC,IAAI,CAArC,EAAwC;AACtC,QAAIsC,WAAW,CAACC,OAAZ,CAAoBX,GAAG,CAAC5B,CAAD,CAAvB,MAAgC,CAAC,CAArC,EAAwCsC,WAAW,CAACP,IAAZ,CAAiBH,GAAG,CAAC5B,CAAD,CAApB;AACzC;;AAED,SAAOsC,WAAP;AACD;;AACD,SAASE,WAAT,CAAqBC,MAArB,EAA6B;AAC3B,SAAOA,MAAM,CAACC,WAAP,GAAqBC,OAArB,CAA6B,OAA7B,EAAsC,CAACC,KAAD,EAAQC,KAAR,KAAkBA,KAAK,CAACC,WAAN,EAAxD,CAAP;AACD,EAED;;;AAEA,SAASC,GAAT,CAAaC,QAAb,EAAuBC,OAAvB,EAAgC;AAC9B,MAAI,OAAOD,QAAP,KAAoB,QAAxB,EAAkC;AAChC,WAAO,CAACA,QAAD,CAAP;AACD;;AAED,QAAME,CAAC,GAAG,EAAV;AACA,QAAMrB,GAAG,GAAGoB,OAAO,CAACtE,gBAAR,CAAyBqE,QAAzB,CAAZ;;AAEA,OAAK,IAAIhD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6B,GAAG,CAACxB,MAAxB,EAAgCL,CAAC,IAAI,CAArC,EAAwC;AACtCkD,IAAAA,CAAC,CAACnB,IAAF,CAAOF,GAAG,CAAC7B,CAAD,CAAV;AACD;;AAED,SAAOkD,CAAP;AACD;;AAED,SAASC,CAAT,CAAWH,QAAX,EAAqBC,OAArB,EAA8B;AAC5B,QAAMrE,MAAM,GAAGiC,qDAAS,EAAxB;AACA,QAAMnC,QAAQ,GAAGoC,uDAAW,EAA5B;AACA,MAAIc,GAAG,GAAG,EAAV;;AAEA,MAAI,CAACqB,OAAD,IAAYD,QAAQ,YAAYzB,IAApC,EAA0C;AACxC,WAAOyB,QAAP;AACD;;AAED,MAAI,CAACA,QAAL,EAAe;AACb,WAAO,IAAIzB,IAAJ,CAASK,GAAT,CAAP;AACD;;AAED,MAAI,OAAOoB,QAAP,KAAoB,QAAxB,EAAkC;AAChC,UAAMI,IAAI,GAAGJ,QAAQ,CAACK,IAAT,EAAb;;AAEA,QAAID,IAAI,CAACb,OAAL,CAAa,GAAb,KAAqB,CAArB,IAA0Ba,IAAI,CAACb,OAAL,CAAa,GAAb,KAAqB,CAAnD,EAAsD;AACpD,UAAIe,QAAQ,GAAG,KAAf;AACA,UAAIF,IAAI,CAACb,OAAL,CAAa,KAAb,MAAwB,CAA5B,EAA+Be,QAAQ,GAAG,IAAX;AAC/B,UAAIF,IAAI,CAACb,OAAL,CAAa,KAAb,MAAwB,CAA5B,EAA+Be,QAAQ,GAAG,OAAX;AAC/B,UAAIF,IAAI,CAACb,OAAL,CAAa,KAAb,MAAwB,CAAxB,IAA6Ba,IAAI,CAACb,OAAL,CAAa,KAAb,MAAwB,CAAzD,EAA4De,QAAQ,GAAG,IAAX;AAC5D,UAAIF,IAAI,CAACb,OAAL,CAAa,QAAb,MAA2B,CAA/B,EAAkCe,QAAQ,GAAG,OAAX;AAClC,UAAIF,IAAI,CAACb,OAAL,CAAa,SAAb,MAA4B,CAAhC,EAAmCe,QAAQ,GAAG,QAAX;AACnC,YAAMC,UAAU,GAAG7E,QAAQ,CAAC8E,aAAT,CAAuBF,QAAvB,CAAnB;AACAC,MAAAA,UAAU,CAACE,SAAX,GAAuBL,IAAvB;;AAEA,WAAK,IAAIpD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuD,UAAU,CAACG,UAAX,CAAsBrD,MAA1C,EAAkDL,CAAC,IAAI,CAAvD,EAA0D;AACxD4B,QAAAA,GAAG,CAACG,IAAJ,CAASwB,UAAU,CAACG,UAAX,CAAsB1D,CAAtB,CAAT;AACD;AACF,KAbD,MAaO;AACL4B,MAAAA,GAAG,GAAGmB,GAAG,CAACC,QAAQ,CAACK,IAAT,EAAD,EAAkBJ,OAAO,IAAIvE,QAA7B,CAAT;AACD,KAlB+B,CAkB9B;;AAEH,GApBD,MAoBO,IAAIsE,QAAQ,CAACW,QAAT,IAAqBX,QAAQ,KAAKpE,MAAlC,IAA4CoE,QAAQ,KAAKtE,QAA7D,EAAuE;AAC5EkD,IAAAA,GAAG,CAACG,IAAJ,CAASiB,QAAT;AACD,GAFM,MAEA,IAAIxB,KAAK,CAACM,OAAN,CAAckB,QAAd,CAAJ,EAA6B;AAClC,QAAIA,QAAQ,YAAYzB,IAAxB,EAA8B,OAAOyB,QAAP;AAC9BpB,IAAAA,GAAG,GAAGoB,QAAN;AACD;;AAED,SAAO,IAAIzB,IAAJ,CAASc,WAAW,CAACT,GAAD,CAApB,CAAP;AACD;;AAEDuB,CAAC,CAACS,EAAF,GAAOrC,IAAI,CAACW,SAAZ,EAEA;;AAEA,SAAS2B,QAAT,CAAkB,GAAGC,OAArB,EAA8B;AAC5B,QAAMC,UAAU,GAAGpC,SAAS,CAACmC,OAAO,CAACE,GAAR,CAAYC,CAAC,IAAIA,CAAC,CAACC,KAAF,CAAQ,GAAR,CAAjB,CAAD,CAA5B;AACA,OAAKjF,OAAL,CAAab,EAAE,IAAI;AACjBA,IAAAA,EAAE,CAACuB,SAAH,CAAaC,GAAb,CAAiB,GAAGmE,UAApB;AACD,GAFD;AAGA,SAAO,IAAP;AACD;;AAED,SAASI,WAAT,CAAqB,GAAGL,OAAxB,EAAiC;AAC/B,QAAMC,UAAU,GAAGpC,SAAS,CAACmC,OAAO,CAACE,GAAR,CAAYC,CAAC,IAAIA,CAAC,CAACC,KAAF,CAAQ,GAAR,CAAjB,CAAD,CAA5B;AACA,OAAKjF,OAAL,CAAab,EAAE,IAAI;AACjBA,IAAAA,EAAE,CAACuB,SAAH,CAAaE,MAAb,CAAoB,GAAGkE,UAAvB;AACD,GAFD;AAGA,SAAO,IAAP;AACD;;AAED,SAASK,WAAT,CAAqB,GAAGN,OAAxB,EAAiC;AAC/B,QAAMC,UAAU,GAAGpC,SAAS,CAACmC,OAAO,CAACE,GAAR,CAAYC,CAAC,IAAIA,CAAC,CAACC,KAAF,CAAQ,GAAR,CAAjB,CAAD,CAA5B;AACA,OAAKjF,OAAL,CAAab,EAAE,IAAI;AACjB2F,IAAAA,UAAU,CAAC9E,OAAX,CAAmBoF,SAAS,IAAI;AAC9BjG,MAAAA,EAAE,CAACuB,SAAH,CAAaW,MAAb,CAAoB+D,SAApB;AACD,KAFD;AAGD,GAJD;AAKD;;AAED,SAASC,QAAT,CAAkB,GAAGR,OAArB,EAA8B;AAC5B,QAAMC,UAAU,GAAGpC,SAAS,CAACmC,OAAO,CAACE,GAAR,CAAYC,CAAC,IAAIA,CAAC,CAACC,KAAF,CAAQ,GAAR,CAAjB,CAAD,CAA5B;AACA,SAAOlC,WAAW,CAAC,IAAD,EAAO5D,EAAE,IAAI;AAC7B,WAAO2F,UAAU,CAAC5B,MAAX,CAAkBkC,SAAS,IAAIjG,EAAE,CAACuB,SAAH,CAAaY,QAAb,CAAsB8D,SAAtB,CAA/B,EAAiEhE,MAAjE,GAA0E,CAAjF;AACD,GAFiB,CAAX,CAEJA,MAFI,GAEK,CAFZ;AAGD;;AAED,SAASkE,IAAT,CAAcC,KAAd,EAAqBtE,KAArB,EAA4B;AAC1B,MAAIuE,SAAS,CAACpE,MAAV,KAAqB,CAArB,IAA0B,OAAOmE,KAAP,KAAiB,QAA/C,EAAyD;AACvD;AACA,QAAI,KAAK,CAAL,CAAJ,EAAa,OAAO,KAAK,CAAL,EAAQE,YAAR,CAAqBF,KAArB,CAAP;AACb,WAAOG,SAAP;AACD,GALyB,CAKxB;;;AAGF,OAAK,IAAI3E,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKK,MAAzB,EAAiCL,CAAC,IAAI,CAAtC,EAAyC;AACvC,QAAIyE,SAAS,CAACpE,MAAV,KAAqB,CAAzB,EAA4B;AAC1B;AACA,WAAKL,CAAL,EAAQ4E,YAAR,CAAqBJ,KAArB,EAA4BtE,KAA5B;AACD,KAHD,MAGO;AACL;AACA,WAAK,MAAM2E,QAAX,IAAuBL,KAAvB,EAA8B;AAC5B,aAAKxE,CAAL,EAAQ6E,QAAR,IAAoBL,KAAK,CAACK,QAAD,CAAzB;AACA,aAAK7E,CAAL,EAAQ4E,YAAR,CAAqBC,QAArB,EAA+BL,KAAK,CAACK,QAAD,CAApC;AACD;AACF;AACF;;AAED,SAAO,IAAP;AACD;;AAED,SAASC,UAAT,CAAoBP,IAApB,EAA0B;AACxB,OAAK,IAAIvE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKK,MAAzB,EAAiCL,CAAC,IAAI,CAAtC,EAAyC;AACvC,SAAKA,CAAL,EAAQ+E,eAAR,CAAwBR,IAAxB;AACD;;AAED,SAAO,IAAP;AACD;;AAED,SAASS,IAAT,CAAcC,KAAd,EAAqB/E,KAArB,EAA4B;AAC1B,MAAIuE,SAAS,CAACpE,MAAV,KAAqB,CAArB,IAA0B,OAAO4E,KAAP,KAAiB,QAA/C,EAAyD;AACvD;AACA,QAAI,KAAK,CAAL,CAAJ,EAAa,OAAO,KAAK,CAAL,EAAQA,KAAR,CAAP;AACd,GAHD,MAGO;AACL;AACA,SAAK,IAAIjF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKK,MAAzB,EAAiCL,CAAC,IAAI,CAAtC,EAAyC;AACvC,UAAIyE,SAAS,CAACpE,MAAV,KAAqB,CAAzB,EAA4B;AAC1B;AACA,aAAKL,CAAL,EAAQiF,KAAR,IAAiB/E,KAAjB;AACD,OAHD,MAGO;AACL;AACA,aAAK,MAAMgF,QAAX,IAAuBD,KAAvB,EAA8B;AAC5B,eAAKjF,CAAL,EAAQkF,QAAR,IAAoBD,KAAK,CAACC,QAAD,CAAzB;AACD;AACF;AACF;;AAED,WAAO,IAAP;AACD;;AAED,SAAO,IAAP;AACD;;AAED,SAASC,IAAT,CAAcC,GAAd,EAAmBlF,KAAnB,EAA0B;AACxB,MAAI9B,EAAJ;;AAEA,MAAI,OAAO8B,KAAP,KAAiB,WAArB,EAAkC;AAChC9B,IAAAA,EAAE,GAAG,KAAK,CAAL,CAAL;AACA,QAAI,CAACA,EAAL,EAAS,OAAOuG,SAAP,CAFuB,CAEL;;AAE3B,QAAIvG,EAAE,CAACiH,sBAAH,IAA6BD,GAAG,IAAIhH,EAAE,CAACiH,sBAA3C,EAAmE;AACjE,aAAOjH,EAAE,CAACiH,sBAAH,CAA0BD,GAA1B,CAAP;AACD;;AAED,UAAME,OAAO,GAAGlH,EAAE,CAACsG,YAAH,CAAiB,QAAOU,GAAI,EAA5B,CAAhB;;AAEA,QAAIE,OAAJ,EAAa;AACX,aAAOA,OAAP;AACD;;AAED,WAAOX,SAAP;AACD,GAlBuB,CAkBtB;;;AAGF,OAAK,IAAI3E,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKK,MAAzB,EAAiCL,CAAC,IAAI,CAAtC,EAAyC;AACvC5B,IAAAA,EAAE,GAAG,KAAK4B,CAAL,CAAL;AACA,QAAI,CAAC5B,EAAE,CAACiH,sBAAR,EAAgCjH,EAAE,CAACiH,sBAAH,GAA4B,EAA5B;AAChCjH,IAAAA,EAAE,CAACiH,sBAAH,CAA0BD,GAA1B,IAAiClF,KAAjC;AACD;;AAED,SAAO,IAAP;AACD;;AAED,SAASqF,UAAT,CAAoBH,GAApB,EAAyB;AACvB,OAAK,IAAIpF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKK,MAAzB,EAAiCL,CAAC,IAAI,CAAtC,EAAyC;AACvC,UAAM5B,EAAE,GAAG,KAAK4B,CAAL,CAAX;;AAEA,QAAI5B,EAAE,CAACiH,sBAAH,IAA6BjH,EAAE,CAACiH,sBAAH,CAA0BD,GAA1B,CAAjC,EAAiE;AAC/DhH,MAAAA,EAAE,CAACiH,sBAAH,CAA0BD,GAA1B,IAAiC,IAAjC;AACA,aAAOhH,EAAE,CAACiH,sBAAH,CAA0BD,GAA1B,CAAP;AACD;AACF;AACF;;AAED,SAASI,OAAT,GAAmB;AACjB,QAAMpH,EAAE,GAAG,KAAK,CAAL,CAAX;AACA,MAAI,CAACA,EAAL,EAAS,OAAOuG,SAAP;AACT,QAAMa,OAAO,GAAG,EAAhB,CAHiB,CAGG;;AAEpB,MAAIpH,EAAE,CAACoH,OAAP,EAAgB;AACd,SAAK,MAAMF,OAAX,IAAsBlH,EAAE,CAACoH,OAAzB,EAAkC;AAChCA,MAAAA,OAAO,CAACF,OAAD,CAAP,GAAmBlH,EAAE,CAACoH,OAAH,CAAWF,OAAX,CAAnB;AACD;AACF,GAJD,MAIO;AACL,SAAK,IAAItF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG5B,EAAE,CAACqH,UAAH,CAAcpF,MAAlC,EAA0CL,CAAC,IAAI,CAA/C,EAAkD;AAChD,YAAMuE,IAAI,GAAGnG,EAAE,CAACqH,UAAH,CAAczF,CAAd,CAAb;;AAEA,UAAIuE,IAAI,CAACmB,IAAL,CAAUnD,OAAV,CAAkB,OAAlB,KAA8B,CAAlC,EAAqC;AACnCiD,QAAAA,OAAO,CAAChD,WAAW,CAAC+B,IAAI,CAACmB,IAAL,CAAUxB,KAAV,CAAgB,OAAhB,EAAyB,CAAzB,CAAD,CAAZ,CAAP,GAAoDK,IAAI,CAACrE,KAAzD;AACD;AACF;AACF;;AAED,OAAK,MAAMkF,GAAX,IAAkBI,OAAlB,EAA2B;AACzB,QAAIA,OAAO,CAACJ,GAAD,CAAP,KAAiB,OAArB,EAA8BI,OAAO,CAACJ,GAAD,CAAP,GAAe,KAAf,CAA9B,KAAwD,IAAII,OAAO,CAACJ,GAAD,CAAP,KAAiB,MAArB,EAA6BI,OAAO,CAACJ,GAAD,CAAP,GAAe,IAAf,CAA7B,KAAsD,IAAIO,UAAU,CAACH,OAAO,CAACJ,GAAD,CAAR,CAAV,KAA6BI,OAAO,CAACJ,GAAD,CAAP,GAAe,CAAhD,EAAmDI,OAAO,CAACJ,GAAD,CAAP,IAAgB,CAAhB;AAClK;;AAED,SAAOI,OAAP;AACD;;AAED,SAASI,GAAT,CAAa1F,KAAb,EAAoB;AAClB,MAAI,OAAOA,KAAP,KAAiB,WAArB,EAAkC;AAChC;AACA,UAAM9B,EAAE,GAAG,KAAK,CAAL,CAAX;AACA,QAAI,CAACA,EAAL,EAAS,OAAOuG,SAAP;;AAET,QAAIvG,EAAE,CAACyH,QAAH,IAAezH,EAAE,CAAC0H,QAAH,CAAYpD,WAAZ,OAA8B,QAAjD,EAA2D;AACzD,YAAMqD,MAAM,GAAG,EAAf;;AAEA,WAAK,IAAI/F,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG5B,EAAE,CAAC4H,eAAH,CAAmB3F,MAAvC,EAA+CL,CAAC,IAAI,CAApD,EAAuD;AACrD+F,QAAAA,MAAM,CAAChE,IAAP,CAAY3D,EAAE,CAAC4H,eAAH,CAAmBhG,CAAnB,EAAsBE,KAAlC;AACD;;AAED,aAAO6F,MAAP;AACD;;AAED,WAAO3H,EAAE,CAAC8B,KAAV;AACD,GAjBiB,CAiBhB;;;AAGF,OAAK,IAAIF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKK,MAAzB,EAAiCL,CAAC,IAAI,CAAtC,EAAyC;AACvC,UAAM5B,EAAE,GAAG,KAAK4B,CAAL,CAAX;;AAEA,QAAIwB,KAAK,CAACM,OAAN,CAAc5B,KAAd,KAAwB9B,EAAE,CAACyH,QAA3B,IAAuCzH,EAAE,CAAC0H,QAAH,CAAYpD,WAAZ,OAA8B,QAAzE,EAAmF;AACjF,WAAK,IAAIuD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG7H,EAAE,CAAC8H,OAAH,CAAW7F,MAA/B,EAAuC4F,CAAC,IAAI,CAA5C,EAA+C;AAC7C7H,QAAAA,EAAE,CAAC8H,OAAH,CAAWD,CAAX,EAAcE,QAAd,GAAyBjG,KAAK,CAACqC,OAAN,CAAcnE,EAAE,CAAC8H,OAAH,CAAWD,CAAX,EAAc/F,KAA5B,KAAsC,CAA/D;AACD;AACF,KAJD,MAIO;AACL9B,MAAAA,EAAE,CAAC8B,KAAH,GAAWA,KAAX;AACD;AACF;;AAED,SAAO,IAAP;AACD;;AAED,SAASA,KAAT,CAAeA,KAAf,EAAsB;AACpB,SAAO,KAAK0F,GAAL,CAAS1F,KAAT,CAAP;AACD;;AAED,SAASkG,SAAT,CAAmBA,SAAnB,EAA8B;AAC5B,OAAK,IAAIpG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKK,MAAzB,EAAiCL,CAAC,IAAI,CAAtC,EAAyC;AACvC,SAAKA,CAAL,EAAQqG,KAAR,CAAcD,SAAd,GAA0BA,SAA1B;AACD;;AAED,SAAO,IAAP;AACD;;AAED,SAASE,UAAT,CAAoBC,QAApB,EAA8B;AAC5B,OAAK,IAAIvG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKK,MAAzB,EAAiCL,CAAC,IAAI,CAAtC,EAAyC;AACvC,SAAKA,CAAL,EAAQqG,KAAR,CAAcG,kBAAd,GAAmC,OAAOD,QAAP,KAAoB,QAApB,GAAgC,GAAEA,QAAS,IAA3C,GAAiDA,QAApF;AACD;;AAED,SAAO,IAAP;AACD;;AAED,SAASE,EAAT,CAAY,GAAGC,IAAf,EAAqB;AACnB,MAAI,CAACC,SAAD,EAAYC,cAAZ,EAA4BC,QAA5B,EAAsCC,OAAtC,IAAiDJ,IAArD;;AAEA,MAAI,OAAOA,IAAI,CAAC,CAAD,CAAX,KAAmB,UAAvB,EAAmC;AACjC,KAACC,SAAD,EAAYE,QAAZ,EAAsBC,OAAtB,IAAiCJ,IAAjC;AACAE,IAAAA,cAAc,GAAGjC,SAAjB;AACD;;AAED,MAAI,CAACmC,OAAL,EAAcA,OAAO,GAAG,KAAV;;AAEd,WAASC,eAAT,CAAyB9G,CAAzB,EAA4B;AAC1B,UAAM+G,MAAM,GAAG/G,CAAC,CAAC+G,MAAjB;AACA,QAAI,CAACA,MAAL,EAAa;AACb,UAAMC,SAAS,GAAGhH,CAAC,CAAC+G,MAAF,CAASE,aAAT,IAA0B,EAA5C;;AAEA,QAAID,SAAS,CAAC1E,OAAV,CAAkBtC,CAAlB,IAAuB,CAA3B,EAA8B;AAC5BgH,MAAAA,SAAS,CAACE,OAAV,CAAkBlH,CAAlB;AACD;;AAED,QAAIkD,CAAC,CAAC6D,MAAD,CAAD,CAAUI,EAAV,CAAaR,cAAb,CAAJ,EAAkCC,QAAQ,CAACQ,KAAT,CAAeL,MAAf,EAAuBC,SAAvB,EAAlC,KAAyE;AACvE,YAAMK,OAAO,GAAGnE,CAAC,CAAC6D,MAAD,CAAD,CAAUM,OAAV,EAAhB,CADuE,CAClC;;AAErC,WAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGD,OAAO,CAACjH,MAA5B,EAAoCkH,CAAC,IAAI,CAAzC,EAA4C;AAC1C,YAAIpE,CAAC,CAACmE,OAAO,CAACC,CAAD,CAAR,CAAD,CAAcH,EAAd,CAAiBR,cAAjB,CAAJ,EAAsCC,QAAQ,CAACQ,KAAT,CAAeC,OAAO,CAACC,CAAD,CAAtB,EAA2BN,SAA3B;AACvC;AACF;AACF;;AAED,WAASO,WAAT,CAAqBvH,CAArB,EAAwB;AACtB,UAAMgH,SAAS,GAAGhH,CAAC,IAAIA,CAAC,CAAC+G,MAAP,GAAgB/G,CAAC,CAAC+G,MAAF,CAASE,aAAT,IAA0B,EAA1C,GAA+C,EAAjE;;AAEA,QAAID,SAAS,CAAC1E,OAAV,CAAkBtC,CAAlB,IAAuB,CAA3B,EAA8B;AAC5BgH,MAAAA,SAAS,CAACE,OAAV,CAAkBlH,CAAlB;AACD;;AAED4G,IAAAA,QAAQ,CAACQ,KAAT,CAAe,IAAf,EAAqBJ,SAArB;AACD;;AAED,QAAMQ,MAAM,GAAGd,SAAS,CAACzC,KAAV,CAAgB,GAAhB,CAAf;AACA,MAAI+B,CAAJ;;AAEA,OAAK,IAAIjG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKK,MAAzB,EAAiCL,CAAC,IAAI,CAAtC,EAAyC;AACvC,UAAM5B,EAAE,GAAG,KAAK4B,CAAL,CAAX;;AAEA,QAAI,CAAC4G,cAAL,EAAqB;AACnB,WAAKX,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGwB,MAAM,CAACpH,MAAvB,EAA+B4F,CAAC,IAAI,CAApC,EAAuC;AACrC,cAAMyB,KAAK,GAAGD,MAAM,CAACxB,CAAD,CAApB;AACA,YAAI,CAAC7H,EAAE,CAACuJ,aAAR,EAAuBvJ,EAAE,CAACuJ,aAAH,GAAmB,EAAnB;AACvB,YAAI,CAACvJ,EAAE,CAACuJ,aAAH,CAAiBD,KAAjB,CAAL,EAA8BtJ,EAAE,CAACuJ,aAAH,CAAiBD,KAAjB,IAA0B,EAA1B;AAC9BtJ,QAAAA,EAAE,CAACuJ,aAAH,CAAiBD,KAAjB,EAAwB3F,IAAxB,CAA6B;AAC3B8E,UAAAA,QAD2B;AAE3Be,UAAAA,aAAa,EAAEJ;AAFY,SAA7B;AAIApJ,QAAAA,EAAE,CAACS,gBAAH,CAAoB6I,KAApB,EAA2BF,WAA3B,EAAwCV,OAAxC;AACD;AACF,KAXD,MAWO;AACL;AACA,WAAKb,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGwB,MAAM,CAACpH,MAAvB,EAA+B4F,CAAC,IAAI,CAApC,EAAuC;AACrC,cAAMyB,KAAK,GAAGD,MAAM,CAACxB,CAAD,CAApB;AACA,YAAI,CAAC7H,EAAE,CAACyJ,iBAAR,EAA2BzJ,EAAE,CAACyJ,iBAAH,GAAuB,EAAvB;AAC3B,YAAI,CAACzJ,EAAE,CAACyJ,iBAAH,CAAqBH,KAArB,CAAL,EAAkCtJ,EAAE,CAACyJ,iBAAH,CAAqBH,KAArB,IAA8B,EAA9B;AAClCtJ,QAAAA,EAAE,CAACyJ,iBAAH,CAAqBH,KAArB,EAA4B3F,IAA5B,CAAiC;AAC/B8E,UAAAA,QAD+B;AAE/Be,UAAAA,aAAa,EAAEb;AAFgB,SAAjC;AAIA3I,QAAAA,EAAE,CAACS,gBAAH,CAAoB6I,KAApB,EAA2BX,eAA3B,EAA4CD,OAA5C;AACD;AACF;AACF;;AAED,SAAO,IAAP;AACD;;AAED,SAASgB,GAAT,CAAa,GAAGpB,IAAhB,EAAsB;AACpB,MAAI,CAACC,SAAD,EAAYC,cAAZ,EAA4BC,QAA5B,EAAsCC,OAAtC,IAAiDJ,IAArD;;AAEA,MAAI,OAAOA,IAAI,CAAC,CAAD,CAAX,KAAmB,UAAvB,EAAmC;AACjC,KAACC,SAAD,EAAYE,QAAZ,EAAsBC,OAAtB,IAAiCJ,IAAjC;AACAE,IAAAA,cAAc,GAAGjC,SAAjB;AACD;;AAED,MAAI,CAACmC,OAAL,EAAcA,OAAO,GAAG,KAAV;AACd,QAAMW,MAAM,GAAGd,SAAS,CAACzC,KAAV,CAAgB,GAAhB,CAAf;;AAEA,OAAK,IAAIlE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGyH,MAAM,CAACpH,MAA3B,EAAmCL,CAAC,IAAI,CAAxC,EAA2C;AACzC,UAAM0H,KAAK,GAAGD,MAAM,CAACzH,CAAD,CAApB;;AAEA,SAAK,IAAIiG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAK5F,MAAzB,EAAiC4F,CAAC,IAAI,CAAtC,EAAyC;AACvC,YAAM7H,EAAE,GAAG,KAAK6H,CAAL,CAAX;AACA,UAAI8B,QAAJ;;AAEA,UAAI,CAACnB,cAAD,IAAmBxI,EAAE,CAACuJ,aAA1B,EAAyC;AACvCI,QAAAA,QAAQ,GAAG3J,EAAE,CAACuJ,aAAH,CAAiBD,KAAjB,CAAX;AACD,OAFD,MAEO,IAAId,cAAc,IAAIxI,EAAE,CAACyJ,iBAAzB,EAA4C;AACjDE,QAAAA,QAAQ,GAAG3J,EAAE,CAACyJ,iBAAH,CAAqBH,KAArB,CAAX;AACD;;AAED,UAAIK,QAAQ,IAAIA,QAAQ,CAAC1H,MAAzB,EAAiC;AAC/B,aAAK,IAAIkH,CAAC,GAAGQ,QAAQ,CAAC1H,MAAT,GAAkB,CAA/B,EAAkCkH,CAAC,IAAI,CAAvC,EAA0CA,CAAC,IAAI,CAA/C,EAAkD;AAChD,gBAAMS,OAAO,GAAGD,QAAQ,CAACR,CAAD,CAAxB;;AAEA,cAAIV,QAAQ,IAAImB,OAAO,CAACnB,QAAR,KAAqBA,QAArC,EAA+C;AAC7CzI,YAAAA,EAAE,CAAC6J,mBAAH,CAAuBP,KAAvB,EAA8BM,OAAO,CAACJ,aAAtC,EAAqDd,OAArD;AACAiB,YAAAA,QAAQ,CAACG,MAAT,CAAgBX,CAAhB,EAAmB,CAAnB;AACD,WAHD,MAGO,IAAIV,QAAQ,IAAImB,OAAO,CAACnB,QAApB,IAAgCmB,OAAO,CAACnB,QAAR,CAAiBsB,SAAjD,IAA8DH,OAAO,CAACnB,QAAR,CAAiBsB,SAAjB,KAA+BtB,QAAjG,EAA2G;AAChHzI,YAAAA,EAAE,CAAC6J,mBAAH,CAAuBP,KAAvB,EAA8BM,OAAO,CAACJ,aAAtC,EAAqDd,OAArD;AACAiB,YAAAA,QAAQ,CAACG,MAAT,CAAgBX,CAAhB,EAAmB,CAAnB;AACD,WAHM,MAGA,IAAI,CAACV,QAAL,EAAe;AACpBzI,YAAAA,EAAE,CAAC6J,mBAAH,CAAuBP,KAAvB,EAA8BM,OAAO,CAACJ,aAAtC,EAAqDd,OAArD;AACAiB,YAAAA,QAAQ,CAACG,MAAT,CAAgBX,CAAhB,EAAmB,CAAnB;AACD;AACF;AACF;AACF;AACF;;AAED,SAAO,IAAP;AACD;;AAED,SAASa,IAAT,CAAc,GAAG1B,IAAjB,EAAuB;AACrB,QAAM2B,GAAG,GAAG,IAAZ;AACA,MAAI,CAACC,SAAD,EAAY1B,cAAZ,EAA4BC,QAA5B,EAAsCC,OAAtC,IAAiDJ,IAArD;;AAEA,MAAI,OAAOA,IAAI,CAAC,CAAD,CAAX,KAAmB,UAAvB,EAAmC;AACjC,KAAC4B,SAAD,EAAYzB,QAAZ,EAAsBC,OAAtB,IAAiCJ,IAAjC;AACAE,IAAAA,cAAc,GAAGjC,SAAjB;AACD;;AAED,WAAS4D,WAAT,CAAqB,GAAGC,SAAxB,EAAmC;AACjC3B,IAAAA,QAAQ,CAACQ,KAAT,CAAe,IAAf,EAAqBmB,SAArB;AACAH,IAAAA,GAAG,CAACP,GAAJ,CAAQQ,SAAR,EAAmB1B,cAAnB,EAAmC2B,WAAnC,EAAgDzB,OAAhD;;AAEA,QAAIyB,WAAW,CAACJ,SAAhB,EAA2B;AACzB,aAAOI,WAAW,CAACJ,SAAnB;AACD;AACF;;AAEDI,EAAAA,WAAW,CAACJ,SAAZ,GAAwBtB,QAAxB;AACA,SAAOwB,GAAG,CAAC5B,EAAJ,CAAO6B,SAAP,EAAkB1B,cAAlB,EAAkC2B,WAAlC,EAA+CzB,OAA/C,CAAP;AACD;;AAED,SAAS2B,OAAT,CAAiB,GAAG/B,IAApB,EAA0B;AACxB,QAAM9H,MAAM,GAAGiC,qDAAS,EAAxB;AACA,QAAM4G,MAAM,GAAGf,IAAI,CAAC,CAAD,CAAJ,CAAQxC,KAAR,CAAc,GAAd,CAAf;AACA,QAAM+C,SAAS,GAAGP,IAAI,CAAC,CAAD,CAAtB;;AAEA,OAAK,IAAI1G,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGyH,MAAM,CAACpH,MAA3B,EAAmCL,CAAC,IAAI,CAAxC,EAA2C;AACzC,UAAM0H,KAAK,GAAGD,MAAM,CAACzH,CAAD,CAApB;;AAEA,SAAK,IAAIiG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAK5F,MAAzB,EAAiC4F,CAAC,IAAI,CAAtC,EAAyC;AACvC,YAAM7H,EAAE,GAAG,KAAK6H,CAAL,CAAX;;AAEA,UAAIrH,MAAM,CAAC8J,WAAX,EAAwB;AACtB,cAAMC,GAAG,GAAG,IAAI/J,MAAM,CAAC8J,WAAX,CAAuBhB,KAAvB,EAA8B;AACxCkB,UAAAA,MAAM,EAAE3B,SADgC;AAExC4B,UAAAA,OAAO,EAAE,IAF+B;AAGxCC,UAAAA,UAAU,EAAE;AAH4B,SAA9B,CAAZ;AAKA1K,QAAAA,EAAE,CAAC8I,aAAH,GAAmBR,IAAI,CAACvE,MAAL,CAAY,CAACgD,IAAD,EAAO4D,SAAP,KAAqBA,SAAS,GAAG,CAA7C,CAAnB;AACA3K,QAAAA,EAAE,CAAC4K,aAAH,CAAiBL,GAAjB;AACAvK,QAAAA,EAAE,CAAC8I,aAAH,GAAmB,EAAnB;AACA,eAAO9I,EAAE,CAAC8I,aAAV;AACD;AACF;AACF;;AAED,SAAO,IAAP;AACD;;AAED,SAAS+B,aAAT,CAAuBhH,QAAvB,EAAiC;AAC/B,QAAMoG,GAAG,GAAG,IAAZ;;AAEA,WAASa,YAAT,CAAsBjJ,CAAtB,EAAyB;AACvB,QAAIA,CAAC,CAAC+G,MAAF,KAAa,IAAjB,EAAuB;AACvB/E,IAAAA,QAAQ,CAACG,IAAT,CAAc,IAAd,EAAoBnC,CAApB;AACAoI,IAAAA,GAAG,CAACP,GAAJ,CAAQ,eAAR,EAAyBoB,YAAzB;AACD;;AAED,MAAIjH,QAAJ,EAAc;AACZoG,IAAAA,GAAG,CAAC5B,EAAJ,CAAO,eAAP,EAAwByC,YAAxB;AACD;;AAED,SAAO,IAAP;AACD;;AAED,SAASC,YAAT,CAAsBlH,QAAtB,EAAgC;AAC9B,QAAMoG,GAAG,GAAG,IAAZ;;AAEA,WAASa,YAAT,CAAsBjJ,CAAtB,EAAyB;AACvB,QAAIA,CAAC,CAAC+G,MAAF,KAAa,IAAjB,EAAuB;AACvB/E,IAAAA,QAAQ,CAACG,IAAT,CAAc,IAAd,EAAoBnC,CAApB;AACAoI,IAAAA,GAAG,CAACP,GAAJ,CAAQ,cAAR,EAAwBoB,YAAxB;AACD;;AAED,MAAIjH,QAAJ,EAAc;AACZoG,IAAAA,GAAG,CAAC5B,EAAJ,CAAO,cAAP,EAAuByC,YAAvB;AACD;;AAED,SAAO,IAAP;AACD;;AAED,SAASE,KAAT,GAAiB;AACf,QAAMxK,MAAM,GAAGiC,qDAAS,EAAxB;;AAEA,MAAI,KAAK,CAAL,MAAYjC,MAAhB,EAAwB;AACtB,WAAOA,MAAM,CAACyK,UAAd;AACD;;AAED,MAAI,KAAKhJ,MAAL,GAAc,CAAlB,EAAqB;AACnB,WAAOsF,UAAU,CAAC,KAAK2D,GAAL,CAAS,OAAT,CAAD,CAAjB;AACD;;AAED,SAAO,IAAP;AACD;;AAED,SAASC,UAAT,CAAoBC,cAApB,EAAoC;AAClC,MAAI,KAAKnJ,MAAL,GAAc,CAAlB,EAAqB;AACnB,QAAImJ,cAAJ,EAAoB;AAClB,YAAMC,MAAM,GAAG,KAAKA,MAAL,EAAf;AACA,aAAO,KAAK,CAAL,EAAQC,WAAR,GAAsB/D,UAAU,CAAC8D,MAAM,CAACE,gBAAP,CAAwB,cAAxB,CAAD,CAAhC,GAA4EhE,UAAU,CAAC8D,MAAM,CAACE,gBAAP,CAAwB,aAAxB,CAAD,CAA7F;AACD;;AAED,WAAO,KAAK,CAAL,EAAQD,WAAf;AACD;;AAED,SAAO,IAAP;AACD;;AAED,SAASE,MAAT,GAAkB;AAChB,QAAMhL,MAAM,GAAGiC,qDAAS,EAAxB;;AAEA,MAAI,KAAK,CAAL,MAAYjC,MAAhB,EAAwB;AACtB,WAAOA,MAAM,CAACiL,WAAd;AACD;;AAED,MAAI,KAAKxJ,MAAL,GAAc,CAAlB,EAAqB;AACnB,WAAOsF,UAAU,CAAC,KAAK2D,GAAL,CAAS,QAAT,CAAD,CAAjB;AACD;;AAED,SAAO,IAAP;AACD;;AAED,SAASQ,WAAT,CAAqBN,cAArB,EAAqC;AACnC,MAAI,KAAKnJ,MAAL,GAAc,CAAlB,EAAqB;AACnB,QAAImJ,cAAJ,EAAoB;AAClB,YAAMC,MAAM,GAAG,KAAKA,MAAL,EAAf;AACA,aAAO,KAAK,CAAL,EAAQrK,YAAR,GAAuBuG,UAAU,CAAC8D,MAAM,CAACE,gBAAP,CAAwB,YAAxB,CAAD,CAAjC,GAA2EhE,UAAU,CAAC8D,MAAM,CAACE,gBAAP,CAAwB,eAAxB,CAAD,CAA5F;AACD;;AAED,WAAO,KAAK,CAAL,EAAQvK,YAAf;AACD;;AAED,SAAO,IAAP;AACD;;AAED,SAAS2K,MAAT,GAAkB;AAChB,MAAI,KAAK1J,MAAL,GAAc,CAAlB,EAAqB;AACnB,UAAMzB,MAAM,GAAGiC,qDAAS,EAAxB;AACA,UAAMnC,QAAQ,GAAGoC,uDAAW,EAA5B;AACA,UAAM1C,EAAE,GAAG,KAAK,CAAL,CAAX;AACA,UAAM4L,GAAG,GAAG5L,EAAE,CAACkB,qBAAH,EAAZ;AACA,UAAM2K,IAAI,GAAGvL,QAAQ,CAACuL,IAAtB;AACA,UAAMC,SAAS,GAAG9L,EAAE,CAAC8L,SAAH,IAAgBD,IAAI,CAACC,SAArB,IAAkC,CAApD;AACA,UAAMC,UAAU,GAAG/L,EAAE,CAAC+L,UAAH,IAAiBF,IAAI,CAACE,UAAtB,IAAoC,CAAvD;AACA,UAAMC,SAAS,GAAGhM,EAAE,KAAKQ,MAAP,GAAgBA,MAAM,CAACG,OAAvB,GAAiCX,EAAE,CAACgM,SAAtD;AACA,UAAMC,UAAU,GAAGjM,EAAE,KAAKQ,MAAP,GAAgBA,MAAM,CAAC0L,OAAvB,GAAiClM,EAAE,CAACiM,UAAvD;AACA,WAAO;AACL9K,MAAAA,GAAG,EAAEyK,GAAG,CAACzK,GAAJ,GAAU6K,SAAV,GAAsBF,SADtB;AAELK,MAAAA,IAAI,EAAEP,GAAG,CAACO,IAAJ,GAAWF,UAAX,GAAwBF;AAFzB,KAAP;AAID;;AAED,SAAO,IAAP;AACD;;AAED,SAASK,IAAT,GAAgB;AACd,OAAK,IAAIxK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKK,MAAzB,EAAiCL,CAAC,IAAI,CAAtC,EAAyC;AACvC,SAAKA,CAAL,EAAQqG,KAAR,CAAcoE,OAAd,GAAwB,MAAxB;AACD;;AAED,SAAO,IAAP;AACD;;AAED,SAASC,IAAT,GAAgB;AACd,QAAM9L,MAAM,GAAGiC,qDAAS,EAAxB;;AAEA,OAAK,IAAIb,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKK,MAAzB,EAAiCL,CAAC,IAAI,CAAtC,EAAyC;AACvC,UAAM5B,EAAE,GAAG,KAAK4B,CAAL,CAAX;;AAEA,QAAI5B,EAAE,CAACiI,KAAH,CAASoE,OAAT,KAAqB,MAAzB,EAAiC;AAC/BrM,MAAAA,EAAE,CAACiI,KAAH,CAASoE,OAAT,GAAmB,EAAnB;AACD;;AAED,QAAI7L,MAAM,CAAC+L,gBAAP,CAAwBvM,EAAxB,EAA4B,IAA5B,EAAkCuL,gBAAlC,CAAmD,SAAnD,MAAkE,MAAtE,EAA8E;AAC5E;AACAvL,MAAAA,EAAE,CAACiI,KAAH,CAASoE,OAAT,GAAmB,OAAnB;AACD;AACF;;AAED,SAAO,IAAP;AACD;;AAED,SAAShB,MAAT,GAAkB;AAChB,QAAM7K,MAAM,GAAGiC,qDAAS,EAAxB;AACA,MAAI,KAAK,CAAL,CAAJ,EAAa,OAAOjC,MAAM,CAAC+L,gBAAP,CAAwB,KAAK,CAAL,CAAxB,EAAiC,IAAjC,CAAP;AACb,SAAO,EAAP;AACD;;AAED,SAASrB,GAAT,CAAarE,KAAb,EAAoB/E,KAApB,EAA2B;AACzB,QAAMtB,MAAM,GAAGiC,qDAAS,EAAxB;AACA,MAAIb,CAAJ;;AAEA,MAAIyE,SAAS,CAACpE,MAAV,KAAqB,CAAzB,EAA4B;AAC1B,QAAI,OAAO4E,KAAP,KAAiB,QAArB,EAA+B;AAC7B;AACA,UAAI,KAAK,CAAL,CAAJ,EAAa,OAAOrG,MAAM,CAAC+L,gBAAP,CAAwB,KAAK,CAAL,CAAxB,EAAiC,IAAjC,EAAuChB,gBAAvC,CAAwD1E,KAAxD,CAAP;AACd,KAHD,MAGO;AACL;AACA,WAAKjF,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,KAAKK,MAArB,EAA6BL,CAAC,IAAI,CAAlC,EAAqC;AACnC,aAAK,MAAMgF,IAAX,IAAmBC,KAAnB,EAA0B;AACxB,eAAKjF,CAAL,EAAQqG,KAAR,CAAcrB,IAAd,IAAsBC,KAAK,CAACD,IAAD,CAA3B;AACD;AACF;;AAED,aAAO,IAAP;AACD;AACF;;AAED,MAAIP,SAAS,CAACpE,MAAV,KAAqB,CAArB,IAA0B,OAAO4E,KAAP,KAAiB,QAA/C,EAAyD;AACvD;AACA,SAAKjF,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,KAAKK,MAArB,EAA6BL,CAAC,IAAI,CAAlC,EAAqC;AACnC,WAAKA,CAAL,EAAQqG,KAAR,CAAcpB,KAAd,IAAuB/E,KAAvB;AACD;;AAED,WAAO,IAAP;AACD;;AAED,SAAO,IAAP;AACD;;AAED,SAAS0K,IAAT,CAAc3I,QAAd,EAAwB;AACtB,MAAI,CAACA,QAAL,EAAe,OAAO,IAAP;AACf,OAAKhD,OAAL,CAAa,CAACb,EAAD,EAAKyM,KAAL,KAAe;AAC1B5I,IAAAA,QAAQ,CAACoF,KAAT,CAAejJ,EAAf,EAAmB,CAACA,EAAD,EAAKyM,KAAL,CAAnB;AACD,GAFD;AAGA,SAAO,IAAP;AACD;;AAED,SAAS1I,MAAT,CAAgBF,QAAhB,EAA0B;AACxB,QAAM6I,MAAM,GAAG9I,WAAW,CAAC,IAAD,EAAOC,QAAP,CAA1B;AACA,SAAOkB,CAAC,CAAC2H,MAAD,CAAR;AACD;;AAED,SAAS1H,IAAT,CAAcA,IAAd,EAAoB;AAClB,MAAI,OAAOA,IAAP,KAAgB,WAApB,EAAiC;AAC/B,WAAO,KAAK,CAAL,IAAU,KAAK,CAAL,EAAQK,SAAlB,GAA8B,IAArC;AACD;;AAED,OAAK,IAAIzD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKK,MAAzB,EAAiCL,CAAC,IAAI,CAAtC,EAAyC;AACvC,SAAKA,CAAL,EAAQyD,SAAR,GAAoBL,IAApB;AACD;;AAED,SAAO,IAAP;AACD;;AAED,SAAS2H,IAAT,CAAcA,IAAd,EAAoB;AAClB,MAAI,OAAOA,IAAP,KAAgB,WAApB,EAAiC;AAC/B,WAAO,KAAK,CAAL,IAAU,KAAK,CAAL,EAAQC,WAAR,CAAoB3H,IAApB,EAAV,GAAuC,IAA9C;AACD;;AAED,OAAK,IAAIrD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKK,MAAzB,EAAiCL,CAAC,IAAI,CAAtC,EAAyC;AACvC,SAAKA,CAAL,EAAQgL,WAAR,GAAsBD,IAAtB;AACD;;AAED,SAAO,IAAP;AACD;;AAED,SAAS3D,EAAT,CAAYpE,QAAZ,EAAsB;AACpB,QAAMpE,MAAM,GAAGiC,qDAAS,EAAxB;AACA,QAAMnC,QAAQ,GAAGoC,uDAAW,EAA5B;AACA,QAAM1C,EAAE,GAAG,KAAK,CAAL,CAAX;AACA,MAAI6M,WAAJ;AACA,MAAIjL,CAAJ;AACA,MAAI,CAAC5B,EAAD,IAAO,OAAO4E,QAAP,KAAoB,WAA/B,EAA4C,OAAO,KAAP;;AAE5C,MAAI,OAAOA,QAAP,KAAoB,QAAxB,EAAkC;AAChC,QAAI5E,EAAE,CAAC8M,OAAP,EAAgB,OAAO9M,EAAE,CAAC8M,OAAH,CAAWlI,QAAX,CAAP;AAChB,QAAI5E,EAAE,CAAC+M,qBAAP,EAA8B,OAAO/M,EAAE,CAAC+M,qBAAH,CAAyBnI,QAAzB,CAAP;AAC9B,QAAI5E,EAAE,CAACgN,iBAAP,EAA0B,OAAOhN,EAAE,CAACgN,iBAAH,CAAqBpI,QAArB,CAAP;AAC1BiI,IAAAA,WAAW,GAAG9H,CAAC,CAACH,QAAD,CAAf;;AAEA,SAAKhD,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGiL,WAAW,CAAC5K,MAA5B,EAAoCL,CAAC,IAAI,CAAzC,EAA4C;AAC1C,UAAIiL,WAAW,CAACjL,CAAD,CAAX,KAAmB5B,EAAvB,EAA2B,OAAO,IAAP;AAC5B;;AAED,WAAO,KAAP;AACD;;AAED,MAAI4E,QAAQ,KAAKtE,QAAjB,EAA2B;AACzB,WAAON,EAAE,KAAKM,QAAd;AACD;;AAED,MAAIsE,QAAQ,KAAKpE,MAAjB,EAAyB;AACvB,WAAOR,EAAE,KAAKQ,MAAd;AACD;;AAED,MAAIoE,QAAQ,CAACW,QAAT,IAAqBX,QAAQ,YAAYzB,IAA7C,EAAmD;AACjD0J,IAAAA,WAAW,GAAGjI,QAAQ,CAACW,QAAT,GAAoB,CAACX,QAAD,CAApB,GAAiCA,QAA/C;;AAEA,SAAKhD,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGiL,WAAW,CAAC5K,MAA5B,EAAoCL,CAAC,IAAI,CAAzC,EAA4C;AAC1C,UAAIiL,WAAW,CAACjL,CAAD,CAAX,KAAmB5B,EAAvB,EAA2B,OAAO,IAAP;AAC5B;;AAED,WAAO,KAAP;AACD;;AAED,SAAO,KAAP;AACD;;AAED,SAASyM,KAAT,GAAiB;AACf,MAAIQ,KAAK,GAAG,KAAK,CAAL,CAAZ;AACA,MAAIrL,CAAJ;;AAEA,MAAIqL,KAAJ,EAAW;AACTrL,IAAAA,CAAC,GAAG,CAAJ,CADS,CACF;;AAEP,WAAO,CAACqL,KAAK,GAAGA,KAAK,CAACC,eAAf,MAAoC,IAA3C,EAAiD;AAC/C,UAAID,KAAK,CAAC1H,QAAN,KAAmB,CAAvB,EAA0B3D,CAAC,IAAI,CAAL;AAC3B;;AAED,WAAOA,CAAP;AACD;;AAED,SAAO2E,SAAP;AACD;;AAED,SAAS4G,EAAT,CAAYV,KAAZ,EAAmB;AACjB,MAAI,OAAOA,KAAP,KAAiB,WAArB,EAAkC,OAAO,IAAP;AAClC,QAAMxK,MAAM,GAAG,KAAKA,MAApB;;AAEA,MAAIwK,KAAK,GAAGxK,MAAM,GAAG,CAArB,EAAwB;AACtB,WAAO8C,CAAC,CAAC,EAAD,CAAR;AACD;;AAED,MAAI0H,KAAK,GAAG,CAAZ,EAAe;AACb,UAAMW,WAAW,GAAGnL,MAAM,GAAGwK,KAA7B;AACA,QAAIW,WAAW,GAAG,CAAlB,EAAqB,OAAOrI,CAAC,CAAC,EAAD,CAAR;AACrB,WAAOA,CAAC,CAAC,CAAC,KAAKqI,WAAL,CAAD,CAAD,CAAR;AACD;;AAED,SAAOrI,CAAC,CAAC,CAAC,KAAK0H,KAAL,CAAD,CAAD,CAAR;AACD;;AAED,SAASY,MAAT,CAAgB,GAAGC,GAAnB,EAAwB;AACtB,MAAIC,QAAJ;AACA,QAAMjN,QAAQ,GAAGoC,uDAAW,EAA5B;;AAEA,OAAK,IAAIyG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmE,GAAG,CAACrL,MAAxB,EAAgCkH,CAAC,IAAI,CAArC,EAAwC;AACtCoE,IAAAA,QAAQ,GAAGD,GAAG,CAACnE,CAAD,CAAd;;AAEA,SAAK,IAAIvH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKK,MAAzB,EAAiCL,CAAC,IAAI,CAAtC,EAAyC;AACvC,UAAI,OAAO2L,QAAP,KAAoB,QAAxB,EAAkC;AAChC,cAAMC,OAAO,GAAGlN,QAAQ,CAAC8E,aAAT,CAAuB,KAAvB,CAAhB;AACAoI,QAAAA,OAAO,CAACnI,SAAR,GAAoBkI,QAApB;;AAEA,eAAOC,OAAO,CAACC,UAAf,EAA2B;AACzB,eAAK7L,CAAL,EAAQ8L,WAAR,CAAoBF,OAAO,CAACC,UAA5B;AACD;AACF,OAPD,MAOO,IAAIF,QAAQ,YAAYpK,IAAxB,EAA8B;AACnC,aAAK,IAAI0E,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0F,QAAQ,CAACtL,MAA7B,EAAqC4F,CAAC,IAAI,CAA1C,EAA6C;AAC3C,eAAKjG,CAAL,EAAQ8L,WAAR,CAAoBH,QAAQ,CAAC1F,CAAD,CAA5B;AACD;AACF,OAJM,MAIA;AACL,aAAKjG,CAAL,EAAQ8L,WAAR,CAAoBH,QAApB;AACD;AACF;AACF;;AAED,SAAO,IAAP;AACD;;AAED,SAASI,QAAT,CAAkBC,MAAlB,EAA0B;AACxB7I,EAAAA,CAAC,CAAC6I,MAAD,CAAD,CAAUP,MAAV,CAAiB,IAAjB;AACA,SAAO,IAAP;AACD;;AAED,SAASQ,OAAT,CAAiBN,QAAjB,EAA2B;AACzB,QAAMjN,QAAQ,GAAGoC,uDAAW,EAA5B;AACA,MAAId,CAAJ;AACA,MAAIiG,CAAJ;;AAEA,OAAKjG,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,KAAKK,MAArB,EAA6BL,CAAC,IAAI,CAAlC,EAAqC;AACnC,QAAI,OAAO2L,QAAP,KAAoB,QAAxB,EAAkC;AAChC,YAAMC,OAAO,GAAGlN,QAAQ,CAAC8E,aAAT,CAAuB,KAAvB,CAAhB;AACAoI,MAAAA,OAAO,CAACnI,SAAR,GAAoBkI,QAApB;;AAEA,WAAK1F,CAAC,GAAG2F,OAAO,CAAClI,UAAR,CAAmBrD,MAAnB,GAA4B,CAArC,EAAwC4F,CAAC,IAAI,CAA7C,EAAgDA,CAAC,IAAI,CAArD,EAAwD;AACtD,aAAKjG,CAAL,EAAQkM,YAAR,CAAqBN,OAAO,CAAClI,UAAR,CAAmBuC,CAAnB,CAArB,EAA4C,KAAKjG,CAAL,EAAQ0D,UAAR,CAAmB,CAAnB,CAA5C;AACD;AACF,KAPD,MAOO,IAAIiI,QAAQ,YAAYpK,IAAxB,EAA8B;AACnC,WAAK0E,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG0F,QAAQ,CAACtL,MAAzB,EAAiC4F,CAAC,IAAI,CAAtC,EAAyC;AACvC,aAAKjG,CAAL,EAAQkM,YAAR,CAAqBP,QAAQ,CAAC1F,CAAD,CAA7B,EAAkC,KAAKjG,CAAL,EAAQ0D,UAAR,CAAmB,CAAnB,CAAlC;AACD;AACF,KAJM,MAIA;AACL,WAAK1D,CAAL,EAAQkM,YAAR,CAAqBP,QAArB,EAA+B,KAAK3L,CAAL,EAAQ0D,UAAR,CAAmB,CAAnB,CAA/B;AACD;AACF;;AAED,SAAO,IAAP;AACD;;AAED,SAASyI,SAAT,CAAmBH,MAAnB,EAA2B;AACzB7I,EAAAA,CAAC,CAAC6I,MAAD,CAAD,CAAUC,OAAV,CAAkB,IAAlB;AACA,SAAO,IAAP;AACD;;AAED,SAASC,YAAT,CAAsBlJ,QAAtB,EAAgC;AAC9B,QAAMoJ,MAAM,GAAGjJ,CAAC,CAACH,QAAD,CAAhB;;AAEA,OAAK,IAAIhD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKK,MAAzB,EAAiCL,CAAC,IAAI,CAAtC,EAAyC;AACvC,QAAIoM,MAAM,CAAC/L,MAAP,KAAkB,CAAtB,EAAyB;AACvB+L,MAAAA,MAAM,CAAC,CAAD,CAAN,CAAUC,UAAV,CAAqBH,YAArB,CAAkC,KAAKlM,CAAL,CAAlC,EAA2CoM,MAAM,CAAC,CAAD,CAAjD;AACD,KAFD,MAEO,IAAIA,MAAM,CAAC/L,MAAP,GAAgB,CAApB,EAAuB;AAC5B,WAAK,IAAI4F,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmG,MAAM,CAAC/L,MAA3B,EAAmC4F,CAAC,IAAI,CAAxC,EAA2C;AACzCmG,QAAAA,MAAM,CAACnG,CAAD,CAAN,CAAUoG,UAAV,CAAqBH,YAArB,CAAkC,KAAKlM,CAAL,EAAQsM,SAAR,CAAkB,IAAlB,CAAlC,EAA2DF,MAAM,CAACnG,CAAD,CAAjE;AACD;AACF;AACF;AACF;;AAED,SAASsG,WAAT,CAAqBvJ,QAArB,EAA+B;AAC7B,QAAMwJ,KAAK,GAAGrJ,CAAC,CAACH,QAAD,CAAf;;AAEA,OAAK,IAAIhD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKK,MAAzB,EAAiCL,CAAC,IAAI,CAAtC,EAAyC;AACvC,QAAIwM,KAAK,CAACnM,MAAN,KAAiB,CAArB,EAAwB;AACtBmM,MAAAA,KAAK,CAAC,CAAD,CAAL,CAASH,UAAT,CAAoBH,YAApB,CAAiC,KAAKlM,CAAL,CAAjC,EAA0CwM,KAAK,CAAC,CAAD,CAAL,CAASC,WAAnD;AACD,KAFD,MAEO,IAAID,KAAK,CAACnM,MAAN,GAAe,CAAnB,EAAsB;AAC3B,WAAK,IAAI4F,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuG,KAAK,CAACnM,MAA1B,EAAkC4F,CAAC,IAAI,CAAvC,EAA0C;AACxCuG,QAAAA,KAAK,CAACvG,CAAD,CAAL,CAASoG,UAAT,CAAoBH,YAApB,CAAiC,KAAKlM,CAAL,EAAQsM,SAAR,CAAkB,IAAlB,CAAjC,EAA0DE,KAAK,CAACvG,CAAD,CAAL,CAASwG,WAAnE;AACD;AACF;AACF;AACF;;AAED,SAASC,IAAT,CAAc1J,QAAd,EAAwB;AACtB,MAAI,KAAK3C,MAAL,GAAc,CAAlB,EAAqB;AACnB,QAAI2C,QAAJ,EAAc;AACZ,UAAI,KAAK,CAAL,EAAQ2J,kBAAR,IAA8BxJ,CAAC,CAAC,KAAK,CAAL,EAAQwJ,kBAAT,CAAD,CAA8BvF,EAA9B,CAAiCpE,QAAjC,CAAlC,EAA8E;AAC5E,eAAOG,CAAC,CAAC,CAAC,KAAK,CAAL,EAAQwJ,kBAAT,CAAD,CAAR;AACD;;AAED,aAAOxJ,CAAC,CAAC,EAAD,CAAR;AACD;;AAED,QAAI,KAAK,CAAL,EAAQwJ,kBAAZ,EAAgC,OAAOxJ,CAAC,CAAC,CAAC,KAAK,CAAL,EAAQwJ,kBAAT,CAAD,CAAR;AAChC,WAAOxJ,CAAC,CAAC,EAAD,CAAR;AACD;;AAED,SAAOA,CAAC,CAAC,EAAD,CAAR;AACD;;AAED,SAASyJ,OAAT,CAAiB5J,QAAjB,EAA2B;AACzB,QAAM6J,OAAO,GAAG,EAAhB;AACA,MAAIzO,EAAE,GAAG,KAAK,CAAL,CAAT;AACA,MAAI,CAACA,EAAL,EAAS,OAAO+E,CAAC,CAAC,EAAD,CAAR;;AAET,SAAO/E,EAAE,CAACuO,kBAAV,EAA8B;AAC5B,UAAMD,IAAI,GAAGtO,EAAE,CAACuO,kBAAhB,CAD4B,CACQ;;AAEpC,QAAI3J,QAAJ,EAAc;AACZ,UAAIG,CAAC,CAACuJ,IAAD,CAAD,CAAQtF,EAAR,CAAWpE,QAAX,CAAJ,EAA0B6J,OAAO,CAAC9K,IAAR,CAAa2K,IAAb;AAC3B,KAFD,MAEOG,OAAO,CAAC9K,IAAR,CAAa2K,IAAb;;AAEPtO,IAAAA,EAAE,GAAGsO,IAAL;AACD;;AAED,SAAOvJ,CAAC,CAAC0J,OAAD,CAAR;AACD;;AAED,SAASC,IAAT,CAAc9J,QAAd,EAAwB;AACtB,MAAI,KAAK3C,MAAL,GAAc,CAAlB,EAAqB;AACnB,UAAMjC,EAAE,GAAG,KAAK,CAAL,CAAX;;AAEA,QAAI4E,QAAJ,EAAc;AACZ,UAAI5E,EAAE,CAAC2O,sBAAH,IAA6B5J,CAAC,CAAC/E,EAAE,CAAC2O,sBAAJ,CAAD,CAA6B3F,EAA7B,CAAgCpE,QAAhC,CAAjC,EAA4E;AAC1E,eAAOG,CAAC,CAAC,CAAC/E,EAAE,CAAC2O,sBAAJ,CAAD,CAAR;AACD;;AAED,aAAO5J,CAAC,CAAC,EAAD,CAAR;AACD;;AAED,QAAI/E,EAAE,CAAC2O,sBAAP,EAA+B,OAAO5J,CAAC,CAAC,CAAC/E,EAAE,CAAC2O,sBAAJ,CAAD,CAAR;AAC/B,WAAO5J,CAAC,CAAC,EAAD,CAAR;AACD;;AAED,SAAOA,CAAC,CAAC,EAAD,CAAR;AACD;;AAED,SAAS6J,OAAT,CAAiBhK,QAAjB,EAA2B;AACzB,QAAMiK,OAAO,GAAG,EAAhB;AACA,MAAI7O,EAAE,GAAG,KAAK,CAAL,CAAT;AACA,MAAI,CAACA,EAAL,EAAS,OAAO+E,CAAC,CAAC,EAAD,CAAR;;AAET,SAAO/E,EAAE,CAAC2O,sBAAV,EAAkC;AAChC,UAAMD,IAAI,GAAG1O,EAAE,CAAC2O,sBAAhB,CADgC,CACQ;;AAExC,QAAI/J,QAAJ,EAAc;AACZ,UAAIG,CAAC,CAAC2J,IAAD,CAAD,CAAQ1F,EAAR,CAAWpE,QAAX,CAAJ,EAA0BiK,OAAO,CAAClL,IAAR,CAAa+K,IAAb;AAC3B,KAFD,MAEOG,OAAO,CAAClL,IAAR,CAAa+K,IAAb;;AAEP1O,IAAAA,EAAE,GAAG0O,IAAL;AACD;;AAED,SAAO3J,CAAC,CAAC8J,OAAD,CAAR;AACD;;AAED,SAASC,QAAT,CAAkBlK,QAAlB,EAA4B;AAC1B,SAAO,KAAK4J,OAAL,CAAa5J,QAAb,EAAuBpD,GAAvB,CAA2B,KAAKoN,OAAL,CAAahK,QAAb,CAA3B,CAAP;AACD;;AAED,SAASgJ,MAAT,CAAgBhJ,QAAhB,EAA0B;AACxB,QAAMsE,OAAO,GAAG,EAAhB,CADwB,CACJ;;AAEpB,OAAK,IAAItH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKK,MAAzB,EAAiCL,CAAC,IAAI,CAAtC,EAAyC;AACvC,QAAI,KAAKA,CAAL,EAAQqM,UAAR,KAAuB,IAA3B,EAAiC;AAC/B,UAAIrJ,QAAJ,EAAc;AACZ,YAAIG,CAAC,CAAC,KAAKnD,CAAL,EAAQqM,UAAT,CAAD,CAAsBjF,EAAtB,CAAyBpE,QAAzB,CAAJ,EAAwCsE,OAAO,CAACvF,IAAR,CAAa,KAAK/B,CAAL,EAAQqM,UAArB;AACzC,OAFD,MAEO;AACL/E,QAAAA,OAAO,CAACvF,IAAR,CAAa,KAAK/B,CAAL,EAAQqM,UAArB;AACD;AACF;AACF;;AAED,SAAOlJ,CAAC,CAACmE,OAAD,CAAR;AACD;;AAED,SAASA,OAAT,CAAiBtE,QAAjB,EAA2B;AACzB,QAAMsE,OAAO,GAAG,EAAhB,CADyB,CACL;;AAEpB,OAAK,IAAItH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKK,MAAzB,EAAiCL,CAAC,IAAI,CAAtC,EAAyC;AACvC,QAAIgM,MAAM,GAAG,KAAKhM,CAAL,EAAQqM,UAArB,CADuC,CACN;;AAEjC,WAAOL,MAAP,EAAe;AACb,UAAIhJ,QAAJ,EAAc;AACZ,YAAIG,CAAC,CAAC6I,MAAD,CAAD,CAAU5E,EAAV,CAAapE,QAAb,CAAJ,EAA4BsE,OAAO,CAACvF,IAAR,CAAaiK,MAAb;AAC7B,OAFD,MAEO;AACL1E,QAAAA,OAAO,CAACvF,IAAR,CAAaiK,MAAb;AACD;;AAEDA,MAAAA,MAAM,GAAGA,MAAM,CAACK,UAAhB;AACD;AACF;;AAED,SAAOlJ,CAAC,CAACmE,OAAD,CAAR;AACD;;AAED,SAAS6F,OAAT,CAAiBnK,QAAjB,EAA2B;AACzB,MAAImK,OAAO,GAAG,IAAd,CADyB,CACL;;AAEpB,MAAI,OAAOnK,QAAP,KAAoB,WAAxB,EAAqC;AACnC,WAAOG,CAAC,CAAC,EAAD,CAAR;AACD;;AAED,MAAI,CAACgK,OAAO,CAAC/F,EAAR,CAAWpE,QAAX,CAAL,EAA2B;AACzBmK,IAAAA,OAAO,GAAGA,OAAO,CAAC7F,OAAR,CAAgBtE,QAAhB,EAA0BuI,EAA1B,CAA6B,CAA7B,CAAV;AACD;;AAED,SAAO4B,OAAP;AACD;;AAED,SAASC,IAAT,CAAcpK,QAAd,EAAwB;AACtB,QAAMqK,aAAa,GAAG,EAAtB;;AAEA,OAAK,IAAIrN,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKK,MAAzB,EAAiCL,CAAC,IAAI,CAAtC,EAAyC;AACvC,UAAMsN,KAAK,GAAG,KAAKtN,CAAL,EAAQrB,gBAAR,CAAyBqE,QAAzB,CAAd;;AAEA,SAAK,IAAIiD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqH,KAAK,CAACjN,MAA1B,EAAkC4F,CAAC,IAAI,CAAvC,EAA0C;AACxCoH,MAAAA,aAAa,CAACtL,IAAd,CAAmBuL,KAAK,CAACrH,CAAD,CAAxB;AACD;AACF;;AAED,SAAO9C,CAAC,CAACkK,aAAD,CAAR;AACD;;AAED,SAASE,QAAT,CAAkBvK,QAAlB,EAA4B;AAC1B,QAAMuK,QAAQ,GAAG,EAAjB,CAD0B,CACL;;AAErB,OAAK,IAAIvN,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKK,MAAzB,EAAiCL,CAAC,IAAI,CAAtC,EAAyC;AACvC,UAAM0D,UAAU,GAAG,KAAK1D,CAAL,EAAQuN,QAA3B;;AAEA,SAAK,IAAItH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGvC,UAAU,CAACrD,MAA/B,EAAuC4F,CAAC,IAAI,CAA5C,EAA+C;AAC7C,UAAI,CAACjD,QAAD,IAAaG,CAAC,CAACO,UAAU,CAACuC,CAAD,CAAX,CAAD,CAAiBmB,EAAjB,CAAoBpE,QAApB,CAAjB,EAAgD;AAC9CuK,QAAAA,QAAQ,CAACxL,IAAT,CAAc2B,UAAU,CAACuC,CAAD,CAAxB;AACD;AACF;AACF;;AAED,SAAO9C,CAAC,CAACoK,QAAD,CAAR;AACD;;AAED,SAAS1N,MAAT,GAAkB;AAChB,OAAK,IAAIG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKK,MAAzB,EAAiCL,CAAC,IAAI,CAAtC,EAAyC;AACvC,QAAI,KAAKA,CAAL,EAAQqM,UAAZ,EAAwB,KAAKrM,CAAL,EAAQqM,UAAR,CAAmBmB,WAAnB,CAA+B,KAAKxN,CAAL,CAA/B;AACzB;;AAED,SAAO,IAAP;AACD;;AAED,SAASyN,MAAT,GAAkB;AAChB,SAAO,KAAK5N,MAAL,EAAP;AACD;;AAED,SAASD,GAAT,CAAa,GAAG8L,GAAhB,EAAqB;AACnB,QAAMrD,GAAG,GAAG,IAAZ;AACA,MAAIrI,CAAJ;AACA,MAAIiG,CAAJ;;AAEA,OAAKjG,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG0L,GAAG,CAACrL,MAApB,EAA4BL,CAAC,IAAI,CAAjC,EAAoC;AAClC,UAAM0N,KAAK,GAAGvK,CAAC,CAACuI,GAAG,CAAC1L,CAAD,CAAJ,CAAf;;AAEA,SAAKiG,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGyH,KAAK,CAACrN,MAAtB,EAA8B4F,CAAC,IAAI,CAAnC,EAAsC;AACpCoC,MAAAA,GAAG,CAACtG,IAAJ,CAAS2L,KAAK,CAACzH,CAAD,CAAd;AACD;AACF;;AAED,SAAOoC,GAAP;AACD;;AAED,SAASsF,KAAT,GAAiB;AACf,OAAK,IAAI3N,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKK,MAAzB,EAAiCL,CAAC,IAAI,CAAtC,EAAyC;AACvC,UAAM5B,EAAE,GAAG,KAAK4B,CAAL,CAAX;;AAEA,QAAI5B,EAAE,CAACuF,QAAH,KAAgB,CAApB,EAAuB;AACrB,WAAK,IAAIsC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG7H,EAAE,CAACsF,UAAH,CAAcrD,MAAlC,EAA0C4F,CAAC,IAAI,CAA/C,EAAkD;AAChD,YAAI7H,EAAE,CAACsF,UAAH,CAAcuC,CAAd,EAAiBoG,UAArB,EAAiC;AAC/BjO,UAAAA,EAAE,CAACsF,UAAH,CAAcuC,CAAd,EAAiBoG,UAAjB,CAA4BmB,WAA5B,CAAwCpP,EAAE,CAACsF,UAAH,CAAcuC,CAAd,CAAxC;AACD;AACF;;AAED7H,MAAAA,EAAE,CAAC4M,WAAH,GAAiB,EAAjB;AACD;AACF;;AAED,SAAO,IAAP;AACD,EAED;;;AAEA,SAAS4C,QAAT,CAAkB,GAAGlH,IAArB,EAA2B;AACzB,QAAM9H,MAAM,GAAGiC,qDAAS,EAAxB;AACA,MAAI,CAAC0J,IAAD,EAAOhL,GAAP,EAAYgH,QAAZ,EAAsBsH,MAAtB,EAA8B5L,QAA9B,IAA0CyE,IAA9C;;AAEA,MAAIA,IAAI,CAACrG,MAAL,KAAgB,CAAhB,IAAqB,OAAOwN,MAAP,KAAkB,UAA3C,EAAuD;AACrD5L,IAAAA,QAAQ,GAAG4L,MAAX;AACA,KAACtD,IAAD,EAAOhL,GAAP,EAAYgH,QAAZ,EAAsBtE,QAAtB,EAAgC4L,MAAhC,IAA0CnH,IAA1C;AACD;;AAED,MAAI,OAAOmH,MAAP,KAAkB,WAAtB,EAAmCA,MAAM,GAAG,OAAT;AACnC,SAAO,KAAKjD,IAAL,CAAU,SAASkD,OAAT,GAAmB;AAClC,UAAM1P,EAAE,GAAG,IAAX;AACA,QAAI2P,UAAJ;AACA,QAAIC,WAAJ;AACA,QAAIC,MAAJ;AACA,QAAIC,OAAJ;AACA,QAAIC,MAAJ;AACA,QAAIC,OAAJ;AACA,QAAIhE,SAAJ,CARkC,CAQnB;;AAEf,QAAIC,UAAJ,CAVkC,CAUlB;;AAEhB,QAAIgE,UAAU,GAAG9O,GAAG,GAAG,CAAN,IAAWA,GAAG,KAAK,CAApC;AACA,QAAI+O,WAAW,GAAG/D,IAAI,GAAG,CAAP,IAAYA,IAAI,KAAK,CAAvC;;AAEA,QAAI,OAAOsD,MAAP,KAAkB,WAAtB,EAAmC;AACjCA,MAAAA,MAAM,GAAG,OAAT;AACD;;AAED,QAAIQ,UAAJ,EAAgB;AACdN,MAAAA,UAAU,GAAG3P,EAAE,CAACgM,SAAhB;;AAEA,UAAI,CAAC7D,QAAL,EAAe;AACbnI,QAAAA,EAAE,CAACgM,SAAH,GAAe7K,GAAf;AACD;AACF;;AAED,QAAI+O,WAAJ,EAAiB;AACfN,MAAAA,WAAW,GAAG5P,EAAE,CAACiM,UAAjB;;AAEA,UAAI,CAAC9D,QAAL,EAAe;AACbnI,QAAAA,EAAE,CAACiM,UAAH,GAAgBE,IAAhB;AACD;AACF;;AAED,QAAI,CAAChE,QAAL,EAAe;;AAEf,QAAI8H,UAAJ,EAAgB;AACdJ,MAAAA,MAAM,GAAG7P,EAAE,CAACmQ,YAAH,GAAkBnQ,EAAE,CAACgB,YAA9B;AACA+O,MAAAA,MAAM,GAAGK,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAASnP,GAAT,EAAc0O,MAAd,CAAT,EAAgC,CAAhC,CAAT;AACD;;AAED,QAAIK,WAAJ,EAAiB;AACfJ,MAAAA,OAAO,GAAG9P,EAAE,CAACuQ,WAAH,GAAiBvQ,EAAE,CAACsL,WAA9B;AACA0E,MAAAA,OAAO,GAAGI,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAASnE,IAAT,EAAe2D,OAAf,CAAT,EAAkC,CAAlC,CAAV;AACD;;AAED,QAAIU,SAAS,GAAG,IAAhB;AACA,QAAIP,UAAU,IAAIF,MAAM,KAAKJ,UAA7B,EAAyCM,UAAU,GAAG,KAAb;AACzC,QAAIC,WAAW,IAAIF,OAAO,KAAKJ,WAA/B,EAA4CM,WAAW,GAAG,KAAd;;AAE5C,aAASO,MAAT,CAAgBC,IAAI,GAAG,IAAIC,IAAJ,GAAWC,OAAX,EAAvB,EAA6C;AAC3C,UAAIJ,SAAS,KAAK,IAAlB,EAAwB;AACtBA,QAAAA,SAAS,GAAGE,IAAZ;AACD;;AAED,YAAMG,QAAQ,GAAGT,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAAS,CAACI,IAAI,GAAGF,SAAR,IAAqBrI,QAA9B,EAAwC,CAAxC,CAAT,EAAqD,CAArD,CAAjB;AACA,YAAM2I,YAAY,GAAGrB,MAAM,KAAK,QAAX,GAAsBoB,QAAtB,GAAiC,MAAMT,IAAI,CAACW,GAAL,CAASF,QAAQ,GAAGT,IAAI,CAACY,EAAzB,IAA+B,CAA3F;AACA,UAAIC,IAAJ;AACA,UAAIhB,UAAJ,EAAgBjE,SAAS,GAAG2D,UAAU,GAAGmB,YAAY,IAAIf,MAAM,GAAGJ,UAAb,CAArC;AAChB,UAAIO,WAAJ,EAAiBjE,UAAU,GAAG2D,WAAW,GAAGkB,YAAY,IAAId,OAAO,GAAGJ,WAAd,CAAvC;;AAEjB,UAAIK,UAAU,IAAIF,MAAM,GAAGJ,UAAvB,IAAqC3D,SAAS,IAAI+D,MAAtD,EAA8D;AAC5D/P,QAAAA,EAAE,CAACgM,SAAH,GAAe+D,MAAf;AACAkB,QAAAA,IAAI,GAAG,IAAP;AACD;;AAED,UAAIhB,UAAU,IAAIF,MAAM,GAAGJ,UAAvB,IAAqC3D,SAAS,IAAI+D,MAAtD,EAA8D;AAC5D/P,QAAAA,EAAE,CAACgM,SAAH,GAAe+D,MAAf;AACAkB,QAAAA,IAAI,GAAG,IAAP;AACD;;AAED,UAAIf,WAAW,IAAIF,OAAO,GAAGJ,WAAzB,IAAwC3D,UAAU,IAAI+D,OAA1D,EAAmE;AACjEhQ,QAAAA,EAAE,CAACiM,UAAH,GAAgB+D,OAAhB;AACAiB,QAAAA,IAAI,GAAG,IAAP;AACD;;AAED,UAAIf,WAAW,IAAIF,OAAO,GAAGJ,WAAzB,IAAwC3D,UAAU,IAAI+D,OAA1D,EAAmE;AACjEhQ,QAAAA,EAAE,CAACiM,UAAH,GAAgB+D,OAAhB;AACAiB,QAAAA,IAAI,GAAG,IAAP;AACD;;AAED,UAAIA,IAAJ,EAAU;AACR,YAAIpN,QAAJ,EAAcA,QAAQ;AACtB;AACD;;AAED,UAAIoM,UAAJ,EAAgBjQ,EAAE,CAACgM,SAAH,GAAeA,SAAf;AAChB,UAAIkE,WAAJ,EAAiBlQ,EAAE,CAACiM,UAAH,GAAgBA,UAAhB;AACjBzL,MAAAA,MAAM,CAAC0Q,qBAAP,CAA6BT,MAA7B;AACD;;AAEDjQ,IAAAA,MAAM,CAAC0Q,qBAAP,CAA6BT,MAA7B;AACD,GA7FM,CAAP;AA8FD,EAAC;;;AAGF,SAASzE,SAAT,CAAmB,GAAG1D,IAAtB,EAA4B;AAC1B,MAAI,CAACnH,GAAD,EAAMgH,QAAN,EAAgBsH,MAAhB,EAAwB5L,QAAxB,IAAoCyE,IAAxC;;AAEA,MAAIA,IAAI,CAACrG,MAAL,KAAgB,CAAhB,IAAqB,OAAOwN,MAAP,KAAkB,UAA3C,EAAuD;AACrD,KAACtO,GAAD,EAAMgH,QAAN,EAAgBtE,QAAhB,EAA0B4L,MAA1B,IAAoCnH,IAApC;AACD;;AAED,QAAM2B,GAAG,GAAG,IAAZ;;AAEA,MAAI,OAAO9I,GAAP,KAAe,WAAnB,EAAgC;AAC9B,QAAI8I,GAAG,CAAChI,MAAJ,GAAa,CAAjB,EAAoB,OAAOgI,GAAG,CAAC,CAAD,CAAH,CAAO+B,SAAd;AACpB,WAAO,IAAP;AACD;;AAED,SAAO/B,GAAG,CAACuF,QAAJ,CAAajJ,SAAb,EAAwBpF,GAAxB,EAA6BgH,QAA7B,EAAuCsH,MAAvC,EAA+C5L,QAA/C,CAAP;AACD;;AAED,SAASoI,UAAT,CAAoB,GAAG3D,IAAvB,EAA6B;AAC3B,MAAI,CAAC6D,IAAD,EAAOhE,QAAP,EAAiBsH,MAAjB,EAAyB5L,QAAzB,IAAqCyE,IAAzC;;AAEA,MAAIA,IAAI,CAACrG,MAAL,KAAgB,CAAhB,IAAqB,OAAOwN,MAAP,KAAkB,UAA3C,EAAuD;AACrD,KAACtD,IAAD,EAAOhE,QAAP,EAAiBtE,QAAjB,EAA2B4L,MAA3B,IAAqCnH,IAArC;AACD;;AAED,QAAM2B,GAAG,GAAG,IAAZ;;AAEA,MAAI,OAAOkC,IAAP,KAAgB,WAApB,EAAiC;AAC/B,QAAIlC,GAAG,CAAChI,MAAJ,GAAa,CAAjB,EAAoB,OAAOgI,GAAG,CAAC,CAAD,CAAH,CAAOgC,UAAd;AACpB,WAAO,IAAP;AACD;;AAED,SAAOhC,GAAG,CAACuF,QAAJ,CAAarD,IAAb,EAAmB5F,SAAnB,EAA8B4B,QAA9B,EAAwCsH,MAAxC,EAAgD5L,QAAhD,CAAP;AACD,EAED;;;AAEA,SAAS6L,OAAT,CAAiByB,YAAjB,EAA+BC,aAA/B,EAA8C;AAC5C,QAAM5Q,MAAM,GAAGiC,qDAAS,EAAxB;AACA,QAAM6K,GAAG,GAAG,IAAZ;AACA,QAAMxI,CAAC,GAAG;AACR+B,IAAAA,KAAK,EAAE9D,MAAM,CAACsO,MAAP,CAAc,EAAd,EAAkBF,YAAlB,CADC;AAERG,IAAAA,MAAM,EAAEvO,MAAM,CAACsO,MAAP,CAAc;AACpBlJ,MAAAA,QAAQ,EAAE,GADU;AAEpBsH,MAAAA,MAAM,EAAE,OAFY,CAEJ;;AAEhB;AACN;AACA;AACA;AACA;;AAR0B,KAAd,EAUL2B,aAVK,CAFA;AAaRG,IAAAA,QAAQ,EAAEjE,GAbF;AAcRkE,IAAAA,SAAS,EAAE,KAdH;AAeRC,IAAAA,GAAG,EAAE,EAfG;;AAiBRC,IAAAA,cAAc,CAACjC,MAAD,EAASoB,QAAT,EAAmB;AAC/B,UAAIpB,MAAM,KAAK,OAAf,EAAwB;AACtB,eAAO,MAAMW,IAAI,CAACW,GAAL,CAASF,QAAQ,GAAGT,IAAI,CAACY,EAAzB,IAA+B,CAA5C;AACD;;AAED,UAAI,OAAOvB,MAAP,KAAkB,UAAtB,EAAkC;AAChC,eAAOA,MAAM,CAACoB,QAAD,CAAb;AACD;;AAED,aAAOA,QAAP;AACD,KA3BO;;AA6BRc,IAAAA,IAAI,GAAG;AACL,UAAI7M,CAAC,CAAC8M,OAAN,EAAe;AACbpR,QAAAA,MAAM,CAACqR,oBAAP,CAA4B/M,CAAC,CAAC8M,OAA9B;AACD;;AAED9M,MAAAA,CAAC,CAAC0M,SAAF,GAAc,KAAd;AACA1M,MAAAA,CAAC,CAACyM,QAAF,CAAW/E,IAAX,CAAgBxM,EAAE,IAAI;AACpB,cAAM8R,OAAO,GAAG9R,EAAhB;AACA,eAAO8R,OAAO,CAACC,mBAAf;AACD,OAHD;AAIAjN,MAAAA,CAAC,CAAC2M,GAAF,GAAQ,EAAR;AACD,KAxCO;;AA0CRR,IAAAA,IAAI,CAACe,QAAD,EAAW;AACblN,MAAAA,CAAC,CAAC0M,SAAF,GAAc,KAAd;AACA1M,MAAAA,CAAC,CAACyM,QAAF,CAAW/E,IAAX,CAAgBxM,EAAE,IAAI;AACpB,cAAM8R,OAAO,GAAG9R,EAAhB;AACA,eAAO8R,OAAO,CAACC,mBAAf;AACD,OAHD;AAIA,UAAIC,QAAJ,EAAcA,QAAQ,CAAC1E,GAAD,CAAR;;AAEd,UAAIxI,CAAC,CAAC2M,GAAF,CAAMxP,MAAN,GAAe,CAAnB,EAAsB;AACpB,cAAMwP,GAAG,GAAG3M,CAAC,CAAC2M,GAAF,CAAMQ,KAAN,EAAZ;AACAnN,QAAAA,CAAC,CAAC4K,OAAF,CAAU+B,GAAG,CAAC,CAAD,CAAb,EAAkBA,GAAG,CAAC,CAAD,CAArB;AACD;AACF,KAtDO;;AAwDR/B,IAAAA,OAAO,CAAC7I,KAAD,EAAQyK,MAAR,EAAgB;AACrB,UAAIxM,CAAC,CAAC0M,SAAN,EAAiB;AACf1M,QAAAA,CAAC,CAAC2M,GAAF,CAAM9N,IAAN,CAAW,CAACkD,KAAD,EAAQyK,MAAR,CAAX;AACA,eAAOxM,CAAP;AACD;;AAED,YAAMyM,QAAQ,GAAG,EAAjB,CANqB,CAMA;;AAErBzM,MAAAA,CAAC,CAACyM,QAAF,CAAW/E,IAAX,CAAgB,CAACxM,EAAD,EAAKyM,KAAL,KAAe;AAC7B,YAAIyF,gBAAJ;AACA,YAAIC,YAAJ;AACA,YAAIC,IAAJ;AACA,YAAIC,UAAJ;AACA,YAAIC,cAAJ;AACA,YAAI,CAACtS,EAAE,CAAC+R,mBAAR,EAA6BjN,CAAC,CAACyM,QAAF,CAAW9E,KAAX,EAAkBsF,mBAAlB,GAAwCjN,CAAxC;AAC7ByM,QAAAA,QAAQ,CAAC9E,KAAD,CAAR,GAAkB;AAChB8F,UAAAA,SAAS,EAAEvS;AADK,SAAlB;AAGA+C,QAAAA,MAAM,CAACyP,IAAP,CAAY3L,KAAZ,EAAmBhG,OAAnB,CAA2B+F,IAAI,IAAI;AACjCsL,UAAAA,gBAAgB,GAAG1R,MAAM,CAAC+L,gBAAP,CAAwBvM,EAAxB,EAA4B,IAA5B,EAAkCuL,gBAAlC,CAAmD3E,IAAnD,EAAyDrC,OAAzD,CAAiE,GAAjE,EAAsE,GAAtE,CAAnB;AACA4N,UAAAA,YAAY,GAAG5K,UAAU,CAAC2K,gBAAD,CAAzB;AACAE,UAAAA,IAAI,GAAGF,gBAAgB,CAAC3N,OAAjB,CAAyB4N,YAAzB,EAAuC,EAAvC,CAAP;AACAE,UAAAA,UAAU,GAAG9K,UAAU,CAACV,KAAK,CAACD,IAAD,CAAN,CAAvB;AACA0L,UAAAA,cAAc,GAAGzL,KAAK,CAACD,IAAD,CAAL,GAAcwL,IAA/B;AACAb,UAAAA,QAAQ,CAAC9E,KAAD,CAAR,CAAgB7F,IAAhB,IAAwB;AACtBsL,YAAAA,gBADsB;AAEtBC,YAAAA,YAFsB;AAGtBC,YAAAA,IAHsB;AAItBC,YAAAA,UAJsB;AAKtBC,YAAAA,cALsB;AAMtBG,YAAAA,YAAY,EAAEN;AANQ,WAAxB;AAQD,SAdD;AAeD,OAzBD;AA0BA,UAAI3B,SAAS,GAAG,IAAhB;AACA,UAAIE,IAAJ;AACA,UAAIgC,YAAY,GAAG,CAAnB;AACA,UAAIC,SAAS,GAAG,CAAhB;AACA,UAAI1B,IAAJ;AACA,UAAI2B,KAAK,GAAG,KAAZ;AACA9N,MAAAA,CAAC,CAAC0M,SAAF,GAAc,IAAd;;AAEA,eAASf,MAAT,GAAkB;AAChBC,QAAAA,IAAI,GAAG,IAAIC,IAAJ,GAAWC,OAAX,EAAP;AACA,YAAIC,QAAJ;AACA,YAAIC,YAAJ,CAHgB,CAGE;;AAElB,YAAI,CAAC8B,KAAL,EAAY;AACVA,UAAAA,KAAK,GAAG,IAAR;AACA,cAAItB,MAAM,CAACuB,KAAX,EAAkBvB,MAAM,CAACuB,KAAP,CAAavF,GAAb;AACnB;;AAED,YAAIkD,SAAS,KAAK,IAAlB,EAAwB;AACtBA,UAAAA,SAAS,GAAGE,IAAZ;AACD;;AAED,YAAIY,MAAM,CAACT,QAAX,EAAqB;AACnB;AACAS,UAAAA,MAAM,CAACT,QAAP,CAAgBvD,GAAhB,EAAqB8C,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAAS,CAACI,IAAI,GAAGF,SAAR,IAAqBc,MAAM,CAACnJ,QAArC,EAA+C,CAA/C,CAAT,EAA4D,CAA5D,CAArB,EAAqFqI,SAAS,GAAGc,MAAM,CAACnJ,QAAnB,GAA8BuI,IAA9B,GAAqC,CAArC,GAAyC,CAAzC,GAA6CF,SAAS,GAAGc,MAAM,CAACnJ,QAAnB,GAA8BuI,IAAhK,EAAsKF,SAAtK;AACD;;AAEDe,QAAAA,QAAQ,CAAC1Q,OAAT,CAAiBiR,OAAO,IAAI;AAC1B,gBAAM9R,EAAE,GAAG8R,OAAX;AACA,cAAIb,IAAI,IAAIjR,EAAE,CAACiR,IAAf,EAAqB;AACrBlO,UAAAA,MAAM,CAACyP,IAAP,CAAY3L,KAAZ,EAAmBhG,OAAnB,CAA2B+F,IAAI,IAAI;AACjC,gBAAIqK,IAAI,IAAIjR,EAAE,CAACiR,IAAf,EAAqB;AACrBJ,YAAAA,QAAQ,GAAGT,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAAS,CAACI,IAAI,GAAGF,SAAR,IAAqBc,MAAM,CAACnJ,QAArC,EAA+C,CAA/C,CAAT,EAA4D,CAA5D,CAAX;AACA2I,YAAAA,YAAY,GAAGhM,CAAC,CAAC4M,cAAF,CAAiBJ,MAAM,CAAC7B,MAAxB,EAAgCoB,QAAhC,CAAf;AACA,kBAAM;AACJsB,cAAAA,YADI;AAEJE,cAAAA,UAFI;AAGJD,cAAAA;AAHI,gBAIFpS,EAAE,CAAC4G,IAAD,CAJN;AAKA5G,YAAAA,EAAE,CAAC4G,IAAD,CAAF,CAAS6L,YAAT,GAAwBN,YAAY,GAAGrB,YAAY,IAAIuB,UAAU,GAAGF,YAAjB,CAAnD;AACA,kBAAMM,YAAY,GAAGzS,EAAE,CAAC4G,IAAD,CAAF,CAAS6L,YAA9B;;AAEA,gBAAIJ,UAAU,GAAGF,YAAb,IAA6BM,YAAY,IAAIJ,UAA7C,IAA2DA,UAAU,GAAGF,YAAb,IAA6BM,YAAY,IAAIJ,UAA5G,EAAwH;AACtHrS,cAAAA,EAAE,CAACuS,SAAH,CAAatK,KAAb,CAAmBrB,IAAnB,IAA2ByL,UAAU,GAAGD,IAAxC;AACAO,cAAAA,SAAS,IAAI,CAAb;;AAEA,kBAAIA,SAAS,KAAK5P,MAAM,CAACyP,IAAP,CAAY3L,KAAZ,EAAmB5E,MAArC,EAA6C;AAC3CjC,gBAAAA,EAAE,CAACiR,IAAH,GAAU,IAAV;AACAyB,gBAAAA,YAAY,IAAI,CAAhB;AACD;;AAED,kBAAIA,YAAY,KAAKnB,QAAQ,CAACtP,MAA9B,EAAsC;AACpCgP,gBAAAA,IAAI,GAAG,IAAP;AACD;AACF;;AAED,gBAAIA,IAAJ,EAAU;AACRnM,cAAAA,CAAC,CAACmM,IAAF,CAAOK,MAAM,CAACU,QAAd;AACA;AACD;;AAEDhS,YAAAA,EAAE,CAACuS,SAAH,CAAatK,KAAb,CAAmBrB,IAAnB,IAA2B6L,YAAY,GAAGL,IAA1C;AACD,WAhCD;AAiCD,SApCD;AAqCA,YAAInB,IAAJ,EAAU,OAxDM,CAwDE;;AAElBnM,QAAAA,CAAC,CAAC8M,OAAF,GAAYpR,MAAM,CAAC0Q,qBAAP,CAA6BT,MAA7B,CAAZ;AACD;;AAED3L,MAAAA,CAAC,CAAC8M,OAAF,GAAYpR,MAAM,CAAC0Q,qBAAP,CAA6BT,MAA7B,CAAZ;AACA,aAAO3L,CAAP;AACD;;AAjKO,GAAV;;AAqKA,MAAIA,CAAC,CAACyM,QAAF,CAAWtP,MAAX,KAAsB,CAA1B,EAA6B;AAC3B,WAAOqL,GAAP;AACD;;AAED,MAAIwF,eAAJ;;AAEA,OAAK,IAAIlR,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkD,CAAC,CAACyM,QAAF,CAAWtP,MAA/B,EAAuCL,CAAC,IAAI,CAA5C,EAA+C;AAC7C,QAAIkD,CAAC,CAACyM,QAAF,CAAW3P,CAAX,EAAcmQ,mBAAlB,EAAuC;AACrCe,MAAAA,eAAe,GAAGhO,CAAC,CAACyM,QAAF,CAAW3P,CAAX,EAAcmQ,mBAAhC;AACD,KAFD,MAEOjN,CAAC,CAACyM,QAAF,CAAW3P,CAAX,EAAcmQ,mBAAd,GAAoCjN,CAApC;AACR;;AAED,MAAI,CAACgO,eAAL,EAAsB;AACpBA,IAAAA,eAAe,GAAGhO,CAAlB;AACD;;AAED,MAAIqM,YAAY,KAAK,MAArB,EAA6B;AAC3B2B,IAAAA,eAAe,CAACnB,IAAhB;AACD,GAFD,MAEO;AACLmB,IAAAA,eAAe,CAACpD,OAAhB,CAAwB5K,CAAC,CAAC+B,KAA1B,EAAiC/B,CAAC,CAACwM,MAAnC;AACD;;AAED,SAAOhE,GAAP;AACD;;AAED,SAASqE,IAAT,GAAgB;AACd,QAAMrE,GAAG,GAAG,IAAZ;;AAEA,OAAK,IAAI1L,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0L,GAAG,CAACrL,MAAxB,EAAgCL,CAAC,IAAI,CAArC,EAAwC;AACtC,QAAI0L,GAAG,CAAC1L,CAAD,CAAH,CAAOmQ,mBAAX,EAAgC;AAC9BzE,MAAAA,GAAG,CAAC1L,CAAD,CAAH,CAAOmQ,mBAAP,CAA2BJ,IAA3B;AACD;AACF;AACF;;AAED,MAAMoB,SAAS,GAAG,gBAAgBjN,KAAhB,CAAsB,GAAtB,CAAlB;;AAEA,SAASkN,QAAT,CAAkB1L,IAAlB,EAAwB;AACtB,WAAS2L,YAAT,CAAsB,GAAG3K,IAAzB,EAA+B;AAC7B,QAAI,OAAOA,IAAI,CAAC,CAAD,CAAX,KAAmB,WAAvB,EAAoC;AAClC,WAAK,IAAI1G,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKK,MAAzB,EAAiCL,CAAC,IAAI,CAAtC,EAAyC;AACvC,YAAImR,SAAS,CAAC5O,OAAV,CAAkBmD,IAAlB,IAA0B,CAA9B,EAAiC;AAC/B,cAAIA,IAAI,IAAI,KAAK1F,CAAL,CAAZ,EAAqB,KAAKA,CAAL,EAAQ0F,IAAR,IAArB,KAA0C;AACxCvC,YAAAA,CAAC,CAAC,KAAKnD,CAAL,CAAD,CAAD,CAAWyI,OAAX,CAAmB/C,IAAnB;AACD;AACF;AACF;;AAED,aAAO,IAAP;AACD;;AAED,WAAO,KAAKe,EAAL,CAAQf,IAAR,EAAc,GAAGgB,IAAjB,CAAP;AACD;;AAED,SAAO2K,YAAP;AACD;;AAED,MAAMC,KAAK,GAAGF,QAAQ,CAAC,OAAD,CAAtB;AACA,MAAMG,IAAI,GAAGH,QAAQ,CAAC,MAAD,CAArB;AACA,MAAMI,KAAK,GAAGJ,QAAQ,CAAC,OAAD,CAAtB;AACA,MAAMK,OAAO,GAAGL,QAAQ,CAAC,SAAD,CAAxB;AACA,MAAMM,QAAQ,GAAGN,QAAQ,CAAC,UAAD,CAAzB;AACA,MAAMO,KAAK,GAAGP,QAAQ,CAAC,OAAD,CAAtB;AACA,MAAMQ,OAAO,GAAGR,QAAQ,CAAC,SAAD,CAAxB;AACA,MAAMS,QAAQ,GAAGT,QAAQ,CAAC,UAAD,CAAzB;AACA,MAAMU,MAAM,GAAGV,QAAQ,CAAC,QAAD,CAAvB;AACA,MAAMW,MAAM,GAAGX,QAAQ,CAAC,QAAD,CAAvB;AACA,MAAMY,SAAS,GAAGZ,QAAQ,CAAC,WAAD,CAA1B;AACA,MAAMa,SAAS,GAAGb,QAAQ,CAAC,WAAD,CAA1B;AACA,MAAMc,OAAO,GAAGd,QAAQ,CAAC,SAAD,CAAxB;AACA,MAAMe,UAAU,GAAGf,QAAQ,CAAC,YAAD,CAA3B;AACA,MAAMgB,UAAU,GAAGhB,QAAQ,CAAC,YAAD,CAA3B;AACA,MAAMiB,QAAQ,GAAGjB,QAAQ,CAAC,UAAD,CAAzB;AACA,MAAMkB,SAAS,GAAGlB,QAAQ,CAAC,WAAD,CAA1B;AACA,MAAMmB,UAAU,GAAGnB,QAAQ,CAAC,YAAD,CAA3B;AACA,MAAMoB,QAAQ,GAAGpB,QAAQ,CAAC,UAAD,CAAzB;AACA,MAAMqB,SAAS,GAAGrB,QAAQ,CAAC,WAAD,CAA1B;AACA,MAAMsB,MAAM,GAAGtB,QAAQ,CAAC,QAAD,CAAvB;AACA,MAAMuB,MAAM,GAAGvB,QAAQ,CAAC,QAAD,CAAvB;AAEA,iEAAejO,CAAf;;;;;;;;;;;;;;;;;;;ACp8CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA,SAASyP,QAAT,CAAkB5R,GAAlB,EAAuB;AACnB,SAAQA,GAAG,KAAK,IAAR,IACJ,OAAOA,GAAP,KAAe,QADX,IAEJ,iBAAiBA,GAFb,IAGJA,GAAG,CAACS,WAAJ,KAAoBN,MAHxB;AAIH;;AACD,SAAS0R,MAAT,CAAgB7L,MAAM,GAAG,EAAzB,EAA6B8L,GAAG,GAAG,EAAnC,EAAuC;AACnC3R,EAAAA,MAAM,CAACyP,IAAP,CAAYkC,GAAZ,EAAiB7T,OAAjB,CAA0BmG,GAAD,IAAS;AAC9B,QAAI,OAAO4B,MAAM,CAAC5B,GAAD,CAAb,KAAuB,WAA3B,EACI4B,MAAM,CAAC5B,GAAD,CAAN,GAAc0N,GAAG,CAAC1N,GAAD,CAAjB,CADJ,KAEK,IAAIwN,QAAQ,CAACE,GAAG,CAAC1N,GAAD,CAAJ,CAAR,IACLwN,QAAQ,CAAC5L,MAAM,CAAC5B,GAAD,CAAP,CADH,IAELjE,MAAM,CAACyP,IAAP,CAAYkC,GAAG,CAAC1N,GAAD,CAAf,EAAsB/E,MAAtB,GAA+B,CAF9B,EAEiC;AAClCwS,MAAAA,MAAM,CAAC7L,MAAM,CAAC5B,GAAD,CAAP,EAAc0N,GAAG,CAAC1N,GAAD,CAAjB,CAAN;AACH;AACJ,GARD;AASH;;AAED,MAAM2N,WAAW,GAAG;AAChB9I,EAAAA,IAAI,EAAE,EADU;;AAEhBpL,EAAAA,gBAAgB,GAAG,CAAG,CAFN;;AAGhBoJ,EAAAA,mBAAmB,GAAG,CAAG,CAHT;;AAIhB+K,EAAAA,aAAa,EAAE;AACXzB,IAAAA,IAAI,GAAG,CAAG,CADC;;AAEXzL,IAAAA,QAAQ,EAAE;AAFC,GAJC;;AAQhBpG,EAAAA,aAAa,GAAG;AACZ,WAAO,IAAP;AACH,GAVe;;AAWhBf,EAAAA,gBAAgB,GAAG;AACf,WAAO,EAAP;AACH,GAbe;;AAchBsU,EAAAA,cAAc,GAAG;AACb,WAAO,IAAP;AACH,GAhBe;;AAiBhBC,EAAAA,WAAW,GAAG;AACV,WAAO;AACHC,MAAAA,SAAS,GAAG,CAAG;;AADZ,KAAP;AAGH,GArBe;;AAsBhB3P,EAAAA,aAAa,GAAG;AACZ,WAAO;AACH+J,MAAAA,QAAQ,EAAE,EADP;AAEH7J,MAAAA,UAAU,EAAE,EAFT;AAGH2C,MAAAA,KAAK,EAAE,EAHJ;;AAIHzB,MAAAA,YAAY,GAAG,CAAG,CAJf;;AAKHwO,MAAAA,oBAAoB,GAAG;AACnB,eAAO,EAAP;AACH;;AAPE,KAAP;AASH,GAhCe;;AAiChBC,EAAAA,eAAe,GAAG;AACd,WAAO,EAAP;AACH,GAnCe;;AAoChBC,EAAAA,UAAU,GAAG;AACT,WAAO,IAAP;AACH,GAtCe;;AAuChBC,EAAAA,QAAQ,EAAE;AACNC,IAAAA,IAAI,EAAE,EADA;AAENC,IAAAA,IAAI,EAAE,EAFA;AAGNC,IAAAA,QAAQ,EAAE,EAHJ;AAINC,IAAAA,IAAI,EAAE,EAJA;AAKNC,IAAAA,MAAM,EAAE,EALF;AAMNC,IAAAA,QAAQ,EAAE,EANJ;AAONC,IAAAA,QAAQ,EAAE,EAPJ;AAQNC,IAAAA,MAAM,EAAE;AARF;AAvCM,CAApB;;AAkDA,SAASjT,WAAT,GAAuB;AACnB,QAAMkT,GAAG,GAAG,OAAOtV,QAAP,KAAoB,WAApB,GAAkCA,QAAlC,GAA6C,EAAzD;AACAmU,EAAAA,MAAM,CAACmB,GAAD,EAAMjB,WAAN,CAAN;AACA,SAAOiB,GAAP;AACH;;AAED,MAAMC,SAAS,GAAG;AACdvV,EAAAA,QAAQ,EAAEqU,WADI;AAEdmB,EAAAA,SAAS,EAAE;AACPC,IAAAA,SAAS,EAAE;AADJ,GAFG;AAKdZ,EAAAA,QAAQ,EAAE;AACNC,IAAAA,IAAI,EAAE,EADA;AAENC,IAAAA,IAAI,EAAE,EAFA;AAGNC,IAAAA,QAAQ,EAAE,EAHJ;AAINC,IAAAA,IAAI,EAAE,EAJA;AAKNC,IAAAA,MAAM,EAAE,EALF;AAMNC,IAAAA,QAAQ,EAAE,EANJ;AAONC,IAAAA,QAAQ,EAAE,EAPJ;AAQNC,IAAAA,MAAM,EAAE;AARF,GALI;AAedK,EAAAA,OAAO,EAAE;AACLC,IAAAA,YAAY,GAAG,CAAG,CADb;;AAELC,IAAAA,SAAS,GAAG,CAAG,CAFV;;AAGLC,IAAAA,EAAE,GAAG,CAAG,CAHH;;AAILC,IAAAA,IAAI,GAAG,CAAG;;AAJL,GAfK;AAqBd9L,EAAAA,WAAW,EAAE,SAASA,WAAT,GAAuB;AAChC,WAAO,IAAP;AACH,GAvBa;;AAwBd7J,EAAAA,gBAAgB,GAAG,CAAG,CAxBR;;AAyBdoJ,EAAAA,mBAAmB,GAAG,CAAG,CAzBX;;AA0Bd0C,EAAAA,gBAAgB,GAAG;AACf,WAAO;AACHhB,MAAAA,gBAAgB,GAAG;AACf,eAAO,EAAP;AACH;;AAHE,KAAP;AAKH,GAhCa;;AAiCd8K,EAAAA,KAAK,GAAG,CAAG,CAjCG;;AAkCd1F,EAAAA,IAAI,GAAG,CAAG,CAlCI;;AAmCd2F,EAAAA,MAAM,EAAE,EAnCM;;AAoCdC,EAAAA,UAAU,GAAG,CAAG,CApCF;;AAqCdC,EAAAA,YAAY,GAAG,CAAG,CArCJ;;AAsCdC,EAAAA,UAAU,GAAG;AACT,WAAO,EAAP;AACH,GAxCa;;AAyCdvF,EAAAA,qBAAqB,CAACrN,QAAD,EAAW;AAC5B,QAAI,OAAO0S,UAAP,KAAsB,WAA1B,EAAuC;AACnC1S,MAAAA,QAAQ;AACR,aAAO,IAAP;AACH;;AACD,WAAO0S,UAAU,CAAC1S,QAAD,EAAW,CAAX,CAAjB;AACH,GA/Ca;;AAgDdgO,EAAAA,oBAAoB,CAACxQ,EAAD,EAAK;AACrB,QAAI,OAAOkV,UAAP,KAAsB,WAA1B,EAAuC;AACnC;AACH;;AACDC,IAAAA,YAAY,CAACnV,EAAD,CAAZ;AACH;;AArDa,CAAlB;;AAuDA,SAASoB,SAAT,GAAqB;AACjB,QAAMiU,GAAG,GAAG,OAAOlW,MAAP,KAAkB,WAAlB,GAAgCA,MAAhC,GAAyC,EAArD;AACAiU,EAAAA,MAAM,CAACiC,GAAD,EAAMb,SAAN,CAAN;AACA,SAAOa,GAAP;AACH;;;;;;;;;;;;;;;;;ACjJD;AACe,SAASC,aAAT,CAAuBjX,WAAvB,EAAoCkX,IAAI,GAAG,QAA3C,EAAqDC,WAArD,EAAkE;AAC/E,MAAI,CAACnX,WAAD,IAAgBkX,IAAI,KAAK,WAAT,IAAwB,CAACC,WAA7C,EAA0D,OAAOtQ,SAAP;AAC1D,MAAIuQ,UAAU,GAAG,KAAjB;AACA,QAAMtW,MAAM,GAAGiC,qDAAS,EAAxB;AACA,QAAMsU,aAAa,GAAGH,IAAI,KAAK,QAAT,GAAoBpW,MAAM,CAACiL,WAA3B,GAAyCoL,WAAW,CAACG,YAA3E;AACA,QAAMC,MAAM,GAAGlU,MAAM,CAACyP,IAAP,CAAY9S,WAAZ,EAAyBkG,GAAzB,CAA6BsR,KAAK,IAAI;AACnD,QAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,CAAC/S,OAAN,CAAc,GAAd,MAAuB,CAAxD,EAA2D;AACzD,YAAMgT,QAAQ,GAAG5P,UAAU,CAAC2P,KAAK,CAACE,MAAN,CAAa,CAAb,CAAD,CAA3B;AACA,YAAMtV,KAAK,GAAGiV,aAAa,GAAGI,QAA9B;AACA,aAAO;AACLrV,QAAAA,KADK;AAELoV,QAAAA;AAFK,OAAP;AAID;;AAED,WAAO;AACLpV,MAAAA,KAAK,EAAEoV,KADF;AAELA,MAAAA;AAFK,KAAP;AAID,GAdc,CAAf;AAeAD,EAAAA,MAAM,CAACI,IAAP,CAAY,CAACvS,CAAD,EAAIwS,CAAJ,KAAUC,QAAQ,CAACzS,CAAC,CAAChD,KAAH,EAAU,EAAV,CAAR,GAAwByV,QAAQ,CAACD,CAAC,CAACxV,KAAH,EAAU,EAAV,CAAtD;;AAEA,OAAK,IAAIF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqV,MAAM,CAAChV,MAA3B,EAAmCL,CAAC,IAAI,CAAxC,EAA2C;AACzC,UAAM;AACJsV,MAAAA,KADI;AAEJpV,MAAAA;AAFI,QAGFmV,MAAM,CAACrV,CAAD,CAHV;;AAKA,QAAIgV,IAAI,KAAK,QAAb,EAAuB;AACrB,UAAIpW,MAAM,CAACiW,UAAP,CAAmB,eAAc3U,KAAM,KAAvC,EAA6CgL,OAAjD,EAA0D;AACxDgK,QAAAA,UAAU,GAAGI,KAAb;AACD;AACF,KAJD,MAIO,IAAIpV,KAAK,IAAI+U,WAAW,CAACW,WAAzB,EAAsC;AAC3CV,MAAAA,UAAU,GAAGI,KAAb;AACD;AACF;;AAED,SAAOJ,UAAU,IAAI,KAArB;AACD;;;;;;;;;;;;;;;;ACvCD;AACA;AACA,iEAAe;AACbW,EAAAA,aADa;AAEbd,EAAAA,aAAaA,2DAAAA;AAFA,CAAf;;;;;;;;;;;;;;;ACFA;;AAEA,MAAMe,aAAa,GAAG,CAACC,MAAD,EAASrG,MAAT,KAAoB;AACxC,SAAOqG,MAAM,CAACC,IAAP,IAAetG,MAAM,CAACsG,IAAtB,IAA8BtG,MAAM,CAACsG,IAAP,CAAYC,IAAZ,GAAmB,CAAxD;AACD,CAFD;;AAIe,SAASJ,aAAT,GAAyB;AACtC,QAAME,MAAM,GAAG,IAAf;AACA,QAAM;AACJG,IAAAA,WADI;AAEJC,IAAAA,WAFI;AAGJC,IAAAA,YAAY,GAAG,CAHX;AAIJ1G,IAAAA,MAJI;AAKJ2G,IAAAA;AALI,MAMFN,MANJ;AAOA,QAAMjY,WAAW,GAAG4R,MAAM,CAAC5R,WAA3B;AACA,MAAI,CAACA,WAAD,IAAgBA,WAAW,IAAIqD,MAAM,CAACyP,IAAP,CAAY9S,WAAZ,EAAyBuC,MAAzB,KAAoC,CAAvE,EAA0E,OAVpC,CAU4C;;AAElF,QAAM6U,UAAU,GAAGa,MAAM,CAAChB,aAAP,CAAqBjX,WAArB,EAAkCiY,MAAM,CAACrG,MAAP,CAAc4G,eAAhD,EAAiEP,MAAM,CAAC3X,EAAxE,CAAnB;AACA,MAAI,CAAC8W,UAAD,IAAea,MAAM,CAACQ,iBAAP,KAA6BrB,UAAhD,EAA4D;AAC5D,QAAMsB,oBAAoB,GAAGtB,UAAU,IAAIpX,WAAd,GAA4BA,WAAW,CAACoX,UAAD,CAAvC,GAAsDvQ,SAAnF;AACA,QAAM8R,gBAAgB,GAAGD,oBAAoB,IAAIT,MAAM,CAACW,cAAxD;AACA,QAAMC,WAAW,GAAGb,aAAa,CAACC,MAAD,EAASrG,MAAT,CAAjC;AACA,QAAMkH,UAAU,GAAGd,aAAa,CAACC,MAAD,EAASU,gBAAT,CAAhC;AACA,QAAMI,UAAU,GAAGnH,MAAM,CAACoH,OAA1B;;AAEA,MAAIH,WAAW,IAAI,CAACC,UAApB,EAAgC;AAC9BP,IAAAA,GAAG,CAAClS,WAAJ,CAAiB,GAAEuL,MAAM,CAACqH,sBAAuB,QAAOrH,MAAM,CAACqH,sBAAuB,aAAtF;AACAhB,IAAAA,MAAM,CAACiB,oBAAP;AACD,GAHD,MAGO,IAAI,CAACL,WAAD,IAAgBC,UAApB,EAAgC;AACrCP,IAAAA,GAAG,CAACxS,QAAJ,CAAc,GAAE6L,MAAM,CAACqH,sBAAuB,MAA9C;;AAEA,QAAIN,gBAAgB,CAACT,IAAjB,CAAsBiB,IAAtB,IAA8BR,gBAAgB,CAACT,IAAjB,CAAsBiB,IAAtB,KAA+B,QAA7D,IAAyE,CAACR,gBAAgB,CAACT,IAAjB,CAAsBiB,IAAvB,IAA+BvH,MAAM,CAACsG,IAAP,CAAYiB,IAAZ,KAAqB,QAAjI,EAA2I;AACzIZ,MAAAA,GAAG,CAACxS,QAAJ,CAAc,GAAE6L,MAAM,CAACqH,sBAAuB,aAA9C;AACD;;AAEDhB,IAAAA,MAAM,CAACiB,oBAAP;AACD;;AAED,QAAME,gBAAgB,GAAGT,gBAAgB,CAACU,SAAjB,IAA8BV,gBAAgB,CAACU,SAAjB,KAA+BzH,MAAM,CAACyH,SAA7F;AACA,QAAMC,WAAW,GAAG1H,MAAM,CAAC/R,IAAP,KAAgB8Y,gBAAgB,CAAC7Y,aAAjB,KAAmC8R,MAAM,CAAC9R,aAA1C,IAA2DsZ,gBAA3E,CAApB;;AAEA,MAAIA,gBAAgB,IAAIf,WAAxB,EAAqC;AACnCJ,IAAAA,MAAM,CAACsB,eAAP;AACD;;AAEDxE,EAAAA,wDAAM,CAACkD,MAAM,CAACrG,MAAR,EAAgB+G,gBAAhB,CAAN;AACA,QAAMa,SAAS,GAAGvB,MAAM,CAACrG,MAAP,CAAcoH,OAAhC;AACA3V,EAAAA,MAAM,CAACsO,MAAP,CAAcsG,MAAd,EAAsB;AACpBwB,IAAAA,cAAc,EAAExB,MAAM,CAACrG,MAAP,CAAc6H,cADV;AAEpBC,IAAAA,cAAc,EAAEzB,MAAM,CAACrG,MAAP,CAAc8H,cAFV;AAGpBC,IAAAA,cAAc,EAAE1B,MAAM,CAACrG,MAAP,CAAc+H;AAHV,GAAtB;;AAMA,MAAIZ,UAAU,IAAI,CAACS,SAAnB,EAA8B;AAC5BvB,IAAAA,MAAM,CAAC2B,OAAP;AACD,GAFD,MAEO,IAAI,CAACb,UAAD,IAAeS,SAAnB,EAA8B;AACnCvB,IAAAA,MAAM,CAAC4B,MAAP;AACD;;AAED5B,EAAAA,MAAM,CAACQ,iBAAP,GAA2BrB,UAA3B;AACAa,EAAAA,MAAM,CAAC6B,IAAP,CAAY,mBAAZ,EAAiCnB,gBAAjC;;AAEA,MAAIW,WAAW,IAAIjB,WAAnB,EAAgC;AAC9BJ,IAAAA,MAAM,CAAC8B,WAAP;AACA9B,IAAAA,MAAM,CAAC+B,UAAP;AACA/B,IAAAA,MAAM,CAACgC,YAAP;AACAhC,IAAAA,MAAM,CAACiC,OAAP,CAAe9B,WAAW,GAAGE,YAAd,GAA6BL,MAAM,CAACK,YAAnD,EAAiE,CAAjE,EAAoE,KAApE;AACD;;AAEDL,EAAAA,MAAM,CAAC6B,IAAP,CAAY,YAAZ,EAA0BnB,gBAA1B;AACD;;;;;;;;;;;;;;ACvED,SAASwB,aAAT,GAAyB;AACvB,QAAMlC,MAAM,GAAG,IAAf;AACA,QAAM;AACJmC,IAAAA,QAAQ,EAAEC,SADN;AAEJzI,IAAAA;AAFI,MAGFqG,MAHJ;AAIA,QAAM;AACJqC,IAAAA;AADI,MAEF1I,MAFJ;;AAIA,MAAI0I,kBAAJ,EAAwB;AACtB,UAAMC,cAAc,GAAGtC,MAAM,CAACuC,MAAP,CAAcjY,MAAd,GAAuB,CAA9C;AACA,UAAMkY,kBAAkB,GAAGxC,MAAM,CAACyC,UAAP,CAAkBH,cAAlB,IAAoCtC,MAAM,CAAC0C,eAAP,CAAuBJ,cAAvB,CAApC,GAA6ED,kBAAkB,GAAG,CAA7H;AACArC,IAAAA,MAAM,CAACmC,QAAP,GAAkBnC,MAAM,CAAC2C,IAAP,GAAcH,kBAAhC;AACD,GAJD,MAIO;AACLxC,IAAAA,MAAM,CAACmC,QAAP,GAAkBnC,MAAM,CAAC4C,QAAP,CAAgBtY,MAAhB,KAA2B,CAA7C;AACD;;AAED,MAAIqP,MAAM,CAAC8H,cAAP,KAA0B,IAA9B,EAAoC;AAClCzB,IAAAA,MAAM,CAACyB,cAAP,GAAwB,CAACzB,MAAM,CAACmC,QAAhC;AACD;;AAED,MAAIxI,MAAM,CAAC+H,cAAP,KAA0B,IAA9B,EAAoC;AAClC1B,IAAAA,MAAM,CAAC0B,cAAP,GAAwB,CAAC1B,MAAM,CAACmC,QAAhC;AACD;;AAED,MAAIC,SAAS,IAAIA,SAAS,KAAKpC,MAAM,CAACmC,QAAtC,EAAgD;AAC9CnC,IAAAA,MAAM,CAAC6C,KAAP,GAAe,KAAf;AACD;;AAED,MAAIT,SAAS,KAAKpC,MAAM,CAACmC,QAAzB,EAAmC;AACjCnC,IAAAA,MAAM,CAAC6B,IAAP,CAAY7B,MAAM,CAACmC,QAAP,GAAkB,MAAlB,GAA2B,QAAvC;AACD;AACF;;AAED,iEAAe;AACbD,EAAAA;AADa,CAAf;;;;;;;;;;;;;;ACnCA,SAASY,cAAT,CAAwBC,OAAxB,EAAiCC,MAAjC,EAAyC;AACvC,QAAMC,aAAa,GAAG,EAAtB;AACAF,EAAAA,OAAO,CAAC7Z,OAAR,CAAgBga,IAAI,IAAI;AACtB,QAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B;AAC5B9X,MAAAA,MAAM,CAACyP,IAAP,CAAYqI,IAAZ,EAAkBha,OAAlB,CAA0B8E,UAAU,IAAI;AACtC,YAAIkV,IAAI,CAAClV,UAAD,CAAR,EAAsB;AACpBiV,UAAAA,aAAa,CAACjX,IAAd,CAAmBgX,MAAM,GAAGhV,UAA5B;AACD;AACF,OAJD;AAKD,KAND,MAMO,IAAI,OAAOkV,IAAP,KAAgB,QAApB,EAA8B;AACnCD,MAAAA,aAAa,CAACjX,IAAd,CAAmBgX,MAAM,GAAGE,IAA5B;AACD;AACF,GAVD;AAWA,SAAOD,aAAP;AACD;;AAEc,SAASE,UAAT,GAAsB;AACnC,QAAMnD,MAAM,GAAG,IAAf;AACA,QAAM;AACJhS,IAAAA,UADI;AAEJ2L,IAAAA,MAFI;AAGJyJ,IAAAA,GAHI;AAIJ9C,IAAAA,GAJI;AAKJ+C,IAAAA,MALI;AAMJC,IAAAA;AANI,MAOFtD,MAPJ,CAFmC,CASvB;;AAEZ,QAAMuD,QAAQ,GAAGT,cAAc,CAAC,CAAC,aAAD,EAAgBnJ,MAAM,CAACyH,SAAvB,EAAkC;AAChE,sBAAkB,CAACkC,OAAO,CAACE;AADqC,GAAlC,EAE7B;AACD,iBAAaxD,MAAM,CAACrG,MAAP,CAAc8J,QAAd,IAA0B9J,MAAM,CAAC8J,QAAP,CAAgB1C;AADtD,GAF6B,EAI7B;AACD,kBAAcpH,MAAM,CAAC+J;AADpB,GAJ6B,EAM7B;AACD,WAAON;AADN,GAN6B,EAQ7B;AACD,YAAQzJ,MAAM,CAACsG,IAAP,IAAetG,MAAM,CAACsG,IAAP,CAAYC,IAAZ,GAAmB;AADzC,GAR6B,EAU7B;AACD,mBAAevG,MAAM,CAACsG,IAAP,IAAetG,MAAM,CAACsG,IAAP,CAAYC,IAAZ,GAAmB,CAAlC,IAAuCvG,MAAM,CAACsG,IAAP,CAAYiB,IAAZ,KAAqB;AAD1E,GAV6B,EAY7B;AACD,eAAWmC,MAAM,CAACM;AADjB,GAZ6B,EAc7B;AACD,WAAON,MAAM,CAACO;AADb,GAd6B,EAgB7B;AACD,gBAAYjK,MAAM,CAACkK;AADlB,GAhB6B,EAkB7B;AACD,gBAAYlK,MAAM,CAACkK,OAAP,IAAkBlK,MAAM,CAACmK;AADpC,GAlB6B,CAAD,EAoB3BnK,MAAM,CAACqH,sBApBoB,CAA/B;AAqBAhT,EAAAA,UAAU,CAAChC,IAAX,CAAgB,GAAGuX,QAAnB;AACAjD,EAAAA,GAAG,CAACxS,QAAJ,CAAa,CAAC,GAAGE,UAAJ,EAAgB+V,IAAhB,CAAqB,GAArB,CAAb;AACA/D,EAAAA,MAAM,CAACiB,oBAAP;AACD;;;;;;;;;;;;;;;;ACnDD;AACA;AACA,iEAAe;AACbkC,EAAAA,UADa;AAEba,EAAAA,aAAaA,2DAAAA;AAFA,CAAf;;;;;;;;;;;;;;ACFe,SAASA,aAAT,GAAyB;AACtC,QAAMhE,MAAM,GAAG,IAAf;AACA,QAAM;AACJM,IAAAA,GADI;AAEJtS,IAAAA;AAFI,MAGFgS,MAHJ;AAIAM,EAAAA,GAAG,CAAClS,WAAJ,CAAgBJ,UAAU,CAAC+V,IAAX,CAAgB,GAAhB,CAAhB;AACA/D,EAAAA,MAAM,CAACiB,oBAAP;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM+D,UAAU,GAAG;AACjBR,EAAAA,aADiB;AAEjBC,EAAAA,MAFiB;AAGjBC,EAAAA,SAHiB;AAIjBnU,EAAAA,UAJiB;AAKjBoU,EAAAA,KALiB;AAMjB/c,EAAAA,IANiB;AAOjBgd,EAAAA,UAPiB;AAQjBlT,EAAAA,MARiB;AASjB3J,EAAAA,WATiB;AAUjBma,EAAAA,aAViB;AAWjBnU,EAAAA,OAXiB;AAYjB8W,EAAAA,MAAMA,2DAAAA;AAZW,CAAnB;AAcA,MAAMI,gBAAgB,GAAG,EAAzB;;AAEA,MAAM1d,MAAN,CAAa;AACXmE,EAAAA,WAAW,CAAC,GAAGiF,IAAJ,EAAU;AACnB,QAAItI,EAAJ;AACA,QAAIsR,MAAJ;;AAEA,QAAIhJ,IAAI,CAACrG,MAAL,KAAgB,CAAhB,IAAqBqG,IAAI,CAAC,CAAD,CAAJ,CAAQjF,WAA7B,IAA4CN,MAAM,CAACe,SAAP,CAAiB+Y,QAAjB,CAA0B7Y,IAA1B,CAA+BsE,IAAI,CAAC,CAAD,CAAnC,EAAwCwU,KAAxC,CAA8C,CAA9C,EAAiD,CAAC,CAAlD,MAAyD,QAAzG,EAAmH;AACjHxL,MAAAA,MAAM,GAAGhJ,IAAI,CAAC,CAAD,CAAb;AACD,KAFD,MAEO;AACL,OAACtI,EAAD,EAAKsR,MAAL,IAAehJ,IAAf;AACD;;AAED,QAAI,CAACgJ,MAAL,EAAaA,MAAM,GAAG,EAAT;AACbA,IAAAA,MAAM,GAAGmD,wDAAM,CAAC,EAAD,EAAKnD,MAAL,CAAf;AACA,QAAItR,EAAE,IAAI,CAACsR,MAAM,CAACtR,EAAlB,EAAsBsR,MAAM,CAACtR,EAAP,GAAYA,EAAZ;;AAEtB,QAAIsR,MAAM,CAACtR,EAAP,IAAa+E,0DAAC,CAACuM,MAAM,CAACtR,EAAR,CAAD,CAAaiC,MAAb,GAAsB,CAAvC,EAA0C;AACxC,YAAM8a,OAAO,GAAG,EAAhB;AACAhY,MAAAA,0DAAC,CAACuM,MAAM,CAACtR,EAAR,CAAD,CAAawM,IAAb,CAAkBqK,WAAW,IAAI;AAC/B,cAAMmG,SAAS,GAAGvI,wDAAM,CAAC,EAAD,EAAKnD,MAAL,EAAa;AACnCtR,UAAAA,EAAE,EAAE6W;AAD+B,SAAb,CAAxB;AAGAkG,QAAAA,OAAO,CAACpZ,IAAR,CAAa,IAAIzE,MAAJ,CAAW8d,SAAX,CAAb;AACD,OALD;AAMA,aAAOD,OAAP;AACD,KAvBkB,CAuBjB;;;AAGF,UAAMpF,MAAM,GAAG,IAAf;AACAA,IAAAA,MAAM,CAACsF,UAAP,GAAoB,IAApB;AACAtF,IAAAA,MAAM,CAACsD,OAAP,GAAiBa,kEAAU,EAA3B;AACAnE,IAAAA,MAAM,CAACqD,MAAP,GAAgBe,gEAAS,CAAC;AACxBhG,MAAAA,SAAS,EAAEzE,MAAM,CAACyE;AADM,KAAD,CAAzB;AAGA4B,IAAAA,MAAM,CAACuF,OAAP,GAAiBlB,kEAAU,EAA3B;AACArE,IAAAA,MAAM,CAACwF,eAAP,GAAyB,EAAzB;AACAxF,IAAAA,MAAM,CAACyF,kBAAP,GAA4B,EAA5B;AACAzF,IAAAA,MAAM,CAAC0F,OAAP,GAAiB,CAAC,GAAG1F,MAAM,CAAC2F,WAAX,CAAjB;;AAEA,QAAIhM,MAAM,CAAC+L,OAAP,IAAkBja,KAAK,CAACM,OAAN,CAAc4N,MAAM,CAAC+L,OAArB,CAAtB,EAAqD;AACnD1F,MAAAA,MAAM,CAAC0F,OAAP,CAAe1Z,IAAf,CAAoB,GAAG2N,MAAM,CAAC+L,OAA9B;AACD;;AAED,UAAME,gBAAgB,GAAG,EAAzB;AACA5F,IAAAA,MAAM,CAAC0F,OAAP,CAAexc,OAAf,CAAuB2c,GAAG,IAAI;AAC5BA,MAAAA,GAAG,CAAC;AACF7F,QAAAA,MADE;AAEF8F,QAAAA,YAAY,EAAEf,mEAAkB,CAACpL,MAAD,EAASiM,gBAAT,CAF9B;AAGFlV,QAAAA,EAAE,EAAEsP,MAAM,CAACtP,EAAP,CAAUqV,IAAV,CAAe/F,MAAf,CAHF;AAIF3N,QAAAA,IAAI,EAAE2N,MAAM,CAAC3N,IAAP,CAAY0T,IAAZ,CAAiB/F,MAAjB,CAJJ;AAKFjO,QAAAA,GAAG,EAAEiO,MAAM,CAACjO,GAAP,CAAWgU,IAAX,CAAgB/F,MAAhB,CALH;AAMF6B,QAAAA,IAAI,EAAE7B,MAAM,CAAC6B,IAAP,CAAYkE,IAAZ,CAAiB/F,MAAjB;AANJ,OAAD,CAAH;AAQD,KATD,EA1CmB,CAmDf;;AAEJ,UAAMgG,YAAY,GAAGlJ,wDAAM,CAAC,EAAD,EAAKgI,qDAAL,EAAec,gBAAf,CAA3B,CArDmB,CAqD0C;;AAE7D5F,IAAAA,MAAM,CAACrG,MAAP,GAAgBmD,wDAAM,CAAC,EAAD,EAAKkJ,YAAL,EAAmBf,gBAAnB,EAAqCtL,MAArC,CAAtB;AACAqG,IAAAA,MAAM,CAACW,cAAP,GAAwB7D,wDAAM,CAAC,EAAD,EAAKkD,MAAM,CAACrG,MAAZ,CAA9B;AACAqG,IAAAA,MAAM,CAACiG,YAAP,GAAsBnJ,wDAAM,CAAC,EAAD,EAAKnD,MAAL,CAA5B,CAzDmB,CAyDuB;;AAE1C,QAAIqG,MAAM,CAACrG,MAAP,IAAiBqG,MAAM,CAACrG,MAAP,CAAcjJ,EAAnC,EAAuC;AACrCtF,MAAAA,MAAM,CAACyP,IAAP,CAAYmF,MAAM,CAACrG,MAAP,CAAcjJ,EAA1B,EAA8BxH,OAA9B,CAAsCqJ,SAAS,IAAI;AACjDyN,QAAAA,MAAM,CAACtP,EAAP,CAAU6B,SAAV,EAAqByN,MAAM,CAACrG,MAAP,CAAcjJ,EAAd,CAAiB6B,SAAjB,CAArB;AACD,OAFD;AAGD;;AAED,QAAIyN,MAAM,CAACrG,MAAP,IAAiBqG,MAAM,CAACrG,MAAP,CAAcuM,KAAnC,EAA0C;AACxClG,MAAAA,MAAM,CAACkG,KAAP,CAAalG,MAAM,CAACrG,MAAP,CAAcuM,KAA3B;AACD,KAnEkB,CAmEjB;;;AAGFlG,IAAAA,MAAM,CAAC5S,CAAP,GAAWA,sDAAX,CAtEmB,CAsEL;;AAEdhC,IAAAA,MAAM,CAACsO,MAAP,CAAcsG,MAAd,EAAsB;AACpBe,MAAAA,OAAO,EAAEf,MAAM,CAACrG,MAAP,CAAcoH,OADH;AAEpB1Y,MAAAA,EAFoB;AAGpB;AACA2F,MAAAA,UAAU,EAAE,EAJQ;AAKpB;AACAuU,MAAAA,MAAM,EAAEnV,0DAAC,EANW;AAOpBqV,MAAAA,UAAU,EAAE,EAPQ;AAQpBG,MAAAA,QAAQ,EAAE,EARU;AASpBF,MAAAA,eAAe,EAAE,EATG;;AAWpB;AACAyD,MAAAA,YAAY,GAAG;AACb,eAAOnG,MAAM,CAACrG,MAAP,CAAcyH,SAAd,KAA4B,YAAnC;AACD,OAdmB;;AAgBpBgF,MAAAA,UAAU,GAAG;AACX,eAAOpG,MAAM,CAACrG,MAAP,CAAcyH,SAAd,KAA4B,UAAnC;AACD,OAlBmB;;AAoBpB;AACAjB,MAAAA,WAAW,EAAE,CArBO;AAsBpBkG,MAAAA,SAAS,EAAE,CAtBS;AAuBpB;AACAC,MAAAA,WAAW,EAAE,IAxBO;AAyBpBzD,MAAAA,KAAK,EAAE,KAzBa;AA0BpB;AACA6B,MAAAA,SAAS,EAAE,CA3BS;AA4BpB6B,MAAAA,iBAAiB,EAAE,CA5BC;AA6BpBrN,MAAAA,QAAQ,EAAE,CA7BU;AA8BpBsN,MAAAA,QAAQ,EAAE,CA9BU;AA+BpB3M,MAAAA,SAAS,EAAE,KA/BS;AAgCpB;AACA4H,MAAAA,cAAc,EAAEzB,MAAM,CAACrG,MAAP,CAAc8H,cAjCV;AAkCpBC,MAAAA,cAAc,EAAE1B,MAAM,CAACrG,MAAP,CAAc+H,cAlCV;AAmCpB;AACA+E,MAAAA,WAAW,EAAE,SAASA,WAAT,GAAuB;AAClC,cAAMjD,KAAK,GAAG,CAAC,YAAD,EAAe,WAAf,EAA4B,UAA5B,EAAwC,aAAxC,CAAd;AACA,cAAMkD,OAAO,GAAG,CAAC,aAAD,EAAgB,aAAhB,EAA+B,WAA/B,CAAhB;AACA1G,QAAAA,MAAM,CAAC2G,gBAAP,GAA0B;AACxBC,UAAAA,KAAK,EAAEpD,KAAK,CAAC,CAAD,CADY;AAExBqD,UAAAA,IAAI,EAAErD,KAAK,CAAC,CAAD,CAFa;AAGxBsD,UAAAA,GAAG,EAAEtD,KAAK,CAAC,CAAD,CAHc;AAIxBuD,UAAAA,MAAM,EAAEvD,KAAK,CAAC,CAAD;AAJW,SAA1B;AAMAxD,QAAAA,MAAM,CAACgH,kBAAP,GAA4B;AAC1BJ,UAAAA,KAAK,EAAEF,OAAO,CAAC,CAAD,CADY;AAE1BG,UAAAA,IAAI,EAAEH,OAAO,CAAC,CAAD,CAFa;AAG1BI,UAAAA,GAAG,EAAEJ,OAAO,CAAC,CAAD;AAHc,SAA5B;AAKA,eAAO1G,MAAM,CAACsD,OAAP,CAAeE,KAAf,IAAwB,CAACxD,MAAM,CAACrG,MAAP,CAAcsN,aAAvC,GAAuDjH,MAAM,CAAC2G,gBAA9D,GAAiF3G,MAAM,CAACgH,kBAA/F;AACD,OAfY,EApCO;AAoDpBE,MAAAA,eAAe,EAAE;AACfC,QAAAA,SAAS,EAAEvY,SADI;AAEfwY,QAAAA,OAAO,EAAExY,SAFM;AAGfyY,QAAAA,mBAAmB,EAAEzY,SAHN;AAIf0Y,QAAAA,cAAc,EAAE1Y,SAJD;AAKf2Y,QAAAA,WAAW,EAAE3Y,SALE;AAMf4Y,QAAAA,gBAAgB,EAAE5Y,SANH;AAOf6Y,QAAAA,cAAc,EAAE7Y,SAPD;AAQf8Y,QAAAA,kBAAkB,EAAE9Y,SARL;AASf;AACA+Y,QAAAA,iBAAiB,EAAE3H,MAAM,CAACrG,MAAP,CAAcgO,iBAVlB;AAWf;AACAC,QAAAA,aAAa,EAAE3D,qDAAG,EAZH;AAaf4D,QAAAA,YAAY,EAAEjZ,SAbC;AAcf;AACAkZ,QAAAA,UAAU,EAAE,EAfG;AAgBfC,QAAAA,mBAAmB,EAAEnZ,SAhBN;AAiBfoZ,QAAAA,YAAY,EAAEpZ,SAjBC;AAkBfqZ,QAAAA,WAAW,EAAErZ;AAlBE,OApDG;AAwEpB;AACAsZ,MAAAA,UAAU,EAAE,IAzEQ;AA0EpB;AACA1G,MAAAA,cAAc,EAAExB,MAAM,CAACrG,MAAP,CAAc6H,cA3EV;AA4EpB2G,MAAAA,OAAO,EAAE;AACPC,QAAAA,MAAM,EAAE,CADD;AAEPC,QAAAA,MAAM,EAAE,CAFD;AAGPC,QAAAA,QAAQ,EAAE,CAHH;AAIPC,QAAAA,QAAQ,EAAE,CAJH;AAKPC,QAAAA,IAAI,EAAE;AALC,OA5EW;AAmFpB;AACAC,MAAAA,YAAY,EAAE,EApFM;AAqFpBC,MAAAA,YAAY,EAAE;AArFM,KAAtB;AAuFA1I,IAAAA,MAAM,CAAC6B,IAAP,CAAY,SAAZ,EA/JmB,CA+JK;;AAExB,QAAI7B,MAAM,CAACrG,MAAP,CAAcgP,IAAlB,EAAwB;AACtB3I,MAAAA,MAAM,CAAC2I,IAAP;AACD,KAnKkB,CAmKjB;;;AAGF,WAAO3I,MAAP;AACD;;AAED4B,EAAAA,MAAM,GAAG;AACP,UAAM5B,MAAM,GAAG,IAAf;AACA,QAAIA,MAAM,CAACe,OAAX,EAAoB;AACpBf,IAAAA,MAAM,CAACe,OAAP,GAAiB,IAAjB;;AAEA,QAAIf,MAAM,CAACrG,MAAP,CAAciL,UAAlB,EAA8B;AAC5B5E,MAAAA,MAAM,CAAC4I,aAAP;AACD;;AAED5I,IAAAA,MAAM,CAAC6B,IAAP,CAAY,QAAZ;AACD;;AAEDF,EAAAA,OAAO,GAAG;AACR,UAAM3B,MAAM,GAAG,IAAf;AACA,QAAI,CAACA,MAAM,CAACe,OAAZ,EAAqB;AACrBf,IAAAA,MAAM,CAACe,OAAP,GAAiB,KAAjB;;AAEA,QAAIf,MAAM,CAACrG,MAAP,CAAciL,UAAlB,EAA8B;AAC5B5E,MAAAA,MAAM,CAAC6I,eAAP;AACD;;AAED7I,IAAAA,MAAM,CAAC6B,IAAP,CAAY,SAAZ;AACD;;AAEDiH,EAAAA,WAAW,CAAC5P,QAAD,EAAWlR,KAAX,EAAkB;AAC3B,UAAMgY,MAAM,GAAG,IAAf;AACA9G,IAAAA,QAAQ,GAAGT,IAAI,CAACE,GAAL,CAASF,IAAI,CAACC,GAAL,CAASQ,QAAT,EAAmB,CAAnB,CAAT,EAAgC,CAAhC,CAAX;AACA,UAAMP,GAAG,GAAGqH,MAAM,CAAC+I,YAAP,EAAZ;AACA,UAAMrQ,GAAG,GAAGsH,MAAM,CAACgJ,YAAP,EAAZ;AACA,UAAM7f,OAAO,GAAG,CAACuP,GAAG,GAAGC,GAAP,IAAcO,QAAd,GAAyBP,GAAzC;AACAqH,IAAAA,MAAM,CAACiJ,WAAP,CAAmB9f,OAAnB,EAA4B,OAAOnB,KAAP,KAAiB,WAAjB,GAA+B,CAA/B,GAAmCA,KAA/D;AACAgY,IAAAA,MAAM,CAACkJ,iBAAP;AACAlJ,IAAAA,MAAM,CAACmJ,mBAAP;AACD;;AAEDlI,EAAAA,oBAAoB,GAAG;AACrB,UAAMjB,MAAM,GAAG,IAAf;AACA,QAAI,CAACA,MAAM,CAACrG,MAAP,CAAcyP,YAAf,IAA+B,CAACpJ,MAAM,CAAC3X,EAA3C,EAA+C;AAC/C,UAAMghB,GAAG,GAAGrJ,MAAM,CAAC3X,EAAP,CAAUiG,SAAV,CAAoBH,KAApB,CAA0B,GAA1B,EAA+B/B,MAA/B,CAAsCkC,SAAS,IAAI;AAC7D,aAAOA,SAAS,CAAC9B,OAAV,CAAkB,QAAlB,MAAgC,CAAhC,IAAqC8B,SAAS,CAAC9B,OAAV,CAAkBwT,MAAM,CAACrG,MAAP,CAAcqH,sBAAhC,MAA4D,CAAxG;AACD,KAFW,CAAZ;AAGAhB,IAAAA,MAAM,CAAC6B,IAAP,CAAY,mBAAZ,EAAiCwH,GAAG,CAACtF,IAAJ,CAAS,GAAT,CAAjC;AACD;;AAEDuF,EAAAA,eAAe,CAACC,OAAD,EAAU;AACvB,UAAMvJ,MAAM,GAAG,IAAf;AACA,WAAOuJ,OAAO,CAACjb,SAAR,CAAkBH,KAAlB,CAAwB,GAAxB,EAA6B/B,MAA7B,CAAoCkC,SAAS,IAAI;AACtD,aAAOA,SAAS,CAAC9B,OAAV,CAAkB,cAAlB,MAAsC,CAAtC,IAA2C8B,SAAS,CAAC9B,OAAV,CAAkBwT,MAAM,CAACrG,MAAP,CAAc6P,UAAhC,MAAgD,CAAlG;AACD,KAFM,EAEJzF,IAFI,CAEC,GAFD,CAAP;AAGD;;AAED0F,EAAAA,iBAAiB,GAAG;AAClB,UAAMzJ,MAAM,GAAG,IAAf;AACA,QAAI,CAACA,MAAM,CAACrG,MAAP,CAAcyP,YAAf,IAA+B,CAACpJ,MAAM,CAAC3X,EAA3C,EAA+C;AAC/C,UAAMqhB,OAAO,GAAG,EAAhB;AACA1J,IAAAA,MAAM,CAACuC,MAAP,CAAc1N,IAAd,CAAmB0U,OAAO,IAAI;AAC5B,YAAMvb,UAAU,GAAGgS,MAAM,CAACsJ,eAAP,CAAuBC,OAAvB,CAAnB;AACAG,MAAAA,OAAO,CAAC1d,IAAR,CAAa;AACXud,QAAAA,OADW;AAEXvb,QAAAA;AAFW,OAAb;AAIAgS,MAAAA,MAAM,CAAC6B,IAAP,CAAY,aAAZ,EAA2B0H,OAA3B,EAAoCvb,UAApC;AACD,KAPD;AAQAgS,IAAAA,MAAM,CAAC6B,IAAP,CAAY,eAAZ,EAA6B6H,OAA7B;AACD;;AAEDC,EAAAA,oBAAoB,CAACC,IAAI,GAAG,SAAR,EAAmBC,KAAK,GAAG,KAA3B,EAAkC;AACpD,UAAM7J,MAAM,GAAG,IAAf;AACA,UAAM;AACJrG,MAAAA,MADI;AAEJ4I,MAAAA,MAFI;AAGJE,MAAAA,UAHI;AAIJC,MAAAA,eAJI;AAKJC,MAAAA,IAAI,EAAEmH,UALF;AAMJ3J,MAAAA;AANI,QAOFH,MAPJ;AAQA,QAAI+J,GAAG,GAAG,CAAV;;AAEA,QAAIpQ,MAAM,CAACmK,cAAX,EAA2B;AACzB,UAAIkG,SAAS,GAAGzH,MAAM,CAACpC,WAAD,CAAN,CAAoB8J,eAApC;AACA,UAAIC,SAAJ;;AAEA,WAAK,IAAIjgB,CAAC,GAAGkW,WAAW,GAAG,CAA3B,EAA8BlW,CAAC,GAAGsY,MAAM,CAACjY,MAAzC,EAAiDL,CAAC,IAAI,CAAtD,EAAyD;AACvD,YAAIsY,MAAM,CAACtY,CAAD,CAAN,IAAa,CAACigB,SAAlB,EAA6B;AAC3BF,UAAAA,SAAS,IAAIzH,MAAM,CAACtY,CAAD,CAAN,CAAUggB,eAAvB;AACAF,UAAAA,GAAG,IAAI,CAAP;AACA,cAAIC,SAAS,GAAGF,UAAhB,EAA4BI,SAAS,GAAG,IAAZ;AAC7B;AACF;;AAED,WAAK,IAAIjgB,CAAC,GAAGkW,WAAW,GAAG,CAA3B,EAA8BlW,CAAC,IAAI,CAAnC,EAAsCA,CAAC,IAAI,CAA3C,EAA8C;AAC5C,YAAIsY,MAAM,CAACtY,CAAD,CAAN,IAAa,CAACigB,SAAlB,EAA6B;AAC3BF,UAAAA,SAAS,IAAIzH,MAAM,CAACtY,CAAD,CAAN,CAAUggB,eAAvB;AACAF,UAAAA,GAAG,IAAI,CAAP;AACA,cAAIC,SAAS,GAAGF,UAAhB,EAA4BI,SAAS,GAAG,IAAZ;AAC7B;AACF;AACF,KAnBD,MAmBO;AACL;AACA,UAAIN,IAAI,KAAK,SAAb,EAAwB;AACtB,aAAK,IAAI3f,CAAC,GAAGkW,WAAW,GAAG,CAA3B,EAA8BlW,CAAC,GAAGsY,MAAM,CAACjY,MAAzC,EAAiDL,CAAC,IAAI,CAAtD,EAAyD;AACvD,gBAAMkgB,WAAW,GAAGN,KAAK,GAAGpH,UAAU,CAACxY,CAAD,CAAV,GAAgByY,eAAe,CAACzY,CAAD,CAA/B,GAAqCwY,UAAU,CAACtC,WAAD,CAA/C,GAA+D2J,UAAlE,GAA+ErH,UAAU,CAACxY,CAAD,CAAV,GAAgBwY,UAAU,CAACtC,WAAD,CAA1B,GAA0C2J,UAAlJ;;AAEA,cAAIK,WAAJ,EAAiB;AACfJ,YAAAA,GAAG,IAAI,CAAP;AACD;AACF;AACF,OARD,MAQO;AACL;AACA,aAAK,IAAI9f,CAAC,GAAGkW,WAAW,GAAG,CAA3B,EAA8BlW,CAAC,IAAI,CAAnC,EAAsCA,CAAC,IAAI,CAA3C,EAA8C;AAC5C,gBAAMkgB,WAAW,GAAG1H,UAAU,CAACtC,WAAD,CAAV,GAA0BsC,UAAU,CAACxY,CAAD,CAApC,GAA0C6f,UAA9D;;AAEA,cAAIK,WAAJ,EAAiB;AACfJ,YAAAA,GAAG,IAAI,CAAP;AACD;AACF;AACF;AACF;;AAED,WAAOA,GAAP;AACD;;AAEDtF,EAAAA,MAAM,GAAG;AACP,UAAMzE,MAAM,GAAG,IAAf;AACA,QAAI,CAACA,MAAD,IAAWA,MAAM,CAACoK,SAAtB,EAAiC;AACjC,UAAM;AACJxH,MAAAA,QADI;AAEJjJ,MAAAA;AAFI,QAGFqG,MAHJ,CAHO,CAMK;;AAEZ,QAAIrG,MAAM,CAAC5R,WAAX,EAAwB;AACtBiY,MAAAA,MAAM,CAACF,aAAP;AACD;;AAEDE,IAAAA,MAAM,CAACqK,UAAP;AACArK,IAAAA,MAAM,CAACgC,YAAP;AACAhC,IAAAA,MAAM,CAACsK,cAAP;AACAtK,IAAAA,MAAM,CAACmJ,mBAAP;;AAEA,aAASoB,YAAT,GAAwB;AACtB,YAAMC,cAAc,GAAGxK,MAAM,CAACyK,YAAP,GAAsBzK,MAAM,CAAC0E,SAAP,GAAmB,CAAC,CAA1C,GAA8C1E,MAAM,CAAC0E,SAA5E;AACA,YAAMgG,YAAY,GAAGjS,IAAI,CAACE,GAAL,CAASF,IAAI,CAACC,GAAL,CAAS8R,cAAT,EAAyBxK,MAAM,CAACgJ,YAAP,EAAzB,CAAT,EAA0DhJ,MAAM,CAAC+I,YAAP,EAA1D,CAArB;AACA/I,MAAAA,MAAM,CAACuK,YAAP,CAAoBG,YAApB;AACA1K,MAAAA,MAAM,CAACkJ,iBAAP;AACAlJ,MAAAA,MAAM,CAACmJ,mBAAP;AACD;;AAED,QAAIwB,UAAJ;;AAEA,QAAI3K,MAAM,CAACrG,MAAP,CAAc8J,QAAd,IAA0BzD,MAAM,CAACrG,MAAP,CAAc8J,QAAd,CAAuB1C,OAArD,EAA8D;AAC5DwJ,MAAAA,YAAY;;AAEZ,UAAIvK,MAAM,CAACrG,MAAP,CAAc+J,UAAlB,EAA8B;AAC5B1D,QAAAA,MAAM,CAAC4K,gBAAP;AACD;AACF,KAND,MAMO;AACL,UAAI,CAAC5K,MAAM,CAACrG,MAAP,CAAc9R,aAAd,KAAgC,MAAhC,IAA0CmY,MAAM,CAACrG,MAAP,CAAc9R,aAAd,GAA8B,CAAzE,KAA+EmY,MAAM,CAAC6C,KAAtF,IAA+F,CAAC7C,MAAM,CAACrG,MAAP,CAAcmK,cAAlH,EAAkI;AAChI6G,QAAAA,UAAU,GAAG3K,MAAM,CAACiC,OAAP,CAAejC,MAAM,CAACuC,MAAP,CAAcjY,MAAd,GAAuB,CAAtC,EAAyC,CAAzC,EAA4C,KAA5C,EAAmD,IAAnD,CAAb;AACD,OAFD,MAEO;AACLqgB,QAAAA,UAAU,GAAG3K,MAAM,CAACiC,OAAP,CAAejC,MAAM,CAACG,WAAtB,EAAmC,CAAnC,EAAsC,KAAtC,EAA6C,IAA7C,CAAb;AACD;;AAED,UAAI,CAACwK,UAAL,EAAiB;AACfJ,QAAAA,YAAY;AACb;AACF;;AAED,QAAI5Q,MAAM,CAACkR,aAAP,IAAwBjI,QAAQ,KAAK5C,MAAM,CAAC4C,QAAhD,EAA0D;AACxD5C,MAAAA,MAAM,CAACkC,aAAP;AACD;;AAEDlC,IAAAA,MAAM,CAAC6B,IAAP,CAAY,QAAZ;AACD;;AAEDP,EAAAA,eAAe,CAACwJ,YAAD,EAAeC,UAAU,GAAG,IAA5B,EAAkC;AAC/C,UAAM/K,MAAM,GAAG,IAAf;AACA,UAAMgL,gBAAgB,GAAGhL,MAAM,CAACrG,MAAP,CAAcyH,SAAvC;;AAEA,QAAI,CAAC0J,YAAL,EAAmB;AACjB;AACAA,MAAAA,YAAY,GAAGE,gBAAgB,KAAK,YAArB,GAAoC,UAApC,GAAiD,YAAhE;AACD;;AAED,QAAIF,YAAY,KAAKE,gBAAjB,IAAqCF,YAAY,KAAK,YAAjB,IAAiCA,YAAY,KAAK,UAA3F,EAAuG;AACrG,aAAO9K,MAAP;AACD;;AAEDA,IAAAA,MAAM,CAACM,GAAP,CAAWlS,WAAX,CAAwB,GAAE4R,MAAM,CAACrG,MAAP,CAAcqH,sBAAuB,GAAEgK,gBAAiB,EAAlF,EAAqFld,QAArF,CAA+F,GAAEkS,MAAM,CAACrG,MAAP,CAAcqH,sBAAuB,GAAE8J,YAAa,EAArJ;AACA9K,IAAAA,MAAM,CAACiB,oBAAP;AACAjB,IAAAA,MAAM,CAACrG,MAAP,CAAcyH,SAAd,GAA0B0J,YAA1B;AACA9K,IAAAA,MAAM,CAACuC,MAAP,CAAc1N,IAAd,CAAmB0U,OAAO,IAAI;AAC5B,UAAIuB,YAAY,KAAK,UAArB,EAAiC;AAC/BvB,QAAAA,OAAO,CAACjZ,KAAR,CAAc+C,KAAd,GAAsB,EAAtB;AACD,OAFD,MAEO;AACLkW,QAAAA,OAAO,CAACjZ,KAAR,CAAcuD,MAAd,GAAuB,EAAvB;AACD;AACF,KAND;AAOAmM,IAAAA,MAAM,CAAC6B,IAAP,CAAY,iBAAZ;AACA,QAAIkJ,UAAJ,EAAgB/K,MAAM,CAACyE,MAAP;AAChB,WAAOzE,MAAP;AACD;;AAEDiL,EAAAA,KAAK,CAAC5iB,EAAD,EAAK;AACR,UAAM2X,MAAM,GAAG,IAAf;AACA,QAAIA,MAAM,CAACkL,OAAX,EAAoB,OAAO,IAAP,CAFZ,CAEyB;;AAEjC,UAAM5K,GAAG,GAAGlT,0DAAC,CAAC/E,EAAE,IAAI2X,MAAM,CAACrG,MAAP,CAActR,EAArB,CAAb;AACAA,IAAAA,EAAE,GAAGiY,GAAG,CAAC,CAAD,CAAR;;AAEA,QAAI,CAACjY,EAAL,EAAS;AACP,aAAO,KAAP;AACD;;AAEDA,IAAAA,EAAE,CAAC2X,MAAH,GAAYA,MAAZ;;AAEA,UAAMmL,kBAAkB,GAAG,MAAM;AAC/B,aAAQ,IAAG,CAACnL,MAAM,CAACrG,MAAP,CAAcyR,YAAd,IAA8B,EAA/B,EAAmC9d,IAAnC,GAA0Ca,KAA1C,CAAgD,GAAhD,EAAqD4V,IAArD,CAA0D,GAA1D,CAA+D,EAA1E;AACD,KAFD;;AAIA,UAAMsH,UAAU,GAAG,MAAM;AACvB,UAAIhjB,EAAE,IAAIA,EAAE,CAACijB,UAAT,IAAuBjjB,EAAE,CAACijB,UAAH,CAAc3hB,aAAzC,EAAwD;AACtD,cAAMmC,GAAG,GAAGsB,0DAAC,CAAC/E,EAAE,CAACijB,UAAH,CAAc3hB,aAAd,CAA4BwhB,kBAAkB,EAA9C,CAAD,CAAb,CADsD,CACY;;AAElErf,QAAAA,GAAG,CAAC0L,QAAJ,GAAerH,OAAO,IAAImQ,GAAG,CAAC9I,QAAJ,CAAarH,OAAb,CAA1B;;AAEA,eAAOrE,GAAP;AACD;;AAED,aAAOwU,GAAG,CAAC9I,QAAJ,CAAa2T,kBAAkB,EAA/B,CAAP;AACD,KAVD,CAjBQ,CA2BL;;;AAGH,QAAII,UAAU,GAAGF,UAAU,EAA3B;;AAEA,QAAIE,UAAU,CAACjhB,MAAX,KAAsB,CAAtB,IAA2B0V,MAAM,CAACrG,MAAP,CAAc6R,cAA7C,EAA6D;AAC3D,YAAM7iB,QAAQ,GAAGoC,uDAAW,EAA5B;AACA,YAAM0gB,OAAO,GAAG9iB,QAAQ,CAAC8E,aAAT,CAAuB,KAAvB,CAAhB;AACA8d,MAAAA,UAAU,GAAGne,0DAAC,CAACqe,OAAD,CAAd;AACAA,MAAAA,OAAO,CAACnd,SAAR,GAAoB0R,MAAM,CAACrG,MAAP,CAAcyR,YAAlC;AACA9K,MAAAA,GAAG,CAAC5K,MAAJ,CAAW+V,OAAX;AACAnL,MAAAA,GAAG,CAAC9I,QAAJ,CAAc,IAAGwI,MAAM,CAACrG,MAAP,CAAc6P,UAAW,EAA1C,EAA6C3U,IAA7C,CAAkD0U,OAAO,IAAI;AAC3DgC,QAAAA,UAAU,CAAC7V,MAAX,CAAkB6T,OAAlB;AACD,OAFD;AAGD;;AAEDne,IAAAA,MAAM,CAACsO,MAAP,CAAcsG,MAAd,EAAsB;AACpBM,MAAAA,GADoB;AAEpBjY,MAAAA,EAFoB;AAGpBkjB,MAAAA,UAHoB;AAIpBG,MAAAA,SAAS,EAAEH,UAAU,CAAC,CAAD,CAJD;AAKpBL,MAAAA,OAAO,EAAE,IALW;AAMpB;AACA9H,MAAAA,GAAG,EAAE/a,EAAE,CAACsjB,GAAH,CAAOhf,WAAP,OAAyB,KAAzB,IAAkC2T,GAAG,CAAC/M,GAAJ,CAAQ,WAAR,MAAyB,KAP5C;AAQpBkX,MAAAA,YAAY,EAAEzK,MAAM,CAACrG,MAAP,CAAcyH,SAAd,KAA4B,YAA5B,KAA6C/Y,EAAE,CAACsjB,GAAH,CAAOhf,WAAP,OAAyB,KAAzB,IAAkC2T,GAAG,CAAC/M,GAAJ,CAAQ,WAAR,MAAyB,KAAxG,CARM;AASpBqY,MAAAA,QAAQ,EAAEL,UAAU,CAAChY,GAAX,CAAe,SAAf,MAA8B;AATpB,KAAtB;AAWA,WAAO,IAAP;AACD;;AAEDoV,EAAAA,IAAI,CAACtgB,EAAD,EAAK;AACP,UAAM2X,MAAM,GAAG,IAAf;AACA,QAAIA,MAAM,CAACI,WAAX,EAAwB,OAAOJ,MAAP;AACxB,UAAMkL,OAAO,GAAGlL,MAAM,CAACiL,KAAP,CAAa5iB,EAAb,CAAhB;AACA,QAAI6iB,OAAO,KAAK,KAAhB,EAAuB,OAAOlL,MAAP;AACvBA,IAAAA,MAAM,CAAC6B,IAAP,CAAY,YAAZ,EALO,CAKoB;;AAE3B,QAAI7B,MAAM,CAACrG,MAAP,CAAc5R,WAAlB,EAA+B;AAC7BiY,MAAAA,MAAM,CAACF,aAAP;AACD,KATM,CASL;;;AAGFE,IAAAA,MAAM,CAACmD,UAAP,GAZO,CAYc;;AAErB,QAAInD,MAAM,CAACrG,MAAP,CAAc/R,IAAlB,EAAwB;AACtBoY,MAAAA,MAAM,CAAC+B,UAAP;AACD,KAhBM,CAgBL;;;AAGF/B,IAAAA,MAAM,CAACqK,UAAP,GAnBO,CAmBc;;AAErBrK,IAAAA,MAAM,CAACgC,YAAP;;AAEA,QAAIhC,MAAM,CAACrG,MAAP,CAAckR,aAAlB,EAAiC;AAC/B7K,MAAAA,MAAM,CAACkC,aAAP;AACD,KAzBM,CAyBL;;;AAGF,QAAIlC,MAAM,CAACrG,MAAP,CAAciL,UAAd,IAA4B5E,MAAM,CAACe,OAAvC,EAAgD;AAC9Cf,MAAAA,MAAM,CAAC4I,aAAP;AACD;;AAED,QAAI5I,MAAM,CAACrG,MAAP,CAAckS,aAAlB,EAAiC;AAC/B7L,MAAAA,MAAM,CAAC6L,aAAP;AACD,KAlCM,CAkCL;;;AAGF,QAAI7L,MAAM,CAACrG,MAAP,CAAc/R,IAAlB,EAAwB;AACtBoY,MAAAA,MAAM,CAACiC,OAAP,CAAejC,MAAM,CAACrG,MAAP,CAAcmS,YAAd,GAA6B9L,MAAM,CAACK,YAAnD,EAAiE,CAAjE,EAAoEL,MAAM,CAACrG,MAAP,CAAcoS,kBAAlF,EAAsG,KAAtG,EAA6G,IAA7G;AACD,KAFD,MAEO;AACL/L,MAAAA,MAAM,CAACiC,OAAP,CAAejC,MAAM,CAACrG,MAAP,CAAcmS,YAA7B,EAA2C,CAA3C,EAA8C9L,MAAM,CAACrG,MAAP,CAAcoS,kBAA5D,EAAgF,KAAhF,EAAuF,IAAvF;AACD,KAzCM,CAyCL;;;AAGF/L,IAAAA,MAAM,CAACgM,YAAP,GA5CO,CA4CgB;;AAEvBhM,IAAAA,MAAM,CAACI,WAAP,GAAqB,IAArB,CA9CO,CA8CoB;;AAE3BJ,IAAAA,MAAM,CAAC6B,IAAP,CAAY,MAAZ;AACA7B,IAAAA,MAAM,CAAC6B,IAAP,CAAY,WAAZ;AACA,WAAO7B,MAAP;AACD;;AAEDiM,EAAAA,OAAO,CAACC,cAAc,GAAG,IAAlB,EAAwBC,WAAW,GAAG,IAAtC,EAA4C;AACjD,UAAMnM,MAAM,GAAG,IAAf;AACA,UAAM;AACJrG,MAAAA,MADI;AAEJ2G,MAAAA,GAFI;AAGJiL,MAAAA,UAHI;AAIJhJ,MAAAA;AAJI,QAKFvC,MALJ;;AAOA,QAAI,OAAOA,MAAM,CAACrG,MAAd,KAAyB,WAAzB,IAAwCqG,MAAM,CAACoK,SAAnD,EAA8D;AAC5D,aAAO,IAAP;AACD;;AAEDpK,IAAAA,MAAM,CAAC6B,IAAP,CAAY,eAAZ,EAbiD,CAanB;;AAE9B7B,IAAAA,MAAM,CAACI,WAAP,GAAqB,KAArB,CAfiD,CAerB;;AAE5BJ,IAAAA,MAAM,CAACoM,YAAP,GAjBiD,CAiB1B;;AAEvB,QAAIzS,MAAM,CAAC/R,IAAX,EAAiB;AACfoY,MAAAA,MAAM,CAAC8B,WAAP;AACD,KArBgD,CAqB/C;;;AAGF,QAAIqK,WAAJ,EAAiB;AACfnM,MAAAA,MAAM,CAACgE,aAAP;AACA1D,MAAAA,GAAG,CAACvR,UAAJ,CAAe,OAAf;AACAwc,MAAAA,UAAU,CAACxc,UAAX,CAAsB,OAAtB;;AAEA,UAAIwT,MAAM,IAAIA,MAAM,CAACjY,MAArB,EAA6B;AAC3BiY,QAAAA,MAAM,CAACnU,WAAP,CAAmB,CAACuL,MAAM,CAAC0S,iBAAR,EAA2B1S,MAAM,CAAC2S,gBAAlC,EAAoD3S,MAAM,CAAC4S,cAA3D,EAA2E5S,MAAM,CAAC6S,cAAlF,EAAkGzI,IAAlG,CAAuG,GAAvG,CAAnB,EAAgIhV,UAAhI,CAA2I,OAA3I,EAAoJA,UAApJ,CAA+J,yBAA/J;AACD;AACF;;AAEDiR,IAAAA,MAAM,CAAC6B,IAAP,CAAY,SAAZ,EAlCiD,CAkCzB;;AAExBzW,IAAAA,MAAM,CAACyP,IAAP,CAAYmF,MAAM,CAACwF,eAAnB,EAAoCtc,OAApC,CAA4CqJ,SAAS,IAAI;AACvDyN,MAAAA,MAAM,CAACjO,GAAP,CAAWQ,SAAX;AACD,KAFD;;AAIA,QAAI2Z,cAAc,KAAK,KAAvB,EAA8B;AAC5BlM,MAAAA,MAAM,CAACM,GAAP,CAAW,CAAX,EAAcN,MAAd,GAAuB,IAAvB;AACAkE,MAAAA,6DAAW,CAAClE,MAAD,CAAX;AACD;;AAEDA,IAAAA,MAAM,CAACoK,SAAP,GAAmB,IAAnB;AACA,WAAO,IAAP;AACD;;AAEoB,SAAdqC,cAAc,CAACC,WAAD,EAAc;AACjC5P,IAAAA,wDAAM,CAACmI,gBAAD,EAAmByH,WAAnB,CAAN;AACD;;AAE0B,aAAhBzH,gBAAgB,GAAG;AAC5B,WAAOA,gBAAP;AACD;;AAEkB,aAARH,QAAQ,GAAG;AACpB,WAAOA,qDAAP;AACD;;AAEmB,SAAb6H,aAAa,CAAC9G,GAAD,EAAM;AACxB,QAAI,CAACte,MAAM,CAAC4E,SAAP,CAAiBwZ,WAAtB,EAAmCpe,MAAM,CAAC4E,SAAP,CAAiBwZ,WAAjB,GAA+B,EAA/B;AACnC,UAAMD,OAAO,GAAGne,MAAM,CAAC4E,SAAP,CAAiBwZ,WAAjC;;AAEA,QAAI,OAAOE,GAAP,KAAe,UAAf,IAA6BH,OAAO,CAAClZ,OAAR,CAAgBqZ,GAAhB,IAAuB,CAAxD,EAA2D;AACzDH,MAAAA,OAAO,CAAC1Z,IAAR,CAAa6Z,GAAb;AACD;AACF;;AAES,SAAHle,GAAG,CAACilB,MAAD,EAAS;AACjB,QAAInhB,KAAK,CAACM,OAAN,CAAc6gB,MAAd,CAAJ,EAA2B;AACzBA,MAAAA,MAAM,CAAC1jB,OAAP,CAAe2jB,CAAC,IAAItlB,MAAM,CAAColB,aAAP,CAAqBE,CAArB,CAApB;AACA,aAAOtlB,MAAP;AACD;;AAEDA,IAAAA,MAAM,CAAColB,aAAP,CAAqBC,MAArB;AACA,WAAOrlB,MAAP;AACD;;AAhjBU;;AAojBb6D,MAAM,CAACyP,IAAP,CAAYmK,UAAZ,EAAwB9b,OAAxB,CAAgC4jB,cAAc,IAAI;AAChD1hB,EAAAA,MAAM,CAACyP,IAAP,CAAYmK,UAAU,CAAC8H,cAAD,CAAtB,EAAwC5jB,OAAxC,CAAgD6jB,WAAW,IAAI;AAC7DxlB,IAAAA,MAAM,CAAC4E,SAAP,CAAiB4gB,WAAjB,IAAgC/H,UAAU,CAAC8H,cAAD,CAAV,CAA2BC,WAA3B,CAAhC;AACD,GAFD;AAGD,CAJD;AAKAxlB,MAAM,CAACI,GAAP,CAAW,CAAC2c,iEAAD,EAASC,qEAAT,CAAX;AACA,iEAAehd,MAAf;;;;;;;;;;;;;;ACjmBA,iEAAe;AACbohB,EAAAA,IAAI,EAAE,IADO;AAEbvH,EAAAA,SAAS,EAAE,YAFE;AAGb4L,EAAAA,iBAAiB,EAAE,SAHN;AAIblB,EAAAA,YAAY,EAAE,CAJD;AAKb9jB,EAAAA,KAAK,EAAE,GALM;AAMb6b,EAAAA,OAAO,EAAE,KANI;AAOboJ,EAAAA,oBAAoB,EAAE,IAPT;AAQbC,EAAAA,cAAc,EAAE,IARH;AASbC,EAAAA,MAAM,EAAE,KATK;AAUb3B,EAAAA,cAAc,EAAE,KAVH;AAWbzK,EAAAA,OAAO,EAAE,IAXI;AAYb4G,EAAAA,iBAAiB,EAAE,uDAZN;AAab;AACAtU,EAAAA,KAAK,EAAE,IAdM;AAebQ,EAAAA,MAAM,EAAE,IAfK;AAgBb;AACAuZ,EAAAA,8BAA8B,EAAE,KAjBnB;AAkBb;AACAhP,EAAAA,SAAS,EAAE,IAnBE;AAoBbiP,EAAAA,GAAG,EAAE,IApBQ;AAqBb;AACAC,EAAAA,kBAAkB,EAAE,KAtBP;AAuBbC,EAAAA,kBAAkB,EAAE,EAvBP;AAwBb;AACA7J,EAAAA,UAAU,EAAE,KAzBC;AA0Bb;AACA8J,EAAAA,cAAc,EAAE,KA3BH;AA4Bb;AACAC,EAAAA,gBAAgB,EAAE,KA7BL;AA8Bb;AACAxlB,EAAAA,MAAM,EAAE,OA/BK;AAgCb;AACA;AACAF,EAAAA,WAAW,EAAE6G,SAlCA;AAmCb2R,EAAAA,eAAe,EAAE,QAnCJ;AAoCb;AACAzY,EAAAA,YAAY,EAAE,CArCD;AAsCbD,EAAAA,aAAa,EAAE,CAtCF;AAuCb6lB,EAAAA,cAAc,EAAE,CAvCH;AAwCbC,EAAAA,kBAAkB,EAAE,CAxCP;AAyCbC,EAAAA,kBAAkB,EAAE,KAzCP;AA0Cb9J,EAAAA,cAAc,EAAE,KA1CH;AA2Cb+J,EAAAA,oBAAoB,EAAE,KA3CT;AA4CbxL,EAAAA,kBAAkB,EAAE,CA5CP;AA6Cb;AACAyL,EAAAA,iBAAiB,EAAE,CA9CN;AA+Cb;AACAC,EAAAA,mBAAmB,EAAE,IAhDR;AAiDbC,EAAAA,wBAAwB,EAAE,KAjDb;AAkDb;AACAnD,EAAAA,aAAa,EAAE,IAnDF;AAoDb;AACAoD,EAAAA,YAAY,EAAE,KArDD;AAsDb;AACAC,EAAAA,UAAU,EAAE,CAvDC;AAwDbC,EAAAA,UAAU,EAAE,EAxDC;AAyDblH,EAAAA,aAAa,EAAE,IAzDF;AA0DbmH,EAAAA,WAAW,EAAE,IA1DA;AA2DbC,EAAAA,UAAU,EAAE,IA3DC;AA4DbC,EAAAA,eAAe,EAAE,GA5DJ;AA6DbC,EAAAA,YAAY,EAAE,GA7DD;AA8DbC,EAAAA,YAAY,EAAE,IA9DD;AA+DbhN,EAAAA,cAAc,EAAE,IA/DH;AAgEbiN,EAAAA,SAAS,EAAE,CAhEE;AAiEbC,EAAAA,wBAAwB,EAAE,KAjEb;AAkEbC,EAAAA,wBAAwB,EAAE,IAlEb;AAmEbC,EAAAA,6BAA6B,EAAE,KAnElB;AAoEbC,EAAAA,mBAAmB,EAAE,KApER;AAqEb;AACAC,EAAAA,iBAAiB,EAAE,IAtEN;AAuEb;AACAC,EAAAA,UAAU,EAAE,IAxEC;AAyEbC,EAAAA,eAAe,EAAE,IAzEJ;AA0Eb;AACAC,EAAAA,mBAAmB,EAAE,KA3ER;AA4Eb;AACArK,EAAAA,UAAU,EAAE,KA7EC;AA8Eb;AACAsK,EAAAA,aAAa,EAAE,IA/EF;AAgFbC,EAAAA,wBAAwB,EAAE,IAhFb;AAiFbC,EAAAA,mBAAmB,EAAE,KAjFR;AAkFb;AACAvD,EAAAA,aAAa,EAAE,IAnFF;AAoFbwD,EAAAA,mBAAmB,EAAE,IApFR;AAqFb;AACAznB,EAAAA,IAAI,EAAE,KAtFO;AAuFb0nB,EAAAA,oBAAoB,EAAE,CAvFT;AAwFbjP,EAAAA,YAAY,EAAE,IAxFD;AAyFbkP,EAAAA,sBAAsB,EAAE,KAzFX;AA0FbC,EAAAA,iBAAiB,EAAE,IA1FN;AA2Fb;AACA9N,EAAAA,cAAc,EAAE,IA5FH;AA6FbD,EAAAA,cAAc,EAAE,IA7FH;AA8FbgO,EAAAA,YAAY,EAAE,IA9FD;AA+Fb;AACAC,EAAAA,SAAS,EAAE,IAhGE;AAiGbC,EAAAA,cAAc,EAAE,mBAjGH;AAkGbC,EAAAA,iBAAiB,EAAE,IAlGN;AAmGb;AACAC,EAAAA,gBAAgB,EAAE,IApGL;AAqGb;AACA7O,EAAAA,sBAAsB,EAAE,SAtGX;AAuGb;AACAwI,EAAAA,UAAU,EAAE,cAxGC;AAyGbsG,EAAAA,eAAe,EAAE,8BAzGJ;AA0GbxD,EAAAA,gBAAgB,EAAE,qBA1GL;AA2GbyD,EAAAA,yBAAyB,EAAE,+BA3Gd;AA4Gb1D,EAAAA,iBAAiB,EAAE,sBA5GN;AA6Gb2D,EAAAA,mBAAmB,EAAE,wBA7GR;AA8GbzD,EAAAA,cAAc,EAAE,mBA9GH;AA+Gb0D,EAAAA,uBAAuB,EAAE,6BA/GZ;AAgHbzD,EAAAA,cAAc,EAAE,mBAhHH;AAiHb0D,EAAAA,uBAAuB,EAAE,6BAjHZ;AAkHb9E,EAAAA,YAAY,EAAE,gBAlHD;AAmHb;AACAW,EAAAA,kBAAkB,EAAE,IApHP;AAqHb;AACA3C,EAAAA,YAAY,EAAE;AAtHD,CAAf;;;;;;;;;;;;;;ACAA;AACA,iEAAe;AACb1Y,EAAAA,EAAE,CAACgB,MAAD,EAASO,OAAT,EAAkBke,QAAlB,EAA4B;AAC5B,UAAMC,IAAI,GAAG,IAAb;AACA,QAAI,OAAOne,OAAP,KAAmB,UAAvB,EAAmC,OAAOme,IAAP;AACnC,UAAMC,MAAM,GAAGF,QAAQ,GAAG,SAAH,GAAe,MAAtC;AACAze,IAAAA,MAAM,CAACvD,KAAP,CAAa,GAAb,EAAkBjF,OAAlB,CAA0ByI,KAAK,IAAI;AACjC,UAAI,CAACye,IAAI,CAAC5K,eAAL,CAAqB7T,KAArB,CAAL,EAAkCye,IAAI,CAAC5K,eAAL,CAAqB7T,KAArB,IAA8B,EAA9B;AAClCye,MAAAA,IAAI,CAAC5K,eAAL,CAAqB7T,KAArB,EAA4B0e,MAA5B,EAAoCpe,OAApC;AACD,KAHD;AAIA,WAAOme,IAAP;AACD,GAVY;;AAYb/d,EAAAA,IAAI,CAACX,MAAD,EAASO,OAAT,EAAkBke,QAAlB,EAA4B;AAC9B,UAAMC,IAAI,GAAG,IAAb;AACA,QAAI,OAAOne,OAAP,KAAmB,UAAvB,EAAmC,OAAOme,IAAP;;AAEnC,aAAS5d,WAAT,CAAqB,GAAG7B,IAAxB,EAA8B;AAC5Byf,MAAAA,IAAI,CAACre,GAAL,CAASL,MAAT,EAAiBc,WAAjB;;AAEA,UAAIA,WAAW,CAAC8d,cAAhB,EAAgC;AAC9B,eAAO9d,WAAW,CAAC8d,cAAnB;AACD;;AAEDre,MAAAA,OAAO,CAACX,KAAR,CAAc8e,IAAd,EAAoBzf,IAApB;AACD;;AAED6B,IAAAA,WAAW,CAAC8d,cAAZ,GAA6Bre,OAA7B;AACA,WAAOme,IAAI,CAAC1f,EAAL,CAAQgB,MAAR,EAAgBc,WAAhB,EAA6B2d,QAA7B,CAAP;AACD,GA5BY;;AA8BbjK,EAAAA,KAAK,CAACjU,OAAD,EAAUke,QAAV,EAAoB;AACvB,UAAMC,IAAI,GAAG,IAAb;AACA,QAAI,OAAOne,OAAP,KAAmB,UAAvB,EAAmC,OAAOme,IAAP;AACnC,UAAMC,MAAM,GAAGF,QAAQ,GAAG,SAAH,GAAe,MAAtC;;AAEA,QAAIC,IAAI,CAAC3K,kBAAL,CAAwBjZ,OAAxB,CAAgCyF,OAAhC,IAA2C,CAA/C,EAAkD;AAChDme,MAAAA,IAAI,CAAC3K,kBAAL,CAAwB4K,MAAxB,EAAgCpe,OAAhC;AACD;;AAED,WAAOme,IAAP;AACD,GAxCY;;AA0CbG,EAAAA,MAAM,CAACte,OAAD,EAAU;AACd,UAAMme,IAAI,GAAG,IAAb;AACA,QAAI,CAACA,IAAI,CAAC3K,kBAAV,EAA8B,OAAO2K,IAAP;AAC9B,UAAMtb,KAAK,GAAGsb,IAAI,CAAC3K,kBAAL,CAAwBjZ,OAAxB,CAAgCyF,OAAhC,CAAd;;AAEA,QAAI6C,KAAK,IAAI,CAAb,EAAgB;AACdsb,MAAAA,IAAI,CAAC3K,kBAAL,CAAwBtT,MAAxB,CAA+B2C,KAA/B,EAAsC,CAAtC;AACD;;AAED,WAAOsb,IAAP;AACD,GApDY;;AAsDbre,EAAAA,GAAG,CAACL,MAAD,EAASO,OAAT,EAAkB;AACnB,UAAMme,IAAI,GAAG,IAAb;AACA,QAAI,CAACA,IAAI,CAAC5K,eAAV,EAA2B,OAAO4K,IAAP;AAC3B1e,IAAAA,MAAM,CAACvD,KAAP,CAAa,GAAb,EAAkBjF,OAAlB,CAA0ByI,KAAK,IAAI;AACjC,UAAI,OAAOM,OAAP,KAAmB,WAAvB,EAAoC;AAClCme,QAAAA,IAAI,CAAC5K,eAAL,CAAqB7T,KAArB,IAA8B,EAA9B;AACD,OAFD,MAEO,IAAIye,IAAI,CAAC5K,eAAL,CAAqB7T,KAArB,CAAJ,EAAiC;AACtCye,QAAAA,IAAI,CAAC5K,eAAL,CAAqB7T,KAArB,EAA4BzI,OAA5B,CAAoC,CAACoS,YAAD,EAAexG,KAAf,KAAyB;AAC3D,cAAIwG,YAAY,KAAKrJ,OAAjB,IAA4BqJ,YAAY,CAACgV,cAAb,IAA+BhV,YAAY,CAACgV,cAAb,KAAgCre,OAA/F,EAAwG;AACtGme,YAAAA,IAAI,CAAC5K,eAAL,CAAqB7T,KAArB,EAA4BQ,MAA5B,CAAmC2C,KAAnC,EAA0C,CAA1C;AACD;AACF,SAJD;AAKD;AACF,KAVD;AAWA,WAAOsb,IAAP;AACD,GArEY;;AAuEbvO,EAAAA,IAAI,CAAC,GAAGlR,IAAJ,EAAU;AACZ,UAAMyf,IAAI,GAAG,IAAb;AACA,QAAI,CAACA,IAAI,CAAC5K,eAAV,EAA2B,OAAO4K,IAAP;AAC3B,QAAI1e,MAAJ;AACA,QAAItC,IAAJ;AACA,QAAIlC,OAAJ;;AAEA,QAAI,OAAOyD,IAAI,CAAC,CAAD,CAAX,KAAmB,QAAnB,IAA+BlF,KAAK,CAACM,OAAN,CAAc4E,IAAI,CAAC,CAAD,CAAlB,CAAnC,EAA2D;AACzDe,MAAAA,MAAM,GAAGf,IAAI,CAAC,CAAD,CAAb;AACAvB,MAAAA,IAAI,GAAGuB,IAAI,CAACwU,KAAL,CAAW,CAAX,EAAcxU,IAAI,CAACrG,MAAnB,CAAP;AACA4C,MAAAA,OAAO,GAAGkjB,IAAV;AACD,KAJD,MAIO;AACL1e,MAAAA,MAAM,GAAGf,IAAI,CAAC,CAAD,CAAJ,CAAQe,MAAjB;AACAtC,MAAAA,IAAI,GAAGuB,IAAI,CAAC,CAAD,CAAJ,CAAQvB,IAAf;AACAlC,MAAAA,OAAO,GAAGyD,IAAI,CAAC,CAAD,CAAJ,CAAQzD,OAAR,IAAmBkjB,IAA7B;AACD;;AAEDhhB,IAAAA,IAAI,CAACgC,OAAL,CAAalE,OAAb;AACA,UAAMsjB,WAAW,GAAG/kB,KAAK,CAACM,OAAN,CAAc2F,MAAd,IAAwBA,MAAxB,GAAiCA,MAAM,CAACvD,KAAP,CAAa,GAAb,CAArD;AACAqiB,IAAAA,WAAW,CAACtnB,OAAZ,CAAoByI,KAAK,IAAI;AAC3B,UAAIye,IAAI,CAAC3K,kBAAL,IAA2B2K,IAAI,CAAC3K,kBAAL,CAAwBnb,MAAvD,EAA+D;AAC7D8lB,QAAAA,IAAI,CAAC3K,kBAAL,CAAwBvc,OAAxB,CAAgCoS,YAAY,IAAI;AAC9CA,UAAAA,YAAY,CAAChK,KAAb,CAAmBpE,OAAnB,EAA4B,CAACyE,KAAD,EAAQ,GAAGvC,IAAX,CAA5B;AACD,SAFD;AAGD;;AAED,UAAIghB,IAAI,CAAC5K,eAAL,IAAwB4K,IAAI,CAAC5K,eAAL,CAAqB7T,KAArB,CAA5B,EAAyD;AACvDye,QAAAA,IAAI,CAAC5K,eAAL,CAAqB7T,KAArB,EAA4BzI,OAA5B,CAAoCoS,YAAY,IAAI;AAClDA,UAAAA,YAAY,CAAChK,KAAb,CAAmBpE,OAAnB,EAA4BkC,IAA5B;AACD,SAFD;AAGD;AACF,KAZD;AAaA,WAAOghB,IAAP;AACD;;AAxGY,CAAf;;;;;;;;;;;;;;;;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIW,kBAAkB,GAAG,KAAzB;;AAEA,SAASC,kBAAT,GAA8B,CAAE;;AAEhC,MAAMtf,MAAM,GAAG,CAACsO,MAAD,EAASqQ,MAAT,KAAoB;AACjC,QAAM1nB,QAAQ,GAAGoC,uDAAW,EAA5B;AACA,QAAM;AACJ4O,IAAAA,MADI;AAEJ8M,IAAAA,WAFI;AAGJpe,IAAAA,EAHI;AAIJqjB,IAAAA,SAJI;AAKJrI,IAAAA,MALI;AAMJC,IAAAA;AANI,MAOFtD,MAPJ;AAQA,QAAMjP,OAAO,GAAG,CAAC,CAAC4I,MAAM,CAACwT,MAAzB;AACA,QAAM8D,SAAS,GAAGZ,MAAM,KAAK,IAAX,GAAkB,kBAAlB,GAAuC,qBAAzD;AACA,QAAMa,YAAY,GAAGb,MAArB,CAZiC,CAYJ;;AAE7B,MAAI,CAAC/M,OAAO,CAACE,KAAb,EAAoB;AAClBnb,IAAAA,EAAE,CAAC4oB,SAAD,CAAF,CAAcxK,WAAW,CAACG,KAA1B,EAAiC5G,MAAM,CAACyQ,YAAxC,EAAsD,KAAtD;AACA9nB,IAAAA,QAAQ,CAACsoB,SAAD,CAAR,CAAoBxK,WAAW,CAACI,IAAhC,EAAsC7G,MAAM,CAAC0Q,WAA7C,EAA0D3f,OAA1D;AACApI,IAAAA,QAAQ,CAACsoB,SAAD,CAAR,CAAoBxK,WAAW,CAACK,GAAhC,EAAqC9G,MAAM,CAAC2Q,UAA5C,EAAwD,KAAxD;AACD,GAJD,MAIO;AACL,UAAMQ,eAAe,GAAG1K,WAAW,CAACG,KAAZ,KAAsB,YAAtB,IAAsCtD,OAAO,CAAC6N,eAA9C,IAAiExX,MAAM,CAACkW,gBAAxE,GAA2F;AACjHuB,MAAAA,OAAO,EAAE,IADwG;AAEjHrgB,MAAAA,OAAO,EAAE;AAFwG,KAA3F,GAGpB,KAHJ;AAIA1I,IAAAA,EAAE,CAAC4oB,SAAD,CAAF,CAAcxK,WAAW,CAACG,KAA1B,EAAiC5G,MAAM,CAACyQ,YAAxC,EAAsDU,eAAtD;AACA9oB,IAAAA,EAAE,CAAC4oB,SAAD,CAAF,CAAcxK,WAAW,CAACI,IAA1B,EAAgC7G,MAAM,CAAC0Q,WAAvC,EAAoDpN,OAAO,CAAC6N,eAAR,GAA0B;AAC5EC,MAAAA,OAAO,EAAE,KADmE;AAE5ErgB,MAAAA;AAF4E,KAA1B,GAGhDA,OAHJ;AAIA1I,IAAAA,EAAE,CAAC4oB,SAAD,CAAF,CAAcxK,WAAW,CAACK,GAA1B,EAA+B9G,MAAM,CAAC2Q,UAAtC,EAAkDQ,eAAlD;;AAEA,QAAI1K,WAAW,CAACM,MAAhB,EAAwB;AACtB1e,MAAAA,EAAE,CAAC4oB,SAAD,CAAF,CAAcxK,WAAW,CAACM,MAA1B,EAAkC/G,MAAM,CAAC2Q,UAAzC,EAAqDQ,eAArD;AACD;AACF,GAjCgC,CAiC/B;;;AAGF,MAAIxX,MAAM,CAACuV,aAAP,IAAwBvV,MAAM,CAACwV,wBAAnC,EAA6D;AAC3D9mB,IAAAA,EAAE,CAAC4oB,SAAD,CAAF,CAAc,OAAd,EAAuBjR,MAAM,CAAC6Q,OAA9B,EAAuC,IAAvC;AACD;;AAED,MAAIlX,MAAM,CAACkK,OAAX,EAAoB;AAClB6H,IAAAA,SAAS,CAACuF,SAAD,CAAT,CAAqB,QAArB,EAA+BjR,MAAM,CAAC8Q,QAAtC;AACD,GA1CgC,CA0C/B;;;AAGF,MAAInX,MAAM,CAACsT,oBAAX,EAAiC;AAC/BjN,IAAAA,MAAM,CAACkR,YAAD,CAAN,CAAqB7N,MAAM,CAACO,GAAP,IAAcP,MAAM,CAACM,OAArB,GAA+B,yCAA/B,GAA2E,uBAAhG,EAAyHiN,oDAAzH,EAAmI,IAAnI;AACD,GAFD,MAEO;AACL5Q,IAAAA,MAAM,CAACkR,YAAD,CAAN,CAAqB,gBAArB,EAAuCN,oDAAvC,EAAiD,IAAjD;AACD;AACF,CAlDD;;AAoDA,SAAS5E,YAAT,GAAwB;AACtB,QAAMhM,MAAM,GAAG,IAAf;AACA,QAAMrX,QAAQ,GAAGoC,uDAAW,EAA5B;AACA,QAAM;AACJ4O,IAAAA,MADI;AAEJ2J,IAAAA;AAFI,MAGFtD,MAHJ;AAIAA,EAAAA,MAAM,CAACyQ,YAAP,GAAsBA,6DAAA,CAAkBzQ,MAAlB,CAAtB;AACAA,EAAAA,MAAM,CAAC0Q,WAAP,GAAqBA,4DAAA,CAAiB1Q,MAAjB,CAArB;AACAA,EAAAA,MAAM,CAAC2Q,UAAP,GAAoBA,2DAAA,CAAgB3Q,MAAhB,CAApB;;AAEA,MAAIrG,MAAM,CAACkK,OAAX,EAAoB;AAClB7D,IAAAA,MAAM,CAAC8Q,QAAP,GAAkBA,yDAAA,CAAc9Q,MAAd,CAAlB;AACD;;AAEDA,EAAAA,MAAM,CAAC6Q,OAAP,GAAiBA,wDAAA,CAAa7Q,MAAb,CAAjB;;AAEA,MAAIsD,OAAO,CAACE,KAAR,IAAiB,CAACuN,kBAAtB,EAA0C;AACxCpoB,IAAAA,QAAQ,CAACG,gBAAT,CAA0B,YAA1B,EAAwCkoB,kBAAxC;AACAD,IAAAA,kBAAkB,GAAG,IAArB;AACD;;AAEDrf,EAAAA,MAAM,CAACsO,MAAD,EAAS,IAAT,CAAN;AACD;;AAED,SAASoM,YAAT,GAAwB;AACtB,QAAMpM,MAAM,GAAG,IAAf;AACAtO,EAAAA,MAAM,CAACsO,MAAD,EAAS,KAAT,CAAN;AACD;;AAED,iEAAe;AACbgM,EAAAA,YADa;AAEbI,EAAAA;AAFa,CAAf;;;;;;;;;;;;;;AC7Fe,SAASyE,OAAT,CAAiB3mB,CAAjB,EAAoB;AACjC,QAAM8V,MAAM,GAAG,IAAf;AACA,MAAI,CAACA,MAAM,CAACe,OAAZ,EAAqB;;AAErB,MAAI,CAACf,MAAM,CAACkI,UAAZ,EAAwB;AACtB,QAAIlI,MAAM,CAACrG,MAAP,CAAcuV,aAAlB,EAAiChlB,CAAC,CAACmnB,cAAF;;AAEjC,QAAIrR,MAAM,CAACrG,MAAP,CAAcwV,wBAAd,IAA0CnP,MAAM,CAACnG,SAArD,EAAgE;AAC9D3P,MAAAA,CAAC,CAACG,eAAF;AACAH,MAAAA,CAAC,CAAConB,wBAAF;AACD;AACF;AACF;;;;;;;;;;;;;;ACZc,SAASV,QAAT,GAAoB;AACjC,QAAM5Q,MAAM,GAAG,IAAf;AACA,QAAM;AACJrG,IAAAA,MADI;AAEJtR,IAAAA;AAFI,MAGF2X,MAHJ;AAIA,MAAI3X,EAAE,IAAIA,EAAE,CAACsL,WAAH,KAAmB,CAA7B,EAAgC,OANC,CAMO;;AAExC,MAAIgG,MAAM,CAAC5R,WAAX,EAAwB;AACtBiY,IAAAA,MAAM,CAACF,aAAP;AACD,GAVgC,CAU/B;;;AAGF,QAAM;AACJ2B,IAAAA,cADI;AAEJC,IAAAA,cAFI;AAGJkB,IAAAA;AAHI,MAIF5C,MAJJ,CAbiC,CAiBrB;;AAEZA,EAAAA,MAAM,CAACyB,cAAP,GAAwB,IAAxB;AACAzB,EAAAA,MAAM,CAAC0B,cAAP,GAAwB,IAAxB;AACA1B,EAAAA,MAAM,CAACqK,UAAP;AACArK,EAAAA,MAAM,CAACgC,YAAP;AACAhC,EAAAA,MAAM,CAACmJ,mBAAP;;AAEA,MAAI,CAACxP,MAAM,CAAC9R,aAAP,KAAyB,MAAzB,IAAmC8R,MAAM,CAAC9R,aAAP,GAAuB,CAA3D,KAAiEmY,MAAM,CAAC6C,KAAxE,IAAiF,CAAC7C,MAAM,CAACsG,WAAzF,IAAwG,CAACtG,MAAM,CAACrG,MAAP,CAAcmK,cAA3H,EAA2I;AACzI9D,IAAAA,MAAM,CAACiC,OAAP,CAAejC,MAAM,CAACuC,MAAP,CAAcjY,MAAd,GAAuB,CAAtC,EAAyC,CAAzC,EAA4C,KAA5C,EAAmD,IAAnD;AACD,GAFD,MAEO;AACL0V,IAAAA,MAAM,CAACiC,OAAP,CAAejC,MAAM,CAACG,WAAtB,EAAmC,CAAnC,EAAsC,KAAtC,EAA6C,IAA7C;AACD;;AAED,MAAIH,MAAM,CAACuR,QAAP,IAAmBvR,MAAM,CAACuR,QAAP,CAAgBC,OAAnC,IAA8CxR,MAAM,CAACuR,QAAP,CAAgBE,MAAlE,EAA0E;AACxEzR,IAAAA,MAAM,CAACuR,QAAP,CAAgBG,GAAhB;AACD,GAjCgC,CAiC/B;;;AAGF1R,EAAAA,MAAM,CAAC0B,cAAP,GAAwBA,cAAxB;AACA1B,EAAAA,MAAM,CAACyB,cAAP,GAAwBA,cAAxB;;AAEA,MAAIzB,MAAM,CAACrG,MAAP,CAAckR,aAAd,IAA+BjI,QAAQ,KAAK5C,MAAM,CAAC4C,QAAvD,EAAiE;AAC/D5C,IAAAA,MAAM,CAACkC,aAAP;AACD;AACF;;;;;;;;;;;;;;AC1Cc,SAAS4O,QAAT,GAAoB;AACjC,QAAM9Q,MAAM,GAAG,IAAf;AACA,QAAM;AACJ0L,IAAAA,SADI;AAEJjB,IAAAA,YAFI;AAGJ1J,IAAAA;AAHI,MAIFf,MAJJ;AAKA,MAAI,CAACe,OAAL,EAAc;AACdf,EAAAA,MAAM,CAACuG,iBAAP,GAA2BvG,MAAM,CAAC0E,SAAlC;;AAEA,MAAI1E,MAAM,CAACmG,YAAP,EAAJ,EAA2B;AACzBnG,IAAAA,MAAM,CAAC0E,SAAP,GAAmB,CAACgH,SAAS,CAACpX,UAA9B;AACD,GAFD,MAEO;AACL0L,IAAAA,MAAM,CAAC0E,SAAP,GAAmB,CAACgH,SAAS,CAACrX,SAA9B;AACD,GAdgC,CAc/B;;;AAGF,MAAI2L,MAAM,CAAC0E,SAAP,KAAqB,CAAC,CAA1B,EAA6B1E,MAAM,CAAC0E,SAAP,GAAmB,CAAnB;AAC7B1E,EAAAA,MAAM,CAACkJ,iBAAP;AACAlJ,EAAAA,MAAM,CAACmJ,mBAAP;AACA,MAAIwI,WAAJ;AACA,QAAMC,cAAc,GAAG5R,MAAM,CAACgJ,YAAP,KAAwBhJ,MAAM,CAAC+I,YAAP,EAA/C;;AAEA,MAAI6I,cAAc,KAAK,CAAvB,EAA0B;AACxBD,IAAAA,WAAW,GAAG,CAAd;AACD,GAFD,MAEO;AACLA,IAAAA,WAAW,GAAG,CAAC3R,MAAM,CAAC0E,SAAP,GAAmB1E,MAAM,CAAC+I,YAAP,EAApB,IAA6C6I,cAA3D;AACD;;AAED,MAAID,WAAW,KAAK3R,MAAM,CAAC9G,QAA3B,EAAqC;AACnC8G,IAAAA,MAAM,CAACsK,cAAP,CAAsBG,YAAY,GAAG,CAACzK,MAAM,CAAC0E,SAAX,GAAuB1E,MAAM,CAAC0E,SAAhE;AACD;;AAED1E,EAAAA,MAAM,CAAC6B,IAAP,CAAY,cAAZ,EAA4B7B,MAAM,CAAC0E,SAAnC,EAA8C,KAA9C;AACD;;;;;;;;;;;;;;;AClCD;AACe,SAASiM,UAAT,CAAoBhf,KAApB,EAA2B;AACxC,QAAMqO,MAAM,GAAG,IAAf;AACA,QAAM5Q,IAAI,GAAG4Q,MAAM,CAACkH,eAApB;AACA,QAAM;AACJvN,IAAAA,MADI;AAEJwO,IAAAA,OAFI;AAGJsC,IAAAA,YAAY,EAAErH,GAHV;AAIJX,IAAAA,UAJI;AAKJ1B,IAAAA;AALI,MAMFf,MANJ;AAOA,MAAI,CAACe,OAAL,EAAc;AACd,MAAI7W,CAAC,GAAGyH,KAAR;AACA,MAAIzH,CAAC,CAAC4nB,aAAN,EAAqB5nB,CAAC,GAAGA,CAAC,CAAC4nB,aAAN;;AAErB,MAAI1iB,IAAI,CAACiY,mBAAT,EAA8B;AAC5BrH,IAAAA,MAAM,CAAC6B,IAAP,CAAY,UAAZ,EAAwB3X,CAAxB;AACD;;AAEDkF,EAAAA,IAAI,CAACiY,mBAAL,GAA2B,KAA3B;;AAEA,MAAI,CAACjY,IAAI,CAAC+X,SAAV,EAAqB;AACnB,QAAI/X,IAAI,CAACgY,OAAL,IAAgBzN,MAAM,CAACiL,UAA3B,EAAuC;AACrC5E,MAAAA,MAAM,CAAC4I,aAAP,CAAqB,KAArB;AACD;;AAEDxZ,IAAAA,IAAI,CAACgY,OAAL,GAAe,KAAf;AACAhY,IAAAA,IAAI,CAAC6Y,WAAL,GAAmB,KAAnB;AACA;AACD,GA5BuC,CA4BtC;;;AAGF,MAAItO,MAAM,CAACiL,UAAP,IAAqBxV,IAAI,CAACgY,OAA1B,IAAqChY,IAAI,CAAC+X,SAA1C,KAAwDnH,MAAM,CAACyB,cAAP,KAA0B,IAA1B,IAAkCzB,MAAM,CAAC0B,cAAP,KAA0B,IAApH,CAAJ,EAA+H;AAC7H1B,IAAAA,MAAM,CAAC4I,aAAP,CAAqB,KAArB;AACD,GAjCuC,CAiCtC;;;AAGF,QAAMmJ,YAAY,GAAG9N,qDAAG,EAAxB;AACA,QAAM+N,QAAQ,GAAGD,YAAY,GAAG3iB,IAAI,CAACkY,cAArC,CArCwC,CAqCa;;AAErD,MAAItH,MAAM,CAACkI,UAAX,EAAuB;AACrBlI,IAAAA,MAAM,CAACiS,kBAAP,CAA0B/nB,CAA1B;AACA8V,IAAAA,MAAM,CAAC6B,IAAP,CAAY,WAAZ,EAAyB3X,CAAzB;;AAEA,QAAI8nB,QAAQ,GAAG,GAAX,IAAkBD,YAAY,GAAG3iB,IAAI,CAACwY,aAApB,GAAoC,GAA1D,EAA+D;AAC7D5H,MAAAA,MAAM,CAAC6B,IAAP,CAAY,uBAAZ,EAAqC3X,CAArC;AACD;AACF;;AAEDkF,EAAAA,IAAI,CAACwY,aAAL,GAAqB3D,qDAAG,EAAxB;AACA4N,EAAAA,0DAAQ,CAAC,MAAM;AACb,QAAI,CAAC7R,MAAM,CAACoK,SAAZ,EAAuBpK,MAAM,CAACkI,UAAP,GAAoB,IAApB;AACxB,GAFO,CAAR;;AAIA,MAAI,CAAC9Y,IAAI,CAAC+X,SAAN,IAAmB,CAAC/X,IAAI,CAACgY,OAAzB,IAAoC,CAACpH,MAAM,CAACkS,cAA5C,IAA8D/J,OAAO,CAACK,IAAR,KAAiB,CAA/E,IAAoFpZ,IAAI,CAACoY,gBAAL,KAA0BpY,IAAI,CAACqY,cAAvH,EAAuI;AACrIrY,IAAAA,IAAI,CAAC+X,SAAL,GAAiB,KAAjB;AACA/X,IAAAA,IAAI,CAACgY,OAAL,GAAe,KAAf;AACAhY,IAAAA,IAAI,CAAC6Y,WAAL,GAAmB,KAAnB;AACA;AACD;;AAED7Y,EAAAA,IAAI,CAAC+X,SAAL,GAAiB,KAAjB;AACA/X,EAAAA,IAAI,CAACgY,OAAL,GAAe,KAAf;AACAhY,EAAAA,IAAI,CAAC6Y,WAAL,GAAmB,KAAnB;AACA,MAAIkK,UAAJ;;AAEA,MAAIxY,MAAM,CAAC6U,YAAX,EAAyB;AACvB2D,IAAAA,UAAU,GAAG/O,GAAG,GAAGpD,MAAM,CAAC0E,SAAV,GAAsB,CAAC1E,MAAM,CAAC0E,SAA9C;AACD,GAFD,MAEO;AACLyN,IAAAA,UAAU,GAAG,CAAC/iB,IAAI,CAACoY,gBAAnB;AACD;;AAED,MAAI7N,MAAM,CAACkK,OAAX,EAAoB;AAClB;AACD;;AAED,MAAI7D,MAAM,CAACrG,MAAP,CAAc8J,QAAd,IAA0B9J,MAAM,CAAC8J,QAAP,CAAgB1C,OAA9C,EAAuD;AACrDf,IAAAA,MAAM,CAACyD,QAAP,CAAgBkN,UAAhB,CAA2B;AACzBwB,MAAAA;AADyB,KAA3B;AAGA;AACD,GAhFuC,CAgFtC;;;AAGF,MAAIC,SAAS,GAAG,CAAhB;AACA,MAAIC,SAAS,GAAGrS,MAAM,CAAC0C,eAAP,CAAuB,CAAvB,CAAhB;;AAEA,OAAK,IAAIzY,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwY,UAAU,CAACnY,MAA/B,EAAuCL,CAAC,IAAIA,CAAC,GAAG0P,MAAM,CAACgU,kBAAX,GAAgC,CAAhC,GAAoChU,MAAM,CAAC+T,cAAvF,EAAuG;AACrG,UAAM4E,SAAS,GAAGroB,CAAC,GAAG0P,MAAM,CAACgU,kBAAP,GAA4B,CAAhC,GAAoC,CAApC,GAAwChU,MAAM,CAAC+T,cAAjE;;AAEA,QAAI,OAAOjL,UAAU,CAACxY,CAAC,GAAGqoB,SAAL,CAAjB,KAAqC,WAAzC,EAAsD;AACpD,UAAIH,UAAU,IAAI1P,UAAU,CAACxY,CAAD,CAAxB,IAA+BkoB,UAAU,GAAG1P,UAAU,CAACxY,CAAC,GAAGqoB,SAAL,CAA1D,EAA2E;AACzEF,QAAAA,SAAS,GAAGnoB,CAAZ;AACAooB,QAAAA,SAAS,GAAG5P,UAAU,CAACxY,CAAC,GAAGqoB,SAAL,CAAV,GAA4B7P,UAAU,CAACxY,CAAD,CAAlD;AACD;AACF,KALD,MAKO,IAAIkoB,UAAU,IAAI1P,UAAU,CAACxY,CAAD,CAA5B,EAAiC;AACtCmoB,MAAAA,SAAS,GAAGnoB,CAAZ;AACAooB,MAAAA,SAAS,GAAG5P,UAAU,CAACA,UAAU,CAACnY,MAAX,GAAoB,CAArB,CAAV,GAAoCmY,UAAU,CAACA,UAAU,CAACnY,MAAX,GAAoB,CAArB,CAA1D;AACD;AACF,GAlGuC,CAkGtC;;;AAGF,QAAMioB,KAAK,GAAG,CAACJ,UAAU,GAAG1P,UAAU,CAAC2P,SAAD,CAAxB,IAAuCC,SAArD;AACA,QAAMC,SAAS,GAAGF,SAAS,GAAGzY,MAAM,CAACgU,kBAAP,GAA4B,CAAxC,GAA4C,CAA5C,GAAgDhU,MAAM,CAAC+T,cAAzE;;AAEA,MAAIsE,QAAQ,GAAGrY,MAAM,CAAC4U,YAAtB,EAAoC;AAClC;AACA,QAAI,CAAC5U,MAAM,CAAC0U,UAAZ,EAAwB;AACtBrO,MAAAA,MAAM,CAACiC,OAAP,CAAejC,MAAM,CAACG,WAAtB;AACA;AACD;;AAED,QAAIH,MAAM,CAACkS,cAAP,KAA0B,MAA9B,EAAsC;AACpC,UAAIK,KAAK,IAAI5Y,MAAM,CAAC2U,eAApB,EAAqCtO,MAAM,CAACiC,OAAP,CAAemQ,SAAS,GAAGE,SAA3B,EAArC,KAAgFtS,MAAM,CAACiC,OAAP,CAAemQ,SAAf;AACjF;;AAED,QAAIpS,MAAM,CAACkS,cAAP,KAA0B,MAA9B,EAAsC;AACpC,UAAIK,KAAK,GAAG,IAAI5Y,MAAM,CAAC2U,eAAvB,EAAwCtO,MAAM,CAACiC,OAAP,CAAemQ,SAAS,GAAGE,SAA3B,EAAxC,KAAmFtS,MAAM,CAACiC,OAAP,CAAemQ,SAAf;AACpF;AACF,GAdD,MAcO;AACL;AACA,QAAI,CAACzY,MAAM,CAACyU,WAAZ,EAAyB;AACvBpO,MAAAA,MAAM,CAACiC,OAAP,CAAejC,MAAM,CAACG,WAAtB;AACA;AACD;;AAED,UAAMqS,iBAAiB,GAAGxS,MAAM,CAACzX,UAAP,KAAsB2B,CAAC,CAAC+G,MAAF,KAAa+O,MAAM,CAACzX,UAAP,CAAkBC,MAA/B,IAAyC0B,CAAC,CAAC+G,MAAF,KAAa+O,MAAM,CAACzX,UAAP,CAAkBE,MAA9F,CAA1B;;AAEA,QAAI,CAAC+pB,iBAAL,EAAwB;AACtB,UAAIxS,MAAM,CAACkS,cAAP,KAA0B,MAA9B,EAAsC;AACpClS,QAAAA,MAAM,CAACiC,OAAP,CAAemQ,SAAS,GAAGE,SAA3B;AACD;;AAED,UAAItS,MAAM,CAACkS,cAAP,KAA0B,MAA9B,EAAsC;AACpClS,QAAAA,MAAM,CAACiC,OAAP,CAAemQ,SAAf;AACD;AACF,KARD,MAQO,IAAIloB,CAAC,CAAC+G,MAAF,KAAa+O,MAAM,CAACzX,UAAP,CAAkBC,MAAnC,EAA2C;AAChDwX,MAAAA,MAAM,CAACiC,OAAP,CAAemQ,SAAS,GAAGE,SAA3B;AACD,KAFM,MAEA;AACLtS,MAAAA,MAAM,CAACiC,OAAP,CAAemQ,SAAf;AACD;AACF;AACF;;;;;;;;;;;;;;;;;AC9ID;AACA;AACA;AACe,SAAS1B,WAAT,CAAqB/e,KAArB,EAA4B;AACzC,QAAMhJ,QAAQ,GAAGoC,uDAAW,EAA5B;AACA,QAAMiV,MAAM,GAAG,IAAf;AACA,QAAM5Q,IAAI,GAAG4Q,MAAM,CAACkH,eAApB;AACA,QAAM;AACJvN,IAAAA,MADI;AAEJwO,IAAAA,OAFI;AAGJsC,IAAAA,YAAY,EAAErH,GAHV;AAIJrC,IAAAA;AAJI,MAKFf,MALJ;AAMA,MAAI,CAACe,OAAL,EAAc;AACd,MAAI7W,CAAC,GAAGyH,KAAR;AACA,MAAIzH,CAAC,CAAC4nB,aAAN,EAAqB5nB,CAAC,GAAGA,CAAC,CAAC4nB,aAAN;;AAErB,MAAI,CAAC1iB,IAAI,CAAC+X,SAAV,EAAqB;AACnB,QAAI/X,IAAI,CAAC6Y,WAAL,IAAoB7Y,IAAI,CAACmY,WAA7B,EAA0C;AACxCvH,MAAAA,MAAM,CAAC6B,IAAP,CAAY,mBAAZ,EAAiC3X,CAAjC;AACD;;AAED;AACD;;AAED,MAAIkF,IAAI,CAAC4Y,YAAL,IAAqB9d,CAAC,CAACuoB,IAAF,KAAW,WAApC,EAAiD;AACjD,QAAMC,WAAW,GAAGxoB,CAAC,CAACuoB,IAAF,KAAW,WAAX,IAA0BvoB,CAAC,CAACyoB,aAA5B,KAA8CzoB,CAAC,CAACyoB,aAAF,CAAgB,CAAhB,KAAsBzoB,CAAC,CAAC0oB,cAAF,CAAiB,CAAjB,CAApE,CAApB;AACA,QAAMC,KAAK,GAAG3oB,CAAC,CAACuoB,IAAF,KAAW,WAAX,GAAyBC,WAAW,CAACG,KAArC,GAA6C3oB,CAAC,CAAC2oB,KAA7D;AACA,QAAMC,KAAK,GAAG5oB,CAAC,CAACuoB,IAAF,KAAW,WAAX,GAAyBC,WAAW,CAACI,KAArC,GAA6C5oB,CAAC,CAAC4oB,KAA7D;;AAEA,MAAI5oB,CAAC,CAAC6oB,uBAAN,EAA+B;AAC7B5K,IAAAA,OAAO,CAACC,MAAR,GAAiByK,KAAjB;AACA1K,IAAAA,OAAO,CAACE,MAAR,GAAiByK,KAAjB;AACA;AACD;;AAED,MAAI,CAAC9S,MAAM,CAACwB,cAAZ,EAA4B;AAC1B;AACAxB,IAAAA,MAAM,CAACkI,UAAP,GAAoB,KAApB;;AAEA,QAAI9Y,IAAI,CAAC+X,SAAT,EAAoB;AAClB/b,MAAAA,MAAM,CAACsO,MAAP,CAAcyO,OAAd,EAAuB;AACrBC,QAAAA,MAAM,EAAEyK,KADa;AAErBxK,QAAAA,MAAM,EAAEyK,KAFa;AAGrBxK,QAAAA,QAAQ,EAAEuK,KAHW;AAIrBtK,QAAAA,QAAQ,EAAEuK;AAJW,OAAvB;AAMA1jB,MAAAA,IAAI,CAACkY,cAAL,GAAsBrD,qDAAG,EAAzB;AACD;;AAED;AACD;;AAED,MAAI7U,IAAI,CAAC4Y,YAAL,IAAqBrO,MAAM,CAACkV,mBAA5B,IAAmD,CAAClV,MAAM,CAAC/R,IAA/D,EAAqE;AACnE,QAAIoY,MAAM,CAACoG,UAAP,EAAJ,EAAyB;AACvB;AACA,UAAI0M,KAAK,GAAG3K,OAAO,CAACE,MAAhB,IAA0BrI,MAAM,CAAC0E,SAAP,IAAoB1E,MAAM,CAACgJ,YAAP,EAA9C,IAAuE8J,KAAK,GAAG3K,OAAO,CAACE,MAAhB,IAA0BrI,MAAM,CAAC0E,SAAP,IAAoB1E,MAAM,CAAC+I,YAAP,EAAzH,EAAgJ;AAC9I3Z,QAAAA,IAAI,CAAC+X,SAAL,GAAiB,KAAjB;AACA/X,QAAAA,IAAI,CAACgY,OAAL,GAAe,KAAf;AACA;AACD;AACF,KAPD,MAOO,IAAIyL,KAAK,GAAG1K,OAAO,CAACC,MAAhB,IAA0BpI,MAAM,CAAC0E,SAAP,IAAoB1E,MAAM,CAACgJ,YAAP,EAA9C,IAAuE6J,KAAK,GAAG1K,OAAO,CAACC,MAAhB,IAA0BpI,MAAM,CAAC0E,SAAP,IAAoB1E,MAAM,CAAC+I,YAAP,EAAzH,EAAgJ;AACrJ;AACD;AACF;;AAED,MAAI3Z,IAAI,CAAC4Y,YAAL,IAAqBrf,QAAQ,CAACsU,aAAlC,EAAiD;AAC/C,QAAI/S,CAAC,CAAC+G,MAAF,KAAatI,QAAQ,CAACsU,aAAtB,IAAuC7P,0DAAC,CAAClD,CAAC,CAAC+G,MAAH,CAAD,CAAYI,EAAZ,CAAejC,IAAI,CAACuY,iBAApB,CAA3C,EAAmF;AACjFvY,MAAAA,IAAI,CAACgY,OAAL,GAAe,IAAf;AACApH,MAAAA,MAAM,CAACkI,UAAP,GAAoB,KAApB;AACA;AACD;AACF;;AAED,MAAI9Y,IAAI,CAACiY,mBAAT,EAA8B;AAC5BrH,IAAAA,MAAM,CAAC6B,IAAP,CAAY,WAAZ,EAAyB3X,CAAzB;AACD;;AAED,MAAIA,CAAC,CAACyoB,aAAF,IAAmBzoB,CAAC,CAACyoB,aAAF,CAAgBroB,MAAhB,GAAyB,CAAhD,EAAmD;AACnD6d,EAAAA,OAAO,CAACG,QAAR,GAAmBuK,KAAnB;AACA1K,EAAAA,OAAO,CAACI,QAAR,GAAmBuK,KAAnB;AACA,QAAME,KAAK,GAAG7K,OAAO,CAACG,QAAR,GAAmBH,OAAO,CAACC,MAAzC;AACA,QAAM6K,KAAK,GAAG9K,OAAO,CAACI,QAAR,GAAmBJ,OAAO,CAACE,MAAzC;AACA,MAAIrI,MAAM,CAACrG,MAAP,CAAc8U,SAAd,IAA2BhW,IAAI,CAACya,IAAL,CAAUF,KAAK,IAAI,CAAT,GAAaC,KAAK,IAAI,CAAhC,IAAqCjT,MAAM,CAACrG,MAAP,CAAc8U,SAAlF,EAA6F;;AAE7F,MAAI,OAAOrf,IAAI,CAACmY,WAAZ,KAA4B,WAAhC,EAA6C;AAC3C,QAAI4G,UAAJ;;AAEA,QAAInO,MAAM,CAACmG,YAAP,MAAyBgC,OAAO,CAACI,QAAR,KAAqBJ,OAAO,CAACE,MAAtD,IAAgErI,MAAM,CAACoG,UAAP,MAAuB+B,OAAO,CAACG,QAAR,KAAqBH,OAAO,CAACC,MAAxH,EAAgI;AAC9HhZ,MAAAA,IAAI,CAACmY,WAAL,GAAmB,KAAnB;AACD,KAFD,MAEO;AACL;AACA,UAAIyL,KAAK,GAAGA,KAAR,GAAgBC,KAAK,GAAGA,KAAxB,IAAiC,EAArC,EAAyC;AACvC9E,QAAAA,UAAU,GAAG1V,IAAI,CAAC0a,KAAL,CAAW1a,IAAI,CAAC2a,GAAL,CAASH,KAAT,CAAX,EAA4Bxa,IAAI,CAAC2a,GAAL,CAASJ,KAAT,CAA5B,IAA+C,GAA/C,GAAqDva,IAAI,CAACY,EAAvE;AACAjK,QAAAA,IAAI,CAACmY,WAAL,GAAmBvH,MAAM,CAACmG,YAAP,KAAwBgI,UAAU,GAAGxU,MAAM,CAACwU,UAA5C,GAAyD,KAAKA,UAAL,GAAkBxU,MAAM,CAACwU,UAArG;AACD;AACF;AACF;;AAED,MAAI/e,IAAI,CAACmY,WAAT,EAAsB;AACpBvH,IAAAA,MAAM,CAAC6B,IAAP,CAAY,mBAAZ,EAAiC3X,CAAjC;AACD;;AAED,MAAI,OAAOkF,IAAI,CAAC6Y,WAAZ,KAA4B,WAAhC,EAA6C;AAC3C,QAAIE,OAAO,CAACG,QAAR,KAAqBH,OAAO,CAACC,MAA7B,IAAuCD,OAAO,CAACI,QAAR,KAAqBJ,OAAO,CAACE,MAAxE,EAAgF;AAC9EjZ,MAAAA,IAAI,CAAC6Y,WAAL,GAAmB,IAAnB;AACD;AACF;;AAED,MAAI7Y,IAAI,CAACmY,WAAT,EAAsB;AACpBnY,IAAAA,IAAI,CAAC+X,SAAL,GAAiB,KAAjB;AACA;AACD;;AAED,MAAI,CAAC/X,IAAI,CAAC6Y,WAAV,EAAuB;AACrB;AACD;;AAEDjI,EAAAA,MAAM,CAACkI,UAAP,GAAoB,KAApB;;AAEA,MAAI,CAACvO,MAAM,CAACkK,OAAR,IAAmB3Z,CAAC,CAAC6I,UAAzB,EAAqC;AACnC7I,IAAAA,CAAC,CAACmnB,cAAF;AACD;;AAED,MAAI1X,MAAM,CAAC+U,wBAAP,IAAmC,CAAC/U,MAAM,CAACwT,MAA/C,EAAuD;AACrDjjB,IAAAA,CAAC,CAACG,eAAF;AACD;;AAED,MAAI,CAAC+E,IAAI,CAACgY,OAAV,EAAmB;AACjB,QAAIzN,MAAM,CAAC/R,IAAP,IAAe,CAAC+R,MAAM,CAACkK,OAA3B,EAAoC;AAClC7D,MAAAA,MAAM,CAACqT,OAAP;AACD;;AAEDjkB,IAAAA,IAAI,CAACqY,cAAL,GAAsBzH,MAAM,CAACsT,YAAP,EAAtB;AACAtT,IAAAA,MAAM,CAACuT,aAAP,CAAqB,CAArB;;AAEA,QAAIvT,MAAM,CAACnG,SAAX,EAAsB;AACpBmG,MAAAA,MAAM,CAACuL,UAAP,CAAkB7Y,OAAlB,CAA0B,mCAA1B;AACD;;AAEDtD,IAAAA,IAAI,CAAC2Y,mBAAL,GAA2B,KAA3B,CAZiB,CAYiB;;AAElC,QAAIpO,MAAM,CAACiL,UAAP,KAAsB5E,MAAM,CAACyB,cAAP,KAA0B,IAA1B,IAAkCzB,MAAM,CAAC0B,cAAP,KAA0B,IAAlF,CAAJ,EAA6F;AAC3F1B,MAAAA,MAAM,CAAC4I,aAAP,CAAqB,IAArB;AACD;;AAED5I,IAAAA,MAAM,CAAC6B,IAAP,CAAY,iBAAZ,EAA+B3X,CAA/B;AACD;;AAED8V,EAAAA,MAAM,CAAC6B,IAAP,CAAY,YAAZ,EAA0B3X,CAA1B;AACAkF,EAAAA,IAAI,CAACgY,OAAL,GAAe,IAAf;AACA,MAAIoB,IAAI,GAAGxI,MAAM,CAACmG,YAAP,KAAwB6M,KAAxB,GAAgCC,KAA3C;AACA9K,EAAAA,OAAO,CAACK,IAAR,GAAeA,IAAf;AACAA,EAAAA,IAAI,IAAI7O,MAAM,CAACuU,UAAf;AACA,MAAI9K,GAAJ,EAASoF,IAAI,GAAG,CAACA,IAAR;AACTxI,EAAAA,MAAM,CAACkS,cAAP,GAAwB1J,IAAI,GAAG,CAAP,GAAW,MAAX,GAAoB,MAA5C;AACApZ,EAAAA,IAAI,CAACoY,gBAAL,GAAwBgB,IAAI,GAAGpZ,IAAI,CAACqY,cAApC;AACA,MAAI+L,mBAAmB,GAAG,IAA1B;AACA,MAAIxE,eAAe,GAAGrV,MAAM,CAACqV,eAA7B;;AAEA,MAAIrV,MAAM,CAACkV,mBAAX,EAAgC;AAC9BG,IAAAA,eAAe,GAAG,CAAlB;AACD;;AAED,MAAIxG,IAAI,GAAG,CAAP,IAAYpZ,IAAI,CAACoY,gBAAL,GAAwBxH,MAAM,CAAC+I,YAAP,EAAxC,EAA+D;AAC7DyK,IAAAA,mBAAmB,GAAG,KAAtB;AACA,QAAI7Z,MAAM,CAACoV,UAAX,EAAuB3f,IAAI,CAACoY,gBAAL,GAAwBxH,MAAM,CAAC+I,YAAP,KAAwB,CAAxB,GAA4B,CAAC,CAAC/I,MAAM,CAAC+I,YAAP,EAAD,GAAyB3Z,IAAI,CAACqY,cAA9B,GAA+Ce,IAAhD,KAAyDwG,eAA7G;AACxB,GAHD,MAGO,IAAIxG,IAAI,GAAG,CAAP,IAAYpZ,IAAI,CAACoY,gBAAL,GAAwBxH,MAAM,CAACgJ,YAAP,EAAxC,EAA+D;AACpEwK,IAAAA,mBAAmB,GAAG,KAAtB;AACA,QAAI7Z,MAAM,CAACoV,UAAX,EAAuB3f,IAAI,CAACoY,gBAAL,GAAwBxH,MAAM,CAACgJ,YAAP,KAAwB,CAAxB,GAA4B,CAAChJ,MAAM,CAACgJ,YAAP,KAAwB5Z,IAAI,CAACqY,cAA7B,GAA8Ce,IAA/C,KAAwDwG,eAA5G;AACxB;;AAED,MAAIwE,mBAAJ,EAAyB;AACvBtpB,IAAAA,CAAC,CAAC6oB,uBAAF,GAA4B,IAA5B;AACD,GA3KwC,CA2KvC;;;AAGF,MAAI,CAAC/S,MAAM,CAACyB,cAAR,IAA0BzB,MAAM,CAACkS,cAAP,KAA0B,MAApD,IAA8D9iB,IAAI,CAACoY,gBAAL,GAAwBpY,IAAI,CAACqY,cAA/F,EAA+G;AAC7GrY,IAAAA,IAAI,CAACoY,gBAAL,GAAwBpY,IAAI,CAACqY,cAA7B;AACD;;AAED,MAAI,CAACzH,MAAM,CAAC0B,cAAR,IAA0B1B,MAAM,CAACkS,cAAP,KAA0B,MAApD,IAA8D9iB,IAAI,CAACoY,gBAAL,GAAwBpY,IAAI,CAACqY,cAA/F,EAA+G;AAC7GrY,IAAAA,IAAI,CAACoY,gBAAL,GAAwBpY,IAAI,CAACqY,cAA7B;AACD;;AAED,MAAI,CAACzH,MAAM,CAAC0B,cAAR,IAA0B,CAAC1B,MAAM,CAACyB,cAAtC,EAAsD;AACpDrS,IAAAA,IAAI,CAACoY,gBAAL,GAAwBpY,IAAI,CAACqY,cAA7B;AACD,GAxLwC,CAwLvC;;;AAGF,MAAI9N,MAAM,CAAC8U,SAAP,GAAmB,CAAvB,EAA0B;AACxB,QAAIhW,IAAI,CAAC2a,GAAL,CAAS5K,IAAT,IAAiB7O,MAAM,CAAC8U,SAAxB,IAAqCrf,IAAI,CAACsY,kBAA9C,EAAkE;AAChE,UAAI,CAACtY,IAAI,CAACsY,kBAAV,EAA8B;AAC5BtY,QAAAA,IAAI,CAACsY,kBAAL,GAA0B,IAA1B;AACAS,QAAAA,OAAO,CAACC,MAAR,GAAiBD,OAAO,CAACG,QAAzB;AACAH,QAAAA,OAAO,CAACE,MAAR,GAAiBF,OAAO,CAACI,QAAzB;AACAnZ,QAAAA,IAAI,CAACoY,gBAAL,GAAwBpY,IAAI,CAACqY,cAA7B;AACAU,QAAAA,OAAO,CAACK,IAAR,GAAexI,MAAM,CAACmG,YAAP,KAAwBgC,OAAO,CAACG,QAAR,GAAmBH,OAAO,CAACC,MAAnD,GAA4DD,OAAO,CAACI,QAAR,GAAmBJ,OAAO,CAACE,MAAtG;AACA;AACD;AACF,KATD,MASO;AACLjZ,MAAAA,IAAI,CAACoY,gBAAL,GAAwBpY,IAAI,CAACqY,cAA7B;AACA;AACD;AACF;;AAED,MAAI,CAAC9N,MAAM,CAAC6U,YAAR,IAAwB7U,MAAM,CAACkK,OAAnC,EAA4C,OA3MH,CA2MW;;AAEpD,MAAIlK,MAAM,CAAC8J,QAAP,IAAmB9J,MAAM,CAAC8J,QAAP,CAAgB1C,OAAnC,IAA8Cf,MAAM,CAACyD,QAArD,IAAiE9J,MAAM,CAACsV,mBAA5E,EAAiG;AAC/FjP,IAAAA,MAAM,CAACkJ,iBAAP;AACAlJ,IAAAA,MAAM,CAACmJ,mBAAP;AACD;;AAED,MAAInJ,MAAM,CAACrG,MAAP,CAAc8J,QAAd,IAA0B9J,MAAM,CAAC8J,QAAP,CAAgB1C,OAA1C,IAAqDf,MAAM,CAACyD,QAAhE,EAA0E;AACxEzD,IAAAA,MAAM,CAACyD,QAAP,CAAgBiN,WAAhB;AACD,GApNwC,CAoNvC;;;AAGF1Q,EAAAA,MAAM,CAACsK,cAAP,CAAsBlb,IAAI,CAACoY,gBAA3B,EAvNyC,CAuNK;;AAE9CxH,EAAAA,MAAM,CAACuK,YAAP,CAAoBnb,IAAI,CAACoY,gBAAzB;AACD;;;;;;;;;;;;;;;;;AC7ND;AACA;CAC6C;;AAE7C,SAASiM,cAAT,CAAwBxmB,QAAxB,EAAkCgS,IAAI,GAAG,IAAzC,EAA+C;AAC7C,WAASyU,aAAT,CAAuBrrB,EAAvB,EAA2B;AACzB,QAAI,CAACA,EAAD,IAAOA,EAAE,KAAK0C,uDAAW,EAAzB,IAA+B1C,EAAE,KAAKyC,qDAAS,EAAnD,EAAuD,OAAO,IAAP;AACvD,QAAIzC,EAAE,CAACsrB,YAAP,EAAqBtrB,EAAE,GAAGA,EAAE,CAACsrB,YAAR;AACrB,UAAMpc,KAAK,GAAGlP,EAAE,CAAC+O,OAAH,CAAWnK,QAAX,CAAd;AACA,WAAOsK,KAAK,IAAImc,aAAa,CAACrrB,EAAE,CAACurB,WAAH,GAAiBlW,IAAlB,CAA7B;AACD;;AAED,SAAOgW,aAAa,CAACzU,IAAD,CAApB;AACD;;AAEc,SAASwR,YAAT,CAAsB9e,KAAtB,EAA6B;AAC1C,QAAMqO,MAAM,GAAG,IAAf;AACA,QAAMrX,QAAQ,GAAGoC,uDAAW,EAA5B;AACA,QAAMlC,MAAM,GAAGiC,qDAAS,EAAxB;AACA,QAAMsE,IAAI,GAAG4Q,MAAM,CAACkH,eAApB;AACA,QAAM;AACJvN,IAAAA,MADI;AAEJwO,IAAAA,OAFI;AAGJpH,IAAAA;AAHI,MAIFf,MAJJ;AAKA,MAAI,CAACe,OAAL,EAAc;;AAEd,MAAIf,MAAM,CAACnG,SAAP,IAAoBF,MAAM,CAACyT,8BAA/B,EAA+D;AAC7D;AACD;;AAED,MAAI,CAACpN,MAAM,CAACnG,SAAR,IAAqBF,MAAM,CAACkK,OAA5B,IAAuClK,MAAM,CAAC/R,IAAlD,EAAwD;AACtDoY,IAAAA,MAAM,CAACqT,OAAP;AACD;;AAED,MAAInpB,CAAC,GAAGyH,KAAR;AACA,MAAIzH,CAAC,CAAC4nB,aAAN,EAAqB5nB,CAAC,GAAGA,CAAC,CAAC4nB,aAAN;AACrB,MAAI+B,SAAS,GAAGzmB,0DAAC,CAAClD,CAAC,CAAC+G,MAAH,CAAjB;;AAEA,MAAI0I,MAAM,CAACqT,iBAAP,KAA6B,SAAjC,EAA4C;AAC1C,QAAI,CAAC6G,SAAS,CAACzc,OAAV,CAAkB4I,MAAM,CAAC0L,SAAzB,EAAoCphB,MAAzC,EAAiD;AAClD;;AAED8E,EAAAA,IAAI,CAAC4Y,YAAL,GAAoB9d,CAAC,CAACuoB,IAAF,KAAW,YAA/B;AACA,MAAI,CAACrjB,IAAI,CAAC4Y,YAAN,IAAsB,WAAW9d,CAAjC,IAAsCA,CAAC,CAAC4pB,KAAF,KAAY,CAAtD,EAAyD;AACzD,MAAI,CAAC1kB,IAAI,CAAC4Y,YAAN,IAAsB,YAAY9d,CAAlC,IAAuCA,CAAC,CAAC6pB,MAAF,GAAW,CAAtD,EAAyD;AACzD,MAAI3kB,IAAI,CAAC+X,SAAL,IAAkB/X,IAAI,CAACgY,OAA3B,EAAoC,OA/BM,CA+BE;;AAE5C,QAAM4M,oBAAoB,GAAG,CAAC,CAACra,MAAM,CAACgW,cAAT,IAA2BhW,MAAM,CAACgW,cAAP,KAA0B,EAAlF;;AAEA,MAAIqE,oBAAoB,IAAI9pB,CAAC,CAAC+G,MAA1B,IAAoC/G,CAAC,CAAC+G,MAAF,CAASqa,UAA7C,IAA2D3Z,KAAK,CAACsiB,IAAjE,IAAyEtiB,KAAK,CAACsiB,IAAN,CAAW,CAAX,CAA7E,EAA4F;AAC1FJ,IAAAA,SAAS,GAAGzmB,0DAAC,CAACuE,KAAK,CAACsiB,IAAN,CAAW,CAAX,CAAD,CAAb;AACD;;AAED,QAAMrE,iBAAiB,GAAGjW,MAAM,CAACiW,iBAAP,GAA2BjW,MAAM,CAACiW,iBAAlC,GAAuD,IAAGjW,MAAM,CAACgW,cAAe,EAA1G;AACA,QAAMuE,cAAc,GAAG,CAAC,EAAEhqB,CAAC,CAAC+G,MAAF,IAAY/G,CAAC,CAAC+G,MAAF,CAASqa,UAAvB,CAAxB,CAxC0C,CAwCkB;;AAE5D,MAAI3R,MAAM,CAAC+V,SAAP,KAAqBwE,cAAc,GAAGT,cAAc,CAAC7D,iBAAD,EAAoB1lB,CAAC,CAAC+G,MAAtB,CAAjB,GAAiD4iB,SAAS,CAACzc,OAAV,CAAkBwY,iBAAlB,EAAqC,CAArC,CAApF,CAAJ,EAAkI;AAChI5P,IAAAA,MAAM,CAACkI,UAAP,GAAoB,IAApB;AACA;AACD;;AAED,MAAIvO,MAAM,CAAC8V,YAAX,EAAyB;AACvB,QAAI,CAACoE,SAAS,CAACzc,OAAV,CAAkBuC,MAAM,CAAC8V,YAAzB,EAAuC,CAAvC,CAAL,EAAgD;AACjD;;AAEDtH,EAAAA,OAAO,CAACG,QAAR,GAAmBpe,CAAC,CAACuoB,IAAF,KAAW,YAAX,GAA0BvoB,CAAC,CAACyoB,aAAF,CAAgB,CAAhB,EAAmBE,KAA7C,GAAqD3oB,CAAC,CAAC2oB,KAA1E;AACA1K,EAAAA,OAAO,CAACI,QAAR,GAAmBre,CAAC,CAACuoB,IAAF,KAAW,YAAX,GAA0BvoB,CAAC,CAACyoB,aAAF,CAAgB,CAAhB,EAAmBG,KAA7C,GAAqD5oB,CAAC,CAAC4oB,KAA1E;AACA,QAAM1K,MAAM,GAAGD,OAAO,CAACG,QAAvB;AACA,QAAMD,MAAM,GAAGF,OAAO,CAACI,QAAvB,CAtD0C,CAsDT;;AAEjC,QAAM+E,kBAAkB,GAAG3T,MAAM,CAAC2T,kBAAP,IAA6B3T,MAAM,CAACwa,qBAA/D;AACA,QAAM5G,kBAAkB,GAAG5T,MAAM,CAAC4T,kBAAP,IAA6B5T,MAAM,CAACya,qBAA/D;;AAEA,MAAI9G,kBAAkB,KAAKlF,MAAM,IAAImF,kBAAV,IAAgCnF,MAAM,IAAIvf,MAAM,CAACyK,UAAP,GAAoBia,kBAAnE,CAAtB,EAA8G;AAC5G,QAAID,kBAAkB,KAAK,SAA3B,EAAsC;AACpC3b,MAAAA,KAAK,CAAC0f,cAAN;AACD,KAFD,MAEO;AACL;AACD;AACF;;AAEDjmB,EAAAA,MAAM,CAACsO,MAAP,CAActK,IAAd,EAAoB;AAClB+X,IAAAA,SAAS,EAAE,IADO;AAElBC,IAAAA,OAAO,EAAE,KAFS;AAGlBC,IAAAA,mBAAmB,EAAE,IAHH;AAIlBE,IAAAA,WAAW,EAAE3Y,SAJK;AAKlBqZ,IAAAA,WAAW,EAAErZ;AALK,GAApB;AAOAuZ,EAAAA,OAAO,CAACC,MAAR,GAAiBA,MAAjB;AACAD,EAAAA,OAAO,CAACE,MAAR,GAAiBA,MAAjB;AACAjZ,EAAAA,IAAI,CAACkY,cAAL,GAAsBrD,qDAAG,EAAzB;AACAjE,EAAAA,MAAM,CAACkI,UAAP,GAAoB,IAApB;AACAlI,EAAAA,MAAM,CAACqK,UAAP;AACArK,EAAAA,MAAM,CAACkS,cAAP,GAAwBtjB,SAAxB;AACA,MAAI+K,MAAM,CAAC8U,SAAP,GAAmB,CAAvB,EAA0Brf,IAAI,CAACsY,kBAAL,GAA0B,KAA1B;;AAE1B,MAAIxd,CAAC,CAACuoB,IAAF,KAAW,YAAf,EAA6B;AAC3B,QAAIpB,cAAc,GAAG,IAArB;AACA,QAAIwC,SAAS,CAACxiB,EAAV,CAAajC,IAAI,CAACuY,iBAAlB,CAAJ,EAA0C0J,cAAc,GAAG,KAAjB;;AAE1C,QAAI1oB,QAAQ,CAACsU,aAAT,IAA0B7P,0DAAC,CAACzE,QAAQ,CAACsU,aAAV,CAAD,CAA0B5L,EAA1B,CAA6BjC,IAAI,CAACuY,iBAAlC,CAA1B,IAAkFhf,QAAQ,CAACsU,aAAT,KAA2B4W,SAAS,CAAC,CAAD,CAA1H,EAA+H;AAC7HlrB,MAAAA,QAAQ,CAACsU,aAAT,CAAuBzB,IAAvB;AACD;;AAED,UAAM6Y,oBAAoB,GAAGhD,cAAc,IAAIrR,MAAM,CAACwB,cAAzB,IAA2C7H,MAAM,CAACgV,wBAA/E;;AAEA,QAAI,CAAChV,MAAM,CAACiV,6BAAP,IAAwCyF,oBAAzC,KAAkE,CAACR,SAAS,CAAC,CAAD,CAAT,CAAaS,iBAApF,EAAuG;AACrGpqB,MAAAA,CAAC,CAACmnB,cAAF;AACD;AACF;;AAEDrR,EAAAA,MAAM,CAAC6B,IAAP,CAAY,YAAZ,EAA0B3X,CAA1B;AACD;;;;;;;;;;;;;;;;ACjHD;AACA;AACA,iEAAe;AACb0e,EAAAA,aADa;AAEbC,EAAAA,eAAeA,6DAAAA;AAFF,CAAf;;;;;;;;;;;;;;ACFe,SAASD,aAAT,CAAuB2L,MAAvB,EAA+B;AAC5C,QAAMvU,MAAM,GAAG,IAAf;AACA,MAAIA,MAAM,CAACsD,OAAP,CAAeE,KAAf,IAAwB,CAACxD,MAAM,CAACrG,MAAP,CAAcsN,aAAvC,IAAwDjH,MAAM,CAACrG,MAAP,CAAckR,aAAd,IAA+B7K,MAAM,CAACmC,QAA9F,IAA0GnC,MAAM,CAACrG,MAAP,CAAckK,OAA5H,EAAqI;AACrI,QAAMxb,EAAE,GAAG2X,MAAM,CAACrG,MAAP,CAAcqT,iBAAd,KAAoC,WAApC,GAAkDhN,MAAM,CAAC3X,EAAzD,GAA8D2X,MAAM,CAAC0L,SAAhF;AACArjB,EAAAA,EAAE,CAACiI,KAAH,CAASkkB,MAAT,GAAkB,MAAlB;AACAnsB,EAAAA,EAAE,CAACiI,KAAH,CAASkkB,MAAT,GAAkBD,MAAM,GAAG,kBAAH,GAAwB,cAAhD;AACAlsB,EAAAA,EAAE,CAACiI,KAAH,CAASkkB,MAAT,GAAkBD,MAAM,GAAG,cAAH,GAAoB,WAA5C;AACAlsB,EAAAA,EAAE,CAACiI,KAAH,CAASkkB,MAAT,GAAkBD,MAAM,GAAG,UAAH,GAAgB,MAAxC;AACD;;;;;;;;;;;;;;ACRc,SAAS1L,eAAT,GAA2B;AACxC,QAAM7I,MAAM,GAAG,IAAf;;AAEA,MAAIA,MAAM,CAACsD,OAAP,CAAeE,KAAf,IAAwBxD,MAAM,CAACrG,MAAP,CAAckR,aAAd,IAA+B7K,MAAM,CAACmC,QAA9D,IAA0EnC,MAAM,CAACrG,MAAP,CAAckK,OAA5F,EAAqG;AACnG;AACD;;AAED7D,EAAAA,MAAM,CAACA,MAAM,CAACrG,MAAP,CAAcqT,iBAAd,KAAoC,WAApC,GAAkD,IAAlD,GAAyD,WAA1D,CAAN,CAA6E1c,KAA7E,CAAmFkkB,MAAnF,GAA4F,EAA5F;AACD;;;;;;;;;;;;;;;;ACRD;AACA;AACA,iEAAe;AACbC,EAAAA,SADa;AAEb5I,EAAAA,aAAaA,2DAAAA;AAFA,CAAf;;;;;;;;;;;;;;;;ACFA;AACA;AACe,SAAS4I,SAAT,CAAmBC,OAAnB,EAA4B3X,GAA5B,EAAiC4X,MAAjC,EAAyCC,KAAzC,EAAgDC,gBAAhD,EAAkE3oB,QAAlE,EAA4E;AACzF,QAAMrD,MAAM,GAAGiC,qDAAS,EAAxB;AACA,MAAIgqB,KAAJ;;AAEA,WAASC,OAAT,GAAmB;AACjB,QAAI7oB,QAAJ,EAAcA,QAAQ;AACvB;;AAED,QAAM8oB,SAAS,GAAG5nB,0DAAC,CAACsnB,OAAD,CAAD,CAAWze,MAAX,CAAkB,SAAlB,EAA6B,CAA7B,CAAlB;;AAEA,MAAI,CAAC+e,SAAD,KAAe,CAACN,OAAO,CAACra,QAAT,IAAqB,CAACwa,gBAArC,CAAJ,EAA4D;AAC1D,QAAI9X,GAAJ,EAAS;AACP+X,MAAAA,KAAK,GAAG,IAAIjsB,MAAM,CAAC6V,KAAX,EAAR;AACAoW,MAAAA,KAAK,CAACG,MAAN,GAAeF,OAAf;AACAD,MAAAA,KAAK,CAACI,OAAN,GAAgBH,OAAhB;;AAEA,UAAIH,KAAJ,EAAW;AACTE,QAAAA,KAAK,CAACF,KAAN,GAAcA,KAAd;AACD;;AAED,UAAID,MAAJ,EAAY;AACVG,QAAAA,KAAK,CAACH,MAAN,GAAeA,MAAf;AACD;;AAED,UAAI5X,GAAJ,EAAS;AACP+X,QAAAA,KAAK,CAAC/X,GAAN,GAAYA,GAAZ;AACD;AACF,KAhBD,MAgBO;AACLgY,MAAAA,OAAO;AACR;AACF,GApBD,MAoBO;AACL;AACAA,IAAAA,OAAO;AACR;AACF;;;;;;;;;;;;;;ACpCc,SAASlJ,aAAT,GAAyB;AACtC,QAAM7L,MAAM,GAAG,IAAf;AACAA,EAAAA,MAAM,CAACyI,YAAP,GAAsBzI,MAAM,CAACM,GAAP,CAAWjJ,IAAX,CAAgB,KAAhB,CAAtB;;AAEA,WAAS0d,OAAT,GAAmB;AACjB,QAAI,OAAO/U,MAAP,KAAkB,WAAlB,IAAiCA,MAAM,KAAK,IAA5C,IAAoD,CAACA,MAArD,IAA+DA,MAAM,CAACoK,SAA1E,EAAqF;AACrF,QAAIpK,MAAM,CAAC0I,YAAP,KAAwB9Z,SAA5B,EAAuCoR,MAAM,CAAC0I,YAAP,IAAuB,CAAvB;;AAEvC,QAAI1I,MAAM,CAAC0I,YAAP,KAAwB1I,MAAM,CAACyI,YAAP,CAAoBne,MAAhD,EAAwD;AACtD,UAAI0V,MAAM,CAACrG,MAAP,CAAc0V,mBAAlB,EAAuCrP,MAAM,CAACyE,MAAP;AACvCzE,MAAAA,MAAM,CAAC6B,IAAP,CAAY,aAAZ;AACD;AACF;;AAED,OAAK,IAAI5X,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+V,MAAM,CAACyI,YAAP,CAAoBne,MAAxC,EAAgDL,CAAC,IAAI,CAArD,EAAwD;AACtD,UAAMyqB,OAAO,GAAG1U,MAAM,CAACyI,YAAP,CAAoBxe,CAApB,CAAhB;AACA+V,IAAAA,MAAM,CAACyU,SAAP,CAAiBC,OAAjB,EAA0BA,OAAO,CAACS,UAAR,IAAsBT,OAAO,CAAC/lB,YAAR,CAAqB,KAArB,CAAhD,EAA6E+lB,OAAO,CAACC,MAAR,IAAkBD,OAAO,CAAC/lB,YAAR,CAAqB,QAArB,CAA/F,EAA+H+lB,OAAO,CAACE,KAAR,IAAiBF,OAAO,CAAC/lB,YAAR,CAAqB,OAArB,CAAhJ,EAA+K,IAA/K,EAAqLomB,OAArL;AACD;AACF;;;;;;;;;;;;;;;;;AClBD;AACA;AACA;AACA,iEAAe;AACbhT,EAAAA,UADa;AAEbsR,EAAAA,OAFa;AAGbvR,EAAAA,WAAWA,yDAAAA;AAHE,CAAf;;;;;;;;;;;;;;;;ACHA;AACA;AACe,SAASC,UAAT,GAAsB;AACnC,QAAM/B,MAAM,GAAG,IAAf;AACA,QAAMrX,QAAQ,GAAGoC,uDAAW,EAA5B;AACA,QAAM;AACJ4O,IAAAA,MADI;AAEJ4R,IAAAA;AAFI,MAGFvL,MAHJ,CAHmC,CAMvB;;AAEZuL,EAAAA,UAAU,CAAC/T,QAAX,CAAqB,IAAGmC,MAAM,CAAC6P,UAAW,IAAG7P,MAAM,CAACqW,mBAAoB,EAAxE,EAA2ElmB,MAA3E;AACA,MAAIyY,MAAM,GAAGgJ,UAAU,CAAC/T,QAAX,CAAqB,IAAGmC,MAAM,CAAC6P,UAAW,EAA1C,CAAb;;AAEA,MAAI7P,MAAM,CAAC4V,sBAAX,EAAmC;AACjC,UAAM6F,cAAc,GAAGzb,MAAM,CAAC+T,cAAP,GAAwBnL,MAAM,CAACjY,MAAP,GAAgBqP,MAAM,CAAC+T,cAAtE;;AAEA,QAAI0H,cAAc,KAAKzb,MAAM,CAAC+T,cAA9B,EAA8C;AAC5C,WAAK,IAAIzjB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmrB,cAApB,EAAoCnrB,CAAC,IAAI,CAAzC,EAA4C;AAC1C,cAAMorB,SAAS,GAAGjoB,0DAAC,CAACzE,QAAQ,CAAC8E,aAAT,CAAuB,KAAvB,CAAD,CAAD,CAAiCK,QAAjC,CAA2C,GAAE6L,MAAM,CAAC6P,UAAW,IAAG7P,MAAM,CAACmW,eAAgB,EAAzF,CAAlB;AACAvE,QAAAA,UAAU,CAAC7V,MAAX,CAAkB2f,SAAlB;AACD;;AAED9S,MAAAA,MAAM,GAAGgJ,UAAU,CAAC/T,QAAX,CAAqB,IAAGmC,MAAM,CAAC6P,UAAW,EAA1C,CAAT;AACD;AACF;;AAED,MAAI7P,MAAM,CAAC9R,aAAP,KAAyB,MAAzB,IAAmC,CAAC8R,MAAM,CAAC0G,YAA/C,EAA6D1G,MAAM,CAAC0G,YAAP,GAAsBkC,MAAM,CAACjY,MAA7B;AAC7D0V,EAAAA,MAAM,CAACK,YAAP,GAAsB5H,IAAI,CAAC6c,IAAL,CAAU1lB,UAAU,CAAC+J,MAAM,CAAC0G,YAAP,IAAuB1G,MAAM,CAAC9R,aAA/B,EAA8C,EAA9C,CAApB,CAAtB;AACAmY,EAAAA,MAAM,CAACK,YAAP,IAAuB1G,MAAM,CAAC2V,oBAA9B;;AAEA,MAAItP,MAAM,CAACK,YAAP,GAAsBkC,MAAM,CAACjY,MAAjC,EAAyC;AACvC0V,IAAAA,MAAM,CAACK,YAAP,GAAsBkC,MAAM,CAACjY,MAA7B;AACD;;AAED,QAAMirB,aAAa,GAAG,EAAtB;AACA,QAAMC,YAAY,GAAG,EAArB;AACAjT,EAAAA,MAAM,CAAC1N,IAAP,CAAY,CAACxM,EAAD,EAAKyM,KAAL,KAAe;AACzB,UAAM6P,KAAK,GAAGvX,0DAAC,CAAC/E,EAAD,CAAf;;AAEA,QAAIyM,KAAK,GAAGkL,MAAM,CAACK,YAAnB,EAAiC;AAC/BmV,MAAAA,YAAY,CAACxpB,IAAb,CAAkB3D,EAAlB;AACD;;AAED,QAAIyM,KAAK,GAAGyN,MAAM,CAACjY,MAAf,IAAyBwK,KAAK,IAAIyN,MAAM,CAACjY,MAAP,GAAgB0V,MAAM,CAACK,YAA7D,EAA2E;AACzEkV,MAAAA,aAAa,CAACvpB,IAAd,CAAmB3D,EAAnB;AACD;;AAEDsc,IAAAA,KAAK,CAACnW,IAAN,CAAW,yBAAX,EAAsCsG,KAAtC;AACD,GAZD;;AAcA,OAAK,IAAI7K,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGurB,YAAY,CAAClrB,MAAjC,EAAyCL,CAAC,IAAI,CAA9C,EAAiD;AAC/CshB,IAAAA,UAAU,CAAC7V,MAAX,CAAkBtI,0DAAC,CAACooB,YAAY,CAACvrB,CAAD,CAAZ,CAAgBsM,SAAhB,CAA0B,IAA1B,CAAD,CAAD,CAAmCzI,QAAnC,CAA4C6L,MAAM,CAACqW,mBAAnD,CAAlB;AACD;;AAED,OAAK,IAAI/lB,CAAC,GAAGsrB,aAAa,CAACjrB,MAAd,GAAuB,CAApC,EAAuCL,CAAC,IAAI,CAA5C,EAA+CA,CAAC,IAAI,CAApD,EAAuD;AACrDshB,IAAAA,UAAU,CAACrV,OAAX,CAAmB9I,0DAAC,CAACmoB,aAAa,CAACtrB,CAAD,CAAb,CAAiBsM,SAAjB,CAA2B,IAA3B,CAAD,CAAD,CAAoCzI,QAApC,CAA6C6L,MAAM,CAACqW,mBAApD,CAAnB;AACD;AACF;;;;;;;;;;;;;;ACzDc,SAASlO,WAAT,GAAuB;AACpC,QAAM9B,MAAM,GAAG,IAAf;AACA,QAAM;AACJuL,IAAAA,UADI;AAEJ5R,IAAAA,MAFI;AAGJ4I,IAAAA;AAHI,MAIFvC,MAJJ;AAKAuL,EAAAA,UAAU,CAAC/T,QAAX,CAAqB,IAAGmC,MAAM,CAAC6P,UAAW,IAAG7P,MAAM,CAACqW,mBAAoB,KAAIrW,MAAM,CAAC6P,UAAW,IAAG7P,MAAM,CAACmW,eAAgB,EAAxH,EAA2HhmB,MAA3H;AACAyY,EAAAA,MAAM,CAACxT,UAAP,CAAkB,yBAAlB;AACD;;;;;;;;;;;;;;ACTc,SAASskB,OAAT,GAAmB;AAChC,QAAMrT,MAAM,GAAG,IAAf;AACAA,EAAAA,MAAM,CAAC6B,IAAP,CAAY,eAAZ;AACA,QAAM;AACJ1B,IAAAA,WADI;AAEJoC,IAAAA,MAFI;AAGJlC,IAAAA,YAHI;AAIJqB,IAAAA,cAJI;AAKJD,IAAAA,cALI;AAMJmB,IAAAA,QANI;AAOJ6H,IAAAA,YAAY,EAAErH;AAPV,MAQFpD,MARJ;AASA,MAAIyV,QAAJ;AACAzV,EAAAA,MAAM,CAAC0B,cAAP,GAAwB,IAAxB;AACA1B,EAAAA,MAAM,CAACyB,cAAP,GAAwB,IAAxB;AACA,QAAMiU,aAAa,GAAG,CAAC9S,QAAQ,CAACzC,WAAD,CAA/B;AACA,QAAMqI,IAAI,GAAGkN,aAAa,GAAG1V,MAAM,CAACsT,YAAP,EAA7B,CAhBgC,CAgBoB;;AAEpD,MAAInT,WAAW,GAAGE,YAAlB,EAAgC;AAC9BoV,IAAAA,QAAQ,GAAGlT,MAAM,CAACjY,MAAP,GAAgB+V,YAAY,GAAG,CAA/B,GAAmCF,WAA9C;AACAsV,IAAAA,QAAQ,IAAIpV,YAAZ;AACA,UAAMsV,YAAY,GAAG3V,MAAM,CAACiC,OAAP,CAAewT,QAAf,EAAyB,CAAzB,EAA4B,KAA5B,EAAmC,IAAnC,CAArB;;AAEA,QAAIE,YAAY,IAAInN,IAAI,KAAK,CAA7B,EAAgC;AAC9BxI,MAAAA,MAAM,CAACuK,YAAP,CAAoB,CAACnH,GAAG,GAAG,CAACpD,MAAM,CAAC0E,SAAX,GAAuB1E,MAAM,CAAC0E,SAAlC,IAA+C8D,IAAnE;AACD;AACF,GARD,MAQO,IAAIrI,WAAW,IAAIoC,MAAM,CAACjY,MAAP,GAAgB+V,YAAnC,EAAiD;AACtD;AACAoV,IAAAA,QAAQ,GAAG,CAAClT,MAAM,CAACjY,MAAR,GAAiB6V,WAAjB,GAA+BE,YAA1C;AACAoV,IAAAA,QAAQ,IAAIpV,YAAZ;AACA,UAAMsV,YAAY,GAAG3V,MAAM,CAACiC,OAAP,CAAewT,QAAf,EAAyB,CAAzB,EAA4B,KAA5B,EAAmC,IAAnC,CAArB;;AAEA,QAAIE,YAAY,IAAInN,IAAI,KAAK,CAA7B,EAAgC;AAC9BxI,MAAAA,MAAM,CAACuK,YAAP,CAAoB,CAACnH,GAAG,GAAG,CAACpD,MAAM,CAAC0E,SAAX,GAAuB1E,MAAM,CAAC0E,SAAlC,IAA+C8D,IAAnE;AACD;AACF;;AAEDxI,EAAAA,MAAM,CAAC0B,cAAP,GAAwBA,cAAxB;AACA1B,EAAAA,MAAM,CAACyB,cAAP,GAAwBA,cAAxB;AACAzB,EAAAA,MAAM,CAAC6B,IAAP,CAAY,SAAZ;AACD;;;;;;;;;;;;;;;ACxCD;AACe,SAASkD,kBAAT,CAA4BpL,MAA5B,EAAoCiM,gBAApC,EAAsD;AACnE,SAAO,SAASE,YAAT,CAAsB7a,GAAG,GAAG,EAA5B,EAAgC;AACrC,UAAM2qB,eAAe,GAAGxqB,MAAM,CAACyP,IAAP,CAAY5P,GAAZ,EAAiB,CAAjB,CAAxB;AACA,UAAM4qB,YAAY,GAAG5qB,GAAG,CAAC2qB,eAAD,CAAxB;;AAEA,QAAI,OAAOC,YAAP,KAAwB,QAAxB,IAAoCA,YAAY,KAAK,IAAzD,EAA+D;AAC7D/Y,MAAAA,wDAAM,CAAC8I,gBAAD,EAAmB3a,GAAnB,CAAN;AACA;AACD;;AAED,QAAI,CAAC,YAAD,EAAe,YAAf,EAA6B,WAA7B,EAA0CuB,OAA1C,CAAkDopB,eAAlD,KAAsE,CAAtE,IAA2Ejc,MAAM,CAACic,eAAD,CAAN,KAA4B,IAA3G,EAAiH;AAC/Gjc,MAAAA,MAAM,CAACic,eAAD,CAAN,GAA0B;AACxBE,QAAAA,IAAI,EAAE;AADkB,OAA1B;AAGD;;AAED,QAAI,EAAEF,eAAe,IAAIjc,MAAnB,IAA6B,aAAakc,YAA5C,CAAJ,EAA+D;AAC7D/Y,MAAAA,wDAAM,CAAC8I,gBAAD,EAAmB3a,GAAnB,CAAN;AACA;AACD;;AAED,QAAI0O,MAAM,CAACic,eAAD,CAAN,KAA4B,IAAhC,EAAsC;AACpCjc,MAAAA,MAAM,CAACic,eAAD,CAAN,GAA0B;AACxB7U,QAAAA,OAAO,EAAE;AADe,OAA1B;AAGD;;AAED,QAAI,OAAOpH,MAAM,CAACic,eAAD,CAAb,KAAmC,QAAnC,IAA+C,EAAE,aAAajc,MAAM,CAACic,eAAD,CAArB,CAAnD,EAA4F;AAC1Fjc,MAAAA,MAAM,CAACic,eAAD,CAAN,CAAwB7U,OAAxB,GAAkC,IAAlC;AACD;;AAED,QAAI,CAACpH,MAAM,CAACic,eAAD,CAAX,EAA8Bjc,MAAM,CAACic,eAAD,CAAN,GAA0B;AACtD7U,MAAAA,OAAO,EAAE;AAD6C,KAA1B;AAG9BjE,IAAAA,wDAAM,CAAC8I,gBAAD,EAAmB3a,GAAnB,CAAN;AACD,GAlCD;AAmCD;;;;;;;;;;;;;;;ACrCD;AACe,SAASsZ,QAAT,CAAkB;AAC/BvE,EAAAA,MAD+B;AAE/B8F,EAAAA,YAF+B;AAG/BpV,EAAAA,EAH+B;AAI/BmR,EAAAA;AAJ+B,CAAlB,EAKZ;AACD,QAAMkU,SAAS,GAAG,EAAlB;AACA,QAAMltB,MAAM,GAAGiC,qDAAS,EAAxB;;AAEA,QAAMkrB,MAAM,GAAG,CAAC/kB,MAAD,EAASd,OAAO,GAAG,EAAnB,KAA0B;AACvC,UAAM8lB,YAAY,GAAGptB,MAAM,CAACqtB,gBAAP,IAA2BrtB,MAAM,CAACstB,sBAAvD;AACA,UAAMC,QAAQ,GAAG,IAAIH,YAAJ,CAAiBI,SAAS,IAAI;AAC7C;AACA;AACA;AACA,UAAIA,SAAS,CAAC/rB,MAAV,KAAqB,CAAzB,EAA4B;AAC1BuX,QAAAA,IAAI,CAAC,gBAAD,EAAmBwU,SAAS,CAAC,CAAD,CAA5B,CAAJ;AACA;AACD;;AAED,YAAMC,cAAc,GAAG,SAASA,cAAT,GAA0B;AAC/CzU,QAAAA,IAAI,CAAC,gBAAD,EAAmBwU,SAAS,CAAC,CAAD,CAA5B,CAAJ;AACD,OAFD;;AAIA,UAAIxtB,MAAM,CAAC0Q,qBAAX,EAAkC;AAChC1Q,QAAAA,MAAM,CAAC0Q,qBAAP,CAA6B+c,cAA7B;AACD,OAFD,MAEO;AACLztB,QAAAA,MAAM,CAAC+V,UAAP,CAAkB0X,cAAlB,EAAkC,CAAlC;AACD;AACF,KAlBgB,CAAjB;AAmBAF,IAAAA,QAAQ,CAACG,OAAT,CAAiBtlB,MAAjB,EAAyB;AACvBvB,MAAAA,UAAU,EAAE,OAAOS,OAAO,CAACT,UAAf,KAA8B,WAA9B,GAA4C,IAA5C,GAAmDS,OAAO,CAACT,UADhD;AAEvB8mB,MAAAA,SAAS,EAAE,OAAOrmB,OAAO,CAACqmB,SAAf,KAA6B,WAA7B,GAA2C,IAA3C,GAAkDrmB,OAAO,CAACqmB,SAF9C;AAGvBC,MAAAA,aAAa,EAAE,OAAOtmB,OAAO,CAACsmB,aAAf,KAAiC,WAAjC,GAA+C,IAA/C,GAAsDtmB,OAAO,CAACsmB;AAHtD,KAAzB;AAKAV,IAAAA,SAAS,CAAC/pB,IAAV,CAAeoqB,QAAf;AACD,GA3BD;;AA6BA,QAAMzN,IAAI,GAAG,MAAM;AACjB,QAAI,CAAC3I,MAAM,CAACrG,MAAP,CAAcyc,QAAnB,EAA6B;;AAE7B,QAAIpW,MAAM,CAACrG,MAAP,CAAc+c,cAAlB,EAAkC;AAChC,YAAMC,gBAAgB,GAAG3W,MAAM,CAACM,GAAP,CAAW/O,OAAX,EAAzB;;AAEA,WAAK,IAAItH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0sB,gBAAgB,CAACrsB,MAArC,EAA6CL,CAAC,IAAI,CAAlD,EAAqD;AACnD+rB,QAAAA,MAAM,CAACW,gBAAgB,CAAC1sB,CAAD,CAAjB,CAAN;AACD;AACF,KATgB,CASf;;;AAGF+rB,IAAAA,MAAM,CAAChW,MAAM,CAACM,GAAP,CAAW,CAAX,CAAD,EAAgB;AACpBkW,MAAAA,SAAS,EAAExW,MAAM,CAACrG,MAAP,CAAcid;AADL,KAAhB,CAAN,CAZiB,CAcb;;AAEJZ,IAAAA,MAAM,CAAChW,MAAM,CAACuL,UAAP,CAAkB,CAAlB,CAAD,EAAuB;AAC3B7b,MAAAA,UAAU,EAAE;AADe,KAAvB,CAAN;AAGD,GAnBD;;AAqBA,QAAMuc,OAAO,GAAG,MAAM;AACpB8J,IAAAA,SAAS,CAAC7sB,OAAV,CAAkBktB,QAAQ,IAAI;AAC5BA,MAAAA,QAAQ,CAACS,UAAT;AACD,KAFD;AAGAd,IAAAA,SAAS,CAAC5jB,MAAV,CAAiB,CAAjB,EAAoB4jB,SAAS,CAACzrB,MAA9B;AACD,GALD;;AAOAwb,EAAAA,YAAY,CAAC;AACXsQ,IAAAA,QAAQ,EAAE,KADC;AAEXM,IAAAA,cAAc,EAAE,KAFL;AAGXE,IAAAA,oBAAoB,EAAE;AAHX,GAAD,CAAZ;AAKAlmB,EAAAA,EAAE,CAAC,MAAD,EAASiY,IAAT,CAAF;AACAjY,EAAAA,EAAE,CAAC,SAAD,EAAYub,OAAZ,CAAF;AACD;;;;;;;;;;;;;;;AC1ED;AACe,SAAS3H,MAAT,CAAgB;AAC7BtE,EAAAA,MAD6B;AAE7BtP,EAAAA,EAF6B;AAG7BmR,EAAAA;AAH6B,CAAhB,EAIZ;AACD,QAAMhZ,MAAM,GAAGiC,qDAAS,EAAxB;AACA,MAAIsrB,QAAQ,GAAG,IAAf;;AAEA,QAAMU,aAAa,GAAG,MAAM;AAC1B,QAAI,CAAC9W,MAAD,IAAWA,MAAM,CAACoK,SAAlB,IAA+B,CAACpK,MAAM,CAACI,WAA3C,EAAwD;AACxDyB,IAAAA,IAAI,CAAC,cAAD,CAAJ;AACAA,IAAAA,IAAI,CAAC,QAAD,CAAJ;AACD,GAJD;;AAMA,QAAMkV,cAAc,GAAG,MAAM;AAC3B,QAAI,CAAC/W,MAAD,IAAWA,MAAM,CAACoK,SAAlB,IAA+B,CAACpK,MAAM,CAACI,WAA3C,EAAwD;AACxDgW,IAAAA,QAAQ,GAAG,IAAIY,cAAJ,CAAmBjU,OAAO,IAAI;AACvC,YAAM;AACJ1P,QAAAA,KADI;AAEJQ,QAAAA;AAFI,UAGFmM,MAHJ;AAIA,UAAIiX,QAAQ,GAAG5jB,KAAf;AACA,UAAI6jB,SAAS,GAAGrjB,MAAhB;AACAkP,MAAAA,OAAO,CAAC7Z,OAAR,CAAgB,CAAC;AACfiuB,QAAAA,cADe;AAEfC,QAAAA,WAFe;AAGfnmB,QAAAA;AAHe,OAAD,KAIV;AACJ,YAAIA,MAAM,IAAIA,MAAM,KAAK+O,MAAM,CAAC3X,EAAhC,EAAoC;AACpC4uB,QAAAA,QAAQ,GAAGG,WAAW,GAAGA,WAAW,CAAC/jB,KAAf,GAAuB,CAAC8jB,cAAc,CAAC,CAAD,CAAd,IAAqBA,cAAtB,EAAsCE,UAAnF;AACAH,QAAAA,SAAS,GAAGE,WAAW,GAAGA,WAAW,CAACvjB,MAAf,GAAwB,CAACsjB,cAAc,CAAC,CAAD,CAAd,IAAqBA,cAAtB,EAAsCG,SAArF;AACD,OARD;;AAUA,UAAIL,QAAQ,KAAK5jB,KAAb,IAAsB6jB,SAAS,KAAKrjB,MAAxC,EAAgD;AAC9CijB,QAAAA,aAAa;AACd;AACF,KApBU,CAAX;AAqBAV,IAAAA,QAAQ,CAACG,OAAT,CAAiBvW,MAAM,CAAC3X,EAAxB;AACD,GAxBD;;AA0BA,QAAMkvB,cAAc,GAAG,MAAM;AAC3B,QAAInB,QAAQ,IAAIA,QAAQ,CAACoB,SAArB,IAAkCxX,MAAM,CAAC3X,EAA7C,EAAiD;AAC/C+tB,MAAAA,QAAQ,CAACoB,SAAT,CAAmBxX,MAAM,CAAC3X,EAA1B;AACA+tB,MAAAA,QAAQ,GAAG,IAAX;AACD;AACF,GALD;;AAOA,QAAMqB,wBAAwB,GAAG,MAAM;AACrC,QAAI,CAACzX,MAAD,IAAWA,MAAM,CAACoK,SAAlB,IAA+B,CAACpK,MAAM,CAACI,WAA3C,EAAwD;AACxDyB,IAAAA,IAAI,CAAC,mBAAD,CAAJ;AACD,GAHD;;AAKAnR,EAAAA,EAAE,CAAC,MAAD,EAAS,MAAM;AACf,QAAIsP,MAAM,CAACrG,MAAP,CAAcuT,cAAd,IAAgC,OAAOrkB,MAAM,CAACmuB,cAAd,KAAiC,WAArE,EAAkF;AAChFD,MAAAA,cAAc;AACd;AACD;;AAEDluB,IAAAA,MAAM,CAACC,gBAAP,CAAwB,QAAxB,EAAkCguB,aAAlC;AACAjuB,IAAAA,MAAM,CAACC,gBAAP,CAAwB,mBAAxB,EAA6C2uB,wBAA7C;AACD,GARC,CAAF;AASA/mB,EAAAA,EAAE,CAAC,SAAD,EAAY,MAAM;AAClB6mB,IAAAA,cAAc;AACd1uB,IAAAA,MAAM,CAACqJ,mBAAP,CAA2B,QAA3B,EAAqC4kB,aAArC;AACAjuB,IAAAA,MAAM,CAACqJ,mBAAP,CAA2B,mBAA3B,EAAgDulB,wBAAhD;AACD,GAJC,CAAF;AAKD;;;;;;;;;;;;;;;;;;;;;ACnED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAe;AACbxV,EAAAA,OADa;AAEbyV,EAAAA,WAFa;AAGbC,EAAAA,SAHa;AAIbC,EAAAA,SAJa;AAKbC,EAAAA,UALa;AAMbC,EAAAA,cANa;AAOb1I,EAAAA,mBAAmBA,iEAAAA;AAPN,CAAf;;;;;;;;;;;;;;ACPA;AACe,SAASuI,SAAT,CAAmB3vB,KAAK,GAAG,KAAK2R,MAAL,CAAY3R,KAAvC,EAA8C+vB,YAAY,GAAG,IAA7D,EAAmEC,QAAnE,EAA6E;AAC1F,QAAMhY,MAAM,GAAG,IAAf;AACA,QAAM;AACJnG,IAAAA,SADI;AAEJkH,IAAAA,OAFI;AAGJpH,IAAAA;AAHI,MAIFqG,MAJJ;AAKA,MAAI,CAACe,OAAL,EAAc,OAAOf,MAAP;AACd,MAAIiY,QAAQ,GAAGte,MAAM,CAAC+T,cAAtB;;AAEA,MAAI/T,MAAM,CAAC9R,aAAP,KAAyB,MAAzB,IAAmC8R,MAAM,CAAC+T,cAAP,KAA0B,CAA7D,IAAkE/T,MAAM,CAACiU,kBAA7E,EAAiG;AAC/FqK,IAAAA,QAAQ,GAAGxf,IAAI,CAACC,GAAL,CAASsH,MAAM,CAAC2J,oBAAP,CAA4B,SAA5B,EAAuC,IAAvC,CAAT,EAAuD,CAAvD,CAAX;AACD;;AAED,QAAM2I,SAAS,GAAGtS,MAAM,CAACG,WAAP,GAAqBxG,MAAM,CAACgU,kBAA5B,GAAiD,CAAjD,GAAqDsK,QAAvE;;AAEA,MAAIte,MAAM,CAAC/R,IAAX,EAAiB;AACf,QAAIiS,SAAS,IAAIF,MAAM,CAAC6V,iBAAxB,EAA2C,OAAO,KAAP;AAC3CxP,IAAAA,MAAM,CAACqT,OAAP,GAFe,CAEG;;AAElBrT,IAAAA,MAAM,CAACkY,WAAP,GAAqBlY,MAAM,CAACuL,UAAP,CAAkB,CAAlB,EAAqBnX,UAA1C;AACD;;AAED,SAAO4L,MAAM,CAACiC,OAAP,CAAejC,MAAM,CAACG,WAAP,GAAqBmS,SAApC,EAA+CtqB,KAA/C,EAAsD+vB,YAAtD,EAAoEC,QAApE,CAAP;AACD;;;;;;;;;;;;;;ACzBD;AACe,SAASJ,SAAT,CAAmB5vB,KAAK,GAAG,KAAK2R,MAAL,CAAY3R,KAAvC,EAA8C+vB,YAAY,GAAG,IAA7D,EAAmEC,QAAnE,EAA6E;AAC1F,QAAMhY,MAAM,GAAG,IAAf;AACA,QAAM;AACJrG,IAAAA,MADI;AAEJE,IAAAA,SAFI;AAGJ+I,IAAAA,QAHI;AAIJH,IAAAA,UAJI;AAKJgI,IAAAA,YALI;AAMJ1J,IAAAA;AANI,MAOFf,MAPJ;AAQA,MAAI,CAACe,OAAL,EAAc,OAAOf,MAAP;;AAEd,MAAIrG,MAAM,CAAC/R,IAAX,EAAiB;AACf,QAAIiS,SAAS,IAAIF,MAAM,CAAC6V,iBAAxB,EAA2C,OAAO,KAAP;AAC3CxP,IAAAA,MAAM,CAACqT,OAAP,GAFe,CAEG;;AAElBrT,IAAAA,MAAM,CAACkY,WAAP,GAAqBlY,MAAM,CAACuL,UAAP,CAAkB,CAAlB,EAAqBnX,UAA1C;AACD;;AAED,QAAMsQ,SAAS,GAAG+F,YAAY,GAAGzK,MAAM,CAAC0E,SAAV,GAAsB,CAAC1E,MAAM,CAAC0E,SAA5D;;AAEA,WAASyT,SAAT,CAAmBtoB,GAAnB,EAAwB;AACtB,QAAIA,GAAG,GAAG,CAAV,EAAa,OAAO,CAAC4I,IAAI,CAAC2f,KAAL,CAAW3f,IAAI,CAAC2a,GAAL,CAASvjB,GAAT,CAAX,CAAR;AACb,WAAO4I,IAAI,CAAC2f,KAAL,CAAWvoB,GAAX,CAAP;AACD;;AAED,QAAMwoB,mBAAmB,GAAGF,SAAS,CAACzT,SAAD,CAArC;AACA,QAAM4T,kBAAkB,GAAG1V,QAAQ,CAAC3U,GAAT,CAAa4B,GAAG,IAAIsoB,SAAS,CAACtoB,GAAD,CAA7B,CAA3B;AACA,MAAI0oB,QAAQ,GAAG3V,QAAQ,CAAC0V,kBAAkB,CAAC9rB,OAAnB,CAA2B6rB,mBAA3B,IAAkD,CAAnD,CAAvB;;AAEA,MAAI,OAAOE,QAAP,KAAoB,WAApB,IAAmC5e,MAAM,CAACkK,OAA9C,EAAuD;AACrD,QAAI2U,aAAJ;AACA5V,IAAAA,QAAQ,CAAC1Z,OAAT,CAAiB,CAACuvB,IAAD,EAAOC,SAAP,KAAqB;AACpC,UAAIL,mBAAmB,IAAII,IAA3B,EAAiC;AAC/B;AACAD,QAAAA,aAAa,GAAGE,SAAhB;AACD;AACF,KALD;;AAOA,QAAI,OAAOF,aAAP,KAAyB,WAA7B,EAA0C;AACxCD,MAAAA,QAAQ,GAAG3V,QAAQ,CAAC4V,aAAa,GAAG,CAAhB,GAAoBA,aAAa,GAAG,CAApC,GAAwCA,aAAzC,CAAnB;AACD;AACF;;AAED,MAAIG,SAAS,GAAG,CAAhB;;AAEA,MAAI,OAAOJ,QAAP,KAAoB,WAAxB,EAAqC;AACnCI,IAAAA,SAAS,GAAGlW,UAAU,CAACjW,OAAX,CAAmB+rB,QAAnB,CAAZ;AACA,QAAII,SAAS,GAAG,CAAhB,EAAmBA,SAAS,GAAG3Y,MAAM,CAACG,WAAP,GAAqB,CAAjC;;AAEnB,QAAIxG,MAAM,CAAC9R,aAAP,KAAyB,MAAzB,IAAmC8R,MAAM,CAAC+T,cAAP,KAA0B,CAA7D,IAAkE/T,MAAM,CAACiU,kBAA7E,EAAiG;AAC/F+K,MAAAA,SAAS,GAAGA,SAAS,GAAG3Y,MAAM,CAAC2J,oBAAP,CAA4B,UAA5B,EAAwC,IAAxC,CAAZ,GAA4D,CAAxE;AACAgP,MAAAA,SAAS,GAAGlgB,IAAI,CAACC,GAAL,CAASigB,SAAT,EAAoB,CAApB,CAAZ;AACD;AACF;;AAED,SAAO3Y,MAAM,CAACiC,OAAP,CAAe0W,SAAf,EAA0B3wB,KAA1B,EAAiC+vB,YAAjC,EAA+CC,QAA/C,CAAP;AACD;;;;;;;;;;;;;;AC1DD;AACe,SAASH,UAAT,CAAoB7vB,KAAK,GAAG,KAAK2R,MAAL,CAAY3R,KAAxC,EAA+C+vB,YAAY,GAAG,IAA9D,EAAoEC,QAApE,EAA8E;AAC3F,QAAMhY,MAAM,GAAG,IAAf;AACA,SAAOA,MAAM,CAACiC,OAAP,CAAejC,MAAM,CAACG,WAAtB,EAAmCnY,KAAnC,EAA0C+vB,YAA1C,EAAwDC,QAAxD,CAAP;AACD;;;;;;;;;;;;;;;ACJD;AACe,SAAS/V,OAAT,CAAiBnN,KAAK,GAAG,CAAzB,EAA4B9M,KAAK,GAAG,KAAK2R,MAAL,CAAY3R,KAAhD,EAAuD+vB,YAAY,GAAG,IAAtE,EAA4EC,QAA5E,EAAsFa,OAAtF,EAA+F;AAC5G,MAAI,OAAO/jB,KAAP,KAAiB,QAAjB,IAA6B,OAAOA,KAAP,KAAiB,QAAlD,EAA4D;AAC1D,UAAM,IAAIgkB,KAAJ,CAAW,2EAA0E,OAAOhkB,KAAM,UAAlG,CAAN;AACD;;AAED,MAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AAC7B;AACJ;AACA;AACA;AACI,UAAMikB,aAAa,GAAGnZ,QAAQ,CAAC9K,KAAD,EAAQ,EAAR,CAA9B;AACA;AACJ;AACA;AACA;AACA;;AAEI,UAAMkkB,aAAa,GAAGC,QAAQ,CAACF,aAAD,CAA9B;;AAEA,QAAI,CAACC,aAAL,EAAoB;AAClB,YAAM,IAAIF,KAAJ,CAAW,sEAAqEhkB,KAAM,UAAtF,CAAN;AACD,KAhB4B,CAgB3B;AACF;;;AAGAA,IAAAA,KAAK,GAAGikB,aAAR;AACD;;AAED,QAAM/Y,MAAM,GAAG,IAAf;AACA,MAAIkZ,UAAU,GAAGpkB,KAAjB;AACA,MAAIokB,UAAU,GAAG,CAAjB,EAAoBA,UAAU,GAAG,CAAb;AACpB,QAAM;AACJvf,IAAAA,MADI;AAEJiJ,IAAAA,QAFI;AAGJH,IAAAA,UAHI;AAIJ0W,IAAAA,aAJI;AAKJhZ,IAAAA,WALI;AAMJsK,IAAAA,YAAY,EAAErH,GANV;AAOJsI,IAAAA,SAPI;AAQJ3K,IAAAA;AARI,MASFf,MATJ;;AAWA,MAAIA,MAAM,CAACnG,SAAP,IAAoBF,MAAM,CAACyT,8BAA3B,IAA6D,CAACrM,OAAD,IAAY,CAACiX,QAAb,IAAyB,CAACa,OAA3F,EAAoG;AAClG,WAAO,KAAP;AACD;;AAED,QAAMO,IAAI,GAAG3gB,IAAI,CAACE,GAAL,CAASqH,MAAM,CAACrG,MAAP,CAAcgU,kBAAvB,EAA2CuL,UAA3C,CAAb;AACA,MAAIR,SAAS,GAAGU,IAAI,GAAG3gB,IAAI,CAAC2f,KAAL,CAAW,CAACc,UAAU,GAAGE,IAAd,IAAsBpZ,MAAM,CAACrG,MAAP,CAAc+T,cAA/C,CAAvB;AACA,MAAIgL,SAAS,IAAI9V,QAAQ,CAACtY,MAA1B,EAAkCouB,SAAS,GAAG9V,QAAQ,CAACtY,MAAT,GAAkB,CAA9B;;AAElC,MAAI,CAAC6V,WAAW,IAAIxG,MAAM,CAACmS,YAAtB,IAAsC,CAAvC,OAA+CqN,aAAa,IAAI,CAAhE,KAAsEpB,YAA1E,EAAwF;AACtF/X,IAAAA,MAAM,CAAC6B,IAAP,CAAY,wBAAZ;AACD;;AAED,QAAM6C,SAAS,GAAG,CAAC9B,QAAQ,CAAC8V,SAAD,CAA3B,CAtD4G,CAsDpE;;AAExC1Y,EAAAA,MAAM,CAACsK,cAAP,CAAsB5F,SAAtB,EAxD4G,CAwD1E;;AAElC,MAAI/K,MAAM,CAACoU,mBAAX,EAAgC;AAC9B,SAAK,IAAI9jB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwY,UAAU,CAACnY,MAA/B,EAAuCL,CAAC,IAAI,CAA5C,EAA+C;AAC7C,YAAMouB,mBAAmB,GAAG,CAAC5f,IAAI,CAAC2f,KAAL,CAAW1T,SAAS,GAAG,GAAvB,CAA7B;AACA,YAAM2U,cAAc,GAAG5gB,IAAI,CAAC2f,KAAL,CAAW3V,UAAU,CAACxY,CAAD,CAAV,GAAgB,GAA3B,CAAvB;AACA,YAAMqvB,kBAAkB,GAAG7gB,IAAI,CAAC2f,KAAL,CAAW3V,UAAU,CAACxY,CAAC,GAAG,CAAL,CAAV,GAAoB,GAA/B,CAA3B;;AAEA,UAAI,OAAOwY,UAAU,CAACxY,CAAC,GAAG,CAAL,CAAjB,KAA6B,WAAjC,EAA8C;AAC5C,YAAIouB,mBAAmB,IAAIgB,cAAvB,IAAyChB,mBAAmB,GAAGiB,kBAAkB,GAAG,CAACA,kBAAkB,GAAGD,cAAtB,IAAwC,CAAhI,EAAmI;AACjIH,UAAAA,UAAU,GAAGjvB,CAAb;AACD,SAFD,MAEO,IAAIouB,mBAAmB,IAAIgB,cAAvB,IAAyChB,mBAAmB,GAAGiB,kBAAnE,EAAuF;AAC5FJ,UAAAA,UAAU,GAAGjvB,CAAC,GAAG,CAAjB;AACD;AACF,OAND,MAMO,IAAIouB,mBAAmB,IAAIgB,cAA3B,EAA2C;AAChDH,QAAAA,UAAU,GAAGjvB,CAAb;AACD;AACF;AACF,GA1E2G,CA0E1G;;;AAGF,MAAI+V,MAAM,CAACI,WAAP,IAAsB8Y,UAAU,KAAK/Y,WAAzC,EAAsD;AACpD,QAAI,CAACH,MAAM,CAACyB,cAAR,IAA0BiD,SAAS,GAAG1E,MAAM,CAAC0E,SAA7C,IAA0DA,SAAS,GAAG1E,MAAM,CAAC+I,YAAP,EAA1E,EAAiG;AAC/F,aAAO,KAAP;AACD;;AAED,QAAI,CAAC/I,MAAM,CAAC0B,cAAR,IAA0BgD,SAAS,GAAG1E,MAAM,CAAC0E,SAA7C,IAA0DA,SAAS,GAAG1E,MAAM,CAACgJ,YAAP,EAA1E,EAAiG;AAC/F,UAAI,CAAC7I,WAAW,IAAI,CAAhB,MAAuB+Y,UAA3B,EAAuC,OAAO,KAAP;AACxC;AACF;;AAED,MAAI9X,SAAJ;AACA,MAAI8X,UAAU,GAAG/Y,WAAjB,EAA8BiB,SAAS,GAAG,MAAZ,CAA9B,KAAsD,IAAI8X,UAAU,GAAG/Y,WAAjB,EAA8BiB,SAAS,GAAG,MAAZ,CAA9B,KAAsDA,SAAS,GAAG,OAAZ,CAxFA,CAwFqB;;AAEjI,MAAIgC,GAAG,IAAI,CAACsB,SAAD,KAAe1E,MAAM,CAAC0E,SAA7B,IAA0C,CAACtB,GAAD,IAAQsB,SAAS,KAAK1E,MAAM,CAAC0E,SAA3E,EAAsF;AACpF1E,IAAAA,MAAM,CAACkJ,iBAAP,CAAyBgQ,UAAzB,EADoF,CAC9C;;AAEtC,QAAIvf,MAAM,CAAC+J,UAAX,EAAuB;AACrB1D,MAAAA,MAAM,CAAC4K,gBAAP;AACD;;AAED5K,IAAAA,MAAM,CAACmJ,mBAAP;;AAEA,QAAIxP,MAAM,CAAC1R,MAAP,KAAkB,OAAtB,EAA+B;AAC7B+X,MAAAA,MAAM,CAACuK,YAAP,CAAoB7F,SAApB;AACD;;AAED,QAAItD,SAAS,KAAK,OAAlB,EAA2B;AACzBpB,MAAAA,MAAM,CAACuZ,eAAP,CAAuBxB,YAAvB,EAAqC3W,SAArC;AACApB,MAAAA,MAAM,CAAC9M,aAAP,CAAqB6kB,YAArB,EAAmC3W,SAAnC;AACD;;AAED,WAAO,KAAP;AACD;;AAED,MAAIzH,MAAM,CAACkK,OAAX,EAAoB;AAClB,UAAM2V,GAAG,GAAGxZ,MAAM,CAACmG,YAAP,EAAZ;AACA,UAAMsT,CAAC,GAAGrW,GAAG,GAAGsB,SAAH,GAAe,CAACA,SAA7B;;AAEA,QAAI1c,KAAK,KAAK,CAAd,EAAiB;AACf,YAAM0xB,SAAS,GAAG1Z,MAAM,CAAC2Z,OAAP,IAAkB3Z,MAAM,CAACrG,MAAP,CAAcggB,OAAd,CAAsB5Y,OAA1D;;AAEA,UAAI2Y,SAAJ,EAAe;AACb1Z,QAAAA,MAAM,CAAC0L,SAAP,CAAiBpb,KAAjB,CAAuBspB,cAAvB,GAAwC,MAAxC;AACD;;AAEDlO,MAAAA,SAAS,CAAC8N,GAAG,GAAG,YAAH,GAAkB,WAAtB,CAAT,GAA8CC,CAA9C;;AAEA,UAAIC,SAAJ,EAAe;AACbngB,QAAAA,qBAAqB,CAAC,MAAM;AAC1ByG,UAAAA,MAAM,CAAC0L,SAAP,CAAiBpb,KAAjB,CAAuBspB,cAAvB,GAAwC,EAAxC;AACD,SAFoB,CAArB;AAGD;AACF,KAdD,MAcO;AACL,UAAI,CAAC5Z,MAAM,CAACsD,OAAP,CAAeuW,YAApB,EAAkC;AAChCjB,QAAAA,sEAAoB,CAAC;AACnB5Y,UAAAA,MADmB;AAEnB8Z,UAAAA,cAAc,EAAEL,CAFG;AAGnBM,UAAAA,IAAI,EAAEP,GAAG,GAAG,MAAH,GAAY;AAHF,SAAD,CAApB;AAKA,eAAO,IAAP;AACD;;AAED9N,MAAAA,SAAS,CAAC7T,QAAV,CAAmB;AACjB,SAAC2hB,GAAG,GAAG,MAAH,GAAY,KAAhB,GAAwBC,CADP;AAEjBO,QAAAA,QAAQ,EAAE;AAFO,OAAnB;AAID;;AAED,WAAO,IAAP;AACD;;AAED,MAAIhyB,KAAK,KAAK,CAAd,EAAiB;AACfgY,IAAAA,MAAM,CAACuT,aAAP,CAAqB,CAArB;AACAvT,IAAAA,MAAM,CAACuK,YAAP,CAAoB7F,SAApB;AACA1E,IAAAA,MAAM,CAACkJ,iBAAP,CAAyBgQ,UAAzB;AACAlZ,IAAAA,MAAM,CAACmJ,mBAAP;AACAnJ,IAAAA,MAAM,CAAC6B,IAAP,CAAY,uBAAZ,EAAqC7Z,KAArC,EAA4CgwB,QAA5C;AACAhY,IAAAA,MAAM,CAACuZ,eAAP,CAAuBxB,YAAvB,EAAqC3W,SAArC;AACApB,IAAAA,MAAM,CAAC9M,aAAP,CAAqB6kB,YAArB,EAAmC3W,SAAnC;AACD,GARD,MAQO;AACLpB,IAAAA,MAAM,CAACuT,aAAP,CAAqBvrB,KAArB;AACAgY,IAAAA,MAAM,CAACuK,YAAP,CAAoB7F,SAApB;AACA1E,IAAAA,MAAM,CAACkJ,iBAAP,CAAyBgQ,UAAzB;AACAlZ,IAAAA,MAAM,CAACmJ,mBAAP;AACAnJ,IAAAA,MAAM,CAAC6B,IAAP,CAAY,uBAAZ,EAAqC7Z,KAArC,EAA4CgwB,QAA5C;AACAhY,IAAAA,MAAM,CAACuZ,eAAP,CAAuBxB,YAAvB,EAAqC3W,SAArC;;AAEA,QAAI,CAACpB,MAAM,CAACnG,SAAZ,EAAuB;AACrBmG,MAAAA,MAAM,CAACnG,SAAP,GAAmB,IAAnB;;AAEA,UAAI,CAACmG,MAAM,CAACia,6BAAZ,EAA2C;AACzCja,QAAAA,MAAM,CAACia,6BAAP,GAAuC,SAAS/mB,aAAT,CAAuBhJ,CAAvB,EAA0B;AAC/D,cAAI,CAAC8V,MAAD,IAAWA,MAAM,CAACoK,SAAtB,EAAiC;AACjC,cAAIlgB,CAAC,CAAC+G,MAAF,KAAa,IAAjB,EAAuB;AACvB+O,UAAAA,MAAM,CAACuL,UAAP,CAAkB,CAAlB,EAAqBrZ,mBAArB,CAAyC,eAAzC,EAA0D8N,MAAM,CAACia,6BAAjE;AACAja,UAAAA,MAAM,CAACuL,UAAP,CAAkB,CAAlB,EAAqBrZ,mBAArB,CAAyC,qBAAzC,EAAgE8N,MAAM,CAACia,6BAAvE;AACAja,UAAAA,MAAM,CAACia,6BAAP,GAAuC,IAAvC;AACA,iBAAOja,MAAM,CAACia,6BAAd;AACAja,UAAAA,MAAM,CAAC9M,aAAP,CAAqB6kB,YAArB,EAAmC3W,SAAnC;AACD,SARD;AASD;;AAEDpB,MAAAA,MAAM,CAACuL,UAAP,CAAkB,CAAlB,EAAqBziB,gBAArB,CAAsC,eAAtC,EAAuDkX,MAAM,CAACia,6BAA9D;AACAja,MAAAA,MAAM,CAACuL,UAAP,CAAkB,CAAlB,EAAqBziB,gBAArB,CAAsC,qBAAtC,EAA6DkX,MAAM,CAACia,6BAApE;AACD;AACF;;AAED,SAAO,IAAP;AACD;;;;;;;;;;;;;;;;AC1LD;AACA;AACe,SAAS7K,mBAAT,GAA+B;AAC5C,QAAMpP,MAAM,GAAG,IAAf;AACA,QAAM;AACJrG,IAAAA,MADI;AAEJ4R,IAAAA;AAFI,MAGFvL,MAHJ;AAIA,QAAMnY,aAAa,GAAG8R,MAAM,CAAC9R,aAAP,KAAyB,MAAzB,GAAkCmY,MAAM,CAAC2J,oBAAP,EAAlC,GAAkEhQ,MAAM,CAAC9R,aAA/F;AACA,MAAIqyB,YAAY,GAAGla,MAAM,CAACma,YAA1B;AACA,MAAI9T,SAAJ;;AAEA,MAAI1M,MAAM,CAAC/R,IAAX,EAAiB;AACf,QAAIoY,MAAM,CAACnG,SAAX,EAAsB;AACtBwM,IAAAA,SAAS,GAAGzG,QAAQ,CAACxS,0DAAC,CAAC4S,MAAM,CAACoa,YAAR,CAAD,CAAuB5rB,IAAvB,CAA4B,yBAA5B,CAAD,EAAyD,EAAzD,CAApB;;AAEA,QAAImL,MAAM,CAACmK,cAAX,EAA2B;AACzB,UAAIoW,YAAY,GAAGla,MAAM,CAACK,YAAP,GAAsBxY,aAAa,GAAG,CAArD,IAA0DqyB,YAAY,GAAGla,MAAM,CAACuC,MAAP,CAAcjY,MAAd,GAAuB0V,MAAM,CAACK,YAA9B,GAA6CxY,aAAa,GAAG,CAA1I,EAA6I;AAC3ImY,QAAAA,MAAM,CAACqT,OAAP;AACA6G,QAAAA,YAAY,GAAG3O,UAAU,CAAC/T,QAAX,CAAqB,IAAGmC,MAAM,CAAC6P,UAAW,6BAA4BnD,SAAU,WAAU1M,MAAM,CAACqW,mBAAoB,GAArH,EAAyHxa,EAAzH,CAA4H,CAA5H,EAA+HV,KAA/H,EAAf;AACA+c,QAAAA,0DAAQ,CAAC,MAAM;AACb7R,UAAAA,MAAM,CAACiC,OAAP,CAAeiY,YAAf;AACD,SAFO,CAAR;AAGD,OAND,MAMO;AACLla,QAAAA,MAAM,CAACiC,OAAP,CAAeiY,YAAf;AACD;AACF,KAVD,MAUO,IAAIA,YAAY,GAAGla,MAAM,CAACuC,MAAP,CAAcjY,MAAd,GAAuBzC,aAA1C,EAAyD;AAC9DmY,MAAAA,MAAM,CAACqT,OAAP;AACA6G,MAAAA,YAAY,GAAG3O,UAAU,CAAC/T,QAAX,CAAqB,IAAGmC,MAAM,CAAC6P,UAAW,6BAA4BnD,SAAU,WAAU1M,MAAM,CAACqW,mBAAoB,GAArH,EAAyHxa,EAAzH,CAA4H,CAA5H,EAA+HV,KAA/H,EAAf;AACA+c,MAAAA,0DAAQ,CAAC,MAAM;AACb7R,QAAAA,MAAM,CAACiC,OAAP,CAAeiY,YAAf;AACD,OAFO,CAAR;AAGD,KANM,MAMA;AACLla,MAAAA,MAAM,CAACiC,OAAP,CAAeiY,YAAf;AACD;AACF,GAvBD,MAuBO;AACLla,IAAAA,MAAM,CAACiC,OAAP,CAAeiY,YAAf;AACD;AACF;;;;;;;;;;;;;;ACtCD;AACe,SAASpC,cAAT,CAAwB9vB,KAAK,GAAG,KAAK2R,MAAL,CAAY3R,KAA5C,EAAmD+vB,YAAY,GAAG,IAAlE,EAAwEC,QAAxE,EAAkFvJ,SAAS,GAAG,GAA9F,EAAmG;AAChH,QAAMzO,MAAM,GAAG,IAAf;AACA,MAAIlL,KAAK,GAAGkL,MAAM,CAACG,WAAnB;AACA,QAAMiZ,IAAI,GAAG3gB,IAAI,CAACE,GAAL,CAASqH,MAAM,CAACrG,MAAP,CAAcgU,kBAAvB,EAA2C7Y,KAA3C,CAAb;AACA,QAAM4jB,SAAS,GAAGU,IAAI,GAAG3gB,IAAI,CAAC2f,KAAL,CAAW,CAACtjB,KAAK,GAAGskB,IAAT,IAAiBpZ,MAAM,CAACrG,MAAP,CAAc+T,cAA1C,CAAzB;AACA,QAAMhJ,SAAS,GAAG1E,MAAM,CAACyK,YAAP,GAAsBzK,MAAM,CAAC0E,SAA7B,GAAyC,CAAC1E,MAAM,CAAC0E,SAAnE;;AAEA,MAAIA,SAAS,IAAI1E,MAAM,CAAC4C,QAAP,CAAgB8V,SAAhB,CAAjB,EAA6C;AAC3C;AACA;AACA,UAAM2B,WAAW,GAAGra,MAAM,CAAC4C,QAAP,CAAgB8V,SAAhB,CAApB;AACA,UAAM4B,QAAQ,GAAGta,MAAM,CAAC4C,QAAP,CAAgB8V,SAAS,GAAG,CAA5B,CAAjB;;AAEA,QAAIhU,SAAS,GAAG2V,WAAZ,GAA0B,CAACC,QAAQ,GAAGD,WAAZ,IAA2B5L,SAAzD,EAAoE;AAClE3Z,MAAAA,KAAK,IAAIkL,MAAM,CAACrG,MAAP,CAAc+T,cAAvB;AACD;AACF,GATD,MASO;AACL;AACA;AACA,UAAM6K,QAAQ,GAAGvY,MAAM,CAAC4C,QAAP,CAAgB8V,SAAS,GAAG,CAA5B,CAAjB;AACA,UAAM2B,WAAW,GAAGra,MAAM,CAAC4C,QAAP,CAAgB8V,SAAhB,CAApB;;AAEA,QAAIhU,SAAS,GAAG6T,QAAZ,IAAwB,CAAC8B,WAAW,GAAG9B,QAAf,IAA2B9J,SAAvD,EAAkE;AAChE3Z,MAAAA,KAAK,IAAIkL,MAAM,CAACrG,MAAP,CAAc+T,cAAvB;AACD;AACF;;AAED5Y,EAAAA,KAAK,GAAG2D,IAAI,CAACC,GAAL,CAAS5D,KAAT,EAAgB,CAAhB,CAAR;AACAA,EAAAA,KAAK,GAAG2D,IAAI,CAACE,GAAL,CAAS7D,KAAT,EAAgBkL,MAAM,CAACyC,UAAP,CAAkBnY,MAAlB,GAA2B,CAA3C,CAAR;AACA,SAAO0V,MAAM,CAACiC,OAAP,CAAenN,KAAf,EAAsB9M,KAAtB,EAA6B+vB,YAA7B,EAA2CC,QAA3C,CAAP;AACD;;;;;;;;;;;;;;AC/Bc,SAASN,WAAT,CAAqB5iB,KAAK,GAAG,CAA7B,EAAgC9M,KAAK,GAAG,KAAK2R,MAAL,CAAY3R,KAApD,EAA2D+vB,YAAY,GAAG,IAA1E,EAAgFC,QAAhF,EAA0F;AACvG,QAAMhY,MAAM,GAAG,IAAf;AACA,MAAIyV,QAAQ,GAAG3gB,KAAf;;AAEA,MAAIkL,MAAM,CAACrG,MAAP,CAAc/R,IAAlB,EAAwB;AACtB6tB,IAAAA,QAAQ,IAAIzV,MAAM,CAACK,YAAnB;AACD;;AAED,SAAOL,MAAM,CAACiC,OAAP,CAAewT,QAAf,EAAyBztB,KAAzB,EAAgC+vB,YAAhC,EAA8CC,QAA9C,CAAP;AACD;;;;;;;;;;;;;;;;;ACTD;AACA;AACA;AACA,iEAAe;AACbzE,EAAAA,aADa;AAEbgG,EAAAA,eAFa;AAGbrmB,EAAAA,aAAaA,2DAAAA;AAHA,CAAf;;;;;;;;;;;;;;ACHe,SAASqgB,aAAT,CAAuB/iB,QAAvB,EAAiC+pB,YAAjC,EAA+C;AAC5D,QAAMva,MAAM,GAAG,IAAf;;AAEA,MAAI,CAACA,MAAM,CAACrG,MAAP,CAAckK,OAAnB,EAA4B;AAC1B7D,IAAAA,MAAM,CAACuL,UAAP,CAAkBhb,UAAlB,CAA6BC,QAA7B;AACD;;AAEDwP,EAAAA,MAAM,CAAC6B,IAAP,CAAY,eAAZ,EAA6BrR,QAA7B,EAAuC+pB,YAAvC;AACD;;;;;;;;;;;;;;ACRc,SAASC,cAAT,CAAwB;AACrCxa,EAAAA,MADqC;AAErC+X,EAAAA,YAFqC;AAGrC3W,EAAAA,SAHqC;AAIrCqZ,EAAAA;AAJqC,CAAxB,EAKZ;AACD,QAAM;AACJta,IAAAA,WADI;AAEJgZ,IAAAA;AAFI,MAGFnZ,MAHJ;AAIA,MAAI2L,GAAG,GAAGvK,SAAV;;AAEA,MAAI,CAACuK,GAAL,EAAU;AACR,QAAIxL,WAAW,GAAGgZ,aAAlB,EAAiCxN,GAAG,GAAG,MAAN,CAAjC,KAAmD,IAAIxL,WAAW,GAAGgZ,aAAlB,EAAiCxN,GAAG,GAAG,MAAN,CAAjC,KAAmDA,GAAG,GAAG,OAAN;AACvG;;AAED3L,EAAAA,MAAM,CAAC6B,IAAP,CAAa,aAAY4Y,IAAK,EAA9B;;AAEA,MAAI1C,YAAY,IAAI5X,WAAW,KAAKgZ,aAApC,EAAmD;AACjD,QAAIxN,GAAG,KAAK,OAAZ,EAAqB;AACnB3L,MAAAA,MAAM,CAAC6B,IAAP,CAAa,uBAAsB4Y,IAAK,EAAxC;AACA;AACD;;AAEDza,IAAAA,MAAM,CAAC6B,IAAP,CAAa,wBAAuB4Y,IAAK,EAAzC;;AAEA,QAAI9O,GAAG,KAAK,MAAZ,EAAoB;AAClB3L,MAAAA,MAAM,CAAC6B,IAAP,CAAa,sBAAqB4Y,IAAK,EAAvC;AACD,KAFD,MAEO;AACLza,MAAAA,MAAM,CAAC6B,IAAP,CAAa,sBAAqB4Y,IAAK,EAAvC;AACD;AACF;AACF;;;;;;;;;;;;;;;AChCD;AACe,SAASvnB,aAAT,CAAuB6kB,YAAY,GAAG,IAAtC,EAA4C3W,SAA5C,EAAuD;AACpE,QAAMpB,MAAM,GAAG,IAAf;AACA,QAAM;AACJrG,IAAAA;AADI,MAEFqG,MAFJ;AAGAA,EAAAA,MAAM,CAACnG,SAAP,GAAmB,KAAnB;AACA,MAAIF,MAAM,CAACkK,OAAX,EAAoB;AACpB7D,EAAAA,MAAM,CAACuT,aAAP,CAAqB,CAArB;AACAiH,EAAAA,8DAAc,CAAC;AACbxa,IAAAA,MADa;AAEb+X,IAAAA,YAFa;AAGb3W,IAAAA,SAHa;AAIbqZ,IAAAA,IAAI,EAAE;AAJO,GAAD,CAAd;AAMD;;;;;;;;;;;;;;;ACfD;AACe,SAASlB,eAAT,CAAyBxB,YAAY,GAAG,IAAxC,EAA8C3W,SAA9C,EAAyD;AACtE,QAAMpB,MAAM,GAAG,IAAf;AACA,QAAM;AACJrG,IAAAA;AADI,MAEFqG,MAFJ;AAGA,MAAIrG,MAAM,CAACkK,OAAX,EAAoB;;AAEpB,MAAIlK,MAAM,CAAC+J,UAAX,EAAuB;AACrB1D,IAAAA,MAAM,CAAC4K,gBAAP;AACD;;AAED4P,EAAAA,8DAAc,CAAC;AACbxa,IAAAA,MADa;AAEb+X,IAAAA,YAFa;AAGb3W,IAAAA,SAHa;AAIbqZ,IAAAA,IAAI,EAAE;AAJO,GAAD,CAAd;AAMD;;;;;;;;;;;;;;;AClBD;AACe,SAASC,kBAAT,CAA4BC,IAAI,GAAG,KAAKxU,YAAL,KAAsB,GAAtB,GAA4B,GAA/D,EAAoE;AACjF,QAAMnG,MAAM,GAAG,IAAf;AACA,QAAM;AACJrG,IAAAA,MADI;AAEJ8Q,IAAAA,YAAY,EAAErH,GAFV;AAGJsB,IAAAA,SAHI;AAIJ6G,IAAAA;AAJI,MAKFvL,MALJ;;AAOA,MAAIrG,MAAM,CAAC8T,gBAAX,EAA6B;AAC3B,WAAOrK,GAAG,GAAG,CAACsB,SAAJ,GAAgBA,SAA1B;AACD;;AAED,MAAI/K,MAAM,CAACkK,OAAX,EAAoB;AAClB,WAAOa,SAAP;AACD;;AAED,MAAI8C,gBAAgB,GAAG8L,8DAAY,CAAC/H,UAAU,CAAC,CAAD,CAAX,EAAgBoP,IAAhB,CAAnC;AACA,MAAIvX,GAAJ,EAASoE,gBAAgB,GAAG,CAACA,gBAApB;AACT,SAAOA,gBAAgB,IAAI,CAA3B;AACD;;;;;;;;;;;;;;;;;;;ACrBD;AACA;AACA;AACA;AACA;AACA,iEAAe;AACb8L,EAAAA,YADa;AAEb/I,EAAAA,YAFa;AAGbxB,EAAAA,YAHa;AAIbC,EAAAA,YAJa;AAKbC,EAAAA,WAAWA,yDAAAA;AALE,CAAf;;;;;;;;;;;;;;ACLe,SAASD,YAAT,GAAwB;AACrC,SAAO,CAAC,KAAKpG,QAAL,CAAc,KAAKA,QAAL,CAActY,MAAd,GAAuB,CAArC,CAAR;AACD;;;;;;;;;;;;;;ACFc,SAASye,YAAT,GAAwB;AACrC,SAAO,CAAC,KAAKnG,QAAL,CAAc,CAAd,CAAR;AACD;;;;;;;;;;;;;;ACFc,SAAS2H,YAAT,CAAsB7F,SAAtB,EAAiC6V,YAAjC,EAA+C;AAC5D,QAAMva,MAAM,GAAG,IAAf;AACA,QAAM;AACJyK,IAAAA,YAAY,EAAErH,GADV;AAEJzJ,IAAAA,MAFI;AAGJ4R,IAAAA,UAHI;AAIJG,IAAAA,SAJI;AAKJxS,IAAAA;AALI,MAMF8G,MANJ;AAOA,MAAI4a,CAAC,GAAG,CAAR;AACA,MAAIC,CAAC,GAAG,CAAR;AACA,QAAMC,CAAC,GAAG,CAAV;;AAEA,MAAI9a,MAAM,CAACmG,YAAP,EAAJ,EAA2B;AACzByU,IAAAA,CAAC,GAAGxX,GAAG,GAAG,CAACsB,SAAJ,GAAgBA,SAAvB;AACD,GAFD,MAEO;AACLmW,IAAAA,CAAC,GAAGnW,SAAJ;AACD;;AAED,MAAI/K,MAAM,CAACsU,YAAX,EAAyB;AACvB2M,IAAAA,CAAC,GAAGniB,IAAI,CAAC2f,KAAL,CAAWwC,CAAX,CAAJ;AACAC,IAAAA,CAAC,GAAGpiB,IAAI,CAAC2f,KAAL,CAAWyC,CAAX,CAAJ;AACD;;AAED,MAAIlhB,MAAM,CAACkK,OAAX,EAAoB;AAClB6H,IAAAA,SAAS,CAAC1L,MAAM,CAACmG,YAAP,KAAwB,YAAxB,GAAuC,WAAxC,CAAT,GAAgEnG,MAAM,CAACmG,YAAP,KAAwB,CAACyU,CAAzB,GAA6B,CAACC,CAA9F;AACD,GAFD,MAEO,IAAI,CAAClhB,MAAM,CAAC8T,gBAAZ,EAA8B;AACnClC,IAAAA,UAAU,CAAClb,SAAX,CAAsB,eAAcuqB,CAAE,OAAMC,CAAE,OAAMC,CAAE,KAAtD;AACD;;AAED9a,EAAAA,MAAM,CAACuG,iBAAP,GAA2BvG,MAAM,CAAC0E,SAAlC;AACA1E,EAAAA,MAAM,CAAC0E,SAAP,GAAmB1E,MAAM,CAACmG,YAAP,KAAwByU,CAAxB,GAA4BC,CAA/C,CA/B4D,CA+BV;;AAElD,MAAIlJ,WAAJ;AACA,QAAMC,cAAc,GAAG5R,MAAM,CAACgJ,YAAP,KAAwBhJ,MAAM,CAAC+I,YAAP,EAA/C;;AAEA,MAAI6I,cAAc,KAAK,CAAvB,EAA0B;AACxBD,IAAAA,WAAW,GAAG,CAAd;AACD,GAFD,MAEO;AACLA,IAAAA,WAAW,GAAG,CAACjN,SAAS,GAAG1E,MAAM,CAAC+I,YAAP,EAAb,IAAsC6I,cAApD;AACD;;AAED,MAAID,WAAW,KAAKzY,QAApB,EAA8B;AAC5B8G,IAAAA,MAAM,CAACsK,cAAP,CAAsB5F,SAAtB;AACD;;AAED1E,EAAAA,MAAM,CAAC6B,IAAP,CAAY,cAAZ,EAA4B7B,MAAM,CAAC0E,SAAnC,EAA8C6V,YAA9C;AACD;;;;;;;;;;;;;;;AC/CD;AACe,SAAStR,WAAT,CAAqBvE,SAAS,GAAG,CAAjC,EAAoC1c,KAAK,GAAG,KAAK2R,MAAL,CAAY3R,KAAxD,EAA+D+vB,YAAY,GAAG,IAA9E,EAAoFgD,eAAe,GAAG,IAAtG,EAA4G/C,QAA5G,EAAsH;AACnI,QAAMhY,MAAM,GAAG,IAAf;AACA,QAAM;AACJrG,IAAAA,MADI;AAEJ+R,IAAAA;AAFI,MAGF1L,MAHJ;;AAKA,MAAIA,MAAM,CAACnG,SAAP,IAAoBF,MAAM,CAACyT,8BAA/B,EAA+D;AAC7D,WAAO,KAAP;AACD;;AAED,QAAMrE,YAAY,GAAG/I,MAAM,CAAC+I,YAAP,EAArB;AACA,QAAMC,YAAY,GAAGhJ,MAAM,CAACgJ,YAAP,EAArB;AACA,MAAI0B,YAAJ;AACA,MAAIqQ,eAAe,IAAIrW,SAAS,GAAGqE,YAAnC,EAAiD2B,YAAY,GAAG3B,YAAf,CAAjD,KAAkF,IAAIgS,eAAe,IAAIrW,SAAS,GAAGsE,YAAnC,EAAiD0B,YAAY,GAAG1B,YAAf,CAAjD,KAAkF0B,YAAY,GAAGhG,SAAf,CAdjC,CAc2D;;AAE9L1E,EAAAA,MAAM,CAACsK,cAAP,CAAsBI,YAAtB;;AAEA,MAAI/Q,MAAM,CAACkK,OAAX,EAAoB;AAClB,UAAM2V,GAAG,GAAGxZ,MAAM,CAACmG,YAAP,EAAZ;;AAEA,QAAIne,KAAK,KAAK,CAAd,EAAiB;AACf0jB,MAAAA,SAAS,CAAC8N,GAAG,GAAG,YAAH,GAAkB,WAAtB,CAAT,GAA8C,CAAC9O,YAA/C;AACD,KAFD,MAEO;AACL,UAAI,CAAC1K,MAAM,CAACsD,OAAP,CAAeuW,YAApB,EAAkC;AAChCjB,QAAAA,sEAAoB,CAAC;AACnB5Y,UAAAA,MADmB;AAEnB8Z,UAAAA,cAAc,EAAE,CAACpP,YAFE;AAGnBqP,UAAAA,IAAI,EAAEP,GAAG,GAAG,MAAH,GAAY;AAHF,SAAD,CAApB;AAKA,eAAO,IAAP;AACD;;AAED9N,MAAAA,SAAS,CAAC7T,QAAV,CAAmB;AACjB,SAAC2hB,GAAG,GAAG,MAAH,GAAY,KAAhB,GAAwB,CAAC9O,YADR;AAEjBsP,QAAAA,QAAQ,EAAE;AAFO,OAAnB;AAID;;AAED,WAAO,IAAP;AACD;;AAED,MAAIhyB,KAAK,KAAK,CAAd,EAAiB;AACfgY,IAAAA,MAAM,CAACuT,aAAP,CAAqB,CAArB;AACAvT,IAAAA,MAAM,CAACuK,YAAP,CAAoBG,YAApB;;AAEA,QAAIqN,YAAJ,EAAkB;AAChB/X,MAAAA,MAAM,CAAC6B,IAAP,CAAY,uBAAZ,EAAqC7Z,KAArC,EAA4CgwB,QAA5C;AACAhY,MAAAA,MAAM,CAAC6B,IAAP,CAAY,eAAZ;AACD;AACF,GARD,MAQO;AACL7B,IAAAA,MAAM,CAACuT,aAAP,CAAqBvrB,KAArB;AACAgY,IAAAA,MAAM,CAACuK,YAAP,CAAoBG,YAApB;;AAEA,QAAIqN,YAAJ,EAAkB;AAChB/X,MAAAA,MAAM,CAAC6B,IAAP,CAAY,uBAAZ,EAAqC7Z,KAArC,EAA4CgwB,QAA5C;AACAhY,MAAAA,MAAM,CAAC6B,IAAP,CAAY,iBAAZ;AACD;;AAED,QAAI,CAAC7B,MAAM,CAACnG,SAAZ,EAAuB;AACrBmG,MAAAA,MAAM,CAACnG,SAAP,GAAmB,IAAnB;;AAEA,UAAI,CAACmG,MAAM,CAACgb,iCAAZ,EAA+C;AAC7Chb,QAAAA,MAAM,CAACgb,iCAAP,GAA2C,SAAS9nB,aAAT,CAAuBhJ,CAAvB,EAA0B;AACnE,cAAI,CAAC8V,MAAD,IAAWA,MAAM,CAACoK,SAAtB,EAAiC;AACjC,cAAIlgB,CAAC,CAAC+G,MAAF,KAAa,IAAjB,EAAuB;AACvB+O,UAAAA,MAAM,CAACuL,UAAP,CAAkB,CAAlB,EAAqBrZ,mBAArB,CAAyC,eAAzC,EAA0D8N,MAAM,CAACgb,iCAAjE;AACAhb,UAAAA,MAAM,CAACuL,UAAP,CAAkB,CAAlB,EAAqBrZ,mBAArB,CAAyC,qBAAzC,EAAgE8N,MAAM,CAACgb,iCAAvE;AACAhb,UAAAA,MAAM,CAACgb,iCAAP,GAA2C,IAA3C;AACA,iBAAOhb,MAAM,CAACgb,iCAAd;;AAEA,cAAIjD,YAAJ,EAAkB;AAChB/X,YAAAA,MAAM,CAAC6B,IAAP,CAAY,eAAZ;AACD;AACF,SAXD;AAYD;;AAED7B,MAAAA,MAAM,CAACuL,UAAP,CAAkB,CAAlB,EAAqBziB,gBAArB,CAAsC,eAAtC,EAAuDkX,MAAM,CAACgb,iCAA9D;AACAhb,MAAAA,MAAM,CAACuL,UAAP,CAAkB,CAAlB,EAAqBziB,gBAArB,CAAsC,qBAAtC,EAA6DkX,MAAM,CAACgb,iCAApE;AACD;AACF;;AAED,SAAO,IAAP;AACD;;;;;;;;;;;;;;;;;;;;;;;ACpFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAe;AACb3Q,EAAAA,UADa;AAEbrI,EAAAA,YAFa;AAGb4I,EAAAA,gBAHa;AAIbqQ,EAAAA,kBAJa;AAKbC,EAAAA,oBALa;AAMb5Q,EAAAA,cANa;AAObnB,EAAAA,mBAPa;AAQbD,EAAAA,iBARa;AASb+I,EAAAA,kBAAkBA,gEAAAA;AATL,CAAf;;;;;;;;;;;;;;ACTe,SAAS/I,iBAAT,CAA2BiS,cAA3B,EAA2C;AACxD,QAAMnb,MAAM,GAAG,IAAf;AACA,QAAM0E,SAAS,GAAG1E,MAAM,CAACyK,YAAP,GAAsBzK,MAAM,CAAC0E,SAA7B,GAAyC,CAAC1E,MAAM,CAAC0E,SAAnE;AACA,QAAM;AACJjC,IAAAA,UADI;AAEJG,IAAAA,QAFI;AAGJjJ,IAAAA,MAHI;AAIJwG,IAAAA,WAAW,EAAEgZ,aAJT;AAKJ9S,IAAAA,SAAS,EAAE+U,iBALP;AAMJ1C,IAAAA,SAAS,EAAE2C;AANP,MAOFrb,MAPJ;AAQA,MAAIG,WAAW,GAAGgb,cAAlB;AACA,MAAIzC,SAAJ;;AAEA,MAAI,OAAOvY,WAAP,KAAuB,WAA3B,EAAwC;AACtC,SAAK,IAAIlW,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwY,UAAU,CAACnY,MAA/B,EAAuCL,CAAC,IAAI,CAA5C,EAA+C;AAC7C,UAAI,OAAOwY,UAAU,CAACxY,CAAC,GAAG,CAAL,CAAjB,KAA6B,WAAjC,EAA8C;AAC5C,YAAIya,SAAS,IAAIjC,UAAU,CAACxY,CAAD,CAAvB,IAA8Bya,SAAS,GAAGjC,UAAU,CAACxY,CAAC,GAAG,CAAL,CAAV,GAAoB,CAACwY,UAAU,CAACxY,CAAC,GAAG,CAAL,CAAV,GAAoBwY,UAAU,CAACxY,CAAD,CAA/B,IAAsC,CAAxG,EAA2G;AACzGkW,UAAAA,WAAW,GAAGlW,CAAd;AACD,SAFD,MAEO,IAAIya,SAAS,IAAIjC,UAAU,CAACxY,CAAD,CAAvB,IAA8Bya,SAAS,GAAGjC,UAAU,CAACxY,CAAC,GAAG,CAAL,CAAxD,EAAiE;AACtEkW,UAAAA,WAAW,GAAGlW,CAAC,GAAG,CAAlB;AACD;AACF,OAND,MAMO,IAAIya,SAAS,IAAIjC,UAAU,CAACxY,CAAD,CAA3B,EAAgC;AACrCkW,QAAAA,WAAW,GAAGlW,CAAd;AACD;AACF,KAXqC,CAWpC;;;AAGF,QAAI0P,MAAM,CAACoU,mBAAX,EAAgC;AAC9B,UAAI5N,WAAW,GAAG,CAAd,IAAmB,OAAOA,WAAP,KAAuB,WAA9C,EAA2DA,WAAW,GAAG,CAAd;AAC5D;AACF;;AAED,MAAIyC,QAAQ,CAACpW,OAAT,CAAiBkY,SAAjB,KAA+B,CAAnC,EAAsC;AACpCgU,IAAAA,SAAS,GAAG9V,QAAQ,CAACpW,OAAT,CAAiBkY,SAAjB,CAAZ;AACD,GAFD,MAEO;AACL,UAAM0U,IAAI,GAAG3gB,IAAI,CAACE,GAAL,CAASgB,MAAM,CAACgU,kBAAhB,EAAoCxN,WAApC,CAAb;AACAuY,IAAAA,SAAS,GAAGU,IAAI,GAAG3gB,IAAI,CAAC2f,KAAL,CAAW,CAACjY,WAAW,GAAGiZ,IAAf,IAAuBzf,MAAM,CAAC+T,cAAzC,CAAnB;AACD;;AAED,MAAIgL,SAAS,IAAI9V,QAAQ,CAACtY,MAA1B,EAAkCouB,SAAS,GAAG9V,QAAQ,CAACtY,MAAT,GAAkB,CAA9B;;AAElC,MAAI6V,WAAW,KAAKgZ,aAApB,EAAmC;AACjC,QAAIT,SAAS,KAAK2C,iBAAlB,EAAqC;AACnCrb,MAAAA,MAAM,CAAC0Y,SAAP,GAAmBA,SAAnB;AACA1Y,MAAAA,MAAM,CAAC6B,IAAP,CAAY,iBAAZ;AACD;;AAED;AACD,GAjDuD,CAiDtD;;;AAGF,QAAMwE,SAAS,GAAGzG,QAAQ,CAACI,MAAM,CAACuC,MAAP,CAAc/M,EAAd,CAAiB2K,WAAjB,EAA8B3R,IAA9B,CAAmC,yBAAnC,KAAiE2R,WAAlE,EAA+E,EAA/E,CAA1B;AACA/U,EAAAA,MAAM,CAACsO,MAAP,CAAcsG,MAAd,EAAsB;AACpB0Y,IAAAA,SADoB;AAEpBrS,IAAAA,SAFoB;AAGpB8S,IAAAA,aAHoB;AAIpBhZ,IAAAA;AAJoB,GAAtB;AAMAH,EAAAA,MAAM,CAAC6B,IAAP,CAAY,mBAAZ;AACA7B,EAAAA,MAAM,CAAC6B,IAAP,CAAY,iBAAZ;;AAEA,MAAIuZ,iBAAiB,KAAK/U,SAA1B,EAAqC;AACnCrG,IAAAA,MAAM,CAAC6B,IAAP,CAAY,iBAAZ;AACD;;AAED,MAAI7B,MAAM,CAACI,WAAP,IAAsBJ,MAAM,CAACrG,MAAP,CAAcoS,kBAAxC,EAA4D;AAC1D/L,IAAAA,MAAM,CAAC6B,IAAP,CAAY,aAAZ;AACD;AACF;;;;;;;;;;;;;;ACrEc,SAAS+I,gBAAT,CAA0B5iB,KAA1B,EAAiC;AAC9C,QAAMgY,MAAM,GAAG,IAAf;AACA,QAAMsb,YAAY,GAAG,EAArB;AACA,QAAM5B,SAAS,GAAG1Z,MAAM,CAAC2Z,OAAP,IAAkB3Z,MAAM,CAACrG,MAAP,CAAcggB,OAAd,CAAsB5Y,OAA1D;AACA,MAAImW,SAAS,GAAG,CAAhB;AACA,MAAIjtB,CAAJ;;AAEA,MAAI,OAAOjC,KAAP,KAAiB,QAArB,EAA+B;AAC7BgY,IAAAA,MAAM,CAACuT,aAAP,CAAqBvrB,KAArB;AACD,GAFD,MAEO,IAAIA,KAAK,KAAK,IAAd,EAAoB;AACzBgY,IAAAA,MAAM,CAACuT,aAAP,CAAqBvT,MAAM,CAACrG,MAAP,CAAc3R,KAAnC;AACD;;AAED,QAAMuzB,eAAe,GAAGzmB,KAAK,IAAI;AAC/B,QAAI4kB,SAAJ,EAAe;AACb,aAAO1Z,MAAM,CAACuC,MAAP,CAAcnW,MAAd,CAAqB/D,EAAE,IAAIuX,QAAQ,CAACvX,EAAE,CAACsG,YAAH,CAAgB,yBAAhB,CAAD,EAA6C,EAA7C,CAAR,KAA6DmG,KAAxF,EAA+F,CAA/F,CAAP;AACD;;AAED,WAAOkL,MAAM,CAACuC,MAAP,CAAc/M,EAAd,CAAiBV,KAAjB,EAAwB,CAAxB,CAAP;AACD,GAND,CAb8C,CAmB3C;;;AAGH,MAAIkL,MAAM,CAACrG,MAAP,CAAc9R,aAAd,KAAgC,MAAhC,IAA0CmY,MAAM,CAACrG,MAAP,CAAc9R,aAAd,GAA8B,CAA5E,EAA+E;AAC7E,QAAImY,MAAM,CAACrG,MAAP,CAAcmK,cAAlB,EAAkC;AAChC9D,MAAAA,MAAM,CAACwb,aAAP,CAAqB3mB,IAArB,CAA0B8P,KAAK,IAAI;AACjC2W,QAAAA,YAAY,CAACtvB,IAAb,CAAkB2Y,KAAlB;AACD,OAFD;AAGD,KAJD,MAIO;AACL,WAAK1a,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGwO,IAAI,CAAC6c,IAAL,CAAUtV,MAAM,CAACrG,MAAP,CAAc9R,aAAxB,CAAhB,EAAwDoC,CAAC,IAAI,CAA7D,EAAgE;AAC9D,cAAM6K,KAAK,GAAGkL,MAAM,CAACG,WAAP,GAAqBlW,CAAnC;AACA,YAAI6K,KAAK,GAAGkL,MAAM,CAACuC,MAAP,CAAcjY,MAAtB,IAAgC,CAACovB,SAArC,EAAgD;AAChD4B,QAAAA,YAAY,CAACtvB,IAAb,CAAkBuvB,eAAe,CAACzmB,KAAD,CAAjC;AACD;AACF;AACF,GAZD,MAYO;AACLwmB,IAAAA,YAAY,CAACtvB,IAAb,CAAkBuvB,eAAe,CAACvb,MAAM,CAACG,WAAR,CAAjC;AACD,GApC6C,CAoC5C;;;AAGF,OAAKlW,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGqxB,YAAY,CAAChxB,MAA7B,EAAqCL,CAAC,IAAI,CAA1C,EAA6C;AAC3C,QAAI,OAAOqxB,YAAY,CAACrxB,CAAD,CAAnB,KAA2B,WAA/B,EAA4C;AAC1C,YAAM4J,MAAM,GAAGynB,YAAY,CAACrxB,CAAD,CAAZ,CAAgBZ,YAA/B;AACA6tB,MAAAA,SAAS,GAAGrjB,MAAM,GAAGqjB,SAAT,GAAqBrjB,MAArB,GAA8BqjB,SAA1C;AACD;AACF,GA5C6C,CA4C5C;;;AAGF,MAAIA,SAAJ,EAAelX,MAAM,CAACuL,UAAP,CAAkBhY,GAAlB,CAAsB,QAAtB,EAAiC,GAAE2jB,SAAU,IAA7C;AAChB;;;;;;;;;;;;;;;AChDD;AACe,SAASjF,kBAAT,CAA4B/nB,CAA5B,EAA+B;AAC5C,QAAM8V,MAAM,GAAG,IAAf;AACA,QAAMrG,MAAM,GAAGqG,MAAM,CAACrG,MAAtB;AACA,QAAMgL,KAAK,GAAGvX,0DAAC,CAAClD,CAAC,CAAC+G,MAAH,CAAD,CAAYmG,OAAZ,CAAqB,IAAGuC,MAAM,CAAC6P,UAAW,EAA1C,EAA6C,CAA7C,CAAd;AACA,MAAIiS,UAAU,GAAG,KAAjB;AACA,MAAIvC,UAAJ;;AAEA,MAAIvU,KAAJ,EAAW;AACT,SAAK,IAAI1a,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+V,MAAM,CAACuC,MAAP,CAAcjY,MAAlC,EAA0CL,CAAC,IAAI,CAA/C,EAAkD;AAChD,UAAI+V,MAAM,CAACuC,MAAP,CAActY,CAAd,MAAqB0a,KAAzB,EAAgC;AAC9B8W,QAAAA,UAAU,GAAG,IAAb;AACAvC,QAAAA,UAAU,GAAGjvB,CAAb;AACA;AACD;AACF;AACF;;AAED,MAAI0a,KAAK,IAAI8W,UAAb,EAAyB;AACvBzb,IAAAA,MAAM,CAACoa,YAAP,GAAsBzV,KAAtB;;AAEA,QAAI3E,MAAM,CAAC2Z,OAAP,IAAkB3Z,MAAM,CAACrG,MAAP,CAAcggB,OAAd,CAAsB5Y,OAA5C,EAAqD;AACnDf,MAAAA,MAAM,CAACma,YAAP,GAAsBva,QAAQ,CAACxS,0DAAC,CAACuX,KAAD,CAAD,CAASnW,IAAT,CAAc,yBAAd,CAAD,EAA2C,EAA3C,CAA9B;AACD,KAFD,MAEO;AACLwR,MAAAA,MAAM,CAACma,YAAP,GAAsBjB,UAAtB;AACD;AACF,GARD,MAQO;AACLlZ,IAAAA,MAAM,CAACoa,YAAP,GAAsBxrB,SAAtB;AACAoR,IAAAA,MAAM,CAACma,YAAP,GAAsBvrB,SAAtB;AACA;AACD;;AAED,MAAI+K,MAAM,CAACyV,mBAAP,IAA8BpP,MAAM,CAACma,YAAP,KAAwBvrB,SAAtD,IAAmEoR,MAAM,CAACma,YAAP,KAAwBna,MAAM,CAACG,WAAtG,EAAmH;AACjHH,IAAAA,MAAM,CAACoP,mBAAP;AACD;AACF;;;;;;;;;;;;;;ACnCc,SAAS9E,cAAT,CAAwB5F,SAAxB,EAAmC;AAChD,QAAM1E,MAAM,GAAG,IAAf;;AAEA,MAAI,OAAO0E,SAAP,KAAqB,WAAzB,EAAsC;AACpC,UAAMgX,UAAU,GAAG1b,MAAM,CAACyK,YAAP,GAAsB,CAAC,CAAvB,GAA2B,CAA9C,CADoC,CACa;;AAEjD/F,IAAAA,SAAS,GAAG1E,MAAM,IAAIA,MAAM,CAAC0E,SAAjB,IAA8B1E,MAAM,CAAC0E,SAAP,GAAmBgX,UAAjD,IAA+D,CAA3E;AACD;;AAED,QAAM/hB,MAAM,GAAGqG,MAAM,CAACrG,MAAtB;AACA,QAAMiY,cAAc,GAAG5R,MAAM,CAACgJ,YAAP,KAAwBhJ,MAAM,CAAC+I,YAAP,EAA/C;AACA,MAAI;AACF7P,IAAAA,QADE;AAEFoN,IAAAA,WAFE;AAGFzD,IAAAA;AAHE,MAIA7C,MAJJ;AAKA,QAAM2b,YAAY,GAAGrV,WAArB;AACA,QAAMsV,MAAM,GAAG/Y,KAAf;;AAEA,MAAI+O,cAAc,KAAK,CAAvB,EAA0B;AACxB1Y,IAAAA,QAAQ,GAAG,CAAX;AACAoN,IAAAA,WAAW,GAAG,IAAd;AACAzD,IAAAA,KAAK,GAAG,IAAR;AACD,GAJD,MAIO;AACL3J,IAAAA,QAAQ,GAAG,CAACwL,SAAS,GAAG1E,MAAM,CAAC+I,YAAP,EAAb,IAAsC6I,cAAjD;AACAtL,IAAAA,WAAW,GAAGpN,QAAQ,IAAI,CAA1B;AACA2J,IAAAA,KAAK,GAAG3J,QAAQ,IAAI,CAApB;AACD;;AAED9N,EAAAA,MAAM,CAACsO,MAAP,CAAcsG,MAAd,EAAsB;AACpB9G,IAAAA,QADoB;AAEpBoN,IAAAA,WAFoB;AAGpBzD,IAAAA;AAHoB,GAAtB;AAKA,MAAIlJ,MAAM,CAACsV,mBAAP,IAA8BtV,MAAM,CAACmK,cAAP,IAAyBnK,MAAM,CAAC+J,UAAlE,EAA8E1D,MAAM,CAACkb,oBAAP,CAA4BxW,SAA5B;;AAE9E,MAAI4B,WAAW,IAAI,CAACqV,YAApB,EAAkC;AAChC3b,IAAAA,MAAM,CAAC6B,IAAP,CAAY,uBAAZ;AACD;;AAED,MAAIgB,KAAK,IAAI,CAAC+Y,MAAd,EAAsB;AACpB5b,IAAAA,MAAM,CAAC6B,IAAP,CAAY,iBAAZ;AACD;;AAED,MAAI8Z,YAAY,IAAI,CAACrV,WAAjB,IAAgCsV,MAAM,IAAI,CAAC/Y,KAA/C,EAAsD;AACpD7C,IAAAA,MAAM,CAAC6B,IAAP,CAAY,UAAZ;AACD;;AAED7B,EAAAA,MAAM,CAAC6B,IAAP,CAAY,UAAZ,EAAwB3I,QAAxB;AACD;;;;;;;;;;;;;;ACjDc,SAASmR,UAAT,GAAsB;AACnC,QAAMrK,MAAM,GAAG,IAAf;AACA,MAAI3M,KAAJ;AACA,MAAIQ,MAAJ;AACA,QAAMyM,GAAG,GAAGN,MAAM,CAACM,GAAnB;;AAEA,MAAI,OAAON,MAAM,CAACrG,MAAP,CAActG,KAArB,KAA+B,WAA/B,IAA8C2M,MAAM,CAACrG,MAAP,CAActG,KAAd,KAAwB,IAA1E,EAAgF;AAC9EA,IAAAA,KAAK,GAAG2M,MAAM,CAACrG,MAAP,CAActG,KAAtB;AACD,GAFD,MAEO;AACLA,IAAAA,KAAK,GAAGiN,GAAG,CAAC,CAAD,CAAH,CAAOT,WAAf;AACD;;AAED,MAAI,OAAOG,MAAM,CAACrG,MAAP,CAAc9F,MAArB,KAAgC,WAAhC,IAA+CmM,MAAM,CAACrG,MAAP,CAAc9F,MAAd,KAAyB,IAA5E,EAAkF;AAChFA,IAAAA,MAAM,GAAGmM,MAAM,CAACrG,MAAP,CAAc9F,MAAvB;AACD,GAFD,MAEO;AACLA,IAAAA,MAAM,GAAGyM,GAAG,CAAC,CAAD,CAAH,CAAOjB,YAAhB;AACD;;AAED,MAAIhM,KAAK,KAAK,CAAV,IAAe2M,MAAM,CAACmG,YAAP,EAAf,IAAwCtS,MAAM,KAAK,CAAX,IAAgBmM,MAAM,CAACoG,UAAP,EAA5D,EAAiF;AAC/E;AACD,GApBkC,CAoBjC;;;AAGF/S,EAAAA,KAAK,GAAGA,KAAK,GAAGuM,QAAQ,CAACU,GAAG,CAAC/M,GAAJ,CAAQ,cAAR,KAA2B,CAA5B,EAA+B,EAA/B,CAAhB,GAAqDqM,QAAQ,CAACU,GAAG,CAAC/M,GAAJ,CAAQ,eAAR,KAA4B,CAA7B,EAAgC,EAAhC,CAArE;AACAM,EAAAA,MAAM,GAAGA,MAAM,GAAG+L,QAAQ,CAACU,GAAG,CAAC/M,GAAJ,CAAQ,aAAR,KAA0B,CAA3B,EAA8B,EAA9B,CAAjB,GAAqDqM,QAAQ,CAACU,GAAG,CAAC/M,GAAJ,CAAQ,gBAAR,KAA6B,CAA9B,EAAiC,EAAjC,CAAtE;AACA,MAAIsoB,MAAM,CAACC,KAAP,CAAazoB,KAAb,CAAJ,EAAyBA,KAAK,GAAG,CAAR;AACzB,MAAIwoB,MAAM,CAACC,KAAP,CAAajoB,MAAb,CAAJ,EAA0BA,MAAM,GAAG,CAAT;AAC1BzI,EAAAA,MAAM,CAACsO,MAAP,CAAcsG,MAAd,EAAsB;AACpB3M,IAAAA,KADoB;AAEpBQ,IAAAA,MAFoB;AAGpB8O,IAAAA,IAAI,EAAE3C,MAAM,CAACmG,YAAP,KAAwB9S,KAAxB,GAAgCQ;AAHlB,GAAtB;AAKD;;;;;;;;;;;;;;;AChCD;AACe,SAASmO,YAAT,GAAwB;AACrC,QAAMhC,MAAM,GAAG,IAAf;;AAEA,WAASgc,iBAAT,CAA2BC,QAA3B,EAAqC;AACnC,QAAIjc,MAAM,CAACmG,YAAP,EAAJ,EAA2B;AACzB,aAAO8V,QAAP;AACD,KAHkC,CAGjC;;;AAGF,WAAO;AACL,eAAS,QADJ;AAEL,oBAAc,aAFT;AAGL,wBAAkB,cAHb;AAIL,qBAAe,YAJV;AAKL,sBAAgB,eALX;AAML,sBAAgB,aANX;AAOL,uBAAiB,gBAPZ;AAQL,qBAAe;AARV,MASLA,QATK,CAAP;AAUD;;AAED,WAASC,yBAAT,CAAmCC,IAAnC,EAAyCC,KAAzC,EAAgD;AAC9C,WAAOxsB,UAAU,CAACusB,IAAI,CAACvoB,gBAAL,CAAsBooB,iBAAiB,CAACI,KAAD,CAAvC,KAAmD,CAApD,CAAjB;AACD;;AAED,QAAMziB,MAAM,GAAGqG,MAAM,CAACrG,MAAtB;AACA,QAAM;AACJ4R,IAAAA,UADI;AAEJ5I,IAAAA,IAAI,EAAEmH,UAFF;AAGJW,IAAAA,YAAY,EAAErH,GAHV;AAIJwI,IAAAA;AAJI,MAKF5L,MALJ;AAMA,QAAM0Z,SAAS,GAAG1Z,MAAM,CAAC2Z,OAAP,IAAkBhgB,MAAM,CAACggB,OAAP,CAAe5Y,OAAnD;AACA,QAAMsb,oBAAoB,GAAG3C,SAAS,GAAG1Z,MAAM,CAAC2Z,OAAP,CAAepX,MAAf,CAAsBjY,MAAzB,GAAkC0V,MAAM,CAACuC,MAAP,CAAcjY,MAAtF;AACA,QAAMiY,MAAM,GAAGgJ,UAAU,CAAC/T,QAAX,CAAqB,IAAGwI,MAAM,CAACrG,MAAP,CAAc6P,UAAW,EAAjD,CAAf;AACA,QAAM8S,YAAY,GAAG5C,SAAS,GAAG1Z,MAAM,CAAC2Z,OAAP,CAAepX,MAAf,CAAsBjY,MAAzB,GAAkCiY,MAAM,CAACjY,MAAvE;AACA,MAAIsY,QAAQ,GAAG,EAAf;AACA,QAAMH,UAAU,GAAG,EAAnB;AACA,QAAMC,eAAe,GAAG,EAAxB;AACA,MAAI6Z,YAAY,GAAG5iB,MAAM,CAAC0I,kBAA1B;;AAEA,MAAI,OAAOka,YAAP,KAAwB,UAA5B,EAAwC;AACtCA,IAAAA,YAAY,GAAG5iB,MAAM,CAAC0I,kBAAP,CAA0BhW,IAA1B,CAA+B2T,MAA/B,CAAf;AACD;;AAED,MAAIwc,WAAW,GAAG7iB,MAAM,CAACmU,iBAAzB;;AAEA,MAAI,OAAO0O,WAAP,KAAuB,UAA3B,EAAuC;AACrCA,IAAAA,WAAW,GAAG7iB,MAAM,CAACmU,iBAAP,CAAyBzhB,IAAzB,CAA8B2T,MAA9B,CAAd;AACD;;AAED,QAAMyc,sBAAsB,GAAGzc,MAAM,CAAC4C,QAAP,CAAgBtY,MAA/C;AACA,QAAMoyB,wBAAwB,GAAG1c,MAAM,CAACyC,UAAP,CAAkBnY,MAAnD;AACA,MAAIxC,YAAY,GAAG6R,MAAM,CAAC7R,YAA1B;AACA,MAAI60B,aAAa,GAAG,CAACJ,YAArB;AACA,MAAIK,aAAa,GAAG,CAApB;AACA,MAAI9nB,KAAK,GAAG,CAAZ;;AAEA,MAAI,OAAOgV,UAAP,KAAsB,WAA1B,EAAuC;AACrC;AACD;;AAED,MAAI,OAAOhiB,YAAP,KAAwB,QAAxB,IAAoCA,YAAY,CAAC0E,OAAb,CAAqB,GAArB,KAA6B,CAArE,EAAwE;AACtE1E,IAAAA,YAAY,GAAG8H,UAAU,CAAC9H,YAAY,CAAC8E,OAAb,CAAqB,GAArB,EAA0B,EAA1B,CAAD,CAAV,GAA4C,GAA5C,GAAkDkd,UAAjE;AACD;;AAED9J,EAAAA,MAAM,CAAC6c,WAAP,GAAqB,CAAC/0B,YAAtB,CAlEqC,CAkED;;AAEpC,MAAIsb,GAAJ,EAASb,MAAM,CAAChP,GAAP,CAAW;AAClBupB,IAAAA,UAAU,EAAE,EADM;AAElBC,IAAAA,YAAY,EAAE,EAFI;AAGlBC,IAAAA,SAAS,EAAE;AAHO,GAAX,EAAT,KAIQza,MAAM,CAAChP,GAAP,CAAW;AACjB0pB,IAAAA,WAAW,EAAE,EADI;AAEjBF,IAAAA,YAAY,EAAE,EAFG;AAGjBC,IAAAA,SAAS,EAAE;AAHM,GAAX,EAxE6B,CA4EjC;;AAEJ,MAAIrjB,MAAM,CAACmK,cAAP,IAAyBnK,MAAM,CAACkK,OAApC,EAA6C;AAC3CkY,IAAAA,gEAAc,CAAC/b,MAAM,CAAC0L,SAAR,EAAmB,iCAAnB,EAAsD,EAAtD,CAAd;AACAqQ,IAAAA,gEAAc,CAAC/b,MAAM,CAAC0L,SAAR,EAAmB,gCAAnB,EAAqD,EAArD,CAAd;AACD;;AAED,QAAMwR,WAAW,GAAGvjB,MAAM,CAACsG,IAAP,IAAetG,MAAM,CAACsG,IAAP,CAAYC,IAAZ,GAAmB,CAAlC,IAAuCF,MAAM,CAACC,IAAlE;;AAEA,MAAIid,WAAJ,EAAiB;AACfld,IAAAA,MAAM,CAACC,IAAP,CAAYkd,UAAZ,CAAuBb,YAAvB;AACD,GAvFoC,CAuFnC;;;AAGF,MAAItS,SAAJ;AACA,QAAMoT,oBAAoB,GAAGzjB,MAAM,CAAC9R,aAAP,KAAyB,MAAzB,IAAmC8R,MAAM,CAAC5R,WAA1C,IAAyDqD,MAAM,CAACyP,IAAP,CAAYlB,MAAM,CAAC5R,WAAnB,EAAgCqE,MAAhC,CAAuCiD,GAAG,IAAI;AAClI,WAAO,OAAOsK,MAAM,CAAC5R,WAAP,CAAmBsH,GAAnB,EAAwBxH,aAA/B,KAAiD,WAAxD;AACD,GAFqF,EAEnFyC,MAFmF,GAE1E,CAFZ;;AAIA,OAAK,IAAIL,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqyB,YAApB,EAAkCryB,CAAC,IAAI,CAAvC,EAA0C;AACxC+f,IAAAA,SAAS,GAAG,CAAZ;AACA,UAAMrF,KAAK,GAAGpC,MAAM,CAAC/M,EAAP,CAAUvL,CAAV,CAAd;;AAEA,QAAIizB,WAAJ,EAAiB;AACfld,MAAAA,MAAM,CAACC,IAAP,CAAYod,WAAZ,CAAwBpzB,CAAxB,EAA2B0a,KAA3B,EAAkC2X,YAAlC,EAAgDN,iBAAhD;AACD;;AAED,QAAIrX,KAAK,CAACpR,GAAN,CAAU,SAAV,MAAyB,MAA7B,EAAqC,SARG,CAQO;;AAE/C,QAAIoG,MAAM,CAAC9R,aAAP,KAAyB,MAA7B,EAAqC;AACnC,UAAIu1B,oBAAJ,EAA0B;AACxB7a,QAAAA,MAAM,CAACtY,CAAD,CAAN,CAAUqG,KAAV,CAAgB0rB,iBAAiB,CAAC,OAAD,CAAjC,IAA+C,EAA/C;AACD;;AAED,YAAMsB,WAAW,GAAG1oB,gBAAgB,CAAC+P,KAAK,CAAC,CAAD,CAAN,CAApC;AACA,YAAM4Y,gBAAgB,GAAG5Y,KAAK,CAAC,CAAD,CAAL,CAASrU,KAAT,CAAeD,SAAxC;AACA,YAAMmtB,sBAAsB,GAAG7Y,KAAK,CAAC,CAAD,CAAL,CAASrU,KAAT,CAAemtB,eAA9C;;AAEA,UAAIF,gBAAJ,EAAsB;AACpB5Y,QAAAA,KAAK,CAAC,CAAD,CAAL,CAASrU,KAAT,CAAeD,SAAf,GAA2B,MAA3B;AACD;;AAED,UAAImtB,sBAAJ,EAA4B;AAC1B7Y,QAAAA,KAAK,CAAC,CAAD,CAAL,CAASrU,KAAT,CAAemtB,eAAf,GAAiC,MAAjC;AACD;;AAED,UAAI9jB,MAAM,CAACsU,YAAX,EAAyB;AACvBjE,QAAAA,SAAS,GAAGhK,MAAM,CAACmG,YAAP,KAAwBxB,KAAK,CAACnR,UAAN,CAAiB,IAAjB,CAAxB,GAAiDmR,KAAK,CAAC5Q,WAAN,CAAkB,IAAlB,CAA7D;AACD,OAFD,MAEO;AACL;AACA,cAAMV,KAAK,GAAG6oB,yBAAyB,CAACoB,WAAD,EAAc,OAAd,CAAvC;AACA,cAAMI,WAAW,GAAGxB,yBAAyB,CAACoB,WAAD,EAAc,cAAd,CAA7C;AACA,cAAMK,YAAY,GAAGzB,yBAAyB,CAACoB,WAAD,EAAc,eAAd,CAA9C;AACA,cAAMR,UAAU,GAAGZ,yBAAyB,CAACoB,WAAD,EAAc,aAAd,CAA5C;AACA,cAAML,WAAW,GAAGf,yBAAyB,CAACoB,WAAD,EAAc,cAAd,CAA7C;AACA,cAAMM,SAAS,GAAGN,WAAW,CAAC1pB,gBAAZ,CAA6B,YAA7B,CAAlB;;AAEA,YAAIgqB,SAAS,IAAIA,SAAS,KAAK,YAA/B,EAA6C;AAC3C5T,UAAAA,SAAS,GAAG3W,KAAK,GAAGypB,UAAR,GAAqBG,WAAjC;AACD,SAFD,MAEO;AACL,gBAAM;AACJpd,YAAAA,WADI;AAEJlM,YAAAA;AAFI,cAGFgR,KAAK,CAAC,CAAD,CAHT;AAIAqF,UAAAA,SAAS,GAAG3W,KAAK,GAAGqqB,WAAR,GAAsBC,YAAtB,GAAqCb,UAArC,GAAkDG,WAAlD,IAAiEtpB,WAAW,GAAGkM,WAA/E,CAAZ;AACD;AACF;;AAED,UAAI0d,gBAAJ,EAAsB;AACpB5Y,QAAAA,KAAK,CAAC,CAAD,CAAL,CAASrU,KAAT,CAAeD,SAAf,GAA2BktB,gBAA3B;AACD;;AAED,UAAIC,sBAAJ,EAA4B;AAC1B7Y,QAAAA,KAAK,CAAC,CAAD,CAAL,CAASrU,KAAT,CAAemtB,eAAf,GAAiCD,sBAAjC;AACD;;AAED,UAAI7jB,MAAM,CAACsU,YAAX,EAAyBjE,SAAS,GAAGvR,IAAI,CAAC2f,KAAL,CAAWpO,SAAX,CAAZ;AAC1B,KAhDD,MAgDO;AACLA,MAAAA,SAAS,GAAG,CAACF,UAAU,GAAG,CAACnQ,MAAM,CAAC9R,aAAP,GAAuB,CAAxB,IAA6BC,YAA3C,IAA2D6R,MAAM,CAAC9R,aAA9E;AACA,UAAI8R,MAAM,CAACsU,YAAX,EAAyBjE,SAAS,GAAGvR,IAAI,CAAC2f,KAAL,CAAWpO,SAAX,CAAZ;;AAEzB,UAAIzH,MAAM,CAACtY,CAAD,CAAV,EAAe;AACbsY,QAAAA,MAAM,CAACtY,CAAD,CAAN,CAAUqG,KAAV,CAAgB0rB,iBAAiB,CAAC,OAAD,CAAjC,IAA+C,GAAEhS,SAAU,IAA3D;AACD;AACF;;AAED,QAAIzH,MAAM,CAACtY,CAAD,CAAV,EAAe;AACbsY,MAAAA,MAAM,CAACtY,CAAD,CAAN,CAAUggB,eAAV,GAA4BD,SAA5B;AACD;;AAEDtH,IAAAA,eAAe,CAAC1W,IAAhB,CAAqBge,SAArB;;AAEA,QAAIrQ,MAAM,CAACmK,cAAX,EAA2B;AACzB6Y,MAAAA,aAAa,GAAGA,aAAa,GAAG3S,SAAS,GAAG,CAA5B,GAAgC4S,aAAa,GAAG,CAAhD,GAAoD90B,YAApE;AACA,UAAI80B,aAAa,KAAK,CAAlB,IAAuB3yB,CAAC,KAAK,CAAjC,EAAoC0yB,aAAa,GAAGA,aAAa,GAAG7S,UAAU,GAAG,CAA7B,GAAiChiB,YAAjD;AACpC,UAAImC,CAAC,KAAK,CAAV,EAAa0yB,aAAa,GAAGA,aAAa,GAAG7S,UAAU,GAAG,CAA7B,GAAiChiB,YAAjD;AACb,UAAI2Q,IAAI,CAAC2a,GAAL,CAASuJ,aAAT,IAA0B,IAAI,IAAlC,EAAwCA,aAAa,GAAG,CAAhB;AACxC,UAAIhjB,MAAM,CAACsU,YAAX,EAAyB0O,aAAa,GAAGlkB,IAAI,CAAC2f,KAAL,CAAWuE,aAAX,CAAhB;AACzB,UAAI7nB,KAAK,GAAG6E,MAAM,CAAC+T,cAAf,KAAkC,CAAtC,EAAyC9K,QAAQ,CAAC5W,IAAT,CAAc2wB,aAAd;AACzCla,MAAAA,UAAU,CAACzW,IAAX,CAAgB2wB,aAAhB;AACD,KARD,MAQO;AACL,UAAIhjB,MAAM,CAACsU,YAAX,EAAyB0O,aAAa,GAAGlkB,IAAI,CAAC2f,KAAL,CAAWuE,aAAX,CAAhB;AACzB,UAAI,CAAC7nB,KAAK,GAAG2D,IAAI,CAACE,GAAL,CAASqH,MAAM,CAACrG,MAAP,CAAcgU,kBAAvB,EAA2C7Y,KAA3C,CAAT,IAA8DkL,MAAM,CAACrG,MAAP,CAAc+T,cAA5E,KAA+F,CAAnG,EAAsG9K,QAAQ,CAAC5W,IAAT,CAAc2wB,aAAd;AACtGla,MAAAA,UAAU,CAACzW,IAAX,CAAgB2wB,aAAhB;AACAA,MAAAA,aAAa,GAAGA,aAAa,GAAG3S,SAAhB,GAA4BliB,YAA5C;AACD;;AAEDkY,IAAAA,MAAM,CAAC6c,WAAP,IAAsB7S,SAAS,GAAGliB,YAAlC;AACA80B,IAAAA,aAAa,GAAG5S,SAAhB;AACAlV,IAAAA,KAAK,IAAI,CAAT;AACD;;AAEDkL,EAAAA,MAAM,CAAC6c,WAAP,GAAqBpkB,IAAI,CAACC,GAAL,CAASsH,MAAM,CAAC6c,WAAhB,EAA6B/S,UAA7B,IAA2C0S,WAAhE;;AAEA,MAAIpZ,GAAG,IAAIwI,QAAP,KAAoBjS,MAAM,CAAC1R,MAAP,KAAkB,OAAlB,IAA6B0R,MAAM,CAAC1R,MAAP,KAAkB,WAAnE,CAAJ,EAAqF;AACnFsjB,IAAAA,UAAU,CAAChY,GAAX,CAAe;AACbF,MAAAA,KAAK,EAAG,GAAE2M,MAAM,CAAC6c,WAAP,GAAqBljB,MAAM,CAAC7R,YAAa;AADtC,KAAf;AAGD;;AAED,MAAI6R,MAAM,CAAC6T,cAAX,EAA2B;AACzBjC,IAAAA,UAAU,CAAChY,GAAX,CAAe;AACb,OAACyoB,iBAAiB,CAAC,OAAD,CAAlB,GAA+B,GAAEhc,MAAM,CAAC6c,WAAP,GAAqBljB,MAAM,CAAC7R,YAAa;AAD7D,KAAf;AAGD;;AAED,MAAIo1B,WAAJ,EAAiB;AACfld,IAAAA,MAAM,CAACC,IAAP,CAAY4d,iBAAZ,CAA8B7T,SAA9B,EAAyCpH,QAAzC,EAAmDoZ,iBAAnD;AACD,GA5MoC,CA4MnC;;;AAGF,MAAI,CAACriB,MAAM,CAACmK,cAAZ,EAA4B;AAC1B,UAAMga,aAAa,GAAG,EAAtB;;AAEA,SAAK,IAAI7zB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2Y,QAAQ,CAACtY,MAA7B,EAAqCL,CAAC,IAAI,CAA1C,EAA6C;AAC3C,UAAI8zB,cAAc,GAAGnb,QAAQ,CAAC3Y,CAAD,CAA7B;AACA,UAAI0P,MAAM,CAACsU,YAAX,EAAyB8P,cAAc,GAAGtlB,IAAI,CAAC2f,KAAL,CAAW2F,cAAX,CAAjB;;AAEzB,UAAInb,QAAQ,CAAC3Y,CAAD,CAAR,IAAe+V,MAAM,CAAC6c,WAAP,GAAqB/S,UAAxC,EAAoD;AAClDgU,QAAAA,aAAa,CAAC9xB,IAAd,CAAmB+xB,cAAnB;AACD;AACF;;AAEDnb,IAAAA,QAAQ,GAAGkb,aAAX;;AAEA,QAAIrlB,IAAI,CAAC2f,KAAL,CAAWpY,MAAM,CAAC6c,WAAP,GAAqB/S,UAAhC,IAA8CrR,IAAI,CAAC2f,KAAL,CAAWxV,QAAQ,CAACA,QAAQ,CAACtY,MAAT,GAAkB,CAAnB,CAAnB,CAA9C,GAA0F,CAA9F,EAAiG;AAC/FsY,MAAAA,QAAQ,CAAC5W,IAAT,CAAcgU,MAAM,CAAC6c,WAAP,GAAqB/S,UAAnC;AACD;AACF;;AAED,MAAIlH,QAAQ,CAACtY,MAAT,KAAoB,CAAxB,EAA2BsY,QAAQ,GAAG,CAAC,CAAD,CAAX;;AAE3B,MAAIjJ,MAAM,CAAC7R,YAAP,KAAwB,CAA5B,EAA+B;AAC7B,UAAMuH,GAAG,GAAG2Q,MAAM,CAACmG,YAAP,MAAyB/C,GAAzB,GAA+B,YAA/B,GAA8C4Y,iBAAiB,CAAC,aAAD,CAA3E;AACAzZ,IAAAA,MAAM,CAACnW,MAAP,CAAc,CAAC4xB,CAAD,EAAI9E,UAAJ,KAAmB;AAC/B,UAAI,CAACvf,MAAM,CAACkK,OAAZ,EAAqB,OAAO,IAAP;;AAErB,UAAIqV,UAAU,KAAK3W,MAAM,CAACjY,MAAP,GAAgB,CAAnC,EAAsC;AACpC,eAAO,KAAP;AACD;;AAED,aAAO,IAAP;AACD,KARD,EAQGiJ,GARH,CAQO;AACL,OAAClE,GAAD,GAAQ,GAAEvH,YAAa;AADlB,KARP;AAWD;;AAED,MAAI6R,MAAM,CAACmK,cAAP,IAAyBnK,MAAM,CAACkU,oBAApC,EAA0D;AACxD,QAAIoQ,aAAa,GAAG,CAApB;AACAvb,IAAAA,eAAe,CAACxZ,OAAhB,CAAwBg1B,cAAc,IAAI;AACxCD,MAAAA,aAAa,IAAIC,cAAc,IAAIvkB,MAAM,CAAC7R,YAAP,GAAsB6R,MAAM,CAAC7R,YAA7B,GAA4C,CAAhD,CAA/B;AACD,KAFD;AAGAm2B,IAAAA,aAAa,IAAItkB,MAAM,CAAC7R,YAAxB;AACA,UAAMq2B,OAAO,GAAGF,aAAa,GAAGnU,UAAhC;AACAlH,IAAAA,QAAQ,GAAGA,QAAQ,CAAC3U,GAAT,CAAawqB,IAAI,IAAI;AAC9B,UAAIA,IAAI,GAAG,CAAX,EAAc,OAAO,CAAC8D,YAAR;AACd,UAAI9D,IAAI,GAAG0F,OAAX,EAAoB,OAAOA,OAAO,GAAG3B,WAAjB;AACpB,aAAO/D,IAAP;AACD,KAJU,CAAX;AAKD;;AAED,MAAI9e,MAAM,CAACqU,wBAAX,EAAqC;AACnC,QAAIiQ,aAAa,GAAG,CAApB;AACAvb,IAAAA,eAAe,CAACxZ,OAAhB,CAAwBg1B,cAAc,IAAI;AACxCD,MAAAA,aAAa,IAAIC,cAAc,IAAIvkB,MAAM,CAAC7R,YAAP,GAAsB6R,MAAM,CAAC7R,YAA7B,GAA4C,CAAhD,CAA/B;AACD,KAFD;AAGAm2B,IAAAA,aAAa,IAAItkB,MAAM,CAAC7R,YAAxB;;AAEA,QAAIm2B,aAAa,GAAGnU,UAApB,EAAgC;AAC9B,YAAMsU,eAAe,GAAG,CAACtU,UAAU,GAAGmU,aAAd,IAA+B,CAAvD;AACArb,MAAAA,QAAQ,CAAC1Z,OAAT,CAAiB,CAACuvB,IAAD,EAAOC,SAAP,KAAqB;AACpC9V,QAAAA,QAAQ,CAAC8V,SAAD,CAAR,GAAsBD,IAAI,GAAG2F,eAA7B;AACD,OAFD;AAGA3b,MAAAA,UAAU,CAACvZ,OAAX,CAAmB,CAACuvB,IAAD,EAAOC,SAAP,KAAqB;AACtCjW,QAAAA,UAAU,CAACiW,SAAD,CAAV,GAAwBD,IAAI,GAAG2F,eAA/B;AACD,OAFD;AAGD;AACF;;AAEDhzB,EAAAA,MAAM,CAACsO,MAAP,CAAcsG,MAAd,EAAsB;AACpBuC,IAAAA,MADoB;AAEpBK,IAAAA,QAFoB;AAGpBH,IAAAA,UAHoB;AAIpBC,IAAAA;AAJoB,GAAtB;;AAOA,MAAI/I,MAAM,CAACmK,cAAP,IAAyBnK,MAAM,CAACkK,OAAhC,IAA2C,CAAClK,MAAM,CAACkU,oBAAvD,EAA6E;AAC3EkO,IAAAA,gEAAc,CAAC/b,MAAM,CAAC0L,SAAR,EAAmB,iCAAnB,EAAuD,GAAE,CAAC9I,QAAQ,CAAC,CAAD,CAAI,IAAtE,CAAd;AACAmZ,IAAAA,gEAAc,CAAC/b,MAAM,CAAC0L,SAAR,EAAmB,gCAAnB,EAAsD,GAAE1L,MAAM,CAAC2C,IAAP,GAAc,CAAd,GAAkBD,eAAe,CAACA,eAAe,CAACpY,MAAhB,GAAyB,CAA1B,CAAf,GAA8C,CAAE,IAA1H,CAAd;AACA,UAAM+zB,aAAa,GAAG,CAACre,MAAM,CAAC4C,QAAP,CAAgB,CAAhB,CAAvB;AACA,UAAM0b,eAAe,GAAG,CAACte,MAAM,CAACyC,UAAP,CAAkB,CAAlB,CAAzB;AACAzC,IAAAA,MAAM,CAAC4C,QAAP,GAAkB5C,MAAM,CAAC4C,QAAP,CAAgB3U,GAAhB,CAAoBswB,CAAC,IAAIA,CAAC,GAAGF,aAA7B,CAAlB;AACAre,IAAAA,MAAM,CAACyC,UAAP,GAAoBzC,MAAM,CAACyC,UAAP,CAAkBxU,GAAlB,CAAsBswB,CAAC,IAAIA,CAAC,GAAGD,eAA/B,CAApB;AACD;;AAED,MAAIhC,YAAY,KAAKD,oBAArB,EAA2C;AACzCrc,IAAAA,MAAM,CAAC6B,IAAP,CAAY,oBAAZ;AACD;;AAED,MAAIe,QAAQ,CAACtY,MAAT,KAAoBmyB,sBAAxB,EAAgD;AAC9C,QAAIzc,MAAM,CAACrG,MAAP,CAAckR,aAAlB,EAAiC7K,MAAM,CAACkC,aAAP;AACjClC,IAAAA,MAAM,CAAC6B,IAAP,CAAY,sBAAZ;AACD;;AAED,MAAIY,UAAU,CAACnY,MAAX,KAAsBoyB,wBAA1B,EAAoD;AAClD1c,IAAAA,MAAM,CAAC6B,IAAP,CAAY,wBAAZ;AACD;;AAED,MAAIlI,MAAM,CAACsV,mBAAX,EAAgC;AAC9BjP,IAAAA,MAAM,CAACib,kBAAP;AACD;AACF;;;;;;;;;;;;;;ACpTc,SAAS9R,mBAAT,GAA+B;AAC5C,QAAMnJ,MAAM,GAAG,IAAf;AACA,QAAM;AACJuC,IAAAA,MADI;AAEJ5I,IAAAA,MAFI;AAGJ4R,IAAAA,UAHI;AAIJpL,IAAAA,WAJI;AAKJkG,IAAAA;AALI,MAMFrG,MANJ;AAOA,QAAM0Z,SAAS,GAAG1Z,MAAM,CAAC2Z,OAAP,IAAkBhgB,MAAM,CAACggB,OAAP,CAAe5Y,OAAnD;AACAwB,EAAAA,MAAM,CAACnU,WAAP,CAAoB,GAAEuL,MAAM,CAAC2S,gBAAiB,IAAG3S,MAAM,CAAC4S,cAAe,IAAG5S,MAAM,CAAC6S,cAAe,IAAG7S,MAAM,CAACoW,yBAA0B,IAAGpW,MAAM,CAACsW,uBAAwB,IAAGtW,MAAM,CAACuW,uBAAwB,EAAxM;AACA,MAAIsO,WAAJ;;AAEA,MAAI9E,SAAJ,EAAe;AACb8E,IAAAA,WAAW,GAAGxe,MAAM,CAACuL,UAAP,CAAkBlU,IAAlB,CAAwB,IAAGsC,MAAM,CAAC6P,UAAW,6BAA4BrJ,WAAY,IAArF,CAAd;AACD,GAFD,MAEO;AACLqe,IAAAA,WAAW,GAAGjc,MAAM,CAAC/M,EAAP,CAAU2K,WAAV,CAAd;AACD,GAjB2C,CAiB1C;;;AAGFqe,EAAAA,WAAW,CAAC1wB,QAAZ,CAAqB6L,MAAM,CAAC2S,gBAA5B;;AAEA,MAAI3S,MAAM,CAAC/R,IAAX,EAAiB;AACf;AACA,QAAI42B,WAAW,CAACjwB,QAAZ,CAAqBoL,MAAM,CAACqW,mBAA5B,CAAJ,EAAsD;AACpDzE,MAAAA,UAAU,CAAC/T,QAAX,CAAqB,IAAGmC,MAAM,CAAC6P,UAAW,SAAQ7P,MAAM,CAACqW,mBAAoB,8BAA6B3J,SAAU,IAApH,EAAyHvY,QAAzH,CAAkI6L,MAAM,CAACoW,yBAAzI;AACD,KAFD,MAEO;AACLxE,MAAAA,UAAU,CAAC/T,QAAX,CAAqB,IAAGmC,MAAM,CAAC6P,UAAW,IAAG7P,MAAM,CAACqW,mBAAoB,6BAA4B3J,SAAU,IAA9G,EAAmHvY,QAAnH,CAA4H6L,MAAM,CAACoW,yBAAnI;AACD;AACF,GA7B2C,CA6B1C;;;AAGF,MAAI0O,SAAS,GAAGD,WAAW,CAAC3nB,OAAZ,CAAqB,IAAG8C,MAAM,CAAC6P,UAAW,EAA1C,EAA6ChU,EAA7C,CAAgD,CAAhD,EAAmD1H,QAAnD,CAA4D6L,MAAM,CAAC4S,cAAnE,CAAhB;;AAEA,MAAI5S,MAAM,CAAC/R,IAAP,IAAe62B,SAAS,CAACn0B,MAAV,KAAqB,CAAxC,EAA2C;AACzCm0B,IAAAA,SAAS,GAAGlc,MAAM,CAAC/M,EAAP,CAAU,CAAV,CAAZ;AACAipB,IAAAA,SAAS,CAAC3wB,QAAV,CAAmB6L,MAAM,CAAC4S,cAA1B;AACD,GArC2C,CAqC1C;;;AAGF,MAAImS,SAAS,GAAGF,WAAW,CAACvnB,OAAZ,CAAqB,IAAG0C,MAAM,CAAC6P,UAAW,EAA1C,EAA6ChU,EAA7C,CAAgD,CAAhD,EAAmD1H,QAAnD,CAA4D6L,MAAM,CAAC6S,cAAnE,CAAhB;;AAEA,MAAI7S,MAAM,CAAC/R,IAAP,IAAe82B,SAAS,CAACp0B,MAAV,KAAqB,CAAxC,EAA2C;AACzCo0B,IAAAA,SAAS,GAAGnc,MAAM,CAAC/M,EAAP,CAAU,CAAC,CAAX,CAAZ;AACAkpB,IAAAA,SAAS,CAAC5wB,QAAV,CAAmB6L,MAAM,CAAC6S,cAA1B;AACD;;AAED,MAAI7S,MAAM,CAAC/R,IAAX,EAAiB;AACf;AACA,QAAI62B,SAAS,CAAClwB,QAAV,CAAmBoL,MAAM,CAACqW,mBAA1B,CAAJ,EAAoD;AAClDzE,MAAAA,UAAU,CAAC/T,QAAX,CAAqB,IAAGmC,MAAM,CAAC6P,UAAW,SAAQ7P,MAAM,CAACqW,mBAAoB,8BAA6ByO,SAAS,CAACjwB,IAAV,CAAe,yBAAf,CAA0C,IAApJ,EAAyJV,QAAzJ,CAAkK6L,MAAM,CAACsW,uBAAzK;AACD,KAFD,MAEO;AACL1E,MAAAA,UAAU,CAAC/T,QAAX,CAAqB,IAAGmC,MAAM,CAAC6P,UAAW,IAAG7P,MAAM,CAACqW,mBAAoB,6BAA4ByO,SAAS,CAACjwB,IAAV,CAAe,yBAAf,CAA0C,IAA9I,EAAmJV,QAAnJ,CAA4J6L,MAAM,CAACsW,uBAAnK;AACD;;AAED,QAAIyO,SAAS,CAACnwB,QAAV,CAAmBoL,MAAM,CAACqW,mBAA1B,CAAJ,EAAoD;AAClDzE,MAAAA,UAAU,CAAC/T,QAAX,CAAqB,IAAGmC,MAAM,CAAC6P,UAAW,SAAQ7P,MAAM,CAACqW,mBAAoB,8BAA6B0O,SAAS,CAAClwB,IAAV,CAAe,yBAAf,CAA0C,IAApJ,EAAyJV,QAAzJ,CAAkK6L,MAAM,CAACuW,uBAAzK;AACD,KAFD,MAEO;AACL3E,MAAAA,UAAU,CAAC/T,QAAX,CAAqB,IAAGmC,MAAM,CAAC6P,UAAW,IAAG7P,MAAM,CAACqW,mBAAoB,6BAA4B0O,SAAS,CAAClwB,IAAV,CAAe,yBAAf,CAA0C,IAA9I,EAAmJV,QAAnJ,CAA4J6L,MAAM,CAACuW,uBAAnK;AACD;AACF;;AAEDlQ,EAAAA,MAAM,CAACyJ,iBAAP;AACD;;;;;;;;;;;;;;AC/Dc,SAASwR,kBAAT,GAA8B;AAC3C,QAAMjb,MAAM,GAAG,IAAf;AACA,QAAMuC,MAAM,GAAGvC,MAAM,CAACuC,MAAtB;;AAEA,OAAK,IAAItY,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsY,MAAM,CAACjY,MAA3B,EAAmCL,CAAC,IAAI,CAAxC,EAA2C;AACzCsY,IAAAA,MAAM,CAACtY,CAAD,CAAN,CAAU00B,iBAAV,GAA8B3e,MAAM,CAACmG,YAAP,KAAwB5D,MAAM,CAACtY,CAAD,CAAN,CAAU20B,UAAlC,GAA+Crc,MAAM,CAACtY,CAAD,CAAN,CAAU40B,SAAvF;AACD;AACF;;;;;;;;;;;;;;;ACPD;AACe,SAAS3D,oBAAT,CAA8BxW,SAAS,GAAG,QAAQ,KAAKA,SAAb,IAA0B,CAApE,EAAuE;AACpF,QAAM1E,MAAM,GAAG,IAAf;AACA,QAAMrG,MAAM,GAAGqG,MAAM,CAACrG,MAAtB;AACA,QAAM;AACJ4I,IAAAA,MADI;AAEJkI,IAAAA,YAAY,EAAErH;AAFV,MAGFpD,MAHJ;AAIA,MAAIuC,MAAM,CAACjY,MAAP,KAAkB,CAAtB,EAAyB;AACzB,MAAI,OAAOiY,MAAM,CAAC,CAAD,CAAN,CAAUoc,iBAAjB,KAAuC,WAA3C,EAAwD3e,MAAM,CAACib,kBAAP;AACxD,MAAI6D,YAAY,GAAG,CAACpa,SAApB;AACA,MAAItB,GAAJ,EAAS0b,YAAY,GAAGpa,SAAf,CAV2E,CAUjD;;AAEnCnC,EAAAA,MAAM,CAACnU,WAAP,CAAmBuL,MAAM,CAAC0S,iBAA1B;AACArM,EAAAA,MAAM,CAAC+e,oBAAP,GAA8B,EAA9B;AACA/e,EAAAA,MAAM,CAACwb,aAAP,GAAuB,EAAvB;;AAEA,OAAK,IAAIvxB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsY,MAAM,CAACjY,MAA3B,EAAmCL,CAAC,IAAI,CAAxC,EAA2C;AACzC,UAAM0a,KAAK,GAAGpC,MAAM,CAACtY,CAAD,CAApB;AACA,QAAI+0B,WAAW,GAAGra,KAAK,CAACga,iBAAxB;;AAEA,QAAIhlB,MAAM,CAACkK,OAAP,IAAkBlK,MAAM,CAACmK,cAA7B,EAA6C;AAC3Ckb,MAAAA,WAAW,IAAIzc,MAAM,CAAC,CAAD,CAAN,CAAUoc,iBAAzB;AACD;;AAED,UAAMM,aAAa,GAAG,CAACH,YAAY,IAAInlB,MAAM,CAACmK,cAAP,GAAwB9D,MAAM,CAAC+I,YAAP,EAAxB,GAAgD,CAApD,CAAZ,GAAqEiW,WAAtE,KAAsFra,KAAK,CAACsF,eAAN,GAAwBtQ,MAAM,CAAC7R,YAArH,CAAtB;AACA,UAAMo3B,WAAW,GAAG,EAAEJ,YAAY,GAAGE,WAAjB,CAApB;AACA,UAAMG,UAAU,GAAGD,WAAW,GAAGlf,MAAM,CAAC0C,eAAP,CAAuBzY,CAAvB,CAAjC;AACA,UAAMm1B,SAAS,GAAGF,WAAW,IAAI,CAAf,IAAoBA,WAAW,GAAGlf,MAAM,CAAC2C,IAAP,GAAc,CAAhD,IAAqDwc,UAAU,GAAG,CAAb,IAAkBA,UAAU,IAAInf,MAAM,CAAC2C,IAA5F,IAAoGuc,WAAW,IAAI,CAAf,IAAoBC,UAAU,IAAInf,MAAM,CAAC2C,IAA/J;;AAEA,QAAIyc,SAAJ,EAAe;AACbpf,MAAAA,MAAM,CAACwb,aAAP,CAAqBxvB,IAArB,CAA0B2Y,KAA1B;AACA3E,MAAAA,MAAM,CAAC+e,oBAAP,CAA4B/yB,IAA5B,CAAiC/B,CAAjC;AACAsY,MAAAA,MAAM,CAAC/M,EAAP,CAAUvL,CAAV,EAAa6D,QAAb,CAAsB6L,MAAM,CAAC0S,iBAA7B;AACD;;AAED1H,IAAAA,KAAK,CAACzL,QAAN,GAAiBkK,GAAG,GAAG,CAAC6b,aAAJ,GAAoBA,aAAxC;AACD;;AAEDjf,EAAAA,MAAM,CAACwb,aAAP,GAAuBpuB,0DAAC,CAAC4S,MAAM,CAACwb,aAAR,CAAxB;AACD;;;;;;;;;;;;;;;;ACxCD;AACA;AACe,SAAS8D,IAAT,CAAc;AAC3Btf,EAAAA,MAD2B;AAE3B8F,EAAAA,YAF2B;AAG3BpV,EAAAA;AAH2B,CAAd,EAIZ;AACDoV,EAAAA,YAAY,CAAC;AACXyZ,IAAAA,IAAI,EAAE;AACJxe,MAAAA,OAAO,EAAE,IADL;AAEJye,MAAAA,iBAAiB,EAAE,qBAFf;AAGJC,MAAAA,gBAAgB,EAAE,gBAHd;AAIJC,MAAAA,gBAAgB,EAAE,YAJd;AAKJC,MAAAA,iBAAiB,EAAE,yBALf;AAMJC,MAAAA,gBAAgB,EAAE,wBANd;AAOJC,MAAAA,uBAAuB,EAAE,uBAPrB;AAQJC,MAAAA,iBAAiB,EAAE,8BARf;AASJC,MAAAA,gBAAgB,EAAE,IATd;AAUJC,MAAAA,+BAA+B,EAAE,IAV7B;AAWJC,MAAAA,0BAA0B,EAAE,IAXxB;AAYJC,MAAAA,SAAS,EAAE;AAZP;AADK,GAAD,CAAZ;AAgBA,MAAIC,UAAU,GAAG,IAAjB;;AAEA,WAASC,MAAT,CAAgBC,OAAhB,EAAyB;AACvB,UAAMC,YAAY,GAAGH,UAArB;AACA,QAAIG,YAAY,CAACh2B,MAAb,KAAwB,CAA5B,EAA+B;AAC/Bg2B,IAAAA,YAAY,CAACjzB,IAAb,CAAkB,EAAlB;AACAizB,IAAAA,YAAY,CAACjzB,IAAb,CAAkBgzB,OAAlB;AACD;;AAED,WAASE,eAAT,CAAyB5d,IAAI,GAAG,EAAhC,EAAoC;AAClC,UAAM6d,UAAU,GAAG,MAAM/nB,IAAI,CAACgoB,KAAL,CAAW,KAAKhoB,IAAI,CAACioB,MAAL,EAAhB,EAA+Bxb,QAA/B,CAAwC,EAAxC,CAAzB;;AAEA,WAAO,IAAIyb,MAAJ,CAAWhe,IAAX,EAAiB/V,OAAjB,CAAyB,IAAzB,EAA+B4zB,UAA/B,CAAP;AACD;;AAED,WAASI,eAAT,CAAyBtgB,GAAzB,EAA8B;AAC5BA,IAAAA,GAAG,CAAC9R,IAAJ,CAAS,UAAT,EAAqB,GAArB;AACD;;AAED,WAASqyB,kBAAT,CAA4BvgB,GAA5B,EAAiC;AAC/BA,IAAAA,GAAG,CAAC9R,IAAJ,CAAS,UAAT,EAAqB,IAArB;AACD;;AAED,WAASsyB,SAAT,CAAmBxgB,GAAnB,EAAwBygB,IAAxB,EAA8B;AAC5BzgB,IAAAA,GAAG,CAAC9R,IAAJ,CAAS,MAAT,EAAiBuyB,IAAjB;AACD;;AAED,WAASC,oBAAT,CAA8B1gB,GAA9B,EAAmC2gB,WAAnC,EAAgD;AAC9C3gB,IAAAA,GAAG,CAAC9R,IAAJ,CAAS,sBAAT,EAAiCyyB,WAAjC;AACD;;AAED,WAASC,aAAT,CAAuB5gB,GAAvB,EAA4B6gB,QAA5B,EAAsC;AACpC7gB,IAAAA,GAAG,CAAC9R,IAAJ,CAAS,eAAT,EAA0B2yB,QAA1B;AACD;;AAED,WAASC,UAAT,CAAoB9gB,GAApB,EAAyB8b,KAAzB,EAAgC;AAC9B9b,IAAAA,GAAG,CAAC9R,IAAJ,CAAS,YAAT,EAAuB4tB,KAAvB;AACD;;AAED,WAASiF,OAAT,CAAiB/gB,GAAjB,EAAsB5W,EAAtB,EAA0B;AACxB4W,IAAAA,GAAG,CAAC9R,IAAJ,CAAS,IAAT,EAAe9E,EAAf;AACD;;AAED,WAAS43B,SAAT,CAAmBhhB,GAAnB,EAAwBihB,IAAxB,EAA8B;AAC5BjhB,IAAAA,GAAG,CAAC9R,IAAJ,CAAS,WAAT,EAAsB+yB,IAAtB;AACD;;AAED,WAASC,SAAT,CAAmBlhB,GAAnB,EAAwB;AACtBA,IAAAA,GAAG,CAAC9R,IAAJ,CAAS,eAAT,EAA0B,IAA1B;AACD;;AAED,WAASizB,QAAT,CAAkBnhB,GAAlB,EAAuB;AACrBA,IAAAA,GAAG,CAAC9R,IAAJ,CAAS,eAAT,EAA0B,KAA1B;AACD;;AAED,WAASkzB,iBAAT,CAA2Bx3B,CAA3B,EAA8B;AAC5B,QAAIA,CAAC,CAACy3B,OAAF,KAAc,EAAd,IAAoBz3B,CAAC,CAACy3B,OAAF,KAAc,EAAtC,EAA0C;AAC1C,UAAMhoB,MAAM,GAAGqG,MAAM,CAACrG,MAAP,CAAc4lB,IAA7B;AACA,UAAM1L,SAAS,GAAGzmB,0DAAC,CAAClD,CAAC,CAAC+G,MAAH,CAAnB;;AAEA,QAAI+O,MAAM,CAACzX,UAAP,IAAqByX,MAAM,CAACzX,UAAP,CAAkBq5B,OAAvC,IAAkD/N,SAAS,CAACxiB,EAAV,CAAa2O,MAAM,CAACzX,UAAP,CAAkBq5B,OAA/B,CAAtD,EAA+F;AAC7F,UAAI,EAAE5hB,MAAM,CAAC6C,KAAP,IAAgB,CAAC7C,MAAM,CAACrG,MAAP,CAAc/R,IAAjC,CAAJ,EAA4C;AAC1CoY,QAAAA,MAAM,CAAC2X,SAAP;AACD;;AAED,UAAI3X,MAAM,CAAC6C,KAAX,EAAkB;AAChBud,QAAAA,MAAM,CAACzmB,MAAM,CAACimB,gBAAR,CAAN;AACD,OAFD,MAEO;AACLQ,QAAAA,MAAM,CAACzmB,MAAM,CAAC+lB,gBAAR,CAAN;AACD;AACF;;AAED,QAAI1f,MAAM,CAACzX,UAAP,IAAqByX,MAAM,CAACzX,UAAP,CAAkBs5B,OAAvC,IAAkDhO,SAAS,CAACxiB,EAAV,CAAa2O,MAAM,CAACzX,UAAP,CAAkBs5B,OAA/B,CAAtD,EAA+F;AAC7F,UAAI,EAAE7hB,MAAM,CAACsG,WAAP,IAAsB,CAACtG,MAAM,CAACrG,MAAP,CAAc/R,IAAvC,CAAJ,EAAkD;AAChDoY,QAAAA,MAAM,CAAC4X,SAAP;AACD;;AAED,UAAI5X,MAAM,CAACsG,WAAX,EAAwB;AACtB8Z,QAAAA,MAAM,CAACzmB,MAAM,CAACgmB,iBAAR,CAAN;AACD,OAFD,MAEO;AACLS,QAAAA,MAAM,CAACzmB,MAAM,CAAC8lB,gBAAR,CAAN;AACD;AACF;;AAED,QAAIzf,MAAM,CAAC5X,UAAP,IAAqByrB,SAAS,CAACxiB,EAAV,CAAaguB,0EAAiB,CAACrf,MAAM,CAACrG,MAAP,CAAcvR,UAAd,CAAyB05B,WAA1B,CAA9B,CAAzB,EAAgG;AAC9FjO,MAAAA,SAAS,CAAC,CAAD,CAAT,CAAatY,KAAb;AACD;AACF;;AAED,WAASwmB,gBAAT,GAA4B;AAC1B,QAAI/hB,MAAM,CAACrG,MAAP,CAAc/R,IAAd,IAAsB,CAACoY,MAAM,CAACzX,UAAlC,EAA8C;AAC9C,UAAM;AACJq5B,MAAAA,OADI;AAEJC,MAAAA;AAFI,QAGF7hB,MAAM,CAACzX,UAHX;;AAKA,QAAIs5B,OAAO,IAAIA,OAAO,CAACv3B,MAAR,GAAiB,CAAhC,EAAmC;AACjC,UAAI0V,MAAM,CAACsG,WAAX,EAAwB;AACtBkb,QAAAA,SAAS,CAACK,OAAD,CAAT;AACAhB,QAAAA,kBAAkB,CAACgB,OAAD,CAAlB;AACD,OAHD,MAGO;AACLJ,QAAAA,QAAQ,CAACI,OAAD,CAAR;AACAjB,QAAAA,eAAe,CAACiB,OAAD,CAAf;AACD;AACF;;AAED,QAAID,OAAO,IAAIA,OAAO,CAACt3B,MAAR,GAAiB,CAAhC,EAAmC;AACjC,UAAI0V,MAAM,CAAC6C,KAAX,EAAkB;AAChB2e,QAAAA,SAAS,CAACI,OAAD,CAAT;AACAf,QAAAA,kBAAkB,CAACe,OAAD,CAAlB;AACD,OAHD,MAGO;AACLH,QAAAA,QAAQ,CAACG,OAAD,CAAR;AACAhB,QAAAA,eAAe,CAACgB,OAAD,CAAf;AACD;AACF;AACF;;AAED,WAASI,aAAT,GAAyB;AACvB,WAAOhiB,MAAM,CAAC5X,UAAP,IAAqB4X,MAAM,CAACrG,MAAP,CAAcvR,UAAd,CAAyBE,SAA9C,IAA2D0X,MAAM,CAAC5X,UAAP,CAAkB65B,OAA7E,IAAwFjiB,MAAM,CAAC5X,UAAP,CAAkB65B,OAAlB,CAA0B33B,MAAzH;AACD;;AAED,WAAS43B,gBAAT,GAA4B;AAC1B,UAAMvoB,MAAM,GAAGqG,MAAM,CAACrG,MAAP,CAAc4lB,IAA7B;;AAEA,QAAIyC,aAAa,EAAjB,EAAqB;AACnBhiB,MAAAA,MAAM,CAAC5X,UAAP,CAAkB65B,OAAlB,CAA0BptB,IAA1B,CAA+BstB,QAAQ,IAAI;AACzC,cAAMC,SAAS,GAAGh1B,0DAAC,CAAC+0B,QAAD,CAAnB;AACAvB,QAAAA,eAAe,CAACwB,SAAD,CAAf;;AAEA,YAAI,CAACpiB,MAAM,CAACrG,MAAP,CAAcvR,UAAd,CAAyBi6B,YAA9B,EAA4C;AAC1CvB,UAAAA,SAAS,CAACsB,SAAD,EAAY,QAAZ,CAAT;AACAhB,UAAAA,UAAU,CAACgB,SAAD,EAAYzoB,MAAM,CAACkmB,uBAAP,CAA+BjzB,OAA/B,CAAuC,eAAvC,EAAwDw1B,SAAS,CAACttB,KAAV,KAAoB,CAA5E,CAAZ,CAAV;AACD;AACF,OARD;AASD;AACF;;AAED,QAAMwtB,SAAS,GAAG,CAAChiB,GAAD,EAAMiiB,SAAN,EAAiBlC,OAAjB,KAA6B;AAC7CO,IAAAA,eAAe,CAACtgB,GAAD,CAAf;;AAEA,QAAIA,GAAG,CAAC,CAAD,CAAH,CAAOkiB,OAAP,KAAmB,QAAvB,EAAiC;AAC/B1B,MAAAA,SAAS,CAACxgB,GAAD,EAAM,QAAN,CAAT;AACAA,MAAAA,GAAG,CAAC5P,EAAJ,CAAO,SAAP,EAAkBgxB,iBAAlB;AACD;;AAEDN,IAAAA,UAAU,CAAC9gB,GAAD,EAAM+f,OAAN,CAAV;AACAa,IAAAA,aAAa,CAAC5gB,GAAD,EAAMiiB,SAAN,CAAb;AACD,GAVD;;AAYA,WAAS5Z,IAAT,GAAgB;AACd,UAAMhP,MAAM,GAAGqG,MAAM,CAACrG,MAAP,CAAc4lB,IAA7B;AACAvf,IAAAA,MAAM,CAACM,GAAP,CAAW5K,MAAX,CAAkByqB,UAAlB,EAFc,CAEiB;;AAE/B,UAAMsC,YAAY,GAAGziB,MAAM,CAACM,GAA5B;;AAEA,QAAI3G,MAAM,CAACqmB,+BAAX,EAA4C;AAC1CgB,MAAAA,oBAAoB,CAACyB,YAAD,EAAe9oB,MAAM,CAACqmB,+BAAtB,CAApB;AACD;;AAED,QAAIrmB,MAAM,CAAComB,gBAAX,EAA6B;AAC3BqB,MAAAA,UAAU,CAACqB,YAAD,EAAe9oB,MAAM,CAAComB,gBAAtB,CAAV;AACD,KAZa,CAYZ;;;AAGF,UAAMxU,UAAU,GAAGvL,MAAM,CAACuL,UAA1B;AACA,UAAMgX,SAAS,GAAGhX,UAAU,CAAC/c,IAAX,CAAgB,IAAhB,KAA0B,kBAAiB+xB,eAAe,CAAC,EAAD,CAAK,EAAjF;AACA,UAAMgB,IAAI,GAAGvhB,MAAM,CAACrG,MAAP,CAAc4X,QAAd,IAA0BvR,MAAM,CAACrG,MAAP,CAAc4X,QAAd,CAAuBxQ,OAAjD,GAA2D,KAA3D,GAAmE,QAAhF;AACAsgB,IAAAA,OAAO,CAAC9V,UAAD,EAAagX,SAAb,CAAP;AACAjB,IAAAA,SAAS,CAAC/V,UAAD,EAAagW,IAAb,CAAT,CAnBc,CAmBe;;AAE7B,QAAI5nB,MAAM,CAACsmB,0BAAX,EAAuC;AACrCe,MAAAA,oBAAoB,CAAC5zB,0DAAC,CAAC4S,MAAM,CAACuC,MAAR,CAAF,EAAmB5I,MAAM,CAACsmB,0BAA1B,CAApB;AACD;;AAEDa,IAAAA,SAAS,CAAC1zB,0DAAC,CAAC4S,MAAM,CAACuC,MAAR,CAAF,EAAmB5I,MAAM,CAACumB,SAA1B,CAAT;AACA,UAAM5D,YAAY,GAAGtc,MAAM,CAACrG,MAAP,CAAc/R,IAAd,GAAqBoY,MAAM,CAACuC,MAAP,CAAcnW,MAAd,CAAqB/D,EAAE,IAAI,CAACA,EAAE,CAACuB,SAAH,CAAaY,QAAb,CAAsBwV,MAAM,CAACrG,MAAP,CAAcqW,mBAApC,CAA5B,EAAsF1lB,MAA3G,GAAoH0V,MAAM,CAACuC,MAAP,CAAcjY,MAAvJ;AACA0V,IAAAA,MAAM,CAACuC,MAAP,CAAc1N,IAAd,CAAmB,CAAC0U,OAAD,EAAUzU,KAAV,KAAoB;AACrC,YAAM4tB,QAAQ,GAAGt1B,0DAAC,CAACmc,OAAD,CAAlB;AACA,YAAM2P,UAAU,GAAGlZ,MAAM,CAACrG,MAAP,CAAc/R,IAAd,GAAqBgY,QAAQ,CAAC8iB,QAAQ,CAACl0B,IAAT,CAAc,yBAAd,CAAD,EAA2C,EAA3C,CAA7B,GAA8EsG,KAAjG;AACA,YAAM6tB,gBAAgB,GAAGhpB,MAAM,CAACmmB,iBAAP,CAAyBlzB,OAAzB,CAAiC,eAAjC,EAAkDssB,UAAU,GAAG,CAA/D,EAAkEtsB,OAAlE,CAA0E,sBAA1E,EAAkG0vB,YAAlG,CAAzB;AACA8E,MAAAA,UAAU,CAACsB,QAAD,EAAWC,gBAAX,CAAV;AACD,KALD,EA3Bc,CAgCV;;AAEJ,QAAIf,OAAJ;AACA,QAAIC,OAAJ;;AAEA,QAAI7hB,MAAM,CAACzX,UAAP,IAAqByX,MAAM,CAACzX,UAAP,CAAkBq5B,OAA3C,EAAoD;AAClDA,MAAAA,OAAO,GAAG5hB,MAAM,CAACzX,UAAP,CAAkBq5B,OAA5B;AACD;;AAED,QAAI5hB,MAAM,CAACzX,UAAP,IAAqByX,MAAM,CAACzX,UAAP,CAAkBs5B,OAA3C,EAAoD;AAClDA,MAAAA,OAAO,GAAG7hB,MAAM,CAACzX,UAAP,CAAkBs5B,OAA5B;AACD;;AAED,QAAID,OAAO,IAAIA,OAAO,CAACt3B,MAAvB,EAA+B;AAC7Bg4B,MAAAA,SAAS,CAACV,OAAD,EAAUW,SAAV,EAAqB5oB,MAAM,CAAC+lB,gBAA5B,CAAT;AACD;;AAED,QAAImC,OAAO,IAAIA,OAAO,CAACv3B,MAAvB,EAA+B;AAC7Bg4B,MAAAA,SAAS,CAACT,OAAD,EAAUU,SAAV,EAAqB5oB,MAAM,CAAC8lB,gBAA5B,CAAT;AACD,KAnDa,CAmDZ;;;AAGF,QAAIuC,aAAa,EAAjB,EAAqB;AACnBhiB,MAAAA,MAAM,CAAC5X,UAAP,CAAkBkY,GAAlB,CAAsB5P,EAAtB,CAAyB,SAAzB,EAAoC2uB,0EAAiB,CAACrf,MAAM,CAACrG,MAAP,CAAcvR,UAAd,CAAyB05B,WAA1B,CAArD,EAA6FJ,iBAA7F;AACD;AACF;;AAED,WAASzV,OAAT,GAAmB;AACjB,QAAIkU,UAAU,IAAIA,UAAU,CAAC71B,MAAX,GAAoB,CAAtC,EAAyC61B,UAAU,CAACr2B,MAAX;AACzC,QAAI83B,OAAJ;AACA,QAAIC,OAAJ;;AAEA,QAAI7hB,MAAM,CAACzX,UAAP,IAAqByX,MAAM,CAACzX,UAAP,CAAkBq5B,OAA3C,EAAoD;AAClDA,MAAAA,OAAO,GAAG5hB,MAAM,CAACzX,UAAP,CAAkBq5B,OAA5B;AACD;;AAED,QAAI5hB,MAAM,CAACzX,UAAP,IAAqByX,MAAM,CAACzX,UAAP,CAAkBs5B,OAA3C,EAAoD;AAClDA,MAAAA,OAAO,GAAG7hB,MAAM,CAACzX,UAAP,CAAkBs5B,OAA5B;AACD;;AAED,QAAID,OAAJ,EAAa;AACXA,MAAAA,OAAO,CAAC7vB,GAAR,CAAY,SAAZ,EAAuB2vB,iBAAvB;AACD;;AAED,QAAIG,OAAJ,EAAa;AACXA,MAAAA,OAAO,CAAC9vB,GAAR,CAAY,SAAZ,EAAuB2vB,iBAAvB;AACD,KAnBgB,CAmBf;;;AAGF,QAAIM,aAAa,EAAjB,EAAqB;AACnBhiB,MAAAA,MAAM,CAAC5X,UAAP,CAAkBkY,GAAlB,CAAsBvO,GAAtB,CAA0B,SAA1B,EAAqCstB,0EAAiB,CAACrf,MAAM,CAACrG,MAAP,CAAcvR,UAAd,CAAyB05B,WAA1B,CAAtD,EAA8FJ,iBAA9F;AACD;AACF;;AAEDhxB,EAAAA,EAAE,CAAC,YAAD,EAAe,MAAM;AACrByvB,IAAAA,UAAU,GAAG/yB,0DAAC,CAAE,gBAAe4S,MAAM,CAACrG,MAAP,CAAc4lB,IAAd,CAAmBC,iBAAkB,oDAAtD,CAAd;AACD,GAFC,CAAF;AAGA9uB,EAAAA,EAAE,CAAC,WAAD,EAAc,MAAM;AACpB,QAAI,CAACsP,MAAM,CAACrG,MAAP,CAAc4lB,IAAd,CAAmBxe,OAAxB,EAAiC;AACjC4H,IAAAA,IAAI;AACJoZ,IAAAA,gBAAgB;AACjB,GAJC,CAAF;AAKArxB,EAAAA,EAAE,CAAC,QAAD,EAAW,MAAM;AACjB,QAAI,CAACsP,MAAM,CAACrG,MAAP,CAAc4lB,IAAd,CAAmBxe,OAAxB,EAAiC;AACjCghB,IAAAA,gBAAgB;AACjB,GAHC,CAAF;AAIArxB,EAAAA,EAAE,CAAC,UAAD,EAAa,MAAM;AACnB,QAAI,CAACsP,MAAM,CAACrG,MAAP,CAAc4lB,IAAd,CAAmBxe,OAAxB,EAAiC;AACjCghB,IAAAA,gBAAgB;AACjB,GAHC,CAAF;AAIArxB,EAAAA,EAAE,CAAC,kBAAD,EAAqB,MAAM;AAC3B,QAAI,CAACsP,MAAM,CAACrG,MAAP,CAAc4lB,IAAd,CAAmBxe,OAAxB,EAAiC;AACjCmhB,IAAAA,gBAAgB;AACjB,GAHC,CAAF;AAIAxxB,EAAAA,EAAE,CAAC,SAAD,EAAY,MAAM;AAClB,QAAI,CAACsP,MAAM,CAACrG,MAAP,CAAc4lB,IAAd,CAAmBxe,OAAxB,EAAiC;AACjCkL,IAAAA,OAAO;AACR,GAHC,CAAF;AAID;;;;;;;;;;;;;;;;AC1RD;;AAEA;AACA;AACA;AACe,SAAS2W,QAAT,CAAkB;AAC/B5iB,EAAAA,MAD+B;AAE/B8F,EAAAA,YAF+B;AAG/BpV,EAAAA,EAH+B;AAI/BmR,EAAAA;AAJ+B,CAAlB,EAKZ;AACD,MAAIghB,OAAJ;AACA7iB,EAAAA,MAAM,CAACuR,QAAP,GAAkB;AAChBC,IAAAA,OAAO,EAAE,KADO;AAEhBC,IAAAA,MAAM,EAAE;AAFQ,GAAlB;AAIA3L,EAAAA,YAAY,CAAC;AACXyL,IAAAA,QAAQ,EAAE;AACRxQ,MAAAA,OAAO,EAAE,KADD;AAER+hB,MAAAA,KAAK,EAAE,IAFC;AAGRC,MAAAA,iBAAiB,EAAE,IAHX;AAIRC,MAAAA,oBAAoB,EAAE,IAJd;AAKRC,MAAAA,eAAe,EAAE,KALT;AAMRC,MAAAA,gBAAgB,EAAE,KANV;AAORC,MAAAA,iBAAiB,EAAE;AAPX;AADC,GAAD,CAAZ;;AAYA,WAASzR,GAAT,GAAe;AACb,UAAM0R,cAAc,GAAGpjB,MAAM,CAACuC,MAAP,CAAc/M,EAAd,CAAiBwK,MAAM,CAACG,WAAxB,CAAvB;AACA,QAAI2iB,KAAK,GAAG9iB,MAAM,CAACrG,MAAP,CAAc4X,QAAd,CAAuBuR,KAAnC;;AAEA,QAAIM,cAAc,CAAC50B,IAAf,CAAoB,sBAApB,CAAJ,EAAiD;AAC/Cs0B,MAAAA,KAAK,GAAGM,cAAc,CAAC50B,IAAf,CAAoB,sBAApB,KAA+CwR,MAAM,CAACrG,MAAP,CAAc4X,QAAd,CAAuBuR,KAA9E;AACD;;AAEDjkB,IAAAA,YAAY,CAACgkB,OAAD,CAAZ;AACAA,IAAAA,OAAO,GAAGhR,0DAAQ,CAAC,MAAM;AACvB,UAAIwR,cAAJ;;AAEA,UAAIrjB,MAAM,CAACrG,MAAP,CAAc4X,QAAd,CAAuB2R,gBAA3B,EAA6C;AAC3C,YAAIljB,MAAM,CAACrG,MAAP,CAAc/R,IAAlB,EAAwB;AACtBoY,UAAAA,MAAM,CAACqT,OAAP;AACAgQ,UAAAA,cAAc,GAAGrjB,MAAM,CAAC4X,SAAP,CAAiB5X,MAAM,CAACrG,MAAP,CAAc3R,KAA/B,EAAsC,IAAtC,EAA4C,IAA5C,CAAjB;AACA6Z,UAAAA,IAAI,CAAC,UAAD,CAAJ;AACD,SAJD,MAIO,IAAI,CAAC7B,MAAM,CAACsG,WAAZ,EAAyB;AAC9B+c,UAAAA,cAAc,GAAGrjB,MAAM,CAAC4X,SAAP,CAAiB5X,MAAM,CAACrG,MAAP,CAAc3R,KAA/B,EAAsC,IAAtC,EAA4C,IAA5C,CAAjB;AACA6Z,UAAAA,IAAI,CAAC,UAAD,CAAJ;AACD,SAHM,MAGA,IAAI,CAAC7B,MAAM,CAACrG,MAAP,CAAc4X,QAAd,CAAuB0R,eAA5B,EAA6C;AAClDI,UAAAA,cAAc,GAAGrjB,MAAM,CAACiC,OAAP,CAAejC,MAAM,CAACuC,MAAP,CAAcjY,MAAd,GAAuB,CAAtC,EAAyC0V,MAAM,CAACrG,MAAP,CAAc3R,KAAvD,EAA8D,IAA9D,EAAoE,IAApE,CAAjB;AACA6Z,UAAAA,IAAI,CAAC,UAAD,CAAJ;AACD,SAHM,MAGA;AACL7H,UAAAA,IAAI;AACL;AACF,OAdD,MAcO,IAAIgG,MAAM,CAACrG,MAAP,CAAc/R,IAAlB,EAAwB;AAC7BoY,QAAAA,MAAM,CAACqT,OAAP;AACAgQ,QAAAA,cAAc,GAAGrjB,MAAM,CAAC2X,SAAP,CAAiB3X,MAAM,CAACrG,MAAP,CAAc3R,KAA/B,EAAsC,IAAtC,EAA4C,IAA5C,CAAjB;AACA6Z,QAAAA,IAAI,CAAC,UAAD,CAAJ;AACD,OAJM,MAIA,IAAI,CAAC7B,MAAM,CAAC6C,KAAZ,EAAmB;AACxBwgB,QAAAA,cAAc,GAAGrjB,MAAM,CAAC2X,SAAP,CAAiB3X,MAAM,CAACrG,MAAP,CAAc3R,KAA/B,EAAsC,IAAtC,EAA4C,IAA5C,CAAjB;AACA6Z,QAAAA,IAAI,CAAC,UAAD,CAAJ;AACD,OAHM,MAGA,IAAI,CAAC7B,MAAM,CAACrG,MAAP,CAAc4X,QAAd,CAAuB0R,eAA5B,EAA6C;AAClDI,QAAAA,cAAc,GAAGrjB,MAAM,CAACiC,OAAP,CAAe,CAAf,EAAkBjC,MAAM,CAACrG,MAAP,CAAc3R,KAAhC,EAAuC,IAAvC,EAA6C,IAA7C,CAAjB;AACA6Z,QAAAA,IAAI,CAAC,UAAD,CAAJ;AACD,OAHM,MAGA;AACL7H,QAAAA,IAAI;AACL;;AAED,UAAIgG,MAAM,CAACrG,MAAP,CAAckK,OAAd,IAAyB7D,MAAM,CAACuR,QAAP,CAAgBC,OAA7C,EAAsDE,GAAG,GAAzD,KAAiE,IAAI2R,cAAc,KAAK,KAAvB,EAA8B;AAC7F3R,QAAAA,GAAG;AACJ;AACF,KAlCiB,EAkCfoR,KAlCe,CAAlB;AAmCD;;AAED,WAASlc,KAAT,GAAiB;AACf,QAAI,OAAOic,OAAP,KAAmB,WAAvB,EAAoC,OAAO,KAAP;AACpC,QAAI7iB,MAAM,CAACuR,QAAP,CAAgBC,OAApB,EAA6B,OAAO,KAAP;AAC7BxR,IAAAA,MAAM,CAACuR,QAAP,CAAgBC,OAAhB,GAA0B,IAA1B;AACA3P,IAAAA,IAAI,CAAC,eAAD,CAAJ;AACA6P,IAAAA,GAAG;AACH,WAAO,IAAP;AACD;;AAED,WAAS1X,IAAT,GAAgB;AACd,QAAI,CAACgG,MAAM,CAACuR,QAAP,CAAgBC,OAArB,EAA8B,OAAO,KAAP;AAC9B,QAAI,OAAOqR,OAAP,KAAmB,WAAvB,EAAoC,OAAO,KAAP;;AAEpC,QAAIA,OAAJ,EAAa;AACXhkB,MAAAA,YAAY,CAACgkB,OAAD,CAAZ;AACAA,MAAAA,OAAO,GAAGj0B,SAAV;AACD;;AAEDoR,IAAAA,MAAM,CAACuR,QAAP,CAAgBC,OAAhB,GAA0B,KAA1B;AACA3P,IAAAA,IAAI,CAAC,cAAD,CAAJ;AACA,WAAO,IAAP;AACD;;AAED,WAASyhB,KAAT,CAAet7B,KAAf,EAAsB;AACpB,QAAI,CAACgY,MAAM,CAACuR,QAAP,CAAgBC,OAArB,EAA8B;AAC9B,QAAIxR,MAAM,CAACuR,QAAP,CAAgBE,MAApB,EAA4B;AAC5B,QAAIoR,OAAJ,EAAahkB,YAAY,CAACgkB,OAAD,CAAZ;AACb7iB,IAAAA,MAAM,CAACuR,QAAP,CAAgBE,MAAhB,GAAyB,IAAzB;;AAEA,QAAIzpB,KAAK,KAAK,CAAV,IAAe,CAACgY,MAAM,CAACrG,MAAP,CAAc4X,QAAd,CAAuBwR,iBAA3C,EAA8D;AAC5D/iB,MAAAA,MAAM,CAACuR,QAAP,CAAgBE,MAAhB,GAAyB,KAAzB;AACAC,MAAAA,GAAG;AACJ,KAHD,MAGO;AACL,OAAC,eAAD,EAAkB,qBAAlB,EAAyCxoB,OAAzC,CAAiDyI,KAAK,IAAI;AACxDqO,QAAAA,MAAM,CAACuL,UAAP,CAAkB,CAAlB,EAAqBziB,gBAArB,CAAsC6I,KAAtC,EAA6C4xB,eAA7C;AACD,OAFD;AAGD;AACF;;AAED,WAASC,kBAAT,GAA8B;AAC5B,UAAM76B,QAAQ,GAAGoC,uDAAW,EAA5B;;AAEA,QAAIpC,QAAQ,CAAC86B,eAAT,KAA6B,QAA7B,IAAyCzjB,MAAM,CAACuR,QAAP,CAAgBC,OAA7D,EAAsE;AACpE8R,MAAAA,KAAK;AACN;;AAED,QAAI36B,QAAQ,CAAC86B,eAAT,KAA6B,SAA7B,IAA0CzjB,MAAM,CAACuR,QAAP,CAAgBE,MAA9D,EAAsE;AACpEC,MAAAA,GAAG;AACH1R,MAAAA,MAAM,CAACuR,QAAP,CAAgBE,MAAhB,GAAyB,KAAzB;AACD;AACF;;AAED,WAAS8R,eAAT,CAAyBr5B,CAAzB,EAA4B;AAC1B,QAAI,CAAC8V,MAAD,IAAWA,MAAM,CAACoK,SAAlB,IAA+B,CAACpK,MAAM,CAACuL,UAA3C,EAAuD;AACvD,QAAIrhB,CAAC,CAAC+G,MAAF,KAAa+O,MAAM,CAACuL,UAAP,CAAkB,CAAlB,CAAjB,EAAuC;AACvC,KAAC,eAAD,EAAkB,qBAAlB,EAAyCriB,OAAzC,CAAiDyI,KAAK,IAAI;AACxDqO,MAAAA,MAAM,CAACuL,UAAP,CAAkB,CAAlB,EAAqBrZ,mBAArB,CAAyCP,KAAzC,EAAgD4xB,eAAhD;AACD,KAFD;AAGAvjB,IAAAA,MAAM,CAACuR,QAAP,CAAgBE,MAAhB,GAAyB,KAAzB;;AAEA,QAAI,CAACzR,MAAM,CAACuR,QAAP,CAAgBC,OAArB,EAA8B;AAC5BxX,MAAAA,IAAI;AACL,KAFD,MAEO;AACL0X,MAAAA,GAAG;AACJ;AACF;;AAED,WAASgS,YAAT,GAAwB;AACtB,QAAI1jB,MAAM,CAACrG,MAAP,CAAc4X,QAAd,CAAuByR,oBAA3B,EAAiD;AAC/ChpB,MAAAA,IAAI;AACL,KAFD,MAEO;AACLspB,MAAAA,KAAK;AACN;;AAED,KAAC,eAAD,EAAkB,qBAAlB,EAAyCp6B,OAAzC,CAAiDyI,KAAK,IAAI;AACxDqO,MAAAA,MAAM,CAACuL,UAAP,CAAkB,CAAlB,EAAqBrZ,mBAArB,CAAyCP,KAAzC,EAAgD4xB,eAAhD;AACD,KAFD;AAGD;;AAED,WAASI,YAAT,GAAwB;AACtB,QAAI3jB,MAAM,CAACrG,MAAP,CAAc4X,QAAd,CAAuByR,oBAA3B,EAAiD;AAC/C;AACD;;AAEDhjB,IAAAA,MAAM,CAACuR,QAAP,CAAgBE,MAAhB,GAAyB,KAAzB;AACAC,IAAAA,GAAG;AACJ;;AAED,WAASkS,iBAAT,GAA6B;AAC3B,QAAI5jB,MAAM,CAACrG,MAAP,CAAc4X,QAAd,CAAuB4R,iBAA3B,EAA8C;AAC5CnjB,MAAAA,MAAM,CAACM,GAAP,CAAW5P,EAAX,CAAc,YAAd,EAA4BgzB,YAA5B;AACA1jB,MAAAA,MAAM,CAACM,GAAP,CAAW5P,EAAX,CAAc,YAAd,EAA4BizB,YAA5B;AACD;AACF;;AAED,WAASE,iBAAT,GAA6B;AAC3B7jB,IAAAA,MAAM,CAACM,GAAP,CAAWvO,GAAX,CAAe,YAAf,EAA6B2xB,YAA7B;AACA1jB,IAAAA,MAAM,CAACM,GAAP,CAAWvO,GAAX,CAAe,YAAf,EAA6B4xB,YAA7B;AACD;;AAEDjzB,EAAAA,EAAE,CAAC,MAAD,EAAS,MAAM;AACf,QAAIsP,MAAM,CAACrG,MAAP,CAAc4X,QAAd,CAAuBxQ,OAA3B,EAAoC;AAClC6F,MAAAA,KAAK;AACL,YAAMje,QAAQ,GAAGoC,uDAAW,EAA5B;AACApC,MAAAA,QAAQ,CAACG,gBAAT,CAA0B,kBAA1B,EAA8C06B,kBAA9C;AACAI,MAAAA,iBAAiB;AAClB;AACF,GAPC,CAAF;AAQAlzB,EAAAA,EAAE,CAAC,uBAAD,EAA0B,CAACozB,EAAD,EAAK97B,KAAL,EAAYgwB,QAAZ,KAAyB;AACnD,QAAIhY,MAAM,CAACuR,QAAP,CAAgBC,OAApB,EAA6B;AAC3B,UAAIwG,QAAQ,IAAI,CAAChY,MAAM,CAACrG,MAAP,CAAc4X,QAAd,CAAuByR,oBAAxC,EAA8D;AAC5DhjB,QAAAA,MAAM,CAACuR,QAAP,CAAgB+R,KAAhB,CAAsBt7B,KAAtB;AACD,OAFD,MAEO;AACLgS,QAAAA,IAAI;AACL;AACF;AACF,GARC,CAAF;AASAtJ,EAAAA,EAAE,CAAC,iBAAD,EAAoB,MAAM;AAC1B,QAAIsP,MAAM,CAACuR,QAAP,CAAgBC,OAApB,EAA6B;AAC3B,UAAIxR,MAAM,CAACrG,MAAP,CAAc4X,QAAd,CAAuByR,oBAA3B,EAAiD;AAC/ChpB,QAAAA,IAAI;AACL,OAFD,MAEO;AACLspB,QAAAA,KAAK;AACN;AACF;AACF,GARC,CAAF;AASA5yB,EAAAA,EAAE,CAAC,UAAD,EAAa,MAAM;AACnB,QAAIsP,MAAM,CAACrG,MAAP,CAAckK,OAAd,IAAyB7D,MAAM,CAACuR,QAAP,CAAgBE,MAAzC,IAAmD,CAACzR,MAAM,CAACrG,MAAP,CAAc4X,QAAd,CAAuByR,oBAA/E,EAAqG;AACnGtR,MAAAA,GAAG;AACJ;AACF,GAJC,CAAF;AAKAhhB,EAAAA,EAAE,CAAC,SAAD,EAAY,MAAM;AAClBmzB,IAAAA,iBAAiB;;AAEjB,QAAI7jB,MAAM,CAACuR,QAAP,CAAgBC,OAApB,EAA6B;AAC3BxX,MAAAA,IAAI;AACL;;AAED,UAAMrR,QAAQ,GAAGoC,uDAAW,EAA5B;AACApC,IAAAA,QAAQ,CAACuJ,mBAAT,CAA6B,kBAA7B,EAAiDsxB,kBAAjD;AACD,GATC,CAAF;AAUAp4B,EAAAA,MAAM,CAACsO,MAAP,CAAcsG,MAAM,CAACuR,QAArB,EAA+B;AAC7B+R,IAAAA,KAD6B;AAE7B5R,IAAAA,GAF6B;AAG7B9K,IAAAA,KAH6B;AAI7B5M,IAAAA;AAJ6B,GAA/B;AAMD;;;;;;;;;;;;;;;AC7ND;AACA;AACe,SAAS+pB,UAAT,CAAoB;AACjC/jB,EAAAA,MADiC;AAEjC8F,EAAAA,YAFiC;AAGjCpV,EAAAA;AAHiC,CAApB,EAIZ;AACDoV,EAAAA,YAAY,CAAC;AACXke,IAAAA,UAAU,EAAE;AACVC,MAAAA,OAAO,EAAEr1B,SADC;AAEVs1B,MAAAA,OAAO,EAAE,KAFC;AAGVC,MAAAA,EAAE,EAAE,OAHM,CAGE;;AAHF;AADD,GAAD,CAAZ;AAQAnkB,EAAAA,MAAM,CAACgkB,UAAP,GAAoB;AAClBC,IAAAA,OAAO,EAAEr1B;AADS,GAApB;;AAIA,WAASw1B,YAAT,CAAsBxJ,CAAtB,EAAyBC,CAAzB,EAA4B;AAC1B,UAAMwJ,YAAY,GAAG,SAASrmB,MAAT,GAAkB;AACrC,UAAIsmB,QAAJ;AACA,UAAIC,QAAJ;AACA,UAAIC,KAAJ;AACA,aAAO,CAACC,KAAD,EAAQ50B,GAAR,KAAgB;AACrB00B,QAAAA,QAAQ,GAAG,CAAC,CAAZ;AACAD,QAAAA,QAAQ,GAAGG,KAAK,CAACn6B,MAAjB;;AAEA,eAAOg6B,QAAQ,GAAGC,QAAX,GAAsB,CAA7B,EAAgC;AAC9BC,UAAAA,KAAK,GAAGF,QAAQ,GAAGC,QAAX,IAAuB,CAA/B;;AAEA,cAAIE,KAAK,CAACD,KAAD,CAAL,IAAgB30B,GAApB,EAAyB;AACvB00B,YAAAA,QAAQ,GAAGC,KAAX;AACD,WAFD,MAEO;AACLF,YAAAA,QAAQ,GAAGE,KAAX;AACD;AACF;;AAED,eAAOF,QAAP;AACD,OAfD;AAgBD,KApBoB,EAArB;;AAsBA,SAAK1J,CAAL,GAASA,CAAT;AACA,SAAKC,CAAL,GAASA,CAAT;AACA,SAAK6J,SAAL,GAAiB9J,CAAC,CAACtwB,MAAF,GAAW,CAA5B,CAzB0B,CAyBK;AAC/B;AACA;;AAEA,QAAIq6B,EAAJ;AACA,QAAIC,EAAJ;;AAEA,SAAKC,WAAL,GAAmB,SAASA,WAAT,CAAqBC,EAArB,EAAyB;AAC1C,UAAI,CAACA,EAAL,EAAS,OAAO,CAAP,CADiC,CACvB;;AAEnBF,MAAAA,EAAE,GAAGP,YAAY,CAAC,KAAKzJ,CAAN,EAASkK,EAAT,CAAjB;AACAH,MAAAA,EAAE,GAAGC,EAAE,GAAG,CAAV,CAJ0C,CAI7B;AACb;;AAEA,aAAO,CAACE,EAAE,GAAG,KAAKlK,CAAL,CAAO+J,EAAP,CAAN,KAAqB,KAAK9J,CAAL,CAAO+J,EAAP,IAAa,KAAK/J,CAAL,CAAO8J,EAAP,CAAlC,KAAiD,KAAK/J,CAAL,CAAOgK,EAAP,IAAa,KAAKhK,CAAL,CAAO+J,EAAP,CAA9D,IAA4E,KAAK9J,CAAL,CAAO8J,EAAP,CAAnF;AACD,KARD;;AAUA,WAAO,IAAP;AACD,GAxDA,CAwDC;;;AAGF,WAASI,sBAAT,CAAgC72B,CAAhC,EAAmC;AACjC,QAAI,CAAC8R,MAAM,CAACgkB,UAAP,CAAkBgB,MAAvB,EAA+B;AAC7BhlB,MAAAA,MAAM,CAACgkB,UAAP,CAAkBgB,MAAlB,GAA2BhlB,MAAM,CAACrG,MAAP,CAAc/R,IAAd,GAAqB,IAAIw8B,YAAJ,CAAiBpkB,MAAM,CAACyC,UAAxB,EAAoCvU,CAAC,CAACuU,UAAtC,CAArB,GAAyE,IAAI2hB,YAAJ,CAAiBpkB,MAAM,CAAC4C,QAAxB,EAAkC1U,CAAC,CAAC0U,QAApC,CAApG;AACD;AACF;;AAED,WAAS2H,YAAT,CAAsB0a,EAAtB,EAA0B1K,YAA1B,EAAwC;AACtC,UAAM2K,UAAU,GAAGllB,MAAM,CAACgkB,UAAP,CAAkBC,OAArC;AACA,QAAIvI,UAAJ;AACA,QAAIyJ,mBAAJ;AACA,UAAM59B,MAAM,GAAGyY,MAAM,CAACtU,WAAtB;;AAEA,aAAS05B,sBAAT,CAAgCl3B,CAAhC,EAAmC;AACjC;AACA;AACA;AACA;AACA,YAAMwW,SAAS,GAAG1E,MAAM,CAACyK,YAAP,GAAsB,CAACzK,MAAM,CAAC0E,SAA9B,GAA0C1E,MAAM,CAAC0E,SAAnE;;AAEA,UAAI1E,MAAM,CAACrG,MAAP,CAAcqqB,UAAd,CAAyBG,EAAzB,KAAgC,OAApC,EAA6C;AAC3CY,QAAAA,sBAAsB,CAAC72B,CAAD,CAAtB,CAD2C,CAChB;AAC3B;;AAEAi3B,QAAAA,mBAAmB,GAAG,CAACnlB,MAAM,CAACgkB,UAAP,CAAkBgB,MAAlB,CAAyBH,WAAzB,CAAqC,CAACngB,SAAtC,CAAvB;AACD;;AAED,UAAI,CAACygB,mBAAD,IAAwBnlB,MAAM,CAACrG,MAAP,CAAcqqB,UAAd,CAAyBG,EAAzB,KAAgC,WAA5D,EAAyE;AACvEzI,QAAAA,UAAU,GAAG,CAACxtB,CAAC,CAAC8a,YAAF,KAAmB9a,CAAC,CAAC6a,YAAF,EAApB,KAAyC/I,MAAM,CAACgJ,YAAP,KAAwBhJ,MAAM,CAAC+I,YAAP,EAAjE,CAAb;AACAoc,QAAAA,mBAAmB,GAAG,CAACzgB,SAAS,GAAG1E,MAAM,CAAC+I,YAAP,EAAb,IAAsC2S,UAAtC,GAAmDxtB,CAAC,CAAC6a,YAAF,EAAzE;AACD;;AAED,UAAI/I,MAAM,CAACrG,MAAP,CAAcqqB,UAAd,CAAyBE,OAA7B,EAAsC;AACpCiB,QAAAA,mBAAmB,GAAGj3B,CAAC,CAAC8a,YAAF,KAAmBmc,mBAAzC;AACD;;AAEDj3B,MAAAA,CAAC,CAACoc,cAAF,CAAiB6a,mBAAjB;AACAj3B,MAAAA,CAAC,CAACqc,YAAF,CAAe4a,mBAAf,EAAoCnlB,MAApC;AACA9R,MAAAA,CAAC,CAACgb,iBAAF;AACAhb,MAAAA,CAAC,CAACib,mBAAF;AACD;;AAED,QAAI1d,KAAK,CAACM,OAAN,CAAcm5B,UAAd,CAAJ,EAA+B;AAC7B,WAAK,IAAIj7B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGi7B,UAAU,CAAC56B,MAA/B,EAAuCL,CAAC,IAAI,CAA5C,EAA+C;AAC7C,YAAIi7B,UAAU,CAACj7B,CAAD,CAAV,KAAkBswB,YAAlB,IAAkC2K,UAAU,CAACj7B,CAAD,CAAV,YAAyB1C,MAA/D,EAAuE;AACrE69B,UAAAA,sBAAsB,CAACF,UAAU,CAACj7B,CAAD,CAAX,CAAtB;AACD;AACF;AACF,KAND,MAMO,IAAIi7B,UAAU,YAAY39B,MAAtB,IAAgCgzB,YAAY,KAAK2K,UAArD,EAAiE;AACtEE,MAAAA,sBAAsB,CAACF,UAAD,CAAtB;AACD;AACF;;AAED,WAAS3R,aAAT,CAAuB/iB,QAAvB,EAAiC+pB,YAAjC,EAA+C;AAC7C,UAAMhzB,MAAM,GAAGyY,MAAM,CAACtU,WAAtB;AACA,UAAMw5B,UAAU,GAAGllB,MAAM,CAACgkB,UAAP,CAAkBC,OAArC;AACA,QAAIh6B,CAAJ;;AAEA,aAASo7B,uBAAT,CAAiCn3B,CAAjC,EAAoC;AAClCA,MAAAA,CAAC,CAACqlB,aAAF,CAAgB/iB,QAAhB,EAA0BwP,MAA1B;;AAEA,UAAIxP,QAAQ,KAAK,CAAjB,EAAoB;AAClBtC,QAAAA,CAAC,CAACqrB,eAAF;;AAEA,YAAIrrB,CAAC,CAACyL,MAAF,CAAS+J,UAAb,EAAyB;AACvBmO,UAAAA,0DAAQ,CAAC,MAAM;AACb3jB,YAAAA,CAAC,CAAC0c,gBAAF;AACD,WAFO,CAAR;AAGD;;AAED1c,QAAAA,CAAC,CAACqd,UAAF,CAAarY,aAAb,CAA2B,MAAM;AAC/B,cAAI,CAACgyB,UAAL,EAAiB;;AAEjB,cAAIh3B,CAAC,CAACyL,MAAF,CAAS/R,IAAT,IAAiBoY,MAAM,CAACrG,MAAP,CAAcqqB,UAAd,CAAyBG,EAAzB,KAAgC,OAArD,EAA8D;AAC5Dj2B,YAAAA,CAAC,CAACmlB,OAAF;AACD;;AAEDnlB,UAAAA,CAAC,CAACgF,aAAF;AACD,SARD;AASD;AACF;;AAED,QAAIzH,KAAK,CAACM,OAAN,CAAcm5B,UAAd,CAAJ,EAA+B;AAC7B,WAAKj7B,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGi7B,UAAU,CAAC56B,MAA3B,EAAmCL,CAAC,IAAI,CAAxC,EAA2C;AACzC,YAAIi7B,UAAU,CAACj7B,CAAD,CAAV,KAAkBswB,YAAlB,IAAkC2K,UAAU,CAACj7B,CAAD,CAAV,YAAyB1C,MAA/D,EAAuE;AACrE89B,UAAAA,uBAAuB,CAACH,UAAU,CAACj7B,CAAD,CAAX,CAAvB;AACD;AACF;AACF,KAND,MAMO,IAAIi7B,UAAU,YAAY39B,MAAtB,IAAgCgzB,YAAY,KAAK2K,UAArD,EAAiE;AACtEG,MAAAA,uBAAuB,CAACH,UAAD,CAAvB;AACD;AACF;;AAED,WAASI,YAAT,GAAwB;AACtB,QAAI,CAACtlB,MAAM,CAACgkB,UAAP,CAAkBC,OAAvB,EAAgC;;AAEhC,QAAIjkB,MAAM,CAACgkB,UAAP,CAAkBgB,MAAtB,EAA8B;AAC5BhlB,MAAAA,MAAM,CAACgkB,UAAP,CAAkBgB,MAAlB,GAA2Bp2B,SAA3B;AACA,aAAOoR,MAAM,CAACgkB,UAAP,CAAkBgB,MAAzB;AACD;AACF;;AAEDt0B,EAAAA,EAAE,CAAC,YAAD,EAAe,MAAM;AACrBsP,IAAAA,MAAM,CAACgkB,UAAP,CAAkBC,OAAlB,GAA4BjkB,MAAM,CAACrG,MAAP,CAAcqqB,UAAd,CAAyBC,OAArD;AACD,GAFC,CAAF;AAGAvzB,EAAAA,EAAE,CAAC,QAAD,EAAW,MAAM;AACjB40B,IAAAA,YAAY;AACb,GAFC,CAAF;AAGA50B,EAAAA,EAAE,CAAC,QAAD,EAAW,MAAM;AACjB40B,IAAAA,YAAY;AACb,GAFC,CAAF;AAGA50B,EAAAA,EAAE,CAAC,gBAAD,EAAmB,MAAM;AACzB40B,IAAAA,YAAY;AACb,GAFC,CAAF;AAGA50B,EAAAA,EAAE,CAAC,cAAD,EAAiB,CAACozB,EAAD,EAAKpf,SAAL,EAAgB6V,YAAhB,KAAiC;AAClD,QAAI,CAACva,MAAM,CAACgkB,UAAP,CAAkBC,OAAvB,EAAgC;AAChCjkB,IAAAA,MAAM,CAACgkB,UAAP,CAAkBzZ,YAAlB,CAA+B7F,SAA/B,EAA0C6V,YAA1C;AACD,GAHC,CAAF;AAIA7pB,EAAAA,EAAE,CAAC,eAAD,EAAkB,CAACozB,EAAD,EAAKtzB,QAAL,EAAe+pB,YAAf,KAAgC;AAClD,QAAI,CAACva,MAAM,CAACgkB,UAAP,CAAkBC,OAAvB,EAAgC;AAChCjkB,IAAAA,MAAM,CAACgkB,UAAP,CAAkBzQ,aAAlB,CAAgC/iB,QAAhC,EAA0C+pB,YAA1C;AACD,GAHC,CAAF;AAIAnvB,EAAAA,MAAM,CAACsO,MAAP,CAAcsG,MAAM,CAACgkB,UAArB,EAAiC;AAC/BzZ,IAAAA,YAD+B;AAE/BgJ,IAAAA;AAF+B,GAAjC;AAID;;;;;;;;;;;;;;;;;;AC9LD;AACA;AACA;AACA;AACe,SAASoS,WAAT,CAAqB;AAClC3lB,EAAAA,MADkC;AAElC8F,EAAAA,YAFkC;AAGlCpV,EAAAA;AAHkC,CAArB,EAIZ;AACDoV,EAAAA,YAAY,CAAC;AACX8f,IAAAA,WAAW,EAAE;AACXC,MAAAA,YAAY,EAAE,IADH;AAEXC,MAAAA,WAAW,EAAE;AAFF;AADF,GAAD,CAAZ;;AAOA,QAAMvb,YAAY,GAAG,MAAM;AACzB,UAAM;AACJhI,MAAAA,MADI;AAEJpC,MAAAA;AAFI,QAGFH,MAHJ;AAIA,UAAMrG,MAAM,GAAGqG,MAAM,CAACrG,MAAP,CAAcisB,WAA7B;AACA,UAAM;AACJne,MAAAA,cADI;AAEJN,MAAAA;AAFI,QAGFnH,MAAM,CAACkH,eAHX;AAIA,UAAMM,gBAAgB,GAAGxH,MAAM,CAAC0E,SAAhC;;AAEA,SAAK,IAAIza,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsY,MAAM,CAACjY,MAA3B,EAAmCL,CAAC,IAAI,CAAxC,EAA2C;AACzC,YAAMy4B,QAAQ,GAAGngB,MAAM,CAAC/M,EAAP,CAAUvL,CAAV,CAAjB;AACA,YAAMg1B,aAAa,GAAGyD,QAAQ,CAAC,CAAD,CAAR,CAAYxpB,QAAlC;AACA,YAAMA,QAAQ,GAAGT,IAAI,CAACE,GAAL,CAASF,IAAI,CAACC,GAAL,CAASumB,aAAT,EAAwB,CAAC,CAAzB,CAAT,EAAsC,CAAtC,CAAjB;AACA,UAAIjrB,MAAM,GAAG0uB,QAAQ,CAAC,CAAD,CAAR,CAAY/D,iBAAzB;;AAEA,UAAI3e,MAAM,CAACrG,MAAP,CAAcmK,cAAd,IAAgC,CAAC9D,MAAM,CAACrG,MAAP,CAAckK,OAAnD,EAA4D;AAC1D7D,QAAAA,MAAM,CAACuL,UAAP,CAAkBlb,SAAlB,CAA6B,cAAa2P,MAAM,CAAC+I,YAAP,EAAsB,KAAhE;AACD;;AAED,UAAI/I,MAAM,CAACrG,MAAP,CAAcmK,cAAd,IAAgC9D,MAAM,CAACrG,MAAP,CAAckK,OAAlD,EAA2D;AACzD7P,QAAAA,MAAM,IAAIuO,MAAM,CAAC,CAAD,CAAN,CAAUoc,iBAApB;AACD;;AAED,UAAIoH,EAAE,GAAG/lB,MAAM,CAACrG,MAAP,CAAckK,OAAd,GAAwB,CAAC7P,MAAD,GAAUgM,MAAM,CAAC0E,SAAzC,GAAqD,CAAC1Q,MAA/D;AACA,UAAIgyB,EAAE,GAAG,CAAT;AACA,YAAMC,EAAE,GAAG,CAAC,GAAD,GAAOxtB,IAAI,CAAC2a,GAAL,CAASla,QAAT,CAAlB;AACA,UAAIgtB,KAAK,GAAG,CAAZ;AACA,UAAIC,MAAM,GAAG,CAAC,CAAD,GAAKjtB,QAAlB;AACA,UAAIktB,KAAK,GAAG,IAAI3tB,IAAI,CAAC2a,GAAL,CAASla,QAAT,IAAqB,IAArC;AACA,YAAMmtB,aAAa,GAAG,CAACp8B,CAAC,KAAKkW,WAAN,IAAqBlW,CAAC,KAAKkW,WAAW,GAAG,CAA1C,KAAgDjH,QAAQ,GAAG,CAA3D,IAAgEA,QAAQ,GAAG,CAA3E,KAAiFiO,SAAS,IAAInH,MAAM,CAACrG,MAAP,CAAckK,OAA5G,KAAwH2D,gBAAgB,GAAGC,cAAjK;AACA,YAAM6e,aAAa,GAAG,CAACr8B,CAAC,KAAKkW,WAAN,IAAqBlW,CAAC,KAAKkW,WAAW,GAAG,CAA1C,KAAgDjH,QAAQ,GAAG,CAA3D,IAAgEA,QAAQ,GAAG,CAAC,CAA5E,KAAkFiO,SAAS,IAAInH,MAAM,CAACrG,MAAP,CAAckK,OAA7G,KAAyH2D,gBAAgB,GAAGC,cAAlK;;AAEA,UAAI4e,aAAa,IAAIC,aAArB,EAAoC;AAClC,cAAMC,WAAW,GAAG,CAAC,IAAI9tB,IAAI,CAAC2a,GAAL,CAAS,CAAC3a,IAAI,CAAC2a,GAAL,CAASla,QAAT,IAAqB,GAAtB,IAA6B,GAAtC,CAAL,KAAoD,GAAxE;AACAitB,QAAAA,MAAM,IAAI,CAAC,EAAD,GAAMjtB,QAAN,GAAiBqtB,WAA3B;AACAL,QAAAA,KAAK,IAAI,CAAC,GAAD,GAAOK,WAAhB;AACAH,QAAAA,KAAK,IAAI,KAAKG,WAAd;AACAP,QAAAA,EAAE,GAAI,GAAE,CAAC,EAAD,GAAMO,WAAN,GAAoB9tB,IAAI,CAAC2a,GAAL,CAASla,QAAT,CAAmB,GAA/C;AACD;;AAED,UAAIA,QAAQ,GAAG,CAAf,EAAkB;AAChB;AACA6sB,QAAAA,EAAE,GAAI,QAAOA,EAAG,SAAQK,KAAK,GAAG3tB,IAAI,CAAC2a,GAAL,CAASla,QAAT,CAAmB,KAAnD;AACD,OAHD,MAGO,IAAIA,QAAQ,GAAG,CAAf,EAAkB;AACvB;AACA6sB,QAAAA,EAAE,GAAI,QAAOA,EAAG,UAASK,KAAK,GAAG3tB,IAAI,CAAC2a,GAAL,CAASla,QAAT,CAAmB,KAApD;AACD,OAHM,MAGA;AACL6sB,QAAAA,EAAE,GAAI,GAAEA,EAAG,IAAX;AACD;;AAED,UAAI,CAAC/lB,MAAM,CAACmG,YAAP,EAAL,EAA4B;AAC1B,cAAMqgB,KAAK,GAAGR,EAAd;AACAA,QAAAA,EAAE,GAAGD,EAAL;AACAA,QAAAA,EAAE,GAAGS,KAAL;AACD;;AAED,YAAMC,WAAW,GAAGvtB,QAAQ,GAAG,CAAX,GAAgB,GAAE,IAAI,CAAC,IAAIgtB,KAAL,IAAchtB,QAAS,EAA7C,GAAkD,GAAE,IAAI,CAAC,IAAIgtB,KAAL,IAAchtB,QAAS,EAAnG;AACA,YAAM7I,SAAS,GAAI;AACzB,sBAAsB01B,EAAG,KAAIC,EAAG,KAAIC,EAAG;AACvC,kBAAkBE,MAAO;AACzB,gBAAgBM,WAAY;AAC5B,OAJM;;AAMA,UAAI9sB,MAAM,CAACksB,YAAX,EAAyB;AACvB;AACA,YAAIa,SAAS,GAAGhE,QAAQ,CAACrrB,IAAT,CAAc,sBAAd,CAAhB;;AAEA,YAAIqvB,SAAS,CAACp8B,MAAV,KAAqB,CAAzB,EAA4B;AAC1Bo8B,UAAAA,SAAS,GAAGnB,oEAAY,CAAC5rB,MAAD,EAAS+oB,QAAT,CAAxB;AACD;;AAED,YAAIgE,SAAS,CAACp8B,MAAd,EAAsBo8B,SAAS,CAAC,CAAD,CAAT,CAAap2B,KAAb,CAAmBq2B,OAAnB,GAA6BluB,IAAI,CAACE,GAAL,CAASF,IAAI,CAACC,GAAL,CAAS,CAACD,IAAI,CAAC2a,GAAL,CAASla,QAAT,IAAqB,GAAtB,IAA6B,GAAtC,EAA2C,CAA3C,CAAT,EAAwD,CAAxD,CAA7B;AACvB;;AAEDwpB,MAAAA,QAAQ,CAAC,CAAD,CAAR,CAAYpyB,KAAZ,CAAkBs2B,MAAlB,GAA2B,CAACnuB,IAAI,CAAC2a,GAAL,CAAS3a,IAAI,CAACgoB,KAAL,CAAWxB,aAAX,CAAT,CAAD,GAAuC1c,MAAM,CAACjY,MAAzE;AACA,YAAMupB,SAAS,GAAG4R,oEAAY,CAAC9rB,MAAD,EAAS+oB,QAAT,CAA9B;AACA7O,MAAAA,SAAS,CAACxjB,SAAV,CAAoBA,SAApB;AACD;AACF,GAjFD;;AAmFA,QAAMkjB,aAAa,GAAG/iB,QAAQ,IAAI;AAChC,UAAM;AACJs1B,MAAAA;AADI,QAEF9lB,MAAM,CAACrG,MAAP,CAAcisB,WAFlB;AAGA,UAAMiB,mBAAmB,GAAGf,WAAW,GAAG9lB,MAAM,CAACuC,MAAP,CAAclL,IAAd,CAAmByuB,WAAnB,CAAH,GAAqC9lB,MAAM,CAACuC,MAAnF;AACAskB,IAAAA,mBAAmB,CAACt2B,UAApB,CAA+BC,QAA/B,EAAyC6G,IAAzC,CAA8C,sBAA9C,EAAsE9G,UAAtE,CAAiFC,QAAjF;AACAk1B,IAAAA,oFAA0B,CAAC;AACzB1lB,MAAAA,MADyB;AAEzBxP,MAAAA,QAFyB;AAGzBs1B,MAAAA;AAHyB,KAAD,CAA1B;AAKD,GAXD;;AAaAN,EAAAA,kEAAU,CAAC;AACTv9B,IAAAA,MAAM,EAAE,OADC;AAET+X,IAAAA,MAFS;AAGTtP,IAAAA,EAHS;AAIT6Z,IAAAA,YAJS;AAKTgJ,IAAAA,aALS;AAMTuT,IAAAA,WAAW,EAAE,MAAM,IANV;AAOTC,IAAAA,eAAe,EAAE,OAAO;AACtB9X,MAAAA,mBAAmB,EAAE,IADC;AAEtBxB,MAAAA,gBAAgB,EAAE,CAACzN,MAAM,CAACrG,MAAP,CAAckK;AAFX,KAAP;AAPR,GAAD,CAAV;AAYD;;;;;;;;;;;;;;;;;AC5HD;AACA;AACA;AACe,SAASmjB,eAAT,CAAyB;AACtChnB,EAAAA,MADsC;AAEtC8F,EAAAA,YAFsC;AAGtCpV,EAAAA;AAHsC,CAAzB,EAIZ;AACDoV,EAAAA,YAAY,CAAC;AACXmhB,IAAAA,eAAe,EAAE;AACfd,MAAAA,MAAM,EAAE,EADO;AAEfe,MAAAA,OAAO,EAAE,CAFM;AAGfC,MAAAA,KAAK,EAAE,GAHQ;AAIfjB,MAAAA,KAAK,EAAE,CAJQ;AAKfkB,MAAAA,QAAQ,EAAE,CALK;AAMfvB,MAAAA,YAAY,EAAE,IANC;AAOfC,MAAAA,WAAW,EAAE;AAPE;AADN,GAAD,CAAZ;;AAYA,QAAMvb,YAAY,GAAG,MAAM;AACzB,UAAM;AACJlX,MAAAA,KAAK,EAAEg0B,WADH;AAEJxzB,MAAAA,MAAM,EAAEyzB,YAFJ;AAGJ/kB,MAAAA,MAHI;AAIJG,MAAAA;AAJI,QAKF1C,MALJ;AAMA,UAAMrG,MAAM,GAAGqG,MAAM,CAACrG,MAAP,CAAcstB,eAA7B;AACA,UAAM9gB,YAAY,GAAGnG,MAAM,CAACmG,YAAP,EAArB;AACA,UAAM9V,SAAS,GAAG2P,MAAM,CAAC0E,SAAzB;AACA,UAAM6iB,MAAM,GAAGphB,YAAY,GAAG,CAAC9V,SAAD,GAAag3B,WAAW,GAAG,CAA9B,GAAkC,CAACh3B,SAAD,GAAai3B,YAAY,GAAG,CAAzF;AACA,UAAMnB,MAAM,GAAGhgB,YAAY,GAAGxM,MAAM,CAACwsB,MAAV,GAAmB,CAACxsB,MAAM,CAACwsB,MAAtD;AACA,UAAMzhB,SAAS,GAAG/K,MAAM,CAACwtB,KAAzB,CAZyB,CAYO;;AAEhC,SAAK,IAAIl9B,CAAC,GAAG,CAAR,EAAWK,MAAM,GAAGiY,MAAM,CAACjY,MAAhC,EAAwCL,CAAC,GAAGK,MAA5C,EAAoDL,CAAC,IAAI,CAAzD,EAA4D;AAC1D,YAAMy4B,QAAQ,GAAGngB,MAAM,CAAC/M,EAAP,CAAUvL,CAAV,CAAjB;AACA,YAAM+f,SAAS,GAAGtH,eAAe,CAACzY,CAAD,CAAjC;AACA,YAAM+0B,WAAW,GAAG0D,QAAQ,CAAC,CAAD,CAAR,CAAY/D,iBAAhC;AACA,YAAM6I,gBAAgB,GAAG,CAACD,MAAM,GAAGvI,WAAT,GAAuBhV,SAAS,GAAG,CAApC,IAAyCA,SAAzC,GAAqDrQ,MAAM,CAACytB,QAArF;AACA,UAAIK,OAAO,GAAGthB,YAAY,GAAGggB,MAAM,GAAGqB,gBAAZ,GAA+B,CAAzD;AACA,UAAIE,OAAO,GAAGvhB,YAAY,GAAG,CAAH,GAAOggB,MAAM,GAAGqB,gBAA1C,CAN0D,CAME;;AAE5D,UAAIG,UAAU,GAAG,CAACjjB,SAAD,GAAajM,IAAI,CAAC2a,GAAL,CAASoU,gBAAT,CAA9B;AACA,UAAIN,OAAO,GAAGvtB,MAAM,CAACutB,OAArB,CAT0D,CAS5B;;AAE9B,UAAI,OAAOA,OAAP,KAAmB,QAAnB,IAA+BA,OAAO,CAAC16B,OAAR,CAAgB,GAAhB,MAAyB,CAAC,CAA7D,EAAgE;AAC9D06B,QAAAA,OAAO,GAAGt3B,UAAU,CAAC+J,MAAM,CAACutB,OAAR,CAAV,GAA6B,GAA7B,GAAmCld,SAA7C;AACD;;AAED,UAAI4d,UAAU,GAAGzhB,YAAY,GAAG,CAAH,GAAO+gB,OAAO,GAAGM,gBAA9C;AACA,UAAIK,UAAU,GAAG1hB,YAAY,GAAG+gB,OAAO,GAAGM,gBAAb,GAAgC,CAA7D;AACA,UAAItB,KAAK,GAAG,IAAI,CAAC,IAAIvsB,MAAM,CAACusB,KAAZ,IAAqBztB,IAAI,CAAC2a,GAAL,CAASoU,gBAAT,CAArC,CAjB0D,CAiBO;;AAEjE,UAAI/uB,IAAI,CAAC2a,GAAL,CAASyU,UAAT,IAAuB,KAA3B,EAAkCA,UAAU,GAAG,CAAb;AAClC,UAAIpvB,IAAI,CAAC2a,GAAL,CAASwU,UAAT,IAAuB,KAA3B,EAAkCA,UAAU,GAAG,CAAb;AAClC,UAAInvB,IAAI,CAAC2a,GAAL,CAASuU,UAAT,IAAuB,KAA3B,EAAkCA,UAAU,GAAG,CAAb;AAClC,UAAIlvB,IAAI,CAAC2a,GAAL,CAASqU,OAAT,IAAoB,KAAxB,EAA+BA,OAAO,GAAG,CAAV;AAC/B,UAAIhvB,IAAI,CAAC2a,GAAL,CAASsU,OAAT,IAAoB,KAAxB,EAA+BA,OAAO,GAAG,CAAV;AAC/B,UAAIjvB,IAAI,CAAC2a,GAAL,CAAS8S,KAAT,IAAkB,KAAtB,EAA6BA,KAAK,GAAG,CAAR;AAC7B,YAAM4B,cAAc,GAAI,eAAcD,UAAW,MAAKD,UAAW,MAAKD,UAAW,gBAAeD,OAAQ,gBAAeD,OAAQ,cAAavB,KAAM,GAAlJ;AACA,YAAMrS,SAAS,GAAG4R,oEAAY,CAAC9rB,MAAD,EAAS+oB,QAAT,CAA9B;AACA7O,MAAAA,SAAS,CAACxjB,SAAV,CAAoBy3B,cAApB;AACApF,MAAAA,QAAQ,CAAC,CAAD,CAAR,CAAYpyB,KAAZ,CAAkBs2B,MAAlB,GAA2B,CAACnuB,IAAI,CAAC2a,GAAL,CAAS3a,IAAI,CAACgoB,KAAL,CAAW+G,gBAAX,CAAT,CAAD,GAA0C,CAArE;;AAEA,UAAI7tB,MAAM,CAACksB,YAAX,EAAyB;AACvB;AACA,YAAIkC,eAAe,GAAG5hB,YAAY,GAAGuc,QAAQ,CAACrrB,IAAT,CAAc,2BAAd,CAAH,GAAgDqrB,QAAQ,CAACrrB,IAAT,CAAc,0BAAd,CAAlF;AACA,YAAI2wB,cAAc,GAAG7hB,YAAY,GAAGuc,QAAQ,CAACrrB,IAAT,CAAc,4BAAd,CAAH,GAAiDqrB,QAAQ,CAACrrB,IAAT,CAAc,6BAAd,CAAlF;;AAEA,YAAI0wB,eAAe,CAACz9B,MAAhB,KAA2B,CAA/B,EAAkC;AAChCy9B,UAAAA,eAAe,GAAGxC,oEAAY,CAAC5rB,MAAD,EAAS+oB,QAAT,EAAmBvc,YAAY,GAAG,MAAH,GAAY,KAA3C,CAA9B;AACD;;AAED,YAAI6hB,cAAc,CAAC19B,MAAf,KAA0B,CAA9B,EAAiC;AAC/B09B,UAAAA,cAAc,GAAGzC,oEAAY,CAAC5rB,MAAD,EAAS+oB,QAAT,EAAmBvc,YAAY,GAAG,OAAH,GAAa,QAA5C,CAA7B;AACD;;AAED,YAAI4hB,eAAe,CAACz9B,MAApB,EAA4By9B,eAAe,CAAC,CAAD,CAAf,CAAmBz3B,KAAnB,CAAyBq2B,OAAzB,GAAmCa,gBAAgB,GAAG,CAAnB,GAAuBA,gBAAvB,GAA0C,CAA7E;AAC5B,YAAIQ,cAAc,CAAC19B,MAAnB,EAA2B09B,cAAc,CAAC,CAAD,CAAd,CAAkB13B,KAAlB,CAAwBq2B,OAAxB,GAAkC,CAACa,gBAAD,GAAoB,CAApB,GAAwB,CAACA,gBAAzB,GAA4C,CAA9E;AAC5B;AACF;AACF,GA7DD;;AA+DA,QAAMjU,aAAa,GAAG/iB,QAAQ,IAAI;AAChC,UAAM;AACJs1B,MAAAA;AADI,QAEF9lB,MAAM,CAACrG,MAAP,CAAcstB,eAFlB;AAGA,UAAMJ,mBAAmB,GAAGf,WAAW,GAAG9lB,MAAM,CAACuC,MAAP,CAAclL,IAAd,CAAmByuB,WAAnB,CAAH,GAAqC9lB,MAAM,CAACuC,MAAnF;AACAskB,IAAAA,mBAAmB,CAACt2B,UAApB,CAA+BC,QAA/B,EAAyC6G,IAAzC,CAA8C,8GAA9C,EAA8J9G,UAA9J,CAAyKC,QAAzK;AACD,GAND;;AAQAg1B,EAAAA,kEAAU,CAAC;AACTv9B,IAAAA,MAAM,EAAE,WADC;AAET+X,IAAAA,MAFS;AAGTtP,IAAAA,EAHS;AAIT6Z,IAAAA,YAJS;AAKTgJ,IAAAA,aALS;AAMTuT,IAAAA,WAAW,EAAE,MAAM,IANV;AAOTC,IAAAA,eAAe,EAAE,OAAO;AACtB9X,MAAAA,mBAAmB,EAAE;AADC,KAAP;AAPR,GAAD,CAAV;AAWD;;;;;;;;;;;;;;;;;;ACtGD;AACA;AACA;AACA;AACe,SAASgZ,cAAT,CAAwB;AACrCjoB,EAAAA,MADqC;AAErC8F,EAAAA,YAFqC;AAGrCpV,EAAAA;AAHqC,CAAxB,EAIZ;AACDoV,EAAAA,YAAY,CAAC;AACXoiB,IAAAA,cAAc,EAAE;AACdpC,MAAAA,WAAW,EAAE,IADC;AAEdqC,MAAAA,aAAa,EAAE,CAFD;AAGdC,MAAAA,iBAAiB,EAAE,KAHL;AAIdC,MAAAA,kBAAkB,EAAE,CAJN;AAKdvB,MAAAA,WAAW,EAAE,IALC;AAMd/vB,MAAAA,IAAI,EAAE;AACJ2N,QAAAA,SAAS,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CADP;AAEJyhB,QAAAA,MAAM,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAFJ;AAGJQ,QAAAA,OAAO,EAAE,CAHL;AAIJT,QAAAA,KAAK,EAAE;AAJH,OANQ;AAYdvvB,MAAAA,IAAI,EAAE;AACJ+N,QAAAA,SAAS,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CADP;AAEJyhB,QAAAA,MAAM,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAFJ;AAGJQ,QAAAA,OAAO,EAAE,CAHL;AAIJT,QAAAA,KAAK,EAAE;AAJH;AAZQ;AADL,GAAD,CAAZ;;AAsBA,QAAMoC,iBAAiB,GAAGn+B,KAAK,IAAI;AACjC,QAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B,OAAOA,KAAP;AAC/B,WAAQ,GAAEA,KAAM,IAAhB;AACD,GAHD;;AAKA,QAAMogB,YAAY,GAAG,MAAM;AACzB,UAAM;AACJhI,MAAAA;AADI,QAEFvC,MAFJ;AAGA,UAAMrG,MAAM,GAAGqG,MAAM,CAACrG,MAAP,CAAcuuB,cAA7B;AACA,UAAM;AACJG,MAAAA,kBAAkB,EAAE3M;AADhB,QAEF/hB,MAFJ;;AAIA,SAAK,IAAI1P,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsY,MAAM,CAACjY,MAA3B,EAAmCL,CAAC,IAAI,CAAxC,EAA2C;AACzC,YAAMy4B,QAAQ,GAAGngB,MAAM,CAAC/M,EAAP,CAAUvL,CAAV,CAAjB;AACA,YAAMg1B,aAAa,GAAGyD,QAAQ,CAAC,CAAD,CAAR,CAAYxpB,QAAlC;AACA,YAAMA,QAAQ,GAAGT,IAAI,CAACE,GAAL,CAASF,IAAI,CAACC,GAAL,CAASgqB,QAAQ,CAAC,CAAD,CAAR,CAAYxpB,QAArB,EAA+B,CAACS,MAAM,CAACwuB,aAAvC,CAAT,EAAgExuB,MAAM,CAACwuB,aAAvE,CAAjB;AACA,YAAMn0B,MAAM,GAAG0uB,QAAQ,CAAC,CAAD,CAAR,CAAY/D,iBAA3B;AACA,YAAMlF,CAAC,GAAG,CAACzZ,MAAM,CAACrG,MAAP,CAAckK,OAAd,GAAwB,CAAC7P,MAAD,GAAUgM,MAAM,CAAC0E,SAAzC,GAAqD,CAAC1Q,MAAvD,EAA+D,CAA/D,EAAkE,CAAlE,CAAV;AACA,YAAMu0B,CAAC,GAAG,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAAV;AACA,UAAIC,MAAM,GAAG,KAAb;;AAEA,UAAI,CAACxoB,MAAM,CAACmG,YAAP,EAAL,EAA4B;AAC1BsT,QAAAA,CAAC,CAAC,CAAD,CAAD,GAAOA,CAAC,CAAC,CAAD,CAAR;AACAA,QAAAA,CAAC,CAAC,CAAD,CAAD,GAAO,CAAP;AACD;;AAED,UAAIrqB,IAAI,GAAG;AACTsV,QAAAA,SAAS,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CADF;AAETyhB,QAAAA,MAAM,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAFC;AAGTD,QAAAA,KAAK,EAAE,CAHE;AAITS,QAAAA,OAAO,EAAE;AAJA,OAAX;;AAOA,UAAIztB,QAAQ,GAAG,CAAf,EAAkB;AAChB9J,QAAAA,IAAI,GAAGuK,MAAM,CAAChD,IAAd;AACA6xB,QAAAA,MAAM,GAAG,IAAT;AACD,OAHD,MAGO,IAAItvB,QAAQ,GAAG,CAAf,EAAkB;AACvB9J,QAAAA,IAAI,GAAGuK,MAAM,CAAC5C,IAAd;AACAyxB,QAAAA,MAAM,GAAG,IAAT;AACD,OA3BwC,CA2BvC;;;AAGF/O,MAAAA,CAAC,CAACvwB,OAAF,CAAU,CAACiB,KAAD,EAAQ2K,KAAR,KAAkB;AAC1B2kB,QAAAA,CAAC,CAAC3kB,KAAD,CAAD,GAAY,QAAO3K,KAAM,SAAQm+B,iBAAiB,CAACl5B,IAAI,CAACsV,SAAL,CAAe5P,KAAf,CAAD,CAAwB,MAAK2D,IAAI,CAAC2a,GAAL,CAASla,QAAQ,GAAGwiB,UAApB,CAAgC,IAA/G;AACD,OAFD,EA9ByC,CAgCrC;;AAEJ6M,MAAAA,CAAC,CAACr/B,OAAF,CAAU,CAACiB,KAAD,EAAQ2K,KAAR,KAAkB;AAC1ByzB,QAAAA,CAAC,CAACzzB,KAAD,CAAD,GAAW1F,IAAI,CAAC+2B,MAAL,CAAYrxB,KAAZ,IAAqB2D,IAAI,CAAC2a,GAAL,CAASla,QAAQ,GAAGwiB,UAApB,CAAhC;AACD,OAFD;AAGAgH,MAAAA,QAAQ,CAAC,CAAD,CAAR,CAAYpyB,KAAZ,CAAkBs2B,MAAlB,GAA2B,CAACnuB,IAAI,CAAC2a,GAAL,CAAS3a,IAAI,CAACgoB,KAAL,CAAWxB,aAAX,CAAT,CAAD,GAAuC1c,MAAM,CAACjY,MAAzE;AACA,YAAMm+B,eAAe,GAAGhP,CAAC,CAAC1V,IAAF,CAAO,IAAP,CAAxB;AACA,YAAM2kB,YAAY,GAAI,WAAUH,CAAC,CAAC,CAAD,CAAI,gBAAeA,CAAC,CAAC,CAAD,CAAI,gBAAeA,CAAC,CAAC,CAAD,CAAI,MAA7E;AACA,YAAM9B,WAAW,GAAGvtB,QAAQ,GAAG,CAAX,GAAgB,SAAQ,IAAI,CAAC,IAAI9J,IAAI,CAAC82B,KAAV,IAAmBhtB,QAAnB,GAA8BwiB,UAAW,GAArE,GAA2E,SAAQ,IAAI,CAAC,IAAItsB,IAAI,CAAC82B,KAAV,IAAmBhtB,QAAnB,GAA8BwiB,UAAW,GAApJ;AACA,YAAMiN,aAAa,GAAGzvB,QAAQ,GAAG,CAAX,GAAe,IAAI,CAAC,IAAI9J,IAAI,CAACu3B,OAAV,IAAqBztB,QAArB,GAAgCwiB,UAAnD,GAAgE,IAAI,CAAC,IAAItsB,IAAI,CAACu3B,OAAV,IAAqBztB,QAArB,GAAgCwiB,UAA1H;AACA,YAAMrrB,SAAS,GAAI,eAAco4B,eAAgB,KAAIC,YAAa,IAAGjC,WAAY,EAAjF,CA1CyC,CA0C2C;;AAEpF,UAAI+B,MAAM,IAAIp5B,IAAI,CAACw5B,MAAf,IAAyB,CAACJ,MAA9B,EAAsC;AACpC,YAAI9B,SAAS,GAAGhE,QAAQ,CAAClrB,QAAT,CAAkB,sBAAlB,CAAhB;;AAEA,YAAIkvB,SAAS,CAACp8B,MAAV,KAAqB,CAArB,IAA0B8E,IAAI,CAACw5B,MAAnC,EAA2C;AACzClC,UAAAA,SAAS,GAAGnB,oEAAY,CAAC5rB,MAAD,EAAS+oB,QAAT,CAAxB;AACD;;AAED,YAAIgE,SAAS,CAACp8B,MAAd,EAAsB;AACpB,gBAAMu+B,aAAa,GAAGlvB,MAAM,CAACyuB,iBAAP,GAA2BlvB,QAAQ,IAAI,IAAIS,MAAM,CAACwuB,aAAf,CAAnC,GAAmEjvB,QAAzF;AACAwtB,UAAAA,SAAS,CAAC,CAAD,CAAT,CAAap2B,KAAb,CAAmBq2B,OAAnB,GAA6BluB,IAAI,CAACE,GAAL,CAASF,IAAI,CAACC,GAAL,CAASD,IAAI,CAAC2a,GAAL,CAASyV,aAAT,CAAT,EAAkC,CAAlC,CAAT,EAA+C,CAA/C,CAA7B;AACD;AACF;;AAED,YAAMhV,SAAS,GAAG4R,oEAAY,CAAC9rB,MAAD,EAAS+oB,QAAT,CAA9B;AACA7O,MAAAA,SAAS,CAACxjB,SAAV,CAAoBA,SAApB,EAA+BkD,GAA/B,CAAmC;AACjCozB,QAAAA,OAAO,EAAEgC;AADwB,OAAnC;;AAIA,UAAIv5B,IAAI,CAACyO,MAAT,EAAiB;AACfgW,QAAAA,SAAS,CAACtgB,GAAV,CAAc,kBAAd,EAAkCnE,IAAI,CAACyO,MAAvC;AACD;AACF;AACF,GA3ED;;AA6EA,QAAM0V,aAAa,GAAG/iB,QAAQ,IAAI;AAChC,UAAM;AACJs1B,MAAAA;AADI,QAEF9lB,MAAM,CAACrG,MAAP,CAAcuuB,cAFlB;AAGA,UAAMrB,mBAAmB,GAAGf,WAAW,GAAG9lB,MAAM,CAACuC,MAAP,CAAclL,IAAd,CAAmByuB,WAAnB,CAAH,GAAqC9lB,MAAM,CAACuC,MAAnF;AACAskB,IAAAA,mBAAmB,CAACt2B,UAApB,CAA+BC,QAA/B,EAAyC6G,IAAzC,CAA8C,sBAA9C,EAAsE9G,UAAtE,CAAiFC,QAAjF;AACAk1B,IAAAA,oFAA0B,CAAC;AACzB1lB,MAAAA,MADyB;AAEzBxP,MAAAA,QAFyB;AAGzBs1B,MAAAA,WAHyB;AAIzBgD,MAAAA,SAAS,EAAE;AAJc,KAAD,CAA1B;AAMD,GAZD;;AAcAtD,EAAAA,kEAAU,CAAC;AACTv9B,IAAAA,MAAM,EAAE,UADC;AAET+X,IAAAA,MAFS;AAGTtP,IAAAA,EAHS;AAIT6Z,IAAAA,YAJS;AAKTgJ,IAAAA,aALS;AAMTuT,IAAAA,WAAW,EAAE,MAAM9mB,MAAM,CAACrG,MAAP,CAAcuuB,cAAd,CAA6BpB,WANvC;AAOTC,IAAAA,eAAe,EAAE,OAAO;AACtB9X,MAAAA,mBAAmB,EAAE,IADC;AAEtBxB,MAAAA,gBAAgB,EAAE,CAACzN,MAAM,CAACrG,MAAP,CAAckK;AAFX,KAAP;AAPR,GAAD,CAAV;AAYD;;;;;;;;;;;;;;;;AC3ID;AACA;AACe,SAASklB,UAAT,CAAoB;AACjC/oB,EAAAA,MADiC;AAEjC8F,EAAAA,YAFiC;AAGjCpV,EAAAA;AAHiC,CAApB,EAIZ;AACDoV,EAAAA,YAAY,CAAC;AACXkjB,IAAAA,UAAU,EAAE;AACVnD,MAAAA,YAAY,EAAE,IADJ;AAEV+C,MAAAA,MAAM,EAAE,IAFE;AAGVK,MAAAA,YAAY,EAAE,EAHJ;AAIVC,MAAAA,WAAW,EAAE;AAJH;AADD,GAAD,CAAZ;;AASA,QAAM3e,YAAY,GAAG,MAAM;AACzB,UAAM;AACJjK,MAAAA,GADI;AAEJiL,MAAAA,UAFI;AAGJhJ,MAAAA,MAHI;AAIJlP,MAAAA,KAAK,EAAEg0B,WAJH;AAKJxzB,MAAAA,MAAM,EAAEyzB,YALJ;AAMJ7c,MAAAA,YAAY,EAAErH,GANV;AAOJT,MAAAA,IAAI,EAAEmH,UAPF;AAQJvE,MAAAA;AARI,QASFvF,MATJ;AAUA,UAAMrG,MAAM,GAAGqG,MAAM,CAACrG,MAAP,CAAcqvB,UAA7B;AACA,UAAM7iB,YAAY,GAAGnG,MAAM,CAACmG,YAAP,EAArB;AACA,UAAMuT,SAAS,GAAG1Z,MAAM,CAAC2Z,OAAP,IAAkB3Z,MAAM,CAACrG,MAAP,CAAcggB,OAAd,CAAsB5Y,OAA1D;AACA,QAAIooB,aAAa,GAAG,CAApB;AACA,QAAIC,aAAJ;;AAEA,QAAIzvB,MAAM,CAACivB,MAAX,EAAmB;AACjB,UAAIziB,YAAJ,EAAkB;AAChBijB,QAAAA,aAAa,GAAG7d,UAAU,CAAClU,IAAX,CAAgB,qBAAhB,CAAhB;;AAEA,YAAI+xB,aAAa,CAAC9+B,MAAd,KAAyB,CAA7B,EAAgC;AAC9B8+B,UAAAA,aAAa,GAAGh8B,0DAAC,CAAC,wCAAD,CAAjB;AACAme,UAAAA,UAAU,CAAC7V,MAAX,CAAkB0zB,aAAlB;AACD;;AAEDA,QAAAA,aAAa,CAAC71B,GAAd,CAAkB;AAChBM,UAAAA,MAAM,EAAG,GAAEwzB,WAAY;AADP,SAAlB;AAGD,OAXD,MAWO;AACL+B,QAAAA,aAAa,GAAG9oB,GAAG,CAACjJ,IAAJ,CAAS,qBAAT,CAAhB;;AAEA,YAAI+xB,aAAa,CAAC9+B,MAAd,KAAyB,CAA7B,EAAgC;AAC9B8+B,UAAAA,aAAa,GAAGh8B,0DAAC,CAAC,wCAAD,CAAjB;AACAkT,UAAAA,GAAG,CAAC5K,MAAJ,CAAW0zB,aAAX;AACD;AACF;AACF;;AAED,SAAK,IAAIn/B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsY,MAAM,CAACjY,MAA3B,EAAmCL,CAAC,IAAI,CAAxC,EAA2C;AACzC,YAAMy4B,QAAQ,GAAGngB,MAAM,CAAC/M,EAAP,CAAUvL,CAAV,CAAjB;AACA,UAAIivB,UAAU,GAAGjvB,CAAjB;;AAEA,UAAIyvB,SAAJ,EAAe;AACbR,QAAAA,UAAU,GAAGtZ,QAAQ,CAAC8iB,QAAQ,CAACl0B,IAAT,CAAc,yBAAd,CAAD,EAA2C,EAA3C,CAArB;AACD;;AAED,UAAI66B,UAAU,GAAGnQ,UAAU,GAAG,EAA9B;AACA,UAAIuH,KAAK,GAAGhoB,IAAI,CAAC2f,KAAL,CAAWiR,UAAU,GAAG,GAAxB,CAAZ;;AAEA,UAAIjmB,GAAJ,EAAS;AACPimB,QAAAA,UAAU,GAAG,CAACA,UAAd;AACA5I,QAAAA,KAAK,GAAGhoB,IAAI,CAAC2f,KAAL,CAAW,CAACiR,UAAD,GAAc,GAAzB,CAAR;AACD;;AAED,YAAMnwB,QAAQ,GAAGT,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAAS+pB,QAAQ,CAAC,CAAD,CAAR,CAAYxpB,QAArB,EAA+B,CAA/B,CAAT,EAA4C,CAAC,CAA7C,CAAjB;AACA,UAAIowB,EAAE,GAAG,CAAT;AACA,UAAIC,EAAE,GAAG,CAAT;AACA,UAAIC,EAAE,GAAG,CAAT;;AAEA,UAAItQ,UAAU,GAAG,CAAb,KAAmB,CAAvB,EAA0B;AACxBoQ,QAAAA,EAAE,GAAG,CAAC7I,KAAD,GAAS,CAAT,GAAa3W,UAAlB;AACA0f,QAAAA,EAAE,GAAG,CAAL;AACD,OAHD,MAGO,IAAI,CAACtQ,UAAU,GAAG,CAAd,IAAmB,CAAnB,KAAyB,CAA7B,EAAgC;AACrCoQ,QAAAA,EAAE,GAAG,CAAL;AACAE,QAAAA,EAAE,GAAG,CAAC/I,KAAD,GAAS,CAAT,GAAa3W,UAAlB;AACD,OAHM,MAGA,IAAI,CAACoP,UAAU,GAAG,CAAd,IAAmB,CAAnB,KAAyB,CAA7B,EAAgC;AACrCoQ,QAAAA,EAAE,GAAGxf,UAAU,GAAG2W,KAAK,GAAG,CAAR,GAAY3W,UAA9B;AACA0f,QAAAA,EAAE,GAAG1f,UAAL;AACD,OAHM,MAGA,IAAI,CAACoP,UAAU,GAAG,CAAd,IAAmB,CAAnB,KAAyB,CAA7B,EAAgC;AACrCoQ,QAAAA,EAAE,GAAG,CAACxf,UAAN;AACA0f,QAAAA,EAAE,GAAG,IAAI1f,UAAJ,GAAiBA,UAAU,GAAG,CAAb,GAAiB2W,KAAvC;AACD;;AAED,UAAIrd,GAAJ,EAAS;AACPkmB,QAAAA,EAAE,GAAG,CAACA,EAAN;AACD;;AAED,UAAI,CAACnjB,YAAL,EAAmB;AACjBojB,QAAAA,EAAE,GAAGD,EAAL;AACAA,QAAAA,EAAE,GAAG,CAAL;AACD;;AAED,YAAMj5B,SAAS,GAAI,WAAU8V,YAAY,GAAG,CAAH,GAAO,CAACkjB,UAAW,gBAAeljB,YAAY,GAAGkjB,UAAH,GAAgB,CAAE,oBAAmBC,EAAG,OAAMC,EAAG,OAAMC,EAAG,KAAjJ;;AAEA,UAAItwB,QAAQ,IAAI,CAAZ,IAAiBA,QAAQ,GAAG,CAAC,CAAjC,EAAoC;AAClCiwB,QAAAA,aAAa,GAAGjQ,UAAU,GAAG,EAAb,GAAkBhgB,QAAQ,GAAG,EAA7C;AACA,YAAIkK,GAAJ,EAAS+lB,aAAa,GAAG,CAACjQ,UAAD,GAAc,EAAd,GAAmBhgB,QAAQ,GAAG,EAA9C;AACV;;AAEDwpB,MAAAA,QAAQ,CAACryB,SAAT,CAAmBA,SAAnB;;AAEA,UAAIsJ,MAAM,CAACksB,YAAX,EAAyB;AACvB;AACA,YAAI4D,YAAY,GAAGtjB,YAAY,GAAGuc,QAAQ,CAACrrB,IAAT,CAAc,2BAAd,CAAH,GAAgDqrB,QAAQ,CAACrrB,IAAT,CAAc,0BAAd,CAA/E;AACA,YAAIqyB,WAAW,GAAGvjB,YAAY,GAAGuc,QAAQ,CAACrrB,IAAT,CAAc,4BAAd,CAAH,GAAiDqrB,QAAQ,CAACrrB,IAAT,CAAc,6BAAd,CAA/E;;AAEA,YAAIoyB,YAAY,CAACn/B,MAAb,KAAwB,CAA5B,EAA+B;AAC7Bm/B,UAAAA,YAAY,GAAGr8B,0DAAC,CAAE,mCAAkC+Y,YAAY,GAAG,MAAH,GAAY,KAAM,UAAlE,CAAhB;AACAuc,UAAAA,QAAQ,CAAChtB,MAAT,CAAgB+zB,YAAhB;AACD;;AAED,YAAIC,WAAW,CAACp/B,MAAZ,KAAuB,CAA3B,EAA8B;AAC5Bo/B,UAAAA,WAAW,GAAGt8B,0DAAC,CAAE,mCAAkC+Y,YAAY,GAAG,OAAH,GAAa,QAAS,UAAtE,CAAf;AACAuc,UAAAA,QAAQ,CAAChtB,MAAT,CAAgBg0B,WAAhB;AACD;;AAED,YAAID,YAAY,CAACn/B,MAAjB,EAAyBm/B,YAAY,CAAC,CAAD,CAAZ,CAAgBn5B,KAAhB,CAAsBq2B,OAAtB,GAAgCluB,IAAI,CAACC,GAAL,CAAS,CAACQ,QAAV,EAAoB,CAApB,CAAhC;AACzB,YAAIwwB,WAAW,CAACp/B,MAAhB,EAAwBo/B,WAAW,CAAC,CAAD,CAAX,CAAep5B,KAAf,CAAqBq2B,OAArB,GAA+BluB,IAAI,CAACC,GAAL,CAASQ,QAAT,EAAmB,CAAnB,CAA/B;AACzB;AACF;;AAEDqS,IAAAA,UAAU,CAAChY,GAAX,CAAe;AACb,kCAA6B,YAAWuW,UAAU,GAAG,CAAE,IAD1C;AAEb,0BAAqB,YAAWA,UAAU,GAAG,CAAE;AAFlC,KAAf;;AAKA,QAAInQ,MAAM,CAACivB,MAAX,EAAmB;AACjB,UAAIziB,YAAJ,EAAkB;AAChBijB,QAAAA,aAAa,CAAC/4B,SAAd,CAAyB,oBAAmBg3B,WAAW,GAAG,CAAd,GAAkB1tB,MAAM,CAACsvB,YAAa,OAAM,CAAC5B,WAAD,GAAe,CAAE,0CAAyC1tB,MAAM,CAACuvB,WAAY,GAArK;AACD,OAFD,MAEO;AACL,cAAMS,WAAW,GAAGlxB,IAAI,CAAC2a,GAAL,CAAS+V,aAAT,IAA0B1wB,IAAI,CAAC2f,KAAL,CAAW3f,IAAI,CAAC2a,GAAL,CAAS+V,aAAT,IAA0B,EAArC,IAA2C,EAAzF;AACA,cAAMzN,UAAU,GAAG,OAAOjjB,IAAI,CAACmxB,GAAL,CAASD,WAAW,GAAG,CAAd,GAAkBlxB,IAAI,CAACY,EAAvB,GAA4B,GAArC,IAA4C,CAA5C,GAAgDZ,IAAI,CAACW,GAAL,CAASuwB,WAAW,GAAG,CAAd,GAAkBlxB,IAAI,CAACY,EAAvB,GAA4B,GAArC,IAA4C,CAAnG,CAAnB;AACA,cAAMwwB,MAAM,GAAGlwB,MAAM,CAACuvB,WAAtB;AACA,cAAMY,MAAM,GAAGnwB,MAAM,CAACuvB,WAAP,GAAqBxN,UAApC;AACA,cAAM1nB,MAAM,GAAG2F,MAAM,CAACsvB,YAAtB;AACAG,QAAAA,aAAa,CAAC/4B,SAAd,CAAyB,WAAUw5B,MAAO,QAAOC,MAAO,sBAAqBxC,YAAY,GAAG,CAAf,GAAmBtzB,MAAO,OAAM,CAACszB,YAAD,GAAgB,CAAhB,GAAoBwC,MAAO,qBAAxI;AACD;AACF;;AAED,UAAMC,OAAO,GAAGxkB,OAAO,CAACykB,QAAR,IAAoBzkB,OAAO,CAAC0kB,SAA5B,GAAwC,CAACngB,UAAD,GAAc,CAAtD,GAA0D,CAA1E;AACAyB,IAAAA,UAAU,CAAClb,SAAX,CAAsB,qBAAoB05B,OAAQ,eAAc/pB,MAAM,CAACmG,YAAP,KAAwB,CAAxB,GAA4BgjB,aAAc,gBAAenpB,MAAM,CAACmG,YAAP,KAAwB,CAACgjB,aAAzB,GAAyC,CAAE,MAApK;AACD,GApID;;AAsIA,QAAM5V,aAAa,GAAG/iB,QAAQ,IAAI;AAChC,UAAM;AACJ8P,MAAAA,GADI;AAEJiC,MAAAA;AAFI,QAGFvC,MAHJ;AAIAuC,IAAAA,MAAM,CAAChS,UAAP,CAAkBC,QAAlB,EAA4B6G,IAA5B,CAAiC,8GAAjC,EAAiJ9G,UAAjJ,CAA4JC,QAA5J;;AAEA,QAAIwP,MAAM,CAACrG,MAAP,CAAcqvB,UAAd,CAAyBJ,MAAzB,IAAmC,CAAC5oB,MAAM,CAACmG,YAAP,EAAxC,EAA+D;AAC7D7F,MAAAA,GAAG,CAACjJ,IAAJ,CAAS,qBAAT,EAAgC9G,UAAhC,CAA2CC,QAA3C;AACD;AACF,GAVD;;AAYAg1B,EAAAA,kEAAU,CAAC;AACTv9B,IAAAA,MAAM,EAAE,MADC;AAET+X,IAAAA,MAFS;AAGTtP,IAAAA,EAHS;AAIT6Z,IAAAA,YAJS;AAKTgJ,IAAAA,aALS;AAMTuT,IAAAA,WAAW,EAAE,MAAM,IANV;AAOTC,IAAAA,eAAe,EAAE,OAAO;AACtBl/B,MAAAA,aAAa,EAAE,CADO;AAEtB6lB,MAAAA,cAAc,EAAE,CAFM;AAGtBuB,MAAAA,mBAAmB,EAAE,IAHC;AAItBD,MAAAA,eAAe,EAAE,CAJK;AAKtBlnB,MAAAA,YAAY,EAAE,CALQ;AAMtBgc,MAAAA,cAAc,EAAE,KANM;AAOtB2J,MAAAA,gBAAgB,EAAE;AAPI,KAAP;AAPR,GAAD,CAAV;AAiBD;;;;;;;;;;;;;;;;;ACnLD;AACA;AACA;AACe,SAAS/lB,UAAT,CAAoB;AACjCsY,EAAAA,MADiC;AAEjC8F,EAAAA,YAFiC;AAGjCpV,EAAAA;AAHiC,CAApB,EAIZ;AACDoV,EAAAA,YAAY,CAAC;AACX5d,IAAAA,UAAU,EAAE;AACVC,MAAAA,SAAS,EAAE,KADD;AAEV29B,MAAAA,WAAW,EAAE;AAFH;AADD,GAAD,CAAZ;;AAOA,QAAMvb,YAAY,GAAG,MAAM;AACzB,UAAM;AACJhI,MAAAA;AADI,QAEFvC,MAFJ;AAGA,UAAMrG,MAAM,GAAGqG,MAAM,CAACrG,MAAP,CAAczR,UAA7B;;AAEA,SAAK,IAAI+B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsY,MAAM,CAACjY,MAA3B,EAAmCL,CAAC,IAAI,CAAxC,EAA2C;AACzC,YAAMy4B,QAAQ,GAAG1iB,MAAM,CAACuC,MAAP,CAAc/M,EAAd,CAAiBvL,CAAjB,CAAjB;AACA,YAAM+J,MAAM,GAAG0uB,QAAQ,CAAC,CAAD,CAAR,CAAY/D,iBAA3B;AACA,UAAI2K,EAAE,GAAG,CAACt1B,MAAV;AACA,UAAI,CAACgM,MAAM,CAACrG,MAAP,CAAc8T,gBAAnB,EAAqC6b,EAAE,IAAItpB,MAAM,CAAC0E,SAAb;AACrC,UAAI6kB,EAAE,GAAG,CAAT;;AAEA,UAAI,CAACvpB,MAAM,CAACmG,YAAP,EAAL,EAA4B;AAC1BojB,QAAAA,EAAE,GAAGD,EAAL;AACAA,QAAAA,EAAE,GAAG,CAAL;AACD;;AAED,YAAMY,YAAY,GAAGlqB,MAAM,CAACrG,MAAP,CAAczR,UAAd,CAAyBC,SAAzB,GAAqCsQ,IAAI,CAACC,GAAL,CAAS,IAAID,IAAI,CAAC2a,GAAL,CAASsP,QAAQ,CAAC,CAAD,CAAR,CAAYxpB,QAArB,CAAb,EAA6C,CAA7C,CAArC,GAAuF,IAAIT,IAAI,CAACE,GAAL,CAASF,IAAI,CAACC,GAAL,CAASgqB,QAAQ,CAAC,CAAD,CAAR,CAAYxpB,QAArB,EAA+B,CAAC,CAAhC,CAAT,EAA6C,CAA7C,CAAhH;AACA,YAAM2a,SAAS,GAAG4R,oEAAY,CAAC9rB,MAAD,EAAS+oB,QAAT,CAA9B;AACA7O,MAAAA,SAAS,CAACtgB,GAAV,CAAc;AACZozB,QAAAA,OAAO,EAAEuD;AADG,OAAd,EAEG75B,SAFH,CAEc,eAAci5B,EAAG,OAAMC,EAAG,UAFxC;AAGD;AACF,GAxBD;;AA0BA,QAAMhW,aAAa,GAAG/iB,QAAQ,IAAI;AAChC,UAAM;AACJs1B,MAAAA;AADI,QAEF9lB,MAAM,CAACrG,MAAP,CAAczR,UAFlB;AAGA,UAAM2+B,mBAAmB,GAAGf,WAAW,GAAG9lB,MAAM,CAACuC,MAAP,CAAclL,IAAd,CAAmByuB,WAAnB,CAAH,GAAqC9lB,MAAM,CAACuC,MAAnF;AACAskB,IAAAA,mBAAmB,CAACt2B,UAApB,CAA+BC,QAA/B;AACAk1B,IAAAA,oFAA0B,CAAC;AACzB1lB,MAAAA,MADyB;AAEzBxP,MAAAA,QAFyB;AAGzBs1B,MAAAA,WAHyB;AAIzBgD,MAAAA,SAAS,EAAE;AAJc,KAAD,CAA1B;AAMD,GAZD;;AAcAtD,EAAAA,kEAAU,CAAC;AACTv9B,IAAAA,MAAM,EAAE,MADC;AAET+X,IAAAA,MAFS;AAGTtP,IAAAA,EAHS;AAIT6Z,IAAAA,YAJS;AAKTgJ,IAAAA,aALS;AAMTwT,IAAAA,eAAe,EAAE,OAAO;AACtBl/B,MAAAA,aAAa,EAAE,CADO;AAEtB6lB,MAAAA,cAAc,EAAE,CAFM;AAGtBuB,MAAAA,mBAAmB,EAAE,IAHC;AAItBnnB,MAAAA,YAAY,EAAE,CAJQ;AAKtB2lB,MAAAA,gBAAgB,EAAE,CAACzN,MAAM,CAACrG,MAAP,CAAckK;AALX,KAAP;AANR,GAAD,CAAV;AAcD;;;;;;;;;;;;;;;;;;ACrED;AACA;AACA;AACA;AACe,SAASsmB,UAAT,CAAoB;AACjCnqB,EAAAA,MADiC;AAEjC8F,EAAAA,YAFiC;AAGjCpV,EAAAA;AAHiC,CAApB,EAIZ;AACDoV,EAAAA,YAAY,CAAC;AACXskB,IAAAA,UAAU,EAAE;AACVvE,MAAAA,YAAY,EAAE,IADJ;AAEVwE,MAAAA,aAAa,EAAE,IAFL;AAGVvE,MAAAA,WAAW,EAAE;AAHH;AADD,GAAD,CAAZ;;AAQA,QAAMvb,YAAY,GAAG,MAAM;AACzB,UAAM;AACJhI,MAAAA,MADI;AAEJkI,MAAAA,YAAY,EAAErH;AAFV,QAGFpD,MAHJ;AAIA,UAAMrG,MAAM,GAAGqG,MAAM,CAACrG,MAAP,CAAcywB,UAA7B;;AAEA,SAAK,IAAIngC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsY,MAAM,CAACjY,MAA3B,EAAmCL,CAAC,IAAI,CAAxC,EAA2C;AACzC,YAAMy4B,QAAQ,GAAGngB,MAAM,CAAC/M,EAAP,CAAUvL,CAAV,CAAjB;AACA,UAAIiP,QAAQ,GAAGwpB,QAAQ,CAAC,CAAD,CAAR,CAAYxpB,QAA3B;;AAEA,UAAI8G,MAAM,CAACrG,MAAP,CAAcywB,UAAd,CAAyBC,aAA7B,EAA4C;AAC1CnxB,QAAAA,QAAQ,GAAGT,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAAS+pB,QAAQ,CAAC,CAAD,CAAR,CAAYxpB,QAArB,EAA+B,CAA/B,CAAT,EAA4C,CAAC,CAA7C,CAAX;AACD;;AAED,YAAMlF,MAAM,GAAG0uB,QAAQ,CAAC,CAAD,CAAR,CAAY/D,iBAA3B;AACA,YAAMwH,MAAM,GAAG,CAAC,GAAD,GAAOjtB,QAAtB;AACA,UAAIuuB,OAAO,GAAGtB,MAAd;AACA,UAAIuB,OAAO,GAAG,CAAd;AACA,UAAI4B,EAAE,GAAGtpB,MAAM,CAACrG,MAAP,CAAckK,OAAd,GAAwB,CAAC7P,MAAD,GAAUgM,MAAM,CAAC0E,SAAzC,GAAqD,CAAC1Q,MAA/D;AACA,UAAIu1B,EAAE,GAAG,CAAT;;AAEA,UAAI,CAACvpB,MAAM,CAACmG,YAAP,EAAL,EAA4B;AAC1BojB,QAAAA,EAAE,GAAGD,EAAL;AACAA,QAAAA,EAAE,GAAG,CAAL;AACA5B,QAAAA,OAAO,GAAG,CAACD,OAAX;AACAA,QAAAA,OAAO,GAAG,CAAV;AACD,OALD,MAKO,IAAIrkB,GAAJ,EAAS;AACdqkB,QAAAA,OAAO,GAAG,CAACA,OAAX;AACD;;AAED/E,MAAAA,QAAQ,CAAC,CAAD,CAAR,CAAYpyB,KAAZ,CAAkBs2B,MAAlB,GAA2B,CAACnuB,IAAI,CAAC2a,GAAL,CAAS3a,IAAI,CAACgoB,KAAL,CAAWvnB,QAAX,CAAT,CAAD,GAAkCqJ,MAAM,CAACjY,MAApE;;AAEA,UAAIqP,MAAM,CAACksB,YAAX,EAAyB;AACvB;AACA,YAAI4D,YAAY,GAAGzpB,MAAM,CAACmG,YAAP,KAAwBuc,QAAQ,CAACrrB,IAAT,CAAc,2BAAd,CAAxB,GAAqEqrB,QAAQ,CAACrrB,IAAT,CAAc,0BAAd,CAAxF;AACA,YAAIqyB,WAAW,GAAG1pB,MAAM,CAACmG,YAAP,KAAwBuc,QAAQ,CAACrrB,IAAT,CAAc,4BAAd,CAAxB,GAAsEqrB,QAAQ,CAACrrB,IAAT,CAAc,6BAAd,CAAxF;;AAEA,YAAIoyB,YAAY,CAACn/B,MAAb,KAAwB,CAA5B,EAA+B;AAC7Bm/B,UAAAA,YAAY,GAAGlE,oEAAY,CAAC5rB,MAAD,EAAS+oB,QAAT,EAAmB1iB,MAAM,CAACmG,YAAP,KAAwB,MAAxB,GAAiC,KAApD,CAA3B;AACD;;AAED,YAAIujB,WAAW,CAACp/B,MAAZ,KAAuB,CAA3B,EAA8B;AAC5Bo/B,UAAAA,WAAW,GAAGnE,oEAAY,CAAC5rB,MAAD,EAAS+oB,QAAT,EAAmB1iB,MAAM,CAACmG,YAAP,KAAwB,OAAxB,GAAkC,QAArD,CAA1B;AACD;;AAED,YAAIsjB,YAAY,CAACn/B,MAAjB,EAAyBm/B,YAAY,CAAC,CAAD,CAAZ,CAAgBn5B,KAAhB,CAAsBq2B,OAAtB,GAAgCluB,IAAI,CAACC,GAAL,CAAS,CAACQ,QAAV,EAAoB,CAApB,CAAhC;AACzB,YAAIwwB,WAAW,CAACp/B,MAAhB,EAAwBo/B,WAAW,CAAC,CAAD,CAAX,CAAep5B,KAAf,CAAqBq2B,OAArB,GAA+BluB,IAAI,CAACC,GAAL,CAASQ,QAAT,EAAmB,CAAnB,CAA/B;AACzB;;AAED,YAAM7I,SAAS,GAAI,eAAci5B,EAAG,OAAMC,EAAG,oBAAmB7B,OAAQ,gBAAeD,OAAQ,MAA/F;AACA,YAAM5T,SAAS,GAAG4R,oEAAY,CAAC9rB,MAAD,EAAS+oB,QAAT,CAA9B;AACA7O,MAAAA,SAAS,CAACxjB,SAAV,CAAoBA,SAApB;AACD;AACF,GAtDD;;AAwDA,QAAMkjB,aAAa,GAAG/iB,QAAQ,IAAI;AAChC,UAAM;AACJs1B,MAAAA;AADI,QAEF9lB,MAAM,CAACrG,MAAP,CAAcywB,UAFlB;AAGA,UAAMvD,mBAAmB,GAAGf,WAAW,GAAG9lB,MAAM,CAACuC,MAAP,CAAclL,IAAd,CAAmByuB,WAAnB,CAAH,GAAqC9lB,MAAM,CAACuC,MAAnF;AACAskB,IAAAA,mBAAmB,CAACt2B,UAApB,CAA+BC,QAA/B,EAAyC6G,IAAzC,CAA8C,8GAA9C,EAA8J9G,UAA9J,CAAyKC,QAAzK;AACAk1B,IAAAA,oFAA0B,CAAC;AACzB1lB,MAAAA,MADyB;AAEzBxP,MAAAA,QAFyB;AAGzBs1B,MAAAA;AAHyB,KAAD,CAA1B;AAKD,GAXD;;AAaAN,EAAAA,kEAAU,CAAC;AACTv9B,IAAAA,MAAM,EAAE,MADC;AAET+X,IAAAA,MAFS;AAGTtP,IAAAA,EAHS;AAIT6Z,IAAAA,YAJS;AAKTgJ,IAAAA,aALS;AAMTuT,IAAAA,WAAW,EAAE,MAAM,IANV;AAOTC,IAAAA,eAAe,EAAE,OAAO;AACtBl/B,MAAAA,aAAa,EAAE,CADO;AAEtB6lB,MAAAA,cAAc,EAAE,CAFM;AAGtBuB,MAAAA,mBAAmB,EAAE,IAHC;AAItBnnB,MAAAA,YAAY,EAAE,CAJQ;AAKtB2lB,MAAAA,gBAAgB,EAAE,CAACzN,MAAM,CAACrG,MAAP,CAAckK;AALX,KAAP;AAPR,GAAD,CAAV;AAeD;;;;;;;;;;;;;;;ACrGD;AACe,SAASJ,QAAT,CAAkB;AAC/BzD,EAAAA,MAD+B;AAE/B8F,EAAAA,YAF+B;AAG/BjE,EAAAA,IAH+B;AAI/BxP,EAAAA;AAJ+B,CAAlB,EAKZ;AACDyT,EAAAA,YAAY,CAAC;AACXrC,IAAAA,QAAQ,EAAE;AACR1C,MAAAA,OAAO,EAAE,KADD;AAERupB,MAAAA,QAAQ,EAAE,IAFF;AAGRC,MAAAA,aAAa,EAAE,CAHP;AAIRC,MAAAA,cAAc,EAAE,IAJR;AAKRC,MAAAA,mBAAmB,EAAE,CALb;AAMRC,MAAAA,qBAAqB,EAAE,CANf;AAORC,MAAAA,MAAM,EAAE,KAPA;AAQRC,MAAAA,eAAe,EAAE;AART;AADC,GAAD,CAAZ;;AAaA,WAASla,WAAT,GAAuB;AACrB,UAAM;AACJxJ,MAAAA,eAAe,EAAE9X,IADb;AAEJ+Y,MAAAA;AAFI,QAGFnI,MAHJ,CADqB,CAIT;;AAEZ,QAAI5Q,IAAI,CAAC0Y,UAAL,CAAgBxd,MAAhB,KAA2B,CAA/B,EAAkC;AAChC8E,MAAAA,IAAI,CAAC0Y,UAAL,CAAgB9b,IAAhB,CAAqB;AACnB6+B,QAAAA,QAAQ,EAAE1iB,OAAO,CAACnI,MAAM,CAACmG,YAAP,KAAwB,QAAxB,GAAmC,QAApC,CADE;AAEnBpN,QAAAA,IAAI,EAAE3J,IAAI,CAACkY;AAFQ,OAArB;AAID;;AAEDlY,IAAAA,IAAI,CAAC0Y,UAAL,CAAgB9b,IAAhB,CAAqB;AACnB6+B,MAAAA,QAAQ,EAAE1iB,OAAO,CAACnI,MAAM,CAACmG,YAAP,KAAwB,UAAxB,GAAqC,UAAtC,CADE;AAEnBpN,MAAAA,IAAI,EAAEkL,qDAAG;AAFU,KAArB;AAID;;AAED,WAAS0M,UAAT,CAAoB;AAClBwB,IAAAA;AADkB,GAApB,EAEG;AACD,UAAM;AACJxY,MAAAA,MADI;AAEJ4R,MAAAA,UAFI;AAGJd,MAAAA,YAAY,EAAErH,GAHV;AAIJR,MAAAA,QAJI;AAKJsE,MAAAA,eAAe,EAAE9X;AALb,QAMF4Q,MANJ,CADC,CAOW;;AAEZ,UAAM+R,YAAY,GAAG9N,qDAAG,EAAxB;AACA,UAAM+N,QAAQ,GAAGD,YAAY,GAAG3iB,IAAI,CAACkY,cAArC;;AAEA,QAAI6K,UAAU,GAAG,CAACnS,MAAM,CAAC+I,YAAP,EAAlB,EAAyC;AACvC/I,MAAAA,MAAM,CAACiC,OAAP,CAAejC,MAAM,CAACG,WAAtB;AACA;AACD;;AAED,QAAIgS,UAAU,GAAG,CAACnS,MAAM,CAACgJ,YAAP,EAAlB,EAAyC;AACvC,UAAIhJ,MAAM,CAACuC,MAAP,CAAcjY,MAAd,GAAuBsY,QAAQ,CAACtY,MAApC,EAA4C;AAC1C0V,QAAAA,MAAM,CAACiC,OAAP,CAAeW,QAAQ,CAACtY,MAAT,GAAkB,CAAjC;AACD,OAFD,MAEO;AACL0V,QAAAA,MAAM,CAACiC,OAAP,CAAejC,MAAM,CAACuC,MAAP,CAAcjY,MAAd,GAAuB,CAAtC;AACD;;AAED;AACD;;AAED,QAAIqP,MAAM,CAAC8J,QAAP,CAAgB6mB,QAApB,EAA8B;AAC5B,UAAIl7B,IAAI,CAAC0Y,UAAL,CAAgBxd,MAAhB,GAAyB,CAA7B,EAAgC;AAC9B,cAAMwgC,aAAa,GAAG17B,IAAI,CAAC0Y,UAAL,CAAgBijB,GAAhB,EAAtB;AACA,cAAMC,aAAa,GAAG57B,IAAI,CAAC0Y,UAAL,CAAgBijB,GAAhB,EAAtB;AACA,cAAME,QAAQ,GAAGH,aAAa,CAACD,QAAd,GAAyBG,aAAa,CAACH,QAAxD;AACA,cAAM9xB,IAAI,GAAG+xB,aAAa,CAAC/xB,IAAd,GAAqBiyB,aAAa,CAACjyB,IAAhD;AACAiH,QAAAA,MAAM,CAACwG,QAAP,GAAkBykB,QAAQ,GAAGlyB,IAA7B;AACAiH,QAAAA,MAAM,CAACwG,QAAP,IAAmB,CAAnB;;AAEA,YAAI/N,IAAI,CAAC2a,GAAL,CAASpT,MAAM,CAACwG,QAAhB,IAA4B7M,MAAM,CAAC8J,QAAP,CAAgBmnB,eAAhD,EAAiE;AAC/D5qB,UAAAA,MAAM,CAACwG,QAAP,GAAkB,CAAlB;AACD,SAV6B,CAU5B;AACF;;;AAGA,YAAIzN,IAAI,GAAG,GAAP,IAAckL,qDAAG,KAAK6mB,aAAa,CAAC/xB,IAAtB,GAA6B,GAA/C,EAAoD;AAClDiH,UAAAA,MAAM,CAACwG,QAAP,GAAkB,CAAlB;AACD;AACF,OAjBD,MAiBO;AACLxG,QAAAA,MAAM,CAACwG,QAAP,GAAkB,CAAlB;AACD;;AAEDxG,MAAAA,MAAM,CAACwG,QAAP,IAAmB7M,MAAM,CAAC8J,QAAP,CAAgBinB,qBAAnC;AACAt7B,MAAAA,IAAI,CAAC0Y,UAAL,CAAgBxd,MAAhB,GAAyB,CAAzB;AACA,UAAI4gC,gBAAgB,GAAG,OAAOvxB,MAAM,CAAC8J,QAAP,CAAgB8mB,aAA9C;AACA,YAAMY,gBAAgB,GAAGnrB,MAAM,CAACwG,QAAP,GAAkB0kB,gBAA3C;AACA,UAAIE,WAAW,GAAGprB,MAAM,CAAC0E,SAAP,GAAmBymB,gBAArC;AACA,UAAI/nB,GAAJ,EAASgoB,WAAW,GAAG,CAACA,WAAf;AACT,UAAIC,QAAQ,GAAG,KAAf;AACA,UAAIC,mBAAJ;AACA,YAAMC,YAAY,GAAG9yB,IAAI,CAAC2a,GAAL,CAASpT,MAAM,CAACwG,QAAhB,IAA4B,EAA5B,GAAiC7M,MAAM,CAAC8J,QAAP,CAAgBgnB,mBAAtE;AACA,UAAIe,YAAJ;;AAEA,UAAIJ,WAAW,GAAGprB,MAAM,CAACgJ,YAAP,EAAlB,EAAyC;AACvC,YAAIrP,MAAM,CAAC8J,QAAP,CAAgB+mB,cAApB,EAAoC;AAClC,cAAIY,WAAW,GAAGprB,MAAM,CAACgJ,YAAP,EAAd,GAAsC,CAACuiB,YAA3C,EAAyD;AACvDH,YAAAA,WAAW,GAAGprB,MAAM,CAACgJ,YAAP,KAAwBuiB,YAAtC;AACD;;AAEDD,UAAAA,mBAAmB,GAAGtrB,MAAM,CAACgJ,YAAP,EAAtB;AACAqiB,UAAAA,QAAQ,GAAG,IAAX;AACAj8B,UAAAA,IAAI,CAAC2Y,mBAAL,GAA2B,IAA3B;AACD,SARD,MAQO;AACLqjB,UAAAA,WAAW,GAAGprB,MAAM,CAACgJ,YAAP,EAAd;AACD;;AAED,YAAIrP,MAAM,CAAC/R,IAAP,IAAe+R,MAAM,CAACmK,cAA1B,EAA0C0nB,YAAY,GAAG,IAAf;AAC3C,OAdD,MAcO,IAAIJ,WAAW,GAAGprB,MAAM,CAAC+I,YAAP,EAAlB,EAAyC;AAC9C,YAAIpP,MAAM,CAAC8J,QAAP,CAAgB+mB,cAApB,EAAoC;AAClC,cAAIY,WAAW,GAAGprB,MAAM,CAAC+I,YAAP,EAAd,GAAsCwiB,YAA1C,EAAwD;AACtDH,YAAAA,WAAW,GAAGprB,MAAM,CAAC+I,YAAP,KAAwBwiB,YAAtC;AACD;;AAEDD,UAAAA,mBAAmB,GAAGtrB,MAAM,CAAC+I,YAAP,EAAtB;AACAsiB,UAAAA,QAAQ,GAAG,IAAX;AACAj8B,UAAAA,IAAI,CAAC2Y,mBAAL,GAA2B,IAA3B;AACD,SARD,MAQO;AACLqjB,UAAAA,WAAW,GAAGprB,MAAM,CAAC+I,YAAP,EAAd;AACD;;AAED,YAAIpP,MAAM,CAAC/R,IAAP,IAAe+R,MAAM,CAACmK,cAA1B,EAA0C0nB,YAAY,GAAG,IAAf;AAC3C,OAdM,MAcA,IAAI7xB,MAAM,CAAC8J,QAAP,CAAgBknB,MAApB,EAA4B;AACjC,YAAIlM,SAAJ;;AAEA,aAAK,IAAIvuB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0S,QAAQ,CAACtY,MAA7B,EAAqC4F,CAAC,IAAI,CAA1C,EAA6C;AAC3C,cAAI0S,QAAQ,CAAC1S,CAAD,CAAR,GAAc,CAACk7B,WAAnB,EAAgC;AAC9B3M,YAAAA,SAAS,GAAGvuB,CAAZ;AACA;AACD;AACF;;AAED,YAAIuI,IAAI,CAAC2a,GAAL,CAASxQ,QAAQ,CAAC6b,SAAD,CAAR,GAAsB2M,WAA/B,IAA8C3yB,IAAI,CAAC2a,GAAL,CAASxQ,QAAQ,CAAC6b,SAAS,GAAG,CAAb,CAAR,GAA0B2M,WAAnC,CAA9C,IAAiGprB,MAAM,CAACkS,cAAP,KAA0B,MAA/H,EAAuI;AACrIkZ,UAAAA,WAAW,GAAGxoB,QAAQ,CAAC6b,SAAD,CAAtB;AACD,SAFD,MAEO;AACL2M,UAAAA,WAAW,GAAGxoB,QAAQ,CAAC6b,SAAS,GAAG,CAAb,CAAtB;AACD;;AAED2M,QAAAA,WAAW,GAAG,CAACA,WAAf;AACD;;AAED,UAAII,YAAJ,EAAkB;AAChBn5B,QAAAA,IAAI,CAAC,eAAD,EAAkB,MAAM;AAC1B2N,UAAAA,MAAM,CAACqT,OAAP;AACD,SAFG,CAAJ;AAGD,OApF2B,CAoF1B;;;AAGF,UAAIrT,MAAM,CAACwG,QAAP,KAAoB,CAAxB,EAA2B;AACzB,YAAIpD,GAAJ,EAAS;AACP8nB,UAAAA,gBAAgB,GAAGzyB,IAAI,CAAC2a,GAAL,CAAS,CAAC,CAACgY,WAAD,GAAeprB,MAAM,CAAC0E,SAAvB,IAAoC1E,MAAM,CAACwG,QAApD,CAAnB;AACD,SAFD,MAEO;AACL0kB,UAAAA,gBAAgB,GAAGzyB,IAAI,CAAC2a,GAAL,CAAS,CAACgY,WAAW,GAAGprB,MAAM,CAAC0E,SAAtB,IAAmC1E,MAAM,CAACwG,QAAnD,CAAnB;AACD;;AAED,YAAI7M,MAAM,CAAC8J,QAAP,CAAgBknB,MAApB,EAA4B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAMc,YAAY,GAAGhzB,IAAI,CAAC2a,GAAL,CAAS,CAAChQ,GAAG,GAAG,CAACgoB,WAAJ,GAAkBA,WAAtB,IAAqCprB,MAAM,CAAC0E,SAArD,CAArB;AACA,gBAAMgnB,gBAAgB,GAAG1rB,MAAM,CAAC0C,eAAP,CAAuB1C,MAAM,CAACG,WAA9B,CAAzB;;AAEA,cAAIsrB,YAAY,GAAGC,gBAAnB,EAAqC;AACnCR,YAAAA,gBAAgB,GAAGvxB,MAAM,CAAC3R,KAA1B;AACD,WAFD,MAEO,IAAIyjC,YAAY,GAAG,IAAIC,gBAAvB,EAAyC;AAC9CR,YAAAA,gBAAgB,GAAGvxB,MAAM,CAAC3R,KAAP,GAAe,GAAlC;AACD,WAFM,MAEA;AACLkjC,YAAAA,gBAAgB,GAAGvxB,MAAM,CAAC3R,KAAP,GAAe,GAAlC;AACD;AACF;AACF,OA1BD,MA0BO,IAAI2R,MAAM,CAAC8J,QAAP,CAAgBknB,MAApB,EAA4B;AACjC3qB,QAAAA,MAAM,CAAC8X,cAAP;AACA;AACD;;AAED,UAAIne,MAAM,CAAC8J,QAAP,CAAgB+mB,cAAhB,IAAkCa,QAAtC,EAAgD;AAC9CrrB,QAAAA,MAAM,CAACsK,cAAP,CAAsBghB,mBAAtB;AACAtrB,QAAAA,MAAM,CAACuT,aAAP,CAAqB2X,gBAArB;AACAlrB,QAAAA,MAAM,CAACuK,YAAP,CAAoB6gB,WAApB;AACAprB,QAAAA,MAAM,CAACuZ,eAAP,CAAuB,IAAvB,EAA6BvZ,MAAM,CAACkS,cAApC;AACAlS,QAAAA,MAAM,CAACnG,SAAP,GAAmB,IAAnB;AACA0R,QAAAA,UAAU,CAACrY,aAAX,CAAyB,MAAM;AAC7B,cAAI,CAAC8M,MAAD,IAAWA,MAAM,CAACoK,SAAlB,IAA+B,CAAChb,IAAI,CAAC2Y,mBAAzC,EAA8D;AAC9DlG,UAAAA,IAAI,CAAC,gBAAD,CAAJ;AACA7B,UAAAA,MAAM,CAACuT,aAAP,CAAqB5Z,MAAM,CAAC3R,KAA5B;AACA4W,UAAAA,UAAU,CAAC,MAAM;AACfoB,YAAAA,MAAM,CAACuK,YAAP,CAAoB+gB,mBAApB;AACA/f,YAAAA,UAAU,CAACrY,aAAX,CAAyB,MAAM;AAC7B,kBAAI,CAAC8M,MAAD,IAAWA,MAAM,CAACoK,SAAtB,EAAiC;AACjCpK,cAAAA,MAAM,CAAC9M,aAAP;AACD,aAHD;AAID,WANS,EAMP,CANO,CAAV;AAOD,SAXD;AAYD,OAlBD,MAkBO,IAAI8M,MAAM,CAACwG,QAAX,EAAqB;AAC1B3E,QAAAA,IAAI,CAAC,4BAAD,CAAJ;AACA7B,QAAAA,MAAM,CAACsK,cAAP,CAAsB8gB,WAAtB;AACAprB,QAAAA,MAAM,CAACuT,aAAP,CAAqB2X,gBAArB;AACAlrB,QAAAA,MAAM,CAACuK,YAAP,CAAoB6gB,WAApB;AACAprB,QAAAA,MAAM,CAACuZ,eAAP,CAAuB,IAAvB,EAA6BvZ,MAAM,CAACkS,cAApC;;AAEA,YAAI,CAAClS,MAAM,CAACnG,SAAZ,EAAuB;AACrBmG,UAAAA,MAAM,CAACnG,SAAP,GAAmB,IAAnB;AACA0R,UAAAA,UAAU,CAACrY,aAAX,CAAyB,MAAM;AAC7B,gBAAI,CAAC8M,MAAD,IAAWA,MAAM,CAACoK,SAAtB,EAAiC;AACjCpK,YAAAA,MAAM,CAAC9M,aAAP;AACD,WAHD;AAID;AACF,OAdM,MAcA;AACL8M,QAAAA,MAAM,CAACsK,cAAP,CAAsB8gB,WAAtB;AACD;;AAEDprB,MAAAA,MAAM,CAACkJ,iBAAP;AACAlJ,MAAAA,MAAM,CAACmJ,mBAAP;AACD,KA5JD,MA4JO,IAAIxP,MAAM,CAAC8J,QAAP,CAAgBknB,MAApB,EAA4B;AACjC3qB,MAAAA,MAAM,CAAC8X,cAAP;AACA;AACD,KAHM,MAGA,IAAIne,MAAM,CAAC8J,QAAX,EAAqB;AAC1B5B,MAAAA,IAAI,CAAC,4BAAD,CAAJ;AACD;;AAED,QAAI,CAAClI,MAAM,CAAC8J,QAAP,CAAgB6mB,QAAjB,IAA6BtY,QAAQ,IAAIrY,MAAM,CAAC4U,YAApD,EAAkE;AAChEvO,MAAAA,MAAM,CAACsK,cAAP;AACAtK,MAAAA,MAAM,CAACkJ,iBAAP;AACAlJ,MAAAA,MAAM,CAACmJ,mBAAP;AACD;AACF;;AAED/d,EAAAA,MAAM,CAACsO,MAAP,CAAcsG,MAAd,EAAsB;AACpByD,IAAAA,QAAQ,EAAE;AACRiN,MAAAA,WADQ;AAERC,MAAAA;AAFQ;AADU,GAAtB;AAMD;;;;;;;;;;;;;;ACpPc,SAASgb,IAAT,CAAc;AAC3B3rB,EAAAA,MAD2B;AAE3B8F,EAAAA;AAF2B,CAAd,EAGZ;AACDA,EAAAA,YAAY,CAAC;AACX7F,IAAAA,IAAI,EAAE;AACJC,MAAAA,IAAI,EAAE,CADF;AAEJgB,MAAAA,IAAI,EAAE;AAFF;AADK,GAAD,CAAZ;AAMA,MAAI0qB,sBAAJ;AACA,MAAIC,YAAJ;AACA,MAAIC,cAAJ;;AAEA,QAAM3O,UAAU,GAAGb,YAAY,IAAI;AACjC,UAAM;AACJz0B,MAAAA;AADI,QAEFmY,MAAM,CAACrG,MAFX;AAGA,UAAM;AACJuG,MAAAA,IADI;AAEJgB,MAAAA;AAFI,QAGFlB,MAAM,CAACrG,MAAP,CAAcsG,IAHlB;AAIA4rB,IAAAA,YAAY,GAAGD,sBAAsB,GAAG1rB,IAAxC;AACA4rB,IAAAA,cAAc,GAAGrzB,IAAI,CAAC2f,KAAL,CAAWkE,YAAY,GAAGpc,IAA1B,CAAjB;;AAEA,QAAIzH,IAAI,CAAC2f,KAAL,CAAWkE,YAAY,GAAGpc,IAA1B,MAAoCoc,YAAY,GAAGpc,IAAvD,EAA6D;AAC3D0rB,MAAAA,sBAAsB,GAAGtP,YAAzB;AACD,KAFD,MAEO;AACLsP,MAAAA,sBAAsB,GAAGnzB,IAAI,CAAC6c,IAAL,CAAUgH,YAAY,GAAGpc,IAAzB,IAAiCA,IAA1D;AACD;;AAED,QAAIrY,aAAa,KAAK,MAAlB,IAA4BqZ,IAAI,KAAK,KAAzC,EAAgD;AAC9C0qB,MAAAA,sBAAsB,GAAGnzB,IAAI,CAACC,GAAL,CAASkzB,sBAAT,EAAiC/jC,aAAa,GAAGqY,IAAjD,CAAzB;AACD;AACF,GApBD;;AAsBA,QAAMmd,WAAW,GAAG,CAACpzB,CAAD,EAAI0a,KAAJ,EAAW2X,YAAX,EAAyBN,iBAAzB,KAA+C;AACjE,UAAM;AACJtO,MAAAA,cADI;AAEJ5lB,MAAAA;AAFI,QAGFkY,MAAM,CAACrG,MAHX;AAIA,UAAM;AACJuG,MAAAA,IADI;AAEJgB,MAAAA;AAFI,QAGFlB,MAAM,CAACrG,MAAP,CAAcsG,IAHlB,CALiE,CAQzC;;AAExB,QAAI8rB,kBAAJ;AACA,QAAIC,MAAJ;AACA,QAAIC,GAAJ;;AAEA,QAAI/qB,IAAI,KAAK,KAAT,IAAkBwM,cAAc,GAAG,CAAvC,EAA0C;AACxC,YAAMwe,UAAU,GAAGzzB,IAAI,CAAC2f,KAAL,CAAWnuB,CAAC,IAAIyjB,cAAc,GAAGxN,IAArB,CAAZ,CAAnB;AACA,YAAMisB,iBAAiB,GAAGliC,CAAC,GAAGiW,IAAI,GAAGwN,cAAP,GAAwBwe,UAAtD;AACA,YAAME,cAAc,GAAGF,UAAU,KAAK,CAAf,GAAmBxe,cAAnB,GAAoCjV,IAAI,CAACE,GAAL,CAASF,IAAI,CAAC6c,IAAL,CAAU,CAACgH,YAAY,GAAG4P,UAAU,GAAGhsB,IAAb,GAAoBwN,cAApC,IAAsDxN,IAAhE,CAAT,EAAgFwN,cAAhF,CAA3D;AACAue,MAAAA,GAAG,GAAGxzB,IAAI,CAAC2f,KAAL,CAAW+T,iBAAiB,GAAGC,cAA/B,CAAN;AACAJ,MAAAA,MAAM,GAAGG,iBAAiB,GAAGF,GAAG,GAAGG,cAA1B,GAA2CF,UAAU,GAAGxe,cAAjE;AACAqe,MAAAA,kBAAkB,GAAGC,MAAM,GAAGC,GAAG,GAAGL,sBAAN,GAA+B1rB,IAA7D;AACAyE,MAAAA,KAAK,CAACpR,GAAN,CAAU;AACR,yBAAiBw4B,kBADT;AAERM,QAAAA,KAAK,EAAEN;AAFC,OAAV;AAID,KAXD,MAWO,IAAI7qB,IAAI,KAAK,QAAb,EAAuB;AAC5B8qB,MAAAA,MAAM,GAAGvzB,IAAI,CAAC2f,KAAL,CAAWnuB,CAAC,GAAGiW,IAAf,CAAT;AACA+rB,MAAAA,GAAG,GAAGhiC,CAAC,GAAG+hC,MAAM,GAAG9rB,IAAnB;;AAEA,UAAI8rB,MAAM,GAAGF,cAAT,IAA2BE,MAAM,KAAKF,cAAX,IAA6BG,GAAG,KAAK/rB,IAAI,GAAG,CAA3E,EAA8E;AAC5E+rB,QAAAA,GAAG,IAAI,CAAP;;AAEA,YAAIA,GAAG,IAAI/rB,IAAX,EAAiB;AACf+rB,UAAAA,GAAG,GAAG,CAAN;AACAD,UAAAA,MAAM,IAAI,CAAV;AACD;AACF;AACF,KAZM,MAYA;AACLC,MAAAA,GAAG,GAAGxzB,IAAI,CAAC2f,KAAL,CAAWnuB,CAAC,GAAG4hC,YAAf,CAAN;AACAG,MAAAA,MAAM,GAAG/hC,CAAC,GAAGgiC,GAAG,GAAGJ,YAAnB;AACD;;AAEDlnB,IAAAA,KAAK,CAACpR,GAAN,CAAUyoB,iBAAiB,CAAC,YAAD,CAA3B,EAA2CiQ,GAAG,KAAK,CAAR,GAAYnkC,YAAY,IAAK,GAAEA,YAAa,IAA5C,GAAkD,EAA7F;AACD,GA3CD;;AA6CA,QAAM+1B,iBAAiB,GAAG,CAAC7T,SAAD,EAAYpH,QAAZ,EAAsBoZ,iBAAtB,KAA4C;AACpE,UAAM;AACJl0B,MAAAA,YADI;AAEJgc,MAAAA,cAFI;AAGJmK,MAAAA;AAHI,QAIFjO,MAAM,CAACrG,MAJX;AAKA,UAAM;AACJuG,MAAAA;AADI,QAEFF,MAAM,CAACrG,MAAP,CAAcsG,IAFlB;AAGAD,IAAAA,MAAM,CAAC6c,WAAP,GAAqB,CAAC7S,SAAS,GAAGliB,YAAb,IAA6B8jC,sBAAlD;AACA5rB,IAAAA,MAAM,CAAC6c,WAAP,GAAqBpkB,IAAI,CAAC6c,IAAL,CAAUtV,MAAM,CAAC6c,WAAP,GAAqB3c,IAA/B,IAAuCpY,YAA5D;AACAkY,IAAAA,MAAM,CAACuL,UAAP,CAAkBhY,GAAlB,CAAsB;AACpB,OAACyoB,iBAAiB,CAAC,OAAD,CAAlB,GAA+B,GAAEhc,MAAM,CAAC6c,WAAP,GAAqB/0B,YAAa;AAD/C,KAAtB;;AAIA,QAAIgc,cAAJ,EAAoB;AAClBlB,MAAAA,QAAQ,CAACzQ,MAAT,CAAgB,CAAhB,EAAmByQ,QAAQ,CAACtY,MAA5B;AACA,YAAMwzB,aAAa,GAAG,EAAtB;;AAEA,WAAK,IAAI7zB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2Y,QAAQ,CAACtY,MAA7B,EAAqCL,CAAC,IAAI,CAA1C,EAA6C;AAC3C,YAAI8zB,cAAc,GAAGnb,QAAQ,CAAC3Y,CAAD,CAA7B;AACA,YAAIgkB,YAAJ,EAAkB8P,cAAc,GAAGtlB,IAAI,CAAC2f,KAAL,CAAW2F,cAAX,CAAjB;AAClB,YAAInb,QAAQ,CAAC3Y,CAAD,CAAR,GAAc+V,MAAM,CAAC6c,WAAP,GAAqBja,QAAQ,CAAC,CAAD,CAA/C,EAAoDkb,aAAa,CAAC9xB,IAAd,CAAmB+xB,cAAnB;AACrD;;AAEDnb,MAAAA,QAAQ,CAAC5W,IAAT,CAAc,GAAG8xB,aAAjB;AACD;AACF,GA3BD;;AA6BA9d,EAAAA,MAAM,CAACC,IAAP,GAAc;AACZkd,IAAAA,UADY;AAEZE,IAAAA,WAFY;AAGZQ,IAAAA;AAHY,GAAd;AAKD;;;;;;;;;;;;;;;;ACnHD;AACA;AACe,SAASyO,cAAT,CAAwB;AACrCtsB,EAAAA,MADqC;AAErC8F,EAAAA,YAFqC;AAGrCjE,EAAAA,IAHqC;AAIrCnR,EAAAA;AAJqC,CAAxB,EAKZ;AACD,MAAI0P,WAAW,GAAG,KAAlB;AACA,QAAMzX,QAAQ,GAAGoC,uDAAW,EAA5B;AACA,QAAMlC,MAAM,GAAGiC,qDAAS,EAAxB;AACAgb,EAAAA,YAAY,CAAC;AACXymB,IAAAA,cAAc,EAAE;AACdxrB,MAAAA,OAAO,EAAE,KADK;AAEdzC,MAAAA,YAAY,EAAE,KAFA;AAGdkuB,MAAAA,UAAU,EAAE;AAHE;AADL,GAAD,CAAZ;;AAQA,QAAMC,YAAY,GAAG,MAAM;AACzB5qB,IAAAA,IAAI,CAAC,YAAD,CAAJ;AACA,UAAM6qB,OAAO,GAAG/jC,QAAQ,CAAC6U,QAAT,CAAkBC,IAAlB,CAAuB7Q,OAAvB,CAA+B,GAA/B,EAAoC,EAApC,CAAhB;AACA,UAAM+/B,eAAe,GAAG3sB,MAAM,CAACuC,MAAP,CAAc/M,EAAd,CAAiBwK,MAAM,CAACG,WAAxB,EAAqC3R,IAArC,CAA0C,WAA1C,CAAxB;;AAEA,QAAIk+B,OAAO,KAAKC,eAAhB,EAAiC;AAC/B,YAAMlX,QAAQ,GAAGzV,MAAM,CAACuL,UAAP,CAAkB/T,QAAlB,CAA4B,IAAGwI,MAAM,CAACrG,MAAP,CAAc6P,UAAW,eAAckjB,OAAQ,IAA9E,EAAmF53B,KAAnF,EAAjB;AACA,UAAI,OAAO2gB,QAAP,KAAoB,WAAxB,EAAqC;AACrCzV,MAAAA,MAAM,CAACiC,OAAP,CAAewT,QAAf;AACD;AACF,GAVD;;AAYA,QAAMmX,OAAO,GAAG,MAAM;AACpB,QAAI,CAACxsB,WAAD,IAAgB,CAACJ,MAAM,CAACrG,MAAP,CAAc4yB,cAAd,CAA6BxrB,OAAlD,EAA2D;;AAE3D,QAAIf,MAAM,CAACrG,MAAP,CAAc4yB,cAAd,CAA6BjuB,YAA7B,IAA6CzV,MAAM,CAACwV,OAApD,IAA+DxV,MAAM,CAACwV,OAAP,CAAeC,YAAlF,EAAgG;AAC9FzV,MAAAA,MAAM,CAACwV,OAAP,CAAeC,YAAf,CAA4B,IAA5B,EAAkC,IAAlC,EAAyC,IAAG0B,MAAM,CAACuC,MAAP,CAAc/M,EAAd,CAAiBwK,MAAM,CAACG,WAAxB,EAAqC3R,IAArC,CAA0C,WAA1C,CAAuD,EAA3D,IAAgE,EAAxG;AACAqT,MAAAA,IAAI,CAAC,SAAD,CAAJ;AACD,KAHD,MAGO;AACL,YAAM8C,KAAK,GAAG3E,MAAM,CAACuC,MAAP,CAAc/M,EAAd,CAAiBwK,MAAM,CAACG,WAAxB,CAAd;AACA,YAAM1C,IAAI,GAAGkH,KAAK,CAACnW,IAAN,CAAW,WAAX,KAA2BmW,KAAK,CAACnW,IAAN,CAAW,cAAX,CAAxC;AACA7F,MAAAA,QAAQ,CAAC6U,QAAT,CAAkBC,IAAlB,GAAyBA,IAAI,IAAI,EAAjC;AACAoE,MAAAA,IAAI,CAAC,SAAD,CAAJ;AACD;AACF,GAZD;;AAcA,QAAM8G,IAAI,GAAG,MAAM;AACjB,QAAI,CAAC3I,MAAM,CAACrG,MAAP,CAAc4yB,cAAd,CAA6BxrB,OAA9B,IAAyCf,MAAM,CAACrG,MAAP,CAAc0E,OAAd,IAAyB2B,MAAM,CAACrG,MAAP,CAAc0E,OAAd,CAAsB0C,OAA5F,EAAqG;AACrGX,IAAAA,WAAW,GAAG,IAAd;AACA,UAAM3C,IAAI,GAAG9U,QAAQ,CAAC6U,QAAT,CAAkBC,IAAlB,CAAuB7Q,OAAvB,CAA+B,GAA/B,EAAoC,EAApC,CAAb;;AAEA,QAAI6Q,IAAJ,EAAU;AACR,YAAMzV,KAAK,GAAG,CAAd;;AAEA,WAAK,IAAIiC,CAAC,GAAG,CAAR,EAAWK,MAAM,GAAG0V,MAAM,CAACuC,MAAP,CAAcjY,MAAvC,EAA+CL,CAAC,GAAGK,MAAnD,EAA2DL,CAAC,IAAI,CAAhE,EAAmE;AACjE,cAAM0a,KAAK,GAAG3E,MAAM,CAACuC,MAAP,CAAc/M,EAAd,CAAiBvL,CAAjB,CAAd;AACA,cAAM4iC,SAAS,GAAGloB,KAAK,CAACnW,IAAN,CAAW,WAAX,KAA2BmW,KAAK,CAACnW,IAAN,CAAW,cAAX,CAA7C;;AAEA,YAAIq+B,SAAS,KAAKpvB,IAAd,IAAsB,CAACkH,KAAK,CAACpW,QAAN,CAAeyR,MAAM,CAACrG,MAAP,CAAcqW,mBAA7B,CAA3B,EAA8E;AAC5E,gBAAMlb,KAAK,GAAG6P,KAAK,CAAC7P,KAAN,EAAd;AACAkL,UAAAA,MAAM,CAACiC,OAAP,CAAenN,KAAf,EAAsB9M,KAAtB,EAA6BgY,MAAM,CAACrG,MAAP,CAAcoS,kBAA3C,EAA+D,IAA/D;AACD;AACF;AACF;;AAED,QAAI/L,MAAM,CAACrG,MAAP,CAAc4yB,cAAd,CAA6BC,UAAjC,EAA6C;AAC3Cp/B,MAAAA,0DAAC,CAACvE,MAAD,CAAD,CAAU6H,EAAV,CAAa,YAAb,EAA2B+7B,YAA3B;AACD;AACF,GAtBD;;AAwBA,QAAMxgB,OAAO,GAAG,MAAM;AACpB,QAAIjM,MAAM,CAACrG,MAAP,CAAc4yB,cAAd,CAA6BC,UAAjC,EAA6C;AAC3Cp/B,MAAAA,0DAAC,CAACvE,MAAD,CAAD,CAAUkJ,GAAV,CAAc,YAAd,EAA4B06B,YAA5B;AACD;AACF,GAJD;;AAMA/7B,EAAAA,EAAE,CAAC,MAAD,EAAS,MAAM;AACf,QAAIsP,MAAM,CAACrG,MAAP,CAAc4yB,cAAd,CAA6BxrB,OAAjC,EAA0C;AACxC4H,MAAAA,IAAI;AACL;AACF,GAJC,CAAF;AAKAjY,EAAAA,EAAE,CAAC,SAAD,EAAY,MAAM;AAClB,QAAIsP,MAAM,CAACrG,MAAP,CAAc4yB,cAAd,CAA6BxrB,OAAjC,EAA0C;AACxCkL,MAAAA,OAAO;AACR;AACF,GAJC,CAAF;AAKAvb,EAAAA,EAAE,CAAC,0CAAD,EAA6C,MAAM;AACnD,QAAI0P,WAAJ,EAAiB;AACfwsB,MAAAA,OAAO;AACR;AACF,GAJC,CAAF;AAKAl8B,EAAAA,EAAE,CAAC,aAAD,EAAgB,MAAM;AACtB,QAAI0P,WAAW,IAAIJ,MAAM,CAACrG,MAAP,CAAckK,OAAjC,EAA0C;AACxC+oB,MAAAA,OAAO;AACR;AACF,GAJC,CAAF;AAKD;;;;;;;;;;;;;;;AC/FD;AACe,SAASE,OAAT,CAAiB;AAC9B9sB,EAAAA,MAD8B;AAE9B8F,EAAAA,YAF8B;AAG9BpV,EAAAA;AAH8B,CAAjB,EAIZ;AACDoV,EAAAA,YAAY,CAAC;AACXzH,IAAAA,OAAO,EAAE;AACP0C,MAAAA,OAAO,EAAE,KADF;AAEPgsB,MAAAA,IAAI,EAAE,EAFC;AAGPzuB,MAAAA,YAAY,EAAE,KAHP;AAIPjP,MAAAA,GAAG,EAAE;AAJE;AADE,GAAD,CAAZ;AAQA,MAAI+Q,WAAW,GAAG,KAAlB;AACA,MAAI4sB,KAAK,GAAG,EAAZ;;AAEA,QAAMC,OAAO,GAAGj4B,IAAI,IAAI;AACtB,WAAOA,IAAI,CAACkQ,QAAL,GAAgBtY,OAAhB,CAAwB,MAAxB,EAAgC,GAAhC,EAAqCA,OAArC,CAA6C,UAA7C,EAAyD,EAAzD,EAA6DA,OAA7D,CAAqE,MAArE,EAA6E,GAA7E,EAAkFA,OAAlF,CAA0F,KAA1F,EAAiG,EAAjG,EAAqGA,OAArG,CAA6G,KAA7G,EAAoH,EAApH,CAAP;AACD,GAFD;;AAIA,QAAMsgC,aAAa,GAAGC,WAAW,IAAI;AACnC,UAAMtkC,MAAM,GAAGiC,qDAAS,EAAxB;AACA,QAAI0S,QAAJ;;AAEA,QAAI2vB,WAAJ,EAAiB;AACf3vB,MAAAA,QAAQ,GAAG,IAAI4vB,GAAJ,CAAQD,WAAR,CAAX;AACD,KAFD,MAEO;AACL3vB,MAAAA,QAAQ,GAAG3U,MAAM,CAAC2U,QAAlB;AACD;;AAED,UAAM6vB,SAAS,GAAG7vB,QAAQ,CAACM,QAAT,CAAkBqH,KAAlB,CAAwB,CAAxB,EAA2BhX,KAA3B,CAAiC,GAAjC,EAAsC/B,MAAtC,CAA6CkhC,IAAI,IAAIA,IAAI,KAAK,EAA9D,CAAlB;AACA,UAAMC,KAAK,GAAGF,SAAS,CAAC/iC,MAAxB;AACA,UAAM+E,GAAG,GAAGg+B,SAAS,CAACE,KAAK,GAAG,CAAT,CAArB;AACA,UAAMpjC,KAAK,GAAGkjC,SAAS,CAACE,KAAK,GAAG,CAAT,CAAvB;AACA,WAAO;AACLl+B,MAAAA,GADK;AAELlF,MAAAA;AAFK,KAAP;AAID,GAlBD;;AAoBA,QAAMqjC,UAAU,GAAG,CAACn+B,GAAD,EAAMyF,KAAN,KAAgB;AACjC,UAAMjM,MAAM,GAAGiC,qDAAS,EAAxB;AACA,QAAI,CAACsV,WAAD,IAAgB,CAACJ,MAAM,CAACrG,MAAP,CAAc0E,OAAd,CAAsB0C,OAA3C,EAAoD;AACpD,QAAIvD,QAAJ;;AAEA,QAAIwC,MAAM,CAACrG,MAAP,CAAc0T,GAAlB,EAAuB;AACrB7P,MAAAA,QAAQ,GAAG,IAAI4vB,GAAJ,CAAQptB,MAAM,CAACrG,MAAP,CAAc0T,GAAtB,CAAX;AACD,KAFD,MAEO;AACL7P,MAAAA,QAAQ,GAAG3U,MAAM,CAAC2U,QAAlB;AACD;;AAED,UAAMmH,KAAK,GAAG3E,MAAM,CAACuC,MAAP,CAAc/M,EAAd,CAAiBV,KAAjB,CAAd;AACA,QAAI3K,KAAK,GAAG8iC,OAAO,CAACtoB,KAAK,CAACnW,IAAN,CAAW,cAAX,CAAD,CAAnB;;AAEA,QAAIwR,MAAM,CAACrG,MAAP,CAAc0E,OAAd,CAAsB0uB,IAAtB,CAA2BziC,MAA3B,GAAoC,CAAxC,EAA2C;AACzC,UAAIyiC,IAAI,GAAG/sB,MAAM,CAACrG,MAAP,CAAc0E,OAAd,CAAsB0uB,IAAjC;AACA,UAAIA,IAAI,CAACA,IAAI,CAACziC,MAAL,GAAc,CAAf,CAAJ,KAA0B,GAA9B,EAAmCyiC,IAAI,GAAGA,IAAI,CAAC5nB,KAAL,CAAW,CAAX,EAAc4nB,IAAI,CAACziC,MAAL,GAAc,CAA5B,CAAP;AACnCH,MAAAA,KAAK,GAAI,GAAE4iC,IAAK,IAAG19B,GAAI,IAAGlF,KAAM,EAAhC;AACD,KAJD,MAIO,IAAI,CAACqT,QAAQ,CAACM,QAAT,CAAkB2vB,QAAlB,CAA2Bp+B,GAA3B,CAAL,EAAsC;AAC3ClF,MAAAA,KAAK,GAAI,GAAEkF,GAAI,IAAGlF,KAAM,EAAxB;AACD;;AAED,UAAMujC,YAAY,GAAG7kC,MAAM,CAACwV,OAAP,CAAesvB,KAApC;;AAEA,QAAID,YAAY,IAAIA,YAAY,CAACvjC,KAAb,KAAuBA,KAA3C,EAAkD;AAChD;AACD;;AAED,QAAI6V,MAAM,CAACrG,MAAP,CAAc0E,OAAd,CAAsBC,YAA1B,EAAwC;AACtCzV,MAAAA,MAAM,CAACwV,OAAP,CAAeC,YAAf,CAA4B;AAC1BnU,QAAAA;AAD0B,OAA5B,EAEG,IAFH,EAESA,KAFT;AAGD,KAJD,MAIO;AACLtB,MAAAA,MAAM,CAACwV,OAAP,CAAeE,SAAf,CAAyB;AACvBpU,QAAAA;AADuB,OAAzB,EAEG,IAFH,EAESA,KAFT;AAGD;AACF,GArCD;;AAuCA,QAAMyjC,aAAa,GAAG,CAAC5lC,KAAD,EAAQmC,KAAR,EAAe4tB,YAAf,KAAgC;AACpD,QAAI5tB,KAAJ,EAAW;AACT,WAAK,IAAIF,CAAC,GAAG,CAAR,EAAWK,MAAM,GAAG0V,MAAM,CAACuC,MAAP,CAAcjY,MAAvC,EAA+CL,CAAC,GAAGK,MAAnD,EAA2DL,CAAC,IAAI,CAAhE,EAAmE;AACjE,cAAM0a,KAAK,GAAG3E,MAAM,CAACuC,MAAP,CAAc/M,EAAd,CAAiBvL,CAAjB,CAAd;AACA,cAAM4jC,YAAY,GAAGZ,OAAO,CAACtoB,KAAK,CAACnW,IAAN,CAAW,cAAX,CAAD,CAA5B;;AAEA,YAAIq/B,YAAY,KAAK1jC,KAAjB,IAA0B,CAACwa,KAAK,CAACpW,QAAN,CAAeyR,MAAM,CAACrG,MAAP,CAAcqW,mBAA7B,CAA/B,EAAkF;AAChF,gBAAMlb,KAAK,GAAG6P,KAAK,CAAC7P,KAAN,EAAd;AACAkL,UAAAA,MAAM,CAACiC,OAAP,CAAenN,KAAf,EAAsB9M,KAAtB,EAA6B+vB,YAA7B;AACD;AACF;AACF,KAVD,MAUO;AACL/X,MAAAA,MAAM,CAACiC,OAAP,CAAe,CAAf,EAAkBja,KAAlB,EAAyB+vB,YAAzB;AACD;AACF,GAdD;;AAgBA,QAAM+V,kBAAkB,GAAG,MAAM;AAC/Bd,IAAAA,KAAK,GAAGE,aAAa,CAACltB,MAAM,CAACrG,MAAP,CAAc0T,GAAf,CAArB;AACAugB,IAAAA,aAAa,CAAC5tB,MAAM,CAACrG,MAAP,CAAc3R,KAAf,EAAsBgY,MAAM,CAACgtB,KAAP,CAAa7iC,KAAnC,EAA0C,KAA1C,CAAb;AACD,GAHD;;AAKA,QAAMwe,IAAI,GAAG,MAAM;AACjB,UAAM9f,MAAM,GAAGiC,qDAAS,EAAxB;AACA,QAAI,CAACkV,MAAM,CAACrG,MAAP,CAAc0E,OAAnB,EAA4B;;AAE5B,QAAI,CAACxV,MAAM,CAACwV,OAAR,IAAmB,CAACxV,MAAM,CAACwV,OAAP,CAAeE,SAAvC,EAAkD;AAChDyB,MAAAA,MAAM,CAACrG,MAAP,CAAc0E,OAAd,CAAsB0C,OAAtB,GAAgC,KAAhC;AACAf,MAAAA,MAAM,CAACrG,MAAP,CAAc4yB,cAAd,CAA6BxrB,OAA7B,GAAuC,IAAvC;AACA;AACD;;AAEDX,IAAAA,WAAW,GAAG,IAAd;AACA4sB,IAAAA,KAAK,GAAGE,aAAa,CAACltB,MAAM,CAACrG,MAAP,CAAc0T,GAAf,CAArB;AACA,QAAI,CAAC2f,KAAK,CAAC39B,GAAP,IAAc,CAAC29B,KAAK,CAAC7iC,KAAzB,EAAgC;AAChCyjC,IAAAA,aAAa,CAAC,CAAD,EAAIZ,KAAK,CAAC7iC,KAAV,EAAiB6V,MAAM,CAACrG,MAAP,CAAcoS,kBAA/B,CAAb;;AAEA,QAAI,CAAC/L,MAAM,CAACrG,MAAP,CAAc0E,OAAd,CAAsBC,YAA3B,EAAyC;AACvCzV,MAAAA,MAAM,CAACC,gBAAP,CAAwB,UAAxB,EAAoCglC,kBAApC;AACD;AACF,GAlBD;;AAoBA,QAAM7hB,OAAO,GAAG,MAAM;AACpB,UAAMpjB,MAAM,GAAGiC,qDAAS,EAAxB;;AAEA,QAAI,CAACkV,MAAM,CAACrG,MAAP,CAAc0E,OAAd,CAAsBC,YAA3B,EAAyC;AACvCzV,MAAAA,MAAM,CAACqJ,mBAAP,CAA2B,UAA3B,EAAuC47B,kBAAvC;AACD;AACF,GAND;;AAQAp9B,EAAAA,EAAE,CAAC,MAAD,EAAS,MAAM;AACf,QAAIsP,MAAM,CAACrG,MAAP,CAAc0E,OAAd,CAAsB0C,OAA1B,EAAmC;AACjC4H,MAAAA,IAAI;AACL;AACF,GAJC,CAAF;AAKAjY,EAAAA,EAAE,CAAC,SAAD,EAAY,MAAM;AAClB,QAAIsP,MAAM,CAACrG,MAAP,CAAc0E,OAAd,CAAsB0C,OAA1B,EAAmC;AACjCkL,MAAAA,OAAO;AACR;AACF,GAJC,CAAF;AAKAvb,EAAAA,EAAE,CAAC,0CAAD,EAA6C,MAAM;AACnD,QAAI0P,WAAJ,EAAiB;AACfotB,MAAAA,UAAU,CAACxtB,MAAM,CAACrG,MAAP,CAAc0E,OAAd,CAAsBhP,GAAvB,EAA4B2Q,MAAM,CAACG,WAAnC,CAAV;AACD;AACF,GAJC,CAAF;AAKAzP,EAAAA,EAAE,CAAC,aAAD,EAAgB,MAAM;AACtB,QAAI0P,WAAW,IAAIJ,MAAM,CAACrG,MAAP,CAAckK,OAAjC,EAA0C;AACxC2pB,MAAAA,UAAU,CAACxtB,MAAM,CAACrG,MAAP,CAAc0E,OAAd,CAAsBhP,GAAvB,EAA4B2Q,MAAM,CAACG,WAAnC,CAAV;AACD;AACF,GAJC,CAAF;AAKD;;;;;;;;;;;;;;;;ACrJD;AACA;AACA;AACe,SAAS4tB,QAAT,CAAkB;AAC/B/tB,EAAAA,MAD+B;AAE/B8F,EAAAA,YAF+B;AAG/BpV,EAAAA,EAH+B;AAI/BmR,EAAAA;AAJ+B,CAAlB,EAKZ;AACD,QAAMlZ,QAAQ,GAAGoC,uDAAW,EAA5B;AACA,QAAMlC,MAAM,GAAGiC,qDAAS,EAAxB;AACAkV,EAAAA,MAAM,CAACguB,QAAP,GAAkB;AAChBjtB,IAAAA,OAAO,EAAE;AADO,GAAlB;AAGA+E,EAAAA,YAAY,CAAC;AACXkoB,IAAAA,QAAQ,EAAE;AACRjtB,MAAAA,OAAO,EAAE,KADD;AAERktB,MAAAA,cAAc,EAAE,IAFR;AAGRC,MAAAA,UAAU,EAAE;AAHJ;AADC,GAAD,CAAZ;;AAQA,WAASC,MAAT,CAAgBx8B,KAAhB,EAAuB;AACrB,QAAI,CAACqO,MAAM,CAACe,OAAZ,EAAqB;AACrB,UAAM;AACJ0J,MAAAA,YAAY,EAAErH;AADV,QAEFpD,MAFJ;AAGA,QAAI9V,CAAC,GAAGyH,KAAR;AACA,QAAIzH,CAAC,CAAC4nB,aAAN,EAAqB5nB,CAAC,GAAGA,CAAC,CAAC4nB,aAAN,CANA,CAMqB;;AAE1C,UAAMsc,EAAE,GAAGlkC,CAAC,CAACy3B,OAAF,IAAaz3B,CAAC,CAACmkC,QAA1B;AACA,UAAMH,UAAU,GAAGluB,MAAM,CAACrG,MAAP,CAAcq0B,QAAd,CAAuBE,UAA1C;AACA,UAAMI,QAAQ,GAAGJ,UAAU,IAAIE,EAAE,KAAK,EAAtC;AACA,UAAMG,UAAU,GAAGL,UAAU,IAAIE,EAAE,KAAK,EAAxC;AACA,UAAMI,WAAW,GAAGJ,EAAE,KAAK,EAA3B;AACA,UAAMK,YAAY,GAAGL,EAAE,KAAK,EAA5B;AACA,UAAMM,SAAS,GAAGN,EAAE,KAAK,EAAzB;AACA,UAAMO,WAAW,GAAGP,EAAE,KAAK,EAA3B,CAfqB,CAeU;;AAE/B,QAAI,CAACpuB,MAAM,CAACyB,cAAR,KAA2BzB,MAAM,CAACmG,YAAP,MAAyBsoB,YAAzB,IAAyCzuB,MAAM,CAACoG,UAAP,MAAuBuoB,WAAhE,IAA+EJ,UAA1G,CAAJ,EAA2H;AACzH,aAAO,KAAP;AACD;;AAED,QAAI,CAACvuB,MAAM,CAAC0B,cAAR,KAA2B1B,MAAM,CAACmG,YAAP,MAAyBqoB,WAAzB,IAAwCxuB,MAAM,CAACoG,UAAP,MAAuBsoB,SAA/D,IAA4EJ,QAAvG,CAAJ,EAAsH;AACpH,aAAO,KAAP;AACD;;AAED,QAAIpkC,CAAC,CAAC0kC,QAAF,IAAc1kC,CAAC,CAAC2kC,MAAhB,IAA0B3kC,CAAC,CAAC4kC,OAA5B,IAAuC5kC,CAAC,CAAC6kC,OAA7C,EAAsD;AACpD,aAAOngC,SAAP;AACD;;AAED,QAAIjG,QAAQ,CAACsU,aAAT,IAA0BtU,QAAQ,CAACsU,aAAT,CAAuBlN,QAAjD,KAA8DpH,QAAQ,CAACsU,aAAT,CAAuBlN,QAAvB,CAAgCpD,WAAhC,OAAkD,OAAlD,IAA6DhE,QAAQ,CAACsU,aAAT,CAAuBlN,QAAvB,CAAgCpD,WAAhC,OAAkD,UAA7K,CAAJ,EAA8L;AAC5L,aAAOiC,SAAP;AACD;;AAED,QAAIoR,MAAM,CAACrG,MAAP,CAAcq0B,QAAd,CAAuBC,cAAvB,KAA0CK,QAAQ,IAAIC,UAAZ,IAA0BC,WAA1B,IAAyCC,YAAzC,IAAyDC,SAAzD,IAAsEC,WAAhH,CAAJ,EAAkI;AAChI,UAAIK,MAAM,GAAG,KAAb,CADgI,CAC5G;;AAEpB,UAAIhvB,MAAM,CAACM,GAAP,CAAW/O,OAAX,CAAoB,IAAGyO,MAAM,CAACrG,MAAP,CAAc6P,UAAW,EAAhD,EAAmDlf,MAAnD,GAA4D,CAA5D,IAAiE0V,MAAM,CAACM,GAAP,CAAW/O,OAAX,CAAoB,IAAGyO,MAAM,CAACrG,MAAP,CAAc2S,gBAAiB,EAAtD,EAAyDhiB,MAAzD,KAAoE,CAAzI,EAA4I;AAC1I,eAAOsE,SAAP;AACD;;AAED,YAAM0R,GAAG,GAAGN,MAAM,CAACM,GAAnB;AACA,YAAM+mB,WAAW,GAAG/mB,GAAG,CAAC,CAAD,CAAH,CAAOT,WAA3B;AACA,YAAMynB,YAAY,GAAGhnB,GAAG,CAAC,CAAD,CAAH,CAAOjB,YAA5B;AACA,YAAM4vB,WAAW,GAAGpmC,MAAM,CAACyK,UAA3B;AACA,YAAM47B,YAAY,GAAGrmC,MAAM,CAACiL,WAA5B;AACA,YAAMq7B,YAAY,GAAGnvB,MAAM,CAACM,GAAP,CAAWtM,MAAX,EAArB;AACA,UAAIoP,GAAJ,EAAS+rB,YAAY,CAAC36B,IAAb,IAAqBwL,MAAM,CAACM,GAAP,CAAW,CAAX,EAAchM,UAAnC;AACT,YAAM86B,WAAW,GAAG,CAAC,CAACD,YAAY,CAAC36B,IAAd,EAAoB26B,YAAY,CAAC3lC,GAAjC,CAAD,EAAwC,CAAC2lC,YAAY,CAAC36B,IAAb,GAAoB6yB,WAArB,EAAkC8H,YAAY,CAAC3lC,GAA/C,CAAxC,EAA6F,CAAC2lC,YAAY,CAAC36B,IAAd,EAAoB26B,YAAY,CAAC3lC,GAAb,GAAmB89B,YAAvC,CAA7F,EAAmJ,CAAC6H,YAAY,CAAC36B,IAAb,GAAoB6yB,WAArB,EAAkC8H,YAAY,CAAC3lC,GAAb,GAAmB89B,YAArD,CAAnJ,CAApB;;AAEA,WAAK,IAAIr9B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmlC,WAAW,CAAC9kC,MAAhC,EAAwCL,CAAC,IAAI,CAA7C,EAAgD;AAC9C,cAAMsV,KAAK,GAAG6vB,WAAW,CAACnlC,CAAD,CAAzB;;AAEA,YAAIsV,KAAK,CAAC,CAAD,CAAL,IAAY,CAAZ,IAAiBA,KAAK,CAAC,CAAD,CAAL,IAAY0vB,WAA7B,IAA4C1vB,KAAK,CAAC,CAAD,CAAL,IAAY,CAAxD,IAA6DA,KAAK,CAAC,CAAD,CAAL,IAAY2vB,YAA7E,EAA2F;AACzF,cAAI3vB,KAAK,CAAC,CAAD,CAAL,KAAa,CAAb,IAAkBA,KAAK,CAAC,CAAD,CAAL,KAAa,CAAnC,EAAsC,SADmD,CACzC;;AAEhDyvB,UAAAA,MAAM,GAAG,IAAT;AACD;AACF;;AAED,UAAI,CAACA,MAAL,EAAa,OAAOpgC,SAAP;AACd;;AAED,QAAIoR,MAAM,CAACmG,YAAP,EAAJ,EAA2B;AACzB,UAAImoB,QAAQ,IAAIC,UAAZ,IAA0BC,WAA1B,IAAyCC,YAA7C,EAA2D;AACzD,YAAIvkC,CAAC,CAACmnB,cAAN,EAAsBnnB,CAAC,CAACmnB,cAAF,GAAtB,KAA8CnnB,CAAC,CAACmlC,WAAF,GAAgB,KAAhB;AAC/C;;AAED,UAAI,CAACd,UAAU,IAAIE,YAAf,KAAgC,CAACrrB,GAAjC,IAAwC,CAACkrB,QAAQ,IAAIE,WAAb,KAA6BprB,GAAzE,EAA8EpD,MAAM,CAAC2X,SAAP;AAC9E,UAAI,CAAC2W,QAAQ,IAAIE,WAAb,KAA6B,CAACprB,GAA9B,IAAqC,CAACmrB,UAAU,IAAIE,YAAf,KAAgCrrB,GAAzE,EAA8EpD,MAAM,CAAC4X,SAAP;AAC/E,KAPD,MAOO;AACL,UAAI0W,QAAQ,IAAIC,UAAZ,IAA0BG,SAA1B,IAAuCC,WAA3C,EAAwD;AACtD,YAAIzkC,CAAC,CAACmnB,cAAN,EAAsBnnB,CAAC,CAACmnB,cAAF,GAAtB,KAA8CnnB,CAAC,CAACmlC,WAAF,GAAgB,KAAhB;AAC/C;;AAED,UAAId,UAAU,IAAII,WAAlB,EAA+B3uB,MAAM,CAAC2X,SAAP;AAC/B,UAAI2W,QAAQ,IAAII,SAAhB,EAA2B1uB,MAAM,CAAC4X,SAAP;AAC5B;;AAED/V,IAAAA,IAAI,CAAC,UAAD,EAAausB,EAAb,CAAJ;AACA,WAAOx/B,SAAP;AACD;;AAED,WAASgT,MAAT,GAAkB;AAChB,QAAI5B,MAAM,CAACguB,QAAP,CAAgBjtB,OAApB,EAA6B;AAC7B3T,IAAAA,0DAAC,CAACzE,QAAD,CAAD,CAAY+H,EAAZ,CAAe,SAAf,EAA0By9B,MAA1B;AACAnuB,IAAAA,MAAM,CAACguB,QAAP,CAAgBjtB,OAAhB,GAA0B,IAA1B;AACD;;AAED,WAASY,OAAT,GAAmB;AACjB,QAAI,CAAC3B,MAAM,CAACguB,QAAP,CAAgBjtB,OAArB,EAA8B;AAC9B3T,IAAAA,0DAAC,CAACzE,QAAD,CAAD,CAAYoJ,GAAZ,CAAgB,SAAhB,EAA2Bo8B,MAA3B;AACAnuB,IAAAA,MAAM,CAACguB,QAAP,CAAgBjtB,OAAhB,GAA0B,KAA1B;AACD;;AAEDrQ,EAAAA,EAAE,CAAC,MAAD,EAAS,MAAM;AACf,QAAIsP,MAAM,CAACrG,MAAP,CAAcq0B,QAAd,CAAuBjtB,OAA3B,EAAoC;AAClCa,MAAAA,MAAM;AACP;AACF,GAJC,CAAF;AAKAlR,EAAAA,EAAE,CAAC,SAAD,EAAY,MAAM;AAClB,QAAIsP,MAAM,CAACguB,QAAP,CAAgBjtB,OAApB,EAA6B;AAC3BY,MAAAA,OAAO;AACR;AACF,GAJC,CAAF;AAKAvW,EAAAA,MAAM,CAACsO,MAAP,CAAcsG,MAAM,CAACguB,QAArB,EAA+B;AAC7BpsB,IAAAA,MAD6B;AAE7BD,IAAAA;AAF6B,GAA/B;AAID;;;;;;;;;;;;;;;;AClID;AACA;AACe,SAAS2tB,IAAT,CAAc;AAC3BtvB,EAAAA,MAD2B;AAE3B8F,EAAAA,YAF2B;AAG3BpV,EAAAA,EAH2B;AAI3BmR,EAAAA;AAJ2B,CAAd,EAKZ;AACDiE,EAAAA,YAAY,CAAC;AACXypB,IAAAA,IAAI,EAAE;AACJC,MAAAA,WAAW,EAAE,KADT;AAEJzuB,MAAAA,OAAO,EAAE,KAFL;AAGJ0uB,MAAAA,YAAY,EAAE,KAHV;AAIJC,MAAAA,kBAAkB,EAAE,CAJhB;AAKJC,MAAAA,qBAAqB,EAAE,KALnB;AAMJC,MAAAA,gBAAgB,EAAE,EANd;AAOJC,MAAAA,YAAY,EAAE,aAPV;AAQJC,MAAAA,YAAY,EAAE,qBARV;AASJC,MAAAA,WAAW,EAAE,oBATT;AAUJC,MAAAA,cAAc,EAAE;AAVZ;AADK,GAAD,CAAZ;AAcAhwB,EAAAA,MAAM,CAACuvB,IAAP,GAAc,EAAd;AACA,MAAIU,qBAAqB,GAAG,KAA5B;AACA,MAAIC,kBAAkB,GAAG,KAAzB;;AAEA,WAASC,WAAT,CAAqBr7B,KAArB,EAA4Bs7B,eAAe,GAAG,IAA9C,EAAoD;AAClD,UAAMz2B,MAAM,GAAGqG,MAAM,CAACrG,MAAP,CAAc41B,IAA7B;AACA,QAAI,OAAOz6B,KAAP,KAAiB,WAArB,EAAkC;AAClC,QAAIkL,MAAM,CAACuC,MAAP,CAAcjY,MAAd,KAAyB,CAA7B,EAAgC;AAChC,UAAMovB,SAAS,GAAG1Z,MAAM,CAAC2Z,OAAP,IAAkB3Z,MAAM,CAACrG,MAAP,CAAcggB,OAAd,CAAsB5Y,OAA1D;AACA,UAAM2hB,QAAQ,GAAGhJ,SAAS,GAAG1Z,MAAM,CAACuL,UAAP,CAAkB/T,QAAlB,CAA4B,IAAGwI,MAAM,CAACrG,MAAP,CAAc6P,UAAW,6BAA4B1U,KAAM,IAA1F,CAAH,GAAoGkL,MAAM,CAACuC,MAAP,CAAc/M,EAAd,CAAiBV,KAAjB,CAA9H;AACA,UAAMu7B,OAAO,GAAG3N,QAAQ,CAACrrB,IAAT,CAAe,IAAGsC,MAAM,CAACk2B,YAAa,SAAQl2B,MAAM,CAACo2B,WAAY,UAASp2B,MAAM,CAACm2B,YAAa,GAA9F,CAAhB;;AAEA,QAAIpN,QAAQ,CAACn0B,QAAT,CAAkBoL,MAAM,CAACk2B,YAAzB,KAA0C,CAACnN,QAAQ,CAACn0B,QAAT,CAAkBoL,MAAM,CAACo2B,WAAzB,CAA3C,IAAoF,CAACrN,QAAQ,CAACn0B,QAAT,CAAkBoL,MAAM,CAACm2B,YAAzB,CAAzF,EAAiI;AAC/HO,MAAAA,OAAO,CAACrkC,IAAR,CAAa02B,QAAQ,CAAC,CAAD,CAArB;AACD;;AAED,QAAI2N,OAAO,CAAC/lC,MAAR,KAAmB,CAAvB,EAA0B;AAC1B+lC,IAAAA,OAAO,CAACx7B,IAAR,CAAa6f,OAAO,IAAI;AACtB,YAAM4b,QAAQ,GAAGljC,0DAAC,CAACsnB,OAAD,CAAlB;AACA4b,MAAAA,QAAQ,CAACxiC,QAAT,CAAkB6L,MAAM,CAACm2B,YAAzB;AACA,YAAMS,UAAU,GAAGD,QAAQ,CAAC9hC,IAAT,CAAc,iBAAd,CAAnB;AACA,YAAMuO,GAAG,GAAGuzB,QAAQ,CAAC9hC,IAAT,CAAc,UAAd,CAAZ;AACA,YAAMmmB,MAAM,GAAG2b,QAAQ,CAAC9hC,IAAT,CAAc,aAAd,CAAf;AACA,YAAMomB,KAAK,GAAG0b,QAAQ,CAAC9hC,IAAT,CAAc,YAAd,CAAd;AACA,YAAMgiC,UAAU,GAAGF,QAAQ,CAACr6B,MAAT,CAAgB,SAAhB,CAAnB;AACA+J,MAAAA,MAAM,CAACyU,SAAP,CAAiB6b,QAAQ,CAAC,CAAD,CAAzB,EAA8BvzB,GAAG,IAAIwzB,UAArC,EAAiD5b,MAAjD,EAAyDC,KAAzD,EAAgE,KAAhE,EAAuE,MAAM;AAC3E,YAAI,OAAO5U,MAAP,KAAkB,WAAlB,IAAiCA,MAAM,KAAK,IAA5C,IAAoD,CAACA,MAArD,IAA+DA,MAAM,IAAI,CAACA,MAAM,CAACrG,MAAjF,IAA2FqG,MAAM,CAACoK,SAAtG,EAAiH;;AAEjH,YAAImmB,UAAJ,EAAgB;AACdD,UAAAA,QAAQ,CAAC/8B,GAAT,CAAa,kBAAb,EAAkC,QAAOg9B,UAAW,IAApD;AACAD,UAAAA,QAAQ,CAACvhC,UAAT,CAAoB,iBAApB;AACD,SAHD,MAGO;AACL,cAAI4lB,MAAJ,EAAY;AACV2b,YAAAA,QAAQ,CAAC9hC,IAAT,CAAc,QAAd,EAAwBmmB,MAAxB;AACA2b,YAAAA,QAAQ,CAACvhC,UAAT,CAAoB,aAApB;AACD;;AAED,cAAI6lB,KAAJ,EAAW;AACT0b,YAAAA,QAAQ,CAAC9hC,IAAT,CAAc,OAAd,EAAuBomB,KAAvB;AACA0b,YAAAA,QAAQ,CAACvhC,UAAT,CAAoB,YAApB;AACD;;AAED,cAAIyhC,UAAU,CAAClmC,MAAf,EAAuB;AACrBkmC,YAAAA,UAAU,CAACh5B,QAAX,CAAoB,QAApB,EAA8B3C,IAA9B,CAAmC47B,QAAQ,IAAI;AAC7C,oBAAMC,OAAO,GAAGtjC,0DAAC,CAACqjC,QAAD,CAAjB;;AAEA,kBAAIC,OAAO,CAACliC,IAAR,CAAa,aAAb,CAAJ,EAAiC;AAC/BkiC,gBAAAA,OAAO,CAACliC,IAAR,CAAa,QAAb,EAAuBkiC,OAAO,CAACliC,IAAR,CAAa,aAAb,CAAvB;AACAkiC,gBAAAA,OAAO,CAAC3hC,UAAR,CAAmB,aAAnB;AACD;AACF,aAPD;AAQD;;AAED,cAAIgO,GAAJ,EAAS;AACPuzB,YAAAA,QAAQ,CAAC9hC,IAAT,CAAc,KAAd,EAAqBuO,GAArB;AACAuzB,YAAAA,QAAQ,CAACvhC,UAAT,CAAoB,UAApB;AACD;AACF;;AAEDuhC,QAAAA,QAAQ,CAACxiC,QAAT,CAAkB6L,MAAM,CAACo2B,WAAzB,EAAsC3hC,WAAtC,CAAkDuL,MAAM,CAACm2B,YAAzD;AACApN,QAAAA,QAAQ,CAACrrB,IAAT,CAAe,IAAGsC,MAAM,CAACq2B,cAAe,EAAxC,EAA2ClmC,MAA3C;;AAEA,YAAIkW,MAAM,CAACrG,MAAP,CAAc/R,IAAd,IAAsBwoC,eAA1B,EAA2C;AACzC,gBAAMO,kBAAkB,GAAGjO,QAAQ,CAACl0B,IAAT,CAAc,yBAAd,CAA3B;;AAEA,cAAIk0B,QAAQ,CAACn0B,QAAT,CAAkByR,MAAM,CAACrG,MAAP,CAAcqW,mBAAhC,CAAJ,EAA0D;AACxD,kBAAM4gB,aAAa,GAAG5wB,MAAM,CAACuL,UAAP,CAAkB/T,QAAlB,CAA4B,6BAA4Bm5B,kBAAmB,WAAU3wB,MAAM,CAACrG,MAAP,CAAcqW,mBAAoB,GAAvH,CAAtB;AACAmgB,YAAAA,WAAW,CAACS,aAAa,CAAC97B,KAAd,EAAD,EAAwB,KAAxB,CAAX;AACD,WAHD,MAGO;AACL,kBAAM+7B,eAAe,GAAG7wB,MAAM,CAACuL,UAAP,CAAkB/T,QAAlB,CAA4B,IAAGwI,MAAM,CAACrG,MAAP,CAAcqW,mBAAoB,6BAA4B2gB,kBAAmB,IAAhH,CAAxB;AACAR,YAAAA,WAAW,CAACU,eAAe,CAAC/7B,KAAhB,EAAD,EAA0B,KAA1B,CAAX;AACD;AACF;;AAED+M,QAAAA,IAAI,CAAC,gBAAD,EAAmB6gB,QAAQ,CAAC,CAAD,CAA3B,EAAgC4N,QAAQ,CAAC,CAAD,CAAxC,CAAJ;;AAEA,YAAItwB,MAAM,CAACrG,MAAP,CAAc+J,UAAlB,EAA8B;AAC5B1D,UAAAA,MAAM,CAAC4K,gBAAP;AACD;AACF,OAtDD;AAuDA/I,MAAAA,IAAI,CAAC,eAAD,EAAkB6gB,QAAQ,CAAC,CAAD,CAA1B,EAA+B4N,QAAQ,CAAC,CAAD,CAAvC,CAAJ;AACD,KAhED;AAiED;;AAED,WAASQ,IAAT,GAAgB;AACd,UAAM;AACJvlB,MAAAA,UADI;AAEJ5R,MAAAA,MAAM,EAAEqM,YAFJ;AAGJzD,MAAAA,MAHI;AAIJpC,MAAAA;AAJI,QAKFH,MALJ;AAMA,UAAM0Z,SAAS,GAAG1Z,MAAM,CAAC2Z,OAAP,IAAkB3T,YAAY,CAAC2T,OAAb,CAAqB5Y,OAAzD;AACA,UAAMpH,MAAM,GAAGqM,YAAY,CAACupB,IAA5B;AACA,QAAI1nC,aAAa,GAAGme,YAAY,CAACne,aAAjC;;AAEA,QAAIA,aAAa,KAAK,MAAtB,EAA8B;AAC5BA,MAAAA,aAAa,GAAG,CAAhB;AACD;;AAED,aAASkpC,UAAT,CAAoBj8B,KAApB,EAA2B;AACzB,UAAI4kB,SAAJ,EAAe;AACb,YAAInO,UAAU,CAAC/T,QAAX,CAAqB,IAAGwO,YAAY,CAACwD,UAAW,6BAA4B1U,KAAM,IAAlF,EAAuFxK,MAA3F,EAAmG;AACjG,iBAAO,IAAP;AACD;AACF,OAJD,MAIO,IAAIiY,MAAM,CAACzN,KAAD,CAAV,EAAmB,OAAO,IAAP;;AAE1B,aAAO,KAAP;AACD;;AAED,aAASokB,UAAT,CAAoB3P,OAApB,EAA6B;AAC3B,UAAImQ,SAAJ,EAAe;AACb,eAAOtsB,0DAAC,CAACmc,OAAD,CAAD,CAAW/a,IAAX,CAAgB,yBAAhB,CAAP;AACD;;AAED,aAAOpB,0DAAC,CAACmc,OAAD,CAAD,CAAWzU,KAAX,EAAP;AACD;;AAED,QAAI,CAACo7B,kBAAL,EAAyBA,kBAAkB,GAAG,IAArB;;AAEzB,QAAIlwB,MAAM,CAACrG,MAAP,CAAcsV,mBAAlB,EAAuC;AACrC1D,MAAAA,UAAU,CAAC/T,QAAX,CAAqB,IAAGwO,YAAY,CAACqG,iBAAkB,EAAvD,EAA0DxX,IAA1D,CAA+D0U,OAAO,IAAI;AACxE,cAAMzU,KAAK,GAAG4kB,SAAS,GAAGtsB,0DAAC,CAACmc,OAAD,CAAD,CAAW/a,IAAX,CAAgB,yBAAhB,CAAH,GAAgDpB,0DAAC,CAACmc,OAAD,CAAD,CAAWzU,KAAX,EAAvE;AACAq7B,QAAAA,WAAW,CAACr7B,KAAD,CAAX;AACD,OAHD;AAID,KALD,MAKO,IAAIjN,aAAa,GAAG,CAApB,EAAuB;AAC5B,WAAK,IAAIoC,CAAC,GAAGkW,WAAb,EAA0BlW,CAAC,GAAGkW,WAAW,GAAGtY,aAA5C,EAA2DoC,CAAC,IAAI,CAAhE,EAAmE;AACjE,YAAI8mC,UAAU,CAAC9mC,CAAD,CAAd,EAAmBkmC,WAAW,CAAClmC,CAAD,CAAX;AACpB;AACF,KAJM,MAIA;AACLkmC,MAAAA,WAAW,CAAChwB,WAAD,CAAX;AACD;;AAED,QAAIxG,MAAM,CAAC81B,YAAX,EAAyB;AACvB,UAAI5nC,aAAa,GAAG,CAAhB,IAAqB8R,MAAM,CAAC+1B,kBAAP,IAA6B/1B,MAAM,CAAC+1B,kBAAP,GAA4B,CAAlF,EAAqF;AACnF,cAAMsB,MAAM,GAAGr3B,MAAM,CAAC+1B,kBAAtB;AACA,cAAM3lB,GAAG,GAAGliB,aAAZ;AACA,cAAMy8B,QAAQ,GAAG7rB,IAAI,CAACE,GAAL,CAASwH,WAAW,GAAG4J,GAAd,GAAoBtR,IAAI,CAACC,GAAL,CAASs4B,MAAT,EAAiBjnB,GAAjB,CAA7B,EAAoDxH,MAAM,CAACjY,MAA3D,CAAjB;AACA,cAAMi6B,QAAQ,GAAG9rB,IAAI,CAACC,GAAL,CAASyH,WAAW,GAAG1H,IAAI,CAACC,GAAL,CAASqR,GAAT,EAAcinB,MAAd,CAAvB,EAA8C,CAA9C,CAAjB,CAJmF,CAIhB;;AAEnE,aAAK,IAAI/mC,CAAC,GAAGkW,WAAW,GAAGtY,aAA3B,EAA0CoC,CAAC,GAAGq6B,QAA9C,EAAwDr6B,CAAC,IAAI,CAA7D,EAAgE;AAC9D,cAAI8mC,UAAU,CAAC9mC,CAAD,CAAd,EAAmBkmC,WAAW,CAAClmC,CAAD,CAAX;AACpB,SARkF,CAQjF;;;AAGF,aAAK,IAAIA,CAAC,GAAGs6B,QAAb,EAAuBt6B,CAAC,GAAGkW,WAA3B,EAAwClW,CAAC,IAAI,CAA7C,EAAgD;AAC9C,cAAI8mC,UAAU,CAAC9mC,CAAD,CAAd,EAAmBkmC,WAAW,CAAClmC,CAAD,CAAX;AACpB;AACF,OAdD,MAcO;AACL,cAAMw0B,SAAS,GAAGlT,UAAU,CAAC/T,QAAX,CAAqB,IAAGwO,YAAY,CAACuG,cAAe,EAApD,CAAlB;AACA,YAAIkS,SAAS,CAACn0B,MAAV,GAAmB,CAAvB,EAA0B6lC,WAAW,CAACjX,UAAU,CAACuF,SAAD,CAAX,CAAX;AAC1B,cAAMC,SAAS,GAAGnT,UAAU,CAAC/T,QAAX,CAAqB,IAAGwO,YAAY,CAACwG,cAAe,EAApD,CAAlB;AACA,YAAIkS,SAAS,CAACp0B,MAAV,GAAmB,CAAvB,EAA0B6lC,WAAW,CAACjX,UAAU,CAACwF,SAAD,CAAX,CAAX;AAC3B;AACF;AACF;;AAED,WAASuS,iBAAT,GAA6B;AAC3B,UAAMpoC,MAAM,GAAGiC,qDAAS,EAAxB;AACA,QAAI,CAACkV,MAAD,IAAWA,MAAM,CAACoK,SAAtB,EAAiC;AACjC,UAAM8mB,cAAc,GAAGlxB,MAAM,CAACrG,MAAP,CAAc41B,IAAd,CAAmBK,gBAAnB,GAAsCxiC,0DAAC,CAAC4S,MAAM,CAACrG,MAAP,CAAc41B,IAAd,CAAmBK,gBAApB,CAAvC,GAA+ExiC,0DAAC,CAACvE,MAAD,CAAvG;AACA,UAAMsoC,QAAQ,GAAGD,cAAc,CAAC,CAAD,CAAd,KAAsBroC,MAAvC;AACA,UAAMuoC,kBAAkB,GAAGD,QAAQ,GAAGtoC,MAAM,CAACyK,UAAV,GAAuB49B,cAAc,CAAC,CAAD,CAAd,CAAkBv9B,WAA5E;AACA,UAAM09B,mBAAmB,GAAGF,QAAQ,GAAGtoC,MAAM,CAACiL,WAAV,GAAwBo9B,cAAc,CAAC,CAAD,CAAd,CAAkB7nC,YAA9E;AACA,UAAM8lC,YAAY,GAAGnvB,MAAM,CAACM,GAAP,CAAWtM,MAAX,EAArB;AACA,UAAM;AACJyW,MAAAA,YAAY,EAAErH;AADV,QAEFpD,MAFJ;AAGA,QAAIgvB,MAAM,GAAG,KAAb;AACA,QAAI5rB,GAAJ,EAAS+rB,YAAY,CAAC36B,IAAb,IAAqBwL,MAAM,CAACM,GAAP,CAAW,CAAX,EAAchM,UAAnC;AACT,UAAM86B,WAAW,GAAG,CAAC,CAACD,YAAY,CAAC36B,IAAd,EAAoB26B,YAAY,CAAC3lC,GAAjC,CAAD,EAAwC,CAAC2lC,YAAY,CAAC36B,IAAb,GAAoBwL,MAAM,CAAC3M,KAA5B,EAAmC87B,YAAY,CAAC3lC,GAAhD,CAAxC,EAA8F,CAAC2lC,YAAY,CAAC36B,IAAd,EAAoB26B,YAAY,CAAC3lC,GAAb,GAAmBwW,MAAM,CAACnM,MAA9C,CAA9F,EAAqJ,CAACs7B,YAAY,CAAC36B,IAAb,GAAoBwL,MAAM,CAAC3M,KAA5B,EAAmC87B,YAAY,CAAC3lC,GAAb,GAAmBwW,MAAM,CAACnM,MAA7D,CAArJ,CAApB;;AAEA,SAAK,IAAI5J,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmlC,WAAW,CAAC9kC,MAAhC,EAAwCL,CAAC,IAAI,CAA7C,EAAgD;AAC9C,YAAMsV,KAAK,GAAG6vB,WAAW,CAACnlC,CAAD,CAAzB;;AAEA,UAAIsV,KAAK,CAAC,CAAD,CAAL,IAAY,CAAZ,IAAiBA,KAAK,CAAC,CAAD,CAAL,IAAY6xB,kBAA7B,IAAmD7xB,KAAK,CAAC,CAAD,CAAL,IAAY,CAA/D,IAAoEA,KAAK,CAAC,CAAD,CAAL,IAAY8xB,mBAApF,EAAyG;AACvG,YAAI9xB,KAAK,CAAC,CAAD,CAAL,KAAa,CAAb,IAAkBA,KAAK,CAAC,CAAD,CAAL,KAAa,CAAnC,EAAsC,SADiE,CACvD;;AAEhDyvB,QAAAA,MAAM,GAAG,IAAT;AACD;AACF;;AAED,UAAM7d,eAAe,GAAGnR,MAAM,CAACyG,WAAP,CAAmBG,KAAnB,KAA6B,YAA7B,IAA6C5G,MAAM,CAACsD,OAAP,CAAe6N,eAA5D,IAA+EnR,MAAM,CAACrG,MAAP,CAAckW,gBAA7F,GAAgH;AACtIuB,MAAAA,OAAO,EAAE,IAD6H;AAEtIrgB,MAAAA,OAAO,EAAE;AAF6H,KAAhH,GAGpB,KAHJ;;AAKA,QAAIi+B,MAAJ,EAAY;AACV8B,MAAAA,IAAI;AACJI,MAAAA,cAAc,CAACn/B,GAAf,CAAmB,QAAnB,EAA6Bk/B,iBAA7B,EAAgD9f,eAAhD;AACD,KAHD,MAGO,IAAI,CAAC8e,qBAAL,EAA4B;AACjCA,MAAAA,qBAAqB,GAAG,IAAxB;AACAiB,MAAAA,cAAc,CAACxgC,EAAf,CAAkB,QAAlB,EAA4BugC,iBAA5B,EAA+C9f,eAA/C;AACD;AACF;;AAEDzgB,EAAAA,EAAE,CAAC,YAAD,EAAe,MAAM;AACrB,QAAIsP,MAAM,CAACrG,MAAP,CAAc41B,IAAd,CAAmBxuB,OAAnB,IAA8Bf,MAAM,CAACrG,MAAP,CAAckS,aAAhD,EAA+D;AAC7D7L,MAAAA,MAAM,CAACrG,MAAP,CAAckS,aAAd,GAA8B,KAA9B;AACD;AACF,GAJC,CAAF;AAKAnb,EAAAA,EAAE,CAAC,MAAD,EAAS,MAAM;AACf,QAAIsP,MAAM,CAACrG,MAAP,CAAc41B,IAAd,CAAmBxuB,OAAvB,EAAgC;AAC9B,UAAIf,MAAM,CAACrG,MAAP,CAAc41B,IAAd,CAAmBC,WAAvB,EAAoC;AAClCyB,QAAAA,iBAAiB;AAClB,OAFD,MAEO;AACLH,QAAAA,IAAI;AACL;AACF;AACF,GARC,CAAF;AASApgC,EAAAA,EAAE,CAAC,QAAD,EAAW,MAAM;AACjB,QAAIsP,MAAM,CAACrG,MAAP,CAAc8J,QAAd,IAA0BzD,MAAM,CAACrG,MAAP,CAAc8J,QAAd,CAAuB1C,OAAjD,IAA4D,CAACf,MAAM,CAACrG,MAAP,CAAc8J,QAAd,CAAuBknB,MAAxF,EAAgG;AAC9FmG,MAAAA,IAAI;AACL;AACF,GAJC,CAAF;AAKApgC,EAAAA,EAAE,CAAC,qDAAD,EAAwD,MAAM;AAC9D,QAAIsP,MAAM,CAACrG,MAAP,CAAc41B,IAAd,CAAmBxuB,OAAvB,EAAgC;AAC9B,UAAIf,MAAM,CAACrG,MAAP,CAAc41B,IAAd,CAAmBC,WAAvB,EAAoC;AAClCyB,QAAAA,iBAAiB;AAClB,OAFD,MAEO;AACLH,QAAAA,IAAI;AACL;AACF;AACF,GARC,CAAF;AASApgC,EAAAA,EAAE,CAAC,iBAAD,EAAoB,MAAM;AAC1B,QAAIsP,MAAM,CAACrG,MAAP,CAAc41B,IAAd,CAAmBxuB,OAAvB,EAAgC;AAC9B,UAAIf,MAAM,CAACrG,MAAP,CAAc41B,IAAd,CAAmBI,qBAAnB,IAA4C,CAAC3vB,MAAM,CAACrG,MAAP,CAAc41B,IAAd,CAAmBI,qBAApB,IAA6C,CAACO,kBAA9F,EAAkH;AAChH,YAAIlwB,MAAM,CAACrG,MAAP,CAAc41B,IAAd,CAAmBC,WAAvB,EAAoC;AAClCyB,UAAAA,iBAAiB;AAClB,SAFD,MAEO;AACLH,UAAAA,IAAI;AACL;AACF;AACF;AACF,GAVC,CAAF;AAWApgC,EAAAA,EAAE,CAAC,eAAD,EAAkB,MAAM;AACxB,QAAIsP,MAAM,CAACrG,MAAP,CAAc41B,IAAd,CAAmBxuB,OAAnB,IAA8B,CAACf,MAAM,CAACrG,MAAP,CAAc41B,IAAd,CAAmBI,qBAAtD,EAA6E;AAC3E,UAAI3vB,MAAM,CAACrG,MAAP,CAAc41B,IAAd,CAAmBC,WAAvB,EAAoC;AAClCyB,QAAAA,iBAAiB;AAClB,OAFD,MAEO;AACLH,QAAAA,IAAI;AACL;AACF;AACF,GARC,CAAF;AASApgC,EAAAA,EAAE,CAAC,aAAD,EAAgB,MAAM;AACtB,UAAM;AACJ6+B,MAAAA,IADI;AAEJ1rB,MAAAA,OAFI;AAGJoL,MAAAA,mBAHI;AAIJJ,MAAAA,mBAJI;AAKJG,MAAAA;AALI,QAMFhP,MAAM,CAACrG,MANX;;AAQA,QAAI41B,IAAI,CAACxuB,OAAL,KAAiB8C,OAAO,IAAIoL,mBAAmB,KAAKJ,mBAAmB,IAAIG,eAAe,KAAK,CAAhD,CAA/C,CAAJ,EAAwG;AACtG8hB,MAAAA,IAAI;AACL;AACF,GAZC,CAAF;AAaA1lC,EAAAA,MAAM,CAACsO,MAAP,CAAcsG,MAAM,CAACuvB,IAArB,EAA2B;AACzBuB,IAAAA,IADyB;AAEzBX,IAAAA;AAFyB,GAA3B;AAID;;;;;;;;;;;;;;;;;;;AC1RD;AACA;AACA;AACA;AACA;AACe,SAASwB,YAAT,CAAsB;AACnC3xB,EAAAA;AADmC,CAAtB,EAEZ;AACD5U,EAAAA,MAAM,CAACsO,MAAP,CAAcsG,MAAd,EAAsB;AACpBsxB,IAAAA,WAAW,EAAEA,oEAAA,CAAiBtxB,MAAjB,CADO;AAEpBuxB,IAAAA,YAAY,EAAEA,qEAAA,CAAkBvxB,MAAlB,CAFM;AAGpBwxB,IAAAA,QAAQ,EAAEA,iEAAA,CAAcxxB,MAAd,CAHU;AAIpByxB,IAAAA,WAAW,EAAEA,oEAAA,CAAiBzxB,MAAjB,CAJO;AAKpB0xB,IAAAA,eAAe,EAAEA,wEAAA,CAAqB1xB,MAArB;AALG,GAAtB;AAOD;;;;;;;;;;;;;;ACfc,SAASwxB,QAAT,CAAkB18B,KAAlB,EAAyByN,MAAzB,EAAiC;AAC9C,QAAMvC,MAAM,GAAG,IAAf;AACA,QAAM;AACJuL,IAAAA,UADI;AAEJ5R,IAAAA,MAFI;AAGJwG,IAAAA;AAHI,MAIFH,MAJJ;AAKA,MAAI4xB,iBAAiB,GAAGzxB,WAAxB;;AAEA,MAAIxG,MAAM,CAAC/R,IAAX,EAAiB;AACfgqC,IAAAA,iBAAiB,IAAI5xB,MAAM,CAACK,YAA5B;AACAL,IAAAA,MAAM,CAAC8B,WAAP;AACA9B,IAAAA,MAAM,CAACuC,MAAP,GAAgBgJ,UAAU,CAAC/T,QAAX,CAAqB,IAAGmC,MAAM,CAAC6P,UAAW,EAA1C,CAAhB;AACD;;AAED,QAAMqoB,UAAU,GAAG7xB,MAAM,CAACuC,MAAP,CAAcjY,MAAjC;;AAEA,MAAIwK,KAAK,IAAI,CAAb,EAAgB;AACdkL,IAAAA,MAAM,CAACuxB,YAAP,CAAoBhvB,MAApB;AACA;AACD;;AAED,MAAIzN,KAAK,IAAI+8B,UAAb,EAAyB;AACvB7xB,IAAAA,MAAM,CAACsxB,WAAP,CAAmB/uB,MAAnB;AACA;AACD;;AAED,MAAI4Y,cAAc,GAAGyW,iBAAiB,GAAG98B,KAApB,GAA4B88B,iBAAiB,GAAG,CAAhD,GAAoDA,iBAAzE;AACA,QAAME,YAAY,GAAG,EAArB;;AAEA,OAAK,IAAI7nC,CAAC,GAAG4nC,UAAU,GAAG,CAA1B,EAA6B5nC,CAAC,IAAI6K,KAAlC,EAAyC7K,CAAC,IAAI,CAA9C,EAAiD;AAC/C,UAAM8nC,YAAY,GAAG/xB,MAAM,CAACuC,MAAP,CAAc/M,EAAd,CAAiBvL,CAAjB,CAArB;AACA8nC,IAAAA,YAAY,CAACjoC,MAAb;AACAgoC,IAAAA,YAAY,CAAC1gC,OAAb,CAAqB2gC,YAArB;AACD;;AAED,MAAI,OAAOxvB,MAAP,KAAkB,QAAlB,IAA8B,YAAYA,MAA9C,EAAsD;AACpD,SAAK,IAAItY,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsY,MAAM,CAACjY,MAA3B,EAAmCL,CAAC,IAAI,CAAxC,EAA2C;AACzC,UAAIsY,MAAM,CAACtY,CAAD,CAAV,EAAeshB,UAAU,CAAC7V,MAAX,CAAkB6M,MAAM,CAACtY,CAAD,CAAxB;AAChB;;AAEDkxB,IAAAA,cAAc,GAAGyW,iBAAiB,GAAG98B,KAApB,GAA4B88B,iBAAiB,GAAGrvB,MAAM,CAACjY,MAAvD,GAAgEsnC,iBAAjF;AACD,GAND,MAMO;AACLrmB,IAAAA,UAAU,CAAC7V,MAAX,CAAkB6M,MAAlB;AACD;;AAED,OAAK,IAAItY,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6nC,YAAY,CAACxnC,MAAjC,EAAyCL,CAAC,IAAI,CAA9C,EAAiD;AAC/CshB,IAAAA,UAAU,CAAC7V,MAAX,CAAkBo8B,YAAY,CAAC7nC,CAAD,CAA9B;AACD;;AAED,MAAI0P,MAAM,CAAC/R,IAAX,EAAiB;AACfoY,IAAAA,MAAM,CAAC+B,UAAP;AACD;;AAED,MAAI,CAACpI,MAAM,CAACyc,QAAZ,EAAsB;AACpBpW,IAAAA,MAAM,CAACyE,MAAP;AACD;;AAED,MAAI9K,MAAM,CAAC/R,IAAX,EAAiB;AACfoY,IAAAA,MAAM,CAACiC,OAAP,CAAekZ,cAAc,GAAGnb,MAAM,CAACK,YAAvC,EAAqD,CAArD,EAAwD,KAAxD;AACD,GAFD,MAEO;AACLL,IAAAA,MAAM,CAACiC,OAAP,CAAekZ,cAAf,EAA+B,CAA/B,EAAkC,KAAlC;AACD;AACF;;;;;;;;;;;;;;AC/Dc,SAASmW,WAAT,CAAqB/uB,MAArB,EAA6B;AAC1C,QAAMvC,MAAM,GAAG,IAAf;AACA,QAAM;AACJuL,IAAAA,UADI;AAEJ5R,IAAAA;AAFI,MAGFqG,MAHJ;;AAKA,MAAIrG,MAAM,CAAC/R,IAAX,EAAiB;AACfoY,IAAAA,MAAM,CAAC8B,WAAP;AACD;;AAED,MAAI,OAAOS,MAAP,KAAkB,QAAlB,IAA8B,YAAYA,MAA9C,EAAsD;AACpD,SAAK,IAAItY,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsY,MAAM,CAACjY,MAA3B,EAAmCL,CAAC,IAAI,CAAxC,EAA2C;AACzC,UAAIsY,MAAM,CAACtY,CAAD,CAAV,EAAeshB,UAAU,CAAC7V,MAAX,CAAkB6M,MAAM,CAACtY,CAAD,CAAxB;AAChB;AACF,GAJD,MAIO;AACLshB,IAAAA,UAAU,CAAC7V,MAAX,CAAkB6M,MAAlB;AACD;;AAED,MAAI5I,MAAM,CAAC/R,IAAX,EAAiB;AACfoY,IAAAA,MAAM,CAAC+B,UAAP;AACD;;AAED,MAAI,CAACpI,MAAM,CAACyc,QAAZ,EAAsB;AACpBpW,IAAAA,MAAM,CAACyE,MAAP;AACD;AACF;;;;;;;;;;;;;;AC1Bc,SAAS8sB,YAAT,CAAsBhvB,MAAtB,EAA8B;AAC3C,QAAMvC,MAAM,GAAG,IAAf;AACA,QAAM;AACJrG,IAAAA,MADI;AAEJ4R,IAAAA,UAFI;AAGJpL,IAAAA;AAHI,MAIFH,MAJJ;;AAMA,MAAIrG,MAAM,CAAC/R,IAAX,EAAiB;AACfoY,IAAAA,MAAM,CAAC8B,WAAP;AACD;;AAED,MAAIqZ,cAAc,GAAGhb,WAAW,GAAG,CAAnC;;AAEA,MAAI,OAAOoC,MAAP,KAAkB,QAAlB,IAA8B,YAAYA,MAA9C,EAAsD;AACpD,SAAK,IAAItY,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsY,MAAM,CAACjY,MAA3B,EAAmCL,CAAC,IAAI,CAAxC,EAA2C;AACzC,UAAIsY,MAAM,CAACtY,CAAD,CAAV,EAAeshB,UAAU,CAACrV,OAAX,CAAmBqM,MAAM,CAACtY,CAAD,CAAzB;AAChB;;AAEDkxB,IAAAA,cAAc,GAAGhb,WAAW,GAAGoC,MAAM,CAACjY,MAAtC;AACD,GAND,MAMO;AACLihB,IAAAA,UAAU,CAACrV,OAAX,CAAmBqM,MAAnB;AACD;;AAED,MAAI5I,MAAM,CAAC/R,IAAX,EAAiB;AACfoY,IAAAA,MAAM,CAAC+B,UAAP;AACD;;AAED,MAAI,CAACpI,MAAM,CAACyc,QAAZ,EAAsB;AACpBpW,IAAAA,MAAM,CAACyE,MAAP;AACD;;AAEDzE,EAAAA,MAAM,CAACiC,OAAP,CAAekZ,cAAf,EAA+B,CAA/B,EAAkC,KAAlC;AACD;;;;;;;;;;;;;;ACjCc,SAASuW,eAAT,GAA2B;AACxC,QAAM1xB,MAAM,GAAG,IAAf;AACA,QAAMgyB,aAAa,GAAG,EAAtB;;AAEA,OAAK,IAAI/nC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+V,MAAM,CAACuC,MAAP,CAAcjY,MAAlC,EAA0CL,CAAC,IAAI,CAA/C,EAAkD;AAChD+nC,IAAAA,aAAa,CAAChmC,IAAd,CAAmB/B,CAAnB;AACD;;AAED+V,EAAAA,MAAM,CAACyxB,WAAP,CAAmBO,aAAnB;AACD;;;;;;;;;;;;;;ACTc,SAASP,WAAT,CAAqBO,aAArB,EAAoC;AACjD,QAAMhyB,MAAM,GAAG,IAAf;AACA,QAAM;AACJrG,IAAAA,MADI;AAEJ4R,IAAAA,UAFI;AAGJpL,IAAAA;AAHI,MAIFH,MAJJ;AAKA,MAAI4xB,iBAAiB,GAAGzxB,WAAxB;;AAEA,MAAIxG,MAAM,CAAC/R,IAAX,EAAiB;AACfgqC,IAAAA,iBAAiB,IAAI5xB,MAAM,CAACK,YAA5B;AACAL,IAAAA,MAAM,CAAC8B,WAAP;AACA9B,IAAAA,MAAM,CAACuC,MAAP,GAAgBgJ,UAAU,CAAC/T,QAAX,CAAqB,IAAGmC,MAAM,CAAC6P,UAAW,EAA1C,CAAhB;AACD;;AAED,MAAI2R,cAAc,GAAGyW,iBAArB;AACA,MAAIK,aAAJ;;AAEA,MAAI,OAAOD,aAAP,KAAyB,QAAzB,IAAqC,YAAYA,aAArD,EAAoE;AAClE,SAAK,IAAI/nC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+nC,aAAa,CAAC1nC,MAAlC,EAA0CL,CAAC,IAAI,CAA/C,EAAkD;AAChDgoC,MAAAA,aAAa,GAAGD,aAAa,CAAC/nC,CAAD,CAA7B;AACA,UAAI+V,MAAM,CAACuC,MAAP,CAAc0vB,aAAd,CAAJ,EAAkCjyB,MAAM,CAACuC,MAAP,CAAc/M,EAAd,CAAiBy8B,aAAjB,EAAgCnoC,MAAhC;AAClC,UAAImoC,aAAa,GAAG9W,cAApB,EAAoCA,cAAc,IAAI,CAAlB;AACrC;;AAEDA,IAAAA,cAAc,GAAG1iB,IAAI,CAACC,GAAL,CAASyiB,cAAT,EAAyB,CAAzB,CAAjB;AACD,GARD,MAQO;AACL8W,IAAAA,aAAa,GAAGD,aAAhB;AACA,QAAIhyB,MAAM,CAACuC,MAAP,CAAc0vB,aAAd,CAAJ,EAAkCjyB,MAAM,CAACuC,MAAP,CAAc/M,EAAd,CAAiBy8B,aAAjB,EAAgCnoC,MAAhC;AAClC,QAAImoC,aAAa,GAAG9W,cAApB,EAAoCA,cAAc,IAAI,CAAlB;AACpCA,IAAAA,cAAc,GAAG1iB,IAAI,CAACC,GAAL,CAASyiB,cAAT,EAAyB,CAAzB,CAAjB;AACD;;AAED,MAAIxhB,MAAM,CAAC/R,IAAX,EAAiB;AACfoY,IAAAA,MAAM,CAAC+B,UAAP;AACD;;AAED,MAAI,CAACpI,MAAM,CAACyc,QAAZ,EAAsB;AACpBpW,IAAAA,MAAM,CAACyE,MAAP;AACD;;AAED,MAAI9K,MAAM,CAAC/R,IAAX,EAAiB;AACfoY,IAAAA,MAAM,CAACiC,OAAP,CAAekZ,cAAc,GAAGnb,MAAM,CAACK,YAAvC,EAAqD,CAArD,EAAwD,KAAxD;AACD,GAFD,MAEO;AACLL,IAAAA,MAAM,CAACiC,OAAP,CAAekZ,cAAf,EAA+B,CAA/B,EAAkC,KAAlC;AACD;AACF;;;;;;;;;;;;;;;;;AC9CD;AACA;AACA;AACA;AACe,SAAS+W,UAAT,CAAoB;AACjClyB,EAAAA,MADiC;AAEjC8F,EAAAA,YAFiC;AAGjCpV,EAAAA,EAHiC;AAIjCmR,EAAAA;AAJiC,CAApB,EAKZ;AACD,QAAMhZ,MAAM,GAAGiC,qDAAS,EAAxB;AACAgb,EAAAA,YAAY,CAAC;AACXqsB,IAAAA,UAAU,EAAE;AACVpxB,MAAAA,OAAO,EAAE,KADC;AAEVqxB,MAAAA,cAAc,EAAE,KAFN;AAGVC,MAAAA,MAAM,EAAE,KAHE;AAIVC,MAAAA,WAAW,EAAE,KAJH;AAKVC,MAAAA,WAAW,EAAE,CALH;AAMVC,MAAAA,YAAY,EAAE,WANJ;AAOVC,MAAAA,cAAc,EAAE,IAPN;AAQVC,MAAAA,aAAa,EAAE;AARL;AADD,GAAD,CAAZ;AAYA1yB,EAAAA,MAAM,CAACmyB,UAAP,GAAoB;AAClBpxB,IAAAA,OAAO,EAAE;AADS,GAApB;AAGA,MAAI8hB,OAAJ;AACA,MAAI8P,cAAc,GAAG1uB,qDAAG,EAAxB;AACA,MAAI2uB,mBAAJ;AACA,QAAMC,iBAAiB,GAAG,EAA1B;;AAEA,WAAS1a,SAAT,CAAmBjuB,CAAnB,EAAsB;AACpB;AACA,UAAM4oC,UAAU,GAAG,EAAnB;AACA,UAAMC,WAAW,GAAG,EAApB;AACA,UAAMC,WAAW,GAAG,GAApB;AACA,QAAIC,EAAE,GAAG,CAAT;AACA,QAAIC,EAAE,GAAG,CAAT,CANoB,CAMR;;AAEZ,QAAIC,EAAE,GAAG,CAAT;AACA,QAAIC,EAAE,GAAG,CAAT,CAToB,CASR;AACZ;;AAEA,QAAI,YAAYlpC,CAAhB,EAAmB;AACjBgpC,MAAAA,EAAE,GAAGhpC,CAAC,CAAC2I,MAAP;AACD;;AAED,QAAI,gBAAgB3I,CAApB,EAAuB;AACrBgpC,MAAAA,EAAE,GAAG,CAAChpC,CAAC,CAACmpC,UAAH,GAAgB,GAArB;AACD;;AAED,QAAI,iBAAiBnpC,CAArB,EAAwB;AACtBgpC,MAAAA,EAAE,GAAG,CAAChpC,CAAC,CAACopC,WAAH,GAAiB,GAAtB;AACD;;AAED,QAAI,iBAAiBppC,CAArB,EAAwB;AACtB+oC,MAAAA,EAAE,GAAG,CAAC/oC,CAAC,CAACqpC,WAAH,GAAiB,GAAtB;AACD,KA1BmB,CA0BlB;;;AAGF,QAAI,UAAUrpC,CAAV,IAAeA,CAAC,CAACywB,IAAF,KAAWzwB,CAAC,CAACspC,eAAhC,EAAiD;AAC/CP,MAAAA,EAAE,GAAGC,EAAL;AACAA,MAAAA,EAAE,GAAG,CAAL;AACD;;AAEDC,IAAAA,EAAE,GAAGF,EAAE,GAAGH,UAAV;AACAM,IAAAA,EAAE,GAAGF,EAAE,GAAGJ,UAAV;;AAEA,QAAI,YAAY5oC,CAAhB,EAAmB;AACjBkpC,MAAAA,EAAE,GAAGlpC,CAAC,CAACupC,MAAP;AACD;;AAED,QAAI,YAAYvpC,CAAhB,EAAmB;AACjBipC,MAAAA,EAAE,GAAGjpC,CAAC,CAACwpC,MAAP;AACD;;AAED,QAAIxpC,CAAC,CAAC0kC,QAAF,IAAc,CAACuE,EAAnB,EAAuB;AACrB;AACAA,MAAAA,EAAE,GAAGC,EAAL;AACAA,MAAAA,EAAE,GAAG,CAAL;AACD;;AAED,QAAI,CAACD,EAAE,IAAIC,EAAP,KAAclpC,CAAC,CAACypC,SAApB,EAA+B;AAC7B,UAAIzpC,CAAC,CAACypC,SAAF,KAAgB,CAApB,EAAuB;AACrB;AACAR,QAAAA,EAAE,IAAIJ,WAAN;AACAK,QAAAA,EAAE,IAAIL,WAAN;AACD,OAJD,MAIO;AACL;AACAI,QAAAA,EAAE,IAAIH,WAAN;AACAI,QAAAA,EAAE,IAAIJ,WAAN;AACD;AACF,KA7DmB,CA6DlB;;;AAGF,QAAIG,EAAE,IAAI,CAACF,EAAX,EAAe;AACbA,MAAAA,EAAE,GAAGE,EAAE,GAAG,CAAL,GAAS,CAAC,CAAV,GAAc,CAAnB;AACD;;AAED,QAAIC,EAAE,IAAI,CAACF,EAAX,EAAe;AACbA,MAAAA,EAAE,GAAGE,EAAE,GAAG,CAAL,GAAS,CAAC,CAAV,GAAc,CAAnB;AACD;;AAED,WAAO;AACLQ,MAAAA,KAAK,EAAEX,EADF;AAELY,MAAAA,KAAK,EAAEX,EAFF;AAGLY,MAAAA,MAAM,EAAEX,EAHH;AAILY,MAAAA,MAAM,EAAEX;AAJH,KAAP;AAMD;;AAED,WAASY,gBAAT,GAA4B;AAC1B,QAAI,CAACh0B,MAAM,CAACe,OAAZ,EAAqB;AACrBf,IAAAA,MAAM,CAACi0B,YAAP,GAAsB,IAAtB;AACD;;AAED,WAASC,gBAAT,GAA4B;AAC1B,QAAI,CAACl0B,MAAM,CAACe,OAAZ,EAAqB;AACrBf,IAAAA,MAAM,CAACi0B,YAAP,GAAsB,KAAtB;AACD;;AAED,WAASE,aAAT,CAAuBC,QAAvB,EAAiC;AAC/B,QAAIp0B,MAAM,CAACrG,MAAP,CAAcw4B,UAAd,CAAyBM,cAAzB,IAA2C2B,QAAQ,CAACC,KAAT,GAAiBr0B,MAAM,CAACrG,MAAP,CAAcw4B,UAAd,CAAyBM,cAAzF,EAAyG;AACvG;AACA,aAAO,KAAP;AACD;;AAED,QAAIzyB,MAAM,CAACrG,MAAP,CAAcw4B,UAAd,CAAyBO,aAAzB,IAA0CzuB,qDAAG,KAAK0uB,cAAR,GAAyB3yB,MAAM,CAACrG,MAAP,CAAcw4B,UAAd,CAAyBO,aAAhG,EAA+G;AAC7G;AACA,aAAO,KAAP;AACD,KAT8B,CAS7B;AACF;AACA;;;AAGA,QAAI0B,QAAQ,CAACC,KAAT,IAAkB,CAAlB,IAAuBpwB,qDAAG,KAAK0uB,cAAR,GAAyB,EAApD,EAAwD;AACtD;AACA,aAAO,IAAP;AACD,KAjB8B,CAiB7B;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,QAAIyB,QAAQ,CAAChzB,SAAT,GAAqB,CAAzB,EAA4B;AAC1B,UAAI,CAAC,CAACpB,MAAM,CAAC6C,KAAR,IAAiB7C,MAAM,CAACrG,MAAP,CAAc/R,IAAhC,KAAyC,CAACoY,MAAM,CAACnG,SAArD,EAAgE;AAC9DmG,QAAAA,MAAM,CAAC2X,SAAP;AACA9V,QAAAA,IAAI,CAAC,QAAD,EAAWuyB,QAAQ,CAACE,GAApB,CAAJ;AACD;AACF,KALD,MAKO,IAAI,CAAC,CAACt0B,MAAM,CAACsG,WAAR,IAAuBtG,MAAM,CAACrG,MAAP,CAAc/R,IAAtC,KAA+C,CAACoY,MAAM,CAACnG,SAA3D,EAAsE;AAC3EmG,MAAAA,MAAM,CAAC4X,SAAP;AACA/V,MAAAA,IAAI,CAAC,QAAD,EAAWuyB,QAAQ,CAACE,GAApB,CAAJ;AACD,KAvC8B,CAuC7B;;;AAGF3B,IAAAA,cAAc,GAAG,IAAI9pC,MAAM,CAACmQ,IAAX,GAAkBC,OAAlB,EAAjB,CA1C+B,CA0Ce;;AAE9C,WAAO,KAAP;AACD;;AAED,WAASs7B,aAAT,CAAuBH,QAAvB,EAAiC;AAC/B,UAAMz6B,MAAM,GAAGqG,MAAM,CAACrG,MAAP,CAAcw4B,UAA7B;;AAEA,QAAIiC,QAAQ,CAAChzB,SAAT,GAAqB,CAAzB,EAA4B;AAC1B,UAAIpB,MAAM,CAAC6C,KAAP,IAAgB,CAAC7C,MAAM,CAACrG,MAAP,CAAc/R,IAA/B,IAAuC+R,MAAM,CAACy4B,cAAlD,EAAkE;AAChE;AACA,eAAO,IAAP;AACD;AACF,KALD,MAKO,IAAIpyB,MAAM,CAACsG,WAAP,IAAsB,CAACtG,MAAM,CAACrG,MAAP,CAAc/R,IAArC,IAA6C+R,MAAM,CAACy4B,cAAxD,EAAwE;AAC7E;AACA,aAAO,IAAP;AACD;;AAED,WAAO,KAAP;AACD;;AAED,WAASjE,MAAT,CAAgBx8B,KAAhB,EAAuB;AACrB,QAAIzH,CAAC,GAAGyH,KAAR;AACA,QAAI6hB,mBAAmB,GAAG,IAA1B;AACA,QAAI,CAACxT,MAAM,CAACe,OAAZ,EAAqB;AACrB,UAAMpH,MAAM,GAAGqG,MAAM,CAACrG,MAAP,CAAcw4B,UAA7B;;AAEA,QAAInyB,MAAM,CAACrG,MAAP,CAAckK,OAAlB,EAA2B;AACzB3Z,MAAAA,CAAC,CAACmnB,cAAF;AACD;;AAED,QAAIpgB,MAAM,GAAG+O,MAAM,CAACM,GAApB;;AAEA,QAAIN,MAAM,CAACrG,MAAP,CAAcw4B,UAAd,CAAyBK,YAAzB,KAA0C,WAA9C,EAA2D;AACzDvhC,MAAAA,MAAM,GAAG7D,0DAAC,CAAC4S,MAAM,CAACrG,MAAP,CAAcw4B,UAAd,CAAyBK,YAA1B,CAAV;AACD;;AAED,QAAI,CAACxyB,MAAM,CAACi0B,YAAR,IAAwB,CAAChjC,MAAM,CAAC,CAAD,CAAN,CAAUzG,QAAV,CAAmBN,CAAC,CAAC+G,MAArB,CAAzB,IAAyD,CAAC0I,MAAM,CAACy4B,cAArE,EAAqF,OAAO,IAAP;AACrF,QAAIloC,CAAC,CAAC4nB,aAAN,EAAqB5nB,CAAC,GAAGA,CAAC,CAAC4nB,aAAN,CAjBA,CAiBqB;;AAE1C,QAAIuiB,KAAK,GAAG,CAAZ;AACA,UAAMG,SAAS,GAAGx0B,MAAM,CAACyK,YAAP,GAAsB,CAAC,CAAvB,GAA2B,CAA7C;AACA,UAAMrb,IAAI,GAAG+oB,SAAS,CAACjuB,CAAD,CAAtB;;AAEA,QAAIyP,MAAM,CAAC24B,WAAX,EAAwB;AACtB,UAAItyB,MAAM,CAACmG,YAAP,EAAJ,EAA2B;AACzB,YAAI1N,IAAI,CAAC2a,GAAL,CAAShkB,IAAI,CAAC0kC,MAAd,IAAwBr7B,IAAI,CAAC2a,GAAL,CAAShkB,IAAI,CAAC2kC,MAAd,CAA5B,EAAmDM,KAAK,GAAG,CAACjlC,IAAI,CAAC0kC,MAAN,GAAeU,SAAvB,CAAnD,KAAyF,OAAO,IAAP;AAC1F,OAFD,MAEO,IAAI/7B,IAAI,CAAC2a,GAAL,CAAShkB,IAAI,CAAC2kC,MAAd,IAAwBt7B,IAAI,CAAC2a,GAAL,CAAShkB,IAAI,CAAC0kC,MAAd,CAA5B,EAAmDO,KAAK,GAAG,CAACjlC,IAAI,CAAC2kC,MAAd,CAAnD,KAA6E,OAAO,IAAP;AACrF,KAJD,MAIO;AACLM,MAAAA,KAAK,GAAG57B,IAAI,CAAC2a,GAAL,CAAShkB,IAAI,CAAC0kC,MAAd,IAAwBr7B,IAAI,CAAC2a,GAAL,CAAShkB,IAAI,CAAC2kC,MAAd,CAAxB,GAAgD,CAAC3kC,IAAI,CAAC0kC,MAAN,GAAeU,SAA/D,GAA2E,CAACplC,IAAI,CAAC2kC,MAAzF;AACD;;AAED,QAAIM,KAAK,KAAK,CAAd,EAAiB,OAAO,IAAP;AACjB,QAAI16B,MAAM,CAAC04B,MAAX,EAAmBgC,KAAK,GAAG,CAACA,KAAT,CAhCE,CAgCc;;AAEnC,QAAII,SAAS,GAAGz0B,MAAM,CAACsT,YAAP,KAAwB+gB,KAAK,GAAG16B,MAAM,CAAC44B,WAAvD;AACA,QAAIkC,SAAS,IAAIz0B,MAAM,CAAC+I,YAAP,EAAjB,EAAwC0rB,SAAS,GAAGz0B,MAAM,CAAC+I,YAAP,EAAZ;AACxC,QAAI0rB,SAAS,IAAIz0B,MAAM,CAACgJ,YAAP,EAAjB,EAAwCyrB,SAAS,GAAGz0B,MAAM,CAACgJ,YAAP,EAAZ,CApCnB,CAoCsD;AAC3E;AACA;AACA;AACA;AACA;AACA;;AAEAwK,IAAAA,mBAAmB,GAAGxT,MAAM,CAACrG,MAAP,CAAc/R,IAAd,GAAqB,IAArB,GAA4B,EAAE6sC,SAAS,KAAKz0B,MAAM,CAAC+I,YAAP,EAAd,IAAuC0rB,SAAS,KAAKz0B,MAAM,CAACgJ,YAAP,EAAvD,CAAlD;AACA,QAAIwK,mBAAmB,IAAIxT,MAAM,CAACrG,MAAP,CAAcwT,MAAzC,EAAiDjjB,CAAC,CAACG,eAAF;;AAEjD,QAAI,CAAC2V,MAAM,CAACrG,MAAP,CAAc8J,QAAf,IAA2B,CAACzD,MAAM,CAACrG,MAAP,CAAc8J,QAAd,CAAuB1C,OAAvD,EAAgE;AAC9D;AACA,YAAMqzB,QAAQ,GAAG;AACfr7B,QAAAA,IAAI,EAAEkL,qDAAG,EADM;AAEfowB,QAAAA,KAAK,EAAE57B,IAAI,CAAC2a,GAAL,CAASihB,KAAT,CAFQ;AAGfjzB,QAAAA,SAAS,EAAE3I,IAAI,CAACi8B,IAAL,CAAUL,KAAV,CAHI;AAIfC,QAAAA,GAAG,EAAE3iC;AAJU,OAAjB,CAF8D,CAO3D;;AAEH,UAAIkhC,iBAAiB,CAACvoC,MAAlB,IAA4B,CAAhC,EAAmC;AACjCuoC,QAAAA,iBAAiB,CAACv4B,KAAlB,GADiC,CACN;AAC5B;;AAED,YAAMq6B,SAAS,GAAG9B,iBAAiB,CAACvoC,MAAlB,GAA2BuoC,iBAAiB,CAACA,iBAAiB,CAACvoC,MAAlB,GAA2B,CAA5B,CAA5C,GAA6EsE,SAA/F;AACAikC,MAAAA,iBAAiB,CAAC7mC,IAAlB,CAAuBooC,QAAvB,EAd8D,CAc5B;AAClC;AACA;AACA;AACA;AACA;;AAEA,UAAIO,SAAJ,EAAe;AACb,YAAIP,QAAQ,CAAChzB,SAAT,KAAuBuzB,SAAS,CAACvzB,SAAjC,IAA8CgzB,QAAQ,CAACC,KAAT,GAAiBM,SAAS,CAACN,KAAzE,IAAkFD,QAAQ,CAACr7B,IAAT,GAAgB47B,SAAS,CAAC57B,IAAV,GAAiB,GAAvH,EAA4H;AAC1Ho7B,UAAAA,aAAa,CAACC,QAAD,CAAb;AACD;AACF,OAJD,MAIO;AACLD,QAAAA,aAAa,CAACC,QAAD,CAAb;AACD,OA3B6D,CA2B5D;AACF;;;AAGA,UAAIG,aAAa,CAACH,QAAD,CAAjB,EAA6B;AAC3B,eAAO,IAAP;AACD;AACF,KAlCD,MAkCO;AACL;AACA;AACA;AACA;AACA;AACA,YAAMA,QAAQ,GAAG;AACfr7B,QAAAA,IAAI,EAAEkL,qDAAG,EADM;AAEfowB,QAAAA,KAAK,EAAE57B,IAAI,CAAC2a,GAAL,CAASihB,KAAT,CAFQ;AAGfjzB,QAAAA,SAAS,EAAE3I,IAAI,CAACi8B,IAAL,CAAUL,KAAV;AAHI,OAAjB;AAKA,YAAMO,iBAAiB,GAAGhC,mBAAmB,IAAIwB,QAAQ,CAACr7B,IAAT,GAAgB65B,mBAAmB,CAAC75B,IAApB,GAA2B,GAAlE,IAAyEq7B,QAAQ,CAACC,KAAT,IAAkBzB,mBAAmB,CAACyB,KAA/G,IAAwHD,QAAQ,CAAChzB,SAAT,KAAuBwxB,mBAAmB,CAACxxB,SAA7L;;AAEA,UAAI,CAACwzB,iBAAL,EAAwB;AACtBhC,QAAAA,mBAAmB,GAAGhkC,SAAtB;;AAEA,YAAIoR,MAAM,CAACrG,MAAP,CAAc/R,IAAlB,EAAwB;AACtBoY,UAAAA,MAAM,CAACqT,OAAP;AACD;;AAED,YAAIwX,QAAQ,GAAG7qB,MAAM,CAACsT,YAAP,KAAwB+gB,KAAK,GAAG16B,MAAM,CAAC44B,WAAtD;AACA,cAAM5W,YAAY,GAAG3b,MAAM,CAACsG,WAA5B;AACA,cAAMsV,MAAM,GAAG5b,MAAM,CAAC6C,KAAtB;AACA,YAAIgoB,QAAQ,IAAI7qB,MAAM,CAAC+I,YAAP,EAAhB,EAAuC8hB,QAAQ,GAAG7qB,MAAM,CAAC+I,YAAP,EAAX;AACvC,YAAI8hB,QAAQ,IAAI7qB,MAAM,CAACgJ,YAAP,EAAhB,EAAuC6hB,QAAQ,GAAG7qB,MAAM,CAACgJ,YAAP,EAAX;AACvChJ,QAAAA,MAAM,CAACuT,aAAP,CAAqB,CAArB;AACAvT,QAAAA,MAAM,CAACuK,YAAP,CAAoBsgB,QAApB;AACA7qB,QAAAA,MAAM,CAACsK,cAAP;AACAtK,QAAAA,MAAM,CAACkJ,iBAAP;AACAlJ,QAAAA,MAAM,CAACmJ,mBAAP;;AAEA,YAAI,CAACwS,YAAD,IAAiB3b,MAAM,CAACsG,WAAxB,IAAuC,CAACsV,MAAD,IAAW5b,MAAM,CAAC6C,KAA7D,EAAoE;AAClE7C,UAAAA,MAAM,CAACmJ,mBAAP;AACD;;AAED,YAAInJ,MAAM,CAACrG,MAAP,CAAc8J,QAAd,CAAuBknB,MAA3B,EAAmC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA9rB,UAAAA,YAAY,CAACgkB,OAAD,CAAZ;AACAA,UAAAA,OAAO,GAAGj0B,SAAV;;AAEA,cAAIikC,iBAAiB,CAACvoC,MAAlB,IAA4B,EAAhC,EAAoC;AAClCuoC,YAAAA,iBAAiB,CAACv4B,KAAlB,GADkC,CACP;AAC5B;;AAED,gBAAMq6B,SAAS,GAAG9B,iBAAiB,CAACvoC,MAAlB,GAA2BuoC,iBAAiB,CAACA,iBAAiB,CAACvoC,MAAlB,GAA2B,CAA5B,CAA5C,GAA6EsE,SAA/F;AACA,gBAAMimC,UAAU,GAAGhC,iBAAiB,CAAC,CAAD,CAApC;AACAA,UAAAA,iBAAiB,CAAC7mC,IAAlB,CAAuBooC,QAAvB;;AAEA,cAAIO,SAAS,KAAKP,QAAQ,CAACC,KAAT,GAAiBM,SAAS,CAACN,KAA3B,IAAoCD,QAAQ,CAAChzB,SAAT,KAAuBuzB,SAAS,CAACvzB,SAA1E,CAAb,EAAmG;AACjG;AACAyxB,YAAAA,iBAAiB,CAAC1gC,MAAlB,CAAyB,CAAzB;AACD,WAHD,MAGO,IAAI0gC,iBAAiB,CAACvoC,MAAlB,IAA4B,EAA5B,IAAkC8pC,QAAQ,CAACr7B,IAAT,GAAgB87B,UAAU,CAAC97B,IAA3B,GAAkC,GAApE,IAA2E87B,UAAU,CAACR,KAAX,GAAmBD,QAAQ,CAACC,KAA5B,IAAqC,CAAhH,IAAqHD,QAAQ,CAACC,KAAT,IAAkB,CAA3I,EAA8I;AACnJ;AACA;AACA;AACA;AACA;AACA;AACA,kBAAMS,eAAe,GAAGT,KAAK,GAAG,CAAR,GAAY,GAAZ,GAAkB,GAA1C;AACAzB,YAAAA,mBAAmB,GAAGwB,QAAtB;AACAvB,YAAAA,iBAAiB,CAAC1gC,MAAlB,CAAyB,CAAzB;AACA0wB,YAAAA,OAAO,GAAGhR,0DAAQ,CAAC,MAAM;AACvB7R,cAAAA,MAAM,CAAC8X,cAAP,CAAsB9X,MAAM,CAACrG,MAAP,CAAc3R,KAApC,EAA2C,IAA3C,EAAiD4G,SAAjD,EAA4DkmC,eAA5D;AACD,aAFiB,EAEf,CAFe,CAAlB,CAVmJ,CAY5I;AACR;;AAED,cAAI,CAACjS,OAAL,EAAc;AACZ;AACA;AACA;AACAA,YAAAA,OAAO,GAAGhR,0DAAQ,CAAC,MAAM;AACvB,oBAAMijB,eAAe,GAAG,GAAxB;AACAlC,cAAAA,mBAAmB,GAAGwB,QAAtB;AACAvB,cAAAA,iBAAiB,CAAC1gC,MAAlB,CAAyB,CAAzB;AACA6N,cAAAA,MAAM,CAAC8X,cAAP,CAAsB9X,MAAM,CAACrG,MAAP,CAAc3R,KAApC,EAA2C,IAA3C,EAAiD4G,SAAjD,EAA4DkmC,eAA5D;AACD,aALiB,EAKf,GALe,CAAlB;AAMD;AACF,SA1EqB,CA0EpB;;;AAGF,YAAI,CAACF,iBAAL,EAAwB/yB,IAAI,CAAC,QAAD,EAAW3X,CAAX,CAAJ,CA7EF,CA6EqB;;AAE3C,YAAI8V,MAAM,CAACrG,MAAP,CAAc4X,QAAd,IAA0BvR,MAAM,CAACrG,MAAP,CAAco7B,4BAA5C,EAA0E/0B,MAAM,CAACuR,QAAP,CAAgBvX,IAAhB,GA/EpD,CA+E4E;;AAElG,YAAI6wB,QAAQ,KAAK7qB,MAAM,CAAC+I,YAAP,EAAb,IAAsC8hB,QAAQ,KAAK7qB,MAAM,CAACgJ,YAAP,EAAvD,EAA8E,OAAO,IAAP;AAC/E;AACF;;AAED,QAAI9e,CAAC,CAACmnB,cAAN,EAAsBnnB,CAAC,CAACmnB,cAAF,GAAtB,KAA8CnnB,CAAC,CAACmlC,WAAF,GAAgB,KAAhB;AAC9C,WAAO,KAAP;AACD;;AAED,WAAS39B,MAAT,CAAgB2e,MAAhB,EAAwB;AACtB,QAAIpf,MAAM,GAAG+O,MAAM,CAACM,GAApB;;AAEA,QAAIN,MAAM,CAACrG,MAAP,CAAcw4B,UAAd,CAAyBK,YAAzB,KAA0C,WAA9C,EAA2D;AACzDvhC,MAAAA,MAAM,GAAG7D,0DAAC,CAAC4S,MAAM,CAACrG,MAAP,CAAcw4B,UAAd,CAAyBK,YAA1B,CAAV;AACD;;AAEDvhC,IAAAA,MAAM,CAACof,MAAD,CAAN,CAAe,YAAf,EAA6B2jB,gBAA7B;AACA/iC,IAAAA,MAAM,CAACof,MAAD,CAAN,CAAe,YAAf,EAA6B6jB,gBAA7B;AACAjjC,IAAAA,MAAM,CAACof,MAAD,CAAN,CAAe,OAAf,EAAwB8d,MAAxB;AACD;;AAED,WAASvsB,MAAT,GAAkB;AAChB,QAAI5B,MAAM,CAACrG,MAAP,CAAckK,OAAlB,EAA2B;AACzB7D,MAAAA,MAAM,CAAC0L,SAAP,CAAiBxZ,mBAAjB,CAAqC,OAArC,EAA8Ci8B,MAA9C;AACA,aAAO,IAAP;AACD;;AAED,QAAInuB,MAAM,CAACmyB,UAAP,CAAkBpxB,OAAtB,EAA+B,OAAO,KAAP;AAC/BrP,IAAAA,MAAM,CAAC,IAAD,CAAN;AACAsO,IAAAA,MAAM,CAACmyB,UAAP,CAAkBpxB,OAAlB,GAA4B,IAA5B;AACA,WAAO,IAAP;AACD;;AAED,WAASY,OAAT,GAAmB;AACjB,QAAI3B,MAAM,CAACrG,MAAP,CAAckK,OAAlB,EAA2B;AACzB7D,MAAAA,MAAM,CAAC0L,SAAP,CAAiB5iB,gBAAjB,CAAkC6I,KAAlC,EAAyCw8B,MAAzC;AACA,aAAO,IAAP;AACD;;AAED,QAAI,CAACnuB,MAAM,CAACmyB,UAAP,CAAkBpxB,OAAvB,EAAgC,OAAO,KAAP;AAChCrP,IAAAA,MAAM,CAAC,KAAD,CAAN;AACAsO,IAAAA,MAAM,CAACmyB,UAAP,CAAkBpxB,OAAlB,GAA4B,KAA5B;AACA,WAAO,IAAP;AACD;;AAEDrQ,EAAAA,EAAE,CAAC,MAAD,EAAS,MAAM;AACf,QAAI,CAACsP,MAAM,CAACrG,MAAP,CAAcw4B,UAAd,CAAyBpxB,OAA1B,IAAqCf,MAAM,CAACrG,MAAP,CAAckK,OAAvD,EAAgE;AAC9DlC,MAAAA,OAAO;AACR;;AAED,QAAI3B,MAAM,CAACrG,MAAP,CAAcw4B,UAAd,CAAyBpxB,OAA7B,EAAsCa,MAAM;AAC7C,GANC,CAAF;AAOAlR,EAAAA,EAAE,CAAC,SAAD,EAAY,MAAM;AAClB,QAAIsP,MAAM,CAACrG,MAAP,CAAckK,OAAlB,EAA2B;AACzBjC,MAAAA,MAAM;AACP;;AAED,QAAI5B,MAAM,CAACmyB,UAAP,CAAkBpxB,OAAtB,EAA+BY,OAAO;AACvC,GANC,CAAF;AAOAvW,EAAAA,MAAM,CAACsO,MAAP,CAAcsG,MAAM,CAACmyB,UAArB,EAAiC;AAC/BvwB,IAAAA,MAD+B;AAE/BD,IAAAA;AAF+B,GAAjC;AAID;;;;;;;;;;;;;;;;ACraD;AACA;AACe,SAASna,UAAT,CAAoB;AACjCwY,EAAAA,MADiC;AAEjC8F,EAAAA,YAFiC;AAGjCpV,EAAAA,EAHiC;AAIjCmR,EAAAA;AAJiC,CAApB,EAKZ;AACDiE,EAAAA,YAAY,CAAC;AACXvd,IAAAA,UAAU,EAAE;AACVC,MAAAA,MAAM,EAAE,IADE;AAEVC,MAAAA,MAAM,EAAE,IAFE;AAGVwsC,MAAAA,WAAW,EAAE,KAHH;AAIVC,MAAAA,aAAa,EAAE,wBAJL;AAKVC,MAAAA,WAAW,EAAE,sBALH;AAMVC,MAAAA,SAAS,EAAE;AAND;AADD,GAAD,CAAZ;AAUAp1B,EAAAA,MAAM,CAACzX,UAAP,GAAoB;AAClBC,IAAAA,MAAM,EAAE,IADU;AAElBo5B,IAAAA,OAAO,EAAE,IAFS;AAGlBn5B,IAAAA,MAAM,EAAE,IAHU;AAIlBo5B,IAAAA,OAAO,EAAE;AAJS,GAApB;;AAOA,WAASwT,KAAT,CAAehtC,EAAf,EAAmB;AACjB,QAAIiY,GAAJ;;AAEA,QAAIjY,EAAJ,EAAQ;AACNiY,MAAAA,GAAG,GAAGlT,0DAAC,CAAC/E,EAAD,CAAP;;AAEA,UAAI2X,MAAM,CAACrG,MAAP,CAAcmV,iBAAd,IAAmC,OAAOzmB,EAAP,KAAc,QAAjD,IAA6DiY,GAAG,CAAChW,MAAJ,GAAa,CAA1E,IAA+E0V,MAAM,CAACM,GAAP,CAAWjJ,IAAX,CAAgBhP,EAAhB,EAAoBiC,MAApB,KAA+B,CAAlH,EAAqH;AACnHgW,QAAAA,GAAG,GAAGN,MAAM,CAACM,GAAP,CAAWjJ,IAAX,CAAgBhP,EAAhB,CAAN;AACD;AACF;;AAED,WAAOiY,GAAP;AACD;;AAED,WAASg1B,QAAT,CAAkBh1B,GAAlB,EAAuBi1B,QAAvB,EAAiC;AAC/B,UAAM57B,MAAM,GAAGqG,MAAM,CAACrG,MAAP,CAAcpR,UAA7B;;AAEA,QAAI+X,GAAG,IAAIA,GAAG,CAAChW,MAAJ,GAAa,CAAxB,EAA2B;AACzBgW,MAAAA,GAAG,CAACi1B,QAAQ,GAAG,UAAH,GAAgB,aAAzB,CAAH,CAA2C57B,MAAM,CAACu7B,aAAlD;AACA,UAAI50B,GAAG,CAAC,CAAD,CAAH,IAAUA,GAAG,CAAC,CAAD,CAAH,CAAOkiB,OAAP,KAAmB,QAAjC,EAA2CliB,GAAG,CAAC,CAAD,CAAH,CAAOi1B,QAAP,GAAkBA,QAAlB;;AAE3C,UAAIv1B,MAAM,CAACrG,MAAP,CAAckR,aAAd,IAA+B7K,MAAM,CAACe,OAA1C,EAAmD;AACjDT,QAAAA,GAAG,CAACN,MAAM,CAACmC,QAAP,GAAkB,UAAlB,GAA+B,aAAhC,CAAH,CAAkDxI,MAAM,CAACy7B,SAAzD;AACD;AACF;AACF;;AAED,WAAS3wB,MAAT,GAAkB;AAChB;AACA,QAAIzE,MAAM,CAACrG,MAAP,CAAc/R,IAAlB,EAAwB;AACxB,UAAM;AACJg6B,MAAAA,OADI;AAEJC,MAAAA;AAFI,QAGF7hB,MAAM,CAACzX,UAHX;AAIA+sC,IAAAA,QAAQ,CAACzT,OAAD,EAAU7hB,MAAM,CAACsG,WAAjB,CAAR;AACAgvB,IAAAA,QAAQ,CAAC1T,OAAD,EAAU5hB,MAAM,CAAC6C,KAAjB,CAAR;AACD;;AAED,WAAS2yB,WAAT,CAAqBtrC,CAArB,EAAwB;AACtBA,IAAAA,CAAC,CAACmnB,cAAF;AACA,QAAIrR,MAAM,CAACsG,WAAP,IAAsB,CAACtG,MAAM,CAACrG,MAAP,CAAc/R,IAAzC,EAA+C;AAC/CoY,IAAAA,MAAM,CAAC4X,SAAP;AACD;;AAED,WAAS6d,WAAT,CAAqBvrC,CAArB,EAAwB;AACtBA,IAAAA,CAAC,CAACmnB,cAAF;AACA,QAAIrR,MAAM,CAAC6C,KAAP,IAAgB,CAAC7C,MAAM,CAACrG,MAAP,CAAc/R,IAAnC,EAAyC;AACzCoY,IAAAA,MAAM,CAAC2X,SAAP;AACD;;AAED,WAAShP,IAAT,GAAgB;AACd,UAAMhP,MAAM,GAAGqG,MAAM,CAACrG,MAAP,CAAcpR,UAA7B;AACAyX,IAAAA,MAAM,CAACrG,MAAP,CAAcpR,UAAd,GAA2BysC,oFAAyB,CAACh1B,MAAD,EAASA,MAAM,CAACW,cAAP,CAAsBpY,UAA/B,EAA2CyX,MAAM,CAACrG,MAAP,CAAcpR,UAAzD,EAAqE;AACvHC,MAAAA,MAAM,EAAE,oBAD+G;AAEvHC,MAAAA,MAAM,EAAE;AAF+G,KAArE,CAApD;AAIA,QAAI,EAAEkR,MAAM,CAACnR,MAAP,IAAiBmR,MAAM,CAAClR,MAA1B,CAAJ,EAAuC;AACvC,UAAMm5B,OAAO,GAAGyT,KAAK,CAAC17B,MAAM,CAACnR,MAAR,CAArB;AACA,UAAMq5B,OAAO,GAAGwT,KAAK,CAAC17B,MAAM,CAAClR,MAAR,CAArB;;AAEA,QAAIm5B,OAAO,IAAIA,OAAO,CAACt3B,MAAR,GAAiB,CAAhC,EAAmC;AACjCs3B,MAAAA,OAAO,CAAClxB,EAAR,CAAW,OAAX,EAAoB+kC,WAApB;AACD;;AAED,QAAI5T,OAAO,IAAIA,OAAO,CAACv3B,MAAR,GAAiB,CAAhC,EAAmC;AACjCu3B,MAAAA,OAAO,CAACnxB,EAAR,CAAW,OAAX,EAAoB8kC,WAApB;AACD;;AAEDpqC,IAAAA,MAAM,CAACsO,MAAP,CAAcsG,MAAM,CAACzX,UAArB,EAAiC;AAC/Bq5B,MAAAA,OAD+B;AAE/Bp5B,MAAAA,MAAM,EAAEo5B,OAAO,IAAIA,OAAO,CAAC,CAAD,CAFK;AAG/BC,MAAAA,OAH+B;AAI/Bp5B,MAAAA,MAAM,EAAEo5B,OAAO,IAAIA,OAAO,CAAC,CAAD;AAJK,KAAjC;;AAOA,QAAI,CAAC7hB,MAAM,CAACe,OAAZ,EAAqB;AACnB,UAAI6gB,OAAJ,EAAaA,OAAO,CAAC9zB,QAAR,CAAiB6L,MAAM,CAACy7B,SAAxB;AACb,UAAIvT,OAAJ,EAAaA,OAAO,CAAC/zB,QAAR,CAAiB6L,MAAM,CAACy7B,SAAxB;AACd;AACF;;AAED,WAASnpB,OAAT,GAAmB;AACjB,UAAM;AACJ2V,MAAAA,OADI;AAEJC,MAAAA;AAFI,QAGF7hB,MAAM,CAACzX,UAHX;;AAKA,QAAIq5B,OAAO,IAAIA,OAAO,CAACt3B,MAAvB,EAA+B;AAC7Bs3B,MAAAA,OAAO,CAAC7vB,GAAR,CAAY,OAAZ,EAAqB0jC,WAArB;AACA7T,MAAAA,OAAO,CAACxzB,WAAR,CAAoB4R,MAAM,CAACrG,MAAP,CAAcpR,UAAd,CAAyB2sC,aAA7C;AACD;;AAED,QAAIrT,OAAO,IAAIA,OAAO,CAACv3B,MAAvB,EAA+B;AAC7Bu3B,MAAAA,OAAO,CAAC9vB,GAAR,CAAY,OAAZ,EAAqByjC,WAArB;AACA3T,MAAAA,OAAO,CAACzzB,WAAR,CAAoB4R,MAAM,CAACrG,MAAP,CAAcpR,UAAd,CAAyB2sC,aAA7C;AACD;AACF;;AAEDxkC,EAAAA,EAAE,CAAC,MAAD,EAAS,MAAM;AACfiY,IAAAA,IAAI;AACJlE,IAAAA,MAAM;AACP,GAHC,CAAF;AAIA/T,EAAAA,EAAE,CAAC,6BAAD,EAAgC,MAAM;AACtC+T,IAAAA,MAAM;AACP,GAFC,CAAF;AAGA/T,EAAAA,EAAE,CAAC,SAAD,EAAY,MAAM;AAClBub,IAAAA,OAAO;AACR,GAFC,CAAF;AAGAvb,EAAAA,EAAE,CAAC,gBAAD,EAAmB,MAAM;AACzB,UAAM;AACJkxB,MAAAA,OADI;AAEJC,MAAAA;AAFI,QAGF7hB,MAAM,CAACzX,UAHX;;AAKA,QAAIq5B,OAAJ,EAAa;AACXA,MAAAA,OAAO,CAAC5hB,MAAM,CAACe,OAAP,GAAiB,aAAjB,GAAiC,UAAlC,CAAP,CAAqDf,MAAM,CAACrG,MAAP,CAAcpR,UAAd,CAAyB6sC,SAA9E;AACD;;AAED,QAAIvT,OAAJ,EAAa;AACXA,MAAAA,OAAO,CAAC7hB,MAAM,CAACe,OAAP,GAAiB,aAAjB,GAAiC,UAAlC,CAAP,CAAqDf,MAAM,CAACrG,MAAP,CAAcpR,UAAd,CAAyB6sC,SAA9E;AACD;AACF,GAbC,CAAF;AAcA1kC,EAAAA,EAAE,CAAC,OAAD,EAAU,CAACozB,EAAD,EAAK55B,CAAL,KAAW;AACrB,UAAM;AACJ03B,MAAAA,OADI;AAEJC,MAAAA;AAFI,QAGF7hB,MAAM,CAACzX,UAHX;AAIA,UAAMmtC,QAAQ,GAAGxrC,CAAC,CAAC+G,MAAnB;;AAEA,QAAI+O,MAAM,CAACrG,MAAP,CAAcpR,UAAd,CAAyB0sC,WAAzB,IAAwC,CAAC7nC,0DAAC,CAACsoC,QAAD,CAAD,CAAYrkC,EAAZ,CAAewwB,OAAf,CAAzC,IAAoE,CAACz0B,0DAAC,CAACsoC,QAAD,CAAD,CAAYrkC,EAAZ,CAAeuwB,OAAf,CAAzE,EAAkG;AAChG,UAAI5hB,MAAM,CAAC5X,UAAP,IAAqB4X,MAAM,CAACrG,MAAP,CAAcvR,UAAnC,IAAiD4X,MAAM,CAACrG,MAAP,CAAcvR,UAAd,CAAyBE,SAA1E,KAAwF0X,MAAM,CAAC5X,UAAP,CAAkBC,EAAlB,KAAyBqtC,QAAzB,IAAqC11B,MAAM,CAAC5X,UAAP,CAAkBC,EAAlB,CAAqBmC,QAArB,CAA8BkrC,QAA9B,CAA7H,CAAJ,EAA2K;AAC3K,UAAIC,QAAJ;;AAEA,UAAI/T,OAAJ,EAAa;AACX+T,QAAAA,QAAQ,GAAG/T,OAAO,CAACrzB,QAAR,CAAiByR,MAAM,CAACrG,MAAP,CAAcpR,UAAd,CAAyB4sC,WAA1C,CAAX;AACD,OAFD,MAEO,IAAItT,OAAJ,EAAa;AAClB8T,QAAAA,QAAQ,GAAG9T,OAAO,CAACtzB,QAAR,CAAiByR,MAAM,CAACrG,MAAP,CAAcpR,UAAd,CAAyB4sC,WAA1C,CAAX;AACD;;AAED,UAAIQ,QAAQ,KAAK,IAAjB,EAAuB;AACrB9zB,QAAAA,IAAI,CAAC,gBAAD,CAAJ;AACD,OAFD,MAEO;AACLA,QAAAA,IAAI,CAAC,gBAAD,CAAJ;AACD;;AAED,UAAI+f,OAAJ,EAAa;AACXA,QAAAA,OAAO,CAACvzB,WAAR,CAAoB2R,MAAM,CAACrG,MAAP,CAAcpR,UAAd,CAAyB4sC,WAA7C;AACD;;AAED,UAAItT,OAAJ,EAAa;AACXA,QAAAA,OAAO,CAACxzB,WAAR,CAAoB2R,MAAM,CAACrG,MAAP,CAAcpR,UAAd,CAAyB4sC,WAA7C;AACD;AACF;AACF,GA/BC,CAAF;AAgCA/pC,EAAAA,MAAM,CAACsO,MAAP,CAAcsG,MAAM,CAACzX,UAArB,EAAiC;AAC/Bkc,IAAAA,MAD+B;AAE/BkE,IAAAA,IAF+B;AAG/BsD,IAAAA;AAH+B,GAAjC;AAKD;;;;;;;;;;;;;;;;;ACxLD;AACA;AACA;AACe,SAASxkB,UAAT,CAAoB;AACjCuY,EAAAA,MADiC;AAEjC8F,EAAAA,YAFiC;AAGjCpV,EAAAA,EAHiC;AAIjCmR,EAAAA;AAJiC,CAApB,EAKZ;AACD,QAAM+zB,GAAG,GAAG,mBAAZ;AACA9vB,EAAAA,YAAY,CAAC;AACX1d,IAAAA,UAAU,EAAE;AACVC,MAAAA,EAAE,EAAE,IADM;AAEVwtC,MAAAA,aAAa,EAAE,MAFL;AAGVvtC,MAAAA,SAAS,EAAE,KAHD;AAIV2sC,MAAAA,WAAW,EAAE,KAJH;AAKV5S,MAAAA,YAAY,EAAE,IALJ;AAMVyT,MAAAA,iBAAiB,EAAE,IANT;AAOVC,MAAAA,cAAc,EAAE,IAPN;AAQVC,MAAAA,YAAY,EAAE,IARJ;AASVC,MAAAA,mBAAmB,EAAE,KATX;AAUVxjB,MAAAA,IAAI,EAAE,SAVI;AAWV;AACAyjB,MAAAA,cAAc,EAAE,KAZN;AAaVC,MAAAA,kBAAkB,EAAE,CAbV;AAcVC,MAAAA,qBAAqB,EAAEC,MAAM,IAAIA,MAdvB;AAeVC,MAAAA,mBAAmB,EAAED,MAAM,IAAIA,MAfrB;AAgBVvU,MAAAA,WAAW,EAAG,GAAE8T,GAAI,SAhBV;AAiBVW,MAAAA,iBAAiB,EAAG,GAAEX,GAAI,gBAjBhB;AAkBVY,MAAAA,aAAa,EAAG,GAAEZ,GAAI,GAlBZ;AAmBVa,MAAAA,YAAY,EAAG,GAAEb,GAAI,UAnBX;AAoBVc,MAAAA,UAAU,EAAG,GAAEd,GAAI,QApBT;AAqBVT,MAAAA,WAAW,EAAG,GAAES,GAAI,SArBV;AAsBVe,MAAAA,oBAAoB,EAAG,GAAEf,GAAI,mBAtBnB;AAuBVgB,MAAAA,wBAAwB,EAAG,GAAEhB,GAAI,uBAvBvB;AAwBViB,MAAAA,cAAc,EAAG,GAAEjB,GAAI,YAxBb;AAyBVR,MAAAA,SAAS,EAAG,GAAEQ,GAAI,OAzBR;AA0BVkB,MAAAA,eAAe,EAAG,GAAElB,GAAI,aA1Bd;AA2BVmB,MAAAA,aAAa,EAAG,GAAEnB,GAAI;AA3BZ;AADD,GAAD,CAAZ;AA+BA51B,EAAAA,MAAM,CAAC5X,UAAP,GAAoB;AAClBC,IAAAA,EAAE,EAAE,IADc;AAElBiY,IAAAA,GAAG,EAAE,IAFa;AAGlB2hB,IAAAA,OAAO,EAAE;AAHS,GAApB;AAKA,MAAI+U,UAAJ;AACA,MAAIC,kBAAkB,GAAG,CAAzB;;AAEA,WAASC,oBAAT,GAAgC;AAC9B,WAAO,CAACl3B,MAAM,CAACrG,MAAP,CAAcvR,UAAd,CAAyBC,EAA1B,IAAgC,CAAC2X,MAAM,CAAC5X,UAAP,CAAkBC,EAAnD,IAAyD,CAAC2X,MAAM,CAAC5X,UAAP,CAAkBkY,GAA5E,IAAmFN,MAAM,CAAC5X,UAAP,CAAkBkY,GAAlB,CAAsBhW,MAAtB,KAAiC,CAA3H;AACD;;AAED,WAAS6sC,cAAT,CAAwB/U,SAAxB,EAAmCyI,QAAnC,EAA6C;AAC3C,UAAM;AACJ0L,MAAAA;AADI,QAEFv2B,MAAM,CAACrG,MAAP,CAAcvR,UAFlB;AAGAg6B,IAAAA,SAAS,CAACyI,QAAD,CAAT,GAAsB/8B,QAAtB,CAAgC,GAAEyoC,iBAAkB,IAAG1L,QAAS,EAAhE,EAAmEA,QAAnE,IAA+E/8B,QAA/E,CAAyF,GAAEyoC,iBAAkB,IAAG1L,QAAS,IAAGA,QAAS,EAArI;AACD;;AAED,WAASpmB,MAAT,GAAkB;AAChB;AACA,UAAMrB,GAAG,GAAGpD,MAAM,CAACoD,GAAnB;AACA,UAAMzJ,MAAM,GAAGqG,MAAM,CAACrG,MAAP,CAAcvR,UAA7B;AACA,QAAI8uC,oBAAoB,EAAxB,EAA4B;AAC5B,UAAM5a,YAAY,GAAGtc,MAAM,CAAC2Z,OAAP,IAAkB3Z,MAAM,CAACrG,MAAP,CAAcggB,OAAd,CAAsB5Y,OAAxC,GAAkDf,MAAM,CAAC2Z,OAAP,CAAepX,MAAf,CAAsBjY,MAAxE,GAAiF0V,MAAM,CAACuC,MAAP,CAAcjY,MAApH;AACA,UAAMgW,GAAG,GAAGN,MAAM,CAAC5X,UAAP,CAAkBkY,GAA9B,CANgB,CAMmB;;AAEnC,QAAInX,OAAJ;AACA,UAAMokC,KAAK,GAAGvtB,MAAM,CAACrG,MAAP,CAAc/R,IAAd,GAAqB6Q,IAAI,CAAC6c,IAAL,CAAU,CAACgH,YAAY,GAAGtc,MAAM,CAACK,YAAP,GAAsB,CAAtC,IAA2CL,MAAM,CAACrG,MAAP,CAAc+T,cAAnE,CAArB,GAA0G1N,MAAM,CAAC4C,QAAP,CAAgBtY,MAAxI;;AAEA,QAAI0V,MAAM,CAACrG,MAAP,CAAc/R,IAAlB,EAAwB;AACtBuB,MAAAA,OAAO,GAAGsP,IAAI,CAAC6c,IAAL,CAAU,CAACtV,MAAM,CAACG,WAAP,GAAqBH,MAAM,CAACK,YAA7B,IAA6CL,MAAM,CAACrG,MAAP,CAAc+T,cAArE,CAAV;;AAEA,UAAIvkB,OAAO,GAAGmzB,YAAY,GAAG,CAAf,GAAmBtc,MAAM,CAACK,YAAP,GAAsB,CAAvD,EAA0D;AACxDlX,QAAAA,OAAO,IAAImzB,YAAY,GAAGtc,MAAM,CAACK,YAAP,GAAsB,CAAhD;AACD;;AAED,UAAIlX,OAAO,GAAGokC,KAAK,GAAG,CAAtB,EAAyBpkC,OAAO,IAAIokC,KAAX;AACzB,UAAIpkC,OAAO,GAAG,CAAV,IAAe6W,MAAM,CAACrG,MAAP,CAAcy9B,cAAd,KAAiC,SAApD,EAA+DjuC,OAAO,GAAGokC,KAAK,GAAGpkC,OAAlB;AAChE,KATD,MASO,IAAI,OAAO6W,MAAM,CAAC0Y,SAAd,KAA4B,WAAhC,EAA6C;AAClDvvB,MAAAA,OAAO,GAAG6W,MAAM,CAAC0Y,SAAjB;AACD,KAFM,MAEA;AACLvvB,MAAAA,OAAO,GAAG6W,MAAM,CAACG,WAAP,IAAsB,CAAhC;AACD,KAxBe,CAwBd;;;AAGF,QAAIxG,MAAM,CAAC8Y,IAAP,KAAgB,SAAhB,IAA6BzS,MAAM,CAAC5X,UAAP,CAAkB65B,OAA/C,IAA0DjiB,MAAM,CAAC5X,UAAP,CAAkB65B,OAAlB,CAA0B33B,MAA1B,GAAmC,CAAjG,EAAoG;AAClG,YAAM23B,OAAO,GAAGjiB,MAAM,CAAC5X,UAAP,CAAkB65B,OAAlC;AACA,UAAIoV,UAAJ;AACA,UAAI3S,SAAJ;AACA,UAAI4S,QAAJ;;AAEA,UAAI39B,MAAM,CAACu8B,cAAX,EAA2B;AACzBc,QAAAA,UAAU,GAAG/U,OAAO,CAACzsB,EAAR,CAAW,CAAX,EAAcwK,MAAM,CAACmG,YAAP,KAAwB,YAAxB,GAAuC,aAArD,EAAoE,IAApE,CAAb;AACA7F,QAAAA,GAAG,CAAC/M,GAAJ,CAAQyM,MAAM,CAACmG,YAAP,KAAwB,OAAxB,GAAkC,QAA1C,EAAqD,GAAE6wB,UAAU,IAAIr9B,MAAM,CAACw8B,kBAAP,GAA4B,CAAhC,CAAmC,IAApG;;AAEA,YAAIx8B,MAAM,CAACw8B,kBAAP,GAA4B,CAA5B,IAAiCn2B,MAAM,CAACmZ,aAAP,KAAyBvqB,SAA9D,EAAyE;AACvEqoC,UAAAA,kBAAkB,IAAI9tC,OAAO,GAAG6W,MAAM,CAACmZ,aAAvC;;AAEA,cAAI8d,kBAAkB,GAAGt9B,MAAM,CAACw8B,kBAAP,GAA4B,CAArD,EAAwD;AACtDc,YAAAA,kBAAkB,GAAGt9B,MAAM,CAACw8B,kBAAP,GAA4B,CAAjD;AACD,WAFD,MAEO,IAAIc,kBAAkB,GAAG,CAAzB,EAA4B;AACjCA,YAAAA,kBAAkB,GAAG,CAArB;AACD;AACF;;AAEDI,QAAAA,UAAU,GAAGluC,OAAO,GAAG8tC,kBAAvB;AACAvS,QAAAA,SAAS,GAAG2S,UAAU,IAAI5+B,IAAI,CAACE,GAAL,CAASspB,OAAO,CAAC33B,MAAjB,EAAyBqP,MAAM,CAACw8B,kBAAhC,IAAsD,CAA1D,CAAtB;AACAmB,QAAAA,QAAQ,GAAG,CAAC5S,SAAS,GAAG2S,UAAb,IAA2B,CAAtC;AACD;;AAEDpV,MAAAA,OAAO,CAAC7zB,WAAR,CAAoB,CAAC,EAAD,EAAK,OAAL,EAAc,YAAd,EAA4B,OAA5B,EAAqC,YAArC,EAAmD,OAAnD,EAA4DH,GAA5D,CAAgEspC,MAAM,IAAK,GAAE59B,MAAM,CAAC48B,iBAAkB,GAAEgB,MAAO,EAA/G,EAAkHxzB,IAAlH,CAAuH,GAAvH,CAApB;;AAEA,UAAIzD,GAAG,CAAChW,MAAJ,GAAa,CAAjB,EAAoB;AAClB23B,QAAAA,OAAO,CAACptB,IAAR,CAAa2iC,MAAM,IAAI;AACrB,gBAAMC,OAAO,GAAGrqC,0DAAC,CAACoqC,MAAD,CAAjB;AACA,gBAAME,WAAW,GAAGD,OAAO,CAAC3iC,KAAR,EAApB;;AAEA,cAAI4iC,WAAW,KAAKvuC,OAApB,EAA6B;AAC3BsuC,YAAAA,OAAO,CAAC3pC,QAAR,CAAiB6L,MAAM,CAAC48B,iBAAxB;AACD;;AAED,cAAI58B,MAAM,CAACu8B,cAAX,EAA2B;AACzB,gBAAIwB,WAAW,IAAIL,UAAf,IAA6BK,WAAW,IAAIhT,SAAhD,EAA2D;AACzD+S,cAAAA,OAAO,CAAC3pC,QAAR,CAAkB,GAAE6L,MAAM,CAAC48B,iBAAkB,OAA7C;AACD;;AAED,gBAAImB,WAAW,KAAKL,UAApB,EAAgC;AAC9BF,cAAAA,cAAc,CAACM,OAAD,EAAU,MAAV,CAAd;AACD;;AAED,gBAAIC,WAAW,KAAKhT,SAApB,EAA+B;AAC7ByS,cAAAA,cAAc,CAACM,OAAD,EAAU,MAAV,CAAd;AACD;AACF;AACF,SArBD;AAsBD,OAvBD,MAuBO;AACL,cAAMA,OAAO,GAAGxV,OAAO,CAACzsB,EAAR,CAAWrM,OAAX,CAAhB;AACA,cAAMuuC,WAAW,GAAGD,OAAO,CAAC3iC,KAAR,EAApB;AACA2iC,QAAAA,OAAO,CAAC3pC,QAAR,CAAiB6L,MAAM,CAAC48B,iBAAxB;;AAEA,YAAI58B,MAAM,CAACu8B,cAAX,EAA2B;AACzB,gBAAMyB,qBAAqB,GAAG1V,OAAO,CAACzsB,EAAR,CAAW6hC,UAAX,CAA9B;AACA,gBAAMO,oBAAoB,GAAG3V,OAAO,CAACzsB,EAAR,CAAWkvB,SAAX,CAA7B;;AAEA,eAAK,IAAIz6B,CAAC,GAAGotC,UAAb,EAAyBptC,CAAC,IAAIy6B,SAA9B,EAAyCz6B,CAAC,IAAI,CAA9C,EAAiD;AAC/Cg4B,YAAAA,OAAO,CAACzsB,EAAR,CAAWvL,CAAX,EAAc6D,QAAd,CAAwB,GAAE6L,MAAM,CAAC48B,iBAAkB,OAAnD;AACD;;AAED,cAAIv2B,MAAM,CAACrG,MAAP,CAAc/R,IAAlB,EAAwB;AACtB,gBAAI8vC,WAAW,IAAIzV,OAAO,CAAC33B,MAAR,GAAiBqP,MAAM,CAACw8B,kBAA3C,EAA+D;AAC7D,mBAAK,IAAIlsC,CAAC,GAAG0P,MAAM,CAACw8B,kBAApB,EAAwClsC,CAAC,IAAI,CAA7C,EAAgDA,CAAC,IAAI,CAArD,EAAwD;AACtDg4B,gBAAAA,OAAO,CAACzsB,EAAR,CAAWysB,OAAO,CAAC33B,MAAR,GAAiBL,CAA5B,EAA+B6D,QAA/B,CAAyC,GAAE6L,MAAM,CAAC48B,iBAAkB,OAApE;AACD;;AAEDtU,cAAAA,OAAO,CAACzsB,EAAR,CAAWysB,OAAO,CAAC33B,MAAR,GAAiBqP,MAAM,CAACw8B,kBAAxB,GAA6C,CAAxD,EAA2DroC,QAA3D,CAAqE,GAAE6L,MAAM,CAAC48B,iBAAkB,OAAhG;AACD,aAND,MAMO;AACLY,cAAAA,cAAc,CAACQ,qBAAD,EAAwB,MAAxB,CAAd;AACAR,cAAAA,cAAc,CAACS,oBAAD,EAAuB,MAAvB,CAAd;AACD;AACF,WAXD,MAWO;AACLT,YAAAA,cAAc,CAACQ,qBAAD,EAAwB,MAAxB,CAAd;AACAR,YAAAA,cAAc,CAACS,oBAAD,EAAuB,MAAvB,CAAd;AACD;AACF;AACF;;AAED,UAAIj+B,MAAM,CAACu8B,cAAX,EAA2B;AACzB,cAAM2B,oBAAoB,GAAGp/B,IAAI,CAACE,GAAL,CAASspB,OAAO,CAAC33B,MAAjB,EAAyBqP,MAAM,CAACw8B,kBAAP,GAA4B,CAArD,CAA7B;AACA,cAAM2B,aAAa,GAAG,CAACd,UAAU,GAAGa,oBAAb,GAAoCb,UAArC,IAAmD,CAAnD,GAAuDM,QAAQ,GAAGN,UAAxF;AACA,cAAMe,UAAU,GAAG30B,GAAG,GAAG,OAAH,GAAa,MAAnC;AACA6e,QAAAA,OAAO,CAAC1uB,GAAR,CAAYyM,MAAM,CAACmG,YAAP,KAAwB4xB,UAAxB,GAAqC,KAAjD,EAAyD,GAAED,aAAc,IAAzE;AACD;AACF;;AAED,QAAIn+B,MAAM,CAAC8Y,IAAP,KAAgB,UAApB,EAAgC;AAC9BnS,MAAAA,GAAG,CAACjJ,IAAJ,CAASgoB,0EAAiB,CAAC1lB,MAAM,CAAC88B,YAAR,CAA1B,EAAiDzhC,IAAjD,CAAsD2E,MAAM,CAACy8B,qBAAP,CAA6BjtC,OAAO,GAAG,CAAvC,CAAtD;AACAmX,MAAAA,GAAG,CAACjJ,IAAJ,CAASgoB,0EAAiB,CAAC1lB,MAAM,CAAC+8B,UAAR,CAA1B,EAA+C1hC,IAA/C,CAAoD2E,MAAM,CAAC28B,mBAAP,CAA2B/I,KAA3B,CAApD;AACD;;AAED,QAAI5zB,MAAM,CAAC8Y,IAAP,KAAgB,aAApB,EAAmC;AACjC,UAAIulB,oBAAJ;;AAEA,UAAIr+B,MAAM,CAACs8B,mBAAX,EAAgC;AAC9B+B,QAAAA,oBAAoB,GAAGh4B,MAAM,CAACmG,YAAP,KAAwB,UAAxB,GAAqC,YAA5D;AACD,OAFD,MAEO;AACL6xB,QAAAA,oBAAoB,GAAGh4B,MAAM,CAACmG,YAAP,KAAwB,YAAxB,GAAuC,UAA9D;AACD;;AAED,YAAM+f,KAAK,GAAG,CAAC/8B,OAAO,GAAG,CAAX,IAAgBokC,KAA9B;AACA,UAAI0K,MAAM,GAAG,CAAb;AACA,UAAIC,MAAM,GAAG,CAAb;;AAEA,UAAIF,oBAAoB,KAAK,YAA7B,EAA2C;AACzCC,QAAAA,MAAM,GAAG/R,KAAT;AACD,OAFD,MAEO;AACLgS,QAAAA,MAAM,GAAGhS,KAAT;AACD;;AAED5lB,MAAAA,GAAG,CAACjJ,IAAJ,CAASgoB,0EAAiB,CAAC1lB,MAAM,CAACg9B,oBAAR,CAA1B,EAAyDtmC,SAAzD,CAAoE,6BAA4B4nC,MAAO,YAAWC,MAAO,GAAzH,EAA6H3nC,UAA7H,CAAwIyP,MAAM,CAACrG,MAAP,CAAc3R,KAAtJ;AACD;;AAED,QAAI2R,MAAM,CAAC8Y,IAAP,KAAgB,QAAhB,IAA4B9Y,MAAM,CAACq8B,YAAvC,EAAqD;AACnD11B,MAAAA,GAAG,CAACjT,IAAJ,CAASsM,MAAM,CAACq8B,YAAP,CAAoBh2B,MAApB,EAA4B7W,OAAO,GAAG,CAAtC,EAAyCokC,KAAzC,CAAT;AACA1rB,MAAAA,IAAI,CAAC,kBAAD,EAAqBvB,GAAG,CAAC,CAAD,CAAxB,CAAJ;AACD,KAHD,MAGO;AACLuB,MAAAA,IAAI,CAAC,kBAAD,EAAqBvB,GAAG,CAAC,CAAD,CAAxB,CAAJ;AACD;;AAED,QAAIN,MAAM,CAACrG,MAAP,CAAckR,aAAd,IAA+B7K,MAAM,CAACe,OAA1C,EAAmD;AACjDT,MAAAA,GAAG,CAACN,MAAM,CAACmC,QAAP,GAAkB,UAAlB,GAA+B,aAAhC,CAAH,CAAkDxI,MAAM,CAACy7B,SAAzD;AACD;AACF;;AAED,WAASt8B,MAAT,GAAkB;AAChB;AACA,UAAMa,MAAM,GAAGqG,MAAM,CAACrG,MAAP,CAAcvR,UAA7B;AACA,QAAI8uC,oBAAoB,EAAxB,EAA4B;AAC5B,UAAM5a,YAAY,GAAGtc,MAAM,CAAC2Z,OAAP,IAAkB3Z,MAAM,CAACrG,MAAP,CAAcggB,OAAd,CAAsB5Y,OAAxC,GAAkDf,MAAM,CAAC2Z,OAAP,CAAepX,MAAf,CAAsBjY,MAAxE,GAAiF0V,MAAM,CAACuC,MAAP,CAAcjY,MAApH;AACA,UAAMgW,GAAG,GAAGN,MAAM,CAAC5X,UAAP,CAAkBkY,GAA9B;AACA,QAAI63B,cAAc,GAAG,EAArB;;AAEA,QAAIx+B,MAAM,CAAC8Y,IAAP,KAAgB,SAApB,EAA+B;AAC7B,UAAI2lB,eAAe,GAAGp4B,MAAM,CAACrG,MAAP,CAAc/R,IAAd,GAAqB6Q,IAAI,CAAC6c,IAAL,CAAU,CAACgH,YAAY,GAAGtc,MAAM,CAACK,YAAP,GAAsB,CAAtC,IAA2CL,MAAM,CAACrG,MAAP,CAAc+T,cAAnE,CAArB,GAA0G1N,MAAM,CAAC4C,QAAP,CAAgBtY,MAAhJ;;AAEA,UAAI0V,MAAM,CAACrG,MAAP,CAAc8J,QAAd,IAA0BzD,MAAM,CAACrG,MAAP,CAAc8J,QAAd,CAAuB1C,OAAjD,IAA4D,CAACf,MAAM,CAACrG,MAAP,CAAc/R,IAA3E,IAAmFwwC,eAAe,GAAG9b,YAAzG,EAAuH;AACrH8b,QAAAA,eAAe,GAAG9b,YAAlB;AACD;;AAED,WAAK,IAAIryB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmuC,eAApB,EAAqCnuC,CAAC,IAAI,CAA1C,EAA6C;AAC3C,YAAI0P,MAAM,CAAC0oB,YAAX,EAAyB;AACvB8V,UAAAA,cAAc,IAAIx+B,MAAM,CAAC0oB,YAAP,CAAoBh2B,IAApB,CAAyB2T,MAAzB,EAAiC/V,CAAjC,EAAoC0P,MAAM,CAACmoB,WAA3C,CAAlB;AACD,SAFD,MAEO;AACLqW,UAAAA,cAAc,IAAK,IAAGx+B,MAAM,CAACk8B,aAAc,WAAUl8B,MAAM,CAACmoB,WAAY,OAAMnoB,MAAM,CAACk8B,aAAc,GAAnG;AACD;AACF;;AAEDv1B,MAAAA,GAAG,CAACjT,IAAJ,CAAS8qC,cAAT;AACAn4B,MAAAA,MAAM,CAAC5X,UAAP,CAAkB65B,OAAlB,GAA4B3hB,GAAG,CAACjJ,IAAJ,CAASgoB,0EAAiB,CAAC1lB,MAAM,CAACmoB,WAAR,CAA1B,CAA5B;AACD;;AAED,QAAInoB,MAAM,CAAC8Y,IAAP,KAAgB,UAApB,EAAgC;AAC9B,UAAI9Y,MAAM,CAACo8B,cAAX,EAA2B;AACzBoC,QAAAA,cAAc,GAAGx+B,MAAM,CAACo8B,cAAP,CAAsB1pC,IAAtB,CAA2B2T,MAA3B,EAAmCrG,MAAM,CAAC88B,YAA1C,EAAwD98B,MAAM,CAAC+8B,UAA/D,CAAjB;AACD,OAFD,MAEO;AACLyB,QAAAA,cAAc,GAAI,gBAAex+B,MAAM,CAAC88B,YAAa,WAApC,GAAiD,KAAjD,GAA0D,gBAAe98B,MAAM,CAAC+8B,UAAW,WAA5G;AACD;;AAEDp2B,MAAAA,GAAG,CAACjT,IAAJ,CAAS8qC,cAAT;AACD;;AAED,QAAIx+B,MAAM,CAAC8Y,IAAP,KAAgB,aAApB,EAAmC;AACjC,UAAI9Y,MAAM,CAACm8B,iBAAX,EAA8B;AAC5BqC,QAAAA,cAAc,GAAGx+B,MAAM,CAACm8B,iBAAP,CAAyBzpC,IAAzB,CAA8B2T,MAA9B,EAAsCrG,MAAM,CAACg9B,oBAA7C,CAAjB;AACD,OAFD,MAEO;AACLwB,QAAAA,cAAc,GAAI,gBAAex+B,MAAM,CAACg9B,oBAAqB,WAA7D;AACD;;AAEDr2B,MAAAA,GAAG,CAACjT,IAAJ,CAAS8qC,cAAT;AACD;;AAED,QAAIx+B,MAAM,CAAC8Y,IAAP,KAAgB,QAApB,EAA8B;AAC5B5Q,MAAAA,IAAI,CAAC,kBAAD,EAAqB7B,MAAM,CAAC5X,UAAP,CAAkBkY,GAAlB,CAAsB,CAAtB,CAArB,CAAJ;AACD;AACF;;AAED,WAASqI,IAAT,GAAgB;AACd3I,IAAAA,MAAM,CAACrG,MAAP,CAAcvR,UAAd,GAA2B4sC,oFAAyB,CAACh1B,MAAD,EAASA,MAAM,CAACW,cAAP,CAAsBvY,UAA/B,EAA2C4X,MAAM,CAACrG,MAAP,CAAcvR,UAAzD,EAAqE;AACvHC,MAAAA,EAAE,EAAE;AADmH,KAArE,CAApD;AAGA,UAAMsR,MAAM,GAAGqG,MAAM,CAACrG,MAAP,CAAcvR,UAA7B;AACA,QAAI,CAACuR,MAAM,CAACtR,EAAZ,EAAgB;AAChB,QAAIiY,GAAG,GAAGlT,0DAAC,CAACuM,MAAM,CAACtR,EAAR,CAAX;AACA,QAAIiY,GAAG,CAAChW,MAAJ,KAAe,CAAnB,EAAsB;;AAEtB,QAAI0V,MAAM,CAACrG,MAAP,CAAcmV,iBAAd,IAAmC,OAAOnV,MAAM,CAACtR,EAAd,KAAqB,QAAxD,IAAoEiY,GAAG,CAAChW,MAAJ,GAAa,CAArF,EAAwF;AACtFgW,MAAAA,GAAG,GAAGN,MAAM,CAACM,GAAP,CAAWjJ,IAAX,CAAgBsC,MAAM,CAACtR,EAAvB,CAAN,CADsF,CACpD;;AAElC,UAAIiY,GAAG,CAAChW,MAAJ,GAAa,CAAjB,EAAoB;AAClBgW,QAAAA,GAAG,GAAGA,GAAG,CAAClU,MAAJ,CAAW/D,EAAE,IAAI;AACrB,cAAI+E,0DAAC,CAAC/E,EAAD,CAAD,CAAMkJ,OAAN,CAAc,SAAd,EAAyB,CAAzB,MAAgCyO,MAAM,CAAC3X,EAA3C,EAA+C,OAAO,KAAP;AAC/C,iBAAO,IAAP;AACD,SAHK,CAAN;AAID;AACF;;AAED,QAAIsR,MAAM,CAAC8Y,IAAP,KAAgB,SAAhB,IAA6B9Y,MAAM,CAACrR,SAAxC,EAAmD;AACjDgY,MAAAA,GAAG,CAACxS,QAAJ,CAAa6L,MAAM,CAACk9B,cAApB;AACD;;AAEDv2B,IAAAA,GAAG,CAACxS,QAAJ,CAAa6L,MAAM,CAAC68B,aAAP,GAAuB78B,MAAM,CAAC8Y,IAA3C;AACAnS,IAAAA,GAAG,CAACxS,QAAJ,CAAa6L,MAAM,CAAC68B,aAAP,GAAuBx2B,MAAM,CAACrG,MAAP,CAAcyH,SAAlD;;AAEA,QAAIzH,MAAM,CAAC8Y,IAAP,KAAgB,SAAhB,IAA6B9Y,MAAM,CAACu8B,cAAxC,EAAwD;AACtD51B,MAAAA,GAAG,CAACxS,QAAJ,CAAc,GAAE6L,MAAM,CAAC68B,aAAc,GAAE78B,MAAM,CAAC8Y,IAAK,UAAnD;AACAwkB,MAAAA,kBAAkB,GAAG,CAArB;;AAEA,UAAIt9B,MAAM,CAACw8B,kBAAP,GAA4B,CAAhC,EAAmC;AACjCx8B,QAAAA,MAAM,CAACw8B,kBAAP,GAA4B,CAA5B;AACD;AACF;;AAED,QAAIx8B,MAAM,CAAC8Y,IAAP,KAAgB,aAAhB,IAAiC9Y,MAAM,CAACs8B,mBAA5C,EAAiE;AAC/D31B,MAAAA,GAAG,CAACxS,QAAJ,CAAa6L,MAAM,CAACi9B,wBAApB;AACD;;AAED,QAAIj9B,MAAM,CAACrR,SAAX,EAAsB;AACpBgY,MAAAA,GAAG,CAAC5P,EAAJ,CAAO,OAAP,EAAgB2uB,0EAAiB,CAAC1lB,MAAM,CAACmoB,WAAR,CAAjC,EAAuD,SAASjR,OAAT,CAAiB3mB,CAAjB,EAAoB;AACzEA,QAAAA,CAAC,CAACmnB,cAAF;AACA,YAAIvc,KAAK,GAAG1H,0DAAC,CAAC,IAAD,CAAD,CAAQ0H,KAAR,KAAkBkL,MAAM,CAACrG,MAAP,CAAc+T,cAA5C;AACA,YAAI1N,MAAM,CAACrG,MAAP,CAAc/R,IAAlB,EAAwBkN,KAAK,IAAIkL,MAAM,CAACK,YAAhB;AACxBL,QAAAA,MAAM,CAACiC,OAAP,CAAenN,KAAf;AACD,OALD;AAMD;;AAED1J,IAAAA,MAAM,CAACsO,MAAP,CAAcsG,MAAM,CAAC5X,UAArB,EAAiC;AAC/BkY,MAAAA,GAD+B;AAE/BjY,MAAAA,EAAE,EAAEiY,GAAG,CAAC,CAAD;AAFwB,KAAjC;;AAKA,QAAI,CAACN,MAAM,CAACe,OAAZ,EAAqB;AACnBT,MAAAA,GAAG,CAACxS,QAAJ,CAAa6L,MAAM,CAACy7B,SAApB;AACD;AACF;;AAED,WAASnpB,OAAT,GAAmB;AACjB,UAAMtS,MAAM,GAAGqG,MAAM,CAACrG,MAAP,CAAcvR,UAA7B;AACA,QAAI8uC,oBAAoB,EAAxB,EAA4B;AAC5B,UAAM52B,GAAG,GAAGN,MAAM,CAAC5X,UAAP,CAAkBkY,GAA9B;AACAA,IAAAA,GAAG,CAAClS,WAAJ,CAAgBuL,MAAM,CAACw7B,WAAvB;AACA70B,IAAAA,GAAG,CAAClS,WAAJ,CAAgBuL,MAAM,CAAC68B,aAAP,GAAuB78B,MAAM,CAAC8Y,IAA9C;AACAnS,IAAAA,GAAG,CAAClS,WAAJ,CAAgBuL,MAAM,CAAC68B,aAAP,GAAuBx2B,MAAM,CAACrG,MAAP,CAAcyH,SAArD;AACA,QAAIpB,MAAM,CAAC5X,UAAP,CAAkB65B,OAAlB,IAA6BjiB,MAAM,CAAC5X,UAAP,CAAkB65B,OAAlB,CAA0B7zB,WAA3D,EAAwE4R,MAAM,CAAC5X,UAAP,CAAkB65B,OAAlB,CAA0B7zB,WAA1B,CAAsCuL,MAAM,CAAC48B,iBAA7C;;AAExE,QAAI58B,MAAM,CAACrR,SAAX,EAAsB;AACpBgY,MAAAA,GAAG,CAACvO,GAAJ,CAAQ,OAAR,EAAiBstB,0EAAiB,CAAC1lB,MAAM,CAACmoB,WAAR,CAAlC;AACD;AACF;;AAEDpxB,EAAAA,EAAE,CAAC,MAAD,EAAS,MAAM;AACfiY,IAAAA,IAAI;AACJ7P,IAAAA,MAAM;AACN2L,IAAAA,MAAM;AACP,GAJC,CAAF;AAKA/T,EAAAA,EAAE,CAAC,mBAAD,EAAsB,MAAM;AAC5B,QAAIsP,MAAM,CAACrG,MAAP,CAAc/R,IAAlB,EAAwB;AACtB6c,MAAAA,MAAM;AACP,KAFD,MAEO,IAAI,OAAOzE,MAAM,CAAC0Y,SAAd,KAA4B,WAAhC,EAA6C;AAClDjU,MAAAA,MAAM;AACP;AACF,GANC,CAAF;AAOA/T,EAAAA,EAAE,CAAC,iBAAD,EAAoB,MAAM;AAC1B,QAAI,CAACsP,MAAM,CAACrG,MAAP,CAAc/R,IAAnB,EAAyB;AACvB6c,MAAAA,MAAM;AACP;AACF,GAJC,CAAF;AAKA/T,EAAAA,EAAE,CAAC,oBAAD,EAAuB,MAAM;AAC7B,QAAIsP,MAAM,CAACrG,MAAP,CAAc/R,IAAlB,EAAwB;AACtBkR,MAAAA,MAAM;AACN2L,MAAAA,MAAM;AACP;AACF,GALC,CAAF;AAMA/T,EAAAA,EAAE,CAAC,sBAAD,EAAyB,MAAM;AAC/B,QAAI,CAACsP,MAAM,CAACrG,MAAP,CAAc/R,IAAnB,EAAyB;AACvBkR,MAAAA,MAAM;AACN2L,MAAAA,MAAM;AACP;AACF,GALC,CAAF;AAMA/T,EAAAA,EAAE,CAAC,SAAD,EAAY,MAAM;AAClBub,IAAAA,OAAO;AACR,GAFC,CAAF;AAGAvb,EAAAA,EAAE,CAAC,gBAAD,EAAmB,MAAM;AACzB,UAAM;AACJ4P,MAAAA;AADI,QAEFN,MAAM,CAAC5X,UAFX;;AAIA,QAAIkY,GAAJ,EAAS;AACPA,MAAAA,GAAG,CAACN,MAAM,CAACe,OAAP,GAAiB,aAAjB,GAAiC,UAAlC,CAAH,CAAiDf,MAAM,CAACrG,MAAP,CAAcvR,UAAd,CAAyBgtC,SAA1E;AACD;AACF,GARC,CAAF;AASA1kC,EAAAA,EAAE,CAAC,aAAD,EAAgB,MAAM;AACtB+T,IAAAA,MAAM;AACP,GAFC,CAAF;AAGA/T,EAAAA,EAAE,CAAC,OAAD,EAAU,CAACozB,EAAD,EAAK55B,CAAL,KAAW;AACrB,UAAMwrC,QAAQ,GAAGxrC,CAAC,CAAC+G,MAAnB;AACA,UAAM;AACJqP,MAAAA;AADI,QAEFN,MAAM,CAAC5X,UAFX;;AAIA,QAAI4X,MAAM,CAACrG,MAAP,CAAcvR,UAAd,CAAyBC,EAAzB,IAA+B2X,MAAM,CAACrG,MAAP,CAAcvR,UAAd,CAAyB6sC,WAAxD,IAAuE30B,GAAG,CAAChW,MAAJ,GAAa,CAApF,IAAyF,CAAC8C,0DAAC,CAACsoC,QAAD,CAAD,CAAYnnC,QAAZ,CAAqByR,MAAM,CAACrG,MAAP,CAAcvR,UAAd,CAAyB05B,WAA9C,CAA9F,EAA0J;AACxJ,UAAI9hB,MAAM,CAACzX,UAAP,KAAsByX,MAAM,CAACzX,UAAP,CAAkBC,MAAlB,IAA4BktC,QAAQ,KAAK11B,MAAM,CAACzX,UAAP,CAAkBC,MAA3D,IAAqEwX,MAAM,CAACzX,UAAP,CAAkBE,MAAlB,IAA4BitC,QAAQ,KAAK11B,MAAM,CAACzX,UAAP,CAAkBE,MAAtJ,CAAJ,EAAmK;AACnK,YAAMktC,QAAQ,GAAGr1B,GAAG,CAAC/R,QAAJ,CAAayR,MAAM,CAACrG,MAAP,CAAcvR,UAAd,CAAyB+sC,WAAtC,CAAjB;;AAEA,UAAIQ,QAAQ,KAAK,IAAjB,EAAuB;AACrB9zB,QAAAA,IAAI,CAAC,gBAAD,CAAJ;AACD,OAFD,MAEO;AACLA,QAAAA,IAAI,CAAC,gBAAD,CAAJ;AACD;;AAEDvB,MAAAA,GAAG,CAACjS,WAAJ,CAAgB2R,MAAM,CAACrG,MAAP,CAAcvR,UAAd,CAAyB+sC,WAAzC;AACD;AACF,GAlBC,CAAF;AAmBA/pC,EAAAA,MAAM,CAACsO,MAAP,CAAcsG,MAAM,CAAC5X,UAArB,EAAiC;AAC/B0Q,IAAAA,MAD+B;AAE/B2L,IAAAA,MAF+B;AAG/BkE,IAAAA,IAH+B;AAI/BsD,IAAAA;AAJ+B,GAAjC;AAMD;;;;;;;;;;;;;;;ACzZD;AACe,SAASosB,QAAT,CAAkB;AAC/Br4B,EAAAA,MAD+B;AAE/B8F,EAAAA,YAF+B;AAG/BpV,EAAAA;AAH+B,CAAlB,EAIZ;AACDoV,EAAAA,YAAY,CAAC;AACXwyB,IAAAA,QAAQ,EAAE;AACRv3B,MAAAA,OAAO,EAAE;AADD;AADC,GAAD,CAAZ;;AAMA,QAAMw3B,YAAY,GAAG,CAAClwC,EAAD,EAAK6Q,QAAL,KAAkB;AACrC,UAAM;AACJkK,MAAAA;AADI,QAEFpD,MAFJ;AAGA,UAAMM,GAAG,GAAGlT,0DAAC,CAAC/E,EAAD,CAAb;AACA,UAAMmsC,SAAS,GAAGpxB,GAAG,GAAG,CAAC,CAAJ,GAAQ,CAA7B;AACA,UAAMo1B,CAAC,GAAGl4B,GAAG,CAAC9R,IAAJ,CAAS,sBAAT,KAAoC,GAA9C;AACA,QAAIosB,CAAC,GAAGta,GAAG,CAAC9R,IAAJ,CAAS,wBAAT,CAAR;AACA,QAAIqsB,CAAC,GAAGva,GAAG,CAAC9R,IAAJ,CAAS,wBAAT,CAAR;AACA,UAAM03B,KAAK,GAAG5lB,GAAG,CAAC9R,IAAJ,CAAS,4BAAT,CAAd;AACA,UAAMm4B,OAAO,GAAGrmB,GAAG,CAAC9R,IAAJ,CAAS,8BAAT,CAAhB;;AAEA,QAAIosB,CAAC,IAAIC,CAAT,EAAY;AACVD,MAAAA,CAAC,GAAGA,CAAC,IAAI,GAAT;AACAC,MAAAA,CAAC,GAAGA,CAAC,IAAI,GAAT;AACD,KAHD,MAGO,IAAI7a,MAAM,CAACmG,YAAP,EAAJ,EAA2B;AAChCyU,MAAAA,CAAC,GAAG4d,CAAJ;AACA3d,MAAAA,CAAC,GAAG,GAAJ;AACD,KAHM,MAGA;AACLA,MAAAA,CAAC,GAAG2d,CAAJ;AACA5d,MAAAA,CAAC,GAAG,GAAJ;AACD;;AAED,QAAIA,CAAC,CAACpuB,OAAF,CAAU,GAAV,KAAkB,CAAtB,EAAyB;AACvBouB,MAAAA,CAAC,GAAI,GAAEhb,QAAQ,CAACgb,CAAD,EAAI,EAAJ,CAAR,GAAkB1hB,QAAlB,GAA6Bs7B,SAAU,GAA9C;AACD,KAFD,MAEO;AACL5Z,MAAAA,CAAC,GAAI,GAAEA,CAAC,GAAG1hB,QAAJ,GAAes7B,SAAU,IAAhC;AACD;;AAED,QAAI3Z,CAAC,CAACruB,OAAF,CAAU,GAAV,KAAkB,CAAtB,EAAyB;AACvBquB,MAAAA,CAAC,GAAI,GAAEjb,QAAQ,CAACib,CAAD,EAAI,EAAJ,CAAR,GAAkB3hB,QAAS,GAAlC;AACD,KAFD,MAEO;AACL2hB,MAAAA,CAAC,GAAI,GAAEA,CAAC,GAAG3hB,QAAS,IAApB;AACD;;AAED,QAAI,OAAOytB,OAAP,KAAmB,WAAnB,IAAkCA,OAAO,KAAK,IAAlD,EAAwD;AACtD,YAAM8R,cAAc,GAAG9R,OAAO,GAAG,CAACA,OAAO,GAAG,CAAX,KAAiB,IAAIluB,IAAI,CAAC2a,GAAL,CAASla,QAAT,CAArB,CAAjC;AACAoH,MAAAA,GAAG,CAAC,CAAD,CAAH,CAAOhQ,KAAP,CAAaq2B,OAAb,GAAuB8R,cAAvB;AACD;;AAED,QAAI,OAAOvS,KAAP,KAAiB,WAAjB,IAAgCA,KAAK,KAAK,IAA9C,EAAoD;AAClD5lB,MAAAA,GAAG,CAACjQ,SAAJ,CAAe,eAAcuqB,CAAE,KAAIC,CAAE,QAArC;AACD,KAFD,MAEO;AACL,YAAM6d,YAAY,GAAGxS,KAAK,GAAG,CAACA,KAAK,GAAG,CAAT,KAAe,IAAIztB,IAAI,CAAC2a,GAAL,CAASla,QAAT,CAAnB,CAA7B;AACAoH,MAAAA,GAAG,CAACjQ,SAAJ,CAAe,eAAcuqB,CAAE,KAAIC,CAAE,gBAAe6d,YAAa,GAAjE;AACD;AACF,GA9CD;;AAgDA,QAAMnuB,YAAY,GAAG,MAAM;AACzB,UAAM;AACJjK,MAAAA,GADI;AAEJiC,MAAAA,MAFI;AAGJrJ,MAAAA,QAHI;AAIJ0J,MAAAA;AAJI,QAKF5C,MALJ;AAMAM,IAAAA,GAAG,CAAC9I,QAAJ,CAAa,0IAAb,EAAyJ3C,IAAzJ,CAA8JxM,EAAE,IAAI;AAClKkwC,MAAAA,YAAY,CAAClwC,EAAD,EAAK6Q,QAAL,CAAZ;AACD,KAFD;AAGAqJ,IAAAA,MAAM,CAAC1N,IAAP,CAAY,CAAC0U,OAAD,EAAU2P,UAAV,KAAyB;AACnC,UAAI+F,aAAa,GAAG1V,OAAO,CAACrQ,QAA5B;;AAEA,UAAI8G,MAAM,CAACrG,MAAP,CAAc+T,cAAd,GAA+B,CAA/B,IAAoC1N,MAAM,CAACrG,MAAP,CAAc9R,aAAd,KAAgC,MAAxE,EAAgF;AAC9Eo3B,QAAAA,aAAa,IAAIxmB,IAAI,CAAC6c,IAAL,CAAU4D,UAAU,GAAG,CAAvB,IAA4BhgB,QAAQ,IAAI0J,QAAQ,CAACtY,MAAT,GAAkB,CAAtB,CAArD;AACD;;AAED20B,MAAAA,aAAa,GAAGxmB,IAAI,CAACE,GAAL,CAASF,IAAI,CAACC,GAAL,CAASumB,aAAT,EAAwB,CAAC,CAAzB,CAAT,EAAsC,CAAtC,CAAhB;AACA7xB,MAAAA,0DAAC,CAACmc,OAAD,CAAD,CAAWlS,IAAX,CAAgB,0IAAhB,EAA4JxC,IAA5J,CAAiKxM,EAAE,IAAI;AACrKkwC,QAAAA,YAAY,CAAClwC,EAAD,EAAK42B,aAAL,CAAZ;AACD,OAFD;AAGD,KAXD;AAYD,GAtBD;;AAwBA,QAAM1L,aAAa,GAAG,CAAC/iB,QAAQ,GAAGwP,MAAM,CAACrG,MAAP,CAAc3R,KAA1B,KAAoC;AACxD,UAAM;AACJsY,MAAAA;AADI,QAEFN,MAFJ;AAGAM,IAAAA,GAAG,CAACjJ,IAAJ,CAAS,0IAAT,EAAqJxC,IAArJ,CAA0J8jC,UAAU,IAAI;AACtK,YAAMC,WAAW,GAAGxrC,0DAAC,CAACurC,UAAD,CAArB;AACA,UAAIE,gBAAgB,GAAGj5B,QAAQ,CAACg5B,WAAW,CAACpqC,IAAZ,CAAiB,+BAAjB,CAAD,EAAoD,EAApD,CAAR,IAAmEgC,QAA1F;AACA,UAAIA,QAAQ,KAAK,CAAjB,EAAoBqoC,gBAAgB,GAAG,CAAnB;AACpBD,MAAAA,WAAW,CAACroC,UAAZ,CAAuBsoC,gBAAvB;AACD,KALD;AAMD,GAVD;;AAYAnoC,EAAAA,EAAE,CAAC,YAAD,EAAe,MAAM;AACrB,QAAI,CAACsP,MAAM,CAACrG,MAAP,CAAc2+B,QAAd,CAAuBv3B,OAA5B,EAAqC;AACrCf,IAAAA,MAAM,CAACrG,MAAP,CAAcsV,mBAAd,GAAoC,IAApC;AACAjP,IAAAA,MAAM,CAACW,cAAP,CAAsBsO,mBAAtB,GAA4C,IAA5C;AACD,GAJC,CAAF;AAKAve,EAAAA,EAAE,CAAC,MAAD,EAAS,MAAM;AACf,QAAI,CAACsP,MAAM,CAACrG,MAAP,CAAc2+B,QAAd,CAAuBv3B,OAA5B,EAAqC;AACrCwJ,IAAAA,YAAY;AACb,GAHC,CAAF;AAIA7Z,EAAAA,EAAE,CAAC,cAAD,EAAiB,MAAM;AACvB,QAAI,CAACsP,MAAM,CAACrG,MAAP,CAAc2+B,QAAd,CAAuBv3B,OAA5B,EAAqC;AACrCwJ,IAAAA,YAAY;AACb,GAHC,CAAF;AAIA7Z,EAAAA,EAAE,CAAC,eAAD,EAAkB,CAACooC,OAAD,EAAUtoC,QAAV,KAAuB;AACzC,QAAI,CAACwP,MAAM,CAACrG,MAAP,CAAc2+B,QAAd,CAAuBv3B,OAA5B,EAAqC;AACrCwS,IAAAA,aAAa,CAAC/iB,QAAD,CAAb;AACD,GAHC,CAAF;AAID;;;;;;;;;;;;;;;;;;ACjHD;AACA;AACA;AACA;AACe,SAASuoC,SAAT,CAAmB;AAChC/4B,EAAAA,MADgC;AAEhC8F,EAAAA,YAFgC;AAGhCpV,EAAAA,EAHgC;AAIhCmR,EAAAA;AAJgC,CAAnB,EAKZ;AACD,QAAMlZ,QAAQ,GAAGoC,uDAAW,EAA5B;AACA,MAAIoc,SAAS,GAAG,KAAhB;AACA,MAAI0b,OAAO,GAAG,IAAd;AACA,MAAImW,WAAW,GAAG,IAAlB;AACA,MAAIC,YAAJ;AACA,MAAIC,QAAJ;AACA,MAAIC,SAAJ;AACA,MAAIC,OAAJ;AACAtzB,EAAAA,YAAY,CAAC;AACXuzB,IAAAA,SAAS,EAAE;AACThxC,MAAAA,EAAE,EAAE,IADK;AAET6wC,MAAAA,QAAQ,EAAE,MAFD;AAGTzkC,MAAAA,IAAI,EAAE,KAHG;AAIT6kC,MAAAA,SAAS,EAAE,KAJF;AAKTC,MAAAA,aAAa,EAAE,IALN;AAMTnE,MAAAA,SAAS,EAAE,uBANF;AAOToE,MAAAA,SAAS,EAAE;AAPF;AADA,GAAD,CAAZ;AAWAx5B,EAAAA,MAAM,CAACq5B,SAAP,GAAmB;AACjBhxC,IAAAA,EAAE,EAAE,IADa;AAEjBoxC,IAAAA,MAAM,EAAE,IAFS;AAGjBn5B,IAAAA,GAAG,EAAE,IAHY;AAIjBo5B,IAAAA,OAAO,EAAE;AAJQ,GAAnB;;AAOA,WAASnvB,YAAT,GAAwB;AACtB,QAAI,CAACvK,MAAM,CAACrG,MAAP,CAAc0/B,SAAd,CAAwBhxC,EAAzB,IAA+B,CAAC2X,MAAM,CAACq5B,SAAP,CAAiBhxC,EAArD,EAAyD;AACzD,UAAM;AACJgxC,MAAAA,SADI;AAEJ5uB,MAAAA,YAAY,EAAErH,GAFV;AAGJlK,MAAAA;AAHI,QAIF8G,MAJJ;AAKA,UAAM;AACJ05B,MAAAA,OADI;AAEJp5B,MAAAA;AAFI,QAGF+4B,SAHJ;AAIA,UAAM1/B,MAAM,GAAGqG,MAAM,CAACrG,MAAP,CAAc0/B,SAA7B;AACA,QAAIM,OAAO,GAAGT,QAAd;AACA,QAAIU,MAAM,GAAG,CAACT,SAAS,GAAGD,QAAb,IAAyBhgC,QAAtC;;AAEA,QAAIkK,GAAJ,EAAS;AACPw2B,MAAAA,MAAM,GAAG,CAACA,MAAV;;AAEA,UAAIA,MAAM,GAAG,CAAb,EAAgB;AACdD,QAAAA,OAAO,GAAGT,QAAQ,GAAGU,MAArB;AACAA,QAAAA,MAAM,GAAG,CAAT;AACD,OAHD,MAGO,IAAI,CAACA,MAAD,GAAUV,QAAV,GAAqBC,SAAzB,EAAoC;AACzCQ,QAAAA,OAAO,GAAGR,SAAS,GAAGS,MAAtB;AACD;AACF,KATD,MASO,IAAIA,MAAM,GAAG,CAAb,EAAgB;AACrBD,MAAAA,OAAO,GAAGT,QAAQ,GAAGU,MAArB;AACAA,MAAAA,MAAM,GAAG,CAAT;AACD,KAHM,MAGA,IAAIA,MAAM,GAAGV,QAAT,GAAoBC,SAAxB,EAAmC;AACxCQ,MAAAA,OAAO,GAAGR,SAAS,GAAGS,MAAtB;AACD;;AAED,QAAI55B,MAAM,CAACmG,YAAP,EAAJ,EAA2B;AACzBuzB,MAAAA,OAAO,CAACrpC,SAAR,CAAmB,eAAcupC,MAAO,WAAxC;AACAF,MAAAA,OAAO,CAAC,CAAD,CAAP,CAAWppC,KAAX,CAAiB+C,KAAjB,GAA0B,GAAEsmC,OAAQ,IAApC;AACD,KAHD,MAGO;AACLD,MAAAA,OAAO,CAACrpC,SAAR,CAAmB,oBAAmBupC,MAAO,QAA7C;AACAF,MAAAA,OAAO,CAAC,CAAD,CAAP,CAAWppC,KAAX,CAAiBuD,MAAjB,GAA2B,GAAE8lC,OAAQ,IAArC;AACD;;AAED,QAAIhgC,MAAM,CAAClF,IAAX,EAAiB;AACfoK,MAAAA,YAAY,CAACgkB,OAAD,CAAZ;AACAviB,MAAAA,GAAG,CAAC,CAAD,CAAH,CAAOhQ,KAAP,CAAaq2B,OAAb,GAAuB,CAAvB;AACA9D,MAAAA,OAAO,GAAGjkB,UAAU,CAAC,MAAM;AACzB0B,QAAAA,GAAG,CAAC,CAAD,CAAH,CAAOhQ,KAAP,CAAaq2B,OAAb,GAAuB,CAAvB;AACArmB,QAAAA,GAAG,CAAC/P,UAAJ,CAAe,GAAf;AACD,OAHmB,EAGjB,IAHiB,CAApB;AAID;AACF;;AAED,WAASgjB,aAAT,CAAuB/iB,QAAvB,EAAiC;AAC/B,QAAI,CAACwP,MAAM,CAACrG,MAAP,CAAc0/B,SAAd,CAAwBhxC,EAAzB,IAA+B,CAAC2X,MAAM,CAACq5B,SAAP,CAAiBhxC,EAArD,EAAyD;AACzD2X,IAAAA,MAAM,CAACq5B,SAAP,CAAiBK,OAAjB,CAAyBnpC,UAAzB,CAAoCC,QAApC;AACD;;AAED,WAAS6Z,UAAT,GAAsB;AACpB,QAAI,CAACrK,MAAM,CAACrG,MAAP,CAAc0/B,SAAd,CAAwBhxC,EAAzB,IAA+B,CAAC2X,MAAM,CAACq5B,SAAP,CAAiBhxC,EAArD,EAAyD;AACzD,UAAM;AACJgxC,MAAAA;AADI,QAEFr5B,MAFJ;AAGA,UAAM;AACJ05B,MAAAA,OADI;AAEJp5B,MAAAA;AAFI,QAGF+4B,SAHJ;AAIAK,IAAAA,OAAO,CAAC,CAAD,CAAP,CAAWppC,KAAX,CAAiB+C,KAAjB,GAAyB,EAAzB;AACAqmC,IAAAA,OAAO,CAAC,CAAD,CAAP,CAAWppC,KAAX,CAAiBuD,MAAjB,GAA0B,EAA1B;AACAslC,IAAAA,SAAS,GAAGn5B,MAAM,CAACmG,YAAP,KAAwB7F,GAAG,CAAC,CAAD,CAAH,CAAO3M,WAA/B,GAA6C2M,GAAG,CAAC,CAAD,CAAH,CAAOjX,YAAhE;AACA+vC,IAAAA,OAAO,GAAGp5B,MAAM,CAAC2C,IAAP,IAAe3C,MAAM,CAAC6c,WAAP,GAAqB7c,MAAM,CAACrG,MAAP,CAAc0I,kBAAnC,IAAyDrC,MAAM,CAACrG,MAAP,CAAcmK,cAAd,GAA+B9D,MAAM,CAAC4C,QAAP,CAAgB,CAAhB,CAA/B,GAAoD,CAA7G,CAAf,CAAV;;AAEA,QAAI5C,MAAM,CAACrG,MAAP,CAAc0/B,SAAd,CAAwBH,QAAxB,KAAqC,MAAzC,EAAiD;AAC/CA,MAAAA,QAAQ,GAAGC,SAAS,GAAGC,OAAvB;AACD,KAFD,MAEO;AACLF,MAAAA,QAAQ,GAAGt5B,QAAQ,CAACI,MAAM,CAACrG,MAAP,CAAc0/B,SAAd,CAAwBH,QAAzB,EAAmC,EAAnC,CAAnB;AACD;;AAED,QAAIl5B,MAAM,CAACmG,YAAP,EAAJ,EAA2B;AACzBuzB,MAAAA,OAAO,CAAC,CAAD,CAAP,CAAWppC,KAAX,CAAiB+C,KAAjB,GAA0B,GAAE6lC,QAAS,IAArC;AACD,KAFD,MAEO;AACLQ,MAAAA,OAAO,CAAC,CAAD,CAAP,CAAWppC,KAAX,CAAiBuD,MAAjB,GAA2B,GAAEqlC,QAAS,IAAtC;AACD;;AAED,QAAIE,OAAO,IAAI,CAAf,EAAkB;AAChB94B,MAAAA,GAAG,CAAC,CAAD,CAAH,CAAOhQ,KAAP,CAAaoE,OAAb,GAAuB,MAAvB;AACD,KAFD,MAEO;AACL4L,MAAAA,GAAG,CAAC,CAAD,CAAH,CAAOhQ,KAAP,CAAaoE,OAAb,GAAuB,EAAvB;AACD;;AAED,QAAIsL,MAAM,CAACrG,MAAP,CAAc0/B,SAAd,CAAwB5kC,IAA5B,EAAkC;AAChC6L,MAAAA,GAAG,CAAC,CAAD,CAAH,CAAOhQ,KAAP,CAAaq2B,OAAb,GAAuB,CAAvB;AACD;;AAED,QAAI3mB,MAAM,CAACrG,MAAP,CAAckR,aAAd,IAA+B7K,MAAM,CAACe,OAA1C,EAAmD;AACjDs4B,MAAAA,SAAS,CAAC/4B,GAAV,CAAcN,MAAM,CAACmC,QAAP,GAAkB,UAAlB,GAA+B,aAA7C,EAA4DnC,MAAM,CAACrG,MAAP,CAAc0/B,SAAd,CAAwBjE,SAApF;AACD;AACF;;AAED,WAASyE,kBAAT,CAA4B3vC,CAA5B,EAA+B;AAC7B,QAAI8V,MAAM,CAACmG,YAAP,EAAJ,EAA2B;AACzB,aAAOjc,CAAC,CAACuoB,IAAF,KAAW,YAAX,IAA2BvoB,CAAC,CAACuoB,IAAF,KAAW,WAAtC,GAAoDvoB,CAAC,CAACyoB,aAAF,CAAgB,CAAhB,EAAmBmnB,OAAvE,GAAiF5vC,CAAC,CAAC4vC,OAA1F;AACD;;AAED,WAAO5vC,CAAC,CAACuoB,IAAF,KAAW,YAAX,IAA2BvoB,CAAC,CAACuoB,IAAF,KAAW,WAAtC,GAAoDvoB,CAAC,CAACyoB,aAAF,CAAgB,CAAhB,EAAmBonB,OAAvE,GAAiF7vC,CAAC,CAAC6vC,OAA1F;AACD;;AAED,WAASC,eAAT,CAAyB9vC,CAAzB,EAA4B;AAC1B,UAAM;AACJmvC,MAAAA,SADI;AAEJ5uB,MAAAA,YAAY,EAAErH;AAFV,QAGFpD,MAHJ;AAIA,UAAM;AACJM,MAAAA;AADI,QAEF+4B,SAFJ;AAGA,QAAIY,aAAJ;AACAA,IAAAA,aAAa,GAAG,CAACJ,kBAAkB,CAAC3vC,CAAD,CAAlB,GAAwBoW,GAAG,CAACtM,MAAJ,GAAagM,MAAM,CAACmG,YAAP,KAAwB,MAAxB,GAAiC,KAA9C,CAAxB,IAAgF8yB,YAAY,KAAK,IAAjB,GAAwBA,YAAxB,GAAuCC,QAAQ,GAAG,CAAlI,CAAD,KAA0IC,SAAS,GAAGD,QAAtJ,CAAhB;AACAe,IAAAA,aAAa,GAAGxhC,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAASshC,aAAT,EAAwB,CAAxB,CAAT,EAAqC,CAArC,CAAhB;;AAEA,QAAI72B,GAAJ,EAAS;AACP62B,MAAAA,aAAa,GAAG,IAAIA,aAApB;AACD;;AAED,UAAMpP,QAAQ,GAAG7qB,MAAM,CAAC+I,YAAP,KAAwB,CAAC/I,MAAM,CAACgJ,YAAP,KAAwBhJ,MAAM,CAAC+I,YAAP,EAAzB,IAAkDkxB,aAA3F;AACAj6B,IAAAA,MAAM,CAACsK,cAAP,CAAsBugB,QAAtB;AACA7qB,IAAAA,MAAM,CAACuK,YAAP,CAAoBsgB,QAApB;AACA7qB,IAAAA,MAAM,CAACkJ,iBAAP;AACAlJ,IAAAA,MAAM,CAACmJ,mBAAP;AACD;;AAED,WAAS+wB,WAAT,CAAqBhwC,CAArB,EAAwB;AACtB,UAAMyP,MAAM,GAAGqG,MAAM,CAACrG,MAAP,CAAc0/B,SAA7B;AACA,UAAM;AACJA,MAAAA,SADI;AAEJ9tB,MAAAA;AAFI,QAGFvL,MAHJ;AAIA,UAAM;AACJM,MAAAA,GADI;AAEJo5B,MAAAA;AAFI,QAGFL,SAHJ;AAIAlyB,IAAAA,SAAS,GAAG,IAAZ;AACA8xB,IAAAA,YAAY,GAAG/uC,CAAC,CAAC+G,MAAF,KAAayoC,OAAO,CAAC,CAAD,CAApB,IAA2BxvC,CAAC,CAAC+G,MAAF,KAAayoC,OAAxC,GAAkDG,kBAAkB,CAAC3vC,CAAD,CAAlB,GAAwBA,CAAC,CAAC+G,MAAF,CAAS1H,qBAAT,GAAiCyW,MAAM,CAACmG,YAAP,KAAwB,MAAxB,GAAiC,KAAlE,CAA1E,GAAqJ,IAApK;AACAjc,IAAAA,CAAC,CAACmnB,cAAF;AACAnnB,IAAAA,CAAC,CAACG,eAAF;AACAkhB,IAAAA,UAAU,CAAChb,UAAX,CAAsB,GAAtB;AACAmpC,IAAAA,OAAO,CAACnpC,UAAR,CAAmB,GAAnB;AACAypC,IAAAA,eAAe,CAAC9vC,CAAD,CAAf;AACA2U,IAAAA,YAAY,CAACm6B,WAAD,CAAZ;AACA14B,IAAAA,GAAG,CAAC/P,UAAJ,CAAe,CAAf;;AAEA,QAAIoJ,MAAM,CAAClF,IAAX,EAAiB;AACf6L,MAAAA,GAAG,CAAC/M,GAAJ,CAAQ,SAAR,EAAmB,CAAnB;AACD;;AAED,QAAIyM,MAAM,CAACrG,MAAP,CAAckK,OAAlB,EAA2B;AACzB7D,MAAAA,MAAM,CAACuL,UAAP,CAAkBhY,GAAlB,CAAsB,kBAAtB,EAA0C,MAA1C;AACD;;AAEDsO,IAAAA,IAAI,CAAC,oBAAD,EAAuB3X,CAAvB,CAAJ;AACD;;AAED,WAASiwC,UAAT,CAAoBjwC,CAApB,EAAuB;AACrB,UAAM;AACJmvC,MAAAA,SADI;AAEJ9tB,MAAAA;AAFI,QAGFvL,MAHJ;AAIA,UAAM;AACJM,MAAAA,GADI;AAEJo5B,MAAAA;AAFI,QAGFL,SAHJ;AAIA,QAAI,CAAClyB,SAAL,EAAgB;AAChB,QAAIjd,CAAC,CAACmnB,cAAN,EAAsBnnB,CAAC,CAACmnB,cAAF,GAAtB,KAA8CnnB,CAAC,CAACmlC,WAAF,GAAgB,KAAhB;AAC9C2K,IAAAA,eAAe,CAAC9vC,CAAD,CAAf;AACAqhB,IAAAA,UAAU,CAAChb,UAAX,CAAsB,CAAtB;AACA+P,IAAAA,GAAG,CAAC/P,UAAJ,CAAe,CAAf;AACAmpC,IAAAA,OAAO,CAACnpC,UAAR,CAAmB,CAAnB;AACAsR,IAAAA,IAAI,CAAC,mBAAD,EAAsB3X,CAAtB,CAAJ;AACD;;AAED,WAASkwC,SAAT,CAAmBlwC,CAAnB,EAAsB;AACpB,UAAMyP,MAAM,GAAGqG,MAAM,CAACrG,MAAP,CAAc0/B,SAA7B;AACA,UAAM;AACJA,MAAAA,SADI;AAEJ9tB,MAAAA;AAFI,QAGFvL,MAHJ;AAIA,UAAM;AACJM,MAAAA;AADI,QAEF+4B,SAFJ;AAGA,QAAI,CAAClyB,SAAL,EAAgB;AAChBA,IAAAA,SAAS,GAAG,KAAZ;;AAEA,QAAInH,MAAM,CAACrG,MAAP,CAAckK,OAAlB,EAA2B;AACzB7D,MAAAA,MAAM,CAACuL,UAAP,CAAkBhY,GAAlB,CAAsB,kBAAtB,EAA0C,EAA1C;AACAgY,MAAAA,UAAU,CAAChb,UAAX,CAAsB,EAAtB;AACD;;AAED,QAAIoJ,MAAM,CAAClF,IAAX,EAAiB;AACfoK,MAAAA,YAAY,CAACm6B,WAAD,CAAZ;AACAA,MAAAA,WAAW,GAAGnnB,0DAAQ,CAAC,MAAM;AAC3BvR,QAAAA,GAAG,CAAC/M,GAAJ,CAAQ,SAAR,EAAmB,CAAnB;AACA+M,QAAAA,GAAG,CAAC/P,UAAJ,CAAe,GAAf;AACD,OAHqB,EAGnB,IAHmB,CAAtB;AAID;;AAEDsR,IAAAA,IAAI,CAAC,kBAAD,EAAqB3X,CAArB,CAAJ;;AAEA,QAAIyP,MAAM,CAAC4/B,aAAX,EAA0B;AACxBv5B,MAAAA,MAAM,CAAC8X,cAAP;AACD;AACF;;AAED,WAASpmB,MAAT,CAAgB2e,MAAhB,EAAwB;AACtB,UAAM;AACJgpB,MAAAA,SADI;AAEJ1yB,MAAAA,gBAFI;AAGJK,MAAAA,kBAHI;AAIJrN,MAAAA,MAJI;AAKJ2J,MAAAA;AALI,QAMFtD,MANJ;AAOA,UAAMM,GAAG,GAAG+4B,SAAS,CAAC/4B,GAAtB;AACA,UAAMrP,MAAM,GAAGqP,GAAG,CAAC,CAAD,CAAlB;AACA,UAAM+5B,cAAc,GAAG/2B,OAAO,CAAC6N,eAAR,IAA2BxX,MAAM,CAACkW,gBAAlC,GAAqD;AAC1EuB,MAAAA,OAAO,EAAE,KADiE;AAE1ErgB,MAAAA,OAAO,EAAE;AAFiE,KAArD,GAGnB,KAHJ;AAIA,UAAMogB,eAAe,GAAG7N,OAAO,CAAC6N,eAAR,IAA2BxX,MAAM,CAACkW,gBAAlC,GAAqD;AAC3EuB,MAAAA,OAAO,EAAE,IADkE;AAE3ErgB,MAAAA,OAAO,EAAE;AAFkE,KAArD,GAGpB,KAHJ;AAIA,QAAI,CAACE,MAAL,EAAa;AACb,UAAMqpC,WAAW,GAAGjqB,MAAM,KAAK,IAAX,GAAkB,kBAAlB,GAAuC,qBAA3D;;AAEA,QAAI,CAAC/M,OAAO,CAACE,KAAb,EAAoB;AAClBvS,MAAAA,MAAM,CAACqpC,WAAD,CAAN,CAAoBtzB,kBAAkB,CAACJ,KAAvC,EAA8CszB,WAA9C,EAA2DG,cAA3D;AACA1xC,MAAAA,QAAQ,CAAC2xC,WAAD,CAAR,CAAsBtzB,kBAAkB,CAACH,IAAzC,EAA+CszB,UAA/C,EAA2DE,cAA3D;AACA1xC,MAAAA,QAAQ,CAAC2xC,WAAD,CAAR,CAAsBtzB,kBAAkB,CAACF,GAAzC,EAA8CszB,SAA9C,EAAyDjpB,eAAzD;AACD,KAJD,MAIO;AACLlgB,MAAAA,MAAM,CAACqpC,WAAD,CAAN,CAAoB3zB,gBAAgB,CAACC,KAArC,EAA4CszB,WAA5C,EAAyDG,cAAzD;AACAppC,MAAAA,MAAM,CAACqpC,WAAD,CAAN,CAAoB3zB,gBAAgB,CAACE,IAArC,EAA2CszB,UAA3C,EAAuDE,cAAvD;AACAppC,MAAAA,MAAM,CAACqpC,WAAD,CAAN,CAAoB3zB,gBAAgB,CAACG,GAArC,EAA0CszB,SAA1C,EAAqDjpB,eAArD;AACD;AACF;;AAED,WAASopB,eAAT,GAA2B;AACzB,QAAI,CAACv6B,MAAM,CAACrG,MAAP,CAAc0/B,SAAd,CAAwBhxC,EAA7B,EAAiC;AACjCqJ,IAAAA,MAAM,CAAC,IAAD,CAAN;AACD;;AAED,WAAS8oC,gBAAT,GAA4B;AAC1B,QAAI,CAACx6B,MAAM,CAACrG,MAAP,CAAc0/B,SAAd,CAAwBhxC,EAA7B,EAAiC;AACjCqJ,IAAAA,MAAM,CAAC,KAAD,CAAN;AACD;;AAED,WAASiX,IAAT,GAAgB;AACd,UAAM;AACJ0wB,MAAAA,SADI;AAEJ/4B,MAAAA,GAAG,EAAEm6B;AAFD,QAGFz6B,MAHJ;AAIAA,IAAAA,MAAM,CAACrG,MAAP,CAAc0/B,SAAd,GAA0BrE,oFAAyB,CAACh1B,MAAD,EAASA,MAAM,CAACW,cAAP,CAAsB04B,SAA/B,EAA0Cr5B,MAAM,CAACrG,MAAP,CAAc0/B,SAAxD,EAAmE;AACpHhxC,MAAAA,EAAE,EAAE;AADgH,KAAnE,CAAnD;AAGA,UAAMsR,MAAM,GAAGqG,MAAM,CAACrG,MAAP,CAAc0/B,SAA7B;AACA,QAAI,CAAC1/B,MAAM,CAACtR,EAAZ,EAAgB;AAChB,QAAIiY,GAAG,GAAGlT,0DAAC,CAACuM,MAAM,CAACtR,EAAR,CAAX;;AAEA,QAAI2X,MAAM,CAACrG,MAAP,CAAcmV,iBAAd,IAAmC,OAAOnV,MAAM,CAACtR,EAAd,KAAqB,QAAxD,IAAoEiY,GAAG,CAAChW,MAAJ,GAAa,CAAjF,IAAsFmwC,SAAS,CAACpjC,IAAV,CAAesC,MAAM,CAACtR,EAAtB,EAA0BiC,MAA1B,KAAqC,CAA/H,EAAkI;AAChIgW,MAAAA,GAAG,GAAGm6B,SAAS,CAACpjC,IAAV,CAAesC,MAAM,CAACtR,EAAtB,CAAN;AACD;;AAED,QAAIqxC,OAAO,GAAGp5B,GAAG,CAACjJ,IAAJ,CAAU,IAAG2I,MAAM,CAACrG,MAAP,CAAc0/B,SAAd,CAAwBG,SAAU,EAA/C,CAAd;;AAEA,QAAIE,OAAO,CAACpvC,MAAR,KAAmB,CAAvB,EAA0B;AACxBovC,MAAAA,OAAO,GAAGtsC,0DAAC,CAAE,eAAc4S,MAAM,CAACrG,MAAP,CAAc0/B,SAAd,CAAwBG,SAAU,UAAlD,CAAX;AACAl5B,MAAAA,GAAG,CAAC5K,MAAJ,CAAWgkC,OAAX;AACD;;AAEDtuC,IAAAA,MAAM,CAACsO,MAAP,CAAc2/B,SAAd,EAAyB;AACvB/4B,MAAAA,GADuB;AAEvBjY,MAAAA,EAAE,EAAEiY,GAAG,CAAC,CAAD,CAFgB;AAGvBo5B,MAAAA,OAHuB;AAIvBD,MAAAA,MAAM,EAAEC,OAAO,CAAC,CAAD;AAJQ,KAAzB;;AAOA,QAAI//B,MAAM,CAAC2/B,SAAX,EAAsB;AACpBiB,MAAAA,eAAe;AAChB;;AAED,QAAIj6B,GAAJ,EAAS;AACPA,MAAAA,GAAG,CAACN,MAAM,CAACe,OAAP,GAAiB,aAAjB,GAAiC,UAAlC,CAAH,CAAiDf,MAAM,CAACrG,MAAP,CAAc0/B,SAAd,CAAwBjE,SAAzE;AACD;AACF;;AAED,WAASnpB,OAAT,GAAmB;AACjBuuB,IAAAA,gBAAgB;AACjB;;AAED9pC,EAAAA,EAAE,CAAC,MAAD,EAAS,MAAM;AACfiY,IAAAA,IAAI;AACJ0B,IAAAA,UAAU;AACVE,IAAAA,YAAY;AACb,GAJC,CAAF;AAKA7Z,EAAAA,EAAE,CAAC,0CAAD,EAA6C,MAAM;AACnD2Z,IAAAA,UAAU;AACX,GAFC,CAAF;AAGA3Z,EAAAA,EAAE,CAAC,cAAD,EAAiB,MAAM;AACvB6Z,IAAAA,YAAY;AACb,GAFC,CAAF;AAGA7Z,EAAAA,EAAE,CAAC,eAAD,EAAkB,CAACozB,EAAD,EAAKtzB,QAAL,KAAkB;AACpC+iB,IAAAA,aAAa,CAAC/iB,QAAD,CAAb;AACD,GAFC,CAAF;AAGAE,EAAAA,EAAE,CAAC,gBAAD,EAAmB,MAAM;AACzB,UAAM;AACJ4P,MAAAA;AADI,QAEFN,MAAM,CAACq5B,SAFX;;AAIA,QAAI/4B,GAAJ,EAAS;AACPA,MAAAA,GAAG,CAACN,MAAM,CAACe,OAAP,GAAiB,aAAjB,GAAiC,UAAlC,CAAH,CAAiDf,MAAM,CAACrG,MAAP,CAAc0/B,SAAd,CAAwBjE,SAAzE;AACD;AACF,GARC,CAAF;AASA1kC,EAAAA,EAAE,CAAC,SAAD,EAAY,MAAM;AAClBub,IAAAA,OAAO;AACR,GAFC,CAAF;AAGA7gB,EAAAA,MAAM,CAACsO,MAAP,CAAcsG,MAAM,CAACq5B,SAArB,EAAgC;AAC9BhvB,IAAAA,UAD8B;AAE9BE,IAAAA,YAF8B;AAG9B5B,IAAAA,IAH8B;AAI9BsD,IAAAA;AAJ8B,GAAhC;AAMD;;;;;;;;;;;;;;;;ACxWD;AACA;AACe,SAASyuB,KAAT,CAAe;AAC5B16B,EAAAA,MAD4B;AAE5B8F,EAAAA,YAF4B;AAG5BpV,EAAAA;AAH4B,CAAf,EAIZ;AACDoV,EAAAA,YAAY,CAAC;AACX60B,IAAAA,MAAM,EAAE;AACN36B,MAAAA,MAAM,EAAE,IADF;AAEN46B,MAAAA,oBAAoB,EAAE,IAFhB;AAGNC,MAAAA,gBAAgB,EAAE,CAHZ;AAINC,MAAAA,qBAAqB,EAAE,2BAJjB;AAKNC,MAAAA,oBAAoB,EAAE;AALhB;AADG,GAAD,CAAZ;AASA,MAAI36B,WAAW,GAAG,KAAlB;AACA,MAAI46B,aAAa,GAAG,KAApB;AACAh7B,EAAAA,MAAM,CAAC26B,MAAP,GAAgB;AACd36B,IAAAA,MAAM,EAAE;AADM,GAAhB;;AAIA,WAASi7B,YAAT,GAAwB;AACtB,UAAMC,YAAY,GAAGl7B,MAAM,CAAC26B,MAAP,CAAc36B,MAAnC;AACA,QAAI,CAACk7B,YAAL,EAAmB;AACnB,UAAM/gB,YAAY,GAAG+gB,YAAY,CAAC/gB,YAAlC;AACA,UAAMC,YAAY,GAAG8gB,YAAY,CAAC9gB,YAAlC;AACA,QAAIA,YAAY,IAAIhtB,0DAAC,CAACgtB,YAAD,CAAD,CAAgB7rB,QAAhB,CAAyByR,MAAM,CAACrG,MAAP,CAAcghC,MAAd,CAAqBG,qBAA9C,CAApB,EAA0F;AAC1F,QAAI,OAAO3gB,YAAP,KAAwB,WAAxB,IAAuCA,YAAY,KAAK,IAA5D,EAAkE;AAClE,QAAID,YAAJ;;AAEA,QAAIghB,YAAY,CAACvhC,MAAb,CAAoB/R,IAAxB,EAA8B;AAC5BsyB,MAAAA,YAAY,GAAGta,QAAQ,CAACxS,0DAAC,CAAC8tC,YAAY,CAAC9gB,YAAd,CAAD,CAA6B5rB,IAA7B,CAAkC,yBAAlC,CAAD,EAA+D,EAA/D,CAAvB;AACD,KAFD,MAEO;AACL0rB,MAAAA,YAAY,GAAGC,YAAf;AACD;;AAED,QAAIna,MAAM,CAACrG,MAAP,CAAc/R,IAAlB,EAAwB;AACtB,UAAIuzC,YAAY,GAAGn7B,MAAM,CAACG,WAA1B;;AAEA,UAAIH,MAAM,CAACuC,MAAP,CAAc/M,EAAd,CAAiB2lC,YAAjB,EAA+B5sC,QAA/B,CAAwCyR,MAAM,CAACrG,MAAP,CAAcqW,mBAAtD,CAAJ,EAAgF;AAC9EhQ,QAAAA,MAAM,CAACqT,OAAP,GAD8E,CAC5D;;AAElBrT,QAAAA,MAAM,CAACkY,WAAP,GAAqBlY,MAAM,CAACuL,UAAP,CAAkB,CAAlB,EAAqBnX,UAA1C;AACA+mC,QAAAA,YAAY,GAAGn7B,MAAM,CAACG,WAAtB;AACD;;AAED,YAAMwY,SAAS,GAAG3Y,MAAM,CAACuC,MAAP,CAAc/M,EAAd,CAAiB2lC,YAAjB,EAA+BlkC,OAA/B,CAAwC,6BAA4BijB,YAAa,IAAjF,EAAsF1kB,EAAtF,CAAyF,CAAzF,EAA4FV,KAA5F,EAAlB;AACA,YAAMsmC,SAAS,GAAGp7B,MAAM,CAACuC,MAAP,CAAc/M,EAAd,CAAiB2lC,YAAjB,EAA+BtkC,OAA/B,CAAwC,6BAA4BqjB,YAAa,IAAjF,EAAsF1kB,EAAtF,CAAyF,CAAzF,EAA4FV,KAA5F,EAAlB;AACA,UAAI,OAAO6jB,SAAP,KAAqB,WAAzB,EAAsCuB,YAAY,GAAGkhB,SAAf,CAAtC,KAAoE,IAAI,OAAOA,SAAP,KAAqB,WAAzB,EAAsClhB,YAAY,GAAGvB,SAAf,CAAtC,KAAoE,IAAIyiB,SAAS,GAAGD,YAAZ,GAA2BA,YAAY,GAAGxiB,SAA9C,EAAyDuB,YAAY,GAAGkhB,SAAf,CAAzD,KAAuFlhB,YAAY,GAAGvB,SAAf;AAChO;;AAED3Y,IAAAA,MAAM,CAACiC,OAAP,CAAeiY,YAAf;AACD;;AAED,WAASvR,IAAT,GAAgB;AACd,UAAM;AACJgyB,MAAAA,MAAM,EAAEU;AADJ,QAEFr7B,MAAM,CAACrG,MAFX;AAGA,QAAIyG,WAAJ,EAAiB,OAAO,KAAP;AACjBA,IAAAA,WAAW,GAAG,IAAd;AACA,UAAMk7B,WAAW,GAAGt7B,MAAM,CAACtU,WAA3B;;AAEA,QAAI2vC,YAAY,CAACr7B,MAAb,YAA+Bs7B,WAAnC,EAAgD;AAC9Ct7B,MAAAA,MAAM,CAAC26B,MAAP,CAAc36B,MAAd,GAAuBq7B,YAAY,CAACr7B,MAApC;AACA5U,MAAAA,MAAM,CAACsO,MAAP,CAAcsG,MAAM,CAAC26B,MAAP,CAAc36B,MAAd,CAAqBW,cAAnC,EAAmD;AACjDsO,QAAAA,mBAAmB,EAAE,IAD4B;AAEjDG,QAAAA,mBAAmB,EAAE;AAF4B,OAAnD;AAIAhkB,MAAAA,MAAM,CAACsO,MAAP,CAAcsG,MAAM,CAAC26B,MAAP,CAAc36B,MAAd,CAAqBrG,MAAnC,EAA2C;AACzCsV,QAAAA,mBAAmB,EAAE,IADoB;AAEzCG,QAAAA,mBAAmB,EAAE;AAFoB,OAA3C;AAID,KAVD,MAUO,IAAIvS,0DAAQ,CAACw+B,YAAY,CAACr7B,MAAd,CAAZ,EAAmC;AACxC,YAAMu7B,kBAAkB,GAAGnwC,MAAM,CAACsO,MAAP,CAAc,EAAd,EAAkB2hC,YAAY,CAACr7B,MAA/B,CAA3B;AACA5U,MAAAA,MAAM,CAACsO,MAAP,CAAc6hC,kBAAd,EAAkC;AAChCtsB,QAAAA,mBAAmB,EAAE,IADW;AAEhCG,QAAAA,mBAAmB,EAAE;AAFW,OAAlC;AAIApP,MAAAA,MAAM,CAAC26B,MAAP,CAAc36B,MAAd,GAAuB,IAAIs7B,WAAJ,CAAgBC,kBAAhB,CAAvB;AACAP,MAAAA,aAAa,GAAG,IAAhB;AACD;;AAEDh7B,IAAAA,MAAM,CAAC26B,MAAP,CAAc36B,MAAd,CAAqBM,GAArB,CAAyBxS,QAAzB,CAAkCkS,MAAM,CAACrG,MAAP,CAAcghC,MAAd,CAAqBI,oBAAvD;AACA/6B,IAAAA,MAAM,CAAC26B,MAAP,CAAc36B,MAAd,CAAqBtP,EAArB,CAAwB,KAAxB,EAA+BuqC,YAA/B;AACA,WAAO,IAAP;AACD;;AAED,WAASx2B,MAAT,CAAgBoU,OAAhB,EAAyB;AACvB,UAAMqiB,YAAY,GAAGl7B,MAAM,CAAC26B,MAAP,CAAc36B,MAAnC;AACA,QAAI,CAACk7B,YAAL,EAAmB;AACnB,UAAMrzC,aAAa,GAAGqzC,YAAY,CAACvhC,MAAb,CAAoB9R,aAApB,KAAsC,MAAtC,GAA+CqzC,YAAY,CAACvxB,oBAAb,EAA/C,GAAqFuxB,YAAY,CAACvhC,MAAb,CAAoB9R,aAA/H;AACA,UAAMgzC,gBAAgB,GAAG76B,MAAM,CAACrG,MAAP,CAAcghC,MAAd,CAAqBE,gBAA9C;AACA,UAAMW,SAAS,GAAGX,gBAAgB,IAAI,CAACK,YAAY,CAACvhC,MAAb,CAAoB/R,IAA3D;;AAEA,QAAIoY,MAAM,CAACqG,SAAP,KAAqB60B,YAAY,CAAC70B,SAAlC,IAA+Cm1B,SAAnD,EAA8D;AAC5D,UAAIC,kBAAkB,GAAGP,YAAY,CAAC/6B,WAAtC;AACA,UAAIu7B,cAAJ;AACA,UAAIt6B,SAAJ;;AAEA,UAAI85B,YAAY,CAACvhC,MAAb,CAAoB/R,IAAxB,EAA8B;AAC5B,YAAIszC,YAAY,CAAC34B,MAAb,CAAoB/M,EAApB,CAAuBimC,kBAAvB,EAA2CltC,QAA3C,CAAoD2sC,YAAY,CAACvhC,MAAb,CAAoBqW,mBAAxE,CAAJ,EAAkG;AAChGkrB,UAAAA,YAAY,CAAC7nB,OAAb,GADgG,CACxE;;AAExB6nB,UAAAA,YAAY,CAAChjB,WAAb,GAA2BgjB,YAAY,CAAC3vB,UAAb,CAAwB,CAAxB,EAA2BnX,UAAtD;AACAqnC,UAAAA,kBAAkB,GAAGP,YAAY,CAAC/6B,WAAlC;AACD,SAN2B,CAM1B;;;AAGF,cAAMw7B,eAAe,GAAGT,YAAY,CAAC34B,MAAb,CAAoB/M,EAApB,CAAuBimC,kBAAvB,EAA2CxkC,OAA3C,CAAoD,6BAA4B+I,MAAM,CAACqG,SAAU,IAAjG,EAAsG7Q,EAAtG,CAAyG,CAAzG,EAA4GV,KAA5G,EAAxB;AACA,cAAM8mC,eAAe,GAAGV,YAAY,CAAC34B,MAAb,CAAoB/M,EAApB,CAAuBimC,kBAAvB,EAA2C5kC,OAA3C,CAAoD,6BAA4BmJ,MAAM,CAACqG,SAAU,IAAjG,EAAsG7Q,EAAtG,CAAyG,CAAzG,EAA4GV,KAA5G,EAAxB;;AAEA,YAAI,OAAO6mC,eAAP,KAA2B,WAA/B,EAA4C;AAC1CD,UAAAA,cAAc,GAAGE,eAAjB;AACD,SAFD,MAEO,IAAI,OAAOA,eAAP,KAA2B,WAA/B,EAA4C;AACjDF,UAAAA,cAAc,GAAGC,eAAjB;AACD,SAFM,MAEA,IAAIC,eAAe,GAAGH,kBAAlB,KAAyCA,kBAAkB,GAAGE,eAAlE,EAAmF;AACxFD,UAAAA,cAAc,GAAGR,YAAY,CAACvhC,MAAb,CAAoB+T,cAApB,GAAqC,CAArC,GAAyCkuB,eAAzC,GAA2DH,kBAA5E;AACD,SAFM,MAEA,IAAIG,eAAe,GAAGH,kBAAlB,GAAuCA,kBAAkB,GAAGE,eAAhE,EAAiF;AACtFD,UAAAA,cAAc,GAAGE,eAAjB;AACD,SAFM,MAEA;AACLF,UAAAA,cAAc,GAAGC,eAAjB;AACD;;AAEDv6B,QAAAA,SAAS,GAAGpB,MAAM,CAACG,WAAP,GAAqBH,MAAM,CAACmZ,aAA5B,GAA4C,MAA5C,GAAqD,MAAjE;AACD,OAzBD,MAyBO;AACLuiB,QAAAA,cAAc,GAAG17B,MAAM,CAACqG,SAAxB;AACAjF,QAAAA,SAAS,GAAGs6B,cAAc,GAAG17B,MAAM,CAACmZ,aAAxB,GAAwC,MAAxC,GAAiD,MAA7D;AACD;;AAED,UAAIqiB,SAAJ,EAAe;AACbE,QAAAA,cAAc,IAAIt6B,SAAS,KAAK,MAAd,GAAuBy5B,gBAAvB,GAA0C,CAAC,CAAD,GAAKA,gBAAjE;AACD;;AAED,UAAIK,YAAY,CAACnc,oBAAb,IAAqCmc,YAAY,CAACnc,oBAAb,CAAkCvyB,OAAlC,CAA0CkvC,cAA1C,IAA4D,CAArG,EAAwG;AACtG,YAAIR,YAAY,CAACvhC,MAAb,CAAoBmK,cAAxB,EAAwC;AACtC,cAAI43B,cAAc,GAAGD,kBAArB,EAAyC;AACvCC,YAAAA,cAAc,GAAGA,cAAc,GAAGjjC,IAAI,CAAC2f,KAAL,CAAWvwB,aAAa,GAAG,CAA3B,CAAjB,GAAiD,CAAlE;AACD,WAFD,MAEO;AACL6zC,YAAAA,cAAc,GAAGA,cAAc,GAAGjjC,IAAI,CAAC2f,KAAL,CAAWvwB,aAAa,GAAG,CAA3B,CAAjB,GAAiD,CAAlE;AACD;AACF,SAND,MAMO,IAAI6zC,cAAc,GAAGD,kBAAjB,IAAuCP,YAAY,CAACvhC,MAAb,CAAoB+T,cAApB,KAAuC,CAAlF,EAAqF,CAAC;AAC5F;;AAEDwtB,QAAAA,YAAY,CAACj5B,OAAb,CAAqBy5B,cAArB,EAAqC7iB,OAAO,GAAG,CAAH,GAAOjqB,SAAnD;AACD;AACF,KA1DsB,CA0DrB;;;AAGF,QAAIitC,gBAAgB,GAAG,CAAvB;AACA,UAAMC,gBAAgB,GAAG97B,MAAM,CAACrG,MAAP,CAAcghC,MAAd,CAAqBG,qBAA9C;;AAEA,QAAI96B,MAAM,CAACrG,MAAP,CAAc9R,aAAd,GAA8B,CAA9B,IAAmC,CAACmY,MAAM,CAACrG,MAAP,CAAcmK,cAAtD,EAAsE;AACpE+3B,MAAAA,gBAAgB,GAAG77B,MAAM,CAACrG,MAAP,CAAc9R,aAAjC;AACD;;AAED,QAAI,CAACmY,MAAM,CAACrG,MAAP,CAAcghC,MAAd,CAAqBC,oBAA1B,EAAgD;AAC9CiB,MAAAA,gBAAgB,GAAG,CAAnB;AACD;;AAEDA,IAAAA,gBAAgB,GAAGpjC,IAAI,CAAC2f,KAAL,CAAWyjB,gBAAX,CAAnB;AACAX,IAAAA,YAAY,CAAC34B,MAAb,CAAoBnU,WAApB,CAAgC0tC,gBAAhC;;AAEA,QAAIZ,YAAY,CAACvhC,MAAb,CAAoB/R,IAApB,IAA4BszC,YAAY,CAACvhC,MAAb,CAAoBggB,OAApB,IAA+BuhB,YAAY,CAACvhC,MAAb,CAAoBggB,OAApB,CAA4B5Y,OAA3F,EAAoG;AAClG,WAAK,IAAI9W,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4xC,gBAApB,EAAsC5xC,CAAC,IAAI,CAA3C,EAA8C;AAC5CixC,QAAAA,YAAY,CAAC3vB,UAAb,CAAwB/T,QAAxB,CAAkC,6BAA4BwI,MAAM,CAACqG,SAAP,GAAmBpc,CAAE,IAAnF,EAAwF6D,QAAxF,CAAiGguC,gBAAjG;AACD;AACF,KAJD,MAIO;AACL,WAAK,IAAI7xC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4xC,gBAApB,EAAsC5xC,CAAC,IAAI,CAA3C,EAA8C;AAC5CixC,QAAAA,YAAY,CAAC34B,MAAb,CAAoB/M,EAApB,CAAuBwK,MAAM,CAACqG,SAAP,GAAmBpc,CAA1C,EAA6C6D,QAA7C,CAAsDguC,gBAAtD;AACD;AACF;AACF;;AAEDprC,EAAAA,EAAE,CAAC,YAAD,EAAe,MAAM;AACrB,UAAM;AACJiqC,MAAAA;AADI,QAEF36B,MAAM,CAACrG,MAFX;AAGA,QAAI,CAACghC,MAAD,IAAW,CAACA,MAAM,CAAC36B,MAAvB,EAA+B;AAC/B2I,IAAAA,IAAI;AACJlE,IAAAA,MAAM,CAAC,IAAD,CAAN;AACD,GAPC,CAAF;AAQA/T,EAAAA,EAAE,CAAC,0CAAD,EAA6C,MAAM;AACnD,QAAI,CAACsP,MAAM,CAAC26B,MAAP,CAAc36B,MAAnB,EAA2B;AAC3ByE,IAAAA,MAAM;AACP,GAHC,CAAF;AAIA/T,EAAAA,EAAE,CAAC,eAAD,EAAkB,CAACozB,EAAD,EAAKtzB,QAAL,KAAkB;AACpC,UAAM0qC,YAAY,GAAGl7B,MAAM,CAAC26B,MAAP,CAAc36B,MAAnC;AACA,QAAI,CAACk7B,YAAL,EAAmB;AACnBA,IAAAA,YAAY,CAAC3nB,aAAb,CAA2B/iB,QAA3B;AACD,GAJC,CAAF;AAKAE,EAAAA,EAAE,CAAC,eAAD,EAAkB,MAAM;AACxB,UAAMwqC,YAAY,GAAGl7B,MAAM,CAAC26B,MAAP,CAAc36B,MAAnC;AACA,QAAI,CAACk7B,YAAL,EAAmB;;AAEnB,QAAIF,aAAa,IAAIE,YAArB,EAAmC;AACjCA,MAAAA,YAAY,CAACjvB,OAAb;AACD;AACF,GAPC,CAAF;AAQA7gB,EAAAA,MAAM,CAACsO,MAAP,CAAcsG,MAAM,CAAC26B,MAArB,EAA6B;AAC3BhyB,IAAAA,IAD2B;AAE3BlE,IAAAA;AAF2B,GAA7B;AAID;;;;;;;;;;;;;;;;AC3MD;AACA;AACe,SAASs3B,OAAT,CAAiB;AAC9B/7B,EAAAA,MAD8B;AAE9B8F,EAAAA,YAF8B;AAG9BpV,EAAAA;AAH8B,CAAjB,EAIZ;AACDoV,EAAAA,YAAY,CAAC;AACX6T,IAAAA,OAAO,EAAE;AACP5Y,MAAAA,OAAO,EAAE,KADF;AAEPwB,MAAAA,MAAM,EAAE,EAFD;AAGPy5B,MAAAA,KAAK,EAAE,IAHA;AAIPC,MAAAA,WAAW,EAAE,IAJN;AAKPC,MAAAA,cAAc,EAAE,IALT;AAMPC,MAAAA,oBAAoB,EAAE,IANf;AAOPC,MAAAA,eAAe,EAAE,CAPV;AAQPC,MAAAA,cAAc,EAAE;AART;AADE,GAAD,CAAZ;AAYAr8B,EAAAA,MAAM,CAAC2Z,OAAP,GAAiB;AACfqiB,IAAAA,KAAK,EAAE,EADQ;AAEfM,IAAAA,IAAI,EAAE1tC,SAFS;AAGf2tC,IAAAA,EAAE,EAAE3tC,SAHW;AAIf2T,IAAAA,MAAM,EAAE,EAJO;AAKfvO,IAAAA,MAAM,EAAE,CALO;AAMfyO,IAAAA,UAAU,EAAE;AANG,GAAjB;;AASA,WAASw5B,WAAT,CAAqBt3B,KAArB,EAA4B7P,KAA5B,EAAmC;AACjC,UAAM6E,MAAM,GAAGqG,MAAM,CAACrG,MAAP,CAAcggB,OAA7B;;AAEA,QAAIhgB,MAAM,CAACqiC,KAAP,IAAgBh8B,MAAM,CAAC2Z,OAAP,CAAeqiB,KAAf,CAAqBlnC,KAArB,CAApB,EAAiD;AAC/C,aAAOkL,MAAM,CAAC2Z,OAAP,CAAeqiB,KAAf,CAAqBlnC,KAArB,CAAP;AACD;;AAED,UAAM4tB,QAAQ,GAAG/oB,MAAM,CAACsiC,WAAP,GAAqB7uC,0DAAC,CAACuM,MAAM,CAACsiC,WAAP,CAAmB5vC,IAAnB,CAAwB2T,MAAxB,EAAgC2E,KAAhC,EAAuC7P,KAAvC,CAAD,CAAtB,GAAwE1H,0DAAC,CAAE,eAAc4S,MAAM,CAACrG,MAAP,CAAc6P,UAAW,8BAA6B1U,KAAM,KAAI6P,KAAM,QAAtF,CAA1F;AACA,QAAI,CAAC+d,QAAQ,CAACl0B,IAAT,CAAc,yBAAd,CAAL,EAA+Ck0B,QAAQ,CAACl0B,IAAT,CAAc,yBAAd,EAAyCsG,KAAzC;AAC/C,QAAI6E,MAAM,CAACqiC,KAAX,EAAkBh8B,MAAM,CAAC2Z,OAAP,CAAeqiB,KAAf,CAAqBlnC,KAArB,IAA8B4tB,QAA9B;AAClB,WAAOA,QAAP;AACD;;AAED,WAASje,MAAT,CAAgB+3B,KAAhB,EAAuB;AACrB,UAAM;AACJ30C,MAAAA,aADI;AAEJ6lB,MAAAA,cAFI;AAGJ5J,MAAAA;AAHI,QAIF9D,MAAM,CAACrG,MAJX;AAKA,UAAM;AACJyiC,MAAAA,eADI;AAEJC,MAAAA;AAFI,QAGFr8B,MAAM,CAACrG,MAAP,CAAcggB,OAHlB;AAIA,UAAM;AACJ2iB,MAAAA,IAAI,EAAEG,YADF;AAEJF,MAAAA,EAAE,EAAEG,UAFA;AAGJn6B,MAAAA,MAHI;AAIJE,MAAAA,UAAU,EAAEk6B,kBAJR;AAKJ3oC,MAAAA,MAAM,EAAE4oC;AALJ,QAMF58B,MAAM,CAAC2Z,OANX;AAOA3Z,IAAAA,MAAM,CAACkJ,iBAAP;AACA,UAAM/I,WAAW,GAAGH,MAAM,CAACG,WAAP,IAAsB,CAA1C;AACA,QAAI43B,UAAJ;AACA,QAAI/3B,MAAM,CAACyK,YAAX,EAAyBstB,UAAU,GAAG,OAAb,CAAzB,KAAmDA,UAAU,GAAG/3B,MAAM,CAACmG,YAAP,KAAwB,MAAxB,GAAiC,KAA9C;AACnD,QAAI02B,WAAJ;AACA,QAAIC,YAAJ;;AAEA,QAAIh5B,cAAJ,EAAoB;AAClB+4B,MAAAA,WAAW,GAAGpkC,IAAI,CAAC2f,KAAL,CAAWvwB,aAAa,GAAG,CAA3B,IAAgC6lB,cAAhC,GAAiD2uB,cAA/D;AACAS,MAAAA,YAAY,GAAGrkC,IAAI,CAAC2f,KAAL,CAAWvwB,aAAa,GAAG,CAA3B,IAAgC6lB,cAAhC,GAAiD0uB,eAAhE;AACD,KAHD,MAGO;AACLS,MAAAA,WAAW,GAAGh1C,aAAa,IAAI6lB,cAAc,GAAG,CAArB,CAAb,GAAuC2uB,cAArD;AACAS,MAAAA,YAAY,GAAGpvB,cAAc,GAAG0uB,eAAhC;AACD;;AAED,UAAME,IAAI,GAAG7jC,IAAI,CAACC,GAAL,CAAS,CAACyH,WAAW,IAAI,CAAhB,IAAqB28B,YAA9B,EAA4C,CAA5C,CAAb;AACA,UAAMP,EAAE,GAAG9jC,IAAI,CAACE,GAAL,CAAS,CAACwH,WAAW,IAAI,CAAhB,IAAqB08B,WAA9B,EAA2Ct6B,MAAM,CAACjY,MAAP,GAAgB,CAA3D,CAAX;AACA,UAAM0J,MAAM,GAAG,CAACgM,MAAM,CAACyC,UAAP,CAAkB65B,IAAlB,KAA2B,CAA5B,KAAkCt8B,MAAM,CAACyC,UAAP,CAAkB,CAAlB,KAAwB,CAA1D,CAAf;AACArX,IAAAA,MAAM,CAACsO,MAAP,CAAcsG,MAAM,CAAC2Z,OAArB,EAA8B;AAC5B2iB,MAAAA,IAD4B;AAE5BC,MAAAA,EAF4B;AAG5BvoC,MAAAA,MAH4B;AAI5ByO,MAAAA,UAAU,EAAEzC,MAAM,CAACyC;AAJS,KAA9B;;AAOA,aAASs6B,UAAT,GAAsB;AACpB/8B,MAAAA,MAAM,CAACgC,YAAP;AACAhC,MAAAA,MAAM,CAACsK,cAAP;AACAtK,MAAAA,MAAM,CAACmJ,mBAAP;;AAEA,UAAInJ,MAAM,CAACuvB,IAAP,IAAevvB,MAAM,CAACrG,MAAP,CAAc41B,IAAd,CAAmBxuB,OAAtC,EAA+C;AAC7Cf,QAAAA,MAAM,CAACuvB,IAAP,CAAYuB,IAAZ;AACD;AACF;;AAED,QAAI2L,YAAY,KAAKH,IAAjB,IAAyBI,UAAU,KAAKH,EAAxC,IAA8C,CAACC,KAAnD,EAA0D;AACxD,UAAIx8B,MAAM,CAACyC,UAAP,KAAsBk6B,kBAAtB,IAA4C3oC,MAAM,KAAK4oC,cAA3D,EAA2E;AACzE58B,QAAAA,MAAM,CAACuC,MAAP,CAAchP,GAAd,CAAkBwkC,UAAlB,EAA+B,GAAE/jC,MAAO,IAAxC;AACD;;AAEDgM,MAAAA,MAAM,CAACsK,cAAP;AACA;AACD;;AAED,QAAItK,MAAM,CAACrG,MAAP,CAAcggB,OAAd,CAAsBuiB,cAA1B,EAA0C;AACxCl8B,MAAAA,MAAM,CAACrG,MAAP,CAAcggB,OAAd,CAAsBuiB,cAAtB,CAAqC7vC,IAArC,CAA0C2T,MAA1C,EAAkD;AAChDhM,QAAAA,MADgD;AAEhDsoC,QAAAA,IAFgD;AAGhDC,QAAAA,EAHgD;AAIhDh6B,QAAAA,MAAM,EAAE,SAASy6B,SAAT,GAAqB;AAC3B,gBAAMC,cAAc,GAAG,EAAvB;;AAEA,eAAK,IAAIhzC,CAAC,GAAGqyC,IAAb,EAAmBryC,CAAC,IAAIsyC,EAAxB,EAA4BtyC,CAAC,IAAI,CAAjC,EAAoC;AAClCgzC,YAAAA,cAAc,CAACjxC,IAAf,CAAoBuW,MAAM,CAACtY,CAAD,CAA1B;AACD;;AAED,iBAAOgzC,cAAP;AACD,SARO;AAJwC,OAAlD;;AAeA,UAAIj9B,MAAM,CAACrG,MAAP,CAAcggB,OAAd,CAAsBwiB,oBAA1B,EAAgD;AAC9CY,QAAAA,UAAU;AACX;;AAED;AACD;;AAED,UAAMG,cAAc,GAAG,EAAvB;AACA,UAAMC,aAAa,GAAG,EAAtB;;AAEA,QAAIX,KAAJ,EAAW;AACTx8B,MAAAA,MAAM,CAACuL,UAAP,CAAkBlU,IAAlB,CAAwB,IAAG2I,MAAM,CAACrG,MAAP,CAAc6P,UAAW,EAApD,EAAuD1f,MAAvD;AACD,KAFD,MAEO;AACL,WAAK,IAAIG,CAAC,GAAGwyC,YAAb,EAA2BxyC,CAAC,IAAIyyC,UAAhC,EAA4CzyC,CAAC,IAAI,CAAjD,EAAoD;AAClD,YAAIA,CAAC,GAAGqyC,IAAJ,IAAYryC,CAAC,GAAGsyC,EAApB,EAAwB;AACtBv8B,UAAAA,MAAM,CAACuL,UAAP,CAAkBlU,IAAlB,CAAwB,IAAG2I,MAAM,CAACrG,MAAP,CAAc6P,UAAW,6BAA4Bvf,CAAE,IAAlF,EAAuFH,MAAvF;AACD;AACF;AACF;;AAED,SAAK,IAAIG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsY,MAAM,CAACjY,MAA3B,EAAmCL,CAAC,IAAI,CAAxC,EAA2C;AACzC,UAAIA,CAAC,IAAIqyC,IAAL,IAAaryC,CAAC,IAAIsyC,EAAtB,EAA0B;AACxB,YAAI,OAAOG,UAAP,KAAsB,WAAtB,IAAqCF,KAAzC,EAAgD;AAC9CW,UAAAA,aAAa,CAACnxC,IAAd,CAAmB/B,CAAnB;AACD,SAFD,MAEO;AACL,cAAIA,CAAC,GAAGyyC,UAAR,EAAoBS,aAAa,CAACnxC,IAAd,CAAmB/B,CAAnB;AACpB,cAAIA,CAAC,GAAGwyC,YAAR,EAAsBS,cAAc,CAAClxC,IAAf,CAAoB/B,CAApB;AACvB;AACF;AACF;;AAEDkzC,IAAAA,aAAa,CAACj0C,OAAd,CAAsB4L,KAAK,IAAI;AAC7BkL,MAAAA,MAAM,CAACuL,UAAP,CAAkB7V,MAAlB,CAAyBumC,WAAW,CAAC15B,MAAM,CAACzN,KAAD,CAAP,EAAgBA,KAAhB,CAApC;AACD,KAFD;AAGAooC,IAAAA,cAAc,CAACx9B,IAAf,CAAoB,CAACvS,CAAD,EAAIwS,CAAJ,KAAUA,CAAC,GAAGxS,CAAlC,EAAqCjE,OAArC,CAA6C4L,KAAK,IAAI;AACpDkL,MAAAA,MAAM,CAACuL,UAAP,CAAkBrV,OAAlB,CAA0B+lC,WAAW,CAAC15B,MAAM,CAACzN,KAAD,CAAP,EAAgBA,KAAhB,CAArC;AACD,KAFD;AAGAkL,IAAAA,MAAM,CAACuL,UAAP,CAAkB/T,QAAlB,CAA2B,eAA3B,EAA4CjE,GAA5C,CAAgDwkC,UAAhD,EAA6D,GAAE/jC,MAAO,IAAtE;AACA+oC,IAAAA,UAAU;AACX;;AAED,WAASzL,WAAT,CAAqB/uB,MAArB,EAA6B;AAC3B,QAAI,OAAOA,MAAP,KAAkB,QAAlB,IAA8B,YAAYA,MAA9C,EAAsD;AACpD,WAAK,IAAItY,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsY,MAAM,CAACjY,MAA3B,EAAmCL,CAAC,IAAI,CAAxC,EAA2C;AACzC,YAAIsY,MAAM,CAACtY,CAAD,CAAV,EAAe+V,MAAM,CAAC2Z,OAAP,CAAepX,MAAf,CAAsBvW,IAAtB,CAA2BuW,MAAM,CAACtY,CAAD,CAAjC;AAChB;AACF,KAJD,MAIO;AACL+V,MAAAA,MAAM,CAAC2Z,OAAP,CAAepX,MAAf,CAAsBvW,IAAtB,CAA2BuW,MAA3B;AACD;;AAEDkC,IAAAA,MAAM,CAAC,IAAD,CAAN;AACD;;AAED,WAAS8sB,YAAT,CAAsBhvB,MAAtB,EAA8B;AAC5B,UAAMpC,WAAW,GAAGH,MAAM,CAACG,WAA3B;AACA,QAAIgb,cAAc,GAAGhb,WAAW,GAAG,CAAnC;AACA,QAAIi9B,iBAAiB,GAAG,CAAxB;;AAEA,QAAI3xC,KAAK,CAACM,OAAN,CAAcwW,MAAd,CAAJ,EAA2B;AACzB,WAAK,IAAItY,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsY,MAAM,CAACjY,MAA3B,EAAmCL,CAAC,IAAI,CAAxC,EAA2C;AACzC,YAAIsY,MAAM,CAACtY,CAAD,CAAV,EAAe+V,MAAM,CAAC2Z,OAAP,CAAepX,MAAf,CAAsBnR,OAAtB,CAA8BmR,MAAM,CAACtY,CAAD,CAApC;AAChB;;AAEDkxB,MAAAA,cAAc,GAAGhb,WAAW,GAAGoC,MAAM,CAACjY,MAAtC;AACA8yC,MAAAA,iBAAiB,GAAG76B,MAAM,CAACjY,MAA3B;AACD,KAPD,MAOO;AACL0V,MAAAA,MAAM,CAAC2Z,OAAP,CAAepX,MAAf,CAAsBnR,OAAtB,CAA8BmR,MAA9B;AACD;;AAED,QAAIvC,MAAM,CAACrG,MAAP,CAAcggB,OAAd,CAAsBqiB,KAA1B,EAAiC;AAC/B,YAAMA,KAAK,GAAGh8B,MAAM,CAAC2Z,OAAP,CAAeqiB,KAA7B;AACA,YAAMqB,QAAQ,GAAG,EAAjB;AACAjyC,MAAAA,MAAM,CAACyP,IAAP,CAAYmhC,KAAZ,EAAmB9yC,OAAnB,CAA2Bo0C,WAAW,IAAI;AACxC,cAAMC,SAAS,GAAGvB,KAAK,CAACsB,WAAD,CAAvB;AACA,cAAME,aAAa,GAAGD,SAAS,CAAC/uC,IAAV,CAAe,yBAAf,CAAtB;;AAEA,YAAIgvC,aAAJ,EAAmB;AACjBD,UAAAA,SAAS,CAAC/uC,IAAV,CAAe,yBAAf,EAA0CoR,QAAQ,CAAC49B,aAAD,EAAgB,EAAhB,CAAR,GAA8B,CAAxE;AACD;;AAEDH,QAAAA,QAAQ,CAACz9B,QAAQ,CAAC09B,WAAD,EAAc,EAAd,CAAR,GAA4BF,iBAA7B,CAAR,GAA0DG,SAA1D;AACD,OATD;AAUAv9B,MAAAA,MAAM,CAAC2Z,OAAP,CAAeqiB,KAAf,GAAuBqB,QAAvB;AACD;;AAED54B,IAAAA,MAAM,CAAC,IAAD,CAAN;AACAzE,IAAAA,MAAM,CAACiC,OAAP,CAAekZ,cAAf,EAA+B,CAA/B;AACD;;AAED,WAASsW,WAAT,CAAqBO,aAArB,EAAoC;AAClC,QAAI,OAAOA,aAAP,KAAyB,WAAzB,IAAwCA,aAAa,KAAK,IAA9D,EAAoE;AACpE,QAAI7xB,WAAW,GAAGH,MAAM,CAACG,WAAzB;;AAEA,QAAI1U,KAAK,CAACM,OAAN,CAAcimC,aAAd,CAAJ,EAAkC;AAChC,WAAK,IAAI/nC,CAAC,GAAG+nC,aAAa,CAAC1nC,MAAd,GAAuB,CAApC,EAAuCL,CAAC,IAAI,CAA5C,EAA+CA,CAAC,IAAI,CAApD,EAAuD;AACrD+V,QAAAA,MAAM,CAAC2Z,OAAP,CAAepX,MAAf,CAAsBpQ,MAAtB,CAA6B6/B,aAAa,CAAC/nC,CAAD,CAA1C,EAA+C,CAA/C;;AAEA,YAAI+V,MAAM,CAACrG,MAAP,CAAcggB,OAAd,CAAsBqiB,KAA1B,EAAiC;AAC/B,iBAAOh8B,MAAM,CAAC2Z,OAAP,CAAeqiB,KAAf,CAAqBhK,aAAa,CAAC/nC,CAAD,CAAlC,CAAP;AACD;;AAED,YAAI+nC,aAAa,CAAC/nC,CAAD,CAAb,GAAmBkW,WAAvB,EAAoCA,WAAW,IAAI,CAAf;AACpCA,QAAAA,WAAW,GAAG1H,IAAI,CAACC,GAAL,CAASyH,WAAT,EAAsB,CAAtB,CAAd;AACD;AACF,KAXD,MAWO;AACLH,MAAAA,MAAM,CAAC2Z,OAAP,CAAepX,MAAf,CAAsBpQ,MAAtB,CAA6B6/B,aAA7B,EAA4C,CAA5C;;AAEA,UAAIhyB,MAAM,CAACrG,MAAP,CAAcggB,OAAd,CAAsBqiB,KAA1B,EAAiC;AAC/B,eAAOh8B,MAAM,CAAC2Z,OAAP,CAAeqiB,KAAf,CAAqBhK,aAArB,CAAP;AACD;;AAED,UAAIA,aAAa,GAAG7xB,WAApB,EAAiCA,WAAW,IAAI,CAAf;AACjCA,MAAAA,WAAW,GAAG1H,IAAI,CAACC,GAAL,CAASyH,WAAT,EAAsB,CAAtB,CAAd;AACD;;AAEDsE,IAAAA,MAAM,CAAC,IAAD,CAAN;AACAzE,IAAAA,MAAM,CAACiC,OAAP,CAAe9B,WAAf,EAA4B,CAA5B;AACD;;AAED,WAASuxB,eAAT,GAA2B;AACzB1xB,IAAAA,MAAM,CAAC2Z,OAAP,CAAepX,MAAf,GAAwB,EAAxB;;AAEA,QAAIvC,MAAM,CAACrG,MAAP,CAAcggB,OAAd,CAAsBqiB,KAA1B,EAAiC;AAC/Bh8B,MAAAA,MAAM,CAAC2Z,OAAP,CAAeqiB,KAAf,GAAuB,EAAvB;AACD;;AAEDv3B,IAAAA,MAAM,CAAC,IAAD,CAAN;AACAzE,IAAAA,MAAM,CAACiC,OAAP,CAAe,CAAf,EAAkB,CAAlB;AACD;;AAEDvR,EAAAA,EAAE,CAAC,YAAD,EAAe,MAAM;AACrB,QAAI,CAACsP,MAAM,CAACrG,MAAP,CAAcggB,OAAd,CAAsB5Y,OAA3B,EAAoC;AACpCf,IAAAA,MAAM,CAAC2Z,OAAP,CAAepX,MAAf,GAAwBvC,MAAM,CAACrG,MAAP,CAAcggB,OAAd,CAAsBpX,MAA9C;AACAvC,IAAAA,MAAM,CAAChS,UAAP,CAAkBhC,IAAlB,CAAwB,GAAEgU,MAAM,CAACrG,MAAP,CAAcqH,sBAAuB,SAA/D;AACAhB,IAAAA,MAAM,CAACrG,MAAP,CAAcsV,mBAAd,GAAoC,IAApC;AACAjP,IAAAA,MAAM,CAACW,cAAP,CAAsBsO,mBAAtB,GAA4C,IAA5C;;AAEA,QAAI,CAACjP,MAAM,CAACrG,MAAP,CAAcmS,YAAnB,EAAiC;AAC/BrH,MAAAA,MAAM;AACP;AACF,GAVC,CAAF;AAWA/T,EAAAA,EAAE,CAAC,cAAD,EAAiB,MAAM;AACvB,QAAI,CAACsP,MAAM,CAACrG,MAAP,CAAcggB,OAAd,CAAsB5Y,OAA3B,EAAoC;AACpC0D,IAAAA,MAAM;AACP,GAHC,CAAF;AAIA/T,EAAAA,EAAE,CAAC,oBAAD,EAAuB,MAAM;AAC7B,QAAI,CAACsP,MAAM,CAACrG,MAAP,CAAcggB,OAAd,CAAsB5Y,OAA3B,EAAoC;;AAEpC,QAAIf,MAAM,CAACrG,MAAP,CAAckK,OAAlB,EAA2B;AACzBkY,MAAAA,gEAAc,CAAC/b,MAAM,CAAC0L,SAAR,EAAmB,uBAAnB,EAA6C,GAAE1L,MAAM,CAAC6c,WAAY,IAAlE,CAAd;AACD;AACF,GANC,CAAF;AAOAzxB,EAAAA,MAAM,CAACsO,MAAP,CAAcsG,MAAM,CAAC2Z,OAArB,EAA8B;AAC5B2X,IAAAA,WAD4B;AAE5BC,IAAAA,YAF4B;AAG5BE,IAAAA,WAH4B;AAI5BC,IAAAA,eAJ4B;AAK5BjtB,IAAAA;AAL4B,GAA9B;AAOD;;;;;;;;;;;;;;;;;ACrRD;AACA;AACA;AACe,SAASg5B,IAAT,CAAc;AAC3Bz9B,EAAAA,MAD2B;AAE3B8F,EAAAA,YAF2B;AAG3BpV,EAAAA,EAH2B;AAI3BmR,EAAAA;AAJ2B,CAAd,EAKZ;AACD,QAAMhZ,MAAM,GAAGiC,qDAAS,EAAxB;AACAgb,EAAAA,YAAY,CAAC;AACX43B,IAAAA,IAAI,EAAE;AACJ38B,MAAAA,OAAO,EAAE,KADL;AAEJ48B,MAAAA,QAAQ,EAAE,CAFN;AAGJn+B,MAAAA,QAAQ,EAAE,CAHN;AAIJjV,MAAAA,MAAM,EAAE,IAJJ;AAKJqzC,MAAAA,cAAc,EAAE,uBALZ;AAMJC,MAAAA,gBAAgB,EAAE;AANd;AADK,GAAD,CAAZ;AAUA79B,EAAAA,MAAM,CAAC09B,IAAP,GAAc;AACZ38B,IAAAA,OAAO,EAAE;AADG,GAAd;AAGA,MAAI23B,YAAY,GAAG,CAAnB;AACA,MAAIoF,SAAS,GAAG,KAAhB;AACA,MAAIC,eAAJ;AACA,MAAIC,kBAAJ;AACA,MAAIC,gBAAJ;AACA,QAAMC,OAAO,GAAG;AACdxb,IAAAA,QAAQ,EAAE9zB,SADI;AAEduvC,IAAAA,UAAU,EAAEvvC,SAFE;AAGdwvC,IAAAA,WAAW,EAAExvC,SAHC;AAId0hC,IAAAA,QAAQ,EAAE1hC,SAJI;AAKdyvC,IAAAA,YAAY,EAAEzvC,SALA;AAMd+uC,IAAAA,QAAQ,EAAE;AANI,GAAhB;AAQA,QAAM7oB,KAAK,GAAG;AACZ3N,IAAAA,SAAS,EAAEvY,SADC;AAEZwY,IAAAA,OAAO,EAAExY,SAFG;AAGZ0Z,IAAAA,QAAQ,EAAE1Z,SAHE;AAIZ2Z,IAAAA,QAAQ,EAAE3Z,SAJE;AAKZ0vC,IAAAA,IAAI,EAAE1vC,SALM;AAMZ2vC,IAAAA,IAAI,EAAE3vC,SANM;AAOZ4vC,IAAAA,IAAI,EAAE5vC,SAPM;AAQZ6vC,IAAAA,IAAI,EAAE7vC,SARM;AASZyE,IAAAA,KAAK,EAAEzE,SATK;AAUZiF,IAAAA,MAAM,EAAEjF,SAVI;AAWZwZ,IAAAA,MAAM,EAAExZ,SAXI;AAYZyZ,IAAAA,MAAM,EAAEzZ,SAZI;AAaZ8vC,IAAAA,YAAY,EAAE,EAbF;AAcZC,IAAAA,cAAc,EAAE;AAdJ,GAAd;AAgBA,QAAMn4B,QAAQ,GAAG;AACfoU,IAAAA,CAAC,EAAEhsB,SADY;AAEfisB,IAAAA,CAAC,EAAEjsB,SAFY;AAGfgwC,IAAAA,aAAa,EAAEhwC,SAHA;AAIfiwC,IAAAA,aAAa,EAAEjwC,SAJA;AAKfkwC,IAAAA,QAAQ,EAAElwC;AALK,GAAjB;AAOA,MAAIs3B,KAAK,GAAG,CAAZ;AACA96B,EAAAA,MAAM,CAACC,cAAP,CAAsB2U,MAAM,CAAC09B,IAA7B,EAAmC,OAAnC,EAA4C;AAC1CpyC,IAAAA,GAAG,GAAG;AACJ,aAAO46B,KAAP;AACD,KAHyC;;AAK1C36B,IAAAA,GAAG,CAACpB,KAAD,EAAQ;AACT,UAAI+7B,KAAK,KAAK/7B,KAAd,EAAqB;AACnB,cAAMuqB,OAAO,GAAGwpB,OAAO,CAAC5N,QAAR,GAAmB4N,OAAO,CAAC5N,QAAR,CAAiB,CAAjB,CAAnB,GAAyC1hC,SAAzD;AACA,cAAM2a,OAAO,GAAG20B,OAAO,CAACxb,QAAR,GAAmBwb,OAAO,CAACxb,QAAR,CAAiB,CAAjB,CAAnB,GAAyC9zB,SAAzD;AACAiT,QAAAA,IAAI,CAAC,YAAD,EAAe1X,KAAf,EAAsBuqB,OAAtB,EAA+BnL,OAA/B,CAAJ;AACD;;AAED2c,MAAAA,KAAK,GAAG/7B,KAAR;AACD;;AAbyC,GAA5C;;AAiBA,WAAS40C,yBAAT,CAAmC70C,CAAnC,EAAsC;AACpC,QAAIA,CAAC,CAACyoB,aAAF,CAAgBroB,MAAhB,GAAyB,CAA7B,EAAgC,OAAO,CAAP;AAChC,UAAM00C,EAAE,GAAG90C,CAAC,CAACyoB,aAAF,CAAgB,CAAhB,EAAmBE,KAA9B;AACA,UAAMosB,EAAE,GAAG/0C,CAAC,CAACyoB,aAAF,CAAgB,CAAhB,EAAmBG,KAA9B;AACA,UAAMgS,EAAE,GAAG56B,CAAC,CAACyoB,aAAF,CAAgB,CAAhB,EAAmBE,KAA9B;AACA,UAAMqsB,EAAE,GAAGh1C,CAAC,CAACyoB,aAAF,CAAgB,CAAhB,EAAmBG,KAA9B;AACA,UAAMmY,QAAQ,GAAGxyB,IAAI,CAACya,IAAL,CAAU,CAAC4R,EAAE,GAAGka,EAAN,KAAa,CAAb,GAAiB,CAACE,EAAE,GAAGD,EAAN,KAAa,CAAxC,CAAjB;AACA,WAAOhU,QAAP;AACD,GA7EA,CA6EC;;;AAGF,WAASkU,cAAT,CAAwBj1C,CAAxB,EAA2B;AACzB,UAAMoZ,OAAO,GAAGtD,MAAM,CAACsD,OAAvB;AACA,UAAM3J,MAAM,GAAGqG,MAAM,CAACrG,MAAP,CAAc+jC,IAA7B;AACAM,IAAAA,kBAAkB,GAAG,KAArB;AACAC,IAAAA,gBAAgB,GAAG,KAAnB;;AAEA,QAAI,CAAC36B,OAAO,CAAC87B,QAAb,EAAuB;AACrB,UAAIl1C,CAAC,CAACuoB,IAAF,KAAW,YAAX,IAA2BvoB,CAAC,CAACuoB,IAAF,KAAW,YAAX,IAA2BvoB,CAAC,CAACyoB,aAAF,CAAgBroB,MAAhB,GAAyB,CAAnF,EAAsF;AACpF;AACD;;AAED0zC,MAAAA,kBAAkB,GAAG,IAArB;AACAE,MAAAA,OAAO,CAACmB,UAAR,GAAqBN,yBAAyB,CAAC70C,CAAD,CAA9C;AACD;;AAED,QAAI,CAACg0C,OAAO,CAACxb,QAAT,IAAqB,CAACwb,OAAO,CAACxb,QAAR,CAAiBp4B,MAA3C,EAAmD;AACjD4zC,MAAAA,OAAO,CAACxb,QAAR,GAAmBt1B,0DAAC,CAAClD,CAAC,CAAC+G,MAAH,CAAD,CAAYmG,OAAZ,CAAqB,IAAG4I,MAAM,CAACrG,MAAP,CAAc6P,UAAW,EAAjD,CAAnB;AACA,UAAI00B,OAAO,CAACxb,QAAR,CAAiBp4B,MAAjB,KAA4B,CAAhC,EAAmC4zC,OAAO,CAACxb,QAAR,GAAmB1iB,MAAM,CAACuC,MAAP,CAAc/M,EAAd,CAAiBwK,MAAM,CAACG,WAAxB,CAAnB;AACnC+9B,MAAAA,OAAO,CAAC5N,QAAR,GAAmB4N,OAAO,CAACxb,QAAR,CAAiBrrB,IAAjB,CAAuB,IAAGsC,MAAM,CAACikC,cAAe,EAAhD,EAAmDpoC,EAAnD,CAAsD,CAAtD,EAAyD6B,IAAzD,CAA8D,gDAA9D,CAAnB;AACA6mC,MAAAA,OAAO,CAACG,YAAR,GAAuBH,OAAO,CAAC5N,QAAR,CAAiBr6B,MAAjB,CAAyB,IAAG0D,MAAM,CAACikC,cAAe,EAAlD,CAAvB;AACAM,MAAAA,OAAO,CAACP,QAAR,GAAmBO,OAAO,CAACG,YAAR,CAAqB7vC,IAArB,CAA0B,kBAA1B,KAAiDmL,MAAM,CAACgkC,QAA3E;;AAEA,UAAIO,OAAO,CAACG,YAAR,CAAqB/zC,MAArB,KAAgC,CAApC,EAAuC;AACrC4zC,QAAAA,OAAO,CAAC5N,QAAR,GAAmB1hC,SAAnB;AACA;AACD;AACF;;AAED,QAAIsvC,OAAO,CAAC5N,QAAZ,EAAsB;AACpB4N,MAAAA,OAAO,CAAC5N,QAAR,CAAiB//B,UAAjB,CAA4B,CAA5B;AACD;;AAEDutC,IAAAA,SAAS,GAAG,IAAZ;AACD;;AAED,WAASwB,eAAT,CAAyBp1C,CAAzB,EAA4B;AAC1B,UAAMoZ,OAAO,GAAGtD,MAAM,CAACsD,OAAvB;AACA,UAAM3J,MAAM,GAAGqG,MAAM,CAACrG,MAAP,CAAc+jC,IAA7B;AACA,UAAMA,IAAI,GAAG19B,MAAM,CAAC09B,IAApB;;AAEA,QAAI,CAACp6B,OAAO,CAAC87B,QAAb,EAAuB;AACrB,UAAIl1C,CAAC,CAACuoB,IAAF,KAAW,WAAX,IAA0BvoB,CAAC,CAACuoB,IAAF,KAAW,WAAX,IAA0BvoB,CAAC,CAACyoB,aAAF,CAAgBroB,MAAhB,GAAyB,CAAjF,EAAoF;AAClF;AACD;;AAED2zC,MAAAA,gBAAgB,GAAG,IAAnB;AACAC,MAAAA,OAAO,CAACqB,SAAR,GAAoBR,yBAAyB,CAAC70C,CAAD,CAA7C;AACD;;AAED,QAAI,CAACg0C,OAAO,CAAC5N,QAAT,IAAqB4N,OAAO,CAAC5N,QAAR,CAAiBhmC,MAAjB,KAA4B,CAArD,EAAwD;AACtD,UAAIJ,CAAC,CAACuoB,IAAF,KAAW,eAAf,EAAgC0sB,cAAc,CAACj1C,CAAD,CAAd;AAChC;AACD;;AAED,QAAIoZ,OAAO,CAAC87B,QAAZ,EAAsB;AACpB1B,MAAAA,IAAI,CAACxX,KAAL,GAAah8B,CAAC,CAACg8B,KAAF,GAAUwS,YAAvB;AACD,KAFD,MAEO;AACLgF,MAAAA,IAAI,CAACxX,KAAL,GAAagY,OAAO,CAACqB,SAAR,GAAoBrB,OAAO,CAACmB,UAA5B,GAAyC3G,YAAtD;AACD;;AAED,QAAIgF,IAAI,CAACxX,KAAL,GAAagY,OAAO,CAACP,QAAzB,EAAmC;AACjCD,MAAAA,IAAI,CAACxX,KAAL,GAAagY,OAAO,CAACP,QAAR,GAAmB,CAAnB,GAAuB,CAACD,IAAI,CAACxX,KAAL,GAAagY,OAAO,CAACP,QAArB,GAAgC,CAAjC,KAAuC,GAA3E;AACD;;AAED,QAAID,IAAI,CAACxX,KAAL,GAAavsB,MAAM,CAAC6F,QAAxB,EAAkC;AAChCk+B,MAAAA,IAAI,CAACxX,KAAL,GAAavsB,MAAM,CAAC6F,QAAP,GAAkB,CAAlB,GAAsB,CAAC7F,MAAM,CAAC6F,QAAP,GAAkBk+B,IAAI,CAACxX,KAAvB,GAA+B,CAAhC,KAAsC,GAAzE;AACD;;AAEDgY,IAAAA,OAAO,CAAC5N,QAAR,CAAiBjgC,SAAjB,CAA4B,4BAA2BqtC,IAAI,CAACxX,KAAM,GAAlE;AACD;;AAED,WAASsZ,YAAT,CAAsBt1C,CAAtB,EAAyB;AACvB,UAAMmZ,MAAM,GAAGrD,MAAM,CAACqD,MAAtB;AACA,UAAMC,OAAO,GAAGtD,MAAM,CAACsD,OAAvB;AACA,UAAM3J,MAAM,GAAGqG,MAAM,CAACrG,MAAP,CAAc+jC,IAA7B;AACA,UAAMA,IAAI,GAAG19B,MAAM,CAAC09B,IAApB;;AAEA,QAAI,CAACp6B,OAAO,CAAC87B,QAAb,EAAuB;AACrB,UAAI,CAACpB,kBAAD,IAAuB,CAACC,gBAA5B,EAA8C;AAC5C;AACD;;AAED,UAAI/zC,CAAC,CAACuoB,IAAF,KAAW,UAAX,IAAyBvoB,CAAC,CAACuoB,IAAF,KAAW,UAAX,IAAyBvoB,CAAC,CAAC0oB,cAAF,CAAiBtoB,MAAjB,GAA0B,CAAnD,IAAwD,CAAC+Y,MAAM,CAACM,OAA7F,EAAsG;AACpG;AACD;;AAEDq6B,MAAAA,kBAAkB,GAAG,KAArB;AACAC,MAAAA,gBAAgB,GAAG,KAAnB;AACD;;AAED,QAAI,CAACC,OAAO,CAAC5N,QAAT,IAAqB4N,OAAO,CAAC5N,QAAR,CAAiBhmC,MAAjB,KAA4B,CAArD,EAAwD;AACxDozC,IAAAA,IAAI,CAACxX,KAAL,GAAaztB,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAAS+kC,IAAI,CAACxX,KAAd,EAAqBgY,OAAO,CAACP,QAA7B,CAAT,EAAiDhkC,MAAM,CAAC6F,QAAxD,CAAb;AACA0+B,IAAAA,OAAO,CAAC5N,QAAR,CAAiB//B,UAAjB,CAA4ByP,MAAM,CAACrG,MAAP,CAAc3R,KAA1C,EAAiDqI,SAAjD,CAA4D,4BAA2BqtC,IAAI,CAACxX,KAAM,GAAlG;AACAwS,IAAAA,YAAY,GAAGgF,IAAI,CAACxX,KAApB;AACA4X,IAAAA,SAAS,GAAG,KAAZ;AACA,QAAIJ,IAAI,CAACxX,KAAL,KAAe,CAAnB,EAAsBgY,OAAO,CAACxb,QAAR,GAAmB9zB,SAAnB;AACvB;;AAED,WAAS6hB,YAAT,CAAsBvmB,CAAtB,EAAyB;AACvB,UAAMmZ,MAAM,GAAGrD,MAAM,CAACqD,MAAtB;AACA,QAAI,CAAC66B,OAAO,CAAC5N,QAAT,IAAqB4N,OAAO,CAAC5N,QAAR,CAAiBhmC,MAAjB,KAA4B,CAArD,EAAwD;AACxD,QAAIwqB,KAAK,CAAC3N,SAAV,EAAqB;AACrB,QAAI9D,MAAM,CAACM,OAAP,IAAkBzZ,CAAC,CAAC6I,UAAxB,EAAoC7I,CAAC,CAACmnB,cAAF;AACpCyD,IAAAA,KAAK,CAAC3N,SAAN,GAAkB,IAAlB;AACA2N,IAAAA,KAAK,CAAC4pB,YAAN,CAAmB9jB,CAAnB,GAAuB1wB,CAAC,CAACuoB,IAAF,KAAW,YAAX,GAA0BvoB,CAAC,CAACyoB,aAAF,CAAgB,CAAhB,EAAmBE,KAA7C,GAAqD3oB,CAAC,CAAC2oB,KAA9E;AACAiC,IAAAA,KAAK,CAAC4pB,YAAN,CAAmB7jB,CAAnB,GAAuB3wB,CAAC,CAACuoB,IAAF,KAAW,YAAX,GAA0BvoB,CAAC,CAACyoB,aAAF,CAAgB,CAAhB,EAAmBG,KAA7C,GAAqD5oB,CAAC,CAAC4oB,KAA9E;AACD;;AAED,WAASpC,WAAT,CAAqBxmB,CAArB,EAAwB;AACtB,UAAMwzC,IAAI,GAAG19B,MAAM,CAAC09B,IAApB;AACA,QAAI,CAACQ,OAAO,CAAC5N,QAAT,IAAqB4N,OAAO,CAAC5N,QAAR,CAAiBhmC,MAAjB,KAA4B,CAArD,EAAwD;AACxD0V,IAAAA,MAAM,CAACkI,UAAP,GAAoB,KAApB;AACA,QAAI,CAAC4M,KAAK,CAAC3N,SAAP,IAAoB,CAAC+2B,OAAO,CAACxb,QAAjC,EAA2C;;AAE3C,QAAI,CAAC5N,KAAK,CAAC1N,OAAX,EAAoB;AAClB0N,MAAAA,KAAK,CAACzhB,KAAN,GAAc6qC,OAAO,CAAC5N,QAAR,CAAiB,CAAjB,EAAoB38B,WAAlC;AACAmhB,MAAAA,KAAK,CAACjhB,MAAN,GAAeqqC,OAAO,CAAC5N,QAAR,CAAiB,CAAjB,EAAoBjnC,YAAnC;AACAyrB,MAAAA,KAAK,CAAC1M,MAAN,GAAekL,8DAAY,CAAC4qB,OAAO,CAACG,YAAR,CAAqB,CAArB,CAAD,EAA0B,GAA1B,CAAZ,IAA8C,CAA7D;AACAvpB,MAAAA,KAAK,CAACzM,MAAN,GAAeiL,8DAAY,CAAC4qB,OAAO,CAACG,YAAR,CAAqB,CAArB,CAAD,EAA0B,GAA1B,CAAZ,IAA8C,CAA7D;AACAH,MAAAA,OAAO,CAACC,UAAR,GAAqBD,OAAO,CAACxb,QAAR,CAAiB,CAAjB,EAAoB/uB,WAAzC;AACAuqC,MAAAA,OAAO,CAACE,WAAR,GAAsBF,OAAO,CAACxb,QAAR,CAAiB,CAAjB,EAAoBr5B,YAA1C;AACA60C,MAAAA,OAAO,CAACG,YAAR,CAAqB9tC,UAArB,CAAgC,CAAhC;AACD,KAdqB,CAcpB;;;AAGF,UAAMkvC,WAAW,GAAG3qB,KAAK,CAACzhB,KAAN,GAAcqqC,IAAI,CAACxX,KAAvC;AACA,UAAMwZ,YAAY,GAAG5qB,KAAK,CAACjhB,MAAN,GAAe6pC,IAAI,CAACxX,KAAzC;AACA,QAAIuZ,WAAW,GAAGvB,OAAO,CAACC,UAAtB,IAAoCuB,YAAY,GAAGxB,OAAO,CAACE,WAA/D,EAA4E;AAC5EtpB,IAAAA,KAAK,CAACwpB,IAAN,GAAa7lC,IAAI,CAACE,GAAL,CAASulC,OAAO,CAACC,UAAR,GAAqB,CAArB,GAAyBsB,WAAW,GAAG,CAAhD,EAAmD,CAAnD,CAAb;AACA3qB,IAAAA,KAAK,CAAC0pB,IAAN,GAAa,CAAC1pB,KAAK,CAACwpB,IAApB;AACAxpB,IAAAA,KAAK,CAACypB,IAAN,GAAa9lC,IAAI,CAACE,GAAL,CAASulC,OAAO,CAACE,WAAR,GAAsB,CAAtB,GAA0BsB,YAAY,GAAG,CAAlD,EAAqD,CAArD,CAAb;AACA5qB,IAAAA,KAAK,CAAC2pB,IAAN,GAAa,CAAC3pB,KAAK,CAACypB,IAApB;AACAzpB,IAAAA,KAAK,CAAC6pB,cAAN,CAAqB/jB,CAArB,GAAyB1wB,CAAC,CAACuoB,IAAF,KAAW,WAAX,GAAyBvoB,CAAC,CAACyoB,aAAF,CAAgB,CAAhB,EAAmBE,KAA5C,GAAoD3oB,CAAC,CAAC2oB,KAA/E;AACAiC,IAAAA,KAAK,CAAC6pB,cAAN,CAAqB9jB,CAArB,GAAyB3wB,CAAC,CAACuoB,IAAF,KAAW,WAAX,GAAyBvoB,CAAC,CAACyoB,aAAF,CAAgB,CAAhB,EAAmBG,KAA5C,GAAoD5oB,CAAC,CAAC4oB,KAA/E;;AAEA,QAAI,CAACgC,KAAK,CAAC1N,OAAP,IAAkB,CAAC02B,SAAvB,EAAkC;AAChC,UAAI99B,MAAM,CAACmG,YAAP,OAA0B1N,IAAI,CAAC2f,KAAL,CAAWtD,KAAK,CAACwpB,IAAjB,MAA2B7lC,IAAI,CAAC2f,KAAL,CAAWtD,KAAK,CAAC1M,MAAjB,CAA3B,IAAuD0M,KAAK,CAAC6pB,cAAN,CAAqB/jB,CAArB,GAAyB9F,KAAK,CAAC4pB,YAAN,CAAmB9jB,CAAnG,IAAwGniB,IAAI,CAAC2f,KAAL,CAAWtD,KAAK,CAAC0pB,IAAjB,MAA2B/lC,IAAI,CAAC2f,KAAL,CAAWtD,KAAK,CAAC1M,MAAjB,CAA3B,IAAuD0M,KAAK,CAAC6pB,cAAN,CAAqB/jB,CAArB,GAAyB9F,KAAK,CAAC4pB,YAAN,CAAmB9jB,CAArO,CAAJ,EAA6O;AAC3O9F,QAAAA,KAAK,CAAC3N,SAAN,GAAkB,KAAlB;AACA;AACD;;AAED,UAAI,CAACnH,MAAM,CAACmG,YAAP,EAAD,KAA2B1N,IAAI,CAAC2f,KAAL,CAAWtD,KAAK,CAACypB,IAAjB,MAA2B9lC,IAAI,CAAC2f,KAAL,CAAWtD,KAAK,CAACzM,MAAjB,CAA3B,IAAuDyM,KAAK,CAAC6pB,cAAN,CAAqB9jB,CAArB,GAAyB/F,KAAK,CAAC4pB,YAAN,CAAmB7jB,CAAnG,IAAwGpiB,IAAI,CAAC2f,KAAL,CAAWtD,KAAK,CAAC2pB,IAAjB,MAA2BhmC,IAAI,CAAC2f,KAAL,CAAWtD,KAAK,CAACzM,MAAjB,CAA3B,IAAuDyM,KAAK,CAAC6pB,cAAN,CAAqB9jB,CAArB,GAAyB/F,KAAK,CAAC4pB,YAAN,CAAmB7jB,CAAtO,CAAJ,EAA8O;AAC5O/F,QAAAA,KAAK,CAAC3N,SAAN,GAAkB,KAAlB;AACA;AACD;AACF;;AAED,QAAIjd,CAAC,CAAC6I,UAAN,EAAkB;AAChB7I,MAAAA,CAAC,CAACmnB,cAAF;AACD;;AAEDnnB,IAAAA,CAAC,CAACG,eAAF;AACAyqB,IAAAA,KAAK,CAAC1N,OAAN,GAAgB,IAAhB;AACA0N,IAAAA,KAAK,CAACxM,QAAN,GAAiBwM,KAAK,CAAC6pB,cAAN,CAAqB/jB,CAArB,GAAyB9F,KAAK,CAAC4pB,YAAN,CAAmB9jB,CAA5C,GAAgD9F,KAAK,CAAC1M,MAAvE;AACA0M,IAAAA,KAAK,CAACvM,QAAN,GAAiBuM,KAAK,CAAC6pB,cAAN,CAAqB9jB,CAArB,GAAyB/F,KAAK,CAAC4pB,YAAN,CAAmB7jB,CAA5C,GAAgD/F,KAAK,CAACzM,MAAvE;;AAEA,QAAIyM,KAAK,CAACxM,QAAN,GAAiBwM,KAAK,CAACwpB,IAA3B,EAAiC;AAC/BxpB,MAAAA,KAAK,CAACxM,QAAN,GAAiBwM,KAAK,CAACwpB,IAAN,GAAa,CAAb,GAAiB,CAACxpB,KAAK,CAACwpB,IAAN,GAAaxpB,KAAK,CAACxM,QAAnB,GAA8B,CAA/B,KAAqC,GAAvE;AACD;;AAED,QAAIwM,KAAK,CAACxM,QAAN,GAAiBwM,KAAK,CAAC0pB,IAA3B,EAAiC;AAC/B1pB,MAAAA,KAAK,CAACxM,QAAN,GAAiBwM,KAAK,CAAC0pB,IAAN,GAAa,CAAb,GAAiB,CAAC1pB,KAAK,CAACxM,QAAN,GAAiBwM,KAAK,CAAC0pB,IAAvB,GAA8B,CAA/B,KAAqC,GAAvE;AACD;;AAED,QAAI1pB,KAAK,CAACvM,QAAN,GAAiBuM,KAAK,CAACypB,IAA3B,EAAiC;AAC/BzpB,MAAAA,KAAK,CAACvM,QAAN,GAAiBuM,KAAK,CAACypB,IAAN,GAAa,CAAb,GAAiB,CAACzpB,KAAK,CAACypB,IAAN,GAAazpB,KAAK,CAACvM,QAAnB,GAA8B,CAA/B,KAAqC,GAAvE;AACD;;AAED,QAAIuM,KAAK,CAACvM,QAAN,GAAiBuM,KAAK,CAAC2pB,IAA3B,EAAiC;AAC/B3pB,MAAAA,KAAK,CAACvM,QAAN,GAAiBuM,KAAK,CAAC2pB,IAAN,GAAa,CAAb,GAAiB,CAAC3pB,KAAK,CAACvM,QAAN,GAAiBuM,KAAK,CAAC2pB,IAAvB,GAA8B,CAA/B,KAAqC,GAAvE;AACD,KA9DqB,CA8DpB;;;AAGF,QAAI,CAACj4B,QAAQ,CAACo4B,aAAd,EAA6Bp4B,QAAQ,CAACo4B,aAAT,GAAyB9pB,KAAK,CAAC6pB,cAAN,CAAqB/jB,CAA9C;AAC7B,QAAI,CAACpU,QAAQ,CAACq4B,aAAd,EAA6Br4B,QAAQ,CAACq4B,aAAT,GAAyB/pB,KAAK,CAAC6pB,cAAN,CAAqB9jB,CAA9C;AAC7B,QAAI,CAACrU,QAAQ,CAACs4B,QAAd,EAAwBt4B,QAAQ,CAACs4B,QAAT,GAAoB9lC,IAAI,CAACiL,GAAL,EAApB;AACxBuC,IAAAA,QAAQ,CAACoU,CAAT,GAAa,CAAC9F,KAAK,CAAC6pB,cAAN,CAAqB/jB,CAArB,GAAyBpU,QAAQ,CAACo4B,aAAnC,KAAqD5lC,IAAI,CAACiL,GAAL,KAAauC,QAAQ,CAACs4B,QAA3E,IAAuF,CAApG;AACAt4B,IAAAA,QAAQ,CAACqU,CAAT,GAAa,CAAC/F,KAAK,CAAC6pB,cAAN,CAAqB9jB,CAArB,GAAyBrU,QAAQ,CAACq4B,aAAnC,KAAqD7lC,IAAI,CAACiL,GAAL,KAAauC,QAAQ,CAACs4B,QAA3E,IAAuF,CAApG;AACA,QAAIrmC,IAAI,CAAC2a,GAAL,CAAS0B,KAAK,CAAC6pB,cAAN,CAAqB/jB,CAArB,GAAyBpU,QAAQ,CAACo4B,aAA3C,IAA4D,CAAhE,EAAmEp4B,QAAQ,CAACoU,CAAT,GAAa,CAAb;AACnE,QAAIniB,IAAI,CAAC2a,GAAL,CAAS0B,KAAK,CAAC6pB,cAAN,CAAqB9jB,CAArB,GAAyBrU,QAAQ,CAACq4B,aAA3C,IAA4D,CAAhE,EAAmEr4B,QAAQ,CAACqU,CAAT,GAAa,CAAb;AACnErU,IAAAA,QAAQ,CAACo4B,aAAT,GAAyB9pB,KAAK,CAAC6pB,cAAN,CAAqB/jB,CAA9C;AACApU,IAAAA,QAAQ,CAACq4B,aAAT,GAAyB/pB,KAAK,CAAC6pB,cAAN,CAAqB9jB,CAA9C;AACArU,IAAAA,QAAQ,CAACs4B,QAAT,GAAoB9lC,IAAI,CAACiL,GAAL,EAApB;AACAi6B,IAAAA,OAAO,CAACG,YAAR,CAAqBhuC,SAArB,CAAgC,eAAcykB,KAAK,CAACxM,QAAS,OAAMwM,KAAK,CAACvM,QAAS,OAAlF;AACD;;AAED,WAASoI,UAAT,GAAsB;AACpB,UAAM+sB,IAAI,GAAG19B,MAAM,CAAC09B,IAApB;AACA,QAAI,CAACQ,OAAO,CAAC5N,QAAT,IAAqB4N,OAAO,CAAC5N,QAAR,CAAiBhmC,MAAjB,KAA4B,CAArD,EAAwD;;AAExD,QAAI,CAACwqB,KAAK,CAAC3N,SAAP,IAAoB,CAAC2N,KAAK,CAAC1N,OAA/B,EAAwC;AACtC0N,MAAAA,KAAK,CAAC3N,SAAN,GAAkB,KAAlB;AACA2N,MAAAA,KAAK,CAAC1N,OAAN,GAAgB,KAAhB;AACA;AACD;;AAED0N,IAAAA,KAAK,CAAC3N,SAAN,GAAkB,KAAlB;AACA2N,IAAAA,KAAK,CAAC1N,OAAN,GAAgB,KAAhB;AACA,QAAIu4B,iBAAiB,GAAG,GAAxB;AACA,QAAIC,iBAAiB,GAAG,GAAxB;AACA,UAAMC,iBAAiB,GAAGr5B,QAAQ,CAACoU,CAAT,GAAa+kB,iBAAvC;AACA,UAAMG,YAAY,GAAGhrB,KAAK,CAACxM,QAAN,GAAiBu3B,iBAAtC;AACA,UAAME,iBAAiB,GAAGv5B,QAAQ,CAACqU,CAAT,GAAa+kB,iBAAvC;AACA,UAAMI,YAAY,GAAGlrB,KAAK,CAACvM,QAAN,GAAiBw3B,iBAAtC,CAjBoB,CAiBqC;;AAEzD,QAAIv5B,QAAQ,CAACoU,CAAT,KAAe,CAAnB,EAAsB+kB,iBAAiB,GAAGlnC,IAAI,CAAC2a,GAAL,CAAS,CAAC0sB,YAAY,GAAGhrB,KAAK,CAACxM,QAAtB,IAAkC9B,QAAQ,CAACoU,CAApD,CAApB;AACtB,QAAIpU,QAAQ,CAACqU,CAAT,KAAe,CAAnB,EAAsB+kB,iBAAiB,GAAGnnC,IAAI,CAAC2a,GAAL,CAAS,CAAC4sB,YAAY,GAAGlrB,KAAK,CAACvM,QAAtB,IAAkC/B,QAAQ,CAACqU,CAApD,CAApB;AACtB,UAAMqQ,gBAAgB,GAAGzyB,IAAI,CAACC,GAAL,CAASinC,iBAAT,EAA4BC,iBAA5B,CAAzB;AACA9qB,IAAAA,KAAK,CAACxM,QAAN,GAAiBw3B,YAAjB;AACAhrB,IAAAA,KAAK,CAACvM,QAAN,GAAiBy3B,YAAjB,CAvBoB,CAuBW;;AAE/B,UAAMP,WAAW,GAAG3qB,KAAK,CAACzhB,KAAN,GAAcqqC,IAAI,CAACxX,KAAvC;AACA,UAAMwZ,YAAY,GAAG5qB,KAAK,CAACjhB,MAAN,GAAe6pC,IAAI,CAACxX,KAAzC;AACApR,IAAAA,KAAK,CAACwpB,IAAN,GAAa7lC,IAAI,CAACE,GAAL,CAASulC,OAAO,CAACC,UAAR,GAAqB,CAArB,GAAyBsB,WAAW,GAAG,CAAhD,EAAmD,CAAnD,CAAb;AACA3qB,IAAAA,KAAK,CAAC0pB,IAAN,GAAa,CAAC1pB,KAAK,CAACwpB,IAApB;AACAxpB,IAAAA,KAAK,CAACypB,IAAN,GAAa9lC,IAAI,CAACE,GAAL,CAASulC,OAAO,CAACE,WAAR,GAAsB,CAAtB,GAA0BsB,YAAY,GAAG,CAAlD,EAAqD,CAArD,CAAb;AACA5qB,IAAAA,KAAK,CAAC2pB,IAAN,GAAa,CAAC3pB,KAAK,CAACypB,IAApB;AACAzpB,IAAAA,KAAK,CAACxM,QAAN,GAAiB7P,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAASmc,KAAK,CAACxM,QAAf,EAAyBwM,KAAK,CAAC0pB,IAA/B,CAAT,EAA+C1pB,KAAK,CAACwpB,IAArD,CAAjB;AACAxpB,IAAAA,KAAK,CAACvM,QAAN,GAAiB9P,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAASmc,KAAK,CAACvM,QAAf,EAAyBuM,KAAK,CAAC2pB,IAA/B,CAAT,EAA+C3pB,KAAK,CAACypB,IAArD,CAAjB;AACAL,IAAAA,OAAO,CAACG,YAAR,CAAqB9tC,UAArB,CAAgC26B,gBAAhC,EAAkD76B,SAAlD,CAA6D,eAAcykB,KAAK,CAACxM,QAAS,OAAMwM,KAAK,CAACvM,QAAS,OAA/G;AACD;;AAED,WAASgb,eAAT,GAA2B;AACzB,UAAMma,IAAI,GAAG19B,MAAM,CAAC09B,IAApB;;AAEA,QAAIQ,OAAO,CAACxb,QAAR,IAAoB1iB,MAAM,CAACmZ,aAAP,KAAyBnZ,MAAM,CAACG,WAAxD,EAAqE;AACnE,UAAI+9B,OAAO,CAAC5N,QAAZ,EAAsB;AACpB4N,QAAAA,OAAO,CAAC5N,QAAR,CAAiBjgC,SAAjB,CAA2B,6BAA3B;AACD;;AAED,UAAI6tC,OAAO,CAACG,YAAZ,EAA0B;AACxBH,QAAAA,OAAO,CAACG,YAAR,CAAqBhuC,SAArB,CAA+B,oBAA/B;AACD;;AAEDqtC,MAAAA,IAAI,CAACxX,KAAL,GAAa,CAAb;AACAwS,MAAAA,YAAY,GAAG,CAAf;AACAwF,MAAAA,OAAO,CAACxb,QAAR,GAAmB9zB,SAAnB;AACAsvC,MAAAA,OAAO,CAAC5N,QAAR,GAAmB1hC,SAAnB;AACAsvC,MAAAA,OAAO,CAACG,YAAR,GAAuBzvC,SAAvB;AACD;AACF;;AAED,WAASqxC,MAAT,CAAgB/1C,CAAhB,EAAmB;AACjB,UAAMwzC,IAAI,GAAG19B,MAAM,CAAC09B,IAApB;AACA,UAAM/jC,MAAM,GAAGqG,MAAM,CAACrG,MAAP,CAAc+jC,IAA7B;;AAEA,QAAI,CAACQ,OAAO,CAACxb,QAAb,EAAuB;AACrB,UAAIx4B,CAAC,IAAIA,CAAC,CAAC+G,MAAX,EAAmB;AACjBitC,QAAAA,OAAO,CAACxb,QAAR,GAAmBt1B,0DAAC,CAAClD,CAAC,CAAC+G,MAAH,CAAD,CAAYmG,OAAZ,CAAqB,IAAG4I,MAAM,CAACrG,MAAP,CAAc6P,UAAW,EAAjD,CAAnB;AACD;;AAED,UAAI,CAAC00B,OAAO,CAACxb,QAAb,EAAuB;AACrB,YAAI1iB,MAAM,CAACrG,MAAP,CAAcggB,OAAd,IAAyB3Z,MAAM,CAACrG,MAAP,CAAcggB,OAAd,CAAsB5Y,OAA/C,IAA0Df,MAAM,CAAC2Z,OAArE,EAA8E;AAC5EukB,UAAAA,OAAO,CAACxb,QAAR,GAAmB1iB,MAAM,CAACuL,UAAP,CAAkB/T,QAAlB,CAA4B,IAAGwI,MAAM,CAACrG,MAAP,CAAc2S,gBAAiB,EAA9D,CAAnB;AACD,SAFD,MAEO;AACL4xB,UAAAA,OAAO,CAACxb,QAAR,GAAmB1iB,MAAM,CAACuC,MAAP,CAAc/M,EAAd,CAAiBwK,MAAM,CAACG,WAAxB,CAAnB;AACD;AACF;;AAED+9B,MAAAA,OAAO,CAAC5N,QAAR,GAAmB4N,OAAO,CAACxb,QAAR,CAAiBrrB,IAAjB,CAAuB,IAAGsC,MAAM,CAACikC,cAAe,EAAhD,EAAmDpoC,EAAnD,CAAsD,CAAtD,EAAyD6B,IAAzD,CAA8D,gDAA9D,CAAnB;AACA6mC,MAAAA,OAAO,CAACG,YAAR,GAAuBH,OAAO,CAAC5N,QAAR,CAAiBr6B,MAAjB,CAAyB,IAAG0D,MAAM,CAACikC,cAAe,EAAlD,CAAvB;AACD;;AAED,QAAI,CAACM,OAAO,CAAC5N,QAAT,IAAqB4N,OAAO,CAAC5N,QAAR,CAAiBhmC,MAAjB,KAA4B,CAAjD,IAAsD,CAAC4zC,OAAO,CAACG,YAA/D,IAA+EH,OAAO,CAACG,YAAR,CAAqB/zC,MAArB,KAAgC,CAAnH,EAAsH;;AAEtH,QAAI0V,MAAM,CAACrG,MAAP,CAAckK,OAAlB,EAA2B;AACzB7D,MAAAA,MAAM,CAAC0L,SAAP,CAAiBpb,KAAjB,CAAuB4vC,QAAvB,GAAkC,QAAlC;AACAlgC,MAAAA,MAAM,CAAC0L,SAAP,CAAiBpb,KAAjB,CAAuB6vC,WAAvB,GAAqC,MAArC;AACD;;AAEDjC,IAAAA,OAAO,CAACxb,QAAR,CAAiB50B,QAAjB,CAA2B,GAAE6L,MAAM,CAACkkC,gBAAiB,EAArD;AACA,QAAIuC,MAAJ;AACA,QAAIC,MAAJ;AACA,QAAIC,OAAJ;AACA,QAAIC,OAAJ;AACA,QAAIvtB,KAAJ;AACA,QAAIC,KAAJ;AACA,QAAI4U,UAAJ;AACA,QAAID,UAAJ;AACA,QAAI4Y,UAAJ;AACA,QAAIC,WAAJ;AACA,QAAIhB,WAAJ;AACA,QAAIC,YAAJ;AACA,QAAIgB,aAAJ;AACA,QAAIC,aAAJ;AACA,QAAIC,aAAJ;AACA,QAAIC,aAAJ;AACA,QAAI1C,UAAJ;AACA,QAAIC,WAAJ;;AAEA,QAAI,OAAOtpB,KAAK,CAAC4pB,YAAN,CAAmB9jB,CAA1B,KAAgC,WAAhC,IAA+C1wB,CAAnD,EAAsD;AACpDk2C,MAAAA,MAAM,GAAGl2C,CAAC,CAACuoB,IAAF,KAAW,UAAX,GAAwBvoB,CAAC,CAAC0oB,cAAF,CAAiB,CAAjB,EAAoBC,KAA5C,GAAoD3oB,CAAC,CAAC2oB,KAA/D;AACAwtB,MAAAA,MAAM,GAAGn2C,CAAC,CAACuoB,IAAF,KAAW,UAAX,GAAwBvoB,CAAC,CAAC0oB,cAAF,CAAiB,CAAjB,EAAoBE,KAA5C,GAAoD5oB,CAAC,CAAC4oB,KAA/D;AACD,KAHD,MAGO;AACLstB,MAAAA,MAAM,GAAGtrB,KAAK,CAAC4pB,YAAN,CAAmB9jB,CAA5B;AACAylB,MAAAA,MAAM,GAAGvrB,KAAK,CAAC4pB,YAAN,CAAmB7jB,CAA5B;AACD;;AAED6iB,IAAAA,IAAI,CAACxX,KAAL,GAAagY,OAAO,CAACG,YAAR,CAAqB7vC,IAArB,CAA0B,kBAA1B,KAAiDmL,MAAM,CAACgkC,QAArE;AACAjF,IAAAA,YAAY,GAAGwF,OAAO,CAACG,YAAR,CAAqB7vC,IAArB,CAA0B,kBAA1B,KAAiDmL,MAAM,CAACgkC,QAAvE;;AAEA,QAAIzzC,CAAJ,EAAO;AACLi0C,MAAAA,UAAU,GAAGD,OAAO,CAACxb,QAAR,CAAiB,CAAjB,EAAoB/uB,WAAjC;AACAyqC,MAAAA,WAAW,GAAGF,OAAO,CAACxb,QAAR,CAAiB,CAAjB,EAAoBr5B,YAAlC;AACAi3C,MAAAA,OAAO,GAAGpC,OAAO,CAACxb,QAAR,CAAiB1uB,MAAjB,GAA0BQ,IAA1B,GAAiC3L,MAAM,CAAC0L,OAAlD;AACAgsC,MAAAA,OAAO,GAAGrC,OAAO,CAACxb,QAAR,CAAiB1uB,MAAjB,GAA0BxK,GAA1B,GAAgCX,MAAM,CAACG,OAAjD;AACAgqB,MAAAA,KAAK,GAAGstB,OAAO,GAAGnC,UAAU,GAAG,CAAvB,GAA2BiC,MAAnC;AACAntB,MAAAA,KAAK,GAAGstB,OAAO,GAAGnC,WAAW,GAAG,CAAxB,GAA4BiC,MAApC;AACAG,MAAAA,UAAU,GAAGtC,OAAO,CAAC5N,QAAR,CAAiB,CAAjB,EAAoB38B,WAAjC;AACA8sC,MAAAA,WAAW,GAAGvC,OAAO,CAAC5N,QAAR,CAAiB,CAAjB,EAAoBjnC,YAAlC;AACAo2C,MAAAA,WAAW,GAAGe,UAAU,GAAG9C,IAAI,CAACxX,KAAhC;AACAwZ,MAAAA,YAAY,GAAGe,WAAW,GAAG/C,IAAI,CAACxX,KAAlC;AACAwa,MAAAA,aAAa,GAAGjoC,IAAI,CAACE,GAAL,CAASwlC,UAAU,GAAG,CAAb,GAAiBsB,WAAW,GAAG,CAAxC,EAA2C,CAA3C,CAAhB;AACAkB,MAAAA,aAAa,GAAGloC,IAAI,CAACE,GAAL,CAASylC,WAAW,GAAG,CAAd,GAAkBsB,YAAY,GAAG,CAA1C,EAA6C,CAA7C,CAAhB;AACAkB,MAAAA,aAAa,GAAG,CAACF,aAAjB;AACAG,MAAAA,aAAa,GAAG,CAACF,aAAjB;AACA9Y,MAAAA,UAAU,GAAG7U,KAAK,GAAG0qB,IAAI,CAACxX,KAA1B;AACA0B,MAAAA,UAAU,GAAG3U,KAAK,GAAGyqB,IAAI,CAACxX,KAA1B;;AAEA,UAAI2B,UAAU,GAAG6Y,aAAjB,EAAgC;AAC9B7Y,QAAAA,UAAU,GAAG6Y,aAAb;AACD;;AAED,UAAI7Y,UAAU,GAAG+Y,aAAjB,EAAgC;AAC9B/Y,QAAAA,UAAU,GAAG+Y,aAAb;AACD;;AAED,UAAIhZ,UAAU,GAAG+Y,aAAjB,EAAgC;AAC9B/Y,QAAAA,UAAU,GAAG+Y,aAAb;AACD;;AAED,UAAI/Y,UAAU,GAAGiZ,aAAjB,EAAgC;AAC9BjZ,QAAAA,UAAU,GAAGiZ,aAAb;AACD;AACF,KAjCD,MAiCO;AACLhZ,MAAAA,UAAU,GAAG,CAAb;AACAD,MAAAA,UAAU,GAAG,CAAb;AACD;;AAEDsW,IAAAA,OAAO,CAACG,YAAR,CAAqB9tC,UAArB,CAAgC,GAAhC,EAAqCF,SAArC,CAAgD,eAAcw3B,UAAW,OAAMD,UAAW,OAA1F;AACAsW,IAAAA,OAAO,CAAC5N,QAAR,CAAiB//B,UAAjB,CAA4B,GAA5B,EAAiCF,SAAjC,CAA4C,4BAA2BqtC,IAAI,CAACxX,KAAM,GAAlF;AACD;;AAED,WAAS4a,OAAT,GAAmB;AACjB,UAAMpD,IAAI,GAAG19B,MAAM,CAAC09B,IAApB;AACA,UAAM/jC,MAAM,GAAGqG,MAAM,CAACrG,MAAP,CAAc+jC,IAA7B;;AAEA,QAAI,CAACQ,OAAO,CAACxb,QAAb,EAAuB;AACrB,UAAI1iB,MAAM,CAACrG,MAAP,CAAcggB,OAAd,IAAyB3Z,MAAM,CAACrG,MAAP,CAAcggB,OAAd,CAAsB5Y,OAA/C,IAA0Df,MAAM,CAAC2Z,OAArE,EAA8E;AAC5EukB,QAAAA,OAAO,CAACxb,QAAR,GAAmB1iB,MAAM,CAACuL,UAAP,CAAkB/T,QAAlB,CAA4B,IAAGwI,MAAM,CAACrG,MAAP,CAAc2S,gBAAiB,EAA9D,CAAnB;AACD,OAFD,MAEO;AACL4xB,QAAAA,OAAO,CAACxb,QAAR,GAAmB1iB,MAAM,CAACuC,MAAP,CAAc/M,EAAd,CAAiBwK,MAAM,CAACG,WAAxB,CAAnB;AACD;;AAED+9B,MAAAA,OAAO,CAAC5N,QAAR,GAAmB4N,OAAO,CAACxb,QAAR,CAAiBrrB,IAAjB,CAAuB,IAAGsC,MAAM,CAACikC,cAAe,EAAhD,EAAmDpoC,EAAnD,CAAsD,CAAtD,EAAyD6B,IAAzD,CAA8D,gDAA9D,CAAnB;AACA6mC,MAAAA,OAAO,CAACG,YAAR,GAAuBH,OAAO,CAAC5N,QAAR,CAAiBr6B,MAAjB,CAAyB,IAAG0D,MAAM,CAACikC,cAAe,EAAlD,CAAvB;AACD;;AAED,QAAI,CAACM,OAAO,CAAC5N,QAAT,IAAqB4N,OAAO,CAAC5N,QAAR,CAAiBhmC,MAAjB,KAA4B,CAAjD,IAAsD,CAAC4zC,OAAO,CAACG,YAA/D,IAA+EH,OAAO,CAACG,YAAR,CAAqB/zC,MAArB,KAAgC,CAAnH,EAAsH;;AAEtH,QAAI0V,MAAM,CAACrG,MAAP,CAAckK,OAAlB,EAA2B;AACzB7D,MAAAA,MAAM,CAAC0L,SAAP,CAAiBpb,KAAjB,CAAuB4vC,QAAvB,GAAkC,EAAlC;AACAlgC,MAAAA,MAAM,CAAC0L,SAAP,CAAiBpb,KAAjB,CAAuB6vC,WAAvB,GAAqC,EAArC;AACD;;AAEDzC,IAAAA,IAAI,CAACxX,KAAL,GAAa,CAAb;AACAwS,IAAAA,YAAY,GAAG,CAAf;AACAwF,IAAAA,OAAO,CAACG,YAAR,CAAqB9tC,UAArB,CAAgC,GAAhC,EAAqCF,SAArC,CAA+C,oBAA/C;AACA6tC,IAAAA,OAAO,CAAC5N,QAAR,CAAiB//B,UAAjB,CAA4B,GAA5B,EAAiCF,SAAjC,CAA2C,6BAA3C;AACA6tC,IAAAA,OAAO,CAACxb,QAAR,CAAiBt0B,WAAjB,CAA8B,GAAEuL,MAAM,CAACkkC,gBAAiB,EAAxD;AACAK,IAAAA,OAAO,CAACxb,QAAR,GAAmB9zB,SAAnB;AACD,GAncA,CAmcC;;;AAGF,WAASmyC,UAAT,CAAoB72C,CAApB,EAAuB;AACrB,UAAMwzC,IAAI,GAAG19B,MAAM,CAAC09B,IAApB;;AAEA,QAAIA,IAAI,CAACxX,KAAL,IAAcwX,IAAI,CAACxX,KAAL,KAAe,CAAjC,EAAoC;AAClC;AACA4a,MAAAA,OAAO;AACR,KAHD,MAGO;AACL;AACAb,MAAAA,MAAM,CAAC/1C,CAAD,CAAN;AACD;AACF;;AAED,WAAS82C,YAAT,GAAwB;AACtB,UAAM19B,OAAO,GAAGtD,MAAM,CAACsD,OAAvB;AACA,UAAM6N,eAAe,GAAGnR,MAAM,CAACyG,WAAP,CAAmBG,KAAnB,KAA6B,YAA7B,IAA6CtD,OAAO,CAAC6N,eAArD,IAAwEnR,MAAM,CAACrG,MAAP,CAAckW,gBAAtF,GAAyG;AAC/HuB,MAAAA,OAAO,EAAE,IADsH;AAE/HrgB,MAAAA,OAAO,EAAE;AAFsH,KAAzG,GAGpB,KAHJ;AAIA,UAAMkwC,yBAAyB,GAAG39B,OAAO,CAAC6N,eAAR,GAA0B;AAC1DC,MAAAA,OAAO,EAAE,KADiD;AAE1DrgB,MAAAA,OAAO,EAAE;AAFiD,KAA1B,GAG9B,IAHJ;AAIA,WAAO;AACLogB,MAAAA,eADK;AAEL8vB,MAAAA;AAFK,KAAP;AAID;;AAED,WAASC,gBAAT,GAA4B;AAC1B,WAAQ,IAAGlhC,MAAM,CAACrG,MAAP,CAAc6P,UAAW,EAApC;AACD;;AAED,WAAS23B,cAAT,CAAwB9wB,MAAxB,EAAgC;AAC9B,UAAM;AACJc,MAAAA;AADI,QAEF6vB,YAAY,EAFhB;AAGA,UAAMI,aAAa,GAAGF,gBAAgB,EAAtC;AACAlhC,IAAAA,MAAM,CAACuL,UAAP,CAAkB8E,MAAlB,EAA0B,cAA1B,EAA0C+wB,aAA1C,EAAyDjC,cAAzD,EAAyEhuB,eAAzE;AACAnR,IAAAA,MAAM,CAACuL,UAAP,CAAkB8E,MAAlB,EAA0B,eAA1B,EAA2C+wB,aAA3C,EAA0D9B,eAA1D,EAA2EnuB,eAA3E;AACAnR,IAAAA,MAAM,CAACuL,UAAP,CAAkB8E,MAAlB,EAA0B,YAA1B,EAAwC+wB,aAAxC,EAAuD5B,YAAvD,EAAqEruB,eAArE;AACD;;AAED,WAASkwB,cAAT,GAA0B;AACxB,QAAItD,eAAJ,EAAqB;AACrBA,IAAAA,eAAe,GAAG,IAAlB;AACAoD,IAAAA,cAAc,CAAC,IAAD,CAAd;AACD;;AAED,WAASG,eAAT,GAA2B;AACzB,QAAI,CAACvD,eAAL,EAAsB;AACtBA,IAAAA,eAAe,GAAG,KAAlB;AACAoD,IAAAA,cAAc,CAAC,KAAD,CAAd;AACD,GA1fA,CA0fC;;;AAGF,WAASv/B,MAAT,GAAkB;AAChB,UAAM87B,IAAI,GAAG19B,MAAM,CAAC09B,IAApB;AACA,QAAIA,IAAI,CAAC38B,OAAT,EAAkB;AAClB28B,IAAAA,IAAI,CAAC38B,OAAL,GAAe,IAAf;AACA,UAAMuC,OAAO,GAAGtD,MAAM,CAACsD,OAAvB;AACA,UAAM;AACJ6N,MAAAA,eADI;AAEJ8vB,MAAAA;AAFI,QAGFD,YAAY,EAHhB;AAIA,UAAMI,aAAa,GAAGF,gBAAgB,EAAtC,CATgB,CAS0B;;AAE1C,QAAI59B,OAAO,CAAC87B,QAAZ,EAAsB;AACpBp/B,MAAAA,MAAM,CAACuL,UAAP,CAAkB7a,EAAlB,CAAqBsP,MAAM,CAACyG,WAAP,CAAmBG,KAAxC,EAA+Cy6B,cAA/C,EAA+DlwB,eAA/D;AACAnR,MAAAA,MAAM,CAACuL,UAAP,CAAkB7a,EAAlB,CAAqBsP,MAAM,CAACyG,WAAP,CAAmBK,GAAxC,EAA6Cw6B,eAA7C,EAA8DnwB,eAA9D;AACD,KAHD,MAGO,IAAInR,MAAM,CAACyG,WAAP,CAAmBG,KAAnB,KAA6B,YAAjC,EAA+C;AACpD5G,MAAAA,MAAM,CAACuL,UAAP,CAAkB7a,EAAlB,CAAqBsP,MAAM,CAACyG,WAAP,CAAmBG,KAAxC,EAA+Cw6B,aAA/C,EAA8DjC,cAA9D,EAA8EhuB,eAA9E;AACAnR,MAAAA,MAAM,CAACuL,UAAP,CAAkB7a,EAAlB,CAAqBsP,MAAM,CAACyG,WAAP,CAAmBI,IAAxC,EAA8Cu6B,aAA9C,EAA6D9B,eAA7D,EAA8E2B,yBAA9E;AACAjhC,MAAAA,MAAM,CAACuL,UAAP,CAAkB7a,EAAlB,CAAqBsP,MAAM,CAACyG,WAAP,CAAmBK,GAAxC,EAA6Cs6B,aAA7C,EAA4D5B,YAA5D,EAA0EruB,eAA1E;;AAEA,UAAInR,MAAM,CAACyG,WAAP,CAAmBM,MAAvB,EAA+B;AAC7B/G,QAAAA,MAAM,CAACuL,UAAP,CAAkB7a,EAAlB,CAAqBsP,MAAM,CAACyG,WAAP,CAAmBM,MAAxC,EAAgDq6B,aAAhD,EAA+D5B,YAA/D,EAA6EruB,eAA7E;AACD;AACF,KAtBe,CAsBd;;;AAGFnR,IAAAA,MAAM,CAACuL,UAAP,CAAkB7a,EAAlB,CAAqBsP,MAAM,CAACyG,WAAP,CAAmBI,IAAxC,EAA+C,IAAG7G,MAAM,CAACrG,MAAP,CAAc+jC,IAAd,CAAmBE,cAAe,EAApF,EAAuFltB,WAAvF,EAAoGuwB,yBAApG;AACD;;AAED,WAASt/B,OAAT,GAAmB;AACjB,UAAM+7B,IAAI,GAAG19B,MAAM,CAAC09B,IAApB;AACA,QAAI,CAACA,IAAI,CAAC38B,OAAV,EAAmB;AACnB,UAAMuC,OAAO,GAAGtD,MAAM,CAACsD,OAAvB;AACAo6B,IAAAA,IAAI,CAAC38B,OAAL,GAAe,KAAf;AACA,UAAM;AACJoQ,MAAAA,eADI;AAEJ8vB,MAAAA;AAFI,QAGFD,YAAY,EAHhB;AAIA,UAAMI,aAAa,GAAGF,gBAAgB,EAAtC,CATiB,CASyB;;AAE1C,QAAI59B,OAAO,CAAC87B,QAAZ,EAAsB;AACpBp/B,MAAAA,MAAM,CAACuL,UAAP,CAAkBxZ,GAAlB,CAAsBiO,MAAM,CAACyG,WAAP,CAAmBG,KAAzC,EAAgDy6B,cAAhD,EAAgElwB,eAAhE;AACAnR,MAAAA,MAAM,CAACuL,UAAP,CAAkBxZ,GAAlB,CAAsBiO,MAAM,CAACyG,WAAP,CAAmBK,GAAzC,EAA8Cw6B,eAA9C,EAA+DnwB,eAA/D;AACD,KAHD,MAGO,IAAInR,MAAM,CAACyG,WAAP,CAAmBG,KAAnB,KAA6B,YAAjC,EAA+C;AACpD5G,MAAAA,MAAM,CAACuL,UAAP,CAAkBxZ,GAAlB,CAAsBiO,MAAM,CAACyG,WAAP,CAAmBG,KAAzC,EAAgDw6B,aAAhD,EAA+DjC,cAA/D,EAA+EhuB,eAA/E;AACAnR,MAAAA,MAAM,CAACuL,UAAP,CAAkBxZ,GAAlB,CAAsBiO,MAAM,CAACyG,WAAP,CAAmBI,IAAzC,EAA+Cu6B,aAA/C,EAA8D9B,eAA9D,EAA+E2B,yBAA/E;AACAjhC,MAAAA,MAAM,CAACuL,UAAP,CAAkBxZ,GAAlB,CAAsBiO,MAAM,CAACyG,WAAP,CAAmBK,GAAzC,EAA8Cs6B,aAA9C,EAA6D5B,YAA7D,EAA2EruB,eAA3E;;AAEA,UAAInR,MAAM,CAACyG,WAAP,CAAmBM,MAAvB,EAA+B;AAC7B/G,QAAAA,MAAM,CAACuL,UAAP,CAAkBxZ,GAAlB,CAAsBiO,MAAM,CAACyG,WAAP,CAAmBM,MAAzC,EAAiDq6B,aAAjD,EAAgE5B,YAAhE,EAA8EruB,eAA9E;AACD;AACF,KAtBgB,CAsBf;;;AAGFnR,IAAAA,MAAM,CAACuL,UAAP,CAAkBxZ,GAAlB,CAAsBiO,MAAM,CAACyG,WAAP,CAAmBI,IAAzC,EAAgD,IAAG7G,MAAM,CAACrG,MAAP,CAAc+jC,IAAd,CAAmBE,cAAe,EAArF,EAAwFltB,WAAxF,EAAqGuwB,yBAArG;AACD;;AAEDvwC,EAAAA,EAAE,CAAC,MAAD,EAAS,MAAM;AACf,QAAIsP,MAAM,CAACrG,MAAP,CAAc+jC,IAAd,CAAmB38B,OAAvB,EAAgC;AAC9Ba,MAAAA,MAAM;AACP;AACF,GAJC,CAAF;AAKAlR,EAAAA,EAAE,CAAC,SAAD,EAAY,MAAM;AAClBiR,IAAAA,OAAO;AACR,GAFC,CAAF;AAGAjR,EAAAA,EAAE,CAAC,YAAD,EAAe,CAACozB,EAAD,EAAK55B,CAAL,KAAW;AAC1B,QAAI,CAAC8V,MAAM,CAAC09B,IAAP,CAAY38B,OAAjB,EAA0B;AAC1B0P,IAAAA,YAAY,CAACvmB,CAAD,CAAZ;AACD,GAHC,CAAF;AAIAwG,EAAAA,EAAE,CAAC,UAAD,EAAa,CAACozB,EAAD,EAAK55B,CAAL,KAAW;AACxB,QAAI,CAAC8V,MAAM,CAAC09B,IAAP,CAAY38B,OAAjB,EAA0B;AAC1B4P,IAAAA,UAAU,CAACzmB,CAAD,CAAV;AACD,GAHC,CAAF;AAIAwG,EAAAA,EAAE,CAAC,WAAD,EAAc,CAACozB,EAAD,EAAK55B,CAAL,KAAW;AACzB,QAAI,CAAC8V,MAAM,CAACnG,SAAR,IAAqBmG,MAAM,CAACrG,MAAP,CAAc+jC,IAAd,CAAmB38B,OAAxC,IAAmDf,MAAM,CAAC09B,IAAP,CAAY38B,OAA/D,IAA0Ef,MAAM,CAACrG,MAAP,CAAc+jC,IAAd,CAAmBnzC,MAAjG,EAAyG;AACvGw2C,MAAAA,UAAU,CAAC72C,CAAD,CAAV;AACD;AACF,GAJC,CAAF;AAKAwG,EAAAA,EAAE,CAAC,eAAD,EAAkB,MAAM;AACxB,QAAIsP,MAAM,CAAC09B,IAAP,CAAY38B,OAAZ,IAAuBf,MAAM,CAACrG,MAAP,CAAc+jC,IAAd,CAAmB38B,OAA9C,EAAuD;AACrDwiB,MAAAA,eAAe;AAChB;AACF,GAJC,CAAF;AAKA7yB,EAAAA,EAAE,CAAC,aAAD,EAAgB,MAAM;AACtB,QAAIsP,MAAM,CAAC09B,IAAP,CAAY38B,OAAZ,IAAuBf,MAAM,CAACrG,MAAP,CAAc+jC,IAAd,CAAmB38B,OAA1C,IAAqDf,MAAM,CAACrG,MAAP,CAAckK,OAAvE,EAAgF;AAC9E0f,MAAAA,eAAe;AAChB;AACF,GAJC,CAAF;AAKAn4B,EAAAA,MAAM,CAACsO,MAAP,CAAcsG,MAAM,CAAC09B,IAArB,EAA2B;AACzB97B,IAAAA,MADyB;AAEzBD,IAAAA,OAFyB;AAGzB4/B,IAAAA,EAAE,EAAEtB,MAHqB;AAIzBuB,IAAAA,GAAG,EAAEV,OAJoB;AAKzBv2C,IAAAA,MAAM,EAAEw2C;AALiB,GAA3B;AAOD;;;;;;;;;;;;;;ACnmBc,SAAS1hB,iBAAT,CAA2BtxB,OAAO,GAAG,EAArC,EAAyC;AACtD,SAAQ,IAAGA,OAAO,CAACT,IAAR,GAAeV,OAAf,CAAuB,aAAvB,EAAsC,MAAtC,EAA8C;AAA9C,GACVA,OADU,CACF,IADE,EACI,GADJ,CACS,EADpB;AAED;;;;;;;;;;;;;;;ACHD;AACe,SAASooC,yBAAT,CAAmCh1B,MAAnC,EAA2CW,cAA3C,EAA2DhH,MAA3D,EAAmE8nC,UAAnE,EAA+E;AAC5F,QAAM94C,QAAQ,GAAGoC,uDAAW,EAA5B;;AAEA,MAAIiV,MAAM,CAACrG,MAAP,CAAc6R,cAAlB,EAAkC;AAChCpgB,IAAAA,MAAM,CAACyP,IAAP,CAAY4mC,UAAZ,EAAwBv4C,OAAxB,CAAgCmG,GAAG,IAAI;AACrC,UAAI,CAACsK,MAAM,CAACtK,GAAD,CAAP,IAAgBsK,MAAM,CAACmc,IAAP,KAAgB,IAApC,EAA0C;AACxC,YAAI3b,OAAO,GAAG6F,MAAM,CAACM,GAAP,CAAW9I,QAAX,CAAqB,IAAGiqC,UAAU,CAACpyC,GAAD,CAAM,EAAxC,EAA2C,CAA3C,CAAd;;AAEA,YAAI,CAAC8K,OAAL,EAAc;AACZA,UAAAA,OAAO,GAAGxR,QAAQ,CAAC8E,aAAT,CAAuB,KAAvB,CAAV;AACA0M,UAAAA,OAAO,CAAC7L,SAAR,GAAoBmzC,UAAU,CAACpyC,GAAD,CAA9B;AACA2Q,UAAAA,MAAM,CAACM,GAAP,CAAW5K,MAAX,CAAkByE,OAAlB;AACD;;AAEDR,QAAAA,MAAM,CAACtK,GAAD,CAAN,GAAc8K,OAAd;AACAwG,QAAAA,cAAc,CAACtR,GAAD,CAAd,GAAsB8K,OAAtB;AACD;AACF,KAbD;AAcD;;AAED,SAAOR,MAAP;AACD;;;;;;;;;;;;;;;ACtBD;AACe,SAAS4rB,YAAT,CAAsB5rB,MAAtB,EAA8B+oB,QAA9B,EAAwC3I,IAAxC,EAA8C;AAC3D,QAAM2nB,WAAW,GAAI,sBAAqB3nB,IAAI,GAAI,IAAGA,IAAK,EAAZ,GAAgB,EAAG,EAAjE;AACA,QAAM4nB,gBAAgB,GAAGhoC,MAAM,CAACmsB,WAAP,GAAqBpD,QAAQ,CAACrrB,IAAT,CAAcsC,MAAM,CAACmsB,WAArB,CAArB,GAAyDpD,QAAlF;AACA,MAAIgE,SAAS,GAAGib,gBAAgB,CAACnqC,QAAjB,CAA2B,IAAGkqC,WAAY,EAA1C,CAAhB;;AAEA,MAAI,CAAChb,SAAS,CAACp8B,MAAf,EAAuB;AACrBo8B,IAAAA,SAAS,GAAGt5B,mDAAC,CAAE,kCAAiC2sB,IAAI,GAAI,IAAGA,IAAK,EAAZ,GAAgB,EAAG,UAA1D,CAAb;AACA4nB,IAAAA,gBAAgB,CAACjsC,MAAjB,CAAwBgxB,SAAxB;AACD;;AAED,SAAOA,SAAP;AACD;;;;;;;;;;;;;;;ACZD;AACA,MAAMkb,OAAO,GAAG;AACd9zC,EAAAA,QADc;AAEdM,EAAAA,WAFc;AAGdG,EAAAA,QAHc;AAIdF,EAAAA,WAJc;AAKdG,EAAAA,IALc;AAMdO,EAAAA,UANc;AAOdsB,EAAAA,SAPc;AAQdE,EAAAA,UARc;AASdG,EAAAA,EATc;AAUdqB,EAAAA,GAVc;AAWdW,EAAAA,OAXc;AAYdQ,EAAAA,aAZc;AAadM,EAAAA,UAbc;AAcdO,EAAAA,WAdc;AAedL,EAAAA,MAfc;AAgBdM,EAAAA,MAhBc;AAiBdT,EAAAA,GAjBc;AAkBdsB,EAAAA,IAlBc;AAmBdxH,EAAAA,IAnBc;AAoBd2H,EAAAA,IApBc;AAqBd3D,EAAAA,EArBc;AAsBdyD,EAAAA,KAtBc;AAuBdU,EAAAA,EAvBc;AAwBdE,EAAAA,MAxBc;AAyBdQ,EAAAA,OAzBc;AA0BdS,EAAAA,IA1Bc;AA2BdE,EAAAA,OA3Bc;AA4BdE,EAAAA,IA5Bc;AA6BdE,EAAAA,OA7Bc;AA8BdhB,EAAAA,MA9Bc;AA+Bd1E,EAAAA,OA/Bc;AAgCd6F,EAAAA,OAhCc;AAiCdC,EAAAA,IAjCc;AAkCdG,EAAAA,QAlCc;AAmCdpL,EAAAA,MAnCc;AAoCdtC,EAAAA,MAAMA,0CAAAA;AApCQ,CAAhB;AAsCAsB,MAAM,CAACyP,IAAP,CAAY+mC,OAAZ,EAAqB14C,OAArB,CAA6B24C,UAAU,IAAI;AACzCz2C,EAAAA,MAAM,CAACC,cAAP,CAAsB+B,sCAAtB,EAA4By0C,UAA5B,EAAwC;AACtC13C,IAAAA,KAAK,EAAEy3C,OAAO,CAACC,UAAD,CADwB;AAEtCC,IAAAA,QAAQ,EAAE;AAF4B,GAAxC;AAID,CALD;AAMA,iEAAe10C,mCAAf;;;;;;;;;;;;;;AC7Ce,SAASo4B,UAAT,CAAoB7rB,MAApB,EAA4B;AACzC,QAAM;AACJ1R,IAAAA,MADI;AAEJ+X,IAAAA,MAFI;AAGJtP,IAAAA,EAHI;AAIJ6Z,IAAAA,YAJI;AAKJgJ,IAAAA,aALI;AAMJwT,IAAAA,eANI;AAOJD,IAAAA;AAPI,MAQFntB,MARJ;AASAjJ,EAAAA,EAAE,CAAC,YAAD,EAAe,MAAM;AACrB,QAAIsP,MAAM,CAACrG,MAAP,CAAc1R,MAAd,KAAyBA,MAA7B,EAAqC;AACrC+X,IAAAA,MAAM,CAAChS,UAAP,CAAkBhC,IAAlB,CAAwB,GAAEgU,MAAM,CAACrG,MAAP,CAAcqH,sBAAuB,GAAE/Y,MAAO,EAAxE;;AAEA,QAAI6+B,WAAW,IAAIA,WAAW,EAA9B,EAAkC;AAChC9mB,MAAAA,MAAM,CAAChS,UAAP,CAAkBhC,IAAlB,CAAwB,GAAEgU,MAAM,CAACrG,MAAP,CAAcqH,sBAAuB,IAA/D;AACD;;AAED,UAAM+gC,qBAAqB,GAAGhb,eAAe,GAAGA,eAAe,EAAlB,GAAuB,EAApE;AACA37B,IAAAA,MAAM,CAACsO,MAAP,CAAcsG,MAAM,CAACrG,MAArB,EAA6BooC,qBAA7B;AACA32C,IAAAA,MAAM,CAACsO,MAAP,CAAcsG,MAAM,CAACW,cAArB,EAAqCohC,qBAArC;AACD,GAXC,CAAF;AAYArxC,EAAAA,EAAE,CAAC,cAAD,EAAiB,MAAM;AACvB,QAAIsP,MAAM,CAACrG,MAAP,CAAc1R,MAAd,KAAyBA,MAA7B,EAAqC;AACrCsiB,IAAAA,YAAY;AACb,GAHC,CAAF;AAIA7Z,EAAAA,EAAE,CAAC,eAAD,EAAkB,CAACozB,EAAD,EAAKtzB,QAAL,KAAkB;AACpC,QAAIwP,MAAM,CAACrG,MAAP,CAAc1R,MAAd,KAAyBA,MAA7B,EAAqC;AACrCsrB,IAAAA,aAAa,CAAC/iB,QAAD,CAAb;AACD,GAHC,CAAF;AAID;;;;;;;;;;;;;;AC9Bc,SAASi1B,YAAT,CAAsBuc,YAAtB,EAAoCtf,QAApC,EAA8C;AAC3D,MAAIsf,YAAY,CAAClc,WAAjB,EAA8B;AAC5B,WAAOpD,QAAQ,CAACrrB,IAAT,CAAc2qC,YAAY,CAAClc,WAA3B,EAAwCvyB,GAAxC,CAA4C;AACjD,6BAAuB,QAD0B;AAEjD,qCAA+B;AAFkB,KAA5C,CAAP;AAID;;AAED,SAAOmvB,QAAP;AACD;;;;;;;;;;;;;;ACTc,SAASgD,0BAAT,CAAoC;AACjD1lB,EAAAA,MADiD;AAEjDxP,EAAAA,QAFiD;AAGjDs1B,EAAAA,WAHiD;AAIjDgD,EAAAA;AAJiD,CAApC,EAKZ;AACD,QAAM;AACJvmB,IAAAA,MADI;AAEJpC,IAAAA,WAFI;AAGJoL,IAAAA;AAHI,MAIFvL,MAJJ;;AAMA,MAAIA,MAAM,CAACrG,MAAP,CAAc8T,gBAAd,IAAkCjd,QAAQ,KAAK,CAAnD,EAAsD;AACpD,QAAIyxC,cAAc,GAAG,KAArB;AACA,QAAIC,oBAAJ;;AAEA,QAAIpZ,SAAJ,EAAe;AACboZ,MAAAA,oBAAoB,GAAGpc,WAAW,GAAGvjB,MAAM,CAAClL,IAAP,CAAYyuB,WAAZ,CAAH,GAA8BvjB,MAAhE;AACD,KAFD,MAEO;AACL2/B,MAAAA,oBAAoB,GAAGpc,WAAW,GAAGvjB,MAAM,CAAC/M,EAAP,CAAU2K,WAAV,EAAuB9I,IAAvB,CAA4ByuB,WAA5B,CAAH,GAA8CvjB,MAAM,CAAC/M,EAAP,CAAU2K,WAAV,CAAhF;AACD;;AAED+hC,IAAAA,oBAAoB,CAAChvC,aAArB,CAAmC,MAAM;AACvC,UAAI+uC,cAAJ,EAAoB;AACpB,UAAI,CAACjiC,MAAD,IAAWA,MAAM,CAACoK,SAAtB,EAAiC;AACjC63B,MAAAA,cAAc,GAAG,IAAjB;AACAjiC,MAAAA,MAAM,CAACnG,SAAP,GAAmB,KAAnB;AACA,YAAMsoC,aAAa,GAAG,CAAC,qBAAD,EAAwB,eAAxB,CAAtB;;AAEA,WAAK,IAAIl4C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGk4C,aAAa,CAAC73C,MAAlC,EAA0CL,CAAC,IAAI,CAA/C,EAAkD;AAChDshB,QAAAA,UAAU,CAAC7Y,OAAX,CAAmByvC,aAAa,CAACl4C,CAAD,CAAhC;AACD;AACF,KAVD;AAWD;AACF;;;;;;;;;;;;;;;AClCD;AACA,IAAIsb,OAAJ;;AAEA,SAAS68B,WAAT,GAAuB;AACrB,QAAMv5C,MAAM,GAAGiC,qDAAS,EAAxB;;AAEA,WAASk/B,QAAT,GAAoB;AAClB,UAAMqY,EAAE,GAAGx5C,MAAM,CAACsV,SAAP,CAAiBC,SAAjB,CAA2BzR,WAA3B,EAAX;AACA,WAAO01C,EAAE,CAAC71C,OAAH,CAAW,QAAX,KAAwB,CAAxB,IAA6B61C,EAAE,CAAC71C,OAAH,CAAW,QAAX,IAAuB,CAApD,IAAyD61C,EAAE,CAAC71C,OAAH,CAAW,SAAX,IAAwB,CAAxF;AACD;;AAED,SAAO;AACLw9B,IAAAA,QAAQ,EAAEA,QAAQ,EADb;AAELC,IAAAA,SAAS,EAAE,+CAA+CqY,IAA/C,CAAoDz5C,MAAM,CAACsV,SAAP,CAAiBC,SAArE;AAFN,GAAP;AAID;;AAED,SAASiG,UAAT,GAAsB;AACpB,MAAI,CAACkB,OAAL,EAAc;AACZA,IAAAA,OAAO,GAAG68B,WAAW,EAArB;AACD;;AAED,SAAO78B,OAAP;AACD;;;;;;;;;;;;;;;;;;ACvBD;AACA;AACA,IAAIg9B,YAAJ;;AAEA,SAASC,UAAT,CAAoB;AAClBpkC,EAAAA;AADkB,IAEhB,EAFJ,EAEQ;AACN,QAAMkF,OAAO,GAAGa,2DAAU,EAA1B;AACA,QAAMtb,MAAM,GAAGiC,qDAAS,EAAxB;AACA,QAAM23C,QAAQ,GAAG55C,MAAM,CAACsV,SAAP,CAAiBskC,QAAlC;AACA,QAAMJ,EAAE,GAAGjkC,SAAS,IAAIvV,MAAM,CAACsV,SAAP,CAAiBC,SAAzC;AACA,QAAMiF,MAAM,GAAG;AACbO,IAAAA,GAAG,EAAE,KADQ;AAEbD,IAAAA,OAAO,EAAE;AAFI,GAAf;AAIA,QAAM++B,WAAW,GAAG75C,MAAM,CAAC8V,MAAP,CAActL,KAAlC;AACA,QAAMsvC,YAAY,GAAG95C,MAAM,CAAC8V,MAAP,CAAc9K,MAAnC;AACA,QAAM8P,OAAO,GAAG0+B,EAAE,CAACx1C,KAAH,CAAS,6BAAT,CAAhB,CAXM,CAWmD;;AAEzD,MAAI+1C,IAAI,GAAGP,EAAE,CAACx1C,KAAH,CAAS,sBAAT,CAAX;AACA,QAAMg2C,IAAI,GAAGR,EAAE,CAACx1C,KAAH,CAAS,yBAAT,CAAb;AACA,QAAMi2C,MAAM,GAAG,CAACF,IAAD,IAASP,EAAE,CAACx1C,KAAH,CAAS,4BAAT,CAAxB;AACA,QAAMk2C,OAAO,GAAGN,QAAQ,KAAK,OAA7B;AACA,MAAIO,KAAK,GAAGP,QAAQ,KAAK,UAAzB,CAjBM,CAiB+B;;AAErC,QAAMQ,WAAW,GAAG,CAAC,WAAD,EAAc,WAAd,EAA2B,UAA3B,EAAuC,UAAvC,EAAmD,UAAnD,EAA+D,UAA/D,EAA2E,UAA3E,EAAuF,UAAvF,EAAmG,UAAnG,EAA+G,UAA/G,EAA2H,UAA3H,EAAuI,UAAvI,CAApB;;AAEA,MAAI,CAACL,IAAD,IAASI,KAAT,IAAkB1/B,OAAO,CAACE,KAA1B,IAAmCy/B,WAAW,CAACz2C,OAAZ,CAAqB,GAAEk2C,WAAY,IAAGC,YAAa,EAAnD,KAAyD,CAAhG,EAAmG;AACjGC,IAAAA,IAAI,GAAGP,EAAE,CAACx1C,KAAH,CAAS,qBAAT,CAAP;AACA,QAAI,CAAC+1C,IAAL,EAAWA,IAAI,GAAG,CAAC,CAAD,EAAI,CAAJ,EAAO,QAAP,CAAP;AACXI,IAAAA,KAAK,GAAG,KAAR;AACD,GAzBK,CAyBJ;;;AAGF,MAAIr/B,OAAO,IAAI,CAACo/B,OAAhB,EAAyB;AACvB1/B,IAAAA,MAAM,CAAC6/B,EAAP,GAAY,SAAZ;AACA7/B,IAAAA,MAAM,CAACM,OAAP,GAAiB,IAAjB;AACD;;AAED,MAAIi/B,IAAI,IAAIE,MAAR,IAAkBD,IAAtB,EAA4B;AAC1Bx/B,IAAAA,MAAM,CAAC6/B,EAAP,GAAY,KAAZ;AACA7/B,IAAAA,MAAM,CAACO,GAAP,GAAa,IAAb;AACD,GApCK,CAoCJ;;;AAGF,SAAOP,MAAP;AACD;;AAED,SAASe,SAAT,CAAmB++B,SAAS,GAAG,EAA/B,EAAmC;AACjC,MAAI,CAACZ,YAAL,EAAmB;AACjBA,IAAAA,YAAY,GAAGC,UAAU,CAACW,SAAD,CAAzB;AACD;;AAED,SAAOZ,YAAP;AACD;;;;;;;;;;;;;;;;;ACtDD;AACA,IAAIj/B,OAAJ;;AAEA,SAAS8/B,WAAT,GAAuB;AACrB,QAAMv6C,MAAM,GAAGiC,qDAAS,EAAxB;AACA,QAAMnC,QAAQ,GAAGoC,uDAAW,EAA5B;AACA,SAAO;AACL8uB,IAAAA,YAAY,EAAElxB,QAAQ,CAAC06C,eAAT,IAA4B,oBAAoB16C,QAAQ,CAAC06C,eAAT,CAAyB/yC,KADlF;AAELkT,IAAAA,KAAK,EAAE,CAAC,EAAE,kBAAkB3a,MAAlB,IAA4BA,MAAM,CAACy6C,aAAP,IAAwB36C,QAAQ,YAAYE,MAAM,CAACy6C,aAAjF,CAFH;AAGLnyB,IAAAA,eAAe,EAAE,SAASoyB,oBAAT,GAAgC;AAC/C,UAAIC,eAAe,GAAG,KAAtB;;AAEA,UAAI;AACF,cAAMC,IAAI,GAAGr4C,MAAM,CAACC,cAAP,CAAsB,EAAtB,EAA0B,SAA1B,EAAqC;AAChD;AACAC,UAAAA,GAAG,GAAG;AACJk4C,YAAAA,eAAe,GAAG,IAAlB;AACD;;AAJ+C,SAArC,CAAb;AAOA36C,QAAAA,MAAM,CAACC,gBAAP,CAAwB,qBAAxB,EAA+C,IAA/C,EAAqD26C,IAArD;AACD,OATD,CASE,OAAOv5C,CAAP,EAAU,CAAC;AACZ;;AAED,aAAOs5C,eAAP;AACD,KAhBgB,EAHZ;AAoBLpE,IAAAA,QAAQ,EAAE,SAASsE,aAAT,GAAyB;AACjC,aAAO,oBAAoB76C,MAA3B;AACD,KAFS;AApBL,GAAP;AAwBD;;AAED,SAASsb,UAAT,GAAsB;AACpB,MAAI,CAACb,OAAL,EAAc;AACZA,IAAAA,OAAO,GAAG8/B,WAAW,EAArB;AACD;;AAED,SAAO9/B,OAAP;AACD;;;;;;;;;;;;;;;;;;;;;;;;;ACtCD;;AAEA,SAASY,WAAT,CAAqBjZ,GAArB,EAA0B;AACxB,QAAM04C,MAAM,GAAG14C,GAAf;AACAG,EAAAA,MAAM,CAACyP,IAAP,CAAY8oC,MAAZ,EAAoBz6C,OAApB,CAA4BmG,GAAG,IAAI;AACjC,QAAI;AACFs0C,MAAAA,MAAM,CAACt0C,GAAD,CAAN,GAAc,IAAd;AACD,KAFD,CAEE,OAAOnF,CAAP,EAAU,CAAC;AACZ;;AAED,QAAI;AACF,aAAOy5C,MAAM,CAACt0C,GAAD,CAAb;AACD,KAFD,CAEE,OAAOnF,CAAP,EAAU,CAAC;AACZ;AACF,GAVD;AAWD;;AAED,SAAS2nB,QAAT,CAAkB3lB,QAAlB,EAA4B42B,KAAK,GAAG,CAApC,EAAuC;AACrC,SAAOlkB,UAAU,CAAC1S,QAAD,EAAW42B,KAAX,CAAjB;AACD;;AAED,SAAS7e,GAAT,GAAe;AACb,SAAOjL,IAAI,CAACiL,GAAL,EAAP;AACD;;AAED,SAASrP,gBAAT,CAA0BvM,EAA1B,EAA8B;AAC5B,QAAMQ,MAAM,GAAGiC,qDAAS,EAAxB;AACA,MAAIwF,KAAJ;;AAEA,MAAIzH,MAAM,CAAC+L,gBAAX,EAA6B;AAC3BtE,IAAAA,KAAK,GAAGzH,MAAM,CAAC+L,gBAAP,CAAwBvM,EAAxB,EAA4B,IAA5B,CAAR;AACD;;AAED,MAAI,CAACiI,KAAD,IAAUjI,EAAE,CAACu7C,YAAjB,EAA+B;AAC7BtzC,IAAAA,KAAK,GAAGjI,EAAE,CAACu7C,YAAX;AACD;;AAED,MAAI,CAACtzC,KAAL,EAAY;AACVA,IAAAA,KAAK,GAAGjI,EAAE,CAACiI,KAAX;AACD;;AAED,SAAOA,KAAP;AACD;;AAED,SAASgjB,YAAT,CAAsBjrB,EAAtB,EAA0BsyB,IAAI,GAAG,GAAjC,EAAsC;AACpC,QAAM9xB,MAAM,GAAGiC,qDAAS,EAAxB;AACA,MAAI+4C,MAAJ;AACA,MAAIC,YAAJ;AACA,MAAIC,eAAJ;AACA,QAAMC,QAAQ,GAAGpvC,gBAAgB,CAACvM,EAAD,EAAK,IAAL,CAAjC;;AAEA,MAAIQ,MAAM,CAACo7C,eAAX,EAA4B;AAC1BH,IAAAA,YAAY,GAAGE,QAAQ,CAAC3zC,SAAT,IAAsB2zC,QAAQ,CAACvmB,eAA9C;;AAEA,QAAIqmB,YAAY,CAAC31C,KAAb,CAAmB,GAAnB,EAAwB7D,MAAxB,GAAiC,CAArC,EAAwC;AACtCw5C,MAAAA,YAAY,GAAGA,YAAY,CAAC31C,KAAb,CAAmB,IAAnB,EAAyBF,GAAzB,CAA6Bd,CAAC,IAAIA,CAAC,CAACP,OAAF,CAAU,GAAV,EAAe,GAAf,CAAlC,EAAuDmX,IAAvD,CAA4D,IAA5D,CAAf;AACD,KALyB,CAKxB;AACF;;;AAGAggC,IAAAA,eAAe,GAAG,IAAIl7C,MAAM,CAACo7C,eAAX,CAA2BH,YAAY,KAAK,MAAjB,GAA0B,EAA1B,GAA+BA,YAA1D,CAAlB;AACD,GAVD,MAUO;AACLC,IAAAA,eAAe,GAAGC,QAAQ,CAACE,YAAT,IAAyBF,QAAQ,CAACG,UAAlC,IAAgDH,QAAQ,CAACI,WAAzD,IAAwEJ,QAAQ,CAACK,WAAjF,IAAgGL,QAAQ,CAAC3zC,SAAzG,IAAsH2zC,QAAQ,CAACpwC,gBAAT,CAA0B,WAA1B,EAAuChH,OAAvC,CAA+C,YAA/C,EAA6D,oBAA7D,CAAxI;AACAi3C,IAAAA,MAAM,GAAGE,eAAe,CAAC7+B,QAAhB,GAA2B/W,KAA3B,CAAiC,GAAjC,CAAT;AACD;;AAED,MAAIwsB,IAAI,KAAK,GAAb,EAAkB;AAChB;AACA,QAAI9xB,MAAM,CAACo7C,eAAX,EAA4BH,YAAY,GAAGC,eAAe,CAACO,GAA/B,CAA5B,CAAgE;AAAhE,SACK,IAAIT,MAAM,CAACv5C,MAAP,KAAkB,EAAtB,EAA0Bw5C,YAAY,GAAGl0C,UAAU,CAACi0C,MAAM,CAAC,EAAD,CAAP,CAAzB,CAA1B,CAAiE;AAAjE,SACAC,YAAY,GAAGl0C,UAAU,CAACi0C,MAAM,CAAC,CAAD,CAAP,CAAzB;AACN;;AAED,MAAIlpB,IAAI,KAAK,GAAb,EAAkB;AAChB;AACA,QAAI9xB,MAAM,CAACo7C,eAAX,EAA4BH,YAAY,GAAGC,eAAe,CAACQ,GAA/B,CAA5B,CAAgE;AAAhE,SACK,IAAIV,MAAM,CAACv5C,MAAP,KAAkB,EAAtB,EAA0Bw5C,YAAY,GAAGl0C,UAAU,CAACi0C,MAAM,CAAC,EAAD,CAAP,CAAzB,CAA1B,CAAiE;AAAjE,SACAC,YAAY,GAAGl0C,UAAU,CAACi0C,MAAM,CAAC,CAAD,CAAP,CAAzB;AACN;;AAED,SAAOC,YAAY,IAAI,CAAvB;AACD;;AAED,SAASjnC,QAAT,CAAkB2nC,CAAlB,EAAqB;AACnB,SAAO,OAAOA,CAAP,KAAa,QAAb,IAAyBA,CAAC,KAAK,IAA/B,IAAuCA,CAAC,CAAC94C,WAAzC,IAAwDN,MAAM,CAACe,SAAP,CAAiB+Y,QAAjB,CAA0B7Y,IAA1B,CAA+Bm4C,CAA/B,EAAkCr/B,KAAlC,CAAwC,CAAxC,EAA2C,CAAC,CAA5C,MAAmD,QAAlH;AACD;;AAED,SAASs/B,MAAT,CAAgBtoB,IAAhB,EAAsB;AACpB;AACA,MAAI,OAAOtzB,MAAP,KAAkB,WAAlB,IAAiC,OAAOA,MAAM,CAAC67C,WAAd,KAA8B,WAAnE,EAAgF;AAC9E,WAAOvoB,IAAI,YAAYuoB,WAAvB;AACD;;AAED,SAAOvoB,IAAI,KAAKA,IAAI,CAACvuB,QAAL,KAAkB,CAAlB,IAAuBuuB,IAAI,CAACvuB,QAAL,KAAkB,EAA9C,CAAX;AACD;;AAED,SAASkP,MAAT,CAAgB,GAAGnM,IAAnB,EAAyB;AACvB,QAAM4rC,EAAE,GAAGnxC,MAAM,CAACuF,IAAI,CAAC,CAAD,CAAL,CAAjB;AACA,QAAMg0C,QAAQ,GAAG,CAAC,WAAD,EAAc,aAAd,EAA6B,WAA7B,CAAjB;;AAEA,OAAK,IAAI16C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0G,IAAI,CAACrG,MAAzB,EAAiCL,CAAC,IAAI,CAAtC,EAAyC;AACvC,UAAM26C,UAAU,GAAGj0C,IAAI,CAAC1G,CAAD,CAAvB;;AAEA,QAAI26C,UAAU,KAAKh2C,SAAf,IAA4Bg2C,UAAU,KAAK,IAA3C,IAAmD,CAACH,MAAM,CAACG,UAAD,CAA9D,EAA4E;AAC1E,YAAMC,SAAS,GAAGz5C,MAAM,CAACyP,IAAP,CAAYzP,MAAM,CAACw5C,UAAD,CAAlB,EAAgCx4C,MAAhC,CAAuCiD,GAAG,IAAIs1C,QAAQ,CAACn4C,OAAT,CAAiB6C,GAAjB,IAAwB,CAAtE,CAAlB;;AAEA,WAAK,IAAI+rC,SAAS,GAAG,CAAhB,EAAmB0J,GAAG,GAAGD,SAAS,CAACv6C,MAAxC,EAAgD8wC,SAAS,GAAG0J,GAA5D,EAAiE1J,SAAS,IAAI,CAA9E,EAAiF;AAC/E,cAAM2J,OAAO,GAAGF,SAAS,CAACzJ,SAAD,CAAzB;AACA,cAAM4J,IAAI,GAAG55C,MAAM,CAAC65C,wBAAP,CAAgCL,UAAhC,EAA4CG,OAA5C,CAAb;;AAEA,YAAIC,IAAI,KAAKp2C,SAAT,IAAsBo2C,IAAI,CAACE,UAA/B,EAA2C;AACzC,cAAIroC,QAAQ,CAAC0/B,EAAE,CAACwI,OAAD,CAAH,CAAR,IAAyBloC,QAAQ,CAAC+nC,UAAU,CAACG,OAAD,CAAX,CAArC,EAA4D;AAC1D,gBAAIH,UAAU,CAACG,OAAD,CAAV,CAAoBz/B,UAAxB,EAAoC;AAClCi3B,cAAAA,EAAE,CAACwI,OAAD,CAAF,GAAcH,UAAU,CAACG,OAAD,CAAxB;AACD,aAFD,MAEO;AACLjoC,cAAAA,MAAM,CAACy/B,EAAE,CAACwI,OAAD,CAAH,EAAcH,UAAU,CAACG,OAAD,CAAxB,CAAN;AACD;AACF,WAND,MAMO,IAAI,CAACloC,QAAQ,CAAC0/B,EAAE,CAACwI,OAAD,CAAH,CAAT,IAA0BloC,QAAQ,CAAC+nC,UAAU,CAACG,OAAD,CAAX,CAAtC,EAA6D;AAClExI,YAAAA,EAAE,CAACwI,OAAD,CAAF,GAAc,EAAd;;AAEA,gBAAIH,UAAU,CAACG,OAAD,CAAV,CAAoBz/B,UAAxB,EAAoC;AAClCi3B,cAAAA,EAAE,CAACwI,OAAD,CAAF,GAAcH,UAAU,CAACG,OAAD,CAAxB;AACD,aAFD,MAEO;AACLjoC,cAAAA,MAAM,CAACy/B,EAAE,CAACwI,OAAD,CAAH,EAAcH,UAAU,CAACG,OAAD,CAAxB,CAAN;AACD;AACF,WARM,MAQA;AACLxI,YAAAA,EAAE,CAACwI,OAAD,CAAF,GAAcH,UAAU,CAACG,OAAD,CAAxB;AACD;AACF;AACF;AACF;AACF;;AAED,SAAOxI,EAAP;AACD;;AAED,SAASxgB,cAAT,CAAwB1zB,EAAxB,EAA4B88C,OAA5B,EAAqCC,QAArC,EAA+C;AAC7C/8C,EAAAA,EAAE,CAACiI,KAAH,CAAS+0C,WAAT,CAAqBF,OAArB,EAA8BC,QAA9B;AACD;;AAED,SAASxsB,oBAAT,CAA8B;AAC5B5Y,EAAAA,MAD4B;AAE5B8Z,EAAAA,cAF4B;AAG5BC,EAAAA;AAH4B,CAA9B,EAIG;AACD,QAAMlxB,MAAM,GAAGiC,qDAAS,EAAxB;AACA,QAAMw6C,aAAa,GAAG,CAACtlC,MAAM,CAAC0E,SAA9B;AACA,MAAI7L,SAAS,GAAG,IAAhB;AACA,MAAIE,IAAJ;AACA,QAAMvI,QAAQ,GAAGwP,MAAM,CAACrG,MAAP,CAAc3R,KAA/B;AACAgY,EAAAA,MAAM,CAAC0L,SAAP,CAAiBpb,KAAjB,CAAuBspB,cAAvB,GAAwC,MAAxC;AACA/wB,EAAAA,MAAM,CAACqR,oBAAP,CAA4B8F,MAAM,CAACulC,cAAnC;AACA,QAAM55B,GAAG,GAAGmO,cAAc,GAAGwrB,aAAjB,GAAiC,MAAjC,GAA0C,MAAtD;;AAEA,QAAME,YAAY,GAAG,CAACr8C,OAAD,EAAU8H,MAAV,KAAqB;AACxC,WAAO0a,GAAG,KAAK,MAAR,IAAkBxiB,OAAO,IAAI8H,MAA7B,IAAuC0a,GAAG,KAAK,MAAR,IAAkBxiB,OAAO,IAAI8H,MAA3E;AACD,GAFD;;AAIA,QAAM8G,OAAO,GAAG,MAAM;AACpBgB,IAAAA,IAAI,GAAG,IAAIC,IAAJ,GAAWC,OAAX,EAAP;;AAEA,QAAIJ,SAAS,KAAK,IAAlB,EAAwB;AACtBA,MAAAA,SAAS,GAAGE,IAAZ;AACD;;AAED,UAAMG,QAAQ,GAAGT,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAAS,CAACI,IAAI,GAAGF,SAAR,IAAqBrI,QAA9B,EAAwC,CAAxC,CAAT,EAAqD,CAArD,CAAjB;AACA,UAAM2I,YAAY,GAAG,MAAMV,IAAI,CAACW,GAAL,CAASF,QAAQ,GAAGT,IAAI,CAACY,EAAzB,IAA+B,CAA1D;AACA,QAAIosC,eAAe,GAAGH,aAAa,GAAGnsC,YAAY,IAAI2gB,cAAc,GAAGwrB,aAArB,CAAlD;;AAEA,QAAIE,YAAY,CAACC,eAAD,EAAkB3rB,cAAlB,CAAhB,EAAmD;AACjD2rB,MAAAA,eAAe,GAAG3rB,cAAlB;AACD;;AAED9Z,IAAAA,MAAM,CAAC0L,SAAP,CAAiB7T,QAAjB,CAA0B;AACxB,OAACkiB,IAAD,GAAQ0rB;AADgB,KAA1B;;AAIA,QAAID,YAAY,CAACC,eAAD,EAAkB3rB,cAAlB,CAAhB,EAAmD;AACjD9Z,MAAAA,MAAM,CAAC0L,SAAP,CAAiBpb,KAAjB,CAAuB4vC,QAAvB,GAAkC,QAAlC;AACAlgC,MAAAA,MAAM,CAAC0L,SAAP,CAAiBpb,KAAjB,CAAuBspB,cAAvB,GAAwC,EAAxC;AACAhb,MAAAA,UAAU,CAAC,MAAM;AACfoB,QAAAA,MAAM,CAAC0L,SAAP,CAAiBpb,KAAjB,CAAuB4vC,QAAvB,GAAkC,EAAlC;AACAlgC,QAAAA,MAAM,CAAC0L,SAAP,CAAiB7T,QAAjB,CAA0B;AACxB,WAACkiB,IAAD,GAAQ0rB;AADgB,SAA1B;AAGD,OALS,CAAV;AAMA58C,MAAAA,MAAM,CAACqR,oBAAP,CAA4B8F,MAAM,CAACulC,cAAnC;AACA;AACD;;AAEDvlC,IAAAA,MAAM,CAACulC,cAAP,GAAwB18C,MAAM,CAAC0Q,qBAAP,CAA6BxB,OAA7B,CAAxB;AACD,GAjCD;;AAmCAA,EAAAA,OAAO;AACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClMD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;UCnCA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC;;;;;WCPD;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;;;;;;;;;;;ACfA;CAGA;;CAGA;;CAGA","sources":["webpack://frontend-starter-boilerplate-v2/./src/scripts/main.js","webpack://frontend-starter-boilerplate-v2/./src/assets/images/favicon.ico","webpack://frontend-starter-boilerplate-v2/./src/site.webmanifest","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/effect-fade/effect-fade.min.css?cef2","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/swiper.min.css?df9e","webpack://frontend-starter-boilerplate-v2/./src/assets/styles/main.scss?5d24","webpack://frontend-starter-boilerplate-v2/./node_modules/dom7/dom7.esm.js","webpack://frontend-starter-boilerplate-v2/./node_modules/ssr-window/ssr-window.esm.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/breakpoints/index.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/check-overflow/index.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/classes/addClasses.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/classes/index.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/classes/removeClasses.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/core.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/defaults.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/events-emitter.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/events/index.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/events/onClick.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/events/onResize.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/events/onScroll.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/events/onTouchEnd.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/events/onTouchMove.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/events/onTouchStart.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/grab-cursor/index.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/images/index.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/images/loadImage.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/images/preloadImages.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/loop/index.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/loop/loopCreate.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/loop/loopDestroy.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/loop/loopFix.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/moduleExtendParams.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/modules/observer/observer.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/modules/resize/resize.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/slide/index.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/slide/slideNext.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/slide/slidePrev.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/slide/slideReset.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/slide/slideTo.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/slide/slideToClosest.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/slide/slideToLoop.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/transition/index.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/transition/setTransition.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/transition/transitionEmit.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/transition/transitionEnd.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/transition/transitionStart.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/translate/getTranslate.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/translate/index.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/translate/maxTranslate.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/translate/minTranslate.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/translate/setTranslate.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/translate/translateTo.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/update/index.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/update/updateActiveIndex.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/update/updateAutoHeight.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/update/updateClickedSlide.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/update/updateProgress.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/update/updateSize.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/update/updateSlides.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/update/updateSlidesClasses.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/update/updateSlidesOffset.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/core/update/updateSlidesProgress.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/a11y/a11y.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/autoplay/autoplay.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/controller/controller.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/effect-cards/effect-cards.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/effect-coverflow/effect-coverflow.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/effect-creative/effect-creative.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/effect-cube/effect-cube.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/effect-fade/effect-fade.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/effect-flip/effect-flip.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/free-mode/free-mode.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/grid/grid.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/hash-navigation/hash-navigation.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/history/history.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/keyboard/keyboard.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/lazy/lazy.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/manipulation/manipulation.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/manipulation/methods/addSlide.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/manipulation/methods/appendSlide.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/manipulation/methods/prependSlide.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/manipulation/methods/removeAllSlides.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/manipulation/methods/removeSlide.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/mousewheel/mousewheel.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/navigation/navigation.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/pagination/pagination.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/parallax/parallax.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/scrollbar/scrollbar.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/thumbs/thumbs.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/virtual/virtual.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/modules/zoom/zoom.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/shared/classes-to-selector.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/shared/create-element-if-not-defined.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/shared/create-shadow.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/shared/dom.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/shared/effect-init.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/shared/effect-target.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/shared/effect-virtual-transition-end.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/shared/get-browser.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/shared/get-device.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/shared/get-support.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/shared/utils.js","webpack://frontend-starter-boilerplate-v2/./node_modules/swiper/swiper.esm.js","webpack://frontend-starter-boilerplate-v2/webpack/bootstrap","webpack://frontend-starter-boilerplate-v2/webpack/runtime/define property getters","webpack://frontend-starter-boilerplate-v2/webpack/runtime/global","webpack://frontend-starter-boilerplate-v2/webpack/runtime/hasOwnProperty shorthand","webpack://frontend-starter-boilerplate-v2/webpack/runtime/make namespace object","webpack://frontend-starter-boilerplate-v2/webpack/runtime/publicPath","webpack://frontend-starter-boilerplate-v2/./src/index.js"],"sourcesContent":["import Swiper, { Navigation, Pagination, EffectFade } from \"swiper\";\r\nSwiper.use([Navigation, Pagination, EffectFade]);\r\nimport \"swiper/css\";\r\nimport \"swiper/css/effect-fade\";\r\n\r\n// Logos - Homepage\r\nnew Swiper(\".swiper.c-logos\", {\r\n loop: true,\r\n slidesPerView: 2,\r\n spaceBetween: 0,\r\n breakpoints: {\r\n 768: {\r\n slidesPerView: 4,\r\n },\r\n 992: {\r\n slidesPerView: 6,\r\n },\r\n },\r\n});\r\n\r\n// Blogs - Homepage\r\nnew Swiper(\".c-blogslider\", {\r\n slidesPerView: 1,\r\n spaceBetween: 30,\r\n loop: true,\r\n breakpoints: {\r\n 768: {\r\n slidesPerView: 2,\r\n spaceBetween: 30,\r\n },\r\n 992: {\r\n slidesPerView: 3,\r\n spaceBetween: 60,\r\n loop: false,\r\n },\r\n },\r\n});\r\n\r\n// Slider (image + content) - Homepage\r\nnew Swiper(\".c-slider__slides\", {\r\n slidesPerView: 1,\r\n speed: 500,\r\n effect: \"fade\",\r\n loop: true,\r\n fadeEffect: {\r\n crossFade: true,\r\n },\r\n pagination: {\r\n el: \".c-slider__pagination\",\r\n clickable: true,\r\n },\r\n navigation: {\r\n nextEl: \".c-slider__arrow.next\",\r\n prevEl: \".c-slider__arrow.prev\",\r\n },\r\n});\r\n\r\n// Imageslider - productdetail\r\nnew Swiper(\".o-imageslider__images\", {\r\n slidesPerView: 1,\r\n speed: 500,\r\n effect: \"fade\",\r\n loop: true,\r\n fadeEffect: {\r\n crossFade: true,\r\n },\r\n pagination: {\r\n el: \".o-imageslider__pagination\",\r\n clickable: true,\r\n },\r\n navigation: {\r\n nextEl: \".o-imageslider__nav.next\",\r\n prevEl: \".o-imageslider__nav.prev\",\r\n },\r\n});\r\n\r\n// Gerelateerde product - productdetail\r\nnew Swiper(\".c-relatedproducts__slides\", {\r\n slidesPerView: 1,\r\n loop: true,\r\n breakpoints: {\r\n 768: {\r\n slidesPerView: 2,\r\n },\r\n 992: {\r\n slidesPerView: 3,\r\n },\r\n 1200: {\r\n slidesPerView: 4,\r\n },\r\n },\r\n navigation: {\r\n nextEl: \".c-relatedproducts__nav.next\",\r\n prevEl: \".c-relatedproducts__nav.prev\",\r\n },\r\n});\r\n\r\n// Producttabs\r\nconst sections = document.querySelectorAll(\"#producttabs div[id]\");\r\nwindow.addEventListener(\"scroll\", navHighlighter);\r\n\r\nfunction navHighlighter() {\r\n let scrollY = window.pageYOffset;\r\n\r\n sections.forEach((current) => {\r\n const sectionHeight = current.offsetHeight;\r\n\r\n const sectionTop =\r\n current.getBoundingClientRect().top + window.pageYOffset - 100;\r\n var sectionId = current.id;\r\n\r\n if (scrollY > sectionTop && scrollY <= sectionTop + sectionHeight) {\r\n document\r\n .querySelector(\".c-producttabs a[href*=\" + sectionId + \"]\")\r\n .classList.add(\"active\");\r\n } else {\r\n document\r\n .querySelector(\".c-producttabs a[href*=\" + sectionId + \"]\")\r\n .classList.remove(\"active\");\r\n }\r\n });\r\n}\r\n\r\nvar menuItems = document.querySelectorAll(\".menu span\");\r\nvar submenus = document.querySelectorAll(\".submenu\");\r\n\r\nfor (let i = 0; i < menuItems.length; i++) {\r\n menuItems[i].addEventListener(\"click\", function (e) {\r\n if (menuItems[i].classList.value === \"goback\") {\r\n menuItems[i].parentElement.classList.remove(\"active\");\r\n e.stopPropagation();\r\n } else {\r\n menuItems[i].querySelector(\".submenu\").classList.add(\"active\");\r\n }\r\n });\r\n}\r\n\r\ndocument\r\n .querySelector(\".navigation__button\")\r\n .addEventListener(\"click\", function () {\r\n document.querySelector(\"body\").classList.toggle(\"fixed\");\r\n\r\n if (!document.querySelector(\"body\").classList.contains(\"fixed\")) {\r\n for (let i = 0; i < submenus.length; i++) {\r\n submenus[i].classList.remove(\"active\");\r\n }\r\n }\r\n });\r\n\r\nif (document.querySelector(\".btn.showpopup\")) {\r\n document\r\n .querySelector(\".btn.showpopup\")\r\n .addEventListener(\"click\", function () {\r\n document.querySelector(\".c-popup\").classList.add(\"active\");\r\n document.querySelector(\"body\").classList.add(\"fixed\");\r\n });\r\n}\r\n\r\nif (document.querySelector(\".btn.hidepopup\")) {\r\n document\r\n .querySelector(\".btn.hidepopup\")\r\n .addEventListener(\"click\", function () {\r\n document.querySelector(\".c-popup\").classList.remove(\"active\");\r\n document.querySelector(\"body\").classList.remove(\"fixed\");\r\n });\r\n}\r\n\r\nvar floatingInputs = document.querySelectorAll(\".form-group.floating\");\r\n\r\nfor (let i = 0; i < floatingInputs.length; i++) {\r\n floatingInputs[i].addEventListener(\"click\", function () {\r\n this.classList.add(\"active\");\r\n });\r\n}\r\n\r\ndocument.addEventListener(\"scroll\", function () {\r\n if (document.querySelector(\".c-producttabs\")) {\r\n var producttabs = document.querySelector(\".c-producttabs\");\r\n var topProducttabs = producttabs.getBoundingClientRect().top;\r\n var productheader = document.querySelector(\".c-productheader\");\r\n\r\n if (topProducttabs > 64) {\r\n productheader.classList.remove(\"active\");\r\n producttabs.classList.remove(\"active\");\r\n } else {\r\n productheader.classList.add(\"active\");\r\n producttabs.classList.add(\"active\");\r\n }\r\n }\r\n});\r\n\r\nvar productAccordions = document.querySelectorAll(\".c-productattributes h2\");\r\n\r\nif (productAccordions) {\r\n for (let i = 0; i < productAccordions.length; i++) {\r\n productAccordions[i].addEventListener(\"click\", function () {\r\n this.classList.toggle(\"active\");\r\n });\r\n }\r\n}\r\n\r\ndocument\r\n .querySelector(\".navigation .header__currentcart__link\")\r\n .addEventListener(\"click\", function () {\r\n document\r\n .querySelector(\".navigation .header__currentcart__dropdown\")\r\n .classList.add(\"active\");\r\n });\r\n\r\ndocument\r\n .querySelector(\".navigation .header__currentcart__goback\")\r\n .addEventListener(\"click\", function () {\r\n document\r\n .querySelector(\".navigation .header__currentcart__dropdown\")\r\n .classList.remove(\"active\");\r\n });\r\n","export default __webpack_public_path__ + \"favicon.ico\";","export default __webpack_public_path__ + \"site.webmanifest\";","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","/**\n * Dom7 4.0.0\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: August 25, 2021\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n super(...(items || []));\n makeReactive(this);\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n const uniqueArray = [];\n\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(' c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n let el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const attr = el.attributes[i];\n\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n }\n\n return this;\n}\n\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (const prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n let child = this[0];\n let i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n const before = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n\n el = next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n\n el = prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n\n parent = parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","/**\n * SSR Window 4.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: August 25, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","import { extend } from '../../shared/utils.js';\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n activeIndex,\n initialized,\n loopedSlides = 0,\n params,\n $el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}grid`);\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(`${params.containerModifierClass}grid-column`);\n }\n\n swiper.emitContainerClasses();\n }\n\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\n\nexport default {\n checkOverflow\n};","function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n $el,\n device,\n support\n } = swiper; // prettier-ignore\n\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n $el.addClass([...classNames].join(' '));\n swiper.emitContainerClasses();\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","export default function removeClasses() {\n const swiper = this;\n const {\n $el,\n classNames\n } = swiper;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../shared/dom.js';\nimport { extend, now, deleteProps } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport images from './images/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images\n};\nconst extendedDefaults = {};\n\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n const swipers = [];\n $(params.el).each(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n }); // Extend defaults with modules params\n\n const swiperParams = extend({}, defaults, allModulesParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n const desktop = ['pointerdown', 'pointermove', 'pointerup'];\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n }\n\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n }\n\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n\n getSlideClasses(slideEl) {\n const swiper = this;\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.each(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n\n slidesPerViewDynamic(view = 'current', exact = false) {\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n let translated;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n\n mount(el) {\n const swiper = this;\n if (swiper.mounted) return true; // Find el\n\n const $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = options => $el.children(options);\n\n return res;\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n let $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n const document = getDocument();\n const wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(`.${swiper.params.slideClass}`).each(slideEl => {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n }\n\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n $el,\n $wrapperEl,\n slides\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n }\n\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n }\n\n}\n\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","/* eslint-disable no-underscore-dangle */\nexport default {\n on(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n\n once(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler(...args) {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n\n onAny(handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n\n offAny(handler) {\n const self = this;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n};","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nlet dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n touchEvents,\n el,\n wrapperEl,\n device,\n support\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n};\n\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n support\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n}\n\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\n\nexport default {\n attachEvents,\n detachEvents\n};","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n } // Find current slide\n\n\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop && !params.cssMode) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, e.target) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n if ($targetEl.is(data.focusableElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n const swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","import loadImage from './loadImage.js';\nimport preloadImages from './preloadImages.js';\nexport default {\n loadImage,\n preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window = getWindow();\n let image;\n\n function onReady() {\n if (callback) callback();\n }\n\n const isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loopCreate() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n $wrapperEl\n } = swiper; // Remove duplicated slides\n\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n let slides = $wrapperEl.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $wrapperEl.append(blankNode);\n }\n\n slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n const slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (let i = 0; i < appendSlides.length; i += 1) {\n $wrapperEl.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $wrapperEl.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n slides\n } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","export default function loopFix() {\n const swiper = this;\n swiper.emit('beforeLoopFix');\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","import { getWindow } from 'ssr-window';\nexport default function Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n\n const attach = (target, options = {}) => {\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n\n const init = () => {\n if (!swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","import { getWindow } from 'ssr-window';\nexport default function Resize({\n swiper,\n on,\n emit\n}) {\n const window = getWindow();\n let observer = null;\n\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(({\n contentBoxSize,\n contentRect,\n target\n }) => {\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n observer.observe(swiper.el);\n };\n\n const removeObserver = () => {\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n animating,\n enabled,\n params\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n animating,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n let prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n const translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n $wrapperEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","export default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit(`transition${step}`);\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n\n swiper.emit(`slideChangeTransition${step}`);\n\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n $wrapperEl\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n $wrapperEl,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","export default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","export default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}","import $ from '../../shared/dom.js';\nexport default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e.target).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n let slideIndex;\n\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","export default function updateProgress(translate) {\n const swiper = this;\n\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n Object.assign(swiper, {\n progress,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n const params = swiper.params;\n const {\n $wrapperEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n\n const slideStyles = getComputedStyle(slide[0]);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide[0];\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (params.setWrapperSize) {\n $wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css({\n [key]: `${spaceBetween}px`\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n $wrapperEl,\n activeIndex,\n realIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n let activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateSlidesProgress(translate = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","import classesToSelector from '../../shared/classes-to-selector.js';\nimport $ from '../../shared/dom.js';\nexport default function A11y({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group'\n }\n });\n let liveRegion = null;\n\n function notify(message) {\n const notification = liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n }\n\n function getRandomNumber(size = 16) {\n const randomChar = () => Math.round(16 * Math.random()).toString(16);\n\n return 'x'.repeat(size).replace(/x/g, randomChar);\n }\n\n function makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n }\n\n function makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n }\n\n function addElRole($el, role) {\n $el.attr('role', role);\n }\n\n function addElRoleDescription($el, description) {\n $el.attr('aria-roledescription', description);\n }\n\n function addElControls($el, controls) {\n $el.attr('aria-controls', controls);\n }\n\n function addElLabel($el, label) {\n $el.attr('aria-label', label);\n }\n\n function addElId($el, id) {\n $el.attr('id', id);\n }\n\n function addElLive($el, live) {\n $el.attr('aria-live', live);\n }\n\n function disableEl($el) {\n $el.attr('aria-disabled', true);\n }\n\n function enableEl($el) {\n $el.attr('aria-disabled', false);\n }\n\n function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n const params = swiper.params.a11y;\n const $targetEl = $(e.target);\n\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n\n if (swiper.isEnd) {\n notify(params.lastSlideMessage);\n } else {\n notify(params.nextSlideMessage);\n }\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n\n if (swiper.isBeginning) {\n notify(params.firstSlideMessage);\n } else {\n notify(params.prevSlideMessage);\n }\n }\n\n if (swiper.pagination && $targetEl.is(classesToSelector(swiper.params.pagination.bulletClass))) {\n $targetEl[0].click();\n }\n }\n\n function updateNavigation() {\n if (swiper.params.loop || !swiper.navigation) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n disableEl($prevEl);\n makeElNotFocusable($prevEl);\n } else {\n enableEl($prevEl);\n makeElFocusable($prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n disableEl($nextEl);\n makeElNotFocusable($nextEl);\n } else {\n enableEl($nextEl);\n makeElFocusable($nextEl);\n }\n }\n }\n\n function hasPagination() {\n return swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length;\n }\n\n function updatePagination() {\n const params = swiper.params.a11y;\n\n if (hasPagination()) {\n swiper.pagination.bullets.each(bulletEl => {\n const $bulletEl = $(bulletEl);\n makeElFocusable($bulletEl);\n\n if (!swiper.params.pagination.renderBullet) {\n addElRole($bulletEl, 'button');\n addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n }\n });\n }\n }\n\n const initNavEl = ($el, wrapperId, message) => {\n makeElFocusable($el);\n\n if ($el[0].tagName !== 'BUTTON') {\n addElRole($el, 'button');\n $el.on('keydown', onEnterOrSpaceKey);\n }\n\n addElLabel($el, message);\n addElControls($el, wrapperId);\n };\n\n function init() {\n const params = swiper.params.a11y;\n swiper.$el.append(liveRegion); // Container\n\n const $containerEl = swiper.$el;\n\n if (params.containerRoleDescriptionMessage) {\n addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\n }\n\n if (params.containerMessage) {\n addElLabel($containerEl, params.containerMessage);\n } // Wrapper\n\n\n const $wrapperEl = swiper.$wrapperEl;\n const wrapperId = $wrapperEl.attr('id') || `swiper-wrapper-${getRandomNumber(16)}`;\n const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n addElId($wrapperEl, wrapperId);\n addElLive($wrapperEl, live); // Slide\n\n if (params.itemRoleDescriptionMessage) {\n addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);\n }\n\n addElRole($(swiper.slides), params.slideRole);\n const slidesLength = swiper.params.loop ? swiper.slides.filter(el => !el.classList.contains(swiper.params.slideDuplicateClass)).length : swiper.slides.length;\n swiper.slides.each((slideEl, index) => {\n const $slideEl = $(slideEl);\n const slideIndex = swiper.params.loop ? parseInt($slideEl.attr('data-swiper-slide-index'), 10) : index;\n const ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n addElLabel($slideEl, ariaLabelMessage);\n }); // Navigation\n\n let $nextEl;\n let $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl && $nextEl.length) {\n initNavEl($nextEl, wrapperId, params.nextSlideMessage);\n }\n\n if ($prevEl && $prevEl.length) {\n initNavEl($prevEl, wrapperId, params.prevSlideMessage);\n } // Pagination\n\n\n if (hasPagination()) {\n swiper.pagination.$el.on('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n }\n }\n\n function destroy() {\n if (liveRegion && liveRegion.length > 0) liveRegion.remove();\n let $nextEl;\n let $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl) {\n $nextEl.off('keydown', onEnterOrSpaceKey);\n }\n\n if ($prevEl) {\n $prevEl.off('keydown', onEnterOrSpaceKey);\n } // Pagination\n\n\n if (hasPagination()) {\n swiper.pagination.$el.off('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n }\n }\n\n on('beforeInit', () => {\n liveRegion = $(``);\n });\n on('afterInit', () => {\n if (!swiper.params.a11y.enabled) return;\n init();\n updateNavigation();\n });\n on('toEdge', () => {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('fromEdge', () => {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('paginationUpdate', () => {\n if (!swiper.params.a11y.enabled) return;\n updatePagination();\n });\n on('destroy', () => {\n if (!swiper.params.a11y.enabled) return;\n destroy();\n });\n}","/* eslint no-underscore-dangle: \"off\" */\n\n/* eslint no-use-before-define: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick } from '../../shared/utils.js';\nexport default function Autoplay({\n swiper,\n extendParams,\n on,\n emit\n}) {\n let timeout;\n swiper.autoplay = {\n running: false,\n paused: false\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n\n function run() {\n const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n let delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(timeout);\n timeout = nextTick(() => {\n let autoplayResult;\n\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) run();else if (autoplayResult === false) {\n run();\n }\n }, delay);\n }\n\n function start() {\n if (typeof timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n emit('autoplayStart');\n run();\n return true;\n }\n\n function stop() {\n if (!swiper.autoplay.running) return false;\n if (typeof timeout === 'undefined') return false;\n\n if (timeout) {\n clearTimeout(timeout);\n timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n emit('autoplayStop');\n return true;\n }\n\n function pause(speed) {\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (timeout) clearTimeout(timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n run();\n } else {\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].addEventListener(event, onTransitionEnd);\n });\n }\n }\n\n function onVisibilityChange() {\n const document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n run();\n swiper.autoplay.paused = false;\n }\n }\n\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n stop();\n } else {\n run();\n }\n }\n\n function onMouseEnter() {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n pause();\n }\n\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n }\n\n function onMouseLeave() {\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n\n swiper.autoplay.paused = false;\n run();\n }\n\n function attachMouseEvents() {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on('mouseenter', onMouseEnter);\n swiper.$el.on('mouseleave', onMouseLeave);\n }\n }\n\n function detachMouseEvents() {\n swiper.$el.off('mouseenter', onMouseEnter);\n swiper.$el.off('mouseleave', onMouseLeave);\n }\n\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n start();\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n attachMouseEvents();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n stop();\n }\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n pause();\n }\n }\n });\n on('touchEnd', () => {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n run();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n\n if (swiper.autoplay.running) {\n stop();\n }\n\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n });\n Object.assign(swiper.autoplay, {\n pause,\n run,\n start,\n stop\n });\n}","/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nimport { nextTick } from '../../shared/utils.js';\nexport default function Controller({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n\n }\n });\n swiper.controller = {\n control: undefined\n };\n\n function LinearSpline(x, y) {\n const binarySearch = function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val) => {\n minIndex = -1;\n maxIndex = array.length;\n\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n\n return maxIndex;\n };\n }();\n\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1; // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n\n let i1;\n let i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0; // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1; // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n\n return this;\n } // xxx: for now i will just save one spline function to to\n\n\n function getInterpolateFunction(c) {\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n }\n\n function setTranslate(_t, byController) {\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n const Swiper = swiper.constructor;\n\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n\n if (swiper.params.controller.by === 'slide') {\n getInterpolateFunction(c); // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n\n if (Array.isArray(controlled)) {\n for (let i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n }\n\n function setTransition(duration, byController) {\n const Swiper = swiper.constructor;\n const controlled = swiper.controller.control;\n let i;\n\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n\n if (duration !== 0) {\n c.transitionStart();\n\n if (c.params.autoHeight) {\n nextTick(() => {\n c.updateAutoHeight();\n });\n }\n\n c.$wrapperEl.transitionEnd(() => {\n if (!controlled) return;\n\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n\n c.transitionEnd();\n });\n }\n }\n\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n\n function removeSpline() {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n }\n\n on('beforeInit', () => {\n swiper.controller.control = swiper.params.controller.control;\n });\n on('update', () => {\n removeSpline();\n });\n on('resize', () => {\n removeSpline();\n });\n on('observerUpdate', () => {\n removeSpline();\n });\n on('setTranslate', (_s, translate, byController) => {\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n });\n on('setTransition', (_s, duration, byController) => {\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n });\n Object.assign(swiper.controller, {\n setTranslate,\n setTransition\n });\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectCards({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n cardsEffect: {\n slideShadows: true,\n transformEl: null\n }\n });\n\n const setTranslate = () => {\n const {\n slides,\n activeIndex\n } = swiper;\n const params = swiper.params.cardsEffect;\n const {\n startTranslate,\n isTouched\n } = swiper.touchEventsData;\n const currentTranslate = swiper.translate;\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideProgress = $slideEl[0].progress;\n const progress = Math.min(Math.max(slideProgress, -4), 4);\n let offset = $slideEl[0].swiperSlideOffset;\n\n if (swiper.params.centeredSlides && !swiper.params.cssMode) {\n swiper.$wrapperEl.transform(`translateX(${swiper.minTranslate()}px)`);\n }\n\n if (swiper.params.centeredSlides && swiper.params.cssMode) {\n offset -= slides[0].swiperSlideOffset;\n }\n\n let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let tY = 0;\n const tZ = -100 * Math.abs(progress);\n let scale = 1;\n let rotate = -2 * progress;\n let tXAdd = 8 - Math.abs(progress) * 0.75;\n const isSwipeToNext = (i === activeIndex || i === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;\n const isSwipeToPrev = (i === activeIndex || i === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;\n\n if (isSwipeToNext || isSwipeToPrev) {\n const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;\n rotate += -28 * progress * subProgress;\n scale += -0.5 * subProgress;\n tXAdd += 96 * subProgress;\n tY = `${-25 * subProgress * Math.abs(progress)}%`;\n }\n\n if (progress < 0) {\n // next\n tX = `calc(${tX}px + (${tXAdd * Math.abs(progress)}%))`;\n } else if (progress > 0) {\n // prev\n tX = `calc(${tX}px + (-${tXAdd * Math.abs(progress)}%))`;\n } else {\n tX = `${tX}px`;\n }\n\n if (!swiper.isHorizontal()) {\n const prevY = tY;\n tY = tX;\n tX = prevY;\n }\n\n const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;\n const transform = `\n translate3d(${tX}, ${tY}, ${tZ}px)\n rotateZ(${rotate}deg)\n scale(${scaleString})\n `;\n\n if (params.slideShadows) {\n // Set shadows\n let $shadowEl = $slideEl.find('.swiper-slide-shadow');\n\n if ($shadowEl.length === 0) {\n $shadowEl = createShadow(params, $slideEl);\n }\n\n if ($shadowEl.length) $shadowEl[0].style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(transform);\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.cardsEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl\n });\n };\n\n effectInit({\n effect: 'cards',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nexport default function EffectCoverflow({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true,\n transformEl: null\n }\n });\n\n const setTranslate = () => {\n const {\n width: swiperWidth,\n height: swiperHeight,\n slides,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform = swiper.translate;\n const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth; // Each slide offset from center\n\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideSize = slidesSizesGrid[i];\n const slideOffset = $slideEl[0].swiperSlideOffset;\n const offsetMultiplier = (center - slideOffset - slideSize / 2) / slideSize * params.modifier;\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; // var rotateZ = 0\n\n let translateZ = -translate * Math.abs(offsetMultiplier);\n let stretch = params.stretch; // Allow percentage to make a relative stretch for responsive sliders\n\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = parseFloat(params.stretch) / 100 * slideSize;\n }\n\n let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n let translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); // Fix for ultra small values\n\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n\n if (params.slideShadows) {\n // Set shadows\n let $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = createShadow(params, $slideEl, isHorizontal ? 'left' : 'top');\n }\n\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = createShadow(params, $slideEl, isHorizontal ? 'right' : 'bottom');\n }\n\n if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.coverflowEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n };\n\n effectInit({\n effect: 'coverflow',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true\n })\n });\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectCreative({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n creativeEffect: {\n transformEl: null,\n limitProgress: 1,\n shadowPerProgress: false,\n progressMultiplier: 1,\n perspective: true,\n prev: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n },\n next: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n }\n }\n });\n\n const getTranslateValue = value => {\n if (typeof value === 'string') return value;\n return `${value}px`;\n };\n\n const setTranslate = () => {\n const {\n slides\n } = swiper;\n const params = swiper.params.creativeEffect;\n const {\n progressMultiplier: multiplier\n } = params;\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideProgress = $slideEl[0].progress;\n const progress = Math.min(Math.max($slideEl[0].progress, -params.limitProgress), params.limitProgress);\n const offset = $slideEl[0].swiperSlideOffset;\n const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];\n const r = [0, 0, 0];\n let custom = false;\n\n if (!swiper.isHorizontal()) {\n t[1] = t[0];\n t[0] = 0;\n }\n\n let data = {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n scale: 1,\n opacity: 1\n };\n\n if (progress < 0) {\n data = params.next;\n custom = true;\n } else if (progress > 0) {\n data = params.prev;\n custom = true;\n } // set translate\n\n\n t.forEach((value, index) => {\n t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`;\n }); // set rotates\n\n r.forEach((value, index) => {\n r[index] = data.rotate[index] * Math.abs(progress * multiplier);\n });\n $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const translateString = t.join(', ');\n const rotateString = `rotateX(${r[0]}deg) rotateY(${r[1]}deg) rotateZ(${r[2]}deg)`;\n const scaleString = progress < 0 ? `scale(${1 + (1 - data.scale) * progress * multiplier})` : `scale(${1 - (1 - data.scale) * progress * multiplier})`;\n const opacityString = progress < 0 ? 1 + (1 - data.opacity) * progress * multiplier : 1 - (1 - data.opacity) * progress * multiplier;\n const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`; // Set shadows\n\n if (custom && data.shadow || !custom) {\n let $shadowEl = $slideEl.children('.swiper-slide-shadow');\n\n if ($shadowEl.length === 0 && data.shadow) {\n $shadowEl = createShadow(params, $slideEl);\n }\n\n if ($shadowEl.length) {\n const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;\n $shadowEl[0].style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);\n }\n }\n\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(transform).css({\n opacity: opacityString\n });\n\n if (data.origin) {\n $targetEl.css('transform-origin', data.origin);\n }\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.creativeEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl,\n allSlides: true\n });\n };\n\n effectInit({\n effect: 'creative',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => swiper.params.creativeEffect.perspective,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","import $ from '../../shared/dom.js';\nimport effectInit from '../../shared/effect-init.js';\nexport default function EffectCube({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n }\n });\n\n const setTranslate = () => {\n const {\n $el,\n $wrapperEl,\n slides,\n width: swiperWidth,\n height: swiperHeight,\n rtlTranslate: rtl,\n size: swiperSize,\n browser\n } = swiper;\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let $cubeShadowEl;\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $wrapperEl.append($cubeShadowEl);\n }\n\n $cubeShadowEl.css({\n height: `${swiperWidth}px`\n });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $el.append($cubeShadowEl);\n }\n }\n }\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let slideIndex = i;\n\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n\n const progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let tz = 0;\n\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n\n if (rtl) {\n tx = -tx;\n }\n\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n\n const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n }\n\n $slideEl.transform(transform);\n\n if (params.slideShadows) {\n // Set shadows\n let shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if (shadowBefore.length === 0) {\n shadowBefore = $(`
`);\n $slideEl.append(shadowBefore);\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = $(`
`);\n $slideEl.append(shadowAfter);\n }\n\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n }\n\n $wrapperEl.css({\n '-webkit-transform-origin': `50% 50% -${swiperSize / 2}px`,\n 'transform-origin': `50% 50% -${swiperSize / 2}px`\n });\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform(`translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`);\n } else {\n const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const offset = params.shadowOffset;\n $cubeShadowEl.transform(`scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`);\n }\n }\n\n const zFactor = browser.isSafari || browser.isWebView ? -swiperSize / 2 : 0;\n $wrapperEl.transform(`translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`);\n };\n\n const setTransition = duration => {\n const {\n $el,\n slides\n } = swiper;\n slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n };\n\n effectInit({\n effect: 'cube',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true\n })\n });\n}","import effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectFade({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n fadeEffect: {\n crossFade: false,\n transformEl: null\n }\n });\n\n const setTranslate = () => {\n const {\n slides\n } = swiper;\n const params = swiper.params.fadeEffect;\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = swiper.slides.eq(i);\n const offset = $slideEl[0].swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n\n const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0) : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.css({\n opacity: slideOpacity\n }).transform(`translate3d(${tx}px, ${ty}px, 0px)`);\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.fadeEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl,\n allSlides: true\n });\n };\n\n effectInit({\n effect: 'fade',\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectFlip({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n transformEl: null\n }\n });\n\n const setTranslate = () => {\n const {\n slides,\n rtlTranslate: rtl\n } = swiper;\n const params = swiper.params.flipEffect;\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let progress = $slideEl[0].progress;\n\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n\n const offset = $slideEl[0].swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n if (params.slideShadows) {\n // Set shadows\n let shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if (shadowBefore.length === 0) {\n shadowBefore = createShadow(params, $slideEl, swiper.isHorizontal() ? 'left' : 'top');\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = createShadow(params, $slideEl, swiper.isHorizontal() ? 'right' : 'bottom');\n }\n\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n\n const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(transform);\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.flipEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl\n });\n };\n\n effectInit({\n effect: 'flip',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","import { now } from '../../shared/utils.js';\nexport default function freeMode({\n swiper,\n extendParams,\n emit,\n once\n}) {\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n\n function onTouchMove() {\n const {\n touchEventsData: data,\n touches\n } = swiper; // Velocity\n\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n }\n\n function onTouchEnd({\n currentPos\n }) {\n const {\n params,\n $wrapperEl,\n rtlTranslate: rtl,\n snapGrid,\n touchEventsData: data\n } = swiper; // Time diff\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n\n return;\n }\n\n if (params.freeMode.momentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n let needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeMode.sticky) {\n let nextSlide;\n\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n\n newPosition = -newPosition;\n }\n\n if (needsLoopFix) {\n once('transitionEnd', () => {\n swiper.loopFix();\n });\n } // Fix duration\n\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n\n if (params.freeMode.sticky) {\n // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeMode.momentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit('_freeModeNoMomentumRelease');\n }\n\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n\n Object.assign(swiper, {\n freeMode: {\n onTouchMove,\n onTouchEnd\n }\n });\n}","export default function Grid({\n swiper,\n extendParams\n}) {\n extendParams({\n grid: {\n rows: 1,\n fill: 'column'\n }\n });\n let slidesNumberEvenToRows;\n let slidesPerRow;\n let numFullColumns;\n\n const initSlides = slidesLength => {\n const {\n slidesPerView\n } = swiper.params;\n const {\n rows,\n fill\n } = swiper.params.grid;\n slidesPerRow = slidesNumberEvenToRows / rows;\n numFullColumns = Math.floor(slidesLength / rows);\n\n if (Math.floor(slidesLength / rows) === slidesLength / rows) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;\n }\n\n if (slidesPerView !== 'auto' && fill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);\n }\n };\n\n const updateSlide = (i, slide, slidesLength, getDirectionLabel) => {\n const {\n slidesPerGroup,\n spaceBetween\n } = swiper.params;\n const {\n rows,\n fill\n } = swiper.params.grid; // Set slides order\n\n let newSlideOrderIndex;\n let column;\n let row;\n\n if (fill === 'row' && slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (slidesPerGroup * rows));\n const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;\n const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;\n slide.css({\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (fill === 'column') {\n column = Math.floor(i / rows);\n row = i - column * rows;\n\n if (column > numFullColumns || column === numFullColumns && row === rows - 1) {\n row += 1;\n\n if (row >= rows) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n\n slide.css(getDirectionLabel('margin-top'), row !== 0 ? spaceBetween && `${spaceBetween}px` : '');\n };\n\n const updateWrapperSize = (slideSize, snapGrid, getDirectionLabel) => {\n const {\n spaceBetween,\n centeredSlides,\n roundLengths\n } = swiper.params;\n const {\n rows\n } = swiper.params.grid;\n swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;\n swiper.$wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + spaceBetween}px`\n });\n\n if (centeredSlides) {\n snapGrid.splice(0, snapGrid.length);\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid.push(...newSlidesGrid);\n }\n };\n\n swiper.grid = {\n initSlides,\n updateSlide,\n updateWrapperSize\n };\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function HashNavigation({\n swiper,\n extendParams,\n emit,\n on\n}) {\n let initialized = false;\n const document = getDocument();\n const window = getWindow();\n extendParams({\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false\n }\n });\n\n const onHashChange = () => {\n emit('hashChange');\n const newHash = document.location.hash.replace('#', '');\n const activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n\n if (newHash !== activeSlideHash) {\n const newIndex = swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-hash=\"${newHash}\"]`).index();\n if (typeof newIndex === 'undefined') return;\n swiper.slideTo(newIndex);\n }\n };\n\n const setHash = () => {\n if (!initialized || !swiper.params.hashNavigation.enabled) return;\n\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, `#${swiper.slides.eq(swiper.activeIndex).attr('data-hash')}` || '');\n emit('hashSet');\n } else {\n const slide = swiper.slides.eq(swiper.activeIndex);\n const hash = slide.attr('data-hash') || slide.attr('data-history');\n document.location.hash = hash || '';\n emit('hashSet');\n }\n };\n\n const init = () => {\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n initialized = true;\n const hash = document.location.hash.replace('#', '');\n\n if (hash) {\n const speed = 0;\n\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHash = slide.attr('data-hash') || slide.attr('data-history');\n\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n\n if (swiper.params.hashNavigation.watchState) {\n $(window).on('hashchange', onHashChange);\n }\n };\n\n const destroy = () => {\n if (swiper.params.hashNavigation.watchState) {\n $(window).off('hashchange', onHashChange);\n }\n };\n\n on('init', () => {\n if (swiper.params.hashNavigation.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.hashNavigation.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHash();\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHash();\n }\n });\n}","import { getWindow } from 'ssr-window';\nexport default function History({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n history: {\n enabled: false,\n root: '',\n replaceState: false,\n key: 'slides'\n }\n });\n let initialized = false;\n let paths = {};\n\n const slugify = text => {\n return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n };\n\n const getPathValues = urlOverride => {\n const window = getWindow();\n let location;\n\n if (urlOverride) {\n location = new URL(urlOverride);\n } else {\n location = window.location;\n }\n\n const pathArray = location.pathname.slice(1).split('/').filter(part => part !== '');\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return {\n key,\n value\n };\n };\n\n const setHistory = (key, index) => {\n const window = getWindow();\n if (!initialized || !swiper.params.history.enabled) return;\n let location;\n\n if (swiper.params.url) {\n location = new URL(swiper.params.url);\n } else {\n location = window.location;\n }\n\n const slide = swiper.slides.eq(index);\n let value = slugify(slide.attr('data-history'));\n\n if (swiper.params.history.root.length > 0) {\n let root = swiper.params.history.root;\n if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);\n value = `${root}/${key}/${value}`;\n } else if (!location.pathname.includes(key)) {\n value = `${key}/${value}`;\n }\n\n const currentState = window.history.state;\n\n if (currentState && currentState.value === value) {\n return;\n }\n\n if (swiper.params.history.replaceState) {\n window.history.replaceState({\n value\n }, null, value);\n } else {\n window.history.pushState({\n value\n }, null, value);\n }\n };\n\n const scrollToSlide = (speed, value, runCallbacks) => {\n if (value) {\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHistory = slugify(slide.attr('data-history'));\n\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n };\n\n const setHistoryPopState = () => {\n paths = getPathValues(swiper.params.url);\n scrollToSlide(swiper.params.speed, swiper.paths.value, false);\n };\n\n const init = () => {\n const window = getWindow();\n if (!swiper.params.history) return;\n\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n\n initialized = true;\n paths = getPathValues(swiper.params.url);\n if (!paths.key && !paths.value) return;\n scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);\n\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', setHistoryPopState);\n }\n };\n\n const destroy = () => {\n const window = getWindow();\n\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', setHistoryPopState);\n }\n };\n\n on('init', () => {\n if (swiper.params.history.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.history.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n}","/* eslint-disable consistent-return */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function Keyboard({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const document = getDocument();\n const window = getWindow();\n swiper.keyboard = {\n enabled: false\n };\n extendParams({\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n });\n\n function handle(event) {\n if (!swiper.enabled) return;\n const {\n rtlTranslate: rtl\n } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n const kc = e.keyCode || e.charCode;\n const pageUpDown = swiper.params.keyboard.pageUpDown;\n const isPageUp = pageUpDown && kc === 33;\n const isPageDown = pageUpDown && kc === 34;\n const isArrowLeft = kc === 37;\n const isArrowRight = kc === 39;\n const isArrowUp = kc === 38;\n const isArrowDown = kc === 40; // Directions locks\n\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n let inView = false; // Check that swiper should be inside of visible area of window\n\n if (swiper.$el.parents(`.${swiper.params.slideClass}`).length > 0 && swiper.$el.parents(`.${swiper.params.slideActiveClass}`).length === 0) {\n return undefined;\n }\n\n const $el = swiper.$el;\n const swiperWidth = $el[0].clientWidth;\n const swiperHeight = $el[0].clientHeight;\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n\n if (!inView) return undefined;\n }\n\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n\n emit('keyPress', kc);\n return undefined;\n }\n\n function enable() {\n if (swiper.keyboard.enabled) return;\n $(document).on('keydown', handle);\n swiper.keyboard.enabled = true;\n }\n\n function disable() {\n if (!swiper.keyboard.enabled) return;\n $(document).off('keydown', handle);\n swiper.keyboard.enabled = false;\n }\n\n on('init', () => {\n if (swiper.params.keyboard.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n if (swiper.keyboard.enabled) {\n disable();\n }\n });\n Object.assign(swiper.keyboard, {\n enable,\n disable\n });\n}","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function Lazy({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n lazy: {\n checkInView: false,\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n scrollingElement: '',\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader'\n }\n });\n swiper.lazy = {};\n let scrollHandlerAttached = false;\n let initialImageLoaded = false;\n\n function loadInSlide(index, loadInDuplicate = true) {\n const params = swiper.params.lazy;\n if (typeof index === 'undefined') return;\n if (swiper.slides.length === 0) return;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n const $slideEl = isVirtual ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${index}\"]`) : swiper.slides.eq(index);\n const $images = $slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`);\n\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images.push($slideEl[0]);\n }\n\n if ($images.length === 0) return;\n $images.each(imageEl => {\n const $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n const background = $imageEl.attr('data-background');\n const src = $imageEl.attr('data-src');\n const srcset = $imageEl.attr('data-srcset');\n const sizes = $imageEl.attr('data-sizes');\n const $pictureEl = $imageEl.parent('picture');\n swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, () => {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return;\n\n if (background) {\n $imageEl.css('background-image', `url(\"${background}\")`);\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n\n if ($pictureEl.length) {\n $pictureEl.children('source').each(sourceEl => {\n const $source = $(sourceEl);\n\n if ($source.attr('data-srcset')) {\n $source.attr('srcset', $source.attr('data-srcset'));\n $source.removeAttr('data-srcset');\n }\n });\n }\n\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(`.${params.preloaderClass}`).remove();\n\n if (swiper.params.loop && loadInDuplicate) {\n const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n const originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index=\"${slideOriginalIndex}\"]:not(.${swiper.params.slideDuplicateClass})`);\n loadInSlide(originalSlide.index(), false);\n } else {\n const duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index=\"${slideOriginalIndex}\"]`);\n loadInSlide(duplicatedSlide.index(), false);\n }\n }\n\n emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n }\n\n function load() {\n const {\n $wrapperEl,\n params: swiperParams,\n slides,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n const params = swiperParams.lazy;\n let slidesPerView = swiperParams.slidesPerView;\n\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index) {\n if (isVirtual) {\n if ($wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index=\"${index}\"]`).length) {\n return true;\n }\n } else if (slides[index]) return true;\n\n return false;\n }\n\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n\n return $(slideEl).index();\n }\n\n if (!initialImageLoaded) initialImageLoaded = true;\n\n if (swiper.params.watchSlidesProgress) {\n $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each(slideEl => {\n const index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n }\n } else {\n loadInSlide(activeIndex);\n }\n\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) {\n const amount = params.loadPrevNextAmount;\n const spv = slidesPerView;\n const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); // Next Slides\n\n for (let i = activeIndex + slidesPerView; i < maxIndex; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n } // Prev Slides\n\n\n for (let i = minIndex; i < activeIndex; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n }\n } else {\n const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);\n if (nextSlide.length > 0) loadInSlide(slideIndex(nextSlide));\n const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);\n if (prevSlide.length > 0) loadInSlide(slideIndex(prevSlide));\n }\n }\n }\n\n function checkInViewOnLoad() {\n const window = getWindow();\n if (!swiper || swiper.destroyed) return;\n const $scrollElement = swiper.params.lazy.scrollingElement ? $(swiper.params.lazy.scrollingElement) : $(window);\n const isWindow = $scrollElement[0] === window;\n const scrollElementWidth = isWindow ? window.innerWidth : $scrollElement[0].offsetWidth;\n const scrollElementHeight = isWindow ? window.innerHeight : $scrollElement[0].offsetHeight;\n const swiperOffset = swiper.$el.offset();\n const {\n rtlTranslate: rtl\n } = swiper;\n let inView = false;\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]];\n\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= scrollElementWidth && point[1] >= 0 && point[1] <= scrollElementHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n\n const passiveListener = swiper.touchEvents.start === 'touchstart' && swiper.support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n\n if (inView) {\n load();\n $scrollElement.off('scroll', checkInViewOnLoad, passiveListener);\n } else if (!scrollHandlerAttached) {\n scrollHandlerAttached = true;\n $scrollElement.on('scroll', checkInViewOnLoad, passiveListener);\n }\n }\n\n on('beforeInit', () => {\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n });\n on('init', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('scroll', () => {\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.freeMode.sticky) {\n load();\n }\n });\n on('scrollbarDragMove resize _freeModeNoMomentumRelease', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('transitionStart', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !initialImageLoaded) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n }\n });\n on('transitionEnd', () => {\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('slideChange', () => {\n const {\n lazy,\n cssMode,\n watchSlidesProgress,\n touchReleaseOnEdges,\n resistanceRatio\n } = swiper.params;\n\n if (lazy.enabled && (cssMode || watchSlidesProgress && (touchReleaseOnEdges || resistanceRatio === 0))) {\n load();\n }\n });\n Object.assign(swiper.lazy, {\n load,\n loadInSlide\n });\n}","import appendSlide from './methods/appendSlide.js';\nimport prependSlide from './methods/prependSlide.js';\nimport addSlide from './methods/addSlide.js';\nimport removeSlide from './methods/removeSlide.js';\nimport removeAllSlides from './methods/removeAllSlides.js';\nexport default function Manipulation({\n swiper\n}) {\n Object.assign(swiper, {\n appendSlide: appendSlide.bind(swiper),\n prependSlide: prependSlide.bind(swiper),\n addSlide: addSlide.bind(swiper),\n removeSlide: removeSlide.bind(swiper),\n removeAllSlides: removeAllSlides.bind(swiper)\n });\n}","export default function addSlide(index, slides) {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n activeIndex\n } = swiper;\n let activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n\n const baseLength = swiper.slides.length;\n\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n\n let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n const slidesBuffer = [];\n\n for (let i = baseLength - 1; i >= index; i -= 1) {\n const currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (let i = 0; i < slidesBuffer.length; i += 1) {\n $wrapperEl.append(slidesBuffer[i]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!params.observer) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function appendSlide(slides) {\n const swiper = this;\n const {\n $wrapperEl,\n params\n } = swiper;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!params.observer) {\n swiper.update();\n }\n}","export default function prependSlide(slides) {\n const swiper = this;\n const {\n params,\n $wrapperEl,\n activeIndex\n } = swiper;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n let newActiveIndex = activeIndex + 1;\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!params.observer) {\n swiper.update();\n }\n\n swiper.slideTo(newActiveIndex, 0, false);\n}","export default function removeAllSlides() {\n const swiper = this;\n const slidesIndexes = [];\n\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n\n swiper.removeSlide(slidesIndexes);\n}","export default function removeSlide(slidesIndexes) {\n const swiper = this;\n const {\n params,\n $wrapperEl,\n activeIndex\n } = swiper;\n let activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (let i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!params.observer) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","/* eslint-disable consistent-return */\nimport { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now, nextTick } from '../../shared/utils.js';\nexport default function Mousewheel({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const window = getWindow();\n extendParams({\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null\n }\n });\n swiper.mousewheel = {\n enabled: false\n };\n let timeout;\n let lastScrollTime = now();\n let lastEventBeforeSnap;\n const recentWheelEvents = [];\n\n function normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n let sX = 0;\n let sY = 0; // spinX, spinY\n\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n // Legacy\n\n if ('detail' in e) {\n sY = e.detail;\n }\n\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n } // side scrolling on FF with DOMMouseScroll\n\n\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n } // Fall-back if spin cannot be determined\n\n\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n }\n\n function handleMouseEnter() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n }\n\n function handleMouseLeave() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n }\n\n function animateSlider(newEvent) {\n if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n\n if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n } // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n\n\n if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n // Return false as a default\n return true;\n } // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n\n\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n emit('scroll', newEvent.raw);\n } // If you got here is because an animation has been triggered so store the current time\n\n\n lastScrollTime = new window.Date().getTime(); // Return false as a default\n\n return false;\n }\n\n function releaseScroll(newEvent) {\n const params = swiper.params.mousewheel;\n\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n\n return false;\n }\n\n function handle(event) {\n let e = event;\n let disableParentSwiper = true;\n if (!swiper.enabled) return;\n const params = swiper.params.mousewheel;\n\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n\n let target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n const data = normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) return true;\n if (params.invert) delta = -delta; // Get the scroll positions\n\n let positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n\n if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n }; // Keep the most recent events\n\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent); // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n animateSlider(newEvent);\n }\n } else {\n animateSlider(newEvent);\n } // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n\n\n if (releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;\n\n if (!ignoreWheelEvents) {\n lastEventBeforeSnap = undefined;\n\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode.sticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(timeout);\n timeout = undefined;\n\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n timeout = nextTick(() => {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n timeout = nextTick(() => {\n const snapToThreshold = 0.5;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n } // Emit event\n\n\n if (!ignoreWheelEvents) emit('scroll', e); // Stop autoplay\n\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); // Return page scroll on edge positions\n\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n }\n\n function events(method) {\n let target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n target[method]('mouseenter', handleMouseEnter);\n target[method]('mouseleave', handleMouseLeave);\n target[method]('wheel', handle);\n }\n\n function enable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener('wheel', handle);\n return true;\n }\n\n if (swiper.mousewheel.enabled) return false;\n events('on');\n swiper.mousewheel.enabled = true;\n return true;\n }\n\n function disable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, handle);\n return true;\n }\n\n if (!swiper.mousewheel.enabled) return false;\n events('off');\n swiper.mousewheel.enabled = false;\n return true;\n }\n\n on('init', () => {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n disable();\n }\n\n if (swiper.params.mousewheel.enabled) enable();\n });\n on('destroy', () => {\n if (swiper.params.cssMode) {\n enable();\n }\n\n if (swiper.mousewheel.enabled) disable();\n });\n Object.assign(swiper.mousewheel, {\n enable,\n disable\n });\n}","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nimport $ from '../../shared/dom.js';\nexport default function Navigation({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock'\n }\n });\n swiper.navigation = {\n nextEl: null,\n $nextEl: null,\n prevEl: null,\n $prevEl: null\n };\n\n function getEl(el) {\n let $el;\n\n if (el) {\n $el = $(el);\n\n if (swiper.params.uniqueNavElements && typeof el === 'string' && $el.length > 1 && swiper.$el.find(el).length === 1) {\n $el = swiper.$el.find(el);\n }\n }\n\n return $el;\n }\n\n function toggleEl($el, disabled) {\n const params = swiper.params.navigation;\n\n if ($el && $el.length > 0) {\n $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n }\n\n function update() {\n // Update Navigation Buttons\n if (swiper.params.loop) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n toggleEl($prevEl, swiper.isBeginning);\n toggleEl($nextEl, swiper.isEnd);\n }\n\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n }\n\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n }\n\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n const $nextEl = getEl(params.nextEl);\n const $prevEl = getEl(params.prevEl);\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', onPrevClick);\n }\n\n Object.assign(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n\n on('init', () => {\n init();\n update();\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n });\n on('click', (_s, e) => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n const targetEl = e.target;\n\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n });\n Object.assign(swiper.navigation, {\n update,\n init,\n destroy\n });\n}","import $ from '../../shared/dom.js';\nimport classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Pagination({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`\n }\n });\n swiper.pagination = {\n el: null,\n $el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n }\n\n function setSideBullets($bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n $bulletEl[position]().addClass(`${bulletActiveClass}-${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`);\n }\n\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el; // Current/Total\n\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n\n if (params.dynamicBullets) {\n bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${bulletSize * (params.dynamicMainBullets + 4)}px`);\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n dynamicBulletIndex += current - swiper.previousIndex;\n\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = current - dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`).join(' '));\n\n if ($el.length > 1) {\n bullets.each(bullet => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (bulletIndex === firstIndex) {\n setSideBullets($bullet, 'prev');\n }\n\n if (bulletIndex === lastIndex) {\n setSideBullets($bullet, 'next');\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n }\n }\n\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n let progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n emit('paginationRender', $el[0]);\n } else {\n emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n emit('paginationRender', swiper.pagination.$el[0]);\n }\n }\n\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper\n\n if ($el.length > 1) {\n $el = $el.filter(el => {\n if ($(el).parents('.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n $el.addClass(params.modifierClass + swiper.params.direction);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Object.assign(swiper.pagination, {\n $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n $el.removeClass(params.modifierClass + swiper.params.direction);\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n\n on('init', () => {\n init();\n render();\n update();\n });\n on('activeIndexChange', () => {\n if (swiper.params.loop) {\n update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n if (!swiper.params.loop) {\n update();\n }\n });\n on('slidesLengthChange', () => {\n if (swiper.params.loop) {\n render();\n update();\n }\n });\n on('snapGridLengthChange', () => {\n if (!swiper.params.loop) {\n render();\n update();\n }\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.pagination;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const {\n $el\n } = swiper.pagination;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n\n $el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n });\n Object.assign(swiper.pagination, {\n render,\n update,\n init,\n destroy\n });\n}","import $ from '../../shared/dom.js';\nexport default function Parallax({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n parallax: {\n enabled: false\n }\n });\n\n const setTransform = (el, progress) => {\n const {\n rtl\n } = swiper;\n const $el = $(el);\n const rtlFactor = rtl ? -1 : 1;\n const p = $el.attr('data-swiper-parallax') || '0';\n let x = $el.attr('data-swiper-parallax-x');\n let y = $el.attr('data-swiper-parallax-y');\n const scale = $el.attr('data-swiper-parallax-scale');\n const opacity = $el.attr('data-swiper-parallax-opacity');\n\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n\n if (x.indexOf('%') >= 0) {\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n } else {\n x = `${x * progress * rtlFactor}px`;\n }\n\n if (y.indexOf('%') >= 0) {\n y = `${parseInt(y, 10) * progress}%`;\n } else {\n y = `${y * progress}px`;\n }\n\n if (typeof opacity !== 'undefined' && opacity !== null) {\n const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n $el[0].style.opacity = currentOpacity;\n }\n\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform(`translate3d(${x}, ${y}, 0px)`);\n } else {\n const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n $el.transform(`translate3d(${x}, ${y}, 0px) scale(${currentScale})`);\n }\n };\n\n const setTranslate = () => {\n const {\n $el,\n slides,\n progress,\n snapGrid\n } = swiper;\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(el => {\n setTransform(el, progress);\n });\n slides.each((slideEl, slideIndex) => {\n let slideProgress = slideEl.progress;\n\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(el => {\n setTransform(el, slideProgress);\n });\n });\n };\n\n const setTransition = (duration = swiper.params.speed) => {\n const {\n $el\n } = swiper;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(parallaxEl => {\n const $parallaxEl = $(parallaxEl);\n let parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n $parallaxEl.transition(parallaxDuration);\n });\n };\n\n on('beforeInit', () => {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n });\n on('init', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTranslate', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTransition', (_swiper, duration) => {\n if (!swiper.params.parallax.enabled) return;\n setTransition(duration);\n });\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Scrollbar({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const document = getDocument();\n let isTouched = false;\n let timeout = null;\n let dragTimeout = null;\n let dragStartPos;\n let dragSize;\n let trackSize;\n let divider;\n extendParams({\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag'\n }\n });\n swiper.scrollbar = {\n el: null,\n dragEl: null,\n $el: null,\n $dragEl: null\n };\n\n function setTranslate() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar,\n rtlTranslate: rtl,\n progress\n } = swiper;\n const {\n $dragEl,\n $el\n } = scrollbar;\n const params = swiper.params.scrollbar;\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n\n if (rtl) {\n newPos = -newPos;\n\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n\n if (swiper.isHorizontal()) {\n $dragEl.transform(`translate3d(${newPos}px, 0, 0)`);\n $dragEl[0].style.width = `${newSize}px`;\n } else {\n $dragEl.transform(`translate3d(0px, ${newPos}px, 0)`);\n $dragEl[0].style.height = `${newSize}px`;\n }\n\n if (params.hide) {\n clearTimeout(timeout);\n $el[0].style.opacity = 1;\n timeout = setTimeout(() => {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n }\n\n function setTransition(duration) {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n }\n\n function updateSize() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar\n } = swiper;\n const {\n $dragEl,\n $el\n } = scrollbar;\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = `${dragSize}px`;\n } else {\n $dragEl[0].style.height = `${dragSize}px`;\n }\n\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.$el[swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n }\n }\n\n function getPointerPosition(e) {\n if (swiper.isHorizontal()) {\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientX : e.clientX;\n }\n\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientY : e.clientY;\n }\n\n function setDragPosition(e) {\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n $el\n } = scrollbar;\n let positionRatio;\n positionRatio = (getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n function onDragStart(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n $wrapperEl\n } = swiper;\n const {\n $el,\n $dragEl\n } = scrollbar;\n isTouched = true;\n dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n setDragPosition(e);\n clearTimeout(dragTimeout);\n $el.transition(0);\n\n if (params.hide) {\n $el.css('opacity', 1);\n }\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\n }\n\n emit('scrollbarDragStart', e);\n }\n\n function onDragMove(e) {\n const {\n scrollbar,\n $wrapperEl\n } = swiper;\n const {\n $el,\n $dragEl\n } = scrollbar;\n if (!isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n emit('scrollbarDragMove', e);\n }\n\n function onDragEnd(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n $wrapperEl\n } = swiper;\n const {\n $el\n } = scrollbar;\n if (!isTouched) return;\n isTouched = false;\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', '');\n $wrapperEl.transition('');\n }\n\n if (params.hide) {\n clearTimeout(dragTimeout);\n dragTimeout = nextTick(() => {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n\n emit('scrollbarDragEnd', e);\n\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n }\n\n function events(method) {\n const {\n scrollbar,\n touchEventsTouch,\n touchEventsDesktop,\n params,\n support\n } = swiper;\n const $el = scrollbar.$el;\n const target = $el[0];\n const activeListener = support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n const passiveListener = support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n\n if (!support.touch) {\n target[eventMethod](touchEventsDesktop.start, onDragStart, activeListener);\n document[eventMethod](touchEventsDesktop.move, onDragMove, activeListener);\n document[eventMethod](touchEventsDesktop.end, onDragEnd, passiveListener);\n } else {\n target[eventMethod](touchEventsTouch.start, onDragStart, activeListener);\n target[eventMethod](touchEventsTouch.move, onDragMove, activeListener);\n target[eventMethod](touchEventsTouch.end, onDragEnd, passiveListener);\n }\n }\n\n function enableDraggable() {\n if (!swiper.params.scrollbar.el) return;\n events('on');\n }\n\n function disableDraggable() {\n if (!swiper.params.scrollbar.el) return;\n events('off');\n }\n\n function init() {\n const {\n scrollbar,\n $el: $swiperEl\n } = swiper;\n swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n el: 'swiper-scrollbar'\n });\n const params = swiper.params.scrollbar;\n if (!params.el) return;\n let $el = $(params.el);\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n\n let $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`);\n\n if ($dragEl.length === 0) {\n $dragEl = $(`
`);\n $el.append($dragEl);\n }\n\n Object.assign(scrollbar, {\n $el,\n el: $el[0],\n $dragEl,\n dragEl: $dragEl[0]\n });\n\n if (params.draggable) {\n enableDraggable();\n }\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n }\n\n function destroy() {\n disableDraggable();\n }\n\n on('init', () => {\n init();\n updateSize();\n setTranslate();\n });\n on('update resize observerUpdate lock unlock', () => {\n updateSize();\n });\n on('setTranslate', () => {\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n setTransition(duration);\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.scrollbar;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n });\n on('destroy', () => {\n destroy();\n });\n Object.assign(swiper.scrollbar, {\n updateSize,\n setTranslate,\n init,\n destroy\n });\n}","import { isObject } from '../../shared/utils.js';\nimport $ from '../../shared/dom.js';\nexport default function Thumb({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-thumbs'\n }\n });\n let initialized = false;\n let swiperCreated = false;\n swiper.thumbs = {\n swiper: null\n };\n\n function onThumbClick() {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n\n if (swiper.params.loop) {\n let currentIndex = swiper.activeIndex;\n\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n\n const prevIndex = swiper.slides.eq(currentIndex).prevAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n const nextIndex = swiper.slides.eq(currentIndex).nextAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex;\n }\n\n swiper.slideTo(slideToIndex);\n }\n\n function init() {\n const {\n thumbs: thumbsParams\n } = swiper.params;\n if (initialized) return false;\n initialized = true;\n const SwiperClass = swiper.constructor;\n\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Object.assign(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n Object.assign(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n } else if (isObject(thumbsParams.swiper)) {\n const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n Object.assign(thumbsSwiperParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n swiperCreated = true;\n }\n\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', onThumbClick);\n return true;\n }\n\n function update(initial) {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n let currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix(); // eslint-disable-next-line\n\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n } // Find actual thumbs index to slide to\n\n\n const prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n const nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n\n if (typeof prevThumbsIndex === 'undefined') {\n newThumbsIndex = nextThumbsIndex;\n } else if (typeof nextThumbsIndex === 'undefined') {\n newThumbsIndex = prevThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = thumbsSwiper.params.slidesPerGroup > 1 ? nextThumbsIndex : currentThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = nextThumbsIndex;\n } else {\n newThumbsIndex = prevThumbsIndex;\n }\n\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) {// newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n } // Activate thumbs\n\n\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children(`[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).addClass(thumbActiveClass);\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + i).addClass(thumbActiveClass);\n }\n }\n }\n\n on('beforeInit', () => {\n const {\n thumbs\n } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n init();\n update(true);\n });\n on('slideChange update resize observerUpdate', () => {\n if (!swiper.thumbs.swiper) return;\n update();\n });\n on('setTransition', (_s, duration) => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n thumbsSwiper.setTransition(duration);\n });\n on('beforeDestroy', () => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n\n if (swiperCreated && thumbsSwiper) {\n thumbsSwiper.destroy();\n }\n });\n Object.assign(swiper.thumbs, {\n init,\n update\n });\n}","import $ from '../../shared/dom.js';\nimport { setCSSProperty } from '../../shared/utils.js';\nexport default function Virtual({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n renderExternalUpdate: true,\n addSlidesBefore: 0,\n addSlidesAfter: 0\n }\n });\n swiper.virtual = {\n cache: {},\n from: undefined,\n to: undefined,\n slides: [],\n offset: 0,\n slidesGrid: []\n };\n\n function renderSlide(slide, index) {\n const params = swiper.params.virtual;\n\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n\n const $slideEl = params.renderSlide ? $(params.renderSlide.call(swiper, slide, index)) : $(`
${slide}
`);\n if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\n if (params.cache) swiper.virtual.cache[index] = $slideEl;\n return $slideEl;\n }\n\n function update(force) {\n const {\n slidesPerView,\n slidesPerGroup,\n centeredSlides\n } = swiper.params;\n const {\n addSlidesBefore,\n addSlidesAfter\n } = swiper.params.virtual;\n const {\n from: previousFrom,\n to: previousTo,\n slides,\n slidesGrid: previousSlidesGrid,\n offset: previousOffset\n } = swiper.virtual;\n swiper.updateActiveIndex();\n const activeIndex = swiper.activeIndex || 0;\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n let slidesAfter;\n let slidesBefore;\n\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n slidesBefore = slidesPerGroup + addSlidesBefore;\n }\n\n const from = Math.max((activeIndex || 0) - slidesBefore, 0);\n const to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n const offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n Object.assign(swiper.virtual, {\n from,\n to,\n offset,\n slidesGrid: swiper.slidesGrid\n });\n\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n }\n\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.css(offsetProp, `${offset}px`);\n }\n\n swiper.updateProgress();\n return;\n }\n\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset,\n from,\n to,\n slides: function getSlides() {\n const slidesToRender = [];\n\n for (let i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n\n return slidesToRender;\n }()\n });\n\n if (swiper.params.virtual.renderExternalUpdate) {\n onRendered();\n }\n\n return;\n }\n\n const prependIndexes = [];\n const appendIndexes = [];\n\n if (force) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}`).remove();\n } else {\n for (let i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${i}\"]`).remove();\n }\n }\n }\n\n for (let i = 0; i < slides.length; i += 1) {\n if (i >= from && i <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(i);\n } else {\n if (i > previousTo) appendIndexes.push(i);\n if (i < previousFrom) prependIndexes.push(i);\n }\n }\n }\n\n appendIndexes.forEach(index => {\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\n });\n prependIndexes.sort((a, b) => b - a).forEach(index => {\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, `${offset}px`);\n onRendered();\n }\n\n function appendSlide(slides) {\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n\n update(true);\n }\n\n function prependSlide(slides) {\n const activeIndex = swiper.activeIndex;\n let newActiveIndex = activeIndex + 1;\n let numberOfNewSlides = 1;\n\n if (Array.isArray(slides)) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n\n if (swiper.params.virtual.cache) {\n const cache = swiper.virtual.cache;\n const newCache = {};\n Object.keys(cache).forEach(cachedIndex => {\n const $cachedEl = cache[cachedIndex];\n const cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\n\n if (cachedElIndex) {\n $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + 1);\n }\n\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n\n update(true);\n swiper.slideTo(newActiveIndex, 0);\n }\n\n function removeSlide(slidesIndexes) {\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n let activeIndex = swiper.activeIndex;\n\n if (Array.isArray(slidesIndexes)) {\n for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n\n update(true);\n swiper.slideTo(activeIndex, 0);\n }\n\n function removeAllSlides() {\n swiper.virtual.slides = [];\n\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n\n update(true);\n swiper.slideTo(0, 0);\n }\n\n on('beforeInit', () => {\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.slides = swiper.params.virtual.slides;\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n\n if (!swiper.params.initialSlide) {\n update();\n }\n });\n on('setTranslate', () => {\n if (!swiper.params.virtual.enabled) return;\n update();\n });\n on('init update resize', () => {\n if (!swiper.params.virtual.enabled) return;\n\n if (swiper.params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);\n }\n });\n Object.assign(swiper.virtual, {\n appendSlide,\n prependSlide,\n removeSlide,\n removeAllSlides,\n update\n });\n}","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { getTranslate } from '../../shared/utils.js';\nexport default function Zoom({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const window = getWindow();\n extendParams({\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed'\n }\n });\n swiper.zoom = {\n enabled: false\n };\n let currentScale = 1;\n let isScaling = false;\n let gesturesEnabled;\n let fakeGestureTouched;\n let fakeGestureMoved;\n const gesture = {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3\n };\n const image = {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {}\n };\n const velocity = {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n };\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get() {\n return scale;\n },\n\n set(value) {\n if (scale !== value) {\n const imageEl = gesture.$imageEl ? gesture.$imageEl[0] : undefined;\n const slideEl = gesture.$slideEl ? gesture.$slideEl[0] : undefined;\n emit('zoomChange', value, imageEl, slideEl);\n }\n\n scale = value;\n }\n\n });\n\n function getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) return 1;\n const x1 = e.targetTouches[0].pageX;\n const y1 = e.targetTouches[0].pageY;\n const x2 = e.targetTouches[1].pageX;\n const y2 = e.targetTouches[1].pageY;\n const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);\n return distance;\n } // Events\n\n\n function onGestureStart(e) {\n const support = swiper.support;\n const params = swiper.params.zoom;\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n\n if (!support.gestures) {\n if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) {\n return;\n }\n\n fakeGestureTouched = true;\n gesture.scaleStart = getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $(e.target).closest(`.${swiper.params.slideClass}`);\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n\n if (gesture.$imageEl) {\n gesture.$imageEl.transition(0);\n }\n\n isScaling = true;\n }\n\n function onGestureChange(e) {\n const support = swiper.support;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n\n if (!support.gestures) {\n if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) {\n return;\n }\n\n fakeGestureMoved = true;\n gesture.scaleMove = getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\n if (e.type === 'gesturechange') onGestureStart(e);\n return;\n }\n\n if (support.gestures) {\n zoom.scale = e.scale * currentScale;\n } else {\n zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;\n }\n\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;\n }\n\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;\n }\n\n gesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n }\n\n function onGestureEnd(e) {\n const device = swiper.device;\n const support = swiper.support;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n\n if (!support.gestures) {\n if (!fakeGestureTouched || !fakeGestureMoved) {\n return;\n }\n\n if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2 && !device.android) {\n return;\n }\n\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl.transition(swiper.params.speed).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n currentScale = zoom.scale;\n isScaling = false;\n if (zoom.scale === 1) gesture.$slideEl = undefined;\n }\n\n function onTouchStart(e) {\n const device = swiper.device;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (image.isTouched) return;\n if (device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n }\n\n function onTouchMove(e) {\n const zoom = swiper.zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) return;\n\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n } // Define if we need image drag\n\n\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (!image.isMoved && !isScaling) {\n if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n image.isTouched = false;\n return;\n }\n\n if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n image.isTouched = false;\n return;\n }\n }\n\n if (e.cancelable) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n image.isMoved = true;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX;\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY;\n\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;\n }\n\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;\n }\n\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;\n }\n\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;\n } // Velocity\n\n\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n gesture.$imageWrapEl.transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n }\n\n function onTouchEnd() {\n const zoom = swiper.zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY; // Fix duration\n\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY; // Define if we need image drag\n\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n gesture.$imageWrapEl.transition(momentumDuration).transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n }\n\n function onTransitionEnd() {\n const zoom = swiper.zoom;\n\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n if (gesture.$imageEl) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n }\n\n if (gesture.$imageWrapEl) {\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n }\n\n zoom.scale = 1;\n currentScale = 1;\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n }\n\n function zoomIn(e) {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n\n if (!gesture.$slideEl) {\n if (e && e.target) {\n gesture.$slideEl = $(e.target).closest(`.${swiper.params.slideClass}`);\n }\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n }\n\n gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.touchAction = 'none';\n }\n\n gesture.$slideEl.addClass(`${params.zoomedSlideClass}`);\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left + window.scrollX;\n offsetY = gesture.$slideEl.offset().top + window.scrollY;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n\n gesture.$imageWrapEl.transition(300).transform(`translate3d(${translateX}px, ${translateY}px,0)`);\n gesture.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n }\n\n function zoomOut() {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n\n gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.style.touchAction = '';\n }\n\n zoom.scale = 1;\n currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n gesture.$slideEl.removeClass(`${params.zoomedSlideClass}`);\n gesture.$slideEl = undefined;\n } // Toggle Zoom\n\n\n function zoomToggle(e) {\n const zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoomOut();\n } else {\n // Zoom In\n zoomIn(e);\n }\n }\n\n function getListeners() {\n const support = swiper.support;\n const passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n const activeListenerWithCapture = support.passiveListener ? {\n passive: false,\n capture: true\n } : true;\n return {\n passiveListener,\n activeListenerWithCapture\n };\n }\n\n function getSlideSelector() {\n return `.${swiper.params.slideClass}`;\n }\n\n function toggleGestures(method) {\n const {\n passiveListener\n } = getListeners();\n const slideSelector = getSlideSelector();\n swiper.$wrapperEl[method]('gesturestart', slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl[method]('gesturechange', slideSelector, onGestureChange, passiveListener);\n swiper.$wrapperEl[method]('gestureend', slideSelector, onGestureEnd, passiveListener);\n }\n\n function enableGestures() {\n if (gesturesEnabled) return;\n gesturesEnabled = true;\n toggleGestures('on');\n }\n\n function disableGestures() {\n if (!gesturesEnabled) return;\n gesturesEnabled = false;\n toggleGestures('off');\n } // Attach/Detach Events\n\n\n function enable() {\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n const support = swiper.support;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n const slideSelector = getSlideSelector(); // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.on(swiper.touchEvents.start, enableGestures, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.end, disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.on(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, onTouchMove, activeListenerWithCapture);\n }\n\n function disable() {\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n const support = swiper.support;\n zoom.enabled = false;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n const slideSelector = getSlideSelector(); // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.off(swiper.touchEvents.start, enableGestures, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.end, disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.off(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, onTouchMove, activeListenerWithCapture);\n }\n\n on('init', () => {\n if (swiper.params.zoom.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n disable();\n });\n on('touchStart', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchStart(e);\n });\n on('touchEnd', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchEnd(e);\n });\n on('doubleTap', (_s, e) => {\n if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n zoomToggle(e);\n }\n });\n on('transitionEnd', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n onTransitionEnd();\n }\n });\n on('slideChange', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n onTransitionEnd();\n }\n });\n Object.assign(swiper.zoom, {\n enable,\n disable,\n in: zoomIn,\n out: zoomOut,\n toggle: zoomToggle\n });\n}","export default function classesToSelector(classes = '') {\n return `.${classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}","import { getDocument } from 'ssr-window';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n const document = getDocument();\n\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = swiper.$el.children(`.${checkProps[key]}`)[0];\n\n if (!element) {\n element = document.createElement('div');\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n\n return params;\n}","import $ from './dom.js';\nexport default function createShadow(params, $slideEl, side) {\n const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}`;\n const $shadowContainer = params.transformEl ? $slideEl.find(params.transformEl) : $slideEl;\n let $shadowEl = $shadowContainer.children(`.${shadowClass}`);\n\n if (!$shadowEl.length) {\n $shadowEl = $(`
`);\n $shadowContainer.append($shadowEl);\n }\n\n return $shadowEl;\n}","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove\n};\nObject.keys(Methods).forEach(methodName => {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","export default function effectInit(params) {\n const {\n effect,\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams,\n perspective\n } = params;\n on('beforeInit', () => {\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n\n if (perspective && perspective()) {\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n }\n\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on('setTranslate', () => {\n if (swiper.params.effect !== effect) return;\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n if (swiper.params.effect !== effect) return;\n setTransition(duration);\n });\n}","export default function effectTarget(effectParams, $slideEl) {\n if (effectParams.transformEl) {\n return $slideEl.find(effectParams.transformEl).css({\n 'backface-visibility': 'hidden',\n '-webkit-backface-visibility': 'hidden'\n });\n }\n\n return $slideEl;\n}","export default function effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl,\n allSlides\n}) {\n const {\n slides,\n activeIndex,\n $wrapperEl\n } = swiper;\n\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n let $transitionEndTarget;\n\n if (allSlides) {\n $transitionEndTarget = transformEl ? slides.find(transformEl) : slides;\n } else {\n $transitionEndTarget = transformEl ? slides.eq(activeIndex).find(transformEl) : slides.eq(activeIndex);\n }\n\n $transitionEndTarget.transitionEnd(() => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n}","import { getWindow } from 'ssr-window';\nlet browser;\n\nfunction calcBrowser() {\n const window = getWindow();\n\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\n\nfunction calcDevice({\n userAgent\n} = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides = {}) {\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\n}\n\nexport { getDevice };","import { getWindow, getDocument } from 'ssr-window';\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n let supportsPassive = false;\n\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n }\n\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll({\n swiper,\n targetPosition,\n side\n}) {\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n const animate = () => {\n time = new Date().getTime();\n\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n}\n\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty };","/**\n * Swiper 7.0.6\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2021 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: September 16, 2021\n */\n\nexport { default as Swiper, default } from './core/core.js';\nexport { default as Virtual } from './modules/virtual/virtual.js';\nexport { default as Keyboard } from './modules/keyboard/keyboard.js';\nexport { default as Mousewheel } from './modules/mousewheel/mousewheel.js';\nexport { default as Navigation } from './modules/navigation/navigation.js';\nexport { default as Pagination } from './modules/pagination/pagination.js';\nexport { default as Scrollbar } from './modules/scrollbar/scrollbar.js';\nexport { default as Parallax } from './modules/parallax/parallax.js';\nexport { default as Zoom } from './modules/zoom/zoom.js';\nexport { default as Lazy } from './modules/lazy/lazy.js';\nexport { default as Controller } from './modules/controller/controller.js';\nexport { default as A11y } from './modules/a11y/a11y.js';\nexport { default as History } from './modules/history/history.js';\nexport { default as HashNavigation } from './modules/hash-navigation/hash-navigation.js';\nexport { default as Autoplay } from './modules/autoplay/autoplay.js';\nexport { default as Thumbs } from './modules/thumbs/thumbs.js';\nexport { default as FreeMode } from './modules/free-mode/free-mode.js';\nexport { default as Grid } from './modules/grid/grid.js';\nexport { default as Manipulation } from './modules/manipulation/manipulation.js';\nexport { default as EffectFade } from './modules/effect-fade/effect-fade.js';\nexport { default as EffectCube } from './modules/effect-cube/effect-cube.js';\nexport { default as EffectFlip } from './modules/effect-flip/effect-flip.js';\nexport { default as EffectCoverflow } from './modules/effect-coverflow/effect-coverflow.js';\nexport { default as EffectCreative } from './modules/effect-creative/effect-creative.js';\nexport { default as EffectCards } from './modules/effect-cards/effect-cards.js';","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl + \"../\";","// JavaScript\r\nimport './scripts/main'\r\n\r\n// Styles\r\nimport './assets/styles/main.scss'\r\n\r\n// Favicon\r\nimport './assets/images/favicon.ico'\r\n\r\n// Web App Manifest\r\nimport './site.webmanifest'\r\n"],"names":["Swiper","Navigation","Pagination","EffectFade","use","loop","slidesPerView","spaceBetween","breakpoints","speed","effect","fadeEffect","crossFade","pagination","el","clickable","navigation","nextEl","prevEl","sections","document","querySelectorAll","window","addEventListener","navHighlighter","scrollY","pageYOffset","forEach","current","sectionHeight","offsetHeight","sectionTop","getBoundingClientRect","top","sectionId","id","querySelector","classList","add","remove","menuItems","submenus","i","e","value","parentElement","stopPropagation","length","toggle","contains","floatingInputs","producttabs","topProducttabs","productheader","productAccordions","getWindow","getDocument","makeReactive","obj","proto","__proto__","Object","defineProperty","get","set","Dom7","Array","constructor","items","arrayFlat","arr","res","isArray","push","arrayFilter","callback","prototype","filter","call","arrayUnique","uniqueArray","indexOf","toCamelCase","string","toLowerCase","replace","match","group","toUpperCase","qsa","selector","context","a","$","html","trim","toCreate","tempParent","createElement","innerHTML","childNodes","nodeType","fn","addClass","classes","classNames","map","c","split","removeClass","toggleClass","className","hasClass","attr","attrs","arguments","getAttribute","undefined","setAttribute","attrName","removeAttr","removeAttribute","prop","props","propName","data","key","dom7ElementDataStorage","dataKey","removeData","dataset","attributes","name","parseFloat","val","multiple","nodeName","values","selectedOptions","j","options","selected","transform","style","transition","duration","transitionDuration","on","args","eventType","targetSelector","listener","capture","handleLiveEvent","target","eventData","dom7EventData","unshift","is","apply","parents","k","handleEvent","events","event","dom7Listeners","proxyListener","dom7LiveListeners","off","handlers","handler","removeEventListener","splice","dom7proxy","once","dom","eventName","onceHandler","eventArgs","trigger","CustomEvent","evt","detail","bubbles","cancelable","dataIndex","dispatchEvent","transitionEnd","fireCallBack","animationEnd","width","innerWidth","css","outerWidth","includeMargins","styles","offsetWidth","getPropertyValue","height","innerHeight","outerHeight","offset","box","body","clientTop","clientLeft","scrollTop","scrollLeft","scrollX","left","hide","display","show","getComputedStyle","each","index","result","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","els","newChild","tempDiv","firstChild","appendChild","appendTo","parent","prepend","insertBefore","prependTo","before","parentNode","cloneNode","insertAfter","after","nextSibling","next","nextElementSibling","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","siblings","closest","find","foundElements","found","children","removeChild","detach","toAdd","empty","scrollTo","easing","animate","currentTop","currentLeft","maxTop","maxLeft","newTop","newLeft","animateTop","animateLeft","scrollHeight","Math","max","min","scrollWidth","startTime","render","time","Date","getTime","progress","easeProgress","cos","PI","done","requestAnimationFrame","initialProps","initialParams","assign","params","elements","animating","que","easingProgress","stop","frameId","cancelAnimationFrame","element","dom7AnimateInstance","complete","shift","initialFullValue","initialValue","unit","finalValue","finalFullValue","container","keys","currentValue","elementsDone","propsDone","began","begin","animateInstance","noTrigger","shortcut","eventHandler","click","blur","focus","focusin","focusout","keyup","keydown","keypress","submit","change","mousedown","mousemove","mouseup","mouseenter","mouseleave","mouseout","mouseover","touchstart","touchend","touchmove","resize","scroll","isObject","extend","src","ssrDocument","activeElement","getElementById","createEvent","initEvent","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","doc","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","Image","screen","setTimeout","clearTimeout","matchMedia","win","getBreakpoint","base","containerEl","breakpoint","currentHeight","clientHeight","points","point","minRatio","substr","sort","b","parseInt","clientWidth","setBreakpoint","isGridEnabled","swiper","grid","rows","activeIndex","initialized","loopedSlides","$el","breakpointsBase","currentBreakpoint","breakpointOnlyParams","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","enabled","containerModifierClass","emitContainerClasses","fill","directionChanged","direction","needsReLoop","changeDirection","isEnabled","allowTouchMove","allowSlideNext","allowSlidePrev","disable","enable","emit","loopDestroy","loopCreate","updateSlides","slideTo","checkOverflow","isLocked","wasLocked","slidesOffsetBefore","lastSlideIndex","slides","lastSlideRightEdge","slidesGrid","slidesSizesGrid","size","snapGrid","isEnd","prepareClasses","entries","prefix","resultClasses","item","addClasses","rtl","device","support","suffixes","touch","freeMode","autoHeight","android","ios","cssMode","centeredSlides","join","removeClasses","now","deleteProps","getSupport","getDevice","getBrowser","Resize","Observer","eventsEmitter","update","translate","slide","grabCursor","images","defaults","moduleExtendParams","prototypes","extendedDefaults","toString","slice","swipers","newParams","__swiper__","browser","eventsListeners","eventsAnyListeners","modules","__modules__","allModulesParams","mod","extendParams","bind","swiperParams","passedParams","onAny","isHorizontal","isVertical","realIndex","isBeginning","previousTranslate","velocity","touchEvents","desktop","touchEventsTouch","start","move","end","cancel","touchEventsDesktop","simulateTouch","touchEventsData","isTouched","isMoved","allowTouchCallbacks","touchStartTime","isScrolling","currentTranslate","startTranslate","allowThresholdMove","focusableElements","lastClickTime","clickTimeout","velocities","allowMomentumBounce","isTouchEvent","startMoving","allowClick","touches","startX","startY","currentX","currentY","diff","imagesToLoad","imagesLoaded","init","setGrabCursor","unsetGrabCursor","setProgress","minTranslate","maxTranslate","translateTo","updateActiveIndex","updateSlidesClasses","_emitClasses","cls","getSlideClasses","slideEl","slideClass","emitSlidesClasses","updates","slidesPerViewDynamic","view","exact","swiperSize","spv","slideSize","swiperSlideSize","breakLoop","slideInView","destroyed","updateSize","updateProgress","setTranslate","translateValue","rtlTranslate","newTranslate","translated","updateAutoHeight","watchOverflow","newDirection","needUpdate","currentDirection","mount","mounted","getWrapperSelector","wrapperClass","getWrapper","shadowRoot","$wrapperEl","createElements","wrapper","wrapperEl","dir","wrongRTL","preloadImages","initialSlide","runCallbacksOnInit","attachEvents","destroy","deleteInstance","cleanStyles","detachEvents","slideVisibleClass","slideActiveClass","slideNextClass","slidePrevClass","extendDefaults","newDefaults","installModule","module","m","prototypeGroup","protoMethod","touchEventsTarget","updateOnWindowResize","resizeObserver","nested","preventInteractionOnTransition","url","edgeSwipeDetection","edgeSwipeThreshold","setWrapperSize","virtualTranslate","slidesPerGroup","slidesPerGroupSkip","slidesPerGroupAuto","centeredSlidesBounds","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","touchRatio","touchAngle","shortSwipes","longSwipes","longSwipesRatio","longSwipesMs","followFinger","threshold","touchMoveStopPropagation","touchStartPreventDefault","touchStartForcePreventDefault","touchReleaseOnEdges","uniqueNavElements","resistance","resistanceRatio","watchSlidesProgress","preventClicks","preventClicksPropagation","slideToClickedSlide","updateOnImagesReady","loopAdditionalSlides","loopFillGroupWithBlank","loopPreventsSlide","swipeHandler","noSwiping","noSwipingClass","noSwipingSelector","passiveListeners","slideBlankClass","slideDuplicateActiveClass","slideDuplicateClass","slideDuplicateNextClass","slideDuplicatePrevClass","priority","self","method","__emitterProxy","offAny","eventsArray","onTouchStart","onTouchMove","onTouchEnd","onResize","onClick","onScroll","dummyEventAttached","dummyEventListener","domMethod","swiperMethod","passiveListener","passive","preventDefault","stopImmediatePropagation","autoplay","running","paused","run","newProgress","translatesDiff","nextTick","originalEvent","touchEndTime","timeDiff","updateClickedSlide","swipeDirection","currentPos","stopIndex","groupSize","increment","ratio","isNavButtonTarget","type","targetTouch","targetTouches","changedTouches","pageX","pageY","preventedByNestedSwiper","diffX","diffY","sqrt","atan2","abs","loopFix","getTranslate","setTransition","disableParentSwiper","closestElement","__closestFrom","assignedSlot","getRootNode","$targetEl","which","button","swipingClassHasValue","path","isTargetShadow","iOSEdgeSwipeDetection","iOSEdgeSwipeThreshold","shouldPreventDefault","isContentEditable","moving","cursor","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","isPicture","onload","onerror","currentSrc","blankSlidesNum","blankNode","ceil","prependSlides","appendSlides","newIndex","snapTranslate","slideChanged","moduleParamName","moduleParams","auto","observers","attach","ObserverFunc","MutationObserver","WebkitMutationObserver","observer","mutations","observerUpdate","observe","childList","characterData","observeParents","containerParents","observeSlideChildren","disconnect","resizeHandler","createObserver","ResizeObserver","newWidth","newHeight","contentBoxSize","contentRect","inlineSize","blockSize","removeObserver","unobserve","orientationChangeHandler","slideToLoop","slideNext","slidePrev","slideReset","slideToClosest","runCallbacks","internal","perGroup","_clientLeft","normalize","floor","normalizedTranslate","normalizedSnapGrid","prevSnap","prevSnapIndex","snap","snapIndex","prevIndex","animateCSSModeScroll","initial","Error","indexAsNumber","isValidNumber","isFinite","slideIndex","previousIndex","skip","normalizedGrid","normalizedGridNext","transitionStart","isH","t","isVirtual","virtual","scrollSnapType","smoothScroll","targetPosition","side","behavior","onSlideToWrapperTransitionEnd","slideToIndex","clickedIndex","clickedSlide","currentSnap","nextSnap","byController","transitionEmit","step","getSwiperTranslate","axis","x","y","z","translateBounds","onTranslateToWrapperTransitionEnd","updateSlidesOffset","updateSlidesProgress","newActiveIndex","previousRealIndex","previousSnapIndex","activeSlides","getSlideByIndex","visibleSlides","slideFound","multiplier","wasBeginning","wasEnd","Number","isNaN","setCSSProperty","getDirectionLabel","property","getDirectionPropertyValue","node","label","previousSlidesLength","slidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","virtualSize","marginLeft","marginBottom","marginTop","marginRight","gridEnabled","initSlides","shouldResetSlideSize","updateSlide","slideStyles","currentTransform","currentWebKitTransform","webkitTransform","paddingLeft","paddingRight","boxSizing","updateWrapperSize","newSlidesGrid","slidesGridItem","_","allSlidesSize","slideSizeValue","maxSnap","allSlidesOffset","addToSnapGrid","addToSlidesGrid","v","activeSlide","nextSlide","prevSlide","swiperSlideOffset","offsetLeft","offsetTop","offsetCenter","visibleSlidesIndexes","slideOffset","slideProgress","slideBefore","slideAfter","isVisible","classesToSelector","A11y","a11y","notificationClass","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","slideLabelMessage","containerMessage","containerRoleDescriptionMessage","itemRoleDescriptionMessage","slideRole","liveRegion","notify","message","notification","getRandomNumber","randomChar","round","random","repeat","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElControls","controls","addElLabel","addElId","addElLive","live","disableEl","enableEl","onEnterOrSpaceKey","keyCode","$nextEl","$prevEl","bulletClass","updateNavigation","hasPagination","bullets","updatePagination","bulletEl","$bulletEl","renderBullet","initNavEl","wrapperId","tagName","$containerEl","$slideEl","ariaLabelMessage","Autoplay","timeout","delay","waitForTransition","disableOnInteraction","stopOnLastSlide","reverseDirection","pauseOnMouseEnter","$activeSlideEl","autoplayResult","pause","onTransitionEnd","onVisibilityChange","visibilityState","onMouseEnter","onMouseLeave","attachMouseEvents","detachMouseEvents","_s","Controller","controller","control","inverse","by","LinearSpline","binarySearch","maxIndex","minIndex","guess","array","lastIndex","i1","i3","interpolate","x2","getInterpolateFunction","spline","_t","controlled","controlledTranslate","setControlledTranslate","setControlledTransition","removeSpline","createShadow","effectInit","effectTarget","effectVirtualTransitionEnd","EffectCards","cardsEffect","slideShadows","transformEl","tX","tY","tZ","scale","rotate","tXAdd","isSwipeToNext","isSwipeToPrev","subProgress","prevY","scaleString","$shadowEl","opacity","zIndex","$transitionElements","perspective","overwriteParams","EffectCoverflow","coverflowEffect","stretch","depth","modifier","swiperWidth","swiperHeight","center","offsetMultiplier","rotateY","rotateX","translateZ","translateY","translateX","slideTransform","$shadowBeforeEl","$shadowAfterEl","EffectCreative","creativeEffect","limitProgress","shadowPerProgress","progressMultiplier","getTranslateValue","r","custom","translateString","rotateString","opacityString","shadow","shadowOpacity","allSlides","EffectCube","cubeEffect","shadowOffset","shadowScale","wrapperRotate","$cubeShadowEl","slideAngle","tx","ty","tz","shadowBefore","shadowAfter","shadowAngle","sin","scale1","scale2","zFactor","isSafari","isWebView","slideOpacity","EffectFlip","flipEffect","limitRotation","momentum","momentumRatio","momentumBounce","momentumBounceRatio","momentumVelocityRatio","sticky","minimumVelocity","position","lastMoveEvent","pop","velocityEvent","distance","momentumDuration","momentumDistance","newPosition","doBounce","afterBouncePosition","bounceAmount","needsLoopFix","moveDistance","currentSlideSize","Grid","slidesNumberEvenToRows","slidesPerRow","numFullColumns","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","order","HashNavigation","hashNavigation","watchState","onHashChange","newHash","activeSlideHash","setHash","slideHash","History","root","paths","slugify","getPathValues","urlOverride","URL","pathArray","part","total","setHistory","includes","currentState","state","scrollToSlide","slideHistory","setHistoryPopState","Keyboard","keyboard","onlyInViewport","pageUpDown","handle","kc","charCode","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","shiftKey","altKey","ctrlKey","metaKey","inView","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","Lazy","lazy","checkInView","loadPrevNext","loadPrevNextAmount","loadOnTransitionStart","scrollingElement","elementClass","loadingClass","loadedClass","preloaderClass","scrollHandlerAttached","initialImageLoaded","loadInSlide","loadInDuplicate","$images","$imageEl","background","$pictureEl","sourceEl","$source","slideOriginalIndex","originalSlide","duplicatedSlide","load","slideExist","amount","checkInViewOnLoad","$scrollElement","isWindow","scrollElementWidth","scrollElementHeight","appendSlide","prependSlide","addSlide","removeSlide","removeAllSlides","Manipulation","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","slidesIndexes","indexToRemove","Mousewheel","mousewheel","releaseOnEdges","invert","forceToAxis","sensitivity","eventsTarget","thresholdDelta","thresholdTime","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","animateSlider","newEvent","delta","raw","releaseScroll","rtlFactor","positions","sign","prevEvent","ignoreWheelEvents","firstEvent","snapToThreshold","autoplayDisableOnInteraction","createElementIfNotDefined","hideOnClick","disabledClass","hiddenClass","lockClass","getEl","toggleEl","disabled","onPrevClick","onNextClick","targetEl","isHidden","pfx","bulletElement","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","bulletSize","dynamicBulletIndex","isPaginationDisabled","setSideBullets","paginationType","firstIndex","midIndex","suffix","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","progressbarDirection","scaleX","scaleY","paginationHTML","numberOfBullets","Parallax","parallax","setTransform","p","currentOpacity","currentScale","parallaxEl","$parallaxEl","parallaxDuration","_swiper","Scrollbar","dragTimeout","dragStartPos","dragSize","trackSize","divider","scrollbar","draggable","snapOnRelease","dragClass","dragEl","$dragEl","newSize","newPos","getPointerPosition","clientX","clientY","setDragPosition","positionRatio","onDragStart","onDragMove","onDragEnd","activeListener","eventMethod","enableDraggable","disableDraggable","$swiperEl","Thumb","thumbs","multipleActiveThumbs","autoScrollOffset","slideThumbActiveClass","thumbsContainerClass","swiperCreated","onThumbClick","thumbsSwiper","currentIndex","nextIndex","thumbsParams","SwiperClass","thumbsSwiperParams","useOffset","currentThumbsIndex","newThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","Virtual","cache","renderSlide","renderExternal","renderExternalUpdate","addSlidesBefore","addSlidesAfter","from","to","force","previousFrom","previousTo","previousSlidesGrid","previousOffset","slidesAfter","slidesBefore","onRendered","getSlides","slidesToRender","prependIndexes","appendIndexes","numberOfNewSlides","newCache","cachedIndex","$cachedEl","cachedElIndex","Zoom","zoom","maxRatio","containerClass","zoomedSlideClass","isScaling","gesturesEnabled","fakeGestureTouched","fakeGestureMoved","gesture","slideWidth","slideHeight","$imageWrapEl","minX","minY","maxX","maxY","touchesStart","touchesCurrent","prevPositionX","prevPositionY","prevTime","getDistanceBetweenTouches","x1","y1","y2","onGestureStart","gestures","scaleStart","onGestureChange","scaleMove","onGestureEnd","scaledWidth","scaledHeight","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","zoomIn","overflow","touchAction","touchX","touchY","offsetX","offsetY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","zoomOut","zoomToggle","getListeners","activeListenerWithCapture","getSlideSelector","toggleGestures","slideSelector","enableGestures","disableGestures","in","out","checkProps","shadowClass","$shadowContainer","Methods","methodName","writable","overwriteParamsResult","effectParams","eventTriggered","$transitionEndTarget","triggerEvents","calcBrowser","ua","test","deviceCached","calcDevice","platform","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","iPadScreens","os","overrides","calcSupport","documentElement","DocumentTouch","checkPassiveListener","supportsPassive","opts","checkGestures","object","currentStyle","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","o","isNode","HTMLElement","noExtend","nextSource","keysArray","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","varName","varValue","setProperty","startPosition","cssModeFrameID","isOutOfBound","currentPosition","default","Thumbs","FreeMode"],"sourceRoot":""}