{"version":3,"file":"video.js","mappings":";gPAEIA,EAAO,SAAcC,GACvB,OAAO,SAAc,SAAYA,GAAKC,OAAOC,KAAKF,EAAG,UAAUG,SAAS,SAC1E,EAEe,SAASC,EAAsBC,GAI5C,IAHA,IAAIC,EAAgBP,EAAKM,GACrBE,EAAQ,IAAIC,WAAWF,EAAcG,QAEhCC,EAAI,EAAGA,EAAIJ,EAAcG,OAAQC,IACxCH,EAAMG,GAAKJ,EAAcK,WAAWD,GAGtC,OAAOH,CACT,yHCJO,IAAIK,EAAoB,SAA2BC,EAAQC,EAAQC,GACxED,EAAOE,SAAQ,SAAUC,GACvB,IAAK,IAAIC,KAAYL,EAAOM,YAAYF,GACtC,IAAK,IAAIG,KAAYP,EAAOM,YAAYF,GAAWC,GAAW,CAC5D,IAAIG,EAAkBR,EAAOM,YAAYF,GAAWC,GAAUE,GAC9DL,EAASM,EAAiBJ,EAAWC,EAAUE,EACjD,CAEJ,GACF,gOClBIE,EAAmB,qBA4CvB,QA1CiB,SAAoBC,EAASC,GAE5C,GAAI,YAAYC,KAAKD,GACnB,OAAOA,EAIL,SAASC,KAAKF,KAChBA,EAAU,cAAmB,aAAgBG,MAAQ,IAKvD,IAAIC,EAAkC,mBAAf,QACnBC,EAAe,QAAQH,KAAKF,GAG5BM,GAAkB,eAAoB,QAAQJ,KAAKF,GAQvD,GANII,EACFJ,EAAU,IAAI,SAAWA,EAAS,cAAmBD,GAC3C,QAAQG,KAAKF,KACvBA,EAAU,qBAA4B,cAAmB,aAAgBG,MAAQ,GAAIH,IAGnFI,EAAW,CACb,IAAIG,EAAS,IAAIC,IAAIP,EAAaD,GAIlC,OAAIM,EACKC,EAAOJ,KAAKM,MAAMV,IAChBM,EACFE,EAAOJ,KAAKM,MAAMF,EAAOG,SAASxB,QAGpCqB,EAAOJ,IAChB,CAEA,OAAO,qBAA4BH,EAASC,EAC9C,yGCnCA,IAAIU,EAAsB,WACxB,SAASA,IACPC,KAAKC,UAAY,CAAC,CACpB,CAUA,IAAIC,EAASH,EAAOI,UA+FpB,OA7FAD,EAAOE,GAAK,SAAYC,EAAMC,GACvBN,KAAKC,UAAUI,KAClBL,KAAKC,UAAUI,GAAQ,IAGzBL,KAAKC,UAAUI,GAAME,KAAKD,EAC5B,EAWAJ,EAAOM,IAAM,SAAaH,EAAMC,GAC9B,IAAKN,KAAKC,UAAUI,GAClB,OAAO,EAGT,IAAII,EAAQT,KAAKC,UAAUI,GAAMK,QAAQJ,GAWzC,OAFAN,KAAKC,UAAUI,GAAQL,KAAKC,UAAUI,GAAMR,MAAM,GAClDG,KAAKC,UAAUI,GAAMM,OAAOF,EAAO,GAC5BA,GAAS,CAClB,EASAP,EAAOU,QAAU,SAAiBP,GAChC,IAAIQ,EAAYb,KAAKC,UAAUI,GAE/B,GAAKQ,EAQL,GAAyB,IAArBC,UAAUxC,OAGZ,IAFA,IAAIA,EAASuC,EAAUvC,OAEdC,EAAI,EAAGA,EAAID,IAAUC,EAC5BsC,EAAUtC,GAAGwC,KAAKf,KAAMc,UAAU,SAMpC,IAHA,IAAIE,EAAOC,MAAMd,UAAUN,MAAMkB,KAAKD,UAAW,GAC7CI,EAAUL,EAAUvC,OAEf6C,EAAK,EAAGA,EAAKD,IAAWC,EAC/BN,EAAUM,GAAIC,MAAMpB,KAAMgB,EAGhC,EAMAd,EAAOmB,QAAU,WACfrB,KAAKC,UAAY,CAAC,CACpB,EAWAC,EAAOoB,KAAO,SAAcC,GAC1BvB,KAAKI,GAAG,QAAQ,SAAUoB,GACxBD,EAAYhB,KAAKiB,EACnB,GACF,EAEOzB,CACT,CA7G0B,6ECP1B,IAAI0B,EAAS,EAAQ,mCA2DrBC,EAAOC,QAzDmB,SAA6B/C,EAAUgD,GAK/D,YAJ2B,IAAvBA,IACFA,GAAqB,GAGhB,SAAUC,EAAKC,EAAUC,GAE9B,GAAIF,EACFjD,EAASiD,QAKX,GAAIC,EAASE,YAAc,KAAOF,EAASE,YAAc,IAAzD,CACE,IAAIC,EAAQF,EAEZ,GAAIH,EACF,GAAIH,EAAOS,YAAa,CACtB,IAAIC,EAqBd,SAAoBC,QACQ,IAAtBA,IACFA,EAAoB,IAGtB,OAAOA,EAAkBC,cAAcC,MAAM,KAAKC,QAAO,SAAUJ,EAASK,GAC1E,IAAIC,EAAqBD,EAAYF,MAAM,KACvCjC,EAAOoC,EAAmB,GAC1BC,EAAQD,EAAmB,GAE/B,MAAoB,YAAhBpC,EAAKsC,OACAD,EAAMC,OAGRR,CACT,GAAG,QACL,CArCwBS,CAAWd,EAASe,SAAWf,EAASe,QAAQ,iBAE9D,IACEZ,EAAQ,IAAIC,YAAYC,GAASW,OAAOf,EAC1C,CAAE,MAAOgB,GAAI,CACf,MACEd,EAAQe,OAAOC,aAAa7B,MAAM,KAAM,IAAI/C,WAAW0D,IAI3DnD,EAAS,CACPqD,MAAOA,GAGX,MAGArD,EAAS,KAAMmD,EACjB,CACF,qECvCA,IAAIN,EAAS,EAAQ,mCAEjByB,EAAW,EAAQ,oDAEnBC,EAAa,EAAQ,uCAEzBC,EAAUC,YAAc,EAAQ,mDAShC,IAAIC,EAAe,SAAsBT,GACvC,IAAIU,EAAS,CAAC,EAEd,OAAKV,GAILA,EAAQF,OAAOL,MAAM,MAAMzD,SAAQ,SAAU2E,GAC3C,IAAI/C,EAAQ+C,EAAI9C,QAAQ,KACpB+C,EAAMD,EAAI3D,MAAM,EAAGY,GAAOkC,OAAON,cACjCK,EAAQc,EAAI3D,MAAMY,EAAQ,GAAGkC,YAEN,IAAhBY,EAAOE,GAChBF,EAAOE,GAAOf,EACLzB,MAAMyC,QAAQH,EAAOE,IAC9BF,EAAOE,GAAKlD,KAAKmC,GAEjBa,EAAOE,GAAO,CAACF,EAAOE,GAAMf,EAEhC,IACOa,GAhBEA,CAiBX,EA6BA,SAASI,EAAWC,EAAKC,EAASjF,GAChC,IAAIkF,EAASF,EAiBb,OAfIT,EAAWU,IACbjF,EAAWiF,EAEQ,iBAARD,IACTE,EAAS,CACPF,IAAKA,KAITE,EAASZ,EAAS,CAAC,EAAGW,EAAS,CAC7BD,IAAKA,IAITE,EAAOlF,SAAWA,EACXkF,CACT,CAEA,SAASV,EAAUQ,EAAKC,EAASjF,GAE/B,OAAOmF,EADPF,EAAUF,EAAWC,EAAKC,EAASjF,GAErC,CAEA,SAASmF,EAAWF,GAClB,QAAgC,IAArBA,EAAQjF,SACjB,MAAM,IAAIoF,MAAM,6BAGlB,IAAIC,GAAS,EAETrF,EAAW,SAAgBiD,EAAKC,EAAUoC,GACvCD,IACHA,GAAS,EACTJ,EAAQjF,SAASiD,EAAKC,EAAUoC,GAEpC,EAQA,SAASC,IAEP,IAAID,OAAOE,EAQX,GALEF,EADEG,EAAIvC,SACCuC,EAAIvC,SAEJuC,EAAIC,cA6JjB,SAAgBD,GAGd,IACE,GAAyB,aAArBA,EAAIE,aACN,OAAOF,EAAIG,YAGb,IAAIC,EAAwBJ,EAAIG,aAA4D,gBAA7CH,EAAIG,YAAYE,gBAAgBC,SAE/E,GAAyB,KAArBN,EAAIE,eAAwBE,EAC9B,OAAOJ,EAAIG,WAEf,CAAE,MAAOzB,GAAI,CAEb,OAAO,IACT,CA7KiC6B,CAAOP,GAGhCQ,EACF,IACEX,EAAOY,KAAKC,MAAMb,EACpB,CAAE,MAAOnB,GAAI,CAGf,OAAOmB,CACT,CAEA,SAASc,EAAUC,GAQjB,OAPAC,aAAaC,GAEPF,aAAejB,QACnBiB,EAAM,IAAIjB,MAAM,IAAMiB,GAAO,kCAG/BA,EAAIjD,WAAa,EACVpD,EAASqG,EAAKG,EACvB,CAGA,SAASC,IACP,IAAIC,EAAJ,CACA,IAAIC,EACJL,aAAaC,GAIXI,EAFE1B,EAAQ2B,aAAyBpB,IAAfC,EAAIkB,OAEf,IAEe,OAAflB,EAAIkB,OAAkB,IAAMlB,EAAIkB,OAG3C,IAAIzD,EAAWsD,EACXvD,EAAM,KAoBV,OAlBe,IAAX0D,GACFzD,EAAW,CACToC,KAAMC,IACNnC,WAAYuD,EACZE,OAAQA,EACR5C,QAAS,CAAC,EACV6C,IAAK9B,EACL+B,WAAYtB,GAGVA,EAAIuB,wBAEN9D,EAASe,QAAUS,EAAae,EAAIuB,2BAGtC/D,EAAM,IAAImC,MAAM,iCAGXpF,EAASiD,EAAKC,EAAUA,EAASoC,KAhCrB,CAiCrB,CAEA,IAUIT,EACA6B,EAXAjB,EAAMR,EAAQQ,KAAO,KAEpBA,IAEDA,EADER,EAAQgC,MAAQhC,EAAQ2B,OACpB,IAAIpC,EAAU0C,eAEd,IAAI1C,EAAU2C,gBAMxB,IAMIZ,EANAvB,EAAMS,EAAIqB,IAAM7B,EAAQD,KAAOC,EAAQ6B,IACvCD,EAASpB,EAAIoB,OAAS5B,EAAQ4B,QAAU,MACxCvB,EAAOL,EAAQK,MAAQL,EAAQrC,KAC/BqB,EAAUwB,EAAIxB,QAAUgB,EAAQhB,SAAW,CAAC,EAC5CmD,IAASnC,EAAQmC,KACjBnB,GAAS,EAETO,EAAkB,CACpBlB,UAAME,EACNvB,QAAS,CAAC,EACVb,WAAY,EACZyD,OAAQA,EACRC,IAAK9B,EACL+B,WAAYtB,GA+Cd,GA5CI,SAAUR,IAA4B,IAAjBA,EAAQoC,OAC/BpB,GAAS,EACThC,EAAgB,QAAKA,EAAgB,SAAMA,EAAgB,OAAI,oBAEhD,QAAX4C,GAA+B,SAAXA,IACtB5C,EAAQ,iBAAmBA,EAAQ,kBAAoBA,EAAQ,gBAAkB,oBAEjFqB,EAAOY,KAAKoB,WAA2B,IAAjBrC,EAAQoC,KAAgB/B,EAAOL,EAAQoC,QAIjE5B,EAAI8B,mBAhHJ,WACyB,IAAnB9B,EAAI+B,YACNC,WAAWhB,EAAU,EAEzB,EA6GAhB,EAAIiC,OAASjB,EACbhB,EAAIkC,QAAUvB,EAEdX,EAAImC,WAAa,WACjB,EAEAnC,EAAIoC,QAAU,WACZnB,GAAU,CACZ,EAEAjB,EAAIqC,UAAY1B,EAChBX,EAAIsC,KAAKlB,EAAQ7B,GAAMoC,EAAMnC,EAAQ+C,SAAU/C,EAAQgD,UAElDb,IACH3B,EAAIyC,kBAAoBjD,EAAQiD,kBAM7Bd,GAAQnC,EAAQkD,QAAU,IAC7B5B,EAAekB,YAAW,WACxB,IAAIf,EAAJ,CACAA,GAAU,EAEVjB,EAAI2C,MAAM,WACV,IAAIjE,EAAI,IAAIiB,MAAM,0BAClBjB,EAAEkE,KAAO,YACTjC,EAAUjC,EANS,CAOrB,GAAGc,EAAQkD,UAGT1C,EAAI6C,iBACN,IAAKzD,KAAOZ,EACNA,EAAQsE,eAAe1D,IACzBY,EAAI6C,iBAAiBzD,EAAKZ,EAAQY,SAGjC,GAAII,EAAQhB,UAvMrB,SAAiBuE,GACf,IAAK,IAAI7I,KAAK6I,EACZ,GAAIA,EAAID,eAAe5I,GAAI,OAAO,EAGpC,OAAO,CACT,CAiMiC8I,CAAQxD,EAAQhB,SAC7C,MAAM,IAAImB,MAAM,qDAelB,MAZI,iBAAkBH,IACpBQ,EAAIE,aAAeV,EAAQU,cAGzB,eAAgBV,GAAyC,mBAAvBA,EAAQyD,YAC5CzD,EAAQyD,WAAWjD,GAMrBA,EAAIkD,KAAKrD,GAAQ,MACVG,CACT,CA3OA3C,EAAOC,QAAUyB,EAEjB1B,EAAOC,QAAP,QAAyByB,EACzBA,EAAU2C,eAAiBtE,EAAOsE,gBA4PlC,WAAiB,EA3PjB3C,EAAU0C,eAAiB,oBAAqB,IAAI1C,EAAU2C,eAAmB3C,EAAU2C,eAAiBtE,EAAOqE,eASnH,SAAsB1H,EAAOoJ,GAC3B,IAAK,IAAIjJ,EAAI,EAAGA,EAAIH,EAAME,OAAQC,IAChCiJ,EAASpJ,EAAMG,GAEnB,CAZAkJ,CAAa,CAAC,MAAO,MAAO,OAAQ,QAAS,OAAQ,WAAW,SAAUhC,GACxErC,EAAqB,WAAXqC,EAAsB,MAAQA,GAAU,SAAU7B,EAAKC,EAASjF,GAGxE,OAFAiF,EAAUF,EAAWC,EAAKC,EAASjF,IAC3B6G,OAASA,EAAOiC,cACjB3D,EAAWF,EACpB,CACF,0GC4BM8D,EACAC,ECtDFC,+vBCzBAC,EAAS,CAEXC,IAAK,oEACLC,KAAM,gCACNC,IAAK,sCAELC,MAAO,sDACPC,MAAO,2DACPC,KAAM,oBAENC,WAAY,YACZC,WAAY,UAIZC,UAAW,MAETC,EAAa,CAAC,QAAS,QAAS,QAChCC,EAAkB,CAAC,QAAS,QAAS,QAW9BC,EAAuB,SAA8BC,GAC9D,OAAKA,EAIEA,EAAMC,QAAQ,uBAAuB,SAAUC,EAAMC,EAASC,GAGnE,MAAO,SAFW,KAAOC,OAAOF,GAAS9K,SAAS,KAAK6B,OAAO,GAEhC,MADX,KAAOmJ,OAAOD,GAAU/K,SAAS,KAAK6B,OAAO,EAElE,IAPS8I,CAQX,EAqDWM,EAAc,SAAqBC,QACxB,IAAhBA,IACFA,EAAc,IAGhB,IAAIC,EAASD,EAAY5G,MAAM,KAC3BiB,EAAS,GA8Bb,OA7BA4F,EAAOtK,SAAQ,SAAU8J,GAEvB,IAAIS,EADJT,EAAQA,EAAMhG,OAEd6F,EAAW3J,SAAQ,SAAUwK,GAC3B,IAAIC,EAAQxB,EAAOuB,GAAME,KAAKZ,EAAMtG,eAEpC,GAAKiH,KAASA,EAAMhL,QAAU,GAA9B,CAIA8K,EAAYC,EAEZ,IAAIhJ,EAAOsI,EAAMa,UAAU,EAAGF,EAAM,GAAGhL,QACnCmL,EAAUd,EAAMC,QAAQvI,EAAM,IAClCkD,EAAOhD,KAAK,CACVF,KAAMA,EACNoJ,QAASA,EACT3K,UAAWuK,GATb,CAWF,IAEKD,GACH7F,EAAOhD,KAAK,CACVF,KAAMsI,EACNc,QAAS,GACT3K,UAAW,WAGjB,IACOyE,CACT,EA0CWmG,EAAe,SAAsBf,GAK9C,YAJc,IAAVA,IACFA,EAAQ,IAGHb,EAAOK,MAAM7I,KAAKqJ,EAAMhG,OAAON,cACxC,EAQWsH,EAAkB,SAAyBT,GACpD,GAAKA,GAAsC,iBAAhBA,EAA3B,CAIA,IAZ4CP,EAYxCQ,EAASD,EAAY7G,cAAcC,MAAM,KAAKsH,KAAI,SAAUC,GAC9D,OAAOnB,EAAqBmB,EAAElH,OAChC,IAEItC,EAAO,QAGW,IAAlB8I,EAAO7K,QAAgBoL,EAAaP,EAAO,IAC7C9I,EAAO,QACoB,IAAlB8I,EAAO7K,cApBJ,KAD8BqK,EAqBEQ,EAAO,MAnBnDR,EAAQ,IAGHb,EAAOM,KAAK9I,KAAKqJ,EAAMhG,OAAON,kBAkBnChC,EAAO,eAIT,IAAIyJ,EAAY,MAiBhB,OAdIX,EAAOY,OAAM,SAAUF,GACzB,OAAO/B,EAAOC,IAAIzI,KAAKuK,EACzB,IACEC,EAAY,MACHX,EAAOY,OAAM,SAAUF,GAChC,OAAO/B,EAAOE,KAAK1I,KAAKuK,EAC1B,IACEC,EAAY,OACHX,EAAOY,OAAM,SAAUF,GAChC,OAAO/B,EAAOG,IAAI3I,KAAKuK,EACzB,MACEC,EAAY,OAGPzJ,EAAO,IAAMyJ,EAAY,YAAeZ,EAAc,GAlC7D,CAmCF,EACWc,EAAuB,SAA8Bd,GAK9D,YAJoB,IAAhBA,IACFA,EAAc,IAGT,iBAAsB,gBAAmBe,iBAAmB,gBAAmBA,gBAAgBN,EAAgBT,MAAiB,CACzI,EACWgB,EAAqB,SAA4BhB,GAK1D,YAJoB,IAAhBA,IACFA,EAAc,IAGTA,EAAY7G,cAAcC,MAAM,KAAKyH,OAAM,SAAUpB,GAC1DA,EAAQA,EAAMhG,OAEd,IAAK,IAAIpE,EAAI,EAAGA,EAAIkK,EAAgBnK,OAAQC,IAAK,CAG/C,GAAIuJ,EAAO,QAFAW,EAAgBlK,IAEAe,KAAKqJ,GAC9B,OAAO,CAEX,CAEA,OAAO,CACT,GACF,EACWwB,EAAsB,YC3P7BC,EAAgB,yDAChBC,EAAa,2BAaNC,EAA2B,SAAkCjK,GACtE,OAAI+J,EAAc9K,KAAKe,GACd,MAGLgK,EAAW/K,KAAKe,GACX,OAUI,qCAATA,EACK,WAGF,IACT,EHNWkK,EAAoB,SAA2BnD,GACxD,MAA2B,aAAvBoD,YAAYC,OACPD,YAAYC,OAAOrD,GAGrBA,GAAOA,EAAIsD,kBAAkBF,WACtC,EAIWG,EAAU,SAAiBC,GACpC,OAAIA,aAAiBvM,WACZuM,GAGJ3J,MAAMyC,QAAQkH,IAPZL,EAOoCK,IAAYA,aAAiBJ,cAIpEI,EADmB,iBAAVA,GAAuC,iBAAVA,GAAsBA,GAAUA,EAC9D,EAEA,CAACA,IAIN,IAAIvM,WAAWuM,GAASA,EAAMF,QAAUE,EAAOA,GAASA,EAAMC,YAAc,EAAGD,GAASA,EAAME,YAAc,GACrH,EAqBIC,EAAS,YAAiB/B,OAC1BgC,EAAa,CAACD,EAAO,OAAQA,EAAO,SAAUA,EAAO,WAAYA,EAAO,aAAcA,EAAO,eAAgBA,EAAO,iBAAkBA,EAAO,mBAAoBA,EAAO,qBAAsBA,EAAO,wBAiB9LE,GAfLtD,EAAI,IAAIuD,YAAY,CAAC,QAGZ,OAFTtD,EAAI,IAAIvJ,WAAWsJ,EAAE+C,OAAQ/C,EAAEkD,WAAYlD,EAAEmD,aAE3C,IAIFlD,EAAE,GAQmB,SAAuBgD,EAAOO,GACvD,IAAIC,OAAiB,IAAVD,EAAmB,CAAC,EAAIA,EAC/BE,EAAcD,EAAKE,OACnBA,OAAyB,IAAhBD,GAAiCA,EAC1CE,EAAUH,EAAKI,GACfA,OAAiB,IAAZD,GAA6BA,EAEtCX,EAAQD,EAAQC,GAChB,IAAIa,EAAKD,EAAK,SAAW,cAErBE,GADMd,EAAMa,GAAMb,EAAMa,GAAMxK,MAAMd,UAAUsL,IACjC1K,KAAK6J,GAAO,SAAUe,EAAOC,EAAMrN,GAClD,IAAIsN,EAAWL,EAAKjN,EAAIuN,KAAKC,IAAIxN,EAAI,EAAIqM,EAAMtM,QAC/C,OAAOqN,EAAQZ,EAAOa,GAAQZ,EAAWa,EAC3C,GAAGd,EAAO,IAEV,GAAIO,EAAQ,CACV,IAAIU,EAAMhB,EAAWJ,EAAMtM,QAAUyM,EAAO,GAAKA,EAAO,IACxDW,EAASX,EAAOW,IAEHM,IACXN,GAAUM,EACVN,GAAUM,EACVN,GAAUX,EAAO,GAErB,CAEA,OAAO/B,OAAO0C,EAChB,GACWO,EAAgB,SAAuBP,EAAQQ,GACxD,IACIC,QADmB,IAAXD,EAAoB,CAAC,EAAIA,GAChBV,GACjBA,OAAkB,IAAbW,GAA8BA,GAGjB,iBAAXT,GAAyC,iBAAXA,GAAyC,iBAAXA,GAAuBA,GAAWA,KACvGA,EAAS,GAGXA,EAASX,EAAOW,GAIhB,IAHA,IAlH0CU,EAkHtCC,GAlHsCD,EAkHfV,EAjHpBI,KAAKQ,KALS,SAAmBF,GACxC,OAAOA,EAAEpO,SAAS,GAAGM,MACvB,CAGmBiO,CAAUH,GAAK,IAkH5BxB,EAAQ,IAAIvM,WAAW,IAAImM,YAAY6B,IAElC9N,EAAI,EAAGA,EAAI8N,EAAW9N,IAAK,CAClC,IAAIiO,EAAYhB,EAAKjN,EAAIuN,KAAKC,IAAIxN,EAAI,EAAIqM,EAAMtM,QAChDsM,EAAM4B,GAAaxD,OAAO0C,EAASV,EAAWzM,GAAKwM,EAAO,MAEtDW,EAAS,IACXd,EAAM4B,GAAaV,KAAKC,KAAKnB,EAAM4B,IACnC5B,EAAM4B,IAAoB,IAANjO,EAAU,EAAI,EAEtC,CAEA,OAAOqM,CACT,EACW6B,EAAgB,SAAuB7B,GAChD,IAAKA,EACH,MAAO,GAKTA,EAAQ3J,MAAMd,UAAUN,MAAMkB,KAAK6J,GACnC,IAAI8B,EAAS1J,OAAOC,aAAa7B,MAAM,KAAMuJ,EAAQC,IAErD,IACE,OAAO+B,mBAAmBC,OAAOF,GACnC,CAAE,MAAO3J,GAET,CAEA,OAAO2J,CACT,EACWG,EAAgB,SAAuBH,EAAQI,GAKxD,GAJsB,iBAAXJ,GAAuBA,GAAqC,mBAApBA,EAAO1O,WACxD0O,EAASA,EAAO1O,YAGI,iBAAX0O,EACT,OAAO,IAAIrO,WAMRyO,IACHJ,EAASK,SAASC,mBAAmBN,KAKvC,IAFA,IAAIO,EAAO,IAAI5O,WAAWqO,EAAOpO,QAExBC,EAAI,EAAGA,EAAImO,EAAOpO,OAAQC,IACjC0O,EAAK1O,GAAKmO,EAAOlO,WAAWD,GAG9B,OAAO0O,CACT,EAmDWC,EAAa,SAAoBvF,EAAGC,EAAGuF,GAChD,IAAIC,OAAmB,IAAXD,EAAoB,CAAC,EAAIA,EACjCE,EAAeD,EAAME,OACrBA,OAA0B,IAAjBD,EAA0B,EAAIA,EACvCE,EAAaH,EAAMI,KACnBA,OAAsB,IAAfD,EAAwB,GAAKA,EAExC5F,EAAIgD,EAAQhD,GAGZ,IAAI8D,GAFJ7D,EAAI+C,EAAQ/C,IAEDmC,MAAQnC,EAAEmC,MAAQ9I,MAAMd,UAAU4J,MAC7C,OAAOnC,EAAEtJ,QAAUqJ,EAAErJ,OAASgP,GAAU1F,EAAEtJ,QAC1CmN,EAAG1K,KAAK6G,GAAG,SAAU6F,EAAOlP,GAE1B,OAAOkP,KADKD,EAAKjP,GAAKiP,EAAKjP,GAAKoJ,EAAE2F,EAAS/O,GAAKoJ,EAAE2F,EAAS/O,GAE7D,GACF,uHI/PImP,EAAM/C,EAAQ,CAAC,GAAM,GAAM,KAiBpBgD,EAAe,SAASA,EAAa/C,EAAO0C,GAOrD,YANe,IAAXA,IACFA,EAAS,IAGX1C,EAAQD,EAAQC,IAENtM,OAASgP,EAAS,KAAOJ,EAAWtC,EAAO8C,EAAK,CACxDJ,OAAQA,IAEDA,GAGTA,GA7BsB,SAAoB1C,EAAO0C,QAClC,IAAXA,IACFA,EAAS,GAIX,IAAIM,GADJhD,EAAQD,EAAQC,IACE0C,EAAS,GACvBO,EAAajD,EAAM0C,EAAS,IAAM,GAAK1C,EAAM0C,EAAS,IAAM,GAAK1C,EAAM0C,EAAS,IAAM,EAAI1C,EAAM0C,EAAS,GAG7G,OAF6B,GAARM,IAAe,EAG3BC,EAAa,GAGfA,EAAa,EACtB,CAcYC,CAAWlD,EAAO0C,GAIrBK,EAAa/C,EAAO0C,GAC7B,EHhCIS,GIJmB,IAAI1P,WAAW,CACtC,GAAM,IAAM,IAAM,IAClB,GAAM,IAAM,GAAM,MJEE,SAAuB2P,GACzC,MAAoB,iBAATA,EACFnB,EAAcmB,GAIdA,CAIX,GAaWC,EAAmB,SAA0BrD,GACtDA,EAAQD,EAAQC,GAIhB,IAHA,IAAIsD,EAAU,GACV3P,EAAI,EAEDqM,EAAMtM,OAASC,GAAG,CACvB,IAAI4P,EAAMvD,EAAMrM,GACZ6P,EAAO,EACPC,EAAa,EAGbzC,EAAOhB,IADXyD,GAKA,IAFAA,IAEc,IAAPzC,GACLwC,GAAe,IAAPxC,IAAgB,EACxBA,EAAOhB,EAAMyD,GACbA,IAGFD,GAAe,IAAPxC,EAER,IAAK,IAAI0C,EAAI,EAAGA,EAAIzG,EAAYvJ,OAAQgQ,IAAK,CAC3C,IAAIC,EAAiB1G,EAAYyG,GAC7BE,EAAKD,EAAeC,GACpBC,EAASF,EAAeE,OAE5B,GAAIN,IAAQK,EAAI,CACdN,EAAQ3N,KAAKkO,EAAO7D,EAAM8D,SAASL,EAAYA,EAAaD,KAC5D,KACF,CACF,CAEA7P,GAAK6P,EAAOC,CACd,CAEA,OAAOH,CACT,EACArG,EAAc,CAAC,CACb2G,GAAI,EACJC,OAAQ,SAAgB7D,GACtB,IAAI+D,EAAO,CACTR,IAAK,EACLK,GAAI5D,EAAM,IAAM,EAAIA,EAAM,GAC1BgD,MAAOhD,EAAM,GACbwD,KAAM,EACNQ,cAAe,EACfC,QAAS,EACTC,YAAa,GACbpJ,IAAK,IASP,GANiB,IAAbiJ,EAAKf,QACPe,EAAKC,cAAgBhE,EAAM+D,EAAKP,OAAS,EAAIxD,EAAM+D,EAAKP,KAAO,GAC/DO,EAAKP,MAAQ,GAIE,GAAbO,EAAKf,MAAc,CACrB,IAAImB,EAAMnE,EAAM+D,EAAKP,MACrBO,EAAKjJ,IAAM+G,EAAc7B,EAAM8D,SAASC,EAAKP,KAAO,EAAGO,EAAKP,KAAO,EAAIW,IACvEJ,EAAKP,MAAQW,CACf,CASA,OANiB,GAAbJ,EAAKf,QACPe,EAAKE,QAAUjE,EAAM+D,EAAKP,OAAS,EAAIxD,EAAM+D,EAAKP,KAAO,GACzDO,EAAKP,MAAQ,GAGfO,EAAKG,YAAcb,EAAiBrD,EAAM8D,SAASC,EAAKP,QAAU,GAC3DO,CACT,GACC,CACDH,GAAI,EACJC,OAAQ,SAAgB7D,GAWtB,MATW,CACTuD,IAAK,EACLa,IAAKpE,EAAM,GACXqE,WAAYrE,EAAM,GAClBsE,WAAYtE,EAAM,IAAM,GAAKA,EAAM,IAAM,EAAIA,EAAM,GACnDuE,WAAYvE,EAAM,IAAM,GAAKA,EAAM,IAAM,GAAKA,EAAM,IAAM,EAAIA,EAAM,GACpEwE,WAAYxE,EAAM,IAAM,GAAKA,EAAM,KAAO,GAAKA,EAAM,KAAO,EAAIA,EAAM,IACtEkE,YAAab,EAAiBrD,EAAM8D,SAAS,KAGjD,GACC,CACDF,GAAI,EACJC,OAAQ,SAAgB7D,GAEtB,MAAO,CACLuD,IAAK,EACLvD,MAAOA,EAEX,GACC,CACD4D,GAAI,EACJC,OAAQ,SAAgB7D,GAEtB,MAAO,CACLuD,IAAK,EACLvD,MAAOA,EAEX,IAuBK,IAAIyE,GAAU,SAASA,EAAQzE,EAAO0E,EAAOC,QACjC,IAAbA,IACFA,GAAW,GAGbD,EAjJmB,SAAwBA,GAC3C,OAAKrO,MAAMyC,QAAQ4L,GAIZA,EAAM1F,KAAI,SAAU4F,GACzB,OAAOzB,EAAcyB,EACvB,IALS,CAACzB,EAAcuB,GAM1B,CAyIUG,CAAeH,GACvB1E,EAAQD,EAAQC,GAChB,IAAIsD,EAAU,GAEd,IAAKoB,EAAMhR,OAET,OAAO4P,EAKT,IAFA,IAAI3P,EAAI,EAEDA,EAAIqM,EAAMtM,QAAQ,CACvB,IAAI8P,GAAQxD,EAAMrM,IAAM,GAAKqM,EAAMrM,EAAI,IAAM,GAAKqM,EAAMrM,EAAI,IAAM,EAAIqM,EAAMrM,EAAI,MAAQ,EACpF8B,EAAOuK,EAAM8D,SAASnQ,EAAI,EAAGA,EAAI,GAErC,GAAa,IAAT6P,EACF,MAGF,IAAIsB,EAAMnR,EAAI6P,EAEd,GAAIsB,EAAM9E,EAAMtM,OAAQ,CAGtB,GAAIiR,EACF,MAGFG,EAAM9E,EAAMtM,MACd,CAEA,IAAIkD,EAAOoJ,EAAM8D,SAASnQ,EAAI,EAAGmR,GAE7BxC,EAAW7M,EAAMiP,EAAM,MACJ,IAAjBA,EAAMhR,OAGR4P,EAAQ3N,KAAKiB,GAGb0M,EAAQ3N,KAAKa,MAAM8M,EAASmB,EAAQ7N,EAAM8N,EAAMzP,MAAM,GAAI0P,KAI9DhR,EAAImR,CACN,CAGA,OAAOxB,CACT,EK5MWyB,GAAY,CACrBC,KAAMjF,EAAQ,CAAC,GAAM,GAAM,IAAM,MACjCkF,QAASlF,EAAQ,CAAC,GAAM,MACxBmF,QAASnF,EAAQ,CAAC,GAAM,GAAM,IAAM,MACpCoF,YAAapF,EAAQ,CAAC,GAAM,GAAM,IAAM,MACxCqF,OAAQrF,EAAQ,CAAC,GAAM,GAAM,IAAM,MACnCsF,MAAOtF,EAAQ,CAAC,MAChBuF,YAAavF,EAAQ,CAAC,MACtBwF,gBAAiBxF,EAAQ,CAAC,GAAM,IAAM,MACtCyF,WAAYzF,EAAQ,CAAC,MACrB0F,UAAW1F,EAAQ,CAAC,MACpB2F,YAAa3F,EAAQ,CAAC,MACtB4F,QAAS5F,EAAQ,CAAC,MAClB6F,aAAc7F,EAAQ,CAAC,GAAM,MAC7B8F,WAAY9F,EAAQ,CAAC,MACrB+F,WAAY/F,EAAQ,CAAC,MAIrBgG,QAAShG,EAAQ,CAAC,GAAM,GAAM,IAAM,MACpCiG,UAAWjG,EAAQ,CAAC,MACpBkG,eAAgBlG,EAAQ,CAAC,GAAM,IAAM,MACrCmG,WAAYnG,EAAQ,CAAC,MACrBoG,cAAepG,EAAQ,CAAC,MACxBqG,MAAOrG,EAAQ,CAAC,MAChBsG,YAAatG,EAAQ,CAAC,OAUpBuG,GAAe,CAAC,IAAK,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAqB1CC,GAAU,SAAiBvG,EAAO0C,EAAQ8D,EAAc9F,QACrC,IAAjB8F,IACFA,GAAe,QAGF,IAAX9F,IACFA,GAAS,GAGX,IAAIhN,EA5BU,SAAmBsN,GAGjC,IAFA,IAAImD,EAAM,EAEDxQ,EAAI,EAAGA,EAAI2S,GAAa5S,UAC3BsN,EAAOsF,GAAa3S,IADeA,IAKvCwQ,IAGF,OAAOA,CACT,CAgBesC,CAAUzG,EAAM0C,IACzBgE,EAAa1G,EAAM8D,SAASpB,EAAQA,EAAShP,GAUjD,OALI8S,KACFE,EAAarQ,MAAMd,UAAUN,MAAMkB,KAAK6J,EAAO0C,EAAQA,EAAShP,IACrD,IAAM4S,GAAa5S,EAAS,IAGlC,CACLA,OAAQA,EACRoE,MAAOuI,EAAcqG,EAAY,CAC/BhG,OAAQA,IAEVV,MAAO0G,EAEX,EAEI,GAAgB,SAASvD,EAAcC,GACzC,MAAoB,iBAATA,EACFA,EAAK1E,MAAM,WAAWM,KAAI,SAAU4F,GACzC,OAAOzB,EAAcyB,EACvB,IAGkB,iBAATxB,EACF/B,EAAc+B,GAGhBA,CACT,EAYIuD,GAAsB,SAASA,EAAoB/C,EAAI5D,EAAO0C,GAChE,GAAIA,GAAU1C,EAAMtM,OAClB,OAAOsM,EAAMtM,OAGf,IAAIkT,EAAUL,GAAQvG,EAAO0C,GAAQ,GAErC,GAAIJ,EAAWsB,EAAG5D,MAAO4G,EAAQ5G,OAC/B,OAAO0C,EAGT,IAAImE,EAAaN,GAAQvG,EAAO0C,EAASkE,EAAQlT,QACjD,OAAOiT,EAAoB/C,EAAI5D,EAAO0C,EAASmE,EAAWnT,OAASmT,EAAW/O,MAAQ8O,EAAQlT,OAChG,EAsBWoT,GAAW,SAASA,EAAS9G,EAAO0E,GAC7CA,EA9CmB,SAAwBA,GAC3C,OAAKrO,MAAMyC,QAAQ4L,GAIZA,EAAM1F,KAAI,SAAU4F,GACzB,OAAO,GAAcA,EACvB,IALS,CAAC,GAAcF,GAM1B,CAsCU,CAAeA,GACvB1E,EAAQD,EAAQC,GAChB,IAAIsD,EAAU,GAEd,IAAKoB,EAAMhR,OACT,OAAO4P,EAKT,IAFA,IAAI3P,EAAI,EAEDA,EAAIqM,EAAMtM,QAAQ,CACvB,IAAIkQ,EAAK2C,GAAQvG,EAAOrM,GAAG,GACvBkT,EAAaN,GAAQvG,EAAOrM,EAAIiQ,EAAGlQ,QACnCqT,EAAYpT,EAAIiQ,EAAGlQ,OAASmT,EAAWnT,OAElB,MAArBmT,EAAW/O,QACb+O,EAAW/O,MAAQ6O,GAAoB/C,EAAI5D,EAAO+G,GAE9CF,EAAW/O,QAAUkI,EAAMtM,SAC7BmT,EAAW/O,OAASiP,IAIxB,IAAIC,EAAUD,EAAYF,EAAW/O,MAAQkI,EAAMtM,OAASsM,EAAMtM,OAASqT,EAAYF,EAAW/O,MAC9FlB,EAAOoJ,EAAM8D,SAASiD,EAAWC,GAEjC1E,EAAWoC,EAAM,GAAId,EAAG5D,SACL,IAAjB0E,EAAMhR,OAGR4P,EAAQ3N,KAAKiB,GAIb0M,EAAUA,EAAQ2D,OAAOH,EAASlQ,EAAM8N,EAAMzP,MAAM,MAMxDtB,GAFkBiQ,EAAGlQ,OAASmT,EAAWnT,OAASkD,EAAKlD,MAGzD,CAEA,OAAO4P,CACT,EClMW4D,GAAenH,EAAQ,CAAC,EAAM,EAAM,EAAM,IAC1CoH,GAAepH,EAAQ,CAAC,EAAM,EAAM,IACpCqH,GAAuBrH,EAAQ,CAAC,EAAM,EAAM,IAW5CsH,GAAkC,SAAyCrH,GAIpF,IAHA,IAAIsH,EAAY,GACZ3T,EAAI,EAEDA,EAAIqM,EAAMtM,OAAS,GACpB4O,EAAWtC,EAAM8D,SAASnQ,EAAGA,EAAI,GAAIyT,MACvCE,EAAU3R,KAAKhC,EAAI,GACnBA,KAGFA,IAKF,GAAyB,IAArB2T,EAAU5T,OACZ,OAAOsM,EAIT,IAAIuH,EAAYvH,EAAMtM,OAAS4T,EAAU5T,OACrC8T,EAAU,IAAI/T,WAAW8T,GACzBE,EAAc,EAElB,IAAK9T,EAAI,EAAGA,EAAI4T,EAAWE,IAAe9T,IACpC8T,IAAgBH,EAAU,KAE5BG,IAEAH,EAAUI,SAGZF,EAAQ7T,GAAKqM,EAAMyH,GAGrB,OAAOD,CACT,EACWG,GAAU,SAAiB3H,EAAO4H,EAAUC,EAAOC,QAC3C,IAAbA,IACFA,EAAWC,KAGb/H,EAAQD,EAAQC,GAChB6H,EAAQ,GAAGZ,OAAOY,GASlB,IARA,IACIG,EADArU,EAAI,EAEJsU,EAAY,EAMTtU,EAAIqM,EAAMtM,SAAWuU,EAAYH,GAAYE,IAAW,CAC7D,IAAIE,OAAY,EAUhB,GARI5F,EAAWtC,EAAM8D,SAASnQ,GAAIuT,IAChCgB,EAAY,EACH5F,EAAWtC,EAAM8D,SAASnQ,GAAIwT,MACvCe,EAAY,GAKTA,EAAL,CAOA,GAFAD,IAEID,EACF,OAAOX,GAAgCrH,EAAM8D,SAASkE,EAAUrU,IAGlE,IAAIwU,OAAU,EAEG,SAAbP,EACFO,EAAiC,GAAvBnI,EAAMrM,EAAIuU,GACE,SAAbN,IACTO,EAAUnI,EAAMrM,EAAIuU,IAAc,EAAI,KAGR,IAA5BL,EAAM/R,QAAQqS,KAChBH,EAAWrU,EAAIuU,GAIjBvU,GAAKuU,GAA0B,SAAbN,EAAsB,EAAI,EArB5C,MAFEjU,GAwBJ,CAEA,OAAOqM,EAAM8D,SAAS,EAAG,EAC3B,ECpGIsE,GAAY,CAEd,KAAQrI,EAAQ,CAAC,IAAM,IAAM,GAAM,MAEnC,SAAYA,EAAQ,CAAC,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,KAE/D,KAAQA,EAAQ,CAAC,IAAM,GAAM,GAAM,KAEnC,IAAOA,EAAQ,CAAC,GAAM,IAAM,IAAM,KAGlC,IAAOA,EAAQ,CAAC,GAAM,MAEtB,KAAQA,EAAQ,CAAC,GAAM,GAAM,GAAM,KAEnC,IAAOA,EAAQ,CAAC,GAAM,GAAM,KAE5B,IAAOA,EAAQ,CAAC,GAAM,GAAM,GAAM,KAElC,MAAOA,EAAQ,CAAC,IAAM,IAAM,IAAM,IAAM,GAAM,MAE9C,IAAOA,EAAQ,CAAC,IAAM,IAAM,IAAM,MAElC,KAAQA,EAAQ,CAAC,IAAM,IAAM,IAAM,MAEnC,IAAOA,EAAQ,CAAC,IAAM,IAAM,IAAM,IAAM,IAAM,MAE9C,KAAQA,EAAQ,CAAC,IAAM,IAAM,IAAM,MAEnC,KAAQA,EAAQ,CAAC,IAAM,IAAM,IAAM,OAEjCsI,GAAY,CACdC,IAAK,SAAatI,GAChB,IAAI0C,EAASK,EAAa/C,GAC1B,OAAOsC,EAAWtC,EAAO,CAAC,IAAM,IAAO,CACrC0C,OAAQA,EACRE,KAAM,CAAC,IAAM,KAEjB,EACA2F,IAAK,SAAavI,GAChB,IAAI0C,EAASK,EAAa/C,GAC1B,OAAOsC,EAAWtC,EAAO,CAAC,IAAM,GAAO,CACrC0C,OAAQA,EACRE,KAAM,CAAC,IAAM,IAEjB,EACAxF,KAAM,SAAc4C,GAClB,IAAIwI,EAAU1B,GAAS9G,EAAO,CAAC+E,GAAUC,KAAMD,GAAUE,UAAU,GAEnE,OAAO3C,EAAWkG,EAASJ,GAAUhL,KACvC,EACAqL,IAAK,SAAazI,GAChB,IAAIwI,EAAU1B,GAAS9G,EAAO,CAAC+E,GAAUC,KAAMD,GAAUE,UAAU,GAEnE,OAAO3C,EAAWkG,EAASJ,GAAUM,SACvC,EACAvL,IAAK,SAAa6C,GAEhB,OAAIqI,GAAU,OAAOrI,KAAUqI,GAAUM,IAAI3I,QAKzCsC,EAAWtC,EAAOoI,GAAUjL,IAAK,CACnCuF,OAAQ,MACJJ,EAAWtC,EAAOoI,GAAUQ,KAAM,CACtClG,OAAQ,UAMNJ,EAAWtC,EAAOoI,GAAUS,KAAM,CACpCnG,OAAQ,MACJJ,EAAWtC,EAAOoI,GAAUU,KAAM,CACtCpG,OAAQ,WAHV,GAOF,EACAiG,IAAK,SAAa3I,GAChB,OAAOsC,EAAWtC,EAAOoI,GAAUO,IAAK,CACtCjG,OAAQ,GAEZ,EACA,MAAO,SAAY1C,GACjB,OAAOsC,EAAWtC,EAAOoI,GAAU,OAAQ,CACzC1F,OAAQ,GAEZ,EACAqG,IAAK,SAAa/I,GAChB,IAAI0C,EAASK,EAAa/C,GAC1B,OAAOsC,EAAWtC,EAAOoI,GAAUW,IAAK,CACtCrG,OAAQA,GAEZ,EACAsG,GAAI,SAAYhJ,GACd,GAAIA,EAAMtM,OAAS,KAAOsM,EAAMtM,QAAU,EACxC,OAAoB,KAAbsM,EAAM,GAKf,IAFA,IAAIrM,EAAI,EAEDA,EAAI,IAAMqM,EAAMtM,QAAUC,EAAI,KAAK,CACxC,GAAiB,KAAbqM,EAAMrM,IAAkC,KAAnBqM,EAAMrM,EAAI,KACjC,OAAO,EAGTA,GAAK,CACP,CAEA,OAAO,CACT,EACAsV,KAAM,SAAcjJ,GAClB,IAAI0C,EAASK,EAAa/C,GAC1B,OAAOsC,EAAWtC,EAAOoI,GAAUa,KAAM,CACvCvG,OAAQA,GAEZ,EACArF,IAAK,SAAa2C,GAChB,OAAOsC,EAAWtC,EAAOoI,GAAU/K,IACrC,EACA6L,IAAK,SAAalJ,GAChB,OAAOsC,EAAWtC,EAAOoI,GAAUe,OAAS7G,EAAWtC,EAAOoI,GAAUc,IAAK,CAC3ExG,OAAQ,GAEZ,EACA0G,IAAK,SAAapJ,GAChB,OAAOsC,EAAWtC,EAAOoI,GAAUe,OAAS7G,EAAWtC,EAAOoI,GAAUgB,IAAK,CAC3E1G,OAAQ,GAEZ,EACA,KAAQ,SAAc1C,GAEpB,ODjCqB,SAAqBA,EAAOvK,EAAMqS,GACzD,OAAOH,GAAQ3H,EAAO,OAAQvK,EAAMqS,EACtC,CC+BWuB,CAAYrJ,EAAO,EAAG,GAAGtM,MAClC,EACA,KAAQ,SAAcsM,GAEpB,ODlCqB,SAAqBA,EAAOvK,EAAMqS,GACzD,OAAOH,GAAQ3H,EAAO,OAAQvK,EAAMqS,EACtC,CCgCWwB,CAAYtJ,EAAO,CAAC,GAAI,IAAK,GAAGtM,MACzC,GAKE6V,GAAgBC,OAAOC,KAAKpB,IAC/BqB,QAAO,SAAUC,GAChB,MAAa,OAANA,GAAoB,SAANA,GAAsB,SAANA,CACvC,IACC1C,OAAO,CAAC,KAAM,OAAQ,SAEvBsC,GAActV,SAAQ,SAAUwB,GAC9B,IAAImU,EAAavB,GAAU5S,GAE3B4S,GAAU5S,GAAQ,SAAUuK,GAC1B,OAAO4J,EAAW7J,EAAQC,GAC5B,CACF,ICXA,IDaO,ICfH6J,GDeOC,GAAWzB,GAGX0B,GAA0B,SAAiC/J,GACpEA,EAAQD,EAAQC,GAEhB,IAAK,IAAIrM,EAAI,EAAGA,EAAI4V,GAAc7V,OAAQC,IAAK,CAC7C,IAAI8B,EAAO8T,GAAc5V,GAEzB,GAAImW,GAASrU,GAAMuK,GACjB,OAAOvK,CAEX,CAEA,MAAO,EACT,mDChJIuU,GAAY,SAQZC,GAAS,CAAC,EAcVC,GAAQ,SAAezU,EAAMoL,GAO/B,OANAoJ,GAAOxU,GAAQwU,GAAOxU,IAAS,GAE3BoL,IACFoJ,GAAOxU,GAAQwU,GAAOxU,GAAMwR,OAAOpG,IAG9BoJ,GAAOxU,EAChB,EA6BI0U,GAAa,SAAoB1U,EAAMoL,GACzC,IAAIhL,EAAQqU,GAAMzU,GAAMK,QAAQ+K,GAEhC,QAAIhL,IAAU,KAIdoU,GAAOxU,GAAQwU,GAAOxU,GAAMR,QAC5BgV,GAAOxU,GAAMM,OAAOF,EAAO,IACpB,EACT,EAoCIuU,GAAgB,CAClBC,UAAU,GAGRC,GAAS,CAAC,CAAC,oBAAqB,iBAAkB,oBAAqB,oBAAqB,mBAAoB,kBAAmB,cACvI,CAAC,0BAA2B,uBAAwB,0BAA2B,0BAA2B,yBAA0B,wBAAyB,uBAC7J,CAAC,uBAAwB,sBAAuB,uBAAwB,uBAAwB,sBAAuB,qBAAsB,oBAC7I,CAAC,sBAAuB,mBAAoB,sBAAuB,sBAAuB,qBAAsB,oBAAqB,mBACjIC,GAAUD,GAAO,GAGZ3W,GAAI,EAAGA,GAAI2W,GAAO5W,OAAQC,KAEjC,GAAI2W,GAAO3W,IAAG,KAAM,IAAU,CAC5BkW,GAAaS,GAAO3W,IACpB,KACF,CAIF,GAAIkW,GAAY,CACd,IAAK,IAAItT,GAAK,EAAGA,GAAKsT,GAAWnW,OAAQ6C,KACvC6T,GAAcG,GAAQhU,KAAOsT,GAAWtT,IAG1C6T,GAAcC,SAAWR,GAAW,KAAOU,GAAQ,EACrD,CAOA,IAAI,GAAU,GA4Rd,IAAIC,GAjOJ,SAASC,EAAehM,GAEtB,IAEIiM,EAFAC,EAAQ,OAyBRC,EAAM,WACR,IAAK,IAAIC,EAAO3U,UAAUxC,OAAQ0C,EAAO,IAAIC,MAAMwU,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E1U,EAAK0U,GAAQ5U,UAAU4U,GAGzBJ,EAAU,MAAOC,EAAOvU,EAC1B,EAyLA,OAtLAsU,EAnFqB,SAA0BjM,EAAMmM,GACrD,OAAO,SAAUnV,EAAMkV,EAAOvU,GAC5B,IAAI2U,EAAMH,EAAII,OAAOL,GACjBM,EAAY,IAAIC,OAAO,KAAOH,EAAM,MAUxC,GARa,QAATtV,GAEFW,EAAK+U,QAAQ1V,EAAKqH,cAAgB,KAIpC1G,EAAK+U,QAAQ1M,EAAO,KAEhB,GAAS,CACX,GAAQ9I,KAAK,GAAGsR,OAAO7Q,IAEvB,IAAIL,EAAS,GAAQrC,OAAS,IAC9B,GAAQqC,OAAO,EAAGA,EAAS,EAAIA,EAAS,EAC1C,CAIA,GAAK,YAAL,CAOA,IAAI8K,EAAK,YAAiBpL,GAErBoL,GAAe,UAATpL,IAGToL,EAAK,YAAiBuK,MAAQ,YAAiBR,KAK5C/J,GAAOkK,GAAQE,EAAUvW,KAAKe,IAInCoL,EAAGxK,MAAMyC,QAAQ1C,GAAQ,QAAU,QAAQ,YAAkBA,EAnB7D,CAoBF,CACF,CAsCciV,CAAiB5M,EAAMmM,GAenCA,EAAIU,aAAe,SAAUC,GAC3B,OAAOd,EAAehM,EAAO,KAAO8M,EACtC,EAsBAX,EAAII,OAAS,CACXQ,IAAK,uBACL5V,IAAK,GACL6V,MAAO,uBACPL,KAAM,iBACNM,KAAM,aACNC,MAAO,QACPC,QAASjB,GAeXC,EAAID,MAAQ,SAAUI,GACpB,GAAmB,iBAARA,EAAkB,CAC3B,IAAKH,EAAII,OAAOzO,eAAewO,GAC7B,MAAM,IAAI3R,MAAM,IAAO2R,EAAM,8BAG/BJ,EAAQI,CACV,CAEA,OAAOJ,CACT,GAYAC,EAAIiB,QAAU,WACZ,OAAO,GAAU,GAAG5E,OAAO,IAAW,EACxC,GAYYyC,OAAS,SAAUoC,GAC7B,OAAQ,IAAW,IAAIpC,QAAO,SAAUqC,GAEtC,OAAO,IAAIb,OAAO,KAAOY,EAAQ,MAAMpX,KAAKqX,EAAY,GAC1D,GACF,EAOAnB,EAAIiB,QAAQG,MAAQ,WACd,KACF,GAAQtY,OAAS,EAErB,EAMAkX,EAAIiB,QAAQI,QAAU,WACJ,OAAZ,KACF,GAAQvY,OAAS,EACjB,GAAU,KAEd,EAMAkX,EAAIiB,QAAQK,OAAS,WACH,OAAZ,KACF,GAAU,GAEd,EASAtB,EAAIe,MAAQ,WACV,IAAK,IAAIQ,EAAQjW,UAAUxC,OAAQ0C,EAAO,IAAIC,MAAM8V,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFhW,EAAKgW,GAASlW,UAAUkW,GAG1B,OAAO1B,EAAU,QAASC,EAAOvU,EACnC,EASAwU,EAAIc,KAAO,WACT,IAAK,IAAIW,EAAQnW,UAAUxC,OAAQ0C,EAAO,IAAIC,MAAMgW,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFlW,EAAKkW,GAASpW,UAAUoW,GAG1B,OAAO5B,EAAU,OAAQC,EAAOvU,EAClC,EAUAwU,EAAIa,MAAQ,WACV,IAAK,IAAIc,EAAQrW,UAAUxC,OAAQ0C,EAAO,IAAIC,MAAMkW,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFpW,EAAKoW,GAAStW,UAAUsW,GAG1B,OAAO9B,EAAU,QAASC,EAAOvU,EACnC,EAEOwU,CACT,CAMYH,CAAe,WACvBa,GAAed,GAAMc,aAgCrB,GAAW9B,OAAOjU,UAAUnC,SAc5BqW,GAAO,SAAcgD,GACvB,OAAOC,GAASD,GAAUjD,OAAOC,KAAKgD,GAAU,EAClD,EAYA,SAASE,GAAKF,EAAQ5L,GACpB4I,GAAKgD,GAAQxY,SAAQ,SAAU4E,GAC7B,OAAOgI,EAAG4L,EAAO5T,GAAMA,EACzB,GACF,CAoCA,SAAS,GAAO+T,GACd,IAAK,IAAI/B,EAAO3U,UAAUxC,OAAQmZ,EAAU,IAAIxW,MAAMwU,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IACrG+B,EAAQ/B,EAAO,GAAK5U,UAAU4U,GAGhC,OAAItB,OAAOsD,OACF,UAAStW,WAAM,EAAQ,CAACoW,GAAQ3F,OAAO4F,KAGhDA,EAAQ5Y,SAAQ,SAAU8Y,GACnBA,GAILJ,GAAKI,GAAQ,SAAUjV,EAAOe,GAC5B+T,EAAO/T,GAAOf,CAChB,GACF,IACO8U,EACT,CAYA,SAASF,GAAS5U,GAChB,QAASA,GAA0B,iBAAVA,CAC3B,CASA,SAASkV,GAAQlV,GACf,OAAO4U,GAAS5U,IAAmC,oBAAzB,GAAS3B,KAAK2B,IAAgCA,EAAMmV,cAAgBzD,MAChG,CAuBA,SAAS0D,GAAcC,EAAIC,GACzB,IAAKD,IAAOC,EACV,MAAO,GAGT,GAAyC,mBAA9B,qBAA0C,CACnD,IAAIC,EAEJ,IACEA,EAAqB,qBAA0BF,EACjD,CAAE,MAAOhV,GACP,MAAO,EACT,CAEA,OAAOkV,EAAqBA,EAAmBC,iBAAiBF,IAASC,EAAmBD,GAAQ,EACtG,CAEA,MAAO,EACT,CAMA,IAqBM1O,GArBF6O,GAAa,eAAsB,cAAmBC,WAAa,GACnEC,GAAmB,yBAAyB9O,KAAK4O,IACjDG,GAAqBD,GAAmBE,WAAWF,GAAiBG,OAAS,KAS7EC,GAAU,QAAQnZ,KAAK6Y,IASvBO,IACEpP,GAAQ6O,GAAW7O,MAAM,gBAEhBA,GAAM,GACVA,GAAM,GAGR,KAULqP,GAAa,WAAWrZ,KAAK6Y,IAS7BS,GAAkB,WAGpB,IAAItP,EAAQ6O,GAAW7O,MAAM,0CAE7B,IAAKA,EACH,OAAO,KAGT,IAAIuP,EAAQvP,EAAM,IAAMiP,WAAWjP,EAAM,IACrCwP,EAAQxP,EAAM,IAAMiP,WAAWjP,EAAM,IAEzC,OAAIuP,GAASC,EACJP,WAAWjP,EAAM,GAAK,IAAMA,EAAM,IAChCuP,GAIJ,IACT,CAnBsB,GA4BlBE,GAAoBJ,IAAcC,GAAkB,GAAKN,GAAqB,IAS9EU,GAAa,WAAW1Z,KAAK6Y,IAS7Bc,GAAU,OAAO3Z,KAAK6Y,IAYtBe,IAAaD,KAAY,UAAU3Z,KAAK6Y,KAAe,SAAS7Y,KAAK6Y,KASrEgB,GAAiB,WACnB,IAAI7P,EAAQ6O,GAAW7O,MAAM,yBAE7B,OAAIA,GAASA,EAAM,GACViP,WAAWjP,EAAM,IAGnB,IACT,CARqB,GAiBjB8P,GAAa,WACf,IAAI7V,EAAS,kBAAkBgG,KAAK4O,IAChCkB,EAAU9V,GAAUgV,WAAWhV,EAAO,IAO1C,OALK8V,GAAW,gBAAgB/Z,KAAK6Y,KAAe,UAAU7Y,KAAK6Y,MAEjEkB,EAAU,IAGLA,CACT,CAViB,GAmBbC,GAAY,UAAUha,KAAK6Y,MAAgBe,KAAcP,KAAeM,GASxEM,GAAa,WAAWja,KAAK6Y,IAS7BqB,GAAgBC,QAAQC,OAAa,sBAA8B,cAAmBC,gBAAkB,mBAA0B,wBAA6B,oBAS/JC,GAAU,QAAQta,KAAK6Y,KAAemB,IAAaE,KAAkB,UAAUla,KAAK6Y,IAYpF0B,GAAY,UAAUva,KAAK6Y,MAAgByB,GAS3CE,GAASD,IAAaD,IAAWnB,GASjCsB,IAAiBT,IAAaQ,MAAYZ,GAE1Cc,GAAuB5F,OAAO6F,OAAO,CACvCC,UAAW,KACXzB,QAASA,GACTC,YAAaA,GACbC,WAAYA,GACZC,gBAAiBA,GACjBG,kBAAmBA,GACnBC,WAAYA,GACZC,QAASA,GACTC,UAAWA,GACXC,eAAgBA,GAChBC,WAAYA,GACZE,UAAWA,GACXC,WAAYA,GACZC,cAAeA,GACfI,QAASA,GACTC,UAAWA,GACXC,OAAQA,GACRC,cAAeA,KAmBjB,SAASI,GAAiBC,GAMxB,MAAsB,iBAARA,GAAoBX,QAAQW,EAAIzX,OAChD,CAcA,SAAS0X,GAAkBD,GAEzB,GAAIA,EAAI1Z,QAAQ,MAAQ,EACtB,MAAM,IAAIsD,MAAM,0CAEpB,CAyBA,SAAS0V,KAEP,OAAO,MAAa,YACtB,CAWA,SAASY,GAAK5X,GACZ,OAAO4U,GAAS5U,IAA6B,IAAnBA,EAAM6X,QAClC,CASA,SAASC,KAGP,IACE,OAAO,aAAoB,QAC7B,CAAE,MAAOpO,GACP,OAAO,CACT,CACF,CAYA,SAASqO,GAAchV,GACrB,OAAO,SAAUiV,EAAUC,GACzB,IAAKR,GAAiBO,GACpB,OAAO,IAASjV,GAAQ,MAGtB0U,GAAiBQ,KACnBA,EAAU,kBAAuBA,IAGnC,IAAIC,EAAMN,GAAKK,GAAWA,EAAU,IACpC,OAAOC,EAAInV,IAAWmV,EAAInV,GAAQiV,EACpC,CACF,CAqBA,SAASG,GAASC,EAASC,EAAYC,EAAYC,QACjC,IAAZH,IACFA,EAAU,YAGO,IAAfC,IACFA,EAAa,CAAC,QAGG,IAAfC,IACFA,EAAa,CAAC,GAGhB,IAAIjD,EAAK,kBAAuB+C,GAwBhC,OAvBA1G,OAAO8G,oBAAoBH,GAAYlc,SAAQ,SAAUsc,GACvD,IAAIC,EAAML,EAAWI,IAIc,IAA/BA,EAASza,QAAQ,UAAgC,SAAbya,GAAoC,SAAbA,GAC7D/F,GAAMkB,KAAK,4KAAyL6E,EAAW,OAASC,EAAM,KAC9NrD,EAAGsD,aAAaF,EAAUC,IAEJ,gBAAbD,EACTG,GAAYvD,EAAIqD,GACPrD,EAAGoD,KAAcC,GAAoB,aAAbD,IACjCpD,EAAGoD,GAAYC,EAEnB,IACAhH,OAAO8G,oBAAoBF,GAAYnc,SAAQ,SAAU0c,GACvDxD,EAAGsD,aAAaE,EAAUP,EAAWO,GACvC,IAEIN,GACFO,GAAczD,EAAIkD,GAGblD,CACT,CAcA,SAASuD,GAAYvD,EAAI3P,GAOvB,YAN8B,IAAnB2P,EAAGuD,YACZvD,EAAG0D,UAAYrT,EAEf2P,EAAGuD,YAAclT,EAGZ2P,CACT,CAWA,SAAS2D,GAAUC,EAAOC,GACpBA,EAAOC,WACTD,EAAOE,aAAaH,EAAOC,EAAOC,YAElCD,EAAOG,YAAYJ,EAEvB,CAiBA,SAASK,GAASC,EAASC,GAGzB,OAFA7B,GAAkB6B,GAEdD,EAAQE,UACHF,EAAQE,UAAUC,SAASF,IA5LjBG,EA+LAH,EA9LZ,IAAIpG,OAAO,UAAYuG,EAAY,YA8LT/c,KAAK2c,EAAQI,WA/LhD,IAAqBA,CAgMrB,CAcA,SAASC,GAASL,EAASM,GAQzB,OAPIN,EAAQE,UACVF,EAAQE,UAAUK,IAAID,GAEZP,GAASC,EAASM,KAC5BN,EAAQI,WAAaJ,EAAQI,UAAY,IAAME,GAAY5Z,QAGtDsZ,CACT,CAcA,SAASQ,GAAYR,EAASS,GAE5B,OAAKT,GAKDA,EAAQE,UACVF,EAAQE,UAAUQ,OAAOD,IAEzBrC,GAAkBqC,GAClBT,EAAQI,UAAYJ,EAAQI,UAAU/Z,MAAM,OAAOgS,QAAO,SAAUzK,GAClE,OAAOA,IAAM6S,CACf,IAAGE,KAAK,MAGHX,IAbL7G,GAAMkB,KAAK,6DACJ,KAaX,CAkCA,SAASuG,GAAYZ,EAASa,EAAeC,GAI3C,IAAIC,EAAMhB,GAASC,EAASa,GAY5B,GAVyB,mBAAdC,IACTA,EAAYA,EAAUd,EAASa,IAGR,kBAAdC,IACTA,GAAaC,GAKXD,IAAcC,EAUlB,OANID,EACFT,GAASL,EAASa,GAElBL,GAAYR,EAASa,GAGhBb,CACT,CAWA,SAASgB,GAAclF,EAAIiD,GACzB5G,OAAO8G,oBAAoBF,GAAYnc,SAAQ,SAAU0c,GACvD,IAAI2B,EAAYlC,EAAWO,GAEvB2B,UAAwE,IAAdA,EAC5DnF,EAAGoF,gBAAgB5B,GAEnBxD,EAAGsD,aAAaE,GAAwB,IAAd2B,EAAqB,GAAKA,EAExD,GACF,CAeA,SAASE,GAAcjP,GACrB,IAAI/G,EAAM,CAAC,EAIPiW,EAAgB,kEAEpB,GAAIlP,GAAOA,EAAI6M,YAAc7M,EAAI6M,WAAW1c,OAAS,EAGnD,IAFA,IAAIgf,EAAQnP,EAAI6M,WAEPzc,EAAI+e,EAAMhf,OAAS,EAAGC,GAAK,EAAGA,IAAK,CAC1C,IAAIgd,EAAW+B,EAAM/e,GAAG8K,KACpBkU,EAAUD,EAAM/e,GAAGmE,MAGM,kBAAlByL,EAAIoN,KAA4E,IAAjD8B,EAAc3c,QAAQ,IAAM6a,EAAW,OAI/EgC,EAAsB,OAAZA,GAGZnW,EAAImU,GAAYgC,CAClB,CAGF,OAAOnW,CACT,CAcA,SAASoW,GAAazF,EAAI0F,GACxB,OAAO1F,EAAGyF,aAAaC,EACzB,CAcA,SAASpC,GAAatD,EAAI0F,EAAW/a,GACnCqV,EAAGsD,aAAaoC,EAAW/a,EAC7B,CAWA,SAASya,GAAgBpF,EAAI0F,GAC3B1F,EAAGoF,gBAAgBM,EACrB,CAKA,SAASC,KACP,SAAcC,QAEd,kBAAyB,WACvB,OAAO,CACT,CACF,CAKA,SAASC,KACP,kBAAyB,WACvB,OAAO,CACT,CACF,CAqBA,SAASC,GAAsB9F,GAC7B,GAAIA,GAAMA,EAAG8F,uBAAyB9F,EAAG+F,WAAY,CACnD,IAAIC,EAAOhG,EAAG8F,wBACVta,EAAS,CAAC,EAed,MAdA,CAAC,SAAU,SAAU,OAAQ,QAAS,MAAO,SAAS1E,SAAQ,SAAUmf,QACtD5Z,IAAZ2Z,EAAKC,KACPza,EAAOya,GAAKD,EAAKC,GAErB,IAEKza,EAAO0a,SACV1a,EAAO0a,OAAS1F,WAAWT,GAAcC,EAAI,YAG1CxU,EAAO2a,QACV3a,EAAO2a,MAAQ3F,WAAWT,GAAcC,EAAI,WAGvCxU,CACT,CACF,CA2BA,SAAS4a,GAAapG,GACpB,IAAKA,GAAMA,IAAOA,EAAGqG,aACnB,MAAO,CACLC,KAAM,EACNC,IAAK,EACLJ,MAAO,EACPD,OAAQ,GASZ,IALA,IAAIC,EAAQnG,EAAGwG,YACXN,EAASlG,EAAGyG,aACZH,EAAO,EACPC,EAAM,EAEHvG,EAAGqG,cAAgBrG,IAAO,IAAS/C,GAAcyJ,oBACtDJ,GAAQtG,EAAG2G,WACXJ,GAAOvG,EAAG4G,UACV5G,EAAKA,EAAGqG,aAGV,MAAO,CACLC,KAAMA,EACNC,IAAKA,EACLJ,MAAOA,EACPD,OAAQA,EAEZ,CA6BA,SAASW,GAAmB7G,EAAI8G,GAC9B,IAAIC,EAAa,CACf1S,EAAG,EACH2S,EAAG,GAGL,GAAIjF,GAGF,IAFA,IAAIkF,EAAOjH,EAEJiH,GAAwC,SAAhCA,EAAKra,SAAStC,eAA0B,CACrD,IAAI4c,EAAYnH,GAAckH,EAAM,aAEpC,GAAI,UAAU1f,KAAK2f,GAAY,CAC7B,IAAIC,EAASD,EAAUpf,MAAM,GAAI,GAAGyC,MAAM,OAAOsH,IAAIZ,QACrD8V,EAAW1S,GAAK8S,EAAO,GACvBJ,EAAWC,GAAKG,EAAO,EACzB,MAAO,GAAI,YAAY5f,KAAK2f,GAAY,CACtC,IAAIE,EAAUF,EAAUpf,MAAM,GAAI,GAAGyC,MAAM,OAAOsH,IAAIZ,QAEtD8V,EAAW1S,GAAK+S,EAAQ,IACxBL,EAAWC,GAAKI,EAAQ,GAC1B,CAEAH,EAAOA,EAAKlB,UACd,CAGF,IAAIsB,EAAW,CAAC,EACZC,EAAYlB,GAAaU,EAAMrH,QAC/B8H,EAAMnB,GAAapG,GACnBwH,EAAOD,EAAIpB,MACXsB,EAAOF,EAAIrB,OACXwB,EAAUZ,EAAMY,SAAWH,EAAIhB,IAAMe,EAAUf,KAC/CoB,EAAUb,EAAMa,SAAWJ,EAAIjB,KAAOgB,EAAUhB,MAcpD,OAZIQ,EAAMc,iBACRD,EAAUb,EAAMc,eAAe,GAAGC,MAAQN,EAAIjB,KAC9CoB,EAAUZ,EAAMc,eAAe,GAAGE,MAAQP,EAAIhB,IAE1CxE,KACF4F,GAAWZ,EAAW1S,EACtBqT,GAAWX,EAAWC,IAI1BK,EAASL,EAAI,EAAIjT,KAAKE,IAAI,EAAGF,KAAKgU,IAAI,EAAGL,EAAUD,IACnDJ,EAAShT,EAAIN,KAAKE,IAAI,EAAGF,KAAKgU,IAAI,EAAGJ,EAAUH,IACxCH,CACT,CAWA,SAASW,GAAWrd,GAClB,OAAO4U,GAAS5U,IAA6B,IAAnBA,EAAM6X,QAClC,CAWA,SAASyF,GAAQjI,GACf,KAAOA,EAAG8D,YACR9D,EAAGkI,YAAYlI,EAAG8D,YAGpB,OAAO9D,CACT,CAkCA,SAASmI,GAAiBjF,GASxB,MANuB,mBAAZA,IACTA,EAAUA,MAKJha,MAAMyC,QAAQuX,GAAWA,EAAU,CAACA,IAAUrR,KAAI,SAAUlH,GAOlE,MAJqB,mBAAVA,IACTA,EAAQA,KAGN4X,GAAK5X,IAAUqd,GAAWrd,GACrBA,EAGY,iBAAVA,GAAsB,KAAKpD,KAAKoD,GAClC,mBAAwBA,QADjC,CAGF,IAAG4R,QAAO,SAAU5R,GAClB,OAAOA,CACT,GACF,CAcA,SAAS8Y,GAAczD,EAAIkD,GAIzB,OAHAiF,GAAiBjF,GAASpc,SAAQ,SAAUshB,GAC1C,OAAOpI,EAAGgE,YAAYoE,EACxB,IACOpI,CACT,CAeA,SAASqI,GAAcrI,EAAIkD,GACzB,OAAOO,GAAcwE,GAAQjI,GAAKkD,EACpC,CAWA,SAASoF,GAAkBxB,GAIzB,YAAqBza,IAAjBya,EAAMyB,aAA0Clc,IAAlBya,EAAM0B,UAcnB,IAAjB1B,EAAMyB,aAAkClc,IAAlBya,EAAM0B,UAQb,YAAf1B,EAAMxe,MAAuC,IAAjBwe,EAAMyB,QAAkC,IAAlBzB,EAAM0B,SAIvC,IAAjB1B,EAAMyB,QAAkC,IAAlBzB,EAAM0B,SASlC,CAkBA,IA6DIC,GA7DAC,GAAIhG,GAAc,iBAoBlBiG,GAAKjG,GAAc,oBAEnBkG,GAAmBvM,OAAO6F,OAAO,CACnCC,UAAW,KACXR,OAAQA,GACRY,KAAMA,GACNE,UAAWA,GACXK,SAAUA,GACVS,YAAaA,GACbI,UAAWA,GACXM,SAAUA,GACVM,SAAUA,GACVG,YAAaA,GACbI,YAAaA,GACbI,cAAeA,GACfG,cAAeA,GACfI,aAAcA,GACdnC,aAAcA,GACd8B,gBAAiBA,GACjBO,mBAAoBA,GACpBE,qBAAsBA,GACtBC,sBAAuBA,GACvBM,aAAcA,GACdS,mBAAoBA,GACpBmB,WAAYA,GACZC,QAASA,GACTE,iBAAkBA,GAClB1E,cAAeA,GACf4E,cAAeA,GACfC,kBAAmBA,GACnBI,EAAGA,GACHC,GAAIA,KASFE,IAAgB,EAMhBC,GAAY,WACd,IAAoC,IAAhCL,GAAU3c,QAAQgd,UAAtB,CAIA,IAAIC,EAAO7f,MAAMd,UAAUN,MAAMkB,KAAK,yBAA8B,UAChEggB,EAAS9f,MAAMd,UAAUN,MAAMkB,KAAK,yBAA8B,UAClEigB,EAAO/f,MAAMd,UAAUN,MAAMkB,KAAK,yBAA8B,aAChEkgB,EAAWH,EAAKjP,OAAOkP,EAAQC,GAEnC,GAAIC,GAAYA,EAAS3iB,OAAS,EAChC,IAAK,IAAIC,EAAI,EAAGwE,EAAIke,EAAS3iB,OAAQC,EAAIwE,EAAGxE,IAAK,CAC/C,IAAI2iB,EAAUD,EAAS1iB,GAEvB,IAAI2iB,IAAWA,EAAQ1D,aAYhB,CACL2D,GAAiB,GACjB,KACF,MAbyB/c,IAAnB8c,EAAQE,QAIM,OAHFF,EAAQ1D,aAAa,eAKjCgD,GAAUU,EAQlB,MAEUN,IACVO,GAAiB,EA9BnB,CAgCF,EAaA,SAASA,GAAiBE,EAAMC,GAEzB5H,OAID4H,IACFd,GAAYc,GAGd,eAAoBT,GAAWQ,GACjC,CAQA,SAASE,KACPX,IAAgB,EAChB,wBAA6B,OAAQW,GACvC,CAEI7H,OAC0B,aAAxB,eACF6H,KAUA,qBAA0B,OAAQA,KAkBtC,IAwDIC,GAxDAC,GAAqB,SAA4BpF,GACnD,IAAIqF,EAAQ,kBAAuB,SAEnC,OADAA,EAAMrF,UAAYA,EACXqF,CACT,EAWIC,GAAiB,SAAwB5J,EAAIkD,GAC3ClD,EAAG6J,WACL7J,EAAG6J,WAAWC,QAAU5G,EAExBlD,EAAGuD,YAAcL,CAErB,EAmBI6G,GAPe,EAenB,SAASC,KACP,OAAOD,IACT,CAQK,cACHN,GAA2B,WACzB,SAASA,IACPxhB,KAAKgiB,MAAQ,QAAUlW,KAAKmW,MAAM,iBAAwB,gBAAqBC,OAASC,KAAKD,OAC7FliB,KAAKwB,KAAO,CAAC,CACf,CAEA,IAAItB,EAASshB,EAAYrhB,UAwCzB,OAtCAD,EAAOkiB,IAAM,SAAa3e,EAAKf,GAC7B,IAAI2f,EAAS5e,EAAIzD,KAAKgiB,QAAUD,KAOhC,OALKte,EAAIzD,KAAKgiB,SACZve,EAAIzD,KAAKgiB,OAASK,GAGpBriB,KAAKwB,KAAK6gB,GAAU3f,EACb1C,IACT,EAEAE,EAAOoiB,IAAM,SAAa7e,GACxB,IAAI4e,EAAS5e,EAAIzD,KAAKgiB,OAEtB,GAAIK,EACF,OAAOriB,KAAKwB,KAAK6gB,GAKnBjN,GAAM,mCAAoC3R,EAE5C,EAEAvD,EAAO8c,IAAM,SAAavZ,GAExB,OADaA,EAAIzD,KAAKgiB,SACLhiB,KAAKwB,IACxB,EAEAtB,EAAe,OAAI,SAAiBuD,GAClC,IAAI4e,EAAS5e,EAAIzD,KAAKgiB,OAElBK,WACKriB,KAAKwB,KAAK6gB,UACV5e,EAAIzD,KAAKgiB,OAEpB,EAEOR,CACT,CA/C2B,IA6D7B,IAyMIe,GAzMAC,GAAU,YAAmB,IAAIC,QAAY,IAAIjB,GAqBrD,SAASkB,GAAeC,EAAMtiB,GAC5B,GAAKmiB,GAAQxF,IAAI2F,GAAjB,CAIA,IAAInhB,EAAOghB,GAAQF,IAAIK,GAEY,IAA/BnhB,EAAKohB,SAASviB,GAAM/B,gBACfkD,EAAKohB,SAASviB,GAIjBsiB,EAAKE,oBACPF,EAAKE,oBAAoBxiB,EAAMmB,EAAKshB,YAAY,GACvCH,EAAKI,aACdJ,EAAKI,YAAY,KAAO1iB,EAAMmB,EAAKshB,aAKnC1O,OAAO8G,oBAAoB1Z,EAAKohB,UAAUtkB,QAAU,WAC/CkD,EAAKohB,gBACLphB,EAAKshB,kBACLthB,EAAKwhB,UAIkC,IAA5C5O,OAAO8G,oBAAoB1Z,GAAMlD,QACnCkkB,GAAgB,OAAEG,EAzBpB,CA2BF,CAkBA,SAASM,GAAsBxX,EAAIkX,EAAMlQ,EAAO7T,GAC9C6T,EAAM5T,SAAQ,SAAUwB,GAEtBoL,EAAGkX,EAAMtiB,EAAMzB,EACjB,GACF,CAYA,SAASskB,GAASrE,GAChB,GAAIA,EAAMsE,OACR,OAAOtE,EAGT,SAASuE,IACP,OAAO,CACT,CAEA,SAASC,IACP,OAAO,CACT,CAOA,IAAKxE,IAAUA,EAAMyE,uBAAyBzE,EAAM0E,8BAA+B,CACjF,IAAIC,EAAM3E,GAAS,UAOnB,IAAK,IAAIpb,KANTob,EAAQ,CAAC,EAMO2E,EAKF,WAAR/f,GAA4B,WAARA,GAA4B,gBAARA,GAAiC,oBAARA,GAAqC,oBAARA,GAAqC,SAARA,IAG/G,gBAARA,GAAyB+f,EAAIC,iBACjC5E,EAAMpb,GAAO+f,EAAI/f,KAmDvB,GA7CKob,EAAMrH,SACTqH,EAAMrH,OAASqH,EAAM6E,YAAc,KAIhC7E,EAAM8E,gBACT9E,EAAM8E,cAAgB9E,EAAM+E,cAAgB/E,EAAMrH,OAASqH,EAAMgF,UAAYhF,EAAM+E,aAIrF/E,EAAM4E,eAAiB,WACjBD,EAAIC,gBACND,EAAIC,iBAGN5E,EAAMiF,aAAc,EACpBN,EAAIM,aAAc,EAClBjF,EAAMkF,kBAAmB,CAC3B,EAEAlF,EAAMkF,kBAAmB,EAEzBlF,EAAMmF,gBAAkB,WAClBR,EAAIQ,iBACNR,EAAIQ,kBAGNnF,EAAMoF,cAAe,EACrBT,EAAIS,cAAe,EACnBpF,EAAMyE,qBAAuBF,CAC/B,EAEAvE,EAAMyE,qBAAuBD,EAE7BxE,EAAMqF,yBAA2B,WAC3BV,EAAIU,0BACNV,EAAIU,2BAGNrF,EAAM0E,8BAAgCH,EACtCvE,EAAMmF,iBACR,EAEAnF,EAAM0E,8BAAgCF,EAEhB,OAAlBxE,EAAMsF,cAAsC/f,IAAlBya,EAAMsF,QAAuB,CACzD,IAAIC,EAAM,oBACNlgB,EAAO,SACX2a,EAAMe,MAAQf,EAAMsF,SAAWC,GAAOA,EAAIC,YAAcngB,GAAQA,EAAKmgB,YAAc,IAAMD,GAAOA,EAAIE,YAAcpgB,GAAQA,EAAKogB,YAAc,GAC7IzF,EAAMgB,MAAQhB,EAAM0F,SAAWH,GAAOA,EAAII,WAAatgB,GAAQA,EAAKsgB,WAAa,IAAMJ,GAAOA,EAAIK,WAAavgB,GAAQA,EAAKugB,WAAa,EAC3I,CAGA5F,EAAM6F,MAAQ7F,EAAM8F,UAAY9F,EAAM+F,QAGjB,OAAjB/F,EAAMyB,aAAoClc,IAAjBya,EAAMyB,SAKjCzB,EAAMyB,OAAwB,EAAfzB,EAAMyB,OAAa,EAAmB,EAAfzB,EAAMyB,OAAa,EAAmB,EAAfzB,EAAMyB,OAAa,EAAI,EAGxF,CAIA,OAFAzB,EAAMsE,QAAS,EAERtE,CACT,CAOA,IAAIgG,GAAkB,WACpB,GAAgC,kBAArBtC,GAAgC,CACzCA,IAAmB,EAEnB,IACE,IAAIuC,EAAO1Q,OAAO2Q,eAAe,CAAC,EAAG,UAAW,CAC9CzC,IAAK,WACHC,IAAmB,CACrB,IAEF,qBAA0B,OAAQ,KAAMuC,GACxC,wBAA6B,OAAQ,KAAMA,EAC7C,CAAE,MAAO/hB,GACT,CACF,CAEA,OAAOwf,EACT,EAMIyC,GAAgB,CAAC,aAAc,aAiBnC,SAAS5kB,GAAGuiB,EAAMtiB,EAAMoL,GACtB,GAAIxK,MAAMyC,QAAQrD,GAChB,OAAO4iB,GAAsB7iB,GAAIuiB,EAAMtiB,EAAMoL,GAG1C+W,GAAQxF,IAAI2F,IACfH,GAAQJ,IAAIO,EAAM,CAAC,GAGrB,IAAInhB,EAAOghB,GAAQF,IAAIK,GA8CvB,GA5CKnhB,EAAKohB,WACRphB,EAAKohB,SAAW,CAAC,GAGdphB,EAAKohB,SAASviB,KACjBmB,EAAKohB,SAASviB,GAAQ,IAGnBoL,EAAGwZ,OACNxZ,EAAGwZ,KAAOlD,MAGZvgB,EAAKohB,SAASviB,GAAME,KAAKkL,GAEpBjK,EAAKshB,aACRthB,EAAKwhB,UAAW,EAEhBxhB,EAAKshB,WAAa,SAAUjE,EAAOqG,GACjC,IAAI1jB,EAAKwhB,SAAT,CAIAnE,EAAQqE,GAASrE,GACjB,IAAI+D,EAAWphB,EAAKohB,SAAS/D,EAAMxe,MAEnC,GAAIuiB,EAIF,IAFA,IAAIuC,EAAevC,EAAS/iB,MAAM,GAEzBulB,EAAI,EAAGC,EAAIF,EAAa7mB,OAAQ8mB,EAAIC,IACvCxG,EAAM0E,gCADoC6B,IAI5C,IACED,EAAaC,GAAGrkB,KAAK4hB,EAAM9D,EAAOqG,EACpC,CAAE,MAAOniB,GACPqS,GAAMmB,MAAMxT,EACd,CAjBN,CAqBF,GAGiC,IAA/BvB,EAAKohB,SAASviB,GAAM/B,OACtB,GAAIqkB,EAAK2C,iBAAkB,CACzB,IAAIzhB,GAAU,EAEVghB,MAAqBG,GAActkB,QAAQL,IAAS,IACtDwD,EAAU,CACR0hB,SAAS,IAIb5C,EAAK2C,iBAAiBjlB,EAAMmB,EAAKshB,WAAYjf,EAC/C,MAAW8e,EAAK6C,aACd7C,EAAK6C,YAAY,KAAOnlB,EAAMmB,EAAKshB,WAGzC,CAeA,SAAStiB,GAAImiB,EAAMtiB,EAAMoL,GAEvB,GAAK+W,GAAQxF,IAAI2F,GAAjB,CAIA,IAAInhB,EAAOghB,GAAQF,IAAIK,GAEvB,GAAKnhB,EAAKohB,SAAV,CAIA,GAAI3hB,MAAMyC,QAAQrD,GAChB,OAAO4iB,GAAsBziB,GAAKmiB,EAAMtiB,EAAMoL,GAIhD,IAAIga,EAAa,SAAoB1N,EAAIxD,GACvC/S,EAAKohB,SAASrO,GAAK,GAEnBmO,GAAe3K,EAAIxD,EACrB,EAGA,QAAanQ,IAAT/D,EAAJ,CAUA,IAAIuiB,EAAWphB,EAAKohB,SAASviB,GAE7B,GAAKuiB,EAKL,GAAKnX,EAAL,CAMA,GAAIA,EAAGwZ,KACL,IAAK,IAAII,EAAI,EAAGA,EAAIzC,EAAStkB,OAAQ+mB,IAC/BzC,EAASyC,GAAGJ,OAASxZ,EAAGwZ,MAC1BrC,EAASjiB,OAAO0kB,IAAK,GAK3B3C,GAAeC,EAAMtiB,EAXrB,MAFEolB,EAAW9C,EAAMtiB,EAVnB,MAPE,IAAK,IAAIkU,KAAK/S,EAAKohB,SACbxO,OAAOjU,UAAUgH,eAAepG,KAAKS,EAAKohB,UAAY,CAAC,EAAGrO,IAC5DkR,EAAW9C,EAAMpO,EAjBvB,CANA,CAoDF,CAkBA,SAAS3T,GAAQ+hB,EAAM9D,EAAOqG,GAI5B,IAAIQ,EAAWlD,GAAQxF,IAAI2F,GAAQH,GAAQF,IAAIK,GAAQ,CAAC,EACpD/G,EAAS+G,EAAK7E,YAAc6E,EAAKgD,cAsBrC,GAlBqB,iBAAV9G,EACTA,EAAQ,CACNxe,KAAMwe,EACNrH,OAAQmL,GAEA9D,EAAMrH,SAChBqH,EAAMrH,OAASmL,GAIjB9D,EAAQqE,GAASrE,GAEb6G,EAAS5C,YACX4C,EAAS5C,WAAW/hB,KAAK4hB,EAAM9D,EAAOqG,GAKpCtJ,IAAWiD,EAAMyE,yBAA4C,IAAlBzE,EAAM+G,QACnDhlB,GAAQG,KAAK,KAAM6a,EAAQiD,EAAOqG,QAC7B,IAAKtJ,IAAWiD,EAAMkF,kBAAoBlF,EAAMrH,QAAUqH,EAAMrH,OAAOqH,EAAMxe,MAAO,CACpFmiB,GAAQxF,IAAI6B,EAAMrH,SACrBgL,GAAQJ,IAAIvD,EAAMrH,OAAQ,CAAC,GAG7B,IAAIqO,EAAarD,GAAQF,IAAIzD,EAAMrH,QAE/BqH,EAAMrH,OAAOqH,EAAMxe,QAErBwlB,EAAW7C,UAAW,EAEkB,mBAA7BnE,EAAMrH,OAAOqH,EAAMxe,OAC5Bwe,EAAMrH,OAAOqH,EAAMxe,QAIrBwlB,EAAW7C,UAAW,EAE1B,CAGA,OAAQnE,EAAMkF,gBAChB,CAcA,SAAS+B,GAAInD,EAAMtiB,EAAMoL,GACvB,GAAIxK,MAAMyC,QAAQrD,GAChB,OAAO4iB,GAAsB6C,GAAKnD,EAAMtiB,EAAMoL,GAGhD,IAAIsa,EAAO,SAASA,IAClBvlB,GAAImiB,EAAMtiB,EAAM0lB,GAChBta,EAAGrK,MAAMpB,KAAMc,UACjB,EAGAilB,EAAKd,KAAOxZ,EAAGwZ,KAAOxZ,EAAGwZ,MAAQlD,KACjC3hB,GAAGuiB,EAAMtiB,EAAM0lB,EACjB,CAeA,SAASC,GAAIrD,EAAMtiB,EAAMoL,GACvB,IAAIsa,EAAO,SAASA,IAClBvlB,GAAImiB,EAAMtiB,EAAM0lB,GAChBta,EAAGrK,MAAMpB,KAAMc,UACjB,EAGAilB,EAAKd,KAAOxZ,EAAGwZ,KAAOxZ,EAAGwZ,MAAQlD,KAEjC3hB,GAAGuiB,EAAMtiB,EAAM0lB,EACjB,CAEA,IA4UIE,GA5UAC,GAAsB9R,OAAO6F,OAAO,CACtCC,UAAW,KACXgJ,SAAUA,GACV9iB,GAAIA,GACJI,IAAKA,GACLI,QAASA,GACTklB,IAAKA,GACLE,IAAKA,KAOHG,GAA0B,GAsB1BC,GAAO,SAAczL,EAASlP,EAAI4a,GAE/B5a,EAAGwZ,OACNxZ,EAAGwZ,KAAOlD,MAIZ,IAAIuE,EAAQ7a,EAAG2a,KAAKzL,GAQpB,OADA2L,EAAMrB,KAAOoB,EAAMA,EAAM,IAAM5a,EAAGwZ,KAAOxZ,EAAGwZ,KACrCqB,CACT,EAeIC,GAAW,SAAkB9a,EAAI4V,GACnC,IAAImF,EAAO,gBAAqBtE,MAWhC,OATgB,WACd,IAAIA,EAAM,gBAAqBA,MAE3BA,EAAMsE,GAAQnF,IAChB5V,EAAGrK,WAAM,EAAQN,WACjB0lB,EAAOtE,EAEX,CAGF,EAiFIuE,GAAgB,WAAwB,EAgC5CA,GAActmB,UAAUumB,eAAiB,CAAC,EAY1CD,GAActmB,UAAUC,GAAK,SAAUC,EAAMoL,GAG3C,IAAIkb,EAAM3mB,KAAKslB,iBAEftlB,KAAKslB,iBAAmB,WAAa,EAErCllB,GAAGJ,KAAMK,EAAMoL,GACfzL,KAAKslB,iBAAmBqB,CAC1B,EAUAF,GAActmB,UAAUmlB,iBAAmBmB,GAActmB,UAAUC,GAanEqmB,GAActmB,UAAUK,IAAM,SAAUH,EAAMoL,GAC5CjL,GAAIR,KAAMK,EAAMoL,EAClB,EAUAgb,GAActmB,UAAU0iB,oBAAsB4D,GAActmB,UAAUK,IAatEimB,GAActmB,UAAU2lB,IAAM,SAAUzlB,EAAMoL,GAG5C,IAAIkb,EAAM3mB,KAAKslB,iBAEftlB,KAAKslB,iBAAmB,WAAa,EAErCQ,GAAI9lB,KAAMK,EAAMoL,GAChBzL,KAAKslB,iBAAmBqB,CAC1B,EAEAF,GAActmB,UAAU6lB,IAAM,SAAU3lB,EAAMoL,GAG5C,IAAIkb,EAAM3mB,KAAKslB,iBAEftlB,KAAKslB,iBAAmB,WAAa,EAErCU,GAAIhmB,KAAMK,EAAMoL,GAChBzL,KAAKslB,iBAAmBqB,CAC1B,EAmBAF,GAActmB,UAAUS,QAAU,SAAUie,GAC1C,IAAIxe,EAAOwe,EAAMxe,MAAQwe,EAMJ,iBAAVA,IACTA,EAAQ,CACNxe,KAAMA,IAIVwe,EAAQqE,GAASrE,GAEb7e,KAAK0mB,eAAermB,IAASL,KAAK,KAAOK,IAC3CL,KAAK,KAAOK,GAAMwe,GAGpBje,GAAQZ,KAAM6e,EAChB,EAUA4H,GAActmB,UAAUymB,cAAgBH,GAActmB,UAAUS,QAGhE6lB,GAActmB,UAAU0mB,aAAe,SAAUhI,GAC/C,IAAIiI,EAAQ9mB,KAGPimB,KACHA,GAAY,IAAIc,KAGlB,IAAI1mB,EAAOwe,EAAMxe,MAAQwe,EACrBjV,EAAMqc,GAAU3D,IAAItiB,MAEnB4J,IACHA,EAAM,IAAImd,IACVd,GAAU7D,IAAIpiB,KAAM4J,IAGtB,IAAIod,EAAapd,EAAI0Y,IAAIjiB,GACzBuJ,EAAY,OAAEvJ,GACd,iBAAsB2mB,GACtB,IAAIjgB,EAAU,gBAAoB,WAEf,IAAb6C,EAAIwE,OACNxE,EAAM,KACNqc,GAAkB,OAAEa,IAGtBA,EAAMlmB,QAAQie,EAChB,GAAG,GACHjV,EAAIwY,IAAI/hB,EAAM0G,EAChB,EAOA,IAAIkgB,GAAU,SAAiB7f,GAC7B,MAAwB,mBAAbA,EAAIiC,KACNjC,EAAIiC,OAGW,iBAAbjC,EAAIiC,KACNjC,EAAIiC,KAGTjC,EAAI8f,MACC9f,EAAI8f,MAGT9f,EAAIyQ,aAAezQ,EAAIyQ,YAAYxO,KAC9BjC,EAAIyQ,YAAYxO,YAGXjC,CAChB,EAYI+f,GAAY,SAAmB9P,GACjC,OAAOA,aAAkBoP,MAAmBpP,EAAO+P,aAAe,CAAC,KAAM,MAAO,MAAO,WAAWrd,OAAM,SAAUiU,GAChH,MAA4B,mBAAd3G,EAAO2G,EACvB,GACF,EAkCIqJ,GAAmB,SAA0BhnB,GAC/C,MAEkB,iBAATA,GAAqB,KAAKf,KAAKe,IAASY,MAAMyC,QAAQrD,MAAWA,EAAK/B,MAEjF,EAmBIgpB,GAAiB,SAAwB9P,EAAQpQ,EAAKmgB,GACxD,IAAK/P,IAAWA,EAAO7S,WAAawiB,GAAU3P,GAC5C,MAAM,IAAIxT,MAAM,sBAAwBijB,GAAQ7f,GAAO,IAAMmgB,EAAS,0CAE1E,EAmBIC,GAAoB,SAA2BnnB,EAAM+G,EAAKmgB,GAC5D,IAAKF,GAAiBhnB,GACpB,MAAM,IAAI2D,MAAM,0BAA4BijB,GAAQ7f,GAAO,IAAMmgB,EAAS,yCAE9E,EAmBIE,GAAmB,SAA0BnnB,EAAU8G,EAAKmgB,GAC9D,GAAwB,mBAAbjnB,EACT,MAAM,IAAI0D,MAAM,wBAA0BijB,GAAQ7f,GAAO,IAAMmgB,EAAS,wBAE5E,EAqBIG,GAAsB,SAA6BC,EAAM3mB,EAAMumB,GAGjE,IACI/P,EACAnX,EACAC,EAHAsnB,EAAkB5mB,EAAK1C,OAAS,GAAK0C,EAAK,KAAO2mB,GAAQ3mB,EAAK,KAAO2mB,EAAKP,YAyB9E,OApBIQ,GACFpQ,EAASmQ,EAAKP,YAGVpmB,EAAK1C,QAAU,GACjB0C,EAAKsR,QAGPjS,EAAOW,EAAK,GACZV,EAAWU,EAAK,KAEhBwW,EAASxW,EAAK,GACdX,EAAOW,EAAK,GACZV,EAAWU,EAAK,IAGlBsmB,GAAe9P,EAAQmQ,EAAMJ,GAC7BC,GAAkBnnB,EAAMsnB,EAAMJ,GAC9BE,GAAiBnnB,EAAUqnB,EAAMJ,GAE1B,CACLK,gBAAiBA,EACjBpQ,OAAQA,EACRnX,KAAMA,EACNC,SALFA,EAAW8lB,GAAKuB,EAAMrnB,GAOxB,EAoBIunB,GAAS,SAAgBrQ,EAAQ/R,EAAQpF,EAAMC,GACjDgnB,GAAe9P,EAAQA,EAAQ/R,GAE3B+R,EAAO7S,SACTuhB,GAAOzgB,GAAQ+R,EAAQnX,EAAMC,GAE7BkX,EAAO/R,GAAQpF,EAAMC,EAEzB,EASIwnB,GAAe,CAwBjB1nB,GAAI,WAGF,IAFA,IAAI0mB,EAAQ9mB,KAEHyV,EAAO3U,UAAUxC,OAAQ0C,EAAO,IAAIC,MAAMwU,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E1U,EAAK0U,GAAQ5U,UAAU4U,GAGzB,IAAIqS,EAAuBL,GAAoB1nB,KAAMgB,EAAM,MACvD4mB,EAAkBG,EAAqBH,gBACvCpQ,EAASuQ,EAAqBvQ,OAC9BnX,EAAO0nB,EAAqB1nB,KAC5BC,EAAWynB,EAAqBznB,SAIpC,GAFAunB,GAAOrQ,EAAQ,KAAMnX,EAAMC,IAEtBsnB,EAAiB,CAEpB,IAAII,EAA0B,WAC5B,OAAOlB,EAAMtmB,IAAIgX,EAAQnX,EAAMC,EACjC,EAIA0nB,EAAwB/C,KAAO3kB,EAAS2kB,KAIxC,IAAIgD,EAA+B,WACjC,OAAOnB,EAAMtmB,IAAI,UAAWwnB,EAC9B,EAIAC,EAA6BhD,KAAO3kB,EAAS2kB,KAC7C4C,GAAO7nB,KAAM,KAAM,UAAWgoB,GAC9BH,GAAOrQ,EAAQ,KAAM,UAAWyQ,EAClC,CACF,EAyBAnC,IAAK,WAGH,IAFA,IAAIoC,EAASloB,KAEJ+W,EAAQjW,UAAUxC,OAAQ0C,EAAO,IAAIC,MAAM8V,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFhW,EAAKgW,GAASlW,UAAUkW,GAG1B,IAAImR,EAAwBT,GAAoB1nB,KAAMgB,EAAM,OACxD4mB,EAAkBO,EAAsBP,gBACxCpQ,EAAS2Q,EAAsB3Q,OAC/BnX,EAAO8nB,EAAsB9nB,KAC7BC,EAAW6nB,EAAsB7nB,SAGrC,GAAIsnB,EACFC,GAAOrQ,EAAQ,MAAOnX,EAAMC,OACvB,CAKL,IAAI8nB,EAAU,SAASA,IACrBF,EAAO1nB,IAAIgX,EAAQnX,EAAM+nB,GAEzB,IAAK,IAAInR,EAAQnW,UAAUxC,OAAQ+pB,EAAQ,IAAIpnB,MAAMgW,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACrFmR,EAAMnR,GAASpW,UAAUoW,GAG3B5W,EAASc,MAAM,KAAMinB,EACvB,EAIAD,EAAQnD,KAAO3kB,EAAS2kB,KACxB4C,GAAOrQ,EAAQ,MAAOnX,EAAM+nB,EAC9B,CACF,EA0BApC,IAAK,WAGH,IAFA,IAAIsC,EAAStoB,KAEJmX,EAAQrW,UAAUxC,OAAQ0C,EAAO,IAAIC,MAAMkW,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFpW,EAAKoW,GAAStW,UAAUsW,GAG1B,IAAImR,EAAwBb,GAAoB1nB,KAAMgB,EAAM,OACxD4mB,EAAkBW,EAAsBX,gBACxCpQ,EAAS+Q,EAAsB/Q,OAC/BnX,EAAOkoB,EAAsBloB,KAC7BC,EAAWioB,EAAsBjoB,SAGrC,GAAIsnB,EACFC,GAAOrQ,EAAQ,MAAOnX,EAAMC,OACvB,CACL,IAAI8nB,EAAU,SAASA,IACrBE,EAAO9nB,IAAIgX,EAAQnX,EAAM+nB,GAEzB,IAAK,IAAII,EAAQ1nB,UAAUxC,OAAQ+pB,EAAQ,IAAIpnB,MAAMunB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACrFJ,EAAMI,GAAS3nB,UAAU2nB,GAG3BnoB,EAASc,MAAM,KAAMinB,EACvB,EAIAD,EAAQnD,KAAO3kB,EAAS2kB,KACxB4C,GAAOrQ,EAAQ,MAAOnX,EAAM+nB,EAC9B,CACF,EAqBA5nB,IAAK,SAAekoB,EAAcC,EAAgBroB,GAEhD,IAAKooB,GAAgBrB,GAAiBqB,GACpCloB,GAAIR,KAAKonB,YAAasB,EAAcC,OAC/B,CACL,IAAInR,EAASkR,EACTroB,EAAOsoB,EAEXrB,GAAe9P,EAAQxX,KAAM,OAC7BwnB,GAAkBnnB,EAAML,KAAM,OAC9BynB,GAAiBnnB,EAAUN,KAAM,OAEjCM,EAAW8lB,GAAKpmB,KAAMM,GAGtBN,KAAKQ,IAAI,UAAWF,GAEhBkX,EAAO7S,UACTnE,GAAIgX,EAAQnX,EAAMC,GAClBE,GAAIgX,EAAQ,UAAWlX,IACd6mB,GAAU3P,KACnBA,EAAOhX,IAAIH,EAAMC,GACjBkX,EAAOhX,IAAI,UAAWF,GAE1B,CACF,EAcAM,QAAS,SAAmBie,EAAOqG,GACjCoC,GAAetnB,KAAKonB,YAAapnB,KAAM,WACvC,IAAIK,EAAOwe,GAA0B,iBAAVA,EAAqBA,EAAMxe,KAAOwe,EAE7D,IAAKwI,GAAiBhnB,GAAO,CAC3B,IAAIkW,EAAQ,0BAA4B0Q,GAAQjnB,MAApC,6FAEZ,IAAI6e,EAGF,MAAM,IAAI7a,MAAMuS,IAFfvW,KAAKwV,KAAOJ,IAAOmB,MAAMA,EAI9B,CAEA,OAAO3V,GAAQZ,KAAKonB,YAAavI,EAAOqG,EAC1C,GAoBF,SAAS0D,GAAQpR,EAAQ3T,QACP,IAAZA,IACFA,EAAU,CAAC,GAGb,IACIglB,EADWhlB,EACYglB,YAE3B,GAAIA,EAAa,CACf,IAAKrR,EAAOqR,GAAalkB,SACvB,MAAM,IAAIX,MAAM,oBAAuB6kB,EAAc,mCAGvDrR,EAAO4P,YAAc5P,EAAOqR,EAC9B,MACErR,EAAO4P,YAAcvM,GAAS,OAAQ,CACpCwB,UAAW,kBAwBf,OApBA,GAAO7E,EAAQsQ,IAEXtQ,EAAOsR,kBACTtR,EAAOsR,iBAAiBjqB,SAAQ,SAAUD,GACxCA,GACF,IAIF4Y,EAAOpX,GAAG,WAAW,WACnBoX,EAAOhX,MACP,CAACgX,EAAQA,EAAOuR,IAAKvR,EAAO4P,aAAavoB,SAAQ,SAAUuc,GACrDA,GAAOoH,GAAQxF,IAAI5B,IACrBoH,GAAgB,OAAEpH,EAEtB,IACA,gBAAoB,WAClB5D,EAAO4P,YAAc,IACvB,GAAG,EACL,IACO5P,CACT,CAaA,IAAIwR,GAAgB,CAOlBC,MAAO,CAAC,EAeRC,SAAU,SAAkBC,GAC1B,IAOIC,EAPAtC,EAAQ9mB,KA0CZ,MAvC4B,mBAAjBmpB,IACTA,EAAeA,KAIjB5R,GAAK4R,GAAc,SAAUzmB,EAAOe,GAG9BqjB,EAAMmC,MAAMxlB,KAASf,KACvB0mB,EAAUA,GAAW,CAAC,GACd3lB,GAAO,CACb1F,KAAM+oB,EAAMmC,MAAMxlB,GAClB4lB,GAAI3mB,IAIRokB,EAAMmC,MAAMxlB,GAAOf,CACrB,IAII0mB,GAAWjC,GAAUnnB,OAYvBA,KAAKY,QAAQ,CACXwoB,QAASA,EACT/oB,KAAM,iBAIH+oB,CACT,GAqBF,SAASE,GAAS9R,EAAQ+R,GAUxB,OATA,GAAO/R,EAAQwR,IAGfxR,EAAOyR,MAAQ,GAAO,CAAC,EAAGzR,EAAOyR,MAAOM,GAEC,mBAA9B/R,EAAOgS,oBAAqCrC,GAAU3P,IAC/DA,EAAOpX,GAAG,eAAgBoX,EAAOgS,oBAG5BhS,CACT,CAgBA,IAAInV,GAAc,SAAqBqK,GACrC,MAAsB,iBAAXA,EACFA,EAGFA,EAAO9D,QAAQ,KAAK,SAAU6gB,GACnC,OAAOA,EAAEpnB,aACX,GACF,EAWIqnB,GAAgB,SAAqBhd,GACvC,MAAsB,iBAAXA,EACFA,EAGFA,EAAO9D,QAAQ,KAAK,SAAU6gB,GACnC,OAAOA,EAAE/hB,aACX,GACF,EAwCA,SAASiiB,KAGP,IAFA,IAAIpmB,EAAS,CAAC,EAELkS,EAAO3U,UAAUxC,OAAQmZ,EAAU,IAAIxW,MAAMwU,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAClF+B,EAAQ/B,GAAQ5U,UAAU4U,GAqB5B,OAlBA+B,EAAQ5Y,SAAQ,SAAU8Y,GACnBA,GAILJ,GAAKI,GAAQ,SAAUjV,EAAOe,GACvBmU,GAAQlV,IAKRkV,GAAQrU,EAAOE,MAClBF,EAAOE,GAAO,CAAC,GAGjBF,EAAOE,GAAOkmB,GAAepmB,EAAOE,GAAMf,IARxCa,EAAOE,GAAOf,CASlB,GACF,IACOa,CACT,CAEA,IAAIqmB,GAAuB,WACzB,SAASA,IACP5pB,KAAK6pB,KAAO,CAAC,CACf,CAEA,IAAI3pB,EAAS0pB,EAAQzpB,UAuBrB,OArBAD,EAAO8c,IAAM,SAAavZ,GACxB,OAAOA,KAAOzD,KAAK6pB,IACrB,EAEA3pB,EAAe,OAAI,SAAiBuD,GAClC,IAAIuZ,EAAMhd,KAAKgd,IAAIvZ,GAEnB,cADOzD,KAAK6pB,KAAKpmB,GACVuZ,CACT,EAEA9c,EAAOkiB,IAAM,SAAa3e,EAAKf,GAE7B,OADA1C,KAAK6pB,KAAKpmB,GAAOf,EACV1C,IACT,EAEAE,EAAOrB,QAAU,SAAiBD,EAAUkrB,GAC1C,IAAK,IAAIrmB,KAAOzD,KAAK6pB,KACnBjrB,EAASmC,KAAK+oB,EAAS9pB,KAAK6pB,KAAKpmB,GAAMA,EAAKzD,KAEhD,EAEO4pB,CACT,CA7B2B,GA+BvBG,GAAQ,QAAe,QAAeH,GAEtCI,GAAuB,WACzB,SAASA,IACPhqB,KAAKiqB,KAAO,CAAC,CACf,CAEA,IAAI/pB,EAAS8pB,EAAQ7pB,UAuBrB,OArBAD,EAAO8c,IAAM,SAAavZ,GACxB,OAAOA,KAAOzD,KAAKiqB,IACrB,EAEA/pB,EAAe,OAAI,SAAiBuD,GAClC,IAAIuZ,EAAMhd,KAAKgd,IAAIvZ,GAEnB,cADOzD,KAAKiqB,KAAKxmB,GACVuZ,CACT,EAEA9c,EAAOsc,IAAM,SAAa/Y,GAExB,OADAzD,KAAKiqB,KAAKxmB,GAAO,EACVzD,IACT,EAEAE,EAAOrB,QAAU,SAAiBD,EAAUkrB,GAC1C,IAAK,IAAIrmB,KAAOzD,KAAKiqB,KACnBrrB,EAASmC,KAAK+oB,EAASrmB,EAAKA,EAAKzD,KAErC,EAEOgqB,CACT,CA7B2B,GA+BvBE,GAAQ,QAAe,QAAeF,GAgBtCG,GAA2B,WA6B7B,SAASC,EAAUhJ,EAAQvd,EAASwmB,GAClC,IAAIvD,EAAQ9mB,KAmBZ,IAhBKohB,GAAUphB,KAAKsqB,KAClBtqB,KAAKuqB,QAAUnJ,EAASphB,KAExBA,KAAKuqB,QAAUnJ,EAGjBphB,KAAKwqB,aAAc,EAEnBxqB,KAAKyqB,iBAAmB,KAExBzqB,KAAK0qB,SAAWf,GAAe,CAAC,EAAG3pB,KAAK0qB,UAExC7mB,EAAU7D,KAAK0qB,SAAWf,GAAe3pB,KAAK0qB,SAAU7mB,GAExD7D,KAAK2qB,IAAM9mB,EAAQ2K,IAAM3K,EAAQkU,IAAMlU,EAAQkU,GAAGvJ,IAE7CxO,KAAK2qB,IAAK,CAEb,IAAInc,EAAK4S,GAAUA,EAAO5S,IAAM4S,EAAO5S,MAAQ,YAC/CxO,KAAK2qB,IAAMnc,EAAK,cAAgBuT,IAClC,CAEA/hB,KAAKknB,MAAQrjB,EAAQwF,MAAQ,KAEzBxF,EAAQkU,GACV/X,KAAK+oB,IAAMllB,EAAQkU,IACW,IAArBlU,EAAQgX,WACjB7a,KAAK+oB,IAAM/oB,KAAK6a,YAGdhX,EAAQwY,WAAarc,KAAK+oB,KAC5BllB,EAAQwY,UAAU/Z,MAAM,KAAKzD,SAAQ,SAAUgL,GAC7C,OAAOid,EAAMxK,SAASzS,EACxB,KAIsB,IAApBhG,EAAQ+kB,UAEVA,GAAQ5oB,KAAM,CACZ6oB,YAAa7oB,KAAK+oB,IAAM,MAAQ,OAElC/oB,KAAK4qB,qBAAuB5qB,KAAK4qB,qBAAqBxE,KAAKpmB,MAC3DA,KAAKI,GAAGJ,KAAKuqB,QAAS,iBAAkBvqB,KAAK4qB,uBAG/CtB,GAAStpB,KAAMA,KAAK6X,YAAY0R,cAChCvpB,KAAK6qB,UAAY,GACjB7qB,KAAK8qB,YAAc,CAAC,EACpB9qB,KAAK+qB,gBAAkB,CAAC,EACxB/qB,KAAKgrB,eAAiB,IAAId,GAC1BlqB,KAAKirB,gBAAkB,IAAIf,GAC3BlqB,KAAKkrB,QAAU,IAAIhB,GACnBlqB,KAAKmrB,WAAa,IAAIpB,GACtB/pB,KAAKorB,0BAA2B,GAEH,IAAzBvnB,EAAQwnB,cACVrrB,KAAKqrB,eAKPrrB,KAAKqqB,MAAMA,IAEyB,IAAhCxmB,EAAQynB,qBACVtrB,KAAKurB,qBAET,CAWA,IAAIrrB,EAASkqB,EAAUjqB,UAwmDvB,OAtmDAD,EAAOmB,QAAU,SAAiBwC,GAMhC,QALgB,IAAZA,IACFA,EAAU,CAAC,IAIT7D,KAAKwqB,YAAT,CAyBA,GArBIxqB,KAAKwrB,cACPxrB,KAAKwrB,YAAYltB,OAAS,GAc5B0B,KAAKY,QAAQ,CACXP,KAAM,UACNulB,SAAS,IAEX5lB,KAAKwqB,aAAc,EAEfxqB,KAAK6qB,UACP,IAAK,IAAItsB,EAAIyB,KAAK6qB,UAAUvsB,OAAS,EAAGC,GAAK,EAAGA,IAC1CyB,KAAK6qB,UAAUtsB,GAAG8C,SACpBrB,KAAK6qB,UAAUtsB,GAAG8C,UAMxBrB,KAAK6qB,UAAY,KACjB7qB,KAAK8qB,YAAc,KACnB9qB,KAAK+qB,gBAAkB,KACvB/qB,KAAKyqB,iBAAmB,KAEpBzqB,KAAK+oB,MAEH/oB,KAAK+oB,IAAIjL,aACPja,EAAQ4nB,UACVzrB,KAAK+oB,IAAIjL,WAAW4N,aAAa7nB,EAAQ4nB,UAAWzrB,KAAK+oB,KAEzD/oB,KAAK+oB,IAAIjL,WAAWmC,YAAYjgB,KAAK+oB,MAIzC/oB,KAAK+oB,IAAM,MAIb/oB,KAAKuqB,QAAU,IAnDf,CAoDF,EASArqB,EAAOyrB,WAAa,WAClB,OAAOlS,QAAQzZ,KAAKwqB,YACtB,EASAtqB,EAAOkhB,OAAS,WACd,OAAOphB,KAAKuqB,OACd,EAcArqB,EAAO2D,QAAU,SAAiBuD,GAChC,OAAKA,GAILpH,KAAK0qB,SAAWf,GAAe3pB,KAAK0qB,SAAUtjB,GACvCpH,KAAK0qB,UAJH1qB,KAAK0qB,QAKhB,EASAxqB,EAAO6X,GAAK,WACV,OAAO/X,KAAK+oB,GACd,EAkBA7oB,EAAO2a,SAAW,SAAoBC,EAASC,EAAYC,GACzD,OAAOH,GAASC,EAASC,EAAYC,EACvC,EAyCA9a,EAAO0rB,SAAW,SAAkBlf,EAAQmf,EAAQC,QAC7B,IAAjBA,IACFA,EAAepf,GAGjB,IAAIzF,EAAOjH,KAAKuqB,QAAQwB,UAAY/rB,KAAKuqB,QAAQwB,WAC7CC,EAAYhsB,KAAKuqB,QAAQyB,WAAahsB,KAAKuqB,QAAQyB,YACnDD,EAAWC,GAAaA,EAAU/kB,GAClCglB,EAAchlB,GAAQA,EAAK3E,MAAM,KAAK,GACtC4pB,EAAcF,GAAaA,EAAUC,GACrCE,EAAkBL,EAqBtB,OAnBIC,GAAYA,EAASrf,GACvByf,EAAkBJ,EAASrf,GAClBwf,GAAeA,EAAYxf,KACpCyf,EAAkBD,EAAYxf,IAG5Bmf,IACFM,EAAkBA,EAAgBvjB,QAAQ,cAAc,SAAUU,EAAO7I,GACvE,IAAIiC,EAAQmpB,EAAOprB,EAAQ,GACvB2rB,EAAM1pB,EAMV,YAJqB,IAAVA,IACT0pB,EAAM9iB,GAGD8iB,CACT,KAGKD,CACT,EAQAjsB,EAAO0qB,qBAAuB,WAAiC,EAU/D1qB,EAAOmsB,UAAY,WACjB,OAAOrsB,KAAKssB,YAActsB,KAAK+oB,GACjC,EASA7oB,EAAOsO,GAAK,WACV,OAAOxO,KAAK2qB,GACd,EAUAzqB,EAAOmJ,KAAO,WACZ,OAAOrJ,KAAKknB,KACd,EASAhnB,EAAOqsB,SAAW,WAChB,OAAOvsB,KAAK6qB,SACd,EAYA3qB,EAAOssB,aAAe,SAAsBhe,GAC1C,OAAOxO,KAAK8qB,YAAYtc,EAC1B,EAYAtO,EAAOusB,SAAW,SAAkBpjB,GAClC,GAAKA,EAIL,OAAOrJ,KAAK+qB,gBAAgB1hB,EAC9B,EAiBAnJ,EAAOwsB,cAAgB,WACrB,IAAK,IAAIjX,EAAO3U,UAAUxC,OAAQquB,EAAQ,IAAI1rB,MAAMwU,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAChFiX,EAAMjX,GAAQ5U,UAAU4U,GAI1BiX,EAAQA,EAAMpqB,QAAO,SAAUqqB,EAAKvH,GAClC,OAAOuH,EAAI/a,OAAOwT,EACpB,GAAG,IAGH,IAFA,IAAIwH,EAAe7sB,KAEVzB,EAAI,EAAGA,EAAIouB,EAAMruB,OAAQC,IAGhC,KAFAsuB,EAAeA,EAAaJ,SAASE,EAAMpuB,OAErBsuB,EAAaJ,SACjC,OAIJ,OAAOI,CACT,EAqBA3sB,EAAO4sB,SAAW,SAAkBnR,EAAO9X,EAASpD,GASlD,IAAIssB,EACAC,EAEJ,QAXgB,IAAZnpB,IACFA,EAAU,CAAC,QAGC,IAAVpD,IACFA,EAAQT,KAAK6qB,UAAUvsB,QAMJ,iBAAVqd,EAAoB,CAC7BqR,EAAgBtD,GAAc/N,GAC9B,IAAIsR,EAAqBppB,EAAQqpB,gBAAkBF,EAEnDnpB,EAAQwF,KAAO2jB,EAGf,IAAIG,EAAiB/C,EAAUgD,aAAaH,GAE5C,IAAKE,EACH,MAAM,IAAInpB,MAAM,aAAeipB,EAAqB,mBAOtD,GAA8B,mBAAnBE,EACT,OAAO,KAGTJ,EAAY,IAAII,EAAentB,KAAKuqB,SAAWvqB,KAAM6D,EACvD,MACEkpB,EAAYpR,EAyBd,GAtBIoR,EAAUtC,kBACZsC,EAAUtC,iBAAiBxK,YAAY8M,GAGzC/sB,KAAK6qB,UAAUlqB,OAAOF,EAAO,EAAGssB,GAChCA,EAAUtC,iBAAmBzqB,KAED,mBAAjB+sB,EAAUve,KACnBxO,KAAK8qB,YAAYiC,EAAUve,MAAQue,IAKrCC,EAAgBA,GAAiBD,EAAU1jB,MAAQqgB,GAAcqD,EAAU1jB,WAGzErJ,KAAK+qB,gBAAgBiC,GAAiBD,EACtC/sB,KAAK+qB,gBAAgB1oB,GAAY2qB,IAAkBD,GAKzB,mBAAjBA,EAAUhV,IAAqBgV,EAAUhV,KAAM,CAExD,IAAIsV,EAAU,KAEVrtB,KAAK6qB,UAAUpqB,EAAQ,KAErBT,KAAK6qB,UAAUpqB,EAAQ,GAAGsoB,IAC5BsE,EAAUrtB,KAAK6qB,UAAUpqB,EAAQ,GAAGsoB,IAC3BzO,GAAKta,KAAK6qB,UAAUpqB,EAAQ,MACrC4sB,EAAUrtB,KAAK6qB,UAAUpqB,EAAQ,KAIrCT,KAAKqsB,YAAYvQ,aAAaiR,EAAUhV,KAAMsV,EAChD,CAGA,OAAON,CACT,EAUA7sB,EAAO+f,YAAc,SAAqB8M,GAKxC,GAJyB,iBAAdA,IACTA,EAAY/sB,KAAKysB,SAASM,IAGvBA,GAAc/sB,KAAK6qB,UAAxB,CAMA,IAFA,IAAIyC,GAAa,EAER/uB,EAAIyB,KAAK6qB,UAAUvsB,OAAS,EAAGC,GAAK,EAAGA,IAC9C,GAAIyB,KAAK6qB,UAAUtsB,KAAOwuB,EAAW,CACnCO,GAAa,EACbttB,KAAK6qB,UAAUlqB,OAAOpC,EAAG,GACzB,KACF,CAGF,GAAK+uB,EAAL,CAIAP,EAAUtC,iBAAmB,KAC7BzqB,KAAK8qB,YAAYiC,EAAUve,MAAQ,KACnCxO,KAAK+qB,gBAAgBrB,GAAcqD,EAAU1jB,SAAW,KACxDrJ,KAAK+qB,gBAAgB1oB,GAAY0qB,EAAU1jB,SAAW,KACtD,IAAIkkB,EAASR,EAAUhV,KAEnBwV,GAAUA,EAAOzP,aAAe9d,KAAKqsB,aACvCrsB,KAAKqsB,YAAYpM,YAAY8M,EAAUhV,KATzC,CAdA,CAyBF,EAMA7X,EAAOmrB,aAAe,WACpB,IAAInD,EAASloB,KAETusB,EAAWvsB,KAAK0qB,SAAS6B,SAE7B,GAAIA,EAAU,CAEZ,IAwCIiB,EAxCAC,EAAgBztB,KAAK0qB,SAyCrBgD,EAAOtD,EAAUgD,aAAa,SAGhCI,EADEvsB,MAAMyC,QAAQ6oB,GACEA,EAEAnY,OAAOC,KAAKkY,IAK/B1a,OAAOuC,OAAOC,KAAKrU,KAAK0qB,UAAUpW,QAAO,SAAUqH,GAClD,OAAQ6R,EAAgBG,MAAK,SAAUC,GACrC,MAAsB,iBAAXA,EACFjS,IAAUiS,EAGZjS,IAAUiS,EAAOvkB,IAC1B,GACF,KAAIO,KAAI,SAAU+R,GAChB,IAAItS,EACAyb,EAUJ,MARqB,iBAAVnJ,EAETmJ,EAAOyH,EADPljB,EAAOsS,IACkBuM,EAAOwC,SAASrhB,IAAS,CAAC,GAEnDA,EAAOsS,EAAMtS,KACbyb,EAAOnJ,GAGF,CACLtS,KAAMA,EACNyb,KAAMA,EAEV,IAAGxQ,QAAO,SAAUqH,GAIlB,IAAI9R,EAAIugB,EAAUgD,aAAazR,EAAMmJ,KAAKoI,gBAAkBxD,GAAc/N,EAAMtS,OAChF,OAAOQ,IAAM6jB,EAAKG,OAAOhkB,EAC3B,IAAGhL,SA/Ea,SAAmB8c,GACjC,IAAItS,EAAOsS,EAAMtS,KACbyb,EAAOnJ,EAAMmJ,KAUjB,QAN4B1gB,IAAxBqpB,EAAcpkB,KAChByb,EAAO2I,EAAcpkB,KAKV,IAATyb,EAAJ,EAMa,IAATA,IACFA,EAAO,CAAC,GAMVA,EAAKgJ,cAAgB5F,EAAOwC,SAASoD,cAKrC,IAAIC,EAAW7F,EAAO4E,SAASzjB,EAAMyb,GAEjCiJ,IACF7F,EAAO7e,GAAQ0kB,EAnBjB,CAqBF,GA6CF,CACF,EAWA7tB,EAAO8tB,cAAgB,WAGrB,MAAO,EACT,EAWA9tB,EAAOmqB,MAAQ,SAAe5e,EAAIzF,GAKhC,QAJa,IAATA,IACFA,GAAO,GAGJyF,EAIL,OAAKzL,KAAKiuB,cAMNjoB,EACFyF,EAAG1K,KAAKf,MAGRA,KAAKqG,WAAWoF,EAAI,KATpBzL,KAAKwrB,YAAcxrB,KAAKwrB,aAAe,QACvCxrB,KAAKwrB,YAAYjrB,KAAKkL,GAU1B,EAQAvL,EAAOguB,aAAe,WACpBluB,KAAKiuB,UAAW,EAEhBjuB,KAAKqG,YAAW,WACd,IAAI8nB,EAAanuB,KAAKwrB,YAEtBxrB,KAAKwrB,YAAc,GAEf2C,GAAcA,EAAW7vB,OAAS,GACpC6vB,EAAWtvB,SAAQ,SAAU4M,GAC3BA,EAAG1K,KAAKf,KACV,GAAGA,MAWLA,KAAKY,QAAQ,QACf,GAAG,EACL,EAqBAV,EAAOugB,EAAI,SAAa/F,EAAUC,GAChC,OAAO8F,GAAE/F,EAAUC,GAAW3a,KAAKqsB,YACrC,EAqBAnsB,EAAOwgB,GAAK,SAAchG,EAAUC,GAClC,OAAO+F,GAAGhG,EAAUC,GAAW3a,KAAKqsB,YACtC,EAaAnsB,EAAO8b,SAAW,SAAoBE,GACpC,OAAOF,GAAShc,KAAK+oB,IAAK7M,EAC5B,EASAhc,EAAOoc,SAAW,SAAoBC,GACpCD,GAAStc,KAAK+oB,IAAKxM,EACrB,EASArc,EAAOuc,YAAc,SAAuBC,GAC1CD,GAAYzc,KAAK+oB,IAAKrM,EACxB,EAcAxc,EAAO2c,YAAc,SAAuBC,EAAeC,GACzDF,GAAY7c,KAAK+oB,IAAKjM,EAAeC,EACvC,EAOA7c,EAAOkuB,KAAO,WACZpuB,KAAKyc,YAAY,aACnB,EAOAvc,EAAOmuB,KAAO,WACZruB,KAAKsc,SAAS,aAChB,EASApc,EAAOouB,YAAc,WACnBtuB,KAAKsc,SAAS,mBAChB,EASApc,EAAOquB,cAAgB,WACrBvuB,KAAKyc,YAAY,mBACnB,EAkBAvc,EAAOsd,aAAe,SAAwBC,GAC5C,OAAOD,GAAaxd,KAAK+oB,IAAKtL,EAChC,EAcAvd,EAAOmb,aAAe,SAAwBoC,EAAW/a,GACvD2Y,GAAarb,KAAK+oB,IAAKtL,EAAW/a,EACpC,EAWAxC,EAAOid,gBAAkB,SAA2BM,GAClDN,GAAgBnd,KAAK+oB,IAAKtL,EAC5B,EAiBAvd,EAAOge,MAAQ,SAAesQ,EAAKC,GACjC,OAAOzuB,KAAK0uB,UAAU,QAASF,EAAKC,EACtC,EAiBAvuB,EAAO+d,OAAS,SAAgBuQ,EAAKC,GACnC,OAAOzuB,KAAK0uB,UAAU,SAAUF,EAAKC,EACvC,EAYAvuB,EAAOyuB,WAAa,SAAoBzQ,EAAOD,GAE7Cje,KAAKke,MAAMA,GAAO,GAClBle,KAAKie,OAAOA,EACd,EA+BA/d,EAAOwuB,UAAY,SAAmBE,EAAeJ,EAAKC,GACxD,QAAYrqB,IAARoqB,EA0BF,OAxBY,OAARA,GAAgBA,GAAQA,IAC1BA,EAAM,IAIyB,KAA5B,GAAKA,GAAK9tB,QAAQ,OAA6C,KAA7B,GAAK8tB,GAAK9tB,QAAQ,MACvDV,KAAK+oB,IAAIrH,MAAMkN,GAAiBJ,EAEhCxuB,KAAK+oB,IAAIrH,MAAMkN,GADE,SAARJ,EACuB,GAEAA,EAAM,UAInCC,GAOHzuB,KAAKY,QAAQ,oBAQjB,IAAKZ,KAAK+oB,IACR,OAAO,EAIT,IAAI3N,EAAMpb,KAAK+oB,IAAIrH,MAAMkN,GACrBC,EAAUzT,EAAI1a,QAAQ,MAE1B,OAAiB,IAAbmuB,EAEKC,SAAS1T,EAAIvb,MAAM,EAAGgvB,GAAU,IAMlCC,SAAS9uB,KAAK+oB,IAAI,SAAWW,GAAckF,IAAiB,GACrE,EAeA1uB,EAAO6uB,iBAAmB,SAA0BH,GAClD,IAAII,EAAwB,EAE5B,GAAsB,UAAlBJ,GAA+C,WAAlBA,EAC/B,MAAM,IAAI5qB,MAAM,uDASlB,GANAgrB,EAAwBlX,GAAc9X,KAAK+oB,IAAK6F,GAMlB,KAJ9BI,EAAwBzW,WAAWyW,KAIAC,MAAMD,GAAwB,CAC/D,IAAIE,EAAO,SAAWxF,GAAckF,GACpCI,EAAwBhvB,KAAK+oB,IAAImG,EACnC,CAEA,OAAOF,CACT,EAyBA9uB,EAAOivB,kBAAoB,WACzB,MAAO,CACLjR,MAAOle,KAAK+uB,iBAAiB,SAC7B9Q,OAAQje,KAAK+uB,iBAAiB,UAElC,EAWA7uB,EAAOkvB,aAAe,WACpB,OAAOpvB,KAAK+uB,iBAAiB,QAC/B,EAWA7uB,EAAOmvB,cAAgB,WACrB,OAAOrvB,KAAK+uB,iBAAiB,SAC/B,EAMA7uB,EAAOyd,MAAQ,WACb3d,KAAK+oB,IAAIpL,OACX,EAMAzd,EAAOovB,KAAO,WACZtvB,KAAK+oB,IAAIuG,MACX,EAUApvB,EAAOqvB,cAAgB,SAAuB1Q,GACxC7e,KAAKuqB,UAGF,eAAmB1L,EAAO,QAC7BA,EAAMmF,kBAGRhkB,KAAKuqB,QAAQgF,cAAc1Q,GAE/B,EAYA3e,EAAOsvB,eAAiB,SAAwB3Q,GAC9C7e,KAAKuvB,cAAc1Q,EACrB,EAgBA3e,EAAOuvB,cAAgB,WAErB,IAQIC,EARAC,EAAa,EACbC,EAAa,KAQjB5vB,KAAKI,GAAG,cAAc,SAAUye,GAED,IAAzBA,EAAMgR,QAAQvxB,SAEhBsxB,EAAa,CACXhQ,MAAOf,EAAMgR,QAAQ,GAAGjQ,MACxBC,MAAOhB,EAAMgR,QAAQ,GAAGhQ,OAG1B8P,EAAa,gBAAqBzN,MAElCwN,GAAa,EAEjB,IACA1vB,KAAKI,GAAG,aAAa,SAAUye,GAE7B,GAAIA,EAAMgR,QAAQvxB,OAAS,EACzBoxB,GAAa,OACR,GAAIE,EAAY,CAGrB,IAAIE,EAAQjR,EAAMgR,QAAQ,GAAGjQ,MAAQgQ,EAAWhQ,MAC5CmQ,EAAQlR,EAAMgR,QAAQ,GAAGhQ,MAAQ+P,EAAW/P,MAC5B/T,KAAKkkB,KAAKF,EAAQA,EAAQC,EAAQA,GA3B/B,KA8BrBL,GAAa,EAEjB,CACF,IAEA,IAAIO,EAAQ,WACVP,GAAa,CACf,EAGA1vB,KAAKI,GAAG,aAAc6vB,GACtBjwB,KAAKI,GAAG,cAAe6vB,GAGvBjwB,KAAKI,GAAG,YAAY,SAAUye,IAC5B+Q,EAAa,MAEM,IAAfF,KAEc,gBAAqBxN,MAAQyN,EA/CxB,MAmDnB9Q,EAAM4E,iBAQNzjB,KAAKY,QAAQ,QAKnB,GACF,EA0BAV,EAAOqrB,oBAAsB,WAE3B,GAAKvrB,KAAKohB,UAAaphB,KAAKohB,SAAS8O,mBAArC,CAKA,IACIC,EADAC,EAAShK,GAAKpmB,KAAKohB,SAAUphB,KAAKohB,SAAS8O,oBAE/ClwB,KAAKI,GAAG,cAAc,WACpBgwB,IAIApwB,KAAKqwB,cAAcF,GAEnBA,EAAenwB,KAAKswB,YAAYF,EAAQ,IAC1C,IAEA,IAAIG,EAAW,SAAkB1R,GAC/BuR,IAEApwB,KAAKqwB,cAAcF,EACrB,EAEAnwB,KAAKI,GAAG,YAAagwB,GACrBpwB,KAAKI,GAAG,WAAYmwB,GACpBvwB,KAAKI,GAAG,cAAemwB,EAvBvB,CAwBF,EAoCArwB,EAAOmG,WAAa,SAAoBoF,EAAI1E,GAC1C,IAIIypB,EAJAlI,EAAStoB,KAeb,OAVAyL,EAAK2a,GAAKpmB,KAAMyL,GAChBzL,KAAKywB,wBACLD,EAAY,gBAAoB,WAC1BlI,EAAO0C,eAAehO,IAAIwT,IAC5BlI,EAAO0C,eAAuB,OAAEwF,GAGlC/kB,GACF,GAAG1E,GACH/G,KAAKgrB,eAAexO,IAAIgU,GACjBA,CACT,EAkBAtwB,EAAOgF,aAAe,SAAsBsrB,GAM1C,OALIxwB,KAAKgrB,eAAehO,IAAIwT,KAC1BxwB,KAAKgrB,eAAuB,OAAEwF,GAC9B,iBAAsBA,IAGjBA,CACT,EAuBAtwB,EAAOowB,YAAc,SAAqB7kB,EAAIilB,GAC5CjlB,EAAK2a,GAAKpmB,KAAMyL,GAChBzL,KAAKywB,wBACL,IAAIE,EAAa,gBAAqBllB,EAAIilB,GAE1C,OADA1wB,KAAKirB,gBAAgBzO,IAAImU,GAClBA,CACT,EAkBAzwB,EAAOmwB,cAAgB,SAAuBM,GAM5C,OALI3wB,KAAKirB,gBAAgBjO,IAAI2T,KAC3B3wB,KAAKirB,gBAAwB,OAAE0F,GAC/B,kBAAuBA,IAGlBA,CACT,EA4BAzwB,EAAO0wB,sBAAwB,SAA+BnlB,GAC5D,IAUI+C,EAVAqiB,EAAS7wB,KAGb,OAAKA,KAAK8wB,cAIV9wB,KAAKywB,wBAILhlB,EAAK2a,GAAKpmB,KAAMyL,GAChB+C,EAAK,2BAA+B,WAC9BqiB,EAAO3F,QAAQlO,IAAIxO,IACrBqiB,EAAO3F,QAAgB,OAAE1c,GAG3B/C,GACF,IACAzL,KAAKkrB,QAAQ1O,IAAIhO,GACVA,GAhBExO,KAAKqG,WAAWoF,EAAI,IAAO,GAiBtC,EAeAvL,EAAO6wB,2BAA6B,SAAoC1nB,EAAMoC,GAC5E,IAAIulB,EAAShxB,KAEb,IAAIA,KAAKmrB,WAAWnO,IAAI3T,GAAxB,CAIArJ,KAAKywB,wBACLhlB,EAAK2a,GAAKpmB,KAAMyL,GAChB,IAAI+C,EAAKxO,KAAK4wB,uBAAsB,WAClCnlB,IAEIulB,EAAO7F,WAAWnO,IAAI3T,IACxB2nB,EAAO7F,WAAmB,OAAE9hB,EAEhC,IAEA,OADArJ,KAAKmrB,WAAW/I,IAAI/Y,EAAMmF,GACnBnF,CAZP,CAaF,EASAnJ,EAAO+wB,0BAA4B,SAAmC5nB,GAC/DrJ,KAAKmrB,WAAWnO,IAAI3T,KAIzBrJ,KAAKkxB,qBAAqBlxB,KAAKmrB,WAAW7I,IAAIjZ,IAC9CrJ,KAAKmrB,WAAmB,OAAE9hB,GAC5B,EAmBAnJ,EAAOgxB,qBAAuB,SAA8B1iB,GAE1D,OAAKxO,KAAK8wB,cAIN9wB,KAAKkrB,QAAQlO,IAAIxO,KACnBxO,KAAKkrB,QAAgB,OAAE1c,GACvB,yBAA8BA,IAGzBA,GARExO,KAAKkF,aAAasJ,EAS7B,EAaAtO,EAAOuwB,sBAAwB,WAC7B,IAAIU,EAASnxB,KAETA,KAAKorB,2BAITprB,KAAKorB,0BAA2B,EAChCprB,KAAK8lB,IAAI,WAAW,WAClB,CAAC,CAAC,aAAc,6BAA8B,CAAC,UAAW,wBAAyB,CAAC,iBAAkB,gBAAiB,CAAC,kBAAmB,kBAAkBjnB,SAAQ,SAAUuM,GAC7K,IAAIgmB,EAAShmB,EAAK,GACdimB,EAAajmB,EAAK,GAKtB+lB,EAAOC,GAAQvyB,SAAQ,SAAUuc,EAAK3X,GACpC,OAAO0tB,EAAOE,GAAY5tB,EAC5B,GACF,IACA0tB,EAAO/F,0BAA2B,CACpC,IACF,EAsBAhB,EAAUkH,kBAAoB,SAA2BjoB,EAAMkoB,GAC7D,GAAoB,iBAATloB,IAAsBA,EAC/B,MAAM,IAAIrF,MAAM,4BAA+BqF,EAAO,kCAGxD,IAMMmoB,EANF9D,EAAOtD,EAAUgD,aAAa,QAE9BS,EAASH,GAAQA,EAAKG,OAAO0D,GAC7BE,EAASrH,IAAcmH,GAAuBnH,EAAUjqB,UAAUuxB,cAAcH,EAAoBpxB,WAExG,GAAI0tB,IAAW4D,EASb,MALED,EADE3D,EACO,qDAEA,+BAGL,IAAI7pB,MAAM,uBAA0BqF,EAAO,MAASmoB,EAAS,KAGrEnoB,EAAOqgB,GAAcrgB,GAEhB+gB,EAAUuH,cACbvH,EAAUuH,YAAc,CAAC,GAG3B,IAAIC,EAASxH,EAAUgD,aAAa,UAEpC,GAAa,WAAT/jB,GAAqBuoB,GAAUA,EAAOC,QAAS,CACjD,IAAIA,EAAUD,EAAOC,QACjBC,EAAc1d,OAAOC,KAAKwd,GAK9B,GAAIA,GAAWC,EAAYxzB,OAAS,GAAKwzB,EAAYloB,KAAI,SAAUmoB,GACjE,OAAOF,EAAQE,EACjB,IAAGhoB,MAAM0P,SACP,MAAM,IAAIzV,MAAM,mEAEpB,CAIA,OAFAomB,EAAUuH,YAAYtoB,GAAQkoB,EAC9BnH,EAAUuH,YAAYtvB,GAAYgH,IAASkoB,EACpCA,CACT,EAYAnH,EAAUgD,aAAe,SAAsB/jB,GAC7C,GAAKA,GAAS+gB,EAAUuH,YAIxB,OAAOvH,EAAUuH,YAAYtoB,EAC/B,EAEO+gB,CACT,CAxtD+B,GA0zD/B,SAAS4H,GAASzK,EAAQ0K,EAAYC,EAAQC,GAE5C,OAjCF,SAAoB5K,EAAQ9mB,EAAO2xB,GACjC,GAAqB,iBAAV3xB,GAAsBA,EAAQ,GAAKA,EAAQ2xB,EACpD,MAAM,IAAIpuB,MAAM,sBAAwBujB,EAAS,0CAA4C9mB,EAAQ,wCAA0C2xB,EAAW,KAE9J,CA4BEC,CAAW9K,EAAQ4K,EAAYD,EAAO5zB,OAAS,GACxC4zB,EAAOC,GAAYF,EAC5B,CAUA,SAASK,GAAoBJ,GAC3B,IAAIK,EA0BJ,OAvBEA,OADanuB,IAAX8tB,GAA0C,IAAlBA,EAAO5zB,OACjB,CACdA,OAAQ,EACRk0B,MAAO,WACL,MAAM,IAAIxuB,MAAM,kCAClB,EACA0L,IAAK,WACH,MAAM,IAAI1L,MAAM,kCAClB,GAGc,CACd1F,OAAQ4zB,EAAO5zB,OACfk0B,MAAOR,GAAS5L,KAAK,KAAM,QAAS,EAAG8L,GACvCxiB,IAAKsiB,GAAS5L,KAAK,KAAM,MAAO,EAAG8L,IAInC,YAAmB,WAAgB1qB,WACrC+qB,EAAc,WAAgB/qB,UAAY,WACxC,OAAQ0qB,GAAU,IAAIhT,QACxB,GAGKqT,CACT,CAeA,SAASE,GAAiBD,EAAO9iB,GAC/B,OAAIzO,MAAMyC,QAAQ8uB,GACTF,GAAoBE,QACRpuB,IAAVouB,QAA+BpuB,IAARsL,EACzB4iB,KAGFA,GAAoB,CAAC,CAACE,EAAO9iB,IACtC,CAmBA,SAASgjB,GAAgBC,EAAUC,GACjC,IACIJ,EACA9iB,EAFAmjB,EAAmB,EAIvB,IAAKD,EACH,OAAO,EAGJD,GAAaA,EAASr0B,SACzBq0B,EAAWF,GAAiB,EAAG,IAGjC,IAAK,IAAIl0B,EAAI,EAAGA,EAAIo0B,EAASr0B,OAAQC,IACnCi0B,EAAQG,EAASH,MAAMj0B,IACvBmR,EAAMijB,EAASjjB,IAAInR,IAETq0B,IACRljB,EAAMkjB,GAGRC,GAAoBnjB,EAAM8iB,EAG5B,OAAOK,EAAmBD,CAC5B,CAuBA,SAASE,GAAWpwB,GAGlB,GAAIA,aAAiBowB,GACnB,OAAOpwB,EAGY,iBAAVA,EACT1C,KAAKiH,KAAOvE,EACc,iBAAVA,EAEhB1C,KAAK+yB,QAAUrwB,EACN4U,GAAS5U,KAGQ,iBAAfA,EAAMuE,OACfjH,KAAKiH,KAAOvE,EAAMuE,MAGpB,GAAOjH,KAAM0C,IAGV1C,KAAK+yB,UACR/yB,KAAK+yB,QAAUD,GAAWE,gBAAgBhzB,KAAKiH,OAAS,GAE5D,CAnPAkjB,GAAYhqB,UAAU2wB,aAAyD,mBAAnC,2BAA0F,mBAAlC,yBACpG3G,GAAYmH,kBAAkB,YAAanH,IA0P3C2I,GAAW3yB,UAAU8G,KAAO,EAQ5B6rB,GAAW3yB,UAAU4yB,QAAU,GAW/BD,GAAW3yB,UAAUoF,OAAS,KAe9ButB,GAAWG,WAAa,CAAC,mBAAoB,oBAAqB,oBAAqB,mBAAoB,8BAA+B,uBAQ1IH,GAAWE,gBAAkB,CAC3B,EAAG,iCACH,EAAG,8DACH,EAAG,8HACH,EAAG,qHACH,EAAG,qEAIL,IAAK,IAAIE,GAAS,EAAGA,GAASJ,GAAWG,WAAW30B,OAAQ40B,KAC1DJ,GAAWA,GAAWG,WAAWC,KAAWA,GAE5CJ,GAAW3yB,UAAU2yB,GAAWG,WAAWC,KAAWA,GAYxD,SAASC,GAAUzwB,GACjB,OAAOA,SAA+D,mBAAfA,EAAM0wB,IAC/D,CAWA,SAASC,GAAe3wB,GAClBywB,GAAUzwB,IACZA,EAAM0wB,KAAK,MAAM,SAAUrwB,GAAI,GAEnC,CAoBA,IAAIuwB,GAAe,SAAsBC,GAiBvC,MAhBU,CAAC,OAAQ,QAAS,WAAY,KAAM,kCAAmC,OAAQ,OAAOhxB,QAAO,SAAUqqB,EAAK5U,EAAMzZ,GAK1H,OAJIg1B,EAAMvb,KACR4U,EAAI5U,GAAQub,EAAMvb,IAGb4U,CACT,GAAG,CACD4G,KAAMD,EAAMC,MAAQvyB,MAAMd,UAAUyJ,IAAI7I,KAAKwyB,EAAMC,MAAM,SAAUC,GACjE,MAAO,CACLC,UAAWD,EAAIC,UACfC,QAASF,EAAIE,QACbvrB,KAAMqrB,EAAIrrB,KACVoG,GAAIilB,EAAIjlB,GAEZ,KAGJ,EA2DIolB,GA5CmB,SAA0BC,GAC/C,IAAIC,EAAWD,EAAKnT,GAAG,SACnBqT,EAAY9yB,MAAMd,UAAUyJ,IAAI7I,KAAK+yB,GAAU,SAAUvf,GAC3D,OAAOA,EAAEgf,KACX,IAUA,OATatyB,MAAMd,UAAUyJ,IAAI7I,KAAK+yB,GAAU,SAAUE,GACxD,IAAI/tB,EAAOqtB,GAAaU,EAAQT,OAMhC,OAJIS,EAAQC,MACVhuB,EAAKguB,IAAMD,EAAQC,KAGdhuB,CACT,IACc4L,OAAO5Q,MAAMd,UAAUmU,OAAOvT,KAAK8yB,EAAKK,cAAc,SAAUX,GAC5E,OAAqC,IAA9BQ,EAAUrzB,QAAQ6yB,EAC3B,IAAG3pB,IAAI0pB,IACT,EA2BIM,GAbmB,SAA0B3tB,EAAM4tB,GAUrD,OATA5tB,EAAKpH,SAAQ,SAAU00B,GACrB,IAAIY,EAAaN,EAAKO,mBAAmBb,GAAOA,OAE3CA,EAAMU,KAAOV,EAAMC,MACtBD,EAAMC,KAAK30B,SAAQ,SAAU40B,GAC3B,OAAOU,EAAWE,OAAOZ,EAC3B,GAEJ,IACOI,EAAKK,YACd,EAQII,GAAmB,mBAWnBC,GAA2B,SAAUC,GAuCvC,SAASD,EAAYnT,EAAQvd,GAC3B,IAAIijB,EAoCJ,OAlCAA,EAAQ0N,EAAWzzB,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAE5Cy0B,eAAiB,SAAU1xB,GAC/B,OAAO+jB,EAAMyI,cAAcxsB,EAC7B,EAEA+jB,EAAM4N,OAAS,SAAU3xB,GACvB,OAAO+jB,EAAM6N,MAAM5xB,EACrB,EAEA+jB,EAAM8N,QAAU9N,EAAM+N,eAAiB/N,EAAMgO,gBAAiB,EAE9DhO,EAAMiO,WAAWjO,EAAM4D,SAASsK,aAEhClO,EAAM7L,QAAQ6L,EAAM4D,SAASzP,SAK7B6L,EAAMwF,WAAazR,GAAS,MAAO,CACjCwB,UAAWiY,GAAmB,YAC7B,CACDW,KAAM,aAERnO,EAAMoO,QAAUra,GAAS,IAAK,CAC5BwB,UAAWiY,GAAmB,gCAC9B9lB,GAAIsY,EAAM/O,KAAKyF,aAAa,sBAE9BlC,GAAYwL,EAAMoO,QAASpO,EAAMqO,eAEjCrO,EAAMiC,IAAIhN,YAAY+K,EAAMoO,SAE5BpO,EAAMiC,IAAIhN,YAAY+K,EAAMwF,YAErBxF,CACT,EA5EA,aAAeyN,EAAaC,GAqF5B,IAAIt0B,EAASq0B,EAAYp0B,UAoazB,OAlaAD,EAAO2a,SAAW,WAChB,OAAO2Z,EAAWr0B,UAAU0a,SAAS9Z,KAAKf,KAAM,MAAO,CACrDqc,UAAWrc,KAAKguB,gBAChBoH,UAAW,GACV,CACD,mBAAoBp1B,KAAKwO,KAAO,eAChC,cAAe,OACf,aAAcxO,KAAKq1B,QACnB,KAAQ,UAEZ,EAEAn1B,EAAOmB,QAAU,WACfrB,KAAKssB,WAAa,KAClBtsB,KAAKk1B,QAAU,KACfl1B,KAAKs1B,oBAAsB,KAE3Bd,EAAWr0B,UAAUkB,QAAQN,KAAKf,KACpC,EASAE,EAAO8tB,cAAgB,WACrB,OAAOsG,GAAmB,eAAiBE,EAAWr0B,UAAU6tB,cAAcjtB,KAAKf,KACrF,EASAE,EAAOm1B,MAAQ,WACb,OAAOr1B,KAAK4rB,SAAS5rB,KAAK0qB,SAAS2K,OAAS,eAC9C,EAUAn1B,EAAOi1B,YAAc,WACnB,IAAIxmB,EAAO3O,KAAK0qB,SAASyK,aAAen1B,KAAK4rB,SAAS,2BAMtD,OAJI5rB,KAAK+0B,cACPpmB,GAAQ,IAAM3O,KAAK4rB,SAAS,wFAGvBjd,CACT,EASAzO,EAAOyG,KAAO,WACZ,IAAK3G,KAAK40B,QAAS,CACjB,IAAIxT,EAASphB,KAAKohB,SAQlBphB,KAAKY,QAAQ,mBACbZ,KAAK40B,SAAU,GAGX50B,KAAK0qB,SAAS6K,aAAev1B,KAAK60B,iBAAmB70B,KAAK80B,iBAC5D90B,KAAKw1B,OAKPx1B,KAAKy1B,aAAerU,EAAOsU,SAEvB11B,KAAK0qB,SAASiL,aAAe31B,KAAKy1B,aACpCrU,EAAOwU,QAGT51B,KAAKI,GAAG,UAAWJ,KAAKy0B,gBAExBz0B,KAAK61B,aAAezU,EAAO0U,WAC3B1U,EAAO0U,UAAS,GAChB91B,KAAKouB,OACLpuB,KAAK+1B,oBACL/1B,KAAK+X,KAAKsD,aAAa,cAAe,SAQtCrb,KAAKY,QAAQ,aACbZ,KAAK60B,gBAAiB,CACxB,CACF,EAYA30B,EAAO81B,OAAS,SAAgBtzB,GAK9B,MAJqB,kBAAVA,GACT1C,KAAK0C,EAAQ,OAAS,WAGjB1C,KAAK40B,OACd,EAUA10B,EAAOy0B,MAAQ,WACb,GAAK30B,KAAK40B,QAAV,CAIA,IAAIxT,EAASphB,KAAKohB,SAQlBphB,KAAKY,QAAQ,oBACbZ,KAAK40B,SAAU,EAEX50B,KAAKy1B,aAAez1B,KAAK0qB,SAASiL,aACpCvU,EAAOkJ,OAGTtqB,KAAKQ,IAAI,UAAWR,KAAKy0B,gBAErBz0B,KAAK61B,cACPzU,EAAO0U,UAAS,GAGlB91B,KAAKquB,OACLruB,KAAK+X,KAAKsD,aAAa,cAAe,QAQtCrb,KAAKY,QAAQ,cACbZ,KAAKi2B,mBAEDj2B,KAAK0qB,SAASwL,WAChBl2B,KAAKqB,SApCP,CAsCF,EAYAnB,EAAO60B,UAAY,SAAmBryB,GACpC,GAAqB,kBAAVA,EAAqB,CAC9B,IAAIqyB,EAAY/0B,KAAKm2B,aAAezzB,EAChCiyB,EAAQ30B,KAAKysB,SAAS,eAE1B,GAAIsI,IAAcJ,EAAO,CAGvB,IAAIyB,EAAOp2B,KAAKssB,WAChBtsB,KAAKssB,WAAatsB,KAAK+oB,IACvB4L,EAAQ30B,KAAK8sB,SAAS,cAAe,CACnCuJ,YAAa,uBAEfr2B,KAAKssB,WAAa8J,EAClBp2B,KAAKI,GAAGu0B,EAAO,QAAS30B,KAAK00B,OAC/B,EAGKK,GAAaJ,IAChB30B,KAAKQ,IAAIm0B,EAAO,QAAS30B,KAAK00B,QAC9B10B,KAAKigB,YAAY0U,GACjBA,EAAMtzB,UAEV,CAEA,OAAOrB,KAAKm2B,UACd,EAOAj2B,EAAOs1B,KAAO,WACZx1B,KAAKs2B,SAASt2B,KAAKib,UACrB,EAaA/a,EAAOo2B,SAAW,SAAkBrb,GAClC,IAAIoR,EAAYrsB,KAAKqsB,YACjBkK,EAAWlK,EAAUvO,WACrB0Y,EAAgBnK,EAAUoK,YAQ9Bz2B,KAAKY,QAAQ,mBACbZ,KAAK80B,gBAAiB,EAGtByB,EAAStW,YAAYoM,GACrBrsB,KAAK02B,QACLtW,GAAciM,EAAWpR,GAQzBjb,KAAKY,QAAQ,aAET41B,EACFD,EAASza,aAAauQ,EAAWmK,GAEjCD,EAASxa,YAAYsQ,GAIvB,IAAIsK,EAAc32B,KAAKysB,SAAS,eAE5BkK,GACFJ,EAASxa,YAAY4a,EAAY5N,IAErC,EASA7oB,EAAOw2B,MAAQ,WAOb12B,KAAKY,QAAQ,oBACbof,GAAQhgB,KAAKqsB,aAQbrsB,KAAKY,QAAQ,aACf,EAkBAV,EAAO+a,QAAU,SAAiBvY,GAKhC,YAJqB,IAAVA,IACT1C,KAAK42B,SAAWl0B,GAGX1C,KAAK42B,QACd,EAQA12B,EAAO61B,kBAAoB,WACzB,IAAIc,EAAW,kBACXC,EAAW92B,KAAKuqB,QAAQxB,IAC5B/oB,KAAKs1B,oBAAsB,MAEvBwB,EAAS1a,SAASya,IAAaC,IAAaD,KAC9C72B,KAAKs1B,oBAAsBuB,EAC3B72B,KAAK2d,QAET,EAQAzd,EAAO+1B,iBAAmB,WACpBj2B,KAAKs1B,sBACPt1B,KAAKs1B,oBAAoB3X,QACzB3d,KAAKs1B,oBAAsB,KAE/B,EAQAp1B,EAAOqvB,cAAgB,SAAuB1Q,GAI5C,GAFAA,EAAMmF,kBAEF,eAAmBnF,EAAO,WAAa7e,KAAK+0B,YAG9C,OAFAlW,EAAM4E,sBACNzjB,KAAK20B,QAKP,GAAK,eAAmB9V,EAAO,OAA/B,CAQA,IAJA,IAEIkY,EAFAC,EAAeh3B,KAAKi3B,gBACpBJ,EAAW72B,KAAK+oB,IAAImO,cAAc,UAG7B34B,EAAI,EAAGA,EAAIy4B,EAAa14B,OAAQC,IACvC,GAAIs4B,IAAaG,EAAaz4B,GAAI,CAChCw4B,EAAax4B,EACb,KACF,CAGE,oBAA2ByB,KAAK+oB,MAClCgO,EAAa,GAGXlY,EAAMsY,UAA2B,IAAfJ,GACpBC,EAAaA,EAAa14B,OAAS,GAAGqf,QACtCkB,EAAM4E,kBACI5E,EAAMsY,UAAYJ,IAAeC,EAAa14B,OAAS,IACjE04B,EAAa,GAAGrZ,QAChBkB,EAAM4E,iBAtBR,CAwBF,EAQAvjB,EAAO+2B,cAAgB,WACrB,IAAIG,EAAcp3B,KAAK+oB,IAAIsO,iBAAiB,KAC5C,OAAOp2B,MAAMd,UAAUmU,OAAOvT,KAAKq2B,GAAa,SAAUzb,GACxD,OAAQA,aAAiB,uBAA8BA,aAAiB,sBAA6BA,EAAM2b,aAAa,UAAY3b,aAAiB,sBAA6BA,aAAiB,uBAA8BA,aAAiB,yBAAgCA,aAAiB,yBAAgCA,EAAM2b,aAAa,aAAe3b,aAAiB,uBAA8BA,aAAiB,uBAA8BA,aAAiB,sBAA6BA,EAAM2b,aAAa,cAAmD,IAApC3b,EAAM6B,aAAa,aAAsB7B,EAAM2b,aAAa,kBACjlB,GACF,EAEO/C,CACT,CA3f+B,CA2f7BpK,IASFoK,GAAYp0B,UAAUuqB,SAAW,CAC/BiL,aAAa,EACbO,WAAW,GAEb/L,GAAYmH,kBAAkB,cAAeiD,IAS7C,IAAIgD,GAAyB,SAAUC,GAWrC,SAASD,EAAUE,GACjB,IAAI3Q,OAEW,IAAX2Q,IACFA,EAAS,KAGX3Q,EAAQ0Q,EAAaz2B,KAAKf,OAASA,MAC7B03B,QAAU,GAQhBtjB,OAAO2Q,gBAAe,aAAuB+B,GAAQ,SAAU,CAC7DxE,IAAK,WACH,OAAOtiB,KAAK03B,QAAQp5B,MACtB,IAGF,IAAK,IAAIC,EAAI,EAAGA,EAAIk5B,EAAOn5B,OAAQC,IACjCuoB,EAAM6Q,SAASF,EAAOl5B,IAGxB,OAAOuoB,CACT,EArCA,aAAeyQ,EAAWC,GAgD1B,IAAIt3B,EAASq3B,EAAUp3B,UA6HvB,OA3HAD,EAAOy3B,SAAW,SAAkBpE,GAClC,IAAIrL,EAASloB,KAETS,EAAQT,KAAK03B,QAAQp5B,OAEnB,GAAKmC,KAAST,MAClBoU,OAAO2Q,eAAe/kB,KAAMS,EAAO,CACjC6hB,IAAK,WACH,OAAOtiB,KAAK03B,QAAQj3B,EACtB,KAKiC,IAAjCT,KAAK03B,QAAQh3B,QAAQ6yB,KACvBvzB,KAAK03B,QAAQn3B,KAAKgzB,GAUlBvzB,KAAKY,QAAQ,CACX2yB,MAAOA,EACPlzB,KAAM,WACNmX,OAAQxX,QAaZuzB,EAAMqE,aAAe,WACnB1P,EAAOtnB,QAAQ,CACb2yB,MAAOA,EACPlzB,KAAM,cACNmX,OAAQ0Q,GAEZ,EAEIf,GAAUoM,IACZA,EAAMjO,iBAAiB,cAAeiO,EAAMqE,aAEhD,EAWA13B,EAAO23B,YAAc,SAAqBC,GAGxC,IAFA,IAAIvE,EAEKh1B,EAAI,EAAGw5B,EAAI/3B,KAAK1B,OAAQC,EAAIw5B,EAAGx5B,IACtC,GAAIyB,KAAKzB,KAAOu5B,EAAQ,EACtBvE,EAAQvzB,KAAKzB,IAEHiC,KACR+yB,EAAM/yB,MAGRR,KAAK03B,QAAQ/2B,OAAOpC,EAAG,GACvB,KACF,CAGGg1B,GAaLvzB,KAAKY,QAAQ,CACX2yB,MAAOA,EACPlzB,KAAM,cACNmX,OAAQxX,MAEZ,EAWAE,EAAO83B,aAAe,SAAsBxpB,GAG1C,IAFA,IAAIjL,EAAS,KAEJhF,EAAI,EAAGw5B,EAAI/3B,KAAK1B,OAAQC,EAAIw5B,EAAGx5B,IAAK,CAC3C,IAAIg1B,EAAQvzB,KAAKzB,GAEjB,GAAIg1B,EAAM/kB,KAAOA,EAAI,CACnBjL,EAASgwB,EACT,KACF,CACF,CAEA,OAAOhwB,CACT,EAEOg0B,CACT,CA/K6B,CA+K3B9Q,IAuBF,IAAK,IAAI,MAPT8Q,GAAUp3B,UAAUumB,eAAiB,CACnCuR,OAAQ,SACRC,SAAU,WACVC,YAAa,cACbC,YAAa,eAGGb,GAAUp3B,UAAUumB,eACpC6Q,GAAUp3B,UAAU,KAAO,IAAS,KAgBtC,IAAIk4B,GAAkB,SAAuBC,EAAM/E,GACjD,IAAK,IAAIh1B,EAAI,EAAGA,EAAI+5B,EAAKh6B,OAAQC,IAC1B6V,OAAOC,KAAKikB,EAAK/5B,IAAID,QAAUi1B,EAAM/kB,KAAO8pB,EAAK/5B,GAAGiQ,KAKzD8pB,EAAK/5B,GAAGg6B,SAAU,EAEtB,EASIC,GAA8B,SAAUC,GAS1C,SAASD,EAAef,GACtB,IAAI3Q,OAEW,IAAX2Q,IACFA,EAAS,IAKX,IAAK,IAAIl5B,EAAIk5B,EAAOn5B,OAAS,EAAGC,GAAK,EAAGA,IACtC,GAAIk5B,EAAOl5B,GAAGg6B,QAAS,CACrBF,GAAgBZ,EAAQA,EAAOl5B,IAC/B,KACF,CAKF,OAFAuoB,EAAQ2R,EAAW13B,KAAKf,KAAMy3B,IAAWz3B,MACnC04B,WAAY,EACX5R,CACT,EA3BA,aAAe0R,EAAgBC,GAsC/B,IAAIv4B,EAASs4B,EAAer4B,UAgD5B,OA9CAD,EAAOy3B,SAAW,SAAkBpE,GAClC,IAAIrL,EAASloB,KAETuzB,EAAMgF,SACRF,GAAgBr4B,KAAMuzB,GAGxBkF,EAAWt4B,UAAUw3B,SAAS52B,KAAKf,KAAMuzB,GAGpCA,EAAMjO,mBAIXiO,EAAMoF,eAAiB,WAIjBzQ,EAAOwQ,YAIXxQ,EAAOwQ,WAAY,EACnBL,GAAgBnQ,EAAQqL,GACxBrL,EAAOwQ,WAAY,EAEnBxQ,EAAOtnB,QAAQ,UACjB,EAOA2yB,EAAMjO,iBAAiB,gBAAiBiO,EAAMoF,gBAChD,EAEAz4B,EAAO23B,YAAc,SAAqBC,GACxCW,EAAWt4B,UAAU03B,YAAY92B,KAAKf,KAAM83B,GAExCA,EAAOjV,qBAAuBiV,EAAOa,iBACvCb,EAAOjV,oBAAoB,gBAAiBiV,EAAOa,gBACnDb,EAAOa,eAAiB,KAE5B,EAEOH,CACT,CAxFkC,CAwFhCjB,IAcEqB,GAAgB,SAAuBN,EAAM/E,GAC/C,IAAK,IAAIh1B,EAAI,EAAGA,EAAI+5B,EAAKh6B,OAAQC,IAC1B6V,OAAOC,KAAKikB,EAAK/5B,IAAID,QAAUi1B,EAAM/kB,KAAO8pB,EAAK/5B,GAAGiQ,KAKzD8pB,EAAK/5B,GAAGs6B,UAAW,EAEvB,EASIC,GAA8B,SAAUL,GAS1C,SAASK,EAAerB,GACtB,IAAI3Q,OAEW,IAAX2Q,IACFA,EAAS,IAKX,IAAK,IAAIl5B,EAAIk5B,EAAOn5B,OAAS,EAAGC,GAAK,EAAGA,IACtC,GAAIk5B,EAAOl5B,GAAGs6B,SAAU,CACtBD,GAAcnB,EAAQA,EAAOl5B,IAC7B,KACF,CAsBF,OAnBAuoB,EAAQ2R,EAAW13B,KAAKf,KAAMy3B,IAAWz3B,MACnC04B,WAAY,EAMlBtkB,OAAO2Q,gBAAe,aAAuB+B,GAAQ,gBAAiB,CACpExE,IAAK,WACH,IAAK,IAAInhB,EAAK,EAAGA,EAAKnB,KAAK1B,OAAQ6C,IACjC,GAAInB,KAAKmB,GAAI03B,SACX,OAAO13B,EAIX,OAAQ,CACV,EACAihB,IAAK,WAAgB,IAEhB0E,CACT,EA5CA,aAAegS,EAAgBL,GAuD/B,IAAIv4B,EAAS44B,EAAe34B,UA6C5B,OA3CAD,EAAOy3B,SAAW,SAAkBpE,GAClC,IAAIrL,EAASloB,KAETuzB,EAAMsF,UACRD,GAAc54B,KAAMuzB,GAGtBkF,EAAWt4B,UAAUw3B,SAAS52B,KAAKf,KAAMuzB,GAGpCA,EAAMjO,mBAIXiO,EAAMwF,gBAAkB,WAClB7Q,EAAOwQ,YAIXxQ,EAAOwQ,WAAY,EACnBE,GAAc1Q,EAAQqL,GACtBrL,EAAOwQ,WAAY,EAEnBxQ,EAAOtnB,QAAQ,UACjB,EAOA2yB,EAAMjO,iBAAiB,iBAAkBiO,EAAMwF,iBACjD,EAEA74B,EAAO23B,YAAc,SAAqBC,GACxCW,EAAWt4B,UAAU03B,YAAY92B,KAAKf,KAAM83B,GAExCA,EAAOjV,qBAAuBiV,EAAOiB,kBACvCjB,EAAOjV,oBAAoB,iBAAkBiV,EAAOiB,iBACpDjB,EAAOiB,gBAAkB,KAE7B,EAEOD,CACT,CAtGkC,CAsGhCvB,IASEyB,GAA6B,SAAUP,GAGzC,SAASO,IACP,OAAOP,EAAWr3B,MAAMpB,KAAMc,YAAcd,IAC9C,EAJA,aAAeg5B,EAAeP,GAM9B,IAAIv4B,EAAS84B,EAAc74B,UAuD3B,OA7CAD,EAAOy3B,SAAW,SAAkBpE,GAClC,IAAIzM,EAAQ9mB,KAEZy4B,EAAWt4B,UAAUw3B,SAAS52B,KAAKf,KAAMuzB,GAEpCvzB,KAAKi5B,eACRj5B,KAAKi5B,aAAe,WAClB,OAAOnS,EAAMD,aAAa,SAC5B,GAGG7mB,KAAKk5B,gCACRl5B,KAAKm5B,+BAAiC,WACpC,OAAOrS,EAAMlmB,QAAQ,yBACvB,GAQF2yB,EAAMjO,iBAAiB,aAActlB,KAAKi5B,eAGY,IAFvB,CAAC,WAAY,YAEfv4B,QAAQ6yB,EAAM6F,OACzC7F,EAAMjO,iBAAiB,aAActlB,KAAKm5B,+BAE9C,EAEAj5B,EAAO23B,YAAc,SAAqBC,GACxCW,EAAWt4B,UAAU03B,YAAY92B,KAAKf,KAAM83B,GAGxCA,EAAOjV,sBACL7iB,KAAKi5B,cACPnB,EAAOjV,oBAAoB,aAAc7iB,KAAKi5B,cAG5Cj5B,KAAKq5B,yBACPvB,EAAOjV,oBAAoB,aAAc7iB,KAAKm5B,gCAGpD,EAEOH,CACT,CA/DiC,CA+D/BzB,IASE+B,GAAoC,WAOtC,SAASA,EAAqBC,QACN,IAAlBA,IACFA,EAAgB,IAGlBv5B,KAAKw5B,eAAiB,GAQtBplB,OAAO2Q,eAAe/kB,KAAM,SAAU,CACpCsiB,IAAK,WACH,OAAOtiB,KAAKw5B,eAAel7B,MAC7B,IAGF,IAAK,IAAIC,EAAI,EAAGD,EAASi7B,EAAcj7B,OAAQC,EAAID,EAAQC,IACzDyB,KAAKy5B,iBAAiBF,EAAch7B,GAExC,CAWA,IAAI2B,EAASo5B,EAAqBn5B,UAuElC,OArEAD,EAAOu5B,iBAAmB,SAA0BC,GAClD,IAAIj5B,EAAQT,KAAKw5B,eAAel7B,OAE1B,GAAKmC,KAAST,MAClBoU,OAAO2Q,eAAe/kB,KAAMS,EAAO,CACjC6hB,IAAK,WACH,OAAOtiB,KAAKw5B,eAAe/4B,EAC7B,KAK+C,IAA/CT,KAAKw5B,eAAe94B,QAAQg5B,IAC9B15B,KAAKw5B,eAAej5B,KAAKm5B,EAE7B,EAeAx5B,EAAOy5B,wBAA0B,SAAiCpG,GAGhE,IAFA,IAAIqG,EAEKr7B,EAAI,EAAGD,EAAS0B,KAAKw5B,eAAel7B,OAAQC,EAAID,EAAQC,IAC/D,GAAIg1B,IAAUvzB,KAAKw5B,eAAej7B,GAAGg1B,MAAO,CAC1CqG,EAAgB55B,KAAKw5B,eAAej7B,GACpC,KACF,CAGF,OAAOq7B,CACT,EAWA15B,EAAO25B,oBAAsB,SAA6BH,GACxD,IAAK,IAAIn7B,EAAI,EAAGD,EAAS0B,KAAKw5B,eAAel7B,OAAQC,EAAID,EAAQC,IAC/D,GAAIm7B,IAAiB15B,KAAKw5B,eAAej7B,GAAI,CACvCyB,KAAKw5B,eAAej7B,GAAGg1B,OAAqD,mBAArCvzB,KAAKw5B,eAAej7B,GAAGg1B,MAAM/yB,KACtER,KAAKw5B,eAAej7B,GAAGg1B,MAAM/yB,MAGW,mBAA/BR,KAAKw5B,eAAej7B,GAAGiC,KAChCR,KAAKw5B,eAAej7B,GAAGiC,MAGzBR,KAAKw5B,eAAe74B,OAAOpC,EAAG,GAC9B,KACF,CAEJ,EAEO+6B,CACT,CAhHwC,GA6IpCQ,GAAgC,WAOlC,SAASA,EAAiBtG,GACxBsG,EAAiB35B,UAAU45B,SAASh5B,KAAKf,KAAMwzB,GAQ/Cpf,OAAO2Q,eAAe/kB,KAAM,SAAU,CACpCsiB,IAAK,WACH,OAAOtiB,KAAKg6B,OACd,GAEJ,CAYA,IAAI95B,EAAS45B,EAAiB35B,UAqD9B,OAnDAD,EAAO65B,SAAW,SAAkBvG,GAClC,IAAIyG,EAAYj6B,KAAK1B,QAAU,EAC3BC,EAAI,EACJw5B,EAAIvE,EAAKl1B,OACb0B,KAAKk6B,MAAQ1G,EACbxzB,KAAKg6B,QAAUxG,EAAKl1B,OAEpB,IAAI67B,EAAa,SAAoB15B,GAC7B,GAAKA,KAAST,MAClBoU,OAAO2Q,eAAe/kB,KAAM,GAAKS,EAAO,CACtC6hB,IAAK,WACH,OAAOtiB,KAAKk6B,MAAMz5B,EACpB,GAGN,EAEA,GAAIw5B,EAAYlC,EAGd,IAFAx5B,EAAI07B,EAEG17B,EAAIw5B,EAAGx5B,IACZ47B,EAAWp5B,KAAKf,KAAMzB,EAG5B,EAYA2B,EAAOk6B,WAAa,SAAoB5rB,GAGtC,IAFA,IAAIjL,EAAS,KAEJhF,EAAI,EAAGw5B,EAAI/3B,KAAK1B,OAAQC,EAAIw5B,EAAGx5B,IAAK,CAC3C,IAAIk1B,EAAMzzB,KAAKzB,GAEf,GAAIk1B,EAAIjlB,KAAOA,EAAI,CACjBjL,EAASkwB,EACT,KACF,CACF,CAEA,OAAOlwB,CACT,EAEOu2B,CACT,CAvFoC,GAoGhCO,GAAiB,CACnBC,YAAa,cACbC,SAAU,WACVC,KAAM,OACNC,KAAM,OACNC,UAAW,YACXC,WAAY,cAUVC,GAAiB,CACnB,YAAe,cACf,aAAgB,eAChB,KAAQ,OACR,YAAa,YACb,YAAe,cACf,WAAc,cAUZC,GAAgB,CAClBH,UAAW,YACXH,SAAU,WACVO,aAAc,eACdC,SAAU,WACVC,SAAU,YAURC,GAAgB,CAClBjY,SAAU,WACVkY,OAAQ,SACRC,QAAS,WAcPlrB,GAAqB,SAAUunB,GAuBjC,SAASvnB,EAAMpM,GACb,IAAIijB,OAEY,IAAZjjB,IACFA,EAAU,CAAC,GAGbijB,EAAQ0Q,EAAaz2B,KAAKf,OAASA,KACnC,IAAIo7B,EAAa,CACf5sB,GAAI3K,EAAQ2K,IAAM,aAAeuT,KACjCqX,KAAMv1B,EAAQu1B,MAAQ,GACtBrN,SAAUloB,EAAQkoB,UAAY,IAE5BsJ,EAAQxxB,EAAQwxB,OAAS,GA6BzBgG,EAAQ,SAAe53B,GACzB2Q,OAAO2Q,gBAAe,aAAuB+B,GAAQrjB,EAAK,CACxD6e,IAAK,WACH,OAAO8Y,EAAW33B,EACpB,EACA2e,IAAK,WAAgB,GAEzB,EAEA,IAAK,IAAI3e,KAAO23B,EACdC,EAAM53B,GAgCR,OApBA2Q,OAAO2Q,gBAAe,aAAuB+B,GAAQ,QAAS,CAC5DxE,IAAK,WACH,OAAO+S,CACT,EACAjT,IAAK,SAAakZ,GACZA,IAAajG,IACfA,EAAQiG,EAURt7B,KAAKY,QAAQ,eAEjB,IAEKkmB,CACT,CAEA,OA7GA,aAAe7W,EAAOunB,GA6GfvnB,CACT,CA/GyB,CA+GvBwW,IA0CE8U,GAAW,SAAkB71B,GAE/B,IAAI81B,EAAQ,CAAC,WAAY,WAAY,OAAQ,WAAY,SAAU,OAAQ,QAEvE7zB,EAAI,kBAAuB,KAC/BA,EAAEpI,KAAOmG,EAMT,IAFA,IAAI+D,EAAU,CAAC,EAENlL,EAAI,EAAGA,EAAIi9B,EAAMl9B,OAAQC,IAChCkL,EAAQ+xB,EAAMj9B,IAAMoJ,EAAE6zB,EAAMj9B,IAuB9B,MAlByB,UAArBkL,EAAQ3J,WACV2J,EAAQgyB,KAAOhyB,EAAQgyB,KAAK7yB,QAAQ,OAAQ,KAGrB,WAArBa,EAAQ3J,WACV2J,EAAQgyB,KAAOhyB,EAAQgyB,KAAK7yB,QAAQ,QAAS,KAG1Ca,EAAQ3J,WACX2J,EAAQ3J,SAAW,aAAkBA,UAKlC2J,EAAQgyB,OACXhyB,EAAQgyB,KAAO,aAAkBA,MAG5BhyB,CACT,EAcIiyB,GAAiB,SAAwBh2B,GAE3C,IAAKA,EAAI4D,MAAM,gBAAiB,CAG9B,IAAI3B,EAAI,kBAAuB,KAC/BA,EAAEpI,KAAOmG,EACTA,EAAMiC,EAAEpI,IACV,CAEA,OAAOmG,CACT,EAcIi2B,GAAmB,SAA0B3tB,GAC/C,GAAoB,iBAATA,EAAmB,CAC5B,IACI4tB,EADc,yEACUryB,KAAKyE,GAEjC,GAAI4tB,EACF,OAAOA,EAAUpjB,MAAMnW,aAE3B,CAEA,MAAO,EACT,EAqBIw5B,GAAgB,SAAuBn2B,EAAKo2B,QAC/B,IAAXA,IACFA,EAAS,cAGX,IAAIC,EAAUR,GAAS71B,GAMvB,OAJuC,MAArBq2B,EAAQj8B,SAAmBg8B,EAAOh8B,SAAWi8B,EAAQj8B,UAGvCi8B,EAAQN,OAASK,EAAOh8B,SAAWg8B,EAAOL,IAE5E,EAEIO,GAAmB5nB,OAAO6F,OAAO,CACnCC,UAAW,KACXqhB,SAAUA,GACVG,eAAgBA,GAChBC,iBAAkBA,GAClBE,cAAeA,KAebI,GAAY,SAAmBC,EAAY3I,GAC7C,IAAI9kB,EAAS,IAAI,WAAgB0tB,QAAO,IAAU,UAAgB,WAAgBC,iBAC9EC,EAAS,GAEb5tB,EAAO6tB,MAAQ,SAAU7I,GACvBF,EAAMc,OAAOZ,EACf,EAEAhlB,EAAO8tB,eAAiB,SAAUhmB,GAChC8lB,EAAO97B,KAAKgW,EACd,EAEA9H,EAAO+tB,QAAU,WACfjJ,EAAM3yB,QAAQ,CACZP,KAAM,aACNmX,OAAQ+b,GAEZ,EAEA9kB,EAAO1J,MAAMm3B,GAETG,EAAO/9B,OAAS,IACd,aAAoB,YAAiBm+B,gBACvC,YAAiBA,eAAe,iCAAmClJ,EAAMU,KAG3EoI,EAAOx9B,SAAQ,SAAU0X,GACvB,OAAOnB,GAAMmB,MAAMA,EACrB,IAEI,aAAoB,YAAiBmmB,UACvC,YAAiBA,YAIrBjuB,EAAOkuB,OACT,EAcIC,GAAY,SAAmB3I,EAAKV,GACtC,IAAIzO,EAAO,CACTlhB,IAAKqwB,GAEH4I,EAAchB,GAAc5H,GAE5B4I,IACF/X,EAAKjf,KAAOg3B,GAGd,IAAI/1B,EAAgD,oBAA9BysB,EAAMuJ,MAAMD,cAE9B/1B,IACFge,EAAKhe,gBAAkBA,GAGzB,IAAIge,EAAMsB,GAAKpmB,MAAM,SAAU6B,EAAKC,EAAUC,GAC5C,GAAIF,EACF,OAAOuT,GAAMmB,MAAM1U,EAAKC,GAG1ByxB,EAAMwJ,SAAU,EAGe,mBAApB,WACLxJ,EAAMuJ,OAGRvJ,EAAMuJ,MAAM9W,IAAI,CAAC,cAAe,eAAe,SAAUnH,GACvD,GAAmB,eAAfA,EAAMxe,KAKV,OAAO47B,GAAUl6B,EAAcwxB,GAJ7Bne,GAAMmB,MAAM,oDAAsDgd,EAAMU,IAK5E,IAGFgI,GAAUl6B,EAAcwxB,EAE5B,IACF,EASIyJ,GAAyB,SAAUC,GAqCrC,SAASD,EAAUn5B,GACjB,IAAIijB,EAMJ,QAJgB,IAAZjjB,IACFA,EAAU,CAAC,IAGRA,EAAQgwB,KACX,MAAM,IAAI7vB,MAAM,4BAGlB,IAAIk5B,EAAWvT,GAAe9lB,EAAS,CACrCu1B,KAAMyB,GAAch3B,EAAQu1B,OAAS,YACrCrN,SAAUloB,EAAQkoB,UAAYloB,EAAQs5B,SAAW,KAE/CC,EAAOnC,GAAciC,EAASE,OAAS,WACvCC,EAAWH,EAAkB,QAEX,aAAlBA,EAAS9D,MAAyC,aAAlB8D,EAAS9D,OAC3CgE,EAAO,WAGTtW,EAAQmW,EAAOl8B,KAAKf,KAAMk9B,IAAal9B,MACjC88B,MAAQI,EAASrJ,KACvB/M,EAAMoT,MAAQ,GACdpT,EAAMwW,YAAc,GACpBxW,EAAMyW,UAA6C,IAAlCzW,EAAMgW,MAAMU,kBAC7B,IAAIhK,EAAO,IAAIsG,GAAiBhT,EAAMoT,OAClCuD,EAAa,IAAI3D,GAAiBhT,EAAMwW,aACxCI,GAAU,EACd5W,EAAM6W,kBAAoBvX,IAAK,aAAuBU,IAAQ,WACxD9mB,KAAK88B,MAAMnR,eAIV3rB,KAAK88B,MAAM7O,UAShBjuB,KAAKy9B,WAAaz9B,KAAKy9B,WAEnBC,IACF19B,KAAKY,QAAQ,aACb88B,GAAU,GAGZ19B,KAAK49B,KAAO59B,KAAK88B,MAAMe,0BAA0B79B,KAAK29B,oBAfpD39B,KAAK49B,KAAO59B,KAAK88B,MAAMe,0BAA0B79B,KAAK29B,mBAgB1D,IAkKA,OA5JA7W,EAAMgW,MAAMhX,IAAI,WAJK,WACnBgB,EAAMgX,cACR,IAIa,aAATV,GACFtW,EAAMiX,gBAGR3pB,OAAO4pB,kBAAiB,aAAuBlX,GAAQ,CAUrD,QAAW,CACTxE,IAAK,WACH,OAAO+a,CACT,EACAjb,IAAK,WAAgB,GAYvBgb,KAAM,CACJ9a,IAAK,WACH,OAAO8a,CACT,EACAhb,IAAK,SAAa6b,GACXhD,GAAcgD,IAIfb,IAASa,IAIbb,EAAOa,EAEFj+B,KAAKu9B,UAAqB,aAATH,GAA4C,IAArBp9B,KAAKwzB,KAAKl1B,QAErDs+B,GAAU58B,KAAKi0B,IAAKj0B,MAGtBA,KAAK89B,eAEQ,aAATV,GACFp9B,KAAK+9B,gBAaP/9B,KAAKY,QAAQ,cACf,GASF4yB,KAAM,CACJlR,IAAK,WACH,OAAKtiB,KAAK+8B,QAIHvJ,EAHE,IAIX,EACApR,IAAK,WAAgB,GASvBqb,WAAY,CACVnb,IAAK,WACH,IAAKtiB,KAAK+8B,QACR,OAAO,KAIT,GAAyB,IAArB/8B,KAAKwzB,KAAKl1B,OACZ,OAAOm/B,EAMT,IAHA,IAAIS,EAAKl+B,KAAK88B,MAAMqB,cAChBC,EAAS,GAEJ7/B,EAAI,EAAGw5B,EAAI/3B,KAAKwzB,KAAKl1B,OAAQC,EAAIw5B,EAAGx5B,IAAK,CAChD,IAAIk1B,EAAMzzB,KAAKwzB,KAAKj1B,IAEhBk1B,EAAIC,WAAawK,GAAMzK,EAAIE,SAAWuK,GAE/BzK,EAAIC,YAAcD,EAAIE,SAAWF,EAAIC,WAAawK,GAAMzK,EAAIC,UAAY,IAAOwK,IADxFE,EAAO79B,KAAKkzB,EAIhB,CAIA,GAFAiK,GAAU,EAENU,EAAO9/B,SAAW0B,KAAKs9B,YAAYh/B,OACrCo/B,GAAU,OAEV,IAAK,IAAIv8B,EAAK,EAAGA,EAAKi9B,EAAO9/B,OAAQ6C,KACW,IAA1CnB,KAAKs9B,YAAY58B,QAAQ09B,EAAOj9B,MAClCu8B,GAAU,GAOhB,OAFA19B,KAAKs9B,YAAcc,EACnBX,EAAW1D,SAAS/5B,KAAKs9B,aAClBG,CACT,EAEArb,IAAK,WAAgB,KAIrB8a,EAASjJ,KACXnN,EAAMmN,IAAMiJ,EAASjJ,IAEhBnN,EAAMyW,WAGTzW,EAAMiW,SAAU,IAGdjW,EAAMyW,UAA8B,cAAlBL,EAAS9D,MAA0C,aAAlB8D,EAAS9D,OAC9DwD,GAAU9V,EAAMmN,KAAK,aAAuBnN,KAG9CA,EAAMiW,SAAU,EAGXjW,CACT,EA3PA,aAAekW,EAAWC,GA6P1B,IAAI/8B,EAAS88B,EAAU78B,UAsEvB,OApEAD,EAAO69B,cAAgB,WACrB/9B,KAAK49B,KAAO59B,KAAK88B,MAAMe,0BAA0B79B,KAAK29B,kBACxD,EAEAz9B,EAAO49B,aAAe,WAChB99B,KAAK49B,OACP59B,KAAK88B,MAAMuB,yBAAyBr+B,KAAK49B,MACzC59B,KAAK49B,UAAOx5B,EAEhB,EASAlE,EAAOm0B,OAAS,SAAgBiK,GAC9B,IAAI7K,EAAM6K,EAEV,GAAI,aAAoBA,aAAuB,UAAeC,QAAS,CAGrE,IAAK,IAAIvmB,KAFTyb,EAAM,IAAI,UAAe8K,QAAOD,EAAY5K,UAAW4K,EAAY3K,QAAS2K,EAAYl2B,MAEvEk2B,EACTtmB,KAAQyb,IACZA,EAAIzb,GAAQsmB,EAAYtmB,IAK5Byb,EAAIjlB,GAAK8vB,EAAY9vB,GACrBilB,EAAI+K,aAAeF,CACrB,CAIA,IAFA,IAAI7G,EAASz3B,KAAK88B,MAAM5I,aAEf31B,EAAI,EAAGA,EAAIk5B,EAAOn5B,OAAQC,IAC7Bk5B,EAAOl5B,KAAOyB,MAChBy3B,EAAOl5B,GAAGkgC,UAAUhL,GAIxBzzB,KAAKk6B,MAAM35B,KAAKkzB,GAChBzzB,KAAKwzB,KAAKuG,SAAS/5B,KAAKk6B,MAC1B,EASAh6B,EAAOu+B,UAAY,SAAmBC,GAGpC,IAFA,IAAIngC,EAAIyB,KAAKk6B,MAAM57B,OAEZC,KAAK,CACV,IAAIk1B,EAAMzzB,KAAKk6B,MAAM37B,GAErB,GAAIk1B,IAAQiL,GAAcjL,EAAI+K,cAAgB/K,EAAI+K,eAAiBE,EAAY,CAC7E1+B,KAAKk6B,MAAMv5B,OAAOpC,EAAG,GACrByB,KAAKwzB,KAAKuG,SAAS/5B,KAAKk6B,OACxB,KACF,CACF,CACF,EAEO8C,CACT,CArU6B,CAqU3B/sB,IAMF+sB,GAAU78B,UAAUumB,eAAiB,CACnCiY,UAAW,aAWb,IAAIjuB,GAA0B,SAAUusB,GAyBtC,SAASvsB,EAAW7M,GAClB,IAAIijB,OAEY,IAAZjjB,IACFA,EAAU,CAAC,GAGb,IAAIq5B,EAAWvT,GAAe9lB,EAAS,CACrCu1B,KAAMwB,GAAe/2B,EAAQu1B,OAAS,KAExCtS,EAAQmW,EAAOl8B,KAAKf,KAAMk9B,IAAal9B,KACvC,IAAIu4B,GAAU,EA4Cd,OAjCAnkB,OAAO2Q,gBAAe,aAAuB+B,GAAQ,UAAW,CAC9DxE,IAAK,WACH,OAAOiW,CACT,EACAnW,IAAK,SAAawc,GAEU,kBAAfA,GAA4BA,IAAerG,IAItDA,EAAUqG,EAYV5+B,KAAKY,QAAQ,iBACf,IAKEs8B,EAAS3E,UACXzR,EAAMyR,QAAU2E,EAAS3E,SAG3BzR,EAAMiW,SAAU,EACTjW,CACT,CAEA,OAlFA,aAAepW,EAAYusB,GAkFpBvsB,CACT,CApF8B,CAoF5BT,IASEQ,GAA0B,SAAUwsB,GAwBtC,SAASxsB,EAAW5M,GAClB,IAAIijB,OAEY,IAAZjjB,IACFA,EAAU,CAAC,GAGb,IAAIq5B,EAAWvT,GAAe9lB,EAAS,CACrCu1B,KAAMiB,GAAex2B,EAAQu1B,OAAS,KAExCtS,EAAQmW,EAAOl8B,KAAKf,KAAMk9B,IAAal9B,KACvC,IAAI64B,GAAW,EA2Cf,OAhCAzkB,OAAO2Q,gBAAe,aAAuB+B,GAAQ,WAAY,CAC/DxE,IAAK,WACH,OAAOuW,CACT,EACAzW,IAAK,SAAayc,GAEW,kBAAhBA,GAA6BA,IAAgBhG,IAIxDA,EAAWgG,EAYX7+B,KAAKY,QAAQ,kBACf,IAKEs8B,EAASrE,WACX/R,EAAM+R,SAAWqE,EAASrE,UAGrB/R,CACT,CAEA,OAhFA,aAAerW,EAAYwsB,GAgFpBxsB,CACT,CAlF8B,CAkF5BR,IAmBE6uB,GAAgC,SAAUtH,GAqC5C,SAASsH,EAAiBj7B,GACxB,IAAIijB,EAOA1gB,OALY,IAAZvC,IACFA,EAAU,CAAC,GAGbijB,EAAQ0Q,EAAaz2B,KAAKf,OAASA,KAEnC,IAAIuzB,EAAQ,IAAIyJ,GAAUn5B,GA8C1B,OA7CAijB,EAAMsS,KAAO7F,EAAM6F,KACnBtS,EAAMmN,IAAMV,EAAMU,IAClBnN,EAAMqW,QAAU5J,EAAMxH,SACtBjF,EAAMuO,MAAQ9B,EAAM8B,MACpBvO,EAAe,QAAIyM,EAAe,QAClCnf,OAAO4pB,kBAAiB,aAAuBlX,GAAQ,CAOrD1gB,WAAY,CACVkc,IAAK,WACH,OAAOlc,CACT,GAUFmtB,MAAO,CACLjR,IAAK,WACH,OAAOiR,CACT,KAGJntB,EAzFO,EA+FPmtB,EAAMjO,iBAAiB,cAAc,WACnClf,EA9FO,EAgGP0gB,EAAMlmB,QAAQ,CACZP,KAAM,OACNmX,QAAQ,aAAuBsP,IAEnC,IACOA,CACT,CAEA,OA9FA,aAAegY,EAAkBtH,GA8F1BsH,CACT,CAhGoC,CAgGlCrY,IAEFqY,GAAiB3+B,UAAUumB,eAAiB,CAC1CqY,KAAM,QAERD,GAAiBE,KAhHN,EAiHXF,GAAiBG,QAhHH,EAiHdH,GAAiBI,OAhHJ,EAiHbJ,GAAiBK,MAhHL,EAuHZ,IAAIC,GAAS,CACXj3B,MAAO,CACLk3B,UAAW7G,GACX8G,WAAY5uB,GACZ6uB,YAAa,SAEfr3B,MAAO,CACLm3B,UAAWvG,GACXwG,WAAY7uB,GACZ8uB,YAAa,SAEfn3B,KAAM,CACJi3B,UAAWrG,GACXsG,WAAYtC,GACZuC,YAAa,SAGjBnrB,OAAOC,KAAK+qB,IAAQvgC,SAAQ,SAAUwB,GACpC++B,GAAO/+B,GAAMm/B,WAAan/B,EAAO,SACjC++B,GAAO/+B,GAAMo/B,YAAcp/B,EAAO,SACpC,IACA,IAAIq/B,GAAS,CACXC,WAAY,CACVN,UAAWrG,GACXsG,WAAYtC,GACZuC,YAAa,aACbC,WAAY,mBACZC,YAAa,qBAEfG,aAAc,CACZP,UAAW/F,GACXgG,WAAYR,GACZS,YAAa,qBACbC,WAAY,qBACZC,YAAa,wBAIbI,IAAM,aAAS,CAAC,EAAGT,GAAQM,IAE/BA,GAAO/S,MAAQvY,OAAOC,KAAKqrB,IAC3BN,GAAOzS,MAAQvY,OAAOC,KAAK+qB,IAC3BS,GAAIlT,MAAQ,GAAG9a,OAAO6tB,GAAO/S,OAAO9a,OAAOutB,GAAOzS,OAsElD,IAAIe,GAAoB,SAAU8G,GAYhC,SAAS9G,EAAK7pB,EAASwmB,GACrB,IAAIvD,EA+FJ,YA7FgB,IAAZjjB,IACFA,EAAU,CAAC,QAGC,IAAVwmB,IACFA,EAAQ,WAAkB,GAK5BxmB,EAAQynB,qBAAsB,GAC9BxE,EAAQ0N,EAAWzzB,KAAKf,KAAM,KAAM6D,EAASwmB,IAAUrqB,MAEjD8/B,kBAAoB,SAAU/8B,GAClC,OAAO+jB,EAAMiZ,iBAAiBh9B,EAChC,EAEA+jB,EAAMkZ,eAAiB,SAAUj9B,GAC/B,OAAO+jB,EAAMmZ,cAAcl9B,EAC7B,EAEA+jB,EAAMoZ,kBAAoB,SAAUn9B,GAClC,OAAO+jB,EAAMqZ,iBAAiBp9B,EAChC,EAEA+jB,EAAMsZ,yBAA2B,SAAUr9B,GACzC,OAAO+jB,EAAMuZ,wBAAwBt9B,EACvC,EAEA+jB,EAAMwZ,sBAAwB,SAAUv9B,GACtC,OAAO+jB,EAAMyZ,qBAAqBx9B,EACpC,EAEA+jB,EAAM0Z,eAAiB,IAAIC,IAG3B3Z,EAAM4Z,aAAc,EAEpB5Z,EAAM1mB,GAAG,WAAW,WAClBJ,KAAK0gC,aAAc,CACrB,IAEA5Z,EAAM1mB,GAAG,aAAa,WACpBJ,KAAK0gC,aAAc,CACrB,IAEAb,GAAIlT,MAAM9tB,SAAQ,SAAUwK,GAC1B,IAAImyB,EAAQqE,GAAIx2B,GAEZxF,GAAWA,EAAQ23B,EAAMgE,cAC3B1Y,EAAM0U,EAAMiE,aAAe57B,EAAQ23B,EAAMgE,YAE7C,IAEK1Y,EAAM6Z,wBACT7Z,EAAM8Z,mBAIH9Z,EAAM+Z,0BACT/Z,EAAMga,sBAGR,CAAC,OAAQ,QAAS,SAASjiC,SAAQ,SAAU00B,IACE,IAAzC1vB,EAAQ,SAAW0vB,EAAQ,YAC7BzM,EAAM,iBAAmByM,EAAQ,WAAY,EAEjD,KAE+B,IAA3B1vB,EAAQk9B,iBAAyD,IAA7Bl9B,EAAQm9B,iBAC9Cla,EAAMma,0BAA2B,GACG,IAA3Bp9B,EAAQk9B,iBAAwD,IAA7Bl9B,EAAQm9B,mBACpDla,EAAMma,0BAA2B,GAG9Bna,EAAMma,0BACTna,EAAMoa,oBAGRpa,EAAM0W,mBAAkD,IAA9B35B,EAAQ25B,kBAClC1W,EAAMqa,sBAAwB,IAAItB,GAAIz3B,KAAKi3B,UAE3CvY,EAAMsa,qBAGDv9B,EAAQw9B,wBACXva,EAAM2I,gBAGJ3I,EAAMjP,cACRiP,EAAMI,MAAQJ,EAAMjP,YAAYxO,MAAQ,gBAGnCyd,CACT,EA5GA,aAAe4G,EAAM8G,GAsHrB,IAAIt0B,EAASwtB,EAAKvtB,UAg9BlB,OA98BAD,EAAOohC,iBAAmB,SAA0BrN,GAClD,IAAI/L,EAASloB,KAERA,KAAKiuB,UAGRjuB,KAAK8lB,IAAI,SAAS,WAChB,OAAOoC,EAAO7hB,YAAW,WACvB,OAAO6hB,EAAOoZ,iBAAiBrN,EACjC,GAAG,EACL,IAYFj0B,KAAKY,QAAQ,CACXqzB,IAAKA,EACL5zB,KAAM,aAEV,EAWAH,EAAO0gC,iBAAmB,WACxB5gC,KAAKI,GAAG,iBAAkBJ,KAAK8/B,mBAC/B9/B,KAAKuhC,gBAAiB,EAEtBvhC,KAAK8lB,IAAI,QAAS9lB,KAAKggC,eACzB,EAOA9/B,EAAOshC,kBAAoB,WACzBxhC,KAAKuhC,gBAAiB,EACtBvhC,KAAKyhC,uBACLzhC,KAAKQ,IAAI,iBAAkBR,KAAK8/B,kBAClC,EAgBA5/B,EAAO+/B,cAAgB,SAAuBphB,GAC5C7e,KAAKyhC,uBACLzhC,KAAK0hC,iBAAmB1hC,KAAKswB,YAAYlK,GAAKpmB,MAAM,WAElD,IAAI2hC,EAAqB3hC,KAAK0yB,kBAE1B1yB,KAAK4hC,mBAAqBD,GAO5B3hC,KAAKY,QAAQ,YAGfZ,KAAK4hC,iBAAmBD,EAEG,IAAvBA,GACF3hC,KAAKyhC,sBAET,IAAI,IACN,EAYAvhC,EAAO6/B,iBAAmB,SAA0BlhB,GAClD7e,KAAK6hC,UAAY7hC,KAAK4yB,UACxB,EASA1yB,EAAOyyB,SAAW,WAChB,OAAOF,GAAiB,EAAG,EAC7B,EAWAvyB,EAAOwyB,gBAAkB,WACvB,OAAOA,GAAgB1yB,KAAK2yB,WAAY3yB,KAAK6hC,UAC/C,EASA3hC,EAAOuhC,qBAAuB,WAC5BzhC,KAAKqwB,cAAcrwB,KAAK0hC,iBAC1B,EAQAxhC,EAAO4gC,oBAAsB,WAC3B9gC,KAAK8hC,mBAAoB,EACzB9hC,KAAKI,GAAG,OAAQJ,KAAKkgC,mBACrBlgC,KAAKI,GAAG,QAASJ,KAAKogC,yBACxB,EAOAlgC,EAAO6hC,qBAAuB,WAC5B/hC,KAAK8hC,mBAAoB,EACzB9hC,KAAKqgC,0BACLrgC,KAAKQ,IAAI,OAAQR,KAAKkgC,mBACtBlgC,KAAKQ,IAAI,QAASR,KAAKogC,yBACzB,EAUAlgC,EAAOigC,iBAAmB,WACpBngC,KAAKgiC,qBACPhiC,KAAKqgC,0BAGPrgC,KAAKgiC,oBAAsBhiC,KAAKswB,aAAY,WAO1CtwB,KAAKY,QAAQ,CACXP,KAAM,aACNmX,OAAQxX,KACRiiC,mBAAmB,GAEvB,GAAG,IACL,EASA/hC,EAAOmgC,wBAA0B,WAC/BrgC,KAAKqwB,cAAcrwB,KAAKgiC,qBAGxBhiC,KAAKY,QAAQ,CACXP,KAAM,aACNmX,OAAQxX,KACRiiC,mBAAmB,GAEvB,EASA/hC,EAAOmB,QAAU,WAEfrB,KAAKkiC,YAAY9C,GAAOzS,OAEpB3sB,KAAKuhC,gBACPvhC,KAAKwhC,oBAGHxhC,KAAK8hC,mBACP9hC,KAAK+hC,uBAGPvN,EAAWr0B,UAAUkB,QAAQN,KAAKf,KACpC,EAaAE,EAAOgiC,YAAc,SAAqBzvB,GACxC,IAAI6V,EAAStoB,MAEbyS,EAAQ,GAAGZ,OAAOY,IAEZ5T,SAAQ,SAAUwB,GAItB,IAHA,IAAIi4B,EAAOhQ,EAAOjoB,EAAO,aAAe,GACpC9B,EAAI+5B,EAAKh6B,OAENC,KAAK,CACV,IAAIg1B,EAAQ+E,EAAK/5B,GAEJ,SAAT8B,GACFioB,EAAO6Z,sBAAsB5O,GAG/B+E,EAAKT,YAAYtE,EACnB,CACF,GACF,EAOArzB,EAAOkiC,sBAAwB,WAI7B,IAHA,IAAI9J,EAAOt4B,KAAKmhC,uBAAyB,GACrC5iC,EAAI+5B,EAAKh6B,OAENC,KAAK,CACV,IAAIg1B,EAAQ+E,EAAK/5B,GACjByB,KAAKmiC,sBAAsB5O,EAC7B,CACF,EAQArzB,EAAOmiC,MAAQ,WAAkB,EAUjCniC,EAAO28B,YAAc,WAAwB,EAW7C38B,EAAOoiC,eAAiB,WAA2B,EAYnDpiC,EAAOqW,MAAQ,SAAe1U,GAM5B,YALYuC,IAARvC,IACF7B,KAAKuiC,OAAS,IAAIzP,GAAWjxB,GAC7B7B,KAAKY,QAAQ,UAGRZ,KAAKuiC,MACd,EAaAriC,EAAOsiC,OAAS,WACd,OAAIxiC,KAAK0gC,YACAjO,GAAiB,EAAG,GAGtBA,IACT,EAUAvyB,EAAOoqB,KAAO,WAAiB,EAU/BpqB,EAAOuiC,aAAe,WAAyB,EAU/CviC,EAAOwiC,UAAY,WAAsB,EASzCxiC,EAAOyiC,eAAiB,WAElB3iC,KAAK8hC,mBAOP9hC,KAAKY,QAAQ,CACXP,KAAM,aACNmX,OAAQxX,KACRiiC,mBAAmB,GAGzB,EAaA/hC,EAAOkhC,mBAAqB,WAC1B,IAAIvQ,EAAS7wB,KAsBbo/B,GAAOzS,MAAM9tB,SAAQ,SAAUwK,GAC7B,IAAImyB,EAAQ4D,GAAO/1B,GAEfu5B,EAAmB,WACrB/R,EAAOjwB,QAAQyI,EAAO,cACxB,EAEIouB,EAAS5G,EAAO2K,EAAMgE,cAE1B/H,EAAOnS,iBAAiB,cAAesd,GACvCnL,EAAOnS,iBAAiB,WAAYsd,GAEpC/R,EAAOzwB,GAAG,WAAW,WACnBq3B,EAAO5U,oBAAoB,cAAe+f,GAC1CnL,EAAO5U,oBAAoB,WAAY+f,EACzC,GACF,GACF,EASA1iC,EAAO2iC,iBAAmB,WACxB,IAAI7R,EAAShxB,KAEb,IAAI,WAOJ,GAAI,SAAcoc,SAASpc,KAAK+X,MAAO,CAIrC,IAAK/X,KAAK0qB,SAAS,WAAa9S,GAAQ,MAAQxD,OAAOC,KAAK,KAAK/V,OAAS,EAExE,YADA0B,KAAKY,QAAQ,eAMf,IAAIkiC,EAAS,kBAAuB,UACpCA,EAAO7O,IAAMj0B,KAAK0qB,SAAS,WAAa,iDAExCoY,EAAOx8B,OAAS,WAOd0qB,EAAOpwB,QAAQ,cACjB,EAEAkiC,EAAOv8B,QAAU,WAOfyqB,EAAOpwB,QAAQ,aACjB,EAEAZ,KAAKI,GAAG,WAAW,WACjB0iC,EAAOx8B,OAAS,KAChBw8B,EAAOv8B,QAAU,IACnB,IAGA,YAAkB,EAClBvG,KAAK+X,KAAK+F,WAAW/B,YAAY+mB,EACnC,MACE9iC,KAAKqqB,MAAMrqB,KAAK6iC,iBAEpB,EAOA3iC,EAAOghC,kBAAoB,WACzB,IAAI/P,EAASnxB,KAETy3B,EAASz3B,KAAKk0B,aACd6O,EAAe/iC,KAAKgjC,mBAEpBC,EAAiB,SAAwBlgC,GAC3C,OAAO00B,EAAOE,SAAS50B,EAAEwwB,MAC3B,EAEI2P,EAAoB,SAA2BngC,GACjD,OAAO00B,EAAOI,YAAY90B,EAAEwwB,MAC9B,EAEAwP,EAAa3iC,GAAG,WAAY6iC,GAC5BF,EAAa3iC,GAAG,cAAe8iC,GAC/BljC,KAAK6iC,mBAEL,IAAIM,EAAgB,WAClB,OAAOhS,EAAOvwB,QAAQ,kBACxB,EAEIwiC,EAAoB,WACtBD,IAEA,IAAK,IAAI5kC,EAAI,EAAGA,EAAIk5B,EAAOn5B,OAAQC,IAAK,CACtC,IAAIg1B,EAAQkE,EAAOl5B,GACnBg1B,EAAM1Q,oBAAoB,YAAasgB,GAEpB,YAAf5P,EAAM6J,MACR7J,EAAMjO,iBAAiB,YAAa6d,EAExC,CACF,EAEAC,IACA3L,EAAOnS,iBAAiB,SAAU8d,GAClC3L,EAAOnS,iBAAiB,WAAY8d,GACpC3L,EAAOnS,iBAAiB,cAAe8d,GACvCpjC,KAAKI,GAAG,WAAW,WACjB2iC,EAAaviC,IAAI,WAAYyiC,GAC7BF,EAAaviC,IAAI,cAAe0iC,GAChCzL,EAAO5U,oBAAoB,SAAUugB,GACrC3L,EAAO5U,oBAAoB,WAAYugB,GACvC3L,EAAO5U,oBAAoB,cAAeugB,GAE1C,IAAK,IAAI7kC,EAAI,EAAGA,EAAIk5B,EAAOn5B,OAAQC,IAAK,CAC1Bk5B,EAAOl5B,GACbskB,oBAAoB,YAAasgB,EACzC,CACF,GACF,EAkBAjjC,EAAOmjC,aAAe,SAAsBjK,EAAM/D,EAAOtJ,GACvD,IAAKqN,EACH,MAAM,IAAIp1B,MAAM,mDAGlB,OA5uBJ,SAA2B2jB,EAAMyR,EAAM/D,EAAOtJ,EAAUloB,QACtC,IAAZA,IACFA,EAAU,CAAC,GAGb,IAAI4zB,EAAS9P,EAAKuM,aAClBrwB,EAAQu1B,KAAOA,EAEX/D,IACFxxB,EAAQwxB,MAAQA,GAGdtJ,IACFloB,EAAQkoB,SAAWA,GAGrBloB,EAAQgwB,KAAOlM,EACf,IAAI4L,EAAQ,IAAIsM,GAAIz3B,KAAKk3B,WAAWz7B,GAEpC,OADA4zB,EAAOE,SAASpE,GACTA,CACT,CAwtBW+P,CAAkBtjC,KAAMo5B,EAAM/D,EAAOtJ,EAC9C,EAwBA7rB,EAAOqjC,sBAAwB,SAA+B1/B,GAC5D,IAAI0vB,EAAQ5J,GAAe9lB,EAAS,CAClCgwB,KAAM7zB,OAER,OAAO,IAAI0/B,GAAOE,aAAaN,WAAW/L,EAC5C,EAuBArzB,EAAOk0B,mBAAqB,SAA4BvwB,EAAS2/B,GAC/D,IAAIC,EAASzjC,UAEG,IAAZ6D,IACFA,EAAU,CAAC,GAGb,IAAI6/B,EAAmB1jC,KAAKujC,sBAAsB1/B,GAmBlD,OAjBsB,IAAlB2/B,IAA4C,IAAlBA,IAE5BpuB,GAAMkB,KAAK,oKACXktB,GAAgB,GAIlBxjC,KAAK2jC,qBAAqBlK,iBAAiBiK,GAC3C1jC,KAAKgjC,mBAAmBrL,SAAS+L,EAAiBnQ,QAE5B,IAAlBiQ,GAEFxjC,KAAKqqB,OAAM,WACT,OAAOoZ,EAAOtC,sBAAsBxJ,SAAS+L,EAAiBnQ,MAChE,IAGKmQ,CACT,EASAxjC,EAAOiiC,sBAAwB,SAA+B5O,GAC5D,IAAImG,EAAe15B,KAAK2jC,qBAAqBhK,wBAAwBpG,GAErEvzB,KAAK2jC,qBAAqB9J,oBAAoBH,GAC9C15B,KAAKgjC,mBAAmBnL,YAAYtE,GACpCvzB,KAAKmhC,sBAAsBtJ,YAAYtE,EACzC,EAcArzB,EAAO0jC,wBAA0B,WAC/B,MAAO,CAAC,CACV,EAiBA1jC,EAAO2jC,wBAA0B,WAC/B,IAAIC,EAAe9jC,KAAK0qB,SAASqZ,SAAW,YAE5C,GAAID,EACF,OAAOA,EAAaE,QAExB,EASA9jC,EAAO+jC,wBAA0B,WAC/B,OAAO,CACT,EAQA/jC,EAAOgkC,2BAA6B,WAAuC,EAS3EhkC,EAAO29B,0BAA4B,SAAmCsG,GACpE,IAAIC,EAASpkC,KAETwO,EAAKuT,KAeT,OAbI/hB,KAAK01B,UACP11B,KAAKwgC,eAAehkB,IAAIhO,GACxBxO,KAAK8lB,IAAI,WAAW,WACdse,EAAO5D,eAAexjB,IAAIxO,KAC5B41B,EAAO5D,eAAuB,OAAEhyB,GAEhC21B,IAEJ,KAEAnkC,KAAK+wB,2BAA2BviB,EAAI21B,GAG/B31B,CACT,EAQAtO,EAAOm+B,yBAA2B,SAAkC7vB,GAC9DxO,KAAKwgC,eAAexjB,IAAIxO,GAC1BxO,KAAKwgC,eAAuB,OAAEhyB,GAE9BxO,KAAKixB,0BAA0BziB,EAEnC,EAQAtO,EAAOmkC,UAAY,WAAsB,EAQzCnkC,EAAOokC,YAAc,WAAwB,EAQ7CpkC,EAAOqkC,eAAiB,WAA2B,EAWnDrkC,EAAOskC,0BAA4B,WAAsC,EAWzEtkC,EAAOukC,0BAA4B,WAAsC,EAmBzEvkC,EAAOwkC,YAAc,WACnB,MAAO,EACT,EAaAhX,EAAKgX,YAAc,WACjB,MAAO,EACT,EAYAhX,EAAKiX,cAAgB,SAAuBC,EAAQ/gC,GAClD,OAAO6pB,EAAKgX,YAAYE,EAAOvkC,KACjC,EAeAqtB,EAAKG,OAAS,SAAgBd,GAC5B,OAAOA,EAAU5sB,qBAAqButB,GAAQX,aAAqBW,GAAQX,IAAcW,CAC3F,EAYAA,EAAKmX,aAAe,SAAsBx7B,EAAMwqB,GAK9C,GAJKnG,EAAKoX,SACRpX,EAAKoX,OAAS,CAAC,IAGZpX,EAAKG,OAAOgG,GACf,MAAM,IAAI7vB,MAAM,QAAUqF,EAAO,mBAGnC,IAAKqkB,EAAKgX,YACR,MAAM,IAAI1gC,MAAM,uDAGlB,IAAK0pB,EAAKiX,cACR,MAAM,IAAI3gC,MAAM,yDAYlB,OATAqF,EAAOqgB,GAAcrgB,GACrBqkB,EAAKoX,OAAOz7B,GAAQwqB,EACpBnG,EAAKoX,OAAOziC,GAAYgH,IAASwqB,EAEpB,SAATxqB,GAEFqkB,EAAKqX,kBAAkBxkC,KAAK8I,GAGvBwqB,CACT,EAYAnG,EAAKsX,QAAU,SAAiB37B,GAC9B,GAAKA,EAIL,OAAIqkB,EAAKoX,QAAUpX,EAAKoX,OAAOz7B,GACtBqkB,EAAKoX,OAAOz7B,IAGrBA,EAAOqgB,GAAcrgB,GAEjB,KAAY,aAAoB,YAAiBA,IACnD+L,GAAMkB,KAAK,OAASjN,EAAO,6GACpB,YAAiBA,SAF1B,EAIF,EAEOqkB,CACT,CAxkCwB,CAwkCtBvD,IAqCF0V,GAAIlT,MAAM9tB,SAAQ,SAAUwK,GAC1B,IAAImyB,EAAQqE,GAAIx2B,GAEhBqkB,GAAKvtB,UAAUq7B,EAAMgE,YAAc,WAEjC,OADAx/B,KAAKw7B,EAAMiE,aAAez/B,KAAKw7B,EAAMiE,cAAgB,IAAIjE,EAAM6D,UACxDr/B,KAAKw7B,EAAMiE,YACpB,CACF,IAgCA/R,GAAKvtB,UAAU8kC,uBAAwB,EAQvCvX,GAAKvtB,UAAU+kC,qBAAsB,EASrCxX,GAAKvtB,UAAUglC,0BAA2B,EAW1CzX,GAAKvtB,UAAUilC,sBAAuB,EAUtC1X,GAAKvtB,UAAUwgC,wBAAyB,EAYxCjT,GAAKvtB,UAAUklC,mBAAoB,EAUnC3X,GAAKvtB,UAAU0gC,0BAA2B,EAS1CnT,GAAKvtB,UAAU8gC,0BAA2B,EAQ1CvT,GAAKvtB,UAAUmlC,4BAA6B,EAc5C5X,GAAK6X,mBAAqB,SAAUC,GAUlCA,EAAMC,sBAAwB,SAAUC,EAASjlC,GAC/C,IAAImiB,EAAW4iB,EAAMG,eAEhB/iB,IACHA,EAAW4iB,EAAMG,eAAiB,SAGtBvhC,IAAV3D,IAEFA,EAAQmiB,EAAStkB,QAGnBskB,EAASjiB,OAAOF,EAAO,EAAGilC,EAC5B,EAaAF,EAAMd,YAAc,SAAUrkC,GAI5B,IAHA,IACIulC,EADAhjB,EAAW4iB,EAAMG,gBAAkB,GAG9BpnC,EAAI,EAAGA,EAAIqkB,EAAStkB,OAAQC,IAGnC,GAFAqnC,EAAMhjB,EAASrkB,GAAGmmC,YAAYrkC,GAG5B,OAAOulC,EAIX,MAAO,EACT,EAkBAJ,EAAMK,oBAAsB,SAAUluB,EAAQ9T,GAI5C,IAHA,IAAI+e,EAAW4iB,EAAMG,gBAAkB,GAG9BpnC,EAAI,EAAGA,EAAIqkB,EAAStkB,OAAQC,IAGnC,GAFMqkB,EAASrkB,GAAGunC,gBAAgBnuB,EAAQ9T,GAGxC,OAAO+e,EAASrkB,GAIpB,OAAO,IACT,EAeAinC,EAAMb,cAAgB,SAAUC,EAAQ/gC,GACtC,IAAIkiC,EAAKP,EAAMK,oBAAoBjB,EAAQ/gC,GAE3C,OAAIkiC,EACKA,EAAGD,gBAAgBlB,EAAQ/gC,GAG7B,EACT,EAOiB,CAAC,WAAY,UAAW,YAe9BhF,SAAQ,SAAU0oB,GAC3B,IAAIye,EAAahmC,KAAKunB,GAEI,mBAAfye,IAIXhmC,KAAKunB,GAAU,WACb,OAAIvnB,KAAKimC,gBAAkBjmC,KAAKimC,eAAe1e,GACtCvnB,KAAKimC,eAAe1e,GAAQnmB,MAAMpB,KAAKimC,eAAgBnlC,WAGzDklC,EAAW5kC,MAAMpB,KAAMc,UAChC,EACF,GAAG0kC,EAAMrlC,WAUTqlC,EAAMrlC,UAAU+lC,UAAY,SAAUvuB,GACpC,IAAIouB,EAAKP,EAAMK,oBAAoBluB,EAAQ3X,KAAK0qB,UAE3Cqb,IAGCP,EAAMW,oBACRJ,EAAKP,EAAMW,oBAEX/wB,GAAMmB,MAAM,oDAKhBvW,KAAKugC,uBACLvgC,KAAKQ,IAAI,UAAWR,KAAKsgC,uBAErByF,IAAOP,EAAMW,sBACfnmC,KAAKomC,eAAiBzuB,GAGxB3X,KAAKimC,eAAiBF,EAAGM,aAAa1uB,EAAQ3X,KAAMA,KAAK0qB,UACzD1qB,KAAK8lB,IAAI,UAAW9lB,KAAKsgC,sBAC3B,EAQAkF,EAAMrlC,UAAUogC,qBAAuB,WAIjCvgC,KAAKomC,iBACPpmC,KAAKkiC,YAAY,CAAC,QAAS,UAC3BliC,KAAKomC,eAAiB,MAIxBpmC,KAAKoiC,wBAEDpiC,KAAKimC,iBACHjmC,KAAKimC,eAAe5kC,SACtBrB,KAAKimC,eAAe5kC,UAGtBrB,KAAKimC,eAAiB,KAE1B,CACF,EAIA9b,GAAYmH,kBAAkB,OAAQ5D,IACtCA,GAAKmX,aAAa,OAAQnX,IAO1BA,GAAKqX,kBAAoB,GAMzB,IAAIuB,GAAc,CAAC,EACfC,GAAsB,CAAC,EACvBC,GAAa,CAAC,EAsDlB,SAASN,GAAU9kB,EAAQ6S,EAAKwS,GAC9BrlB,EAAO/a,YAAW,WAChB,OAAOqgC,GAAgBzS,EAAKqS,GAAYrS,EAAI5zB,MAAOomC,EAAMrlB,EAC3D,GAAG,EACL,CAmFA,SAASulB,GAAQC,EAAY/S,EAAMpuB,EAAQohC,QAC7B,IAARA,IACFA,EAAM,MAGR,IAAIC,EAAa,OAASpd,GAAcjkB,GACpCshC,EAAkBH,EAAWrkC,OAAOykC,GAAmBF,GAAaD,GACpEI,EAAaF,IAAoBP,GAGjC1iB,EAAcmjB,EAAa,KAAOpT,EAAKpuB,GAAQshC,GAEnD,OAwDF,SAAsBG,EAAKzhC,EAAQ/C,EAAOukC,GACxC,IAAK,IAAI1oC,EAAI2oC,EAAI5oC,OAAS,EAAGC,GAAK,EAAGA,IAAK,CACxC,IAAI4oC,EAAKD,EAAI3oC,GAET4oC,EAAG1hC,IACL0hC,EAAG1hC,GAAQwhC,EAAYvkC,EAE3B,CACF,CAjEE0kC,CAAaR,EAAYnhC,EAAQqe,EAAamjB,GACvCnjB,CACT,CAOA,IAAIujB,GAAiB,CACnB1U,SAAU,EACVwL,YAAa,EACbvL,SAAU,EACV0U,MAAO,EACP9E,OAAQ,EACR9M,OAAQ,EACR6R,SAAU,EACVC,OAAQ,EACRC,MAAO,GAQLC,GAAiB,CACnB/E,eAAgB,EAChBgF,SAAU,EACVC,UAAW,GAQTC,GAAmB,CACrBvd,KAAM,EACNsL,MAAO,GAGT,SAASoR,GAAmBvhC,GAC1B,OAAO,SAAU/C,EAAOykC,GAEtB,OAAIzkC,IAAU8jC,GACLA,GAGLW,EAAG1hC,GACE0hC,EAAG1hC,GAAQ/C,GAGbA,CACT,CACF,CA4DA,SAASgkC,GAAgBzS,EAAK2S,EAAYH,EAAMrlB,EAAQwL,EAAKkb,QAC/C,IAAR7T,IACFA,EAAM,CAAC,QAGU,IAAf2S,IACFA,EAAa,SAGH,IAARha,IACFA,EAAM,SAGQ,IAAZkb,IACFA,GAAU,GAGZ,IAAIC,EAAcnB,EACdoB,EAAYD,EAAY,GACxBE,EAASF,EAAYloC,MAAM,GAG/B,GAAyB,iBAAdmoC,EACTtB,GAAgBzS,EAAKqS,GAAY0B,GAAYvB,EAAMrlB,EAAQwL,EAAKkb,QAE3D,GAAIE,EAAW,CACpB,IAAIb,EAxDR,SAA4B/lB,EAAQ4mB,GAClC,IAAId,EAAMX,GAAoBnlB,EAAO5S,MACjC24B,EAAK,KAET,GAAID,QAGF,OAFAC,EAAKa,EAAU5mB,GACfmlB,GAAoBnlB,EAAO5S,MAAQ,CAAC,CAACw5B,EAAWb,IACzCA,EAGT,IAAK,IAAI5oC,EAAI,EAAGA,EAAI2oC,EAAI5oC,OAAQC,IAAK,CACnC,IAAI2pC,EAAShB,EAAI3oC,GACb4pC,EAAMD,EAAO,GACbE,EAAMF,EAAO,GAEbC,IAAQH,IAIZb,EAAKiB,EACP,CAOA,OALW,OAAPjB,IACFA,EAAKa,EAAU5mB,GACf8lB,EAAI3mC,KAAK,CAACynC,EAAWb,KAGhBA,CACT,CA4BakB,CAAmBjnB,EAAQ4mB,GAEpC,IAAKb,EAAGjB,UAEN,OADAtZ,EAAIrsB,KAAK4mC,GACFT,GAAgBzS,EAAKgU,EAAQxB,EAAMrlB,EAAQwL,EAAKkb,GAGzDX,EAAGjB,UAAU,GAAO,CAAC,EAAGjS,IAAM,SAAUpyB,EAAKymC,GAG3C,GAAIzmC,EACF,OAAO6kC,GAAgBzS,EAAKgU,EAAQxB,EAAMrlB,EAAQwL,EAAKkb,GAIzDlb,EAAIrsB,KAAK4mC,GAGTT,GAAgB4B,EAAMrU,EAAI5zB,OAASioC,EAAKjoC,KAAO4nC,EAAS3B,GAAYgC,EAAKjoC,MAAOomC,EAAMrlB,EAAQwL,EAAKkb,EACrG,GACF,MAAWG,EAAO3pC,OAChBooC,GAAgBzS,EAAKgU,EAAQxB,EAAMrlB,EAAQwL,EAAKkb,GACvCA,EACTrB,EAAKxS,EAAKrH,GAEV8Z,GAAgBzS,EAAKqS,GAAY,KAAMG,EAAMrlB,EAAQwL,GAAK,EAE9D,CAUA,IAAI2b,GAAgB,CAClBC,KAAM,YACNC,IAAK,YACL1gC,IAAK,YACLwL,IAAK,YACLm1B,IAAK,YACLr1B,IAAK,mBACLs1B,IAAK,YACLx1B,IAAK,aACLD,IAAK,YACL01B,IAAK,cACL/0B,KAAM,aACNg1B,IAAK,YACL70B,IAAK,YACL80B,KAAM,wBACNC,IAAK,uBACLC,IAAK,aACLC,KAAM,aACNC,IAAK,YACLC,IAAK,YACLC,IAAK,gBACLC,KAAM,cAYJC,GAAc,SAAqBrV,QACzB,IAARA,IACFA,EAAM,IAGR,IAAIsV,EAAM5N,GAAiB1H,GAE3B,OADesU,GAAcgB,EAAIlnC,gBACd,EACrB,EAkEImnC,GAAe,SAASA,EAAavV,GAEvC,GAAIhzB,MAAMyC,QAAQuwB,GAAM,CACtB,IAAIwV,EAAS,GACbxV,EAAIp1B,SAAQ,SAAU6qC,GACpBA,EAASF,EAAaE,GAElBzoC,MAAMyC,QAAQgmC,GAChBD,EAASA,EAAO53B,OAAO63B,GACdpyB,GAASoyB,IAClBD,EAAOlpC,KAAKmpC,EAEhB,IACAzV,EAAMwV,CACR,MAEExV,EAFwB,iBAARA,GAAoBA,EAAItxB,OAElC,CAACgnC,GAAU,CACf1V,IAAKA,KAEE3c,GAAS2c,IAA2B,iBAAZA,EAAIA,KAAoBA,EAAIA,KAAOA,EAAIA,IAAItxB,OAEtE,CAACgnC,GAAU1V,IAGX,GAGR,OAAOA,CACT,EAWA,SAAS0V,GAAU1V,GACjB,IAAKA,EAAI5zB,KAAM,CACb,IAAIupC,EAAWN,GAAYrV,EAAIA,KAE3B2V,IACF3V,EAAI5zB,KAAOupC,EAEf,CAEA,OAAO3V,CACT,CASA,IAAI4V,GAA2B,SAAUrV,GAevC,SAASqV,EAAYzoB,EAAQvd,EAASwmB,GACpC,IAAIvD,EAGA4D,EAAWf,GAAe,CAC5B9O,UAAU,GACThX,GAIH,GAHAijB,EAAQ0N,EAAWzzB,KAAKf,KAAMohB,EAAQsJ,EAAUL,IAAUrqB,KAGrD6D,EAAQiqB,cAAcrW,SAAoD,IAAzC5T,EAAQiqB,cAAcrW,QAAQnZ,OAqBlE8iB,EAAO6S,IAAIpwB,EAAQiqB,cAAcrW,cApBjC,IAAK,IAAIlZ,EAAI,EAAGurC,EAAIjmC,EAAQiqB,cAAcic,UAAWxrC,EAAIurC,EAAExrC,OAAQC,IAAK,CACtE,IAAIyrC,EAAWtgB,GAAcogB,EAAEvrC,IAC3Bs1B,EAAOnG,GAAKsX,QAAQgF,GAQxB,GALKA,IACHnW,EAAO1J,GAAYiD,aAAa4c,IAI9BnW,GAAQA,EAAKoW,cAAe,CAC9B7oB,EAAO8oB,UAAUF,GACjB,KACF,CACF,CASF,OAAOljB,CACT,CAEA,OAnDA,aAAe+iB,EAAarV,GAmDrBqV,CACT,CArD+B,CAqD7B1f,IAEFA,GAAYmH,kBAAkB,cAAeuY,IAS7C,IAAIM,GAAkC,SAAU3V,GAsB9C,SAAS2V,EAAmB/oB,EAAQvd,GAClC,IAAIijB,EA4BJ,OA1BAA,EAAQ0N,EAAWzzB,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAExC0qB,SAAS2L,aACjBvP,EAAMuP,YAAYvP,EAAM4D,SAAS2L,aAGnCvP,EAAMsjB,iBAAmB,SAAUrnC,GACjC,OAAO+jB,EAAMujB,gBAAgBtnC,EAC/B,EAEA+jB,EAAMwjB,gBAAkB,SAAUvnC,GAChC,OAAO+jB,EAAMyjB,eAAexnC,EAC9B,EAEA+jB,EAAM0jB,aAAe,SAAUznC,GAC7B,OAAO+jB,EAAM2jB,YAAY1nC,EAC3B,EAEA+jB,EAAM2N,eAAiB,SAAU1xB,GAC/B,OAAO+jB,EAAMyI,cAAcxsB,EAC7B,EAEA+jB,EAAM2I,gBAEN3I,EAAMhQ,SAECgQ,CACT,EAnDA,aAAeqjB,EAAoB3V,GAqEnC,IAAIt0B,EAASiqC,EAAmBhqC,UA+MhC,OA7MAD,EAAO2a,SAAW,SAAoB1M,EAAKqtB,EAAOxgB,QACpC,IAAR7M,IACFA,EAAM,YAGM,IAAVqtB,IACFA,EAAQ,CAAC,QAGQ,IAAfxgB,IACFA,EAAa,CAAC,GAGhBwgB,EAAQ,GAAO,CACbnf,UAAWrc,KAAKguB,gBAChBoH,SAAU,GACToG,GAES,WAARrtB,GACFiH,GAAMmB,MAAM,yDAA2DpI,EAAM,4CAI/E6M,EAAa,GAAO,CAClBia,KAAM,UACLja,GACHhb,KAAK0qC,UAAYlP,EAAMpG,SACvB,IAAIrd,EAAK8C,GAAS1M,EAAKqtB,EAAOxgB,GAO9B,OANAjD,EAAGgE,YAAYlB,GAAS,OAAQ,CAC9BwB,UAAW,wBACV,CACD,eAAe,KAEjBrc,KAAK2qC,oBAAoB5yB,GAClBA,CACT,EAEA7X,EAAOmB,QAAU,WAEfrB,KAAK4qC,eAAiB,KAEtBpW,EAAWr0B,UAAUkB,QAAQN,KAAKf,KACpC,EAYAE,EAAOyqC,oBAAsB,SAA6B5yB,GAaxD,OAZA/X,KAAK4qC,eAAiB/vB,GAAS,OAAQ,CACrCwB,UAAW,oBACV,CAED,YAAa,WAGXtE,GACFA,EAAGgE,YAAY/b,KAAK4qC,gBAGtB5qC,KAAKq2B,YAAYr2B,KAAK6qC,aAAc9yB,GAC7B/X,KAAK4qC,cACd,EAeA1qC,EAAOm2B,YAAc,SAAqBjuB,EAAM2P,GAK9C,QAJW,IAAPA,IACFA,EAAK/X,KAAK+X,WAGC3T,IAATgE,EACF,OAAOpI,KAAK6qC,cAAgB,YAG9B,IAAIC,EAAgB9qC,KAAK4rB,SAASxjB,GAClCpI,KAAK6qC,aAAeziC,EACpBkT,GAAYtb,KAAK4qC,eAAgBE,GAE5B9qC,KAAK+qC,gBAAmB/qC,KAAKuqB,QAAQG,SAASsgB,qBAEjDjzB,EAAGsD,aAAa,QAASyvB,EAE7B,EASA5qC,EAAO8tB,cAAgB,WACrB,MAAO,0BAA4BwG,EAAWr0B,UAAU6tB,cAAcjtB,KAAKf,KAC7E,EAMAE,EAAO4W,OAAS,WACT9W,KAAKirC,WACRjrC,KAAKirC,UAAW,EAChBjrC,KAAKyc,YAAY,gBACjBzc,KAAK+oB,IAAI1N,aAAa,gBAAiB,cAET,IAAnBrb,KAAK0qC,WACd1qC,KAAK+oB,IAAI1N,aAAa,WAAYrb,KAAK0qC,WAGzC1qC,KAAKI,GAAG,CAAC,MAAO,SAAUJ,KAAKwqC,cAC/BxqC,KAAKI,GAAG,UAAWJ,KAAKy0B,gBAE5B,EAMAv0B,EAAO2W,QAAU,WACf7W,KAAKirC,UAAW,EAChBjrC,KAAKsc,SAAS,gBACdtc,KAAK+oB,IAAI1N,aAAa,gBAAiB,aAET,IAAnBrb,KAAK0qC,WACd1qC,KAAK+oB,IAAI5L,gBAAgB,YAG3Bnd,KAAKQ,IAAI,YAAaR,KAAKoqC,kBAC3BpqC,KAAKQ,IAAI,WAAYR,KAAKsqC,iBAC1BtqC,KAAKQ,IAAI,CAAC,MAAO,SAAUR,KAAKwqC,cAChCxqC,KAAKQ,IAAI,UAAWR,KAAKy0B,eAC3B,EAQAv0B,EAAO0qB,qBAAuB,WAC5B5qB,KAAKq2B,YAAYr2B,KAAK6qC,aACxB,EAcA3qC,EAAOuqC,YAAc,SAAqB5rB,GACpC7e,KAAK0qB,SAASwgB,cAChBlrC,KAAK0qB,SAASwgB,aAAanqC,KAAKf,KAAMc,UAE1C,EAcAZ,EAAOqvB,cAAgB,SAAuB1Q,GAIxC,eAAmBA,EAAO,UAAY,eAAmBA,EAAO,UAClEA,EAAM4E,iBACN5E,EAAMmF,kBACNhkB,KAAKY,QAAQ,UAGb4zB,EAAWr0B,UAAUovB,cAAcxuB,KAAKf,KAAM6e,EAElD,EAEOsrB,CACT,CAtRsC,CAsRpChgB,IAEFA,GAAYmH,kBAAkB,qBAAsB6Y,IAQpD,IAAIgB,GAA2B,SAAUC,GAYvC,SAASD,EAAY/pB,EAAQvd,GAC3B,IAAIijB,EAWJ,OATAA,EAAQskB,EAAoBrqC,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAErDqrC,SAENvkB,EAAMwkB,QAAU,SAAUvoC,GACxB,OAAO+jB,EAAMukB,OAAOtoC,EACtB,EAEAqe,EAAOhhB,GAAG,eAAgB0mB,EAAMwkB,SACzBxkB,CACT,EAxBA,aAAeqkB,EAAaC,GA8B5B,IAAIlrC,EAASirC,EAAYhrC,UAiGzB,OA/FAD,EAAOmB,QAAU,WACfrB,KAAKohB,SAAS5gB,IAAI,eAAgBR,KAAKsrC,SAEvCF,EAAoBjrC,UAAUkB,QAAQN,KAAKf,KAC7C,EASAE,EAAO2a,SAAW,WAMhB,OALSA,GAAS,MAAO,CACvBwB,UAAW,aAEX+Y,UAAW,GAGf,EAWAl1B,EAAOmrC,OAAS,SAAgBxsB,GAC9B,IAAInZ,EAAM1F,KAAKohB,SAASmqB,SACxBvrC,KAAKwrC,OAAO9lC,GAGRA,EACF1F,KAAKouB,OAELpuB,KAAKquB,MAET,EASAnuB,EAAOsrC,OAAS,SAAgB9lC,GAC9B,IAAI+lC,EAAkB,GAGlB/lC,IACF+lC,EAAkB,QAAW/lC,EAAM,MAGrC1F,KAAK+oB,IAAIrH,MAAM+pB,gBAAkBA,CACnC,EAcAvrC,EAAOuqC,YAAc,SAAqB5rB,GAExC,GAAK7e,KAAKuqB,QAAQuL,WAAlB,CAIA,IAAI4V,EAAoB1rC,KAAKuqB,QAAQohB,YAAY,QAAU3rC,KAAKuqB,QAAQqhB,IAAIC,UAAY7rC,KAAKuqB,QAAQqhB,IAAIC,SAASvtC,OAAS,GAEvH0B,KAAKuqB,QAAQsJ,MAAK,KAGnBza,IAAcH,KAAYyyB,GAC3B1rC,KAAKuqB,QAAQsJ,MAAK,GAAMlW,QAGtB3d,KAAKuqB,QAAQmL,SACfrC,GAAerzB,KAAKuqB,QAAQD,QAE5BtqB,KAAKuqB,QAAQqL,OAdf,CAgBF,EAEOuV,CACT,CAjI+B,CAiI7BhB,IAEFhgB,GAAYmH,kBAAkB,cAAe6Z,IAE7C,IAAIW,GAAW,OAEXC,GAAU,CACZC,UAAW,YACXC,UAAW,aACXC,MAAO,QACPC,mBAAoB,6CACpBC,eAAgB,2BAChBC,sBAAuB,aACvBC,kBAAmB,QACnBC,OAAQ,mCACRzJ,OAAQ,8BACR0J,UAAW,0DAeb,SAASC,GAAeC,EAAOC,GAC7B,IAAIC,EAEJ,GAAqB,IAAjBF,EAAMpuC,OAERsuC,EAAMF,EAAM,GAAKA,EAAM,GAAKA,EAAM,GAAKA,EAAM,GAAKA,EAAM,GAAKA,EAAM,OAC9D,IAAqB,IAAjBA,EAAMpuC,OAIf,MAAM,IAAI0F,MAAM,gCAAkC0oC,EAAQ,gDAF1DE,EAAMF,EAAM7sC,MAAM,EAGpB,CAEA,MAAO,QAAUivB,SAAS8d,EAAI/sC,MAAM,EAAG,GAAI,IAAM,IAAMivB,SAAS8d,EAAI/sC,MAAM,EAAG,GAAI,IAAM,IAAMivB,SAAS8d,EAAI/sC,MAAM,EAAG,GAAI,IAAM,IAAM8sC,EAAU,GAC/I,CAiBA,SAASE,GAAe90B,EAAI2J,EAAOwN,GACjC,IACEnX,EAAG2J,MAAMA,GAASwN,CACpB,CAAE,MAAOnsB,GAEP,MACF,CACF,CAQA,IAAI+pC,GAAgC,SAAUtY,GAe5C,SAASsY,EAAiB1rB,EAAQvd,EAASwmB,GACzC,IAAIvD,EAEJA,EAAQ0N,EAAWzzB,KAAKf,KAAMohB,EAAQvd,EAASwmB,IAAUrqB,KAEzD,IAAI+sC,EAAuB,SAA8BhqC,GACvD,OAAO+jB,EAAMqc,cAAcpgC,EAC7B,EAiCA,OA/BAqe,EAAOhhB,GAAG,aAAa,SAAU2C,GAC/B,OAAO+jB,EAAMkmB,cAAcjqC,EAC7B,IACAqe,EAAOhhB,GAAG,kBAAmB2sC,GAC7B3rB,EAAOhhB,GAAG,kBAAkB,SAAU2C,GACpC,OAAO+jB,EAAMmmB,eAAelqC,EAC9B,IAKAqe,EAAOiJ,MAAMjE,IAAK,aAAuBU,IAAQ,WAC/C,GAAI1F,EAAO0b,OAAS1b,EAAO0b,MAAMmE,yBAC/BjhC,KAAKquB,WADP,CAKAjN,EAAOhhB,GAAG,mBAAoB2sC,GAC9B3rB,EAAOhhB,GAAG,eAAgB2sC,GAC1B,qBAA0B,oBAAqBA,GAC/C3rB,EAAOhhB,GAAG,WAAW,WACnB,OAAO,wBAA6B,oBAAqB2sC,EAC3D,IAGA,IAFA,IAAItV,EAASz3B,KAAK0qB,SAASoD,cAAc2J,QAAU,GAE1Cl5B,EAAI,EAAGA,EAAIk5B,EAAOn5B,OAAQC,IACjCyB,KAAKuqB,QAAQ6J,mBAAmBqD,EAAOl5B,IAAI,GAG7CyB,KAAKitC,gBAdL,CAeF,KACOnmB,CACT,EAvDA,aAAegmB,EAAkBtY,GAmEjC,IAAIt0B,EAAS4sC,EAAiB3sC,UA0R9B,OAxRAD,EAAO+sC,eAAiB,WAWtB,IAVA,IAMIC,EACAC,EACAC,EARAC,EAAQ,CACV9S,SAAU,EACVG,UAAW,GAET4S,EAAYttC,KAAKuqB,QAAQ2J,aACzBqZ,EAAWvtC,KAAKuqB,QAAQijB,OAAOC,iBAK1BlvC,EAAI,EAAGA,EAAI+uC,EAAUhvC,OAAQC,IAAK,CACzC,IAAIg1B,EAAQ+Z,EAAU/uC,GAElBgvC,GAAYA,EAAShV,SAAWgV,EAASxhB,UAAYwhB,EAASxhB,WAAawH,EAAMxH,UAAYwH,EAAM6F,QAAQiU,EAEzG9Z,EAAM6F,OAASmU,EAASnU,KAC1BgU,EAAiB7Z,EACP6Z,IACVA,EAAiB7Z,GAGVga,IAAaA,EAAShV,SAC/B6U,EAAiB,KACjBF,EAAY,KACZC,EAAgB,MACP5Z,EAAe,UACL,iBAAfA,EAAM6F,MAA4B8T,EAE3B3Z,EAAM6F,QAAQiU,IAAUF,IACjCA,EAAgB5Z,GAFhB2Z,EAAY3Z,EAKlB,CAMI6Z,EACFA,EAAehQ,KAAO,UACb+P,EACTA,EAAc/P,KAAO,UACZ8P,IACTA,EAAU9P,KAAO,UAErB,EAWAl9B,EAAO8sC,cAAgB,WACjBhtC,KAAKuqB,QAAQuS,OAAS98B,KAAKuqB,QAAQuS,MAAMmE,yBAC3CjhC,KAAKquB,OAELruB,KAAKouB,MAET,EASAluB,EAAO2a,SAAW,WAChB,OAAO2Z,EAAWr0B,UAAU0a,SAAS9Z,KAAKf,KAAM,MAAO,CACrDqc,UAAW,0BACV,CACD,UAAa,MACb,YAAa,MACb,cAAe,QAEnB,EAMAnc,EAAOwtC,aAAe,WACW,mBAApB,YACT,WAAgBC,YAAY,IAAU,GAAI3tC,KAAK+oB,IAEnD,EAUA7oB,EAAOijC,cAAgB,WACrB,IAAI1L,EAASz3B,KAAKuqB,QAAQ2J,aACtB0Z,EAA6B5tC,KAAK0qB,SAASkjB,2BAG/C,GAFA5tC,KAAK0tC,eAEDE,EAAJ,CAGE,IAFA,IAAIC,EAAgB,GAEX1sC,EAAK,EAAGA,EAAKs2B,EAAOn5B,SAAU6C,EAAI,CACzC,IAAIoyB,EAAQkE,EAAOt2B,GAEA,YAAfoyB,EAAM6J,MAIVyQ,EAActtC,KAAKgzB,EACrB,CAEAvzB,KAAK8tC,eAAeD,EAEtB,KAfA,CAwBA,IAJA,IAAIE,EAAoB,KACpBC,EAAyB,KACzBzvC,EAAIk5B,EAAOn5B,OAERC,KAAK,CACV,IAAI0vC,EAASxW,EAAOl5B,GAEA,YAAhB0vC,EAAO7Q,OACW,iBAAhB6Q,EAAO7U,KACT2U,EAAoBE,EAEpBD,EAAyBC,EAG/B,CAEID,GACqC,QAAnChuC,KAAKwd,aAAa,cACpBxd,KAAKqb,aAAa,YAAa,OAGjCrb,KAAK8tC,eAAeE,IACXD,IAC8B,cAAnC/tC,KAAKwd,aAAa,cACpBxd,KAAKqb,aAAa,YAAa,aAGjCrb,KAAK8tC,eAAeC,GAhCtB,CAkCF,EASA7tC,EAAOguC,mBAAqB,SAA4B3a,GAKtD,IAJA,IAAI4a,EAAYnuC,KAAKuqB,QAAQ6jB,kBAAkBC,YAC3C7a,EAAOD,EAAMkK,WACbl/B,EAAIi1B,EAAKl1B,OAENC,KAAK,CACV,IAAIk1B,EAAMD,EAAKj1B,GAEf,GAAKk1B,EAAL,CAIA,IAAI6a,EAAS7a,EAAI8a,aAsCjB,GApCIJ,EAAUzB,QACZ4B,EAAOzyB,WAAW6F,MAAMgrB,MAAQyB,EAAUzB,OAGxCyB,EAAUK,aACZ3B,GAAeyB,EAAOzyB,WAAY,QAAS4wB,GAAe0B,EAAUzB,OAAS,OAAQyB,EAAUK,cAG7FL,EAAUM,kBACZH,EAAOzyB,WAAW6F,MAAM+sB,gBAAkBN,EAAUM,iBAGlDN,EAAUO,mBACZ7B,GAAeyB,EAAOzyB,WAAY,kBAAmB4wB,GAAe0B,EAAUM,iBAAmB,OAAQN,EAAUO,oBAGjHP,EAAUQ,cACRR,EAAUS,cACZ/B,GAAeyB,EAAQ,kBAAmB7B,GAAe0B,EAAUQ,YAAaR,EAAUS,gBAE1FN,EAAO5sB,MAAM+sB,gBAAkBN,EAAUQ,aAIzCR,EAAUU,YACgB,eAAxBV,EAAUU,UACZP,EAAOzyB,WAAW6F,MAAMotB,WAAa,mDAA6EhD,GACjF,WAAxBqC,EAAUU,UACnBP,EAAOzyB,WAAW6F,MAAMotB,WAAa,uCAAiEhD,GACrE,cAAxBqC,EAAUU,UACnBP,EAAOzyB,WAAW6F,MAAMotB,WAAa,oDAA4FhD,GAChG,YAAxBqC,EAAUU,YACnBP,EAAOzyB,WAAW6F,MAAMotB,WAAa,qDAA2FhD,KAIhIqC,EAAUY,aAAyC,IAA1BZ,EAAUY,YAAmB,CACxD,IAAIC,EAAW,eAAoBV,EAAO5sB,MAAMstB,UAChDV,EAAO5sB,MAAMstB,SAAWA,EAAWb,EAAUY,YAAc,KAC3DT,EAAO5sB,MAAMzD,OAAS,OACtBqwB,EAAO5sB,MAAMpD,IAAM,MACrB,CAEI6vB,EAAUc,YAAuC,YAAzBd,EAAUc,aACP,eAAzBd,EAAUc,WACZX,EAAOzyB,WAAW6F,MAAMwtB,YAAc,aAEtCZ,EAAOzyB,WAAW6F,MAAMutB,WAAalD,GAAQoC,EAAUc,YAnD3D,CAsDF,CACF,EASA/uC,EAAO4tC,eAAiB,SAAwBrW,GAK9C,GAJKx2B,MAAMyC,QAAQ+zB,KACjBA,EAAS,CAACA,IAGmB,mBAApB,aAAkCA,EAAO1tB,OAAM,SAAUwpB,GAClE,OAAQA,EAAMkK,UAChB,IAFA,CAQA,IAFA,IAAIjK,EAAO,GAEFj1B,EAAI,EAAGA,EAAIk5B,EAAOn5B,SAAUC,EAGnC,IAFA,IAAIg1B,EAAQkE,EAAOl5B,GAEVurC,EAAI,EAAGA,EAAIvW,EAAMkK,WAAWn/B,SAAUwrC,EAC7CtW,EAAKjzB,KAAKgzB,EAAMkK,WAAWqM,IAK/B,WAAgB6D,YAAY,IAAUna,EAAMxzB,KAAK+oB,KAEjD,IAAK,IAAIomB,EAAM,EAAGA,EAAM1X,EAAOn5B,SAAU6wC,EAAK,CAG5C,IAFA,IAAIC,EAAU3X,EAAO0X,GAEZE,EAAK,EAAGA,EAAKD,EAAQ3R,WAAWn/B,SAAU+wC,EAAI,CACrD,IAAIC,EAAQF,EAAQ3R,WAAW4R,GAAId,aACnCjyB,GAASgzB,EAAO,sBAChBhzB,GAASgzB,EAAO,uBAAyBF,EAAQrjB,SAAWqjB,EAAQrjB,SAAWojB,IAE3EC,EAAQrjB,UACV1Q,GAAai0B,EAAO,OAAQF,EAAQrjB,SAExC,CAEI/rB,KAAKuqB,QAAQ6jB,mBACfpuC,KAAKkuC,mBAAmBkB,EAE5B,CA/BA,CAgCF,EAEOtC,CACT,CA/VoC,CA+VlC3iB,IAEFA,GAAYmH,kBAAkB,mBAAoBwb,IAQlD,IAAIyC,GAA8B,SAAU/a,GAG1C,SAAS+a,IACP,OAAO/a,EAAWpzB,MAAMpB,KAAMc,YAAcd,IAC9C,CA2BA,OA/BA,aAAeuvC,EAAgB/a,GAMlB+a,EAAepvC,UAQrB0a,SAAW,WAChB,IAAI20B,EAAUxvC,KAAKuqB,QAAQilB,UACvBC,EAAazvC,KAAK4rB,SAAS4jB,EAAU,eAAiB,gBACtDnZ,EAAcxb,GAAS,OAAQ,CACjCwB,UAAW,mBACXf,YAAatb,KAAK4rB,SAAS,kBAAmB,CAAC6jB,MAG7C13B,EAAKyc,EAAWr0B,UAAU0a,SAAS9Z,KAAKf,KAAM,MAAO,CACvDqc,UAAW,sBACXqzB,IAAK,QAIP,OADA33B,EAAGgE,YAAYsa,GACRte,CACT,EAEOw3B,CACT,CAjCkC,CAiChCplB,IAEFA,GAAYmH,kBAAkB,iBAAkBie,IAQhD,IAAII,GAAsB,SAAUvE,GAGlC,SAASuE,IACP,OAAOvE,EAAoBhqC,MAAMpB,KAAMc,YAAcd,IACvD,EAJA,aAAe2vC,EAAQvE,GAMvB,IAAIlrC,EAASyvC,EAAOxvC,UA2HpB,OAzGAD,EAAO2a,SAAW,SAAoB1M,EAAKqtB,EAAOxgB,QAClC,IAAVwgB,IACFA,EAAQ,CAAC,QAGQ,IAAfxgB,IACFA,EAAa,CAAC,GAahB,IAAIjD,EAAK8C,GAVH,SACN2gB,EAAQ,GAAO,CACbnf,UAAWrc,KAAKguB,iBACfwN,GAEHxgB,EAAa,GAAO,CAElB3a,KAAM,UACL2a,IAUH,OANAjD,EAAGgE,YAAYlB,GAAS,OAAQ,CAC9BwB,UAAW,wBACV,CACD,eAAe,KAEjBrc,KAAK2qC,oBAAoB5yB,GAClBA,CACT,EAmBA7X,EAAO4sB,SAAW,SAAkBnR,EAAO9X,QACzB,IAAZA,IACFA,EAAU,CAAC,GAGb,IAAIwY,EAAYrc,KAAK6X,YAAYxO,KAGjC,OAFA+L,GAAMkB,KAAK,+DAAiE+F,EAAY,yDAEjF8N,GAAYhqB,UAAU2sB,SAAS/rB,KAAKf,KAAM2b,EAAO9X,EAC1D,EAOA3D,EAAO4W,OAAS,WACds0B,EAAoBjrC,UAAU2W,OAAO/V,KAAKf,MAE1CA,KAAK+oB,IAAI5L,gBAAgB,WAC3B,EAOAjd,EAAO2W,QAAU,WACfu0B,EAAoBjrC,UAAU0W,QAAQ9V,KAAKf,MAE3CA,KAAK+oB,IAAI1N,aAAa,WAAY,WACpC,EAYAnb,EAAOqvB,cAAgB,SAAuB1Q,GAMxC,eAAmBA,EAAO,UAAY,eAAmBA,EAAO,SAClEA,EAAMmF,kBAKRonB,EAAoBjrC,UAAUovB,cAAcxuB,KAAKf,KAAM6e,EACzD,EAEO8wB,CACT,CAnI0B,CAmIxBxF,IAEFhgB,GAAYmH,kBAAkB,SAAUqe,IASxC,IAAIC,GAA6B,SAAUC,GAGzC,SAASD,EAAcxuB,EAAQvd,GAC7B,IAAIijB,EASJ,OAPAA,EAAQ+oB,EAAQ9uC,KAAKf,KAAMohB,EAAQvd,IAAY7D,MACzC8vC,YAAa,EAEnBhpB,EAAM1mB,GAAG,aAAa,SAAU2C,GAC9B,OAAO+jB,EAAMipB,gBAAgBhtC,EAC/B,IAEO+jB,CACT,EAbA,aAAe8oB,EAAeC,GAsB9B,IAAI3vC,EAAS0vC,EAAczvC,UAgE3B,OA9DAD,EAAO8tB,cAAgB,WACrB,MAAO,qBACT,EAcA9tB,EAAOuqC,YAAc,SAAqB5rB,GACxC,IAAImxB,EAAchwC,KAAKuqB,QAAQD,OAE/B,GAAItqB,KAAK8vC,YAAcjxB,EAAMsF,SAAWtF,EAAM0F,QAAS,CACrD,IAAImnB,EAAoB1rC,KAAKuqB,QAAQohB,YAAY,QAAU3rC,KAAKuqB,QAAQqhB,IAAIC,UAAY7rC,KAAKuqB,QAAQqhB,IAAIC,SAASvtC,OAAS,EAU3H,OATA+0B,GAAe2c,SAEXhwC,KAAKuqB,QAAQsJ,MAAK,KAGnBza,IAAcH,KAAYyyB,GAC3B1rC,KAAKuqB,QAAQsJ,MAAK,GAAMlW,QAI5B,CAEA,IAAIwmB,EAAKnkC,KAAKuqB,QAAQkC,SAAS,cAC3BwjB,EAAa9L,GAAMA,EAAG1X,SAAS,cAEnC,GAAKwjB,EAAL,CAKA,IAAIC,EAAY,WACd,OAAOD,EAAWtyB,OACpB,EAEIwV,GAAU6c,GACZA,EAAY5c,KAAK8c,GAAW,WAAa,IAEzClwC,KAAKqG,WAAW6pC,EAAW,EAT7B,MAFElwC,KAAKuqB,QAAQsJ,MAAK,GAAMlW,OAa5B,EAEAzd,EAAOqvB,cAAgB,SAAuB1Q,GAC5C7e,KAAK8vC,YAAa,EAElBD,EAAQ1vC,UAAUovB,cAAcxuB,KAAKf,KAAM6e,EAC7C,EAEA3e,EAAO6vC,gBAAkB,SAAyBlxB,GAChD7e,KAAK8vC,YAAa,CACpB,EAEOF,CACT,CAxFiC,CAwF/BD,IASFC,GAAczvC,UAAU0qC,aAAe,aACvC1gB,GAAYmH,kBAAkB,gBAAiBse,IAS/C,IAAIO,GAA2B,SAAUN,GAYvC,SAASM,EAAY/uB,EAAQvd,GAC3B,IAAIijB,EAMJ,OAJAA,EAAQ+oB,EAAQ9uC,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAEzCq2B,YAAYxyB,GAAWA,EAAQwyB,aAAevP,EAAM8E,SAAS,UAE5D9E,CACT,EAnBA,aAAeqpB,EAAaN,GA4B5B,IAAI3vC,EAASiwC,EAAYhwC,UA6DzB,OA3DAD,EAAO8tB,cAAgB,WACrB,MAAO,oBAAsB6hB,EAAQ1vC,UAAU6tB,cAAcjtB,KAAKf,KACpE,EAgBAE,EAAOuqC,YAAc,SAAqB5rB,GAWxC7e,KAAKY,QAAQ,CACXP,KAAM,QACNulB,SAAS,GAEb,EAcA1lB,EAAOqvB,cAAgB,SAAuB1Q,GAExC,eAAmBA,EAAO,QAC5BA,EAAM4E,iBACN5E,EAAMmF,kBACNhkB,KAAKY,QAAQ,UAGbivC,EAAQ1vC,UAAUovB,cAAcxuB,KAAKf,KAAM6e,EAE/C,EAEOsxB,CACT,CA3F+B,CA2F7BR,IAEFxlB,GAAYmH,kBAAkB,cAAe6e,IAQ7C,IAAIC,GAA0B,SAAUP,GAYtC,SAASO,EAAWhvB,EAAQvd,GAC1B,IAAIijB,EAwBJ,YAtBgB,IAAZjjB,IACFA,EAAU,CAAC,GAGbijB,EAAQ+oB,EAAQ9uC,KAAKf,KAAMohB,EAAQvd,IAAY7D,KAE/C6D,EAAQwsC,YAA4BjsC,IAAnBP,EAAQwsC,QAAwBxsC,EAAQwsC,OAEzDvpB,EAAM1mB,GAAGghB,EAAQ,QAAQ,SAAUre,GACjC,OAAO+jB,EAAMwpB,WAAWvtC,EAC1B,IAEA+jB,EAAM1mB,GAAGghB,EAAQ,SAAS,SAAUre,GAClC,OAAO+jB,EAAMypB,YAAYxtC,EAC3B,IAEIc,EAAQwsC,QACVvpB,EAAM1mB,GAAGghB,EAAQ,SAAS,SAAUre,GAClC,OAAO+jB,EAAM0pB,YAAYztC,EAC3B,IAGK+jB,CACT,EArCA,aAAespB,EAAYP,GA8C3B,IAAI3vC,EAASkwC,EAAWjwC,UAqGxB,OAnGAD,EAAO8tB,cAAgB,WACrB,MAAO,oBAAsB6hB,EAAQ1vC,UAAU6tB,cAAcjtB,KAAKf,KACpE,EAcAE,EAAOuqC,YAAc,SAAqB5rB,GACpC7e,KAAKuqB,QAAQmL,SACfrC,GAAerzB,KAAKuqB,QAAQD,QAE5BtqB,KAAKuqB,QAAQqL,OAEjB,EAYA11B,EAAOuwC,aAAe,SAAsB5xB,GAC1C7e,KAAKyc,YAAY,aAEbzc,KAAKuqB,QAAQmL,SACf11B,KAAKuwC,YAAY1xB,GAEjB7e,KAAKswC,WAAWzxB,EAEpB,EAWA3e,EAAOowC,WAAa,SAAoBzxB,GACtC7e,KAAKyc,YAAY,aACjBzc,KAAKyc,YAAY,cACjBzc,KAAKsc,SAAS,eAEdtc,KAAKq2B,YAAY,QACnB,EAWAn2B,EAAOqwC,YAAc,SAAqB1xB,GACxC7e,KAAKyc,YAAY,eACjBzc,KAAKsc,SAAS,cAEdtc,KAAKq2B,YAAY,OACnB,EAWAn2B,EAAOswC,YAAc,SAAqB3xB,GACxC,IAAIqJ,EAASloB,KAEbA,KAAKyc,YAAY,eACjBzc,KAAKsc,SAAS,aAEdtc,KAAKq2B,YAAY,UAEjBr2B,KAAK8lB,IAAI9lB,KAAKuqB,QAAS,UAAU,SAAUxnB,GACzC,OAAOmlB,EAAOuoB,aAAa1tC,EAC7B,GACF,EAEOqtC,CACT,CArJ8B,CAqJ5BT,IASFS,GAAWjwC,UAAU0qC,aAAe,OACpC1gB,GAAYmH,kBAAkB,aAAc8e,IAsB5C,IAAIM,GAAwB,SAA+BC,EAASC,GAClED,EAAUA,EAAU,EAAI,EAAIA,EAC5B,IAAI9yC,EAAIiO,KAAKmW,MAAM0uB,EAAU,IACzBvrB,EAAItZ,KAAKmW,MAAM0uB,EAAU,GAAK,IAC9BE,EAAI/kC,KAAKmW,MAAM0uB,EAAU,MACzBG,EAAKhlC,KAAKmW,MAAM2uB,EAAQ,GAAK,IAC7BG,EAAKjlC,KAAKmW,MAAM2uB,EAAQ,MAe5B,OAbI3hB,MAAM0hB,IAAYA,IAAYh+B,OAGhCk+B,EAAIzrB,EAAIvnB,EAAI,MAIdgzC,EAAIA,EAAI,GAAKE,EAAK,EAAIF,EAAI,IAAM,KAGhCzrB,IAAMyrB,GAAKC,GAAM,KAAO1rB,EAAI,GAAK,IAAMA,EAAIA,GAAK,MAEhDvnB,EAAIA,EAAI,GAAK,IAAMA,EAAIA,EAEzB,EAGImzC,GAAiBN,GAwCrB,SAASO,GAAWN,EAASC,GAK3B,YAJc,IAAVA,IACFA,EAAQD,GAGHK,GAAeL,EAASC,EACjC,CAQA,IAAIM,GAA2B,SAAU1c,GAYvC,SAAS0c,EAAY9vB,EAAQvd,GAC3B,IAAIijB,EAUJ,OARAA,EAAQ0N,EAAWzzB,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAE5CI,GAAGghB,EAAQ,CAAC,aAAc,UAAU,SAAUre,GAClD,OAAO+jB,EAAMqqB,cAAcpuC,EAC7B,IAEA+jB,EAAMsqB,kBAECtqB,CACT,EAvBA,aAAeoqB,EAAa1c,GAgC5B,IAAIt0B,EAASgxC,EAAY/wC,UAkGzB,OAhGAD,EAAO2a,SAAW,WAChB,IAAIwB,EAAYrc,KAAKguB,gBAEjBjW,EAAKyc,EAAWr0B,UAAU0a,SAAS9Z,KAAKf,KAAM,MAAO,CACvDqc,UAAWA,EAAY,kCAGrBg1B,EAAOx2B,GAAS,OAAQ,CAC1BwB,UAAW,mBACXf,YAAatb,KAAK4rB,SAAS5rB,KAAKsxC,YAAc,KAC7C,CACDrc,KAAM,iBAeR,OAbAld,EAAGgE,YAAYs1B,GACfrxC,KAAKssB,WAAazR,GAAS,OAAQ,CACjCwB,UAAWA,EAAY,YACtB,CAED,YAAa,MAKb,KAAQ,iBAEVtE,EAAGgE,YAAY/b,KAAKssB,YACbvU,CACT,EAEA7X,EAAOmB,QAAU,WACfrB,KAAKssB,WAAa,KAClBtsB,KAAKuxC,UAAY,KAEjB/c,EAAWr0B,UAAUkB,QAAQN,KAAKf,KACpC,EAUAE,EAAOkxC,gBAAkB,SAAyBI,GAChD,IAAItpB,EAASloB,UAEA,IAATwxC,IACFA,EAAO,GAGTA,EAAOP,GAAWO,GAEdxxC,KAAKyxC,iBAAmBD,IAI5BxxC,KAAKyxC,eAAiBD,EACtBxxC,KAAK+wB,2BAA2B,+BAA+B,WAC7D,GAAK7I,EAAOoE,WAAZ,CAIA,IAAIolB,EAAUxpB,EAAOqpB,UAEjBG,GAAWxpB,EAAOoE,WAAWzQ,aAAe61B,IAC9CA,EAAU,KACVt8B,GAAMkB,KAAK,uJAGb4R,EAAOqpB,UAAY,mBAAwBrpB,EAAOupB,gBAE7CvpB,EAAOqpB,YAIRG,EACFxpB,EAAOoE,WAAWZ,aAAaxD,EAAOqpB,UAAWG,GAEjDxpB,EAAOoE,WAAWvQ,YAAYmM,EAAOqpB,WAlBvC,CAoBF,IACF,EAYArxC,EAAOixC,cAAgB,SAAuBtyB,GAAQ,EAE/CqyB,CACT,CApI+B,CAoI7B/mB,IASF+mB,GAAY/wC,UAAUmxC,WAAa,OAUnCJ,GAAY/wC,UAAU0qC,aAAe,OACrC1gB,GAAYmH,kBAAkB,cAAe4f,IAQ7C,IAAIS,GAAkC,SAAUC,GAG9C,SAASD,IACP,OAAOC,EAAaxwC,MAAMpB,KAAMc,YAAcd,IAChD,EAJA,aAAe2xC,EAAoBC,GAMnC,IAAI1xC,EAASyxC,EAAmBxxC,UAkChC,OA1BAD,EAAO8tB,cAAgB,WACrB,MAAO,kBACT,EAWA9tB,EAAOixC,cAAgB,SAAuBtyB,GAE5C,IAAI2yB,EAGFA,EADExxC,KAAKuqB,QAAQkd,QACRznC,KAAKuqB,QAAQqI,WAEb5yB,KAAKuqB,QAAQmY,YAAc1iC,KAAKuqB,QAAQsnB,WAAW1T,YAAcn+B,KAAKuqB,QAAQ4T,cAGvFn+B,KAAKoxC,gBAAgBI,EACvB,EAEOG,CACT,CA1CsC,CA0CpCT,IASFS,GAAmBxxC,UAAUmxC,WAAa,eAU1CK,GAAmBxxC,UAAU0qC,aAAe,eAC5C1gB,GAAYmH,kBAAkB,qBAAsBqgB,IAQpD,IAAIG,GAA+B,SAAUF,GAY3C,SAASE,EAAgB1wB,EAAQvd,GAC/B,IAAIijB,EAIAqqB,EAAgB,SAAuBpuC,GACzC,OAAO+jB,EAAMqqB,cAAcpuC,EAC7B,EAiBA,OArBA+jB,EAAQ8qB,EAAa7wC,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAS9CI,GAAGghB,EAAQ,iBAAkB+vB,GAKnCrqB,EAAM1mB,GAAGghB,EAAQ,YAAa+vB,GAK9BrqB,EAAM1mB,GAAGghB,EAAQ,iBAAkB+vB,GAE5BrqB,CACT,EApCA,aAAegrB,EAAiBF,GA6ChC,IAAI1xC,EAAS4xC,EAAgB3xC,UAuB7B,OArBAD,EAAO8tB,cAAgB,WACrB,MAAO,cACT,EAcA9tB,EAAOixC,cAAgB,SAAuBtyB,GAC5C,IAAI+T,EAAW5yB,KAAKuqB,QAAQqI,WAC5B5yB,KAAKoxC,gBAAgBxe,EACvB,EAEOkf,CACT,CAtEmC,CAsEjCZ,IASFY,GAAgB3xC,UAAUmxC,WAAa,WAUvCQ,GAAgB3xC,UAAU0qC,aAAe,WACzC1gB,GAAYmH,kBAAkB,kBAAmBwgB,IASjD,IAAIC,GAA2B,SAAUvd,GAGvC,SAASud,IACP,OAAOvd,EAAWpzB,MAAMpB,KAAMc,YAAcd,IAC9C,CA+BA,OAnCA,aAAe+xC,EAAavd,GAMfud,EAAY5xC,UAQlB0a,SAAW,WAChB,IAAI9C,EAAKyc,EAAWr0B,UAAU0a,SAAS9Z,KAAKf,KAAM,MAAO,CACvDqc,UAAW,qCACV,CAID,eAAe,IAGb21B,EAAMxd,EAAWr0B,UAAU0a,SAAS9Z,KAAKf,KAAM,OAE/CqxC,EAAO7c,EAAWr0B,UAAU0a,SAAS9Z,KAAKf,KAAM,OAAQ,CAC1Dsb,YAAa,MAKf,OAFA02B,EAAIj2B,YAAYs1B,GAChBt5B,EAAGgE,YAAYi2B,GACRj6B,CACT,EAEOg6B,CACT,CArC+B,CAqC7B5nB,IAEFA,GAAYmH,kBAAkB,cAAeygB,IAQ7C,IAAIE,GAAoC,SAAUL,GAYhD,SAASK,EAAqB7wB,EAAQvd,GACpC,IAAIijB,EAQJ,OANAA,EAAQ8qB,EAAa7wC,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAE9CI,GAAGghB,EAAQ,kBAAkB,SAAUre,GAC3C,OAAO+jB,EAAMqqB,cAAcpuC,EAC7B,IAEO+jB,CACT,EArBA,aAAemrB,EAAsBL,GA8BrC,IAAI1xC,EAAS+xC,EAAqB9xC,UAsDlC,OApDAD,EAAO8tB,cAAgB,WACrB,MAAO,oBACT,EASA9tB,EAAO2a,SAAW,WAChB,IAAI9C,EAAK65B,EAAazxC,UAAU0a,SAAS9Z,KAAKf,MAQ9C,OANsC,IAAlCA,KAAK0qB,SAASwnB,iBAChBn6B,EAAG+D,aAAajB,GAAS,OAAQ,CAAC,EAAG,CACnC,eAAe,GACd,KAAM7a,KAAKssB,YAGTvU,CACT,EAYA7X,EAAOixC,cAAgB,SAAuBtyB,GAK5C,IAAI2yB,EAJmC,iBAA5BxxC,KAAKuqB,QAAQqI,aAQtB4e,EADExxC,KAAKuqB,QAAQkd,QACR,EACEznC,KAAKuqB,QAAQ4nB,qBACfnyC,KAAKuqB,QAAQ4nB,uBAEbnyC,KAAKuqB,QAAQ6nB,gBAGtBpyC,KAAKoxC,gBAAgBI,GACvB,EAEOS,CACT,CAtFwC,CAsFtCf,IASFe,GAAqB9xC,UAAUmxC,WAAa,iBAU5CW,GAAqB9xC,UAAU0qC,aAAe,iBAC9C1gB,GAAYmH,kBAAkB,uBAAwB2gB,IAQtD,IAAII,GAA2B,SAAU7d,GAYvC,SAAS6d,EAAYjxB,EAAQvd,GAC3B,IAAIijB,EAUJ,OARAA,EAAQ0N,EAAWzzB,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAE5CsyC,gBAENxrB,EAAM1mB,GAAG0mB,EAAM1F,SAAU,kBAAkB,SAAUre,GACnD,OAAO+jB,EAAMwrB,cAAcvvC,EAC7B,IAEO+jB,CACT,EAvBA,aAAeurB,EAAa7d,GAgC5B,IAAIt0B,EAASmyC,EAAYlyC,UA6CzB,OA3CAD,EAAO2a,SAAW,WAChB,IAAI9C,EAAKyc,EAAWr0B,UAAU0a,SAAS9Z,KAAKf,KAAM,MAAO,CACvDqc,UAAW,iCAcb,OAXArc,KAAKssB,WAAazR,GAAS,MAAO,CAChCwB,UAAW,oBACV,CACD,YAAa,QAEfrc,KAAKssB,WAAWvQ,YAAYlB,GAAS,OAAQ,CAC3CwB,UAAW,mBACXf,YAAatb,KAAK4rB,SAAS,eAAiB,OAE9C5rB,KAAKssB,WAAWvQ,YAAY,mBAAwB/b,KAAK4rB,SAAS,UAClE7T,EAAGgE,YAAY/b,KAAKssB,YACbvU,CACT,EAEA7X,EAAOmB,QAAU,WACfrB,KAAKssB,WAAa,KAElBkI,EAAWr0B,UAAUkB,QAAQN,KAAKf,KACpC,EAYAE,EAAOoyC,cAAgB,SAAuBzzB,GACxC7e,KAAKohB,SAASwR,aAAejgB,IAC/B3S,KAAKouB,OAELpuB,KAAKquB,MAET,EAEOgkB,CACT,CA/E+B,CA+E7BloB,IAEFA,GAAYmH,kBAAkB,cAAe+gB,IAQ7C,IAAIE,GAA0B,SAAU1C,GAYtC,SAAS0C,EAAWnxB,EAAQvd,GAC1B,IAAIijB,EAcJ,OAZAA,EAAQ+oB,EAAQ9uC,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAEzCwyC,uBAEF1rB,EAAMyD,QAAQkoB,cAChB3rB,EAAM4rB,6BAA+B,SAAU3vC,GAC7C,OAAO+jB,EAAM0rB,qBAAqBzvC,EACpC,EAEA+jB,EAAM1mB,GAAG0mB,EAAMyD,QAAQkoB,YAAa,iBAAkB3rB,EAAM4rB,+BAGvD5rB,CACT,EA3BA,aAAeyrB,EAAY1C,GAoC3B,IAAI3vC,EAASqyC,EAAWpyC,UA2DxB,OAzDAD,EAAO2a,SAAW,WAChB,IAAI9C,EAAK83B,EAAQ1vC,UAAU0a,SAAS9Z,KAAKf,KAAM,SAAU,CACvDqc,UAAW,yCAUb,OAPArc,KAAK2yC,QAAU93B,GAAS,OAAQ,CAC9BwB,UAAW,wBACXf,YAAatb,KAAK4rB,SAAS,SAC1B,CACD,cAAe,SAEjB7T,EAAGgE,YAAY/b,KAAK2yC,SACb56B,CACT,EAOA7X,EAAOsyC,qBAAuB,YAEvBxyC,KAAKuqB,QAAQkoB,aAAezyC,KAAKuqB,QAAQkoB,YAAYG,cACxD5yC,KAAKqb,aAAa,iBAAiB,GACnCrb,KAAKsc,SAAS,oBACdtc,KAAKq2B,YAAY,0CAEjBr2B,KAAKqb,aAAa,iBAAiB,GACnCrb,KAAKyc,YAAY,oBACjBzc,KAAKq2B,YAAY,uCAErB,EAQAn2B,EAAOuqC,YAAc,WACnBzqC,KAAKuqB,QAAQkoB,YAAYI,gBAC3B,EAMA3yC,EAAOmB,QAAU,WACXrB,KAAKuqB,QAAQkoB,aACfzyC,KAAKQ,IAAIR,KAAKuqB,QAAQkoB,YAAa,iBAAkBzyC,KAAK0yC,8BAG5D1yC,KAAK2yC,QAAU,KAEf9C,EAAQ1vC,UAAUkB,QAAQN,KAAKf,KACjC,EAEOuyC,CACT,CAjG8B,CAiG5B5C,IAEF4C,GAAWpyC,UAAU0qC,aAAe,uCACpC1gB,GAAYmH,kBAAkB,aAAcihB,IAgB5C,IAAIO,GAAQ,SAAepnC,EAAQoU,EAAK9T,GAEtC,OADAN,EAAS1C,OAAO0C,GACTI,KAAKgU,IAAI9T,EAAKF,KAAKE,IAAI8T,EAAKmP,MAAMvjB,GAAUoU,EAAMpU,GAC3D,EASIqnC,GAAsB,SAAUve,GAYlC,SAASue,EAAO3xB,EAAQvd,GACtB,IAAIijB,EAmCJ,OAjCAA,EAAQ0N,EAAWzzB,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAE5CgzC,iBAAmB,SAAUjwC,GACjC,OAAO+jB,EAAMipB,gBAAgBhtC,EAC/B,EAEA+jB,EAAMmsB,eAAiB,SAAUlwC,GAC/B,OAAO+jB,EAAMosB,cAAcnwC,EAC7B,EAEA+jB,EAAM2N,eAAiB,SAAU1xB,GAC/B,OAAO+jB,EAAMyI,cAAcxsB,EAC7B,EAEA+jB,EAAM0jB,aAAe,SAAUznC,GAC7B,OAAO+jB,EAAM2jB,YAAY1nC,EAC3B,EAEA+jB,EAAMqsB,iBAAmB,SAAUpwC,GACjC,OAAO+jB,EAAMssB,gBAAgBrwC,EAC/B,EAEA+jB,EAAMwkB,QAAU,SAAUvoC,GACxB,OAAO+jB,EAAMukB,OAAOtoC,EACtB,EAGA+jB,EAAMusB,IAAMvsB,EAAM2F,SAAS3F,EAAM4D,SAAS4oB,SAE1CxsB,EAAMysB,WAAWzsB,EAAM4D,SAAS6oB,UAEhCzsB,EAAMhQ,SAECgQ,CACT,EAhDA,aAAeisB,EAAQve,GAyDvB,IAAIt0B,EAAS6yC,EAAO5yC,UAuUpB,OArUAD,EAAOq4B,QAAU,WACf,OAAOv4B,KAAKirC,QACd,EAMA/qC,EAAO4W,OAAS,WACV9W,KAAKu4B,YAITv4B,KAAKI,GAAG,YAAaJ,KAAKgzC,kBAC1BhzC,KAAKI,GAAG,aAAcJ,KAAKgzC,kBAC3BhzC,KAAKI,GAAG,UAAWJ,KAAKy0B,gBACxBz0B,KAAKI,GAAG,QAASJ,KAAKwqC,cAEtBxqC,KAAKI,GAAGJ,KAAKuqB,QAAS,kBAAmBvqB,KAAKqrC,QAE1CrrC,KAAKwzC,aACPxzC,KAAKI,GAAGJ,KAAKuqB,QAASvqB,KAAKwzC,YAAaxzC,KAAKqrC,QAG/CrrC,KAAKyc,YAAY,YACjBzc,KAAKqb,aAAa,WAAY,GAC9Brb,KAAKirC,UAAW,EAClB,EAMA/qC,EAAO2W,QAAU,WACf,GAAK7W,KAAKu4B,UAAV,CAIA,IAAInU,EAAMpkB,KAAKqzC,IAAItqB,IAAIpD,cACvB3lB,KAAKQ,IAAI,YAAaR,KAAKgzC,kBAC3BhzC,KAAKQ,IAAI,aAAcR,KAAKgzC,kBAC5BhzC,KAAKQ,IAAI,UAAWR,KAAKy0B,gBACzBz0B,KAAKQ,IAAI,QAASR,KAAKwqC,cACvBxqC,KAAKQ,IAAIR,KAAKuqB,QAAS,kBAAmBvqB,KAAKsrC,SAC/CtrC,KAAKQ,IAAI4jB,EAAK,YAAapkB,KAAKmzC,kBAChCnzC,KAAKQ,IAAI4jB,EAAK,UAAWpkB,KAAKizC,gBAC9BjzC,KAAKQ,IAAI4jB,EAAK,YAAapkB,KAAKmzC,kBAChCnzC,KAAKQ,IAAI4jB,EAAK,WAAYpkB,KAAKizC,gBAC/BjzC,KAAKmd,gBAAgB,YACrBnd,KAAKsc,SAAS,YAEVtc,KAAKwzC,aACPxzC,KAAKQ,IAAIR,KAAKuqB,QAASvqB,KAAKwzC,YAAaxzC,KAAKqrC,QAGhDrrC,KAAKirC,UAAW,CAnBhB,CAoBF,EAkBA/qC,EAAO2a,SAAW,SAAkBxa,EAAMm7B,EAAOxgB,GAqB/C,YApBc,IAAVwgB,IACFA,EAAQ,CAAC,QAGQ,IAAfxgB,IACFA,EAAa,CAAC,GAIhBwgB,EAAMnf,UAAYmf,EAAMnf,UAAY,cACpCmf,EAAQ,GAAO,CACbpG,SAAU,GACToG,GACHxgB,EAAa,GAAO,CAClB,KAAQ,SACR,gBAAiB,EACjB,gBAAiB,EACjB,gBAAiB,IACjB,SAAY,GACXA,GACIwZ,EAAWr0B,UAAU0a,SAAS9Z,KAAKf,KAAMK,EAAMm7B,EAAOxgB,EAC/D,EAaA9a,EAAO6vC,gBAAkB,SAAyBlxB,GAChD,IAAIuF,EAAMpkB,KAAKqzC,IAAItqB,IAAIpD,cAEJ,cAAf9G,EAAMxe,MACRwe,EAAM4E,iBAOW,eAAf5E,EAAMxe,MAA0B6Y,IAClC2F,EAAM4E,iBAGR/F,KACA1d,KAAKsc,SAAS,eAQdtc,KAAKY,QAAQ,gBACbZ,KAAKI,GAAGgkB,EAAK,YAAapkB,KAAKmzC,kBAC/BnzC,KAAKI,GAAGgkB,EAAK,UAAWpkB,KAAKizC,gBAC7BjzC,KAAKI,GAAGgkB,EAAK,YAAapkB,KAAKmzC,kBAC/BnzC,KAAKI,GAAGgkB,EAAK,WAAYpkB,KAAKizC,gBAC9BjzC,KAAKozC,gBAAgBv0B,GAAO,EAC9B,EAiBA3e,EAAOkzC,gBAAkB,SAAyBv0B,GAAQ,EAa1D3e,EAAOgzC,cAAgB,WACrB,IAAI9uB,EAAMpkB,KAAKqzC,IAAItqB,IAAIpD,cACvB/H,KACA5d,KAAKyc,YAAY,eAQjBzc,KAAKY,QAAQ,kBACbZ,KAAKQ,IAAI4jB,EAAK,YAAapkB,KAAKmzC,kBAChCnzC,KAAKQ,IAAI4jB,EAAK,UAAWpkB,KAAKizC,gBAC9BjzC,KAAKQ,IAAI4jB,EAAK,YAAapkB,KAAKmzC,kBAChCnzC,KAAKQ,IAAI4jB,EAAK,WAAYpkB,KAAKizC,gBAC/BjzC,KAAKqrC,QACP,EAUAnrC,EAAOmrC,OAAS,WACd,IAAInjB,EAASloB,KAMb,GAAKA,KAAK+oB,KAAQ/oB,KAAKqzC,IAAvB,CAMA,IAAII,EAAWzzC,KAAK0zC,cAEpB,OAAID,IAAazzC,KAAK2zC,YAItB3zC,KAAK2zC,UAAYF,EACjBzzC,KAAK+wB,2BAA2B,iBAAiB,WAE/C,IAAI6iB,EAAU1rB,EAAOqrB,WAAa,SAAW,QAE7CrrB,EAAOmrB,IAAIt7B,KAAK2J,MAAMkyB,IAAuB,IAAXH,GAAgBI,QAAQ,GAAK,GACjE,KATSJ,CAPT,CAkBF,EAUAvzC,EAAOwzC,YAAc,WACnB,OAAO1qC,OAAO8pC,GAAM9yC,KAAK8zC,aAAc,EAAG,GAAGD,QAAQ,GACvD,EAcA3zC,EAAO6zC,kBAAoB,SAA2Bl1B,GACpD,IAAIO,EAAWR,GAAmB5e,KAAK+oB,IAAKlK,GAE5C,OAAI7e,KAAKuzC,WACAn0B,EAASL,EAGXK,EAAShT,CAClB,EAaAlM,EAAOqvB,cAAgB,SAAuB1Q,GAExC,eAAmBA,EAAO,SAAW,eAAmBA,EAAO,SACjEA,EAAM4E,iBACN5E,EAAMmF,kBACNhkB,KAAKg0C,YACI,eAAmBn1B,EAAO,UAAY,eAAmBA,EAAO,OACzEA,EAAM4E,iBACN5E,EAAMmF,kBACNhkB,KAAKi0C,eAGLzf,EAAWr0B,UAAUovB,cAAcxuB,KAAKf,KAAM6e,EAElD,EAUA3e,EAAOuqC,YAAc,SAAqB5rB,GACxCA,EAAMmF,kBACNnF,EAAM4E,gBACR,EAcAvjB,EAAOqzC,SAAW,SAAkBW,GAClC,QAAa9vC,IAAT8vC,EACF,OAAOl0C,KAAKm0C,YAAa,EAG3Bn0C,KAAKm0C,YAAcD,EAEfl0C,KAAKm0C,UACPn0C,KAAKsc,SAAS,uBAEdtc,KAAKsc,SAAS,wBAElB,EAEOy2B,CACT,CAlY0B,CAkYxB5oB,IAEFA,GAAYmH,kBAAkB,SAAUyhB,IAExC,IAAIqB,GAAa,SAAoB5C,EAAM9hC,GACzC,OAAOojC,GAAMtB,EAAO9hC,EAAM,IAAK,EAAG,KAAKmkC,QAAQ,GAAK,GACtD,EAQIQ,GAA+B,SAAU7f,GAY3C,SAAS6f,EAAgBjzB,EAAQvd,GAC/B,IAAIijB,EASJ,OAPAA,EAAQ0N,EAAWzzB,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAC5Cs0C,SAAW,GAEjBxtB,EAAM1mB,GAAGghB,EAAQ,YAAY,SAAUre,GACrC,OAAO+jB,EAAMukB,OAAOtoC,EACtB,IAEO+jB,CACT,EAtBA,aAAeutB,EAAiB7f,GA+BhC,IAAIt0B,EAASm0C,EAAgBl0C,UAgG7B,OA9FAD,EAAO2a,SAAW,WAChB,IAAI9C,EAAKyc,EAAWr0B,UAAU0a,SAAS9Z,KAAKf,KAAM,MAAO,CACvDqc,UAAW,sBAGT+L,EAAUvN,GAAS,OAAQ,CAC7BwB,UAAW,qBAETk4B,EAAa15B,GAAS,OAAQ,CAChCS,YAAatb,KAAK4rB,SAAS,YAEzB4oB,EAAY,mBAAwB,MASxC,OARAx0C,KAAKy0C,cAAgB55B,GAAS,OAAQ,CACpCwB,UAAW,qCACXf,YAAa,OAEfvD,EAAGgE,YAAYqM,GACfA,EAAQrM,YAAYw4B,GACpBnsB,EAAQrM,YAAYy4B,GACpBpsB,EAAQrM,YAAY/b,KAAKy0C,eAClB18B,CACT,EAEA7X,EAAOmB,QAAU,WACfrB,KAAKs0C,SAAW,KAChBt0C,KAAKy0C,cAAgB,KAErBjgB,EAAWr0B,UAAUkB,QAAQN,KAAKf,KACpC,EAWAE,EAAOmrC,OAAS,SAAgBxsB,GAC9B,IAAIqJ,EAASloB,KAEbA,KAAK+wB,2BAA2B,0BAA0B,WACxD,IAAI0hB,EAAcvqB,EAAOqC,QAAQkoB,YAE7B9f,EAAWzK,EAAOqC,QAAQoI,WAE1BC,EAAW6f,GAAeA,EAAYiC,SAAWjC,EAAYkC,cAAgBzsB,EAAOqC,QAAQqI,WAE5FgiB,EAAc1sB,EAAOqC,QAAQqqB,cAE7BroB,EAAWrE,EAAOosB,SAClBO,EAAUT,GAAWQ,EAAahiB,GAElC1K,EAAO4sB,WAAaD,IAEtB3sB,EAAOa,IAAIrH,MAAMxD,MAAQ22B,EAEzBv5B,GAAY4M,EAAOusB,cAAeI,GAClC3sB,EAAO4sB,SAAWD,GAIpB,IAAK,IAAIt2C,EAAI,EAAGA,EAAIo0B,EAASr0B,OAAQC,IAAK,CACxC,IAAIi0B,EAAQG,EAASH,MAAMj0B,GACvBmR,EAAMijB,EAASjjB,IAAInR,GACnBw2C,EAAOxoB,EAAShuB,GAEfw2C,IACHA,EAAO7sB,EAAOa,IAAIhN,YAAYlB,MAC9B0R,EAAShuB,GAAKw2C,GAIZA,EAAKC,QAAQxiB,QAAUA,GAASuiB,EAAKC,QAAQtlC,MAAQA,IAIzDqlC,EAAKC,QAAQxiB,MAAQA,EACrBuiB,EAAKC,QAAQtlC,IAAMA,EAEnBqlC,EAAKrzB,MAAMrD,KAAO+1B,GAAW5hB,EAAOoiB,GACpCG,EAAKrzB,MAAMxD,MAAQk2B,GAAW1kC,EAAM8iB,EAAOoiB,GAC7C,CAGA,IAAK,IAAIzzC,EAAKorB,EAASjuB,OAAQ6C,EAAKwxB,EAASr0B,OAAQ6C,IACnD+mB,EAAOa,IAAI9I,YAAYsM,EAASprB,EAAK,IAGvCorB,EAASjuB,OAASq0B,EAASr0B,MAC7B,GACF,EAEO+1C,CACT,CAjImC,CAiIjClqB,IAEFA,GAAYmH,kBAAkB,kBAAmB+iB,IAQjD,IAAIY,GAA2B,SAAUzgB,GAYvC,SAASygB,EAAY7zB,EAAQvd,GAC3B,IAAIijB,EAIJ,OAFAA,EAAQ0N,EAAWzzB,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAC5CqrC,OAAS9kB,GAASH,IAAK,aAAuBU,GAAQA,EAAMukB,QAASllB,IACpEW,CACT,EAjBA,aAAemuB,EAAazgB,GA0B5B,IAAIt0B,EAAS+0C,EAAY90C,UA4HzB,OA1HAD,EAAO2a,SAAW,WAChB,OAAO2Z,EAAWr0B,UAAU0a,SAAS9Z,KAAKf,KAAM,MAAO,CACrDqc,UAAW,oBACV,CACD,cAAe,QAEnB,EAaAnc,EAAOmrC,OAAS,SAAgB6J,EAAaC,EAAcl6B,GACzD,IAAIm6B,EAAcj3B,GAAane,KAAK+oB,KAChCssB,EAAax3B,GAAsB7d,KAAKuqB,QAAQxS,MAChDu9B,EAAiBJ,EAAYh3B,MAAQi3B,EAGzC,GAAKE,GAAeD,EAApB,CAQA,IAAIG,EAAmBL,EAAY72B,KAAOg3B,EAAWh3B,KAAOi3B,EAKxDE,EAAoBN,EAAYh3B,MAAQo3B,GAAkBD,EAAWI,MAAQP,EAAYO,OAGzFC,EAAgBN,EAAYl3B,MAAQ,EAGpCq3B,EAAmBG,EACrBA,GAAiBA,EAAgBH,EACxBC,EAAoBE,IAC7BA,EAAgBF,GAMdE,EAAgB,EAClBA,EAAgB,EACPA,EAAgBN,EAAYl3B,QACrCw3B,EAAgBN,EAAYl3B,OAO9Bw3B,EAAgB5pC,KAAK6pC,MAAMD,GAC3B11C,KAAK+oB,IAAIrH,MAAM+zB,MAAQ,IAAMC,EAAgB,KAC7C11C,KAAK41C,MAAM36B,EAtCX,CAuCF,EASA/a,EAAO01C,MAAQ,SAAe36B,GAC5BK,GAAYtb,KAAK+oB,IAAK9N,EACxB,EAoBA/a,EAAO21C,WAAa,SAAoBX,EAAaC,EAAc3D,EAAMrN,GACvE,IAAIjc,EAASloB,KAEbA,KAAK+wB,2BAA2B,0BAA0B,WACxD,IAAI9V,EAEA2X,EAAW1K,EAAOqC,QAAQqI,WAE9B,GAAI1K,EAAOqC,QAAQkoB,aAAevqB,EAAOqC,QAAQkoB,YAAYiC,SAAU,CACrE,IAAIoB,EAAa5tB,EAAOqC,QAAQkoB,YAAYqD,aAExCC,EAAgBD,EAAaX,EAAeW,EAChD76B,GAAW86B,EAAgB,EAAI,GAAK,KAAO9E,GAAW8E,EAAeD,EACvE,MACE76B,EAAUg2B,GAAWO,EAAM5e,GAG7B1K,EAAOmjB,OAAO6J,EAAaC,EAAcl6B,GAErCkpB,GACFA,GAEJ,GACF,EAEO8Q,CACT,CAxJ+B,CAwJ7B9qB,IAEFA,GAAYmH,kBAAkB,cAAe2jB,IAS7C,IAAIe,GAA+B,SAAUxhB,GAY3C,SAASwhB,EAAgB50B,EAAQvd,GAC/B,IAAIijB,EAIJ,OAFAA,EAAQ0N,EAAWzzB,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAC5CqrC,OAAS9kB,GAASH,IAAK,aAAuBU,GAAQA,EAAMukB,QAASllB,IACpEW,CACT,EAjBA,aAAekvB,EAAiBxhB,GA0BhC,IAAIt0B,EAAS81C,EAAgB71C,UAiC7B,OA/BAD,EAAO2a,SAAW,WAChB,OAAO2Z,EAAWr0B,UAAU0a,SAAS9Z,KAAKf,KAAM,MAAO,CACrDqc,UAAW,oCACV,CACD,cAAe,QAEnB,EAcAnc,EAAOmrC,OAAS,SAAgB6J,EAAaC,GAC3C,IAAIc,EAAcj2C,KAAKysB,SAAS,eAEhC,GAAKwpB,EAAL,CAIA,IAAIzE,EAAOxxC,KAAKuqB,QAAQmY,YAAc1iC,KAAKuqB,QAAQsnB,WAAW1T,YAAcn+B,KAAKuqB,QAAQ4T,cACzF8X,EAAYJ,WAAWX,EAAaC,EAAc3D,EAHlD,CAIF,EAEOwE,CACT,CA7DmC,CA6DjC7rB,IASF6rB,GAAgB71C,UAAUuqB,SAAW,CACnC6B,SAAU,IAGPzS,IAAWnB,IACdq9B,GAAgB71C,UAAUuqB,SAAS6B,SAAShsB,KAAK,eAGnD4pB,GAAYmH,kBAAkB,kBAAmB0kB,IAWjD,IAAIE,GAAgC,SAAU1hB,GAY5C,SAAS0hB,EAAiB90B,EAAQvd,GAChC,IAAIijB,EAIJ,OAFAA,EAAQ0N,EAAWzzB,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAC5CqrC,OAAS9kB,GAASH,IAAK,aAAuBU,GAAQA,EAAMukB,QAASllB,IACpEW,CACT,EAjBA,aAAeovB,EAAkB1hB,GA0BjC,IAAIt0B,EAASg2C,EAAiB/1C,UA6B9B,OA3BAD,EAAO2a,SAAW,WAChB,OAAO2Z,EAAWr0B,UAAU0a,SAAS9Z,KAAKf,KAAM,MAAO,CACrDqc,UAAW,qBAEf,EAcAnc,EAAOmrC,OAAS,SAAgB6J,EAAaC,GAC3C,IAAIjtB,EAASloB,KAETwxC,EAAO2D,EAAen1C,KAAKuqB,QAAQqI,WACvC5yB,KAAKysB,SAAS,eAAeopB,WAAWX,EAAaC,EAAc3D,GAAM,WACvEtpB,EAAOa,IAAIrH,MAAMrD,KAAO62B,EAAYh3B,MAAQi3B,EAAe,IAC7D,GACF,EAEOe,CACT,CAzDoC,CAyDlC/rB,IASF+rB,GAAiB/1C,UAAUuqB,SAAW,CACpC6B,SAAU,CAAC,gBAEbpC,GAAYmH,kBAAkB,mBAAoB4kB,IAElD,IAUIC,GAAuB,SAAUC,GAYnC,SAASD,EAAQ/0B,EAAQvd,GACvB,IAAIijB,EAMJ,OAJAA,EAAQsvB,EAAQr1C,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAEzCq2C,oBAECvvB,CACT,EAnBA,aAAeqvB,EAASC,GA2BxB,IAAIl2C,EAASi2C,EAAQh2C,UA6crB,OA3cAD,EAAOm2C,kBAAoB,WACzB,IAAInuB,EAASloB,KAEbA,KAAKsrC,QAAUllB,GAAKpmB,KAAMA,KAAKqrC,QAC/BrrC,KAAKqrC,OAAS9kB,GAASvmB,KAAKsrC,QAASnlB,IACrCnmB,KAAKI,GAAGJ,KAAKuqB,QAAS,CAAC,QAAS,iBAAkB,cAAevqB,KAAKqrC,QAElErrC,KAAKuqB,QAAQkoB,aACfzyC,KAAKI,GAAGJ,KAAKuqB,QAAQkoB,YAAa,iBAAkBzyC,KAAKqrC,QAK3DrrC,KAAKs2C,eAAiB,KAEtBt2C,KAAKu2C,uBAAyB,SAAUxzC,GACtC,OAAOmlB,EAAOsuB,gBAAgBzzC,EAChC,EAEA/C,KAAKy2C,wBAA0B,SAAU1zC,GACvC,OAAOmlB,EAAOwuB,iBAAiB3zC,EACjC,EAEA/C,KAAKI,GAAGJ,KAAKuqB,QAAS,CAAC,WAAYvqB,KAAKu2C,wBACxCv2C,KAAKI,GAAGJ,KAAKuqB,QAAS,CAAC,QAAS,QAAS,WAAYvqB,KAAKy2C,yBAGtD,gBAAwB,yBAC1Bz2C,KAAKI,GAAG,IAAU,mBAAoBJ,KAAK22C,kBAE/C,EAEAz2C,EAAOy2C,kBAAoB,SAA2B5zC,GACnB,WAA7B,qBACF/C,KAAKixB,0BAA0B,kBAC/BjxB,KAAKixB,0BAA0B,iBAC/BjxB,KAAK02C,iBAAiB3zC,KAEjB/C,KAAKuqB,QAAQkd,SAAYznC,KAAKuqB,QAAQmL,UACzC11B,KAAKw2C,kBAIPx2C,KAAKqrC,SAET,EAEAnrC,EAAOs2C,gBAAkB,WACnBx2C,KAAKs2C,iBAITt2C,KAAKs2C,eAAiBt2C,KAAKswB,YAAYtwB,KAAKqrC,OAAQllB,IACtD,EAEAjmB,EAAOw2C,iBAAmB,SAA0B3zC,GAC9C/C,KAAKuqB,QAAQkoB,aAAezyC,KAAKuqB,QAAQkoB,YAAYiC,UAAY3xC,GAAgB,UAAXA,EAAE1C,MAIvEL,KAAKs2C,iBAIVt2C,KAAKqwB,cAAcrwB,KAAKs2C,gBACxBt2C,KAAKs2C,eAAiB,KACxB,EASAp2C,EAAO2a,SAAW,WAChB,OAAOu7B,EAAQj2C,UAAU0a,SAAS9Z,KAAKf,KAAM,MAAO,CAClDqc,UAAW,uBACV,CACD,aAAcrc,KAAK4rB,SAAS,iBAEhC,EAeA1rB,EAAOmrC,OAAS,SAAgBxsB,GAC9B,IAAIyJ,EAAStoB,KAGb,GAAiC,WAA7B,oBAAJ,CAIA,IAAI60C,EAAUuB,EAAQj2C,UAAUkrC,OAAOtqC,KAAKf,MAgC5C,OA9BAA,KAAK+wB,2BAA2B,kBAAkB,WAChD,IAAIoN,EAAc7V,EAAOiC,QAAQkd,QAAUnf,EAAOiC,QAAQqI,WAAatK,EAAOsuB,kBAC1EnE,EAAcnqB,EAAOiC,QAAQkoB,YAE7B7f,EAAWtK,EAAOiC,QAAQqI,WAE1B6f,GAAeA,EAAYiC,WAC7B9hB,EAAWtK,EAAOiC,QAAQkoB,YAAYoE,mBAGpCvuB,EAAOwsB,WAAaD,IAEtBvsB,EAAOS,IAAI1N,aAAa,iBAA4B,IAAVw5B,GAAehB,QAAQ,IAEjEvrB,EAAOwsB,SAAWD,GAGhBvsB,EAAOwuB,eAAiB3Y,GAAe7V,EAAOuZ,YAAcjP,IAE9DtK,EAAOS,IAAI1N,aAAa,iBAAkBiN,EAAOsD,SAAS,oDAAqD,CAACqlB,GAAW9S,EAAavL,GAAWqe,GAAWre,EAAUA,IAAY,eAEpLtK,EAAOwuB,aAAe3Y,EACtB7V,EAAOuZ,UAAYjP,GAIjBtK,EAAO+qB,KACT/qB,EAAO+qB,IAAIhI,OAAOxtB,GAAsByK,EAAOvQ,MAAOuQ,EAAOorB,cAEjE,IACOmB,CAlCP,CAmCF,EAUA30C,EAAO62C,UAAY,SAAmB7Y,GAChCl+B,KAAKuqB,QAAQkoB,aAAezyC,KAAKuqB,QAAQkoB,YAAYiC,UACvD10C,KAAKuqB,QAAQkoB,YAAYuE,qBAG3Bh3C,KAAKuqB,QAAQ4T,YAAYD,EAC3B,EAYAh+B,EAAO02C,gBAAkB,WACvB,OAAO52C,KAAKuqB,QAAQmY,YAAc1iC,KAAKuqB,QAAQsnB,WAAW1T,YAAcn+B,KAAKuqB,QAAQ4T,aACvF,EASAj+B,EAAO4zC,WAAa,WAClB,IACIe,EADA1W,EAAcn+B,KAAK42C,kBAEnBnE,EAAczyC,KAAKuqB,QAAQkoB,YAY/B,OAVIA,GAAeA,EAAYiC,UAC7BG,GAAW1W,EAAcsU,EAAYwE,iBAAmBxE,EAAYqD,aAEhErD,EAAYG,eACdiC,EAAU,IAGZA,EAAU1W,EAAcn+B,KAAKuqB,QAAQqI,WAGhCiiB,CACT,EAWA30C,EAAO6vC,gBAAkB,SAAyBlxB,GAC3CwB,GAAkBxB,KAKvBA,EAAMmF,kBACNhkB,KAAKk3C,iBAAmBl3C,KAAKuqB,QAAQmL,SACrC11B,KAAKuqB,QAAQqL,QAEbwgB,EAAQj2C,UAAU4vC,gBAAgBhvC,KAAKf,KAAM6e,GAC/C,EAYA3e,EAAOkzC,gBAAkB,SAAyBv0B,EAAOs4B,GAKvD,QAJkB,IAAdA,IACFA,GAAY,GAGT92B,GAAkBxB,GAAvB,CAQA,IAAIu4B,EAJCD,GAAcn3C,KAAKuqB,QAAQmY,aAC9B1iC,KAAKuqB,QAAQmY,WAAU,GAIzB,IAAI2U,EAAWr3C,KAAK+zC,kBAAkBl1B,GAClC4zB,EAAczyC,KAAKuqB,QAAQkoB,YAE/B,GAAKA,GAAgBA,EAAYiC,SAM1B,CACL,GAAI2C,GAAY,IAEd,YADA5E,EAAYI,iBAId,IAAIoE,EAAgBxE,EAAYwE,gBAC5BtC,EAAclC,EAAYoE,kBAgB9B,IAfAO,EAAUH,EAAgBI,EAAW5E,EAAYqD,eAElCnB,IACbyC,EAAUzC,GAKRyC,GAAWH,IACbG,EAAUH,EAAgB,IAMxBG,IAAYzkC,IACd,MAEJ,MA/BEykC,EAAUC,EAAWr3C,KAAKuqB,QAAQqI,cAElB5yB,KAAKuqB,QAAQqI,aAC3BwkB,GAAoB,IA+BxBp3C,KAAK+2C,UAAUK,EA7Cf,CA8CF,EAEAl3C,EAAO4W,OAAS,WACds/B,EAAQj2C,UAAU2W,OAAO/V,KAAKf,MAE9B,IAAIs3C,EAAmBt3C,KAAKysB,SAAS,oBAEhC6qB,GAILA,EAAiBlpB,MACnB,EAEAluB,EAAO2W,QAAU,WACfu/B,EAAQj2C,UAAU0W,QAAQ9V,KAAKf,MAE/B,IAAIs3C,EAAmBt3C,KAAKysB,SAAS,oBAEhC6qB,GAILA,EAAiBjpB,MACnB,EAWAnuB,EAAOgzC,cAAgB,SAAuBr0B,GAC5Cu3B,EAAQj2C,UAAU+yC,cAAcnyC,KAAKf,KAAM6e,GAGvCA,GACFA,EAAMmF,kBAGRhkB,KAAKuqB,QAAQmY,WAAU,GASvB1iC,KAAKuqB,QAAQ3pB,QAAQ,CACnBP,KAAM,aACNmX,OAAQxX,KACRiiC,mBAAmB,IAGjBjiC,KAAKk3C,gBACP7jB,GAAerzB,KAAKuqB,QAAQD,QAI5BtqB,KAAKsrC,SAET,EAMAprC,EAAO+zC,YAAc,WACnBj0C,KAAK+2C,UAAU/2C,KAAKuqB,QAAQ4T,cAvYb,EAwYjB,EAMAj+B,EAAO8zC,SAAW,WAChBh0C,KAAK+2C,UAAU/2C,KAAKuqB,QAAQ4T,cA/Yb,EAgZjB,EAWAj+B,EAAOq3C,aAAe,SAAsB14B,GACtC7e,KAAKuqB,QAAQmL,SACf11B,KAAKuqB,QAAQD,OAEbtqB,KAAKuqB,QAAQqL,OAEjB,EAmBA11B,EAAOqvB,cAAgB,SAAuB1Q,GAC5C,IAAI4zB,EAAczyC,KAAKuqB,QAAQkoB,YAE/B,GAAI,eAAmB5zB,EAAO,UAAY,eAAmBA,EAAO,SAClEA,EAAM4E,iBACN5E,EAAMmF,kBACNhkB,KAAKu3C,aAAa14B,QACb,GAAI,eAAmBA,EAAO,QACnCA,EAAM4E,iBACN5E,EAAMmF,kBACNhkB,KAAK+2C,UAAU,QACV,GAAI,eAAmBl4B,EAAO,OACnCA,EAAM4E,iBACN5E,EAAMmF,kBAEFyuB,GAAeA,EAAYiC,SAC7B10C,KAAK+2C,UAAUtE,EAAYoE,mBAE3B72C,KAAK+2C,UAAU/2C,KAAKuqB,QAAQqI,iBAEzB,GAAI,UAAUtzB,KAAK,IAAQuf,IAAS,CACzCA,EAAM4E,iBACN5E,EAAMmF,kBACN,IAAIwzB,EAAsE,IAAtD,UAAc,IAAQ34B,IAAU,UAAc,IAAe,IAE7E4zB,GAAeA,EAAYiC,SAC7B10C,KAAK+2C,UAAUtE,EAAYwE,gBAAkBxE,EAAYqD,aAAe0B,GAExEx3C,KAAK+2C,UAAU/2C,KAAKuqB,QAAQqI,WAAa4kB,EAE7C,MAAW,eAAmB34B,EAAO,SACnCA,EAAM4E,iBACN5E,EAAMmF,kBACNhkB,KAAK+2C,UAAU/2C,KAAKuqB,QAAQ4T,cAAgBsZ,KACnC,eAAmB54B,EAAO,SACnCA,EAAM4E,iBACN5E,EAAMmF,kBACNhkB,KAAK+2C,UAAU/2C,KAAKuqB,QAAQ4T,cAAgBsZ,KAG5CrB,EAAQj2C,UAAUovB,cAAcxuB,KAAKf,KAAM6e,EAE/C,EAEA3e,EAAOmB,QAAU,WACfrB,KAAK02C,mBACL12C,KAAKQ,IAAIR,KAAKuqB,QAAS,CAAC,QAAS,iBAAkB,cAAevqB,KAAKqrC,QAEnErrC,KAAKuqB,QAAQkoB,aACfzyC,KAAKQ,IAAIR,KAAKuqB,QAAQkoB,YAAa,iBAAkBzyC,KAAKqrC,QAG5DrrC,KAAKQ,IAAIR,KAAKuqB,QAAS,CAAC,WAAYvqB,KAAKu2C,wBACzCv2C,KAAKQ,IAAIR,KAAKuqB,QAAS,CAAC,QAAS,QAAS,WAAYvqB,KAAKy2C,yBAGvD,gBAAwB,yBAC1Bz2C,KAAKQ,IAAI,IAAU,mBAAoBR,KAAK22C,mBAG9CP,EAAQj2C,UAAUkB,QAAQN,KAAKf,KACjC,EAEOm2C,CACT,CA1e2B,CA0ezBpD,IASFoD,GAAQh2C,UAAUuqB,SAAW,CAC3B6B,SAAU,CAAC,kBAAmB,mBAC9B+mB,QAAS,mBAGNx5B,IAAWnB,IACdw9B,GAAQh2C,UAAUuqB,SAAS6B,SAAS5rB,OAAO,EAAG,EAAG,oBAGnDwpB,GAAYmH,kBAAkB,UAAW6kB,IASzC,IAAIuB,GAA+B,SAAUljB,GAY3C,SAASkjB,EAAgBt2B,EAAQvd,GAC/B,IAAIijB,EAgBJ,OAdAA,EAAQ0N,EAAWzzB,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAC5CozC,gBAAkB7sB,GAASH,IAAK,aAAuBU,GAAQA,EAAMssB,iBAAkBjtB,IAC7FW,EAAM6wB,yBAA2BpxB,GAASH,IAAK,aAAuBU,GAAQA,EAAM8wB,iBAAkBzxB,IAEtGW,EAAM+wB,sBAAwB,SAAU90C,GACtC,OAAO+jB,EAAMosB,cAAcnwC,EAC7B,EAEA+jB,EAAMgxB,wBAA0B,SAAU/0C,GACxC,OAAO+jB,EAAMipB,gBAAgBhtC,EAC/B,EAEA+jB,EAAMhQ,SAECgQ,CACT,EA7BA,aAAe4wB,EAAiBljB,GAsChC,IAAIt0B,EAASw3C,EAAgBv3C,UAiM7B,OA/LAD,EAAO2a,SAAW,WAChB,OAAO2Z,EAAWr0B,UAAU0a,SAAS9Z,KAAKf,KAAM,MAAO,CACrDqc,UAAW,oCAEf,EAYAnc,EAAOkzC,gBAAkB,SAAyBv0B,GAChD,IAAIk5B,EAAU/3C,KAAKysB,SAAS,WAE5B,GAAKsrB,EAAL,CAIA,IAAIC,EAAkBD,EAAQtrB,SAAS,mBACnC6qB,EAAmBS,EAAQtrB,SAAS,oBAExC,GAAKurB,GAAoBV,EAAzB,CAIA,IAAIW,EAAYF,EAAQhgC,KACpBm9B,EAAc/2B,GAAa85B,GAC3B9C,EAAev2B,GAAmBq5B,EAAWp5B,GAAOzS,EAIxD+oC,EAAerC,GAAMqC,EAAc,EAAG,GAElCmC,GACFA,EAAiBjM,OAAO6J,EAAaC,GAGnC6C,GACFA,EAAgB3M,OAAO6J,EAAa6C,EAAQrE,cAf9C,CAPA,CAwBF,EAuBAxzC,EAAO03C,gBAAkB,SAAyB/4B,GAChD,IAAIk5B,EAAU/3C,KAAKysB,SAAS,WAExBsrB,GACFA,EAAQ3E,gBAAgBv0B,EAE5B,EASA3e,EAAOq4B,QAAU,WACf,OAAOv4B,KAAKirC,QACd,EAMA/qC,EAAO2W,QAAU,WAKf,GAJA7W,KAAKusB,WAAW1tB,SAAQ,SAAU8c,GAChC,OAAOA,EAAM9E,SAAW8E,EAAM9E,SAChC,IAEK7W,KAAKu4B,YAIVv4B,KAAKQ,IAAI,CAAC,YAAa,cAAeR,KAAK83C,yBAC3C93C,KAAKQ,IAAIR,KAAK+oB,IAAK,YAAa/oB,KAAKozC,iBACrCpzC,KAAKk4C,+CACLl4C,KAAKsc,SAAS,YACdtc,KAAKirC,UAAW,EAEZjrC,KAAKuqB,QAAQmY,aAAa,CAC5B,IAAIqV,EAAU/3C,KAAKysB,SAAS,WAC5BzsB,KAAKuqB,QAAQmY,WAAU,GAEnBqV,EAAQb,iBACV7jB,GAAerzB,KAAKuqB,QAAQD,OAEhC,CACF,EAMApqB,EAAO4W,OAAS,WACd9W,KAAKusB,WAAW1tB,SAAQ,SAAU8c,GAChC,OAAOA,EAAM7E,QAAU6E,EAAM7E,QAC/B,IAEI9W,KAAKu4B,YAITv4B,KAAKI,GAAG,CAAC,YAAa,cAAeJ,KAAK83C,yBAC1C93C,KAAKI,GAAGJ,KAAK+oB,IAAK,YAAa/oB,KAAKozC,iBACpCpzC,KAAKyc,YAAY,YACjBzc,KAAKirC,UAAW,EAClB,EAMA/qC,EAAOg4C,6CAA+C,WACpD,IAAI9zB,EAAMpkB,KAAK+oB,IAAIpD,cACnB3lB,KAAKQ,IAAI4jB,EAAK,YAAapkB,KAAK23C,0BAChC33C,KAAKQ,IAAI4jB,EAAK,YAAapkB,KAAK23C,0BAChC33C,KAAKQ,IAAI4jB,EAAK,UAAWpkB,KAAK63C,uBAC9B73C,KAAKQ,IAAI4jB,EAAK,WAAYpkB,KAAK63C,sBACjC,EAYA33C,EAAO6vC,gBAAkB,SAAyBlxB,GAChD,IAAIuF,EAAMpkB,KAAK+oB,IAAIpD,cACfoyB,EAAU/3C,KAAKysB,SAAS,WAExBsrB,GACFA,EAAQhI,gBAAgBlxB,GAG1B7e,KAAKI,GAAGgkB,EAAK,YAAapkB,KAAK23C,0BAC/B33C,KAAKI,GAAGgkB,EAAK,YAAapkB,KAAK23C,0BAC/B33C,KAAKI,GAAGgkB,EAAK,UAAWpkB,KAAK63C,uBAC7B73C,KAAKI,GAAGgkB,EAAK,WAAYpkB,KAAK63C,sBAChC,EAYA33C,EAAOgzC,cAAgB,SAAuBr0B,GAC5C,IAAIk5B,EAAU/3C,KAAKysB,SAAS,WAExBsrB,GACFA,EAAQ7E,cAAcr0B,GAGxB7e,KAAKk4C,8CACP,EAEOR,CACT,CAzOmC,CAyOjCvtB,IASFutB,GAAgBv3C,UAAUuqB,SAAW,CACnC6B,SAAU,CAAC,YAEbpC,GAAYmH,kBAAkB,kBAAmBomB,IAQjD,IAAIS,GAAsC,SAAUtI,GAelD,SAASsI,EAAuB/2B,EAAQvd,GACtC,IAAIijB,EA8BJ,OA5BAA,EAAQ+oB,EAAQ9uC,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAEzCI,GAAGghB,EAAQ,CAAC,wBAAyB,0BAA0B,SAAUre,GAC7E,OAAO+jB,EAAMsxB,6BAA6Br1C,EAC5C,IAEA+jB,EAAM1mB,GAAGghB,EAAQ,CAAC,iCAAkC,mBAAmB,SAAUre,GAC/E,OAAO+jB,EAAMuxB,oCAAoCt1C,EACnD,IAEA+jB,EAAM1mB,GAAGghB,EAAQ,CAAC,iBAAkB,sBAAuB,0BAA0B,WAEtB,UAAzCA,EAAOk3B,cAAc9uC,UAAU,EAAG,IAEjC4X,EAAOm3B,mBAAqBn3B,EAAOo3B,iBAClDp3B,EAAOq3B,wBACTr3B,EAAOs3B,uBAGT5xB,EAAMuH,QAENvH,EAAMsH,MAEV,IAGAtH,EAAMjQ,UAECiQ,CACT,EA9CA,aAAeqxB,EAAwBtI,GAuDvC,IAAI3vC,EAASi4C,EAAuBh4C,UA4DpC,OA1DAD,EAAO8tB,cAAgB,WACrB,MAAO,kCAAoC6hB,EAAQ1vC,UAAU6tB,cAAcjtB,KAAKf,KAClF,EAOAE,EAAOm4C,oCAAsC,WACvC,8BAA+E,IAA3Cr4C,KAAKuqB,QAAQ0Z,0BACnDjkC,KAAK8W,SAEL9W,KAAK6W,SAET,EAaA3W,EAAOk4C,6BAA+B,SAAsCv5B,GACtE7e,KAAKuqB,QAAQkuB,uBACfz4C,KAAKq2B,YAAY,2BAEjBr2B,KAAKq2B,YAAY,sBAGnBr2B,KAAKq4C,qCACP,EAcAn4C,EAAOuqC,YAAc,SAAqB5rB,GACnC7e,KAAKuqB,QAAQkuB,uBAGhBz4C,KAAKuqB,QAAQmuB,uBAFb14C,KAAKuqB,QAAQsZ,yBAIjB,EAEOsU,CACT,CArH0C,CAqHxCxI,IASFwI,GAAuBh4C,UAAU0qC,aAAe,qBAChD1gB,GAAYmH,kBAAkB,yBAA0B6mB,IAQxD,IAAIQ,GAAgC,SAAU9I,GAY5C,SAAS8I,EAAiBv3B,EAAQvd,GAChC,IAAIijB,EAYJ,OAVAA,EAAQ+oB,EAAQ9uC,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAEzCI,GAAGghB,EAAQ,oBAAoB,SAAUre,GAC7C,OAAO+jB,EAAM8xB,uBAAuB71C,EACtC,KAEkD,IAA9C,IAASqe,EAAOy3B,OAAOC,oBACzBhyB,EAAMjQ,UAGDiQ,CACT,EAzBA,aAAe6xB,EAAkB9I,GAkCjC,IAAI3vC,EAASy4C,EAAiBx4C,UA4C9B,OA1CAD,EAAO8tB,cAAgB,WACrB,MAAO,0BAA4B6hB,EAAQ1vC,UAAU6tB,cAAcjtB,KAAKf,KAC1E,EAYAE,EAAO04C,uBAAyB,SAAgC/5B,GAC1D7e,KAAKuqB,QAAQwuB,eACf/4C,KAAKq2B,YAAY,kBAEjBr2B,KAAKq2B,YAAY,aAErB,EAcAn2B,EAAOuqC,YAAc,SAAqB5rB,GACnC7e,KAAKuqB,QAAQwuB,eAGhB/4C,KAAKuqB,QAAQyuB,iBAFbh5C,KAAKuqB,QAAQ0uB,mBAIjB,EAEON,CACT,CAhFoC,CAgFlChJ,IASFgJ,GAAiBx4C,UAAU0qC,aAAe,aAC1C1gB,GAAYmH,kBAAkB,mBAAoBqnB,IAclD,IAqBIO,GAA2B,SAAU1kB,GAGvC,SAAS0kB,IACP,OAAO1kB,EAAWpzB,MAAMpB,KAAMc,YAAcd,IAC9C,CAqBA,OAzBA,aAAek5C,EAAa1kB,GAMf0kB,EAAY/4C,UAQlB0a,SAAW,WAChB,IAAI9C,EAAKyc,EAAWr0B,UAAU0a,SAAS9Z,KAAKf,KAAM,MAAO,CACvDqc,UAAW,qBAMb,OAHAtE,EAAGgE,YAAYyY,EAAWr0B,UAAU0a,SAAS9Z,KAAKf,KAAM,OAAQ,CAC9Dqc,UAAW,sBAENtE,CACT,EAEOmhC,CACT,CA3B+B,CA2B7B/uB,IAEFA,GAAYmH,kBAAkB,cAAe4nB,IAQ7C,IAAIC,GAAkC,SAAU3kB,GAY9C,SAAS2kB,EAAmB/3B,EAAQvd,GAClC,IAAIijB,EAIJ,OAFAA,EAAQ0N,EAAWzzB,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAC5CqrC,OAAS9kB,GAASH,IAAK,aAAuBU,GAAQA,EAAMukB,QAASllB,IACpEW,CACT,EAjBA,aAAeqyB,EAAoB3kB,GA0BnC,IAAIt0B,EAASi5C,EAAmBh5C,UAwGhC,OAtGAD,EAAO2a,SAAW,WAChB,OAAO2Z,EAAWr0B,UAAU0a,SAAS9Z,KAAKf,KAAM,MAAO,CACrDqc,UAAW,sBACV,CACD,cAAe,QAEnB,EAmBAnc,EAAOmrC,OAAS,SAAgB+N,EAAcC,EAAe9F,EAAUt4B,GACrE,IAAKs4B,EAAU,CACb,IAAI6B,EAAcv3B,GAAsB7d,KAAK+oB,KACzCssB,EAAax3B,GAAsB7d,KAAKuqB,QAAQxS,MAChDuhC,EAAmBF,EAAal7B,MAAQm7B,EAE5C,IAAKhE,IAAeD,EAClB,OAGF,IAAIG,EAAmB6D,EAAa/6B,KAAOg3B,EAAWh3B,KAAOi7B,EACzD9D,EAAoB4D,EAAal7B,MAAQo7B,GAAoBjE,EAAWI,MAAQ2D,EAAa3D,OAC7FC,EAAgBN,EAAYl3B,MAAQ,EAEpCq3B,EAAmBG,EACrBA,GAAiBA,EAAgBH,EACxBC,EAAoBE,IAC7BA,EAAgBF,GAGdE,EAAgB,EAClBA,EAAgB,EACPA,EAAgBN,EAAYl3B,QACrCw3B,EAAgBN,EAAYl3B,OAG9Ble,KAAK+oB,IAAIrH,MAAM+zB,MAAQ,IAAMC,EAAgB,IAC/C,CAEA11C,KAAK41C,MAAM36B,EAAU,IACvB,EASA/a,EAAO01C,MAAQ,SAAe36B,GAC5BK,GAAYtb,KAAK+oB,IAAK9N,EACxB,EAwBA/a,EAAOq5C,aAAe,SAAsBH,EAAcC,EAAe9F,EAAU/L,EAAQrD,GACzF,IAAIjc,EAASloB,KAEbA,KAAK+wB,2BAA2B,mCAAmC,WACjE7I,EAAOmjB,OAAO+N,EAAcC,EAAe9F,EAAU/L,EAAOqM,QAAQ,IAEhE1P,GACFA,GAEJ,GACF,EAEOgV,CACT,CApIsC,CAoIpChvB,IAEFA,GAAYmH,kBAAkB,qBAAsB6nB,IAWpD,IAAIK,GAAuC,SAAUhlB,GAYnD,SAASglB,EAAwBp4B,EAAQvd,GACvC,IAAIijB,EAIJ,OAFAA,EAAQ0N,EAAWzzB,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAC5CqrC,OAAS9kB,GAASH,IAAK,aAAuBU,GAAQA,EAAMukB,QAASllB,IACpEW,CACT,EAjBA,aAAe0yB,EAAyBhlB,GA0BxC,IAAIt0B,EAASs5C,EAAwBr5C,UAsCrC,OApCAD,EAAO2a,SAAW,WAChB,OAAO2Z,EAAWr0B,UAAU0a,SAAS9Z,KAAKf,KAAM,MAAO,CACrDqc,UAAW,qBAEf,EAmBAnc,EAAOmrC,OAAS,SAAgB+N,EAAcC,EAAe9F,GAC3D,IAAIrrB,EAASloB,KAETwnC,EAAS,IAAM6R,EACnBr5C,KAAKysB,SAAS,sBAAsB8sB,aAAaH,EAAcC,EAAe9F,EAAU/L,GAAQ,WAC1F+L,EACFrrB,EAAOa,IAAIrH,MAAM+3B,OAASL,EAAan7B,OAASo7B,EAAgB,KAEhEnxB,EAAOa,IAAIrH,MAAMrD,KAAO+6B,EAAal7B,MAAQm7B,EAAgB,IAEjE,GACF,EAEOG,CACT,CAlE2C,CAkEzCrvB,IASFqvB,GAAwBr5C,UAAUuqB,SAAW,CAC3C6B,SAAU,CAAC,uBAEbpC,GAAYmH,kBAAkB,0BAA2BkoB,IAQzD,IAAIE,GAAyB,SAAUtD,GAYrC,SAASsD,EAAUt4B,EAAQvd,GACzB,IAAIijB,EAeJ,OAbAA,EAAQsvB,EAAQr1C,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAEzCI,GAAG,gBAAgB,SAAU2C,GACjC,OAAO+jB,EAAM6yB,kBAAkB52C,EACjC,IAEA+jB,EAAM1mB,GAAGghB,EAAQ,gBAAgB,SAAUre,GACzC,OAAO+jB,EAAM8yB,qBAAqB72C,EACpC,IAEAqe,EAAOiJ,OAAM,WACX,OAAOvD,EAAM8yB,sBACf,IACO9yB,CACT,EA5BA,aAAe4yB,EAAWtD,GAqC1B,IAAIl2C,EAASw5C,EAAUv5C,UAqJvB,OAnJAD,EAAO2a,SAAW,WAChB,OAAOu7B,EAAQj2C,UAAU0a,SAAS9Z,KAAKf,KAAM,MAAO,CAClDqc,UAAW,iCACV,CACD,aAAcrc,KAAK4rB,SAAS,gBAC5B,YAAa,UAEjB,EAWA1rB,EAAO6vC,gBAAkB,SAAyBlxB,GAC3CwB,GAAkBxB,IAIvBu3B,EAAQj2C,UAAU4vC,gBAAgBhvC,KAAKf,KAAM6e,EAC/C,EAWA3e,EAAOkzC,gBAAkB,SAAyBv0B,GAChD,IAAIg7B,EAA0B75C,KAAKysB,SAAS,2BAE5C,GAAIotB,EAAyB,CAC3B,IAAIC,EAAc95C,KAAK+X,KACnBgiC,EAAgBl8B,GAAsBi8B,GACtCvG,EAAWvzC,KAAKuzC,WAChByG,EAAiBp7B,GAAmBk7B,EAAaj7B,GACrDm7B,EAAiBzG,EAAWyG,EAAej7B,EAAIi7B,EAAe5tC,EAI9D4tC,EAAiBlH,GAAMkH,EAAgB,EAAG,GAC1CH,EAAwBxO,OAAO0O,EAAeC,EAAgBzG,EAChE,CAEKlzB,GAAkBxB,KAIvB7e,KAAKi6C,aACLj6C,KAAKuqB,QAAQid,OAAOxnC,KAAK+zC,kBAAkBl1B,IAC7C,EAMA3e,EAAO+5C,WAAa,WACdj6C,KAAKuqB,QAAQ+c,SACftnC,KAAKuqB,QAAQ+c,OAAM,EAEvB,EASApnC,EAAO4zC,WAAa,WAClB,OAAI9zC,KAAKuqB,QAAQ+c,QACR,EAGFtnC,KAAKuqB,QAAQid,QACtB,EAMAtnC,EAAO+zC,YAAc,WACnBj0C,KAAKi6C,aACLj6C,KAAKuqB,QAAQid,OAAOxnC,KAAKuqB,QAAQid,SAAW,GAC9C,EAMAtnC,EAAO8zC,SAAW,WAChBh0C,KAAKi6C,aACLj6C,KAAKuqB,QAAQid,OAAOxnC,KAAKuqB,QAAQid,SAAW,GAC9C,EAWAtnC,EAAO05C,qBAAuB,SAA8B/6B,GAC1D,IAAIq7B,EAAYl6C,KAAKuqB,QAAQ+c,QAAU,EAAItnC,KAAKm6C,sBAChDn6C,KAAK+oB,IAAI1N,aAAa,gBAAiB6+B,GACvCl6C,KAAK+oB,IAAI1N,aAAa,iBAAkB6+B,EAAY,IACtD,EAQAh6C,EAAOi6C,oBAAsB,WAC3B,OAAOruC,KAAK6pC,MAA8B,IAAxB31C,KAAKuqB,QAAQid,SACjC,EAWAtnC,EAAOy5C,kBAAoB,WACzB,IAAIzxB,EAASloB,KAETo6C,EAAmBp6C,KAAKuqB,QAAQid,SACpCxnC,KAAK8lB,IAAI,kBAAkB,WACO,IAA5BoC,EAAOqC,QAAQid,UACjBtf,EAAOqC,QAAQ8vB,YAAYD,EAE/B,GACF,EAEOV,CACT,CA5L6B,CA4L3B3G,IASF2G,GAAUv5C,UAAUuqB,SAAW,CAC7B6B,SAAU,CAAC,eACX+mB,QAAS,eAGNx5B,IAAWnB,IACd+gC,GAAUv5C,UAAUuqB,SAAS6B,SAAS5rB,OAAO,EAAG,EAAG,2BASrD+4C,GAAUv5C,UAAUqzC,YAAc,eAClCrpB,GAAYmH,kBAAkB,YAAaooB,IAQ3C,IAAIY,GAA6B,SAAU9lB,GAYzC,SAAS8lB,EAAcl5B,EAAQvd,GAC7B,IAAIijB,EAqDJ,YAnDgB,IAAZjjB,IACFA,EAAU,CAAC,GAGbA,EAAQ0vC,SAAW1vC,EAAQ0vC,WAAY,QAGN,IAAtB1vC,EAAQ02C,WAA6B3iC,GAAQ/T,EAAQ02C,cAC9D12C,EAAQ02C,UAAY12C,EAAQ02C,WAAa,CAAC,EAC1C12C,EAAQ02C,UAAUhH,SAAW1vC,EAAQ0vC,UAGvCzsB,EAAQ0N,EAAWzzB,KAAKf,KAAMohB,EAAQvd,IAAY7D,KAzhB7B,SAA4B2nB,EAAMvG,GAErDA,EAAO0b,QAAU1b,EAAO0b,MAAMmI,uBAChCtd,EAAKrL,SAAS,cAGhBqL,EAAKvnB,GAAGghB,EAAQ,aAAa,WACtBA,EAAO0b,MAAMmI,sBAGhBtd,EAAKlL,YAAY,cAFjBkL,EAAKrL,SAAS,aAIlB,GACF,CA8gBIk+B,EAAmB,aAAuB1zB,GAAQ1F,GAClD0F,EAAM2zB,yBAA2Bl0B,GAASH,IAAK,aAAuBU,GAAQA,EAAMssB,iBAAkBjtB,IAEtGW,EAAM+wB,sBAAwB,SAAU90C,GACtC,OAAO+jB,EAAMosB,cAAcnwC,EAC7B,EAEA+jB,EAAM1mB,GAAG,aAAa,SAAU2C,GAC9B,OAAO+jB,EAAMipB,gBAAgBhtC,EAC/B,IAEA+jB,EAAM1mB,GAAG,cAAc,SAAU2C,GAC/B,OAAO+jB,EAAMipB,gBAAgBhtC,EAC/B,IAEA+jB,EAAM1mB,GAAG,aAAa,SAAU2C,GAC9B,OAAO+jB,EAAMssB,gBAAgBrwC,EAC/B,IAIA+jB,EAAM1mB,GAAG0mB,EAAMyzB,UAAW,CAAC,QAAS,iBAAiB,WACnDzzB,EAAMyzB,UAAUj+B,SAAS,qBAEzBwK,EAAMxK,SAAS,qBAEfwK,EAAMlmB,QAAQ,eAChB,IAEAkmB,EAAM1mB,GAAG0mB,EAAMyzB,UAAW,CAAC,OAAQ,mBAAmB,WACpDzzB,EAAMyzB,UAAU99B,YAAY,qBAE5BqK,EAAMrK,YAAY,qBAElBqK,EAAMlmB,QAAQ,iBAChB,IAEOkmB,CACT,EAlEA,aAAewzB,EAAe9lB,GA2E9B,IAAIt0B,EAASo6C,EAAcn6C,UAgE3B,OA9DAD,EAAO2a,SAAW,WAChB,IAAI6/B,EAAmB,wBAMvB,OAJI16C,KAAK0qB,SAAS6oB,WAChBmH,EAAmB,uBAGdlmB,EAAWr0B,UAAU0a,SAAS9Z,KAAKf,KAAM,MAAO,CACrDqc,UAAW,kCAAoCq+B,GAEnD,EAYAx6C,EAAO6vC,gBAAkB,SAAyBlxB,GAChD,IAAIuF,EAAMpkB,KAAK+oB,IAAIpD,cACnB3lB,KAAKI,GAAGgkB,EAAK,YAAapkB,KAAKy6C,0BAC/Bz6C,KAAKI,GAAGgkB,EAAK,YAAapkB,KAAKy6C,0BAC/Bz6C,KAAKI,GAAGgkB,EAAK,UAAWpkB,KAAK63C,uBAC7B73C,KAAKI,GAAGgkB,EAAK,WAAYpkB,KAAK63C,sBAChC,EAYA33C,EAAOgzC,cAAgB,SAAuBr0B,GAC5C,IAAIuF,EAAMpkB,KAAK+oB,IAAIpD,cACnB3lB,KAAKQ,IAAI4jB,EAAK,YAAapkB,KAAKy6C,0BAChCz6C,KAAKQ,IAAI4jB,EAAK,YAAapkB,KAAKy6C,0BAChCz6C,KAAKQ,IAAI4jB,EAAK,UAAWpkB,KAAK63C,uBAC9B73C,KAAKQ,IAAI4jB,EAAK,WAAYpkB,KAAK63C,sBACjC,EAYA33C,EAAOkzC,gBAAkB,SAAyBv0B,GAChD7e,KAAKu6C,UAAUnH,gBAAgBv0B,EACjC,EAEOy7B,CACT,CA7IiC,CA6I/BnwB,IASFmwB,GAAcn6C,UAAUuqB,SAAW,CACjC6B,SAAU,CAAC,cAEbpC,GAAYmH,kBAAkB,gBAAiBgpB,IAc/C,IAqBIK,GAA0B,SAAU9K,GAYtC,SAAS8K,EAAWv5B,EAAQvd,GAC1B,IAAIijB,EAUJ,OARAA,EAAQ+oB,EAAQ9uC,KAAKf,KAAMohB,EAAQvd,IAAY7D,KApC5B,SAA0B2nB,EAAMvG,GAEjDA,EAAO0b,QAAU1b,EAAO0b,MAAMoI,qBAChCvd,EAAKrL,SAAS,cAGhBqL,EAAKvnB,GAAGghB,EAAQ,aAAa,WACtBA,EAAO0b,MAAMoI,oBAGhBvd,EAAKlL,YAAY,cAFjBkL,EAAKrL,SAAS,aAIlB,GACF,CAyBIs+B,EAAiB,aAAuB9zB,GAAQ1F,GAEhD0F,EAAM1mB,GAAGghB,EAAQ,CAAC,YAAa,iBAAiB,SAAUre,GACxD,OAAO+jB,EAAMukB,OAAOtoC,EACtB,IAEO+jB,CACT,EAvBA,aAAe6zB,EAAY9K,GAgC3B,IAAI3vC,EAASy6C,EAAWx6C,UAuGxB,OArGAD,EAAO8tB,cAAgB,WACrB,MAAO,oBAAsB6hB,EAAQ1vC,UAAU6tB,cAAcjtB,KAAKf,KACpE,EAcAE,EAAOuqC,YAAc,SAAqB5rB,GACxC,IAAIg8B,EAAM76C,KAAKuqB,QAAQid,SACnBsT,EAAa96C,KAAKuqB,QAAQ8vB,cAE9B,GAAY,IAARQ,EAAW,CACb,IAAIE,EAAcD,EAAa,GAAM,GAAMA,EAC3C96C,KAAKuqB,QAAQid,OAAOuT,GACpB/6C,KAAKuqB,QAAQ+c,OAAM,EACrB,MACEtnC,KAAKuqB,QAAQ+c,OAAMtnC,KAAKuqB,QAAQ+c,QAEpC,EAcApnC,EAAOmrC,OAAS,SAAgBxsB,GAC9B7e,KAAKg7C,cACLh7C,KAAKi7C,oBACP,EAcA/6C,EAAO86C,YAAc,WACnB,IAAIH,EAAM76C,KAAKuqB,QAAQid,SACnBjyB,EAAQ,EAIRuE,IAAU9Z,KAAKuqB,QAAQuS,OAAS98B,KAAKuqB,QAAQuS,MAAM/T,KACrD/oB,KAAKuqB,QAAQ+c,MAAMtnC,KAAKuqB,QAAQuS,MAAM/T,IAAIue,OAGhC,IAARuT,GAAa76C,KAAKuqB,QAAQ+c,QAC5B/xB,EAAQ,EACCslC,EAAM,IACftlC,EAAQ,EACCslC,EAAM,MACftlC,EAAQ,GAIV,IAAK,IAAIhX,EAAI,EAAGA,EAAI,EAAGA,IACrBke,GAAYzc,KAAK+oB,IAAK,WAAaxqB,GAGrC+d,GAAStc,KAAK+oB,IAAK,WAAaxT,EAClC,EAUArV,EAAO+6C,mBAAqB,WAC1B,IACI7yC,EADWpI,KAAKuqB,QAAQ+c,SAAqC,IAA1BtnC,KAAKuqB,QAAQid,SAC9B,SAAW,OAE7BxnC,KAAKq2B,gBAAkBjuB,GACzBpI,KAAKq2B,YAAYjuB,EAErB,EAEOuyC,CACT,CAzI8B,CAyI5BhL,IASFgL,GAAWx6C,UAAU0qC,aAAe,OACpC1gB,GAAYmH,kBAAkB,aAAcqpB,IAS5C,IAAIO,GAA2B,SAAU1mB,GAYvC,SAAS0mB,EAAY95B,EAAQvd,GAC3B,IAAIijB,EAuDJ,YArDgB,IAAZjjB,IACFA,EAAU,CAAC,QAGiB,IAAnBA,EAAQs3C,OACjBt3C,EAAQs3C,OAASt3C,EAAQs3C,OAEzBt3C,EAAQs3C,QAAS,QAKkB,IAA1Bt3C,EAAQu3C,eAAiCxjC,GAAQ/T,EAAQu3C,kBAClEv3C,EAAQu3C,cAAgBv3C,EAAQu3C,eAAiB,CAAC,EAClDv3C,EAAQu3C,cAAc7H,UAAY1vC,EAAQs3C,SAG5Cr0B,EAAQ0N,EAAWzzB,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAE5Cq7C,uBAAyB,SAAUt4C,GACvC,OAAO+jB,EAAM0I,eAAezsB,EAC9B,EAEA+jB,EAAM1mB,GAAGghB,EAAQ,CAAC,cAAc,SAAUre,GACxC,OAAO+jB,EAAMw0B,kBAAkBv4C,EACjC,IAEA+jB,EAAM1mB,GAAG0mB,EAAMy0B,WAAY,SAAS,SAAUx4C,GAC5C,OAAO+jB,EAAM0I,eAAezsB,EAC9B,IAEA+jB,EAAM1mB,GAAG0mB,EAAMs0B,cAAe,SAAS,SAAUr4C,GAC/C,OAAO+jB,EAAM00B,yBAAyBz4C,EACxC,IAEA+jB,EAAM1mB,GAAG,WAAW,SAAU2C,GAC5B,OAAO+jB,EAAM0I,eAAezsB,EAC9B,IAEA+jB,EAAM1mB,GAAG,aAAa,SAAU2C,GAC9B,OAAO+jB,EAAMujB,gBAAgBtnC,EAC/B,IAEA+jB,EAAM1mB,GAAG,YAAY,SAAU2C,GAC7B,OAAO+jB,EAAMyjB,eAAexnC,EAC9B,IAIA+jB,EAAM1mB,GAAG0mB,EAAMs0B,cAAe,CAAC,gBAAiBt0B,EAAM20B,eAEtD30B,EAAM1mB,GAAG0mB,EAAMs0B,cAAe,CAAC,kBAAmBt0B,EAAM40B,iBAEjD50B,CACT,EApEA,aAAeo0B,EAAa1mB,GA6E5B,IAAIt0B,EAASg7C,EAAY/6C,UAoIzB,OAlIAD,EAAOu7C,cAAgB,WACrBz7C,KAAKsc,SAAS,oBAChB,EASApc,EAAOw7C,gBAAkB,WACvB17C,KAAKyc,YAAY,oBACnB,EAUAvc,EAAOo7C,kBAAoB,WAGrBt7C,KAAKo7C,cAAcp/B,SAAS,eAAiBhc,KAAKu7C,WAAWv/B,SAAS,eACxEhc,KAAKsc,SAAS,cAKZtc,KAAKo7C,cAAcp/B,SAAS,gBAAkBhc,KAAKu7C,WAAWv/B,SAAS,eACzEhc,KAAKsc,SAAS,uBAElB,EASApc,EAAO2a,SAAW,WAChB,IAAI6/B,EAAmB,8BAMvB,OAJK16C,KAAK0qB,SAASywB,SACjBT,EAAmB,6BAGdlmB,EAAWr0B,UAAU0a,SAAS9Z,KAAKf,KAAM,MAAO,CACrDqc,UAAW,gCAAkCq+B,GAEjD,EAMAx6C,EAAOmB,QAAU,WACfrB,KAAKuqC,iBAEL/V,EAAWr0B,UAAUkB,QAAQN,KAAKf,KACpC,EAYAE,EAAOs7C,yBAA2B,SAAkC38B,GAC9D,eAAmBA,EAAO,QAC5B7e,KAAKu7C,WAAW59B,OAEpB,EAaAzd,EAAOmqC,gBAAkB,SAAyBxrB,GAChD7e,KAAKsc,SAAS,aACdlc,GAAG,IAAU,QAASJ,KAAKq7C,uBAC7B,EAaAn7C,EAAOqqC,eAAiB,SAAwB1rB,GAC9C7e,KAAKyc,YAAY,aACjBjc,GAAI,IAAU,QAASR,KAAKq7C,uBAC9B,EAYAn7C,EAAOsvB,eAAiB,SAAwB3Q,GAC1C,eAAmBA,EAAO,QAC5B7e,KAAKuqC,gBAET,EAEO2Q,CACT,CAnN+B,CAmN7B/wB,IASF+wB,GAAY/6C,UAAUuqB,SAAW,CAC/B6B,SAAU,CAAC,aAAc,kBAE3BpC,GAAYmH,kBAAkB,cAAe4pB,IAS7C,IAAIS,GAAoB,SAAUnnB,GAahC,SAASmnB,EAAKv6B,EAAQvd,GACpB,IAAIijB,EAuBJ,OArBAA,EAAQ0N,EAAWzzB,KAAKf,KAAMohB,EAAQvd,IAAY7D,KAE9C6D,IACFijB,EAAM80B,YAAc/3C,EAAQg4C,YAG9B/0B,EAAMg1B,eAAiB,EAEvBh1B,EAAM1mB,GAAG,WAAW,SAAU2C,GAC5B,OAAO+jB,EAAMyI,cAAcxsB,EAC7B,IAGA+jB,EAAMi1B,iBAAmB,SAAUh5C,GACjC,OAAO+jB,EAAMk1B,WAAWj5C,EAC1B,EAEA+jB,EAAMm1B,qBAAuB,SAAUl5C,GACrC,OAAO+jB,EAAMo1B,eAAen5C,EAC9B,EAEO+jB,CACT,EArCA,aAAe60B,EAAMnnB,GA+CrB,IAAIt0B,EAASy7C,EAAKx7C,UAgPlB,OA9OAD,EAAOi8C,wBAA0B,SAAiCpvB,GAC1DA,aAAqB5C,KAI3BnqB,KAAKI,GAAG2sB,EAAW,OAAQ/sB,KAAK+7C,kBAChC/7C,KAAKI,GAAG2sB,EAAW,CAAC,MAAO,SAAU/sB,KAAKi8C,sBAC5C,EAUA/7C,EAAOk8C,2BAA6B,SAAoCrvB,GAChEA,aAAqB5C,KAI3BnqB,KAAKQ,IAAIusB,EAAW,OAAQ/sB,KAAK+7C,kBACjC/7C,KAAKQ,IAAIusB,EAAW,CAAC,MAAO,SAAU/sB,KAAKi8C,sBAC7C,EAYA/7C,EAAO+f,YAAc,SAAqB8M,GACf,iBAAdA,IACTA,EAAY/sB,KAAKysB,SAASM,IAG5B/sB,KAAKo8C,2BAA2BrvB,GAEhCyH,EAAWr0B,UAAU8f,YAAYlf,KAAKf,KAAM+sB,EAC9C,EAUA7sB,EAAOm8C,QAAU,SAAiBtvB,GAChC,IAAIuvB,EAAiBt8C,KAAK8sB,SAASC,GAE/BuvB,GACFt8C,KAAKm8C,wBAAwBG,EAEjC,EASAp8C,EAAO2a,SAAW,WAChB,IAAI0hC,EAAgBv8C,KAAK0qB,SAAS6xB,eAAiB,KACnDv8C,KAAKssB,WAAazR,GAAS0hC,EAAe,CACxClgC,UAAW,qBAEbrc,KAAKssB,WAAWjR,aAAa,OAAQ,QAErC,IAAItD,EAAKyc,EAAWr0B,UAAU0a,SAAS9Z,KAAKf,KAAM,MAAO,CACvDw8C,OAAQx8C,KAAKssB,WACbjQ,UAAW,aAUb,OAPAtE,EAAGgE,YAAY/b,KAAKssB,YAGpBlsB,GAAG2X,EAAI,SAAS,SAAU8G,GACxBA,EAAM4E,iBACN5E,EAAMqF,0BACR,IACOnM,CACT,EAEA7X,EAAOmB,QAAU,WACfrB,KAAKssB,WAAa,KAClBtsB,KAAK+7C,iBAAmB,KACxB/7C,KAAKi8C,qBAAuB,KAE5BznB,EAAWr0B,UAAUkB,QAAQN,KAAKf,KACpC,EAWAE,EAAO87C,WAAa,SAAoBn9B,GACtC,IAAI8E,EAAgB9E,EAAM8E,eAAiB,kBAE3C,IAAK3jB,KAAKusB,WAAWoB,MAAK,SAAU1R,GAClC,OAAOA,EAAQlE,OAAS4L,CAC1B,IAAI,CACF,IAAI84B,EAAMz8C,KAAK47C,YAEXa,GAAOA,EAAIC,gBAAkB/4B,IAAkB84B,EAAI1kC,KAAK8D,YAC1D4gC,EAAIE,eAER,CACF,EAWAz8C,EAAOg8C,eAAiB,SAAwBr9B,GAE9C,GAAI7e,KAAK47C,YAAa,CACpB57C,KAAK47C,YAAYe,gBACjB,IAAIC,EAAkB58C,KAAKusB,WAE3B,IAAKtrB,MAAMyC,QAAQk5C,GACjB,OAGF,IAAIC,EAAiBD,EAAgBtoC,QAAO,SAAUyY,GACpD,OAAOA,EAAUhV,OAAS8G,EAAMrH,MAClC,IAAG,GAEH,IAAKqlC,EACH,OAK4B,4BAA1BA,EAAexzC,QACjBrJ,KAAK47C,YAAYj+B,OAErB,CACF,EAWAzd,EAAOqvB,cAAgB,SAAuB1Q,GAExC,eAAmBA,EAAO,SAAW,eAAmBA,EAAO,SACjEA,EAAM4E,iBACN5E,EAAMmF,kBACNhkB,KAAKi0C,gBACI,eAAmBp1B,EAAO,UAAY,eAAmBA,EAAO,SACzEA,EAAM4E,iBACN5E,EAAMmF,kBACNhkB,KAAKg0C,WAET,EAMA9zC,EAAO+zC,YAAc,WACnB,IAAI6I,EAAY,OAEW14C,IAAvBpE,KAAK87C,gBACPgB,EAAY98C,KAAK87C,cAAgB,GAGnC97C,KAAK2d,MAAMm/B,EACb,EAMA58C,EAAO8zC,SAAW,WAChB,IAAI8I,EAAY,OAEW14C,IAAvBpE,KAAK87C,gBACPgB,EAAY98C,KAAK87C,cAAgB,GAGnC97C,KAAK2d,MAAMm/B,EACb,EASA58C,EAAOyd,MAAQ,SAAeqB,QACf,IAATA,IACFA,EAAO,GAGT,IAAIuN,EAAWvsB,KAAKusB,WAAW1sB,QACf0sB,EAASjuB,QAAUiuB,EAAS,GAAGvQ,SAAS,mBAGtDuQ,EAASja,QAGPia,EAASjuB,OAAS,IAChB0gB,EAAO,EACTA,EAAO,EACEA,GAAQuN,EAASjuB,SAC1B0gB,EAAOuN,EAASjuB,OAAS,GAG3B0B,KAAK87C,cAAgB98B,EACrBuN,EAASvN,GAAM+J,IAAIpL,QAEvB,EAEOg+B,CACT,CAjSwB,CAiStBxxB,IAEFA,GAAYmH,kBAAkB,OAAQqqB,IAQtC,IAAIoB,GAA0B,SAAUvoB,GAYtC,SAASuoB,EAAW37B,EAAQvd,GAC1B,IAAIijB,OAEY,IAAZjjB,IACFA,EAAU,CAAC,IAGbijB,EAAQ0N,EAAWzzB,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAC5C47C,YAAc,IAAIjM,GAAOvuB,EAAQvd,GAEvCijB,EAAM80B,YAAYvlB,YAAYvP,EAAM+jB,cAEpC/jB,EAAM80B,YAAY7yB,IAAI1N,aAAa,gBAAiB,QAGpD,IAAI2hC,EAAcrN,GAAOxvC,UAAU6tB,gBACnClH,EAAM80B,YAAY7yB,IAAI1M,UAAYyK,EAAMkH,gBAAkB,IAAMgvB,EAEhEl2B,EAAM80B,YAAYn/B,YAAY,eAE9BqK,EAAMgG,SAAShG,EAAM80B,aAErB90B,EAAMukB,SAENvkB,EAAMmkB,UAAW,EAEjB,IAAIR,EAAc,SAAqB1nC,GACrC,OAAO+jB,EAAM2jB,YAAY1nC,EAC3B,EA8BA,OA5BA+jB,EAAMm2B,iBAAmB,SAAUl6C,GACjC,OAAO+jB,EAAMo2B,gBAAgBn6C,EAC/B,EAEA+jB,EAAM1mB,GAAG0mB,EAAM80B,YAAa,MAAOnR,GAEnC3jB,EAAM1mB,GAAG0mB,EAAM80B,YAAa,QAASnR,GAErC3jB,EAAM1mB,GAAG0mB,EAAM80B,YAAa,WAAW,SAAU74C,GAC/C,OAAO+jB,EAAMyI,cAAcxsB,EAC7B,IAEA+jB,EAAM1mB,GAAG0mB,EAAM80B,YAAa,cAAc,WACxC90B,EAAMxK,SAAS,aAEfwK,EAAMq2B,KAAK/uB,OAEXhuB,GAAG,IAAU,QAAS0mB,EAAMm2B,iBAC9B,IAEAn2B,EAAM1mB,GAAG,cAAc,SAAU2C,GAC/B,OAAO+jB,EAAMs2B,iBAAiBr6C,EAChC,IAEA+jB,EAAM1mB,GAAG,WAAW,SAAU2C,GAC5B,OAAO+jB,EAAMu2B,qBAAqBt6C,EACpC,IAEO+jB,CACT,EAtEA,aAAei2B,EAAYvoB,GA4E3B,IAAIt0B,EAAS68C,EAAW58C,UA4WxB,OA1WAD,EAAOmrC,OAAS,WACd,IAAI8R,EAAOn9C,KAAKs9C,aAEZt9C,KAAKm9C,OACPn9C,KAAKm9C,KAAK97C,UACVrB,KAAKigB,YAAYjgB,KAAKm9C,OAGxBn9C,KAAKm9C,KAAOA,EACZn9C,KAAK8sB,SAASqwB,GAQdn9C,KAAK08C,gBAAiB,EACtB18C,KAAK47C,YAAY7yB,IAAI1N,aAAa,gBAAiB,SAE/Crb,KAAKu9C,OAASv9C,KAAKu9C,MAAMj/C,QAAU0B,KAAKw9C,gBAC1Cx9C,KAAKquB,OACLruB,KAAKm9C,KAAK7wB,WAAWnP,gBAAgB,UAErCnd,KAAKouB,OACLpuB,KAAKm9C,KAAK7wB,WAAWjR,aAAa,OAAQ,QAE9C,EASAnb,EAAOo9C,WAAa,WAClB,IAAIH,EAAO,IAAIxB,GAAK37C,KAAKuqB,QAAS,CAChCsxB,WAAY77C,OAad,GAFAA,KAAKw9C,eAAiB,EAElBx9C,KAAK0qB,SAAS+yB,MAAO,CACvB,IAAIC,EAAU7iC,GAAS,KAAM,CAC3BwB,UAAW,iBACXf,YAAaoO,GAAc1pB,KAAK0qB,SAAS+yB,OACzCroB,UAAW,IAETuoB,EAAiB,IAAIxzB,GAAYnqB,KAAKuqB,QAAS,CACjDxS,GAAI2lC,IAENP,EAAKd,QAAQsB,EACf,CAIA,GAFA39C,KAAKu9C,MAAQv9C,KAAK49C,cAEd59C,KAAKu9C,MAEP,IAAK,IAAIh/C,EAAI,EAAGA,EAAIyB,KAAKu9C,MAAMj/C,OAAQC,IACrC4+C,EAAKd,QAAQr8C,KAAKu9C,MAAMh/C,IAI5B,OAAO4+C,CACT,EAQAj9C,EAAO09C,YAAc,WAAwB,EAS7C19C,EAAO2a,SAAW,WAChB,OAAO2Z,EAAWr0B,UAAU0a,SAAS9Z,KAAKf,KAAM,MAAO,CACrDqc,UAAWrc,KAAK69C,wBACf,CAAC,EACN,EASA39C,EAAO29C,qBAAuB,WAC5B,IAAIC,EAAkB,kBAUtB,OAR6B,IAAzB99C,KAAK0qB,SAASywB,OAChB2C,GAAmB,UAEnBA,GAAmB,SAKd,mBAAqBA,EAAkB,IAD5BnO,GAAOxvC,UAAU6tB,gBAC+B,IAAMwG,EAAWr0B,UAAU6tB,cAAcjtB,KAAKf,KAClH,EASAE,EAAO8tB,cAAgB,WACrB,IAAI8vB,EAAkB,kBAQtB,OAN6B,IAAzB99C,KAAK0qB,SAASywB,OAChB2C,GAAmB,UAEnBA,GAAmB,SAGd,mBAAqBA,EAAkB,IAAMtpB,EAAWr0B,UAAU6tB,cAAcjtB,KAAKf,KAC9F,EAiBAE,EAAOm2B,YAAc,SAAqBjuB,EAAM2P,GAK9C,YAJW,IAAPA,IACFA,EAAK/X,KAAK47C,YAAY7jC,MAGjB/X,KAAK47C,YAAYvlB,YAAYjuB,EAAM2P,EAC5C,EAMA7X,EAAOmB,QAAU,WACfrB,KAAKo9C,mBAEL5oB,EAAWr0B,UAAUkB,QAAQN,KAAKf,KACpC,EAcAE,EAAOuqC,YAAc,SAAqB5rB,GACpC7e,KAAK08C,eACP18C,KAAK28C,gBAEL38C,KAAK+9C,aAET,EAWA79C,EAAOk9C,iBAAmB,SAA0Bv+B,GAClD7e,KAAKyc,YAAY,aACjBjc,GAAI,IAAU,QAASR,KAAKi9C,iBAC9B,EAMA/8C,EAAOyd,MAAQ,WACb3d,KAAK47C,YAAYj+B,OACnB,EAMAzd,EAAOovB,KAAO,WACZtvB,KAAK47C,YAAYtsB,MACnB,EAYApvB,EAAOqvB,cAAgB,SAAuB1Q,GAExC,eAAmBA,EAAO,QAAU,eAAmBA,EAAO,QAC5D7e,KAAK08C,gBACP18C,KAAK28C,gBAIF,eAAmB99B,EAAO,SAC7BA,EAAM4E,iBAENzjB,KAAK47C,YAAYj+B,WAGV,eAAmBkB,EAAO,OAAS,eAAmBA,EAAO,WACjE7e,KAAK08C,iBACR79B,EAAM4E,iBACNzjB,KAAK+9C,eAGX,EAYA79C,EAAOg9C,gBAAkB,SAAyBr+B,IAE5C,eAAmBA,EAAO,QAAU,eAAmBA,EAAO,SAChE7e,KAAKyc,YAAY,YAErB,EAWAvc,EAAO89C,sBAAwB,SAA+Bn/B,GAC5D7e,KAAKq9C,qBAAqBx+B,EAC5B,EAYA3e,EAAOm9C,qBAAuB,SAA8Bx+B,IAEtD,eAAmBA,EAAO,QAAU,eAAmBA,EAAO,UAC5D7e,KAAK08C,gBACP18C,KAAK28C,gBAIF,eAAmB99B,EAAO,SAC7BA,EAAM4E,iBAENzjB,KAAK47C,YAAYj+B,SAGvB,EAMAzd,EAAO69C,YAAc,WACnB,GAAI/9C,KAAKirC,SAAU,CAOjB,GANAjrC,KAAK08C,gBAAiB,EACtB18C,KAAKm9C,KAAK/uB,OACVpuB,KAAKm9C,KAAK7uB,cACVtuB,KAAK47C,YAAY7yB,IAAI1N,aAAa,gBAAiB,QAG/CvB,IAAUU,KAEZ,OAGFxa,KAAKm9C,KAAKx/B,OACZ,CACF,EAMAzd,EAAOy8C,cAAgB,WACjB38C,KAAKirC,WACPjrC,KAAK08C,gBAAiB,EACtB18C,KAAKm9C,KAAK5uB,gBACVvuB,KAAKm9C,KAAK9uB,OACVruB,KAAK47C,YAAY7yB,IAAI1N,aAAa,gBAAiB,SAEvD,EAMAnb,EAAO2W,QAAU,WACf7W,KAAK28C,gBACL38C,KAAKirC,UAAW,EAChBjrC,KAAKsc,SAAS,gBACdtc,KAAK47C,YAAY/kC,SACnB,EAMA3W,EAAO4W,OAAS,WACd9W,KAAKirC,UAAW,EAChBjrC,KAAKyc,YAAY,gBACjBzc,KAAK47C,YAAY9kC,QACnB,EAEOimC,CACT,CA1b8B,CA0b5B5yB,IAEFA,GAAYmH,kBAAkB,aAAcyrB,IAQ5C,IAAIkB,GAA2B,SAAUC,GAYvC,SAASD,EAAY78B,EAAQvd,GAC3B,IAAIijB,EAEA2Q,EAAS5zB,EAAQ4zB,OAOrB,IANA3Q,EAAQo3B,EAAYn9C,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAEzCu9C,MAAMj/C,QAAU,GACxBwoB,EAAMuH,QAGHoJ,EACH,OAAO,aAAuB3Q,GAGhC,IAAIq3B,EAAgB/3B,IAAK,aAAuBU,GAAQA,EAAMukB,QAa9D,OAZA5T,EAAOnS,iBAAiB,cAAe64B,GACvC1mB,EAAOnS,iBAAiB,WAAY64B,GACpC1mB,EAAOnS,iBAAiB,cAAe64B,GAEvCr3B,EAAMyD,QAAQnqB,GAAG,QAAS+9C,GAE1Br3B,EAAMyD,QAAQnqB,GAAG,WAAW,WAC1Bq3B,EAAO5U,oBAAoB,cAAes7B,GAC1C1mB,EAAO5U,oBAAoB,WAAYs7B,GACvC1mB,EAAO5U,oBAAoB,cAAes7B,EAC5C,IAEOr3B,CACT,CAEA,OAzCA,aAAem3B,EAAaC,GAyCrBD,CACT,CA3C+B,CA2C7BlB,IAEF5yB,GAAYmH,kBAAkB,cAAe2sB,IAa7C,IAAIG,GAAW,CAAC,MAAO,MAAO,KAAM,OAAQ,QAAS,QAQjDC,GAAwB,SAAUjT,GAapC,SAASiT,EAASj9B,EAAQvd,GACxB,IAAIijB,EAmBJ,OAjBAA,EAAQskB,EAAoBrqC,KAAKf,KAAMohB,EAAQvd,IAAY7D,MACrDs+C,WAAaz6C,EAAQy6C,WAC3Bx3B,EAAMy3B,YAAc16C,EAAQg1B,WAAY,EACxC/R,EAAM03B,gBAAkB36C,EAAQ26C,gBAEhC13B,EAAM+R,SAAS/R,EAAMy3B,aAEjBz3B,EAAMw3B,WACJx3B,EAAM03B,gBACR13B,EAAMiC,IAAI1N,aAAa,OAAQ,oBAE/ByL,EAAMiC,IAAI1N,aAAa,OAAQ,iBAGjCyL,EAAMiC,IAAI1N,aAAa,OAAQ,YAG1ByL,CACT,EAjCA,aAAeu3B,EAAUjT,GAmDzB,IAAIlrC,EAASm+C,EAASl+C,UAgFtB,OA9EAD,EAAO2a,SAAW,SAAoBxa,EAAMm7B,EAAOle,GAEjDtd,KAAK+qC,gBAAiB,EAEtB,IAAIhzB,EAAKqzB,EAAoBjrC,UAAU0a,SAAS9Z,KAAKf,KAAM,KAAM,GAAO,CACtEqc,UAAW,gBACX+Y,UAAW,GACVoG,GAAQle,GAOX,OAJAvF,EAAG2T,aAAa7Q,GAAS,OAAQ,CAC/BwB,UAAW,qBACXf,YAAatb,KAAK4rB,SAAS5rB,KAAK0qB,SAAS2K,SACvCtd,EAAGmf,cAAc,0BACdnf,CACT,EAYA7X,EAAOqvB,cAAgB,SAAuB1Q,GACvCu/B,GAASzwB,MAAK,SAAUlqB,GAC3B,OAAO,eAAmBob,EAAOpb,EACnC,KAEE2nC,EAAoBjrC,UAAUovB,cAAcxuB,KAAKf,KAAM6e,EAE3D,EAcA3e,EAAOuqC,YAAc,SAAqB5rB,GACxC7e,KAAK64B,UAAS,EAChB,EASA34B,EAAO24B,SAAW,SAAkB4lB,GAC9Bz+C,KAAKs+C,aACHG,GACFz+C,KAAKsc,SAAS,gBACdtc,KAAK+oB,IAAI1N,aAAa,eAAgB,QAGtCrb,KAAKq2B,YAAY,cACjBr2B,KAAKu+C,aAAc,IAEnBv+C,KAAKyc,YAAY,gBACjBzc,KAAK+oB,IAAI1N,aAAa,eAAgB,SAEtCrb,KAAKq2B,YAAY,IACjBr2B,KAAKu+C,aAAc,GAGzB,EAEOF,CACT,CArI4B,CAqI1BlU,IAEFhgB,GAAYmH,kBAAkB,WAAY+sB,IAQ1C,IAAIK,GAAiC,SAAUC,GAY7C,SAASD,EAAkBt9B,EAAQvd,GACjC,IAAIijB,EAEAyM,EAAQ1vB,EAAQ0vB,MAChBkE,EAASrW,EAAO8S,aAEpBrwB,EAAQwxB,MAAQ9B,EAAM8B,OAAS9B,EAAMxH,UAAY,UACjDloB,EAAQg1B,SAA0B,YAAftF,EAAM6J,MACzBtW,EAAQ63B,EAAU59C,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAC3CuzB,MAAQA,EAGdzM,EAAM83B,OAAS/6C,EAAQ+6C,OAAS,CAAC/6C,EAAQu1B,MAAQtS,EAAMyM,MAAM6F,OAAO9kB,OAAOmF,SAE3E,IAiCMoF,EAjCFggC,EAAgB,WAClB,IAAK,IAAIppC,EAAO3U,UAAUxC,OAAQ0C,EAAO,IAAIC,MAAMwU,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E1U,EAAK0U,GAAQ5U,UAAU4U,GAGzBoR,EAAMg4B,mBAAmB19C,OAAM,aAAuB0lB,GAAQ9lB,EAChE,EAEI+9C,EAAgC,WAClC,IAAK,IAAIhoC,EAAQjW,UAAUxC,OAAQ0C,EAAO,IAAIC,MAAM8V,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFhW,EAAKgW,GAASlW,UAAUkW,GAG1B8P,EAAMk4B,6BAA6B59C,OAAM,aAAuB0lB,GAAQ9lB,EAC1E,GAEAogB,EAAOhhB,GAAG,CAAC,YAAa,mBAAoBy+C,GAC5CpnB,EAAOnS,iBAAiB,SAAUu5B,GAClCpnB,EAAOnS,iBAAiB,yBAA0By5B,GAElDj4B,EAAM1mB,GAAG,WAAW,WAClBghB,EAAO5gB,IAAI,CAAC,YAAa,mBAAoBq+C,GAC7CpnB,EAAO5U,oBAAoB,SAAUg8B,GACrCpnB,EAAO5U,oBAAoB,yBAA0Bk8B,EACvD,SAQwB36C,IAApBqzB,EAAOwnB,WAGTn4B,EAAM1mB,GAAG,CAAC,MAAO,UAAU,WACzB,GAA8B,iBAAnB,UAET,IACEye,EAAQ,IAAI,WAAe,SAC7B,CAAE,MAAOhd,GACT,CAGGgd,IACHA,EAAQ,gBAAqB,UACvBqgC,UAAU,UAAU,GAAM,GAGlCznB,EAAO7Q,cAAc/H,EACvB,IAMF,OAFAiI,EAAMg4B,qBAECh4B,CACT,EAlFA,aAAe43B,EAAmBC,GAgGlC,IAAIz+C,EAASw+C,EAAkBv+C,UA2E/B,OAzEAD,EAAOuqC,YAAc,SAAqB5rB,GACxC,IAAIsgC,EAAiBn/C,KAAKuzB,MACtBkE,EAASz3B,KAAKuqB,QAAQ2J,aAI1B,GAFAyqB,EAAUx+C,UAAUsqC,YAAY1pC,KAAKf,KAAM6e,GAEtC4Y,EAIL,IAAK,IAAIl5B,EAAI,EAAGA,EAAIk5B,EAAOn5B,OAAQC,IAAK,CACtC,IAAIg1B,EAAQkE,EAAOl5B,IAGqB,IAApCyB,KAAK4+C,MAAMl+C,QAAQ6yB,EAAM6F,QAMzB7F,IAAU4rB,EACO,YAAf5rB,EAAM6J,OACR7J,EAAM6J,KAAO,WAIS,aAAf7J,EAAM6J,OACf7J,EAAM6J,KAAO,YAEjB,CACF,EAWAl9B,EAAO4+C,mBAAqB,SAA4BjgC,GACtD,IAAIugC,EAAuC,YAApBp/C,KAAKuzB,MAAM6J,KAG9BgiB,IAAqBp/C,KAAKu+C,aAC5Bv+C,KAAK64B,SAASumB,EAElB,EAEAl/C,EAAO8+C,6BAA+B,SAAsCngC,GAC1E,GAAwB,YAApB7e,KAAKuzB,MAAM6J,KAAoB,CACjC,IAAIqQ,EAAmBztC,KAAKuqB,QAAQijB,OAAOC,iBAE3C,GAAIA,GAAoBA,EAAiBlV,SAAWkV,EAAiB1hB,WAAa/rB,KAAKuzB,MAAMxH,UAAY0hB,EAAiBrU,OAASp5B,KAAKuzB,MAAM6F,KAC5I,OAGFp5B,KAAKuqB,QAAQijB,OAAOC,iBAAmB,CACrClV,SAAS,EACTxM,SAAU/rB,KAAKuzB,MAAMxH,SACrBqN,KAAMp5B,KAAKuzB,MAAM6F,KAErB,CACF,EAEAl5B,EAAOmB,QAAU,WAEfrB,KAAKuzB,MAAQ,KAEborB,EAAUx+C,UAAUkB,QAAQN,KAAKf,KACnC,EAEO0+C,CACT,CA7KqC,CA6KnCL,IAEFl0B,GAAYmH,kBAAkB,oBAAqBotB,IAQnD,IAAIW,GAAoC,SAAUC,GAYhD,SAASD,EAAqBj+B,EAAQvd,GA4BpC,OAzBAA,EAAQ0vB,MAAQ,CACdnS,OAAQA,EAIRgY,KAAMv1B,EAAQu1B,KACdwlB,MAAO/6C,EAAQ+6C,MACf,SAAW,EACXxhB,KAAM,YAGHv5B,EAAQ+6C,QACX/6C,EAAQ+6C,MAAQ,CAAC/6C,EAAQu1B,OAGvBv1B,EAAQwxB,MACVxxB,EAAQ0vB,MAAM8B,MAAQxxB,EAAQwxB,MAE9BxxB,EAAQ0vB,MAAM8B,MAAQxxB,EAAQ+6C,MAAMhiC,KAAK,SAAW,OAItD/Y,EAAQy6C,YAAa,EAErBz6C,EAAQ26C,iBAAkB,EACnBc,EAAmBv+C,KAAKf,KAAMohB,EAAQvd,IAAY7D,IAC3D,EAxCA,aAAeq/C,EAAsBC,GAiDrC,IAAIp/C,EAASm/C,EAAqBl/C,UA0ClC,OAxCAD,EAAO4+C,mBAAqB,SAA4BjgC,GAItD,IAHA,IAAI4Y,EAASz3B,KAAKohB,SAAS8S,aACvBkrB,GAAmB,EAEd7gD,EAAI,EAAGw5B,EAAIN,EAAOn5B,OAAQC,EAAIw5B,EAAGx5B,IAAK,CAC7C,IAAIg1B,EAAQkE,EAAOl5B,GAEnB,GAAIyB,KAAK0qB,SAASk0B,MAAMl+C,QAAQ6yB,EAAM6F,OAAS,GAAoB,YAAf7F,EAAM6J,KAAoB,CAC5EgiB,GAAmB,EACnB,KACF,CACF,CAIIA,IAAqBp/C,KAAKu+C,aAC5Bv+C,KAAK64B,SAASumB,EAElB,EAEAl/C,EAAO8+C,6BAA+B,SAAsCngC,GAI1E,IAHA,IAAI4Y,EAASz3B,KAAKohB,SAAS8S,aACvBqrB,GAAY,EAEPhhD,EAAI,EAAGw5B,EAAIN,EAAOn5B,OAAQC,EAAIw5B,EAAGx5B,IAAK,CAC7C,IAAIg1B,EAAQkE,EAAOl5B,GAEnB,GAAI,CAAC,WAAY,eAAgB,aAAamC,QAAQ6yB,EAAM6F,OAAS,GAAoB,YAAf7F,EAAM6J,KAAoB,CAClGmiB,GAAY,EACZ,KACF,CACF,CAEIA,IACFv/C,KAAKuqB,QAAQijB,OAAOC,iBAAmB,CACrClV,SAAS,GAGf,EAEO8mB,CACT,CA7FwC,CA6FtCX,IAEFv0B,GAAYmH,kBAAkB,uBAAwB+tB,IAQtD,IAAIG,GAA+B,SAAUC,GAY3C,SAASD,EAAgBp+B,EAAQvd,GAM/B,YALgB,IAAZA,IACFA,EAAU,CAAC,GAGbA,EAAQ4zB,OAASrW,EAAO8S,aACjBurB,EAAa1+C,KAAKf,KAAMohB,EAAQvd,IAAY7D,IACrD,CAiEA,OAnFA,aAAew/C,EAAiBC,GA8BnBD,EAAgBr/C,UAEtBy9C,YAAc,SAAqBL,EAAOmC,GAW/C,IAAIrqB,OAVU,IAAVkoB,IACFA,EAAQ,SAGY,IAAlBmC,IACFA,EAAgBhB,IAOd1+C,KAAK2/C,SACPtqB,EAAQr1B,KAAK2/C,OAAS,QAIxBpC,EAAMh9C,KAAK,IAAI8+C,GAAqBr/C,KAAKuqB,QAAS,CAChDq0B,MAAO5+C,KAAK4/C,OACZxmB,KAAMp5B,KAAK6/C,MACXxqB,MAAOA,KAETr1B,KAAKw9C,gBAAkB,EACvB,IAAI/lB,EAASz3B,KAAKuqB,QAAQ2J,aAErBjzB,MAAMyC,QAAQ1D,KAAK4/C,UACtB5/C,KAAK4/C,OAAS,CAAC5/C,KAAK6/C,QAGtB,IAAK,IAAIthD,EAAI,EAAGA,EAAIk5B,EAAOn5B,OAAQC,IAAK,CACtC,IAAIg1B,EAAQkE,EAAOl5B,GAEnB,GAAIyB,KAAK4/C,OAAOl/C,QAAQ6yB,EAAM6F,OAAS,EAAG,CACxC,IAAIpa,EAAO,IAAI0gC,EAAc1/C,KAAKuqB,QAAS,CACzCgJ,MAAOA,EACPqrB,MAAO5+C,KAAK4/C,OACZxmB,KAAMp5B,KAAK6/C,MAEXvB,YAAY,EAEZE,iBAAiB,IAEnBx/B,EAAK1C,SAAS,OAASiX,EAAM6F,KAAO,cACpCmkB,EAAMh9C,KAAKye,EACb,CACF,CAEA,OAAOu+B,CACT,EAEOiC,CACT,CArFmC,CAqFjCvB,IAEF9zB,GAAYmH,kBAAkB,kBAAmBkuB,IAQjD,IAAIM,GAAqC,SAAUnB,GAYjD,SAASmB,EAAsB1+B,EAAQvd,GACrC,IAAIijB,EAEAyM,EAAQ1vB,EAAQ0vB,MAChBE,EAAM5vB,EAAQ4vB,IACd0K,EAAc/c,EAAO+c,cASzB,OAPAt6B,EAAQy6C,YAAa,EACrBz6C,EAAQ26C,iBAAkB,EAC1B36C,EAAQwxB,MAAQ5B,EAAIrrB,KACpBvE,EAAQg1B,SAAWpF,EAAIC,WAAayK,GAAeA,EAAc1K,EAAIE,SACrE7M,EAAQ63B,EAAU59C,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAC3CuzB,MAAQA,EACdzM,EAAM2M,IAAMA,EACL3M,CACT,CAsBA,OAhDA,aAAeg5B,EAAuBnB,GAwCzBmB,EAAsB3/C,UAE5BsqC,YAAc,SAAqB5rB,GACxC8/B,EAAUx+C,UAAUsqC,YAAY1pC,KAAKf,MAErCA,KAAKuqB,QAAQ4T,YAAYn+B,KAAKyzB,IAAIC,UACpC,EAEOosB,CACT,CAlDyC,CAkDvCzB,IAEFl0B,GAAYmH,kBAAkB,wBAAyBwuB,IAUvD,IAAIC,GAA8B,SAAUC,GAe1C,SAASD,EAAe3+B,EAAQvd,EAASwmB,GACvC,IAAIvD,EAUJ,OARAA,EAAQk5B,EAAiBj/C,KAAKf,KAAMohB,EAAQvd,EAASwmB,IAAUrqB,MAEzDigD,mBAAqB,WACzBn5B,EAAMy2B,MAAM1+C,SAAQ,SAAUmgB,GAC5BA,EAAK6Z,SAAS/R,EAAMo5B,OAAOziB,WAAW,KAAOze,EAAKyU,IACpD,GACF,EAEO3M,CACT,EA1BA,aAAei5B,EAAgBC,GAmC/B,IAAI9/C,EAAS6/C,EAAe5/C,UAkK5B,OAhKAD,EAAO8tB,cAAgB,WACrB,MAAO,uBAAyBgyB,EAAiB7/C,UAAU6tB,cAAcjtB,KAAKf,KAChF,EAEAE,EAAO29C,qBAAuB,WAC5B,MAAO,uBAAyBmC,EAAiB7/C,UAAU09C,qBAAqB98C,KAAKf,KACvF,EAaAE,EAAOmrC,OAAS,SAAgBxsB,GAC9B,IAAIA,IAASA,EAAM0U,OAA8B,aAArB1U,EAAM0U,MAAM6F,KAAxC,CAIA,IAAI7F,EAAQvzB,KAAKmgD,oBAEb5sB,IAAUvzB,KAAKkgD,QACjBlgD,KAAKogD,SAAS7sB,GAEdysB,EAAiB7/C,UAAUkrC,OAAOtqC,KAAKf,SAC7BA,KAAKu9C,OAAShqB,GAASA,EAAMC,MAAQD,EAAMC,KAAKl1B,SAAW0B,KAAKu9C,MAAMj/C,SAEhF0hD,EAAiB7/C,UAAUkrC,OAAOtqC,KAAKf,KAVzC,CAYF,EAUAE,EAAOkgD,SAAW,SAAkB7sB,GAClC,GAAIvzB,KAAKkgD,SAAW3sB,EAApB,CASA,GALKvzB,KAAKqgD,iBACRrgD,KAAKqgD,eAAiBrgD,KAAKqrC,OAAOjlB,KAAKpmB,OAIrCA,KAAKkgD,OAAQ,CACf,IAAII,EAAoBtgD,KAAKuqB,QAAQoZ,qBAAqBhK,wBAAwB35B,KAAKkgD,QAEnFI,GACFA,EAAkBz9B,oBAAoB,OAAQ7iB,KAAKqgD,gBAGrDrgD,KAAKkgD,OAAOr9B,oBAAoB,YAAa7iB,KAAKigD,oBAClDjgD,KAAKkgD,OAAS,IAChB,CAIA,GAFAlgD,KAAKkgD,OAAS3sB,EAEVvzB,KAAKkgD,OAAQ,CACflgD,KAAKkgD,OAAO9iB,KAAO,SAEnB,IAAImjB,EAAqBvgD,KAAKuqB,QAAQoZ,qBAAqBhK,wBAAwB35B,KAAKkgD,QAEpFK,GACFA,EAAmBj7B,iBAAiB,OAAQtlB,KAAKqgD,gBAGnDrgD,KAAKkgD,OAAO56B,iBAAiB,YAAatlB,KAAKigD,mBACjD,CA9BA,CA+BF,EASA//C,EAAOigD,kBAAoB,WAGzB,IAFA,IAAI1oB,EAASz3B,KAAKuqB,QAAQ2J,cAAgB,GAEjC31B,EAAIk5B,EAAOn5B,OAAS,EAAGC,GAAK,EAAGA,IAAK,CAE3C,IAAIg1B,EAAQkE,EAAOl5B,GAEnB,GAAIg1B,EAAM6F,OAASp5B,KAAK6/C,MACtB,OAAOtsB,CAEX,CACF,EAUArzB,EAAOsgD,eAAiB,WACtB,OAAIxgD,KAAKkgD,QAAUlgD,KAAKkgD,OAAO7qB,MACtBr1B,KAAKkgD,OAAO7qB,MAGdr1B,KAAK4rB,SAASlC,GAAc1pB,KAAK6/C,OAC1C,EASA3/C,EAAOo9C,WAAa,WAElB,OADAt9C,KAAK0qB,SAAS+yB,MAAQz9C,KAAKwgD,iBACpBR,EAAiB7/C,UAAUm9C,WAAWv8C,KAAKf,KACpD,EASAE,EAAO09C,YAAc,WACnB,IAAIL,EAAQ,GAEZ,IAAKv9C,KAAKkgD,OACR,OAAO3C,EAGT,IAAI/pB,EAAOxzB,KAAKkgD,OAAO1sB,KAEvB,IAAKA,EACH,OAAO+pB,EAGT,IAAK,IAAIh/C,EAAI,EAAGw5B,EAAIvE,EAAKl1B,OAAQC,EAAIw5B,EAAGx5B,IAAK,CAC3C,IAAIk1B,EAAMD,EAAKj1B,GACXkiD,EAAK,IAAIX,GAAsB9/C,KAAKuqB,QAAS,CAC/CgJ,MAAOvzB,KAAKkgD,OACZzsB,IAAKA,IAEP8pB,EAAMh9C,KAAKkgD,EACb,CAEA,OAAOlD,CACT,EAEOwC,CACT,CAvMkC,CAuMhCP,IASFO,GAAe5/C,UAAU0/C,MAAQ,WAQjCE,GAAe5/C,UAAU0qC,aAAe,WACxC1gB,GAAYmH,kBAAkB,iBAAkByuB,IAQhD,IAAIW,GAAkC,SAAUV,GAe9C,SAASU,EAAmBt/B,EAAQvd,EAASwmB,GAC3C,IAAIvD,EAEJA,EAAQk5B,EAAiBj/C,KAAKf,KAAMohB,EAAQvd,EAASwmB,IAAUrqB,KAC/D,IAAIy3B,EAASrW,EAAO8S,aAChB2qB,EAAgBz4B,IAAK,aAAuBU,GAAQA,EAAMg4B,oBAO9D,OANArnB,EAAOnS,iBAAiB,SAAUu5B,GAElC/3B,EAAM1mB,GAAG,WAAW,WAClBq3B,EAAO5U,oBAAoB,SAAUg8B,EACvC,IAEO/3B,CACT,EA3BA,aAAe45B,EAAoBV,GAsCnC,IAAI9/C,EAASwgD,EAAmBvgD,UAsChC,OApCAD,EAAO4+C,mBAAqB,SAA4BjgC,GAItD,IAHA,IAAI4Y,EAASz3B,KAAKohB,SAAS8S,aACvBlR,GAAW,EAENzkB,EAAI,EAAGw5B,EAAIN,EAAOn5B,OAAQC,EAAIw5B,EAAGx5B,IAAK,CAC7C,IAAIg1B,EAAQkE,EAAOl5B,GAEnB,GAAIg1B,EAAM6F,OAASp5B,KAAK6/C,OAAwB,YAAftsB,EAAM6J,KAAoB,CACzDpa,GAAW,EACX,KACF,CACF,CAGIA,EACFhjB,KAAK6W,UAEL7W,KAAK8W,QAET,EASA5W,EAAO8tB,cAAgB,WACrB,MAAO,2BAA6BgyB,EAAiB7/C,UAAU6tB,cAAcjtB,KAAKf,KACpF,EAEAE,EAAO29C,qBAAuB,WAC5B,MAAO,2BAA6BmC,EAAiB7/C,UAAU09C,qBAAqB98C,KAAKf,KAC3F,EAEO0gD,CACT,CA9EsC,CA8EpClB,IASFkB,GAAmBvgD,UAAU0/C,MAAQ,eAQrCa,GAAmBvgD,UAAU0qC,aAAe,eAC5C1gB,GAAYmH,kBAAkB,qBAAsBovB,IAQpD,IAAIC,GAA+B,SAAUX,GAe3C,SAASW,EAAgBv/B,EAAQvd,EAASwmB,GACxC,OAAO21B,EAAiBj/C,KAAKf,KAAMohB,EAAQvd,EAASwmB,IAAUrqB,IAChE,EAhBA,aAAe2gD,EAAiBX,GAyBhC,IAAI9/C,EAASygD,EAAgBxgD,UAU7B,OARAD,EAAO8tB,cAAgB,WACrB,MAAO,wBAA0BgyB,EAAiB7/C,UAAU6tB,cAAcjtB,KAAKf,KACjF,EAEAE,EAAO29C,qBAAuB,WAC5B,MAAO,wBAA0BmC,EAAiB7/C,UAAU09C,qBAAqB98C,KAAKf,KACxF,EAEO2gD,CACT,CArCmC,CAqCjCnB,IASFmB,GAAgBxgD,UAAU0/C,MAAQ,YAQlCc,GAAgBxgD,UAAU0qC,aAAe,YACzC1gB,GAAYmH,kBAAkB,kBAAmBqvB,IAQjD,IAAIC,GAAuC,SAAUtB,GAYnD,SAASsB,EAAwBx/B,EAAQvd,GACvC,IAAIijB,EAmBJ,OAjBAjjB,EAAQ0vB,MAAQ,CACdnS,OAAQA,EACRgY,KAAMv1B,EAAQu1B,KACd/D,MAAOxxB,EAAQu1B,KAAO,YACtBklB,YAAY,EACZ,SAAW,EACXlhB,KAAM,YAGRv5B,EAAQy6C,YAAa,EACrBz6C,EAAQwF,KAAO,2BACfyd,EAAQw4B,EAAmBv+C,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAEpDsc,SAAS,0BAEfwK,EAAMuP,YAAY,WAAaxyB,EAAQu1B,KAAO,oBAEvCtS,CACT,CAoBA,OApDA,aAAe85B,EAAyBtB,GA8C3BsB,EAAwBzgD,UAE9BsqC,YAAc,SAAqB5rB,GACxC7e,KAAKohB,SAASqL,SAAS,qBAAqB9lB,MAC9C,EAEOi6C,CACT,CAtD2C,CAsDzClC,IAEFv0B,GAAYmH,kBAAkB,0BAA2BsvB,IAQzD,IAAIC,GAA8B,SAAUb,GAe1C,SAASa,EAAez/B,EAAQvd,EAASwmB,GACvC,OAAO21B,EAAiBj/C,KAAKf,KAAMohB,EAAQvd,EAASwmB,IAAUrqB,IAChE,EAhBA,aAAe6gD,EAAgBb,GAyB/B,IAAI9/C,EAAS2gD,EAAe1gD,UA8B5B,OA5BAD,EAAO8tB,cAAgB,WACrB,MAAO,uBAAyBgyB,EAAiB7/C,UAAU6tB,cAAcjtB,KAAKf,KAChF,EAEAE,EAAO29C,qBAAuB,WAC5B,MAAO,uBAAyBmC,EAAiB7/C,UAAU09C,qBAAqB98C,KAAKf,KACvF,EASAE,EAAO09C,YAAc,WACnB,IAAIL,EAAQ,GASZ,OAPMv9C,KAAKohB,SAAS0b,OAAS98B,KAAKohB,SAAS0b,MAAMmE,2BAA6BjhC,KAAKohB,SAASqL,SAAS,uBACnG8wB,EAAMh9C,KAAK,IAAIqgD,GAAwB5gD,KAAKuqB,QAAS,CACnD6O,KAAMp5B,KAAK6/C,SAEb7/C,KAAKw9C,gBAAkB,GAGlBwC,EAAiB7/C,UAAUy9C,YAAY78C,KAAKf,KAAMu9C,EAC3D,EAEOsD,CACT,CAzDkC,CAyDhCrB,IASFqB,GAAe1gD,UAAU0/C,MAAQ,WAQjCgB,GAAe1gD,UAAU0qC,aAAe,WACxC1gB,GAAYmH,kBAAkB,iBAAkBuvB,IAShD,IAAIC,GAAgC,SAAUxB,GAG5C,SAASwB,IACP,OAAOxB,EAAmBl+C,MAAMpB,KAAMc,YAAcd,IACtD,CA0BA,OA9BA,aAAe8gD,EAAkBxB,GAMpBwB,EAAiB3gD,UAEvB0a,SAAW,SAAoBxa,EAAMm7B,EAAOle,GACjD,IAAIvF,EAAKunC,EAAmBn/C,UAAU0a,SAAS9Z,KAAKf,KAAMK,EAAMm7B,EAAOle,GAEnEyjC,EAAahpC,EAAGmf,cAAc,uBAgBlC,MAdiC,aAA7Bl3B,KAAK0qB,SAAS6I,MAAM6F,OACtB2nB,EAAWhlC,YAAYlB,GAAS,OAAQ,CACtCwB,UAAW,wBACV,CACD,eAAe,KAEjB0kC,EAAWhlC,YAAYlB,GAAS,OAAQ,CACtCwB,UAAW,mBAGXf,YAAa,IAAMtb,KAAK4rB,SAAS,gBAI9B7T,CACT,EAEO+oC,CACT,CAhCoC,CAgClCpC,IAEFv0B,GAAYmH,kBAAkB,mBAAoBwvB,IAQlD,IAAIE,GAA8B,SAAUhB,GAG1C,SAASgB,EAAe5/B,EAAQvd,GAC9B,IAAIijB,EAiBJ,YAfgB,IAAZjjB,IACFA,EAAU,CAAC,IAGbijB,EAAQk5B,EAAiBj/C,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAGlD2/C,OAAS,YAEX,CAAC,KAAM,QAAS,QAAS,SAASj/C,QAAQomB,EAAMyD,QAAQ02B,YAAc,IACxEn6B,EAAM64B,OAAS,YAGjB74B,EAAM80B,YAAYvlB,YAAY3M,GAAc5C,EAAM64B,SAE3C74B,CACT,EArBA,aAAek6B,EAAgBhB,GA8B/B,IAAI9/C,EAAS8gD,EAAe7gD,UA+B5B,OA7BAD,EAAO8tB,cAAgB,WACrB,MAAO,wBAA0BgyB,EAAiB7/C,UAAU6tB,cAAcjtB,KAAKf,KACjF,EAEAE,EAAO29C,qBAAuB,WAC5B,MAAO,wBAA0BmC,EAAiB7/C,UAAU09C,qBAAqB98C,KAAKf,KACxF,EASAE,EAAO09C,YAAc,WACnB,IAAIL,EAAQ,GAUZ,OARMv9C,KAAKohB,SAAS0b,OAAS98B,KAAKohB,SAAS0b,MAAMmE,2BAA6BjhC,KAAKohB,SAASqL,SAAS,uBACnG8wB,EAAMh9C,KAAK,IAAIqgD,GAAwB5gD,KAAKuqB,QAAS,CACnD6O,KAAMp5B,KAAK2/C,UAEb3/C,KAAKw9C,gBAAkB,GAGzBD,EAAQyC,EAAiB7/C,UAAUy9C,YAAY78C,KAAKf,KAAMu9C,EAAOuD,GAEnE,EAEOE,CACT,CA/DkC,CA+DhCxB,IASFwB,GAAe7gD,UAAUy/C,OAAS,CAAC,WAAY,aAS/CoB,GAAe7gD,UAAU0qC,aAAe,YACxC1gB,GAAYmH,kBAAkB,iBAAkB0vB,IAQhD,IAAIE,GAAkC,SAAUvC,GAY9C,SAASuC,EAAmB9/B,EAAQvd,GAClC,IAAIijB,EAEAyM,EAAQ1vB,EAAQ0vB,MAChBkE,EAASrW,EAAO+/B,cAEpBt9C,EAAQwxB,MAAQ9B,EAAM8B,OAAS9B,EAAMxH,UAAY,UACjDloB,EAAQg1B,SAAWtF,EAAMgF,SACzBzR,EAAQ63B,EAAU59C,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAC3CuzB,MAAQA,EAEdzM,EAAMxK,SAAS,OAASiX,EAAM6F,KAAO,cAErC,IAAIylB,EAAgB,WAClB,IAAK,IAAIppC,EAAO3U,UAAUxC,OAAQ0C,EAAO,IAAIC,MAAMwU,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E1U,EAAK0U,GAAQ5U,UAAU4U,GAGzBoR,EAAMg4B,mBAAmB19C,OAAM,aAAuB0lB,GAAQ9lB,EAChE,EAQA,OANAy2B,EAAOnS,iBAAiB,SAAUu5B,GAElC/3B,EAAM1mB,GAAG,WAAW,WAClBq3B,EAAO5U,oBAAoB,SAAUg8B,EACvC,IAEO/3B,CACT,EAvCA,aAAeo6B,EAAoBvC,GAyCnC,IAAIz+C,EAASghD,EAAmB/gD,UAqEhC,OAnEAD,EAAO2a,SAAW,SAAoBxa,EAAMm7B,EAAOle,GACjD,IAAIvF,EAAK4mC,EAAUx+C,UAAU0a,SAAS9Z,KAAKf,KAAMK,EAAMm7B,EAAOle,GAE1DyjC,EAAahpC,EAAGmf,cAAc,uBAclC,MAZiC,cAA7Bl3B,KAAK0qB,SAAS6I,MAAM6F,OACtB2nB,EAAWhlC,YAAYlB,GAAS,OAAQ,CACtCwB,UAAW,wBACV,CACD,eAAe,KAEjB0kC,EAAWhlC,YAAYlB,GAAS,OAAQ,CACtCwB,UAAW,mBACXf,YAAa,IAAMtb,KAAK4rB,SAAS,oBAI9B7T,CACT,EAcA7X,EAAOuqC,YAAc,SAAqB5rB,GAOxC,GANA8/B,EAAUx+C,UAAUsqC,YAAY1pC,KAAKf,KAAM6e,GAI3C7e,KAAKuzB,MAAMgF,SAAU,EAEjBv4B,KAAKuqB,QAAQuS,MAAMskB,0BAGrB,IAFA,IAAI3pB,EAASz3B,KAAKuqB,QAAQ42B,cAEjB5iD,EAAI,EAAGA,EAAIk5B,EAAOn5B,OAAQC,IAAK,CACtC,IAAIg1B,EAAQkE,EAAOl5B,GAEfg1B,IAAUvzB,KAAKuzB,QAInBA,EAAMgF,QAAUhF,IAAUvzB,KAAKuzB,MACjC,CAEJ,EAWArzB,EAAO4+C,mBAAqB,SAA4BjgC,GACtD7e,KAAK64B,SAAS74B,KAAKuzB,MAAMgF,QAC3B,EAEO2oB,CACT,CAhHsC,CAgHpC7C,IAEFl0B,GAAYmH,kBAAkB,qBAAsB4vB,IAQpD,IAAIG,GAAgC,SAAU5B,GAY5C,SAAS4B,EAAiBjgC,EAAQvd,GAMhC,YALgB,IAAZA,IACFA,EAAU,CAAC,GAGbA,EAAQ4zB,OAASrW,EAAO+/B,cACjB1B,EAAa1+C,KAAKf,KAAMohB,EAAQvd,IAAY7D,IACrD,EAlBA,aAAeqhD,EAAkB5B,GA2BjC,IAAIv/C,EAASmhD,EAAiBlhD,UA2C9B,OAzCAD,EAAO8tB,cAAgB,WACrB,MAAO,oBAAsByxB,EAAat/C,UAAU6tB,cAAcjtB,KAAKf,KACzE,EAEAE,EAAO29C,qBAAuB,WAC5B,MAAO,oBAAsB4B,EAAat/C,UAAU09C,qBAAqB98C,KAAKf,KAChF,EAYAE,EAAO09C,YAAc,SAAqBL,QAC1B,IAAVA,IACFA,EAAQ,IAIVv9C,KAAKw9C,eAAiB,EAGtB,IAFA,IAAI/lB,EAASz3B,KAAKuqB,QAAQ42B,cAEjB5iD,EAAI,EAAGA,EAAIk5B,EAAOn5B,OAAQC,IAAK,CACtC,IAAIg1B,EAAQkE,EAAOl5B,GACnBg/C,EAAMh9C,KAAK,IAAI2gD,GAAmBlhD,KAAKuqB,QAAS,CAC9CgJ,MAAOA,EAEP+qB,YAAY,EAEZE,iBAAiB,IAErB,CAEA,OAAOjB,CACT,EAEO8D,CACT,CAxEoC,CAwElCpD,IASFoD,GAAiBlhD,UAAU0qC,aAAe,cAC1C1gB,GAAYmH,kBAAkB,mBAAoB+vB,IAQlD,IAAIC,GAAoC,SAAU3C,GAYhD,SAAS2C,EAAqBlgC,EAAQvd,GACpC,IAAIijB,EAEAuO,EAAQxxB,EAAQ09C,KAChBA,EAAOhpC,WAAW8c,EAAO,IAc7B,OAZAxxB,EAAQwxB,MAAQA,EAChBxxB,EAAQg1B,SAAW0oB,IAASngC,EAAOogC,eACnC39C,EAAQy6C,YAAa,EACrBz6C,EAAQ26C,iBAAkB,GAC1B13B,EAAQ63B,EAAU59C,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAC3Cq1B,MAAQA,EACdvO,EAAMy6B,KAAOA,EAEbz6B,EAAM1mB,GAAGghB,EAAQ,cAAc,SAAUre,GACvC,OAAO+jB,EAAMukB,OAAOtoC,EACtB,IAEO+jB,CACT,EA9BA,aAAew6B,EAAsB3C,GA4CrC,IAAIz+C,EAASohD,EAAqBnhD,UAqBlC,OAnBAD,EAAOuqC,YAAc,SAAqB5rB,GACxC8/B,EAAUx+C,UAAUsqC,YAAY1pC,KAAKf,MAErCA,KAAKohB,SAASogC,aAAaxhD,KAAKuhD,KAClC,EAWArhD,EAAOmrC,OAAS,SAAgBxsB,GAC9B7e,KAAK64B,SAAS74B,KAAKohB,SAASogC,iBAAmBxhD,KAAKuhD,KACtD,EAEOD,CACT,CAnEwC,CAmEtCjD,IASFiD,GAAqBnhD,UAAUo8C,cAAgB,SAC/CpyB,GAAYmH,kBAAkB,uBAAwBgwB,IAQtD,IAAIG,GAAsC,SAAUvD,GAYlD,SAASuD,EAAuBrgC,EAAQvd,GACtC,IAAIijB,EAsBJ,OApBAA,EAAQo3B,EAAYn9C,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAE7C47C,YAAY7yB,IAAI1N,aAAa,mBAAoByL,EAAM46B,YAE7D56B,EAAM66B,mBAEN76B,EAAM86B,cAEN96B,EAAM1mB,GAAGghB,EAAQ,aAAa,SAAUre,GACtC,OAAO+jB,EAAM66B,iBAAiB5+C,EAChC,IAEA+jB,EAAM1mB,GAAGghB,EAAQ,cAAc,SAAUre,GACvC,OAAO+jB,EAAM86B,YAAY7+C,EAC3B,IAEA+jB,EAAM1mB,GAAGghB,EAAQ,uBAAuB,SAAUre,GAChD,OAAO+jB,EAAM+6B,0BAA0B9+C,EACzC,IAEO+jB,CACT,EAnCA,aAAe26B,EAAwBvD,GA4CvC,IAAIh+C,EAASuhD,EAAuBthD,UAuJpC,OArJAD,EAAO2a,SAAW,WAChB,IAAI9C,EAAKmmC,EAAY/9C,UAAU0a,SAAS9Z,KAAKf,MAS7C,OAPAA,KAAK0hD,WAAa,iCAAmC1hD,KAAK2qB,IAC1D3qB,KAAK8hD,SAAWjnC,GAAS,MAAO,CAC9BwB,UAAW,0BACX7N,GAAIxO,KAAK0hD,WACTpmC,YAAa,OAEfvD,EAAGgE,YAAY/b,KAAK8hD,UACb/pC,CACT,EAEA7X,EAAOmB,QAAU,WACfrB,KAAK8hD,SAAW,KAEhB5D,EAAY/9C,UAAUkB,QAAQN,KAAKf,KACrC,EASAE,EAAO8tB,cAAgB,WACrB,MAAO,qBAAuBkwB,EAAY/9C,UAAU6tB,cAAcjtB,KAAKf,KACzE,EAEAE,EAAO29C,qBAAuB,WAC5B,MAAO,qBAAuBK,EAAY/9C,UAAU09C,qBAAqB98C,KAAKf,KAChF,EAOAE,EAAO09C,YAAc,WAInB,IAHA,IAAImE,EAAQ/hD,KAAKgiD,gBACbzE,EAAQ,GAEHh/C,EAAIwjD,EAAMzjD,OAAS,EAAGC,GAAK,EAAGA,IACrCg/C,EAAMh9C,KAAK,IAAI+gD,GAAqBthD,KAAKohB,SAAU,CACjDmgC,KAAMQ,EAAMxjD,GAAK,OAIrB,OAAOg/C,CACT,EAMAr9C,EAAO05C,qBAAuB,WAE5B55C,KAAK+X,KAAKsD,aAAa,gBAAiBrb,KAAKohB,SAASogC,eACxD,EAcAthD,EAAOuqC,YAAc,SAAqB5rB,GAExC,IAAIojC,EAAcjiD,KAAKohB,SAASogC,eAC5BO,EAAQ/hD,KAAKgiD,gBAGbE,GAFeH,EAAMrhD,QAAQuhD,GAEF,GAAKF,EAAMzjD,OAC1C0B,KAAKohB,SAASogC,aAAaO,EAAMG,GACnC,EAQAhiD,EAAO2hD,0BAA4B,SAAmChjC,GACpE7e,KAAKqrC,QACP,EASAnrC,EAAO8hD,cAAgB,WACrB,IAAI5gC,EAASphB,KAAKohB,SAClB,OAAOA,EAAO4gC,eAAiB5gC,EAAO4gC,iBAAmB,EAC3D,EAUA9hD,EAAOiiD,sBAAwB,WAC7B,OAAOniD,KAAKohB,SAAS0b,OAAS98B,KAAKohB,SAAS0b,MAAMsI,sBAAwBplC,KAAKgiD,iBAAmBhiD,KAAKgiD,gBAAgB1jD,OAAS,CAClI,EAWA4B,EAAOyhD,iBAAmB,SAA0B9iC,GAC9C7e,KAAKmiD,wBACPniD,KAAKyc,YAAY,cAEjBzc,KAAKsc,SAAS,aAElB,EAWApc,EAAO0hD,YAAc,SAAqB/iC,GACpC7e,KAAKmiD,0BACPniD,KAAK8hD,SAASxmC,YAActb,KAAKohB,SAASogC,eAAiB,IAE/D,EAEOC,CACT,CArM0C,CAqMxC1E,IASF0E,GAAuBthD,UAAU0qC,aAAe,gBAChD1gB,GAAYmH,kBAAkB,yBAA0BmwB,IASxD,IAAIW,GAAsB,SAAU5tB,GAGlC,SAAS4tB,IACP,OAAO5tB,EAAWpzB,MAAMpB,KAAMc,YAAcd,IAC9C,EAJA,aAAeoiD,EAAQ5tB,GAMvB,IAAIt0B,EAASkiD,EAAOjiD,UAuCpB,OA/BAD,EAAO8tB,cAAgB,WACrB,MAAO,cAAgBwG,EAAWr0B,UAAU6tB,cAAcjtB,KAAKf,KACjE,EASAE,EAAO2a,SAAW,SAAkB1M,EAAKqtB,EAAOxgB,GAiB9C,YAhBY,IAAR7M,IACFA,EAAM,YAGM,IAAVqtB,IACFA,EAAQ,CAAC,QAGQ,IAAfxgB,IACFA,EAAa,CAAC,GAGXwgB,EAAMnf,YACTmf,EAAMnf,UAAYrc,KAAKguB,iBAGlBwG,EAAWr0B,UAAU0a,SAAS9Z,KAAKf,KAAMmO,EAAKqtB,EAAOxgB,EAC9D,EAEOonC,CACT,CA/C0B,CA+CxBj4B,IAEFA,GAAYmH,kBAAkB,SAAU8wB,IAQxC,IAAIC,GAAmC,SAAUC,GAG/C,SAASD,IACP,OAAOC,EAAQlhD,MAAMpB,KAAMc,YAAcd,IAC3C,EAJA,aAAeqiD,EAAqBC,GAMpC,IAAIpiD,EAASmiD,EAAoBliD,UA4BjC,OApBAD,EAAO8tB,cAAgB,WACrB,MAAO,6BAA+Bs0B,EAAQniD,UAAU6tB,cAAcjtB,KAAKf,KAC7E,EASAE,EAAO2a,SAAW,WAChB,OAAOynC,EAAQniD,UAAU0a,SAAS9Z,KAAKf,KAAM,MAAO,CAClDqc,UAAWrc,KAAKguB,gBAGhB1S,YAAa,KAEjB,EAEO+mC,CACT,CApCuC,CAoCrCD,IAEFj4B,GAAYmH,kBAAkB,sBAAuB+wB,IAQrD,IAAIE,GAA0B,SAAU/tB,GAGtC,SAAS+tB,IACP,OAAO/tB,EAAWpzB,MAAMpB,KAAMc,YAAcd,IAC9C,CAiBA,OArBA,aAAeuiD,EAAY/tB,GAMd+tB,EAAWpiD,UAQjB0a,SAAW,WAChB,OAAO2Z,EAAWr0B,UAAU0a,SAAS9Z,KAAKf,KAAM,MAAO,CACrDqc,UAAW,kBACXqzB,IAAK,OAET,EAEO6S,CACT,CAvB8B,CAuB5Bp4B,IASFo4B,GAAWpiD,UAAUuqB,SAAW,CAC9B6B,SAAU,CAAC,aAAc,cAAe,qBAAsB,cAAe,kBAAmB,kBAAmB,cAAe,aAAc,uBAAwB,sBAAuB,yBAA0B,iBAAkB,qBAAsB,iBAAkB,mBAAoB,qBAGrS,8BACFg2B,GAAWpiD,UAAUuqB,SAAS6B,SAAS5rB,OAAO4hD,GAAWpiD,UAAUuqB,SAAS6B,SAASjuB,OAAS,EAAG,EAAG,0BAGtG6rB,GAAYmH,kBAAkB,aAAcixB,IAS5C,IAAIC,GAA4B,SAAUC,GAYxC,SAASD,EAAaphC,EAAQvd,GAC5B,IAAIijB,EAQJ,OANAA,EAAQ27B,EAAa1hD,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAE9CI,GAAGghB,EAAQ,SAAS,SAAUre,GAClC,OAAO+jB,EAAMngB,KAAK5D,EACpB,IAEO+jB,CACT,EArBA,aAAe07B,EAAcC,GAgC7B,IAAIviD,EAASsiD,EAAariD,UAkB1B,OAhBAD,EAAO8tB,cAAgB,WACrB,MAAO,qBAAuBy0B,EAAatiD,UAAU6tB,cAAcjtB,KAAKf,KAC1E,EASAE,EAAO+a,QAAU,WACf,IAAI1E,EAAQvW,KAAKohB,SAAS7K,QAC1B,OAAOA,EAAQvW,KAAK4rB,SAASrV,EAAMwc,SAAW,EAChD,EAEOyvB,CACT,CApDgC,CAoD9BjuB,IAQFiuB,GAAariD,UAAUuqB,UAAW,aAAS,CAAC,EAAG6J,GAAYp0B,UAAUuqB,SAAU,CAC7EiL,aAAa,EACbJ,YAAY,EACZW,WAAW,EACXlB,aAAa,IAEf7K,GAAYmH,kBAAkB,eAAgBkxB,IAE9C,IAAIE,GAAsB,0BACtBC,GAAc,CAAC,OAAQ,SACvBC,GAAa,CAAC,OAAQ,QACtBC,GAAa,CAAC,OAAQ,QACtBC,GAAc,CAAC,OAAQ,SACvBC,GAAgB,CAAC,OAAQ,WACzBC,GAAY,CAAC,OAAQ,OACrBC,GAAc,CAAC,OAAQ,SACvBC,GAAe,CAAC,OAAQ,UACxBC,GAAiB,CAAC,IAAK,UACvBC,GAAe,CAAC,MAAO,oBACvBC,GAAgB,CAAC,IAAK,eAYtBC,GAAgB,CAClB7U,gBAAiB,CACf/zB,SAAU,yBACVlM,GAAI,+BACJ6mB,MAAO,QACPxxB,QAAS,CAAC8+C,GAAaM,GAAaD,GAAWF,GAAaF,GAAYM,GAAcH,GAAeF,KAEvGnU,kBAAmB,CACjBh0B,SAAU,2BACVlM,GAAI,iCACJ6mB,MAAO,eACPxxB,QAAS,CAACs/C,GAAgBC,GAAcC,KAE1C3W,MAAO,CACLhyB,SAAU,yBACVlM,GAAI,+BACJ6mB,MAAO,QACPxxB,QAAS,CAACo/C,GAAaN,GAAaK,GAAWF,GAAaF,GAAYM,GAAcH,GAAeF,KAEvGhU,UAAW,CACTn0B,SAAU,2BACVlM,GAAI,KACJ6mB,MAAO,kBACPxxB,QAAS,CAAC,CAAC,OAAQ,QAAS,CAAC,SAAU,UAAW,CAAC,YAAa,aAAc,CAAC,UAAW,WAAY,CAAC,aAAc,gBAEvHorC,WAAY,CACVv0B,SAAU,4BACVlM,GAAI,0BACJ6mB,MAAO,cACPxxB,QAAS,CAAC,CAAC,wBAAyB,2BAA4B,CAAC,qBAAsB,wBAAyB,CAAC,oBAAqB,sBAAuB,CAAC,iBAAkB,mBAAoB,CAAC,SAAU,UAAW,CAAC,SAAU,UAAW,CAAC,aAAc,gBAEjQkrC,YAAa,CACXr0B,SAAU,6BACVlM,GAAI,wBACJ6mB,MAAO,YACPxxB,QAAS,CAAC,CAAC,OAAQ,OAAQ,CAAC,OAAQ,OAAQ,CAAC,OAAQ,QAAS,CAAC,OAAQ,QAAS,CAAC,OAAQ,QAAS,CAAC,OAAQ,QAAS,CAAC,OAAQ,QAAS,CAAC,OAAQ,QAAS,CAAC,OAAQ,SACjK,QAAW,EACX4K,OAAQ,SAAgB80C,GACtB,MAAa,SAANA,EAAe,KAAOv6C,OAAOu6C,EACtC,GAEF/U,YAAa,CACX9zB,SAAU,6BACVlM,GAAI,iCACJ6mB,MAAO,eACPxxB,QAAS,CAACs/C,GAAgBC,KAG5BzU,YAAa,CACXj0B,SAAU,6BACVlM,GAAI,2BACJ6mB,MAAO,SAGTuZ,cAAe,CACbl0B,SAAU,+BACVlM,GAAI,6BACJ6mB,MAAO,eACPxxB,QAAS,CAACw/C,GAAeD,GAAcD,MAqB3C,SAASK,GAAiB9gD,EAAO+L,GAK/B,GAJIA,IACF/L,EAAQ+L,EAAO/L,IAGbA,GAAmB,SAAVA,EACX,OAAOA,CAEX,CA1BA4gD,GAAc3U,YAAY9qC,QAAUy/C,GAAc7U,gBAAgB5qC,QAqFlE,IAAI4/C,GAAiC,SAAUhB,GAY7C,SAASgB,EAAkBriC,EAAQvd,GACjC,IAAIijB,EA2CJ,OAzCAjjB,EAAQqyB,WAAY,GACpBpP,EAAQ27B,EAAa1hD,KAAKf,KAAMohB,EAAQvd,IAAY7D,MAC9CmjC,cAAgBrc,EAAMqc,cAAc/c,MAAK,aAAuBU,IAEtEA,EAAM0O,OAEN1O,EAAM+N,eAAiB/N,EAAMgO,gBAAiB,EAC9ChO,EAAM48B,UAAY7oC,GAAS,IAAK,CAC9BwB,UAAW,mBACXf,YAAawL,EAAM8E,SAAS,2BAG9B9E,EAAM/O,KAAKgE,YAAY+K,EAAM48B,WAE7B58B,EAAM68B,mBAGmCv/C,IAArCP,EAAQ+/C,2BACV98B,EAAM4D,SAASk5B,yBAA2B98B,EAAM4D,SAASoD,cAAc81B,0BAGzE98B,EAAM1mB,GAAG0mB,EAAMrG,EAAE,oBAAqB,SAAS,WAC7CqG,EAAM+8B,eAEN/8B,EAAM6N,OACR,IAEA7N,EAAM1mB,GAAG0mB,EAAMrG,EAAE,uBAAwB,SAAS,WAChDqG,EAAM68B,cAEN78B,EAAMqc,eACR,IAEA5rB,GAAK+rC,IAAe,SAAUQ,GAC5Bh9B,EAAM1mB,GAAG0mB,EAAMrG,EAAEqjC,EAAOppC,UAAW,SAAUoM,EAAMqc,cACrD,IAEIrc,EAAM4D,SAASk5B,0BACjB98B,EAAMi9B,kBAGDj9B,CACT,EAxDA,aAAe28B,EAAmBhB,GA0DlC,IAAIviD,EAASujD,EAAkBtjD,UA2Q/B,OAzQAD,EAAOmB,QAAU,WACfrB,KAAK0jD,UAAY,KAEjBjB,EAAatiD,UAAUkB,QAAQN,KAAKf,KACtC,EAcAE,EAAO8jD,gBAAkB,SAAyBvgD,EAAKwgD,EAAU5jD,GAC/D,IAAI6nB,EAASloB,UAEI,IAAbikD,IACFA,EAAW,SAGA,IAAT5jD,IACFA,EAAO,SAGT,IAAIyjD,EAASR,GAAc7/C,GACvB+K,EAAKs1C,EAAOt1C,GAAG5F,QAAQ,KAAM5I,KAAK2qB,KAClCu5B,EAAsB,CAACD,EAAUz1C,GAAIoO,KAAK,KAAKja,OACnD,MAAO,CAAC,IAAMtC,EAAO,QAAWmO,EAAK,aAA0B,UAATnO,EAAmB,YAAc,IAAM,KAAOL,KAAK4rB,SAASk4B,EAAOzuB,OAAQ,KAAOh1B,EAAO,IAAK,4BAA+B6jD,EAAsB,MAAOryC,OAAOiyC,EAAOjgD,QAAQ+F,KAAI,SAAUu6C,GAClP,IAAIC,EAAW51C,EAAK,IAAM21C,EAAE,GAAGv7C,QAAQ,OAAQ,IAC/C,MAAO,CAAC,eAAkBw7C,EAAW,YAAgBD,EAAE,GAAK,KAAO,oBAAuBD,EAAsB,IAAME,EAAW,KAAOl8B,EAAO0D,SAASu4B,EAAE,IAAK,aAAavnC,KAAK,GACnL,KAAI/K,OAAO,aAAa+K,KAAK,GAC/B,EAWA1c,EAAOmkD,iBAAmB,WACxB,IAAIJ,EAAW,wBAA0BjkD,KAAK2qB,IAC9C,MAAO,CAAC,oDAAqD,eAAkBs5B,EAAW,KAAOjkD,KAAK4rB,SAAS,QAAS,YAAa5rB,KAAKgkD,gBAAgB,QAASC,GAAW,8CAA+CjkD,KAAKgkD,gBAAgB,cAAeC,GAAW,UAAW,eAAernC,KAAK,GAC7S,EAWA1c,EAAOokD,iBAAmB,WACxB,IAAIL,EAAW,uBAAyBjkD,KAAK2qB,IAC7C,MAAO,CAAC,oDAAqD,eAAkBs5B,EAAW,KAAOjkD,KAAK4rB,SAAS,cAAe,YAAa5rB,KAAKgkD,gBAAgB,kBAAmBC,GAAW,4CAA6CjkD,KAAKgkD,gBAAgB,oBAAqBC,GAAW,UAAW,eAAernC,KAAK,GACjU,EAWA1c,EAAOqkD,kBAAoB,WACzB,IAAIN,EAAW,mBAAqBjkD,KAAK2qB,IACzC,MAAO,CAAC,wDAAyD,eAAkBs5B,EAAW,KAAOjkD,KAAK4rB,SAAS,UAAW,YAAa5rB,KAAKgkD,gBAAgB,cAAeC,GAAW,gDAAiDjkD,KAAKgkD,gBAAgB,gBAAiBC,GAAW,UAAW,eAAernC,KAAK,GAC7T,EAWA1c,EAAOskD,gBAAkB,WACvB,OAAO3pC,GAAS,MAAO,CACrBwB,UAAW,4BACXooC,UAAW,CAACzkD,KAAKqkD,mBAAoBrkD,KAAKskD,mBAAoBtkD,KAAKukD,qBAAqB3nC,KAAK,KAEjG,EAWA1c,EAAOwkD,cAAgB,WACrB,OAAO7pC,GAAS,MAAO,CACrBwB,UAAW,0BACXooC,UAAW,CAAC,wDAAyDzkD,KAAKgkD,gBAAgB,cAAe,GAAI,UAAW,cAAe,sDAAuDhkD,KAAKgkD,gBAAgB,YAAa,GAAI,UAAW,cAAe,uDAAwDhkD,KAAKgkD,gBAAgB,aAAc,GAAI,UAAW,eAAepnC,KAAK,KAEhY,EAWA1c,EAAOykD,kBAAoB,WACzB,IAAIC,EAAsB5kD,KAAK4rB,SAAS,8CACxC,OAAO/Q,GAAS,MAAO,CACrBwB,UAAW,8BACXooC,UAAW,CAAC,2DAAkEG,EAAsB,KAAO5kD,KAAK4rB,SAAS,SAAU,mCAAuCg5B,EAAsB,UAAW,YAAa,iDAAuD5kD,KAAK4rB,SAAS,QAAU,aAAahP,KAAK,KAE7T,EAEA1c,EAAO+a,QAAU,WACf,MAAO,CAACjb,KAAKwkD,kBAAmBxkD,KAAK0kD,gBAAiB1kD,KAAK2kD,oBAC7D,EAEAzkD,EAAOm1B,MAAQ,WACb,OAAOr1B,KAAK4rB,SAAS,0BACvB,EAEA1rB,EAAOi1B,YAAc,WACnB,OAAOn1B,KAAK4rB,SAAS,uEACvB,EAEA1rB,EAAO8tB,cAAgB,WACrB,OAAOy0B,EAAatiD,UAAU6tB,cAAcjtB,KAAKf,MAAQ,0BAC3D,EASAE,EAAOmuC,UAAY,WACjB,IAz7jBYh3B,EAAQ5L,EAAIo5C,EAy7jBpBv8B,EAAStoB,KAEb,OA37jBoByL,EA27jBS,SAAUq5C,EAAOhB,EAAQrgD,GACpD,IAjQ0BsU,EAAItJ,EAiQ1B/L,GAjQsBqV,EAiQSuQ,EAAO7H,EAAEqjC,EAAOppC,UAjQrBjM,EAiQgCq1C,EAAOr1C,OA/PlE+0C,GADKzrC,EAAGlU,QAAQkU,EAAGlU,QAAQkhD,eAAeriD,MAClB+L,IAqQ3B,YAJcrK,IAAV1B,IACFoiD,EAAMrhD,GAAOf,GAGRoiD,CACT,OAl8jBc,KADUD,EAm8jBrB,CAAC,KAj8jBJA,EAAU,GAGLxwC,GALOgD,EA27jBEisC,IAt7jBI/gD,QAAO,SAAUuiD,EAAOrhD,GAC1C,OAAOgI,EAAGq5C,EAAOztC,EAAO5T,GAAMA,EAChC,GAAGohD,EA67jBH,EASA3kD,EAAO8kD,UAAY,SAAmB9lC,GACpC,IAAI2R,EAAS7wB,KAEbuX,GAAK+rC,IAAe,SAAUQ,EAAQrgD,IAhQ1C,SAA2BsU,EAAIrV,EAAO+L,GACpC,GAAK/L,EAIL,IAAK,IAAInE,EAAI,EAAGA,EAAIwZ,EAAGlU,QAAQvF,OAAQC,IACrC,GAAIilD,GAAiBzrC,EAAGlU,QAAQtF,GAAGmE,MAAO+L,KAAY/L,EAAO,CAC3DqV,EAAGgtC,cAAgBxmD,EACnB,KACF,CAEJ,CAsPM0mD,CAAkBp0B,EAAOpQ,EAAEqjC,EAAOppC,UAAWwE,EAAOzb,GAAMqgD,EAAOr1C,OACnE,GACF,EAMAvO,EAAOyjD,YAAc,WACnB,IAAI3yB,EAAShxB,KAEbuX,GAAK+rC,IAAe,SAAUQ,GAC5B,IAAIrjD,EAAQqjD,EAAO38C,eAAe,WAAa28C,EAAgB,QAAI,EACnE9yB,EAAOvQ,EAAEqjC,EAAOppC,UAAUqqC,cAAgBtkD,CAC5C,GACF,EAMAP,EAAO6jD,gBAAkB,WACvB,IAAI7kC,EAEJ,IACEA,EAASpa,KAAKC,MAAM,iBAAsBmgD,QAAQxC,IACpD,CAAE,MAAO7gD,GACPuT,GAAMkB,KAAKzU,EACb,CAEIqd,GACFlf,KAAKglD,UAAU9lC,EAEnB,EAMAhf,EAAO2jD,aAAe,WACpB,GAAK7jD,KAAK0qB,SAASk5B,yBAAnB,CAIA,IAAI1kC,EAASlf,KAAKquC,YAElB,IACMj6B,OAAOC,KAAK6K,GAAQ5gB,OACtB,iBAAsB6mD,QAAQzC,GAAqB59C,KAAKoB,UAAUgZ,IAElE,iBAAsBkmC,WAAW1C,GAErC,CAAE,MAAO7gD,GACPuT,GAAMkB,KAAKzU,EACb,CAZA,CAaF,EAMA3B,EAAOijC,cAAgB,WACrB,IAAIkiB,EAAYrlD,KAAKuqB,QAAQkC,SAAS,oBAElC44B,GACFA,EAAUliB,eAEd,EAQAjjC,EAAO+1B,iBAAmB,WACxBj2B,KAAKs1B,oBAAsB,KAC3B,IAAI6O,EAAKnkC,KAAKuqB,QAAQ+6B,WAClBC,EAAcphB,GAAMA,EAAGqhB,eACvBC,EAAQthB,GAAMA,EAAGuhB,eAEjBH,EACFA,EAAY5nC,QACH8nC,GACTA,EAAM9nC,OAEV,EAEO8lC,CACT,CAvUqC,CAuUnClvB,IAEFpK,GAAYmH,kBAAkB,oBAAqBmyB,IAmBnD,IAAIkC,GAA6B,SAAUnxB,GAgBzC,SAASmxB,EAAcvkC,EAAQvd,GAC7B,IAAIijB,EAEA8+B,EAA4B/hD,EAAQgiD,gBAAkB,mBAE3B,OAA3BhiD,EAAQgiD,iBACVD,GAA4B,GAI9B,IAAIl7B,EAAWf,GAAe,CAC5B9O,UAAW+qC,EACXt6B,qBAAqB,GACpBznB,GAoCH,OAnCAijB,EAAQ0N,EAAWzzB,KAAKf,KAAMohB,EAAQsJ,IAAa1qB,MAC7C6lD,eAAiBhiD,EAAQgiD,gBAAkB,mBACjD/+B,EAAMg/B,cAAgB,KACtBh/B,EAAMi/B,gBAAkB,KACxBj/B,EAAMk/B,kBAhjgBK,SAAkBjgC,EAAM1E,EAAM4kC,EAAWtrC,GAKtD,IAAI5T,OAJY,IAAZ4T,IACFA,EAAU,KAKZ,IAOIurC,EAAY,WACd,IAAIv+B,EAAO3nB,KACPgB,EAAOF,UAEPqlD,EAAS,WACXp/C,EAAU,KACVo/C,EAAS,KAEJF,GACHlgC,EAAK3kB,MAAMumB,EAAM3mB,EAErB,GAEK+F,GAAWk/C,GACdlgC,EAAK3kB,MAAMumB,EAAM3mB,GAGnB2Z,EAAQzV,aAAa6B,GACrBA,EAAU4T,EAAQtU,WAAW8/C,EAAQ9kC,EACvC,EAKA,OADA6kC,EAAUE,OA9BG,WACXzrC,EAAQzV,aAAa6B,GACrBA,EAAU,IACZ,EA4BOm/C,CACT,CAyggB8BG,EAAS,WACjCv/B,EAAMw/B,eACR,GAAG,KAAK,GAAO,aAAuBx/B,IAElC8+B,GACF9+B,EAAMi/B,gBAAkB,IAAIj/B,EAAM++B,eAAe/+B,EAAMk/B,mBAEvDl/B,EAAMi/B,gBAAgBQ,QAAQnlC,EAAOrJ,QAErC+O,EAAMg/B,cAAgB,WACpB,GAAKh/B,EAAMiC,KAAQjC,EAAMiC,IAAIy9B,cAA7B,CAIA,IAAIR,EAAoBl/B,EAAMk/B,kBAE1BS,EAAkB3/B,EAAM2/B,gBAAkB,WAC5CjmD,GAAIR,KAAM,SAAUgmD,GACpBxlD,GAAIR,KAAM,SAAUymD,GACpBA,EAAkB,IACpB,EAIArmD,GAAG0mB,EAAMiC,IAAIy9B,cAAe,SAAUC,GACtCrmD,GAAG0mB,EAAMiC,IAAIy9B,cAAe,SAAUR,EAbtC,CAcF,EAEAl/B,EAAMhB,IAAI,OAAQgB,EAAMg/B,gBAGnBh/B,CACT,EAjEA,aAAe6+B,EAAenxB,GAmE9B,IAAIt0B,EAASylD,EAAcxlD,UA+D3B,OA7DAD,EAAO2a,SAAW,WAChB,OAAO2Z,EAAWr0B,UAAU0a,SAAS9Z,KAAKf,KAAM,SAAU,CACxDqc,UAAW,qBACX+Y,UAAW,EACXqoB,MAAOz9C,KAAK4rB,SAAS,eACpB,CACD,cAAe,QAEnB,EAQA1rB,EAAOomD,cAAgB,WAShBtmD,KAAKuqB,SAAYvqB,KAAKuqB,QAAQ3pB,SAInCZ,KAAKuqB,QAAQ3pB,QAAQ,eACvB,EAEAV,EAAOmB,QAAU,WACXrB,KAAKgmD,mBACPhmD,KAAKgmD,kBAAkBI,SAGrBpmD,KAAK+lD,kBACH/lD,KAAKuqB,QAAQxS,MACf/X,KAAK+lD,gBAAgBW,UAAU1mD,KAAKuqB,QAAQxS,MAG9C/X,KAAK+lD,gBAAgBY,cAGnB3mD,KAAK8lD,eACP9lD,KAAKQ,IAAI,OAAQR,KAAK8lD,eAGpB9lD,KAAK+oB,KAAO/oB,KAAK+oB,IAAIy9B,eAAiBxmD,KAAKymD,iBAC7CzmD,KAAKymD,gBAAgB1lD,KAAKf,KAAK+oB,IAAIy9B,eAGrCxmD,KAAK6lD,eAAiB,KACtB7lD,KAAK4mD,eAAiB,KACtB5mD,KAAKgmD,kBAAoB,KACzBhmD,KAAK8lD,cAAgB,KAErBtxB,EAAWr0B,UAAUkB,QAAQN,KAAKf,KACpC,EAEO2lD,CACT,CApIiC,CAoI/Bx7B,IAEFA,GAAYmH,kBAAkB,gBAAiBq0B,IAE/C,IAAIkB,GAAW,CACbC,kBAAmB,GACnBC,cAAe,IAUbC,GAA2B,SAAUxyB,GAsBvC,SAASwyB,EAAY5lC,EAAQvd,GAC3B,IAAIijB,EAGA4D,EAAWf,GAAek9B,GAAUhjD,EAAS,CAC/CgX,UAAU,IA+CZ,OA7CAiM,EAAQ0N,EAAWzzB,KAAKf,KAAMohB,EAAQsJ,IAAa1qB,MAE7CinD,wBAA0B,SAAUlkD,GACxC,OAAO+jB,EAAMogC,uBAAuBnkD,EACtC,EAEA+jB,EAAMqgC,kBAAoB,WACxB,OAAOrgC,EAAMsgC,YACf,EAEAtgC,EAAMugC,YAAc,SAAUtkD,GAC5B,OAAO+jB,EAAMwpB,WAAWvtC,EAC1B,EAEA+jB,EAAMwgC,uBAAyB,SAAUvkD,GACvC,OAAO+jB,EAAMygC,sBAAsBxkD,EACrC,EAEA+jB,EAAM0gC,cAAgB,SAAUzkD,GAC9B,OAAO+jB,EAAM2pB,aAAa1tC,EAC5B,EAEA+jB,EAAM2gC,gBAAkB,SAAU1kD,GAChC,OAAO+jB,EAAM+rB,eAAe9vC,EAC9B,EAEA+jB,EAAM4gC,SAEN5gC,EAAM1mB,GAAG0mB,EAAMyD,QAAS,kBAAkB,SAAUxnB,GAClD,OAAO+jB,EAAM6gC,qBAAqB5kD,EACpC,IAIA+jB,EAAM1mB,GAAG0mB,EAAMyD,QAAS,WAAW,WACjC,OAAOzD,EAAM8gC,gBACf,IAKIxuC,IAAc,gBAAwB,yBACxC0N,EAAM1mB,GAAG,IAAU,mBAAoB0mB,EAAMmgC,yBAGxCngC,CACT,EA1EA,aAAekgC,EAAaxyB,GAgF5B,IAAIt0B,EAAS8mD,EAAY7mD,UAyVzB,OAvVAD,EAAOgnD,uBAAyB,WAC1BlnD,KAAKuqB,QAAQqI,aAAejgB,MAI5B,WACF3S,KAAK89B,eAEL99B,KAAK+9B,gBAET,EAOA79B,EAAOknD,WAAa,WAClB,IAAI7f,EAAWvnC,KAAKuqB,QAAQgd,WAE5B,GAAKA,GAAaA,EAASjpC,OAA3B,CAIA,IAAI84C,EAAUpuC,OAAO,gBAAqBkZ,MAAM2xB,QAAQ,IACpDgU,GAAgC,IAApB7nD,KAAK8nD,UAAmB,GAAK1Q,EAAUp3C,KAAK8nD,WAAa,IACzE9nD,KAAK8nD,UAAY1Q,EACjBp3C,KAAK+nD,aAAe/nD,KAAKgoD,cAAgBH,EACzC,IAAIhR,EAAkB72C,KAAK62C,kBACvB1Y,EAAcn+B,KAAKuqB,QAAQ4T,cAM3B8pB,EAAWjoD,KAAKuqB,QAAQmL,UAAY11B,KAAKkoD,mBAAqBp8C,KAAKC,IAAI8qC,EAAkB1Y,GAAen+B,KAAK0qB,SAASq8B,cAIrH/mD,KAAKmoD,iBAAmBtR,IAAoBlkC,MAC/Cs1C,GAAW,GAGTA,IAAajoD,KAAKooD,kBACpBpoD,KAAKooD,gBAAkBH,EACvBjoD,KAAKY,QAAQ,kBAvBf,CAyBF,EAOAV,EAAOynD,qBAAuB,WAC5B3nD,KAAK4nD,gBACP,EAMA1nD,EAAO0nD,eAAiB,WAClB5nD,KAAKuqB,QAAQqI,aAAejgB,KAAY3S,KAAK81C,cAAgB91C,KAAK0qB,SAASo8B,mBACzE9mD,KAAKuqB,QAAQG,SAAS29B,QACxBroD,KAAKuqB,QAAQjO,SAAS,cAGxBtc,KAAK+9B,kBAEL/9B,KAAKuqB,QAAQ9N,YAAY,cACzBzc,KAAK89B,eAET,EAMA59B,EAAO69B,cAAgB,WACjB/9B,KAAKsoD,eAOJtoD,KAAKmoD,kBACRnoD,KAAKmoD,gBAAkBnoD,KAAKuqB,QAAQg+B,cAGtCvoD,KAAKwoD,kBAAoBxoD,KAAKswB,YAAYtwB,KAAKmnD,kBAAmBhhC,IAClEnmB,KAAKonD,aACLpnD,KAAKI,GAAGJ,KAAKuqB,QAAS,CAAC,OAAQ,SAAUvqB,KAAKmnD,mBAEzCnnD,KAAKmoD,gBAIRnoD,KAAKI,GAAGJ,KAAKuqB,QAAS,SAAUvqB,KAAKwnD,gBAHrCxnD,KAAK8lB,IAAI9lB,KAAKuqB,QAAS,OAAQvqB,KAAKqnD,aACpCrnD,KAAK8lB,IAAI9lB,KAAKuqB,QAAS,aAAcvqB,KAAKsnD,yBAI9C,EAOApnD,EAAOqnD,sBAAwB,WAC7BvnD,KAAKmoD,iBAAkB,EACvBnoD,KAAKI,GAAGJ,KAAKuqB,QAAS,SAAUvqB,KAAKwnD,cACvC,EAOAtnD,EAAOuwC,aAAe,WACpB,IAAIgY,EAAW38C,KAAKC,IAAI/L,KAAK62C,kBAAoB72C,KAAKuqB,QAAQ4T,eAC9Dn+B,KAAKkoD,kBAAoBloD,KAAK0oD,qBAAuBD,EAAW,EAChEzoD,KAAK0oD,qBAAsB,EAC3B1oD,KAAKonD,YACP,EAOAlnD,EAAOowC,WAAa,WAClBtwC,KAAK8lB,IAAI9lB,KAAKuqB,QAAS,aAAcvqB,KAAKynD,gBAC5C,EAOAvnD,EAAOwnD,OAAS,WACd1nD,KAAK8nD,WAAa,EAClB9nD,KAAK+nD,aAAe,EACpB/nD,KAAK2oD,cAAgB,EACrB3oD,KAAKooD,iBAAkB,EACvBpoD,KAAKmoD,iBAAkB,EACvBnoD,KAAKkoD,mBAAoB,EACzBloD,KAAK0oD,qBAAsB,EAC3B1oD,KAAKqwB,cAAcrwB,KAAKwoD,mBACxBxoD,KAAKwoD,kBAAoB,KACzBxoD,KAAKQ,IAAIR,KAAKuqB,QAAS,CAAC,OAAQ,SAAUvqB,KAAKmnD,mBAC/CnnD,KAAKQ,IAAIR,KAAKuqB,QAAS,SAAUvqB,KAAKwnD,eACtCxnD,KAAKQ,IAAIR,KAAKuqB,QAAS,OAAQvqB,KAAKqnD,aACpCrnD,KAAKQ,IAAIR,KAAKuqB,QAAS,aAAcvqB,KAAKsnD,wBAC1CtnD,KAAKQ,IAAIR,KAAKuqB,QAAS,aAAcvqB,KAAKynD,gBAC5C,EAQAvnD,EAAO82C,mBAAqB,WAC1Bh3C,KAAK0oD,qBAAsB,CAC7B,EAMAxoD,EAAO49B,aAAe,WACf99B,KAAKsoD,eAIVtoD,KAAK0nD,SACL1nD,KAAKY,QAAQ,kBACf,EAUAV,EAAOy0C,YAAc,WAKnB,IAJA,IAAIpN,EAAWvnC,KAAKuqB,QAAQgd,WACxBqhB,EAAe,GACfrqD,EAAIgpC,EAAWA,EAASjpC,OAAS,EAE9BC,KACLqqD,EAAaroD,KAAKgnC,EAAS73B,IAAInR,IAKjC,OAAOqqD,EAAatqD,OAASsqD,EAAaC,OAAOD,EAAatqD,OAAS,GAAKqU,GAC9E,EAUAzS,EAAO+2C,cAAgB,WAKrB,IAJA,IAAI1P,EAAWvnC,KAAKuqB,QAAQgd,WACxBuhB,EAAiB,GACjBvqD,EAAIgpC,EAAWA,EAASjpC,OAAS,EAE9BC,KACLuqD,EAAevoD,KAAKgnC,EAAS/U,MAAMj0B,IAKrC,OAAOuqD,EAAexqD,OAASwqD,EAAeD,OAAO,GAAK,CAC5D,EAYA3oD,EAAO41C,WAAa,WAClB,IAAIe,EAAkB72C,KAAK62C,kBAE3B,OAAIA,IAAoBlkC,IACf,EAGFkkC,EAAkB72C,KAAKi3C,eAChC,EAUA/2C,EAAOw0C,OAAS,WACd,OAAO10C,KAAKsoD,YACd,EAUApoD,EAAO0yC,WAAa,WAClB,OAAQ5yC,KAAK+oD,gBACf,EASA7oD,EAAO22C,gBAAkB,WACvB,OAAO72C,KAAKgoD,cAAgBhoD,KAAK20C,aACnC,EAUAz0C,EAAO8nD,YAAc,WACnB,IAAIrT,EAAc30C,KAAK20C,cAOvB,OAL2B,IAAvB30C,KAAK2oD,cAAuBhU,IAAgB30C,KAAK2oD,eACnD3oD,KAAK+nD,aAAe,GAGtB/nD,KAAK2oD,aAAehU,EACb30C,KAAK+nD,YACd,EAUA7nD,EAAO6oD,eAAiB,WACtB,OAAO/oD,KAAKooD,eACd,EAMAloD,EAAOooD,WAAa,WAClB,MAAyC,iBAA3BtoD,KAAKwoD,iBACrB,EAMAtoD,EAAO2yC,eAAiB,WACtB7yC,KAAKkoD,mBAAoB,EAErBloD,KAAK4yC,eAIT5yC,KAAK0oD,qBAAsB,EAC3B1oD,KAAKuqB,QAAQ4T,YAAYn+B,KAAK62C,mBAChC,EAMA32C,EAAOmB,QAAU,WACfrB,KAAKQ,IAAI,IAAU,mBAAoBR,KAAKinD,yBAC5CjnD,KAAK89B,eAELtJ,EAAWr0B,UAAUkB,QAAQN,KAAKf,KACpC,EAEOgnD,CACT,CA3a+B,CA2a7B78B,IAEFA,GAAYmH,kBAAkB,cAAe01B,IAgB7C,IAsoDItiB,GAtoDAskB,GAAgB,SAAuBn1B,GACzC,IAAI9b,EAAK8b,EAAK9b,KAEd,GAAIA,EAAGuf,aAAa,OAElB,OADAzD,EAAKyN,iBAAiBvpB,EAAGkc,MAClB,EAgBT,IAAIxc,EAAUoc,EAAKnT,GAAG,UAClBuoC,EAAU,GACVh1B,EAAM,GAEV,IAAKxc,EAAQnZ,OACX,OAAO,EAIT,IAAK,IAAIC,EAAI,EAAGA,EAAIkZ,EAAQnZ,OAAQC,IAAK,CACvC,IAAImH,EAAM+R,EAAQlZ,GAAG01B,IAEjBvuB,IAAiC,IAA1BujD,EAAQvoD,QAAQgF,IACzBujD,EAAQ1oD,KAAKmF,EAEjB,CAGA,QAAKujD,EAAQ3qD,SAMU,IAAnB2qD,EAAQ3qD,SACV21B,EAAMg1B,EAAQ,IAGhBp1B,EAAKyN,iBAAiBrN,IACf,EACT,EAOIi1B,GAA8B90C,OAAO2Q,eAAe,CAAC,EAAG,YAAa,CACvEzC,IAAK,WACH,OAAOtiB,KAAKmpD,WAAU,GAAM1E,SAC9B,EACAriC,IAAK,SAAamhC,GAEhB,IAAI6F,EAAQ,kBAAuBppD,KAAK2E,SAAStC,eAEjD+mD,EAAM3E,UAAYlB,EAKlB,IAHA,IAAI8F,EAAU,6BAGPD,EAAME,WAAWhrD,QACtB+qD,EAAQttC,YAAYqtC,EAAME,WAAW,IASvC,OALAtpD,KAAKyb,UAAY,GAGjB,YAAiBtb,UAAU4b,YAAYhb,KAAKf,KAAMqpD,GAE3CrpD,KAAKykD,SACd,IAOE8E,GAAgB,SAAuBC,EAAUxxC,GAGnD,IAFA,IAAIyxC,EAAa,CAAC,EAETlrD,EAAI,EAAGA,EAAIirD,EAASlrD,WAC3BmrD,EAAar1C,OAAOs1C,yBAAyBF,EAASjrD,GAAIyZ,KAExCyxC,EAAWrnC,KAAOqnC,EAAWnnC,KAHZ/jB,KAUrC,OAFAkrD,EAAWE,YAAa,EACxBF,EAAWG,cAAe,EACnBH,CACT,EAyBII,GAAmB,SAA0Bh2B,GAC/C,IAAI9b,EAAK8b,EAAK9b,KAEd,IAAIA,EAAG+xC,kBAAP,CAIA,IAAItmC,EAAM,CAAC,EACPumC,EA/BuB,SAAgCl2B,GAC3D,OAAO01B,GAAc,CAAC11B,EAAK9b,KAAM,qBAA0B5X,UAAW,YAAiBA,UAAW+oD,IAA8B,YAClI,CA6BwBc,CAAuBn2B,GAEzCo2B,EAAgB,SAAuBC,GACzC,OAAO,WACL,IAAK,IAAIz0C,EAAO3U,UAAUxC,OAAQ0C,EAAO,IAAIC,MAAMwU,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E1U,EAAK0U,GAAQ5U,UAAU4U,GAGzB,IAAIy0C,EAASD,EAAS9oD,MAAM2W,EAAI/W,GAEhC,OADAgoD,GAAcn1B,GACPs2B,CACT,CACF,EAEA,CAAC,SAAU,cAAe,sBAAsBtrD,SAAQ,SAAUmf,GAC3DjG,EAAGiG,KAKRwF,EAAIxF,GAAKjG,EAAGiG,GAGZjG,EAAGiG,GAAKisC,EAAczmC,EAAIxF,IAC5B,IACA5J,OAAO2Q,eAAehN,EAAI,YAAa4R,GAAeogC,EAAiB,CACrE3nC,IAAK6nC,EAAcF,EAAgB3nC,QAGrCrK,EAAG+xC,kBAAoB,WACrB/xC,EAAG+xC,kBAAoB,KACvB11C,OAAOC,KAAKmP,GAAK3kB,SAAQ,SAAUmf,GACjCjG,EAAGiG,GAAKwF,EAAIxF,EACd,IACA5J,OAAO2Q,eAAehN,EAAI,YAAagyC,EACzC,EAGAl2B,EAAK/N,IAAI,YAAa/N,EAAG+xC,kBAzCzB,CA0CF,EAOIM,GAAwBh2C,OAAO2Q,eAAe,CAAC,EAAG,MAAO,CAC3DzC,IAAK,WACH,OAAItiB,KAAKs3B,aAAa,OACboE,GAAe,YAAiBv7B,UAAUqd,aAAazc,KAAKf,KAAM,QAGpE,EACT,EACAoiB,IAAK,SAAamhC,GAEhB,OADA,YAAiBpjD,UAAUkb,aAAata,KAAKf,KAAM,MAAOujD,GACnDA,CACT,IAuBE8G,GAAiB,SAAwBx2B,GAC3C,GAAKA,EAAKwR,kBAAV,CAIA,IAAIttB,EAAK8b,EAAK9b,KAEd,IAAIA,EAAGuyC,gBAAP,CAIA,IAAIC,EA/BiB,SAA0B12B,GAC/C,OAAO01B,GAAc,CAAC11B,EAAK9b,KAAM,qBAA0B5X,UAAWiqD,IAAwB,MAChG,CA6BsBI,CAAiB32B,GACjC42B,EAAkB1yC,EAAGsD,aACrBqvC,EAAU3yC,EAAGgnB,KACjB3qB,OAAO2Q,eAAehN,EAAI,MAAO4R,GAAe4gC,EAAe,CAC7DnoC,IAAK,SAAamhC,GAChB,IAAI4G,EAASI,EAAcnoC,IAAIrhB,KAAKgX,EAAIwrC,GAGxC,OADA1vB,EAAKyN,iBAAiBvpB,EAAGkc,KAClBk2B,CACT,KAGFpyC,EAAGsD,aAAe,SAAUgK,EAAGk+B,GAC7B,IAAI4G,EAASM,EAAgB1pD,KAAKgX,EAAIsN,EAAGk+B,GAMzC,MAJI,OAAOjkD,KAAK+lB,IACdwO,EAAKyN,iBAAiBvpB,EAAGkc,KAGpBk2B,CACT,EAEApyC,EAAGgnB,KAAO,WACR,IAAIorB,EAASO,EAAQ3pD,KAAKgX,GAU1B,OALKixC,GAAcn1B,KACjBA,EAAKyN,iBAAiB,IACtBuoB,GAAiBh2B,IAGZs2B,CACT,EAEIpyC,EAAG4yC,WACL92B,EAAKyN,iBAAiBvpB,EAAG4yC,YACf3B,GAAcn1B,IACxBg2B,GAAiBh2B,GAGnB9b,EAAGuyC,gBAAkB,WACnBvyC,EAAGuyC,gBAAkB,KACrBvyC,EAAGgnB,KAAO2rB,EACV3yC,EAAGsD,aAAeovC,EAClBr2C,OAAO2Q,eAAehN,EAAI,MAAOwyC,GAE7BxyC,EAAG+xC,mBACL/xC,EAAG+xC,mBAEP,CArDA,CANA,CA4DF,EAWIc,GAAqB,SAA4BxjD,EAAK3D,EAAKonD,EAAUC,QACxD,IAAXA,IACFA,GAAS,GAGX,IAAI1oC,EAAM,SAAa1f,GACrB,OAAO0R,OAAO2Q,eAAe3d,EAAK3D,EAAK,CACrCf,MAAOA,EACPinD,YAAY,EACZoB,UAAU,GAEd,EAEIlnD,EAAU,CACZ+lD,cAAc,EACdD,YAAY,EACZrnC,IAAK,WACH,IAAI5f,EAAQmoD,IAEZ,OADAzoC,EAAI1f,GACGA,CACT,GAOF,OAJIooD,IACFjnD,EAAQue,IAAMA,GAGThO,OAAO2Q,eAAe3d,EAAK3D,EAAKI,EACzC,EASImnD,GAAqB,SAAUxlB,GAYjC,SAASwlB,EAAMnnD,EAASwmB,GACtB,IAAIvD,EAEJA,EAAQ0e,EAAMzkC,KAAKf,KAAM6D,EAASwmB,IAAUrqB,KAC5C,IAAI2X,EAAS9T,EAAQ8T,OACjBszC,GAAoB,EAkBxB,GAbItzC,IAAWmP,EAAMiC,IAAI4hC,aAAehzC,EAAOsc,KAAOpwB,EAAQsK,KAAyC,IAAlCtK,EAAQsK,IAAI+8C,mBAC/EpkC,EAAMof,UAAUvuB,GAEhBmP,EAAMqkC,gBAAgBrkC,EAAMiC,KAI1BllB,EAAQunD,iBACVtkC,EAAMukC,0BAGRvkC,EAAMwkC,cAAe,EAEjBxkC,EAAMiC,IAAIwiC,gBAAiB,CAK7B,IAJA,IAAIC,EAAQ1kC,EAAMiC,IAAIugC,WAClBmC,EAAcD,EAAMltD,OACpBotD,EAAc,GAEXD,KAAe,CACpB,IAAItrC,EAAOqrC,EAAMC,GAGA,UAFFtrC,EAAKxb,SAAStC,gBAGtBykB,EAAMma,0BAQTna,EAAM6c,qBAAqBlK,iBAAiBtZ,GAE5C2G,EAAMkc,mBAAmBrL,SAASxX,EAAKoT,OAEvCzM,EAAMoN,aAAayD,SAASxX,EAAKoT,OAE5B03B,GAAsBnkC,EAAMiC,IAAIuO,aAAa,iBAAkBuE,GAAc1b,EAAK8T,OACrFg3B,GAAoB,IAVtBS,EAAYnrD,KAAK4f,GAcvB,CAEA,IAAK,IAAI5hB,EAAI,EAAGA,EAAImtD,EAAYptD,OAAQC,IACtCuoB,EAAMiC,IAAI9I,YAAYyrC,EAAYntD,GAEtC,CA2BA,OAzBAuoB,EAAM6kC,qBAEF7kC,EAAMma,0BAA4BgqB,GACpC71C,GAAMkB,KAAK,0IAIbwQ,EAAM8kC,2CAMDpyC,IAAiBK,IAAad,MAAyD,IAAnClV,EAAQw9B,wBAC/Dva,EAAM+kC,aAAY,GAKpB/kC,EAAMglC,yBAENhlC,EAAMwe,2BAA6Bxe,EAAMwe,4BAAoD,UAAtBxe,EAAMiC,IAAIjO,QAEjFgM,EAAMoH,eAECpH,CACT,EAhGA,aAAekkC,EAAOxlB,GAsGtB,IAAItlC,EAAS8qD,EAAM7qD,UA03BnB,OAx3BAD,EAAOmB,QAAU,WACXrB,KAAK+oB,KAAO/oB,KAAK+oB,IAAIuhC,iBACvBtqD,KAAK+oB,IAAIuhC,kBAGXU,EAAMe,oBAAoB/rD,KAAK+oB,KAC/B/oB,KAAK0qB,SAAW,KAEhB8a,EAAMrlC,UAAUkB,QAAQN,KAAKf,KAC/B,EAOAE,EAAOmrD,wBAA0B,WAC/BhB,GAAerqD,KACjB,EAWAE,EAAO0rD,wCAA0C,WAC/C,IACII,EADA93B,EAAal0B,KAAKk0B,aAGlB+3B,EAA4B,WAC9BD,EAAmC,GAEnC,IAAK,IAAIztD,EAAI,EAAGA,EAAI21B,EAAW51B,OAAQC,IAAK,CAC1C,IAAIg1B,EAAQW,EAAW31B,GAEJ,aAAfg1B,EAAM6F,MACR4yB,EAAiCzrD,KAAK,CACpCgzB,MAAOA,EACP24B,WAAY34B,EAAM6J,MAGxB,CACF,EAIA6uB,IACA/3B,EAAW5O,iBAAiB,SAAU2mC,GACtCjsD,KAAKI,GAAG,WAAW,WACjB,OAAO8zB,EAAWrR,oBAAoB,SAAUopC,EAClD,IAEA,IAAIE,EAAmB,SAASA,IAC9B,IAAK,IAAI5tD,EAAI,EAAGA,EAAIytD,EAAiC1tD,OAAQC,IAAK,CAChE,IAAI6tD,EAAcJ,EAAiCztD,GAEpB,aAA3B6tD,EAAY74B,MAAM6J,MAAuBgvB,EAAY74B,MAAM6J,OAASgvB,EAAYF,aAClFE,EAAY74B,MAAM6J,KAAOgvB,EAAYF,WAEzC,CAGAh4B,EAAWrR,oBAAoB,SAAUspC,EAC3C,EAIAnsD,KAAKI,GAAG,yBAAyB,WAC/B8zB,EAAWrR,oBAAoB,SAAUopC,GAEzC/3B,EAAWrR,oBAAoB,SAAUspC,GACzCj4B,EAAW5O,iBAAiB,SAAU6mC,EACxC,IAEAnsD,KAAKI,GAAG,uBAAuB,WAE7B8zB,EAAWrR,oBAAoB,SAAUopC,GACzC/3B,EAAW5O,iBAAiB,SAAU2mC,GAEtC/3B,EAAWrR,oBAAoB,SAAUspC,EAC3C,GACF,EAYAjsD,EAAOmsD,gBAAkB,SAAyBhsD,EAAMisD,GACtD,IAAIpkC,EAASloB,KAGb,GAAIssD,IAAatsD,KAAK,iBAAmBK,EAAO,UAAhD,CAIA,IAAIksD,EAAgBlsD,EAAKgC,cAErBrC,KAAKusD,EAAgB,qBACvBn4C,OAAOC,KAAKrU,KAAKusD,EAAgB,qBAAqB1tD,SAAQ,SAAU2tD,GACvDtkC,EAAOnQ,KAAKw0C,EAAgB,UAElC1pC,oBAAoB2pC,EAAWtkC,EAAOqkC,EAAgB,oBAAoBC,GACrF,IAGFxsD,KAAK,iBAAmBK,EAAO,WAAaisD,EAC5CtsD,KAAKusD,EAAgB,oBAAsB,KAC3CvsD,KAAKysD,0BAA0BF,EAd/B,CAeF,EASArsD,EAAOskC,0BAA4B,SAAmC8nB,GACpEtsD,KAAKqsD,gBAAgB,QAASC,EAChC,EASApsD,EAAOukC,0BAA4B,SAAmC6nB,GACpEtsD,KAAKqsD,gBAAgB,QAASC,EAChC,EAUApsD,EAAOusD,0BAA4B,SAAmCpjD,GACpE,IAAIif,EAAStoB,KAETw7B,EAAQ4D,GAAO/1B,GACfqjD,EAAW1sD,KAAK+X,KAAKyjB,EAAMgE,YAC3BmtB,EAAa3sD,KAAKw7B,EAAMgE,cAE5B,GAAKx/B,KAAK,iBAAmBw7B,EAAM+D,YAAc,WAAcmtB,GAAaA,EAASpnC,iBAArF,CAIA,IAAIrlB,EAAY,CACdg4B,OAAQ,SAAgBl1B,GACtB,IAAI8b,EAAQ,CACVxe,KAAM,SACNmX,OAAQm1C,EACRC,cAAeD,EACfjpC,WAAYipC,GAEdA,EAAW/rD,QAAQie,GAQN,SAATxV,GACFif,EAAOoX,GAAOC,WAAWH,cAAc5+B,QAAQie,EAEnD,EACAqZ,SAAU,SAAkBn1B,GAC1B4pD,EAAWh1B,SAAS50B,EAAEwwB,MACxB,EACA4E,YAAa,SAAqBp1B,GAChC4pD,EAAW90B,YAAY90B,EAAEwwB,MAC3B,GAGEs5B,EAAkB,WAGpB,IAFA,IAAIC,EAAe,GAEVvuD,EAAI,EAAGA,EAAIouD,EAAWruD,OAAQC,IAAK,CAG1C,IAFA,IAAIwuD,GAAQ,EAEHjjB,EAAI,EAAGA,EAAI4iB,EAASpuD,OAAQwrC,IACnC,GAAI4iB,EAAS5iB,KAAO6iB,EAAWpuD,GAAI,CACjCwuD,GAAQ,EACR,KACF,CAGGA,GACHD,EAAavsD,KAAKosD,EAAWpuD,GAEjC,CAEA,KAAOuuD,EAAaxuD,QAClBquD,EAAW90B,YAAYi1B,EAAax6C,QAExC,EAEAtS,KAAKw7B,EAAMgE,WAAa,cAAgBv/B,EACxCmU,OAAOC,KAAKpU,GAAWpB,SAAQ,SAAU2tD,GACvC,IAAIlsD,EAAWL,EAAUusD,GACzBE,EAASpnC,iBAAiBknC,EAAWlsD,GAErCgoB,EAAOloB,GAAG,WAAW,SAAU2C,GAC7B,OAAO2pD,EAAS7pC,oBAAoB2pC,EAAWlsD,EACjD,GACF,IAEAN,KAAKI,GAAG,YAAaysD,GACrB7sD,KAAKI,GAAG,WAAW,SAAU2C,GAC3B,OAAOulB,EAAO9nB,IAAI,YAAaqsD,EACjC,GAlEA,CAmEF,EASA3sD,EAAOyrD,mBAAqB,WAC1B,IAAI96B,EAAS7wB,KAEbo/B,GAAOzS,MAAM9tB,SAAQ,SAAUwK,GAC7BwnB,EAAO47B,0BAA0BpjD,EACnC,GACF,EASAnJ,EAAO2a,SAAW,WAChB,IAAI9C,EAAK/X,KAAK0qB,SAASvc,IAKvB,IAAK4J,IAAQ/X,KAAK0qB,SAASsiC,iBAAkBhtD,KAAKitD,wBAA0B,CAE1E,GAAIl1C,EAAI,CACN,IAAIm1C,EAAQn1C,EAAGoxC,WAAU,GAErBpxC,EAAG+F,YACL/F,EAAG+F,WAAWhC,aAAaoxC,EAAOn1C,GAGpCizC,EAAMe,oBAAoBh0C,GAC1BA,EAAKm1C,CACP,KAAO,CACLn1C,EAAK,kBAAuB,SAE5B,IACIiD,EAAa2O,GAAe,CAAC,EADb3pB,KAAK0qB,SAASvc,KAAOiP,GAAcpd,KAAK0qB,SAASvc,MAGhEqL,KAA0D,IAAzCxZ,KAAK0qB,SAAS2W,+BAC3BrmB,EAAW8a,SAGpB7Y,GAAclF,EAAI,GAAOiD,EAAY,CACnCxM,GAAIxO,KAAK0qB,SAASyiC,OAClB,MAAS,aAEb,CAEAp1C,EAAGq1C,SAAWptD,KAAK0qB,SAAS0iC,QAC9B,MAEqC,IAA1BptD,KAAK0qB,SAAS2iC,SACvBhyC,GAAatD,EAAI,UAAW/X,KAAK0qB,SAAS2iC,cAGEjpD,IAA1CpE,KAAK0qB,SAASuZ,0BAChBlsB,EAAGksB,wBAA0BjkC,KAAK0qB,SAASuZ,yBAQ7C,IAFA,IAAIqpB,EAAgB,CAAC,OAAQ,QAAS,cAAe,YAE5C/uD,EAAI,EAAGA,EAAI+uD,EAAchvD,OAAQC,IAAK,CAC7C,IAAIgvD,EAAOD,EAAc/uD,GACrBmE,EAAQ1C,KAAK0qB,SAAS6iC,QAEL,IAAV7qD,IACLA,EACF2Y,GAAatD,EAAIw1C,EAAMA,GAEvBpwC,GAAgBpF,EAAIw1C,GAGtBx1C,EAAGw1C,GAAQ7qD,EAEf,CAEA,OAAOqV,CACT,EAgBA7X,EAAOirD,gBAAkB,SAAyBpzC,GAChD,GAAwB,IAApBA,EAAGy1C,cAA0C,IAApBz1C,EAAGy1C,aAAhC,CAMA,GAAsB,IAAlBz1C,EAAG3R,WAAkB,CAWvB,IAAIqnD,GAAiB,EAEjBC,EAAoB,WACtBD,GAAiB,CACnB,EAEAztD,KAAKI,GAAG,YAAastD,GAErB,IAAIC,EAAmB,WAGhBF,GACHztD,KAAKY,QAAQ,YAEjB,EAYA,OAVAZ,KAAKI,GAAG,iBAAkButD,QAC1B3tD,KAAKqqB,OAAM,WACTrqB,KAAKQ,IAAI,YAAaktD,GACtB1tD,KAAKQ,IAAI,iBAAkBmtD,GAEtBF,GAEHztD,KAAKY,QAAQ,YAEjB,GAEF,CAMA,IAAIgtD,EAAkB,CAAC,aAEvBA,EAAgBrtD,KAAK,kBAEjBwX,EAAG3R,YAAc,GACnBwnD,EAAgBrtD,KAAK,cAInBwX,EAAG3R,YAAc,GACnBwnD,EAAgBrtD,KAAK,WAInBwX,EAAG3R,YAAc,GACnBwnD,EAAgBrtD,KAAK,kBAIvBP,KAAKqqB,OAAM,WACTujC,EAAgB/uD,SAAQ,SAAUwB,GAChCL,KAAKY,QAAQP,EACf,GAAGL,KACL,GArEA,CAsEF,EAYAE,EAAOuiC,aAAe,SAAsBorB,GAC1C7tD,KAAKsrD,aAAeuC,CACtB,EAUA3tD,EAAOwiC,UAAY,WACjB,OAAO1iC,KAAKsrD,YACd,EASAprD,EAAOyiC,eAAiB,SAAwBgO,GAC9C,IACM3wC,KAAKsrD,cAAgBtrD,KAAK+oB,IAAI+kC,UAAY/zC,GAC5C/Z,KAAK+oB,IAAI+kC,SAASnd,GAElB3wC,KAAK+oB,IAAIoV,YAAcwS,CAE3B,CAAE,MAAO5tC,GACPqS,GAAMrS,EAAG,iCACX,CACF,EASA7C,EAAO0yB,SAAW,WAChB,IAAI5B,EAAShxB,KAMb,GAAIA,KAAK+oB,IAAI6J,WAAajgB,KAAYgG,IAAcO,IAAsC,IAAzBlZ,KAAK+oB,IAAIoV,YAAmB,CAe3F,OADAn+B,KAAKI,GAAG,cAXY,SAAS2tD,IACvB/8B,EAAOjI,IAAIoV,YAAc,IAEvBnN,EAAOjI,IAAI6J,WAAajgB,KAC1Bqe,EAAOpwB,QAAQ,kBAGjBowB,EAAOxwB,IAAI,aAAcutD,GAE7B,IAGOC,GACT,CAEA,OAAOhuD,KAAK+oB,IAAI6J,UAAYo7B,GAC9B,EASA9tD,EAAOge,MAAQ,WACb,OAAOle,KAAK+oB,IAAIxK,WAClB,EASAre,EAAO+d,OAAS,WACd,OAAOje,KAAK+oB,IAAIvK,YAClB,EAaAte,EAAO4rD,uBAAyB,WAC9B,IAAI36B,EAASnxB,KAEb,GAAM,+BAAgCA,KAAK+oB,IAA3C,CAIA,IAAIklC,EAAQ,WACVjuD,KAAKY,QAAQ,mBAAoB,CAC/Bm4C,cAAc,IAGZ/4C,KAAK+oB,IAAI+M,WAAa91B,KAAK0qB,SAAS2W,wBAA0BrhC,KAAK81B,aACrE91B,KAAK+oB,IAAI+M,UAAW,EAExB,EAEIo4B,EAAU,WACR,2BAA4BluD,KAAK+oB,KAA2C,uBAApC/oB,KAAK+oB,IAAIolC,yBACnDnuD,KAAK8lB,IAAI,sBAAuBmoC,GAChCjuD,KAAKY,QAAQ,mBAAoB,CAC/Bm4C,cAAc,EAEdqV,qBAAqB,IAG3B,EAEApuD,KAAKI,GAAG,wBAAyB8tD,GACjCluD,KAAKI,GAAG,WAAW,WACjB+wB,EAAO3wB,IAAI,wBAAyB0tD,GAEpC/8B,EAAO3wB,IAAI,sBAAuBytD,EACpC,GA5BA,CA6BF,EAUA/tD,EAAOmuD,mBAAqB,WAC1B,GAA8C,mBAAnCruD,KAAK+oB,IAAIulC,sBAAsC,CACxD,IAAIl2C,EAAY,eAAsB,cAAmBA,WAAa,GAEtE,GAAI,UAAU9Y,KAAK8Y,KAAe,uBAAuB9Y,KAAK8Y,GAC5D,OAAO,CAEX,CAEA,OAAO,CACT,EAMAlY,EAAOquD,gBAAkB,WACvB,IAAIrmD,EAAQlI,KAAK+oB,IAEjB,GAAI7gB,EAAMwtB,QAAUxtB,EAAMslD,cAAgBtlD,EAAMsmD,cAG9Cn7B,GAAerzB,KAAK+oB,IAAIuB,QAGxBtqB,KAAKqG,YAAW,WACd6B,EAAM0tB,QAEN,IACE1tB,EAAMomD,uBACR,CAAE,MAAOvrD,GACP/C,KAAKY,QAAQ,kBAAmBmC,EAClC,CACF,GAAG,QAEH,IACEmF,EAAMomD,uBACR,CAAE,MAAOvrD,GACP/C,KAAKY,QAAQ,kBAAmBmC,EAClC,CAEJ,EAMA7C,EAAOuuD,eAAiB,WACjBzuD,KAAK+oB,IAAI2lC,2BAKd1uD,KAAK+oB,IAAI4lC,uBAJP3uD,KAAKY,QAAQ,kBAAmB,IAAIoD,MAAM,+BAK9C,EAaA9D,EAAO2jC,wBAA0B,WAC/B,OAAO7jC,KAAK+oB,IAAI8a,yBAClB,EASA3jC,EAAO29B,0BAA4B,SAAmCsG,GACpE,OAAInkC,KAAKslC,2BACAtlC,KAAK+oB,IAAI8U,0BAA0BsG,GAGrCqB,EAAMrlC,UAAU09B,0BAA0B98B,KAAKf,KAAMmkC,EAC9D,EAQAjkC,EAAOm+B,yBAA2B,SAAkC7vB,GAC9DxO,KAAKslC,2BACPtlC,KAAK+oB,IAAIsV,yBAAyB7vB,GAElCg3B,EAAMrlC,UAAUk+B,yBAAyBt9B,KAAKf,KAAMwO,EAExD,EAgBAtO,EAAO+zB,IAAM,SAAaqU,GACxB,QAAalkC,IAATkkC,EACF,OAAOtoC,KAAK+oB,IAAIkL,IAIlBj0B,KAAKwrC,OAAOlD,EACd,EAOApoC,EAAOmiC,MAAQ,WACb2oB,EAAM4D,kBAAkB5uD,KAAK+oB,IAC/B,EAWA7oB,EAAOyqD,WAAa,WAClB,OAAI3qD,KAAKomC,eACApmC,KAAKomC,eAAenS,IAGtBj0B,KAAK+oB,IAAI4hC,UAClB,EASAzqD,EAAO2rD,YAAc,SAAqBzwC,GACxCpb,KAAK+oB,IAAI+M,WAAa1a,CACxB,EAkBAlb,EAAOmjC,aAAe,SAAsBjK,EAAM/D,EAAOtJ,GACvD,OAAK/rB,KAAKihC,yBAIHjhC,KAAK+oB,IAAIsa,aAAajK,EAAM/D,EAAOtJ,GAHjCyZ,EAAMrlC,UAAUkjC,aAAatiC,KAAKf,KAAMo5B,EAAM/D,EAAOtJ,EAIhE,EA+BA7rB,EAAOqjC,sBAAwB,SAA+B1/B,GAC5D,IAAK7D,KAAKihC,yBACR,OAAOuE,EAAMrlC,UAAUojC,sBAAsBxiC,KAAKf,KAAM6D,GAG1D,IAAI6/B,EAAmB,kBAAuB,SA0B9C,OAxBI7/B,EAAQu1B,OACVsK,EAAiBtK,KAAOv1B,EAAQu1B,MAG9Bv1B,EAAQwxB,QACVqO,EAAiBrO,MAAQxxB,EAAQwxB,QAG/BxxB,EAAQkoB,UAAYloB,EAAQs5B,WAC9BuG,EAAiBvG,QAAUt5B,EAAQkoB,UAAYloB,EAAQs5B,SAGrDt5B,EAAiB,UACnB6/B,EAA0B,QAAI7/B,EAAiB,SAG7CA,EAAQ2K,KACVk1B,EAAiBl1B,GAAK3K,EAAQ2K,IAG5B3K,EAAQowB,MACVyP,EAAiBzP,IAAMpwB,EAAQowB,KAG1ByP,CACT,EAeAxjC,EAAOk0B,mBAAqB,SAA4BvwB,EAAS2/B,GAC/D,IAAIE,EAAmB8B,EAAMrlC,UAAUi0B,mBAAmBrzB,KAAKf,KAAM6D,EAAS2/B,GAM9E,OAJIxjC,KAAKihC,0BACPjhC,KAAK+X,KAAKgE,YAAY2nB,GAGjBA,CACT,EASAxjC,EAAOiiC,sBAAwB,SAA+B5O,GAG5D,GAFAiS,EAAMrlC,UAAUgiC,sBAAsBphC,KAAKf,KAAMuzB,GAE7CvzB,KAAKihC,yBAIP,IAHA,IAAIxJ,EAASz3B,KAAK0gB,GAAG,SACjBniB,EAAIk5B,EAAOn5B,OAERC,KACDg1B,IAAUkE,EAAOl5B,IAAMg1B,IAAUkE,EAAOl5B,GAAGg1B,OAC7CvzB,KAAK+X,KAAKkI,YAAYwX,EAAOl5B,GAIrC,EAYA2B,EAAO0jC,wBAA0B,WAC/B,GAAiD,mBAAtC5jC,KAAK+X,KAAK6rB,wBACnB,OAAO5jC,KAAK+X,KAAK6rB,0BAGnB,IAAIirB,EAAuB,CAAC,EAa5B,YAXiD,IAAtC7uD,KAAK+X,KAAK+2C,8BAAwF,IAAtC9uD,KAAK+X,KAAKg3C,0BAC/EF,EAAqBG,mBAAqBhvD,KAAK+X,KAAK+2C,wBACpDD,EAAqBI,iBAAmBjvD,KAAK+X,KAAKg3C,yBAGhD,iBAA4D,mBAA7B,gBAAqB7sC,IACtD2sC,EAAqBK,aAAe,gBAAqBhtC,MAChD,iBAAwB,gBAAqBitC,QAAiE,iBAAhD,gBAAqBA,OAAOC,kBACnGP,EAAqBK,aAAe,SAAchtC,MAAQ,gBAAqBitC,OAAOC,iBAGjFP,CACT,EAEO7D,CACT,CAl+ByB,CAk+BvBt9B,IAYFk9B,GAAmBI,GAAO,YAAY,WACpC,GAAKtxC,KAAL,CAIA,IAAIxR,EAAQ,kBAAuB,SAC/BqrB,EAAQ,kBAAuB,SAKnC,OAJAA,EAAM6F,KAAO,WACb7F,EAAM4J,QAAU,KAChB5J,EAAM8B,MAAQ,UACdntB,EAAM6T,YAAYwX,GACXrrB,CARP,CASF,IASA8iD,GAAM/gB,YAAc,WAElB,IACE+gB,GAAMqE,SAAS7nB,OAAS,EAC1B,CAAE,MAAOzkC,GACP,OAAO,CACT,CAEA,SAAUioD,GAAMqE,WAAYrE,GAAMqE,SAAS3qB,YAC7C,EAUAsmB,GAAMtmB,YAAc,SAAUrkC,GAC5B,OAAO2qD,GAAMqE,SAAS3qB,YAAYrkC,EACpC,EAYA2qD,GAAMrmB,cAAgB,SAAUC,EAAQ/gC,GACtC,OAAOmnD,GAAMtmB,YAAYE,EAAOvkC,KAClC,EAYA2qD,GAAMsE,iBAAmB,WAEvB,IACE,IAAI9nB,EAASwjB,GAAMqE,SAAS7nB,OAC5BwjB,GAAMqE,SAAS7nB,OAASA,EAAS,EAAI,GACrC,IAAI+nB,EAAa/nB,IAAWwjB,GAAMqE,SAAS7nB,OAM3C,OAAI+nB,GAAcz1C,IAChB,gBAAoB,WACdkxC,IAASA,GAAM7qD,YACjB6qD,GAAM7qD,UAAU8kC,sBAAwBuC,IAAWwjB,GAAMqE,SAAS7nB,OAEtE,KAEO,GAGF+nB,CACT,CAAE,MAAOxsD,GACP,OAAO,CACT,CACF,EAYAioD,GAAMwE,cAAgB,WACpB,IACE,IAAIloB,EAAQ0jB,GAAMqE,SAAS/nB,MAW3B,OARA0jB,GAAMqE,SAAS/nB,OAASA,EAEpB0jB,GAAMqE,SAAS/nB,MACjBjsB,GAAa2vC,GAAMqE,SAAU,QAAS,SAEtClyC,GAAgB6tC,GAAMqE,SAAU,SAG3B/nB,IAAU0jB,GAAMqE,SAAS/nB,KAClC,CAAE,MAAOvkC,GACP,OAAO,CACT,CACF,EAUAioD,GAAMyE,uBAAyB,WAG7B,GAAI92C,IAAcO,IAAaC,GAAiB,GAC9C,OAAO,EAIT,IACE,IAAIqoC,EAAewJ,GAAMqE,SAAS7N,aAElC,OADAwJ,GAAMqE,SAAS7N,aAAeA,EAAe,EAAI,GAC1CA,IAAiBwJ,GAAMqE,SAAS7N,YACzC,CAAE,MAAOz+C,GACP,OAAO,CACT,CACF,EAWAioD,GAAM0E,sBAAwB,WAG5B,IACE,IAAIC,EAAO,WAAiB,EAE5Bv7C,OAAO2Q,eAAe,kBAAuB,SAAU,MAAO,CAC5DzC,IAAKqtC,EACLvtC,IAAKutC,IAEPv7C,OAAO2Q,eAAe,kBAAuB,SAAU,MAAO,CAC5DzC,IAAKqtC,EACLvtC,IAAKutC,IAEPv7C,OAAO2Q,eAAe,kBAAuB,SAAU,YAAa,CAClEzC,IAAKqtC,EACLvtC,IAAKutC,IAEPv7C,OAAO2Q,eAAe,kBAAuB,SAAU,YAAa,CAClEzC,IAAKqtC,EACLvtC,IAAKutC,GAET,CAAE,MAAO5sD,GACP,OAAO,CACT,CAEA,OAAO,CACT,EAUAioD,GAAM4E,yBAA2B,WAC/B,OAAO71C,IAAiBD,IAAUZ,EACpC,EAUA8xC,GAAM6E,0BAA4B,WAChC,SAAU7E,GAAMqE,WAAYrE,GAAMqE,SAASS,YAC7C,EAUA9E,GAAM+E,0BAA4B,WAChC,SAAU/E,GAAMqE,WAAYrE,GAAMqE,SAASlO,YAC7C,EASA6J,GAAM9kC,OAAS,CAAC,YAAa,UAAW,QAAS,QAAS,UAAW,UAAW,iBAAkB,aAAc,UAAW,iBAAkB,UAAW,UAAW,UAAW,SAAU,QAAS,iBAAkB,aAAc,WAAY,OAAQ,QAAS,aAAc,SAAU,gBAqDtR,CAAC,CAAC,sBAAuB,iBAAkB,CAAC,uBAAwB,0BAA2B,CAAC,oBAAqB,yBAA0B,CAAC,2BAA4B,4BAA6B,CAAC,4BAA6B,6BAA8B,CAAC,4BAA6B,8BAA8BrnB,SAAQ,SAAUuM,GACjV,IAAI3H,EAAM2H,EAAK,GACXK,EAAKL,EAAK,GACdw/C,GAAmBI,GAAM7qD,UAAWsD,GAAK,WACvC,OAAOunD,GAAMv/C,IACf,IAAG,EACL,IACAu/C,GAAM7qD,UAAU8kC,sBAAwB+lB,GAAMsE,mBAU9CtE,GAAM7qD,UAAU8sD,yBAA2BnzC,GAW3CkxC,GAAM7qD,UAAUglC,0BAA2B,EAS3C6lB,GAAM7qD,UAAUwgC,wBAAyB,EAQzCqqB,GAAM7qD,UAAU0gC,0BAA2B,EAO3CmqB,GAAM7qD,UAAUmlC,8BAAgC0lB,GAAMqE,WAAYrE,GAAMqE,SAASxxB,2BAIjFmtB,GAAMgF,iBAAmB,WAGnBp3C,IAAmB,IAAQI,KAAeE,KAC5CwrB,GAAcsmB,GAAMqE,UAAYrE,GAAMqE,SAASx3C,YAAY1X,UAAUukC,YAErEsmB,GAAMqE,SAASx3C,YAAY1X,UAAUukC,YAAc,SAAUrkC,GAG3D,OAAIA,GAFY,4CAEMf,KAAKe,GAClB,QAGFqkC,GAAY3jC,KAAKf,KAAMK,EAChC,EAEJ,EAEA2qD,GAAMiF,mBAAqB,WACzB,IAAIC,EAAIlF,GAAMqE,SAASx3C,YAAY1X,UAAUukC,YAM7C,OAJIA,KACFsmB,GAAMqE,SAASx3C,YAAY1X,UAAUukC,YAAcA,IAG9CwrB,CACT,EAGAlF,GAAMgF,mBAENhF,GAAMe,oBAAsB,SAAUh0C,GACpC,GAAKA,EAAL,CASA,IALIA,EAAG+F,YACL/F,EAAG+F,WAAWmC,YAAYlI,GAIrBA,EAAGwzC,iBACRxzC,EAAGkI,YAAYlI,EAAG8D,YAKpB9D,EAAGoF,gBAAgB,OAGI,mBAAZpF,EAAGgnB,MAEZ,WACE,IACEhnB,EAAGgnB,MACL,CAAE,MAAOh8B,GACT,CACD,CALD,EAlBF,CAyBF,EAEAioD,GAAM4D,kBAAoB,SAAU72C,GAClC,GAAKA,EAAL,CAOA,IAHA,IAAIN,EAAUM,EAAGsf,iBAAiB,UAC9B94B,EAAIkZ,EAAQnZ,OAETC,KACLwZ,EAAGkI,YAAYxI,EAAQlZ,IAKzBwZ,EAAGoF,gBAAgB,OAEI,mBAAZpF,EAAGgnB,MAEZ,WACE,IACEhnB,EAAGgnB,MACL,CAAE,MAAOh8B,GACT,CACD,CALD,EAfF,CAsBF,EAOA,CAaA,QAeA,eAaA,WAaA,WAgBA,OAcA,eAAelE,SAAQ,SAAUmZ,GAC/BgzC,GAAM7qD,UAAU6X,GAAQ,WACtB,OAAOhY,KAAK+oB,IAAI/Q,IAAShY,KAAK+oB,IAAIuO,aAAatf,EACjD,CACF,IAKA,CAYA,QAYA,eAYA,WAeA,OAaA,eAAenZ,SAAQ,SAAUmZ,GAC/BgzC,GAAM7qD,UAAU,MAAQupB,GAAc1R,IAAS,SAAUurC,GACvDvjD,KAAK+oB,IAAI/Q,GAAQurC,EAEbA,EACFvjD,KAAK+oB,IAAI1N,aAAarD,EAAMA,GAE5BhY,KAAK+oB,IAAI5L,gBAAgBnF,EAE7B,CACF,IAMA,CAWA,SAWA,cAYA,WAYA,SAYA,SAkBA,UAaA,QAaA,UAYA,WAaA,QAcA,eAiBA,sBAYA,0BAYA,SAgBA,eAkBA,aAYA,aAYA,cAaA,eAAenZ,SAAQ,SAAUmZ,GAC/BgzC,GAAM7qD,UAAU6X,GAAQ,WACtB,OAAOhY,KAAK+oB,IAAI/Q,EAClB,CACF,IAMA,CAYA,SAWA,MAYA,SAkBA,UAcA,eAiBA,sBAWA,0BAaA,eAAenZ,SAAQ,SAAUmZ,GAC/BgzC,GAAM7qD,UAAU,MAAQupB,GAAc1R,IAAS,SAAUurC,GACvDvjD,KAAK+oB,IAAI/Q,GAAQurC,CACnB,CACF,IAIA,CAQA,QAQA,OAQA,QAAQ1kD,SAAQ,SAAUmZ,GACxBgzC,GAAM7qD,UAAU6X,GAAQ,WACtB,OAAOhY,KAAK+oB,IAAI/Q,IAClB,CACF,IACA0V,GAAK6X,mBAAmBylB,IAWxBA,GAAM7kB,oBAAsB,CAAC,EAW7B6kB,GAAM7kB,oBAAoBzB,YAAc,SAAUrkC,GAEhD,IACE,OAAO2qD,GAAMqE,SAAS3qB,YAAYrkC,EACpC,CAAE,MAAO0C,GACP,MAAO,EACT,CACF,EAeAioD,GAAM7kB,oBAAoBL,gBAAkB,SAAUnuB,EAAQ9T,GAE5D,GAAI8T,EAAOtX,KACT,OAAO2qD,GAAM7kB,oBAAoBzB,YAAY/sB,EAAOtX,MAC/C,GAAIsX,EAAOsc,IAAK,CACrB,IAAIsV,EAAM5N,GAAiBhkB,EAAOsc,KAClC,OAAO+2B,GAAM7kB,oBAAoBzB,YAAY,SAAW6E,EAC1D,CAEA,MAAO,EACT,EAeAyhB,GAAM7kB,oBAAoBE,aAAe,SAAU1uB,EAAQkc,EAAMhwB,GAC/DgwB,EAAK2X,OAAO7zB,EAAOsc,IACrB,EAMA+2B,GAAM7kB,oBAAoB9kC,QAAU,WAAa,EAGjD2pD,GAAMvlB,sBAAsBulB,GAAM7kB,qBAClCzY,GAAKmX,aAAa,QAASmmB,IAI3B,IAAImF,GAAwB,CAgB5B,WAgBA,QAgBA,UAgBA,UAgBA,UAgBA,iBAgBA,aAgBA,aAgBA,SAgBA,eAgBA,mBAIIC,GAAoB,CACtBC,QAAS,UACTC,eAAgB,iBAChBC,QAAS,UACTC,OAAQ,UAENC,GAAmB,CAAC,OAAQ,SAAU,QAAS,SAAU,QAAS,SAAU,QAC5EC,GAAqB,CAAC,EAQ1BD,GAAiB5xD,SAAQ,SAAUmf,GACjC,IAAIulC,EAAoB,MAAhBvlC,EAAE2yC,OAAO,GAAa,KAAO3yC,EAAExU,UAAU,GAAKwU,EACtD0yC,GAAmB1yC,GAAK,cAAgBulC,CAC1C,IACA,IAAIqN,GAAsB,CACxBC,KAAM,IACNC,OAAQ,IACRC,MAAO,IACPC,OAAQ,IACRC,MAAO,KACPC,OAAQ,KACRC,KAAMx+C,KAaJif,GAAsB,SAAU4C,GAelC,SAAS5C,EAAOzjB,EAAKtK,EAASwmB,GAC5B,IAAIvD,EAqBJ,GAlBA3Y,EAAIK,GAAKL,EAAIK,IAAM3K,EAAQ2K,IAAM,aAAeuT,MAMhDle,EAAU,GAAO+tB,EAAOw/B,eAAejjD,GAAMtK,IAGrCwnB,cAAe,EAEvBxnB,EAAQgX,UAAW,EAEnBhX,EAAQ+kB,SAAU,EAGlB/kB,EAAQynB,qBAAsB,GAEzBznB,EAAQkoB,SACX,GAA2B,mBAAhB5d,EAAIkjD,QAAwB,CACrC,IAAIA,EAAUljD,EAAIkjD,QAAQ,UAEtBA,GAAWA,EAAQ7zC,eACrB3Z,EAAQkoB,SAAWslC,EAAQ7zC,aAAa,QAE5C,MAGE,IAFA,IAAIvB,EAAU9N,EAEP8N,GAAgC,IAArBA,EAAQ1B,UAAgB,CACxC,GAAI6C,GAAcnB,GAAS9U,eAAe,QAAS,CACjDtD,EAAQkoB,SAAW9P,EAAQuB,aAAa,QACxC,KACF,CAEAvB,EAAUA,EAAQ6B,UACpB,CAiFJ,IA5EAgJ,EAAQ0N,EAAWzzB,KAAKf,KAAM,KAAM6D,EAASwmB,IAAUrqB,MAEjDsxD,+BAAiC,SAAUvuD,GAC/C,OAAO+jB,EAAMyqC,0BAA0BxuD,EACzC,EAEA+jB,EAAM0qC,yBAA2B,SAAUzuD,GACzC,OAAO+jB,EAAM2qC,mBAAmB1uD,EAClC,EAEA+jB,EAAM4qC,oBAAsB,SAAU3uD,GACpC,OAAO+jB,EAAM6qC,eAAe5uD,EAC9B,EAEA+jB,EAAM8qC,oBAAsB,SAAU7uD,GACpC,OAAO+jB,EAAM+qC,eAAe9uD,EAC9B,EAEA+jB,EAAMgrC,8BAAgC,SAAU/uD,GAC9C,OAAO+jB,EAAMirC,yBAAyBhvD,EACxC,EAEA+jB,EAAMkrC,sBAAwB,SAAUjvD,GACtC,OAAO+jB,EAAMmrC,iBAAiBlvD,EAChC,EAEA+jB,EAAMorC,4BAA8B,SAAUnvD,GAC5C,OAAO+jB,EAAMqrC,uBAAuBpvD,EACtC,EAEA+jB,EAAMsrC,2BAA6B,SAAUrvD,GAC3C,OAAO+jB,EAAMurC,sBAAsBtvD,EACrC,EAEA+jB,EAAMwrC,0BAA4B,SAAUvvD,GAC1C,OAAO+jB,EAAMyrC,qBAAqBxvD,EACpC,EAEA+jB,EAAM0rC,yBAA2B,SAAUzvD,GACzC,OAAO+jB,EAAM2rC,oBAAoB1vD,EACnC,EAEA+jB,EAAM4rC,oBAAsB,SAAU3vD,GACpC,OAAO+jB,EAAM6rC,eAAe5vD,EAC9B,EAGA+jB,EAAM8rC,eAAgB,EAEtB9rC,EAAMtR,IAAMU,GAAa4Q,EAAM6D,KAE/B7D,EAAM+xB,OAAS7jC,GAEf8R,EAAM+rC,mBAAoB,EAG1B/rC,EAAMgsC,iBAAmB,GAEzBhsC,EAAMmH,UAAW,EAEjBnH,EAAM4Z,aAAc,EAEpB5Z,EAAMisC,aAAc,EAEpBjsC,EAAMksC,eAAgB,EAEtBlsC,EAAMmsC,gBAAiB,EAEvBnsC,EAAMosC,kBAAmB,EAEzBpsC,EAAMqsC,gBAAkB,CACtBC,aAAc,KACdC,eAAgB,KAIbvsC,EAAM4D,WAAa5D,EAAM4D,SAASqf,YAAcjjB,EAAM4D,SAASqf,UAAUzrC,OAC5E,MAAM,IAAI0F,MAAM,2HAWlB,GAPA8iB,EAAM3Y,IAAMA,EAEZ2Y,EAAMwsC,cAAgBnlD,GAAOiP,GAAcjP,GAE3C2Y,EAAMiF,SAASjF,EAAM4D,SAASqB,UAG1BloB,EAAQmoB,UAAW,CAErB,IAAIunC,EAAmB,CAAC,EACxBn/C,OAAO8G,oBAAoBrX,EAAQmoB,WAAWntB,SAAQ,SAAUwK,GAC9DkqD,EAAiBlqD,EAAKhH,eAAiBwB,EAAQmoB,UAAU3iB,EAC3D,IACAyd,EAAM0sC,WAAaD,CACrB,MACEzsC,EAAM0sC,WAAa5hC,EAAOzxB,UAAUuqB,SAASsB,UAG/ClF,EAAM2sC,cAGN3sC,EAAM4sC,QAAU7vD,EAAQ0nC,QAAU,GAElCzkB,EAAM6sC,YAAc9vD,EAAQiyB,SAI5B3nB,EAAI2nB,UAAW,EACf3nB,EAAIgP,gBAAgB,YACpB2J,EAAM8sC,cAAe,EACrB9sC,EAAM+sC,eAAiB,GACvB/sC,EAAMgtC,qBAAuB,GAEzB3lD,EAAImpB,aAAa,YACnBxQ,EAAMitC,UAAS,GAIfjtC,EAAMitC,SAASjtC,EAAM4D,SAASqpC,UAI5BlwD,EAAQmwD,SACV5/C,OAAOC,KAAKxQ,EAAQmwD,SAASn1D,SAAQ,SAAUwK,GAC7C,GAA2B,mBAAhByd,EAAMzd,GACf,MAAM,IAAIrF,MAAM,WAAcqF,EAAO,mBAEzC,IAUFyd,EAAMmtC,YAAa,EACnBntC,EAAMiC,IAAMjC,EAAMjM,WAElB+N,IAAQ,aAAuB9B,GAAQ,CACrC+B,YAAa,QAMX/B,EAAM+xB,OAAOI,oBACf74C,GAAG,IAAU0mB,EAAM+xB,OAAOqb,iBAAkBptC,EAAMwqC,gCAElDxqC,EAAM1mB,GAAG0mB,EAAM+xB,OAAOqb,iBAAkBptC,EAAMwqC,iCAG5CxqC,EAAMqtC,QACRrtC,EAAM1mB,GAAG,CAAC,cAAe,UAAW0mB,EAAM4qC,qBAO5C,IAAI0C,EAAoBzqC,GAAe7C,EAAM4D,UAEzC7mB,EAAQmwD,SACV5/C,OAAOC,KAAKxQ,EAAQmwD,SAASn1D,SAAQ,SAAUwK,GAC7Cyd,EAAMzd,GAAMxF,EAAQmwD,QAAQ3qD,GAC9B,IAIExF,EAAQwS,OACVyQ,EAAMzQ,OAAM,GAGdyQ,EAAM4D,SAASoD,cAAgBsmC,EAC/BttC,EAAMutC,YAAc,GAEpBvtC,EAAMk7B,cAAcn+C,EAAQm+C,eAE5Bl7B,EAAMuE,eAGNvE,EAAM0oB,QAAuC,UAA/BrhC,EAAIxJ,SAAStC,eAIvBykB,EAAMgP,WACRhP,EAAMxK,SAAS,wBAEfwK,EAAMxK,SAAS,yBAIjBwK,EAAMiC,IAAI1N,aAAa,OAAQ,UAE3ByL,EAAM0oB,UACR1oB,EAAMiC,IAAI1N,aAAa,aAAcyL,EAAM8E,SAAS,iBAEpD9E,EAAMiC,IAAI1N,aAAa,aAAcyL,EAAM8E,SAAS,iBAGlD9E,EAAM0oB,WACR1oB,EAAMxK,SAAS,aAGbwK,EAAMwtC,qBACRxtC,EAAMxK,SAAS,eAOb9C,IACFsN,EAAMxK,SAAS,qBAIZxC,IACHgN,EAAMxK,SAAS,oBAIjBsV,EAAOC,QAAQ/K,EAAM6D,MAAO,aAAuB7D,GAEnD,IAAIytC,EAAe3/C,GAAUtS,MAAM,KAAK,GAwCxC,OAtCAwkB,EAAMxK,SAAS,QAAUi4C,GAIzBztC,EAAM0tC,YAAW,GAEjB1tC,EAAMoJ,qBAENpJ,EAAMhB,IAAI,QAAQ,SAAU/iB,GAC1B,OAAO+jB,EAAM2tC,uBAAuB1xD,EACtC,IAEA+jB,EAAM1mB,GAAG,cAAc,SAAU2C,GAC/B,OAAO+jB,EAAM4tC,kBAAkB3xD,EACjC,IAEA+jB,EAAM1mB,GAAG,WAAW,SAAU2C,GAC5B,OAAO+jB,EAAMyI,cAAcxsB,EAC7B,IAEA+jB,EAAM1mB,GAAG,kBAAkB,SAAU2C,GACnC,OAAO+jB,EAAM8D,qBAAqB7nB,EACpC,IAEA+jB,EAAM6tC,YAAY7tC,EAAM4D,SAASiqC,aAEjC7tC,EAAM8tC,WAAW9tC,EAAM4D,SAASkqC,YAIhC9tC,EAAM1mB,GAAG,SAAS,WAGhB0mB,EAAMyxB,gBAAgBzxB,EAAM4D,SAAS6tB,iBAErCzxB,EAAM0xB,cAAc1xB,EAAM4D,SAAS8tB,cACrC,IAEO1xB,CACT,EArUA,aAAe8K,EAAQ4C,GAgVvB,IAAIt0B,EAAS0xB,EAAOzxB,UA+kJpB,OA7kJAD,EAAOmB,QAAU,WACf,IAAI6mB,EAASloB,KAQbA,KAAKY,QAAQ,WAEbZ,KAAKQ,IAAI,WAETA,GAAI,IAAUR,KAAK64C,OAAOqb,iBAAkBl0D,KAAKsxD,gCACjD9wD,GAAI,IAAU,UAAWR,KAAKwxD,0BAE1BxxD,KAAK60D,UAAY70D,KAAK60D,SAAS/2C,aACjC9d,KAAK60D,SAAS/2C,WAAWmC,YAAYjgB,KAAK60D,UAC1C70D,KAAK60D,SAAW,MAIlBjjC,EAAOC,QAAQ7xB,KAAK2qB,KAAO,KAEvB3qB,KAAKmO,KAAOnO,KAAKmO,IAAIiT,SACvBphB,KAAKmO,IAAIiT,OAAS,MAGhBphB,KAAK+oB,KAAO/oB,KAAK+oB,IAAI3H,SACvBphB,KAAK+oB,IAAI3H,OAAS,MAGhBphB,KAAK88B,QACP98B,KAAK88B,MAAMz7B,UACXrB,KAAK6yD,mBAAoB,EACzB7yD,KAAK0zD,QAAU,IAGb1zD,KAAK80D,kBACP90D,KAAK80D,gBAAkB,MAGrB90D,KAAKmO,MACPnO,KAAKmO,IAAM,MAhrYfo4B,GAmrYsBvmC,KAnrYKwO,MAAQ,KAurYjCqxB,GAAIlT,MAAM9tB,SAAQ,SAAUwK,GAC1B,IAAImyB,EAAQqE,GAAIx2B,GAEZivB,EAAOpQ,EAAOsT,EAAMgE,cAIpBlH,GAAQA,EAAK93B,KACf83B,EAAK93B,KAET,IAEAg0B,EAAWr0B,UAAUkB,QAAQN,KAAKf,KAAM,CACtCyrB,UAAWzrB,KAAK0qB,SAASe,WAE7B,EASAvrB,EAAO2a,SAAW,WAChB,IACI9C,EADA5J,EAAMnO,KAAKmO,IAEX6+C,EAAiBhtD,KAAK80D,gBAAkB3mD,EAAI2P,YAAc3P,EAAI2P,WAAWwZ,cAAgBnpB,EAAI2P,WAAWwZ,aAAa,mBACrHy9B,EAA8C,aAAnC/0D,KAAKmO,IAAI2M,QAAQzY,cAE5B2qD,EACFj1C,EAAK/X,KAAK+oB,IAAM5a,EAAI2P,WACVi3C,IACVh9C,EAAK/X,KAAK+oB,IAAMyL,EAAWr0B,UAAU0a,SAAS9Z,KAAKf,KAAM,QAK3D,IAAIsd,EAAQF,GAAcjP,GAE1B,GAAI4mD,EAAU,CAIZ,IAHAh9C,EAAK/X,KAAK+oB,IAAM5a,EAChBA,EAAMnO,KAAKmO,IAAM,kBAAuB,SAEjC4J,EAAGwU,SAASjuB,QACjB6P,EAAI4N,YAAYhE,EAAG8D,YAGhBG,GAASjE,EAAI,aAChBuE,GAASvE,EAAI,YAGfA,EAAGgE,YAAY5N,GACf6+C,EAAiBhtD,KAAK80D,gBAAkB/8C,EAKxC3D,OAAOC,KAAK0D,GAAIlZ,SAAQ,SAAUmf,GAChC,IACE7P,EAAI6P,GAAKjG,EAAGiG,EACd,CAAE,MAAOjb,GACT,CACF,GACF,CAoDA,GAjDAoL,EAAIkN,aAAa,WAAY,MAC7BiC,EAAM03C,SAAW,MAMb57C,IAAcF,IAAaK,MAC7BpL,EAAIkN,aAAa,OAAQ,eACzBiC,EAAM2X,KAAO,eAIf9mB,EAAIgP,gBAAgB,SACpBhP,EAAIgP,gBAAgB,UAEhB,UAAWG,UACNA,EAAMY,MAGX,WAAYZ,UACPA,EAAMW,OAGf7J,OAAO8G,oBAAoBoC,GAAOze,SAAQ,SAAU0uD,GAI5CwH,GAAqB,UAATxH,GAChBx1C,EAAGsD,aAAakyC,EAAMjwC,EAAMiwC,IAG1BwH,GACF5mD,EAAIkN,aAAakyC,EAAMjwC,EAAMiwC,GAEjC,IAIAp/C,EAAIi/C,SAAWj/C,EAAIK,GACnBL,EAAIK,IAAM,aACVL,EAAIkO,UAAY,WAEhBlO,EAAIiT,OAASrJ,EAAGqJ,OAASphB,KAEzBA,KAAKsc,SAAS,eAI4B,IAAtC,6BAA4C,CAC9Ctc,KAAK60D,SAAWpzC,GAAmB,yBACnC,IAAIwzC,EAAkBx0C,GAAE,wBACpBy0C,EAAOz0C,GAAE,QACby0C,EAAKp5C,aAAa9b,KAAK60D,SAAUI,EAAkBA,EAAgBx+B,YAAcy+B,EAAKr5C,WACxF,CAEA7b,KAAKm1D,OAAQ,EACbn1D,KAAKm0D,QAAS,EAEdn0D,KAAKke,MAAMle,KAAK0qB,SAASxM,OACzBle,KAAKie,OAAOje,KAAK0qB,SAASzM,QAC1Bje,KAAKw1B,KAAKx1B,KAAK0qB,SAAS8K,MACxBx1B,KAAKo1D,MAAMp1D,KAAK0qB,SAAS0qC,OACzBp1D,KAAKq1D,YAAYr1D,KAAK0qB,SAAS2qC,aAE/Br1D,KAAK68B,YAAY78B,KAAK0qB,SAASmS,aAAe78B,KAAK0qB,SAAS4qC,aAK5D,IAFA,IAAIC,EAAQpnD,EAAIqnD,qBAAqB,KAE5Bj3D,EAAI,EAAGA,EAAIg3D,EAAMj3D,OAAQC,IAAK,CACrC,IAAIk3D,EAASF,EAAMv2C,KAAKzgB,GACxB+d,GAASm5C,EAAQ,cACjBA,EAAOp6C,aAAa,SAAU,SAChC,CAsBA,OAlBAlN,EAAI+8C,kBAAoB/8C,EAAIq/C,aAExBr/C,EAAI2P,aAAekvC,GACrB7+C,EAAI2P,WAAWhC,aAAa/D,EAAI5J,GAQlCuN,GAAUvN,EAAK4J,GACf/X,KAAK6qB,UAAU9U,QAAQ5H,GAGvBnO,KAAK+oB,IAAI1N,aAAa,OAAQrb,KAAKihD,WACnCjhD,KAAK+oB,IAAI1N,aAAa,YAAa,MACnCrb,KAAK+oB,IAAMhR,EACJA,CACT,EAkBA7X,EAAO28B,YAAc,SAAqBn6B,GACxC,IAAKA,EACH,OAAO1C,KAAK01D,SAAS,eAGT,cAAVhzD,GAAmC,oBAAVA,EAK7B1C,KAAK21D,UAAU,iBAAkBjzD,GAJ/B0S,GAAMkB,KAAK,gEAAuE5T,EAAQ,IAM9F,EAaAxC,EAAOge,MAAQ,SAAexb,GAC5B,OAAO1C,KAAK0uB,UAAU,QAAShsB,EACjC,EAaAxC,EAAO+d,OAAS,SAAgBvb,GAC9B,OAAO1C,KAAK0uB,UAAU,SAAUhsB,EAClC,EAiBAxC,EAAOwuB,UAAY,SAAmBknC,EAAYlzD,GAChD,IAAImzD,EAAgBD,EAAa,IAEjC,QAAcxxD,IAAV1B,EACF,OAAO1C,KAAK61D,IAAkB,EAGhC,GAAc,KAAVnzD,GAA0B,SAAVA,EAIlB,OAFA1C,KAAK61D,QAAiBzxD,OACtBpE,KAAK2xD,iBAIP,IAAImE,EAAYv9C,WAAW7V,GAEvBusB,MAAM6mC,GACR1gD,GAAMmB,MAAM,mBAAsB7T,EAAQ,sBAAyBkzD,IAIrE51D,KAAK61D,GAAiBC,EACtB91D,KAAK2xD,iBACP,EAiBAzxD,EAAOk1D,MAAQ,SAAelhB,GAC5B,IArinBiD18B,EAAQ5Y,EAqinBrD0pB,EAAStoB,KAEb,QAAaoE,IAAT8vC,EACF,QAASl0C,KAAKm0D,OAGhBn0D,KAAKm0D,SAAWjgB,EAEZ/sB,GAAUnnB,OACZA,KAAKQ,IAAI,CAAC,cAAe,UAAWR,KAAK0xD,qBAGvCxd,GACFl0C,KAAKsc,SAAS,aACdtc,KAAKw1B,MAAK,GAnjnB6C52B,EAojnB9B,WACvB0pB,EAAOloB,GAAG,CAAC,cAAe,UAAWkoB,EAAOopC,oBAC9C,EArjnBAvqC,GAD+C3P,EAojnB5BxX,MAljnBrBpB,KAEK4Y,EAAOsR,mBACVtR,EAAOsR,iBAAmB,IAG5BtR,EAAOsR,iBAAiBvoB,KAAK3B,KAgjnB3BoB,KAAKyc,YAAY,aAGnBzc,KAAK2xD,gBACP,EAiBAzxD,EAAOs1B,KAAO,SAAc0e,GAC1B,QAAa9vC,IAAT8vC,EACF,QAASl0C,KAAKm1D,MAGhBn1D,KAAKm1D,QAAUjhB,EAEXA,GACFl0C,KAAKsc,SAAS,YACdtc,KAAKo1D,OAAM,IAEXp1D,KAAKyc,YAAY,WAErB,EAuBAvc,EAAOm1D,YAAc,SAAqBU,GACxC,QAAc3xD,IAAV2xD,EACF,OAAO/1D,KAAKg2D,aAId,IAAK,aAAa12D,KAAKy2D,GACrB,MAAM,IAAI/xD,MAAM,kGAGlBhE,KAAKg2D,aAAeD,EAGpB/1D,KAAKo1D,OAAM,GACXp1D,KAAK2xD,gBACP,EASAzxD,EAAOyxD,eAAiB,WACtB,IAA0C,IAAtC,6BAAJ,CAoBA,IAAIzzC,EACAD,EAEAg4C,EAcAC,QAZsB9xD,IAAtBpE,KAAKg2D,cAAoD,SAAtBh2D,KAAKg2D,aAE5Bh2D,KAAKg2D,aACVh2D,KAAKm2D,aAAe,EAEfn2D,KAAKm2D,aAAe,IAAMn2D,KAAKo2D,cAG/B,QAIa9zD,MAAM,KAC/B+zD,EAAkBH,EAAW,GAAKA,EAAW,GAI/Ch4C,OAFkB9Z,IAAhBpE,KAAKs2D,OAECt2D,KAAKs2D,YACalyD,IAAjBpE,KAAKu2D,QAENv2D,KAAKu2D,QAAUF,EAGfr2D,KAAKm2D,cAAgB,IAK7Bl4C,OAFmB7Z,IAAjBpE,KAAKu2D,QAEEv2D,KAAKu2D,QAGLr4C,EAAQm4C,EAKjBJ,EADE,aAAa32D,KAAKU,KAAKwO,MACf,cAAgBxO,KAAKwO,KAErBxO,KAAKwO,KAAO,cAIxBxO,KAAKsc,SAAS25C,GACdt0C,GAAe3hB,KAAK60D,SAAU,YAAcoB,EAAU,sBAAwB/3C,EAAQ,wBAA0BD,EAAS,0BAA4Bg4C,EAAU,gEAAoF,IAAlBI,EAAwB,oBAlDzP,KAlBA,CACE,IAAIG,EAAgC,iBAAhBx2D,KAAKs2D,OAAsBt2D,KAAKs2D,OAASt2D,KAAK0qB,SAASxM,MAEvEu4C,EAAkC,iBAAjBz2D,KAAKu2D,QAAuBv2D,KAAKu2D,QAAUv2D,KAAK0qB,SAASzM,OAE1Ey4C,EAAS12D,KAAK88B,OAAS98B,KAAK88B,MAAM/kB,KAElC2+C,IACEF,GAAU,IACZE,EAAOx4C,MAAQs4C,GAGbC,GAAW,IACbC,EAAOz4C,OAASw4C,GAKtB,CAmDF,EAeAv2D,EAAOgqC,UAAY,SAAmBF,EAAUryB,GAC9C,IAAIkZ,EAAS7wB,KAGTA,KAAK88B,OACP98B,KAAK22D,cAGP,IAAIC,EAAgBltC,GAAcsgB,GAC9B6sB,EAAgB7sB,EAAS2mB,OAAO,GAAGtuD,cAAgB2nC,EAASnqC,MAAM,GAEhD,UAAlB+2D,GAA6B52D,KAAKmO,MACpCuf,GAAKsX,QAAQ,SAAS+mB,oBAAoB/rD,KAAKmO,KAC/CnO,KAAKmO,IAAIiT,OAAS,KAClBphB,KAAKmO,IAAM,MAGbnO,KAAK82D,UAAYF,EAEjB52D,KAAKiuB,UAAW,EAChB,IAAI8lC,EAAW/zD,KAAK+zD,YAGW,iBAApB/zD,KAAK+zD,aAA+C,IAApB/zD,KAAK+zD,YAAuB/zD,KAAK0qB,SAASqsC,qBACnFhD,GAAW,GAIb,IAAIiD,EAAc,CAChBr/C,OAAQA,EACRo8C,SAAUA,EACV,uBAA0B/zD,KAAK0qB,SAAS2W,uBACxC,SAAYrhC,KAAKwO,KACjB,OAAUxO,KAAKwO,KAAO,IAAMqoD,EAAgB,OAC5C,YAAe72D,KAAK0qB,SAAS4Z,YAC7B,QAAWtkC,KAAK0qB,SAAS2iC,QACzB,KAAQrtD,KAAK0qB,SAASusC,KACtB,wBAA2Bj3D,KAAK0qB,SAASuZ,wBACzC,MAASjkC,KAAK0qB,SAAS4c,MACvB,OAAUtnC,KAAKurC,SACf,SAAYvrC,KAAK+rB,WACjB,eAAkB/rB,KAAK80D,kBAAmB,EAC1C,SAAU90D,KAAK0qB,SAAS,UACxB,oBAAuB1qB,KAAK0qB,SAASwsC,sBACrC,gBAAmBl3D,KAAK0qB,SAAS0gC,gBACjC,QAAWprD,KAAK0qB,SAASqZ,SAE3BlE,GAAIlT,MAAM9tB,SAAQ,SAAUwK,GAC1B,IAAImyB,EAAQqE,GAAIx2B,GAChB2tD,EAAYx7B,EAAMgE,YAAc3O,EAAO2K,EAAMiE,YAC/C,IACA,GAAOu3B,EAAah3D,KAAK0qB,SAASksC,IAClC,GAAOI,EAAah3D,KAAK0qB,SAASmsC,IAClC,GAAOG,EAAah3D,KAAK0qB,SAASsf,EAAS3nC,gBAEvCrC,KAAKmO,MACP6oD,EAAY7oD,IAAMnO,KAAKmO,KAGrBwJ,GAAUA,EAAOsc,MAAQj0B,KAAKwtC,OAAOvZ,KAAOj0B,KAAKwtC,OAAOrP,YAAc,IACxE64B,EAAYtjC,UAAY1zB,KAAKwtC,OAAOrP,aAItC,IAAIg5B,EAAYzpC,GAAKsX,QAAQgF,GAE7B,IAAKmtB,EACH,MAAM,IAAInzD,MAAM,kBAAoB4yD,EAAgB,cAAgBA,EAAgB,wDAGtF52D,KAAK88B,MAAQ,IAAIq6B,EAAUH,GAE3Bh3D,KAAK88B,MAAMzS,MAAMjE,GAAKpmB,KAAMA,KAAKo3D,mBAAmB,GACpDxjC,GAAoC5zB,KAAKq3D,iBAAmB,GAAIr3D,KAAK88B,OAErEqzB,GAAsBtxD,SAAQ,SAAUggB,GACtCgS,EAAOzwB,GAAGywB,EAAOiM,MAAOje,GAAO,SAAU9b,GACvC,OAAO8tB,EAAO,aAAenH,GAAc7K,GAAS,KAAK9b,EAC3D,GACF,IACAqR,OAAOC,KAAK+7C,IAAmBvxD,SAAQ,SAAUggB,GAC/CgS,EAAOzwB,GAAGywB,EAAOiM,MAAOje,GAAO,SAAUy4C,GACH,IAAhCzmC,EAAOiM,MAAM0kB,gBAAwB3wB,EAAOiM,MAAMy6B,UACpD1mC,EAAOiiC,iBAAiBvyD,KAAK,CAC3B3B,SAAUiyB,EAAO,aAAeu/B,GAAkBvxC,GAAS,KAAKuH,KAAKyK,GACrEhS,MAAOy4C,IAMXzmC,EAAO,aAAeu/B,GAAkBvxC,GAAS,KAAKy4C,EACxD,GACF,IACAt3D,KAAKI,GAAGJ,KAAK88B,MAAO,aAAa,SAAU/5B,GACzC,OAAO8tB,EAAO2mC,qBAAqBz0D,EACrC,IACA/C,KAAKI,GAAGJ,KAAK88B,MAAO,aAAa,SAAU/5B,GACzC,OAAO8tB,EAAO4mC,qBAAqB10D,EACrC,IACA/C,KAAKI,GAAGJ,KAAK88B,MAAO,WAAW,SAAU/5B,GACvC,OAAO8tB,EAAO6mC,mBAAmB30D,EACnC,IACA/C,KAAKI,GAAGJ,KAAK88B,MAAO,SAAS,SAAU/5B,GACrC,OAAO8tB,EAAO8mC,iBAAiB50D,EACjC,IACA/C,KAAKI,GAAGJ,KAAK88B,MAAO,WAAW,SAAU/5B,GACvC,OAAO8tB,EAAO+mC,mBAAmB70D,EACnC,IACA/C,KAAKI,GAAGJ,KAAK88B,MAAO,QAAQ,SAAU/5B,GACpC,OAAO8tB,EAAOgnC,gBAAgB90D,EAChC,IACA/C,KAAKI,GAAGJ,KAAK88B,MAAO,aAAa,SAAU/5B,GACzC,OAAO8tB,EAAOinC,qBAAqB/0D,EACrC,IACA/C,KAAKI,GAAGJ,KAAK88B,MAAO,SAAS,SAAU/5B,GACrC,OAAO8tB,EAAOknC,iBAAiBh1D,EACjC,IACA/C,KAAKI,GAAGJ,KAAK88B,MAAO,kBAAkB,SAAU/5B,GAC9C,OAAO8tB,EAAOmnC,0BAA0Bj1D,EAC1C,IACA/C,KAAKI,GAAGJ,KAAK88B,MAAO,oBAAoB,SAAU/5B,EAAGvB,GACnD,OAAOqvB,EAAOonC,4BAA4Bl1D,EAAGvB,EAC/C,IACAxB,KAAKI,GAAGJ,KAAK88B,MAAO,mBAAmB,SAAU/5B,EAAGlB,GAClD,OAAOgvB,EAAOqnC,2BAA2Bn1D,EAAGlB,EAC9C,IACA7B,KAAKI,GAAGJ,KAAK88B,MAAO,yBAAyB,SAAU/5B,GACrD,OAAO8tB,EAAOsnC,iCAAiCp1D,EACjD,IACA/C,KAAKI,GAAGJ,KAAK88B,MAAO,yBAAyB,SAAU/5B,GACrD,OAAO8tB,EAAOunC,iCAAiCr1D,EACjD,IACA/C,KAAKI,GAAGJ,KAAK88B,MAAO,SAAS,SAAU/5B,GACrC,OAAO8tB,EAAOwnC,iBAAiBt1D,EACjC,IACA/C,KAAKI,GAAGJ,KAAK88B,MAAO,gBAAgB,SAAU/5B,GAC5C,OAAO8tB,EAAOynC,wBAAwBv1D,EACxC,IACA/C,KAAKI,GAAGJ,KAAK88B,MAAO,YAAY,SAAU/5B,GACxC,OAAO8tB,EAAO0nC,oBAAoBx1D,EACpC,IACA/C,KAAKI,GAAGJ,KAAK88B,MAAO,cAAc,SAAU/5B,GAC1C,OAAO8tB,EAAO2nC,sBAAsBz1D,EACtC,IACA/C,KAAKI,GAAGJ,KAAK88B,MAAO,iBAAkB98B,KAAK0xD,qBAC3C1xD,KAAKy4D,oBAAoBz4D,KAAK01D,SAAS,aAEnC11D,KAAK81B,aAAe91B,KAAKy4D,uBAC3Bz4D,KAAK04D,4BAKH14D,KAAK88B,MAAM/kB,KAAK+F,aAAe9d,KAAK+X,MAA2B,UAAlB6+C,GAA8B52D,KAAKmO,KAClFuN,GAAU1b,KAAK88B,MAAM/kB,KAAM/X,KAAK+X,MAI9B/X,KAAKmO,MACPnO,KAAKmO,IAAIiT,OAAS,KAClBphB,KAAKmO,IAAM,KAEf,EAQAjO,EAAOy2D,YAAc,WACnB,IAAI3lC,EAAShxB,KAGb6/B,GAAIlT,MAAM9tB,SAAQ,SAAUwK,GAC1B,IAAImyB,EAAQqE,GAAIx2B,GAChB2nB,EAAOwK,EAAMiE,aAAezO,EAAOwK,EAAMgE,aAC3C,IACAx/B,KAAKq3D,gBAAkBzjC,GAAoC5zB,KAAK88B,OAChE98B,KAAKiuB,UAAW,EAChBjuB,KAAK88B,MAAMz7B,UACXrB,KAAK88B,OAAQ,EAET98B,KAAK6yD,oBACP7yD,KAAK0zD,QAAU,GACf1zD,KAAKY,QAAQ,iBAGfZ,KAAK6yD,mBAAoB,CAC3B,EAcA3yD,EAAO2zB,KAAO,SAAc8kC,GAK1B,YAJev0D,IAAXu0D,GACFvjD,GAAMkB,KAAK,sJAGNtW,KAAK88B,KACd,EAwBA58B,EAAOw4D,0BAA4B,WAEjC14D,KAAK44D,+BACL54D,KAAKI,GAAGJ,KAAK88B,MAAO,QAAS98B,KAAKgyD,uBAClChyD,KAAKI,GAAGJ,KAAK88B,MAAO,WAAY98B,KAAKkyD,6BAIrClyD,KAAKI,GAAGJ,KAAK88B,MAAO,aAAc98B,KAAKoyD,4BACvCpyD,KAAKI,GAAGJ,KAAK88B,MAAO,YAAa98B,KAAKsyD,2BACtCtyD,KAAKI,GAAGJ,KAAK88B,MAAO,WAAY98B,KAAKwyD,0BAGrCxyD,KAAKI,GAAGJ,KAAK88B,MAAO,MAAO98B,KAAK0yD,oBAClC,EASAxyD,EAAO04D,6BAA+B,WAGpC54D,KAAKQ,IAAIR,KAAK88B,MAAO,MAAO98B,KAAK0yD,qBACjC1yD,KAAKQ,IAAIR,KAAK88B,MAAO,aAAc98B,KAAKoyD,4BACxCpyD,KAAKQ,IAAIR,KAAK88B,MAAO,YAAa98B,KAAKsyD,2BACvCtyD,KAAKQ,IAAIR,KAAK88B,MAAO,WAAY98B,KAAKwyD,0BACtCxyD,KAAKQ,IAAIR,KAAK88B,MAAO,QAAS98B,KAAKgyD,uBACnChyD,KAAKQ,IAAIR,KAAK88B,MAAO,WAAY98B,KAAKkyD,4BACxC,EAQAhyD,EAAOk3D,iBAAmB,WACxBp3D,KAAKkuB,eAEDluB,KAAKwtC,OAAOhG,QACdxnC,KAAK21D,UAAU,YAAa31D,KAAKwtC,OAAOhG,QAI1CxnC,KAAKs4D,0BAELt4D,KAAKg4D,2BACP,EAaA93D,EAAOs3D,qBAAuB,WAE5Bx3D,KAAKyc,YAAY,aACjBzc,KAAKyc,YAAY,eAEjBzc,KAAKuW,MAAM,MAEXvW,KAAKg4D,4BAIAh4D,KAAK01B,UAWR11B,KAAKuoD,YAAW,GAChBvoD,KAAKY,QAAQ,eALbZ,KAAKY,QAAQ,aACbZ,KAAKY,QAAQ,cASfZ,KAAK64D,iBAAoC,IAApB74D,KAAK+zD,YAAuB/zD,KAAK0qB,SAASqsC,kBAAoB,OAAS/2D,KAAK+zD,WACnG,EASA7zD,EAAO24D,gBAAkB,SAAyBx4D,GAChD,IAAI8wB,EAASnxB,KAEb,GAAKA,KAAK88B,OAAyB,iBAATz8B,EAA1B,CAMA,IAwBIy4D,EAxBAC,EAAe,WACjB,IAAIC,EAAkB7nC,EAAOmW,QAE7BnW,EAAOmW,OAAM,GAEb,IAAI2xB,EAAe,WACjB9nC,EAAOmW,MAAM0xB,EACf,EAGA7nC,EAAO2iC,qBAAqBvzD,KAAK04D,GAEjC,IAAIC,EAAe/nC,EAAO7G,OAE1B,GAAK6I,GAAU+lC,GAIf,OAAOA,EAAoB,OAAE,SAAUr3D,GAErC,MADAo3D,IACM,IAAIj1D,MAAM,wDAA0DnC,GAAY,IACxF,GACF,EAiBA,GAZa,QAATxB,GAAmBL,KAAKsnC,QAS1BwxB,EAHkB,UAATz4D,GAAqBL,KAAKsnC,QAGzBtnC,KAAKsqB,OAFLyuC,IAJN5lC,GAFJ2lC,EAAU94D,KAAKsqB,UAGbwuC,EAAUA,EAAe,MAAEC,IAQ1B5lC,GAAU2lC,GAIf,OAAOA,EAAQ1lC,MAAK,WAClBjC,EAAOvwB,QAAQ,CACbP,KAAM,mBACN0zD,SAAU1zD,GAEd,IAAU,OAAE,WACV8wB,EAAOvwB,QAAQ,CACbP,KAAM,mBACN0zD,SAAU1zD,GAEd,GAzDA,CA0DF,EAcAH,EAAOi5D,oBAAsB,SAA6Bv0B,QACzC,IAAXA,IACFA,EAAS,IAGX,IAAI3Q,EAAM2Q,EACNvkC,EAAO,GAEQ,iBAAR4zB,IACTA,EAAM2Q,EAAO3Q,IACb5zB,EAAOukC,EAAOvkC,MAKhBL,KAAKwtC,OAAO71B,OAAS3X,KAAKwtC,OAAO71B,QAAU,CAAC,EAC5C3X,KAAKwtC,OAAO/1B,QAAUzX,KAAKwtC,OAAO/1B,SAAW,GAEzCwc,IAAQ5zB,IACVA,EA35Za,SAAsB+gB,EAAQ6S,GAC/C,IAAKA,EACH,MAAO,GAIT,GAAI7S,EAAOosB,OAAO71B,OAAOsc,MAAQA,GAAO7S,EAAOosB,OAAO71B,OAAOtX,KAC3D,OAAO+gB,EAAOosB,OAAO71B,OAAOtX,KAI9B,IAAI+4D,EAAkBh4C,EAAOosB,OAAO/1B,QAAQnD,QAAO,SAAUzW,GAC3D,OAAOA,EAAEo2B,MAAQA,CACnB,IAEA,GAAImlC,EAAgB96D,OAClB,OAAO86D,EAAgB,GAAG/4D,KAM5B,IAFA,IAAIoX,EAAU2J,EAAOV,GAAG,UAEfniB,EAAI,EAAGA,EAAIkZ,EAAQnZ,OAAQC,IAAK,CACvC,IAAIV,EAAI4Z,EAAQlZ,GAEhB,GAAIV,EAAEwC,MAAQxC,EAAEo2B,KAAOp2B,EAAEo2B,MAAQA,EAC/B,OAAOp2B,EAAEwC,IAEb,CAGA,OAAOipC,GAAYrV,EACrB,CA23ZaolC,CAAar5D,KAAMi0B,IAI5Bj0B,KAAKwtC,OAAO71B,OAASgS,GAAe,CAAC,EAAGib,EAAQ,CAC9C3Q,IAAKA,EACL5zB,KAAMA,IASR,IAPA,IAAI+4D,EAAkBp5D,KAAKwtC,OAAO/1B,QAAQnD,QAAO,SAAUzW,GACzD,OAAOA,EAAEo2B,KAAOp2B,EAAEo2B,MAAQA,CAC5B,IACIqlC,EAAkB,GAClBC,EAAYv5D,KAAK0gB,GAAG,UACpB84C,EAAoB,GAEfj7D,EAAI,EAAGA,EAAIg7D,EAAUj7D,OAAQC,IAAK,CACzC,IAAIk7D,EAAYr8C,GAAcm8C,EAAUh7D,IACxC+6D,EAAgB/4D,KAAKk5D,GAEjBA,EAAUxlC,KAAOwlC,EAAUxlC,MAAQA,GACrCulC,EAAkBj5D,KAAKk5D,EAAUxlC,IAErC,CAIIulC,EAAkBl7D,SAAW86D,EAAgB96D,OAC/C0B,KAAKwtC,OAAO/1B,QAAU6hD,EAEZF,EAAgB96D,SAC1B0B,KAAKwtC,OAAO/1B,QAAU,CAACzX,KAAKwtC,OAAO71B,SAIrC3X,KAAKwtC,OAAOvZ,IAAMA,CACpB,EAuCA/zB,EAAOu3D,qBAAuB,SAA8B54C,GAC1D,IAAI4kB,EAASzjC,KAIb,IAAKA,KAAK4zD,aAAc,CACtB,IAAI8F,EAAqB,SAA4BzlC,GACnD,OAAOwP,EAAO01B,oBAAoBllC,EACpC,EAEI0lC,EAAY35D,KAAK45D,gBAAgB3lC,IACjC4lC,EAAWh7C,EAAMoV,IAEjB0lC,IAAc,SAASr6D,KAAKq6D,IAAc,SAASr6D,KAAKu6D,MAGrD75D,KAAK85D,aAAe95D,KAAK85D,YAAYjmC,OAASgmC,GAAY75D,KAAK85D,YAAY14C,SAAWu4C,KACzFD,EAAqB,WAA+B,GAMxDA,EAAmBG,GAIdh7C,EAAMoV,KACTj0B,KAAK88B,MAAM9W,IAAI,CAAC,YAAa,cAAc,SAAUjjB,GAInD,GAAe,cAAXA,EAAE1C,KAAN,CAIA,IAAI05D,EAAUt2B,EAAOu2B,QAAQ,cAE7Bv2B,EAAOq2B,YAAYjmC,KAAOkmC,EAE1Bt2B,EAAO01B,oBAAoBY,EAN3B,CAOF,GAEJ,CAEA/5D,KAAK85D,YAAc,CACjB14C,OAAQphB,KAAK45D,gBAAgB3lC,IAC7BJ,KAAMhV,EAAMoV,KAEdj0B,KAAKY,QAAQ,CACXqzB,IAAKpV,EAAMoV,IACX5zB,KAAM,aAEV,EAeAH,EAAOqoD,WAAa,SAAoB0R,GACtC,QAAgB71D,IAAZ61D,EAEF,OAAOj6D,KAAK0gC,YAGVu5B,IAAYj6D,KAAK0gC,cAIrB1gC,KAAK0gC,YAAcu5B,EAEfj6D,KAAK0gC,aACP1gC,KAAKsc,SAAS,mBACdtc,KAAKY,QAAQ,cAEbZ,KAAKyc,YAAY,mBAErB,EAWAvc,EAAO23D,gBAAkB,WACvB73D,KAAKyc,YAAY,aACjBzc,KAAKyc,YAAY,cACjBzc,KAAKsc,SAAS,eAEdtc,KAAKuoD,YAAW,GAShBvoD,KAAKY,QAAQ,OACf,EAcAV,EAAOs4D,sBAAwB,WACzBx4D,KAAK88B,MAAM0kB,eAAiB,GAAsC,IAAjCxhD,KAAKwtC,OAAO0sB,mBAC/Cl6D,KAAK8yD,iBAAiBj0D,SAAQ,SAAUs7D,GACtC,OAAOA,EAAOv7D,SAASu7D,EAAOt7C,MAChC,IACA7e,KAAK8yD,iBAAmB,IAG1B9yD,KAAKwtC,OAAO0sB,iBAAmBl6D,KAAK88B,MAAM0kB,eAQ1CxhD,KAAKY,QAAQ,aACf,EAUAV,EAAOw3D,mBAAqB,WAC1B,IAAItzB,EAASpkC,KAEbA,KAAKsc,SAAS,eAQdtc,KAAKY,QAAQ,WAGb,IAAIw5D,EAAkBp6D,KAAKm+B,cAU3Bn+B,KAAKI,GAAG,cARiB,SAASi6D,IAC5BD,IAAoBh2B,EAAOjG,gBAC7BiG,EAAO3nB,YAAY,eAEnB2nB,EAAO5jC,IAAI,aAAc65D,GAE7B,GAGF,EAWAn6D,EAAOo6D,mBAAqB,WAC1Bt6D,KAAKyc,YAAY,eAQjBzc,KAAKY,QAAQ,UACf,EAUAV,EAAOq6D,0BAA4B,WACjCv6D,KAAKyc,YAAY,eASjBzc,KAAKY,QAAQ,iBACf,EAUAV,EAAOs6D,mBAAqB,WAC1Bx6D,KAAKyc,YAAY,eAQjBzc,KAAKY,QAAQ,UACf,EAUAV,EAAO03D,mBAAqB,WAC1B53D,KAAKsc,SAAS,eAQdtc,KAAKY,QAAQ,UACf,EAUAV,EAAOu6D,kBAAoB,WACzBz6D,KAAKyc,YAAY,eACjBzc,KAAKyc,YAAY,aAQjBzc,KAAKY,QAAQ,SACf,EAYAV,EAAO43D,qBAAuB,WAGxB93D,KAAK0qB,SAASgwC,YAChBtlD,GAAMkB,KAAK,0EACXtW,KAAKm+B,YAAYn+B,KAAK0qB,SAASgwC,YAGjC16D,KAAKsc,SAAS,mBAWdtc,KAAKY,QAAQ,YACf,EAUAV,EAAO63D,iBAAmB,WACxB/3D,KAAKyc,YAAY,eACjBzc,KAAKsc,SAAS,cAQdtc,KAAKY,QAAQ,QACf,EAUAV,EAAOy3D,iBAAmB,WACxB33D,KAAKsc,SAAS,aACdtc,KAAKyc,YAAY,eAEbzc,KAAK0qB,SAASusC,MAChBj3D,KAAKm+B,YAAY,GACjBn+B,KAAKsqB,QACKtqB,KAAK01B,UACf11B,KAAK41B,QAUP51B,KAAKY,QAAQ,QACf,EASAV,EAAO83D,0BAA4B,WACjCh4D,KAAK4yB,SAAS5yB,KAAK01D,SAAS,YAC9B,EAYAx1D,EAAO+xD,iBAAmB,SAA0BpzC,GAG7C7e,KAAK2zD,iBAIYvvD,IAAlBpE,KAAK0qB,eAAwDtmB,IAA9BpE,KAAK0qB,SAASiwC,kBAAiEv2D,IAApCpE,KAAK0qB,SAASiwC,YAAYC,QAA2D,IAApC56D,KAAK0qB,SAASiwC,YAAYC,aACjIx2D,IAAlBpE,KAAK0qB,eAAwDtmB,IAA9BpE,KAAK0qB,SAASiwC,aAAwE,mBAApC36D,KAAK0qB,SAASiwC,YAAYC,MAC7G56D,KAAK0qB,SAASiwC,YAAYC,MAAM75D,KAAKf,KAAM6e,GAClC7e,KAAK01B,SACdrC,GAAerzB,KAAKsqB,QAEpBtqB,KAAK41B,SAGX,EAYA11B,EAAOiyD,uBAAyB,SAAgCtzC,GACzD7e,KAAK2zD,YAMS1yD,MAAMd,UAAUwtB,KAAK5sB,KAAKf,KAAK0gB,GAAG,wCAAwC,SAAU3I,GACrG,OAAOA,EAAGqE,SAASyC,EAAMrH,OAC3B,UAUwBpT,IAAlBpE,KAAK0qB,eAAwDtmB,IAA9BpE,KAAK0qB,SAASiwC,kBAAuEv2D,IAA1CpE,KAAK0qB,SAASiwC,YAAYE,cAAuE,IAA1C76D,KAAK0qB,SAASiwC,YAAYE,mBACvIz2D,IAAlBpE,KAAK0qB,eAAwDtmB,IAA9BpE,KAAK0qB,SAASiwC,aAA8E,mBAA1C36D,KAAK0qB,SAASiwC,YAAYE,YAC7G76D,KAAK0qB,SAASiwC,YAAYE,YAAY95D,KAAKf,KAAM6e,GACxC7e,KAAK+4C,eACd/4C,KAAKg5C,iBAELh5C,KAAKi5C,qBAIb,EAUA/4C,EAAOyyD,eAAiB,WACtB3yD,KAAKw0D,YAAYx0D,KAAKw0D,aACxB,EASAt0D,EAAOmyD,sBAAwB,WAC7BryD,KAAK86D,cAAgB96D,KAAKw0D,YAC5B,EASAt0D,EAAOqyD,qBAAuB,WACxBvyD,KAAK86D,eACP96D,KAAKkwB,oBAET,EAaAhwB,EAAOuyD,oBAAsB,SAA6B5zC,GAEpDA,EAAMk8C,YACRl8C,EAAM4E,gBAEV,EAUAvjB,EAAOw0D,kBAAoB,WACzB10D,KAAKkwB,oBACP,EAMAhwB,EAAO86D,uBAAyB,WAC1Bh7D,KAAK+4C,eACP/4C,KAAKsc,SAAS,kBAEdtc,KAAKyc,YAAY,iBAErB,EAMAvc,EAAOqxD,0BAA4B,SAAmCxuD,GACpE,IAAIk4D,EAAel4D,EAAEyU,OAAO4J,OAG5B,IAAI65C,GAAgBA,IAAiBj7D,KAArC,CAIA,IAAI+X,EAAK/X,KAAK+X,KACVmjD,EAAO,IAASl7D,KAAK64C,OAAOp6B,qBAAuB1G,GAElDmjD,GAAQnjD,EAAGojD,QACdD,EAAOnjD,EAAGojD,QAAQ,IAAMn7D,KAAK64C,OAAOuiB,aAC1BF,GAAQnjD,EAAGsjD,oBACrBH,EAAOnjD,EAAGsjD,kBAAkB,IAAMr7D,KAAK64C,OAAOuiB,aAGhDp7D,KAAK+4C,aAAamiB,EAXlB,CAYF,EAgBAh7D,EAAO+3D,4BAA8B,SAAqCp5C,EAAOrd,GAC/E,IAAI85D,EAASt7D,KAETwB,IACEA,EAAK4sD,sBACPpuD,KAAKsc,SAAS,qBACdtc,KAAK88B,MAAMhX,IAAI,uBAAuB,WACpCw1C,EAAO7+C,YAAY,oBACrB,KAGFzc,KAAK+4C,aAAav3C,EAAKu3C,cAE3B,EAEA74C,EAAOg4D,2BAA6B,SAAoCr5C,EAAOhd,GAC7E7B,KAAKY,QAAQ,kBAAmBiB,EAClC,EAMA3B,EAAOq7D,6BAA+B,WAChCv7D,KAAKy4C,uBACPz4C,KAAKsc,SAAS,0BAEdtc,KAAKyc,YAAY,yBAErB,EAYAvc,EAAOi4D,iCAAmC,SAA0Ct5C,GAClF7e,KAAKy4C,sBAAqB,EAC5B,EAYAv4C,EAAOk4D,iCAAmC,SAA0Cv5C,GAClF7e,KAAKy4C,sBAAqB,EAC5B,EASAv4C,EAAOm4D,iBAAmB,WACxB,IAAI9hD,EAAQvW,KAAK88B,MAAMvmB,QACvBvW,KAAKuW,MAAMA,EACb,EAUArW,EAAOq4D,oBAAsB,WAC3B,IAAI/2D,EAAO,KAEPV,UAAUxC,OAAS,IACrBkD,EAAOV,UAAU,IAUnBd,KAAKY,QAAQ,WAAYY,EAC3B,EASAtB,EAAO2xC,SAAW,WAChB,OAAO7xC,KAAKwtC,MACd,EAWAttC,EAAOuzD,YAAc,WACnBzzD,KAAKwtC,OAAS,CAKZrP,YAAa,EACbq9B,SAAU,EACVC,kBAAmBz7D,KAAK0qB,SAAS+wC,kBACjC7oC,SAAUo7B,IACVlT,WAAY,EACZof,iBAAkBl6D,KAAK07D,sBACvBC,MAAO,KACP1nC,IAAK,GACLtc,OAAQ,CAAC,EACTF,QAAS,GACTuqC,cAAe,GACfxa,OAAQ,EAEZ,EAcAtnC,EAAOy1D,UAAY,SAAmBlwD,EAAQohC,GAE5C7mC,KAAKqqB,OAAM,WACT,GAAI5kB,KAAUiiC,GACZ,OA/7bR,SAAad,EAAY/S,EAAMpuB,EAAQohC,GACrC,OAAOhT,EAAKpuB,GAAQmhC,EAAWrkC,OAAOykC,GAAmBvhC,GAASohC,GACpE,CA67bezkB,CAAIpiB,KAAKq0D,YAAar0D,KAAK88B,MAAOr3B,EAAQohC,GAC5C,GAAIphC,KAAUoiC,GACnB,OAAOlB,GAAQ3mC,KAAKq0D,YAAar0D,KAAK88B,MAAOr3B,EAAQohC,GAGvD,IACM7mC,KAAK88B,OACP98B,KAAK88B,MAAMr3B,GAAQohC,EAEvB,CAAE,MAAO9jC,GAEP,MADAqS,GAAMrS,GACAA,CACR,CACF,IAAG,EACL,EAcA7C,EAAOw1D,SAAW,SAAkBjwD,GAClC,GAAKzF,KAAK88B,OAAU98B,KAAK88B,MAAM7O,SAA/B,CAIA,GAAIxoB,KAAU4hC,GACZ,OAx/bN,SAAaT,EAAY/S,EAAMpuB,GAC7B,OAAOmhC,EAAWg1B,YAAY50B,GAAmBvhC,GAASouB,EAAKpuB,KACjE,CAs/ba6c,CAAItiB,KAAKq0D,YAAar0D,KAAK88B,MAAOr3B,GACpC,GAAIA,KAAUoiC,GACnB,OAAOlB,GAAQ3mC,KAAKq0D,YAAar0D,KAAK88B,MAAOr3B,GAO/C,IACE,OAAOzF,KAAK88B,MAAMr3B,IACpB,CAAE,MAAO1C,GAEP,QAA2BqB,IAAvBpE,KAAK88B,MAAMr3B,GAEb,MADA2P,GAAM,aAAe3P,EAAS,2BAA6BzF,KAAK82D,UAAY,wBAAyB/zD,GAC/FA,EAIR,GAAe,cAAXA,EAAEsG,KAGJ,MAFA+L,GAAM,aAAe3P,EAAS,mBAAqBzF,KAAK82D,UAAY,gCAAiC/zD,GACrG/C,KAAK88B,MAAM7O,UAAW,EAChBlrB,EAKR,MADAqS,GAAMrS,GACAA,CACR,CA/BA,CAgCF,EAaA7C,EAAOoqB,KAAO,WACZ,IAAIuxC,EAAU77D,KAEV8jC,EAAe9jC,KAAK0qB,SAASqZ,SAAW,YAE5C,OAAID,EACK,IAAIA,GAAa,SAAUg4B,GAChCD,EAAQE,MAAMD,EAChB,IAGK97D,KAAK+7D,OACd,EAYA77D,EAAO67D,MAAQ,SAAen9D,GAC5B,IAAIo9D,EAAUh8D,UAEG,IAAbpB,IACFA,EAAWy0B,IAGbrzB,KAAK6zD,eAAetzD,KAAK3B,GACzB,IAAIq9D,EAAaxiD,SAASzZ,KAAK4zD,eAAiB5zD,KAAKi0B,OAASj0B,KAAK2qD,eASnE,GAPI3qD,KAAKk8D,cACPl8D,KAAKQ,IAAI,CAAC,QAAS,aAAcR,KAAKk8D,aACtCl8D,KAAKk8D,YAAc,OAKhBl8D,KAAKiuB,WAAaguC,EAYrB,OAXAj8D,KAAKk8D,YAAc,SAAUn5D,GAC3Bi5D,EAAQD,OACV,EAEA/7D,KAAK8lB,IAAI,CAAC,QAAS,aAAc9lB,KAAKk8D,kBAGjCD,IAAeliD,KAAiBD,IACnC9Z,KAAK++B,QAOT,IAAI3jB,EAAMpb,KAAK01D,SAAS,QAEZ,OAARt6C,EACFpb,KAAKm8D,0BAELn8D,KAAKo8D,kBAAkBhhD,EAE3B,EAQAlb,EAAOi8D,wBAA0B,WAC/B,IAAIE,EAAQr8D,KAAK8zD,qBAAqBj0D,MAAM,GAC5CG,KAAK8zD,qBAAuB,GAC5BuI,EAAMx9D,SAAQ,SAAUy9D,GACtBA,GACF,GACF,EAYAp8D,EAAOk8D,kBAAoB,SAA2BhhD,GACpD,IAAIva,EAAYb,KAAK6zD,eAAeh0D,MAAM,GAC1CG,KAAK6zD,eAAiB,GAEtB7zD,KAAK8zD,qBAAuB,GAC5BjzD,EAAUhC,SAAQ,SAAUslC,GAC1BA,EAAG/oB,EACL,GACF,EASAlb,EAAO01B,MAAQ,WACb51B,KAAK21D,UAAU,QACjB,EAUAz1D,EAAOw1B,OAAS,WAEd,OAAmC,IAA5B11B,KAAK01D,SAAS,SACvB,EAWAx1D,EAAOsiC,OAAS,WACd,OAAOxiC,KAAK01D,SAAS,WAAajjC,GAAiB,EAAG,EACxD,EAcAvyB,EAAOwiC,UAAY,SAAmBmrB,GACpC,QAA2B,IAAhBA,EACT,OAAO7tD,KAAKi0D,WAGdj0D,KAAKi0D,aAAepG,EACpB7tD,KAAK21D,UAAU,eAAgB31D,KAAKi0D,YAEhCpG,EACF7tD,KAAKsc,SAAS,iBAEdtc,KAAKyc,YAAY,gBAErB,EAYAvc,EAAOi+B,YAAc,SAAqBwS,GACxC,YAAuB,IAAZA,GACLA,EAAU,IACZA,EAAU,GAGP3wC,KAAKiuB,WAAYjuB,KAAK4zD,cAAiB5zD,KAAK88B,OAAU98B,KAAK88B,MAAM7O,UAOtEjuB,KAAK21D,UAAU,iBAAkBhlB,QACjC3wC,KAAKwtC,OAAOguB,SAAW,KAPrBx7D,KAAKwtC,OAAOguB,SAAW7qB,EACvB3wC,KAAKQ,IAAI,UAAWR,KAAK4xD,0BACzB5xD,KAAK8lB,IAAI,UAAW9lB,KAAK4xD,wBAe7B5xD,KAAKwtC,OAAOrP,YAAcn+B,KAAK01D,SAAS,gBAAkB,EACnD11D,KAAKwtC,OAAOrP,YACrB,EAQAj+B,EAAO2xD,eAAiB,WACtB7xD,KAAKm+B,YAAYn+B,KAAKwtC,OAAOguB,SAC/B,EAmBAt7D,EAAO0yB,SAAW,SAAkB+d,GAClC,QAAgBvsC,IAAZusC,EAEF,YAAgCvsC,IAAzBpE,KAAKwtC,OAAO5a,SAAyB5yB,KAAKwtC,OAAO5a,SAAWo7B,KAGrErd,EAAUp4B,WAAWo4B,IAEP,IACZA,EAAUh+B,KAGRg+B,IAAY3wC,KAAKwtC,OAAO5a,WAG1B5yB,KAAKwtC,OAAO5a,SAAW+d,EAEnBA,IAAYh+B,IACd3S,KAAKsc,SAAS,YAEdtc,KAAKyc,YAAY,YAGdwS,MAAM0hB,IAQT3wC,KAAKY,QAAQ,kBAGnB,EAUAV,EAAOkyC,cAAgB,WACrB,OAAOpyC,KAAK4yB,WAAa5yB,KAAKm+B,aAChC,EAUAj+B,EAAOiyC,qBAAuB,WAC5B,OAAOrmC,KAAKmW,MAAMjiB,KAAK4yB,YAAc9mB,KAAKmW,MAAMjiB,KAAKm+B,cACvD,EAeAj+B,EAAOyyB,SAAW,WAChB,IAAIA,EAAW3yB,KAAK01D,SAAS,YAM7B,OAJK/iC,GAAaA,EAASr0B,SACzBq0B,EAAWF,GAAiB,EAAG,IAG1BE,CACT,EAWAzyB,EAAOwyB,gBAAkB,WACvB,OAAOA,GAAgB1yB,KAAK2yB,WAAY3yB,KAAK4yB,WAC/C,EAUA1yB,EAAO00C,YAAc,WACnB,IAAIjiB,EAAW3yB,KAAK2yB,WAChBC,EAAW5yB,KAAK4yB,WAChBljB,EAAMijB,EAASjjB,IAAIijB,EAASr0B,OAAS,GAMzC,OAJIoR,EAAMkjB,IACRljB,EAAMkjB,GAGDljB,CACT,EAeAxP,EAAOsnC,OAAS,SAAgB+0B,GAC9B,IAAI1hB,EAEJ,YAAyBz2C,IAArBm4D,GAEF1hB,EAAM/uC,KAAKE,IAAI,EAAGF,KAAKgU,IAAI,EAAGvH,WAAWgkD,KACzCv8D,KAAKwtC,OAAOhG,OAASqT,EACrB76C,KAAK21D,UAAU,YAAa9a,QAExBA,EAAM,GACR76C,KAAKq6C,YAAYQ,MAOrBA,EAAMtiC,WAAWvY,KAAK01D,SAAS,WACxBzmC,MAAM4rB,GAAO,EAAIA,EAC1B,EAcA36C,EAAOonC,MAAQ,SAAek1B,GAC5B,QAAep4D,IAAXo4D,EAKJ,OAAOx8D,KAAK01D,SAAS,WAAY,EAJ/B11D,KAAK21D,UAAU,WAAY6G,EAK/B,EA6BAt8D,EAAOu8D,aAAe,SAAsBC,GAC1C,YAAsBt4D,IAAlBs4D,EACK18D,KAAK21D,UAAU,kBAAmB+G,GAGpC18D,KAAK01D,SAAS,kBAAmB,CAC1C,EAiBAx1D,EAAOm6C,YAAc,SAAqBkiB,GACxC,QAAyBn4D,IAArBm4D,GAAuD,IAArBA,EAKtC,OAAOv8D,KAAKwtC,OAAOsN,WAJjB96C,KAAKwtC,OAAOsN,WAAayhB,CAK7B,EAUAr8D,EAAOmuD,mBAAqB,WAC1B,OAAOruD,KAAK01D,SAAS,wBAAyB,CAChD,EAkBAx1D,EAAO64C,aAAe,SAAsB4jB,GAC1C,QAAav4D,IAATu4D,EAAoB,CACtB,IAAIC,EAAW58D,KAAK4yD,cAcpB,OAbA5yD,KAAK4yD,cAAgBn5C,QAAQkjD,GAIzB38D,KAAK4yD,gBAAkBgK,GAAY58D,KAAK64C,OAAO5jC,UAKjDjV,KAAKY,QAAQ,yBAGfZ,KAAKg7D,wBAEP,CAEA,OAAOh7D,KAAK4yD,aACd,EAiBA1yD,EAAO+4C,kBAAoB,SAA2B4jB,GACpD,IAAI/4B,EAAe9jC,KAAK0qB,SAASqZ,SAAW,YAE5C,GAAID,EAAc,CAChB,IAAInc,EAAO3nB,KACX,OAAO,IAAI8jC,GAAa,SAAUg4B,EAAS93B,GACzC,SAAS84B,IACPn1C,EAAKnnB,IAAI,kBAAmBu8D,GAC5Bp1C,EAAKnnB,IAAI,mBAAoBq+C,EAC/B,CAEA,SAASA,IACPie,IACAhB,GACF,CAEA,SAASiB,EAAah6D,EAAGlB,GACvBi7D,IACA94B,EAAOniC,EACT,CAEA8lB,EAAK7B,IAAI,mBAAoB+4B,GAC7Bl3B,EAAK7B,IAAI,kBAAmBi3C,GAC5B,IAAIjE,EAAUnxC,EAAKq1C,yBAAyBH,GAExC/D,IACFA,EAAQ1lC,KAAK0pC,EAAYA,GACzBhE,EAAQ1lC,KAAK0oC,EAAS93B,GAE1B,GACF,CAEA,OAAOhkC,KAAKg9D,0BACd,EAEA98D,EAAO88D,yBAA2B,SAAkCH,GAClE,IAEII,EAFAC,EAAUl9D,KAoBd,GAfKA,KAAK64C,OAAO5jC,WACfgoD,EAAYj9D,KAAK0qB,SAAS0wC,YAAcp7D,KAAK0qB,SAAS0wC,WAAWv3D,SAAW,CAAC,OAEnDO,IAAtBy4D,IACFI,EAAYJ,IAWZ78D,KAAK64C,OAAOI,kBAAmB,CACjC,IAAI6f,EAAU94D,KAAK+oB,IAAI/oB,KAAK64C,OAAOI,mBAAmBgkB,GAUtD,OARInE,GACFA,EAAQ1lC,MAAK,WACX,OAAO8pC,EAAQnkB,cAAa,EAC9B,IAAG,WACD,OAAOmkB,EAAQnkB,cAAa,EAC9B,IAGK+f,CACT,CAAW94D,KAAK88B,MAAMuxB,uBAA4D,IAAnCruD,KAAK0qB,SAASyyC,iBAG3Dn9D,KAAK21D,UAAU,mBAIf31D,KAAKo9D,iBAET,EAQAl9D,EAAO84C,eAAiB,WACtB,IAAIlV,EAAe9jC,KAAK0qB,SAASqZ,SAAW,YAE5C,GAAID,EAAc,CAChB,IAAInc,EAAO3nB,KACX,OAAO,IAAI8jC,GAAa,SAAUg4B,EAAS93B,GACzC,SAAS84B,IACPn1C,EAAKnnB,IAAI,kBAAmBu8D,GAC5Bp1C,EAAKnnB,IAAI,mBAAoBq+C,EAC/B,CAEA,SAASA,IACPie,IACAhB,GACF,CAEA,SAASiB,EAAah6D,EAAGlB,GACvBi7D,IACA94B,EAAOniC,EACT,CAEA8lB,EAAK7B,IAAI,mBAAoB+4B,GAC7Bl3B,EAAK7B,IAAI,kBAAmBi3C,GAC5B,IAAIjE,EAAUnxC,EAAK01C,wBAEfvE,IACFA,EAAQ1lC,KAAK0pC,EAAYA,GAEzBhE,EAAQ1lC,KAAK0oC,EAAS93B,GAE1B,GACF,CAEA,OAAOhkC,KAAKq9D,uBACd,EAEAn9D,EAAOm9D,sBAAwB,WAC7B,IAAIC,EAAUt9D,KAEd,GAAIA,KAAK64C,OAAOI,kBAAmB,CACjC,IAAI6f,EAAU,IAAS94D,KAAK64C,OAAOG,kBAUnC,OARI8f,GAGFzlC,GAAeylC,EAAQ1lC,MAAK,WAC1B,OAAOkqC,EAAQvkB,cAAa,EAC9B,KAGK+f,CACT,CAAW94D,KAAK88B,MAAMuxB,uBAA4D,IAAnCruD,KAAK0qB,SAASyyC,iBAC3Dn9D,KAAK21D,UAAU,kBAEf31D,KAAKu9D,gBAET,EASAr9D,EAAOk9D,gBAAkB,WACvBp9D,KAAK+4C,cAAa,GAClB/4C,KAAKw9D,cAAe,EAEpBx9D,KAAKy9D,gBAAkB,oBAAyB/7C,MAAMg8C,SAEtDt9D,GAAG,IAAU,UAAWJ,KAAKwxD,0BAE7B,oBAAyB9vC,MAAMg8C,SAAW,SAE1CphD,GAAS,SAAe,mBAMxBtc,KAAKY,QAAQ,kBACf,EAUAV,EAAOuxD,mBAAqB,SAA4B5yC,GAClD,eAAmBA,EAAO,SACA,IAAxB7e,KAAK+4C,iBACF/4C,KAAKw9D,aAGRx9D,KAAKu9D,iBAFLv9D,KAAKg5C,iBAMb,EAQA94C,EAAOq9D,eAAiB,WACtBv9D,KAAK+4C,cAAa,GAClB/4C,KAAKw9D,cAAe,EACpBh9D,GAAI,IAAU,UAAWR,KAAKwxD,0BAE9B,oBAAyB9vC,MAAMg8C,SAAW19D,KAAKy9D,gBAE/ChhD,GAAY,SAAe,mBAQ3Bzc,KAAKY,QAAQ,iBACf,EAUAV,EAAO+jC,wBAA0B,SAAiCvhC,GAChE,QAAc0B,IAAV1B,EACF,OAAO1C,KAAK01D,SAAS,2BAGvB11D,KAAK21D,UAAU,6BAA8BjzD,GAC7C1C,KAAK0qB,SAASuZ,wBAA0BvhC,EACxC1C,KAAKY,QAAQ,iCACf,EAcAV,EAAOu4C,qBAAuB,SAA8BklB,GAC1D,YAAcv5D,IAAVu5D,GACF39D,KAAK49D,wBAA0BD,OAC/B39D,KAAKu7D,kCAIEv7D,KAAK49D,qBAChB,EAeA19D,EAAO2jC,wBAA0B,WAC/B,GAAI,kCAA4E,IAAnC7jC,KAAKikC,0BAOhD,OAAOjkC,KAAK01D,SAAS,0BAEzB,EAaAx1D,EAAOw4C,qBAAuB,WAC5B,GAAI,gCAOF,OAAO,0BAEX,EAcAx4C,EAAOqvB,cAAgB,SAAuB1Q,GAC5C,IAAI87C,EAAc36D,KAAK0qB,SAASiwC,YAEhC,GAAKA,GAAgBA,EAAYkD,QAAjC,EAMqB,SAAwB9lD,GAC3C,IAAI+C,EAAU/C,EAAG+C,QAAQzY,cAEzB,GAAI0V,EAAG+lD,kBACL,OAAO,EAOT,GAAgB,UAAZhjD,EACF,OAA+C,IAHzB,CAAC,SAAU,WAAY,SAAU,QAAS,QAAS,UAGhDpa,QAAQqX,EAAG1X,MAKtC,OAA0C,IADvB,CAAC,YACAK,QAAQoa,EAC9B,EAGIijD,CAAe/9D,KAAK+oB,IAAIpD,cAAcq4C,iBAIP,mBAAxBrD,EAAYkD,QACrBlD,EAAYkD,QAAQ98D,KAAKf,KAAM6e,GAE/B7e,KAAKi+D,cAAcp/C,GAhCrB,CAkCF,EAcA3e,EAAO+9D,cAAgB,SAAuBp/C,GAC5C,IAAIg/C,EAAU79D,KAAK0qB,SAASiwC,YAAc36D,KAAK0qB,SAASiwC,YAAYkD,QAAU,CAAC,EAE3EK,EAAwBL,EAAQM,cAChCA,OAA0C,IAA1BD,EAAmC,SAAUE,GAC/D,OAAO,eAAmBA,EAAc,IAC1C,EAAIF,EACAG,EAAmBR,EAAQS,QAC3BA,OAA+B,IAArBD,EAA8B,SAAUD,GACpD,OAAO,eAAmBA,EAAc,IAC1C,EAAIC,EACAE,EAAwBV,EAAQW,aAChCA,OAAyC,IAA1BD,EAAmC,SAAUH,GAC9D,OAAO,eAAmBA,EAAc,MAAQ,eAAmBA,EAAc,QACnF,EAAIG,EAEJ,GAAIJ,EAAcp9D,KAAKf,KAAM6e,GAAQ,CACnCA,EAAM4E,iBACN5E,EAAMmF,kBACN,IAAIy6C,EAAWt0C,GAAYiD,aAAa,qBAEQ,IAA5C,IAASptB,KAAK64C,OAAOC,oBACvB2lB,EAASt+D,UAAUsqC,YAAY1pC,KAAKf,KAAM6e,EAE9C,MAAO,GAAIy/C,EAAQv9D,KAAKf,KAAM6e,GAAQ,CACpCA,EAAM4E,iBACN5E,EAAMmF,kBACWmG,GAAYiD,aAAa,cAC/BjtB,UAAUsqC,YAAY1pC,KAAKf,KAAM6e,EAC9C,MAAO,GAAI2/C,EAAaz9D,KAAKf,KAAM6e,GAAQ,CACzCA,EAAM4E,iBACN5E,EAAMmF,kBACWmG,GAAYiD,aAAa,cAC/BjtB,UAAUsqC,YAAY1pC,KAAKf,KAAM6e,EAC9C,CACF,EAcA3e,EAAOwkC,YAAc,SAAqBrkC,GAGxC,IAFA,IAAIulC,EAEKrnC,EAAI,EAAGurC,EAAI9pC,KAAK0qB,SAASqf,UAAWxrC,EAAIurC,EAAExrC,OAAQC,IAAK,CAC9D,IAAIyrC,EAAWF,EAAEvrC,GACbs1B,EAAOnG,GAAKsX,QAAQgF,GAQxB,GALKnW,IACHA,EAAO1J,GAAYiD,aAAa4c,IAI7BnW,GAML,GAAIA,EAAKoW,gBACPrE,EAAM/R,EAAK6Q,YAAYrkC,IAGrB,OAAOulC,OATTxwB,GAAMmB,MAAM,QAAWyzB,EAAW,oEAYtC,CAEA,MAAO,EACT,EAcA9pC,EAAOw+D,aAAe,SAAsBjnD,GAC1C,IAoCIknD,EAEqBlzD,EAtCrBmzD,EAAU5+D,KAIV6+D,EAAQ7+D,KAAK0qB,SAASqf,UAAUngC,KAAI,SAAUogC,GAChD,MAAO,CAACA,EAAUtc,GAAKsX,QAAQgF,GACjC,IAAG11B,QAAO,SAAUlJ,GAClB,IAAI4+B,EAAW5+B,EAAK,GAChByoB,EAAOzoB,EAAK,GAGhB,OAAIyoB,EAEKA,EAAKoW,eAGd70B,GAAMmB,MAAM,QAAWyzB,EAAW,sEAC3B,EACT,IAII80B,EAAiC,SAAwCC,EAAYC,EAAYC,GACnG,IAAIlS,EAUJ,OATAgS,EAAWpxC,MAAK,SAAUuxC,GACxB,OAAOF,EAAWrxC,MAAK,SAAUwxC,GAG/B,GAFApS,EAAQkS,EAAOC,EAAaC,GAG1B,OAAO,CAEX,GACF,IACOpS,CACT,EAUIqS,EAAS,SAAgBC,EAAO1nD,GAClC,IAAIqyB,EAAWq1B,EAAM,GAGrB,GAFWA,EAAM,GAER16B,cAAchtB,EAAQinD,EAAQl0C,SAASsf,EAAS3nC,gBACvD,MAAO,CACLsV,OAAQA,EACRkc,KAAMmW,EAGZ,EAYA,OANE20B,EAFE3+D,KAAK0qB,SAAS40C,YAEKR,EAA+BrnD,EAASonD,GAtBtCpzD,EAsBkD2zD,EArBlE,SAAUz3D,EAAGC,GAClB,OAAO6D,EAAG7D,EAAGD,EACf,IAsBqBm3D,EAA+BD,EAAOpnD,EAAS2nD,GAG/DT,IAAsB,CAC/B,EAoBAz+D,EAAOq/D,WAAa,SAAoB5nD,EAAQ6nD,GAC9C,IAAIC,EAAUz/D,KAGd,QAAsB,IAAX2X,EACT,OAAO3X,KAAKwtC,OAAOvZ,KAAO,GAIxBj0B,KAAK0/D,oBACP1/D,KAAK0/D,qBAKP,IAAIjoD,EAAU+xB,GAAa7xB,GAI3B,GAAKF,EAAQnZ,QAwDb,GA7CA0B,KAAK4zD,cAAe,EAGf4L,IACHx/D,KAAKwtC,OAAO/1B,QAAUA,GAGxBzX,KAAKm5D,oBAAoB1hD,EAAQ,IAEjCyuB,GAAUlmC,KAAMyX,EAAQ,IAAI,SAAUkoD,EAAkBz4B,GAUtD,IAvpeWN,EAAY/S,EAypevB,GAXA4rC,EAAQpL,YAAcntB,EAGjBs4B,IACHC,EAAQjyB,OAAO/1B,QAAUA,GAG3BgoD,EAAQtG,oBAAoBwG,GAElBF,EAAQG,KAAKD,GAGrB,OAAIloD,EAAQnZ,OAAS,EACZmhE,EAAQF,WAAW9nD,EAAQ5X,MAAM,KAG1C4/D,EAAQ7L,cAAe,EAEvB6L,EAAQp5D,YAAW,WACjBrG,KAAKuW,MAAM,CACTtP,KAAM,EACN8rB,QAAS/yB,KAAK0qB,SAASm1C,qBAE3B,GAAG,QAIHJ,EAAQvxC,gBAzqeC0Y,EA8qeHM,EA9qeerT,EA8qeV4rC,EAAQ3iC,MA7qezB8J,EAAW/nC,SAAQ,SAAUsoC,GAC3B,OAAOA,EAAG24B,SAAW34B,EAAG24B,QAAQjsC,EAClC,GA4qeE,IAEI7zB,KAAK0qB,SAASq1C,cAAgBtoD,EAAQnZ,OAAS,EAAG,CACpD,IAAI0hE,EAAQ,WAEVP,EAAQlpD,MAAM,MAEdkpD,EAAQF,WAAW9nD,EAAQ5X,MAAM,IAAI,EACvC,EAEIogE,EAAyB,WAC3BR,EAAQj/D,IAAI,QAASw/D,EACvB,EAEAhgE,KAAK8lB,IAAI,QAASk6C,GAClBhgE,KAAK8lB,IAAI,UAAWm6C,GAEpBjgE,KAAK0/D,mBAAqB,WACxBD,EAAQj/D,IAAI,QAASw/D,GAErBP,EAAQj/D,IAAI,UAAWy/D,EACzB,CACF,OA3EEjgE,KAAKqG,YAAW,WACdrG,KAAKuW,MAAM,CACTtP,KAAM,EACN8rB,QAAS/yB,KAAK0qB,SAASm1C,qBAE3B,GAAG,EAuEP,EAkBA3/D,EAAO+zB,IAAM,SAAatc,GACxB,OAAO3X,KAAKu/D,WAAW5nD,GAAQ,EACjC,EAgBAzX,EAAO0/D,KAAO,SAAcjoD,GAC1B,IAhgrB2CuoD,EAAMC,EAggrB7CC,EAAUpgE,KAEVqgE,EAAargE,KAAK0+D,aAAa,CAAC/mD,IAEpC,OAAK0oD,IApgrBsCH,EAwgrBtBG,EAAWxsC,KAxgrBiBssC,EAwgrBXngE,KAAK82D,UAvgrBtCptC,GAAcw2C,KAAUx2C,GAAcy2C,IAwgrBzCngE,KAAK4zD,cAAe,EAEpB5zD,KAAKkqC,UAAUm2B,EAAWxsC,KAAMwsC,EAAW1oD,QAC3C3X,KAAK88B,MAAMzS,OAAM,WACf+1C,EAAQxM,cAAe,CACzB,KACO,IAKT5zD,KAAKqqB,OAAM,WAKLrqB,KAAK88B,MAAMjlB,YAAY1X,UAAUgH,eAAe,aAClDnH,KAAK21D,UAAU,YAAah+C,GAE5B3X,KAAK21D,UAAU,MAAOh+C,EAAOsc,KAG/Bj0B,KAAK4zD,cAAe,CACtB,IAAG,IACI,GACT,EAMA1zD,EAAO6+B,KAAO,WACZ/+B,KAAK21D,UAAU,OACjB,EAQAz1D,EAAOmiC,MAAQ,WACb,IAAIi+B,EAAUtgE,KAEV8jC,EAAe9jC,KAAK0qB,SAASqZ,SAAW,YAExC/jC,KAAK01B,WAAaoO,EACpB9jC,KAAKugE,WAGLltC,GADkBrzB,KAAKsqB,OACI8I,MAAK,WAC9B,OAAOktC,EAAQC,UACjB,IAEJ,EAEArgE,EAAOqgE,SAAW,WACZvgE,KAAK88B,OACP98B,KAAK88B,MAAMoF,YAAY,QAGzBliC,KAAKyzD,cACLzzD,KAAKurC,OAAO,IACZvrC,KAAKkqC,UAAUlqC,KAAK0qB,SAASqf,UAAU,GAAI,MAC3C/pC,KAAK21D,UAAU,SACf31D,KAAKwgE,qBAEDr5C,GAAUnnB,OACZA,KAAKY,QAAQ,cAEjB,EAOAV,EAAOsgE,mBAAqB,WAC1BxgE,KAAKygE,oBACLzgE,KAAK0gE,qBACL1gE,KAAK2gE,iBACP,EAMAzgE,EAAOugE,kBAAoB,WACzBzgE,KAAKm+B,YAAY,GAEjB,IAAI/wB,EAAQpN,KAAKslD,YAAc,CAAC,EAC5Bsb,EAAkBxzD,EAAMwzD,gBACxBzuB,EAAuB/kC,EAAM+kC,qBAE7ByuB,GACFA,EAAgBzvB,gBAGdgB,GACFA,EAAqBhB,eAEzB,EAMAjxC,EAAOwgE,mBAAqB,WAC1B1gE,KAAKwhD,aAAaxhD,KAAK07D,uBACvB17D,KAAKw4D,uBACP,EAMAt4D,EAAOygE,gBAAkB,WACvB3gE,KAAKwnC,OAAO,GACZxnC,KAAKY,QAAQ,eACf,EASAV,EAAO2gE,eAAiB,WACtB,IAAIlpD,EAAS3X,KAAK45D,gBACdniD,EAAU,GAMd,OAJmC,IAA/BrD,OAAOC,KAAKsD,GAAQrZ,QACtBmZ,EAAQlX,KAAKoX,GAGR3X,KAAKwtC,OAAO/1B,SAAWA,CAChC,EASAvX,EAAO05D,cAAgB,WACrB,OAAO55D,KAAKwtC,OAAO71B,QAAU,CAAC,CAChC,EAUAzX,EAAOyqD,WAAa,WAClB,OAAO3qD,KAAK45D,iBAAmB55D,KAAK45D,gBAAgB3lC,KAAO,EAC7D,EAWA/zB,EAAOo4C,YAAc,WACnB,OAAOt4C,KAAK45D,iBAAmB55D,KAAK45D,gBAAgBv5D,MAAQ,EAC9D,EAaAH,EAAOmtD,QAAU,SAAiB3qD,GAChC,YAAc0B,IAAV1B,GACF1C,KAAK21D,UAAU,aAAcjzD,QAC7B1C,KAAK0qB,SAAS2iC,QAAU3qD,IAInB1C,KAAK01D,SAAS,UACvB,EAmBAx1D,EAAO6zD,SAAW,SAAkBrxD,GAElC,QAAc0B,IAAV1B,EACF,OAAO1C,KAAK0qB,SAASqpC,WAAY,EAGnC,IAAI+M,EAEiB,iBAAVp+D,GAAsB,mBAAmBpD,KAAKoD,KAAoB,IAAVA,GAAkB1C,KAAK0qB,SAASqsC,mBACjG/2D,KAAK0qB,SAASqpC,SAAWrxD,EACzB1C,KAAK64D,gBAAiC,iBAAVn2D,EAAqBA,EAAQ,QACzDo+D,GAAe,GAKf9gE,KAAK0qB,SAASqpC,WAHJrxD,EAMZo+D,OAAuC,IAAjBA,EAA+B9gE,KAAK0qB,SAASqpC,SAAW+M,EAK1E9gE,KAAK88B,OACP98B,KAAK21D,UAAU,cAAemL,EAElC,EAmBA5gE,EAAOokC,YAAc,SAAqB5hC,GACxC,YAAc0B,IAAV1B,GACF1C,KAAK21D,UAAU,iBAAkBjzD,GACjC1C,KAAK0qB,SAAS4Z,YAAc5hC,EACrB1C,MAGFA,KAAK01D,SAAS,cACvB,EAaAx1D,EAAO+2D,KAAO,SAAcv0D,GAC1B,YAAc0B,IAAV1B,GACF1C,KAAK21D,UAAU,UAAWjzD,QAC1B1C,KAAK0qB,SAASusC,KAAOv0D,IAIhB1C,KAAK01D,SAAS,OACvB,EAcAx1D,EAAOqrC,OAAS,SAAgBtX,GAC9B,QAAY7vB,IAAR6vB,EACF,OAAOj0B,KAAK0zD,QAKTz/B,IACHA,EAAM,IAGJA,IAAQj0B,KAAK0zD,UAKjB1zD,KAAK0zD,QAAUz/B,EAEfj0B,KAAK21D,UAAU,YAAa1hC,GAC5Bj0B,KAAK6yD,mBAAoB,EASzB7yD,KAAKY,QAAQ,gBACf,EAeAV,EAAOo4D,wBAA0B,WAC/B,KAAMt4D,KAAK0zD,SAAW1zD,KAAK0qB,SAASwsC,wBAA0Bl3D,KAAK88B,OAAS98B,KAAK88B,MAAMyO,OAAQ,CAC7F,IAAIw1B,EAAY/gE,KAAK88B,MAAMyO,UAAY,GAEnCw1B,IAAc/gE,KAAK0zD,UACrB1zD,KAAK0zD,QAAUqN,EACf/gE,KAAK6yD,mBAAoB,EAEzB7yD,KAAKY,QAAQ,gBAEjB,CACF,EAeAV,EAAO41B,SAAW,SAAkBoe,GAClC,QAAa9vC,IAAT8vC,EACF,QAASl0C,KAAK2zD,UAGhBzf,IAASA,EAELl0C,KAAK2zD,YAAczf,IAIvBl0C,KAAK2zD,UAAYzf,EAEbl0C,KAAKy4D,uBACPz4D,KAAK21D,UAAU,cAAezhB,GAG5Bl0C,KAAK2zD,WACP3zD,KAAKyc,YAAY,yBACjBzc,KAAKsc,SAAS,wBAMdtc,KAAKY,QAAQ,mBAERZ,KAAKy4D,uBACRz4D,KAAK04D,8BAGP14D,KAAKyc,YAAY,wBACjBzc,KAAKsc,SAAS,yBAMdtc,KAAKY,QAAQ,oBAERZ,KAAKy4D,uBACRz4D,KAAK44D,gCAGX,EAoBA14D,EAAOu4D,oBAAsB,SAA6BvkB,GACxD,QAAa9vC,IAAT8vC,EACF,QAASl0C,KAAKghE,qBAGhB9sB,IAASA,EAELl0C,KAAKghE,uBAAyB9sB,IAIlCl0C,KAAKghE,qBAAuB9sB,EAExBl0C,KAAKghE,sBACPhhE,KAAKsc,SAAS,6BAQdtc,KAAKY,QAAQ,yBAEbZ,KAAKyc,YAAY,6BAQjBzc,KAAKY,QAAQ,wBAEjB,EAeAV,EAAOqW,MAAQ,SAAe1U,GAC5B,IAAIo/D,EAAUjhE,KAEd,QAAYoE,IAARvC,EACF,OAAO7B,KAAKuiC,QAAU,KAiBxB,GAbAztB,GAAM,eAAejW,SAAQ,SAAUqiE,GACrC,IAAIC,EAASD,EAAaD,EAASp/D,GAE7ByV,GAAS6pD,KAAYlgE,MAAMyC,QAAQy9D,IAA6B,iBAAXA,GAAyC,iBAAXA,GAAkC,OAAXA,EAMhHt/D,EAAMs/D,EALJF,EAAQzrD,IAAIe,MAAM,qEAMtB,IAGIvW,KAAK0qB,SAAS02C,2BAA6Bv/D,GAAoB,IAAbA,EAAIoF,KAAY,CACpE,IAAIo6D,EAAyB,WAC3BrhE,KAAKuW,MAAM1U,EACb,EAOA,OALA7B,KAAK0qB,SAAS02C,2BAA4B,EAC1CphE,KAAKgmB,IAAI,CAAC,QAAS,cAAeq7C,QAClCrhE,KAAK8lB,IAAI,aAAa,WACpB9lB,KAAKQ,IAAI,CAAC,QAAS,cAAe6gE,EACpC,GAEF,CAGA,GAAY,OAARx/D,EAQF,OAPA7B,KAAKuiC,OAAS1gC,EACd7B,KAAKyc,YAAY,kBAEbzc,KAAKshE,cACPthE,KAAKshE,aAAa3sC,SAMtB30B,KAAKuiC,OAAS,IAAIzP,GAAWjxB,GAE7B7B,KAAKsc,SAAS,aAGdlH,GAAMmB,MAAM,SAAWvW,KAAKuiC,OAAOt7B,KAAO,IAAM6rB,GAAWG,WAAWjzB,KAAKuiC,OAAOt7B,MAAQ,IAAKjH,KAAKuiC,OAAOxP,QAAS/yB,KAAKuiC,QAMzHviC,KAAKY,QAAQ,SAEbkU,GAAM,SAASjW,SAAQ,SAAUqiE,GAC/B,OAAOA,EAAaD,EAASA,EAAQ1+B,OACvC,GAEF,EASAriC,EAAOgwB,mBAAqB,SAA4BrR,GACtD7e,KAAKuhE,eAAgB,CACvB,EAgBArhE,EAAOs0D,WAAa,SAAoBtgB,GACtC,QAAa9vC,IAAT8vC,EACF,OAAOl0C,KAAK+yD,YAKd,IAFA7e,IAASA,KAEIl0C,KAAK+yD,YAAlB,CAMA,GAFA/yD,KAAK+yD,YAAc7e,EAEfl0C,KAAK+yD,YAUP,OATA/yD,KAAKuhE,eAAgB,EACrBvhE,KAAKyc,YAAY,qBACjBzc,KAAKsc,SAAS,wBAMdtc,KAAKY,QAAQ,cAYXZ,KAAK88B,OACP98B,KAAK88B,MAAMhX,IAAI,aAAa,SAAU/iB,GACpCA,EAAEihB,kBACFjhB,EAAE0gB,gBACJ,IAGFzjB,KAAKuhE,eAAgB,EACrBvhE,KAAKyc,YAAY,mBACjBzc,KAAKsc,SAAS,qBAMdtc,KAAKY,QAAQ,eAxCb,CAyCF,EAQAV,EAAOu0D,uBAAyB,WAC9B,IAAI+M,EACAC,EACAC,EACAC,EAAiBv7C,GAAKpmB,KAAMA,KAAKkwB,oBAwBjC0xC,EAA6B,SAAoC/iD,GACnE8iD,IAEA3hE,KAAKqwB,cAAcmxC,EACrB,EAGAxhE,KAAKI,GAAG,aAnBc,WACpBuhE,IAIA3hE,KAAKqwB,cAAcmxC,GAInBA,EAAkBxhE,KAAKswB,YAAYqxC,EAAgB,IACrD,IAUA3hE,KAAKI,GAAG,aA9Bc,SAAyB2C,GAGzCA,EAAE8+D,UAAYJ,GAAa1+D,EAAE++D,UAAYJ,IAC3CD,EAAY1+D,EAAE8+D,QACdH,EAAY3+D,EAAE++D,QACdH,IAEJ,IAuBA3hE,KAAKI,GAAG,UAAWwhE,GACnB5hE,KAAKI,GAAG,aAAcwhE,GACtB,IAyBInG,EAzBAnW,EAAatlD,KAAKysB,SAAS,eAG3B64B,GAAexrC,IAAWnB,KAC5B2sC,EAAWllD,GAAG,cAAc,SAAUye,GACa,IAA7C7e,KAAKohB,SAASsJ,SAAS+wC,oBACzBz7D,KAAKohB,SAASosB,OAAOiuB,kBAAoBz7D,KAAKohB,SAASsJ,SAAS+wC,mBAGlEz7D,KAAKohB,SAASsJ,SAAS+wC,kBAAoB,CAC7C,IACAnW,EAAWllD,GAAG,cAAc,SAAUye,GACpC7e,KAAKohB,SAASsJ,SAAS+wC,kBAAoBz7D,KAAKohB,SAASosB,OAAOiuB,iBAClE,KAKFz7D,KAAKI,GAAG,UAAWuhE,GACnB3hE,KAAKI,GAAG,QAASuhE,GAOjB3hE,KAAKswB,aAAY,WAEf,GAAKtwB,KAAKuhE,cAAV,CAKAvhE,KAAKuhE,eAAgB,EAErBvhE,KAAKw0D,YAAW,GAEhBx0D,KAAKkF,aAAau2D,GAClB,IAAI10D,EAAU/G,KAAK0qB,SAAS+wC,kBAExB10D,GAAW,IAMf00D,EAAoBz7D,KAAKqG,YAAW,WAI7BrG,KAAKuhE,eACRvhE,KAAKw0D,YAAW,EAEpB,GAAGztD,GAvBH,CAwBF,GAAG,IACL,EAgBA7G,EAAOshD,aAAe,SAAsBD,GAC1C,QAAan9C,IAATm9C,EAOJ,OAAIvhD,KAAK88B,OAAS98B,KAAK88B,MAAMsI,qBACpBplC,KAAKwtC,OAAO0sB,kBAAoBl6D,KAAK01D,SAAS,gBAGhD,EARL11D,KAAK21D,UAAU,kBAAmBpU,EAStC,EAkBArhD,EAAOw7D,oBAAsB,SAA6Bna,GACxD,YAAan9C,IAATm9C,EACKvhD,KAAK21D,UAAU,yBAA0BpU,GAG9CvhD,KAAK88B,OAAS98B,KAAK88B,MAAMsI,qBACpBplC,KAAK01D,SAAS,uBAGhB,CACT,EAaAx1D,EAAOsvC,QAAU,SAAiB0E,GAChC,QAAa9vC,IAAT8vC,EAKJ,QAASl0C,KAAK+hE,SAJZ/hE,KAAK+hE,WAAa7tB,CAKtB,EAEAh0C,EAAO8hE,mBAAqB,WAC1B,IAAIC,EAAUjiE,KAGdA,KAAKsc,SAAS,uBACd,IAAI4lD,EAAiBliE,KAAKusB,WACtB+4B,EAAatlD,KAAKysB,SAAS,cAC3B01C,EAAmB7c,GAAcA,EAAWj2B,gBAGhD6yC,EAAerjE,SAAQ,SAAU8c,GAC3BA,IAAU2pC,GAIV3pC,EAAMoN,MAAQpN,EAAMK,SAAS,gBAC/BL,EAAM0S,OAEN4zC,EAAQ9O,gBAAgBE,eAAe9yD,KAAKob,GAEhD,IACA3b,KAAKmzD,gBAAgBC,aAAepzD,KAAKqvB,gBAEzCrvB,KAAKie,OAAOkkD,GACZniE,KAAKY,QAAQ,sBACf,EAEAV,EAAOkiE,oBAAsB,WAC3BpiE,KAAKyc,YAAY,uBAEjBzc,KAAKmzD,gBAAgBE,eAAex0D,SAAQ,SAAU8c,GACpD,OAAOA,EAAMyS,MACf,IAEApuB,KAAKie,OAAOje,KAAKmzD,gBAAgBC,cACjCpzD,KAAKY,QAAQ,sBACf,EAgBAV,EAAOs4C,cAAgB,SAAuB91C,GAC5C,IAAI2/D,EAAUriE,KAEd,GAAqB,kBAAV0C,GAAuBA,IAAU1C,KAAKizD,eAC/C,OAAOjzD,KAAKizD,eAGdjzD,KAAKizD,eAAiBvwD,EACtB,IAAIohC,EAAe9jC,KAAK0qB,SAASqZ,SAAW,YAE5C,GAAID,EAAc,CAEhB,GAAIphC,EAAO,CACT,IAAI4/D,EAAe,GAcnB,OAZItiE,KAAKy4C,wBACP6pB,EAAa/hE,KAAKP,KAAK04C,wBAGrB14C,KAAK+4C,gBACPupB,EAAa/hE,KAAKP,KAAKg5C,kBAGrBh5C,KAAKu4C,mBACP+pB,EAAa/hE,KAAKP,KAAKu4C,iBAAgB,IAGlCzU,EAAa1tB,IAAIksD,GAAclvC,MAAK,WACzC,OAAOivC,EAAQL,oBACjB,GACF,CAGA,OAAOl+B,EAAag4B,UAAU1oC,MAAK,WACjC,OAAOivC,EAAQD,qBACjB,GACF,CAEI1/D,GACE1C,KAAKy4C,wBACPz4C,KAAK04C,uBAGH14C,KAAK+4C,gBACP/4C,KAAKg5C,iBAGPh5C,KAAKgiE,sBAELhiE,KAAKoiE,qBAET,EAEAliE,EAAOqiE,oBAAsB,YAEhBviE,KAAK88B,OAAS98B,KAAK88B,OACzBzO,OACLruB,KAAKsc,SAAS,yBACdtc,KAAKY,QAAQ,wBACf,EAEAV,EAAOsiE,qBAAuB,YAEjBxiE,KAAK88B,OAAS98B,KAAK88B,OACzB1O,OACLpuB,KAAKyc,YAAY,yBACjBzc,KAAKY,QAAQ,wBACf,EAaAV,EAAOq4C,gBAAkB,SAAyB71C,GAChD,IAAI+/D,EAAUziE,KAEd,GAAqB,kBAAV0C,GAAuBA,IAAU1C,KAAKkzD,iBAC/C,OAAOlzD,KAAKkzD,iBAGdlzD,KAAKkzD,iBAAmBxwD,EACxB,IAAIohC,EAAe9jC,KAAK0qB,SAASqZ,SAAW,YAE5C,OAAID,EACEphC,EACE1C,KAAKw4C,gBACoBx4C,KAAKw4C,eAAc,GAClBplB,MAAK,WAE/BqvC,EAAQF,qBACV,IAGKz+B,EAAag4B,UAAU1oC,MAAK,WAEjCqvC,EAAQF,qBACV,IAGKz+B,EAAag4B,UAAU1oC,MAAK,WAEjCqvC,EAAQD,sBACV,IAGE9/D,GACE1C,KAAKw4C,iBACPx4C,KAAKw4C,eAAc,QAGrBx4C,KAAKuiE,4BAIPviE,KAAKwiE,sBACP,EAwBAtiE,EAAOmjC,aAAe,SAAsBjK,EAAM/D,EAAOtJ,GACvD,GAAI/rB,KAAK88B,MACP,OAAO98B,KAAK88B,MAAMuG,aAAajK,EAAM/D,EAAOtJ,EAEhD,EAuBA7rB,EAAOk0B,mBAAqB,SAA4BvwB,EAAS2/B,GAC/D,GAAIxjC,KAAK88B,MACP,OAAO98B,KAAK88B,MAAM1I,mBAAmBvwB,EAAS2/B,EAElD,EAaAtjC,EAAOiiC,sBAAwB,SAA+B/6B,QAChD,IAARA,IACFA,EAAM,CAAC,GAGT,IACImsB,EADOnsB,EACMmsB,MAQjB,GANKA,IACHA,EAAQnsB,GAKNpH,KAAK88B,MACP,OAAO98B,KAAK88B,MAAMqF,sBAAsB5O,EAE5C,EAaArzB,EAAO0jC,wBAA0B,WAC/B,OAAO5jC,KAAK01D,SAAS,0BACvB,EASAx1D,EAAOi2D,WAAa,WAClB,OAAOn2D,KAAK88B,OAAS98B,KAAK88B,MAAMq5B,YAAcn2D,KAAK88B,MAAMq5B,cAAgB,CAC3E,EASAj2D,EAAOk2D,YAAc,WACnB,OAAOp2D,KAAK88B,OAAS98B,KAAK88B,MAAMs5B,aAAep2D,KAAK88B,MAAMs5B,eAAiB,CAC7E,EAoBAl2D,EAAO6rB,SAAW,SAAkB9kB,GAClC,QAAa7C,IAAT6C,EACF,OAAOjH,KAAKihD,UAGVjhD,KAAKihD,YAAcj+C,OAAOiE,GAAM5E,gBAClCrC,KAAKihD,UAAYj+C,OAAOiE,GAAM5E,cAE1B8kB,GAAUnnB,OAOZA,KAAKY,QAAQ,kBAGnB,EAWAV,EAAO8rB,UAAY,WACjB,OAAOrC,GAAeiI,EAAOzxB,UAAUuqB,SAASsB,UAAWhsB,KAAKwzD,WAClE,EAUAtzD,EAAOwiE,OAAS,WACd,IAAI7+D,EAAU8lB,GAAe3pB,KAAK0qB,UAC9B+M,EAAS5zB,EAAQ4zB,OACrB5zB,EAAQ4zB,OAAS,GAEjB,IAAK,IAAIl5B,EAAI,EAAGA,EAAIk5B,EAAOn5B,OAAQC,IAAK,CACtC,IAAIg1B,EAAQkE,EAAOl5B,IAEnBg1B,EAAQ5J,GAAe4J,IACjBnS,YAAShd,EACfP,EAAQ4zB,OAAOl5B,GAAKg1B,CACtB,CAEA,OAAO1vB,CACT,EAmBA3D,EAAOyiE,YAAc,SAAqB1nD,EAASpX,GACjD,IAAI++D,EAAU5iE,MAEd6D,EAAUA,GAAW,CAAC,GACdoX,QAAUA,GAAW,GAC7B,IAAI4nD,EAAQ,IAAItuC,GAAYv0B,KAAM6D,GAMlC,OALA7D,KAAK8sB,SAAS+1C,GACdA,EAAMziE,GAAG,WAAW,WAClBwiE,EAAQ3iD,YAAY4iD,EACtB,IACAA,EAAMl8D,OACCk8D,CACT,EAQA3iE,EAAO6xD,yBAA2B,WAChC,GAAK/xD,KAAK40D,aAOV,IAHA,IAAIkO,EAAoB9iE,KAAK8iE,oBACzB1zC,EAAepvB,KAAKovB,eAEf7wB,EAAI,EAAGA,EAAIkyD,GAAiBnyD,OAAQC,IAAK,CAChD,IAAIwkE,EAAsBtS,GAAiBlyD,GAG3C,GAAI6wB,GAFWpvB,KAAKgjE,aAAaD,GAEH,CAE5B,GAAID,IAAsBC,EACxB,OAIED,GACF9iE,KAAKyc,YAAYi0C,GAAmBoS,IAGtC9iE,KAAKsc,SAASo0C,GAAmBqS,IACjC/iE,KAAKijE,YAAcF,EACnB,KACF,CACF,CACF,EAQA7iE,EAAOgjE,yBAA2B,WAChC,IAAI7mD,EAAYrc,KAAKmjE,yBACrBnjE,KAAKijE,YAAc,GAEf5mD,GACFrc,KAAKyc,YAAYJ,EAErB,EAuCAnc,EAAOy0D,YAAc,SAAqByO,GAExC,YAAqBh/D,IAAjBg/D,IAIJpjE,KAAKijE,YAAc,GACnBjjE,KAAKgjE,aAAe,GAAO,CAAC,EAAGpS,GAAqBwS,GAGpDpjE,KAAK+xD,4BAPI,GAAO/xD,KAAKgjE,aAUvB,EAeA9iE,EAAO00D,WAAa,SAAoBlyD,GAEtC,YAAc0B,IAAV1B,EACK1C,KAAKqjE,aAGd3gE,EAAQ+W,QAAQ/W,MACF1C,KAAKqjE,aAOnBrjE,KAAKqjE,YAAc3gE,EAGfA,GACF1C,KAAKI,GAAG,eAAgBJ,KAAK8xD,+BAC7B9xD,KAAK+xD,6BAEL/xD,KAAKQ,IAAI,eAAgBR,KAAK8xD,+BAC9B9xD,KAAKkjE,4BAGAxgE,QAhBP,CAiBF,EAUAxC,EAAO4iE,kBAAoB,WACzB,OAAO9iE,KAAKijE,WACd,EAWA/iE,EAAOijE,uBAAyB,WAC9B,OAAOzS,GAAmB1wD,KAAKijE,cAAgB,EACjD,EAyDA/iE,EAAOojE,UAAY,SAAmB3H,EAAOtxC,GAC3C,IAAIk5C,EAAUvjE,KAEd,GAAK27D,GAA0B,iBAAVA,EAArB,CAIA37D,KAAKqiC,QAELriC,KAAKwtC,OAAOmuB,MAAQhyC,GAAegyC,GACnC,IAAI6H,EAAqBxjE,KAAKwtC,OAAOmuB,MACjC8H,EAAUD,EAAmBC,QAC7Bl4B,EAASi4B,EAAmBj4B,OAC5BtX,EAAMuvC,EAAmBvvC,IACzBC,EAAasvC,EAAmBtvC,YAE/BuvC,GAAWl4B,IACdvrC,KAAKwtC,OAAOmuB,MAAM8H,QAAU,CAAC,CAC3BxvC,IAAKsX,EACLlrC,KAAMipC,GAAYiC,MAIlBtX,GACFj0B,KAAKi0B,IAAIA,GAGPsX,GACFvrC,KAAKurC,OAAOA,GAGVtqC,MAAMyC,QAAQwwB,IAChBA,EAAWr1B,SAAQ,SAAU6kE,GAC3B,OAAOH,EAAQnvC,mBAAmBsvC,GAAI,EACxC,IAGF1jE,KAAKqqB,MAAMA,EAhCX,CAiCF,EAWAnqB,EAAOyjE,SAAW,WAChB,IAAK3jE,KAAKwtC,OAAOmuB,MAAO,CACtB,IAAIpwB,EAASvrC,KAAKurC,SAUdowB,EAAQ,CACV1nC,IAVQj0B,KAAK6gE,iBAWb3sC,WAVejzB,MAAMd,UAAUyJ,IAAI7I,KAAKf,KAAKgjC,oBAAoB,SAAU0gC,GAC3E,MAAO,CACLtqC,KAAMsqC,EAAGtqC,KACT/D,MAAOquC,EAAGruC,MACVtJ,SAAU23C,EAAG33C,SACbkI,IAAKyvC,EAAGzvC,IAEZ,KAcA,OARIsX,IACFowB,EAAMpwB,OAASA,EACfowB,EAAM8H,QAAU,CAAC,CACfxvC,IAAK0nC,EAAMpwB,OACXlrC,KAAMipC,GAAYqyB,EAAMpwB,WAIrBowB,CACT,CAEA,OAAOhyC,GAAe3pB,KAAKwtC,OAAOmuB,MACpC,EAaA/pC,EAAOw/B,eAAiB,SAAwBjjD,GAC9C,IAAIy1D,EAAc,CAChBnsD,QAAS,GACTggB,OAAQ,IAENosC,EAAazmD,GAAcjP,GAC3B21D,EAAYD,EAAW,cAW3B,GATI7nD,GAAS7N,EAAK,cAChB01D,EAAWruC,MAAO,GAGhBxZ,GAAS7N,EAAK,eAChB01D,EAAWzO,OAAQ,GAIH,OAAd0O,EAAoB,CAGtB,IAAIC,EAAkB,IAAeD,GAAa,MAC9CjiE,EAAMkiE,EAAgB,GACtBviE,EAAOuiE,EAAgB,GAEvBliE,GACFuT,GAAMmB,MAAM1U,GAGd,GAAOgiE,EAAYriE,EACrB,CAIA,GAFA,GAAOoiE,EAAaC,GAEhB11D,EAAIo9C,gBAGN,IAFA,IAAIh/B,EAAWpe,EAAIm7C,WAEV/qD,EAAI,EAAGurC,EAAIvd,EAASjuB,OAAQC,EAAIurC,EAAGvrC,IAAK,CAC/C,IAAIod,EAAQ4Q,EAAShuB,GAEjBylE,EAAYroD,EAAMhX,SAAStC,cAEb,WAAd2hE,EACFJ,EAAYnsD,QAAQlX,KAAK6c,GAAczB,IAChB,UAAdqoD,GACTJ,EAAYnsC,OAAOl3B,KAAK6c,GAAczB,GAE1C,CAGF,OAAOioD,CACT,EAUA1jE,EAAOo0D,kBAAoB,WACzB,IAAI3xC,EAAO,kBAAuB,KAGlC,QAAS,cAAeA,EAAKjB,OAAS,oBAAqBiB,EAAKjB,OAAS,iBAAkBiB,EAAKjB,OAAS,gBAAiBiB,EAAKjB,OAC/H,gBAAiBiB,EAAKjB,MACxB,EAUAxhB,EAAOmW,MAAQ,SAAekiB,GAC5B,QAAgBn0B,IAAZm0B,EACF,OAAOv4B,KAAKgzD,cAGVz6B,GACFv4B,KAAKY,QAAQ,WACbZ,KAAKikE,kBAAoBjkE,KAAKwV,IAAID,MAClCvV,KAAKwV,IAAID,MAAM,SACfvV,KAAKgzD,eAAgB,IAErBhzD,KAAKY,QAAQ,YACbZ,KAAKwV,IAAID,MAAMvV,KAAKikE,mBACpBjkE,KAAKikE,uBAAoB7/D,EACzBpE,KAAKgzD,eAAgB,EAEzB,EAeA9yD,EAAO8hD,cAAgB,SAAuBkiB,GAC5C,QAAiB9/D,IAAb8/D,EACF,OAAOlkE,KAAKwtC,OAAOwU,cAIhB/gD,MAAMyC,QAAQwgE,IAKdA,EAASn6D,OAAM,SAAUw3C,GAC5B,MAAuB,iBAATA,CAChB,MAIAvhD,KAAKwtC,OAAOwU,cAAgBkiB,EAQ5BlkE,KAAKY,QAAQ,uBACf,EAEOgxB,CACT,CAj6J0B,CAi6JxBzH,IAmDF0V,GAAIlT,MAAM9tB,SAAQ,SAAUwK,GAC1B,IAAImyB,EAAQqE,GAAIx2B,GAEhBuoB,GAAOzxB,UAAUq7B,EAAMgE,YAAc,WACnC,OAAIx/B,KAAK88B,MACA98B,KAAK88B,MAAMtB,EAAMgE,eAK1Bx/B,KAAKw7B,EAAMiE,aAAez/B,KAAKw7B,EAAMiE,cAAgB,IAAIjE,EAAM6D,UACxDr/B,KAAKw7B,EAAMiE,aACpB,CACF,IAiBA7N,GAAOzxB,UAAUm1D,YAAc1jC,GAAOzxB,UAAU08B,YAUhDjL,GAAOC,QAAU,CAAC,EAClB,IAAI,GAAY,cAUhBD,GAAOzxB,UAAUuqB,SAAW,CAE1Bqf,UAAWrc,GAAKqX,kBAChBo/B,MAAO,CAAC,EAER1I,kBAAmB,IAEnBzZ,cAAe,GAGfqG,QAAQ,EAER97B,SAAU,CAAC,cAAe,cAAe,mBAAoB,iBAAkB,gBAAiB,cAAe,aAAc,eAAgB,oBAAqB,iBAClKR,SAAU,KAAc,GAAUC,WAAa,GAAUA,UAAU,IAAM,GAAUo4C,cAAgB,GAAUr4C,WAAa,KAE1HC,UAAW,CAAC,EAEZ6zC,oBAAqB,iDACrB9I,mBAAmB,EACnBqE,WAAY,CACVv3D,QAAS,CACPwgE,aAAc,SAGlB1P,YAAa,CAAC,EACdC,YAAY,EACZpc,eAAe,EACfD,iBAAiB,GAEnB,CAOA,QAOA,UAQA,WAqBA,eAwBA,cAAc15C,SAAQ,SAAU4M,GAC9BmmB,GAAOzxB,UAAUsL,GAAM,WACrB,OAAOzL,KAAK01D,SAASjqD,EACvB,CACF,IACA0kD,GAAsBtxD,SAAQ,SAAUggB,GACtC+S,GAAOzxB,UAAU,aAAeupB,GAAc7K,GAAS,KAAO,WAC5D,OAAO7e,KAAKY,QAAQie,EACtB,CACF,IA2DAsL,GAAYmH,kBAAkB,SAAUM,IAUxC,IAAI0yC,GAAmB,SASnBC,GAAmB,iBAQnBC,GAAgB,CAAC,EAYjBC,GAAe,SAAsBp7D,GACvC,OAAOm7D,GAAcr9D,eAAekC,EACtC,EAaIq7D,GAAY,SAAmBr7D,GACjC,OAAOo7D,GAAap7D,GAAQm7D,GAAcn7D,QAAQjF,CACpD,EAeIugE,GAAqB,SAA4BvjD,EAAQ/X,GAC3D+X,EAAOmjD,IAAoBnjD,EAAOmjD,KAAqB,CAAC,EACxDnjD,EAAOmjD,IAAkBl7D,IAAQ,CACnC,EAiBIu7D,GAAoB,SAA2BxjD,EAAQ8D,EAAM2/C,GAC/D,IAAIrY,GAAaqY,EAAS,SAAW,IAAM,cAC3CzjD,EAAOxgB,QAAQ4rD,EAAWtnC,GAC1B9D,EAAOxgB,QAAQ4rD,EAAY,IAAMtnC,EAAK7b,KAAM6b,EAC9C,EA+DI4/C,GAAsB,SAA6Bz7D,EAAM07D,GAI3D,OADAA,EAAe5kE,UAAUkJ,KAAOA,EACzB,WACLu7D,GAAkB5kE,KAAM,CACtBqJ,KAAMA,EACN27D,OAAQD,EACRE,SAAU,OACT,GAEH,IAAK,IAAIxvD,EAAO3U,UAAUxC,OAAQ0C,EAAO,IAAIC,MAAMwU,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E1U,EAAK0U,GAAQ5U,UAAU4U,GAGzB,IAAIuvD,GAAW,aAAWF,EAAgB,CAAC/kE,MAAM6R,OAAO7Q,IAQxD,OALAhB,KAAKqJ,GAAQ,WACX,OAAO47D,CACT,EAEAL,GAAkB5kE,KAAMilE,EAASC,gBAC1BD,CACT,CACF,EAiBIE,GAAsB,WASxB,SAASA,EAAO/jD,GACd,GAAIphB,KAAK6X,cAAgBstD,EACvB,MAAM,IAAInhE,MAAM,0DAGlBhE,KAAKohB,OAASA,EAETphB,KAAKwV,MACRxV,KAAKwV,IAAMxV,KAAKohB,OAAO5L,IAAIU,aAAalW,KAAKqJ,OAK/Cuf,GAAQ5oB,aACDA,KAAKY,QACZ0oB,GAAStpB,KAAMA,KAAK6X,YAAY0R,cAChCo7C,GAAmBvjD,EAAQphB,KAAKqJ,MAGhCrJ,KAAKqB,QAAUrB,KAAKqB,QAAQ+kB,KAAKpmB,MAEjCohB,EAAOhhB,GAAG,UAAWJ,KAAKqB,QAC5B,CAMA,IAAInB,EAASilE,EAAOhlE,UAmOpB,OAjOAD,EAAOmZ,QAAU,WACf,OAAOrZ,KAAK6X,YAAYutD,OAC1B,EAeAllE,EAAOglE,aAAe,SAAsBhgD,GAQ1C,YAPa,IAATA,IACFA,EAAO,CAAC,GAGVA,EAAK7b,KAAOrJ,KAAKqJ,KACjB6b,EAAK8/C,OAAShlE,KAAK6X,YACnBqN,EAAK+/C,SAAWjlE,KACTklB,CACT,EAiBAhlB,EAAOU,QAAU,SAAmBie,EAAOqG,GAKzC,YAJa,IAATA,IACFA,EAAO,CAAC,GAGHtkB,GAAQZ,KAAKonB,YAAavI,EAAO7e,KAAKklE,aAAahgD,GAC5D,EAeAhlB,EAAOspB,mBAAqB,SAA4BzmB,GAAI,EAW5D7C,EAAOmB,QAAU,WACf,IAAIgI,EAAOrJ,KAAKqJ,KACZ+X,EAASphB,KAAKohB,OAQlBphB,KAAKY,QAAQ,WACbZ,KAAKQ,MACL4gB,EAAO5gB,IAAI,UAAWR,KAAKqB,SAI3B+f,EAAOmjD,IAAkBl7D,IAAQ,EACjCrJ,KAAKohB,OAASphB,KAAKipB,MAAQ,KAG3B7H,EAAO/X,GAAQy7D,GAAoBz7D,EAAMm7D,GAAcn7D,GACzD,EAaA87D,EAAOE,QAAU,SAAiBL,GAChC,IAAIx1D,EAAsB,iBAAXw1D,EAAsBN,GAAUM,GAAUA,EACzD,MAAoB,mBAANx1D,IAAqB21D,EAAOhlE,UAAUuxB,cAAcliB,EAAErP,UACtE,EAkBAglE,EAAOG,eAAiB,SAAwBj8D,EAAM27D,GACpD,GAAoB,iBAAT37D,EACT,MAAM,IAAIrF,MAAM,yBAA4BqF,EAAO,mCAAsCA,EAAO,KAGlG,GAAIo7D,GAAap7D,GACf+L,GAAMkB,KAAK,mBAAsBjN,EAAO,wEACnC,GAAIuoB,GAAOzxB,UAAUgH,eAAekC,GACzC,MAAM,IAAIrF,MAAM,yBAA4BqF,EAAO,0DAGrD,GAAsB,mBAAX27D,EACT,MAAM,IAAIhhE,MAAM,uBAA0BqF,EAAO,qCAAwC27D,EAAS,KAcpG,OAXAR,GAAcn7D,GAAQ27D,EAGlB37D,IAASi7D,KACPa,EAAOE,QAAQL,GACjBpzC,GAAOzxB,UAAUkJ,GArRD,SAA2BA,EAAM27D,GACvD,IAAIO,EAAqB,WAOvBX,GAAkB5kE,KAAM,CACtBqJ,KAAMA,EACN27D,OAAQA,EACRC,SAAU,OACT,GACH,IAAIA,EAAWD,EAAO5jE,MAAMpB,KAAMc,WAOlC,OANA6jE,GAAmB3kE,KAAMqJ,GACzBu7D,GAAkB5kE,KAAM,CACtBqJ,KAAMA,EACN27D,OAAQA,EACRC,SAAUA,IAELA,CACT,EAKA,OAHA7wD,OAAOC,KAAK2wD,GAAQnmE,SAAQ,SAAUmZ,GACpCutD,EAAmBvtD,GAAQgtD,EAAOhtD,EACpC,IACOutD,CACT,CA0PiCC,CAAkBn8D,EAAM27D,GAEjDpzC,GAAOzxB,UAAUkJ,GAAQy7D,GAAoBz7D,EAAM27D,IAIhDA,CACT,EAaAG,EAAOM,iBAAmB,SAA0Bp8D,GAClD,GAAIA,IAASi7D,GACX,MAAM,IAAItgE,MAAM,mCAGdygE,GAAap7D,YACRm7D,GAAcn7D,UACduoB,GAAOzxB,UAAUkJ,GAE5B,EAcA87D,EAAOO,WAAa,SAAoB/4C,GAKtC,IAAIppB,EASJ,YAbc,IAAVopB,IACFA,EAAQvY,OAAOC,KAAKmwD,KAItB73C,EAAM9tB,SAAQ,SAAUwK,GACtB,IAAI27D,EAASN,GAAUr7D,GAEnB27D,KACFzhE,EAASA,GAAU,CAAC,GACb8F,GAAQ27D,EAEnB,IACOzhE,CACT,EAYA4hE,EAAOQ,iBAAmB,SAA0Bt8D,GAClD,IAAI27D,EAASN,GAAUr7D,GACvB,OAAO27D,GAAUA,EAAOI,SAAW,EACrC,EAEOD,CACT,CAzQ0B,GAwR1BA,GAAOT,UAAYA,GAOnBS,GAAOb,iBAAmBA,GAC1Ba,GAAOG,eAAehB,GAAkBa,IAOxCvzC,GAAOzxB,UAAUwrC,YAAc,SAAUtiC,GACvC,QAASrJ,KAAKukE,MAAsD,IAAjCvkE,KAAKukE,IAAkBl7D,EAC5D,EAQAuoB,GAAOzxB,UAAUylE,UAAY,SAAUv8D,GACrC,QAASo7D,GAAap7D,EACxB,EAwEA,IAqDIw8D,GAAc,SAAqBr3D,GACrC,OAA2B,IAApBA,EAAG9N,QAAQ,KAAa8N,EAAG3O,MAAM,GAAK2O,CAC/C,EAkFA,SAASs3D,GAAQt3D,EAAI3K,EAASwmB,GAC5B,IAAIjJ,EAAS0kD,GAAQC,UAAUv3D,GAE/B,GAAI4S,EASF,OARIvd,GACFuR,GAAMkB,KAAK,WAAc9H,EAAK,0DAG5B6b,GACFjJ,EAAOiJ,MAAMA,GAGRjJ,EAGT,IAAIrJ,EAAmB,iBAAPvJ,EAAkBiS,GAAE,IAAMolD,GAAYr3D,IAAOA,EAE7D,IAAK8L,GAAKvC,GACR,MAAM,IAAIiuD,UAAU,sDASjBjuD,EAAG4N,cAAcsgD,aAAgBluD,EAAG4N,cAAczhB,KAAKkY,SAASrE,IACnE3C,GAAMkB,KAAK,oDAMa,KAH1BzS,EAAUA,GAAW,CAAC,GAGV4nB,YACV5nB,EAAQ4nB,WAAa1T,EAAG+F,YAAc/F,EAAG+F,WAAWwZ,aAAa,mBAAqBvf,EAAG+F,WAAa/F,GAAIoxC,WAAU,IAGtHr0C,GAAM,eAAejW,SAAQ,SAAUqiE,GACrC,IAAIp8C,EAAOo8C,EAAanpD,EAAI4R,GAAe9lB,IAEtCyT,GAASwN,KAAS7jB,MAAMyC,QAAQohB,GAKrCjhB,EAAU8lB,GAAe9lB,EAASihB,GAJhC1P,GAAMmB,MAAM,+CAKhB,IAGA,IAAI2vD,EAAkB/7C,GAAYiD,aAAa,UAK/C,OAJAhM,EAAS,IAAI8kD,EAAgBnuD,EAAIlU,EAASwmB,GAC1CvV,GAAM,SAASjW,SAAQ,SAAUqiE,GAC/B,OAAOA,EAAa9/C,EACtB,IACOA,CACT,CAQA,GANA0kD,GAAQjxD,OAASA,GACjBixD,GAAQhxD,MAAQA,GAChBgxD,GAAQK,KA7m3BG,SAAc9lE,EAAMoL,GAC7BqJ,GAAMzU,EAAMoL,EACd,EA4m3BAq6D,GAAQM,SAvk3BO,SAAkB/lE,EAAMoL,GACrCqJ,GAAMzU,EAAM,GAAGwR,OAAOpG,GAAI7B,KAAI,SAAUy8D,GAMtC,OALc,SAASj+C,IAErB,OADArT,GAAW1U,EAAM+nB,GACVi+C,EAASjlE,WAAM,EAAQN,UAChC,CAGF,IACF,EA+j3BAglE,GAAQ/wD,WAAaA,IAEqB,IAAtC,8BAA8C2E,KAAU,CAC1D,IAAIgI,GAAQjB,GAAE,wBAEd,IAAKiB,GAAO,CACVA,GAAQD,GAAmB,uBAC3B,IAAIyzC,GAAOz0C,GAAE,QAETy0C,IACFA,GAAKp5C,aAAa4F,GAAOwzC,GAAKr5C,YAGhC8F,GAAeD,GAAO,0KACxB,CACF,CAKAP,GAAiB,EAAG2kD,IAOpBA,GAAQV,QAAUxwD,GAQlBkxD,GAAQjiE,QAAU+tB,GAAOzxB,UAAUuqB,SAQnCo7C,GAAQQ,WAAa,WACnB,OAAO10C,GAAOC,OAChB,EAiBAi0C,GAAQC,UAAY,SAAUv3D,GAC5B,IACIL,EADA0jB,EAAUD,GAAOC,QAGrB,GAAkB,iBAAPrjB,EAAiB,CAC1B,IAAI+3D,EAAMV,GAAYr3D,GAClB4S,EAASyQ,EAAQ00C,GAErB,GAAInlD,EACF,OAAOA,EAGTjT,EAAMsS,GAAE,IAAM8lD,EAChB,MACEp4D,EAAMK,EAGR,GAAI8L,GAAKnM,GAAM,CACb,IAAIq4D,EAAOr4D,EACPs4D,EAAUD,EAAKplD,OACfgsC,EAAWoZ,EAAKpZ,SAGpB,GAAIqZ,GAAW50C,EAAQu7B,GACrB,OAAOqZ,GAAW50C,EAAQu7B,EAE9B,CACF,EAYA0Y,GAAQY,cAAgB,WACtB,OAEEtyD,OAAOC,KAAKud,GAAOC,SAASjoB,KAAI,SAAUoU,GACxC,OAAO4T,GAAOC,QAAQ7T,EACxB,IAAG1J,OAAOmF,QAEd,EAEAqsD,GAAQj0C,QAAUD,GAAOC,QACzBi0C,GAAQ14C,aAAejD,GAAYiD,aAmBnC04C,GAAQx0C,kBAAoB,SAAUjoB,EAAMs9D,GACtCj5C,GAAKG,OAAO84C,IACdvxD,GAAMkB,KAAK,OAASjN,EAAO,+GAG7B8gB,GAAYmH,kBAAkBvwB,KAAKopB,GAAa9gB,EAAMs9D,EACxD,EAEAb,GAAQ9gC,QAAUtX,GAAKsX,QACvB8gC,GAAQjhC,aAAenX,GAAKmX,aAC5BihC,GAAQc,IAnjkBR,SAAavmE,EAAMumC,GACjBN,GAAYjmC,GAAQimC,GAAYjmC,IAAS,GACzCimC,GAAYjmC,GAAME,KAAKqmC,EACzB,EAyjkBAxyB,OAAO2Q,eAAe+gD,GAAS,aAAc,CAC3CpjE,MAAO,CAAC,EACRmkE,WAAW,EACXld,YAAY,IAEdv1C,OAAO2Q,eAAe+gD,GAAQl/B,WAAY,aAAc,CACtDlkC,MAAO8jC,GACPqgC,WAAW,EACXld,YAAY,IASdmc,GAAQ9rD,QAAUA,GASlB8rD,GAAQtsD,cAAgBA,GACxBssD,GAAQgB,OAvXK,SAAgBC,EAAYC,QACf,IAApBA,IACFA,EAAkB,CAAC,GAGrB,IAAIC,EAAW,WACbF,EAAW3lE,MAAMpB,KAAMc,UACzB,EAEIomE,EAAU,CAAC,EAoBf,IAAK,IAAI79D,IAlBsB,iBAApB29D,GACLA,EAAgBnvD,cAAgBzD,OAAOjU,UAAU0X,cACnDovD,EAAWD,EAAgBnvD,aAG7BqvD,EAAUF,GAC0B,mBAApBA,IAChBC,EAAWD,IAGb,aAAUC,EAAUF,GAGhBA,IACFE,EAASE,OAASJ,GAIHG,EACXA,EAAQ//D,eAAekC,KACzB49D,EAAS9mE,UAAUkJ,GAAQ69D,EAAQ79D,IAIvC,OAAO49D,CACT,EAoVAnB,GAAQsB,aAAez9C,GACvBm8C,GAAQ1/C,KAAOA,GACf0/C,GAAQR,eAAiBH,GAAOG,eAChCQ,GAAQL,iBAAmBN,GAAOM,iBAalCK,GAAQd,OAAS,SAAU37D,EAAM27D,GAE/B,OADA5vD,GAAMkB,KAAK,wEACJ6uD,GAAOG,eAAej8D,EAAM27D,EACrC,EAEAc,GAAQJ,WAAaP,GAAOO,WAC5BI,GAAQpB,UAAYS,GAAOT,UAC3BoB,GAAQH,iBAAmBR,GAAOQ,iBAelCG,GAAQuB,YAAc,SAAUpgE,EAAMzF,GACpC,IAAI8lE,EAIJ,OAFArgE,GAAQ,GAAKA,GAAM5E,cACnByjE,GAAQjiE,QAAQmoB,UAAYrC,GAAem8C,GAAQjiE,QAAQmoB,YAAYs7C,EAAgB,CAAC,GAAiBrgE,GAAQzF,EAAM8lE,IAChHxB,GAAQjiE,QAAQmoB,UAAU/kB,EACnC,EASA6+D,GAAQtwD,IAAMJ,GACd0wD,GAAQ5vD,aAAeA,GACvB4vD,GAAQyB,gBAAkBzB,GAAQrzC,iBAAmBA,GACrDqzC,GAAQ70B,WAAaA,GACrB60B,GAAQ0B,cA7sgBR,SAAuBC,GACrBz2B,GAAiBy2B,CACnB,EA4sgBA3B,GAAQ4B,gBAvsgBR,WACE12B,GAAiBN,EACnB,EAssgBAo1B,GAAQvqC,SAAWA,GACnBuqC,GAAQjqC,cAAgBA,GACxBiqC,GAAQ6B,YAAclhD,GACtBq/C,GAAQ1lE,GAAKA,GACb0lE,GAAQhgD,IAAMA,GACdggD,GAAQtlE,IAAMA,GACdslE,GAAQllE,QAAUA,GAclBklE,GAAQzhE,IAAM,IACdyhE,GAAQ9oC,UAAYA,GACpB8oC,GAAQp1D,WAAaA,GACrBo1D,GAAQr1D,WAAaA,GACrB,CAAC,OAAQ,aAAc,WAAY,WAAY,WAAY,cAAe,cAAe,gBAAiB,gBAAiB,UAAW,gBAAiB,iBAAiB5R,SAAQ,SAAUmf,GACxL8nD,GAAQ9nD,GAAK,WAEX,OADA5I,GAAMkB,KAAK,WAAa0H,EAAI,qCAAuCA,EAAI,cAChE2C,GAAI3C,GAAG5c,MAAM,KAAMN,UAC5B,CACF,IACAglE,GAAQhuD,cAAgBA,GAQxBguD,GAAQ8B,IAAMjnD,GAQdmlD,GAAQpgE,IAAMs2B,GACd8pC,GAAQlb,mBAAqBA,GAG7Bkb,GAAQuB,YAAY,KAAM,CACxB,iBAAkB,oBAQpB,IAAIQ,GAAa,UAabC,GAA0B,SAAiCC,EAAwBriE,EAAKsiE,GAI1F,OAAID,GAA0BC,GAAOA,EAAIC,aAAeviE,IAAQsiE,EAAIC,YAC3DD,EAAIC,YAGNviE,CACT,EAEIwiE,GAAS,SAAgBvwD,GAC3B,OAAImuD,GAAQtwD,IAAIa,MACPyvD,GAAQtwD,IAAIa,MAAM+P,KAAK0/C,GAAS,OAAQnuD,EAAS,MAGnD,WAAa,CACtB,EASIwwD,GAAoB,EAAI,GAMxBC,GAAkBD,GAElBE,GAAe,SAAsBC,EAAYvrD,GACnD,IACIxe,EADA2P,EAAU,GAGd,GAAIo6D,GAAcA,EAAWhqE,OAE3B,IAAKC,EAAI,EAAGA,EAAI+pE,EAAWhqE,OAAQC,IAC7Bwe,EAAUurD,EAAW91C,MAAMj0B,GAAI+pE,EAAW54D,IAAInR,KAChD2P,EAAQ3N,KAAK,CAAC+nE,EAAW91C,MAAMj0B,GAAI+pE,EAAW54D,IAAInR,KAKxD,OAAOunE,GAAQrzC,iBAAiBvkB,EAClC,EAWIq6D,GAAY,SAAmB51C,EAAU6e,GAC3C,OAAO62B,GAAa11C,GAAU,SAAUH,EAAO9iB,GAC7C,OAAO8iB,EAAQ41C,IAAmB52B,GAAQ9hC,EAAM04D,IAAmB52B,CACrE,GACF,EAUIg3B,GAAgB,SAAuBF,EAAY92B,GACrD,OAAO62B,GAAaC,GAAY,SAAU91C,GACxC,OAAOA,EAAQ21C,IAAqB32B,CACtC,GACF,EAiHIi3B,GAAiB,SAAwBC,GAC3C,IAAIC,EAAS,GAEb,IAAKD,IAAUA,EAAMpqE,OACnB,MAAO,GAGT,IAAK,IAAIC,EAAI,EAAGA,EAAImqE,EAAMpqE,OAAQC,IAChCoqE,EAAOpoE,KAAKmoE,EAAMl2C,MAAMj0B,GAAK,OAASmqE,EAAMh5D,IAAInR,IAGlD,OAAOoqE,EAAO/rD,KAAK,KACrB,EAiCIgsD,GAAoB,SAA2BN,GAGjD,IAFA,IAAIO,EAAiB,GAEZtqE,EAAI,EAAGA,EAAI+pE,EAAWhqE,OAAQC,IACrCsqE,EAAetoE,KAAK,CAClBiyB,MAAO81C,EAAW91C,MAAMj0B,GACxBmR,IAAK44D,EAAW54D,IAAInR,KAIxB,OAAOsqE,CACT,EA2CIC,GAAkB,SAAyBnhE,GAC7C,GAAKA,GAAMA,EAAErJ,QAAWqJ,EAAE+H,IAI1B,OAAO/H,EAAE+H,IAAI/H,EAAErJ,OAAS,EAC1B,EAiBIyqE,GAAc,SAAqBL,EAAOh1C,GAC5C,IAAI8d,EAAO,EAEX,IAAKk3B,IAAUA,EAAMpqE,OACnB,OAAOkzC,EAGT,IAAK,IAAIjzC,EAAI,EAAGA,EAAImqE,EAAMpqE,OAAQC,IAAK,CACrC,IAAIi0B,EAAQk2C,EAAMl2C,MAAMj0B,GACpBmR,EAAMg5D,EAAMh5D,IAAInR,GAEhBm1B,EAAYhkB,IAMd8hC,GADE9d,EAAYlB,GAASkB,GAAahkB,EAC5BA,EAAMgkB,EAKRhkB,EAAM8iB,EAChB,CAEA,OAAOgf,CACT,EAQI+1B,GAAkBzB,GAAQyB,gBAc1ByB,GAA2B,SAAkCC,EAAUC,GAGzE,IAAKA,EAAQ7b,QACX,OAAO6b,EAAQt2C,SAKjB,IAAIrvB,EAAS,EAWb,OAVC2lE,EAAQC,OAAS,IAAItqE,SAAQ,SAAU2Q,GACtCjM,GAAUiM,EAAEojB,QACd,KAGCs2C,EAAQE,cAAgB,IAAIvqE,SAAQ,SAAU2Q,GAC9B,SAAXA,EAAEnP,OACJkD,GAAU0lE,EAASI,mBAEvB,IACO9lE,CACT,EAWI+lE,GAAsB,SAA6BL,GACrD,OAAQA,EAASM,UAAY,IAAIhnE,QAAO,SAAUqqB,EAAKs8C,EAASM,GAqB9D,OApBIN,EAAQC,MACVD,EAAQC,MAAMtqE,SAAQ,SAAUk2C,EAAM00B,GACpC78C,EAAIrsB,KAAK,CACPqyB,SAAUmiB,EAAKniB,SACf82C,aAAcF,EACdG,UAAWF,EACX10B,KAAMA,EACNm0B,QAASA,GAEb,IAEAt8C,EAAIrsB,KAAK,CACPqyB,SAAUs2C,EAAQt2C,SAClB82C,aAAcF,EACdG,UAAW,KACXT,QAASA,EACTn0B,KAAM,OAIHnoB,CACT,GAAG,GACL,EAEIg9C,GAAe,SAAsBjO,GACvC,IAAIkO,EAAclO,EAAM4N,UAAY5N,EAAM4N,SAASjrE,QAAUq9D,EAAM4N,SAAS5N,EAAM4N,SAASjrE,OAAS,GACpG,OAAOurE,GAAeA,EAAYV,OAAS,EAC7C,EAEIW,GAAoB,SAA2B1+D,GACjD,IAAI2+D,EAAiB3+D,EAAK2+D,eAE1B,GAAKA,EAAL,CAIA,IAAIZ,EAAQY,EAAeZ,MAEvBa,GADeD,EAAeX,cACD,IAAI7mE,QAAO,SAAU0nE,EAAOC,GAC3D,OAAOD,GAAuB,SAAdC,EAAK7pE,KAAkB,EAAI,EAC7C,GAAG,GAEH,OADA2pE,GAAab,GAASA,EAAM7qE,OAAS6qE,EAAM7qE,OAAS,CAPpD,CASF,EAWI6rE,GAAgB,SAAuBzrE,EAAQi9D,GACjD,GAAIA,EAAMyO,QACR,OAAO,EAIT,GAAI1rE,GAAUA,EAAO2rE,2BACnB,OAAO3rE,EAAO2rE,2BAGhB,IAAIC,EAAWV,GAAajO,GAAOr9D,OAAS,EAE5C,OAAIgsE,GAAY3O,EAAM4O,eAAiB5O,EAAM4O,cAAcC,aAClD7O,EAAM4O,cAAcC,aAClBF,GAAY3O,EAAM0N,mBACO,EAA3B1N,EAAM0N,mBACJ1N,EAAM4O,eAAiB5O,EAAM4O,cAAcE,SAC7C9O,EAAM4O,cAAcE,SAClB9O,EAAM+O,eACe,EAAvB/O,EAAM+O,eAGR,CACT,EAmHIC,GAAmB,SAA0B1B,EAAU2B,EAAaC,GAKtE,QAJ2B,IAAhBD,IACTA,EAAc3B,EAAS6B,cAAgB7B,EAASM,SAASjrE,QAGvDssE,EAAc3B,EAAS6B,cACzB,OAAO,EAIT,IAAIC,EAnHiB,SAA0B9B,EAAU2B,GACzD,IAAIrnE,EAAS,EACThF,EAAIqsE,EAAc3B,EAAS6B,cAG3B5B,EAAUD,EAASM,SAAShrE,GAGhC,GAAI2qE,EAAS,CACX,QAA6B,IAAlBA,EAAQ12C,MACjB,MAAO,CACLjvB,OAAQ2lE,EAAQ12C,MAChBw4C,SAAS,GAIb,QAA2B,IAAhB9B,EAAQx5D,IACjB,MAAO,CACLnM,OAAQ2lE,EAAQx5D,IAAMw5D,EAAQt2C,SAC9Bo4C,SAAS,EAGf,CAEA,KAAOzsE,KAAK,CAGV,QAA2B,KAF3B2qE,EAAUD,EAASM,SAAShrE,IAETmR,IACjB,MAAO,CACLnM,OAAQA,EAAS2lE,EAAQx5D,IACzBs7D,SAAS,GAMb,GAFAznE,GAAUylE,GAAyBC,EAAUC,QAEhB,IAAlBA,EAAQ12C,MACjB,MAAO,CACLjvB,OAAQA,EAAS2lE,EAAQ12C,MACzBw4C,SAAS,EAGf,CAEA,MAAO,CACLznE,OAAQA,EACRynE,SAAS,EAEb,CAmEiBC,CAAiBhC,EAAU2B,GAE1C,GAAIG,EAASC,QAIX,OAAOD,EAASxnE,OAKlB,IAAI2nE,EApEgB,SAAyBjC,EAAU2B,GAMvD,IALA,IACI1B,EADA3lE,EAAS,EAEThF,EAAIqsE,EAAc3B,EAAS6B,cAGxBvsE,EAAI0qE,EAASM,SAASjrE,OAAQC,IAAK,CAGxC,QAA6B,KAF7B2qE,EAAUD,EAASM,SAAShrE,IAETi0B,MACjB,MAAO,CACLjvB,OAAQ2lE,EAAQ12C,MAAQjvB,EACxBynE,SAAS,GAMb,GAFAznE,GAAUylE,GAAyBC,EAAUC,QAElB,IAAhBA,EAAQx5D,IACjB,MAAO,CACLnM,OAAQ2lE,EAAQx5D,IAAMnM,EACtBynE,SAAS,EAGf,CAGA,MAAO,CACLznE,QAAS,EACTynE,SAAS,EAEb,CAqCgBG,CAAgBlC,EAAU2B,GAExC,OAAIM,EAAQF,QAGHE,EAAQ3nE,OAIVwnE,EAASxnE,OAASsnE,CAC3B,EAkBIj4C,GAAW,SAAkBq2C,EAAU2B,EAAaC,GACtD,IAAK5B,EACH,OAAO,EAST,GANuB,iBAAZ4B,IACTA,EAAU,QAKe,IAAhBD,EAA6B,CAEtC,GAAI3B,EAASmC,cACX,OAAOnC,EAASmC,cAIlB,IAAKnC,EAASmB,QACZ,OAAO,QAEX,CAGA,OAAOO,GAAiB1B,EAAU2B,EAAaC,EACjD,EAeIQ,GAAe,SAAsBhM,GACvC,IAAIiM,EAAkBjM,EAAMiM,gBACxBC,EAAelM,EAAMkM,aACrBC,EAAanM,EAAMmM,WACnBC,EAAWpM,EAAMoM,SACjBC,EAAY,EAEhB,GAAIF,EAAaC,EAAU,CACzB,IAAIr+D,EAAQ,CAACq+D,EAAUD,GACvBA,EAAap+D,EAAM,GACnBq+D,EAAWr+D,EAAM,EACnB,CAEA,GAAIo+D,EAAa,EAAG,CAClB,IAAK,IAAIjtE,EAAIitE,EAAYjtE,EAAIuN,KAAKgU,IAAI,EAAG2rD,GAAWltE,IAClDmtE,GAAaJ,EAGfE,EAAa,CACf,CAEA,IAAK,IAAIrqE,EAAKqqE,EAAYrqE,EAAKsqE,EAAUtqE,IACvCuqE,GAAaH,EAAapqE,GAAIyxB,SAGhC,OAAO84C,CACT,EAsBIC,GAAc,SAAqB1C,EAAU4B,EAASe,EAAgBC,GACxE,IAAK5C,IAAaA,EAASM,SACzB,OAAO,KAGT,GAAIN,EAASmB,QACX,OAAOx3C,GAASq2C,GAGlB,GAAgB,OAAZ4B,EACF,OAAO,KAGTA,EAAUA,GAAW,EACrB,IAAIiB,EAAqBnB,GAAiB1B,EAAUA,EAAS6B,cAAgB7B,EAASM,SAASjrE,OAAQusE,GAQvG,OANIe,IAEFE,GADAD,EAA6C,iBAApBA,EAA+BA,EAAkB1B,GAAc,KAAMlB,IAKzFn9D,KAAKE,IAAI,EAAG8/D,EACrB,EA4KIC,GAAgB,SAAuB9C,GACzC,OAAOA,EAAS+C,cAAgB/C,EAAS+C,aAAe7pD,KAAKD,KAC/D,EAWI+pD,GAAiB,SAAwBhD,GAC3C,OAAOA,EAAS+C,cAAgB/C,EAAS+C,eAAiBr5D,GAC5D,EAUIu5D,GAAY,SAAmBjD,GACjC,IAAIkD,EAAcJ,GAAc9C,GAChC,OAAQA,EAASjmD,WAAampD,CAChC,EA0CI70C,GAAe,SAAsBi2B,EAAM0b,GAC7C,OAAOA,EAASjuD,YAAciuD,EAASjuD,WAAWuyC,EACpD,EAsCI6e,GAA2B,SAAkC1tE,EAAQi9D,GACvE,GAAgC,IAA5Bj9D,EAAO2tE,UAAU/tE,OACnB,OAAO,EAGT,IAAIguE,EAAmB3Q,EAAM3gD,WAAWuxD,WAAavjE,OAAOwjE,UAC5D,OAMc,IANP9tE,EAAO2tE,UAAU/3D,QAAO,SAAU20D,GACvC,QAAKiD,GAAUjD,KAIPA,EAASjuD,WAAWuxD,WAAa,GAAKD,CAChD,IAAGhuE,MACL,EAEImuE,GAAgB,SAAuB9kE,EAAGC,GAI5C,SAAKD,IAAMC,IAAMD,GAAKC,GAAKD,IAAMC,KAK7BD,IAAMC,OAMND,EAAE6G,KAAM5G,EAAE4G,IAAM7G,EAAE6G,KAAO5G,EAAE4G,SAM3B7G,EAAE+kE,cAAe9kE,EAAE8kE,aAAe/kE,EAAE+kE,cAAgB9kE,EAAE8kE,iBAMtD/kE,EAAE/D,MAAOgE,EAAEhE,KAAO+D,EAAE/D,MAAQgE,EAAEhE,OAKpC,EAEI+oE,GAAmB,SAA0BjuE,EAAQE,GACvD,IAAIguE,EAAQluE,GAAUA,EAAOM,aAAeN,EAAOM,YAAY4tE,OAAS,CAAC,EACrE7f,GAAQ,EAEZ,IAAK,IAAI8f,KAAaD,EAAO,CAC3B,IAAK,IAAIv3C,KAASu3C,EAAMC,GAGtB,GAFA9f,EAAQnuD,EAASguE,EAAMC,GAAWx3C,IAGhC,MAIJ,GAAI03B,EACF,KAEJ,CAEA,QAASA,CACX,EAEI+f,GAAc,SAAqBpuE,GAGrC,IAAKA,IAAWA,EAAO2tE,YAAc3tE,EAAO2tE,UAAU/tE,OAMpD,OAHYquE,GAAiBjuE,GAAQ,SAAUquE,GAC7C,OAAOA,EAAQV,WAAaU,EAAQV,UAAU/tE,QAAUyuE,EAAQnpE,GAClE,IA+BF,IA1BA,IAAIy3B,EAAQ,SAAe98B,GACzB,IAAI0qE,EAAWvqE,EAAO2tE,UAAU9tE,GAC5ByuE,EAAS/D,EAASjuD,YAAciuD,EAASjuD,WAAWgyD,OAExD,OAAIA,GAAUA,EAAO1qE,MAAM,KAAKyH,OAAM,SAAUF,GAC9C,OAAOH,EAAaG,EACtB,KAKY8iE,GAAiBjuE,GAAQ,SAAUquE,GAC7C,OAAON,GAAcxD,EAAU8D,EACjC,IANS,WAcF,CACLxpB,GAAG,EAEP,EAEShlD,EAAI,EAAGA,EAAIG,EAAO2tE,UAAU/tE,OAAQC,IAAK,CAChD,IAAI0uE,EAAO5xC,EAAM98B,GAEjB,GAAa,aAAT0uE,GACgB,iBAATA,EAAmB,OAAOA,EAAK1pB,CAC5C,CAIA,OAAO,CACT,EAGI2pB,GAAW,CACb/C,cAAeA,GACfv3C,SAAUA,GACV2U,SAnYa,SAAkB0hC,EAAU4B,EAASgB,GAClD,IACI50B,EAAgB4zB,GAAW,EAC3Bl2B,EAAcg3B,GAAY1C,EAAU4B,GAFnB,EAE4CgB,GAEjE,OAAoB,OAAhBl3B,EACK4yB,KAGFA,GAAgBtwB,EAAetC,EACxC,EA0XEw4B,oBA1WwB,SAA6BC,GAWrD,IAVA,IAAInE,EAAWmE,EAAMnE,SACjB9qC,EAAcivC,EAAMjvC,YACpBkvC,EAAuBD,EAAMC,qBAC7BC,EAAoBF,EAAME,kBAC1B55C,EAAY05C,EAAM15C,UAClB65C,EAAmCH,EAAMG,iCACzC/7B,EAAOrT,EAAczK,EACrB85C,EAAmBlE,GAAoBL,GACvCuC,EAAa,EAERjtE,EAAI,EAAGA,EAAIivE,EAAiBlvE,OAAQC,IAAK,CAChD,IAAIkvE,EAAiBD,EAAiBjvE,GAEtC,GAAI8uE,IAAyBI,EAAe/D,eAKX,iBAAtB4D,GAAsE,iBAA7BG,EAAe9D,WAA0B2D,IAAsBG,EAAe9D,WAAlI,CAIA6B,EAAajtE,EACb,KAHA,CAIF,CAEA,GAAIizC,EAAO,EAAG,CAGZ,GAAIg6B,EAAa,EACf,IAAK,IAAIr8B,EAAMq8B,EAAa,EAAGr8B,GAAO,EAAGA,IAAO,CAC9C,IAAIu+B,EAAkBF,EAAiBr+B,GAGvC,GAFAqC,GAAQk8B,EAAgB96C,SAEpB26C,GACF,GAAI/7B,EAAO,EACT,cAEG,GAAIA,EAAO22B,IAAqB,EACrC,SAGF,MAAO,CACLwB,UAAW+D,EAAgB/D,UAC3BD,aAAcgE,EAAgBhE,aAC9Bh2C,UAAWA,EAAY23C,GAAa,CAClCC,gBAAiBrC,EAASyB,eAC1Ba,aAAciC,EACdhC,WAAYA,EACZC,SAAUt8B,IAGhB,CAKF,MAAO,CACLw6B,UAAW6D,EAAiB,IAAMA,EAAiB,GAAG7D,WAAa,KACnED,aAAc8D,EAAiB,IAAMA,EAAiB,GAAG9D,cAAgB,EACzEh2C,UAAWyK,EAEf,CAKA,GAAIqtC,EAAa,EAAG,CAClB,IAAK,IAAImC,EAAMnC,EAAYmC,EAAM,EAAGA,IAGlC,IAFAn8B,GAAQy3B,EAASyB,gBAEN,EACT,MAAO,CACLf,UAAW6D,EAAiB,IAAMA,EAAiB,GAAG7D,WAAa,KACnED,aAAc8D,EAAiB,IAAMA,EAAiB,GAAG9D,cAAgB,EACzEh2C,UAAWyK,GAKjBqtC,EAAa,CACf,CAIA,IAAK,IAAIoC,EAAMpC,EAAYoC,EAAMJ,EAAiBlvE,OAAQsvE,IAAO,CAC/D,IAAIC,EAAmBL,EAAiBI,GAGxC,GAFAp8B,GAAQq8B,EAAiBj7C,SAErB26C,GACF,GAAI/7B,EAAO,EACT,cAEG,GAAIA,EAAO22B,IAAqB,EACrC,SAGF,MAAO,CACLwB,UAAWkE,EAAiBlE,UAC5BD,aAAcmE,EAAiBnE,aAC/Bh2C,UAAWA,EAAY23C,GAAa,CAClCC,gBAAiBrC,EAASyB,eAC1Ba,aAAciC,EACdhC,WAAYA,EACZC,SAAUmC,IAGhB,CAGA,MAAO,CACLlE,aAAc8D,EAAiBA,EAAiBlvE,OAAS,GAAGorE,aAC5DC,UAAW6D,EAAiBA,EAAiBlvE,OAAS,GAAGqrE,UACzDj2C,UAAWyK,EAEf,EAuPE+tC,UAAWA,GACX4B,WAxMe,SAAoB7E,GACnC,OAAOA,EAASjmD,QAClB,EAuME+oD,cAAeA,GACfE,eAAgBA,GAChBN,YAAaA,GACboC,MAlMU,SAAepS,GACzB,IAAK,IAAIp9D,EAAI,EAAGA,EAAIo9D,EAAM4N,SAASjrE,OAAQC,IACzC,GAAIo9D,EAAM4N,SAAShrE,GAAGkF,IACpB,OAAO,EAIX,OAAO,CACT,EA2LE6zB,aAAcA,GACd02C,2BAzJ+B,SAAoCC,EAAiBC,EAAWjF,EAAUkF,GAKzG,YAJsB,IAAlBA,IACFA,EAAgB,GAGb72C,GAAa,YAAa2xC,IAIpBgF,EAAkBhF,EAASjuD,WAAWuxD,UAClB,EAAhB4B,GAAqBD,EAJ3BlgB,GAKX,EA+IEoe,yBAA0BA,GAC1BU,YAAaA,GACbL,cAAeA,GACfzD,yBAA0BA,IAExBxzD,GAAMswD,GAAQtwD,IAEd44D,GAAmB,SAA0B3tE,EAAOmD,GACtD,OAAOnD,EAAQ,IAAMmD,CACvB,EAiHInF,GAAoB,SAA2BC,EAAQE,GACpDF,EAAOM,aAIZ,CAAC,QAAS,aAAaH,SAAQ,SAAUC,GACvC,GAAKJ,EAAOM,YAAYF,GAIxB,IAAK,IAAIC,KAAYL,EAAOM,YAAYF,GACtC,IAAK,IAAIG,KAAYP,EAAOM,YAAYF,GAAWC,GAAW,CAC5D,IAAIG,EAAkBR,EAAOM,YAAYF,GAAWC,GAAUE,GAC9DL,EAASM,EAAiBJ,EAAWC,EAAUE,EACjD,CAEJ,GACF,EAiBIovE,GAAqB,SAA4BhP,GACnD,IAAI4J,EAAW5J,EAAM4J,SACjBrlE,EAAMy7D,EAAMz7D,IACZ4K,EAAK6wD,EAAM7wD,GACfy6D,EAASz6D,GAAKA,EACdy6D,EAASqF,gBAAkB,EAEvB1qE,IAIFqlE,EAASrlE,IAAMA,GAUjBqlE,EAASjuD,WAAaiuD,EAASjuD,YAAc,CAAC,CAChD,EAkGIuzD,GAAwB,SAA+B7vE,EAAQkF,GACjElF,EAAOkF,IAAMA,EAEb,IAAK,IAAIrF,EAAI,EAAGA,EAAIG,EAAO2tE,UAAU/tE,OAAQC,IAC3C,IAAKG,EAAO2tE,UAAU9tE,GAAGqF,IAAK,CAI5B,IAAI4qE,EAAW,mBAAqBjwE,EACpCG,EAAO2tE,UAAU9tE,GAAGqF,IAAM4qE,CAC5B,CAGF,IAAIC,EAAkB3B,GAAYpuE,GAClCD,GAAkBC,GAAQ,SAAUqc,EAAYjc,EAAWC,EAAUE,GACnE,IAAIyvE,EAAU,mBAAqB5vE,EAAY,IAAMC,EAAW,IAAME,EAEtE,IAAK8b,EAAWsxD,YAActxD,EAAWsxD,UAAU/tE,OAAQ,CAIzD,GAAImwE,GAAiC,UAAd3vE,IAA0Bic,EAAWnX,IAC1D,IAAK,IAAIzC,EAAK,EAAGA,EAAKzC,EAAO2tE,UAAU/tE,OAAQ6C,IAAM,CACnD,IAAIqO,EAAI9Q,EAAO2tE,UAAUlrE,GAEzB,GAAIqO,EAAEwL,YAAcxL,EAAEwL,WAAW4xD,OAASp9D,EAAEwL,WAAW4xD,QAAU7tE,EAC/D,MAEJ,CAGFgc,EAAWsxD,UAAY,EAAC,aAAS,CAAC,EAAGtxD,GACvC,CAEAA,EAAWsxD,UAAUxtE,SAAQ,SAAU2Q,EAAGjR,GACxC,IAAIiQ,EAAK4/D,GAAiB7vE,EAAGmwE,GAEzBl/D,EAAE5L,IACJ4L,EAAEk9D,YAAcl9D,EAAEk9D,aAAe7E,GAAWnpE,EAAOkF,IAAK4L,EAAE5L,MAM1D4L,EAAE5L,IAAY,IAANrF,EAAUmwE,EAAUlgE,EAG5BgB,EAAEk9D,YAAcl9D,EAAE5L,KAGpB4L,EAAEhB,GAAKgB,EAAEhB,IAAMA,EAGfgB,EAAEwL,WAAaxL,EAAEwL,YAAc,CAAC,EAEhCtc,EAAO2tE,UAAU78D,EAAEhB,IAAMgB,EACzB9Q,EAAO2tE,UAAU78D,EAAE5L,KAAO4L,CAC5B,GACF,IAjJwB,SAA6B9Q,GAGrD,IAFA,IAAIH,EAAIG,EAAO2tE,UAAU/tE,OAElBC,KAAK,CACV,IAAI0qE,EAAWvqE,EAAO2tE,UAAU9tE,GAChC8vE,GAAmB,CACjBpF,SAAUA,EACVz6D,GAAI4/D,GAAiB7vE,EAAG0qE,EAASrlE,OAEnCqlE,EAASyD,YAAc7E,GAAWnpE,EAAOkF,IAAKqlE,EAASrlE,KACvDlF,EAAO2tE,UAAUpD,EAASz6D,IAAMy6D,EAEhCvqE,EAAO2tE,UAAUpD,EAASrlE,KAAOqlE,EAK5BA,EAASjuD,WAAWuxD,WACvB/2D,GAAIc,KAAK,qEAEb,CACF,CA6HEq4D,CAAoBjwE,GApHM,SAA+BA,GACzDD,GAAkBC,GAAQ,SAAUqc,GAC9BA,EAAWnX,MACbmX,EAAW2xD,YAAc7E,GAAWnpE,EAAOkF,IAAKmX,EAAWnX,KAE/D,GACF,CA+GEgrE,CAAsBlwE,EACxB,EAEImwE,GAAiB/I,GAAQsB,aACzB0H,GAAgBhJ,GAAQ6B,YA+ExBoH,GAAgB,SAAuBpnE,EAAGC,GAC5C,IAAKD,EACH,OAAOC,EAGT,IAAIrE,EAASsrE,GAAelnE,EAAGC,GAS/B,GANID,EAAEyhE,eAAiBxhE,EAAEwhE,qBAChB7lE,EAAO6lE,aAKZzhE,EAAEwhE,QAAUvhE,EAAEuhE,aACT5lE,EAAO4lE,WAGT,GAAIxhE,EAAEwhE,OAASvhE,EAAEuhE,MACtB,IAAK,IAAI5qE,EAAI,EAAGA,EAAIqJ,EAAEuhE,MAAM7qE,OAAQC,IAC9BoJ,EAAEwhE,OAASxhE,EAAEwhE,MAAM5qE,KACrBgF,EAAO4lE,MAAM5qE,GAAKswE,GAAelnE,EAAEwhE,MAAM5qE,GAAIqJ,EAAEuhE,MAAM5qE,KAiB3D,OAVKoJ,EAAEqnE,SAAWpnE,EAAEonE,UAClBzrE,EAAOyrE,SAAU,GAKfrnE,EAAE0lD,UAAYzlD,EAAEylD,UAClB9pD,EAAO8pD,SAAU,GAGZ9pD,CACT,EA6CI0rE,GAAqB,SAA4B/F,EAASgG,IAGvDhG,EAAQwD,aAAexD,EAAQtlE,MAClCslE,EAAQwD,YAAc7E,GAAWqH,EAAShG,EAAQtlE,MAGhDslE,EAAQzlE,MAAQylE,EAAQzlE,IAAIipE,cAC9BxD,EAAQzlE,IAAIipE,YAAc7E,GAAWqH,EAAShG,EAAQzlE,IAAIG,MAGxDslE,EAAQt/D,MAAQs/D,EAAQt/D,IAAI8iE,cAC9BxD,EAAQt/D,IAAI8iE,YAAc7E,GAAWqH,EAAShG,EAAQt/D,IAAIhG,MAGxDslE,EAAQt/D,KAAOs/D,EAAQt/D,IAAInG,MAAQylE,EAAQt/D,IAAInG,IAAIipE,cACrDxD,EAAQt/D,IAAInG,IAAIipE,YAAc7E,GAAWqH,EAAShG,EAAQt/D,IAAInG,IAAIG,MAGhEslE,EAAQC,OAASD,EAAQC,MAAM7qE,QACjC4qE,EAAQC,MAAMtqE,SAAQ,SAAU2Q,GAC1BA,EAAEk9D,cAINl9D,EAAEk9D,YAAc7E,GAAWqH,EAAS1/D,EAAE5L,KACxC,IAGEslE,EAAQE,cAAgBF,EAAQE,aAAa9qE,QAC/C4qE,EAAQE,aAAavqE,SAAQ,SAAU2Q,GACjCA,EAAEk9D,cAINl9D,EAAEk9D,YAAc7E,GAAWqH,EAAS1/D,EAAE5L,KACxC,GAEJ,EAEIurE,GAAiB,SAAwBxT,GAC3C,IAAI4N,EAAW5N,EAAM4N,UAAY,GAC7BQ,EAAiBpO,EAAMoO,eAI3B,GAAIA,GAAkBA,EAAeZ,OAASY,EAAeZ,MAAM7qE,OAAQ,CAIzE,GAAIyrE,EAAeX,aACjB,IAAK,IAAI7qE,EAAI,EAAGA,EAAIwrE,EAAeX,aAAa9qE,OAAQC,IACtD,GAA4C,QAAxCwrE,EAAeX,aAAa7qE,GAAG8B,KACjC,OAAOkpE,EAMbQ,EAAen3C,SAAW+oC,EAAM+O,eAChCX,EAAe1c,SAAU,EACzBkc,EAAShpE,KAAKwpE,EAChB,CAEA,OAAOR,CACT,EAKI6F,GAAsB,SAA6BznE,EAAGC,GACxD,OAAOD,IAAMC,GAAKD,EAAE4hE,UAAY3hE,EAAE2hE,UAAY5hE,EAAE4hE,SAASjrE,SAAWsJ,EAAE2hE,SAASjrE,QAAUqJ,EAAEyiE,UAAYxiE,EAAEwiE,SAAWziE,EAAEmjE,gBAAkBljE,EAAEkjE,eAAiBnjE,EAAEoiE,iBAAmBniE,EAAEmiE,cACpL,EAeIsF,GAAiB,SAAsB3wE,EAAQ4wE,EAAUC,QACpC,IAAnBA,IACFA,EAAiBH,IAGnB,IAAI7rE,EAASsrE,GAAenwE,EAAQ,CAAC,GACjC8wE,EAAWjsE,EAAO8oE,UAAUiD,EAAS9gE,IAEzC,IAAKghE,EACH,OAAO,KAGT,GAAID,EAAeC,EAAUF,GAC3B,OAAO,KAGTA,EAAS/F,SAAW4F,GAAeG,GACnC,IAAIG,EAAiBZ,GAAeW,EAAUF,GAO9C,GALIG,EAAe1F,iBAAmBuF,EAASvF,uBACtC0F,EAAe1F,eAIpByF,EAASjG,SAAU,CACrB,GAAI+F,EAASI,KAAM,CACjBJ,EAAS/F,SAAW+F,EAAS/F,UAAY,GAGzC,IAAK,IAAIhrE,EAAI,EAAGA,EAAI+wE,EAASI,KAAKC,gBAAiBpxE,IACjD+wE,EAAS/F,SAASxzD,QAAQ,CACxBi5D,SAAS,GAGf,CAEAS,EAAelG,SAtJE,SAAwBlD,EAAUh7B,EAAQ/9B,GAC7D,IAAIsiE,EAAcvJ,EAASxmE,QACvBgwE,EAAcxkC,EAAOxrC,QACzByN,EAASA,GAAU,EAInB,IAHA,IACIwiE,EADAvsE,EAAS,GAGJ2+C,EAAW,EAAGA,EAAW2tB,EAAYvxE,OAAQ4jD,IAAY,CAChE,IAAI6tB,EAAaH,EAAY1tB,EAAW50C,GACpC0iE,EAAaH,EAAY3tB,GAEzB6tB,GACFD,EAAaC,EAAWnmE,KAAOkmE,EAC/BvsE,EAAOhD,KAAKwuE,GAAcgB,EAAYC,MAGlCF,IAAeE,EAAWpmE,MAC5BomE,EAAWpmE,IAAMkmE,GAGnBvsE,EAAOhD,KAAKyvE,GAEhB,CAEA,OAAOzsE,CACT,CA6H8B0sE,CAAeT,EAASjG,SAAU+F,EAAS/F,SAAU+F,EAASxE,cAAgB0E,EAAS1E,cACnH,CAGA2E,EAAelG,SAAS1qE,SAAQ,SAAUqqE,GACxC+F,GAAmB/F,EAASuG,EAAe/C,YAC7C,IAIA,IAAK,IAAIvrE,EAAK,EAAGA,EAAKoC,EAAO8oE,UAAU/tE,OAAQ6C,IACzCoC,EAAO8oE,UAAUlrE,GAAIqN,KAAO8gE,EAAS9gE,KACvCjL,EAAO8oE,UAAUlrE,GAAMsuE,GAmB3B,OAfAlsE,EAAO8oE,UAAUiD,EAAS9gE,IAAMihE,EAEhClsE,EAAO8oE,UAAUiD,EAAS1rE,KAAO6rE,EAEjChxE,GAAkBC,GAAQ,SAAUqc,EAAYjc,EAAWC,EAAUE,GACnE,GAAK8b,EAAWsxD,UAIhB,IAAK,IAAIl9B,EAAM,EAAGA,EAAMp0B,EAAWsxD,UAAU/tE,OAAQ6wC,IAC/CmgC,EAAS9gE,KAAOuM,EAAWsxD,UAAUl9B,GAAK3gC,KAC5CuM,EAAWsxD,UAAUl9B,GAAOsgC,EAGlC,IACOlsE,CACT,EAaI2sE,GAAe,SAAsBvU,EAAOtwB,GAC9C,IAAIk+B,EAAW5N,EAAM4N,UAAY,GAC7BM,EAAcN,EAASA,EAASjrE,OAAS,GACzC6xE,EAAWtG,GAAeA,EAAYV,OAASU,EAAYV,MAAMU,EAAYV,MAAM7qE,OAAS,GAC5F8xE,EAAeD,GAAYA,EAASv9C,UAAYi3C,GAAeA,EAAYj3C,SAE/E,OAAIyY,GAAU+kC,EACU,IAAfA,EAKyD,KAA1DzU,EAAM0N,oBAAsB1N,EAAM+O,gBAAkB,GAC9D,EAYI2F,GAA8B,SAAU74C,GAG1C,SAAS64C,EAAep8C,EAAKq8C,EAAKzsE,GAChC,IAAIijB,EAQJ,QANgB,IAAZjjB,IACFA,EAAU,CAAC,GAGbijB,EAAQ0Q,EAAaz2B,KAAKf,OAASA,MAE9Bi0B,EACH,MAAM,IAAIjwB,MAAM,kDAGlB8iB,EAAMypD,QAAUrI,GAAO,kBACvB,IAAIsI,EAAW3sE,EACX4sE,EAAwBD,EAAS1pE,gBACjCA,OAA4C,IAA1B2pE,GAA2CA,EAC7DC,EAAwBF,EAASG,wBACjCA,OAAoD,IAA1BD,GAA2CA,EACzE5pD,EAAMmN,IAAMA,EACZnN,EAAM8pD,KAAON,EACbxpD,EAAMhgB,gBAAkBA,EACxBggB,EAAM6pD,wBAA0BA,EAChC,IAAIE,EAAaP,EAAI5lD,SAgBrB,OAfA5D,EAAMgqD,iBAAmBD,GAAcA,EAAWC,kBAAoB,GACtEhqD,EAAMiqD,iBAAmBF,GAAcA,EAAWE,kBAAoB,GACtEjqD,EAAMkqD,kBAAoBH,GAAcA,EAAWG,oBAAqB,EAEpElL,GAAQ9rD,QAAQZ,aAClB0N,EAAMkqD,mBAAoB,GAI5BlqD,EAAMmC,MAAQ,eAEdnC,EAAMmqD,0BAA4BnqD,EAAMmqD,0BAA0B7qD,MAAK,aAAuBU,IAE9FA,EAAM1mB,GAAG,qBAAsB0mB,EAAMmqD,2BAE9BnqD,CACT,EA1CA,aAAeupD,EAAgB74C,GA4C/B,IAAIt3B,EAASmwE,EAAelwE,UAsgB5B,OApgBAD,EAAO+wE,0BAA4B,WACjC,IAAI/oD,EAASloB,KAEb,GAAmB,kBAAfA,KAAKipB,MAAT,CAKA,IAAI0yC,EAAQ37D,KAAK27D,QACb/3D,EAAMikE,GAAW7nE,KAAKtB,OAAOkF,IAAK+3D,EAAM/3D,KAExC5D,KAAKgxE,oBACPptE,EA7ZwB,SAAiCA,EAAK+3D,GAClE,GAAIA,EAAMyO,UAAYzO,EAAM4O,cAC1B,OAAO3mE,EAGT,IAAIstE,EAAa,CAAC,EAElB,GAAIvV,EAAM4O,cAAc4G,eAAgB,CACtC,IAAIpH,EAAiBpO,EAAMoO,eAEvBqH,EAAUzV,EAAMmP,cAAgBnP,EAAM4N,SAASjrE,OAInD,GAAIyrE,EAAgB,CAClB,IAAIZ,EAAQY,EAAeZ,OAAS,GAEhCkI,EAAWvH,GAAkBnO,GAAS,EAItC0V,GAAY,GAAKA,IAAalI,EAAM7qE,OAAS,IAG/C4yE,EAAWI,UAAYD,IAYrBA,GAAY,GAAKlI,EAAM7qE,SACzB8yE,GAEJ,CAIAF,EAAWK,SAAWH,CACxB,CAQA,GANIzV,EAAM4O,eAAiB5O,EAAM4O,cAAciH,eAG7CN,EAAWO,UAAY9V,EAAM4O,cAAcmH,kBAAoB,KAAO,OAGpEt9D,OAAOC,KAAK68D,GAAY5yE,OAAQ,CAClC,IAAIqzE,EAAY,IAAI,SAAa/tE,GACjC,CAAC,YAAa,WAAY,aAAa/E,SAAQ,SAAUwK,GAClD6nE,EAAW/pE,eAAekC,IAI/BsoE,EAAUC,aAAaxvD,IAAI/Y,EAAM6nE,EAAW7nE,GAC9C,IACAzF,EAAM+tE,EAAU3zE,UAClB,CAEA,OAAO4F,CACT,CA4VYiuE,CAAwBjuE,EAAK+3D,IAGrC37D,KAAKipB,MAAQ,wBACbjpB,KAAKi6D,QAAUj6D,KAAK4wE,KAAKvsE,IAAI,CAC3BT,IAAKA,EACLkD,gBAAiB9G,KAAK8G,kBACrB,SAAUyP,EAAOyxD,GAElB,GAAK9/C,EAAO+xC,QAIZ,OAAI1jD,EACK2R,EAAO4pD,qBAAqB5pD,EAAO+xC,QAAS/xC,EAAOyzC,QAAS,sBAGrEzzC,EAAO6pD,aAAa,CAClBC,eAAgB9pD,EAAO+xC,QAAQ31D,aAC/BoB,IAAKwiB,EAAOyzC,QAAQ/3D,IACpB4K,GAAI0Z,EAAOyzC,QAAQntD,IAEvB,GA5BA,CA6BF,EAEAtO,EAAO4xE,qBAAuB,SAA8BztE,EAAK4kE,EAAUgJ,GACzE,IAAIruE,EAAMqlE,EAASrlE,IACf4K,EAAKy6D,EAASz6D,GAElBxO,KAAKi6D,QAAU,KAEXgY,IACFjyE,KAAKipB,MAAQgpD,GAGfjyE,KAAKuW,MAAQ,CACX0yD,SAAUjpE,KAAKtB,OAAO2tE,UAAU79D,GAChCjJ,OAAQlB,EAAIkB,OACZwtB,QAAS,sCAAwCnvB,EAAM,IACvDU,aAAcD,EAAIC,aAClB2C,KAAM5C,EAAIkB,QAAU,IAAM,EAAI,GAEhCvF,KAAKY,QAAQ,QACf,EAEAV,EAAOgyE,eAAiB,SAAwB9mE,GAC9C,IAAIkd,EAAStoB,KAET0F,EAAM0F,EAAK1F,IAEf,OAvwBgB,SAAuB0F,GACzC,IAAI+mE,EAAS/mE,EAAK+mE,OACdC,EAAShnE,EAAKgnE,OACdC,EAAiBjnE,EAAKinE,eACtBC,EAAwBlnE,EAAK0lE,iBAC7BA,OAA6C,IAA1BwB,EAAmC,GAAKA,EAC3DC,EAAwBnnE,EAAK2lE,iBAC7BA,OAA6C,IAA1BwB,EAAmC,GAAKA,EAC3DvB,EAAoB5lE,EAAK4lE,kBACzBviE,EAAS,IAAI,EAAA0tB,OAEbg2C,GACF1jE,EAAOrO,GAAG,OAAQ+xE,GAGhBC,GACF3jE,EAAOrO,GAAG,OAAQgyE,GAGpBtB,EAAiBjyE,SAAQ,SAAU2zE,GACjC,OAAO/jE,EAAOgkE,UAAUD,EAC1B,IACAzB,EAAiBlyE,SAAQ,SAAU6zE,GACjC,OAAOjkE,EAAOkkE,aAAaD,EAC7B,IACAjkE,EAAOlO,KAAK8xE,GACZ5jE,EAAOiB,MACP,IAAIkjE,EAAWnkE,EAAOmkE,SAqBtB,GAlBK5B,IACH,CAAC,iBAAkB,OAAQ,gBAAiB,mBAAoB,UAAW,sBAAsBnyE,SAAQ,SAAUmf,GAC7G40D,EAASzrE,eAAe6W,WACnB40D,EAAS50D,EAEpB,IAEI40D,EAASrJ,UACXqJ,EAASrJ,SAAS1qE,SAAQ,SAAUqqE,GAClC,CAAC,QAAS,gBAAgBrqE,SAAQ,SAAUmf,GACtCkrD,EAAQ/hE,eAAe6W,WAClBkrD,EAAQlrD,EAEnB,GACF,MAIC40D,EAASlI,eAAgB,CAC5B,IAAIA,EAAiB,GAEjBkI,EAASrJ,UAAYqJ,EAASrJ,SAASjrE,SACzCosE,EAAiBkI,EAASrJ,SAAShnE,QAAO,SAAUqqB,EAAK/uB,GACvD,OAAOiO,KAAKE,IAAI4gB,EAAK/uB,EAAE+0B,SACzB,GAAG,IAGDu/C,GACFA,EAAO,gDAAkDzH,GAG3DkI,EAASlI,eAAiBA,CAC5B,CAEA,IAAIvB,EAAQS,GAAagJ,GAEzB,GAAIzJ,EAAM7qE,SAAWs0E,EAASvJ,mBAAoB,CAChD,IAAIA,EAAqBF,EAAM5mE,QAAO,SAAUqqB,EAAKpd,GACnD,OAAO1D,KAAKE,IAAI4gB,EAAKpd,EAAEojB,SACzB,GAAG,GAECu/C,IACFA,EAAO,oDAAsD9I,GAC7D7zD,GAAIe,MAAM,0MAGZq8D,EAASvJ,mBAAqBA,CAChC,CAEA,OAAOuJ,CACT,CAurBWC,CAAc,CACnBV,OAAQ,SAAgB9S,GACtB,IAAItsC,EAAUssC,EAAMtsC,QACpB,OAAOzK,EAAOioD,QAAQ,wBAA0B7qE,EAAM,KAAOqtB,EAC/D,EACAq/C,OAAQ,SAAgBhlE,GACtB,IAAI2lB,EAAU3lB,EAAM2lB,QACpB,OAAOzK,EAAOioD,QAAQ,wBAA0B7qE,EAAM,KAAOqtB,EAC/D,EACAs/C,eAVmBjnE,EAAKinE,eAWxBvB,iBAAkB9wE,KAAK8wE,iBACvBC,iBAAkB/wE,KAAK+wE,iBACvBC,kBAAmBhxE,KAAKgxE,mBAE5B,EAeA9wE,EAAO6xE,aAAe,SAAsB3E,GAC1C,IAAI4E,EAAiB5E,EAAM4E,eACvBc,EAAiB1F,EAAM0F,eACvBptE,EAAM0nE,EAAM1nE,IACZ8I,EAAK4+D,EAAM5+D,GAEfxO,KAAKi6D,QAAU,KACfj6D,KAAKipB,MAAQ,gBACb,IAAIggD,EAAW6J,GAAkB9yE,KAAKkyE,eAAe,CACnDxsE,IAAKA,EACL2sE,eAAgBL,IAElB/I,EAAS8J,YAAc5wD,KAAKD,MAC5BmsD,GAAmB,CACjBpF,SAAUA,EACVrlE,IAAK8B,EACL8I,GAAIA,IAGN,IAAI68B,EAASgkC,GAAervE,KAAKtB,OAAQuqE,GACzCjpE,KAAK0qE,eAAiBzB,EAASI,oBAAsBJ,EAASyB,eAC9D1qE,KAAKgzE,cAAgB,KAEjB3nC,GACFrrC,KAAKtB,OAAS2sC,EACdrrC,KAAKizE,OAASjzE,KAAKtB,OAAO2tE,UAAU79D,IAEpCxO,KAAKY,QAAQ,qBAGfZ,KAAKkzE,0BAA0BhD,GAAalwE,KAAK27D,UAAWtwB,IAC5DrrC,KAAKY,QAAQ,iBACf,EAMAV,EAAOmB,QAAU,WACfrB,KAAKY,QAAQ,WACbZ,KAAKmzE,cACL,iBAAsBnzE,KAAKozE,oBAC3B,iBAAsBpzE,KAAKqzE,uBAC3BrzE,KAAKQ,KACP,EAEAN,EAAOizE,YAAc,WACnB,GAAInzE,KAAKi6D,QAAS,CAChB,IAAIqZ,EAAatzE,KAAKi6D,QACtBj6D,KAAKi6D,QAAU,KACfqZ,EAAWntE,mBAAqB,KAChCmtE,EAAWtsE,OACb,CACF,EAiBA9G,EAAOy7D,MAAQ,SAAesN,EAAUsK,GACtC,IAAI1iD,EAAS7wB,KAGb,IAAKipE,EACH,OAAOjpE,KAAKizE,OAId,GAAmB,iBAAfjzE,KAAKipB,MACP,MAAM,IAAIjlB,MAAM,qCAAuChE,KAAKipB,OAK9D,GAAwB,iBAAbggD,EAAuB,CAChC,IAAKjpE,KAAKtB,OAAO2tE,UAAUpD,GACzB,MAAM,IAAIjlE,MAAM,yBAA2BilE,GAG7CA,EAAWjpE,KAAKtB,OAAO2tE,UAAUpD,EACnC,CAIA,GAFA,iBAAsBjpE,KAAKqzE,uBAEvBE,EAAJ,CACE,IAAIC,GAASvK,EAASI,oBAAsBJ,EAASyB,gBAAkB,EAAI,KAAQ,IACnF1qE,KAAKqzE,sBAAwB,eAAoBrzE,KAAK27D,MAAMv1C,KAAKpmB,KAAMipE,GAAU,GAAQuK,EAE3F,KAJA,CAMA,IAAIvB,EAAgBjyE,KAAKipB,MACrBwqD,GAAezzE,KAAKizE,QAAUhK,EAASz6D,KAAOxO,KAAKizE,OAAOzkE,GAC1DklE,EAAoB1zE,KAAKtB,OAAO2tE,UAAUpD,EAASz6D,IAEvD,GAAIklE,GAAqBA,EAAkBtJ,SAE3CnB,EAASmB,SAAWnB,EAASM,SAASjrE,OA0BpC,OAxBI0B,KAAKi6D,UACPj6D,KAAKi6D,QAAQ9zD,mBAAqB,KAClCnG,KAAKi6D,QAAQjzD,QACbhH,KAAKi6D,QAAU,MAGjBj6D,KAAKipB,MAAQ,gBACbjpB,KAAKizE,OAAShK,OAEVwK,IACFzzE,KAAKY,QAAQ,iBAES,gBAAlBqxE,EAMFjyE,KAAKY,QAAQ,kBAEbZ,KAAKY,QAAQ,iBAcnB,GAFAZ,KAAKkzE,0BAA0BhD,GAAajH,GAAU,IAEjDwK,EAAL,CAMA,GAFAzzE,KAAKipB,MAAQ,kBAETjpB,KAAKi6D,QAAS,CAChB,GAAIgP,EAASyD,cAAgB1sE,KAAKi6D,QAAQv0D,IAGxC,OAGF1F,KAAKi6D,QAAQ9zD,mBAAqB,KAClCnG,KAAKi6D,QAAQjzD,QACbhH,KAAKi6D,QAAU,IACjB,CAGIj6D,KAAKizE,QACPjzE,KAAKY,QAAQ,iBAGfZ,KAAKgzE,cAAgB/J,EACrBjpE,KAAKi6D,QAAUj6D,KAAK4wE,KAAKvsE,IAAI,CAC3BT,IAAKqlE,EAASyD,YACd5lE,gBAAiB9G,KAAK8G,kBACrB,SAAUyP,EAAOyxD,GAElB,GAAKn3C,EAAOopC,QAAZ,CAOA,GAHAgP,EAAS8J,YAAc5wD,KAAKD,MAC5B+mD,EAASyD,YAAc5E,GAAwBj3C,EAAO8/C,wBAAyB1H,EAASyD,YAAa1E,GAEjGzxD,EACF,OAAOsa,EAAOihD,qBAAqBjhD,EAAOopC,QAASgP,EAAUgJ,GAG/DphD,EAAOkhD,aAAa,CAClBC,eAAgBhK,EAAI1jE,aACpBoB,IAAKujE,EAASrlE,IACd4K,GAAIy6D,EAASz6D,KAIO,gBAAlByjE,EACFphD,EAAOjwB,QAAQ,kBAEfiwB,EAAOjwB,QAAQ,cAnBjB,CAqBF,GAlDA,CA9CA,CAiGF,EAMAV,EAAO01B,MAAQ,WACT51B,KAAKozE,qBACP,iBAAsBpzE,KAAKozE,oBAC3BpzE,KAAKozE,mBAAqB,MAG5BpzE,KAAKmzE,cAEc,iBAAfnzE,KAAKipB,QAGPjpB,KAAK2zE,SAAU,GAIE,oBAAf3zE,KAAKipB,MAIHjpB,KAAKizE,OACPjzE,KAAKipB,MAAQ,gBAEbjpB,KAAKipB,MAAQ,cAES,0BAAfjpB,KAAKipB,QACdjpB,KAAKipB,MAAQ,gBAEjB,EAMA/oB,EAAO6+B,KAAO,SAAcw0C,GAC1B,IAAIviD,EAAShxB,KAETA,KAAKozE,qBACP,iBAAsBpzE,KAAKozE,oBAC3BpzE,KAAKozE,mBAAqB,MAG5B,IAAIzX,EAAQ37D,KAAK27D,QAEjB,GAAI4X,EAAJ,CACE,IAAIC,EAAQ7X,GAASA,EAAM0N,oBAAsB1N,EAAM+O,gBAAkB,EAAI,IAAO,IACpF1qE,KAAKozE,mBAAqB,gBAAoB,WAC5CpiD,EAAOoiD,mBAAqB,KAE5BpiD,EAAO+N,MACT,GAAGy0C,EAEL,MAEKxzE,KAAK2zE,QAKNhY,IAAUA,EAAMyO,QAClBpqE,KAAKY,QAAQ,sBAEbZ,KAAKY,QAAQ,kBAPbZ,KAAKwyB,OAST,EAEAtyB,EAAOgzE,0BAA4B,SAAmCM,GACpE,IAAIriD,EAASnxB,KAETA,KAAKozE,qBACP,iBAAsBpzE,KAAKozE,oBAC3BpzE,KAAKozE,mBAAqB,MAIvBpzE,KAAK27D,UAAW37D,KAAK27D,QAAQyO,UAIlCpqE,KAAKozE,mBAAqB,gBAAoB,WAC5CjiD,EAAOiiD,mBAAqB,KAE5BjiD,EAAOvwB,QAAQ,sBAEfuwB,EAAO+hD,0BAA0BM,EACnC,GAAGA,GACL,EAMAtzE,EAAOsyB,MAAQ,WACb,IAAIiR,EAASzjC,KAIb,GAFAA,KAAK2zE,SAAU,EAES,iBAAb3zE,KAAKi0B,IAsBd,OAnBKj0B,KAAKi0B,IAAIrwB,MACZ5D,KAAKi0B,IAAIrwB,IAAM,aAAkBrE,MAKnCS,KAAKi0B,IAAIy4C,YAAc1sE,KAAKi0B,IAAIrwB,SAUhCyC,YAAW,WACTo9B,EAAOmwC,qBAAqBnwC,EAAOxP,IACrC,GAAG,GAKLj0B,KAAKi6D,QAAUj6D,KAAK4wE,KAAKvsE,IAAI,CAC3BT,IAAK5D,KAAKi0B,IACVntB,gBAAiB9G,KAAK8G,kBACrB,SAAUyP,EAAOyxD,GAElB,GAAKvkC,EAAOw2B,QAAZ,CAOA,GAFAx2B,EAAOw2B,QAAU,KAEb1jD,EAaF,OAZAktB,EAAOltB,MAAQ,CACbhR,OAAQyiE,EAAIziE,OACZwtB,QAAS,sCAAwC0Q,EAAOxP,IAAM,IAC9D3vB,aAAc0jE,EAAI1jE,aAElB2C,KAAM,GAGa,iBAAjBw8B,EAAOxa,QACTwa,EAAOkwC,SAAU,GAGZlwC,EAAO7iC,QAAQ,SAGxB6iC,EAAOxP,IAAM6zC,GAAwBrkC,EAAOktC,wBAAyBltC,EAAOxP,IAAK+zC,GAEjF,IAAI4K,EAAWnvC,EAAOyuC,eAAe,CACnCG,eAAgBrK,EAAI1jE,aACpBoB,IAAK+9B,EAAOxP,MAGdwP,EAAOmwC,qBAAqBhB,EA5B5B,CA6BF,GACF,EAEA1yE,EAAO2zE,OAAS,WACd,MAA2B,iBAAb7zE,KAAKi0B,IAAmBj0B,KAAKi0B,IAAMj0B,KAAKi0B,IAAIrwB,GAC5D,EAqBA1D,EAAO0zE,qBAAuB,SAA8BhB,GAG1D,GAFA5yE,KAAKipB,MAAQ,cAET2pD,EAASvG,UAoBX,OAnBArsE,KAAKtB,OAASk0E,EACdrE,GAAsBvuE,KAAKtB,OAAQsB,KAAK6zE,UAIxCjB,EAASvG,UAAUxtE,SAAQ,SAAUoqE,GACnCA,EAASM,SAAW4F,GAAelG,GACnCA,EAASM,SAAS1qE,SAAQ,SAAUqqE,GAClC+F,GAAmB/F,EAASD,EAASyD,YACvC,GACF,IACA1sE,KAAKY,QAAQ,uBAERZ,KAAKi6D,SAGRj6D,KAAK27D,MAAM37D,KAAKtB,OAAO2tE,UAAU,KASrC,IAAIzoE,EAAM5D,KAAK6zE,UAAY,aAAkBt0E,KAC7CS,KAAKtB,OAn/BY,SAAwBi9D,EAAO/3D,GAClD,IAAI4K,EAAK4/D,GAAiB,EAAGxqE,GACzBlF,EAAS,CACXM,YAAa,CACX,MAAS,CAAC,EACV,MAAS,CAAC,EACV,kBAAmB,CAAC,EACpB,UAAa,CAAC,GAEhB4E,IAAK,aAAkBrE,KACvBmtE,YAAa,aAAkBntE,KAC/B8sE,UAAW,CAAC,CACVzoE,IAAKA,EACL4K,GAAIA,EACJk+D,YAAa9oE,EAGboX,WAAY,CAAC,KAOjB,OAHAtc,EAAO2tE,UAAU79D,GAAM9P,EAAO2tE,UAAU,GAExC3tE,EAAO2tE,UAAUzoE,GAAOlF,EAAO2tE,UAAU,GAClC3tE,CACT,CA09BkBo1E,CAAelB,EAAUhvE,GACvC5D,KAAK+xE,aAAa,CAChBe,eAAgBF,EAChBltE,IAAK9B,EACL4K,GAAIxO,KAAKtB,OAAO2tE,UAAU,GAAG79D,KAE/BxO,KAAKY,QAAQ,iBACf,EAEOyvE,CACT,CApjBkC,CAojBhCvB,IAMEiF,GAAajO,GAAQzhE,IACrB2vE,GAAiBlO,GAAQsB,aAEzB6M,GAAkB,SAAyBha,EAAS1jD,EAAOzU,EAAUlD,GACvE,IAAIs1E,EAAuC,gBAAzBja,EAAQ11D,aAAiC01D,EAAQn4D,SAAWm4D,EAAQ31D,cAEjFiS,GAAS29D,IACZja,EAAQka,aAAehyD,KAAKD,MAC5B+3C,EAAQma,cAAgBna,EAAQka,aAAela,EAAQoa,YACvDpa,EAAQkU,cAAgB+F,EAAYppE,YAAcopE,EAAY51E,OAEzD27D,EAAQiU,YACXjU,EAAQiU,UAAYpiE,KAAKmW,MAAMg4C,EAAQkU,cAAgBlU,EAAQma,cAAgB,EAAI,OAInFtyE,EAASe,UACXo3D,EAAQqa,gBAAkBxyE,EAASe,SAMjC0T,GAAwB,cAAfA,EAAMtP,OACjBgzD,EAAQsa,UAAW,GAMhBh+D,GAAU0jD,EAAQ30D,SAAmC,MAAxBxD,EAASE,YAA8C,MAAxBF,EAASE,YAA8C,IAAxBF,EAASE,aACvGuU,EAAQ,IAAIvS,MAAM,mCAAqCi2D,IAAYia,GAAeja,EAAQ31D,iBAG5F1F,EAAS2X,EAAO0jD,EAClB,EAEIua,GAAa,WACf,IAAInwE,EAAM,SAASowE,EAAY5wE,EAASjF,GAEtCiF,EAAUmwE,GAAe,CACvBjtE,QAAS,MACRlD,GAGH,IAAI6wE,EAAgBD,EAAYC,eAAiB5O,GAAQ6O,IAAItwE,IAAIqwE,cAEjE,GAAIA,GAA0C,mBAAlBA,EAA8B,CACxD,IAAIE,EAAaF,EAAc7wE,GAE3B+wE,IACF/wE,EAAU+wE,EAEd,CAIA,IACI3a,IADyC,IAA7B6L,GAAQ6O,IAAItwE,IAAIgiE,SAAoB0N,GAAajO,GAAQ6O,IAAItwE,KACrDR,GAAS,SAAU0S,EAAOzU,GAChD,OAAOmyE,GAAgBha,EAAS1jD,EAAOzU,EAAUlD,EACnD,IACIi2E,EAAgB5a,EAAQjzD,MAS5B,OAPAizD,EAAQjzD,MAAQ,WAEd,OADAizD,EAAQ30D,SAAU,EACXuvE,EAAczzE,MAAM64D,EAASn5D,UACtC,EAEAm5D,EAAQr2D,IAAMC,EAAQD,IACtBq2D,EAAQoa,YAAclyD,KAAKD,MACpB+3C,CACT,EAGA,OADA51D,EAAIgiE,UAAW,EACRhiE,CACT,EAgCIywE,GAAoB,SAA2B5L,GACjD,IAvBuC6L,EAuBnClyE,EAAU,CAAC,EAMf,OAJIqmE,EAAQ6L,YACVlyE,EAAQmyE,MAdH,UAZgCD,EA0BR7L,EAAQ6L,WAtBRznE,OAQI,KANH,iBAArBynE,EAAUznE,QAAmD,iBAArBynE,EAAUz2E,OAC5C,WAAgBy2E,EAAUznE,QAAU,WAAgBynE,EAAUz2E,QAAU,WAAgB,GAExFy2E,EAAUznE,OAASynE,EAAUz2E,OAAS,IAoBhDuE,CACT,EAcIoyE,GAAY,SAAmBvM,EAAOnqE,GACxC,OAAOmqE,EAAMl2C,MAAMj0B,GAAK,IAAMmqE,EAAMh5D,IAAInR,EAC1C,EAUI22E,GAAkB,SAAyBnyE,EAAGxE,GAChD,IAAImE,EAAQK,EAAE/E,SAAS,IACvB,MAAO,KAAKwL,UAAU,EAAG,EAAI9G,EAAMpE,QAAUoE,GAASnE,EAAI,EAAI,IAAM,GACtE,EAEI42E,GAAoB,SAA2BpyE,GACjD,OAAIA,GAAK,IAAQA,EAAI,IACZC,OAAOC,aAAaF,GAGtB,GACT,EAaIqyE,GAA4B,SAAmCriD,GACjE,IAAIsiD,EAAe,CAAC,EAcpB,OAbAjhE,OAAOC,KAAK0e,GAASl0B,SAAQ,SAAU4E,GACrC,IAAIf,EAAQqwB,EAAQtvB,GAEhB8G,EAAkB7H,GACpB2yE,EAAa5xE,GAAO,CAClBmH,MAAOlI,EAAMgI,OACbG,WAAYnI,EAAMmI,WAClBC,WAAYpI,EAAMoI,YAGpBuqE,EAAa5xE,GAAOf,CAExB,IACO2yE,CACT,EAYIC,GAAgB,SAAuBC,GACzC,IAAIR,EAAYQ,EAAYR,WAAa,CACvCz2E,OAAQqU,IACRrF,OAAQ,GAEV,MAAO,CAACynE,EAAUz2E,OAAQy2E,EAAUznE,OAAQioE,EAAY7I,aAAa9vD,KAAK,IAC5E,EASI44D,GAAe,SAAsB/xE,GACvC,OAAOA,EAAIipE,WACb,EAWI+I,GAAU,SAAiBj0E,GAO7B,IANA,IAAIoJ,EAAQ3J,MAAMd,UAAUN,MAAMkB,KAAKS,GACnCk0E,EAAO,GACPnyE,EAAS,GAIJumC,EAAI,EAAGA,EAAIl/B,EAAMtM,OAASo3E,EAAM5rC,IAGvCvmC,GAFMqH,EAAM/K,MAAMiqC,EAAI4rC,EAAM5rC,EAAI4rC,EAAOA,GAAM9rE,IAAIsrE,IAAiBt4D,KAAK,IAEvD,IADRhS,EAAM/K,MAAMiqC,EAAI4rC,EAAM5rC,EAAI4rC,EAAOA,GAAM9rE,IAAIurE,IAAmBv4D,KAAK,IAC7C,KAGhC,OAAOrZ,CACT,EAkBIoyE,GAAqBvhE,OAAO6F,OAAO,CACrCC,UAAW,KACXk7D,0BAA2BA,GAC3BE,cAAeA,GACfE,aAAcA,GACdC,QAASA,GACTG,QAtBY,SAAiBxqE,GAC7B,IAAIR,EAAQQ,EAAKR,MACjB,OAAO6qE,GAAQ7qE,EACjB,EAoBEirE,WAlBe,SAAoB3jD,GACnC,IACI3zB,EADAgF,EAAS,GAGb,IAAKhF,EAAI,EAAGA,EAAI2zB,EAAO5zB,OAAQC,IAC7BgF,GAAU0xE,GAAU/iD,EAAQ3zB,GAAK,IAGnC,OAAOgF,CACT,IAkPIuyE,GAAiB,SAAwB1qE,GAC3C,IAAI69D,EAAW79D,EAAK69D,SAChB8M,EAAY3qE,EAAKomC,KACjBA,OAAqB,IAAdukC,OAAuB3xE,EAAY2xE,EAC1Cn3E,EAAWwM,EAAKxM,SAEpB,IAAKA,EACH,MAAM,IAAIoF,MAAM,6CAGlB,IAAKilE,QAAqB7kE,IAATotC,EACf,OAAO5yC,EAAS,CACdm0B,QAAS,uDAIb,IAAIijD,EAzIyB,SAAkCxkC,EAAMy3B,GAKrE,IAAKA,IAAaA,EAASM,UAAyC,IAA7BN,EAASM,SAASjrE,OACvD,OAAO,KAMT,IAHA,IACI4qE,EADA+M,EAAa,EAGR13E,EAAI,EAAGA,EAAI0qE,EAASM,SAASjrE,UAUhCkzC,IAFJykC,GAPA/M,EAAUD,EAASM,SAAShrE,IAOP23E,gBAAkBhN,EAAQgN,gBAAgBC,0BAA4BF,EAAa/M,EAAQt2C,WARpEr0B,KAe9C,IAAIsrE,EAAcZ,EAASM,SAASN,EAASM,SAASjrE,OAAS,GAE/D,GAAIurE,EAAYqM,iBAAmBrM,EAAYqM,gBAAgBC,0BAA4B3kC,EAEzF,OAAO,KAGT,GAAIA,EAAOykC,EAAY,CAIrB,GAAIzkC,EAAOykC,EAlJiB,IAkJJpM,EAAYj3C,SAIlC,OAAO,KAGTs2C,EAAUW,CACZ,CAEA,MAAO,CACLX,QAASA,EACTkN,eAAgBlN,EAAQgN,gBAAkBhN,EAAQgN,gBAAgBG,4BAA8BJ,EAAa/M,EAAQt2C,SAGrHvyB,KAAM6oE,EAAQgN,gBAAkB,WAAa,WAEjD,CAkFuBI,CAAyB9kC,EAAMy3B,GAEpD,IAAK+M,EACH,OAAOp3E,EAAS,CACdm0B,QAAS,oCAIb,GAA4B,aAAxBijD,EAAe31E,KACjB,OAAOzB,EAAS,CACdm0B,QAAS,wFACTwjD,SAAUP,EAAeI,iBAI7B,IAAII,EAAoB,CACtBC,aAAcjlC,GAEZklC,EAtPwB,SAAiCC,EAAYzN,GACzE,IAAKA,EAAQ0N,eAGX,OAAO,KAGT,IAAIC,EAA6B3N,EAAQgN,gBAAgBW,2BAIrDC,EAAyBH,GAHPzN,EAAQgN,gBAAgBG,4BAEPQ,GAEvC,OAAO,IAAI10D,KAAK+mD,EAAQ0N,eAAeG,UAAqC,IAAzBD,EACrD,CAyOoBE,CAAwBxlC,EAAMwkC,EAAe9M,SAM/D,OAJIwN,IACFF,EAAkBS,gBAAkBP,EAAYQ,eAG3Ct4E,EAAS,KAAM43E,EACxB,EAiBIW,GAAoB,SAASA,EAAkB9X,GACjD,IAAIqX,EAAcrX,EAAMqX,YACpBzN,EAAW5J,EAAM4J,SACjBmO,EAAmB/X,EAAMgY,WACzBA,OAAkC,IAArBD,EAA8B,EAAIA,EAC/CE,EAASjY,EAAMiY,OACfC,EAAuBlY,EAAMmY,eAC7BA,OAA0C,IAAzBD,GAAyCA,EAC1D1jD,EAAOwrC,EAAMxrC,KACbj1B,EAAWygE,EAAMzgE,SAErB,IAAKA,EACH,MAAM,IAAIoF,MAAM,gDAGlB,QAA2B,IAAhB0yE,IAAgCzN,IAAaqO,EACtD,OAAO14E,EAAS,CACdm0B,QAAS,yEAIb,IAAKk2C,EAASmB,UAAYv2C,EAAK6M,YAC7B,OAAO9hC,EAAS,CACdm0B,QAAS,4DAIb,IArH8B,SAAmCk2C,GACjE,IAAKA,EAASM,UAAyC,IAA7BN,EAASM,SAASjrE,OAC1C,OAAO,EAGT,IAAK,IAAIC,EAAI,EAAGA,EAAI0qE,EAASM,SAASjrE,OAAQC,IAG5C,IAFc0qE,EAASM,SAAShrE,GAEnBq4E,eACX,OAAO,EAIX,OAAO,CACT,CAuGOa,CAA0BxO,GAC7B,OAAOrqE,EAAS,CACdm0B,QAAS,yDAA2Dk2C,EAASyD,cAIjF,IAAIsJ,EApR0B,SAAmCU,EAAazN,GAI9E,IAAI2N,EAEJ,IACEA,EAAiB,IAAIz0D,KAAKu0D,EAC5B,CAAE,MAAO3zE,GACP,OAAO,IACT,CAEA,IAAKkmE,IAAaA,EAASM,UAAyC,IAA7BN,EAASM,SAASjrE,OACvD,OAAO,KAGT,IAAI4qE,EAAUD,EAASM,SAAS,GAEhC,GAAIqN,EAAiB1N,EAAQ0N,eAE3B,OAAO,KAGT,IAAK,IAAIr4E,EAAI,EAAGA,EAAI0qE,EAASM,SAASjrE,OAAS,IAC7C4qE,EAAUD,EAASM,SAAShrE,KAGxBq4E,EAFmB3N,EAASM,SAAShrE,EAAI,GAAGq4E,iBAFAr4E,KASlD,IA5CuE23E,EA4CnErM,EAAcZ,EAASM,SAASN,EAASM,SAASjrE,OAAS,GAC3Do5E,EAAmB7N,EAAY+M,eAC/Be,EAAsB9N,EAAYqM,iBA9CiCA,EA8CcrM,EAAYqM,iBA7C1EC,0BAA4BD,EAAgBG,4BAA8BH,EAAgBW,2BA6CGhN,EAAYj3C,SA9ElG,IA8E6Gi3C,EAAYj3C,SAGvJ,OAAIgkD,EAFiB,IAAIz0D,KAAKu1D,EAAiBX,UAAkC,IAAtBY,GAIlD,MAGLf,EAAiBc,IACnBxO,EAAUW,GAGL,CACLX,QAASA,EACTkN,eAAgBlN,EAAQgN,gBAAkBhN,EAAQgN,gBAAgBG,4BAA8BnJ,GAASt6C,SAASq2C,EAAUA,EAAS6B,cAAgB7B,EAASM,SAAS7oE,QAAQwoE,IAK/K7oE,KAAM6oE,EAAQgN,gBAAkB,WAAa,YAEjD,CA6NuB0B,CAA0BlB,EAAazN,GAE5D,IAAK+M,EACH,OAAOp3E,EAAS,CACdm0B,QAAS2jD,EAAc,iCAI3B,IAAIxN,EAAU8M,EAAe9M,QACzB2O,EAzJuB,SAAgCC,EAAqBpB,GAChF,IAAIqB,EACAd,EAEJ,IACEc,EAAkB,IAAI51D,KAAK21D,GAC3Bb,EAAkB,IAAI90D,KAAKu0D,EAC7B,CAAE,MAAO3zE,GACT,CAEA,IAAIi1E,EAAmBD,EAAgBhB,UAEvC,OADuBE,EAAgBF,UACZiB,GAAoB,GACjD,CA4IoBC,CAAuB/O,EAAQ0N,eAAgBF,GAEjE,GAA4B,aAAxBV,EAAe31E,KAEjB,OAAmB,IAAfg3E,EACKz4E,EAAS,CACdm0B,QAAS2jD,EAAc,qCAI3BY,EAAOtB,EAAeI,eAAiByB,QACvChkD,EAAK/N,IAAI,UAAU,WACjBqxD,EAAkB,CAChBT,YAAaA,EACbzN,SAAUA,EACVoO,WAAYA,EAAa,EACzBC,OAAQA,EACRE,eAAgBA,EAChB3jD,KAAMA,EACNj1B,SAAUA,GAEd,KAOF,IAAIs5E,EAAahP,EAAQ12C,MAAQqlD,EAOjChkD,EAAK/N,IAAI,UALY,WACnB,OAAOlnB,EAAS,KAAMi1B,EAAKsK,cAC7B,IAKIq5C,GACF3jD,EAAK+B,QAGP0hD,EAAOY,EACT,EAGIC,GAAsB,SAA6Ble,EAAS91B,GAC9D,GAA2B,IAAvB81B,EAAQ7zD,WACV,OAAO+9B,GAIX,EAEIi0C,GAAmB,SAA0Bx0E,EAAKS,EAAK8/B,GACzD,IACIk0C,EADAztE,EAAQ,GAER0tE,GAAW,EAEXC,EAAwB,SAA+B12E,EAAKmmE,EAAK3nE,EAAMm4E,GAGzE,OAFAxQ,EAAIhhE,QACJsxE,GAAW,EACJn0C,EAAGtiC,EAAKmmE,EAAK3nE,EAAMm4E,EAC5B,EAEIC,EAAmB,SAA0BliE,EAAO0jD,GACtD,IAAIqe,EAAJ,CAIA,GAAI/hE,EACF,OAAOgiE,EAAsBhiE,EAAO0jD,EAAS,GAAIrvD,GAInD,IAAI8tE,EAAUze,EAAQ31D,aAAakF,UAAUoB,GAASA,EAAME,YAAc,EAAGmvD,EAAQ31D,aAAahG,QAMlG,GAJAsM,ET309B2B,WAC7B,IAAK,IAAI6K,EAAO3U,UAAUxC,OAAQq6E,EAAU,IAAI13E,MAAMwU,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAClFijE,EAAQjjE,GAAQ5U,UAAU4U,GAO5B,GAJAijE,EAAUA,EAAQrkE,QAAO,SAAU1M,GACjC,OAAOA,IAAMA,EAAEkD,YAAclD,EAAEtJ,SAAwB,iBAANsJ,CACnD,IAEI+wE,EAAQr6E,QAAU,EAGpB,OAAOqM,EAAQguE,EAAQ,IAGzB,IAAIC,EAAWD,EAAQp2E,QAAO,SAAUoJ,EAAOktE,EAAKt6E,GAClD,OAAOoN,GAASktE,EAAI/tE,YAAc+tE,EAAIv6E,OACxC,GAAG,GACCw6E,EAAa,IAAIz6E,WAAWu6E,GAC5BtrE,EAAS,EAMb,OALAqrE,EAAQ95E,SAAQ,SAAUg6E,GACxBA,EAAMluE,EAAQkuE,GACdC,EAAW12D,IAAIy2D,EAAKvrE,GACpBA,GAAUurE,EAAI/tE,UAChB,IACOguE,CACT,CSiz9BYC,CAAkBnuE,EAAOiC,EAAc6rE,GAAS,IACxDL,EAAYA,GAAa1qE,EAAa/C,GAGlCA,EAAMtM,OAAS,IAAM+5E,GAAaztE,EAAMtM,OAAS+5E,EAAY,EAC/D,OAAOF,GAAoBle,GAAS,WAClC,OAAOse,EAAsBhiE,EAAO0jD,EAAS,GAAIrvD,EACnD,IAGF,IAAIvK,EAAOsU,GAAwB/J,GAInC,MAAa,OAATvK,GAAiBuK,EAAMtM,OAAS,MAQ/B+B,GAAQuK,EAAMtM,OAAS,IAPnB65E,GAAoBle,GAAS,WAClC,OAAOse,EAAsBhiE,EAAO0jD,EAAS,GAAIrvD,EACnD,IAWK2tE,EAAsB,KAAMte,EAAS55D,EAAMuK,EArClD,CAsCF,EAEI/G,EAAU,CACZD,IAAKA,EACL0D,WAAY,SAAoB2yD,GAE9BA,EAAQ+e,iBAAiB,sCACzB/e,EAAQ30C,iBAAiB,YAAY,SAAUla,GAG7C,OAFAA,EAAKO,MACLP,EAAK6tE,OACEhF,GAAgBha,EAAS,KAAM,CACpCj4D,WAAYi4D,EAAQ10D,QACnBkzE,EACL,GACF,GAEExe,EAAU51D,EAAIR,GAAS,SAAU0S,EAAOzU,GAC1C,OAAOmyE,GAAgBha,EAAS1jD,EAAOzU,EAAU22E,EACnD,IACA,OAAOxe,CACT,EAEI0N,GAAc7B,GAAQ6B,YACtBP,GAAetB,GAAQsB,aAEvB8R,GAAwB,SAA+BvxE,EAAGC,GAC5D,IAAKwnE,GAAoBznE,EAAGC,GAC1B,OAAO,EAST,GAAID,EAAEwxE,MAAQvxE,EAAEuxE,OAASxxE,EAAEwxE,KAAK7rE,SAAW1F,EAAEuxE,KAAK7rE,QAAU3F,EAAEwxE,KAAK76E,SAAWsJ,EAAEuxE,KAAK76E,QACnF,OAAO,EACF,IAAKqJ,EAAEwxE,MAAQvxE,EAAEuxE,MAAQxxE,EAAEwxE,OAASvxE,EAAEuxE,KAC3C,OAAO,EAKT,GAAIxxE,EAAE4hE,WAAa3hE,EAAE2hE,WAAa5hE,EAAE4hE,UAAY3hE,EAAE2hE,SAChD,OAAO,EAIT,IAAK5hE,EAAE4hE,WAAa3hE,EAAE2hE,SACpB,OAAO,EAIT,IAAK,IAAIhrE,EAAI,EAAGA,EAAIoJ,EAAE4hE,SAASjrE,OAAQC,IAAK,CAC1C,IAAI66E,EAAWzxE,EAAE4hE,SAAShrE,GACtB86E,EAAWzxE,EAAE2hE,SAAShrE,GAE1B,GAAI66E,EAASx1E,MAAQy1E,EAASz1E,IAC5B,OAAO,EAIT,GAAKw1E,EAASrE,WAAcsE,EAAStE,UAArC,CAIA,IAAIuE,EAAaF,EAASrE,UACtBwE,EAAaF,EAAStE,UAE1B,GAAIuE,IAAeC,IAAeD,GAAcC,EAC9C,OAAO,EAIT,GAAID,EAAWhsE,SAAWisE,EAAWjsE,QAAUgsE,EAAWh7E,SAAWi7E,EAAWj7E,OAC9E,OAAO,CAXT,CAaF,CAGA,OAAO,CACT,EA2GIk7E,GAAiB,SAAwB7xE,EAAGC,GAG9C,OAFiB6R,SAAS9R,EAAEiC,MAAQhC,EAAEgC,MACJ6P,QAAQ9R,EAAEiC,KAAOhC,EAAEgC,KAAOjC,EAAEiC,IAAImrE,UAAUznE,SAAW1F,EAAEgC,IAAImrE,UAAUznE,QAAU3F,EAAEiC,IAAImrE,UAAUz2E,SAAWsJ,EAAEgC,IAAImrE,UAAUz2E,UACpIqJ,EAAE/D,MAAQgE,EAAEhE,KAAO+D,EAAEotE,UAAUznE,SAAW1F,EAAEmtE,UAAUznE,QAAU3F,EAAEotE,UAAUz2E,SAAWsJ,EAAEmtE,UAAUz2E,MAC7H,EAGIm7E,GAAmB,SAA0BpN,EAAWqN,GAC1D,IAAIC,EAAiB,CAAC,EAEtB,IAAK,IAAInrE,KAAM69D,EAAW,CACxB,IACIuN,EADWvN,EAAU79D,GACM2qE,KAE/B,GAAIS,EAAiB,CACnB,IAAIn2E,GAAM,IAAAo2E,iBAAgBD,GAE1B,IAAKF,EAAej2E,GAClB,MAGF,IAAIq2E,EAAgBJ,EAAej2E,GAAKs2E,SAEpCP,GAAeM,EAAeF,KAChCD,EAAel2E,GAAOi2E,EAAej2E,GAEzC,CACF,CAEA,OAAOk2E,CACT,EAuBIK,GAAkC,SAAUxiD,GAM9C,SAASwiD,EAAmBC,EAAkB3J,EAAKzsE,EAASq2E,GAC1D,IAAIpzD,OAEY,IAAZjjB,IACFA,EAAU,CAAC,IAGbijB,EAAQ0Q,EAAaz2B,KAAKf,OAASA,MAC7Bm6E,sBAAwBD,IAAwB,aAAuBpzD,GAExEozD,IACHpzD,EAAMszD,WAAY,GAGpB,IAAI5J,EAAW3sE,EACX4sE,EAAwBD,EAAS1pE,gBACjCA,OAA4C,IAA1B2pE,GAA2CA,EAC7DC,EAAwBF,EAASG,wBACjCA,OAAoD,IAA1BD,GAA2CA,EAKzE,GAJA5pD,EAAM8pD,KAAON,EACbxpD,EAAMhgB,gBAAkBA,EACxBggB,EAAM6pD,wBAA0BA,GAE3BsJ,EACH,MAAM,IAAIj2E,MAAM,kDA2BlB,OAvBA8iB,EAAM1mB,GAAG,uBAAuB,WAC9B0mB,EAAMuzD,aACR,IAGAvzD,EAAM1mB,GAAG,sBAAsB,WAC7B0mB,EAAMwzD,cAAcxzD,EAAM60C,QAAQntD,GACpC,IAEAsY,EAAMmC,MAAQ,eACdnC,EAAMyzD,iBAAmB,CAAC,EAC1BzzD,EAAMypD,QAAUrI,GAAO,sBAGnBphD,EAAMszD,WACRtzD,EAAMqzD,sBAAsBK,OAASP,EAGrCnzD,EAAMqzD,sBAAsBM,aAAe,CAAC,GAE5C3zD,EAAM4zD,eAAiBT,EAGlBnzD,CACT,EAzDA,aAAekzD,EAAoBxiD,GA2DnC,IAAIt3B,EAAS85E,EAAmB75E,UAwkBhC,OAtkBAD,EAAOy6E,gBAAkB,SAAyB94E,EAAKo4D,EAASgY,GAE9D,OAAKjyE,KAAKi6D,UAKVj6D,KAAKi6D,QAAU,KAEXp4D,GAGF7B,KAAKuW,MAAuB,iBAAR1U,GAAsBA,aAAemC,MAAe,CACtEuB,OAAQ00D,EAAQ10D,OAChBwtB,QAAS,8BAAgCknC,EAAQr2D,IACjD9B,SAAUm4D,EAAQn4D,SAElBmF,KAAM,GAL0DpF,EAQ9DowE,IACFjyE,KAAKipB,MAAQgpD,GAGfjyE,KAAKY,QAAQ,UACN,QAhBT,EAkBF,EAOAV,EAAO06E,iBAAmB,SAA0B3R,EAAUgJ,EAAe9tC,GAC3E,IAAIjc,EAASloB,KAET66E,EAAU5R,EAASkQ,OAAQ,IAAAU,iBAAgB5Q,EAASkQ,MAExD,GAAKlQ,EAASkQ,MAAS0B,IAAW76E,KAAKm6E,sBAAsBM,aAAaI,GAA1E,CASA,IAAIj3E,EAAMkkE,GAAwB9nE,KAAK2wE,wBAAyB1H,EAASkQ,KAAKzM,aAE1EoO,EAAM,SAAaj5E,EAAKo4D,GAC1B,IAAI/xC,EAAOyyD,gBAAgB94E,EAAKo4D,EAASgY,GAAzC,CAIA,IACIkH,EADA4B,EAAc7yD,EAAOiyD,sBAAsBM,aAG/C,IACEtB,EAAO,IAAUxuE,EAAQsvD,EAAQn4D,UAAU4M,SAAS,GACtD,CAAE,MAAO3L,GAIP,YAFAmlB,EAAOyyD,gBAAgB53E,EAAGk3D,EAASgY,EAGrC,CAOA,OALA8I,EAAYF,GAAW,CACrBd,SAAU9Q,EAASkQ,KACnBA,KAAMA,IAER,IAAA6B,2BAA0B/R,EAAUkQ,EAAMlQ,EAASkQ,KAAKzM,aACjDvoC,GAAG,EAnBV,CAoBF,EAEAnkC,KAAKi6D,QAAUme,GAAiBx0E,EAAK5D,KAAK4wE,KAAKvsE,KAAK,SAAUxC,EAAKo4D,EAASnwD,EAAWc,GACrF,GAAI/I,EACF,OAAOi5E,EAAIj5E,EAAKo4D,GAGlB,IAAKnwD,GAA2B,QAAdA,EAChB,OAAOgxE,EAAI,CACTv1E,OAAQ00D,EAAQ10D,OAChBwtB,QAAS,gBAAkBjpB,GAAa,WAAa,4CAA8ClG,EAGnG9B,SAAU,GACVmnE,SAAUA,EACVgS,UAAU,EACVC,kBAAmBvoE,IAEnB1L,KAAM,GACLgzD,GAIL,IAAIkhB,EAAwBlS,EAASkQ,KAAKpE,UACtCznE,EAAS6tE,EAAsB7tE,OAC/BhP,EAAS68E,EAAsB78E,OAEnC,GAAIsM,EAAMtM,QAAUA,EAASgP,EAC3B,OAAOwtE,EAAIj5E,EAAK,CACdC,SAAU8I,EAAM8D,SAASpB,EAAQA,EAAShP,GAC1CiH,OAAQ00D,EAAQ10D,OAChB3B,IAAKq2D,EAAQr2D,MAKjBskB,EAAO+xC,QAAU/xC,EAAO0oD,KAAKvsE,IAAI,CAC/BT,IAAKA,EACLW,aAAc,cACd1B,QAASiyE,GAAkB,CACzBC,UAAW9L,EAASkQ,KAAKpE,aAE1B+F,EACL,GAvEA,MAJE96E,KAAKo7E,cAAgB,gBAAoB,WACvC,OAAOj3C,GAAG,EACZ,GAAG,EA0EP,EAEAjkC,EAAOmB,QAAU,WACfrB,KAAKY,QAAQ,WACbZ,KAAKmzE,cACLnzE,KAAKu6E,iBAAmB,CAAC,EACzB,iBAAsBv6E,KAAKq7E,6BAC3B,iBAAsBr7E,KAAKo7E,eAC3B,iBAAsBp7E,KAAKozE,oBAC3BpzE,KAAKozE,mBAAqB,KAC1BpzE,KAAKo7E,cAAgB,KACrBp7E,KAAKq7E,4BAA8B,KAE/Br7E,KAAKm6E,sBAAsBmB,oBAC7Bt7E,KAAKQ,IAAI,iBAAkBR,KAAKm6E,sBAAsBmB,mBACtDt7E,KAAKm6E,sBAAsBmB,kBAAoB,MAGjDt7E,KAAKQ,KACP,EAEAN,EAAOq7E,kBAAoB,WACzB,OAAOv7E,KAAKi6D,SAAWj6D,KAAKo7E,aAC9B,EAEAl7E,EAAOizE,YAAc,WACnB,GAAInzE,KAAKi6D,QAAS,CAChB,IAAIqZ,EAAatzE,KAAKi6D,QACtBj6D,KAAKi6D,QAAU,KACfqZ,EAAWntE,mBAAqB,KAChCmtE,EAAWtsE,OACb,CACF,EAEA9G,EAAOy7D,MAAQ,SAAesN,GAC5B,IAAI3gD,EAAStoB,KAGb,IAAKipE,EACH,OAAOjpE,KAAKizE,OAId,GAAmB,iBAAfjzE,KAAKipB,MACP,MAAM,IAAIjlB,MAAM,qCAAuChE,KAAKipB,OAG9D,IAAIgpD,EAAgBjyE,KAAKipB,MAEzB,GAAwB,iBAAbggD,EAAuB,CAChC,IAAKjpE,KAAKm6E,sBAAsBz7E,OAAO2tE,UAAUpD,GAC/C,MAAM,IAAIjlE,MAAM,yBAA2BilE,GAG7CA,EAAWjpE,KAAKm6E,sBAAsBz7E,OAAO2tE,UAAUpD,EACzD,CAEA,IAAIwK,GAAezzE,KAAKizE,QAAUhK,EAASz6D,KAAOxO,KAAKizE,OAAOzkE,GAE9D,GAAIilE,GAAezzE,KAAKu6E,iBAAiBtR,EAASz6D,KAAOxO,KAAKu6E,iBAAiBtR,EAASz6D,IAAI47D,QAS1F,OARApqE,KAAKipB,MAAQ,gBACbjpB,KAAKizE,OAAShK,OAEVwK,IACFzzE,KAAKY,QAAQ,iBACbZ,KAAKY,QAAQ,iBAOZ6yE,IAKDzzE,KAAKizE,QACPjzE,KAAKY,QAAQ,iBAGfZ,KAAK46E,iBAAiB3R,EAAUgJ,GAAe,SAAUuJ,GAEvDlzD,EAAOypD,aAAa,CAClBE,cAAeA,EACfhJ,SAAUA,GAEd,IACF,EAEA/oE,EAAO6xE,aAAe,SAAsB1S,GAC1C,IAAI4S,EAAgB5S,EAAM4S,cACtBhJ,EAAW5J,EAAM4J,SACrBjpE,KAAKipB,MAAQ,gBACbjpB,KAAKu6E,iBAAiBtR,EAASz6D,IAAMy6D,EACrCjpE,KAAKo7E,cAAgB,KAErBp7E,KAAKs6E,cAAcrR,EAASz6D,IAGN,gBAAlByjE,EACFjyE,KAAKY,QAAQ,kBAGbZ,KAAKY,QAAQ,cAEjB,EAEAV,EAAO01B,MAAQ,WACT51B,KAAKm6E,sBAAsBmB,oBAC7Bt7E,KAAKQ,IAAI,iBAAkBR,KAAKm6E,sBAAsBmB,mBACtDt7E,KAAKm6E,sBAAsBmB,kBAAoB,MAGjDt7E,KAAKmzE,cACL,iBAAsBnzE,KAAKozE,oBAC3BpzE,KAAKozE,mBAAqB,KAEtBpzE,KAAKo6E,YACP,iBAAsBp6E,KAAKm6E,sBAAsBkB,6BACjDr7E,KAAKm6E,sBAAsBkB,4BAA8B,MAGxC,iBAAfr7E,KAAKipB,QAGPjpB,KAAK2zE,SAAU,EAEnB,EAEAzzE,EAAO6+B,KAAO,SAAc08C,GAC1B,IAAI5qD,EAAS7wB,KAEb,iBAAsBA,KAAKozE,oBAC3BpzE,KAAKozE,mBAAqB,KAC1B,IAAIzX,EAAQ37D,KAAK27D,QAEjB,GAAI8f,EAAJ,CACE,IAAIjI,EAAQ7X,EAAQA,EAAM+O,eAAiB,EAAI,IAAO,IACtD1qE,KAAKozE,mBAAqB,gBAAoB,WAC5C,OAAOviD,EAAOkO,MAChB,GAAGy0C,EAEL,MAIKxzE,KAAK2zE,QAKNhY,IAAUA,EAAMyO,SAIdpqE,KAAKo6E,YAAcp6E,KAAKq7E,8BAE1Br7E,KAAKY,QAAQ,uBAEbZ,KAAK07E,qCAGP17E,KAAKY,QAAQ,uBAEbZ,KAAKY,QAAQ,kBAjBbZ,KAAKwyB,OAmBT,EAEAtyB,EAAOsyB,MAAQ,WACb,IAAIxB,EAAShxB,KAEbA,KAAK2zE,SAAU,EAGV3zE,KAAKo6E,UAOVp6E,KAAK27E,gBAAe,SAAU3T,EAAK4T,GACjC5qD,EAAO6qD,cAEF7qD,EAAOuqD,qBAAwBvqD,EAAOiiD,QACzCjiD,EAAO2qC,MAAM3qC,EAAOmpD,sBAAsBz7E,OAAO2tE,UAAU,GAE/D,IAZErsE,KAAKo7E,cAAgB,gBAAoB,WACvC,OAAOpqD,EAAO6qD,aAChB,GAAG,EAWP,EAEA37E,EAAOy7E,eAAiB,SAAwBx3C,GAC9C,IAAIhT,EAASnxB,KAEbA,KAAKi6D,QAAUj6D,KAAK4wE,KAAKvsE,IAAI,CAC3BT,IAAK5D,KAAKm6E,sBAAsBK,OAChC1zE,gBAAiB9G,KAAK8G,kBACrB,SAAUyP,EAAOyxD,GAClB,IAAI72C,EAAOwpD,gBAAgBpkE,EAAOyxD,GAAlC,CAQA,IAAI4T,EAAgB5T,EAAI1jE,eAAiB6sB,EAAOgpD,sBAAsB2B,WAWtE,OAVA3qD,EAAOgpD,sBAAsB2B,WAAa9T,EAAI1jE,aAE1C0jE,EAAIsM,iBAAmBtM,EAAIsM,gBAAgByH,KAC7C5qD,EAAO6qD,cAAgB75D,KAAKpd,MAAMijE,EAAIsM,gBAAgByH,MAEtD5qD,EAAO6qD,cAAgB75D,KAAKD,MAG9BiP,EAAOgpD,sBAAsBK,OAAS1S,GAAwB32C,EAAOw/C,wBAAyBx/C,EAAOgpD,sBAAsBK,OAAQxS,GAE/H4T,GACFzqD,EAAO8qD,qBAEP9qD,EAAO+qD,wBAAuB,WAC5B,OAAO/3C,EAAG6jC,EAAK4T,EACjB,KAKKz3C,EAAG6jC,EAAK4T,EAvBf,CALuB,iBAAjBzqD,EAAOlI,QACTkI,EAAOwiD,SAAU,EA4BvB,GACF,EAUAzzE,EAAOg8E,uBAAyB,SAAgCC,GAC9D,IAAI14C,EAASzjC,KAETo8E,GAAY,IAAAC,gBAAer8E,KAAKm6E,sBAAsB2B,YAG1D,OAAkB,OAAdM,GACFp8E,KAAKm6E,sBAAsBmC,cAAgBt8E,KAAKg8E,cAAgB75D,KAAKD,MAC9Di6D,KAGgB,WAArBC,EAAU32E,QACZzF,KAAKm6E,sBAAsBmC,cAAgBF,EAAU15E,MAAQyf,KAAKD,MAC3Di6D,UAGTn8E,KAAKi6D,QAAUj6D,KAAK4wE,KAAKvsE,IAAI,CAC3BT,IAAKikE,GAAW7nE,KAAKm6E,sBAAsBK,OAAQ4B,EAAU15E,OAC7D+C,OAAQ22E,EAAU32E,OAClBqB,gBAAiB9G,KAAK8G,kBACrB,SAAUyP,EAAOyxD,GAElB,GAAKvkC,EAAOw2B,QAAZ,CAIA,GAAI1jD,EAIF,OADAktB,EAAO02C,sBAAsBmC,cAAgB74C,EAAOu4C,cAAgB75D,KAAKD,MAClEi6D,IAGT,IAAII,EAQAA,EANqB,SAArBH,EAAU32E,OACPuiE,EAAIsM,iBAAoBtM,EAAIsM,gBAAgByH,KAKlC55D,KAAKpd,MAAMijE,EAAIsM,gBAAgByH,MAF/Bt4C,EAAOu4C,cAKT75D,KAAKpd,MAAMijE,EAAI1jE,cAG9Bm/B,EAAO02C,sBAAsBmC,cAAgBC,EAAap6D,KAAKD,MAC/Di6D,GAxBA,CAyBF,IACF,EAEAj8E,EAAO27E,YAAc,WACnB77E,KAAKipB,MAAQ,cAETjpB,KAAKo6E,UAIPp6E,KAAKY,QAAQ,kBACHZ,KAAKizE,QAGfjzE,KAAK27D,MAAM37D,KAAK06E,eAEpB,EAEAx6E,EAAO+7E,cAAgB,WAErBj8E,KAAKo7E,cAAgB,KACrB,IArnByChwE,EACvCoxE,EACAhC,EACAiC,EACA1B,EACA2B,EACA9J,EA+mBE+J,EAAY38E,KAAKm6E,sBAAsBz7E,OACvCk+E,GAtnBqCxxE,EAsnBV,CAC7BoxE,UAAWx8E,KAAKm6E,sBAAsB2B,WACtCtB,OAAQx6E,KAAKm6E,sBAAsBK,OACnCiC,aAAcz8E,KAAKm6E,sBAAsBmC,cACzCvB,YAAa/6E,KAAKm6E,sBAAsBM,aACxCiC,iBAAkBC,GA1nBlBH,EAAYpxE,EAAKoxE,UACjBhC,EAASpvE,EAAKovE,OACdiC,EAAerxE,EAAKqxE,aACpB1B,EAAc3vE,EAAK2vE,YACnB2B,EAAmBtxE,EAAKsxE,iBACxB9J,GAAW,IAAA7tE,OAAMy3E,EAAW,CAC9BK,YAAarC,EACbiC,aAAcA,EACd1B,YAAaA,EACb2B,iBAAkBA,IAEpBnO,GAAsBqE,EAAU4H,GACzB5H,GAinBD+J,IACFC,EAlmBa,SAAsBD,EAAWC,EAAW7B,GAS7D,IARA,IAAI+B,GAAY,EACZzxC,EAAS+7B,GAAauV,EAAW,CAEnC/pD,SAAUgqD,EAAUhqD,SACpBmqD,oBAAqBH,EAAUG,oBAC/BC,eAAgBJ,EAAUI,iBAGnBz+E,EAAI,EAAGA,EAAIq+E,EAAUvQ,UAAU/tE,OAAQC,IAAK,CACnD,IAAI0qE,EAAW2T,EAAUvQ,UAAU9tE,GAEnC,GAAI0qE,EAASkQ,KAAM,CACjB,IAAI0B,GAAU,IAAAhB,iBAAgB5Q,EAASkQ,MAEnC4B,GAAeA,EAAYF,IAAYE,EAAYF,GAAS1B,OAC9D,IAAA6B,2BAA0B/R,EAAU8R,EAAYF,GAAS1B,KAAMlQ,EAASkQ,KAAKzM,YAEjF,CAEA,IAAIuQ,EAAiB5N,GAAehkC,EAAQ49B,EAAUiQ,IAElD+D,IACF5xC,EAAS4xC,EACTH,GAAY,EAEhB,CAsBA,OAnBAr+E,GAAkBm+E,GAAW,SAAU7hE,EAAY1a,EAAM68E,EAAO7nD,GAC9D,GAAIta,EAAWsxD,WAAatxD,EAAWsxD,UAAU/tE,OAAQ,CACvD,IAAIkQ,EAAKuM,EAAWsxD,UAAU,GAAG79D,GAE7B2uE,EAAkB9N,GAAehkC,EAAQtwB,EAAWsxD,UAAU,GAAI6M,IAElEiE,KACF9xC,EAAS8xC,GAEFn+E,YAAYqB,GAAM68E,GAAO7nD,GAAOg3C,UAAU,GAAKhhC,EAAOghC,UAAU79D,GACvEsuE,GAAY,EAEhB,CACF,IAEIF,EAAUG,sBAAwBJ,EAAUI,sBAC9CD,GAAY,GAGVA,EACK,KAGFzxC,CACT,CA6iBkB+xC,CAAaT,EAAWC,EAAW58E,KAAKm6E,sBAAsBM,eAI5Ez6E,KAAKm6E,sBAAsBz7E,OAASk+E,GAAwBD,EAC5D,IAAIU,EAAWr9E,KAAKm6E,sBAAsBz7E,OAAO4+E,WAAat9E,KAAKm6E,sBAAsBz7E,OAAO4+E,UAAU,GAU1G,OARID,GAAYA,IAAar9E,KAAKm6E,sBAAsBK,SACtDx6E,KAAKm6E,sBAAsBK,OAAS6C,KAGjCV,GAAaC,GAAaA,EAAUG,sBAAwBJ,EAAUI,sBACzE/8E,KAAK07E,oCAGAjiE,QAAQmjE,EACjB,EAEA18E,EAAOw7E,kCAAoC,WACzC,IAAI6B,EAAMv9E,KAAKm6E,sBAGXoD,EAAIjC,oBACNiC,EAAI/8E,IAAI,iBAAkB+8E,EAAIjC,mBAC9BiC,EAAIjC,kBAAoB,MAItBiC,EAAIlC,8BACN,iBAAsBkC,EAAIlC,6BAC1BkC,EAAIlC,4BAA8B,MAGpC,IAAImC,EAAMD,EAAI7+E,QAAU6+E,EAAI7+E,OAAOq+E,oBAKvB,IAARS,IACED,EAAI5hB,QACN6hB,EAAmC,IAA7BD,EAAI5hB,QAAQ+O,gBAElB6S,EAAIjC,kBAAoBiC,EAAI7B,kCAC5B6B,EAAIz3D,IAAI,iBAAkBy3D,EAAIjC,qBAOf,iBAARkC,GAAoBA,GAAO,EAChCA,EAAM,GACRx9E,KAAKuwE,QAAQ,wCAA0CiN,EAAM,2BAMjEx9E,KAAKy9E,kBAAkBD,EACzB,EAEAt9E,EAAOu9E,kBAAoB,SAA2BD,GACpD,IAAID,EAAMv9E,KAAKm6E,sBACfoD,EAAIlC,4BAA8B,gBAAoB,WACpDkC,EAAIlC,4BAA8B,KAClCkC,EAAI38E,QAAQ,uBACZ28E,EAAIE,kBAAkBD,EACxB,GAAGA,EACL,EAMAt9E,EAAOm6E,YAAc,WACnB,IAAIj2C,EAASpkC,KAEbA,KAAK27E,gBAAe,SAAU3T,EAAK4T,GA3kBP,IAAmCl9E,EAAQg7E,EAErEgE,EA0kBK9B,IAIDx3C,EAAO6uC,SACT7uC,EAAO6uC,OAAS7uC,EAAO+1C,sBAAsBz7E,OAAO2tE,UAAUjoC,EAAO6uC,OAAOzkE,KAI9E41B,EAAO+1C,sBAAsBM,cArlBgC/7E,EAqlBS0lC,EAAO+1C,sBAAsBz7E,OArlB9Bg7E,EAqlBsCt1C,EAAO+1C,sBAAsBM,aAnlBxIiD,EADYjE,GAAiB/6E,EAAO2tE,UAAWqN,GAEnDj7E,GAAkBC,GAAQ,SAAUqc,EAAYjc,EAAWC,EAAUE,GACnE,GAAI8b,EAAWsxD,WAAatxD,EAAWsxD,UAAU/tE,OAAQ,CACvD,IAAI+tE,EAAYtxD,EAAWsxD,UAC3BqR,EAAiBtW,GAAasW,EAAgBjE,GAAiBpN,EAAWqN,GAC5E,CACF,IACOgE,GA8kBHt5C,EAAOw2C,iBAAiBx2C,EAAOu3B,QAASv3B,EAAOnb,OAAO,SAAUuyD,GAE9Dp3C,EAAOk2C,cAAcl2C,EAAOu3B,QAAQntD,GACtC,IACF,GACF,EAQAtO,EAAOo6E,cAAgB,SAAuBqD,GAC5C,IAAIriB,EAASt7D,KAEb,IAAK29E,EACH,MAAM,IAAI35E,MAAM,sCAQdhE,KAAKizE,QAAUjzE,KAAKo6E,WACtBp6E,KAAKi8E,gBAGP,IAAI5P,EAAYrsE,KAAKm6E,sBAAsBz7E,OAAO2tE,UAC9CuR,GAAgB59E,KAAKizE,QAAUjzE,KAAKizE,SAAW5G,EAAUsR,GAQ7D,GANIC,EACF59E,KAAKizE,OAAS5G,EAAUsR,GAExB39E,KAAKY,QAAQ,sBAGVZ,KAAKozE,mBAAoB,EACG,SAASyK,IAClCviB,EAAOK,QAAQyO,UAInB9O,EAAO8X,mBAAqB,gBAAoB,WAC9C9X,EAAO16D,QAAQ,sBAEfi9E,GACF,GAAG3N,GAAa5U,EAAOK,QAASliD,QAAQmkE,KAC1C,CAEAC,EACF,CAEA79E,KAAKY,QAAQ,iBACf,EAEOo5E,CACT,CAroBsC,CAqoBpCrS,IAEEmW,GAAS,CACXC,mBAAoB,GACpBC,uBAAwB,GACxBC,mBAAoB,GACpBC,wBAAyB,EAEzBC,kBAAmB,QAGnBC,mBAAoB,IAEpBC,sBAAuB,EACvBC,0BAA2B,GAE3BC,uCAAwC,GACxCC,2BAA4B,EAE5BC,uBAAwB,IAgBtBC,GAAwB,SAA+BC,GAIzD,OAFAA,EAAUv+E,GAAKu+E,EAAUr5D,iBACzBq5D,EAAUn+E,IAAMm+E,EAAU97D,oBACnB87D,CACT,EAcIC,GAAU,SAAiB33E,GAC7B,OAAO,WACL,IAAI43E,EAdc,SAAyBzkE,GAC7C,IACE,OAAOxa,IAAIk/E,gBAAgB,IAAIC,KAAK,CAAC3kE,GAAM,CACzC/Z,KAAM,2BAEV,CAAE,MAAO0C,GACP,IAAIi8E,EAAO,IAAIC,YAEf,OADAD,EAAKxiC,OAAOpiC,GACLxa,IAAIk/E,gBAAgBE,EAAKE,UAClC,CACF,CAIoBJ,CAAgB73E,GAC5Bk4E,EAAST,GAAsB,IAAIU,OAAOP,IAC9CM,EAAOE,OAASR,EAChB,IAAIS,EAAYH,EAAOG,UASvB,OARAH,EAAO/+E,GAAK++E,EAAO75D,iBACnB65D,EAAO3+E,IAAM2+E,EAAOt8D,oBAEpBs8D,EAAOG,UAAY,WAEjB,OADA1/E,IAAI2/E,gBAAgBV,GACbS,EAAUv+E,KAAKf,KACxB,EAEOm/E,CACT,CACF,EAEIlgE,GAAY,SAAmBhY,GACjC,MAAO,+BAAiCy3E,GAAsB1gF,WAAvD,oCAA+GiJ,CACxH,EAEIu4E,GAAkB,SAAyB/zE,GAC7C,OAAOA,EAAGzN,WAAW4K,QAAQ,gBAAiB,IAAI/I,MAAM,GAAI,EAC9D,EAII4/E,GAAexgE,GAAUugE,IAAgB,WAU3C,IAAIz/E,EAAS,WACXC,KAAK0/E,KAAO,WACV,IAAIz/E,EAAY,CAAC,EAQjBD,KAAKI,GAAK,SAAUC,EAAMC,GACnBL,EAAUI,KACbJ,EAAUI,GAAQ,IAGpBJ,EAAUI,GAAQJ,EAAUI,GAAMwR,OAAOvR,EAC3C,EASAN,KAAKQ,IAAM,SAAUH,EAAMC,GACzB,IAAIG,EAEJ,QAAKR,EAAUI,KAIfI,EAAQR,EAAUI,GAAMK,QAAQJ,GAChCL,EAAUI,GAAQJ,EAAUI,GAAMR,QAClCI,EAAUI,GAAMM,OAAOF,EAAO,GACvBA,GAAS,EAClB,EAQAT,KAAKY,QAAU,SAAUP,GACvB,IAAIQ,EAAWtC,EAAGD,EAAQ0C,EAG1B,GAFAH,EAAYZ,EAAUI,GAUtB,GAAyB,IAArBS,UAAUxC,OAGZ,IAFAA,EAASuC,EAAUvC,OAEdC,EAAI,EAAGA,EAAID,IAAUC,EACxBsC,EAAUtC,GAAGwC,KAAKf,KAAMc,UAAU,QAE/B,CAIL,IAHAE,EAAO,GACPzC,EAAIuC,UAAUxC,OAETC,EAAI,EAAGA,EAAIuC,UAAUxC,SAAUC,EAClCyC,EAAKT,KAAKO,UAAUvC,IAKtB,IAFAD,EAASuC,EAAUvC,OAEdC,EAAI,EAAGA,EAAID,IAAUC,EACxBsC,EAAUtC,GAAG6C,MAAMpB,KAAMgB,EAE7B,CACF,EAMAhB,KAAKqB,QAAU,WACbpB,EAAY,CAAC,CACf,CACF,CACF,EAYAF,EAAOI,UAAUmB,KAAO,SAAUC,GAgBhC,OAfAvB,KAAKI,GAAG,QAAQ,SAAUoB,GACxBD,EAAYhB,KAAKiB,EACnB,IACAxB,KAAKI,GAAG,QAAQ,SAAUu/E,GACxBp+E,EAAYo7B,MAAMgjD,EACpB,IACA3/E,KAAKI,GAAG,eAAe,SAAUu/E,GAC/Bp+E,EAAYq+E,aAAaD,EAC3B,IACA3/E,KAAKI,GAAG,iBAAiB,SAAUu/E,GACjCp+E,EAAYs+E,YAAYF,EAC1B,IACA3/E,KAAKI,GAAG,SAAS,SAAUu/E,GACzBp+E,EAAY8gC,MAAMs9C,EACpB,IACOp+E,CACT,EAMAxB,EAAOI,UAAUI,KAAO,SAAUiB,GAChCxB,KAAKY,QAAQ,OAAQY,EACvB,EAEAzB,EAAOI,UAAUw8B,MAAQ,SAAUgjD,GACjC3/E,KAAKY,QAAQ,OAAQ++E,EACvB,EAEA5/E,EAAOI,UAAUy/E,aAAe,SAAUD,GACxC3/E,KAAKY,QAAQ,cAAe++E,EAC9B,EAEA5/E,EAAOI,UAAU0/E,YAAc,SAAUF,GACvC3/E,KAAKY,QAAQ,gBAAiB++E,EAChC,EAEA5/E,EAAOI,UAAUkiC,MAAQ,SAAUs9C,GACjC3/E,KAAKY,QAAQ,QAAS++E,EACxB,EAEA,IAyBIrgE,EAAKwgE,EAAMC,EAAMC,EAAYC,EAAMC,EAAMzsE,EAAMC,EAAMysE,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAQtuE,EAAOuuE,EAAaC,EAAeC,EAAYC,EAAYC,EAAYC,EAAYC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAyS1PC,EAAaC,EAqLbC,EAAWC,EAAWC,EAvfxBC,EAASniF,EACToiF,EAAer2E,KAAKs2E,IAAI,EAAG,IAmB3BC,EAAU,CACZC,UAlBgB,SAAmBC,GACnC,IACI7/E,EADA8/E,EAAK,IAAIC,SAASF,EAAM73E,OAAQ63E,EAAM13E,WAAY03E,EAAMz3E,YAG5D,OAAI03E,EAAGE,cACLhgF,EAAQ8/E,EAAGE,aAAa,IAEZ15E,OAAO25E,iBACV35E,OAAOtG,GAGTA,EAGF8/E,EAAGI,UAAU,GAAKT,EAAeK,EAAGI,UAAU,EACvD,EAIEC,WAAYV,GAEVU,EAAaR,EAAQQ,YAGzB,WACE,IAAItkF,EA2CJ,GA1CAkU,EAAQ,CACNqwE,KAAM,GAENC,KAAM,GACNC,KAAM,GACNlD,KAAM,GACNmD,KAAM,GACNlD,KAAM,GACNC,KAAM,GACNS,KAAM,GACNyC,KAAM,GACN1C,KAAM,GACND,KAAM,GACNN,KAAM,GACNC,KAAM,GACNzsE,KAAM,GACNC,KAAM,GACNyvE,KAAM,GAENhD,KAAM,GACNC,KAAM,GACNgD,KAAM,GACN1C,KAAM,GACN2C,KAAM,GACN1C,KAAM,GACN2C,KAAM,GACNC,KAAM,GACN3C,KAAM,GACN4C,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACN/C,KAAM,GACNR,KAAM,GACNwD,KAAM,GACN/C,KAAM,GACNR,KAAM,GACNwD,KAAM,IAIkB,oBAAfzlF,WAAX,CAIA,IAAKE,KAAKkU,EACJA,EAAMtL,eAAe5I,KACvBkU,EAAMlU,GAAK,CAACA,EAAEC,WAAW,GAAID,EAAEC,WAAW,GAAID,EAAEC,WAAW,GAAID,EAAEC,WAAW,KAIhFwiF,EAAc,IAAI3iF,WAAW,CAAC,IAAIG,WAAW,GAAI,IAAIA,WAAW,GAAI,IAAIA,WAAW,GAAI,IAAIA,WAAW,KACtG0iF,EAAa,IAAI7iF,WAAW,CAAC,IAAIG,WAAW,GAAI,IAAIA,WAAW,GAAI,IAAIA,WAAW,GAAI,IAAIA,WAAW,KACrGyiF,EAAgB,IAAI5iF,WAAW,CAAC,EAAG,EAAG,EAAG,IACzC8iF,EAAa,IAAI9iF,WAAW,CAAC,EAC7B,EAAM,EAAM,EACZ,EAAM,EAAM,EAAM,EAClB,IAAM,IAAM,IAAM,IAClB,EAAM,EAAM,EAAM,EAClB,EAAM,EAAM,EAAM,EAClB,EAAM,EAAM,EAAM,EAClB,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAExE+iF,EAAa,IAAI/iF,WAAW,CAAC,EAC7B,EAAM,EAAM,EACZ,EAAM,EAAM,EAAM,EAClB,IAAM,IAAM,IAAM,IAClB,EAAM,EAAM,EAAM,EAClB,EAAM,EAAM,EAAM,EAClB,EAAM,EAAM,EAAM,EAClB,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAExEgjF,EAAa,CACXn5E,MAAOi5E,EACPh5E,MAAOi5E,GAETI,EAAO,IAAInjF,WAAW,CAAC,EACvB,EAAM,EAAM,EACZ,EAAM,EAAM,EAAM,EAClB,EAAM,EAAM,EAAM,GAClB,IAAM,IAAM,IAAM,GAClB,EACA,EAAM,EAAM,IAEZkjF,EAAO,IAAIljF,WAAW,CAAC,EACvB,EAAM,EAAM,EACZ,EAAM,EACN,EAAM,IAENojF,EAAO,IAAIpjF,WAAW,CAAC,EACvB,EAAM,EAAM,EACZ,EAAM,EAAM,EAAM,IAElBqjF,EAAOD,EACPE,EAAO,IAAItjF,WAAW,CAAC,EACvB,EAAM,EAAM,EACZ,EAAM,EAAM,EAAM,EAClB,EAAM,EAAM,EAAM,IAElBujF,EAAOH,EACPH,EAAO,IAAIjjF,WAAW,CAAC,EACvB,EAAM,EAAM,EACZ,EAAM,EACN,EAAM,EAAM,EAAM,EAAM,EAAM,GA5D9B,CA8DD,CA5GD,GA8GAihB,EAAM,SAAajf,GACjB,IAEI9B,EACAgF,EAHAwgF,EAAU,GACV31E,EAAO,EAKX,IAAK7P,EAAI,EAAGA,EAAIuC,UAAUxC,OAAQC,IAChCwlF,EAAQxjF,KAAKO,UAAUvC,IAKzB,IAFAA,EAAIwlF,EAAQzlF,OAELC,KACL6P,GAAQ21E,EAAQxlF,GAAGuM,WAQrB,IALAvH,EAAS,IAAIlF,WAAW+P,EAAO,GACxB,IAAIq0E,SAASl/E,EAAOmH,OAAQnH,EAAOsH,WAAYtH,EAAOuH,YACxDk5E,UAAU,EAAGzgF,EAAOuH,YACzBvH,EAAO6e,IAAI/hB,EAAM,GAEZ9B,EAAI,EAAG6P,EAAO,EAAG7P,EAAIwlF,EAAQzlF,OAAQC,IACxCgF,EAAO6e,IAAI2hE,EAAQxlF,GAAI6P,GACvBA,GAAQ21E,EAAQxlF,GAAGuM,WAGrB,OAAOvH,CACT,EAEAu8E,EAAO,WACL,OAAOxgE,EAAI7M,EAAMqtE,KAAMxgE,EAAI7M,EAAMwwE,KAAMzB,GACzC,EAEAzB,EAAO,SAAcxsD,GACnB,OAAOjU,EAAI7M,EAAMstE,KAAM,IAAI1hF,WAAW,CAAC,EACvC,EAAM,EAAM,EAEZ,EACA,GACA,EAAM,EACN,EAEA,EACA,GACA,GACA,GACA,EAAM,EAAM,EACZ,EAAM,EAAM,IAAM,IAClB,EAAM,EAAM,IAAM,IAElB,EACA,EAGAk1B,EAAM0wD,iBAAmB,EAAI1wD,EAAM2wD,yBAA2B,EAAG3wD,EAAM2wD,wBAA0B,EAAI3wD,EAAM4wD,cAAgB,EAAG,EAAM,EAAM,IAE5I,EAMA1D,EAAO,SAAcpgF,GACnB,OAAOif,EAAI7M,EAAMguE,KAAMY,EAAWhhF,GACpC,EAMAmgF,EAAO,SAAcjtD,GACnB,IAAIhwB,EAAS,IAAIlF,WAAW,CAAC,EAC7B,EAAM,EAAM,EACZ,EAAM,EAAM,EAAM,EAClB,EAAM,EAAM,EAAM,EAClB,EAAM,EAAM,GAAM,IAClBk1B,EAAMX,WAAa,GAAK,IAAMW,EAAMX,WAAa,GAAK,IAAMW,EAAMX,WAAa,EAAI,IAAuB,IAAjBW,EAAMX,SAC/F,GAAM,IACN,EAAM,IAWN,OAPIW,EAAM6wD,aACR7gF,EAAO,IAAMgwB,EAAM6wD,aAAe,GAAK,IACvC7gF,EAAO,IAAMgwB,EAAM6wD,aAAe,GAAK,IACvC7gF,EAAO,IAAMgwB,EAAM6wD,aAAe,EAAI,IACtC7gF,EAAO,IAAyB,IAAnBgwB,EAAM6wD,YAGd9kE,EAAI7M,EAAM+tE,KAAMj9E,EACzB,EAEAg9E,EAAO,SAAchtD,GACnB,OAAOjU,EAAI7M,EAAM8tE,KAAMC,EAAKjtD,GAAQktD,EAAKltD,EAAMlzB,MAAO6/E,EAAK3sD,GAC7D,EAEA0sD,EAAO,SAAcoE,GACnB,OAAO/kE,EAAI7M,EAAMwtE,KAAM,IAAI5hF,WAAW,CAAC,EAAM,EAAM,EAAM,GACvC,WAAjBgmF,IAAgC,IAAsB,SAAjBA,IAA8B,IAAsB,MAAjBA,IAA4B,EAAoB,IAAjBA,IAE1G,EAEAnE,EAAO,SAAc3sD,GACnB,OAAOjU,EAAI7M,EAAMytE,KAAqB,UAAf3sD,EAAMlzB,KAAmBif,EAAI7M,EAAMqxE,KAAMxC,GAAQhiE,EAAI7M,EAAM4wE,KAAM9B,GAAOzB,IAAQa,EAAKptD,GAC9G,EAEA9f,EAAO,SAAc4wE,EAAgB5sD,GAInC,IAHA,IAAI6sD,EAAiB,GACjB/lF,EAAIk5B,EAAOn5B,OAERC,KACL+lF,EAAe/lF,GAAKsiF,EAAKppD,EAAOl5B,IAGlC,OAAO+gB,EAAIle,MAAM,KAAM,CAACqR,EAAMgB,KAAMwsE,EAAKoE,IAAiBxyE,OAAOyyE,GACnE,EAQA5wE,EAAO,SAAc+jB,GAInB,IAHA,IAAIl5B,EAAIk5B,EAAOn5B,OACXimF,EAAQ,GAELhmF,KACLgmF,EAAMhmF,GAAK8hF,EAAK5oD,EAAOl5B,IAGzB,OAAO+gB,EAAIle,MAAM,KAAM,CAACqR,EAAMiB,KAAM0sE,EAAK,aAAavuE,OAAO0yE,GAAO1yE,OAAOsuE,EAAK1oD,IAClF,EAEA0oD,EAAO,SAAc1oD,GAInB,IAHA,IAAIl5B,EAAIk5B,EAAOn5B,OACXimF,EAAQ,GAELhmF,KACLgmF,EAAMhmF,GAAKuiF,EAAKrpD,EAAOl5B,IAGzB,OAAO+gB,EAAIle,MAAM,KAAM,CAACqR,EAAM0tE,MAAMtuE,OAAO0yE,GAC7C,EAEAnE,EAAO,SAAcxtD,GACnB,IAAIhoB,EAAQ,IAAIvM,WAAW,CAAC,EAC5B,EAAM,EAAM,EACZ,EAAM,EAAM,EAAM,EAClB,EAAM,EAAM,EAAM,EAClB,EAAM,EAAM,GAAM,KACN,WAAXu0B,IAA0B,IAAgB,SAAXA,IAAwB,IAAgB,MAAXA,IAAsB,EAAc,IAAXA,EACtF,EAAM,EAAM,EAAM,EAClB,EAAM,EACN,EAAM,EACN,EAAM,EAAM,EAAM,EAClB,EAAM,EAAM,EAAM,EAClB,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAM,EAAM,EAAM,EAClN,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAC1I,IAAM,IAAM,IAAM,MAElB,OAAOtT,EAAI7M,EAAM2tE,KAAMx1E,EACzB,EAEA81E,EAAO,SAAcntD,GACnB,IAEI3lB,EACArP,EAHAimF,EAAUjxD,EAAMixD,SAAW,GAC3B55E,EAAQ,IAAIvM,WAAW,EAAImmF,EAAQlmF,QAKvC,IAAKC,EAAI,EAAGA,EAAIimF,EAAQlmF,OAAQC,IAC9BqP,EAAQ42E,EAAQjmF,GAAGqP,MACnBhD,EAAMrM,EAAI,GAAKqP,EAAM62E,WAAa,EAAI72E,EAAM82E,cAAgB,EAAI92E,EAAM+2E,cAGxE,OAAOrlE,EAAI7M,EAAMiuE,KAAM91E,EACzB,EAEA+1E,EAAO,SAAcptD,GACnB,OAAOjU,EAAI7M,EAAMkuE,KAAMC,EAAKrtD,GAAQjU,EAAI7M,EAAMgxE,KAAM7B,GAAOtiE,EAAI7M,EAAM8wE,KAAM7B,GAAOpiE,EAAI7M,EAAM+wE,KAAM7B,GAAOriE,EAAI7M,EAAM6wE,KAAM7B,GAC3H,EAKEb,EAAO,SAAcrtD,GACnB,OAAOjU,EAAI7M,EAAMmuE,KAAM,IAAIviF,WAAW,CAAC,EACvC,EAAM,EAAM,EACZ,EAAM,EAAM,EAAM,IAAuB,UAAfk1B,EAAMlzB,KAAmBwhF,EAAYtuD,GAASuuD,EAAYvuD,GACtF,EAEAsuD,EAAc,SAAqBtuD,GACjC,IAIIh1B,EACAqmF,EALAC,EAAMtxD,EAAMsxD,KAAO,GACnBC,EAAMvxD,EAAMuxD,KAAO,GACnBC,EAAwB,GACxBC,EAAuB,GAI3B,IAAKzmF,EAAI,EAAGA,EAAIsmF,EAAIvmF,OAAQC,IAC1BwmF,EAAsBxkF,MAA0B,MAApBskF,EAAItmF,GAAGuM,cAAyB,GAC5Di6E,EAAsBxkF,KAAyB,IAApBskF,EAAItmF,GAAGuM,YAElCi6E,EAAwBA,EAAsBlzE,OAAO5Q,MAAMd,UAAUN,MAAMkB,KAAK8jF,EAAItmF,KAItF,IAAKA,EAAI,EAAGA,EAAIumF,EAAIxmF,OAAQC,IAC1BymF,EAAqBzkF,MAA0B,MAApBukF,EAAIvmF,GAAGuM,cAAyB,GAC3Dk6E,EAAqBzkF,KAAyB,IAApBukF,EAAIvmF,GAAGuM,YACjCk6E,EAAuBA,EAAqBnzE,OAAO5Q,MAAMd,UAAUN,MAAMkB,KAAK+jF,EAAIvmF,KA+BpF,GA5BAqmF,EAAU,CAACnyE,EAAMqwE,KAAM,IAAIzkF,WAAW,CAAC,EAAM,EAAM,EAAM,EAAM,EAAM,EACrE,EAAM,EACN,EAAM,EACN,EAAM,EACN,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GACnD,MAAdk1B,EAAMrV,QAAmB,EAAiB,IAAdqV,EAAMrV,OACnB,MAAfqV,EAAMtV,SAAoB,EAAkB,IAAfsV,EAAMtV,OACpC,EAAM,GAAM,EAAM,EAClB,EAAM,GAAM,EAAM,EAClB,EAAM,EAAM,EAAM,EAClB,EAAM,EACN,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAC1L,EAAM,GACN,GAAM,KACFqB,EAAI7M,EAAMswE,KAAM,IAAI1kF,WAAW,CAAC,EACpCk1B,EAAM0xD,WACN1xD,EAAM2xD,qBACN3xD,EAAM4xD,SACN,KACEtzE,OAAO,CAACgzE,EAAIvmF,QACdymF,EACA,CAACD,EAAIxmF,QACL0mF,KACK1lE,EAAI7M,EAAMuwE,KAAM,IAAI3kF,WAAW,CAAC,EAAM,GAAM,IAAM,IACvD,EAAM,GAAM,IAAM,IAClB,EAAM,GAAM,IAAM,QAGdk1B,EAAM6xD,SAAU,CAClB,IAAIC,EAAW9xD,EAAM6xD,SAAS,GAC1BE,EAAW/xD,EAAM6xD,SAAS,GAC9BR,EAAQrkF,KAAK+e,EAAI7M,EAAM2wE,KAAM,IAAI/kF,WAAW,EAAa,WAAXgnF,IAA0B,IAAgB,SAAXA,IAAwB,IAAgB,MAAXA,IAAsB,EAAc,IAAXA,GAA6B,WAAXC,IAA0B,IAAgB,SAAXA,IAAwB,IAAgB,MAAXA,IAAsB,EAAc,IAAXA,KAC5O,CAEA,OAAOhmE,EAAIle,MAAM,KAAMwjF,EACzB,EAEA9C,EAAc,SAAqBvuD,GACjC,OAAOjU,EAAI7M,EAAM0wE,KAAM,IAAI9kF,WAAW,CACtC,EAAM,EAAM,EAAM,EAAM,EAAM,EAC9B,EAAM,EAEN,EAAM,EAAM,EAAM,EAClB,EAAM,EAAM,EAAM,GACI,MAArBk1B,EAAM4wD,eAA0B,EAAwB,IAArB5wD,EAAM4wD,cACtB,MAAnB5wD,EAAMgyD,aAAwB,EAAsB,IAAnBhyD,EAAMgyD,WACxC,EAAM,EACN,EAAM,GACc,MAAnBhyD,EAAM6wD,aAAwB,EAAsB,IAAnB7wD,EAAM6wD,WAAmB,EAAM,IAE7DrE,EAAKxsD,GACX,EAGF+sD,EAAO,SAAc/sD,GACnB,IAAIhwB,EAAS,IAAIlF,WAAW,CAAC,EAC7B,EAAM,EAAM,EACZ,EAAM,EAAM,EAAM,EAClB,EAAM,EAAM,EAAM,GACN,WAAXk1B,EAAM/kB,KAAoB,IAAgB,SAAX+kB,EAAM/kB,KAAkB,IAAgB,MAAX+kB,EAAM/kB,KAAgB,EAAc,IAAX+kB,EAAM/kB,GAC5F,EAAM,EAAM,EAAM,GACA,WAAjB+kB,EAAMX,WAA0B,IAAsB,SAAjBW,EAAMX,WAAwB,IAAsB,MAAjBW,EAAMX,WAAsB,EAAoB,IAAjBW,EAAMX,SAC9G,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAC1C,EAAM,EACN,EAAM,EACN,EAAM,EACN,EAAM,EACN,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAM,EAAM,EAAM,GACnM,MAAdW,EAAMrV,QAAmB,EAAiB,IAAdqV,EAAMrV,MAAc,EAAM,GACvC,MAAfqV,EAAMtV,SAAoB,EAAkB,IAAfsV,EAAMtV,OAAe,EAAM,IAEzD,OAAOqB,EAAI7M,EAAM6tE,KAAM/8E,EACzB,EAOAs9E,EAAO,SAActtD,GACnB,IAAIiyD,EAAqBC,EAAyBC,EAAkBC,EAAmCC,EAA8BC,EA0BrI,OAzBAL,EAAsBlmE,EAAI7M,EAAMmxE,KAAM,IAAIvlF,WAAW,CAAC,EACtD,EAAM,EAAM,IACA,WAAXk1B,EAAM/kB,KAAoB,IAAgB,SAAX+kB,EAAM/kB,KAAkB,IAAgB,MAAX+kB,EAAM/kB,KAAgB,EAAc,IAAX+kB,EAAM/kB,GAC5F,EAAM,EAAM,EAAM,EAClB,EAAM,EAAM,EAAM,EAClB,EAAM,EAAM,EAAM,EAClB,EAAM,EAAM,EAAM,KAElBo3E,EAA+B95E,KAAKmW,MAAMsR,EAAMuyD,oBAAsBjD,GACtEgD,EAA+B/5E,KAAKmW,MAAMsR,EAAMuyD,oBAAsBjD,GACtE4C,EAA0BnmE,EAAI7M,EAAMkxE,KAAM,IAAItlF,WAAW,CAAC,EAC1D,EAAM,EAAM,EAEZunF,IAAiC,GAAK,IAAMA,IAAiC,GAAK,IAAMA,IAAiC,EAAI,IAAqC,IAA/BA,EAAqCC,IAAiC,GAAK,IAAMA,IAAiC,GAAK,IAAMA,IAAiC,EAAI,IAAqC,IAA/BA,KAI9R,GAQM,UAAftyD,EAAMlzB,MACRqlF,EAAmB3E,EAAOxtD,EATf,IAUJjU,EAAI7M,EAAMouE,KAAM2E,EAAqBC,EAAyBC,KAMvEC,EAAwBjF,EAAKntD,GAC7BmyD,EAAmB3E,EAAOxtD,EAAOoyD,EAAsBrnF,OAjB1C,IAkBNghB,EAAI7M,EAAMouE,KAAM2E,EAAqBC,EAAyBC,EAAkBC,GACzF,EAQAtF,EAAO,SAAc9sD,GAEnB,OADAA,EAAMX,SAAWW,EAAMX,UAAY,WAC5BtT,EAAI7M,EAAM4tE,KAAMC,EAAK/sD,GAAQgtD,EAAKhtD,GAC3C,EAEAutD,EAAO,SAAcvtD,GACnB,IAAIhwB,EAAS,IAAIlF,WAAW,CAAC,EAC7B,EAAM,EAAM,GACA,WAAXk1B,EAAM/kB,KAAoB,IAAgB,SAAX+kB,EAAM/kB,KAAkB,IAAgB,MAAX+kB,EAAM/kB,KAAgB,EAAc,IAAX+kB,EAAM/kB,GAC5F,EAAM,EAAM,EAAM,EAClB,EAAM,EAAM,EAAM,EAClB,EAAM,EAAM,EAAM,EAClB,EAAM,EAAM,EAAM,IAUlB,MAJmB,UAAf+kB,EAAMlzB,OACRkD,EAAOA,EAAOjF,OAAS,GAAK,GAGvBghB,EAAI7M,EAAMquE,KAAMv9E,EACzB,EAQE0+E,EAAa,SAAoBuC,EAASl3E,GACxC,IAAIy4E,EAAkB,EAClBC,EAAc,EACdC,EAAe,EACfC,EAAwB,EAoB5B,OAlBI1B,EAAQlmF,cACkB8F,IAAxBogF,EAAQ,GAAG5xD,WACbmzD,EAAkB,QAGI3hF,IAApBogF,EAAQ,GAAGp2E,OACb43E,EAAc,QAGS5hF,IAArBogF,EAAQ,GAAG52E,QACbq4E,EAAe,QAGwB7hF,IAArCogF,EAAQ,GAAG0B,wBACbA,EAAwB,IAIrB,CAAC,EACR,EAAMH,EAAkBC,EAAcC,EAAeC,EAAuB,GAC1D,WAAjB1B,EAAQlmF,UAAyB,IAAsB,SAAjBkmF,EAAQlmF,UAAuB,IAAsB,MAAjBkmF,EAAQlmF,UAAqB,EAAoB,IAAjBkmF,EAAQlmF,QACzG,WAATgP,KAAyB,IAAc,SAATA,KAAuB,IAAc,MAATA,KAAqB,EAAY,IAATA,EAErF,EAEA00E,EAAY,SAAmBzuD,EAAOjmB,GACpC,IAAI64E,EAAav7E,EAAOw7E,EAAQ5B,EAAS6B,EAAQ9nF,EAQjD,IANA+O,GAAU,GAAS,IADnBk3E,EAAUjxD,EAAMixD,SAAW,IACKlmF,OAChC8nF,EAASnE,EAAWuC,EAASl3E,IAC7B1C,EAAQ,IAAIvM,WAAW+nF,EAAO9nF,OAA0B,GAAjBkmF,EAAQlmF,SACzC8jB,IAAIgkE,GACVD,EAAcC,EAAO9nF,OAEhBC,EAAI,EAAGA,EAAIimF,EAAQlmF,OAAQC,IAC9B8nF,EAAS7B,EAAQjmF,GACjBqM,EAAMu7E,MAAoC,WAAlBE,EAAOzzD,YAA2B,GAC1DhoB,EAAMu7E,MAAoC,SAAlBE,EAAOzzD,YAAyB,GACxDhoB,EAAMu7E,MAAoC,MAAlBE,EAAOzzD,YAAuB,EACtDhoB,EAAMu7E,KAAmC,IAAlBE,EAAOzzD,SAE9BhoB,EAAMu7E,MAAgC,WAAdE,EAAOj4E,QAAuB,GACtDxD,EAAMu7E,MAAgC,SAAdE,EAAOj4E,QAAqB,GACpDxD,EAAMu7E,MAAgC,MAAdE,EAAOj4E,QAAmB,EAClDxD,EAAMu7E,KAA+B,IAAdE,EAAOj4E,KAE9BxD,EAAMu7E,KAAiBE,EAAOz4E,MAAM04E,WAAa,EAAID,EAAOz4E,MAAM62E,UAClE75E,EAAMu7E,KAAiBE,EAAOz4E,MAAM82E,cAAgB,EAAI2B,EAAOz4E,MAAM+2E,eAAiB,EAAI0B,EAAOz4E,MAAM24E,cAAgB,EAAIF,EAAOz4E,MAAM44E,gBACxI57E,EAAMu7E,KAAoD,MAAnCE,EAAOz4E,MAAM64E,oBACpC77E,EAAMu7E,KAAoD,GAAnCE,EAAOz4E,MAAM64E,oBAEpC77E,EAAMu7E,MAAiD,WAA/BE,EAAOH,yBAAwC,GACvEt7E,EAAMu7E,MAAiD,SAA/BE,EAAOH,yBAAsC,GACrEt7E,EAAMu7E,MAAiD,MAA/BE,EAAOH,yBAAoC,EACnEt7E,EAAMu7E,KAAgD,IAA/BE,EAAOH,sBAGhC,OAAO5mE,EAAI7M,EAAMoxE,KAAMj5E,EACzB,EAEAm3E,EAAY,SAAmBxuD,EAAOjmB,GACpC,IAAI1C,EAAOu7E,EAAaC,EAAQ5B,EAAS6B,EAAQ9nF,EAQjD,IANA+O,GAAU,GAAS,GADnBk3E,EAAUjxD,EAAMixD,SAAW,IACIlmF,OAC/B8nF,EAASnE,EAAWuC,EAASl3E,IAC7B1C,EAAQ,IAAIvM,WAAW+nF,EAAO9nF,OAA0B,EAAjBkmF,EAAQlmF,SACzC8jB,IAAIgkE,GACVD,EAAcC,EAAO9nF,OAEhBC,EAAI,EAAGA,EAAIimF,EAAQlmF,OAAQC,IAC9B8nF,EAAS7B,EAAQjmF,GACjBqM,EAAMu7E,MAAoC,WAAlBE,EAAOzzD,YAA2B,GAC1DhoB,EAAMu7E,MAAoC,SAAlBE,EAAOzzD,YAAyB,GACxDhoB,EAAMu7E,MAAoC,MAAlBE,EAAOzzD,YAAuB,EACtDhoB,EAAMu7E,KAAmC,IAAlBE,EAAOzzD,SAE9BhoB,EAAMu7E,MAAgC,WAAdE,EAAOj4E,QAAuB,GACtDxD,EAAMu7E,MAAgC,SAAdE,EAAOj4E,QAAqB,GACpDxD,EAAMu7E,MAAgC,MAAdE,EAAOj4E,QAAmB,EAClDxD,EAAMu7E,KAA+B,IAAdE,EAAOj4E,KAGhC,OAAOkR,EAAI7M,EAAMoxE,KAAMj5E,EACzB,EAEAm2E,EAAS,SAAcxtD,EAAOjmB,GAC5B,MAAmB,UAAfimB,EAAMlzB,KACD0hF,EAAUxuD,EAAOjmB,GAGnB00E,EAAUzuD,EAAOjmB,EAC1B,EAzZF0yE,EAAO,WACL,OAAO1gE,EAAI7M,EAAMutE,KAAMgB,EAAaC,EAAeD,EAAaE,EAClE,EA0ZA,IA2VIwF,EAiCJC,EACIC,EACAC,EACAC,EACAC,EACAC,EACAC,EAlYAC,GApZG,SAAc1lF,GACnB,OAAO8d,EAAI7M,EAAMywE,KAAM1hF,EACzB,EAkZI0lF,GAGIzzE,EAHJyzE,GAKW,SAAqBzvD,GAChC,IAEIl0B,EAFA4jF,EAAWnH,IACXoH,EAAQ1zE,EAAK+jB,GAKjB,OAHAl0B,EAAS,IAAIlF,WAAW8oF,EAASr8E,WAAas8E,EAAMt8E,aAC7CsX,IAAI+kE,GACX5jF,EAAO6e,IAAIglE,EAAOD,EAASr8E,YACpBvH,CACT,EA6LE8jF,GAAiB,SAAwBC,EAAOC,GAClD,IAAIlB,EAvBG,CACLj4E,KAAM,EACNR,MAAO,CACL04E,UAAW,EACX7B,UAAW,EACXC,aAAc,EACdC,cAAe,EACf8B,oBAAqB,EACrBD,gBAAiB,IA4BrB,OAZAH,EAAOkB,WAAaA,EACpBlB,EAAOH,sBAAwBoB,EAAME,IAAMF,EAAMG,IACjDpB,EAAOzzD,SAAW00D,EAAM10D,SACxByzD,EAAOj4E,KAAO,EAAIk5E,EAAMhpF,OAExB+nF,EAAOj4E,MAAQk5E,EAAMx8E,WAEjBw8E,EAAMI,WACRrB,EAAOz4E,MAAM62E,UAAY,EACzB4B,EAAOz4E,MAAM44E,gBAAkB,GAG1BH,CACT,EA4FIsB,GA3RsB,SAA6BC,GACrD,IAAIrpF,EACAspF,EACAC,EAAe,GACfC,EAAS,GAOb,IALAA,EAAOj9E,WAAa,EACpBi9E,EAAOC,SAAW,EAClBD,EAAOn1D,SAAW,EAClBk1D,EAAah9E,WAAa,EAErBvM,EAAI,EAAGA,EAAIqpF,EAAStpF,OAAQC,IAGA,gCAF/BspF,EAAaD,EAASrpF,IAEP0pF,aAGTH,EAAaxpF,SACfwpF,EAAal1D,SAAWi1D,EAAWJ,IAAMK,EAAaL,IAEtDM,EAAOj9E,YAAcg9E,EAAah9E,WAClCi9E,EAAOC,UAAYF,EAAaxpF,OAChCypF,EAAOn1D,UAAYk1D,EAAal1D,SAChCm1D,EAAOxnF,KAAKunF,KAGdA,EAAe,CAACD,IACH/8E,WAAa+8E,EAAWrmF,KAAKsJ,WAC1Cg9E,EAAaN,IAAMK,EAAWL,IAC9BM,EAAaL,IAAMI,EAAWJ,MAGC,8CAA3BI,EAAWI,cACbH,EAAaJ,UAAW,GAG1BI,EAAal1D,SAAWi1D,EAAWJ,IAAMK,EAAaL,IACtDK,EAAah9E,YAAc+8E,EAAWrmF,KAAKsJ,WAC3Cg9E,EAAavnF,KAAKsnF,IAgBtB,OAVIE,EAAOzpF,UAAYwpF,EAAal1D,UAAYk1D,EAAal1D,UAAY,KACvEk1D,EAAal1D,SAAWm1D,EAAOA,EAAOzpF,OAAS,GAAGs0B,UAKpDm1D,EAAOj9E,YAAcg9E,EAAah9E,WAClCi9E,EAAOC,UAAYF,EAAaxpF,OAChCypF,EAAOn1D,UAAYk1D,EAAal1D,SAChCm1D,EAAOxnF,KAAKunF,GACLC,CACT,EAoOIJ,GA9NsB,SAA6BI,GACrD,IAAIxpF,EACAupF,EACAI,EAAa,GACbC,EAAO,GAeX,IAZAD,EAAWp9E,WAAa,EACxBo9E,EAAWF,SAAW,EACtBE,EAAWt1D,SAAW,EACtBs1D,EAAWV,IAAMO,EAAO,GAAGP,IAC3BU,EAAWT,IAAMM,EAAO,GAAGN,IAE3BU,EAAKr9E,WAAa,EAClBq9E,EAAKH,SAAW,EAChBG,EAAKv1D,SAAW,EAChBu1D,EAAKX,IAAMO,EAAO,GAAGP,IACrBW,EAAKV,IAAMM,EAAO,GAAGN,IAEhBlpF,EAAI,EAAGA,EAAIwpF,EAAOzpF,OAAQC,KAC7BupF,EAAeC,EAAOxpF,IAELmpF,UAGXQ,EAAW5pF,SACb6pF,EAAK5nF,KAAK2nF,GACVC,EAAKr9E,YAAco9E,EAAWp9E,WAC9Bq9E,EAAKH,UAAYE,EAAWF,SAC5BG,EAAKv1D,UAAYs1D,EAAWt1D,WAG9Bs1D,EAAa,CAACJ,IACHE,SAAWF,EAAaxpF,OACnC4pF,EAAWp9E,WAAag9E,EAAah9E,WACrCo9E,EAAWV,IAAMM,EAAaN,IAC9BU,EAAWT,IAAMK,EAAaL,IAC9BS,EAAWt1D,SAAWk1D,EAAal1D,WAEnCs1D,EAAWt1D,UAAYk1D,EAAal1D,SACpCs1D,EAAWF,UAAYF,EAAaxpF,OACpC4pF,EAAWp9E,YAAcg9E,EAAah9E,WACtCo9E,EAAW3nF,KAAKunF,IAapB,OATIK,EAAK7pF,QAAU4pF,EAAWt1D,UAAY,IACxCs1D,EAAWt1D,SAAWu1D,EAAKA,EAAK7pF,OAAS,GAAGs0B,UAG9Cu1D,EAAKr9E,YAAco9E,EAAWp9E,WAC9Bq9E,EAAKH,UAAYE,EAAWF,SAC5BG,EAAKv1D,UAAYs1D,EAAWt1D,SAE5Bu1D,EAAK5nF,KAAK2nF,GACHC,CACT,EAsKIR,GA1JsB,SAA6BQ,GACrD,IAAID,EAeJ,OAbKC,EAAK,GAAG,GAAGT,UAAYS,EAAK7pF,OAAS,IAExC4pF,EAAaC,EAAK71E,QAClB61E,EAAKr9E,YAAco9E,EAAWp9E,WAC9Bq9E,EAAKH,UAAYE,EAAWF,SAI5BG,EAAK,GAAG,GAAGV,IAAMS,EAAWT,IAC5BU,EAAK,GAAG,GAAGX,IAAMU,EAAWV,IAC5BW,EAAK,GAAG,GAAGv1D,UAAYs1D,EAAWt1D,UAG7Bu1D,CACT,EAyIIR,GAzFwB,SAA6BQ,EAAMC,GAC7D,IAAIv3C,EACAtyC,EACA8nF,EACA6B,EACAJ,EACAP,EAAaa,GAAkB,EAC/B5D,EAAU,GAEd,IAAK3zC,EAAI,EAAGA,EAAIs3C,EAAK7pF,OAAQuyC,IAG3B,IAFAq3C,EAAaC,EAAKt3C,GAEbtyC,EAAI,EAAGA,EAAI2pF,EAAW5pF,OAAQC,IACjCupF,EAAeI,EAAW3pF,GAE1BgpF,IADAlB,EAASgB,GAAeS,EAAcP,IACjBn5E,KACrBo2E,EAAQjkF,KAAK8lF,GAIjB,OAAO7B,CACT,EAoEImD,GAjEqB,SAA4BQ,GACnD,IAAIt3C,EACAtyC,EACAurC,EACAo+C,EACAJ,EACAD,EACAN,EAAa,EACbc,EAAiBF,EAAKr9E,WACtBw9E,EAAeH,EAAKH,SAEpBxmF,EAAO,IAAInD,WADOgqF,EAAiB,EAAIC,GAEvCr7E,EAAO,IAAIw1E,SAASjhF,EAAKkJ,QAE7B,IAAKmmC,EAAI,EAAGA,EAAIs3C,EAAK7pF,OAAQuyC,IAG3B,IAFAq3C,EAAaC,EAAKt3C,GAEbtyC,EAAI,EAAGA,EAAI2pF,EAAW5pF,OAAQC,IAGjC,IAFAupF,EAAeI,EAAW3pF,GAErBurC,EAAI,EAAGA,EAAIg+C,EAAaxpF,OAAQwrC,IACnC+9C,EAAaC,EAAah+C,GAC1B78B,EAAK+2E,UAAUuD,EAAYM,EAAWrmF,KAAKsJ,YAC3Cy8E,GAAc,EACd/lF,EAAK4gB,IAAIylE,EAAWrmF,KAAM+lF,GAC1BA,GAAcM,EAAWrmF,KAAKsJ,WAKpC,OAAOtJ,CACT,EAkDI+mF,GAAa,CAAC,GAAI,GAAI,EAAG,GAAI,IAAK,IAClCC,GAAY,CAAC,GAAI,GAAI,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,GAAI,IAAK,KAEjEC,GAAW,SAAkBxe,GAG/B,IAFA,IAAItiE,EAAI,GAEDsiE,KACLtiE,EAAEpH,KAAK,GAGT,OAAOoH,CACT,EAaI+gF,GAAY,WACd,IAAKhC,EAAS,CAEZ,IAAIiC,EAAgB,CAClB,KAAO,CAACJ,GAAY,CAAC,IAAK,IAAKE,GAAS,KAAM,CAAC,KAC/C,MAAO,CAACF,GAAY,CAAC,KAAME,GAAS,KAAM,CAAC,KAC3C,KAAO,CAACF,GAAY,CAAC,IAAK,KAAME,GAAS,KAAM,CAAC,KAChD,KAAO,CAACF,GAAY,CAAC,IAAK,KAAME,GAAS,KAAM,CAAC,GAAI,IAAK,KAAMA,GAAS,IAAK,CAAC,MAC9E,MAAO,CAACF,GAAY,CAAC,IAAK,KAAME,GAAS,KAAM,CAAC,GAAI,IAAK,KAAMA,GAAS,IAAK,CAAC,MAC9E,KAAO,CAACF,GAAY,CAAC,IAAK,KAAME,GAAS,KAAM,CAAC,GAAI,KAAMA,GAAS,KAAM,CAAC,MAC1E,KAAO,CAACF,GAAY,CAAC,IAAK,KAAME,GAAS,KAAM,CAAC,GAAI,IAAK,KAAMA,GAAS,KAAM,CAAC,IAAK,KAAMA,GAAS,KAAM,CAAC,MAC1G,KAAO,CAACF,GAAY,CAAC,IAAK,KAAME,GAAS,KAAM,CAAC,GAAI,IAAK,KAAMA,GAAS,KAAM,CAAC,IAAK,KAAMA,GAAS,KAAM,CAAC,IAAK,KAAMA,GAAS,KAAM,CAAC,EAAG,MACxI,KAAO,CAACD,GAAWC,GAAS,KAAM,CAAC,EAAG,IAAK,KAAMA,GAAS,KAAM,CAAC,EAAG,IAAK,KAAMA,GAAS,KAAM,CAAC,GAAI,IAAK,KAAMA,GAAS,KAAM,CAAC,GAAI,IAAK,KAAMA,GAAS,KAAM,CAAC,KAC7J,MAAO,CAACD,GAAWC,GAAS,KAAM,CAAC,EAAG,IAAK,KAAMA,GAAS,KAAM,CAAC,EAAG,IAAK,KAAMA,GAAS,KAAM,CAAC,GAAI,IAAK,KAAMA,GAAS,KAAM,CAAC,GAAI,IAAK,KAAMA,GAAS,KAAM,CAAC,GAAI,IAAK,KAAMA,GAAS,KAAM,CAAC,MAC5L,IAAM,CAACD,GAAWC,GAAS,KAAM,CAAC,EAAG,IAAK,IAAKA,GAAS,IAAK,CAAC,KAzBjCG,EA2BXD,EAApBjC,EA1BKtyE,OAAOC,KAAKu0E,GAAWrmF,QAAO,SAAU6E,EAAK3D,GAIlD,OAHA2D,EAAI3D,GAAO,IAAIpF,WAAWuqF,EAAUnlF,GAAKlB,QAAO,SAAUsmF,EAAK9zC,GAC7D,OAAO8zC,EAAIh3E,OAAOkjC,EACpB,GAAG,KACI3tC,CACT,GAAG,CAAC,EAsBJ,CA5Bc,IAAmBwhF,EA8BjC,OAAOlC,CACT,EASIoC,GAAqB,IA0BzB/B,EAAmB,SAA0BgC,EAAWC,GACtD,OAAOrC,EAAiBG,EAAiBiC,EAAWC,GACtD,EAEAhC,EAAmB,SAA0B+B,EAAWC,GACtD,OAAOpC,EAAiBC,EAAiBkC,GAAYC,EACvD,EAOA/B,EAAsB,SAA6B8B,EAAWE,EAAkBC,GAC9E,OAAOrC,EAAiBqC,EAAyBH,EAAYA,EAAYE,EAC3E,EAEA,IAAIE,GACgBL,GADhBK,GAjCJxC,EAAmB,SAA0Bh2C,GAC3C,OAAOA,EAAUm4C,EACnB,EA+BIK,IA7BJvC,EAAmB,SAA0Bj2C,EAASq4C,GACpD,OAAOr4C,EAAUq4C,CACnB,EAEAnC,EAAmB,SAA0BkC,GAC3C,OAAOA,EAAYD,EACrB,GAuBIK,IArBJrC,EAAmB,SAA0BiC,EAAWC,GACtD,OAAOD,EAAYC,CACrB,EAyBoBjC,GANhBoC,GAOgBnC,EAPhBmC,GAQmBlC,EA2InBmC,GA/GoB,SAA2B71D,EAAOw0D,EAAQsB,EAAoBC,GACpF,IAAIC,EACAC,EAIAC,EACAlrF,EACAmrF,EALAC,EAAmB,EACnBC,EAAsB,EACtBC,EAAoB,EAKxB,GAAK9B,EAAOzpF,SAIZirF,EAAwBJ,GAAuB51D,EAAMuyD,oBAAqBvyD,EAAM6wD,YAEhFoF,EAAgB19E,KAAKQ,KAAK68E,IAA0B51D,EAAM6wD,WAAa,OAEnEiF,GAAsBC,IAExBK,EAAmBJ,EAAwBz9E,KAAKE,IAAIq9E,EAAoBC,GAGxEO,GADAD,EAAsB99E,KAAKmW,MAAM0nE,EAAmBH,IACVA,KAKxCI,EAAsB,GAAKC,EAAoBV,GAAyB,IAA5E,CAYA,KARAM,EAAcf,KAAYn1D,EAAM6wD,eAK9BqF,EAAc1B,EAAO,GAAGvmF,MAGrBjD,EAAI,EAAGA,EAAIqrF,EAAqBrrF,IACnCmrF,EAAa3B,EAAO,GACpBA,EAAOpnF,OAAO,EAAG,EAAG,CAClBa,KAAMioF,EACNhC,IAAKiC,EAAWjC,IAAM+B,EACtBhC,IAAKkC,EAAWlC,IAAMgC,IAK1B,OADAj2D,EAAMuyD,qBAAuBh6E,KAAKmW,MAAMknE,GAAuBU,EAAmBt2D,EAAM6wD,aACjFyF,CApBP,CAqBF,EA4DIT,GAtD8B,SAAqCU,EAAYv2D,EAAOw2D,GACxF,OAAIx2D,EAAMy2D,eAAiBD,EAClBD,GAITv2D,EAAMy2D,cAAgBr3E,IACfm3E,EAAWx1E,QAAO,SAAUwzE,GAEjC,OAAIA,EAAaL,KAAOsC,IACtBx2D,EAAMy2D,cAAgBl+E,KAAKgU,IAAIyT,EAAMy2D,cAAelC,EAAaL,KACjEl0D,EAAM02D,cAAgB12D,EAAMy2D,eACrB,EAKX,IACF,EAoCIZ,GAjCsB,SAA6BrB,GACrD,IAAIxpF,EACAupF,EACAtD,EAAU,GAEd,IAAKjmF,EAAI,EAAGA,EAAIwpF,EAAOzpF,OAAQC,IAC7BupF,EAAeC,EAAOxpF,GACtBimF,EAAQjkF,KAAK,CACX6N,KAAM05E,EAAatmF,KAAKsJ,WACxB8nB,SAAU,OAKd,OAAO4xD,CACT,EAkBI4E,GAfuB,SAA8BrB,GACvD,IAAIxpF,EACAupF,EACAP,EAAa,EACb/lF,EAAO,IAAInD,WAnHS,SAA6BD,GACrD,IAAIG,EAEA2rF,EAAM,EAEV,IAAK3rF,EAAI,EAAGA,EAAIH,EAAME,OAAQC,IAE5B2rF,GADa9rF,EAAMG,GACDiD,KAAKsJ,WAGzB,OAAOo/E,CACT,CAwG4BC,CAAoBpC,IAE9C,IAAKxpF,EAAI,EAAGA,EAAIwpF,EAAOzpF,OAAQC,IAC7BupF,EAAeC,EAAOxpF,GACtBiD,EAAK4gB,IAAI0lE,EAAatmF,KAAM+lF,GAC5BA,GAAcO,EAAatmF,KAAKsJ,WAGlC,OAAOtJ,CACT,EAeI4oF,GAAqBjB,GA8FrBkB,GA5Ce,SAAsB92D,UAChCA,EAAMy2D,qBACNz2D,EAAM+2D,qBACN/2D,EAAM02D,qBACN12D,EAAMg3D,aACf,EAuCIF,GA5BoC,SAA2C92D,EAAO21D,GACxF,IAAIpD,EAEAkE,EAAgBz2D,EAAMy2D,cAsB1B,OApBKd,IACHc,GAAiBz2D,EAAMi3D,kBAAkB/C,KAK3C3B,EAAsBvyD,EAAMi3D,kBAAkB1E,oBAE9CA,GAAuBkE,EAEvBlE,EAAsBh6E,KAAKE,IAAI,EAAG85E,GAEf,UAAfvyD,EAAMlzB,OAIRylF,GADQvyD,EAAM6wD,WAAagG,GAE3BtE,EAAsBh6E,KAAKmW,MAAM6jE,IAG5BA,CACT,EAEIuE,GAvFiB,SAAwB92D,EAAO/xB,GAC1B,iBAAbA,EAAKgmF,WACsBpjF,IAAhCmvB,EAAMi3D,kBAAkBhD,MAC1Bj0D,EAAMi3D,kBAAkBhD,IAAMhmF,EAAKgmF,UAGTpjF,IAAxBmvB,EAAM02D,cACR12D,EAAM02D,cAAgBzoF,EAAKgmF,IAE3Bj0D,EAAM02D,cAAgBn+E,KAAKgU,IAAIyT,EAAM02D,cAAezoF,EAAKgmF,UAG/BpjF,IAAxBmvB,EAAMg3D,cACRh3D,EAAMg3D,cAAgB/oF,EAAKgmF,IAE3Bj0D,EAAMg3D,cAAgBz+E,KAAKE,IAAIunB,EAAMg3D,cAAe/oF,EAAKgmF,MAIrC,iBAAbhmF,EAAKimF,WACsBrjF,IAAhCmvB,EAAMi3D,kBAAkB/C,MAC1Bl0D,EAAMi3D,kBAAkB/C,IAAMjmF,EAAKimF,UAGTrjF,IAAxBmvB,EAAMy2D,cACRz2D,EAAMy2D,cAAgBxoF,EAAKimF,IAE3Bl0D,EAAMy2D,cAAgBl+E,KAAKgU,IAAIyT,EAAMy2D,cAAexoF,EAAKimF,UAG/BrjF,IAAxBmvB,EAAM+2D,cACR/2D,EAAM+2D,cAAgB9oF,EAAKimF,IAE3Bl0D,EAAM+2D,cAAgBx+E,KAAKE,IAAIunB,EAAM+2D,cAAe9oF,EAAKimF,KAG/D,EA6OIgD,GA1JW,SAAkB7/E,GAS/B,IARA,IAAIrM,EAAI,EACJgF,EAAS,CACXmnF,aAAc,EACdC,YAAa,GAEXD,EAAc,EACdC,EAAc,EAEXpsF,EAAIqM,EAAME,YAnBM,MAqBjBF,EAAMrM,IAFiB,CAO3B,KAAoB,MAAbqM,EAAMrM,IACXmsF,GAAe,IACfnsF,IAKF,IAFAmsF,GAAe9/E,EAAMrM,KAED,MAAbqM,EAAMrM,IACXosF,GAAe,IACfpsF,IAMF,GAHAosF,GAAe//E,EAAMrM,MAGhBgF,EAAOwgF,SA1CqB,IA0CV2G,EAAgD,CAGrE,GAAuB,SAFF1nF,OAAOC,aAAa2H,EAAMrM,EAAI,GAAIqM,EAAMrM,EAAI,GAAIqM,EAAMrM,EAAI,GAAIqM,EAAMrM,EAAI,IAE9D,CAC7BgF,EAAOmnF,YAAcA,EACrBnnF,EAAOonF,YAAcA,EACrBpnF,EAAOwgF,QAAUn5E,EAAM8D,SAASnQ,EAAGA,EAAIosF,GACvC,KACF,CACEpnF,EAAOwgF,aAAU,CAErB,CAGAxlF,GAAKosF,EACLD,EAAc,EACdC,EAAc,CAChB,CAEA,OAAOpnF,CACT,EAuGIknF,GApGgB,SAAuBG,GAGzC,OAAuB,MAAnBA,EAAI7G,QAAQ,IAK+B,KAA1C6G,EAAI7G,QAAQ,IAAM,EAAI6G,EAAI7G,QAAQ,KAKqD,SAAxF/gF,OAAOC,aAAa2nF,EAAI7G,QAAQ,GAAI6G,EAAI7G,QAAQ,GAAI6G,EAAI7G,QAAQ,GAAI6G,EAAI7G,QAAQ,KAK7D,IAAnB6G,EAAI7G,QAAQ,GAdP,KAoBF6G,EAAI7G,QAAQr1E,SAAS,EAAGk8E,EAAI7G,QAAQzlF,OAAS,EACtD,EA2EImsF,GAxEsB,SAA6BjD,EAAKqD,GAC1D,IACItsF,EACA0rE,EACA38D,EACA9L,EAJA0M,EAAU,GAMd,KAAoB,GAAd28E,EAAS,IACb,OAAO38E,EAMT,IAFA+7D,EAAsB,GAAd4gB,EAAS,GAEZtsF,EAAI,EAAGA,EAAI0rE,EAAO1rE,IAErBiD,EAAO,CACLnB,KAA6B,EAAvBwqF,GAFRv9E,EAAa,EAAJ/O,GAEiB,GACxBipF,IAAKA,GAGoB,EAAvBqD,EAASv9E,EAAS,KACpB9L,EAAKspF,OAASD,EAASv9E,EAAS,IAAM,EAAIu9E,EAASv9E,EAAS,GAC5DY,EAAQ3N,KAAKiB,IAIjB,OAAO0M,CACT,EA4CIu8E,GA1CoC,SAAyCjpF,GAO/E,IANA,IAGI2Q,EACAC,EAJA9T,EAASkD,EAAKsJ,WACdigF,EAAoC,GACpCxsF,EAAI,EAIDA,EAAID,EAAS,GACF,IAAZkD,EAAKjD,IAA4B,IAAhBiD,EAAKjD,EAAI,IAA4B,IAAhBiD,EAAKjD,EAAI,IACjDwsF,EAAkCxqF,KAAKhC,EAAI,GAC3CA,GAAK,GAELA,IAMJ,GAAiD,IAA7CwsF,EAAkCzsF,OACpC,OAAOkD,EAIT2Q,EAAY7T,EAASysF,EAAkCzsF,OACvD8T,EAAU,IAAI/T,WAAW8T,GACzB,IAAIE,EAAc,EAElB,IAAK9T,EAAI,EAAGA,EAAI4T,EAAWE,IAAe9T,IACpC8T,IAAgB04E,EAAkC,KAEpD14E,IAEA04E,EAAkCz4E,SAGpCF,EAAQ7T,GAAKiD,EAAK6Q,GAGpB,OAAOD,CACT,EAGIq4E,GArKiC,EA8KjCO,GAAkB,SAASC,EAAcpnF,GAC3CA,EAAUA,GAAW,CAAC,EACtBonF,EAAc9qF,UAAUu/E,KAAK3+E,KAAKf,MAElCA,KAAKkrF,kBAAwD,kBAA7BrnF,EAAQsnF,kBAAiCtnF,EAAQsnF,iBACjFnrF,KAAKorF,gBAAkB,GACvBprF,KAAKqrF,WAAa,CAAC,IAAIC,GAAa,EAAG,GACvC,IAAIA,GAAa,EAAG,GACpB,IAAIA,GAAa,EAAG,GACpB,IAAIA,GAAa,EAAG,IAGhBtrF,KAAKkrF,oBACPlrF,KAAKurF,aAAe,IAAIC,GAAa,CACnCC,gBAAiB5nF,EAAQ4nF,mBAI7BzrF,KAAKqiC,QAELriC,KAAKqrF,WAAWxsF,SAAQ,SAAU6sF,GAChCA,EAAGtrF,GAAG,OAAQJ,KAAKY,QAAQwlB,KAAKpmB,KAAM,SACtC0rF,EAAGtrF,GAAG,cAAeJ,KAAKY,QAAQwlB,KAAKpmB,KAAM,gBAC7C0rF,EAAGtrF,GAAG,OAAQJ,KAAKY,QAAQwlB,KAAKpmB,KAAM,QACxC,GAAGA,MAECA,KAAKkrF,oBACPlrF,KAAKurF,aAAanrF,GAAG,OAAQJ,KAAKY,QAAQwlB,KAAKpmB,KAAM,SACrDA,KAAKurF,aAAanrF,GAAG,cAAeJ,KAAKY,QAAQwlB,KAAKpmB,KAAM,gBAC5DA,KAAKurF,aAAanrF,GAAG,OAAQJ,KAAKY,QAAQwlB,KAAKpmB,KAAM,SAEzD,GAEAgrF,GAAgB7qF,UAAY,IAAI+hF,GAEN3hF,KAAO,SAAUse,GACzC,IAAI+rE,EAAKC,EAAUc,EAEnB,GAA0B,aAAtB9sE,EAAMopE,cAKV2C,EAAMH,GAA6B5rE,EAAM+sE,cAEhC7H,SAKL6G,EAAIF,cAAgBD,KAKxBI,EAAWJ,GAAkCG,IAc7C,GAAI/rE,EAAM4oE,IAAMznF,KAAK6rF,WAEnB7rF,KAAK8rF,qBAAsB,MAF7B,CAIO,GAAIjtE,EAAM4oE,MAAQznF,KAAK6rF,YAAc7rF,KAAK8rF,oBAQ/C,OAPA9rF,KAAK+rF,mBAEA/rF,KAAK+rF,cAER/rF,KAAK8rF,qBAAsB,IAO/BH,EAAoBlB,GAAwC5rE,EAAM2oE,IAAKqD,GACvE7qF,KAAKorF,gBAAkBprF,KAAKorF,gBAAgBv5E,OAAO85E,GAE/C3rF,KAAK6rF,aAAehtE,EAAM4oE,MAC5BznF,KAAK+rF,YAAc,GAGrB/rF,KAAK+rF,cACL/rF,KAAK6rF,WAAahtE,EAAM4oE,GAXxB,CAYF,EAEAuD,GAAgB7qF,UAAU6rF,eAAiB,SAAUC,GACnDjsF,KAAKqrF,WAAWxsF,SAAQ,SAAU6sF,GAChC,MAAqB,UAAdO,EAAwBP,EAAG/uD,QAAU+uD,EAAG9L,cACjD,GAAG5/E,KACL,EAEAgrF,GAAgB7qF,UAAU+rF,YAAc,SAAUD,GAE3CjsF,KAAKorF,gBAAgB9sF,QAO1B0B,KAAKorF,gBAAgBvsF,SAAQ,SAAU8jB,EAAMwpE,GAC3CxpE,EAAKypE,aAAeD,CACtB,IAEAnsF,KAAKorF,gBAAgBviC,MAAK,SAAUlhD,EAAGC,GACrC,OAAID,EAAE6/E,MAAQ5/E,EAAE4/E,IACP7/E,EAAEykF,aAAexkF,EAAEwkF,aAGrBzkF,EAAE6/E,IAAM5/E,EAAE4/E,GACnB,IACAxnF,KAAKorF,gBAAgBvsF,SAAQ,SAAUwtF,GACjCA,EAAOhsF,KAAO,EAEhBL,KAAKssF,qBAAqBD,GAG1BrsF,KAAKusF,qBAAqBF,EAE9B,GAAGrsF,MACHA,KAAKorF,gBAAgB9sF,OAAS,EAC9B0B,KAAKgsF,eAAeC,IA3BlBjsF,KAAKgsF,eAAeC,EA4BxB,EAEAjB,GAAgB7qF,UAAUw8B,MAAQ,WAChC,OAAO38B,KAAKksF,YAAY,QAC1B,EAGAlB,GAAgB7qF,UAAUy/E,aAAe,WACvC,OAAO5/E,KAAKksF,YAAY,eAC1B,EAEAlB,GAAgB7qF,UAAUkiC,MAAQ,WAChCriC,KAAK6rF,WAAa,KAClB7rF,KAAK8rF,qBAAsB,EAC3B9rF,KAAK+rF,YAAc,EACnB/rF,KAAKwsF,qBAAuB,CAAC,KAAM,MACnCxsF,KAAKqrF,WAAWxsF,SAAQ,SAAU4tF,GAChCA,EAASpqD,OACX,GACF,EAcA2oD,GAAgB7qF,UAAUmsF,qBAAuB,SAAUD,GAErDrsF,KAAK0sF,oBAAoBL,GAC3BrsF,KAAKwsF,qBAAqBH,EAAOhsF,MAAQ,KAChCL,KAAK2sF,mBAAmBN,GACjCrsF,KAAKwsF,qBAAqBH,EAAOhsF,MAAQ,EAChCL,KAAK4sF,mBAAmBP,KACjCrsF,KAAKwsF,qBAAqBH,EAAOhsF,MAAQ,GAGI,OAA3CL,KAAKwsF,qBAAqBH,EAAOhsF,OAOrCL,KAAKqrF,YAAYgB,EAAOhsF,MAAQ,GAAKL,KAAKwsF,qBAAqBH,EAAOhsF,OAAOE,KAAK8rF,EACpF,EAEArB,GAAgB7qF,UAAUwsF,mBAAqB,SAAUN,GACvD,OAAoC,OAAZ,MAAhBA,EAAOvB,OACjB,EAEAE,GAAgB7qF,UAAUysF,mBAAqB,SAAUP,GACvD,OAAoC,OAAZ,MAAhBA,EAAOvB,OACjB,EAEAE,GAAgB7qF,UAAUusF,oBAAsB,SAAUL,GACxD,OAAoC,MAAZ,MAAhBA,EAAOvB,SAA4D,OAAZ,MAAhBuB,EAAOvB,SAA4D,OAAZ,MAAhBuB,EAAOvB,OAC/F,EAEAE,GAAgB7qF,UAAUosF,qBAAuB,SAAUF,GACrDrsF,KAAKkrF,mBACPlrF,KAAKurF,aAAahrF,KAAK8rF,EAE3B,EAoBA,IAAIQ,GAA4B,CAC9B,IAAM,KAEN,KAAQ,GAER,KAAQ,IAER,KAAQ,KAER,KAAQ,IAER,KAAQ,IAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,IAER,KAAQ,IAER,KAAQ,KAER,KAAQ,IAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,OAeNC,GAAqB,SAA4BllF,GACnD,OAAO,IAAQA,GAAKA,GAAK,KAAQ,KAAQA,GAAKA,GAAK,GACrD,EAEImlF,GAAe,SAAsBC,GACvChtF,KAAKgtF,UAAYA,EACjBhtF,KAAKqiC,OACP,EAEA0qD,GAAa5sF,UAAUkiC,MAAQ,WAC7BriC,KAAKitF,YACLjtF,KAAKktF,gBAAiB,EACtBltF,KAAKmtF,QAAU,CAAC,EAChBntF,KAAKotF,QAAU,CAAC,EAChBptF,KAAKqtF,OAAS,CAAC,EACfrtF,KAAKstF,SAAW,CAAC,EAGjBttF,KAAKutF,QAAU,EACfvtF,KAAKwtF,QAAU,EACfxtF,KAAKytF,WAAa,EAClBztF,KAAKwpD,SAAW,EAChBxpD,KAAK0tF,oBAAsB,EAC3B1tF,KAAK2tF,eAAiB,EACtB3tF,KAAK4tF,iBAAmB,EACxB5tF,KAAK6tF,YAAc,EACnB7tF,KAAK8tF,SAAW,EAChB9tF,KAAK+tF,gBAAkB/tF,KAAK8tF,SAAW,EACvC9tF,KAAKguF,YAAc,GACnBhuF,KAAKiuF,YAAc,EACnBjuF,KAAKkuF,SAAW,CAClB,EAEAnB,GAAa5sF,UAAUguF,QAAU,WAC/B,OAAOnuF,KAAKouF,KAAKxxE,KAAK,KACxB,EAEAmwE,GAAa5sF,UAAU8sF,UAAY,WACjCjtF,KAAKouF,KAAO,CAAC,IACbpuF,KAAKquF,OAAS,CAChB,EAEAtB,GAAa5sF,UAAUmuF,QAAU,SAAU9G,GAWzC,IAVIxnF,KAAKouF,KAAK9vF,QAAU0B,KAAK+tF,iBAAqD,mBAA3B/tF,KAAKuuF,mBAC1DvuF,KAAKuuF,kBAAkB/G,GAGrBxnF,KAAKouF,KAAK9vF,OAAS,IACrB0B,KAAKouF,KAAK7tF,KAAK,IACfP,KAAKquF,UAIAruF,KAAKouF,KAAK9vF,OAAS0B,KAAK+tF,iBAC7B/tF,KAAKouF,KAAK97E,QACVtS,KAAKquF,QAET,EAEAtB,GAAa5sF,UAAUkH,QAAU,WAC/B,OAAyB,IAArBrH,KAAKouF,KAAK9vF,QAEkB,IAArB0B,KAAKouF,KAAK9vF,QACK,KAAjB0B,KAAKouF,KAAK,EAIrB,EAEArB,GAAa5sF,UAAUquF,QAAU,SAAUpmF,GACzCpI,KAAKouF,KAAKpuF,KAAKquF,SAAWjmF,CAC5B,EAEA2kF,GAAa5sF,UAAUsuF,UAAY,WACjC,IAAKzuF,KAAKqH,UAAW,CACnB,IAAI7D,EAAMxD,KAAKouF,KAAKpuF,KAAKquF,QACzBruF,KAAKouF,KAAKpuF,KAAKquF,QAAU7qF,EAAIkrF,OAAO,EAAGlrF,EAAIlF,OAAS,EACtD,CACF,EAEA,IAAIqwF,GAAgB,SAAuBC,EAAYC,EAAU3M,GAC/DliF,KAAK4uF,WAAaA,EAClB5uF,KAAKoI,KAAO,GACZpI,KAAK8uF,cAAgB,IAAI/B,IAAc,GACvC/sF,KAAK+uF,QAAU,GACf/uF,KAAKkiF,OAASA,EAEU,iBAAb2M,GACT7uF,KAAKgvF,kBAAkBH,EAE3B,EAUAF,GAAcxuF,UAAUu/E,KAAO,SAAU8H,EAAK+G,GAC5CvuF,KAAKivF,SAAWzH,EAEhB,IAAK,IAAI0H,EAAM,EAAGA,EAAM,EAAGA,IACzBlvF,KAAK+uF,QAAQG,GAAO,IAAInC,GAAamC,GAEJ,mBAAtBX,IACTvuF,KAAK+uF,QAAQG,GAAKX,kBAAoBA,EAG5C,EAQAI,GAAcxuF,UAAUgvF,iBAAmB,SAAUnC,GACnDhtF,KAAK8uF,cAAgB9uF,KAAK+uF,QAAQ/B,EACpC,EAMA2B,GAAcxuF,UAAU6uF,kBAAoB,SAAUH,GACpD,GAA2B,oBAAhB3sF,YACTlC,KAAKkiF,OAAOthF,QAAQ,MAAO,CACzB2U,MAAO,OACPwd,QAAS,0EAGX,IACE/yB,KAAKovF,aAAe,IAAIltF,YAAY2sF,EACtC,CAAE,MAAOt4E,GACPvW,KAAKkiF,OAAOthF,QAAQ,MAAO,CACzB2U,MAAO,OACPwd,QAAS,yCAA2C87D,EAAW,cAAgBt4E,GAEnF,CAEJ,EAEA,IAAIi1E,GAAe,SAASA,EAAa3nF,GACvCA,EAAUA,GAAW,CAAC,EACtB2nF,EAAarrF,UAAUu/E,KAAK3+E,KAAKf,MACjC,IAGIqvF,EAHA1nE,EAAO3nB,KACPyrF,EAAkB5nF,EAAQ4nF,iBAAmB,CAAC,EAC9C6D,EAA0B,CAAC,EAG/Bl7E,OAAOC,KAAKo3E,GAAiB5sF,SAAQ,SAAU0wF,GAC7CF,EAAe5D,EAAgB8D,GAE3B,WAAWjwF,KAAKiwF,KAClBD,EAAwBC,GAAeF,EAAaR,SAExD,IACA7uF,KAAKwvF,iBAAmBF,EACxBtvF,KAAKyvF,iBAAmB,KACxBzvF,KAAK0vF,SAAW,CAAC,EAEjB1vF,KAAKO,KAAO,SAAU8rF,GACA,IAAhBA,EAAOhsF,MAETsnB,EAAKgoE,eACLhoE,EAAKioE,YAAYvD,KAEa,OAA1B1kE,EAAK8nE,kBAEP9nE,EAAKgoE,eAGPhoE,EAAKioE,YAAYvD,GAErB,CACF,EAEAb,GAAarrF,UAAY,IAAI+hF,EAK7BsJ,GAAarrF,UAAUwvF,aAAe,WACN,OAA1B3vF,KAAKyvF,kBACPzvF,KAAK6vF,gBAGP7vF,KAAKyvF,iBAAmB,CACtBjuF,KAAM,GACNsuF,QAAS,GAEb,EAMAtE,GAAarrF,UAAUyvF,YAAc,SAAUvD,GAC7C,IAAI7qF,EAAO6qF,EAAOvB,OACdiF,EAAQvuF,IAAS,EACjBwuF,EAAe,IAAPxuF,EAGZxB,KAAKyvF,iBAAiBK,QAAQvvF,KAAK8rF,EAAO7E,KAC1CxnF,KAAKyvF,iBAAiBjuF,KAAKjB,KAAKwvF,GAChC/vF,KAAKyvF,iBAAiBjuF,KAAKjB,KAAKyvF,EAClC,EAMAxE,GAAarrF,UAAU0vF,cAAgB,WACrC,IAAII,EAAYjwF,KAAKyvF,iBACjBS,EAAaD,EAAUzuF,KACvBotF,EAAa,KACbuB,EAAY,KACZ5xF,EAAI,EACJqJ,EAAIsoF,EAAW3xF,KAInB,IAHA0xF,EAAUG,IAAMxoF,GAAK,EACrBqoF,EAAUI,SAAe,GAAJzoF,EAEdrJ,EAAI2xF,EAAW5xF,OAAQC,IAG5B4xF,EAAgB,IAFhBvoF,EAAIsoF,EAAW3xF,MAII,KAHnBqwF,EAAahnF,GAAK,IAGMuoF,EAAY,IAGlCvB,EADAhnF,EAAIsoF,EAAW3xF,MAIjByB,KAAKswF,iBAAiB1B,EAAYrwF,EAAG4xF,GAEjCA,EAAY,IACd5xF,GAAK4xF,EAAY,EAGvB,EAeA3E,GAAarrF,UAAUmwF,iBAAmB,SAAU1B,EAAYp8D,EAAOpkB,GACrE,IAAIxG,EACArJ,EAAIi0B,EACJ09D,EAAalwF,KAAKyvF,iBAAiBjuF,KACnC+uF,EAAUvwF,KAAK0vF,SAASd,GAM5B,IAJK2B,IACHA,EAAUvwF,KAAKwwF,YAAY5B,EAAYrwF,IAGlCA,EAAIi0B,EAAQpkB,GAAQ7P,EAAI2xF,EAAW5xF,OAAQC,IAChDqJ,EAAIsoF,EAAW3xF,GAEXuuF,GAAmBllF,GACrBrJ,EAAIyB,KAAKywF,WAAWlyF,EAAGgyF,GACR,KAAN3oF,EACTrJ,EAAIyB,KAAK0wF,mBAAmBnyF,EAAGgyF,GAChB,KAAN3oF,EACTrJ,EAAIyB,KAAK2wF,iBAAiBpyF,EAAGgyF,GACpB,KAAQ3oF,GAAKA,GAAK,IAC3BrJ,EAAIyB,KAAKmvF,iBAAiB5wF,EAAGgyF,GACpB,KAAQ3oF,GAAKA,GAAK,IAC3BrJ,EAAIyB,KAAK4wF,aAAaryF,EAAGgyF,GACV,MAAN3oF,EACTrJ,EAAIyB,KAAK6wF,aAAatyF,EAAGgyF,GACV,MAAN3oF,EACTrJ,EAAIyB,KAAK8wF,cAAcvyF,EAAGgyF,GACX,MAAN3oF,EACTrJ,EAAIyB,KAAK+wF,eAAexyF,EAAGgyF,GACZ,MAAN3oF,EACTrJ,EAAIyB,KAAKgxF,YAAYzyF,EAAGgyF,GACT,MAAN3oF,EACTrJ,EAAIyB,KAAKixF,cAAc1yF,EAAGgyF,GACX,MAAN3oF,EACTrJ,EAAIyB,KAAKkxF,oBAAoB3yF,EAAGgyF,GACjB,MAAN3oF,EACTrJ,EAAIyB,KAAKmxF,iBAAiB5yF,EAAGgyF,GACd,MAAN3oF,EACTrJ,EAAIyB,KAAKoxF,YAAY7yF,EAAGgyF,GACT,MAAN3oF,EACTrJ,EAAIyB,KAAKqxF,eAAe9yF,EAAGgyF,GACZ,MAAN3oF,EACT2oF,EAAUvwF,KAAKqiC,MAAM9jC,EAAGgyF,GACT,IAAN3oF,EAET2oF,EAAQzB,cAAcL,YACP,KAAN7mF,EAET2oF,EAAQzB,cAAc7B,YACP,KAANrlF,EAET2oF,EAAQzB,cAAc5B,gBAAiB,EACxB,KAANtlF,EAET2oF,EAAQzB,cAAc7B,YACP,MAANrlF,GAETrJ,GAGN,EAUAitF,GAAarrF,UAAUwwF,iBAAmB,SAAUpyF,EAAGgyF,GACrD,IACI3oF,EADa5H,KAAKyvF,iBAAiBjuF,OAClBjD,GAQrB,OANIuuF,GAAmBllF,KACrBrJ,EAAIyB,KAAKywF,WAAWlyF,EAAGgyF,EAAS,CAC9Be,YAAY,KAIT/yF,CACT,EASAitF,GAAarrF,UAAUoxF,OAAS,SAAU/kF,GAExC,OAAOxM,KAAKyvF,iBAAiBK,QAAQhkF,KAAKmW,MAAMzV,EAAY,GAC9D,EASAg/E,GAAarrF,UAAUqwF,YAAc,SAAU5B,EAAYrwF,GACzD,IAEIgxF,EACAV,EAFAlnE,EAAO3nB,KAYX,OAbIuvF,EAAc,UAAYX,KAKX5uF,KAAKwvF,mBACtBX,EAAW7uF,KAAKwvF,iBAAiBD,IAGnCvvF,KAAK0vF,SAASd,GAAc,IAAID,GAAcC,EAAYC,EAAUlnE,GACpE3nB,KAAK0vF,SAASd,GAAYlP,KAAK1/E,KAAKuxF,OAAOhzF,IAAI,SAAUipF,GACvD7/D,EAAK6pE,eAAehK,EAAK7/D,EAAK+nE,SAASd,GACzC,IACO5uF,KAAK0vF,SAASd,EACvB,EAUApD,GAAarrF,UAAUswF,WAAa,SAAUlyF,EAAGgyF,EAAS1sF,GACxD,IAQI4tF,EAEAC,EArZ+CzqF,EAC/C0qF,EA0YAL,EAAaztF,GAAWA,EAAQytF,WAChCM,EAAc/tF,GAAWA,EAAQ+tF,YACjC1B,EAAalwF,KAAKyvF,iBAAiBjuF,KACnCqwF,EAAWP,EAAa,KAAS,EACjCQ,EAAc5B,EAAW3xF,GACzBwzF,EAAW7B,EAAW3xF,EAAI,GAC1B2wF,EAAMqB,EAAQzB,cAyBlB,OAnBIyB,EAAQnB,eAAiBkC,GACvBM,GACFF,EAAgB,CAACI,EAAaC,GAC9BxzF,KAEAmzF,EAAgB,CAACI,GAGnBL,EAAQlB,EAAQnB,aAAatsF,OAAO,IAAIzE,WAAWqzF,MA9ZjDC,EAAU9E,GADqC5lF,EAiatB4qF,EAAWC,IAhaS7qF,EAga/CwqF,EA9ZS,KAAPxqF,GAAiBA,IAAS0qF,EAErB,GAGF3uF,OAAOC,aAAa0uF,IA4ZvBzC,EAAIhC,iBAAmBgC,EAAI7nF,WAC7B6nF,EAAIZ,QAAQtuF,KAAKuxF,OAAOhzF,IAG1B2wF,EAAIhC,gBAAiB,EACrBgC,EAAIV,QAAQiD,GACLlzF,CACT,EAUAitF,GAAarrF,UAAUuwF,mBAAqB,SAAUnyF,EAAGgyF,GACvD,IAAIL,EAAalwF,KAAKyvF,iBAAiBjuF,KACnCwwF,EAAY9B,EAAW3xF,EAAI,GAC3B0zF,EAAa/B,EAAW3xF,EAAI,GAQhC,OANIuuF,GAAmBkF,IAAclF,GAAmBmF,KACtD1zF,EAAIyB,KAAKywF,aAAalyF,EAAGgyF,EAAS,CAChCqB,aAAa,KAIVrzF,CACT,EAYAitF,GAAarrF,UAAUgvF,iBAAmB,SAAU5wF,EAAGgyF,GACrD,IAEIvD,EAAgB,EAFHhtF,KAAKyvF,iBAAiBjuF,KACpBjD,GAGnB,OADAgyF,EAAQpB,iBAAiBnC,GAClBzuF,CACT,EAYAitF,GAAarrF,UAAUywF,aAAe,SAAUryF,EAAGgyF,GACjD,IAAIL,EAAalwF,KAAKyvF,iBAAiBjuF,KACnCoG,EAAIsoF,EAAW3xF,GACfyuF,EAAgB,EAAJplF,EAChB2oF,EAAQpB,iBAAiBnC,GACzB,IAAIkC,EAAMqB,EAAQzB,cAiClB,OAhCAlnF,EAAIsoF,IAAa3xF,GACjB2wF,EAAI3B,SAAe,GAAJ3lF,IAAa,EAE5BsnF,EAAI1B,SAAe,GAAJ5lF,IAAa,EAE5BsnF,EAAIzB,YAAkB,EAAJ7lF,IAAa,EAE/BsnF,EAAI1lC,SAAe,EAAJ5hD,EAEfA,EAAIsoF,IAAa3xF,GACjB2wF,EAAIxB,qBAA2B,IAAJ9lF,IAAa,EAExCsnF,EAAIvB,eAAqB,IAAJ/lF,EAErBA,EAAIsoF,IAAa3xF,GACjB2wF,EAAItB,iBAAmBhmF,EAEvBA,EAAIsoF,IAAa3xF,GACjB2wF,EAAIrB,aAAmB,IAAJjmF,IAAa,EAEhCsnF,EAAIpB,SAAe,GAAJlmF,EAEfA,EAAIsoF,IAAa3xF,GACjB2wF,EAAIlB,YAAkB,GAAJpmF,EAElBA,EAAIsoF,IAAa3xF,GACjB2wF,EAAIjB,aAAmB,GAAJrmF,IAAa,EAEhCsnF,EAAIhB,SAAe,EAAJtmF,EAGfsnF,EAAInB,gBAAkBmB,EAAIpB,SAAW,EAC9BvvF,CACT,EAYAitF,GAAarrF,UAAU+wF,oBAAsB,SAAU3yF,EAAGgyF,GACxD,IAAIL,EAAalwF,KAAKyvF,iBAAiBjuF,KACnCoG,EAAIsoF,EAAW3xF,GACf4uF,EAAUoD,EAAQzB,cAAc3B,QAqCpC,OApCAvlF,EAAIsoF,IAAa3xF,GACjB4uF,EAAQ+E,aAAmB,IAAJtqF,IAAa,EAEpCulF,EAAQgF,SAAe,GAAJvqF,IAAa,EAEhCulF,EAAQiF,WAAiB,GAAJxqF,IAAa,EAElCulF,EAAQkF,SAAe,EAAJzqF,EAEnBA,EAAIsoF,IAAa3xF,GACjB4uF,EAAQmF,YAAkB,IAAJ1qF,IAAa,EAEnCulF,EAAQoF,WAAiB,GAAJ3qF,IAAa,EAElCulF,EAAQqF,aAAmB,GAAJ5qF,IAAa,EAEpCulF,EAAQsF,WAAiB,EAAJ7qF,EAErBA,EAAIsoF,IAAa3xF,GACjB4uF,EAAQmF,aAAmB,IAAJ1qF,IAAa,EAEpCulF,EAAQuF,UAAgB,GAAJ9qF,IAAa,EAEjCulF,EAAQwF,gBAAsB,GAAJ/qF,IAAa,EAEvCulF,EAAQyF,iBAAuB,GAAJhrF,IAAa,EAExCulF,EAAQ0F,QAAc,EAAJjrF,EAElBA,EAAIsoF,IAAa3xF,GACjB4uF,EAAQ2F,aAAmB,IAAJlrF,IAAa,EAEpCulF,EAAQ4F,iBAAuB,GAAJnrF,IAAa,EAExCulF,EAAQ6F,cAAoB,EAAJprF,EAEjBrJ,CACT,EASAitF,GAAarrF,UAAUqxF,eAAiB,SAAUhK,EAAK+I,GAIrD,IAHA,IAAI0C,EAAgB,GAGXC,EAAQ,EAAGA,EAAQ,EAAGA,IACzB3C,EAAQxB,QAAQmE,GAAO3F,UAAYgD,EAAQxB,QAAQmE,GAAO7rF,WAC5D4rF,EAAc1yF,KAAKgwF,EAAQxB,QAAQmE,GAAO/E,WAI9CoC,EAAQ4C,OAAS3L,EACjB+I,EAAQnoF,KAAO6qF,EAAcr2E,KAAK,QAClC5c,KAAKozF,YAAY7C,GACjBA,EAAQtB,SAAWzH,CACrB,EAQAgE,GAAarrF,UAAUizF,YAAc,SAAU7C,GACxB,KAAjBA,EAAQnoF,OACVpI,KAAKY,QAAQ,OAAQ,CACnBquF,SAAUsB,EAAQtB,SAClBkE,OAAQ5C,EAAQ4C,OAChB/qF,KAAMmoF,EAAQnoF,KACd85E,OAAQ,SAAWqO,EAAQ3B,aAE7B2B,EAAQnoF,KAAO,GACfmoF,EAAQtB,SAAWsB,EAAQ4C,OAE/B,EAYA3H,GAAarrF,UAAU4wF,eAAiB,SAAUxyF,EAAGgyF,GACnD,IACI3oF,EADa5H,KAAKyvF,iBAAiBjuF,OAClBjD,GACjBipF,EAAMxnF,KAAKuxF,OAAOhzF,GACtByB,KAAKwxF,eAAehK,EAAK+I,GAEzB,IAAK,IAAI2C,EAAQ,EAAGA,EAAQ,EAAGA,IACzBtrF,EAAI,GAAQsrF,IACd3C,EAAQxB,QAAQmE,GAAO3F,QAAU,GAIrC,OAAOhvF,CACT,EAYAitF,GAAarrF,UAAU6wF,YAAc,SAAUzyF,EAAGgyF,GAChD,IACI3oF,EADa5H,KAAKyvF,iBAAiBjuF,OAClBjD,GACjBipF,EAAMxnF,KAAKuxF,OAAOhzF,GACtByB,KAAKwxF,eAAehK,EAAK+I,GAEzB,IAAK,IAAI2C,EAAQ,EAAGA,EAAQ,EAAGA,IACzBtrF,EAAI,GAAQsrF,IACd3C,EAAQxB,QAAQmE,GAAO3F,QAAU,GAIrC,OAAOhvF,CACT,EAYAitF,GAAarrF,UAAU8wF,cAAgB,SAAU1yF,EAAGgyF,GAClD,IACI3oF,EADa5H,KAAKyvF,iBAAiBjuF,OAClBjD,GACjBipF,EAAMxnF,KAAKuxF,OAAOhzF,GACtByB,KAAKwxF,eAAehK,EAAK+I,GAEzB,IAAK,IAAI2C,EAAQ,EAAGA,EAAQ,EAAGA,IACzBtrF,EAAI,GAAQsrF,IACd3C,EAAQxB,QAAQmE,GAAO3F,SAAW,GAItC,OAAOhvF,CACT,EAYAitF,GAAarrF,UAAU0wF,aAAe,SAAUtyF,EAAGgyF,GACjD,IACI3oF,EADa5H,KAAKyvF,iBAAiBjuF,OAClBjD,GACjBipF,EAAMxnF,KAAKuxF,OAAOhzF,GACtByB,KAAKwxF,eAAehK,EAAK+I,GAEzB,IAAK,IAAI2C,EAAQ,EAAGA,EAAQ,EAAGA,IACzBtrF,EAAI,GAAQsrF,GACd3C,EAAQxB,QAAQmE,GAAOjG,YAI3B,OAAO1uF,CACT,EAYAitF,GAAarrF,UAAU2wF,cAAgB,SAAUvyF,EAAGgyF,GAClD,IACI3oF,EADa5H,KAAKyvF,iBAAiBjuF,OAClBjD,GACjBipF,EAAMxnF,KAAKuxF,OAAOhzF,GACtByB,KAAKwxF,eAAehK,EAAK+I,GAEzB,IAAK,IAAI2C,EAAQ,EAAGA,EAAQ,EAAGA,IACzBtrF,EAAI,GAAQsrF,GACd3C,EAAQxB,QAAQmE,GAAO7wD,QAI3B,OAAO9jC,CACT,EAYAitF,GAAarrF,UAAUgxF,iBAAmB,SAAU5yF,EAAGgyF,GACrD,IAAIL,EAAalwF,KAAKyvF,iBAAiBjuF,KACnCoG,EAAIsoF,EAAW3xF,GACf6uF,EAAUmD,EAAQzB,cAAc1B,QAiBpC,OAhBAxlF,EAAIsoF,IAAa3xF,GACjB6uF,EAAQiG,SAAe,IAAJzrF,IAAa,EAEhCwlF,EAAQ9/E,QAAc,GAAJ1F,IAAa,EAE/BwlF,EAAQkG,QAAc,EAAJ1rF,EAElBA,EAAIsoF,IAAa3xF,GACjB6uF,EAAQmG,SAAe,IAAJ3rF,IAAa,EAEhCwlF,EAAQoG,WAAiB,GAAJ5rF,IAAa,EAElCwlF,EAAQqG,UAAgB,GAAJ7rF,IAAa,EAEjCwlF,EAAQsG,UAAgB,EAAJ9rF,EAEbrJ,CACT,EAYAitF,GAAarrF,UAAUixF,YAAc,SAAU7yF,EAAGgyF,GAChD,IAAIL,EAAalwF,KAAKyvF,iBAAiBjuF,KACnCoG,EAAIsoF,EAAW3xF,GACf+uF,EAAWiD,EAAQzB,cAAcxB,SA0BrC,OAzBA1lF,EAAIsoF,IAAa3xF,GACjB+uF,EAASqG,WAAiB,IAAJ/rF,IAAa,EAEnC0lF,EAASsG,OAAa,GAAJhsF,IAAa,EAE/B0lF,EAASuG,SAAe,GAAJjsF,IAAa,EAEjC0lF,EAASwG,OAAa,EAAJlsF,EAElBA,EAAIsoF,IAAa3xF,GACjB+uF,EAASyG,WAAiB,IAAJnsF,IAAa,EAEnC0lF,EAAS0G,OAAa,GAAJpsF,IAAa,EAE/B0lF,EAAS2G,SAAe,GAAJrsF,IAAa,EAEjC0lF,EAAS4G,OAAa,EAAJtsF,EAElBA,EAAIsoF,IAAa3xF,GACjB+uF,EAAS6G,SAAe,GAAJvsF,IAAa,EAEjC0lF,EAAS8G,WAAiB,GAAJxsF,IAAa,EAEnC0lF,EAAS+G,SAAe,EAAJzsF,EAEbrJ,CACT,EAYAitF,GAAarrF,UAAUkxF,eAAiB,SAAU9yF,EAAGgyF,GACnD,IAAIL,EAAalwF,KAAKyvF,iBAAiBjuF,KACnCoG,EAAIsoF,EAAW3xF,GACf8uF,EAASkD,EAAQzB,cAAczB,OASnC,OAPAkD,EAAQzB,cAAc5B,gBAAiB,EACvCtlF,EAAIsoF,IAAa3xF,GACjB8uF,EAAO7pF,IAAU,GAAJoE,EAEbA,EAAIsoF,IAAa3xF,GACjB8uF,EAAOiH,OAAa,GAAJ1sF,EAETrJ,CACT,EAYAitF,GAAarrF,UAAUkiC,MAAQ,SAAU9jC,EAAGgyF,GAC1C,IAAI/I,EAAMxnF,KAAKuxF,OAAOhzF,GAEtB,OADAyB,KAAKwxF,eAAehK,EAAK+I,GAClBvwF,KAAKwwF,YAAYD,EAAQ3B,WAAYrwF,EAC9C,EASA,IAAIg2F,GAAwB,CAC1B,GAAM,IAEN,GAAM,IAEN,GAAM,IAEN,GAAM,IAEN,GAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,KAEN,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,KAER,IAAQ,IAER,IAAQ,IAER,IAAQ,KAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,KAER,IAAQ,IAER,IAAQ,GAER,IAAQ,GAER,IAAQ,KAER,IAAQ,IAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,GAER,IAAQ,GAER,IAAQ,GAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,KAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,MAINC,GAAkB,SAAyBvtF,GAC7C,OAAa,OAATA,EACK,IAGTA,EAAOstF,GAAsBttF,IAASA,EAC/BjE,OAAOC,aAAagE,GAC7B,EAMIwtF,GAAO,CAAC,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,MAGxHC,GAAsB,WAIxB,IAHA,IAAInxF,EAAS,GACThF,EAAIo2F,GAEDp2F,KACLgF,EAAOhD,KAAK,IAGd,OAAOgD,CACT,EAEI+nF,GAAe,SAASA,EAAasJ,EAAOC,GAC9CvJ,EAAanrF,UAAUu/E,KAAK3+E,KAAKf,MACjCA,KAAK80F,OAASF,GAAS,EACvB50F,KAAK+0F,aAAeF,GAAe,EACnC70F,KAAKknB,MAAQ,MAAiD,GAAxClnB,KAAK80F,QAAU,EAAI90F,KAAK+0F,eAC9C/0F,KAAKg1F,eACLh1F,KAAKqiC,QAELriC,KAAKO,KAAO,SAAU8rF,GACpB,IAAI7qF,EAAMyzF,EAAMC,EAAOC,EAAO/sF,EAI9B,IAFA5G,EAAuB,MAAhB6qF,EAAOvB,UAED9qF,KAAKo1F,kBAelB,GATwB,OAAZ,MAAP5zF,GACHxB,KAAKo1F,iBAAmB5zF,EACfA,IAASxB,KAAKq1F,WACvBr1F,KAAKo1F,iBAAmB,MAG1BF,EAAQ1zF,IAAS,EACjB2zF,EAAe,IAAP3zF,EAEJA,IAASxB,KAAKq1F,SAEX,GAAI7zF,IAASxB,KAAKs1F,wBACvBt1F,KAAKu1F,MAAQ,aACR,GAAI/zF,IAASxB,KAAKw1F,gBAKvBx1F,KAAKu1F,MAAQ,QACbv1F,KAAKy1F,gBAAgBpJ,EAAO7E,KAE5BxnF,KAAKwxF,eAAenF,EAAO7E,KAE3ByN,EAAOj1F,KAAK01F,WACZ11F,KAAK01F,WAAa11F,KAAK21F,cACvB31F,KAAK21F,cAAgBV,EAErBj1F,KAAK41F,UAAYvJ,EAAO7E,SACnB,GAAIhmF,IAASxB,KAAK61F,gBACvB71F,KAAK81F,YAAc,EACnB91F,KAAK+1F,UAAU1J,EAAO7E,UACjB,GAAIhmF,IAASxB,KAAKg2F,gBACvBh2F,KAAK81F,YAAc,EACnB91F,KAAK+1F,UAAU1J,EAAO7E,UACjB,GAAIhmF,IAASxB,KAAKi2F,gBACvBj2F,KAAK81F,YAAc,EACnB91F,KAAK+1F,UAAU1J,EAAO7E,UACjB,GAAIhmF,IAASxB,KAAKk2F,iBACvBl2F,KAAKy1F,gBAAgBpJ,EAAO7E,KAC5BxnF,KAAKwxF,eAAenF,EAAO7E,KAC3BxnF,KAAKm2F,eACLn2F,KAAK41F,UAAYvJ,EAAO7E,SACnB,GAAIhmF,IAASxB,KAAKo2F,WACJ,UAAfp2F,KAAKu1F,MACPv1F,KAAK21F,cAAc31F,KAAKq2F,MAAQr2F,KAAK21F,cAAc31F,KAAKq2F,MAAMx2F,MAAM,GAAI,GAExEG,KAAK01F,WAAW11F,KAAKq2F,MAAQr2F,KAAK01F,WAAW11F,KAAKq2F,MAAMx2F,MAAM,GAAI,QAE/D,GAAI2B,IAASxB,KAAKs2F,wBACvBt2F,KAAKwxF,eAAenF,EAAO7E,KAC3BxnF,KAAK01F,WAAahB,UACb,GAAIlzF,IAASxB,KAAKu2F,4BACvBv2F,KAAK21F,cAAgBjB,UAChB,GAAIlzF,IAASxB,KAAKw2F,0BACJ,YAAfx2F,KAAKu1F,QAGPv1F,KAAKwxF,eAAenF,EAAO7E,KAC3BxnF,KAAK01F,WAAahB,MAGpB10F,KAAKu1F,MAAQ,UACbv1F,KAAK41F,UAAYvJ,EAAO7E,SACnB,GAAIxnF,KAAKy2F,mBAAmBvB,EAAOC,GAMxC/sF,EAAOosF,IADPU,GAAiB,EAARA,IAAiB,GACKC,GAC/Bn1F,KAAKA,KAAKu1F,OAAOlJ,EAAO7E,IAAKp/E,GAC7BpI,KAAK02F,eACA,GAAI12F,KAAK22F,eAAezB,EAAOC,GAMjB,UAAfn1F,KAAKu1F,MACPv1F,KAAK21F,cAAc31F,KAAKq2F,MAAQr2F,KAAK21F,cAAc31F,KAAKq2F,MAAMx2F,MAAM,GAAI,GAExEG,KAAK01F,WAAW11F,KAAKq2F,MAAQr2F,KAAK01F,WAAW11F,KAAKq2F,MAAMx2F,MAAM,GAAI,GAQpEuI,EAAOosF,IADPU,GAAiB,EAARA,IAAiB,GACKC,GAC/Bn1F,KAAKA,KAAKu1F,OAAOlJ,EAAO7E,IAAKp/E,GAC7BpI,KAAK02F,eACA,GAAI12F,KAAK42F,aAAa1B,EAAOC,GAElCn1F,KAAKy1F,gBAAgBpJ,EAAO7E,KAG5BxnF,KAAKA,KAAKu1F,OAAOlJ,EAAO7E,IAAK,KAC7BxnF,KAAK02F,UAEiB,KAAT,GAARvB,IACHn1F,KAAK62F,cAAcxK,EAAO7E,IAAK,CAAC,MAGZ,IAAT,EAAR2N,IACHn1F,KAAK62F,cAAcxK,EAAO7E,IAAK,CAAC,WAG7B,GAAIxnF,KAAK82F,oBAAoB5B,EAAOC,GAKzCn1F,KAAK02F,SAAmB,EAARvB,OACX,GAAIn1F,KAAK+2F,MAAM7B,EAAOC,GAAQ,CAGnC,IAAI3xF,EAAMixF,GAAK/zF,QAAe,KAAPc,GAEJ,WAAfxB,KAAKu1F,QAIH/xF,EAAMxD,KAAK81F,YAAc,EAAI,IAC/BtyF,EAAMxD,KAAK81F,YAAc,GAG3B91F,KAAK+1F,UAAU1J,EAAO7E,IAAKhkF,IAGzBA,IAAQxD,KAAKq2F,OAEfr2F,KAAKy1F,gBAAgBpJ,EAAO7E,KAC5BxnF,KAAKq2F,KAAO7yF,GAKF,EAAR2xF,IAAkD,IAAnCn1F,KAAKg3F,YAAYt2F,QAAQ,MAC1CV,KAAK62F,cAAcxK,EAAO7E,IAAK,CAAC,MAGZ,KAAV,GAAPhmF,KAKHxB,KAAK02F,QAAgC,IAAb,GAAPl1F,IAAe,IAG9BxB,KAAKi3F,WAAW9B,IAKI,KAAT,GAARA,IACHn1F,KAAK62F,cAAcxK,EAAO7E,IAAK,CAAC,KAItC,MAAWxnF,KAAKk3F,aAAahC,KACb,IAAVC,IACFA,EAAQ,MAGV/sF,EAAOosF,GAAgBU,GACvB9sF,GAAQosF,GAAgBW,GACxBn1F,KAAKA,KAAKu1F,OAAOlJ,EAAO7E,IAAKp/E,GAC7BpI,KAAK02F,SAAWtuF,EAAK9J,aA7KrB0B,KAAKo1F,iBAAmB,IAgL5B,CACF,EAEA9J,GAAanrF,UAAY,IAAI+hF,EAG7BoJ,GAAanrF,UAAUqxF,eAAiB,SAAUhK,GAChD,IAAIvsE,EAAUjb,KAAK01F,WAClB9rF,KAAI,SAAUpG,EAAK/C,GAClB,IACE,OAAO+C,EAAIb,MACb,CAAE,MAAOI,GAQP,OAJA/C,KAAKY,QAAQ,MAAO,CAClB2U,MAAO,OACPwd,QAAS,6CAA+CtyB,EAAQ,MAE3D,EACT,CACF,GAAGT,MACF4c,KAAK,MACLhU,QAAQ,aAAc,IAEnBqS,EAAQ3c,QACV0B,KAAKY,QAAQ,OAAQ,CACnBquF,SAAUjvF,KAAK41F,UACfzC,OAAQ3L,EACRp/E,KAAM6S,EACNinE,OAAQliF,KAAKknB,OAGnB,EAMAokE,GAAanrF,UAAUkiC,MAAQ,WAC7BriC,KAAKu1F,MAAQ,QAKbv1F,KAAKm3F,QAAU,EACfn3F,KAAK41F,UAAY,EACjB51F,KAAK01F,WAAahB,KAClB10F,KAAK21F,cAAgBjB,KACrB10F,KAAKo1F,iBAAmB,KAExBp1F,KAAK02F,QAAU,EACf12F,KAAKq2F,KAnQU,GAoQfr2F,KAAK81F,YAAc,EAEnB91F,KAAKg3F,YAAc,EACrB,EAMA1L,GAAanrF,UAAU60F,aAAe,WAaV,IAAtBh1F,KAAK+0F,cACP/0F,KAAKo3F,MAAQ,GACbp3F,KAAKq3F,KAAO,GACZr3F,KAAKs3F,UAAY,GAAOt3F,KAAK80F,SAAW,EACxC90F,KAAKu3F,QAAU,IACgB,IAAtBv3F,KAAK+0F,eACd/0F,KAAKo3F,MAAQ,GACbp3F,KAAKq3F,KAAO,GACZr3F,KAAKs3F,UAAY,GAAOt3F,KAAK80F,SAAW,EACxC90F,KAAKu3F,QAAU,IAOjBv3F,KAAKq1F,SAAW,EAEhBr1F,KAAKs1F,wBAA0C,GAAhBt1F,KAAKs3F,SACpCt3F,KAAKw1F,gBAAkC,GAAhBx1F,KAAKs3F,SAE5Bt3F,KAAK61F,gBAAkC,GAAhB71F,KAAKs3F,SAC5Bt3F,KAAKg2F,gBAAkC,GAAhBh2F,KAAKs3F,SAC5Bt3F,KAAKi2F,gBAAkC,GAAhBj2F,KAAKs3F,SAC5Bt3F,KAAKk2F,iBAAmC,GAAhBl2F,KAAKs3F,SAE7Bt3F,KAAKw2F,0BAA4C,GAAhBx2F,KAAKs3F,SAEtCt3F,KAAKo2F,WAA6B,GAAhBp2F,KAAKs3F,SACvBt3F,KAAKs2F,wBAA0C,GAAhBt2F,KAAKs3F,SACpCt3F,KAAKu2F,4BAA8C,GAAhBv2F,KAAKs3F,QAC1C,EAcAhM,GAAanrF,UAAUs2F,mBAAqB,SAAUvB,EAAOC,GAC3D,OAAOD,IAAUl1F,KAAKq3F,MAAQlC,GAAS,IAAQA,GAAS,EAC1D,EAcA7J,GAAanrF,UAAUw2F,eAAiB,SAAUzB,EAAOC,GACvD,OAAQD,IAAUl1F,KAAKq3F,KAAO,GAAKnC,IAAUl1F,KAAKq3F,KAAO,IAAMlC,GAAS,IAAQA,GAAS,EAC3F,EAcA7J,GAAanrF,UAAUy2F,aAAe,SAAU1B,EAAOC,GACrD,OAAOD,IAAUl1F,KAAKq3F,MAAQlC,GAAS,IAAQA,GAAS,EAC1D,EAcA7J,GAAanrF,UAAU22F,oBAAsB,SAAU5B,EAAOC,GAC5D,OAAOD,IAAUl1F,KAAKu3F,SAAWpC,GAAS,IAAQA,GAAS,EAC7D,EAcA7J,GAAanrF,UAAU42F,MAAQ,SAAU7B,EAAOC,GAC9C,OAAOD,GAASl1F,KAAKo3F,OAASlC,EAAQl1F,KAAKo3F,MAAQ,GAAKjC,GAAS,IAAQA,GAAS,GACpF,EAYA7J,GAAanrF,UAAU82F,WAAa,SAAU9B,GAC5C,OAAOA,GAAS,IAAQA,GAAS,IAAQA,GAAS,IAAQA,GAAS,GACrE,EAWA7J,GAAanrF,UAAU+2F,aAAe,SAAUM,GAC9C,OAAOA,GAAU,IAAQA,GAAU,GACrC,EAUAlM,GAAanrF,UAAU41F,UAAY,SAAUvO,EAAKiQ,GAWhD,GATmB,WAAfz3F,KAAKu1F,QACPv1F,KAAKq2F,KAjbQ,GAkbbr2F,KAAKu1F,MAAQ,SAEbv1F,KAAKwxF,eAAehK,GACpBxnF,KAAK21F,cAAgBjB,KACrB10F,KAAK01F,WAAahB,WAGDtwF,IAAfqzF,GAA4BA,IAAez3F,KAAKq2F,KAElD,IAAK,IAAI93F,EAAI,EAAGA,EAAIyB,KAAK81F,YAAav3F,IACpCyB,KAAK01F,WAAW+B,EAAal5F,GAAKyB,KAAK01F,WAAW11F,KAAKq2F,KAAO93F,GAC9DyB,KAAK01F,WAAW11F,KAAKq2F,KAAO93F,GAAK,QAIlB6F,IAAfqzF,IACFA,EAAaz3F,KAAKq2F,MAGpBr2F,KAAKm3F,QAAUM,EAAaz3F,KAAK81F,YAAc,CACjD,EAIAxK,GAAanrF,UAAU02F,cAAgB,SAAUrP,EAAKkQ,GACpD13F,KAAKg3F,YAAch3F,KAAKg3F,YAAYnlF,OAAO6lF,GAC3C,IAAItvF,EAAOsvF,EAAOn1F,QAAO,SAAU6F,EAAMsvF,GACvC,OAAOtvF,EAAO,IAAMsvF,EAAS,GAC/B,GAAG,IACH13F,KAAKA,KAAKu1F,OAAO/N,EAAKp/E,EACxB,EAIAkjF,GAAanrF,UAAUs1F,gBAAkB,SAAUjO,GACjD,GAAKxnF,KAAKg3F,YAAY14F,OAAtB,CAIA,IAAI8J,EAAOpI,KAAKg3F,YAAYW,UAAUp1F,QAAO,SAAU6F,EAAMsvF,GAC3D,OAAOtvF,EAAO,KAAOsvF,EAAS,GAChC,GAAG,IACH13F,KAAKg3F,YAAc,GACnBh3F,KAAKA,KAAKu1F,OAAO/N,EAAKp/E,EANtB,CAOF,EAGAkjF,GAAanrF,UAAUy3F,MAAQ,SAAUpQ,EAAKp/E,GAC5C,IAAIyvF,EAAU73F,KAAK21F,cAAc31F,KAAKq2F,MAEtCwB,GAAWzvF,EACXpI,KAAK21F,cAAc31F,KAAKq2F,MAAQwB,CAClC,EAEAvM,GAAanrF,UAAU23F,OAAS,SAAUtQ,EAAKp/E,GAC7C,IAAIyvF,EAAU73F,KAAK01F,WAAW11F,KAAKq2F,MACnCwB,GAAWzvF,EACXpI,KAAK01F,WAAW11F,KAAKq2F,MAAQwB,CAC/B,EAEAvM,GAAanrF,UAAUg2F,aAAe,WACpC,IAAI53F,EAEJ,IAAKA,EAAI,EAAGA,EAAIyB,KAAKm3F,QAAS54F,IAC5ByB,KAAK01F,WAAWn3F,GAAK,GAGvB,IAAKA,EAAIyB,KAAKq2F,KAAO,EAAG93F,EAAIo2F,GAAgBp2F,IAC1CyB,KAAK01F,WAAWn3F,GAAK,GAIvB,IAAKA,EAAIyB,KAAKm3F,QAAS54F,EAAIyB,KAAKq2F,KAAM93F,IACpCyB,KAAK01F,WAAWn3F,GAAKyB,KAAK01F,WAAWn3F,EAAI,GAI3CyB,KAAK01F,WAAW11F,KAAKq2F,MAAQ,EAC/B,EAEA/K,GAAanrF,UAAU43F,QAAU,SAAUvQ,EAAKp/E,GAC9C,IAAIyvF,EAAU73F,KAAK01F,WAAW11F,KAAKq2F,MACnCwB,GAAWzvF,EACXpI,KAAK01F,WAAW11F,KAAKq2F,MAAQwB,CAC/B,EAGA,IAAIG,GAAgB,CAClB/M,cAAeD,GACfM,aAAcA,GACdE,aAAcA,IASZyM,GAAc,CAChBC,iBAAkB,GAClBC,iBAAkB,GAClBC,qBAAsB,IAIpBC,GAAc,SAEdC,GAAmB,SAAwB51F,EAAO61F,GACpD,IAAIC,EAAY,EAehB,IAbI91F,EAAQ61F,IAQVC,GAAa,GAKR1sF,KAAKC,IAAIwsF,EAAY71F,GAnBd,YAoBZA,GArBS,WAqBA81F,EAGX,OAAO91F,CACT,EAEI+1F,GAA4B,SAASC,EAAwBr4F,GAC/D,IAAIs4F,EAASC,EACbF,EAAwBv4F,UAAUu/E,KAAK3+E,KAAKf,MAI5CA,KAAK64F,MAAQx4F,GAAQg4F,GAErBr4F,KAAKO,KAAO,SAAUiB,GAGhBxB,KAAK64F,QAAUR,IAAe72F,EAAKnB,OAASL,KAAK64F,aAIhCz0F,IAAjBw0F,IACFA,EAAep3F,EAAKimF,KAGtBjmF,EAAKimF,IAAM6Q,GAAiB92F,EAAKimF,IAAKmR,GACtCp3F,EAAKgmF,IAAM8Q,GAAiB92F,EAAKgmF,IAAKoR,GACtCD,EAAUn3F,EAAKimF,IACfznF,KAAKY,QAAQ,OAAQY,GACvB,EAEAxB,KAAK28B,MAAQ,WACXi8D,EAAeD,EACf34F,KAAKY,QAAQ,OACf,EAEAZ,KAAK6/E,YAAc,WACjB7/E,KAAK28B,QACL38B,KAAKY,QAAQ,gBACf,EAEAZ,KAAK84F,cAAgB,WACnBF,OAAe,EACfD,OAAU,CACZ,EAEA34F,KAAKqiC,MAAQ,WACXriC,KAAK84F,gBACL94F,KAAKY,QAAQ,QACf,CACF,EAEA63F,GAA0Bt4F,UAAY,IAAI+hF,EAC1C,IAiFI6W,GAjFAC,GACuBP,GADvBO,GAEcV,GAGdW,GAAkB,SAAuBruF,EAAO4nB,EAAO9iB,GACzD,IAAInR,EACAgF,EAAS,GAEb,IAAKhF,EAAIi0B,EAAOj0B,EAAImR,EAAKnR,IACvBgF,GAAU,KAAO,KAAOqH,EAAMrM,GAAGP,SAAS,KAAK6B,OAAO,GAGxD,OAAO0D,CACT,EAGA21F,GAAY,SAAmBtuF,EAAO4nB,EAAO9iB,GAC3C,OAAO/C,mBAAmBssF,GAAgBruF,EAAO4nB,EAAO9iB,GAC1D,EAMIypF,GAAyB,SAA8B33F,GACzD,OAAOA,EAAK,IAAM,GAAKA,EAAK,IAAM,GAAKA,EAAK,IAAM,EAAIA,EAAK,EAC7D,EACI43F,GAAa,CACfC,KAAM,SAAclrF,GAClB,IAAI5P,EAEJ,GAAoB,IAAhB4P,EAAI3M,KAAK,GAAb,CAKA,IAAKjD,EAAI,EAAGA,EAAI4P,EAAI3M,KAAKlD,OAAQC,IAC/B,GAAoB,IAAhB4P,EAAI3M,KAAKjD,GAAU,CAErB4P,EAAIgnB,YAAc+jE,GAAU/qF,EAAI3M,KAAM,EAAGjD,GAEzC4P,EAAIzL,MAAQw2F,GAAU/qF,EAAI3M,KAAMjD,EAAI,EAAG4P,EAAI3M,KAAKlD,QAAQsK,QAAQ,OAAQ,IACxE,KACF,CAGFuF,EAAI3M,KAAO2M,EAAIzL,KAZf,CAaF,EACA42F,KAAM,SAAcnrF,GAClB,IAAI5P,EAEJ,GAAoB,IAAhB4P,EAAI3M,KAAK,GAKb,IAAKjD,EAAI,EAAGA,EAAI4P,EAAI3M,KAAKlD,OAAQC,IAC/B,GAAoB,IAAhB4P,EAAI3M,KAAKjD,GAAU,CAErB4P,EAAIgnB,YAAc+jE,GAAU/qF,EAAI3M,KAAM,EAAGjD,GACzC4P,EAAIzI,IAAMwzF,GAAU/qF,EAAI3M,KAAMjD,EAAI,EAAG4P,EAAI3M,KAAKlD,QAC9C,KACF,CAEJ,EACAi7F,KAAM,SAAcprF,GAClB,IAAI5P,EA7CiCqM,EA+CrC,IAAKrM,EAAI,EAAGA,EAAI4P,EAAI3M,KAAKlD,OAAQC,IAC/B,GAAoB,IAAhB4P,EAAI3M,KAAKjD,GAAU,CAErB4P,EAAIqrF,OAlD6B5uF,EAkDLuD,EAAI3M,KAjD/BuL,SAASksF,GAAgBruF,EAiDY,EAAGrM,KACzC,KACF,CAGF4P,EAAIsrF,YAActrF,EAAI3M,KAAKkN,SAASnQ,EAAI,GACxC4P,EAAI3M,KAAO2M,EAAIsrF,WACjB,GAIFV,GAAkB,SAAwBl1F,GACxC,IAYItF,EAZA2+B,EAAW,CAIbusB,WAAY5lD,GAAWA,EAAQ4lD,YAGjCiwC,EAAU,EAEVhvF,EAAS,GAETwE,EAAa,EASb,GANA6pF,GAAgB54F,UAAUu/E,KAAK3+E,KAAKf,MAIpCA,KAAK25F,aAAe1B,GAAYG,qBAAqBp6F,SAAS,IAE1Dk/B,EAASusB,WACX,IAAKlrD,EAAI,EAAGA,EAAI2+B,EAASusB,WAAWnrD,OAAQC,IAC1CyB,KAAK25F,eAAiB,KAAOz8D,EAASusB,WAAWlrD,GAAGP,SAAS,KAAK6B,OAAO,GAI7EG,KAAKO,KAAO,SAAUq5F,GACpB,IAAIzrF,EAAK0rF,EAAYC,EAAWxS,EAAO/oF,EAEvC,GAAmB,mBAAfq7F,EAAMv5F,KAaV,GANIu5F,EAAMG,yBACR7qF,EAAa,EACbxE,EAAOpM,OAAS,GAII,IAAlBoM,EAAOpM,SAAiBs7F,EAAMp4F,KAAKlD,OAAS,IAAMs7F,EAAMp4F,KAAK,KAAO,IAAIhD,WAAW,IAAMo7F,EAAMp4F,KAAK,KAAO,IAAIhD,WAAW,IAAMo7F,EAAMp4F,KAAK,KAAO,IAAIhD,WAAW,IACnKwB,KAAKY,QAAQ,MAAO,CAClB2U,MAAO,OACPwd,QAAS,+CAqBb,GAfAroB,EAAOnK,KAAKq5F,GACZ1qF,GAAc0qF,EAAMp4F,KAAKsJ,WAEH,IAAlBJ,EAAOpM,SAKTo7F,EAAUP,GAAuBS,EAAMp4F,KAAKkN,SAAS,EAAG,KAGxDgrF,GAAW,MAITxqF,EAAawqF,GAAjB,CAYA,IAPAvrF,EAAM,CACJ3M,KAAM,IAAInD,WAAWq7F,GACrB3R,OAAQ,GACRP,IAAK98E,EAAO,GAAG88E,IACfC,IAAK/8E,EAAO,GAAG+8E,KAGZlpF,EAAI,EAAGA,EAAIm7F,GACdvrF,EAAI3M,KAAK4gB,IAAI1X,EAAO,GAAGlJ,KAAKkN,SAAS,EAAGgrF,EAAUn7F,GAAIA,GACtDA,GAAKmM,EAAO,GAAGlJ,KAAKsJ,WACpBoE,GAAcxE,EAAO,GAAGlJ,KAAKsJ,WAC7BJ,EAAO4H,QAITunF,EAAa,GAEK,GAAd1rF,EAAI3M,KAAK,KAEXq4F,GAAc,EAEdA,GAAcV,GAAuBhrF,EAAI3M,KAAKkN,SAAS,GAAI,KAE3DgrF,GAAWP,GAAuBhrF,EAAI3M,KAAKkN,SAAS,GAAI,MAK1D,EAAG,CAID,IAFAorF,EAAYX,GAAuBhrF,EAAI3M,KAAKkN,SAASmrF,EAAa,EAAGA,EAAa,KAElE,EAKd,YAJA75F,KAAKY,QAAQ,MAAO,CAClB2U,MAAO,OACPwd,QAAS,gEAYb,IANAu0D,EAAQ,CACN94E,GAFYxL,OAAOC,aAAakL,EAAI3M,KAAKq4F,GAAa1rF,EAAI3M,KAAKq4F,EAAa,GAAI1rF,EAAI3M,KAAKq4F,EAAa,GAAI1rF,EAAI3M,KAAKq4F,EAAa,IAGhIr4F,KAAM2M,EAAI3M,KAAKkN,SAASmrF,EAAa,GAAIA,EAAaC,EAAY,MAE9Dr2F,IAAM6jF,EAAM94E,GAEd4qF,GAAW9R,EAAM94E,MACnB4qF,GAAW9R,EAAM94E,IAAI84E,GAGD,iDAAhBA,EAAMkS,OAA0D,CAClE,IAAIQ,EAAI1S,EAAM9lF,KACV4M,GAAe,EAAP4rF,EAAE,KAAc,GAAKA,EAAE,IAAM,GAAKA,EAAE,IAAM,GAAKA,EAAE,IAAM,EAAIA,EAAE,KAAO,EAChF5rF,GAAQ,EACRA,GAAe,EAAP4rF,EAAE,GACV1S,EAAM2S,UAAY7rF,OAKFhK,IAAZ+J,EAAIq5E,UAAiCpjF,IAAZ+J,EAAIs5E,MAC/Bt5E,EAAIq5E,IAAMF,EAAM2S,UAChB9rF,EAAIs5E,IAAMH,EAAM2S,WAGlBj6F,KAAKY,QAAQ,YAAa0mF,EAC5B,CAGFn5E,EAAI45E,OAAOxnF,KAAK+mF,GAChBuS,GAAc,GAEdA,GAAcC,CAChB,OAASD,EAAaH,GAEtB15F,KAAKY,QAAQ,OAAQuN,EA/ErB,CAgFF,CACF,EAEA4qF,GAAgB54F,UAAY,IAAI+hF,EAChC,IAGIgY,GAAwBC,GAAuBC,GAH/CC,GAAiBtB,GACjBL,GAA0BM,GAK1BsB,GAAuB,KAQ3BJ,GAAyB,WACvB,IAAIxvF,EAAS,IAAIrM,WAAWi8F,IACxBC,EAAgB,EAEpBL,GAAuB/5F,UAAUu/E,KAAK3+E,KAAKf,MAO3CA,KAAKO,KAAO,SAAUqK,GACpB,IAEI4vF,EAFAhvB,EAAa,EACbC,EAAW6uB,GAcf,IAVIC,IACFC,EAAa,IAAIn8F,WAAWuM,EAAME,WAAayvF,IACpCn4E,IAAI1X,EAAOgE,SAAS,EAAG6rF,IAClCC,EAAWp4E,IAAIxX,EAAO2vF,GACtBA,EAAgB,GAEhBC,EAAa5vF,EAIR6gE,EAAW+uB,EAAW1vF,YAjCnB,KAmCJ0vF,EAAWhvB,IAnCP,KAmCsCgvB,EAAW/uB,IAYzDD,IACAC,MAVEzrE,KAAKY,QAAQ,OAAQ45F,EAAW9rF,SAAS88D,EAAYC,IACrDD,GAAc8uB,GACd7uB,GAAY6uB,IAcZ9uB,EAAagvB,EAAW1vF,aAC1BJ,EAAO0X,IAAIo4E,EAAW9rF,SAAS88D,GAAa,GAC5C+uB,EAAgBC,EAAW1vF,WAAa0gE,EAE5C,EAMAxrE,KAAK28B,MAAQ,WAIP49D,IAAkBD,IApEZ,KAoEoC5vF,EAAO,KACnD1K,KAAKY,QAAQ,OAAQ8J,GACrB6vF,EAAgB,GAGlBv6F,KAAKY,QAAQ,OACf,EAEAZ,KAAK6/E,YAAc,WACjB7/E,KAAK28B,QACL38B,KAAKY,QAAQ,gBACf,EAEAZ,KAAKqiC,MAAQ,WACXk4D,EAAgB,EAChBv6F,KAAKY,QAAQ,QACf,CACF,GAEuBT,UAAY,IAAI+hF,EAMvCiY,GAAwB,WACtB,IAAIM,EAAUC,EAAUC,EAAUhzE,EAElCwyE,GAAsBh6F,UAAUu/E,KAAK3+E,KAAKf,MAE1C2nB,EAAO3nB,KACPA,KAAK46F,qBAAuB,GAC5B56F,KAAK66F,qBAAkBz2F,EAEvBq2F,EAAW,SAAkB1W,EAAS+W,GACpC,IAAIxtF,EAAS,EAOTwtF,EAAIC,4BACNztF,GAAUy2E,EAAQz2E,GAAU,GAGb,QAAbwtF,EAAIz6F,KACNq6F,EAAS3W,EAAQr1E,SAASpB,GAASwtF,GAEnCH,EAAS5W,EAAQr1E,SAASpB,GAASwtF,EAEvC,EAEAJ,EAAW,SAAkB3W,EAASiX,GACpCA,EAAIC,eAAiBlX,EAAQ,GAE7BiX,EAAIE,oBAAsBnX,EAAQ,GAGlCp8D,EAAKwzE,QAAwB,GAAdpX,EAAQ,MAAe,EAAIA,EAAQ,IAClDiX,EAAIG,OAASxzE,EAAKwzE,MACpB,EAWAR,EAAW,SAAkB5W,EAASqX,GACpC,IAAmBC,EAA6B/tF,EAMhD,GAAmB,EAAby2E,EAAQ,GAAd,CAmBA,IAdAp8D,EAAKkzE,gBAAkB,CACrB3yF,MAAO,KACPC,MAAO,KACP,iBAAkB,CAAC,GAIrBkzF,EAAW,IADmB,GAAbtX,EAAQ,KAAc,EAAIA,EAAQ,IACpB,EAK/Bz2E,EAAS,KAF0B,GAAdy2E,EAAQ,MAAe,EAAIA,EAAQ,KAIjDz2E,EAAS+tF,GAAU,CACxB,IAAIpsF,EAAa80E,EAAQz2E,GACrBguF,GAA6B,GAAtBvX,EAAQz2E,EAAS,KAAc,EAAIy2E,EAAQz2E,EAAS,GAI3D2B,IAAegpF,GAAYC,kBAAmD,OAA/BvwE,EAAKkzE,gBAAgB3yF,MACtEyf,EAAKkzE,gBAAgB3yF,MAAQozF,EACpBrsF,IAAegpF,GAAYE,kBAAmD,OAA/BxwE,EAAKkzE,gBAAgB1yF,MAC7Ewf,EAAKkzE,gBAAgB1yF,MAAQmzF,EACpBrsF,IAAegpF,GAAYG,uBAEpCzwE,EAAKkzE,gBAAgB,kBAAkBS,GAAOrsF,GAKhD3B,GAAsE,IAApC,GAAtBy2E,EAAQz2E,EAAS,KAAc,EAAIy2E,EAAQz2E,EAAS,GAClE,CAGA8tF,EAAIP,gBAAkBlzE,EAAKkzE,eAtC3B,CAuCF,EAMA76F,KAAKO,KAAO,SAAU8rF,GACpB,IAAI9oF,EAAS,CAAC,EACV+J,EAAS,EAgBb,GAfA/J,EAAOw3F,6BAA2C,GAAZ1O,EAAO,IAE7C9oF,EAAO+3F,IAAkB,GAAZjP,EAAO,GACpB9oF,EAAO+3F,MAAQ,EACf/3F,EAAO+3F,KAAOjP,EAAO,IAMJ,GAAZA,EAAO,MAAe,EAAI,IAC7B/+E,GAAU++E,EAAO/+E,GAAU,GAIV,IAAf/J,EAAO+3F,IACT/3F,EAAOlD,KAAO,MACdo6F,EAASpO,EAAO39E,SAASpB,GAAS/J,GAClCvD,KAAKY,QAAQ,OAAQ2C,QAChB,GAAIA,EAAO+3F,MAAQt7F,KAAKm7F,OAK7B,IAJA53F,EAAOlD,KAAO,MACdo6F,EAASpO,EAAO39E,SAASpB,GAAS/J,GAClCvD,KAAKY,QAAQ,OAAQ2C,GAEdvD,KAAK46F,qBAAqBt8F,QAC/B0B,KAAKu7F,YAAYn6F,MAAMpB,KAAMA,KAAK46F,qBAAqBtoF,mBAEvBlO,IAAzBpE,KAAK66F,gBAGd76F,KAAK46F,qBAAqBr6F,KAAK,CAAC8rF,EAAQ/+E,EAAQ/J,IAEhDvD,KAAKu7F,YAAYlP,EAAQ/+E,EAAQ/J,EAErC,EAEAvD,KAAKu7F,YAAc,SAAUlP,EAAQ/+E,EAAQ/J,GAEvCA,EAAO+3F,MAAQt7F,KAAK66F,gBAAgB3yF,MACtC3E,EAAO0L,WAAagpF,GAAYC,iBACvB30F,EAAO+3F,MAAQt7F,KAAK66F,gBAAgB1yF,MAC7C5E,EAAO0L,WAAagpF,GAAYE,iBAIhC50F,EAAO0L,WAAajP,KAAK66F,gBAAgB,kBAAkBt3F,EAAO+3F,KAGpE/3F,EAAOlD,KAAO,MACdkD,EAAO/B,KAAO6qF,EAAO39E,SAASpB,GAC9BtN,KAAKY,QAAQ,OAAQ2C,EACvB,CACF,EAEA42F,GAAsBh6F,UAAY,IAAI+hF,EACtCiY,GAAsBqB,aAAe,CACnCC,KAAM,GACNC,KAAM,IAWRtB,GAAoB,WAClB,IAeIS,EAfAlzE,EAAO3nB,KACP27F,GAAgB,EAEpBzzF,EAAQ,CACN1G,KAAM,GACN4M,KAAM,GAEJjG,EAAQ,CACV3G,KAAM,GACN4M,KAAM,GAEJwtF,EAAgB,CAClBp6F,KAAM,GACN4M,KAAM,GA2DR89E,EAAc,SAAqBhK,EAAQ7hF,EAAMw7F,GAC/C,IAMIC,EACAC,EAPA7L,EAAa,IAAI7xF,WAAW6jF,EAAO9zE,MACnCyQ,EAAQ,CACVxe,KAAMA,GAEJ9B,EAAI,EACJ+O,EAAS,EAKb,GAAK40E,EAAO1gF,KAAKlD,UAAU4jF,EAAO9zE,KAAO,GAAzC,CAMA,IAFAyQ,EAAMm9E,QAAU9Z,EAAO1gF,KAAK,GAAG85F,IAE1B/8F,EAAI,EAAGA,EAAI2jF,EAAO1gF,KAAKlD,OAAQC,IAClCw9F,EAAW7Z,EAAO1gF,KAAKjD,GACvB2xF,EAAW9tE,IAAI25E,EAASv6F,KAAM8L,GAC9BA,GAAUyuF,EAASv6F,KAAKsJ,WA5Eb,IAAkBi5E,EAASkY,EACpCC,EACAC,EAFoCF,EAgFnBp9E,EA9EjBs9E,GAF2BpY,EAgFtBmM,GA9EiB,IAAM,GAAKnM,EAAQ,IAAM,EAAIA,EAAQ,GAE/DkY,EAAIz6F,KAAO,IAAInD,WAIK,IAAhB89F,IAKJF,EAAIG,aAAe,GAAKrY,EAAQ,IAAM,EAAIA,EAAQ,IAElDkY,EAAIlC,uBAAiD,IAAV,EAAbhW,EAAQ,IAapB,KATlBmY,EAAcnY,EAAQ,MAapBkY,EAAIzU,KAAoB,GAAbzD,EAAQ,KAAc,IAAoB,IAAdA,EAAQ,MAAe,IAAoB,IAAdA,EAAQ,MAAe,IAAoB,IAAdA,EAAQ,MAAe,GAAmB,IAAdA,EAAQ,OAAgB,EACrJkY,EAAIzU,KAAO,EAEXyU,EAAIzU,MAAsB,EAAdzD,EAAQ,OAAgB,EAEpCkY,EAAIxU,IAAMwU,EAAIzU,IAEI,GAAd0U,IACFD,EAAIxU,KAAqB,GAAd1D,EAAQ,MAAe,IAAoB,IAAdA,EAAQ,MAAe,IAAoB,IAAdA,EAAQ,MAAe,IAAoB,IAAdA,EAAQ,MAAe,GAAmB,IAAdA,EAAQ,OAAgB,EACtJkY,EAAIxU,KAAO,EAEXwU,EAAIxU,MAAsB,EAAd1D,EAAQ,OAAgB,IAOxCkY,EAAIz6F,KAAOuiF,EAAQr1E,SAAS,EAAIq1E,EAAQ,KAiCxC+X,EAA2B,UAATz7F,GAAoBwe,EAAMu9E,cAAgBla,EAAO9zE,MAE/DytF,GAAcC,KAChB5Z,EAAO9zE,KAAO,EACd8zE,EAAO1gF,KAAKlD,OAAS,GAKnBw9F,GACFn0E,EAAK/mB,QAAQ,OAAQie,EAxBvB,CA0BF,EAEAu7E,GAAkBj6F,UAAUu/E,KAAK3+E,KAAKf,MAOtCA,KAAKO,KAAO,SAAUiB,IACpB,CACEw5F,IAAK,WAEL,EACAiB,IAAK,WACH,IAAI/Z,EAAQjzE,EAEZ,OAAQzN,EAAKyN,YACX,KAAKgpF,GAAYC,iBACfhW,EAASh6E,EACT+G,EAAa,QACb,MAEF,KAAKgpF,GAAYE,iBACfjW,EAAS/5E,EACT8G,EAAa,QACb,MAEF,KAAKgpF,GAAYG,qBACflW,EAAS0Z,EACT3sF,EAAa,iBACb,MAEF,QAEE,OAKAzN,EAAKu5F,2BACP7O,EAAYhK,EAAQjzE,GAAY,GAKlCizE,EAAO1gF,KAAKjB,KAAKiB,GACjB0gF,EAAO9zE,MAAQ5M,EAAKA,KAAKsJ,UAC3B,EACAswF,IAAK,WACH,IAAIv8E,EAAQ,CACVxe,KAAM,WACNo3B,OAAQ,IAIoB,QAF9BojE,EAAkBr5F,EAAKq5F,iBAEH3yF,OAClB2W,EAAM4Y,OAAOl3B,KAAK,CAChBiqF,kBAAmB,CACjB1E,oBAAqB,GAEvBt3E,IAAKqsF,EAAgB3yF,MACrBS,MAAO,MACPtI,KAAM,UAIoB,OAA1Bw6F,EAAgB1yF,OAClB0W,EAAM4Y,OAAOl3B,KAAK,CAChBiqF,kBAAmB,CACjB1E,oBAAqB,GAEvBt3E,IAAKqsF,EAAgB1yF,MACrBQ,MAAO,OACPtI,KAAM,UAIVs7F,GAAgB,EAChBh0E,EAAK/mB,QAAQ,OAAQie,EACvB,IACCrd,EAAKnB,OACV,EAEAL,KAAKqiC,MAAQ,WACXn6B,EAAMkG,KAAO,EACblG,EAAM1G,KAAKlD,OAAS,EACpB6J,EAAMiG,KAAO,EACbjG,EAAM3G,KAAKlD,OAAS,EACpB0B,KAAKY,QAAQ,QACf,EAYAZ,KAAKq8F,cAAgB,WAGnBnQ,EAAYhkF,EAAO,SACnBgkF,EAAY/jF,EAAO,SACnB+jF,EAAY0P,EAAe,iBAC7B,EAEA57F,KAAK28B,MAAQ,WAIX,IAAKg/D,GAAiBd,EAAiB,CACrC,IAAIO,EAAM,CACR/6F,KAAM,WACNo3B,OAAQ,IAGoB,OAA1BojE,EAAgB3yF,OAClBkzF,EAAI3jE,OAAOl3B,KAAK,CACdiqF,kBAAmB,CACjB1E,oBAAqB,GAEvBt3E,IAAKqsF,EAAgB3yF,MACrBS,MAAO,MACPtI,KAAM,UAIoB,OAA1Bw6F,EAAgB1yF,OAClBizF,EAAI3jE,OAAOl3B,KAAK,CACdiqF,kBAAmB,CACjB1E,oBAAqB,GAEvBt3E,IAAKqsF,EAAgB1yF,MACrBQ,MAAO,OACPtI,KAAM,UAIVsnB,EAAK/mB,QAAQ,OAAQw6F,EACvB,CAEAO,GAAgB,EAChB37F,KAAKq8F,gBACLr8F,KAAKY,QAAQ,OACf,CACF,EAEAw5F,GAAkBj6F,UAAY,IAAI+hF,EAClC,IAAIoa,GAAO,CACTC,QAAS,EACTC,mBAAoBlC,GACpBmC,sBAAuBvC,GACvBwC,qBAAsBvC,GACtBwC,iBAAkBvC,GAClB1B,wBAAyBA,GACzBzN,cAAe+M,GAAc/M,cAC7BK,aAAc0M,GAAc1M,aAC5BE,aAAcwM,GAAcxM,aAC5BoR,eAAgBvC,IAGlB,IAAK,IAAIh6F,MAAQ43F,GACXA,GAAY9wF,eAAe9G,MAC7Bi8F,GAAKj8F,IAAQ43F,GAAY53F,KAI7B,IAGIw8F,GAHAC,GAASR,GACTS,GAAqB5T,GAIrB6T,GAA8B,CAAC,KAAO,MAAO,KAAO,KAAO,MAAO,KAAO,KAAO,MAAO,KAAO,KAAO,MAAO,IAAM,MAUtHH,GAAc,SAAoBI,GAChC,IAAIvyF,EACAwyF,EAAW,EAEfL,GAAY18F,UAAUu/E,KAAK3+E,KAAKf,MAEhCA,KAAKm9F,UAAY,SAAU3qE,EAAO9iB,GAChC1P,KAAKY,QAAQ,MAAO,CAClB2U,MAAO,OACPwd,QAAS,sBAAwBP,EAAQ,OAAS9iB,EAAM,aAAewtF,EAAW,qBAEtF,EAEAl9F,KAAKO,KAAO,SAAU8rF,GACpB,IACI+Q,EACAC,EACAC,EACAC,EACAC,EALAj/F,EAAI,EAWR,GAJK0+F,IACHC,EAAW,GAGO,UAAhB7Q,EAAOhsF,KAAX,CAkBA,IAAIqvE,EAGJ,IAdIhlE,GAAUA,EAAOpM,QACnBg/F,EAAY5yF,GACZA,EAAS,IAAIrM,WAAWi/F,EAAUxyF,WAAauhF,EAAO7qF,KAAKsJ,aACpDsX,IAAIk7E,GACX5yF,EAAO0X,IAAIiqE,EAAO7qF,KAAM87F,EAAUxyF,aAElCJ,EAAS2hF,EAAO7qF,KAQXjD,EAAI,EAAImM,EAAOpM,QAEpB,GAAkB,MAAdoM,EAAOnM,IAA0C,MAAV,IAAhBmM,EAAOnM,EAAI,IAAtC,CA2BA,GAhBoB,iBAATmxE,IACT1vE,KAAKm9F,UAAUztB,EAAMnxE,GACrBmxE,EAAO,MAKT2tB,EAAgD,GAAR,GAAhB3yF,EAAOnM,EAAI,IAInC6+F,GAA+B,EAAhB1yF,EAAOnM,EAAI,KAAc,GAAKmM,EAAOnM,EAAI,IAAM,GAAqB,IAAhBmM,EAAOnM,EAAI,KAAc,EAE5Fi/F,GADAD,EAA6C,MAAL,GAAR,EAAhB7yF,EAAOnM,EAAI,MACOw+F,GAAqBC,IAA6C,GAAhBtyF,EAAOnM,EAAI,MAAe,GAG1GmM,EAAOI,WAAavM,EAAI6+F,EAC1B,MAIFp9F,KAAKY,QAAQ,OAAQ,CACnB4mF,IAAK6E,EAAO7E,IAAM0V,EAAWM,EAC7B/V,IAAK4E,EAAO5E,IAAMyV,EAAWM,EAC7BD,YAAaA,EACbtZ,gBAAgD,GAA9Bv5E,EAAOnM,EAAI,KAAO,EAAI,GACxC4lF,cAA+B,EAAhBz5E,EAAOnM,EAAI,KAAW,GAAqB,IAAhBmM,EAAOnM,EAAI,MAAe,EACpE6lF,WAAY4Y,IAA6C,GAAhBtyF,EAAOnM,EAAI,MAAe,GACnE2lF,wBAAyC,GAAhBx5E,EAAOnM,EAAI,MAAe,EAEnDgnF,WAAY,GAEZ/jF,KAAMkJ,EAAOgE,SAASnQ,EAAI,EAAI8+F,EAAqB9+F,EAAI6+F,KAEzDF,IACA3+F,GAAK6+F,CArCL,KARsB,iBAAT1tB,IACTA,EAAOnxE,GAKTA,IA0CgB,iBAATmxE,IACT1vE,KAAKm9F,UAAUztB,EAAMnxE,GACrBmxE,EAAO,MAIThlE,EAASA,EAAOgE,SAASnQ,EA3EzB,CA4EF,EAEAyB,KAAK28B,MAAQ,WACXugE,EAAW,EACXl9F,KAAKY,QAAQ,OACf,EAEAZ,KAAKqiC,MAAQ,WACX33B,OAAS,EACT1K,KAAKY,QAAQ,QACf,EAEAZ,KAAK6/E,YAAc,WACjBn1E,OAAS,EACT1K,KAAKY,QAAQ,gBACf,CACF,EAEAi8F,GAAY18F,UAAY,IAAI+hF,EAC5B,IA2JIub,GAAaC,GAEbC,GA7JAjC,GAAOmB,GAyJPe,GA3IQ,SAAmBC,GAC7B,IACAC,EAAwBD,EAAY/yF,WAEpCizF,EAAc,EAGdC,EAAuB,EAGvBh+F,KAAK1B,OAAS,WACZ,OAAO,EAAIw/F,CACb,EAGA99F,KAAKi+F,cAAgB,WACnB,OAAO,EAAIH,EAAwBE,CACrC,EAGAh+F,KAAKk+F,SAAW,WACd,IAAI9+E,EAAWy+E,EAAY/yF,WAAagzF,EACpCK,EAAe,IAAI9/F,WAAW,GAC9B+/F,EAAiBtyF,KAAKgU,IAAI,EAAGg+E,GAEjC,GAAuB,IAAnBM,EACF,MAAM,IAAIp6F,MAAM,sBAGlBm6F,EAAa/7E,IAAIy7E,EAAYnvF,SAAS0Q,EAAUA,EAAWg/E,IAC3DL,EAAc,IAAItb,SAAS0b,EAAazzF,QAAQk4E,UAAU,GAE1Dob,EAAwC,EAAjBI,EACvBN,GAAyBM,CAC3B,EAGAp+F,KAAKq+F,SAAW,SAAUp0B,GACxB,IAAIq0B,EAEAN,EAAuB/zB,GACzB8zB,IAAgB9zB,EAChB+zB,GAAwB/zB,IAExBA,GAAS+zB,EAET/zB,GAAqB,GADrBq0B,EAAYxyF,KAAKmW,MAAMgoD,EAAQ,IAE/B6zB,GAAyBQ,EACzBt+F,KAAKk+F,WACLH,IAAgB9zB,EAChB+zB,GAAwB/zB,EAE5B,EAGAjqE,KAAKu+F,SAAW,SAAUnwF,GACxB,IAAIowF,EAAO1yF,KAAKgU,IAAIk+E,EAAsB5vF,GAE1CqwF,EAAOV,IAAgB,GAAKS,EAa5B,OAVAR,GAAwBQ,GAEG,EACzBT,IAAgBS,EACPV,EAAwB,GACjC99F,KAAKk+F,YAGPM,EAAOpwF,EAAOowF,GAEH,EACFC,GAAQD,EAAOx+F,KAAKu+F,SAASC,GAG/BC,CACT,EAGAz+F,KAAK0+F,iBAAmB,WACtB,IAAIC,EAEJ,IAAKA,EAAmB,EAAGA,EAAmBX,IAAwBW,EACpE,GAAwD,IAAnDZ,EAAc,aAAeY,GAIhC,OAFAZ,IAAgBY,EAChBX,GAAwBW,EACjBA,EAMX,OADA3+F,KAAKk+F,WACES,EAAmB3+F,KAAK0+F,kBACjC,EAGA1+F,KAAK4+F,sBAAwB,WAC3B5+F,KAAKq+F,SAAS,EAAIr+F,KAAK0+F,mBACzB,EAGA1+F,KAAK6+F,cAAgB,WACnB7+F,KAAKq+F,SAAS,EAAIr+F,KAAK0+F,mBACzB,EAGA1+F,KAAK8+F,sBAAwB,WAC3B,IAAIC,EAAM/+F,KAAK0+F,mBAEf,OAAO1+F,KAAKu+F,SAASQ,EAAM,GAAK,CAClC,EAGA/+F,KAAKg/F,cAAgB,WACnB,IAAIP,EAAOz+F,KAAK8+F,wBAEhB,OAAI,EAAOL,EAEF,EAAIA,IAAS,GAGd,GAAKA,IAAS,EACxB,EAIAz+F,KAAKi/F,YAAc,WACjB,OAA4B,IAArBj/F,KAAKu+F,SAAS,EACvB,EAGAv+F,KAAKk/F,iBAAmB,WACtB,OAAOl/F,KAAKu+F,SAAS,EACvB,EAEAv+F,KAAKk+F,UACP,EAWAR,GAAiB,WACf,IACIn/F,EACAmM,EAFAy0F,EAAY,EAIhBzB,GAAev9F,UAAUu/E,KAAK3+E,KAAKf,MAUnCA,KAAKO,KAAO,SAAUiB,GACpB,IAAI49F,EAEC10F,IAGH00F,EAAa,IAAI/gG,WAAWqM,EAAOI,WAAatJ,EAAKA,KAAKsJ,aAC/CsX,IAAI1X,GACf00F,EAAWh9E,IAAI5gB,EAAKA,KAAMkJ,EAAOI,YACjCJ,EAAS00F,GALT10F,EAASlJ,EAAKA,KAkBhB,IAVA,IAAIuN,EAAMrE,EAAOI,WAUVq0F,EAAYpwF,EAAM,EAAGowF,IAC1B,GAA8B,IAA1Bz0F,EAAOy0F,EAAY,GAAU,CAE/B5gG,EAAI4gG,EAAY,EAChB,KACF,CAGF,KAAO5gG,EAAIwQ,GAGT,OAAQrE,EAAOnM,IACb,KAAK,EAEH,GAAsB,IAAlBmM,EAAOnM,EAAI,GAAU,CACvBA,GAAK,EACL,KACF,CAAO,GAAsB,IAAlBmM,EAAOnM,EAAI,GAAU,CAC9BA,IACA,KACF,CAGI4gG,EAAY,IAAM5gG,EAAI,GACxByB,KAAKY,QAAQ,OAAQ8J,EAAOgE,SAASywF,EAAY,EAAG5gG,EAAI,IAI1D,GACEA,UACqB,IAAdmM,EAAOnM,IAAYA,EAAIwQ,GAEhCowF,EAAY5gG,EAAI,EAChBA,GAAK,EACL,MAEF,KAAK,EAEH,GAAsB,IAAlBmM,EAAOnM,EAAI,IAA8B,IAAlBmM,EAAOnM,EAAI,GAAU,CAC9CA,GAAK,EACL,KACF,CAGAyB,KAAKY,QAAQ,OAAQ8J,EAAOgE,SAASywF,EAAY,EAAG5gG,EAAI,IACxD4gG,EAAY5gG,EAAI,EAChBA,GAAK,EACL,MAEF,QAGEA,GAAK,EAMXmM,EAASA,EAAOgE,SAASywF,GACzB5gG,GAAK4gG,EACLA,EAAY,CACd,EAEAn/F,KAAKqiC,MAAQ,WACX33B,EAAS,KACTy0F,EAAY,EACZn/F,KAAKY,QAAQ,QACf,EAEAZ,KAAK28B,MAAQ,WAEPjyB,GAAUA,EAAOI,WAAa,GAChC9K,KAAKY,QAAQ,OAAQ8J,EAAOgE,SAASywF,EAAY,IAInDz0F,EAAS,KACTy0F,EAAY,EACZn/F,KAAKY,QAAQ,OACf,EAEAZ,KAAK6/E,YAAc,WACjB7/E,KAAK28B,QACL38B,KAAKY,QAAQ,gBACf,CACF,EAEA88F,GAAev9F,UAAY,IAAI+hF,EAI/Byb,GAAkC,CAChC,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,EAGL,KAAK,EACL,KAAK,EACL,KAAK,GAOPF,GAAc,WACZ,IACI91E,EACAq0E,EACAqD,EACAC,EACArtF,EACAstF,EACAC,EAPAC,EAAgB,IAAI/B,GASxBD,GAAYt9F,UAAUu/E,KAAK3+E,KAAKf,MAEhC2nB,EAAO3nB,KAaPA,KAAKO,KAAO,SAAU8rF,GACA,UAAhBA,EAAOhsF,OAIX27F,EAAU3P,EAAO2P,QACjBqD,EAAahT,EAAO7E,IACpB8X,EAAajT,EAAO5E,IACpBgY,EAAcl/F,KAAK8rF,GACrB,EAWAoT,EAAcr/F,GAAG,QAAQ,SAAUoB,GACjC,IAAIqd,EAAQ,CACVm9E,QAASA,EACTxU,IAAK6X,EACL5X,IAAK6X,EACL99F,KAAMA,EACNk+F,gBAA2B,GAAVl+F,EAAK,IAGxB,OAAQqd,EAAM6gF,iBACZ,KAAK,EACH7gF,EAAMopE,YAAc,4CACpB,MAEF,KAAK,EACHppE,EAAMopE,YAAc,WACpBppE,EAAM+sE,YAAc35E,EAAgCzQ,EAAKkN,SAAS,IAClE,MAEF,KAAK,EACHmQ,EAAMopE,YAAc,yBACpBppE,EAAM+sE,YAAc35E,EAAgCzQ,EAAKkN,SAAS,IAClEmQ,EAAMilC,OAASy7C,EAAyB1gF,EAAM+sE,aAC9C,MAEF,KAAK,EACH/sE,EAAMopE,YAAc,yBACpB,MAEF,KAAK,EACHppE,EAAMopE,YAAc,6BAKxBtgE,EAAK/mB,QAAQ,OAAQie,EACvB,IACA4gF,EAAcr/F,GAAG,QAAQ,WACvBunB,EAAK/mB,QAAQ,OACf,IACA6+F,EAAcr/F,GAAG,eAAe,WAC9BunB,EAAK/mB,QAAQ,cACf,IACA6+F,EAAcr/F,GAAG,SAAS,WACxBunB,EAAK/mB,QAAQ,QACf,IACA6+F,EAAcr/F,GAAG,iBAAiB,WAChCunB,EAAK/mB,QAAQ,gBACf,IAEAZ,KAAK28B,MAAQ,WACX8iE,EAAc9iE,OAChB,EAEA38B,KAAK4/E,aAAe,WAClB6f,EAAc7f,cAChB,EAEA5/E,KAAKqiC,MAAQ,WACXo9D,EAAcp9D,OAChB,EAEAriC,KAAK6/E,YAAc,WACjB4f,EAAc5f,aAChB,EAYA2f,EAAkB,SAAyBv1B,EAAO01B,GAChD,IAEI71D,EAFA81D,EAAY,EACZC,EAAY,EAIhB,IAAK/1D,EAAI,EAAGA,EAAImgC,EAAOngC,IACH,IAAd+1D,IAEFA,GAAaD,EADAD,EAAiBX,gBACQ,KAAO,KAG/CY,EAA0B,IAAdC,EAAkBD,EAAYC,CAE9C,EAWA5tF,EAAkC,SAAyCzQ,GAOzE,IANA,IAGI2Q,EACAC,EAJA9T,EAASkD,EAAKsJ,WACdigF,EAAoC,GACpCxsF,EAAI,EAIDA,EAAID,EAAS,GACF,IAAZkD,EAAKjD,IAA4B,IAAhBiD,EAAKjD,EAAI,IAA4B,IAAhBiD,EAAKjD,EAAI,IACjDwsF,EAAkCxqF,KAAKhC,EAAI,GAC3CA,GAAK,GAELA,IAMJ,GAAiD,IAA7CwsF,EAAkCzsF,OACpC,OAAOkD,EAIT2Q,EAAY7T,EAASysF,EAAkCzsF,OACvD8T,EAAU,IAAI/T,WAAW8T,GACzB,IAAIE,EAAc,EAElB,IAAK9T,EAAI,EAAGA,EAAI4T,EAAWE,IAAe9T,IACpC8T,IAAgB04E,EAAkC,KAEpD14E,IAEA04E,EAAkCz4E,SAGpCF,EAAQ7T,GAAKiD,EAAK6Q,GAGpB,OAAOD,CACT,EAYAmtF,EAA2B,SAAkC/9F,GAC3D,IAIIm+F,EACA1a,EACAE,EACAD,EACA4a,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGA7hG,EAjBA8hG,EAAsB,EACtBC,EAAuB,EACvBC,EAAqB,EACrBC,EAAwB,EAYxBpb,EAAW,CAAC,EAAG,GAanB,GATAH,GADA0a,EAAmB,IAAI/B,GAAUp8F,IACH09F,mBAE9Bha,EAAuBya,EAAiBT,mBAExC/Z,EAAWwa,EAAiBT,mBAE5BS,EAAiBf,wBAGbjB,GAAgC1Y,KAGV,KAFxB6a,EAAkBH,EAAiBb,0BAGjCa,EAAiBtB,SAAS,GAG5BsB,EAAiBf,wBAEjBe,EAAiBf,wBAEjBe,EAAiBtB,SAAS,GAEtBsB,EAAiBV,eAInB,IAFAmB,EAAuC,IAApBN,EAAwB,EAAI,GAE1CvhG,EAAI,EAAGA,EAAI6hG,EAAkB7hG,IAC5BohG,EAAiBV,eAGjBO,EADEjhG,EAAI,EACU,GAEA,GAFIohG,GAa9B,GAJAA,EAAiBf,wBAIO,KAFxBmB,EAAkBJ,EAAiBb,yBAGjCa,EAAiBb,6BACZ,GAAwB,IAApBiB,EAST,IARAJ,EAAiBtB,SAAS,GAE1BsB,EAAiBd,gBAEjBc,EAAiBd,gBAEjBmB,EAAiCL,EAAiBb,wBAE7CvgG,EAAI,EAAGA,EAAIyhG,EAAgCzhG,IAC9CohG,EAAiBd,gBA0BrB,GAtBAc,EAAiBf,wBAEjBe,EAAiBtB,SAAS,GAE1B4B,EAAsBN,EAAiBb,wBACvCoB,EAA4BP,EAAiBb,wBAGpB,KAFzBqB,EAAmBR,EAAiBpB,SAAS,KAG3CoB,EAAiBtB,SAAS,GAG5BsB,EAAiBtB,SAAS,GAEtBsB,EAAiBV,gBAEnBoB,EAAsBV,EAAiBb,wBACvCwB,EAAuBX,EAAiBb,wBACxCyB,EAAqBZ,EAAiBb,wBACtC0B,EAAwBb,EAAiBb,yBAGvCa,EAAiBV,eAEfU,EAAiBV,cAAe,CAIlC,OAFiBU,EAAiBT,oBAGhC,KAAK,EACH9Z,EAAW,CAAC,EAAG,GACf,MAEF,KAAK,EACHA,EAAW,CAAC,GAAI,IAChB,MAEF,KAAK,EACHA,EAAW,CAAC,GAAI,IAChB,MAEF,KAAK,EACHA,EAAW,CAAC,GAAI,IAChB,MAEF,KAAK,EACHA,EAAW,CAAC,GAAI,IAChB,MAEF,KAAK,EACHA,EAAW,CAAC,GAAI,IAChB,MAEF,KAAK,EACHA,EAAW,CAAC,GAAI,IAChB,MAEF,KAAK,EACHA,EAAW,CAAC,GAAI,IAChB,MAEF,KAAK,EACHA,EAAW,CAAC,GAAI,IAChB,MAEF,KAAK,GACHA,EAAW,CAAC,GAAI,IAChB,MAEF,KAAK,GACHA,EAAW,CAAC,GAAI,IAChB,MAEF,KAAK,GACHA,EAAW,CAAC,GAAI,IAChB,MAEF,KAAK,GACHA,EAAW,CAAC,IAAK,IACjB,MAEF,KAAK,GACHA,EAAW,CAAC,EAAG,GACf,MAEF,KAAK,GACHA,EAAW,CAAC,EAAG,GACf,MAEF,KAAK,GACHA,EAAW,CAAC,EAAG,GACf,MAEF,KAAK,IAEDA,EAAW,CAACua,EAAiBT,oBAAsB,EAAIS,EAAiBT,mBAAoBS,EAAiBT,oBAAsB,EAAIS,EAAiBT,oBAK1J9Z,IACFA,EAAS,GAAKA,EAAS,GAE3B,CAGF,MAAO,CACLH,WAAYA,EACZE,SAAUA,EACVD,qBAAsBA,EACtBhnE,MAAmC,IAA3B+hF,EAAsB,GAAgC,EAAtBI,EAAiD,EAAvBC,EAClEriF,QAAS,EAAIkiF,IAAqBD,EAA4B,GAAK,GAA0B,EAArBK,EAAiD,EAAxBC,EAEjGpb,SAAUA,EAEd,CACF,EAEAqY,GAAYt9F,UAAY,IAAI+hF,EAC5B,IAoKIue,GApKAhF,GAAO,CACTiF,WAAYjD,GACZkD,cAAejD,IAWbkD,GAA4B,CAAC,KAAO,MAAO,KAAO,KAAO,MAAO,KAAO,KAAO,MAAO,KAAO,KAAO,MAAO,IAAM,MAEhHC,GAAkB,SAAyBza,EAAQ55E,GACrD,IAAIqB,EAAau4E,EAAO55E,EAAY,IAAM,GAAK45E,EAAO55E,EAAY,IAAM,GAAK45E,EAAO55E,EAAY,IAAM,EAAI45E,EAAO55E,EAAY,GAM7H,OAFAqB,EAAaA,GAAc,EAAIA,EAAa,GAFf,GADjBu4E,EAAO55E,EAAY,KACK,EAK3BqB,EAAa,GAGfA,EAAa,EACtB,EAEIF,GAAe,SAASA,EAAanM,EAAM8L,GAC7C,OAAI9L,EAAKlD,OAASgP,EAAS,IAAM9L,EAAK8L,KAAY,IAAI9O,WAAW,IAAMgD,EAAK8L,EAAS,KAAO,IAAI9O,WAAW,IAAMgD,EAAK8L,EAAS,KAAO,IAAI9O,WAAW,GAC5I8O,EAIFK,EAAanM,EADpB8L,GAAUuzF,GAAgBr/F,EAAM8L,GAElC,EAUIwzF,GAAuB,SAA8Bt/F,GACvD,OAAOA,EAAK,IAAM,GAAKA,EAAK,IAAM,GAAKA,EAAK,IAAM,EAAIA,EAAK,EAC7D,EA2GIm0E,GAAQ,CACVorB,gBArHsB,SAAyBv/F,GAC/C,IAAI8L,EAASK,GAAanM,EAAM,GAChC,OAAOA,EAAKlD,QAAUgP,EAAS,GAA+B,MAAV,IAAf9L,EAAK8L,KAA0D,MAAV,IAAnB9L,EAAK8L,EAAS,KAEvD,KAAV,GAAnB9L,EAAK8L,EAAS,GACjB,EAiHEuzF,gBAAiBA,GACjBG,cAzFkB,SAAuB5a,EAAQ55E,GACjD,IAAIy0F,GAAoC,IAAxB7a,EAAO55E,EAAY,KAAc,EAC7C00F,EAAS9a,EAAO55E,EAAY,IAAM,EAEtC,OADsC,KAAxB45E,EAAO55E,EAAY,GAChB00F,EAASD,CAC5B,EAqFEE,UAnFgB,SAAmB/a,EAAQ55E,GAC3C,OAAI45E,EAAO55E,KAAe,IAAIhO,WAAW,IAAM4nF,EAAO55E,EAAY,KAAO,IAAIhO,WAAW,IAAM4nF,EAAO55E,EAAY,KAAO,IAAIhO,WAAW,GAC9H,kBACsB,EAApB4nF,EAAO55E,IAAiE,MAAV,IAAxB45E,EAAO55E,EAAY,IAC3D,QAGF,IACT,EA4EE40F,gBA1EoB,SAAyB/U,GAG7C,IAFA,IAAI9tF,EAAI,EAEDA,EAAI,EAAI8tF,EAAO/tF,QAAQ,CAC5B,GAAkB,MAAd+tF,EAAO9tF,IAA0C,MAAV,IAAhB8tF,EAAO9tF,EAAI,IAOtC,OAAOqiG,IAA2C,GAAhBvU,EAAO9tF,EAAI,MAAe,GAJ1DA,GAKJ,CAEA,OAAO,IACT,EA4DE8iG,kBA1DsB,SAA2BhV,GACjD,IAAIwN,EAAYC,EAAWxS,EAE3BuS,EAAa,GAEG,GAAZxN,EAAO,KAETwN,GAAc,EAEdA,GAAciH,GAAqBzU,EAAO39E,SAAS,GAAI,MAKzD,EAAG,CAID,IAFAorF,EAAYgH,GAAqBzU,EAAO39E,SAASmrF,EAAa,EAAGA,EAAa,KAE9D,EACd,OAAO,KAKT,GAAoB,SAFN72F,OAAOC,aAAaopF,EAAOwN,GAAaxN,EAAOwN,EAAa,GAAIxN,EAAOwN,EAAa,GAAIxN,EAAOwN,EAAa,IAE9F,CAC1BvS,EAAQ+E,EAAO39E,SAASmrF,EAAa,GAAIA,EAAaC,EAAY,IAElE,IAAK,IAAIv7F,EAAI,EAAGA,EAAI+oF,EAAMx8E,WAAYvM,IACpC,GAAiB,IAAb+oF,EAAM/oF,GAAU,CAClB,IAAIi7F,EAlELzsF,SAdW,SAAuBnC,EAAO4nB,EAAO9iB,GACvD,IAAInR,EACAgF,EAAS,GAEb,IAAKhF,EAAIi0B,EAAOj0B,EAAImR,EAAKnR,IACvBgF,GAAU,KAAO,KAAOqH,EAAMrM,GAAGP,SAAS,KAAK6B,OAAO,GAGxD,OAAO0D,CACT,CAKkB+9F,CAkEkBha,EAAO,EAAG/oF,IAEpC,GAAc,iDAAVi7F,EAA0D,CAC5D,IAAIQ,EAAI1S,EAAM54E,SAASnQ,EAAI,GACvB6P,GAAe,EAAP4rF,EAAE,KAAc,GAAKA,EAAE,IAAM,GAAKA,EAAE,IAAM,GAAKA,EAAE,IAAM,EAAIA,EAAE,KAAO,EAGhF,OAFA5rF,GAAQ,EACRA,GAAe,EAAP4rF,EAAE,EAEZ,CAEA,KACF,CAEJ,CAEAH,GAAc,GAEdA,GAAcC,CAChB,OAASD,EAAaxN,EAAOvhF,YAE7B,OAAO,IACT,IAiBA21F,GAAa,WACX,IAAIjG,EAAa,IAAIn8F,WACjB47F,EAAY,EAEhBwG,GAAWtgG,UAAUu/E,KAAK3+E,KAAKf,MAE/BA,KAAKuhG,aAAe,SAAUxY,GAC5BkR,EAAYlR,CACd,EAEA/oF,KAAKO,KAAO,SAAUqK,GACpB,IAEI42F,EACA5H,EACAvN,EACAoV,EALA3H,EAAY,EACZttF,EAAY,EAgBhB,IATIguF,EAAWl8F,QACbmjG,EAAajH,EAAWl8F,QACxBk8F,EAAa,IAAIn8F,WAAWuM,EAAME,WAAa22F,IACpCr/E,IAAIo4E,EAAW9rF,SAAS,EAAG+yF,IACtCjH,EAAWp4E,IAAIxX,EAAO62F,IAEtBjH,EAAa5vF,EAGR4vF,EAAWl8F,OAASkO,GAAa,GACtC,GAAIguF,EAAWhuF,KAAe,IAAIhO,WAAW,IAAMg8F,EAAWhuF,EAAY,KAAO,IAAIhO,WAAW,IAAMg8F,EAAWhuF,EAAY,KAAO,IAAIhO,WAAW,GAuB5I,GAAuC,MAAV,IAAxBg8F,EAAWhuF,KAAsE,MAAV,IAA5BguF,EAAWhuF,EAAY,IAyB9EA,QAzBO,CAGL,GAAIguF,EAAWl8F,OAASkO,EAAY,EAClC,MAMF,GAAIA,GAHJstF,EAAYnkB,GAAMqrB,cAAcxG,EAAYhuF,IAGhBguF,EAAWl8F,OACrC,MAGF+tF,EAAS,CACPhsF,KAAM,QACNmB,KAAMg5F,EAAW9rF,SAASlC,EAAWA,EAAYstF,GACjDtS,IAAKyS,EACLxS,IAAKwS,GAEPj6F,KAAKY,QAAQ,OAAQyrF,GACrB7/E,GAAastF,CAEf,KA9CA,CAGE,GAAIU,EAAWl8F,OAASkO,EAAY,GAClC,MAQF,GAAIA,GAJJstF,EAAYnkB,GAAMkrB,gBAAgBrG,EAAYhuF,IAIlBguF,EAAWl8F,OACrC,MAGFs7F,EAAQ,CACNv5F,KAAM,iBACNmB,KAAMg5F,EAAW9rF,SAASlC,EAAWA,EAAYstF,IAEnD95F,KAAKY,QAAQ,OAAQg5F,GACrBptF,GAAastF,CAyBf,CAKF0H,EAAYhH,EAAWl8F,OAASkO,EAG9BguF,EADEgH,EAAY,EACDhH,EAAW9rF,SAASlC,GAEpB,IAAInO,UAErB,EAEA2B,KAAKqiC,MAAQ,WACXm4D,EAAa,IAAIn8F,WACjB2B,KAAKY,QAAQ,QACf,EAEAZ,KAAK6/E,YAAc,WACjB2a,EAAa,IAAIn8F,WACjB2B,KAAKY,QAAQ,gBACf,CACF,GAEWT,UAAY,IAAI+hF,EAC3B,IAUIwf,GAAqBC,GAAqBC,GAAaC,GAVvD3uF,GAAMutF,GAGNqB,GADmB,CAAC,kBAAmB,eAAgB,aAAc,yBAA0B,cAG/FC,GADmB,CAAC,QAAS,SAAU,aAAc,WAAY,uBAAwB,YAEzFrB,GAAajF,GAAKiF,WAClBK,GAAkBprB,GAAMorB,gBACxBiB,GAAqB7Y,GAIrB8Y,GAAqB,SAA4Bx+F,EAAKob,GACxDA,EAAMqjE,OAASz+E,EACfzD,KAAKY,QAAQ,MAAOie,EACtB,EAEIqjF,GAA2B,SAAkCC,EAAYC,GAG3E,IAFA,IAAI/tF,EAAOD,OAAOC,KAAK+tF,GAEd7jG,EAAI,EAAGA,EAAI8V,EAAK/V,OAAQC,IAAK,CACpC,IAAIkF,EAAM4Q,EAAK9V,GAGH,mBAARkF,GAA6B2+F,EAAS3+F,GAAKrD,IAI/CgiG,EAAS3+F,GAAKrD,GAAG,MAAO6hG,GAAmB77E,KAAK+7E,EAAY1+F,GAC9D,CACF,EAMI4+F,GAAc,SAAqB16F,EAAGC,GACxC,IAAIrJ,EAEJ,GAAIoJ,EAAErJ,SAAWsJ,EAAEtJ,OACjB,OAAO,EAIT,IAAKC,EAAI,EAAGA,EAAIoJ,EAAErJ,OAAQC,IACxB,GAAIoJ,EAAEpJ,KAAOqJ,EAAErJ,GACb,OAAO,EAIX,OAAO,CACT,EAEI+jG,GAA4B,SAAmCxc,EAAqByc,EAAUtT,EAAUuT,EAAQrP,EAAQsP,GAQ1H,MAAO,CACLjwE,MAAO,CACLi1D,IAAK3B,EACL0B,IAAK1B,GAVcmJ,EAAWsT,IAYhC7yF,IAAK,CACH+3E,IAAK3B,GAZY0c,EAASD,GAa1B/a,IAAK1B,GAZkBqN,EAASlE,IAclCwT,yBAA0BA,EAC1B3c,oBAAqBA,EAEzB,EAYA6b,GAAsB,SAA4BpuE,EAAO1vB,GACvD,IACIwgF,EADAyF,EAAa,GAEbC,EAAqB,EACrBV,EAAqB,EACrBC,EAA2B32E,IAE/B0xE,GADAxgF,EAAUA,GAAW,CAAC,GACG6+F,qBAAuB,EAEhDf,GAAoBxhG,UAAUu/E,KAAK3+E,KAAKf,MAExCA,KAAKO,KAAO,SAAUiB,GACpB6oF,GAA+B92D,EAAO/xB,GAElC+xB,GACFuuE,GAAgBjjG,SAAQ,SAAUmZ,GAChCub,EAAMvb,GAAQxW,EAAKwW,EACrB,IAIF8xE,EAAWvpF,KAAKiB,EAClB,EAEAxB,KAAK2iG,eAAiB,SAAUC,GAC9B7Y,EAAqB6Y,CACvB,EAEA5iG,KAAK6iG,4BAA8B,SAAU/c,GAC3CwD,EAA2BxD,CAC7B,EAEA9lF,KAAK8iG,oBAAsB,SAAU/Z,GACnCM,EAAqBN,CACvB,EAEA/oF,KAAK28B,MAAQ,WACX,IAAIorD,EAAQt0E,EAAMyvE,EAAMqB,EAAOiF,EAAevb,EAAiB80B,EAErC,IAAtBjZ,EAAWxrF,QAKfypF,EAASqB,GAA4CU,EAAYv2D,EAAOw2D,GACxEx2D,EAAMuyD,oBAAsBuE,GAAkD92D,EAAO1vB,EAAQqlF,wBAE7F6Z,EAAoC3Z,GAAkC71D,EAAOw0D,EAAQsB,EAAoBC,GAGzG/1D,EAAMixD,QAAU4E,GAAoCrB,GAEpD7E,EAAOgE,GAAkBkC,GAAqCrB,IAC9D+B,EAAa,GACbr2E,EAAOyzE,GAAkB7C,EAAgB,CAAC9wD,IAC1CgxD,EAAQ,IAAIlmF,WAAWoV,EAAK3I,WAAao4E,EAAKp4E,YAE9Cu5E,IACAE,EAAMniE,IAAI3O,GACV8wE,EAAMniE,IAAI8gE,EAAMzvE,EAAK3I,YACrBu/E,GAA6B92D,GAC7Bi2D,EAAgB19E,KAAKQ,KAA0B,KAArB01F,GAA4BzuE,EAAM6wD,YAKxD2D,EAAOzpF,SACT2vE,EAAkB8Z,EAAOzpF,OAASkrF,EAClCxpF,KAAKY,QAAQ,oBAAqB0hG,GAGlCnZ,GAAuB51D,EAAMuyD,oBAAqBvyD,EAAM6wD,YACxD2D,EAAO,GAAGN,IAAKM,EAAO,GAAGP,IAAKO,EAAO,GAAGN,IAAMxZ,EAAiB8Z,EAAO,GAAGP,IAAMvZ,EAAiB80B,GAAqC,IACrI/iG,KAAKY,QAAQ,aAAc,CACzB4xB,MAAOu1D,EAAO,GAAGP,IACjB93E,IAAKq4E,EAAO,GAAGP,IAAMvZ,KAIzBjuE,KAAKY,QAAQ,OAAQ,CACnB2yB,MAAOA,EACPgxD,MAAOA,IAETvkF,KAAKY,QAAQ,OAAQ,uBA3CnBZ,KAAKY,QAAQ,OAAQ,qBA4CzB,EAEAZ,KAAKqiC,MAAQ,WACXgoD,GAA6B92D,GAC7Bu2D,EAAa,GACb9pF,KAAKY,QAAQ,QACf,CACF,EAEA+gG,GAAoBxhG,UAAY,IAAI+hF,EAapCwf,GAAsB,SAA4BnuE,EAAO1vB,GACvD,IAAIwgF,EAGAvgC,EACAghC,EAHA8C,EAAW,GACXob,EAAkB,GAItB3e,GADAxgF,EAAUA,GAAW,CAAC,GACG6+F,qBAAuB,EAEhDhB,GAAoBvhG,UAAUu/E,KAAK3+E,KAAKf,aAEjCuzB,EAAM0vE,OACbjjG,KAAKkjG,UAAY,GAUjBljG,KAAKO,KAAO,SAAU4iG,GACpB9Y,GAA+B92D,EAAO4vE,GAEV,2BAAxBA,EAAQlb,aAA6CnkC,IACvDA,EAASq/C,EAAQr/C,OACjBvwB,EAAMsxD,IAAM,CAACse,EAAQ3hG,MACrBugG,GAAgBljG,SAAQ,SAAUmZ,GAChCub,EAAMvb,GAAQ8rC,EAAO9rC,EACvB,GAAGhY,OAGuB,2BAAxBmjG,EAAQlb,aAA6CnD,IACvDA,EAAMqe,EAAQ3hG,KACd+xB,EAAMuxD,IAAM,CAACqe,EAAQ3hG,OAIvBomF,EAASrnF,KAAK4iG,EAChB,EAOAnjG,KAAK28B,MAAQ,WAYX,IAXA,IAAIorD,EACAqb,EACAjb,EACA10E,EACAyvE,EACAqB,EAEA8e,EACAC,EAFAb,EAA2B,EAKxB7a,EAAStpF,QACkB,+BAA5BspF,EAAS,GAAGK,aAIhBL,EAASt1E,QAIX,GAAwB,IAApBs1E,EAAStpF,OAGX,OAFA0B,KAAKujG,oBACLvjG,KAAKY,QAAQ,OAAQ,sBAkDvB,GA3CAmnF,EAASJ,GAA+BC,IACxCO,EAAOR,GAA+BI,IAmB5B,GAAG,GAAGL,YAEd0b,EAAepjG,KAAKwjG,iBAAiB5b,EAAS,GAAIr0D,KAKhDkvE,EAA2BW,EAAaxwE,SACxCu1D,EAAKpyE,QAAQqtF,GAGbjb,EAAKr9E,YAAcs4F,EAAat4F,WAChCq9E,EAAKH,UAAYob,EAAapb,SAC9BG,EAAKX,IAAM4b,EAAa5b,IACxBW,EAAKV,IAAM2b,EAAa3b,IACxBU,EAAKv1D,UAAYwwE,EAAaxwE,UAG9Bu1D,EAAOR,GAA+BQ,IAKtC6a,EAAgB1kG,OAAQ,CAC1B,IAAImlG,EAQJ,KALEA,EADE5/F,EAAQ6/F,eACI1jG,KAAK2jG,gBAAgBxb,GAErBnoF,KAAK4jG,kBAAkBzb,IAiBrC,OAZAnoF,KAAKkjG,UAAUntF,QAAQ,CACrB8tF,IAAK1b,EAAK3vE,MACVssE,IAAKvxD,EAAMuxD,IACXD,IAAKtxD,EAAMsxD,MAGb7kF,KAAKkjG,UAAU5kG,OAASwN,KAAKgU,IAAI,EAAG9f,KAAKkjG,UAAU5kG,QAEnDspF,EAAW,GAEX5nF,KAAKujG,oBACLvjG,KAAKY,QAAQ,OAAQ,sBAMvBypF,GAA6B92D,GAC7B40D,EAAOsb,CACT,CAEApZ,GAA+B92D,EAAO40D,GAGtC50D,EAAMixD,QAAUmD,GAA+BQ,GAE/CjF,EAAOgE,GAAkBS,GAA8BQ,IACvD50D,EAAMuyD,oBAAsBuE,GAAkD92D,EAAO1vB,EAAQqlF,wBAC7FlpF,KAAKY,QAAQ,oBAAqBunF,EAAKv+E,KAAI,SAAUi6F,GACnD,MAAO,CACLrc,IAAKqc,EAAIrc,IACTC,IAAKoc,EAAIpc,IACT38E,WAAY+4F,EAAI/4F,WAEpB,KACAu4F,EAAWlb,EAAK,GAChBmb,EAAUnb,EAAKA,EAAK7pF,OAAS,GAC7B0B,KAAKY,QAAQ,oBAAqB0hG,GAA0B/uE,EAAMuyD,oBAAqBud,EAAS5b,IAAK4b,EAAS7b,IAAK8b,EAAQ7b,IAAM6b,EAAQ1wE,SAAU0wE,EAAQ9b,IAAM8b,EAAQ1wE,SAAU6vE,IACnLziG,KAAKY,QAAQ,aAAc,CACzB4xB,MAAO21D,EAAK,GAAGX,IACf93E,IAAKy4E,EAAKA,EAAK7pF,OAAS,GAAGkpF,IAAMW,EAAKA,EAAK7pF,OAAS,GAAGs0B,WAGzD5yB,KAAKkjG,UAAUntF,QAAQ,CACrB8tF,IAAK1b,EAAK3vE,MACVssE,IAAKvxD,EAAMuxD,IACXD,IAAKtxD,EAAMsxD,MAGb7kF,KAAKkjG,UAAU5kG,OAASwN,KAAKgU,IAAI,EAAG9f,KAAKkjG,UAAU5kG,QAEnDspF,EAAW,GACX5nF,KAAKY,QAAQ,sBAAuB2yB,EAAMuyD,qBAC1C9lF,KAAKY,QAAQ,oBAAqB2yB,EAAMi3D,mBACxC/2E,EAAOyzE,GAAkB7C,EAAgB,CAAC9wD,IAG1CgxD,EAAQ,IAAIlmF,WAAWoV,EAAK3I,WAAao4E,EAAKp4E,YAE9Cu5E,IACAE,EAAMniE,IAAI3O,GACV8wE,EAAMniE,IAAI8gE,EAAMzvE,EAAK3I,YACrB9K,KAAKY,QAAQ,OAAQ,CACnB2yB,MAAOA,EACPgxD,MAAOA,IAETvkF,KAAKujG,eAELvjG,KAAKY,QAAQ,OAAQ,qBACvB,EAEAZ,KAAKqiC,MAAQ,WACXriC,KAAKujG,eACL3b,EAAW,GACX5nF,KAAKkjG,UAAU5kG,OAAS,EACxB0kG,EAAgB1kG,OAAS,EACzB0B,KAAKY,QAAQ,QACf,EAEAZ,KAAKujG,aAAe,WAClBlZ,GAA6B92D,GAG7BuwB,OAAS1/C,EACT0gF,OAAM1gF,CACR,EAIApE,KAAKwjG,iBAAmB,SAAUL,GAChC,IAKIW,EACAC,EACA7b,EACA8b,EACAzlG,EALJ0lG,EAAkBtxF,IAOlB,IAAKpU,EAAI,EAAGA,EAAIyB,KAAKkjG,UAAU5kG,OAAQC,IAErC2pF,GADA8b,EAAgBhkG,KAAKkjG,UAAU3kG,IACJslG,IAErBtwE,EAAMuxD,KAAOud,GAAY9uE,EAAMuxD,IAAI,GAAIkf,EAAclf,IAAI,KAAUvxD,EAAMsxD,KAAOwd,GAAY9uE,EAAMsxD,IAAI,GAAImf,EAAcnf,IAAI,MAK9HqD,EAAWT,IAAMl0D,EAAMi3D,kBAAkB/C,MAK7Cqc,EAAcX,EAAQ1b,IAAMS,EAAWT,IAAMS,EAAWt1D,YAvBvC,KA0BuBkxE,GA5BzB,QA+BRC,GAAiBE,EAAkBH,KACtCC,EAAgBC,EAChBC,EAAkBH,IAKxB,OAAIC,EACKA,EAAcF,IAGhB,IACT,EAIA7jG,KAAK4jG,kBAAoB,SAAUzb,GACjC,IAAI+b,EAAYC,EAAUC,EAAOP,EAAK/4F,EAAYk9E,EAAUp1D,EAAU6wE,EAMtE,IALA34F,EAAaq9E,EAAKr9E,WAClBk9E,EAAWG,EAAKH,SAChBp1D,EAAWu1D,EAAKv1D,SAChBsxE,EAAaC,EAAW,EAEjBD,EAAalB,EAAgB1kG,QAAU6lG,EAAWhc,EAAK7pF,SAC5D8lG,EAAQpB,EAAgBkB,GACxBL,EAAM1b,EAAKgc,GAEPC,EAAM5c,MAAQqc,EAAIrc,MAIlBqc,EAAIrc,IAAM4c,EAAM5c,IAGlB0c,KAMFC,IACAr5F,GAAc+4F,EAAI/4F,WAClBk9E,GAAY6b,EAAI7b,SAChBp1D,GAAYixE,EAAIjxE,UAGlB,OAAiB,IAAbuxE,EAEKhc,EAGLgc,IAAahc,EAAK7pF,OAEb,OAGTmlG,EAActb,EAAKtoF,MAAMskG,IACbr5F,WAAaA,EACzB24F,EAAY7wE,SAAWA,EACvB6wE,EAAYzb,SAAWA,EACvByb,EAAYjc,IAAMic,EAAY,GAAGjc,IACjCic,EAAYhc,IAAMgc,EAAY,GAAGhc,IAC1Bgc,EACT,EAIAzjG,KAAK2jG,gBAAkB,SAAUxb,GAC/B,IAAI+b,EAAYC,EAAUC,EAAOP,EAAKQ,EAAeC,EAkCjDC,EA5BJ,IALAL,EAAalB,EAAgB1kG,OAAS,EACtC6lG,EAAWhc,EAAK7pF,OAAS,EACzB+lG,EAAgB,KAChBC,GAAa,EAENJ,GAAc,GAAKC,GAAY,GAAG,CAIvC,GAHAC,EAAQpB,EAAgBkB,GACxBL,EAAM1b,EAAKgc,GAEPC,EAAM5c,MAAQqc,EAAIrc,IAAK,CACzB8c,GAAa,EACb,KACF,CAEIF,EAAM5c,IAAMqc,EAAIrc,IAClB0c,KAIEA,IAAelB,EAAgB1kG,OAAS,IAI1C+lG,EAAgBF,GAGlBA,IACF,CAEA,IAAKG,GAAgC,OAAlBD,EACjB,OAAO,KAWT,GAAkB,KALhBE,EADED,EACUH,EAEAE,GAIZ,OAAOlc,EAGT,IAAIsb,EAActb,EAAKtoF,MAAM0kG,GACzBvpE,EAAWyoE,EAAYlhG,QAAO,SAAUoJ,EAAOk4F,GAIjD,OAHAl4F,EAAMb,YAAc+4F,EAAI/4F,WACxBa,EAAMinB,UAAYixE,EAAIjxE,SACtBjnB,EAAMq8E,UAAY6b,EAAI7b,SACfr8E,CACT,GAAG,CACDb,WAAY,EACZ8nB,SAAU,EACVo1D,SAAU,IAOZ,OALAyb,EAAY34F,WAAakwB,EAASlwB,WAClC24F,EAAY7wE,SAAWoI,EAASpI,SAChC6wE,EAAYzb,SAAWhtD,EAASgtD,SAChCyb,EAAYjc,IAAMic,EAAY,GAAGjc,IACjCic,EAAYhc,IAAMgc,EAAY,GAAGhc,IAC1Bgc,CACT,EAEAzjG,KAAKwkG,cAAgB,SAAUC,GAC7BzB,EAAkByB,CACpB,CACF,EAEA/C,GAAoBvhG,UAAY,IAAI+hF,EAUpC2f,GAAkB,SAAwBh+F,EAASw2F,GAIjDr6F,KAAK0kG,eAAiB,EACtB1kG,KAAKq6F,eAAiBA,OAGO,KAF7Bx2F,EAAUA,GAAW,CAAC,GAEH8gG,MACjB3kG,KAAK4kG,cAAgB/gG,EAAQ8gG,MAE7B3kG,KAAK4kG,aAAc,EAGyB,kBAAnC/gG,EAAQqlF,uBACjBlpF,KAAKkpF,uBAAyBrlF,EAAQqlF,uBAEtClpF,KAAKkpF,wBAAyB,EAGhClpF,KAAK6kG,cAAgB,GACrB7kG,KAAK8kG,WAAa,KAClB9kG,KAAK+kG,aAAe,GACpB/kG,KAAKglG,gBAAkB,GACvBhlG,KAAKilG,gBAAkB,GACvBjlG,KAAKklG,aAAe,EACpBllG,KAAKmlG,cAAgB,EAErBtD,GAAgB1hG,UAAUu/E,KAAK3+E,KAAKf,MAGpCA,KAAKO,KAAO,SAAU6kG,GAGpB,OAAIA,EAAOh9F,KACFpI,KAAKglG,gBAAgBzkG,KAAK6kG,GAI/BA,EAAOrd,OACF/nF,KAAKilG,gBAAgB1kG,KAAK6kG,IAMnCplG,KAAK6kG,cAActkG,KAAK6kG,EAAO7xE,OAC/BvzB,KAAKklG,cAAgBE,EAAO7gB,MAAMz5E,WAOR,UAAtBs6F,EAAO7xE,MAAMlzB,OACfL,KAAK8kG,WAAaM,EAAO7xE,MACzBvzB,KAAK+kG,aAAaxkG,KAAK6kG,EAAO7gB,aAGN,UAAtB6gB,EAAO7xE,MAAMlzB,OACfL,KAAKqlG,WAAaD,EAAO7xE,MACzBvzB,KAAK+kG,aAAahvF,QAAQqvF,EAAO7gB,SAErC,CACF,EAEAsd,GAAgB1hG,UAAY,IAAI+hF,EAEhC2f,GAAgB1hG,UAAUw8B,MAAQ,SAAUgjD,GAC1C,IAOI2lB,EACAC,EACAhwB,EAEAh3E,EAXA+O,EAAS,EACTuR,EAAQ,CACV0b,SAAU,GACVirE,eAAgB,CAAC,EACjBxqE,SAAU,GACVhlB,KAAM,CAAC,GAKLizE,EAAmB,EAGvB,GAAIjpF,KAAK6kG,cAAcvmG,OAAS0B,KAAK0kG,eAAgB,CACnD,GAAoB,uBAAhB/kB,GAAwD,uBAAhBA,EAI1C,OACK,GAAI3/E,KAAK4kG,YAGd,OACK,GAAkC,IAA9B5kG,KAAK6kG,cAAcvmG,OAc5B,OAPA0B,KAAKmlG,qBAEDnlG,KAAKmlG,eAAiBnlG,KAAK0kG,iBAC7B1kG,KAAKY,QAAQ,QACbZ,KAAKmlG,cAAgB,GAK3B,CAcA,GAZInlG,KAAK8kG,YACP7b,EAAmBjpF,KAAK8kG,WAAWta,kBAAkBhD,IACrDua,GAAgBljG,SAAQ,SAAUmZ,GAChC6G,EAAM7I,KAAKgC,GAAQhY,KAAK8kG,WAAW9sF,EACrC,GAAGhY,OACMA,KAAKqlG,aACdpc,EAAmBjpF,KAAKqlG,WAAW7a,kBAAkBhD,IACrDsa,GAAgBjjG,SAAQ,SAAUmZ,GAChC6G,EAAM7I,KAAKgC,GAAQhY,KAAKqlG,WAAWrtF,EACrC,GAAGhY,OAGDA,KAAK8kG,YAAc9kG,KAAKqlG,WAAY,CAiBtC,IAhBkC,IAA9BrlG,KAAK6kG,cAAcvmG,OACrBugB,EAAMxe,KAAOL,KAAK6kG,cAAc,GAAGxkG,KAEnCwe,EAAMxe,KAAO,WAGfL,KAAKmlG,eAAiBnlG,KAAK6kG,cAAcvmG,OACzCi3E,EAAc2R,GAAyBlnF,KAAK6kG,eAE5ChmF,EAAM02D,YAAc,IAAIl3E,WAAWk3E,EAAYzqE,YAG/C+T,EAAM02D,YAAYnzD,IAAImzD,GAEtB12D,EAAMrd,KAAO,IAAInD,WAAW2B,KAAKklG,cAE5B3mG,EAAI,EAAGA,EAAIyB,KAAK+kG,aAAazmG,OAAQC,IACxCsgB,EAAMrd,KAAK4gB,IAAIpiB,KAAK+kG,aAAaxmG,GAAI+O,GACrCA,GAAUtN,KAAK+kG,aAAaxmG,GAAGuM,WAKjC,IAAKvM,EAAI,EAAGA,EAAIyB,KAAKglG,gBAAgB1mG,OAAQC,KAC3C+mG,EAAUtlG,KAAKglG,gBAAgBzmG,IACvBm1B,UAAYy1D,GAA0Bmc,EAAQrW,SAAUhG,EAAkBjpF,KAAKkpF,wBACvFoc,EAAQ3xE,QAAUw1D,GAA0Bmc,EAAQnS,OAAQlK,EAAkBjpF,KAAKkpF,wBACnFrqE,EAAM2mF,eAAeF,EAAQpjB,SAAU,EACvCrjE,EAAM0b,SAASh6B,KAAK+kG,GAKtB,IAAK/mG,EAAI,EAAGA,EAAIyB,KAAKilG,gBAAgB3mG,OAAQC,KAC3CgnG,EAAMvlG,KAAKilG,gBAAgB1mG,IACvBknG,QAAUtc,GAA0Boc,EAAI/d,IAAKyB,EAAkBjpF,KAAKkpF,wBACxErqE,EAAMmc,SAASz6B,KAAKglG,GAqBtB,IAhBA1mF,EAAMmc,SAAS2+D,aAAe35F,KAAKq6F,eAAeV,aAElD35F,KAAK6kG,cAAcvmG,OAAS,EAC5B0B,KAAK8kG,WAAa,KAClB9kG,KAAK+kG,aAAazmG,OAAS,EAC3B0B,KAAKglG,gBAAgB1mG,OAAS,EAC9B0B,KAAKklG,aAAe,EACpBllG,KAAKilG,gBAAgB3mG,OAAS,EAI9B0B,KAAKY,QAAQ,OAAQie,GAKhBtgB,EAAI,EAAGA,EAAIsgB,EAAM0b,SAASj8B,OAAQC,IACrC+mG,EAAUzmF,EAAM0b,SAASh8B,GACzByB,KAAKY,QAAQ,UAAW0kG,GAO1B,IAAK/mG,EAAI,EAAGA,EAAIsgB,EAAMmc,SAAS18B,OAAQC,IACrCgnG,EAAM1mF,EAAMmc,SAASz8B,GACrByB,KAAKY,QAAQ,WAAY2kG,EAE7B,CAGIvlG,KAAKmlG,eAAiBnlG,KAAK0kG,iBAC7B1kG,KAAKY,QAAQ,QACbZ,KAAKmlG,cAAgB,EAEzB,EAEAtD,GAAgB1hG,UAAUulG,SAAW,SAAUtqF,GAC7Cpb,KAAK4kG,YAAcxpF,CACrB,EASAwmF,GAAc,SAAoB/9F,GAChC,IAEIihG,EACAO,EAHA19E,EAAO3nB,KACP2lG,GAAa,EAIjB/D,GAAYzhG,UAAUu/E,KAAK3+E,KAAKf,MAEhC6D,EAAUA,GAAW,CAAC,EACtB7D,KAAK8lF,oBAAsBjiF,EAAQiiF,qBAAuB,EAC1D9lF,KAAK4lG,kBAAoB,CAAC,EAE1B5lG,KAAK6lG,iBAAmB,WACtB,IAAIzD,EAAW,CAAC,EAChBpiG,KAAK4lG,kBAAoBxD,EACzBA,EAAS/hG,KAAO,MAChB+hG,EAAS/H,eAAiB,IAAIyC,GAAOF,eAErCwF,EAAS0D,UAAY,IAAI5yF,GACzBkvF,EAAS2D,6BAA+B,IAAIjJ,GAAOpE,wBAAwB,SAC3E0J,EAAS4D,qCAAuC,IAAIlJ,GAAOpE,wBAAwB,kBACnF0J,EAAS6D,WAAa,IAAIvK,GAC1B0G,EAAS8D,eAAiB,IAAIrE,GAAgBh+F,EAASu+F,EAAS/H,gBAChE+H,EAAS+D,eAAiB/D,EAAS0D,UACnC1D,EAAS0D,UAAUxkG,KAAK8gG,EAAS2D,8BAA8BzkG,KAAK8gG,EAAS6D,YAC7E7D,EAAS0D,UAAUxkG,KAAK8gG,EAAS4D,sCAAsC1kG,KAAK8gG,EAAS/H,gBAAgB/4F,KAAK8gG,EAAS8D,gBACnH9D,EAAS/H,eAAej6F,GAAG,aAAa,SAAUknF,GAChD8a,EAAS0D,UAAUvE,aAAaja,EAAM2S,UACxC,IACAmI,EAAS0D,UAAU1lG,GAAG,QAAQ,SAAUoB,GACpB,mBAAdA,EAAKnB,MAA2C,UAAdmB,EAAKnB,MAAoB+hG,EAASgE,qBAIxEf,EAAaA,GAAc,CACzB7a,kBAAmB,CACjB1E,oBAAqBn+D,EAAKm+D,qBAE5Bn9E,MAAO,OACPtI,KAAM,SAGR+hG,EAAS8D,eAAexB,iBACxBtC,EAASgE,mBAAqB,IAAIzE,GAAoB0D,EAAYxhG,GAClEu+F,EAASgE,mBAAmBhmG,GAAG,MAAOunB,EAAK0+E,eAAe,uBAC1DjE,EAASgE,mBAAmBhmG,GAAG,aAAcunB,EAAK/mB,QAAQwlB,KAAKuB,EAAM,oBAErEy6E,EAAS6D,WAAW3kG,KAAK8gG,EAASgE,oBAAoB9kG,KAAK8gG,EAAS8D,gBAEpEv+E,EAAK/mB,QAAQ,YAAa,CACxB0lG,WAAYjB,EACZkB,WAAYzB,IAEhB,IAEA1C,EAAS8D,eAAe9lG,GAAG,OAAQJ,KAAKY,QAAQwlB,KAAKpmB,KAAM,SAE3DoiG,EAAS8D,eAAe9lG,GAAG,OAAQJ,KAAKY,QAAQwlB,KAAKpmB,KAAM,SAC3DkiG,GAAyBliG,KAAMoiG,EACjC,EAEApiG,KAAKwmG,gBAAkB,WACrB,IAAIpE,EAAW,CAAC,EAChBpiG,KAAK4lG,kBAAoBxD,EACzBA,EAAS/hG,KAAO,KAChB+hG,EAAS/H,eAAiB,IAAIyC,GAAOF,eAErCwF,EAASqE,aAAe,IAAI3J,GAAOL,sBACnC2F,EAASsE,YAAc,IAAI5J,GAAOJ,qBAClC0F,EAASuE,iBAAmB,IAAI7J,GAAOH,iBACvCyF,EAASpJ,wBAA0B,IAAI8D,GAAOpE,wBAC9C0J,EAAS6D,WAAa,IAAIvK,GAC1B0G,EAASwE,WAAa,IAAIlG,GAC1B0B,EAASpK,cAAgB,IAAI8E,GAAO7R,cAAcpnF,GAClDu+F,EAAS8D,eAAiB,IAAIrE,GAAgBh+F,EAASu+F,EAAS/H,gBAChE+H,EAAS+D,eAAiB/D,EAASqE,aAEnCrE,EAASqE,aAAanlG,KAAK8gG,EAASsE,aAAaplG,KAAK8gG,EAASuE,kBAAkBrlG,KAAK8gG,EAASpJ,yBAG/FoJ,EAASpJ,wBAAwB13F,KAAK8gG,EAASwE,YAC/CxE,EAASpJ,wBAAwB13F,KAAK8gG,EAAS6D,YAC/C7D,EAASpJ,wBAAwB13F,KAAK8gG,EAAS/H,gBAAgB/4F,KAAK8gG,EAAS8D,gBAE7E9D,EAASwE,WAAWtlG,KAAK8gG,EAASpK,eAAe12F,KAAK8gG,EAAS8D,gBAC/D9D,EAASuE,iBAAiBvmG,GAAG,QAAQ,SAAUoB,GAC7C,IAAIjD,EAEJ,GAAkB,aAAdiD,EAAKnB,KAAqB,CAG5B,IAFA9B,EAAIiD,EAAKi2B,OAAOn5B,OAETC,KACAumG,GAAsC,UAAxBtjG,EAAKi2B,OAAOl5B,GAAG8B,KAGtBglG,GAAsC,UAAxB7jG,EAAKi2B,OAAOl5B,GAAG8B,QACvCglG,EAAa7jG,EAAKi2B,OAAOl5B,IACdisF,kBAAkB1E,oBAAsBn+D,EAAKm+D,sBAJxDgf,EAAatjG,EAAKi2B,OAAOl5B,IACdisF,kBAAkB1E,oBAAsBn+D,EAAKm+D,oBAQxDgf,IAAe1C,EAASyE,qBAC1BzE,EAAS8D,eAAexB,iBACxBtC,EAASyE,mBAAqB,IAAInF,GAAoBoD,EAAYjhG,GAClEu+F,EAASyE,mBAAmBzmG,GAAG,MAAOunB,EAAK0+E,eAAe,uBAC1DjE,EAASyE,mBAAmBzmG,GAAG,qBAAqB,SAAUoqF,GAKxD6a,IAAexhG,EAAQqlF,yBACzBmc,EAAW7a,kBAAoBA,EAK/B4X,EAASgE,mBAAmBzD,eAAenY,EAAkB/C,IAAM9/D,EAAKm+D,qBAE5E,IACAsc,EAASyE,mBAAmBzmG,GAAG,oBAAqBunB,EAAK/mB,QAAQwlB,KAAKuB,EAAM,YAC5Ey6E,EAASyE,mBAAmBzmG,GAAG,oBAAqBunB,EAAK/mB,QAAQwlB,KAAKuB,EAAM,2BAC5Ey6E,EAASyE,mBAAmBzmG,GAAG,uBAAuB,SAAU0lF,GAC1Duf,GACFjD,EAASgE,mBAAmBvD,4BAA4B/c,EAE5D,IACAsc,EAASyE,mBAAmBzmG,GAAG,aAAcunB,EAAK/mB,QAAQwlB,KAAKuB,EAAM,oBAErEy6E,EAASwE,WAAWtlG,KAAK8gG,EAASyE,oBAAoBvlG,KAAK8gG,EAAS8D,iBAGlEb,IAAejD,EAASgE,qBAE1BhE,EAAS8D,eAAexB,iBACxBtC,EAASgE,mBAAqB,IAAIzE,GAAoB0D,EAAYxhG,GAClEu+F,EAASgE,mBAAmBhmG,GAAG,MAAOunB,EAAK0+E,eAAe,uBAC1DjE,EAASgE,mBAAmBhmG,GAAG,aAAcunB,EAAK/mB,QAAQwlB,KAAKuB,EAAM,oBACrEy6E,EAASgE,mBAAmBhmG,GAAG,oBAAqBunB,EAAK/mB,QAAQwlB,KAAKuB,EAAM,2BAE5Ey6E,EAAS6D,WAAW3kG,KAAK8gG,EAASgE,oBAAoB9kG,KAAK8gG,EAAS8D,iBAItEv+E,EAAK/mB,QAAQ,YAAa,CACxB0lG,WAAYjB,EACZkB,WAAYzB,GAEhB,CACF,IAEA1C,EAAS8D,eAAe9lG,GAAG,OAAQJ,KAAKY,QAAQwlB,KAAKpmB,KAAM,SAC3DoiG,EAAS8D,eAAe9lG,GAAG,YAAY,SAAU0mG,GAC/CA,EAASnN,aAAeyI,EAAS/H,eAAeV,aAChDhyE,EAAK/mB,QAAQ,WAAYkmG,EAC3B,IACA1E,EAAS8D,eAAe9lG,GAAG,UAAWJ,KAAKY,QAAQwlB,KAAKpmB,KAAM,YAE9DoiG,EAAS8D,eAAe9lG,GAAG,OAAQJ,KAAKY,QAAQwlB,KAAKpmB,KAAM,SAC3DkiG,GAAyBliG,KAAMoiG,EACjC,EAGApiG,KAAK+mG,uBAAyB,SAAUjhB,GACtC,IAAIsc,EAAWpiG,KAAK4lG,kBAEf/hG,EAAQqlF,yBACXlpF,KAAK8lF,oBAAsBA,GAGzBuf,IACFA,EAAW7a,kBAAkB/C,SAAMrjF,EACnCihG,EAAW7a,kBAAkBhD,SAAMpjF,EACnCimF,GAA6Bgb,GAEzBjD,EAAS2D,8BACX3D,EAAS2D,6BAA6BjN,iBAItCgM,IACE1C,EAASyE,qBACXzE,EAASyE,mBAAmB3D,UAAY,IAG1C4B,EAAWta,kBAAkB/C,SAAMrjF,EACnC0gG,EAAWta,kBAAkBhD,SAAMpjF,EACnCimF,GAA6Bya,GAC7B1C,EAASpK,cAAc31D,SAGrB+/D,EAASpJ,yBACXoJ,EAASpJ,wBAAwBF,eAErC,EAEA94F,KAAK8iG,oBAAsB,SAAU/Z,GAC/Bsc,GACFrlG,KAAK4lG,kBAAkBQ,mBAAmBtD,oBAAoB/Z,EAElE,EAEA/oF,KAAK0lG,SAAW,SAAUtqF,GACxB,IAAIgnF,EAAWpiG,KAAK4lG,kBACpB/hG,EAAQ8gG,MAAQvpF,EAEZgnF,GAAYA,EAAS8D,gBACvB9D,EAAS8D,eAAeR,SAAStqF,EAErC,EAEApb,KAAKwkG,cAAgB,SAAUxB,GACzB8B,GAAc9kG,KAAK4lG,kBAAkBiB,oBACvC7mG,KAAK4lG,kBAAkBiB,mBAAmBrC,cAAcxB,EAE5D,EAEAhjG,KAAKqmG,eAAiB,SAAU5iG,GAC9B,IAAIkkB,EAAO3nB,KACX,OAAO,SAAU6e,GACfA,EAAMqjE,OAASz+E,EACfkkB,EAAK/mB,QAAQ,MAAOie,EACtB,CACF,EAGA7e,KAAKO,KAAO,SAAUiB,GACpB,GAAImkG,EAAY,CACd,IAAIqB,EAAQjG,GAAgBv/F,GAExBwlG,GAAyC,QAAhChnG,KAAK4lG,kBAAkBvlG,KAClCL,KAAK6lG,mBACKmB,GAAyC,OAAhChnG,KAAK4lG,kBAAkBvlG,MAC1CL,KAAKwmG,kBAGPb,GAAa,CACf,CAEA3lG,KAAK4lG,kBAAkBO,eAAe5lG,KAAKiB,EAC7C,EAGAxB,KAAK28B,MAAQ,WACXgpE,GAAa,EAEb3lG,KAAK4lG,kBAAkBO,eAAexpE,OACxC,EAEA38B,KAAK6/E,YAAc,WACjB7/E,KAAK4lG,kBAAkBO,eAAetmB,aACxC,EAEA7/E,KAAKqiC,MAAQ,WACPriC,KAAK4lG,kBAAkBO,gBACzBnmG,KAAK4lG,kBAAkBO,eAAe9jE,OAE1C,EAGAriC,KAAKinG,cAAgB,WACfjnG,KAAK4lG,kBAAkB5N,eACzBh4F,KAAK4lG,kBAAkB5N,cAAc31D,OAEzC,CACF,EAEAu/D,GAAYzhG,UAAY,IAAI+hF,EAC5B,IA4uBexuD,GAAmDwzE,GAAWC,GA5uBzEhF,GAAa,CACfiF,WAAYxF,GACZyF,mBAAoB3F,GACpB4F,mBAAoB3F,GACpB4F,iBAAkBzF,GAClB0F,iBAAkBzF,GAElBO,0BAA2BA,IAiBzBmF,GARe,SAAoB/kG,GACrC,OAAOA,IAAU,CACnB,EAMI+kG,GAJgB,SAAqB/kG,GACvC,OAAQ,KAAOA,EAAM1E,SAAS,KAAK6B,OAAO,EAC5C,EAgBI6nG,GATc,SAAmBh9F,GACnC,IAAInH,EAAS,GAKb,OAJAA,GAAUP,OAAOC,aAAayH,EAAO,IACrCnH,GAAUP,OAAOC,aAAayH,EAAO,IACrCnH,GAAUP,OAAOC,aAAayH,EAAO,IACrCnH,GAAUP,OAAOC,aAAayH,EAAO,GAEvC,EAGIi9F,GAAeF,GA0CfG,GAxCU,SAASv4F,EAAQ7N,EAAMwM,GACnC,IACIzP,EACA6P,EACA/N,EACAqP,EACAm4F,EALA35F,EAAU,GAOd,IAAKF,EAAK1P,OAER,OAAO,KAGT,IAAKC,EAAI,EAAGA,EAAIiD,EAAKsJ,YACnBsD,EAAOu5F,GAAanmG,EAAKjD,IAAM,GAAKiD,EAAKjD,EAAI,IAAM,GAAKiD,EAAKjD,EAAI,IAAM,EAAIiD,EAAKjD,EAAI,IACpF8B,EAAOqnG,GAAYlmG,EAAKkN,SAASnQ,EAAI,EAAGA,EAAI,IAC5CmR,EAAMtB,EAAO,EAAI7P,EAAI6P,EAAO5M,EAAKsJ,WAE7BzK,IAAS2N,EAAK,KACI,IAAhBA,EAAK1P,OAGP4P,EAAQ3N,KAAKiB,EAAKkN,SAASnQ,EAAI,EAAGmR,KAGlCm4F,EAAax4F,EAAQ7N,EAAKkN,SAASnQ,EAAI,EAAGmR,GAAM1B,EAAKnO,MAAM,KAE5CvB,SACb4P,EAAUA,EAAQ2D,OAAOg2F,KAK/BtpG,EAAImR,EAIN,OAAOxB,CACT,EAGI45F,GAAeL,GACfM,GAAc1lB,EAAQC,UAiBtB0lB,GAfO,SAAcxmG,GACvB,IAAI+B,EAAS,CACX8V,QAAS7X,EAAK,GACdoM,MAAO,IAAIvP,WAAWmD,EAAKkN,SAAS,EAAG,KASzC,OANuB,IAAnBnL,EAAO8V,QACT9V,EAAOuiF,oBAAsBiiB,GAAYvmG,EAAKkN,SAAS,IAEvDnL,EAAOuiF,oBAAsBgiB,GAAatmG,EAAK,IAAM,GAAKA,EAAK,IAAM,GAAKA,EAAK,IAAM,EAAIA,EAAK,IAGzF+B,CACT,EAgBI0kG,GAZmB,SAA0Br6F,GAC/C,MAAO,CACL04E,WAAuB,GAAX14E,EAAM,MAAe,EACjC62E,UAAsB,EAAX72E,EAAM,GACjB82E,cAA0B,IAAX92E,EAAM,MAAe,EACpC+2E,eAA2B,GAAX/2E,EAAM,MAAe,EACrC24E,cAA0B,GAAX34E,EAAM,MAAe,EACpC44E,gBAA4B,EAAX54E,EAAM,GACvB64E,oBAAqB74E,EAAM,IAAM,EAAIA,EAAM,GAE/C,EAoGIs6F,GAhGO,SAAc1mG,GACvB,IAqBI6kF,EArBA9iF,EAAS,CACX8V,QAAS7X,EAAK,GACdoM,MAAO,IAAIvP,WAAWmD,EAAKkN,SAAS,EAAG,IACvC81E,QAAS,IAEPv3E,EAAO,IAAIw1E,SAASjhF,EAAKkJ,OAAQlJ,EAAKqJ,WAAYrJ,EAAKsJ,YAE3Dq9F,EAAsC,EAAlB5kG,EAAOqK,MAAM,GAEjCw6F,EAA4C,EAAlB7kG,EAAOqK,MAAM,GAEvCy6F,EAA0C,EAAlB9kG,EAAOqK,MAAM,GAErC06F,EAAsC,EAAlB/kG,EAAOqK,MAAM,GAEjC26F,EAAuC,EAAlBhlG,EAAOqK,MAAM,GAElC46F,EAAuD,EAAlBjlG,EAAOqK,MAAM,GAElD2vF,EAActwF,EAAK21E,UAAU,GACzBt1E,EAAS,EAyCb,IAtCI66F,IAEF5kG,EAAOgkF,WAAat6E,EAAKw7F,SAASn7F,GAClCA,GAAU,GAKR86F,GAA2B7K,IAC7BlX,EAAS,CACPz4E,MAAOq6F,GAAmBzmG,EAAKkN,SAASpB,EAAQA,EAAS,KAE3DA,GAAU,EAEN+6F,IACFhiB,EAAOzzD,SAAW3lB,EAAK21E,UAAUt1E,GACjCA,GAAU,GAGRg7F,IACFjiB,EAAOj4E,KAAOnB,EAAK21E,UAAUt1E,GAC7BA,GAAU,GAGRk7F,IACqB,IAAnBjlG,EAAO8V,QACTgtE,EAAOH,sBAAwBj5E,EAAKw7F,SAASn7F,GAE7C+4E,EAAOH,sBAAwBj5E,EAAK21E,UAAUt1E,GAGhDA,GAAU,GAGZ/J,EAAOihF,QAAQjkF,KAAK8lF,GACpBkX,KAGKA,KACLlX,EAAS,CAAC,EAENgiB,IACFhiB,EAAOzzD,SAAW3lB,EAAK21E,UAAUt1E,GACjCA,GAAU,GAGRg7F,IACFjiB,EAAOj4E,KAAOnB,EAAK21E,UAAUt1E,GAC7BA,GAAU,GAGRi7F,IACFliB,EAAOz4E,MAAQq6F,GAAmBzmG,EAAKkN,SAASpB,EAAQA,EAAS,IACjEA,GAAU,GAGRk7F,IACqB,IAAnBjlG,EAAO8V,QACTgtE,EAAOH,sBAAwBj5E,EAAKw7F,SAASn7F,GAE7C+4E,EAAOH,sBAAwBj5E,EAAK21E,UAAUt1E,GAGhDA,GAAU,GAGZ/J,EAAOihF,QAAQjkF,KAAK8lF,GAGtB,OAAO9iF,CACT,EA2DImlG,GAvDO,SAAclnG,GACvB,IAaIjD,EAbA0O,EAAO,IAAIw1E,SAASjhF,EAAKkJ,OAAQlJ,EAAKqJ,WAAYrJ,EAAKsJ,YACvDvH,EAAS,CACX8V,QAAS7X,EAAK,GACdoM,MAAO,IAAIvP,WAAWmD,EAAKkN,SAAS,EAAG,IACvCstF,QAAS/uF,EAAK21E,UAAU,IAEtB+lB,EAA0C,EAAlBplG,EAAOqK,MAAM,GACrCg7F,EAAkD,EAAlBrlG,EAAOqK,MAAM,GAC7Ci7F,EAAiD,EAAlBtlG,EAAOqK,MAAM,GAC5Ck7F,EAA6C,GAAlBvlG,EAAOqK,MAAM,GACxCm7F,EAA8C,GAAlBxlG,EAAOqK,MAAM,GACzCo7F,EAAoC,MAAlBzlG,EAAOqK,MAAM,GAC/Bq7F,EAAsC,OAAlB1lG,EAAOqK,MAAM,GAuCrC,OArCArP,EAAI,EAEAoqG,IACFpqG,GAAK,EAGLgF,EAAO6kF,eAAiBn7E,EAAK21E,UAAU,IACvCrkF,GAAK,GAGHqqG,IACFrlG,EAAO2lG,uBAAyBj8F,EAAK21E,UAAUrkF,GAC/CA,GAAK,GAGHsqG,IACFtlG,EAAO4lG,sBAAwBl8F,EAAK21E,UAAUrkF,GAC9CA,GAAK,GAGHuqG,IACFvlG,EAAO6lG,kBAAoBn8F,EAAK21E,UAAUrkF,GAC1CA,GAAK,GAGHwqG,IACFxlG,EAAO8lG,mBAAqBp8F,EAAK21E,UAAUrkF,IAGzCyqG,IACFzlG,EAAOylG,iBAAkB,IAGtBL,GAAyBM,IAC5B1lG,EAAO+lG,sBAAuB,GAGzB/lG,CACT,EAGIgmG,GAAuC,oBAAfC,WAA6BA,WAA+B,oBAAX/nG,OAAyBA,YAA2B,IAAX,EAAAgoG,EAAyB,EAAAA,EAAyB,oBAAT9hF,KAAuBA,KAAO,CAAC,EAa1L+hF,GAVkB,oBAAXjoG,OACHA,YAC6B,IAAnB8nG,GACVA,GACmB,oBAAT5hF,KACVA,KAEA,CAAC,EAIL1V,GAAkCw4E,GAClCQ,GAAgB+M,GAAc/M,cAY9B0e,GAAc,SAAqBr8F,EAAQk3E,GAG7C,IAFA,IAAIolB,EAAoBt8F,EAEf/O,EAAI,EAAGA,EAAIimF,EAAQlmF,OAAQC,IAAK,CACvC,IAAI8nF,EAAS7B,EAAQjmF,GAErB,GAAIqrG,EAAoBvjB,EAAOj4E,KAC7B,OAAOi4E,EAGTujB,GAAqBvjB,EAAOj4E,IAC9B,CAEA,OAAO,IACT,EAyIIy7F,GAAmB,SAA0B3gC,EAAS4gC,GAExD,IAAIC,EAAQnC,GAAU1+B,EAAS,CAAC,OAAQ,SAEpC8gC,EAAQpC,GAAU1+B,EAAS,CAAC,SAC5B+gC,EAAc,CAAC,EACfC,EAAgB,GAsCpB,OApCAF,EAAMnrG,SAAQ,SAAUqkF,EAAMziF,GAC5B,IAAI0pG,EAAeJ,EAAMtpG,GACzBypG,EAAc3pG,KAAK,CACjB2iF,KAAMA,EACNrC,KAAMspB,GAEV,IACAD,EAAcrrG,SAAQ,SAAUurG,GAC9B,IAUI5lB,EACAjhF,EAXA2/E,EAAOknB,EAAKlnB,KACZrC,EAAOupB,EAAKvpB,KACZ+C,EAAOgkB,GAAU/mB,EAAM,CAAC,SAExBwpB,EAAa3B,GAAU9kB,EAAK,IAC5BoY,EAAUqO,EAAWrO,QACrBrY,EAAOikB,GAAU/mB,EAAM,CAAC,SAExBiF,EAAsBnC,EAAKrlF,OAAS,EAAI0pG,GAAUrkB,EAAK,IAAImC,oBAAsB,EACjFwkB,EAAQ1C,GAAU/mB,EAAM,CAAC,SAIzBipB,IAAiB9N,GAAWsO,EAAMhsG,OAAS,IAC7CkmF,EAhFa,SAAsB8lB,EAAOxkB,EAAqBlC,GACnE,IAAI0b,EAAaxZ,EACbqjB,EAAwBvlB,EAAKulB,uBAAyB,EACtDC,EAAoBxlB,EAAKwlB,mBAAqB,EAC9CpN,EAAUpY,EAAKoY,QACfuO,EAAa,GAiCjB,OAhCAD,EAAMzrG,SAAQ,SAAUglF,GAItB,IACIW,EADW0jB,GAAUrkB,GACFW,QACvBA,EAAQ3lF,SAAQ,SAAUwnF,QACAjiF,IAApBiiF,EAAOzzD,WACTyzD,EAAOzzD,SAAWu2E,QAGA/kG,IAAhBiiF,EAAOj4E,OACTi4E,EAAOj4E,KAAOg7F,GAGhB/iB,EAAO2V,QAAUA,EACjB3V,EAAOoB,IAAM6X,OAEwBl7F,IAAjCiiF,EAAOH,wBACTG,EAAOH,sBAAwB,GAGP,iBAAfoZ,GACTjZ,EAAOmB,IAAM8X,EAAaoK,GAAS3+F,OAAOs7E,EAAOH,uBACjDoZ,GAAcoK,GAAS3+F,OAAOs7E,EAAOzzD,YAErCyzD,EAAOmB,IAAM8X,EAAajZ,EAAOH,sBACjCoZ,GAAcjZ,EAAOzzD,SAEzB,IACA23E,EAAaA,EAAW14F,OAAO2yE,EACjC,IACO+lB,CACT,CAyCgBC,CAAaF,EAAOxkB,EAAqBukB,GACnD9mG,EAvJY,SAAqBknG,EAAWjmB,EAASwX,GACzD,IAKI0O,EACAnsG,EACAD,EACAqsG,EARAC,EAAU,IAAInoB,SAASgoB,EAAU//F,OAAQ+/F,EAAU5/F,WAAY4/F,EAAU3/F,YACzEvH,EAAS,CACXsnG,KAAM,GACNC,QAAS,IAOX,IAAKvsG,EAAI,EAAGA,EAAI,EAAIksG,EAAUnsG,OAAQC,GAAKD,EAIzC,GAHAA,EAASssG,EAAQhoB,UAAUrkF,GAC3BA,GAAK,IAEDD,GAAU,GAId,OAAuB,GAAfmsG,EAAUlsG,IAChB,KAAK,EACH,IAAIiD,EAAOipG,EAAU/7F,SAASnQ,EAAI,EAAGA,EAAI,EAAID,GACzCysG,EAAiBpB,GAAYprG,EAAGimF,GASpC,GARAkmB,EAAS,CACPziB,YAAa,WACb75E,KAAM9P,EACNkD,KAAMA,EACNoqF,YAAa35E,GAAgCzQ,GAC7Cw6F,QAASA,GAGP+O,EACFL,EAAOljB,IAAMujB,EAAevjB,IAC5BkjB,EAAOjjB,IAAMsjB,EAAetjB,IAC5BkjB,EAAoBI,MACf,KAAIJ,EAKJ,CACLpnG,EAAOsnG,KAAKtqG,KAAK,CACfgV,MAAO,OACPwd,QAAS,gDAAmDx0B,EAAI,gBAAkBy9F,EAAU,sBAE9F,KACF,CARE0O,EAAOljB,IAAMmjB,EAAkBnjB,IAC/BkjB,EAAOjjB,IAAMkjB,EAAkBljB,GAOjC,CAEAlkF,EAAOunG,QAAQvqG,KAAKmqG,GAK1B,OAAOnnG,CACT,CAiGeynG,CAAY9nB,EAAMsB,EAASwX,GAE/BiO,EAAYjO,KACfiO,EAAYjO,GAAW,CACrB8O,QAAS,GACTD,KAAM,KAIVZ,EAAYjO,GAAS8O,QAAUb,EAAYjO,GAAS8O,QAAQj5F,OAAOtO,EAAOunG,SAC1Eb,EAAYjO,GAAS6O,KAAOZ,EAAYjO,GAAS6O,KAAKh5F,OAAOtO,EAAOsnG,MAExE,IACOZ,CACT,EA2PIgB,GApNgB,WAClB,IACIjT,EAEAkT,EAEAlP,EAEAmP,EAEAC,EAEAC,EAXAC,GAAgB,EAiBpBtrG,KAAKsrG,cAAgB,WACnB,OAAOA,CACT,EAOAtrG,KAAK0/E,KAAO,SAAU77E,GACpBm0F,EAAgB,IAAI/M,GACpBqgB,GAAgB,EAChBD,IAAiBxnG,GAAUA,EAAQ0nG,UAEnCvT,EAAc53F,GAAG,QAAQ,SAAUye,GAEjCA,EAAM6U,UAAY7U,EAAMowE,SAAWkc,EACnCtsF,EAAM8U,QAAU9U,EAAMs0E,OAASgY,EAC/BC,EAAe7wE,SAASh6B,KAAKse,GAC7BusF,EAAe5F,eAAe3mF,EAAMqjE,SAAU,CAChD,IACA8V,EAAc53F,GAAG,OAAO,SAAUoV,GAChC41F,EAAeP,KAAKtqG,KAAKiV,EAC3B,GACF,EAQAxV,KAAKwrG,UAAY,SAAUC,EAAeC,GACxC,QAAID,GAA0C,IAAzBA,EAAcntG,QAAgBotG,GAAoC,iBAAfA,GAA8D,IAAnCt3F,OAAOC,KAAKq3F,GAAYptG,UAIpH09F,IAAYyP,EAAc,IAAMN,IAAcO,EAAW1P,GAClE,EAaAh8F,KAAK+E,MAAQ,SAAUmkE,EAASuiC,EAAeC,GAC7C,IAAIC,EAEJ,IAAK3rG,KAAKsrG,gBACR,OAAO,KACF,IAAKG,IAAkBC,EAC5B,OAAO,KACF,GAAI1rG,KAAKwrG,UAAUC,EAAeC,GAGvC1P,EAAUyP,EAAc,GACxBN,EAAYO,EAAW1P,QAGlB,GAAgB,OAAZA,IAAqBmP,EAE9B,OADAD,EAAa3qG,KAAK2oE,GACX,KAIT,KAAOgiC,EAAa5sG,OAAS,GAAG,CAC9B,IAAIstG,EAAgBV,EAAa54F,QACjCtS,KAAK+E,MAAM6mG,EAAeH,EAAeC,EAC3C,CAQA,OANAC,EAlHwB,SAA+BziC,EAAS8yB,EAASmP,GAG3E,GAAgB,OAAZnP,EACF,OAAO,KAIT,IAAI6P,EADUhC,GAAiB3gC,EAAS8yB,GACZA,IAAY,CAAC,EACzC,MAAO,CACL8O,QAASe,EAAUf,QACnBD,KAAMgB,EAAUhB,KAChBM,UAAWA,EAEf,CAoGiBW,CAAsB5iC,EAAS8yB,EAASmP,GAEjDQ,GAAcA,EAAWd,OAC3BO,EAAeP,KAAOO,EAAeP,KAAKh5F,OAAO85F,EAAWd,OAG3C,OAAfc,GAAwBA,EAAWb,SAYvC9qG,KAAK+rG,SAASJ,EAAWb,SAEzB9qG,KAAKksF,cACEkf,GAdDA,EAAeP,KAAKvsG,OACf,CACLusG,KAAMO,EAAeP,KACrBtwE,SAAU,GACVirE,eAAgB,IAIb,IAOX,EASAxlG,KAAK+rG,SAAW,SAAUC,GACxB,IAAKhsG,KAAKsrG,kBAAoBU,GAAwB,IAAhBA,EAAK1tG,OACzC,OAAO,KAGT0tG,EAAKntG,SAAQ,SAAUotG,GACrBjU,EAAcz3F,KAAK0rG,EACrB,GACF,EAOAjsG,KAAKksF,YAAc,WACjB,IAAKlsF,KAAKsrG,gBACR,OAAO,KAGJD,EAGHrT,EAAcpY,eAFdoY,EAAcr7D,OAIlB,EAMA38B,KAAKksG,oBAAsB,WACzBd,EAAe7wE,SAAW,GAC1B6wE,EAAe5F,eAAiB,CAAC,EACjC4F,EAAeP,KAAO,EACxB,EAOA7qG,KAAKmsG,mBAAqB,WACxB,IAAKnsG,KAAKsrG,gBACR,OAAO,KAGTtT,EAAc31D,OAChB,EAQAriC,KAAKosG,iBAAmB,WACtBpsG,KAAKksG,sBACLlsG,KAAKmsG,oBACP,EAMAnsG,KAAKqiC,MAAQ,WACX6oE,EAAe,GACflP,EAAU,KACVmP,EAAY,KAEPC,EAQHprG,KAAKksG,sBAPLd,EAAiB,CACf7wE,SAAU,GAEVirE,eAAgB,CAAC,EACjBqF,KAAM,IAMV7qG,KAAKmsG,oBACP,EAEAnsG,KAAKqiC,OACP,EAGIgqE,GAAa5E,GACb6E,GAAc7E,GACdnlB,GAAYD,EAAQC,UAkExB5uD,GAAY,SAAmBy3E,EAAWpP,GACxC,IAIIwQ,EAFI3E,GAAU7L,EAAU,CAAC,OAAQ,SAEdx5F,QAAO,SAAUqqB,EAAKi0D,GAC3C,IAQI2rB,EASA77D,EAjBAizC,EAAOgkB,GAAU/mB,EAAM,CAAC,SAAS,GAEjCryE,EAAK69F,GAAWzoB,EAAK,IAAM,GAAKA,EAAK,IAAM,GAAKA,EAAK,IAAM,EAAIA,EAAK,IAEpE6oB,EAAQtB,EAAU38F,IAAO,IAEzBm1E,EAAOikB,GAAU/mB,EAAM,CAAC,SAAS,GACjC2B,EAAK,IAAIC,SAASkB,EAAKj5E,OAAQi5E,EAAK94E,WAAY84E,EAAK74E,YA0BzD,MAdwB,iBARtB0hG,EADc,IAAZ7oB,EAAK,GACIrB,GAAUqB,EAAKj1E,SAAS,EAAG,KAE3B8zE,EAAGI,UAAU,IAOxBjyC,EAAU67D,EAAW9C,GAAS3+F,OAAO0hG,GACR,iBAAbD,GAA0Bv9E,MAAMu9E,KAChD77D,EAAU67D,EAAWC,GAGnB97D,EAAU3nC,OAAO25E,mBACnBhyC,EAAU3nC,OAAO2nC,IAGfA,EAAU/jB,IACZA,EAAM+jB,GAGD/jB,CACT,GAAGja,KACH,MAA6B,iBAAf45F,GAA2BG,SAASH,GAAcA,EAAa,CAC/E,EA6GApF,GAA8B,SAAqC3mB,GAEjE,IACI//E,EAAoB,IADV+/E,EAAK,GACS,GAAK,GACjC,OAAO6rB,GAAW7rB,EAAK//E,IAAU,GAAK+/E,EAAK//E,EAAQ,IAAM,GAAK+/E,EAAK//E,EAAQ,IAAM,EAAI+/E,EAAK//E,EAAQ,GACpG,EAOAymG,GAAY,SAAmBxnB,GAC7B,IAAIitB,EAAQ/E,GAAUloB,EAAM,CAAC,OAAQ,SACjCjoD,EAAS,GAuFb,OAtFAk1E,EAAM9tG,SAAQ,SAAUwhF,GACtB,IAEIpzE,EAAM2/F,EAFNr5E,EAAQ,CAAC,EACT+sD,EAAOsnB,GAAUvnB,EAAM,CAAC,SAAS,GAGjCC,IAEFssB,GADA3/F,EAAO,IAAIw1E,SAASnC,EAAK51E,OAAQ41E,EAAKz1E,WAAYy1E,EAAKx1E,aACpC+hG,SAAS,GAC5Bt5E,EAAM/kB,GAAqB,IAAhBo+F,EAAoB3/F,EAAK21E,UAAU,IAAM31E,EAAK21E,UAAU,KAGrE,IAAInC,EAAOmnB,GAAUvnB,EAAM,CAAC,OAAQ,SAAS,GAE7C,GAAII,EAAM,CACR,IAAIpgF,EAAOqnG,GAAYjnB,EAAK/xE,SAAS,EAAG,KAGtC6kB,EAAMlzB,KADK,SAATA,EACW,QACK,SAATA,EACI,QAEAA,CAEjB,CAGA,IAAIugF,EAAOgnB,GAAUvnB,EAAM,CAAC,OAAQ,OAAQ,OAAQ,SAAS,GAE7D,GAAIO,EAAM,CACR,IAAIksB,EAAqBlsB,EAAKlyE,SAAS,GAEvC6kB,EAAM5qB,MAAQ++F,GAAYoF,EAAmBp+F,SAAS,EAAG,IACzD,IACIq+F,EADAC,EAAWpF,GAAUkF,EAAoB,CAACv5E,EAAM5qB,QAAQ,GAGxDqkG,IAEE,kBAAkB1tG,KAAKi0B,EAAM5qB,QAG/BokG,EAAcC,EAASt+F,SAAS,IAGR,SAFNg5F,GAAYqF,EAAYr+F,SAAS,EAAG,KAEpBq+F,EAAYzuG,OAAS,IACrDi1B,EAAM5qB,OAAS,IAGf4qB,EAAM5qB,OAAS2jG,GAAYS,EAAY,IAEvCx5E,EAAM5qB,OAAS2jG,GAAYS,EAAY,KAEvCx5E,EAAM5qB,OAAS2jG,GAAYS,EAAY,MAIvCx5E,EAAM5qB,MAAQ,eAEP,cAAcrJ,KAAKi0B,EAAM5qB,QAElCokG,EAAcC,EAASt+F,SAAS,IAGR,SAFNg5F,GAAYqF,EAAYr+F,SAAS,EAAG,KAEpBq+F,EAAYzuG,OAAS,IAA0B,IAApByuG,EAAY,KACvEx5E,EAAM5qB,OAAS,IAAM2jG,GAAYS,EAAY,KAE7Cx5E,EAAM5qB,OAAS,IAAM2jG,GAAYS,EAAY,MAAQ,EAAI,IAAMnkG,QAAQ,KAAM,KAI7E2qB,EAAM5qB,MAAQ,aAIhB4qB,EAAM5qB,MAAQ4qB,EAAM5qB,MAAMtG,cAGhC,CAEA,IAAIm+E,EAAOonB,GAAUvnB,EAAM,CAAC,OAAQ,SAAS,GAEzCG,IACFjtD,EAAM43E,UAAYhE,GAA4B3mB,IAGhD/oD,EAAOl3B,KAAKgzB,EACd,IACOkE,CACT,EAEA,IAAIw1E,GAKSv5E,GALTu5E,GAQM/F,GAINgG,GAAW,SAAkB7gB,GAC/B,IAAIiP,EAAkB,GAAZjP,EAAO,GAGjB,OAFAiP,IAAQ,EACRA,GAAOjP,EAAO,EAEhB,EAEI8gB,GAAiC,SAAwC9gB,GAC3E,SAAsB,GAAZA,EAAO,GACnB,EAEI+gB,GAAqB,SAA4B/gB,GACnD,IAAI/+E,EAAS,EAUb,OAJiB,GAAZ++E,EAAO,MAAe,EAAI,IAC7B/+E,GAAU++E,EAAO,GAAK,GAGjB/+E,CACT,EAkJI+/F,GAAmB,SAA0BhtG,GAC/C,OAAQA,GACN,KAAK,EACH,MAAO,4CAET,KAAK,EACH,MAAO,WAET,KAAK,EACH,MAAO,yBAET,KAAK,EACH,MAAO,yBAET,KAAK,EACH,MAAO,6BAET,QACE,OAAO,KAEb,EAyFIitG,GAAU,CACZnM,UA9Pc,SAAmB9U,EAAQ8O,GACzC,IAAIG,EAAM4R,GAAS7gB,GAEnB,OAAY,IAARiP,EACK,MACEA,IAAQH,EACV,MACEA,EACF,MAGF,IACT,EAmPET,SAjPa,SAAkBrO,GAC/B,IAAIkhB,EAAOJ,GAA+B9gB,GACtC/+E,EAAS,EAAI8/F,GAAmB/gB,GAMpC,OAJIkhB,IACFjgG,GAAU++E,EAAO/+E,GAAU,IAGC,GAAtB++E,EAAO/+E,EAAS,MAAe,EAAI++E,EAAO/+E,EAAS,GAC7D,EAyOEqtF,SAvOa,SAAkBtO,GAC/B,IAAIwO,EAAkB,CAAC,EACnB0S,EAAOJ,GAA+B9gB,GACtCmhB,EAAgB,EAAIJ,GAAmB/gB,GAW3C,GATIkhB,IACFC,GAAiBnhB,EAAOmhB,GAAiB,GAQT,EAA5BnhB,EAAOmhB,EAAgB,GAA7B,CAIA,IAAmBnS,EAGnBA,EAAW,IADkC,GAA5BhP,EAAOmhB,EAAgB,KAAc,EAAInhB,EAAOmhB,EAAgB,IAClD,EAO/B,IAFA,IAAIlgG,EAAS,KAFqC,GAA7B++E,EAAOmhB,EAAgB,MAAe,EAAInhB,EAAOmhB,EAAgB,KAI/ElgG,EAAS+tF,GAAU,CACxB,IAAI98F,EAAIivG,EAAgBlgG,EAExButF,GAAiC,GAAhBxO,EAAO9tF,EAAI,KAAc,EAAI8tF,EAAO9tF,EAAI,IAAM8tF,EAAO9tF,GAGtE+O,GAA0D,IAA9B,GAAhB++E,EAAO9tF,EAAI,KAAc,EAAI8tF,EAAO9tF,EAAI,GACtD,CAEA,OAAOs8F,CArBP,CAsBF,EAkMEsS,+BAAgCA,GAChCM,aAjMiB,SAAsBphB,EAAQwO,GAI/C,OAFWA,EADDqS,GAAS7gB,KAIjB,KAAK4L,GAAYC,iBACf,MAAO,QAET,KAAKD,GAAYE,iBACf,MAAO,QAET,KAAKF,GAAYG,qBACf,MAAO,iBAET,QACE,OAAO,KAEb,EAiLEsV,aA/KiB,SAAsBrhB,GAGvC,IAFW8gB,GAA+B9gB,GAGxC,OAAO,KAGT,IAAI/+E,EAAS,EAAI8/F,GAAmB/gB,GAEpC,GAAI/+E,GAAU++E,EAAOvhF,WAWnB,OAAO,KAGT,IACIoxF,EADAD,EAAM,KAkCV,OApBkB,KATlBC,EAAc7P,EAAO/+E,EAAS,OAU5B2uF,EAAM,CAAC,GAIHzU,KAA4B,GAArB6E,EAAO/+E,EAAS,KAAc,IAA4B,IAAtB++E,EAAO/+E,EAAS,MAAe,IAA4B,IAAtB++E,EAAO/+E,EAAS,MAAe,IAA4B,IAAtB++E,EAAO/+E,EAAS,MAAe,GAA2B,IAAtB++E,EAAO/+E,EAAS,OAAgB,EAC7L2uF,EAAIzU,KAAO,EAEXyU,EAAIzU,MAA8B,EAAtB6E,EAAO/+E,EAAS,OAAgB,EAE5C2uF,EAAIxU,IAAMwU,EAAIzU,IAEI,GAAd0U,IACFD,EAAIxU,KAA6B,GAAtB4E,EAAO/+E,EAAS,MAAe,IAA4B,IAAtB++E,EAAO/+E,EAAS,MAAe,IAA4B,IAAtB++E,EAAO/+E,EAAS,MAAe,IAA4B,IAAtB++E,EAAO/+E,EAAS,MAAe,GAA2B,IAAtB++E,EAAO/+E,EAAS,OAAgB,EAC9L2uF,EAAIxU,KAAO,EAEXwU,EAAIxU,MAA8B,EAAtB4E,EAAO/+E,EAAS,OAAgB,IAIzC2uF,CACT,EAsHE0R,4BA9FgC,SAAqCthB,GAQrE,IAPA,IAAI/+E,EAAS,EAAI8/F,GAAmB/gB,GAChCuhB,EAAcvhB,EAAO39E,SAASpB,GAC9BugG,EAAS,EACTC,EAAiB,EACjBC,GAAgB,EAGbD,EAAiBF,EAAY9iG,WAAa,EAAGgjG,IAClD,GAAwC,IAApCF,EAAYE,EAAiB,GAAU,CAEzCD,EAASC,EAAiB,EAC1B,KACF,CAGF,KAAOD,EAASD,EAAY9iG,YAG1B,OAAQ8iG,EAAYC,IAClB,KAAK,EAEH,GAAgC,IAA5BD,EAAYC,EAAS,GAAU,CACjCA,GAAU,EACV,KACF,CAAO,GAAgC,IAA5BD,EAAYC,EAAS,GAAU,CACxCA,IACA,KACF,CAEIC,EAAiB,IAAMD,EAAS,GAGlB,8CAFNR,GAAmD,GAAlCO,EAAYE,EAAiB,MAGtDC,GAAgB,GAKpB,GACEF,UAC+B,IAAxBD,EAAYC,IAAiBA,EAASD,EAAYtvG,QAE3DwvG,EAAiBD,EAAS,EAC1BA,GAAU,EACV,MAEF,KAAK,EAEH,GAAgC,IAA5BD,EAAYC,EAAS,IAAwC,IAA5BD,EAAYC,EAAS,GAAU,CAClEA,GAAU,EACV,KACF,CAIgB,8CAFNR,GAAmD,GAAlCO,EAAYE,EAAiB,MAGtDC,GAAgB,GAGlBD,EAAiBD,EAAS,EAC1BA,GAAU,EACV,MAEF,QAGEA,GAAU,EAiBhB,OAZAD,EAAcA,EAAYl/F,SAASo/F,GACnCD,GAAUC,EACVA,EAAiB,EAEbF,GAAeA,EAAY9iG,WAAa,GAG1B,8CAFNuiG,GAAmD,GAAlCO,EAAYE,EAAiB,MAGtDC,GAAgB,GAIbA,CACT,GAWIC,GAAiBhV,GACjBiV,GAAQ,CAAC,EACbA,GAAMr6F,GAAK05F,GACXW,GAAM/6F,IAAMyiE,GACZ,IAAIu4B,GAAmB/kB,GACnBqT,GAAqB,IAEzB2R,GAAY,GAmDRC,GAAiB,SAAwBxjG,EAAOwwF,EAAK73F,GAUvD,IATA,IAEI8oF,EAEAgiB,EACAd,EACAe,EANA9iC,EAAa,EACbC,EAAW+wB,GAMX+R,GAAU,EAEP9iC,GAAY7gE,EAAME,YAEvB,GAAIF,EAAM4gE,KAAgB2iC,IAAcvjG,EAAM6gE,KAAc0iC,IAAa1iC,IAAa7gE,EAAME,WAmC5F0gE,IACAC,QApCA,CAKE,GAHA4gB,EAASzhF,EAAM8D,SAAS88D,EAAYC,GAI7B,QAHAwiC,GAAMr6F,GAAGutF,UAAU9U,EAAQ+O,EAAIE,KAIlC+S,EAAUJ,GAAMr6F,GAAG65F,aAAaphB,EAAQ+O,EAAIoT,OAC5CjB,EAAOU,GAAMr6F,GAAGu5F,+BAA+B9gB,GAE/B,UAAZgiB,GAAuBd,IACzBe,EAASL,GAAMr6F,GAAG85F,aAAarhB,MAG7BiiB,EAAOjuG,KAAO,QACdkD,EAAO4E,MAAM5H,KAAK+tG,GAClBC,GAAU,GAOlB,GAAIA,EACF,MAGF/iC,GAAcgxB,GACd/wB,GAAY+wB,EAEd,CAcF,IAHAhxB,GADAC,EAAW7gE,EAAME,YACO0xF,GACxB+R,GAAU,EAEH/iC,GAAc,GAEnB,GAAI5gE,EAAM4gE,KAAgB2iC,IAAcvjG,EAAM6gE,KAAc0iC,IAAa1iC,IAAa7gE,EAAME,WAmC5F0gE,IACAC,QApCA,CAKE,GAHA4gB,EAASzhF,EAAM8D,SAAS88D,EAAYC,GAI7B,QAHAwiC,GAAMr6F,GAAGutF,UAAU9U,EAAQ+O,EAAIE,KAIlC+S,EAAUJ,GAAMr6F,GAAG65F,aAAaphB,EAAQ+O,EAAIoT,OAC5CjB,EAAOU,GAAMr6F,GAAGu5F,+BAA+B9gB,GAE/B,UAAZgiB,GAAuBd,IACzBe,EAASL,GAAMr6F,GAAG85F,aAAarhB,MAG7BiiB,EAAOjuG,KAAO,QACdkD,EAAO4E,MAAM5H,KAAK+tG,GAClBC,GAAU,GAOlB,GAAIA,EACF,MAGF/iC,GAAcgxB,GACd/wB,GAAY+wB,EAEd,CAQJ,EAQIiS,GAAiB,SAAwB7jG,EAAOwwF,EAAK73F,GAiBvD,IAhBA,IAEI8oF,EAEAgiB,EACAd,EACAe,EACAhnB,EACA/oF,EACA09F,EATAzwB,EAAa,EACbC,EAAW+wB,GASX+R,GAAU,EACVzmB,EAAe,CACjBtmF,KAAM,GACN4M,KAAM,GAGDq9D,EAAW7gE,EAAME,YAEtB,GAAIF,EAAM4gE,KAAgB2iC,IAAavjG,EAAM6gE,KAAc0iC,GAuE3D3iC,IACAC,QAxEA,CAKE,GAHA4gB,EAASzhF,EAAM8D,SAAS88D,EAAYC,GAI7B,QAHAwiC,GAAMr6F,GAAGutF,UAAU9U,EAAQ+O,EAAIE,KAOlC,GAHA+S,EAAUJ,GAAMr6F,GAAG65F,aAAaphB,EAAQ+O,EAAIoT,OAC5CjB,EAAOU,GAAMr6F,GAAGu5F,+BAA+B9gB,GAE/B,UAAZgiB,IACEd,IAASgB,IACXD,EAASL,GAAMr6F,GAAG85F,aAAarhB,MAG7BiiB,EAAOjuG,KAAO,QACdkD,EAAO2E,MAAM3H,KAAK+tG,GAClBC,GAAU,IAIThrG,EAAOmrG,eAAe,CACzB,GAAInB,GACwB,IAAtBzlB,EAAa15E,KAAY,CAI3B,IAHAk5E,EAAQ,IAAIjpF,WAAWypF,EAAa15E,MACpC7P,EAAI,EAEGupF,EAAatmF,KAAKlD,QACvB29F,EAAMnU,EAAatmF,KAAK8Q,QACxBg1E,EAAMllE,IAAI65E,EAAK19F,GACfA,GAAK09F,EAAInxF,WAGX,GAAImjG,GAAMr6F,GAAG+5F,4BAA4BrmB,GAAQ,CAC/C,IAAIonB,EAAgBT,GAAMr6F,GAAG85F,aAAapmB,GAItConB,GACFnrG,EAAOmrG,cAAgBA,EACvBnrG,EAAOmrG,cAAcruG,KAAO,SAG5BsuG,QAAQr4F,KAAK,8RAEjB,CAEAwxE,EAAa15E,KAAO,CACtB,CAGF05E,EAAatmF,KAAKjB,KAAK8rF,GACvBvE,EAAa15E,MAAQi+E,EAAOvhF,UAC9B,CAMN,GAAIyjG,GAAWhrG,EAAOmrG,cACpB,MAGFljC,GAAcgxB,GACd/wB,GAAY+wB,EAEd,CAcF,IAHAhxB,GADAC,EAAW7gE,EAAME,YACO0xF,GACxB+R,GAAU,EAEH/iC,GAAc,GAEnB,GAAI5gE,EAAM4gE,KAAgB2iC,IAAavjG,EAAM6gE,KAAc0iC,GAmC3D3iC,IACAC,QApCA,CAKE,GAHA4gB,EAASzhF,EAAM8D,SAAS88D,EAAYC,GAI7B,QAHAwiC,GAAMr6F,GAAGutF,UAAU9U,EAAQ+O,EAAIE,KAIlC+S,EAAUJ,GAAMr6F,GAAG65F,aAAaphB,EAAQ+O,EAAIoT,OAC5CjB,EAAOU,GAAMr6F,GAAGu5F,+BAA+B9gB,GAE/B,UAAZgiB,GAAuBd,IACzBe,EAASL,GAAMr6F,GAAG85F,aAAarhB,MAG7BiiB,EAAOjuG,KAAO,QACdkD,EAAO2E,MAAM3H,KAAK+tG,GAClBC,GAAU,GAOlB,GAAIA,EACF,MAGF/iC,GAAcgxB,GACd/wB,GAAY+wB,EAEd,CAQJ,EAuJIoS,GAAa,SAAoBhkG,GACnC,IAAIwwF,EAAM,CACRE,IAAK,KACLkT,MAAO,MAELjrG,EAAS,CAAC,EAGd,IAAK,IAAI+3F,KA/bK,SAAmB1wF,EAAOwwF,GAMxC,IALA,IAEI/O,EAFA7gB,EAAa,EACbC,EAAW+wB,GAIR/wB,EAAW7gE,EAAME,YAEtB,GAAIF,EAAM4gE,KAAgB2iC,IAAavjG,EAAM6gE,KAAc0iC,GA2B3D3iC,IACAC,QA5BA,CAKE,OAHA4gB,EAASzhF,EAAM8D,SAAS88D,EAAYC,GAC7BwiC,GAAMr6F,GAAGutF,UAAU9U,EAAQ+O,EAAIE,MAGpC,IAAK,MACHF,EAAIE,IAAM2S,GAAMr6F,GAAG8mF,SAASrO,GAC5B,MAEF,IAAK,MACH,IAAImiB,EAAQP,GAAMr6F,GAAG+mF,SAAStO,GAC9B+O,EAAIoT,MAAQpT,EAAIoT,OAAS,CAAC,EAC1Bp6F,OAAOC,KAAKm6F,GAAO3vG,SAAQ,SAAU4E,GACnC23F,EAAIoT,MAAM/qG,GAAO+qG,EAAM/qG,EACzB,IAIJ+nE,GAAcgxB,GACd/wB,GAAY+wB,EAEd,CAQJ,CAuZEqS,CAAUjkG,EAAOwwF,GAEDA,EAAIoT,MAAO,CACzB,GAAIpT,EAAIoT,MAAMrnG,eAAem0F,GAG3B,OAFWF,EAAIoT,MAAMlT,IAGnB,KAAKrD,GAAYC,iBACf30F,EAAO2E,MAAQ,GACfumG,GAAe7jG,EAAOwwF,EAAK73F,GAEC,IAAxBA,EAAO2E,MAAM5J,eACRiF,EAAO2E,MAGhB,MAEF,KAAK+vF,GAAYE,iBACf50F,EAAO4E,MAAQ,GACfimG,GAAexjG,EAAOwwF,EAAK73F,GAEC,IAAxBA,EAAO4E,MAAM7J,eACRiF,EAAO4E,MAMxB,CAEA,OAAO5E,CACT,EA6BIurG,GAlBU,SAAiBlkG,EAAOmkG,GACpC,IACIxrG,EAQJ,OALEA,EAJc0qG,GAAM/6F,IAAI6tF,gBAAgBn2F,GAlJ1B,SAAqBA,GASrC,IARA,IAMIyhF,EANAkiB,GAAU,EACVS,EAAa,EACbhmB,EAAa,KACbD,EAAY,KACZ+Q,EAAY,EACZttF,EAAY,EAGT5B,EAAMtM,OAASkO,GAAa,GAAG,CAGpC,OAFWyhG,GAAM/6F,IAAIiuF,UAAUv2F,EAAO4B,IAGpC,IAAK,iBAGH,GAAI5B,EAAMtM,OAASkO,EAAY,GAAI,CACjC+hG,GAAU,EACV,KACF,CAKA,IAHAzU,EAAYmU,GAAM/6F,IAAI2tF,gBAAgBj2F,EAAO4B,IAG7B5B,EAAMtM,OAAQ,CAC5BiwG,GAAU,EACV,KACF,CAEkB,OAAdxlB,IACFsD,EAASzhF,EAAM8D,SAASlC,EAAWA,EAAYstF,GAC/C/Q,EAAYklB,GAAM/6F,IAAImuF,kBAAkBhV,IAG1C7/E,GAAastF,EACb,MAEF,IAAK,QAGH,GAAIlvF,EAAMtM,OAASkO,EAAY,EAAG,CAChC+hG,GAAU,EACV,KACF,CAKA,IAHAzU,EAAYmU,GAAM/6F,IAAI8tF,cAAcp2F,EAAO4B,IAG3B5B,EAAMtM,OAAQ,CAC5BiwG,GAAU,EACV,KACF,CAEmB,OAAfvlB,IACFqD,EAASzhF,EAAM8D,SAASlC,EAAWA,EAAYstF,GAC/C9Q,EAAailB,GAAM/6F,IAAIkuF,gBAAgB/U,IAGzC2iB,IACAxiG,GAAastF,EACb,MAEF,QACEttF,IAIJ,GAAI+hG,EACF,OAAO,IAEX,CAEA,GAAmB,OAAfvlB,GAAqC,OAAdD,EACzB,OAAO,KAGT,IAAIkmB,EAAiBf,GAAmBllB,EAYxC,MAXa,CACX7gF,MAAO,CAAC,CACN9H,KAAM,QACNonF,IAAKsB,EACLvB,IAAKuB,GACJ,CACD1oF,KAAM,QACNonF,IAAKsB,EAAyB,KAAbimB,EAAoBC,EACrCznB,IAAKuB,EAAyB,KAAbimB,EAAoBC,IAI3C,CA6DaC,CAAYtkG,GAEZgkG,GAAWhkG,GAGjBrH,IAAWA,EAAO4E,OAAU5E,EAAO2E,QA1MnB,SAA0BinG,EAAaJ,GAC5D,GAAII,EAAYhnG,OAASgnG,EAAYhnG,MAAM7J,OAAQ,CACjD,IAAI8wG,EAAqBL,QAES,IAAvBK,GAAsCngF,MAAMmgF,MACrDA,EAAqBD,EAAYhnG,MAAM,GAAGs/E,KAG5C0nB,EAAYhnG,MAAMtJ,SAAQ,SAAUmX,GAClCA,EAAKyxE,IAAMumB,GAAeh4F,EAAKyxE,IAAK2nB,GACpCp5F,EAAKwxE,IAAMwmB,GAAeh4F,EAAKwxE,IAAK4nB,GAEpCp5F,EAAKq5F,QAAUr5F,EAAKyxE,IAAMymB,GAC1Bl4F,EAAKs5F,QAAUt5F,EAAKwxE,IAAM0mB,EAC5B,GACF,CAEA,GAAIiB,EAAYjnG,OAASinG,EAAYjnG,MAAM5J,OAAQ,CACjD,IAAIixG,EAAqBR,EAczB,SAZkC,IAAvBQ,GAAsCtgF,MAAMsgF,MACrDA,EAAqBJ,EAAYjnG,MAAM,GAAGu/E,KAG5C0nB,EAAYjnG,MAAMrJ,SAAQ,SAAUmX,GAClCA,EAAKyxE,IAAMumB,GAAeh4F,EAAKyxE,IAAK8nB,GACpCv5F,EAAKwxE,IAAMwmB,GAAeh4F,EAAKwxE,IAAK+nB,GAEpCv5F,EAAKq5F,QAAUr5F,EAAKyxE,IAAMymB,GAC1Bl4F,EAAKs5F,QAAUt5F,EAAKwxE,IAAM0mB,EAC5B,IAEIiB,EAAYT,cAAe,CAC7B,IAAIpnB,EAAQ6nB,EAAYT,cACxBpnB,EAAMG,IAAMumB,GAAe1mB,EAAMG,IAAK8nB,GACtCjoB,EAAME,IAAMwmB,GAAe1mB,EAAME,IAAK+nB,GAEtCjoB,EAAM+nB,QAAU/nB,EAAMG,IAAMymB,GAC5B5mB,EAAMgoB,QAAUhoB,EAAME,IAAM0mB,EAC9B,CACF,CACF,CAqKEsB,CAAiBjsG,EAAQwrG,GAClBxrG,GAJE,IAKX,EAkJIksG,GAA+B,WACjC,SAASA,EAAgB9nF,EAAM9jB,GAC7B7D,KAAK6D,QAAUA,GAAW,CAAC,EAC3B7D,KAAK2nB,KAAOA,EACZ3nB,KAAK0/E,MACP,CAMA,IAAIx/E,EAASuvG,EAAgBtvG,UAiL7B,OA/KAD,EAAOw/E,KAAO,WACR1/E,KAAKmiG,YACPniG,KAAKmiG,WAAW9gG,UAGlBrB,KAAKmiG,WAAa,IAAIA,GAAWiF,WAAWpnG,KAAK6D,SApJ1B,SAA8B8jB,EAAMw6E,GAC7DA,EAAW/hG,GAAG,QAAQ,SAAU8oE,GAK9B,IAAIwmC,EAAYxmC,EAAQqM,YACxBrM,EAAQqM,YAAc,CACpB/zE,KAAMkuG,EAAUhlG,OAChBG,WAAY6kG,EAAU7kG,WACtBC,WAAY4kG,EAAU5kG,YAExB,IAAI6kG,EAAazmC,EAAQ1nE,KACzB0nE,EAAQ1nE,KAAOmuG,EAAWjlG,OAC1Bid,EAAKioF,YAAY,CACfC,OAAQ,OACR3mC,QAASA,EACTr+D,WAAY8kG,EAAW9kG,WACvBC,WAAY6kG,EAAW7kG,YACtB,CAACo+D,EAAQ1nE,MACd,IACA2gG,EAAW/hG,GAAG,QAAQ,SAAUoB,GAC9BmmB,EAAKioF,YAAY,CACfC,OAAQ,QAEZ,IACA1N,EAAW/hG,GAAG,WAAW,SAAU0vG,GACjCnoF,EAAKioF,YAAY,CACfC,OAAQ,UACRC,QAASA,GAEb,IACA3N,EAAW/hG,GAAG,0BAA0B,SAAU2vG,GAChD,IAAIC,EAAyB,CAC3Bx9E,MAAO,CACL1vB,OAAQqmF,GAAuB4mB,EAAWv9E,MAAMi1D,KAChDwoB,aAAc9mB,GAAuB4mB,EAAWv9E,MAAMg1D,MAExD93E,IAAK,CACH5M,OAAQqmF,GAAuB4mB,EAAWrgG,IAAI+3E,KAC9CwoB,aAAc9mB,GAAuB4mB,EAAWrgG,IAAI83E,MAEtD1B,oBAAqBqD,GAAuB4mB,EAAWjqB,sBAGrDiqB,EAAWtN,2BACbuN,EAAuBvN,yBAA2BtZ,GAAuB4mB,EAAWtN,2BAGtF96E,EAAKioF,YAAY,CACfC,OAAQ,yBACRG,uBAAwBA,GAE5B,IACA7N,EAAW/hG,GAAG,0BAA0B,SAAU2vG,GAEhD,IAAIG,EAAyB,CAC3B19E,MAAO,CACL1vB,OAAQqmF,GAAuB4mB,EAAWv9E,MAAMi1D,KAChDwoB,aAAc9mB,GAAuB4mB,EAAWv9E,MAAMg1D,MAExD93E,IAAK,CACH5M,OAAQqmF,GAAuB4mB,EAAWrgG,IAAI+3E,KAC9CwoB,aAAc9mB,GAAuB4mB,EAAWrgG,IAAI83E,MAEtD1B,oBAAqBqD,GAAuB4mB,EAAWjqB,sBAGrDiqB,EAAWtN,2BACbyN,EAAuBzN,yBAA2BtZ,GAAuB4mB,EAAWtN,2BAGtF96E,EAAKioF,YAAY,CACfC,OAAQ,yBACRK,uBAAwBA,GAE5B,IACA/N,EAAW/hG,GAAG,YAAY,SAAU0mG,GAClCn/E,EAAKioF,YAAY,CACfC,OAAQ,WACR/I,SAAUA,GAEd,IACA3E,EAAW/hG,GAAG,WAAW,SAAUklG,GACjC39E,EAAKioF,YAAY,CACfC,OAAQ,UACRvK,QAASA,GAEb,IACAnD,EAAW/hG,GAAG,aAAa,SAAU+vG,GACnCxoF,EAAKioF,YAAY,CACfC,OAAQ,YACRM,UAAWA,GAEf,IACAhO,EAAW/hG,GAAG,mBAAmB,SAAUgwG,GAEzCzoF,EAAKioF,YAAY,CACfC,OAAQ,kBACRO,gBAAiB,CACf59E,MAAO22D,GAAuBinB,EAAgB59E,OAC9C9iB,IAAKy5E,GAAuBinB,EAAgB1gG,OAGlD,IACAyyF,EAAW/hG,GAAG,mBAAmB,SAAU81E,GACzCvuD,EAAKioF,YAAY,CACfC,OAAQ,kBACR35B,gBAAiB,CACf1jD,MAAO22D,GAAuBjT,EAAgB1jD,OAC9C9iB,IAAKy5E,GAAuBjT,EAAgBxmE,OAGlD,IACAyyF,EAAW/hG,GAAG,OAAO,SAAUoV,GAC7BmS,EAAKioF,YAAY,CACfC,OAAQ,MACRr6F,IAAKA,GAET,GACF,CA6BI66F,CAAqBrwG,KAAK2nB,KAAM3nB,KAAKmiG,WACvC,EAEAjiG,EAAOowG,gBAAkB,SAAyB9uG,GAC3CxB,KAAKirG,gBACRjrG,KAAKirG,cAAgB,IAAIA,GACzBjrG,KAAKirG,cAAcvrB,QAGrB,IAAIxW,EAAU,IAAI7qE,WAAWmD,EAAKA,KAAMA,EAAKqJ,WAAYrJ,EAAKsJ,YAC1DwjG,EAAStuG,KAAKirG,cAAclmG,MAAMmkE,EAAS1nE,EAAK+uG,SAAU/uG,EAAKkqG,YACnE1rG,KAAK2nB,KAAKioF,YAAY,CACpBC,OAAQ,cACRt1E,SAAU+zE,GAAUA,EAAO/zE,UAAY,GACvCswE,KAAMyD,GAAUA,EAAOzD,MAAQ,GAC/BrpG,KAAM0nE,EAAQx+D,QACb,CAACw+D,EAAQx+D,QACd,EAEAxK,EAAOswG,kBAAoB,SAA2BplG,GACpD,IAAIsgG,EAAatgG,EAAKsgG,WAClBlqG,EAAO4J,EAAK5J,KACZkyB,EAAYu5E,GAAkBvB,EAAYlqG,GAC9CxB,KAAK2nB,KAAKioF,YAAY,CACpBC,OAAQ,oBACRn8E,UAAWA,EACXlyB,KAAMA,GACL,CAACA,EAAKkJ,QACX,EAEAxK,EAAOuwG,eAAiB,SAAwBpxC,GAC9C,IAAI79D,EAAO69D,EAAM79D,KACbi2B,EAASw1E,GAAezrG,GAC5BxB,KAAK2nB,KAAKioF,YAAY,CACpBC,OAAQ,iBACRp4E,OAAQA,EACRj2B,KAAMA,GACL,CAACA,EAAKkJ,QACX,EAgBAxK,EAAOwwG,QAAU,SAAiBtjG,GAChC,IAAI5L,EAAO4L,EAAM5L,KACbmvG,EAAgBvjG,EAAMujG,cACtBC,EAAuC,iBAAlBD,GAA+B1hF,MAAM0hF,QAA0D,EAAzCA,EAAgBxnB,GAC3F0nB,EAAW/B,GAAoBttG,EAAMovG,GACrCrtG,EAAS,KAETstG,KACFttG,EAAS,CAEPgjG,SAAUsK,EAAS3oG,OAAmC,IAA1B2oG,EAAS3oG,MAAM5J,SAAgB,EAC3DgoG,SAAUuK,EAAS1oG,OAAmC,IAA1B0oG,EAAS1oG,MAAM7J,SAAgB,IAGlDioG,WACThjG,EAAOutG,WAAaD,EAAS3oG,MAAM,GAAGonG,SAGpC/rG,EAAO+iG,WACT/iG,EAAOwtG,WAAaF,EAAS1oG,MAAM,GAAGmnG,UAI1CtvG,KAAK2nB,KAAKioF,YAAY,CACpBC,OAAQ,UACRtsG,OAAQA,EACR/B,KAAMA,GACL,CAACA,EAAKkJ,QACX,EAEAxK,EAAO8wG,oBAAsB,WACvBhxG,KAAKirG,eACPjrG,KAAKirG,cAAcmB,kBAEvB,EAEAlsG,EAAO+wG,uBAAyB,WAC1BjxG,KAAKirG,eACPjrG,KAAKirG,cAAciB,qBAEvB,EASAhsG,EAAOK,KAAO,SAAciB,GAE1B,IAAI0nE,EAAU,IAAI7qE,WAAWmD,EAAKA,KAAMA,EAAKqJ,WAAYrJ,EAAKsJ,YAC9D9K,KAAKmiG,WAAW5hG,KAAK2oE,EACvB,EAOAhpE,EAAOmiC,MAAQ,WACbriC,KAAKmiG,WAAW9/D,OAClB,EAUAniC,EAAOgxG,mBAAqB,SAA4B1vG,GACtD,IAAI2vG,EAAkB3vG,EAAK2vG,iBAAmB,EAC9CnxG,KAAKmiG,WAAW4E,uBAAuBj7F,KAAK6pC,MAAMwzC,GAAuBgoB,IAC3E,EAEAjxG,EAAO4iG,oBAAsB,SAA6BthG,GACxDxB,KAAKmiG,WAAWW,oBAAoBh3F,KAAKQ,KAAK68E,GAAuB3nF,EAAK4vG,cAC5E,EAEAlxG,EAAOwlG,SAAW,SAAkBlkG,GAClCxB,KAAKmiG,WAAWuD,SAASlkG,EAAKmjG,MAChC,EASAzkG,EAAOy8B,MAAQ,SAAen7B,GAC5BxB,KAAKmiG,WAAWxlE,QAEhBhV,KAAKioF,YAAY,CACfC,OAAQ,OACRxvG,KAAM,cAEV,EAEAH,EAAO2/E,YAAc,WACnB7/E,KAAKmiG,WAAWtiB,cAGhBl4D,KAAKioF,YAAY,CACfC,OAAQ,gBACRxvG,KAAM,cAEV,EAEAH,EAAOskG,cAAgB,SAAuBhjG,GAC5CxB,KAAKmiG,WAAWqC,cAAchjG,EAAKwhG,gBAAgBnjG,QACrD,EAEO4vG,CACT,CA7LmC,GAuMnC9nF,KAAK0pF,UAAY,SAAUxyF,GACC,SAAtBA,EAAMrd,KAAKquG,QAAqBhxF,EAAMrd,KAAKqC,QAC7C7D,KAAKsxG,gBAAkB,IAAI7B,GAAgB9nF,KAAM9I,EAAMrd,KAAKqC,UAIzD7D,KAAKsxG,kBACRtxG,KAAKsxG,gBAAkB,IAAI7B,GAAgB9nF,OAGzC9I,EAAMrd,MAAQqd,EAAMrd,KAAKquG,QAAgC,SAAtBhxF,EAAMrd,KAAKquG,QAC5C7vG,KAAKsxG,gBAAgBzyF,EAAMrd,KAAKquG,SAClC7vG,KAAKsxG,gBAAgBzyF,EAAMrd,KAAKquG,QAAQhxF,EAAMrd,MAGpD,CACF,KACI+vG,GAAiB3yB,GAAQa,IAqDzB+xB,GAAkB,SAAyB3tG,GAC7C,IAAIs+F,EAAat+F,EAAQs+F,WACrBv3F,EAAQ/G,EAAQ+G,MAChB6mG,EAAmB5tG,EAAQ4tG,iBAC3BzO,EAAkBn/F,EAAQm/F,gBAC1B2B,EAAQ9gG,EAAQ8gG,MAChB+M,EAAS7tG,EAAQ6tG,OACjBC,EAAc9tG,EAAQ8tG,YACtBC,EAAoB/tG,EAAQ+tG,kBAC5BC,EAAoBhuG,EAAQguG,kBAC5BC,EAA2BjuG,EAAQiuG,yBACnCC,EAA2BluG,EAAQkuG,yBACnCC,EAAQnuG,EAAQmuG,MAChBC,EAAapuG,EAAQouG,WACrBC,EAASruG,EAAQquG,OACjBC,EAAkBtuG,EAAQsuG,gBAC1BC,EAAkBvuG,EAAQuuG,gBAC1BC,EAAkBxuG,EAAQwuG,gBAC1BC,EAAiB,CACnB5nG,OAAQ,IAEN6nG,EAA4BF,EAqGhC,GAxBAlQ,EAAWkP,UA3ES,SAAuBxyF,GACrCsjF,EAAWqQ,kBAAoB3uG,IAKT,SAAtBgb,EAAMrd,KAAKquG,QA/ED,SAAqBhxF,EAAOyzF,EAAgB1zG,GAC5D,IAAI6zG,EAAsB5zF,EAAMrd,KAAK0nE,QACjC7oE,EAAOoyG,EAAoBpyG,KAC3Bk1E,EAAck9B,EAAoBl9B,YAClCh7C,EAAWk4E,EAAoBl4E,SAC/BirE,EAAiBiN,EAAoBjN,eACrCxqE,EAAWy3E,EAAoBz3E,SAC/B03E,EAAoBD,EAAoBC,kBACxCC,EAAoBF,EAAoBE,kBAC5CL,EAAe5nG,OAAOnK,KAAK,CACzBg6B,SAAUA,EACVirE,eAAgBA,EAChBxqE,SAAUA,IAEZ,IAAIupD,EAAQ1lE,EAAMrd,KAAK0nE,QAAQqb,OAAS,CACtC/iF,KAAMqd,EAAMrd,KAAK0nE,QAAQ1nE,MAEvB+B,EAAS,CACXlD,KAAMA,EAENmB,KAAM,IAAInD,WAAWkmF,EAAM/iF,KAAM+iF,EAAM/iF,KAAKqJ,WAAY05E,EAAM/iF,KAAKsJ,YACnEyqE,YAAa,IAAIl3E,WAAWk3E,EAAY/zE,KAAM+zE,EAAY1qE,WAAY0qE,EAAYzqE,kBAGnD,IAAtB4nG,IACTnvG,EAAOmvG,kBAAoBA,QAGI,IAAtBC,IACTpvG,EAAOovG,kBAAoBA,GAG7B/zG,EAAS2E,EACX,CA+CMqvG,CAAY/zF,EAAOyzF,EAAgBZ,GAGX,cAAtB7yF,EAAMrd,KAAKquG,QACb8B,EAAY9yF,EAAMrd,KAAK2uG,WAGC,YAAtBtxF,EAAMrd,KAAKquG,QAzCE,SAAwBhxF,EAAOyzF,GAClDA,EAAexC,QAAUjxF,EAAMrd,KAAKsuG,OACtC,CAwCM+C,CAAeh0F,EAAOyzF,GAGE,oBAAtBzzF,EAAMrd,KAAKquG,QACb+B,EAAkB/yF,EAAMrd,KAAK4uG,iBAGL,oBAAtBvxF,EAAMrd,KAAKquG,QACbgC,EAAkBhzF,EAAMrd,KAAK00E,iBAGL,2BAAtBr3D,EAAMrd,KAAKquG,QACbiC,EAAyBjzF,EAAMrd,KAAKwuG,wBAGZ,2BAAtBnxF,EAAMrd,KAAKquG,QACbkC,EAAyBlzF,EAAMrd,KAAK0uG,wBAGZ,aAAtBrxF,EAAMrd,KAAKquG,QACbmC,EAAM,CAACnzF,EAAMrd,KAAKslG,UAAWjoF,EAAMrd,KAAKslG,SAASnN,cAGzB,YAAtB96E,EAAMrd,KAAKquG,QACboC,EAAWpzF,EAAMrd,KAAK8jG,SAGE,kBAAtBzmF,EAAMrd,KAAKquG,SACb0C,GAA4B,EAC5BJ,KAGwB,QAAtBtzF,EAAMrd,KAAKquG,QACbuC,EAAgBvzF,EAAMrd,KAAKgU,KAIL,eAApBqJ,EAAMrd,KAAKnB,OAQXkyG,IAIJpQ,EAAWkP,UAAY,KAtGT,SAAqBjmG,GACrC,IAAIknG,EAAiBlnG,EAAKknG,eACtB1zG,EAAWwM,EAAKxM,SAGpB0zG,EAAe5nG,OAAS,GAGxB9L,EAAS0zG,EACX,CA8FIQ,CAAY,CACVR,eAAgBA,EAChB1zG,SAAUszG,IAIZa,GAAQ5Q,KAEV,EAIIsP,GACFtP,EAAWyN,YAAY,CACrBC,OAAQ,sBACRuB,YAAaK,IAKbxwG,MAAMyC,QAAQs/F,IAChBb,EAAWyN,YAAY,CACrBC,OAAQ,gBACR7M,gBAAiBA,SAIA,IAAV2B,GACTxC,EAAWyN,YAAY,CACrBC,OAAQ,WACRlL,MAAOA,IAIP/5F,EAAME,WAAY,CACpB,IAAIJ,EAASE,aAAiBJ,YAAcI,EAAQA,EAAMF,OACtDG,EAAaD,aAAiBJ,YAAc,EAAII,EAAMC,WAC1Ds3F,EAAWyN,YAAY,CACrBC,OAAQ,OAIRruG,KAAMkJ,EAGNG,WAAYA,EACZC,WAAYF,EAAME,YACjB,CAACJ,GACN,CAEI2nG,GACFlQ,EAAWyN,YAAY,CACrBC,OAAQ,gBAMZ1N,EAAWyN,YAAY,CACrBC,OAAQ,SAEZ,EAEIkD,GAAU,SAAiB5Q,GAC7BA,EAAWqQ,gBAAkB,KAEzBrQ,EAAW6Q,cAAc10G,SAC3B6jG,EAAWqQ,gBAAkBrQ,EAAW6Q,cAAc1gG,QAEZ,mBAA/B6vF,EAAWqQ,gBACpBrQ,EAAWqQ,kBAEXhB,GAAgBrP,EAAWqQ,iBAGjC,EAEIS,GAAgB,SAAuB9Q,EAAY0N,GACrD1N,EAAWyN,YAAY,CACrBC,OAAQA,IAEVkD,GAAQ5Q,EACV,EAEI+Q,GAAgB,SAAuBrD,EAAQ1N,GACjD,IAAKA,EAAWqQ,gBAGd,OAFArQ,EAAWqQ,gBAAkB3C,OAC7BoD,GAAc9Q,EAAY0N,GAI5B1N,EAAW6Q,cAAczyG,KAAK0yG,GAAc7sF,KAAK,KAAM+7E,EAAY0N,GACrE,EAUIsD,GAAW,SAAkBtvG,GAC/B,IAAKA,EAAQs+F,WAAWqQ,gBAGtB,OAFA3uG,EAAQs+F,WAAWqQ,gBAAkB3uG,OACrC2tG,GAAgB3tG,GAIlBA,EAAQs+F,WAAW6Q,cAAczyG,KAAKsD,EACxC,EAqBIuvG,GArCQ,SAAejR,GACzB+Q,GAAc,QAAS/Q,EACzB,EAmCIiR,GAnBmB,SAA0BvvG,GAC/C,IAAIs+F,EAAa,IAAIoP,GACrBpP,EAAWqQ,gBAAkB,KAC7BrQ,EAAW6Q,cAAgB,GAC3B,IAAIK,EAAOlR,EAAW7iB,UAYtB,OAVA6iB,EAAW7iB,UAAY,WAGrB,OAFA6iB,EAAWqQ,gBAAkB,KAC7BrQ,EAAW6Q,cAAc10G,OAAS,EAC3B+0G,EAAKtyG,KAAKohG,EACnB,EAEAA,EAAWyN,YAAY,CACrBC,OAAQ,OACRhsG,QAASA,IAEJs+F,CACT,EASImR,GAAiB,SAAwBzvG,GAC3C,IAAIs+F,EAAat+F,EAAQs+F,WACrBoR,EAAY1vG,EAAQ0vG,WAAa1vG,EAAQgsG,OACzCjxG,EAAWiF,EAAQjF,SAEnBm0B,GAAU,aAAS,CAAC,EAAGlvB,EAAS,CAClC0vG,UAAW,KACXpR,WAAY,KACZvjG,SAAU,OAuBZ,GAFAujG,EAAW78E,iBAAiB,WAlBJ,SAASkuF,EAAkB30F,GAC7CA,EAAMrd,KAAKquG,SAAW0D,IAI1BpR,EAAWt/E,oBAAoB,UAAW2wF,GAEtC30F,EAAMrd,KAAKA,OACbqd,EAAMrd,KAAKA,KAAO,IAAInD,WAAWwgB,EAAMrd,KAAKA,KAAMqC,EAAQgH,YAAc,EAAGhH,EAAQiH,YAAc+T,EAAMrd,KAAKA,KAAKsJ,YAE7GjH,EAAQrC,OACVqC,EAAQrC,KAAOqd,EAAMrd,KAAKA,OAI9B5C,EAASigB,EAAMrd,MACjB,IAIIqC,EAAQrC,KAAM,CAChB,IAAIiyG,EAAgB5vG,EAAQrC,gBAAgBgJ,YAC5CuoB,EAAQloB,WAAa4oG,EAAgB,EAAI5vG,EAAQrC,KAAKqJ,WACtDkoB,EAAQjoB,WAAajH,EAAQrC,KAAKsJ,WAClC,IAAI4oG,EAAY,CAACD,EAAgB5vG,EAAQrC,KAAOqC,EAAQrC,KAAKkJ,QAC7Dy3F,EAAWyN,YAAY78E,EAAS2gF,EAClC,MACEvR,EAAWyN,YAAY78E,EAE3B,EAEI4gF,GACO,EADPA,IAEQ,IAFRA,IAGQ,IAQRC,GAAW,SAAkBC,GAC/BA,EAAWh1G,SAAQ,SAAUwF,GAC3BA,EAAI2C,OACN,GACF,EA+CI8sG,GAAe,SAAsBv9F,EAAO0jD,GAC9C,OAAIA,EAAQsa,SACH,CACLhvE,OAAQ00D,EAAQ10D,OAChBwtB,QAAS,iCAAmCknC,EAAQr2D,IACpDqD,KAAM0sG,GACNtvG,IAAK41D,GAILA,EAAQ30D,QACH,CACLC,OAAQ00D,EAAQ10D,OAChBwtB,QAAS,+BAAiCknC,EAAQr2D,IAClDqD,KAAM0sG,GACNtvG,IAAK41D,GAIL1jD,EACK,CACLhR,OAAQ00D,EAAQ10D,OAChBwtB,QAAS,+BAAiCknC,EAAQr2D,IAClDqD,KAAM0sG,GACNtvG,IAAK41D,GAIoB,gBAAzBA,EAAQ11D,cAAkE,IAAhC01D,EAAQn4D,SAASgJ,WACtD,CACLvF,OAAQ00D,EAAQ10D,OAChBwtB,QAAS,8BAAgCknC,EAAQr2D,IACjDqD,KAAM0sG,GACNtvG,IAAK41D,GAIF,IACT,EAaI85C,GAAoB,SAA2B7qC,EAAS8qC,EAASC,GACnE,OAAO,SAAU19F,EAAO0jD,GACtB,IAAIn4D,EAAWm4D,EAAQn4D,SACnBoyG,EAAWJ,GAAav9F,EAAO0jD,GAEnC,GAAIi6C,EACF,OAAOD,EAAmBC,EAAUhrC,GAGtC,GAA4B,KAAxBpnE,EAASgJ,WACX,OAAOmpG,EAAmB,CACxB1uG,OAAQ00D,EAAQ10D,OAChBwtB,QAAS,2BAA6BknC,EAAQr2D,IAC9CqD,KAAM0sG,GACNtvG,IAAK41D,GACJiP,GAML,IAHA,IAAIj8D,EAAO,IAAIw1E,SAAS3gF,GACpB8I,EAAQ,IAAIupG,YAAY,CAAClnG,EAAK21E,UAAU,GAAI31E,EAAK21E,UAAU,GAAI31E,EAAK21E,UAAU,GAAI31E,EAAK21E,UAAU,MAE5FrkF,EAAI,EAAGA,EAAIy1G,EAAQ11G,OAAQC,IAClCy1G,EAAQz1G,GAAGqM,MAAQA,EAGrB,OAAOqpG,EAAmB,KAAM/qC,EAClC,CACF,EAEIkrC,GAAmB,SAA0BlrC,EAASmrC,GACxD,IAAIh0G,EAAOsU,GAAwBu0D,EAAQt/D,IAAIgB,OAG/C,GAAa,QAATvK,EAAgB,CAClB,IAAIuD,EAAMslE,EAAQt/D,IAAI8iE,aAAexD,EAAQt/D,IAAIhG,IACjD,OAAOywG,EAAU,CACfp5B,UAAU,EACVloD,QAAS,sBAAwB1yB,GAAQ,WAAa,iDAAmDuD,EACzGqD,KAAM0sG,IAEV,CAEAL,GAAe,CACbzD,OAAQ,iBACRruG,KAAM0nE,EAAQt/D,IAAIgB,MAClBu3F,WAAYj5B,EAAQi5B,WACpBvjG,SAAU,SAAkBwM,GAC1B,IAAIqsB,EAASrsB,EAAKqsB,OACdj2B,EAAO4J,EAAK5J,KAiBhB,OAfA0nE,EAAQt/D,IAAIgB,MAAQpJ,EACpBi2B,EAAO54B,SAAQ,SAAU00B,GACvB21C,EAAQt/D,IAAI6tB,OAASyxC,EAAQt/D,IAAI6tB,QAAU,CAAC,EAExCyxC,EAAQt/D,IAAI6tB,OAAOlE,EAAMlzB,QAI7B6oE,EAAQt/D,IAAI6tB,OAAOlE,EAAMlzB,MAAQkzB,EAET,iBAAbA,EAAM/kB,IAAmB+kB,EAAM43E,YACxCjiC,EAAQt/D,IAAI8hG,WAAaxiC,EAAQt/D,IAAI8hG,YAAc,CAAC,EACpDxiC,EAAQt/D,IAAI8hG,WAAWn4E,EAAM/kB,IAAM+kB,EAAM43E,WAE7C,IACOkJ,EAAU,KACnB,GAEJ,EAqDIC,GAAwB,SAA+BlnG,GACzD,IAAI87D,EAAU97D,EAAM87D,QAChB+qC,EAAqB7mG,EAAM6mG,mBAC3B1vG,EAAe6I,EAAM7I,aACzB,OAAO,SAAUgS,EAAO0jD,GACtB,IAAIi6C,EAAWJ,GAAav9F,EAAO0jD,GAEnC,GAAIi6C,EACF,OAAOD,EAAmBC,EAAUhrC,GAGtC,IAAIqrC,EAKa,gBAAjBhwG,GAAmC01D,EAAQ31D,aAztSrB,SAA6BoI,GAGrD,IAFA,IAAIO,EAAO,IAAI5O,WAAW,IAAImM,YAAYkC,EAAOpO,SAExCC,EAAI,EAAGA,EAAImO,EAAOpO,OAAQC,IACjC0O,EAAK1O,GAAKmO,EAAOlO,WAAWD,GAG9B,OAAO0O,EAAKvC,MACd,CAitSiF8pG,CAAoBv6C,EAAQ31D,aAAakF,UAAU0/D,EAAQurC,iBAAmB,IAAjGx6C,EAAQn4D,SASlE,OARAonE,EAAQwrC,MApOU,SAAyBz6C,GAC7C,MAAO,CACLiU,UAAWjU,EAAQiU,UACnBC,cAAelU,EAAQkU,eAAiB,EACxCiG,cAAena,EAAQma,eAAiB,EAE5C,CA8NoBugC,CAAgB16C,GAE5BiP,EAAQzlE,IACVylE,EAAQ0rC,eAAiB,IAAIv2G,WAAWk2G,GAExCrrC,EAAQt+D,MAAQ,IAAIvM,WAAWk2G,GAG1BN,EAAmB,KAAM/qC,EAClC,CACF,EAEI2rC,GAAoB,SAA2BznC,GACjD,IAAIlE,EAAUkE,EAAMlE,QAChBt+D,EAAQwiE,EAAMxiE,MACdkqG,EAAc1nC,EAAM0nC,YACpBC,EAAe3nC,EAAM2nC,aACrBC,EAA2B5nC,EAAM4nC,yBACjCC,EAA2B7nC,EAAM6nC,yBACjCC,EAAQ9nC,EAAM8nC,MACdC,EAAa/nC,EAAM+nC,WACnB9C,EAAkBjlC,EAAMilC,gBACxB+C,EAAkBhoC,EAAMgoC,gBACxBC,EAASjoC,EAAMioC,OACfC,EAASloC,EAAMkoC,OACflD,EAAkBhlC,EAAMglC,gBACxBmD,EAAarsC,EAAQt/D,KAAOs/D,EAAQt/D,IAAI6tB,QAAU,CAAC,EACnD+9E,EAAU/7F,QAAQ87F,EAAWptG,OAASotG,EAAWrtG,OAIjDutG,EAAeV,EAAa3uF,KAAK,KAAM8iD,EAAS,QAAS,SACzDwsC,EAAaX,EAAa3uF,KAAK,KAAM8iD,EAAS,QAAS,OACvDysC,EAAeZ,EAAa3uF,KAAK,KAAM8iD,EAAS,QAAS,SACzD0sC,EAAab,EAAa3uF,KAAK,KAAM8iD,EAAS,QAAS,OA6E3DoqC,GAAe,CACbzD,OAAQ,UACR1N,WAAYj5B,EAAQi5B,WACpB3gG,KAAMoJ,EACN+lG,cAAeznC,EAAQynC,cACvB/xG,SAAU,SAAkB4C,GAC1B0nE,EAAQt+D,MAAQA,EAAQpJ,EAAKA,KAC7B,IAAIq0G,EAAcr0G,EAAK+B,OAEnBsyG,IACFf,EAAY5rC,EAAS,CACnBo9B,SAAUuP,EAAYvP,SACtBC,SAAUsP,EAAYtP,SACtBiP,QAASA,IAEXV,EAAc,KAEVe,EAAYvP,WAAakP,GAC3BC,EAAaI,EAAY9E,YAGvB8E,EAAYtP,UACdoP,EAAaE,EAAY/E,YAG3B2E,EAAe,KACfE,EAAe,MApGZxC,GAAS,CACdvoG,MAAOA,EACPu3F,WAAYj5B,EAAQi5B,WACpBsP,iBAAkBvoC,EAAQuoC,iBAC1BzO,gBAAiB95B,EAAQ85B,gBACzB2B,MAAO6Q,EACP9D,OAAQ,SAAgBnuG,GACtBA,EAAOlD,KAAuB,aAAhBkD,EAAOlD,KAAsB,QAAUkD,EAAOlD,KAC5Dg1G,EAAOnsC,EAAS3lE,EAClB,EACAouG,YAAa,SAAqBxB,GAC5B2E,IACEU,IACFrF,EAAUqF,SAAU,GAGtBV,EAAY5rC,EAASinC,GAEzB,EACAyB,kBAAmB,SAA2BxB,GAExCqF,QAAiD,IAA1BrF,EAAgB59E,QACzCijF,EAAarF,EAAgB59E,OAC7BijF,EAAe,MAIbC,QAA6C,IAAxBtF,EAAgB1gG,KACvCgmG,EAAWtF,EAAgB1gG,IAE/B,EACAmiG,kBAAmB,SAA2B37B,GAExCy/B,QAAiD,IAA1Bz/B,EAAgB1jD,QACzCmjF,EAAaz/B,EAAgB1jD,OAC7BmjF,EAAe,MAIbC,QAA6C,IAAxB1/B,EAAgBxmE,KACvCkmG,EAAW1/B,EAAgBxmE,IAE/B,EACAoiG,yBAA0B,SAAkC9B,GAC1DgF,EAAyBhF,EAC3B,EACA+B,yBAA0B,SAAkC7B,GAC1D+E,EAAyB/E,EAC3B,EACA8B,MAAO,SAAe8D,EAAWnc,GAC/Bub,EAAMhsC,EAAS4sC,EAAWnc,EAC5B,EACAsY,WAAY,SAAoB13E,GAC9B46E,EAAWjsC,EAAS,CAAC3uC,GACvB,EACA83E,gBAAiBA,EACjBF,gBAAiB,WACfiD,GACF,EACAhD,gBAAiBA,EACjBF,OAAQ,SAAgB3uG,GACjB+xG,IAIL/xG,EAAOlD,KAAuB,aAAhBkD,EAAOlD,KAAsB,QAAUkD,EAAOlD,KAC5Di1G,EAAO,KAAMpsC,EAAS3lE,GACxB,GAqCF,GAEJ,EAEIwyG,GAAqB,SAA4BC,GACnD,IAAI9sC,EAAU8sC,EAAM9sC,QAChBt+D,EAAQorG,EAAMprG,MACdkqG,EAAckB,EAAMlB,YACpBC,EAAeiB,EAAMjB,aACrBC,EAA2BgB,EAAMhB,yBACjCC,EAA2Be,EAAMf,yBACjCC,EAAQc,EAAMd,MACdC,EAAaa,EAAMb,WACnB9C,EAAkB2D,EAAM3D,gBACxB+C,EAAkBY,EAAMZ,gBACxBC,EAASW,EAAMX,OACfC,EAASU,EAAMV,OACflD,EAAkB4D,EAAM5D,gBACxB6D,EAAoB,IAAI53G,WAAWuM,GAMvC,GD9nyCoC,SAAkCA,GACtE,OAAOyE,GAAQzE,EAAO,CAAC,SAAStM,OAAS,CAC3C,CC4nyCM43G,CAAyBD,GAA7B,CACE/sC,EAAQitC,QAAS,EACjB,IAAI1+E,EAASyxC,EAAQt/D,IAAI6tB,OACrB04E,EAAY,CACdgG,QAAQ,EACR5P,WAAY9uE,EAAOvvB,MACnBo+F,WAAY7uE,EAAOtvB,OAIjBsvB,EAAOtvB,OAASsvB,EAAOtvB,MAAMQ,OAAgC,SAAvB8uB,EAAOtvB,MAAMQ,QACrDwnG,EAAUiG,WAAa3+E,EAAOtvB,MAAMQ,OAKlC8uB,EAAOvvB,OAASuvB,EAAOvvB,MAAMS,OAAgC,SAAvB8uB,EAAOvvB,MAAMS,QACrDwnG,EAAUkG,WAAa5+E,EAAOvvB,MAAMS,OAGlC8uB,EAAOvvB,OAASuvB,EAAOtvB,QACzBgoG,EAAUqF,SAAU,GAKtBV,EAAY5rC,EAASinC,GAOrB,IAAImG,EAAgB,SAAuB/7E,GAKzC86E,EAAOnsC,EAAS,CACd1nE,KAAMy0G,EACN51G,KAAM8vG,EAAU7J,WAAa6J,EAAUqF,QAAU,QAAU,UAGzDj7E,GAAYA,EAASj8B,QACvB62G,EAAWjsC,EAAS3uC,GAGtB+6E,EAAO,KAAMpsC,EAAS,CAAC,EACzB,EAEAoqC,GAAe,CACbzD,OAAQ,oBACRnE,WAAYxiC,EAAQt/D,IAAI8hG,WACxBlqG,KAAMy0G,EACN9T,WAAYj5B,EAAQi5B,WACpBvjG,SAAU,SAAkB23G,GAC1B,IAAI/0G,EAAO+0G,EAAM/0G,KACbkyB,EAAY6iF,EAAM7iF,UAEtB9oB,EAAQpJ,EAAKkJ,OACbw+D,EAAQt+D,MAAQqrG,EAAoBz0G,EAEhC2uG,EAAU7J,WAAa6J,EAAUqF,SACnCT,EAAa7rC,EAAS,QAAS,QAASx1C,GAGtCy8E,EAAU5J,UACZwO,EAAa7rC,EAAS,QAAS,QAASx1C,GAKrC+D,EAAOvvB,OAAU1G,EAAKsJ,YAAeo+D,EAAQi5B,WAKlDmR,GAAe,CACbzD,OAAQ,kBACR0D,UAAW,cACXpR,WAAYj5B,EAAQi5B,WACpB3gG,KAAMy0G,EACNvK,WAAYxiC,EAAQt/D,IAAI8hG,WACxB6E,SAAU,CAAC94E,EAAOvvB,MAAMsG,IACxB5P,SAAU,SAAkBm0B,GAE1BnoB,EAAQmoB,EAAQvxB,KAAKkJ,OACrBw+D,EAAQt+D,MAAQqrG,EAAoBljF,EAAQvxB,KAC5CuxB,EAAQ83E,KAAKhsG,SAAQ,SAAU2W,GAC7B48F,EAAgBtsC,GAAQsB,aAAa5xD,EAAK,CACxC0sE,OAAQ,qBAEZ,IACAo0B,EAAcvjF,EAAQwH,SACxB,IArBA+7E,GAuBJ,GAGJ,MAGA,GAAKptC,EAAQi5B,WAAb,CASA,QAJiC,IAAtBj5B,EAAQp/D,YACjBo/D,EAAQp/D,UAAY6K,GAAwBshG,IAGpB,OAAtB/sC,EAAQp/D,WAA4C,QAAtBo/D,EAAQp/D,UAMxC,OALAgrG,EAAY5rC,EAAS,CACnBo9B,UAAU,EACVC,UAAU,SAEZ+O,EAAO,KAAMpsC,EAAS,CAAC,GAKzB2rC,GAAkB,CAChB3rC,QAASA,EACTt+D,MAAOA,EACPkqG,YAAaA,EACbC,aAAcA,EACdC,yBAA0BA,EAC1BC,yBAA0BA,EAC1BC,MAAOA,EACPC,WAAYA,EACZ9C,gBAAiBA,EACjB+C,gBAAiBA,EACjBC,OAAQA,EACRC,OAAQA,EACRlD,gBAAiBA,GA7BnB,MAFEkD,EAAO,KAAMpsC,EAAS,CAAC,EAiC3B,EAEIstC,GAAU,SAAiBC,EAAO73G,GACpC,IAcI83G,EAdAloG,EAAKioG,EAAMjoG,GACX/K,EAAMgzG,EAAMhzG,IACZmxG,EAAiB6B,EAAM7B,eACvB+B,EAAmBF,EAAME,iBAU7BA,EAAiBrxF,iBAAiB,WARV,SAASsxF,EAAkB/3F,GACjD,GAAIA,EAAMrd,KAAKmW,SAAWnJ,EAAI,CAC5BmoG,EAAiB9zF,oBAAoB,UAAW+zF,GAChD,IAAIC,EAAYh4F,EAAMrd,KAAKq1G,UAC3Bj4G,EAAS,IAAIP,WAAWw4G,EAAUjsG,MAAOisG,EAAUhsG,WAAYgsG,EAAU/rG,YAC3E,CACF,IAME4rG,EADEjzG,EAAImH,MAAM/K,MACD4D,EAAImH,MAAM/K,QAEV,IAAIs0G,YAAYlzG,MAAMd,UAAUN,MAAMkB,KAAK0C,EAAImH,QAI5D+rG,EAAiB/G,YAAYx6B,GAA0B,CACrDz9D,OAAQnJ,EACRsoG,UAAWlC,EACXnxG,IAAKizG,EACLK,GAAItzG,EAAIszG,KACN,CAACnC,EAAelqG,OAAQgsG,EAAShsG,QACvC,EAgGIssG,GAAoB,SAA2BC,GACjD,IAAIpD,EAAaoD,EAAMpD,WACnB8C,EAAmBM,EAAMN,iBACzB7B,EAAcmC,EAAMnC,YACpBC,EAAekC,EAAMlC,aACrBC,EAA2BiC,EAAMjC,yBACjCC,EAA2BgC,EAAMhC,yBACjCC,EAAQ+B,EAAM/B,MACdC,EAAa8B,EAAM9B,WACnB9C,EAAkB4E,EAAM5E,gBACxB+C,EAAkB6B,EAAM7B,gBACxBC,EAAS4B,EAAM5B,OACfC,EAAS2B,EAAM3B,OACflD,EAAkB6E,EAAM7E,gBACxBnoC,EAAQ,EACRitC,GAAW,EACf,OAAO,SAAU3gG,EAAO2yD,GACtB,IAAIguC,EAAJ,CAIA,GAAI3gG,EAeF,OAdA2gG,GAAW,EAEXtD,GAASC,GAYFyB,EAAO/+F,EAAO2yD,GAKvB,IAFAe,GAAS,KAEK4pC,EAAWv1G,OAAQ,CAC/B,IAAI64G,EAAgB,WAClB,GAAIjuC,EAAQ0rC,eACV,OAjHW,SAAwBwC,GAC3C,IAAIT,EAAmBS,EAAMT,iBACzBztC,EAAUkuC,EAAMluC,QAChB4rC,EAAcsC,EAAMtC,YACpBC,EAAeqC,EAAMrC,aACrBC,EAA2BoC,EAAMpC,yBACjCC,EAA2BmC,EAAMnC,yBACjCC,EAAQkC,EAAMlC,MACdC,EAAaiC,EAAMjC,WACnB9C,EAAkB+E,EAAM/E,gBACxB+C,EAAkBgC,EAAMhC,gBACxBC,EAAS+B,EAAM/B,OACfC,EAAS8B,EAAM9B,OACflD,EAAkBgF,EAAMhF,gBAC5BoE,GAAQ,CACNhoG,GAAI06D,EAAQmuC,UACZ5zG,IAAKylE,EAAQzlE,IACbmxG,eAAgB1rC,EAAQ0rC,eACxB+B,iBAAkBA,IACjB,SAAUW,GACXpuC,EAAQt+D,MAAQ0sG,EAChBvB,GAAmB,CACjB7sC,QAASA,EACTt+D,MAAOs+D,EAAQt+D,MACfkqG,YAAaA,EACbC,aAAcA,EACdC,yBAA0BA,EAC1BC,yBAA0BA,EAC1BC,MAAOA,EACPC,WAAYA,EACZ9C,gBAAiBA,EACjB+C,gBAAiBA,EACjBC,OAAQA,EACRC,OAAQA,EACRlD,gBAAiBA,GAErB,GACF,CA4EiBmF,CAAe,CACpBZ,iBAAkBA,EAClBztC,QAASA,EACT4rC,YAAaA,EACbC,aAAcA,EACdC,yBAA0BA,EAC1BC,yBAA0BA,EAC1BC,MAAOA,EACPC,WAAYA,EACZ9C,gBAAiBA,EACjB+C,gBAAiBA,EACjBC,OAAQA,EACRC,OAAQA,EACRlD,gBAAiBA,IAKrB2D,GAAmB,CACjB7sC,QAASA,EACTt+D,MAAOs+D,EAAQt+D,MACfkqG,YAAaA,EACbC,aAAcA,EACdC,yBAA0BA,EAC1BC,yBAA0BA,EAC1BC,MAAOA,EACPC,WAAYA,EACZ9C,gBAAiBA,EACjB+C,gBAAiBA,EACjBC,OAAQA,EACRC,OAAQA,EACRlD,gBAAiBA,GAErB,EAKA,GAFAlpC,EAAQsuC,iBAAmBr1F,KAAKD,MAE5BgnD,EAAQt/D,KAAOs/D,EAAQt/D,IAAIgrG,iBAAmB1rC,EAAQt/D,IAAIgB,MAC5D,OAAO4rG,GAAQ,CACbG,iBAAkBA,EAIlBnoG,GAAI06D,EAAQmuC,UAAY,QACxBzC,eAAgB1rC,EAAQt/D,IAAIgrG,eAC5BnxG,IAAKylE,EAAQt/D,IAAInG,MAChB,SAAU6zG,GACXpuC,EAAQt/D,IAAIgB,MAAQ0sG,EACpBlD,GAAiBlrC,GAAS,SAAUuuC,GAClC,GAAIA,EAEF,OADA7D,GAASC,GACFyB,EAAOmC,EAAYvuC,GAG5BiuC,GACF,GACF,IAGFA,GACF,CAtFA,CAuFF,CACF,EAiDIO,GAAiB,SAAwBC,GAC3C,IAAIzuC,EAAUyuC,EAAOzuC,QACjB0uC,EAAaD,EAAOC,WAUxB,OATAD,EAAO7C,YACP6C,EAAO5C,aACP4C,EAAO3C,yBACP2C,EAAO1C,yBACP0C,EAAOzC,MACPyC,EAAOxC,WACPwC,EAAOtF,gBACPsF,EAAOvC,gBACPuC,EAAOtC,OACA,SAAUx2F,GAGf,IAFcA,EAAMrH,OAERlS,QAUZ,OANA4jE,EAAQwrC,MAAQ5uC,GAAQsB,aAAa8B,EAAQwrC,MAjzB1B,SAA0BmD,GAC/C,IAAI59C,EAAU49C,EAAcrgG,OAExBk9F,EAAQ,CACVxmC,UAAWv7D,IACXw7D,cAAe,EACfiG,cAJkBjyD,KAAKD,MAAQ+3C,EAAQoa,aAIP,GAOlC,OALAqgC,EAAMvmC,cAAgB0pC,EAAc5+B,OAIpCy7B,EAAMxmC,UAAYpiE,KAAKmW,MAAMyyF,EAAMvmC,cAAgBumC,EAAMtgC,cAAgB,EAAI,KACtEsgC,CACT,CAmyBwDoD,CAAiBj5F,KAEhEqqD,EAAQwrC,MAAMqD,sBAAwB7uC,EAAQwrC,MAAMvmC,gBACvDjF,EAAQwrC,MAAMqD,qBAAuB51F,KAAKD,OAGrC01F,EAAW/4F,EAAOqqD,EAC3B,CACF,EAuEI8uC,GAAsB,SAA6BC,GACrD,IAAI5zG,EAAM4zG,EAAO5zG,IACb6zG,EAAaD,EAAOC,WACpBvB,EAAmBsB,EAAOtB,iBAC1BztC,EAAU+uC,EAAO/uC,QACjBivC,EAAUF,EAAOE,QACjBP,EAAaK,EAAOL,WACpB9C,EAAcmD,EAAOnD,YACrBC,EAAekD,EAAOlD,aACtBC,EAA2BiD,EAAOjD,yBAClCC,EAA2BgD,EAAOhD,yBAClCC,EAAQ+C,EAAO/C,MACfC,EAAa8C,EAAO9C,WACpB9C,EAAkB4F,EAAO5F,gBACzB+C,EAAkB6C,EAAO7C,gBACzBC,EAAS4C,EAAO5C,OAChBC,EAAS2C,EAAO3C,OAChBlD,EAAkB6F,EAAO7F,gBACzByB,EAAa,GACbI,EAAqB+C,GAAkB,CACzCnD,WAAYA,EACZ8C,iBAAkBA,EAClB7B,YAAaA,EACbC,aAAcA,EACdC,yBAA0BA,EAC1BC,yBAA0BA,EAC1BC,MAAOA,EACPC,WAAYA,EACZ9C,gBAAiBA,EACjB+C,gBAAiBA,EACjBC,OAAQA,EACRC,OAAQA,EACRlD,gBAAiBA,IAGnB,GAAIlpC,EAAQzlE,MAAQylE,EAAQzlE,IAAImH,MAAO,CACrC,IAAIopG,EAAU,CAAC9qC,EAAQzlE,KAEnBylE,EAAQt/D,MAAQs/D,EAAQt/D,IAAIgB,OAASs+D,EAAQt/D,IAAInG,KAAOylE,EAAQt/D,IAAInG,IAAIipE,cAAgBxD,EAAQzlE,IAAIipE,aACtGsnC,EAAQzzG,KAAK2oE,EAAQt/D,IAAInG,KAG3B,IAKI20G,EAAS/zG,EALWyhE,GAAQsB,aAAa8wC,EAAY,CACvDt0G,IAAKslE,EAAQzlE,IAAIipE,YACjBnoE,aAAc,gBAESwvG,GAAkB7qC,EAAS8qC,EAASC,IAE7DJ,EAAWtzG,KAAK63G,EAClB,CAGA,GAAIlvC,EAAQt/D,MAAQs/D,EAAQt/D,IAAIgB,MAAO,CAGrC,GAFsBs+D,EAAQt/D,IAAInG,OAASylE,EAAQzlE,KAAOylE,EAAQzlE,IAAIipE,cAAgBxD,EAAQt/D,IAAInG,IAAIipE,aAEjF,CACnB,IAKI2rC,EAAYh0G,EALWyhE,GAAQsB,aAAa8wC,EAAY,CAC1Dt0G,IAAKslE,EAAQt/D,IAAInG,IAAIipE,YACrBnoE,aAAc,gBAEYwvG,GAAkB7qC,EAAS,CAACA,EAAQt/D,IAAInG,KAAMwwG,IAE1EJ,EAAWtzG,KAAK83G,EAClB,CAEA,IAAIC,EAAqBxyC,GAAQsB,aAAa8wC,EAAY,CACxDt0G,IAAKslE,EAAQt/D,IAAI8iE,YACjBnoE,aAAc,cACd1B,QAASiyE,GAAkB5L,EAAQt/D,OAEjC2uG,EA5yBwB,SAAmCl5C,GACjE,IAAI6J,EAAU7J,EAAM6J,QAChB+qC,EAAqB50C,EAAM40C,mBAC/B,OAAO,SAAU19F,EAAO0jD,GACtB,IAAIi6C,EAAWJ,GAAav9F,EAAO0jD,GAEnC,GAAIi6C,EACF,OAAOD,EAAmBC,EAAUhrC,GAGtC,IAAIt+D,EAAQ,IAAIvM,WAAW47D,EAAQn4D,UAGnC,GAAIonE,EAAQt/D,IAAInG,IAEd,OADAylE,EAAQt/D,IAAIgrG,eAAiBhqG,EACtBqpG,EAAmB,KAAM/qC,GAGlCA,EAAQt/D,IAAIgB,MAAQA,EACpBwpG,GAAiBlrC,GAAS,SAAUuuC,GAClC,GAAIA,EAGF,OAFAA,EAAWpzG,IAAM41D,EACjBw9C,EAAWlyG,OAAS00D,EAAQ10D,OACrB0uG,EAAmBwD,EAAYvuC,GAGxC+qC,EAAmB,KAAM/qC,EAC3B,GACF,CACF,CA+wBqCsvC,CAA0B,CACzDtvC,QAASA,EACT+qC,mBAAoBA,IAElBwE,EAAiBp0G,EAAIi0G,EAAoBC,GAC7C1E,EAAWtzG,KAAKk4G,EAClB,CAEA,IAAIC,EAAwB5yC,GAAQsB,aAAa8wC,EAAY,CAC3Dt0G,IAAKslE,EAAQn0B,MAAQm0B,EAAQn0B,KAAK23B,aAAexD,EAAQwD,YACzDnoE,aAAc,cACd1B,QAASiyE,GAAkB5L,KAOzByvC,EAAat0G,EAAIq0G,EALQpE,GAAsB,CACjDprC,QAASA,EACT+qC,mBAAoBA,EACpB1vG,aAAcm0G,EAAsBn0G,gBAGtCo0G,EAAWrzF,iBAAiB,WAAYoyF,GAAe,CACrDxuC,QAASA,EACT0uC,WAAYA,EACZ9C,YAAaA,EACbC,aAAcA,EACdC,yBAA0BA,EAC1BC,yBAA0BA,EAC1BC,MAAOA,EACPC,WAAYA,EACZ9C,gBAAiBA,EACjB+C,gBAAiBA,EACjBC,OAAQA,KAEVxB,EAAWtzG,KAAKo4G,GAGhB,IAAIC,EAAe,CAAC,EAOpB,OANA/E,EAAWh1G,SAAQ,SAAUg6G,GAC3BA,EAAUvzF,iBAAiB,UApPX,SAAuBwzF,GACzC,IAAIF,EAAeE,EAAOF,aACtBT,EAAUW,EAAOX,QACrB,OAAO,SAAUt5F,GACDA,EAAMrH,OAERlS,SAAW6yG,IAAYS,EAAaG,gBAC9CZ,IACAS,EAAaG,eAAgB,EAEjC,CACF,CAyO0CC,CAAc,CAClDJ,aAAcA,EACdT,QAASA,IAEb,IACO,WACL,OAAOvE,GAASC,EAClB,CACF,EAOIoF,GAAU/wC,GAAO,cAmBjBgxC,GAAS,SAAgBx6G,EAAQi9D,GACnC,IAAIw9C,EAAkBx9C,EAAM3gD,YAAc,CAAC,EAC3C,OAAOtc,GAAUA,EAAOM,aAAeN,EAAOM,YAAY4tE,OAASusC,EAAgBvsC,OAASluE,EAAOM,YAAY4tE,MAAMusC,EAAgBvsC,MACvI,EAuBIwsC,GAAkB,SAAyBC,GAC7C,IAAIlwG,EAAS,CAAC,EAiBd,OAhBAkwG,EAAUx6G,SAAQ,SAAUuM,GAC1B,IAAItM,EAAYsM,EAAKtM,UACjBuB,EAAO+K,EAAK/K,KACZoJ,EAAU2B,EAAK3B,QACnBN,EAAOrK,GAAaqK,EAAOrK,IAAc,GACzCqK,EAAOrK,GAAWyB,KAAKmI,EAAqB,GAAKrI,EAAOoJ,GAC1D,IACA2K,OAAOC,KAAKlL,GAAQtK,SAAQ,SAAUC,GACpC,GAAIqK,EAAOrK,GAAWR,OAAS,EAG7B,OAFA26G,GAAQ,YAAcn6G,EAAY,gCAAkCqK,EAAOrK,GAAW8d,KAAK,MAAQ,wGACnGzT,EAAOrK,GAAa,MAItBqK,EAAOrK,GAAaqK,EAAOrK,GAAW,EACxC,IACOqK,CACT,EAEImwG,GAAa,SAAoBC,GACnC,IAAItvC,EAAQ,EAUZ,OARIsvC,EAASpxG,OACX8hE,IAGEsvC,EAASrxG,OACX+hE,IAGKA,CACT,EAeIuvC,GAAoB,SAA2B96G,EAAQi9D,GACzD,IAAIw9C,EAAkBx9C,EAAM3gD,YAAc,CAAC,EACvCy+F,EAAYL,GAtFF,SAAmBz9C,GAGjC,IAAIw9C,EAAkBx9C,EAAM3gD,YAAc,CAAC,EAE3C,GAAIm+F,EAAgBnsC,OAClB,OAAO/jE,EAAYkwG,EAAgBnsC,OAEvC,CA8EkC0sC,CAAU/9C,IAAU,IAGpD,GAAIu9C,GAAOx6G,EAAQi9D,KAAW89C,EAAUtxG,QA1E5B,SAAiBzJ,EAAQi9D,GACrC,IAAKu9C,GAAOx6G,EAAQi9D,GAClB,OAAO,EAGT,IAAIw9C,EAAkBx9C,EAAM3gD,YAAc,CAAC,EACvC2+F,EAAaj7G,EAAOM,YAAY4tE,MAAMusC,EAAgBvsC,OAE1D,IAAK,IAAI8B,KAAWirC,EAKlB,IAAKA,EAAWjrC,GAAS9qE,MAAQ+1G,EAAWjrC,GAASrC,UACnD,OAAO,EAIX,OAAO,CACT,CAwDSmpC,CAAQ92G,EAAQi9D,GAAQ,CAI3B,IAAIi+C,EAAgBR,GP14zCK,SAA2B16G,EAAQm7G,GAChE,IAAKn7G,EAAOM,YAAY4tE,QAAUitC,EAChC,OAAO,KAGT,IAAIF,EAAaj7G,EAAOM,YAAY4tE,MAAMitC,GAE1C,IAAKF,EACH,OAAO,KAGT,IAAK,IAAItwG,KAAQswG,EAAY,CAC3B,IAAIG,EAAYH,EAAWtwG,GAE3B,GAAIywG,EAAUC,SAAWD,EAAUztC,UAEjC,OAAOpjE,EAAY6wG,EAAUztC,UAAU,GAAGrxD,WAAWgyD,OAEzD,CAEA,OAAO,IACT,COq3zC0CgtC,CAAkBt7G,EAAQy6G,EAAgBvsC,QAAU,IAEpFgtC,EAAczxG,QAChBsxG,EAAUtxG,MAAQyxG,EAAczxG,MAEpC,CAGF,OAAOsxG,CACT,EAEIQ,GAAQ/xC,GAAO,oBAEfgyC,GAAyB,SAAgCC,GAC3D,GAAKA,GAAmBA,EAAelxC,SAAvC,CAIA,IAAIA,EAAWkxC,EAAelxC,SAC9B,OAAOnkE,KAAKoB,UAAU,CACpBsI,GAAIy6D,EAASz6D,GACb0/D,UAAWisC,EAAejsC,UAC1BhwD,MAAOi8F,EAAej8F,MACtBD,OAAQk8F,EAAel8F,OACvB9U,OAAQ8/D,EAASjuD,YAAciuD,EAASjuD,WAAWgyD,QAAU,IAR/D,CAUF,EAcIotC,GAAuB,SAA8BriG,EAAIsiG,GAC3D,IAAKtiG,EACH,MAAO,GAGT,IAAIxU,EAAS,qBAA0BwU,GAEvC,OAAKxU,EAIEA,EAAO82G,GAHL,EAIX,EAUIC,GAAa,SAAoBl8G,EAAOm8G,GAC1C,IAAIC,EAAWp8G,EAAMyB,QACrBzB,EAAMyqD,MAAK,SAAUxqC,EAAMo3B,GACzB,IAAIglE,EAAMF,EAAOl8F,EAAMo3B,GAEvB,OAAY,IAARglE,EACKD,EAAS95G,QAAQ2d,GAAQm8F,EAAS95G,QAAQ+0C,GAG5CglE,CACT,GACF,EAaIC,GAA2B,SAAkCr8F,EAAMo3B,GACrE,IAAIklE,EACAC,EAaJ,OAXIv8F,EAAKrD,WAAWuxD,YAClBouC,EAAgBt8F,EAAKrD,WAAWuxD,WAGlCouC,EAAgBA,GAAiB,WAAgBnuC,UAE7C/2B,EAAMz6B,WAAWuxD,YACnBquC,EAAiBnlE,EAAMz6B,WAAWuxD,WAI7BouC,GADPC,EAAiBA,GAAkB,WAAgBpuC,UAErD,EAyDIquC,GAAiB,SAAwBn8G,EAAQo8G,EAAiBC,EAAa3nD,EAAc4nD,EAAkCC,GAEjI,GAAKv8G,EAAL,CAIA,IAAImF,EAAU,CACZqqE,UAAW4sC,EACX58F,MAAO68F,EACP98F,OAAQm1C,EACR4nD,iCAAkCA,GAEhC3uC,EAAY3tE,EAAO2tE,UAEnBa,GAASJ,YAAYpuE,KACvB2tE,EAAY4uC,EAAyBC,0BAGrCr3G,EAAQs3G,WAAY,GAItB,IAAIC,EAAqB/uC,EAAUziE,KAAI,SAAUq/D,GAC/C,IACI/qD,EAAQ+qD,EAASjuD,YAAciuD,EAASjuD,WAAWqgG,YAAcpyC,EAASjuD,WAAWqgG,WAAWn9F,MAChGD,EAASgrD,EAASjuD,YAAciuD,EAASjuD,WAAWqgG,YAAcpyC,EAASjuD,WAAWqgG,WAAWp9F,OAGrG,MAAO,CACLiwD,UAHUjF,EAASjuD,YAAciuD,EAASjuD,WAAWuxD,WAC9B,WAAgBC,UAGvCtuD,MAAOA,EACPD,OAAQA,EACRgrD,SAAUA,EAEd,IACAqxC,GAAWc,GAAoB,SAAU/8F,EAAMo3B,GAC7C,OAAOp3B,EAAK6vD,UAAYz4B,EAAMy4B,SAChC,IAQA,IAAIotC,GALJF,EAAqBA,EAAmB9mG,QAAO,SAAUinG,GACvD,OAAQruC,GAASjB,eAAesvC,EAAItyC,SACtC,KAG6C30D,QAAO,SAAUinG,GAC5D,OAAOruC,GAAShB,UAAUqvC,EAAItyC,SAChC,IAEKqyC,EAAoBh9G,SAIvBg9G,EAAsBF,EAAmB9mG,QAAO,SAAUinG,GACxD,OAAQruC,GAASY,WAAWytC,EAAItyC,SAClC,KAKF,IAAIuyC,EAAwBF,EAAoBhnG,QAAO,SAAUinG,GAC/D,OAAOA,EAAIrtC,UAAY4P,GAAOM,mBAAqB08B,CACrD,IACIW,EAA+BD,EAAsBA,EAAsBl9G,OAAS,GAGpFo9G,EAAmBF,EAAsBlnG,QAAO,SAAUinG,GAC5D,OAAOA,EAAIrtC,YAAcutC,EAA6BvtC,SACxD,IAAG,GAEH,IAAyC,IAArC8sC,EAA4C,CAC9C,IAAIW,EAAaD,GAAoBJ,EAAoB,IAAMF,EAAmB,GAElF,GAAIO,GAAcA,EAAW1yC,SAAU,CACrC,IAAI5oE,EAAO,qBAWX,OATIq7G,IACFr7G,EAAO,oBAGLi7G,EAAoB,KACtBj7G,EAAO,uBAGT45G,GAAM,YAAcC,GAAuByB,GAAc,UAAYt7G,EAAO,gBAAiBwD,GACtF83G,EAAW1yC,QACpB,CAGA,OADAgxC,GAAM,2CAA4Cp2G,GAC3C,IACT,CAGA,IAAI+3G,EAAiBJ,EAAsBlnG,QAAO,SAAUinG,GAC1D,OAAOA,EAAIr9F,OAASq9F,EAAIt9F,MAC1B,IAEAq8F,GAAWsB,GAAgB,SAAUv9F,EAAMo3B,GACzC,OAAOp3B,EAAKH,MAAQu3B,EAAMv3B,KAC5B,IAEA,IAAI29F,EAAwBD,EAAetnG,QAAO,SAAUinG,GAC1D,OAAOA,EAAIr9F,QAAU68F,GAAeQ,EAAIt9F,SAAWm1C,CACrD,IACAqoD,EAA+BI,EAAsBA,EAAsBv9G,OAAS,GAEpF,IAGIw9G,EACAC,EACAC,EAmBAC,EAxBAC,EAAoBL,EAAsBvnG,QAAO,SAAUinG,GAC7D,OAAOA,EAAIrtC,YAAcutC,EAA6BvtC,SACxD,IAAG,GA0BH,GApBKguC,IAKHH,GAJAD,EAAwBF,EAAetnG,QAAO,SAAUinG,GACtD,OAAOA,EAAIr9F,MAAQ68F,GAAeQ,EAAIt9F,OAASm1C,CACjD,KAEkD9+C,QAAO,SAAUinG,GACjE,OAAOA,EAAIr9F,QAAU49F,EAAsB,GAAG59F,OAASq9F,EAAIt9F,SAAW69F,EAAsB,GAAG79F,MACjG,IAGAw9F,EAA+BM,EAA0BA,EAA0Bz9G,OAAS,GAC5F09G,EAAuBD,EAA0BznG,QAAO,SAAUinG,GAChE,OAAOA,EAAIrtC,YAAcutC,EAA6BvtC,SACxD,IAAG,IAOD+sC,EAAyBkB,mCAAoC,CAE/D,IAAIC,EAAqBR,EAAehyG,KAAI,SAAU2xG,GAEpD,OADAA,EAAIc,UAAYvwG,KAAKC,IAAIwvG,EAAIr9F,MAAQ68F,GAAejvG,KAAKC,IAAIwvG,EAAIt9F,OAASm1C,GACnEmoD,CACT,IAEAjB,GAAW8B,GAAoB,SAAU/9F,EAAMo3B,GAE7C,OAAIp3B,EAAKg+F,YAAc5mE,EAAM4mE,UACpB5mE,EAAMy4B,UAAY7vD,EAAK6vD,UAGzB7vD,EAAKg+F,UAAY5mE,EAAM4mE,SAChC,IACAJ,EAAoBG,EAAmB,EACzC,CAGA,IAAIE,EAAYL,GAAqBD,GAAwBE,GAAqBR,GAAoBJ,EAAoB,IAAMF,EAAmB,GAEnJ,GAAIkB,GAAaA,EAAUrzC,SAAU,CACnC,IAAIszC,EAAQ,qBAeZ,OAbIN,EACFM,EAAQ,oBACCP,EACTO,EAAQ,uBACCL,EACTK,EAAQ,oBACCb,EACTa,EAAQ,mBACCjB,EAAoB,KAC7BiB,EAAQ,uBAGVtC,GAAM,YAAcC,GAAuBoC,GAAa,UAAYC,EAAQ,gBAAiB14G,GACtFy4G,EAAUrzC,QACnB,CAGA,OADAgxC,GAAM,2CAA4Cp2G,GAC3C,IA3KP,CA4KF,EAaI24G,GAAwB,WAC1B,IAAIC,EAAaz8G,KAAK08G,qBAAsB,sBAAiC,EAC7E,OAAO7B,GAAe76G,KAAKqsE,UAAU3tE,OAAQsB,KAAK28G,gBAAiB7tF,SAASsrF,GAAqBp6G,KAAK88B,MAAM/kB,KAAM,SAAU,IAAM0kG,EAAY3tF,SAASsrF,GAAqBp6G,KAAK88B,MAAM/kB,KAAM,UAAW,IAAM0kG,EAAYz8G,KAAKg7G,iCAAkCh7G,KAAK48G,0BACxQ,EAqUIC,GAAc,SAAqBx9C,GACrC,IAAIy9C,EAAmBz9C,EAAMy9C,iBACzBC,EAAgB19C,EAAM09C,cACtB5L,EAAkB9xC,EAAM8xC,gBACxB6L,EAAgB39C,EAAM29C,cAE1B,GAAKD,EAAL,CAIA,IAAIE,EAAM,mBAA0B,WAChCC,EAAgBJ,EAAiBK,eAErC,GAAKD,IAILH,EAAcl+G,SAAQ,SAAUm8B,GAC9B,IAAIwW,EAAOxW,EAASyqE,QAAU0L,IAKV,iBAAT3/D,GAAqB,UAAeA,IAASA,EAAO,IAAOA,EAAO7+B,KAI7EqoB,EAAS+sD,OAAOlpF,SAAQ,SAAUyoF,GAChC,IAAI7zD,EAAM,IAAIwpF,EAAIzrE,EAAMA,EAAM81C,EAAM5kF,OAAS4kF,EAAM5hF,KAAO4hF,EAAM9lF,MAAQ,IACxEiyB,EAAI6zD,MAAQA,EACZ7zD,EAAI/wB,MAAQ4kF,EAhEI,SAAyB7zD,GAC7Crf,OAAO4pB,iBAAiBvK,EAAI6zD,MAAO,CACjC94E,GAAI,CACF8T,IAAK,WAEH,OADAwjD,GAAQtwD,IAAIc,KAAK,0DACVmd,EAAI/wB,MAAMe,GACnB,GAEFf,MAAO,CACL4f,IAAK,WAEH,OADAwjD,GAAQtwD,IAAIc,KAAK,8DACVmd,EAAI/wB,MAAMlB,IACnB,GAEFi4F,YAAa,CACXn3E,IAAK,WAEH,OADAwjD,GAAQtwD,IAAIc,KAAK,oEACVmd,EAAI/wB,MAAMlB,IACnB,IAGN,CA4CM47G,CAAgB3pF,GAChBypF,EAAc7oF,OAAOZ,EACvB,GACF,IAEKypF,EAAc1pF,MAAS0pF,EAAc1pF,KAAKl1B,QAA/C,CAWA,IAJA,IAAIk1B,EAAO0pF,EAAc1pF,KACrB6pF,EAAY,GAGP9+G,EAAI,EAAGA,EAAIi1B,EAAKl1B,OAAQC,IAC3Bi1B,EAAKj1B,IACP8+G,EAAU98G,KAAKizB,EAAKj1B,IAKxB,IAAI++G,EAAyBD,EAAU96G,QAAO,SAAU6E,EAAKqsB,GAC3D,IAAI8pF,EAAWn2G,EAAIqsB,EAAIC,YAAc,GAGrC,OAFA6pF,EAASh9G,KAAKkzB,GACdrsB,EAAIqsB,EAAIC,WAAa6pF,EACdn2G,CACT,GAAG,CAAC,GAEAo2G,EAAmBppG,OAAOC,KAAKipG,GAAwBz0D,MAAK,SAAUlhD,EAAGC,GAC3E,OAAOoB,OAAOrB,GAAKqB,OAAOpB,EAC5B,IAEA41G,EAAiB3+G,SAAQ,SAAU60B,EAAWy4D,GAC5C,IAAIsxB,EAAWH,EAAuB5pF,GAClCgqF,EAAW10G,OAAOw0G,EAAiBrxB,EAAM,KAAO6wB,EAEpDS,EAAS5+G,SAAQ,SAAU40B,GACzBA,EAAIE,QAAU+pF,CAChB,GACF,GAlCA,CA9BA,CAiEF,EAgCIC,GAAsB,SAA6BnrF,EAAO9iB,EAAK6jB,GACjE,IAAIh1B,EACAk1B,EAEJ,GAAKF,GAIAA,EAAMC,KAMX,IAFAj1B,EAAIg1B,EAAMC,KAAKl1B,OAERC,MACLk1B,EAAMF,EAAMC,KAAKj1B,IAETm1B,WAAalB,GAASiB,EAAIE,SAAWjkB,GAC3C6jB,EAAMkL,UAAUhL,EAGtB,EA+OImqF,GAAS,SAAgBpvF,GAC3B,MAAsB,iBAARA,GAAoBk+E,SAASl+E,EAC7C,EAKIqvF,GAAqC,EAAI,GA0DzCC,GAAoB,SAA2B3O,GACjD,IAAI4O,EAAiB5O,EAAY4O,eAC7BnrF,EAAWu8E,EAAYv8E,SACvBs2C,EAAUimC,EAAYjmC,QACtBn0B,EAAOo6D,EAAYp6D,KACnBipE,EAAwB7O,EAAYlmC,SACpCmnB,EAAM4tB,EAAsBlzC,cAC5Bt8D,EAAKwvG,EAAsBxvG,GAC3ByvG,EAAyBD,EAAsBz0C,SAC/CA,OAAsC,IAA3B00C,EAAoC,GAAKA,EACpDx9G,EAAQ0uG,EAAY+O,WACpBv0C,EAAYwlC,EAAYxlC,UACxBw0C,EAAWhP,EAAYgP,SACvBC,EAAa70C,EAASjrE,OAAS,EAC/B+/G,EAAY,iCAEZlP,EAAYhiC,oBACdkxC,EAAY,wBAA0BlP,EAAYhiC,oBAAsB,IAC/DgiC,EAAYmP,gBACrBD,EAAY,2CAGVlP,EAAYoP,cACdF,GAAa,qBAAuBlP,EAAYoP,aAGlD,IAAIC,EAAoC,iBAAd70C,EACtBtgE,EAAO8lG,EAAYjmC,QAAQtlE,IAAM,UAAY,cAC7C66G,EAAqBD,EAAe10C,GAAkB,CACxDC,eAAgBb,IACb,EAAI,EACT,OAAO7/D,EAAO,MAAQ+mF,EAAM3vF,GAAS,KAAO2vF,EAAMguB,GAAc,KAAOI,EAAe,UAAY70C,EAAY,IAAM80C,EAAqB,IAAM,IAAO,uBAAyBv1C,EAAQ12C,MAAQ,OAAS02C,EAAQx5D,IAAM,KAAQ8uG,EAAe,oBAAsBzpE,EAAKviB,MAAQ,OAASuiB,EAAKrlC,IAAM,IAAM,IAAO,oBAAsBquG,EAAhU10G,eAAyWupB,EAAzWvpB,eAA4Y80G,EAA5Y90G,kBAAkbg1G,EAAlbh1G,eAAsdmF,EAAK,GACpe,EAEIkwG,GAA6B,SAAoC5/G,GACnE,OAAOA,EAAY,YACrB,EA0KI6/G,GAA8B,SAAqCt/C,GACrE,IAAIu/C,EAA2Bv/C,EAAMu/C,yBACjCC,EAAkBx/C,EAAMw/C,gBACxBC,EAAkBz/C,EAAMy/C,gBACxBC,EAAa1/C,EAAM0/C,WACnBC,EAAgB3/C,EAAM2/C,cAE1B,GAAIH,IAAoBC,EACtB,OAAO,EAGT,GAAmB,UAAfC,EAAwB,CAC1B,IAAIE,EAAyBL,EAAyBM,mBAAmB,CACvE7+G,KAAM,SAMR,OAAQ4+G,GAA0BA,EAAuB51F,KAAOy1F,CAClE,CAMA,GAAmB,SAAfC,GAAyBC,EAAe,CAC1C,IAAIG,EAA6BP,EAAyBQ,sBAAsB,CAC9E/+G,KAAM,UAoBR,OAAI8+G,GAA8BA,EAA2B91F,KAAOy1F,CAKtE,CAEA,OAAO,CACT,EAkCIO,GAAiB,SAAwBjyG,GAC3C,IAAI6gE,EAAkB7gE,EAAM6gE,gBACxBqxC,EAAclyG,EAAMkyG,YAGxB,QAAKrxC,GAeEniE,KAAK6pC,MAAMs4B,GAAmBqxC,EAAcn3C,EACrD,EAEIo3C,GAAuC,SAA8CpQ,EAAaqQ,GAGpG,GAAmB,QAAfA,EACF,OAAO,KAGT,IA9DyCC,EACrCH,EA6DArxC,GA9DqCwxC,EA8DL,CAClCrP,gBAAiBjB,EAAYiB,gBAC7Bl6B,gBAAiBi5B,EAAYj5B,iBA/D3BopC,EAAc,EAClB,CAAC,QAAS,SAASzgH,SAAQ,SAAUwB,GACnC,IAAIq/G,EAAiBD,EAAYp/G,EAAO,cAExC,GAAKq/G,EAAL,CAIA,IAEI9sF,EAFAJ,EAAQktF,EAAeltF,MACvB9iB,EAAMgwG,EAAehwG,IAGJ,iBAAV8iB,GAAqC,iBAAR9iB,EACtCkjB,EAAW,WAAgBljB,GAAO,WAAgB8iB,GACxB,iBAAVA,GAAqC,iBAAR9iB,IAC7CkjB,EAAWljB,EAAM8iB,QAGK,IAAbI,GAA4BA,EAAW0sF,IAChDA,EAAc1sF,EAbhB,CAeF,IAG2B,iBAAhB0sF,GAA4BA,EAAct2G,OAAO25E,mBAC1D28B,EAAct2G,OAAOs2G,IAGhBA,GAyCP,IAAKrxC,EACH,OAAO,KAGT,IAAIvD,EAAiBykC,EAAYlmC,SAASyB,eACtCi1C,EAAsBN,GAAe,CACvCpxC,gBAAiBA,EACjBqxC,YAA8B,EAAjB50C,IAEXk1C,EAA2BP,GAAe,CAC5CpxC,gBAAiBA,EACjBqxC,YAAa50C,IAEXm1C,EAAwB,sBAAwB1Q,EAAY+O,WAApC,kBAA2E/O,EAAYlmC,SAASz6D,GAAhG,sBAAoIy/D,EAApI,kCAAiMkhC,EAAYv8E,SAA7M,+BAAgQ83C,EAAhQ,4PAE5B,OAAIi1C,GAAuBC,EAClB,CACLE,SAAUH,EAAsB,OAAS,OACzC5sF,QAAS8sF,GAIN,IACT,EAUIE,GAA6B,SAAUC,GAGzC,SAASD,EAAc7iF,EAAUr5B,GAC/B,IAAIijB,EAIJ,GAFAA,EAAQk5F,EAAqBj/G,KAAKf,OAASA,MAEtCk9B,EACH,MAAM,IAAI8oC,UAAU,wCAGtB,GAAoC,mBAAzB9oC,EAASiB,YAClB,MAAM,IAAI6nC,UAAU,mCAGtB,IAAK9oC,EAAS+iF,YACZ,MAAM,IAAIj6C,UAAU,4BAsJtB,OAlJAl/C,EAAMonD,UAAYhxC,EAASgxC,UAC3BpnD,EAAMo5F,WAAa,CACjB3+D,KAAM,EACN0oB,MAAO,GAETnjD,EAAMq5F,UAAYnyD,IAElBlnC,EAAMs5F,cAENt5F,EAAMo3F,WAAa,KACnBp3F,EAAM6iD,UAAY,KAElB7iD,EAAMu5F,WAAanjF,EAASojF,UAC5Bx5F,EAAMgwB,aAAe5Z,EAASiB,YAC9BrX,EAAMy5F,UAAYrjF,EAASqK,SAC3BzgB,EAAM05F,SAAWtjF,EAASq6B,QAC1BzwC,EAAM+a,UAAY3E,EAAStK,SAC3B9L,EAAM25F,aAAevjF,EAAS+iF,YAC9Bn5F,EAAM8pD,KAAO1zC,EAASozC,IACtBxpD,EAAM45F,YAAcxjF,EAAS6hF,WAC7Bj4F,EAAM65F,uBAAoB,EAC1B75F,EAAM85F,wBAAqB,EAC3B95F,EAAM+5F,sBAAwB3jF,EAAS4jF,qBACvCh6F,EAAMi6F,kBAAoB7jF,EAAS8jF,iBACnCl6F,EAAMm6F,YAAc/jF,EAASsiF,WAC7B14F,EAAMo6F,eAAiBhkF,EAASikF,cAChCr6F,EAAMs6F,kBAAoBlkF,EAAS4/E,iBACnCh2F,EAAMu6F,OAAS,OACfv6F,EAAMw6F,0BAA4BpkF,EAAS0hF,yBAC3C93F,EAAMy6F,8BAA+B,EACrCz6F,EAAMokE,kBAAoBhuD,EAASiuD,iBACnCrkE,EAAM06F,0BAA4BtkF,EAASukF,yBAC3C36F,EAAM46F,iBAAmBxkF,EAASuuD,gBAClC3kE,EAAMymD,iCAAmCrwC,EAASqwC,iCAElDzmD,EAAM66F,oBAAsB,KAC5B76F,EAAMyb,YAAS,EACfzb,EAAM86F,kBAAoB,EAC1B96F,EAAM+6F,gBAAkB,KACxB/6F,EAAMg7F,YAAc,KACpBh7F,EAAMi7F,iBAAmB,GACzBj7F,EAAMk7F,gBAAiB,EACvBl7F,EAAMm7F,2BAA4B,EAElCn7F,EAAMo7F,WAAa,GACnBp7F,EAAMq7F,aAAe,EACrBr7F,EAAMs7F,YAAct8C,GAAQ9rD,QAAQZ,YAAc,GAClD0N,EAAMu7F,mBAAqB,CACzBl6G,OAAO,EACPD,OAAO,GAET4e,EAAMw7F,2BAA6B,CACjCn6G,MAAO,KACPD,MAAO,MAET4e,EAAMy7F,WAAa,GAMnBz7F,EAAM07F,WAAa,GACnB17F,EAAM27F,eAAiB,CACrBld,IAAK,GACLD,QAAS,IAEXx+E,EAAM47F,kBAAmB,EACzB57F,EAAM67F,gCAAkC,KAExC77F,EAAM87F,qBAAuB,KAC7B97F,EAAM+7F,cAAgB,CAAC,EAEvB/7F,EAAMg8F,qBAAuB5lF,EAAS6lF,oBACtCj8F,EAAMk8F,UAAY,CAAC,EACnBl8F,EAAMm8F,WAAa/lF,EAASgmF,UAI5Bp8F,EAAMq8F,gBAAkBjmF,EAASkmF,eACjCt8F,EAAMu8F,WAAa,CACjB35C,aAAc,EACdl4B,KAAM,GAER1qB,EAAMw8F,YAAcx8F,EAAMy8F,oBAE1Bz8F,EAAM08F,uBAAyB,WAC7B,OAAO18F,EAAMlmB,QAAQ,iBACvB,EAEAkmB,EAAMq8F,gBAAgB/iH,GAAG,iBAAkB0mB,EAAM08F,wBAEjD18F,EAAM25F,aAAan7F,iBAAiB,cAAc,WAC3CwB,EAAM28F,mBACT38F,EAAM48F,QAAS,EAEnB,IAGA58F,EAAM68F,gBAAiB,EACvB78F,EAAMypD,QAAUrI,GAAO,iBAAmBphD,EAAM45F,YAAc,KAC9DtsG,OAAO2Q,gBAAe,aAAuB+B,GAAQ,QAAS,CAC5DxE,IAAK,WACH,OAAOtiB,KAAKqhH,MACd,EACAj/F,IAAK,SAAawhG,GACZA,IAAa5jH,KAAKqhH,SACpBrhH,KAAKuwE,QAAQvwE,KAAKqhH,OAAS,OAASuC,GACpC5jH,KAAKqhH,OAASuC,EACd5jH,KAAKY,QAAQ,eAEjB,IAGFkmB,EAAMo6F,eAAe9gH,GAAG,SAAS,WAC3B0mB,EAAM+8F,0BACR/8F,EAAMg9F,mBAEV,IAM0B,SAAtBh9F,EAAM45F,aACR55F,EAAMw6F,0BAA0BlhH,GAAG,yBAAyB,WACtD0mB,EAAM+8F,0BACR/8F,EAAMg9F,mBAEV,IAMwB,UAAtBh9F,EAAM45F,aACR55F,EAAMw6F,0BAA0BlhH,GAAG,kBAAkB,WAC/C0mB,EAAMi9F,wBACRj9F,EAAMk9F,oBAGJl9F,EAAM+8F,0BACR/8F,EAAMg9F,mBAEV,IAGKh9F,CACT,EAvKA,aAAei5F,EAAeC,GAyK9B,IAAI9/G,EAAS6/G,EAAc5/G,UAw7E3B,OAt7EAD,EAAOqjH,kBAAoB,WACzB,OAAOnQ,GAAmC,CACxCzO,OAAO,EACPjB,eAAgB1jG,KAAKoiH,YACrBl5B,wBAAwB,EACxBiC,iBAAkBnrF,KAAKkrF,kBACvBO,gBAAiBzrF,KAAK0hH,kBAE1B,EAQAxhH,EAAOkgH,YAAc,WACnBpgH,KAAKikH,sBAAwB,EAC7BjkH,KAAKkkH,cAAgB,EACrBlkH,KAAKmkH,qBAAuB,EAC5BnkH,KAAKokH,sBAAwB,EAC7BpkH,KAAKqkH,qBAAuB,EAC5BrkH,KAAKskH,sBAAwB,EAC7BtkH,KAAKukH,mBAAqB,EAC1BvkH,KAAKwkH,aAAe,CACtB,EAMAtkH,EAAOmB,QAAU,WACfrB,KAAKY,QAAQ,WACbZ,KAAKipB,MAAQ,WACbjpB,KAAK41B,QACL51B,KAAKykH,SAEDzkH,KAAKsjH,aACPtjH,KAAKsjH,YAAYhkC,YAGnBt/E,KAAKogH,cAEDpgH,KAAK2hH,qBACP,iBAAsB3hH,KAAK2hH,qBAGzB3hH,KAAKmjH,iBAAmBnjH,KAAKwjH,wBAC/BxjH,KAAKmjH,gBAAgB3iH,IAAI,iBAAkBR,KAAKwjH,wBAGlDxjH,KAAKQ,KACP,EAEAN,EAAOwkH,SAAW,SAAkB5tG,GAClC9W,KAAKgiH,gBAAkBlrG,EAEnBA,EACF9W,KAAKqiH,mBAAmBl6G,OAAQ,EAGhCnI,KAAKkhH,eAAeyD,YAAY,EAAG3kH,KAAK6hC,YAE5C,EAOA3hC,EAAO8G,MAAQ,WACM,YAAfhH,KAAKipB,OAQTjpB,KAAKykH,SAKLzkH,KAAKipB,MAAQ,QAGRjpB,KAAK01B,UACR11B,KAAK4kH,kBAhBD5kH,KAAK6hH,kBACP7hH,KAAK6hH,gBAAkB,KAiB7B,EAQA3hH,EAAOukH,OAAS,WACVzkH,KAAK6hH,iBAAmB7hH,KAAK6hH,gBAAgBgD,eAC/C7kH,KAAK6hH,gBAAgBgD,gBAIvB7kH,KAAK6hH,gBAAkB,KACvB7hH,KAAKuiH,WAAa,GAClBviH,KAAKwiH,WAAa,GAClBxiH,KAAKyiH,eAAeld,IAAM,GAC1BvlG,KAAKyiH,eAAend,QAAU,GAC9BtlG,KAAKshH,0BAA0BwD,2BAA2B9kH,KAAK0gH,aAC/D1gH,KAAK0iH,kBAAmB,EACxB,iBAAsB1iH,KAAK2iH,iCAC3B3iH,KAAK2iH,gCAAkC,IACzC,EAEAziH,EAAO6kH,eAAiB,SAAwB1N,GAG9C,MAAmB,cAAfr3G,KAAKipB,OAA0BjpB,KAAK6hH,iBAKnC7hH,KAAK6hH,iBAAmB7hH,KAAK6hH,gBAAgBxK,YAAcA,GAJ9Dr3G,KAAKipB,MAAQ,SACN,EAQX,EASA/oB,EAAOqW,MAAQ,SAAeyuG,GAO5B,YANsB,IAAXA,IACThlH,KAAKuwE,QAAQ,kBAAmBy0C,GAChChlH,KAAKuiC,OAASyiF,GAGhBhlH,KAAK6hH,gBAAkB,KAChB7hH,KAAKuiC,MACd,EAEAriC,EAAO+kH,YAAc,WACnBjlH,KAAK0jH,QAAS,EAEV1jH,KAAKsjH,aAEPlQ,GAAwBpzG,KAAKsjH,aAG/BtjH,KAAKkiH,WAAW5jH,OAAS,EACzB0B,KAAK41B,QACL51B,KAAKY,QAAQ,QACf,EASAV,EAAOglH,UAAY,WACjB,IAAI/U,EAAYnwG,KAAKmlH,gBAErB,IAAKnlH,KAAKkhH,iBAAmB/Q,EAC3B,OAAOrqC,GAAQrzC,mBAGjB,GAAyB,SAArBzyB,KAAK0gH,YAAwB,CAC/B,IAAIpa,EAAW6J,EAAU7J,SACrBC,EAAW4J,EAAU5J,SACrBiP,EAAUrF,EAAUqF,QAExB,GAAIjP,GAAYD,IAAatmG,KAAKgiH,iBAAmBxM,EACnD,OAAOx1G,KAAKkhH,eAAevuF,WAG7B,GAAI4zE,EACF,OAAOvmG,KAAKkhH,eAAekE,eAE/B,CAIA,OAAOplH,KAAKkhH,eAAemE,eAC7B,EAaAnlH,EAAOolH,kBAAoB,SAA2B17G,EAAKwY,GAKzD,QAJY,IAARA,IACFA,GAAM,IAGHxY,EACH,OAAO,KAGT,IAAI4E,EAAK8mE,GAAc1rE,GACnB27G,EAAYvlH,KAAK6iH,cAAcr0G,GAYnC,OAVI4T,IAAQmjG,GAAa37G,EAAIgB,QAC3B5K,KAAK6iH,cAAcr0G,GAAM+2G,EAAY,CACnC74C,YAAa9iE,EAAI8iE,YACjBqI,UAAWnrE,EAAImrE,UACfnqE,MAAOhB,EAAIgB,MACX6sB,OAAQ7tB,EAAI6tB,OACZi0E,WAAY9hG,EAAI8hG,aAIb6Z,GAAa37G,CACtB,EAaA1J,EAAOslH,WAAa,SAAoB/hH,EAAK2e,GAK3C,QAJY,IAARA,IACFA,GAAM,IAGH3e,EACH,OAAO,KAGT,IAAI+K,EAAKgnE,GAAa/xE,GAClBgiH,EAAYzlH,KAAKgjH,UAAUx0G,GAG3BxO,KAAK8iH,sBAAwB1gG,IAAQqjG,GAAahiH,EAAImH,QACxD5K,KAAKgjH,UAAUx0G,GAAMi3G,EAAY,CAC/B/4C,YAAajpE,EAAIipE,YACjB9hE,MAAOnH,EAAImH,QAIf,IAAIrH,EAAS,CACXmpE,aAAc+4C,GAAahiH,GAAKipE,aAOlC,OAJI+4C,IACFliH,EAAOqH,MAAQ66G,EAAU76G,OAGpBrH,CACT,EASArD,EAAOwlH,mBAAqB,WAC1B,OAAO1lH,KAAK2lH,YAAc3lH,KAAK01B,QACjC,EAMAx1B,EAAO6+B,KAAO,WAKZ,GAHA/+B,KAAK4kH,iBAGA5kH,KAAK2lH,UAKV,MAAmB,SAAf3lH,KAAKipB,OAAoBjpB,KAAK0lH,qBACzB1lH,KAAK4lH,cAKT5lH,KAAK0lH,sBAAuC,UAAf1lH,KAAKipB,OAAoC,SAAfjpB,KAAKipB,QAIjEjpB,KAAKipB,MAAQ,SACf,EAUA/oB,EAAO0lH,MAAQ,WAKb,OAJA5lH,KAAKipB,MAAQ,QAGbjpB,KAAK6lH,kBACE7lH,KAAK4kH,gBACd,EAQA1kH,EAAO+oE,SAAW,SAAkB68C,EAAajiH,GAK/C,QAJgB,IAAZA,IACFA,EAAU,CAAC,GAGRiiH,EAAL,CAIA,IAAIC,EAAc/lH,KAAK2lH,UACnBxW,EAAcnvG,KAAK6hH,gBACvB7hH,KAAK2lH,UAAYG,EACjB9lH,KAAK8hH,YAAcj+G,EAQA,SAAf7D,KAAKipB,QACP68F,EAAYE,SAAW,CACrBl7C,cAAeg7C,EAAYh7C,cAC3Bt5B,KAAM,GAUiB,SAArBxxC,KAAK0gH,aACP1gH,KAAKmjH,gBAAgB8C,2BAA2BH,IAIpD,IAAII,EAAQ,KAgBZ,GAdIH,IACEA,EAAYv3G,GACd03G,EAAQH,EAAYv3G,GACXu3G,EAAYniH,MACrBsiH,EAAQH,EAAYniH,MAIxB5D,KAAKuwE,QAAQ,oBAAsB21C,EAAQ,QAAUJ,EAAYt3G,IAAMs3G,EAAYliH,KAAO,KAG1F5D,KAAKY,QAAQ,kBAGM,SAAfZ,KAAKipB,OAAoBjpB,KAAK0lH,qBAChC,OAAO1lH,KAAK4lH,QAGd,IAAKG,GAAeA,EAAYniH,MAAQkiH,EAAYliH,IAoBlD,OAnBwB,OAApB5D,KAAKk+G,aASF4H,EAAY17C,QAGfpqE,KAAKmmH,eAFLnmH,KAAKomH,eAMTpmH,KAAK2gH,uBAAoB,OACzB3gH,KAAKY,QAAQ,kBAOf,IAAIylH,EAAoBP,EAAYh7C,cAAgBi7C,EAAYj7C,cAKhE,GAJA9qE,KAAKuwE,QAAQ,sBAAwB81C,EAAoB,KAIjC,OAApBrmH,KAAKk+G,WAKP,GAJAl+G,KAAKk+G,YAAcmI,EAIfrmH,KAAKk+G,WAAa,EACpBl+G,KAAKk+G,WAAa,KAClBl+G,KAAK2pE,UAAY,SACZ,CACL,IAAIT,EAAUlpE,KAAK2lH,UAAUp8C,SAASvpE,KAAKk+G,YAI3C,GAAIl+G,KAAK2pE,aAAeT,EAAQC,QAAUD,EAAQC,MAAM7qE,SAAW4qE,EAAQC,MAAMnpE,KAAK2pE,YAAa,CACjG,IAAIu0C,EAAal+G,KAAKk+G,WACtBl+G,KAAKuwE,QAAQ,oCAAsCvwE,KAAK2pE,UAAY,uBACpE3pE,KAAKomH,cAILpmH,KAAKk+G,WAAaA,CACpB,CACF,CAME/O,IACFA,EAAY+O,YAAcmI,EAEtBlX,EAAY+O,WAAa,GAC3B/O,EAAY+O,WAAa,KACzB/O,EAAYxlC,UAAY,OAKpBwlC,EAAY+O,YAAc,IAC5B/O,EAAYjmC,QAAU48C,EAAYv8C,SAAS4lC,EAAY+O,aAGrD/O,EAAYxlC,WAAa,GAAKwlC,EAAYjmC,QAAQC,QACpDgmC,EAAYp6D,KAAOo6D,EAAYjmC,QAAQC,MAAMgmC,EAAYxlC,cAK/D3pE,KAAKmjH,gBAAgBmD,uBAAuBP,EAAaD,EAjIzD,CAkIF,EASA5lH,EAAO01B,MAAQ,WACT51B,KAAK2hH,sBACP,iBAAsB3hH,KAAK2hH,qBAC3B3hH,KAAK2hH,oBAAsB,KAE/B,EAQAzhH,EAAOw1B,OAAS,WACd,OAAoC,OAA7B11B,KAAK2hH,mBACd,EASAzhH,EAAO2lH,gBAAkB,SAAyB1pC,GAChDn8E,KAAK0jH,QAAS,EACd1jH,KAAKqiH,mBAAqB,CACxBl6G,OAAO,EACPD,OAAO,GAETlI,KAAKomH,cAILpmH,KAAK2c,OAAO,EAAGhK,IAAUwpE,GAErBn8E,KAAKsjH,cACPtjH,KAAKsjH,YAAY1T,YAAY,CAC3BC,OAAQ,wBAGV7vG,KAAKsjH,YAAY1T,YAAY,CAC3BC,OAAQ,UAGd,EASA3vG,EAAOkmH,YAAc,WACnBpmH,KAAK2jH,gBAAiB,EACtB3jH,KAAKmmH,cACP,EAOAjmH,EAAOimH,aAAe,WAChBnmH,KAAKsjH,aAEPlQ,GAAwBpzG,KAAKsjH,aAG/BtjH,KAAKk+G,WAAa,KAClBl+G,KAAK2pE,UAAY,KACjB3pE,KAAKqjH,WAAa,KAClBrjH,KAAKiiH,2BAA4B,EACjCjiH,KAAKuiH,WAAa,GAClBviH,KAAKwiH,WAAa,GAClBxiH,KAAKyiH,eAAeld,IAAM,GAC1BvlG,KAAKyiH,eAAend,QAAU,GAC9BtlG,KAAKgH,QAEDhH,KAAKsjH,aACPtjH,KAAKsjH,YAAY1T,YAAY,CAC3BC,OAAQ,0BAGd,EAYA3vG,EAAOyc,OAAS,SAAgB6V,EAAO9iB,EAAKysE,EAAMoqC,GAmBhD,QAlBa,IAATpqC,IACFA,EAAO,WAAiB,QAGZ,IAAVoqC,IACFA,GAAQ,GAMN72G,IAAQiD,MACVjD,EAAM1P,KAAK6hC,aAMTnyB,GAAO8iB,EACTxyB,KAAKuwE,QAAQ,gEAIf,GAAKvwE,KAAKkhH,gBAAmBlhH,KAAKmlH,gBAAlC,CAOA,IAAIqB,EAAmB,EAEnBC,EAAiB,WAGM,MAFzBD,GAGErqC,GAEJ,EAsBA,IAAK,IAAI5oD,KApBLgzF,GAAUvmH,KAAKgiH,iBACjBwE,IACAxmH,KAAKkhH,eAAeyD,YAAYnyF,EAAO9iB,EAAK+2G,KAW1CF,GAA8B,SAArBvmH,KAAK0gH,eAChB1gH,KAAKkiH,WAp0CW,SAAyBx3G,EAAQ8nB,EAAO9iB,EAAKg3G,GAMjE,IALA,IAAIz3B,EAAWnjF,KAAKQ,MAAMkmB,EAAQk0F,GAAW,GAAAxY,kBACzC/a,EAASrnF,KAAKQ,MAAMoD,EAAMg3G,GAAW,GAAAxY,kBACrCyY,EAAgBj8G,EAAO7K,QACvBtB,EAAImM,EAAOpM,OAERC,OACDmM,EAAOnM,GAAGipF,KAAO2L,KAKvB,IAAW,IAAP50F,EAEF,OAAOooH,EAKT,IAFA,IAAI78E,EAAIvrC,EAAI,EAELurC,OACDp/B,EAAOo/B,GAAG09C,KAAOyH,KAQvB,OAFAnlD,EAAIh+B,KAAKE,IAAI89B,EAAG,GAChB68E,EAAchmH,OAAOmpC,EAAGvrC,EAAIurC,EAAI,GACzB68E,CACT,CAuyCwBC,CAAgB5mH,KAAKkiH,WAAY1vF,EAAO9iB,EAAK1P,KAAKmiH,cACpEqE,IACAxmH,KAAKkhH,eAAe2F,YAAYr0F,EAAO9iB,EAAK+2G,IAI5BzmH,KAAKohH,kBACrBzD,GAAoBnrF,EAAO9iB,EAAK1P,KAAKohH,kBAAkB7tF,IAGzDoqF,GAAoBnrF,EAAO9iB,EAAK1P,KAAK6gH,uBAErC4F,GAvCA,MAHEzmH,KAAKuwE,QAAQ,mEA2CjB,EAQArwE,EAAO0kH,eAAiB,WAClB5kH,KAAK2hH,qBACP,iBAAsB3hH,KAAK2hH,qBAG7B3hH,KAAK2hH,oBAAsB,eAAoB3hH,KAAK8mH,mBAAmB1gG,KAAKpmB,MAAO,EACrF,EASAE,EAAO4mH,mBAAqB,WACP,UAAf9mH,KAAKipB,OACPjpB,KAAK+mH,cAGH/mH,KAAK2hH,qBACP,iBAAsB3hH,KAAK2hH,qBAG7B3hH,KAAK2hH,oBAAsB,eAAoB3hH,KAAK8mH,mBAAmB1gG,KAAKpmB,MAhwCvD,IAiwCvB,EAYAE,EAAO6mH,YAAc,WAGnB,IAAI/mH,KAAKkhH,eAAe8F,WAAxB,CAKA,IAAI7X,EAAcnvG,KAAKinH,qBAElB9X,IAIsC,iBAAhCA,EAAYgC,kBACrBnxG,KAAKiiH,2BAA4B,EACjCjiH,KAAKshH,0BAA0BlC,sBAAsB,CACnD/+G,KAAML,KAAK0gH,YACX3iH,KAAMiC,KAAK4hH,iBACXv4F,GAAI8lF,EAAYgP,YAIpBn+G,KAAKknH,aAAa/X,GAlBlB,CAmBF,EAYAjvG,EAAOujH,eAAiB,SAAwBvF,EAAYj1C,EAAUU,GAapE,QAZmB,IAAfu0C,IACFA,EAAal+G,KAAKk+G,iBAGH,IAAbj1C,IACFA,EAAWjpE,KAAK2lH,gBAGA,IAAdh8C,IACFA,EAAY3pE,KAAK2pE,YAGdV,IAAajpE,KAAKygH,aACrB,OAAO,EAGT,IAAIv3C,EAAgC,iBAAfg1C,GAA2Bj1C,EAASM,SAAS20C,GAE9DiJ,EAAsBjJ,EAAa,IAAMj1C,EAASM,SAASjrE,OAE3D8oH,GAAoBl+C,IAAYA,EAAQC,OAASQ,EAAY,IAAMT,EAAQC,MAAM7qE,OAIrF,OAAO2qE,EAASmB,SAA4C,SAAjCpqE,KAAKygH,aAAar6G,YAAyB+gH,GAAuBC,CAC/F,EAQAlnH,EAAO+mH,mBAAqB,WAC1B,IAAIt0F,EAAW3yB,KAAKklH,YAChBtwE,EAAck0B,GAAgBn2C,IAAa,EAC3C00F,EAAet+C,GAAYp2C,EAAU3yB,KAAK82C,gBAC1CwwE,GAAatnH,KAAKqgH,cAAgBgH,GAAgB,EAClDE,EAAmBF,GAAgBrnH,KAAK+gH,oBACxCx3C,EAAWvpE,KAAK2lH,UAAUp8C,SAK9B,IAAKA,EAASjrE,QAAUgpH,GAAaC,EACnC,OAAO,KAGTvnH,KAAKqjH,WAAarjH,KAAKqjH,YAAcrjH,KAAKmjH,gBAAgBqE,aAAaxnH,KAAK2lH,UAAW3lH,KAAK6hC,YAAa7hC,KAAK4hH,iBAAkB5hH,KAAK82C,gBACrI,IAAIrQ,EAAO,CACTkjC,UAAW,KACXu0C,WAAY,KACZH,eAAgB,KAChB90C,SAAUjpE,KAAK2lH,UACfrH,cAAe7kG,SAASzZ,KAAKqjH,aAG/B,GAAI58E,EAAK63E,cACP73E,EAAKy3E,WA54CmB,SAAiCW,EAAiBt1C,EAAUk+C,GACxFl+C,EAAWA,GAAY,GAIvB,IAHA,IAAIm+C,EAAmB,GACnBl2E,EAAO,EAEFjzC,EAAI,EAAGA,EAAIgrE,EAASjrE,OAAQC,IAAK,CACxC,IAAI2qE,EAAUK,EAAShrE,GAEvB,GAAIsgH,IAAoB31C,EAAQi1C,WAC9BuJ,EAAiBnnH,KAAKhC,IACtBizC,GAAQ03B,EAAQt2C,UAEL60F,GACT,OAAOlpH,CAGb,CAEA,OAAgC,IAA5BmpH,EAAiBppH,OACZ,EAIFopH,EAAiBA,EAAiBppH,OAAS,EACpD,CAo3CwBqpH,CAAwB3nH,KAAK4hH,iBAAkBr4C,EAAU30B,QACtE,GAAwB,OAApB50C,KAAKk+G,WAAqB,CACnC,IAAIh1C,EAAUK,EAASvpE,KAAKk+G,YACxBv0C,EAAsC,iBAAnB3pE,KAAK2pE,UAAyB3pE,KAAK2pE,WAAa,EACvEljC,EAAKs3E,eAAiB70C,EAAQx5D,IAAMw5D,EAAQx5D,IAAMklC,EAE9Cs0B,EAAQC,OAASD,EAAQC,MAAMQ,EAAY,IAC7CljC,EAAKy3E,WAAal+G,KAAKk+G,WACvBz3E,EAAKkjC,UAAYA,EAAY,GAE7BljC,EAAKy3E,WAAal+G,KAAKk+G,WAAa,CAExC,KAAO,CAEL,IAAI0J,EAAwB16C,GAASC,oBAAoB,CACvDI,iCAAkCvtE,KAAKutE,iCACvCtE,SAAUjpE,KAAK2lH,UACfxnF,YAAan+B,KAAK2jH,eAAiB/uE,EAAc50C,KAAK82C,eACtDw2B,kBAAmBttE,KAAKqjH,WAAW15C,UACnC0D,qBAAsBrtE,KAAKqjH,WAAW35C,aACtCh2C,UAAW1zB,KAAKqjH,WAAW7xE,OAEzBk4B,EAAek+C,EAAsBl+C,aACrCh2C,EAAYk0F,EAAsBl0F,UAClCm0F,EAAaD,EAAsBj+C,UAEvCljC,EAAK0mC,oBAAsBntE,KAAK2jH,eAAiB,eAAiB/uE,EAAc,eAAiB50C,KAAK82C,eACtGrQ,EAAKy3E,WAAax0C,EAClBjjC,EAAKs3E,eAAiBrqF,EACtB+S,EAAKkjC,UAAYk+C,CACnB,CAEA,IAAIC,EAAcv+C,EAAS9iC,EAAKy3E,YAC5B7sC,EAAWy2C,GAAyC,iBAAnBrhF,EAAKkjC,WAA0Bm+C,EAAY3+C,OAAS2+C,EAAY3+C,MAAM1iC,EAAKkjC,WAGhH,IAAKm+C,GAAyC,iBAAnBrhF,EAAKkjC,YAA2B0H,EACzD,OAAO,KAcT,GAT8B,iBAAnB5qC,EAAKkjC,WAA0Bm+C,EAAY3+C,QACpD1iC,EAAKkjC,UAAY,EACjB0H,EAAWy2C,EAAY3+C,MAAM,KAO1Bk+C,GAAgBh2C,IAAaA,EAASktC,YACzC,GAAuB,IAAnB93E,EAAKkjC,UAAiB,CACxB,IAAIE,EAAcN,EAAS9iC,EAAKy3E,WAAa,GACzC6J,EAAsBl+C,EAAYV,OAASU,EAAYV,MAAM7qE,QAAUurE,EAAYV,MAAMU,EAAYV,MAAM7qE,OAAS,GAEpHypH,GAAuBA,EAAoBxJ,cAC7C93E,EAAKy3E,YAAc,EACnBz3E,EAAKkjC,UAAYE,EAAYV,MAAM7qE,OAAS,EAC5CmoC,EAAK83E,YAAc,mBAEvB,MAAWuJ,EAAY3+C,MAAM1iC,EAAKkjC,UAAY,GAAG40C,cAC/C93E,EAAKkjC,WAAa,EAClBljC,EAAK83E,YAAc,iBAIvB,IAAI92E,EAAQznC,KAAKygH,cAAiD,UAAjCzgH,KAAKygH,aAAar6G,WAKnD,OAAIqgC,EAAKy3E,YAAc30C,EAASjrE,OAAS,GAAKmpC,IAAUznC,KAAKwgH,WACpD,KAGFxgH,KAAKgoH,qBAAqBvhF,EACnC,EAEAvmC,EAAO8nH,qBAAuB,SAA8BnkH,GAC1D,IAAI06G,EAAc16G,EAAQ06G,YACtBt1C,EAAWplE,EAAQolE,SACnBi1C,EAAar6G,EAAQq6G,WACrBH,EAAiBl6G,EAAQk6G,eACzBO,EAAgBz6G,EAAQy6G,cACxB30C,EAAY9lE,EAAQ8lE,UACpBs+C,EAAuBpkH,EAAQokH,qBAC/B96C,EAAsBtpE,EAAQspE,oBAC9BjE,EAAUD,EAASM,SAAS20C,GAC5BnpE,EAA4B,iBAAd40B,GAA0BT,EAAQC,MAAMQ,GACtDwlC,EAAc,CAChBkI,UAAW,kBAAoBvrG,KAAKo8G,SAEpCtkH,IAAKmxC,GAAQA,EAAK23B,aAAexD,EAAQwD,YAEzCwxC,WAAYA,EACZv0C,UAAW50B,EAAO40B,EAAY,KAG9B20C,cAAeA,EACfP,eAAgBA,EAEhB90C,SAAUA,EAEVr+D,MAAO,KAEPgqG,eAAgB,KAGhBzD,gBAAiB,KAEjBgN,SAAUj1C,EAAQi1C,SAElBvrF,SAAUmiB,GAAQA,EAAKniB,UAAYs2C,EAAQt2C,SAE3Cs2C,QAASA,EACTn0B,KAAMA,EACNjqC,WAAY,EACZq3F,WAAYniG,KAAKsjH,YAEjBn2C,oBAAqBA,EACrBoxC,YAAaA,GAEX4J,OAAgD,IAAzBF,EAAuCA,EAAuBjoH,KAAKiiH,0BAC9F9S,EAAYgC,gBAAkBnxG,KAAKooH,2BAA2B,CAC5DtJ,gBAAiB51C,EAAQi1C,SACzBU,gBAAiB7+G,KAAK4hH,iBACtB7D,eAAgBA,EAChBprF,SAAU3yB,KAAKklH,YACfiD,cAAeA,IAEjB,IAAIE,EAAmBv/C,GAAgB9oE,KAAKkhH,eAAemE,iBAc3D,MAZgC,iBAArBgD,IAGTlZ,EAAYsC,iBAAmB4W,EAAmBroH,KAAKkhH,eAAeoH,wBAGpEtoH,KAAKkhH,eAAekE,gBAAgB9mH,SACtC6wG,EAAYnM,gBAhrDQ,SAA6Bt4F,EAAQyzB,EAAauoF,GAC1E,GAAI,MAAOvoF,IAAwDzzB,EAAOpM,OACxE,MAAO,GAIT,IACIC,EADAgqH,EAAiBz8G,KAAKQ,MAAM6xB,EAAcuoF,EAAU,GAAK,GAAAxY,kBAG7D,IAAK3vG,EAAI,EAAGA,EAAImM,EAAOpM,UACjBoM,EAAOnM,GAAGipF,IAAM+gC,GADShqH,KAM/B,OAAOmM,EAAO7K,MAAMtB,EACtB,CAgqDoCiqH,CAAoBxoH,KAAKkiH,WAEvDliH,KAAK82C,eAAiB92C,KAAKkhH,eAAeuH,uBAAwBzoH,KAAKmiH,eAGlEhT,CACT,EAKAjvG,EAAOkoH,2BAA6B,SAAoCvkH,GACtE,OAt4CEi7G,GAD6D1zG,EAu4C9BvH,GAt4CRi7G,gBACvBD,EAAkBzzG,EAAKyzG,gBACvBd,EAAiB3yG,EAAK2yG,eACtBprF,EAAWvnB,EAAKunB,SACAvnB,EAAK+8G,eAOHrJ,IAAoBD,EA4BtCC,EAAkBD,EACbd,EAQFprF,EAASr0B,OAASq0B,EAASjjB,IAAIijB,EAASr0B,OAAS,GAAKy/G,EApCpD,KAbqB,IAAmC3yG,EAC7D0zG,EACAD,EACAd,EACAprF,CAo4CJ,EAYAzyB,EAAOwoH,sBAAwB,SAA+BhU,GAC5D,IAAI10G,KAAK4wE,KAAK9zC,MAAMpH,UAGnB11B,KAAK8hH,YAAY/6G,SACjB/G,KAAK2lH,UAAU3qG,WAAWuxD,aAOvBpqD,KAAKD,OAASwyF,EAAMqD,sBAAwB51F,KAAKD,OAAS,KAA9D,CAIA,IAAIic,EAAcn+B,KAAK82C,eACnB6xE,EAAoBjU,EAAMxmC,UAC1BD,EAAkBjuE,KAAK6hH,gBAAgBjvF,SACvCg2F,EAAuB17C,GAASc,2BAA2BC,EAAiB06C,EAAmB3oH,KAAK2lH,UAAWjR,EAAMvmC,eAIrH06C,EAt4gBgB,SAA2Bl2F,EAAUwL,EAAaqjB,GAMxE,YALqB,IAAjBA,IACFA,EAAe,KAGC7uB,EAASr0B,OAASq0B,EAASjjB,IAAIijB,EAASr0B,OAAS,GAAK,GAClD6/B,GAAeqjB,CACvC,CA+3gB8BsnE,CAAkB9oH,KAAKklH,YAAa/mF,EAAan+B,KAAK4wE,KAAK9zC,MAAM0kB,gBAAkB,EAG7G,KAAIonE,GAAwBC,GAA5B,CAIA,IAAIE,EAnpE8B,SAAyC7rF,GAC7E,IAAIx+B,EAASw+B,EAASx+B,OAClBy/B,EAAcjB,EAASiB,YACvB+vC,EAAYhxC,EAASgxC,UACrBt7C,EAAWsK,EAAStK,SACpBq7C,EAAkB/wC,EAAS+wC,gBAC3B66C,EAAoB5rF,EAAS4rF,kBAC7BjK,EAAkB3hF,EAAS2hF,gBAC3BuE,EAAiBlmF,EAASkmF,eAG1B4F,EAAsBtqH,EAAO2tE,UAAU/3D,QAAO,SAAU20D,GAC1D,OAAQiE,GAASjB,eAAehD,EAClC,IAGIggD,EAAmBD,EAAoB10G,OAAO44D,GAAShB,WAEtD+8C,EAAiB3qH,SAIpB2qH,EAAmBD,EAAoB10G,QAAO,SAAU20D,GACtD,OAAQiE,GAASY,WAAW7E,EAC9B,KAGF,IACIigD,EADqBD,EAAiB30G,OAAO44D,GAAS51C,aAAalR,KAAK,KAAM,cACpCxc,KAAI,SAAUq/D,GAC1D,IAGIkgD,EAHY/F,EAAeoE,aAAav+C,EAAUr2C,EAAUisF,EAAiB1gF,GAGnD,EAAI,EAGlC,MAAO,CACL8qC,SAAUA,EACVmgD,kBAJwBl8C,GAASc,2BAA2BC,EAAiBC,EAAWjF,GAC5CkgD,EAAcL,EAK9D,IACIO,EAAyBH,EAAqB50G,QAAO,SAAUg1G,GACjE,OAAOA,EAASF,mBAAqB,CACvC,IAMA,OAJA9O,GAAW+O,GAAwB,SAAU1hH,EAAGC,GAC9C,OAAO8yG,GAAyB9yG,EAAEqhE,SAAUthE,EAAEshE,SAChD,IAEIogD,EAAuB/qH,OAClB+qH,EAAuB,IAGhC/O,GAAW4O,GAAsB,SAAUvhH,EAAGC,GAC5C,OAAOD,EAAEyhH,kBAAoBxhH,EAAEwhH,iBACjC,IACOF,EAAqB,IAAM,KACpC,CA2lE0BK,CAAgC,CACpD7qH,OAAQsB,KAAK4wE,KAAKvE,UAAU3tE,OAC5By/B,YAAaA,EACb+vC,UAAWy6C,EACX/1F,SAAU5yB,KAAK6hC,YACfosC,gBAAiBA,EACjB66C,kBAAmBD,EACnBhK,gBAAiB7+G,KAAK4hH,iBACtBwB,eAAgBpjH,KAAKmjH,kBAGvB,GAAK4F,EAAL,CAIA,IACIS,EADoBZ,EAAuBC,EACAE,EAAgBK,kBAC3DK,EAAoB,GAIpBZ,GAAuB1gD,KACzBshD,EAAoB,IAGjBV,EAAgB9/C,UAAY8/C,EAAgB9/C,SAASrlE,MAAQ5D,KAAK2lH,UAAU/hH,KAAO4lH,EAAuBC,IAO/GzpH,KAAKkuE,UAAY66C,EAAgB9/C,SAASjuD,WAAWuxD,UAAYuR,GAAOM,mBAAqB,EAC7Fp+E,KAAKY,QAAQ,cApBb,CAfA,CAdA,CAkDF,EAEAV,EAAOwpH,aAAe,SAAsBva,GAC1CnvG,KAAKuwE,QAAQ,YAAcutC,GAAkB3O,IAC7CnvG,KAAKmkH,sBAAwB,CAC/B,EAYAjkH,EAAOypH,gBAAkB,SAAyB9qG,EAAO+qG,GACvD5pH,KAAK0oH,sBAAsBkB,EAAclV,OAErC10G,KAAK+kH,eAAe6E,EAAcvS,YAItCr3G,KAAKY,QAAQ,WACf,EAEAV,EAAO2pH,iBAAmB,SAA0BD,EAAezZ,GACjEnwG,KAAK0oH,sBAAsBkB,EAAclV,OAErC10G,KAAK+kH,eAAe6E,EAAcvS,YAIlCr3G,KAAK8pH,2BAA2B3Z,KAIpCA,EAAYA,GAAa,CAAC,EAzsDX,SAAsBxoG,EAAGC,GAI1C,IAAKD,IAAMC,IAAMD,GAAKC,GAAKD,IAAMC,EAC/B,OAAO,EAIT,GAAID,IAAMC,EACR,OAAO,EAKT,IAAImiH,EAAQ31G,OAAOC,KAAK1M,GAAGkhD,OACvBmhE,EAAQ51G,OAAOC,KAAKzM,GAAGihD,OAE3B,GAAIkhE,EAAMzrH,SAAW0rH,EAAM1rH,OACzB,OAAO,EAGT,IAAK,IAAIC,EAAI,EAAGA,EAAIwrH,EAAMzrH,OAAQC,IAAK,CACrC,IAAIkF,EAAMsmH,EAAMxrH,GAEhB,GAAIkF,IAAQumH,EAAMzrH,GAChB,OAAO,EAIT,GAAIoJ,EAAElE,KAASmE,EAAEnE,GACf,OAAO,CAEX,CAEA,OAAO,CACT,CAyqDSwmH,CAAajqH,KAAK2gH,kBAAmBxQ,KACxCnwG,KAAKqiH,mBAAqB,CACxBl6G,OAAO,EACPD,OAAO,GAETlI,KAAK4gH,mBAAqBzQ,EAC1BnwG,KAAK2gH,kBAAoBxQ,EACzBnwG,KAAKuwE,QAAQ,mBAAoB4/B,GACjCnwG,KAAKY,QAAQ,cAKXZ,KAAK+kH,eAAe6E,EAAcvS,aAMtCr3G,KAAK6hH,gBAAgB1R,UAAYA,EAE7BnwG,KAAK6jH,0BACP7jH,KAAK8jH,qBAET,EAEA5jH,EAAOgqH,kBAAoB,SAA2BN,EAAe9qH,EAAWqrH,EAAU34E,GAGxF,GAFAxxC,KAAK0oH,sBAAsBkB,EAAclV,QAErC10G,KAAK+kH,eAAe6E,EAAcvS,WAAtC,CAIA,IAAIlI,EAAcnvG,KAAK6hH,gBACnBuI,EAAqB1L,GAA2B5/G,GACpDqwG,EAAYib,GAAsBjb,EAAYib,IAAuB,CAAC,EACtEjb,EAAYib,GAAoBD,GAAY34E,EAC5CxxC,KAAKuwE,QAAQ,eAAiBzxE,EAAY,MAAQqrH,EAAW,MAAQ34E,GAEjExxC,KAAK6jH,0BACP7jH,KAAK8jH,mBATP,CAWF,EAEA5jH,EAAOmqH,gBAAkB,SAAyBT,EAAeU,GAC/D,IAAIpiG,EAASloB,KAIb,GAFAA,KAAK0oH,sBAAsBkB,EAAclV,QAErC10G,KAAK+kH,eAAe6E,EAAcvS,WAMtC,GAA2B,IAAvBiT,EAAYhsH,OAQhB,GAHkB0B,KAAK6hH,gBAGN0I,iBAAjB,CAKA,IAAIpZ,EAAiE,OAA/CnxG,KAAKkhH,eAAeuH,uBAAkCzoH,KAAKkhH,eAAeoH,uBAAyBtoH,KAAKkhH,eAAeuH,uBACzI+B,EAAgB,CAAC,EAErBF,EAAYzrH,SAAQ,SAAUymG,GAG5BklB,EAAcllB,EAAQpjB,QAAUsoC,EAAcllB,EAAQpjB,SAAW,CAE/DxuD,UAAW/gB,IACX4nB,SAAU,GAEV5G,QAAS,GAEX,IAAI82F,EAAeD,EAAcllB,EAAQpjB,QACzCuoC,EAAa/2F,UAAY5nB,KAAKgU,IAAI2qG,EAAa/2F,UAAW4xE,EAAQ5xE,UAAYy9E,GAC9EsZ,EAAa92F,QAAU7nB,KAAKE,IAAIy+G,EAAa92F,QAAS2xE,EAAQ3xE,QAAUw9E,GACxEsZ,EAAalwF,SAASh6B,KAAK+kG,EAC7B,IACAlxF,OAAOC,KAAKm2G,GAAe3rH,SAAQ,SAAU6rH,GAC3C,IAAIC,EAAwBH,EAAcE,GACtCh3F,EAAYi3F,EAAsBj3F,UAClCC,EAAUg3F,EAAsBh3F,QAChC4G,EAAWowF,EAAsBpwF,SACjCuiF,EAAmB50F,EAAOk5F,kBAE9Bl5F,EAAOqoD,QAAQ,oBAAsB78C,EAAY,OAASC,EAAU,QAAU+2F,GA5rE/C,SAAwC5N,EAAkBjpF,EAAMmkE,GACnG,IAAK8kB,EAAiB9kB,GAAgB,CACpCnkE,EAAKjzB,QAAQ,CACXP,KAAM,QACNgJ,KAAM,YAERwqB,EAAKjzB,QAAQ,CACXP,KAAM,QACNgJ,KAAM,YAER,IAAIuhH,EAAa5yB,EAEb,UAAU14F,KAAK04F,KACjB4yB,EAAa,UAAY5yB,EAAc11F,MAAM,KAAK,IAGpD,IAAIixB,EAAQM,EAAKK,aAAa8D,aAAa4yF,GAE3C,GAAIr3F,EAIFupF,EAAiB9kB,GAAiBzkE,MAC7B,CAGL,IACI8B,EAAQ2iE,EACRjsE,EAAWisE,EACX6yB,GAAM,EACNC,GAJkBj3F,EAAKnJ,SAAS4lD,KAAOz8C,EAAKnJ,SAAS4lD,IAAImb,iBAAmB,CAAC,GAI5Cm/B,GAEjCE,IACFz1F,EAAQy1F,EAAez1F,MACvBtJ,EAAW++F,EAAe/+F,SAC1B8+F,EAAMC,EAAwB,SAKhChO,EAAiB9kB,GAAiBnkE,EAAKO,mBAAmB,CACxDgF,KAAM,WACN5qB,GAAIo8G,EAEJ,QAAWC,EACXx1F,MAAOA,EACPtJ,SAAUA,IACT,GAAOwH,KACZ,CACF,CACF,CA4oEMw3F,CAA+BjO,EAAkB50F,EAAO0oD,KAAK9zC,MAAO4tF,GAKpE/M,GAAoBjqF,EAAWC,EAASmpF,EAAiB4N,IAroE1C,SAAwBt/G,GAC3C,IAAI0xG,EAAmB1xG,EAAK0xG,iBACxBkO,EAAe5/G,EAAK4/G,aACpB7Z,EAAkB/lG,EAAK+lG,gBAE3B,GAAK6Z,EAAL,CAIA,IAAI/N,EAAM,mBAA0B,WACpC+N,EAAansH,SAAQ,SAAUymG,GAC7B,IAAI/xE,EAAQ+xE,EAAQpjB,OACpB46B,EAAiBvpF,GAAOc,OAAO,IAAI4oF,EAAI3X,EAAQ5xE,UAAYy9E,EAAiB7L,EAAQ3xE,QAAUw9E,EAAiB7L,EAAQl9F,MACzH,GANA,CAOF,CAwnEM6iH,CAAe,CACbD,aAAczwF,EACduiF,iBAAkBA,EAClB3L,gBAAiBA,GAErB,IAGInxG,KAAKsjH,aACPtjH,KAAKsjH,YAAY1T,YAAY,CAC3BC,OAAQ,0BA7CZ,MAFE7vG,KAAKyiH,eAAend,QAAQ/kG,KAAKP,KAAKqqH,gBAAgBjkG,KAAKpmB,KAAM4pH,EAAeU,SARhFtqH,KAAKuwE,QAAQ,0DA0DjB,EAEArwE,EAAOgrH,WAAa,SAAoBtB,EAAe9T,EAAWnc,GAGhE,GAFA35F,KAAK0oH,sBAAsBkB,EAAclV,QAErC10G,KAAK+kH,eAAe6E,EAAcvS,WAMtC,GAFkBr3G,KAAK6hH,gBAEN0I,iBAAjB,CAKA,IAAIpZ,EAAiE,OAA/CnxG,KAAKkhH,eAAeuH,uBAAkCzoH,KAAKkhH,eAAeoH,uBAAyBtoH,KAAKkhH,eAAeuH,wBAphE5G,SAAwC3L,EAAkBnjB,EAAc9lE,GACvGipF,EAAiBK,iBAIrBL,EAAiBK,eAAiBtpF,EAAKO,mBAAmB,CACxDgF,KAAM,WACN/D,MAAO,mBACN,GAAO9B,MACVupF,EAAiBK,eAAegO,gCAAkCxxB,EACpE,CA8gEIyxB,CAA+BprH,KAAKohH,kBAAmBznB,EAAc35F,KAAK4wE,KAAK9zC,OAC/E+/E,GAAY,CACVC,iBAAkB98G,KAAKohH,kBACvBrE,cAAejH,EACf3E,gBAAiBA,EACjB6L,cAAeh9G,KAAK6hC,aAXtB,MAFE7hC,KAAKyiH,eAAeld,IAAIhlG,KAAKP,KAAKkrH,WAAW9kG,KAAKpmB,KAAM4pH,EAAe9T,EAAWnc,GAetF,EAEAz5F,EAAOmrH,sBAAwB,WAC7BrrH,KAAKyiH,eAAeld,IAAI1mG,SAAQ,SAAU4M,GACxC,OAAOA,GACT,IACAzL,KAAKyiH,eAAend,QAAQzmG,SAAQ,SAAU4M,GAC5C,OAAOA,GACT,IACAzL,KAAKyiH,eAAeld,IAAM,GAC1BvlG,KAAKyiH,eAAend,QAAU,EAChC,EAEAplG,EAAO4jH,kBAAoB,WACzB,IAAIwH,EAAYtrH,KAAKuiH,WAIrBviH,KAAKuiH,WAAa,GAClB+I,EAAUzsH,SAAQ,SAAU0sH,GAC1B,OAAOA,GACT,GACF,EAEArrH,EAAO8jH,kBAAoB,WACzB,IAAIwH,EAAYxrH,KAAKwiH,WAIrBxiH,KAAKwiH,WAAa,GAClBgJ,EAAU3sH,SAAQ,SAAU0sH,GAC1B,OAAOA,GACT,GACF,EASArrH,EAAO6jH,qBAAuB,WAG5B,GAAyB,UAArB/jH,KAAK0gH,YACP,OAAO,EAGT,IAAIvR,EAAcnvG,KAAK6hH,gBAGvB,QAAK1S,KAQAnvG,KAAKyrH,yBAmBV9M,GAA4B,CAC1BC,yBAA0B5+G,KAAKshH,0BAC/BzC,gBAAiB7+G,KAAK4hH,iBACtB9C,gBAAiB3P,EAAYgP,SAC7BY,WAAY/+G,KAAK0gH,YACjB1B,cAAeh/G,KAAKgiH,iBAMxB,EAEA9hH,EAAOurH,qBAAuB,SAA8Btc,GAK1D,YAJoB,IAAhBA,IACFA,EAAcnvG,KAAK6hH,iBAGd1S,GAAeA,EAAYgB,WAAanwG,KAAK2gH,iBACtD,EAEAzgH,EAAOilH,cAAgB,SAAuBhW,GAK5C,YAJoB,IAAhBA,IACFA,EAAcnvG,KAAK6hH,iBAGd7hH,KAAKyrH,qBAAqBtc,IAAgBnvG,KAAK4gH,kBACxD,EAEA1gH,EAAO2jH,uBAAyB,WAC9B,IAAK7jH,KAAKkhH,eAAe72F,QACvB,OAAO,EAKT,GAAIrqB,KAAK0iH,kBAAoB1iH,KAAK2iH,gCAChC,OAAO,EAGT,IAAIxT,EAAcnvG,KAAK6hH,gBACnB1R,EAAYnwG,KAAKyrH,uBAIrB,IAAKtc,IAAgBgB,EACnB,OAAO,EAGT,IAAI7J,EAAW6J,EAAU7J,SACrBC,EAAW4J,EAAU5J,SACrBiP,EAAUrF,EAAUqF,QAExB,QAAIjP,IAAa4I,EAAYj5B,qBAKzBowB,IAAatmG,KAAKgiH,iBAAmBxM,IAAYrG,EAAYiB,mBAI7DuO,GAA4B,CAC9BC,yBAA0B5+G,KAAKshH,0BAC/BzC,gBAAiB7+G,KAAK4hH,iBACtB9C,gBAAiB3P,EAAYgP,SAC7BY,WAAY/+G,KAAK0gH,YACjB1B,cAAeh/G,KAAKgiH,iBAMxB,EAEA9hH,EAAO0yG,YAAc,SAAqBgX,EAAermH,GAGvD,GAFAvD,KAAK0oH,sBAAsBkB,EAAclV,QAErC10G,KAAK+kH,eAAe6E,EAAcvS,WAMtC,IAAIr3G,KAAKuiH,WAAWjkH,QAAW0B,KAAK6jH,yBAApC,CAKA,IAAI1U,EAAcnvG,KAAK6hH,gBAUvB,GARA7hH,KAAK0rH,gBAAgBvc,EAAYgP,UAEjCn+G,KAAK2rH,0BAA0Bxc,EAAYp6D,MAAQo6D,EAAYjmC,SAM1B,WAAjClpE,KAAKygH,aAAar6G,WAAtB,CAoBA,GAdIwjH,EAAchgH,MAChBggH,EAAchgH,IAAM5J,KAAKslH,kBAAkBsE,EAAchgH,KAAK,GAE9DulG,EAAYjmC,QAAQt/D,IAAMggH,EAAchgH,KAItCggH,EAAcnmH,KAChBzD,KAAKwlH,WAAWoE,EAAcnmH,KAAK,GAGrC0rG,EAAYgH,OAASyT,EAAczT,OACnChH,EAAYY,WAAaZ,EAAYY,YAAc,CAAC,EAEhDZ,EAAYgH,OACdn2G,KAAKY,QAAQ,QACbuuG,EAAYY,WAAWv9E,MAAQ28E,EAAYuP,GAA2Bn7G,EAAOlD,OAAOmyB,UAC/E,CACL,IAEIo5F,EAFAzb,EAAYnwG,KAAKyrH,uBACjBI,EAA0C,SAArB7rH,KAAK0gH,aAA0BvQ,GAAaA,EAAU5J,SAG3EslB,IACFD,EAA6Bzc,EAAYj5B,gBAAgB1jD,OAM3D28E,EAAYY,WAAWv9E,MAAQxyB,KAAK8rH,kBAAkB,CACpDC,aAAc5c,EAAYY,WAAWv9E,MACrCy2C,SAAUkmC,EAAYlmC,SACtBi1C,WAAY/O,EAAY+O,WACxB8N,4BAA6BhsH,KAAKkhH,eAAeuH,uBACjDoD,mBAAoBA,EACpBD,2BAA4BA,EAC5B11C,gBAAiBi5B,EAAYj5B,gBAC7Bk6B,gBAAiBjB,EAAYiB,iBAEjC,CAYA,GAPApwG,KAAKisH,8BAA8B9c,EAAa5rG,EAAOlD,MAIvDL,KAAKksH,mCAAmC/c,GAGpCA,EAAYmP,cAAe,CAI7Bt+G,KAAKmsH,qBAAqBhd,GAC1BnvG,KAAKmjH,gBAAgBiJ,sBAAsB,CACzCjd,YAAaA,EACbkd,0BAAgD,SAArBrsH,KAAK0gH,cAElC,IAAIj6E,EAAOzmC,KAAKinH,qBAGhB,GAAIxgF,EAAKy3E,aAAe/O,EAAY+O,YAAcz3E,EAAKkjC,YAAcwlC,EAAYxlC,UAE/E,YADA3pE,KAAKuwE,QAAQ,6CAKfvwE,KAAKuwE,QAAQ,sCACf,CAMA4+B,EAAYob,kBAAmB,EAE/BvqH,KAAKqrH,wBACLrrH,KAAKssH,YAAYnd,EAAa5rG,EAnF9B,CAdA,MAFEvD,KAAKuiH,WAAWhiH,KAAKP,KAAK4yG,YAAYxsF,KAAKpmB,KAAM4pH,EAAermH,GAoGpE,EAEArD,EAAO+rH,8BAAgC,SAAuC9c,EAAa9uG,GAEhE,SAArBL,KAAK0gH,aAAiE,iBAAhCvR,EAAYgC,iBAErDhC,EAAYod,yBAGXvsH,KAAKqiH,mBAAqB,CACxBl6G,OAAO,EACPD,OAAO,IAIPlI,KAAKsiH,2BAA2BjiH,KAAU8uG,EAAYlmC,WAGxDjpE,KAAKqiH,mBAAmBhiH,IAAQ,EAEpC,EAEAH,EAAOssH,8BAAgC,SAAuCp/C,GAC5E,IAAI/sE,EAAO+sE,EAAM/sE,KACbk1E,EAAcnI,EAAMmI,YACpB3rE,EAAMwjE,EAAMxjE,IACZq/D,EAAWmE,EAAMnE,SAMrB,GAAIr/D,EAAK,CACP,IAAI4E,EAAK8mE,GAAc1rE,GAEvB,GAAI5J,KAAK4iH,uBAAyBp0G,EAEhC,OAAO,KAOT+mE,EAAcv1E,KAAKslH,kBAAkB17G,GAAK,GAAMgB,MAChD5K,KAAK4iH,qBAAuBp0G,CAC9B,CAOA,OAAI+mE,GAAev1E,KAAKqiH,mBAAmBhiH,IAIzCL,KAAKsiH,2BAA2BjiH,GAAQ4oE,EAExCjpE,KAAKqiH,mBAAmBhiH,IAAQ,EAGhCL,KAAK4iH,qBAAuB,KACrBrtC,GAGF,IACT,EAEAr1E,EAAOusH,0BAA4B,SAAmCzW,EAAOz/F,GAC3E,IAAI+R,EAAStoB,KAETmvG,EAAc6G,EAAM7G,YACpB9uG,EAAO21G,EAAM31G,KACbuK,EAAQorG,EAAMprG,MACdy6G,EAAgBrlH,KAAKkhH,eAAemE,gBACpCD,EAAgBplH,KAAKkhH,eAAekE,gBAIpCC,EAAc/mH,OAAS,GACzB0B,KAAKuwE,QAAQ,0DAA4D3H,GAAkBy8C,GAAezoG,KAAK,OAG7GwoG,EAAc9mH,OAAS,GACzB0B,KAAKuwE,QAAQ,0DAA4D3H,GAAkBw8C,GAAexoG,KAAK,OAGjH,IAAI8vG,EAAmBrH,EAAc/mH,OAAS+mH,EAAc7yF,MAAM,GAAK,EACnEm6F,EAAiBtH,EAAc/mH,OAAS+mH,EAAc31G,IAAI21G,EAAc/mH,OAAS,GAAK,EACtFsuH,EAAmBxH,EAAc9mH,OAAS8mH,EAAc5yF,MAAM,GAAK,EACnEq6F,EAAiBzH,EAAc9mH,OAAS8mH,EAAc11G,IAAI01G,EAAc9mH,OAAS,GAAK,EAE1F,GAAIquH,EAAiBD,GA/mEH,GA+mE0CG,EAAiBD,GA/mE3D,EA0nEhB,OANA5sH,KAAKuwE,QAAQ,mHAAgI3lE,EAAME,WAAtI,mBAA+K89D,GAAkBy8C,GAAezoG,KAAK,MAArN,mBAAyPgsD,GAAkBw8C,GAAexoG,KAAK,MAAQ,MACpT5c,KAAKuW,MAAM,CACTwc,QAAS,kEACTi5C,aAAcr5D,WAEhB3S,KAAKY,QAAQ,SAgBfZ,KAAK0iH,kBAAmB,EACxB1iH,KAAKuiH,WAAWhiH,KAAKP,KAAK8sH,sBAAsB1mG,KAAKpmB,KAAM,CACzDmvG,YAAaA,EACb9uG,KAAMA,EACNuK,MAAOA,KAET,IAGImiH,EAHc/sH,KAAK82C,eA/oEL,EAmpElB92C,KAAKuwE,QAAQ,yDAA2Dw8C,GACxE/sH,KAAK2c,OAAO,EAAGowG,GAAmB,WAChCzkG,EAAOioD,QAAQ,gDAEfjoD,EAAOo6F,kBAAmB,EAG1Bp6F,EAAOq6F,gCAAkC,gBAAoB,WAC3Dr6F,EAAOioD,QAAQ,mDAEfjoD,EAAOq6F,gCAAkC,KAEzCr6F,EAAOw7F,mBACT,GAAGkJ,IACL,IAAG,EACL,EAEA9sH,EAAO+sH,mBAAqB,SAA4B1W,EAAOhgG,GAC7D,IAAI44F,EAAcoH,EAAMpH,YACpB9uG,EAAOk2G,EAAMl2G,KACbuK,EAAQ2rG,EAAM3rG,MAEb2L,IAltEgB,KAstEjBA,EAAMtP,MAWVjH,KAAKuwE,QAAQ,4CAA6Ch6D,GAC1DvW,KAAKuW,MAAMlW,EAAO,cAAgBuK,EAAMtM,OAA7B+B,yBAAuE8uG,EAAY+O,WAAa,gBAAkB/O,EAAYlmC,SAASz6D,IAMlJxO,KAAKY,QAAQ,gBAjBXZ,KAAKysH,0BAA0B,CAC7Btd,YAAaA,EACb9uG,KAAMA,EACNuK,MAAOA,IAeb,EAEA1K,EAAO4sH,sBAAwB,SAA+BrW,GAC5D,IAlsFyCyW,EAEvCp0C,EADAxrE,EAisFE6hG,EAAcsH,EAAMtH,YACpB9uG,EAAOo2G,EAAMp2G,KACbk1E,EAAckhC,EAAMlhC,YACpB/zE,EAAOi1G,EAAMj1G,KACboJ,EAAQ6rG,EAAM7rG,MAElB,IAAKA,EAAO,CACV,IAAI2+D,EAAW,CAAC/nE,GACZsJ,EAAatJ,EAAKsJ,WAElByqE,IAGFhM,EAASxzD,QAAQw/D,GACjBzqE,GAAcyqE,EAAYzqE,YA/sF5BwC,EAAS,GAD8B4/G,EAqtFhB,CACrBtiH,MAAOE,EACPy+D,SAAUA,IAntFD3+D,QACbkuE,EAAa,IAAIz6E,WAAW6uH,EAAWtiH,OAEvCsiH,EAAW3jD,SAAS1qE,SAAQ,SAAUqqE,GACpC4P,EAAW12D,IAAI8mD,EAAS57D,GACxBA,GAAU47D,EAAQp+D,UACpB,KA2sFEF,EAxsFGkuE,CA4sFL,CAEA94E,KAAKkhH,eAAeiM,aAAa,CAC/Bhe,YAAaA,EACb9uG,KAAMA,EACNuK,MAAOA,GACN5K,KAAKitH,mBAAmB7mG,KAAKpmB,KAAM,CACpCmvG,YAAaA,EACb9uG,KAAMA,EACNuK,MAAOA,IAEX,EAEA1K,EAAOktH,yBAA2B,SAAkC/sH,EAAMg3G,EAAWgW,GACnF,GAAKrtH,KAAK6hH,iBAAmBxK,IAAcr3G,KAAK6hH,gBAAgBxK,UAAhE,CAIA,IAAInuC,EAAUlpE,KAAK6hH,gBAAgB34C,QAC/BkhD,EAAqB/pH,EAAO,aAE3B6oE,EAAQkhD,KACXlhD,EAAQkhD,GAAsB,CAAC,GAGjClhD,EAAQkhD,GAAoBvzC,2BAA6Bw2C,EAAkB5qB,0BAA4B,EACvGv5B,EAAQkhD,GAAoB/zC,4BAA8Bg3C,EAAkB76F,MAAMy9E,aAClF/mC,EAAQkhD,GAAoBkD,sBAAwBD,EAAkB76F,MAAM1vB,OAC5EomE,EAAQkhD,GAAoBj0C,0BAA4Bk3C,EAAkB39G,IAAIugG,aAC9E/mC,EAAQkhD,GAAoBmD,oBAAsBF,EAAkB39G,IAAI5M,OAExEomE,EAAQkhD,GAAoBtkC,oBAAsBunC,EAAkBvnC,mBAfpE,CAgBF,EAEA5lF,EAAOosH,YAAc,SAAqBnd,EAAa5rG,GACrD,IAAIlD,EAAOkD,EAAOlD,KACdmB,EAAO+B,EAAO/B,KAElB,GAAKA,GAASA,EAAKsJ,aAIN,UAATzK,IAAoBL,KAAKgiH,gBAA7B,CAIA,IAAIzsC,EAAcv1E,KAAKwsH,8BAA8B,CACnDnsH,KAAMA,EACNk1E,YAAahyE,EAAOgyE,YACpBtM,SAAUkmC,EAAYlmC,SACtBr/D,IAAKulG,EAAYgH,OAAShH,EAAYjmC,QAAQt/D,IAAM,OAEtD5J,KAAK8sH,sBAAsB,CACzB3d,YAAaA,EACb9uG,KAAMA,EACNk1E,YAAaA,EACb/zE,KAAMA,GAZR,CAcF,EAQAtB,EAAOgnH,aAAe,SAAsB/X,GAC1C,IAAIt+E,EAAS7wB,KAEbA,KAAKipB,MAAQ,UACbjpB,KAAK6hH,gBAAkB1S,EACvBnvG,KAAKwtH,gBAAgBre,GAEsB,iBAAhCA,EAAYgC,iBACjBnxG,KAAKsjH,aACPtjH,KAAKsjH,YAAY1T,YAAY,CAC3BC,OAAQ,wBAKT7vG,KAAK+jH,uBAiBV/jH,KAAKytH,mCAAmCte,GAhBtCnvG,KAAKwiH,WAAWjiH,MAAK,WAGnB,IAAIsD,GAAU,aAAS,CAAC,EAAGsrG,EAAa,CACtC8Y,sBAAsB,KAGxB,aAAS9Y,EAAat+E,EAAOm3F,qBAAqBnkH,IAElDgtB,EAAOoxF,2BAA4B,EAEnCpxF,EAAO48F,mCAAmCte,EAC5C,GAKJ,EAEAjvG,EAAOutH,mCAAqC,SAA4Cte,GACtF,IAAIn+E,EAAShxB,KAOTA,KAAK0tH,uCAAuCve,EAAYgC,mBAC1DnxG,KAAKkiH,WAAW5jH,OAAS,EAEzB6wG,EAAYnM,gBAAkB,GAC9BhjG,KAAKmiH,aAAe,EAEpBniH,KAAKsjH,YAAY1T,YAAY,CAC3BC,OAAQ,UAEV7vG,KAAKsjH,YAAY1T,YAAY,CAC3BC,OAAQ,qBACRsB,gBAAiBhC,EAAYgC,mBAIjC,IAAIyY,EAAgB5pH,KAAK2tH,4BAA4Bxe,GACjDye,EAAgB5tH,KAAKyjH,eAAetU,EAAY+O,WAAY/O,EAAYlmC,SAAUkmC,EAAYxlC,WAC9FkkD,EAAuC,OAApB7tH,KAAKk+G,WACxB4P,EAAkB3e,EAAYgP,WAAan+G,KAAK4hH,kBAEpDzS,EAAYgP,SAAW,EACnB9L,EAAkBub,GAAiBC,GAAoBC,EAC3D9tH,KAAKuwE,QAAQ,cAAgButC,GAAkB3O,IAM3Cya,EAAchgH,MAAQggH,EAAchgH,IAAIgB,QAC1C5K,KAAKuwE,QAAQ,kCACbvwE,KAAKqiH,mBAAqB,CACxBn6G,OAAO,EACPC,OAAO,IAIXgnG,EAAY0V,cAAgB7M,GAAoB,CAC9C3zG,IAAKrE,KAAK4wE,KAAKvsE,IACf6zG,WAAYl4G,KAAK8hH,YACjBnL,iBAAkB32G,KAAKijH,WACvB/5C,QAAS0gD,EACTzR,QAASn4G,KAAK0pH,aAAatjG,KAAKpmB,KAAMmvG,GACtCyI,WAAY53G,KAAK2pH,gBAAgBvjG,KAAKpmB,MACtC80G,YAAa90G,KAAK6pH,iBAAiBzjG,KAAKpmB,MACxC+0G,aAAc/0G,KAAKkqH,kBAAkB9jG,KAAKpmB,MAC1Cg1G,yBAA0Bh1G,KAAKotH,yBAAyBhnG,KAAKpmB,KAAM,QAASmvG,EAAYkI,WACxFpC,yBAA0Bj1G,KAAKotH,yBAAyBhnG,KAAKpmB,KAAM,QAASmvG,EAAYkI,WACxFlC,WAAYn1G,KAAKqqH,gBAAgBjkG,KAAKpmB,MACtCqyG,gBAAiBA,EACjB+C,gBAAiB,WACfpkF,EAAOu/C,QAAQ,kCACjB,EACA2kC,MAAOl1G,KAAKkrH,WAAW9kG,KAAKpmB,MAC5Bq1G,OAAQr1G,KAAK4yG,YAAYxsF,KAAKpmB,MAC9Bs1G,OAAQt1G,KAAK+tH,wBAAwB3nG,KAAKpmB,MAC1CoyG,gBAAiB,SAAyBgF,GACxC,IAAIrkF,EAAUqkF,EAAMrkF,QAChBxd,EAAQ6hG,EAAM7hG,MACd2sE,EAASk1B,EAAMl1B,OAEnBlxD,EAAOu/C,QAAQutC,GAAkB3O,GAAe,kCAAoCjtB,EAAS,SAAW3sE,EAAQ,KAAOwd,EACzH,GAEJ,EAWA7yB,EAAOstH,gBAAkB,SAAyBre,GAChD,IAAI6e,EAj2EqB,SAAgCzmF,EAAUpJ,EAAausC,GAMlF,IAAIujD,EAAW9vF,EAAc2/C,GAAOG,mBAEhC12C,EAASjpC,SAGX2vH,EAAWniH,KAAKE,IAAIiiH,EAAU1mF,EAAS/U,MAAM,KAK/C,IAAI07F,EAAc/vF,EAAcusC,EAChC,OAAO5+D,KAAKgU,IAAIouG,EAAaD,EAC/B,CA+0EuBE,CAAuBnuH,KAAKugH,YAAavgH,KAAK82C,eAAgB92C,KAAK2lH,UAAUj7C,gBAAkB,IAM9GsjD,EAAe,GACjBhuH,KAAK2c,OAAO,EAAGqxG,EAEnB,EAYA9tH,EAAOytH,4BAA8B,SAAqCxe,GACxE,IAAIjmC,EAAUimC,EAAYjmC,QACtBn0B,EAAOo6D,EAAYp6D,KACnB60E,EAAgB,CAClBl9C,YAAa33B,EAAOA,EAAK23B,YAAcxD,EAAQwD,YAC/CqI,UAAWhgC,EAAOA,EAAKggC,UAAY7L,EAAQ6L,UAC3CsiC,UAAWlI,EAAYkI,UACvBlV,WAAYgN,EAAYhN,WACxBsP,iBAAkBtC,EAAYsC,iBAC9BzO,gBAAiBmM,EAAYnM,gBAC7BjuD,KAAMo6D,EAAYp6D,MAEhBq5E,EAAkBjf,EAAYlmC,SAASM,SAAS4lC,EAAY+O,WAAa,GAkB7E,GAhBIkQ,GAAmBA,EAAgBjQ,WAAaj1C,EAAQi1C,WAStDiQ,EAAgBl4C,gBAClB0zC,EAAcjZ,cAAgByd,EAAgBl4C,gBAAgBq3C,oBACrDa,EAAgBhe,kBACzBwZ,EAAcjZ,cAAgByd,EAAgBhe,gBAAgBmd,sBAI9DrkD,EAAQzlE,IAAK,CAGf,IAAIszG,EAAK7tC,EAAQzlE,IAAIszG,IAAM,IAAI5C,YAAY,CAAC,EAAG,EAAG,EAAGhF,EAAY+O,WAAa/O,EAAYlmC,SAAS6B,gBACnG8+C,EAAcnmH,IAAMzD,KAAKwlH,WAAWt8C,EAAQzlE,KAC5CmmH,EAAcnmH,IAAIszG,GAAKA,CACzB,CAMA,OAJI7tC,EAAQt/D,MACVggH,EAAchgH,IAAM5J,KAAKslH,kBAAkBp8C,EAAQt/D,MAG9CggH,CACT,EAEA1pH,EAAOmuH,mBAAqB,SAA4B3Z,GAGtD10G,KAAKkkH,eAAiB,EAElBxP,IACF10G,KAAKikH,uBAAyBvP,EAAMvmC,cACpCnuE,KAAKskH,uBAAyB5P,EAAMtgC,cAExC,EAEAl0E,EAAOouH,2BAA6B,SAAoC17F,EAAU8hF,GAIhF10G,KAAK6hH,gBAAgB/2G,WAAa4pG,EAAMvmC,cAEpCv7C,EAAWirF,GACb79G,KAAKuwE,QAAQ,wDAA0D39C,EAAY,mCAAqCirF,KAI1H79G,KAAKkuE,UAAYwmC,EAAMxmC,UACvBluE,KAAKmgH,UAAYzL,EAAMtgC,cACzB,EAEAl0E,EAAOquH,eAAiB,WAGtBvuH,KAAKokH,uBAAyB,EAC9BpkH,KAAKkuE,UAAY,EACjBluE,KAAKmgH,UAAYnyD,IACjBhuD,KAAKY,QAAQ,kBACf,EASAV,EAAO6tH,wBAA0B,SAAiCx3G,EAAOqzG,EAAermH,GAKtF,GAAIvD,KAAKuiH,WAAWjkH,OAClB0B,KAAKuiH,WAAWhiH,KAAKP,KAAK+tH,wBAAwB3nG,KAAKpmB,KAAMuW,EAAOqzG,EAAermH,SAMrF,GAFAvD,KAAKquH,mBAAmBzE,EAAclV,OAEjC10G,KAAK6hH,iBAQN+H,EAAcvS,YAAcr3G,KAAK6hH,gBAAgBxK,UAArD,CAKA,GAAI9gG,EAAO,CAIT,GAHAvW,KAAK6hH,gBAAkB,KACvB7hH,KAAKipB,MAAQ,QAET1S,EAAMtP,OAAS0sG,GACjB,OAOF,OAJA3zG,KAAK41B,QAIDrf,EAAMtP,OAAS0sG,QACjB3zG,KAAKuuH,kBAMPvuH,KAAKqkH,sBAAwB,EAC7BrkH,KAAKuW,MAAMA,QACXvW,KAAKY,QAAQ,SAEf,CAEA,IAAIuuG,EAAcnvG,KAAK6hH,gBAGvB7hH,KAAKsuH,2BAA2Bnf,EAAYv8E,SAAUg3F,EAAclV,OACpEvF,EAAYqI,iBAAmBoS,EAAcpS,iBAEzCj0G,EAAOusG,UACT9vG,KAAKkiH,WA5sFW,SAAyBx3G,EAAQy9E,EAAMv/E,GAC3D,IAAKu/E,EAAK7pF,OACR,OAAOoM,EAGT,GAAI9B,EAKF,OAAOu/E,EAAKtoF,QAMd,IAHA,IAAI2yB,EAAQ21D,EAAK,GAAGX,IAChBjpF,EAAI,EAEAA,EAAImM,EAAOpM,UACboM,EAAOnM,GAAGipF,KAAOh1D,GADIj0B,KAM3B,OAAOmM,EAAO7K,MAAM,EAAGtB,GAAGsT,OAAOs2E,EACnC,CAqrFwBqmC,CAAgBxuH,KAAKkiH,WAAY3+G,EAAOusG,QAAS9vG,KAAKoiH,cAK1EpiH,KAAKipB,MAAQ,YAEbjpB,KAAKY,QAAQ,aACbZ,KAAKyuH,0BAA0Btf,EA3C/B,CA4CF,EAEAjvG,EAAOwrH,gBAAkB,SAAyBvN,GAChD,IAAIuQ,EAAkB1uH,KAAKmjH,gBAAgBwL,mBAAmBxQ,GAEtC,OAApBuQ,IACF1uH,KAAKmiH,aAAeuM,EAExB,EAEAxuH,EAAOyrH,0BAA4B,SAAmCziD,GACvC,iBAAlBA,EAAQ12C,OAA6C,iBAAhB02C,EAAQx5D,IACtD1P,KAAKukH,oBAAsBr7C,EAAQx5D,IAAMw5D,EAAQ12C,MAEjDxyB,KAAKukH,oBAAsBr7C,EAAQt2C,QAEvC,EAEA1yB,EAAOwtH,uCAAyC,SAAgDvc,GAC9F,OAAwB,OAApBA,IAMqB,SAArBnxG,KAAK0gH,aAA0BvP,IAAoBnxG,KAAKkhH,eAAeuH,yBAItEzoH,KAAKgiH,gBAAkB7Q,IAAoBnxG,KAAKkhH,eAAeoH,uBAKtE,EAEApoH,EAAO4rH,kBAAoB,SAA2B7U,GACpD,IAAI8U,EAAe9U,EAAM8U,aACrB9iD,EAAWguC,EAAMhuC,SACjBi1C,EAAajH,EAAMiH,WACnB0N,EAA6B3U,EAAM2U,2BACnCI,EAA8B/U,EAAM+U,4BACpCH,EAAqB5U,EAAM4U,mBAC3B31C,EAAkB+gC,EAAM/gC,gBACxBk6B,EAAkB6G,EAAM7G,gBAE5B,QAA4B,IAAjB2b,EAET,OAAOA,EAGT,IAAKF,EACH,OAAOzb,EAAgB59E,MAGzB,IAAI47F,EAAkBnlD,EAASM,SAAS20C,EAAa,GAMrD,OAAmB,IAAfA,GAAqBkQ,QAAoD,IAA1BA,EAAgB57F,OAAyB47F,EAAgB1+G,MAAQk8G,EAA6BI,EAI1I91C,EAAgB1jD,MAHdo5F,CAIX,EAEA1rH,EAAOuuH,0BAA4B,SAAmCtf,GACpE,IAAIgB,EAAYnwG,KAAKyrH,qBAAqBtc,GAE1C,IAAKgB,EAMH,OALAnwG,KAAKuW,MAAM,CACTwc,QAAS,yEACTmoD,kBAAmBvoE,WAErB3S,KAAKY,QAAQ,SAOf,IAAI0lG,EAAW6J,EAAU7J,SACrBC,EAAW4J,EAAU5J,SACrBiP,EAAUrF,EAAUqF,QACpBoZ,EAAoC,SAArB5uH,KAAK0gH,aAA0Bna,EAC9CsoB,GAAgB7uH,KAAKgiH,gBAAkB1b,IAAakP,EAGxD,GAFArG,EAAY2f,iBAAmB,GAE1B3f,EAAYob,iBA6Bf,OA5BKpb,EAAYY,YAAqD,iBAAhCZ,EAAYgC,kBAShDnxG,KAAKiiH,2BAA4B,GAInC9S,EAAYY,WAAa,CACvBv9E,MAAO,GAET28E,EAAY2f,mBAEP9uH,KAAKiiH,4BAERjiH,KAAKksH,mCAAmC/c,GAGxCnvG,KAAKqrH,8BAIPrrH,KAAK+uH,kBAAkB5f,GAKrByf,GACFzf,EAAY2f,mBAGVD,GACF1f,EAAY2f,mBAGVF,GACF5uH,KAAKkhH,eAAe8N,mBAAmBhvH,KAAK+uH,kBAAkB3oG,KAAKpmB,KAAMmvG,IAGvE0f,GACF7uH,KAAKkhH,eAAe+N,mBAAmBjvH,KAAK+uH,kBAAkB3oG,KAAKpmB,KAAMmvG,GAE7E,EAEAjvG,EAAO6uH,kBAAoB,SAA2B5f,GAChDnvG,KAAK+kH,eAAe5V,EAAYkI,aAIpClI,EAAY2f,mBAEyB,IAAjC3f,EAAY2f,kBACd9uH,KAAKkvH,qBAET,EAEAhvH,EAAO4pH,2BAA6B,SAAoC3Z,GACtE,IAAIgf,EA5sFiB,SAA4BpQ,EAAYqQ,EAAejf,GAG9E,MAAmB,SAAf4O,GAA0BqQ,GAAkBjf,EAI3CA,EAAU7J,UAAa6J,EAAU5J,SAIlC6oB,EAAc7oB,WAAa4J,EAAU5J,SAChC,6LAGJ6oB,EAAc7oB,UAAY4J,EAAU5J,SAChC,kMAGF,KAXE,4CAJA,IAgBX,CAwrFkC8oB,CAAmBrvH,KAAK0gH,YAAa1gH,KAAKyrH,uBAAwBtb,GAEhG,QAAIgf,IACFnvH,KAAKuW,MAAM,CACTwc,QAASo8F,EACTj0C,kBAAmBvoE,MAErB3S,KAAKY,QAAQ,UACN,EAIX,EAEAV,EAAOgsH,mCAAqC,SAA4C/c,GACtF,GAAoC,OAAhCA,EAAYgC,iBAEwB,iBAAjChC,EAAYY,WAAWv9E,QAC9B28E,EAAYod,wBACS,SAArBvsH,KAAK0gH,YAJL,CAQA,IAAI4O,GAAY,EAKhBngB,EAAYgC,iBAAmBnxG,KAAKuvH,kDAAkD,CACpFr5C,gBAAiBi5B,EAAYjmC,QAAQgN,gBACrCk6B,gBAAiBjB,EAAYjmC,QAAQknC,gBACrCL,WAAYZ,EAAYY,aAK1BZ,EAAYod,wBAAyB,EAEjCpd,EAAYgC,kBAAoBnxG,KAAKkhH,eAAeuH,yBACtDzoH,KAAKkhH,eAAeuH,qBAAqBtZ,EAAYgC,iBACrDme,GAAY,GAGVngB,EAAYgC,kBAAoBnxG,KAAKkhH,eAAeoH,yBACtDtoH,KAAKkhH,eAAeoH,qBAAqBnZ,EAAYgC,iBACrDme,GAAY,GAGVA,GACFtvH,KAAKY,QAAQ,kBA5Bf,CA8BF,EAEAV,EAAOqvH,kDAAoD,SAA2DzW,GACpH,IAAI5iC,EAAkB4iC,EAAO5iC,gBACzBk6B,EAAkB0I,EAAO1I,gBACzBL,EAAa+I,EAAO/I,WAExB,OAAK/vG,KAAKwhH,0BAINtrC,GAAoE,iBAA1CA,EAAgBo3C,sBACrCp3C,EAAgBo3C,sBAIrBld,GAAoE,iBAA1CA,EAAgBkd,sBACrCld,EAAgBkd,sBAIlBvd,EAAWv9E,MAbTu9E,EAAWv9E,KActB,EAEAtyB,EAAOisH,qBAAuB,SAA8Bhd,GAC1DA,EAAYY,WAAaZ,EAAYY,YAAc,CAAC,EACpD,IAAII,EAAYnwG,KAAKmlH,gBAEjBqK,EAD0C,SAArBxvH,KAAK0gH,aAA0BvQ,GAAaA,EAAU5J,UAC7B4I,EAAYj5B,gBAAkBi5B,EAAYj5B,gBAAkBi5B,EAAYiB,gBAErHof,IAILrgB,EAAYY,WAAWrgG,IAA2C,iBAA9B8/G,EAAsB9/G,IAG1D8/G,EAAsB9/G,IAAM8/G,EAAsBh9F,MAAQ28E,EAAYv8E,SACxE,EAUA1yB,EAAOgvH,mBAAqB,WAM1B,GAJIlvH,KAAK6hH,iBACP7hH,KAAKY,QAAQ,gBAGVZ,KAAK6hH,gBAQR,OAPA7hH,KAAKipB,MAAQ,aAGRjpB,KAAK01B,UACR11B,KAAK4kH,kBAMT,IAAIzV,EAAcnvG,KAAK6hH,gBAIvB7hH,KAAKmsH,qBAAqBhd,GAEtBnvG,KAAKuhH,8BAkBPvhH,KAAKmjH,gBAAgBiJ,sBAAsB,CACzCjd,YAAaA,EACbkd,0BAAgD,SAArBrsH,KAAK0gH,cAIpC,IAAI+O,EAAyBlQ,GAAqCpQ,EAAanvG,KAAKihH,aAcpF,GAZIwO,IACsC,SAApCA,EAAuB3P,SACzBh6C,GAAQtwD,IAAIc,KAAKm5G,EAAuB18F,SAExC/yB,KAAKuwE,QAAQk/C,EAAuB18F,UAIxC/yB,KAAK0vH,kBAAkBvgB,GACvBnvG,KAAK6hH,gBAAkB,KACvB7hH,KAAKipB,MAAQ,SAETkmF,EAAYmP,gBACdt+G,KAAKY,QAAQ,kBAKRuuG,EAAYob,kBANnB,CAYAvqH,KAAKuwE,QAAQ,YAAcutC,GAAkB3O,IAC7CnvG,KAAK2vH,uBAAuBxgB,GAC5BnvG,KAAK2jH,gBAAiB,EAElB3jH,KAAK4hH,mBAAqBzS,EAAYgP,WACxCn+G,KAAKshH,0BAA0BpC,mBAAmB,CAChD7+G,KAAML,KAAK0gH,YACX3iH,KAAMiC,KAAK4hH,iBACXv4F,GAAI8lF,EAAYgP,WAKO,SAArBn+G,KAAK0gH,aAA2B1gH,KAAKgiH,gBACvChiH,KAAKshH,0BAA0BpC,mBAAmB,CAChD7+G,KAAM,QACNtC,KAAMiC,KAAK4hH,iBACXv4F,GAAI8lF,EAAYgP,YAKtBn+G,KAAK4hH,iBAAmBzS,EAAYgP,SAKpCn+G,KAAKY,QAAQ,kBACb,IAAIsoE,EAAUimC,EAAYjmC,QACtBn0B,EAAOo6D,EAAYp6D,KACnB66E,EAAkB1mD,EAAQx5D,KAAO1P,KAAK82C,eAAiBoyB,EAAQx5D,IAA4C,EAAtCy/F,EAAYlmC,SAASyB,eAC1FmlD,EAAe96E,GAAQA,EAAKrlC,KAAO1P,KAAK82C,eAAiB/B,EAAKrlC,IAAgD,EAA1Cy/F,EAAYlmC,SAASI,mBAK7F,GAAIumD,GAAmBC,EAGrB,OAFA7vH,KAAKuwE,QAAQ,QAAUq/C,EAAkB,UAAY,QAAU,IAAM9R,GAAkB3O,SACvFnvG,KAAK6lH,kBAIoC,OAApB7lH,KAAKk+G,YAI1Bl+G,KAAKY,QAAQ,mBAGfZ,KAAKY,QAAQ,YACbZ,KAAKk+G,WAAa/O,EAAY+O,WAC9Bl+G,KAAK2pE,UAAYwlC,EAAYxlC,UAIzB3pE,KAAKyjH,eAAetU,EAAY+O,WAAY/O,EAAYlmC,SAAUkmC,EAAYxlC,YAChF3pE,KAAKilH,cAIPjlH,KAAKY,QAAQ,YAETuuG,EAAYob,kBACdvqH,KAAKwkH,eAGFxkH,KAAK01B,UACR11B,KAAK4kH,gBArEP,MAHI5kH,KAAKuwE,QAAQ,0CAA4CutC,GAAkB3O,GA0EjF,EAYAjvG,EAAOwvH,kBAAoB,SAA2BvgB,GACpD,GAAIA,EAAYv8E,SAAWirF,GACzB79G,KAAKuwE,QAAQ,yDAA2D4+B,EAAYv8E,SAAY,mCAAqCirF,QADvI,CAKA,IAAIt8D,EAAOvhD,KAAKkgH,WAAW3+D,KAGvBuuE,EAAwB3tG,KAAKD,MAAQitF,EAAYqI,iBAAmB,EAEpEuY,EAA8BjkH,KAAKmW,MAAMktF,EAAYrkG,WAAaglH,EAAwB,EAAI,KAGlG9vH,KAAKkgH,WAAW3+D,OAASwuE,EAA8BxuE,KAAUvhD,KAAKkgH,WAAWj2C,KAVjF,CAWF,EAYA/pE,EAAOyvH,uBAAyB,SAAgCxgB,GAC9D,GAAKnvG,KAAK6gH,sBAAV,CAIA,IAAI33C,EAAUimC,EAAYjmC,QACtB12C,EAAQ02C,EAAQ12C,MAChB9iB,EAAMw5D,EAAQx5D,IAElB,GAAKkuG,GAAOprF,IAAWorF,GAAOluG,GAA9B,CAIAiuG,GAAoBnrF,EAAO9iB,EAAK1P,KAAK6gH,uBACrC,IAAI5D,EAAM,mBAA0B,WAChCv6G,EAAQ,CACVstH,OAAQ9mD,EAAQ8mD,OAChBp5C,eAAgB1N,EAAQ0N,eACxBq5C,eAAgB/mD,EAAQ+mD,eACxB/hD,UAAWihC,EAAYlmC,SAASjuD,WAAWuxD,UAC3C2jD,WAAY/gB,EAAYlmC,SAASjuD,WAAWqgG,WAC5ClyG,OAAQgmG,EAAYlmC,SAASjuD,WAAWgyD,OACxCliE,WAAYqkG,EAAYrkG,WACxBlH,IAAKurG,EAAYvrG,IACjBu6G,SAAUhP,EAAYgP,SACtBl1C,SAAUkmC,EAAYlmC,SAASz6D,GAC/BgkB,MAAOA,EACP9iB,IAAKA,GAGH+jB,EAAM,IAAIwpF,EAAIzqF,EAAO9iB,EADd5K,KAAKoB,UAAUxD,IAI1B+wB,EAAI/wB,MAAQA,EACZ1C,KAAK6gH,sBAAsBxsF,OAAOZ,EAvBlC,CARA,CAgCF,EAEOssF,CACT,CAnmFiC,CAmmF/Bj6C,GAAQ6B,aAEV,SAAShY,KAAQ,CAEjB,IA0rHIwgE,GA1rHAC,GAAc,SAAqB1jH,GACrC,MAAsB,iBAAXA,EACFA,EAGFA,EAAO9D,QAAQ,KAAK,SAAU6gB,GACnC,OAAOA,EAAE/hB,aACX,GACF,EAEI2oH,GAAc,CAAC,QAAS,SAExBC,GAAY,SAAkBjwH,EAAM8gH,GACtC,IAAIoP,EAAepP,EAAc9gH,EAAO,UACxC,OAAOkwH,GAAgBA,EAAavJ,UAAY7F,EAAcqP,aAAanwH,EAC7E,EAoBIowH,GAAa,SAASA,EAAWpwH,EAAM8gH,GACzC,GAAmC,IAA/BA,EAAc9kD,MAAM/9D,OAAxB,CAIA,IAAIoyH,EAAa,EACbC,EAAaxP,EAAc9kD,MAAMq0D,GAErC,GAAwB,gBAApBC,EAAWtwH,MAsBf,GAAa,gBAATA,GAWC8gH,EAAc92F,SAAoD,WAAzC82F,EAAclB,YAAY75G,aAA2BkqH,GAAUjwH,EAAM8gH,GAAnG,CAIA,GAAIwP,EAAWtwH,OAASA,EAAM,CAG5B,GAFAqwH,EAhEuB,SAA8BrwH,EAAMg8D,GAC7D,IAAK,IAAI99D,EAAI,EAAGA,EAAI89D,EAAM/9D,OAAQC,IAAK,CACrC,IAAIoyH,EAAat0D,EAAM99D,GAEvB,GAAwB,gBAApBoyH,EAAWtwH,KAGb,OAAO,KAGT,GAAIswH,EAAWtwH,OAASA,EACtB,OAAO9B,CAEX,CAEA,OAAO,IACT,CAgDiBqyH,CAAqBvwH,EAAM8gH,EAAc9kD,OAEnC,OAAfq0D,EAIF,OAGFC,EAAaxP,EAAc9kD,MAAMq0D,EACnC,CAaA,OAXAvP,EAAc9kD,MAAM17D,OAAO+vH,EAAY,GAQvCvP,EAAcqP,aAAanwH,GAAQswH,EACnCA,EAAW9gB,OAAOxvG,EAAM8gH,GAEnBwP,EAAWrb,YAAhB,GAEE6L,EAAcqP,aAAanwH,GAAQ,UACnCowH,EAAWpwH,EAAM8gH,GA7BnB,OAlCOA,EAAc6F,YAAuD,WAAzC7F,EAAclB,YAAY75G,aACzD+6G,EAAc9kD,MAAM/pD,QACpBq+G,EAAW9gB,OAAOsR,GAEdwP,EAAWrb,QACbqb,EAAWrb,SAMbmb,EAAW,QAAStP,GACpBsP,EAAW,QAAStP,GAlBxB,CAwEF,EAEI0P,GAAgB,SAAuBxwH,EAAM8gH,GAC/C,IAAIz2G,EAASy2G,EAAc9gH,EAAO,UAC9BywH,EAAYV,GAAY/vH,GAEvBqK,IAILA,EAAOmY,oBAAoB,YAAas+F,EAAc,KAAO2P,EAAY,eACzEpmH,EAAOmY,oBAAoB,QAASs+F,EAAc,KAAO2P,EAAY,WACrE3P,EAAch4G,OAAO9I,GAAQ,KAC7B8gH,EAAc9gH,EAAO,UAAY,KACnC,EAEI0wH,GAAkB,SAAyB9Q,EAAasQ,GAC1D,OAAOtQ,GAAesQ,IAA2F,IAA3EtvH,MAAMd,UAAUO,QAAQK,KAAKk/G,EAAY+Q,cAAeT,EAChG,EAEIU,GACY,SAAsBrmH,EAAOukG,EAAa+hB,GACtD,OAAO,SAAU7wH,EAAM8gH,GACrB,IAAIoP,EAAepP,EAAc9gH,EAAO,UAGxC,GAAK0wH,GAAgB5P,EAAclB,YAAasQ,GAAhD,CAIApP,EAAc5wC,QAAQ,qBAAuB4+B,EAAY+O,WAAa,MAAQtzG,EAAMtM,OAAS,aAAe+B,EAAO,UAEnH,IACEkwH,EAAapD,aAAaviH,EAC5B,CAAE,MAAO7H,GACPo+G,EAAc5wC,QAAQ,mBAAqBxtE,EAAEkE,KAAO,KArtGnC,KAqtG0ClE,EAAEkE,KAA8B,wBAA0B,IAAO,0BAA4BkoG,EAAY+O,WAAa,OAAS79G,EAAO,UACjM8gH,EAAcqP,aAAanwH,GAAQ,KACnC6wH,EAAQnuH,EACV,CAVA,CAWF,CACF,EApBEkuH,GAqBM,SAAgBz+F,EAAO9iB,GAC7B,OAAO,SAAUrP,EAAM8gH,GACrB,IAAIoP,EAAepP,EAAc9gH,EAAO,UAGxC,GAAK0wH,GAAgB5P,EAAclB,YAAasQ,GAAhD,CAIApP,EAAc5wC,QAAQ,YAAc/9C,EAAQ,OAAS9iB,EAAM,SAAWrP,EAAO,UAE7E,IACEkwH,EAAa5zG,OAAO6V,EAAO9iB,EAC7B,CAAE,MAAO3M,GACPo+G,EAAc5wC,QAAQ,UAAY/9C,EAAQ,OAAS9iB,EAAM,SAAWrP,EAAO,gBAC7E,CARA,CASF,CACF,EAtCE4wH,GAuCe,SAAyB3jH,GACxC,OAAO,SAAUjN,EAAM8gH,GACrB,IAAIoP,EAAepP,EAAc9gH,EAAO,UAGnC0wH,GAAgB5P,EAAclB,YAAasQ,KAIhDpP,EAAc5wC,QAAQ,WAAalwE,EAAO,sBAAwBiN,GAClEijH,EAAapf,gBAAkB7jG,EACjC,CACF,EAnDE2jH,GAoDQ,SAAkB5c,GAC1B,OAAO,SAAUh0G,EAAM8gH,GACrB9M,GACF,CACF,EAxDE4c,GAyDW,SAAqB16G,GAChC,OAAO,SAAU4qG,GACf,GAA6C,SAAzCA,EAAclB,YAAY75G,WAA9B,CAIA+6G,EAAc5wC,QAAQ,oCAAsCh6D,GAAS,IAAM,KAE3E,IACE4qG,EAAclB,YAAYgF,YAAY1uG,EACxC,CAAE,MAAOxT,GACP+iE,GAAQtwD,IAAIc,KAAK,0CAA2CvT,EAC9D,CARA,CASF,CACF,EAvEEkuH,GAwEQ,SAAkBE,GAC1B,OAAO,SAAUhQ,GACfA,EAAc5wC,QAAQ,mCAAqC4gD,GAE3D,IACEhQ,EAAclB,YAAYrtF,SAAWu+F,CACvC,CAAE,MAAOpuH,GACP+iE,GAAQtwD,IAAIc,KAAK,sCAAuCvT,EAC1D,CACF,CACF,EAlFEkuH,GAmFK,WACL,OAAO,SAAU5wH,EAAM8gH,GACrB,GAA6C,SAAzCA,EAAclB,YAAY75G,WAA9B,CAIA,IAAImqH,EAAepP,EAAc9gH,EAAO,UAGxC,GAAK0wH,GAAgB5P,EAAclB,YAAasQ,GAAhD,CAIApP,EAAc5wC,QAAQ,oBAAsBlwE,EAAO,UAEnD,IACEkwH,EAAavpH,OACf,CAAE,MAAOjE,GACP+iE,GAAQtwD,IAAIc,KAAK,sBAAwBjW,EAAO,SAAU0C,EAC5D,CARA,CAPA,CAgBF,CACF,EAxGEkuH,GAyGe,SAAyB5wH,EAAMsI,GAC9C,OAAO,SAAUw4G,GACf,IAAI2P,EAAYV,GAAY/vH,GACxB+wH,EAAOznH,EAAgBhB,GAC3Bw4G,EAAc5wC,QAAQ,UAAYlwE,EAAO,qBAAuBsI,EAAQ,mBACxE,IAAI4nH,EAAepP,EAAclB,YAAYoR,gBAAgBD,GAC7Db,EAAajrG,iBAAiB,YAAa67F,EAAc,KAAO2P,EAAY,eAC5EP,EAAajrG,iBAAiB,QAAS67F,EAAc,KAAO2P,EAAY,WACxE3P,EAAch4G,OAAO9I,GAAQsI,EAC7Bw4G,EAAc9gH,EAAO,UAAYkwH,CACnC,CACF,EApHEU,GAqHkB,SAA4B5wH,GAC9C,OAAO,SAAU8gH,GACf,IAAIoP,EAAepP,EAAc9gH,EAAO,UAIxC,GAHAwwH,GAAcxwH,EAAM8gH,GAGf4P,GAAgB5P,EAAclB,YAAasQ,GAAhD,CAIApP,EAAc5wC,QAAQ,YAAclwE,EAAO,qBAAuB8gH,EAAch4G,OAAO9I,GAAQ,qBAE/F,IACE8gH,EAAclB,YAAYqR,mBAAmBf,EAC/C,CAAE,MAAOxtH,GACP+iE,GAAQtwD,IAAIc,KAAK,gCAAkCjW,EAAO,SAAU0C,EACtE,CARA,CASF,CACF,EAvIEkuH,GAwIU,SAAoBtoH,GAC9B,OAAO,SAAUtI,EAAM8gH,GACrB,IAAIoP,EAAepP,EAAc9gH,EAAO,UACpC+wH,EAAOznH,EAAgBhB,GAGtBooH,GAAgB5P,EAAclB,YAAasQ,IAK5CpP,EAAch4G,OAAO9I,KAAUsI,IAInCw4G,EAAc5wC,QAAQ,YAAclwE,EAAO,qBAAuB8gH,EAAch4G,OAAO9I,GAAQ,OAASsI,GACxG4nH,EAAagB,WAAWH,GACxBjQ,EAAch4G,OAAO9I,GAAQsI,EAC/B,CACF,EAGE6oH,GAAY,SAAmBpmH,GACjC,IAAI/K,EAAO+K,EAAK/K,KACZ8gH,EAAgB/1G,EAAK+1G,cACrBtR,EAASzkG,EAAKykG,OACdyF,EAASlqG,EAAKkqG,OACdjsG,EAAO+B,EAAK/B,KAChB83G,EAAc9kD,MAAM97D,KAAK,CACvBF,KAAMA,EACNwvG,OAAQA,EACRyF,OAAQA,EACRjsG,KAAMA,IAERonH,GAAWpwH,EAAM8gH,EACnB,EAEIsQ,GAAc,SAAqBpxH,EAAM8gH,GAC3C,OAAO,SAAUp+G,GAOf,GAAIo+G,EAAcqP,aAAanwH,GAAO,CACpC,IAAIi1G,EAAS6L,EAAcqP,aAAanwH,GAAMi1G,OAC9C6L,EAAcqP,aAAanwH,GAAQ,KAE/Bi1G,GAEFA,EAAO6L,EAAc9gH,EAAO,UAEhC,CAEAowH,GAAWpwH,EAAM8gH,EACnB,CACF,EAaIuQ,GAA6B,SAAU1R,GAGzC,SAAS0R,EAAczR,GACrB,IAAIn5F,EAuCJ,OArCAA,EAAQk5F,EAAqBj/G,KAAKf,OAASA,MACrCigH,YAAcA,EAEpBn5F,EAAM6qG,oBAAsB,WAC1B,OAAOlB,GAAW,eAAe,aAAuB3pG,GAC1D,EAEAA,EAAMm5F,YAAY36F,iBAAiB,aAAcwB,EAAM6qG,qBAEvD7qG,EAAMypD,QAAUrI,GAAO,iBAEvBphD,EAAM8qG,sBAAwB,EAC9B9qG,EAAM+qG,sBAAwB,EAC9B/qG,EAAMu1C,MAAQ,GACdv1C,EAAM0pG,aAAe,CACnBroH,MAAO,KACPD,MAAO,MAET4e,EAAMgrG,yBAA2B,GACjChrG,EAAMirG,oBAAqB,EAC3BjrG,EAAM3d,OAAS,CAAC,EAChB2d,EAAMkrG,kBAAoBP,GAAY,SAAS,aAAuB3qG,IACtEA,EAAMmrG,kBAAoBR,GAAY,SAAS,aAAuB3qG,IAEtEA,EAAMorG,cAAgB,SAAUnvH,GAE9B+jB,EAAMqrG,YAAcpvH,CACtB,EAEA+jB,EAAMsrG,cAAgB,SAAUrvH,GAE9B+jB,EAAMurG,YAActvH,CACtB,EAEA+jB,EAAMwrG,uBAAwB,EAC9BxrG,EAAMyrG,iBAAkB,EACxBzrG,EAAM0rG,iBAAkB,EACjB1rG,CACT,EA3CA,aAAe4qG,EAAe1R,GA6C9B,IAAI9/G,EAASwxH,EAAcvxH,UA6iB3B,OA3iBAD,EAAOuyH,eAAiB,WACtBzyH,KAAKuyH,iBAAkB,EACvBvyH,KAAKkuB,cACP,EAEAhuB,EAAOwyH,wBAA0B,WAG/B,OAAO1yH,KAAKsyH,qBACd,EAEApyH,EAAOyyH,qBAAuB,WAC5B,OAAO3yH,KAAKuyH,eACd,EAEAryH,EAAOmqB,MAAQ,WACb,OAAOrqB,KAAK0yH,2BAA6B1yH,KAAK2yH,sBAChD,EAEAzyH,EAAO0yH,oBAAsB,SAA6BzpH,GACpDnJ,KAAK0yH,4BAOT1yH,KAAK6yH,yBAAyB1pH,GAC9BnJ,KAAKsyH,uBAAwB,EAC7BtyH,KAAKY,QAAQ,wBACbZ,KAAKkuB,eACP,EAEAhuB,EAAOguB,aAAe,WAOhBluB,KAAKqqB,UAAYrqB,KAAKwyH,kBACxBxyH,KAAKwyH,iBAAkB,EACvBxyH,KAAKY,QAAQ,SAEjB,EAYAV,EAAOmxH,gBAAkB,SAAyBhxH,EAAMsI,GACtD6oH,GAAU,CACRnxH,KAAM,cACN8gH,cAAenhH,KACf6vG,OAAQohB,GAAwB5wH,EAAMsI,GACtCU,KAAM,mBAEV,EASAnJ,EAAO8G,MAAQ,SAAe3G,GAC5BmxH,GAAU,CACRnxH,KAAMA,EACN8gH,cAAenhH,KACf6vG,OAAQohB,GAAc5wH,GACtBgJ,KAAM,SAEV,EAUAnJ,EAAOoxH,mBAAqB,SAA4BjxH,GACjDL,KAAK8yH,wBAKVtB,GAAU,CACRnxH,KAAM,cACN8gH,cAAenhH,KACf6vG,OAAQohB,GAA2B5wH,GACnCgJ,KAAM,uBARNy8D,GAAQtwD,IAAIe,MAAM,uCAUtB,EAUArW,EAAO4yH,sBAAwB,WAK7B,OAAQhtD,GAAQ9rD,QAAQZ,aAAe0sD,GAAQ9rD,QAAQhB,YAAc,iBAAwB,gBAAqB7Y,WAA0E,mBAAtD,gBAAqBA,UAAUmxH,kBACvK,EAUAI,EAAcqB,cAAgB,WAC5B,OAAO,kBAAyB,iBAAsB5yH,WAAmE,mBAA/C,iBAAsBA,UAAUoxH,UAC5G,EAUArxH,EAAO6yH,cAAgB,WACrB,OAAO/yH,KAAK6X,YAAYk7G,eAC1B,EAYA7yH,EAAOqxH,WAAa,SAAoBlxH,EAAMsI,GACvC3I,KAAK+yH,gBAKVvB,GAAU,CACRnxH,KAAMA,EACN8gH,cAAenhH,KACf6vG,OAAQohB,GAAmBtoH,GAC3BU,KAAM,eARNy8D,GAAQtwD,IAAIe,MAAM,+BAUtB,EAUArW,EAAO2yH,yBAA2B,SAAkC1pH,GAClE,IAAI+e,EAASloB,KAEb,IAAKmJ,GAA4B,iBAAXA,GAAsD,IAA/BiL,OAAOC,KAAKlL,GAAQ7K,OAC/D,MAAM,IAAI0F,MAAM,uDAGlBoQ,OAAOC,KAAKlL,GAAQtK,SAAQ,SAAUwB,GACpC,IAAIsI,EAAQQ,EAAO9I,GAEnB,IAAK6nB,EAAOwqG,0BACV,OAAOxqG,EAAOmpG,gBAAgBhxH,EAAMsI,GAGlCuf,EAAO6qG,iBACT7qG,EAAOqpG,WAAWlxH,EAAMsI,EAE5B,GACF,EAUAzI,EAAOitH,aAAe,SAAsBtpH,EAASyxG,GACnD,IAAIhtF,EAAStoB,KAETmvG,EAActrG,EAAQsrG,YACtB9uG,EAAOwD,EAAQxD,KACfuK,EAAQ/G,EAAQ+G,MAGpB,GAFA5K,KAAKgzH,kBAAmB,EAEX,UAAT3yH,GAAoBL,KAAKizH,cAAgBjzH,KAAK+xH,mBAGhD,OAFA/xH,KAAK8xH,yBAAyBvxH,KAAK,CAACsD,EAASyxG,SAC7Ct1G,KAAKuwE,QAAQ,2BAA6B3lE,EAAMtM,OAAS,uBAmB3D,GAVAkzH,GAAU,CACRnxH,KAAMA,EACN8gH,cAAenhH,KACf6vG,OAAQohB,GAAqBrmH,EAAOukG,GAAe,CACjD+O,YAAa,GALH5I,GAOZA,OAAQA,EACRjsG,KAAM,iBAGK,UAAThJ,EAAkB,CAGpB,GAFAL,KAAK+xH,oBAAqB,GAErB/xH,KAAK8xH,yBAAyBxzH,OACjC,OAGF,IAAI+9D,EAAQr8D,KAAK8xH,yBAAyBjyH,QAC1CG,KAAKuwE,QAAQ,yBAA2BlU,EAAM/9D,OAAS,kBACvD0B,KAAK8xH,yBAAyBxzH,OAAS,EACvC+9D,EAAMx9D,SAAQ,SAAUq0H,GACtB5qG,EAAO6kG,aAAa/rH,MAAMknB,EAAQ4qG,EACpC,GACF,CACF,EASAhzH,EAAOmlH,cAAgB,WAGrB,OAAK0L,GAAgB/wH,KAAKigH,YAAajgH,KAAKmzH,cAIrCnzH,KAAKmzH,YAAYxgG,SAAW3yB,KAAKmzH,YAAYxgG,SAH3CmzC,GAAQyB,iBAInB,EASArnE,EAAOklH,cAAgB,WAGrB,OAAK2L,GAAgB/wH,KAAKigH,YAAajgH,KAAKizH,cAIrCjzH,KAAKizH,YAAYtgG,SAAW3yB,KAAKizH,YAAYtgG,SAH3CmzC,GAAQyB,iBAInB,EASArnE,EAAOyyB,SAAW,WAChB,IAAIzqB,EAAQ6oH,GAAgB/wH,KAAKigH,YAAajgH,KAAKizH,aAAejzH,KAAKizH,YAAc,KACjF9qH,EAAQ4oH,GAAgB/wH,KAAKigH,YAAajgH,KAAKmzH,aAAenzH,KAAKmzH,YAAc,KAErF,OAAIhrH,IAAUD,EACLlI,KAAKqlH,gBAGVn9G,IAAUC,EACLnI,KAAKolH,gBA9olBO,SAA4BgO,EAASC,GAC5D,IAAI7gG,EAAQ,KACR9iB,EAAM,KACN4jH,EAAQ,EACRC,EAAU,GACVrhG,EAAS,GAEb,KAAKkhG,GAAYA,EAAQ90H,QAAW+0H,GAAYA,EAAQ/0H,QACtD,OAAOwnE,GAAQyB,kBAOjB,IAFA,IAAI0C,EAAQmpD,EAAQ90H,OAEb2rE,KACLspD,EAAQhzH,KAAK,CACXixC,KAAM4hF,EAAQ5gG,MAAMy3C,GACpB5pE,KAAM,UAERkzH,EAAQhzH,KAAK,CACXixC,KAAM4hF,EAAQ1jH,IAAIu6D,GAClB5pE,KAAM,QAMV,IAFA4pE,EAAQopD,EAAQ/0H,OAET2rE,KACLspD,EAAQhzH,KAAK,CACXixC,KAAM6hF,EAAQ7gG,MAAMy3C,GACpB5pE,KAAM,UAERkzH,EAAQhzH,KAAK,CACXixC,KAAM6hF,EAAQ3jH,IAAIu6D,GAClB5pE,KAAM,QAUV,IALAkzH,EAAQ1qE,MAAK,SAAUlhD,EAAGC,GACxB,OAAOD,EAAE6pC,KAAO5pC,EAAE4pC,IACpB,IAGKy4B,EAAQ,EAAGA,EAAQspD,EAAQj1H,OAAQ2rE,IACV,UAAxBspD,EAAQtpD,GAAO5pE,KAIH,KAHdizH,IAIE9gG,EAAQ+gG,EAAQtpD,GAAOz4B,MAEQ,QAAxB+hF,EAAQtpD,GAAO5pE,MAIV,KAHdizH,IAIE5jH,EAAM6jH,EAAQtpD,GAAOz4B,MAKX,OAAVhf,GAA0B,OAAR9iB,IACpBwiB,EAAO3xB,KAAK,CAACiyB,EAAO9iB,IACpB8iB,EAAQ,KACR9iB,EAAM,MAIV,OAAOo2D,GAAQrzC,iBAAiBP,EAClC,CA0klBWshG,CAAmBxzH,KAAKqlH,gBAAiBrlH,KAAKolH,gBACvD,EAYAllH,EAAOuzH,YAAc,SAAqB7gG,EAAU0iF,QACnC,IAAXA,IACFA,EAAS3lD,IAOX6hE,GAAU,CACRnxH,KAAM,cACN8gH,cAAenhH,KACf6vG,OAAQohB,GAAiBr+F,GACzBvpB,KAAM,WACNisG,OAAQA,GAEZ,EAaAp1G,EAAO+kH,YAAc,SAAqB1uG,EAAO++F,QACjC,IAAV/+F,IACFA,EAAQ,WAGK,IAAX++F,IACFA,EAAS3lD,IAGU,iBAAVp5C,IACTA,OAAQnS,GAOVotH,GAAU,CACRnxH,KAAM,cACN8gH,cAAenhH,KACf6vG,OAAQohB,GAAoB16G,GAC5BlN,KAAM,cACNisG,OAAQA,GAEZ,EAYAp1G,EAAOykH,YAAc,SAAqBnyF,EAAO9iB,EAAKysE,QACvC,IAATA,IACFA,EAAOxsB,IAGJ3vD,KAAKqlH,gBAAgB/mH,QAA0C,IAAhC0B,KAAKqlH,gBAAgB31G,IAAI,GAK7D8hH,GAAU,CACRnxH,KAAM,QACN8gH,cAAenhH,KACf6vG,OAAQohB,GAAez+F,EAAO9iB,GAC9B4lG,OAAQn5B,EACR9yE,KAAM,WATN8yE,GAWJ,EAYAj8E,EAAO2mH,YAAc,SAAqBr0F,EAAO9iB,EAAKysE,QACvC,IAATA,IACFA,EAAOxsB,IAGJ3vD,KAAKolH,gBAAgB9mH,QAA0C,IAAhC0B,KAAKolH,gBAAgB11G,IAAI,GAK7D8hH,GAAU,CACRnxH,KAAM,QACN8gH,cAAenhH,KACf6vG,OAAQohB,GAAez+F,EAAO9iB,GAC9B4lG,OAAQn5B,EACR9yE,KAAM,WATN8yE,GAWJ,EAQAj8E,EAAO8mH,SAAW,WAEhB,SAAIsJ,GAAU,QAAStwH,QAASswH,GAAU,QAAStwH,MAKrD,EAQAE,EAAOooH,qBAAuB,SAA8Bh7G,GAY1D,YAXsB,IAAXA,GAA0BtN,KAAKmzH,aAC1CnzH,KAAK4xH,wBAA0BtkH,IAC7BkkH,GAAU,CACRnxH,KAAM,QACN8gH,cAAenhH,KACf6vG,OAAQohB,GAAwB3jH,GAChCjE,KAAM,oBAERrJ,KAAK4xH,sBAAwBtkH,GAGxBtN,KAAK4xH,qBACd,EAQA1xH,EAAOuoH,qBAAuB,SAA8Bn7G,GAY1D,YAXsB,IAAXA,GAA0BtN,KAAKizH,aAC1CjzH,KAAKyoH,uBAAyBn7G,IAC5BkkH,GAAU,CACRnxH,KAAM,QACN8gH,cAAenhH,KACf6vG,OAAQohB,GAAwB3jH,GAChCjE,KAAM,oBAERrJ,KAAK6xH,sBAAwBvkH,GAGxBtN,KAAK6xH,qBACd,EAUA3xH,EAAO+uH,mBAAqB,SAA4BrwH,GACjDoB,KAAKmzH,aAIV3B,GAAU,CACRnxH,KAAM,QACN8gH,cAAenhH,KACf6vG,OAAQohB,GAAiBryH,GACzByK,KAAM,YAEV,EAUAnJ,EAAO8uH,mBAAqB,SAA4BpwH,GACjDoB,KAAKizH,aAIVzB,GAAU,CACRnxH,KAAM,QACN8gH,cAAenhH,KACf6vG,OAAQohB,GAAiBryH,GACzByK,KAAM,YAEV,EAMAnJ,EAAOmB,QAAU,WACf,IAAIwvB,EAAS7wB,KAEbA,KAAKY,QAAQ,WACbyvH,GAAYxxH,SAAQ,SAAUwB,GAC5BwwB,EAAO7pB,MAAM3G,GAETwwB,EAAOiiG,wBACTjiG,EAAOygG,mBAAmBjxH,GAE1BwwB,EAAOxwB,EAAO,kBAAiB,WAC7B,OAAOwwH,GAAcxwH,EAAMwwB,EAC7B,GAEJ,IACA7wB,KAAK+xH,oBAAqB,EAC1B/xH,KAAK8xH,yBAAyBxzH,OAAS,EAEnC0B,KAAK2xH,qBACP3xH,KAAKigH,YAAYp9F,oBAAoB,aAAc7iB,KAAK2xH,qBAG1D3xH,KAAKQ,KACP,EAEOkxH,CACT,CA5lBiC,CA4lB/B5rD,GAAQ6B,aAEN+rD,GAAc,SAAqBC,GACrC,OAAOhnH,mBAAmBC,OAAO5J,OAAOC,aAAa7B,MAAM,KAAMuyH,IACnE,EAEIC,GAAuB,IAAIv1H,WAAW,OAAOiE,MAAM,IAAIsH,KAAI,SAAUiqH,GACvE,OAAOA,EAAOr1H,WAAW,EAC3B,KASIs1H,GAAgC,SAAUC,GAG5C,SAASD,EAAiB52F,EAAUr5B,GAClC,IAAIijB,EAgBJ,YAdgB,IAAZjjB,IACFA,EAAU,CAAC,IAGbijB,EAAQitG,EAAehzH,KAAKf,KAAMk9B,EAAUr5B,IAAY7D,MAGlDygH,aAAe,KACrB35F,EAAMktG,gBAAkB,KACxBltG,EAAM45F,YAAc,WACpB55F,EAAMmtG,0BAA4B/2F,EAAS+D,yBAG3Cna,EAAMy6F,8BAA+B,EAC9Bz6F,CACT,EApBA,aAAegtG,EAAkBC,GAsBjC,IAAI7zH,EAAS4zH,EAAiB3zH,UAic9B,OA/bAD,EAAOqjH,kBAAoB,WAEzB,OAAO,IACT,EASArjH,EAAOglH,UAAY,WACjB,IAAKllH,KAAKg0H,kBAAoBh0H,KAAKg0H,gBAAgBxgG,OAASxzB,KAAKg0H,gBAAgBxgG,KAAKl1B,OACpF,OAAOwnE,GAAQrzC,mBAGjB,IAAIe,EAAOxzB,KAAKg0H,gBAAgBxgG,KAC5BhB,EAAQgB,EAAK,GAAGE,UAChBhkB,EAAM8jB,EAAKA,EAAKl1B,OAAS,GAAGo1B,UAChC,OAAOoyC,GAAQrzC,iBAAiB,CAAC,CAACD,EAAO9iB,IAC3C,EAaAxP,EAAOolH,kBAAoB,SAA2B17G,EAAKwY,GAKzD,QAJY,IAARA,IACFA,GAAM,IAGHxY,EACH,OAAO,KAGT,IAAI4E,EAAK8mE,GAAc1rE,GACnB27G,EAAYvlH,KAAK6iH,cAAcr0G,GAEnC,GAAI4T,IAAQmjG,GAAa37G,EAAIgB,MAAO,CAKlC,IAAIspH,EAAqBN,GAAqB9oH,WAAalB,EAAIgB,MAAME,WACjEqpH,EAAkB,IAAI91H,WAAW61H,GACrCC,EAAgB/xG,IAAIxY,EAAIgB,OACxBupH,EAAgB/xG,IAAIwxG,GAAsBhqH,EAAIgB,MAAME,YACpD9K,KAAK6iH,cAAcr0G,GAAM+2G,EAAY,CACnC74C,YAAa9iE,EAAI8iE,YACjBqI,UAAWnrE,EAAImrE,UACfnqE,MAAOupH,EAEX,CAEA,OAAO5O,GAAa37G,CACtB,EASA1J,EAAOwlH,mBAAqB,WAC1B,OAAO1lH,KAAK2lH,WAAa3lH,KAAKg0H,kBAAoBh0H,KAAK01B,QACzD,EAUAx1B,EAAO0lH,MAAQ,WAGb,OAFA5lH,KAAKipB,MAAQ,QACbjpB,KAAK6lH,kBACE7lH,KAAK4kH,gBACd,EAWA1kH,EAAOqzB,MAAQ,SAAe0a,GAC5B,YAAsB,IAAXA,IAIXjuC,KAAKg0H,gBAAkB/lF,EAGJ,SAAfjuC,KAAKipB,OAAoBjpB,KAAK0lH,sBAChC1lH,KAAK4lH,SAPE5lH,KAAKg0H,eAWhB,EASA9zH,EAAOyc,OAAS,SAAgB6V,EAAO9iB,GACrCiuG,GAAoBnrF,EAAO9iB,EAAK1P,KAAKg0H,gBACvC,EAYA9zH,EAAO6mH,YAAc,WACnB,IAAI7+F,EAASloB,KAGTmvG,EAAcnvG,KAAKinH,qBAEvB,GAAK9X,EAAL,CAIA,GAA8E,OAA1EnvG,KAAKmjH,gBAAgBiR,2BAA2BjlB,EAAYgP,UAAoB,CAclF,OAFAn+G,KAAKmjH,gBAAgBr9F,IAAI,mBATE,WACzBoC,EAAOe,MAAQ,QAEVf,EAAOwN,UAEVxN,EAAO08F,gBAEX,SAGA5kH,KAAKipB,MAAQ,sBAEf,CAEAjpB,KAAKknH,aAAa/X,EAnBlB,CAoBF,EAGAjvG,EAAOkoH,2BAA6B,WAClC,OAAO,IACT,EAEAloH,EAAO+mH,mBAAqB,WAC1B,OAAOjnH,KAAKq0H,mBAAmBN,EAAe5zH,UAAU8mH,mBAAmBlmH,KAAKf,MAClF,EAaAE,EAAOm0H,mBAAqB,SAA4BllB,GACtD,KAAOA,GAAeA,EAAYjmC,QAAQxyC,OAAO,CAE/C,GAAIy4E,EAAY+O,WAAa,GAAK/O,EAAYlmC,SAASM,SAASjrE,OAAQ,CACtE6wG,EAAc,KACd,KACF,CAEAA,EAAcnvG,KAAKgoH,qBAAqB,CACtC/+C,SAAUkmC,EAAYlmC,SACtBi1C,WAAY/O,EAAY+O,WAAa,EACrCH,eAAgB5O,EAAY4O,eAAiB5O,EAAYv8E,SACzD0rF,cAAenP,EAAYmP,eAE/B,CAEA,OAAOnP,CACT,EAEAjvG,EAAOo0H,aAAe,SAAsB/9G,GAC1CvW,KAAKuW,MAAMA,GACXvW,KAAKipB,MAAQ,QACbjpB,KAAK41B,QACL51B,KAAKY,QAAQ,QACf,EAQAV,EAAO6tH,wBAA0B,SAAiCx3G,EAAOqzG,EAAermH,GACtF,IAAI+kB,EAAStoB,KAEb,GAAKA,KAAKg0H,gBAAV,CAOA,GAFAh0H,KAAKquH,mBAAmBzE,EAAclV,QAEjC10G,KAAK6hH,gBAGR,OAFA7hH,KAAKipB,MAAQ,aACbjpB,KAAKmkH,sBAAwB,GAI/B,GAAI5tG,EAYF,OAXIA,EAAMtP,OAAS0sG,IACjB3zG,KAAKuuH,iBAGHh4G,EAAMtP,OAAS0sG,GACjB3zG,KAAKmkH,sBAAwB,EAE7BnkH,KAAKqkH,sBAAwB,OAG/BrkH,KAAKs0H,aAAa/9G,GAIpB,IAAI44F,EAAcnvG,KAAK6hH,gBAGvB7hH,KAAKsuH,2BAA2Bnf,EAAYv8E,SAAUg3F,EAAclV,OACpE10G,KAAKipB,MAAQ,YAEbjpB,KAAKY,QAAQ,aACb,IAAIsoE,EAAUimC,EAAYjmC,QAQ1B,GANIA,EAAQt/D,MACVs/D,EAAQt/D,IAAIgB,MAAQg/G,EAAchgH,IAAIgB,OAGxCukG,EAAYvkG,MAAQg/G,EAAch/G,MAEH,mBAApB,YAAkC5K,KAAKg0H,iBAAmBh0H,KAAKg0H,gBAAgBl3F,MAAO,CAC/F,IAAIy3F,EAEAx3D,EAAe,WACjBz0C,EAAO0rG,gBAAgBl3F,MAAMt8B,IAAI,cAAe+zH,GAEhDjsG,EAAOgsG,aAAa,CAClBvhG,QAAS,wBAIb,EAWA,OATAwhG,EAAc,WACZjsG,EAAO0rG,gBAAgBl3F,MAAMt8B,IAAI,aAAcu8D,GAE/Cz0C,EAAOylG,wBAAwBx3G,EAAOqzG,EAAermH,EACvD,EAEAvD,KAAKipB,MAAQ,mBACbjpB,KAAKg0H,gBAAgBl3F,MAAMhX,IAAI,cAAeyuG,QAC9Cv0H,KAAKg0H,gBAAgBl3F,MAAMhX,IAAI,aAAci3C,EAE/C,CAEAmM,EAAQsrD,WAAY,EAEpB,IACEx0H,KAAKy0H,cAActlB,EACrB,CAAE,MAAOpsG,GAIP,YAHA/C,KAAKs0H,aAAa,CAChBvhG,QAAShwB,EAAEgwB,SAGf,CAgBA,GAdA/yB,KAAK00H,mBAAmBvlB,EAAanvG,KAAKmjH,gBAAgBwR,UAAUxlB,EAAYgP,UAAWn+G,KAAK2lH,WAE5FxW,EAAY37E,KAAKl1B,OACnB6wG,EAAYY,WAAa,CACvBv9E,MAAO28E,EAAY37E,KAAK,GAAGE,UAC3BhkB,IAAKy/F,EAAY37E,KAAK27E,EAAY37E,KAAKl1B,OAAS,GAAGq1B,SAGrDw7E,EAAYY,WAAa,CACvBv9E,MAAO28E,EAAY4O,eACnBruG,IAAKy/F,EAAY4O,eAAiB5O,EAAYv8E,UAI9Cu8E,EAAYmP,cAId,OAHAt+G,KAAKY,QAAQ,kBACbZ,KAAK6hH,gBAAkB,UACvB7hH,KAAKipB,MAAQ,SAIfkmF,EAAYrkG,WAAaqkG,EAAYvkG,MAAME,WAC3C9K,KAAKukH,oBAAsBr7C,EAAQt2C,SAGnCu8E,EAAY37E,KAAK30B,SAAQ,SAAU40B,GACjCnL,EAAO0rG,gBAAgB3/F,OAAO/L,EAAO2rG,0BAA4B,IAAI,YAAgBxgG,EAAIC,UAAWD,EAAIE,QAASF,EAAIrrB,MAAQqrB,EAC/H,IAxhJ+B,SAAsCF,GACvE,IAAIC,EAAOD,EAAMC,KAEjB,GAAKA,EAIL,IAAK,IAAIj1B,EAAI,EAAGA,EAAIi1B,EAAKl1B,OAAQC,IAAK,CAIpC,IAHA,IAAIq2H,EAAa,GACbC,EAAc,EAET/qF,EAAI,EAAGA,EAAItW,EAAKl1B,OAAQwrC,IAC3BtW,EAAKj1B,GAAGm1B,YAAcF,EAAKsW,GAAGpW,WAAaF,EAAKj1B,GAAGo1B,UAAYH,EAAKsW,GAAGnW,SAAWH,EAAKj1B,GAAG6J,OAASorB,EAAKsW,GAAG1hC,QAC7GysH,EAEkB,GAChBD,EAAWr0H,KAAKizB,EAAKsW,IAKvB8qF,EAAWt2H,QACbs2H,EAAW/1H,SAAQ,SAAUi2H,GAC3B,OAAOvhG,EAAMkL,UAAUq2F,EACzB,GAEJ,CACF,CAkgJIC,CAA6B/0H,KAAKg0H,iBAClCh0H,KAAKkvH,oBA7GL,MAFElvH,KAAKipB,MAAQ,OAgHjB,EAEA/oB,EAAO0yG,YAAc,WAErB,EAEA1yG,EAAOisH,qBAAuB,WAC9B,EAUAjsH,EAAOu0H,cAAgB,SAAuBtlB,GAC5C,IAAI6lB,EACAC,GAAsB,EAEU,mBAAzB,gBACTD,EAAU,IAAI,iBAAqB,SAEnCA,EAAU,WAAgB54F,gBAC1B64F,GAAsB,GAGxB,IAAIxmH,EAAS,IAAI,WAAgB0tB,QAAO,IAAU,UAAgB64F,GAgBlE,GAfA7lB,EAAY37E,KAAO,GACnB27E,EAAY+lB,aAAe,CACzBC,OAAQ,EACRC,MAAO,GAET3mH,EAAO6tB,MAAQ6yE,EAAY37E,KAAKjzB,KAAK6lB,KAAK+oF,EAAY37E,MAEtD/kB,EAAO4mH,eAAiB,SAAUzrH,GAChCulG,EAAY+lB,aAAetrH,CAC7B,EAEA6E,EAAO8tB,eAAiB,SAAUhmB,GAChCuvD,GAAQtwD,IAAIc,KAAK,wCAA0CC,EAAMwc,QACnE,EAEIo8E,EAAYjmC,QAAQt/D,IAAK,CAC3B,IAAI0rH,EAAUnmB,EAAYjmC,QAAQt/D,IAAIgB,MAElCqqH,IACFK,EAAU5B,GAAY4B,IAGxB7mH,EAAO1J,MAAMuwH,EACf,CAEA,IAAIC,EAAcpmB,EAAYvkG,MAE1BqqH,IACFM,EAAc7B,GAAY6B,IAG5B9mH,EAAO1J,MAAMwwH,GACb9mH,EAAOkuB,OACT,EAgBAz8B,EAAOw0H,mBAAqB,SAA4BvlB,EAAaqmB,EAAYvsD,GAC/E,IAAIC,EAAUimC,EAAYjmC,QAE1B,GAAKssD,EAOL,GAAKrmB,EAAY37E,KAAKl1B,OAAtB,CAQA,IAAI42H,EAAe/lB,EAAY+lB,aAC3BO,EAAOP,EAAaC,OAAS,GAAAjnB,iBAAmBgnB,EAAaE,MAAQI,EAAW9O,QAOpF,GANAvX,EAAY37E,KAAK30B,SAAQ,SAAU40B,GAEjCA,EAAIC,WAAa+hG,EACjBhiG,EAAIE,SAAW8hG,CACjB,KAEKxsD,EAAS+8C,SAAU,CACtB,IAAI0P,EAAavmB,EAAY37E,KAAK,GAAGE,UACjCiiG,EAAYxmB,EAAY37E,KAAK27E,EAAY37E,KAAKl1B,OAAS,GAAGo1B,UAC9Du1C,EAAS+8C,SAAW,CAClBl7C,cAAe7B,EAAS6B,cAAgBqkC,EAAY+O,WACpD1sE,KAAM1lC,KAAKgU,IAAI41G,EAAYC,EAAYzsD,EAAQt2C,UAEnD,CAjBA,MAFEs2C,EAAQxyC,OAAQ,CAoBpB,EAEOo9F,CACT,CAzdoC,CAydlC/T,IAmBE6V,GAAY,SAAmBriG,EAAOsiG,GAGxC,IAFA,IAAIriG,EAAOD,EAAMC,KAERj1B,EAAI,EAAGA,EAAIi1B,EAAKl1B,OAAQC,IAAK,CACpC,IAAIk1B,EAAMD,EAAKj1B,GAEf,GAAIs3H,GAAapiG,EAAIqiG,aAAeD,GAAapiG,EAAIsiG,UACnD,OAAOtiG,CAEX,CAEA,OAAO,IACT,EA6EIuiG,GAAsB,CAE1B,CACE3sH,KAAM,MACN4sH,IAAK,SAAa7S,EAAgBn6C,EAAUr2C,EAAUisF,EAAiB1gF,GACrE,GAAIvL,IAAajgB,IAAU,CAMzB,MALgB,CACd6+B,KAAM,EACNk4B,aAAc,EACdC,UAAW,KAGf,CAEA,OAAO,IACT,GAEF,CACEtgE,KAAM,kBACN4sH,IAAK,SAAa7S,EAAgBn6C,EAAUr2C,EAAUisF,EAAiB1gF,GACrE,IAAK/pB,OAAOC,KAAK+uG,EAAe8S,4BAA4B53H,OAC1D,OAAO,KAGT,IAAI6gG,EAAY,KACZg3B,EAAe,KACf3oD,EAAmBlE,GAAoBL,GAC3C9qC,EAAcA,GAAe,EAE7B,IAAK,IAAI5/B,EAAI,EAAGA,EAAIivE,EAAiBlvE,OAAQC,IAAK,CAGhD,IACIkvE,EAAiBD,EADTvE,EAASmB,SAA2B,IAAhBjsC,EAAoB5/B,EAAIivE,EAAiBlvE,QAAUC,EAAI,IAEnF2qE,EAAUuE,EAAevE,QACzBktD,EAAkBhT,EAAe8S,2BAA2BhtD,EAAQi1C,UAExE,GAAKiY,GAAoBltD,EAAQ0N,eAAjC,CAIA,IACIpkD,EADc02C,EAAQ0N,eAAeG,UAAY,IAC3Bq/C,EAE1B,GAAIltD,EAAQC,OAA6C,iBAA7BsE,EAAe9D,UACzC,IAAK,IAAIr7D,EAAI,EAAGA,EAAIm/D,EAAe9D,UAAWr7D,IAC5CkkB,GAAS02C,EAAQC,MAAM76D,GAAGskB,SAI9B,IAAIykB,EAAWvrC,KAAKC,IAAIoyB,EAAc3L,GAGtC,GAAqB,OAAjB2jG,IAAuC,IAAb9+E,GAAkB8+E,EAAe9+E,GAC7D,MAGF8+E,EAAe9+E,EACf8nD,EAAY,CACV3tD,KAAMhf,EACNk3C,aAAc+D,EAAe/D,aAC7BC,UAAW8D,EAAe9D,UAtB5B,CAwBF,CAEA,OAAOw1B,CACT,GAGF,CACE91F,KAAM,UACN4sH,IAAK,SAAa7S,EAAgBn6C,EAAUr2C,EAAUisF,EAAiB1gF,GACrE,IAAIghE,EAAY,KACZg3B,EAAe,KACnBh4F,EAAcA,GAAe,EAG7B,IAFA,IAAIqvC,EAAmBlE,GAAoBL,GAElC1qE,EAAI,EAAGA,EAAIivE,EAAiBlvE,OAAQC,IAAK,CAGhD,IACIkvE,EAAiBD,EADTvE,EAASmB,SAA2B,IAAhBjsC,EAAoB5/B,EAAIivE,EAAiBlvE,QAAUC,EAAI,IAEnF2qE,EAAUuE,EAAevE,QACzB12C,EAAQi7C,EAAe14B,MAAQ04B,EAAe14B,KAAKviB,OAAS02C,GAAWA,EAAQ12C,MAEnF,GAAI02C,EAAQi1C,WAAaU,QAAoC,IAAVrsF,EAAuB,CACxE,IAAI6kB,EAAWvrC,KAAKC,IAAIoyB,EAAc3L,GAGtC,GAAqB,OAAjB2jG,GAAyBA,EAAe9+E,EAC1C,QAGG8nD,GAA8B,OAAjBg3B,GAAyBA,GAAgB9+E,KACzD8+E,EAAe9+E,EACf8nD,EAAY,CACV3tD,KAAMhf,EACNk3C,aAAc+D,EAAe/D,aAC7BC,UAAW8D,EAAe9D,WAGhC,CACF,CAEA,OAAOw1B,CACT,GAGF,CACE91F,KAAM,gBACN4sH,IAAK,SAAa7S,EAAgBn6C,EAAUr2C,EAAUisF,EAAiB1gF,GACrE,IAAIghE,EAAY,KAGhB,GAFAhhE,EAAcA,GAAe,EAEzB8qC,EAASotD,qBAAuBptD,EAASotD,oBAAoB/3H,OAG/D,IAFA,IAAI63H,EAAe,KAEV53H,EAAI,EAAGA,EAAI0qE,EAASotD,oBAAoB/3H,OAAQC,IAAK,CAC5D,IAAImrE,EAAeT,EAASotD,oBAAoB93H,GAC5Cu6F,EAAgB7vB,EAASqtD,sBAAwB/3H,EAAI,EACrDg4H,EAAoBnT,EAAeoT,gBAAgB19B,GAEvD,GAAIy9B,EAAmB,CACrB,IAAIl/E,EAAWvrC,KAAKC,IAAIoyB,EAAco4F,EAAkB/kF,MAGxD,GAAqB,OAAjB2kF,GAAyBA,EAAe9+E,EAC1C,QAGG8nD,GAA8B,OAAjBg3B,GAAyBA,GAAgB9+E,KACzD8+E,EAAe9+E,EACf8nD,EAAY,CACV3tD,KAAM+kF,EAAkB/kF,KACxBk4B,aAAcA,EACdC,UAAW,MAGjB,CACF,CAGF,OAAOw1B,CACT,GAGF,CACE91F,KAAM,WACN4sH,IAAK,SAAa7S,EAAgBn6C,EAAUr2C,EAAUisF,EAAiB1gF,GACrE,OAAI8qC,EAAS+8C,SACK,CACdx0E,KAAMy3B,EAAS+8C,SAASx0E,KACxBk4B,aAAcT,EAAS+8C,SAASl7C,cAAgB7B,EAAS6B,cACzDnB,UAAW,MAKR,IACT,IAGE8sD,GAA8B,SAAUzW,GAG1C,SAASyW,EAAe5yH,GACtB,IAAIijB,EAQJ,OANAA,EAAQk5F,EAAqBj/G,KAAKf,OAASA,MAErC20H,UAAY,GAClB7tG,EAAM0vG,gBAAkB,GACxB1vG,EAAMovG,2BAA6B,CAAC,EACpCpvG,EAAMypD,QAAUrI,GAAO,kBAChBphD,CACT,EAZA,aAAe2vG,EAAgBzW,GA8B/B,IAAI9/G,EAASu2H,EAAet2H,UA6W5B,OA3WAD,EAAOsnH,aAAe,SAAsBv+C,EAAUr2C,EAAUisF,EAAiB1gF,GAC/E,IAAIu4F,EAAa12H,KAAK22H,eAAe1tD,EAAUr2C,EAAUisF,EAAiB1gF,GAE1E,OAAKu4F,EAAWp4H,OAUT0B,KAAK42H,iBAAiBF,EAAY,CACvCjzH,IAAK,OACLf,MAAOy7B,IARA,IAUX,EAcAj+B,EAAO22H,eAAiB,SAAwB5tD,EAAUr2C,GACxD,IAAKq2C,IAAaA,EAASM,SACzB,OAAO,KAGT,IAAImtD,EAAa12H,KAAK22H,eAAe1tD,EAAUr2C,EAAUq2C,EAASqtD,sBAAuB,GAEzF,IAAKI,EAAWp4H,OACd,OAAO,KAGT,IAAI6gG,EAAYn/F,KAAK42H,iBAAiBF,EAAY,CAChDjzH,IAAK,eACLf,MAAO,IAQT,OAJIy8F,EAAUz1B,aAAe,IAC3By1B,EAAU3tD,OAAS,GAGd1lC,KAAKC,IAAIozF,EAAU3tD,KAAO65B,GAAa,CAC5CC,gBAAiBrC,EAASyB,eAC1Ba,aAActC,EAASM,SACvBiC,WAAY2zB,EAAUz1B,aACtB+B,SAAU,IAEd,EAiBAvrE,EAAOy2H,eAAiB,SAAwB1tD,EAAUr2C,EAAUisF,EAAiB1gF,GAGnF,IAFA,IAAIu4F,EAAa,GAERn4H,EAAI,EAAGA,EAAIy3H,GAAoB13H,OAAQC,IAAK,CACnD,IAAIu4H,EAAWd,GAAoBz3H,GAC/B4gG,EAAY23B,EAASb,IAAIj2H,KAAMipE,EAAUr2C,EAAUisF,EAAiB1gF,GAEpEghE,IACFA,EAAU23B,SAAWA,EAASztH,KAC9BqtH,EAAWn2H,KAAK,CACdu2H,SAAUA,EAASztH,KACnB81F,UAAWA,IAGjB,CAEA,OAAOu3B,CACT,EAkBAx2H,EAAO02H,iBAAmB,SAA0BF,EAAYl/G,GAK9D,IAJA,IAAIu/G,EAAgBL,EAAW,GAAGv3B,UAC9B63B,EAAelrH,KAAKC,IAAI2qH,EAAW,GAAGv3B,UAAU3nF,EAAO/T,KAAO+T,EAAO9U,OACrEu0H,EAAeP,EAAW,GAAGI,SAExBv4H,EAAI,EAAGA,EAAIm4H,EAAWp4H,OAAQC,IAAK,CAC1C,IAAI24H,EAAcprH,KAAKC,IAAI2qH,EAAWn4H,GAAG4gG,UAAU3nF,EAAO/T,KAAO+T,EAAO9U,OAEpEw0H,EAAcF,IAChBA,EAAeE,EACfH,EAAgBL,EAAWn4H,GAAG4gG,UAC9B83B,EAAeP,EAAWn4H,GAAGu4H,SAEjC,CAGA,OADA92H,KAAKuwE,QAAQ,kBAAoB/4D,EAAO/T,IAAM,KAAO+T,EAAO9U,MAA/C,2BAA0Fu0H,EAAe,YAAcF,EAAcvlF,KAArI,kBAAuKulF,EAAcrtD,cAAoD,iBAA5BqtD,EAAcptD,UAAyB,cAAgBotD,EAAcptD,UAAY,IAAM,KAC1SotD,CACT,EAWA72H,EAAOomH,uBAAyB,SAAgCP,EAAaD,GAC3E,IAAIO,EAAoBP,EAAYh7C,cAAgBi7C,EAAYj7C,cAEhE,GAAIu7C,EAjV+B,MAkVjCvgD,GAAQtwD,IAAIc,KAAK,uDAAyD+vG,EAAoB,uBAMhG,IAAK,IAAI9nH,EAAI8nH,EAAoB,EAAG9nH,GAAK,EAAGA,IAAK,CAC/C,IAAI44H,EAAqBpR,EAAYx8C,SAAShrE,GAE9C,GAAI44H,QAA0D,IAA7BA,EAAmB3kG,MAAuB,CACzEszF,EAAYE,SAAW,CACrBl7C,cAAei7C,EAAYj7C,cAAgBvsE,EAC3CizC,KAAM2lF,EAAmB3kG,OAE3BxyB,KAAKuwE,QAAQ,gCAAkCu1C,EAAYE,SAASx0E,KAAvD,oBAA0Fs0E,EAAYE,SAASl7C,cAAgB,KAC5I9qE,KAAKY,QAAQ,kBACb,KACF,CACF,CACF,EASAV,EAAO+lH,2BAA6B,SAAoCh9C,GAOtE,GAFAjpE,KAAKk2H,2BAA6B,CAAC,EAE/BjtD,EAASM,UAAYN,EAASM,SAASjrE,QAAU2qE,EAASM,SAAS,GAAGqN,eAAgB,CACxF,IAAIwgD,EAAenuD,EAASM,SAAS,GACjC8tD,EAAoBD,EAAaxgD,eAAeG,UAAY,IAChE/2E,KAAKk2H,2BAA2BkB,EAAajZ,WAAakZ,CAC5D,CACF,EAeAn3H,EAAOksH,sBAAwB,SAA+BhhH,GAC5D,IAAI+jG,EAAc/jG,EAAK+jG,YACnBkd,EAA4BjhH,EAAKihH,0BACjCiL,EAAiCt3H,KAAKu3H,6BAA6BpoB,EAAaA,EAAYY,WAAYsc,GACxGnjD,EAAUimC,EAAYjmC,QAEtBouD,IACFt3H,KAAKw3H,2BAA2BroB,GAG3BA,EAAYlmC,SAAS+8C,WACxB7W,EAAYlmC,SAAS+8C,SAAW,CAC9Bl7C,cAAeqkC,EAAYlmC,SAAS6B,cAAgBqkC,EAAY+O,WAChE1sE,KAAM03B,EAAQ12C,SAKpB,IAAIilG,EAAWvuD,EAAQ0N,eAEnB1N,EAAQ4vB,eAAiBuzB,GAA6BoL,IACxDz3H,KAAKk2H,2BAA2BhtD,EAAQi1C,WAAcsZ,EAAS1gD,UAAY,IAE/E,EAEA72E,EAAOk0H,2BAA6B,SAAoCjW,GACtE,YAAwC,IAA7Bn+G,KAAK20H,UAAUxW,GACjB,KAGFn+G,KAAK20H,UAAUxW,GAAU3sE,IAClC,EAEAtxC,EAAOyuH,mBAAqB,SAA4BxQ,GACtD,YAAwC,IAA7Bn+G,KAAK20H,UAAUxW,GACjB,KAGFn+G,KAAK20H,UAAUxW,GAAUuI,OAClC,EAkBAxmH,EAAOq3H,6BAA+B,SAAsCpoB,EAAaY,EAAYsc,GAEnG,IAGI75F,EACA9iB,EAJAw5D,EAAUimC,EAAYjmC,QACtBn0B,EAAOo6D,EAAYp6D,KACnBygF,EAAax1H,KAAK20H,UAAUxlB,EAAYgP,UAI5C,GAA2C,iBAAhChP,EAAYgC,gBACrBqkB,EAAa,CACXhkF,KAAM29D,EAAY4O,eAClB2I,QAASvX,EAAY4O,eAAiBhO,EAAWv9E,OAG/C65F,IACFrsH,KAAK20H,UAAUxlB,EAAYgP,UAAYqX,EACvCx1H,KAAKY,QAAQ,mBACbZ,KAAKuwE,QAAQ,6BAA+B4+B,EAAYgP,SAA3C,YAA0EqX,EAAWhkF,KAAO,eAAiBgkF,EAAW9O,QAAU,MAGjJl0F,EAAQ28E,EAAY4O,eACpBruG,EAAMqgG,EAAWrgG,IAAM8lH,EAAW9O,YAC7B,KAAI8O,EAIT,OAAO,EAHPhjG,EAAQu9E,EAAWv9E,MAAQgjG,EAAW9O,QACtCh3G,EAAMqgG,EAAWrgG,IAAM8lH,EAAW9O,OAGpC,CAiBA,OAfI3xE,IACFA,EAAKviB,MAAQA,EACbuiB,EAAKrlC,IAAMA,KAQRw5D,EAAQ12C,OAASA,EAAQ02C,EAAQ12C,SACpC02C,EAAQ12C,MAAQA,GAGlB02C,EAAQx5D,IAAMA,GACP,CACT,EAWAxP,EAAOs3H,2BAA6B,SAAoCroB,GACtE,IAAIlmC,EAAWkmC,EAAYlmC,SACvBC,EAAUimC,EAAYjmC,QAI1B,GAAIA,EAAQ4vB,cACV94F,KAAKw2H,gBAAgBttD,EAAQi1C,UAAY,CACvC3sE,KAAM03B,EAAQ12C,MACdklG,SAAU,QAEP,GAAIzuD,EAASotD,qBAAuBptD,EAASotD,oBAAoB/3H,OAGtE,IAAK,IAAIC,EAAI,EAAGA,EAAI0qE,EAASotD,oBAAoB/3H,OAAQC,IAAK,CAC5D,IAAImrE,EAAeT,EAASotD,oBAAoB93H,GAC5Cu6F,EAAgB7vB,EAASqtD,sBAAwB/3H,EAAI,EACrDo5H,EAAiBjuD,EAAeylC,EAAY+O,WAC5CwZ,EAAW5rH,KAAKC,IAAI4rH,GAExB,IAAK33H,KAAKw2H,gBAAgB19B,IAAkB94F,KAAKw2H,gBAAgB19B,GAAe4+B,SAAWA,EAAU,CACnG,IAAIlmF,OAAO,EAGTA,EADEmmF,EAAiB,EACZzuD,EAAQ12C,MAAQ64C,GAAa,CAClCC,gBAAiBrC,EAASyB,eAC1Ba,aAActC,EAASM,SACvBiC,WAAY2jC,EAAY+O,WACxBzyC,SAAU/B,IAGLR,EAAQx5D,IAAM27D,GAAa,CAChCC,gBAAiBrC,EAASyB,eAC1Ba,aAActC,EAASM,SACvBiC,WAAY2jC,EAAY+O,WAAa,EACrCzyC,SAAU/B,IAId1pE,KAAKw2H,gBAAgB19B,GAAiB,CACpCtnD,KAAMA,EACNkmF,SAAUA,EAEd,CACF,CAEJ,EAEAx3H,EAAOmB,QAAU,WACfrB,KAAKY,QAAQ,WACbZ,KAAKQ,KACP,EAEOi2H,CACT,CA7YkC,CA6YhC3wD,GAAQ6B,aAYNiwD,GAAwC,SAAU5X,GAGpD,SAAS4X,IACP,IAAI9wG,EAKJ,OAHAA,EAAQk5F,EAAqBj/G,KAAKf,OAASA,MACrC63H,wBAA0B,CAAC,EACjC/wG,EAAMgxG,qBAAuB,CAAC,EACvBhxG,CACT,EATA,aAAe8wG,EAA0B5X,GAWzC,IAAI9/G,EAAS03H,EAAyBz3H,UAiDtC,OA/CAD,EAAO4kH,2BAA6B,SAAoCzkH,GACtEL,KAAK63H,wBAAwBx3H,GAAQ,KACrCL,KAAKY,QAAQ,wBACf,EAEAV,EAAOk/G,sBAAwB,SAA+Bh0G,GAC5D,IAAI/K,EAAO+K,EAAK/K,KACZtC,EAAOqN,EAAKrN,KACZsrB,EAAKje,EAAKie,GAWd,MAToB,iBAATtrB,GAAmC,iBAAPsrB,IACrCrpB,KAAK63H,wBAAwBx3H,GAAQ,CACnCA,KAAMA,EACNtC,KAAMA,EACNsrB,GAAIA,GAENrpB,KAAKY,QAAQ,0BAGRZ,KAAK63H,wBAAwBx3H,EACtC,EAEAH,EAAOg/G,mBAAqB,SAA4B7/C,GACtD,IAAIh/D,EAAOg/D,EAAMh/D,KACbtC,EAAOshE,EAAMthE,KACbsrB,EAAKg2C,EAAMh2C,GAYf,MAVoB,iBAATtrB,GAAmC,iBAAPsrB,IACrCrpB,KAAK83H,qBAAqBz3H,GAAQ,CAChCA,KAAMA,EACNtC,KAAMA,EACNsrB,GAAIA,UAECrpB,KAAK63H,wBAAwBx3H,GACpCL,KAAKY,QAAQ,mBAGRZ,KAAK83H,qBAAqBz3H,EACnC,EAEAH,EAAOmB,QAAU,WACfrB,KAAKY,QAAQ,WACbZ,KAAK63H,wBAA0B,CAAC,EAChC73H,KAAK83H,qBAAuB,CAAC,EAC7B93H,KAAKQ,KACP,EAEOo3H,CACT,CA9D4C,CA8D1C9xD,GAAQ6B,aAINowD,GAAa94G,GAAUugE,IAAgB,WACzC,IAAI+pB,EAAuC,oBAAfC,WAA6BA,WAA+B,oBAAX/nG,OAAyBA,YAA2B,IAAX,EAAAgoG,EAAyB,EAAAA,EAAyB,oBAAT9hF,KAAuBA,KAAO,CAAC,EAE9L,SAASqwG,EAAqBvsH,EAAIwsH,EAASv2H,GACzC,OAMG+J,EANI/J,EAAS,CACdsM,KAAMiqH,EACNt2H,QAAS,CAAC,EACVu2H,QAAS,SAAiBlqH,EAAMmqH,GAC9B,OAKN,WACE,MAAM,IAAIn0H,MAAM,0EAClB,CAPao0H,CAAsBD,SAAsCz2H,EAAOsM,KAC5E,GACYtM,EAAOC,SAAUD,EAAOC,OACxC,CAMA,IAAI02H,EAAcL,GAAqB,SAAUt2H,GAC/C,SAAS42H,EAAkB9gH,EAAQgkB,GACjC,IAAK,IAAIj9B,EAAI,EAAGA,EAAIi9B,EAAMl9B,OAAQC,IAAK,CACrC,IAAIkrD,EAAajuB,EAAMj9B,GACvBkrD,EAAWE,WAAaF,EAAWE,aAAc,EACjDF,EAAWG,cAAe,EACtB,UAAWH,IAAYA,EAAWsB,UAAW,GACjD32C,OAAO2Q,eAAevN,EAAQiyC,EAAWhmD,IAAKgmD,EAChD,CACF,CAQA/nD,EAAOC,QANP,SAAsB42H,EAAaC,EAAYC,GAG7C,OAFID,GAAYF,EAAkBC,EAAYp4H,UAAWq4H,GACrDC,GAAaH,EAAkBC,EAAaE,GACzCF,CACT,EAGA72H,EAAOC,QAAiB,QAAID,EAAOC,QAASD,EAAOC,QAAQ+2H,YAAa,CAC1E,IACIC,EAAiBX,GAAqB,SAAUt2H,GAClD,SAASk3H,EAAgBz0E,EAAG30C,GAO1B,OANA9N,EAAOC,QAAUi3H,EAAkBxkH,OAAOukH,gBAAkB,SAAyBx0E,EAAG30C,GAEtF,OADA20C,EAAEjqC,UAAY1K,EACP20C,CACT,EAEAziD,EAAOC,QAAiB,QAAID,EAAOC,QAASD,EAAOC,QAAQ+2H,YAAa,EACjEE,EAAgBz0E,EAAG30C,EAC5B,CAEA9N,EAAOC,QAAUi3H,EACjBl3H,EAAOC,QAAiB,QAAID,EAAOC,QAASD,EAAOC,QAAQ+2H,YAAa,CAC1E,IACIG,EAAgBb,GAAqB,SAAUt2H,GAOjDA,EAAOC,QANP,SAAwBslE,EAAUF,GAChCE,EAAS9mE,UAAYiU,OAAO0kH,OAAO/xD,EAAW5mE,WAC9C8mE,EAAS9mE,UAAU0X,YAAcovD,EACjC0xD,EAAe1xD,EAAUF,EAC3B,EAGArlE,EAAOC,QAAiB,QAAID,EAAOC,QAASD,EAAOC,QAAQ+2H,YAAa,CAC1E,IAWI34H,EAAsB,WACxB,SAASA,IACPC,KAAKC,UAAY,CAAC,CACpB,CAUA,IAAIC,EAASH,EAAOI,UA+FpB,OA7FAD,EAAOE,GAAK,SAAYC,EAAMC,GACvBN,KAAKC,UAAUI,KAClBL,KAAKC,UAAUI,GAAQ,IAGzBL,KAAKC,UAAUI,GAAME,KAAKD,EAC5B,EAWAJ,EAAOM,IAAM,SAAaH,EAAMC,GAC9B,IAAKN,KAAKC,UAAUI,GAClB,OAAO,EAGT,IAAII,EAAQT,KAAKC,UAAUI,GAAMK,QAAQJ,GAWzC,OAFAN,KAAKC,UAAUI,GAAQL,KAAKC,UAAUI,GAAMR,MAAM,GAClDG,KAAKC,UAAUI,GAAMM,OAAOF,EAAO,GAC5BA,GAAS,CAClB,EASAP,EAAOU,QAAU,SAAiBP,GAChC,IAAIQ,EAAYb,KAAKC,UAAUI,GAE/B,GAAKQ,EAQL,GAAyB,IAArBC,UAAUxC,OAGZ,IAFA,IAAIA,EAASuC,EAAUvC,OAEdC,EAAI,EAAGA,EAAID,IAAUC,EAC5BsC,EAAUtC,GAAGwC,KAAKf,KAAMc,UAAU,SAMpC,IAHA,IAAIE,EAAOC,MAAMd,UAAUN,MAAMkB,KAAKD,UAAW,GAC7CI,EAAUL,EAAUvC,OAEf6C,EAAK,EAAGA,EAAKD,IAAWC,EAC/BN,EAAUM,GAAIC,MAAMpB,KAAMgB,EAGhC,EAMAd,EAAOmB,QAAU,WACfrB,KAAKC,UAAY,CAAC,CACpB,EAWAC,EAAOoB,KAAO,SAAcC,GAC1BvB,KAAKI,GAAG,QAAQ,SAAUoB,GACxBD,EAAYhB,KAAKiB,EACnB,GACF,EAEOzB,CACT,CA7G0B,GA4K1B,IA0XImvF,EA1UA6pC,EAAY,KASZC,EAAmB,WACrB,SAASA,EAAIv1H,GAqBX,IAAIlF,EACAurC,EACAmvF,EARCF,IACHA,EA1EW,WACf,IAKIx6H,EACA6N,EACA8sH,EAGAC,EACAC,EAEAv7H,EACAw7H,EACAC,EAfAC,EAAS,CAAC,CAAC,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,KACjDC,EAAWD,EAAO,GAClBE,EAAWF,EAAO,GAClBG,EAAOF,EAAS,GAChBG,EAAUF,EAAS,GAInBz/B,EAAI,GACJ4/B,EAAK,GAQT,IAAKr7H,EAAI,EAAGA,EAAI,IAAKA,IACnBq7H,GAAI5/B,EAAEz7F,GAAKA,GAAK,EAAe,KAAVA,GAAK,IAAYA,GAAKA,EAG7C,IAAK6N,EAAI8sH,EAAO,GAAIQ,EAAKttH,GAAIA,GAAK+sH,GAAM,EAAGD,EAAOU,EAAGV,IAAS,EAW5D,IARAr7H,GADAA,EAAIq7H,EAAOA,GAAQ,EAAIA,GAAQ,EAAIA,GAAQ,EAAIA,GAAQ,IAC9C,EAAQ,IAAJr7H,EAAU,GACvB67H,EAAKttH,GAAKvO,EACV87H,EAAQ97H,GAAKuO,EAGbktH,EAAY,SADPt/B,EAAEo/B,EAAKp/B,EAAEm/B,EAAKn/B,EAAE5tF,KACQ,MAALgtH,EAAoB,IAALD,EAAiB,SAAJ/sH,EACpDitH,EAAc,IAAPr/B,EAAEn8F,GAAiB,SAAJA,EAEjBU,EAAI,EAAGA,EAAI,EAAGA,IACjBi7H,EAASj7H,GAAG6N,GAAKitH,EAAOA,GAAQ,GAAKA,IAAS,EAC9CI,EAASl7H,GAAGV,GAAKy7H,EAAOA,GAAQ,GAAKA,IAAS,EAKlD,IAAK/6H,EAAI,EAAGA,EAAI,EAAGA,IACjBi7H,EAASj7H,GAAKi7H,EAASj7H,GAAGsB,MAAM,GAChC45H,EAASl7H,GAAKk7H,EAASl7H,GAAGsB,MAAM,GAGlC,OAAO05H,CACT,CA4BkBM,IAId75H,KAAK85H,QAAU,CAAC,CAACf,EAAU,GAAG,GAAGl5H,QAASk5H,EAAU,GAAG,GAAGl5H,QAASk5H,EAAU,GAAG,GAAGl5H,QAASk5H,EAAU,GAAG,GAAGl5H,QAASk5H,EAAU,GAAG,GAAGl5H,SAAU,CAACk5H,EAAU,GAAG,GAAGl5H,QAASk5H,EAAU,GAAG,GAAGl5H,QAASk5H,EAAU,GAAG,GAAGl5H,QAASk5H,EAAU,GAAG,GAAGl5H,QAASk5H,EAAU,GAAG,GAAGl5H,UAIpQ,IAAI65H,EAAO15H,KAAK85H,QAAQ,GAAG,GACvBL,EAAWz5H,KAAK85H,QAAQ,GACxBC,EAASt2H,EAAInF,OACb07H,EAAO,EAEX,GAAe,IAAXD,GAA2B,IAAXA,GAA2B,IAAXA,EAClC,MAAM,IAAI/1H,MAAM,wBAGlB,IAAIi2H,EAASx2H,EAAI5D,MAAM,GACnBq6H,EAAS,GAGb,IAFAl6H,KAAK0V,KAAO,CAACukH,EAAQC,GAEhB37H,EAAIw7H,EAAQx7H,EAAI,EAAIw7H,EAAS,GAAIx7H,IACpC06H,EAAMgB,EAAO17H,EAAI,IAEbA,EAAIw7H,GAAW,GAAgB,IAAXA,GAAgBx7H,EAAIw7H,GAAW,KACrDd,EAAMS,EAAKT,IAAQ,KAAO,GAAKS,EAAKT,GAAO,GAAK,MAAQ,GAAKS,EAAKT,GAAO,EAAI,MAAQ,EAAIS,EAAW,IAANT,GAE1F16H,EAAIw7H,GAAW,IACjBd,EAAMA,GAAO,EAAIA,IAAQ,GAAKe,GAAQ,GACtCA,EAAOA,GAAQ,EAAkB,KAAbA,GAAQ,KAIhCC,EAAO17H,GAAK07H,EAAO17H,EAAIw7H,GAAUd,EAInC,IAAKnvF,EAAI,EAAGvrC,EAAGurC,IAAKvrC,IAClB06H,EAAMgB,EAAW,EAAJnwF,EAAQvrC,EAAIA,EAAI,GAG3B27H,EAAOpwF,GADLvrC,GAAK,GAAKurC,EAAI,EACJmvF,EAEAQ,EAAS,GAAGC,EAAKT,IAAQ,KAAOQ,EAAS,GAAGC,EAAKT,GAAO,GAAK,MAAQQ,EAAS,GAAGC,EAAKT,GAAO,EAAI,MAAQQ,EAAS,GAAGC,EAAW,IAANT,GAG5I,CA8DA,OA9CaD,EAAI74H,UAEVq2G,QAAU,SAAiB2jB,EAAYC,EAAYC,EAAYC,EAAYC,EAAKjtH,GACrF,IAMIktH,EACAC,EACAC,EAGAn8H,EAXAkF,EAAMzD,KAAK0V,KAAK,GAEhB/N,EAAIwyH,EAAa12H,EAAI,GACrBmE,EAAI0yH,EAAa72H,EAAI,GACrBoG,EAAIwwH,EAAa52H,EAAI,GACrBu2F,EAAIogC,EAAa32H,EAAI,GAKrBk3H,EAAel3H,EAAInF,OAAS,EAAI,EAEhCs8H,EAAS,EACTpsB,EAAQxuG,KAAK85H,QAAQ,GAErBe,EAASrsB,EAAM,GACfssB,EAAStsB,EAAM,GACfusB,EAASvsB,EAAM,GACfwsB,EAASxsB,EAAM,GACfkrB,EAAOlrB,EAAM,GAEjB,IAAKjwG,EAAI,EAAGA,EAAIo8H,EAAcp8H,IAC5Bi8H,EAAKK,EAAOlzH,IAAM,IAAMmzH,EAAOlzH,GAAK,GAAK,KAAOmzH,EAAOlxH,GAAK,EAAI,KAAOmxH,EAAW,IAAJhhC,GAAWv2F,EAAIm3H,GAC7FH,EAAKI,EAAOjzH,IAAM,IAAMkzH,EAAOjxH,GAAK,GAAK,KAAOkxH,EAAO/gC,GAAK,EAAI,KAAOghC,EAAW,IAAJrzH,GAAWlE,EAAIm3H,EAAS,GACtGF,EAAKG,EAAOhxH,IAAM,IAAMixH,EAAO9gC,GAAK,GAAK,KAAO+gC,EAAOpzH,GAAK,EAAI,KAAOqzH,EAAW,IAAJpzH,GAAWnE,EAAIm3H,EAAS,GACtG5gC,EAAI6gC,EAAO7gC,IAAM,IAAM8gC,EAAOnzH,GAAK,GAAK,KAAOozH,EAAOnzH,GAAK,EAAI,KAAOozH,EAAW,IAAJnxH,GAAWpG,EAAIm3H,EAAS,GACrGA,GAAU,EACVjzH,EAAI6yH,EACJ5yH,EAAI6yH,EACJ5wH,EAAI6wH,EAIN,IAAKn8H,EAAI,EAAGA,EAAI,EAAGA,IACjBg8H,GAAK,GAAKh8H,GAAK+O,GAAUosH,EAAK/xH,IAAM,KAAO,GAAK+xH,EAAK9xH,GAAK,GAAK,MAAQ,GAAK8xH,EAAK7vH,GAAK,EAAI,MAAQ,EAAI6vH,EAAS,IAAJ1/B,GAAWv2F,EAAIm3H,KAC1HJ,EAAK7yH,EACLA,EAAIC,EACJA,EAAIiC,EACJA,EAAImwF,EACJA,EAAIwgC,CAER,EAEOxB,CACT,CA9HuB,GAwInBiC,EAA2B,SAAUC,GAGvC,SAASD,IACP,IAAIn0G,EAMJ,OAJAA,EAAQo0G,EAAQn6H,KAAKf,KAAMD,IAAWC,MAChCm7H,KAAO,GACbr0G,EAAM0sD,MAAQ,EACd1sD,EAAMs0G,SAAW,KACVt0G,CACT,CAVA+xG,EAAcoC,EAAaC,GAkB3B,IAAIh7H,EAAS+6H,EAAY96H,UA0BzB,OAxBAD,EAAOm7H,YAAc,WACnBr7H,KAAKm7H,KAAK7oH,OAAVtS,GAEIA,KAAKm7H,KAAK78H,OACZ0B,KAAKo7H,SAAW/0H,WAAWrG,KAAKq7H,YAAYj1G,KAAKpmB,MAAOA,KAAKwzE,OAE7DxzE,KAAKo7H,SAAW,IAEpB,EAQAl7H,EAAOK,KAAO,SAAc+6H,GAC1Bt7H,KAAKm7H,KAAK56H,KAAK+6H,GAEVt7H,KAAKo7H,WACRp7H,KAAKo7H,SAAW/0H,WAAWrG,KAAKq7H,YAAYj1G,KAAKpmB,MAAOA,KAAKwzE,OAEjE,EAEOynD,CACT,CA9C+B,CA8C7Bl7H,GAOEw7H,EAAO,SAAcC,GACvB,OAAOA,GAAQ,IAAa,MAAPA,IAAkB,GAAY,SAAPA,IAAoB,EAAIA,IAAS,EAC/E,EAgFIC,EAAyB,WAC3B,SAASA,EAAU3kB,EAAWrzG,EAAKi4H,EAAYv/C,GAC7C,IAAIzG,EAAO+lD,EAAUE,KACjBC,EAAc,IAAIC,WAAW/kB,EAAUpsG,QACvCmsG,EAAY,IAAIx4G,WAAWy4G,EAAUhsG,YACrCvM,EAAI,EAKR,IAJAyB,KAAK87H,aAAe,IAAIb,EAExBj7H,KAAK87H,aAAav7H,KAAKP,KAAK+7H,cAAcH,EAAYltH,SAASnQ,EAAGA,EAAIm3E,GAAOjyE,EAAKi4H,EAAY7kB,IAEzFt4G,EAAIm3E,EAAMn3E,EAAIq9H,EAAYt9H,OAAQC,GAAKm3E,EAC1CgmD,EAAa,IAAIvnB,YAAY,CAAConB,EAAKK,EAAYr9H,EAAI,IAAKg9H,EAAKK,EAAYr9H,EAAI,IAAKg9H,EAAKK,EAAYr9H,EAAI,IAAKg9H,EAAKK,EAAYr9H,EAAI,MACjIyB,KAAK87H,aAAav7H,KAAKP,KAAK+7H,cAAcH,EAAYltH,SAASnQ,EAAGA,EAAIm3E,GAAOjyE,EAAKi4H,EAAY7kB,IAIhG72G,KAAK87H,aAAav7H,MAAK,WA3Y3B,IAAey7H,EA6YT7/C,EAAK,MA7YI6/C,EA6YQnlB,GA5YPnoG,SAAS,EAAGstH,EAAOlxH,WAAakxH,EAAOA,EAAOlxH,WAAa,IA6YvE,GACF,CA2BA,OAnBa2wH,EAAUt7H,UAKhB47H,cAAgB,SAAuBjlB,EAAWrzG,EAAKi4H,EAAY7kB,GACxE,OAAO,WACL,IAAIjsG,EAnGI,SAAiBksG,EAAWrzG,EAAKi4H,GAE7C,IAOIO,EACAC,EACAC,EACAC,EACAjC,EACAC,EACAC,EACAC,EAEA+B,EAhBAT,EAAc,IAAIC,WAAW/kB,EAAUpsG,OAAQosG,EAAUjsG,WAAYisG,EAAUhsG,YAAc,GAC7FwxH,EAAW,IAAItD,EAAI/3H,MAAMd,UAAUN,MAAMkB,KAAK0C,IAE9CozG,EAAY,IAAIx4G,WAAWy4G,EAAUhsG,YACrCyxH,EAAc,IAAIV,WAAWhlB,EAAUnsG,QAqB3C,IANAuxH,EAAQP,EAAW,GACnBQ,EAAQR,EAAW,GACnBS,EAAQT,EAAW,GACnBU,EAAQV,EAAW,GAGdW,EAAS,EAAGA,EAAST,EAAYt9H,OAAQ+9H,GAAU,EAGtDlC,EAAaoB,EAAKK,EAAYS,IAC9BjC,EAAamB,EAAKK,EAAYS,EAAS,IACvChC,EAAakB,EAAKK,EAAYS,EAAS,IACvC/B,EAAaiB,EAAKK,EAAYS,EAAS,IAEvCC,EAAS9lB,QAAQ2jB,EAAYC,EAAYC,EAAYC,EAAYiC,EAAaF,GAG9EE,EAAYF,GAAUd,EAAKgB,EAAYF,GAAUJ,GACjDM,EAAYF,EAAS,GAAKd,EAAKgB,EAAYF,EAAS,GAAKH,GACzDK,EAAYF,EAAS,GAAKd,EAAKgB,EAAYF,EAAS,GAAKF,GACzDI,EAAYF,EAAS,GAAKd,EAAKgB,EAAYF,EAAS,GAAKD,GAEzDH,EAAQ9B,EACR+B,EAAQ9B,EACR+B,EAAQ9B,EACR+B,EAAQ9B,EAGV,OAAOzjB,CACT,CAiDkBL,CAAQM,EAAWrzG,EAAKi4H,GACpC7kB,EAAUz0F,IAAIxX,EAAOksG,EAAUjsG,WACjC,CACF,EAEAwtH,EAAYoD,EAAW,KAAM,CAAC,CAC5Bh4H,IAAK,OACL6e,IAAK,WAEH,OAAO,IACT,KAEKm5G,CACT,CAhD6B,GAqD3BvsC,EADoB,oBAAXztF,OACHA,YAC6B,IAAnB8nG,EACVA,EACmB,oBAAT5hF,KACVA,KAEA,CAAC,EAGT,IAUI5c,EAVWmkF,EAUOnkF,QAAU/B,OAC/B+B,EAAO,OAAQA,EAAO,SAAUA,EAAO,WAAYA,EAAO,aAAcA,EAAO,eAAgBA,EAAO,iBAAkBA,EAAO,mBAAoBA,EAAO,qBAAsBA,EAAO,uBAaxL,IAAIqqE,EAA4B,SAAmCriD,GACjE,IAAIsiD,EAAe,CAAC,EAcpB,OAbAjhE,OAAOC,KAAK0e,GAASl0B,SAAQ,SAAU4E,GACrC,IAzB+C2D,EAyB3C1E,EAAQqwB,EAAQtvB,GAzB2B2D,EA2BzB1E,GA1BG,aAAvB8H,YAAYC,OACPD,YAAYC,OAAOrD,GAGrBA,GAAOA,EAAIsD,kBAAkBF,aAuBhC6qE,EAAa5xE,GAAO,CAClBmH,MAAOlI,EAAMgI,OACbG,WAAYnI,EAAMmI,WAClBC,WAAYpI,EAAMoI,YAGpBuqE,EAAa5xE,GAAOf,CAExB,IACO2yE,CACT,EAUA1tD,KAAK0pF,UAAY,SAAUxyF,GACzB,IAAIrd,EAAOqd,EAAMrd,KACbs1G,EAAY,IAAIz4G,WAAWmD,EAAKs1G,UAAUlsG,MAAOpJ,EAAKs1G,UAAUjsG,WAAYrJ,EAAKs1G,UAAUhsG,YAC3FrH,EAAM,IAAI0wG,YAAY3yG,EAAKiC,IAAImH,MAAOpJ,EAAKiC,IAAIoH,WAAYrJ,EAAKiC,IAAIqH,WAAa,GACjFisG,EAAK,IAAI5C,YAAY3yG,EAAKu1G,GAAGnsG,MAAOpJ,EAAKu1G,GAAGlsG,WAAYrJ,EAAKu1G,GAAGjsG,WAAa,GAGjF,IAAI2wH,EAAU3kB,EAAWrzG,EAAKszG,GAAI,SAAUl1G,EAAK+I,GAC/C+c,KAAKioF,YAAYx6B,EAA0B,CACzCz9D,OAAQnW,EAAKmW,OACbk/F,UAAWjsG,IACT,CAACA,EAAMF,QACb,GAEF,CACF,KACI+wH,GAAY78C,GAAQm5C,IASpByE,GAAkB,SAAyBzhH,GAC7C,IAAIqe,EAAOre,EAAoB,QAAI,OAAS,cAM5C,OAJIA,EAAW0hH,iBAAmB1hH,EAAW0hH,gBAAgB/7H,QAAQ,yCAA2C,IAC9G04B,EAAO,aAGFA,CACT,EAYIsjG,GAAc,SAAqBC,EAAe79H,GACpD69H,EAAc31H,QACd21H,EAAc/mG,QAEV92B,GAAaA,EAAU89H,uBACzB99H,EAAU89H,qBAAqBhnG,QAC/B92B,EAAU89H,qBAAuB,KAErC,EAYIC,GAAe,SAAsBC,EAAgBh+H,GAGvDA,EAAU89H,qBAAuBE,EACjCA,EAAe/9F,MACjB,EAwKImyF,GAAU,CAcZtkD,MAAO,SAAevsE,EAAM68B,GAC1B,OAAO,WACL,IAAIy/F,EAAgBz/F,EAAS6/F,eAAe18H,GACxCvB,EAAYo+B,EAAS10B,WAAWnI,GAChC28H,EAA2B9/F,EAAS8/F,yBACxCN,GAAYC,EAAe79H,GAE3B,IAAIm+H,EAAcn+H,EAAUm+H,cACxBC,EAAcp+H,EAAUo+H,cACxB1uH,GAAM0uH,EAAY5oH,QAAO,SAAU4oE,GACrC,OAAOA,EAAe,OACxB,IAAG,IAAMggD,EAAY,IAAI1uH,GACrB2uH,EAAer+H,EAAU24B,OAAOjpB,GAEpC,GAAIyuH,IAAgBE,EAApB,CAWA,IAAK,IAAInhC,KAFTl2B,GAAQtwD,IAAIc,KAAK,oFAEGxX,EAAU24B,OAC5B34B,EAAU24B,OAAOukE,GAASzjE,QAAUz5B,EAAU24B,OAAOukE,KAAamhC,EAGpEr+H,EAAUs+H,gBARV,MAJEJ,EAAyB,CACvBjqG,QAAS,wDAYf,CACF,EAcAsqG,UAAW,SAAmBh9H,EAAM68B,GAClC,OAAO,WACL,IAAIy/F,EAAgBz/F,EAAS6/F,eAAe18H,GACxCvB,EAAYo+B,EAAS10B,WAAWnI,GACpCylE,GAAQtwD,IAAIc,KAAK,4EACjBomH,GAAYC,EAAe79H,GAC3B,IAAIy0B,EAAQz0B,EAAUm+H,cAElB1pG,IACFA,EAAM6J,KAAO,YAGft+B,EAAUs+H,gBACZ,CACF,GAEEE,GAAiB,CAYnB1wD,MAAO,SAAevsE,EAAMy8H,EAAgB5/F,GAC1C,GAAK4/F,EAAL,CAKA,IAAIjpG,EAAOqJ,EAASrJ,KAChB0pG,EAAiBrgG,EAASqgG,eAC1BZ,EAAgBz/F,EAAS6/F,eAAe18H,GAC5Cy8H,EAAe18H,GAAG,kBAAkB,WAClC,IAAIu7D,EAAQmhE,EAAenhE,QAC3BghE,EAAc1zD,SAAStN,EAAO4hE,KAGzB1pG,EAAK6B,UAAYimC,EAAMyO,SAA8B,SAAnBv2C,EAAKw5B,YAC1CsvE,EAAc59F,MAElB,IACA+9F,EAAe18H,GAAG,kBAAkB,WAClCu8H,EAAc1zD,SAAS6zD,EAAenhE,QAAS4hE,GAE1C1pG,EAAK6B,UACRinG,EAAc59F,MAElB,IACA+9F,EAAe18H,GAAG,QAAS8wH,GAAQ7wH,GAAMA,EAAM68B,GArB/C,CAsBF,EAaAmgG,UAAW,SAAmBh9H,EAAMy8H,EAAgB5/F,GAClD,IAAIrJ,EAAOqJ,EAASrJ,KAChB0pG,EAAiBrgG,EAASqgG,eAC1BZ,EAAgBz/F,EAAS6/F,eAAe18H,GACxCvB,EAAYo+B,EAAS10B,WAAWnI,GACpCy8H,EAAe18H,GAAG,kBAAkB,WAClC,IAAIu7D,EAAQmhE,EAAenhE,QAC3BghE,EAAc1zD,SAAStN,EAAO4hE,GAC9BZ,EAAcppG,MAAMz0B,EAAUm+H,iBAGzBppG,EAAK6B,UAAYimC,EAAMyO,SAA8B,SAAnBv2C,EAAKw5B,YAC1CsvE,EAAc59F,MAElB,IACA+9F,EAAe18H,GAAG,kBAAkB,WAClCu8H,EAAc1zD,SAAS6zD,EAAenhE,QAAS4hE,GAE1C1pG,EAAK6B,UACRinG,EAAc59F,MAElB,IACA+9F,EAAe18H,GAAG,QAAS8wH,GAAQ7wH,GAAMA,EAAM68B,GACjD,GAEEsgG,GAAa,CAUf,MAAS,SAAen9H,EAAM68B,GAC5B,IAAIozC,EAAMpzC,EAASozC,IACfkvC,EAAatiF,EAASsiF,WACtBmd,EAAgBz/F,EAAS6/F,eAAe18H,GACxCk9H,EAAiBrgG,EAASqgG,eAC1Bv+H,EAAck+B,EAASx+B,OAAOM,YAC9By+H,EAAwBvgG,EAAS10B,WAAWnI,GAC5C1B,EAAS8+H,EAAsB9+H,OAC/B84B,EAASgmG,EAAsBhmG,OAC/B84C,EAAUktD,EAAsBltD,QAChC2J,EAAuBh9C,EAASg9C,qBAChCzL,EAAkB3B,GAAYoN,EAAqBx7E,QAgBvD,IAAK,IAAIgwE,KAdJ1vE,EAAYqB,IAAmD,IAA1C+T,OAAOC,KAAKrV,EAAYqB,IAAO/B,SACvDU,EAAYqB,GAAQ,CAClBm6B,KAAM,CACJ,QAAW,CACT,SAAW,KAKbi0C,IACFzvE,EAAYqB,GAAMm6B,KAAc,QAAE6xC,UAAY6N,EAAqBx7E,OAAO2tE,YAI1DrtE,EAAYqB,GAK9B,IAAK,IAAIq9H,KAJJ/+H,EAAO+vE,KACV/vE,EAAO+vE,GAAW,IAGK1vE,EAAYqB,GAAMquE,GAAU,CACnD,IAAI3zD,EAAa/b,EAAYqB,GAAMquE,GAASgvD,GACxCZ,OAAiB,EA2BrB,GAzBIruD,GACF8B,EAAQ,gBAAkB7B,EAAU,YAAcgvD,EAAe,0BACjE3iH,EAAW4iH,kBAAmB,EAC9Bb,EAAiB,MAGjBA,EADwB,aAAftd,GAA6BzkG,EAAWsxD,UAChC,IAAIgE,GAAet1D,EAAWsxD,UAAU,GAAIiE,EAAKitD,GACzDxiH,EAAW2xD,YACH,IAAI2D,GAAet1D,EAAW2xD,YAAa4D,EAAKitD,GAExDxiH,EAAWsxD,WAA4B,SAAfmzC,EAChB,IAAIxlC,GAAmBj/D,EAAWsxD,UAAU,GAAIiE,EAAKitD,EAAgBrjD,GAIrE,KAGnBn/D,EAAa+qD,GAAQsB,aAAa,CAChC54D,GAAIkvH,EACJZ,eAAgBA,GACf/hH,GACHuiH,GAAej9H,GAAMA,EAAM0a,EAAW+hH,eAAgB5/F,GACtDv+B,EAAO+vE,GAASnuE,KAAKwa,QAEe,IAAzB0c,EAAOimG,GAA+B,CAC/C,IAAInqG,EAAQ,IAAIuyC,GAAQp1D,WAAW,CACjClC,GAAIkvH,EACJtkG,KAAMojG,GAAgBzhH,GACtBwd,SAAS,EACTxM,SAAUhR,EAAWgR,SACrB,QAAWhR,EAAoB,QAC/Bsa,MAAOqoG,IAETjmG,EAAOimG,GAAgBnqG,CACzB,CACF,CAIFopG,EAAcv8H,GAAG,QAAS8wH,GAAQ7wH,GAAMA,EAAM68B,GAChD,EAWA,UAAa,SAAmB78B,EAAM68B,GACpC,IAAIrJ,EAAOqJ,EAASrJ,KAChBy8C,EAAMpzC,EAASozC,IACfkvC,EAAatiF,EAASsiF,WACtBmd,EAAgBz/F,EAAS6/F,eAAe18H,GACxCk9H,EAAiBrgG,EAASqgG,eAC1Bv+H,EAAck+B,EAASx+B,OAAOM,YAC9B4+H,EAAyB1gG,EAAS10B,WAAWnI,GAC7C1B,EAASi/H,EAAuBj/H,OAChC84B,EAASmmG,EAAuBnmG,OAChCyiD,EAAuBh9C,EAASg9C,qBAEpC,IAAK,IAAIxL,KAAW1vE,EAAYqB,GAK9B,IAAK,IAAIq9H,KAJJ/+H,EAAO+vE,KACV/vE,EAAO+vE,GAAW,IAGK1vE,EAAYqB,GAAMquE,GACzC,IAAI1vE,EAAYqB,GAAMquE,GAASgvD,GAAcG,OAA7C,CAYA,IAAI9iH,EAAa/b,EAAYqB,GAAMquE,GAASgvD,GACxCZ,OAAiB,EAErB,GAAmB,QAAftd,EACFsd,EAAiB,IAAIzsD,GAAet1D,EAAW2xD,YAAa4D,EAAKitD,QAC5D,GAAmB,SAAf/d,EAAuB,CAKhC,IAJgBzkG,EAAWsxD,UAAU/3D,QAAO,SAAU9E,GACpD,OAAOA,EAAEw8D,eAAiBr5D,GAC5B,IAEerU,OACb,OAGFw+H,EAAiB,IAAI9iD,GAAmBj/D,EAAWsxD,UAAU,GAAIiE,EAAKitD,EAAgBrjD,EACxF,KAA0B,aAAfslC,IACTsd,EAAiB,IAAIzsD,GAErBt1D,EAAWsxD,UAAYtxD,EAAWsxD,UAAU,GAAKtxD,EAAW2xD,YAAa4D,EAAKitD,IAUhF,GAPAxiH,EAAa+qD,GAAQsB,aAAa,CAChC54D,GAAIkvH,EACJZ,eAAgBA,GACf/hH,GACHuiH,GAAej9H,GAAMA,EAAM0a,EAAW+hH,eAAgB5/F,GACtDv+B,EAAO+vE,GAASnuE,KAAKwa,QAEe,IAAzB0c,EAAOimG,GAA+B,CAC/C,IAAInqG,EAAQM,EAAKO,mBAAmB,CAClC5lB,GAAIkvH,EACJtkG,KAAM,YACN,QAAWre,EAAoB,SAAKA,EAAW+iH,WAC/C/xG,SAAUhR,EAAWgR,SACrBsJ,MAAOqoG,IACN,GAAOnqG,MACVkE,EAAOimG,GAAgBnqG,CACzB,CAvCA,CA4CJopG,EAAcv8H,GAAG,QAAS8wH,GAAQ7wH,GAAMA,EAAM68B,GAChD,EAWA,kBAAmB,SAAwB78B,EAAM68B,GAC/C,IAAIrJ,EAAOqJ,EAASrJ,KAChB70B,EAAck+B,EAASx+B,OAAOM,YAC9B++H,EAAyB7gG,EAAS10B,WAAWnI,GAC7C1B,EAASo/H,EAAuBp/H,OAChC84B,EAASsmG,EAAuBtmG,OAEpC,IAAK,IAAIi3C,KAAW1vE,EAAYqB,GAK9B,IAAK,IAAIq9H,KAJJ/+H,EAAO+vE,KACV/vE,EAAO+vE,GAAW,IAGK1vE,EAAYqB,GAAMquE,GAAU,CACnD,IAAI3zD,EAAa/b,EAAYqB,GAAMquE,GAASgvD,GAE5C,GAAK,kBAAkBp+H,KAAKyb,EAAW6vG,YAAvC,CAIA,IAAIn/B,EAAkB53D,EAAKnJ,SAAS4lD,KAAOz8C,EAAKnJ,SAAS4lD,IAAImb,iBAAmB,CAAC,EAC7EuyC,EAAW,CACb3oG,MAAOqoG,EACP3xG,SAAUhR,EAAWgR,SACrB6+F,WAAY7vG,EAAW6vG,WACvB,QAAW7vG,EAAoB,SAAKA,EAAW+iH,YAiBjD,GAdIryC,EAAgBuyC,EAASpT,cAC3BoT,EAAWl4D,GAAQsB,aAAa42D,EAAUvyC,EAAgBuyC,EAASpT,mBAGzCxmH,IAAxB45H,EAAkB,gBACbA,EAAkB,QAK3Br/H,EAAO+vE,GAASnuE,KAAKulE,GAAQsB,aAAa,CACxC54D,GAAIkvH,GACH3iH,SAEiC,IAAzB0c,EAAOimG,GAA+B,CAC/C,IAAInqG,EAAQM,EAAKO,mBAAmB,CAClC5lB,GAAIwvH,EAASpT,WACbxxF,KAAM,WACN,QAAW4kG,EAAkB,QAC7BjyG,SAAUiyG,EAASjyG,SACnBsJ,MAAO2oG,EAAS3oG,QACf,GAAO9B,MACVkE,EAAOimG,GAAgBnqG,CACzB,CAjCA,CAkCF,CAEJ,GAGE0qG,GAAa,SAASA,EAAW3lG,EAAMqjC,GACzC,IAAK,IAAIp9D,EAAI,EAAGA,EAAI+5B,EAAKh6B,OAAQC,IAAK,CACpC,GAAIkuE,GAAc9Q,EAAOrjC,EAAK/5B,IAC5B,OAAO,EAGT,GAAI+5B,EAAK/5B,GAAG8tE,WAAa4xD,EAAW3lG,EAAK/5B,GAAG8tE,UAAW1Q,GACrD,OAAO,CAEX,CAEA,OAAO,CACT,EAwEIshE,GAAc,CAahBrwD,MAAO,SAAevsE,EAAM68B,GAC1B,OAAO,WACL,IAAIzF,EAASyF,EAAS10B,WAAWnI,GAAMo3B,OAEvC,IAAK,IAAIjpB,KAAMipB,EACb,GAAIA,EAAOjpB,GAAI+pB,QACb,OAAOd,EAAOjpB,GAIlB,OAAO,IACT,CACF,EAcA6uH,UAAW,SAAmBh9H,EAAM68B,GAClC,OAAO,WACL,IAAIzF,EAASyF,EAAS10B,WAAWnI,GAAMo3B,OAEvC,IAAK,IAAIjpB,KAAMipB,EACb,GAAwB,YAApBA,EAAOjpB,GAAI4uB,MAA0C,WAApB3F,EAAOjpB,GAAI4uB,KAC9C,OAAO3F,EAAOjpB,GAIlB,OAAO,IACT,CACF,GAuCE0vH,GAAmB,SAA0BhhG,GAC/C,CAAC,QAAS,YAAa,mBAAmBr+B,SAAQ,SAAUwB,GAC1Dm9H,GAAWn9H,GAAMA,EAAM68B,EACzB,IACA,IAAI10B,EAAa00B,EAAS10B,WACtB0xE,EAAuBh9C,EAASg9C,qBAChCrmD,EAAOqJ,EAASrJ,KAChBy8C,EAAMpzC,EAASozC,IACf6tD,EAAyBjhG,EAAS6/F,eAClCqB,EAAqBD,EAA8B,MACnDE,EAAoBF,EAAuB3jG,KAE/C,CAAC,QAAS,aAAa37B,SAAQ,SAAUwB,GACvCmI,EAAWnI,GAAM68H,YA9JH,SAAqB78H,EAAM68B,GAC3C,OAAO,SAAU3J,GACf,IAAI2mD,EAAuBh9C,EAASg9C,qBAChCv7E,EAASu+B,EAAS10B,WAAWnI,GAAM1B,OACnCg9D,EAAQue,EAAqBve,QAEjC,IAAKA,EACH,OAAO,KAGT,IAAI2iE,EAAW,KAEX3iE,EAAM3gD,WAAW3a,KACnBi+H,EAAW3/H,EAAOg9D,EAAM3gD,WAAW3a,KAGrC,IAAIk+H,EAAYnqH,OAAOC,KAAK1V,GAE5B,IAAK2/H,EAIH,GAAa,UAATj+H,GAAoBk+H,EAAUjgI,OAAS,GAAKwuE,GAAY5vC,EAASx+B,QACnE,IAAK,IAAIH,EAAI,EAAGA,EAAIggI,EAAUjgI,OAAQC,IAAK,CACzC,IAAIigI,EAAoB7/H,EAAO4/H,EAAUhgI,IAEzC,GAAI0/H,GAAWO,EAAmB7iE,GAAQ,CACxC2iE,EAAWE,EACX,KACF,CACF,MAES7/H,EAAO67B,KAChB8jG,EAAW3/H,EAAO67B,KACY,IAArB+jG,EAAUjgI,SACnBggI,EAAW3/H,EAAO4/H,EAAU,KAIhC,YAAqB,IAAVhrG,EACF+qG,EAGK,OAAV/qG,GAAmB+qG,GAMhBA,EAAShqH,QAAO,SAAUknB,GAC/B,OAAOA,EAAMhtB,KAAO+kB,EAAM/kB,EAC5B,IAAG,IALM,IAMX,CACF,CAyGmC0uH,CAAY78H,EAAM68B,GACjD10B,EAAWnI,GAAM48H,YAAcA,GAAY58H,GAAMA,EAAM68B,GACvD10B,EAAWnI,GAAMo+H,eAxtBA,SAAwBp+H,EAAM68B,GACjD,OAAO,WACL,IAAIwhG,EAAwBxhG,EAAS6/F,eACjCJ,EAAgB+B,EAAsBr+H,GACtCg+H,EAAoBK,EAAsBlkG,KAC1C17B,EAAYo+B,EAAS10B,WAAWnI,GAChC48H,EAAcn+H,EAAUm+H,cACxBC,EAAcp+H,EAAU6/H,iBACxBC,EAAuB9/H,EAAU89H,qBACjCiC,EAAY//H,EAAUggI,WAEtB5B,GAAe2B,GAAa3B,EAAY1uH,KAAOqwH,EAAUrwH,KAI7D1P,EAAUggI,WAAa5B,EACvBp+H,EAAUigI,WAAa9B,EACvBP,GAAYC,EAAe79H,GAEtBo+H,IAAeA,EAAYS,mBAK3BT,EAAYJ,gBAajBH,EAAcxW,eACd0W,GAAaK,EAAYJ,eAAgBh+H,IAbnC8/H,GAKFP,EAAkBxY,mBASxB,CACF,CAgrBsC4Y,CAAep+H,EAAM68B,GACvD10B,EAAWnI,GAAM2+H,gBA/qBC,SAAyB3+H,EAAM68B,GACnD,OAAO,WACL,IAAIy/F,EAAgBz/F,EAAS6/F,eAAe18H,GAC5B68B,EAAS10B,WAAWnI,GAC1By+H,WAAa,KACvBnC,EAAc31H,QACd21H,EAAc/mG,OAChB,CACF,CAuqBuCopG,CAAgB3+H,EAAM68B,GACzD10B,EAAWnI,GAAM+8H,eAvpBA,SAAwB/8H,EAAM68B,GACjD,OAAO,WACL,IAAIg9C,EAAuBh9C,EAASg9C,qBAChC+kD,EAAyB/hG,EAAS6/F,eAClCJ,EAAgBsC,EAAuB5+H,GACvCg+H,EAAoBY,EAAuBzkG,KAC3C17B,EAAYo+B,EAAS10B,WAAWnI,GAChC48H,EAAcn+H,EAAUm+H,cACxBC,EAAcp+H,EAAU6/H,iBACxBC,EAAuB9/H,EAAU89H,qBACjCsC,EAAYpgI,EAAUigI,WAE1B,KAAIG,IAAajC,GAAeiC,EAAU1wH,KAAOyuH,EAAYzuH,MAI7D1P,EAAUggI,WAAa5B,EACvBp+H,EAAUigI,WAAa9B,EACvBP,GAAYC,EAAe79H,GAEtBo+H,GAAL,CAKA,GAAIA,EAAYS,iBAAkB,CAEhC,IAAKV,IAAgBiC,GAAajC,EAAYzuH,KAAO0wH,EAAU1wH,GAC7D,OAGF,IAAI2wH,EAAMjiG,EAASozC,IAAIssC,0BACnBkJ,EAAcqZ,EAAIC,iBAEtB,GAAID,EAAIxjE,UAAYmqD,EAClB,OAOF,OAJAhnH,EAAUyxE,QAAQ,6CAA+C2uD,EAAU1wH,GAAK,OAASyuH,EAAYzuH,IACrG0rE,EAAqBtkD,QACrByoG,EAAkBxY,uBAClBsZ,EAAIE,mBAAmBvZ,EAEzB,CAEA,GAAa,UAATzlH,EAAkB,CACpB,IAAK68H,EAAYJ,eAQf,OAJAuB,EAAkB3Z,UAAS,QAG3B2Z,EAAkBxY,kBAOpB8W,EAAcjY,UAAS,GACvB2Z,EAAkB3Z,UAAS,EAC7B,CAEIka,IAAyB1B,EAAYJ,gBAQrCH,EAAcppG,OAEhBopG,EAAcppG,MAAM0pG,GAItBN,EAAc9W,kBACdgX,GAAaK,EAAYJ,eAAgBh+H,IAXvC+9H,GAAaK,EAAYJ,eAAgBh+H,EA7C3C,CAyDF,CACF,CAskBsCs+H,CAAe/8H,EAAM68B,GACvD10B,EAAWnI,GAAMs+H,eAtDA,SAAwBt+H,EAAM+K,GACjD,IAAI5C,EAAa4C,EAAK5C,WACtB,OAAO,WACL,IAAI82H,EAAe92H,EAAWnI,GAAM48H,cAEpC,OAAKqC,EAIE92H,EAAWnI,GAAM68H,YAAYoC,GAH3B,IAIX,CACF,CA2CsCX,CAAet+H,EAAM68B,EACzD,IAGA,IAAIy8E,EAAanxG,EAAWokE,MAAMswD,cAElC,GAAIvjB,EAAY,CACd,IAAIjrC,GAAWirC,EAAWrlG,QAAO,SAAU4oE,GACzC,OAAOA,EAAe,OACxB,IAAG,IAAMy8B,EAAW,IAAInrG,GACxBhG,EAAWokE,MAAMn1C,OAAOi3C,GAASn2C,SAAU,EAC3C/vB,EAAWokE,MAAM6xD,iBACjBj2H,EAAWokE,MAAMwwD,iBACM50H,EAAWokE,MAAM+xD,iBAIlB7B,gBAKpBuB,EAAkB3Z,UAAS,GAC3B0Z,EAAmB1Z,UAAS,IAJ5B2Z,EAAkB3Z,UAAS,EAM/B,CAEAxqC,EAAqB95E,GAAG,eAAe,WACrC,CAAC,QAAS,aAAavB,SAAQ,SAAUwB,GACvC,OAAOmI,EAAWnI,GAAMo+H,gBAC1B,GACF,IACAvkD,EAAqB95E,GAAG,iBAAiB,WACvC,CAAC,QAAS,aAAavB,SAAQ,SAAUwB,GACvC,OAAOmI,EAAWnI,GAAM2+H,iBAC1B,GACF,IAEA,IAAIO,EAAsB,WACxB/2H,EAAWokE,MAAMwwD,iBACjBvpG,EAAKjzB,QAAQ,CACXP,KAAM,QACNgJ,KAAM,qBAERwqB,EAAKjzB,QAAQ,CACXP,KAAM,QACNgJ,KAAM,oBAEV,EAWA,IAAK,IAAImF,KATTqlB,EAAKstB,cAAc77B,iBAAiB,SAAUi6G,GAC9C1rG,EAAKmP,mBAAmB1d,iBAAiB,SAAU9c,EAAW60H,UAAUD,gBACxE9sD,EAAIlwE,GAAG,WAAW,WAChByzB,EAAKstB,cAAct+B,oBAAoB,SAAU08G,GACjD1rG,EAAKmP,mBAAmBngB,oBAAoB,SAAUra,EAAW60H,UAAUD,eAC7E,IAEAvpG,EAAKqO,YAAY,SAEF15B,EAAWokE,MAAMn1C,OAC9B5D,EAAKstB,cAAcxpB,SAASnvB,EAAWokE,MAAMn1C,OAAOjpB,GAExD,EAkCIgxH,GAAc,CAAC,gBAAiB,uBAAwB,wBAAyB,uBAAwB,wBAAyB,wBAAyB,gBAE3JC,GAAgB,SAAuBC,GACzC,OAAO1/H,KAAK2/H,oBAAoBD,GAAQ1/H,KAAK4/H,mBAAmBF,EAClE,EAmGIG,GAAwC,SAAU7f,GAGpD,SAAS6f,EAAyBh8H,GAChC,IAAIijB,EAEJA,EAAQk5F,EAAqBj/G,KAAKf,OAASA,KAC3C,IAAIi0B,EAAMpwB,EAAQowB,IACd08C,EAA0B9sE,EAAQ8sE,wBAClC7pE,EAAkBjD,EAAQiD,gBAC1B+sB,EAAOhwB,EAAQgwB,KACfq6C,EAAYrqE,EAAQqqE,UACpB4xD,EAAYj8H,EAAQi8H,UACpBC,EAAal8H,EAAQk8H,WACrB7kD,EAAoBr3E,EAAQq3E,kBAC5B8kD,EAA2Bn8H,EAAQm8H,yBACnCxgB,EAAa37G,EAAQ27G,WACrBuD,EAAsBl/G,EAAQk/G,oBAC9Bkd,EAA6Bp8H,EAAQo8H,2BACrC9jB,EAAqCt4G,EAAQs4G,mCAC7C1wB,EAAkB5nF,EAAQ4nF,gBAE9B,IAAKx3D,EACH,MAAM,IAAIjwB,MAAM,gEAGlB,IAAIk8H,EAAqBr8H,EAAQq8H,mBAE7BA,UACFA,EAAqBvtH,KAGvBw9G,GAAQ2P,EACRh5G,EAAMm5G,2BAA6BxmH,QAAQwmH,GAC3Cn5G,EAAMq1F,mCAAqC1iG,QAAQ0iG,GACnDr1F,EAAMhgB,gBAAkBA,EACxBggB,EAAMgW,MAAQjJ,EACd/M,EAAM8pD,KAAO/8C,EAAKy8C,IAClBxpD,EAAMm6F,YAAczB,EACpB14F,EAAMq5G,YAAcJ,EACpBj5G,EAAMo0D,kBAAoBA,EAC1Bp0D,EAAMo5G,mBAAqBA,EAC3Bp5G,EAAMk5G,yBAA2BA,EAE7Bl5G,EAAMq5G,cACRr5G,EAAMs5G,cAAgBt5G,EAAMgW,MAAMuG,aAAa,WAAY,WAC3Dvc,EAAMs5G,cAAcjV,gCAAkC,IAGxDrkG,EAAMu5G,gBAAkB,CACtBv5H,gBAAiBA,EACjB6pE,wBAAyBA,EACzBuvD,mBAAoBA,EACpBn5H,QAAS,MAGX+f,EAAM1mB,GAAG,QAAS0mB,EAAMw5G,cAExBx5G,EAAMy5G,YAxLa,WACrB,IAAI/3H,EAAa,CAAC,EAelB,MAdA,CAAC,QAAS,YAAa,mBAAmB3J,SAAQ,SAAUwB,GAC1DmI,EAAWnI,GAAQ,CACjB1B,OAAQ,CAAC,EACT84B,OAAQ,CAAC,EACTmlG,qBAAsB,KACtBM,YAAavtE,GACbstE,YAAattE,GACbgvE,eAAgBhvE,GAChB8uE,eAAgB9uE,GAChBytE,eAAgBztE,GAChBovE,WAAY,KACZxuD,QAASrI,GAAO,eAAiB7nE,EAAO,KAE5C,IACOmI,CACT,CAuKwBg4H,GACpB15G,EAAMm5F,YAAc,IAAI,iBACxBn5F,EAAM25G,sBAAwB35G,EAAM25G,sBAAsBr6G,MAAK,aAAuBU,IACtFA,EAAM45G,kBAAoB55G,EAAM45G,kBAAkBt6G,MAAK,aAAuBU,IAC9EA,EAAM65G,mBAAqB75G,EAAM65G,mBAAmBv6G,MAAK,aAAuBU,IAEhFA,EAAMm5F,YAAY36F,iBAAiB,iBAAkBwB,EAAM25G,uBAG3D35G,EAAMm5F,YAAY36F,iBAAiB,aAAcwB,EAAM45G,mBAEvD55G,EAAMm5F,YAAY36F,iBAAiB,cAAewB,EAAM65G,oBAIxD75G,EAAMy5F,UAAYz6C,GAAQrzC,mBAC1B3L,EAAMu5F,YAAa,EACnBv5F,EAAMq8F,gBAAkB,IAAIsT,GAAe5yH,GAC3CijB,EAAM+5F,sBAAwBhtF,EAAKO,mBAAmB,CACpDgF,KAAM,WACN/D,MAAO,qBACN,GAAO9B,MACVzM,EAAMm8F,WAAa,IAAIwY,GACvB30G,EAAMo6F,eAAiB,IAAIwQ,GAAc5qG,EAAMm5F,aAC/Cn5F,EAAMs6F,kBAAoB,CAAC,EAC3Bt6F,EAAMw6F,0BAA4B,IAAIsW,GACtC,IAAIgJ,EAAwB,CAC1BtwD,IAAKxpD,EAAM8pD,KACXua,iBAAkBtnF,EAAQsnF,iBAC1Bs2B,yBAA0B59G,EAAQ49G,yBAClCh2B,gBAAiBA,EACjBw0B,YAAan5F,EAAMm5F,YACnB9hF,YAAarX,EAAMgW,MAAMqB,YAAY/X,KAAKU,EAAMgW,OAChDyK,SAAU,WACR,OAAOzgB,EAAMygB,UACf,EACAgwB,QAAS,WACP,OAAOzwC,EAAMgW,MAAMy6B,SACrB,EACA3kC,SAAU,WACR,OAAO9L,EAAM8L,UACf,EACA0tF,UAAW,WACT,OAAOx5F,EAAMu5F,UACf,EACAW,iBAAkB,WAChB,OAAOl6F,EAAMk6F,kBACf,EACA9yC,UAAWA,EACXk1C,eAAgBt8F,EAAMq8F,gBACtBD,UAAWp8F,EAAMm8F,WACjBzD,WAAY14F,EAAMm6F,YAClBnE,iBAAkBh2F,EAAMs6F,kBACxB2B,oBAAqBA,EACrB5B,cAAer6F,EAAMo6F,eACrBtC,yBAA0B93F,EAAMw6F,0BAChC/zC,iCAAkC1pE,EAAQ0pE,kCAM5CzmD,EAAMqzD,sBAA8C,SAAtBrzD,EAAMm6F,YAAyB,IAAIjnC,GAAmB/lD,EAAKnN,EAAM8pD,KAAM9pD,EAAMu5G,iBAAmB,IAAIhwD,GAAep8C,EAAKnN,EAAM8pD,KAAM9pD,EAAMu5G,iBAExKv5G,EAAM+5G,sCAIN/5G,EAAM84G,mBAAqB,IAAI7f,GAAcj6C,GAAQsB,aAAaw5D,EAAuB,CACvF9f,qBAAsBh6F,EAAM+5F,sBAC5B9B,WAAY,SACVl7G,GAEJijB,EAAM64G,oBAAsB,IAAI5f,GAAcj6C,GAAQsB,aAAaw5D,EAAuB,CACxF7hB,WAAY,UACVl7G,GACJijB,EAAMg6G,uBAAyB,IAAIhN,GAAiBhuD,GAAQsB,aAAaw5D,EAAuB,CAC9F7hB,WAAY,MACZ99E,yBAA0Bna,EAAMgW,MAAMmE,2BACpCp9B,GAEJijB,EAAMi6G,+BAEFj6G,EAAMm5G,6BACRn5G,EAAMqzD,sBAAsBr0D,IAAI,kBAAkB,WAChD,OAAOgB,EAAMk6G,gBACf,IAEAl6G,EAAMgW,MAAM18B,GAAG,SAAS,WACtB,OAAO0mB,EAAMm6G,eACf,IAEAn6G,EAAMgW,MAAM18B,GAAG,QAAQ,WACrB,OAAO0mB,EAAMk6G,gBACf,KAWFxB,GAAY3gI,SAAQ,SAAU6gI,GAC5B54G,EAAM44G,EAAO,KAAOD,GAAcr5G,MAAK,aAAuBU,GAAQ44G,EACxE,IACA54G,EAAMypD,QAAUrI,GAAO,OACvBphD,EAAMo6G,oBAAqB,EAEG,SAA1Bp6G,EAAMgW,MAAMuwB,WACdvmC,EAAMq6G,YAAc,WAClBr6G,EAAMq6G,YAAc,KAEpBr6G,EAAMqzD,sBAAsBp7C,MAC9B,EAEAjY,EAAMgW,MAAMhX,IAAI,OAAQgB,EAAMq6G,cAE9Br6G,EAAMqzD,sBAAsBp7C,OAG9BjY,EAAMs6G,oBAAsB,EAC5Bt6G,EAAMu6G,2BAA6B,EACnCv6G,EAAMw6G,4BAA8B,EACpC,IAAIziH,EAAkC,SAA1BiI,EAAMgW,MAAMuwB,UAAuB,OAAS,YAYxD,OAVAvmC,EAAMgW,MAAMhX,IAAIjH,GAAO,WACrB,IAAI0iH,EAAwBp/G,KAAKD,MAEjC4E,EAAMgW,MAAMhX,IAAI,cAAc,WAC5BgB,EAAMs6G,mBAAqBj/G,KAAKD,MAAQq/G,EACxCz6G,EAAMu6G,0BAA4Bv6G,EAAM84G,mBAAmBpb,aAC3D19F,EAAMw6G,2BAA6Bx6G,EAAM64G,oBAAoBnb,YAC/D,GACF,IAEO19F,CACT,EApMA,aAAe+4G,EAA0B7f,GAsMzC,IAAI9/G,EAAS2/H,EAAyB1/H,UAmsDtC,OAjsDAD,EAAOshI,yBAA2B,WAChC,OAAOxhI,KAAKqhI,yBACd,EAEAnhI,EAAOuhI,0BAA4B,WACjC,OAAOzhI,KAAKshI,0BACd,EAEAphI,EAAOwhI,qBAAuB,WAC5B,IAAIlnG,EAAOx6B,KAAKwhI,2BACZr5H,EAAQnI,KAAKyhI,4BAEjB,OAAc,IAAVjnG,IAA0B,IAAXryB,GACT,EAGHqyB,EAAOryB,CAChB,EAEAjI,EAAOyhI,kBAAoB,WACzB,OAAO3hI,KAAKohI,kBACd,EASAlhI,EAAO0hI,UAAY,WACjB,IAAIC,EAAe7hI,KAAKo/H,iBAEpByC,GAAgB7hI,KAAK8hI,qBAAqBD,IAC5C7hI,KAAK+hI,aAAaF,EAAc,MAEpC,EAEA3hI,EAAO6hI,aAAe,SAAsB94D,EAAUhnE,EAAOuxE,GAC3D,IAAIhE,EAAWxvE,KAAK27D,QAChBuqD,EAAQ12C,IAAaA,EAAShhE,IAAMghE,EAAS5rE,KAC7Co+H,EAAQ/4D,EAASz6D,IAAMy6D,EAASrlE,IAEhCsiH,GAASA,IAAU8b,IACrBhiI,KAAKuwE,QAAQ,gBAAkB21C,EAAQ,OAAS8b,EAAQ,SAAW//H,GACnEjC,KAAK88B,MAAMl8B,QAAQ,CACjBP,KAAM,QACNgJ,KAAM,wBAA0BpH,KAIpCjC,KAAKm6E,sBAAsBxe,MAAMsN,EAAUuK,EAC7C,EAQAtzE,EAAO8gI,eAAiB,WACtB,IAAI94G,EAASloB,KAEbA,KAAKihI,gBACLjhI,KAAKiiI,UAAY,iBAAqB,WACpC,OAAO/5G,EAAO05G,WAChB,GAAG,IACL,EAQA1hI,EAAO+gI,cAAgB,WAGjBjhI,KAAK88B,MAAM4F,WAAa1iC,KAAK88B,MAAM4F,cAIvC,kBAAuB1iC,KAAKiiI,WAC5BjiI,KAAKiiI,UAAY,KACnB,EAQA/hI,EAAOg7G,wBAA0B,WAC/B,IAAIx8G,EAASsB,KAAKtB,SACdwjI,EAAmBxjI,GAAUA,EAAO2tE,WAAa,GAIrD,IAAK3tE,IAAWA,EAAOM,cAAgBN,EAAOM,YAAY4tE,MACxD,OAAOs1D,EAGT,IAEI3uG,EAFAq5C,EAAQluE,EAAOM,YAAY4tE,MAC3B2xD,EAAYnqH,OAAOC,KAAKu4D,GAG5B,GAAIx4D,OAAOC,KAAKrU,KAAKugI,YAAY3zD,MAAMjuE,QAAQL,OAC7Ci1B,EAAQvzB,KAAKugI,YAAY3zD,MAAMqwD,kBAC1B,CAEL,IAAIkF,EAAev1D,EAAMpyC,MAAQ+jG,EAAUjgI,QAAUsuE,EAAM2xD,EAAU,IAErE,IAAK,IAAIlpG,KAAS8sG,EAChB,GAAIA,EAAa9sG,GAAgB,QAAG,CAClC9B,EAAQ,CACN8B,MAAOA,GAET,KACF,CAEJ,CAGA,IAAK9B,EACH,OAAO2uG,EAGT,IAAI71D,EAAY,GAGhB,IAAK,IAAI6Q,KAAStQ,EAChB,GAAIA,EAAMsQ,GAAO3pD,EAAM8B,OAAQ,CAC7B,IAAIta,EAAa6xD,EAAMsQ,GAAO3pD,EAAM8B,OAEpC,GAAIta,EAAWsxD,WAAatxD,EAAWsxD,UAAU/tE,OAC/C+tE,EAAU9rE,KAAKa,MAAMirE,EAAWtxD,EAAWsxD,gBACtC,GAAItxD,EAAWnX,IACpByoE,EAAU9rE,KAAKwa,QACV,GAAIrc,EAAO2tE,UAAU/tE,OAI1B,IAAK,IAAIC,EAAI,EAAGA,EAAIG,EAAO2tE,UAAU/tE,OAAQC,IAAK,CAChD,IAAI0qE,EAAWvqE,EAAO2tE,UAAU9tE,GAE5B0qE,EAASjuD,YAAciuD,EAASjuD,WAAW4xD,OAAS3D,EAASjuD,WAAW4xD,QAAUsQ,GACpF7Q,EAAU9rE,KAAK0oE,EAEnB,CAEJ,CAGF,OAAKoD,EAAU/tE,OAIR+tE,EAHE61D,CAIX,EASAhiI,EAAO2gI,oCAAsC,WAC3C,IAAIv4G,EAAStoB,KAEbA,KAAKm6E,sBAAsB/5E,GAAG,kBAAkB,WAC9C,IAAIu7D,EAAQrzC,EAAO6xD,sBAAsBxe,QAErCymE,EAAwC,IAAvBzmE,EAAM+O,eAAuB,IAG9C0B,GAAyB9jD,EAAO6xD,sBAAsBz7E,OAAQ4pB,EAAO6xD,sBAAsBxe,SAC7FrzC,EAAO+3G,gBAAgBt5H,QAAU,EAEjCuhB,EAAO+3G,gBAAgBt5H,QAAUq7H,EAK/BzmE,EAAMyO,SAAsC,SAA3B9hD,EAAOwU,MAAMuwB,YAChC/kC,EAAOs3G,mBAAmB32D,SAAStN,EAAOrzC,EAAO+3G,iBAEjD/3G,EAAOs3G,mBAAmB7gG,QAG5Bm/F,GAAiB,CACf1e,WAAYl3F,EAAO24F,YACnB8b,eAAgB,CACdnwD,MAAOtkD,EAAOq3G,oBACdtC,UAAW/0G,EAAOw4G,uBAClBtmG,KAAMlS,EAAOs3G,oBAEf/rG,KAAMvL,EAAOwU,MACbygG,eAAgBj1G,EAAO+3G,gBACvBnmD,qBAAsB5xD,EAAO6xD,sBAC7B7J,IAAKhoD,EAAOsoD,KACZlyE,OAAQ4pB,EAAO5pB,SACf8J,WAAY8f,EAAOi4G,YACnBvD,yBAA0B10G,EAAO00G,yBAAyB52G,KAAKkC,KAGjEA,EAAO+5G,sBAAsB/5G,EAAO5pB,SAAUi9D,GAE9CrzC,EAAOg6G,kBAEFh6G,EAAOi4G,YAAY3zD,MAAMgwD,sBAAwBt0G,EAAOi4G,YAAY3zD,MAAMgwD,qBAAqBjhE,QAClGrzC,EAAO1nB,QAAQ,wBAKf0nB,EAAOi4G,YAAY3zD,MAAMgwD,qBAAqB92G,IAAI,kBAAkB,WAClEwC,EAAO1nB,QAAQ,uBACjB,GAEJ,IACAZ,KAAKm6E,sBAAsB/5E,GAAG,kBAAkB,WAC1CkoB,EAAO64G,aACT74G,EAAOwU,MAAMt8B,IAAI,OAAQ8nB,EAAO64G,aAGlC,IAAIoB,EAAkBj6G,EAAO6xD,sBAAsBxe,QAEnD,IAAK4mE,EAAiB,CAKpB,IAAIC,EAUJ,GAZAl6G,EAAOm6G,8BAIHn6G,EAAO03G,2BACTwC,EAAgBl6G,EAAOo6G,yBAGpBF,IACHA,EAAgBl6G,EAAO82G,mBAGpBoD,IAAkBl6G,EAAOw5G,qBAAqBU,GACjD,OAeF,GAZAl6G,EAAOq6G,cAAgBH,EAEvBl6G,EAAOy5G,aAAaz5G,EAAOq6G,cAAe,aAQE,aAAvBr6G,EAAO24F,aAA8B34F,EAAOq6G,cAAcp5D,UAG7E,OAGFg5D,EAAkBj6G,EAAOq6G,aAC3B,CAEAr6G,EAAOs6G,2BAA2BL,EACpC,IACAviI,KAAKm6E,sBAAsB/5E,GAAG,SAAS,WACrCkoB,EAAO00G,yBAAyB10G,EAAO6xD,sBAAsB5jE,MAC/D,IACAvW,KAAKm6E,sBAAsB/5E,GAAG,iBAAiB,WAC7CkoB,EAAOs3G,mBAAmB54H,QAE1BshB,EAAOs3G,mBAAmBhqG,OAC5B,IACA51B,KAAKm6E,sBAAsB/5E,GAAG,eAAe,WAC3C,IAAIu7D,EAAQrzC,EAAO6xD,sBAAsBxe,QAErCymE,EAAwC,IAAvBzmE,EAAM+O,eAAuB,IAG9C0B,GAAyB9jD,EAAO6xD,sBAAsBz7E,OAAQ4pB,EAAO6xD,sBAAsBxe,SAC7FrzC,EAAO+3G,gBAAgBt5H,QAAU,EAEjCuhB,EAAO+3G,gBAAgBt5H,QAAUq7H,EAOnC95G,EAAOs3G,mBAAmB32D,SAAStN,EAAOrzC,EAAO+3G,iBAEjD/3G,EAAOs3G,mBAAmB7gG,OAE1BzW,EAAOwU,MAAMl8B,QAAQ,CACnBP,KAAM,cACNulB,SAAS,GAEb,IACA5lB,KAAKm6E,sBAAsB/5E,GAAG,qBAAqB,WACjD,IAAImiI,EAAkBj6G,EAAO6xD,sBAAsBxe,QAKR,uBAAvC4mE,EAAgBM,qBAIGv6G,EAAOw6G,oBAAoBP,KAOhDj6G,EAAO00G,yBAAyB,CAC9BjqG,QAAS,+BACTvB,OAAQ,uBAIVlJ,EAAOwU,MAAMl8B,QAAQ,kBAEzB,IACAZ,KAAKm6E,sBAAsB/5E,GAAG,qBAAqB,WACjDkoB,EAAOwU,MAAMl8B,QAAQ,CACnBP,KAAM,QACNgJ,KAAM,2BAGRif,EAAOwU,MAAMl8B,QAAQ,CACnBP,KAAM,QACNgJ,KAAM,0BAEV,IACArJ,KAAKm6E,sBAAsB/5E,GAAG,oBAAoB,WAChDkoB,EAAOwU,MAAMl8B,QAAQ,CACnBP,KAAM,QACNgJ,KAAM,0BAGRif,EAAOwU,MAAMl8B,QAAQ,CACnBP,KAAM,QACNgJ,KAAM,yBAEV,GACF,EAYAnJ,EAAO0iI,2BAA6B,SAAoCL,GAClEviI,KAAKmgI,aACPngI,KAAK+iI,cAAcR,GAOrBviI,KAAK4/H,mBAAmB32D,SAASs5D,EAAiBviI,KAAKqgI,iBACvDrgI,KAAKgjI,gBAAgBT,EAAgBn4D,SAIhCpqE,KAAK88B,MAAMpH,WACd11B,KAAK4/H,mBAAmB7gG,OAEpB/+B,KAAK2/H,qBACP3/H,KAAK2/H,oBAAoB5gG,OAG/B,EAQA7+B,EAAOmiI,sBAAwB,SAA+B3jI,EAAQi9D,GACpE,IAAI38D,EAAcN,EAAOM,aAAe,CAAC,EACrCikI,GAAiB,EACjBC,EAAiB9uH,OAAOC,KAAKrV,EAAY4tE,OAE7C,IAAK,IAAIu2D,KAAcnkI,EAAY4tE,MACjC,IAAK,IAAIv3C,KAASr2B,EAAY4tE,MAAMu2D,GAAa,CAC9BnkI,EAAY4tE,MAAMu2D,GAAY9tG,GAE/BzxB,MACdq/H,GAAiB,EAErB,CAGEA,IACFjjI,KAAK88B,MAAMl8B,QAAQ,CACjBP,KAAM,QACNgJ,KAAM,gBAERrJ,KAAK88B,MAAMl8B,QAAQ,CACjBP,KAAM,QACNgJ,KAAM,iBAIN+K,OAAOC,KAAKrV,EAAYq+H,WAAW/+H,SACrC0B,KAAK88B,MAAMl8B,QAAQ,CACjBP,KAAM,QACNgJ,KAAM,eAERrJ,KAAK88B,MAAMl8B,QAAQ,CACjBP,KAAM,QACNgJ,KAAM,gBAIN8mH,GAAMjjD,SAASa,MAAMpS,KACvB37D,KAAK88B,MAAMl8B,QAAQ,CACjBP,KAAM,QACNgJ,KAAM,YAERrJ,KAAK88B,MAAMl8B,QAAQ,CACjBP,KAAM,QACNgJ,KAAM,aAIN65H,EAAe5kI,QAAU8V,OAAOC,KAAKrV,EAAY4tE,MAAMs2D,EAAe,KAAK5kI,OAAS,IACtF0B,KAAK88B,MAAMl8B,QAAQ,CACjBP,KAAM,QACNgJ,KAAM,wBAERrJ,KAAK88B,MAAMl8B,QAAQ,CACjBP,KAAM,QACNgJ,KAAM,yBAINrJ,KAAKmgI,cACPngI,KAAK88B,MAAMl8B,QAAQ,CACjBP,KAAM,QACNgJ,KAAM,0BAERrJ,KAAK88B,MAAMl8B,QAAQ,CACjBP,KAAM,QACNgJ,KAAM,0BAGZ,EAEAnJ,EAAO4hI,qBAAuB,SAA8BD,GAC1D,IAAIuB,EAAkBpjI,KAAKm6E,sBAAsBxe,SAAW37D,KAAKm6E,sBAAsBnH,cACnF70C,EAAcn+B,KAAK88B,MAAMqB,cACzBklG,EAAqBrjI,KAAKqjI,qBAC1BC,EAAsBtjI,KAAKsjI,sBAE/B,OA7vBsB,SAA6Bl4H,GACrD,IAAIg4H,EAAkBh4H,EAAKg4H,gBACvBzwG,EAAWvnB,EAAKunB,SAChBwL,EAAc/yB,EAAK+yB,YACnB0jG,EAAez2H,EAAKy2H,aACpBwB,EAAqBj4H,EAAKi4H,mBAC1BC,EAAsBl4H,EAAKk4H,oBAC3B1wG,EAAWxnB,EAAKwnB,SAChBqtG,EAA6B70H,EAAK60H,2BAClCzqH,EAAMpK,EAAKoK,IAEf,IAAKqsH,EAEH,OADA/7D,GAAQtwD,IAAIc,KAAK,oEACV,EAGT,IAAIitH,EAAgB,oBAAsBH,GAAmBA,EAAgB50H,IAAM,QAAU,OAASqzH,EAAarzH,GAEnH,IAAK40H,EAEH,OADA5tH,EAAI+tH,EAAgB,oCACb,EAIT,GAAI1B,EAAarzH,KAAO40H,EAAgB50H,GACtC,OAAO,EAIT,IAAIg1H,EAAa/pH,QAAQ8uD,GAAU51C,EAAUwL,GAAa7/B,QAK1D,IAAK8kI,EAAgBh5D,QAGnB,OAAKo5D,GAA4D,iBAAvCJ,EAAgB/5D,oBAK1C7zD,EAAI+tH,EAAgB,iCACb,IALL/tH,EAAI,OAAS+tH,EAAgB,2EACtB,GAOX,IAAIE,EAAgB16D,GAAYp2C,EAAUwL,GACtCulG,EAAwBzD,EAA6BniD,GAAOS,uCAAyCT,GAAOQ,0BAGhH,GAAI1rD,EAAW8wG,EAEb,OADAluH,EAAI+tH,EAAgB,sCAAwC3wG,EAAW,MAAQ8wG,EAAwB,MAChG,EAGT,IAAIC,EAAgB9B,EAAa7mH,WAAWuxD,UACxCq3D,EAAgBR,EAAgBpoH,WAAWuxD,UAG/C,GAAIo3D,EAAgBC,KAAmB3D,GAA8BwD,EAAgBH,GAAsB,CACzG,IAAIO,EAAUN,EAAgB,2CAA6CI,EAAgB,MAAQC,EAAgB,IAOnH,OALI3D,IACF4D,GAAW,6CAA+CJ,EAAgB,MAAQH,EAAsB,KAG1G9tH,EAAIquH,IACG,CACT,CAIA,KAAM5D,GAA8B0D,EAAgBC,IAAkBH,GAAiBJ,EAAoB,CACzG,IAAIS,EAAWP,EAAgB,4CAA8CE,EAAgB,OAASJ,EAAqB,IAO3H,OALIpD,IACF6D,GAAY,4CAA8CH,EAAgB,MAAQC,EAAgB,KAGpGpuH,EAAIsuH,IACG,CACT,CAGA,OADAtuH,EAAI,OAAS+tH,EAAgB,kCACtB,CACT,CAwqBWQ,CAAoB,CACzBpxG,SAFa3yB,KAAK88B,MAAMnK,WAGxBwL,YAAaA,EACbilG,gBAAiBA,EACjBvB,aAAcA,EACdwB,mBAAoBA,EACpBC,oBAAqBA,EACrB1wG,SAAU5yB,KAAK4yB,WACfqtG,2BAA4BjgI,KAAKigI,2BACjCzqH,IAAKxV,KAAKuwE,SAEd,EASArwE,EAAO6gI,6BAA+B,WACpC,IAAIlwG,EAAS7wB,KAERA,KAAKigI,6BACRjgI,KAAK4/H,mBAAmBx/H,GAAG,mBAAmB,WAC5C,IAAIyhI,EAAehxG,EAAOuuG,iBAEtBvuG,EAAOixG,qBAAqBD,IAC9BhxG,EAAOkxG,aAAaF,EAAc,mBAGpChxG,EAAOiM,MAAMl8B,QAAQ,kBACvB,IACAZ,KAAK4/H,mBAAmBx/H,GAAG,YAAY,WACrCywB,EAAOjwB,QAAQ,WACjB,KAGFZ,KAAK4/H,mBAAmBx/H,GAAG,SAAS,WAClCywB,EAAOmsG,yBAAyBnsG,EAAO+uG,mBAAmBrpH,QAC5D,IACAvW,KAAK4/H,mBAAmBx/H,GAAG,eAAe,WACxCywB,EAAOta,MAAQsa,EAAO+uG,mBAAmBr9F,OAEzC1R,EAAOjwB,QAAQ,QACjB,IACAZ,KAAK4/H,mBAAmBx/H,GAAG,kBAAkB,WAC3CywB,EAAOmzG,mBACT,IACAhkI,KAAK4/H,mBAAmBx/H,GAAG,mBAAmB,WAC5CywB,EAAOiM,MAAMl8B,QAAQ,CACnBP,KAAM,QACNgJ,KAAM,yBAGRwnB,EAAOiM,MAAMl8B,QAAQ,CACnBP,KAAM,QACNgJ,KAAM,wBAEV,IACArJ,KAAK2/H,oBAAoBv/H,GAAG,kBAAkB,WAC5CywB,EAAOmzG,mBACT,IACAhkI,KAAK2/H,oBAAoBv/H,GAAG,eAAe,WACzCywB,EAAOta,MAAQsa,EAAO8uG,oBAAoBp9F,OAE1C1R,EAAOjwB,QAAQ,QACjB,IACAZ,KAAK4/H,mBAAmBx/H,GAAG,SAAS,WAClCywB,EAAO0/C,QAAQ,6BAEf1/C,EAAOozG,eACT,IACAjkI,KAAK4/H,mBAAmBx/H,GAAG,cAAc,SAAUye,GAE7CgS,EAAOovG,6BAIXpvG,EAAOqzG,iBAAiB,MAAO,CAAC,UAEhCrzG,EAAOmsG,yBAAyB,CAC9BjqG,QAAS,mGAz1BmB,KA21BhC,IAEA,IAAIoxG,EAAe,WACjB,IAAKtzG,EAAOqwF,eAAewR,0BACzB,OAAO7hG,EAAOuzG,4BAGhB,IAAIj7H,EAAS0nB,EAAOwzG,sBAGfl7H,GAIL0nB,EAAOqwF,eAAe2R,yBAAyB1pH,EACjD,EAEAnJ,KAAK4/H,mBAAmBx/H,GAAG,YAAa+jI,GACxCnkI,KAAK2/H,oBAAoBv/H,GAAG,YAAa+jI,GACzCnkI,KAAK4/H,mBAAmBx/H,GAAG,QAAQ,WAC5BywB,EAAOqwG,qBACVrwG,EAAOiM,MAAMl8B,QAAQ,CACnBP,KAAM,QACNgJ,KAAM,aAGRwnB,EAAOiM,MAAMl8B,QAAQ,CACnBP,KAAM,QACNgJ,KAAM,aAGRwnB,EAAOqwG,oBAAqB,EAEhC,IACAlhI,KAAK2/H,oBAAoBv/H,GAAG,QAAQ,WAC7BywB,EAAOqwG,qBACVrwG,EAAOiM,MAAMl8B,QAAQ,CACnBP,KAAM,QACNgJ,KAAM,aAGRwnB,EAAOiM,MAAMl8B,QAAQ,CACnBP,KAAM,QACNgJ,KAAM,aAGRwnB,EAAOqwG,oBAAqB,EAEhC,IACAlhI,KAAK2/H,oBAAoBv/H,GAAG,SAAS,WACnCywB,EAAO0/C,QAAQ,4BAEf1/C,EAAOozG,eACT,GACF,EAEA/jI,EAAOokI,oBAAsB,WAC3B,OAAOx4H,KAAKE,IAAIhM,KAAK2/H,oBAAoBpb,mBAAqBvkH,KAAK4/H,mBAAmBrb,mBACxF,EAMArkH,EAAO6+B,KAAO,WACZ/+B,KAAK4/H,mBAAmB7gG,OAEpB/+B,KAAKugI,YAAY3zD,MAAMgwD,sBACzB58H,KAAK2/H,oBAAoB5gG,OAGvB/+B,KAAKugI,YAAYlD,UAAUT,sBAC7B58H,KAAK8gI,uBAAuB/hG,MAEhC,EAWA7+B,EAAOqkI,qBAAuB,SAA8B5oE,QAC5C,IAAVA,IACFA,EAAQ37D,KAAKo/H,kBAGfp/H,KAAKq/H,mBAAmB1jE,EAC1B,EAWAz7D,EAAOm/H,mBAAqB,SAA4B1jE,GACtD,IAAI3qC,EAAShxB,UAEC,IAAV27D,IACFA,EAAQ37D,KAAKo/H,kBAGXzjE,IAAU37D,KAAKm6E,sBAAsBxe,SAKzC37D,KAAK+hI,aAAapmE,EAAO,gBAOzB37D,KAAK4/H,mBAAmB/Z,iBAAgB,WAGlC//C,GAAQ9rD,QAAQZ,YAAc0sD,GAAQ9rD,QAAQf,QAChD+X,EAAO8L,MAAM6F,eAAe3R,EAAO8L,MAAMqB,cAAgB,KAEzDnN,EAAO8L,MAAM6F,eAAe3R,EAAO8L,MAAMqB,cAE7C,KAnBEn+B,KAAKuwE,QAAQ,8DAoBjB,EAMArwE,EAAOoqB,KAAO,WACZ,IAAItqB,KAAKsiI,iBAAT,CAIItiI,KAAK88B,MAAM2K,SACbznC,KAAK88B,MAAM6F,eAAe,GAGxB3iC,KAAKqgH,YACPrgH,KAAK++B,OAGP,IAAIwI,EAAWvnC,KAAK88B,MAAMyK,WAG1B,OAAIvnC,KAAK88B,MAAMlK,aAAejgB,KACxB3S,KAAK88B,MAAMqB,cAAgBoJ,EAAS/U,MAAM,GACrCxyB,KAAK88B,MAAM6F,eAAe4E,EAAS73B,IAAI63B,EAASjpC,OAAS,SAFpE,CAbA,CAkBF,EAOA4B,EAAOoiI,eAAiB,WACtB,IAAInxG,EAASnxB,KAET27D,EAAQ37D,KAAKm6E,sBAAsBxe,QAMvC,IAAKA,GAAS37D,KAAK88B,MAAMpH,UAAY11B,KAAKqgH,WACxC,OAAO,EAIT,IAAK1kD,EAAMyO,QAAS,CAClB,IAAI7iC,EAAWvnC,KAAKunC,WAEpB,IAAKA,EAASjpC,OAGZ,OAAO,EAGT,GAAIwnE,GAAQ9rD,QAAQZ,YAA0C,IAA5BpZ,KAAK88B,MAAM12B,aAU3C,OAPApG,KAAK88B,MAAMhX,IAAI,kBAAkB,WAC/BqL,EAAOvwB,QAAQ,aAEfuwB,EAAO2L,MAAM6F,eAAe4E,EAAS73B,IAAI,IAEzCyhB,EAAOkvF,YAAa,CACtB,KACO,EAITrgH,KAAKY,QAAQ,aAEbZ,KAAK88B,MAAM6F,eAAe4E,EAAS73B,IAAI,GACzC,CAKA,OAHA1P,KAAKqgH,YAAa,EAElBrgH,KAAK++B,QACE,CACT,EAQA7+B,EAAOwgI,kBAAoB,WAQzB,GAJA1gI,KAAKokI,4BAIDpkI,KAAK88B,MAAMi3B,WAAY,CACzB,IAAI/jB,EAAchwC,KAAK88B,MAAMxS,YAGF,IAAhB0lB,GAA2D,mBAArBA,EAAY5c,MAC3D4c,EAAY5c,KAAK,MAAM,SAAUrwB,GAAI,GAEzC,CAEA/C,KAAKY,QAAQ,aACf,EAQAV,EAAOygI,mBAAqB,WAC1B,GAAK3gI,KAAKohH,kBAAkBjE,eAA5B,CAIA,IAAI3pF,EAAOxzB,KAAKohH,kBAAkBjE,eAAe3pF,KAEjD,GAAKA,GAASA,EAAKl1B,OAAnB,CAIA,IAAIs0B,EAAW5yB,KAAK4yB,WACpBY,EAAKA,EAAKl1B,OAAS,GAAGq1B,QAAU1E,MAAM2D,IAAa9mB,KAAKC,IAAI6mB,KAAcjgB,IAAW3J,OAAOwjE,UAAY55C,CAHxG,CANA,CAUF,EAQA1yB,EAAOugI,sBAAwB,WAC7BzgI,KAAK88B,MAAMl8B,QAAQ,iBACrB,EAWAV,EAAO+jI,cAAgB,WACrB,IAAIrW,EAAgB5tH,KAAK4/H,mBAAmBlc,OAE5C,GAAI1jH,KAAKugI,YAAY3zD,MAAMgwD,qBAAsB,CAC/C,IAAI4H,EAAgBxkI,KAAK4/H,mBAAmBnU,uBAM1CmC,GAJG4W,GAAiBA,EAAcj+B,SAIlBqnB,GAAiB5tH,KAAK2/H,oBAAoBjc,OAG1C1jH,KAAK2/H,oBAAoBjc,MAE7C,CAEKkK,IAIL5tH,KAAKihI,gBACLjhI,KAAKkhH,eAAe+D,cACtB,EASA/kH,EAAO4iI,oBAAsB,SAA6B75D,GAGxD,IAFejpE,KAAKunC,WAENjpC,OAEZ,OAAO,EAGT,IAAIusE,EAAU7qE,KAAKmjH,gBAAgB0T,eAAe5tD,EAAUjpE,KAAK4yB,YAEjE,GAAgB,OAAZi4C,EACF,OAAO,EAKT,IAAI45D,EAAsBtU,GAAMjjD,SAASvB,YAAY1C,EAAU4B,GAC3D1sC,EAAcn+B,KAAK88B,MAAMqB,cACzBxL,EAAW3yB,KAAK88B,MAAMnK,WAE1B,IAAKA,EAASr0B,OAEZ,OAAOmmI,EAAsBtmG,GAAeiqC,GAG9C,IAAIxzB,EAAcjiB,EAASjjB,IAAIijB,EAASr0B,OAAS,GAGjD,OAAOs2C,EAAczW,GAAeiqC,IAAmBq8D,EAAsB7vF,GAAewzB,EAC9F,EAaAloE,EAAO88H,yBAA2B,SAAkCzmH,EAAO2kE,QAC3D,IAAV3kE,IACFA,EAAQ,CAAC,GAOX,IAAI6sH,EAAkB7sH,EAAM0yD,UAAYjpE,KAAKm6E,sBAAsBxe,QAInE,GAHAuf,EAAoBA,GAAqB3kE,EAAM2kE,mBAAqBl7E,KAAKk7E,mBAGpEkoD,EASH,OARApjI,KAAKuW,MAAQA,OAEuB,SAAhCvW,KAAKigH,YAAY75G,WACnBpG,KAAKY,QAAQ,SAEbZ,KAAKkhH,eAAe+D,YAAY,YAMpCme,EAAgB90D,kBAChB,IA0CItC,EA1CAK,EAAYrsE,KAAKm6E,sBAAsBz7E,OAAO2tE,UAC9C48C,EAAmB58C,EAAU/3D,OAAO43D,IACpCuP,EAA+C,IAA5BwtC,EAAiB3qH,QAAgB2qH,EAAiB,KAAOma,EAGhF,GAAyB,IAArB/2D,EAAU/tE,QAAgB48E,IAAsBvoE,IAIlD,OAHAmzD,GAAQtwD,IAAIc,KAAK,qCAAuC8sH,EAAgB50H,GAAvD,iDACjBxO,KAAK88B,MAAMl8B,QAAQ,iBAEZZ,KAAKm6E,sBAAsBp7C,KAAK08C,GAGzC,GAAIA,EAAkB,CAKpB,IAAIipD,GAAa,EACjBr4D,EAAUxtE,SAAQ,SAAUoqE,GAE1B,GAAIA,IAAam6D,EAAjB,CAIA,IAAIp3D,EAAe/C,EAAS+C,kBAEA,IAAjBA,GAAgCA,IAAiBr5D,MAC1D+xH,GAAa,SACNz7D,EAAS+C,aANlB,CAQF,IAEI04D,IACF5+D,GAAQtwD,IAAIc,KAAK,wGAIjBtW,KAAK88B,MAAMl8B,QAAQ,iBAEvB,CAMEorE,EADEo3D,EAAgB90D,gBAAkBtuE,KAAKkgI,mBAC1BvtH,IAEAwP,KAAKD,MAA4B,IAApBg5D,EAG9BkoD,EAAgBp3D,aAAeA,EAE3Bz1D,EAAMib,SACR4xG,EAAgBP,mBAAqBtsH,EAAMib,QAG7CxxB,KAAK88B,MAAMl8B,QAAQ,qBACnBZ,KAAK88B,MAAMl8B,QAAQ,CACjBP,KAAM,QACNgJ,KAAM,8BAERrJ,KAAK88B,MAAMl8B,QAAQ,CACjBP,KAAM,QACNgJ,KAAM,8BAOR,IAAIw4H,EAAe7hI,KAAKo/H,iBAExB,IAAKyC,EAGH,OAFA7hI,KAAKuW,MAAQ,8EACbvW,KAAKY,QAAQ,SAIf,IAAIq5G,EAAQ1jG,EAAM0kE,SAAWj7E,KAAKuwE,QAAUzK,GAAQtwD,IAAIc,KACpDquH,EAAepuH,EAAMwc,QAAU,IAAMxc,EAAMwc,QAAU,GACzDknF,GAAO1jG,EAAM0kE,SAAW,mBAAqB,WAAa,8BAAgCmoD,EAAgB50H,GAAK,IAAOm2H,EAAe,0BAA4B9C,EAAarzH,GAAK,KAE/KqzH,EAAa7mH,WAAW4xD,QAAUw2D,EAAgBpoH,WAAW4xD,OAC/D5sE,KAAKkkI,iBAAiB,QAAS,CAAC,QAAS,UAIvCrC,EAAa7mH,WAAWqiH,YAAc+F,EAAgBpoH,WAAWqiH,WACnEr9H,KAAKkkI,iBAAiB,WAAY,CAAC,QAAS,UAG9ClkI,KAAKkkI,iBAAiB,OAAQ,CAAC,QAAS,UACxC,IAAIU,EAAgB/C,EAAan3D,eAAiB,EAAI,KAAQ,IAC1D6I,EAAkD,iBAA7BsuD,EAAa9uD,aAA4B5wD,KAAKD,MAAQ2/G,EAAa9uD,aAAe6xD,EAE3G,OAAO5kI,KAAK+hI,aAAaF,EAAc,UAAWpmD,GAAoBlI,EACxE,EAMArzE,EAAOogI,aAAe,WACpBtgI,KAAKkkI,iBAAiB,MAAO,CAAC,QAAS,UACvClkI,KAAKihI,eACP,EAiBA/gI,EAAOgkI,iBAAmB,SAA0B5vH,EAAQuwH,GAC1D,IAAIphG,EAASzjC,KAET8kI,EAAU,GACVC,EAAgC,QAAXzwH,GAErBywH,GAAiC,SAAXzwH,IACxBwwH,EAAQvkI,KAAKP,KAAKm6E,uBAGpB,IAAI3xE,EAAa,IAEbu8H,GAAiC,UAAXzwH,IACxB9L,EAAWjI,KAAK,UAGdwkI,GAAiC,aAAXzwH,KACxB9L,EAAWjI,KAAK,mBAChBiI,EAAWjI,KAAK,cAGlBiI,EAAW3J,SAAQ,SAAUC,GAC3B,IAAIkmI,EAASvhG,EAAO88F,YAAYzhI,IAAc2kC,EAAO88F,YAAYzhI,GAAW89H,qBAExEoI,GACFF,EAAQvkI,KAAKykI,EAEjB,IACA,CAAC,OAAQ,QAAS,YAAYnmI,SAAQ,SAAUwK,GAC9C,IAAI27H,EAASvhG,EAAOp6B,EAAO,mBAEvB27H,GAAW1wH,IAAWjL,GAAmB,QAAXiL,GAChCwwH,EAAQvkI,KAAKykI,EAEjB,IACAF,EAAQjmI,SAAQ,SAAUmmI,GACxB,OAAOH,EAAQhmI,SAAQ,SAAU0oB,GACD,mBAAnBy9G,EAAOz9G,IAChBy9G,EAAOz9G,IAEX,GACF,GACF,EASArnB,EAAOyiC,eAAiB,SAAwBxE,GAC9C,IAAIxL,EAAW41C,GAAUvoE,KAAK88B,MAAMnK,WAAYwL,GAEhD,OAAMn+B,KAAKm6E,uBAAyBn6E,KAAKm6E,sBAAsBxe,SAO1D37D,KAAKm6E,sBAAsBxe,QAAQ4N,SAKpC52C,GAAYA,EAASr0B,OAChB6/B,GAKTn+B,KAAK4/H,mBAAmB/Z,kBACxB7lH,KAAK4/H,mBAAmB54H,QAEpBhH,KAAKugI,YAAY3zD,MAAMgwD,uBACzB58H,KAAK2/H,oBAAoB9Z,kBACzB7lH,KAAK2/H,oBAAoB34H,SAGvBhH,KAAKugI,YAAYlD,UAAUT,uBAC7B58H,KAAK8gI,uBAAuBjb,kBAC5B7lH,KAAK8gI,uBAAuB95H,cAI9BhH,KAAK++B,QA9BI,CA+BX,EAQA7+B,EAAO0yB,SAAW,WAChB,IAAK5yB,KAAKm6E,sBACR,OAAO,EAGT,IAAIxe,EAAQ37D,KAAKm6E,sBAAsBxe,QAEvC,OAAKA,EAeAA,EAAMyO,QAMPpqE,KAAKigH,YACAjgH,KAAKigH,YAAYrtF,SAGnBu9F,GAAMjjD,SAASt6C,SAAS+oC,GATtBhpD,IAdA,CAwBX,EAQAzS,EAAOqnC,SAAW,WAChB,OAAOvnC,KAAKugH,SACd,EAEArgH,EAAO8jI,kBAAoB,WACzB,IAAIiB,EAoBJ,GAAKjlI,KAAKm6E,sBAAV,CAIA,IAAIxe,EAAQ37D,KAAKm6E,sBAAsBxe,QAEvC,GAAKA,EAAL,CAIA,IAAIkP,EAAU7qE,KAAKmjH,gBAAgB0T,eAAel7D,EAAO37D,KAAK4yB,YAE9D,GAAgB,OAAZi4C,EAAJ,CAKA,IAAInsE,EAASsB,KAAKm6E,sBAAsBz7E,OACpCwmI,EAAe/U,GAAMjjD,SAAS3lC,SAASo0B,EAAOkP,EAASslD,GAAMjjD,SAAS/C,cAAczrE,EAAQi9D,IAEhG,GAA4B,IAAxBupE,EAAa5mI,OAAjB,CAIA,GAAI0B,KAAKugI,YAAY3zD,MAAMgwD,qBAAsB,CAI/C,GAHAjhE,EAAQ37D,KAAKugI,YAAY3zD,MAAMgwD,qBAAqBjhE,QAGpC,QAFhBkP,EAAU7qE,KAAKmjH,gBAAgB0T,eAAel7D,EAAO37D,KAAK4yB,aAGxD,OAKF,GAA6B,KAF7BqyG,EAAgB9U,GAAMjjD,SAAS3lC,SAASo0B,EAAOkP,EAASslD,GAAMjjD,SAAS/C,cAAczrE,EAAQi9D,KAE3Er9D,OAChB,MAEJ,CAEA,IAAI6mI,EACAC,EAEAplI,KAAKugH,WAAavgH,KAAKugH,UAAUjiH,SACnC6mI,EAASnlI,KAAKugH,UAAU7wG,IAAI,GAC5B01H,EAAWplI,KAAKugH,UAAU/tF,MAAM,IAG7ByyG,EAIMA,EAAczyG,MAAM,GAAK0yG,EAAax1H,IAAI,IAAMw1H,EAAa1yG,MAAM,GAAKyyG,EAAcv1H,IAAI,GAEnG1P,KAAKugH,UAAY2kB,EAEjBllI,KAAKugH,UAAYz6C,GAAQrzC,iBAAiB,CAAC,CAACwyG,EAAczyG,MAAM,GAAK0yG,EAAa1yG,MAAM,GAAKyyG,EAAczyG,MAAM,GAAK0yG,EAAa1yG,MAAM,GAAIyyG,EAAcv1H,IAAI,GAAKw1H,EAAax1H,IAAI,GAAKu1H,EAAcv1H,IAAI,GAAKw1H,EAAax1H,IAAI,MALlO1P,KAAKugH,UAAY2kB,EASfllI,KAAKugH,WAAavgH,KAAKugH,UAAUjiH,QAC/B0B,KAAKugH,UAAU7wG,IAAI,KAAOy1H,GAAUnlI,KAAKugH,UAAU/tF,MAAM,KAAO4yG,IAKtEplI,KAAKuwE,QAAQ,qBAAuB9H,GAAezoE,KAAKugH,WAAa,KACrEvgH,KAAK88B,MAAMl8B,QAAQ,mBA5CnB,CAPA,CAPA,CANA,CAiEF,EAMAV,EAAO8iI,eAAiB,SAAwBtuF,GAM9C,GALI10C,KAAKqlI,kBACPrlI,KAAKigH,YAAYp9F,oBAAoB,aAAc7iB,KAAKqlI,iBACxDrlI,KAAKqlI,gBAAkB,MAGW,SAAhCrlI,KAAKigH,YAAY75G,WAGnB,OAFApG,KAAKqlI,gBAAkBrlI,KAAKgjI,eAAe58G,KAAKpmB,KAAM00C,QACtD10C,KAAKigH,YAAY36F,iBAAiB,aAActlB,KAAKqlI,iBAIvD,GAAI3wF,EAAJ,CACE,IAAInN,EAAWvnC,KAAKunC,WAEpB,IAAKA,EAASjpC,OACZ,QA0BE2wB,MAAMjvB,KAAKigH,YAAYrtF,WAAa5yB,KAAKigH,YAAYrtF,SAAW2U,EAAS73B,IAAI63B,EAASjpC,OAAS,KACjG0B,KAAKkhH,eAAeuS,YAAYlsF,EAAS73B,IAAI63B,EAASjpC,OAAS,GAInE,KAnCA,CAqCA,IAAIq0B,EAAW3yB,KAAK88B,MAAMnK,WACtBC,EAAWu9F,GAAMjjD,SAASt6C,SAAS5yB,KAAKm6E,sBAAsBxe,SAE9DhpC,EAASr0B,OAAS,IACpBs0B,EAAW9mB,KAAKE,IAAI4mB,EAAUD,EAASjjB,IAAIijB,EAASr0B,OAAS,KAG3D0B,KAAKigH,YAAYrtF,WAAaA,GAChC5yB,KAAKkhH,eAAeuS,YAAY7gG,EAVlC,CAYF,EAOA1yB,EAAOmB,QAAU,WACf,IAAI+iC,EAASpkC,KAEbA,KAAKY,QAAQ,WACbZ,KAAKijH,WAAW3jC,YAChBt/E,KAAKm6E,sBAAsB94E,UAC3BrB,KAAK4/H,mBAAmBv+H,UAEpBrB,KAAKmhI,aACPnhI,KAAK88B,MAAMt8B,IAAI,OAAQR,KAAKmhI,aAG9B,CAAC,QAAS,aAAatiI,SAAQ,SAAUwB,GACvC,IAAI1B,EAASylC,EAAOm8F,YAAYlgI,GAAM1B,OAEtC,IAAK,IAAI6P,KAAM7P,EACbA,EAAO6P,GAAI3P,SAAQ,SAAUq+E,GACvBA,EAAM4/C,gBACR5/C,EAAM4/C,eAAez7H,SAEzB,GAEJ,IACArB,KAAK2/H,oBAAoBt+H,UACzBrB,KAAK8gI,uBAAuBz/H,UAC5BrB,KAAKkhH,eAAe7/G,UACpBrB,KAAKshH,0BAA0BjgH,UAC/BrB,KAAKihI,gBAEDjhI,KAAKqlI,iBACPrlI,KAAKigH,YAAYp9F,oBAAoB,aAAc7iB,KAAKqlI,iBAG1DrlI,KAAKigH,YAAYp9F,oBAAoB,iBAAkB7iB,KAAKygI,uBAE5DzgI,KAAKigH,YAAYp9F,oBAAoB,aAAc7iB,KAAK0gI,mBACxD1gI,KAAKigH,YAAYp9F,oBAAoB,cAAe7iB,KAAK2gI,oBACzD3gI,KAAKQ,KACP,EAQAN,EAAOxB,OAAS,WACd,OAAOsB,KAAKm6E,sBAAsBz7E,MACpC,EAQAwB,EAAOy7D,MAAQ,WAEb,OAAO37D,KAAKm6E,sBAAsBxe,SAAW37D,KAAK2iI,aACpD,EAEAziI,EAAOolI,oBAAsB,WAC3B,IAAIC,IAAqBvlI,KAAKugI,YAAY3zD,MAAMgwD,qBAC5C4I,IAAqBxlI,KAAK4/H,mBAAmBnU,uBAG7Cga,GAAqBF,KAA4BvlI,KAAK2/H,oBAAoBlU,uBAE9E,SAAK+Z,IAAqBC,EAK5B,EAEAvlI,EAAOmkI,oBAAsB,WAC3B,IAAI/oE,EAASt7D,KAET27D,EAAQ,CACVnhC,KAAMx6B,KAAK4/H,mBAAmBnU,wBAA0B,CAAC,EACzDtjH,MAAOnI,KAAK2/H,oBAAoBlU,wBAA0B,CAAC,GAG7D9vD,EAAMzzD,MAAQyzD,EAAMnhC,KACpB,IAAIkrG,EAAiBlsB,GAAkBx5G,KAAKtB,SAAUsB,KAAK27D,SACvDxyD,EAAS,CAAC,EACVo8H,IAAqBvlI,KAAKugI,YAAY3zD,MAAMgwD,qBAiBhD,GAfIjhE,EAAMnhC,KAAK+rE,WACbp9F,EAAOjB,MAAQw9H,EAAex9H,OAASyzD,EAAMnhC,KAAK67E,YPltmDvB,eOqtmDzB16C,EAAMnhC,KAAKg7E,UACbrsG,EAAOjB,OAAS,KAAOw9H,EAAev9H,OAASwzD,EAAMnhC,KAAK47E,YAAcjsG,KAGtEwxD,EAAMnhC,KAAK8rE,WAAa3qC,EAAMnhC,KAAKg7E,SAAW75C,EAAMxzD,MAAMm+F,UAAYi/B,KACxEp8H,EAAOhB,MAAQu9H,EAAev9H,OAASwzD,EAAMnhC,KAAK47E,YAAcz6C,EAAMxzD,MAAMiuG,YAAcjsG,EAE1FwxD,EAAMxzD,MAAMguG,OAASx6C,EAAMnhC,KAAK8rE,WAAa3qC,EAAMnhC,KAAKg7E,QAAU75C,EAAMnhC,KAAK27E,OAASx6C,EAAMxzD,MAAMguG,QAI/FhtG,EAAOhB,OAAUgB,EAAOjB,MAA7B,CAUA,IAKIy9H,EADAC,EAAoB,CAAC,EAczB,GAZA,CAAC,QAAS,SAAS/mI,SAAQ,SAAUwB,GACnC,GAAI8I,EAAOhC,eAAe9G,KAPmB81G,EAOOx6C,EAAMt7D,GAAM81G,OAPXxtG,EAOmBQ,EAAO9I,KANxE81G,EAASnsG,EAAqBrB,GAASuB,EAAmBvB,KAMsB,CACrF,IAAIk9H,EAAYlqE,EAAMt7D,GAAM81G,OAAS,UAAY,QACjDyvB,EAAkBC,GAAaD,EAAkBC,IAAc,GAC/DD,EAAkBC,GAAWtlI,KAAK4I,EAAO9I,IAE5B,UAATA,IACFslI,EAAmBE,EAEvB,CAfoB,IAAyB1vB,EAAQxtG,CAgBvD,IAEI48H,GAAoBI,GAAoB3lI,KAAK27D,QAAQ3gD,WAAW4xD,MAAO,CACzE,IAAI+sC,EAAa35G,KAAK27D,QAAQ3gD,WAAW4xD,MACzC5sE,KAAKtB,SAAS2tE,UAAUxtE,SAAQ,SAAUkuE,IAChBA,EAAQ/xD,YAAc+xD,EAAQ/xD,WAAW4xD,SAEvC+sC,GAAc5sC,IAAYzR,EAAOK,UACzDoR,EAAQf,aAAer5D,IAE3B,IACA3S,KAAKuwE,QAAQ,yBAA2BopC,EAAa,OAASgsB,EAAmB,gCAAmCx8H,EAAOhB,MAAQ,IACrI,CAGA,IAAIiM,OAAOC,KAAKuxH,GAAmBtnI,OAAnC,CAmBA,GAAI0B,KAAKkhH,eAAewR,4BAA8B1yH,KAAKkhH,eAAe6R,gBAAiB,CACzF,IAAI+S,EAAiB,GAUrB,GATA,CAAC,QAAS,SAASjnI,SAAQ,SAAUwB,GACnC,IAAI0lI,GAAY98H,EAAYqyD,EAAO4lD,eAAe/3G,OAAO9I,IAAS,IAAI,IAAM,CAAC,GAAGA,KAC5E2lI,GAAY/8H,EAAYE,EAAO9I,IAAS,IAAI,IAAM,CAAC,GAAGA,KAEtD0lI,GAAYC,GAAYD,EAAS1jI,gBAAkB2jI,EAAS3jI,eAC9DyjI,EAAevlI,KAAK,IAAO+6D,EAAO4lD,eAAe/3G,OAAO9I,GAAQ,SAAa8I,EAAO9I,GAAQ,IAEhG,IAEIylI,EAAexnI,OAOjB,YANA0B,KAAKg9H,yBAAyB,CAC5B/zD,SAAUjpE,KAAK27D,QACf5oC,QAAS,kCAAoC+yG,EAAelpH,KAAK,MAAQ,IACzEs+D,kBAAmBvoE,IACnBsoE,UAAU,GAIhB,CAIA,OAAO9xE,CA3BP,CAfE,IAAI4pB,EAAU3e,OAAOC,KAAKuxH,GAAmBrjI,QAAO,SAAUqqB,EAAKi5G,GAMjE,OALIj5G,IACFA,GAAO,MAGTA,GAAOi5G,EAAY,gCAAmCD,EAAkBC,GAAWjpH,KAAK,KAAO,GAEjG,GAAG,IAAM,IACT5c,KAAKg9H,yBAAyB,CAC5B/zD,SAAUjpE,KAAK27D,QACfsf,UAAU,EACVloD,QAASA,EACTmoD,kBAAmBvoE,KA/CvB,MANE3S,KAAKg9H,yBAAyB,CAC5B/zD,SAAUjpE,KAAK27D,QACf5oC,QAAS,2CACTmoD,kBAAmBvoE,KAiFzB,EAQAzS,EAAOkkI,0BAA4B,WAGjC,GAAoC,SAAhCpkI,KAAKigH,YAAY75G,aAAyBpG,KAAKkhH,eAAewR,2BAI7D1yH,KAAKslI,sBAAV,CAIA,IAAIn8H,EAASnJ,KAAKqkI,sBAElB,GAAKl7H,EAAL,CAIAnJ,KAAKkhH,eAAe0R,oBAAoBzpH,GACxC,IAAID,EAAc,CAACC,EAAOjB,MAAOiB,EAAOhB,OAAOmM,OAAOmF,SAASmD,KAAK,KACpE5c,KAAKimI,6BAA6B/8H,EAJlC,CANA,CAWF,EAMAhJ,EAAOuiI,4BAA8B,WACnC,IAAI5mE,EAAU77D,KAEVqsE,EAAYrsE,KAAKtB,SAAS2tE,UAC1B65D,EAAM,GAGV9xH,OAAOC,KAAKg4D,GAAWxtE,SAAQ,SAAU4E,GACvC,IAAIspE,EAAUV,EAAU5oE,GAExB,IAAiC,IAA7ByiI,EAAIxlI,QAAQqsE,EAAQv+D,IAAxB,CAIA03H,EAAI3lI,KAAKwsE,EAAQv+D,IACjB,IAAIrF,EAASqwG,GAAkB39C,EAAQn9D,OAAQquE,GAC3Co5D,EAAc,IAEdh9H,EAAOhB,OAAU+B,EAAmBf,EAAOhB,QAAW6B,EAAqBb,EAAOhB,QACpFg+H,EAAY5lI,KAAK,eAAiB4I,EAAOhB,QAGvCgB,EAAOjB,OAAUgC,EAAmBf,EAAOjB,QAAW8B,EAAqBb,EAAOjB,QACpFi+H,EAAY5lI,KAAK,eAAiB4I,EAAOjB,OAGvCiB,EAAOf,MAAwB,mBAAhBe,EAAOf,MACxB+9H,EAAY5lI,KAAK,cAAgB4I,EAAOf,MAGtC+9H,EAAY7nI,SACdyuE,EAAQf,aAAer5D,IAEvBkpD,EAAQ0U,QAAQ,aAAexD,EAAQv+D,GAAK,qBAAuB23H,EAAYvpH,KAAK,OArBtF,CAuBF,GACF,EAiBA1c,EAAO+lI,6BAA+B,SAAsC/8H,GAC1E,IAAI8yD,EAAUh8D,KAEVkmI,EAAM,GACN75D,EAAYrsE,KAAKtB,SAAS2tE,UAC1BljE,EAASiwG,GAAgBnwG,EAAYC,IACrCk9H,EAAc9sB,GAAWnwG,GACzBk9H,EAAel9H,EAAOjB,OAASe,EAAYE,EAAOjB,OAAO,IAAM,KAC/Do+H,EAAen9H,EAAOhB,OAASc,EAAYE,EAAOhB,OAAO,IAAM,KACnEiM,OAAOC,KAAKg4D,GAAWxtE,SAAQ,SAAU4E,GACvC,IAAIspE,EAAUV,EAAU5oE,GAGxB,IAAiC,IAA7ByiI,EAAIxlI,QAAQqsE,EAAQv+D,KAAcu+D,EAAQf,eAAiBr5D,IAA/D,CAIAuzH,EAAI3lI,KAAKwsE,EAAQv+D,IACjB,IAAI+3H,EAAmB,GAEnBC,EAAgBhtB,GAAkBx9C,EAAQme,sBAAsBz7E,OAAQquE,GACxE05D,EAAoBntB,GAAWktB,GAGnC,GAAKA,EAAcr+H,OAAUq+H,EAAct+H,MAA3C,CAaA,GANIu+H,IAAsBL,GACxBG,EAAiBhmI,KAAK,gBAAmBkmI,EAAoB,UAAcL,EAAc,MAKtFpqE,EAAQklD,eAAe6R,gBAAiB,CAC3C,IAAI2T,EAAsBF,EAAct+H,OAASe,EAAYu9H,EAAct+H,OAAO,IAAM,KACpFy+H,EAAsBH,EAAcr+H,OAASc,EAAYu9H,EAAcr+H,OAAO,IAAM,KAEpFu+H,GAAuBL,GAAgBK,EAAoBrmI,KAAKgC,gBAAkBgkI,EAAahmI,KAAKgC,eACtGkkI,EAAiBhmI,KAAK,gBAAmBmmI,EAAoBrmI,KAAO,UAAcgmI,EAAahmI,KAAO,KAIpGsmI,GAAuBL,GAAgBK,EAAoBtmI,KAAKgC,gBAAkBikI,EAAajmI,KAAKgC,eACtGkkI,EAAiBhmI,KAAK,gBAAmBomI,EAAoBtmI,KAAO,UAAcimI,EAAajmI,KAAO,IAE1G,CAEIkmI,EAAiBjoI,SACnByuE,EAAQf,aAAer5D,IAEvBqpD,EAAQuU,QAAQ,gBAAkBxD,EAAQv+D,GAAK,KAAO+3H,EAAiB3pH,KAAK,SA5B9E,CAXA,CAyCF,GACF,EAEA1c,EAAO6iI,cAAgB,SAAuBpnE,GAC5C,IAAIruD,EAAS,EACTi6B,EAAWvnC,KAAKunC,WAEhBA,EAASjpC,SACXgP,EAASi6B,EAAS/U,MAAM,IAhtIX,SAAsBmpC,EAAOpoC,EAAOjmB,GAKrD,QAJe,IAAXA,IACFA,EAAS,GAGNquD,EAAM4N,SAOX,IAHA,IACI91C,EADAoiG,EAAYvoH,EAGP/O,EAAI,EAAGA,EAAIo9D,EAAM4N,SAASjrE,OAAQC,IAAK,CAC9C,IAAI2qE,EAAUvN,EAAM4N,SAAShrE,GAU7B,GARKk1B,IAKHA,EAAMmiG,GAAUriG,EAAOsiG,EAAY3sD,EAAQt2C,SAAW,IAGpDa,EAAK,CACP,GAAI,UAAWy1C,EAAS,CAEtBz1C,EAAIE,QAAUkiG,EACdpiG,EAAIsiG,UAAYF,EAChBA,GAAa3sD,EAAQt2C,SACrBa,EAAM,KACN,QACF,CAEA,GAAIoiG,EAAYpiG,EAAIE,QAAS,CAE3BkiG,GAAa3sD,EAAQt2C,SACrB,QACF,CAGAa,EAAIE,SAAWu1C,EAAQt2C,QACzB,MAUE,GATI,WAAYs2C,KACdz1C,EAAM,IAAI,YAAgBoiG,EAAWA,EAAY3sD,EAAQt2C,SAAUs2C,EAAQ09D,SACvE9Q,YAAcD,EAGlBpiG,EAAIsiG,UAAYF,EAAYt9G,WAAW2wD,EAAQ09D,QAC/CrzG,EAAMc,OAAOZ,IAGX,eAAgBy1C,EAAS,CAI3B,IAAI29D,EAAwB39D,EAAQ49D,WAAWxkI,MAAM,KAAKsH,IAAI2O,YAC1DwuH,EAAWF,EAAsB,GACjCG,EAAUH,EAAsB,IAEpCpzG,EAAM,IAAI,YAAgBoiG,EAAWA,EAAY3sD,EAAQt2C,SAAU,KAC/DkjG,YAAcD,EAAYkR,EAC9BtzG,EAAIsiG,UAAYtiG,EAAIqiG,YAAckR,EAClCzzG,EAAMc,OAAOZ,EACf,CAGFoiG,GAAa3sD,EAAQt2C,QACvB,CACF,CA+oIIq0G,CAAatrE,EAAO37D,KAAKogI,cAAe9yH,EAC1C,EAQApN,EAAO8gH,iBAAmB,WACxB,IAAI7iF,EAAcn+B,KAAK88B,MAAMqB,cACzB0mB,EAAUi5B,GAAOC,mBACjBx8B,EAAOu8B,GAAOI,wBACdlyE,EAAMF,KAAKE,IAAI64C,EAASi5B,GAAOE,wBACnC,OAAOlyE,KAAKgU,IAAI+kC,EAAU1mB,EAAcojB,EAAMv1C,EAChD,EAQA9L,EAAOmjI,mBAAqB,WAC1B,IAAIllG,EAAcn+B,KAAK88B,MAAMqB,cACzB0mB,EAAUi5B,GAAOO,sBACjB98B,EAAOu8B,GAAOU,2BACdxyE,EAAMF,KAAKE,IAAI64C,EAASi5B,GAAOQ,2BAC/B4oD,EAASp7H,KAAKE,IAAI64C,EAASi5B,GAAOS,wCACtC,OAAOzyE,KAAKgU,IAAI+kC,EAAU1mB,EAAcojB,EAAMvhD,KAAKigI,2BAA6BiH,EAASl7H,EAC3F,EAEA9L,EAAOojI,oBAAsB,WAC3B,OAAOxlD,GAAOW,sBAChB,EAEOohD,CACT,CA34D4C,CA24D1C/5D,GAAQ6B,aAsDNw/D,GAAiB,SAAwBC,EAAYn+D,EAAUz6D,GACjE,IAxC2Cw2H,EAAQqC,EAAYC,EAwC3DnI,EAAMiI,EAAWxqB,0BAIjB2qB,EAAwBpI,GAHFiI,EAAW18G,SAAS88G,oBAEP,SAAW,QACL,kBAAkBphH,KAAK+4G,GAEpE,GAAIl2D,EAASjuD,WAAY,CACvB,IAAIk1G,EAAajnD,EAASjuD,WAAWqgG,WACrCr7G,KAAKke,MAAQgyG,GAAcA,EAAWhyG,MACtCle,KAAKie,OAASiyG,GAAcA,EAAWjyG,OACvCje,KAAKkuE,UAAYjF,EAASjuD,WAAWuxD,SACvC,CAEAvsE,KAAKmJ,OAASqwG,GAAkB2lB,EAAIzgI,SAAUuqE,GAC9CjpE,KAAKipE,SAAWA,EAGhBjpE,KAAKwO,GAAKA,EAGVxO,KAAKu4B,SA5DsCysG,EA4DboC,EAAW/6D,UA5DUg7D,EA4DCp+D,EAASz6D,GA5DE84H,EA4DEC,EA3D1D,SAAUzwH,GACf,IAAImyD,EAAW+7D,EAAOtmI,OAAO2tE,UAAUg7D,GACnCI,EAAex7D,GAAehD,GAC9By+D,EAAmBx7D,GAAUjD,GAEjC,YAAsB,IAAXnyD,EACF4wH,GAGL5wH,SACKmyD,EAASjmD,SAEhBimD,EAASjmD,UAAW,EAGlBlM,IAAW4wH,GAAqBD,IAElCH,IAEIxwH,EACFkuH,EAAOpkI,QAAQ,oBAEfokI,EAAOpkI,QAAQ,sBAIZkW,EACT,EAiCF,EAsCI6wH,GAAoB,CAAC,UAAW,SAAU,QAAS,UAAW,SAK9DC,GAA+B,WAOjC,SAASA,EAAgB/jI,GACvB,IAAIijB,EAAQ9mB,KAEZA,KAAK48G,0BAA4B/4G,EAAQo3G,yBACzCj7G,KAAK88B,MAAQj5B,EAAQgwB,KACrB7zB,KAAKunC,SAAW1jC,EAAQ0jC,SACxBvnC,KAAK6nI,iCAAmChkI,EAAQgkI,iCAChD7nI,KAAK8nI,uBAAyBjkI,EAAQikI,uBACtC9nI,KAAK27D,MAAQ93D,EAAQ83D,MACrB37D,KAAK+nI,mBAAqB,EAC1B/nI,KAAKgoI,iBAAmB,KACxBhoI,KAAKioI,OAAS,KACdjoI,KAAKkoI,yBAA2B,KAChCloI,KAAKuwE,QAAUrI,GAAO,mBACtBloE,KAAKuwE,QAAQ,cAEb,IAAI43D,EAAc,WAChB,OAAOrhH,EAAMshH,qBACf,EAEIC,EAAiB,WACnB,OAAOvhH,EAAMshH,qBACf,EAEIE,EAAiB,WACnB,OAAOxhH,EAAMyhH,cACf,EAEIC,EAAqB,WACvB,OAAO1hH,EAAM2hH,cACf,EAEItJ,EAAMn/H,KAAK48G,0BACX8rB,EAAc,CAAC,OAAQ,WAAY,SACnCC,EAAe,CAAC,EACpBD,EAAY7pI,SAAQ,SAAUwB,GAC5BsoI,EAAatoI,GAAQ,CACnBgiC,MAAO,WACL,OAAOvb,EAAM8hH,uBAAuBvoI,EACtC,EACAwoI,UAAW,WACT,OAAO/hH,EAAMgiH,uBAAuBzoI,EACtC,GAEF8+H,EAAI9+H,EAAO,kBAAkBD,GAAG,cAAeuoI,EAAatoI,GAAMwoI,WAIlE1J,EAAI9+H,EAAO,kBAAkBD,GAAG,iBAAkBuoI,EAAatoI,GAAMgiC,OAKrEvb,EAAMgW,MAAM18B,GAAG,CAAC,SAAU,WAAYuoI,EAAatoI,GAAMgiC,MAC3D,IAUA,IAAI0mG,EAAqB,SAA4Bt9H,GACnD,CAAC,OAAQ,SAAS5M,SAAQ,SAAUwB,GAClC8+H,EAAI9+H,EAAO,kBAAkBoL,GAAI,WAAYqb,EAAMkiH,oBACrD,GACF,EAEAhpI,KAAKgpI,oBAAsB,WACrBliH,EAAMmiH,mBACRniH,EAAMihH,mBAAqB,EAC3BjhH,EAAMkhH,iBAAmBlhH,EAAMgW,MAAMqB,cACrC4qG,EAAmB,OAEvB,EAEA/oI,KAAKkpI,yBAA2B,WAC9B,OAAOH,EAAmB,MAC5B,EAEA/oI,KAAKmpI,oBAAsB,WACzBriH,EAAMoiH,2BAENH,EAAmB,KACrB,EAEA/oI,KAAK88B,MAAM18B,GAAG,SAAUJ,KAAKkpI,0BAC7BlpI,KAAK88B,MAAM18B,GAAG,UAAWJ,KAAKmpI,qBAC9BnpI,KAAK88B,MAAM18B,GAAG,UAAWkoI,GACzBtoI,KAAK88B,MAAM18B,GAAGunI,GAAmBa,GACjCxoI,KAAK88B,MAAM18B,GAAG,UAAWioI,GAYzBroI,KAAK88B,MAAMhX,IAAI,OAAQqiH,GAEvBnoI,KAAKqB,QAAU,WACbylB,EAAMoiH,2BAENpiH,EAAMypD,QAAQ,WAEdzpD,EAAMgW,MAAMt8B,IAAI,UAAW8nI,GAE3BxhH,EAAMgW,MAAMt8B,IAAImnI,GAAmBa,GAEnC1hH,EAAMgW,MAAMt8B,IAAI,UAAW6nI,GAE3BvhH,EAAMgW,MAAMt8B,IAAI,OAAQ2nI,GAExBrhH,EAAMgW,MAAMt8B,IAAI,UAAWsmB,EAAMqiH,qBAEjCriH,EAAMgW,MAAMt8B,IAAI,SAAUsmB,EAAMoiH,0BAEhCR,EAAY7pI,SAAQ,SAAUwB,GAC5B8+H,EAAI9+H,EAAO,kBAAkBG,IAAI,cAAemoI,EAAatoI,GAAMwoI,WACnE1J,EAAI9+H,EAAO,kBAAkBG,IAAI,iBAAkBmoI,EAAatoI,GAAMgiC,OAEtEvb,EAAMgW,MAAMt8B,IAAI,CAAC,SAAU,WAAYmoI,EAAatoI,GAAMgiC,MAC5D,IAEIvb,EAAMohH,0BACR,iBAAsBphH,EAAMohH,0BAG9BphH,EAAM2hH,cACR,CACF,CAQA,IAAIvoI,EAAS0nI,EAAgBznI,UAue7B,OAreAD,EAAOkoI,oBAAsB,WAC3BpoI,KAAKopI,oBAEDppI,KAAKkoI,0BACP,iBAAsBloI,KAAKkoI,0BAI7BloI,KAAKkoI,yBAA2B,eAAoBloI,KAAKooI,oBAAoBhiH,KAAKpmB,MAAO,IAC3F,EAaAE,EAAO0oI,uBAAyB,SAAgCvoI,GAC9D,IAAI2kI,EAAShlI,KAAK48G,0BAA0Bv8G,EAAO,kBAE/CL,KAAKK,EAAO,qBAAuB,GACrCL,KAAKuwE,QAAQ,iDAAmDlwE,EAAO,WAGzEL,KAAKK,EAAO,qBAAuB,EACnCL,KAAKK,EAAO,aAAe2kI,EAAO9f,WACpC,EAaAhlH,EAAO4oI,uBAAyB,SAAgCzoI,GAC9D,IAAI8+H,EAAMn/H,KAAK48G,0BACXooB,EAAS7F,EAAI9+H,EAAO,kBACpBsyB,EAAWqyG,EAAO9f,YAClBmkB,EA5zvBe,SAA0B1hI,EAAGC,GAElD,GAAID,IAAMC,EACR,OAAO,EAIT,IAAKD,GAAKC,IAAMA,GAAKD,EACnB,OAAO,EAIT,GAAIA,EAAErJ,SAAWsJ,EAAEtJ,OACjB,OAAO,EAIT,IAAK,IAAIC,EAAI,EAAGA,EAAIoJ,EAAErJ,OAAQC,IAC5B,GAAIoJ,EAAE6qB,MAAMj0B,KAAOqJ,EAAE4qB,MAAMj0B,IAAMoJ,EAAE+H,IAAInR,KAAOqJ,EAAE8H,IAAInR,GAClD,OAAO,EAMX,OAAO,CACT,CAkyvB8B+qI,CAAiBtpI,KAAKK,EAAO,aAAcsyB,GACrE3yB,KAAKK,EAAO,aAAesyB,EAIvB02G,EACFrpI,KAAK4oI,uBAAuBvoI,IAI9BL,KAAKK,EAAO,uBACZL,KAAKuwE,QAAQ,UAAYvwE,KAAKK,EAAO,qBAAuB,IAAMA,EAAO,oEAAqE,CAC5IkpI,WAAYvE,EAAOrf,WAAaqf,EAAOrf,UAAUn3G,GACjDmkB,SAAUi2C,GAAkBj2C,KAG1B3yB,KAAKK,EAAO,qBAAuB,KAIvCL,KAAKuwE,QAAQlwE,EAAO,sCACpBL,KAAK4oI,uBAAuBvoI,GAC5BL,KAAK88B,MAAMl8B,QAAQ,CACjBP,KAAM,QACNgJ,KAAM,OAAShJ,EAAO,wBAGX,aAATA,GAMJ8+H,EAAInC,yBAAyB,CAC3BjqG,QAAS,aAAe1yB,EAAO,kCAC9BsS,MACL,EAUAzS,EAAOkpI,kBAAoB,WACzB,IAAIppI,KAAK88B,MAAMpH,WAAY11B,KAAK88B,MAAMy6B,UAAtC,CAIA,IAAIp5B,EAAcn+B,KAAK88B,MAAMqB,cACzBxL,EAAW3yB,KAAK88B,MAAMnK,WAE1B,GAAI3yB,KAAKgoI,mBAAqB7pG,KAAiBxL,EAASr0B,QAAU6/B,EAAciqC,IAAmBz1C,EAASjjB,IAAIijB,EAASr0B,OAAS,IAMhI,OAAO0B,KAAKuoI,eAGVvoI,KAAK+nI,oBAAsB,GAAK5pG,IAAgBn+B,KAAKgoI,kBACvDhoI,KAAK+nI,qBACL/nI,KAAKwpI,YACIrrG,IAAgBn+B,KAAKgoI,iBAC9BhoI,KAAK+nI,sBAEL/nI,KAAK+nI,mBAAqB,EAC1B/nI,KAAKgoI,iBAAmB7pG,EArB1B,CAuBF,EASAj+B,EAAOuoI,aAAe,WACpBzoI,KAAK+nI,mBAAqB,EAEtB/nI,KAAKioI,SACPjoI,KAAKuwE,QAAQ,gBACbrrE,aAAalF,KAAKioI,SAGpBjoI,KAAKioI,OAAS,IAChB,EASA/nI,EAAO+oI,eAAiB,WAGtB,IAFcjpI,KAAK88B,MAAMy6B,UAGvB,OAAO,EAOT,IAGI+f,EAHA/vC,EAAWvnC,KAAKunC,WAChBpJ,EAAcn+B,KAAK88B,MAAMqB,cACFn+B,KAAKypI,qBAAqBliG,EAAUpJ,EAAan+B,KAAK27D,QAAS37D,KAAK6nI,oCAM7FvwD,EAFkB/vC,EAAS73B,IAAI63B,EAASjpC,OAAS,IAKnD,GAAI0B,KAAK0pI,sBAAsBniG,EAAUpJ,GAAc,CACrD,IAAI8Y,EAAgB1P,EAAS/U,MAAM,GAGnC8kD,EAASrgC,GAETA,IAAkB1P,EAAS73B,IAAI,GAAK,EAAI04D,GAC1C,CAEA,QAAsB,IAAXkP,EAGT,OAFAt3E,KAAKuwE,QAAQ,8CAAgDpyC,EAAhD,wBAA8FsqC,GAAelhC,GAAY,gBAAoB+vC,EAAS,KACnKt3E,KAAK88B,MAAM6F,eAAe20C,IACnB,EAeT,IAZA,IAAI6pC,EAAgBnhH,KAAK48G,0BAA0BsE,eAC/CvuF,EAAW3yB,KAAK88B,MAAMnK,WACtB0yF,EAAgBlE,EAAcgS,YAAchS,EAAckE,gBAAkB,KAC5ED,EAAgBjE,EAAc8R,YAAc9R,EAAciE,gBAAkB,KAC5EzpD,EAAQ37D,KAAK27D,QAGbguE,EAAsBhuE,EAAM0N,mBAAqB1N,EAAM0N,mBAAkE,GAA5C1N,EAAM+O,eAAiBvC,IAGpGyhE,EAAkB,CAACvkB,EAAeD,GAE7B7mH,EAAI,EAAGA,EAAIqrI,EAAgBtrI,OAAQC,IAAK,CAE/C,GAAKqrI,EAAgBrrI,GAOrB,GAHgBwqE,GAAY6gE,EAAgBrrI,GAAI4/B,GAGhCwrG,EACd,OAAO,CAEX,CAEA,IAAIE,EAAYrhE,GAAc71C,EAAUwL,GAGxC,OAAyB,IAArB0rG,EAAUvrI,SAIdg5E,EAASuyD,EAAUr3G,MAAM,GAAK41C,GAC9BpoE,KAAKuwE,QAAQ,2BAA6Bs5D,EAAUr3G,MAAM,GAA7C,8BAAwF2L,EAAc,iBAAmBm5C,EAAS,KAC/It3E,KAAK88B,MAAM6F,eAAe20C,IACnB,EACT,EAQAp3E,EAAOspI,SAAW,WAChB,IAAIxpI,KAAKuoI,eAAT,CAKA,IAAIpqG,EAAcn+B,KAAK88B,MAAMqB,cACzBxL,EAAW3yB,KAAK88B,MAAMnK,WACtBm3G,EAAevhE,GAAU51C,EAAUwL,GASvC,OAAI2rG,EAAaxrI,QAAU6/B,EAAc,GAAK2rG,EAAap6H,IAAI,IAC7D1P,KAAKyoI,eACLzoI,KAAK88B,MAAM6F,eAAexE,GAC1Bn+B,KAAKuwE,QAAQ,cAAgBpyC,EAAhB,oCAA0E2rG,EAAat3G,MAAM,GAAK,OAASs3G,EAAap6H,IAAI,GAA5H,oEAEb1P,KAAK88B,MAAMl8B,QAAQ,CACjBP,KAAM,QACNgJ,KAAM,6BAERrJ,KAAK88B,MAAMl8B,QAAQ,CACjBP,KAAM,QACNgJ,KAAM,8BAXV,CAdA,CA6BF,EAWAnJ,EAAOqoI,aAAe,WACpB,IAAIhhG,EAAWvnC,KAAKunC,WAChBpJ,EAAcn+B,KAAK88B,MAAMqB,cAE7B,GAAIn+B,KAAK88B,MAAMy6B,WAA6B,OAAhBv3D,KAAKioI,OAE/B,OAAO,EAGT,GAAIjoI,KAAK0pI,sBAAsBniG,EAAUpJ,GAAc,CACrD,IAAI4rG,EAAYxiG,EAAS73B,IAAI63B,EAASjpC,OAAS,GAa/C,OAZA0B,KAAKuwE,QAAQ,mCAAqCpyC,EAArC,0CAAqG4rG,GAClH/pI,KAAKyoI,eACLzoI,KAAK88B,MAAM6F,eAAeonG,GAE1B/pI,KAAK88B,MAAMl8B,QAAQ,CACjBP,KAAM,QACNgJ,KAAM,oBAERrJ,KAAK88B,MAAMl8B,QAAQ,CACjBP,KAAM,QACNgJ,KAAM,qBAED,CACT,CAEA,IAAI83G,EAAgBnhH,KAAK88B,MAAMwzC,IAAIssC,0BAA0BsE,eACzDvuF,EAAW3yB,KAAK88B,MAAMnK,WAO1B,GANqB3yB,KAAKgqI,gBAAgB,CACxC3kB,cAAelE,EAAckE,gBAC7BD,cAAejE,EAAciE,gBAC7BjnF,YAAaA,IAmBb,OAXAn+B,KAAKyoI,eACLzoI,KAAK88B,MAAM6F,eAAexE,GAE1Bn+B,KAAK88B,MAAMl8B,QAAQ,CACjBP,KAAM,QACNgJ,KAAM,wBAERrJ,KAAK88B,MAAMl8B,QAAQ,CACjBP,KAAM,QACNgJ,KAAM,yBAED,EAGT,IAAIwgI,EAAYrhE,GAAc71C,EAAUwL,GAExC,GAAI0rG,EAAUvrI,OAAS,EAAG,CACxB,IAAI2rI,EAAaJ,EAAUr3G,MAAM,GAAK2L,EAItC,OAHAn+B,KAAKuwE,QAAQ,cAAgBpyC,EAAc,uBAAyB8rG,EAAvD,gBAA4FJ,EAAUr3G,MAAM,IACzHxyB,KAAKyoI,eACLzoI,KAAKioI,OAAS5hI,WAAWrG,KAAKkqI,YAAY9jH,KAAKpmB,MAAoB,IAAbiqI,EAAmB9rG,IAClE,CACT,CAGA,OAAO,CACT,EAEAj+B,EAAOupI,qBAAuB,SAA8BliG,EAAUpJ,EAAa8qC,EAAU4+D,GAK3F,QAJyC,IAArCA,IACFA,GAAmC,IAGhCtgG,EAASjpC,OAEZ,OAAO,EAGT,IAAI6rI,EAAa5iG,EAAS73B,IAAI63B,EAASjpC,OAAS,GAAK8pE,GAOrD,OANca,EAASmB,SAETy9D,IACZsC,EAAa5iG,EAAS73B,IAAI63B,EAASjpC,OAAS,GAA+B,EAA1B2qE,EAASyB,gBAGxDvsC,EAAcgsG,CAKpB,EAEAjqI,EAAOwpI,sBAAwB,SAA+BniG,EAAUpJ,GACtE,SAAIoJ,EAASjpC,QACbipC,EAAS/U,MAAM,GAAK,GAAK2L,EAAcoJ,EAAS/U,MAAM,GAAKxyB,KAAK8nI,uBAKlE,EAEA5nI,EAAO8pI,gBAAkB,SAAyB5+H,GAChD,IAAIg6G,EAAgBh6G,EAAKg6G,cACrBC,EAAgBj6G,EAAKi6G,cACrBlnF,EAAc/yB,EAAK+yB,YAEvB,GAAKinF,EAAL,CAIA,IAAIglB,EAEJ,GAAIhlB,EAAc9mH,QAAU+mH,EAAc/mH,OAAQ,CAIhD,IAAI+rI,EAAiB9hE,GAAU68C,EAAejnF,EAAc,GACxDmsG,EAAa/hE,GAAU68C,EAAejnF,GACtCosG,EAAahiE,GAAU88C,EAAelnF,GAEtCosG,EAAWjsI,SAAWgsI,EAAWhsI,QAAU+rI,EAAe/rI,SAC5D8rI,EAAM,CACJ53G,MAAO63G,EAAe36H,IAAI,GAC1BA,IAAK66H,EAAW76H,IAAI,IAI1B,KAAO,CACW84D,GAAc48C,EAAejnF,GAG9B7/B,SACb8rI,EAAMpqI,KAAKwqI,uBAAuBplB,EAAejnF,GAErD,CAEA,QAAIisG,IACFpqI,KAAKuwE,QAAQ,mCAAqC65D,EAAI53G,MAAQ,OAAS43G,EAAI16H,IAA9D,6BAAyGyuB,IAC/G,EA9BT,CAkCF,EASAj+B,EAAOgqI,YAAc,SAAqBO,GACxC,IAAI93G,EAAW3yB,KAAK88B,MAAMnK,WACtBwL,EAAcn+B,KAAK88B,MAAMqB,cACzB0rG,EAAYrhE,GAAc71C,EAAUwL,GACxCn+B,KAAKyoI,eAEoB,IAArBoB,EAAUvrI,QAAgB6/B,IAAgBssG,IAI9CzqI,KAAKuwE,QAAQ,eAAgB,eAAgBpyC,EAAa,yBAA0BssG,EAAsB,mBAAoBZ,EAAUr3G,MAAM,IAE9IxyB,KAAK88B,MAAM6F,eAAeknG,EAAUr3G,MAAM,GAAK21C,IAC/CnoE,KAAK88B,MAAMl8B,QAAQ,CACjBP,KAAM,QACNgJ,KAAM,iBAERrJ,KAAK88B,MAAMl8B,QAAQ,CACjBP,KAAM,QACNgJ,KAAM,iBAEV,EAEAnJ,EAAOsqI,uBAAyB,SAAgC73G,EAAUwL,GAyBxE,IAFA,IAAIusG,EA/4wBO,SAAkB/3G,GAC/B,GAAIA,EAASr0B,OAAS,EACpB,OAAOwnE,GAAQrzC,mBAKjB,IAFA,IAAIP,EAAS,GAEJ3zB,EAAI,EAAGA,EAAIo0B,EAASr0B,OAAQC,IAAK,CACxC,IAAIi0B,EAAQG,EAASjjB,IAAInR,EAAI,GACzBmR,EAAMijB,EAASH,MAAMj0B,GACzB2zB,EAAO3xB,KAAK,CAACiyB,EAAO9iB,GACtB,CAEA,OAAOo2D,GAAQrzC,iBAAiBP,EAClC,CAi4wBey4G,CAASh4G,GAEXp0B,EAAI,EAAGA,EAAImsI,EAAKpsI,OAAQC,IAAK,CACpC,IAAIi0B,EAAQk4G,EAAKl4G,MAAMj0B,GACnBmR,EAAMg7H,EAAKh7H,IAAInR,GAEnB,GAAI4/B,EAAc3L,EAAQ,GAAK2L,EAAc3L,EAAQ,EACnD,MAAO,CACLA,MAAOA,EACP9iB,IAAKA,EAGX,CAEA,OAAO,IACT,EAEOk4H,CACT,CA/nBmC,GAioB/BgD,GAAiB,CACnBC,cAAe,GACfC,UAAW,SAAmBrkG,GAK5B,OAAOA,EAJIzmC,KAAK6zB,KAAK,CACnBk3G,0BAA0B,IAEP3kG,gBAAkBpmC,KAAK45D,gBAE9C,GAUEoxE,GAAa,SAASA,EAAW5pH,EAAQvd,GAC3C,IAAIonI,EAAa,EACb3zD,EAAS,EACT4zD,EAAeplE,GAAQsB,aAAawjE,GAAgB/mI,GACxDud,EAAOiJ,OAAM,WACXjJ,EAAOxgB,QAAQ,CACbP,KAAM,QACNgJ,KAAM,iCAER+X,EAAOxgB,QAAQ,CACbP,KAAM,QACNgJ,KAAM,gCAEV,IAQA,IAAI8hI,EAAwB,WACtB7zD,GACFl2D,EAAO+c,YAAYm5C,EAEvB,EASIpxC,EAAY,SAAmBuzB,GAC7BA,UAIJ6d,EAASl2D,EAAOwR,aAAejgB,KAAYyO,EAAO+c,eAAiB,EACnE/c,EAAO0E,IAAI,iBAAkBqlH,GAC7B/pH,EAAO6S,IAAIwlC,GACXr4C,EAAOxgB,QAAQ,CACbP,KAAM,QACNgJ,KAAM,qBAER+X,EAAOxgB,QAAQ,CACbP,KAAM,QACNgJ,KAAM,qBAER+X,EAAOkJ,OACT,EASIyyC,EAAe,WAGjB,OAAI56C,KAAKD,MAAQ+oH,EAA0C,IAA7BC,EAAaL,eACzCzpH,EAAOxgB,QAAQ,CACbP,KAAM,QACNgJ,KAAM,mCAER+X,EAAOxgB,QAAQ,CACbP,KAAM,QACNgJ,KAAM,+BAKL6hI,EAAaJ,WAA+C,mBAA3BI,EAAaJ,WAKnDG,EAAa9oH,KAAKD,MACXgpH,EAAaJ,UAAU/pI,KAAKqgB,EAAQ8kB,SALzC4/B,GAAQtwD,IAAIe,MAAM,wEAMtB,EAQI60H,EAAgB,SAASA,IAC3BhqH,EAAO5gB,IAAI,iBAAkB2qI,GAC7B/pH,EAAO5gB,IAAI,QAASu8D,GACpB37C,EAAO5gB,IAAI,UAAW4qI,EACxB,EAcAhqH,EAAOhhB,GAAG,QAAS28D,GACnB37C,EAAOhhB,GAAG,UAAWgrI,GAGrBhqH,EAAOiqH,oBATY,SAAsBz2D,GACvCw2D,IACAJ,EAAW5pH,EAAQwzD,EACrB,CAOF,EAaI02D,GAAY,SAKZ32D,GAAM,CACRtE,eAAgBA,GAChBnD,SAAUA,GACVyI,MAAOA,GACP41D,2BAA4B/uB,GAC5BgvB,0BAxnU2C,WAC3C,IAAI1kH,EAAQ9mB,KAIRqsE,EAAYrsE,KAAKqsE,UAAU3tE,OAAO2tE,UAAU/3D,OAAO44D,GAAShB,WAahE,OAXAouC,GAAWjuC,GAAW,SAAU1kE,EAAGC,GACjC,OAAO8yG,GAAyB/yG,EAAGC,EACrC,IAMyBykE,EAAU/3D,QAAO,SAAU20D,GAClD,QAASuwC,GAAkB1yF,EAAMulD,UAAU3tE,OAAQuqE,GAAU/gE,KAC/D,IAC0B,IAAM,IAClC,EAsmUEs0G,sBAAuBA,GACvBivB,+BA3vUmC,SAAwCC,GAC3E,IAAIC,GAAW,EACXC,GAAuB,EAE3B,GAAIF,EAAQ,GAAKA,EAAQ,EACvB,MAAM,IAAI1nI,MAAM,2DAGlB,OAAO,WACL,IAAIy4G,EAAaz8G,KAAK08G,qBAAsB,sBAAiC,EAiB7E,OAfIivB,EAAU,IACZA,EAAU3rI,KAAK28G,gBACfivB,EAAsB5rI,KAAK28G,iBAQzB38G,KAAK28G,gBAAkB,GAAK38G,KAAK28G,kBAAoBivB,IACvDD,EAAUD,EAAQ1rI,KAAK28G,iBAAmB,EAAI+uB,GAASC,EACvDC,EAAsB5rI,KAAK28G,iBAGtB9B,GAAe76G,KAAKqsE,UAAU3tE,OAAQitI,EAAS78G,SAASsrF,GAAqBp6G,KAAK88B,MAAM/kB,KAAM,SAAU,IAAM0kG,EAAY3tF,SAASsrF,GAAqBp6G,KAAK88B,MAAM/kB,KAAM,UAAW,IAAM0kG,EAAYz8G,KAAKg7G,iCAAkCh7G,KAAK48G,0BAC3P,CACF,EAguUElC,yBAA0BA,GAC1BmxB,0BA1/U8B,SAAmCxtH,EAAMo3B,GACvE,IAAIq2F,EACAC,EAeJ,OAbI1tH,EAAKrD,WAAWqgG,YAAch9F,EAAKrD,WAAWqgG,WAAWn9F,QAC3D4tH,EAAYztH,EAAKrD,WAAWqgG,WAAWn9F,OAGzC4tH,EAAYA,GAAa,WAAgBt/D,UAErC/2B,EAAMz6B,WAAWqgG,YAAc5lE,EAAMz6B,WAAWqgG,WAAWn9F,QAC7D6tH,EAAat2F,EAAMz6B,WAAWqgG,WAAWn9F,OAMvC4tH,KAHJC,EAAaA,GAAc,WAAgBv/D,YAGXnuD,EAAKrD,WAAWuxD,WAAa92B,EAAMz6B,WAAWuxD,UACrEluD,EAAKrD,WAAWuxD,UAAY92B,EAAMz6B,WAAWuxD,UAG/Cu/D,EAAYC,CACrB,EAq+UE1nI,IAAKmwE,MAGPpgE,OAAOC,KAAKypE,IAAQj/E,SAAQ,SAAUmZ,GACpC5D,OAAO2Q,eAAe4vD,GAAK38D,EAAM,CAC/BsK,IAAK,WAEH,OADAwjD,GAAQtwD,IAAIc,KAAK,aAAe0B,EAAO,kDAChC8lE,GAAO9lE,EAChB,EACAoK,IAAK,SAAa1f,GAChBojE,GAAQtwD,IAAIc,KAAK,aAAe0B,EAAO,kDAElB,iBAAVtV,GAAsBA,EAAQ,EACvCojE,GAAQtwD,IAAIc,KAAK,gBAAkB0B,EAAO,uCAI5C8lE,GAAO9lE,GAAQtV,CACjB,GAEJ,IACA,IAAIspI,GAAoB,cASpBC,GAAuB,SAA8BC,EAAepP,GAItE,IAHA,IAAIhX,EAAcgX,EAAenhE,QAC7B5W,GAAiB,EAEZxmD,EAAI,EAAGA,EAAI2tI,EAAc5tI,OAAQC,IACxC,GAAI2tI,EAAc3tI,GAAGiQ,KAAOs3G,EAAYt3G,GAAI,CAC1Cu2C,EAAgBxmD,EAChB,KACF,CAGF2tI,EAAcC,eAAiBpnF,EAC/BmnF,EAActrI,QAAQ,CACpBmkD,cAAeA,EACf1kD,KAAM,UAEV,EAmBAs0E,GAAIhwC,cAAgB,WAClB,OAAOmhC,GAAQtwD,IAAIc,KAAK,0EAC1B,EAEA,IA8HI81H,GAA4B,SAAmChhI,GACjE,IAAIgW,EAAShW,EAAKgW,OACdirH,EAAmBjhI,EAAKihI,iBACxBC,EAAalhI,EAAKkhI,WAClBC,EAAgBnhI,EAAKmhI,cAEzB,IAAKnrH,EAAOwqB,IAAI4gG,oBACd,OAAOzoG,QAAQ+3B,UAWjB,IACI2wE,EAtE4B,SAAqCpgE,EAAWqgE,GAChF,OAAOrgE,EAAU9pE,QAAO,SAAUoqI,EAAe1jE,GAC/C,IAAKA,EAAS2jE,kBACZ,OAAOD,EAGT,IAAIE,EAAoBH,EAAWnqI,QAAO,SAAUuqI,EAAeC,GACjE,IAAIC,EAAmB/jE,EAAS2jE,kBAAkBG,GAQlD,OANIC,GAAoBA,EAAiBC,OACvCH,EAAcC,GAAa,CACzBE,KAAMD,EAAiBC,OAIpBH,CACT,GAAG,CAAC,GAMJ,OAJI14H,OAAOC,KAAKw4H,GAAmBvuI,QACjCquI,EAAcpsI,KAAKssI,GAGdF,CACT,GAAG,GACL,CA8C6BO,CADXZ,EAAaC,EAAc16H,OAAO,CAACy6H,IAAeC,EACAn4H,OAAOC,KAAKg4H,IAC1Ec,EAAiC,GACjCC,EAA4B,GA6BhC,OAvBAX,EAAqB5tI,SAAQ,SAAUguI,GACrCO,EAA0B7sI,KAAK,IAAIwjC,SAAQ,SAAU+3B,EAAS93B,GAC5D5iB,EAAO0b,MAAMhX,IAAI,oBAAqBg2C,EACxC,KACAqxE,EAA+B5sI,KAAK,IAAIwjC,SAAQ,SAAU+3B,EAAS93B,GACjE5iB,EAAOwqB,IAAI4gG,oBAAoB,CAC7BE,WAAYG,IACX,SAAUhrI,GACPA,EACFmiC,EAAOniC,GAITi6D,GACF,GACF,IACF,IAOO/3B,QAAQspG,KAAK,CAGpBtpG,QAAQ3tB,IAAI+2H,GACZppG,QAAQspG,KAAKD,IACf,EAoBIE,GAAkB,SAAyBjuE,GAC7C,IAAIj+C,EAASi+C,EAAMj+C,OAIfmsH,EA9Mc,SAAuBP,EAAkBQ,EAAcC,GACzE,IAAKT,EACH,OAAOA,EAGT,IAAI7jI,EAAS,CAAC,EAEVqkI,GAAgBA,EAAaxyH,YAAcwyH,EAAaxyH,WAAWgyD,SACrE7jE,EAASiwG,GAAgBnwG,EAAYukI,EAAaxyH,WAAWgyD,UAG3DygE,GAAiBA,EAAczyH,YAAcyyH,EAAczyH,WAAWgyD,SACxE7jE,EAAOhB,MAAQslI,EAAczyH,WAAWgyD,QAG1C,IAAI0gE,EAAmB/jI,EAAgBR,EAAOjB,OAC1CylI,EAAmBhkI,EAAgBR,EAAOhB,OAE1CylI,EAAwB,CAAC,EAE7B,IAAK,IAAIb,KAAaC,EACpBY,EAAsBb,GAAa,CAAC,EAEhCY,IACFC,EAAsBb,GAAWY,iBAAmBA,GAGlDD,IACFE,EAAsBb,GAAWW,iBAAmBA,GASlDF,EAAaZ,mBAAqBY,EAAaZ,kBAAkBG,IAAcS,EAAaZ,kBAAkBG,GAAWE,OAC3HW,EAAsBb,GAAWE,KAAOO,EAAaZ,kBAAkBG,GAAWE,MAKzC,iBAAhCD,EAAiBD,KAC1Ba,EAAsBb,GAAWrnI,IAAMsnI,EAAiBD,IAI5D,OAAOjnE,GAAQsB,aAAa4lE,EAAkBY,EAChD,CA6JsBC,CAHGxuE,EAAMgtE,iBACjBhtE,EAAM1D,MACD0D,EAAMitE,YAGvB,QAAKiB,IAILnsH,EAAOw4C,gBAAgB8yE,WAAaa,IAGhCA,IAAkBnsH,EAAOwqB,OAC3Bk6B,GAAQtwD,IAAIc,KAAK,kEACV,GAIX,EAEIw3H,GAAqB,WACvB,IAAK,iBACH,OAAO,KAGT,IAAIC,EAAe,iBAAsB7oF,QAAQ8mF,IAEjD,IAAK+B,EACH,OAAO,KAGT,IACE,OAAOjpI,KAAKC,MAAMgpI,EACpB,CAAE,MAAOhrI,GAEP,OAAO,IACT,CACF,EAiDA4xE,GAAIq5D,kBAAoB,WACtB,IAAK,MAAa,kBAChB,OAAO,EAGT,IAAI9lI,EAAQ,kBAAuB,SAEnC,IAAK49D,GAAQ9gC,QAAQ,SAASiF,cAC5B,OAAO,EAUT,MANc,CACd,gCACA,gBACA,kBACA,wBACA,kBAAmB,gBAAiB,uBACrBtc,MAAK,SAAUsgH,GAC5B,MAAO,kBAAkB3uI,KAAK4I,EAAMw8B,YAAYupG,GAClD,GACF,CArBwB,GAuBxBt5D,GAAIu5D,sBACG,KAAa,mBAA2BpoE,GAAQ9gC,QAAQ,SAASiF,gBAI/D,kBAAkB3qC,KAAK,kBAAuB,SAASolC,YAAY,yBAG5EiwC,GAAIw5D,qBAAuB,SAAU9tI,GACnC,MAAa,QAATA,EACKs0E,GAAIq5D,kBAGA,SAAT3tI,GACKs0E,GAAIu5D,kBAIf,EAOAv5D,GAAI1qC,YAAc,WAChB,OAAO67B,GAAQtwD,IAAIc,KAAK,0EAC1B,EAEA,IAYI83H,GAA0B,SAAU55G,GAGtC,SAAS45G,EAAWz2H,EAAQkc,EAAMhwB,GAChC,IAAIijB,EAiBJ,GAfAA,EAAQ0N,EAAWzzB,KAAKf,KAAM6zB,EAAMiyC,GAAQsB,aAAavjE,EAAQwqI,IAAKxqI,EAAQysE,OAAStwE,KAEnF6D,EAAQwqI,KAAOj6H,OAAOC,KAAKxQ,EAAQwqI,KAAK/vI,QAC1CwnE,GAAQtwD,IAAIc,KAAK,yFAKqB,iBAA7BzS,EAAQyqI,mBACjBxnH,EAAM4D,SAASwjD,UAAYrqE,EAAQyqI,kBAGrCxnH,EAAMypD,QAAUrI,GAAO,cAGnBr0C,EAAKnJ,UAAYmJ,EAAKnJ,SAAS0iC,SAAU,CAC3C,IAAIqZ,EAAUX,GAAQjyC,EAAKnJ,SAAS0iC,UAE/BqZ,EAAQt/D,eAAe,QAC1BiN,OAAO2Q,eAAe0hD,EAAS,MAAO,CACpCnkD,IAAK,WAMH,OALAwjD,GAAQtwD,IAAIc,KAAK,4DACjBud,EAAKjzB,QAAQ,CACXP,KAAM,QACNgJ,KAAM,uBAED,aAAuByd,EAChC,EACA8iC,cAAc,IAIb6c,EAAQt/D,eAAe,QAC1BiN,OAAO2Q,eAAe0hD,EAAS,MAAO,CACpCnkD,IAAK,WAMH,OALAwjD,GAAQtwD,IAAIc,KAAK,4DACjBud,EAAKjzB,QAAQ,CACXP,KAAM,QACNgJ,KAAM,uBAED,aAAuByd,EAChC,EACA8iC,cAAc,IAIb6c,EAAQt/D,eAAe,SAC1BiN,OAAO2Q,eAAe0hD,EAAS,OAAQ,CACrCnkD,IAAK,WAEH,OADAwjD,GAAQtwD,IAAIc,KAAK,8DACV,aAAuBwQ,EAChC,EACA8iC,cAAc,IAIlB9iC,EAAMyD,QAAUk8C,CAClB,CASA,GAPA3/C,EAAMgW,MAAQjJ,EACd/M,EAAMynH,QAAU52H,EAChBmP,EAAM4tF,MAAQ,CAAC,EACf5tF,EAAM0nH,yBAA0B,EAEhC1nH,EAAM2nH,cAEF3nH,EAAM4D,SAASgkH,gBAAkB76G,EAAK2Q,2BAA6B3Q,EAAK4Q,0BAC1E5Q,EAAK2Q,2BAA0B,GAC/B3Q,EAAK4Q,2BAA0B,QAC1B,GAAI3d,EAAM4D,SAASgkH,iBAAmB76G,EAAK86G,2BAA6B96G,EAAKutB,2BAGlF,MAAM,IAAIp9C,MAAM,4EAqClB,OAhCA8iB,EAAM1mB,GAAG,IAAU,CAAC,mBAAoB,yBAA0B,sBAAuB,uBAAuB,SAAUye,GACxH,IAAIJ,EAAoB,uBAA8B,6BAAoC,0BAAiC,wBAEvHA,GAAqBA,EAAkBrC,SAAS0K,EAAMgW,MAAM/kB,MAC9D+O,EAAM81F,0BAA0ByiB,qBAKhCv4G,EAAM81F,0BAA0BglB,WAEpC,IAEA96G,EAAM1mB,GAAG0mB,EAAMgW,MAAO,WAAW,WAC3B98B,KAAKwuI,wBACPxuI,KAAKwuI,yBAA0B,EAIjCxuI,KAAK2iC,eAAe3iC,KAAK88B,MAAMqB,cACjC,IAEArX,EAAM1mB,GAAG0mB,EAAMgW,MAAO,SAAS,WAGzB98B,KAAK88B,MAAMvmB,SAAWvW,KAAK48G,2BAC7B58G,KAAK48G,0BAA0B0jB,cAEnC,IAEAx5G,EAAM1mB,GAAG0mB,EAAMgW,MAAO,OAAQhW,EAAMwD,MAE7BxD,CACT,EAnHA,aAAesnH,EAAY55G,GAqH3B,IAAIt0B,EAASkuI,EAAWjuI,UAkoBxB,OAhoBAD,EAAOuuI,YAAc,WACnB,IAAIvmH,EAASloB,KAmBb,GAhBAA,KAAK0qB,SAAS5jB,gBAAkB9G,KAAK0qB,SAAS5jB,kBAAmB,EACjE9G,KAAK0qB,SAASimD,yBAAoE,IAA1C3wE,KAAK0qB,SAASimD,wBACtD3wE,KAAK0qB,SAASswF,kCAAsF,IAAnDh7G,KAAK0qB,SAASswF,iCAC/Dh7G,KAAK0qB,SAASgyF,oBAAsB18G,KAAK0qB,SAASgyF,sBAAuB,EACzE18G,KAAK0qB,SAAS88G,oBAAsBxnI,KAAK0qB,SAAS88G,sBAAuB,EACzExnI,KAAK0qB,SAASkkH,kCAAoF,IAA9C5uI,KAAKuuI,QAAQK,6BAA+C5uI,KAAKuuI,QAAQK,6BAA+B5uI,KAAK0qB,SAASkkH,+BAAgC,EAC1M5uI,KAAK0qB,SAASmkH,yBAA2B7uI,KAAK0qB,SAASmkH,2BAA4B,EACnF7uI,KAAK0qB,SAAS+2F,yBAA2BzhH,KAAK0qB,SAAS+2F,2BAA4B,EACnFzhH,KAAK0qB,SAASomD,iBAAmB9wE,KAAK0qB,SAASomD,kBAAoB,GACnE9wE,KAAK0qB,SAASqmD,iBAAmB/wE,KAAK0qB,SAASqmD,kBAAoB,GACnE/wE,KAAK0qB,SAASq4F,oBAAsB/iH,KAAK0qB,SAASq4F,sBAAuB,EAE1B,iBAApC/iH,KAAK0qB,SAASwwD,oBACvBl7E,KAAK0qB,SAASwwD,kBAAoB,KAGG,iBAA5Bl7E,KAAK0qB,SAASwjD,WACnBluE,KAAK0qB,SAASkkH,6BAA8B,CAC9C,IAAIb,EAAeD,KAEfC,GAAgBA,EAAa7/D,YAC/BluE,KAAK0qB,SAASwjD,UAAY6/D,EAAa7/D,UACvCluE,KAAK88B,MAAMl8B,QAAQ,CACjBP,KAAM,QACNgJ,KAAM,qCAERrJ,KAAK88B,MAAMl8B,QAAQ,CACjBP,KAAM,QACNgJ,KAAM,sCAIN0kI,GAAgBA,EAAa7tB,aAC/BlgH,KAAK0qB,SAASw1F,WAAa6tB,EAAa7tB,WACxClgH,KAAK88B,MAAMl8B,QAAQ,CACjBP,KAAM,QACNgJ,KAAM,sCAERrJ,KAAK88B,MAAMl8B,QAAQ,CACjBP,KAAM,QACNgJ,KAAM,sCAGZ,CAKqC,iBAA5BrJ,KAAK0qB,SAASwjD,YACvBluE,KAAK0qB,SAASwjD,UAAY4P,GAAOK,mBAKnCn+E,KAAK0qB,SAASs1G,yBAA2BhgI,KAAK0qB,SAASs1G,0BAA4BhgI,KAAK0qB,SAASwjD,YAAc4P,GAAOK,kBAEtH,CAAC,kBAAmB,sBAAuB,mCAAoC,YAAa,sBAAuB,mBAAoB,mBAAoB,0BAA2B,sBAAuB,mBAAoB,0BAA2B,6BAA8B,yBAA0B,oBAAqB,2BAA4B,2BAA4B,mCAAoC,sCAAsCt/E,SAAQ,SAAUiwI,QACrb,IAA3B5mH,EAAOqmH,QAAQO,KACxB5mH,EAAOwC,SAASokH,GAAU5mH,EAAOqmH,QAAQO,GAE7C,IACA9uI,KAAKg7G,iCAAmCh7G,KAAK0qB,SAASswF,iCACtDh7G,KAAK08G,oBAAsB18G,KAAK0qB,SAASgyF,mBAC3C,EAQAx8G,EAAO+zB,IAAM,SAAaqU,EAAMjoC,GAC9B,IAAIioB,EAAStoB,KAGb,GAAKsoC,EAAL,CApRgB,IAAuBymG,EAwRvC/uI,KAAKyuI,cAELzuI,KAAK0qB,SAASuJ,IAzRgE,KADvC86G,EA0RL/uI,KAAKuuI,QAAQt6G,KAzRrC5xB,cAAc3B,QAAQ,0CACzBoE,KAAKC,MAAMgqI,EAAQvlI,UAAUulI,EAAQruI,QAAQ,KAAO,IAItDquI,EAqRL/uI,KAAK0qB,SAASmJ,KAAO7zB,KAAK88B,MAC1B98B,KAAK0qB,SAASo1G,UAAYnrD,GAC1B30E,KAAK0qB,SAAS80F,WAAal1G,EAAyBjK,GAEpDL,KAAK0qB,SAAS4sD,OAAS,SAAU9lC,GAC/BlpB,EAAOwU,MAAM6F,eAAe6O,EAC9B,EAEIxxC,KAAK0qB,SAAS88G,qBAChB1hE,GAAQtwD,IAAIc,KAAK,mFAGnBtW,KAAK48G,0BAA4B,IAAIijB,GAAyB7/H,KAAK0qB,UACnE,IAAIskH,EAAyBlpE,GAAQsB,aAAa,CAChD0gE,uBAAwB1/D,IACvBpoE,KAAK0qB,SAAU,CAChB6c,SAAU,WACR,OAAOjf,EAAOif,UAChB,EACAo0B,MAAO,WACL,OAAOrzC,EAAOs0F,0BAA0BjhD,OAC1C,EACAs/C,yBAA0Bj7G,KAAK48G,4BAEjC58G,KAAKivI,iBAAmB,IAAIrH,GAAgBoH,GAC5ChvI,KAAK48G,0BAA0Bx8G,GAAG,SAAS,WACzC,IAAIghB,EAAS0kD,GAAQj0C,QAAQvJ,EAAOwU,MAAMpS,SAAS0iC,UAC/C72C,EAAQ+R,EAAOs0F,0BAA0BrmG,MAExB,iBAAVA,GAAuBA,EAAMtP,KAEZ,iBAAVsP,IAChBA,EAAQ,CACNwc,QAASxc,EACTtP,KAAM,IAJRsP,EAAMtP,KAAO,EAQfma,EAAO7K,MAAMA,EACf,IACA,IAAI24H,EAAkBlvI,KAAK0qB,SAASu1G,2BAA6BtrD,GAAI82D,+BAA+B,KAAQ92D,GAAI42D,2BAGhHvrI,KAAK48G,0BAA0BwiB,eAAiBp/H,KAAKo/H,eAAiBp/H,KAAKo/H,eAAeh5G,KAAKpmB,MAAQkvI,EAAgB9oH,KAAKpmB,MAC5HA,KAAK48G,0BAA0B8lB,sBAAwB/tD,GAAI62D,0BAA0BplH,KAAKpmB,MAE1FA,KAAKqsE,UAAYrsE,KAAK48G,0BAA0BziC,sBAChDn6E,KAAKigH,YAAcjgH,KAAK48G,0BAA0BqD,YAIlD7rG,OAAO4pB,iBAAiBh+B,KAAM,CAC5Bo/H,eAAgB,CACd98G,IAAK,WACH,OAAOtiB,KAAK48G,0BAA0BwiB,cACxC,EACAh9G,IAAK,SAAag9G,GAChBp/H,KAAK48G,0BAA0BwiB,eAAiBA,EAAeh5G,KAAKpmB,KACtE,GAEFkgH,WAAY,CACV59F,IAAK,WACH,OAAOtiB,KAAK48G,0BAA0BgjB,mBAAmB1f,WAAW3+D,IACtE,EACAn/B,IAAK,SAAa89F,GAChBlgH,KAAK48G,0BAA0BgjB,mBAAmB1f,WAAW3+D,KAAO2+D,EAGpElgH,KAAK48G,0BAA0BgjB,mBAAmB1f,WAAWj2C,MAAQ,CACvE,GAEFiE,UAAW,CACT5rD,IAAK,WACH,IAAI6sH,EAAqBnvI,KAAK48G,0BAA0BgjB,mBAAmB1xD,UACvEkhE,EAAqB,cAAmBC,YAAc,cAAmBC,eAAiB,cAAmBC,iBAC7GC,EAAyB,IAE7B,GAAIxvI,KAAK0qB,SAASmkH,0BAA4BO,EAAoB,CAGhE,IAAIK,EAAkE,IAA9BL,EAAmBM,SAAkB,IAK3EP,EADEM,GAAqCD,GAA0BL,GAAsBK,EAClE1jI,KAAKE,IAAImjI,EAAoBM,GAE7BA,CAEzB,CAEA,OAAON,CACT,EACA/sH,IAAK,SAAa8rD,GAChBluE,KAAK48G,0BAA0BgjB,mBAAmB1xD,UAAYA,EAI9DluE,KAAK48G,0BAA0BgjB,mBAAmB1f,WAAa,CAC7D3+D,KAAM,EACN0oB,MAAO,EAEX,GAYF0yC,gBAAiB,CACfr6F,IAAK,WACH,IACIqtH,EADAC,EAAe,GAAK5vI,KAAKkuE,WAAa,GAU1C,OANEyhE,EADE3vI,KAAKkgH,WAAa,EACJ,EAAIlgH,KAAKkgH,WAET,EAGEp0G,KAAKmW,MAAM,GAAK2tH,EAAeD,GAErD,EACAvtH,IAAK,WACH0jD,GAAQtwD,IAAIe,MAAM,8CACpB,KAIAvW,KAAK0qB,SAASwjD,YAChBluE,KAAKkuE,UAAYluE,KAAK0qB,SAASwjD,WAG7BluE,KAAK0qB,SAASw1F,aAChBlgH,KAAKkgH,WAAalgH,KAAK0qB,SAASw1F,YAGlC9rG,OAAO4pB,iBAAiBh+B,KAAK00G,MAAO,CAClCxmC,UAAW,CACT5rD,IAAK,WACH,OAAOgG,EAAO4lD,WAAa,CAC7B,EACAvkB,YAAY,GAEdu6D,cAAe,CACb5hG,IAAK,WACH,OAAOgG,EAAOs0F,0BAA0BizB,kBAAoB,CAC9D,EACAlmF,YAAY,GAEdw6D,qBAAsB,CACpB7hG,IAAK,WACH,OAAOgG,EAAOs0F,0BAA0BkzB,yBAA2B,CACrE,EACAnmF,YAAY,GAEdy6D,sBAAuB,CACrB9hG,IAAK,WACH,OAAOgG,EAAOs0F,0BAA0BmzB,0BAA4B,CACtE,EACApmF,YAAY,GAEd06D,qBAAsB,CACpB/hG,IAAK,WACH,OAAOgG,EAAOs0F,0BAA0BozB,yBAA2B,CACrE,EACArmF,YAAY,GAEd26D,sBAAuB,CACrBhiG,IAAK,WACH,OAAOgG,EAAOs0F,0BAA0BqzB,0BAA4B,CACtE,EACAtmF,YAAY,GAEds6D,sBAAuB,CACrB3hG,IAAK,WACH,OAAOgG,EAAOs0F,0BAA0BszB,0BAA4B,CACtE,EACAvmF,YAAY,GAEd46D,mBAAoB,CAClBjiG,IAAK,WACH,OAAOgG,EAAOs0F,0BAA0B0nB,uBAAyB,CACnE,EACA36E,YAAY,GAEd66D,aAAc,CACZliG,IAAK,WACH,OAAOgG,EAAOs0F,0BAA0BuzB,iBAAmB,CAC7D,EACAxmF,YAAY,GAEdymF,wBAAyB,CACvB9tH,IAAK,WACH,OAAOgG,EAAOs0F,0BAA0B4kB,4BAA8B,CACxE,EACA73E,YAAY,GAEd0mF,yBAA0B,CACxB/tH,IAAK,WACH,OAAOgG,EAAOs0F,0BAA0B6kB,6BAA+B,CACzE,EACA93E,YAAY,GAEd2mF,oBAAqB,CACnBhuH,IAAK,WACH,OAAOgG,EAAOs0F,0BAA0B8kB,wBAA0B,CACpE,EACA/3E,YAAY,GAEd4mF,iBAAkB,CAChBjuH,IAAK,WACH,OAAOgG,EAAOs0F,0BAA0B+kB,qBAAuB,CACjE,EACAh4E,YAAY,GAEdh3B,SAAU,CACRrQ,IAAK,WACH,OAAOsmD,GAAkBtgD,EAAOwU,MAAMnK,WACxC,EACAg3B,YAAY,GAEdxrB,YAAa,CACX7b,IAAK,WACH,OAAOgG,EAAOwU,MAAMqB,aACtB,EACAwrB,YAAY,GAEdiQ,cAAe,CACbt3C,IAAK,WACH,OAAOgG,EAAOwU,MAAMsJ,cACtB,EACAujB,YAAY,GAEd6mF,YAAa,CACXluH,IAAK,WACH,OAAOgG,EAAOwU,MAAM5V,KACtB,EACAyiC,YAAY,GAEd/2B,SAAU,CACRtQ,IAAK,WACH,OAAOgG,EAAOwU,MAAMlK,UACtB,EACA+2B,YAAY,GAEdjrD,OAAQ,CACN4jB,IAAK,WACH,OAAOgG,EAAO+jD,UAAU3tE,MAC1B,EACAirD,YAAY,GAEd8mF,iBAAkB,CAChBnuH,IAAK,WACH,OAAOgG,EAAOwU,MAAM3N,mBACtB,EACAw6B,YAAY,GAEdpiB,SAAU,CACRjlB,IAAK,WACH,OAAOsmD,GAAkBtgD,EAAOwU,MAAMyK,WACxC,EACAoiB,YAAY,GAEdo/B,UAAW,CACTzmE,IAAK,WACH,OAAOH,KAAKD,KACd,EACAynC,YAAY,GAEdkF,qBAAsB,CACpBvsC,IAAK,WACH,OAAOgG,EAAOwU,MAAM8G,yBACtB,EACA+lB,YAAY,KAGhB3pD,KAAK88B,MAAMhX,IAAI,UAAW9lB,KAAK48G,0BAA0B0lB,eAAel8G,KAAKpmB,KAAK48G,4BAClF58G,KAAK88B,MAAM18B,GAAG,mBAAmB,WAC3BkoB,EAAOoC,SAASkkH,8BAzlBE,SAA+B/qI,GACzD,IAAK,iBACH,OAAO,EAGT,IAAI6sI,EAAgB5C,KACpB4C,EAAgBA,EAAgB5qE,GAAQsB,aAAaspE,EAAe7sI,GAAWA,EAE/E,IACE,iBAAsBshD,QAAQ6mF,GAAmBlnI,KAAKoB,UAAUwqI,GAClE,CAAE,MAAO3tI,GAKP,OAAO,CACT,CAGF,CAukBQ4tI,CAAsB,CACpBziE,UAAW5lD,EAAO4lD,UAClBgyC,WAAYp0G,KAAK6pC,MAAMrtB,EAAO43F,aAGpC,IACAlgH,KAAK48G,0BAA0Bx8G,GAAG,wBAAwB,WAxtDhC,IAAiCgnI,KA0tDjC9+G,GAxtDjBsoH,gBAAkB,WAC3B,IAAIlyI,EAAS0oI,EAAWxqB,0BAA0Bl+G,SAC9C2tE,EAAYS,GAAYpuE,GAAU0oI,EAAWxqB,0BAA0B1B,0BAA4Bx8G,EAAO2tE,UAE9G,OAAKA,EAIEA,EAAU/3D,QAAO,SAAUqnD,GAChC,OAAQsQ,GAAetQ,EACzB,IAAG/xD,KAAI,SAAU7G,EAAGxE,GAClB,OAAO,IAAI4oI,GAAeC,EAAYrkI,EAAGA,EAAEyL,GAC7C,IAPS,EAQX,CA4sDE,IACAxO,KAAK48G,0BAA0BsE,eAAe9gH,GAAG,wBAAwB,WACvEkoB,EAAOuoH,WACT,IAGA7wI,KAAKI,GAAGJ,KAAK48G,0BAA2B,YAAY,WAClD58G,KAAK88B,MAAMl8B,QAAQ,WACrB,IAGAZ,KAAKI,GAAGJ,KAAK48G,0BAA2B,aAAa,WACnD58G,KAAKwuI,yBAA0B,CACjC,IACAxuI,KAAK8wI,sBAGA9wI,KAAK88B,MAAM/kB,OAIhB/X,KAAK+wI,gBAAkB,QAAajyD,gBAAgB9+E,KAAK48G,0BAA0BqD,aACnFjgH,KAAK88B,MAAM7I,IAAIj0B,KAAK+wI,iBAjUpB,CAkUF,EAEA7wI,EAAO8wI,mBAAqB,WAC1B,IAAIngH,EAAS7wB,KAETixI,EAAsBjxI,KAAK48G,0BAA0B2jB,YAAY3zD,MAAMgwD,qBAC3E58H,KAAKuwE,QAAQ,wCACb67D,GAA0B,CACxBhrH,OAAQphB,KAAKuqB,QACb8hH,iBAAkBrsI,KAAKuuI,QAAQ7B,WAC/BJ,WAAY2E,GAAuBA,EAAoBt1E,QACvD4wE,cAAevsI,KAAKqsE,UAAU3tE,OAAO2tE,YACpCj5C,MAAK,WACNvC,EAAO0/C,QAAQ,2BAEf1/C,EAAO+rF,0BAA0BsE,eAAeuR,gBAClD,IAAU,OAAE,SAAU5wH,GACpBgvB,EAAO0/C,QAAQ,uCAAwC1uE,GAEvDgvB,EAAOtG,QAAQhU,MAAM,CACnBwc,QAAS,0CACT9rB,KAAM,GAEV,GACF,EAEA/G,EAAOgxI,qBAAuB,WAS5BlxI,KAAKuwE,QAAQ,kEACbvwE,KAAKgxI,oBACP,EAWA9wI,EAAO2wI,UAAY,WACjB,IAAI7/G,EAAShxB,KAETixI,EAAsBjxI,KAAK48G,0BAA0B2jB,YAAY3zD,MAAMgwD,qBACvEuU,EAAqB7D,GAAgB,CACvClsH,OAAQphB,KAAKuqB,QACb8hH,iBAAkBrsI,KAAKuuI,QAAQ7B,WAC/B/wE,MAAO37D,KAAKqsE,UAAU1Q,QACtB2wE,WAAY2E,GAAuBA,EAAoBt1E,UAEzD37D,KAAKuqB,QAAQuS,MAAM18B,GAAG,mBAAmB,SAAU2C,GAChC,sBAAbA,EAAEwC,QACJyrB,EAAO4rF,0BAA0BogB,yBAAyB,CACxD/zD,SAAUj4C,EAAO4rF,0BAA0BjhD,QAC3C5oC,QAAS,4BAA8BhwB,EAAEwC,OAAS,wDAClD21E,kBAAmBvoE,KAGzB,IACA3S,KAAKkxI,qBAAuBlxI,KAAKkxI,qBAAqB9qH,KAAKpmB,MAC3DA,KAAKuqB,QAAQuS,MAAM18B,GAAG,gBAAiBJ,KAAKkxI,sBAGT,KAA/BprE,GAAQ9rD,QAAQZ,YAAsB+3H,EAM1CnxI,KAAKgxI,qBAJHhxI,KAAK48G,0BAA0BsE,eAAeuR,gBAKlD,EASAvyH,EAAO4wI,oBAAsB,WAC3B,IAAI3/G,EAASnxB,KAETohB,EAAS0kD,GAAQj0C,QAAQ7xB,KAAK88B,MAAMpS,SAAS0iC,UAG5ChsC,GAAWA,EAAO8qH,gBAAiBlsI,KAAKoxI,iBAI7CpxI,KAAKoxI,eAAiBhwH,EAAO8qH,gBAC7BlsI,KAAK48G,0BAA0Bx8G,GAAG,wBAAwB,WA39BhC,IAAiC8rI,EAAe57D,EAAf47D,EA49BjC/6G,EAAOigH,gBA59ByC9gE,EA49BzBn/C,GA39B/Cy/G,kBAAkB/xI,SAAQ,SAAU08G,GACtC2wB,EAAcmF,gBAAgB91B,EAChC,IACA0wB,GAAqBC,EAAe57D,EAAIjE,UAy9BtC,IACArsE,KAAKqsE,UAAUjsE,GAAG,eAAe,WAC/B6rI,GAAqB96G,EAAOigH,eAAgBjgH,EAAOk7C,UACrD,IACF,EAMA+hE,EAAW/0H,QAAU,WACnB,MAAO,CACL,0BAA2BiyH,GAC3B,SAhjCU,QAijCV,aAhjCU,SAijCV,cAhjCU,QAijCV,gBAhjCQ,QAkjCZ,EAMAprI,EAAOmZ,QAAU,WACf,OAAOrZ,KAAK6X,YAAYwB,SAC1B,EAEAnZ,EAAO6yH,cAAgB,WACrB,OAAOrB,GAAcqB,eACvB,EAMA7yH,EAAOoqB,KAAO,WACZtqB,KAAK48G,0BAA0BtyF,MACjC,EAMApqB,EAAOyiC,eAAiB,SAAwBxE,GAC9Cn+B,KAAK48G,0BAA0Bj6E,eAAexE,EAChD,EAMAj+B,EAAO0yB,SAAW,WAChB,OAAO5yB,KAAK48G,0BAA0BhqF,UACxC,EAMA1yB,EAAOqnC,SAAW,WAChB,OAAOvnC,KAAK48G,0BAA0Br1E,UACxC,EAMArnC,EAAOmB,QAAU,WACXrB,KAAKivI,kBACPjvI,KAAKivI,iBAAiB5tI,UAGpBrB,KAAK48G,2BACP58G,KAAK48G,0BAA0Bv7G,UAG7BrB,KAAKoxI,gBACPpxI,KAAKoxI,eAAe/vI,UAGlBrB,KAAKuqB,iBACAvqB,KAAKuqB,QAAQ+lD,WACbtwE,KAAKuqB,QAAQ+mH,YACbtxI,KAAKuqB,QAAQ8jH,KAGlBruI,KAAK88B,OAAS98B,KAAK88B,MAAMwzC,YACpBtwE,KAAK88B,MAAMwzC,IAIhBtwE,KAAK88B,cACA98B,KAAK88B,MAAMuxG,IAGhBruI,KAAK+wI,iBAAmB,QAAaxxD,kBACvC,QAAaA,gBAAgBv/E,KAAK+wI,iBAClC/wI,KAAK+wI,gBAAkB,MAGrB/wI,KAAK88B,OACP98B,KAAK88B,MAAMt8B,IAAI,gBAAiBR,KAAKkxI,sBAGvC18G,EAAWr0B,UAAUkB,QAAQN,KAAKf,KACpC,EAEAE,EAAOqxI,qBAAuB,SAA8B//F,EAAM5yC,GAChE,OAAOk3E,GAAe,CACpB7M,SAAUjpE,KAAK48G,0BAA0BjhD,QACzCnqB,KAAMA,EACN5yC,SAAUA,GAEd,EAGAsB,EAAOi3E,kBAAoB,SAA6BT,EAAa93E,EAAU44E,EAAgBH,GAS7F,YARuB,IAAnBG,IACFA,GAAiB,QAGA,IAAfH,IACFA,EAAa,GAGRF,GAAkB,CACvBT,YAAaA,EACbzN,SAAUjpE,KAAK48G,0BAA0BjhD,QACzC0b,WAAYA,EACZG,eAAgBA,EAChBF,OAAQt3E,KAAK0qB,SAAS4sD,OACtBzjD,KAAM7zB,KAAK0qB,SAASmJ,KACpBj1B,SAAUA,GAEd,EAEOwvI,CACT,CAzvB8B,CAZdtoE,GAAQ14C,aAAa,cA+wBjCokH,GAAmB,CACrBnoI,KAAM,yBACN+7D,QAASkmE,GACTxlG,gBAAiB,SAAyBlB,EAAQ/gC,QAChC,IAAZA,IACFA,EAAU,CAAC,GAGb,IAAIqnI,EAAeplE,GAAQsB,aAAatB,GAAQjiE,QAASA,GACzD,OAAO2tI,GAAiB9sG,YAAYE,EAAOvkC,KAAM6qI,EACnD,EACA7kG,aAAc,SAAsB1uB,EAAQkc,EAAMhwB,QAChC,IAAZA,IACFA,EAAU,CAAC,GAGb,IAAIqnI,EAAeplE,GAAQsB,aAAatB,GAAQjiE,QAASA,GAezD,OAdAgwB,EAAKy8C,IAAM,IAAI89D,GAAWz2H,EAAQkc,EAAMq3G,GAEnCplE,GAAQ3+D,eAAe,QAC1BiN,OAAO2Q,eAAe8O,EAAM,MAAO,CACjCvR,IAAK,WAEH,OADAwjD,GAAQtwD,IAAIc,KAAK,mEACVud,EAAKy8C,GACd,EACA1mB,cAAc,IAIlB/1B,EAAKy8C,IAAIjsE,IAAMmwE,KACf3gD,EAAKy8C,IAAIr8C,IAAItc,EAAOsc,IAAKtc,EAAOtX,MACzBwzB,EAAKy8C,GACd,EACA5rC,YAAa,SAAqBrkC,EAAMwD,QACtB,IAAZA,IACFA,EAAU,CAAC,GAGb,IAAI4tI,EAAwB3rE,GAAQsB,aAAatB,GAAQjiE,QAASA,GAC9D6tI,EAAyBD,EAAsBnhE,IAG/CqhE,GADJD,OAAoD,IAA3BA,EAAoC,CAAC,EAAIA,GACdhD,eAChDA,OAA4C,IAA3BiD,GAAqC7rE,GAAQ9rD,QAAQD,cAAgB43H,EACtFC,EAAyBH,EAAsBpD,IAE/CwD,GADJD,OAAoD,IAA3BA,EAAoC,CAAC,EAAIA,GACdlD,eAChDoD,OAAkD,IAA3BD,GAA4CA,EACnEE,EAAgBznI,EAAyBjK,GAE7C,OADwB0xI,KAAmBp9D,GAAIw5D,qBAAqB4D,IAAkBD,GAAwBpD,GACnF,QAAU,EACvC,IAUO1kI,EAAqB,0BAK5B87D,GAAQ9gC,QAAQ,SAASS,sBAAsB+rG,GAAkB,GAGnE1rE,GAAQsoE,WAAaA,GACrBh6H,OAAO2Q,eAAe+gD,GAAS,aAAc,CAC3CxjD,IAAK,WAEH,OADAwjD,GAAQtwD,IAAIc,KAAK,qEACV83H,EACT,EACAxkF,cAAc,IAEhBkc,GAAQ0rE,iBAAmBA,GAC3Bp9H,OAAO2Q,eAAe+gD,GAAS,mBAAoB,CACjDxjD,IAAK,WAEH,OADAwjD,GAAQtwD,IAAIc,KAAK,iFACVk7H,EACT,EACA5nF,cAAc,IAEhBkc,GAAQ6O,IAAMA,GACdvgE,OAAO2Q,eAAe+gD,GAAS,MAAO,CACpCxjD,IAAK,WAEH,OADAwjD,GAAQtwD,IAAIc,KAAK,uDACVq+D,EACT,EACA/qB,cAAc,IAGXkc,GAAQc,MACXd,GAAQx0C,kBAAkB,MAAOqjD,IACjC7O,GAAQx0C,kBAAkB,MAAOqjD,KAGnC7O,GAAQjiE,QAAQysE,IAAMxK,GAAQjiE,QAAQysE,KAAO,CAAC,EAC9CxK,GAAQjiE,QAAQwqI,IAAMvoE,GAAQjiE,QAAQwqI,KAAO,CAAC,EAEzCvoE,GAAQpB,WAAcoB,GAAQpB,UAAU,0BACtBoB,GAAQR,gBAAkBQ,GAAQd,QACxC,uBApyCS,SAA6BnhE,GACrDmnI,GAAWhrI,KAAM6D,EACnB,IAqyCA,4ECt4rDA,IAAIpC,EAAS,EAAQ,mCAEjBuwI,EAAQtwI,EAAOC,QAAU,CAC3BswI,OAAQ,EAAQ,4CAChB1zG,OAAQ,EAAQ,+CAChB2zG,UAAW,EAAQ,mDAGrBzwI,EAAOuwI,MAAQA,EACfvwI,EAAOwwI,OAASD,EAAMC,OAEtB,IAAIE,EAAUH,EAAMzzG,OAChB6zG,EAAaJ,EAAME,UACnBG,EAAe5wI,EAAO88B,OACtB+zG,EAAkB7wI,EAAOywI,UAE7BF,EAAMO,KAAO,WACX9wI,EAAO88B,OAAS4zG,EAChB1wI,EAAOywI,UAAYE,CACrB,EAEAJ,EAAMQ,QAAU,WACd/wI,EAAO88B,OAAS8zG,EAChB5wI,EAAOywI,UAAYI,CACrB,EAEK7wI,EAAO88B,QACVyzG,EAAMO,6DC9BR,IAAIE,EAAW,EAAQ,qCAEnBC,EAAat+H,OAAO0kH,QAAU,WAChC,SAAS6Z,IAAK,CACd,OAAO,SAASxuF,GACd,GAAyB,IAArBrjD,UAAUxC,OACZ,MAAM,IAAI0F,MAAM,kDAGlB,OADA2uI,EAAExyI,UAAYgkD,EACP,IAAIwuF,CACb,CACD,CATiC,GAelC,SAASC,EAAaC,EAAW9/G,GAC/B/yB,KAAKqJ,KAAO,eACZrJ,KAAKiH,KAAO4rI,EAAU5rI,KACtBjH,KAAK+yB,QAAUA,GAAW8/G,EAAU9/G,OACtC,CAiBA,SAAS+/G,EAAeC,GAEtB,SAASC,EAAeniG,EAAGzrB,EAAGvnB,EAAGo1I,GAC/B,OAAiB,MAAL,EAAJpiG,GAA0B,IAAL,EAAJzrB,IAAmB,EAAJvnB,IAAc,EAAJo1I,GAAS,GAC7D,CAEA,IAAI7tH,EAAI2tH,EAAMzpI,MAAM,wCACpB,OAAK8b,EAIDA,EAAE,GAEG4tH,EAAe5tH,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAGxc,QAAQ,IAAK,IAAKwc,EAAE,IAClDA,EAAE,GAAK,GAGT4tH,EAAe5tH,EAAE,GAAIA,EAAE,GAAI,EAAIA,EAAE,IAGjC4tH,EAAe,EAAG5tH,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAZhC,IAcX,CAIA,SAAS8tH,IACPlzI,KAAKkf,OAASwzH,EAAW,KAC3B,CAuDA,SAASS,EAAaJ,EAAOn0I,EAAUw0I,EAAeC,GACpD,IAAI10I,EAAS00I,EAAaN,EAAMzwI,MAAM+wI,GAAc,CAACN,GACrD,IAAK,IAAIx0I,KAAKI,EACZ,GAAyB,iBAAdA,EAAOJ,GAAlB,CAGA,IAAI+0I,EAAK30I,EAAOJ,GAAG+D,MAAM8wI,GACzB,GAAkB,IAAdE,EAAGh1I,OAKPM,EAFQ00I,EAAG,GACHA,EAAG,GANX,CASJ,CAEA,SAASC,EAASR,EAAOt/G,EAAK+/G,GAE5B,IAAIC,EAASV,EAEb,SAASW,IACP,IAAI9/H,EAAKk/H,EAAeC,GACxB,GAAW,OAAPn/H,EACF,MAAM,IAAIg/H,EAAaA,EAAae,OAAOC,aACrB,wBAA0BH,GAIlD,OADAV,EAAQA,EAAMnqI,QAAQ,iBAAkB,IACjCgL,CACT,CAqFA,SAASigI,IACPd,EAAQA,EAAMnqI,QAAQ,OAAQ,GAChC,CAMA,GAHAirI,IACApgH,EAAIC,UAAYggH,IAChBG,IAC2B,WAAvBd,EAAMrkD,OAAO,EAAG,GAClB,MAAM,IAAIkkD,EAAaA,EAAae,OAAOC,aACpB,qEACAH,GAEzBV,EAAQA,EAAMrkD,OAAO,GACrBmlD,IACApgH,EAAIE,QAAU+/G,IAGdG,IApGA,SAA4Bd,EAAOt/G,GACjC,IAAIyJ,EAAW,IAAIg2G,EAEnBC,EAAaJ,GAAO,SAAU/0H,EAAGulC,GAC/B,OAAQvlC,GACR,IAAK,SAEH,IAAK,IAAIzf,EAAIi1I,EAAWl1I,OAAS,EAAGC,GAAK,EAAGA,IAC1C,GAAIi1I,EAAWj1I,GAAGiQ,KAAO+0C,EAAG,CAC1BrmB,EAAS9a,IAAIpE,EAAGw1H,EAAWj1I,GAAGu1I,QAC9B,KACF,CAEF,MACF,IAAK,WACH52G,EAAS62G,IAAI/1H,EAAGulC,EAAG,CAAC,KAAM,OAC1B,MACF,IAAK,OACH,IAAIywF,EAAOzwF,EAAEjhD,MAAM,KACf2xI,EAAQD,EAAK,GACjB92G,EAASg3G,QAAQl2H,EAAGi2H,GACpB/2G,EAAS2X,QAAQ72B,EAAGi2H,IAAS/2G,EAAS9a,IAAI,eAAe,GACzD8a,EAAS62G,IAAI/1H,EAAGi2H,EAAO,CAAC,SACJ,IAAhBD,EAAK11I,QACP4+B,EAAS62G,IAAI,YAAaC,EAAK,GAAI,CAAC,QAAS,SAAU,QAEzD,MACF,IAAK,WACHA,EAAOzwF,EAAEjhD,MAAM,KACf46B,EAAS2X,QAAQ72B,EAAGg2H,EAAK,IACL,IAAhBA,EAAK11I,QACP4+B,EAAS62G,IAAI,gBAAiBC,EAAK,GAAI,CAAC,QAAS,SAAU,QAE7D,MACF,IAAK,OACH92G,EAAS2X,QAAQ72B,EAAGulC,GACpB,MACF,IAAK,QACHrmB,EAAS62G,IAAI/1H,EAAGulC,EAAG,CAAC,QAAS,SAAU,MAAO,OAAQ,UAG1D,GAAG,IAAK,MAGR9vB,EAAIqgH,OAAS52G,EAAS5a,IAAI,SAAU,MACpCmR,EAAI8f,SAAWrW,EAAS5a,IAAI,WAAY,IACxC,IACEmR,EAAI0gH,KAAOj3G,EAAS5a,IAAI,OAAQ,OAClC,CAAE,MAAOvf,GAAI,CACb0wB,EAAI2gH,UAAYl3G,EAAS5a,IAAI,YAAa,SAC1CmR,EAAI4gH,YAAcn3G,EAAS5a,IAAI,eAAe,GAC9CmR,EAAIrlB,KAAO8uB,EAAS5a,IAAI,OAAQ,KAEhC,IACEmR,EAAI2wE,MAAQlnE,EAAS5a,IAAI,QAAS,SACpC,CAAE,MAAOvf,GACP0wB,EAAI2wE,MAAQlnE,EAAS5a,IAAI,QAAS,SACpC,CACA,IACEmR,EAAIrU,SAAW8d,EAAS5a,IAAI,WAAY,OAC1C,CAAE,MAAOvf,GACP0wB,EAAIrU,SAAW8d,EAAS5a,IAAI,WAAY,CACtCkQ,MAAO,EACPnU,KAAM,EACNi2H,OAAQ,GACRpzC,OAAQ,GACRxxF,IAAK,IACL+lC,MAAO,KACNhiB,EAAI2wE,MACT,CAGA3wE,EAAI8gH,cAAgBr3G,EAAS5a,IAAI,gBAAiB,CAChDkQ,MAAO,QACPnU,KAAM,QACNi2H,OAAQ,SACRpzC,OAAQ,SACRxxF,IAAK,MACL+lC,MAAO,OACNhiB,EAAI2wE,MACT,CAqBAowC,CAAmBzB,EAAOt/G,EAC5B,CAzOAm/G,EAAazyI,UAAYuyI,EAAW1uI,MAAM7D,WAC1CyyI,EAAazyI,UAAU0X,YAAc+6H,EAGrCA,EAAae,OAAS,CACpBc,aAAc,CACZxtI,KAAM,EACN8rB,QAAS,+BAEX6gH,aAAc,CACZ3sI,KAAM,EACN8rB,QAAS,0BAmCbmgH,EAAS/yI,UAAY,CAEnBiiB,IAAK,SAASpE,EAAGulC,GACVvjD,KAAKsiB,IAAItE,IAAY,KAANulC,IAClBvjD,KAAKkf,OAAOlB,GAAKulC,EAErB,EAMAjhC,IAAK,SAAStE,EAAG02H,EAAMC,GACrB,OAAIA,EACK30I,KAAKgd,IAAIgB,GAAKhe,KAAKkf,OAAOlB,GAAK02H,EAAKC,GAEtC30I,KAAKgd,IAAIgB,GAAKhe,KAAKkf,OAAOlB,GAAK02H,CACxC,EAEA13H,IAAK,SAASgB,GACZ,OAAOA,KAAKhe,KAAKkf,MACnB,EAEA60H,IAAK,SAAS/1H,EAAGulC,EAAG57C,GAClB,IAAK,IAAI0d,EAAI,EAAGA,EAAI1d,EAAErJ,SAAU+mB,EAC9B,GAAIk+B,IAAM57C,EAAE0d,GAAI,CACdrlB,KAAKoiB,IAAIpE,EAAGulC,GACZ,KACF,CAEJ,EAEA2wF,QAAS,SAASl2H,EAAGulC,GACf,UAAUjkD,KAAKikD,IACjBvjD,KAAKoiB,IAAIpE,EAAG8Q,SAASy0B,EAAG,IAE5B,EAEA1O,QAAS,SAAS72B,EAAGulC,GAEnB,SAASA,EAAEj6C,MAAM,8BACfi6C,EAAIhrC,WAAWgrC,KACN,GAAKA,GAAK,OACjBvjD,KAAKoiB,IAAIpE,EAAGulC,IACL,EAIb,GA+IF,IAAIqxF,EAAmBnC,EAASoC,eAAiBpC,EAASoC,cAAc,YAEpEC,EAAW,CACbjrI,EAAG,OACHtL,EAAG,IACHqJ,EAAG,IACHmtI,EAAG,IACHC,KAAM,OACNC,GAAI,KACJ1xF,EAAG,OACH2xF,KAAM,QAKJC,EAAsB,CACxBC,MAAO,sBACPC,KAAM,kBACNC,KAAM,oBACNC,IAAK,kBACLC,OAAQ,oBACRC,QAAS,oBACTC,KAAM,kBACNC,MAAO,iBAGLC,EAAiB,CACnBryF,EAAG,QACH2xF,KAAM,QAGJW,EAAe,CACjBZ,GAAI,QAIN,SAASa,EAAar0I,EAAQsxI,GAC5B,SAASgD,IAEP,IAAKhD,EACH,OAAO,KAST,IALiBxvI,EAKb6hB,EAAI2tH,EAAMzpI,MAAM,uBAGpB,OARiB/F,EAQF6hB,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAP7B2tH,EAAQA,EAAMrkD,OAAOnrF,EAAOjF,QACrBiF,CAOX,CASA,SAASyyI,EAAUC,EAASh6H,GAC1B,OAAQ45H,EAAa55H,EAAQi6H,YACtBL,EAAa55H,EAAQi6H,aAAeD,EAAQC,SACrD,CAGA,SAASrB,EAAcx0I,EAAM81I,GAC3B,IAAIr7H,EAAUg6H,EAASz0I,GACvB,IAAKya,EACH,OAAO,KAET,IAAImB,EAAUxa,EAAOgxI,SAASoC,cAAc/5H,GACxCzR,EAAOusI,EAAev1I,GAI1B,OAHIgJ,GAAQ8sI,IACVl6H,EAAQ5S,GAAQ8sI,EAAWxzI,QAEtBsZ,CACT,CAOA,IALA,IAEI1H,EA5Bc1W,EA0Bdu4I,EAAU30I,EAAOgxI,SAASoC,cAAc,OACxCoB,EAAUG,EAEVC,EAAW,GAEc,QAArB9hI,EAAIwhI,MACV,GAAa,MAATxhI,EAAE,GA8DN0hI,EAAQl6H,YAAYta,EAAOgxI,SAAS6D,gBA9FpBz4I,EA8F4C0W,EA7F5DqgI,EAAiBnwF,UAAY5mD,EAC7BA,EAAI+2I,EAAiBt5H,YACrBs5H,EAAiBt5H,YAAc,GACxBzd,SA4BP,CACE,GAAa,MAAT0W,EAAE,GAAY,CAEZ8hI,EAAS/3I,QACT+3I,EAASA,EAAS/3I,OAAS,KAAOiW,EAAEm6E,OAAO,GAAG9lF,QAAQ,IAAK,MAC7DytI,EAAS79H,MACTy9H,EAAUA,EAAQn4H,YAGpB,QACF,CACA,IACIqC,EADAvM,EAAKk/H,EAAev+H,EAAEm6E,OAAO,EAAGn6E,EAAEjW,OAAS,IAE/C,GAAIsV,EAAI,CAENuM,EAAO1e,EAAOgxI,SAAS8D,4BAA4B,YAAa3iI,GAChEqiI,EAAQl6H,YAAYoE,GACpB,QACF,CACA,IAAIiF,EAAI7Q,EAAEjL,MAAM,oDAEhB,IAAK8b,EACH,SAIF,KADAjF,EAAO00H,EAAczvH,EAAE,GAAIA,EAAE,KAE3B,SAIF,IAAK4wH,EAAUC,EAAS91H,GACtB,SAGF,GAAIiF,EAAE,GAAI,CACR,IAAIoxH,EAAUpxH,EAAE,GAAG9iB,MAAM,KAEzBk0I,EAAQ33I,SAAQ,SAAS43I,GACvB,IAAIC,EAAU,OAAOp3I,KAAKm3I,GAEtBE,EAAYD,EAAUD,EAAG52I,MAAM,GAAK42I,EAExC,GAAItB,EAAoBhuI,eAAewvI,GAAY,CACjD,IAAIx7H,EAAWu7H,EAAU,mBAAqB,QAC1CE,EAAYzB,EAAoBwB,GAEpCx2H,EAAKuB,MAAMvG,GAAYy7H,CACzB,CACF,IAEAz2H,EAAK9D,UAAYm6H,EAAQ55H,KAAK,IAChC,CAGAy5H,EAAS91I,KAAK6kB,EAAE,IAChB6wH,EAAQl6H,YAAYoE,GACpB81H,EAAU91H,CAEZ,CAMF,OAAOi2H,CACT,CAOA,IAAIS,EAAkB,CAAC,CAAC,KAAO,MAAQ,CAAC,KAAO,MAAQ,CAAC,KAAO,MAAQ,CAAC,KAAO,MAC9E,CAAC,KAAO,MAAQ,CAAC,KAAO,MAAQ,CAAC,KAAO,MAAQ,CAAC,KAAO,MAAQ,CAAC,KAAO,MACxE,CAAC,KAAO,MAAQ,CAAC,KAAO,MAAQ,CAAC,KAAO,MAAQ,CAAC,KAAO,MAAQ,CAAC,KAAO,MACxE,CAAC,KAAO,MAAQ,CAAC,KAAO,MAAQ,CAAC,KAAO,MAAQ,CAAC,KAAO,MAAQ,CAAC,KAAO,MACxE,CAAC,KAAO,MAAQ,CAAC,KAAO,MAAQ,CAAC,KAAO,MAAQ,CAAC,KAAO,MAAQ,CAAC,KAAO,MACxE,CAAC,KAAO,MAAQ,CAAC,KAAO,MAAQ,CAAC,KAAO,MAAQ,CAAC,KAAO,MAAQ,CAAC,KAAO,MACxE,CAAC,KAAO,MAAQ,CAAC,KAAO,MAAQ,CAAC,KAAO,MAAQ,CAAC,KAAQ,MACzD,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAC/D,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAC/D,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAC/D,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAAS,CAAC,MAAS,OAAU,CAAC,MAAS,OAClE,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OACtE,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OACtE,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OACtE,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OACtE,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,MAAS,OACtE,CAAC,MAAS,OAAU,CAAC,MAAS,OAAU,CAAC,OAAS,QAAU,CAAC,OAAS,QACtE,CAAC,OAAS,QAAU,CAAC,OAAS,QAAU,CAAC,OAAS,QAAU,CAAC,OAAS,QACtE,CAAC,OAAS,QAAU,CAAC,OAAS,QAAU,CAAC,OAAS,QAAU,CAAC,OAAS,QACtE,CAAC,OAAS,QAAU,CAAC,OAAS,QAAU,CAAC,OAAS,QAAU,CAAC,OAAS,QACtE,CAAC,OAAS,QAAU,CAAC,OAAS,QAAU,CAAC,OAAS,QAAU,CAAC,OAAS,QACtE,CAAC,OAAS,QAAU,CAAC,OAAS,QAAU,CAAC,OAAS,QAAU,CAAC,OAAS,QACtE,CAAC,OAAS,QAAU,CAAC,OAAS,QAAU,CAAC,OAAS,QAAU,CAAC,OAAS,QACtE,CAAC,OAAS,QAAU,CAAC,OAAS,QAAU,CAAC,OAAS,QAAU,CAAC,OAAS,QACtE,CAAC,OAAS,QAAU,CAAC,OAAS,QAAU,CAAC,OAAS,QAAU,CAAC,QAAU,UAExE,SAASC,EAAgBnyH,GACvB,IAAK,IAAIpmB,EAAI,EAAGA,EAAIs4I,EAAgBv4I,OAAQC,IAAK,CAC/C,IAAIurI,EAAe+M,EAAgBt4I,GACnC,GAAIomB,GAAYmlH,EAAa,IAAMnlH,GAAYmlH,EAAa,GAC1D,OAAO,CAEX,CAEA,OAAO,CACT,CAEA,SAASiN,EAAczoG,GACrB,IAAI0oG,EAAY,GACZ5uI,EAAO,GAGX,IAAKkmC,IAAWA,EAAOgb,WACrB,MAAO,MAGT,SAAS2tF,EAAUD,EAAW72H,GAC5B,IAAK,IAAI5hB,EAAI4hB,EAAKmpC,WAAWhrD,OAAS,EAAGC,GAAK,EAAGA,IAC/Cy4I,EAAUz2I,KAAK4f,EAAKmpC,WAAW/qD,GAEnC,CAEA,SAAS24I,EAAaF,GACpB,IAAKA,IAAcA,EAAU14I,OAC3B,OAAO,KAGT,IAAI6hB,EAAO62H,EAAUx+H,MACjBpQ,EAAO+X,EAAK7E,aAAe6E,EAAK1E,UACpC,GAAIrT,EAAM,CAGR,IAAIgd,EAAIhd,EAAKkB,MAAM,cACnB,OAAI8b,GACF4xH,EAAU14I,OAAS,EACZ8mB,EAAE,IAEJhd,CACT,CACA,MAAqB,SAAjB+X,EAAKrF,QACAo8H,EAAaF,GAElB72H,EAAKmpC,YACP2tF,EAAUD,EAAW72H,GACd+2H,EAAaF,SAFtB,CAIF,CAGA,IADAC,EAAUD,EAAW1oG,GACblmC,EAAO8uI,EAAaF,IAC1B,IAAK,IAAIz4I,EAAI,EAAGA,EAAI6J,EAAK9J,OAAQC,IAE/B,GAAIu4I,EADO1uI,EAAK5J,WAAWD,IAEzB,MAAO,MAIb,MAAO,KACT,CAsBA,SAAS44I,IACT,CAmBA,SAASC,EAAY31I,EAAQgyB,EAAK4jH,GAChCF,EAASp2I,KAAKf,MACdA,KAAKyzB,IAAMA,EAIXzzB,KAAKsuC,OAASwnG,EAAar0I,EAAQgyB,EAAIrrB,MACvC,IAAIkvI,EAAS,CACX5qG,MAAO,yBACP+B,gBAAkB,qBAClBrvB,SAAU,WACVf,KAAM,EACNo3B,MAAO,EACPn3B,IAAK,EACLm7B,OAAQ,EACR89F,QAAS,SACTC,YAA8B,KAAjB/jH,EAAI8f,SAAkB,gBACiB,OAAjB9f,EAAI8f,SAAoB,cACA,cAC3DkkG,YAAa,aAGfz3I,KAAK03I,YAAYJ,EAAQt3I,KAAKsuC,QAK9BtuC,KAAKgyC,IAAMvwC,EAAOgxI,SAASoC,cAAc,OACzCyC,EAAS,CACP9+C,UAAWu+C,EAAc/2I,KAAKsuC,QAC9BkpG,YAA8B,KAAjB/jH,EAAI8f,SAAkB,gBACiB,OAAjB9f,EAAI8f,SAAoB,cACA,cAC3DkkG,YAAa,YACbE,UAAyB,WAAdlkH,EAAI2wE,MAAqB,SAAW3wE,EAAI2wE,MACnDwzC,KAAMP,EAAaO,KACnBC,WAAY,WACZz4H,SAAU,YAGZpf,KAAK03I,YAAYJ,GACjBt3I,KAAKgyC,IAAIj2B,YAAY/b,KAAKsuC,QAK1B,IAAIwpG,EAAU,EACd,OAAQrkH,EAAI8gH,eACZ,IAAK,QACHuD,EAAUrkH,EAAIrU,SACd,MACF,IAAK,SACH04H,EAAUrkH,EAAIrU,SAAYqU,EAAIrlB,KAAO,EACrC,MACF,IAAK,MACH0pI,EAAUrkH,EAAIrU,SAAWqU,EAAIrlB,KAOV,KAAjBqlB,EAAI8f,SACNvzC,KAAK03I,YAAY,CACfr5H,KAAOre,KAAK+3I,YAAYD,EAAS,KACjC55H,MAAOle,KAAK+3I,YAAYtkH,EAAIrlB,KAAM,OAMpCpO,KAAK03I,YAAY,CACfp5H,IAAKte,KAAK+3I,YAAYD,EAAS,KAC/B75H,OAAQje,KAAK+3I,YAAYtkH,EAAIrlB,KAAM,OAIvCpO,KAAKg4I,KAAO,SAAS14H,GACnBtf,KAAK03I,YAAY,CACfp5H,IAAKte,KAAK+3I,YAAYz4H,EAAIhB,IAAK,MAC/Bm7B,OAAQz5C,KAAK+3I,YAAYz4H,EAAIm6B,OAAQ,MACrCp7B,KAAMre,KAAK+3I,YAAYz4H,EAAIjB,KAAM,MACjCo3B,MAAOz1C,KAAK+3I,YAAYz4H,EAAIm2B,MAAO,MACnCx3B,OAAQje,KAAK+3I,YAAYz4H,EAAIrB,OAAQ,MACrCC,MAAOle,KAAK+3I,YAAYz4H,EAAIpB,MAAO,OAEvC,CACF,CAOA,SAAS+5H,EAAY7wI,GAKnB,IAAI8wI,EAAIj6H,EAAQC,EAAOI,EACvB,GAAIlX,EAAI4qC,IAAK,CACX/zB,EAAS7W,EAAI4qC,IAAIxzB,aACjBN,EAAQ9W,EAAI4qC,IAAIzzB,YAChBD,EAAMlX,EAAI4qC,IAAIrzB,UAEd,IAAIw5H,GAASA,EAAQ/wI,EAAI4qC,IAAIsX,cAAgB6uF,EAAQA,EAAM,KAC/CA,EAAMC,gBAAkBD,EAAMC,iBAC1ChxI,EAAMA,EAAI4qC,IAAIn0B,wBAKdq6H,EAAKC,EAAQrsI,KAAKE,IAAKmsI,EAAM,IAAMA,EAAM,GAAGl6H,QAAW,EAAG7W,EAAI6W,OAASk6H,EAAM75I,QAChE,CAEf,CACA0B,KAAKqe,KAAOjX,EAAIiX,KAChBre,KAAKy1C,MAAQruC,EAAIquC,MACjBz1C,KAAKse,IAAMlX,EAAIkX,KAAOA,EACtBte,KAAKie,OAAS7W,EAAI6W,QAAUA,EAC5Bje,KAAKy5C,OAASryC,EAAIqyC,QAAWn7B,GAAOlX,EAAI6W,QAAUA,GAClDje,KAAKke,MAAQ9W,EAAI8W,OAASA,EAC1Ble,KAAKq4I,gBAAoBj0I,IAAP8zI,EAAmBA,EAAK9wI,EAAIixI,UAChD,CAqHA,SAASC,EAAsB72I,EAAQ82I,EAAUC,EAAcC,GAmC7D,IAAIC,EAAc,IAAIT,EAAYM,GAC9B9kH,EAAM8kH,EAAS9kH,IACfklH,EA7TN,SAAwBllH,GACtB,GAAwB,iBAAbA,EAAI0gH,OACV1gH,EAAI4gH,aAAgB5gH,EAAI0gH,MAAQ,GAAK1gH,EAAI0gH,MAAQ,KACpD,OAAO1gH,EAAI0gH,KAEb,IAAK1gH,EAAIF,QAAUE,EAAIF,MAAMqlH,gBACxBnlH,EAAIF,MAAMqlH,cAAcC,aAC3B,OAAQ,EAKV,IAHA,IAAItlH,EAAQE,EAAIF,MACZ+Z,EAAY/Z,EAAMqlH,cAClB3uE,EAAQ,EACH1rE,EAAI,EAAGA,EAAI+uC,EAAUhvC,QAAUgvC,EAAU/uC,KAAOg1B,EAAOh1B,IACpC,YAAtB+uC,EAAU/uC,GAAG6+B,MACf6sC,IAGJ,OAAkB,IAATA,CACX,CA2SgB6uE,CAAerlH,GACzBslH,EAAO,GAGX,GAAItlH,EAAI4gH,YAAa,CACnB,IAAIjmI,EACJ,OAAQqlB,EAAI8f,UACZ,IAAK,GACHwlG,EAAO,CAAE,KAAM,MACf3qI,EAAO,SACP,MACF,IAAK,KACH2qI,EAAO,CAAE,KAAM,MACf3qI,EAAO,QACP,MACF,IAAK,KACH2qI,EAAO,CAAE,KAAM,MACf3qI,EAAO,QAIT,IAAIsnE,EAAOgjE,EAAYL,WACnBj5H,EAAWs2D,EAAO5pE,KAAK6pC,MAAMgjG,GAC7BK,EAAcR,EAAapqI,GAAQsnE,EACnCujE,EAAcF,EAAK,GAKnBjtI,KAAKC,IAAIqT,GAAY45H,IACvB55H,EAAWA,EAAW,GAAK,EAAI,EAC/BA,GAAYtT,KAAKQ,KAAK0sI,EAActjE,GAAQA,GAO1CijE,EAAU,IACZv5H,GAA6B,KAAjBqU,EAAI8f,SAAkBilG,EAAav6H,OAASu6H,EAAat6H,MACrE66H,EAAOA,EAAKphD,WAKd+gD,EAAYV,KAAKiB,EAAa75H,EAEhC,KAAO,CAEL,IAAI85H,EAAwBR,EAAYL,WAAaG,EAAav6H,OAAU,IAE5E,OAAQwV,EAAI2gH,WACZ,IAAK,SACHuE,GAAYO,EAAuB,EACnC,MACF,IAAK,MACHP,GAAWO,EAKb,OAAQzlH,EAAI8f,UACZ,IAAK,GACHglG,EAASb,YAAY,CACnBp5H,IAAKi6H,EAASR,YAAYY,EAAS,OAErC,MACF,IAAK,KACHJ,EAASb,YAAY,CACnBr5H,KAAMk6H,EAASR,YAAYY,EAAS,OAEtC,MACF,IAAK,KACHJ,EAASb,YAAY,CACnBjiG,MAAO8iG,EAASR,YAAYY,EAAS,OAKzCI,EAAO,CAAE,KAAM,KAAM,KAAM,MAI3BL,EAAc,IAAIT,EAAYM,EAChC,CAEA,IAAIY,EApHJ,SAA0BvxI,EAAGmxI,GAK3B,IAJA,IAAII,EACAC,EAAoB,IAAInB,EAAYrwI,GACpCyxI,EAAa,EAER96I,EAAI,EAAGA,EAAIw6I,EAAKz6I,OAAQC,IAAK,CACpC,KAAOqJ,EAAE0xI,qBAAqBd,EAAcO,EAAKx6I,KACzCqJ,EAAE2xI,OAAOf,IAAiB5wI,EAAE4xI,YAAYf,IAC9C7wI,EAAEowI,KAAKe,EAAKx6I,IAId,GAAIqJ,EAAE2xI,OAAOf,GACX,OAAO5wI,EAET,IAAI4H,EAAI5H,EAAE6xI,oBAAoBjB,GAG1Ba,EAAa7pI,IACf2pI,EAAe,IAAIlB,EAAYrwI,GAC/ByxI,EAAa7pI,GAGf5H,EAAI,IAAIqwI,EAAYmB,EACtB,CACA,OAAOD,GAAgBC,CACzB,CA0FmBM,CAAiBhB,EAAaK,GACjDR,EAASP,KAAKmB,EAAaQ,kBAAkBnB,GAC/C,CAEA,SAASvG,IAET,CAhYAkF,EAASh3I,UAAUu3I,YAAc,SAASJ,EAAQtlG,GAEhD,IAAK,IAAIh6B,KADTg6B,EAAMA,GAAOhyC,KAAKgyC,IACDslG,EACXA,EAAOnwI,eAAe6Q,KACxBg6B,EAAItwB,MAAM1J,GAAQs/H,EAAOt/H,GAG/B,EAEAm/H,EAASh3I,UAAU43I,YAAc,SAAS38H,EAAKw+H,GAC7C,OAAe,IAARx+H,EAAY,EAAIA,EAAMw+H,CAC/B,EA4FAxC,EAAYj3I,UAAYuyI,EAAWyE,EAASh3I,WAC5Ci3I,EAAYj3I,UAAU0X,YAAcu/H,EAuCpCa,EAAY93I,UAAU63I,KAAO,SAASe,EAAMc,GAE1C,OADAA,OAAoBz1I,IAAXy1I,EAAuBA,EAAS75I,KAAKq4I,WACtCU,GACR,IAAK,KACH/4I,KAAKqe,MAAQw7H,EACb75I,KAAKy1C,OAASokG,EACd,MACF,IAAK,KACH75I,KAAKqe,MAAQw7H,EACb75I,KAAKy1C,OAASokG,EACd,MACF,IAAK,KACH75I,KAAKse,KAAOu7H,EACZ75I,KAAKy5C,QAAUogG,EACf,MACF,IAAK,KACH75I,KAAKse,KAAOu7H,EACZ75I,KAAKy5C,QAAUogG,EAGnB,EAGA5B,EAAY93I,UAAU25I,SAAW,SAASrf,GACxC,OAAOz6H,KAAKqe,KAAOo8G,EAAGhlF,OACfz1C,KAAKy1C,MAAQglF,EAAGp8G,MAChBre,KAAKse,IAAMm8G,EAAGhhF,QACdz5C,KAAKy5C,OAASghF,EAAGn8G,GAC1B,EAGA25H,EAAY93I,UAAUq5I,YAAc,SAASj1D,GAC3C,IAAK,IAAIhmF,EAAI,EAAGA,EAAIgmF,EAAMjmF,OAAQC,IAChC,GAAIyB,KAAK85I,SAASv1D,EAAMhmF,IACtB,OAAO,EAGX,OAAO,CACT,EAGA05I,EAAY93I,UAAUo5I,OAAS,SAASzvI,GACtC,OAAO9J,KAAKse,KAAOxU,EAAUwU,KACtBte,KAAKy5C,QAAU3vC,EAAU2vC,QACzBz5C,KAAKqe,MAAQvU,EAAUuU,MACvBre,KAAKy1C,OAAS3rC,EAAU2rC,KACjC,EAMAwiG,EAAY93I,UAAUm5I,qBAAuB,SAASxvI,EAAWivI,GAC/D,OAAQA,GACR,IAAK,KACH,OAAO/4I,KAAKqe,KAAOvU,EAAUuU,KAC/B,IAAK,KACH,OAAOre,KAAKy1C,MAAQ3rC,EAAU2rC,MAChC,IAAK,KACH,OAAOz1C,KAAKse,IAAMxU,EAAUwU,IAC9B,IAAK,KACH,OAAOte,KAAKy5C,OAAS3vC,EAAU2vC,OAEnC,EAIAw+F,EAAY93I,UAAUs5I,oBAAsB,SAAShf,GAInD,OAHQ3uH,KAAKE,IAAI,EAAGF,KAAKgU,IAAI9f,KAAKy1C,MAAOglF,EAAGhlF,OAAS3pC,KAAKE,IAAIhM,KAAKqe,KAAMo8G,EAAGp8G,OACpEvS,KAAKE,IAAI,EAAGF,KAAKgU,IAAI9f,KAAKy5C,OAAQghF,EAAGhhF,QAAU3tC,KAAKE,IAAIhM,KAAKse,IAAKm8G,EAAGn8G,OAErDte,KAAKie,OAASje,KAAKke,MAC7C,EAMA+5H,EAAY93I,UAAUw5I,kBAAoB,SAASphD,GACjD,MAAO,CACLj6E,IAAKte,KAAKse,IAAMi6E,EAAUj6E,IAC1Bm7B,OAAQ8+C,EAAU9+C,OAASz5C,KAAKy5C,OAChCp7B,KAAMre,KAAKqe,KAAOk6E,EAAUl6E,KAC5Bo3B,MAAO8iD,EAAU9iD,MAAQz1C,KAAKy1C,MAC9Bx3B,OAAQje,KAAKie,OACbC,MAAOle,KAAKke,MAEhB,EAIA+5H,EAAY8B,qBAAuB,SAAS3yI,GAC1C,IAAI6W,EAAS7W,EAAI4qC,IAAM5qC,EAAI4qC,IAAIxzB,aAAepX,EAAI0T,QAAU1T,EAAIoX,aAAe,EAC3EN,EAAQ9W,EAAI4qC,IAAM5qC,EAAI4qC,IAAIzzB,YAAcnX,EAAI0T,QAAU1T,EAAImX,YAAc,EACxED,EAAMlX,EAAI4qC,IAAM5qC,EAAI4qC,IAAIrzB,UAAYvX,EAAI0T,QAAU1T,EAAIuX,UAAY,EAYtE,MARU,CACRN,MAHFjX,EAAMA,EAAI4qC,IAAM5qC,EAAI4qC,IAAIn0B,wBACVzW,EAAI0T,QAAU1T,EAAIyW,wBAA0BzW,GAE9CiX,KACVo3B,MAAOruC,EAAIquC,MACXn3B,IAAKlX,EAAIkX,KAAOA,EAChBL,OAAQ7W,EAAI6W,QAAUA,EACtBw7B,OAAQryC,EAAIqyC,QAAWn7B,GAAOlX,EAAI6W,QAAUA,GAC5CC,MAAO9W,EAAI8W,OAASA,EAGxB,EAyIA+zH,EAAO71G,cAAgB,WACrB,MAAO,CACLt5B,OAAQ,SAAStB,GACf,IAAKA,EACH,MAAO,GAET,GAAoB,iBAATA,EACT,MAAM,IAAIwC,MAAM,iCAElB,OAAO2I,mBAAmBK,mBAAmBxL,GAC/C,EAEJ,EAEAywI,EAAO+H,oBAAsB,SAASv4I,EAAQw4I,GAC5C,OAAKx4I,GAAWw4I,EAGTnE,EAAar0I,EAAQw4I,GAFnB,IAGX,EASAhI,EAAOtkG,YAAc,SAASlsC,EAAQ+xB,EAAM0mH,GAC1C,IAAKz4I,IAAW+xB,IAAS0mH,EACvB,OAAO,KAIT,KAAOA,EAAQr+H,YACbq+H,EAAQj6H,YAAYi6H,EAAQr+H,YAG9B,IAAIs+H,EAAgB14I,EAAOgxI,SAASoC,cAAc,OAsBlD,GArBAsF,EAAcz4H,MAAMtC,SAAW,WAC/B+6H,EAAcz4H,MAAMrD,KAAO,IAC3B87H,EAAcz4H,MAAM+zB,MAAQ,IAC5B0kG,EAAcz4H,MAAMpD,IAAM,IAC1B67H,EAAcz4H,MAAM+3B,OAAS,IAC7B0gG,EAAcz4H,MAAM04H,OArBO,OAsB3BF,EAAQn+H,YAAYo+H,GAKpB,SAAuB3mH,GACrB,IAAK,IAAIj1B,EAAI,EAAGA,EAAIi1B,EAAKl1B,OAAQC,IAC/B,GAAIi1B,EAAKj1B,GAAG87I,eAAiB7mH,EAAKj1B,GAAGgwC,aACnC,OAAO,EAGX,OAAO,CACT,CAGK+rG,CAAc9mH,GAAnB,CAOA,IAAIilH,EAAe,GACfD,EAAeP,EAAY8B,qBAAqBI,GAEhD9C,EAAe,CACjBO,KAFa9rI,KAAK6pC,MAhDE,IAgDI6iG,EAAav6H,OAA6B,KAAO,IAEnE+wB,kBAGR,WAGE,IAFA,IAAIupG,EAAU9kH,EAELl1B,EAAI,EAAGA,EAAIi1B,EAAKl1B,OAAQC,IAC/Bk1B,EAAMD,EAAKj1B,GAGXg6I,EAAW,IAAInB,EAAY31I,EAAQgyB,EAAK4jH,GACxC8C,EAAcp+H,YAAYw8H,EAASvmG,KAGnCsmG,EAAsB72I,EAAQ82I,EAAUC,EAAcC,GAItDhlH,EAAI8a,aAAegqG,EAASvmG,IAE5BymG,EAAal4I,KAAK03I,EAAY8B,qBAAqBxB,GAEtD,CAnBD,EATA,MAJE,IAAK,IAAIh6I,EAAI,EAAGA,EAAIi1B,EAAKl1B,OAAQC,IAC/B47I,EAAcp+H,YAAYyX,EAAKj1B,GAAGgwC,aAgCxC,EAEA0jG,EAAO91G,OAAS,SAAS16B,EAAQuwI,EAAOhd,GACjCA,IACHA,EAAUgd,EACVA,EAAQ,CAAC,GAENA,IACHA,EAAQ,CAAC,GAGXhyI,KAAKyB,OAASA,EACdzB,KAAKgyI,MAAQA,EACbhyI,KAAKipB,MAAQ,UACbjpB,KAAK0K,OAAS,GACd1K,KAAKg1H,QAAUA,GAAW,IAAI9yH,YAAY,QAC1ClC,KAAKwzI,WAAa,EACpB,EAEAvB,EAAO91G,OAAOh8B,UAAY,CAGxBo6I,mBAAoB,SAASx3I,GAC3B,KAAIA,aAAa6vI,GAGf,MAAM7vI,EAFN/C,KAAKu8B,gBAAkBv8B,KAAKu8B,eAAex5B,EAI/C,EACAgC,MAAO,SAAUvD,GACf,IAAImmB,EAAO3nB,KAUX,SAASw6I,IAGP,IAFA,IAAI9vI,EAASid,EAAKjd,OACd+vI,EAAM,EACHA,EAAM/vI,EAAOpM,QAA0B,OAAhBoM,EAAO+vI,IAAiC,OAAhB/vI,EAAO+vI,MACzDA,EAEJ,IAAItG,EAAOzpI,EAAOgkF,OAAO,EAAG+rD,GAS5B,MAPoB,OAAhB/vI,EAAO+vI,MACPA,EAEgB,OAAhB/vI,EAAO+vI,MACPA,EAEJ9yH,EAAKjd,OAASA,EAAOgkF,OAAO+rD,GACrBtG,CACT,CAsFA,SAASuG,EAAY3H,GACfA,EAAMzpI,MAAM,mBAEd6pI,EAAaJ,GAAO,SAAS/0H,EAAGulC,GAC9B,GACK,oBADEvlC,GAzBb,SAA2B+0H,GACzB,IAAI71G,EAAW,IAAIg2G,EAEnBC,EAAaJ,GAAO,SAAS/0H,EAAGulC,GAC9B,OAAOvlC,GACP,IAAK,QACHkf,EAASg3G,QAAQl2H,EAAI,IAAKulC,GAC1B,MACF,IAAK,OACHrmB,EAAS9a,IAAIpE,EAAI,IAAK80H,EAAevvF,IAGzC,GAAG,SAAU,KAEb57B,EAAK0tG,gBAAkB1tG,EAAK0tG,eAAe,CACzC,OAAUn4F,EAAS5a,IAAI,UACvB,MAAS4a,EAAS5a,IAAI,UAE1B,CASQq4H,CAAkBp3F,EAGtB,GAAG,KAEH4vF,EAAaJ,GAAO,SAAU/0H,EAAGulC,GAC/B,GACK,WADGvlC,GA/Fd,SAAqB+0H,GACnB,IAAI71G,EAAW,IAAIg2G,EAsCnB,GApCAC,EAAaJ,GAAO,SAAU/0H,EAAGulC,GAC/B,OAAQvlC,GACR,IAAK,KACHkf,EAAS9a,IAAIpE,EAAGulC,GAChB,MACF,IAAK,QACHrmB,EAAS2X,QAAQ72B,EAAGulC,GACpB,MACF,IAAK,QACHrmB,EAASg3G,QAAQl2H,EAAGulC,GACpB,MACF,IAAK,eACL,IAAK,iBACH,IAAIq3F,EAAKr3F,EAAEjhD,MAAM,KACjB,GAAkB,IAAds4I,EAAGt8I,OACL,MAIF,IAAIu8I,EAAS,IAAI3H,EAGjB,GAFA2H,EAAOhmG,QAAQ,IAAK+lG,EAAG,IACvBC,EAAOhmG,QAAQ,IAAK+lG,EAAG,KAClBC,EAAO79H,IAAI,OAAS69H,EAAO79H,IAAI,KAClC,MAEFkgB,EAAS9a,IAAIpE,EAAI,IAAK68H,EAAOv4H,IAAI,MACjC4a,EAAS9a,IAAIpE,EAAI,IAAK68H,EAAOv4H,IAAI,MACjC,MACF,IAAK,SACH4a,EAAS62G,IAAI/1H,EAAGulC,EAAG,CAAC,OAGxB,GAAG,IAAK,MAIJrmB,EAASlgB,IAAI,MAAO,CACtB,IAAI82H,EAAS,IAAKnsH,EAAKqqH,MAAME,WAAavqH,EAAKlmB,OAAOywI,WACtD4B,EAAO51H,MAAQgf,EAAS5a,IAAI,QAAS,KACrCwxH,EAAOgH,MAAQ59G,EAAS5a,IAAI,QAAS,GACrCwxH,EAAOiH,cAAgB79G,EAAS5a,IAAI,gBAAiB,GACrDwxH,EAAOkH,cAAgB99G,EAAS5a,IAAI,gBAAiB,KACrDwxH,EAAOmH,gBAAkB/9G,EAAS5a,IAAI,kBAAmB,GACzDwxH,EAAOoH,gBAAkBh+G,EAAS5a,IAAI,kBAAmB,KACzDwxH,EAAOqH,OAASj+G,EAAS5a,IAAI,SAAU,IAEvCqF,EAAKyzH,UAAYzzH,EAAKyzH,SAAStH,GAG/BnsH,EAAK6rH,WAAWjzI,KAAK,CACnBiO,GAAI0uB,EAAS5a,IAAI,MACjBwxH,OAAQA,GAEZ,CACF,CAyCQuH,CAAY93F,EAGhB,GAAG,IAGP,CAhII/hD,IAEFmmB,EAAKjd,QAAUid,EAAKqtG,QAAQlyH,OAAOtB,EAAM,CAAC0gF,QAAQ,KAiIpD,IACE,IAAIiyD,EACJ,GAAmB,YAAfxsH,EAAKsB,MAAqB,CAE5B,IAAK,UAAU3pB,KAAKqoB,EAAKjd,QACvB,OAAO1K,KAKT,IAAIolB,GAFJ+uH,EAAOqG,KAEMlxI,MAAM,sBACnB,IAAK8b,IAAMA,EAAE,GACX,MAAM,IAAIwtH,EAAaA,EAAae,OAAOc,cAG7C9sH,EAAKsB,MAAQ,QACf,CAGA,IADA,IAAIqyH,GAAuB,EACpB3zH,EAAKjd,QAAQ,CAElB,IAAK,UAAUpL,KAAKqoB,EAAKjd,QACvB,OAAO1K,KAST,OANKs7I,EAGHA,GAAuB,EAFvBnH,EAAOqG,IAKD7yH,EAAKsB,OACb,IAAK,SAEC,IAAI3pB,KAAK60I,GACXuG,EAAYvG,GACFA,IAEVxsH,EAAKsB,MAAQ,MAEf,SACF,IAAK,OAEEkrH,IACHxsH,EAAKsB,MAAQ,MAEf,SACF,IAAK,KAEH,GAAI,iBAAiB3pB,KAAK60I,GAAO,CAC/BxsH,EAAKsB,MAAQ,OACb,KACF,CAEA,IAAKkrH,EACH,SAEFxsH,EAAK8L,IAAM,IAAK9L,EAAKqqH,MAAMzzG,QAAU5W,EAAKlmB,OAAO88B,QAAQ,EAAG,EAAG,IAE/D,IACE5W,EAAK8L,IAAI2wE,MAAQ,QACnB,CAAE,MAAOrhG,GACP4kB,EAAK8L,IAAI2wE,MAAQ,QACnB,CAGA,GAFAz8E,EAAKsB,MAAQ,OAEgB,IAAzBkrH,EAAKzzI,QAAQ,UAAe,CAC9BinB,EAAK8L,IAAIjlB,GAAK2lI,EACd,QACF,CAGF,IAAK,MAEH,IACEZ,EAASY,EAAMxsH,EAAK8L,IAAK9L,EAAK6rH,WAChC,CAAE,MAAOzwI,GACP4kB,EAAK4yH,mBAAmBx3I,GAExB4kB,EAAK8L,IAAM,KACX9L,EAAKsB,MAAQ,SACb,QACF,CACAtB,EAAKsB,MAAQ,UACb,SACF,IAAK,UACH,IAAIsyH,GAAwC,IAAzBpH,EAAKzzI,QAAQ,UAKhC,IAAKyzI,GAAQoH,IAAiBD,GAAuB,GAAO,CAE1D3zH,EAAK2U,OAAS3U,EAAK2U,MAAM3U,EAAK8L,KAC9B9L,EAAK8L,IAAM,KACX9L,EAAKsB,MAAQ,KACb,QACF,CACItB,EAAK8L,IAAIrrB,OACXuf,EAAK8L,IAAIrrB,MAAQ,MAEnBuf,EAAK8L,IAAIrrB,MAAQ+rI,EAAKvrI,QAAQ,UAAW,MAAMA,QAAQ,SAAU,MACjE,SACF,IAAK,SAEEurI,IACHxsH,EAAKsB,MAAQ,MAEf,SAEJ,CACF,CAAE,MAAOlmB,GACP4kB,EAAK4yH,mBAAmBx3I,GAGL,YAAf4kB,EAAKsB,OAAuBtB,EAAK8L,KAAO9L,EAAK2U,OAC/C3U,EAAK2U,MAAM3U,EAAK8L,KAElB9L,EAAK8L,IAAM,KAGX9L,EAAKsB,MAAuB,YAAftB,EAAKsB,MAAsB,YAAc,QACxD,CACA,OAAOjpB,IACT,EACA28B,MAAO,WACL,IAAIhV,EAAO3nB,KACX,IAWE,GATA2nB,EAAKjd,QAAUid,EAAKqtG,QAAQlyH,UAExB6kB,EAAK8L,KAAsB,WAAf9L,EAAKsB,SACnBtB,EAAKjd,QAAU,OACfid,EAAK5iB,SAKY,YAAf4iB,EAAKsB,MACP,MAAM,IAAI2pH,EAAaA,EAAae,OAAOc,aAE/C,CAAE,MAAM1xI,GACN4kB,EAAK4yH,mBAAmBx3I,EAC1B,CAEA,OADA4kB,EAAK6U,SAAW7U,EAAK6U,UACdx8B,IACT,GAGF0B,EAAOC,QAAUswI,qDCpzCjB,IACIuJ,EAAmB,CACrB,GAAI,EACJ,GAAM,EACN,GAAM,GAEJC,EAAe,CACjB,MAAS,EACT,OAAU,EACV,IAAO,EACP,KAAQ,EACR,MAAS,EACT,KAAQ,EACR,YAAa,EACb,aAAc,GAWhB,SAASC,EAAiBh5I,GACxB,MAAqB,iBAAVA,MAGC+4I,EAAa/4I,EAAML,gBAChBK,EAAML,cACvB,CAEA,SAASk8B,EAAO7K,EAAWC,EAASvrB,GASlCpI,KAAKq6I,cAAe,EAOpB,IAAIsB,EAAM,GACNC,GAAe,EACfC,EAAanoH,EACbooH,EAAWnoH,EACXooH,EAAQ3zI,EACR4zI,EAAU,KACVC,EAAY,GACZC,GAAe,EACfC,EAAQ,OACRC,EAAa,QACbC,EAAY,OACZC,EAAiB,OACjBC,EAAQ,IACRC,EAAS,SAEbpoI,OAAO4pB,iBAAiBh+B,KAAM,CAC5B,GAAM,CACJ2pD,YAAY,EACZrnC,IAAK,WACH,OAAOq5H,CACT,EACAv5H,IAAK,SAAS1f,GACZi5I,EAAM,GAAKj5I,CACb,GAGF,YAAe,CACbinD,YAAY,EACZrnC,IAAK,WACH,OAAOs5H,CACT,EACAx5H,IAAK,SAAS1f,GACZk5I,IAAiBl5I,CACnB,GAGF,UAAa,CACXinD,YAAY,EACZrnC,IAAK,WACH,OAAOu5H,CACT,EACAz5H,IAAK,SAAS1f,GACZ,GAAqB,iBAAVA,EACT,MAAM,IAAIsjE,UAAU,uCAEtB61E,EAAan5I,EACb1C,KAAKq6I,cAAe,CACtB,GAGF,QAAW,CACT1wF,YAAY,EACZrnC,IAAK,WACH,OAAOw5H,CACT,EACA15H,IAAK,SAAS1f,GACZ,GAAqB,iBAAVA,EACT,MAAM,IAAIsjE,UAAU,qCAEtB81E,EAAWp5I,EACX1C,KAAKq6I,cAAe,CACtB,GAGF,KAAQ,CACN1wF,YAAY,EACZrnC,IAAK,WACH,OAAOy5H,CACT,EACA35H,IAAK,SAAS1f,GACZq5I,EAAQ,GAAKr5I,EACb1C,KAAKq6I,cAAe,CACtB,GAGF,OAAU,CACR1wF,YAAY,EACZrnC,IAAK,WACH,OAAO05H,CACT,EACA55H,IAAK,SAAS1f,GACZs5I,EAAUt5I,EACV1C,KAAKq6I,cAAe,CACtB,GAGF,SAAY,CACV1wF,YAAY,EACZrnC,IAAK,WACH,OAAO25H,CACT,EACA75H,IAAK,SAAS1f,GACZ,IAAI+5I,EA5HZ,SAA8B/5I,GAC5B,MAAqB,iBAAVA,KAGD84I,EAAiB94I,EAAML,gBACpBK,EAAML,aACrB,CAsHsBq6I,CAAqBh6I,GAEnC,IAAgB,IAAZ+5I,EACF,MAAM,IAAIE,YAAY,mEAExBV,EAAYQ,EACZz8I,KAAKq6I,cAAe,CACtB,GAGF,YAAe,CACb1wF,YAAY,EACZrnC,IAAK,WACH,OAAO45H,CACT,EACA95H,IAAK,SAAS1f,GACZw5I,IAAiBx5I,EACjB1C,KAAKq6I,cAAe,CACtB,GAGF,KAAQ,CACN1wF,YAAY,EACZrnC,IAAK,WACH,OAAO65H,CACT,EACA/5H,IAAK,SAAS1f,GACZ,GAAqB,iBAAVA,GAxKD,SAwKuBA,EAC/B,MAAM,IAAIi6I,YAAY,4DAExBR,EAAQz5I,EACR1C,KAAKq6I,cAAe,CACtB,GAGF,UAAa,CACX1wF,YAAY,EACZrnC,IAAK,WACH,OAAO85H,CACT,EACAh6H,IAAK,SAAS1f,GACZ,IAAI+5I,EAAUf,EAAiBh5I,GAC1B+5I,GAGHL,EAAaK,EACbz8I,KAAKq6I,cAAe,GAHpB1rC,QAAQr4F,KAAK,yDAKjB,GAGF,SAAY,CACVqzC,YAAY,EACZrnC,IAAK,WACH,OAAO+5H,CACT,EACAj6H,IAAK,SAAS1f,GACZ,GAAIA,EAAQ,GAAKA,EAAQ,IACvB,MAAM,IAAIsB,MAAM,uCAElBq4I,EAAY35I,EACZ1C,KAAKq6I,cAAe,CACtB,GAGF,cAAiB,CACf1wF,YAAY,EACZrnC,IAAK,WACH,OAAOg6H,CACT,EACAl6H,IAAK,SAAS1f,GACZ,IAAI+5I,EAAUf,EAAiBh5I,GAC1B+5I,GAGHH,EAAiBG,EACjBz8I,KAAKq6I,cAAe,GAHpB1rC,QAAQr4F,KAAK,6DAKjB,GAGF,KAAQ,CACNqzC,YAAY,EACZrnC,IAAK,WACH,OAAOi6H,CACT,EACAn6H,IAAK,SAAS1f,GACZ,GAAIA,EAAQ,GAAKA,EAAQ,IACvB,MAAM,IAAIsB,MAAM,mCAElBu4I,EAAQ75I,EACR1C,KAAKq6I,cAAe,CACtB,GAGF,MAAS,CACP1wF,YAAY,EACZrnC,IAAK,WACH,OAAOk6H,CACT,EACAp6H,IAAK,SAAS1f,GACZ,IAAI+5I,EAAUf,EAAiBh5I,GAC/B,IAAK+5I,EACH,MAAM,IAAIE,YAAY,gEAExBH,EAASC,EACTz8I,KAAKq6I,cAAe,CACtB,KASJr6I,KAAKuuC,kBAAenqC,CACtB,CAMAm6B,EAAOp+B,UAAUy8I,aAAe,WAE9B,OAAO3K,OAAO+H,oBAAoBv4I,OAAQzB,KAAKoI,KACjD,EAEA1G,EAAOC,QAAU48B,wDC7QjB,IAAIs+G,EAAgB,CAClB,IAAI,EACJ,IAAM,GAWR,SAASC,EAAoBp6I,GAC3B,MAAwB,iBAAVA,GAAuBA,GAAS,GAAKA,GAAS,GAC9D,CAuGAhB,EAAOC,QApGP,WACE,IAAI60D,EAAS,IACTumF,EAAS,EACTC,EAAiB,EACjBC,EAAiB,IACjBC,EAAmB,EACnBC,EAAmB,IACnBC,EAAU,GAEdhpI,OAAO4pB,iBAAiBh+B,KAAM,CAC5B,MAAS,CACP2pD,YAAY,EACZrnC,IAAK,WACH,OAAOk0C,CACT,EACAp0C,IAAK,SAAS1f,GACZ,IAAKo6I,EAAoBp6I,GACvB,MAAM,IAAIsB,MAAM,oCAElBwyD,EAAS9zD,CACX,GAEF,MAAS,CACPinD,YAAY,EACZrnC,IAAK,WACH,OAAOy6H,CACT,EACA36H,IAAK,SAAS1f,GACZ,GAAqB,iBAAVA,EACT,MAAM,IAAIsjE,UAAU,kCAEtB+2E,EAASr6I,CACX,GAEF,cAAiB,CACfinD,YAAY,EACZrnC,IAAK,WACH,OAAO26H,CACT,EACA76H,IAAK,SAAS1f,GACZ,IAAKo6I,EAAoBp6I,GACvB,MAAM,IAAIsB,MAAM,4CAElBi5I,EAAiBv6I,CACnB,GAEF,cAAiB,CACfinD,YAAY,EACZrnC,IAAK,WACH,OAAO06H,CACT,EACA56H,IAAK,SAAS1f,GACZ,IAAIo6I,EAAoBp6I,GACtB,MAAM,IAAIsB,MAAM,4CAElBg5I,EAAiBt6I,CACnB,GAEF,gBAAmB,CACjBinD,YAAY,EACZrnC,IAAK,WACH,OAAO66H,CACT,EACA/6H,IAAK,SAAS1f,GACZ,IAAKo6I,EAAoBp6I,GACvB,MAAM,IAAIsB,MAAM,8CAElBm5I,EAAmBz6I,CACrB,GAEF,gBAAmB,CACjBinD,YAAY,EACZrnC,IAAK,WACH,OAAO46H,CACT,EACA96H,IAAK,SAAS1f,GACZ,IAAKo6I,EAAoBp6I,GACvB,MAAM,IAAIsB,MAAM,8CAElBk5I,EAAmBx6I,CACrB,GAEF,OAAU,CACRinD,YAAY,EACZrnC,IAAK,WACH,OAAO86H,CACT,EACAh7H,IAAK,SAAS1f,GACZ,IAAI+5I,EArGZ,SAA2B/5I,GACzB,MAAqB,iBAAVA,KAGEm6I,EAAcn6I,EAAML,gBACjBK,EAAML,aACxB,CA+FsBg7I,CAAkB36I,IAEhB,IAAZ+5I,EACF9tC,QAAQr4F,KAAK,uDAEb8mI,EAAUX,CAEd,IAGN","sources":["webpack://webapp/./node_modules/@videojs/vhs-utils/es/decode-b64-to-uint8-array.js","webpack://webapp/./node_modules/@videojs/vhs-utils/es/media-groups.js","webpack://webapp/./node_modules/@videojs/vhs-utils/es/resolve-url.js","webpack://webapp/./node_modules/@videojs/vhs-utils/es/stream.js","webpack://webapp/./node_modules/@videojs/xhr/lib/http-handler.js","webpack://webapp/./node_modules/@videojs/xhr/lib/index.js","webpack://webapp/./node_modules/@videojs/vhs-utils/es/byte-helpers.js","webpack://webapp/./node_modules/@videojs/vhs-utils/es/mp4-helpers.js","webpack://webapp/./node_modules/@videojs/vhs-utils/es/codecs.js","webpack://webapp/./node_modules/@videojs/vhs-utils/es/media-types.js","webpack://webapp/./node_modules/@videojs/vhs-utils/es/id3-helpers.js","webpack://webapp/./node_modules/@videojs/vhs-utils/es/opus-helpers.js","webpack://webapp/./node_modules/@videojs/vhs-utils/es/ebml-helpers.js","webpack://webapp/./node_modules/@videojs/vhs-utils/es/nal-helpers.js","webpack://webapp/./node_modules/@videojs/vhs-utils/es/containers.js","webpack://webapp/./node_modules/video.js/dist/video.es.js","webpack://webapp/./node_modules/videojs-vtt.js/lib/browser-index.js","webpack://webapp/./node_modules/videojs-vtt.js/lib/vtt.js","webpack://webapp/./node_modules/videojs-vtt.js/lib/vttcue.js","webpack://webapp/./node_modules/videojs-vtt.js/lib/vttregion.js"],"sourcesContent":["import window from 'global/window';\n\nvar atob = function atob(s) {\n return window.atob ? window.atob(s) : Buffer.from(s, 'base64').toString('binary');\n};\n\nexport default function decodeB64ToUint8Array(b64Text) {\n var decodedString = atob(b64Text);\n var array = new Uint8Array(decodedString.length);\n\n for (var i = 0; i < decodedString.length; i++) {\n array[i] = decodedString.charCodeAt(i);\n }\n\n return array;\n}","/**\n * Loops through all supported media groups in master and calls the provided\n * callback for each group\n *\n * @param {Object} master\n * The parsed master manifest object\n * @param {string[]} groups\n * The media groups to call the callback for\n * @param {Function} callback\n * Callback to call for each media group\n */\nexport var forEachMediaGroup = function forEachMediaGroup(master, groups, callback) {\n groups.forEach(function (mediaType) {\n for (var groupKey in master.mediaGroups[mediaType]) {\n for (var labelKey in master.mediaGroups[mediaType][groupKey]) {\n var mediaProperties = master.mediaGroups[mediaType][groupKey][labelKey];\n callback(mediaProperties, mediaType, groupKey, labelKey);\n }\n }\n });\n};","import URLToolkit from 'url-toolkit';\nimport window from 'global/window';\nvar DEFAULT_LOCATION = 'http://example.com';\n\nvar resolveUrl = function resolveUrl(baseUrl, relativeUrl) {\n // return early if we don't need to resolve\n if (/^[a-z]+:/i.test(relativeUrl)) {\n return relativeUrl;\n } // if baseUrl is a data URI, ignore it and resolve everything relative to window.location\n\n\n if (/^data:/.test(baseUrl)) {\n baseUrl = window.location && window.location.href || '';\n } // IE11 supports URL but not the URL constructor\n // feature detect the behavior we want\n\n\n var nativeURL = typeof window.URL === 'function';\n var protocolLess = /^\\/\\//.test(baseUrl); // remove location if window.location isn't available (i.e. we're in node)\n // and if baseUrl isn't an absolute url\n\n var removeLocation = !window.location && !/\\/\\//i.test(baseUrl); // if the base URL is relative then combine with the current location\n\n if (nativeURL) {\n baseUrl = new window.URL(baseUrl, window.location || DEFAULT_LOCATION);\n } else if (!/\\/\\//i.test(baseUrl)) {\n baseUrl = URLToolkit.buildAbsoluteURL(window.location && window.location.href || '', baseUrl);\n }\n\n if (nativeURL) {\n var newUrl = new URL(relativeUrl, baseUrl); // if we're a protocol-less url, remove the protocol\n // and if we're location-less, remove the location\n // otherwise, return the url unmodified\n\n if (removeLocation) {\n return newUrl.href.slice(DEFAULT_LOCATION.length);\n } else if (protocolLess) {\n return newUrl.href.slice(newUrl.protocol.length);\n }\n\n return newUrl.href;\n }\n\n return URLToolkit.buildAbsoluteURL(baseUrl, relativeUrl);\n};\n\nexport default resolveUrl;","/**\n * @file stream.js\n */\n\n/**\n * A lightweight readable stream implemention that handles event dispatching.\n *\n * @class Stream\n */\nvar Stream = /*#__PURE__*/function () {\n function Stream() {\n this.listeners = {};\n }\n /**\n * Add a listener for a specified event type.\n *\n * @param {string} type the event name\n * @param {Function} listener the callback to be invoked when an event of\n * the specified type occurs\n */\n\n\n var _proto = Stream.prototype;\n\n _proto.on = function on(type, listener) {\n if (!this.listeners[type]) {\n this.listeners[type] = [];\n }\n\n this.listeners[type].push(listener);\n }\n /**\n * Remove a listener for a specified event type.\n *\n * @param {string} type the event name\n * @param {Function} listener a function previously registered for this\n * type of event through `on`\n * @return {boolean} if we could turn it off or not\n */\n ;\n\n _proto.off = function off(type, listener) {\n if (!this.listeners[type]) {\n return false;\n }\n\n var index = this.listeners[type].indexOf(listener); // TODO: which is better?\n // In Video.js we slice listener functions\n // on trigger so that it does not mess up the order\n // while we loop through.\n //\n // Here we slice on off so that the loop in trigger\n // can continue using it's old reference to loop without\n // messing up the order.\n\n this.listeners[type] = this.listeners[type].slice(0);\n this.listeners[type].splice(index, 1);\n return index > -1;\n }\n /**\n * Trigger an event of the specified type on this stream. Any additional\n * arguments to this function are passed as parameters to event listeners.\n *\n * @param {string} type the event name\n */\n ;\n\n _proto.trigger = function trigger(type) {\n var callbacks = this.listeners[type];\n\n if (!callbacks) {\n return;\n } // Slicing the arguments on every invocation of this method\n // can add a significant amount of overhead. Avoid the\n // intermediate object creation for the common case of a\n // single callback argument\n\n\n if (arguments.length === 2) {\n var length = callbacks.length;\n\n for (var i = 0; i < length; ++i) {\n callbacks[i].call(this, arguments[1]);\n }\n } else {\n var args = Array.prototype.slice.call(arguments, 1);\n var _length = callbacks.length;\n\n for (var _i = 0; _i < _length; ++_i) {\n callbacks[_i].apply(this, args);\n }\n }\n }\n /**\n * Destroys the stream and cleans up.\n */\n ;\n\n _proto.dispose = function dispose() {\n this.listeners = {};\n }\n /**\n * Forwards all `data` events on this stream to the destination stream. The\n * destination stream should provide a method `push` to receive the data\n * events as they arrive.\n *\n * @param {Stream} destination the stream that will receive all `data` events\n * @see http://nodejs.org/api/stream.html#stream_readable_pipe_destination_options\n */\n ;\n\n _proto.pipe = function pipe(destination) {\n this.on('data', function (data) {\n destination.push(data);\n });\n };\n\n return Stream;\n}();\n\nexport { Stream as default };","\"use strict\";\n\nvar window = require('global/window');\n\nvar httpResponseHandler = function httpResponseHandler(callback, decodeResponseBody) {\n if (decodeResponseBody === void 0) {\n decodeResponseBody = false;\n }\n\n return function (err, response, responseBody) {\n // if the XHR failed, return that error\n if (err) {\n callback(err);\n return;\n } // if the HTTP status code is 4xx or 5xx, the request also failed\n\n\n if (response.statusCode >= 400 && response.statusCode <= 599) {\n var cause = responseBody;\n\n if (decodeResponseBody) {\n if (window.TextDecoder) {\n var charset = getCharset(response.headers && response.headers['content-type']);\n\n try {\n cause = new TextDecoder(charset).decode(responseBody);\n } catch (e) {}\n } else {\n cause = String.fromCharCode.apply(null, new Uint8Array(responseBody));\n }\n }\n\n callback({\n cause: cause\n });\n return;\n } // otherwise, request succeeded\n\n\n callback(null, responseBody);\n };\n};\n\nfunction getCharset(contentTypeHeader) {\n if (contentTypeHeader === void 0) {\n contentTypeHeader = '';\n }\n\n return contentTypeHeader.toLowerCase().split(';').reduce(function (charset, contentType) {\n var _contentType$split = contentType.split('='),\n type = _contentType$split[0],\n value = _contentType$split[1];\n\n if (type.trim() === 'charset') {\n return value.trim();\n }\n\n return charset;\n }, 'utf-8');\n}\n\nmodule.exports = httpResponseHandler;","\"use strict\";\n\nvar window = require(\"global/window\");\n\nvar _extends = require(\"@babel/runtime/helpers/extends\");\n\nvar isFunction = require('is-function');\n\ncreateXHR.httpHandler = require('./http-handler.js');\n/**\n * @license\n * slighly modified parse-headers 2.0.2 \n * Copyright (c) 2014 David Björklund\n * Available under the MIT license\n * \n */\n\nvar parseHeaders = function parseHeaders(headers) {\n var result = {};\n\n if (!headers) {\n return result;\n }\n\n headers.trim().split('\\n').forEach(function (row) {\n var index = row.indexOf(':');\n var key = row.slice(0, index).trim().toLowerCase();\n var value = row.slice(index + 1).trim();\n\n if (typeof result[key] === 'undefined') {\n result[key] = value;\n } else if (Array.isArray(result[key])) {\n result[key].push(value);\n } else {\n result[key] = [result[key], value];\n }\n });\n return result;\n};\n\nmodule.exports = createXHR; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = createXHR;\ncreateXHR.XMLHttpRequest = window.XMLHttpRequest || noop;\ncreateXHR.XDomainRequest = \"withCredentials\" in new createXHR.XMLHttpRequest() ? createXHR.XMLHttpRequest : window.XDomainRequest;\nforEachArray([\"get\", \"put\", \"post\", \"patch\", \"head\", \"delete\"], function (method) {\n createXHR[method === \"delete\" ? \"del\" : method] = function (uri, options, callback) {\n options = initParams(uri, options, callback);\n options.method = method.toUpperCase();\n return _createXHR(options);\n };\n});\n\nfunction forEachArray(array, iterator) {\n for (var i = 0; i < array.length; i++) {\n iterator(array[i]);\n }\n}\n\nfunction isEmpty(obj) {\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) return false;\n }\n\n return true;\n}\n\nfunction initParams(uri, options, callback) {\n var params = uri;\n\n if (isFunction(options)) {\n callback = options;\n\n if (typeof uri === \"string\") {\n params = {\n uri: uri\n };\n }\n } else {\n params = _extends({}, options, {\n uri: uri\n });\n }\n\n params.callback = callback;\n return params;\n}\n\nfunction createXHR(uri, options, callback) {\n options = initParams(uri, options, callback);\n return _createXHR(options);\n}\n\nfunction _createXHR(options) {\n if (typeof options.callback === \"undefined\") {\n throw new Error(\"callback argument missing\");\n }\n\n var called = false;\n\n var callback = function cbOnce(err, response, body) {\n if (!called) {\n called = true;\n options.callback(err, response, body);\n }\n };\n\n function readystatechange() {\n if (xhr.readyState === 4) {\n setTimeout(loadFunc, 0);\n }\n }\n\n function getBody() {\n // Chrome with requestType=blob throws errors arround when even testing access to responseText\n var body = undefined;\n\n if (xhr.response) {\n body = xhr.response;\n } else {\n body = xhr.responseText || getXml(xhr);\n }\n\n if (isJson) {\n try {\n body = JSON.parse(body);\n } catch (e) {}\n }\n\n return body;\n }\n\n function errorFunc(evt) {\n clearTimeout(timeoutTimer);\n\n if (!(evt instanceof Error)) {\n evt = new Error(\"\" + (evt || \"Unknown XMLHttpRequest Error\"));\n }\n\n evt.statusCode = 0;\n return callback(evt, failureResponse);\n } // will load the data & process the response in a special response object\n\n\n function loadFunc() {\n if (aborted) return;\n var status;\n clearTimeout(timeoutTimer);\n\n if (options.useXDR && xhr.status === undefined) {\n //IE8 CORS GET successful response doesn't have a status field, but body is fine\n status = 200;\n } else {\n status = xhr.status === 1223 ? 204 : xhr.status;\n }\n\n var response = failureResponse;\n var err = null;\n\n if (status !== 0) {\n response = {\n body: getBody(),\n statusCode: status,\n method: method,\n headers: {},\n url: uri,\n rawRequest: xhr\n };\n\n if (xhr.getAllResponseHeaders) {\n //remember xhr can in fact be XDR for CORS in IE\n response.headers = parseHeaders(xhr.getAllResponseHeaders());\n }\n } else {\n err = new Error(\"Internal XMLHttpRequest Error\");\n }\n\n return callback(err, response, response.body);\n }\n\n var xhr = options.xhr || null;\n\n if (!xhr) {\n if (options.cors || options.useXDR) {\n xhr = new createXHR.XDomainRequest();\n } else {\n xhr = new createXHR.XMLHttpRequest();\n }\n }\n\n var key;\n var aborted;\n var uri = xhr.url = options.uri || options.url;\n var method = xhr.method = options.method || \"GET\";\n var body = options.body || options.data;\n var headers = xhr.headers = options.headers || {};\n var sync = !!options.sync;\n var isJson = false;\n var timeoutTimer;\n var failureResponse = {\n body: undefined,\n headers: {},\n statusCode: 0,\n method: method,\n url: uri,\n rawRequest: xhr\n };\n\n if (\"json\" in options && options.json !== false) {\n isJson = true;\n headers[\"accept\"] || headers[\"Accept\"] || (headers[\"Accept\"] = \"application/json\"); //Don't override existing accept header declared by user\n\n if (method !== \"GET\" && method !== \"HEAD\") {\n headers[\"content-type\"] || headers[\"Content-Type\"] || (headers[\"Content-Type\"] = \"application/json\"); //Don't override existing accept header declared by user\n\n body = JSON.stringify(options.json === true ? body : options.json);\n }\n }\n\n xhr.onreadystatechange = readystatechange;\n xhr.onload = loadFunc;\n xhr.onerror = errorFunc; // IE9 must have onprogress be set to a unique function.\n\n xhr.onprogress = function () {// IE must die\n };\n\n xhr.onabort = function () {\n aborted = true;\n };\n\n xhr.ontimeout = errorFunc;\n xhr.open(method, uri, !sync, options.username, options.password); //has to be after open\n\n if (!sync) {\n xhr.withCredentials = !!options.withCredentials;\n } // Cannot set timeout with sync request\n // not setting timeout on the xhr object, because of old webkits etc. not handling that correctly\n // both npm's request and jquery 1.x use this kind of timeout, so this is being consistent\n\n\n if (!sync && options.timeout > 0) {\n timeoutTimer = setTimeout(function () {\n if (aborted) return;\n aborted = true; //IE9 may still call readystatechange\n\n xhr.abort(\"timeout\");\n var e = new Error(\"XMLHttpRequest timeout\");\n e.code = \"ETIMEDOUT\";\n errorFunc(e);\n }, options.timeout);\n }\n\n if (xhr.setRequestHeader) {\n for (key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n } else if (options.headers && !isEmpty(options.headers)) {\n throw new Error(\"Headers cannot be set on an XDomainRequest object\");\n }\n\n if (\"responseType\" in options) {\n xhr.responseType = options.responseType;\n }\n\n if (\"beforeSend\" in options && typeof options.beforeSend === \"function\") {\n options.beforeSend(xhr);\n } // Microsoft Edge browser sends \"undefined\" when send is called with undefined value.\n // XMLHttpRequest spec says to pass null as body to indicate no body\n // See https://github.com/naugtur/xhr/issues/100.\n\n\n xhr.send(body || null);\n return xhr;\n}\n\nfunction getXml(xhr) {\n // xhr.responseXML will throw Exception \"InvalidStateError\" or \"DOMException\"\n // See https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseXML.\n try {\n if (xhr.responseType === \"document\") {\n return xhr.responseXML;\n }\n\n var firefoxBugTakenEffect = xhr.responseXML && xhr.responseXML.documentElement.nodeName === \"parsererror\";\n\n if (xhr.responseType === \"\" && !firefoxBugTakenEffect) {\n return xhr.responseXML;\n }\n } catch (e) {}\n\n return null;\n}\n\nfunction noop() {}","import window from 'global/window'; // const log2 = Math.log2 ? Math.log2 : (x) => (Math.log(x) / Math.log(2));\n\nvar repeat = function repeat(str, len) {\n var acc = '';\n\n while (len--) {\n acc += str;\n }\n\n return acc;\n}; // count the number of bits it would take to represent a number\n// we used to do this with log2 but BigInt does not support builtin math\n// Math.ceil(log2(x));\n\n\nexport var countBits = function countBits(x) {\n return x.toString(2).length;\n}; // count the number of whole bytes it would take to represent a number\n\nexport var countBytes = function countBytes(x) {\n return Math.ceil(countBits(x) / 8);\n};\nexport var padStart = function padStart(b, len, str) {\n if (str === void 0) {\n str = ' ';\n }\n\n return (repeat(str, len) + b.toString()).slice(-len);\n};\nexport var isArrayBufferView = function isArrayBufferView(obj) {\n if (ArrayBuffer.isView === 'function') {\n return ArrayBuffer.isView(obj);\n }\n\n return obj && obj.buffer instanceof ArrayBuffer;\n};\nexport var isTypedArray = function isTypedArray(obj) {\n return isArrayBufferView(obj);\n};\nexport var toUint8 = function toUint8(bytes) {\n if (bytes instanceof Uint8Array) {\n return bytes;\n }\n\n if (!Array.isArray(bytes) && !isTypedArray(bytes) && !(bytes instanceof ArrayBuffer)) {\n // any non-number or NaN leads to empty uint8array\n // eslint-disable-next-line\n if (typeof bytes !== 'number' || typeof bytes === 'number' && bytes !== bytes) {\n bytes = 0;\n } else {\n bytes = [bytes];\n }\n }\n\n return new Uint8Array(bytes && bytes.buffer || bytes, bytes && bytes.byteOffset || 0, bytes && bytes.byteLength || 0);\n};\nexport var toHexString = function toHexString(bytes) {\n bytes = toUint8(bytes);\n var str = '';\n\n for (var i = 0; i < bytes.length; i++) {\n str += padStart(bytes[i].toString(16), 2, '0');\n }\n\n return str;\n};\nexport var toBinaryString = function toBinaryString(bytes) {\n bytes = toUint8(bytes);\n var str = '';\n\n for (var i = 0; i < bytes.length; i++) {\n str += padStart(bytes[i].toString(2), 8, '0');\n }\n\n return str;\n};\nvar BigInt = window.BigInt || Number;\nvar BYTE_TABLE = [BigInt('0x1'), BigInt('0x100'), BigInt('0x10000'), BigInt('0x1000000'), BigInt('0x100000000'), BigInt('0x10000000000'), BigInt('0x1000000000000'), BigInt('0x100000000000000'), BigInt('0x10000000000000000')];\nexport var ENDIANNESS = function () {\n var a = new Uint16Array([0xFFCC]);\n var b = new Uint8Array(a.buffer, a.byteOffset, a.byteLength);\n\n if (b[0] === 0xFF) {\n return 'big';\n }\n\n if (b[0] === 0xCC) {\n return 'little';\n }\n\n return 'unknown';\n}();\nexport var IS_BIG_ENDIAN = ENDIANNESS === 'big';\nexport var IS_LITTLE_ENDIAN = ENDIANNESS === 'little';\nexport var bytesToNumber = function bytesToNumber(bytes, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$signed = _ref.signed,\n signed = _ref$signed === void 0 ? false : _ref$signed,\n _ref$le = _ref.le,\n le = _ref$le === void 0 ? false : _ref$le;\n\n bytes = toUint8(bytes);\n var fn = le ? 'reduce' : 'reduceRight';\n var obj = bytes[fn] ? bytes[fn] : Array.prototype[fn];\n var number = obj.call(bytes, function (total, byte, i) {\n var exponent = le ? i : Math.abs(i + 1 - bytes.length);\n return total + BigInt(byte) * BYTE_TABLE[exponent];\n }, BigInt(0));\n\n if (signed) {\n var max = BYTE_TABLE[bytes.length] / BigInt(2) - BigInt(1);\n number = BigInt(number);\n\n if (number > max) {\n number -= max;\n number -= max;\n number -= BigInt(2);\n }\n }\n\n return Number(number);\n};\nexport var numberToBytes = function numberToBytes(number, _temp2) {\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$le = _ref2.le,\n le = _ref2$le === void 0 ? false : _ref2$le;\n\n // eslint-disable-next-line\n if (typeof number !== 'bigint' && typeof number !== 'number' || typeof number === 'number' && number !== number) {\n number = 0;\n }\n\n number = BigInt(number);\n var byteCount = countBytes(number);\n var bytes = new Uint8Array(new ArrayBuffer(byteCount));\n\n for (var i = 0; i < byteCount; i++) {\n var byteIndex = le ? i : Math.abs(i + 1 - bytes.length);\n bytes[byteIndex] = Number(number / BYTE_TABLE[i] & BigInt(0xFF));\n\n if (number < 0) {\n bytes[byteIndex] = Math.abs(~bytes[byteIndex]);\n bytes[byteIndex] -= i === 0 ? 1 : 2;\n }\n }\n\n return bytes;\n};\nexport var bytesToString = function bytesToString(bytes) {\n if (!bytes) {\n return '';\n } // TODO: should toUint8 handle cases where we only have 8 bytes\n // but report more since this is a Uint16+ Array?\n\n\n bytes = Array.prototype.slice.call(bytes);\n var string = String.fromCharCode.apply(null, toUint8(bytes));\n\n try {\n return decodeURIComponent(escape(string));\n } catch (e) {// if decodeURIComponent/escape fails, we are dealing with partial\n // or full non string data. Just return the potentially garbled string.\n }\n\n return string;\n};\nexport var stringToBytes = function stringToBytes(string, stringIsBytes) {\n if (typeof string !== 'string' && string && typeof string.toString === 'function') {\n string = string.toString();\n }\n\n if (typeof string !== 'string') {\n return new Uint8Array();\n } // If the string already is bytes, we don't have to do this\n // otherwise we do this so that we split multi length characters\n // into individual bytes\n\n\n if (!stringIsBytes) {\n string = unescape(encodeURIComponent(string));\n }\n\n var view = new Uint8Array(string.length);\n\n for (var i = 0; i < string.length; i++) {\n view[i] = string.charCodeAt(i);\n }\n\n return view;\n};\nexport var concatTypedArrays = function concatTypedArrays() {\n for (var _len = arguments.length, buffers = new Array(_len), _key = 0; _key < _len; _key++) {\n buffers[_key] = arguments[_key];\n }\n\n buffers = buffers.filter(function (b) {\n return b && (b.byteLength || b.length) && typeof b !== 'string';\n });\n\n if (buffers.length <= 1) {\n // for 0 length we will return empty uint8\n // for 1 length we return the first uint8\n return toUint8(buffers[0]);\n }\n\n var totalLen = buffers.reduce(function (total, buf, i) {\n return total + (buf.byteLength || buf.length);\n }, 0);\n var tempBuffer = new Uint8Array(totalLen);\n var offset = 0;\n buffers.forEach(function (buf) {\n buf = toUint8(buf);\n tempBuffer.set(buf, offset);\n offset += buf.byteLength;\n });\n return tempBuffer;\n};\n/**\n * Check if the bytes \"b\" are contained within bytes \"a\".\n *\n * @param {Uint8Array|Array} a\n * Bytes to check in\n *\n * @param {Uint8Array|Array} b\n * Bytes to check for\n *\n * @param {Object} options\n * options\n *\n * @param {Array|Uint8Array} [offset=0]\n * offset to use when looking at bytes in a\n *\n * @param {Array|Uint8Array} [mask=[]]\n * mask to use on bytes before comparison.\n *\n * @return {boolean}\n * If all bytes in b are inside of a, taking into account\n * bit masks.\n */\n\nexport var bytesMatch = function bytesMatch(a, b, _temp3) {\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n _ref3$offset = _ref3.offset,\n offset = _ref3$offset === void 0 ? 0 : _ref3$offset,\n _ref3$mask = _ref3.mask,\n mask = _ref3$mask === void 0 ? [] : _ref3$mask;\n\n a = toUint8(a);\n b = toUint8(b); // ie 11 does not support uint8 every\n\n var fn = b.every ? b.every : Array.prototype.every;\n return b.length && a.length - offset >= b.length && // ie 11 doesn't support every on uin8\n fn.call(b, function (bByte, i) {\n var aByte = mask[i] ? mask[i] & a[offset + i] : a[offset + i];\n return bByte === aByte;\n });\n};\nexport var sliceBytes = function sliceBytes(src, start, end) {\n if (Uint8Array.prototype.slice) {\n return Uint8Array.prototype.slice.call(src, start, end);\n }\n\n return new Uint8Array(Array.prototype.slice.call(src, start, end));\n};\nexport var reverseBytes = function reverseBytes(src) {\n if (src.reverse) {\n return src.reverse();\n }\n\n return Array.prototype.reverse.call(src);\n};","import { stringToBytes, toUint8, bytesMatch, bytesToString, toHexString, padStart, bytesToNumber } from './byte-helpers.js';\nimport { getAvcCodec, getHvcCodec, getAv1Codec } from './codec-helpers.js';\nimport { parseOpusHead } from './opus-helpers.js';\n\nvar normalizePath = function normalizePath(path) {\n if (typeof path === 'string') {\n return stringToBytes(path);\n }\n\n if (typeof path === 'number') {\n return path;\n }\n\n return path;\n};\n\nvar normalizePaths = function normalizePaths(paths) {\n if (!Array.isArray(paths)) {\n return [normalizePath(paths)];\n }\n\n return paths.map(function (p) {\n return normalizePath(p);\n });\n};\n\nvar DESCRIPTORS;\nexport var parseDescriptors = function parseDescriptors(bytes) {\n bytes = toUint8(bytes);\n var results = [];\n var i = 0;\n\n while (bytes.length > i) {\n var tag = bytes[i];\n var size = 0;\n var headerSize = 0; // tag\n\n headerSize++;\n var byte = bytes[headerSize]; // first byte\n\n headerSize++;\n\n while (byte & 0x80) {\n size = (byte & 0x7F) << 7;\n byte = bytes[headerSize];\n headerSize++;\n }\n\n size += byte & 0x7F;\n\n for (var z = 0; z < DESCRIPTORS.length; z++) {\n var _DESCRIPTORS$z = DESCRIPTORS[z],\n id = _DESCRIPTORS$z.id,\n parser = _DESCRIPTORS$z.parser;\n\n if (tag === id) {\n results.push(parser(bytes.subarray(headerSize, headerSize + size)));\n break;\n }\n }\n\n i += size + headerSize;\n }\n\n return results;\n};\nDESCRIPTORS = [{\n id: 0x03,\n parser: function parser(bytes) {\n var desc = {\n tag: 0x03,\n id: bytes[0] << 8 | bytes[1],\n flags: bytes[2],\n size: 3,\n dependsOnEsId: 0,\n ocrEsId: 0,\n descriptors: [],\n url: ''\n }; // depends on es id\n\n if (desc.flags & 0x80) {\n desc.dependsOnEsId = bytes[desc.size] << 8 | bytes[desc.size + 1];\n desc.size += 2;\n } // url\n\n\n if (desc.flags & 0x40) {\n var len = bytes[desc.size];\n desc.url = bytesToString(bytes.subarray(desc.size + 1, desc.size + 1 + len));\n desc.size += len;\n } // ocr es id\n\n\n if (desc.flags & 0x20) {\n desc.ocrEsId = bytes[desc.size] << 8 | bytes[desc.size + 1];\n desc.size += 2;\n }\n\n desc.descriptors = parseDescriptors(bytes.subarray(desc.size)) || [];\n return desc;\n }\n}, {\n id: 0x04,\n parser: function parser(bytes) {\n // DecoderConfigDescriptor\n var desc = {\n tag: 0x04,\n oti: bytes[0],\n streamType: bytes[1],\n bufferSize: bytes[2] << 16 | bytes[3] << 8 | bytes[4],\n maxBitrate: bytes[5] << 24 | bytes[6] << 16 | bytes[7] << 8 | bytes[8],\n avgBitrate: bytes[9] << 24 | bytes[10] << 16 | bytes[11] << 8 | bytes[12],\n descriptors: parseDescriptors(bytes.subarray(13))\n };\n return desc;\n }\n}, {\n id: 0x05,\n parser: function parser(bytes) {\n // DecoderSpecificInfo\n return {\n tag: 0x05,\n bytes: bytes\n };\n }\n}, {\n id: 0x06,\n parser: function parser(bytes) {\n // SLConfigDescriptor\n return {\n tag: 0x06,\n bytes: bytes\n };\n }\n}];\n/**\n * find any number of boxes by name given a path to it in an iso bmff\n * such as mp4.\n *\n * @param {TypedArray} bytes\n * bytes for the iso bmff to search for boxes in\n *\n * @param {Uint8Array[]|string[]|string|Uint8Array} name\n * An array of paths or a single path representing the name\n * of boxes to search through in bytes. Paths may be\n * uint8 (character codes) or strings.\n *\n * @param {boolean} [complete=false]\n * Should we search only for complete boxes on the final path.\n * This is very useful when you do not want to get back partial boxes\n * in the case of streaming files.\n *\n * @return {Uint8Array[]}\n * An array of the end paths that we found.\n */\n\nexport var findBox = function findBox(bytes, paths, complete) {\n if (complete === void 0) {\n complete = false;\n }\n\n paths = normalizePaths(paths);\n bytes = toUint8(bytes);\n var results = [];\n\n if (!paths.length) {\n // short-circuit the search for empty paths\n return results;\n }\n\n var i = 0;\n\n while (i < bytes.length) {\n var size = (bytes[i] << 24 | bytes[i + 1] << 16 | bytes[i + 2] << 8 | bytes[i + 3]) >>> 0;\n var type = bytes.subarray(i + 4, i + 8); // invalid box format.\n\n if (size === 0) {\n break;\n }\n\n var end = i + size;\n\n if (end > bytes.length) {\n // this box is bigger than the number of bytes we have\n // and complete is set, we cannot find any more boxes.\n if (complete) {\n break;\n }\n\n end = bytes.length;\n }\n\n var data = bytes.subarray(i + 8, end);\n\n if (bytesMatch(type, paths[0])) {\n if (paths.length === 1) {\n // this is the end of the path and we've found the box we were\n // looking for\n results.push(data);\n } else {\n // recursively search for the next box along the path\n results.push.apply(results, findBox(data, paths.slice(1), complete));\n }\n }\n\n i = end;\n } // we've finished searching all of bytes\n\n\n return results;\n};\n/**\n * Search for a single matching box by name in an iso bmff format like\n * mp4. This function is useful for finding codec boxes which\n * can be placed arbitrarily in sample descriptions depending\n * on the version of the file or file type.\n *\n * @param {TypedArray} bytes\n * bytes for the iso bmff to search for boxes in\n *\n * @param {string|Uint8Array} name\n * The name of the box to find.\n *\n * @return {Uint8Array[]}\n * a subarray of bytes representing the name boxed we found.\n */\n\nexport var findNamedBox = function findNamedBox(bytes, name) {\n name = normalizePath(name);\n\n if (!name.length) {\n // short-circuit the search for empty paths\n return bytes.subarray(bytes.length);\n }\n\n var i = 0;\n\n while (i < bytes.length) {\n if (bytesMatch(bytes.subarray(i, i + name.length), name)) {\n var size = (bytes[i - 4] << 24 | bytes[i - 3] << 16 | bytes[i - 2] << 8 | bytes[i - 1]) >>> 0;\n var end = size > 1 ? i + size : bytes.byteLength;\n return bytes.subarray(i + 4, end);\n }\n\n i++;\n } // we've finished searching all of bytes\n\n\n return bytes.subarray(bytes.length);\n};\n\nvar parseSamples = function parseSamples(data, entrySize, parseEntry) {\n if (entrySize === void 0) {\n entrySize = 4;\n }\n\n if (parseEntry === void 0) {\n parseEntry = function parseEntry(d) {\n return bytesToNumber(d);\n };\n }\n\n var entries = [];\n\n if (!data || !data.length) {\n return entries;\n }\n\n var entryCount = bytesToNumber(data.subarray(4, 8));\n\n for (var i = 8; entryCount; i += entrySize, entryCount--) {\n entries.push(parseEntry(data.subarray(i, i + entrySize)));\n }\n\n return entries;\n};\n\nexport var buildFrameTable = function buildFrameTable(stbl, timescale) {\n var keySamples = parseSamples(findBox(stbl, ['stss'])[0]);\n var chunkOffsets = parseSamples(findBox(stbl, ['stco'])[0]);\n var timeToSamples = parseSamples(findBox(stbl, ['stts'])[0], 8, function (entry) {\n return {\n sampleCount: bytesToNumber(entry.subarray(0, 4)),\n sampleDelta: bytesToNumber(entry.subarray(4, 8))\n };\n });\n var samplesToChunks = parseSamples(findBox(stbl, ['stsc'])[0], 12, function (entry) {\n return {\n firstChunk: bytesToNumber(entry.subarray(0, 4)),\n samplesPerChunk: bytesToNumber(entry.subarray(4, 8)),\n sampleDescriptionIndex: bytesToNumber(entry.subarray(8, 12))\n };\n });\n var stsz = findBox(stbl, ['stsz'])[0]; // stsz starts with a 4 byte sampleSize which we don't need\n\n var sampleSizes = parseSamples(stsz && stsz.length && stsz.subarray(4) || null);\n var frames = [];\n\n for (var chunkIndex = 0; chunkIndex < chunkOffsets.length; chunkIndex++) {\n var samplesInChunk = void 0;\n\n for (var i = 0; i < samplesToChunks.length; i++) {\n var sampleToChunk = samplesToChunks[i];\n var isThisOne = chunkIndex + 1 >= sampleToChunk.firstChunk && (i + 1 >= samplesToChunks.length || chunkIndex + 1 < samplesToChunks[i + 1].firstChunk);\n\n if (isThisOne) {\n samplesInChunk = sampleToChunk.samplesPerChunk;\n break;\n }\n }\n\n var chunkOffset = chunkOffsets[chunkIndex];\n\n for (var _i = 0; _i < samplesInChunk; _i++) {\n var frameEnd = sampleSizes[frames.length]; // if we don't have key samples every frame is a keyframe\n\n var keyframe = !keySamples.length;\n\n if (keySamples.length && keySamples.indexOf(frames.length + 1) !== -1) {\n keyframe = true;\n }\n\n var frame = {\n keyframe: keyframe,\n start: chunkOffset,\n end: chunkOffset + frameEnd\n };\n\n for (var k = 0; k < timeToSamples.length; k++) {\n var _timeToSamples$k = timeToSamples[k],\n sampleCount = _timeToSamples$k.sampleCount,\n sampleDelta = _timeToSamples$k.sampleDelta;\n\n if (frames.length <= sampleCount) {\n // ms to ns\n var lastTimestamp = frames.length ? frames[frames.length - 1].timestamp : 0;\n frame.timestamp = lastTimestamp + sampleDelta / timescale * 1000;\n frame.duration = sampleDelta;\n break;\n }\n }\n\n frames.push(frame);\n chunkOffset += frameEnd;\n }\n }\n\n return frames;\n};\nexport var addSampleDescription = function addSampleDescription(track, bytes) {\n var codec = bytesToString(bytes.subarray(0, 4));\n\n if (track.type === 'video') {\n track.info = track.info || {};\n track.info.width = bytes[28] << 8 | bytes[29];\n track.info.height = bytes[30] << 8 | bytes[31];\n } else if (track.type === 'audio') {\n track.info = track.info || {};\n track.info.channels = bytes[20] << 8 | bytes[21];\n track.info.bitDepth = bytes[22] << 8 | bytes[23];\n track.info.sampleRate = bytes[28] << 8 | bytes[29];\n }\n\n if (codec === 'avc1') {\n var avcC = findNamedBox(bytes, 'avcC'); // AVCDecoderConfigurationRecord\n\n codec += \".\" + getAvcCodec(avcC);\n track.info.avcC = avcC; // TODO: do we need to parse all this?\n\n /* {\n configurationVersion: avcC[0],\n profile: avcC[1],\n profileCompatibility: avcC[2],\n level: avcC[3],\n lengthSizeMinusOne: avcC[4] & 0x3\n };\n let spsNalUnitCount = avcC[5] & 0x1F;\n const spsNalUnits = track.info.avc.spsNalUnits = [];\n // past spsNalUnitCount\n let offset = 6;\n while (spsNalUnitCount--) {\n const nalLen = avcC[offset] << 8 | avcC[offset + 1];\n spsNalUnits.push(avcC.subarray(offset + 2, offset + 2 + nalLen));\n offset += nalLen + 2;\n }\n let ppsNalUnitCount = avcC[offset];\n const ppsNalUnits = track.info.avc.ppsNalUnits = [];\n // past ppsNalUnitCount\n offset += 1;\n while (ppsNalUnitCount--) {\n const nalLen = avcC[offset] << 8 | avcC[offset + 1];\n ppsNalUnits.push(avcC.subarray(offset + 2, offset + 2 + nalLen));\n offset += nalLen + 2;\n }*/\n // HEVCDecoderConfigurationRecord\n } else if (codec === 'hvc1' || codec === 'hev1') {\n codec += \".\" + getHvcCodec(findNamedBox(bytes, 'hvcC'));\n } else if (codec === 'mp4a' || codec === 'mp4v') {\n var esds = findNamedBox(bytes, 'esds');\n var esDescriptor = parseDescriptors(esds.subarray(4))[0];\n var decoderConfig = esDescriptor && esDescriptor.descriptors.filter(function (_ref) {\n var tag = _ref.tag;\n return tag === 0x04;\n })[0];\n\n if (decoderConfig) {\n // most codecs do not have a further '.'\n // such as 0xa5 for ac-3 and 0xa6 for e-ac-3\n codec += '.' + toHexString(decoderConfig.oti);\n\n if (decoderConfig.oti === 0x40) {\n codec += '.' + (decoderConfig.descriptors[0].bytes[0] >> 3).toString();\n } else if (decoderConfig.oti === 0x20) {\n codec += '.' + decoderConfig.descriptors[0].bytes[4].toString();\n } else if (decoderConfig.oti === 0xdd) {\n codec = 'vorbis';\n }\n } else if (track.type === 'audio') {\n codec += '.40.2';\n } else {\n codec += '.20.9';\n }\n } else if (codec === 'av01') {\n // AV1DecoderConfigurationRecord\n codec += \".\" + getAv1Codec(findNamedBox(bytes, 'av1C'));\n } else if (codec === 'vp09') {\n // VPCodecConfigurationRecord\n var vpcC = findNamedBox(bytes, 'vpcC'); // https://www.webmproject.org/vp9/mp4/\n\n var profile = vpcC[0];\n var level = vpcC[1];\n var bitDepth = vpcC[2] >> 4;\n var chromaSubsampling = (vpcC[2] & 0x0F) >> 1;\n var videoFullRangeFlag = (vpcC[2] & 0x0F) >> 3;\n var colourPrimaries = vpcC[3];\n var transferCharacteristics = vpcC[4];\n var matrixCoefficients = vpcC[5];\n codec += \".\" + padStart(profile, 2, '0');\n codec += \".\" + padStart(level, 2, '0');\n codec += \".\" + padStart(bitDepth, 2, '0');\n codec += \".\" + padStart(chromaSubsampling, 2, '0');\n codec += \".\" + padStart(colourPrimaries, 2, '0');\n codec += \".\" + padStart(transferCharacteristics, 2, '0');\n codec += \".\" + padStart(matrixCoefficients, 2, '0');\n codec += \".\" + padStart(videoFullRangeFlag, 2, '0');\n } else if (codec === 'theo') {\n codec = 'theora';\n } else if (codec === 'spex') {\n codec = 'speex';\n } else if (codec === '.mp3') {\n codec = 'mp4a.40.34';\n } else if (codec === 'msVo') {\n codec = 'vorbis';\n } else if (codec === 'Opus') {\n codec = 'opus';\n var dOps = findNamedBox(bytes, 'dOps');\n track.info.opus = parseOpusHead(dOps); // TODO: should this go into the webm code??\n // Firefox requires a codecDelay for opus playback\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=1276238\n\n track.info.codecDelay = 6500000;\n } else {\n codec = codec.toLowerCase();\n }\n /* eslint-enable */\n // flac, ac-3, ec-3, opus\n\n\n track.codec = codec;\n};\nexport var parseTracks = function parseTracks(bytes, frameTable) {\n if (frameTable === void 0) {\n frameTable = true;\n }\n\n bytes = toUint8(bytes);\n var traks = findBox(bytes, ['moov', 'trak'], true);\n var tracks = [];\n traks.forEach(function (trak) {\n var track = {\n bytes: trak\n };\n var mdia = findBox(trak, ['mdia'])[0];\n var hdlr = findBox(mdia, ['hdlr'])[0];\n var trakType = bytesToString(hdlr.subarray(8, 12));\n\n if (trakType === 'soun') {\n track.type = 'audio';\n } else if (trakType === 'vide') {\n track.type = 'video';\n } else {\n track.type = trakType;\n }\n\n var tkhd = findBox(trak, ['tkhd'])[0];\n\n if (tkhd) {\n var view = new DataView(tkhd.buffer, tkhd.byteOffset, tkhd.byteLength);\n var tkhdVersion = view.getUint8(0);\n track.number = tkhdVersion === 0 ? view.getUint32(12) : view.getUint32(20);\n }\n\n var mdhd = findBox(mdia, ['mdhd'])[0];\n\n if (mdhd) {\n // mdhd is a FullBox, meaning it will have its own version as the first byte\n var version = mdhd[0];\n var index = version === 0 ? 12 : 20;\n track.timescale = (mdhd[index] << 24 | mdhd[index + 1] << 16 | mdhd[index + 2] << 8 | mdhd[index + 3]) >>> 0;\n }\n\n var stbl = findBox(mdia, ['minf', 'stbl'])[0];\n var stsd = findBox(stbl, ['stsd'])[0];\n var descriptionCount = bytesToNumber(stsd.subarray(4, 8));\n var offset = 8; // add codec and codec info\n\n while (descriptionCount--) {\n var len = bytesToNumber(stsd.subarray(offset, offset + 4));\n var sampleDescriptor = stsd.subarray(offset + 4, offset + 4 + len);\n addSampleDescription(track, sampleDescriptor);\n offset += 4 + len;\n }\n\n if (frameTable) {\n track.frameTable = buildFrameTable(stbl, track.timescale);\n } // codec has no sub parameters\n\n\n tracks.push(track);\n });\n return tracks;\n};\nexport var parseMediaInfo = function parseMediaInfo(bytes) {\n var mvhd = findBox(bytes, ['moov', 'mvhd'], true)[0];\n\n if (!mvhd || !mvhd.length) {\n return;\n }\n\n var info = {}; // ms to ns\n // mvhd v1 has 8 byte duration and other fields too\n\n if (mvhd[0] === 1) {\n info.timestampScale = bytesToNumber(mvhd.subarray(20, 24));\n info.duration = bytesToNumber(mvhd.subarray(24, 32));\n } else {\n info.timestampScale = bytesToNumber(mvhd.subarray(12, 16));\n info.duration = bytesToNumber(mvhd.subarray(16, 20));\n }\n\n info.bytes = mvhd;\n return info;\n};","import window from 'global/window';\nvar regexs = {\n // to determine mime types\n mp4: /^(av0?1|avc0?[1234]|vp0?9|flac|opus|mp3|mp4a|mp4v|stpp.ttml.im1t)/,\n webm: /^(vp0?[89]|av0?1|opus|vorbis)/,\n ogg: /^(vp0?[89]|theora|flac|opus|vorbis)/,\n // to determine if a codec is audio or video\n video: /^(av0?1|avc0?[1234]|vp0?[89]|hvc1|hev1|theora|mp4v)/,\n audio: /^(mp4a|flac|vorbis|opus|ac-[34]|ec-3|alac|mp3|speex|aac)/,\n text: /^(stpp.ttml.im1t)/,\n // mux.js support regex\n muxerVideo: /^(avc0?1)/,\n muxerAudio: /^(mp4a)/,\n // match nothing as muxer does not support text right now.\n // there cannot never be a character before the start of a string\n // so this matches nothing.\n muxerText: /a^/\n};\nvar mediaTypes = ['video', 'audio', 'text'];\nvar upperMediaTypes = ['Video', 'Audio', 'Text'];\n/**\n * Replace the old apple-style `avc1.
.
` codec string with the standard\n * `avc1.`\n *\n * @param {string} codec\n * Codec string to translate\n * @return {string}\n * The translated codec string\n */\n\nexport var translateLegacyCodec = function translateLegacyCodec(codec) {\n if (!codec) {\n return codec;\n }\n\n return codec.replace(/avc1\\.(\\d+)\\.(\\d+)/i, function (orig, profile, avcLevel) {\n var profileHex = ('00' + Number(profile).toString(16)).slice(-2);\n var avcLevelHex = ('00' + Number(avcLevel).toString(16)).slice(-2);\n return 'avc1.' + profileHex + '00' + avcLevelHex;\n });\n};\n/**\n * Replace the old apple-style `avc1.
.
` codec strings with the standard\n * `avc1.`\n *\n * @param {string[]} codecs\n * An array of codec strings to translate\n * @return {string[]}\n * The translated array of codec strings\n */\n\nexport var translateLegacyCodecs = function translateLegacyCodecs(codecs) {\n return codecs.map(translateLegacyCodec);\n};\n/**\n * Replace codecs in the codec string with the old apple-style `avc1.
.
` to the\n * standard `avc1.`.\n *\n * @param {string} codecString\n * The codec string\n * @return {string}\n * The codec string with old apple-style codecs replaced\n *\n * @private\n */\n\nexport var mapLegacyAvcCodecs = function mapLegacyAvcCodecs(codecString) {\n return codecString.replace(/avc1\\.(\\d+)\\.(\\d+)/i, function (match) {\n return translateLegacyCodecs([match])[0];\n });\n};\n/**\n * @typedef {Object} ParsedCodecInfo\n * @property {number} codecCount\n * Number of codecs parsed\n * @property {string} [videoCodec]\n * Parsed video codec (if found)\n * @property {string} [videoObjectTypeIndicator]\n * Video object type indicator (if found)\n * @property {string|null} audioProfile\n * Audio profile\n */\n\n/**\n * Parses a codec string to retrieve the number of codecs specified, the video codec and\n * object type indicator, and the audio profile.\n *\n * @param {string} [codecString]\n * The codec string to parse\n * @return {ParsedCodecInfo}\n * Parsed codec info\n */\n\nexport var parseCodecs = function parseCodecs(codecString) {\n if (codecString === void 0) {\n codecString = '';\n }\n\n var codecs = codecString.split(',');\n var result = [];\n codecs.forEach(function (codec) {\n codec = codec.trim();\n var codecType;\n mediaTypes.forEach(function (name) {\n var match = regexs[name].exec(codec.toLowerCase());\n\n if (!match || match.length <= 1) {\n return;\n }\n\n codecType = name; // maintain codec case\n\n var type = codec.substring(0, match[1].length);\n var details = codec.replace(type, '');\n result.push({\n type: type,\n details: details,\n mediaType: name\n });\n });\n\n if (!codecType) {\n result.push({\n type: codec,\n details: '',\n mediaType: 'unknown'\n });\n }\n });\n return result;\n};\n/**\n * Returns a ParsedCodecInfo object for the default alternate audio playlist if there is\n * a default alternate audio playlist for the provided audio group.\n *\n * @param {Object} master\n * The master playlist\n * @param {string} audioGroupId\n * ID of the audio group for which to find the default codec info\n * @return {ParsedCodecInfo}\n * Parsed codec info\n */\n\nexport var codecsFromDefault = function codecsFromDefault(master, audioGroupId) {\n if (!master.mediaGroups.AUDIO || !audioGroupId) {\n return null;\n }\n\n var audioGroup = master.mediaGroups.AUDIO[audioGroupId];\n\n if (!audioGroup) {\n return null;\n }\n\n for (var name in audioGroup) {\n var audioType = audioGroup[name];\n\n if (audioType.default && audioType.playlists) {\n // codec should be the same for all playlists within the audio type\n return parseCodecs(audioType.playlists[0].attributes.CODECS);\n }\n }\n\n return null;\n};\nexport var isVideoCodec = function isVideoCodec(codec) {\n if (codec === void 0) {\n codec = '';\n }\n\n return regexs.video.test(codec.trim().toLowerCase());\n};\nexport var isAudioCodec = function isAudioCodec(codec) {\n if (codec === void 0) {\n codec = '';\n }\n\n return regexs.audio.test(codec.trim().toLowerCase());\n};\nexport var isTextCodec = function isTextCodec(codec) {\n if (codec === void 0) {\n codec = '';\n }\n\n return regexs.text.test(codec.trim().toLowerCase());\n};\nexport var getMimeForCodec = function getMimeForCodec(codecString) {\n if (!codecString || typeof codecString !== 'string') {\n return;\n }\n\n var codecs = codecString.toLowerCase().split(',').map(function (c) {\n return translateLegacyCodec(c.trim());\n }); // default to video type\n\n var type = 'video'; // only change to audio type if the only codec we have is\n // audio\n\n if (codecs.length === 1 && isAudioCodec(codecs[0])) {\n type = 'audio';\n } else if (codecs.length === 1 && isTextCodec(codecs[0])) {\n // text uses application/ for now\n type = 'application';\n } // default the container to mp4\n\n\n var container = 'mp4'; // every codec must be able to go into the container\n // for that container to be the correct one\n\n if (codecs.every(function (c) {\n return regexs.mp4.test(c);\n })) {\n container = 'mp4';\n } else if (codecs.every(function (c) {\n return regexs.webm.test(c);\n })) {\n container = 'webm';\n } else if (codecs.every(function (c) {\n return regexs.ogg.test(c);\n })) {\n container = 'ogg';\n }\n\n return type + \"/\" + container + \";codecs=\\\"\" + codecString + \"\\\"\";\n};\nexport var browserSupportsCodec = function browserSupportsCodec(codecString) {\n if (codecString === void 0) {\n codecString = '';\n }\n\n return window.MediaSource && window.MediaSource.isTypeSupported && window.MediaSource.isTypeSupported(getMimeForCodec(codecString)) || false;\n};\nexport var muxerSupportsCodec = function muxerSupportsCodec(codecString) {\n if (codecString === void 0) {\n codecString = '';\n }\n\n return codecString.toLowerCase().split(',').every(function (codec) {\n codec = codec.trim(); // any match is supported.\n\n for (var i = 0; i < upperMediaTypes.length; i++) {\n var type = upperMediaTypes[i];\n\n if (regexs[\"muxer\" + type].test(codec)) {\n return true;\n }\n }\n\n return false;\n });\n};\nexport var DEFAULT_AUDIO_CODEC = 'mp4a.40.2';\nexport var DEFAULT_VIDEO_CODEC = 'avc1.4d400d';","var MPEGURL_REGEX = /^(audio|video|application)\\/(x-|vnd\\.apple\\.)?mpegurl/i;\nvar DASH_REGEX = /^application\\/dash\\+xml/i;\n/**\n * Returns a string that describes the type of source based on a video source object's\n * media type.\n *\n * @see {@link https://dev.w3.org/html5/pf-summary/video.html#dom-source-type|Source Type}\n *\n * @param {string} type\n * Video source object media type\n * @return {('hls'|'dash'|'vhs-json'|null)}\n * VHS source type string\n */\n\nexport var simpleTypeFromSourceType = function simpleTypeFromSourceType(type) {\n if (MPEGURL_REGEX.test(type)) {\n return 'hls';\n }\n\n if (DASH_REGEX.test(type)) {\n return 'dash';\n } // Denotes the special case of a manifest object passed to http-streaming instead of a\n // source URL.\n //\n // See https://en.wikipedia.org/wiki/Media_type for details on specifying media types.\n //\n // In this case, vnd stands for vendor, video.js for the organization, VHS for this\n // project, and the +json suffix identifies the structure of the media type.\n\n\n if (type === 'application/vnd.videojs.vhs+json') {\n return 'vhs-json';\n }\n\n return null;\n};","import { toUint8, bytesMatch } from './byte-helpers.js';\nvar ID3 = toUint8([0x49, 0x44, 0x33]);\nexport var getId3Size = function getId3Size(bytes, offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n bytes = toUint8(bytes);\n var flags = bytes[offset + 5];\n var returnSize = bytes[offset + 6] << 21 | bytes[offset + 7] << 14 | bytes[offset + 8] << 7 | bytes[offset + 9];\n var footerPresent = (flags & 16) >> 4;\n\n if (footerPresent) {\n return returnSize + 20;\n }\n\n return returnSize + 10;\n};\nexport var getId3Offset = function getId3Offset(bytes, offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n bytes = toUint8(bytes);\n\n if (bytes.length - offset < 10 || !bytesMatch(bytes, ID3, {\n offset: offset\n })) {\n return offset;\n }\n\n offset += getId3Size(bytes, offset); // recursive check for id3 tags as some files\n // have multiple ID3 tag sections even though\n // they should not.\n\n return getId3Offset(bytes, offset);\n};","export var OPUS_HEAD = new Uint8Array([// O, p, u, s\n0x4f, 0x70, 0x75, 0x73, // H, e, a, d\n0x48, 0x65, 0x61, 0x64]); // https://wiki.xiph.org/OggOpus\n// https://vfrmaniac.fushizen.eu/contents/opus_in_isobmff.html\n// https://opus-codec.org/docs/opusfile_api-0.7/structOpusHead.html\n\nexport var parseOpusHead = function parseOpusHead(bytes) {\n var view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n var version = view.getUint8(0); // version 0, from mp4, does not use littleEndian.\n\n var littleEndian = version !== 0;\n var config = {\n version: version,\n channels: view.getUint8(1),\n preSkip: view.getUint16(2, littleEndian),\n sampleRate: view.getUint32(4, littleEndian),\n outputGain: view.getUint16(8, littleEndian),\n channelMappingFamily: view.getUint8(10)\n };\n\n if (config.channelMappingFamily > 0 && bytes.length > 10) {\n config.streamCount = view.getUint8(11);\n config.twoChannelStreamCount = view.getUint8(12);\n config.channelMapping = [];\n\n for (var c = 0; c < config.channels; c++) {\n config.channelMapping.push(view.getUint8(13 + c));\n }\n }\n\n return config;\n};\nexport var setOpusHead = function setOpusHead(config) {\n var size = config.channelMappingFamily <= 0 ? 11 : 12 + config.channels;\n var view = new DataView(new ArrayBuffer(size));\n var littleEndian = config.version !== 0;\n view.setUint8(0, config.version);\n view.setUint8(1, config.channels);\n view.setUint16(2, config.preSkip, littleEndian);\n view.setUint32(4, config.sampleRate, littleEndian);\n view.setUint16(8, config.outputGain, littleEndian);\n view.setUint8(10, config.channelMappingFamily);\n\n if (config.channelMappingFamily > 0) {\n view.setUint8(11, config.streamCount);\n config.channelMapping.foreach(function (cm, i) {\n view.setUint8(12 + i, cm);\n });\n }\n\n return new Uint8Array(view.buffer);\n};","import { toUint8, bytesToNumber, bytesMatch, bytesToString, numberToBytes, padStart } from './byte-helpers';\nimport { getAvcCodec, getHvcCodec, getAv1Codec } from './codec-helpers.js'; // relevant specs for this parser:\n// https://matroska-org.github.io/libebml/specs.html\n// https://www.matroska.org/technical/elements.html\n// https://www.webmproject.org/docs/container/\n\nexport var EBML_TAGS = {\n EBML: toUint8([0x1A, 0x45, 0xDF, 0xA3]),\n DocType: toUint8([0x42, 0x82]),\n Segment: toUint8([0x18, 0x53, 0x80, 0x67]),\n SegmentInfo: toUint8([0x15, 0x49, 0xA9, 0x66]),\n Tracks: toUint8([0x16, 0x54, 0xAE, 0x6B]),\n Track: toUint8([0xAE]),\n TrackNumber: toUint8([0xd7]),\n DefaultDuration: toUint8([0x23, 0xe3, 0x83]),\n TrackEntry: toUint8([0xAE]),\n TrackType: toUint8([0x83]),\n FlagDefault: toUint8([0x88]),\n CodecID: toUint8([0x86]),\n CodecPrivate: toUint8([0x63, 0xA2]),\n VideoTrack: toUint8([0xe0]),\n AudioTrack: toUint8([0xe1]),\n // Not used yet, but will be used for live webm/mkv\n // see https://www.matroska.org/technical/basics.html#block-structure\n // see https://www.matroska.org/technical/basics.html#simpleblock-structure\n Cluster: toUint8([0x1F, 0x43, 0xB6, 0x75]),\n Timestamp: toUint8([0xE7]),\n TimestampScale: toUint8([0x2A, 0xD7, 0xB1]),\n BlockGroup: toUint8([0xA0]),\n BlockDuration: toUint8([0x9B]),\n Block: toUint8([0xA1]),\n SimpleBlock: toUint8([0xA3])\n};\n/**\n * This is a simple table to determine the length\n * of things in ebml. The length is one based (starts at 1,\n * rather than zero) and for every zero bit before a one bit\n * we add one to length. We also need this table because in some\n * case we have to xor all the length bits from another value.\n */\n\nvar LENGTH_TABLE = [128, 64, 32, 16, 8, 4, 2, 1];\n\nvar getLength = function getLength(byte) {\n var len = 1;\n\n for (var i = 0; i < LENGTH_TABLE.length; i++) {\n if (byte & LENGTH_TABLE[i]) {\n break;\n }\n\n len++;\n }\n\n return len;\n}; // length in ebml is stored in the first 4 to 8 bits\n// of the first byte. 4 for the id length and 8 for the\n// data size length. Length is measured by converting the number to binary\n// then 1 + the number of zeros before a 1 is encountered starting\n// from the left.\n\n\nvar getvint = function getvint(bytes, offset, removeLength, signed) {\n if (removeLength === void 0) {\n removeLength = true;\n }\n\n if (signed === void 0) {\n signed = false;\n }\n\n var length = getLength(bytes[offset]);\n var valueBytes = bytes.subarray(offset, offset + length); // NOTE that we do **not** subarray here because we need to copy these bytes\n // as they will be modified below to remove the dataSizeLen bits and we do not\n // want to modify the original data. normally we could just call slice on\n // uint8array but ie 11 does not support that...\n\n if (removeLength) {\n valueBytes = Array.prototype.slice.call(bytes, offset, offset + length);\n valueBytes[0] ^= LENGTH_TABLE[length - 1];\n }\n\n return {\n length: length,\n value: bytesToNumber(valueBytes, {\n signed: signed\n }),\n bytes: valueBytes\n };\n};\n\nvar normalizePath = function normalizePath(path) {\n if (typeof path === 'string') {\n return path.match(/.{1,2}/g).map(function (p) {\n return normalizePath(p);\n });\n }\n\n if (typeof path === 'number') {\n return numberToBytes(path);\n }\n\n return path;\n};\n\nvar normalizePaths = function normalizePaths(paths) {\n if (!Array.isArray(paths)) {\n return [normalizePath(paths)];\n }\n\n return paths.map(function (p) {\n return normalizePath(p);\n });\n};\n\nvar getInfinityDataSize = function getInfinityDataSize(id, bytes, offset) {\n if (offset >= bytes.length) {\n return bytes.length;\n }\n\n var innerid = getvint(bytes, offset, false);\n\n if (bytesMatch(id.bytes, innerid.bytes)) {\n return offset;\n }\n\n var dataHeader = getvint(bytes, offset + innerid.length);\n return getInfinityDataSize(id, bytes, offset + dataHeader.length + dataHeader.value + innerid.length);\n};\n/**\n * Notes on the EBLM format.\n *\n * EBLM uses \"vints\" tags. Every vint tag contains\n * two parts\n *\n * 1. The length from the first byte. You get this by\n * converting the byte to binary and counting the zeros\n * before a 1. Then you add 1 to that. Examples\n * 00011111 = length 4 because there are 3 zeros before a 1.\n * 00100000 = length 3 because there are 2 zeros before a 1.\n * 00000011 = length 7 because there are 6 zeros before a 1.\n *\n * 2. The bits used for length are removed from the first byte\n * Then all the bytes are merged into a value. NOTE: this\n * is not the case for id ebml tags as there id includes\n * length bits.\n *\n */\n\n\nexport var findEbml = function findEbml(bytes, paths) {\n paths = normalizePaths(paths);\n bytes = toUint8(bytes);\n var results = [];\n\n if (!paths.length) {\n return results;\n }\n\n var i = 0;\n\n while (i < bytes.length) {\n var id = getvint(bytes, i, false);\n var dataHeader = getvint(bytes, i + id.length);\n var dataStart = i + id.length + dataHeader.length; // dataSize is unknown or this is a live stream\n\n if (dataHeader.value === 0x7f) {\n dataHeader.value = getInfinityDataSize(id, bytes, dataStart);\n\n if (dataHeader.value !== bytes.length) {\n dataHeader.value -= dataStart;\n }\n }\n\n var dataEnd = dataStart + dataHeader.value > bytes.length ? bytes.length : dataStart + dataHeader.value;\n var data = bytes.subarray(dataStart, dataEnd);\n\n if (bytesMatch(paths[0], id.bytes)) {\n if (paths.length === 1) {\n // this is the end of the paths and we've found the tag we were\n // looking for\n results.push(data);\n } else {\n // recursively search for the next tag inside of the data\n // of this one\n results = results.concat(findEbml(data, paths.slice(1)));\n }\n }\n\n var totalLength = id.length + dataHeader.length + data.length; // move past this tag entirely, we are not looking for it\n\n i += totalLength;\n }\n\n return results;\n}; // see https://www.matroska.org/technical/basics.html#block-structure\n\nexport var decodeBlock = function decodeBlock(block, type, timestampScale, clusterTimestamp) {\n var duration;\n\n if (type === 'group') {\n duration = findEbml(block, [EBML_TAGS.BlockDuration])[0];\n\n if (duration) {\n duration = bytesToNumber(duration);\n duration = 1 / timestampScale * duration * timestampScale / 1000;\n }\n\n block = findEbml(block, [EBML_TAGS.Block])[0];\n type = 'block'; // treat data as a block after this point\n }\n\n var dv = new DataView(block.buffer, block.byteOffset, block.byteLength);\n var trackNumber = getvint(block, 0);\n var timestamp = dv.getInt16(trackNumber.length, false);\n var flags = block[trackNumber.length + 2];\n var data = block.subarray(trackNumber.length + 3); // pts/dts in seconds\n\n var ptsdts = 1 / timestampScale * (clusterTimestamp + timestamp) * timestampScale / 1000; // return the frame\n\n var parsed = {\n duration: duration,\n trackNumber: trackNumber.value,\n keyframe: type === 'simple' && flags >> 7 === 1,\n invisible: (flags & 0x08) >> 3 === 1,\n lacing: (flags & 0x06) >> 1,\n discardable: type === 'simple' && (flags & 0x01) === 1,\n frames: [],\n pts: ptsdts,\n dts: ptsdts,\n timestamp: timestamp\n };\n\n if (!parsed.lacing) {\n parsed.frames.push(data);\n return parsed;\n }\n\n var numberOfFrames = data[0] + 1;\n var frameSizes = [];\n var offset = 1; // Fixed\n\n if (parsed.lacing === 2) {\n var sizeOfFrame = (data.length - offset) / numberOfFrames;\n\n for (var i = 0; i < numberOfFrames; i++) {\n frameSizes.push(sizeOfFrame);\n }\n } // xiph\n\n\n if (parsed.lacing === 1) {\n for (var _i = 0; _i < numberOfFrames - 1; _i++) {\n var size = 0;\n\n do {\n size += data[offset];\n offset++;\n } while (data[offset - 1] === 0xFF);\n\n frameSizes.push(size);\n }\n } // ebml\n\n\n if (parsed.lacing === 3) {\n // first vint is unsinged\n // after that vints are singed and\n // based on a compounding size\n var _size = 0;\n\n for (var _i2 = 0; _i2 < numberOfFrames - 1; _i2++) {\n var vint = _i2 === 0 ? getvint(data, offset) : getvint(data, offset, true, true);\n _size += vint.value;\n frameSizes.push(_size);\n offset += vint.length;\n }\n }\n\n frameSizes.forEach(function (size) {\n parsed.frames.push(data.subarray(offset, offset + size));\n offset += size;\n });\n return parsed;\n}; // VP9 Codec Feature Metadata (CodecPrivate)\n// https://www.webmproject.org/docs/container/\n\nvar parseVp9Private = function parseVp9Private(bytes) {\n var i = 0;\n var params = {};\n\n while (i < bytes.length) {\n var id = bytes[i] & 0x7f;\n var len = bytes[i + 1];\n var val = void 0;\n\n if (len === 1) {\n val = bytes[i + 2];\n } else {\n val = bytes.subarray(i + 2, i + 2 + len);\n }\n\n if (id === 1) {\n params.profile = val;\n } else if (id === 2) {\n params.level = val;\n } else if (id === 3) {\n params.bitDepth = val;\n } else if (id === 4) {\n params.chromaSubsampling = val;\n } else {\n params[id] = val;\n }\n\n i += 2 + len;\n }\n\n return params;\n};\n\nexport var parseTracks = function parseTracks(bytes) {\n bytes = toUint8(bytes);\n var decodedTracks = [];\n var tracks = findEbml(bytes, [EBML_TAGS.Segment, EBML_TAGS.Tracks, EBML_TAGS.Track]);\n\n if (!tracks.length) {\n tracks = findEbml(bytes, [EBML_TAGS.Tracks, EBML_TAGS.Track]);\n }\n\n if (!tracks.length) {\n tracks = findEbml(bytes, [EBML_TAGS.Track]);\n }\n\n if (!tracks.length) {\n return decodedTracks;\n }\n\n tracks.forEach(function (track) {\n var trackType = findEbml(track, EBML_TAGS.TrackType)[0];\n\n if (!trackType || !trackType.length) {\n return;\n } // 1 is video, 2 is audio, 17 is subtitle\n // other values are unimportant in this context\n\n\n if (trackType[0] === 1) {\n trackType = 'video';\n } else if (trackType[0] === 2) {\n trackType = 'audio';\n } else if (trackType[0] === 17) {\n trackType = 'subtitle';\n } else {\n return;\n } // todo parse language\n\n\n var decodedTrack = {\n rawCodec: bytesToString(findEbml(track, [EBML_TAGS.CodecID])[0]),\n type: trackType,\n codecPrivate: findEbml(track, [EBML_TAGS.CodecPrivate])[0],\n number: bytesToNumber(findEbml(track, [EBML_TAGS.TrackNumber])[0]),\n defaultDuration: bytesToNumber(findEbml(track, [EBML_TAGS.DefaultDuration])[0]),\n default: findEbml(track, [EBML_TAGS.FlagDefault])[0],\n rawData: track\n };\n var codec = '';\n\n if (/V_MPEG4\\/ISO\\/AVC/.test(decodedTrack.rawCodec)) {\n codec = \"avc1.\" + getAvcCodec(decodedTrack.codecPrivate);\n } else if (/V_MPEGH\\/ISO\\/HEVC/.test(decodedTrack.rawCodec)) {\n codec = \"hev1.\" + getHvcCodec(decodedTrack.codecPrivate);\n } else if (/V_MPEG4\\/ISO\\/ASP/.test(decodedTrack.rawCodec)) {\n if (decodedTrack.codecPrivate) {\n codec = 'mp4v.20.' + decodedTrack.codecPrivate[4].toString();\n } else {\n codec = 'mp4v.20.9';\n }\n } else if (/^V_THEORA/.test(decodedTrack.rawCodec)) {\n codec = 'theora';\n } else if (/^V_VP8/.test(decodedTrack.rawCodec)) {\n codec = 'vp8';\n } else if (/^V_VP9/.test(decodedTrack.rawCodec)) {\n if (decodedTrack.codecPrivate) {\n var _parseVp9Private = parseVp9Private(decodedTrack.codecPrivate),\n profile = _parseVp9Private.profile,\n level = _parseVp9Private.level,\n bitDepth = _parseVp9Private.bitDepth,\n chromaSubsampling = _parseVp9Private.chromaSubsampling;\n\n codec = 'vp09.';\n codec += padStart(profile, 2, '0') + \".\";\n codec += padStart(level, 2, '0') + \".\";\n codec += padStart(bitDepth, 2, '0') + \".\";\n codec += \"\" + padStart(chromaSubsampling, 2, '0'); // Video -> Colour -> Ebml name\n\n var matrixCoefficients = findEbml(track, [0xE0, [0x55, 0xB0], [0x55, 0xB1]])[0] || [];\n var videoFullRangeFlag = findEbml(track, [0xE0, [0x55, 0xB0], [0x55, 0xB9]])[0] || [];\n var transferCharacteristics = findEbml(track, [0xE0, [0x55, 0xB0], [0x55, 0xBA]])[0] || [];\n var colourPrimaries = findEbml(track, [0xE0, [0x55, 0xB0], [0x55, 0xBB]])[0] || []; // if we find any optional codec parameter specify them all.\n\n if (matrixCoefficients.length || videoFullRangeFlag.length || transferCharacteristics.length || colourPrimaries.length) {\n codec += \".\" + padStart(colourPrimaries[0], 2, '0');\n codec += \".\" + padStart(transferCharacteristics[0], 2, '0');\n codec += \".\" + padStart(matrixCoefficients[0], 2, '0');\n codec += \".\" + padStart(videoFullRangeFlag[0], 2, '0');\n }\n } else {\n codec = 'vp9';\n }\n } else if (/^V_AV1/.test(decodedTrack.rawCodec)) {\n codec = \"av01.\" + getAv1Codec(decodedTrack.codecPrivate);\n } else if (/A_ALAC/.test(decodedTrack.rawCodec)) {\n codec = 'alac';\n } else if (/A_MPEG\\/L2/.test(decodedTrack.rawCodec)) {\n codec = 'mp2';\n } else if (/A_MPEG\\/L3/.test(decodedTrack.rawCodec)) {\n codec = 'mp3';\n } else if (/^A_AAC/.test(decodedTrack.rawCodec)) {\n if (decodedTrack.codecPrivate) {\n codec = 'mp4a.40.' + (decodedTrack.codecPrivate[0] >>> 3).toString();\n } else {\n codec = 'mp4a.40.2';\n }\n } else if (/^A_AC3/.test(decodedTrack.rawCodec)) {\n codec = 'ac-3';\n } else if (/^A_PCM/.test(decodedTrack.rawCodec)) {\n codec = 'pcm';\n } else if (/^A_MS\\/ACM/.test(decodedTrack.rawCodec)) {\n codec = 'speex';\n } else if (/^A_EAC3/.test(decodedTrack.rawCodec)) {\n codec = 'ec-3';\n } else if (/^A_VORBIS/.test(decodedTrack.rawCodec)) {\n codec = 'vorbis';\n } else if (/^A_FLAC/.test(decodedTrack.rawCodec)) {\n codec = 'flac';\n } else if (/^A_OPUS/.test(decodedTrack.rawCodec)) {\n codec = 'opus';\n }\n\n decodedTrack.codec = codec;\n decodedTracks.push(decodedTrack);\n });\n return decodedTracks.sort(function (a, b) {\n return a.number - b.number;\n });\n};\nexport var parseData = function parseData(data, tracks) {\n var allBlocks = [];\n var segment = findEbml(data, [EBML_TAGS.Segment])[0];\n var timestampScale = findEbml(segment, [EBML_TAGS.SegmentInfo, EBML_TAGS.TimestampScale])[0]; // in nanoseconds, defaults to 1ms\n\n if (timestampScale && timestampScale.length) {\n timestampScale = bytesToNumber(timestampScale);\n } else {\n timestampScale = 1000000;\n }\n\n var clusters = findEbml(segment, [EBML_TAGS.Cluster]);\n\n if (!tracks) {\n tracks = parseTracks(segment);\n }\n\n clusters.forEach(function (cluster, ci) {\n var simpleBlocks = findEbml(cluster, [EBML_TAGS.SimpleBlock]).map(function (b) {\n return {\n type: 'simple',\n data: b\n };\n });\n var blockGroups = findEbml(cluster, [EBML_TAGS.BlockGroup]).map(function (b) {\n return {\n type: 'group',\n data: b\n };\n });\n var timestamp = findEbml(cluster, [EBML_TAGS.Timestamp])[0] || 0;\n\n if (timestamp && timestamp.length) {\n timestamp = bytesToNumber(timestamp);\n } // get all blocks then sort them into the correct order\n\n\n var blocks = simpleBlocks.concat(blockGroups).sort(function (a, b) {\n return a.data.byteOffset - b.data.byteOffset;\n });\n blocks.forEach(function (block, bi) {\n var decoded = decodeBlock(block.data, block.type, timestampScale, timestamp);\n allBlocks.push(decoded);\n });\n });\n return {\n tracks: tracks,\n blocks: allBlocks\n };\n};","import { bytesMatch, toUint8 } from './byte-helpers.js';\nexport var NAL_TYPE_ONE = toUint8([0x00, 0x00, 0x00, 0x01]);\nexport var NAL_TYPE_TWO = toUint8([0x00, 0x00, 0x01]);\nexport var EMULATION_PREVENTION = toUint8([0x00, 0x00, 0x03]);\n/**\n * Expunge any \"Emulation Prevention\" bytes from a \"Raw Byte\n * Sequence Payload\"\n *\n * @param data {Uint8Array} the bytes of a RBSP from a NAL\n * unit\n * @return {Uint8Array} the RBSP without any Emulation\n * Prevention Bytes\n */\n\nexport var discardEmulationPreventionBytes = function discardEmulationPreventionBytes(bytes) {\n var positions = [];\n var i = 1; // Find all `Emulation Prevention Bytes`\n\n while (i < bytes.length - 2) {\n if (bytesMatch(bytes.subarray(i, i + 3), EMULATION_PREVENTION)) {\n positions.push(i + 2);\n i++;\n }\n\n i++;\n } // If no Emulation Prevention Bytes were found just return the original\n // array\n\n\n if (positions.length === 0) {\n return bytes;\n } // Create a new array to hold the NAL unit data\n\n\n var newLength = bytes.length - positions.length;\n var newData = new Uint8Array(newLength);\n var sourceIndex = 0;\n\n for (i = 0; i < newLength; sourceIndex++, i++) {\n if (sourceIndex === positions[0]) {\n // Skip this byte\n sourceIndex++; // Remove this position index\n\n positions.shift();\n }\n\n newData[i] = bytes[sourceIndex];\n }\n\n return newData;\n};\nexport var findNal = function findNal(bytes, dataType, types, nalLimit) {\n if (nalLimit === void 0) {\n nalLimit = Infinity;\n }\n\n bytes = toUint8(bytes);\n types = [].concat(types);\n var i = 0;\n var nalStart;\n var nalsFound = 0; // keep searching until:\n // we reach the end of bytes\n // we reach the maximum number of nals they want to seach\n // NOTE: that we disregard nalLimit when we have found the start\n // of the nal we want so that we can find the end of the nal we want.\n\n while (i < bytes.length && (nalsFound < nalLimit || nalStart)) {\n var nalOffset = void 0;\n\n if (bytesMatch(bytes.subarray(i), NAL_TYPE_ONE)) {\n nalOffset = 4;\n } else if (bytesMatch(bytes.subarray(i), NAL_TYPE_TWO)) {\n nalOffset = 3;\n } // we are unsynced,\n // find the next nal unit\n\n\n if (!nalOffset) {\n i++;\n continue;\n }\n\n nalsFound++;\n\n if (nalStart) {\n return discardEmulationPreventionBytes(bytes.subarray(nalStart, i));\n }\n\n var nalType = void 0;\n\n if (dataType === 'h264') {\n nalType = bytes[i + nalOffset] & 0x1f;\n } else if (dataType === 'h265') {\n nalType = bytes[i + nalOffset] >> 1 & 0x3f;\n }\n\n if (types.indexOf(nalType) !== -1) {\n nalStart = i + nalOffset;\n } // nal header is 1 length for h264, and 2 for h265\n\n\n i += nalOffset + (dataType === 'h264' ? 1 : 2);\n }\n\n return bytes.subarray(0, 0);\n};\nexport var findH264Nal = function findH264Nal(bytes, type, nalLimit) {\n return findNal(bytes, 'h264', type, nalLimit);\n};\nexport var findH265Nal = function findH265Nal(bytes, type, nalLimit) {\n return findNal(bytes, 'h265', type, nalLimit);\n};","import { toUint8, bytesMatch } from './byte-helpers.js';\nimport { findBox } from './mp4-helpers.js';\nimport { findEbml, EBML_TAGS } from './ebml-helpers.js';\nimport { getId3Offset } from './id3-helpers.js';\nimport { findH264Nal, findH265Nal } from './nal-helpers.js';\nvar CONSTANTS = {\n // \"webm\" string literal in hex\n 'webm': toUint8([0x77, 0x65, 0x62, 0x6d]),\n // \"matroska\" string literal in hex\n 'matroska': toUint8([0x6d, 0x61, 0x74, 0x72, 0x6f, 0x73, 0x6b, 0x61]),\n // \"fLaC\" string literal in hex\n 'flac': toUint8([0x66, 0x4c, 0x61, 0x43]),\n // \"OggS\" string literal in hex\n 'ogg': toUint8([0x4f, 0x67, 0x67, 0x53]),\n // ac-3 sync byte, also works for ec-3 as that is simply a codec\n // of ac-3\n 'ac3': toUint8([0x0b, 0x77]),\n // \"RIFF\" string literal in hex used for wav and avi\n 'riff': toUint8([0x52, 0x49, 0x46, 0x46]),\n // \"AVI\" string literal in hex\n 'avi': toUint8([0x41, 0x56, 0x49]),\n // \"WAVE\" string literal in hex\n 'wav': toUint8([0x57, 0x41, 0x56, 0x45]),\n // \"ftyp3g\" string literal in hex\n '3gp': toUint8([0x66, 0x74, 0x79, 0x70, 0x33, 0x67]),\n // \"ftyp\" string literal in hex\n 'mp4': toUint8([0x66, 0x74, 0x79, 0x70]),\n // \"styp\" string literal in hex\n 'fmp4': toUint8([0x73, 0x74, 0x79, 0x70]),\n // \"ftypqt\" string literal in hex\n 'mov': toUint8([0x66, 0x74, 0x79, 0x70, 0x71, 0x74]),\n // moov string literal in hex\n 'moov': toUint8([0x6D, 0x6F, 0x6F, 0x76]),\n // moof string literal in hex\n 'moof': toUint8([0x6D, 0x6F, 0x6F, 0x66])\n};\nvar _isLikely = {\n aac: function aac(bytes) {\n var offset = getId3Offset(bytes);\n return bytesMatch(bytes, [0xFF, 0x10], {\n offset: offset,\n mask: [0xFF, 0x16]\n });\n },\n mp3: function mp3(bytes) {\n var offset = getId3Offset(bytes);\n return bytesMatch(bytes, [0xFF, 0x02], {\n offset: offset,\n mask: [0xFF, 0x06]\n });\n },\n webm: function webm(bytes) {\n var docType = findEbml(bytes, [EBML_TAGS.EBML, EBML_TAGS.DocType])[0]; // check if DocType EBML tag is webm\n\n return bytesMatch(docType, CONSTANTS.webm);\n },\n mkv: function mkv(bytes) {\n var docType = findEbml(bytes, [EBML_TAGS.EBML, EBML_TAGS.DocType])[0]; // check if DocType EBML tag is matroska\n\n return bytesMatch(docType, CONSTANTS.matroska);\n },\n mp4: function mp4(bytes) {\n // if this file is another base media file format, it is not mp4\n if (_isLikely['3gp'](bytes) || _isLikely.mov(bytes)) {\n return false;\n } // if this file starts with a ftyp or styp box its mp4\n\n\n if (bytesMatch(bytes, CONSTANTS.mp4, {\n offset: 4\n }) || bytesMatch(bytes, CONSTANTS.fmp4, {\n offset: 4\n })) {\n return true;\n } // if this file starts with a moof/moov box its mp4\n\n\n if (bytesMatch(bytes, CONSTANTS.moof, {\n offset: 4\n }) || bytesMatch(bytes, CONSTANTS.moov, {\n offset: 4\n })) {\n return true;\n }\n },\n mov: function mov(bytes) {\n return bytesMatch(bytes, CONSTANTS.mov, {\n offset: 4\n });\n },\n '3gp': function gp(bytes) {\n return bytesMatch(bytes, CONSTANTS['3gp'], {\n offset: 4\n });\n },\n ac3: function ac3(bytes) {\n var offset = getId3Offset(bytes);\n return bytesMatch(bytes, CONSTANTS.ac3, {\n offset: offset\n });\n },\n ts: function ts(bytes) {\n if (bytes.length < 189 && bytes.length >= 1) {\n return bytes[0] === 0x47;\n }\n\n var i = 0; // check the first 376 bytes for two matching sync bytes\n\n while (i + 188 < bytes.length && i < 188) {\n if (bytes[i] === 0x47 && bytes[i + 188] === 0x47) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n flac: function flac(bytes) {\n var offset = getId3Offset(bytes);\n return bytesMatch(bytes, CONSTANTS.flac, {\n offset: offset\n });\n },\n ogg: function ogg(bytes) {\n return bytesMatch(bytes, CONSTANTS.ogg);\n },\n avi: function avi(bytes) {\n return bytesMatch(bytes, CONSTANTS.riff) && bytesMatch(bytes, CONSTANTS.avi, {\n offset: 8\n });\n },\n wav: function wav(bytes) {\n return bytesMatch(bytes, CONSTANTS.riff) && bytesMatch(bytes, CONSTANTS.wav, {\n offset: 8\n });\n },\n 'h264': function h264(bytes) {\n // find seq_parameter_set_rbsp\n return findH264Nal(bytes, 7, 3).length;\n },\n 'h265': function h265(bytes) {\n // find video_parameter_set_rbsp or seq_parameter_set_rbsp\n return findH265Nal(bytes, [32, 33], 3).length;\n }\n}; // get all the isLikely functions\n// but make sure 'ts' is above h264 and h265\n// but below everything else as it is the least specific\n\nvar isLikelyTypes = Object.keys(_isLikely) // remove ts, h264, h265\n.filter(function (t) {\n return t !== 'ts' && t !== 'h264' && t !== 'h265';\n}) // add it back to the bottom\n.concat(['ts', 'h264', 'h265']); // make sure we are dealing with uint8 data.\n\nisLikelyTypes.forEach(function (type) {\n var isLikelyFn = _isLikely[type];\n\n _isLikely[type] = function (bytes) {\n return isLikelyFn(toUint8(bytes));\n };\n}); // export after wrapping\n\nexport var isLikely = _isLikely; // A useful list of file signatures can be found here\n// https://en.wikipedia.org/wiki/List_of_file_signatures\n\nexport var detectContainerForBytes = function detectContainerForBytes(bytes) {\n bytes = toUint8(bytes);\n\n for (var i = 0; i < isLikelyTypes.length; i++) {\n var type = isLikelyTypes[i];\n\n if (isLikely[type](bytes)) {\n return type;\n }\n }\n\n return '';\n}; // fmp4 is not a container\n\nexport var isLikelyFmp4MediaSegment = function isLikelyFmp4MediaSegment(bytes) {\n return findBox(bytes, ['moof']).length > 0;\n};","/**\n * @license\n * Video.js 7.20.1 \n * Copyright Brightcove, Inc. \n * Available under Apache License Version 2.0\n * \n *\n * Includes vtt.js \n * Available under Apache License Version 2.0\n * \n */\n\nimport window$1 from 'global/window';\nimport document from 'global/document';\nimport _extends from '@babel/runtime/helpers/extends';\nimport keycode from 'keycode';\nimport _assertThisInitialized from '@babel/runtime/helpers/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/inheritsLoose';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport XHR from '@videojs/xhr';\nimport vtt from 'videojs-vtt.js';\nimport _construct from '@babel/runtime/helpers/construct';\nimport _inherits from '@babel/runtime/helpers/inherits';\nimport _resolveUrl from '@videojs/vhs-utils/es/resolve-url.js';\nimport { Parser } from 'm3u8-parser';\nimport { browserSupportsCodec, DEFAULT_VIDEO_CODEC, DEFAULT_AUDIO_CODEC, muxerSupportsCodec, parseCodecs, translateLegacyCodec, codecsFromDefault, getMimeForCodec, isAudioCodec } from '@videojs/vhs-utils/es/codecs.js';\nimport { simpleTypeFromSourceType } from '@videojs/vhs-utils/es/media-types.js';\nimport { isArrayBufferView, concatTypedArrays, stringToBytes, toUint8 } from '@videojs/vhs-utils/es/byte-helpers';\nimport { generateSidxKey, parseUTCTiming, parse, addSidxSegmentsToPlaylist } from 'mpd-parser';\nimport parseSidx from 'mux.js/lib/tools/parse-sidx';\nimport { getId3Offset } from '@videojs/vhs-utils/es/id3-helpers';\nimport { detectContainerForBytes, isLikelyFmp4MediaSegment } from '@videojs/vhs-utils/es/containers';\nimport { ONE_SECOND_IN_TS } from 'mux.js/lib/utils/clock';\n\nvar version$5 = \"7.20.1\";\n\n/**\n * An Object that contains lifecycle hooks as keys which point to an array\n * of functions that are run when a lifecycle is triggered\n *\n * @private\n */\nvar hooks_ = {};\n/**\n * Get a list of hooks for a specific lifecycle\n *\n * @param {string} type\n * the lifecyle to get hooks from\n *\n * @param {Function|Function[]} [fn]\n * Optionally add a hook (or hooks) to the lifecycle that your are getting.\n *\n * @return {Array}\n * an array of hooks, or an empty array if there are none.\n */\n\nvar hooks = function hooks(type, fn) {\n hooks_[type] = hooks_[type] || [];\n\n if (fn) {\n hooks_[type] = hooks_[type].concat(fn);\n }\n\n return hooks_[type];\n};\n/**\n * Add a function hook to a specific videojs lifecycle.\n *\n * @param {string} type\n * the lifecycle to hook the function to.\n *\n * @param {Function|Function[]}\n * The function or array of functions to attach.\n */\n\n\nvar hook = function hook(type, fn) {\n hooks(type, fn);\n};\n/**\n * Remove a hook from a specific videojs lifecycle.\n *\n * @param {string} type\n * the lifecycle that the function hooked to\n *\n * @param {Function} fn\n * The hooked function to remove\n *\n * @return {boolean}\n * The function that was removed or undef\n */\n\n\nvar removeHook = function removeHook(type, fn) {\n var index = hooks(type).indexOf(fn);\n\n if (index <= -1) {\n return false;\n }\n\n hooks_[type] = hooks_[type].slice();\n hooks_[type].splice(index, 1);\n return true;\n};\n/**\n * Add a function hook that will only run once to a specific videojs lifecycle.\n *\n * @param {string} type\n * the lifecycle to hook the function to.\n *\n * @param {Function|Function[]}\n * The function or array of functions to attach.\n */\n\n\nvar hookOnce = function hookOnce(type, fn) {\n hooks(type, [].concat(fn).map(function (original) {\n var wrapper = function wrapper() {\n removeHook(type, wrapper);\n return original.apply(void 0, arguments);\n };\n\n return wrapper;\n }));\n};\n\n/**\n * @file fullscreen-api.js\n * @module fullscreen-api\n * @private\n */\n/**\n * Store the browser-specific methods for the fullscreen API.\n *\n * @type {Object}\n * @see [Specification]{@link https://fullscreen.spec.whatwg.org}\n * @see [Map Approach From Screenfull.js]{@link https://github.com/sindresorhus/screenfull.js}\n */\n\nvar FullscreenApi = {\n prefixed: true\n}; // browser API methods\n\nvar apiMap = [['requestFullscreen', 'exitFullscreen', 'fullscreenElement', 'fullscreenEnabled', 'fullscreenchange', 'fullscreenerror', 'fullscreen'], // WebKit\n['webkitRequestFullscreen', 'webkitExitFullscreen', 'webkitFullscreenElement', 'webkitFullscreenEnabled', 'webkitfullscreenchange', 'webkitfullscreenerror', '-webkit-full-screen'], // Mozilla\n['mozRequestFullScreen', 'mozCancelFullScreen', 'mozFullScreenElement', 'mozFullScreenEnabled', 'mozfullscreenchange', 'mozfullscreenerror', '-moz-full-screen'], // Microsoft\n['msRequestFullscreen', 'msExitFullscreen', 'msFullscreenElement', 'msFullscreenEnabled', 'MSFullscreenChange', 'MSFullscreenError', '-ms-fullscreen']];\nvar specApi = apiMap[0];\nvar browserApi; // determine the supported set of functions\n\nfor (var i = 0; i < apiMap.length; i++) {\n // check for exitFullscreen function\n if (apiMap[i][1] in document) {\n browserApi = apiMap[i];\n break;\n }\n} // map the browser API names to the spec API names\n\n\nif (browserApi) {\n for (var _i = 0; _i < browserApi.length; _i++) {\n FullscreenApi[specApi[_i]] = browserApi[_i];\n }\n\n FullscreenApi.prefixed = browserApi[0] !== specApi[0];\n}\n\n/**\n * @file create-logger.js\n * @module create-logger\n */\n\nvar history = [];\n/**\n * Log messages to the console and history based on the type of message\n *\n * @private\n * @param {string} type\n * The name of the console method to use.\n *\n * @param {Array} args\n * The arguments to be passed to the matching console method.\n */\n\nvar LogByTypeFactory = function LogByTypeFactory(name, log) {\n return function (type, level, args) {\n var lvl = log.levels[level];\n var lvlRegExp = new RegExp(\"^(\" + lvl + \")$\");\n\n if (type !== 'log') {\n // Add the type to the front of the message when it's not \"log\".\n args.unshift(type.toUpperCase() + ':');\n } // Add console prefix after adding to history.\n\n\n args.unshift(name + ':'); // Add a clone of the args at this point to history.\n\n if (history) {\n history.push([].concat(args)); // only store 1000 history entries\n\n var splice = history.length - 1000;\n history.splice(0, splice > 0 ? splice : 0);\n } // If there's no console then don't try to output messages, but they will\n // still be stored in history.\n\n\n if (!window$1.console) {\n return;\n } // Was setting these once outside of this function, but containing them\n // in the function makes it easier to test cases where console doesn't exist\n // when the module is executed.\n\n\n var fn = window$1.console[type];\n\n if (!fn && type === 'debug') {\n // Certain browsers don't have support for console.debug. For those, we\n // should default to the closest comparable log.\n fn = window$1.console.info || window$1.console.log;\n } // Bail out if there's no console or if this type is not allowed by the\n // current logging level.\n\n\n if (!fn || !lvl || !lvlRegExp.test(type)) {\n return;\n }\n\n fn[Array.isArray(args) ? 'apply' : 'call'](window$1.console, args);\n };\n};\n\nfunction createLogger$1(name) {\n // This is the private tracking variable for logging level.\n var level = 'info'; // the curried logByType bound to the specific log and history\n\n var logByType;\n /**\n * Logs plain debug messages. Similar to `console.log`.\n *\n * Due to [limitations](https://github.com/jsdoc3/jsdoc/issues/955#issuecomment-313829149)\n * of our JSDoc template, we cannot properly document this as both a function\n * and a namespace, so its function signature is documented here.\n *\n * #### Arguments\n * ##### *args\n * Mixed[]\n *\n * Any combination of values that could be passed to `console.log()`.\n *\n * #### Return Value\n *\n * `undefined`\n *\n * @namespace\n * @param {Mixed[]} args\n * One or more messages or objects that should be logged.\n */\n\n var log = function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n logByType('log', level, args);\n }; // This is the logByType helper that the logging methods below use\n\n\n logByType = LogByTypeFactory(name, log);\n /**\n * Create a new sublogger which chains the old name to the new name.\n *\n * For example, doing `videojs.log.createLogger('player')` and then using that logger will log the following:\n * ```js\n * mylogger('foo');\n * // > VIDEOJS: player: foo\n * ```\n *\n * @param {string} name\n * The name to add call the new logger\n * @return {Object}\n */\n\n log.createLogger = function (subname) {\n return createLogger$1(name + ': ' + subname);\n };\n /**\n * Enumeration of available logging levels, where the keys are the level names\n * and the values are `|`-separated strings containing logging methods allowed\n * in that logging level. These strings are used to create a regular expression\n * matching the function name being called.\n *\n * Levels provided by Video.js are:\n *\n * - `off`: Matches no calls. Any value that can be cast to `false` will have\n * this effect. The most restrictive.\n * - `all`: Matches only Video.js-provided functions (`debug`, `log`,\n * `log.warn`, and `log.error`).\n * - `debug`: Matches `log.debug`, `log`, `log.warn`, and `log.error` calls.\n * - `info` (default): Matches `log`, `log.warn`, and `log.error` calls.\n * - `warn`: Matches `log.warn` and `log.error` calls.\n * - `error`: Matches only `log.error` calls.\n *\n * @type {Object}\n */\n\n\n log.levels = {\n all: 'debug|log|warn|error',\n off: '',\n debug: 'debug|log|warn|error',\n info: 'log|warn|error',\n warn: 'warn|error',\n error: 'error',\n DEFAULT: level\n };\n /**\n * Get or set the current logging level.\n *\n * If a string matching a key from {@link module:log.levels} is provided, acts\n * as a setter.\n *\n * @param {string} [lvl]\n * Pass a valid level to set a new logging level.\n *\n * @return {string}\n * The current logging level.\n */\n\n log.level = function (lvl) {\n if (typeof lvl === 'string') {\n if (!log.levels.hasOwnProperty(lvl)) {\n throw new Error(\"\\\"\" + lvl + \"\\\" in not a valid log level\");\n }\n\n level = lvl;\n }\n\n return level;\n };\n /**\n * Returns an array containing everything that has been logged to the history.\n *\n * This array is a shallow clone of the internal history record. However, its\n * contents are _not_ cloned; so, mutating objects inside this array will\n * mutate them in history.\n *\n * @return {Array}\n */\n\n\n log.history = function () {\n return history ? [].concat(history) : [];\n };\n /**\n * Allows you to filter the history by the given logger name\n *\n * @param {string} fname\n * The name to filter by\n *\n * @return {Array}\n * The filtered list to return\n */\n\n\n log.history.filter = function (fname) {\n return (history || []).filter(function (historyItem) {\n // if the first item in each historyItem includes `fname`, then it's a match\n return new RegExp(\".*\" + fname + \".*\").test(historyItem[0]);\n });\n };\n /**\n * Clears the internal history tracking, but does not prevent further history\n * tracking.\n */\n\n\n log.history.clear = function () {\n if (history) {\n history.length = 0;\n }\n };\n /**\n * Disable history tracking if it is currently enabled.\n */\n\n\n log.history.disable = function () {\n if (history !== null) {\n history.length = 0;\n history = null;\n }\n };\n /**\n * Enable history tracking if it is currently disabled.\n */\n\n\n log.history.enable = function () {\n if (history === null) {\n history = [];\n }\n };\n /**\n * Logs error messages. Similar to `console.error`.\n *\n * @param {Mixed[]} args\n * One or more messages or objects that should be logged as an error\n */\n\n\n log.error = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return logByType('error', level, args);\n };\n /**\n * Logs warning messages. Similar to `console.warn`.\n *\n * @param {Mixed[]} args\n * One or more messages or objects that should be logged as a warning.\n */\n\n\n log.warn = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return logByType('warn', level, args);\n };\n /**\n * Logs debug messages. Similar to `console.debug`, but may also act as a comparable\n * log if `console.debug` is not available\n *\n * @param {Mixed[]} args\n * One or more messages or objects that should be logged as debug.\n */\n\n\n log.debug = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return logByType('debug', level, args);\n };\n\n return log;\n}\n\n/**\n * @file log.js\n * @module log\n */\nvar log$1 = createLogger$1('VIDEOJS');\nvar createLogger = log$1.createLogger;\n\n/**\n * @file obj.js\n * @module obj\n */\n\n/**\n * @callback obj:EachCallback\n *\n * @param {Mixed} value\n * The current key for the object that is being iterated over.\n *\n * @param {string} key\n * The current key-value for object that is being iterated over\n */\n\n/**\n * @callback obj:ReduceCallback\n *\n * @param {Mixed} accum\n * The value that is accumulating over the reduce loop.\n *\n * @param {Mixed} value\n * The current key for the object that is being iterated over.\n *\n * @param {string} key\n * The current key-value for object that is being iterated over\n *\n * @return {Mixed}\n * The new accumulated value.\n */\nvar toString = Object.prototype.toString;\n/**\n * Get the keys of an Object\n *\n * @param {Object}\n * The Object to get the keys from\n *\n * @return {string[]}\n * An array of the keys from the object. Returns an empty array if the\n * object passed in was invalid or had no keys.\n *\n * @private\n */\n\nvar keys = function keys(object) {\n return isObject(object) ? Object.keys(object) : [];\n};\n/**\n * Array-like iteration for objects.\n *\n * @param {Object} object\n * The object to iterate over\n *\n * @param {obj:EachCallback} fn\n * The callback function which is called for each key in the object.\n */\n\n\nfunction each(object, fn) {\n keys(object).forEach(function (key) {\n return fn(object[key], key);\n });\n}\n/**\n * Array-like reduce for objects.\n *\n * @param {Object} object\n * The Object that you want to reduce.\n *\n * @param {Function} fn\n * A callback function which is called for each key in the object. It\n * receives the accumulated value and the per-iteration value and key\n * as arguments.\n *\n * @param {Mixed} [initial = 0]\n * Starting value\n *\n * @return {Mixed}\n * The final accumulated value.\n */\n\nfunction reduce(object, fn, initial) {\n if (initial === void 0) {\n initial = 0;\n }\n\n return keys(object).reduce(function (accum, key) {\n return fn(accum, object[key], key);\n }, initial);\n}\n/**\n * Object.assign-style object shallow merge/extend.\n *\n * @param {Object} target\n * @param {Object} ...sources\n * @return {Object}\n */\n\nfunction assign(target) {\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n\n if (Object.assign) {\n return _extends.apply(void 0, [target].concat(sources));\n }\n\n sources.forEach(function (source) {\n if (!source) {\n return;\n }\n\n each(source, function (value, key) {\n target[key] = value;\n });\n });\n return target;\n}\n/**\n * Returns whether a value is an object of any kind - including DOM nodes,\n * arrays, regular expressions, etc. Not functions, though.\n *\n * This avoids the gotcha where using `typeof` on a `null` value\n * results in `'object'`.\n *\n * @param {Object} value\n * @return {boolean}\n */\n\nfunction isObject(value) {\n return !!value && typeof value === 'object';\n}\n/**\n * Returns whether an object appears to be a \"plain\" object - that is, a\n * direct instance of `Object`.\n *\n * @param {Object} value\n * @return {boolean}\n */\n\nfunction isPlain(value) {\n return isObject(value) && toString.call(value) === '[object Object]' && value.constructor === Object;\n}\n\n/**\n * @file computed-style.js\n * @module computed-style\n */\n/**\n * A safe getComputedStyle.\n *\n * This is needed because in Firefox, if the player is loaded in an iframe with\n * `display:none`, then `getComputedStyle` returns `null`, so, we do a\n * null-check to make sure that the player doesn't break in these cases.\n *\n * @function\n * @param {Element} el\n * The element you want the computed style of\n *\n * @param {string} prop\n * The property name you want\n *\n * @see https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\n\nfunction computedStyle(el, prop) {\n if (!el || !prop) {\n return '';\n }\n\n if (typeof window$1.getComputedStyle === 'function') {\n var computedStyleValue;\n\n try {\n computedStyleValue = window$1.getComputedStyle(el);\n } catch (e) {\n return '';\n }\n\n return computedStyleValue ? computedStyleValue.getPropertyValue(prop) || computedStyleValue[prop] : '';\n }\n\n return '';\n}\n\n/**\n * @file browser.js\n * @module browser\n */\nvar USER_AGENT = window$1.navigator && window$1.navigator.userAgent || '';\nvar webkitVersionMap = /AppleWebKit\\/([\\d.]+)/i.exec(USER_AGENT);\nvar appleWebkitVersion = webkitVersionMap ? parseFloat(webkitVersionMap.pop()) : null;\n/**\n * Whether or not this device is an iPod.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_IPOD = /iPod/i.test(USER_AGENT);\n/**\n * The detected iOS version - or `null`.\n *\n * @static\n * @const\n * @type {string|null}\n */\n\nvar IOS_VERSION = function () {\n var match = USER_AGENT.match(/OS (\\d+)_/i);\n\n if (match && match[1]) {\n return match[1];\n }\n\n return null;\n}();\n/**\n * Whether or not this is an Android device.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_ANDROID = /Android/i.test(USER_AGENT);\n/**\n * The detected Android version - or `null`.\n *\n * @static\n * @const\n * @type {number|string|null}\n */\n\nvar ANDROID_VERSION = function () {\n // This matches Android Major.Minor.Patch versions\n // ANDROID_VERSION is Major.Minor as a Number, if Minor isn't available, then only Major is returned\n var match = USER_AGENT.match(/Android (\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))*/i);\n\n if (!match) {\n return null;\n }\n\n var major = match[1] && parseFloat(match[1]);\n var minor = match[2] && parseFloat(match[2]);\n\n if (major && minor) {\n return parseFloat(match[1] + '.' + match[2]);\n } else if (major) {\n return major;\n }\n\n return null;\n}();\n/**\n * Whether or not this is a native Android browser.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_NATIVE_ANDROID = IS_ANDROID && ANDROID_VERSION < 5 && appleWebkitVersion < 537;\n/**\n * Whether or not this is Mozilla Firefox.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_FIREFOX = /Firefox/i.test(USER_AGENT);\n/**\n * Whether or not this is Microsoft Edge.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_EDGE = /Edg/i.test(USER_AGENT);\n/**\n * Whether or not this is Google Chrome.\n *\n * This will also be `true` for Chrome on iOS, which will have different support\n * as it is actually Safari under the hood.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_CHROME = !IS_EDGE && (/Chrome/i.test(USER_AGENT) || /CriOS/i.test(USER_AGENT));\n/**\n * The detected Google Chrome version - or `null`.\n *\n * @static\n * @const\n * @type {number|null}\n */\n\nvar CHROME_VERSION = function () {\n var match = USER_AGENT.match(/(Chrome|CriOS)\\/(\\d+)/);\n\n if (match && match[2]) {\n return parseFloat(match[2]);\n }\n\n return null;\n}();\n/**\n * The detected Internet Explorer version - or `null`.\n *\n * @static\n * @const\n * @type {number|null}\n */\n\nvar IE_VERSION = function () {\n var result = /MSIE\\s(\\d+)\\.\\d/.exec(USER_AGENT);\n var version = result && parseFloat(result[1]);\n\n if (!version && /Trident\\/7.0/i.test(USER_AGENT) && /rv:11.0/.test(USER_AGENT)) {\n // IE 11 has a different user agent string than other IE versions\n version = 11.0;\n }\n\n return version;\n}();\n/**\n * Whether or not this is desktop Safari.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_SAFARI = /Safari/i.test(USER_AGENT) && !IS_CHROME && !IS_ANDROID && !IS_EDGE;\n/**\n * Whether or not this is a Windows machine.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_WINDOWS = /Windows/i.test(USER_AGENT);\n/**\n * Whether or not this device is touch-enabled.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar TOUCH_ENABLED = Boolean(isReal() && ('ontouchstart' in window$1 || window$1.navigator.maxTouchPoints || window$1.DocumentTouch && window$1.document instanceof window$1.DocumentTouch));\n/**\n * Whether or not this device is an iPad.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_IPAD = /iPad/i.test(USER_AGENT) || IS_SAFARI && TOUCH_ENABLED && !/iPhone/i.test(USER_AGENT);\n/**\n * Whether or not this device is an iPhone.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n// The Facebook app's UIWebView identifies as both an iPhone and iPad, so\n// to identify iPhones, we need to exclude iPads.\n// http://artsy.github.io/blog/2012/10/18/the-perils-of-ios-user-agent-sniffing/\n\nvar IS_IPHONE = /iPhone/i.test(USER_AGENT) && !IS_IPAD;\n/**\n * Whether or not this is an iOS device.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\n/**\n * Whether or not this is any flavor of Safari - including iOS.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_ANY_SAFARI = (IS_SAFARI || IS_IOS) && !IS_CHROME;\n\nvar browser = /*#__PURE__*/Object.freeze({\n __proto__: null,\n IS_IPOD: IS_IPOD,\n IOS_VERSION: IOS_VERSION,\n IS_ANDROID: IS_ANDROID,\n ANDROID_VERSION: ANDROID_VERSION,\n IS_NATIVE_ANDROID: IS_NATIVE_ANDROID,\n IS_FIREFOX: IS_FIREFOX,\n IS_EDGE: IS_EDGE,\n IS_CHROME: IS_CHROME,\n CHROME_VERSION: CHROME_VERSION,\n IE_VERSION: IE_VERSION,\n IS_SAFARI: IS_SAFARI,\n IS_WINDOWS: IS_WINDOWS,\n TOUCH_ENABLED: TOUCH_ENABLED,\n IS_IPAD: IS_IPAD,\n IS_IPHONE: IS_IPHONE,\n IS_IOS: IS_IOS,\n IS_ANY_SAFARI: IS_ANY_SAFARI\n});\n\n/**\n * @file dom.js\n * @module dom\n */\n/**\n * Detect if a value is a string with any non-whitespace characters.\n *\n * @private\n * @param {string} str\n * The string to check\n *\n * @return {boolean}\n * Will be `true` if the string is non-blank, `false` otherwise.\n *\n */\n\nfunction isNonBlankString(str) {\n // we use str.trim as it will trim any whitespace characters\n // from the front or back of non-whitespace characters. aka\n // Any string that contains non-whitespace characters will\n // still contain them after `trim` but whitespace only strings\n // will have a length of 0, failing this check.\n return typeof str === 'string' && Boolean(str.trim());\n}\n/**\n * Throws an error if the passed string has whitespace. This is used by\n * class methods to be relatively consistent with the classList API.\n *\n * @private\n * @param {string} str\n * The string to check for whitespace.\n *\n * @throws {Error}\n * Throws an error if there is whitespace in the string.\n */\n\n\nfunction throwIfWhitespace(str) {\n // str.indexOf instead of regex because str.indexOf is faster performance wise.\n if (str.indexOf(' ') >= 0) {\n throw new Error('class has illegal whitespace characters');\n }\n}\n/**\n * Produce a regular expression for matching a className within an elements className.\n *\n * @private\n * @param {string} className\n * The className to generate the RegExp for.\n *\n * @return {RegExp}\n * The RegExp that will check for a specific `className` in an elements\n * className.\n */\n\n\nfunction classRegExp(className) {\n return new RegExp('(^|\\\\s)' + className + '($|\\\\s)');\n}\n/**\n * Whether the current DOM interface appears to be real (i.e. not simulated).\n *\n * @return {boolean}\n * Will be `true` if the DOM appears to be real, `false` otherwise.\n */\n\n\nfunction isReal() {\n // Both document and window will never be undefined thanks to `global`.\n return document === window$1.document;\n}\n/**\n * Determines, via duck typing, whether or not a value is a DOM element.\n *\n * @param {Mixed} value\n * The value to check.\n *\n * @return {boolean}\n * Will be `true` if the value is a DOM element, `false` otherwise.\n */\n\nfunction isEl(value) {\n return isObject(value) && value.nodeType === 1;\n}\n/**\n * Determines if the current DOM is embedded in an iframe.\n *\n * @return {boolean}\n * Will be `true` if the DOM is embedded in an iframe, `false`\n * otherwise.\n */\n\nfunction isInFrame() {\n // We need a try/catch here because Safari will throw errors when attempting\n // to get either `parent` or `self`\n try {\n return window$1.parent !== window$1.self;\n } catch (x) {\n return true;\n }\n}\n/**\n * Creates functions to query the DOM using a given method.\n *\n * @private\n * @param {string} method\n * The method to create the query with.\n *\n * @return {Function}\n * The query method\n */\n\nfunction createQuerier(method) {\n return function (selector, context) {\n if (!isNonBlankString(selector)) {\n return document[method](null);\n }\n\n if (isNonBlankString(context)) {\n context = document.querySelector(context);\n }\n\n var ctx = isEl(context) ? context : document;\n return ctx[method] && ctx[method](selector);\n };\n}\n/**\n * Creates an element and applies properties, attributes, and inserts content.\n *\n * @param {string} [tagName='div']\n * Name of tag to be created.\n *\n * @param {Object} [properties={}]\n * Element properties to be applied.\n *\n * @param {Object} [attributes={}]\n * Element attributes to be applied.\n *\n * @param {module:dom~ContentDescriptor} content\n * A content descriptor object.\n *\n * @return {Element}\n * The element that was created.\n */\n\n\nfunction createEl(tagName, properties, attributes, content) {\n if (tagName === void 0) {\n tagName = 'div';\n }\n\n if (properties === void 0) {\n properties = {};\n }\n\n if (attributes === void 0) {\n attributes = {};\n }\n\n var el = document.createElement(tagName);\n Object.getOwnPropertyNames(properties).forEach(function (propName) {\n var val = properties[propName]; // See #2176\n // We originally were accepting both properties and attributes in the\n // same object, but that doesn't work so well.\n\n if (propName.indexOf('aria-') !== -1 || propName === 'role' || propName === 'type') {\n log$1.warn('Setting attributes in the second argument of createEl()\\n' + 'has been deprecated. Use the third argument instead.\\n' + (\"createEl(type, properties, attributes). Attempting to set \" + propName + \" to \" + val + \".\"));\n el.setAttribute(propName, val); // Handle textContent since it's not supported everywhere and we have a\n // method for it.\n } else if (propName === 'textContent') {\n textContent(el, val);\n } else if (el[propName] !== val || propName === 'tabIndex') {\n el[propName] = val;\n }\n });\n Object.getOwnPropertyNames(attributes).forEach(function (attrName) {\n el.setAttribute(attrName, attributes[attrName]);\n });\n\n if (content) {\n appendContent(el, content);\n }\n\n return el;\n}\n/**\n * Injects text into an element, replacing any existing contents entirely.\n *\n * @param {Element} el\n * The element to add text content into\n *\n * @param {string} text\n * The text content to add.\n *\n * @return {Element}\n * The element with added text content.\n */\n\nfunction textContent(el, text) {\n if (typeof el.textContent === 'undefined') {\n el.innerText = text;\n } else {\n el.textContent = text;\n }\n\n return el;\n}\n/**\n * Insert an element as the first child node of another\n *\n * @param {Element} child\n * Element to insert\n *\n * @param {Element} parent\n * Element to insert child into\n */\n\nfunction prependTo(child, parent) {\n if (parent.firstChild) {\n parent.insertBefore(child, parent.firstChild);\n } else {\n parent.appendChild(child);\n }\n}\n/**\n * Check if an element has a class name.\n *\n * @param {Element} element\n * Element to check\n *\n * @param {string} classToCheck\n * Class name to check for\n *\n * @return {boolean}\n * Will be `true` if the element has a class, `false` otherwise.\n *\n * @throws {Error}\n * Throws an error if `classToCheck` has white space.\n */\n\nfunction hasClass(element, classToCheck) {\n throwIfWhitespace(classToCheck);\n\n if (element.classList) {\n return element.classList.contains(classToCheck);\n }\n\n return classRegExp(classToCheck).test(element.className);\n}\n/**\n * Add a class name to an element.\n *\n * @param {Element} element\n * Element to add class name to.\n *\n * @param {string} classToAdd\n * Class name to add.\n *\n * @return {Element}\n * The DOM element with the added class name.\n */\n\nfunction addClass(element, classToAdd) {\n if (element.classList) {\n element.classList.add(classToAdd); // Don't need to `throwIfWhitespace` here because `hasElClass` will do it\n // in the case of classList not being supported.\n } else if (!hasClass(element, classToAdd)) {\n element.className = (element.className + ' ' + classToAdd).trim();\n }\n\n return element;\n}\n/**\n * Remove a class name from an element.\n *\n * @param {Element} element\n * Element to remove a class name from.\n *\n * @param {string} classToRemove\n * Class name to remove\n *\n * @return {Element}\n * The DOM element with class name removed.\n */\n\nfunction removeClass(element, classToRemove) {\n // Protect in case the player gets disposed\n if (!element) {\n log$1.warn(\"removeClass was called with an element that doesn't exist\");\n return null;\n }\n\n if (element.classList) {\n element.classList.remove(classToRemove);\n } else {\n throwIfWhitespace(classToRemove);\n element.className = element.className.split(/\\s+/).filter(function (c) {\n return c !== classToRemove;\n }).join(' ');\n }\n\n return element;\n}\n/**\n * The callback definition for toggleClass.\n *\n * @callback module:dom~PredicateCallback\n * @param {Element} element\n * The DOM element of the Component.\n *\n * @param {string} classToToggle\n * The `className` that wants to be toggled\n *\n * @return {boolean|undefined}\n * If `true` is returned, the `classToToggle` will be added to the\n * `element`. If `false`, the `classToToggle` will be removed from\n * the `element`. If `undefined`, the callback will be ignored.\n */\n\n/**\n * Adds or removes a class name to/from an element depending on an optional\n * condition or the presence/absence of the class name.\n *\n * @param {Element} element\n * The element to toggle a class name on.\n *\n * @param {string} classToToggle\n * The class that should be toggled.\n *\n * @param {boolean|module:dom~PredicateCallback} [predicate]\n * See the return value for {@link module:dom~PredicateCallback}\n *\n * @return {Element}\n * The element with a class that has been toggled.\n */\n\nfunction toggleClass(element, classToToggle, predicate) {\n // This CANNOT use `classList` internally because IE11 does not support the\n // second parameter to the `classList.toggle()` method! Which is fine because\n // `classList` will be used by the add/remove functions.\n var has = hasClass(element, classToToggle);\n\n if (typeof predicate === 'function') {\n predicate = predicate(element, classToToggle);\n }\n\n if (typeof predicate !== 'boolean') {\n predicate = !has;\n } // If the necessary class operation matches the current state of the\n // element, no action is required.\n\n\n if (predicate === has) {\n return;\n }\n\n if (predicate) {\n addClass(element, classToToggle);\n } else {\n removeClass(element, classToToggle);\n }\n\n return element;\n}\n/**\n * Apply attributes to an HTML element.\n *\n * @param {Element} el\n * Element to add attributes to.\n *\n * @param {Object} [attributes]\n * Attributes to be applied.\n */\n\nfunction setAttributes(el, attributes) {\n Object.getOwnPropertyNames(attributes).forEach(function (attrName) {\n var attrValue = attributes[attrName];\n\n if (attrValue === null || typeof attrValue === 'undefined' || attrValue === false) {\n el.removeAttribute(attrName);\n } else {\n el.setAttribute(attrName, attrValue === true ? '' : attrValue);\n }\n });\n}\n/**\n * Get an element's attribute values, as defined on the HTML tag.\n *\n * Attributes are not the same as properties. They're defined on the tag\n * or with setAttribute.\n *\n * @param {Element} tag\n * Element from which to get tag attributes.\n *\n * @return {Object}\n * All attributes of the element. Boolean attributes will be `true` or\n * `false`, others will be strings.\n */\n\nfunction getAttributes(tag) {\n var obj = {}; // known boolean attributes\n // we can check for matching boolean properties, but not all browsers\n // and not all tags know about these attributes, so, we still want to check them manually\n\n var knownBooleans = ',' + 'autoplay,controls,playsinline,loop,muted,default,defaultMuted' + ',';\n\n if (tag && tag.attributes && tag.attributes.length > 0) {\n var attrs = tag.attributes;\n\n for (var i = attrs.length - 1; i >= 0; i--) {\n var attrName = attrs[i].name;\n var attrVal = attrs[i].value; // check for known booleans\n // the matching element property will return a value for typeof\n\n if (typeof tag[attrName] === 'boolean' || knownBooleans.indexOf(',' + attrName + ',') !== -1) {\n // the value of an included boolean attribute is typically an empty\n // string ('') which would equal false if we just check for a false value.\n // we also don't want support bad code like autoplay='false'\n attrVal = attrVal !== null ? true : false;\n }\n\n obj[attrName] = attrVal;\n }\n }\n\n return obj;\n}\n/**\n * Get the value of an element's attribute.\n *\n * @param {Element} el\n * A DOM element.\n *\n * @param {string} attribute\n * Attribute to get the value of.\n *\n * @return {string}\n * The value of the attribute.\n */\n\nfunction getAttribute(el, attribute) {\n return el.getAttribute(attribute);\n}\n/**\n * Set the value of an element's attribute.\n *\n * @param {Element} el\n * A DOM element.\n *\n * @param {string} attribute\n * Attribute to set.\n *\n * @param {string} value\n * Value to set the attribute to.\n */\n\nfunction setAttribute(el, attribute, value) {\n el.setAttribute(attribute, value);\n}\n/**\n * Remove an element's attribute.\n *\n * @param {Element} el\n * A DOM element.\n *\n * @param {string} attribute\n * Attribute to remove.\n */\n\nfunction removeAttribute(el, attribute) {\n el.removeAttribute(attribute);\n}\n/**\n * Attempt to block the ability to select text.\n */\n\nfunction blockTextSelection() {\n document.body.focus();\n\n document.onselectstart = function () {\n return false;\n };\n}\n/**\n * Turn off text selection blocking.\n */\n\nfunction unblockTextSelection() {\n document.onselectstart = function () {\n return true;\n };\n}\n/**\n * Identical to the native `getBoundingClientRect` function, but ensures that\n * the method is supported at all (it is in all browsers we claim to support)\n * and that the element is in the DOM before continuing.\n *\n * This wrapper function also shims properties which are not provided by some\n * older browsers (namely, IE8).\n *\n * Additionally, some browsers do not support adding properties to a\n * `ClientRect`/`DOMRect` object; so, we shallow-copy it with the standard\n * properties (except `x` and `y` which are not widely supported). This helps\n * avoid implementations where keys are non-enumerable.\n *\n * @param {Element} el\n * Element whose `ClientRect` we want to calculate.\n *\n * @return {Object|undefined}\n * Always returns a plain object - or `undefined` if it cannot.\n */\n\nfunction getBoundingClientRect(el) {\n if (el && el.getBoundingClientRect && el.parentNode) {\n var rect = el.getBoundingClientRect();\n var result = {};\n ['bottom', 'height', 'left', 'right', 'top', 'width'].forEach(function (k) {\n if (rect[k] !== undefined) {\n result[k] = rect[k];\n }\n });\n\n if (!result.height) {\n result.height = parseFloat(computedStyle(el, 'height'));\n }\n\n if (!result.width) {\n result.width = parseFloat(computedStyle(el, 'width'));\n }\n\n return result;\n }\n}\n/**\n * Represents the position of a DOM element on the page.\n *\n * @typedef {Object} module:dom~Position\n *\n * @property {number} left\n * Pixels to the left.\n *\n * @property {number} top\n * Pixels from the top.\n */\n\n/**\n * Get the position of an element in the DOM.\n *\n * Uses `getBoundingClientRect` technique from John Resig.\n *\n * @see http://ejohn.org/blog/getboundingclientrect-is-awesome/\n *\n * @param {Element} el\n * Element from which to get offset.\n *\n * @return {module:dom~Position}\n * The position of the element that was passed in.\n */\n\nfunction findPosition(el) {\n if (!el || el && !el.offsetParent) {\n return {\n left: 0,\n top: 0,\n width: 0,\n height: 0\n };\n }\n\n var width = el.offsetWidth;\n var height = el.offsetHeight;\n var left = 0;\n var top = 0;\n\n while (el.offsetParent && el !== document[FullscreenApi.fullscreenElement]) {\n left += el.offsetLeft;\n top += el.offsetTop;\n el = el.offsetParent;\n }\n\n return {\n left: left,\n top: top,\n width: width,\n height: height\n };\n}\n/**\n * Represents x and y coordinates for a DOM element or mouse pointer.\n *\n * @typedef {Object} module:dom~Coordinates\n *\n * @property {number} x\n * x coordinate in pixels\n *\n * @property {number} y\n * y coordinate in pixels\n */\n\n/**\n * Get the pointer position within an element.\n *\n * The base on the coordinates are the bottom left of the element.\n *\n * @param {Element} el\n * Element on which to get the pointer position on.\n *\n * @param {EventTarget~Event} event\n * Event object.\n *\n * @return {module:dom~Coordinates}\n * A coordinates object corresponding to the mouse position.\n *\n */\n\nfunction getPointerPosition(el, event) {\n var translated = {\n x: 0,\n y: 0\n };\n\n if (IS_IOS) {\n var item = el;\n\n while (item && item.nodeName.toLowerCase() !== 'html') {\n var transform = computedStyle(item, 'transform');\n\n if (/^matrix/.test(transform)) {\n var values = transform.slice(7, -1).split(/,\\s/).map(Number);\n translated.x += values[4];\n translated.y += values[5];\n } else if (/^matrix3d/.test(transform)) {\n var _values = transform.slice(9, -1).split(/,\\s/).map(Number);\n\n translated.x += _values[12];\n translated.y += _values[13];\n }\n\n item = item.parentNode;\n }\n }\n\n var position = {};\n var boxTarget = findPosition(event.target);\n var box = findPosition(el);\n var boxW = box.width;\n var boxH = box.height;\n var offsetY = event.offsetY - (box.top - boxTarget.top);\n var offsetX = event.offsetX - (box.left - boxTarget.left);\n\n if (event.changedTouches) {\n offsetX = event.changedTouches[0].pageX - box.left;\n offsetY = event.changedTouches[0].pageY + box.top;\n\n if (IS_IOS) {\n offsetX -= translated.x;\n offsetY -= translated.y;\n }\n }\n\n position.y = 1 - Math.max(0, Math.min(1, offsetY / boxH));\n position.x = Math.max(0, Math.min(1, offsetX / boxW));\n return position;\n}\n/**\n * Determines, via duck typing, whether or not a value is a text node.\n *\n * @param {Mixed} value\n * Check if this value is a text node.\n *\n * @return {boolean}\n * Will be `true` if the value is a text node, `false` otherwise.\n */\n\nfunction isTextNode(value) {\n return isObject(value) && value.nodeType === 3;\n}\n/**\n * Empties the contents of an element.\n *\n * @param {Element} el\n * The element to empty children from\n *\n * @return {Element}\n * The element with no children\n */\n\nfunction emptyEl(el) {\n while (el.firstChild) {\n el.removeChild(el.firstChild);\n }\n\n return el;\n}\n/**\n * This is a mixed value that describes content to be injected into the DOM\n * via some method. It can be of the following types:\n *\n * Type | Description\n * -----------|-------------\n * `string` | The value will be normalized into a text node.\n * `Element` | The value will be accepted as-is.\n * `TextNode` | The value will be accepted as-is.\n * `Array` | A one-dimensional array of strings, elements, text nodes, or functions. These functions should return a string, element, or text node (any other return value, like an array, will be ignored).\n * `Function` | A function, which is expected to return a string, element, text node, or array - any of the other possible values described above. This means that a content descriptor could be a function that returns an array of functions, but those second-level functions must return strings, elements, or text nodes.\n *\n * @typedef {string|Element|TextNode|Array|Function} module:dom~ContentDescriptor\n */\n\n/**\n * Normalizes content for eventual insertion into the DOM.\n *\n * This allows a wide range of content definition methods, but helps protect\n * from falling into the trap of simply writing to `innerHTML`, which could\n * be an XSS concern.\n *\n * The content for an element can be passed in multiple types and\n * combinations, whose behavior is as follows:\n *\n * @param {module:dom~ContentDescriptor} content\n * A content descriptor value.\n *\n * @return {Array}\n * All of the content that was passed in, normalized to an array of\n * elements or text nodes.\n */\n\nfunction normalizeContent(content) {\n // First, invoke content if it is a function. If it produces an array,\n // that needs to happen before normalization.\n if (typeof content === 'function') {\n content = content();\n } // Next up, normalize to an array, so one or many items can be normalized,\n // filtered, and returned.\n\n\n return (Array.isArray(content) ? content : [content]).map(function (value) {\n // First, invoke value if it is a function to produce a new value,\n // which will be subsequently normalized to a Node of some kind.\n if (typeof value === 'function') {\n value = value();\n }\n\n if (isEl(value) || isTextNode(value)) {\n return value;\n }\n\n if (typeof value === 'string' && /\\S/.test(value)) {\n return document.createTextNode(value);\n }\n }).filter(function (value) {\n return value;\n });\n}\n/**\n * Normalizes and appends content to an element.\n *\n * @param {Element} el\n * Element to append normalized content to.\n *\n * @param {module:dom~ContentDescriptor} content\n * A content descriptor value.\n *\n * @return {Element}\n * The element with appended normalized content.\n */\n\nfunction appendContent(el, content) {\n normalizeContent(content).forEach(function (node) {\n return el.appendChild(node);\n });\n return el;\n}\n/**\n * Normalizes and inserts content into an element; this is identical to\n * `appendContent()`, except it empties the element first.\n *\n * @param {Element} el\n * Element to insert normalized content into.\n *\n * @param {module:dom~ContentDescriptor} content\n * A content descriptor value.\n *\n * @return {Element}\n * The element with inserted normalized content.\n */\n\nfunction insertContent(el, content) {\n return appendContent(emptyEl(el), content);\n}\n/**\n * Check if an event was a single left click.\n *\n * @param {EventTarget~Event} event\n * Event object.\n *\n * @return {boolean}\n * Will be `true` if a single left click, `false` otherwise.\n */\n\nfunction isSingleLeftClick(event) {\n // Note: if you create something draggable, be sure to\n // call it on both `mousedown` and `mousemove` event,\n // otherwise `mousedown` should be enough for a button\n if (event.button === undefined && event.buttons === undefined) {\n // Why do we need `buttons` ?\n // Because, middle mouse sometimes have this:\n // e.button === 0 and e.buttons === 4\n // Furthermore, we want to prevent combination click, something like\n // HOLD middlemouse then left click, that would be\n // e.button === 0, e.buttons === 5\n // just `button` is not gonna work\n // Alright, then what this block does ?\n // this is for chrome `simulate mobile devices`\n // I want to support this as well\n return true;\n }\n\n if (event.button === 0 && event.buttons === undefined) {\n // Touch screen, sometimes on some specific device, `buttons`\n // doesn't have anything (safari on ios, blackberry...)\n return true;\n } // `mouseup` event on a single left click has\n // `button` and `buttons` equal to 0\n\n\n if (event.type === 'mouseup' && event.button === 0 && event.buttons === 0) {\n return true;\n }\n\n if (event.button !== 0 || event.buttons !== 1) {\n // This is the reason we have those if else block above\n // if any special case we can catch and let it slide\n // we do it above, when get to here, this definitely\n // is-not-left-click\n return false;\n }\n\n return true;\n}\n/**\n * Finds a single DOM element matching `selector` within the optional\n * `context` of another DOM element (defaulting to `document`).\n *\n * @param {string} selector\n * A valid CSS selector, which will be passed to `querySelector`.\n *\n * @param {Element|String} [context=document]\n * A DOM element within which to query. Can also be a selector\n * string in which case the first matching element will be used\n * as context. If missing (or no element matches selector), falls\n * back to `document`.\n *\n * @return {Element|null}\n * The element that was found or null.\n */\n\nvar $ = createQuerier('querySelector');\n/**\n * Finds a all DOM elements matching `selector` within the optional\n * `context` of another DOM element (defaulting to `document`).\n *\n * @param {string} selector\n * A valid CSS selector, which will be passed to `querySelectorAll`.\n *\n * @param {Element|String} [context=document]\n * A DOM element within which to query. Can also be a selector\n * string in which case the first matching element will be used\n * as context. If missing (or no element matches selector), falls\n * back to `document`.\n *\n * @return {NodeList}\n * A element list of elements that were found. Will be empty if none\n * were found.\n *\n */\n\nvar $$ = createQuerier('querySelectorAll');\n\nvar Dom = /*#__PURE__*/Object.freeze({\n __proto__: null,\n isReal: isReal,\n isEl: isEl,\n isInFrame: isInFrame,\n createEl: createEl,\n textContent: textContent,\n prependTo: prependTo,\n hasClass: hasClass,\n addClass: addClass,\n removeClass: removeClass,\n toggleClass: toggleClass,\n setAttributes: setAttributes,\n getAttributes: getAttributes,\n getAttribute: getAttribute,\n setAttribute: setAttribute,\n removeAttribute: removeAttribute,\n blockTextSelection: blockTextSelection,\n unblockTextSelection: unblockTextSelection,\n getBoundingClientRect: getBoundingClientRect,\n findPosition: findPosition,\n getPointerPosition: getPointerPosition,\n isTextNode: isTextNode,\n emptyEl: emptyEl,\n normalizeContent: normalizeContent,\n appendContent: appendContent,\n insertContent: insertContent,\n isSingleLeftClick: isSingleLeftClick,\n $: $,\n $$: $$\n});\n\n/**\n * @file setup.js - Functions for setting up a player without\n * user interaction based on the data-setup `attribute` of the video tag.\n *\n * @module setup\n */\nvar _windowLoaded = false;\nvar videojs$1;\n/**\n * Set up any tags that have a data-setup `attribute` when the player is started.\n */\n\nvar autoSetup = function autoSetup() {\n if (videojs$1.options.autoSetup === false) {\n return;\n }\n\n var vids = Array.prototype.slice.call(document.getElementsByTagName('video'));\n var audios = Array.prototype.slice.call(document.getElementsByTagName('audio'));\n var divs = Array.prototype.slice.call(document.getElementsByTagName('video-js'));\n var mediaEls = vids.concat(audios, divs); // Check if any media elements exist\n\n if (mediaEls && mediaEls.length > 0) {\n for (var i = 0, e = mediaEls.length; i < e; i++) {\n var mediaEl = mediaEls[i]; // Check if element exists, has getAttribute func.\n\n if (mediaEl && mediaEl.getAttribute) {\n // Make sure this player hasn't already been set up.\n if (mediaEl.player === undefined) {\n var options = mediaEl.getAttribute('data-setup'); // Check if data-setup attr exists.\n // We only auto-setup if they've added the data-setup attr.\n\n if (options !== null) {\n // Create new video.js instance.\n videojs$1(mediaEl);\n }\n } // If getAttribute isn't defined, we need to wait for the DOM.\n\n } else {\n autoSetupTimeout(1);\n break;\n }\n } // No videos were found, so keep looping unless page is finished loading.\n\n } else if (!_windowLoaded) {\n autoSetupTimeout(1);\n }\n};\n/**\n * Wait until the page is loaded before running autoSetup. This will be called in\n * autoSetup if `hasLoaded` returns false.\n *\n * @param {number} wait\n * How long to wait in ms\n *\n * @param {module:videojs} [vjs]\n * The videojs library function\n */\n\n\nfunction autoSetupTimeout(wait, vjs) {\n // Protect against breakage in non-browser environments\n if (!isReal()) {\n return;\n }\n\n if (vjs) {\n videojs$1 = vjs;\n }\n\n window$1.setTimeout(autoSetup, wait);\n}\n/**\n * Used to set the internal tracking of window loaded state to true.\n *\n * @private\n */\n\n\nfunction setWindowLoaded() {\n _windowLoaded = true;\n window$1.removeEventListener('load', setWindowLoaded);\n}\n\nif (isReal()) {\n if (document.readyState === 'complete') {\n setWindowLoaded();\n } else {\n /**\n * Listen for the load event on window, and set _windowLoaded to true.\n *\n * We use a standard event listener here to avoid incrementing the GUID\n * before any players are created.\n *\n * @listens load\n */\n window$1.addEventListener('load', setWindowLoaded);\n }\n}\n\n/**\n * @file stylesheet.js\n * @module stylesheet\n */\n/**\n * Create a DOM syle element given a className for it.\n *\n * @param {string} className\n * The className to add to the created style element.\n *\n * @return {Element}\n * The element that was created.\n */\n\nvar createStyleElement = function createStyleElement(className) {\n var style = document.createElement('style');\n style.className = className;\n return style;\n};\n/**\n * Add text to a DOM element.\n *\n * @param {Element} el\n * The Element to add text content to.\n *\n * @param {string} content\n * The text to add to the element.\n */\n\nvar setTextContent = function setTextContent(el, content) {\n if (el.styleSheet) {\n el.styleSheet.cssText = content;\n } else {\n el.textContent = content;\n }\n};\n\n/**\n * @file guid.js\n * @module guid\n */\n// Default value for GUIDs. This allows us to reset the GUID counter in tests.\n//\n// The initial GUID is 3 because some users have come to rely on the first\n// default player ID ending up as `vjs_video_3`.\n//\n// See: https://github.com/videojs/video.js/pull/6216\nvar _initialGuid = 3;\n/**\n * Unique ID for an element or function\n *\n * @type {Number}\n */\n\nvar _guid = _initialGuid;\n/**\n * Get a unique auto-incrementing ID by number that has not been returned before.\n *\n * @return {number}\n * A new unique ID.\n */\n\nfunction newGUID() {\n return _guid++;\n}\n\n/**\n * @file dom-data.js\n * @module dom-data\n */\nvar FakeWeakMap;\n\nif (!window$1.WeakMap) {\n FakeWeakMap = /*#__PURE__*/function () {\n function FakeWeakMap() {\n this.vdata = 'vdata' + Math.floor(window$1.performance && window$1.performance.now() || Date.now());\n this.data = {};\n }\n\n var _proto = FakeWeakMap.prototype;\n\n _proto.set = function set(key, value) {\n var access = key[this.vdata] || newGUID();\n\n if (!key[this.vdata]) {\n key[this.vdata] = access;\n }\n\n this.data[access] = value;\n return this;\n };\n\n _proto.get = function get(key) {\n var access = key[this.vdata]; // we have data, return it\n\n if (access) {\n return this.data[access];\n } // we don't have data, return nothing.\n // return undefined explicitly as that's the contract for this method\n\n\n log$1('We have no data for this element', key);\n return undefined;\n };\n\n _proto.has = function has(key) {\n var access = key[this.vdata];\n return access in this.data;\n };\n\n _proto[\"delete\"] = function _delete(key) {\n var access = key[this.vdata];\n\n if (access) {\n delete this.data[access];\n delete key[this.vdata];\n }\n };\n\n return FakeWeakMap;\n }();\n}\n/**\n * Element Data Store.\n *\n * Allows for binding data to an element without putting it directly on the\n * element. Ex. Event listeners are stored here.\n * (also from jsninja.com, slightly modified and updated for closure compiler)\n *\n * @type {Object}\n * @private\n */\n\n\nvar DomData = window$1.WeakMap ? new WeakMap() : new FakeWeakMap();\n\n/**\n * @file events.js. An Event System (John Resig - Secrets of a JS Ninja http://jsninja.com/)\n * (Original book version wasn't completely usable, so fixed some things and made Closure Compiler compatible)\n * This should work very similarly to jQuery's events, however it's based off the book version which isn't as\n * robust as jquery's, so there's probably some differences.\n *\n * @file events.js\n * @module events\n */\n/**\n * Clean up the listener cache and dispatchers\n *\n * @param {Element|Object} elem\n * Element to clean up\n *\n * @param {string} type\n * Type of event to clean up\n */\n\nfunction _cleanUpEvents(elem, type) {\n if (!DomData.has(elem)) {\n return;\n }\n\n var data = DomData.get(elem); // Remove the events of a particular type if there are none left\n\n if (data.handlers[type].length === 0) {\n delete data.handlers[type]; // data.handlers[type] = null;\n // Setting to null was causing an error with data.handlers\n // Remove the meta-handler from the element\n\n if (elem.removeEventListener) {\n elem.removeEventListener(type, data.dispatcher, false);\n } else if (elem.detachEvent) {\n elem.detachEvent('on' + type, data.dispatcher);\n }\n } // Remove the events object if there are no types left\n\n\n if (Object.getOwnPropertyNames(data.handlers).length <= 0) {\n delete data.handlers;\n delete data.dispatcher;\n delete data.disabled;\n } // Finally remove the element data if there is no data left\n\n\n if (Object.getOwnPropertyNames(data).length === 0) {\n DomData[\"delete\"](elem);\n }\n}\n/**\n * Loops through an array of event types and calls the requested method for each type.\n *\n * @param {Function} fn\n * The event method we want to use.\n *\n * @param {Element|Object} elem\n * Element or object to bind listeners to\n *\n * @param {string} type\n * Type of event to bind to.\n *\n * @param {EventTarget~EventListener} callback\n * Event listener.\n */\n\n\nfunction _handleMultipleEvents(fn, elem, types, callback) {\n types.forEach(function (type) {\n // Call the event method for each one of the types\n fn(elem, type, callback);\n });\n}\n/**\n * Fix a native event to have standard property values\n *\n * @param {Object} event\n * Event object to fix.\n *\n * @return {Object}\n * Fixed event object.\n */\n\n\nfunction fixEvent(event) {\n if (event.fixed_) {\n return event;\n }\n\n function returnTrue() {\n return true;\n }\n\n function returnFalse() {\n return false;\n } // Test if fixing up is needed\n // Used to check if !event.stopPropagation instead of isPropagationStopped\n // But native events return true for stopPropagation, but don't have\n // other expected methods like isPropagationStopped. Seems to be a problem\n // with the Javascript Ninja code. So we're just overriding all events now.\n\n\n if (!event || !event.isPropagationStopped || !event.isImmediatePropagationStopped) {\n var old = event || window$1.event;\n event = {}; // Clone the old object so that we can modify the values event = {};\n // IE8 Doesn't like when you mess with native event properties\n // Firefox returns false for event.hasOwnProperty('type') and other props\n // which makes copying more difficult.\n // TODO: Probably best to create a whitelist of event props\n\n for (var key in old) {\n // Safari 6.0.3 warns you if you try to copy deprecated layerX/Y\n // Chrome warns you if you try to copy deprecated keyboardEvent.keyLocation\n // and webkitMovementX/Y\n // Lighthouse complains if Event.path is copied\n if (key !== 'layerX' && key !== 'layerY' && key !== 'keyLocation' && key !== 'webkitMovementX' && key !== 'webkitMovementY' && key !== 'path') {\n // Chrome 32+ warns if you try to copy deprecated returnValue, but\n // we still want to if preventDefault isn't supported (IE8).\n if (!(key === 'returnValue' && old.preventDefault)) {\n event[key] = old[key];\n }\n }\n } // The event occurred on this element\n\n\n if (!event.target) {\n event.target = event.srcElement || document;\n } // Handle which other element the event is related to\n\n\n if (!event.relatedTarget) {\n event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement;\n } // Stop the default browser action\n\n\n event.preventDefault = function () {\n if (old.preventDefault) {\n old.preventDefault();\n }\n\n event.returnValue = false;\n old.returnValue = false;\n event.defaultPrevented = true;\n };\n\n event.defaultPrevented = false; // Stop the event from bubbling\n\n event.stopPropagation = function () {\n if (old.stopPropagation) {\n old.stopPropagation();\n }\n\n event.cancelBubble = true;\n old.cancelBubble = true;\n event.isPropagationStopped = returnTrue;\n };\n\n event.isPropagationStopped = returnFalse; // Stop the event from bubbling and executing other handlers\n\n event.stopImmediatePropagation = function () {\n if (old.stopImmediatePropagation) {\n old.stopImmediatePropagation();\n }\n\n event.isImmediatePropagationStopped = returnTrue;\n event.stopPropagation();\n };\n\n event.isImmediatePropagationStopped = returnFalse; // Handle mouse position\n\n if (event.clientX !== null && event.clientX !== undefined) {\n var doc = document.documentElement;\n var body = document.body;\n event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n } // Handle key presses\n\n\n event.which = event.charCode || event.keyCode; // Fix button for mouse clicks:\n // 0 == left; 1 == middle; 2 == right\n\n if (event.button !== null && event.button !== undefined) {\n // The following is disabled because it does not pass videojs-standard\n // and... yikes.\n\n /* eslint-disable */\n event.button = event.button & 1 ? 0 : event.button & 4 ? 1 : event.button & 2 ? 2 : 0;\n /* eslint-enable */\n }\n }\n\n event.fixed_ = true; // Returns fixed-up instance\n\n return event;\n}\n/**\n * Whether passive event listeners are supported\n */\n\nvar _supportsPassive;\n\nvar supportsPassive = function supportsPassive() {\n if (typeof _supportsPassive !== 'boolean') {\n _supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n _supportsPassive = true;\n }\n });\n window$1.addEventListener('test', null, opts);\n window$1.removeEventListener('test', null, opts);\n } catch (e) {// disregard\n }\n }\n\n return _supportsPassive;\n};\n/**\n * Touch events Chrome expects to be passive\n */\n\n\nvar passiveEvents = ['touchstart', 'touchmove'];\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem\n * Element or object to bind listeners to\n *\n * @param {string|string[]} type\n * Type of event to bind to.\n *\n * @param {EventTarget~EventListener} fn\n * Event listener.\n */\n\nfunction on(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(on, elem, type, fn);\n }\n\n if (!DomData.has(elem)) {\n DomData.set(elem, {});\n }\n\n var data = DomData.get(elem); // We need a place to store all our handler data\n\n if (!data.handlers) {\n data.handlers = {};\n }\n\n if (!data.handlers[type]) {\n data.handlers[type] = [];\n }\n\n if (!fn.guid) {\n fn.guid = newGUID();\n }\n\n data.handlers[type].push(fn);\n\n if (!data.dispatcher) {\n data.disabled = false;\n\n data.dispatcher = function (event, hash) {\n if (data.disabled) {\n return;\n }\n\n event = fixEvent(event);\n var handlers = data.handlers[event.type];\n\n if (handlers) {\n // Copy handlers so if handlers are added/removed during the process it doesn't throw everything off.\n var handlersCopy = handlers.slice(0);\n\n for (var m = 0, n = handlersCopy.length; m < n; m++) {\n if (event.isImmediatePropagationStopped()) {\n break;\n } else {\n try {\n handlersCopy[m].call(elem, event, hash);\n } catch (e) {\n log$1.error(e);\n }\n }\n }\n }\n };\n }\n\n if (data.handlers[type].length === 1) {\n if (elem.addEventListener) {\n var options = false;\n\n if (supportsPassive() && passiveEvents.indexOf(type) > -1) {\n options = {\n passive: true\n };\n }\n\n elem.addEventListener(type, data.dispatcher, options);\n } else if (elem.attachEvent) {\n elem.attachEvent('on' + type, data.dispatcher);\n }\n }\n}\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem\n * Object to remove listeners from.\n *\n * @param {string|string[]} [type]\n * Type of listener to remove. Don't include to remove all events from element.\n *\n * @param {EventTarget~EventListener} [fn]\n * Specific listener to remove. Don't include to remove listeners for an event\n * type.\n */\n\nfunction off(elem, type, fn) {\n // Don't want to add a cache object through getElData if not needed\n if (!DomData.has(elem)) {\n return;\n }\n\n var data = DomData.get(elem); // If no events exist, nothing to unbind\n\n if (!data.handlers) {\n return;\n }\n\n if (Array.isArray(type)) {\n return _handleMultipleEvents(off, elem, type, fn);\n } // Utility function\n\n\n var removeType = function removeType(el, t) {\n data.handlers[t] = [];\n\n _cleanUpEvents(el, t);\n }; // Are we removing all bound events?\n\n\n if (type === undefined) {\n for (var t in data.handlers) {\n if (Object.prototype.hasOwnProperty.call(data.handlers || {}, t)) {\n removeType(elem, t);\n }\n }\n\n return;\n }\n\n var handlers = data.handlers[type]; // If no handlers exist, nothing to unbind\n\n if (!handlers) {\n return;\n } // If no listener was provided, remove all listeners for type\n\n\n if (!fn) {\n removeType(elem, type);\n return;\n } // We're only removing a single handler\n\n\n if (fn.guid) {\n for (var n = 0; n < handlers.length; n++) {\n if (handlers[n].guid === fn.guid) {\n handlers.splice(n--, 1);\n }\n }\n }\n\n _cleanUpEvents(elem, type);\n}\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem\n * Element to trigger an event on\n *\n * @param {EventTarget~Event|string} event\n * A string (the type) or an event object with a type attribute\n *\n * @param {Object} [hash]\n * data hash to pass along with the event\n *\n * @return {boolean|undefined}\n * Returns the opposite of `defaultPrevented` if default was\n * prevented. Otherwise, returns `undefined`\n */\n\nfunction trigger(elem, event, hash) {\n // Fetches element data and a reference to the parent (for bubbling).\n // Don't want to add a data object to cache for every parent,\n // so checking hasElData first.\n var elemData = DomData.has(elem) ? DomData.get(elem) : {};\n var parent = elem.parentNode || elem.ownerDocument; // type = event.type || event,\n // handler;\n // If an event name was passed as a string, creates an event out of it\n\n if (typeof event === 'string') {\n event = {\n type: event,\n target: elem\n };\n } else if (!event.target) {\n event.target = elem;\n } // Normalizes the event properties.\n\n\n event = fixEvent(event); // If the passed element has a dispatcher, executes the established handlers.\n\n if (elemData.dispatcher) {\n elemData.dispatcher.call(elem, event, hash);\n } // Unless explicitly stopped or the event does not bubble (e.g. media events)\n // recursively calls this function to bubble the event up the DOM.\n\n\n if (parent && !event.isPropagationStopped() && event.bubbles === true) {\n trigger.call(null, parent, event, hash); // If at the top of the DOM, triggers the default action unless disabled.\n } else if (!parent && !event.defaultPrevented && event.target && event.target[event.type]) {\n if (!DomData.has(event.target)) {\n DomData.set(event.target, {});\n }\n\n var targetData = DomData.get(event.target); // Checks if the target has a default action for this event.\n\n if (event.target[event.type]) {\n // Temporarily disables event dispatching on the target as we have already executed the handler.\n targetData.disabled = true; // Executes the default action.\n\n if (typeof event.target[event.type] === 'function') {\n event.target[event.type]();\n } // Re-enables event dispatching.\n\n\n targetData.disabled = false;\n }\n } // Inform the triggerer if the default was prevented by returning false\n\n\n return !event.defaultPrevented;\n}\n/**\n * Trigger a listener only once for an event.\n *\n * @param {Element|Object} elem\n * Element or object to bind to.\n *\n * @param {string|string[]} type\n * Name/type of event\n *\n * @param {Event~EventListener} fn\n * Event listener function\n */\n\nfunction one(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(one, elem, type, fn);\n }\n\n var func = function func() {\n off(elem, type, func);\n fn.apply(this, arguments);\n }; // copy the guid to the new function so it can removed using the original function's ID\n\n\n func.guid = fn.guid = fn.guid || newGUID();\n on(elem, type, func);\n}\n/**\n * Trigger a listener only once and then turn if off for all\n * configured events\n *\n * @param {Element|Object} elem\n * Element or object to bind to.\n *\n * @param {string|string[]} type\n * Name/type of event\n *\n * @param {Event~EventListener} fn\n * Event listener function\n */\n\nfunction any(elem, type, fn) {\n var func = function func() {\n off(elem, type, func);\n fn.apply(this, arguments);\n }; // copy the guid to the new function so it can removed using the original function's ID\n\n\n func.guid = fn.guid = fn.guid || newGUID(); // multiple ons, but one off for everything\n\n on(elem, type, func);\n}\n\nvar Events = /*#__PURE__*/Object.freeze({\n __proto__: null,\n fixEvent: fixEvent,\n on: on,\n off: off,\n trigger: trigger,\n one: one,\n any: any\n});\n\n/**\n * @file fn.js\n * @module fn\n */\nvar UPDATE_REFRESH_INTERVAL = 30;\n/**\n * Bind (a.k.a proxy or context). A simple method for changing the context of\n * a function.\n *\n * It also stores a unique id on the function so it can be easily removed from\n * events.\n *\n * @function\n * @param {Mixed} context\n * The object to bind as scope.\n *\n * @param {Function} fn\n * The function to be bound to a scope.\n *\n * @param {number} [uid]\n * An optional unique ID for the function to be set\n *\n * @return {Function}\n * The new function that will be bound into the context given\n */\n\nvar bind = function bind(context, fn, uid) {\n // Make sure the function has a unique ID\n if (!fn.guid) {\n fn.guid = newGUID();\n } // Create the new function that changes the context\n\n\n var bound = fn.bind(context); // Allow for the ability to individualize this function\n // Needed in the case where multiple objects might share the same prototype\n // IF both items add an event listener with the same function, then you try to remove just one\n // it will remove both because they both have the same guid.\n // when using this, you need to use the bind method when you remove the listener as well.\n // currently used in text tracks\n\n bound.guid = uid ? uid + '_' + fn.guid : fn.guid;\n return bound;\n};\n/**\n * Wraps the given function, `fn`, with a new function that only invokes `fn`\n * at most once per every `wait` milliseconds.\n *\n * @function\n * @param {Function} fn\n * The function to be throttled.\n *\n * @param {number} wait\n * The number of milliseconds by which to throttle.\n *\n * @return {Function}\n */\n\nvar throttle = function throttle(fn, wait) {\n var last = window$1.performance.now();\n\n var throttled = function throttled() {\n var now = window$1.performance.now();\n\n if (now - last >= wait) {\n fn.apply(void 0, arguments);\n last = now;\n }\n };\n\n return throttled;\n};\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked.\n *\n * Inspired by lodash and underscore implementations.\n *\n * @function\n * @param {Function} func\n * The function to wrap with debounce behavior.\n *\n * @param {number} wait\n * The number of milliseconds to wait after the last invocation.\n *\n * @param {boolean} [immediate]\n * Whether or not to invoke the function immediately upon creation.\n *\n * @param {Object} [context=window]\n * The \"context\" in which the debounced function should debounce. For\n * example, if this function should be tied to a Video.js player,\n * the player can be passed here. Alternatively, defaults to the\n * global `window` object.\n *\n * @return {Function}\n * A debounced function.\n */\n\nvar debounce = function debounce(func, wait, immediate, context) {\n if (context === void 0) {\n context = window$1;\n }\n\n var timeout;\n\n var cancel = function cancel() {\n context.clearTimeout(timeout);\n timeout = null;\n };\n /* eslint-disable consistent-this */\n\n\n var debounced = function debounced() {\n var self = this;\n var args = arguments;\n\n var _later = function later() {\n timeout = null;\n _later = null;\n\n if (!immediate) {\n func.apply(self, args);\n }\n };\n\n if (!timeout && immediate) {\n func.apply(self, args);\n }\n\n context.clearTimeout(timeout);\n timeout = context.setTimeout(_later, wait);\n };\n /* eslint-enable consistent-this */\n\n\n debounced.cancel = cancel;\n return debounced;\n};\n\n/**\n * @file src/js/event-target.js\n */\n/**\n * `EventTarget` is a class that can have the same API as the DOM `EventTarget`. It\n * adds shorthand functions that wrap around lengthy functions. For example:\n * the `on` function is a wrapper around `addEventListener`.\n *\n * @see [EventTarget Spec]{@link https://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-EventTarget}\n * @class EventTarget\n */\n\nvar EventTarget$2 = function EventTarget() {};\n/**\n * A Custom DOM event.\n *\n * @typedef {Object} EventTarget~Event\n * @see [Properties]{@link https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent}\n */\n\n/**\n * All event listeners should follow the following format.\n *\n * @callback EventTarget~EventListener\n * @this {EventTarget}\n *\n * @param {EventTarget~Event} event\n * the event that triggered this function\n *\n * @param {Object} [hash]\n * hash of data sent during the event\n */\n\n/**\n * An object containing event names as keys and booleans as values.\n *\n * > NOTE: If an event name is set to a true value here {@link EventTarget#trigger}\n * will have extra functionality. See that function for more information.\n *\n * @property EventTarget.prototype.allowedEvents_\n * @private\n */\n\n\nEventTarget$2.prototype.allowedEvents_ = {};\n/**\n * Adds an `event listener` to an instance of an `EventTarget`. An `event listener` is a\n * function that will get called when an event with a certain name gets triggered.\n *\n * @param {string|string[]} type\n * An event name or an array of event names.\n *\n * @param {EventTarget~EventListener} fn\n * The function to call with `EventTarget`s\n */\n\nEventTarget$2.prototype.on = function (type, fn) {\n // Remove the addEventListener alias before calling Events.on\n // so we don't get into an infinite type loop\n var ael = this.addEventListener;\n\n this.addEventListener = function () {};\n\n on(this, type, fn);\n this.addEventListener = ael;\n};\n/**\n * An alias of {@link EventTarget#on}. Allows `EventTarget` to mimic\n * the standard DOM API.\n *\n * @function\n * @see {@link EventTarget#on}\n */\n\n\nEventTarget$2.prototype.addEventListener = EventTarget$2.prototype.on;\n/**\n * Removes an `event listener` for a specific event from an instance of `EventTarget`.\n * This makes it so that the `event listener` will no longer get called when the\n * named event happens.\n *\n * @param {string|string[]} type\n * An event name or an array of event names.\n *\n * @param {EventTarget~EventListener} fn\n * The function to remove.\n */\n\nEventTarget$2.prototype.off = function (type, fn) {\n off(this, type, fn);\n};\n/**\n * An alias of {@link EventTarget#off}. Allows `EventTarget` to mimic\n * the standard DOM API.\n *\n * @function\n * @see {@link EventTarget#off}\n */\n\n\nEventTarget$2.prototype.removeEventListener = EventTarget$2.prototype.off;\n/**\n * This function will add an `event listener` that gets triggered only once. After the\n * first trigger it will get removed. This is like adding an `event listener`\n * with {@link EventTarget#on} that calls {@link EventTarget#off} on itself.\n *\n * @param {string|string[]} type\n * An event name or an array of event names.\n *\n * @param {EventTarget~EventListener} fn\n * The function to be called once for each event name.\n */\n\nEventTarget$2.prototype.one = function (type, fn) {\n // Remove the addEventListener aliasing Events.on\n // so we don't get into an infinite type loop\n var ael = this.addEventListener;\n\n this.addEventListener = function () {};\n\n one(this, type, fn);\n this.addEventListener = ael;\n};\n\nEventTarget$2.prototype.any = function (type, fn) {\n // Remove the addEventListener aliasing Events.on\n // so we don't get into an infinite type loop\n var ael = this.addEventListener;\n\n this.addEventListener = function () {};\n\n any(this, type, fn);\n this.addEventListener = ael;\n};\n/**\n * This function causes an event to happen. This will then cause any `event listeners`\n * that are waiting for that event, to get called. If there are no `event listeners`\n * for an event then nothing will happen.\n *\n * If the name of the `Event` that is being triggered is in `EventTarget.allowedEvents_`.\n * Trigger will also call the `on` + `uppercaseEventName` function.\n *\n * Example:\n * 'click' is in `EventTarget.allowedEvents_`, so, trigger will attempt to call\n * `onClick` if it exists.\n *\n * @param {string|EventTarget~Event|Object} event\n * The name of the event, an `Event`, or an object with a key of type set to\n * an event name.\n */\n\n\nEventTarget$2.prototype.trigger = function (event) {\n var type = event.type || event; // deprecation\n // In a future version we should default target to `this`\n // similar to how we default the target to `elem` in\n // `Events.trigger`. Right now the default `target` will be\n // `document` due to the `Event.fixEvent` call.\n\n if (typeof event === 'string') {\n event = {\n type: type\n };\n }\n\n event = fixEvent(event);\n\n if (this.allowedEvents_[type] && this['on' + type]) {\n this['on' + type](event);\n }\n\n trigger(this, event);\n};\n/**\n * An alias of {@link EventTarget#trigger}. Allows `EventTarget` to mimic\n * the standard DOM API.\n *\n * @function\n * @see {@link EventTarget#trigger}\n */\n\n\nEventTarget$2.prototype.dispatchEvent = EventTarget$2.prototype.trigger;\nvar EVENT_MAP;\n\nEventTarget$2.prototype.queueTrigger = function (event) {\n var _this = this;\n\n // only set up EVENT_MAP if it'll be used\n if (!EVENT_MAP) {\n EVENT_MAP = new Map();\n }\n\n var type = event.type || event;\n var map = EVENT_MAP.get(this);\n\n if (!map) {\n map = new Map();\n EVENT_MAP.set(this, map);\n }\n\n var oldTimeout = map.get(type);\n map[\"delete\"](type);\n window$1.clearTimeout(oldTimeout);\n var timeout = window$1.setTimeout(function () {\n // if we cleared out all timeouts for the current target, delete its map\n if (map.size === 0) {\n map = null;\n EVENT_MAP[\"delete\"](_this);\n }\n\n _this.trigger(event);\n }, 0);\n map.set(type, timeout);\n};\n\n/**\n * @file mixins/evented.js\n * @module evented\n */\n\nvar objName = function objName(obj) {\n if (typeof obj.name === 'function') {\n return obj.name();\n }\n\n if (typeof obj.name === 'string') {\n return obj.name;\n }\n\n if (obj.name_) {\n return obj.name_;\n }\n\n if (obj.constructor && obj.constructor.name) {\n return obj.constructor.name;\n }\n\n return typeof obj;\n};\n/**\n * Returns whether or not an object has had the evented mixin applied.\n *\n * @param {Object} object\n * An object to test.\n *\n * @return {boolean}\n * Whether or not the object appears to be evented.\n */\n\n\nvar isEvented = function isEvented(object) {\n return object instanceof EventTarget$2 || !!object.eventBusEl_ && ['on', 'one', 'off', 'trigger'].every(function (k) {\n return typeof object[k] === 'function';\n });\n};\n/**\n * Adds a callback to run after the evented mixin applied.\n *\n * @param {Object} object\n * An object to Add\n * @param {Function} callback\n * The callback to run.\n */\n\n\nvar addEventedCallback = function addEventedCallback(target, callback) {\n if (isEvented(target)) {\n callback();\n } else {\n if (!target.eventedCallbacks) {\n target.eventedCallbacks = [];\n }\n\n target.eventedCallbacks.push(callback);\n }\n};\n/**\n * Whether a value is a valid event type - non-empty string or array.\n *\n * @private\n * @param {string|Array} type\n * The type value to test.\n *\n * @return {boolean}\n * Whether or not the type is a valid event type.\n */\n\n\nvar isValidEventType = function isValidEventType(type) {\n return (// The regex here verifies that the `type` contains at least one non-\n // whitespace character.\n typeof type === 'string' && /\\S/.test(type) || Array.isArray(type) && !!type.length\n );\n};\n/**\n * Validates a value to determine if it is a valid event target. Throws if not.\n *\n * @private\n * @throws {Error}\n * If the target does not appear to be a valid event target.\n *\n * @param {Object} target\n * The object to test.\n *\n * @param {Object} obj\n * The evented object we are validating for\n *\n * @param {string} fnName\n * The name of the evented mixin function that called this.\n */\n\n\nvar validateTarget = function validateTarget(target, obj, fnName) {\n if (!target || !target.nodeName && !isEvented(target)) {\n throw new Error(\"Invalid target for \" + objName(obj) + \"#\" + fnName + \"; must be a DOM node or evented object.\");\n }\n};\n/**\n * Validates a value to determine if it is a valid event target. Throws if not.\n *\n * @private\n * @throws {Error}\n * If the type does not appear to be a valid event type.\n *\n * @param {string|Array} type\n * The type to test.\n *\n * @param {Object} obj\n* The evented object we are validating for\n *\n * @param {string} fnName\n * The name of the evented mixin function that called this.\n */\n\n\nvar validateEventType = function validateEventType(type, obj, fnName) {\n if (!isValidEventType(type)) {\n throw new Error(\"Invalid event type for \" + objName(obj) + \"#\" + fnName + \"; must be a non-empty string or array.\");\n }\n};\n/**\n * Validates a value to determine if it is a valid listener. Throws if not.\n *\n * @private\n * @throws {Error}\n * If the listener is not a function.\n *\n * @param {Function} listener\n * The listener to test.\n *\n * @param {Object} obj\n * The evented object we are validating for\n *\n * @param {string} fnName\n * The name of the evented mixin function that called this.\n */\n\n\nvar validateListener = function validateListener(listener, obj, fnName) {\n if (typeof listener !== 'function') {\n throw new Error(\"Invalid listener for \" + objName(obj) + \"#\" + fnName + \"; must be a function.\");\n }\n};\n/**\n * Takes an array of arguments given to `on()` or `one()`, validates them, and\n * normalizes them into an object.\n *\n * @private\n * @param {Object} self\n * The evented object on which `on()` or `one()` was called. This\n * object will be bound as the `this` value for the listener.\n *\n * @param {Array} args\n * An array of arguments passed to `on()` or `one()`.\n *\n * @param {string} fnName\n * The name of the evented mixin function that called this.\n *\n * @return {Object}\n * An object containing useful values for `on()` or `one()` calls.\n */\n\n\nvar normalizeListenArgs = function normalizeListenArgs(self, args, fnName) {\n // If the number of arguments is less than 3, the target is always the\n // evented object itself.\n var isTargetingSelf = args.length < 3 || args[0] === self || args[0] === self.eventBusEl_;\n var target;\n var type;\n var listener;\n\n if (isTargetingSelf) {\n target = self.eventBusEl_; // Deal with cases where we got 3 arguments, but we are still listening to\n // the evented object itself.\n\n if (args.length >= 3) {\n args.shift();\n }\n\n type = args[0];\n listener = args[1];\n } else {\n target = args[0];\n type = args[1];\n listener = args[2];\n }\n\n validateTarget(target, self, fnName);\n validateEventType(type, self, fnName);\n validateListener(listener, self, fnName);\n listener = bind(self, listener);\n return {\n isTargetingSelf: isTargetingSelf,\n target: target,\n type: type,\n listener: listener\n };\n};\n/**\n * Adds the listener to the event type(s) on the target, normalizing for\n * the type of target.\n *\n * @private\n * @param {Element|Object} target\n * A DOM node or evented object.\n *\n * @param {string} method\n * The event binding method to use (\"on\" or \"one\").\n *\n * @param {string|Array} type\n * One or more event type(s).\n *\n * @param {Function} listener\n * A listener function.\n */\n\n\nvar listen = function listen(target, method, type, listener) {\n validateTarget(target, target, method);\n\n if (target.nodeName) {\n Events[method](target, type, listener);\n } else {\n target[method](type, listener);\n }\n};\n/**\n * Contains methods that provide event capabilities to an object which is passed\n * to {@link module:evented|evented}.\n *\n * @mixin EventedMixin\n */\n\n\nvar EventedMixin = {\n /**\n * Add a listener to an event (or events) on this object or another evented\n * object.\n *\n * @param {string|Array|Element|Object} targetOrType\n * If this is a string or array, it represents the event type(s)\n * that will trigger the listener.\n *\n * Another evented object can be passed here instead, which will\n * cause the listener to listen for events on _that_ object.\n *\n * In either case, the listener's `this` value will be bound to\n * this object.\n *\n * @param {string|Array|Function} typeOrListener\n * If the first argument was a string or array, this should be the\n * listener function. Otherwise, this is a string or array of event\n * type(s).\n *\n * @param {Function} [listener]\n * If the first argument was another evented object, this will be\n * the listener function.\n */\n on: function on() {\n var _this = this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var _normalizeListenArgs = normalizeListenArgs(this, args, 'on'),\n isTargetingSelf = _normalizeListenArgs.isTargetingSelf,\n target = _normalizeListenArgs.target,\n type = _normalizeListenArgs.type,\n listener = _normalizeListenArgs.listener;\n\n listen(target, 'on', type, listener); // If this object is listening to another evented object.\n\n if (!isTargetingSelf) {\n // If this object is disposed, remove the listener.\n var removeListenerOnDispose = function removeListenerOnDispose() {\n return _this.off(target, type, listener);\n }; // Use the same function ID as the listener so we can remove it later it\n // using the ID of the original listener.\n\n\n removeListenerOnDispose.guid = listener.guid; // Add a listener to the target's dispose event as well. This ensures\n // that if the target is disposed BEFORE this object, we remove the\n // removal listener that was just added. Otherwise, we create a memory leak.\n\n var removeRemoverOnTargetDispose = function removeRemoverOnTargetDispose() {\n return _this.off('dispose', removeListenerOnDispose);\n }; // Use the same function ID as the listener so we can remove it later\n // it using the ID of the original listener.\n\n\n removeRemoverOnTargetDispose.guid = listener.guid;\n listen(this, 'on', 'dispose', removeListenerOnDispose);\n listen(target, 'on', 'dispose', removeRemoverOnTargetDispose);\n }\n },\n\n /**\n * Add a listener to an event (or events) on this object or another evented\n * object. The listener will be called once per event and then removed.\n *\n * @param {string|Array|Element|Object} targetOrType\n * If this is a string or array, it represents the event type(s)\n * that will trigger the listener.\n *\n * Another evented object can be passed here instead, which will\n * cause the listener to listen for events on _that_ object.\n *\n * In either case, the listener's `this` value will be bound to\n * this object.\n *\n * @param {string|Array|Function} typeOrListener\n * If the first argument was a string or array, this should be the\n * listener function. Otherwise, this is a string or array of event\n * type(s).\n *\n * @param {Function} [listener]\n * If the first argument was another evented object, this will be\n * the listener function.\n */\n one: function one() {\n var _this2 = this;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var _normalizeListenArgs2 = normalizeListenArgs(this, args, 'one'),\n isTargetingSelf = _normalizeListenArgs2.isTargetingSelf,\n target = _normalizeListenArgs2.target,\n type = _normalizeListenArgs2.type,\n listener = _normalizeListenArgs2.listener; // Targeting this evented object.\n\n\n if (isTargetingSelf) {\n listen(target, 'one', type, listener); // Targeting another evented object.\n } else {\n // TODO: This wrapper is incorrect! It should only\n // remove the wrapper for the event type that called it.\n // Instead all listners are removed on the first trigger!\n // see https://github.com/videojs/video.js/issues/5962\n var wrapper = function wrapper() {\n _this2.off(target, type, wrapper);\n\n for (var _len3 = arguments.length, largs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n largs[_key3] = arguments[_key3];\n }\n\n listener.apply(null, largs);\n }; // Use the same function ID as the listener so we can remove it later\n // it using the ID of the original listener.\n\n\n wrapper.guid = listener.guid;\n listen(target, 'one', type, wrapper);\n }\n },\n\n /**\n * Add a listener to an event (or events) on this object or another evented\n * object. The listener will only be called once for the first event that is triggered\n * then removed.\n *\n * @param {string|Array|Element|Object} targetOrType\n * If this is a string or array, it represents the event type(s)\n * that will trigger the listener.\n *\n * Another evented object can be passed here instead, which will\n * cause the listener to listen for events on _that_ object.\n *\n * In either case, the listener's `this` value will be bound to\n * this object.\n *\n * @param {string|Array|Function} typeOrListener\n * If the first argument was a string or array, this should be the\n * listener function. Otherwise, this is a string or array of event\n * type(s).\n *\n * @param {Function} [listener]\n * If the first argument was another evented object, this will be\n * the listener function.\n */\n any: function any() {\n var _this3 = this;\n\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n var _normalizeListenArgs3 = normalizeListenArgs(this, args, 'any'),\n isTargetingSelf = _normalizeListenArgs3.isTargetingSelf,\n target = _normalizeListenArgs3.target,\n type = _normalizeListenArgs3.type,\n listener = _normalizeListenArgs3.listener; // Targeting this evented object.\n\n\n if (isTargetingSelf) {\n listen(target, 'any', type, listener); // Targeting another evented object.\n } else {\n var wrapper = function wrapper() {\n _this3.off(target, type, wrapper);\n\n for (var _len5 = arguments.length, largs = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n largs[_key5] = arguments[_key5];\n }\n\n listener.apply(null, largs);\n }; // Use the same function ID as the listener so we can remove it later\n // it using the ID of the original listener.\n\n\n wrapper.guid = listener.guid;\n listen(target, 'any', type, wrapper);\n }\n },\n\n /**\n * Removes listener(s) from event(s) on an evented object.\n *\n * @param {string|Array|Element|Object} [targetOrType]\n * If this is a string or array, it represents the event type(s).\n *\n * Another evented object can be passed here instead, in which case\n * ALL 3 arguments are _required_.\n *\n * @param {string|Array|Function} [typeOrListener]\n * If the first argument was a string or array, this may be the\n * listener function. Otherwise, this is a string or array of event\n * type(s).\n *\n * @param {Function} [listener]\n * If the first argument was another evented object, this will be\n * the listener function; otherwise, _all_ listeners bound to the\n * event type(s) will be removed.\n */\n off: function off$1(targetOrType, typeOrListener, listener) {\n // Targeting this evented object.\n if (!targetOrType || isValidEventType(targetOrType)) {\n off(this.eventBusEl_, targetOrType, typeOrListener); // Targeting another evented object.\n } else {\n var target = targetOrType;\n var type = typeOrListener; // Fail fast and in a meaningful way!\n\n validateTarget(target, this, 'off');\n validateEventType(type, this, 'off');\n validateListener(listener, this, 'off'); // Ensure there's at least a guid, even if the function hasn't been used\n\n listener = bind(this, listener); // Remove the dispose listener on this evented object, which was given\n // the same guid as the event listener in on().\n\n this.off('dispose', listener);\n\n if (target.nodeName) {\n off(target, type, listener);\n off(target, 'dispose', listener);\n } else if (isEvented(target)) {\n target.off(type, listener);\n target.off('dispose', listener);\n }\n }\n },\n\n /**\n * Fire an event on this evented object, causing its listeners to be called.\n *\n * @param {string|Object} event\n * An event type or an object with a type property.\n *\n * @param {Object} [hash]\n * An additional object to pass along to listeners.\n *\n * @return {boolean}\n * Whether or not the default behavior was prevented.\n */\n trigger: function trigger$1(event, hash) {\n validateTarget(this.eventBusEl_, this, 'trigger');\n var type = event && typeof event !== 'string' ? event.type : event;\n\n if (!isValidEventType(type)) {\n var error = \"Invalid event type for \" + objName(this) + \"#trigger; \" + 'must be a non-empty string or object with a type key that has a non-empty value.';\n\n if (event) {\n (this.log || log$1).error(error);\n } else {\n throw new Error(error);\n }\n }\n\n return trigger(this.eventBusEl_, event, hash);\n }\n};\n/**\n * Applies {@link module:evented~EventedMixin|EventedMixin} to a target object.\n *\n * @param {Object} target\n * The object to which to add event methods.\n *\n * @param {Object} [options={}]\n * Options for customizing the mixin behavior.\n *\n * @param {string} [options.eventBusKey]\n * By default, adds a `eventBusEl_` DOM element to the target object,\n * which is used as an event bus. If the target object already has a\n * DOM element that should be used, pass its key here.\n *\n * @return {Object}\n * The target object.\n */\n\nfunction evented(target, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n eventBusKey = _options.eventBusKey; // Set or create the eventBusEl_.\n\n if (eventBusKey) {\n if (!target[eventBusKey].nodeName) {\n throw new Error(\"The eventBusKey \\\"\" + eventBusKey + \"\\\" does not refer to an element.\");\n }\n\n target.eventBusEl_ = target[eventBusKey];\n } else {\n target.eventBusEl_ = createEl('span', {\n className: 'vjs-event-bus'\n });\n }\n\n assign(target, EventedMixin);\n\n if (target.eventedCallbacks) {\n target.eventedCallbacks.forEach(function (callback) {\n callback();\n });\n } // When any evented object is disposed, it removes all its listeners.\n\n\n target.on('dispose', function () {\n target.off();\n [target, target.el_, target.eventBusEl_].forEach(function (val) {\n if (val && DomData.has(val)) {\n DomData[\"delete\"](val);\n }\n });\n window$1.setTimeout(function () {\n target.eventBusEl_ = null;\n }, 0);\n });\n return target;\n}\n\n/**\n * @file mixins/stateful.js\n * @module stateful\n */\n/**\n * Contains methods that provide statefulness to an object which is passed\n * to {@link module:stateful}.\n *\n * @mixin StatefulMixin\n */\n\nvar StatefulMixin = {\n /**\n * A hash containing arbitrary keys and values representing the state of\n * the object.\n *\n * @type {Object}\n */\n state: {},\n\n /**\n * Set the state of an object by mutating its\n * {@link module:stateful~StatefulMixin.state|state} object in place.\n *\n * @fires module:stateful~StatefulMixin#statechanged\n * @param {Object|Function} stateUpdates\n * A new set of properties to shallow-merge into the plugin state.\n * Can be a plain object or a function returning a plain object.\n *\n * @return {Object|undefined}\n * An object containing changes that occurred. If no changes\n * occurred, returns `undefined`.\n */\n setState: function setState(stateUpdates) {\n var _this = this;\n\n // Support providing the `stateUpdates` state as a function.\n if (typeof stateUpdates === 'function') {\n stateUpdates = stateUpdates();\n }\n\n var changes;\n each(stateUpdates, function (value, key) {\n // Record the change if the value is different from what's in the\n // current state.\n if (_this.state[key] !== value) {\n changes = changes || {};\n changes[key] = {\n from: _this.state[key],\n to: value\n };\n }\n\n _this.state[key] = value;\n }); // Only trigger \"statechange\" if there were changes AND we have a trigger\n // function. This allows us to not require that the target object be an\n // evented object.\n\n if (changes && isEvented(this)) {\n /**\n * An event triggered on an object that is both\n * {@link module:stateful|stateful} and {@link module:evented|evented}\n * indicating that its state has changed.\n *\n * @event module:stateful~StatefulMixin#statechanged\n * @type {Object}\n * @property {Object} changes\n * A hash containing the properties that were changed and\n * the values they were changed `from` and `to`.\n */\n this.trigger({\n changes: changes,\n type: 'statechanged'\n });\n }\n\n return changes;\n }\n};\n/**\n * Applies {@link module:stateful~StatefulMixin|StatefulMixin} to a target\n * object.\n *\n * If the target object is {@link module:evented|evented} and has a\n * `handleStateChanged` method, that method will be automatically bound to the\n * `statechanged` event on itself.\n *\n * @param {Object} target\n * The object to be made stateful.\n *\n * @param {Object} [defaultState]\n * A default set of properties to populate the newly-stateful object's\n * `state` property.\n *\n * @return {Object}\n * Returns the `target`.\n */\n\nfunction stateful(target, defaultState) {\n assign(target, StatefulMixin); // This happens after the mixing-in because we need to replace the `state`\n // added in that step.\n\n target.state = assign({}, target.state, defaultState); // Auto-bind the `handleStateChanged` method of the target object if it exists.\n\n if (typeof target.handleStateChanged === 'function' && isEvented(target)) {\n target.on('statechanged', target.handleStateChanged);\n }\n\n return target;\n}\n\n/**\n * @file string-cases.js\n * @module to-lower-case\n */\n\n/**\n * Lowercase the first letter of a string.\n *\n * @param {string} string\n * String to be lowercased\n *\n * @return {string}\n * The string with a lowercased first letter\n */\nvar toLowerCase = function toLowerCase(string) {\n if (typeof string !== 'string') {\n return string;\n }\n\n return string.replace(/./, function (w) {\n return w.toLowerCase();\n });\n};\n/**\n * Uppercase the first letter of a string.\n *\n * @param {string} string\n * String to be uppercased\n *\n * @return {string}\n * The string with an uppercased first letter\n */\n\nvar toTitleCase$1 = function toTitleCase(string) {\n if (typeof string !== 'string') {\n return string;\n }\n\n return string.replace(/./, function (w) {\n return w.toUpperCase();\n });\n};\n/**\n * Compares the TitleCase versions of the two strings for equality.\n *\n * @param {string} str1\n * The first string to compare\n *\n * @param {string} str2\n * The second string to compare\n *\n * @return {boolean}\n * Whether the TitleCase versions of the strings are equal\n */\n\nvar titleCaseEquals = function titleCaseEquals(str1, str2) {\n return toTitleCase$1(str1) === toTitleCase$1(str2);\n};\n\n/**\n * @file merge-options.js\n * @module merge-options\n */\n/**\n * Merge two objects recursively.\n *\n * Performs a deep merge like\n * {@link https://lodash.com/docs/4.17.10#merge|lodash.merge}, but only merges\n * plain objects (not arrays, elements, or anything else).\n *\n * Non-plain object values will be copied directly from the right-most\n * argument.\n *\n * @static\n * @param {Object[]} sources\n * One or more objects to merge into a new object.\n *\n * @return {Object}\n * A new object that is the merged result of all sources.\n */\n\nfunction mergeOptions$3() {\n var result = {};\n\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n\n sources.forEach(function (source) {\n if (!source) {\n return;\n }\n\n each(source, function (value, key) {\n if (!isPlain(value)) {\n result[key] = value;\n return;\n }\n\n if (!isPlain(result[key])) {\n result[key] = {};\n }\n\n result[key] = mergeOptions$3(result[key], value);\n });\n });\n return result;\n}\n\nvar MapSham = /*#__PURE__*/function () {\n function MapSham() {\n this.map_ = {};\n }\n\n var _proto = MapSham.prototype;\n\n _proto.has = function has(key) {\n return key in this.map_;\n };\n\n _proto[\"delete\"] = function _delete(key) {\n var has = this.has(key);\n delete this.map_[key];\n return has;\n };\n\n _proto.set = function set(key, value) {\n this.map_[key] = value;\n return this;\n };\n\n _proto.forEach = function forEach(callback, thisArg) {\n for (var key in this.map_) {\n callback.call(thisArg, this.map_[key], key, this);\n }\n };\n\n return MapSham;\n}();\n\nvar Map$1 = window$1.Map ? window$1.Map : MapSham;\n\nvar SetSham = /*#__PURE__*/function () {\n function SetSham() {\n this.set_ = {};\n }\n\n var _proto = SetSham.prototype;\n\n _proto.has = function has(key) {\n return key in this.set_;\n };\n\n _proto[\"delete\"] = function _delete(key) {\n var has = this.has(key);\n delete this.set_[key];\n return has;\n };\n\n _proto.add = function add(key) {\n this.set_[key] = 1;\n return this;\n };\n\n _proto.forEach = function forEach(callback, thisArg) {\n for (var key in this.set_) {\n callback.call(thisArg, key, key, this);\n }\n };\n\n return SetSham;\n}();\n\nvar Set$1 = window$1.Set ? window$1.Set : SetSham;\n\n/**\n * Player Component - Base class for all UI objects\n *\n * @file component.js\n */\n/**\n * Base class for all UI Components.\n * Components are UI objects which represent both a javascript object and an element\n * in the DOM. They can be children of other components, and can have\n * children themselves.\n *\n * Components can also use methods from {@link EventTarget}\n */\n\nvar Component$1 = /*#__PURE__*/function () {\n /**\n * A callback that is called when a component is ready. Does not have any\n * paramters and any callback value will be ignored.\n *\n * @callback Component~ReadyCallback\n * @this Component\n */\n\n /**\n * Creates an instance of this class.\n *\n * @param {Player} player\n * The `Player` that this class should be attached to.\n *\n * @param {Object} [options]\n * The key/value store of component options.\n *\n * @param {Object[]} [options.children]\n * An array of children objects to intialize this component with. Children objects have\n * a name property that will be used if more than one component of the same type needs to be\n * added.\n *\n * @param {string} [options.className]\n * A class or space separated list of classes to add the component\n *\n * @param {Component~ReadyCallback} [ready]\n * Function that gets called when the `Component` is ready.\n */\n function Component(player, options, ready) {\n var _this = this;\n\n // The component might be the player itself and we can't pass `this` to super\n if (!player && this.play) {\n this.player_ = player = this; // eslint-disable-line\n } else {\n this.player_ = player;\n }\n\n this.isDisposed_ = false; // Hold the reference to the parent component via `addChild` method\n\n this.parentComponent_ = null; // Make a copy of prototype.options_ to protect against overriding defaults\n\n this.options_ = mergeOptions$3({}, this.options_); // Updated options with supplied options\n\n options = this.options_ = mergeOptions$3(this.options_, options); // Get ID from options or options element if one is supplied\n\n this.id_ = options.id || options.el && options.el.id; // If there was no ID from the options, generate one\n\n if (!this.id_) {\n // Don't require the player ID function in the case of mock players\n var id = player && player.id && player.id() || 'no_player';\n this.id_ = id + \"_component_\" + newGUID();\n }\n\n this.name_ = options.name || null; // Create element if one wasn't provided in options\n\n if (options.el) {\n this.el_ = options.el;\n } else if (options.createEl !== false) {\n this.el_ = this.createEl();\n }\n\n if (options.className && this.el_) {\n options.className.split(' ').forEach(function (c) {\n return _this.addClass(c);\n });\n } // if evented is anything except false, we want to mixin in evented\n\n\n if (options.evented !== false) {\n // Make this an evented object and use `el_`, if available, as its event bus\n evented(this, {\n eventBusKey: this.el_ ? 'el_' : null\n });\n this.handleLanguagechange = this.handleLanguagechange.bind(this);\n this.on(this.player_, 'languagechange', this.handleLanguagechange);\n }\n\n stateful(this, this.constructor.defaultState);\n this.children_ = [];\n this.childIndex_ = {};\n this.childNameIndex_ = {};\n this.setTimeoutIds_ = new Set$1();\n this.setIntervalIds_ = new Set$1();\n this.rafIds_ = new Set$1();\n this.namedRafs_ = new Map$1();\n this.clearingTimersOnDispose_ = false; // Add any child components in options\n\n if (options.initChildren !== false) {\n this.initChildren();\n } // Don't want to trigger ready here or it will go before init is actually\n // finished for all children that run this constructor\n\n\n this.ready(ready);\n\n if (options.reportTouchActivity !== false) {\n this.enableTouchActivity();\n }\n }\n /**\n * Dispose of the `Component` and all child components.\n *\n * @fires Component#dispose\n *\n * @param {Object} options\n * @param {Element} options.originalEl element with which to replace player element\n */\n\n\n var _proto = Component.prototype;\n\n _proto.dispose = function dispose(options) {\n if (options === void 0) {\n options = {};\n }\n\n // Bail out if the component has already been disposed.\n if (this.isDisposed_) {\n return;\n }\n\n if (this.readyQueue_) {\n this.readyQueue_.length = 0;\n }\n /**\n * Triggered when a `Component` is disposed.\n *\n * @event Component#dispose\n * @type {EventTarget~Event}\n *\n * @property {boolean} [bubbles=false]\n * set to false so that the dispose event does not\n * bubble up\n */\n\n\n this.trigger({\n type: 'dispose',\n bubbles: false\n });\n this.isDisposed_ = true; // Dispose all children.\n\n if (this.children_) {\n for (var i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i].dispose) {\n this.children_[i].dispose();\n }\n }\n } // Delete child references\n\n\n this.children_ = null;\n this.childIndex_ = null;\n this.childNameIndex_ = null;\n this.parentComponent_ = null;\n\n if (this.el_) {\n // Remove element from DOM\n if (this.el_.parentNode) {\n if (options.restoreEl) {\n this.el_.parentNode.replaceChild(options.restoreEl, this.el_);\n } else {\n this.el_.parentNode.removeChild(this.el_);\n }\n }\n\n this.el_ = null;\n } // remove reference to the player after disposing of the element\n\n\n this.player_ = null;\n }\n /**\n * Determine whether or not this component has been disposed.\n *\n * @return {boolean}\n * If the component has been disposed, will be `true`. Otherwise, `false`.\n */\n ;\n\n _proto.isDisposed = function isDisposed() {\n return Boolean(this.isDisposed_);\n }\n /**\n * Return the {@link Player} that the `Component` has attached to.\n *\n * @return {Player}\n * The player that this `Component` has attached to.\n */\n ;\n\n _proto.player = function player() {\n return this.player_;\n }\n /**\n * Deep merge of options objects with new options.\n * > Note: When both `obj` and `options` contain properties whose values are objects.\n * The two properties get merged using {@link module:mergeOptions}\n *\n * @param {Object} obj\n * The object that contains new options.\n *\n * @return {Object}\n * A new object of `this.options_` and `obj` merged together.\n */\n ;\n\n _proto.options = function options(obj) {\n if (!obj) {\n return this.options_;\n }\n\n this.options_ = mergeOptions$3(this.options_, obj);\n return this.options_;\n }\n /**\n * Get the `Component`s DOM element\n *\n * @return {Element}\n * The DOM element for this `Component`.\n */\n ;\n\n _proto.el = function el() {\n return this.el_;\n }\n /**\n * Create the `Component`s DOM element.\n *\n * @param {string} [tagName]\n * Element's DOM node type. e.g. 'div'\n *\n * @param {Object} [properties]\n * An object of properties that should be set.\n *\n * @param {Object} [attributes]\n * An object of attributes that should be set.\n *\n * @return {Element}\n * The element that gets created.\n */\n ;\n\n _proto.createEl = function createEl$1(tagName, properties, attributes) {\n return createEl(tagName, properties, attributes);\n }\n /**\n * Localize a string given the string in english.\n *\n * If tokens are provided, it'll try and run a simple token replacement on the provided string.\n * The tokens it looks for look like `{1}` with the index being 1-indexed into the tokens array.\n *\n * If a `defaultValue` is provided, it'll use that over `string`,\n * if a value isn't found in provided language files.\n * This is useful if you want to have a descriptive key for token replacement\n * but have a succinct localized string and not require `en.json` to be included.\n *\n * Currently, it is used for the progress bar timing.\n * ```js\n * {\n * \"progress bar timing: currentTime={1} duration={2}\": \"{1} of {2}\"\n * }\n * ```\n * It is then used like so:\n * ```js\n * this.localize('progress bar timing: currentTime={1} duration{2}',\n * [this.player_.currentTime(), this.player_.duration()],\n * '{1} of {2}');\n * ```\n *\n * Which outputs something like: `01:23 of 24:56`.\n *\n *\n * @param {string} string\n * The string to localize and the key to lookup in the language files.\n * @param {string[]} [tokens]\n * If the current item has token replacements, provide the tokens here.\n * @param {string} [defaultValue]\n * Defaults to `string`. Can be a default value to use for token replacement\n * if the lookup key is needed to be separate.\n *\n * @return {string}\n * The localized string or if no localization exists the english string.\n */\n ;\n\n _proto.localize = function localize(string, tokens, defaultValue) {\n if (defaultValue === void 0) {\n defaultValue = string;\n }\n\n var code = this.player_.language && this.player_.language();\n var languages = this.player_.languages && this.player_.languages();\n var language = languages && languages[code];\n var primaryCode = code && code.split('-')[0];\n var primaryLang = languages && languages[primaryCode];\n var localizedString = defaultValue;\n\n if (language && language[string]) {\n localizedString = language[string];\n } else if (primaryLang && primaryLang[string]) {\n localizedString = primaryLang[string];\n }\n\n if (tokens) {\n localizedString = localizedString.replace(/\\{(\\d+)\\}/g, function (match, index) {\n var value = tokens[index - 1];\n var ret = value;\n\n if (typeof value === 'undefined') {\n ret = match;\n }\n\n return ret;\n });\n }\n\n return localizedString;\n }\n /**\n * Handles language change for the player in components. Should be overriden by sub-components.\n *\n * @abstract\n */\n ;\n\n _proto.handleLanguagechange = function handleLanguagechange() {}\n /**\n * Return the `Component`s DOM element. This is where children get inserted.\n * This will usually be the the same as the element returned in {@link Component#el}.\n *\n * @return {Element}\n * The content element for this `Component`.\n */\n ;\n\n _proto.contentEl = function contentEl() {\n return this.contentEl_ || this.el_;\n }\n /**\n * Get this `Component`s ID\n *\n * @return {string}\n * The id of this `Component`\n */\n ;\n\n _proto.id = function id() {\n return this.id_;\n }\n /**\n * Get the `Component`s name. The name gets used to reference the `Component`\n * and is set during registration.\n *\n * @return {string}\n * The name of this `Component`.\n */\n ;\n\n _proto.name = function name() {\n return this.name_;\n }\n /**\n * Get an array of all child components\n *\n * @return {Array}\n * The children\n */\n ;\n\n _proto.children = function children() {\n return this.children_;\n }\n /**\n * Returns the child `Component` with the given `id`.\n *\n * @param {string} id\n * The id of the child `Component` to get.\n *\n * @return {Component|undefined}\n * The child `Component` with the given `id` or undefined.\n */\n ;\n\n _proto.getChildById = function getChildById(id) {\n return this.childIndex_[id];\n }\n /**\n * Returns the child `Component` with the given `name`.\n *\n * @param {string} name\n * The name of the child `Component` to get.\n *\n * @return {Component|undefined}\n * The child `Component` with the given `name` or undefined.\n */\n ;\n\n _proto.getChild = function getChild(name) {\n if (!name) {\n return;\n }\n\n return this.childNameIndex_[name];\n }\n /**\n * Returns the descendant `Component` following the givent\n * descendant `names`. For instance ['foo', 'bar', 'baz'] would\n * try to get 'foo' on the current component, 'bar' on the 'foo'\n * component and 'baz' on the 'bar' component and return undefined\n * if any of those don't exist.\n *\n * @param {...string[]|...string} names\n * The name of the child `Component` to get.\n *\n * @return {Component|undefined}\n * The descendant `Component` following the given descendant\n * `names` or undefined.\n */\n ;\n\n _proto.getDescendant = function getDescendant() {\n for (var _len = arguments.length, names = new Array(_len), _key = 0; _key < _len; _key++) {\n names[_key] = arguments[_key];\n }\n\n // flatten array argument into the main array\n names = names.reduce(function (acc, n) {\n return acc.concat(n);\n }, []);\n var currentChild = this;\n\n for (var i = 0; i < names.length; i++) {\n currentChild = currentChild.getChild(names[i]);\n\n if (!currentChild || !currentChild.getChild) {\n return;\n }\n }\n\n return currentChild;\n }\n /**\n * Add a child `Component` inside the current `Component`.\n *\n *\n * @param {string|Component} child\n * The name or instance of a child to add.\n *\n * @param {Object} [options={}]\n * The key/value store of options that will get passed to children of\n * the child.\n *\n * @param {number} [index=this.children_.length]\n * The index to attempt to add a child into.\n *\n * @return {Component}\n * The `Component` that gets added as a child. When using a string the\n * `Component` will get created by this process.\n */\n ;\n\n _proto.addChild = function addChild(child, options, index) {\n if (options === void 0) {\n options = {};\n }\n\n if (index === void 0) {\n index = this.children_.length;\n }\n\n var component;\n var componentName; // If child is a string, create component with options\n\n if (typeof child === 'string') {\n componentName = toTitleCase$1(child);\n var componentClassName = options.componentClass || componentName; // Set name through options\n\n options.name = componentName; // Create a new object & element for this controls set\n // If there's no .player_, this is a player\n\n var ComponentClass = Component.getComponent(componentClassName);\n\n if (!ComponentClass) {\n throw new Error(\"Component \" + componentClassName + \" does not exist\");\n } // data stored directly on the videojs object may be\n // misidentified as a component to retain\n // backwards-compatibility with 4.x. check to make sure the\n // component class can be instantiated.\n\n\n if (typeof ComponentClass !== 'function') {\n return null;\n }\n\n component = new ComponentClass(this.player_ || this, options); // child is a component instance\n } else {\n component = child;\n }\n\n if (component.parentComponent_) {\n component.parentComponent_.removeChild(component);\n }\n\n this.children_.splice(index, 0, component);\n component.parentComponent_ = this;\n\n if (typeof component.id === 'function') {\n this.childIndex_[component.id()] = component;\n } // If a name wasn't used to create the component, check if we can use the\n // name function of the component\n\n\n componentName = componentName || component.name && toTitleCase$1(component.name());\n\n if (componentName) {\n this.childNameIndex_[componentName] = component;\n this.childNameIndex_[toLowerCase(componentName)] = component;\n } // Add the UI object's element to the container div (box)\n // Having an element is not required\n\n\n if (typeof component.el === 'function' && component.el()) {\n // If inserting before a component, insert before that component's element\n var refNode = null;\n\n if (this.children_[index + 1]) {\n // Most children are components, but the video tech is an HTML element\n if (this.children_[index + 1].el_) {\n refNode = this.children_[index + 1].el_;\n } else if (isEl(this.children_[index + 1])) {\n refNode = this.children_[index + 1];\n }\n }\n\n this.contentEl().insertBefore(component.el(), refNode);\n } // Return so it can stored on parent object if desired.\n\n\n return component;\n }\n /**\n * Remove a child `Component` from this `Component`s list of children. Also removes\n * the child `Component`s element from this `Component`s element.\n *\n * @param {Component} component\n * The child `Component` to remove.\n */\n ;\n\n _proto.removeChild = function removeChild(component) {\n if (typeof component === 'string') {\n component = this.getChild(component);\n }\n\n if (!component || !this.children_) {\n return;\n }\n\n var childFound = false;\n\n for (var i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i] === component) {\n childFound = true;\n this.children_.splice(i, 1);\n break;\n }\n }\n\n if (!childFound) {\n return;\n }\n\n component.parentComponent_ = null;\n this.childIndex_[component.id()] = null;\n this.childNameIndex_[toTitleCase$1(component.name())] = null;\n this.childNameIndex_[toLowerCase(component.name())] = null;\n var compEl = component.el();\n\n if (compEl && compEl.parentNode === this.contentEl()) {\n this.contentEl().removeChild(component.el());\n }\n }\n /**\n * Add and initialize default child `Component`s based upon options.\n */\n ;\n\n _proto.initChildren = function initChildren() {\n var _this2 = this;\n\n var children = this.options_.children;\n\n if (children) {\n // `this` is `parent`\n var parentOptions = this.options_;\n\n var handleAdd = function handleAdd(child) {\n var name = child.name;\n var opts = child.opts; // Allow options for children to be set at the parent options\n // e.g. videojs(id, { controlBar: false });\n // instead of videojs(id, { children: { controlBar: false });\n\n if (parentOptions[name] !== undefined) {\n opts = parentOptions[name];\n } // Allow for disabling default components\n // e.g. options['children']['posterImage'] = false\n\n\n if (opts === false) {\n return;\n } // Allow options to be passed as a simple boolean if no configuration\n // is necessary.\n\n\n if (opts === true) {\n opts = {};\n } // We also want to pass the original player options\n // to each component as well so they don't need to\n // reach back into the player for options later.\n\n\n opts.playerOptions = _this2.options_.playerOptions; // Create and add the child component.\n // Add a direct reference to the child by name on the parent instance.\n // If two of the same component are used, different names should be supplied\n // for each\n\n var newChild = _this2.addChild(name, opts);\n\n if (newChild) {\n _this2[name] = newChild;\n }\n }; // Allow for an array of children details to passed in the options\n\n\n var workingChildren;\n var Tech = Component.getComponent('Tech');\n\n if (Array.isArray(children)) {\n workingChildren = children;\n } else {\n workingChildren = Object.keys(children);\n }\n\n workingChildren // children that are in this.options_ but also in workingChildren would\n // give us extra children we do not want. So, we want to filter them out.\n .concat(Object.keys(this.options_).filter(function (child) {\n return !workingChildren.some(function (wchild) {\n if (typeof wchild === 'string') {\n return child === wchild;\n }\n\n return child === wchild.name;\n });\n })).map(function (child) {\n var name;\n var opts;\n\n if (typeof child === 'string') {\n name = child;\n opts = children[name] || _this2.options_[name] || {};\n } else {\n name = child.name;\n opts = child;\n }\n\n return {\n name: name,\n opts: opts\n };\n }).filter(function (child) {\n // we have to make sure that child.name isn't in the techOrder since\n // techs are registerd as Components but can't aren't compatible\n // See https://github.com/videojs/video.js/issues/2772\n var c = Component.getComponent(child.opts.componentClass || toTitleCase$1(child.name));\n return c && !Tech.isTech(c);\n }).forEach(handleAdd);\n }\n }\n /**\n * Builds the default DOM class name. Should be overriden by sub-components.\n *\n * @return {string}\n * The DOM class name for this object.\n *\n * @abstract\n */\n ;\n\n _proto.buildCSSClass = function buildCSSClass() {\n // Child classes can include a function that does:\n // return 'CLASS NAME' + this._super();\n return '';\n }\n /**\n * Bind a listener to the component's ready state.\n * Different from event listeners in that if the ready event has already happened\n * it will trigger the function immediately.\n *\n * @return {Component}\n * Returns itself; method can be chained.\n */\n ;\n\n _proto.ready = function ready(fn, sync) {\n if (sync === void 0) {\n sync = false;\n }\n\n if (!fn) {\n return;\n }\n\n if (!this.isReady_) {\n this.readyQueue_ = this.readyQueue_ || [];\n this.readyQueue_.push(fn);\n return;\n }\n\n if (sync) {\n fn.call(this);\n } else {\n // Call the function asynchronously by default for consistency\n this.setTimeout(fn, 1);\n }\n }\n /**\n * Trigger all the ready listeners for this `Component`.\n *\n * @fires Component#ready\n */\n ;\n\n _proto.triggerReady = function triggerReady() {\n this.isReady_ = true; // Ensure ready is triggered asynchronously\n\n this.setTimeout(function () {\n var readyQueue = this.readyQueue_; // Reset Ready Queue\n\n this.readyQueue_ = [];\n\n if (readyQueue && readyQueue.length > 0) {\n readyQueue.forEach(function (fn) {\n fn.call(this);\n }, this);\n } // Allow for using event listeners also\n\n /**\n * Triggered when a `Component` is ready.\n *\n * @event Component#ready\n * @type {EventTarget~Event}\n */\n\n\n this.trigger('ready');\n }, 1);\n }\n /**\n * Find a single DOM element matching a `selector`. This can be within the `Component`s\n * `contentEl()` or another custom context.\n *\n * @param {string} selector\n * A valid CSS selector, which will be passed to `querySelector`.\n *\n * @param {Element|string} [context=this.contentEl()]\n * A DOM element within which to query. Can also be a selector string in\n * which case the first matching element will get used as context. If\n * missing `this.contentEl()` gets used. If `this.contentEl()` returns\n * nothing it falls back to `document`.\n *\n * @return {Element|null}\n * the dom element that was found, or null\n *\n * @see [Information on CSS Selectors](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_Started/Selectors)\n */\n ;\n\n _proto.$ = function $$1(selector, context) {\n return $(selector, context || this.contentEl());\n }\n /**\n * Finds all DOM element matching a `selector`. This can be within the `Component`s\n * `contentEl()` or another custom context.\n *\n * @param {string} selector\n * A valid CSS selector, which will be passed to `querySelectorAll`.\n *\n * @param {Element|string} [context=this.contentEl()]\n * A DOM element within which to query. Can also be a selector string in\n * which case the first matching element will get used as context. If\n * missing `this.contentEl()` gets used. If `this.contentEl()` returns\n * nothing it falls back to `document`.\n *\n * @return {NodeList}\n * a list of dom elements that were found\n *\n * @see [Information on CSS Selectors](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_Started/Selectors)\n */\n ;\n\n _proto.$$ = function $$$1(selector, context) {\n return $$(selector, context || this.contentEl());\n }\n /**\n * Check if a component's element has a CSS class name.\n *\n * @param {string} classToCheck\n * CSS class name to check.\n *\n * @return {boolean}\n * - True if the `Component` has the class.\n * - False if the `Component` does not have the class`\n */\n ;\n\n _proto.hasClass = function hasClass$1(classToCheck) {\n return hasClass(this.el_, classToCheck);\n }\n /**\n * Add a CSS class name to the `Component`s element.\n *\n * @param {string} classToAdd\n * CSS class name to add\n */\n ;\n\n _proto.addClass = function addClass$1(classToAdd) {\n addClass(this.el_, classToAdd);\n }\n /**\n * Remove a CSS class name from the `Component`s element.\n *\n * @param {string} classToRemove\n * CSS class name to remove\n */\n ;\n\n _proto.removeClass = function removeClass$1(classToRemove) {\n removeClass(this.el_, classToRemove);\n }\n /**\n * Add or remove a CSS class name from the component's element.\n * - `classToToggle` gets added when {@link Component#hasClass} would return false.\n * - `classToToggle` gets removed when {@link Component#hasClass} would return true.\n *\n * @param {string} classToToggle\n * The class to add or remove based on (@link Component#hasClass}\n *\n * @param {boolean|Dom~predicate} [predicate]\n * An {@link Dom~predicate} function or a boolean\n */\n ;\n\n _proto.toggleClass = function toggleClass$1(classToToggle, predicate) {\n toggleClass(this.el_, classToToggle, predicate);\n }\n /**\n * Show the `Component`s element if it is hidden by removing the\n * 'vjs-hidden' class name from it.\n */\n ;\n\n _proto.show = function show() {\n this.removeClass('vjs-hidden');\n }\n /**\n * Hide the `Component`s element if it is currently showing by adding the\n * 'vjs-hidden` class name to it.\n */\n ;\n\n _proto.hide = function hide() {\n this.addClass('vjs-hidden');\n }\n /**\n * Lock a `Component`s element in its visible state by adding the 'vjs-lock-showing'\n * class name to it. Used during fadeIn/fadeOut.\n *\n * @private\n */\n ;\n\n _proto.lockShowing = function lockShowing() {\n this.addClass('vjs-lock-showing');\n }\n /**\n * Unlock a `Component`s element from its visible state by removing the 'vjs-lock-showing'\n * class name from it. Used during fadeIn/fadeOut.\n *\n * @private\n */\n ;\n\n _proto.unlockShowing = function unlockShowing() {\n this.removeClass('vjs-lock-showing');\n }\n /**\n * Get the value of an attribute on the `Component`s element.\n *\n * @param {string} attribute\n * Name of the attribute to get the value from.\n *\n * @return {string|null}\n * - The value of the attribute that was asked for.\n * - Can be an empty string on some browsers if the attribute does not exist\n * or has no value\n * - Most browsers will return null if the attibute does not exist or has\n * no value.\n *\n * @see [DOM API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttribute}\n */\n ;\n\n _proto.getAttribute = function getAttribute$1(attribute) {\n return getAttribute(this.el_, attribute);\n }\n /**\n * Set the value of an attribute on the `Component`'s element\n *\n * @param {string} attribute\n * Name of the attribute to set.\n *\n * @param {string} value\n * Value to set the attribute to.\n *\n * @see [DOM API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Element/setAttribute}\n */\n ;\n\n _proto.setAttribute = function setAttribute$1(attribute, value) {\n setAttribute(this.el_, attribute, value);\n }\n /**\n * Remove an attribute from the `Component`s element.\n *\n * @param {string} attribute\n * Name of the attribute to remove.\n *\n * @see [DOM API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Element/removeAttribute}\n */\n ;\n\n _proto.removeAttribute = function removeAttribute$1(attribute) {\n removeAttribute(this.el_, attribute);\n }\n /**\n * Get or set the width of the component based upon the CSS styles.\n * See {@link Component#dimension} for more detailed information.\n *\n * @param {number|string} [num]\n * The width that you want to set postfixed with '%', 'px' or nothing.\n *\n * @param {boolean} [skipListeners]\n * Skip the componentresize event trigger\n *\n * @return {number|string}\n * The width when getting, zero if there is no width. Can be a string\n * postpixed with '%' or 'px'.\n */\n ;\n\n _proto.width = function width(num, skipListeners) {\n return this.dimension('width', num, skipListeners);\n }\n /**\n * Get or set the height of the component based upon the CSS styles.\n * See {@link Component#dimension} for more detailed information.\n *\n * @param {number|string} [num]\n * The height that you want to set postfixed with '%', 'px' or nothing.\n *\n * @param {boolean} [skipListeners]\n * Skip the componentresize event trigger\n *\n * @return {number|string}\n * The width when getting, zero if there is no width. Can be a string\n * postpixed with '%' or 'px'.\n */\n ;\n\n _proto.height = function height(num, skipListeners) {\n return this.dimension('height', num, skipListeners);\n }\n /**\n * Set both the width and height of the `Component` element at the same time.\n *\n * @param {number|string} width\n * Width to set the `Component`s element to.\n *\n * @param {number|string} height\n * Height to set the `Component`s element to.\n */\n ;\n\n _proto.dimensions = function dimensions(width, height) {\n // Skip componentresize listeners on width for optimization\n this.width(width, true);\n this.height(height);\n }\n /**\n * Get or set width or height of the `Component` element. This is the shared code\n * for the {@link Component#width} and {@link Component#height}.\n *\n * Things to know:\n * - If the width or height in an number this will return the number postfixed with 'px'.\n * - If the width/height is a percent this will return the percent postfixed with '%'\n * - Hidden elements have a width of 0 with `window.getComputedStyle`. This function\n * defaults to the `Component`s `style.width` and falls back to `window.getComputedStyle`.\n * See [this]{@link http://www.foliotek.com/devblog/getting-the-width-of-a-hidden-element-with-jquery-using-width/}\n * for more information\n * - If you want the computed style of the component, use {@link Component#currentWidth}\n * and {@link {Component#currentHeight}\n *\n * @fires Component#componentresize\n *\n * @param {string} widthOrHeight\n 8 'width' or 'height'\n *\n * @param {number|string} [num]\n 8 New dimension\n *\n * @param {boolean} [skipListeners]\n * Skip componentresize event trigger\n *\n * @return {number}\n * The dimension when getting or 0 if unset\n */\n ;\n\n _proto.dimension = function dimension(widthOrHeight, num, skipListeners) {\n if (num !== undefined) {\n // Set to zero if null or literally NaN (NaN !== NaN)\n if (num === null || num !== num) {\n num = 0;\n } // Check if using css width/height (% or px) and adjust\n\n\n if (('' + num).indexOf('%') !== -1 || ('' + num).indexOf('px') !== -1) {\n this.el_.style[widthOrHeight] = num;\n } else if (num === 'auto') {\n this.el_.style[widthOrHeight] = '';\n } else {\n this.el_.style[widthOrHeight] = num + 'px';\n } // skipListeners allows us to avoid triggering the resize event when setting both width and height\n\n\n if (!skipListeners) {\n /**\n * Triggered when a component is resized.\n *\n * @event Component#componentresize\n * @type {EventTarget~Event}\n */\n this.trigger('componentresize');\n }\n\n return;\n } // Not setting a value, so getting it\n // Make sure element exists\n\n\n if (!this.el_) {\n return 0;\n } // Get dimension value from style\n\n\n var val = this.el_.style[widthOrHeight];\n var pxIndex = val.indexOf('px');\n\n if (pxIndex !== -1) {\n // Return the pixel value with no 'px'\n return parseInt(val.slice(0, pxIndex), 10);\n } // No px so using % or no style was set, so falling back to offsetWidth/height\n // If component has display:none, offset will return 0\n // TODO: handle display:none and no dimension style using px\n\n\n return parseInt(this.el_['offset' + toTitleCase$1(widthOrHeight)], 10);\n }\n /**\n * Get the computed width or the height of the component's element.\n *\n * Uses `window.getComputedStyle`.\n *\n * @param {string} widthOrHeight\n * A string containing 'width' or 'height'. Whichever one you want to get.\n *\n * @return {number}\n * The dimension that gets asked for or 0 if nothing was set\n * for that dimension.\n */\n ;\n\n _proto.currentDimension = function currentDimension(widthOrHeight) {\n var computedWidthOrHeight = 0;\n\n if (widthOrHeight !== 'width' && widthOrHeight !== 'height') {\n throw new Error('currentDimension only accepts width or height value');\n }\n\n computedWidthOrHeight = computedStyle(this.el_, widthOrHeight); // remove 'px' from variable and parse as integer\n\n computedWidthOrHeight = parseFloat(computedWidthOrHeight); // if the computed value is still 0, it's possible that the browser is lying\n // and we want to check the offset values.\n // This code also runs wherever getComputedStyle doesn't exist.\n\n if (computedWidthOrHeight === 0 || isNaN(computedWidthOrHeight)) {\n var rule = \"offset\" + toTitleCase$1(widthOrHeight);\n computedWidthOrHeight = this.el_[rule];\n }\n\n return computedWidthOrHeight;\n }\n /**\n * An object that contains width and height values of the `Component`s\n * computed style. Uses `window.getComputedStyle`.\n *\n * @typedef {Object} Component~DimensionObject\n *\n * @property {number} width\n * The width of the `Component`s computed style.\n *\n * @property {number} height\n * The height of the `Component`s computed style.\n */\n\n /**\n * Get an object that contains computed width and height values of the\n * component's element.\n *\n * Uses `window.getComputedStyle`.\n *\n * @return {Component~DimensionObject}\n * The computed dimensions of the component's element.\n */\n ;\n\n _proto.currentDimensions = function currentDimensions() {\n return {\n width: this.currentDimension('width'),\n height: this.currentDimension('height')\n };\n }\n /**\n * Get the computed width of the component's element.\n *\n * Uses `window.getComputedStyle`.\n *\n * @return {number}\n * The computed width of the component's element.\n */\n ;\n\n _proto.currentWidth = function currentWidth() {\n return this.currentDimension('width');\n }\n /**\n * Get the computed height of the component's element.\n *\n * Uses `window.getComputedStyle`.\n *\n * @return {number}\n * The computed height of the component's element.\n */\n ;\n\n _proto.currentHeight = function currentHeight() {\n return this.currentDimension('height');\n }\n /**\n * Set the focus to this component\n */\n ;\n\n _proto.focus = function focus() {\n this.el_.focus();\n }\n /**\n * Remove the focus from this component\n */\n ;\n\n _proto.blur = function blur() {\n this.el_.blur();\n }\n /**\n * When this Component receives a `keydown` event which it does not process,\n * it passes the event to the Player for handling.\n *\n * @param {EventTarget~Event} event\n * The `keydown` event that caused this function to be called.\n */\n ;\n\n _proto.handleKeyDown = function handleKeyDown(event) {\n if (this.player_) {\n // We only stop propagation here because we want unhandled events to fall\n // back to the browser. Exclude Tab for focus trapping.\n if (!keycode.isEventKey(event, 'Tab')) {\n event.stopPropagation();\n }\n\n this.player_.handleKeyDown(event);\n }\n }\n /**\n * Many components used to have a `handleKeyPress` method, which was poorly\n * named because it listened to a `keydown` event. This method name now\n * delegates to `handleKeyDown`. This means anyone calling `handleKeyPress`\n * will not see their method calls stop working.\n *\n * @param {EventTarget~Event} event\n * The event that caused this function to be called.\n */\n ;\n\n _proto.handleKeyPress = function handleKeyPress(event) {\n this.handleKeyDown(event);\n }\n /**\n * Emit a 'tap' events when touch event support gets detected. This gets used to\n * support toggling the controls through a tap on the video. They get enabled\n * because every sub-component would have extra overhead otherwise.\n *\n * @private\n * @fires Component#tap\n * @listens Component#touchstart\n * @listens Component#touchmove\n * @listens Component#touchleave\n * @listens Component#touchcancel\n * @listens Component#touchend\n */\n ;\n\n _proto.emitTapEvents = function emitTapEvents() {\n // Track the start time so we can determine how long the touch lasted\n var touchStart = 0;\n var firstTouch = null; // Maximum movement allowed during a touch event to still be considered a tap\n // Other popular libs use anywhere from 2 (hammer.js) to 15,\n // so 10 seems like a nice, round number.\n\n var tapMovementThreshold = 10; // The maximum length a touch can be while still being considered a tap\n\n var touchTimeThreshold = 200;\n var couldBeTap;\n this.on('touchstart', function (event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length === 1) {\n // Copy pageX/pageY from the object\n firstTouch = {\n pageX: event.touches[0].pageX,\n pageY: event.touches[0].pageY\n }; // Record start time so we can detect a tap vs. \"touch and hold\"\n\n touchStart = window$1.performance.now(); // Reset couldBeTap tracking\n\n couldBeTap = true;\n }\n });\n this.on('touchmove', function (event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length > 1) {\n couldBeTap = false;\n } else if (firstTouch) {\n // Some devices will throw touchmoves for all but the slightest of taps.\n // So, if we moved only a small distance, this could still be a tap\n var xdiff = event.touches[0].pageX - firstTouch.pageX;\n var ydiff = event.touches[0].pageY - firstTouch.pageY;\n var touchDistance = Math.sqrt(xdiff * xdiff + ydiff * ydiff);\n\n if (touchDistance > tapMovementThreshold) {\n couldBeTap = false;\n }\n }\n });\n\n var noTap = function noTap() {\n couldBeTap = false;\n }; // TODO: Listen to the original target. http://youtu.be/DujfpXOKUp8?t=13m8s\n\n\n this.on('touchleave', noTap);\n this.on('touchcancel', noTap); // When the touch ends, measure how long it took and trigger the appropriate\n // event\n\n this.on('touchend', function (event) {\n firstTouch = null; // Proceed only if the touchmove/leave/cancel event didn't happen\n\n if (couldBeTap === true) {\n // Measure how long the touch lasted\n var touchTime = window$1.performance.now() - touchStart; // Make sure the touch was less than the threshold to be considered a tap\n\n if (touchTime < touchTimeThreshold) {\n // Don't let browser turn this into a click\n event.preventDefault();\n /**\n * Triggered when a `Component` is tapped.\n *\n * @event Component#tap\n * @type {EventTarget~Event}\n */\n\n this.trigger('tap'); // It may be good to copy the touchend event object and change the\n // type to tap, if the other event properties aren't exact after\n // Events.fixEvent runs (e.g. event.target)\n }\n }\n });\n }\n /**\n * This function reports user activity whenever touch events happen. This can get\n * turned off by any sub-components that wants touch events to act another way.\n *\n * Report user touch activity when touch events occur. User activity gets used to\n * determine when controls should show/hide. It is simple when it comes to mouse\n * events, because any mouse event should show the controls. So we capture mouse\n * events that bubble up to the player and report activity when that happens.\n * With touch events it isn't as easy as `touchstart` and `touchend` toggle player\n * controls. So touch events can't help us at the player level either.\n *\n * User activity gets checked asynchronously. So what could happen is a tap event\n * on the video turns the controls off. Then the `touchend` event bubbles up to\n * the player. Which, if it reported user activity, would turn the controls right\n * back on. We also don't want to completely block touch events from bubbling up.\n * Furthermore a `touchmove` event and anything other than a tap, should not turn\n * controls back on.\n *\n * @listens Component#touchstart\n * @listens Component#touchmove\n * @listens Component#touchend\n * @listens Component#touchcancel\n */\n ;\n\n _proto.enableTouchActivity = function enableTouchActivity() {\n // Don't continue if the root player doesn't support reporting user activity\n if (!this.player() || !this.player().reportUserActivity) {\n return;\n } // listener for reporting that the user is active\n\n\n var report = bind(this.player(), this.player().reportUserActivity);\n var touchHolding;\n this.on('touchstart', function () {\n report(); // For as long as the they are touching the device or have their mouse down,\n // we consider them active even if they're not moving their finger or mouse.\n // So we want to continue to update that they are active\n\n this.clearInterval(touchHolding); // report at the same interval as activityCheck\n\n touchHolding = this.setInterval(report, 250);\n });\n\n var touchEnd = function touchEnd(event) {\n report(); // stop the interval that maintains activity if the touch is holding\n\n this.clearInterval(touchHolding);\n };\n\n this.on('touchmove', report);\n this.on('touchend', touchEnd);\n this.on('touchcancel', touchEnd);\n }\n /**\n * A callback that has no parameters and is bound into `Component`s context.\n *\n * @callback Component~GenericCallback\n * @this Component\n */\n\n /**\n * Creates a function that runs after an `x` millisecond timeout. This function is a\n * wrapper around `window.setTimeout`. There are a few reasons to use this one\n * instead though:\n * 1. It gets cleared via {@link Component#clearTimeout} when\n * {@link Component#dispose} gets called.\n * 2. The function callback will gets turned into a {@link Component~GenericCallback}\n *\n * > Note: You can't use `window.clearTimeout` on the id returned by this function. This\n * will cause its dispose listener not to get cleaned up! Please use\n * {@link Component#clearTimeout} or {@link Component#dispose} instead.\n *\n * @param {Component~GenericCallback} fn\n * The function that will be run after `timeout`.\n *\n * @param {number} timeout\n * Timeout in milliseconds to delay before executing the specified function.\n *\n * @return {number}\n * Returns a timeout ID that gets used to identify the timeout. It can also\n * get used in {@link Component#clearTimeout} to clear the timeout that\n * was set.\n *\n * @listens Component#dispose\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setTimeout}\n */\n ;\n\n _proto.setTimeout = function setTimeout(fn, timeout) {\n var _this3 = this;\n\n // declare as variables so they are properly available in timeout function\n // eslint-disable-next-line\n var timeoutId;\n fn = bind(this, fn);\n this.clearTimersOnDispose_();\n timeoutId = window$1.setTimeout(function () {\n if (_this3.setTimeoutIds_.has(timeoutId)) {\n _this3.setTimeoutIds_[\"delete\"](timeoutId);\n }\n\n fn();\n }, timeout);\n this.setTimeoutIds_.add(timeoutId);\n return timeoutId;\n }\n /**\n * Clears a timeout that gets created via `window.setTimeout` or\n * {@link Component#setTimeout}. If you set a timeout via {@link Component#setTimeout}\n * use this function instead of `window.clearTimout`. If you don't your dispose\n * listener will not get cleaned up until {@link Component#dispose}!\n *\n * @param {number} timeoutId\n * The id of the timeout to clear. The return value of\n * {@link Component#setTimeout} or `window.setTimeout`.\n *\n * @return {number}\n * Returns the timeout id that was cleared.\n *\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/clearTimeout}\n */\n ;\n\n _proto.clearTimeout = function clearTimeout(timeoutId) {\n if (this.setTimeoutIds_.has(timeoutId)) {\n this.setTimeoutIds_[\"delete\"](timeoutId);\n window$1.clearTimeout(timeoutId);\n }\n\n return timeoutId;\n }\n /**\n * Creates a function that gets run every `x` milliseconds. This function is a wrapper\n * around `window.setInterval`. There are a few reasons to use this one instead though.\n * 1. It gets cleared via {@link Component#clearInterval} when\n * {@link Component#dispose} gets called.\n * 2. The function callback will be a {@link Component~GenericCallback}\n *\n * @param {Component~GenericCallback} fn\n * The function to run every `x` seconds.\n *\n * @param {number} interval\n * Execute the specified function every `x` milliseconds.\n *\n * @return {number}\n * Returns an id that can be used to identify the interval. It can also be be used in\n * {@link Component#clearInterval} to clear the interval.\n *\n * @listens Component#dispose\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setInterval}\n */\n ;\n\n _proto.setInterval = function setInterval(fn, interval) {\n fn = bind(this, fn);\n this.clearTimersOnDispose_();\n var intervalId = window$1.setInterval(fn, interval);\n this.setIntervalIds_.add(intervalId);\n return intervalId;\n }\n /**\n * Clears an interval that gets created via `window.setInterval` or\n * {@link Component#setInterval}. If you set an inteval via {@link Component#setInterval}\n * use this function instead of `window.clearInterval`. If you don't your dispose\n * listener will not get cleaned up until {@link Component#dispose}!\n *\n * @param {number} intervalId\n * The id of the interval to clear. The return value of\n * {@link Component#setInterval} or `window.setInterval`.\n *\n * @return {number}\n * Returns the interval id that was cleared.\n *\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/clearInterval}\n */\n ;\n\n _proto.clearInterval = function clearInterval(intervalId) {\n if (this.setIntervalIds_.has(intervalId)) {\n this.setIntervalIds_[\"delete\"](intervalId);\n window$1.clearInterval(intervalId);\n }\n\n return intervalId;\n }\n /**\n * Queues up a callback to be passed to requestAnimationFrame (rAF), but\n * with a few extra bonuses:\n *\n * - Supports browsers that do not support rAF by falling back to\n * {@link Component#setTimeout}.\n *\n * - The callback is turned into a {@link Component~GenericCallback} (i.e.\n * bound to the component).\n *\n * - Automatic cancellation of the rAF callback is handled if the component\n * is disposed before it is called.\n *\n * @param {Component~GenericCallback} fn\n * A function that will be bound to this component and executed just\n * before the browser's next repaint.\n *\n * @return {number}\n * Returns an rAF ID that gets used to identify the timeout. It can\n * also be used in {@link Component#cancelAnimationFrame} to cancel\n * the animation frame callback.\n *\n * @listens Component#dispose\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame}\n */\n ;\n\n _proto.requestAnimationFrame = function requestAnimationFrame(fn) {\n var _this4 = this;\n\n // Fall back to using a timer.\n if (!this.supportsRaf_) {\n return this.setTimeout(fn, 1000 / 60);\n }\n\n this.clearTimersOnDispose_(); // declare as variables so they are properly available in rAF function\n // eslint-disable-next-line\n\n var id;\n fn = bind(this, fn);\n id = window$1.requestAnimationFrame(function () {\n if (_this4.rafIds_.has(id)) {\n _this4.rafIds_[\"delete\"](id);\n }\n\n fn();\n });\n this.rafIds_.add(id);\n return id;\n }\n /**\n * Request an animation frame, but only one named animation\n * frame will be queued. Another will never be added until\n * the previous one finishes.\n *\n * @param {string} name\n * The name to give this requestAnimationFrame\n *\n * @param {Component~GenericCallback} fn\n * A function that will be bound to this component and executed just\n * before the browser's next repaint.\n */\n ;\n\n _proto.requestNamedAnimationFrame = function requestNamedAnimationFrame(name, fn) {\n var _this5 = this;\n\n if (this.namedRafs_.has(name)) {\n return;\n }\n\n this.clearTimersOnDispose_();\n fn = bind(this, fn);\n var id = this.requestAnimationFrame(function () {\n fn();\n\n if (_this5.namedRafs_.has(name)) {\n _this5.namedRafs_[\"delete\"](name);\n }\n });\n this.namedRafs_.set(name, id);\n return name;\n }\n /**\n * Cancels a current named animation frame if it exists.\n *\n * @param {string} name\n * The name of the requestAnimationFrame to cancel.\n */\n ;\n\n _proto.cancelNamedAnimationFrame = function cancelNamedAnimationFrame(name) {\n if (!this.namedRafs_.has(name)) {\n return;\n }\n\n this.cancelAnimationFrame(this.namedRafs_.get(name));\n this.namedRafs_[\"delete\"](name);\n }\n /**\n * Cancels a queued callback passed to {@link Component#requestAnimationFrame}\n * (rAF).\n *\n * If you queue an rAF callback via {@link Component#requestAnimationFrame},\n * use this function instead of `window.cancelAnimationFrame`. If you don't,\n * your dispose listener will not get cleaned up until {@link Component#dispose}!\n *\n * @param {number} id\n * The rAF ID to clear. The return value of {@link Component#requestAnimationFrame}.\n *\n * @return {number}\n * Returns the rAF ID that was cleared.\n *\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/window/cancelAnimationFrame}\n */\n ;\n\n _proto.cancelAnimationFrame = function cancelAnimationFrame(id) {\n // Fall back to using a timer.\n if (!this.supportsRaf_) {\n return this.clearTimeout(id);\n }\n\n if (this.rafIds_.has(id)) {\n this.rafIds_[\"delete\"](id);\n window$1.cancelAnimationFrame(id);\n }\n\n return id;\n }\n /**\n * A function to setup `requestAnimationFrame`, `setTimeout`,\n * and `setInterval`, clearing on dispose.\n *\n * > Previously each timer added and removed dispose listeners on it's own.\n * For better performance it was decided to batch them all, and use `Set`s\n * to track outstanding timer ids.\n *\n * @private\n */\n ;\n\n _proto.clearTimersOnDispose_ = function clearTimersOnDispose_() {\n var _this6 = this;\n\n if (this.clearingTimersOnDispose_) {\n return;\n }\n\n this.clearingTimersOnDispose_ = true;\n this.one('dispose', function () {\n [['namedRafs_', 'cancelNamedAnimationFrame'], ['rafIds_', 'cancelAnimationFrame'], ['setTimeoutIds_', 'clearTimeout'], ['setIntervalIds_', 'clearInterval']].forEach(function (_ref) {\n var idName = _ref[0],\n cancelName = _ref[1];\n\n // for a `Set` key will actually be the value again\n // so forEach((val, val) =>` but for maps we want to use\n // the key.\n _this6[idName].forEach(function (val, key) {\n return _this6[cancelName](key);\n });\n });\n _this6.clearingTimersOnDispose_ = false;\n });\n }\n /**\n * Register a `Component` with `videojs` given the name and the component.\n *\n * > NOTE: {@link Tech}s should not be registered as a `Component`. {@link Tech}s\n * should be registered using {@link Tech.registerTech} or\n * {@link videojs:videojs.registerTech}.\n *\n * > NOTE: This function can also be seen on videojs as\n * {@link videojs:videojs.registerComponent}.\n *\n * @param {string} name\n * The name of the `Component` to register.\n *\n * @param {Component} ComponentToRegister\n * The `Component` class to register.\n *\n * @return {Component}\n * The `Component` that was registered.\n */\n ;\n\n Component.registerComponent = function registerComponent(name, ComponentToRegister) {\n if (typeof name !== 'string' || !name) {\n throw new Error(\"Illegal component name, \\\"\" + name + \"\\\"; must be a non-empty string.\");\n }\n\n var Tech = Component.getComponent('Tech'); // We need to make sure this check is only done if Tech has been registered.\n\n var isTech = Tech && Tech.isTech(ComponentToRegister);\n var isComp = Component === ComponentToRegister || Component.prototype.isPrototypeOf(ComponentToRegister.prototype);\n\n if (isTech || !isComp) {\n var reason;\n\n if (isTech) {\n reason = 'techs must be registered using Tech.registerTech()';\n } else {\n reason = 'must be a Component subclass';\n }\n\n throw new Error(\"Illegal component, \\\"\" + name + \"\\\"; \" + reason + \".\");\n }\n\n name = toTitleCase$1(name);\n\n if (!Component.components_) {\n Component.components_ = {};\n }\n\n var Player = Component.getComponent('Player');\n\n if (name === 'Player' && Player && Player.players) {\n var players = Player.players;\n var playerNames = Object.keys(players); // If we have players that were disposed, then their name will still be\n // in Players.players. So, we must loop through and verify that the value\n // for each item is not null. This allows registration of the Player component\n // after all players have been disposed or before any were created.\n\n if (players && playerNames.length > 0 && playerNames.map(function (pname) {\n return players[pname];\n }).every(Boolean)) {\n throw new Error('Can not register Player component after player has been created.');\n }\n }\n\n Component.components_[name] = ComponentToRegister;\n Component.components_[toLowerCase(name)] = ComponentToRegister;\n return ComponentToRegister;\n }\n /**\n * Get a `Component` based on the name it was registered with.\n *\n * @param {string} name\n * The Name of the component to get.\n *\n * @return {Component}\n * The `Component` that got registered under the given name.\n */\n ;\n\n Component.getComponent = function getComponent(name) {\n if (!name || !Component.components_) {\n return;\n }\n\n return Component.components_[name];\n };\n\n return Component;\n}();\n/**\n * Whether or not this component supports `requestAnimationFrame`.\n *\n * This is exposed primarily for testing purposes.\n *\n * @private\n * @type {Boolean}\n */\n\n\nComponent$1.prototype.supportsRaf_ = typeof window$1.requestAnimationFrame === 'function' && typeof window$1.cancelAnimationFrame === 'function';\nComponent$1.registerComponent('Component', Component$1);\n\n/**\n * @file time-ranges.js\n * @module time-ranges\n */\n/**\n * Returns the time for the specified index at the start or end\n * of a TimeRange object.\n *\n * @typedef {Function} TimeRangeIndex\n *\n * @param {number} [index=0]\n * The range number to return the time for.\n *\n * @return {number}\n * The time offset at the specified index.\n *\n * @deprecated The index argument must be provided.\n * In the future, leaving it out will throw an error.\n */\n\n/**\n * An object that contains ranges of time.\n *\n * @typedef {Object} TimeRange\n *\n * @property {number} length\n * The number of time ranges represented by this object.\n *\n * @property {module:time-ranges~TimeRangeIndex} start\n * Returns the time offset at which a specified time range begins.\n *\n * @property {module:time-ranges~TimeRangeIndex} end\n * Returns the time offset at which a specified time range ends.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges\n */\n\n/**\n * Check if any of the time ranges are over the maximum index.\n *\n * @private\n * @param {string} fnName\n * The function name to use for logging\n *\n * @param {number} index\n * The index to check\n *\n * @param {number} maxIndex\n * The maximum possible index\n *\n * @throws {Error} if the timeRanges provided are over the maxIndex\n */\n\nfunction rangeCheck(fnName, index, maxIndex) {\n if (typeof index !== 'number' || index < 0 || index > maxIndex) {\n throw new Error(\"Failed to execute '\" + fnName + \"' on 'TimeRanges': The index provided (\" + index + \") is non-numeric or out of bounds (0-\" + maxIndex + \").\");\n }\n}\n/**\n * Get the time for the specified index at the start or end\n * of a TimeRange object.\n *\n * @private\n * @param {string} fnName\n * The function name to use for logging\n *\n * @param {string} valueIndex\n * The property that should be used to get the time. should be\n * 'start' or 'end'\n *\n * @param {Array} ranges\n * An array of time ranges\n *\n * @param {Array} [rangeIndex=0]\n * The index to start the search at\n *\n * @return {number}\n * The time that offset at the specified index.\n *\n * @deprecated rangeIndex must be set to a value, in the future this will throw an error.\n * @throws {Error} if rangeIndex is more than the length of ranges\n */\n\n\nfunction getRange(fnName, valueIndex, ranges, rangeIndex) {\n rangeCheck(fnName, rangeIndex, ranges.length - 1);\n return ranges[rangeIndex][valueIndex];\n}\n/**\n * Create a time range object given ranges of time.\n *\n * @private\n * @param {Array} [ranges]\n * An array of time ranges.\n */\n\n\nfunction createTimeRangesObj(ranges) {\n var timeRangesObj;\n\n if (ranges === undefined || ranges.length === 0) {\n timeRangesObj = {\n length: 0,\n start: function start() {\n throw new Error('This TimeRanges object is empty');\n },\n end: function end() {\n throw new Error('This TimeRanges object is empty');\n }\n };\n } else {\n timeRangesObj = {\n length: ranges.length,\n start: getRange.bind(null, 'start', 0, ranges),\n end: getRange.bind(null, 'end', 1, ranges)\n };\n }\n\n if (window$1.Symbol && window$1.Symbol.iterator) {\n timeRangesObj[window$1.Symbol.iterator] = function () {\n return (ranges || []).values();\n };\n }\n\n return timeRangesObj;\n}\n/**\n * Create a `TimeRange` object which mimics an\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges|HTML5 TimeRanges instance}.\n *\n * @param {number|Array[]} start\n * The start of a single range (a number) or an array of ranges (an\n * array of arrays of two numbers each).\n *\n * @param {number} end\n * The end of a single range. Cannot be used with the array form of\n * the `start` argument.\n */\n\n\nfunction createTimeRanges(start, end) {\n if (Array.isArray(start)) {\n return createTimeRangesObj(start);\n } else if (start === undefined || end === undefined) {\n return createTimeRangesObj();\n }\n\n return createTimeRangesObj([[start, end]]);\n}\n\n/**\n * @file buffer.js\n * @module buffer\n */\n/**\n * Compute the percentage of the media that has been buffered.\n *\n * @param {TimeRange} buffered\n * The current `TimeRange` object representing buffered time ranges\n *\n * @param {number} duration\n * Total duration of the media\n *\n * @return {number}\n * Percent buffered of the total duration in decimal form.\n */\n\nfunction bufferedPercent(buffered, duration) {\n var bufferedDuration = 0;\n var start;\n var end;\n\n if (!duration) {\n return 0;\n }\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRanges(0, 0);\n }\n\n for (var i = 0; i < buffered.length; i++) {\n start = buffered.start(i);\n end = buffered.end(i); // buffered end can be bigger than duration by a very small fraction\n\n if (end > duration) {\n end = duration;\n }\n\n bufferedDuration += end - start;\n }\n\n return bufferedDuration / duration;\n}\n\n/**\n * @file media-error.js\n */\n/**\n * A Custom `MediaError` class which mimics the standard HTML5 `MediaError` class.\n *\n * @param {number|string|Object|MediaError} value\n * This can be of multiple types:\n * - number: should be a standard error code\n * - string: an error message (the code will be 0)\n * - Object: arbitrary properties\n * - `MediaError` (native): used to populate a video.js `MediaError` object\n * - `MediaError` (video.js): will return itself if it's already a\n * video.js `MediaError` object.\n *\n * @see [MediaError Spec]{@link https://dev.w3.org/html5/spec-author-view/video.html#mediaerror}\n * @see [Encrypted MediaError Spec]{@link https://www.w3.org/TR/2013/WD-encrypted-media-20130510/#error-codes}\n *\n * @class MediaError\n */\n\nfunction MediaError(value) {\n // Allow redundant calls to this constructor to avoid having `instanceof`\n // checks peppered around the code.\n if (value instanceof MediaError) {\n return value;\n }\n\n if (typeof value === 'number') {\n this.code = value;\n } else if (typeof value === 'string') {\n // default code is zero, so this is a custom error\n this.message = value;\n } else if (isObject(value)) {\n // We assign the `code` property manually because native `MediaError` objects\n // do not expose it as an own/enumerable property of the object.\n if (typeof value.code === 'number') {\n this.code = value.code;\n }\n\n assign(this, value);\n }\n\n if (!this.message) {\n this.message = MediaError.defaultMessages[this.code] || '';\n }\n}\n/**\n * The error code that refers two one of the defined `MediaError` types\n *\n * @type {Number}\n */\n\n\nMediaError.prototype.code = 0;\n/**\n * An optional message that to show with the error. Message is not part of the HTML5\n * video spec but allows for more informative custom errors.\n *\n * @type {String}\n */\n\nMediaError.prototype.message = '';\n/**\n * An optional status code that can be set by plugins to allow even more detail about\n * the error. For example a plugin might provide a specific HTTP status code and an\n * error message for that code. Then when the plugin gets that error this class will\n * know how to display an error message for it. This allows a custom message to show\n * up on the `Player` error overlay.\n *\n * @type {Array}\n */\n\nMediaError.prototype.status = null;\n/**\n * Errors indexed by the W3C standard. The order **CANNOT CHANGE**! See the\n * specification listed under {@link MediaError} for more information.\n *\n * @enum {array}\n * @readonly\n * @property {string} 0 - MEDIA_ERR_CUSTOM\n * @property {string} 1 - MEDIA_ERR_ABORTED\n * @property {string} 2 - MEDIA_ERR_NETWORK\n * @property {string} 3 - MEDIA_ERR_DECODE\n * @property {string} 4 - MEDIA_ERR_SRC_NOT_SUPPORTED\n * @property {string} 5 - MEDIA_ERR_ENCRYPTED\n */\n\nMediaError.errorTypes = ['MEDIA_ERR_CUSTOM', 'MEDIA_ERR_ABORTED', 'MEDIA_ERR_NETWORK', 'MEDIA_ERR_DECODE', 'MEDIA_ERR_SRC_NOT_SUPPORTED', 'MEDIA_ERR_ENCRYPTED'];\n/**\n * The default `MediaError` messages based on the {@link MediaError.errorTypes}.\n *\n * @type {Array}\n * @constant\n */\n\nMediaError.defaultMessages = {\n 1: 'You aborted the media playback',\n 2: 'A network error caused the media download to fail part-way.',\n 3: 'The media playback was aborted due to a corruption problem or because the media used features your browser did not support.',\n 4: 'The media could not be loaded, either because the server or network failed or because the format is not supported.',\n 5: 'The media is encrypted and we do not have the keys to decrypt it.'\n}; // Add types as properties on MediaError\n// e.g. MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED = 4;\n\nfor (var errNum = 0; errNum < MediaError.errorTypes.length; errNum++) {\n MediaError[MediaError.errorTypes[errNum]] = errNum; // values should be accessible on both the class and instance\n\n MediaError.prototype[MediaError.errorTypes[errNum]] = errNum;\n} // jsdocs for instance/static members added above\n\n/**\n * Returns whether an object is `Promise`-like (i.e. has a `then` method).\n *\n * @param {Object} value\n * An object that may or may not be `Promise`-like.\n *\n * @return {boolean}\n * Whether or not the object is `Promise`-like.\n */\nfunction isPromise(value) {\n return value !== undefined && value !== null && typeof value.then === 'function';\n}\n/**\n * Silence a Promise-like object.\n *\n * This is useful for avoiding non-harmful, but potentially confusing \"uncaught\n * play promise\" rejection error messages.\n *\n * @param {Object} value\n * An object that may or may not be `Promise`-like.\n */\n\nfunction silencePromise(value) {\n if (isPromise(value)) {\n value.then(null, function (e) {});\n }\n}\n\n/**\n * @file text-track-list-converter.js Utilities for capturing text track state and\n * re-creating tracks based on a capture.\n *\n * @module text-track-list-converter\n */\n\n/**\n * Examine a single {@link TextTrack} and return a JSON-compatible javascript object that\n * represents the {@link TextTrack}'s state.\n *\n * @param {TextTrack} track\n * The text track to query.\n *\n * @return {Object}\n * A serializable javascript representation of the TextTrack.\n * @private\n */\nvar trackToJson_ = function trackToJson_(track) {\n var ret = ['kind', 'label', 'language', 'id', 'inBandMetadataTrackDispatchType', 'mode', 'src'].reduce(function (acc, prop, i) {\n if (track[prop]) {\n acc[prop] = track[prop];\n }\n\n return acc;\n }, {\n cues: track.cues && Array.prototype.map.call(track.cues, function (cue) {\n return {\n startTime: cue.startTime,\n endTime: cue.endTime,\n text: cue.text,\n id: cue.id\n };\n })\n });\n return ret;\n};\n/**\n * Examine a {@link Tech} and return a JSON-compatible javascript array that represents the\n * state of all {@link TextTrack}s currently configured. The return array is compatible with\n * {@link text-track-list-converter:jsonToTextTracks}.\n *\n * @param {Tech} tech\n * The tech object to query\n *\n * @return {Array}\n * A serializable javascript representation of the {@link Tech}s\n * {@link TextTrackList}.\n */\n\n\nvar textTracksToJson = function textTracksToJson(tech) {\n var trackEls = tech.$$('track');\n var trackObjs = Array.prototype.map.call(trackEls, function (t) {\n return t.track;\n });\n var tracks = Array.prototype.map.call(trackEls, function (trackEl) {\n var json = trackToJson_(trackEl.track);\n\n if (trackEl.src) {\n json.src = trackEl.src;\n }\n\n return json;\n });\n return tracks.concat(Array.prototype.filter.call(tech.textTracks(), function (track) {\n return trackObjs.indexOf(track) === -1;\n }).map(trackToJson_));\n};\n/**\n * Create a set of remote {@link TextTrack}s on a {@link Tech} based on an array of javascript\n * object {@link TextTrack} representations.\n *\n * @param {Array} json\n * An array of `TextTrack` representation objects, like those that would be\n * produced by `textTracksToJson`.\n *\n * @param {Tech} tech\n * The `Tech` to create the `TextTrack`s on.\n */\n\n\nvar jsonToTextTracks = function jsonToTextTracks(json, tech) {\n json.forEach(function (track) {\n var addedTrack = tech.addRemoteTextTrack(track).track;\n\n if (!track.src && track.cues) {\n track.cues.forEach(function (cue) {\n return addedTrack.addCue(cue);\n });\n }\n });\n return tech.textTracks();\n};\n\nvar textTrackConverter = {\n textTracksToJson: textTracksToJson,\n jsonToTextTracks: jsonToTextTracks,\n trackToJson_: trackToJson_\n};\n\nvar MODAL_CLASS_NAME = 'vjs-modal-dialog';\n/**\n * The `ModalDialog` displays over the video and its controls, which blocks\n * interaction with the player until it is closed.\n *\n * Modal dialogs include a \"Close\" button and will close when that button\n * is activated - or when ESC is pressed anywhere.\n *\n * @extends Component\n */\n\nvar ModalDialog = /*#__PURE__*/function (_Component) {\n _inheritsLoose(ModalDialog, _Component);\n\n /**\n * Create an instance of this class.\n *\n * @param {Player} player\n * The `Player` that this class should be attached to.\n *\n * @param {Object} [options]\n * The key/value store of player options.\n *\n * @param {Mixed} [options.content=undefined]\n * Provide customized content for this modal.\n *\n * @param {string} [options.description]\n * A text description for the modal, primarily for accessibility.\n *\n * @param {boolean} [options.fillAlways=false]\n * Normally, modals are automatically filled only the first time\n * they open. This tells the modal to refresh its content\n * every time it opens.\n *\n * @param {string} [options.label]\n * A text label for the modal, primarily for accessibility.\n *\n * @param {boolean} [options.pauseOnOpen=true]\n * If `true`, playback will will be paused if playing when\n * the modal opens, and resumed when it closes.\n *\n * @param {boolean} [options.temporary=true]\n * If `true`, the modal can only be opened once; it will be\n * disposed as soon as it's closed.\n *\n * @param {boolean} [options.uncloseable=false]\n * If `true`, the user will not be able to close the modal\n * through the UI in the normal ways. Programmatic closing is\n * still possible.\n */\n function ModalDialog(player, options) {\n var _this;\n\n _this = _Component.call(this, player, options) || this;\n\n _this.handleKeyDown_ = function (e) {\n return _this.handleKeyDown(e);\n };\n\n _this.close_ = function (e) {\n return _this.close(e);\n };\n\n _this.opened_ = _this.hasBeenOpened_ = _this.hasBeenFilled_ = false;\n\n _this.closeable(!_this.options_.uncloseable);\n\n _this.content(_this.options_.content); // Make sure the contentEl is defined AFTER any children are initialized\n // because we only want the contents of the modal in the contentEl\n // (not the UI elements like the close button).\n\n\n _this.contentEl_ = createEl('div', {\n className: MODAL_CLASS_NAME + \"-content\"\n }, {\n role: 'document'\n });\n _this.descEl_ = createEl('p', {\n className: MODAL_CLASS_NAME + \"-description vjs-control-text\",\n id: _this.el().getAttribute('aria-describedby')\n });\n textContent(_this.descEl_, _this.description());\n\n _this.el_.appendChild(_this.descEl_);\n\n _this.el_.appendChild(_this.contentEl_);\n\n return _this;\n }\n /**\n * Create the `ModalDialog`'s DOM element\n *\n * @return {Element}\n * The DOM element that gets created.\n */\n\n\n var _proto = ModalDialog.prototype;\n\n _proto.createEl = function createEl() {\n return _Component.prototype.createEl.call(this, 'div', {\n className: this.buildCSSClass(),\n tabIndex: -1\n }, {\n 'aria-describedby': this.id() + \"_description\",\n 'aria-hidden': 'true',\n 'aria-label': this.label(),\n 'role': 'dialog'\n });\n };\n\n _proto.dispose = function dispose() {\n this.contentEl_ = null;\n this.descEl_ = null;\n this.previouslyActiveEl_ = null;\n\n _Component.prototype.dispose.call(this);\n }\n /**\n * Builds the default DOM `className`.\n *\n * @return {string}\n * The DOM `className` for this object.\n */\n ;\n\n _proto.buildCSSClass = function buildCSSClass() {\n return MODAL_CLASS_NAME + \" vjs-hidden \" + _Component.prototype.buildCSSClass.call(this);\n }\n /**\n * Returns the label string for this modal. Primarily used for accessibility.\n *\n * @return {string}\n * the localized or raw label of this modal.\n */\n ;\n\n _proto.label = function label() {\n return this.localize(this.options_.label || 'Modal Window');\n }\n /**\n * Returns the description string for this modal. Primarily used for\n * accessibility.\n *\n * @return {string}\n * The localized or raw description of this modal.\n */\n ;\n\n _proto.description = function description() {\n var desc = this.options_.description || this.localize('This is a modal window.'); // Append a universal closeability message if the modal is closeable.\n\n if (this.closeable()) {\n desc += ' ' + this.localize('This modal can be closed by pressing the Escape key or activating the close button.');\n }\n\n return desc;\n }\n /**\n * Opens the modal.\n *\n * @fires ModalDialog#beforemodalopen\n * @fires ModalDialog#modalopen\n */\n ;\n\n _proto.open = function open() {\n if (!this.opened_) {\n var player = this.player();\n /**\n * Fired just before a `ModalDialog` is opened.\n *\n * @event ModalDialog#beforemodalopen\n * @type {EventTarget~Event}\n */\n\n this.trigger('beforemodalopen');\n this.opened_ = true; // Fill content if the modal has never opened before and\n // never been filled.\n\n if (this.options_.fillAlways || !this.hasBeenOpened_ && !this.hasBeenFilled_) {\n this.fill();\n } // If the player was playing, pause it and take note of its previously\n // playing state.\n\n\n this.wasPlaying_ = !player.paused();\n\n if (this.options_.pauseOnOpen && this.wasPlaying_) {\n player.pause();\n }\n\n this.on('keydown', this.handleKeyDown_); // Hide controls and note if they were enabled.\n\n this.hadControls_ = player.controls();\n player.controls(false);\n this.show();\n this.conditionalFocus_();\n this.el().setAttribute('aria-hidden', 'false');\n /**\n * Fired just after a `ModalDialog` is opened.\n *\n * @event ModalDialog#modalopen\n * @type {EventTarget~Event}\n */\n\n this.trigger('modalopen');\n this.hasBeenOpened_ = true;\n }\n }\n /**\n * If the `ModalDialog` is currently open or closed.\n *\n * @param {boolean} [value]\n * If given, it will open (`true`) or close (`false`) the modal.\n *\n * @return {boolean}\n * the current open state of the modaldialog\n */\n ;\n\n _proto.opened = function opened(value) {\n if (typeof value === 'boolean') {\n this[value ? 'open' : 'close']();\n }\n\n return this.opened_;\n }\n /**\n * Closes the modal, does nothing if the `ModalDialog` is\n * not open.\n *\n * @fires ModalDialog#beforemodalclose\n * @fires ModalDialog#modalclose\n */\n ;\n\n _proto.close = function close() {\n if (!this.opened_) {\n return;\n }\n\n var player = this.player();\n /**\n * Fired just before a `ModalDialog` is closed.\n *\n * @event ModalDialog#beforemodalclose\n * @type {EventTarget~Event}\n */\n\n this.trigger('beforemodalclose');\n this.opened_ = false;\n\n if (this.wasPlaying_ && this.options_.pauseOnOpen) {\n player.play();\n }\n\n this.off('keydown', this.handleKeyDown_);\n\n if (this.hadControls_) {\n player.controls(true);\n }\n\n this.hide();\n this.el().setAttribute('aria-hidden', 'true');\n /**\n * Fired just after a `ModalDialog` is closed.\n *\n * @event ModalDialog#modalclose\n * @type {EventTarget~Event}\n */\n\n this.trigger('modalclose');\n this.conditionalBlur_();\n\n if (this.options_.temporary) {\n this.dispose();\n }\n }\n /**\n * Check to see if the `ModalDialog` is closeable via the UI.\n *\n * @param {boolean} [value]\n * If given as a boolean, it will set the `closeable` option.\n *\n * @return {boolean}\n * Returns the final value of the closable option.\n */\n ;\n\n _proto.closeable = function closeable(value) {\n if (typeof value === 'boolean') {\n var closeable = this.closeable_ = !!value;\n var close = this.getChild('closeButton'); // If this is being made closeable and has no close button, add one.\n\n if (closeable && !close) {\n // The close button should be a child of the modal - not its\n // content element, so temporarily change the content element.\n var temp = this.contentEl_;\n this.contentEl_ = this.el_;\n close = this.addChild('closeButton', {\n controlText: 'Close Modal Dialog'\n });\n this.contentEl_ = temp;\n this.on(close, 'close', this.close_);\n } // If this is being made uncloseable and has a close button, remove it.\n\n\n if (!closeable && close) {\n this.off(close, 'close', this.close_);\n this.removeChild(close);\n close.dispose();\n }\n }\n\n return this.closeable_;\n }\n /**\n * Fill the modal's content element with the modal's \"content\" option.\n * The content element will be emptied before this change takes place.\n */\n ;\n\n _proto.fill = function fill() {\n this.fillWith(this.content());\n }\n /**\n * Fill the modal's content element with arbitrary content.\n * The content element will be emptied before this change takes place.\n *\n * @fires ModalDialog#beforemodalfill\n * @fires ModalDialog#modalfill\n *\n * @param {Mixed} [content]\n * The same rules apply to this as apply to the `content` option.\n */\n ;\n\n _proto.fillWith = function fillWith(content) {\n var contentEl = this.contentEl();\n var parentEl = contentEl.parentNode;\n var nextSiblingEl = contentEl.nextSibling;\n /**\n * Fired just before a `ModalDialog` is filled with content.\n *\n * @event ModalDialog#beforemodalfill\n * @type {EventTarget~Event}\n */\n\n this.trigger('beforemodalfill');\n this.hasBeenFilled_ = true; // Detach the content element from the DOM before performing\n // manipulation to avoid modifying the live DOM multiple times.\n\n parentEl.removeChild(contentEl);\n this.empty();\n insertContent(contentEl, content);\n /**\n * Fired just after a `ModalDialog` is filled with content.\n *\n * @event ModalDialog#modalfill\n * @type {EventTarget~Event}\n */\n\n this.trigger('modalfill'); // Re-inject the re-filled content element.\n\n if (nextSiblingEl) {\n parentEl.insertBefore(contentEl, nextSiblingEl);\n } else {\n parentEl.appendChild(contentEl);\n } // make sure that the close button is last in the dialog DOM\n\n\n var closeButton = this.getChild('closeButton');\n\n if (closeButton) {\n parentEl.appendChild(closeButton.el_);\n }\n }\n /**\n * Empties the content element. This happens anytime the modal is filled.\n *\n * @fires ModalDialog#beforemodalempty\n * @fires ModalDialog#modalempty\n */\n ;\n\n _proto.empty = function empty() {\n /**\n * Fired just before a `ModalDialog` is emptied.\n *\n * @event ModalDialog#beforemodalempty\n * @type {EventTarget~Event}\n */\n this.trigger('beforemodalempty');\n emptyEl(this.contentEl());\n /**\n * Fired just after a `ModalDialog` is emptied.\n *\n * @event ModalDialog#modalempty\n * @type {EventTarget~Event}\n */\n\n this.trigger('modalempty');\n }\n /**\n * Gets or sets the modal content, which gets normalized before being\n * rendered into the DOM.\n *\n * This does not update the DOM or fill the modal, but it is called during\n * that process.\n *\n * @param {Mixed} [value]\n * If defined, sets the internal content value to be used on the\n * next call(s) to `fill`. This value is normalized before being\n * inserted. To \"clear\" the internal content value, pass `null`.\n *\n * @return {Mixed}\n * The current content of the modal dialog\n */\n ;\n\n _proto.content = function content(value) {\n if (typeof value !== 'undefined') {\n this.content_ = value;\n }\n\n return this.content_;\n }\n /**\n * conditionally focus the modal dialog if focus was previously on the player.\n *\n * @private\n */\n ;\n\n _proto.conditionalFocus_ = function conditionalFocus_() {\n var activeEl = document.activeElement;\n var playerEl = this.player_.el_;\n this.previouslyActiveEl_ = null;\n\n if (playerEl.contains(activeEl) || playerEl === activeEl) {\n this.previouslyActiveEl_ = activeEl;\n this.focus();\n }\n }\n /**\n * conditionally blur the element and refocus the last focused element\n *\n * @private\n */\n ;\n\n _proto.conditionalBlur_ = function conditionalBlur_() {\n if (this.previouslyActiveEl_) {\n this.previouslyActiveEl_.focus();\n this.previouslyActiveEl_ = null;\n }\n }\n /**\n * Keydown handler. Attached when modal is focused.\n *\n * @listens keydown\n */\n ;\n\n _proto.handleKeyDown = function handleKeyDown(event) {\n // Do not allow keydowns to reach out of the modal dialog.\n event.stopPropagation();\n\n if (keycode.isEventKey(event, 'Escape') && this.closeable()) {\n event.preventDefault();\n this.close();\n return;\n } // exit early if it isn't a tab key\n\n\n if (!keycode.isEventKey(event, 'Tab')) {\n return;\n }\n\n var focusableEls = this.focusableEls_();\n var activeEl = this.el_.querySelector(':focus');\n var focusIndex;\n\n for (var i = 0; i < focusableEls.length; i++) {\n if (activeEl === focusableEls[i]) {\n focusIndex = i;\n break;\n }\n }\n\n if (document.activeElement === this.el_) {\n focusIndex = 0;\n }\n\n if (event.shiftKey && focusIndex === 0) {\n focusableEls[focusableEls.length - 1].focus();\n event.preventDefault();\n } else if (!event.shiftKey && focusIndex === focusableEls.length - 1) {\n focusableEls[0].focus();\n event.preventDefault();\n }\n }\n /**\n * get all focusable elements\n *\n * @private\n */\n ;\n\n _proto.focusableEls_ = function focusableEls_() {\n var allChildren = this.el_.querySelectorAll('*');\n return Array.prototype.filter.call(allChildren, function (child) {\n return (child instanceof window$1.HTMLAnchorElement || child instanceof window$1.HTMLAreaElement) && child.hasAttribute('href') || (child instanceof window$1.HTMLInputElement || child instanceof window$1.HTMLSelectElement || child instanceof window$1.HTMLTextAreaElement || child instanceof window$1.HTMLButtonElement) && !child.hasAttribute('disabled') || child instanceof window$1.HTMLIFrameElement || child instanceof window$1.HTMLObjectElement || child instanceof window$1.HTMLEmbedElement || child.hasAttribute('tabindex') && child.getAttribute('tabindex') !== -1 || child.hasAttribute('contenteditable');\n });\n };\n\n return ModalDialog;\n}(Component$1);\n/**\n * Default options for `ModalDialog` default options.\n *\n * @type {Object}\n * @private\n */\n\n\nModalDialog.prototype.options_ = {\n pauseOnOpen: true,\n temporary: true\n};\nComponent$1.registerComponent('ModalDialog', ModalDialog);\n\n/**\n * Common functionaliy between {@link TextTrackList}, {@link AudioTrackList}, and\n * {@link VideoTrackList}\n *\n * @extends EventTarget\n */\n\nvar TrackList = /*#__PURE__*/function (_EventTarget) {\n _inheritsLoose(TrackList, _EventTarget);\n\n /**\n * Create an instance of this class\n *\n * @param {Track[]} tracks\n * A list of tracks to initialize the list with.\n *\n * @abstract\n */\n function TrackList(tracks) {\n var _this;\n\n if (tracks === void 0) {\n tracks = [];\n }\n\n _this = _EventTarget.call(this) || this;\n _this.tracks_ = [];\n /**\n * @memberof TrackList\n * @member {number} length\n * The current number of `Track`s in the this Trackist.\n * @instance\n */\n\n Object.defineProperty(_assertThisInitialized(_this), 'length', {\n get: function get() {\n return this.tracks_.length;\n }\n });\n\n for (var i = 0; i < tracks.length; i++) {\n _this.addTrack(tracks[i]);\n }\n\n return _this;\n }\n /**\n * Add a {@link Track} to the `TrackList`\n *\n * @param {Track} track\n * The audio, video, or text track to add to the list.\n *\n * @fires TrackList#addtrack\n */\n\n\n var _proto = TrackList.prototype;\n\n _proto.addTrack = function addTrack(track) {\n var _this2 = this;\n\n var index = this.tracks_.length;\n\n if (!('' + index in this)) {\n Object.defineProperty(this, index, {\n get: function get() {\n return this.tracks_[index];\n }\n });\n } // Do not add duplicate tracks\n\n\n if (this.tracks_.indexOf(track) === -1) {\n this.tracks_.push(track);\n /**\n * Triggered when a track is added to a track list.\n *\n * @event TrackList#addtrack\n * @type {EventTarget~Event}\n * @property {Track} track\n * A reference to track that was added.\n */\n\n this.trigger({\n track: track,\n type: 'addtrack',\n target: this\n });\n }\n /**\n * Triggered when a track label is changed.\n *\n * @event TrackList#addtrack\n * @type {EventTarget~Event}\n * @property {Track} track\n * A reference to track that was added.\n */\n\n\n track.labelchange_ = function () {\n _this2.trigger({\n track: track,\n type: 'labelchange',\n target: _this2\n });\n };\n\n if (isEvented(track)) {\n track.addEventListener('labelchange', track.labelchange_);\n }\n }\n /**\n * Remove a {@link Track} from the `TrackList`\n *\n * @param {Track} rtrack\n * The audio, video, or text track to remove from the list.\n *\n * @fires TrackList#removetrack\n */\n ;\n\n _proto.removeTrack = function removeTrack(rtrack) {\n var track;\n\n for (var i = 0, l = this.length; i < l; i++) {\n if (this[i] === rtrack) {\n track = this[i];\n\n if (track.off) {\n track.off();\n }\n\n this.tracks_.splice(i, 1);\n break;\n }\n }\n\n if (!track) {\n return;\n }\n /**\n * Triggered when a track is removed from track list.\n *\n * @event TrackList#removetrack\n * @type {EventTarget~Event}\n * @property {Track} track\n * A reference to track that was removed.\n */\n\n\n this.trigger({\n track: track,\n type: 'removetrack',\n target: this\n });\n }\n /**\n * Get a Track from the TrackList by a tracks id\n *\n * @param {string} id - the id of the track to get\n * @method getTrackById\n * @return {Track}\n * @private\n */\n ;\n\n _proto.getTrackById = function getTrackById(id) {\n var result = null;\n\n for (var i = 0, l = this.length; i < l; i++) {\n var track = this[i];\n\n if (track.id === id) {\n result = track;\n break;\n }\n }\n\n return result;\n };\n\n return TrackList;\n}(EventTarget$2);\n/**\n * Triggered when a different track is selected/enabled.\n *\n * @event TrackList#change\n * @type {EventTarget~Event}\n */\n\n/**\n * Events that can be called with on + eventName. See {@link EventHandler}.\n *\n * @property {Object} TrackList#allowedEvents_\n * @private\n */\n\n\nTrackList.prototype.allowedEvents_ = {\n change: 'change',\n addtrack: 'addtrack',\n removetrack: 'removetrack',\n labelchange: 'labelchange'\n}; // emulate attribute EventHandler support to allow for feature detection\n\nfor (var event in TrackList.prototype.allowedEvents_) {\n TrackList.prototype['on' + event] = null;\n}\n\n/**\n * Anywhere we call this function we diverge from the spec\n * as we only support one enabled audiotrack at a time\n *\n * @param {AudioTrackList} list\n * list to work on\n *\n * @param {AudioTrack} track\n * The track to skip\n *\n * @private\n */\n\nvar disableOthers$1 = function disableOthers(list, track) {\n for (var i = 0; i < list.length; i++) {\n if (!Object.keys(list[i]).length || track.id === list[i].id) {\n continue;\n } // another audio track is enabled, disable it\n\n\n list[i].enabled = false;\n }\n};\n/**\n * The current list of {@link AudioTrack} for a media file.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#audiotracklist}\n * @extends TrackList\n */\n\n\nvar AudioTrackList = /*#__PURE__*/function (_TrackList) {\n _inheritsLoose(AudioTrackList, _TrackList);\n\n /**\n * Create an instance of this class.\n *\n * @param {AudioTrack[]} [tracks=[]]\n * A list of `AudioTrack` to instantiate the list with.\n */\n function AudioTrackList(tracks) {\n var _this;\n\n if (tracks === void 0) {\n tracks = [];\n }\n\n // make sure only 1 track is enabled\n // sorted from last index to first index\n for (var i = tracks.length - 1; i >= 0; i--) {\n if (tracks[i].enabled) {\n disableOthers$1(tracks, tracks[i]);\n break;\n }\n }\n\n _this = _TrackList.call(this, tracks) || this;\n _this.changing_ = false;\n return _this;\n }\n /**\n * Add an {@link AudioTrack} to the `AudioTrackList`.\n *\n * @param {AudioTrack} track\n * The AudioTrack to add to the list\n *\n * @fires TrackList#addtrack\n */\n\n\n var _proto = AudioTrackList.prototype;\n\n _proto.addTrack = function addTrack(track) {\n var _this2 = this;\n\n if (track.enabled) {\n disableOthers$1(this, track);\n }\n\n _TrackList.prototype.addTrack.call(this, track); // native tracks don't have this\n\n\n if (!track.addEventListener) {\n return;\n }\n\n track.enabledChange_ = function () {\n // when we are disabling other tracks (since we don't support\n // more than one track at a time) we will set changing_\n // to true so that we don't trigger additional change events\n if (_this2.changing_) {\n return;\n }\n\n _this2.changing_ = true;\n disableOthers$1(_this2, track);\n _this2.changing_ = false;\n\n _this2.trigger('change');\n };\n /**\n * @listens AudioTrack#enabledchange\n * @fires TrackList#change\n */\n\n\n track.addEventListener('enabledchange', track.enabledChange_);\n };\n\n _proto.removeTrack = function removeTrack(rtrack) {\n _TrackList.prototype.removeTrack.call(this, rtrack);\n\n if (rtrack.removeEventListener && rtrack.enabledChange_) {\n rtrack.removeEventListener('enabledchange', rtrack.enabledChange_);\n rtrack.enabledChange_ = null;\n }\n };\n\n return AudioTrackList;\n}(TrackList);\n\n/**\n * Un-select all other {@link VideoTrack}s that are selected.\n *\n * @param {VideoTrackList} list\n * list to work on\n *\n * @param {VideoTrack} track\n * The track to skip\n *\n * @private\n */\n\nvar disableOthers = function disableOthers(list, track) {\n for (var i = 0; i < list.length; i++) {\n if (!Object.keys(list[i]).length || track.id === list[i].id) {\n continue;\n } // another video track is enabled, disable it\n\n\n list[i].selected = false;\n }\n};\n/**\n * The current list of {@link VideoTrack} for a video.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#videotracklist}\n * @extends TrackList\n */\n\n\nvar VideoTrackList = /*#__PURE__*/function (_TrackList) {\n _inheritsLoose(VideoTrackList, _TrackList);\n\n /**\n * Create an instance of this class.\n *\n * @param {VideoTrack[]} [tracks=[]]\n * A list of `VideoTrack` to instantiate the list with.\n */\n function VideoTrackList(tracks) {\n var _this;\n\n if (tracks === void 0) {\n tracks = [];\n }\n\n // make sure only 1 track is enabled\n // sorted from last index to first index\n for (var i = tracks.length - 1; i >= 0; i--) {\n if (tracks[i].selected) {\n disableOthers(tracks, tracks[i]);\n break;\n }\n }\n\n _this = _TrackList.call(this, tracks) || this;\n _this.changing_ = false;\n /**\n * @member {number} VideoTrackList#selectedIndex\n * The current index of the selected {@link VideoTrack`}.\n */\n\n Object.defineProperty(_assertThisInitialized(_this), 'selectedIndex', {\n get: function get() {\n for (var _i = 0; _i < this.length; _i++) {\n if (this[_i].selected) {\n return _i;\n }\n }\n\n return -1;\n },\n set: function set() {}\n });\n return _this;\n }\n /**\n * Add a {@link VideoTrack} to the `VideoTrackList`.\n *\n * @param {VideoTrack} track\n * The VideoTrack to add to the list\n *\n * @fires TrackList#addtrack\n */\n\n\n var _proto = VideoTrackList.prototype;\n\n _proto.addTrack = function addTrack(track) {\n var _this2 = this;\n\n if (track.selected) {\n disableOthers(this, track);\n }\n\n _TrackList.prototype.addTrack.call(this, track); // native tracks don't have this\n\n\n if (!track.addEventListener) {\n return;\n }\n\n track.selectedChange_ = function () {\n if (_this2.changing_) {\n return;\n }\n\n _this2.changing_ = true;\n disableOthers(_this2, track);\n _this2.changing_ = false;\n\n _this2.trigger('change');\n };\n /**\n * @listens VideoTrack#selectedchange\n * @fires TrackList#change\n */\n\n\n track.addEventListener('selectedchange', track.selectedChange_);\n };\n\n _proto.removeTrack = function removeTrack(rtrack) {\n _TrackList.prototype.removeTrack.call(this, rtrack);\n\n if (rtrack.removeEventListener && rtrack.selectedChange_) {\n rtrack.removeEventListener('selectedchange', rtrack.selectedChange_);\n rtrack.selectedChange_ = null;\n }\n };\n\n return VideoTrackList;\n}(TrackList);\n\n/**\n * The current list of {@link TextTrack} for a media file.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttracklist}\n * @extends TrackList\n */\n\nvar TextTrackList = /*#__PURE__*/function (_TrackList) {\n _inheritsLoose(TextTrackList, _TrackList);\n\n function TextTrackList() {\n return _TrackList.apply(this, arguments) || this;\n }\n\n var _proto = TextTrackList.prototype;\n\n /**\n * Add a {@link TextTrack} to the `TextTrackList`\n *\n * @param {TextTrack} track\n * The text track to add to the list.\n *\n * @fires TrackList#addtrack\n */\n _proto.addTrack = function addTrack(track) {\n var _this = this;\n\n _TrackList.prototype.addTrack.call(this, track);\n\n if (!this.queueChange_) {\n this.queueChange_ = function () {\n return _this.queueTrigger('change');\n };\n }\n\n if (!this.triggerSelectedlanguagechange) {\n this.triggerSelectedlanguagechange_ = function () {\n return _this.trigger('selectedlanguagechange');\n };\n }\n /**\n * @listens TextTrack#modechange\n * @fires TrackList#change\n */\n\n\n track.addEventListener('modechange', this.queueChange_);\n var nonLanguageTextTrackKind = ['metadata', 'chapters'];\n\n if (nonLanguageTextTrackKind.indexOf(track.kind) === -1) {\n track.addEventListener('modechange', this.triggerSelectedlanguagechange_);\n }\n };\n\n _proto.removeTrack = function removeTrack(rtrack) {\n _TrackList.prototype.removeTrack.call(this, rtrack); // manually remove the event handlers we added\n\n\n if (rtrack.removeEventListener) {\n if (this.queueChange_) {\n rtrack.removeEventListener('modechange', this.queueChange_);\n }\n\n if (this.selectedlanguagechange_) {\n rtrack.removeEventListener('modechange', this.triggerSelectedlanguagechange_);\n }\n }\n };\n\n return TextTrackList;\n}(TrackList);\n\n/**\n * @file html-track-element-list.js\n */\n\n/**\n * The current list of {@link HtmlTrackElement}s.\n */\nvar HtmlTrackElementList = /*#__PURE__*/function () {\n /**\n * Create an instance of this class.\n *\n * @param {HtmlTrackElement[]} [tracks=[]]\n * A list of `HtmlTrackElement` to instantiate the list with.\n */\n function HtmlTrackElementList(trackElements) {\n if (trackElements === void 0) {\n trackElements = [];\n }\n\n this.trackElements_ = [];\n /**\n * @memberof HtmlTrackElementList\n * @member {number} length\n * The current number of `Track`s in the this Trackist.\n * @instance\n */\n\n Object.defineProperty(this, 'length', {\n get: function get() {\n return this.trackElements_.length;\n }\n });\n\n for (var i = 0, length = trackElements.length; i < length; i++) {\n this.addTrackElement_(trackElements[i]);\n }\n }\n /**\n * Add an {@link HtmlTrackElement} to the `HtmlTrackElementList`\n *\n * @param {HtmlTrackElement} trackElement\n * The track element to add to the list.\n *\n * @private\n */\n\n\n var _proto = HtmlTrackElementList.prototype;\n\n _proto.addTrackElement_ = function addTrackElement_(trackElement) {\n var index = this.trackElements_.length;\n\n if (!('' + index in this)) {\n Object.defineProperty(this, index, {\n get: function get() {\n return this.trackElements_[index];\n }\n });\n } // Do not add duplicate elements\n\n\n if (this.trackElements_.indexOf(trackElement) === -1) {\n this.trackElements_.push(trackElement);\n }\n }\n /**\n * Get an {@link HtmlTrackElement} from the `HtmlTrackElementList` given an\n * {@link TextTrack}.\n *\n * @param {TextTrack} track\n * The track associated with a track element.\n *\n * @return {HtmlTrackElement|undefined}\n * The track element that was found or undefined.\n *\n * @private\n */\n ;\n\n _proto.getTrackElementByTrack_ = function getTrackElementByTrack_(track) {\n var trackElement_;\n\n for (var i = 0, length = this.trackElements_.length; i < length; i++) {\n if (track === this.trackElements_[i].track) {\n trackElement_ = this.trackElements_[i];\n break;\n }\n }\n\n return trackElement_;\n }\n /**\n * Remove a {@link HtmlTrackElement} from the `HtmlTrackElementList`\n *\n * @param {HtmlTrackElement} trackElement\n * The track element to remove from the list.\n *\n * @private\n */\n ;\n\n _proto.removeTrackElement_ = function removeTrackElement_(trackElement) {\n for (var i = 0, length = this.trackElements_.length; i < length; i++) {\n if (trackElement === this.trackElements_[i]) {\n if (this.trackElements_[i].track && typeof this.trackElements_[i].track.off === 'function') {\n this.trackElements_[i].track.off();\n }\n\n if (typeof this.trackElements_[i].off === 'function') {\n this.trackElements_[i].off();\n }\n\n this.trackElements_.splice(i, 1);\n break;\n }\n }\n };\n\n return HtmlTrackElementList;\n}();\n\n/**\n * @file text-track-cue-list.js\n */\n\n/**\n * @typedef {Object} TextTrackCueList~TextTrackCue\n *\n * @property {string} id\n * The unique id for this text track cue\n *\n * @property {number} startTime\n * The start time for this text track cue\n *\n * @property {number} endTime\n * The end time for this text track cue\n *\n * @property {boolean} pauseOnExit\n * Pause when the end time is reached if true.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcue}\n */\n\n/**\n * A List of TextTrackCues.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist}\n */\nvar TextTrackCueList = /*#__PURE__*/function () {\n /**\n * Create an instance of this class..\n *\n * @param {Array} cues\n * A list of cues to be initialized with\n */\n function TextTrackCueList(cues) {\n TextTrackCueList.prototype.setCues_.call(this, cues);\n /**\n * @memberof TextTrackCueList\n * @member {number} length\n * The current number of `TextTrackCue`s in the TextTrackCueList.\n * @instance\n */\n\n Object.defineProperty(this, 'length', {\n get: function get() {\n return this.length_;\n }\n });\n }\n /**\n * A setter for cues in this list. Creates getters\n * an an index for the cues.\n *\n * @param {Array} cues\n * An array of cues to set\n *\n * @private\n */\n\n\n var _proto = TextTrackCueList.prototype;\n\n _proto.setCues_ = function setCues_(cues) {\n var oldLength = this.length || 0;\n var i = 0;\n var l = cues.length;\n this.cues_ = cues;\n this.length_ = cues.length;\n\n var defineProp = function defineProp(index) {\n if (!('' + index in this)) {\n Object.defineProperty(this, '' + index, {\n get: function get() {\n return this.cues_[index];\n }\n });\n }\n };\n\n if (oldLength < l) {\n i = oldLength;\n\n for (; i < l; i++) {\n defineProp.call(this, i);\n }\n }\n }\n /**\n * Get a `TextTrackCue` that is currently in the `TextTrackCueList` by id.\n *\n * @param {string} id\n * The id of the cue that should be searched for.\n *\n * @return {TextTrackCueList~TextTrackCue|null}\n * A single cue or null if none was found.\n */\n ;\n\n _proto.getCueById = function getCueById(id) {\n var result = null;\n\n for (var i = 0, l = this.length; i < l; i++) {\n var cue = this[i];\n\n if (cue.id === id) {\n result = cue;\n break;\n }\n }\n\n return result;\n };\n\n return TextTrackCueList;\n}();\n\n/**\n * @file track-kinds.js\n */\n\n/**\n * All possible `VideoTrackKind`s\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-videotrack-kind\n * @typedef VideoTrack~Kind\n * @enum\n */\nvar VideoTrackKind = {\n alternative: 'alternative',\n captions: 'captions',\n main: 'main',\n sign: 'sign',\n subtitles: 'subtitles',\n commentary: 'commentary'\n};\n/**\n * All possible `AudioTrackKind`s\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-audiotrack-kind\n * @typedef AudioTrack~Kind\n * @enum\n */\n\nvar AudioTrackKind = {\n 'alternative': 'alternative',\n 'descriptions': 'descriptions',\n 'main': 'main',\n 'main-desc': 'main-desc',\n 'translation': 'translation',\n 'commentary': 'commentary'\n};\n/**\n * All possible `TextTrackKind`s\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-texttrack-kind\n * @typedef TextTrack~Kind\n * @enum\n */\n\nvar TextTrackKind = {\n subtitles: 'subtitles',\n captions: 'captions',\n descriptions: 'descriptions',\n chapters: 'chapters',\n metadata: 'metadata'\n};\n/**\n * All possible `TextTrackMode`s\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackmode\n * @typedef TextTrack~Mode\n * @enum\n */\n\nvar TextTrackMode = {\n disabled: 'disabled',\n hidden: 'hidden',\n showing: 'showing'\n};\n\n/**\n * A Track class that contains all of the common functionality for {@link AudioTrack},\n * {@link VideoTrack}, and {@link TextTrack}.\n *\n * > Note: This class should not be used directly\n *\n * @see {@link https://html.spec.whatwg.org/multipage/embedded-content.html}\n * @extends EventTarget\n * @abstract\n */\n\nvar Track = /*#__PURE__*/function (_EventTarget) {\n _inheritsLoose(Track, _EventTarget);\n\n /**\n * Create an instance of this class.\n *\n * @param {Object} [options={}]\n * Object of option names and values\n *\n * @param {string} [options.kind='']\n * A valid kind for the track type you are creating.\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this AudioTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @abstract\n */\n function Track(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n _this = _EventTarget.call(this) || this;\n var trackProps = {\n id: options.id || 'vjs_track_' + newGUID(),\n kind: options.kind || '',\n language: options.language || ''\n };\n var label = options.label || '';\n /**\n * @memberof Track\n * @member {string} id\n * The id of this track. Cannot be changed after creation.\n * @instance\n *\n * @readonly\n */\n\n /**\n * @memberof Track\n * @member {string} kind\n * The kind of track that this is. Cannot be changed after creation.\n * @instance\n *\n * @readonly\n */\n\n /**\n * @memberof Track\n * @member {string} language\n * The two letter language code for this track. Cannot be changed after\n * creation.\n * @instance\n *\n * @readonly\n */\n\n var _loop = function _loop(key) {\n Object.defineProperty(_assertThisInitialized(_this), key, {\n get: function get() {\n return trackProps[key];\n },\n set: function set() {}\n });\n };\n\n for (var key in trackProps) {\n _loop(key);\n }\n /**\n * @memberof Track\n * @member {string} label\n * The label of this track. Cannot be changed after creation.\n * @instance\n *\n * @fires Track#labelchange\n */\n\n\n Object.defineProperty(_assertThisInitialized(_this), 'label', {\n get: function get() {\n return label;\n },\n set: function set(newLabel) {\n if (newLabel !== label) {\n label = newLabel;\n /**\n * An event that fires when label changes on this track.\n *\n * > Note: This is not part of the spec!\n *\n * @event Track#labelchange\n * @type {EventTarget~Event}\n */\n\n this.trigger('labelchange');\n }\n }\n });\n return _this;\n }\n\n return Track;\n}(EventTarget$2);\n\n/**\n * @file url.js\n * @module url\n */\n/**\n * @typedef {Object} url:URLObject\n *\n * @property {string} protocol\n * The protocol of the url that was parsed.\n *\n * @property {string} hostname\n * The hostname of the url that was parsed.\n *\n * @property {string} port\n * The port of the url that was parsed.\n *\n * @property {string} pathname\n * The pathname of the url that was parsed.\n *\n * @property {string} search\n * The search query of the url that was parsed.\n *\n * @property {string} hash\n * The hash of the url that was parsed.\n *\n * @property {string} host\n * The host of the url that was parsed.\n */\n\n/**\n * Resolve and parse the elements of a URL.\n *\n * @function\n * @param {String} url\n * The url to parse\n *\n * @return {url:URLObject}\n * An object of url details\n */\n\nvar parseUrl = function parseUrl(url) {\n // This entire method can be replace with URL once we are able to drop IE11\n var props = ['protocol', 'hostname', 'port', 'pathname', 'search', 'hash', 'host']; // add the url to an anchor and let the browser parse the URL\n\n var a = document.createElement('a');\n a.href = url; // Copy the specific URL properties to a new object\n // This is also needed for IE because the anchor loses its\n // properties when it's removed from the dom\n\n var details = {};\n\n for (var i = 0; i < props.length; i++) {\n details[props[i]] = a[props[i]];\n } // IE adds the port to the host property unlike everyone else. If\n // a port identifier is added for standard ports, strip it.\n\n\n if (details.protocol === 'http:') {\n details.host = details.host.replace(/:80$/, '');\n }\n\n if (details.protocol === 'https:') {\n details.host = details.host.replace(/:443$/, '');\n }\n\n if (!details.protocol) {\n details.protocol = window$1.location.protocol;\n }\n /* istanbul ignore if */\n\n\n if (!details.host) {\n details.host = window$1.location.host;\n }\n\n return details;\n};\n/**\n * Get absolute version of relative URL. Used to tell Flash the correct URL.\n *\n * @function\n * @param {string} url\n * URL to make absolute\n *\n * @return {string}\n * Absolute URL\n *\n * @see http://stackoverflow.com/questions/470832/getting-an-absolute-url-from-a-relative-one-ie6-issue\n */\n\nvar getAbsoluteURL = function getAbsoluteURL(url) {\n // Check if absolute URL\n if (!url.match(/^https?:\\/\\//)) {\n // Convert to absolute URL. Flash hosted off-site needs an absolute URL.\n // add the url to an anchor and let the browser parse the URL\n var a = document.createElement('a');\n a.href = url;\n url = a.href;\n }\n\n return url;\n};\n/**\n * Returns the extension of the passed file name. It will return an empty string\n * if passed an invalid path.\n *\n * @function\n * @param {string} path\n * The fileName path like '/path/to/file.mp4'\n *\n * @return {string}\n * The extension in lower case or an empty string if no\n * extension could be found.\n */\n\nvar getFileExtension = function getFileExtension(path) {\n if (typeof path === 'string') {\n var splitPathRe = /^(\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?)(\\.([^\\.\\/\\?]+)))(?:[\\/]*|[\\?].*)$/;\n var pathParts = splitPathRe.exec(path);\n\n if (pathParts) {\n return pathParts.pop().toLowerCase();\n }\n }\n\n return '';\n};\n/**\n * Returns whether the url passed is a cross domain request or not.\n *\n * @function\n * @param {string} url\n * The url to check.\n *\n * @param {Object} [winLoc]\n * the domain to check the url against, defaults to window.location\n *\n * @param {string} [winLoc.protocol]\n * The window location protocol defaults to window.location.protocol\n *\n * @param {string} [winLoc.host]\n * The window location host defaults to window.location.host\n *\n * @return {boolean}\n * Whether it is a cross domain request or not.\n */\n\nvar isCrossOrigin = function isCrossOrigin(url, winLoc) {\n if (winLoc === void 0) {\n winLoc = window$1.location;\n }\n\n var urlInfo = parseUrl(url); // IE8 protocol relative urls will return ':' for protocol\n\n var srcProtocol = urlInfo.protocol === ':' ? winLoc.protocol : urlInfo.protocol; // Check if url is for another domain/origin\n // IE8 doesn't know location.origin, so we won't rely on it here\n\n var crossOrigin = srcProtocol + urlInfo.host !== winLoc.protocol + winLoc.host;\n return crossOrigin;\n};\n\nvar Url = /*#__PURE__*/Object.freeze({\n __proto__: null,\n parseUrl: parseUrl,\n getAbsoluteURL: getAbsoluteURL,\n getFileExtension: getFileExtension,\n isCrossOrigin: isCrossOrigin\n});\n\n/**\n * Takes a webvtt file contents and parses it into cues\n *\n * @param {string} srcContent\n * webVTT file contents\n *\n * @param {TextTrack} track\n * TextTrack to add cues to. Cues come from the srcContent.\n *\n * @private\n */\n\nvar parseCues = function parseCues(srcContent, track) {\n var parser = new window$1.WebVTT.Parser(window$1, window$1.vttjs, window$1.WebVTT.StringDecoder());\n var errors = [];\n\n parser.oncue = function (cue) {\n track.addCue(cue);\n };\n\n parser.onparsingerror = function (error) {\n errors.push(error);\n };\n\n parser.onflush = function () {\n track.trigger({\n type: 'loadeddata',\n target: track\n });\n };\n\n parser.parse(srcContent);\n\n if (errors.length > 0) {\n if (window$1.console && window$1.console.groupCollapsed) {\n window$1.console.groupCollapsed(\"Text Track parsing errors for \" + track.src);\n }\n\n errors.forEach(function (error) {\n return log$1.error(error);\n });\n\n if (window$1.console && window$1.console.groupEnd) {\n window$1.console.groupEnd();\n }\n }\n\n parser.flush();\n};\n/**\n * Load a `TextTrack` from a specified url.\n *\n * @param {string} src\n * Url to load track from.\n *\n * @param {TextTrack} track\n * Track to add cues to. Comes from the content at the end of `url`.\n *\n * @private\n */\n\n\nvar loadTrack = function loadTrack(src, track) {\n var opts = {\n uri: src\n };\n var crossOrigin = isCrossOrigin(src);\n\n if (crossOrigin) {\n opts.cors = crossOrigin;\n }\n\n var withCredentials = track.tech_.crossOrigin() === 'use-credentials';\n\n if (withCredentials) {\n opts.withCredentials = withCredentials;\n }\n\n XHR(opts, bind(this, function (err, response, responseBody) {\n if (err) {\n return log$1.error(err, response);\n }\n\n track.loaded_ = true; // Make sure that vttjs has loaded, otherwise, wait till it finished loading\n // NOTE: this is only used for the alt/video.novtt.js build\n\n if (typeof window$1.WebVTT !== 'function') {\n if (track.tech_) {\n // to prevent use before define eslint error, we define loadHandler\n // as a let here\n track.tech_.any(['vttjsloaded', 'vttjserror'], function (event) {\n if (event.type === 'vttjserror') {\n log$1.error(\"vttjs failed to load, stopping trying to process \" + track.src);\n return;\n }\n\n return parseCues(responseBody, track);\n });\n }\n } else {\n parseCues(responseBody, track);\n }\n }));\n};\n/**\n * A representation of a single `TextTrack`.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrack}\n * @extends Track\n */\n\n\nvar TextTrack = /*#__PURE__*/function (_Track) {\n _inheritsLoose(TextTrack, _Track);\n\n /**\n * Create an instance of this class.\n *\n * @param {Object} options={}\n * Object of option names and values\n *\n * @param {Tech} options.tech\n * A reference to the tech that owns this TextTrack.\n *\n * @param {TextTrack~Kind} [options.kind='subtitles']\n * A valid text track kind.\n *\n * @param {TextTrack~Mode} [options.mode='disabled']\n * A valid text track mode.\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this TextTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @param {string} [options.srclang='']\n * A valid two character language code. An alternative, but deprioritized\n * version of `options.language`\n *\n * @param {string} [options.src]\n * A url to TextTrack cues.\n *\n * @param {boolean} [options.default]\n * If this track should default to on or off.\n */\n function TextTrack(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n if (!options.tech) {\n throw new Error('A tech was not provided.');\n }\n\n var settings = mergeOptions$3(options, {\n kind: TextTrackKind[options.kind] || 'subtitles',\n language: options.language || options.srclang || ''\n });\n var mode = TextTrackMode[settings.mode] || 'disabled';\n var default_ = settings[\"default\"];\n\n if (settings.kind === 'metadata' || settings.kind === 'chapters') {\n mode = 'hidden';\n }\n\n _this = _Track.call(this, settings) || this;\n _this.tech_ = settings.tech;\n _this.cues_ = [];\n _this.activeCues_ = [];\n _this.preload_ = _this.tech_.preloadTextTracks !== false;\n var cues = new TextTrackCueList(_this.cues_);\n var activeCues = new TextTrackCueList(_this.activeCues_);\n var changed = false;\n _this.timeupdateHandler = bind(_assertThisInitialized(_this), function () {\n if (this.tech_.isDisposed()) {\n return;\n }\n\n if (!this.tech_.isReady_) {\n this.rvf_ = this.tech_.requestVideoFrameCallback(this.timeupdateHandler);\n return;\n } // Accessing this.activeCues for the side-effects of updating itself\n // due to its nature as a getter function. Do not remove or cues will\n // stop updating!\n // Use the setter to prevent deletion from uglify (pure_getters rule)\n\n\n this.activeCues = this.activeCues;\n\n if (changed) {\n this.trigger('cuechange');\n changed = false;\n }\n\n this.rvf_ = this.tech_.requestVideoFrameCallback(this.timeupdateHandler);\n });\n\n var disposeHandler = function disposeHandler() {\n _this.stopTracking();\n };\n\n _this.tech_.one('dispose', disposeHandler);\n\n if (mode !== 'disabled') {\n _this.startTracking();\n }\n\n Object.defineProperties(_assertThisInitialized(_this), {\n /**\n * @memberof TextTrack\n * @member {boolean} default\n * If this track was set to be on or off by default. Cannot be changed after\n * creation.\n * @instance\n *\n * @readonly\n */\n \"default\": {\n get: function get() {\n return default_;\n },\n set: function set() {}\n },\n\n /**\n * @memberof TextTrack\n * @member {string} mode\n * Set the mode of this TextTrack to a valid {@link TextTrack~Mode}. Will\n * not be set if setting to an invalid mode.\n * @instance\n *\n * @fires TextTrack#modechange\n */\n mode: {\n get: function get() {\n return mode;\n },\n set: function set(newMode) {\n if (!TextTrackMode[newMode]) {\n return;\n }\n\n if (mode === newMode) {\n return;\n }\n\n mode = newMode;\n\n if (!this.preload_ && mode !== 'disabled' && this.cues.length === 0) {\n // On-demand load.\n loadTrack(this.src, this);\n }\n\n this.stopTracking();\n\n if (mode !== 'disabled') {\n this.startTracking();\n }\n /**\n * An event that fires when mode changes on this track. This allows\n * the TextTrackList that holds this track to act accordingly.\n *\n * > Note: This is not part of the spec!\n *\n * @event TextTrack#modechange\n * @type {EventTarget~Event}\n */\n\n\n this.trigger('modechange');\n }\n },\n\n /**\n * @memberof TextTrack\n * @member {TextTrackCueList} cues\n * The text track cue list for this TextTrack.\n * @instance\n */\n cues: {\n get: function get() {\n if (!this.loaded_) {\n return null;\n }\n\n return cues;\n },\n set: function set() {}\n },\n\n /**\n * @memberof TextTrack\n * @member {TextTrackCueList} activeCues\n * The list text track cues that are currently active for this TextTrack.\n * @instance\n */\n activeCues: {\n get: function get() {\n if (!this.loaded_) {\n return null;\n } // nothing to do\n\n\n if (this.cues.length === 0) {\n return activeCues;\n }\n\n var ct = this.tech_.currentTime();\n var active = [];\n\n for (var i = 0, l = this.cues.length; i < l; i++) {\n var cue = this.cues[i];\n\n if (cue.startTime <= ct && cue.endTime >= ct) {\n active.push(cue);\n } else if (cue.startTime === cue.endTime && cue.startTime <= ct && cue.startTime + 0.5 >= ct) {\n active.push(cue);\n }\n }\n\n changed = false;\n\n if (active.length !== this.activeCues_.length) {\n changed = true;\n } else {\n for (var _i = 0; _i < active.length; _i++) {\n if (this.activeCues_.indexOf(active[_i]) === -1) {\n changed = true;\n }\n }\n }\n\n this.activeCues_ = active;\n activeCues.setCues_(this.activeCues_);\n return activeCues;\n },\n // /!\\ Keep this setter empty (see the timeupdate handler above)\n set: function set() {}\n }\n });\n\n if (settings.src) {\n _this.src = settings.src;\n\n if (!_this.preload_) {\n // Tracks will load on-demand.\n // Act like we're loaded for other purposes.\n _this.loaded_ = true;\n }\n\n if (_this.preload_ || settings.kind !== 'subtitles' && settings.kind !== 'captions') {\n loadTrack(_this.src, _assertThisInitialized(_this));\n }\n } else {\n _this.loaded_ = true;\n }\n\n return _this;\n }\n\n var _proto = TextTrack.prototype;\n\n _proto.startTracking = function startTracking() {\n this.rvf_ = this.tech_.requestVideoFrameCallback(this.timeupdateHandler);\n };\n\n _proto.stopTracking = function stopTracking() {\n if (this.rvf_) {\n this.tech_.cancelVideoFrameCallback(this.rvf_);\n this.rvf_ = undefined;\n }\n }\n /**\n * Add a cue to the internal list of cues.\n *\n * @param {TextTrack~Cue} cue\n * The cue to add to our internal list\n */\n ;\n\n _proto.addCue = function addCue(originalCue) {\n var cue = originalCue;\n\n if (window$1.vttjs && !(originalCue instanceof window$1.vttjs.VTTCue)) {\n cue = new window$1.vttjs.VTTCue(originalCue.startTime, originalCue.endTime, originalCue.text);\n\n for (var prop in originalCue) {\n if (!(prop in cue)) {\n cue[prop] = originalCue[prop];\n }\n } // make sure that `id` is copied over\n\n\n cue.id = originalCue.id;\n cue.originalCue_ = originalCue;\n }\n\n var tracks = this.tech_.textTracks();\n\n for (var i = 0; i < tracks.length; i++) {\n if (tracks[i] !== this) {\n tracks[i].removeCue(cue);\n }\n }\n\n this.cues_.push(cue);\n this.cues.setCues_(this.cues_);\n }\n /**\n * Remove a cue from our internal list\n *\n * @param {TextTrack~Cue} removeCue\n * The cue to remove from our internal list\n */\n ;\n\n _proto.removeCue = function removeCue(_removeCue) {\n var i = this.cues_.length;\n\n while (i--) {\n var cue = this.cues_[i];\n\n if (cue === _removeCue || cue.originalCue_ && cue.originalCue_ === _removeCue) {\n this.cues_.splice(i, 1);\n this.cues.setCues_(this.cues_);\n break;\n }\n }\n };\n\n return TextTrack;\n}(Track);\n/**\n * cuechange - One or more cues in the track have become active or stopped being active.\n */\n\n\nTextTrack.prototype.allowedEvents_ = {\n cuechange: 'cuechange'\n};\n\n/**\n * A representation of a single `AudioTrack`. If it is part of an {@link AudioTrackList}\n * only one `AudioTrack` in the list will be enabled at a time.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#audiotrack}\n * @extends Track\n */\n\nvar AudioTrack = /*#__PURE__*/function (_Track) {\n _inheritsLoose(AudioTrack, _Track);\n\n /**\n * Create an instance of this class.\n *\n * @param {Object} [options={}]\n * Object of option names and values\n *\n * @param {AudioTrack~Kind} [options.kind='']\n * A valid audio track kind\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this AudioTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @param {boolean} [options.enabled]\n * If this track is the one that is currently playing. If this track is part of\n * an {@link AudioTrackList}, only one {@link AudioTrack} will be enabled.\n */\n function AudioTrack(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n var settings = mergeOptions$3(options, {\n kind: AudioTrackKind[options.kind] || ''\n });\n _this = _Track.call(this, settings) || this;\n var enabled = false;\n /**\n * @memberof AudioTrack\n * @member {boolean} enabled\n * If this `AudioTrack` is enabled or not. When setting this will\n * fire {@link AudioTrack#enabledchange} if the state of enabled is changed.\n * @instance\n *\n * @fires VideoTrack#selectedchange\n */\n\n Object.defineProperty(_assertThisInitialized(_this), 'enabled', {\n get: function get() {\n return enabled;\n },\n set: function set(newEnabled) {\n // an invalid or unchanged value\n if (typeof newEnabled !== 'boolean' || newEnabled === enabled) {\n return;\n }\n\n enabled = newEnabled;\n /**\n * An event that fires when enabled changes on this track. This allows\n * the AudioTrackList that holds this track to act accordingly.\n *\n * > Note: This is not part of the spec! Native tracks will do\n * this internally without an event.\n *\n * @event AudioTrack#enabledchange\n * @type {EventTarget~Event}\n */\n\n this.trigger('enabledchange');\n }\n }); // if the user sets this track to selected then\n // set selected to that true value otherwise\n // we keep it false\n\n if (settings.enabled) {\n _this.enabled = settings.enabled;\n }\n\n _this.loaded_ = true;\n return _this;\n }\n\n return AudioTrack;\n}(Track);\n\n/**\n * A representation of a single `VideoTrack`.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#videotrack}\n * @extends Track\n */\n\nvar VideoTrack = /*#__PURE__*/function (_Track) {\n _inheritsLoose(VideoTrack, _Track);\n\n /**\n * Create an instance of this class.\n *\n * @param {Object} [options={}]\n * Object of option names and values\n *\n * @param {string} [options.kind='']\n * A valid {@link VideoTrack~Kind}\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this AudioTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @param {boolean} [options.selected]\n * If this track is the one that is currently playing.\n */\n function VideoTrack(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n var settings = mergeOptions$3(options, {\n kind: VideoTrackKind[options.kind] || ''\n });\n _this = _Track.call(this, settings) || this;\n var selected = false;\n /**\n * @memberof VideoTrack\n * @member {boolean} selected\n * If this `VideoTrack` is selected or not. When setting this will\n * fire {@link VideoTrack#selectedchange} if the state of selected changed.\n * @instance\n *\n * @fires VideoTrack#selectedchange\n */\n\n Object.defineProperty(_assertThisInitialized(_this), 'selected', {\n get: function get() {\n return selected;\n },\n set: function set(newSelected) {\n // an invalid or unchanged value\n if (typeof newSelected !== 'boolean' || newSelected === selected) {\n return;\n }\n\n selected = newSelected;\n /**\n * An event that fires when selected changes on this track. This allows\n * the VideoTrackList that holds this track to act accordingly.\n *\n * > Note: This is not part of the spec! Native tracks will do\n * this internally without an event.\n *\n * @event VideoTrack#selectedchange\n * @type {EventTarget~Event}\n */\n\n this.trigger('selectedchange');\n }\n }); // if the user sets this track to selected then\n // set selected to that true value otherwise\n // we keep it false\n\n if (settings.selected) {\n _this.selected = settings.selected;\n }\n\n return _this;\n }\n\n return VideoTrack;\n}(Track);\n\n/**\n * @memberof HTMLTrackElement\n * @typedef {HTMLTrackElement~ReadyState}\n * @enum {number}\n */\n\nvar NONE = 0;\nvar LOADING = 1;\nvar LOADED = 2;\nvar ERROR = 3;\n/**\n * A single track represented in the DOM.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#htmltrackelement}\n * @extends EventTarget\n */\n\nvar HTMLTrackElement = /*#__PURE__*/function (_EventTarget) {\n _inheritsLoose(HTMLTrackElement, _EventTarget);\n\n /**\n * Create an instance of this class.\n *\n * @param {Object} options={}\n * Object of option names and values\n *\n * @param {Tech} options.tech\n * A reference to the tech that owns this HTMLTrackElement.\n *\n * @param {TextTrack~Kind} [options.kind='subtitles']\n * A valid text track kind.\n *\n * @param {TextTrack~Mode} [options.mode='disabled']\n * A valid text track mode.\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this TextTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @param {string} [options.srclang='']\n * A valid two character language code. An alternative, but deprioritized\n * version of `options.language`\n *\n * @param {string} [options.src]\n * A url to TextTrack cues.\n *\n * @param {boolean} [options.default]\n * If this track should default to on or off.\n */\n function HTMLTrackElement(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n _this = _EventTarget.call(this) || this;\n var readyState;\n var track = new TextTrack(options);\n _this.kind = track.kind;\n _this.src = track.src;\n _this.srclang = track.language;\n _this.label = track.label;\n _this[\"default\"] = track[\"default\"];\n Object.defineProperties(_assertThisInitialized(_this), {\n /**\n * @memberof HTMLTrackElement\n * @member {HTMLTrackElement~ReadyState} readyState\n * The current ready state of the track element.\n * @instance\n */\n readyState: {\n get: function get() {\n return readyState;\n }\n },\n\n /**\n * @memberof HTMLTrackElement\n * @member {TextTrack} track\n * The underlying TextTrack object.\n * @instance\n *\n */\n track: {\n get: function get() {\n return track;\n }\n }\n });\n readyState = NONE;\n /**\n * @listens TextTrack#loadeddata\n * @fires HTMLTrackElement#load\n */\n\n track.addEventListener('loadeddata', function () {\n readyState = LOADED;\n\n _this.trigger({\n type: 'load',\n target: _assertThisInitialized(_this)\n });\n });\n return _this;\n }\n\n return HTMLTrackElement;\n}(EventTarget$2);\n\nHTMLTrackElement.prototype.allowedEvents_ = {\n load: 'load'\n};\nHTMLTrackElement.NONE = NONE;\nHTMLTrackElement.LOADING = LOADING;\nHTMLTrackElement.LOADED = LOADED;\nHTMLTrackElement.ERROR = ERROR;\n\n/*\n * This file contains all track properties that are used in\n * player.js, tech.js, html5.js and possibly other techs in the future.\n */\n\nvar NORMAL = {\n audio: {\n ListClass: AudioTrackList,\n TrackClass: AudioTrack,\n capitalName: 'Audio'\n },\n video: {\n ListClass: VideoTrackList,\n TrackClass: VideoTrack,\n capitalName: 'Video'\n },\n text: {\n ListClass: TextTrackList,\n TrackClass: TextTrack,\n capitalName: 'Text'\n }\n};\nObject.keys(NORMAL).forEach(function (type) {\n NORMAL[type].getterName = type + \"Tracks\";\n NORMAL[type].privateName = type + \"Tracks_\";\n});\nvar REMOTE = {\n remoteText: {\n ListClass: TextTrackList,\n TrackClass: TextTrack,\n capitalName: 'RemoteText',\n getterName: 'remoteTextTracks',\n privateName: 'remoteTextTracks_'\n },\n remoteTextEl: {\n ListClass: HtmlTrackElementList,\n TrackClass: HTMLTrackElement,\n capitalName: 'RemoteTextTrackEls',\n getterName: 'remoteTextTrackEls',\n privateName: 'remoteTextTrackEls_'\n }\n};\n\nvar ALL = _extends({}, NORMAL, REMOTE);\n\nREMOTE.names = Object.keys(REMOTE);\nNORMAL.names = Object.keys(NORMAL);\nALL.names = [].concat(REMOTE.names).concat(NORMAL.names);\n\n/**\n * An Object containing a structure like: `{src: 'url', type: 'mimetype'}` or string\n * that just contains the src url alone.\n * * `var SourceObject = {src: 'http://ex.com/video.mp4', type: 'video/mp4'};`\n * `var SourceString = 'http://example.com/some-video.mp4';`\n *\n * @typedef {Object|string} Tech~SourceObject\n *\n * @property {string} src\n * The url to the source\n *\n * @property {string} type\n * The mime type of the source\n */\n\n/**\n * A function used by {@link Tech} to create a new {@link TextTrack}.\n *\n * @private\n *\n * @param {Tech} self\n * An instance of the Tech class.\n *\n * @param {string} kind\n * `TextTrack` kind (subtitles, captions, descriptions, chapters, or metadata)\n *\n * @param {string} [label]\n * Label to identify the text track\n *\n * @param {string} [language]\n * Two letter language abbreviation\n *\n * @param {Object} [options={}]\n * An object with additional text track options\n *\n * @return {TextTrack}\n * The text track that was created.\n */\n\nfunction createTrackHelper(self, kind, label, language, options) {\n if (options === void 0) {\n options = {};\n }\n\n var tracks = self.textTracks();\n options.kind = kind;\n\n if (label) {\n options.label = label;\n }\n\n if (language) {\n options.language = language;\n }\n\n options.tech = self;\n var track = new ALL.text.TrackClass(options);\n tracks.addTrack(track);\n return track;\n}\n/**\n * This is the base class for media playback technology controllers, such as\n * {@link HTML5}\n *\n * @extends Component\n */\n\n\nvar Tech = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Tech, _Component);\n\n /**\n * Create an instance of this Tech.\n *\n * @param {Object} [options]\n * The key/value store of player options.\n *\n * @param {Component~ReadyCallback} ready\n * Callback function to call when the `HTML5` Tech is ready.\n */\n function Tech(options, ready) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n if (ready === void 0) {\n ready = function ready() {};\n }\n\n // we don't want the tech to report user activity automatically.\n // This is done manually in addControlsListeners\n options.reportTouchActivity = false;\n _this = _Component.call(this, null, options, ready) || this;\n\n _this.onDurationChange_ = function (e) {\n return _this.onDurationChange(e);\n };\n\n _this.trackProgress_ = function (e) {\n return _this.trackProgress(e);\n };\n\n _this.trackCurrentTime_ = function (e) {\n return _this.trackCurrentTime(e);\n };\n\n _this.stopTrackingCurrentTime_ = function (e) {\n return _this.stopTrackingCurrentTime(e);\n };\n\n _this.disposeSourceHandler_ = function (e) {\n return _this.disposeSourceHandler(e);\n };\n\n _this.queuedHanders_ = new Set(); // keep track of whether the current source has played at all to\n // implement a very limited played()\n\n _this.hasStarted_ = false;\n\n _this.on('playing', function () {\n this.hasStarted_ = true;\n });\n\n _this.on('loadstart', function () {\n this.hasStarted_ = false;\n });\n\n ALL.names.forEach(function (name) {\n var props = ALL[name];\n\n if (options && options[props.getterName]) {\n _this[props.privateName] = options[props.getterName];\n }\n }); // Manually track progress in cases where the browser/tech doesn't report it.\n\n if (!_this.featuresProgressEvents) {\n _this.manualProgressOn();\n } // Manually track timeupdates in cases where the browser/tech doesn't report it.\n\n\n if (!_this.featuresTimeupdateEvents) {\n _this.manualTimeUpdatesOn();\n }\n\n ['Text', 'Audio', 'Video'].forEach(function (track) {\n if (options[\"native\" + track + \"Tracks\"] === false) {\n _this[\"featuresNative\" + track + \"Tracks\"] = false;\n }\n });\n\n if (options.nativeCaptions === false || options.nativeTextTracks === false) {\n _this.featuresNativeTextTracks = false;\n } else if (options.nativeCaptions === true || options.nativeTextTracks === true) {\n _this.featuresNativeTextTracks = true;\n }\n\n if (!_this.featuresNativeTextTracks) {\n _this.emulateTextTracks();\n }\n\n _this.preloadTextTracks = options.preloadTextTracks !== false;\n _this.autoRemoteTextTracks_ = new ALL.text.ListClass();\n\n _this.initTrackListeners(); // Turn on component tap events only if not using native controls\n\n\n if (!options.nativeControlsForTouch) {\n _this.emitTapEvents();\n }\n\n if (_this.constructor) {\n _this.name_ = _this.constructor.name || 'Unknown Tech';\n }\n\n return _this;\n }\n /**\n * A special function to trigger source set in a way that will allow player\n * to re-trigger if the player or tech are not ready yet.\n *\n * @fires Tech#sourceset\n * @param {string} src The source string at the time of the source changing.\n */\n\n\n var _proto = Tech.prototype;\n\n _proto.triggerSourceset = function triggerSourceset(src) {\n var _this2 = this;\n\n if (!this.isReady_) {\n // on initial ready we have to trigger source set\n // 1ms after ready so that player can watch for it.\n this.one('ready', function () {\n return _this2.setTimeout(function () {\n return _this2.triggerSourceset(src);\n }, 1);\n });\n }\n /**\n * Fired when the source is set on the tech causing the media element\n * to reload.\n *\n * @see {@link Player#event:sourceset}\n * @event Tech#sourceset\n * @type {EventTarget~Event}\n */\n\n\n this.trigger({\n src: src,\n type: 'sourceset'\n });\n }\n /* Fallbacks for unsupported event types\n ================================================================================ */\n\n /**\n * Polyfill the `progress` event for browsers that don't support it natively.\n *\n * @see {@link Tech#trackProgress}\n */\n ;\n\n _proto.manualProgressOn = function manualProgressOn() {\n this.on('durationchange', this.onDurationChange_);\n this.manualProgress = true; // Trigger progress watching when a source begins loading\n\n this.one('ready', this.trackProgress_);\n }\n /**\n * Turn off the polyfill for `progress` events that was created in\n * {@link Tech#manualProgressOn}\n */\n ;\n\n _proto.manualProgressOff = function manualProgressOff() {\n this.manualProgress = false;\n this.stopTrackingProgress();\n this.off('durationchange', this.onDurationChange_);\n }\n /**\n * This is used to trigger a `progress` event when the buffered percent changes. It\n * sets an interval function that will be called every 500 milliseconds to check if the\n * buffer end percent has changed.\n *\n * > This function is called by {@link Tech#manualProgressOn}\n *\n * @param {EventTarget~Event} event\n * The `ready` event that caused this to run.\n *\n * @listens Tech#ready\n * @fires Tech#progress\n */\n ;\n\n _proto.trackProgress = function trackProgress(event) {\n this.stopTrackingProgress();\n this.progressInterval = this.setInterval(bind(this, function () {\n // Don't trigger unless buffered amount is greater than last time\n var numBufferedPercent = this.bufferedPercent();\n\n if (this.bufferedPercent_ !== numBufferedPercent) {\n /**\n * See {@link Player#progress}\n *\n * @event Tech#progress\n * @type {EventTarget~Event}\n */\n this.trigger('progress');\n }\n\n this.bufferedPercent_ = numBufferedPercent;\n\n if (numBufferedPercent === 1) {\n this.stopTrackingProgress();\n }\n }), 500);\n }\n /**\n * Update our internal duration on a `durationchange` event by calling\n * {@link Tech#duration}.\n *\n * @param {EventTarget~Event} event\n * The `durationchange` event that caused this to run.\n *\n * @listens Tech#durationchange\n */\n ;\n\n _proto.onDurationChange = function onDurationChange(event) {\n this.duration_ = this.duration();\n }\n /**\n * Get and create a `TimeRange` object for buffering.\n *\n * @return {TimeRange}\n * The time range object that was created.\n */\n ;\n\n _proto.buffered = function buffered() {\n return createTimeRanges(0, 0);\n }\n /**\n * Get the percentage of the current video that is currently buffered.\n *\n * @return {number}\n * A number from 0 to 1 that represents the decimal percentage of the\n * video that is buffered.\n *\n */\n ;\n\n _proto.bufferedPercent = function bufferedPercent$1() {\n return bufferedPercent(this.buffered(), this.duration_);\n }\n /**\n * Turn off the polyfill for `progress` events that was created in\n * {@link Tech#manualProgressOn}\n * Stop manually tracking progress events by clearing the interval that was set in\n * {@link Tech#trackProgress}.\n */\n ;\n\n _proto.stopTrackingProgress = function stopTrackingProgress() {\n this.clearInterval(this.progressInterval);\n }\n /**\n * Polyfill the `timeupdate` event for browsers that don't support it.\n *\n * @see {@link Tech#trackCurrentTime}\n */\n ;\n\n _proto.manualTimeUpdatesOn = function manualTimeUpdatesOn() {\n this.manualTimeUpdates = true;\n this.on('play', this.trackCurrentTime_);\n this.on('pause', this.stopTrackingCurrentTime_);\n }\n /**\n * Turn off the polyfill for `timeupdate` events that was created in\n * {@link Tech#manualTimeUpdatesOn}\n */\n ;\n\n _proto.manualTimeUpdatesOff = function manualTimeUpdatesOff() {\n this.manualTimeUpdates = false;\n this.stopTrackingCurrentTime();\n this.off('play', this.trackCurrentTime_);\n this.off('pause', this.stopTrackingCurrentTime_);\n }\n /**\n * Sets up an interval function to track current time and trigger `timeupdate` every\n * 250 milliseconds.\n *\n * @listens Tech#play\n * @triggers Tech#timeupdate\n */\n ;\n\n _proto.trackCurrentTime = function trackCurrentTime() {\n if (this.currentTimeInterval) {\n this.stopTrackingCurrentTime();\n }\n\n this.currentTimeInterval = this.setInterval(function () {\n /**\n * Triggered at an interval of 250ms to indicated that time is passing in the video.\n *\n * @event Tech#timeupdate\n * @type {EventTarget~Event}\n */\n this.trigger({\n type: 'timeupdate',\n target: this,\n manuallyTriggered: true\n }); // 42 = 24 fps // 250 is what Webkit uses // FF uses 15\n }, 250);\n }\n /**\n * Stop the interval function created in {@link Tech#trackCurrentTime} so that the\n * `timeupdate` event is no longer triggered.\n *\n * @listens {Tech#pause}\n */\n ;\n\n _proto.stopTrackingCurrentTime = function stopTrackingCurrentTime() {\n this.clearInterval(this.currentTimeInterval); // #1002 - if the video ends right before the next timeupdate would happen,\n // the progress bar won't make it all the way to the end\n\n this.trigger({\n type: 'timeupdate',\n target: this,\n manuallyTriggered: true\n });\n }\n /**\n * Turn off all event polyfills, clear the `Tech`s {@link AudioTrackList},\n * {@link VideoTrackList}, and {@link TextTrackList}, and dispose of this Tech.\n *\n * @fires Component#dispose\n */\n ;\n\n _proto.dispose = function dispose() {\n // clear out all tracks because we can't reuse them between techs\n this.clearTracks(NORMAL.names); // Turn off any manual progress or timeupdate tracking\n\n if (this.manualProgress) {\n this.manualProgressOff();\n }\n\n if (this.manualTimeUpdates) {\n this.manualTimeUpdatesOff();\n }\n\n _Component.prototype.dispose.call(this);\n }\n /**\n * Clear out a single `TrackList` or an array of `TrackLists` given their names.\n *\n * > Note: Techs without source handlers should call this between sources for `video`\n * & `audio` tracks. You don't want to use them between tracks!\n *\n * @param {string[]|string} types\n * TrackList names to clear, valid names are `video`, `audio`, and\n * `text`.\n */\n ;\n\n _proto.clearTracks = function clearTracks(types) {\n var _this3 = this;\n\n types = [].concat(types); // clear out all tracks because we can't reuse them between techs\n\n types.forEach(function (type) {\n var list = _this3[type + \"Tracks\"]() || [];\n var i = list.length;\n\n while (i--) {\n var track = list[i];\n\n if (type === 'text') {\n _this3.removeRemoteTextTrack(track);\n }\n\n list.removeTrack(track);\n }\n });\n }\n /**\n * Remove any TextTracks added via addRemoteTextTrack that are\n * flagged for automatic garbage collection\n */\n ;\n\n _proto.cleanupAutoTextTracks = function cleanupAutoTextTracks() {\n var list = this.autoRemoteTextTracks_ || [];\n var i = list.length;\n\n while (i--) {\n var track = list[i];\n this.removeRemoteTextTrack(track);\n }\n }\n /**\n * Reset the tech, which will removes all sources and reset the internal readyState.\n *\n * @abstract\n */\n ;\n\n _proto.reset = function reset() {}\n /**\n * Get the value of `crossOrigin` from the tech.\n *\n * @abstract\n *\n * @see {Html5#crossOrigin}\n */\n ;\n\n _proto.crossOrigin = function crossOrigin() {}\n /**\n * Set the value of `crossOrigin` on the tech.\n *\n * @abstract\n *\n * @param {string} crossOrigin the crossOrigin value\n * @see {Html5#setCrossOrigin}\n */\n ;\n\n _proto.setCrossOrigin = function setCrossOrigin() {}\n /**\n * Get or set an error on the Tech.\n *\n * @param {MediaError} [err]\n * Error to set on the Tech\n *\n * @return {MediaError|null}\n * The current error object on the tech, or null if there isn't one.\n */\n ;\n\n _proto.error = function error(err) {\n if (err !== undefined) {\n this.error_ = new MediaError(err);\n this.trigger('error');\n }\n\n return this.error_;\n }\n /**\n * Returns the `TimeRange`s that have been played through for the current source.\n *\n * > NOTE: This implementation is incomplete. It does not track the played `TimeRange`.\n * It only checks whether the source has played at all or not.\n *\n * @return {TimeRange}\n * - A single time range if this video has played\n * - An empty set of ranges if not.\n */\n ;\n\n _proto.played = function played() {\n if (this.hasStarted_) {\n return createTimeRanges(0, 0);\n }\n\n return createTimeRanges();\n }\n /**\n * Start playback\n *\n * @abstract\n *\n * @see {Html5#play}\n */\n ;\n\n _proto.play = function play() {}\n /**\n * Set whether we are scrubbing or not\n *\n * @abstract\n *\n * @see {Html5#setScrubbing}\n */\n ;\n\n _proto.setScrubbing = function setScrubbing() {}\n /**\n * Get whether we are scrubbing or not\n *\n * @abstract\n *\n * @see {Html5#scrubbing}\n */\n ;\n\n _proto.scrubbing = function scrubbing() {}\n /**\n * Causes a manual time update to occur if {@link Tech#manualTimeUpdatesOn} was\n * previously called.\n *\n * @fires Tech#timeupdate\n */\n ;\n\n _proto.setCurrentTime = function setCurrentTime() {\n // improve the accuracy of manual timeupdates\n if (this.manualTimeUpdates) {\n /**\n * A manual `timeupdate` event.\n *\n * @event Tech#timeupdate\n * @type {EventTarget~Event}\n */\n this.trigger({\n type: 'timeupdate',\n target: this,\n manuallyTriggered: true\n });\n }\n }\n /**\n * Turn on listeners for {@link VideoTrackList}, {@link {AudioTrackList}, and\n * {@link TextTrackList} events.\n *\n * This adds {@link EventTarget~EventListeners} for `addtrack`, and `removetrack`.\n *\n * @fires Tech#audiotrackchange\n * @fires Tech#videotrackchange\n * @fires Tech#texttrackchange\n */\n ;\n\n _proto.initTrackListeners = function initTrackListeners() {\n var _this4 = this;\n\n /**\n * Triggered when tracks are added or removed on the Tech {@link AudioTrackList}\n *\n * @event Tech#audiotrackchange\n * @type {EventTarget~Event}\n */\n\n /**\n * Triggered when tracks are added or removed on the Tech {@link VideoTrackList}\n *\n * @event Tech#videotrackchange\n * @type {EventTarget~Event}\n */\n\n /**\n * Triggered when tracks are added or removed on the Tech {@link TextTrackList}\n *\n * @event Tech#texttrackchange\n * @type {EventTarget~Event}\n */\n NORMAL.names.forEach(function (name) {\n var props = NORMAL[name];\n\n var trackListChanges = function trackListChanges() {\n _this4.trigger(name + \"trackchange\");\n };\n\n var tracks = _this4[props.getterName]();\n\n tracks.addEventListener('removetrack', trackListChanges);\n tracks.addEventListener('addtrack', trackListChanges);\n\n _this4.on('dispose', function () {\n tracks.removeEventListener('removetrack', trackListChanges);\n tracks.removeEventListener('addtrack', trackListChanges);\n });\n });\n }\n /**\n * Emulate TextTracks using vtt.js if necessary\n *\n * @fires Tech#vttjsloaded\n * @fires Tech#vttjserror\n */\n ;\n\n _proto.addWebVttScript_ = function addWebVttScript_() {\n var _this5 = this;\n\n if (window$1.WebVTT) {\n return;\n } // Initially, Tech.el_ is a child of a dummy-div wait until the Component system\n // signals that the Tech is ready at which point Tech.el_ is part of the DOM\n // before inserting the WebVTT script\n\n\n if (document.body.contains(this.el())) {\n // load via require if available and vtt.js script location was not passed in\n // as an option. novtt builds will turn the above require call into an empty object\n // which will cause this if check to always fail.\n if (!this.options_['vtt.js'] && isPlain(vtt) && Object.keys(vtt).length > 0) {\n this.trigger('vttjsloaded');\n return;\n } // load vtt.js via the script location option or the cdn of no location was\n // passed in\n\n\n var script = document.createElement('script');\n script.src = this.options_['vtt.js'] || 'https://vjs.zencdn.net/vttjs/0.14.1/vtt.min.js';\n\n script.onload = function () {\n /**\n * Fired when vtt.js is loaded.\n *\n * @event Tech#vttjsloaded\n * @type {EventTarget~Event}\n */\n _this5.trigger('vttjsloaded');\n };\n\n script.onerror = function () {\n /**\n * Fired when vtt.js was not loaded due to an error\n *\n * @event Tech#vttjsloaded\n * @type {EventTarget~Event}\n */\n _this5.trigger('vttjserror');\n };\n\n this.on('dispose', function () {\n script.onload = null;\n script.onerror = null;\n }); // but have not loaded yet and we set it to true before the inject so that\n // we don't overwrite the injected window.WebVTT if it loads right away\n\n window$1.WebVTT = true;\n this.el().parentNode.appendChild(script);\n } else {\n this.ready(this.addWebVttScript_);\n }\n }\n /**\n * Emulate texttracks\n *\n */\n ;\n\n _proto.emulateTextTracks = function emulateTextTracks() {\n var _this6 = this;\n\n var tracks = this.textTracks();\n var remoteTracks = this.remoteTextTracks();\n\n var handleAddTrack = function handleAddTrack(e) {\n return tracks.addTrack(e.track);\n };\n\n var handleRemoveTrack = function handleRemoveTrack(e) {\n return tracks.removeTrack(e.track);\n };\n\n remoteTracks.on('addtrack', handleAddTrack);\n remoteTracks.on('removetrack', handleRemoveTrack);\n this.addWebVttScript_();\n\n var updateDisplay = function updateDisplay() {\n return _this6.trigger('texttrackchange');\n };\n\n var textTracksChanges = function textTracksChanges() {\n updateDisplay();\n\n for (var i = 0; i < tracks.length; i++) {\n var track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n\n if (track.mode === 'showing') {\n track.addEventListener('cuechange', updateDisplay);\n }\n }\n };\n\n textTracksChanges();\n tracks.addEventListener('change', textTracksChanges);\n tracks.addEventListener('addtrack', textTracksChanges);\n tracks.addEventListener('removetrack', textTracksChanges);\n this.on('dispose', function () {\n remoteTracks.off('addtrack', handleAddTrack);\n remoteTracks.off('removetrack', handleRemoveTrack);\n tracks.removeEventListener('change', textTracksChanges);\n tracks.removeEventListener('addtrack', textTracksChanges);\n tracks.removeEventListener('removetrack', textTracksChanges);\n\n for (var i = 0; i < tracks.length; i++) {\n var track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n }\n });\n }\n /**\n * Create and returns a remote {@link TextTrack} object.\n *\n * @param {string} kind\n * `TextTrack` kind (subtitles, captions, descriptions, chapters, or metadata)\n *\n * @param {string} [label]\n * Label to identify the text track\n *\n * @param {string} [language]\n * Two letter language abbreviation\n *\n * @return {TextTrack}\n * The TextTrack that gets created.\n */\n ;\n\n _proto.addTextTrack = function addTextTrack(kind, label, language) {\n if (!kind) {\n throw new Error('TextTrack kind is required but was not provided');\n }\n\n return createTrackHelper(this, kind, label, language);\n }\n /**\n * Create an emulated TextTrack for use by addRemoteTextTrack\n *\n * This is intended to be overridden by classes that inherit from\n * Tech in order to create native or custom TextTracks.\n *\n * @param {Object} options\n * The object should contain the options to initialize the TextTrack with.\n *\n * @param {string} [options.kind]\n * `TextTrack` kind (subtitles, captions, descriptions, chapters, or metadata).\n *\n * @param {string} [options.label].\n * Label to identify the text track\n *\n * @param {string} [options.language]\n * Two letter language abbreviation.\n *\n * @return {HTMLTrackElement}\n * The track element that gets created.\n */\n ;\n\n _proto.createRemoteTextTrack = function createRemoteTextTrack(options) {\n var track = mergeOptions$3(options, {\n tech: this\n });\n return new REMOTE.remoteTextEl.TrackClass(track);\n }\n /**\n * Creates a remote text track object and returns an html track element.\n *\n * > Note: This can be an emulated {@link HTMLTrackElement} or a native one.\n *\n * @param {Object} options\n * See {@link Tech#createRemoteTextTrack} for more detailed properties.\n *\n * @param {boolean} [manualCleanup=true]\n * - When false: the TextTrack will be automatically removed from the video\n * element whenever the source changes\n * - When True: The TextTrack will have to be cleaned up manually\n *\n * @return {HTMLTrackElement}\n * An Html Track Element.\n *\n * @deprecated The default functionality for this function will be equivalent\n * to \"manualCleanup=false\" in the future. The manualCleanup parameter will\n * also be removed.\n */\n ;\n\n _proto.addRemoteTextTrack = function addRemoteTextTrack(options, manualCleanup) {\n var _this7 = this;\n\n if (options === void 0) {\n options = {};\n }\n\n var htmlTrackElement = this.createRemoteTextTrack(options);\n\n if (manualCleanup !== true && manualCleanup !== false) {\n // deprecation warning\n log$1.warn('Calling addRemoteTextTrack without explicitly setting the \"manualCleanup\" parameter to `true` is deprecated and default to `false` in future version of video.js');\n manualCleanup = true;\n } // store HTMLTrackElement and TextTrack to remote list\n\n\n this.remoteTextTrackEls().addTrackElement_(htmlTrackElement);\n this.remoteTextTracks().addTrack(htmlTrackElement.track);\n\n if (manualCleanup !== true) {\n // create the TextTrackList if it doesn't exist\n this.ready(function () {\n return _this7.autoRemoteTextTracks_.addTrack(htmlTrackElement.track);\n });\n }\n\n return htmlTrackElement;\n }\n /**\n * Remove a remote text track from the remote `TextTrackList`.\n *\n * @param {TextTrack} track\n * `TextTrack` to remove from the `TextTrackList`\n */\n ;\n\n _proto.removeRemoteTextTrack = function removeRemoteTextTrack(track) {\n var trackElement = this.remoteTextTrackEls().getTrackElementByTrack_(track); // remove HTMLTrackElement and TextTrack from remote list\n\n this.remoteTextTrackEls().removeTrackElement_(trackElement);\n this.remoteTextTracks().removeTrack(track);\n this.autoRemoteTextTracks_.removeTrack(track);\n }\n /**\n * Gets available media playback quality metrics as specified by the W3C's Media\n * Playback Quality API.\n *\n * @see [Spec]{@link https://wicg.github.io/media-playback-quality}\n *\n * @return {Object}\n * An object with supported media playback quality metrics\n *\n * @abstract\n */\n ;\n\n _proto.getVideoPlaybackQuality = function getVideoPlaybackQuality() {\n return {};\n }\n /**\n * Attempt to create a floating video window always on top of other windows\n * so that users may continue consuming media while they interact with other\n * content sites, or applications on their device.\n *\n * @see [Spec]{@link https://wicg.github.io/picture-in-picture}\n *\n * @return {Promise|undefined}\n * A promise with a Picture-in-Picture window if the browser supports\n * Promises (or one was passed in as an option). It returns undefined\n * otherwise.\n *\n * @abstract\n */\n ;\n\n _proto.requestPictureInPicture = function requestPictureInPicture() {\n var PromiseClass = this.options_.Promise || window$1.Promise;\n\n if (PromiseClass) {\n return PromiseClass.reject();\n }\n }\n /**\n * A method to check for the value of the 'disablePictureInPicture'