{"version":3,"file":"static/js/vendors-7f8aeb9d.72061302.js","mappings":"gJAGOA,GAAAA,G,aACDC,EAAWC,OAAOC,OAAO,CAC7BC,SAAUC,GAAQA,EAAKD,SACvBE,SAAUC,GAAQA,EAAKF,KAAKG,KAC5BC,QAAS,IAOI,SAASC,EAASC,GAC/B,MAAMC,EAAOV,OAAOW,OAAO,CAAC,EAAGZ,EAAUU,GACzC,SAASG,EAASC,GAChB,MAAMC,EAAMJ,EAAKG,GACjB,MAAsB,mBAARC,EAAqBA,EAAM,IAAMA,CACjD,CAEA,SAASC,EAAOC,GACd,MAAMC,EAAQC,EAiEhB,WACE,MAAMC,EAAWC,IACXhB,EAAWQ,EAAS,YACpBL,EAAUK,EAAS,WACzB,OAAO,cAAcO,EACnBE,WAAAA,CAAYlB,GACVmB,MAAMnB,GACNH,OAAOW,OAAOY,KAAM,CAClBC,EAAG,EAAGC,EAAG,EACTC,KAAM,EAAGC,OAAQ,EAAGC,MAAO,EAAGC,OAAQ,EACtCC,KAAMP,KAAMQ,SAAU,EAAGC,KAAM,KAC/BC,KAAMV,KAAMW,SAAU,EAAGC,KAAM,MAEnC,CACA,QAAI7B,GAAS,OAAOF,EAASmB,KAAKpB,KAAO,CACzCI,OAAAA,CAAQ6B,GAAS,OAAO7B,EAAQgB,KAAKpB,KAAMiC,EAAMjC,KAAO,CACxD,KAAIqB,GAAM,OAAOD,KAAKpB,KAAKqB,CAAG,CAC9B,KAAIA,CAAEa,GAAKd,KAAKpB,KAAKqB,EAAIa,CAAG,CAC5B,KAAIZ,GAAM,OAAOF,KAAKpB,KAAKsB,CAAG,CAC9B,KAAIA,CAAEY,GAAKd,KAAKpB,KAAKsB,EAAIY,CAAG,CAC5BC,MAAAA,GAGE,OAFAC,EAAehB,MACfiB,EAASjB,MACFA,IACT,EAEJ,CA3FqBkB,GAAczB,GAAMX,GAAMA,EAAKH,WAElD,OADAe,EAAMqB,SACCrB,EAAMd,IACf,CAEA,SAASiB,IACP,MAAMhB,EAAWQ,EAAS,YACpBL,EAAUK,EAAS,WACzB,OAAO,MAAMO,UAAiBuB,EAAAA,GAAUC,UAAUtB,YAChDA,WAAAA,CAAYlB,GACVmB,MAAMnB,EACR,CACAyC,IAAAA,GACE,MAAMC,EAAI3B,EAAKK,KAAKF,YAAaE,MAAMlB,GAAMA,EAAKH,WAElD,OADA2C,EAAEC,MAAKzC,GAAQA,EAAKF,KAAOE,EAAKF,KAAKA,OAC9B0C,CACT,CACA,QAAIvC,GAAS,OAAOF,EAASmB,KAAO,CACpChB,OAAAA,CAAQ6B,GAAS,OAAO7B,EAAQgB,KAAMa,EAAQ,CAC9C,SAAIW,GAAU,OAAOxB,KAAKyB,aAAe,CACzC,SAAIC,GAAU,OAAO1B,KAAKjB,KAAK,EAAI,CACnC,SAAI4C,GAAU,OAAO3B,KAAKjB,KAAK,EAAI,CACnC,OAAI6C,GAAQ,OAAO5B,KAAKE,CAAG,CAC3B,UAAI2B,GAAW,OAAO7B,KAAKE,EAAIF,KAAK2B,KAAO,CAC3C,QAAIG,GAAS,OAAO9B,KAAKC,EAAID,KAAK0B,MAAQ,CAAG,CAC7C,SAAIK,GAAU,OAAO/B,KAAKC,EAAID,KAAK0B,MAAQ,CAAG,CAC9C,QAAIM,GACF,MAAMC,EAAOjC,KAAKkC,YAClB,OAAOD,EAAKA,EAAKE,OAAS,EAC5B,CACA,eAAIC,GACF,OAAOpC,KAAKqC,YAAcrC,KAAKrB,SAASwD,OAAS,CACnD,CACA,eAAIE,GAAgB,OAAQrC,KAAKsC,UAAY,CAC7C,cAAIA,GAAe,OAAyB,OAAlBtC,KAAKrB,QAAmB,CAClD,cAAI4D,GACF,OAAOvC,KAAKqC,YAAcrC,KAAKrB,SAAS,GAAK,IAC/C,CACA,aAAI6D,GACF,OAAOxC,KAAKqC,YAAcrC,KAAKrB,SAASqB,KAAKoC,YAAc,GAAK,IAClE,CACA,WAAIK,GACF,OAAQzC,KAAKrB,UAAY,IAAI+D,QAC3B,CAACC,EAAKC,IAAQhD,EAASiD,WAAWF,EAAKC,EAAIH,UAC3CzC,KAAK8C,YACT,CACA,eAAIA,GACF,MAAO,CACLlB,IAAK5B,KAAK4B,IACVC,OAAQ7B,KAAK6B,OACbC,KAAM9B,KAAK8B,KACXC,MAAO/B,KAAK+B,MAEhB,CACA,iBAAOc,CAAWE,EAAIC,GACpB,MAAO,CACLpB,IAAKqB,KAAKC,IAAIH,EAAGnB,IAAKoB,EAAGpB,KACzBC,OAAQoB,KAAKE,IAAIJ,EAAGlB,OAAQmB,EAAGnB,QAC/BC,KAAMmB,KAAKC,IAAIH,EAAGjB,KAAMkB,EAAGlB,MAC3BC,MAAOkB,KAAKE,IAAIJ,EAAGhB,MAAOiB,EAAGjB,OAEjC,EAEJ,CA8BA,SAASpC,EAAKyD,EAAWC,EAAU1E,GACjC,MAAM2E,EAAQA,CAAC1E,EAAM2E,KACnB,MAAMzE,EAAO,IAAIsE,EAAUxE,GAC3BH,OAAOW,OAAON,EAAM,CAClByE,SACAC,MAAkB,OAAXD,EAAkB,EAAIA,EAAOC,MAAQ,EAC5CC,OAAQ,EACRtB,OAAQ,IAEV,MAAMuB,EAAW/E,EAASC,IAAS,GAWnC,OAVAE,EAAKH,SAA+B,IAApB+E,EAASvB,OAAe,KACpCuB,EAASC,KAAIC,GAAMN,EAAMM,EAAI9E,KAC7BA,EAAKH,UACPF,OAAOW,OAAON,EAAMA,EAAKH,SAAS+D,QAChC,CAACmB,EAAIjB,KAAQ,CACXa,OAAQR,KAAKE,IAAIU,EAAGJ,OAAQb,EAAIa,OAAS,GACzCtB,OAAQ0B,EAAG1B,OAASS,EAAIT,UACtBrD,IAGDA,CAAI,EAEb,OAAOwE,EAAMD,EAAU,KACzB,CAgCA,OA7BA5E,OAAOW,OAAOI,EAAQ,CACpBX,QAAAA,CAASiF,GACP,OAAOC,UAAU5B,QAAUhD,EAAKN,SAAWiF,EAAKtE,GAAUL,EAAKN,QACjE,EACAG,OAAAA,CAAQ8E,GACN,OAAOC,UAAU5B,QAAUhD,EAAKH,QAAU8E,EAAKtE,GAAUL,EAAKH,OAChE,EACAL,QAAAA,CAASmF,GACP,OAAOC,UAAU5B,QAAUhD,EAAKR,SAAWmF,EAAKtE,GAAUL,EAAKR,QACjE,EACAwC,SAAAA,CAAUkC,EAAU1E,GAClB,MAAMqF,OAA2B,IAAbrF,EAA2BQ,EAAKR,SAAWA,EAC/D,OAAOgB,EAAKE,IAAewD,EAAUW,EACvC,EACAC,IAAAA,CAAKxE,GACH,MAAMZ,EAAWQ,EAAS,YACpB6E,EAAQC,GAAMrF,IAClB,MAAMsF,EAAKD,EAAK,KACVE,EAAKF,EAAK,QACV,EAAClE,EAAC,EAAEC,GAAKpB,EACTC,EAAOF,EAASC,GAChBkF,EAAQlF,EAAKH,UAAY,GACzB2F,EAA0B,IAAhBN,EAAK7B,OAAgB,IAAG,IAAAoC,OAClCH,EAAE,eAAAG,OAAcF,GAAEE,OAAGP,EAAKL,IAAIO,EAAMG,IAAKG,KAAKH,IAAGE,OAAGH,EAAE,MAAAG,OAAKJ,GACjE,MAAO,YAAPI,OAAmBxF,EAAKyF,KAAK,MAAK,MAAAD,OAAKH,EAAE,OAAAG,OAAMtE,EAAC,SAAAsE,OAAQrE,GAACqE,OAAGD,EAAM,OAEpE,OAAOJ,EAAM,KAANA,CAAYzE,EACrB,IAEKD,CACT,CACAP,EAASV,QAAUA,EAEnB,MAAMyC,EAAiB,SAACyD,GAAa,IAAVvE,EAAC6D,UAAA5B,OAAA,QAAAuC,IAAAX,UAAA,GAAAA,UAAA,GAAG,EAc7B,OAbAU,EAAEvE,EAAIA,GACLuE,EAAE9F,UAAY,IAAI+D,QAAO,CAACC,EAAKC,KAC9B,MAAO+B,EAAGC,GAAYjC,EACtB3B,EAAe4B,EAAK6B,EAAEvE,EAAIuE,EAAE9C,OAG5B,MAAMkD,GAAc,IAANF,EAAU/B,EAAIrC,KAAOqC,EAAIlC,MAAMmB,OACnC,IAAN8C,GAASG,EAASL,EAAGE,EAAGC,GAE5B,MAAO,CAACD,EAAI,EADCI,EAAWF,EAAMF,EAAGC,GACb,GACnB,CAAC,EAAG,OACPI,EAAYP,GACZQ,EAAaR,GACNA,CACT,EAMMxD,EAAWA,CAACwD,EAAGS,EAASC,UAGL,IAAZD,IACTA,GAAWT,EAAEtE,KAAOsE,EAAErE,OACtB+E,EAAU,GAEZ,MAAMC,EAAMF,EAAUT,EAAEtE,KAKxB,OAJAsE,EAAEtE,KAAOiF,EAAMX,EAAErE,OAAS+E,EAC1BV,EAAErE,OAAS,EACXqE,EAAExE,EAAIkF,EAAUV,EAAEtE,MACjBsE,EAAE9F,UAAY,IAAI0G,SAAQC,GAAKrE,EAASqE,EAAGF,EAAKX,EAAExE,KAC5CwE,CAAC,EAKJO,EAAcP,KACjBA,EAAE9F,UAAY,IAAI+D,QAAO,CAACC,EAAK4C,KAC9B,MAAOC,EAAcC,GAAiB9C,EAChC+C,EAAWF,EAAeD,EAAMlF,MAChCsF,EAAYF,EAAgBC,EAAWH,EAAMjF,OAEnD,OADAiF,EAAMpF,MAAQwF,EACP,CAACD,EAAUC,EAAU,GAC3B,CAAC,EAAG,GAAG,EAKNb,EAAWA,CAACL,EAAGE,EAAGiB,KACtB,MAAMC,EAAOpB,EAAE9F,SAASgG,EAAI,GACtBmB,EAAarB,EAAE9F,SAASgG,GAC9B,IAAIoB,EAAWF,EACXG,EAAWH,EAAK1F,KAChB8F,EAAWH,EACXI,EAAWJ,EAAW3F,KACtBgG,GAAU,EACd,KAAOJ,GAAYE,GAAU,CACvBF,EAASlE,OAAS+D,EAAKf,OAAMe,EAAOA,EAAKQ,MAI7C,MAAMC,EACHL,EAAWD,EAAS3F,QAAW8F,EAAWD,EAAS7F,QACpD2F,EAASrE,MAAQ,EAAIuE,EAASvE,MAAQ,EACtCqE,EAAS/G,QAAQiH,IACfI,EAAO,GAAMA,EAAO,GAAKF,KAC3BD,GAAYG,EAEZC,EAAYR,EAAYO,GACxBE,EAAgB9B,EAAGE,EAAGiB,EAAKY,MAAOH,IAEpCF,GAAU,EAEV,MAAMM,EAAcV,EAASlE,OACvB6E,EAAaT,EAASpE,OACxB4E,GAAeC,IACjBX,EAAWY,EAAaZ,GACpBA,IAAUC,GAAYD,EAAS5F,OAEjCsG,GAAeC,IACjBT,EAAWW,EAAaX,GACpBA,IAAUC,GAAYD,EAAS9F,MAEvC,EAGK4F,GAAYE,EAAUY,EAAQpC,EAAGE,EAAGsB,EAAUC,GAE1CH,IAAaE,GAAUa,EAAQrC,EAAGE,EAAGoB,EAAUC,EAAS,EAK7DM,EAAcA,CAACS,EAASC,KAC5BD,EAAQ5G,MAAQ6G,EAChBD,EAAQvG,UAAYwG,EACpBD,EAAQpG,UAAYqG,CAAQ,EAGxBT,EAAkBA,CAAC9B,EAAGwC,EAAaC,EAAUb,KACjD,MAAMP,EAAarB,EAAE9F,SAASsI,GACxBE,EAAIF,EAAcC,EAExB,GAAIC,EAAI,EAAG,CACT,MAAMC,EAAQf,EAAOc,EACrB1C,EAAE9F,SAASuI,EAAW,GAAG7G,OAAS+G,EAClCtB,EAAWzF,OAAS+G,EACpBtB,EAAWxF,QAAU+F,EAAOe,CAC9B,GAGIR,EAAenC,GACZA,EAAEpC,YAAcoC,EAAElC,WAAakC,EAAEhE,KAGpCkG,EAAelC,GACZA,EAAEpC,YAAcoC,EAAEjC,UAAYiC,EAAE7D,KAGnCiG,EAAUA,CAACpC,EAAGE,EAAGsB,EAAUC,KAC/B,MAAM3D,EAAakC,EAAElC,WACfhC,EAAOgC,EAAWhC,KAClBuF,EAAarB,EAAE9F,SAASgG,GAC9BpE,EAAKE,KAAOwF,EAEZ,MAAMoB,EAAOnB,EAAWD,EAAS9F,KAAOoC,EAAW/B,SACnDD,EAAKJ,MAAQkH,EAEb9G,EAAKH,QAAUiH,EAEf9E,EAAWhC,KAAOuF,EAAWvF,KAC7BgC,EAAW/B,SAAWsF,EAAWtF,QAAQ,EAIrCsG,EAAUA,CAACrC,EAAGE,EAAGoB,EAAUC,KAC/B,MAAMF,EAAarB,EAAE9F,SAASgG,GACxBjE,EAAOoF,EAAWpF,KAClBmF,EAAOpB,EAAE9F,SAASgG,EAAI,GAC5BjE,EAAKE,KAAOmF,EACZ,MAAMsB,EAAOrB,EAAWD,EAAS5F,KAAO2F,EAAWnF,SACnDD,EAAKP,MAAQkH,EACb3G,EAAKN,QAAUiH,EACfvB,EAAWpF,KAAOmF,EAAKnF,KACvBoF,EAAWnF,SAAWkF,EAAKlF,QAAQ,EAI/BsE,EAAeR,IACnB,GAAIA,EAAEpC,YAAa,CACjB,MAAMiF,EAAK7C,EAAElC,WACPgF,EAAK9C,EAAEjC,UACPpC,GAAUkH,EAAGlH,OAASkH,EAAGnH,KAAOmH,EAAG5F,MAAQ,EAC/C6F,EAAGpH,KAAOoH,EAAGnH,OAASmH,EAAG7F,MAAQ,GAAM,EACzCjD,OAAOW,OAAOqF,EAAG,CACfrE,SACAG,KAAM+G,EAAG/G,KAAMC,SAAU8G,EAAG9G,SAC5BE,KAAM6G,EAAG7G,KAAMC,SAAU4G,EAAG5G,UAEhC,GAKIoE,EAAaA,CAACF,EAAM2B,EAAO5B,KAE/B,KAAoB,OAAbA,GAAqBC,GAAQD,EAASC,MAC3CD,EAAWA,EAASwB,KAEtB,MAAO,CACLvB,OACA2B,QACAJ,KAAMxB,EACP,C,mBC7VH,SAAS4C,EAAM1I,GACb,IAAIsG,EAAM,EACNzG,EAAWG,EAAKH,SAChBgG,EAAIhG,GAAYA,EAASwD,OAC7B,GAAKwC,EACA,OAASA,GAAK,GAAGS,GAAOzG,EAASgG,GAAG8C,WADjCrC,EAAM,EAEdtG,EAAK2I,MAAQrC,CACf,CCKe,SAASjE,EAAUvC,EAAMD,GACtC,IAEIG,EAEAyG,EACAmC,EACA/C,EACAwC,EAPAnF,EAAO,IAAI2F,EAAK/I,GAChBgJ,GAAUhJ,EAAK6I,QAAUzF,EAAKyF,MAAQ7I,EAAK6I,OAE3CjG,EAAQ,CAACQ,GAQb,IAFgB,MAAZrD,IAAkBA,EAAWkJ,GAE1B/I,EAAO0C,EAAMsG,OAElB,GADIF,IAAQ9I,EAAK2I,OAAS3I,EAAKF,KAAK6I,QAC/BC,EAAS/I,EAASG,EAAKF,SAAWuI,EAAIO,EAAOvF,QAEhD,IADArD,EAAKH,SAAW,IAAIoJ,MAAMZ,GACrBxC,EAAIwC,EAAI,EAAGxC,GAAK,IAAKA,EACxBnD,EAAMwG,KAAKzC,EAAQzG,EAAKH,SAASgG,GAAK,IAAIgD,EAAKD,EAAO/C,KACtDY,EAAMhC,OAASzE,EACfyG,EAAM/B,MAAQ1E,EAAK0E,MAAQ,EAKjC,OAAOxB,EAAKiG,WAAWC,EACzB,CAMA,SAASL,EAAgBM,GACvB,OAAOA,EAAExJ,QACX,CAEA,SAASyJ,EAAStJ,GAChBA,EAAKF,KAAOE,EAAKF,KAAKA,IACxB,CAEO,SAASsJ,EAAcpJ,GAC5B,IAAI2E,EAAS,EACb,GAAG3E,EAAK2E,OAASA,SACT3E,EAAOA,EAAKyE,SAAYzE,EAAK2E,SAAWA,EAClD,CAEO,SAASkE,EAAK/I,GACnBoB,KAAKpB,KAAOA,EACZoB,KAAKwD,MACLxD,KAAKyD,OAAS,EACdzD,KAAKuD,OAAS,IAChB,C,kBAEAoE,EAAKvG,UAAYD,EAAUC,UAAY,CACrCtB,YAAa6H,EACbH,MDzDa,WACb,OAAOxH,KAAKqI,UAAUb,EACxB,ECwDEjG,KCnEa,SAAS+G,GACtB,IAAiBC,EAAwB5J,EAAUgG,EAAGwC,EAAlDrI,EAAOkB,KAAeoG,EAAO,CAACtH,GAClC,GAEE,IADAyJ,EAAUnC,EAAKoC,UAAWpC,EAAO,GAC1BtH,EAAOyJ,EAAQT,OAEpB,GADAQ,EAASxJ,GAAOH,EAAWG,EAAKH,SAClB,IAAKgG,EAAI,EAAGwC,EAAIxI,EAASwD,OAAQwC,EAAIwC,IAAKxC,EACtDyB,EAAK4B,KAAKrJ,EAASgG,UAGhByB,EAAKjE,QACd,OAAOnC,IACT,EDwDEqI,UEpEa,SAASC,GAEtB,IADA,IAA4C3J,EAAUgG,EAAGwC,EAArDrI,EAAOkB,KAAMwB,EAAQ,CAAC1C,GAAOsH,EAAO,GACjCtH,EAAO0C,EAAMsG,OAElB,GADA1B,EAAK4B,KAAKlJ,GAAOH,EAAWG,EAAKH,SACnB,IAAKgG,EAAI,EAAGwC,EAAIxI,EAASwD,OAAQwC,EAAIwC,IAAKxC,EACtDnD,EAAMwG,KAAKrJ,EAASgG,IAGxB,KAAO7F,EAAOsH,EAAK0B,OACjBQ,EAASxJ,GAEX,OAAOkB,IACT,EFyDEiI,WGrEa,SAASK,GAEtB,IADA,IAAiC3J,EAAUgG,EAAvC7F,EAAOkB,KAAMwB,EAAQ,CAAC1C,GACnBA,EAAO0C,EAAMsG,OAElB,GADAQ,EAASxJ,GAAOH,EAAWG,EAAKH,SAClB,IAAKgG,EAAIhG,EAASwD,OAAS,EAAGwC,GAAK,IAAKA,EACpDnD,EAAMwG,KAAKrJ,EAASgG,IAGxB,OAAO3E,IACT,EH6DEoF,IItEa,SAASqC,GACtB,OAAOzH,KAAKqI,WAAU,SAASvJ,GAI7B,IAHA,IAAIsG,GAAOqC,EAAM3I,EAAKF,OAAS,EAC3BD,EAAWG,EAAKH,SAChBgG,EAAIhG,GAAYA,EAASwD,SACpBwC,GAAK,GAAGS,GAAOzG,EAASgG,GAAG8C,MACpC3I,EAAK2I,MAAQrC,CACf,GACF,EJ+DEqD,KKvEa,SAASC,GACtB,OAAO1I,KAAKiI,YAAW,SAASnJ,GAC1BA,EAAKH,UACPG,EAAKH,SAAS8J,KAAKC,EAEvB,GACF,ELkEEC,KMxEa,SAASC,GAItB,IAHA,IAAIC,EAAQ7I,KACR8I,EAcN,SAA6BC,EAAGC,GAC9B,GAAID,IAAMC,EAAG,OAAOD,EACpB,IAAIE,EAASF,EAAE7G,YACXgH,EAASF,EAAE9G,YACXZ,EAAI,KACRyH,EAAIE,EAAOnB,MACXkB,EAAIE,EAAOpB,MACX,KAAOiB,IAAMC,GACX1H,EAAIyH,EACJA,EAAIE,EAAOnB,MACXkB,EAAIE,EAAOpB,MAEb,OAAOxG,CACT,CA3BiB6H,CAAoBN,EAAOD,GACtCpH,EAAQ,CAACqH,GACNA,IAAUC,GACfD,EAAQA,EAAMtF,OACd/B,EAAMwG,KAAKa,GAGb,IADA,IAAIvD,EAAI9D,EAAMW,OACPyG,IAAQE,GACbtH,EAAM4H,OAAO9D,EAAG,EAAGsD,GACnBA,EAAMA,EAAIrF,OAEZ,OAAO/B,CACT,EN2DEU,UOzEa,WAEb,IADA,IAAIpD,EAAOkB,KAAMwB,EAAQ,CAAC1C,GACnBA,EAAOA,EAAKyE,QACjB/B,EAAMwG,KAAKlJ,GAEb,OAAO0C,CACT,EPoEEC,YQ1Ea,WACb,IAAID,EAAQ,GAIZ,OAHAxB,KAAKuB,MAAK,SAASzC,GACjB0C,EAAMwG,KAAKlJ,EACb,IACO0C,CACT,ERqEE6H,OS3Ea,WACb,IAAIA,EAAS,GAMb,OALArJ,KAAKiI,YAAW,SAASnJ,GAClBA,EAAKH,UACR0K,EAAOrB,KAAKlJ,EAEhB,IACOuK,CACT,EToEEC,MU5Ea,WACb,IAAItH,EAAOhC,KAAMsJ,EAAQ,GAMzB,OALAtH,EAAKT,MAAK,SAASzC,GACbA,IAASkD,GACXsH,EAAMtB,KAAK,CAACuB,OAAQzK,EAAKyE,OAAQiG,OAAQ1K,GAE7C,IACOwK,CACT,EVqEEjI,KAtCF,WACE,OAAOF,EAAUnB,MAAMiI,WAAWG,EACpC,GWzCmBL,MAAM3G,UAAUqI,MCApB,WAASlG,EAAQmG,EAAIC,EAAIC,EAAIC,GAO1C,IANA,IACI/K,EADA0C,EAAQ+B,EAAO5E,SAEfgG,GAAK,EACLwC,EAAI3F,EAAMW,OACVmD,EAAI/B,EAAOkE,QAAUmC,EAAKF,GAAMnG,EAAOkE,QAElC9C,EAAIwC,IACXrI,EAAO0C,EAAMmD,IAASgF,GAAKA,EAAI7K,EAAK+K,GAAKA,EACzC/K,EAAK4K,GAAKA,EAAI5K,EAAK8K,GAAKF,GAAM5K,EAAK2I,MAAQnC,CAE/C,CCgDA,SAASwE,EAAShL,EAAM6F,GACtB3E,KAAK+J,EAAIjL,EACTkB,KAAKuD,OAAS,KACdvD,KAAKrB,SAAW,KAChBqB,KAAKgK,EAAI,KACThK,KAAK+I,EAAI/I,KACTA,KAAKiK,EAAI,EACTjK,KAAKkK,EAAI,EACTlK,KAAKsB,EAAI,EACTtB,KAAKmK,EAAI,EACTnK,KAAKoK,EAAI,KACTpK,KAAK2E,EAAIA,CACX,CCvEe,WAASpB,EAAQmG,EAAIC,EAAIC,EAAIC,GAO1C,IANA,IACI/K,EADA0C,EAAQ+B,EAAO5E,SAEfgG,GAAK,EACLwC,EAAI3F,EAAMW,OACVmD,EAAI/B,EAAOkE,QAAUoC,EAAKF,GAAMpG,EAAOkE,QAElC9C,EAAIwC,IACXrI,EAAO0C,EAAMmD,IAAS+E,GAAKA,EAAI5K,EAAK8K,GAAKA,EACzC9K,EAAK6K,GAAKA,EAAI7K,EAAK+K,GAAKF,GAAM7K,EAAK2I,MAAQnC,CAE/C,CD8DAwE,EAAS1I,UAAY3C,OAAO4L,OAAO1C,EAAKvG,WEtEjC,IAAIkJ,GAAO,EAAIrH,KAAKsH,KAAK,IAAM,EAE/B,SAASC,EAAcC,EAAOlH,EAAQmG,EAAIC,EAAIC,EAAIC,GAkBvD,IAjBA,IAEIa,EACAC,EAIAC,EAAIC,EAEJC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAfAC,EAAO,GACP7J,EAAQ+B,EAAO5E,SAGfwF,EAAK,EACLC,EAAK,EACL+C,EAAI3F,EAAMW,OAEVsF,EAAQlE,EAAOkE,MASZtD,EAAKgD,GAAG,CACbyD,EAAKhB,EAAKF,EAAImB,EAAKhB,EAAKF,EAGxB,GAAGmB,EAAWtJ,EAAM4C,KAAMqD,aAAeqD,GAAY1G,EAAK+C,GAO1D,IANA4D,EAAWC,EAAWF,EAEtBM,EAAON,EAAWA,GADlBK,EAAQlI,KAAKE,IAAI0H,EAAKD,EAAIA,EAAKC,IAAOpD,EAAQgD,IAE9CS,EAAWjI,KAAKE,IAAI6H,EAAWI,EAAMA,EAAOL,GAGrC3G,EAAK+C,IAAK/C,EAAI,CAMnB,GALA0G,GAAYH,EAAYnJ,EAAM4C,GAAIqD,MAC9BkD,EAAYI,IAAUA,EAAWJ,GACjCA,EAAYK,IAAUA,EAAWL,GACrCS,EAAON,EAAWA,EAAWK,GAC7BF,EAAWhI,KAAKE,IAAI6H,EAAWI,EAAMA,EAAOL,IAC7BG,EAAU,CAAEJ,GAAYH,EAAW,KAAO,CACzDO,EAAWD,CACb,CAGAI,EAAKrD,KAAK0C,EAAM,CAACjD,MAAOqD,EAAUQ,KAAMV,EAAKC,EAAIlM,SAAU6C,EAAMiI,MAAMtF,EAAIC,KACvEsG,EAAIY,KAAMC,EAAYb,EAAKhB,EAAIC,EAAIC,EAAInC,EAAQkC,GAAMkB,EAAKC,EAAWrD,EAAQoC,GAC5E2B,EAAad,EAAKhB,EAAIC,EAAIlC,EAAQiC,GAAMkB,EAAKE,EAAWrD,EAAQmC,EAAIC,GACzEpC,GAASqD,EAAU3G,EAAKC,CAC1B,CAEA,OAAOiH,CACT,EAEe,SAAUI,EAAOhB,GAE9B,SAASiB,EAASnI,EAAQmG,EAAIC,EAAIC,EAAIC,GACpCW,EAAcC,EAAOlH,EAAQmG,EAAIC,EAAIC,EAAIC,EAC3C,CAMA,OAJA6B,EAASjB,MAAQ,SAASxK,GACxB,OAAOwL,GAAQxL,GAAKA,GAAK,EAAIA,EAAI,EACnC,EAEOyL,CACR,EAXD,CAWGpB,IC7DY,SAAUmB,EAAOhB,GAE9B,SAASkB,EAAWpI,EAAQmG,EAAIC,EAAIC,EAAIC,GACtC,IAAKwB,EAAO9H,EAAOqI,YAAeP,EAAKZ,QAAUA,EAU/C,IATA,IAAIY,EACAX,EACAlJ,EACAmD,EAEAwC,EADA0E,GAAK,EAEL3B,EAAImB,EAAKlJ,OACTsF,EAAQlE,EAAOkE,QAEVoE,EAAI3B,GAAG,CAEd,IADe1I,GAAfkJ,EAAMW,EAAKQ,IAAgBlN,SACtBgG,EAAI+F,EAAIjD,MAAQ,EAAGN,EAAI3F,EAAMW,OAAQwC,EAAIwC,IAAKxC,EAAG+F,EAAIjD,OAASjG,EAAMmD,GAAG8C,MACxEiD,EAAIY,KAAMC,EAAYb,EAAKhB,EAAIC,EAAIC,EAAID,IAAOE,EAAKF,GAAMe,EAAIjD,MAAQA,GACpE+D,EAAad,EAAKhB,EAAIC,EAAID,IAAOE,EAAKF,GAAMgB,EAAIjD,MAAQA,EAAOoC,GACpEpC,GAASiD,EAAIjD,KACf,MAEAlE,EAAOqI,UAAYP,EAAOb,EAAcC,EAAOlH,EAAQmG,EAAIC,EAAIC,EAAIC,GACnEwB,EAAKZ,MAAQA,CAEjB,CAMA,OAJAkB,EAAWlB,MAAQ,SAASxK,GAC1B,OAAOwL,GAAQxL,GAAKA,GAAK,EAAIA,EAAI,EACnC,EAEO0L,CACR,EA/BD,CA+BGrB,E,oCCnCH,IAAIwB,EAAO,CAACrE,MAAOA,QAEnB,SAASsE,IACP,IAAK,IAAyC3B,EAArCzF,EAAI,EAAGwC,EAAIpD,UAAU5B,OAAQ4H,EAAI,CAAC,EAAMpF,EAAIwC,IAAKxC,EAAG,CAC3D,KAAMyF,EAAIrG,UAAUY,GAAK,KAAQyF,KAAKL,GAAM,QAAQiC,KAAK5B,GAAI,MAAM,IAAI6B,MAAM,iBAAmB7B,GAChGL,EAAEK,GAAK,EACT,CACA,OAAO,IAAI8B,EAASnC,EACtB,CAEA,SAASmC,EAASnC,GAChB/J,KAAK+J,EAAIA,CACX,CAoDA,SAASoC,EAAIC,EAAM9M,GACjB,IAAK,IAA4BgC,EAAxBqD,EAAI,EAAGwC,EAAIiF,EAAKjK,OAAWwC,EAAIwC,IAAKxC,EAC3C,IAAKrD,EAAI8K,EAAKzH,IAAIrF,OAASA,EACzB,OAAOgC,EAAEmG,KAGf,CAEA,SAAS4E,EAAID,EAAM9M,EAAMgJ,GACvB,IAAK,IAAI3D,EAAI,EAAGwC,EAAIiF,EAAKjK,OAAQwC,EAAIwC,IAAKxC,EACxC,GAAIyH,EAAKzH,GAAGrF,OAASA,EAAM,CACzB8M,EAAKzH,GAAKmH,EAAMM,EAAOA,EAAK3C,MAAM,EAAG9E,GAAGJ,OAAO6H,EAAK3C,MAAM9E,EAAI,IAC9D,KACF,CAGF,OADgB,MAAZ2D,GAAkB8D,EAAKpE,KAAK,CAAC1I,KAAMA,EAAMmI,MAAOa,IAC7C8D,CACT,CA1DAF,EAAS9K,UAAY2K,EAAS3K,UAAY,CACxCtB,YAAaoM,EACbI,GAAI,SAASC,EAAUjE,GACrB,IAEI8B,EAd2BoC,EAY3BzC,EAAI/J,KAAK+J,EACT0C,GAb2BD,EAaOzC,GAAfwC,EAAW,IAZnBG,OAAOC,MAAM,SAAShJ,KAAI,SAASyG,GAClD,IAAI9K,EAAO,GAAIqF,EAAIyF,EAAEwC,QAAQ,KAE7B,GADIjI,GAAK,IAAGrF,EAAO8K,EAAEX,MAAM9E,EAAI,GAAIyF,EAAIA,EAAEX,MAAM,EAAG9E,IAC9CyF,IAAMoC,EAAMK,eAAezC,GAAI,MAAM,IAAI6B,MAAM,iBAAmB7B,GACtE,MAAO,CAACgC,KAAMhC,EAAG9K,KAAMA,EACzB,KASMqF,GAAK,EACLwC,EAAIsF,EAAEtK,OAGV,KAAI4B,UAAU5B,OAAS,GAAvB,CAOA,GAAgB,MAAZmG,GAAwC,mBAAbA,EAAyB,MAAM,IAAI2D,MAAM,qBAAuB3D,GAC/F,OAAS3D,EAAIwC,GACX,GAAIiD,GAAKmC,EAAWE,EAAE9H,IAAIyH,KAAMrC,EAAEK,GAAKiC,EAAItC,EAAEK,GAAImC,EAASjN,KAAMgJ,QAC3D,GAAgB,MAAZA,EAAkB,IAAK8B,KAAKL,EAAGA,EAAEK,GAAKiC,EAAItC,EAAEK,GAAImC,EAASjN,KAAM,MAG1E,OAAOU,IAVP,CAFE,OAAS2E,EAAIwC,OAAQiD,GAAKmC,EAAWE,EAAE9H,IAAIyH,QAAUhC,EAAI+B,EAAIpC,EAAEK,GAAImC,EAASjN,OAAQ,OAAO8K,CAa/F,EACA/I,KAAM,WACJ,IAAIA,EAAO,CAAC,EAAG0I,EAAI/J,KAAK+J,EACxB,IAAK,IAAIK,KAAKL,EAAG1I,EAAK+I,GAAKL,EAAEK,GAAGX,QAChC,OAAO,IAAIyC,EAAS7K,EACtB,EACAyL,KAAM,SAASV,EAAMW,GACnB,IAAK5F,EAAIpD,UAAU5B,OAAS,GAAK,EAAG,IAAK,IAAgCgF,EAAGiD,EAA/B4C,EAAO,IAAIjF,MAAMZ,GAAIxC,EAAI,EAASA,EAAIwC,IAAKxC,EAAGqI,EAAKrI,GAAKZ,UAAUY,EAAI,GACnH,IAAK3E,KAAK+J,EAAE8C,eAAeT,GAAO,MAAM,IAAIH,MAAM,iBAAmBG,GACrE,IAAuBzH,EAAI,EAAGwC,GAAzBiD,EAAIpK,KAAK+J,EAAEqC,IAAoBjK,OAAQwC,EAAIwC,IAAKxC,EAAGyF,EAAEzF,GAAG8C,MAAMwF,MAAMF,EAAMC,EACjF,EACAC,MAAO,SAASb,EAAMW,EAAMC,GAC1B,IAAKhN,KAAK+J,EAAE8C,eAAeT,GAAO,MAAM,IAAIH,MAAM,iBAAmBG,GACrE,IAAK,IAAIhC,EAAIpK,KAAK+J,EAAEqC,GAAOzH,EAAI,EAAGwC,EAAIiD,EAAEjI,OAAQwC,EAAIwC,IAAKxC,EAAGyF,EAAEzF,GAAG8C,MAAMwF,MAAMF,EAAMC,EACrF,GAsBF,S,mFCjFO,MAAME,EAAa,CAACC,SAAS,GACvBC,EAAoB,CAACC,SAAS,EAAMF,SAAS,GAEnD,SAASG,EAAcC,GAC5BA,EAAMC,0BACR,CAEe,WAASD,GACtBA,EAAME,iBACNF,EAAMC,0BACR,CCTe,WAASE,GACtB,IAAI1L,EAAO0L,EAAKC,SAASC,gBACrBC,GAAYC,EAAAA,EAAAA,IAAOJ,GAAMpB,GAAG,iBAAkByB,EAASX,GACvD,kBAAmBpL,EACrB6L,EAAUvB,GAAG,mBAAoByB,EAASX,IAE1CpL,EAAKgM,WAAahM,EAAKiM,MAAMC,cAC7BlM,EAAKiM,MAAMC,cAAgB,OAE/B,CAEO,SAASC,EAAQT,EAAMU,GAC5B,IAAIpM,EAAO0L,EAAKC,SAASC,gBACrBC,GAAYC,EAAAA,EAAAA,IAAOJ,GAAMpB,GAAG,iBAAkB,MAC9C8B,IACFP,EAAUvB,GAAG,aAAcyB,EAASX,GACpCiB,YAAW,WAAaR,EAAUvB,GAAG,aAAc,KAAO,GAAG,IAE3D,kBAAmBtK,EACrB6L,EAAUvB,GAAG,mBAAoB,OAEjCtK,EAAKiM,MAAMC,cAAgBlM,EAAKgM,kBACzBhM,EAAKgM,WAEhB,CC3BA,QAAe/N,GAAK,IAAMA,ECAX,SAASqO,EAAUlC,EAAImC,GAQnC,IARqC,YACtCC,EAAW,QACXC,EAAO,OACPjF,EAAM,WACNkF,EAAU,OACVC,EAAM,EACN1O,EAAC,EAAEC,EAAC,GAAE0K,EAAE,GAAEC,EAAE,SACZkB,GACDwC,EACC9P,OAAOmQ,iBAAiB5O,KAAM,CAC5BoM,KAAM,CAAC3E,MAAO2E,EAAMyC,YAAY,EAAMC,cAAc,GACpDN,YAAa,CAAC/G,MAAO+G,EAAaK,YAAY,EAAMC,cAAc,GAClEL,QAAS,CAAChH,MAAOgH,EAASI,YAAY,EAAMC,cAAc,GAC1DtF,OAAQ,CAAC/B,MAAO+B,EAAQqF,YAAY,EAAMC,cAAc,GACxDJ,WAAY,CAACjH,MAAOiH,EAAYG,YAAY,EAAMC,cAAc,GAChEH,OAAQ,CAAClH,MAAOkH,EAAQE,YAAY,EAAMC,cAAc,GACxD7O,EAAG,CAACwH,MAAOxH,EAAG4O,YAAY,EAAMC,cAAc,GAC9C5O,EAAG,CAACuH,MAAOvH,EAAG2O,YAAY,EAAMC,cAAc,GAC9ClE,GAAI,CAACnD,MAAOmD,EAAIiE,YAAY,EAAMC,cAAc,GAChDjE,GAAI,CAACpD,MAAOoD,EAAIgE,YAAY,EAAMC,cAAc,GAChD/E,EAAG,CAACtC,MAAOsE,IAEf,CCdA,SAASgD,EAAcxB,GACrB,OAAQA,EAAMyB,UAAYzB,EAAM0B,MAClC,CAEA,SAASC,IACP,OAAOlP,KAAKmP,UACd,CAEA,SAASC,EAAe7B,EAAOpF,GAC7B,OAAY,MAALA,EAAY,CAAClI,EAAGsN,EAAMtN,EAAGC,EAAGqN,EAAMrN,GAAKiI,CAChD,CAEA,SAASkH,IACP,OAAOC,UAAUC,gBAAmB,iBAAkBvP,IACxD,CAEe,aACb,IAOIwP,EACAC,EACAC,EACAC,EAVAC,EAASb,EACTc,EAAYX,EACZT,EAAUW,EACVU,EAAYT,EACZU,EAAW,CAAC,EACZC,GAAYjE,EAAAA,EAAAA,GAAS,QAAS,OAAQ,OACtC4C,EAAS,EAKTsB,EAAiB,EAErB,SAASC,EAAKrC,GACZA,EACKvB,GAAG,iBAAkB6D,GACvBP,OAAOE,GACLxD,GAAG,kBAAmB8D,GACtB9D,GAAG,iBAAkB+D,EAAYnD,GACjCZ,GAAG,iCAAkCgE,GACrCrC,MAAM,eAAgB,QACtBA,MAAM,8BAA+B,gBAC5C,CAEA,SAASkC,EAAY5C,EAAOpF,GAC1B,IAAIwH,GAAgBC,EAAO9C,KAAK9M,KAAMuN,EAAOpF,GAA7C,CACA,IAAIoI,EAAUC,EAAYxQ,KAAM6P,EAAU/C,KAAK9M,KAAMuN,EAAOpF,GAAIoF,EAAOpF,EAAG,SACrEoI,KACLzC,EAAAA,EAAAA,IAAOP,EAAMG,MACVpB,GAAG,iBAAkBmE,EAAYrD,GACjCd,GAAG,eAAgBoE,EAAYtD,GAClCuD,EAAOpD,EAAMG,MACbJ,EAAcC,GACdmC,GAAc,EACdF,EAAajC,EAAMqD,QACnBnB,EAAalC,EAAMsD,QACnBN,EAAQ,QAAShD,GAXsC,CAYzD,CAEA,SAASkD,EAAWlD,GAElB,GADAQ,EAAQR,IACHmC,EAAa,CAChB,IAAI9E,EAAK2C,EAAMqD,QAAUpB,EAAY3E,EAAK0C,EAAMsD,QAAUpB,EAC1DC,EAAc9E,EAAKA,EAAKC,EAAKA,EAAKoF,CACpC,CACAF,EAASe,MAAM,OAAQvD,EACzB,CAEA,SAASmD,EAAWnD,IAClBO,EAAAA,EAAAA,IAAOP,EAAMG,MAAMpB,GAAG,8BAA+B,MACrD6B,EAAQZ,EAAMG,KAAMgC,GACpB3B,EAAQR,GACRwC,EAASe,MAAM,MAAOvD,EACxB,CAEA,SAAS6C,EAAa7C,EAAOpF,GAC3B,GAAKyH,EAAO9C,KAAK9M,KAAMuN,EAAOpF,GAA9B,CACA,IAEwBxD,EAAG4L,EAFvBQ,EAAUxD,EAAMyD,eAChB1P,EAAIuO,EAAU/C,KAAK9M,KAAMuN,EAAOpF,GAChChB,EAAI4J,EAAQ5O,OAEhB,IAAKwC,EAAI,EAAGA,EAAIwC,IAAKxC,GACf4L,EAAUC,EAAYxQ,KAAMsB,EAAGiM,EAAOpF,EAAG4I,EAAQpM,GAAG+J,WAAYqC,EAAQpM,OAC1E2I,EAAcC,GACdgD,EAAQ,QAAShD,EAAOwD,EAAQpM,IARI,CAW1C,CAEA,SAAS0L,EAAW9C,GAClB,IACwB5I,EAAG4L,EADvBQ,EAAUxD,EAAMyD,eAChB7J,EAAI4J,EAAQ5O,OAEhB,IAAKwC,EAAI,EAAGA,EAAIwC,IAAKxC,GACf4L,EAAUR,EAASgB,EAAQpM,GAAG+J,eAChCX,EAAQR,GACRgD,EAAQ,OAAQhD,EAAOwD,EAAQpM,IAGrC,CAEA,SAAS2L,EAAW/C,GAClB,IACwB5I,EAAG4L,EADvBQ,EAAUxD,EAAMyD,eAChB7J,EAAI4J,EAAQ5O,OAIhB,IAFIwN,GAAasB,aAAatB,GAC9BA,EAActB,YAAW,WAAasB,EAAc,IAAM,GAAG,KACxDhL,EAAI,EAAGA,EAAIwC,IAAKxC,GACf4L,EAAUR,EAASgB,EAAQpM,GAAG+J,eAChCpB,EAAcC,GACdgD,EAAQ,MAAOhD,EAAOwD,EAAQpM,IAGpC,CAEA,SAAS6L,EAAYzD,EAAM8C,EAAWtC,EAAOpF,EAAGuG,EAAYwC,GAC1D,IAC4CtG,EAAIC,EAC5CV,EAFA4B,EAAWiE,EAAU3O,OACrB8P,GAAIC,EAAAA,EAAAA,IAAQF,GAAS3D,EAAOsC,GAGhC,GAUa,OAVR1F,EAAIsE,EAAQ3B,KAAKC,EAAM,IAAIuB,EAAU,cAAe,CACrDE,YAAajB,EACb/D,OAAQ0G,EACRxB,aACAC,SACA1O,EAAGkR,EAAE,GACLjR,EAAGiR,EAAE,GACLvG,GAAI,EACJC,GAAI,EACJkB,aACE5D,IAKN,OAHAyC,EAAKT,EAAElK,EAAIkR,EAAE,IAAM,EACnBtG,EAAKV,EAAEjK,EAAIiR,EAAE,IAAM,EAEZ,SAASZ,EAAQnE,EAAMmB,EAAO2D,GACnC,IAAY/J,EAARkK,EAAKF,EACT,OAAQ/E,GACN,IAAK,QAAS2D,EAASrB,GAAc6B,EAASpJ,EAAIwH,IAAU,MAC5D,IAAK,aAAcoB,EAASrB,KAAeC,EAC3C,IAAK,OAAQwC,GAAIC,EAAAA,EAAAA,IAAQF,GAAS3D,EAAOsC,GAAY1I,EAAIwH,EAE3D5C,EAASe,KACPV,EACAW,EACA,IAAIuB,EAAUlC,EAAM,CAClBoC,YAAajB,EACbkB,QAAStE,EACTX,OAAQ0G,EACRxB,aACAC,OAAQxH,EACRlH,EAAGkR,EAAE,GAAKvG,EACV1K,EAAGiR,EAAE,GAAKtG,EACVD,GAAIuG,EAAE,GAAKE,EAAG,GACdxG,GAAIsG,EAAE,GAAKE,EAAG,GACdtF,aAEF5D,EAEJ,CACF,CA2BA,OAzBA+H,EAAKN,OAAS,SAAS7F,GACrB,OAAOhG,UAAU5B,QAAUyN,EAAsB,mBAAN7F,EAAmBA,EAAIuH,IAAWvH,GAAImG,GAAQN,CAC3F,EAEAM,EAAKL,UAAY,SAAS9F,GACxB,OAAOhG,UAAU5B,QAAU0N,EAAyB,mBAAN9F,EAAmBA,EAAIuH,EAASvH,GAAImG,GAAQL,CAC5F,EAEAK,EAAKzB,QAAU,SAAS1E,GACtB,OAAOhG,UAAU5B,QAAUsM,EAAuB,mBAAN1E,EAAmBA,EAAIuH,EAASvH,GAAImG,GAAQzB,CAC1F,EAEAyB,EAAKJ,UAAY,SAAS/F,GACxB,OAAOhG,UAAU5B,QAAU2N,EAAyB,mBAAN/F,EAAmBA,EAAIuH,IAAWvH,GAAImG,GAAQJ,CAC9F,EAEAI,EAAK5D,GAAK,WACR,IAAI7E,EAAQuI,EAAU1D,GAAGW,MAAM+C,EAAWjM,WAC1C,OAAO0D,IAAUuI,EAAYE,EAAOzI,CACtC,EAEAyI,EAAKqB,cAAgB,SAASxH,GAC5B,OAAOhG,UAAU5B,QAAU8N,GAAkBlG,GAAKA,GAAKA,EAAGmG,GAAQjN,KAAKsH,KAAK0F,EAC9E,EAEOC,CACT,CDzKA5B,EAAUlN,UAAUkL,GAAK,WACvB,IAAI7E,EAAQzH,KAAK+J,EAAEuC,GAAGW,MAAMjN,KAAK+J,EAAGhG,WACpC,OAAO0D,IAAUzH,KAAK+J,EAAI/J,KAAOyH,CACnC,C,uGE3BO,IAAI+J,EAAQ,+BAEnB,SACEC,IAAK,6BACLD,MAAOA,EACPE,MAAO,+BACPC,IAAK,uCACLC,MAAO,iCCLM,WAAStS,GACtB,IAAIuS,EAASvS,GAAQ,GAAIqF,EAAIkN,EAAOjF,QAAQ,KAE5C,OADIjI,GAAK,GAAqC,WAA/BkN,EAASvS,EAAKmK,MAAM,EAAG9E,MAAiBrF,EAAOA,EAAKmK,MAAM9E,EAAI,IACtEmN,EAAWjF,eAAegF,GAAU,CAACE,MAAOD,EAAWD,GAASG,MAAO1S,GAAQA,CACxF,CCHA,SAAS2S,EAAe3S,GACtB,OAAO,WACL,IAAIqO,EAAW3N,KAAKkS,cAChBC,EAAMnS,KAAKoS,aACf,OAAOD,IAAQX,GAAS7D,EAASC,gBAAgBwE,eAAiBZ,EAC5D7D,EAAS0E,cAAc/S,GACvBqO,EAAS2E,gBAAgBH,EAAK7S,EACtC,CACF,CAEA,SAASiT,EAAaC,GACpB,OAAO,WACL,OAAOxS,KAAKkS,cAAcI,gBAAgBE,EAAST,MAAOS,EAASR,MACrE,CACF,CAEe,WAAS1S,GACtB,IAAIkT,EAAWC,EAAUnT,GACzB,OAAQkT,EAASR,MACXO,EACAN,GAAgBO,EACxB,CCxBA,SAASE,IAAQ,CAEF,WAASC,GACtB,OAAmB,MAAZA,EAAmBD,EAAO,WAC/B,OAAO1S,KAAK4S,cAAcD,EAC5B,CACF,CCNA,SAASE,IACP,MAAO,EACT,CAEe,WAASF,GACtB,OAAmB,MAAZA,EAAmBE,EAAQ,WAChC,OAAO7S,KAAK8S,iBAAiBH,EAC/B,CACF,CCJA,SAASI,EAASjF,GAChB,OAAO,WACL,OCCU,OADgB7N,EDAb6N,EAAOb,MAAMjN,KAAM+D,YCCf,GAAKgE,MAAMiL,QAAQ/S,GAAKA,EAAI8H,MAAMkL,KAAKhT,GAD7C,IAAeA,CDC5B,CACF,CERe,WAAS0S,GACtB,OAAO,WACL,OAAO3S,KAAKkT,QAAQP,EACtB,CACF,CAEO,SAASQ,EAAaR,GAC3B,OAAO,SAAS7T,GACd,OAAOA,EAAKoU,QAAQP,EACtB,CACF,CCRA,IAAIS,EAAOrL,MAAM3G,UAAUgS,KAQ3B,SAASC,IACP,OAAOrT,KAAKsT,iBACd,CCVA,IAAI1D,EAAS7H,MAAM3G,UAAUwO,OAE7B,SAASjR,IACP,OAAOoJ,MAAMkL,KAAKjT,KAAKrB,SACzB,CCNe,WAASoC,GACtB,OAAO,IAAIgH,MAAMhH,EAAOoB,OAC1B,CCKO,SAASoR,EAAUhQ,EAAQiQ,GAChCxT,KAAKkS,cAAgB3O,EAAO2O,cAC5BlS,KAAKoS,aAAe7O,EAAO6O,aAC3BpS,KAAKyT,MAAQ,KACbzT,KAAK0T,QAAUnQ,EACfvD,KAAK2T,SAAWH,CAClB,CCTA,SAASI,EAAUrQ,EAAQsQ,EAAOC,EAAO/S,EAAQgT,EAAMnV,GASrD,IARA,IACIE,EADA6F,EAAI,EAEJqP,EAAcH,EAAM1R,OACpB8R,EAAarV,EAAKuD,OAKfwC,EAAIsP,IAActP,GACnB7F,EAAO+U,EAAMlP,KACf7F,EAAK6U,SAAW/U,EAAK+F,GACrB5D,EAAO4D,GAAK7F,GAEZgV,EAAMnP,GAAK,IAAI4O,EAAUhQ,EAAQ3E,EAAK+F,IAK1C,KAAOA,EAAIqP,IAAerP,GACpB7F,EAAO+U,EAAMlP,MACfoP,EAAKpP,GAAK7F,EAGhB,CAEA,SAASoV,EAAQ3Q,EAAQsQ,EAAOC,EAAO/S,EAAQgT,EAAMnV,EAAMuV,GACzD,IAAIxP,EACA7F,EAKAsV,EAJAC,EAAiB,IAAIC,IACrBN,EAAcH,EAAM1R,OACpB8R,EAAarV,EAAKuD,OAClBoS,EAAY,IAAIxM,MAAMiM,GAK1B,IAAKrP,EAAI,EAAGA,EAAIqP,IAAerP,GACzB7F,EAAO+U,EAAMlP,MACf4P,EAAU5P,GAAKyP,EAAWD,EAAIrH,KAAKhO,EAAMA,EAAK6U,SAAUhP,EAAGkP,GAAS,GAChEQ,EAAeG,IAAIJ,GACrBL,EAAKpP,GAAK7F,EAEVuV,EAAehI,IAAI+H,EAAUtV,IAQnC,IAAK6F,EAAI,EAAGA,EAAIsP,IAActP,EAC5ByP,EAAWD,EAAIrH,KAAKvJ,EAAQ3E,EAAK+F,GAAIA,EAAG/F,GAAQ,IAC5CE,EAAOuV,EAAelI,IAAIiI,KAC5BrT,EAAO4D,GAAK7F,EACZA,EAAK6U,SAAW/U,EAAK+F,GACrB0P,EAAeI,OAAOL,IAEtBN,EAAMnP,GAAK,IAAI4O,EAAUhQ,EAAQ3E,EAAK+F,IAK1C,IAAKA,EAAI,EAAGA,EAAIqP,IAAerP,GACxB7F,EAAO+U,EAAMlP,KAAQ0P,EAAelI,IAAIoI,EAAU5P,MAAQ7F,IAC7DiV,EAAKpP,GAAK7F,EAGhB,CAEA,SAAS0U,EAAM1U,GACb,OAAOA,EAAK6U,QACd,CA+CA,SAASe,EAAU9V,GACjB,MAAuB,iBAATA,GAAqB,WAAYA,EAC3CA,EACAmJ,MAAMkL,KAAKrU,EACjB,CC1GA,SAAS+V,EAAU5L,EAAGC,GACpB,OAAOD,EAAIC,GAAK,EAAID,EAAIC,EAAI,EAAID,GAAKC,EAAI,EAAI4L,GAC/C,CCrBA,SAASC,EAAWvV,GAClB,OAAO,WACLU,KAAK8U,gBAAgBxV,EACvB,CACF,CAEA,SAASyV,EAAavC,GACpB,OAAO,WACLxS,KAAKgV,kBAAkBxC,EAAST,MAAOS,EAASR,MAClD,CACF,CAEA,SAASiD,EAAa3V,EAAMmI,GAC1B,OAAO,WACLzH,KAAKkV,aAAa5V,EAAMmI,EAC1B,CACF,CAEA,SAAS0N,EAAe3C,EAAU/K,GAChC,OAAO,WACLzH,KAAKoV,eAAe5C,EAAST,MAAOS,EAASR,MAAOvK,EACtD,CACF,CAEA,SAAS4N,EAAa/V,EAAMmI,GAC1B,OAAO,WACL,IAAI3G,EAAI2G,EAAMwF,MAAMjN,KAAM+D,WACjB,MAALjD,EAAWd,KAAK8U,gBAAgBxV,GAC/BU,KAAKkV,aAAa5V,EAAMwB,EAC/B,CACF,CAEA,SAASwU,EAAe9C,EAAU/K,GAChC,OAAO,WACL,IAAI3G,EAAI2G,EAAMwF,MAAMjN,KAAM+D,WACjB,MAALjD,EAAWd,KAAKgV,kBAAkBxC,EAAST,MAAOS,EAASR,OAC1DhS,KAAKoV,eAAe5C,EAAST,MAAOS,EAASR,MAAOlR,EAC3D,CACF,CCxCe,WAAShC,GACtB,OAAQA,EAAKoT,eAAiBpT,EAAKoT,cAAcqD,aACzCzW,EAAK6O,UAAY7O,GAClBA,EAAKyW,WACd,CCFA,SAASC,EAAYlW,GACnB,OAAO,WACLU,KAAKiO,MAAMwH,eAAenW,EAC5B,CACF,CAEA,SAASoW,EAAcpW,EAAMmI,EAAOkO,GAClC,OAAO,WACL3V,KAAKiO,MAAM2H,YAAYtW,EAAMmI,EAAOkO,EACtC,CACF,CAEA,SAASE,EAAcvW,EAAMmI,EAAOkO,GAClC,OAAO,WACL,IAAI7U,EAAI2G,EAAMwF,MAAMjN,KAAM+D,WACjB,MAALjD,EAAWd,KAAKiO,MAAMwH,eAAenW,GACpCU,KAAKiO,MAAM2H,YAAYtW,EAAMwB,EAAG6U,EACvC,CACF,CAWO,SAASG,EAAWhX,EAAMQ,GAC/B,OAAOR,EAAKmP,MAAM8H,iBAAiBzW,IAC5BiW,EAAYzW,GAAMkX,iBAAiBlX,EAAM,MAAMiX,iBAAiBzW,EACzE,CClCA,SAAS2W,EAAe3W,GACtB,OAAO,kBACEU,KAAKV,EACd,CACF,CAEA,SAAS4W,EAAiB5W,EAAMmI,GAC9B,OAAO,WACLzH,KAAKV,GAAQmI,CACf,CACF,CAEA,SAAS0O,EAAiB7W,EAAMmI,GAC9B,OAAO,WACL,IAAI3G,EAAI2G,EAAMwF,MAAMjN,KAAM+D,WACjB,MAALjD,SAAkBd,KAAKV,GACtBU,KAAKV,GAAQwB,CACpB,CACF,CClBA,SAASsV,EAAWC,GAClB,OAAOA,EAAO3J,OAAOC,MAAM,QAC7B,CAEA,SAAS2J,EAAUxX,GACjB,OAAOA,EAAKwX,WAAa,IAAIC,EAAUzX,EACzC,CAEA,SAASyX,EAAUzX,GACjBkB,KAAKwW,MAAQ1X,EACbkB,KAAKyW,OAASL,EAAWtX,EAAK4X,aAAa,UAAY,GACzD,CAsBA,SAASC,EAAW7X,EAAM8X,GAExB,IADA,IAAIC,EAAOP,EAAUxX,GAAO6F,GAAK,EAAGwC,EAAIyP,EAAMzU,SACrCwC,EAAIwC,GAAG0P,EAAKC,IAAIF,EAAMjS,GACjC,CAEA,SAASoS,EAAcjY,EAAM8X,GAE3B,IADA,IAAIC,EAAOP,EAAUxX,GAAO6F,GAAK,EAAGwC,EAAIyP,EAAMzU,SACrCwC,EAAIwC,GAAG0P,EAAKG,OAAOJ,EAAMjS,GACpC,CAEA,SAASsS,EAAYL,GACnB,OAAO,WACLD,EAAW3W,KAAM4W,EACnB,CACF,CAEA,SAASM,EAAaN,GACpB,OAAO,WACLG,EAAc/W,KAAM4W,EACtB,CACF,CAEA,SAASO,EAAgBP,EAAOnP,GAC9B,OAAO,YACJA,EAAMwF,MAAMjN,KAAM+D,WAAa4S,EAAaI,GAAe/W,KAAM4W,EACpE,CACF,CC3DA,SAASQ,IACPpX,KAAKqX,YAAc,EACrB,CAEA,SAASC,EAAa7P,GACpB,OAAO,WACLzH,KAAKqX,YAAc5P,CACrB,CACF,CAEA,SAAS8P,EAAa9P,GACpB,OAAO,WACL,IAAI3G,EAAI2G,EAAMwF,MAAMjN,KAAM+D,WAC1B/D,KAAKqX,YAAmB,MAALvW,EAAY,GAAKA,CACtC,CACF,CCfA,SAAS0W,IACPxX,KAAKyX,UAAY,EACnB,CAEA,SAASC,EAAajQ,GACpB,OAAO,WACLzH,KAAKyX,UAAYhQ,CACnB,CACF,CAEA,SAASkQ,GAAalQ,GACpB,OAAO,WACL,IAAI3G,EAAI2G,EAAMwF,MAAMjN,KAAM+D,WAC1B/D,KAAKyX,UAAiB,MAAL3W,EAAY,GAAKA,CACpC,CACF,CCfA,SAAS8W,KACH5X,KAAK6X,aAAa7X,KAAKmP,WAAW2I,YAAY9X,KACpD,CCFA,SAAS+X,KACH/X,KAAKgY,iBAAiBhY,KAAKmP,WAAW8I,aAAajY,KAAMA,KAAKmP,WAAW5M,WAC/E,CCCA,SAAS2V,KACP,OAAO,IACT,CCLA,SAASlB,KACP,IAAIzT,EAASvD,KAAKmP,WACd5L,GAAQA,EAAO4U,YAAYnY,KACjC,CCHA,SAASoY,KACP,IAAIC,EAAQrY,KAAKsY,WAAU,GAAQ/U,EAASvD,KAAKmP,WACjD,OAAO5L,EAASA,EAAO0U,aAAaI,EAAOrY,KAAK6X,aAAeQ,CACjE,CAEA,SAASE,KACP,IAAIF,EAAQrY,KAAKsY,WAAU,GAAO/U,EAASvD,KAAKmP,WAChD,OAAO5L,EAASA,EAAO0U,aAAaI,EAAOrY,KAAK6X,aAAeQ,CACjE,CCMA,SAASG,GAASjM,GAChB,OAAO,WACL,IAAID,EAAKtM,KAAKyY,KACd,GAAKnM,EAAL,CACA,IAAK,IAAkCoM,EAA9B7M,EAAI,EAAGlH,GAAK,EAAGuF,EAAIoC,EAAGnK,OAAW0J,EAAI3B,IAAK2B,EAC7C6M,EAAIpM,EAAGT,GAAMU,EAASH,MAAQsM,EAAEtM,OAASG,EAASH,MAASsM,EAAEpZ,OAASiN,EAASjN,KAGjFgN,IAAK3H,GAAK+T,EAFV1Y,KAAK2Y,oBAAoBD,EAAEtM,KAAMsM,EAAEE,SAAUF,EAAExZ,WAK7CyF,EAAG2H,EAAGnK,OAASwC,SACT3E,KAAKyY,IATF,CAUjB,CACF,CAEA,SAASI,GAAMtM,EAAU9E,EAAOvI,GAC9B,OAAO,WACL,IAAoBwZ,EAAhBpM,EAAKtM,KAAKyY,KAASG,EAhC3B,SAAyBA,GACvB,OAAO,SAASrL,GACdqL,EAAS9L,KAAK9M,KAAMuN,EAAOvN,KAAK2T,SAClC,CACF,CA4BsCmF,CAAgBrR,GAClD,GAAI6E,EAAI,IAAK,IAAIT,EAAI,EAAG3B,EAAIoC,EAAGnK,OAAQ0J,EAAI3B,IAAK2B,EAC9C,IAAK6M,EAAIpM,EAAGT,IAAIO,OAASG,EAASH,MAAQsM,EAAEpZ,OAASiN,EAASjN,KAI5D,OAHAU,KAAK2Y,oBAAoBD,EAAEtM,KAAMsM,EAAEE,SAAUF,EAAExZ,SAC/Cc,KAAK+Y,iBAAiBL,EAAEtM,KAAMsM,EAAEE,SAAWA,EAAUF,EAAExZ,QAAUA,QACjEwZ,EAAEjR,MAAQA,GAIdzH,KAAK+Y,iBAAiBxM,EAASH,KAAMwM,EAAU1Z,GAC/CwZ,EAAI,CAACtM,KAAMG,EAASH,KAAM9M,KAAMiN,EAASjN,KAAMmI,MAAOA,EAAOmR,SAAUA,EAAU1Z,QAASA,GACrFoN,EACAA,EAAGtE,KAAK0Q,GADJ1Y,KAAKyY,KAAO,CAACC,EAExB,CACF,CC5CA,SAASM,GAAcla,EAAMsN,EAAM6M,GACjC,IAAIC,EAAS3D,EAAYzW,GACrByO,EAAQ2L,EAAOC,YAEE,mBAAV5L,EACTA,EAAQ,IAAIA,EAAMnB,EAAM6M,IAExB1L,EAAQ2L,EAAOvL,SAASyL,YAAY,SAChCH,GAAQ1L,EAAM8L,UAAUjN,EAAM6M,EAAOK,QAASL,EAAOM,YAAahM,EAAMiM,OAASP,EAAOO,QACvFjM,EAAM8L,UAAUjN,GAAM,GAAO,IAGpCtN,EAAKka,cAAczL,EACrB,CAEA,SAASkM,GAAiBrN,EAAM6M,GAC9B,OAAO,WACL,OAAOD,GAAchZ,KAAMoM,EAAM6M,EACnC,CACF,CAEA,SAASS,GAAiBtN,EAAM6M,GAC9B,OAAO,WACL,OAAOD,GAAchZ,KAAMoM,EAAM6M,EAAOhM,MAAMjN,KAAM+D,WACtD,CACF,ChBZAwP,EAAUnS,UAAY,CACpBtB,YAAayT,EACbuE,YAAa,SAASvS,GAAS,OAAOvF,KAAK0T,QAAQuE,aAAa1S,EAAOvF,KAAKyT,MAAQ,EACpFwE,aAAc,SAAS1S,EAAOa,GAAQ,OAAOpG,KAAK0T,QAAQuE,aAAa1S,EAAOa,EAAO,EACrFwM,cAAe,SAASD,GAAY,OAAO3S,KAAK0T,QAAQd,cAAcD,EAAW,EACjFG,iBAAkB,SAASH,GAAY,OAAO3S,KAAK0T,QAAQZ,iBAAiBH,EAAW,GOPzF4D,EAAUnV,UAAY,CACpB0V,IAAK,SAASxX,GACJU,KAAKyW,OAAO7J,QAAQtN,GACpB,IACNU,KAAKyW,OAAOzO,KAAK1I,GACjBU,KAAKwW,MAAMtB,aAAa,QAASlV,KAAKyW,OAAOjS,KAAK,MAEtD,EACAwS,OAAQ,SAAS1X,GACf,IAAIqF,EAAI3E,KAAKyW,OAAO7J,QAAQtN,GACxBqF,GAAK,IACP3E,KAAKyW,OAAOrN,OAAOzE,EAAG,GACtB3E,KAAKwW,MAAMtB,aAAa,QAASlV,KAAKyW,OAAOjS,KAAK,MAEtD,EACAmV,SAAU,SAASra,GACjB,OAAOU,KAAKyW,OAAO7J,QAAQtN,IAAS,CACtC,GUKK,IAAI0C,GAAO,CAAC,MAEZ,SAAS4X,GAAUC,EAAQC,GAChC9Z,KAAK+Z,QAAUF,EACf7Z,KAAKga,SAAWF,CAClB,CAEA,SAASjM,KACP,OAAO,IAAI+L,GAAU,CAAC,CAACjM,SAASC,kBAAmB5L,GACrD,CAMA4X,GAAUxY,UAAYyM,GAAUzM,UAAY,CAC1CtB,YAAa8Z,GACb9L,OCjDa,SAASA,GACA,mBAAXA,IAAuBA,EAAS6E,EAAS7E,IAEpD,IAAK,IAAI+L,EAAS7Z,KAAK+Z,QAAS7P,EAAI2P,EAAO1X,OAAQ8X,EAAY,IAAIlS,MAAMmC,GAAI2B,EAAI,EAAGA,EAAI3B,IAAK2B,EAC3F,IAAK,IAAiF/M,EAAMob,EAAnFrG,EAAQgG,EAAOhO,GAAI1E,EAAI0M,EAAM1R,OAAQgY,EAAWF,EAAUpO,GAAK,IAAI9D,MAAMZ,GAAmBxC,EAAI,EAAGA,EAAIwC,IAAKxC,GAC9G7F,EAAO+U,EAAMlP,MAAQuV,EAAUpM,EAAOhB,KAAKhO,EAAMA,EAAK6U,SAAUhP,EAAGkP,MAClE,aAAc/U,IAAMob,EAAQvG,SAAW7U,EAAK6U,UAChDwG,EAASxV,GAAKuV,GAKpB,OAAO,IAAIN,GAAUK,EAAWja,KAAKga,SACvC,EDqCEI,UvB3Ca,SAAStM,GACYA,EAAZ,mBAAXA,EAAgCiF,EAASjF,GACtCuM,EAAYvM,GAE1B,IAAK,IAAI+L,EAAS7Z,KAAK+Z,QAAS7P,EAAI2P,EAAO1X,OAAQ8X,EAAY,GAAIH,EAAU,GAAIjO,EAAI,EAAGA,EAAI3B,IAAK2B,EAC/F,IAAK,IAAyC/M,EAArC+U,EAAQgG,EAAOhO,GAAI1E,EAAI0M,EAAM1R,OAAcwC,EAAI,EAAGA,EAAIwC,IAAKxC,GAC9D7F,EAAO+U,EAAMlP,MACfsV,EAAUjS,KAAK8F,EAAOhB,KAAKhO,EAAMA,EAAK6U,SAAUhP,EAAGkP,IACnDiG,EAAQ9R,KAAKlJ,IAKnB,OAAO,IAAI8a,GAAUK,EAAWH,EAClC,EuB8BEQ,YpBxCa,SAASC,GACtB,OAAOva,KAAK8N,OAAgB,MAATyM,EAAgBlH,EAXrC,SAAmBkH,GACjB,OAAO,WACL,OAAOnH,EAAKtG,KAAK9M,KAAKrB,SAAU4b,EAClC,CACF,CAQQC,CAA2B,mBAAVD,EAAuBA,EAAQpH,EAAaoH,IACrE,EoBsCEE,enBzCa,SAASF,GACtB,OAAOva,KAAKoa,UAAmB,MAATG,EAAgB5b,EAPxC,SAAwB4b,GACtB,OAAO,WACL,OAAO3K,EAAO9C,KAAK9M,KAAKrB,SAAU4b,EACpC,CACF,CAIQG,CAAgC,mBAAVH,EAAuBA,EAAQpH,EAAaoH,IAC1E,EmBuCE3K,OErDa,SAAS2K,GACD,mBAAVA,IAAsBA,EAAQI,EAAQJ,IAEjD,IAAK,IAAIV,EAAS7Z,KAAK+Z,QAAS7P,EAAI2P,EAAO1X,OAAQ8X,EAAY,IAAIlS,MAAMmC,GAAI2B,EAAI,EAAGA,EAAI3B,IAAK2B,EAC3F,IAAK,IAAuE/M,EAAnE+U,EAAQgG,EAAOhO,GAAI1E,EAAI0M,EAAM1R,OAAQgY,EAAWF,EAAUpO,GAAK,GAAUlH,EAAI,EAAGA,EAAIwC,IAAKxC,GAC3F7F,EAAO+U,EAAMlP,KAAO4V,EAAMzN,KAAKhO,EAAMA,EAAK6U,SAAUhP,EAAGkP,IAC1DsG,EAASnS,KAAKlJ,GAKpB,OAAO,IAAI8a,GAAUK,EAAWja,KAAKga,SACvC,EF0CEpb,KhBqBa,SAAS6I,EAAO0M,GAC7B,IAAKpQ,UAAU5B,OAAQ,OAAO4F,MAAMkL,KAAKjT,KAAMwT,GAE/C,ImBjFsBvT,EnBiFlB2a,EAAOzG,EAAMD,EAAUN,EACvBkG,EAAU9Z,KAAKga,SACfH,EAAS7Z,KAAK+Z,QAEG,mBAAVtS,ImBrFWxH,EnBqF4BwH,EAAjBA,EmBpF1B,WACL,OAAOxH,CACT,GnBoFA,IAAK,IAAIiK,EAAI2P,EAAO1X,OAAQpB,EAAS,IAAIgH,MAAMmC,GAAI4J,EAAQ,IAAI/L,MAAMmC,GAAI6J,EAAO,IAAIhM,MAAMmC,GAAI2B,EAAI,EAAGA,EAAI3B,IAAK2B,EAAG,CAC/G,IAAItI,EAASuW,EAAQjO,GACjBgI,EAAQgG,EAAOhO,GACfmI,EAAcH,EAAM1R,OACpBvD,EAAO8V,EAAUjN,EAAMqF,KAAKvJ,EAAQA,GAAUA,EAAOoQ,SAAU9H,EAAGiO,IAClE7F,EAAarV,EAAKuD,OAClB0Y,EAAa/G,EAAMjI,GAAK,IAAI9D,MAAMkM,GAClC6G,EAAc/Z,EAAO8K,GAAK,IAAI9D,MAAMkM,GAGxC2G,EAAKrX,EAAQsQ,EAAOgH,EAAYC,EAFhB/G,EAAKlI,GAAK,IAAI9D,MAAMiM,GAEoBpV,EAAMuV,GAK9D,IAAK,IAAoB4G,EAAU3U,EAA1BjC,EAAK,EAAGC,EAAK,EAAmBD,EAAK8P,IAAc9P,EAC1D,GAAI4W,EAAWF,EAAW1W,GAAK,CAE7B,IADIA,GAAMC,IAAIA,EAAKD,EAAK,KACfiC,EAAO0U,EAAY1W,OAAUA,EAAK6P,IAC3C8G,EAAStH,MAAQrN,GAAQ,IAC3B,CAEJ,CAKA,OAHArF,EAAS,IAAI6Y,GAAU7Y,EAAQ+Y,IACxBkB,OAASlH,EAChB/S,EAAOka,MAAQlH,EACRhT,CACT,EgBzDE+S,MjBvDa,WACb,OAAO,IAAI8F,GAAU5Z,KAAKgb,QAAUhb,KAAK+Z,QAAQpW,IAAIuX,GAASlb,KAAKga,SACrE,EiBsDEjG,KIxDa,WACb,OAAO,IAAI6F,GAAU5Z,KAAKib,OAASjb,KAAK+Z,QAAQpW,IAAIuX,GAASlb,KAAKga,SACpE,EJuDExV,KK5Da,SAAS2W,EAASC,EAAUC,GACzC,IAAIvH,EAAQ9T,KAAK8T,QAAS/S,EAASf,KAAM+T,EAAO/T,KAAK+T,OAYrD,MAXuB,mBAAZoH,GACTrH,EAAQqH,EAAQrH,MACLA,EAAQA,EAAMjG,aAEzBiG,EAAQA,EAAMwH,OAAOH,EAAU,IAEjB,MAAZC,IACFra,EAASqa,EAASra,MACNA,EAASA,EAAO8M,aAEhB,MAAVwN,EAAgBtH,EAAKiD,SAAeqE,EAAOtH,GACxCD,GAAS/S,EAAS+S,EAAMyH,MAAMxa,GAAQya,QAAUza,CACzD,EL+CEwa,MM3Da,SAASE,GAGtB,IAFA,IAAI5N,EAAY4N,EAAQ5N,UAAY4N,EAAQ5N,YAAc4N,EAEjDC,EAAU1b,KAAK+Z,QAAS4B,EAAU9N,EAAUkM,QAAS6B,EAAKF,EAAQvZ,OAAQ0Z,EAAKF,EAAQxZ,OAAQ+H,EAAIjH,KAAKC,IAAI0Y,EAAIC,GAAKC,EAAS,IAAI/T,MAAM6T,GAAK/P,EAAI,EAAGA,EAAI3B,IAAK2B,EACpK,IAAK,IAAmG/M,EAA/Fid,EAASL,EAAQ7P,GAAImQ,EAASL,EAAQ9P,GAAI1E,EAAI4U,EAAO5Z,OAAQoZ,EAAQO,EAAOjQ,GAAK,IAAI9D,MAAMZ,GAAUxC,EAAI,EAAGA,EAAIwC,IAAKxC,GACxH7F,EAAOid,EAAOpX,IAAMqX,EAAOrX,MAC7B4W,EAAM5W,GAAK7F,GAKjB,KAAO+M,EAAI+P,IAAM/P,EACfiQ,EAAOjQ,GAAK6P,EAAQ7P,GAGtB,OAAO,IAAI+N,GAAUkC,EAAQ9b,KAAKga,SACpC,EN4CEnM,UAhBF,WACE,OAAO7N,IACT,EAeEwb,MO/Da,WAEb,IAAK,IAAI3B,EAAS7Z,KAAK+Z,QAASlO,GAAK,EAAG3B,EAAI2P,EAAO1X,SAAU0J,EAAI3B,GAC/D,IAAK,IAA8DpL,EAA1D+U,EAAQgG,EAAOhO,GAAIlH,EAAIkP,EAAM1R,OAAS,EAAGiE,EAAOyN,EAAMlP,KAAYA,GAAK,IAC1E7F,EAAO+U,EAAMlP,MACXyB,GAA6C,EAArCtH,EAAKmd,wBAAwB7V,IAAWA,EAAK+I,WAAW8I,aAAanZ,EAAMsH,GACvFA,EAAOtH,GAKb,OAAOkB,IACT,EPoDEyI,Kf9Da,SAASC,GAGtB,SAASwT,EAAYnT,EAAGC,GACtB,OAAOD,GAAKC,EAAIN,EAAQK,EAAE4K,SAAU3K,EAAE2K,WAAa5K,GAAKC,CAC1D,CAJKN,IAASA,EAAUiM,GAMxB,IAAK,IAAIkF,EAAS7Z,KAAK+Z,QAAS7P,EAAI2P,EAAO1X,OAAQga,EAAa,IAAIpU,MAAMmC,GAAI2B,EAAI,EAAGA,EAAI3B,IAAK2B,EAAG,CAC/F,IAAK,IAAmF/M,EAA/E+U,EAAQgG,EAAOhO,GAAI1E,EAAI0M,EAAM1R,OAAQia,EAAYD,EAAWtQ,GAAK,IAAI9D,MAAMZ,GAAUxC,EAAI,EAAGA,EAAIwC,IAAKxC,GACxG7F,EAAO+U,EAAMlP,MACfyX,EAAUzX,GAAK7F,GAGnBsd,EAAU3T,KAAKyT,EACjB,CAEA,OAAO,IAAItC,GAAUuC,EAAYnc,KAAKga,UAAUwB,OAClD,Ee8CE1O,KQjEa,WACb,IAAIxE,EAAWvE,UAAU,GAGzB,OAFAA,UAAU,GAAK/D,KACfsI,EAAS2E,MAAM,KAAMlJ,WACd/D,IACT,ER6DEwB,MSlEa,WACb,OAAOuG,MAAMkL,KAAKjT,KACpB,ETiEElB,KUnEa,WAEb,IAAK,IAAI+a,EAAS7Z,KAAK+Z,QAASlO,EAAI,EAAG3B,EAAI2P,EAAO1X,OAAQ0J,EAAI3B,IAAK2B,EACjE,IAAK,IAAIgI,EAAQgG,EAAOhO,GAAIlH,EAAI,EAAGwC,EAAI0M,EAAM1R,OAAQwC,EAAIwC,IAAKxC,EAAG,CAC/D,IAAI7F,EAAO+U,EAAMlP,GACjB,GAAI7F,EAAM,OAAOA,CACnB,CAGF,OAAO,IACT,EV0DEC,KWpEa,WACb,IAAIA,EAAO,EACX,IAAK,MAAMD,KAAQkB,OAAQjB,EAC3B,OAAOA,CACT,EXiEE8T,MYrEa,WACb,OAAQ7S,KAAKlB,MACf,EZoEEyC,KatEa,SAAS+G,GAEtB,IAAK,IAAIuR,EAAS7Z,KAAK+Z,QAASlO,EAAI,EAAG3B,EAAI2P,EAAO1X,OAAQ0J,EAAI3B,IAAK2B,EACjE,IAAK,IAAgD/M,EAA5C+U,EAAQgG,EAAOhO,GAAIlH,EAAI,EAAGwC,EAAI0M,EAAM1R,OAAcwC,EAAIwC,IAAKxC,GAC9D7F,EAAO+U,EAAMlP,KAAI2D,EAASwE,KAAKhO,EAAMA,EAAK6U,SAAUhP,EAAGkP,GAI/D,OAAO7T,IACT,Eb8DEqc,Kd7Ba,SAAS/c,EAAMmI,GAC5B,IAAI+K,EAAWC,EAAUnT,GAEzB,GAAIyE,UAAU5B,OAAS,EAAG,CACxB,IAAIrD,EAAOkB,KAAKlB,OAChB,OAAO0T,EAASR,MACVlT,EAAKwd,eAAe9J,EAAST,MAAOS,EAASR,OAC7ClT,EAAK4X,aAAalE,EAC1B,CAEA,OAAOxS,KAAKuB,MAAe,MAATkG,EACX+K,EAASR,MAAQ+C,EAAeF,EAAgC,mBAAVpN,EACtD+K,EAASR,MAAQsD,EAAiBD,EAClC7C,EAASR,MAAQmD,EAAiBF,GAAgBzC,EAAU/K,GACrE,EcgBEwG,MZlDa,SAAS3O,EAAMmI,EAAOkO,GACnC,OAAO5R,UAAU5B,OAAS,EACpBnC,KAAKuB,MAAe,MAATkG,EACL+N,EAA+B,mBAAV/N,EACrBoO,EACAH,GAAepW,EAAMmI,EAAmB,MAAZkO,EAAmB,GAAKA,IAC1DG,EAAW9V,KAAKlB,OAAQQ,EAChC,EY4CEid,SXrDa,SAASjd,EAAMmI,GAC5B,OAAO1D,UAAU5B,OAAS,EACpBnC,KAAKuB,MAAe,MAATkG,EACPwO,EAAkC,mBAAVxO,EACxB0O,EACAD,GAAkB5W,EAAMmI,IAC5BzH,KAAKlB,OAAOQ,EACpB,EW+CEkd,QVba,SAASld,EAAMmI,GAC5B,IAAImP,EAAQR,EAAW9W,EAAO,IAE9B,GAAIyE,UAAU5B,OAAS,EAAG,CAExB,IADA,IAAI0U,EAAOP,EAAUtW,KAAKlB,QAAS6F,GAAK,EAAGwC,EAAIyP,EAAMzU,SAC5CwC,EAAIwC,OAAQ0P,EAAK8C,SAAS/C,EAAMjS,IAAK,OAAO,EACrD,OAAO,CACT,CAEA,OAAO3E,KAAKuB,MAAuB,mBAAVkG,EACnB0P,EAAkB1P,EAClBwP,EACAC,GAAcN,EAAOnP,GAC7B,EUCEgV,KT1Da,SAAShV,GACtB,OAAO1D,UAAU5B,OACXnC,KAAKuB,KAAc,MAATkG,EACN2P,GAA+B,mBAAV3P,EACrB8P,EACAD,GAAc7P,IAClBzH,KAAKlB,OAAOuY,WACpB,ESoDEqF,KR3Da,SAASjV,GACtB,OAAO1D,UAAU5B,OACXnC,KAAKuB,KAAc,MAATkG,EACN+P,GAA+B,mBAAV/P,EACrBkQ,GACAD,GAAcjQ,IAClBzH,KAAKlB,OAAO2Y,SACpB,EQqDEG,MPzEa,WACb,OAAO5X,KAAKuB,KAAKqW,GACnB,EOwEEG,MN1Ea,WACb,OAAO/X,KAAKuB,KAAKwW,GACnB,EMyEEuD,Oc7Ea,SAAShc,GACtB,IAAI+K,EAAyB,mBAAT/K,EAAsBA,EAAOqd,EAAQrd,GACzD,OAAOU,KAAK8N,QAAO,WACjB,OAAO9N,KAAK8X,YAAYzN,EAAO4C,MAAMjN,KAAM+D,WAC7C,GACF,EdyEE6Y,OLzEa,SAAStd,EAAMud,GAC5B,IAAIxS,EAAyB,mBAAT/K,EAAsBA,EAAOqd,EAAQrd,GACrDwO,EAAmB,MAAV+O,EAAiB3E,GAAiC,mBAAX2E,EAAwBA,EAASlK,EAASkK,GAC9F,OAAO7c,KAAK8N,QAAO,WACjB,OAAO9N,KAAKiY,aAAa5N,EAAO4C,MAAMjN,KAAM+D,WAAY+J,EAAOb,MAAMjN,KAAM+D,YAAc,KAC3F,GACF,EKoEEiT,OJ5Ea,WACb,OAAOhX,KAAKuB,KAAKyV,GACnB,EI2EEqB,MHxEa,SAASyE,GACtB,OAAO9c,KAAK8N,OAAOgP,EAAOvE,GAAsBH,GAClD,EGuEE5E,MenFa,SAAS/L,GACtB,OAAO1D,UAAU5B,OACXnC,KAAKuc,SAAS,WAAY9U,GAC1BzH,KAAKlB,OAAO6U,QACpB,EfgFErH,GFpCa,SAASC,EAAU9E,EAAOvI,GACvC,IAA+CyF,EAAyByF,EAApE2S,EA3CN,SAAwBA,GACtB,OAAOA,EAAUrQ,OAAOC,MAAM,SAAShJ,KAAI,SAASyG,GAClD,IAAI9K,EAAO,GAAIqF,EAAIyF,EAAEwC,QAAQ,KAE7B,OADIjI,GAAK,IAAGrF,EAAO8K,EAAEX,MAAM9E,EAAI,GAAIyF,EAAIA,EAAEX,MAAM,EAAG9E,IAC3C,CAACyH,KAAMhC,EAAG9K,KAAMA,EACzB,GACF,CAqCkB0d,CAAezQ,EAAW,IAAQpF,EAAI4V,EAAU5a,OAEhE,KAAI4B,UAAU5B,OAAS,GAAvB,CAaA,IADAmK,EAAK7E,EAAQoR,GAAQL,GAChB7T,EAAI,EAAGA,EAAIwC,IAAKxC,EAAG3E,KAAKuB,KAAK+K,EAAGyQ,EAAUpY,GAAI8C,EAAOvI,IAC1D,OAAOc,IAJP,CATE,IAAIsM,EAAKtM,KAAKlB,OAAO2Z,KACrB,GAAInM,EAAI,IAAK,IAA0BoM,EAAtB7M,EAAI,EAAG3B,EAAIoC,EAAGnK,OAAW0J,EAAI3B,IAAK2B,EACjD,IAAKlH,EAAI,EAAG+T,EAAIpM,EAAGT,GAAIlH,EAAIwC,IAAKxC,EAC9B,IAAKyF,EAAI2S,EAAUpY,IAAIyH,OAASsM,EAAEtM,MAAQhC,EAAE9K,OAASoZ,EAAEpZ,KACrD,OAAOoZ,EAAEjR,KAUnB,EEmBEsE,SDxDa,SAASK,EAAM6M,GAC5B,OAAOjZ,KAAKuB,MAAwB,mBAAX0X,EACnBS,GACAD,IAAkBrN,EAAM6M,GAChC,ECqDE,CAACgE,OAAOC,UgBtFK,YACb,IAAK,IAAIrD,EAAS7Z,KAAK+Z,QAASlO,EAAI,EAAG3B,EAAI2P,EAAO1X,OAAQ0J,EAAI3B,IAAK2B,EACjE,IAAK,IAAgD/M,EAA5C+U,EAAQgG,EAAOhO,GAAIlH,EAAI,EAAGwC,EAAI0M,EAAM1R,OAAcwC,EAAIwC,IAAKxC,GAC9D7F,EAAO+U,EAAMlP,YAAU7F,EAGjC,GhBmFA,YiBvFe,YAAS6T,GACtB,MAA2B,iBAAbA,EACR,IAAIiH,GAAU,CAAC,CAACjM,SAASiF,cAAcD,KAAa,CAAChF,SAASC,kBAC9D,IAAIgM,GAAU,CAAC,CAACjH,IAAY3Q,GACpC,CCNA,IAAImb,GAAS,EAMb,SAASC,KACPpd,KAAK+J,EAAI,OAASoT,IAAQE,SAAS,GACrC,CCNe,YAAS9P,EAAOzO,GAG7B,GAFAyO,ECHa,SAASA,GACtB,IAAIiB,EACJ,KAAOA,EAAcjB,EAAMiB,aAAajB,EAAQiB,EAChD,OAAOjB,CACT,CDDUiB,CAAYjB,QACP7I,IAAT5F,IAAoBA,EAAOyO,EAAM+P,eACjCxe,EAAM,CACR,IAAI2S,EAAM3S,EAAKye,iBAAmBze,EAClC,GAAI2S,EAAI+L,eAAgB,CACtB,IAAIC,EAAQhM,EAAI+L,iBAGhB,OAFAC,EAAMxd,EAAIsN,EAAMqD,QAAS6M,EAAMvd,EAAIqN,EAAMsD,QAElC,EADP4M,EAAQA,EAAMC,gBAAgB5e,EAAK6e,eAAeC,YACpC3d,EAAGwd,EAAMvd,EACzB,CACA,GAAIpB,EAAK+e,sBAAuB,CAC9B,IAAIC,EAAOhf,EAAK+e,wBAChB,MAAO,CAACtQ,EAAMqD,QAAUkN,EAAKhc,KAAOhD,EAAKif,WAAYxQ,EAAMsD,QAAUiN,EAAKlc,IAAM9C,EAAKkf,UACvF,CACF,CACA,MAAO,CAACzQ,EAAM0Q,MAAO1Q,EAAM2Q,MAC7B,CDTAd,GAAMhc,UARS,WACb,OAAO,IAAIgc,EACb,EAMwBhc,UAAY,CAClCtB,YAAasd,GACbjR,IAAK,SAASrN,GAEZ,IADA,IAAIqf,EAAKne,KAAK+J,IACLoU,KAAMrf,SAAaA,EAAOA,EAAKqQ,YAAa,OACrD,OAAOrQ,EAAKqf,EACd,EACA9R,IAAK,SAASvN,EAAM2I,GAClB,OAAO3I,EAAKkB,KAAK+J,GAAKtC,CACxB,EACAuP,OAAQ,SAASlY,GACf,OAAOkB,KAAK+J,KAAKjL,UAAeA,EAAKkB,KAAK+J,EAC5C,EACAsT,SAAU,WACR,OAAOrd,KAAK+J,CACd,E,4EGzBa,WAASjK,EAAase,EAAShd,GAC5CtB,EAAYsB,UAAYgd,EAAQhd,UAAYA,EAC5CA,EAAUtB,YAAcA,CAC1B,CAEO,SAASue,EAAO9a,EAAQ+a,GAC7B,IAAIld,EAAY3C,OAAO4L,OAAO9G,EAAOnC,WACrC,IAAK,IAAI+S,KAAOmK,EAAYld,EAAU+S,GAAOmK,EAAWnK,GACxD,OAAO/S,CACT,CCPO,SAASmd,IAAS,CAElB,IAAIC,EAAS,GACTC,EAAW,EAAID,EAEtBE,EAAM,sBACNC,EAAM,oDACNC,EAAM,qDACNC,EAAQ,qBACRC,EAAe,IAAIC,OAAO,UAADxa,OAAWma,EAAG,KAAAna,OAAIma,EAAG,KAAAna,OAAIma,EAAG,SACrDM,EAAe,IAAID,OAAO,UAADxa,OAAWqa,EAAG,KAAAra,OAAIqa,EAAG,KAAAra,OAAIqa,EAAG,SACrDK,EAAgB,IAAIF,OAAO,WAADxa,OAAYma,EAAG,KAAAna,OAAIma,EAAG,KAAAna,OAAIma,EAAG,KAAAna,OAAIoa,EAAG,SAC9DO,EAAgB,IAAIH,OAAO,WAADxa,OAAYqa,EAAG,KAAAra,OAAIqa,EAAG,KAAAra,OAAIqa,EAAG,KAAAra,OAAIoa,EAAG,SAC9DQ,EAAe,IAAIJ,OAAO,UAADxa,OAAWoa,EAAG,KAAApa,OAAIqa,EAAG,KAAAra,OAAIqa,EAAG,SACrDQ,EAAgB,IAAIL,OAAO,WAADxa,OAAYoa,EAAG,KAAApa,OAAIqa,EAAG,KAAAra,OAAIqa,EAAG,KAAAra,OAAIoa,EAAG,SAE9DU,EAAQ,CACVC,UAAW,SACXC,aAAc,SACdC,KAAM,MACNC,WAAY,QACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRC,MAAO,EACPC,eAAgB,SAChBC,KAAM,IACNC,WAAY,QACZC,MAAO,SACPC,UAAW,SACXC,UAAW,QACXC,WAAY,QACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,QAChBC,SAAU,SACVC,QAAS,SACTC,KAAM,MACNC,SAAU,IACVC,SAAU,MACVC,cAAe,SACfC,SAAU,SACVC,UAAW,MACXC,SAAU,SACVC,UAAW,SACXC,YAAa,QACbC,eAAgB,QAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,QACTC,WAAY,SACZC,aAAc,QACdC,cAAe,QACfC,cAAe,QACfC,cAAe,QACfC,cAAe,MACfC,WAAY,QACZC,SAAU,SACVC,YAAa,MACbC,QAAS,QACTC,QAAS,QACTC,WAAY,QACZC,UAAW,SACXC,YAAa,SACbC,YAAa,QACbC,QAAS,SACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,QACNC,MAAO,MACPC,YAAa,SACbC,KAAM,QACNC,SAAU,SACVC,QAAS,SACTC,UAAW,SACXC,OAAQ,QACRC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,QACXC,aAAc,SACdC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtBC,UAAW,SACXC,WAAY,QACZC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,cAAe,QACfC,aAAc,QACdC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,MACNC,UAAW,QACXC,MAAO,SACPC,QAAS,SACTC,OAAQ,QACRC,iBAAkB,QAClBC,WAAY,IACZC,aAAc,SACdC,aAAc,QACdC,eAAgB,QAChBC,gBAAiB,QACjBC,kBAAmB,MACnBC,gBAAiB,QACjBC,gBAAiB,SACjBC,aAAc,QACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,IACNC,QAAS,SACTC,MAAO,QACPC,UAAW,QACXC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZC,OAAQ,QACRC,cAAe,QACfC,IAAK,SACLC,UAAW,SACXC,UAAW,QACXC,YAAa,QACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,QACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,QACTC,UAAW,QACXC,UAAW,QACXC,UAAW,QACXC,KAAM,SACNC,YAAa,MACbC,UAAW,QACXC,IAAK,SACLC,KAAM,MACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,QACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,SACPC,WAAY,SACZC,OAAQ,SACRC,YAAa,UAkBf,SAASC,IACP,OAAO1oB,KAAK2oB,MAAMC,WACpB,CAUA,SAASC,IACP,OAAO7oB,KAAK2oB,MAAMG,WACpB,CAEe,SAASC,EAAMC,GAC5B,IAAI9e,EAAG+e,EAEP,OADAD,GAAUA,EAAS,IAAItc,OAAOwc,eACtBhf,EAAI2U,EAAMsK,KAAKH,KAAYC,EAAI/e,EAAE,GAAG/H,OAAQ+H,EAAIkf,SAASlf,EAAE,GAAI,IAAW,IAAN+e,EAAUI,EAAKnf,GAC/E,IAAN+e,EAAU,IAAIK,EAAKpf,GAAK,EAAI,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAY,IAAJA,GAAiB,GAAJA,IAAY,EAAU,GAAJA,EAAU,GACzG,IAAN+e,EAAUM,EAAKrf,GAAK,GAAK,IAAMA,GAAK,GAAK,IAAMA,GAAK,EAAI,KAAW,IAAJA,GAAY,KACrE,IAAN+e,EAAUM,EAAMrf,GAAK,GAAK,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAY,IAAJA,IAAkB,GAAJA,IAAY,EAAU,GAAJA,GAAY,KAClJ,OACCA,EAAI4U,EAAaqK,KAAKH,IAAW,IAAIM,EAAIpf,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAI,IAC3DA,EAAI8U,EAAamK,KAAKH,IAAW,IAAIM,EAAW,IAAPpf,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAK,IAC/FA,EAAI+U,EAAckK,KAAKH,IAAWO,EAAKrf,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,KAC3DA,EAAIgV,EAAciK,KAAKH,IAAWO,EAAY,IAAPrf,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAKA,EAAE,KAC/FA,EAAIiV,EAAagK,KAAKH,IAAWQ,EAAKtf,EAAE,GAAIA,EAAE,GAAK,IAAKA,EAAE,GAAK,IAAK,IACpEA,EAAIkV,EAAc+J,KAAKH,IAAWQ,EAAKtf,EAAE,GAAIA,EAAE,GAAK,IAAKA,EAAE,GAAK,IAAKA,EAAE,IACxEmV,EAAMxS,eAAemc,GAAUK,EAAKhK,EAAM2J,IAC/B,gBAAXA,EAA2B,IAAIM,EAAI1U,IAAKA,IAAKA,IAAK,GAClD,IACR,CAEA,SAASyU,EAAKliB,GACZ,OAAO,IAAImiB,EAAIniB,GAAK,GAAK,IAAMA,GAAK,EAAI,IAAU,IAAJA,EAAU,EAC1D,CAEA,SAASoiB,EAAKE,EAAGC,EAAG1gB,EAAGD,GAErB,OADIA,GAAK,IAAG0gB,EAAIC,EAAI1gB,EAAI4L,KACjB,IAAI0U,EAAIG,EAAGC,EAAG1gB,EAAGD,EAC1B,CAEO,SAAS4gB,EAAWjR,GAEzB,OADMA,aAAa6F,IAAQ7F,EAAIqQ,EAAMrQ,IAChCA,EAEE,IAAI4Q,GADX5Q,EAAIA,EAAEiQ,OACWc,EAAG/Q,EAAEgR,EAAGhR,EAAE1P,EAAG0P,EAAEkR,SAFjB,IAAIN,CAGrB,CAEO,SAASX,EAAIc,EAAGC,EAAG1gB,EAAG4gB,GAC3B,OAA4B,IAArB7lB,UAAU5B,OAAewnB,EAAWF,GAAK,IAAIH,EAAIG,EAAGC,EAAG1gB,EAAc,MAAX4gB,EAAkB,EAAIA,EACzF,CAEO,SAASN,EAAIG,EAAGC,EAAG1gB,EAAG4gB,GAC3B5pB,KAAKypB,GAAKA,EACVzpB,KAAK0pB,GAAKA,EACV1pB,KAAKgJ,GAAKA,EACVhJ,KAAK4pB,SAAWA,CAClB,CA8BA,SAASC,IACP,MAAO,IAAPtlB,OAAWulB,EAAI9pB,KAAKypB,IAAEllB,OAAGulB,EAAI9pB,KAAK0pB,IAAEnlB,OAAGulB,EAAI9pB,KAAKgJ,GAClD,CAMA,SAAS+gB,IACP,MAAMhhB,EAAIihB,EAAOhqB,KAAK4pB,SACtB,MAAO,GAAPrlB,OAAgB,IAANwE,EAAU,OAAS,SAAOxE,OAAG0lB,EAAOjqB,KAAKypB,GAAE,MAAAllB,OAAK0lB,EAAOjqB,KAAK0pB,GAAE,MAAAnlB,OAAK0lB,EAAOjqB,KAAKgJ,IAAEzE,OAAS,IAANwE,EAAU,IAAM,KAAHxE,OAAQwE,EAAC,KACtH,CAEA,SAASihB,EAAOJ,GACd,OAAOM,MAAMN,GAAW,EAAI3mB,KAAKE,IAAI,EAAGF,KAAKC,IAAI,EAAG0mB,GACtD,CAEA,SAASK,EAAOxiB,GACd,OAAOxE,KAAKE,IAAI,EAAGF,KAAKC,IAAI,IAAKD,KAAKknB,MAAM1iB,IAAU,GACxD,CAEA,SAASqiB,EAAIriB,GAEX,QADAA,EAAQwiB,EAAOxiB,IACC,GAAK,IAAM,IAAMA,EAAM4V,SAAS,GAClD,CAEA,SAASmM,EAAKY,EAAGjgB,EAAG8e,EAAGlgB,GAIrB,OAHIA,GAAK,EAAGqhB,EAAIjgB,EAAI8e,EAAIrU,IACfqU,GAAK,GAAKA,GAAK,EAAGmB,EAAIjgB,EAAIyK,IAC1BzK,GAAK,IAAGigB,EAAIxV,KACd,IAAIyV,EAAID,EAAGjgB,EAAG8e,EAAGlgB,EAC1B,CAEO,SAASuhB,EAAW5R,GACzB,GAAIA,aAAa2R,EAAK,OAAO,IAAIA,EAAI3R,EAAE0R,EAAG1R,EAAEvO,EAAGuO,EAAEuQ,EAAGvQ,EAAEkR,SAEtD,GADMlR,aAAa6F,IAAQ7F,EAAIqQ,EAAMrQ,KAChCA,EAAG,OAAO,IAAI2R,EACnB,GAAI3R,aAAa2R,EAAK,OAAO3R,EAE7B,IAAI+Q,GADJ/Q,EAAIA,EAAEiQ,OACIc,EAAI,IACVC,EAAIhR,EAAEgR,EAAI,IACV1gB,EAAI0P,EAAE1P,EAAI,IACV9F,EAAMD,KAAKC,IAAIumB,EAAGC,EAAG1gB,GACrB7F,EAAMF,KAAKE,IAAIsmB,EAAGC,EAAG1gB,GACrBohB,EAAIxV,IACJzK,EAAIhH,EAAMD,EACV+lB,GAAK9lB,EAAMD,GAAO,EAUtB,OATIiH,GACaigB,EAAXX,IAAMtmB,GAAUumB,EAAI1gB,GAAKmB,EAAc,GAATuf,EAAI1gB,GAC7B0gB,IAAMvmB,GAAU6F,EAAIygB,GAAKtf,EAAI,GAC5Bsf,EAAIC,GAAKvf,EAAI,EACvBA,GAAK8e,EAAI,GAAM9lB,EAAMD,EAAM,EAAIC,EAAMD,EACrCknB,GAAK,IAELjgB,EAAI8e,EAAI,GAAKA,EAAI,EAAI,EAAImB,EAEpB,IAAIC,EAAID,EAAGjgB,EAAG8e,EAAGvQ,EAAEkR,QAC5B,CAEO,SAASW,EAAIH,EAAGjgB,EAAG8e,EAAGW,GAC3B,OAA4B,IAArB7lB,UAAU5B,OAAemoB,EAAWF,GAAK,IAAIC,EAAID,EAAGjgB,EAAG8e,EAAc,MAAXW,EAAkB,EAAIA,EACzF,CAEA,SAASS,EAAID,EAAGjgB,EAAG8e,EAAGW,GACpB5pB,KAAKoqB,GAAKA,EACVpqB,KAAKmK,GAAKA,EACVnK,KAAKipB,GAAKA,EACVjpB,KAAK4pB,SAAWA,CAClB,CAsCA,SAASY,EAAO/iB,GAEd,OADAA,GAASA,GAAS,GAAK,KACR,EAAIA,EAAQ,IAAMA,CACnC,CAEA,SAASgjB,EAAOhjB,GACd,OAAOxE,KAAKE,IAAI,EAAGF,KAAKC,IAAI,EAAGuE,GAAS,GAC1C,CAGA,SAASijB,EAAQN,EAAGvO,EAAI8O,GACtB,OAGY,KAHJP,EAAI,GAAKvO,GAAM8O,EAAK9O,GAAMuO,EAAI,GAChCA,EAAI,IAAMO,EACVP,EAAI,IAAMvO,GAAM8O,EAAK9O,IAAO,IAAMuO,GAAK,GACvCvO,EACR,CAlOA+O,EAAOrM,EAAOwK,EAAO,CACnB1nB,IAAAA,CAAKwpB,GACH,OAAOpsB,OAAOW,OAAO,IAAIY,KAAKF,YAAaE,KAAM6qB,EACnD,EACAC,WAAAA,GACE,OAAO9qB,KAAK2oB,MAAMmC,aACpB,EACAhB,IAAKpB,EACLE,UAAWF,EACXqC,WAUF,WACE,OAAO/qB,KAAK2oB,MAAMoC,YACpB,EAXEC,UAaF,WACE,OAAOV,EAAWtqB,MAAMgrB,WAC1B,EAdElC,UAAWD,EACXxL,SAAUwL,IAiEZ+B,EAAOtB,EAAKX,EAAKtK,EAAOE,EAAO,CAC7BE,QAAAA,CAASnZ,GAEP,OADAA,EAAS,MAALA,EAAYmZ,EAAWxb,KAAKgoB,IAAIxM,EAAUnZ,GACvC,IAAIgkB,EAAItpB,KAAKypB,EAAInkB,EAAGtF,KAAK0pB,EAAIpkB,EAAGtF,KAAKgJ,EAAI1D,EAAGtF,KAAK4pB,QAC1D,EACApL,MAAAA,CAAOlZ,GAEL,OADAA,EAAS,MAALA,EAAYkZ,EAASvb,KAAKgoB,IAAIzM,EAAQlZ,GACnC,IAAIgkB,EAAItpB,KAAKypB,EAAInkB,EAAGtF,KAAK0pB,EAAIpkB,EAAGtF,KAAKgJ,EAAI1D,EAAGtF,KAAK4pB,QAC1D,EACAjB,GAAAA,GACE,OAAO3oB,IACT,EACAkrB,KAAAA,GACE,OAAO,IAAI5B,EAAIW,EAAOjqB,KAAKypB,GAAIQ,EAAOjqB,KAAK0pB,GAAIO,EAAOjqB,KAAKgJ,GAAIghB,EAAOhqB,KAAK4pB,SAC7E,EACAkB,WAAAA,GACE,OAAS,IAAO9qB,KAAKypB,GAAKzpB,KAAKypB,EAAI,QAC1B,IAAOzpB,KAAK0pB,GAAK1pB,KAAK0pB,EAAI,QAC1B,IAAO1pB,KAAKgJ,GAAKhJ,KAAKgJ,EAAI,OAC3B,GAAKhJ,KAAK4pB,SAAW5pB,KAAK4pB,SAAW,CAC/C,EACAE,IAAKD,EACLjB,UAAWiB,EACXkB,WASF,WACE,MAAO,IAAPxmB,OAAWulB,EAAI9pB,KAAKypB,IAAEllB,OAAGulB,EAAI9pB,KAAK0pB,IAAEnlB,OAAGulB,EAAI9pB,KAAKgJ,IAAEzE,OAAGulB,EAA+C,KAA1CI,MAAMlqB,KAAK4pB,SAAW,EAAI5pB,KAAK4pB,UAC3F,EAVEd,UAAWiB,EACX1M,SAAU0M,KAyEZa,EAAOP,EAAKE,EAAKlM,EAAOE,EAAO,CAC7BE,QAAAA,CAASnZ,GAEP,OADAA,EAAS,MAALA,EAAYmZ,EAAWxb,KAAKgoB,IAAIxM,EAAUnZ,GACvC,IAAI+kB,EAAIrqB,KAAKoqB,EAAGpqB,KAAKmK,EAAGnK,KAAKipB,EAAI3jB,EAAGtF,KAAK4pB,QAClD,EACApL,MAAAA,CAAOlZ,GAEL,OADAA,EAAS,MAALA,EAAYkZ,EAASvb,KAAKgoB,IAAIzM,EAAQlZ,GACnC,IAAI+kB,EAAIrqB,KAAKoqB,EAAGpqB,KAAKmK,EAAGnK,KAAKipB,EAAI3jB,EAAGtF,KAAK4pB,QAClD,EACAjB,GAAAA,GACE,IAAIyB,EAAIpqB,KAAKoqB,EAAI,IAAqB,KAAdpqB,KAAKoqB,EAAI,GAC7BjgB,EAAI+f,MAAME,IAAMF,MAAMlqB,KAAKmK,GAAK,EAAInK,KAAKmK,EACzC8e,EAAIjpB,KAAKipB,EACT0B,EAAK1B,GAAKA,EAAI,GAAMA,EAAI,EAAIA,GAAK9e,EACjC0R,EAAK,EAAIoN,EAAI0B,EACjB,OAAO,IAAIrB,EACToB,EAAQN,GAAK,IAAMA,EAAI,IAAMA,EAAI,IAAKvO,EAAI8O,GAC1CD,EAAQN,EAAGvO,EAAI8O,GACfD,EAAQN,EAAI,IAAMA,EAAI,IAAMA,EAAI,IAAKvO,EAAI8O,GACzC3qB,KAAK4pB,QAET,EACAsB,KAAAA,GACE,OAAO,IAAIb,EAAIG,EAAOxqB,KAAKoqB,GAAIK,EAAOzqB,KAAKmK,GAAIsgB,EAAOzqB,KAAKipB,GAAIe,EAAOhqB,KAAK4pB,SAC7E,EACAkB,WAAAA,GACE,OAAQ,GAAK9qB,KAAKmK,GAAKnK,KAAKmK,GAAK,GAAK+f,MAAMlqB,KAAKmK,KACzC,GAAKnK,KAAKipB,GAAKjpB,KAAKipB,GAAK,GACzB,GAAKjpB,KAAK4pB,SAAW5pB,KAAK4pB,SAAW,CAC/C,EACAoB,SAAAA,GACE,MAAMjiB,EAAIihB,EAAOhqB,KAAK4pB,SACtB,MAAO,GAAPrlB,OAAgB,IAANwE,EAAU,OAAS,SAAOxE,OAAGimB,EAAOxqB,KAAKoqB,GAAE,MAAA7lB,OAAsB,IAAjBkmB,EAAOzqB,KAAKmK,GAAQ,OAAA5F,OAAuB,IAAjBkmB,EAAOzqB,KAAKipB,GAAQ,KAAA1kB,OAAU,IAANwE,EAAU,IAAM,KAAHxE,OAAQwE,EAAC,KACpI,KCzXK,MAAMoiB,EAAUloB,KAAKmoB,GAAK,IACpBC,EAAU,IAAMpoB,KAAKmoB,GCK9BE,EAAK,OAELC,EAAK,OACLC,EAAK,EAAI,GACTC,EAAK,EAAI,GACTC,EAAK,EAAID,EAAKA,EACdE,EAAKF,EAAKA,EAAKA,EAEnB,SAASG,EAAWlT,GAClB,GAAIA,aAAamT,EAAK,OAAO,IAAIA,EAAInT,EAAEuQ,EAAGvQ,EAAE3P,EAAG2P,EAAE1P,EAAG0P,EAAEkR,SACtD,GAAIlR,aAAaoT,GAAK,OAAOC,GAAQrT,GAC/BA,aAAa4Q,IAAM5Q,EAAIiR,EAAWjR,IACxC,IAGuEzY,EAAGgK,EAHtEwf,EAAIuC,GAAStT,EAAE+Q,GACfC,EAAIsC,GAAStT,EAAEgR,GACf1gB,EAAIgjB,GAAStT,EAAE1P,GACf9I,EAAI+rB,GAAS,SAAYxC,EAAI,SAAYC,EAAI,SAAY1gB,GAdtD,GAmBP,OAJIygB,IAAMC,GAAKA,IAAM1gB,EAAG/I,EAAIgK,EAAI/J,GAC9BD,EAAIgsB,GAAS,SAAYxC,EAAI,SAAYC,EAAI,SAAY1gB,GAAKsiB,GAC9DrhB,EAAIgiB,GAAS,SAAYxC,EAAI,SAAYC,EAAI,SAAY1gB,GAAKuiB,IAEzD,IAAIM,EAAI,IAAM3rB,EAAI,GAAI,KAAOD,EAAIC,GAAI,KAAOA,EAAI+J,GAAIyO,EAAEkR,QAC/D,CAUO,SAASiC,EAAI5C,EAAGlgB,EAAGC,EAAG4gB,GAC3B5pB,KAAKipB,GAAKA,EACVjpB,KAAK+I,GAAKA,EACV/I,KAAKgJ,GAAKA,EACVhJ,KAAK4pB,SAAWA,CAClB,CAyBA,SAASqC,EAAQ7hB,GACf,OAAOA,EAAIuhB,EAAK1oB,KAAKgoB,IAAI7gB,EAAG,EAAI,GAAKA,EAAIshB,EAAKF,CAChD,CAEA,SAASU,EAAQ9hB,GACf,OAAOA,EAAIqhB,EAAKrhB,EAAIA,EAAIA,EAAIshB,GAAMthB,EAAIohB,EACxC,CAEA,SAASW,EAASlsB,GAChB,OAAO,KAAOA,GAAK,SAAY,MAAQA,EAAI,MAAQgD,KAAKgoB,IAAIhrB,EAAG,EAAI,KAAO,KAC5E,CAEA,SAAS+rB,GAAS/rB,GAChB,OAAQA,GAAK,MAAQ,OAAUA,EAAI,MAAQgD,KAAKgoB,KAAKhrB,EAAI,MAAS,MAAO,IAC3E,CAEA,SAASmsB,GAAW1T,GAClB,GAAIA,aAAaoT,GAAK,OAAO,IAAIA,GAAIpT,EAAE0R,EAAG1R,EAAEpX,EAAGoX,EAAEuQ,EAAGvQ,EAAEkR,SAEtD,GADMlR,aAAamT,IAAMnT,EAAIkT,EAAWlT,IAC5B,IAARA,EAAE3P,GAAmB,IAAR2P,EAAE1P,EAAS,OAAO,IAAI8iB,GAAIlX,IAAK,EAAI8D,EAAEuQ,GAAKvQ,EAAEuQ,EAAI,IAAM,EAAIrU,IAAK8D,EAAEuQ,EAAGvQ,EAAEkR,SACvF,IAAIQ,EAAInnB,KAAKopB,MAAM3T,EAAE1P,EAAG0P,EAAE3P,GAAKsiB,EAC/B,OAAO,IAAIS,GAAI1B,EAAI,EAAIA,EAAI,IAAMA,EAAGnnB,KAAKsH,KAAKmO,EAAE3P,EAAI2P,EAAE3P,EAAI2P,EAAE1P,EAAI0P,EAAE1P,GAAI0P,EAAEuQ,EAAGvQ,EAAEkR,QAC/E,CAMO,SAAS0C,GAAIlC,EAAG9oB,EAAG2nB,EAAGW,GAC3B,OAA4B,IAArB7lB,UAAU5B,OAAeiqB,GAAWhC,GAAK,IAAI0B,GAAI1B,EAAG9oB,EAAG2nB,EAAc,MAAXW,EAAkB,EAAIA,EACzF,CAEO,SAASkC,GAAI1B,EAAG9oB,EAAG2nB,EAAGW,GAC3B5pB,KAAKoqB,GAAKA,EACVpqB,KAAKsB,GAAKA,EACVtB,KAAKipB,GAAKA,EACVjpB,KAAK4pB,SAAWA,CAClB,CAEA,SAASmC,GAAQrT,GACf,GAAIwR,MAAMxR,EAAE0R,GAAI,OAAO,IAAIyB,EAAInT,EAAEuQ,EAAG,EAAG,EAAGvQ,EAAEkR,SAC5C,IAAIQ,EAAI1R,EAAE0R,EAAIe,EACd,OAAO,IAAIU,EAAInT,EAAEuQ,EAAGhmB,KAAKspB,IAAInC,GAAK1R,EAAEpX,EAAG2B,KAAKupB,IAAIpC,GAAK1R,EAAEpX,EAAGoX,EAAEkR,QAC9D,CAlEAgB,EAAOiB,GAXQ,SAAa5C,EAAGlgB,EAAGC,EAAG4gB,GACnC,OAA4B,IAArB7lB,UAAU5B,OAAeypB,EAAW3C,GAAK,IAAI4C,EAAI5C,EAAGlgB,EAAGC,EAAc,MAAX4gB,EAAkB,EAAIA,EACzF,GASiBvL,EAAOE,EAAO,CAC7BE,QAAAA,CAASnZ,GACP,OAAO,IAAIumB,EAAI7rB,KAAKipB,EAzCd,IAyC4B,MAAL3jB,EAAY,EAAIA,GAAItF,KAAK+I,EAAG/I,KAAKgJ,EAAGhJ,KAAK4pB,QACxE,EACApL,MAAAA,CAAOlZ,GACL,OAAO,IAAIumB,EAAI7rB,KAAKipB,EA5Cd,IA4C4B,MAAL3jB,EAAY,EAAIA,GAAItF,KAAK+I,EAAG/I,KAAKgJ,EAAGhJ,KAAK4pB,QACxE,EACAjB,GAAAA,GACE,IAAIzoB,GAAKF,KAAKipB,EAAI,IAAM,IACpBhpB,EAAIiqB,MAAMlqB,KAAK+I,GAAK7I,EAAIA,EAAIF,KAAK+I,EAAI,IACrCkB,EAAIigB,MAAMlqB,KAAKgJ,GAAK9I,EAAIA,EAAIF,KAAKgJ,EAAI,IAIzC,OAAO,IAAIsgB,EACT6C,EAAU,WAJZlsB,EAAIqrB,EAAKY,EAAQjsB,IAIW,WAH5BC,EAjDK,EAiDIgsB,EAAQhsB,IAG2B,UAF5C+J,EAAIshB,EAAKW,EAAQjiB,KAGfkiB,GAAU,SAAYlsB,EAAI,UAAYC,EAAI,QAAY+J,GACtDkiB,EAAU,SAAYlsB,EAAI,SAAYC,EAAI,UAAY+J,GACtDjK,KAAK4pB,QAET,KAgDFgB,EAAOkB,GAAKQ,GAAKjO,EAAOE,EAAO,CAC7BE,QAAAA,CAASnZ,GACP,OAAO,IAAIwmB,GAAI9rB,KAAKoqB,EAAGpqB,KAAKsB,EAAGtB,KAAKipB,EA7G9B,IA6G4C,MAAL3jB,EAAY,EAAIA,GAAItF,KAAK4pB,QACxE,EACApL,MAAAA,CAAOlZ,GACL,OAAO,IAAIwmB,GAAI9rB,KAAKoqB,EAAGpqB,KAAKsB,EAAGtB,KAAKipB,EAhH9B,IAgH4C,MAAL3jB,EAAY,EAAIA,GAAItF,KAAK4pB,QACxE,EACAjB,GAAAA,GACE,OAAOoD,GAAQ/rB,MAAM2oB,KACvB,KCrHF,IAAI3e,IAAK,OACLyiB,GAAI,QACJC,IAAK,OACLC,IAAK,OACLC,GAAI,QACJC,GAAKD,GAAID,GACTG,GAAKF,GAAIH,GACTM,GAAQN,GAAIC,GAAIC,GAAI3iB,GAgBT,SAASgjB,GAAU5C,EAAGjgB,EAAG8e,EAAGW,GACzC,OAA4B,IAArB7lB,UAAU5B,OAfnB,SAA0BuW,GACxB,GAAIA,aAAauU,GAAW,OAAO,IAAIA,GAAUvU,EAAE0R,EAAG1R,EAAEvO,EAAGuO,EAAEuQ,EAAGvQ,EAAEkR,SAC5DlR,aAAa4Q,IAAM5Q,EAAIiR,EAAWjR,IACxC,IAAI+Q,EAAI/Q,EAAE+Q,EAAI,IACVC,EAAIhR,EAAEgR,EAAI,IACV1gB,EAAI0P,EAAE1P,EAAI,IACVigB,GAAK8D,GAAQ/jB,EAAI6jB,GAAKpD,EAAIqD,GAAKpD,IAAMqD,GAAQF,GAAKC,IAClDI,EAAKlkB,EAAIigB,EACT3jB,GAAKsnB,IAAKlD,EAAIT,GAAKyD,GAAIQ,GAAMP,GAC7BxiB,EAAIlH,KAAKsH,KAAKjF,EAAIA,EAAI4nB,EAAKA,IAAON,GAAI3D,GAAK,EAAIA,IAC/CmB,EAAIjgB,EAAIlH,KAAKopB,MAAM/mB,EAAG4nB,GAAM7B,EAAU,IAAMzW,IAChD,OAAO,IAAIqY,GAAU7C,EAAI,EAAIA,EAAI,IAAMA,EAAGjgB,EAAG8e,EAAGvQ,EAAEkR,QACpD,CAGkCuD,CAAiB/C,GAAK,IAAI6C,GAAU7C,EAAGjgB,EAAG8e,EAAc,MAAXW,EAAkB,EAAIA,EACrG,CAEO,SAASqD,GAAU7C,EAAGjgB,EAAG8e,EAAGW,GACjC5pB,KAAKoqB,GAAKA,EACVpqB,KAAKmK,GAAKA,EACVnK,KAAKipB,GAAKA,EACVjpB,KAAK4pB,SAAWA,CAClB,CCpCO,SAASwD,GAAM3B,EAAI4B,EAAIC,EAAIC,EAAIC,GACpC,IAAI9B,EAAKD,EAAKA,EAAIE,EAAKD,EAAKD,EAC5B,QAAS,EAAI,EAAIA,EAAK,EAAIC,EAAKC,GAAM0B,GAC9B,EAAI,EAAI3B,EAAK,EAAIC,GAAM2B,GACvB,EAAI,EAAI7B,EAAK,EAAIC,EAAK,EAAIC,GAAM4B,EACjC5B,EAAK6B,GAAM,CACnB,CDgCA5C,EAAOqC,GAAWD,GAAW3O,EAAOE,EAAO,CACzCE,QAAAA,CAASnZ,GAEP,OADAA,EAAS,MAALA,EAAYmZ,EAAWxb,KAAKgoB,IAAIxM,EAAUnZ,GACvC,IAAI2nB,GAAUjtB,KAAKoqB,EAAGpqB,KAAKmK,EAAGnK,KAAKipB,EAAI3jB,EAAGtF,KAAK4pB,QACxD,EACApL,MAAAA,CAAOlZ,GAEL,OADAA,EAAS,MAALA,EAAYkZ,EAASvb,KAAKgoB,IAAIzM,EAAQlZ,GACnC,IAAI2nB,GAAUjtB,KAAKoqB,EAAGpqB,KAAKmK,EAAGnK,KAAKipB,EAAI3jB,EAAGtF,KAAK4pB,QACxD,EACAjB,GAAAA,GACE,IAAIyB,EAAIF,MAAMlqB,KAAKoqB,GAAK,GAAKpqB,KAAKoqB,EAAI,KAAOe,EACzClC,GAAKjpB,KAAKipB,EACVlgB,EAAImhB,MAAMlqB,KAAKmK,GAAK,EAAInK,KAAKmK,EAAI8e,GAAK,EAAIA,GAC1CwE,EAAOxqB,KAAKspB,IAAInC,GAChBsD,EAAOzqB,KAAKupB,IAAIpC,GACpB,OAAO,IAAId,EACT,KAAOL,EAAIlgB,GAAKiB,GAAIyjB,EAAOhB,GAAIiB,IAC/B,KAAOzE,EAAIlgB,GAAK2jB,GAAIe,EAAOd,GAAIe,IAC/B,KAAOzE,EAAIlgB,GAAK6jB,GAAIa,IACpBztB,KAAK4pB,QAET,KE3DF,SAAe3pB,GAAK,IAAMA,ECE1B,SAAS0tB,GAAO5kB,EAAGZ,GACjB,OAAO,SAASiC,GACd,OAAOrB,EAAIqB,EAAIjC,CACjB,CACF,CAQO,SAASylB,GAAI7kB,EAAGC,GACrB,IAAIb,EAAIa,EAAID,EACZ,OAAOZ,EAAIwlB,GAAO5kB,EAAGZ,EAAI,KAAOA,GAAK,IAAMA,EAAI,IAAMlF,KAAKknB,MAAMhiB,EAAI,KAAOA,GAAKmJ,GAAS4Y,MAAMnhB,GAAKC,EAAID,EAC1G,CAEO,SAAS8kB,GAAM3tB,GACpB,OAAoB,IAAZA,GAAKA,GAAW4tB,GAAU,SAAS/kB,EAAGC,GAC5C,OAAOA,EAAID,EAbf,SAAqBA,EAAGC,EAAG9I,GACzB,OAAO6I,EAAI9F,KAAKgoB,IAAIliB,EAAG7I,GAAI8I,EAAI/F,KAAKgoB,IAAIjiB,EAAG9I,GAAK6I,EAAG7I,EAAI,EAAIA,EAAG,SAASkK,GACrE,OAAOnH,KAAKgoB,IAAIliB,EAAIqB,EAAIpB,EAAG9I,EAC7B,CACF,CASmB6tB,CAAYhlB,EAAGC,EAAG9I,GAAKoR,GAAS4Y,MAAMnhB,GAAKC,EAAID,EAChE,CACF,CAEe,SAAS+kB,GAAQ/kB,EAAGC,GACjC,IAAIb,EAAIa,EAAID,EACZ,OAAOZ,EAAIwlB,GAAO5kB,EAAGZ,GAAKmJ,GAAS4Y,MAAMnhB,GAAKC,EAAID,EACpD,CCvBA,SAAe,SAAUilB,EAAS9tB,GAChC,IAAI6oB,EAAQ8E,GAAM3tB,GAElB,SAASyoB,EAAI9f,EAAOD,GAClB,IAAI6gB,EAAIV,GAAOlgB,EAAQolB,EAASplB,IAAQ4gB,GAAI7gB,EAAMqlB,EAASrlB,IAAM6gB,GAC7DC,EAAIX,EAAMlgB,EAAM6gB,EAAG9gB,EAAI8gB,GACvB1gB,EAAI+f,EAAMlgB,EAAMG,EAAGJ,EAAII,GACvB4gB,EAAUkE,GAAQjlB,EAAM+gB,QAAShhB,EAAIghB,SACzC,OAAO,SAASxf,GAKd,OAJAvB,EAAM4gB,EAAIA,EAAErf,GACZvB,EAAM6gB,EAAIA,EAAEtf,GACZvB,EAAMG,EAAIA,EAAEoB,GACZvB,EAAM+gB,QAAUA,EAAQxf,GACjBvB,EAAQ,EACjB,CACF,CAIA,OAFA8f,EAAIkF,MAAQG,EAELrF,CACR,CApBD,CAoBG,GAEH,SAASuF,GAAUC,GACjB,OAAO,SAASC,GACd,IAIIzpB,EAAGokB,EAJH5hB,EAAIinB,EAAOjsB,OACXsnB,EAAI,IAAI1hB,MAAMZ,GACduiB,EAAI,IAAI3hB,MAAMZ,GACd6B,EAAI,IAAIjB,MAAMZ,GAElB,IAAKxC,EAAI,EAAGA,EAAIwC,IAAKxC,EACnBokB,EAAQkF,EAASG,EAAOzpB,IACxB8kB,EAAE9kB,GAAKokB,EAAMU,GAAK,EAClBC,EAAE/kB,GAAKokB,EAAMW,GAAK,EAClB1gB,EAAErE,GAAKokB,EAAM/f,GAAK,EAMpB,OAJAygB,EAAI0E,EAAO1E,GACXC,EAAIyE,EAAOzE,GACX1gB,EAAImlB,EAAOnlB,GACX+f,EAAMa,QAAU,EACT,SAASxf,GAId,OAHA2e,EAAMU,EAAIA,EAAErf,GACZ2e,EAAMW,EAAIA,EAAEtf,GACZ2e,EAAM/f,EAAIA,EAAEoB,GACL2e,EAAQ,EACjB,CACF,CACF,CAEsBmF,IH7CP,SAASG,GACtB,IAAIlnB,EAAIknB,EAAOlsB,OAAS,EACxB,OAAO,SAASiI,GACd,IAAIzF,EAAIyF,GAAK,EAAKA,EAAI,EAAKA,GAAK,GAAKA,EAAI,EAAGjD,EAAI,GAAKlE,KAAKqrB,MAAMlkB,EAAIjD,GAChEmmB,EAAKe,EAAO1pB,GACZ4oB,EAAKc,EAAO1pB,EAAI,GAChB0oB,EAAK1oB,EAAI,EAAI0pB,EAAO1pB,EAAI,GAAK,EAAI2oB,EAAKC,EACtCC,EAAK7oB,EAAIwC,EAAI,EAAIknB,EAAO1pB,EAAI,GAAK,EAAI4oB,EAAKD,EAC9C,OAAOF,IAAOhjB,EAAIzF,EAAIwC,GAAKA,EAAGkmB,EAAIC,EAAIC,EAAIC,EAC5C,CACF,IGoC4BU,ICpDb,SAASG,GACtB,IAAIlnB,EAAIknB,EAAOlsB,OACf,OAAO,SAASiI,GACd,IAAIzF,EAAI1B,KAAKqrB,QAAQlkB,GAAK,GAAK,IAAMA,EAAIA,GAAKjD,GAC1CkmB,EAAKgB,GAAQ1pB,EAAIwC,EAAI,GAAKA,GAC1BmmB,EAAKe,EAAO1pB,EAAIwC,GAChBomB,EAAKc,GAAQ1pB,EAAI,GAAKwC,GACtBqmB,EAAKa,GAAQ1pB,EAAI,GAAKwC,GAC1B,OAAOimB,IAAOhjB,EAAIzF,EAAIwC,GAAKA,EAAGkmB,EAAIC,EAAIC,EAAIC,EAC5C,CACF,ICZe,YAASzkB,EAAGC,GACzB,OAAOD,GAAKA,EAAGC,GAAKA,EAAG,SAASoB,GAC9B,OAAOrB,GAAK,EAAIqB,GAAKpB,EAAIoB,CAC3B,CACF,CCFA,IAAImkB,GAAM,8CACNC,GAAM,IAAIzP,OAAOwP,GAAIhlB,OAAQ,KAclB,YAASR,EAAGC,GACzB,IACIylB,EACAC,EACAC,EAHAC,EAAKL,GAAIM,UAAYL,GAAIK,UAAY,EAIrClqB,GAAK,EACLwF,EAAI,GACJ2kB,EAAI,GAMR,IAHA/lB,GAAQ,GAAIC,GAAQ,IAGZylB,EAAKF,GAAIpF,KAAKpgB,MACd2lB,EAAKF,GAAIrF,KAAKngB,MACf2lB,EAAKD,EAAGloB,OAASooB,IACpBD,EAAK3lB,EAAES,MAAMmlB,EAAID,GACbxkB,EAAExF,GAAIwF,EAAExF,IAAMgqB,EACbxkB,IAAIxF,GAAKgqB,IAEXF,EAAKA,EAAG,OAASC,EAAKA,EAAG,IACxBvkB,EAAExF,GAAIwF,EAAExF,IAAM+pB,EACbvkB,IAAIxF,GAAK+pB,GAEdvkB,IAAIxF,GAAK,KACTmqB,EAAE9mB,KAAK,CAACrD,EAAGA,EAAG1E,EAAG8uB,GAAON,EAAIC,MAE9BE,EAAKJ,GAAIK,UAYX,OARID,EAAK5lB,EAAE7G,SACTwsB,EAAK3lB,EAAES,MAAMmlB,GACTzkB,EAAExF,GAAIwF,EAAExF,IAAMgqB,EACbxkB,IAAIxF,GAAKgqB,GAKTxkB,EAAEhI,OAAS,EAAK2sB,EAAE,GA7C3B,SAAa9lB,GACX,OAAO,SAASoB,GACd,OAAOpB,EAAEoB,GAAK,EAChB,CACF,CA0CQ4kB,CAAIF,EAAE,GAAG7uB,GApDjB,SAAc+I,GACZ,OAAO,WACL,OAAOA,CACT,CACF,CAiDQimB,CAAKjmB,IACJA,EAAI8lB,EAAE3sB,OAAQ,SAASiI,GACtB,IAAK,IAAWsO,EAAP/T,EAAI,EAAMA,EAAIqE,IAAKrE,EAAGwF,GAAGuO,EAAIoW,EAAEnqB,IAAIA,GAAK+T,EAAEzY,EAAEmK,GACrD,OAAOD,EAAE3F,KAAK,GAChB,EACR,CC/DA,ICEI0qB,GDFA7D,GAAU,IAAMpoB,KAAKmoB,GAEd+D,GAAW,CACpBC,WAAY,EACZC,WAAY,EACZC,OAAQ,EACRC,MAAO,EACPC,OAAQ,EACRC,OAAQ,GAGK,YAAS1mB,EAAGC,EAAG1H,EAAG6G,EAAGunB,EAAGC,GACrC,IAAIH,EAAQC,EAAQF,EAKpB,OAJIC,EAASvsB,KAAKsH,KAAKxB,EAAIA,EAAIC,EAAIA,MAAID,GAAKymB,EAAQxmB,GAAKwmB,IACrDD,EAAQxmB,EAAIzH,EAAI0H,EAAIb,KAAG7G,GAAKyH,EAAIwmB,EAAOpnB,GAAKa,EAAIumB,IAChDE,EAASxsB,KAAKsH,KAAKjJ,EAAIA,EAAI6G,EAAIA,MAAI7G,GAAKmuB,EAAQtnB,GAAKsnB,EAAQF,GAASE,GACtE1mB,EAAIZ,EAAIa,EAAI1H,IAAGyH,GAAKA,EAAGC,GAAKA,EAAGumB,GAASA,EAAOC,GAAUA,GACtD,CACLJ,WAAYM,EACZL,WAAYM,EACZL,OAAQrsB,KAAKopB,MAAMrjB,EAAGD,GAAKsiB,GAC3BkE,MAAOtsB,KAAK2sB,KAAKL,GAASlE,GAC1BmE,OAAQA,EACRC,OAAQA,EAEZ,CEtBA,SAASI,GAAqBC,EAAOC,EAASC,EAASC,GAErD,SAASnoB,EAAIqC,GACX,OAAOA,EAAEhI,OAASgI,EAAErC,MAAQ,IAAM,EACpC,CAqCA,OAAO,SAASiB,EAAGC,GACjB,IAAImB,EAAI,GACJ2kB,EAAI,GAOR,OANA/lB,EAAI+mB,EAAM/mB,GAAIC,EAAI8mB,EAAM9mB,GAtC1B,SAAmBknB,EAAIC,EAAIC,EAAIC,EAAIlmB,EAAG2kB,GACpC,GAAIoB,IAAOE,GAAMD,IAAOE,EAAI,CAC1B,IAAI1rB,EAAIwF,EAAEnC,KAAK,aAAc,KAAM+nB,EAAS,KAAMC,GAClDlB,EAAE9mB,KAAK,CAACrD,EAAGA,EAAI,EAAG1E,EAAG8uB,GAAOmB,EAAIE,IAAM,CAACzrB,EAAGA,EAAI,EAAG1E,EAAG8uB,GAAOoB,EAAIE,IACjE,MAAWD,GAAMC,IACflmB,EAAEnC,KAAK,aAAeooB,EAAKL,EAAUM,EAAKL,EAE9C,CAgCEM,CAAUvnB,EAAEqmB,WAAYrmB,EAAEsmB,WAAYrmB,EAAEomB,WAAYpmB,EAAEqmB,WAAYllB,EAAG2kB,GA9BvE,SAAgB/lB,EAAGC,EAAGmB,EAAG2kB,GACnB/lB,IAAMC,GACJD,EAAIC,EAAI,IAAKA,GAAK,IAAcA,EAAID,EAAI,MAAKA,GAAK,KACtD+lB,EAAE9mB,KAAK,CAACrD,EAAGwF,EAAEnC,KAAKF,EAAIqC,GAAK,UAAW,KAAM8lB,GAAY,EAAGhwB,EAAG8uB,GAAOhmB,EAAGC,MAC/DA,GACTmB,EAAEnC,KAAKF,EAAIqC,GAAK,UAAYnB,EAAIinB,EAEpC,CAwBEX,CAAOvmB,EAAEumB,OAAQtmB,EAAEsmB,OAAQnlB,EAAG2kB,GAtBhC,SAAe/lB,EAAGC,EAAGmB,EAAG2kB,GAClB/lB,IAAMC,EACR8lB,EAAE9mB,KAAK,CAACrD,EAAGwF,EAAEnC,KAAKF,EAAIqC,GAAK,SAAU,KAAM8lB,GAAY,EAAGhwB,EAAG8uB,GAAOhmB,EAAGC,KAC9DA,GACTmB,EAAEnC,KAAKF,EAAIqC,GAAK,SAAWnB,EAAIinB,EAEnC,CAiBEV,CAAMxmB,EAAEwmB,MAAOvmB,EAAEumB,MAAOplB,EAAG2kB,GAf7B,SAAeoB,EAAIC,EAAIC,EAAIC,EAAIlmB,EAAG2kB,GAChC,GAAIoB,IAAOE,GAAMD,IAAOE,EAAI,CAC1B,IAAI1rB,EAAIwF,EAAEnC,KAAKF,EAAIqC,GAAK,SAAU,KAAM,IAAK,KAAM,KACnD2kB,EAAE9mB,KAAK,CAACrD,EAAGA,EAAI,EAAG1E,EAAG8uB,GAAOmB,EAAIE,IAAM,CAACzrB,EAAGA,EAAI,EAAG1E,EAAG8uB,GAAOoB,EAAIE,IACjE,MAAkB,IAAPD,GAAmB,IAAPC,GACrBlmB,EAAEnC,KAAKF,EAAIqC,GAAK,SAAWimB,EAAK,IAAMC,EAAK,IAE/C,CASEE,CAAMxnB,EAAEymB,OAAQzmB,EAAE0mB,OAAQzmB,EAAEwmB,OAAQxmB,EAAEymB,OAAQtlB,EAAG2kB,GACjD/lB,EAAIC,EAAI,KACD,SAASoB,GAEd,IADA,IAA0BsO,EAAtB/T,GAAK,EAAGwC,EAAI2nB,EAAE3sB,SACTwC,EAAIwC,GAAGgD,GAAGuO,EAAIoW,EAAEnqB,IAAIA,GAAK+T,EAAEzY,EAAEmK,GACtC,OAAOD,EAAE3F,KAAK,GAChB,CACF,CACF,CAEO,IAAIgsB,GAA0BX,IDxD9B,SAAkBpoB,GACvB,MAAMyC,EAAI,IAA0B,mBAAdumB,UAA2BA,UAAYC,iBAAiBjpB,EAAQ,IACtF,OAAOyC,EAAEymB,WAAaxB,GAAWyB,GAAU1mB,EAAEnB,EAAGmB,EAAElB,EAAGkB,EAAE5I,EAAG4I,EAAE/B,EAAG+B,EAAEwlB,EAAGxlB,EAAEylB,EACxE,GCqDoE,OAAQ,MAAO,QACxEkB,GAA0BhB,IDpD9B,SAAkBpoB,GACvB,OAAa,MAATA,EAAsB0nB,IACrBD,KAASA,GAAUvhB,SAAS2E,gBAAgB,6BAA8B,MAC/E4c,GAAQha,aAAa,YAAazN,IAC5BA,EAAQynB,GAAQ4B,UAAUC,QAAQC,eAEjCJ,IADPnpB,EAAQA,EAAMwpB,QACSloB,EAAGtB,EAAMuB,EAAGvB,EAAMnG,EAAGmG,EAAMU,EAAGV,EAAMioB,EAAGjoB,EAAMkoB,GAFLR,GAGjE,GC6CoE,KAAM,IAAK,KC5D/E,SAAS1B,GAAKxtB,GACZ,QAASA,EAAIgD,KAAKiuB,IAAIjxB,IAAM,EAAIA,GAAK,CACvC,CAUA,SAAe,SAAUkxB,EAAQC,EAAKC,EAAMC,GAI1C,SAASC,EAAKlgB,EAAImgB,GAChB,IAKI7sB,EACA8sB,EANAC,EAAMrgB,EAAG,GAAIsgB,EAAMtgB,EAAG,GAAIugB,EAAKvgB,EAAG,GAClCwgB,EAAML,EAAG,GAAIM,EAAMN,EAAG,GAAIO,EAAKP,EAAG,GAClC5mB,EAAKinB,EAAMH,EACX7mB,EAAKinB,EAAMH,EACXK,EAAKpnB,EAAKA,EAAKC,EAAKA,EAKxB,GAAImnB,EA5BO,MA6BTP,EAAIxuB,KAAKgvB,IAAIF,EAAKH,GAAMR,EACxBzsB,EAAI,SAASyF,GACX,MAAO,CACLsnB,EAAMtnB,EAAIQ,EACV+mB,EAAMvnB,EAAIS,EACV+mB,EAAK3uB,KAAKiuB,IAAIE,EAAMhnB,EAAIqnB,GAE5B,MAIG,CACH,IAAIS,EAAKjvB,KAAKsH,KAAKynB,GACfG,GAAMJ,EAAKA,EAAKH,EAAKA,EAAKN,EAAOU,IAAO,EAAIJ,EAAKP,EAAOa,GACxDE,GAAML,EAAKA,EAAKH,EAAKA,EAAKN,EAAOU,IAAO,EAAID,EAAKV,EAAOa,GACxDG,EAAKpvB,KAAKgvB,IAAIhvB,KAAKsH,KAAK4nB,EAAKA,EAAK,GAAKA,GACvCG,EAAKrvB,KAAKgvB,IAAIhvB,KAAKsH,KAAK6nB,EAAKA,EAAK,GAAKA,GAC3CX,GAAKa,EAAKD,GAAMjB,EAChBzsB,EAAI,SAASyF,GACX,IAtCMnK,EAsCFkK,EAAIC,EAAIqnB,EACRc,EAAS9E,GAAK4E,GACdG,EAAIZ,GAAMP,EAAOa,IAAOK,GAxCtBtyB,EAwCoCmxB,EAAMjnB,EAAIkoB,IAvCjDpyB,EAAIgD,KAAKiuB,IAAI,EAAIjxB,IAAM,IAAMA,EAAI,IAL5C,SAAcA,GACZ,QAASA,EAAIgD,KAAKiuB,IAAIjxB,IAAM,EAAIA,GAAK,CACvC,CA0CkEytB,CAAK2E,IAC/D,MAAO,CACLX,EAAMc,EAAI5nB,EACV+mB,EAAMa,EAAI3nB,EACV+mB,EAAKW,EAAS9E,GAAK2D,EAAMjnB,EAAIkoB,GAEjC,CACF,CAIA,OAFA1tB,EAAE8tB,SAAe,IAAJhB,EAAWL,EAAMnuB,KAAKyvB,MAE5B/tB,CACT,CAOA,OALA4sB,EAAKH,IAAM,SAASrnB,GAClB,IAAI4oB,EAAK1vB,KAAKE,IAAI,MAAO4G,GAAI6oB,EAAKD,EAAKA,EACvC,OAAOxB,EAAQwB,EAAIC,EAD6BA,EAAKA,EAEvD,EAEOrB,CACR,CAxDD,CAwDGtuB,KAAKyvB,MAAO,EAAG,GCnElB,SAASnI,GAAIqD,GACX,OAAO,SAAS/kB,EAAOD,GACrB,IAAIwhB,EAAIwD,GAAK/kB,EAAQgqB,EAAShqB,IAAQuhB,GAAIxhB,EAAMiqB,EAASjqB,IAAMwhB,GAC3DjgB,EAAI4e,GAAMlgB,EAAMsB,EAAGvB,EAAIuB,GACvB8e,EAAIF,GAAMlgB,EAAMogB,EAAGrgB,EAAIqgB,GACvBW,EAAUb,GAAMlgB,EAAM+gB,QAAShhB,EAAIghB,SACvC,OAAO,SAASxf,GAKd,OAJAvB,EAAMuhB,EAAIA,EAAEhgB,GACZvB,EAAMsB,EAAIA,EAAEC,GACZvB,EAAMogB,EAAIA,EAAE7e,GACZvB,EAAM+gB,QAAUA,EAAQxf,GACjBvB,EAAQ,EACjB,CACF,CACF,CAEe0hB,GAAIqD,IACErD,GAAIxB,ICjBzB,SAASuD,GAAIsB,GACX,OAAO,SAAS/kB,EAAOD,GACrB,IAAIwhB,EAAIwD,GAAK/kB,EAAQiqB,GAASjqB,IAAQuhB,GAAIxhB,EAAMkqB,GAASlqB,IAAMwhB,GAC3D9oB,EAAIynB,GAAMlgB,EAAMvH,EAAGsH,EAAItH,GACvB2nB,EAAIF,GAAMlgB,EAAMogB,EAAGrgB,EAAIqgB,GACvBW,EAAUb,GAAMlgB,EAAM+gB,QAAShhB,EAAIghB,SACvC,OAAO,SAASxf,GAKd,OAJAvB,EAAMuhB,EAAIA,EAAEhgB,GACZvB,EAAMvH,EAAIA,EAAE8I,GACZvB,EAAMogB,EAAIA,EAAE7e,GACZvB,EAAM+gB,QAAUA,EAAQxf,GACjBvB,EAAQ,EACjB,CACF,CACF,CAEeyjB,GAAIsB,IACEtB,GAAIvD,ICjBzB,SAASiE,GAAUY,GACjB,OAAQ,SAASmF,EAAe7yB,GAG9B,SAAS8sB,EAAUnkB,EAAOD,GACxB,IAAIwhB,EAAIwD,GAAK/kB,EAAQmqB,GAAenqB,IAAQuhB,GAAIxhB,EAAMoqB,GAAepqB,IAAMwhB,GACvEjgB,EAAI4e,GAAMlgB,EAAMsB,EAAGvB,EAAIuB,GACvB8e,EAAIF,GAAMlgB,EAAMogB,EAAGrgB,EAAIqgB,GACvBW,EAAUb,GAAMlgB,EAAM+gB,QAAShhB,EAAIghB,SACvC,OAAO,SAASxf,GAKd,OAJAvB,EAAMuhB,EAAIA,EAAEhgB,GACZvB,EAAMsB,EAAIA,EAAEC,GACZvB,EAAMogB,EAAIA,EAAEhmB,KAAKgoB,IAAI7gB,EAAGlK,IACxB2I,EAAM+gB,QAAUA,EAAQxf,GACjBvB,EAAQ,EACjB,CACF,CAIA,OAlBA3I,GAAKA,EAgBL8sB,EAAUa,MAAQkF,EAEX/F,CACT,CApBQ,CAoBL,EACL,CAEeA,GAAUY,IACEZ,GAAUjE,I,ICxBjCkK,GACAC,G,aALAC,GAAQ,EACRC,GAAU,EACVC,GAAW,EAIXC,GAAY,EACZC,GAAW,EACXC,GAAY,EACZC,GAA+B,iBAAhBC,aAA4BA,YAAYC,IAAMD,YAAcE,KAC3EC,GAA6B,iBAAX3a,QAAuBA,OAAO4a,sBAAwB5a,OAAO4a,sBAAsBlZ,KAAK1B,QAAU,SAASyW,GAAKthB,WAAWshB,EAAG,GAAK,EAElJ,SAASgE,KACd,OAAOJ,KAAaM,GAASE,IAAWR,GAAWE,GAAME,MAAQH,GACnE,CAEA,SAASO,KACPR,GAAW,CACb,CAEO,SAASS,KACdh0B,KAAKi0B,MACLj0B,KAAKk0B,MACLl0B,KAAKyT,MAAQ,IACf,CAyBO,SAAS0gB,GAAM7rB,EAAU8rB,EAAOC,GACrC,IAAIjqB,EAAI,IAAI4pB,GAEZ,OADA5pB,EAAEkqB,QAAQhsB,EAAU8rB,EAAOC,GACpBjqB,CACT,CAaA,SAASmqB,KACPhB,IAAYD,GAAYG,GAAME,OAASH,GACvCL,GAAQC,GAAU,EAClB,KAdK,WACLO,OACER,GAEF,IADA,IAAkBzD,EAAdtlB,EAAI6oB,GACD7oB,IACAslB,EAAI6D,GAAWnpB,EAAE8pB,QAAU,GAAG9pB,EAAE6pB,MAAMnnB,UAAKpI,EAAWgrB,GAC3DtlB,EAAIA,EAAEqJ,QAEN0f,EACJ,CAMIqB,EACF,CAAE,QACArB,GAAQ,EAWZ,WACE,IAAI3H,EAAmBE,EAAfD,EAAKwH,GAAcoB,EAAOI,IAClC,KAAOhJ,GACDA,EAAGwI,OACDI,EAAO5I,EAAGyI,QAAOG,EAAO5I,EAAGyI,OAC/B1I,EAAKC,EAAIA,EAAKA,EAAGhY,QAEjBiY,EAAKD,EAAGhY,MAAOgY,EAAGhY,MAAQ,KAC1BgY,EAAKD,EAAKA,EAAG/X,MAAQiY,EAAKuH,GAAWvH,GAGzCwH,GAAW1H,EACXkJ,GAAML,EACR,CAvBIM,GACApB,GAAW,CACb,CACF,CAEA,SAASqB,KACP,IAAIjB,EAAMF,GAAME,MAAOS,EAAQT,EAAML,GACjCc,EA7EU,MA6ESZ,IAAaY,EAAOd,GAAYK,EACzD,CAiBA,SAASe,GAAML,GACTlB,KACAC,KAASA,GAAUniB,aAAamiB,KACxBiB,EAAOd,GACP,IACNc,EAAOI,MAAUrB,GAAU/kB,WAAWkmB,GAAMF,EAAOZ,GAAME,MAAQH,KACjEH,KAAUA,GAAWwB,cAAcxB,OAElCA,KAAUC,GAAYG,GAAME,MAAON,GAAWyB,YAAYF,GAvGnD,MAwGZzB,GAAQ,EAAGU,GAASU,KAExB,CC3Ge,YAASjsB,EAAU8rB,EAAOC,GACvC,IAAIjqB,EAAI,IAAI4pB,GAMZ,OALAI,EAAiB,MAATA,EAAgB,GAAKA,EAC7BhqB,EAAEkqB,SAAQS,IACR3qB,EAAE4qB,OACF1sB,EAASysB,EAAUX,EAAM,GACxBA,EAAOC,GACHjqB,CACT,CDgBA4pB,GAAM5yB,UAAY+yB,GAAM/yB,UAAY,CAClCtB,YAAak0B,GACbM,QAAS,SAAShsB,EAAU8rB,EAAOC,GACjC,GAAwB,mBAAb/rB,EAAyB,MAAM,IAAI2sB,UAAU,8BACxDZ,GAAgB,MAARA,EAAeV,MAASU,IAAkB,MAATD,EAAgB,GAAKA,GACzDp0B,KAAKyT,OAASyf,KAAalzB,OAC1BkzB,GAAUA,GAASzf,MAAQzT,KAC1BizB,GAAWjzB,KAChBkzB,GAAWlzB,MAEbA,KAAKi0B,MAAQ3rB,EACbtI,KAAKk0B,MAAQG,EACbK,IACF,EACAM,KAAM,WACAh1B,KAAKi0B,QACPj0B,KAAKi0B,MAAQ,KACbj0B,KAAKk0B,MAAQO,IACbC,KAEJ,GE3CF,IAAIQ,IAAUnpB,EAAAA,EAAAA,GAAS,QAAS,MAAO,SAAU,aAC7CopB,GAAa,GAINC,GAAW,EAGXC,GAAS,EACTC,GAAQ,EAEJ,YAASx2B,EAAMQ,EAAM6e,EAAI3X,EAAOqN,EAAO0hB,GACpD,IAAIC,EAAY12B,EAAK22B,aACrB,GAAKD,GACA,GAAIrX,KAAMqX,EAAW,YADV12B,EAAK22B,aAAe,CAAC,GAmCvC,SAAgB32B,EAAMqf,EAAIuX,GACxB,IACIC,EADAH,EAAY12B,EAAK22B,aAQrB,SAASG,EAASb,GAChBW,EAAKG,MAtDc,EAuDnBH,EAAKvB,MAAMG,QAAQzrB,EAAO6sB,EAAKtB,MAAOsB,EAAKrB,MAGvCqB,EAAKtB,OAASW,GAASlsB,EAAMksB,EAAUW,EAAKtB,MAClD,CAEA,SAASvrB,EAAMksB,GACb,IAAIpwB,EAAGkH,EAAG1E,EAAGuR,EAGb,GAjEmB,IAiEfgd,EAAKG,MAAqB,OAAOb,IAErC,IAAKrwB,KAAK6wB,EAER,IADA9c,EAAI8c,EAAU7wB,IACRrF,OAASo2B,EAAKp2B,KAApB,CAKA,GAxEe,IAwEXoZ,EAAEmd,MAAmB,OAAOzC,GAAQvqB,GAvEzB,IA0EX6P,EAAEmd,OACJnd,EAAEmd,MAAQP,GACV5c,EAAEyb,MAAMa,OACRtc,EAAEpM,GAAGQ,KAAK,YAAahO,EAAMA,EAAK6U,SAAU+E,EAAElS,MAAOkS,EAAE7E,cAChD2hB,EAAU7wB,KAITA,EAAIwZ,IACZzF,EAAEmd,MAAQP,GACV5c,EAAEyb,MAAMa,OACRtc,EAAEpM,GAAGQ,KAAK,SAAUhO,EAAMA,EAAK6U,SAAU+E,EAAElS,MAAOkS,EAAE7E,cAC7C2hB,EAAU7wB,GApBe,CAwCpC,GAZAyuB,IAAQ,WA/FS,IAgGXsC,EAAKG,QACPH,EAAKG,MAhGQ,EAiGbH,EAAKvB,MAAMG,QAAQwB,EAAMJ,EAAKtB,MAAOsB,EAAKrB,MAC1CyB,EAAKf,GAET,IAIAW,EAAKG,MAAQT,GACbM,EAAKppB,GAAGQ,KAAK,QAAShO,EAAMA,EAAK6U,SAAU+hB,EAAKlvB,MAAOkvB,EAAK7hB,OACxD6hB,EAAKG,QAAUT,GAAnB,CAKA,IAJAM,EAAKG,MA5GY,EA+GjBF,EAAQ,IAAI5tB,MAAMZ,EAAIuuB,EAAKC,MAAMxzB,QAC5BwC,EAAI,EAAGkH,GAAK,EAAGlH,EAAIwC,IAAKxC,GACvB+T,EAAIgd,EAAKC,MAAMhxB,GAAG8C,MAAMqF,KAAKhO,EAAMA,EAAK6U,SAAU+hB,EAAKlvB,MAAOkvB,EAAK7hB,UACrE8hB,IAAQ9pB,GAAK6M,GAGjBid,EAAMxzB,OAAS0J,EAAI,CAVgB,CAWrC,CAEA,SAASiqB,EAAKf,GAKZ,IAJA,IAAI3qB,EAAI2qB,EAAUW,EAAKjD,SAAWiD,EAAKK,KAAKjpB,KAAK,KAAMioB,EAAUW,EAAKjD,WAAaiD,EAAKvB,MAAMG,QAAQU,GAAOU,EAAKG,MAAQR,GAAQ,GAC9H1wB,GAAK,EACLwC,EAAIwuB,EAAMxzB,SAELwC,EAAIwC,GACXwuB,EAAMhxB,GAAGmI,KAAKhO,EAAMsL,GAIlBsrB,EAAKG,QAAUR,KACjBK,EAAKppB,GAAGQ,KAAK,MAAOhO,EAAMA,EAAK6U,SAAU+hB,EAAKlvB,MAAOkvB,EAAK7hB,OAC1DmhB,IAEJ,CAEA,SAASA,IAIP,IAAK,IAAIrwB,KAHT+wB,EAAKG,MAAQP,GACbI,EAAKvB,MAAMa,cACJQ,EAAUrX,GACHqX,EAAW,cAClB12B,EAAK22B,YACd,CA9FAD,EAAUrX,GAAMuX,EAChBA,EAAKvB,MAAQA,GAAMyB,EAAU,EAAGF,EAAKrB,KA8FvC,CAtIEhqB,CAAOvL,EAAMqf,EAAI,CACf7e,KAAMA,EACNkH,MAAOA,EACPqN,MAAOA,EACPvH,GACAqpB,MAAOR,GACPd,KAAMkB,EAAOlB,KACbD,MAAOmB,EAAOnB,MACd3B,SAAU8C,EAAO9C,SACjBsD,KAAMR,EAAOQ,KACb5B,MAAO,KACP0B,MAvBiB,GAyBrB,CAEO,SAASG,GAAKl3B,EAAMqf,GACzB,IAAIyX,EAAWzpB,GAAIrN,EAAMqf,GACzB,GAAIyX,EAASC,MA7BM,EA6BW,MAAM,IAAI5pB,MAAM,+BAC9C,OAAO2pB,CACT,CAEO,SAASvpB,GAAIvN,EAAMqf,GACxB,IAAIyX,EAAWzpB,GAAIrN,EAAMqf,GACzB,GAAIyX,EAASC,MAhCM,EAgCW,MAAM,IAAI5pB,MAAM,6BAC9C,OAAO2pB,CACT,CAEO,SAASzpB,GAAIrN,EAAMqf,GACxB,IAAIyX,EAAW92B,EAAK22B,aACpB,IAAKG,KAAcA,EAAWA,EAASzX,IAAM,MAAM,IAAIlS,MAAM,wBAC7D,OAAO2pB,CACT,CC/Ce,YAAS92B,EAAMQ,GAC5B,IACIs2B,EACAjnB,EAEAhK,EAJA6wB,EAAY12B,EAAK22B,aAGjB5iB,GAAQ,EAGZ,GAAK2iB,EAAL,CAIA,IAAK7wB,KAFLrF,EAAe,MAARA,EAAe,KAAOA,EAAO,GAE1Bk2B,GACHI,EAAWJ,EAAU7wB,IAAIrF,OAASA,GACvCqP,EAASinB,EAASC,MAAQT,IAAYQ,EAASC,MAAQR,GACvDO,EAASC,MAAQP,GACjBM,EAASzB,MAAMa,OACfY,EAAStpB,GAAGQ,KAAK6B,EAAS,YAAc,SAAU7P,EAAMA,EAAK6U,SAAUiiB,EAASpvB,MAAOovB,EAAS/hB,cACzF2hB,EAAU7wB,IAL8BkO,GAAQ,EAQrDA,UAAc/T,EAAK22B,YAbD,CAcxB,CCrBA,SAASQ,GAAY9X,EAAI7e,GACvB,IAAI42B,EAAQC,EACZ,OAAO,WACL,IAAIP,EAAWvpB,GAAIrM,KAAMme,GACrBwX,EAAQC,EAASD,MAKrB,GAAIA,IAAUO,EAEZ,IAAK,IAAIvxB,EAAI,EAAGwC,GADhBgvB,EAASD,EAASP,GACSxzB,OAAQwC,EAAIwC,IAAKxC,EAC1C,GAAIwxB,EAAOxxB,GAAGrF,OAASA,EAAM,EAC3B62B,EAASA,EAAO1sB,SACTL,OAAOzE,EAAG,GACjB,KACF,CAIJixB,EAASD,MAAQQ,CACnB,CACF,CAEA,SAASC,GAAcjY,EAAI7e,EAAMmI,GAC/B,IAAIyuB,EAAQC,EACZ,GAAqB,mBAAV1uB,EAAsB,MAAM,IAAIwE,MAC3C,OAAO,WACL,IAAI2pB,EAAWvpB,GAAIrM,KAAMme,GACrBwX,EAAQC,EAASD,MAKrB,GAAIA,IAAUO,EAAQ,CACpBC,GAAUD,EAASP,GAAOlsB,QAC1B,IAAK,IAAIW,EAAI,CAAC9K,KAAMA,EAAMmI,MAAOA,GAAQ9C,EAAI,EAAGwC,EAAIgvB,EAAOh0B,OAAQwC,EAAIwC,IAAKxC,EAC1E,GAAIwxB,EAAOxxB,GAAGrF,OAASA,EAAM,CAC3B62B,EAAOxxB,GAAKyF,EACZ,KACF,CAEEzF,IAAMwC,GAAGgvB,EAAOnuB,KAAKoC,EAC3B,CAEAwrB,EAASD,MAAQQ,CACnB,CACF,CAoBO,SAASE,GAAWC,EAAYh3B,EAAMmI,GAC3C,IAAI0W,EAAKmY,EAAWC,IAOpB,OALAD,EAAW/0B,MAAK,WACd,IAAIq0B,EAAWvpB,GAAIrM,KAAMme,IACxByX,EAASnuB,QAAUmuB,EAASnuB,MAAQ,CAAC,IAAInI,GAAQmI,EAAMwF,MAAMjN,KAAM+D,UACtE,IAEO,SAASjF,GACd,OAAOqN,GAAIrN,EAAMqf,GAAI1W,MAAMnI,EAC7B,CACF,CC7Ee,YAASyJ,EAAGC,GACzB,IAAI1H,EACJ,OAAqB,iBAAN0H,EAAiBwtB,GAC1BxtB,aAAa+f,EAAQ0N,IACpBn1B,EAAIynB,EAAM/f,KAAOA,EAAI1H,EAAGm1B,IACzBC,IAAmB3tB,EAAGC,EAC9B,CCJA,SAAS6L,GAAWvV,GAClB,OAAO,WACLU,KAAK8U,gBAAgBxV,EACvB,CACF,CAEA,SAASyV,GAAavC,GACpB,OAAO,WACLxS,KAAKgV,kBAAkBxC,EAAST,MAAOS,EAASR,MAClD,CACF,CAEA,SAASiD,GAAa3V,EAAMq3B,EAAaC,GACvC,IAAIC,EAEAC,EADAC,EAAUH,EAAS,GAEvB,OAAO,WACL,IAAII,EAAUh3B,KAAK0W,aAAapX,GAChC,OAAO03B,IAAYD,EAAU,KACvBC,IAAYH,EAAWC,EACvBA,EAAeH,EAAYE,EAAWG,EAASJ,EACvD,CACF,CAEA,SAASzhB,GAAe3C,EAAUmkB,EAAaC,GAC7C,IAAIC,EAEAC,EADAC,EAAUH,EAAS,GAEvB,OAAO,WACL,IAAII,EAAUh3B,KAAKsc,eAAe9J,EAAST,MAAOS,EAASR,OAC3D,OAAOglB,IAAYD,EAAU,KACvBC,IAAYH,EAAWC,EACvBA,EAAeH,EAAYE,EAAWG,EAASJ,EACvD,CACF,CAEA,SAASvhB,GAAa/V,EAAMq3B,EAAalvB,GACvC,IAAIovB,EACAI,EACAH,EACJ,OAAO,WACL,IAAIE,EAA+BD,EAAtBH,EAASnvB,EAAMzH,MAC5B,GAAc,MAAV42B,EAGJ,OAFAI,EAAUh3B,KAAK0W,aAAapX,OAC5By3B,EAAUH,EAAS,IACU,KACvBI,IAAYH,GAAYE,IAAYE,EAAWH,GAC9CG,EAAWF,EAASD,EAAeH,EAAYE,EAAWG,EAASJ,IAL1C52B,KAAK8U,gBAAgBxV,EAMvD,CACF,CAEA,SAASgW,GAAe9C,EAAUmkB,EAAalvB,GAC7C,IAAIovB,EACAI,EACAH,EACJ,OAAO,WACL,IAAIE,EAA+BD,EAAtBH,EAASnvB,EAAMzH,MAC5B,GAAc,MAAV42B,EAGJ,OAFAI,EAAUh3B,KAAKsc,eAAe9J,EAAST,MAAOS,EAASR,WACvD+kB,EAAUH,EAAS,IACU,KACvBI,IAAYH,GAAYE,IAAYE,EAAWH,GAC9CG,EAAWF,EAASD,EAAeH,EAAYE,EAAWG,EAASJ,IAL1C52B,KAAKgV,kBAAkBxC,EAAST,MAAOS,EAASR,MAMlF,CACF,CCvDA,SAASklB,GAAY1kB,EAAU/K,GAC7B,IAAI+jB,EAAIrnB,EACR,SAASwxB,IACP,IAAIhxB,EAAI8C,EAAMwF,MAAMjN,KAAM+D,WAE1B,OADIY,IAAMR,IAAIqnB,GAAMrnB,EAAKQ,IAV7B,SAA2B6N,EAAU7N,GACnC,OAAO,SAASyF,GACdpK,KAAKoV,eAAe5C,EAAST,MAAOS,EAASR,MAAOrN,EAAEmI,KAAK9M,KAAMoK,GACnE,CACF,CAMmC+sB,CAAkB3kB,EAAU7N,IACpD6mB,CACT,CAEA,OADAmK,EAAMyB,OAAS3vB,EACRkuB,CACT,CAEA,SAAS0B,GAAU/3B,EAAMmI,GACvB,IAAI+jB,EAAIrnB,EACR,SAASwxB,IACP,IAAIhxB,EAAI8C,EAAMwF,MAAMjN,KAAM+D,WAE1B,OADIY,IAAMR,IAAIqnB,GAAMrnB,EAAKQ,IA3B7B,SAAyBrF,EAAMqF,GAC7B,OAAO,SAASyF,GACdpK,KAAKkV,aAAa5V,EAAMqF,EAAEmI,KAAK9M,KAAMoK,GACvC,CACF,CAuBmCktB,CAAgBh4B,EAAMqF,IAC9C6mB,CACT,CAEA,OADAmK,EAAMyB,OAAS3vB,EACRkuB,CACT,CChCA,SAAS4B,GAAcpZ,EAAI1W,GACzB,OAAO,WACLuuB,GAAKh2B,KAAMme,GAAIiW,OAAS3sB,EAAMwF,MAAMjN,KAAM+D,UAC5C,CACF,CAEA,SAASyzB,GAAcrZ,EAAI1W,GACzB,OAAOA,GAASA,EAAO,WACrBuuB,GAAKh2B,KAAMme,GAAIiW,MAAQ3sB,CACzB,CACF,CCVA,SAASgwB,GAAiBtZ,EAAI1W,GAC5B,OAAO,WACL4E,GAAIrM,KAAMme,GAAIsU,UAAYhrB,EAAMwF,MAAMjN,KAAM+D,UAC9C,CACF,CAEA,SAAS2zB,GAAiBvZ,EAAI1W,GAC5B,OAAOA,GAASA,EAAO,WACrB4E,GAAIrM,KAAMme,GAAIsU,SAAWhrB,CAC3B,CACF,CCVA,IAAImS,GAAY/L,GAAAA,GAAUzM,UAAUtB,YCiBpC,SAAS0V,GAAYlW,GACnB,OAAO,WACLU,KAAKiO,MAAMwH,eAAenW,EAC5B,CACF,CCDA,IAAI6e,GAAK,EAEF,SAASwZ,GAAW9d,EAAQC,EAASxa,EAAM6e,GAChDne,KAAK+Z,QAAUF,EACf7Z,KAAKga,SAAWF,EAChB9Z,KAAK43B,MAAQt4B,EACbU,KAAKu2B,IAAMpY,CACb,CAMO,SAAS0Z,KACd,QAAS1Z,EACX,CAEA,IAAI2Z,GAAsBjqB,GAAAA,GAAUzM,UAEpCu2B,GAAWv2B,UAVI,SAAoB9B,GACjC,OAAOuO,EAAAA,GAAAA,MAAYyoB,WAAWh3B,EAChC,EAQkC8B,UAAY,CAC5CtB,YAAa63B,GACb7pB,OCvCa,SAASA,GACtB,IAAIxO,EAAOU,KAAK43B,MACZzZ,EAAKne,KAAKu2B,IAEQ,mBAAXzoB,IAAuBA,GAAS6E,EAAAA,GAAAA,IAAS7E,IAEpD,IAAK,IAAI+L,EAAS7Z,KAAK+Z,QAAS7P,EAAI2P,EAAO1X,OAAQ8X,EAAY,IAAIlS,MAAMmC,GAAI2B,EAAI,EAAGA,EAAI3B,IAAK2B,EAC3F,IAAK,IAAiF/M,EAAMob,EAAnFrG,EAAQgG,EAAOhO,GAAI1E,EAAI0M,EAAM1R,OAAQgY,EAAWF,EAAUpO,GAAK,IAAI9D,MAAMZ,GAAmBxC,EAAI,EAAGA,EAAIwC,IAAKxC,GAC9G7F,EAAO+U,EAAMlP,MAAQuV,EAAUpM,EAAOhB,KAAKhO,EAAMA,EAAK6U,SAAUhP,EAAGkP,MAClE,aAAc/U,IAAMob,EAAQvG,SAAW7U,EAAK6U,UAChDwG,EAASxV,GAAKuV,EACd0b,GAASzb,EAASxV,GAAIrF,EAAM6e,EAAIxZ,EAAGwV,EAAUhO,GAAIrN,EAAMqf,KAK7D,OAAO,IAAIwZ,GAAW1d,EAAWja,KAAKga,SAAU1a,EAAM6e,EACxD,EDuBE/D,UExCa,SAAStM,GACtB,IAAIxO,EAAOU,KAAK43B,MACZzZ,EAAKne,KAAKu2B,IAEQ,mBAAXzoB,IAAuBA,GAASuM,EAAAA,GAAAA,IAAYvM,IAEvD,IAAK,IAAI+L,EAAS7Z,KAAK+Z,QAAS7P,EAAI2P,EAAO1X,OAAQ8X,EAAY,GAAIH,EAAU,GAAIjO,EAAI,EAAGA,EAAI3B,IAAK2B,EAC/F,IAAK,IAAyC/M,EAArC+U,EAAQgG,EAAOhO,GAAI1E,EAAI0M,EAAM1R,OAAcwC,EAAI,EAAGA,EAAIwC,IAAKxC,EAClE,GAAI7F,EAAO+U,EAAMlP,GAAI,CACnB,IAAK,IAA2DY,EAAvD5G,EAAWmP,EAAOhB,KAAKhO,EAAMA,EAAK6U,SAAUhP,EAAGkP,GAAekkB,EAAU5rB,GAAIrN,EAAMqf,GAAK7Y,EAAI,EAAG2jB,EAAItqB,EAASwD,OAAQmD,EAAI2jB,IAAK3jB,GAC/HC,EAAQ5G,EAAS2G,KACnBswB,GAASrwB,EAAOjG,EAAM6e,EAAI7Y,EAAG3G,EAAUo5B,GAG3C9d,EAAUjS,KAAKrJ,GACfmb,EAAQ9R,KAAKlJ,EACf,CAIJ,OAAO,IAAI64B,GAAW1d,EAAWH,EAASxa,EAAM6e,EAClD,EFoBE7D,YAAawd,GAAoBxd,YACjCG,eAAgBqd,GAAoBrd,eACpC7K,OG5Ca,SAAS2K,GACD,mBAAVA,IAAsBA,GAAQI,EAAAA,GAAAA,IAAQJ,IAEjD,IAAK,IAAIV,EAAS7Z,KAAK+Z,QAAS7P,EAAI2P,EAAO1X,OAAQ8X,EAAY,IAAIlS,MAAMmC,GAAI2B,EAAI,EAAGA,EAAI3B,IAAK2B,EAC3F,IAAK,IAAuE/M,EAAnE+U,EAAQgG,EAAOhO,GAAI1E,EAAI0M,EAAM1R,OAAQgY,EAAWF,EAAUpO,GAAK,GAAUlH,EAAI,EAAGA,EAAIwC,IAAKxC,GAC3F7F,EAAO+U,EAAMlP,KAAO4V,EAAMzN,KAAKhO,EAAMA,EAAK6U,SAAUhP,EAAGkP,IAC1DsG,EAASnS,KAAKlJ,GAKpB,OAAO,IAAI64B,GAAW1d,EAAWja,KAAKga,SAAUha,KAAK43B,MAAO53B,KAAKu2B,IACnE,EHiCEhb,MI9Ca,SAAS+a,GACtB,GAAIA,EAAWC,MAAQv2B,KAAKu2B,IAAK,MAAM,IAAItqB,MAE3C,IAAK,IAAIyP,EAAU1b,KAAK+Z,QAAS4B,EAAU2a,EAAWvc,QAAS6B,EAAKF,EAAQvZ,OAAQ0Z,EAAKF,EAAQxZ,OAAQ+H,EAAIjH,KAAKC,IAAI0Y,EAAIC,GAAKC,EAAS,IAAI/T,MAAM6T,GAAK/P,EAAI,EAAGA,EAAI3B,IAAK2B,EACrK,IAAK,IAAmG/M,EAA/Fid,EAASL,EAAQ7P,GAAImQ,EAASL,EAAQ9P,GAAI1E,EAAI4U,EAAO5Z,OAAQoZ,EAAQO,EAAOjQ,GAAK,IAAI9D,MAAMZ,GAAUxC,EAAI,EAAGA,EAAIwC,IAAKxC,GACxH7F,EAAOid,EAAOpX,IAAMqX,EAAOrX,MAC7B4W,EAAM5W,GAAK7F,GAKjB,KAAO+M,EAAI+P,IAAM/P,EACfiQ,EAAOjQ,GAAK6P,EAAQ7P,GAGtB,OAAO,IAAI8rB,GAAW7b,EAAQ9b,KAAKga,SAAUha,KAAK43B,MAAO53B,KAAKu2B,IAChE,EJ+BE1oB,UF7Ca,WACb,OAAO,IAAI+L,GAAU5Z,KAAK+Z,QAAS/Z,KAAKga,SAC1C,EE4CEsc,WK/Ca,WAKb,IAJA,IAAIh3B,EAAOU,KAAK43B,MACZI,EAAMh4B,KAAKu2B,IACX0B,EAAMJ,KAEDhe,EAAS7Z,KAAK+Z,QAAS7P,EAAI2P,EAAO1X,OAAQ0J,EAAI,EAAGA,EAAI3B,IAAK2B,EACjE,IAAK,IAAyC/M,EAArC+U,EAAQgG,EAAOhO,GAAI1E,EAAI0M,EAAM1R,OAAcwC,EAAI,EAAGA,EAAIwC,IAAKxC,EAClE,GAAI7F,EAAO+U,EAAMlP,GAAI,CACnB,IAAIozB,EAAU5rB,GAAIrN,EAAMk5B,GACxBpC,GAAS92B,EAAMQ,EAAM24B,EAAKtzB,EAAGkP,EAAO,CAClCwgB,KAAM0D,EAAQ1D,KAAO0D,EAAQ3D,MAAQ2D,EAAQtF,SAC7C2B,MAAO,EACP3B,SAAUsF,EAAQtF,SAClBsD,KAAMgC,EAAQhC,MAElB,CAIJ,OAAO,IAAI4B,GAAW9d,EAAQ7Z,KAAKga,SAAU1a,EAAM24B,EACrD,EL4BEnrB,KAAMgrB,GAAoBhrB,KAC1BtL,MAAOs2B,GAAoBt2B,MAC3B1C,KAAMg5B,GAAoBh5B,KAC1BC,KAAM+4B,GAAoB/4B,KAC1B8T,MAAOilB,GAAoBjlB,MAC3BtR,KAAMu2B,GAAoBv2B,KAC1B+K,GMhCa,SAAShN,EAAMsZ,GAC5B,IAAIuF,EAAKne,KAAKu2B,IAEd,OAAOxyB,UAAU5B,OAAS,EACpBgK,GAAInM,KAAKlB,OAAQqf,GAAI7R,GAAGA,GAAGhN,GAC3BU,KAAKuB,KApBb,SAAoB4c,EAAI7e,EAAMsZ,GAC5B,IAAIsf,EAAKC,EAAKC,EAThB,SAAe94B,GACb,OAAQA,EAAO,IAAIoN,OAAOC,MAAM,SAAS0rB,OAAM,SAASjuB,GACtD,IAAIzF,EAAIyF,EAAEwC,QAAQ,KAElB,OADIjI,GAAK,IAAGyF,EAAIA,EAAEX,MAAM,EAAG9E,KACnByF,GAAW,UAANA,CACf,GACF,CAGsBvB,CAAMvJ,GAAQ02B,GAAO3pB,GACzC,OAAO,WACL,IAAIupB,EAAWwC,EAAIp4B,KAAMme,GACrB7R,EAAKspB,EAAStpB,GAKdA,IAAO4rB,IAAMC,GAAOD,EAAM5rB,GAAIjL,QAAQiL,GAAGhN,EAAMsZ,GAEnDgd,EAAStpB,GAAK6rB,CAChB,CACF,CAOkBG,CAAWna,EAAI7e,EAAMsZ,GACvC,EN2BEyD,KNaa,SAAS/c,EAAMmI,GAC5B,IAAI+K,GAAWC,EAAAA,GAAAA,IAAUnT,GAAOqF,EAAiB,cAAb6N,EAA2Bqd,GAAuB8G,GACtF,OAAO32B,KAAKq3B,UAAU/3B,EAAuB,mBAAVmI,GAC5B+K,EAASR,MAAQsD,GAAiBD,IAAc7C,EAAU7N,EAAG0xB,GAAWr2B,KAAM,QAAUV,EAAMmI,IACtF,MAATA,GAAiB+K,EAASR,MAAQ+C,GAAeF,IAAYrC,IAC5DA,EAASR,MAAQmD,GAAiBF,IAAczC,EAAU7N,EAAG8C,GACtE,EMlBE4vB,ULvBa,SAAS/3B,EAAMmI,GAC5B,IAAI0M,EAAM,QAAU7U,EACpB,GAAIyE,UAAU5B,OAAS,EAAG,OAAQgS,EAAMnU,KAAK21B,MAAMxhB,KAASA,EAAIijB,OAChE,GAAa,MAAT3vB,EAAe,OAAOzH,KAAK21B,MAAMxhB,EAAK,MAC1C,GAAqB,mBAAV1M,EAAsB,MAAM,IAAIwE,MAC3C,IAAIuG,GAAWC,EAAAA,GAAAA,IAAUnT,GACzB,OAAOU,KAAK21B,MAAMxhB,GAAM3B,EAASR,MAAQklB,GAAcG,IAAW7kB,EAAU/K,GAC9E,EKiBEwG,MDQa,SAAS3O,EAAMmI,EAAOkO,GACnC,IAAIhR,EAAqB,cAAhBrF,GAAQ,IAAsBuwB,GAAuB8G,GAC9D,OAAgB,MAATlvB,EAAgBzH,KAClBu4B,WAAWj5B,EAjElB,SAAmBA,EAAMq3B,GACvB,IAAIE,EACAI,EACAH,EACJ,OAAO,WACL,IAAIE,GAAU/oB,EAAAA,GAAAA,IAAMjO,KAAMV,GACtBy3B,GAAW/2B,KAAKiO,MAAMwH,eAAenW,IAAO2O,EAAAA,GAAAA,IAAMjO,KAAMV,IAC5D,OAAO03B,IAAYD,EAAU,KACvBC,IAAYH,GAAYE,IAAYE,EAAWH,EAC/CA,EAAeH,EAAYE,EAAWG,EAASC,EAAWF,EAClE,CACF,CAsDwByB,CAAUl5B,EAAMqF,IACjC2H,GAAG,aAAehN,EAAMkW,GAAYlW,IACpB,mBAAVmI,EAAuBzH,KAC7Bu4B,WAAWj5B,EArClB,SAAuBA,EAAMq3B,EAAalvB,GACxC,IAAIovB,EACAI,EACAH,EACJ,OAAO,WACL,IAAIE,GAAU/oB,EAAAA,GAAAA,IAAMjO,KAAMV,GACtBs3B,EAASnvB,EAAMzH,MACf+2B,EAAUH,EAAS,GAEvB,OADc,MAAVA,IAAoC52B,KAAKiO,MAAMwH,eAAenW,GAA9Cy3B,EAAUH,GAA2C3oB,EAAAA,GAAAA,IAAMjO,KAAMV,IAC9E03B,IAAYD,EAAU,KACvBC,IAAYH,GAAYE,IAAYE,EAAWH,GAC9CG,EAAWF,EAASD,EAAeH,EAAYE,EAAWG,EAASJ,GAC5E,CACF,CAwBwB/gB,CAAcvW,EAAMqF,EAAG0xB,GAAWr2B,KAAM,SAAWV,EAAMmI,KAC1ElG,KAvBP,SAA0B4c,EAAI7e,GAC5B,IAAI44B,EAAKC,EAAKM,EAAwDzhB,EAA7C7C,EAAM,SAAW7U,EAAMiO,EAAQ,OAAS4G,EACjE,OAAO,WACL,IAAIyhB,EAAWvpB,GAAIrM,KAAMme,GACrB7R,EAAKspB,EAAStpB,GACdsM,EAAkC,MAAvBgd,EAASnuB,MAAM0M,GAAe6C,IAAWA,EAASxB,GAAYlW,SAASoF,EAKlF4H,IAAO4rB,GAAOO,IAAc7f,IAAWuf,GAAOD,EAAM5rB,GAAIjL,QAAQiL,GAAGiB,EAAOkrB,EAAY7f,GAE1Fgd,EAAStpB,GAAK6rB,CAChB,CACF,CASYO,CAAiB14B,KAAKu2B,IAAKj3B,IACjCU,KACCu4B,WAAWj5B,EApDlB,SAAuBA,EAAMq3B,EAAaC,GACxC,IAAIC,EAEAC,EADAC,EAAUH,EAAS,GAEvB,OAAO,WACL,IAAII,GAAU/oB,EAAAA,GAAAA,IAAMjO,KAAMV,GAC1B,OAAO03B,IAAYD,EAAU,KACvBC,IAAYH,EAAWC,EACvBA,EAAeH,EAAYE,EAAWG,EAASJ,EACvD,CACF,CA0CwBlhB,CAAcpW,EAAMqF,EAAG8C,GAAQkO,GAChDrJ,GAAG,aAAehN,EAAM,KAC/B,EClBEi5B,WO5Ca,SAASj5B,EAAMmI,EAAOkO,GACnC,IAAIxB,EAAM,UAAY7U,GAAQ,IAC9B,GAAIyE,UAAU5B,OAAS,EAAG,OAAQgS,EAAMnU,KAAK21B,MAAMxhB,KAASA,EAAIijB,OAChE,GAAa,MAAT3vB,EAAe,OAAOzH,KAAK21B,MAAMxhB,EAAK,MAC1C,GAAqB,mBAAV1M,EAAsB,MAAM,IAAIwE,MAC3C,OAAOjM,KAAK21B,MAAMxhB,EAhBpB,SAAoB7U,EAAMmI,EAAOkO,GAC/B,IAAIvL,EAAGjG,EACP,SAASwxB,IACP,IAAIhxB,EAAI8C,EAAMwF,MAAMjN,KAAM+D,WAE1B,OADIY,IAAMR,IAAIiG,GAAKjG,EAAKQ,IAV5B,SAA0BrF,EAAMqF,EAAGgR,GACjC,OAAO,SAASvL,GACdpK,KAAKiO,MAAM2H,YAAYtW,EAAMqF,EAAEmI,KAAK9M,KAAMoK,GAAIuL,EAChD,CACF,CAMkCgjB,CAAiBr5B,EAAMqF,EAAGgR,IACjDvL,CACT,CAEA,OADAurB,EAAMyB,OAAS3vB,EACRkuB,CACT,CAOyB4C,CAAWj5B,EAAMmI,EAAmB,MAAZkO,EAAmB,GAAKA,GACzE,EPuCE8G,KQ/Ca,SAAShV,GACtB,OAAOzH,KAAK21B,MAAM,OAAyB,mBAAVluB,EARnC,SAAsBA,GACpB,OAAO,WACL,IAAImvB,EAASnvB,EAAMzH,MACnBA,KAAKqX,YAAwB,MAAVuf,EAAiB,GAAKA,CAC3C,CACF,CAIQrf,CAAa8e,GAAWr2B,KAAM,OAAQyH,IAf9C,SAAsBA,GACpB,OAAO,WACLzH,KAAKqX,YAAc5P,CACrB,CACF,CAYQ6P,CAAsB,MAAT7P,EAAgB,GAAKA,EAAQ,IAClD,ER4CEmxB,US9Ca,SAASnxB,GACtB,IAAI0M,EAAM,OACV,GAAIpQ,UAAU5B,OAAS,EAAG,OAAQgS,EAAMnU,KAAK21B,MAAMxhB,KAASA,EAAIijB,OAChE,GAAa,MAAT3vB,EAAe,OAAOzH,KAAK21B,MAAMxhB,EAAK,MAC1C,GAAqB,mBAAV1M,EAAsB,MAAM,IAAIwE,MAC3C,OAAOjM,KAAK21B,MAAMxhB,EAhBpB,SAAmB1M,GACjB,IAAI+jB,EAAIrnB,EACR,SAASwxB,IACP,IAAIhxB,EAAI8C,EAAMwF,MAAMjN,KAAM+D,WAE1B,OADIY,IAAMR,IAAIqnB,GAAMrnB,EAAKQ,IAV7B,SAAyBA,GACvB,OAAO,SAASyF,GACdpK,KAAKqX,YAAc1S,EAAEmI,KAAK9M,KAAMoK,EAClC,CACF,CAMmCyuB,CAAgBl0B,IACxC6mB,CACT,CAEA,OADAmK,EAAMyB,OAAS3vB,EACRkuB,CACT,CAOyBiD,CAAUnxB,GACnC,ETyCEuP,OUxDa,WACb,OAAOhX,KAAKsM,GAAG,aATjB,SAAwB6R,GACtB,OAAO,WACL,IAAI5a,EAASvD,KAAKmP,WAClB,IAAK,IAAIxK,KAAK3E,KAAKy1B,aAAc,IAAK9wB,IAAMwZ,EAAI,OAC5C5a,GAAQA,EAAO4U,YAAYnY,KACjC,CACF,CAG+B84B,CAAe94B,KAAKu2B,KACnD,EVuDEZ,MRda,SAASr2B,EAAMmI,GAC5B,IAAI0W,EAAKne,KAAKu2B,IAId,GAFAj3B,GAAQ,GAEJyE,UAAU5B,OAAS,EAAG,CAExB,IADA,IACkCiI,EAD9BurB,EAAQxpB,GAAInM,KAAKlB,OAAQqf,GAAIwX,MACxBhxB,EAAI,EAAGwC,EAAIwuB,EAAMxzB,OAAWwC,EAAIwC,IAAKxC,EAC5C,IAAKyF,EAAIurB,EAAMhxB,IAAIrF,OAASA,EAC1B,OAAO8K,EAAE3C,MAGb,OAAO,IACT,CAEA,OAAOzH,KAAKuB,MAAe,MAATkG,EAAgBwuB,GAAcG,IAAejY,EAAI7e,EAAMmI,GAC3E,EQDE2sB,MJpDa,SAAS3sB,GACtB,IAAI0W,EAAKne,KAAKu2B,IAEd,OAAOxyB,UAAU5B,OACXnC,KAAKuB,MAAuB,mBAAVkG,EACd8vB,GACAC,IAAerZ,EAAI1W,IACvB0E,GAAInM,KAAKlB,OAAQqf,GAAIiW,KAC7B,EI6CE3B,SHrDa,SAAShrB,GACtB,IAAI0W,EAAKne,KAAKu2B,IAEd,OAAOxyB,UAAU5B,OACXnC,KAAKuB,MAAuB,mBAAVkG,EACdgwB,GACAC,IAAkBvZ,EAAI1W,IAC1B0E,GAAInM,KAAKlB,OAAQqf,GAAIsU,QAC7B,EG8CEsD,KW3Da,SAAStuB,GACtB,IAAI0W,EAAKne,KAAKu2B,IAEd,OAAOxyB,UAAU5B,OACXnC,KAAKuB,KAXb,SAAsB4c,EAAI1W,GACxB,GAAqB,mBAAVA,EAAsB,MAAM,IAAIwE,MAC3C,OAAO,WACLI,GAAIrM,KAAMme,GAAI4X,KAAOtuB,CACvB,CACF,CAMkBsxB,CAAa5a,EAAI1W,IAC3B0E,GAAInM,KAAKlB,OAAQqf,GAAI4X,IAC7B,EXsDEiD,YY3Da,SAASvxB,GACtB,GAAqB,mBAAVA,EAAsB,MAAM,IAAIwE,MAC3C,OAAOjM,KAAKuB,KAVd,SAAqB4c,EAAI1W,GACvB,OAAO,WACL,IAAI3G,EAAI2G,EAAMwF,MAAMjN,KAAM+D,WAC1B,GAAiB,mBAANjD,EAAkB,MAAM,IAAImL,MACvCI,GAAIrM,KAAMme,GAAI4X,KAAOj1B,CACvB,CACF,CAImBk4B,CAAYh5B,KAAKu2B,IAAK9uB,GACzC,EZyDEmB,IapEa,WACb,IAAIsvB,EAAKC,EAAKprB,EAAO/M,KAAMme,EAAKpR,EAAKwpB,IAAKx3B,EAAOgO,EAAKhO,OACtD,OAAO,IAAIk6B,SAAQ,SAASC,EAASC,GACnC,IAAIC,EAAS,CAAC3xB,MAAO0xB,GACjBvwB,EAAM,CAACnB,MAAO,WAA4B,KAAT1I,GAAYm6B,GAAW,GAE5DnsB,EAAKxL,MAAK,WACR,IAAIq0B,EAAWvpB,GAAIrM,KAAMme,GACrB7R,EAAKspB,EAAStpB,GAKdA,IAAO4rB,KACTC,GAAOD,EAAM5rB,GAAIjL,QACb0I,EAAEqvB,OAAOpxB,KAAKoxB,GAClBjB,EAAIpuB,EAAEsvB,UAAUrxB,KAAKoxB,GACrBjB,EAAIpuB,EAAEnB,IAAIZ,KAAKY,IAGjBgtB,EAAStpB,GAAK6rB,CAChB,IAGa,IAATp5B,GAAYm6B,GAClB,GACF,Eb2CE,CAACjc,OAAOC,UAAW4a,GAAoB7a,OAAOC,YcrE3B,SAASzR,EAAOikB,GAGnC,SAAS4J,EAAOlvB,GACd,OAAOnH,KAAKgoB,IAAI7gB,EAAGslB,EACrB,CAIA,OARAA,GAAKA,EAML4J,EAAOC,SAAW9tB,EAEX6tB,CACT,EAVqB,CAFN,GAcO,SAAS7tB,EAAOikB,GAGpC,SAAS8J,EAAQpvB,GACf,OAAO,EAAInH,KAAKgoB,IAAI,EAAI7gB,EAAGslB,EAC7B,CAIA,OARAA,GAAKA,EAML8J,EAAQD,SAAW9tB,EAEZ+tB,CACT,CAVsB,CAdP,GA0BS,SAAS/tB,EAAOikB,GAGtC,SAAS+J,EAAUrvB,GACjB,QAASA,GAAK,IAAM,EAAInH,KAAKgoB,IAAI7gB,EAAGslB,GAAK,EAAIzsB,KAAKgoB,IAAI,EAAI7gB,EAAGslB,IAAM,CACrE,CAIA,OARAA,GAAKA,EAML+J,EAAUF,SAAW9tB,EAEdguB,CACT,CAVwB,CA1BT,GCANx2B,KAAKmoB,GCCP,SAASsO,GAAKz5B,GACnB,OAA+C,oBAAvCgD,KAAKgoB,IAAI,GAAI,GAAKhrB,GAAK,YACjC,CCHA,IAAI05B,GAAY,QCEZC,IDAiB,SAASnuB,EAAOtB,GAGnC,SAAS0vB,EAAOzvB,GACd,OAAQA,GAAKA,GAAKA,GAAKD,GAAKC,EAAI,GAAKA,EACvC,CAIA,OARAD,GAAKA,EAML0vB,EAAOF,UAAYluB,EAEZouB,CACT,CAVqB,CAUlBF,IAEmB,SAASluB,EAAOtB,GAGpC,SAAS2vB,EAAQ1vB,GACf,QAASA,EAAIA,IAAMA,EAAI,GAAKD,EAAIC,GAAK,CACvC,CAIA,OARAD,GAAKA,EAML2vB,EAAQH,UAAYluB,EAEbquB,CACT,CAVsB,CAUnBH,IAEqB,SAASluB,EAAOtB,GAGtC,SAAS4vB,EAAU3vB,GACjB,QAASA,GAAK,GAAK,EAAIA,EAAIA,IAAMD,EAAI,GAAKC,EAAID,IAAMC,GAAK,GAAKA,IAAMD,EAAI,GAAKC,EAAID,GAAK,GAAK,CAC7F,CAIA,OARAA,GAAKA,EAML4vB,EAAUJ,UAAYluB,EAEfsuB,CACT,CAVwB,CAUrBJ,IClCO,EAAI12B,KAAKmoB,ICGf4O,IDCoB,SAASvuB,EAAO1C,EAAGoI,GACzC,IAAIhH,EAAIlH,KAAKg3B,KAAK,GAAKlxB,EAAI9F,KAAKE,IAAI,EAAG4F,MAAQoI,GAAKyoB,IAEpD,SAASM,EAAU9vB,GACjB,OAAOrB,EAAI2wB,OAAStvB,GAAMnH,KAAKupB,KAAKriB,EAAIC,GAAK+G,EAC/C,CAKA,OAHA+oB,EAAUC,UAAY,SAASpxB,GAAK,OAAO0C,EAAO1C,EAAGoI,EAAIyoB,GAAM,EAC/DM,EAAUE,OAAS,SAASjpB,GAAK,OAAO1F,EAAO1C,EAAGoI,EAAI,EAE/C+oB,CACT,CAXwB,CAHR,EACH,IAeY,SAASzuB,EAAO1C,EAAGoI,GAC1C,IAAIhH,EAAIlH,KAAKg3B,KAAK,GAAKlxB,EAAI9F,KAAKE,IAAI,EAAG4F,MAAQoI,GAAKyoB,IAEpD,SAASS,EAAWjwB,GAClB,OAAO,EAAIrB,EAAI2wB,GAAKtvB,GAAKA,GAAKnH,KAAKupB,KAAKpiB,EAAID,GAAKgH,EACnD,CAKA,OAHAkpB,EAAWF,UAAY,SAASpxB,GAAK,OAAO0C,EAAO1C,EAAGoI,EAAIyoB,GAAM,EAChES,EAAWD,OAAS,SAASjpB,GAAK,OAAO1F,EAAO1C,EAAGoI,EAAI,EAEhDkpB,CACT,CAXyB,CAhBT,EACH,IA4Bc,SAAS5uB,EAAO1C,EAAGoI,GAC5C,IAAIhH,EAAIlH,KAAKg3B,KAAK,GAAKlxB,EAAI9F,KAAKE,IAAI,EAAG4F,MAAQoI,GAAKyoB,IAEpD,SAASU,EAAalwB,GACpB,QAASA,EAAQ,EAAJA,EAAQ,GAAK,EACpBrB,EAAI2wB,IAAMtvB,GAAKnH,KAAKupB,KAAKriB,EAAIC,GAAK+G,GAClC,EAAIpI,EAAI2wB,GAAKtvB,GAAKnH,KAAKupB,KAAKriB,EAAIC,GAAK+G,IAAM,CACnD,CAKA,OAHAmpB,EAAaH,UAAY,SAASpxB,GAAK,OAAO0C,EAAO1C,EAAGoI,EAAIyoB,GAAM,EAClEU,EAAaF,OAAS,SAASjpB,GAAK,OAAO1F,EAAO1C,EAAGoI,EAAI,EAElDmpB,CACT,CAb2B,CA7BX,EACH,ICCO,CAClBjG,KAAM,KACND,MAAO,EACP3B,SAAU,IACVsD,KCDK,SAAoB3rB,GACzB,QAASA,GAAK,IAAM,EAAIA,EAAIA,EAAIA,GAAKA,GAAK,GAAKA,EAAIA,EAAI,GAAK,CAC9D,IDEA,SAAS2tB,GAAQj5B,EAAMqf,GAErB,IADA,IAAIoX,IACKA,EAASz2B,EAAK22B,iBAAmBF,EAASA,EAAOpX,KACxD,KAAMrf,EAAOA,EAAKqQ,YAChB,MAAM,IAAIlD,MAAM,cAAD1H,OAAe4Z,EAAE,eAGpC,OAAOoX,CACT,CEhBA1nB,GAAAA,GAAUzM,UAAUi4B,UCFL,SAAS/5B,GACtB,OAAOU,KAAKuB,MAAK,WACf83B,GAAUr5B,KAAMV,EAClB,GACF,EDDAuO,GAAAA,GAAUzM,UAAUk1B,WFiBL,SAASh3B,GACtB,IAAI6e,EACAoX,EAEAj2B,aAAgBq4B,IAClBxZ,EAAK7e,EAAKi3B,IAAKj3B,EAAOA,EAAKs4B,QAE3BzZ,EAAK0Z,MAAUtC,EAASyE,IAAe3F,KAAOV,KAAOr0B,EAAe,MAARA,EAAe,KAAOA,EAAO,IAG3F,IAAK,IAAIua,EAAS7Z,KAAK+Z,QAAS7P,EAAI2P,EAAO1X,OAAQ0J,EAAI,EAAGA,EAAI3B,IAAK2B,EACjE,IAAK,IAAyC/M,EAArC+U,EAAQgG,EAAOhO,GAAI1E,EAAI0M,EAAM1R,OAAcwC,EAAI,EAAGA,EAAIwC,IAAKxC,GAC9D7F,EAAO+U,EAAMlP,KACfixB,GAAS92B,EAAMQ,EAAM6e,EAAIxZ,EAAGkP,EAAO0hB,GAAUwC,GAAQj5B,EAAMqf,IAKjE,OAAO,IAAIwZ,GAAW9d,EAAQ7Z,KAAKga,SAAU1a,EAAM6e,EACrD,EIzCA,SAAele,GAAK,IAAMA,ECAX,SAASs6B,GAAUnuB,EAAImC,GAKnC,IALqC,YACtCC,EAAW,OACXhF,EAAM,UACNsnB,EAAS,SACT/kB,GACDwC,EACC9P,OAAOmQ,iBAAiB5O,KAAM,CAC5BoM,KAAM,CAAC3E,MAAO2E,EAAMyC,YAAY,EAAMC,cAAc,GACpDN,YAAa,CAAC/G,MAAO+G,EAAaK,YAAY,EAAMC,cAAc,GAClEtF,OAAQ,CAAC/B,MAAO+B,EAAQqF,YAAY,EAAMC,cAAc,GACxDgiB,UAAW,CAACrpB,MAAOqpB,EAAWjiB,YAAY,EAAMC,cAAc,GAC9D/E,EAAG,CAACtC,MAAOsE,IAEf,CCbO,SAASyuB,GAAUl1B,EAAGrF,EAAGC,GAC9BF,KAAKsF,EAAIA,EACTtF,KAAKC,EAAIA,EACTD,KAAKE,EAAIA,CACX,CAEAs6B,GAAUp5B,UAAY,CACpBtB,YAAa06B,GACbjK,MAAO,SAASjrB,GACd,OAAa,IAANA,EAAUtF,KAAO,IAAIw6B,GAAUx6B,KAAKsF,EAAIA,EAAGtF,KAAKC,EAAGD,KAAKE,EACjE,EACAowB,UAAW,SAASrwB,EAAGC,GACrB,OAAa,IAAND,EAAgB,IAANC,EAAUF,KAAO,IAAIw6B,GAAUx6B,KAAKsF,EAAGtF,KAAKC,EAAID,KAAKsF,EAAIrF,EAAGD,KAAKE,EAAIF,KAAKsF,EAAIpF,EACjG,EACA+M,MAAO,SAASwQ,GACd,MAAO,CAACA,EAAM,GAAKzd,KAAKsF,EAAItF,KAAKC,EAAGwd,EAAM,GAAKzd,KAAKsF,EAAItF,KAAKE,EAC/D,EACAu6B,OAAQ,SAASx6B,GACf,OAAOA,EAAID,KAAKsF,EAAItF,KAAKC,CAC3B,EACAy6B,OAAQ,SAASx6B,GACf,OAAOA,EAAIF,KAAKsF,EAAItF,KAAKE,CAC3B,EACAy6B,OAAQ,SAASC,GACf,MAAO,EAAEA,EAAS,GAAK56B,KAAKC,GAAKD,KAAKsF,GAAIs1B,EAAS,GAAK56B,KAAKE,GAAKF,KAAKsF,EACzE,EACAu1B,QAAS,SAAS56B,GAChB,OAAQA,EAAID,KAAKC,GAAKD,KAAKsF,CAC7B,EACAw1B,QAAS,SAAS56B,GAChB,OAAQA,EAAIF,KAAKE,GAAKF,KAAKsF,CAC7B,EACAy1B,SAAU,SAAS96B,GACjB,OAAOA,EAAEoB,OAAO25B,OAAO/6B,EAAEg7B,QAAQt3B,IAAI3D,KAAK66B,QAAS76B,MAAM2D,IAAI1D,EAAE06B,OAAQ16B,GACzE,EACAi7B,SAAU,SAASh7B,GACjB,OAAOA,EAAEmB,OAAO25B,OAAO96B,EAAE+6B,QAAQt3B,IAAI3D,KAAK86B,QAAS96B,MAAM2D,IAAIzD,EAAEy6B,OAAQz6B,GACzE,EACAmd,SAAU,WACR,MAAO,aAAerd,KAAKC,EAAI,IAAMD,KAAKE,EAAI,WAAaF,KAAKsF,EAAI,GACtE,GAGK,IAAI6pB,GAAW,IAAIqL,GAAU,EAAG,EAAG,GC3CnC,SAASltB,GAAcC,GAC5BA,EAAMC,0BACR,CAEe,YAASD,GACtBA,EAAME,iBACNF,EAAMC,0BACR,CCKA,SAASuB,GAAcxB,GACrB,QAASA,EAAMyB,SAA0B,UAAfzB,EAAMnB,MAAsBmB,EAAM0B,OAC9D,CAEA,SAASksB,KACP,IAAIzL,EAAI1vB,KACR,OAAI0vB,aAAa0L,YACf1L,EAAIA,EAAEnS,iBAAmBmS,GACnB2L,aAAa,WAEV,CAAC,EADR3L,EAAIA,EAAE4L,QAAQvK,SACH9wB,EAAGyvB,EAAExvB,GAAI,CAACwvB,EAAEzvB,EAAIyvB,EAAE6L,MAAO7L,EAAExvB,EAAIwvB,EAAEjsB,SAEvC,CAAC,CAAC,EAAG,GAAI,CAACisB,EAAE6L,MAAMxK,QAAQtpB,MAAOioB,EAAEjsB,OAAOstB,QAAQtpB,QAEpD,CAAC,CAAC,EAAG,GAAI,CAACioB,EAAE8L,YAAa9L,EAAE+L,cACpC,CAEA,SAASC,KACP,OAAO17B,KAAK27B,QAAUxM,EACxB,CAEA,SAASyM,GAAkBruB,GACzB,OAAQA,EAAMsuB,QAA8B,IAApBtuB,EAAMuuB,UAAkB,IAAOvuB,EAAMuuB,UAAY,EAAI,OAAUvuB,EAAMyB,QAAU,GAAK,EAC9G,CAEA,SAASK,KACP,OAAOC,UAAUC,gBAAmB,iBAAkBvP,IACxD,CAEA,SAAS+7B,GAAiBjL,EAAWkL,EAAQC,GAC3C,IAAIC,EAAMpL,EAAU+J,QAAQmB,EAAO,GAAG,IAAMC,EAAgB,GAAG,GAC3DE,EAAMrL,EAAU+J,QAAQmB,EAAO,GAAG,IAAMC,EAAgB,GAAG,GAC3DG,EAAMtL,EAAUgK,QAAQkB,EAAO,GAAG,IAAMC,EAAgB,GAAG,GAC3DI,EAAMvL,EAAUgK,QAAQkB,EAAO,GAAG,IAAMC,EAAgB,GAAG,GAC/D,OAAOnL,EAAUR,UACf6L,EAAMD,GAAOA,EAAMC,GAAO,EAAIl5B,KAAKC,IAAI,EAAGg5B,IAAQj5B,KAAKE,IAAI,EAAGg5B,GAC9DE,EAAMD,GAAOA,EAAMC,GAAO,EAAIp5B,KAAKC,IAAI,EAAGk5B,IAAQn5B,KAAKE,IAAI,EAAGk5B,GAElE,CAEe,cACb,IAUIC,EACAC,EACA5sB,EAZAC,EAASb,GACTitB,EAASb,GACTqB,EAAYT,GACZU,EAAab,GACb9rB,EAAYT,GACZqtB,EAAc,CAAC,EAAGjI,KAClBwH,EAAkB,CAAC,EAAExH,KAAWA,KAAW,CAACA,IAAUA,MACtDhC,EAAW,IACXkE,EAAcgG,GACd3sB,GAAYjE,EAAAA,EAAAA,GAAS,QAAS,OAAQ,OAMtCkE,EAAiB,EACjB2sB,EAAc,GAElB,SAASrL,EAAK1jB,GACZA,EACK0O,SAAS,SAAUmf,IACnBpvB,GAAG,aAAcuwB,EAAS,CAAC1vB,SAAS,IACpCb,GAAG,iBAAkB6D,GACrB7D,GAAG,gBAAiBwwB,GACtBltB,OAAOE,GACLxD,GAAG,kBAAmB8D,GACtB9D,GAAG,iBAAkB+D,GACrB/D,GAAG,iCAAkCgE,GACrCrC,MAAM,8BAA+B,gBAC5C,CA0DA,SAASsiB,EAAMO,EAAWxrB,GAExB,OADAA,EAAIrC,KAAKE,IAAIu5B,EAAY,GAAIz5B,KAAKC,IAAIw5B,EAAY,GAAIp3B,OACzCwrB,EAAUxrB,EAAIwrB,EAAY,IAAI0J,GAAUl1B,EAAGwrB,EAAU7wB,EAAG6wB,EAAU5wB,EACjF,CAEA,SAASowB,EAAUQ,EAAWzf,EAAImgB,GAChC,IAAIvxB,EAAIoR,EAAG,GAAKmgB,EAAG,GAAKV,EAAUxrB,EAAGpF,EAAImR,EAAG,GAAKmgB,EAAG,GAAKV,EAAUxrB,EACnE,OAAOrF,IAAM6wB,EAAU7wB,GAAKC,IAAM4wB,EAAU5wB,EAAI4wB,EAAY,IAAI0J,GAAU1J,EAAUxrB,EAAGrF,EAAGC,EAC5F,CAEA,SAAS68B,EAASf,GAChB,MAAO,GAAGA,EAAO,GAAG,KAAMA,EAAO,GAAG,IAAM,IAAKA,EAAO,GAAG,KAAMA,EAAO,GAAG,IAAM,EACjF,CAEA,SAASpG,EAASU,EAAYxF,EAAWrT,EAAOlQ,GAC9C+oB,EACKhqB,GAAG,cAAc,WAAaiE,EAAQvQ,KAAM+D,WAAWwJ,MAAMA,GAAO1E,OAAS,IAC7EyD,GAAG,2BAA2B,WAAaiE,EAAQvQ,KAAM+D,WAAWwJ,MAAMA,GAAO3E,KAAO,IACxF+sB,MAAM,QAAQ,WACb,IAAI5oB,EAAO/M,KACPgN,EAAOjJ,UACP2lB,EAAInZ,EAAQxD,EAAMC,GAAMO,MAAMA,GAC9BmiB,EAAIsM,EAAO/uB,MAAMF,EAAMC,GACvBmE,EAAa,MAATsM,EAAgBsf,EAASrN,GAAsB,mBAAVjS,EAAuBA,EAAMxQ,MAAMF,EAAMC,GAAQyQ,EAC1FhZ,EAAIxB,KAAKE,IAAIusB,EAAE,GAAG,GAAKA,EAAE,GAAG,GAAIA,EAAE,GAAG,GAAKA,EAAE,GAAG,IAC/C3mB,EAAIgE,EAAK4uB,OACT3yB,EAAyB,mBAAd8nB,EAA2BA,EAAU7jB,MAAMF,EAAMC,GAAQ8jB,EACpEnsB,EAAIgyB,EAAY5tB,EAAE4xB,OAAOxpB,GAAG5M,OAAOE,EAAIsE,EAAEzD,GAAI0D,EAAE2xB,OAAOxpB,GAAG5M,OAAOE,EAAIuE,EAAE1D,IAC1E,OAAO,SAAS8E,GACd,GAAU,IAANA,EAASA,EAAIpB,MACZ,CAAE,IAAIigB,EAAItkB,EAAEyF,GAAI9E,EAAIb,EAAIwkB,EAAE,GAAI7e,EAAI,IAAIowB,GAAUl1B,EAAG6L,EAAE,GAAK8X,EAAE,GAAK3jB,EAAG6L,EAAE,GAAK8X,EAAE,GAAK3jB,EAAI,CAC3FokB,EAAE6H,KAAK,KAAMnnB,EACf,CACF,GACN,CAEA,SAASmG,EAAQxD,EAAMC,EAAMgwB,GAC3B,OAASA,GAASjwB,EAAKkwB,WAAc,IAAIC,EAAQnwB,EAAMC,EACzD,CAEA,SAASkwB,EAAQnwB,EAAMC,GACrBhN,KAAK+M,KAAOA,EACZ/M,KAAKgN,KAAOA,EACZhN,KAAK2O,OAAS,EACd3O,KAAKwO,YAAc,KACnBxO,KAAKg8B,OAASA,EAAO/uB,MAAMF,EAAMC,GACjChN,KAAKm9B,KAAO,CACd,CA8CA,SAASN,EAAQtvB,GAAgB,QAAA6vB,EAAAr5B,UAAA5B,OAAN6K,EAAI,IAAAjF,MAAAq1B,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJrwB,EAAIqwB,EAAA,GAAAt5B,UAAAs5B,GAC7B,GAAKztB,EAAO3C,MAAMjN,KAAM+D,WAAxB,CACA,IAAI2lB,EAAInZ,EAAQvQ,KAAMgN,GAAMO,MAAMA,GAC9BnD,EAAIpK,KAAK27B,OACTr2B,EAAIrC,KAAKE,IAAIu5B,EAAY,GAAIz5B,KAAKC,IAAIw5B,EAAY,GAAItyB,EAAE9E,EAAIrC,KAAKgoB,IAAI,EAAGwR,EAAWxvB,MAAMjN,KAAM+D,cAC/FoN,GAAIC,EAAAA,GAAAA,IAAQ7D,GAIhB,GAAImc,EAAE4T,MACA5T,EAAE5Y,MAAM,GAAG,KAAOK,EAAE,IAAMuY,EAAE5Y,MAAM,GAAG,KAAOK,EAAE,KAChDuY,EAAE5Y,MAAM,GAAK1G,EAAEuwB,OAAOjR,EAAE5Y,MAAM,GAAKK,IAErCF,aAAayY,EAAE4T,WAIZ,IAAIlzB,EAAE9E,IAAMA,EAAG,OAIlBokB,EAAE5Y,MAAQ,CAACK,EAAG/G,EAAEuwB,OAAOxpB,IACvBkoB,GAAUr5B,MACV0pB,EAAE7gB,OACJ,CAEAkF,GAAQR,GACRmc,EAAE4T,MAAQjvB,YAGV,WACEqb,EAAE4T,MAAQ,KACV5T,EAAE9gB,KACJ,GAvMe,KAkMf8gB,EAAE6H,KAAK,QAASiL,EAAUlM,EAAUC,EAAMnmB,EAAG9E,GAAIokB,EAAE5Y,MAAM,GAAI4Y,EAAE5Y,MAAM,IAAK4Y,EAAEsS,OAAQC,GA3B1C,CAiC5C,CAEA,SAAS9rB,EAAY5C,GAAgB,QAAAgwB,EAAAx5B,UAAA5B,OAAN6K,EAAI,IAAAjF,MAAAw1B,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJxwB,EAAIwwB,EAAA,GAAAz5B,UAAAy5B,GACjC,IAAI7tB,GAAgBC,EAAO3C,MAAMjN,KAAM+D,WAAvC,CACA,IAAIuZ,EAAgB/P,EAAM+P,cACtBoM,EAAInZ,EAAQvQ,KAAMgN,GAAM,GAAMO,MAAMA,GACpCzM,GAAIgN,EAAAA,GAAAA,IAAOP,EAAMG,MAAMpB,GAAG,kBAW9B,SAAoBiB,GAElB,GADAQ,GAAQR,IACHmc,EAAE+T,MAAO,CACZ,IAAI7yB,EAAK2C,EAAMqD,QAAUlH,EAAImB,EAAK0C,EAAMsD,QAAUlH,EAClD+f,EAAE+T,MAAQ7yB,EAAKA,EAAKC,EAAKA,EAAKoF,CAChC,CACAyZ,EAAEnc,MAAMA,GACNgkB,KAAK,QAASiL,EAAUlM,EAAU5G,EAAE3c,KAAK4uB,OAAQjS,EAAE5Y,MAAM,IAAKM,EAAAA,GAAAA,IAAQ7D,EAAO+P,GAAgBoM,EAAE5Y,MAAM,IAAK4Y,EAAEsS,OAAQC,GACxH,IAnB4D,GAAM3vB,GAAG,gBAqBrE,SAAoBiB,GAClBzM,EAAEwL,GAAG,8BAA+B,OACpCoxB,EAAAA,EAAAA,IAAWnwB,EAAMG,KAAMgc,EAAE+T,OACzB1vB,GAAQR,GACRmc,EAAEnc,MAAMA,GAAO3E,KACjB,IA1BiG,GAC7FuI,GAAIC,EAAAA,GAAAA,IAAQ7D,EAAO+P,GACnB5T,EAAK6D,EAAMqD,QACXjH,EAAK4D,EAAMsD,SAEf8sB,EAAAA,EAAAA,IAAYpwB,EAAMG,MAClBJ,GAAcC,GACdmc,EAAE5Y,MAAQ,CAACK,EAAGnR,KAAK27B,OAAOhB,OAAOxpB,IACjCkoB,GAAUr5B,MACV0pB,EAAE7gB,OAZuD,CA8B3D,CAEA,SAASi0B,EAAWvvB,GAAgB,QAAAqwB,EAAA75B,UAAA5B,OAAN6K,EAAI,IAAAjF,MAAA61B,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ7wB,EAAI6wB,EAAA,GAAA95B,UAAA85B,GAChC,GAAKjuB,EAAO3C,MAAMjN,KAAM+D,WAAxB,CACA,IAAIynB,EAAKxrB,KAAK27B,OACVtqB,GAAKD,EAAAA,GAAAA,IAAQ7D,EAAMyD,eAAiBzD,EAAMyD,eAAe,GAAKzD,EAAOvN,MACrEwxB,EAAKhG,EAAGmP,OAAOtpB,GACfysB,EAAKtS,EAAGlmB,GAAKiI,EAAMwwB,SAAW,GAAM,GACpCtS,EAAK+Q,EAAUlM,EAAUC,EAAM/E,EAAIsS,GAAKzsB,EAAImgB,GAAKwK,EAAO/uB,MAAMjN,KAAMgN,GAAOivB,GAE/EluB,GAAQR,GACJklB,EAAW,GAAG3kB,EAAAA,GAAAA,IAAO9N,MAAMs2B,aAAa7D,SAASA,GAAU3lB,KAAK8oB,EAAUnK,EAAIpa,EAAI9D,IACjFO,EAAAA,GAAAA,IAAO9N,MAAM8M,KAAKykB,EAAKT,UAAWrF,EAAIpa,EAAI9D,EATL,CAU5C,CAEA,SAAS6C,EAAa7C,GAAgB,QAAAywB,EAAAj6B,UAAA5B,OAAN6K,EAAI,IAAAjF,MAAAi2B,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJjxB,EAAIixB,EAAA,GAAAl6B,UAAAk6B,GAClC,GAAKruB,EAAO3C,MAAMjN,KAAM+D,WAAxB,CACA,IAGIm6B,EAASv5B,EAAGyF,EAAG+G,EAHfJ,EAAUxD,EAAMwD,QAChB5J,EAAI4J,EAAQ5O,OACZunB,EAAInZ,EAAQvQ,KAAMgN,EAAMO,EAAMyD,eAAe7O,SAAWgF,GAAGoG,MAAMA,GAIrE,IADAD,GAAcC,GACT5I,EAAI,EAAGA,EAAIwC,IAAKxC,EACnByF,EAAI2G,EAAQpM,GACZwM,EAAI,CADYA,GAAIC,EAAAA,GAAAA,IAAQhH,EAAGpK,MACvBA,KAAK27B,OAAOhB,OAAOxpB,GAAI/G,EAAEsE,YAC5Bgb,EAAEyU,OACGzU,EAAE0U,QAAU1U,EAAEyU,OAAO,KAAOhtB,EAAE,KAAIuY,EAAE0U,OAASjtB,EAAGuY,EAAEyT,KAAO,IADpDzT,EAAEyU,OAAShtB,EAAG+sB,GAAU,EAAMxU,EAAEyT,KAAO,IAAMb,GAI1DA,IAAeA,EAAgBrrB,aAAaqrB,IAE5C4B,IACExU,EAAEyT,KAAO,IAAGZ,EAAaprB,EAAE,GAAImrB,EAAgBjuB,YAAW,WAAaiuB,EAAgB,IAAM,GA3QpF,MA4QbjD,GAAUr5B,MACV0pB,EAAE7gB,QAnBsC,CAqB5C,CAEA,SAASwH,EAAW9C,GAClB,GAAKvN,KAAKi9B,UAAV,CAA4B,QAAAoB,EAAAt6B,UAAA5B,OADA6K,EAAI,IAAAjF,MAAAs2B,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJtxB,EAAIsxB,EAAA,GAAAv6B,UAAAu6B,GAEhC,IAEwB35B,EAAGyF,EAAG+G,EAAG8X,EAF7BS,EAAInZ,EAAQvQ,KAAMgN,GAAMO,MAAMA,GAC9BwD,EAAUxD,EAAMyD,eAChB7J,EAAI4J,EAAQ5O,OAGhB,IADA4L,GAAQR,GACH5I,EAAI,EAAGA,EAAIwC,IAAKxC,EACnByF,EAAI2G,EAAQpM,GAAIwM,GAAIC,EAAAA,GAAAA,IAAQhH,EAAGpK,MAC3B0pB,EAAEyU,QAAUzU,EAAEyU,OAAO,KAAO/zB,EAAEsE,WAAYgb,EAAEyU,OAAO,GAAKhtB,EACnDuY,EAAE0U,QAAU1U,EAAE0U,OAAO,KAAOh0B,EAAEsE,aAAYgb,EAAE0U,OAAO,GAAKjtB,GAGnE,GADA/G,EAAIsf,EAAE3c,KAAK4uB,OACPjS,EAAE0U,OAAQ,CACZ,IAAI/sB,EAAKqY,EAAEyU,OAAO,GAAII,EAAK7U,EAAEyU,OAAO,GAChC3M,EAAK9H,EAAE0U,OAAO,GAAII,EAAK9U,EAAE0U,OAAO,GAChCK,GAAMA,EAAKjN,EAAG,GAAKngB,EAAG,IAAMotB,GAAMA,EAAKjN,EAAG,GAAKngB,EAAG,IAAMotB,EACxDC,GAAMA,EAAKF,EAAG,GAAKD,EAAG,IAAMG,GAAMA,EAAKF,EAAG,GAAKD,EAAG,IAAMG,EAC5Dt0B,EAAImmB,EAAMnmB,EAAGnH,KAAKsH,KAAKk0B,EAAKC,IAC5BvtB,EAAI,EAAEE,EAAG,GAAKmgB,EAAG,IAAM,GAAIngB,EAAG,GAAKmgB,EAAG,IAAM,GAC5CvI,EAAI,EAAEsV,EAAG,GAAKC,EAAG,IAAM,GAAID,EAAG,GAAKC,EAAG,IAAM,EAC9C,KACK,KAAI9U,EAAEyU,OACN,OADchtB,EAAIuY,EAAEyU,OAAO,GAAIlV,EAAIS,EAAEyU,OAAO,EACtC,CAEXzU,EAAE6H,KAAK,QAASiL,EAAUlM,EAAUlmB,EAAG+G,EAAG8X,GAAIS,EAAEsS,OAAQC,GAxB7B,CAyB7B,CAEA,SAAS3rB,EAAW/C,GAAgB,QAAAoxB,EAAA56B,UAAA5B,OAAN6K,EAAI,IAAAjF,MAAA42B,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ5xB,EAAI4xB,EAAA,GAAA76B,UAAA66B,GAChC,GAAK5+B,KAAKi9B,UAAV,CACA,IAEwBt4B,EAAGyF,EAFvBsf,EAAInZ,EAAQvQ,KAAMgN,GAAMO,MAAMA,GAC9BwD,EAAUxD,EAAMyD,eAChB7J,EAAI4J,EAAQ5O,OAKhB,IAHAmL,GAAcC,GACVoC,GAAasB,aAAatB,GAC9BA,EAActB,YAAW,WAAasB,EAAc,IAAM,GArT3C,KAsTVhL,EAAI,EAAGA,EAAIwC,IAAKxC,EACnByF,EAAI2G,EAAQpM,GACR+kB,EAAEyU,QAAUzU,EAAEyU,OAAO,KAAO/zB,EAAEsE,kBAAmBgb,EAAEyU,OAC9CzU,EAAE0U,QAAU1U,EAAE0U,OAAO,KAAOh0B,EAAEsE,mBAAmBgb,EAAE0U,OAG9D,GADI1U,EAAE0U,SAAW1U,EAAEyU,SAAQzU,EAAEyU,OAASzU,EAAE0U,cAAe1U,EAAE0U,QACrD1U,EAAEyU,OAAQzU,EAAEyU,OAAO,GAAKn+B,KAAK27B,OAAOhB,OAAOjR,EAAEyU,OAAO,SAItD,GAFAzU,EAAE9gB,MAEa,IAAX8gB,EAAEyT,OACJ/yB,GAAIgH,EAAAA,GAAAA,IAAQhH,EAAGpK,MACXiD,KAAK47B,MAAMtC,EAAW,GAAKnyB,EAAE,GAAImyB,EAAW,GAAKnyB,EAAE,IAAMwyB,GAAa,CACxE,IAAIzrB,GAAIrD,EAAAA,GAAAA,IAAO9N,MAAMsM,GAAG,iBACpB6E,GAAGA,EAAElE,MAAMjN,KAAM+D,UACvB,CAvBuB,CA0B7B,CAmDA,OAzWAwtB,EAAKT,UAAY,SAASgO,EAAYhO,EAAWrT,EAAOlQ,GACtD,IAAIM,EAAYixB,EAAWjxB,UAAYixB,EAAWjxB,YAAcixB,EAChEjxB,EAAU0O,SAAS,SAAUmf,IACzBoD,IAAejxB,EACjB+nB,EAASkJ,EAAYhO,EAAWrT,EAAOlQ,GAEvCM,EAAUwrB,YAAY93B,MAAK,WACzBgP,EAAQvQ,KAAM+D,WACXwJ,MAAMA,GACN1E,QACA0oB,KAAK,KAA2B,mBAAdT,EAA2BA,EAAU7jB,MAAMjN,KAAM+D,WAAa+sB,GAChFloB,KACL,GAEJ,EAEA2oB,EAAKwN,QAAU,SAASlxB,EAAWvI,EAAG6L,EAAG5D,GACvCgkB,EAAKyN,QAAQnxB,GAAW,WAGtB,OAFS7N,KAAK27B,OAAOr2B,GACC,mBAANA,EAAmBA,EAAE2H,MAAMjN,KAAM+D,WAAauB,EAEhE,GAAG6L,EAAG5D,EACR,EAEAgkB,EAAKyN,QAAU,SAASnxB,EAAWvI,EAAG6L,EAAG5D,GACvCgkB,EAAKT,UAAUjjB,GAAW,WACxB,IAAI6hB,EAAIsM,EAAO/uB,MAAMjN,KAAM+D,WACvBynB,EAAKxrB,KAAK27B,OACVtqB,EAAU,MAALF,EAAY4rB,EAASrN,GAAkB,mBAANve,EAAmBA,EAAElE,MAAMjN,KAAM+D,WAAaoN,EACpFqgB,EAAKhG,EAAGmP,OAAOtpB,GACfysB,EAAkB,mBAANx4B,EAAmBA,EAAE2H,MAAMjN,KAAM+D,WAAauB,EAC9D,OAAOk3B,EAAUlM,EAAUC,EAAM/E,EAAIsS,GAAKzsB,EAAImgB,GAAK9B,EAAGuM,EACxD,GAAG9qB,EAAG5D,EACR,EAEAgkB,EAAK0N,YAAc,SAASpxB,EAAW5N,EAAGC,EAAGqN,GAC3CgkB,EAAKT,UAAUjjB,GAAW,WACxB,OAAO2uB,EAAUx8B,KAAK27B,OAAOrL,UACd,mBAANrwB,EAAmBA,EAAEgN,MAAMjN,KAAM+D,WAAa9D,EACxC,mBAANC,EAAmBA,EAAE+M,MAAMjN,KAAM+D,WAAa7D,GACpD87B,EAAO/uB,MAAMjN,KAAM+D,WAAYk4B,EACpC,GAAG,KAAM1uB,EACX,EAEAgkB,EAAK2N,YAAc,SAASrxB,EAAW5N,EAAGC,EAAGiR,EAAG5D,GAC9CgkB,EAAKT,UAAUjjB,GAAW,WACxB,IAAI6hB,EAAIsM,EAAO/uB,MAAMjN,KAAM+D,WACvBqG,EAAIpK,KAAK27B,OACTtqB,EAAU,MAALF,EAAY4rB,EAASrN,GAAkB,mBAANve,EAAmBA,EAAElE,MAAMjN,KAAM+D,WAAaoN,EACxF,OAAOqrB,EAAUrN,GAASmB,UAAUjf,EAAG,GAAIA,EAAG,IAAIkf,MAAMnmB,EAAE9E,GAAGgrB,UAC9C,mBAANrwB,GAAoBA,EAAEgN,MAAMjN,KAAM+D,YAAc9D,EAC1C,mBAANC,GAAoBA,EAAE+M,MAAMjN,KAAM+D,YAAc7D,GACtDwvB,EAAGuM,EACR,GAAG9qB,EAAG5D,EACR,EAmDA2vB,EAAQ97B,UAAY,CAClBmM,MAAO,SAASA,GAEd,OADIA,IAAOvN,KAAKwO,YAAcjB,GACvBvN,IACT,EACA6I,MAAO,WAKL,OAJsB,KAAhB7I,KAAK2O,SACT3O,KAAK+M,KAAKkwB,UAAYj9B,KACtBA,KAAKm/B,KAAK,UAELn/B,IACT,EACAuxB,KAAM,SAASpd,EAAK2c,GAMlB,OALI9wB,KAAK8Q,OAAiB,UAARqD,IAAiBnU,KAAK8Q,MAAM,GAAKggB,EAAU6J,OAAO36B,KAAK8Q,MAAM,KAC3E9Q,KAAKm+B,QAAkB,UAARhqB,IAAiBnU,KAAKm+B,OAAO,GAAKrN,EAAU6J,OAAO36B,KAAKm+B,OAAO,KAC9En+B,KAAKo+B,QAAkB,UAARjqB,IAAiBnU,KAAKo+B,OAAO,GAAKtN,EAAU6J,OAAO36B,KAAKo+B,OAAO,KAClFp+B,KAAK+M,KAAK4uB,OAAS7K,EACnB9wB,KAAKm/B,KAAK,QACHn/B,IACT,EACA4I,IAAK,WAKH,OAJsB,KAAhB5I,KAAK2O,gBACF3O,KAAK+M,KAAKkwB,UACjBj9B,KAAKm/B,KAAK,QAELn/B,IACT,EACAm/B,KAAM,SAAS/yB,GACb,IAAIjE,GAAI2F,EAAAA,GAAAA,IAAO9N,KAAK+M,MAAMyG,QAC1BxD,EAAUlD,KACRV,EACApM,KAAK+M,KACL,IAAIwtB,GAAUnuB,EAAM,CAClBoC,YAAaxO,KAAKwO,YAClBhF,OAAQ+nB,EACRnlB,OACA0kB,UAAW9wB,KAAK+M,KAAK4uB,OACrB5vB,SAAUiE,IAEZ7H,EAEJ,GAsKFopB,EAAKkL,WAAa,SAAS1yB,GACzB,OAAOhG,UAAU5B,QAAUs6B,EAA0B,mBAAN1yB,EAAmBA,EAAIuH,IAAUvH,GAAIwnB,GAAQkL,CAC9F,EAEAlL,EAAK3hB,OAAS,SAAS7F,GACrB,OAAOhG,UAAU5B,QAAUyN,EAAsB,mBAAN7F,EAAmBA,EAAIuH,KAAWvH,GAAIwnB,GAAQ3hB,CAC3F,EAEA2hB,EAAKzhB,UAAY,SAAS/F,GACxB,OAAOhG,UAAU5B,QAAU2N,EAAyB,mBAAN/F,EAAmBA,EAAIuH,KAAWvH,GAAIwnB,GAAQzhB,CAC9F,EAEAyhB,EAAKyK,OAAS,SAASjyB,GACrB,OAAOhG,UAAU5B,QAAU65B,EAAsB,mBAANjyB,EAAmBA,EAAIuH,GAAS,CAAC,EAAEvH,EAAE,GAAG,IAAKA,EAAE,GAAG,IAAK,EAAEA,EAAE,GAAG,IAAKA,EAAE,GAAG,MAAOwnB,GAAQyK,CACpI,EAEAzK,EAAKmL,YAAc,SAAS3yB,GAC1B,OAAOhG,UAAU5B,QAAUu6B,EAAY,IAAM3yB,EAAE,GAAI2yB,EAAY,IAAM3yB,EAAE,GAAIwnB,GAAQ,CAACmL,EAAY,GAAIA,EAAY,GAClH,EAEAnL,EAAK0K,gBAAkB,SAASlyB,GAC9B,OAAOhG,UAAU5B,QAAU85B,EAAgB,GAAG,IAAMlyB,EAAE,GAAG,GAAIkyB,EAAgB,GAAG,IAAMlyB,EAAE,GAAG,GAAIkyB,EAAgB,GAAG,IAAMlyB,EAAE,GAAG,GAAIkyB,EAAgB,GAAG,IAAMlyB,EAAE,GAAG,GAAIwnB,GAAQ,CAAC,CAAC0K,EAAgB,GAAG,GAAIA,EAAgB,GAAG,IAAK,CAACA,EAAgB,GAAG,GAAIA,EAAgB,GAAG,IACzQ,EAEA1K,EAAKiL,UAAY,SAASzyB,GACxB,OAAOhG,UAAU5B,QAAUq6B,EAAYzyB,EAAGwnB,GAAQiL,CACpD,EAEAjL,EAAKkB,SAAW,SAAS1oB,GACvB,OAAOhG,UAAU5B,QAAUswB,GAAY1oB,EAAGwnB,GAAQkB,CACpD,EAEAlB,EAAKoF,YAAc,SAAS5sB,GAC1B,OAAOhG,UAAU5B,QAAUw0B,EAAc5sB,EAAGwnB,GAAQoF,CACtD,EAEApF,EAAKjlB,GAAK,WACR,IAAI7E,EAAQuI,EAAU1D,GAAGW,MAAM+C,EAAWjM,WAC1C,OAAO0D,IAAUuI,EAAYuhB,EAAO9pB,CACtC,EAEA8pB,EAAKhgB,cAAgB,SAASxH,GAC5B,OAAOhG,UAAU5B,QAAU8N,GAAkBlG,GAAKA,GAAKA,EAAGwnB,GAAQtuB,KAAKsH,KAAK0F,EAC9E,EAEAshB,EAAKqL,YAAc,SAAS7yB,GAC1B,OAAOhG,UAAU5B,QAAUy6B,GAAe7yB,EAAGwnB,GAAQqL,CACvD,EAEOrL,CACT,CFjZsBiJ,GAAUp5B,S","sources":["../node_modules/d3-flextree/src/flextree.js","../node_modules/d3-hierarchy/src/hierarchy/count.js","../node_modules/d3-hierarchy/src/hierarchy/index.js","../node_modules/d3-hierarchy/src/hierarchy/each.js","../node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","../node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","../node_modules/d3-hierarchy/src/hierarchy/sum.js","../node_modules/d3-hierarchy/src/hierarchy/sort.js","../node_modules/d3-hierarchy/src/hierarchy/path.js","../node_modules/d3-hierarchy/src/hierarchy/ancestors.js","../node_modules/d3-hierarchy/src/hierarchy/descendants.js","../node_modules/d3-hierarchy/src/hierarchy/leaves.js","../node_modules/d3-hierarchy/src/hierarchy/links.js","../node_modules/d3-hierarchy/src/array.js","../node_modules/d3-hierarchy/src/treemap/dice.js","../node_modules/d3-hierarchy/src/tree.js","../node_modules/d3-hierarchy/src/treemap/slice.js","../node_modules/d3-hierarchy/src/treemap/squarify.js","../node_modules/d3-hierarchy/src/treemap/resquarify.js","../node_modules/d3-dispatch/src/dispatch.js","../node_modules/d3-drag/src/noevent.js","../node_modules/d3-drag/src/nodrag.js","../node_modules/d3-drag/src/constant.js","../node_modules/d3-drag/src/event.js","../node_modules/d3-drag/src/drag.js","../node_modules/d3-selection/src/namespaces.js","../node_modules/d3-selection/src/namespace.js","../node_modules/d3-selection/src/creator.js","../node_modules/d3-selection/src/selector.js","../node_modules/d3-selection/src/selectorAll.js","../node_modules/d3-selection/src/selection/selectAll.js","../node_modules/d3-selection/src/array.js","../node_modules/d3-selection/src/matcher.js","../node_modules/d3-selection/src/selection/selectChild.js","../node_modules/d3-selection/src/selection/selectChildren.js","../node_modules/d3-selection/src/selection/sparse.js","../node_modules/d3-selection/src/selection/enter.js","../node_modules/d3-selection/src/selection/data.js","../node_modules/d3-selection/src/selection/sort.js","../node_modules/d3-selection/src/selection/attr.js","../node_modules/d3-selection/src/window.js","../node_modules/d3-selection/src/selection/style.js","../node_modules/d3-selection/src/selection/property.js","../node_modules/d3-selection/src/selection/classed.js","../node_modules/d3-selection/src/selection/text.js","../node_modules/d3-selection/src/selection/html.js","../node_modules/d3-selection/src/selection/raise.js","../node_modules/d3-selection/src/selection/lower.js","../node_modules/d3-selection/src/selection/insert.js","../node_modules/d3-selection/src/selection/remove.js","../node_modules/d3-selection/src/selection/clone.js","../node_modules/d3-selection/src/selection/on.js","../node_modules/d3-selection/src/selection/dispatch.js","../node_modules/d3-selection/src/selection/index.js","../node_modules/d3-selection/src/selection/select.js","../node_modules/d3-selection/src/selection/filter.js","../node_modules/d3-selection/src/constant.js","../node_modules/d3-selection/src/selection/exit.js","../node_modules/d3-selection/src/selection/join.js","../node_modules/d3-selection/src/selection/merge.js","../node_modules/d3-selection/src/selection/order.js","../node_modules/d3-selection/src/selection/call.js","../node_modules/d3-selection/src/selection/nodes.js","../node_modules/d3-selection/src/selection/node.js","../node_modules/d3-selection/src/selection/size.js","../node_modules/d3-selection/src/selection/empty.js","../node_modules/d3-selection/src/selection/each.js","../node_modules/d3-selection/src/selection/append.js","../node_modules/d3-selection/src/selection/datum.js","../node_modules/d3-selection/src/selection/iterator.js","../node_modules/d3-selection/src/select.js","../node_modules/d3-selection/src/local.js","../node_modules/d3-selection/src/pointer.js","../node_modules/d3-selection/src/sourceEvent.js","../node_modules/d3-color/src/define.js","../node_modules/d3-color/src/color.js","../node_modules/d3-color/src/math.js","../node_modules/d3-color/src/lab.js","../node_modules/d3-color/src/cubehelix.js","../node_modules/d3-interpolate/src/basis.js","../node_modules/d3-interpolate/src/constant.js","../node_modules/d3-interpolate/src/color.js","../node_modules/d3-interpolate/src/rgb.js","../node_modules/d3-interpolate/src/basisClosed.js","../node_modules/d3-interpolate/src/number.js","../node_modules/d3-interpolate/src/string.js","../node_modules/d3-interpolate/src/transform/decompose.js","../node_modules/d3-interpolate/src/transform/parse.js","../node_modules/d3-interpolate/src/transform/index.js","../node_modules/d3-interpolate/src/zoom.js","../node_modules/d3-interpolate/src/hsl.js","../node_modules/d3-interpolate/src/hcl.js","../node_modules/d3-interpolate/src/cubehelix.js","../node_modules/d3-timer/src/timer.js","../node_modules/d3-timer/src/timeout.js","../node_modules/d3-transition/src/transition/schedule.js","../node_modules/d3-transition/src/interrupt.js","../node_modules/d3-transition/src/transition/tween.js","../node_modules/d3-transition/src/transition/interpolate.js","../node_modules/d3-transition/src/transition/attr.js","../node_modules/d3-transition/src/transition/attrTween.js","../node_modules/d3-transition/src/transition/delay.js","../node_modules/d3-transition/src/transition/duration.js","../node_modules/d3-transition/src/transition/selection.js","../node_modules/d3-transition/src/transition/style.js","../node_modules/d3-transition/src/transition/index.js","../node_modules/d3-transition/src/transition/select.js","../node_modules/d3-transition/src/transition/selectAll.js","../node_modules/d3-transition/src/transition/filter.js","../node_modules/d3-transition/src/transition/merge.js","../node_modules/d3-transition/src/transition/transition.js","../node_modules/d3-transition/src/transition/on.js","../node_modules/d3-transition/src/transition/styleTween.js","../node_modules/d3-transition/src/transition/text.js","../node_modules/d3-transition/src/transition/textTween.js","../node_modules/d3-transition/src/transition/remove.js","../node_modules/d3-transition/src/transition/ease.js","../node_modules/d3-transition/src/transition/easeVarying.js","../node_modules/d3-transition/src/transition/end.js","../node_modules/d3-ease/src/poly.js","../node_modules/d3-ease/src/sin.js","../node_modules/d3-ease/src/math.js","../node_modules/d3-ease/src/back.js","../node_modules/d3-ease/src/elastic.js","../node_modules/d3-transition/src/selection/transition.js","../node_modules/d3-ease/src/cubic.js","../node_modules/d3-transition/src/selection/index.js","../node_modules/d3-transition/src/selection/interrupt.js","../node_modules/d3-zoom/src/constant.js","../node_modules/d3-zoom/src/event.js","../node_modules/d3-zoom/src/transform.js","../node_modules/d3-zoom/src/noevent.js","../node_modules/d3-zoom/src/zoom.js"],"sourcesContent":["import {hierarchy} from 'd3-hierarchy';\nimport packageInfo from '../package.json';\n\nconst {version} = packageInfo;\nconst defaults = Object.freeze({\n children: data => data.children,\n nodeSize: node => node.data.size,\n spacing: 0,\n});\n\n// Create a layout function with customizable options. Per D3-style, the\n// options can be set at any time using setter methods. The layout function\n// will compute the tree node positions based on the options in effect at the\n// time it is called.\nexport default function flextree(options) {\n const opts = Object.assign({}, defaults, options);\n function accessor(name) {\n const opt = opts[name];\n return typeof opt === 'function' ? opt : () => opt;\n }\n\n function layout(tree) {\n const wtree = wrap(getWrapper(), tree, node=>node.children);\n wtree.update();\n return wtree.data;\n }\n\n function getFlexNode() {\n const nodeSize = accessor('nodeSize');\n const spacing = accessor('spacing');\n return class FlexNode extends hierarchy.prototype.constructor {\n constructor(data) {\n super(data);\n }\n copy() {\n const c = wrap(this.constructor, this, node=>node.children);\n c.each(node => node.data = node.data.data);\n return c;\n }\n get size() { return nodeSize(this); }\n spacing(oNode) { return spacing(this, oNode); }\n get nodes() { return this.descendants(); }\n get xSize() { return this.size[0]; }\n get ySize() { return this.size[1]; }\n get top() { return this.y; }\n get bottom() { return this.y + this.ySize; }\n get left() { return this.x - this.xSize / 2; }\n get right() { return this.x + this.xSize / 2; }\n get root() {\n const ancs = this.ancestors();\n return ancs[ancs.length - 1];\n }\n get numChildren() {\n return this.hasChildren ? this.children.length : 0;\n }\n get hasChildren() { return !this.noChildren; }\n get noChildren() { return this.children === null; }\n get firstChild() {\n return this.hasChildren ? this.children[0] : null;\n }\n get lastChild() {\n return this.hasChildren ? this.children[this.numChildren - 1] : null;\n }\n get extents() {\n return (this.children || []).reduce(\n (acc, kid) => FlexNode.maxExtents(acc, kid.extents),\n this.nodeExtents);\n }\n get nodeExtents() {\n return {\n top: this.top,\n bottom: this.bottom,\n left: this.left,\n right: this.right,\n };\n }\n static maxExtents(e0, e1) {\n return {\n top: Math.min(e0.top, e1.top),\n bottom: Math.max(e0.bottom, e1.bottom),\n left: Math.min(e0.left, e1.left),\n right: Math.max(e0.right, e1.right),\n };\n }\n };\n }\n\n function getWrapper() {\n const FlexNode = getFlexNode();\n const nodeSize = accessor('nodeSize');\n const spacing = accessor('spacing');\n return class extends FlexNode {\n constructor(data) {\n super(data);\n Object.assign(this, {\n x: 0, y: 0,\n relX: 0, prelim: 0, shift: 0, change: 0,\n lExt: this, lExtRelX: 0, lThr: null,\n rExt: this, rExtRelX: 0, rThr: null,\n });\n }\n get size() { return nodeSize(this.data); }\n spacing(oNode) { return spacing(this.data, oNode.data); }\n get x() { return this.data.x; }\n set x(v) { this.data.x = v; }\n get y() { return this.data.y; }\n set y(v) { this.data.y = v; }\n update() {\n layoutChildren(this);\n resolveX(this);\n return this;\n }\n };\n }\n\n function wrap(FlexClass, treeData, children) {\n const _wrap = (data, parent) => {\n const node = new FlexClass(data);\n Object.assign(node, {\n parent,\n depth: parent === null ? 0 : parent.depth + 1,\n height: 0,\n length: 1,\n });\n const kidsData = children(data) || [];\n node.children = kidsData.length === 0 ? null\n : kidsData.map(kd => _wrap(kd, node));\n if (node.children) {\n Object.assign(node, node.children.reduce(\n (hl, kid) => ({\n height: Math.max(hl.height, kid.height + 1),\n length: hl.length + kid.length,\n }), node\n ));\n }\n return node;\n };\n return _wrap(treeData, null);\n }\n\n\n Object.assign(layout, {\n nodeSize(arg) {\n return arguments.length ? (opts.nodeSize = arg, layout) : opts.nodeSize;\n },\n spacing(arg) {\n return arguments.length ? (opts.spacing = arg, layout) : opts.spacing;\n },\n children(arg) {\n return arguments.length ? (opts.children = arg, layout) : opts.children;\n },\n hierarchy(treeData, children) {\n const kids = typeof children === 'undefined' ? opts.children : children;\n return wrap(getFlexNode(), treeData, kids);\n },\n dump(tree) {\n const nodeSize = accessor('nodeSize');\n const _dump = i0 => node => {\n const i1 = i0 + ' ';\n const i2 = i0 + ' ';\n const {x, y} = node;\n const size = nodeSize(node);\n const kids = (node.children || []);\n const kdumps = (kids.length === 0) ? ' ' :\n `,${i1}children: [${i2}${kids.map(_dump(i2)).join(i2)}${i1}],${i0}`;\n return `{ size: [${size.join(', ')}],${i1}x: ${x}, y: ${y}${kdumps}},`;\n };\n return _dump('\\n')(tree);\n },\n });\n return layout;\n}\nflextree.version = version;\n\nconst layoutChildren = (w, y = 0) => {\n w.y = y;\n (w.children || []).reduce((acc, kid) => {\n const [i, lastLows] = acc;\n layoutChildren(kid, w.y + w.ySize);\n // The lowest vertical coordinate while extreme nodes still point\n // in current subtree.\n const lowY = (i === 0 ? kid.lExt : kid.rExt).bottom;\n if (i !== 0) separate(w, i, lastLows);\n const lows = updateLows(lowY, i, lastLows);\n return [i + 1, lows];\n }, [0, null]);\n shiftChange(w);\n positionRoot(w);\n return w;\n};\n\n// Resolves the relative coordinate properties - relX and prelim --\n// to set the final, absolute x coordinate for each node. This also sets\n// `prelim` to 0, so that `relX` for each node is its x-coordinate relative\n// to its parent.\nconst resolveX = (w, prevSum, parentX) => {\n // A call to resolveX without arguments is assumed to be for the root of\n // the tree. This will set the root's x-coord to zero.\n if (typeof prevSum === 'undefined') {\n prevSum = -w.relX - w.prelim;\n parentX = 0;\n }\n const sum = prevSum + w.relX;\n w.relX = sum + w.prelim - parentX;\n w.prelim = 0;\n w.x = parentX + w.relX;\n (w.children || []).forEach(k => resolveX(k, sum, w.x));\n return w;\n};\n\n// Process shift and change for all children, to add intermediate spacing to\n// each child's modifier.\nconst shiftChange = w => {\n (w.children || []).reduce((acc, child) => {\n const [lastShiftSum, lastChangeSum] = acc;\n const shiftSum = lastShiftSum + child.shift;\n const changeSum = lastChangeSum + shiftSum + child.change;\n child.relX += changeSum;\n return [shiftSum, changeSum];\n }, [0, 0]);\n};\n\n// Separates the latest child from its previous sibling\n/* eslint-disable complexity */\nconst separate = (w, i, lows) => {\n const lSib = w.children[i - 1];\n const curSubtree = w.children[i];\n let rContour = lSib;\n let rSumMods = lSib.relX;\n let lContour = curSubtree;\n let lSumMods = curSubtree.relX;\n let isFirst = true;\n while (rContour && lContour) {\n if (rContour.bottom > lows.lowY) lows = lows.next;\n // How far to the left of the right side of rContour is the left side\n // of lContour? First compute the center-to-center distance, then add\n // the \"spacing\"\n const dist =\n (rSumMods + rContour.prelim) - (lSumMods + lContour.prelim) +\n rContour.xSize / 2 + lContour.xSize / 2 +\n rContour.spacing(lContour);\n if (dist > 0 || (dist < 0 && isFirst)) {\n lSumMods += dist;\n // Move subtree by changing relX.\n moveSubtree(curSubtree, dist);\n distributeExtra(w, i, lows.index, dist);\n }\n isFirst = false;\n // Advance highest node(s) and sum(s) of modifiers\n const rightBottom = rContour.bottom;\n const leftBottom = lContour.bottom;\n if (rightBottom <= leftBottom) {\n rContour = nextRContour(rContour);\n if (rContour) rSumMods += rContour.relX;\n }\n if (rightBottom >= leftBottom) {\n lContour = nextLContour(lContour);\n if (lContour) lSumMods += lContour.relX;\n }\n }\n // Set threads and update extreme nodes. In the first case, the\n // current subtree is taller than the left siblings.\n if (!rContour && lContour) setLThr(w, i, lContour, lSumMods);\n // In the next case, the left siblings are taller than the current subtree\n else if (rContour && !lContour) setRThr(w, i, rContour, rSumMods);\n};\n/* eslint-enable complexity */\n\n// Move subtree by changing relX.\nconst moveSubtree = (subtree, distance) => {\n subtree.relX += distance;\n subtree.lExtRelX += distance;\n subtree.rExtRelX += distance;\n};\n\nconst distributeExtra = (w, curSubtreeI, leftSibI, dist) => {\n const curSubtree = w.children[curSubtreeI];\n const n = curSubtreeI - leftSibI;\n // Are there intermediate children?\n if (n > 1) {\n const delta = dist / n;\n w.children[leftSibI + 1].shift += delta;\n curSubtree.shift -= delta;\n curSubtree.change -= dist - delta;\n }\n};\n\nconst nextLContour = w => {\n return w.hasChildren ? w.firstChild : w.lThr;\n};\n\nconst nextRContour = w => {\n return w.hasChildren ? w.lastChild : w.rThr;\n};\n\nconst setLThr = (w, i, lContour, lSumMods) => {\n const firstChild = w.firstChild;\n const lExt = firstChild.lExt;\n const curSubtree = w.children[i];\n lExt.lThr = lContour;\n // Change relX so that the sum of modifier after following thread is correct.\n const diff = lSumMods - lContour.relX - firstChild.lExtRelX;\n lExt.relX += diff;\n // Change preliminary x coordinate so that the node does not move.\n lExt.prelim -= diff;\n // Update extreme node and its sum of modifiers.\n firstChild.lExt = curSubtree.lExt;\n firstChild.lExtRelX = curSubtree.lExtRelX;\n};\n\n// Mirror image of setLThr.\nconst setRThr = (w, i, rContour, rSumMods) => {\n const curSubtree = w.children[i];\n const rExt = curSubtree.rExt;\n const lSib = w.children[i - 1];\n rExt.rThr = rContour;\n const diff = rSumMods - rContour.relX - curSubtree.rExtRelX;\n rExt.relX += diff;\n rExt.prelim -= diff;\n curSubtree.rExt = lSib.rExt;\n curSubtree.rExtRelX = lSib.rExtRelX;\n};\n\n// Position root between children, taking into account their modifiers\nconst positionRoot = w => {\n if (w.hasChildren) {\n const k0 = w.firstChild;\n const kf = w.lastChild;\n const prelim = (k0.prelim + k0.relX - k0.xSize / 2 +\n kf.relX + kf.prelim + kf.xSize / 2 ) / 2;\n Object.assign(w, {\n prelim,\n lExt: k0.lExt, lExtRelX: k0.lExtRelX,\n rExt: kf.rExt, rExtRelX: kf.rExtRelX,\n });\n }\n};\n\n// Make/maintain a linked list of the indexes of left siblings and their\n// lowest vertical coordinate.\nconst updateLows = (lowY, index, lastLows) => {\n // Remove siblings that are hidden by the new subtree.\n while (lastLows !== null && lowY >= lastLows.lowY)\n lastLows = lastLows.next;\n // Prepend the new subtree.\n return {\n lowY,\n index,\n next: lastLows,\n };\n};\n","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\n\nexport default function hierarchy(data, children) {\n var root = new Node(data),\n valued = +data.value && (root.value = data.value),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n if (children == null) children = defaultChildren;\n\n while (node = nodes.pop()) {\n if (valued) node.value = +node.data.value;\n if ((childs = children(node.data)) && (n = childs.length)) {\n node.children = new Array(n);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction defaultChildren(d) {\n return d.children;\n}\n\nfunction copyData(node) {\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy\n};\n","export default function(callback) {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n callback(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n } while (next.length);\n return this;\n}\n","export default function(callback) {\n var node = this, nodes = [node], next = [], children, i, n;\n while (node = nodes.pop()) {\n next.push(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n while (node = next.pop()) {\n callback(node);\n }\n return this;\n}\n","export default function(callback) {\n var node = this, nodes = [node], children, i;\n while (node = nodes.pop()) {\n callback(node), children = node.children;\n if (children) for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n return this;\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n var nodes = [];\n this.each(function(node) {\n nodes.push(node);\n });\n return nodes;\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","export var slice = Array.prototype.slice;\n\nexport function shuffle(array) {\n var m = array.length,\n t,\n i;\n\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m];\n array[m] = array[i];\n array[i] = t;\n }\n\n return array;\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}\n","import {Node} from \"./hierarchy/index.js\";\n\nfunction defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\n// function radialSeparation(a, b) {\n// return (a.parent === b.parent ? 1 : 2) / a.depth;\n// }\n\n// This function is used to traverse the left contour of a subtree (or\n// subforest). It returns the successor of v on this contour. This successor is\n// either given by the leftmost child of v or by the thread of v. The function\n// returns null if and only if v is on the highest level of its subtree.\nfunction nextLeft(v) {\n var children = v.children;\n return children ? children[0] : v.t;\n}\n\n// This function works analogously to nextLeft.\nfunction nextRight(v) {\n var children = v.children;\n return children ? children[children.length - 1] : v.t;\n}\n\n// Shifts the current subtree rooted at w+. This is done by increasing\n// prelim(w+) and mod(w+) by shift.\nfunction moveSubtree(wm, wp, shift) {\n var change = shift / (wp.i - wm.i);\n wp.c -= change;\n wp.s += shift;\n wm.c += change;\n wp.z += shift;\n wp.m += shift;\n}\n\n// All other shifts, applied to the smaller subtrees between w- and w+, are\n// performed by this function. To prepare the shifts, we have to adjust\n// change(w+), shift(w+), and change(w-).\nfunction executeShifts(v) {\n var shift = 0,\n change = 0,\n children = v.children,\n i = children.length,\n w;\n while (--i >= 0) {\n w = children[i];\n w.z += shift;\n w.m += shift;\n shift += w.s + (change += w.c);\n }\n}\n\n// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise,\n// returns the specified (default) ancestor.\nfunction nextAncestor(vim, v, ancestor) {\n return vim.a.parent === v.parent ? vim.a : ancestor;\n}\n\nfunction TreeNode(node, i) {\n this._ = node;\n this.parent = null;\n this.children = null;\n this.A = null; // default ancestor\n this.a = this; // ancestor\n this.z = 0; // prelim\n this.m = 0; // mod\n this.c = 0; // change\n this.s = 0; // shift\n this.t = null; // thread\n this.i = i; // number\n}\n\nTreeNode.prototype = Object.create(Node.prototype);\n\nfunction treeRoot(root) {\n var tree = new TreeNode(root, 0),\n node,\n nodes = [tree],\n child,\n children,\n i,\n n;\n\n while (node = nodes.pop()) {\n if (children = node._.children) {\n node.children = new Array(n = children.length);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new TreeNode(children[i], i));\n child.parent = node;\n }\n }\n }\n\n (tree.parent = new TreeNode(null, 0)).children = [tree];\n return tree;\n}\n\n// Node-link tree diagram using the Reingold-Tilford \"tidy\" algorithm\nexport default function() {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = null;\n\n function tree(root) {\n var t = treeRoot(root);\n\n // Compute the layout using Buchheim et al.’s algorithm.\n t.eachAfter(firstWalk), t.parent.m = -t.z;\n t.eachBefore(secondWalk);\n\n // If a fixed node size is specified, scale x and y.\n if (nodeSize) root.eachBefore(sizeNode);\n\n // If a fixed tree size is specified, scale x and y based on the extent.\n // Compute the left-most, right-most, and depth-most nodes for extents.\n else {\n var left = root,\n right = root,\n bottom = root;\n root.eachBefore(function(node) {\n if (node.x < left.x) left = node;\n if (node.x > right.x) right = node;\n if (node.depth > bottom.depth) bottom = node;\n });\n var s = left === right ? 1 : separation(left, right) / 2,\n tx = s - left.x,\n kx = dx / (right.x + s + tx),\n ky = dy / (bottom.depth || 1);\n root.eachBefore(function(node) {\n node.x = (node.x + tx) * kx;\n node.y = node.depth * ky;\n });\n }\n\n return root;\n }\n\n // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is\n // applied recursively to the children of v, as well as the function\n // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the\n // node v is placed to the midpoint of its outermost children.\n function firstWalk(v) {\n var children = v.children,\n siblings = v.parent.children,\n w = v.i ? siblings[v.i - 1] : null;\n if (children) {\n executeShifts(v);\n var midpoint = (children[0].z + children[children.length - 1].z) / 2;\n if (w) {\n v.z = w.z + separation(v._, w._);\n v.m = v.z - midpoint;\n } else {\n v.z = midpoint;\n }\n } else if (w) {\n v.z = w.z + separation(v._, w._);\n }\n v.parent.A = apportion(v, w, v.parent.A || siblings[0]);\n }\n\n // Computes all real x-coordinates by summing up the modifiers recursively.\n function secondWalk(v) {\n v._.x = v.z + v.parent.m;\n v.m += v.parent.m;\n }\n\n // The core of the algorithm. Here, a new subtree is combined with the\n // previous subtrees. Threads are used to traverse the inside and outside\n // contours of the left and right subtree up to the highest common level. The\n // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the\n // superscript o means outside and i means inside, the subscript - means left\n // subtree and + means right subtree. For summing up the modifiers along the\n // contour, we use respective variables si+, si-, so-, and so+. Whenever two\n // nodes of the inside contours conflict, we compute the left one of the\n // greatest uncommon ancestors using the function ANCESTOR and call MOVE\n // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees.\n // Finally, we add a new thread (if necessary).\n function apportion(v, w, ancestor) {\n if (w) {\n var vip = v,\n vop = v,\n vim = w,\n vom = vip.parent.children[0],\n sip = vip.m,\n sop = vop.m,\n sim = vim.m,\n som = vom.m,\n shift;\n while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) {\n vom = nextLeft(vom);\n vop = nextRight(vop);\n vop.a = v;\n shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);\n if (shift > 0) {\n moveSubtree(nextAncestor(vim, v, ancestor), v, shift);\n sip += shift;\n sop += shift;\n }\n sim += vim.m;\n sip += vip.m;\n som += vom.m;\n sop += vop.m;\n }\n if (vim && !nextRight(vop)) {\n vop.t = vim;\n vop.m += sim - sop;\n }\n if (vip && !nextLeft(vom)) {\n vom.t = vip;\n vom.m += sip - som;\n ancestor = v;\n }\n }\n return ancestor;\n }\n\n function sizeNode(node) {\n node.x *= dx;\n node.y = node.depth * dy;\n }\n\n tree.separation = function(x) {\n return arguments.length ? (separation = x, tree) : separation;\n };\n\n tree.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]);\n };\n\n tree.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null);\n };\n\n return tree;\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\n\nexport var phi = (1 + Math.sqrt(5)) / 2;\n\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx, dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n\n // Find the next non-empty node.\n do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\n\nexport default (function custom(ratio) {\n\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\nimport {phi, squarifyRatio} from \"./squarify.js\";\n\nexport default (function custom(ratio) {\n\n function resquarify(parent, x0, y0, x1, y1) {\n if ((rows = parent._squarify) && (rows.ratio === ratio)) {\n var rows,\n row,\n nodes,\n i,\n j = -1,\n n,\n m = rows.length,\n value = parent.value;\n\n while (++j < m) {\n row = rows[j], nodes = row.children;\n for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value;\n if (row.dice) treemapDice(row, x0, y0, x1, y0 += (y1 - y0) * row.value / value);\n else treemapSlice(row, x0, y0, x0 += (x1 - x0) * row.value / value, y1);\n value -= row.value;\n }\n } else {\n parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1);\n rows.ratio = ratio;\n }\n }\n\n resquarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return resquarify;\n})(phi);\n","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","// These are typically used in conjunction with noevent to ensure that we can\n// preventDefault on the event.\nexport const nonpassive = {passive: false};\nexport const nonpassivecapture = {capture: true, passive: false};\n\nexport function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {select} from \"d3-selection\";\nimport noevent, {nonpassivecapture} from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, nonpassivecapture);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, nonpassivecapture);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, nonpassivecapture);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n","export default x => () => x;\n","export default function DragEvent(type, {\n sourceEvent,\n subject,\n target,\n identifier,\n active,\n x, y, dx, dy,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n subject: {value: subject, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n identifier: {value: identifier, enumerable: true, configurable: true},\n active: {value: active, enumerable: true, configurable: true},\n x: {value: x, enumerable: true, configurable: true},\n y: {value: y, enumerable: true, configurable: true},\n dx: {value: dx, enumerable: true, configurable: true},\n dy: {value: dy, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\n","import {dispatch} from \"d3-dispatch\";\nimport {select, pointer} from \"d3-selection\";\nimport nodrag, {yesdrag} from \"./nodrag.js\";\nimport noevent, {nonpassive, nonpassivecapture, nopropagation} from \"./noevent.js\";\nimport constant from \"./constant.js\";\nimport DragEvent from \"./event.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(event, d) {\n return d == null ? {x: event.x, y: event.y} : d;\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nexport default function() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .filter(touchable)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved, nonpassive)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned(event, d) {\n if (touchending || !filter.call(this, event, d)) return;\n var gesture = beforestart(this, container.call(this, event, d), event, d, \"mouse\");\n if (!gesture) return;\n select(event.view)\n .on(\"mousemove.drag\", mousemoved, nonpassivecapture)\n .on(\"mouseup.drag\", mouseupped, nonpassivecapture);\n nodrag(event.view);\n nopropagation(event);\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\", event);\n }\n\n function mousemoved(event) {\n noevent(event);\n if (!mousemoving) {\n var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\", event);\n }\n\n function mouseupped(event) {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent(event);\n gestures.mouse(\"end\", event);\n }\n\n function touchstarted(event, d) {\n if (!filter.call(this, event, d)) return;\n var touches = event.changedTouches,\n c = container.call(this, event, d),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(this, c, event, d, touches[i].identifier, touches[i])) {\n nopropagation(event);\n gesture(\"start\", event, touches[i]);\n }\n }\n }\n\n function touchmoved(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent(event);\n gesture(\"drag\", event, touches[i]);\n }\n }\n }\n\n function touchended(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation(event);\n gesture(\"end\", event, touches[i]);\n }\n }\n }\n\n function beforestart(that, container, event, d, identifier, touch) {\n var dispatch = listeners.copy(),\n p = pointer(touch || event, container), dx, dy,\n s;\n\n if ((s = subject.call(that, new DragEvent(\"beforestart\", {\n sourceEvent: event,\n target: drag,\n identifier,\n active,\n x: p[0],\n y: p[1],\n dx: 0,\n dy: 0,\n dispatch\n }), d)) == null) return;\n\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n\n return function gesture(type, event, touch) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[identifier] = gesture, n = active++; break;\n case \"end\": delete gestures[identifier], --active; // falls through\n case \"drag\": p = pointer(touch || event, container), n = active; break;\n }\n dispatch.call(\n type,\n that,\n new DragEvent(type, {\n sourceEvent: event,\n subject: s,\n target: drag,\n identifier,\n active: n,\n x: p[0] + dx,\n y: p[1] + dy,\n dx: p[0] - p0[0],\n dy: p[1] - p0[1],\n dispatch\n }),\n d\n );\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant(_), drag) : subject;\n };\n\n drag.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), drag) : touchable;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","var nextId = 0;\n\nexport default function local() {\n return new Local;\n}\n\nfunction Local() {\n this._ = \"@\" + (++nextId).toString(36);\n}\n\nLocal.prototype = local.prototype = {\n constructor: Local,\n get: function(node) {\n var id = this._;\n while (!(id in node)) if (!(node = node.parentNode)) return;\n return node[id];\n },\n set: function(node, value) {\n return node[this._] = value;\n },\n remove: function(node) {\n return this._ in node && delete node[this._];\n },\n toString: function() {\n return this._;\n }\n};\n","import sourceEvent from \"./sourceEvent.js\";\n\nexport default function(event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n return [event.pageX, event.pageY];\n}\n","export default function(event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export const radians = Math.PI / 180;\nexport const degrees = 180 / Math.PI;\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb} from \"./color.js\";\nimport {degrees, radians} from \"./math.js\";\n\n// https://observablehq.com/@mbostock/lab-and-rgb\nconst K = 18,\n Xn = 0.96422,\n Yn = 1,\n Zn = 0.82521,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) return hcl2lab(o);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = rgb2lrgb(o.r),\n g = rgb2lrgb(o.g),\n b = rgb2lrgb(o.b),\n y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n if (r === g && g === b) x = z = y; else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new Rgb(\n lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * degrees;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nfunction hcl2lab(o) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * radians;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n}\n\ndefine(Hcl, hcl, extend(Color, {\n brighter(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb() {\n return hcl2lab(this).rgb();\n }\n}));\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color.js\";\nimport {degrees, radians} from \"./math.js\";\n\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * degrees - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * radians,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","var epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\nexport default (function zoomRho(rho, rho2, rho4) {\n\n // p0 = [ux0, uy0, w0]\n // p1 = [ux1, uy1, w1]\n function zoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000 * rho / Math.SQRT2;\n\n return i;\n }\n\n zoom.rho = function(_) {\n var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n return zoomRho(_1, _2, _4);\n };\n\n return zoom;\n})(Math.SQRT2, 2, 4);\n","import {hsl as colorHsl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hsl(hue) {\n return function(start, end) {\n var h = hue((start = colorHsl(start)).h, (end = colorHsl(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hsl(hue);\nexport var hslLong = hsl(color);\n","import {hcl as colorHcl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hcl(hue) {\n return function(start, end) {\n var h = hue((start = colorHcl(start)).h, (end = colorHcl(end)).h),\n c = color(start.c, end.c),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hcl(hue);\nexport var hclLong = hcl(color);\n","import {cubehelix as colorCubehelix} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction cubehelix(hue) {\n return (function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n\n return cubehelix;\n })(1);\n}\n\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","var exponent = 3;\n\nexport var polyIn = (function custom(e) {\n e = +e;\n\n function polyIn(t) {\n return Math.pow(t, e);\n }\n\n polyIn.exponent = custom;\n\n return polyIn;\n})(exponent);\n\nexport var polyOut = (function custom(e) {\n e = +e;\n\n function polyOut(t) {\n return 1 - Math.pow(1 - t, e);\n }\n\n polyOut.exponent = custom;\n\n return polyOut;\n})(exponent);\n\nexport var polyInOut = (function custom(e) {\n e = +e;\n\n function polyInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\n }\n\n polyInOut.exponent = custom;\n\n return polyInOut;\n})(exponent);\n","var pi = Math.PI,\n halfPi = pi / 2;\n\nexport function sinIn(t) {\n return (+t === 1) ? 1 : 1 - Math.cos(t * halfPi);\n}\n\nexport function sinOut(t) {\n return Math.sin(t * halfPi);\n}\n\nexport function sinInOut(t) {\n return (1 - Math.cos(pi * t)) / 2;\n}\n","// tpmt is two power minus ten times t scaled to [0,1]\nexport function tpmt(x) {\n return (Math.pow(2, -10 * x) - 0.0009765625) * 1.0009775171065494;\n}\n","var overshoot = 1.70158;\n\nexport var backIn = (function custom(s) {\n s = +s;\n\n function backIn(t) {\n return (t = +t) * t * (s * (t - 1) + t);\n }\n\n backIn.overshoot = custom;\n\n return backIn;\n})(overshoot);\n\nexport var backOut = (function custom(s) {\n s = +s;\n\n function backOut(t) {\n return --t * t * ((t + 1) * s + t) + 1;\n }\n\n backOut.overshoot = custom;\n\n return backOut;\n})(overshoot);\n\nexport var backInOut = (function custom(s) {\n s = +s;\n\n function backInOut(t) {\n return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;\n }\n\n backInOut.overshoot = custom;\n\n return backInOut;\n})(overshoot);\n","import {tpmt} from \"./math.js\";\n\nvar tau = 2 * Math.PI,\n amplitude = 1,\n period = 0.3;\n\nexport var elasticIn = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticIn(t) {\n return a * tpmt(-(--t)) * Math.sin((s - t) / p);\n }\n\n elasticIn.amplitude = function(a) { return custom(a, p * tau); };\n elasticIn.period = function(p) { return custom(a, p); };\n\n return elasticIn;\n})(amplitude, period);\n\nexport var elasticOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticOut(t) {\n return 1 - a * tpmt(t = +t) * Math.sin((t + s) / p);\n }\n\n elasticOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticOut.period = function(p) { return custom(a, p); };\n\n return elasticOut;\n})(amplitude, period);\n\nexport var elasticInOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticInOut(t) {\n return ((t = t * 2 - 1) < 0\n ? a * tpmt(-t) * Math.sin((s - t) / p)\n : 2 - a * tpmt(t) * Math.sin((s + t) / p)) / 2;\n }\n\n elasticInOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticInOut.period = function(p) { return custom(a, p); };\n\n return elasticInOut;\n})(amplitude, period);\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","export default x => () => x;\n","export default function ZoomEvent(type, {\n sourceEvent,\n target,\n transform,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n transform: {value: transform, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","export function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolateZoom} from \"d3-interpolate\";\nimport {select, pointer} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport {Transform, identity} from \"./transform.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\n// Ignore right-click, since that should open the context menu.\n// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event\nfunction defaultFilter(event) {\n return (!event.ctrlKey || event.type === 'wheel') && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta(event) {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\n\nexport default function() {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchfirst,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0,\n tapDistance = 10;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled, {passive: false})\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform, point, event) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform, point, event);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .event(event)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k, p, event) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p, event);\n };\n\n zoom.scaleTo = function(selection, k, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p, event);\n };\n\n zoom.translateBy = function(selection, x, y, event) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n }, null, event);\n };\n\n zoom.translateTo = function(selection, x, y, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n }, p, event);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point, event) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).event(event).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).event(event).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args).event(event),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return (!clean && that.__zooming) || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.sourceEvent = null;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n event: function(event) {\n if (event) this.sourceEvent = event;\n return this;\n },\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new ZoomEvent(type, {\n sourceEvent: this.sourceEvent,\n target: zoom,\n type,\n transform: this.that.__zoom,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function wheeled(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, args).event(event),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = pointer(event);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent(event);\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned(event, ...args) {\n if (touchending || !filter.apply(this, arguments)) return;\n var currentTarget = event.currentTarget,\n g = gesture(this, args, true).event(event),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = pointer(event, currentTarget),\n x0 = event.clientX,\n y0 = event.clientY;\n\n dragDisable(event.view);\n nopropagation(event);\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved(event) {\n noevent(event);\n if (!g.moved) {\n var dx = event.clientX - x0, dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.event(event)\n .zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped(event) {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent(event);\n g.event(event).end();\n }\n }\n\n function dblclicked(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);\n\n noevent(event);\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event);\n else select(this).call(zoom.transform, t1, p0, event);\n }\n\n function touchstarted(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, args, event.changedTouches.length === n).event(event),\n started, i, t, p;\n\n nopropagation(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation(event);\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (g.taps === 2) {\n t = pointer(t, this);\n if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n }\n\n zoom.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function(_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n\n zoom.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function(_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n zoom.tapDistance = function(_) {\n return arguments.length ? (tapDistance = +_, zoom) : tapDistance;\n };\n\n return zoom;\n}\n"],"names":["version","defaults","Object","freeze","children","data","nodeSize","node","size","spacing","flextree","options","opts","assign","accessor","name","opt","layout","tree","wtree","wrap","FlexNode","getFlexNode","constructor","super","this","x","y","relX","prelim","shift","change","lExt","lExtRelX","lThr","rExt","rExtRelX","rThr","oNode","v","update","layoutChildren","resolveX","getWrapper","hierarchy","prototype","copy","c","each","nodes","descendants","xSize","ySize","top","bottom","left","right","root","ancs","ancestors","length","numChildren","hasChildren","noChildren","firstChild","lastChild","extents","reduce","acc","kid","maxExtents","nodeExtents","e0","e1","Math","min","max","FlexClass","treeData","_wrap","parent","depth","height","kidsData","map","kd","hl","arg","arguments","kids","dump","_dump","i0","i1","i2","kdumps","concat","join","w","undefined","i","lastLows","lowY","separate","updateLows","shiftChange","positionRoot","prevSum","parentX","sum","forEach","k","child","lastShiftSum","lastChangeSum","shiftSum","changeSum","lows","lSib","curSubtree","rContour","rSumMods","lContour","lSumMods","isFirst","next","dist","moveSubtree","distributeExtra","index","rightBottom","leftBottom","nextRContour","nextLContour","setLThr","setRThr","subtree","distance","curSubtreeI","leftSibI","n","delta","diff","k0","kf","count","value","childs","Node","valued","defaultChildren","pop","Array","push","eachBefore","computeHeight","d","copyData","eachAfter","callback","current","reverse","sort","compare","path","end","start","ancestor","a","b","aNodes","bNodes","leastCommonAncestor","splice","leaves","links","source","target","slice","x0","y0","x1","y1","TreeNode","_","A","z","m","s","t","create","phi","sqrt","squarifyRatio","ratio","row","nodeValue","dx","dy","sumValue","minValue","maxValue","newRatio","minRatio","alpha","beta","rows","dice","treemapDice","treemapSlice","custom","squarify","resquarify","_squarify","j","noop","dispatch","test","Error","Dispatch","get","type","set","on","typename","types","T","trim","split","indexOf","hasOwnProperty","call","that","args","apply","nonpassive","passive","nonpassivecapture","capture","nopropagation","event","stopImmediatePropagation","preventDefault","view","document","documentElement","selection","select","noevent","__noselect","style","MozUserSelect","yesdrag","noclick","setTimeout","DragEvent","_ref","sourceEvent","subject","identifier","active","defineProperties","enumerable","configurable","defaultFilter","ctrlKey","button","defaultContainer","parentNode","defaultSubject","defaultTouchable","navigator","maxTouchPoints","mousedownx","mousedowny","mousemoving","touchending","filter","container","touchable","gestures","listeners","clickDistance2","drag","mousedowned","touchstarted","touchmoved","touchended","gesture","beforestart","mousemoved","mouseupped","nodrag","clientX","clientY","mouse","touches","changedTouches","clearTimeout","touch","p","pointer","p0","constant","clickDistance","xhtml","svg","xlink","xml","xmlns","prefix","namespaces","space","local","creatorInherit","ownerDocument","uri","namespaceURI","createElement","createElementNS","creatorFixed","fullname","namespace","none","selector","querySelector","empty","querySelectorAll","arrayAll","isArray","from","matches","childMatcher","find","childFirst","firstElementChild","EnterNode","datum","_next","_parent","__data__","bindIndex","group","enter","exit","groupLength","dataLength","bindKey","key","keyValue","nodeByKeyValue","Map","keyValues","has","delete","arraylike","ascending","NaN","attrRemove","removeAttribute","attrRemoveNS","removeAttributeNS","attrConstant","setAttribute","attrConstantNS","setAttributeNS","attrFunction","attrFunctionNS","defaultView","styleRemove","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","getPropertyValue","getComputedStyle","propertyRemove","propertyConstant","propertyFunction","classArray","string","classList","ClassList","_node","_names","getAttribute","classedAdd","names","list","add","classedRemove","remove","classedTrue","classedFalse","classedFunction","textRemove","textContent","textConstant","textFunction","htmlRemove","innerHTML","htmlConstant","htmlFunction","raise","nextSibling","appendChild","lower","previousSibling","insertBefore","constantNull","removeChild","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","onRemove","__on","o","removeEventListener","listener","onAdd","contextListener","addEventListener","dispatchEvent","params","window","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","contains","Selection","groups","parents","_groups","_parents","subgroups","subnode","subgroup","selectAll","selectorAll","selectChild","match","childFind","selectChildren","childrenFilter","matcher","bind","enterGroup","updateGroup","previous","_enter","_exit","sparse","onenter","onupdate","onexit","append","merge","order","context","groups0","groups1","m0","m1","merges","group0","group1","compareDocumentPosition","compareNode","sortgroups","sortgroup","attr","getAttributeNS","property","classed","text","html","creator","insert","before","deep","typenames","parseTypenames","Symbol","iterator","nextId","Local","toString","currentTarget","ownerSVGElement","createSVGPoint","point","matrixTransform","getScreenCTM","inverse","getBoundingClientRect","rect","clientLeft","clientTop","pageX","pageY","id","factory","extend","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","RegExp","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatRgb","formatRgb","color","format","l","toLowerCase","exec","parseInt","rgbn","Rgb","rgba","hsla","r","g","rgbConvert","opacity","rgb_formatHex","hex","rgb_formatRgb","clampa","clampi","isNaN","round","h","Hsl","hslConvert","hsl","clamph","clampt","hsl2rgb","m2","define","channels","displayable","formatHex8","formatHsl","pow","clamp","radians","PI","degrees","Xn","Zn","t0","t1","t2","t3","labConvert","Lab","Hcl","hcl2lab","rgb2lrgb","xyz2lab","lab2xyz","lrgb2rgb","hclConvert","atan2","hcl","cos","sin","B","C","D","E","ED","EB","BC_DA","cubehelix","Cubehelix","bl","cubehelixConvert","basis","v0","v1","v2","v3","cosh","sinh","linear","hue","gamma","nogamma","exponential","rgbGamma","colorRgb","rgbSpline","spline","colors","values","floor","reA","reB","am","bm","bs","bi","lastIndex","q","number","one","zero","svgNode","identity","translateX","translateY","rotate","skewX","scaleX","scaleY","e","f","atan","interpolateTransform","parse","pxComma","pxParen","degParen","xa","ya","xb","yb","translate","scale","interpolateTransformCss","DOMMatrix","WebKitCSSMatrix","isIdentity","decompose","interpolateTransformSvg","transform","baseVal","consolidate","matrix","exp","zoomRho","rho","rho2","rho4","zoom","p1","S","ux0","uy0","w0","ux1","uy1","w1","d2","log","d1","b0","b1","r0","r1","coshr0","u","duration","SQRT2","_1","_2","colorHsl","colorHcl","cubehelixGamma","colorCubehelix","taskHead","taskTail","frame","timeout","interval","clockLast","clockNow","clockSkew","clock","performance","now","Date","setFrame","requestAnimationFrame","clearNow","Timer","_call","_time","timer","delay","time","restart","wake","timerFlush","Infinity","sleep","nap","poke","clearInterval","setInterval","elapsed","stop","TypeError","emptyOn","emptyTween","STARTING","ENDING","ENDED","timing","schedules","__transition","self","tween","schedule","state","tick","ease","init","tweenRemove","tween0","tween1","tweenFunction","tweenValue","transition","_id","interpolateNumber","interpolateRgb","interpolateString","interpolate","value1","string00","interpolate0","string1","string0","string10","attrTweenNS","attrInterpolateNS","_value","attrTween","attrInterpolate","delayFunction","delayConstant","durationFunction","durationConstant","Transition","_name","newId","selection_prototype","inherit","id0","id1","on0","on1","sit","every","onFunction","styleTween","styleNull","listener0","styleMaybeRemove","styleInterpolate","textTween","textInterpolate","removeFunction","easeConstant","easeVarying","Promise","resolve","reject","cancel","interrupt","polyIn","exponent","polyOut","polyInOut","tpmt","overshoot","tau","backIn","backOut","backInOut","defaultTiming","asin","elasticIn","amplitude","period","elasticOut","elasticInOut","ZoomEvent","Transform","applyX","applyY","invert","location","invertX","invertY","rescaleX","domain","range","rescaleY","defaultExtent","SVGElement","hasAttribute","viewBox","width","clientWidth","clientHeight","defaultTransform","__zoom","defaultWheelDelta","deltaY","deltaMode","defaultConstrain","extent","translateExtent","dx0","dx1","dy0","dy1","touchstarting","touchfirst","constrain","wheelDelta","scaleExtent","interpolateZoom","tapDistance","wheeled","dblclicked","centroid","clean","__zooming","Gesture","taps","_len","_key","wheel","_len2","_key2","moved","dragEnable","dragDisable","_len3","_key3","k1","shiftKey","_len4","_key4","started","touch0","touch1","_len5","_key5","l0","l1","dp","dl","_len6","_key6","hypot","collection","scaleBy","scaleTo","translateBy","translateTo","emit"],"sourceRoot":""}