{"version":3,"file":"app-f1779586cbb1f442fb6c.js","mappings":";6HAQAA,EAAOC,QARP,SAAgCC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,GAITF,EAAOC,QAAP,QAA4BD,EAAOC,QAASD,EAAOC,QAAQG,YAAa,G,gDCTzD,IACF,MAAPC,GAAeA,EAAMC,EAAIC,UAAQF,EAAMC,EAAIC,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAML,GAAMG,EAAIH,EAAKG,IAC9CC,EAAKD,GAAKF,EAAIE,GAGhB,OAAOC,E,gICNM,GACbE,EAASC,UAAYC,OAAOC,OAAOC,EAAWH,WAC9CD,EAASC,UAAUI,YAAcL,GACjC,OAAeA,EAAUI,K,iDCHzB,GAAsB,oBAAXE,QAAmD,MAAzBC,EAAKD,OAAOE,WAA2C,MAAtBD,EAAK,cAAuB,OAAOR,MAAMU,KAAKF,G,oFCKpH,OALAG,EAAkBR,OAAOS,gBAAkB,SAAyBC,EAAGC,GAErE,OADAD,EAAEE,UAAYD,EACPD,IAGcA,EAAGC,G,2JCD1B,O,YCHA,GAAId,MAAMgB,QAAQpB,GAAM,OAAO,EAAAqB,EAAA,GAAiBrB,GDGzC,CAAkBA,KAAQ,EAAAsB,EAAA,GAAgBtB,KAAQ,EAAAuB,EAAA,GAA2BvB,I,WEJpF,MAAM,IAAIwB,UAAU,wIFIwE,K,6FGJ/E,KACb,GAAKP,EAAL,CACA,GAAiB,iBAANA,EAAgB,OAAO,OAAiBA,EAAGQ,GACtD,IAAIC,EAAInB,OAAOD,UAAUqB,SAASC,KAAKX,GAAGY,MAAM,GAAI,GAEpD,MADU,WAANH,GAAkBT,EAAEP,cAAagB,EAAIT,EAAEP,YAAYoB,MAC7C,QAANJ,GAAqB,QAANA,EAAoBtB,MAAMU,KAAKG,GACxC,cAANS,GAAqB,2CAA2CK,KAAKL,IAAW,OAAiBT,EAAGQ,QAAxG,K,kBCPF,SAASO,IAgBP,OAfAtC,EAAOC,QAAUqC,EAAWzB,OAAO0B,QAAU,SAAUC,GACrD,IAAK,IAAIhC,EAAI,EAAGA,EAAIiC,UAAUlC,OAAQC,IAAK,CACzC,IAAIkC,EAASD,UAAUjC,GAEvB,IAAK,IAAImC,KAAOD,EACV7B,OAAOD,UAAUgC,eAAeV,KAAKQ,EAAQC,KAC/CH,EAAOG,GAAOD,EAAOC,IAK3B,OAAOH,GAGTxC,EAAOC,QAAP,QAA4BD,EAAOC,QAASD,EAAOC,QAAQG,YAAa,EACjEkC,EAASO,MAAMC,KAAML,WAG9BzC,EAAOC,QAAUqC,EACjBtC,EAAOC,QAAP,QAA4BD,EAAOC,QAASD,EAAOC,QAAQG,YAAa,G,sBCpBxE,IAAIkB,EAAiB,EAAQ,OAQ7BtB,EAAOC,QANP,SAAwBU,EAAUI,GAChCJ,EAASC,UAAYC,OAAOC,OAAOC,EAAWH,WAC9CD,EAASC,UAAUI,YAAcL,EACjCW,EAAeX,EAAUI,IAI3Bf,EAAOC,QAAP,QAA4BD,EAAOC,QAASD,EAAOC,QAAQG,YAAa,G,kBCHxEJ,EAAOC,QANP,SAAgC8C,GAC9B,OAAOA,GAAOA,EAAI3C,WAAa2C,EAAM,CACnC,QAAWA,IAKf/C,EAAOC,QAAP,QAA4BD,EAAOC,QAASD,EAAOC,QAAQG,YAAa,G,kBCQxEJ,EAAOC,QAfP,SAAuCyC,EAAQM,GAC7C,GAAc,MAAVN,EAAgB,MAAO,GAC3B,IAEIC,EAAKnC,EAFLgC,EAAS,GACTS,EAAapC,OAAOqC,KAAKR,GAG7B,IAAKlC,EAAI,EAAGA,EAAIyC,EAAW1C,OAAQC,IACjCmC,EAAMM,EAAWzC,GACbwC,EAASG,QAAQR,IAAQ,IAC7BH,EAAOG,GAAOD,EAAOC,IAGvB,OAAOH,GAITxC,EAAOC,QAAP,QAA4BD,EAAOC,QAASD,EAAOC,QAAQG,YAAa,G,kBChBxE,SAASiB,EAAgBE,EAAGC,GAO1B,OANAxB,EAAOC,QAAUoB,EAAkBR,OAAOS,gBAAkB,SAAyBC,EAAGC,GAEtF,OADAD,EAAEE,UAAYD,EACPD,GAGTvB,EAAOC,QAAP,QAA4BD,EAAOC,QAASD,EAAOC,QAAQG,YAAa,EACjEiB,EAAgBE,EAAGC,GAG5BxB,EAAOC,QAAUoB,EACjBrB,EAAOC,QAAP,QAA4BD,EAAOC,QAASD,EAAOC,QAAQG,YAAa,G,kBCNpCJ,EAAOC,QAI5B,WACb,IAAImD,GAAO,GACsC,IAA7CC,UAAUC,WAAWH,QAAQ,aAC/BC,GAAO,GAGT,IACEG,EADEC,EAAM,GAERC,EAA0B,iBAAbC,UAAyBA,SACtCC,EAAOP,EACHK,EAAIG,gBAAgBC,SAAS,QAC7BJ,EAAIG,gBAAgBC,SACxBC,EAAmB,mBACnBC,EACEN,IAAQE,EAAO,aAAe,iBAAiBtB,KAAKoB,EAAIO,YAY5D,OAVKD,GAAUN,GACbA,EAAIQ,iBACFH,EACCP,EAAW,WAGV,IAFAE,EAAIS,oBAAoBJ,EAAkBP,GAC1CQ,EAAS,EACDR,EAAWC,EAAIW,SAAUZ,MAIhC,SAASa,GACdL,EAASM,WAAWD,EAAI,GAAKZ,EAAIc,KAAKF,IA/BWG,I,uCCgBjDC,EA+CAC,E,4CA7CAC,IAAUF,EAAO,IAAS,UAE1B,oFAA0FA,EAAK,gBAE/F,gCAAiCA,EAAK,iBAEtC,iDAAkDA,EAAK,eAEvD,kDAAmDA,EAAK,wBAExD,6EAAmFA,EAAK,wBAExF,wDAAyDA,GACzDG,EAAgB,IAAI,KAAa,MAAO,WAAYD,GACpDE,EAAS,gBAiCTC,EAAqB,YACrBC,IAAuBL,EAAK,IAAOG,GAAU,YAAaH,EAhCjD,uBAgC8D,iBAAkBA,EA/BhF,uBA+B6F,iBAAkBA,EA9B/G,kBA8B4H,YAAaA,EA7BzI,sBA6BsJ,YAAaA,EA5BnK,uBA4BgL,UAAWA,EA3B3L,2BA2BwM,WAAYA,EA1BpN,uBA0BiO,WAAYA,EAzB7O,yBAyB0P,YAAaA,EAxBvQ,2BAwBoR,UAAWA,EAvB/R,qBAuB4S,WAAYA,EAtBxT,uBAsBqU,WAAYA,EAAG,WAAa,UAAWA,EArB9W,oBAqByX,cAAeA,GAkB/YM,EAAS,IAAI,KAAO,iBAuBpBC,EAAkB,WACpB,SAASA,EAAgBC,EAASC,EAAQC,GACxC,IAAIC,EAAQtC,KAEZA,KAAKqC,UAAYA,EACjBrC,KAAKuC,YAAa,EAClBvC,KAAKwC,MAAQJ,EAAO9C,KACpBU,KAAKyC,gCAAkCL,EAAOM,iCAAkC,EAChF1C,KAAK2C,UAAW,QAASR,GACzBnC,KAAK4C,UAAY,IAAI,KAAmBR,EAAO9C,MAE/CU,KAAK6C,cAAc,IAAI,KAAU,OAAO,WACtC,OAAOP,IACN,WAKHtC,KAAKqC,UAAUS,SAASC,WAAWC,SAAQ,SAAUC,GACnD,OAAOX,EAAMO,cAAcI,MAoJ/B,OAhJAlF,OAAOmF,eAAehB,EAAgBpE,UAAW,iCAAkC,CACjFqF,IAAK,WAEH,OADAnD,KAAKoD,kBACEpD,KAAKyC,iCAEdY,IAAK,SAAaC,GAChBtD,KAAKoD,kBACLpD,KAAKyC,gCAAkCa,GAEzCC,YAAY,EACZC,cAAc,IAEhBzF,OAAOmF,eAAehB,EAAgBpE,UAAW,OAAQ,CACvDqF,IAAK,WAEH,OADAnD,KAAKoD,kBACEpD,KAAKwC,OAEde,YAAY,EACZC,cAAc,IAEhBzF,OAAOmF,eAAehB,EAAgBpE,UAAW,UAAW,CAC1DqF,IAAK,WAEH,OADAnD,KAAKoD,kBACEpD,KAAK2C,UAEdY,YAAY,EACZC,cAAc,IAGhBtB,EAAgBpE,UAAU2F,OAAS,WACjC,IAAInB,EAAQtC,KAEZ,OAAO,IAAI0D,SAAQ,SAAUC,GAC3BrB,EAAMc,kBAENO,OACCC,MAAK,WAGN,OAFAtB,EAAMD,UAAUS,SAASe,UAAUvB,EAAME,OAElCkB,QAAQI,IAAIxB,EAAMM,UAAUmB,eAAeC,KAAI,SAAUC,GAC9D,OAAOA,EAASR,gBAEjBG,MAAK,WACNtB,EAAMC,YAAa,MAmBvBL,EAAgBpE,UAAUoG,YAAc,SAAU5E,EAAM6E,GACtD,IAAIxC,OAEuB,IAAvBwC,IACFA,EAAqBpC,GAGvB/B,KAAKoD,kBAEL,IAAIa,EAAWjE,KAAK4C,UAAUwB,YAAY9E,GAS1C,OAPK2E,EAASI,iBAAkH,cAA3D,QAAlC1C,EAAKsC,EAASK,sBAAmC,IAAP3C,OAAgB,EAASA,EAAG4C,oBAGvGN,EAASO,aAIJP,EAASQ,aAAa,CAC3BC,WAAYP,KAehBjC,EAAgBpE,UAAU6G,uBAAyB,SAAUrF,EAAM6E,QACtC,IAAvBA,IACFA,EAAqBpC,GAIvB/B,KAAK4C,UAAUwB,YAAY9E,GAAMsF,cAAcT,IAOjDjC,EAAgBpE,UAAU+E,cAAgB,SAAUI,GAClD,IACEjD,KAAK4C,UAAUiC,aAAa5B,GAC5B,MAAO6B,GACP7C,EAAO8C,MAAM,aAAe9B,EAAU3D,KAAO,wCAA0CU,KAAKV,KAAMwF,KAItG5C,EAAgBpE,UAAUkH,yBAA2B,SAAU/B,GAC7DjD,KAAK4C,UAAUqC,wBAAwBhC,IAGzCf,EAAgBpE,UAAUoH,OAAS,WACjC,MAAO,CACL5F,KAAMU,KAAKV,KACXoD,+BAAgC1C,KAAK0C,+BACrCP,QAASnC,KAAKmC,UASlBD,EAAgBpE,UAAUsF,gBAAkB,WAC1C,GAAIpD,KAAKuC,WACP,MAAMV,EAAc7D,OAAO,cAEzB,CACAmH,QAASnF,KAAKwC,SAKbN,EAvKa,GA4KtBA,EAAgBpE,UAAUwB,MAAQ4C,EAAgBpE,UAAUqE,SAAWD,EAAgBpE,UAAU2F,QAAU2B,QAAQC,IAAI,MAqVvH,IAAIC,EAtBJ,SAASC,IACP,IAAIC,EArSN,SAAqCC,GACnC,IAAIC,EAAO,GAEP3C,EAAa,IAAI4C,IAEjBH,EAAY,CAIdlI,YAAY,EACZsI,cA8DF,SAAuBzD,EAAS0D,QACZ,IAAdA,IACFA,EAAY,IAGW,iBAAdA,GAAwC,OAAdA,IAEnCA,EAAY,CACVvG,KAFWuG,IAMf,IAAIzD,EAASyD,OAEOC,IAAhB1D,EAAO9C,OACT8C,EAAO9C,KAAOyC,GAGhB,IAAIzC,EAAO8C,EAAO9C,KAElB,GAAoB,iBAATA,IAAsBA,EAC/B,MAAMuC,EAAc7D,OAAO,eAEzB,CACAmH,QAASY,OAAOzG,KAIpB,IAAI,QAASoG,EAAMpG,GACjB,MAAMuC,EAAc7D,OAAO,gBAEzB,CACAmH,QAAS7F,IAIb,IAAI0G,EAAM,IAAIP,EAAgBtD,EAASC,EAAQoD,GAE/C,OADAE,EAAKpG,GAAQ0G,EACNA,GAlGPA,IAAKA,EACLC,gBA2LF,SAAyBC,EAAkBC,EAASC,GAClD,IAAIzE,EAIA0E,EAA2D,QAAhD1E,EAAKK,EAAoBkE,UAAsC,IAAPvE,EAAgBA,EAAKuE,EAExFE,IACFC,GAAW,IAAMD,GAGnB,IAAIE,EAAkBD,EAAQE,MAAM,SAChCC,EAAkBL,EAAQI,MAAM,SAEpC,GAAID,GAAmBE,EAAiB,CACtC,IAAIC,EAAU,CAAC,+BAAkCJ,EAAU,mBAAuBF,EAAU,MAe5F,OAbIG,GACFG,EAAQjF,KAAK,iBAAoB6E,EAAU,qDAGzCC,GAAmBE,GACrBC,EAAQjF,KAAK,OAGXgF,GACFC,EAAQjF,KAAK,iBAAoB2E,EAAU,0DAG7ClE,EAAOyE,KAAKD,EAAQE,KAAK,MAI3BC,EAAkB,IAAI,KAAUP,EAAU,YAAY,WACpD,MAAO,CACLA,QAASA,EACTF,QAASA,KAEV,aAhOHU,YAAa,KACbC,MAoOF,SAAeC,EAAa5E,GAC1B,GAAoB,OAAhB4E,GAA+C,mBAAhBA,EACjC,MAAMlF,EAAc7D,OAAO,yBAK7B,QAAkB+I,EAAa5E,IAzO/BuD,KAAM,KACNsB,YA5CU,QA6CVlE,SAAU,CACR8D,kBAAmBA,EACnB/C,UA0BJ,SAAmBvE,UACVoG,EAAKpG,IA1BVyD,WAAYA,EACZkE,aAwOJ,SAAsBjB,EAAK1G,GACzB,MAAa,eAATA,EACK,KAGQA,KA7MnB,SAAS0G,EAAI1G,GAGX,GAFAA,EAAOA,GAAQyC,IAEV,QAAS2D,EAAMpG,GAClB,MAAMuC,EAAc7D,OAAO,SAEzB,CACAmH,QAAS7F,IAIb,OAAOoG,EAAKpG,GA0Dd,SAASsH,EAAkB3D,GACzB,IAAIiE,EAAgBjE,EAAU3D,KAE9B,GAAIyD,EAAWoE,IAAID,GAEjB,OADAjF,EAAO8C,MAAM,sDAAwDmC,EAAgB,KAC3D,WAAnBjE,EAAUmE,KAGjB5B,EAAU0B,GAAiB,KAK7B,GAFAnE,EAAWM,IAAI6D,EAAejE,GAEP,WAAnBA,EAAUmE,KAEZ,CAEA,IAAIC,EAAmB,SAA0BC,GAM/C,QALe,IAAXA,IACFA,EAAStB,KAI0B,mBAA1BsB,EAAOJ,GAGhB,MAAMrF,EAAc7D,OAAO,uBAEzB,CACAmH,QAAS+B,IAMb,OAAOI,EAAOJ,WAIepB,IAA3B7C,EAAUsE,eACZ,QAAWF,EAAkBpE,EAAUsE,cAIzC/B,EAAU0B,GAAiBG,EAG3B5B,EAAgB3H,UAAUoJ,GAG1B,WAGE,IAFA,IAAIM,EAAO,GAEFC,EAAK,EAAGA,EAAK9H,UAAUlC,OAAQgK,IACtCD,EAAKC,GAAM9H,UAAU8H,GAKvB,OAFiBzH,KAAKkE,YAAYwD,KAAK1H,KAAMkH,GAE3BnH,MAAMC,KAAMiD,EAAU0E,kBAAoBH,EAAO,KAKvE,IAAK,IAAIC,EAAK,EAAG9F,EAAK5D,OAAOqC,KAAKsF,GAAO+B,EAAK9F,EAAGlE,OAAQgK,IAAM,CAC7D,IAAItC,EAAUxD,EAAG8F,GAEjB/B,EAAKP,GAAStC,cAAcI,GAG9B,MAA0B,WAAnBA,EAAUmE,KAGjB5B,EAAU0B,GAAiB,KAmE7B,OAnOA1B,EAAmB,QAAIA,EAEvBzH,OAAOmF,eAAesC,EAAW,OAAQ,CACvCrC,IA6EF,WAEE,OAAOpF,OAAOqC,KAAKsF,GAAM1B,KAAI,SAAU1E,GACrC,OAAOoG,EAAKpG,SAlDhB0G,EAAS,IAAIP,EAkMND,EA6BSoC,CAA4B1F,GAkB5C,OAjBAsD,EAAU1C,UAAW,SAAS,QAAS,GAAI0C,EAAU1C,UAAW,CAC9DyC,wBAAyBA,EACzBsC,gBAWF,SAAyBC,IACvB,QAAWtC,EAAWsC,IAXtBC,gBAAiB,KACjBC,aAAc,KACdC,WAAY,OAYPzC,EAGQD,GAkBb2C,EAAwB,WAC1B,SAASA,EAAsBtF,GAC7B5C,KAAK4C,UAAYA,EAqBnB,OAhBAsF,EAAsBpK,UAAUqK,sBAAwB,WAItD,OAHgBnI,KAAK4C,UAAUmB,eAGdC,KAAI,SAAUC,GAC7B,GAuBN,SAAkCA,GAChC,IAAIhB,EAAYgB,EAASK,eACzB,MAAkF,aAA1ErB,MAAAA,OAA6C,EAASA,EAAUmE,MAzBhEgB,CAAyBnE,GAAW,CACtC,IAAIoE,EAAUpE,EAASQ,eACvB,OAAO4D,EAAQhC,QAAU,IAAMgC,EAAQlC,QAEvC,OAAO,QAERmC,QAAO,SAAUC,GAClB,OAAOA,KACN5B,KAAK,MAGHuB,EAvBmB,GA0F5B,IAAI,gBAAiCpC,IAAlB1I,KAAKoL,SAAwB,CAC9CvG,EAAOyE,KAAK,mIAEZ,IAAI+B,EAAarL,KAAKoL,SAASxB,YAE3ByB,GAAcA,EAAWpI,QAAQ,SAAW,GAC9C4B,EAAOyE,KAAK,sNAIhB,IAAId,EAAgBN,EAAWM,cAI/BN,EAAWM,cAAgB,WAGzB,IAFA,IAAI4B,EAAO,GAEFC,EAAK,EAAGA,EAAK9H,UAAUlC,OAAQgK,IACtCD,EAAKC,GAAM9H,UAAU8H,GAUvB,OAJI,WACFxF,EAAOyE,KAAK,2pBAGPd,EAAc7F,WAAM+F,EAAW0B,IAGxC,IAAIgB,EAAWlD,GA9Df,SAAgCkD,EAAUpC,GACxCoC,EAAS1F,SAAS8D,kBAAkB,IAAI,KAAU,mBAAmB,SAAUhE,GAC7E,OAAO,IAAIsF,EAAsBtF,KAChC,YAIH4F,EAASvC,gBAAgBnE,EA/pBX,SA+pB8BsE,GAE5CoC,EAASvC,gBAAgB,UAAW,IAsDtCyC,CAAuBF,GACvB,O,sHCxvBIG,EAAY,WAOd,SAASA,EAAUrJ,EAAMsJ,EAAiBxB,GACxCpH,KAAKV,KAAOA,EACZU,KAAK4I,gBAAkBA,EACvB5I,KAAKoH,KAAOA,EACZpH,KAAK2H,mBAAoB,EAKzB3H,KAAKuH,aAAe,GACpBvH,KAAKuE,kBAAoB,OAGzBvE,KAAK6I,kBAAoB,KAuB3B,OApBAF,EAAU7K,UAAUgL,qBAAuB,SAAUC,GAEnD,OADA/I,KAAKuE,kBAAoBwE,EAClB/I,MAGT2I,EAAU7K,UAAUkL,qBAAuB,SAAUrB,GAEnD,OADA3H,KAAK2H,kBAAoBA,EAClB3H,MAGT2I,EAAU7K,UAAUmL,gBAAkB,SAAUnB,GAE9C,OADA9H,KAAKuH,aAAeO,EACb9H,MAGT2I,EAAU7K,UAAUoL,2BAA6B,SAAUC,GAEzD,OADAnJ,KAAK6I,kBAAoBM,EAClBnJ,MAGF2I,EA3CO,GA+DZ5G,EAAqB,YAuBrBqH,EAAW,WACb,SAASA,EAAS9J,EAAMsD,GACtB5C,KAAKV,KAAOA,EACZU,KAAK4C,UAAYA,EACjB5C,KAAKiD,UAAY,KACjBjD,KAAKqJ,UAAY,IAAI1D,IACrB3F,KAAKsJ,kBAAoB,IAAI3D,IAC7B3F,KAAKuJ,gBAAkB,IAAI5D,IAsW7B,OA9VAyD,EAAStL,UAAUqF,IAAM,SAAUuB,GAEjC,IAAI8E,EAAuBxJ,KAAKyJ,4BAA4B/E,GAE5D,IAAK1E,KAAKsJ,kBAAkBnC,IAAIqC,GAAuB,CACrD,IAAIE,EAAW,IAAI,KAGnB,GAFA1J,KAAKsJ,kBAAkBjG,IAAImG,EAAsBE,GAE7C1J,KAAKqE,cAAcmF,IAAyBxJ,KAAK2J,uBAEnD,IACE,IAAIC,EAAW5J,KAAK6J,uBAAuB,CACzC1F,mBAAoBqF,IAGlBI,GACFF,EAAS/F,QAAQiG,GAEnB,MAAO9E,KAMb,OAAO9E,KAAKsJ,kBAAkBnG,IAAIqG,GAAsBM,SAG1DV,EAAStL,UAAU2G,aAAe,SAAUtC,GAC1C,IAAIR,EAGA6H,EAAuBxJ,KAAKyJ,4BAA4BtH,MAAAA,OAAyC,EAASA,EAAQuC,YAClHqF,EAAyF,QAA7EpI,EAAKQ,MAAAA,OAAyC,EAASA,EAAQ4H,gBAA6B,IAAPpI,GAAgBA,EAErH,IAAI3B,KAAKqE,cAAcmF,KAAyBxJ,KAAK2J,uBAY9C,CAEL,GAAII,EACF,OAAO,KAEP,MAAMC,MAAM,WAAahK,KAAKV,KAAO,qBAhBvC,IACE,OAAOU,KAAK6J,uBAAuB,CACjC1F,mBAAoBqF,IAEtB,MAAO1E,GACP,GAAIiF,EACF,OAAO,KAEP,MAAMjF,IAadsE,EAAStL,UAAUwG,aAAe,WAChC,OAAOtE,KAAKiD,WAGdmG,EAAStL,UAAUmM,aAAe,SAAUhH,GAC1C,IAAIiH,EAAKvI,EAET,GAAIsB,EAAU3D,OAASU,KAAKV,KAC1B,MAAM0K,MAAM,yBAA2B/G,EAAU3D,KAAO,iBAAmBU,KAAKV,KAAO,KAGzF,GAAIU,KAAKiD,UACP,MAAM+G,MAAM,iBAAmBhK,KAAKV,KAAO,8BAK7C,GAFAU,KAAKiD,UAAYA,EAEZjD,KAAK2J,uBAAV,CAKA,GAwRJ,SAA0B1G,GACxB,MAAuC,UAAhCA,EAAUsB,kBAzRX4F,CAAiBlH,GACnB,IACEjD,KAAK6J,uBAAuB,CAC1B1F,mBAAoBpC,IAEtB,MAAO+C,IAOX,IAIE,IAAK,IAAIsF,GAAK,QAASpK,KAAKsJ,kBAAkBe,WAAYC,EAAKF,EAAGG,QAASD,EAAGE,KAAMF,EAAKF,EAAGG,OAAQ,CAClG,IAAIE,GAAK,QAAOH,EAAGI,MAAO,GACtBvG,EAAqBsG,EAAG,GACxBE,EAAmBF,EAAG,GAEtBjB,EAAuBxJ,KAAKyJ,4BAA4BtF,GAE5D,IAEE,IAAIyF,EAAW5J,KAAK6J,uBAAuB,CACzC1F,mBAAoBqF,IAEtBmB,EAAiBhH,QAAQiG,GACzB,MAAO9E,MAIX,MAAO8F,GACPV,EAAM,CACJW,MAAOD,GAET,QACA,IACMN,IAAOA,EAAGE,OAAS7I,EAAKyI,EAAGU,SAASnJ,EAAGvC,KAAKgL,GAChD,QACA,GAAIF,EAAK,MAAMA,EAAIW,UAKzBzB,EAAStL,UAAU8G,cAAgB,SAAUF,QACxB,IAAfA,IACFA,EAAa3C,GAGf/B,KAAKsJ,kBAAkB7F,OAAOiB,GAC9B1E,KAAKqJ,UAAU5F,OAAOiB,IAKxB0E,EAAStL,UAAU2F,OAAS,WAC1B,OAAO,QAAUzD,UAAM,OAAQ,GAAQ,WACrC,IAAI+K,EACJ,OAAO,QAAY/K,MAAM,SAAU2B,GACjC,OAAQA,EAAGqJ,OACT,KAAK,EAEH,OADAD,EAAWnN,MAAMU,KAAK0B,KAAKqJ,UAAU4B,UAC9B,CAAC,EAENvH,QAAQI,KAAI,SAAc,QAAc,IAAI,QAAOiH,EAASzC,QAAO,SAAUD,GAC7E,MAAO,aAAcA,KAGtBrE,KAAI,SAAUqE,GACb,OAAOA,EAAQvF,SAASW,eACpB,QAAOsH,EAASzC,QAAO,SAAUD,GACrC,MAAO,YAAaA,KAGrBrE,KAAI,SAAUqE,GACb,OAAOA,EAAQ6C,iBAGnB,KAAK,EAGH,OAFAvJ,EAAGwJ,OAEI,CAAC,WAQlB/B,EAAStL,UAAUsN,eAAiB,WAClC,OAAyB,MAAlBpL,KAAKiD,WAGdmG,EAAStL,UAAUuG,cAAgB,SAAUK,GAK3C,YAJmB,IAAfA,IACFA,EAAa3C,GAGR/B,KAAKqJ,UAAUlC,IAAIzC,IAG5B0E,EAAStL,UAAU0G,WAAa,SAAU6G,GACxC,IAAIC,EAAK3J,OAEI,IAAT0J,IACFA,EAAO,IAGT,IAAIjB,EAAKiB,EAAKlJ,QACVA,OAAiB,IAAPiI,EAAgB,GAAKA,EAC/BZ,EAAuBxJ,KAAKyJ,4BAA4B4B,EAAKlH,oBAEjE,GAAInE,KAAKqE,cAAcmF,GACrB,MAAMQ,MAAMhK,KAAKV,KAAO,IAAMkK,EAAuB,kCAGvD,IAAKxJ,KAAKoL,iBACR,MAAMpB,MAAM,aAAehK,KAAKV,KAAO,gCAGzC,IAAIsK,EAAW5J,KAAK6J,uBAAuB,CACzC1F,mBAAoBqF,EACpBrH,QAASA,IAGX,IAEE,IAAK,IAAImI,GAAK,QAAStK,KAAKsJ,kBAAkBe,WAAYI,EAAKH,EAAGC,QAASE,EAAGD,KAAMC,EAAKH,EAAGC,OAAQ,CAClG,IAAIgB,GAAK,QAAOd,EAAGC,MAAO,GACtBvG,EAAqBoH,EAAG,GACxBZ,EAAmBY,EAAG,GAItB/B,IAF+BxJ,KAAKyJ,4BAA4BtF,IAGlEwG,EAAiBhH,QAAQiG,IAG7B,MAAO4B,GACPF,EAAM,CACJT,MAAOW,GAET,QACA,IACMf,IAAOA,EAAGD,OAAS7I,EAAK2I,EAAGQ,SAASnJ,EAAGvC,KAAKkL,GAChD,QACA,GAAIgB,EAAK,MAAMA,EAAIT,OAIvB,OAAOjB,GAYTR,EAAStL,UAAU2N,OAAS,SAAUtC,EAAUzE,GAC9C,IAAI/C,EAEA6H,EAAuBxJ,KAAKyJ,4BAA4B/E,GACxDgH,EAA8E,QAAzD/J,EAAK3B,KAAKuJ,gBAAgBpG,IAAIqG,UAA0C,IAAP7H,EAAgBA,EAAK,IAAIgK,IACnHD,EAAkBE,IAAIzC,GACtBnJ,KAAKuJ,gBAAgBlG,IAAImG,EAAsBkC,GAC/C,IAAIG,EAAmB7L,KAAKqJ,UAAUlG,IAAIqG,GAM1C,OAJIqC,GACF1C,EAAS0C,EAAkBrC,GAGtB,WACLkC,EAAkBjI,OAAO0F,KAS7BC,EAAStL,UAAUgO,sBAAwB,SAAUlC,EAAUlF,GAC7D,IAAIqH,EAAKpK,EAELqK,EAAYhM,KAAKuJ,gBAAgBpG,IAAIuB,GAEzC,GAAKsH,EAIL,IACE,IAAK,IAAIC,GAAc,QAASD,GAAYE,EAAgBD,EAAY1B,QAAS2B,EAAc1B,KAAM0B,EAAgBD,EAAY1B,OAAQ,CACvI,IAAIpB,EAAW+C,EAAcxB,MAE7B,IACEvB,EAASS,EAAUlF,GACnB,MAAO0F,MAGX,MAAO+B,GACPJ,EAAM,CACJlB,MAAOsB,GAET,QACA,IACMD,IAAkBA,EAAc1B,OAAS7I,EAAKsK,EAAYnB,SAASnJ,EAAGvC,KAAK6M,GAC/E,QACA,GAAIF,EAAK,MAAMA,EAAIlB,SAKzBzB,EAAStL,UAAU+L,uBAAyB,SAAUlI,GACpD,IAyDmC+C,EAzD/BP,EAAqBxC,EAAGwC,mBACxBiG,EAAKzI,EAAGQ,QACRA,OAAiB,IAAPiI,EAAgB,GAAKA,EAC/BR,EAAW5J,KAAKqJ,UAAUlG,IAAIgB,GAElC,IAAKyF,GAAY5J,KAAKiD,YACpB2G,EAAW5J,KAAKiD,UAAU2F,gBAAgB5I,KAAK4C,UAAW,CACxDuB,oBAkD+BO,EAlDmBP,EAmDjDO,IAAe3C,OAAqB+D,EAAYpB,GAlDjDvC,QAASA,IAEXnC,KAAKqJ,UAAUhG,IAAIc,EAAoByF,GAOvC5J,KAAK8L,sBAAsBlC,EAAUzF,GAOjCnE,KAAKiD,UAAU4F,mBACjB,IACE7I,KAAKiD,UAAU4F,kBAAkB7I,KAAK4C,UAAWuB,EAAoByF,GACrE,MAAOU,IAKb,OAAOV,GAAY,MAGrBR,EAAStL,UAAU2L,4BAA8B,SAAU/E,GAKzD,YAJmB,IAAfA,IACFA,EAAa3C,GAGX/B,KAAKiD,UACAjD,KAAKiD,UAAU0E,kBAAoBjD,EAAa3C,EAEhD2C,GAIX0E,EAAStL,UAAU6L,qBAAuB,WACxC,QAAS3J,KAAKiD,WAAkD,aAArCjD,KAAKiD,UAAUsB,mBAKrC6E,EA7WM,GAgZf,IAAIgD,EAAqB,WACvB,SAASA,EAAmB9M,GAC1BU,KAAKV,KAAOA,EACZU,KAAKqM,UAAY,IAAI1G,IAyDvB,OA5CAyG,EAAmBtO,UAAU+G,aAAe,SAAU5B,GACpD,IAAIgB,EAAWjE,KAAKoE,YAAYnB,EAAU3D,MAE1C,GAAI2E,EAASmH,iBACX,MAAM,IAAIpB,MAAM,aAAe/G,EAAU3D,KAAO,qCAAuCU,KAAKV,MAG9F2E,EAASgG,aAAahH,IAGxBmJ,EAAmBtO,UAAUmH,wBAA0B,SAAUhC,GAChDjD,KAAKoE,YAAYnB,EAAU3D,MAE7B8L,kBAEXpL,KAAKqM,UAAU5I,OAAOR,EAAU3D,MAGlCU,KAAK6E,aAAa5B,IAWpBmJ,EAAmBtO,UAAUsG,YAAc,SAAU9E,GACnD,GAAIU,KAAKqM,UAAUlF,IAAI7H,GACrB,OAAOU,KAAKqM,UAAUlJ,IAAI7D,GAI5B,IAAI2E,EAAW,IAAImF,EAAS9J,EAAMU,MAElC,OADAA,KAAKqM,UAAUhJ,IAAI/D,EAAM2E,GAClBA,GAGTmI,EAAmBtO,UAAUiG,aAAe,WAC1C,OAAOnG,MAAMU,KAAK0B,KAAKqM,UAAUpB,WAG5BmB,EA5DgB,I,mCC9dzB,SAASE,IACP,IAAK,IAAIC,EAAI,EAAG7O,EAAI,EAAG8O,EAAK7M,UAAUlC,OAAQC,EAAI8O,EAAI9O,IACpD6O,GAAK5M,UAAUjC,GAAGD,OAGf,IAAIgP,EAAI7O,MAAM2O,GAAIG,EAAI,EAA3B,IAA8BhP,EAAI,EAAGA,EAAI8O,EAAI9O,IAC3C,IAAK,IAAIiP,EAAIhN,UAAUjC,GAAIkP,EAAI,EAAGC,EAAKF,EAAElP,OAAQmP,EAAIC,EAAID,IAAKF,IAC5DD,EAAEC,GAAKC,EAAEC,GAIb,OAAOH,EAoBT,IAAI9K,E,yGAMJ,IAaImL,EAbAzD,EAAY,IAehB,SAAWyD,GACTA,EAASA,EAAgB,MAAI,GAAK,QAClCA,EAASA,EAAkB,QAAI,GAAK,UACpCA,EAASA,EAAe,KAAI,GAAK,OACjCA,EAASA,EAAe,KAAI,GAAK,OACjCA,EAASA,EAAgB,MAAI,GAAK,QAClCA,EAASA,EAAiB,OAAI,GAAK,SANrC,CAOGA,IAAaA,EAAW,KAE3B,IAAIC,EAAoB,CACtB,MAASD,EAASE,MAClB,QAAWF,EAASG,QACpB,KAAQH,EAASI,KACjB,KAAQJ,EAASK,KACjB,MAASL,EAASM,MAClB,OAAUN,EAASO,QAMjBC,EAAkBR,EAASI,KAQ3BK,IAAiB5L,EAAK,IAAOmL,EAASE,OAAS,MAAOrL,EAAGmL,EAASG,SAAW,MAAOtL,EAAGmL,EAASI,MAAQ,OAAQvL,EAAGmL,EAASK,MAAQ,OAAQxL,EAAGmL,EAASM,OAAS,QAASzL,GAO1K6L,EAAoB,SAA2B5D,EAAU6D,GAG3D,IAFA,IAAIjG,EAAO,GAEFC,EAAK,EAAGA,EAAK9H,UAAUlC,OAAQgK,IACtCD,EAAKC,EAAK,GAAK9H,UAAU8H,GAG3B,KAAIgG,EAAU7D,EAAS8D,UAAvB,CAIA,IAAIC,GAAM,IAAIC,MAAOC,cACjBC,EAASP,EAAcE,GAE3B,IAAIK,EAGF,MAAM,IAAI9D,MAAM,8DAAgEyD,EAAU,KAF1FrI,QAAQ0I,GAAQ/N,MAAMqF,QAASkH,EAAe,CAAC,IAAMqB,EAAM,MAAQ/D,EAAStK,KAAO,KAAMkI,MAMzFuG,EAAS,WAOX,SAASA,EAAOzO,GACdU,KAAKV,KAAOA,EAKZU,KAAKgO,UAAYV,EAMjBtN,KAAKiO,YAAcT,EAKnBxN,KAAKkO,gBAAkB,KAKvB7E,EAAU7H,KAAKxB,MA8GjB,OA3GAjC,OAAOmF,eAAe6K,EAAOjQ,UAAW,WAAY,CAClDqF,IAAK,WACH,OAAOnD,KAAKgO,WAEd3K,IAAK,SAAaC,GAChB,KAAMA,KAAOwJ,GACX,MAAM,IAAI9N,UAAU,kBAAqBsE,EAAM,4BAGjDtD,KAAKgO,UAAY1K,GAEnBC,YAAY,EACZC,cAAc,IAGhBuK,EAAOjQ,UAAU+I,YAAc,SAAUvD,GACvCtD,KAAKgO,UAA2B,iBAAR1K,EAAmByJ,EAAkBzJ,GAAOA,GAGtEvF,OAAOmF,eAAe6K,EAAOjQ,UAAW,aAAc,CACpDqF,IAAK,WACH,OAAOnD,KAAKiO,aAEd5K,IAAK,SAAaC,GAChB,GAAmB,mBAARA,EACT,MAAM,IAAItE,UAAU,qDAGtBgB,KAAKiO,YAAc3K,GAErBC,YAAY,EACZC,cAAc,IAEhBzF,OAAOmF,eAAe6K,EAAOjQ,UAAW,iBAAkB,CACxDqF,IAAK,WACH,OAAOnD,KAAKkO,iBAEd7K,IAAK,SAAaC,GAChBtD,KAAKkO,gBAAkB5K,GAEzBC,YAAY,EACZC,cAAc,IAMhBuK,EAAOjQ,UAAUiH,MAAQ,WAGvB,IAFA,IAAIyC,EAAO,GAEFC,EAAK,EAAGA,EAAK9H,UAAUlC,OAAQgK,IACtCD,EAAKC,GAAM9H,UAAU8H,GAGvBzH,KAAKkO,iBAAmBlO,KAAKkO,gBAAgBnO,MAAMC,KAAMsM,EAAe,CAACtM,KAAM8M,EAASE,OAAQxF,IAEhGxH,KAAKiO,YAAYlO,MAAMC,KAAMsM,EAAe,CAACtM,KAAM8M,EAASE,OAAQxF,KAGtEuG,EAAOjQ,UAAUuH,IAAM,WAGrB,IAFA,IAAImC,EAAO,GAEFC,EAAK,EAAGA,EAAK9H,UAAUlC,OAAQgK,IACtCD,EAAKC,GAAM9H,UAAU8H,GAGvBzH,KAAKkO,iBAAmBlO,KAAKkO,gBAAgBnO,MAAMC,KAAMsM,EAAe,CAACtM,KAAM8M,EAASG,SAAUzF,IAElGxH,KAAKiO,YAAYlO,MAAMC,KAAMsM,EAAe,CAACtM,KAAM8M,EAASG,SAAUzF,KAGxEuG,EAAOjQ,UAAUqQ,KAAO,WAGtB,IAFA,IAAI3G,EAAO,GAEFC,EAAK,EAAGA,EAAK9H,UAAUlC,OAAQgK,IACtCD,EAAKC,GAAM9H,UAAU8H,GAGvBzH,KAAKkO,iBAAmBlO,KAAKkO,gBAAgBnO,MAAMC,KAAMsM,EAAe,CAACtM,KAAM8M,EAASI,MAAO1F,IAE/FxH,KAAKiO,YAAYlO,MAAMC,KAAMsM,EAAe,CAACtM,KAAM8M,EAASI,MAAO1F,KAGrEuG,EAAOjQ,UAAU4I,KAAO,WAGtB,IAFA,IAAIc,EAAO,GAEFC,EAAK,EAAGA,EAAK9H,UAAUlC,OAAQgK,IACtCD,EAAKC,GAAM9H,UAAU8H,GAGvBzH,KAAKkO,iBAAmBlO,KAAKkO,gBAAgBnO,MAAMC,KAAMsM,EAAe,CAACtM,KAAM8M,EAASK,MAAO3F,IAE/FxH,KAAKiO,YAAYlO,MAAMC,KAAMsM,EAAe,CAACtM,KAAM8M,EAASK,MAAO3F,KAGrEuG,EAAOjQ,UAAU+M,MAAQ,WAGvB,IAFA,IAAIrD,EAAO,GAEFC,EAAK,EAAGA,EAAK9H,UAAUlC,OAAQgK,IACtCD,EAAKC,GAAM9H,UAAU8H,GAGvBzH,KAAKkO,iBAAmBlO,KAAKkO,gBAAgBnO,MAAMC,KAAMsM,EAAe,CAACtM,KAAM8M,EAASM,OAAQ5F,IAEhGxH,KAAKiO,YAAYlO,MAAMC,KAAMsM,EAAe,CAACtM,KAAM8M,EAASM,OAAQ5F,KAG/DuG,EA3II,GA8Ib,SAASlH,EAAYuH,GACnB/E,EAAUrG,SAAQ,SAAUqL,GAC1BA,EAAKxH,YAAYuH,MAIrB,SAASE,EAAkBvH,EAAa5E,GAkDtC,IAjDA,IAAIoM,EAAU,SAAiB3E,GAC7B,IAAI4E,EAAiB,KAEjBrM,GAAWA,EAAQiM,QACrBI,EAAiBzB,EAAkB5K,EAAQiM,QAI3CxE,EAAS6E,eADS,OAAhB1H,EACwB,KAEA,SAAU6C,EAAUwE,GAG5C,IAFA,IAAI5G,EAAO,GAEFC,EAAK,EAAGA,EAAK9H,UAAUlC,OAAQgK,IACtCD,EAAKC,EAAK,GAAK9H,UAAU8H,GAG3B,IAAIiH,EAAUlH,EAAKxD,KAAI,SAAU2K,GAC/B,GAAW,MAAPA,EACF,OAAO,KACF,GAAmB,iBAARA,EAChB,OAAOA,EACF,GAAmB,iBAARA,GAAmC,kBAARA,EAC3C,OAAOA,EAAIxP,WACN,GAAIwP,aAAe3E,MACxB,OAAO2E,EAAID,QAEX,IACE,OAAOE,KAAKC,UAAUF,GACtB,MAAOG,GACP,OAAO,SAGVxG,QAAO,SAAUqG,GAClB,OAAOA,KACNhI,KAAK,KAEJyH,IAAUI,MAAAA,EAAuDA,EAAiB5E,EAAS8D,WAC7F3G,EAAY,CACVqH,MAAOtB,EAASsB,GAAOW,cACvBL,QAASA,EACTlH,KAAMA,EACNJ,KAAMwC,EAAStK,SAOhBmI,EAAK,EAAGuH,EAAc3F,EAAW5B,EAAKuH,EAAYvR,OAAQgK,IAAM,CAGvE8G,EAFeS,EAAYvH,O,0eCxO3BwH,EAAoB,SAA2BC,GAKjD,IAHA,IAAIC,EAAM,GACNzQ,EAAI,EAEChB,EAAI,EAAGA,EAAIwR,EAAIzR,OAAQC,IAAK,CACnC,IAAI0R,EAAIF,EAAIG,WAAW3R,GAEnB0R,EAAI,IACND,EAAIzQ,KAAO0Q,EACFA,EAAI,MACbD,EAAIzQ,KAAO0Q,GAAK,EAAI,IACpBD,EAAIzQ,KAAW,GAAJ0Q,EAAS,KACM,QAAZ,MAAJA,IAA0B1R,EAAI,EAAIwR,EAAIzR,QAA+C,QAAZ,MAAxByR,EAAIG,WAAW3R,EAAI,KAE9E0R,EAAI,QAAgB,KAAJA,IAAe,KAA6B,KAAtBF,EAAIG,aAAa3R,IACvDyR,EAAIzQ,KAAO0Q,GAAK,GAAK,IACrBD,EAAIzQ,KAAO0Q,GAAK,GAAK,GAAK,IAC1BD,EAAIzQ,KAAO0Q,GAAK,EAAI,GAAK,IACzBD,EAAIzQ,KAAW,GAAJ0Q,EAAS,MAEpBD,EAAIzQ,KAAO0Q,GAAK,GAAK,IACrBD,EAAIzQ,KAAO0Q,GAAK,EAAI,GAAK,IACzBD,EAAIzQ,KAAW,GAAJ0Q,EAAS,KAIxB,OAAOD,GA6CLG,EAAS,CAIXC,eAAgB,KAKhBC,eAAgB,KAMhBC,sBAAuB,KAMvBC,sBAAuB,KAMvBC,kBAAmB,iEAKnB,mBACE,OAAO3P,KAAK2P,kBAAoB,OAMlC,2BACE,OAAO3P,KAAK2P,kBAAoB,OAUlCC,mBAAoC,mBAATC,KAW3BC,gBAAiB,SAAyBC,EAAOC,GAC/C,IAAKpS,MAAMgB,QAAQmR,GACjB,MAAM/F,MAAM,iDAGdhK,KAAKiQ,QAIL,IAHA,IAAIC,EAAgBF,EAAUhQ,KAAKyP,sBAAwBzP,KAAKuP,eAC5DY,EAAS,GAEJzS,EAAI,EAAGA,EAAIqS,EAAMtS,OAAQC,GAAK,EAAG,CACxC,IAAI0S,EAAQL,EAAMrS,GACd2S,EAAY3S,EAAI,EAAIqS,EAAMtS,OAC1B6S,EAAQD,EAAYN,EAAMrS,EAAI,GAAK,EACnC6S,EAAY7S,EAAI,EAAIqS,EAAMtS,OAC1B+S,EAAQD,EAAYR,EAAMrS,EAAI,GAAK,EACnC+S,EAAWL,GAAS,EACpBM,GAAoB,EAARN,IAAiB,EAAIE,GAAS,EAC1CK,GAAoB,GAARL,IAAiB,EAAIE,GAAS,EAC1CI,EAAmB,GAARJ,EAEVD,IACHK,EAAW,GAENP,IACHM,EAAW,KAIfR,EAAO3O,KAAK0O,EAAcO,GAAWP,EAAcQ,GAAWR,EAAcS,GAAWT,EAAcU,IAGvG,OAAOT,EAAOxJ,KAAK,KAWrBkK,aAAc,SAAsBd,EAAOC,GAGzC,OAAIhQ,KAAK4P,qBAAuBI,EACvBc,KAAKf,GAGP/P,KAAK8P,gBAAgBb,EAAkBc,GAAQC,IAWxDe,aAAc,SAAsBhB,EAAOC,GAGzC,OAAIhQ,KAAK4P,qBAAuBI,EACvBH,KAAKE,GAhKM,SAA2BiB,GAMjD,IAJA,IAAI7B,EAAM,GACN8B,EAAM,EACN7B,EAAI,EAED6B,EAAMD,EAAMvT,QAAQ,CACzB,IAAIyT,EAAKF,EAAMC,KAEf,GAAIC,EAAK,IACP/B,EAAIC,KAAOrJ,OAAOoL,aAAaD,QAC1B,GAAIA,EAAK,KAAOA,EAAK,IAAK,CAC/B,IAAIE,EAAKJ,EAAMC,KACf9B,EAAIC,KAAOrJ,OAAOoL,cAAmB,GAALD,IAAY,EAAS,GAALE,QAC3C,GAAIF,EAAK,KAAOA,EAAK,IAAK,CAE/B,IAGIG,IAAW,EAALH,IAAW,IAAW,IAH5BE,EAAKJ,EAAMC,QAGwB,IAAW,IAF9CK,EAAKN,EAAMC,QAE0C,EAAS,GADzDD,EAAMC,MACyD,MACxE9B,EAAIC,KAAOrJ,OAAOoL,aAAa,OAAUE,GAAK,KAC9ClC,EAAIC,KAAOrJ,OAAOoL,aAAa,OAAc,KAAJE,QACpC,CACDD,EAAKJ,EAAMC,KAAf,IACIK,EAAKN,EAAMC,KACf9B,EAAIC,KAAOrJ,OAAOoL,cAAmB,GAALD,IAAY,IAAW,GAALE,IAAY,EAAS,GAALE,IAItE,OAAOnC,EAAIxI,KAAK,IAsIP4K,CAAkBvR,KAAKwR,wBAAwBzB,EAAOC,KAkB/DwB,wBAAyB,SAAiCzB,EAAOC,GAC/DhQ,KAAKiQ,QAIL,IAHA,IAAIwB,EAAgBzB,EAAUhQ,KAAK0P,sBAAwB1P,KAAKwP,eAC5DW,EAAS,GAEJzS,EAAI,EAAGA,EAAIqS,EAAMtS,QAAS,CACjC,IAAI2S,EAAQqB,EAAc1B,EAAM2B,OAAOhU,MAEnC4S,EADY5S,EAAIqS,EAAMtS,OACFgU,EAAc1B,EAAM2B,OAAOhU,IAAM,EAGrD8S,IAFF9S,EACkBqS,EAAMtS,OACFgU,EAAc1B,EAAM2B,OAAOhU,IAAM,GAGrDiU,IAFFjU,EACkBqS,EAAMtS,OACFgU,EAAc1B,EAAM2B,OAAOhU,IAAM,GAGzD,KAFEA,EAEW,MAAT0S,GAA0B,MAATE,GAA0B,MAATE,GAA0B,MAATmB,EACrD,MAAM3H,QAGR,IAAIyG,EAAWL,GAAS,EAAIE,GAAS,EAGrC,GAFAH,EAAO3O,KAAKiP,GAEE,KAAVD,EAAc,CAChB,IAAIE,EAAWJ,GAAS,EAAI,IAAOE,GAAS,EAG5C,GAFAL,EAAO3O,KAAKkP,GAEE,KAAViB,EAAc,CAChB,IAAIhB,EAAWH,GAAS,EAAI,IAAOmB,EACnCxB,EAAO3O,KAAKmP,KAKlB,OAAOR,GAQTF,MAAO,WACL,IAAKjQ,KAAKuP,eAAgB,CACxBvP,KAAKuP,eAAiB,GACtBvP,KAAKwP,eAAiB,GACtBxP,KAAKyP,sBAAwB,GAC7BzP,KAAK0P,sBAAwB,GAE7B,IAAK,IAAIhS,EAAI,EAAGA,EAAIsC,KAAK4R,aAAanU,OAAQC,IAC5CsC,KAAKuP,eAAe7R,GAAKsC,KAAK4R,aAAaF,OAAOhU,GAClDsC,KAAKwP,eAAexP,KAAKuP,eAAe7R,IAAMA,EAC9CsC,KAAKyP,sBAAsB/R,GAAKsC,KAAK6R,qBAAqBH,OAAOhU,GACjEsC,KAAK0P,sBAAsB1P,KAAKyP,sBAAsB/R,IAAMA,EAExDA,GAAKsC,KAAK2P,kBAAkBlS,SAC9BuC,KAAKwP,eAAexP,KAAK6R,qBAAqBH,OAAOhU,IAAMA,EAC3DsC,KAAK0P,sBAAsB1P,KAAK4R,aAAaF,OAAOhU,IAAMA,MAwDpE,SAASoU,EAASpH,GAChB,OAAOzC,OAAWnC,EAAW4E,GAkB/B,SAASzC,EAAWvI,EAAQE,GAC1B,KAAMA,aAAkB7B,QACtB,OAAO6B,EAGT,OAAQA,EAAO1B,aACb,KAAK0P,KAIH,OAAO,IAAIA,KADKhO,EACUmS,WAE5B,KAAKhU,YACY+H,IAAXpG,IACFA,EAAS,IAGX,MAEF,KAAK9B,MAEH8B,EAAS,GACT,MAEF,QAEE,OAAOE,EAGX,IAAK,IAAIoS,KAAQpS,EAEVA,EAAOE,eAAekS,IAWd,cAXmCA,IAIhDtS,EAAOsS,GAAQ/J,EAAWvI,EAAOsS,GAAOpS,EAAOoS,KAGjD,OAAOtS,EAwBT,IAAIuS,EAAW,WACb,SAASA,IACP,IAAI3P,EAAQtC,KAEZA,KAAKkS,OAAS,aAEdlS,KAAK2D,QAAU,aAEf3D,KAAK8J,QAAU,IAAIpG,SAAQ,SAAUC,EAASuO,GAC5C5P,EAAMqB,QAAUA,EAChBrB,EAAM4P,OAASA,KAoCnB,OA1BAD,EAASnU,UAAUqU,aAAe,SAAUhJ,GAC1C,IAAI7G,EAAQtC,KAEZ,OAAO,SAAU6K,EAAOH,GAClBG,EACFvI,EAAM4P,OAAOrH,GAEbvI,EAAMqB,QAAQ+G,GAGQ,mBAAbvB,IAGT7G,EAAMwH,QAAQsI,OAAM,eAII,IAApBjJ,EAAS1L,OACX0L,EAAS0B,GAET1B,EAAS0B,EAAOH,MAMjBuH,EA9CM,GAkEf,SAASI,EAAoBC,EAAOC,GAClC,GAAID,EAAME,IACR,MAAM,IAAIxI,MAAM,gHAIlB,IAIIyI,EAAUF,GAAa,eACvBG,EAAMJ,EAAMI,KAAO,EACnBC,EAAML,EAAMK,KAAOL,EAAMM,QAE7B,IAAKD,EACH,MAAM,IAAI3I,MAAM,wDAGlB,IAAI6I,GAAU,QAAS,CAErBC,IAAK,kCAAoCL,EACzCM,IAAKN,EACLC,IAAKA,EACLM,IAAKN,EAAM,KACXO,UAAWP,EACXC,IAAKA,EACLC,QAASD,EACTnK,SAAU,CACR0K,iBAAkB,SAClBC,WAAY,KAEbb,GAIH,MAAO,CAAChD,EAAOuB,aAAajC,KAAKC,UA7BpB,CACXuE,IAAK,OACLhM,KAAM,SA6BR,GAAQkI,EAAOuB,aAAajC,KAAKC,UAAUgE,IAE3C,GALgB,IAKGlM,KAAK,KAyB1B,SAAS0M,IACP,MAAyB,oBAAd9S,WAA+D,iBAA3BA,UAAqB,UAC3DA,UAAqB,UAErB,GAYX,SAAS+S,IACP,MAAyB,oBAAXC,WAEXA,OAAgB,SAAKA,OAAiB,UAAKA,OAAiB,WAAM,oDAAoDhU,KAAK8T,KAUhI,SAASG,IACP,IACE,MAA0D,qBAAnDzV,OAAOD,UAAUqB,SAASC,KAAK,EAAAqU,EAAOC,SAC7C,MAAO5O,GACP,OAAO,GAQX,SAAS6O,IACP,MAAuB,iBAATvW,MAAqBA,KAAKA,OAASA,KAGnD,SAASwW,IACP,IAAIC,EAA4B,iBAAXC,OAAsBA,OAAOD,QAA6B,iBAAZE,QAAuBA,QAAQF,aAAU/N,EAC5G,MAA0B,iBAAZ+N,QAAuC/N,IAAf+N,EAAQG,GAShD,SAASC,IACP,MAA4B,iBAAd1T,WAAmD,gBAAzBA,UAAmB,QAK7D,SAAS2T,IACP,OAAOb,IAAQhT,QAAQ,cAAgB,EAKzC,SAAS8T,IACP,IAAIC,EAAKf,IACT,OAAOe,EAAG/T,QAAQ,UAAY,GAAK+T,EAAG/T,QAAQ,aAAe,EAK/D,SAASgU,IACP,OAAOhB,IAAQhT,QAAQ,eAAiB,EAe1C,SAASiU,IACP,OAAQd,KAAYjT,UAAUgU,UAAUC,SAAS,YAAcjU,UAAUgU,UAAUC,SAAS,UAwG9F,IAGIC,EAAgB,SAAUC,GAG5B,SAASD,EAAcE,EAAMjG,EAASkG,GACpC,IAAItS,EAAQoS,EAAOtV,KAAKY,KAAM0O,IAAY1O,KAc1C,OAZAsC,EAAMqS,KAAOA,EACbrS,EAAMsS,WAAaA,EACnBtS,EAAMhD,KAXO,gBAcbvB,OAAOS,eAAe8D,EAAOmS,EAAc3W,WAGvCkM,MAAM6K,mBACR7K,MAAM6K,kBAAkBvS,EAAO0F,EAAalK,UAAUE,QAGjDsE,EAGT,OApBA,QAAUmS,EAAeC,GAoBlBD,EArBW,CAsBlBzK,OAEEhC,EAAe,WACjB,SAASA,EAAaK,EAASyM,EAAaC,GAC1C/U,KAAKqI,QAAUA,EACfrI,KAAK8U,YAAcA,EACnB9U,KAAK+U,OAASA,EAoBhB,OAjBA/M,EAAalK,UAAUE,OAAS,SAAU2W,GAGxC,IAFA,IAAIK,EAAO,GAEFvN,EAAK,EAAGA,EAAK9H,UAAUlC,OAAQgK,IACtCuN,EAAKvN,EAAK,GAAK9H,UAAU8H,GAG3B,IAAImN,EAAaI,EAAK,IAAM,GACxBC,EAAWjV,KAAKqI,QAAU,IAAMsM,EAChCO,EAAWlV,KAAK+U,OAAOJ,GACvBjG,EAAUwG,EAAWC,EAAgBD,EAAUN,GAAc,QAE7DQ,EAAcpV,KAAK8U,YAAc,KAAOpG,EAAU,KAAOuG,EAAW,KACpEpK,EAAQ,IAAI4J,EAAcQ,EAAUG,EAAaR,GACrD,OAAO/J,GAGF7C,EAxBU,GA2BnB,SAASmN,EAAgBD,EAAUF,GACjC,OAAOE,EAASG,QAAQC,GAAS,SAAUC,EAAG1V,GAC5C,IAAI6K,EAAQsK,EAAKnV,GACjB,OAAgB,MAAT6K,EAAgB3E,OAAO2E,GAAS,IAAM7K,EAAM,QAIvD,IAAIyV,EAAU,gBAsLd,SAASE,EAASvV,EAAKJ,GACrB,OAAO9B,OAAOD,UAAUgC,eAAeV,KAAKa,EAAKJ,IA6JxC,WACT,SAAS4V,IAMPzV,KAAK0V,OAAS,GAMd1V,KAAK2V,KAAO,GAOZ3V,KAAK4V,GAAK,GAMV5V,KAAK6V,KAAO,GAKZ7V,KAAK8V,OAAS,EAKd9V,KAAK+V,OAAS,EACd/V,KAAKgW,UAAY,GACjBhW,KAAK6V,KAAK,GAAK,IAEf,IAAK,IAAInY,EAAI,EAAGA,EAAIsC,KAAKgW,YAAatY,EACpCsC,KAAK6V,KAAKnY,GAAK,EAGjBsC,KAAKiW,QAGPR,EAAK3X,UAAUmY,MAAQ,WACrBjW,KAAK0V,OAAO,GAAK,WACjB1V,KAAK0V,OAAO,GAAK,WACjB1V,KAAK0V,OAAO,GAAK,WACjB1V,KAAK0V,OAAO,GAAK,UACjB1V,KAAK0V,OAAO,GAAK,WACjB1V,KAAK8V,OAAS,EACd9V,KAAK+V,OAAS,GAUhBN,EAAK3X,UAAUoY,UAAY,SAAUC,EAAKC,GACnCA,IACHA,EAAS,GAGX,IAAIC,EAAIrW,KAAK4V,GAEb,GAAmB,iBAARO,EACT,IAAK,IAAIzY,EAAI,EAAGA,EAAI,GAAIA,IAStB2Y,EAAE3Y,GAAKyY,EAAI9G,WAAW+G,IAAW,GAAKD,EAAI9G,WAAW+G,EAAS,IAAM,GAAKD,EAAI9G,WAAW+G,EAAS,IAAM,EAAID,EAAI9G,WAAW+G,EAAS,GACnIA,GAAU,OAGZ,IAAS1Y,EAAI,EAAGA,EAAI,GAAIA,IACtB2Y,EAAE3Y,GAAKyY,EAAIC,IAAW,GAAKD,EAAIC,EAAS,IAAM,GAAKD,EAAIC,EAAS,IAAM,EAAID,EAAIC,EAAS,GACvFA,GAAU,EAKd,IAAS1Y,EAAI,GAAIA,EAAI,GAAIA,IAAK,CAC5B,IAAI4Y,EAAID,EAAE3Y,EAAI,GAAK2Y,EAAE3Y,EAAI,GAAK2Y,EAAE3Y,EAAI,IAAM2Y,EAAE3Y,EAAI,IAChD2Y,EAAE3Y,GAA2B,YAArB4Y,GAAK,EAAIA,IAAM,IAGzB,IAKIC,EAAG7J,EALHC,EAAI3M,KAAK0V,OAAO,GAChBc,EAAIxW,KAAK0V,OAAO,GAChBtG,EAAIpP,KAAK0V,OAAO,GAChBe,EAAIzW,KAAK0V,OAAO,GAChB5Q,EAAI9E,KAAK0V,OAAO,GAGpB,IAAShY,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACvBA,EAAI,GACFA,EAAI,IACN6Y,EAAIE,EAAID,GAAKpH,EAAIqH,GACjB/J,EAAI,aAEJ6J,EAAIC,EAAIpH,EAAIqH,EACZ/J,EAAI,YAGFhP,EAAI,IACN6Y,EAAIC,EAAIpH,EAAIqH,GAAKD,EAAIpH,GACrB1C,EAAI,aAEJ6J,EAAIC,EAAIpH,EAAIqH,EACZ/J,EAAI,YAIJ4J,GAAK3J,GAAK,EAAIA,IAAM,IAAM4J,EAAIzR,EAAI4H,EAAI2J,EAAE3Y,GAAK,WACjDoH,EAAI2R,EACJA,EAAIrH,EACJA,EAA0B,YAArBoH,GAAK,GAAKA,IAAM,GACrBA,EAAI7J,EACJA,EAAI2J,EAGNtW,KAAK0V,OAAO,GAAK1V,KAAK0V,OAAO,GAAK/I,EAAI,WACtC3M,KAAK0V,OAAO,GAAK1V,KAAK0V,OAAO,GAAKc,EAAI,WACtCxW,KAAK0V,OAAO,GAAK1V,KAAK0V,OAAO,GAAKtG,EAAI,WACtCpP,KAAK0V,OAAO,GAAK1V,KAAK0V,OAAO,GAAKe,EAAI,WACtCzW,KAAK0V,OAAO,GAAK1V,KAAK0V,OAAO,GAAK5Q,EAAI,YAGxC2Q,EAAK3X,UAAU4Y,OAAS,SAAU1F,EAAOvT,GAEvC,GAAa,MAATuT,EAAJ,MAIelL,IAAXrI,IACFA,EAASuT,EAAMvT,QASjB,IANA,IAAIkZ,EAAmBlZ,EAASuC,KAAKgW,UACjC9W,EAAI,EAEJiX,EAAMnW,KAAK2V,KACXiB,EAAQ5W,KAAK8V,OAEV5W,EAAIzB,GAAQ,CAKjB,GAAc,IAAVmZ,EACF,KAAO1X,GAAKyX,GACV3W,KAAKkW,UAAUlF,EAAO9R,GACtBA,GAAKc,KAAKgW,UAId,GAAqB,iBAAVhF,GACT,KAAO9R,EAAIzB,GAKT,GAJA0Y,EAAIS,GAAS5F,EAAM3B,WAAWnQ,KAE5BA,IADA0X,IAGY5W,KAAKgW,UAAW,CAC5BhW,KAAKkW,UAAUC,GACfS,EAAQ,EAER,YAIJ,KAAO1X,EAAIzB,GAKT,GAJA0Y,EAAIS,GAAS5F,EAAM9R,KAEjBA,IADA0X,IAGY5W,KAAKgW,UAAW,CAC5BhW,KAAKkW,UAAUC,GACfS,EAAQ,EAER,OAMR5W,KAAK8V,OAASc,EACd5W,KAAK+V,QAAUtY,IAKjBgY,EAAK3X,UAAU+Y,OAAS,WACtB,IAAIA,EAAS,GACTC,EAA0B,EAAd9W,KAAK+V,OAEjB/V,KAAK8V,OAAS,GAChB9V,KAAK0W,OAAO1W,KAAK6V,KAAM,GAAK7V,KAAK8V,QAEjC9V,KAAK0W,OAAO1W,KAAK6V,KAAM7V,KAAKgW,WAAahW,KAAK8V,OAAS,KAIzD,IAAK,IAAIpY,EAAIsC,KAAKgW,UAAY,EAAGtY,GAAK,GAAIA,IACxCsC,KAAK2V,KAAKjY,GAAiB,IAAZoZ,EACfA,GAAa,IAGf9W,KAAKkW,UAAUlW,KAAK2V,MACpB,IAAIzW,EAAI,EAER,IAASxB,EAAI,EAAGA,EAAI,EAAGA,IACrB,IAAK,IAAIkP,EAAI,GAAIA,GAAK,EAAGA,GAAK,EAC5BiK,EAAO3X,GAAKc,KAAK0V,OAAOhY,IAAMkP,EAAI,MAChC1N,EAIN,OAAO2X,GAnOA,GAkPX,SAAS9O,EAAgBgP,EAAUC,GACjC,IAAIC,EAAQ,IAAIC,EAAcH,EAAUC,GACxC,OAAOC,EAAME,UAAUzP,KAAKuP,GAQ9B,IAAIC,EAAgB,WAMlB,SAASA,EAAcH,EAAUC,GAC/B,IAAI1U,EAAQtC,KAEZA,KAAKoX,UAAY,GACjBpX,KAAKqX,aAAe,GACpBrX,KAAKsX,cAAgB,EAErBtX,KAAKuX,KAAO7T,QAAQC,UACpB3D,KAAKwX,WAAY,EACjBxX,KAAKgX,cAAgBA,EAIrBhX,KAAKuX,KAAK3T,MAAK,WACbmT,EAASzU,MACR8P,OAAM,SAAUtN,GACjBxC,EAAMuI,MAAM/F,MAgKhB,OA5JAoS,EAAcpZ,UAAUyM,KAAO,SAAUG,GACvC1K,KAAKyX,iBAAgB,SAAUC,GAC7BA,EAASnN,KAAKG,OAIlBwM,EAAcpZ,UAAU+M,MAAQ,SAAUA,GACxC7K,KAAKyX,iBAAgB,SAAUC,GAC7BA,EAAS7M,MAAMA,MAEjB7K,KAAK2X,MAAM9M,IAGbqM,EAAcpZ,UAAU8Z,SAAW,WACjC5X,KAAKyX,iBAAgB,SAAUC,GAC7BA,EAASE,cAEX5X,KAAK2X,SAUPT,EAAcpZ,UAAUqZ,UAAY,SAAUU,EAAgBhN,EAAO+M,GACnE,IAEIF,EAFApV,EAAQtC,KAIZ,QAAuB8F,IAAnB+R,QAA0C/R,IAAV+E,QAAoC/E,IAAb8R,EACzD,MAAM,IAAI5N,MAAM,0BAcIlE,KAPpB4R,EAgJN,SAA8BzX,EAAK6X,GACjC,GAAmB,iBAAR7X,GAA4B,OAARA,EAC7B,OAAO,EAGT,IAAK,IAAIwH,EAAK,EAAGsQ,EAAYD,EAASrQ,EAAKsQ,EAAUta,OAAQgK,IAAM,CACjE,IAAIqG,EAASiK,EAAUtQ,GAEvB,GAAIqG,KAAU7N,GAA8B,mBAAhBA,EAAI6N,GAC9B,OAAO,EAIX,OAAO,EAhKDkK,CAAqBH,EAAgB,CAAC,OAAQ,QAAS,aAC9CA,EAEA,CACTtN,KAAMsN,EACNhN,MAAOA,EACP+M,SAAUA,IAIDrN,OACXmN,EAASnN,KAAO0N,QAGKnS,IAAnB4R,EAAS7M,QACX6M,EAAS7M,MAAQoN,QAGOnS,IAAtB4R,EAASE,WACXF,EAASE,SAAWK,GAGtB,IAAIC,EAAQlY,KAAKmY,eAAezQ,KAAK1H,KAAMA,KAAKoX,UAAU3Z,QAqB1D,OAjBIuC,KAAKwX,WAEPxX,KAAKuX,KAAK3T,MAAK,WACb,IACMtB,EAAM8V,WACRV,EAAS7M,MAAMvI,EAAM8V,YAErBV,EAASE,WAEX,MAAO9S,QAOb9E,KAAKoX,UAAU5V,KAAKkW,GACbQ,GAKThB,EAAcpZ,UAAUqa,eAAiB,SAAUza,QAC1BoI,IAAnB9F,KAAKoX,gBAAiDtR,IAAtB9F,KAAKoX,UAAU1Z,YAI5CsC,KAAKoX,UAAU1Z,GACtBsC,KAAKsX,eAAiB,EAEK,IAAvBtX,KAAKsX,oBAA8CxR,IAAvB9F,KAAKgX,eACnChX,KAAKgX,cAAchX,QAIvBkX,EAAcpZ,UAAU2Z,gBAAkB,SAAUnW,GAClD,IAAItB,KAAKwX,UAOT,IAAK,IAAI9Z,EAAI,EAAGA,EAAIsC,KAAKoX,UAAU3Z,OAAQC,IACzCsC,KAAKqY,QAAQ3a,EAAG4D,IAOpB4V,EAAcpZ,UAAUua,QAAU,SAAU3a,EAAG4D,GAC7C,IAAIgB,EAAQtC,KAIZA,KAAKuX,KAAK3T,MAAK,WACb,QAAwBkC,IAApBxD,EAAM8U,gBAAkDtR,IAAvBxD,EAAM8U,UAAU1Z,GACnD,IACE4D,EAAGgB,EAAM8U,UAAU1Z,IACnB,MAAOoH,GAIgB,oBAAZM,SAA2BA,QAAQyF,OAC5CzF,QAAQyF,MAAM/F,QAOxBoS,EAAcpZ,UAAU6Z,MAAQ,SAAUW,GACxC,IAAIhW,EAAQtC,KAERA,KAAKwX,YAITxX,KAAKwX,WAAY,OAEL1R,IAARwS,IACFtY,KAAKoY,WAAaE,GAKpBtY,KAAKuX,KAAK3T,MAAK,WACbtB,EAAM8U,eAAYtR,EAClBxD,EAAM0U,mBAAgBlR,OAInBoR,EAtLW,GAkOpB,SAASe,KAiVT,SAASM,EAAmBlQ,GAC1B,OAAIA,GAAWA,EAAQmQ,UACdnQ,EAAQmQ,UAERnQ,I,6QCj/DX,IAAIoQ,EAAiB,SAAuBhC,EAAGD,GAW7C,OAVAiC,EAAiB1a,OAAOS,gBAAkB,CACxCG,UAAW,cACAf,OAAS,SAAU6Y,EAAGD,GACjCC,EAAE9X,UAAY6X,IACX,SAAUC,EAAGD,GAChB,IAAK,IAAI9X,KAAK8X,EACRzY,OAAOD,UAAUgC,eAAeV,KAAKoX,EAAG9X,KAAI+X,EAAE/X,GAAK8X,EAAE9X,MAIvC+X,EAAGD,IAe3B,SAASkC,EAASja,GAChB,IAAI8N,EAAsB,mBAAXpO,QAAyBA,OAAOE,SAC3Csa,EAAIpM,GAAK9N,EAAE8N,GACX7O,EAAI,EACR,GAAIib,EAAG,OAAOA,EAAEvZ,KAAKX,GACrB,GAAIA,GAAyB,iBAAbA,EAAEhB,OAAqB,MAAO,CAC5C8M,KAAM,WAEJ,OADI9L,GAAKf,GAAKe,EAAEhB,SAAQgB,OAAI,GACrB,CACLiM,MAAOjM,GAAKA,EAAEf,KACd8M,MAAO/L,KAIb,MAAM,IAAIO,UAAUuN,EAAI,0BAA4B,mCAGtD,IACIG,EADAkM,EAAuC,oBAAfC,WAA6BA,WAA+B,oBAAXtF,OAAyBA,YAA2B,IAAX,EAAAE,EAAyB,EAAAA,EAAyB,oBAATrW,KAAuBA,KAAO,GAEzL0b,EAAOA,GAAQ,GACfC,EAAIH,GAAkBxb,KAE1B,SAAS4b,KAET,SAASC,EAAGtM,GACV,IAAI6J,SAAW7J,EAEf,MAAO,UADP6J,EAAI,UAAYA,EAAIA,EAAI7J,EAAI/O,MAAMgB,QAAQ+N,GAAK,QAAU6J,EAAI,SACtC,UAAYA,GAAK,iBAAmB7J,EAAElP,OAG/D,SAASiB,EAAEiO,GACT,IAAI6J,SAAW7J,EACf,MAAO,UAAY6J,GAAK,MAAQ7J,GAAK,YAAc6J,EAOrD,IAAI0C,EAAK,gBAAkB,IAAMC,KAAKC,WAAa,GAC/CC,EAAK,EAET,SAASC,EAAG3M,EAAG6J,EAAGpH,GAChB,OAAOzC,EAAEvN,KAAKW,MAAM4M,EAAEjF,KAAM/H,WAG9B,SAAS4Z,EAAG5M,EAAG6J,EAAGpH,GAChB,IAAKzC,EAAG,MAAM3C,QAEd,GAAI,EAAIrK,UAAUlC,OAAQ,CACxB,IAAIgZ,EAAI7Y,MAAME,UAAUuB,MAAMD,KAAKO,UAAW,GAC9C,OAAO,WACL,IAAImF,EAAIlH,MAAME,UAAUuB,MAAMD,KAAKO,WAEnC,OADA/B,MAAME,UAAU0b,QAAQzZ,MAAM+E,EAAG2R,GAC1B9J,EAAE5M,MAAMyW,EAAG1R,IAItB,OAAO,WACL,OAAO6H,EAAE5M,MAAMyW,EAAG7W,YAItB,SAAS8Z,EAAE9M,EAAG6J,EAAGpH,GAEf,OAD6FqK,EAA7FC,SAAS5b,UAAU4J,OAAS,GAAKgS,SAAS5b,UAAU4J,KAAKvI,WAAWkB,QAAQ,eAAqBiZ,EAASC,GACjGxZ,MAAM,KAAMJ,WAGvB,SAASga,EAAGhN,EAAG6J,GACb,IAAIpH,EAAIxR,MAAME,UAAUuB,MAAMD,KAAKO,UAAW,GAC9C,OAAO,WACL,IAAI8W,EAAIrH,EAAE/P,QAEV,OADAoX,EAAEjV,KAAKzB,MAAM0W,EAAG9W,WACTgN,EAAE5M,MAAMC,KAAMyW,IAIzB,SAASH,EAAE3J,EAAG6J,GACZ,SAASpH,KAETA,EAAEtR,UAAY0Y,EAAE1Y,UAChB6O,EAAEiN,EAAIpD,EAAE1Y,UACR6O,EAAE7O,UAAY,IAAIsR,EAClBzC,EAAE7O,UAAUI,YAAcyO,EAE1BA,EAAEkN,GAAK,SAAUpD,EAAG3R,EAAGyR,GACrB,IAAK,IAAIuD,EAAIlc,MAAM+B,UAAUlC,OAAS,GAAIyB,EAAI,EAAGA,EAAIS,UAAUlC,OAAQyB,IACrE4a,EAAE5a,EAAI,GAAKS,UAAUT,GAGvB,OAAOsX,EAAE1Y,UAAUgH,GAAG/E,MAAM0W,EAAGqD,IAInC,SAASC,IACP/Z,KAAKuM,EAAIvM,KAAKuM,EACdvM,KAAKvB,EAAIuB,KAAKvB,EAGhB,IACIub,EAAK,GACTD,EAAEjc,UAAUyO,GAAI,EAEhBwN,EAAEjc,UAAUmc,GAAK,WACf,IAAKja,KAAKuM,IAAMvM,KAAKuM,GAAI,EAAIvM,KAAKka,IAAK,GAAU,CAC/C,IAAIvN,EAtER,SAAYA,GACV,OAAO5O,OAAOD,UAAUgC,eAAeV,KAAKuN,EAAGuM,IAAOvM,EAAEuM,KAAQvM,EAAEuM,KAAQG,GAqEhEc,CAAGna,aACJga,EAAGrN,KAIdoN,EAAEjc,UAAUoc,EAAI,WACd,GAAIla,KAAKvB,EAAG,KAAOuB,KAAKvB,EAAEhB,QACxBuC,KAAKvB,EAAE4C,OAAPrB,IAIJ,IAAIoa,EAAKxc,MAAME,UAAUuC,QAAU,SAAUsM,EAAG6J,GAC9C,OAAO5Y,MAAME,UAAUuC,QAAQjB,KAAKuN,EAAG6J,OAAG,IACxC,SAAU7J,EAAG6J,GACf,GAAI,iBAAoB7J,EAAG,MAAO,iBAAoB6J,GAAK,GAAKA,EAAE/Y,QAAU,EAAIkP,EAAEtM,QAAQmW,EAAG,GAE7F,IAAK,IAAIpH,EAAI,EAAGA,EAAIzC,EAAElP,OAAQ2R,IAC5B,GAAIA,KAAKzC,GAAKA,EAAEyC,KAAOoH,EAAG,OAAOpH,EAGnC,OAAQ,GAEN6K,EAAKrc,MAAME,UAAUkF,QAAU,SAAU2J,EAAG6J,EAAGpH,GACjDxR,MAAME,UAAUkF,QAAQ5D,KAAKuN,EAAG6J,EAAGpH,IACjC,SAAUzC,EAAG6J,EAAGpH,GAIlB,IAHA,IAAIqH,EAAI9J,EAAElP,OACNqH,EAAI,iBAAoB6H,EAAIA,EAAE0N,MAAM,IAAM1N,EAErC4J,EAAI,EAAGA,EAAIE,EAAGF,IACrBA,KAAKzR,GAAK0R,EAAEpX,KAAKgQ,EAAGtK,EAAEyR,GAAIA,EAAG5J,IAuBjC,SAAS2N,EAAG3N,GACV,OAAO/O,MAAME,UAAUyc,OAAOxa,MAAM,GAAIJ,WAG1C,SAAS6a,EAAG7N,GACV,IAAI6J,EAAI7J,EAAElP,OAEV,GAAI,EAAI+Y,EAAG,CAGT,IAFA,IAAIpH,EAAIxR,MAAM4Y,GAELC,EAAI,EAAGA,EAAID,EAAGC,IACrBrH,EAAEqH,GAAK9J,EAAE8J,GAGX,OAAOrH,EAGT,MAAO,GAGT,SAASqL,EAAG9N,GACV,MAAO,cAAcpN,KAAKoN,GAG5B,IAcI+N,EAdAC,EAAK5U,OAAOjI,UAAU8c,KAAO,SAAUjO,GACzC,OAAOA,EAAEiO,QACP,SAAUjO,GACZ,MAAO,iCAAiCkO,KAAKlO,GAAG,IAGlD,SAASmO,EAAEnO,EAAG6J,GACZ,OAAQ,GAAK7J,EAAEtM,QAAQmW,GAGzB,SAASpC,EAAGzH,EAAG6J,GACb,OAAO7J,EAAI6J,GAAK,EAAI7J,EAAI6J,EAAI,EAAI,EAKlC7J,EAAG,CACD,IAAIoO,EAAKhC,EAAExY,UAEX,GAAIwa,EAAI,CACN,IAAIC,EAAKD,EAAGxG,UAEZ,GAAIyG,EAAI,CACNN,EAAIM,EACJ,MAAMrO,GAIV+N,EAAI,GAGN,SAASO,EAAGtO,EAAG6J,EAAGpH,GAChB,IAAK,IAAIqH,KAAK9J,EACZ6J,EAAEpX,KAAKgQ,EAAGzC,EAAE8J,GAAIA,EAAG9J,GAIvB,SAASuO,EAAGvO,GACV,IAAI6J,EAAI,GAER,IAAK,IAAIpH,KAAKzC,EACZ6J,EAAEpH,GAAKzC,EAAEyC,GAGX,OAAOoH,EAGT,IAAI2E,EAAK,gGAAgGd,MAAM,KAE/G,SAASe,EAAGzO,EAAG6J,GAGb,IAFA,IAAIpH,EAAGqH,EAEE3R,EAAI,EAAGA,EAAInF,UAAUlC,OAAQqH,IAAK,CAGzC,IAAKsK,KAFLqH,EAAI9W,UAAUmF,GAGZ6H,EAAEyC,GAAKqH,EAAErH,GAGX,IAAK,IAAImH,EAAI,EAAGA,EAAI4E,EAAG1d,OAAQ8Y,IAC7BnH,EAAI+L,EAAG5E,GAAIxY,OAAOD,UAAUgC,eAAeV,KAAKqX,EAAGrH,KAAOzC,EAAEyC,GAAKqH,EAAErH,KAKzE,SAASiM,EAAG1O,GAEV,OADA0O,EAAG,KAAK1O,GACDA,EAGT0O,EAAG,KAAOrC,EAOV,IAYIsC,EAKI3O,EAjBJ4O,EAAKT,EAAEJ,EAAG,SACVc,EAAIV,EAAEJ,EAAG,YAAcI,EAAEJ,EAAG,QAC5Be,EAAKX,EAAEJ,EAAG,QACVgB,EAAKD,GAAMD,EACXG,EAAKb,EAAEJ,EAAG,YAAcI,EAAEJ,EAAE3L,cAAe,YAAc+L,EAAEJ,EAAG,YAAcI,EAAEJ,EAAG,YAAcI,EAAEJ,EAAG,WAAaI,EAAEJ,EAAG,QACtHkB,EAAKd,EAAEJ,EAAE3L,cAAe,YAAc+L,EAAEJ,EAAG,QAE/C,SAASmB,IACP,IAAIlP,EAAIoM,EAAEnY,SACV,OAAO+L,EAAIA,EAAEmP,kBAAe,EAK9BnP,EAAG,CACD,IAAIoP,EAAK,GACLC,GACErP,EAAI+N,EACJiB,EAAW,qBAAqBd,KAAKlO,GACrC8O,EAAW,kBAAkBZ,KAAKlO,GAClC6O,EAAU,mCAAmCX,KAAKlO,GAClDiP,EAAW,gBAAgBf,KAAKlO,GAChC4O,EAAW,yBAAyBV,KAAKlO,QAA7C,GAKF,GAFAqP,IAAOD,EAAKC,EAAKA,EAAG,GAAK,IAErBR,EAAG,CACL,IAAIS,EAAKJ,IAET,GAAI,MAAQI,GAAMA,EAAKC,WAAWH,GAAK,CACrCT,EAAKvV,OAAOkW,GACZ,MAAMtP,GAIV2O,EAAKS,EAGP,IA2BII,EA3BAC,EAAK,GAET,SAASC,IACP,OA/CF,SAAY1P,GACV,IAAI6J,EAAI4F,EACR,OAAOre,OAAOD,UAAUgC,eAAeV,KAAKoX,EAAG,GAAKA,EAAE,GAAKA,EAAE,GAAK7J,EAAE,GA6C7D2P,EAAG,WAMR,IALA,IAAI3P,EAAI,EACJ6J,EAAImE,EAAG5U,OAAOuV,IAAKjB,MAAM,KACzBjL,EAAIuL,EAAG,KAAKN,MAAM,KAClB5D,EAAI0C,KAAKoD,IAAI/F,EAAE/Y,OAAQ2R,EAAE3R,QAEpBqc,EAAI,EAAG,GAAKnN,GAAKmN,EAAIrD,EAAGqD,IAAK,CACpC,IAAIhV,EAAI0R,EAAEsD,IAAM,GACZvD,EAAInH,EAAE0K,IAAM,GAEhB,EAAG,CAGD,GAFAhV,EAAI,iBAAiB+V,KAAK/V,IAAM,CAAC,GAAI,GAAI,GAAI,IAC7CyR,EAAI,iBAAiBsE,KAAKtE,IAAM,CAAC,GAAI,GAAI,GAAI,IACzC,GAAKzR,EAAE,GAAGrH,QAAU,GAAK8Y,EAAE,GAAG9Y,OAAQ,MAC1CkP,EAAIyH,EAAG,GAAKtP,EAAE,GAAGrH,OAAS,EAAI+e,SAAS1X,EAAE,GAAI,IAAK,GAAKyR,EAAE,GAAG9Y,OAAS,EAAI+e,SAASjG,EAAE,GAAI,MAAQnC,EAAG,GAAKtP,EAAE,GAAGrH,OAAQ,GAAK8Y,EAAE,GAAG9Y,SAAW2W,EAAGtP,EAAE,GAAIyR,EAAE,IACrJzR,EAAIA,EAAE,GACNyR,EAAIA,EAAE,SACC,GAAK5J,GAGhB,OAAO,GAAKA,KAMhB,GAAIoM,EAAEnY,UAAY4a,EAAG,CACnB,IAAIiB,EAAKZ,IACTM,EAAKM,IAAUD,SAASlB,EAAI,UAAO,QAC9Ba,OAAK,EAEZ,IAAIO,EAAKP,EAELQ,GAAK,WACP,IAAK5D,EAAE5X,mBAAqBpD,OAAOmF,eAAgB,OAAO,EAC1D,IAAIyJ,GAAI,EACJ6J,EAAIzY,OAAOmF,eAAe,GAAI,UAAW,CAC3CC,IAAK,WACHwJ,GAAI,KAIR,IACEoM,EAAE5X,iBAAiB,OAAQ6X,EAAIxC,GAAIuC,EAAE3X,oBAAoB,OAAQ4X,EAAIxC,GACrE,MAAOpH,IAET,OAAOzC,EAbA,GAgBT,SAASiQ,GAAEjQ,EAAG6J,GACZxW,KAAKoH,KAAOuF,EACZ3M,KAAKyT,EAAIzT,KAAKN,OAAS8W,EACvBxW,KAAK6c,kBAAmB,EAO1B,SAASC,GAAEnQ,EAAG6J,GAWZ,GAVAoG,GAAExd,KAAKY,KAAM2M,EAAIA,EAAEvF,KAAO,IAC1BpH,KAAK+c,cAAgB/c,KAAKyT,EAAIzT,KAAKN,OAAS,KAC5CM,KAAKgd,OAAShd,KAAKid,QAAUjd,KAAKkd,QAAUld,KAAKmd,QAAUnd,KAAKod,QAAU,EAC1Epd,KAAKH,IAAM,GACXG,KAAKqd,QAAUrd,KAAKsd,SAAWtd,KAAKud,OAASvd,KAAKwd,SAAU,EAC5Dxd,KAAKyd,MAAQ,KACbzd,KAAK0d,UAAY,EACjB1d,KAAK2d,YAAc,GACnB3d,KAAKtC,EAAI,KAELiP,EAAG,CACL,IAAIyC,EAAIpP,KAAKoH,KAAOuF,EAAEvF,KAClBqP,EAAI9J,EAAEiR,gBAAkBjR,EAAEiR,eAAengB,OAASkP,EAAEiR,eAAe,GAAK,KAI5E,GAHA5d,KAAKN,OAASiN,EAAEjN,QAAUiN,EAAEkR,WAC5B7d,KAAKyT,EAAI+C,EAELA,EAAI7J,EAAEoQ,eACR,GAAIpB,EAAI,CACNhP,EAAG,CACD,IACE0O,EAAG7E,EAAEsH,UACL,IAAIhZ,GAAI,EACR,MAAM6H,EACN,MAAO4J,IAETzR,GAAI,EAGNA,IAAM0R,EAAI,WAEP,aAAepH,EAAIoH,EAAI7J,EAAEoR,YAAc,YAAc3O,IAAMoH,EAAI7J,EAAEqR,WAExEhe,KAAK+c,cAAgBvG,EACrBC,GAAKzW,KAAKod,aAAU,IAAW3G,EAAE2G,QAAU3G,EAAE2G,QAAU3G,EAAEwH,MAAOje,KAAKmd,aAAU,IAAW1G,EAAE0G,QAAU1G,EAAE0G,QAAU1G,EAAEyH,MAAOle,KAAKkd,QAAUzG,EAAEyG,SAAW,EAAGld,KAAKid,QAAUxG,EAAEwG,SAAW,IAAMjd,KAAKod,aAAU,IAAWzQ,EAAEyQ,QAAUzQ,EAAEyQ,QAAUzQ,EAAEsR,MAAOje,KAAKmd,aAAU,IAAWxQ,EAAEwQ,QAAUxQ,EAAEwQ,QAAUxQ,EAAEuR,MAAOle,KAAKkd,QAAUvQ,EAAEuQ,SAAW,EAAGld,KAAKid,QAAUtQ,EAAEsQ,SAAW,GAC7Wjd,KAAKgd,OAASrQ,EAAEqQ,OAChBhd,KAAKH,IAAM8M,EAAE9M,KAAO,GACpBG,KAAKwd,QAAU7Q,EAAE6Q,QACjBxd,KAAKud,OAAS5Q,EAAE4Q,OAChBvd,KAAKsd,SAAW3Q,EAAE2Q,SAClBtd,KAAKqd,QAAU1Q,EAAE0Q,QACjBrd,KAAK0d,UAAY/Q,EAAE+Q,WAAa,EAChC1d,KAAK2d,YAAc,iBAAoBhR,EAAEgR,YAAchR,EAAEgR,YAAcQ,GAAGxR,EAAEgR,cAAgB,GAC5F3d,KAAKyd,MAAQ9Q,EAAE8Q,MACfzd,KAAKtC,EAAIiP,EACTA,EAAEkQ,kBAAoBC,GAAElD,EAAEE,EAAE1a,KAAKY,OAjDrC4c,GAAE9e,UAAUgc,EAAI,WACd9Z,KAAK6c,kBAAmB,GAoD1BvG,EAAEwG,GAAGF,IACL,IAAIuB,GAAK,CACP,EAAG,QACH,EAAG,MACH,EAAG,SAGLrB,GAAEhf,UAAUgc,EAAI,WACdgD,GAAElD,EAAEE,EAAE1a,KAAKY,MACX,IAAI2M,EAAI3M,KAAKtC,EACbiP,EAAEyR,eAAiBzR,EAAEyR,iBAAmBzR,EAAE0R,aAAc,GAG1D,IAAIC,GAAI,uBAAyB,IAAMnF,KAAKC,SAAW,GACnDmF,GAAK,EAET,SAASC,GAAG7R,EAAG6J,EAAGpH,EAAGqH,EAAG3R,GACtB9E,KAAKS,SAAWkM,EAChB3M,KAAKiX,MAAQ,KACbjX,KAAKye,IAAMjI,EACXxW,KAAKoH,KAAOgI,EACZpP,KAAK0e,UAAYjI,EACjBzW,KAAKuZ,GAAKzU,EACV9E,KAAKH,MAAQ0e,GACbve,KAAK2e,GAAK3e,KAAKqZ,IAAK,EAGtB,SAASuF,GAAGjS,GACVA,EAAEgS,IAAK,EACPhS,EAAElM,SAAW,KACbkM,EAAEsK,MAAQ,KACVtK,EAAE8R,IAAM,KACR9R,EAAE4M,GAAK,KAGT,SAASsF,GAAGlS,GACV3M,KAAKye,IAAM9R,EACX3M,KAAKyT,EAAI,GACTzT,KAAK8Z,EAAI,EAYX,SAASgF,GAAGnS,EAAG6J,GACb,IAAIpH,EAAIoH,EAAEpP,KAEV,GAAIgI,KAAKzC,EAAE8G,EAAG,CACZ,IAEI8C,EAFAE,EAAI9J,EAAE8G,EAAErE,GACRtK,EAAIsV,EAAG3D,EAAGD,IAEbD,EAAI,GAAKzR,IAAMlH,MAAME,UAAUihB,OAAO3f,KAAKqX,EAAG3R,EAAG,GAClDyR,IAAMqI,GAAGpI,GAAI,GAAK7J,EAAE8G,EAAErE,GAAG3R,gBAAkBkP,EAAE8G,EAAErE,GAAIzC,EAAEmN,OAIzD,SAASkF,GAAGrS,EAAG6J,EAAGpH,EAAGqH,GACnB,IAAK,IAAI3R,EAAI,EAAGA,EAAI6H,EAAElP,SAAUqH,EAAG,CACjC,IAAIyR,EAAI5J,EAAE7H,GACV,IAAKyR,EAAEoI,IAAMpI,EAAE9V,UAAY+V,GAAKD,EAAEmI,WAAatP,GAAKmH,EAAEgD,IAAM9C,EAAG,OAAO3R,EAGxE,OAAQ,EA3BV+Z,GAAG/gB,UAAU8N,IAAM,SAAUe,EAAG6J,EAAGpH,EAAGqH,EAAG3R,GACvC,IAAIyR,EAAI5J,EAAExN,YACVwN,EAAI3M,KAAKyT,EAAE8C,MACL5J,EAAI3M,KAAKyT,EAAE8C,GAAK,GAAIvW,KAAK8Z,KAC/B,IAAIA,EAAIkF,GAAGrS,EAAG6J,EAAGC,EAAG3R,GAEpB,OADC,EAAIgV,GAAKtD,EAAI7J,EAAEmN,GAAI1K,IAAMoH,EAAE6C,IAAK,MAAQ7C,EAAI,IAAIgI,GAAGhI,EAAGxW,KAAKye,IAAKlI,IAAKE,EAAG3R,IAAMuU,GAAKjK,EAAGzC,EAAEnL,KAAKgV,IACvFA,GAwBT,IAAIyI,GAAK,eAAiB,IAAM9F,KAAKC,SAAW,GAC5C8F,GAAK,GAET,SAASC,GAAGxS,EAAG6J,EAAGpH,EAAGqH,EAAG3R,GACtB,GAAI2R,GAAKA,EAAE2I,KAAM,OAAOC,GAAG1S,EAAG6J,EAAGpH,EAAGqH,EAAG3R,GAEvC,GAAIlH,MAAMgB,QAAQ4X,GAAI,CACpB,IAAK,IAAID,EAAI,EAAGA,EAAIC,EAAE/Y,OAAQ8Y,IAC5B4I,GAAGxS,EAAG6J,EAAED,GAAInH,EAAGqH,EAAG3R,GAGpB,OAAO,KAIT,OADAsK,EAAIkQ,GAAGlQ,GACAzC,GAAKA,EAAE2R,IAAK3R,EAAE4S,EAAE/I,EAAGpH,EAAG1Q,EAAE+X,KAAOA,EAAEiI,UAAYjI,EAAG3R,GAAK0a,GAAG7S,EAAG6J,EAAGpH,GAAG,EAAIqH,EAAG3R,GAGjF,SAAS0a,GAAG7S,EAAG6J,EAAGpH,EAAGqH,EAAG3R,EAAGyR,GACzB,IAAKC,EAAG,MAAMxM,MAAM,sBACpB,IAAI8P,EAAIpb,EAAEoG,KAAOA,EAAE4Z,UAAY5Z,EAC3B5F,EAAIugB,GAAG9S,GAGX,GAFAzN,IAAMyN,EAAEsS,IAAM/f,EAAI,IAAI2f,GAAGlS,KACzByC,EAAIlQ,EAAE0M,IAAI4K,EAAGpH,EAAGqH,EAAGqD,EAAGvD,IAChBU,MAAO,OAAO7H,EAKpB,GAJAqH,EAQF,WACE,SAAS9J,EAAEyC,GACT,OAAOoH,EAAEpX,KAAKuN,EAAE8R,IAAK9R,EAAElM,SAAU2O,GAGnC,IAAIoH,EAAIkJ,GACR,OAAO/S,EAdHgT,GACJvQ,EAAE6H,MAAQR,EACVA,EAAEgI,IAAM9R,EACR8J,EAAEhW,SAAW2O,EACTzC,EAAExL,iBAAkBwb,KAAO7X,EAAIgV,QAAI,IAAWhV,IAAMA,GAAI,GAAK6H,EAAExL,iBAAiBqV,EAAErX,WAAYsX,EAAG3R,QAAQ,GAAI6H,EAAEiT,YAAajT,EAAEiT,YAAYC,GAAGrJ,EAAErX,YAAasX,OAAQ,KAAI9J,EAAEmT,cAAenT,EAAEoT,eAAsC,MAAM/V,MAAM,qDAAlC2C,EAAEmT,YAAYrJ,GAC7N,OAAOrH,EAYT,SAASiQ,GAAG1S,EAAG6J,EAAGpH,EAAGqH,EAAG3R,GACtB,GAAIlH,MAAMgB,QAAQ4X,GAAI,CACpB,IAAK,IAAID,EAAI,EAAGA,EAAIC,EAAE/Y,OAAQ8Y,IAC5B8I,GAAG1S,EAAG6J,EAAED,GAAInH,EAAGqH,EAAG3R,GAGpB,OAAO,KAIT,OADAsK,EAAIkQ,GAAGlQ,GACAzC,GAAKA,EAAE2R,IAAK3R,EAAEqT,EAAExJ,EAAGpH,EAAG1Q,EAAE+X,KAAOA,EAAEiI,UAAYjI,EAAG3R,GAAK0a,GAAG7S,EAAG6J,EAAGpH,GAAG,EAAIqH,EAAG3R,GAGjF,SAASmb,GAAGtT,EAAG6J,EAAGpH,EAAGqH,EAAG3R,GACtB,GAAIlH,MAAMgB,QAAQ4X,GAAI,IAAK,IAAID,EAAI,EAAGA,EAAIC,EAAE/Y,OAAQ8Y,IAClD0J,GAAGtT,EAAG6J,EAAED,GAAInH,EAAGqH,EAAG3R,QACZ2R,EAAI/X,EAAE+X,KAAOA,EAAEiI,UAAYjI,EAAGrH,EAAIkQ,GAAGlQ,GAAIzC,GAAKA,EAAE2R,KAAO3R,EAAIA,EAAEjP,GAAG8Y,EAAIzQ,OAAOyQ,GAAGrX,cAAiBwN,EAAE8G,KAAuC,GAArBrE,EAAI4P,GAAhBzI,EAAI5J,EAAE8G,EAAE+C,GAAcpH,EAAGqH,EAAG3R,MAAe8Z,GAAGrI,EAAEnH,IAAKxR,MAAME,UAAUihB,OAAO3f,KAAKmX,EAAGnH,EAAG,GAAI,GAAKmH,EAAE9Y,gBAAkBkP,EAAE8G,EAAE+C,GAAI7J,EAAEmN,QAAUnN,IAAMA,EAAI8S,GAAG9S,MAAQ6J,EAAI7J,EAAE8G,EAAE+C,EAAErX,YAAawN,GAAK,EAAG6J,IAAM7J,EAAIqS,GAAGxI,EAAGpH,EAAGqH,EAAG3R,KAAMsK,GAAK,EAAIzC,EAAI6J,EAAE7J,GAAK,OAASuT,GAAG9Q,IAGzW,SAAS8Q,GAAGvT,GACV,GAAI,iBAAoBA,GAAKA,IAAMA,EAAEgS,GAAI,CACvC,IAAInI,EAAI7J,EAAE8R,IACV,GAAIjI,GAAKA,EAAE8H,IAAIQ,GAAGtI,EAAE9Y,EAAGiP,OAAQ,CAC7B,IAAIyC,EAAIzC,EAAEvF,KACNqP,EAAI9J,EAAEsK,MACVT,EAAEpV,oBAAsBoV,EAAEpV,oBAAoBgO,EAAGqH,EAAG9J,EAAE+R,SAAWlI,EAAE2J,YAAc3J,EAAE2J,YAAYN,GAAGzQ,GAAIqH,GAAKD,EAAEsJ,aAAetJ,EAAEuJ,gBAAkBvJ,EAAEuJ,eAAetJ,IAChKrH,EAAIqQ,GAAGjJ,KAAOsI,GAAG1P,EAAGzC,GAAI,GAAKyC,EAAE0K,IAAM1K,EAAEqP,IAAM,KAAMjI,EAAEyI,IAAM,OAASL,GAAGjS,KAK9E,SAASkT,GAAGlT,GACV,OAAOA,KAAKuS,GAAKA,GAAGvS,GAAKuS,GAAGvS,GAAK,KAAOA,EAG1C,SAAS+S,GAAG/S,EAAG6J,GACb,GAAI7J,EAAEgS,GAAIhS,GAAI,MAAQ,CACpB6J,EAAI,IAAIsG,GAAEtG,EAAGxW,MACb,IAAIoP,EAAIzC,EAAElM,SACNgW,EAAI9J,EAAE4M,IAAM5M,EAAE8R,IAClB9R,EAAE0M,IAAM6G,GAAGvT,GACXA,EAAIyC,EAAEhQ,KAAKqX,EAAGD,GAEhB,OAAO7J,EAGT,SAAS8S,GAAG9S,GAEV,OADAA,EAAIA,EAAEsS,eACcJ,GAAKlS,EAAI,KAG/B,IAAIyT,GAAK,wBAA0B,IAAMjH,KAAKC,WAAa,GAE3D,SAASkG,GAAG3S,GACV,MAAI,mBAAsBA,EAAUA,GACpCA,EAAEyT,MAAQzT,EAAEyT,IAAM,SAAU5J,GAC1B,OAAO7J,EAAE0T,YAAY7J,KAEhB7J,EAAEyT,KAGX,SAASE,KACPvG,EAAE3a,KAAKY,MACPA,KAAKtC,EAAI,IAAImhB,GAAG7e,MAChBA,KAAKugB,EAAIvgB,KACTA,KAAKwgB,EAAI,KAUX,SAASC,GAAE9T,EAAG6J,GACZ,IAAIpH,EACAqH,EAAI9J,EAAE6T,EACV,GAAI/J,EAAG,IAAKrH,EAAI,GAAIqH,EAAGA,EAAIA,EAAE+J,EAC3BpR,EAAE5N,KAAKiV,GAIT,GAFA9J,EAAIA,EAAE4T,EACN9J,EAAID,EAAEpP,MAAQoP,EACV,iBAAoBA,EAAGA,EAAI,IAAIoG,GAAEpG,EAAG7J,QAAQ,GAAI6J,aAAaoG,GAAGpG,EAAE9W,OAAS8W,EAAE9W,QAAUiN,MAAO,CAChG,IAAI7H,EAAI0R,EAER4E,EADA5E,EAAI,IAAIoG,GAAEnG,EAAG9J,GACP7H,GAGR,GADAA,GAAI,EACAsK,EAAG,IAAK,IAAImH,EAAInH,EAAE3R,OAAS,EAAG,GAAK8Y,EAAGA,IAAK,CAC7C,IAAIuD,EAAItD,EAAE/C,EAAIrE,EAAEmH,GAChBzR,EAAI4b,GAAG5G,EAAGrD,GAAG,EAAID,IAAM1R,EAKzB,GAFAA,EAAI4b,GADJ5G,EAAItD,EAAE/C,EAAI9G,EACA8J,GAAG,EAAID,IAAM1R,EACvBA,EAAI4b,GAAG5G,EAAGrD,GAAG,EAAID,IAAM1R,EACnBsK,EAAG,IAAKmH,EAAI,EAAGA,EAAInH,EAAE3R,OAAQ8Y,IACfzR,EAAI4b,GAApB5G,EAAItD,EAAE/C,EAAIrE,EAAEmH,GAAcE,GAAG,EAAID,IAAM1R,EAgC3C,SAAS4b,GAAG/T,EAAG6J,EAAGpH,EAAGqH,GAEnB,KADAD,EAAI7J,EAAEjP,EAAE+V,EAAE1N,OAAOyQ,KACT,OAAO,EACfA,EAAIA,EAAE+D,SAEN,IAAK,IAAIzV,GAAI,EAAIyR,EAAI,EAAGA,EAAIC,EAAE/Y,SAAU8Y,EAAG,CACzC,IAAIuD,EAAItD,EAAED,GAEV,GAAIuD,IAAMA,EAAE6E,IAAM7E,EAAE4E,SAAWtP,EAAG,CAChC,IAAIlQ,EAAI4a,EAAErZ,SACN4Q,EAAIyI,EAAEP,IAAMO,EAAE2E,IAClB3E,EAAET,IAAMyF,GAAGnS,EAAEjP,EAAGoc,GAChBhV,GAAI,IAAO5F,EAAEE,KAAKiS,EAAGoF,IAAM3R,GAI/B,OAAOA,IAAM2R,EAAEoG,iBA7EjBvG,EAAEgK,GAAGvG,GACLuG,GAAExiB,UAAUwgB,KAAK,EAEjBgC,GAAExiB,UAAUsD,oBAAsB,SAAUuL,EAAG6J,EAAGpH,EAAGqH,GACnDwJ,GAAGjgB,KAAM2M,EAAG6J,EAAGpH,EAAGqH,IA6BpB6J,GAAExiB,UAAUoc,EAAI,WAGd,GAFAoG,GAAE1G,EAAEM,EAAE9a,KAAKY,MAEPA,KAAKtC,EAAG,CACV,IACI0R,EADAzC,EAAI3M,KAAKtC,EAGb,IAAK0R,KAAKzC,EAAE8G,EAAG,CACb,IAAK,IAAIgD,EAAI9J,EAAE8G,EAAErE,GAAItK,EAAI,EAAGA,EAAI2R,EAAEhZ,OAAQqH,IACxC8Z,GAAGnI,EAAE3R,WAGA6H,EAAE8G,EAAErE,GACXzC,EAAEmN,KAIN9Z,KAAKwgB,EAAI,MAGXF,GAAExiB,UAAUyhB,EAAI,SAAU5S,EAAG6J,EAAGpH,EAAGqH,GACjC,OAAOzW,KAAKtC,EAAEkO,IAAI7F,OAAO4G,GAAI6J,GAAG,EAAIpH,EAAGqH,IAGzC6J,GAAExiB,UAAUkiB,EAAI,SAAUrT,EAAG6J,EAAGpH,EAAGqH,GACjC,OAAOzW,KAAKtC,EAAEkO,IAAI7F,OAAO4G,GAAI6J,GAAG,EAAIpH,EAAGqH,IAsBzC,IAAIkK,GAAK5H,EAAEnK,KAAKC,UAEhB,SAAS+R,KACP,IAAIjU,EAAIkU,GACJrK,EAAI,KAER,OADA7J,EAAE8G,IAAM+C,EAAI7J,EAAE8G,EAAG9G,EAAE8G,EAAI9G,EAAE8G,EAAElJ,KAAMoC,EAAE8G,IAAM9G,EAAEmN,EAAI,MAAOtD,EAAEjM,KAAO,MACxDiM,EAGT,IAkEIsK,GAlEAC,GAAK,WACP,SAASA,IACP/gB,KAAK8Z,EAAI9Z,KAAKyT,EAAI,KAUpB,OAPAsN,EAAGjjB,UAAU8N,IAAM,SAAUe,EAAG6J,GAC9B,IAAIpH,EAAI4R,GAAG7d,MACXiM,EAAE/L,IAAIsJ,EAAG6J,GACTxW,KAAK8Z,EAAI9Z,KAAK8Z,EAAEvP,KAAO6E,EAAIpP,KAAKyT,EAAIrE,EACpCpP,KAAK8Z,EAAI1K,GAGJ2R,EAZA,GAeLC,GAAK,IAAK,WACZ,SAASC,EAAQtU,EAAG6J,GAClBxW,KAAKtC,EAAIiP,EACT3M,KAAK4M,EAAI4J,EACTxW,KAAK8Z,EAAI,EACT9Z,KAAKyT,EAAI,KASX,OANAwN,EAAQnjB,UAAUqF,IAAM,WACtB,IAAIwJ,EAEJ,OADA,EAAI3M,KAAK8Z,GAAK9Z,KAAK8Z,IAAKnN,EAAI3M,KAAKyT,EAAGzT,KAAKyT,EAAI9G,EAAEpC,KAAMoC,EAAEpC,KAAO,MAAQoC,EAAI3M,KAAKtC,IACxEiP,GAGFsU,EAdI,GAAJ,EAeJ,WACH,OAAO,IAAIC,MACV,SAAUvU,GACX,OAAOA,EAAEsJ,WAGPiL,GAAK,WACP,SAASA,IACPlhB,KAAKuK,KAAOvK,KAAKyT,EAAIzT,KAAK8Z,EAAI,KAahC,OAVAoH,EAAGpjB,UAAUuF,IAAM,SAAUsJ,EAAG6J,GAC9BxW,KAAK8Z,EAAInN,EACT3M,KAAKyT,EAAI+C,EACTxW,KAAKuK,KAAO,MAGd2W,EAAGpjB,UAAUmY,MAAQ,WACnBjW,KAAKuK,KAAOvK,KAAKyT,EAAIzT,KAAK8Z,EAAI,MAGzBoH,EAfA,GAkBT,SAASC,GAAGxU,GACVoM,EAAExX,YAAW,WACX,MAAMoL,IACL,GAGL,SAASyU,GAAGzU,EAAG6J,GACbsK,IAOF,WACE,IAAInU,EAAIoM,EAAErV,QAAQC,aAAQ,GAE1Bmd,GAAK,WACHnU,EAAE/I,KAAKyd,KAXHC,GACNC,KAAOT,KAAMS,IAAK,GAClBV,GAAGjV,IAAIe,EAAG6J,GAaZ,IAAI+K,IAAK,EACLV,GAAK,IAAIE,GAEb,SAASM,KACP,IAAK,IAAI1U,EAAGA,EAAIiU,MAAO,CACrB,IACEjU,EAAEmN,EAAE1a,KAAKuN,EAAE8G,GACX,MAAOrE,GACP+R,GAAG/R,GAGL,IAAIoH,EAAIwK,GACRxK,EAAE5J,EAAED,GACJ,IAAM6J,EAAEsD,IAAMtD,EAAEsD,IAAKnN,EAAEpC,KAAOiM,EAAE/C,EAAG+C,EAAE/C,EAAI9G,GAG3C4U,IAAK,EAGP,SAASC,GAAG7U,EAAG6J,GACb8J,GAAElhB,KAAKY,MACPA,KAAK8Z,EAAInN,GAAK,EACd3M,KAAKyT,EAAI+C,GAAKuC,EACd/Y,KAAK4M,EAAI6M,EAAEzZ,KAAK2f,GAAI3f,MACpBA,KAAK+Y,EAAInL,KAAKD,MAoBhB,SAAS8T,GAAG9U,GACVA,EAAEwN,IAAK,EACPxN,EAAE+U,IAAM/U,EAAE8G,EAAEkO,aAAahV,EAAE+U,GAAI/U,EAAE+U,EAAI,MASvC,SAASE,GAAGjV,EAAG6J,EAAGpH,GAChB,GAAI,mBAAsBzC,EAAGyC,IAAMzC,EAAI8M,EAAE9M,EAAGyC,QAAS,KAAIzC,GAAK,mBAAqBA,EAAE0T,YAA0C,MAAMrW,MAAM,6BAAzC2C,EAAI8M,EAAE9M,EAAE0T,YAAa1T,GACvH,OAAO,WAAakV,OAAOrL,IAAM,EAAIuC,EAAExX,WAAWoL,EAAG6J,GAAK,GAG5D,SAASsL,GAAGnV,GACVA,EAAE8G,EAAImO,IAAG,WACPjV,EAAE8G,EAAI,KACN9G,EAAEjP,IAAMiP,EAAEjP,GAAI,EAAIokB,GAAGnV,MACpBA,EAAEC,GACL,IAAI4J,EAAI7J,EAAEmN,EACVnN,EAAEmN,EAAI,KACNnN,EAAEgM,EAAE5Y,MAAM,KAAMyW,GAxClBF,EAAEkL,GAAIlB,KACN5T,EAAI8U,GAAG1jB,WACLqc,IAAK,EACPzN,EAAEgV,EAAI,KAENhV,EAAEiT,GAAK,WACL,GAAI3f,KAAKma,GAAI,CACX,IAAIxN,EAAIiB,KAAKD,MAAQ3N,KAAK+Y,EAC1B,EAAIpM,GAAKA,EAAI,GAAK3M,KAAK8Z,EAAI9Z,KAAK0hB,EAAI1hB,KAAKyT,EAAElS,WAAWvB,KAAK4M,EAAG5M,KAAK8Z,EAAInN,IAAM3M,KAAK0hB,IAAM1hB,KAAKyT,EAAEkO,aAAa3hB,KAAK0hB,GAAI1hB,KAAK0hB,EAAI,MAAOjB,GAAEzgB,KAAM,QAASA,KAAKma,KAAOsH,GAAGzhB,MAAOA,KAAK+hB,YAIrLrV,EAAEqV,MAAQ,WACR/hB,KAAKma,IAAK,EACVna,KAAK0hB,IAAM1hB,KAAK0hB,EAAI1hB,KAAKyT,EAAElS,WAAWvB,KAAK4M,EAAG5M,KAAK8Z,GAAI9Z,KAAK+Y,EAAInL,KAAKD,QAQvEjB,EAAEwN,EAAI,WACJsH,GAAG5H,EAAEM,EAAE9a,KAAKY,MACZyhB,GAAGzhB,aACIA,KAAKyT,GAkBd,IAAIuO,GAAK,SAAUtN,GAGjB,SAASsN,EAAGrV,EAAG6J,GACb,IAAIlU,EAAQoS,EAAOtV,KAAKY,OAASA,KAOjC,OALAsC,EAAMqW,EAAIhM,EACVrK,EAAMsK,EAAI4J,EACVlU,EAAMwX,EAAI,KACVxX,EAAM5E,GAAI,EACV4E,EAAMmR,EAAI,KACHnR,EAcT,OA71BF,SAAmBmU,EAAGD,GACpB,GAAiB,mBAANA,GAA0B,OAANA,EAAY,MAAM,IAAIxX,UAAU,uBAAyB+G,OAAOyQ,GAAK,iCAIpG,SAASyL,IACPjiB,KAAK9B,YAAcuY,EAHrBgC,EAAehC,EAAGD,GAMlBC,EAAE3Y,UAAkB,OAAN0Y,EAAazY,OAAOC,OAAOwY,IAAMyL,EAAGnkB,UAAY0Y,EAAE1Y,UAAW,IAAImkB,GA4zB/EC,CAAUF,EAAItN,GAadsN,EAAGlkB,UAAUib,EAAI,SAAUpM,GACzB3M,KAAK8Z,EAAIna,UACTK,KAAKyT,EAAIzT,KAAKtC,GAAI,EAAKokB,GAAG9hB,OAG5BgiB,EAAGlkB,UAAUoc,EAAI,WACfxF,EAAO5W,UAAUoc,EAAE9a,KAAKY,MAExBA,KAAKyT,IAAMsF,EAAE4I,aAAa3hB,KAAKyT,GAAIzT,KAAKyT,EAAI,KAAMzT,KAAKtC,GAAI,EAAIsC,KAAK8Z,EAAI,OAGnEkI,EAzBA,CA0BPjI,GAEF,SAASoI,GAAExV,GACToN,EAAE3a,KAAKY,MACPA,KAAK8Z,EAAInN,EACT3M,KAAKyT,EAAI,GAGX6C,EAAE6L,GAAGpI,GACL,IAAIqI,GAAK,GAET,SAASC,GAAG1V,EAAG6J,EAAGpH,EAAGqH,GACnB7Y,MAAMgB,QAAQwQ,KAAOA,IAAMgT,GAAG,GAAKhT,EAAEjQ,YAAaiQ,EAAIgT,IAEtD,IAAK,IAAItd,EAAI,EAAGA,EAAIsK,EAAE3R,OAAQqH,IAAK,CACjC,IAAIyR,EAAI4I,GAAG3I,EAAGpH,EAAEtK,GAAI2R,GAAK9J,EAAE0T,aAAa,EAAI1T,EAAEmN,GAAKnN,GACnD,IAAK4J,EAAG,MACR5J,EAAE8G,EAAE8C,EAAE1W,KAAO0W,GAIjB,SAAS+L,GAAG3V,GACVsO,EAAGtO,EAAE8G,GAAG,SAAU+C,EAAGpH,GACnBpP,KAAKyT,EAAE3T,eAAesP,IAAM8Q,GAAG1J,KAC9B7J,GACHA,EAAE8G,EAAI,GAYR,SAAS8O,KACPviB,KAAKyT,GAAI,EAmCX,SAAS+O,GAAE7V,EAAG6J,EAAGpH,EAAGqH,GAClB9J,EAAEwB,MAAK,WACL,MAAO,iBAAmBqI,EAAI,MAYlC,SAAY7J,EAAG6J,GACb,IAAK7J,EAAE8G,EAAG,OAAO+C,EACjB,IAAKA,EAAG,OAAO,KAEf,IACE,IAAIpH,EAAIR,KAAK6T,MAAMjM,GACnB,GAAIpH,EAAG,IAAKzC,EAAI,EAAGA,EAAIyC,EAAE3R,OAAQkP,IAC/B,GAAI/O,MAAMgB,QAAQwQ,EAAEzC,IAAK,CACvB,IAAI8J,EAAIrH,EAAEzC,GAEV,KAAM,EAAI8J,EAAEhZ,QAAS,CACnB,IAAIqH,EAAI2R,EAAE,GAEV,GAAI7Y,MAAMgB,QAAQkG,MAAQ,EAAIA,EAAErH,QAAS,CACvC,IAAI8Y,EAAIzR,EAAE,GACV,GAAI,QAAUyR,GAAK,QAAUA,GAAK,SAAWA,EAAG,IAAK,IAAIuD,EAAI,EAAGA,EAAIhV,EAAErH,OAAQqc,IAC5EhV,EAAEgV,GAAK,KAMjB,OAAO6G,GAAGvR,GACV,MAAOlQ,GACP,OAAOsX,GApC+BkM,CAAG/V,EAAGyC,IAAMqH,EAAI,IAAMA,EAAI,OA/CpE0L,GAAErkB,UAAUoc,EAAI,WACdiI,GAAEvI,EAAEM,EAAE9a,KAAKY,MACXsiB,GAAGtiB,OAGLmiB,GAAErkB,UAAUuiB,YAAc,WACxB,MAAMrW,MAAM,6CAOduY,GAAGzkB,UAAUsd,GAAK,WAChBpb,KAAKyT,GAAI,GA2CX8O,GAAGzkB,UAAUqQ,KAAO,aA8BpB,IAAIwU,GAAI,GACJC,GAAK,KAET,SAASC,KACP,OAAOD,GAAKA,IAAM,IAAItC,GAKxB,SAASwC,GAAGnW,GACViQ,GAAExd,KAAKY,KAAM2iB,GAAE9G,GAAIlP,GAKrB,SAAS6T,GAAE7T,GACT,IAAI6J,EAAIqM,KACRpC,GAAEjK,EAAG,IAAIsM,GAAGtM,EAAG7J,IAKjB,SAASoW,GAAGpW,EAAG6J,GACboG,GAAExd,KAAKY,KAAM2iB,GAAEK,WAAYrW,GAC3B3M,KAAKijB,KAAOzM,EAKd,SAAS0M,GAAEvW,GACT,IAAI6J,EAAIqM,KACRpC,GAAEjK,EAAG,IAAIuM,GAAGvM,EAAG7J,IAKjB,SAASkN,GAAGlN,EAAG6J,GACboG,GAAExd,KAAKY,KAAM2iB,GAAErH,GAAI3O,GACnB3M,KAAKmjB,KAAO3M,EAKd,SAAS4M,GAAEzW,EAAG6J,GACZ,GAAI,mBAAsB7J,EAAG,MAAM3C,MAAM,8CACzC,OAAO+O,EAAExX,YAAW,WAClBoL,MACC6J,GAxCLmM,GAAE9G,GAAK,qBAMPvF,EAAEwM,GAAIlG,IAON+F,GAAEK,WAAa,YAOf1M,EAAEyM,GAAInG,IAON+F,GAAErH,GAAK,cAOPhF,EAAEuD,GAAI+C,IASN,IAAIyG,GAAK,CACPC,SAAU,EACVzD,GAAI,EACJsB,GAAI,EACJoC,GAAI,EACJ3C,GAAI,EACJM,GAAI,EACJE,GAAI,EACJ1F,GAAI,EACJ8H,QAAS,EACTjC,GAAI,GAEFkC,GAAK,CACP/C,GAAI,WACJ6B,GAAI,UACJ5G,GAAI,QACJD,GAAI,QACJ8F,GAAI,QACJC,GAAI,mBACJ+B,QAAS,UACT1C,GAAI,kBACJO,GAAI,WACJR,GAAI,mBACJkC,GAAI,kBAGN,SAASW,MAIT,SAASC,GAAGhX,GACV,OAAOA,EAAEmN,IAAMnN,EAAEmN,EAAInN,EAAEjP,KAGzB,SAASkmB,MANTF,GAAG5lB,UAAUgc,EAAI,KAQjB,IAkBI+J,GAlBAC,GAAI,CACNC,KAAM,IACN3D,GAAI,IACJzE,GAAI,IACJ2F,GAAI,KAGN,SAAS0C,KACPpH,GAAExd,KAAKY,KAAM,KAKf,SAASikB,KACPrH,GAAExd,KAAKY,KAAM,KAMf,SAASkkB,MAcT,SAAShK,GAAEvN,EAAG6J,EAAGpH,EAAGqH,GAClBzW,KAAK+Y,EAAIpM,EACT3M,KAAK4M,EAAI4J,EACTxW,KAAK2Y,EAAIvJ,EACTpP,KAAKmkB,EAAI1N,GAAK,EACdzW,KAAKokB,EAAI,IAAIjC,GAAEniB,MACfA,KAAKugB,EAAI8D,GACT1X,EAAI+O,EAAK,SAAM,EACf1b,KAAKqW,EAAI,IAAImL,GAAG7U,GAChB3M,KAAK2iB,EAAI,KACT3iB,KAAKtC,GAAI,EACTsC,KAAKuM,EAAIvM,KAAK8c,EAAI9c,KAAK+Z,EAAI/Z,KAAKojB,EAAIpjB,KAAKwiB,EAAIxiB,KAAKskB,EAAItkB,KAAKse,EAAI,KAC/Dte,KAAKygB,EAAI,GACTzgB,KAAKyT,EAAI,KACTzT,KAAKsgB,EAAI,EACTtgB,KAAKvB,EAAIuB,KAAKqR,EAAI,KAClBrR,KAAKuf,GAAK,EACVvf,KAAKwgB,GAAI,EACTxgB,KAAKggB,EAAI,EACThgB,KAAK8jB,EAAI,KACT9jB,KAAKgZ,GAAKhZ,KAAKkjB,EAAIljB,KAAKukB,EAAIvkB,KAAKwkB,GAAI,EACrCxkB,KAAK8Z,EAAI,IAAI2K,GAGf,SAASA,KACPzkB,KAAKtC,EAAI,KACTsC,KAAKyT,EAAI,GACTzT,KAAK8Z,GAAI,EAlDXxD,EAAE0N,GAAIpH,IAMNtG,EAAE2N,GAAIrH,IAKNtG,EAAE4N,GAAIR,IAENQ,GAAGpmB,UAAU2V,EAAI,WACf,OAAO,IAAIiR,gBAGbR,GAAGpmB,UAAUJ,EAAI,WACf,MAAO,IAGTmmB,GAAK,IAAIK,GAgCT,IAAIG,GAAK,KACLM,GAAK,GACLC,GAAK,GAOT,SAASC,GAAGlY,EAAG6J,EAAGpH,GAChBzC,EAAEyW,EAAI,EACNzW,EAAEoN,EAAI+K,GAAGvF,GAAE/I,IACX7J,EAAEJ,EAAI6C,EACNzC,EAAE6X,GAAI,EACNO,GAAGpY,EAAG,MAGR,SAASoY,GAAGpY,EAAG6J,GACb7J,EAAE6V,EAAI5U,KAAKD,MACXqX,GAAGrY,GACHA,EAAEmQ,EAAIyC,GAAE5S,EAAEoN,GACV,IAAI3K,EAAIzC,EAAEmQ,EACNrG,EAAI9J,EAAEwX,EACVvmB,MAAMgB,QAAQ6X,KAAOA,EAAI,CAAC1Q,OAAO0Q,KACjCwO,GAAG7V,EAAE0K,EAAG,IAAKrD,GACb9J,EAAE2T,EAAI,EACNlR,EAAIzC,EAAEoM,EAAE4J,EACRhW,EAAEmN,EAAI,IAAI2K,GACV9X,EAAE8G,EAAIyR,GAAGvY,EAAEoM,EAAG3J,EAAIoH,EAAI,MAAO7J,EAAEJ,GAC/B,EAAII,EAAEqT,IAAMrT,EAAEmX,EAAI,IAAI9B,GAAGvI,EAAE9M,EAAE8O,GAAI9O,EAAGA,EAAE8G,GAAI9G,EAAEqT,IAC5CqC,GAAG1V,EAAEyX,EAAGzX,EAAE8G,EAAG,mBAAoB9G,EAAE0S,IACnC7I,EAAI7J,EAAEgW,EAAIzH,EAAGvO,EAAEgW,GAAK,GACpBhW,EAAEJ,GAAKI,EAAE0E,IAAM1E,EAAE0E,EAAI,QAASmF,EAAE,gBAAkB,oCAAqC7J,EAAE8G,EAAEyF,GAAGvM,EAAEmQ,EAAGnQ,EAAE0E,EAAG1E,EAAEJ,EAAGiK,KAAO7J,EAAE0E,EAAI,MAAO1E,EAAE8G,EAAEyF,GAAGvM,EAAEmQ,EAAGnQ,EAAE0E,EAAG,KAAMmF,IACxJgK,GAAE,GA7PJ,SAAY7T,EAAG6J,EAAGpH,EAAGqH,EAAG3R,EAAGyR,GACzB5J,EAAEwB,MAAK,WACL,GAAIxB,EAAE8G,EACJ,GAAI8C,EAGF,IAFA,IAAIuD,EAAI,GAEC5a,EAAIqX,EAAE8D,MAAM,KAAMhJ,EAAI,EAAGA,EAAInS,EAAEzB,OAAQ4T,IAAK,CACnD,IAAIsH,EAAIzZ,EAAEmS,GAAGgJ,MAAM,KAEnB,GAAI,EAAI1B,EAAElb,OAAQ,CAChB,IAAIgP,EAAIkM,EAAE,GACVA,EAAIA,EAAE,GACN,IAAIwM,EAAI1Y,EAAE4N,MAAM,KAChBP,EAAI,GAAKqL,EAAE1nB,QAAU,QAAU0nB,EAAE,GAAKrL,GAAKrN,EAAI,KAAMkM,EAAI,IAAOmB,GAAKrN,EAAI,oBAGxEqN,EAAI,UACNA,EAAIvD,EACX,MAAO,gBAAkBE,EAAI,cAAgB3R,EAAI,MAAQ0R,EAAI,KAAOpH,EAAI,KAAO0K,KA4OjFsL,CAAGzY,EAAEC,EAAGD,EAAE0E,EAAG1E,EAAEmQ,EAAGnQ,EAAEgM,EAAGhM,EAAEwX,EAAGxX,EAAEJ,GAyFhC,SAAS8Y,GAAG1Y,GACV,QAAOA,EAAE8G,IAAI,OAAS9G,EAAE0E,GAAK,GAAK1E,EAAEyW,GAAKzW,EAAEoM,EAAEuM,IAG/C,SAASC,GAAG5Y,EAAG6J,EAAGpH,GAIhB,IAHA,IACItK,EADA2R,GAAI,GAGA9J,EAAE6T,GAAK7T,EAAE2T,EAAIlR,EAAE3R,QAAS,CAC9B,IAAIqH,EAAI0gB,GAAG7Y,EAAGyC,KAASwV,GAAI,CACzB,GAAKpO,IAAM7J,EAAElO,EAAI,EAAGykB,GAAE,IAAKzM,GAAI,GAC/B+L,GAAE7V,EAAEC,EAAGD,EAAEgM,EAAG,KAAM,yBAClB,MACK,GAAI7T,GAAK6f,GAAI,CAClBhY,EAAElO,EAAI,EACNykB,GAAE,IACFV,GAAE7V,EAAEC,EAAGD,EAAEgM,EAAGvJ,EAAG,mBACfqH,GAAI,EACJ,MACK+L,GAAE7V,EAAEC,EAAGD,EAAEgM,EAAG7T,EAAG,MAAO2gB,GAAG9Y,EAAG7H,GAGrCugB,GAAG1Y,IAAM7H,GAAK8f,IAAM9f,GAAK6f,KAAOhY,EAAEmN,EAAErG,EAAI,GAAI9G,EAAE2T,EAAI,GAClD,GAAK9J,GAAK,GAAKpH,EAAE3R,QAAUkP,EAAEmN,EAAEA,IAAMnN,EAAElO,EAAI,EAAGykB,GAAE,IAAKzM,GAAI,GACzD9J,EAAEjP,EAAIiP,EAAEjP,GAAK+Y,EACbA,EAAI,EAAIrH,EAAE3R,SAAWkP,EAAEqM,KAAOrM,EAAEqM,IAAK,GAAIxC,EAAI7J,EAAEoM,GAAKtF,GAAK9G,GAAK6J,EAAE+N,IAAM/N,EAAEsN,IAAMtN,EAAEsD,EAAE3L,KAAK,uDAAyDiB,EAAE3R,QAASioB,GAAGlP,GAAIA,EAAEsN,GAAI,EAAIZ,GAAE,OAASV,GAAE7V,EAAEC,EAAGD,EAAEgM,EAAGvJ,EAAG,8BAA+BmR,GAAE5T,GAAIgZ,GAAGhZ,IAWhP,SAAS6Y,GAAG7Y,EAAG6J,GACb,IAAIpH,EAAIzC,EAAE2T,EACN7J,EAAID,EAAEnW,QAAQ,KAAM+O,GACxB,OAAK,GAAKqH,EAAUmO,IACpBxV,EAAIyS,OAAOrL,EAAEoP,UAAUxW,EAAGqH,IACtBoP,MAAMzW,GAAWuV,IACrBlO,GAAK,GACGrH,EAAIoH,EAAE/Y,OAAemnB,IAC7BpO,EAAIA,EAAEsP,OAAOrP,EAAGrH,GAChBzC,EAAE2T,EAAI7J,EAAIrH,EACHoH,IAQT,SAASwO,GAAGrY,GACVA,EAAE2X,EAAI1W,KAAKD,MAAQhB,EAAE4T,EACrBwF,GAAGpZ,EAAGA,EAAE4T,GAGV,SAASwF,GAAGpZ,EAAG6J,GACb,GAAI,MAAQ7J,EAAE2R,EAAG,MAAMtU,MAAM,2BAC7B2C,EAAE2R,EAAI8E,GAAE3J,EAAE9M,EAAEqZ,GAAIrZ,GAAI6J,GAGtB,SAASyP,GAAGtZ,GACVA,EAAE2R,IAAMvF,EAAE4I,aAAahV,EAAE2R,GAAI3R,EAAE2R,EAAI,MASrC,SAASqH,GAAGhZ,GACV,GAAKA,EAAEoM,EAAEoM,GAAKxY,EAAE6T,GAAK0F,GAAGvZ,EAAEoM,EAAGpM,GAG/B,SAAS4T,GAAE5T,GACTsZ,GAAGtZ,GACH,IAAI6J,EAAI7J,EAAEmX,EACVtN,GAAK,mBAAqBA,EAAEyD,IAAMzD,EAAEyD,KACpCtN,EAAEmX,EAAI,KACNrC,GAAG9U,EAAE0J,GACLiM,GAAG3V,EAAEyX,GACLzX,EAAE8G,IAAM+C,EAAI7J,EAAE8G,EAAG9G,EAAE8G,EAAI,KAAM+C,EAAE2P,QAAS3P,EAAEyD,MAG5C,SAASwL,GAAG9Y,EAAG6J,GACb,IACE,IAAIpH,EAAIzC,EAAEoM,EACV,GAAI,GAAK3J,EAAE+V,IAAM/V,EAAEqE,GAAK9G,GAAKyZ,GAAGhX,EAAE1R,EAAGiP,IAAK,GAAIyC,EAAEoR,EAAI7T,EAAE4S,GAAI5S,EAAEuW,GAAKkD,GAAGhX,EAAE1R,EAAGiP,IAAM,GAAKyC,EAAE+V,EAAG,CACvF,IACE,IAAI1O,EAAIrH,EAAEiM,GAAG5H,EAAEgP,MAAMjM,GACrB,MAAOmC,GACPlC,EAAI,KAGN,GAAI7Y,MAAMgB,QAAQ6X,IAAM,GAAKA,EAAEhZ,OAAQ,CACrC,IAAIqH,EAAI2R,EACR,GAAI,GAAK3R,EAAE,IAAI6H,EACb,IAAKyC,EAAEiC,EAAG,CACR,GAAIjC,EAAEqE,EAAG,MAAIrE,EAAEqE,EAAE+O,EAAI,IAAM7V,EAAE6V,GAAqB,MAAM7V,EAAxB0Z,GAAGjX,GAAIkX,GAAGlX,GAC1CmX,GAAGnX,GACH8T,GAAE,UAEC9T,EAAEuL,GAAK7V,EAAE,GAAI,EAAIsK,EAAEuL,GAAKvL,EAAEoV,GAAK,MAAQ1f,EAAE,IAAMsK,EAAEmQ,GAAK,GAAKnQ,EAAE0N,IAAM1N,EAAE2K,IAAM3K,EAAE2K,EAAIqJ,GAAE3J,EAAErK,EAAE4P,GAAI5P,GAAI,MAEtG,GAAI,GAAKoX,GAAGpX,EAAE1R,IAAM0R,EAAEqX,GAAI,CACxB,IACErX,EAAEqX,KACF,MAAO9N,IAETvJ,EAAEqX,QAAK,QAEJC,GAAEtX,EAAG,SACP,IAAKzC,EAAEuW,GAAK9T,EAAEqE,GAAK9G,IAAM0Z,GAAGjX,IAAKqL,EAAGjE,GAAI,IAAK1R,EAAIsK,EAAEiM,GAAG5H,EAAEgP,MAAMjM,GAAIA,EAAI,EAAGA,EAAI1R,EAAErH,OAAQ+Y,IAAK,CACjG,IAAImC,EAAI7T,EAAE0R,GAGV,GAFApH,EAAEoV,EAAI7L,EAAE,GACRA,EAAIA,EAAE,GACF,GAAKvJ,EAAE+V,EACT,GAAI,KAAOxM,EAAE,GAAI,CACfvJ,EAAE8T,EAAIvK,EAAE,GACRvJ,EAAE4K,GAAKrB,EAAE,GACT,IAAIlM,EAAIkM,EAAE,GACV,MAAQlM,IAAM2C,EAAEgL,GAAK3N,EAAG2C,EAAE0K,EAAE3L,KAAK,OAASiB,EAAEgL,KAC5C,IAAI+K,EAAIxM,EAAE,GACV,MAAQwM,IAAM/V,EAAE+L,GAAKgK,EAAG/V,EAAE0K,EAAE3L,KAAK,QAAUiB,EAAE+L,KAC7C,IAAIwL,EAAKhO,EAAE,GACX,MAAQgO,GAAM,iBAAoBA,GAAM,EAAIA,IAAOlQ,EAAI,IAAMkQ,EAAIvX,EAAEgU,EAAI3M,EAAGrH,EAAE0K,EAAE3L,KAAK,gCAAkCsI,IACrHA,EAAIrH,EACJ,IAAIuP,EAAKhS,EAAE8G,EAEX,GAAIkL,EAAI,CACN,IAAIiI,EAAKjI,EAAGlL,EAAIkL,EAAGlL,EAAEoT,kBAAkB,0BAA4B,KAEnE,GAAID,EAAI,CACN,IAAIrQ,EAAIE,EAAE/Y,GACT6Y,EAAE9C,IAAMqH,EAAE8L,EAAI,SAAW9L,EAAE8L,EAAI,SAAW9L,EAAE8L,EAAI,SAAWrQ,EAAE3J,EAAI2J,EAAEwC,EAAGxC,EAAE9C,EAAI,IAAI9H,IAAO4K,EAAEuD,IAAMgN,GAAGvQ,EAAGA,EAAEuD,GAAIvD,EAAEuD,EAAI,OAGpH,GAAIrD,EAAEgK,EAAG,CACP,IAAI8C,EAAK5E,EAAGlL,EAAIkL,EAAGlL,EAAEoT,kBAAkB,qBAAuB,KAC9DtD,IAAO9M,EAAEgE,GAAK8I,EAAIwD,GAAEtQ,EAAE+L,EAAG/L,EAAEgK,EAAG8C,KAIlCnU,EAAE+V,EAAI,EACN/V,EAAExC,GAAKwC,EAAExC,EAAEqO,KACX7L,EAAEmV,IAAMnV,EAAE4Q,EAAIpS,KAAKD,MAAQhB,EAAE6V,EAAGpT,EAAE0K,EAAE3L,KAAK,kBAAoBiB,EAAE4Q,EAAI,OAEnE,IAAIlG,EAAInN,EAGR,IAJA8J,EAAIrH,GAEF4X,GAAKC,GAAGxQ,EAAGA,EAAEkM,EAAIlM,EAAEuD,GAAK,KAAMvD,EAAEJ,GAE9ByD,EAAEoJ,EAAG,CACPgE,GAAGzQ,EAAE/Y,EAAGoc,GACR,IAAI5a,EAAI4a,EACJzI,EAAIoF,EAAE2M,EACV/R,GAAKnS,EAAEqC,WAAW8P,GAClBnS,EAAEof,IAAM2H,GAAG/mB,GAAI8lB,GAAG9lB,IAClBuX,EAAEhD,EAAIqG,OACDqN,GAAG1Q,GAEV,EAAIrH,EAAE2J,EAAEtb,QAAU2pB,GAAGhY,OAChB,QAAUuJ,EAAE,IAAM,SAAWA,EAAE,IAAM+N,GAAEtX,EAAG,QAC5C,GAAKA,EAAE+V,IAAM,QAAUxM,EAAE,IAAM,SAAWA,EAAE,GAAK,QAAUA,EAAE,GAAK+N,GAAEtX,EAAG,GAAKiY,GAAGjY,GAAK,QAAUuJ,EAAE,IAAMvJ,EAAExC,GAAKwC,EAAExC,EAAEoO,GAAGrC,GAAIvJ,EAAE0N,EAAI,GAEvI0D,GAAE,GACF,MAAO7H,KAyBX,SAAS2O,GAAG3a,EAAG6J,GACb,GAAI7J,EAAE3J,SAAW,mBAAqB2J,EAAE3J,QAAS2J,EAAE3J,QAAQwT,OAAG,QAAa,GAAIyC,EAAGtM,IAAM,iBAAoBA,EAAGsN,EAAGtN,EAAG6J,OAAG,OAAa,CACnI,GAAI7J,EAAE4a,GAAK,mBAAqB5a,EAAE4a,EAAG,IAAInY,EAAIzC,EAAE4a,SAAS,GAAI5a,EAAEoa,GAAK,mBAAqBpa,EAAEoa,EAAG3X,OAAI,OAAY,GAAI6J,EAAGtM,IAAM,iBAAoBA,EAAG,CAC/IyC,EAAI,GAEJ,IAAK,IAAIqH,EAAI9J,EAAElP,OAAQqH,EAAI,EAAGA,EAAI2R,EAAG3R,IACnCsK,EAAE5N,KAAKsD,QAEJ,IAAKA,KAAKsK,EAAI,GAAIqH,EAAI,EAAG9J,EAC9ByC,EAAEqH,KAAO3R,EAGXA,GADA2R,EAjCJ,SAAY9J,GACV,GAAIA,EAAEoa,GAAK,mBAAqBpa,EAAEoa,EAAG,OAAOpa,EAAEoa,IAC9C,GAAI,iBAAoBpa,EAAG,OAAOA,EAAE0N,MAAM,IAE1C,GAAIpB,EAAGtM,GAAI,CACT,IAAK,IAAI6J,EAAI,GAAIpH,EAAIzC,EAAElP,OAAQgZ,EAAI,EAAGA,EAAIrH,EAAGqH,IAC3CD,EAAEhV,KAAKmL,EAAE8J,IAGX,OAAOD,EAMT,IAAKC,KAHLD,EAAI,GACJpH,EAAI,EAEMzC,EACR6J,EAAEpH,KAAOzC,EAAE8J,GAGb,OAAOD,EAcDgR,CAAG7a,IACDlP,OAEN,IAAK,IAAI8Y,EAAI,EAAGA,EAAIzR,EAAGyR,IACrBC,EAAEpX,UAAK,EAAQqX,EAAEF,GAAInH,GAAKA,EAAEmH,GAAI5J,IAKtC,SAAS+U,GAAE/U,EAAG6J,GACZxW,KAAK8Z,EAAI,GACT9Z,KAAKyT,EAAI,GACTzT,KAAKtC,EAAI,EACT,IAAI0R,EAAIzP,UAAUlC,OAElB,GAAI,EAAI2R,EAAG,CACT,GAAIA,EAAI,EAAG,MAAMpF,MAAM,8BAEvB,IAAK,IAAIyM,EAAI,EAAGA,EAAIrH,EAAGqH,GAAK,EAC1BzW,KAAKqD,IAAI1D,UAAU8W,GAAI9W,UAAU8W,EAAI,SAElC,GAAI9J,EAAG,GAAIA,aAAa+U,GAAG,IAAKtS,EAAIzC,EAAE4a,IAAK9Q,EAAI,EAAGA,EAAIrH,EAAE3R,OAAQgZ,IACrEzW,KAAKqD,IAAI+L,EAAEqH,GAAI9J,EAAExJ,IAAIiM,EAAEqH,UAClB,IAAKA,KAAK9J,EACf3M,KAAKqD,IAAIoT,EAAG9J,EAAE8J,IAqBlB,SAASgR,GAAG9a,GACV,GAAIA,EAAEjP,GAAKiP,EAAE8G,EAAEhW,OAAQ,CACrB,IAAK,IAAI+Y,EAAI,EAAGpH,EAAI,EAAGoH,EAAI7J,EAAE8G,EAAEhW,QAAS,CACtC,IAAIgZ,EAAI9J,EAAE8G,EAAE+C,GACZ+Q,GAAE5a,EAAEmN,EAAGrD,KAAO9J,EAAE8G,EAAErE,KAAOqH,GACzBD,IAGF7J,EAAE8G,EAAEhW,OAAS2R,EAGf,GAAIzC,EAAEjP,GAAKiP,EAAE8G,EAAEhW,OAAQ,CACrB,IAAIqH,EAAI,GAER,IAAKsK,EAAIoH,EAAI,EAAGA,EAAI7J,EAAE8G,EAAEhW,QACV8pB,GAAEziB,EAAd2R,EAAI9J,EAAE8G,EAAE+C,MAAgB7J,EAAE8G,EAAErE,KAAOqH,EAAG3R,EAAE2R,GAAK,GAAID,IAGnD7J,EAAE8G,EAAEhW,OAAS2R,GAqBjB,SAASmY,GAAE5a,EAAG6J,GACZ,OAAOzY,OAAOD,UAAUgC,eAAeV,KAAKuN,EAAG6J,IAzZjD9J,EAAIwN,GAAEpc,WAEJyD,WAAa,SAAUoL,GACvB3M,KAAKugB,EAAI5T,GA+BXD,EAAE2S,GAAK,SAAU1S,GACfA,EAAIA,EAAEjN,OACN,IAAI8W,EAAIxW,KAAK8jB,EACbtN,GAAK,GAAKwJ,GAAErT,GAAK6J,EAAEuC,IAAM/Y,KAAKyb,GAAG9O,IAGnCD,EAAE+O,GAAK,SAAU9O,GACf,IACE,GAAIA,GAAK3M,KAAKyT,EAAG9G,EAAG,CAClB,IAAIF,EAAIuT,GAAEhgB,KAAKyT,GACX+C,EAAIxW,KAAKyT,EAAEkT,KACXxB,EAAInlB,KAAKyT,EAAEwF,KAEf,KAAM,EAAIxM,KAAO,GAAKA,GAAKiP,GAAM1b,KAAKyT,IAAMzT,KAAK8Z,EAAEA,GAAK9Z,KAAKyT,EAAEiU,MAAQC,GAAG3nB,KAAKyT,KAAM,CACnFzT,KAAKwgB,GAAK,GAAK/T,GAAK,GAAK+J,GAAyBgK,GAAnB,GAAKhK,GAAK,GAAK2O,EAAM,EAAO,GAC3Dc,GAAGjmB,MACH,IAAIoP,EAAIpP,KAAKyT,EAAEwF,KACfjZ,KAAKuf,EAAInQ,EAEToH,EAAG,GAAI6O,GAAGrlB,MAAO,CACf,IAAIyW,EAAIkR,GAAG3nB,KAAKyT,GAChB9G,EAAI,GACJ,IAAI7H,EAAI2R,EAAEhZ,OACN8Y,EAAI,GAAKyJ,GAAEhgB,KAAKyT,GAEpB,IAAKzT,KAAK8Z,EAAEpc,EAAG,CACb,GAAI,oBAAuBkqB,YAAa,CACtCrH,GAAEvgB,MACF2lB,GAAG3lB,MACH,IAAI8Z,EAAI,GACR,MAAMtD,EAGRxW,KAAK8Z,EAAEpc,EAAI,IAAIqb,EAAE6O,YAGnB,IAAKpR,EAAI,EAAGA,EAAI1R,EAAG0R,IACjBxW,KAAK8Z,EAAEA,GAAI,EAAInN,GAAK3M,KAAK8Z,EAAEpc,EAAEmqB,OAAOpR,EAAED,GAAI,CACxCsR,OAAQvR,GAAKC,GAAK1R,EAAI,IAI1B2R,EAAEsI,OAAO,EAAGja,GACZ9E,KAAK8Z,EAAErG,GAAK9G,EACZ3M,KAAKsgB,EAAI,EACTxG,EAAI9Z,KAAK8Z,EAAErG,OACNqG,EAAI9Z,KAAKyT,EAAEiU,KAKlB,GAHA1nB,KAAKtC,EAAI,KAAO0R,EA3RxB,SAAYzC,EAAG6J,EAAGpH,EAAGqH,EAAG3R,EAAGyR,EAAGuD,GAC5BnN,EAAEwB,MAAK,WACL,MAAO,iBAAmBsI,EAAI,eAAiB3R,EAAI,MAAQ0R,EAAI,KAAOpH,EAAI,KAAOmH,EAAI,IAAMuD,KA0RvFiO,CAAG/nB,KAAK4M,EAAG5M,KAAKqR,EAAGrR,KAAK8c,EAAG9c,KAAK2Y,EAAG3Y,KAAKmkB,EAAG1X,EAAG2C,GAE1CpP,KAAKtC,EAAG,CACV,GAAIsC,KAAKukB,IAAMvkB,KAAKkjB,EAAG,CACrB1M,EAAG,CACD,GAAIxW,KAAKyT,EAAG,CACV,IAAIvU,EACAmS,EAAIrR,KAAKyT,EAEb,IAAKvU,EAAImS,EAAEoC,EAAIpC,EAAEoC,EAAEoT,kBAAkB,2BAA6B,QAAUpM,EAAGvb,GAAI,CACjF,IAAIyZ,EAAIzZ,EACR,MAAMsX,GAIVmC,EAAI,KAGN,KAAIvJ,EAAIuJ,GAAiH,CACvH3Y,KAAKtC,GAAI,EACTsC,KAAKvB,EAAI,EACTykB,GAAE,IACF3C,GAAEvgB,MACF2lB,GAAG3lB,MACH,MAAM2M,EANG6V,GAAExiB,KAAK4M,EAAG5M,KAAK2Y,EAAGvJ,EAAG,0DAA2DpP,KAAKkjB,GAAI,EAAIuC,GAAGzlB,KAAMoP,GAUnHpP,KAAKwkB,GAAKe,GAAGvlB,KAAMyM,EAAGqN,GAAI4B,GAAM1b,KAAKtC,GAAK,GAAK+O,IAAM4V,GAAGriB,KAAKokB,EAAGpkB,KAAKqW,EAAG,OAAQrW,KAAKmf,IAAKnf,KAAKqW,EAAE0L,WAAaS,GAAExiB,KAAK4M,EAAG5M,KAAK2Y,EAAGmB,EAAG,MAAO2L,GAAGzlB,KAAM8Z,IACnJ,GAAKrN,GAAK8T,GAAEvgB,MACZA,KAAKtC,IAAMsC,KAAKwgB,IAAM,GAAK/T,EAAIyZ,GAAGlmB,KAAK+Y,EAAG/Y,OAASA,KAAKtC,GAAI,EAAIsnB,GAAGhlB,aAC9D,KAAOoP,GAAK,EAAI0K,EAAEzZ,QAAQ,gBAAkBL,KAAKvB,EAAI,EAAGykB,GAAE,MAAQljB,KAAKvB,EAAI,EAAGykB,GAAE,KAAM3C,GAAEvgB,MAAO2lB,GAAG3lB,QAG7G,MAAOyM,MA+BXC,EAAEyS,GAAK,WACL,GAAInf,KAAKyT,EAAG,CACV,IAAI9G,EAAIqT,GAAEhgB,KAAKyT,GACX+C,EAAIxW,KAAKyT,EAAEiU,KACf1nB,KAAKsgB,EAAI9J,EAAE/Y,SAAWwoB,GAAGjmB,MAAOulB,GAAGvlB,KAAM2M,EAAG6J,GAAIxW,KAAKtC,GAAK,GAAKiP,GAAKqY,GAAGhlB,SAiB3E0M,EAAEsb,OAAS,WACThoB,KAAKwgB,GAAI,EACTD,GAAEvgB,OAiBJ0M,EAAEsZ,GAAK,WACLhmB,KAAKse,EAAI,KACT,IAAI3R,EAAIiB,KAAKD,MACb,GAAKhB,EAAI3M,KAAKskB,GA5XhB,SAAY3X,EAAG6J,GACb7J,EAAEwB,MAAK,WACL,MAAO,YAAcqI,KA0XJyR,CAAGjoB,KAAK4M,EAAG5M,KAAK8c,GAAI,GAAK9c,KAAKojB,IAAM5C,GAAE,GAAI0C,GAAE,KAAM3C,GAAEvgB,MAAOA,KAAKvB,EAAI,EAAGknB,GAAG3lB,OAAS+lB,GAAG/lB,KAAMA,KAAKskB,EAAI3X,KAiK1HD,EAAIgV,GAAE5jB,WAEJipB,EAAI,WACJU,GAAGznB,MAEH,IAAK,IAAI2M,EAAI,GAAI6J,EAAI,EAAGA,EAAIxW,KAAKyT,EAAEhW,OAAQ+Y,IACzC7J,EAAEnL,KAAKxB,KAAK8Z,EAAE9Z,KAAKyT,EAAE+C,KAGvB,OAAO7J,GAGTD,EAAE6a,EAAI,WAEJ,OADAE,GAAGznB,MACIA,KAAKyT,EAAE8G,UAyBhB7N,EAAEvJ,IAAM,SAAUwJ,EAAG6J,GACnB,OAAO+Q,GAAEvnB,KAAK8Z,EAAGnN,GAAK3M,KAAK8Z,EAAEnN,GAAK6J,GAGpC9J,EAAErJ,IAAM,SAAUsJ,EAAG6J,GACnB+Q,GAAEvnB,KAAK8Z,EAAGnN,KAAO3M,KAAKtC,IAAKsC,KAAKyT,EAAEjS,KAAKmL,IACvC3M,KAAK8Z,EAAEnN,GAAK6J,GAGd9J,EAAE1J,QAAU,SAAU2J,EAAG6J,GACvB,IAAK,IAAIpH,EAAIpP,KAAKunB,IAAK9Q,EAAI,EAAGA,EAAIrH,EAAE3R,OAAQgZ,IAAK,CAC/C,IAAI3R,EAAIsK,EAAEqH,GACNF,EAAIvW,KAAKmD,IAAI2B,GACjB6H,EAAEvN,KAAKoX,EAAGD,EAAGzR,EAAG9E,QAQpB,IAAIkoB,GAAK,6HAoBT,SAAS1D,GAAE7X,EAAG6J,GAMZ,GALAxW,KAAKtC,EAAIsC,KAAKuM,EAAIvM,KAAK4M,EAAI,GAC3B5M,KAAK2Y,EAAI,KACT3Y,KAAKvB,EAAIuB,KAAK+Y,EAAI,GAClB/Y,KAAKyT,GAAI,EAEL9G,aAAa6X,GAAG,CAClBxkB,KAAKyT,OAAI,IAAW+C,EAAIA,EAAI7J,EAAE8G,EAC9B0U,GAAGnoB,KAAM2M,EAAEC,GACX5M,KAAKuM,EAAII,EAAEJ,EACX6b,GAAGpoB,KAAM2M,EAAEjP,GACX2qB,GAAGroB,KAAM2M,EAAEgM,GACX3Y,KAAK+Y,EAAIpM,EAAEoM,EACXvC,EAAI7J,EAAEmN,EACN,IAAI1K,EAAI,IAAIkZ,GACZlZ,EAAE1R,EAAI8Y,EAAE9Y,EACR8Y,EAAE/C,IAAMrE,EAAEqE,EAAI,IAAIiO,GAAElL,EAAE/C,GAAIrE,EAAE0K,EAAItD,EAAEsD,GAClCyO,GAAGvoB,KAAMoP,GACTpP,KAAKvB,EAAIkO,EAAElO,OACNkO,IAAMyC,EAAIrJ,OAAO4G,GAAGpG,MAAM2hB,MAAQloB,KAAKyT,IAAM+C,EAAG2R,GAAGnoB,KAAMoP,EAAE,IAAM,IAAI,GAAKpP,KAAKuM,EAAIic,GAAGpZ,EAAE,IAAM,IAAKgZ,GAAGpoB,KAAMoP,EAAE,IAAM,IAAI,GAAKiZ,GAAGroB,KAAMoP,EAAE,IAAKpP,KAAK+Y,EAAIyP,GAAGpZ,EAAE,IAAM,IAAI,GAAKmZ,GAAGvoB,KAAMoP,EAAE,IAAM,IAAI,GAAKpP,KAAKvB,EAAI+pB,GAAGpZ,EAAE,IAAM,MAAQpP,KAAKyT,IAAM+C,EAAGxW,KAAK8Z,EAAI,IAAIwO,GAAG,KAAMtoB,KAAKyT,IAelR,SAAS8L,GAAE5S,GACT,OAAO,IAAI6X,GAAE7X,GAGf,SAASwb,GAAGxb,EAAG6J,EAAGpH,GAChBzC,EAAEC,EAAIwC,EAAIoZ,GAAGhS,GAAG,GAAMA,EACtB7J,EAAEC,IAAMD,EAAEC,EAAID,EAAEC,EAAEyI,QAAQ,KAAM,KAGlC,SAAS+S,GAAGzb,EAAG6J,EAAGpH,GAChBzC,EAAEjP,EAAI0R,EAAIoZ,GAAGhS,GAAG,GAAMA,EAGxB,SAAS6R,GAAG1b,EAAG6J,GACb,GAAIA,EAAG,CAEL,GADAA,EAAIqL,OAAOrL,GACPqP,MAAMrP,IAAM,EAAIA,EAAG,MAAMxM,MAAM,mBAAqBwM,GACxD7J,EAAEgM,EAAInC,OACD7J,EAAEgM,EAAI,KAGf,SAAS4P,GAAG5b,EAAG6J,EAAGpH,GAChBoH,aAAa8R,IAAM3b,EAAEmN,EAAItD,EAiK3B,SAAY7J,EAAG6J,GACbA,IAAM7J,EAAEC,IAAMwX,GAAEzX,GAAIA,EAAEjP,EAAI,KAAMiP,EAAE8G,EAAEzQ,SAAQ,SAAUoM,EAAGqH,GACvD,IAAI3R,EAAI2R,EAAE1H,cACV0H,GAAK3R,IAAM2jB,GAAGzoB,KAAMyW,GAAIwO,GAAGjlB,KAAM8E,EAAGsK,MACnCzC,IACHA,EAAEC,EAAI4J,EAtKsBkS,CAAG/b,EAAEmN,EAAGnN,EAAE8G,KAAOrE,IAAMoH,EAAImS,GAAGnS,EAAGoS,KAAMjc,EAAEmN,EAAI,IAAIwO,GAAG9R,EAAG7J,EAAE8G,IAGvF,SAASsT,GAAEpa,EAAG6J,EAAGpH,GACfzC,EAAEmN,EAAEzW,IAAImT,EAAGpH,GAGb,SAAS0V,GAAGnY,GAEV,OADAoa,GAAEpa,EAAG,KAAMwM,KAAK0P,MAAM,WAAa1P,KAAKC,UAAUja,SAAS,IAAMga,KAAK2P,IAAI3P,KAAK0P,MAAM,WAAa1P,KAAKC,UAAYxL,KAAKD,OAAOxO,SAAS,KACjIwN,EAgBT,SAAS6b,GAAG7b,EAAG6J,GACb,OAAO7J,EAAI6J,EAAIuS,UAAUpc,EAAE0I,QAAQ,OAAQ,UAAY2T,mBAAmBrc,GAAK,GAGjF,SAASgc,GAAGhc,EAAG6J,EAAGpH,GAChB,MAAO,iBAAoBzC,GAAKA,EAAIsc,UAAUtc,GAAG0I,QAAQmB,EAAG0S,IAAK9Z,IAAMzC,EAAIA,EAAE0I,QAAQ,uBAAwB,QAAS1I,GAAK,KAG7H,SAASuc,GAAGvc,GAEV,MAAO,MADPA,EAAIA,EAAE0C,WAAW,KACE,EAAI,IAAIlQ,SAAS,KAAW,GAAJwN,GAAQxN,SAAS,IArE9DqlB,GAAE1mB,UAAUqB,SAAW,WACrB,IAAIwN,EAAI,GACJ6J,EAAIxW,KAAK4M,EACb4J,GAAK7J,EAAEnL,KAAKmnB,GAAGnS,EAAG2S,IAAI,GAAK,KAC3B,IAAI/Z,EAAIpP,KAAKtC,EAKb,OAJI0R,GAAK,QAAUoH,KAAG7J,EAAEnL,KAAK,OAAQgV,EAAIxW,KAAKuM,IAAMI,EAAEnL,KAAKmnB,GAAGnS,EAAG2S,IAAI,GAAK,KAAMxc,EAAEnL,KAAK4nB,mBAAmBrjB,OAAOqJ,IAAIiG,QAAQ,uBAAwB,QAAqB,OAAZjG,EAAIpP,KAAK2Y,IAAgBhM,EAAEnL,KAAK,IAAKuE,OAAOqJ,MACtMA,EAAIpP,KAAK+Y,KAAG/Y,KAAKtC,GAAK,KAAO0R,EAAEsC,OAAO,IAAM/E,EAAEnL,KAAK,KAAMmL,EAAEnL,KAAKmnB,GAAGvZ,EAAG,KAAOA,EAAEsC,OAAO,GAAK2X,GAAKC,IAAI,MACvGla,EAAIpP,KAAK8Z,EAAE3a,aAAewN,EAAEnL,KAAK,IAAK4N,IACtCA,EAAIpP,KAAKvB,IAAMkO,EAAEnL,KAAK,IAAKmnB,GAAGvZ,EAAGma,KAC3B5c,EAAEhG,KAAK,KA+DhB,IAAIwiB,GAAK,YACLG,GAAK,UACLD,GAAK,SACLT,GAAK,UACLW,GAAK,KAET,SAASjB,GAAG3b,EAAG6J,GACbxW,KAAK8Z,EAAI9Z,KAAKyT,EAAI,KAClBzT,KAAKtC,EAAIiP,GAAK,KACd3M,KAAK4M,IAAM4J,EAGb,SAAS4N,GAAEzX,GACTA,EAAE8G,IAAM9G,EAAE8G,EAAI,IAAIiO,GAAK/U,EAAEmN,EAAI,EAAGnN,EAAEjP,GA7HpC,SAAYiP,EAAG6J,GACb,GAAI7J,EAAG,CACLA,EAAIA,EAAE0N,MAAM,KAEZ,IAAK,IAAIjL,EAAI,EAAGA,EAAIzC,EAAElP,OAAQ2R,IAAK,CACjC,IAAIqH,EAAI9J,EAAEyC,GAAG/O,QAAQ,KACjByE,EAAI,KAER,GAAI,GAAK2R,EAAG,CACV,IAAIF,EAAI5J,EAAEyC,GAAGwW,UAAU,EAAGnP,GAC1B3R,EAAI6H,EAAEyC,GAAGwW,UAAUnP,EAAI,QAClBF,EAAI5J,EAAEyC,GAEboH,EAAED,EAAGzR,EAAIkkB,mBAAmBlkB,EAAEuQ,QAAQ,MAAO,MAAQ,MAgHlBmU,CAAG7c,EAAEjP,GAAG,SAAU8Y,EAAGpH,GAC1DzC,EAAEf,IAAIod,mBAAmBxS,EAAEnB,QAAQ,MAAO,MAAOjG,OAiBrD,SAASqZ,GAAG9b,EAAG6J,GACb4N,GAAEzX,GACF6J,EAAIH,GAAE1J,EAAG6J,GACT+Q,GAAE5a,EAAE8G,EAAEqG,EAAGtD,KAAO7J,EAAEjP,EAAI,KAAMiP,EAAEmN,GAAKnN,EAAE8G,EAAEtQ,IAAIqT,GAAG/Y,OAAiB8pB,IAAT5a,EAAIA,EAAE8G,GAAOqG,EAAGtD,YAAc7J,EAAEmN,EAAEtD,GAAI7J,EAAEjP,IAAKiP,EAAE8G,EAAEhW,OAAS,EAAIkP,EAAEjP,GAAK+pB,GAAG9a,KAGhI,SAAS8c,GAAG9c,EAAG6J,GAGb,OAFA4N,GAAEzX,GACF6J,EAAIH,GAAE1J,EAAG6J,GACF+Q,GAAE5a,EAAE8G,EAAEqG,EAAGtD,GAqDlB,SAASyO,GAAGtY,EAAG6J,EAAGpH,GAChBqZ,GAAG9b,EAAG6J,GACN,EAAIpH,EAAE3R,SAAWkP,EAAEjP,EAAI,KAAMiP,EAAE8G,EAAEpQ,IAAIgT,GAAE1J,EAAG6J,GAAIgE,EAAGpL,IAAKzC,EAAEmN,GAAK1K,EAAE3R,QAsBjE,SAAS4Y,GAAE1J,EAAG6J,GAGZ,OAFAA,EAAIzQ,OAAOyQ,GACX7J,EAAEC,IAAM4J,EAAIA,EAAEzH,eACPyH,GAtGT9J,EAAI4b,GAAGxqB,WAEL8N,IAAM,SAAUe,EAAG6J,GACnB4N,GAAEpkB,MACFA,KAAKtC,EAAI,KACTiP,EAAI0J,GAAErW,KAAM2M,GACZ,IAAIyC,EAAIpP,KAAKyT,EAAEtQ,IAAIwJ,GAInB,OAHAyC,GAAKpP,KAAKyT,EAAEpQ,IAAIsJ,EAAGyC,EAAI,IACvBA,EAAE5N,KAAKgV,GACPxW,KAAK8Z,GAAK,EACH9Z,MAeT0M,EAAE1J,QAAU,SAAU2J,EAAG6J,GACvB4N,GAAEpkB,MACFA,KAAKyT,EAAEzQ,SAAQ,SAAUoM,EAAGqH,GAC1BwD,EAAG7K,GAAG,SAAUtK,GACd6H,EAAEvN,KAAKoX,EAAG1R,EAAG2R,EAAGzW,QACfA,QACFA,OAGL0M,EAAE6a,EAAI,WACJnD,GAAEpkB,MAEF,IAAK,IAAI2M,EAAI3M,KAAKyT,EAAEsT,IAAKvQ,EAAIxW,KAAKyT,EAAE8T,IAAKnY,EAAI,GAAIqH,EAAI,EAAGA,EAAID,EAAE/Y,OAAQgZ,IACpE,IAAK,IAAI3R,EAAI6H,EAAE8J,GAAIF,EAAI,EAAGA,EAAIzR,EAAErH,OAAQ8Y,IACtCnH,EAAE5N,KAAKgV,EAAEC,IAIb,OAAOrH,GAGT1C,EAAEqa,EAAI,SAAUpa,GACdyX,GAAEpkB,MACF,IAAIwW,EAAI,GACR,GAAI,iBAAoB7J,EAAG8c,GAAGzpB,KAAM2M,KAAO6J,EAAI8D,EAAG9D,EAAGxW,KAAKyT,EAAEtQ,IAAIkT,GAAErW,KAAM2M,UAAW,CACjFA,EAAI3M,KAAKyT,EAAEsT,IAEX,IAAK,IAAI3X,EAAI,EAAGA,EAAIzC,EAAElP,OAAQ2R,IAC5BoH,EAAI8D,EAAG9D,EAAG7J,EAAEyC,IAGhB,OAAOoH,GAGT9J,EAAErJ,IAAM,SAAUsJ,EAAG6J,GAOnB,OANA4N,GAAEpkB,MACFA,KAAKtC,EAAI,KAET+rB,GAAGzpB,KADH2M,EAAI0J,GAAErW,KAAM2M,MACI3M,KAAK8Z,GAAK9Z,KAAKyT,EAAEtQ,IAAIwJ,GAAGlP,QACxCuC,KAAKyT,EAAEpQ,IAAIsJ,EAAG,CAAC6J,IACfxW,KAAK8Z,GAAK,EACH9Z,MAGT0M,EAAEvJ,IAAM,SAAUwJ,EAAG6J,GACnB,OAAK7J,GAEE,GADPA,EAAI3M,KAAK+mB,EAAEpa,IACElP,OAASsI,OAAO4G,EAAE,IAFhB6J,GAUjB9J,EAAEvN,SAAW,WACX,GAAIa,KAAKtC,EAAG,OAAOsC,KAAKtC,EACxB,IAAKsC,KAAKyT,EAAG,MAAO,GAEpB,IAAK,IAAI9G,EAAI,GAAI6J,EAAIxW,KAAKyT,EAAE8T,IAAKnY,EAAI,EAAGA,EAAIoH,EAAE/Y,OAAQ2R,IAAK,CACzD,IAAIqH,EAAID,EAAEpH,GACNtK,EAAIskB,mBAAmBrjB,OAAO0Q,IAClCA,EAAIzW,KAAK+mB,EAAEtQ,GAEX,IAAK,IAAIF,EAAI,EAAGA,EAAIE,EAAEhZ,OAAQ8Y,IAAK,CACjC,IAAIuD,EAAIhV,EACR,KAAO2R,EAAEF,KAAOuD,GAAK,IAAMsP,mBAAmBrjB,OAAO0Q,EAAEF,MACvD5J,EAAEnL,KAAKsY,IAIX,OAAO9Z,KAAKtC,EAAIiP,EAAEhG,KAAK,MAiBzB,IAAI+iB,GACF,SAAY/c,EAAG6J,GACbxW,KAAK8Z,EAAInN,EACT3M,KAAKyT,EAAI+C,GAMb,SAASmT,GAAGhd,GACV3M,KAAK+Y,EAAIpM,GAAKid,GACd7Q,EAAE8Q,4BAAiFld,EAAI,GAAtDA,EAAIoM,EAAE+Q,YAAYC,iBAAiB,eAAyBtsB,SAAW,MAAQkP,EAAE,GAAGqd,iBAAmB,MAAQrd,EAAE,GAAGqd,iBAAoBrd,KAAOoM,EAAEtF,GAAKsF,EAAEtF,EAAEmT,IAAM7N,EAAEtF,EAAEmT,MAAQ7N,EAAEtF,EAAEmT,KAAKjD,IACtN3jB,KAAK4M,EAAID,EAAI3M,KAAK+Y,EAAI,EACtB/Y,KAAKyT,EAAI,KACT,EAAIzT,KAAK4M,IAAM5M,KAAKyT,EAAI,IAAI9H,KAC5B3L,KAAK8Z,EAAI,KACT9Z,KAAKtC,EAAI,GAGX,IAAIksB,GAAK,GAET,SAAS5V,GAAGrH,GACV,QAAOA,EAAEmN,KAASnN,EAAE8G,GAAI9G,EAAE8G,EAAE0P,MAAQxW,EAAEC,EAGxC,SAAS4Z,GAAG7Z,GACV,OAAOA,EAAEmN,EAAI,EAAInN,EAAE8G,EAAI9G,EAAE8G,EAAE0P,KAAO,EAGpC,SAASiD,GAAGzZ,EAAG6J,GACb,OAAO7J,EAAEmN,EAAInN,EAAEmN,GAAKtD,IAAI7J,EAAE8G,GAAI9G,EAAE8G,EAAEtM,IAAIqP,GAGxC,SAASsQ,GAAGna,EAAG6J,GACb7J,EAAE8G,EAAI9G,EAAE8G,EAAE7H,IAAI4K,GAAK7J,EAAEmN,EAAItD,EAG3B,SAAS0Q,GAAGva,EAAG6J,GACb7J,EAAEmN,GAAKnN,EAAEmN,GAAKtD,EAAI7J,EAAEmN,EAAI,KAAOnN,EAAE8G,GAAK9G,EAAE8G,EAAEtM,IAAIqP,IAAM7J,EAAE8G,EAAEhQ,OAAO+S,GA6BjE,SAASyT,GAAGtd,GACV,IAAIrB,EAAK3J,EAET,GAAI,MAAQgL,EAAEmN,EAAG,OAAOnN,EAAEjP,EAAE6c,OAAO5N,EAAEmN,EAAE2G,GAEvC,GAAI,MAAQ9T,EAAE8G,GAAK,IAAM9G,EAAE8G,EAAE0P,KAAM,CACjC,IAAI3M,EAAI7J,EAAEjP,EAEV,IACE,IAAK,IAAI0M,EAAKsO,EAAS/L,EAAE8G,EAAExI,UAAWX,EAAKF,EAAGG,QAASD,EAAGE,KAAMF,EAAKF,EAAGG,OAAQ,CAC9E,IAAI6E,EAAI9E,EAAGI,MACX8L,EAAIA,EAAE+D,OAAOnL,EAAEqR,IAEjB,MAAOjV,GACPF,EAAM,CACJT,MAAOW,GAET,QACA,IACMlB,IAAOA,EAAGE,OAAS7I,EAAKyI,EAAGU,SAASnJ,EAAGvC,KAAKgL,GAChD,QACA,GAAIkB,EAAK,MAAMA,EAAIT,OAIvB,OAAO2L,EAGT,OAAOgE,EAAG7N,EAAEjP,GAGd,SAASwsB,MAUT,SAASC,KACPnqB,KAAKyT,EAAI,IAAIyW,GAGf,SAASE,GAAGzd,EAAG6J,EAAGpH,GAChB,IAAIqH,EAAIrH,GAAK,GAEb,IACEkY,GAAG3a,GAAG,SAAU7H,EAAGyR,GACjB,IAAIuD,EAAIhV,EACRpG,EAAEoG,KAAOgV,EAAI6G,GAAG7b,IAChB0R,EAAEhV,KAAKiV,EAAIF,EAAI,IAAM6S,mBAAmBtP,OAE1C,MAAOhV,GACP,MAAM0R,EAAEhV,KAAKiV,EAAI,QAAU2S,mBAAmB,YAAatkB,GAoB/D,SAASulB,GAAG1d,EAAG6J,EAAGpH,EAAGqH,EAAG3R,GACtB,IACE0R,EAAE8T,OAAS,KAAM9T,EAAE+T,QAAU,KAAM/T,EAAEgU,QAAU,KAAMhU,EAAEiU,UAAY,KAAM3lB,EAAE2R,GAC3E,MAAOF,KAGX,SAASmU,GAAG/d,GACV3M,KAAK+Y,EAAIpM,EAAEiX,IAAM,KACjB5jB,KAAK4M,EAAID,EAAE6S,KAAM,EAenB,SAASmL,GAAGhe,EAAG6J,GACb8J,GAAElhB,KAAKY,MACPA,KAAKygB,EAAI9T,EACT3M,KAAKqR,EAAImF,EACTxW,KAAK2Y,OAAI,EACT3Y,KAAKkB,WAAa0pB,GAClB5qB,KAAK6qB,OAAS,EACd7qB,KAAK8qB,aAAe9qB,KAAK+qB,aAAe/qB,KAAKgrB,SAAWhrB,KAAKirB,WAAa,GAC1EjrB,KAAKkrB,mBAAqB,KAC1BlrB,KAAK+Z,EAAI,IAAIoR,QACbnrB,KAAK8Z,EAAI,KACT9Z,KAAKsgB,EAAI,MACTtgB,KAAKse,EAAI,GACTte,KAAKyT,GAAI,EACTzT,KAAK8c,EAAI9c,KAAK4M,EAAI5M,KAAK+Y,EAAI,KA1I7B4Q,GAAG7rB,UAAUkqB,OAAS,WACpB,IAAI9d,EAAKvI,EAGT,GADA3B,KAAKtC,EAAIusB,GAAGjqB,MACRA,KAAK8Z,EAAG9Z,KAAK8Z,EAAEkO,SAAUhoB,KAAK8Z,EAAI,UAAU,GAAI9Z,KAAKyT,GAAK,IAAMzT,KAAKyT,EAAE0P,KAAM,CAC/E,IACE,IAAK,IAAI/Y,EAAKsO,EAAS1Y,KAAKyT,EAAExI,UAAWX,EAAKF,EAAGG,QAASD,EAAGE,KAAMF,EAAKF,EAAGG,OAAQ,CACzED,EAAGI,MACTsd,UAEJ,MAAOpd,GACPV,EAAM,CACJW,MAAOD,GAET,QACA,IACMN,IAAOA,EAAGE,OAAS7I,EAAKyI,EAAGU,SAASnJ,EAAGvC,KAAKgL,GAChD,QACA,GAAIF,EAAK,MAAMA,EAAIW,OAIvB7K,KAAKyT,EAAE2X,UAqCXlB,GAAGpsB,UAAU+Q,UAAY,SAAUlC,GACjC,OAAOoM,EAAEnK,KAAKC,UAAUlC,OAAG,IAG7Bud,GAAGpsB,UAAU2kB,MAAQ,SAAU9V,GAC7B,OAAOoM,EAAEnK,KAAK6T,MAAM9V,OAAG,IAgDzB2J,EAAEoU,GAAIhH,IAENgH,GAAG5sB,UAAU2V,EAAI,WACf,OAAO,IAAIkX,GAAG3qB,KAAK+Y,EAAG/Y,KAAK4M,IAG7B8d,GAAG5sB,UAAUJ,EAAI,SAAUiP,GACzB,OAAO,WACL,OAAOA,GAFM,CAIf,IAmBF2J,EAAEqU,GAAIrK,IACN,IAAIsK,GAAK,EA8CT,SAASS,GAAG1e,GACVA,EAAEC,EAAE0e,OAAO1nB,KAAK+I,EAAEwP,GAAGzU,KAAKiF,IAAIyF,MAAMzF,EAAE2M,GAAG5R,KAAKiF,IA4BhD,SAAS4e,GAAG5e,GACVA,EAAEzL,WAAa,EACfyL,EAAEoM,EAAI,KACNpM,EAAEC,EAAI,KACND,EAAEmQ,EAAI,KACN0O,GAAG7e,GAuBL,SAAS6e,GAAG7e,GACVA,EAAEue,oBAAsBve,EAAEue,mBAAmB9rB,KAAKuN,IAvGpDD,EAAIie,GAAG7sB,WAEL2tB,KAAO,SAAU9e,EAAG6J,GACpB,GAAIxW,KAAKkB,YAAc0pB,GAAI,MAAM5qB,KAAKmmB,QAASnc,MAAM,gCACrDhK,KAAKsgB,EAAI3T,EACT3M,KAAKse,EAAI9H,EACTxW,KAAKkB,WAAa,EAClBsqB,GAAGxrB,OAGL0M,EAAEgf,KAAO,SAAU/e,GACjB,GAAI,GAAK3M,KAAKkB,WAAY,MAAMlB,KAAKmmB,QAASnc,MAAM,+BACpDhK,KAAKyT,GAAI,EACT,IAAI+C,EAAI,CACNmV,QAAS3rB,KAAK+Z,EACdjM,OAAQ9N,KAAKsgB,EACbsL,YAAa5rB,KAAK2Y,EAClBkT,WAAO,GAETlf,IAAM6J,EAAEsV,KAAOnf,IACd3M,KAAKygB,GAAK1H,GAAGgT,MAAM,IAAIC,QAAQhsB,KAAKse,EAAG9H,IAAI5S,KAAK5D,KAAK2c,GAAGjV,KAAK1H,MAAOA,KAAKsZ,GAAG5R,KAAK1H,QAGpF0M,EAAEyZ,MAAQ,WACRnmB,KAAKgrB,SAAWhrB,KAAK+qB,aAAe,GACpC/qB,KAAK+Z,EAAI,IAAIoR,QACbnrB,KAAK6qB,OAAS,EACd7qB,KAAK4M,GAAK5M,KAAK4M,EAAEob,OAAO,wBACxB,GAAKhoB,KAAKkB,YAAclB,KAAKyT,GAAK,GAAKzT,KAAKkB,aAAelB,KAAKyT,GAAI,EAAI8X,GAAGvrB,OAC3EA,KAAKkB,WAAa0pB,IAGpBle,EAAEiQ,GAAK,SAAUhQ,GACf,GAAI3M,KAAKyT,IAAMzT,KAAK+Y,EAAIpM,EAAG3M,KAAK8Z,IAAM9Z,KAAK6qB,OAAS7qB,KAAK+Y,EAAE8R,OAAQ7qB,KAAKirB,WAAajrB,KAAK+Y,EAAEkS,WAAYjrB,KAAK8Z,EAAInN,EAAEgf,QAAS3rB,KAAKkB,WAAa,EAAGsqB,GAAGxrB,OAAQA,KAAKyT,IAAMzT,KAAKkB,WAAa,EAAGsqB,GAAGxrB,MAAOA,KAAKyT,IAAK,GAAI,gBAAkBzT,KAAK8qB,aAAcne,EAAEsf,cAAcroB,KAAK5D,KAAKyc,GAAG/U,KAAK1H,MAAOA,KAAKsZ,GAAG5R,KAAK1H,YAAY,QAAI,IAAuB+Y,EAAEmT,gBAAkB,SAAUvf,EAAG,CAGrX,GAFA3M,KAAK4M,EAAID,EAAEmf,KAAKK,YAEZnsB,KAAKqR,EAAG,CACV,GAAIrR,KAAK8qB,aAAc,MAAM9gB,MAAM,uEACnChK,KAAKgrB,SAAW,QACXhrB,KAAKgrB,SAAWhrB,KAAK+qB,aAAe,GAAI/qB,KAAK8c,EAAI,IAAI8K,YAE5DyD,GAAGrrB,WACE2M,EAAEyf,OAAOxoB,KAAK5D,KAAK0c,GAAGhV,KAAK1H,MAAOA,KAAKsZ,GAAG5R,KAAK1H,QAOxD0M,EAAEyP,GAAK,SAAUxP,GACf,GAAI3M,KAAKyT,EAAG,CACV,GAAIzT,KAAKqR,GAAK1E,EAAEjC,MAAO1K,KAAKgrB,SAASxpB,KAAKmL,EAAEjC,YAAY,IAAK1K,KAAKqR,EAAG,CACnE,IAAImF,EAAI7J,EAAEjC,MAAQiC,EAAEjC,MAAQ,IAAI2hB,WAAW,IACvC7V,EAAIxW,KAAK8c,EAAE+K,OAAOrR,EAAG,CACvBsR,QAASnb,EAAEnC,UACTxK,KAAKgrB,SAAWhrB,KAAK+qB,cAAgBvU,GAE3C7J,EAAEnC,KAAO+gB,GAAGvrB,MAAQwrB,GAAGxrB,MACvB,GAAKA,KAAKkB,YAAcmqB,GAAGrrB,QAI/B0M,EAAEgQ,GAAK,SAAU/P,GACf3M,KAAKyT,IAAMzT,KAAKgrB,SAAWhrB,KAAK+qB,aAAepe,EAAG4e,GAAGvrB,QAGvD0M,EAAE+P,GAAK,SAAU9P,GACf3M,KAAKyT,IAAMzT,KAAKgrB,SAAWre,EAAG4e,GAAGvrB,QAGnC0M,EAAE4M,GAAK,WACLtZ,KAAKyT,GAAK8X,GAAGvrB,OAWf0M,EAAE4f,iBAAmB,SAAU3f,EAAG6J,GAChCxW,KAAK+Z,EAAEwS,OAAO5f,EAAG6J,IAGnB9J,EAAEma,kBAAoB,SAAUla,GAC9B,OAAO3M,KAAK8Z,GAAI9Z,KAAK8Z,EAAE3W,IAAIwJ,EAAEoC,gBAAuB,IAGtDrC,EAAE8f,sBAAwB,WACxB,IAAKxsB,KAAK8Z,EAAG,MAAO,GAIpB,IAHA,IAAInN,EAAI,GACJ6J,EAAIxW,KAAK8Z,EAAEzP,UAEN+E,EAAIoH,EAAEjM,QAAS6E,EAAE5E,MACxB4E,EAAIA,EAAE1E,MAAOiC,EAAEnL,KAAK4N,EAAE,GAAK,KAAOA,EAAE,IAAKA,EAAIoH,EAAEjM,OAGjD,OAAOoC,EAAEhG,KAAK,SAOhB5I,OAAOmF,eAAeynB,GAAG7sB,UAAW,kBAAmB,CACrDqF,IAAK,WACH,MAAO,YAAcnD,KAAK2Y,GAE5BtV,IAAK,SAAasJ,GAChB3M,KAAK2Y,EAAIhM,EAAI,UAAY,iBAG7B,IAAI8f,GAAK1T,EAAEnK,KAAK6T,MAEhB,SAAS0B,GAAExX,GACT2T,GAAElhB,KAAKY,MACPA,KAAK2rB,QAAU,IAAIjK,GACnB1hB,KAAKqR,EAAI1E,GAAK,KACd3M,KAAK8Z,GAAI,EACT9Z,KAAKsgB,EAAItgB,KAAKyT,EAAI,KAClBzT,KAAK2iB,EAAI,GACT3iB,KAAK2Y,EAAI,EACT3Y,KAAK4M,EAAI,GACT5M,KAAK+Y,EAAI/Y,KAAKwiB,EAAIxiB,KAAK+Z,EAAI/Z,KAAKygB,GAAI,EACpCzgB,KAAKse,EAAI,EACTte,KAAK8c,EAAI,KACT9c,KAAKkjB,EAAIwJ,GACT1sB,KAAKojB,EAAIpjB,KAAK8jB,GAAI,EAGpBxN,EAAE6N,GAAG7D,IACL,IAAIoM,GAAK,GACLC,GAAK,YACLC,GAAK,CAAC,OAAQ,OA+ClB,SAASC,GAAGlgB,GACV,MAAO,gBAAkBA,EAAEoC,cAO7B,SAAS+d,GAAGngB,EAAG6J,GACb7J,EAAEmN,GAAI,EACNnN,EAAE8G,IAAM9G,EAAEoM,GAAI,EAAIpM,EAAE8G,EAAE0S,QAASxZ,EAAEoM,GAAI,GACrCpM,EAAEC,EAAI4J,EACN7J,EAAEgM,EAAI,EACNoU,GAAGpgB,GACHqgB,GAAGrgB,GAGL,SAASogB,GAAGpgB,GACVA,EAAE8T,IAAM9T,EAAE8T,GAAI,EAAIA,GAAE9T,EAAG,YAAa8T,GAAE9T,EAAG,UAoB3C,SAASsgB,GAAGtgB,GACV,GAAIA,EAAEmN,QAAK,IAAsBhB,KAAUnM,EAAE2T,EAAE,IAAM,GAAKN,GAAErT,IAAM,GAAKA,EAAEsM,MAAO,GAAItM,EAAEoN,GAAK,GAAKiG,GAAErT,GAAIiV,GAAGjV,EAAE2P,GAAI,EAAG3P,QAAQ,GAAI8T,GAAE9T,EAAG,oBAAqB,GAAKqT,GAAErT,GAAI,CACjKA,EAAEmN,GAAI,EAEN,IACE,IAiBI1K,EAjBAlQ,EAAIyN,EAAEsM,KAEVtM,EAAG,OAAQzN,GACT,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,KACH,IAAIsX,GAAI,EACR,MAAM7J,EAER,QACE6J,GAAI,EAKR,KAAMpH,EAAIoH,GAAI,CACZ,IAAIC,EAEJ,GAAIA,EAAI,IAAMvX,EAAG,CACf,IAAI4F,EAAIiB,OAAO4G,EAAEgW,GAAGpc,MAAM2hB,IAAI,IAAM,KAEpC,IAAKpjB,GAAKiU,EAAE3b,MAAQ2b,EAAE3b,KAAK8vB,SAAU,CACnC,IAAI3W,EAAIwC,EAAE3b,KAAK8vB,SAASC,SACxBroB,EAAIyR,EAAEuP,OAAO,EAAGvP,EAAE9Y,OAAS,GAG7BgZ,GAAKkW,GAAGptB,KAAKuF,EAAIA,EAAEiK,cAAgB,IAGrCK,EAAIqH,EAGN,GAAIrH,EAAGqR,GAAE9T,EAAG,YAAa8T,GAAE9T,EAAG,eAAgB,CAC5CA,EAAEgM,EAAI,EAEN,IACE,IAAImB,EAAI,EAAIkG,GAAErT,GAAKA,EAAE8G,EAAEwX,WAAa,GACpC,MAAO5Z,GACPyI,EAAI,GAGNnN,EAAEC,EAAIkN,EAAI,KAAOnN,EAAEsM,KAAO,IAC1B8T,GAAGpgB,IAEL,QACAqgB,GAAGrgB,KAKT,SAASqgB,GAAGrgB,EAAG6J,GACb,GAAI7J,EAAE8G,EAAG,CACP2Z,GAAGzgB,GACH,IAAIyC,EAAIzC,EAAE8G,EACNgD,EAAI9J,EAAE2T,EAAE,GAAKtH,EAAK,KACtBrM,EAAE8G,EAAI,KACN9G,EAAE2T,EAAI,KACN9J,GAAKiK,GAAE9T,EAAG,SAEV,IACEyC,EAAE8b,mBAAqBzU,EACvB,MAAO3R,MAIb,SAASsoB,GAAGzgB,GACVA,EAAE8G,GAAK9G,EAAEyW,IAAMzW,EAAE8G,EAAEgX,UAAY,MAC/B9d,EAAEmQ,IAAM/D,EAAE4I,aAAahV,EAAEmQ,GAAInQ,EAAEmQ,EAAI,MAGrC,SAASkD,GAAErT,GACT,OAAOA,EAAE8G,EAAI9G,EAAE8G,EAAEvS,WAAa,EA2BhC,SAASymB,GAAGhb,GACV,IACE,IAAKA,EAAE8G,EAAG,OAAO,KACjB,GAAI,aAAc9G,EAAE8G,EAAG,OAAO9G,EAAE8G,EAAEuX,SAElC,OAAQre,EAAEuW,GACR,KAAKwJ,GACL,IAAK,OACH,OAAO/f,EAAE8G,EAAEsX,aAEb,IAAK,cACH,GAAI,2BAA4Bpe,EAAE8G,EAAG,OAAO9G,EAAE8G,EAAE4Z,uBAGpD,OAAO,KACP,MAAO7W,GACP,OAAO,MAuBX,SAAS8W,GAAG3gB,EAAG6J,EAAGpH,GAChBzC,EAAG,CACD,IAAK8J,KAAKrH,EAAG,CACX,IAAIqH,GAAI,EACR,MAAM9J,EAGR8J,GAAI,EAGNA,IAAMrH,EArBR,SAAYzC,GACV,IAAI6J,EAAI,GAOR,OANAyE,EAAGtO,GAAG,SAAUyC,EAAGqH,GACjBD,GAAKC,EACLD,GAAK,IACLA,GAAKpH,EACLoH,GAAK,UAEAA,EAaG+W,CAAGne,GAAI,iBAAoBzC,EAAI,MAAQyC,GAAKga,mBAAmBrjB,OAAOqJ,IAAM2X,GAAEpa,EAAG6J,EAAGpH,IAGhG,SAASoe,GAAG7gB,EAAG6J,EAAGpH,GAChB,OAAOA,GAAKA,EAAEqe,uBAAwBre,EAAEqe,sBAAsB9gB,IAAU6J,EAG1E,SAASkX,GAAG/gB,GACV3M,KAAKmb,GAAK,EACVnb,KAAK+Y,EAAI,GACT/Y,KAAK8Z,EAAI,IAAIyI,GACbviB,KAAKga,GAAKha,KAAKgnB,GAAKhnB,KAAKwiB,EAAIxiB,KAAKqW,EAAIrW,KAAKyT,EAAIzT,KAAKya,GAAKza,KAAKygB,EAAIzgB,KAAKgZ,GAAKhZ,KAAKvB,EAAIuB,KAAKugB,EAAIvgB,KAAKuM,EAAI,KACvGvM,KAAK4e,GAAK5e,KAAKokB,EAAI,EACnBpkB,KAAKue,GAAKiP,GAAG,YAAY,EAAI7gB,GAC7B3M,KAAKuf,EAAIvf,KAAK+Z,EAAI/Z,KAAKqR,EAAIrR,KAAK2Y,EAAI3Y,KAAK4M,EAAI,KAC7C5M,KAAKmkB,GAAI,EACTnkB,KAAKwgB,EAAIxgB,KAAK2a,GAAK3a,KAAKwkB,GAAK,EAC7BxkB,KAAKskB,EAAItkB,KAAK8c,EAAI9c,KAAKsgB,EAAI,EAC3BtgB,KAAKgc,GAAKwR,GAAG,mBAAoB,IAAK7gB,GACtC3M,KAAK6e,GAAK2O,GAAG,mBAAoB,IAAK7gB,GACtC3M,KAAKwe,GAAKgP,GAAG,2BAA4B,EAAG7gB,GAC5C3M,KAAKwa,GAAKgT,GAAG,iCAAkC,IAAK7gB,GACpD3M,KAAKsa,GAAK3N,GAAKA,EAAEghB,qBAAkB,EACnC3tB,KAAKslB,GAAK3Y,GAAKA,EAAE+W,KAAM,EACvB1jB,KAAKojB,OAAI,EACTpjB,KAAK2iB,EAAIhW,GAAKA,EAAEihB,yBAA0B,EAC1C5tB,KAAKkjB,EAAI,GACTljB,KAAKtC,EAAI,IAAIisB,GAAGhd,GAAKA,EAAEkhB,wBACvB7tB,KAAKqb,GAAK,IAAI8O,GACdnqB,KAAK2Z,GAAKhN,GAAKA,EAAEmhB,gBAAiB,EAClC9tB,KAAKqc,GAAK1P,GAAKA,EAAE0W,KAAM,EACvB1W,GAAKA,EAAEyO,IAAMpb,KAAK8Z,EAAEsB,KACpBzO,GAAKA,EAAEohB,mBAAqB/tB,KAAKmkB,GAAI,GACrCnkB,KAAKukB,GAAKvkB,KAAK2Z,IAAM3Z,KAAKmkB,GAAKxX,GAAKA,EAAEqhB,uBAAwB,EAC9DhuB,KAAKymB,QAAK,EACVzmB,KAAKggB,EAAI,EACThgB,KAAK8jB,GAAI,EACT9jB,KAAKse,EAAI,KACTte,KAAKme,IAAMxR,IAAK,IAAOA,EAAE8W,GAO3B,SAAS4D,GAAG1a,GAGV,GAFAshB,GAAGthB,GAEC,GAAKA,EAAEwY,EAAG,CACZ,IAAI3O,EAAI7J,EAAEyX,IACNhV,EAAImQ,GAAE5S,EAAE6V,GACZuE,GAAE3X,EAAG,MAAOzC,EAAEuW,GACd6D,GAAE3X,EAAG,MAAOoH,GACZuQ,GAAE3X,EAAG,OAAQ,aACb8e,GAAGvhB,EAAGyC,IACNoH,EAAI,IAAI0D,GAAEvN,EAAGA,EAAEmN,EAAGtD,OAAG,IACnB4M,EAAI,EACN5M,EAAEuD,EAAI+K,GAAGvF,GAAEnQ,IACXA,GAAI,EACJ2J,EAAExY,WAAawY,EAAExY,UAAU4tB,aAAe/e,EAAI2J,EAAExY,UAAU4tB,WAAW3X,EAAEuD,EAAE5a,WAAY,MACpFiQ,GAAK2J,EAAEqV,SAAU,IAAIA,OAAQ3P,IAAMjI,EAAEuD,EAAG3K,GAAI,GAC7CA,IAAMoH,EAAE/C,EAAIyR,GAAG1O,EAAEuC,EAAG,MAAOvC,EAAE/C,EAAEyF,GAAG1C,EAAEuD,IACpCvD,EAAEgM,EAAI5U,KAAKD,MACXqX,GAAGxO,GAGL6X,GAAG1hB,GASL,SAAS2Z,GAAG3Z,GACVA,EAAE8G,IAAMiS,GAAG/Y,GAAIA,EAAE8G,EAAEuU,SAAUrb,EAAE8G,EAAI,MAGrC,SAASwa,GAAGthB,GACV2Z,GAAG3Z,GACHA,EAAE0E,IAAM0H,EAAE4I,aAAahV,EAAE0E,GAAI1E,EAAE0E,EAAI,MACnCgV,GAAG1Z,GACHA,EAAEjP,EAAEsqB,SACJrb,EAAEgM,IAAM,iBAAoBhM,EAAEgM,GAAKI,EAAE4I,aAAahV,EAAEgM,GAAIhM,EAAEgM,EAAI,MAGhE,SAAS2V,GAAG3hB,EAAG6J,GACb7J,EAAEoM,EAAEvX,KAAK,IAAIkoB,GAAG/c,EAAEiS,KAAMpI,IACxB,GAAK7J,EAAEwY,GAAKiC,GAAGza,GAGjB,SAASya,GAAGza,GACVqH,GAAGrH,EAAEjP,IAAMiP,EAAEgM,IAAMhM,EAAEgM,GAAI,EAAIyI,GAAGzU,EAAE4O,GAAI5O,GAAIA,EAAE2T,EAAI,GAmElD,SAASiO,GAAG5hB,EAAG6J,GACb,IAAIpH,EACAA,EAAJoH,EAAQA,EAAEmC,EAAQhM,EAAEyX,IACpB,IAAI3N,EAAI8I,GAAE5S,EAAE6V,GACZuE,GAAEtQ,EAAG,MAAO9J,EAAEuW,GACd6D,GAAEtQ,EAAG,MAAOrH,GACZ2X,GAAEtQ,EAAG,MAAO9J,EAAE6X,GACd0J,GAAGvhB,EAAG8J,GACN9J,EAAElO,GAAKkO,EAAEJ,GAAK+gB,GAAG7W,EAAG9J,EAAElO,EAAGkO,EAAEJ,GAC3B6C,EAAI,IAAI8K,GAAEvN,EAAGA,EAAEmN,EAAG1K,EAAGzC,EAAE2T,EAAI,GAC3B,OAAS3T,EAAElO,IAAM2Q,EAAEuT,EAAIhW,EAAEJ,GACzBiK,IAAM7J,EAAEoM,EAAIvC,EAAEiK,EAAElG,OAAO5N,EAAEoM,IACzBvC,EAAIgY,GAAG7hB,EAAGyC,EAAG,KACbA,EAAE7N,WAAW4X,KAAKsV,MAAM,GAAK9hB,EAAE6N,IAAMrB,KAAKsV,MAAM,GAAK9hB,EAAE6N,GAAKrB,KAAKC,WACjE0N,GAAGna,EAAEjP,EAAG0R,GACRyV,GAAGzV,EAAGqH,EAAGD,GAGX,SAAS0X,GAAGvhB,EAAG6J,GACb7J,EAAEC,GAAK0a,GAAG,IAAI,SAAUlY,EAAGqH,GACzBsQ,GAAEvQ,EAAGC,EAAGrH,MAIZ,SAASof,GAAG7hB,EAAG6J,EAAGpH,GAChBA,EAAI+J,KAAKuV,IAAI/hB,EAAEoM,EAAEtb,OAAQ2R,GACzB,IAAIqH,EAAI9J,EAAEC,EAAI6M,EAAE9M,EAAEC,EAAEmP,GAAIpP,EAAEC,EAAGD,GAAK,KAElCA,EAIE,IAHA,IAAI7H,EAAI6H,EAAEoM,EACNxC,GAAK,IAEA,CACP,IAAIuD,EAAI,CAAC,SAAW1K,IACnB,GAAKmH,EAAI,EAAInH,GAAKmH,EAAIzR,EAAE,GAAGgV,EAAGA,EAAEtY,KAAK,OAAS+U,IAAMA,EAAI,EAAIuD,EAAEtY,KAAK,OAAS+U,GAG7E,IAFA,IAAIrX,GAAI,EAECmS,EAAI,EAAGA,EAAIjC,EAAGiC,IAAK,CAC1B,IAAIsH,EAAI7T,EAAEuM,GAAGyI,EACTrN,EAAI3H,EAAEuM,GAAGoC,EAEb,GAAI,GADJkF,GAAKpC,GACMA,EAAI4C,KAAKoD,IAAI,EAAGzX,EAAEuM,GAAGyI,EAAI,KAAM5a,GAAI,OAAQ,IACpDkrB,GAAG3d,EAAGqN,EAAG,MAAQnB,EAAI,KACrB,MAAOwM,GACP1O,GAAKA,EAAEhK,IAIX,GAAIvN,EAAG,CACLuX,EAAIqD,EAAEnT,KAAK,KACX,MAAMgG,GAOZ,OAFAA,EAAIA,EAAEoM,EAAEgG,OAAO,EAAG3P,GAClBoH,EAAEiK,EAAI9T,EACC8J,EAGT,SAAS0Q,GAAGxa,GACVA,EAAE8G,GAAK9G,EAAE0E,IAAM1E,EAAE2X,EAAI,EAAGlD,GAAGzU,EAAEyP,GAAIzP,GAAIA,EAAEmQ,EAAI,GAG7C,SAASyJ,GAAG5Z,GACV,QAAIA,EAAE8G,GAAK9G,EAAE0E,GAAK,GAAK1E,EAAEmQ,KACzBnQ,EAAE2X,IACF3X,EAAE0E,EAAI+R,GAAE3J,EAAE9M,EAAEyP,GAAIzP,GAAIgiB,GAAGhiB,EAAGA,EAAEmQ,IAC5BnQ,EAAEmQ,KACK,GAkBT,SAAS4I,GAAG/Y,GACV,MAAQA,EAAE2R,IAAMvF,EAAE4I,aAAahV,EAAE2R,GAAI3R,EAAE2R,EAAI,MAG7C,SAASsQ,GAAGjiB,GACVA,EAAE8G,EAAI,IAAIyG,GAAEvN,EAAGA,EAAEmN,EAAG,MAAOnN,EAAE2X,GAC7B,OAAS3X,EAAElO,IAAMkO,EAAE8G,EAAEkP,EAAIhW,EAAEJ,GAC3BI,EAAE8G,EAAEuM,EAAI,EACR,IAAIxJ,EAAI+I,GAAE5S,EAAEqa,IACZD,GAAEvQ,EAAG,MAAO,OACZuQ,GAAEvQ,EAAG,MAAO7J,EAAEuW,GACd6D,GAAEvQ,EAAG,KAAM7J,EAAE4S,EAAI,IAAM,KACvBwH,GAAEvQ,EAAG,MAAO7J,EAAE6X,GACd0J,GAAGvhB,EAAG6J,GACNuQ,GAAEvQ,EAAG,OAAQ,WACb7J,EAAElO,GAAKkO,EAAEJ,GAAK+gB,GAAG9W,EAAG7J,EAAElO,EAAGkO,EAAEJ,GAC3BI,EAAEyW,GAAKzW,EAAE8G,EAAElS,WAAWoL,EAAEyW,GACxB,IAAIhU,EAAIzC,EAAE8G,EACV9G,EAAIA,EAAEqN,GACN5K,EAAEgU,EAAI,EACNhU,EAAE2K,EAAI+K,GAAGvF,GAAE/I,IACXpH,EAAE7C,EAAI,KACN6C,EAAEoV,GAAI,EACNO,GAAG3V,EAAGzC,GAOR,SAAS0Z,GAAG1Z,GACV,MAAQA,EAAEoN,IAAMhB,EAAE4I,aAAahV,EAAEoN,GAAIpN,EAAEoN,EAAI,MAG7C,SAASmM,GAAGvZ,EAAG6J,GACb,IAAIpH,EAAI,KAER,GAAIzC,EAAE8G,GAAK+C,EAAG,CACZ6P,GAAG1Z,GACH+Y,GAAG/Y,GACHA,EAAE8G,EAAI,KACN,IAAIgD,EAAI,MACH,KAAI2P,GAAGzZ,EAAEjP,EAAG8Y,GAAoC,OAAhCpH,EAAIoH,EAAEiK,EAAGyG,GAAGva,EAAEjP,EAAG8Y,GAAIC,EAAI,EAGhD,GADA9J,EAAE6T,EAAIhK,EAAE+I,EACJ,GAAK5S,EAAEwY,EAAG,GAAI3O,EAAE9Y,EAClB,GAAI,GAAK+Y,EAAG,CACVrH,EAAIoH,EAAEjK,EAAIiK,EAAEjK,EAAE9O,OAAS,EACvB+Y,EAAI5I,KAAKD,MAAQ6I,EAAEgM,EACnB,IAAI1d,EAAI6H,EAAE2T,EAEVG,GADAhK,EAAIoM,KACC,IAAIhJ,GAAGpD,EAAGrH,EAAGoH,EAAG1R,IACrBsiB,GAAGza,QACEwa,GAAGxa,QACL,GAAa,IAAT7H,EAAI0R,EAAE/X,IAAa,GAAKqG,GAAK,EAAI6H,EAAE6T,KAAO,GAAK/J,GA7M5D,SAAY9J,EAAG6J,GACb,QAAIgQ,GAAG7Z,EAAEjP,IAAMiP,EAAEjP,EAAEkP,GAAKD,EAAEgM,EAAI,EAAI,KAC9BhM,EAAEgM,GAAUhM,EAAEoM,EAAIvC,EAAEiK,EAAElG,OAAO5N,EAAEoM,GAAI,GACnC,GAAKpM,EAAEwY,GAAK,GAAKxY,EAAEwY,GAAKxY,EAAE2T,IAAM3T,EAAE4R,GAAK,EAAI5R,EAAE6R,MACjD7R,EAAEgM,EAAIyK,GAAE3J,EAAE9M,EAAE4O,GAAI5O,EAAG6J,GAAImY,GAAGhiB,EAAGA,EAAE2T,IAC/B3T,EAAE2T,IACK,KAuMwDuO,CAAGliB,EAAG6J,IAAM,GAAKC,GAAK8P,GAAG5Z,IAAK,OAAQyC,GAAK,EAAIA,EAAE3R,SAAW+Y,EAAI7J,EAAEjP,EAAG8Y,EAAE9Y,EAAI8Y,EAAE9Y,EAAE6c,OAAOnL,IAAKtK,GACxJ,KAAK,EACH4hB,GAAE/Z,EAAG,GACL,MAEF,KAAK,EACH+Z,GAAE/Z,EAAG,IACL,MAEF,KAAK,EACH+Z,GAAE/Z,EAAG,GACL,MAEF,QACE+Z,GAAE/Z,EAAG,IAIX,SAASgiB,GAAGhiB,EAAG6J,GACb,IAAIpH,EAAIzC,EAAEqP,GAAK7C,KAAK0P,MAAM1P,KAAKC,SAAWzM,EAAEkS,IAE5C,OADAlS,EAAEC,IAAMwC,GAAK,GACNA,EAAIoH,EAGb,SAASkQ,GAAE/Z,EAAG6J,GAGZ,GAFA7J,EAAEmN,EAAE3L,KAAK,cAAgBqI,GAErB,GAAKA,EAAG,CACV,IAAIpH,EAAI,KACRzC,EAAEC,IAAMwC,EAAI,MACZ,IAAIqH,EAAIgD,EAAE9M,EAAE8S,GAAI9S,GAChByC,IAAMA,EAAI,IAAIoV,GAAE,wCAAyCzL,EAAEmU,UAAY,QAAUnU,EAAEmU,SAASC,UAAYhF,GAAG/Y,EAAG,SAAU0V,GAAG1V,IA9vB/H,SAAYzC,EAAG6J,GACb,IAAIpH,EAAI,IAAImT,GAEZ,GAAIxJ,EAAEqV,MAAO,CACX,IAAIU,EAAM,IAAIV,MACdU,EAAIxE,OAAS3Q,EAAG0Q,GAAIjb,EAAG0f,EAAK,yBAAyB,EAAItY,GACzDsY,EAAIvE,QAAU5Q,EAAG0Q,GAAIjb,EAAG0f,EAAK,wBAAwB,EAAItY,GACzDsY,EAAItE,QAAU7Q,EAAG0Q,GAAIjb,EAAG0f,EAAK,wBAAwB,EAAItY,GACzDsY,EAAIrE,UAAY9Q,EAAG0Q,GAAIjb,EAAG0f,EAAK,0BAA0B,EAAItY,GAC7DuC,EAAExX,YAAW,WACPutB,EAAIrE,WAAWqE,EAAIrE,cACtB,KACHqE,EAAIrQ,IAAM9R,OACL6J,GAAE,GAkvBPuY,CAAG3f,EAAEjQ,WAAYsX,QACZyM,GAAE,GAETvW,EAAEwY,EAAI,EACNxY,EAAEC,GAAKD,EAAEC,EAAEmO,GAAGvE,GACd6X,GAAG1hB,GACHshB,GAAGthB,GAOL,SAAS0hB,GAAG1hB,GACVA,EAAEwY,EAAI,EACNxY,EAAE6T,GAAK,EAEH7T,EAAEC,IACA,GAAKqd,GAAGtd,EAAEjP,GAAGD,QAAU,GAAKkP,EAAEoM,EAAEtb,SAAQkP,EAAEjP,EAAEA,EAAED,OAAS,EAAG+c,EAAG7N,EAAEoM,GAAIpM,EAAEoM,EAAEtb,OAAS,GACpFkP,EAAEC,EAAEwH,MAIR,SAAS6S,GAAGta,EAAG6J,EAAGpH,GAChB,IAAIqH,EAljCN,SAAY9J,GACV,OAAOA,aAAa6X,GAAIjF,GAAE5S,GAAK,IAAI6X,GAAE7X,OAAG,GAijChCqiB,CAAG5f,GACX,GAAI,IAAMqH,EAAE/Y,EAAG8Y,GAAK4R,GAAG3R,EAAGD,EAAI,IAAMC,EAAE/Y,GAAI2qB,GAAG5R,EAAGA,EAAEkC,OAAQ,CACxD,IAAI7T,EAAIiU,EAAEmU,SACVzW,EAjjCJ,SAAY9J,EAAG6J,EAAGpH,EAAGqH,GACnB,IAAI3R,EAAI,IAAI0f,GAAE,UAAM,GAKpB,OAJA7X,GAAKwb,GAAGrjB,EAAG6H,GACX6J,GAAK4R,GAAGtjB,EAAG0R,GACXpH,GAAKiZ,GAAGvjB,EAAGsK,GACXqH,IAAM3R,EAAEiU,EAAItC,GACL3R,EA2iCDmqB,CAAGnqB,EAAEqoB,SAAU3W,EAAIA,EAAI,IAAM1R,EAAEoqB,SAAWpqB,EAAEoqB,UAAWpqB,EAAEqqB,KAAM/f,GAUrE,OARAzC,EAAEqM,IAAMiC,EAAGtO,EAAEqM,IAAI,SAAUlU,EAAGyR,GAC5BwQ,GAAEtQ,EAAGF,EAAGzR,MAEV0R,EAAI7J,EAAE8T,EACNrR,EAAIzC,EAAE8N,GACNjE,GAAKpH,GAAK2X,GAAEtQ,EAAGD,EAAGpH,GAClB2X,GAAEtQ,EAAG,MAAO9J,EAAEyN,IACd8T,GAAGvhB,EAAG8J,GACCA,EAGT,SAASyO,GAAGvY,EAAG6J,EAAGpH,GAChB,GAAIoH,IAAM7J,EAAEgW,EAAG,MAAM3Y,MAAM,uDAK3B,OAJAwM,EAAIpH,GAAKzC,EAAE2Y,KAAO3Y,EAAE2N,GAAK,IAAI6J,GAAE,IAAIuG,GAAG,CACpClL,IAAI,KACA,IAAI2E,GAAExX,EAAE2N,KACZwJ,EAAInX,EAAEgW,EACDnM,EAGT,SAAS4Y,MAcT,SAASC,KACP,GAAI7T,KAAO,IAAMqG,OAAOnF,IAAM,MAAM1S,MAAM,gDAO5C,SAASsa,GAAE3X,EAAG6J,GACZ8J,GAAElhB,KAAKY,MACPA,KAAKyT,EAAI,IAAIia,GAAGlX,GAChBxW,KAAK+Y,EAAIpM,EACT3M,KAAK8Z,EAAItD,GAAKA,EAAE8Y,kBAAoB,KACpC3iB,EAAI6J,GAAKA,EAAE+Y,gBAAkB,KAC7B/Y,GAAKA,EAAEgZ,+BAAiC7iB,EAAIA,EAAE,qBAAuB,aAAeA,EAAI,CACtF,oBAAqB,eAEvB3M,KAAKyT,EAAElH,EAAII,EACXA,EAAI6J,GAAKA,EAAEiZ,oBAAsB,KACjCjZ,GAAKA,EAAEkZ,qBAAuB/iB,EAAIA,EAAE,6BAA+B6J,EAAEkZ,mBAAqB/iB,EAAI,CAC5F,4BAA6B6J,EAAEkZ,qBAEjClZ,GAAKA,EAAE0E,KAAOvO,EAAIA,EAAE,+BAAiC6J,EAAE0E,GAAKvO,EAAI,CAC9D,8BAA+B6J,EAAE0E,KAEnClb,KAAKyT,EAAE8M,EAAI5T,GACVA,EAAI6J,GAAKA,EAAEmZ,6BAA+BlV,EAAG9N,KAAO3M,KAAKyT,EAAEhV,EAAIkO,GAChE3M,KAAK8c,EAAItG,GAAKA,EAAEoX,yBAA0B,EAC1C5tB,KAAK+Z,EAAIvD,GAAKA,EAAEoZ,cAAe,GAC9BpZ,EAAIA,GAAKA,EAAEqZ,sBAAwBpV,EAAGjE,KAAOxW,KAAKyT,EAAEgN,EAAIjK,EAAe,QAAZ7J,EAAI3M,KAAK8Z,IAAiBtD,KAAK7J,IAAkB6J,KAAZ7J,EAAI3M,KAAK8Z,WAAoBnN,EAAE6J,KAChIxW,KAAK4M,EAAI,IAAIgN,GAAE5Z,MAwCjB,SAAS8vB,GAAGnjB,GACVqX,GAAG5kB,KAAKY,MACR,IAAIwW,EAAI7J,EAAEojB,OAEV,GAAIvZ,EAAG,CACL7J,EAAG,CACD,IAAK,IAAIyC,KAAKoH,EAAG,CACf7J,EAAIyC,EACJ,MAAMzC,EAGRA,OAAI,GAGF3M,KAAKtC,EAAIiP,KAAGA,EAAI3M,KAAKtC,EAAG8Y,EAAI,OAASA,GAAK7J,KAAK6J,EAAIA,EAAE7J,QAAK,GAC9D3M,KAAKgV,KAAOwB,OACPxW,KAAKgV,KAAOrI,EAKrB,SAASqjB,KACP/L,GAAG7kB,KAAKY,MACRA,KAAK6qB,OAAS,EAKhB,SAASjR,GAAEjN,GACT3M,KAAKyT,EAAI9G,GA/tBXD,EAAIyX,GAAErmB,WAEJob,GAAK,SAAUvM,EAAG6J,EAAGpH,EAAGqH,GACxB,GAAIzW,KAAKyT,EAAG,MAAMzJ,MAAM,0DAA4DhK,KAAK2iB,EAAI,YAAchW,GAC3G6J,EAAIA,EAAIA,EAAEyZ,cAAgB,MAC1BjwB,KAAK2iB,EAAIhW,EACT3M,KAAK4M,EAAI,GACT5M,KAAK2Y,EAAI,EACT3Y,KAAKygB,GAAI,EACTzgB,KAAK8Z,GAAI,EACT9Z,KAAKyT,EAAIzT,KAAKqR,EAAIrR,KAAKqR,EAAEoC,IAAMoQ,GAAGpQ,IAClCzT,KAAKsgB,EAAItgB,KAAKqR,EAAIsS,GAAG3jB,KAAKqR,GAAKsS,GAAGE,IAClC7jB,KAAKyT,EAAEyX,mBAAqBzR,EAAEzZ,KAAKsc,GAAItc,MAEvC,IACEA,KAAKwiB,GAAI,EAAIxiB,KAAKyT,EAAEgY,KAAKjV,EAAGzQ,OAAO4G,IAAI,GAAK3M,KAAKwiB,GAAI,EACrD,MAAOjM,GAEP,YADAuW,GAAG9sB,KAAMuW,GAIX5J,EAAIyC,GAAK,GACT,IAAItK,EAAI,IAAI4c,GAAE1hB,KAAK2rB,SACnBlV,GAAK6Q,GAAG7Q,GAAG,SAAUF,EAAGuD,GACtBhV,EAAEzB,IAAIyW,EAAGvD,MAEXE,EA/7DF,SAAY9J,GACVA,EAAG,CAKD,IAJA,IAAI6J,EAAIqW,GACJzd,EAAIzC,EAAElP,OACNgZ,EAAI,iBAAoB9J,EAAIA,EAAE0N,MAAM,IAAM1N,EAErC7H,EAAI,EAAGA,EAAIsK,EAAGtK,IACrB,GAAIA,KAAK2R,GAAKD,EAAEpX,UAAK,EAAQqX,EAAE3R,GAAIA,EAAG6H,GAAI,CACxC6J,EAAI1R,EACJ,MAAM6H,EAIV6J,GAAK,EAGP,OAAO,EAAIA,EAAI,KAAO,iBAAoB7J,EAAIA,EAAE+E,OAAO8E,GAAK7J,EAAE6J,GA+6D1DwQ,CAAGliB,EAAEyiB,KACTnY,EAAI2J,EAAEmX,UAAYvjB,aAAaoM,EAAEmX,WAC/B,GAAK9V,EAAGwS,GAAIpW,KAAOC,GAAKrH,GAAKtK,EAAEzB,IAAI,eAAgB,mDACrDyB,EAAE9B,SAAQ,SAAUuT,EAAGuD,GACrB9Z,KAAKyT,EAAE6Y,iBAAiBxS,EAAGvD,KAC1BvW,MACHA,KAAKkjB,IAAMljB,KAAKyT,EAAEqX,aAAe9qB,KAAKkjB,GACtC,oBAAqBljB,KAAKyT,GAAKzT,KAAKyT,EAAE0c,kBAAoBnwB,KAAK8jB,IAAM9jB,KAAKyT,EAAE0c,gBAAkBnwB,KAAK8jB,GAEnG,IACEsJ,GAAGptB,MAAO,EAAIA,KAAKse,KAAOte,KAAKojB,EAMnC,SAAYzW,GACV,OAAO6O,GAAKa,KAAQ,iBAAoB1P,EAAEyjB,cAAW,IAAWzjB,EAAE8d,UAP7B4F,CAAGrwB,KAAKyT,KAAOzT,KAAKyT,EAAE2c,QAAUpwB,KAAKse,EAAGte,KAAKyT,EAAEgX,UAAYhR,EAAEzZ,KAAK6sB,GAAI7sB,OAASA,KAAK8c,EAAI8E,GAAG5hB,KAAK6sB,GAAI7sB,KAAKse,EAAGte,OAAQA,KAAK+Z,GAAI,EAAI/Z,KAAKyT,EAAEiY,KAAK/e,GAAI3M,KAAK+Z,GAAI,EAC7L,MAAOxD,GACPuW,GAAG9sB,KAAMuW,KAYb7J,EAAEmgB,GAAK,gBACL,IAAsB/T,GAAQ9Y,KAAKyT,IAAMzT,KAAK4M,EAAI,mBAAqB5M,KAAKse,EAAI,eAAgBte,KAAK2Y,EAAI,EAAG8H,GAAEzgB,KAAM,WAAYA,KAAKmmB,MAAM,KAgB7IzZ,EAAEyZ,MAAQ,SAAUxZ,GAClB3M,KAAKyT,GAAKzT,KAAK8Z,IAAM9Z,KAAK8Z,GAAI,EAAI9Z,KAAK+Y,GAAI,EAAI/Y,KAAKyT,EAAE0S,QAASnmB,KAAK+Y,GAAI,EAAI/Y,KAAK2Y,EAAIhM,GAAK,EAAG8T,GAAEzgB,KAAM,YAAaygB,GAAEzgB,KAAM,SAAUgtB,GAAGhtB,QAGzI0M,EAAEwN,EAAI,WACJla,KAAKyT,IAAMzT,KAAK8Z,IAAM9Z,KAAK8Z,GAAI,EAAI9Z,KAAK+Y,GAAI,EAAI/Y,KAAKyT,EAAE0S,QAASnmB,KAAK+Y,GAAI,GAAKiU,GAAGhtB,MAAM,IACvFmkB,GAAEvK,EAAEM,EAAE9a,KAAKY,OAGb0M,EAAE4P,GAAK,WACLtc,KAAKuM,IAAMvM,KAAKwiB,GAAKxiB,KAAK+Z,GAAK/Z,KAAK+Y,EAAIkU,GAAGjtB,MAAQA,KAAKif,OAG1DvS,EAAEuS,GAAK,WACLgO,GAAGjtB,OAsFL0M,EAAEuM,GAAK,WACL,IACE,OAAO,EAAI+G,GAAEhgB,MAAQA,KAAKyT,EAAEoX,QAAU,EACtC,MAAOle,GACP,OAAQ,IAIZD,EAAEgb,GAAK,WACL,IACE,OAAO1nB,KAAKyT,EAAIzT,KAAKyT,EAAEsX,aAAe,GACtC,MAAOpe,GACP,MAAO,KAIXD,EAAEuP,GAAK,SAAUtP,GACf,GAAI3M,KAAKyT,EAAG,CACV,IAAI+C,EAAIxW,KAAKyT,EAAEsX,aAEf,OADApe,GAAK,GAAK6J,EAAEnW,QAAQsM,KAAO6J,EAAIA,EAAEoP,UAAUjZ,EAAElP,SACtCgvB,GAAGjW,KAwBd9J,EAAEia,GAAK,WACL,OAAO3mB,KAAK2Y,GAGdjM,EAAEkP,GAAK,WACL,MAAO,iBAAoB5b,KAAK4M,EAAI5M,KAAK4M,EAAI7G,OAAO/F,KAAK4M,KAiE3DF,EAAIghB,GAAG5vB,WACLsc,GAAK,EACP1N,EAAEyY,EAAI,EA0BNzY,EAAE4S,GAAK,SAAU3S,GACf,IACE3M,KAAK8Z,EAAE3L,KAAK,0BAA4BxB,GACxC,MAAO6J,MAiCX9J,EAAE6O,GAAK,SAAU5O,GACf,GAAI3M,KAAK2Y,EAAG,GAAI3Y,KAAK2Y,EAAI,KAAM,GAAK3Y,KAAKmlB,GACvC,IAAKxY,EAAG,CACN3M,KAAKokB,EAAIjL,KAAK0P,MAAM,IAAM1P,KAAKC,UAC/BzM,EAAI3M,KAAKokB,IACT,IAAItf,EAAI,IAAIoV,GAAEla,KAAMA,KAAK8Z,EAAGnN,OAAG,GAC3B4J,EAAIvW,KAAKuM,EAGb,GAFAvM,KAAKugB,IAAMhK,EAAgB6E,EAAX7E,EAAI2E,EAAG3E,GAAUvW,KAAKugB,GAAMhK,EAAIvW,KAAKugB,GACrD,OAASvgB,KAAKvB,IAAMqG,EAAE6d,EAAIpM,GACtBvW,KAAK2Z,GAAIhN,EAAG,CAGd,IAFA,IAAI6J,EAAI,EAECpH,EAAI,EAAGA,EAAIpP,KAAK+Y,EAAEtb,OAAQ2R,IAAK,CAEpC,IAAIqH,EAAIzW,KAAK+Y,EAAE3J,GAUjB,QAAI,KAPAqH,EADE,aAAcA,EAAEhD,GAAwB,iBAAlBgD,EAAIA,EAAEhD,EAAE6c,UAC5B7Z,EAAEhZ,YAIJ,GAGY,MAGlB,GAAI,MAFJ+Y,GAAKC,GAES,CACZD,EAAIpH,EACJ,MAAMzC,EAGR,GAAI,OAAS6J,GAAKpH,IAAMpP,KAAK+Y,EAAEtb,OAAS,EAAG,CACzC+Y,EAAIpH,EAAI,EACR,MAAMzC,GAIV6J,EAAI,SACCA,EAAI,IACXA,EAAIgY,GAAGxuB,KAAM8E,EAAG0R,GAEhBuQ,GADA3X,EAAImQ,GAAEvf,KAAKwiB,GACN,MAAO7V,GACZoa,GAAE3X,EAAG,OAAQ,IACbpP,KAAKygB,GAAKsG,GAAE3X,EAAG,oBAAqBpP,KAAKygB,GACzCyN,GAAGluB,KAAMoP,GACTpP,KAAKvB,GAAK8X,GAAK+W,GAAGle,EAAGpP,KAAKvB,EAAG8X,GAC7BuQ,GAAG9mB,KAAKtC,EAAGoH,GACX9E,KAAKqc,IAAM0K,GAAE3X,EAAG,OAAQ,QACxBpP,KAAK2Z,IAAMoN,GAAE3X,EAAG,OAAQoH,GAAIuQ,GAAE3X,EAAG,MAAO,QAAStK,EAAEyf,GAAI,EAAIM,GAAG/f,EAAGsK,EAAG,OAASyV,GAAG/f,EAAGsK,EAAGoH,GACtFxW,KAAKmlB,EAAI,QAEN,GAAKnlB,KAAKmlB,IAAMxY,EAAI4hB,GAAGvuB,KAAM2M,GAAK,GAAK3M,KAAK+Y,EAAEtb,QAAUuW,GAAGhU,KAAKtC,IAAM6wB,GAAGvuB,QA2ElF0M,EAAE0P,GAAK,WAIL,GAHApc,KAAKqR,EAAI,KACTud,GAAG5uB,MAECA,KAAKukB,KAAOvkB,KAAK8jB,GAAK,MAAQ9jB,KAAKyT,GAAK,GAAKzT,KAAKggB,GAAI,CACxD,IAAIrT,EAAI,EAAI3M,KAAKggB,EACjBhgB,KAAK8Z,EAAE3L,KAAK,+BAAiCxB,GAC7C3M,KAAKse,EAAI8E,GAAE3J,EAAEzZ,KAAK8e,GAAI9e,MAAO2M,KAIjCD,EAAEoS,GAAK,WACL9e,KAAKse,IAAMte,KAAKse,EAAI,KAAMte,KAAK8Z,EAAE3L,KAAK,iCAAkCnO,KAAK8Z,EAAE3L,KAAK,wDAAyDnO,KAAKuf,GAAI,EAAIvf,KAAK8jB,GAAI,EAAIZ,GAAE,IAAKoD,GAAGtmB,MAAO4uB,GAAG5uB,QA6B7L0M,EAAEsS,GAAK,WACL,MAAQhf,KAAK+Z,IAAM/Z,KAAK+Z,EAAI,KAAMuM,GAAGtmB,MAAOumB,GAAGvmB,MAAOkjB,GAAE,MAoE1DxW,EAAE+S,GAAK,SAAU9S,GACfA,GAAK3M,KAAK8Z,EAAE3L,KAAK,kCAAmC+U,GAAE,KAAOljB,KAAK8Z,EAAE3L,KAAK,6BAA8B+U,GAAE,MAyC3GxW,EAAI0iB,GAAGtxB,WAELmd,GAAK,aAEPvO,EAAEsO,GAAK,aAEPtO,EAAEqO,GAAK,aAEPrO,EAAE0H,GAAK,aAEP1H,EAAEqP,GAAK,aAMPsT,GAAGvxB,UAAU2V,EAAI,SAAU9G,EAAG6J,GAC5B,OAAO,IAAI8N,GAAE3X,EAAG6J,IA4BlBF,EAAEgO,GAAGhE,IAELgE,GAAExmB,UAAU6a,EAAI,WACd3Y,KAAKyT,EAAE7G,EAAI5M,KAAK4M,EAChB5M,KAAK8c,IAAM9c,KAAKyT,EAAEkP,GAAI,GACtB,IAAIhW,EAAI3M,KAAKyT,EACT+C,EAAIxW,KAAK+Y,EACT3J,EAAIpP,KAAK8Z,QAAK,EAClBnN,EAAEwR,KAAOxR,EAAEmN,EAAE3L,KAAK,0BAA2BiT,GAAG3H,EAAE9M,EAAE2S,GAAI3S,EAAG6J,KAC3D0M,GAAE,GACFvW,EAAE0J,EAAIG,EACN7J,EAAEqM,GAAK5J,GAAK,GACZzC,EAAE4S,EAAI5S,EAAEwX,EACRxX,EAAE6V,EAAIyE,GAAGta,EAAG,KAAMA,EAAE0J,GACpB+Q,GAAGza,IAGL2X,GAAExmB,UAAU6Z,MAAQ,WAClB0P,GAAGrnB,KAAKyT,IAGV6Q,GAAExmB,UAAUuT,EAAI,SAAU1E,GACxB,GAAI,iBAAoBA,EAAG,CACzB,IAAI6J,EAAI,GACRA,EAAE8Z,SAAW3jB,EACb2hB,GAAGtuB,KAAKyT,EAAG+C,QACNxW,KAAK+Z,IAAKvD,EAAI,IAAM8Z,SAAW3P,GAAGhU,GAAI2hB,GAAGtuB,KAAKyT,EAAG+C,IAAM8X,GAAGtuB,KAAKyT,EAAG9G,IAG3E2X,GAAExmB,UAAUoc,EAAI,WACdla,KAAKyT,EAAE7G,EAAI,YACJ5M,KAAK4M,EACZya,GAAGrnB,KAAKyT,UACDzT,KAAKyT,EACZ6Q,GAAE1K,EAAEM,EAAE9a,KAAKY,OAsBbsW,EAAEwZ,GAAI9L,IAON1N,EAAE0Z,GAAI/L,IAMN3N,EAAEsD,GAAGwV,IAELxV,GAAE9b,UAAUmd,GAAK,WACfwF,GAAEzgB,KAAKyT,EAAG,MAGZmG,GAAE9b,UAAUkd,GAAK,SAAUrO,GACzB8T,GAAEzgB,KAAKyT,EAAG,IAAIqc,GAAGnjB,KAGnBiN,GAAE9b,UAAUid,GAAK,SAAUpO,GACzB8T,GAAEzgB,KAAKyT,EAAG,IAAIuc,GAAGrjB,KAGnBiN,GAAE9b,UAAUsW,GAAK,WACfqM,GAAEzgB,KAAKyT,EAAG,MAgBZ4b,GAAGvxB,UAAUyyB,iBAAmBlB,GAAGvxB,UAAU2V,EAC7C6Q,GAAExmB,UAAU4tB,KAAOpH,GAAExmB,UAAUuT,EAC/BiT,GAAExmB,UAAU2tB,KAAOnH,GAAExmB,UAAU6a,EAC/B2L,GAAExmB,UAAU6Z,MAAQ2M,GAAExmB,UAAU6Z,MAChC0L,GAAGC,SAAW,EACdD,GAAGG,QAAU,EACbH,GAAGmN,WAAa,EAChB/M,GAAGgN,SAAW,WACd7M,GAAG8M,UAAY5M,GACfA,GAAEC,KAAO,IACTD,GAAE6M,MAAQ,IACV7M,GAAE1W,MAAQ,IACV0W,GAAE8M,QAAU,IACZtQ,GAAExiB,UAAU+yB,OAASvQ,GAAExiB,UAAUyhB,EACjC4E,GAAErmB,UAAUgzB,WAAa3M,GAAErmB,UAAUkiB,EACrCmE,GAAErmB,UAAUizB,aAAe5M,GAAErmB,UAAU8d,GACvCuI,GAAErmB,UAAUkzB,iBAAmB7M,GAAErmB,UAAU6oB,GAC3CxC,GAAErmB,UAAUmzB,UAAY9M,GAAErmB,UAAUmb,GACpCkL,GAAErmB,UAAUozB,gBAAkB/M,GAAErmB,UAAUme,GAC1CkI,GAAErmB,UAAUqzB,gBAAkBhN,GAAErmB,UAAU4pB,GAC1CvD,GAAErmB,UAAU4tB,KAAOvH,GAAErmB,UAAUob,GAE/B,IAAIkY,GAA4B,WAC9B,OAAO,IAAI/B,IAGTgC,GAAqB,WACvB,OAAOxO,MAGLyO,GAAYjO,GACZqN,GAAYjN,GACZ8N,GAAQ5O,GACR6O,GAAO,CACT7Q,GAAI,EACJI,GAAI,EACJC,GAAI,EACJ+G,GAAI,EACJjF,GAAI,EACJmF,GAAI,EACJrF,GAAI,EACJF,GAAI,EACJ0C,GAAI,EACJvC,GAAI,EACJ4O,MAAO,GACPC,QAAS,GACTpP,GAAI,GACJR,GAAI,GACJE,GAAI,GACJJ,GAAI,GACJQ,GAAI,GACJC,GAAI,GACJpC,GAAI,GACJP,GAAI,GACJQ,GAAI,IAEFyR,GAAsBjH,GACtBkH,GAAahO,GACbiO,GAAQ1N,I,iCCh5FZ,IAAI3kB,EAAWzB,OAAO0B,QAAU,SAAUC,GACxC,IAAK,IAAIhC,EAAI,EAAGA,EAAIiC,UAAUlC,OAAQC,IAAK,CACzC,IAAIkC,EAASD,UAAUjC,GAEvB,IAAK,IAAImC,KAAOD,EACV7B,OAAOD,UAAUgC,eAAeV,KAAKQ,EAAQC,KAC/CH,EAAOG,GAAOD,EAAOC,IAK3B,OAAOH,GAGLoyB,EAAc,SAAqBlyB,GACrC,IAAImyB,EAAmBnyB,EAAOstB,SAC1B8E,EAASD,EAAiBC,OAC1BC,EAAOF,EAAiBE,KACxBC,EAAOH,EAAiBG,KACxBC,EAASJ,EAAiBI,OAC1BhF,EAAW4E,EAAiB5E,SAC5BiF,EAAOL,EAAiBK,KACxBlD,EAAW6C,EAAiB7C,SAC5BC,EAAO4C,EAAiB5C,KACxBkD,EAAWzyB,EAAOstB,SAASmF,UAE1BA,GAAYH,GAAQI,IAEvBD,EADU,IAAIE,IAAIL,GACHG,UAGjB,MAAO,CACLA,SAAUpJ,UAAUF,UAAUsJ,IAC9BL,OAAQA,EACRC,KAAMA,EACNC,KAAMA,EACNC,OAAQA,EACRhF,SAAUA,EACViF,KAAMA,EACNlD,SAAUA,EACVC,KAAMA,EACN1R,MAAO7d,EAAO4yB,QAAQ/U,MACtB5d,IAAKD,EAAO4yB,QAAQ/U,OAAS7d,EAAO4yB,QAAQ/U,MAAM5d,KAAO,YAIzD4yB,EAAgB,SAAuB7yB,EAAQuC,GACjD,IAAIuwB,EAAY,GACZxF,EAAW4E,EAAYlyB,GACvB+yB,GAAgB,EAEhBC,EAAoB,aAExB,MAAO,CACL,eACE,OAAO1F,GAGT,oBACE,OAAOyF,GAGTE,sBAAuB,WACrBF,GAAgB,EAChBC,KAEF/B,OAAQ,SAAgBpwB,GACtBiyB,EAAUlxB,KAAKf,GAEf,IAAIqyB,EAAmB,WACrB5F,EAAW4E,EAAYlyB,GACvBa,EAAS,CACPysB,SAAUA,EACV6F,OAAQ,SAKZ,OADAnzB,EAAOuB,iBAAiB,WAAY2xB,GAC7B,WACLlzB,EAAOwB,oBAAoB,WAAY0xB,GACvCJ,EAAYA,EAAUpqB,QAAO,SAAUhH,GACrC,OAAOA,IAAOb,OAIpBuyB,SAAU,SAAkBC,GAC1B,IAAIC,EAAOvzB,UAAUlC,OAAS,QAAsBqI,IAAjBnG,UAAU,GAAmBA,UAAU,GAAK,GAC3E8d,EAAQyV,EAAKzV,MACb0V,EAAeD,EAAK7d,QACpBA,OAA2BvP,IAAjBqtB,GAAqCA,EAEnD,GAAkB,iBAAPF,EACTrzB,EAAO4yB,QAAQY,GAAGH,OACb,CACLxV,EAAQje,EAAS,GAAIie,EAAO,CAC1B5d,IAAK+N,KAAKD,MAAQ,KAGpB,IACMglB,GAAiBtd,EACnBzV,EAAO4yB,QAAQa,aAAa5V,EAAO,KAAMwV,GAEzCrzB,EAAO4yB,QAAQc,UAAU7V,EAAO,KAAMwV,GAExC,MAAOnuB,GACPlF,EAAOstB,SAAS7X,EAAU,UAAY,UAAU4d,IAIpD/F,EAAW4E,EAAYlyB,GACvB+yB,GAAgB,EAChB,IAAIY,EAAa,IAAI7vB,SAAQ,SAAU8vB,GACrC,OAAOZ,EAAoBY,KAQ7B,OANAd,EAAU1vB,SAAQ,SAAUvC,GAC1B,OAAOA,EAAS,CACdysB,SAAUA,EACV6F,OAAQ,YAGLQ,KAOTE,EAAqB,WACvB,IAAIC,EAAc/zB,UAAUlC,OAAS,QAAsBqI,IAAjBnG,UAAU,GAAmBA,UAAU,GAAK,IAClFg0B,EAAcD,EAAYrzB,QAAQ,KAClCuzB,EAAkB,CACpBvB,SAAUsB,GAAe,EAAID,EAAY5N,OAAO,EAAG6N,GAAeD,EAClE1B,OAAQ2B,GAAe,EAAID,EAAY5N,OAAO6N,GAAe,IAE3DE,EAAQ,EACRC,EAAQ,CAACF,GACTG,EAAS,CAAC,MACd,MAAO,CACL,eACE,OAAOD,EAAMD,IAGf1yB,iBAAkB,SAA0B7B,EAAMgC,KAClDF,oBAAqB,SAA6B9B,EAAMgC,KACxDkxB,QAAS,CACP,cACE,OAAOsB,GAGT,YACE,OAAOD,GAGT,YACE,OAAOE,EAAOF,IAGhBP,UAAW,SAAmB7V,EAAOlI,EAAGye,GACtC,IAAIC,EAAaD,EAAI3Z,MAAM,KACvBgY,EAAW4B,EAAW,GACtBC,EAAcD,EAAW,GACzBjC,OAAyBlsB,IAAhBouB,EAA4B,GAAKA,EAE9CL,IACAC,EAAMtyB,KAAK,CACT6wB,SAAUA,EACVL,OAAQA,EAAOv0B,OAAS,IAAMu0B,EAASA,IAEzC+B,EAAOvyB,KAAKic,IAEd4V,aAAc,SAAsB5V,EAAOlI,EAAGye,GAC5C,IAAIG,EAAcH,EAAI3Z,MAAM,KACxBgY,EAAW8B,EAAY,GACvBC,EAAeD,EAAY,GAC3BnC,OAA0BlsB,IAAjBsuB,EAA6B,GAAKA,EAE/CN,EAAMD,GAAS,CACbxB,SAAUA,EACVL,OAAQA,GAEV+B,EAAOF,GAASpW,GAElB2V,GAAI,SAAYH,GACd,IAAIoB,EAAWR,EAAQZ,EAEnBoB,EAAW,GAAKA,EAAWN,EAAOt2B,OAAS,IAI/Co2B,EAAQQ,OASZ/B,IAAiC,oBAAX/e,SAA0BA,OAAO3S,WAAY2S,OAAO3S,SAAS0zB,eAMnFC,EAAgB9B,EAHXH,EAAY/e,OAASkgB,KAI1BT,EAAWuB,EAAcvB,SAE7B71B,EAAQ,GAAgBo3B,G,mCCjNxBp3B,EAAQG,YAAa,EACrBH,EAAQq3B,eAAiBr3B,EAAQs3B,iBAAmBt3B,EAAQu3B,aAAev3B,EAAQwG,QAAUxG,EAAQoJ,MAAQpJ,EAAQw3B,KAAOx3B,EAAQy3B,gBAAa9uB,EAEjJ,IAIgC7F,EAJ5B40B,EAAa,EAAQ,OAErBC,GAE4B70B,EAFS40B,IAGzB50B,EAAI3C,WAAa2C,EAAM,CACnC80B,QAAS90B,GAMb,IAAI20B,EAAa,SAAoBI,EAAQhD,GAC3C,OAAOgD,EAAOlP,OAAO,EAAGkM,EAAOv0B,UAAYu0B,GAwBzC2C,EAAO,SAAcM,EAAQjB,GAW/B,IAVA,IAAIztB,OAAQ,EACR2uB,OAAW,EAGXC,EADanB,EAAI3Z,MAAM,KACE,GAEzB+a,EAAcC,EAAWF,GACzBG,EAA+B,KAAnBF,EAAY,GACxBG,EAASC,EAAWP,GAEfv3B,EAAI,EAAGqb,EAAIwc,EAAO93B,OAAQC,EAAIqb,EAAGrb,IAAK,CAC7C,IAAI+3B,GAAS,EACTC,EAAQH,EAAO73B,GAAGg4B,MAEtB,GAAIA,EAAMX,QACRG,EAAW,CACTQ,MAAOA,EACPC,OAAQ,GACR3B,IAAKA,OAJT,CAcA,IALA,IAAI4B,EAAgBP,EAAWK,EAAMG,MACjCF,EAAS,GACTpZ,EAAMpD,KAAKoD,IAAI6Y,EAAY33B,OAAQm4B,EAAcn4B,QACjDo2B,EAAQ,EAELA,EAAQtX,EAAKsX,IAAS,CAC3B,IAAIiC,EAAeF,EAAc/B,GAC7BkC,EAAaX,EAAYvB,GAE7B,GAAImC,EAAQF,GAAe,CAKzBH,EADYG,EAAaz2B,MAAM,IAAM,KACrB+1B,EAAY/1B,MAAMw0B,GAAO7vB,IAAIglB,oBAAoBriB,KAAK,KACtE,MAGF,QAAmBb,IAAfiwB,EAA0B,CAI5BN,GAAS,EACT,MAGF,IAAIQ,EAAeC,EAAQrb,KAAKib,GAEhC,GAAIG,IAAiBX,EAAW,EACuC,IAA5Ca,EAAc91B,QAAQ41B,EAAa,MAC4K,EAAInB,EAAYC,UAAS,GACjQ,IAAIrqB,EAAQse,mBAAmB+M,GAC/BJ,EAAOM,EAAa,IAAMvrB,OACrB,GAAIorB,IAAiBC,EAAY,CAItCN,GAAS,EACT,OAIJ,IAAKA,EAAQ,CACXlvB,EAAQ,CACNmvB,MAAOA,EACPC,OAAQA,EACR3B,IAAK,IAAMoB,EAAY/1B,MAAM,EAAGw0B,GAAOltB,KAAK,MAE9C,QAIJ,OAAOJ,GAAS2uB,GAAY,MAiH1BgB,EAAU,SAWVE,EAAY,SAAmBC,GACjC,OAAOH,EAAQ32B,KAAK82B,IAGlBL,EAAU,SAAiBK,GAC7B,OAAOA,GAA0B,MAAfA,EAAQ,IAGxBC,EAAY,SAAmBZ,EAAO7B,GAMxC,MAAO,CACL6B,MAAOA,EACPa,MAPUb,EAAMX,QAAU,EAAIM,EAAWK,EAAMG,MAAMW,QAAO,SAAUD,EAAOF,GAG7E,OAFAE,GApBiB,GAMD,SAAuBF,GACzC,MAAmB,KAAZA,EAcDI,CAAcJ,GAAwCD,EAAUC,GAAUE,GAnB7D,EAmB8FP,EAAQK,GAAUE,GAASG,EAAoCH,GApB9J,EAoBYA,GAjBd,EAkBPA,IACN,GAID1C,MAAOA,IAIP2B,EAAa,SAAoBP,GACnC,OAAOA,EAAOjxB,IAAIsyB,GAAWK,MAAK,SAAUhqB,EAAG6J,GAC7C,OAAO7J,EAAE4pB,MAAQ/f,EAAE+f,MAAQ,EAAI5pB,EAAE4pB,MAAQ/f,EAAE+f,OAAS,EAAI5pB,EAAEknB,MAAQrd,EAAEqd,UAIpEwB,EAAa,SAAoBrB,GACnC,OAAOA,EACN3e,QAAQ,eAAgB,IAAIgF,MAAM,MAGjCuc,EAAW,SAAkBvE,GAC/B,IAAK,IAAIwE,EAAOl3B,UAAUlC,OAAQq5B,EAAQl5B,MAAMi5B,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAC/FD,EAAMC,EAAO,GAAKp3B,UAAUo3B,GAM9B,OAAO1E,IAHPyE,EAAQA,EAAMxuB,QAAO,SAAUmR,GAC7B,OAAOA,GAAKA,EAAEhc,OAAS,OAEGq5B,EAAMr5B,OAAS,EAAI,IAAMq5B,EAAMnwB,KAAK,KAAO,KAGrEwvB,EAAgB,CAAC,MAAO,QAe5Bh5B,EAAQy3B,WAAaA,EACrBz3B,EAAQw3B,KAAOA,EACfx3B,EAAQoJ,MAnLI,SAAesvB,EAAM7B,GAC/B,OAAOW,EAAK,CAAC,CACXkB,KAAMA,IACJ7B,IAiLN72B,EAAQwG,QApJM,SAAiBsvB,EAAI+D,GAEjC,GAAIpC,EAAW3B,EAAI,KACjB,OAAOA,EAGT,IAAIgE,EAAYhE,EAAG5Y,MAAM,KACrB6c,EAAaD,EAAU,GACvBE,EAAUF,EAAU,GAGpBG,EADcJ,EAAK3c,MAAM,KACE,GAE3Bgd,EAAahC,EAAW6B,GACxBI,EAAejC,EAAW+B,GAE9B,GAAsB,KAAlBC,EAAW,GACb,OAAOT,EAASQ,EAAcD,GAIhC,IAAKvC,EAAWyC,EAAW,GAAI,KAAM,CACnC,IAAIhF,EAAWiF,EAAa/c,OAAO8c,GAAY1wB,KAAK,KACpD,OAAOiwB,GAA2B,MAAjBQ,EAAuB,GAAK,KAAO/E,EAAU8E,GAWhE,IAHA,IAAII,EAAcD,EAAa/c,OAAO8c,GAClCG,EAAW,GAEN95B,EAAI,EAAGqb,EAAIwe,EAAY95B,OAAQC,EAAIqb,EAAGrb,IAAK,CAClD,IAAI24B,EAAUkB,EAAY75B,GACV,OAAZ24B,EAAkBmB,EAASC,MAA2B,MAAZpB,GAAiBmB,EAASh2B,KAAK60B,GAG/E,OAAOO,EAAS,IAAMY,EAAS7wB,KAAK,KAAMwwB,IA8G5Ch6B,EAAQu3B,aAzGW,SAAsBmB,EAAMF,GAC7C,IAAI+B,EAAc7B,EAAKxb,MAAM,KACzBsd,EAAWD,EAAY,GACvBE,EAAeF,EAAY,GAC3BZ,OAAyBhxB,IAAjB8xB,EAA6B,GAAKA,EAG1CC,EAAkB,IADPxC,EAAWsC,GACW3zB,KAAI,SAAUqyB,GACjD,IAAI9vB,EAAQ2vB,EAAQrb,KAAKwb,GACzB,OAAO9vB,EAAQovB,EAAOpvB,EAAM,IAAM8vB,KACjC1vB,KAAK,KACJmxB,EAAmBnC,EAAOzI,SAE1B6K,GADJD,OAAwChyB,IAArBgyB,EAAiC,GAAKA,GACZ9F,OAEzCgG,QADmClyB,IAA1BiyB,EAAsC,GAAKA,GAC/B1d,MAAM,KAAK,IAAM,GAE1C,OADAwd,EAAkBjB,EAASiB,EAAiBf,EAAOkB,IA0FrD76B,EAAQs3B,iBAtFe,SAA0Bn2B,EAAM20B,GACrD,IAAI3qB,EAAS,SAAgB+tB,GAC3B,OAAOD,EAAUC,IAKnB,OAFiBhB,EAAW/2B,GAAMgK,OAAOA,GAAQquB,OAAOhwB,KAAK,OAC9C0uB,EAAWpC,GAAI3qB,OAAOA,GAAQquB,OAAOhwB,KAAK,MAiF3DxJ,EAAQq3B,eAda,SAAwByD,EAAMC,GACjD,IAAIC,EAAWp6B,OAAOqC,KAAK63B,GAC3B,OAAOE,EAAS16B,SAAWM,OAAOqC,KAAK83B,GAAMz6B,QAAU06B,EAASC,OAAM,SAAUv4B,GAC9E,OAAOq4B,EAAKp4B,eAAeD,IAAQo4B,EAAKp4B,KAASq4B,EAAKr4B,Q,+BCrS1D,IA6BIw4B,EAAY,SAAmBtoB,EAAO5N,GACxC,GAAuB,iBAAV4N,IAAsBnS,MAAMgB,QAAQmR,GAC/C,MAAM,IAAI/Q,UAAU,gDAGtBmD,EAAUpE,OAAO0B,OAAO,CACtB64B,YAAY,GACXn2B,GAEH,IAAuCuY,EAcvC,OAAqB,KATnB3K,EADEnS,MAAMgB,QAAQmR,GACRA,EAAM/L,KAAI,SAAU0W,GAC1B,OAAOA,EAAEE,UACRtS,QAAO,SAAUoS,GAClB,OAAOA,EAAEjd,UACRkJ,KAAK,KAEAoJ,EAAM6K,QAGNnd,OACD,GAGY,IAAjBsS,EAAMtS,OACD0E,EAAQm2B,WAAavoB,EAAMkgB,cAAgBlgB,EAAMhB,eAGvCgB,IAAUA,EAAMhB,gBAGjCgB,EA/DoB,SAA2BilB,GAKjD,IAJA,IAAIuD,GAAkB,EAClBC,GAAkB,EAClBC,GAAsB,EAEjB/6B,EAAI,EAAGA,EAAIs3B,EAAOv3B,OAAQC,IAAK,CACtC,IAAIg7B,EAAY1D,EAAOt3B,GAEnB66B,GAAmB,WAAWh5B,KAAKm5B,IAAcA,EAAUzI,gBAAkByI,GAC/E1D,EAASA,EAAO31B,MAAM,EAAG3B,GAAK,IAAMs3B,EAAO31B,MAAM3B,GACjD66B,GAAkB,EAClBE,EAAsBD,EACtBA,GAAkB,EAClB96B,KACS86B,GAAmBC,GAAuB,WAAWl5B,KAAKm5B,IAAcA,EAAU3pB,gBAAkB2pB,GAC7G1D,EAASA,EAAO31B,MAAM,EAAG3B,EAAI,GAAK,IAAMs3B,EAAO31B,MAAM3B,EAAI,GACzD+6B,EAAsBD,EACtBA,GAAkB,EAClBD,GAAkB,IAElBA,EAAkBG,EAAU3pB,gBAAkB2pB,GAAaA,EAAUzI,gBAAkByI,EACvFD,EAAsBD,EACtBA,EAAkBE,EAAUzI,gBAAkByI,GAAaA,EAAU3pB,gBAAkB2pB,GAI3F,OAAO1D,EAqCG2D,CAAkB5oB,IAG5BA,EAAQA,EAAMsF,QAAQ,YAAa,IAAItG,cAAcsG,QAAQ,mBAAmB,SAAUE,EAAGqjB,GAC3F,OAAOA,EAAG3I,iBACT5a,QAAQ,cAAc,SAAUsD,GACjC,OAAOA,EAAEsX,iBA/B4BvV,EAiCpB3K,EAhCV5N,EAAQm2B,WAAa5d,EAAEhJ,OAAO,GAAGue,cAAgBvV,EAAErb,MAAM,GAAKqb,IAmCzExd,EAAOC,QAAUk7B,EAEjBn7B,EAAOC,QAAQ43B,QAAUsD,G,8BC9EzB,IAoBgCQ,EAASC,EApBrCC,EAAe,WACjB,SAASC,EAAiBt5B,EAAQoI,GAChC,IAAK,IAAIpK,EAAI,EAAGA,EAAIoK,EAAMrK,OAAQC,IAAK,CACrC,IAAIu7B,EAAanxB,EAAMpK,GACvBu7B,EAAW11B,WAAa01B,EAAW11B,aAAc,EACjD01B,EAAWz1B,cAAe,EACtB,UAAWy1B,IAAYA,EAAWC,UAAW,GACjDn7B,OAAOmF,eAAexD,EAAQu5B,EAAWp5B,IAAKo5B,IAIlD,OAAO,SAAUE,EAAaC,EAAYC,GAGxC,OAFID,GAAYJ,EAAiBG,EAAYr7B,UAAWs7B,GACpDC,GAAaL,EAAiBG,EAAaE,GACxCF,GAdQ,GAkBfG,GAE4BT,EAFa,CAAC,GAAI,IAETC,EAFc,CAAC,GAAI,IAGnD/6B,OAAOw7B,OAAOx7B,OAAOi7B,iBAAiBH,EAAS,CACpDC,IAAK,CACHpuB,MAAO3M,OAAOw7B,OAAOT,QAK3B,SAASU,EAAgB5vB,EAAUuvB,GACjC,KAAMvvB,aAAoBuvB,GACxB,MAAM,IAAIn6B,UAAU,qCASxB,IAmJA,EAnJkB,WAOhB,SAASy6B,IAGP,IAFA,IAAIn3B,EAAQtC,KAEH62B,EAAOl3B,UAAUlC,OAAQi8B,EAAe97B,MAAMi5B,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IACnF2C,EAAa3C,GAAQp3B,UAAUo3B,GAqCjC,OAlCAyC,EAAgBx5B,KAAMy5B,GAEtBz5B,KAAK25B,IAAM,SAAUd,GACnB,IAAK,IAAIe,EAAQj6B,UAAUlC,OAAQo8B,EAAcj8B,MAAMg8B,EAAQ,EAAIA,EAAQ,EAAI,GAAIE,EAAQ,EAAGA,EAAQF,EAAOE,IAC3GD,EAAYC,EAAQ,GAAKn6B,UAAUm6B,GAGrC,MAAuB,mBAAZjB,EAIFv2B,EAAMy3B,WAAWryB,KAAKpF,EAAOu2B,GAGf,iBAAZA,EAEFv2B,EAAM03B,mBAAmBnB,IAIlCA,EAAUA,EAAQ70B,IAAI1B,EAAM23B,gBAAgBvyB,KAAKpF,IAC1CA,EAAM03B,mBAAmBnB,EAAQrC,OAAOl0B,EAAM43B,qBAAqBxyB,KAAKpF,EAAOu3B,OAIpFH,EAAaj8B,OAAS,GAAKG,MAAMgB,QAAQ86B,EAAa,MACxDA,EAAeA,EAAa,IAI9B15B,KAAK05B,aAAeA,EAAa11B,KAAI,SAAUm2B,GAC7C,MAA8B,mBAAhBA,EAA6BA,IAAgBA,KAGtDn6B,KAAK25B,IAgGd,OApFAZ,EAAaU,EAAa,CAAC,CACzB55B,IAAK,aAUL6K,MAAO,SAAoB0vB,EAAallB,GACtC,IAAK,IAAImlB,EAAQ16B,UAAUlC,OAAQ68B,EAAgB18B,MAAMy8B,EAAQ,EAAIA,EAAQ,EAAI,GAAIE,EAAQ,EAAGA,EAAQF,EAAOE,IAC7GD,EAAcC,EAAQ,GAAK56B,UAAU46B,GAGvC,OAAOv6B,KAAK25B,IAAIL,EAAiBc,EAAYr6B,WAAM+F,EAAW,CAACoP,GAAUqF,OAAO+f,OAWjF,CACDz6B,IAAK,uBACL6K,MAAO,SAA8B4vB,EAAeE,EAAaC,GAC/D,IAAIC,EAAe16B,KAAK26B,sBAAsBL,EAAcj5B,QAASm5B,GACrE,MAAO,GAAGjgB,OAAOigB,EAAaE,EAAcD,KAS7C,CACD56B,IAAK,kBACL6K,MAAO,SAAyBwE,GAK9B,OAAOlP,KAAK05B,aAAalD,QAJhB,SAAYhD,EAAKoH,GACxB,OAAOA,EAAUC,SAAWD,EAAUC,SAASrH,GAAOA,IAGpBtkB,KAUrC,CACDrP,IAAK,wBACL6K,MAAO,SAA+BgwB,EAAcF,GAKlD,OAAOx6B,KAAK05B,aAAalD,QAJhB,SAAYhD,EAAKoH,GACxB,OAAOA,EAAUE,eAAiBF,EAAUE,eAAetH,EAAKgH,GAAehH,IAG7CkH,KASrC,CACD76B,IAAK,qBACL6K,MAAO,SAA4BqwB,GAKjC,OAAO/6B,KAAK05B,aAAalD,QAJhB,SAAYhD,EAAKoH,GACxB,OAAOA,EAAUI,YAAcJ,EAAUI,YAAYxH,GAAOA,IAG1BuH,OAIjCtB,EAhJS,GCvCdwB,EAAW,CACbC,UAAW,GACXC,YAAa,GACbC,QAAQ,GA2CV,EAhC6B,WAC3B,IAAI/vB,EAAO1L,UAAUlC,OAAS,QAAsBqI,IAAjBnG,UAAU,GAAmBA,UAAU,GAAKs7B,EAC/E,MAAO,CACLH,eAAgB,SAAwBJ,EAAcF,GAEpD,GAAI58B,MAAMgB,QAAQ87B,GAAe,CAC/B,IAAIW,EAAcX,EAAaj9B,OAC3By9B,EAAY7vB,EAAK6vB,UACjBC,EAAc9vB,EAAK8vB,YACnBC,EAAS/vB,EAAK+vB,OAGdE,EAASd,EAAYj0B,MAAM,kBAS/B,GANEm0B,EADEY,EACaZ,EAAa/zB,KAAKu0B,EAAYI,EAAO,IAErCZ,EAAa/zB,KAAKu0B,EAAY,KAI3CC,GAAeE,EAAc,EAAG,CAClC,IAAIE,EAAiBb,EAAac,YAAYN,GAC9CR,EAAeA,EAAar7B,MAAM,EAAGk8B,IAAmBH,EAASF,EAAY,IAAM,IAAMC,EAAcT,EAAar7B,MAAMk8B,EAAiB,IAI/I,OAAOb,KCzCb,SAASe,EAAmBj+B,GAC1B,GAAII,MAAMgB,QAAQpB,GAAM,CACtB,IAAK,IAAIE,EAAI,EAAGC,EAAOC,MAAMJ,EAAIC,QAASC,EAAIF,EAAIC,OAAQC,IACxDC,EAAKD,GAAKF,EAAIE,GAGhB,OAAOC,EAEP,OAAOC,MAAMU,KAAKd,GAUtB,IA6BA,EA7B6B,WAC3B,IAAI4J,EAAOzH,UAAUlC,OAAS,QAAsBqI,IAAjBnG,UAAU,GAAmBA,UAAU,GAAK,UAC/E,MAAO,CACLq7B,YAAa,SAAqBD,GAChC,GAAa,YAAT3zB,EAAoB,CAEtB,IAAIb,EAAQw0B,EAAUx0B,MAAM,qBACxB+0B,EAAS/0B,GAAS4S,KAAKuV,IAAI3uB,MAAMoZ,KAAMsiB,EAAmBl1B,EAAMvC,KAAI,SAAU03B,GAChF,OAAOA,EAAGj+B,YAGZ,GAAI69B,EAAQ,CACV,IAAIK,EAAS,IAAIC,OAAO,MAAQN,EAAS,IAAK,MAC9C,OAAOP,EAAU1lB,QAAQsmB,EAAQ,IAGnC,OAAOZ,EAGT,GAAa,QAAT3zB,EAEF,OAAO2zB,EAAU1lB,QAAQ,cAAe,IAG1C,MAAM,IAAIrL,MAAM,iBAAmB5C,MCdzC,EAvB4B,WAC1B,IAAIy0B,EAAOl8B,UAAUlC,OAAS,QAAsBqI,IAAjBnG,UAAU,GAAmBA,UAAU,GAAK,GAC/E,MAAO,CACLq7B,YAAa,SAAqBD,GAChC,GAAa,KAATc,EACF,OAAOd,EAAUngB,OAKnB,GAAa,WAFbihB,EAAOA,EAAK9sB,gBAEqB,SAAT8sB,EACtB,OAAOd,EAAU1lB,QAAQ,OAAQ,IAGnC,GAAa,QAATwmB,GAA2B,UAATA,EACpB,OAAOd,EAAU1lB,QAAQ,OAAQ,IAGnC,MAAM,IAAIrL,MAAM,uBAAyB6xB,MCP/C,GCZiB,IAAI,EAAY,EAAuB,CACtDX,UAAW,MACT,EAAwB,GCFR,IAAI,EAAY,EAAuB,CACzDA,UAAW,IACXC,YAAa,QACX,EAAwB,GCHT,IAAI,EAAY,EAAuB,CACxDD,UAAW,IACXC,YAAa,OACX,EAAwB,GHPC,SAAgCW,GAC3D,MAAO,CACLhB,eAAgB,SAAwBJ,EAAcF,GACpD,GAAe,MAAXsB,GAAsC,iBAAZA,EAK5B,MAAM,IAAI9xB,MAAM,uDAGlB,MAP8B,iBAAjB0wB,GAA6BA,EAAalmB,SAASsnB,KAC5DpB,EAAeA,EAAargB,MAAMyhB,IAM/BpB,MIXTqB,EAAe,SAAsBrhB,GACvC,OAAY,MAALA,IAAcmH,OAAOgE,MAAMnL,IAAmB,kBAANA,GAmBjD,EAhByC,WACvC,MAAO,CACLogB,eAAgB,SAAwBJ,GACtC,OAAI98B,MAAMgB,QAAQ87B,GACTA,EAAapyB,OAAOyzB,GAGzBA,EAAarB,GACRA,EAGF,MCEb,GCXW,IAAI,EAAY,EAAuB,MAAO,EAAoC,EAAwB,EAAwB,GDNxG,SAAwCsB,EAAaC,GACxF,MAAO,CACLnB,eAAgB,SAAwBJ,EAAcF,GACpD,GAAmB,MAAfwB,GAAsC,MAAfC,EACzB,MAAM,IAAIjyB,MAAM,iEAIlB,OAAoB,MAAhB0wB,EACKA,EAEAA,EAAav7B,WAAWkW,QAAQ2mB,EAAaC,OEO5D,GCZe,IAAI,EAAY,EAAuB,MAAO,EAAwB,EAAwB,EAAuB,EAA+B,KAAM,SAAU,EAA+B,KAAM,QAAS,EAA+B,KAAM,QAAS,EAA+B,KAAM,UAAW,EAA+B,KAAM,UAAW,EAA+B,KAAM,WDArX,SAAkCD,EAAaC,GAC5E,MAAO,CACLjB,YAAa,SAAqBD,GAChC,GAAmB,MAAfiB,GAAsC,MAAfC,EACzB,MAAM,IAAIjyB,MAAM,2DAGlB,OAAO+wB,EAAU1lB,QAAQ2mB,EAAaC,OEV9B,IAAI,EAAY,EAAyB,kBAAmB,KAAM,GCA9D,IAAI,EAAY,EAAyB,aAAc,IAAK,GCCtD,IAAI,EAAY,EAAuB,CAC7Df,UAAW,MACT,EAAyB,WAAY,KAAM,GCFrB,IAAI,EAAY,EAAuB,CAC/DA,UAAW,IACXC,YAAa,OACX,EAAyB,WAAY,KAAM,GCHpB,IAAI,EAAY,EAAuB,CAChED,UAAW,IACXC,YAAa,QACX,EAAyB,WAAY,KAAM,GCH7B,IAAI,EAAY,EAAwB,EAAwB,GCAzD,IAAI,EAAY,EAAwB,EAAyB,WAAY,KAAM,GCD1F,IAAI,EAAY,EAAwB,GCAvC,IAAI,EAAY,EAAuB,OAAQ,I,+BCDlE,IAAIe,EAAmB,sBAEvBh/B,EAAOC,QAAU,SAAU+R,GACzB,GAAmB,iBAARA,EACT,MAAM,IAAIlQ,UAAU,qBAGtB,OAAOkQ,EAAImG,QAAQ6mB,EAAkB,U,+BCPvCh/B,EAAOC,QAAUY,OAAO0B,Q,mBCDxB,WACE,IAAI08B,EAAgBC,EAAQC,EAAUC,EAAgBC,EAAcC,EAEzC,oBAAhB1S,aAA+C,OAAhBA,aAAwBA,YAAYnc,IAC5EzQ,EAAOC,QAAU,WACf,OAAO2sB,YAAYnc,OAEO,oBAAZ+F,SAAuC,OAAZA,SAAoBA,QAAQ0oB,QACvEl/B,EAAOC,QAAU,WACf,OAAQg/B,IAAmBI,GAAgB,KAG7CH,EAAS1oB,QAAQ0oB,OAQjBE,GANAH,EAAiB,WACf,IAAIM,EAEJ,OAAe,KADfA,EAAKL,KACK,GAAWK,EAAG,OAI1BD,EAA4B,IAAnB9oB,QAAQgpB,SACjBH,EAAeD,EAAiBE,GACvB5uB,KAAKD,KACdzQ,EAAOC,QAAU,WACf,OAAOyQ,KAAKD,MAAQ0uB,GAGtBA,EAAWzuB,KAAKD,QAEhBzQ,EAAOC,QAAU,WACf,OAAO,IAAIyQ,MAAOmE,UAAYsqB,GAGhCA,GAAW,IAAIzuB,MAAOmE,aAEvB3S,KAAKY,O,qBC9BR,IAPA,IAAI2N,EAAM,EAAQ,OACdgvB,EAAyB,oBAAXppB,OAAyB,EAAAE,EAASF,OAChDqpB,EAAU,CAAC,MAAO,UAClBC,EAAS,iBACTC,EAAMH,EAAK,UAAYE,GACvBE,EAAMJ,EAAK,SAAWE,IAAWF,EAAK,gBAAkBE,GAEnDn/B,EAAI,GAAIo/B,GAAOp/B,EAAIk/B,EAAQn/B,OAAQC,IAC1Co/B,EAAMH,EAAKC,EAAQl/B,GAAK,UAAYm/B,GACpCE,EAAMJ,EAAKC,EAAQl/B,GAAK,SAAWm/B,IAAWF,EAAKC,EAAQl/B,GAAK,gBAAkBm/B,GAIpF,IAAKC,IAAQC,EAAK,CAChB,IAAIC,EAAO,EACPhpB,EAAK,EACLipB,EAAQ,GAGZH,EAAM,SAAa3zB,GACjB,GAAqB,IAAjB8zB,EAAMx/B,OAAc,CACtB,IAAIy/B,EAAOvvB,IACPpD,EAAO4O,KAAKoD,IAAI,EALJ,oBAKwB2gB,EAAOF,IAE/CA,EAAOzyB,EAAO2yB,EACd37B,YAAW,WACT,IAAI47B,EAAKF,EAAM59B,MAAM,GAIrB49B,EAAMx/B,OAAS,EAEf,IAAK,IAAIC,EAAI,EAAGA,EAAIy/B,EAAG1/B,OAAQC,IAC7B,IAAKy/B,EAAGz/B,GAAG0/B,UACT,IACED,EAAGz/B,GAAGyL,SAAS6zB,GACf,MAAOl4B,GACPvD,YAAW,WACT,MAAMuD,IACL,MAIRqU,KAAKsV,MAAMlkB,IAQhB,OALA0yB,EAAMz7B,KAAK,CACT67B,SAAUrpB,EACV7K,SAAUA,EACVi0B,WAAW,IAENppB,GAGT+oB,EAAM,SAAaM,GACjB,IAAK,IAAI3/B,EAAI,EAAGA,EAAIu/B,EAAMx/B,OAAQC,IAC5Bu/B,EAAMv/B,GAAG2/B,SAAWA,IACtBJ,EAAMv/B,GAAG0/B,WAAY,IAM7BlgC,EAAOC,QAAU,SAAUmE,GAIzB,OAAOw7B,EAAI19B,KAAKu9B,EAAMr7B,IAGxBpE,EAAOC,QAAQ6qB,OAAS,WACtB+U,EAAIh9B,MAAM48B,EAAMh9B,YAGlBzC,EAAOC,QAAQmgC,SAAW,SAAUC,GAC7BA,IACHA,EAASZ,GAGXY,EAAOC,sBAAwBV,EAC/BS,EAAOE,qBAAuBV,I,oBC/EhC5/B,EAAQugC,OAAS,SAAUx+B,GACzB,OAAOA,GAGT/B,EAAQwgC,OAAS,SAAUz+B,GACzB,OAAOA,EAAIA,GAGb/B,EAAQygC,QAAU,SAAU1+B,GAC1B,OAAOA,GAAK,EAAIA,IAGlB/B,EAAQ0gC,UAAY,SAAU3+B,GAE5B,OADAA,GAAK,GACG,EAAU,GAAMA,EAAIA,GACpB,MAASA,GAAKA,EAAI,GAAK,IAGjC/B,EAAQ2gC,OAAS,SAAU5+B,GACzB,OAAOA,EAAIA,EAAIA,GAGjB/B,EAAQ4gC,QAAU,SAAU7+B,GAC1B,QAASA,EAAIA,EAAIA,EAAI,GAGvB/B,EAAQ6gC,UAAY,SAAU9+B,GAE5B,OADAA,GAAK,GACG,EAAU,GAAMA,EAAIA,EAAIA,EACzB,KAAQA,GAAK,GAAKA,EAAIA,EAAI,IAGnC/B,EAAQ8gC,QAAU,SAAU/+B,GAC1B,OAAOA,EAAIA,EAAIA,EAAIA,GAGrB/B,EAAQ+gC,SAAW,SAAUh/B,GAC3B,OAAO,KAAMA,EAAIA,EAAIA,EAAIA,GAG3B/B,EAAQghC,WAAa,SAAUj/B,GAE7B,OADAA,GAAK,GACG,EAAU,GAAMA,EAAIA,EAAIA,EAAIA,GAC5B,KAAQA,GAAK,GAAKA,EAAIA,EAAIA,EAAI,IAGxC/B,EAAQihC,QAAU,SAAUl/B,GAC1B,OAAOA,EAAIA,EAAIA,EAAIA,EAAIA,GAGzB/B,EAAQkhC,SAAW,SAAUn/B,GAC3B,QAASA,EAAIA,EAAIA,EAAIA,EAAIA,EAAI,GAG/B/B,EAAQmhC,WAAa,SAAUp/B,GAE7B,OADAA,GAAK,GACG,EAAU,GAAMA,EAAIA,EAAIA,EAAIA,EAAIA,EACjC,KAAQA,GAAK,GAAKA,EAAIA,EAAIA,EAAIA,EAAI,IAG3C/B,EAAQohC,OAAS,SAAUr/B,GACzB,OAAO,EAAIia,KAAKqlB,IAAIt/B,EAAIia,KAAKslB,GAAK,IAGpCthC,EAAQuhC,QAAU,SAAUx/B,GAC1B,OAAOia,KAAKwlB,IAAIz/B,EAAIia,KAAKslB,GAAK,IAGhCthC,EAAQyhC,UAAY,SAAU1/B,GAC5B,MAAO,IAAM,EAAIia,KAAKqlB,IAAIrlB,KAAKslB,GAAKv/B,KAGtC/B,EAAQ0hC,OAAS,SAAU3/B,GACzB,OAAO,GAAKA,EAAI,EAAIia,KAAK2lB,IAAI,KAAM5/B,EAAI,IAGzC/B,EAAQ4hC,QAAU,SAAU7/B,GAC1B,OAAO,GAAKA,EAAIA,EAAI,EAAIia,KAAK2lB,IAAI,GAAI,GAAK5/B,IAG5C/B,EAAQ6hC,UAAY,SAAU9/B,GAC5B,OAAI,GAAKA,EAAU,EACf,GAAKA,EAAU,GACdA,GAAK,GAAK,EAAU,GAAKia,KAAK2lB,IAAI,KAAM5/B,EAAI,GAC1C,IAAoC,EAA7Bia,KAAK2lB,IAAI,GAAI,IAAM5/B,EAAI,MAGvC/B,EAAQ8hC,OAAS,SAAU//B,GACzB,OAAO,EAAIia,KAAK+lB,KAAK,EAAIhgC,EAAIA,IAG/B/B,EAAQgiC,QAAU,SAAUjgC,GAC1B,OAAOia,KAAK+lB,KAAK,KAAMhgC,EAAIA,IAG7B/B,EAAQiiC,UAAY,SAAUlgC,GAE5B,OADAA,GAAK,GACG,GAAW,IAAOia,KAAK+lB,KAAK,EAAIhgC,EAAIA,GAAK,GAC1C,IAAOia,KAAK+lB,KAAK,GAAKhgC,GAAK,GAAKA,GAAK,IAG9C/B,EAAQkiC,OAAS,SAAUngC,GACzB,IAAIqN,EAAI,QACR,OAAOrN,EAAIA,IAAMqN,EAAI,GAAKrN,EAAIqN,IAGhCpP,EAAQmiC,QAAU,SAAUpgC,GAC1B,IAAIqN,EAAI,QACR,QAASrN,EAAIA,IAAMqN,EAAI,GAAKrN,EAAIqN,GAAK,GAGvCpP,EAAQoiC,UAAY,SAAUrgC,GAC5B,IAAIqN,EAAI,UACR,OAAKrN,GAAK,GAAK,EAAiBA,EAAIA,IAAMqN,EAAI,GAAKrN,EAAIqN,GAA9B,GAClB,KAAQrN,GAAK,GAAKA,IAAMqN,EAAI,GAAKrN,EAAIqN,GAAK,IAGnDpP,EAAQqiC,SAAW,SAAUtgC,GAC3B,OAAO,EAAI/B,EAAQsiC,UAAU,EAAIvgC,IAGnC/B,EAAQsiC,UAAY,SAAUvgC,GAC5B,OAAIA,EAAI,EAAI,KACH,OAASA,EAAIA,EACXA,EAAI,EAAI,KACV,QAAUA,GAAK,IAAM,MAAQA,EAAI,IAC/BA,EAAI,IAAM,KACZ,QAAUA,GAAK,KAAO,MAAQA,EAAI,MAElC,QAAUA,GAAK,MAAQ,MAAQA,EAAI,SAI9C/B,EAAQuiC,YAAc,SAAUxgC,GAC9B,OAAIA,EAAI,GAAqC,GAA1B/B,EAAQqiC,SAAa,EAAJtgC,GACE,GAA/B/B,EAAQsiC,UAAc,EAAJvgC,EAAQ,GAAU,IAG7C/B,EAAQwiC,UAAY,SAAUzgC,GAC5B,IAAIqN,EACAI,EAAI,GAER,OAAU,IAANzN,EAAgB,EACV,IAANA,EAAgB,IAEfyN,GAAKA,EAAI,GACZA,EAAI,EACJJ,EAAI7N,IACC6N,EAPC,GAOO4M,KAAKymB,KAAK,EAAIjzB,IAAM,EAAIwM,KAAKslB,KAEnC9xB,EAAIwM,KAAK2lB,IAAI,EAAG,IAAM5/B,GAAK,IAAMia,KAAKwlB,KAAKz/B,EAAIqN,IAAM,EAAI4M,KAAKslB,IAT/D,MAYVthC,EAAQ0iC,WAAa,SAAU3gC,GAC7B,IAAIqN,EACAI,EAAI,GAER,OAAU,IAANzN,EAAgB,EACV,IAANA,EAAgB,IAEfyN,GAAKA,EAAI,GACZA,EAAI,EACJJ,EAAI7N,IACC6N,EAPC,GAOO4M,KAAKymB,KAAK,EAAIjzB,IAAM,EAAIwM,KAAKslB,IAErC9xB,EAAIwM,KAAK2lB,IAAI,GAAI,GAAK5/B,GAAKia,KAAKwlB,KAAKz/B,EAAIqN,IAAM,EAAI4M,KAAKslB,IATvD,IASkE,IAG5EthC,EAAQ2iC,aAAe,SAAU5gC,GAC/B,IAAIqN,EACAI,EAAI,GACJjO,EAAI,GACR,OAAU,IAANQ,EAAgB,EACV,IAANA,EAAgB,IAEfyN,GAAKA,EAAI,GACZA,EAAI,EACJJ,EAAI7N,IACC6N,EAAI7N,EAAIya,KAAKymB,KAAK,EAAIjzB,IAAM,EAAIwM,KAAKslB,KAEvCv/B,GAAK,GAAK,EAAkByN,EAAIwM,KAAK2lB,IAAI,EAAG,IAAM5/B,GAAK,IAAMia,KAAKwlB,KAAKz/B,EAAIqN,IAAM,EAAI4M,KAAKslB,IAAM//B,IAA3E,GACnBiO,EAAIwM,KAAK2lB,IAAI,GAAI,IAAM5/B,GAAK,IAAMia,KAAKwlB,KAAKz/B,EAAIqN,IAAM,EAAI4M,KAAKslB,IAAM//B,GAAK,GAAM,IAIzFvB,EAAQ,WAAaA,EAAQwgC,OAC7BxgC,EAAQ,YAAcA,EAAQygC,QAC9BzgC,EAAQ,eAAiBA,EAAQ0gC,UACjC1gC,EAAQ,WAAaA,EAAQ2gC,OAC7B3gC,EAAQ,YAAcA,EAAQ4gC,QAC9B5gC,EAAQ,eAAiBA,EAAQ6gC,UACjC7gC,EAAQ,YAAcA,EAAQ8gC,QAC9B9gC,EAAQ,aAAeA,EAAQ+gC,SAC/B/gC,EAAQ,gBAAkBA,EAAQghC,WAClChhC,EAAQ,YAAcA,EAAQihC,QAC9BjhC,EAAQ,aAAeA,EAAQkhC,SAC/BlhC,EAAQ,gBAAkBA,EAAQmhC,WAClCnhC,EAAQ,WAAaA,EAAQohC,OAC7BphC,EAAQ,YAAcA,EAAQuhC,QAC9BvhC,EAAQ,eAAiBA,EAAQyhC,UACjCzhC,EAAQ,WAAaA,EAAQ0hC,OAC7B1hC,EAAQ,YAAcA,EAAQ4hC,QAC9B5hC,EAAQ,eAAiBA,EAAQ6hC,UACjC7hC,EAAQ,WAAaA,EAAQ8hC,OAC7B9hC,EAAQ,YAAcA,EAAQgiC,QAC9BhiC,EAAQ,eAAiBA,EAAQiiC,UACjCjiC,EAAQ,WAAaA,EAAQkiC,OAC7BliC,EAAQ,YAAcA,EAAQmiC,QAC9BniC,EAAQ,eAAiBA,EAAQoiC,UACjCpiC,EAAQ,aAAeA,EAAQqiC,SAC/BriC,EAAQ,cAAgBA,EAAQsiC,UAChCtiC,EAAQ,iBAAmBA,EAAQuiC,YACnCviC,EAAQ,cAAgBA,EAAQwiC,UAChCxiC,EAAQ,eAAiBA,EAAQ0iC,WACjC1iC,EAAQ,kBAAoBA,EAAQ2iC,c,iBCvNpC,SAASC,EAAQ9/B,GACf,GAAIA,EAAK,OAKX,SAAeA,GACb,IAAK,IAAIJ,KAAOkgC,EAAQjiC,UACtBmC,EAAIJ,GAAOkgC,EAAQjiC,UAAU+B,GAG/B,OAAOI,EAVS+/B,CAAM//B,GAaxB8/B,EAAQjiC,UAAUmiC,GAAKF,EAAQjiC,UAAUqD,iBAAmB,SAAU++B,EAAO5+B,GAG3E,OAFAtB,KAAKmgC,WAAangC,KAAKmgC,YAAc,IACpCngC,KAAKmgC,WAAW,IAAMD,GAASlgC,KAAKmgC,WAAW,IAAMD,IAAU,IAAI1+B,KAAKF,GAClEtB,MAGT+/B,EAAQjiC,UAAUshB,KAAO,SAAU8gB,EAAO5+B,GACxC,SAAS2+B,IACPjgC,KAAKogC,IAAIF,EAAOD,GAChB3+B,EAAGvB,MAAMC,KAAML,WAKjB,OAFAsgC,EAAG3+B,GAAKA,EACRtB,KAAKigC,GAAGC,EAAOD,GACRjgC,MAGT+/B,EAAQjiC,UAAUsiC,IAAML,EAAQjiC,UAAUiiB,eAAiBggB,EAAQjiC,UAAUuiC,mBAAqBN,EAAQjiC,UAAUsD,oBAAsB,SAAU8+B,EAAO5+B,GAGzJ,GAFAtB,KAAKmgC,WAAangC,KAAKmgC,YAAc,GAEjC,GAAKxgC,UAAUlC,OAEjB,OADAuC,KAAKmgC,WAAa,GACXngC,KAIT,IASIif,EATAjT,EAAYhM,KAAKmgC,WAAW,IAAMD,GACtC,IAAKl0B,EAAW,OAAOhM,KAEvB,GAAI,GAAKL,UAAUlC,OAEjB,cADOuC,KAAKmgC,WAAW,IAAMD,GACtBlgC,KAMT,IAAK,IAAItC,EAAI,EAAGA,EAAIsO,EAAUvO,OAAQC,IAGpC,IAFAuhB,EAAKjT,EAAUtO,MAEJ4D,GAAM2d,EAAG3d,KAAOA,EAAI,CAC7B0K,EAAU+S,OAAOrhB,EAAG,GACpB,MAUJ,OAJyB,IAArBsO,EAAUvO,eACLuC,KAAKmgC,WAAW,IAAMD,GAGxBlgC,MAGT+/B,EAAQjiC,UAAUwiC,KAAO,SAAUJ,GACjClgC,KAAKmgC,WAAangC,KAAKmgC,YAAc,GACrC,IAAI34B,EAAO,GAAGnI,MAAMD,KAAKO,UAAW,GAChCqM,EAAYhM,KAAKmgC,WAAW,IAAMD,GAEtC,GAAIl0B,EAGF,IAAK,IAAItO,EAAI,EAAGH,GAFhByO,EAAYA,EAAU3M,MAAM,IAEI5B,OAAQC,EAAIH,IAAOG,EACjDsO,EAAUtO,GAAGqC,MAAMC,KAAMwH,GAI7B,OAAOxH,MAGT+/B,EAAQjiC,UAAU40B,UAAY,SAAUwN,GAEtC,OADAlgC,KAAKmgC,WAAangC,KAAKmgC,YAAc,GAC9BngC,KAAKmgC,WAAW,IAAMD,IAAU,IAGzCH,EAAQjiC,UAAUyiC,aAAe,SAAUL,GACzC,QAASlgC,KAAK0yB,UAAUwN,GAAOziC,QAI/BP,EAAOC,QAAU4iC,G,sBC/FnB,IAAIS,EAAS,EAAQ,OAwBrBtjC,EAAOC,QAAU,SAAUsjC,EAAMt+B,GAG/B,GAFAA,EAAUA,GAAW,GACD,iBAATs+B,IAAmBA,EAAO7/B,SAAS8/B,cAAcD,IACxDA,EAAM,OAAOD,EAAO,EAzB1B,SAA+BC,EAAME,EAAkBC,GACrD,IAMIC,EANA/U,EAAOlrB,SAASkrB,KAChBgV,EAAOlgC,SAASE,gBAChBigC,EAAWN,EAAKO,wBAChBC,EAAeH,EAAKG,aACpBC,EAAiB/nB,KAAKoD,IAAIuP,EAAKqV,aAAcrV,EAAKsV,aAAcN,EAAKG,aAAcH,EAAKK,aAAcL,EAAKM,cAC/GT,EAAmBA,GAAoB,EAIrCE,EADgB,WAAdD,EACeG,EAASM,OAASJ,EACZ,WAAdL,EACQG,EAASM,OAASJ,EAAe,EAAIF,EAASO,OAAS,EAGvDP,EAASQ,IAG5B,IAAIC,EAAoBN,EAAiBD,EACzC,OAAO9nB,KAAKuV,IAAImS,EAAiBF,EAAmBptB,OAAOkuB,YAAaD,GAM7CE,CAAsBjB,EAAMt+B,EAAQiU,OAAQjU,EAAQw/B,OAAQx/B,K,sBC3BzF,IAAIy/B,EAAQ,EAAQ,OAEhB9E,EAAM,EAAQ,MAsClB5/B,EAAOC,QA3BP,SAAkBud,EAAGc,EAAGrZ,GACtBA,EAAUA,GAAW,GAErB,IAAI4f,EATG,CACLwf,IAHMhuB,OAAOkuB,aAAe7gC,SAASE,gBAAgB+gC,UAIrDC,KAHMvuB,OAAOwuB,aAAenhC,SAASE,gBAAgBkhC,YAYnDC,EAAQL,EAAM7f,GAAOmgB,KAAK//B,EAAQ+/B,MAAQ,YAAYjP,GAAG,CAC3DsO,IAAK/lB,EACLsmB,KAAMpnB,IACLynB,SAAShgC,EAAQggC,UAAY,KAUhC,SAASC,IACPtF,EAAIsF,GACJH,EAAMvrB,SAIR,OAdAurB,EAAMvrB,QAAO,SAAUjY,GACrB8U,OAAO8uB,SAAkB,EAAT5jC,EAAEqjC,KAAkB,EAARrjC,EAAE8iC,QAGhCU,EAAMhC,GAAG,OAAO,WACdmC,EAAU,gBAQZA,IACOH,I,sBCrCT,IAAIC,EAAO,EAAQ,OAYnB,SAASN,EAAM3hC,GACb,KAAMD,gBAAgB4hC,GAAQ,OAAO,IAAIA,EAAM3hC,GAC/CD,KAAKsiC,MAAQriC,EACbD,KAAKkiC,KAAK,UACVliC,KAAKmiC,SAAS,KAdF,EAAQ,KAiBtBpC,CAAQ6B,EAAM9jC,WAEd8jC,EAAM9jC,UAAUmY,MAAQ,WAKtB,OAJAjW,KAAKpB,QAAyD,mBAA/Cb,OAAOD,UAAUqB,SAASC,KAAKY,KAAKsiC,OACnDtiC,KAAKuiC,MAnBP,SAAgBtiC,EAAKwe,GACnB,IAAK,IAAI5e,KAAO4e,EACVA,EAAI3e,eAAeD,KAAMI,EAAIJ,GAAO4e,EAAI5e,IAG9C,OAAOI,EAcMuiC,CAAO,GAAIxiC,KAAKsiC,OAC7BtiC,KAAKyiC,OAAQ,EACbziC,KAAK0iC,OAAS90B,KAAKD,MACZ3N,MAGT4hC,EAAM9jC,UAAUm1B,GAAK,SAAUhzB,GAG7B,OAFAD,KAAKiW,QACLjW,KAAK2iC,IAAM1iC,EACJD,MAGT4hC,EAAM9jC,UAAUqkC,SAAW,SAAUS,GAEnC,OADA5iC,KAAK6iC,UAAYD,EACV5iC,MAGT4hC,EAAM9jC,UAAUokC,KAAO,SAAU5gC,GAE/B,KADAA,EAAK,mBAAqBA,EAAKA,EAAK4gC,EAAK5gC,IAChC,MAAM,IAAItC,UAAU,2BAE7B,OADAgB,KAAK8iC,MAAQxhC,EACNtB,MAGT4hC,EAAM9jC,UAAUilC,KAAO,WAKrB,OAJA/iC,KAAKgjC,SAAU,EACfhjC,KAAKyiC,OAAQ,EACbziC,KAAKsgC,KAAK,QACVtgC,KAAKsgC,KAAK,OACHtgC,MAGT4hC,EAAM9jC,UAAUmlC,KAAO,WACrB,IAAIjjC,KAAKyiC,MAAT,CACA,IAAIN,EAAWniC,KAAK6iC,UAChBl1B,EAAMC,KAAKD,MAIf,GAHYA,EAAM3N,KAAK0iC,QACHP,EASlB,OANAniC,KAAKsiC,MAAQtiC,KAAK2iC,IAElB3iC,KAAKkjC,QAAQljC,KAAK2iC,KAElB3iC,KAAKyiC,OAAQ,EACbziC,KAAKsgC,KAAK,OACHtgC,KAGT,IAAI1B,EAAO0B,KAAKsiC,MACZrP,EAAKjzB,KAAK2iC,IACVQ,EAAOnjC,KAAKuiC,MAGZrjC,GAAIoC,EAFCtB,KAAK8iC,QACLn1B,EAAM3N,KAAK0iC,QAAUP,GAG9B,GAAIniC,KAAKpB,QAAS,CAChB,IAAK,IAAIlB,EAAI,EAAGA,EAAIY,EAAKb,SAAUC,EACjCylC,EAAKzlC,GAAKY,EAAKZ,IAAMu1B,EAAGv1B,GAAKY,EAAKZ,IAAMwB,EAK1C,OAFAc,KAAKkjC,QAAQC,GAENnjC,KAGT,IAAK,IAAI0M,KAAKpO,EACZ6kC,EAAKz2B,GAAKpO,EAAKoO,IAAMumB,EAAGvmB,GAAKpO,EAAKoO,IAAMxN,EAK1C,OAFAc,KAAKkjC,QAAQC,GAENnjC,OAGT4hC,EAAM9jC,UAAU4Y,OAAS,SAAUpV,GACjC,OAAI,GAAK3B,UAAUlC,OAAeuC,KAAKijC,QACvCjjC,KAAKkjC,QAAU5hC,EACRtB,OAGT9C,EAAOC,QAAUykC,G,oNCxFjB,IAAInpB,EAAiB,SAAuBhC,EAAGD,GAW7C,OAVAiC,EAAiB1a,OAAOS,gBAAkB,CACxCG,UAAW,cACAf,OAAS,SAAU6Y,EAAGD,GACjCC,EAAE9X,UAAY6X,IACX,SAAUC,EAAGD,GAChB,IAAK,IAAI9X,KAAK8X,EACRzY,OAAOD,UAAUgC,eAAeV,KAAKoX,EAAG9X,KAAI+X,EAAE/X,GAAK8X,EAAE9X,MAIvC+X,EAAGD,I,WAGpB,KACL,GAAiB,mBAANA,GAA0B,OAANA,EAAY,MAAM,IAAIxX,UAAU,uBAAyB+G,OAAOyQ,GAAK,iCAIpG,SAASyL,IACPjiB,KAAK9B,YAAcuY,EAHrBgC,EAAehC,EAAGD,GAMlBC,EAAE3Y,UAAkB,OAAN0Y,EAAazY,OAAOC,OAAOwY,IAAMyL,EAAGnkB,UAAY0Y,EAAE1Y,UAAW,IAAImkB,GAGjF,IAAImhB,EAAU,WAaZ,OAZAA,EAAUrlC,OAAO0B,QAAU,SAAkB6W,GAC3C,IAAK,IAAI/J,EAAG7O,EAAI,EAAGwB,EAAIS,UAAUlC,OAAQC,EAAIwB,EAAGxB,IAG9C,IAAK,IAAIgB,KAFT6N,EAAI5M,UAAUjC,GAGRK,OAAOD,UAAUgC,eAAeV,KAAKmN,EAAG7N,KAAI4X,EAAE5X,GAAK6N,EAAE7N,IAI7D,OAAO4X,IAGMvW,MAAMC,KAAML,Y,WAiCtB,SAOL,OAAO,IAAK4gB,IAAMA,EAAI7c,WAAU,SAAUC,EAASuO,GACjD,SAASmxB,EAAU34B,GACjB,IACEu4B,EAAKK,EAAU/4B,KAAKG,IACpB,MAAO5F,GACPoN,EAAOpN,IAIX,SAASy+B,EAAS74B,GAChB,IACEu4B,EAAKK,EAAiB,MAAE54B,IACxB,MAAO5F,GACPoN,EAAOpN,IAIX,SAASm+B,EAAKO,GAvBhB,IAAe94B,EAwBX84B,EAAOh5B,KAAO7G,EAAQ6/B,EAAO94B,QAxBlBA,EAwBiC84B,EAAO94B,MAvB9CA,aAAiB6V,EAAI7V,EAAQ,IAAI6V,GAAE,SAAU5c,GAClDA,EAAQ+G,OAsBkD9G,KAAKy/B,EAAWE,GAG5EN,GAAMK,EAAYA,EAAUvjC,MAAM0jC,EAASC,GAAc,KAAKn5B,W,WAG3D,KACL,IASIgM,EACAiF,EACAlF,EACA7C,EAZA8B,EAAI,CACNvK,MAAO,EACPG,KAAM,WACJ,GAAW,EAAPmL,EAAE,GAAQ,MAAMA,EAAE,GACtB,OAAOA,EAAE,IAEXqtB,KAAM,GACNC,IAAK,IAMP,OAAOnwB,EAAI,CACTlJ,KAAMs5B,EAAK,GACX,MAASA,EAAK,GACd,OAAUA,EAAK,IACI,mBAAX1lC,SAA0BsV,EAAEtV,OAAOE,UAAY,WACvD,OAAO2B,OACLyT,EAEJ,SAASowB,EAAK3kC,GACZ,OAAO,SAAU6a,GACf,OAIJ,SAAc+pB,GACZ,GAAIvtB,EAAG,MAAM,IAAIvX,UAAU,mCAE3B,KAAOuW,GACL,IACE,GAAIgB,EAAI,EAAGiF,IAAMlF,EAAY,EAARwtB,EAAG,GAAStoB,EAAU,OAAIsoB,EAAG,GAAKtoB,EAAS,SAAOlF,EAAIkF,EAAU,SAAMlF,EAAElX,KAAKoc,GAAI,GAAKA,EAAEjR,SAAW+L,EAAIA,EAAElX,KAAKoc,EAAGsoB,EAAG,KAAKt5B,KAAM,OAAO8L,EAG3J,OAFIkF,EAAI,EAAGlF,IAAGwtB,EAAK,CAAS,EAARA,EAAG,GAAQxtB,EAAE5L,QAEzBo5B,EAAG,IACT,KAAK,EACL,KAAK,EACHxtB,EAAIwtB,EACJ,MAEF,KAAK,EAEH,OADAvuB,EAAEvK,QACK,CACLN,MAAOo5B,EAAG,GACVt5B,MAAM,GAGV,KAAK,EACH+K,EAAEvK,QACFwQ,EAAIsoB,EAAG,GACPA,EAAK,CAAC,GACN,SAEF,KAAK,EACHA,EAAKvuB,EAAEquB,IAAInM,MAEXliB,EAAEouB,KAAKlM,MAEP,SAEF,QACE,KAAMnhB,EAAIf,EAAEouB,MAAMrtB,EAAIA,EAAE7Y,OAAS,GAAK6Y,EAAEA,EAAE7Y,OAAS,KAAkB,IAAVqmC,EAAG,IAAsB,IAAVA,EAAG,IAAW,CACtFvuB,EAAI,EACJ,SAGF,GAAc,IAAVuuB,EAAG,MAAcxtB,GAAKwtB,EAAG,GAAKxtB,EAAE,IAAMwtB,EAAG,GAAKxtB,EAAE,IAAK,CACvDf,EAAEvK,MAAQ84B,EAAG,GACb,MAGF,GAAc,IAAVA,EAAG,IAAYvuB,EAAEvK,MAAQsL,EAAE,GAAI,CACjCf,EAAEvK,MAAQsL,EAAE,GACZA,EAAIwtB,EACJ,MAGF,GAAIxtB,GAAKf,EAAEvK,MAAQsL,EAAE,GAAI,CACvBf,EAAEvK,MAAQsL,EAAE,GAEZf,EAAEquB,IAAIpiC,KAAKsiC,GAEX,MAGExtB,EAAE,IAAIf,EAAEquB,IAAInM,MAEhBliB,EAAEouB,KAAKlM,MAEP,SAGJqM,EAAKhY,EAAK1sB,KAAKqkC,EAASluB,GACxB,MAAOzQ,GACPg/B,EAAK,CAAC,EAAGh/B,GACT0W,EAAI,EACJ,QACAjF,EAAID,EAAI,EAIZ,GAAY,EAARwtB,EAAG,GAAQ,MAAMA,EAAG,GACxB,MAAO,CACLp5B,MAAOo5B,EAAG,GAAKA,EAAG,QAAK,EACvBt5B,MAAM,GAlFCy4B,CAAK,CAAC/jC,EAAG6a,MAsFf,c,WAiBA,GACL,IAAIxN,EAAsB,mBAAXpO,QAAyBA,OAAOE,SAC3Csa,EAAIpM,GAAK9N,EAAE8N,GACX7O,EAAI,EACR,GAAIib,EAAG,OAAOA,EAAEvZ,KAAKX,GACrB,GAAIA,GAAyB,iBAAbA,EAAEhB,OAAqB,MAAO,CAC5C8M,KAAM,WAEJ,OADI9L,GAAKf,GAAKe,EAAEhB,SAAQgB,OAAI,GACrB,CACLiM,MAAOjM,GAAKA,EAAEf,KACd8M,MAAO/L,KAIb,MAAM,IAAIO,UAAUuN,EAAI,0BAA4B,mC,WAE/C,KACL,IAAIoM,EAAsB,mBAAXxa,QAAyBM,EAAEN,OAAOE,UACjD,IAAKsa,EAAG,OAAOla,EACf,IACIgO,EAEA3H,EAHApH,EAAIib,EAAEvZ,KAAKX,GAEXslC,EAAK,GAGT,IACE,WAAc,IAAN7kC,GAAgBA,KAAM,MAAQuN,EAAI/O,EAAE6M,QAAQC,MAClDu5B,EAAGviC,KAAKiL,EAAE/B,OAEZ,MAAOG,GACP/F,EAAI,CACF+F,MAAOA,GAET,QACA,IACM4B,IAAMA,EAAEjC,OAASmO,EAAIjb,EAAU,SAAIib,EAAEvZ,KAAK1B,GAC9C,QACA,GAAIoH,EAAG,MAAMA,EAAE+F,OAInB,OAAOk5B,E,WA0BF,OACL,GAAIC,GAA6B,IAArBrkC,UAAUlC,OAAc,IAAK,IAA4BsmC,EAAxBrmC,EAAI,EAAGqb,EAAIza,EAAKb,OAAYC,EAAIqb,EAAGrb,KAC1EqmC,GAAQrmC,KAAKY,IACVylC,IAAIA,EAAKnmC,MAAME,UAAUuB,MAAMD,KAAKd,EAAM,EAAGZ,IAClDqmC,EAAGrmC,GAAKY,EAAKZ,IAGjB,OAAOu1B,EAAG1Y,OAAOwpB,GAAMzlC,GAqGAP,OAAOC,Q,uCCla5BimC,EAAyB,EAAQ,OAGrC9mC,EAAQ,GAAa+mC,EACrB/mC,EAAQ,GA6DR,SAAyB04B,GACvB,OAAOqO,EAAWrO,EAAMsO,MA7D1BhnC,EAAQ,GAAWA,EAAQ,QAAU,EAErC,IAAIinC,EAAiCH,EAAuB,EAAQ,QAEhEI,EAA0BJ,EAAuB,EAAQ,QAEzDK,EAAkBL,EAAuB,EAAQ,QAEjDM,EAAYN,EAAuB,EAAQ,QAE3CO,EAAaP,EAAuB,EAAQ,QAE5CQ,EAASR,EAAuB,EAAQ,QAExCS,EAAe,EAAQ,OAEvBC,EAAS,EAAQ,OAEjBC,EAAa,EAAQ,OAEzBznC,EAAQ,GAAYynC,EAAWC,UAC/B,IAAIC,EAAY,CAAC,KAAM,WAAY,UAAW,eAAgB,kBAAmB,cAAe,WAAY,kBAAmB,QAAS,UAAW,aAE/IC,EAAiB,SAAwBlP,GAC3C,OAAOA,MAAAA,OAAmC,EAASA,EAAKjB,WAAW,MAGrE,SAASsP,EAAWrO,EAAMmP,GACxB,IAAI9R,EAAM+R,EAMV,QAJe,IAAXD,IACFA,EAASE,MAGNC,EAAYtP,GACf,OAAOA,EAGT,GAAIA,EAAKjB,WAAW,OAASiB,EAAKjB,WAAW,OAC3C,OAAOiB,EAGT,IAAImB,EAAwG,QAAhG9D,EAA8B,QAAtB+R,EAAUD,SAAgC,IAAZC,EAAqBA,EAAUd,WAA4C,IAATjR,EAAkBA,EAAO,IAC7I,MAAO,IAAM8D,MAAAA,GAAoCA,EAAKoO,SAAS,KAAOpO,EAAK33B,MAAM,GAAI,GAAK23B,IAASnB,EAAKjB,WAAW,KAAOiB,EAAO,IAAMA,GAKzI,IAAIsO,EAAsB,WACxB,MAAsH,IAGpHe,EAAsB,WACxB,MAAkH,IAGhHC,EAAc,SAAqBtP,GACrC,OAAOA,IAASA,EAAKjB,WAAW,aAAeiB,EAAKjB,WAAW,cAAgBiB,EAAKjB,WAAW,OAgBjG,IAAIyQ,EAAkB,SAAyBxP,EAAMyP,GACnD,MAAoB,iBAATzP,EACFA,EAGJsP,EAAYtP,GAIVkP,EAAelP,GAAQqO,EAAWrO,GAlB3C,SAAoBA,EAAM0P,GAExB,OAAIR,EAAelP,GACVA,GAGF,EAAI8O,EAAOhhC,SAASkyB,EAAM0P,GAYgBC,CAAW3P,EAAMyP,GAHzDzP,GAMP4P,EAAmB,CACrBC,gBAAiBlB,EAAWzP,QAAQC,OACpC2Q,YAAanB,EAAWzP,QAAQwI,OAChCqI,gBAAiBpB,EAAWzP,QAAQ8Q,MAyBtC,SAASC,EAA0Bh+B,GACjC,OAAoB28B,EAAO1P,QAAQT,cAAcoQ,EAAaqB,SAAU,MAAM,SAAUC,GACtF,IAAI9Y,EAAW8Y,EAAM9Y,SACrB,OAAoBuX,EAAO1P,QAAQT,cAAc2R,GAAY,EAAI1B,EAAUxP,SAAS,GAAIjtB,EAAO,CAC7Fo+B,UAAWhZ,QAKjB,IAAI+Y,EAA0B,SAAUE,GAGtC,SAASF,EAAWn+B,GAClB,IAAIxF,GAEJA,EAAQ6jC,EAAiB/mC,KAAKY,KAAM8H,IAAU9H,MAExComC,gBAAkB,SAAUC,GAChC,IAAIC,EAAqBD,EAAMC,mBAC3BC,EAAYF,EAAME,UAEtB,OAAIjkC,EAAMwF,MAAM89B,gBAAkBU,EAAqBC,GAC9C,CACLC,UAAW,CAAClkC,EAAMwF,MAAM0+B,UAAWlkC,EAAMwF,MAAM49B,iBAAiBp9B,OAAOm+B,SAAS9/B,KAAK,KACrF+/B,OAAO,EAAInC,EAAUxP,SAAS,GAAIzyB,EAAMwF,MAAM4+B,MAAOpkC,EAAMwF,MAAM69B,cAI9D,MAGT,IAAIgB,GAAc,EAUlB,MARsB,oBAAXpzB,QAA0BA,OAAOqzB,uBAC1CD,GAAc,GAGhBrkC,EAAMmb,MAAQ,CACZkpB,YAAaA,GAEfrkC,EAAMukC,UAAYvkC,EAAMukC,UAAUn/B,MAAK,EAAI28B,EAAwBtP,SAASzyB,IACrEA,GA/BT,EAAIgiC,EAAgBvP,SAASkR,EAAYE,GAkCzC,IAAIW,EAASb,EAAWnoC,UAuIxB,OArIAgpC,EAAOC,UAAY,WACjB,IAAIC,EAAczzB,OAAO2Z,SAASmF,SAE9BryB,KAAK8H,MAAMo+B,WAAalmC,KAAK8H,MAAMo+B,UAAU7T,WAC/C2U,EAAchnC,KAAK8H,MAAMo+B,UAAU7T,UAGrC,IAAI4U,EAAgB5B,EAAgBrlC,KAAK8H,MAAMmrB,GAAI+T,GAC/CE,GAAc,EAAItC,EAAWC,WAAWoC,GAAe5U,SAGvD2U,IAAgBE,GAClBC,UAAUC,QAAQF,IAItBJ,EAAOO,mBAAqB,SAA4BC,EAAWC,GAE7DvnC,KAAK8H,MAAMmrB,KAAOqU,EAAUrU,IAAOjzB,KAAKyd,MAAMkpB,aAChD3mC,KAAK+mC,aAITD,EAAOU,kBAAoB,WAEpBxnC,KAAKyd,MAAMkpB,aACd3mC,KAAK+mC,aAITD,EAAOW,qBAAuB,WAC5B,GAAKznC,KAAK0nC,GAAV,CAIA,IAAIC,EAAW3nC,KAAK0nC,GAChB99B,EAAW+9B,EAAS/9B,SACpB8xB,EAAKiM,EAASjM,GAClB9xB,EAASg+B,UAAUlM,GACnB9xB,EAASi+B,eAGXf,EAAOD,UAAY,SAAmBiB,GACpC,IA/GiEpM,EAAIzc,EACnEyoB,EA8GEK,EAAS/nC,KAETA,KAAK8H,MAAMkgC,UAAYhoC,KAAK8H,MAAMkgC,SAASloC,eAAe,WAC5DE,KAAK8H,MAAMkgC,SAASzC,QAAUuC,EACrB9nC,KAAK8H,MAAMkgC,UACpBhoC,KAAK8H,MAAMkgC,SAASF,GAGlB9nC,KAAKyd,MAAMkpB,aAAemB,IAE5B9nC,KAAK0nC,IAzH0DhM,EAyH1BoM,EAzH8B7oB,EAyHzB,WACxC8oB,EAAOhB,cAzHTW,EAAK,IAAIn0B,OAAOqzB,sBAAqB,SAAUv8B,GACjDA,EAAQrH,SAAQ,SAAUilC,GACpBvM,IAAOuM,EAAMvoC,SAGXuoC,EAAMC,gBAAkBD,EAAME,kBAAoB,KACpDT,EAAGE,UAAUlM,GACbgM,EAAGG,aACH5oB,YAMLmpB,QAAQ1M,GACJ,CACL9xB,SAAU89B,EACVhM,GAAIA,MA6GNoL,EAAOuB,OAAS,WACd,IAAIC,EAAStoC,KAETuoC,EAAcvoC,KAAK8H,MACnBmrB,EAAKsV,EAAYtV,GACjBuV,EAAuBD,EAAYE,SACnCA,OAAoC,IAAzBD,EAAkCxoC,KAAKomC,gBAAkBoC,EACpEE,EAAWH,EAAYI,QACvBC,EAAgBL,EAAYM,aAK5BprB,GAJmB8qB,EAAY7C,gBAChB6C,EAAY5C,YACf4C,EAAYP,SACNO,EAAY3C,gBACtB2C,EAAY9qB,OACpBpI,EAAUkzB,EAAYlzB,QACtB6wB,EAAYqC,EAAYrC,UACxB4C,GAAO,EAAI1E,EAA+BrP,SAASwT,EAAazD,GAMpE,IAAIiE,EAAa1D,EAAgBpS,EAAIiT,EAAU7T,UAE/C,OAAK8S,EAAY4D,GAMGtE,EAAO1P,QAAQT,cAAcoQ,EAAasE,MAAM,EAAIzE,EAAUxP,SAAS,CACzF9B,GAAI8V,EACJtrB,MAAOA,EACPgrB,SAAUA,EACVT,SAAUhoC,KAAK6mC,UACfgC,aAAc,SAAsB/jC,GAC9B8jC,GACFA,EAAc9jC,GAGhBqiC,UAAU8B,UAAS,EAAIrE,EAAWC,WAAWkE,GAAY1W,WAE3DsW,QAAS,SAAiB7jC,GAKxB,GAJI4jC,GACFA,EAAS5jC,KAGM,IAAbA,EAAEkY,QACLsrB,EAAOxgC,MAAMpI,QACboF,EAAE+X,kBACF/X,EAAEuY,SACFvY,EAAEyY,QAAWzY,EAAE0Y,SAAY1Y,EAAEwY,UAAU,CACtCxY,EAAEsZ,iBACF,IAAI8qB,EAAgB7zB,EAEhBkxB,EAAYtd,UAAU8f,KAAgB7C,EAAU7T,SAE7B,kBAAZhd,GAAyBkxB,IAClC2C,GAAgB,GAKlB31B,OAAO41B,YAAYJ,EAAY,CAC7BtrB,MAAOA,EACPpI,QAAS6zB,IAIb,OAAO,IAERJ,IA9CmBrE,EAAO1P,QAAQT,cAAc,KAAK,EAAIiQ,EAAUxP,SAAS,CAC3E7C,KAAM6W,GACLD,KA+CA7C,EA1KqB,CA2K5BxB,EAAO1P,QAAQpsB,WAEjBs9B,EAAWmD,WAAY,EAAI7E,EAAUxP,SAAS,GAAI0Q,EAAkB,CAClEkD,QAASnE,EAAWzP,QAAQsU,KAC5BpW,GAAIuR,EAAWzP,QAAQC,OAAOsU,WAC9Bj0B,QAASmvB,EAAWzP,QAAQ8Q,KAC5BpoB,MAAO+mB,EAAWzP,QAAQwI,SAG5B,IAAIgM,EAAwB9E,EAAO1P,QAAQyU,YAAW,SAAU1hC,EAAOggC,GACrE,OAAoBrD,EAAO1P,QAAQT,cAAcwR,GAA2B,EAAIvB,EAAUxP,SAAS,CACjGiT,SAAUF,GACThgC,OAGL3K,EAAQ,GAAUosC,EAMlBpsC,EAAQ,GAJO,SAAkB81B,EAAI9wB,GACnCoR,OAAO41B,YAAY9D,EAAgBpS,EAAI1f,OAAO2Z,SAASmF,UAAWlwB,K,iCC5TpEhF,EAAQG,YAAa,EACrBH,EAAQ0nC,UAER,SAAmBhP,GACjB,IAAIxD,EAAWwD,GAAQ,IACnB7D,EAAS,GACTC,EAAO,GACPwX,EAAYpX,EAAShyB,QAAQ,MAEd,IAAfopC,IACFxX,EAAOI,EAASvM,OAAO2jB,GACvBpX,EAAWA,EAASvM,OAAO,EAAG2jB,IAGhC,IAAI9V,EAActB,EAAShyB,QAAQ,MAEd,IAAjBszB,IACF3B,EAASK,EAASvM,OAAO6N,GACzBtB,EAAWA,EAASvM,OAAO,EAAG6N,IAGhC,MAAO,CACLtB,SAAUA,EACVL,OAAmB,MAAXA,EAAiB,GAAKA,EAC9BC,KAAe,MAATA,EAAe,GAAKA,K,mCCvB9B90B,EAAQ,GAAuBA,EAAQ,QAAgB,EAEvD,IAAIusC,EAAiB,EAAQ,OAE7BvsC,EAAQ,GAAgBusC,EAAeC,cAEvC,IAAIC,EAAwB,EAAQ,OAEpCzsC,EAAQ,GAAuBysC,EAAsBC,sB,mCCTrD,IAAI5F,EAAyB,EAAQ,OAErC9mC,EAAQG,YAAa,EACrBH,EAAQwsC,cAAgBxsC,EAAQ2sC,mBAAgB,EAEhD,IAAIzF,EAA0BJ,EAAuB,EAAQ,QAEzDK,EAAkBL,EAAuB,EAAQ,QAEjD8F,EAQJ,SAAiC9pC,EAAK+pC,GAAe,IAAKA,GAAe/pC,GAAOA,EAAI3C,WAAc,OAAO2C,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE80B,QAAS90B,GAAS,IAAI4rB,EAAQoe,EAAyBD,GAAc,GAAIne,GAASA,EAAM1kB,IAAIlH,GAAQ,OAAO4rB,EAAM1oB,IAAIlD,GAAQ,IAAIiqC,EAAS,GAAQC,EAAwBpsC,OAAOmF,gBAAkBnF,OAAOqsC,yBAA0B,IAAK,IAAIvqC,KAAOI,EAAO,GAAY,YAARJ,GAAqB9B,OAAOD,UAAUgC,eAAeV,KAAKa,EAAKJ,GAAM,CAAE,IAAIwqC,EAAOF,EAAwBpsC,OAAOqsC,yBAAyBnqC,EAAKJ,GAAO,KAAUwqC,IAASA,EAAKlnC,KAAOknC,EAAKhnC,KAAQtF,OAAOmF,eAAegnC,EAAQrqC,EAAKwqC,GAAgBH,EAAOrqC,GAAOI,EAAIJ,GAAYqqC,EAAOnV,QAAU90B,EAAS4rB,GAASA,EAAMxoB,IAAIpD,EAAKiqC,GAAW,OAAOA,EAR/wBI,CAAwB,EAAQ,QAExC9F,EAAaP,EAAuB,EAAQ,QAE5CsG,EAAkB,EAAQ,OAE9B,SAASN,EAAyBD,GAAe,GAAuB,mBAAZQ,QAAwB,OAAO,KAAM,IAAIC,EAAoB,IAAID,QAAeE,EAAmB,IAAIF,QAAW,OAAQP,EAA2B,SAAkCD,GAAe,OAAOA,EAAcU,EAAmBD,IAAsBT,GAIhU,IAAIF,EAA6BC,EAAMY,cAAc,IAAIJ,EAAgBK,gBACzEztC,EAAQ2sC,cAAgBA,EACxBA,EAAce,YAAc,sBAE5B,IAAIlB,EAA6B,SAAUxD,GAGzC,SAASwD,IAGP,IAFA,IAAIrnC,EAEKu0B,EAAOl3B,UAAUlC,OAAQ+J,EAAO,IAAI5J,MAAMi5B,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/EvvB,EAAKuvB,GAAQp3B,UAAUo3B,GA0CzB,OAvCAz0B,EAAQ6jC,EAAiB/mC,KAAKW,MAAMomC,EAAkB,CAACnmC,MAAMua,OAAO/S,KAAUxH,MACxE8qC,cAAgB,IAAIP,EAAgBK,eAC1CtoC,EAAMyoC,YAAa,EACnBzoC,EAAM0oC,oBAAsB,EAE5B1oC,EAAM2oC,eAAiB,WACrB3oC,EAAM0oC,oBAAsBz3B,OAAO23B,QAE9B5oC,EAAMyoC,aACTzoC,EAAMyoC,YAAa,EACnBvN,sBAAsBl7B,EAAM6oC,YAAYzjC,MAAK,EAAI28B,EAAwBtP,SAASzyB,OAItFA,EAAM8oC,aAAe,SAAUC,EAAU/D,GACnChlC,EAAMgpC,mBAAmBhE,EAAWhlC,EAAMwF,QAC5CyL,OAAO8uB,SAAS,EAAGgJ,IAIvB/oC,EAAMipC,aAAe,SAAUtZ,EAAMqV,GACnC,IAAIkE,EAAO5qC,SAAS6qC,eAAexZ,EAAKrM,UAAU,IAE9C4lB,GAAQlpC,EAAMgpC,mBAAmBhE,EAAWhlC,EAAMwF,QACpD0jC,EAAKE,kBAITppC,EAAMgpC,mBAAqB,SAAUK,EAAiBC,GACpD,IAAIN,EAAqBhpC,EAAMwF,MAAMwjC,mBAErC,OAAKA,GAKEA,EAAmBlsC,MAAK,EAAIilC,EAAwBtP,SAASzyB,GAAQqpC,EAAiBC,IAGxFtpC,GAhDT,EAAIgiC,EAAgBvP,SAAS4U,EAAexD,GAmD5C,IAAIW,EAAS6C,EAAc7rC,UAkE3B,OAhEAgpC,EAAOqE,YAAc,WACnB,IAAItrC,EAAMG,KAAK8H,MAAMolB,SAASrtB,KAAO,KAEjCA,GACFG,KAAK8qC,cAAce,KAAK7rC,KAAK8H,MAAMolB,SAAUrtB,EAAKG,KAAKgrC,qBAGzDhrC,KAAK+qC,YAAa,GAGpBjE,EAAOU,kBAAoB,WAEzB,IAAI3G,EADJttB,OAAOpS,iBAAiB,SAAUnB,KAAKirC,gBAEvC,IAAIa,EAAuB9rC,KAAK8H,MAAMolB,SAClCrtB,EAAMisC,EAAqBjsC,IAC3BoyB,EAAO6Z,EAAqB7Z,KAE5BpyB,IACFghC,EAAiB7gC,KAAK8qC,cAAcxf,KAAKtrB,KAAK8H,MAAMolB,SAAUrtB,IAG5DghC,EACF7gC,KAAKorC,aAAavK,OAAgB/6B,GACzBmsB,GACTjyB,KAAKurC,aAAaxiB,UAAUkJ,QAAOnsB,IAIvCghC,EAAOW,qBAAuB,WAC5Bl0B,OAAOnS,oBAAoB,SAAUpB,KAAKirC,iBAG5CnE,EAAOO,mBAAqB,SAA4BC,GACtD,IAGIzG,EAHAkL,EAAwB/rC,KAAK8H,MAAMolB,SACnC+E,EAAO8Z,EAAsB9Z,KAC7BpyB,EAAMksC,EAAsBlsC,IAG5BA,IACFghC,EAAiB7gC,KAAK8qC,cAAcxf,KAAKtrB,KAAK8H,MAAMolB,SAAUrtB,IAY5DoyB,EACFjyB,KAAKurC,aAAaxiB,UAAUkJ,GAAOqV,GAEnCtnC,KAAKorC,aAAavK,EAAgByG,IAItCR,EAAOuB,OAAS,WACd,OAAoB0B,EAAMzV,cAAcwV,EAAc1gC,SAAU,CAC9DsB,MAAO1K,KAAK8qC,eACX9qC,KAAK8H,MAAMkkC,WAGTrC,EAtHwB,CAuH/BI,EAAMphC,WAERxL,EAAQwsC,cAAgBA,EACxBA,EAAcP,UAAY,CACxBkC,mBAAoB9G,EAAWzP,QAAQsU,KACvC2C,SAAUxH,EAAWzP,QAAQkX,QAAQ3C,WACrCpc,SAAUsX,EAAWzP,QAAQwI,OAAO+L,a,iCCpJtCnsC,EAAQG,YAAa,EACrBH,EAAQytC,oBAAiB,EACzB,IACIsB,EAA6B,gCAE7BtB,EAA8B,WAChC,SAASA,KAET,IAAI9D,EAAS8D,EAAe9sC,UA8C5B,OA5CAgpC,EAAOxb,KAAO,SAAc4B,EAAUrtB,GACpC,IAAIssC,EAAWnsC,KAAKosC,YAAYlf,EAAUrtB,GAE1C,IACE,IAAI6K,EAAQ6I,OAAO84B,eAAeC,QAAQH,GAC1C,OAAOzhC,EAAQkE,KAAK6T,MAAM/X,GAAS,EACnC,MAAO5F,GAKP,OAAIyO,QAAUA,OAAO24B,IAA+B34B,OAAO24B,GAA4BC,GAC9E54B,OAAO24B,GAA4BC,GAGrC,IAIXrF,EAAO+E,KAAO,SAAc3e,EAAUrtB,EAAK6K,GACzC,IAAIyhC,EAAWnsC,KAAKosC,YAAYlf,EAAUrtB,GACtC0sC,EAAc39B,KAAKC,UAAUnE,GAEjC,IACE6I,OAAO84B,eAAeG,QAAQL,EAAUI,GACxC,MAAOznC,GACHyO,QAAUA,OAAO24B,KAGnB34B,OAAO24B,GAA8B,IAFrC34B,OAAO24B,GAA4BC,GAAYv9B,KAAK6T,MAAM8pB,KAYhEzF,EAAOsF,YAAc,SAAqBlf,EAAUrtB,GAClD,IAAI4sC,EAhDe,YAgDwBvf,EAASmF,SACpD,OAAOxyB,MAAAA,EAA6C4sC,EAAeA,EAAe,IAAM5sC,GAGnF+qC,EAjDyB,GAoDlCztC,EAAQytC,eAAiBA,G,mCCzDzBztC,EAAQG,YAAa,EACrBH,EAAQ0sC,qBAQR,SAA8BnlC,GAC5B,IAAIwoB,GAAW,EAAIwX,EAAagI,eAC5BjvB,GAAQ,EAAIgnB,EAAOkI,YAAYjD,EAAeI,eAC9ChC,GAAM,EAAIrD,EAAOmI,QAAQ,MAO7B,OANA,EAAInI,EAAOoI,kBAAiB,WAC1B,GAAI/E,EAAIvC,QAAS,CACf,IAAI8F,EAAW5tB,EAAM6N,KAAK4B,EAAUxoB,GACpCojC,EAAIvC,QAAQlD,SAAS,EAAGgJ,GAAY,MAErC,CAACne,EAASrtB,MACN,CACLioC,IAAKA,EACLgF,SAAU,WACJhF,EAAIvC,SACN9nB,EAAMouB,KAAK3e,EAAUxoB,EAAYojC,EAAIvC,QAAQ1D,cApBrD,IAAI6H,EAAiB,EAAQ,OAEzBjF,EAAS,EAAQ,OAEjBC,EAAe,EAAQ,Q,sBCN3BvnC,EAAQ4F,WAAa,CACnB,4CAA6C,kBAAM,kJACnD,uDAAwD,kBAAM,yIAC9D,wCAAyC,kBAAM,4FAC/C,gDAAiD,kBAAM,gIACvD,6DAA8D,kBAAM,4FACpE,0DAA2D,kBAAM,yIACjE,kDAAmD,kBAAM,2FACzD,gCAAiC,kBAAM,wDACvC,uCAAwC,kBAAM,yIAC9C,uCAAwC,kBAAM,yIAC9C,wCAAyC,kBAAM,+HAC/C,kCAAmC,kBAAM,gIACzC,iCAAkC,kBAAM,kC,sBChB1C7F,EAAOC,QAAU,CAAC,CACZ4vC,OAAQC,EAAQ,OAChB7qC,QAAS,CAAC,QAAU,KACpB,CACA4qC,OAAQC,EAAQ,OAChB7qC,QAAS,CAAC,QAAU,GAAG,KAAO,yBAAyB,WAAa,UAAU,UAAY,IAAI,iBAAmB,UAAU,YAAc,UAAU,QAAU,aAAa,KAAO,yBAAyB,QAAS,EAAK,qBAAsB,EAAK,mBAAqB,QAAQ,YAAc,YAAY,iBAAkB,EAAK,YAAc,qCAC/U,CACA4qC,OAAQC,EAAQ,MAChB7qC,QAAS,CAAC,QAAU,KACpB,CACA4qC,OAAQC,EAAQ,OAChB7qC,QAAS,CAAC,QAAU,GAAG,IAAM,0CAA0C,KAAO,CAAC,KAAO,CAAC,MAAQ,KAAM,UAAY,4DAA4D,SAAU,IACvL,CACA4qC,OAAQC,EAAQ,OAChB7qC,QAAS,CAAC,QAAU,KACpB,CACA4qC,OAAQC,EAAQ,OAChB7qC,QAAS,CAAC,QAAU,KACpB,CACA4qC,OAAQC,EAAQ,OAChB7qC,QAAS,CAAC,QAAU,GAAG,YAAc,CAAC,iBACtC,CACA4qC,OAAQC,EAAQ,MAChB7qC,QAAS,CAAC,QAAU,O,sBCvB1B,IAAM8qC,EAAUD,EAAQ,OACxB,EAIIA,EAAAA,OAAAA,GAHFE,EADF,EACEA,2BACAC,EAFF,EAEEA,SACAC,EAHF,EAGEA,aAGFjwC,EAAQ,EAAY,SAACkwC,EAAK7lC,EAAW8lC,EAAeC,QAAiB,IAA3C/lC,IAAAA,EAAO,IAY/B,IAAIgmC,EAAUP,EAAQjpC,KAAI,SAAA+oC,GACxB,GAAKA,EAAOA,OAAOM,GAAnB,CAIA7lC,EAAK0lC,2BAA6BA,EAClC1lC,EAAK2lC,SAAWA,EAChB3lC,EAAK4lC,aAAeA,EAEpB,IAAM5J,EAASuJ,EAAOA,OAAOM,GAAK7lC,EAAMulC,EAAO5qC,SAI/C,OAHIqhC,GAAU+J,IACZ/lC,EAAO+lC,EAAa,CAAE/lC,KAAAA,EAAMg8B,OAAAA,EAAQuJ,OAAAA,KAE/BvJ,MAMT,OAFAgK,EAAUA,EAAQllC,QAAO,SAAAk7B,GAAM,YAAI,IAAOA,MAE9B/lC,OAAS,EACZ+vC,EACEF,EACF,CAACA,GAED,IAIXnwC,EAAQ,EAAiB,SAACkwC,EAAK7lC,EAAM8lC,GAAZ,OACvBL,EAAQzW,QACN,SAACiX,EAAUljC,GAAX,OACEA,EAAKwiC,OAAOM,GACRI,EAAS7pC,MAAK,kBAAM2G,EAAKwiC,OAAOM,GAAK7lC,EAAM+C,EAAKpI,YAChDsrC,IACN/pC,QAAQC,a,mECSZ,IC3DA,EDgBA,SAAcG,GAGb,OAFAA,EAAMA,GAAO/F,OAAOC,OAAO,MAEpB,CAQNiiC,GAAI,SAAY74B,EAAcsmC,IAC5B5pC,EAAIsD,KAAUtD,EAAIsD,GAAQ,KAAK5F,KAAKksC,IAUtCtN,IAAK,SAAah5B,EAAcsmC,GAC3B5pC,EAAIsD,IACPtD,EAAIsD,GAAM2X,OAAOjb,EAAIsD,GAAM/G,QAAQqtC,KAAa,EAAG,IAYrDpN,KAAM,SAAcl5B,EAAcumC,IAChC7pC,EAAIsD,IAAS,IAAI/H,QAAQ2E,KAAI,SAAU0pC,GAAWA,EAAQC,OAC1D7pC,EAAI,MAAQ,IAAIzE,QAAQ2E,KAAI,SAAU0pC,GAAWA,EAAQtmC,EAAMumC,QCvDnE,I,qKCFA,WAAe9X,GACb,YAAa/vB,IAAT+vB,EACKA,EAED,MAAJA,EACI,IAEJ,MAAAA,EAAKnkB,OAAOmkB,EAAKp4B,OAAS,GACrBo4B,EAAKx2B,MAAM,GAAI,GAEjBw2B,G,aCLT,IAAM+X,IAAY,EAClB,GAAIC,EAEEC,SAAAA,GAAe,IAAAC,EAAe,mBACjB/kB,GAWjB,OATwBglB,EAAAA,EAAAA,GACtB3b,EACArJ,mBAAmBilB,KAGlB5zB,MALqB,KAKV,GAEXA,MAPqB,KAOV,IAKhB,SAASmrB,EAAW3P,GAElB,OACEA,EAAKjB,WAAL,MACAiB,EAAKjB,WAAL,aACAiB,EAAKjB,WAAL,WAEOiB,EAIF,IAAItD,IACTsD,EACAtiB,OAAO2Z,SAASgF,MAAQ3e,OAAO2Z,SAASgF,KAAKkT,SAArB,cACxB/S,SAOD,IAAH,EACa6b,SAAAA,GAAAA,EAAyB,GAWtC,EACaC,SAAAA,GAAgBJ,IAAAA,EACrBK,EAAAA,GAA4BL,EAElC,EAAe,KAAGF,SAAW7pC,GAAI,QAAyB,WAAhBqqC,CAAAA,KAANxY,EAAMwY,UAEtCxY,aACAyY,MAAczY,GAEjB,EAED,EAAMA,MAAOlB,EAAAA,GAAgByZ,OAAAA,EAEzBvY,EACK0Y,EAAAA,MAAiB,cAAYD,MAcxC,EACaE,SAAAA,GAAkBT,IAAAA,EACvBK,EAAAA,GAA4BL,EAElC,EAAe,KAAGF,SAAW7pC,GAAI,QAAG6xB,KAAsB,MAAhBwY,CAAAA,KAANxY,EAAMwY,UAEtCxY,aACAyY,MAAczY,GAEjB,EAED,EAAMA,MAAOlB,EAAAA,GAAgByZ,OAAAA,EAEzBvY,EACF,OAAYF,I,EAcT,SAAM8Y,EAAWV,GAAAA,IAAAA,EAChBK,EAAkBN,EAAY,IAAYC,GAAAA,EAChD,IAAIH,GAAcQ,OAAAA,EAChB,IAAOR,GAAcQ,IAAAA,GAGvB,EAAMM,EAAWC,GAAAA,GAAwBZ,GAAAA,EACzC,OAAIW,EACF,EAAOD,QAASC,IAASE,EAG3B,EAAgBT,GAMhB,OAN8BC,IAE1B,EAAJ,EACES,IAAsBd,EAAtB,IAGFH,EAAcQ,GAAiBS,GAWjC,EACO,SAAkBd,GAAAA,IACyBA,EAA1CK,EAAkBN,EAAY,IAOP,MAJzBe,gBADYT,IACH,EAAb,KACES,EAAA,EAGUN,K,miBCtIWO,GAAAA,QAAAA,EAED,EAAG/E,cAAAA,IAAAA,SAAoB,EAEtCgF,GAAAA,IAAAA,EAA0BC,EAAAA,gBAAAA,EAAAA,EAAAA,KAAiBh6B,EAAuB,UAAjB8hB,EAAOuR,OAAU,EACzE,EAAM4G,EAAAA,KAAYj6B,EAEdg6B,IAAAA,EAA0BA,GAAAA,KAAgBlY,OAE9C,EACE,gBAAC,iBAAD,EACGmY,IAAoBA,GACpB,EAAc,yDAKfC,SAAAA,GAAAA,IAAc,EAAApnC,EACVkN,KAAR,IAAc8hB,MAA4BhvB,EAA5BgvB,EAAOuR,OAAqBvgC,EAArBugC,EAAQ2D,SAAalkC,OAE1C,EACE,gBAAC,eAAmB,SAApB,GACGknC,OAAe,EACd,gBAAC,QAAD,MACM,EACJ,OAAOlY,GACP,EAAQuR,gBACR2G,QAJF,EAWFG,SAAAA,GAAAA,IAAiB,EAAS,EAErBpF,WAIL,MAIJ,EAAgBA,WAAAA,GAKhB,GAAIlkB,MAAMhE,OAAOiV,IACf,MAAM,IAAI9sB,MAAJ,8KAIgB8sB,EAJhB,SAQR,aAAIsY,EAAQtY,UAAZ,OAAI,EAAgB9hB,KAClB,OAAOo6B,EAAQtY,GAAO9hB,KAEtB,MAAM,IAAIhL,MACR,yMAcN,SAASqlC,IACP,MAAM,IAAIrlC,MACR,gV,sNCpCEslC,EAzDU,SAAUC,GACxB,GAAI,oBAAO3uC,SACT,OAAO,EAET,IAAM4uC,EAAW5uC,SAAS0zB,cAAT,QACjB,IACE,GAAIkb,EAASC,SAAW,mBAAOD,EAASC,QAAQC,SAC9C,OAAOF,EAASC,QAAQC,SAASH,GAEnC,MAAOj3B,GACP,OAAO,EAET,OAAO,EA6CyBq3B,CAAQ,YA1Cb,SAAUC,EAAKztC,GAC1C,OAAO,IAAIuB,SAAQ,SAACC,EAASuO,GAC3B,GAAI,oBAAOtR,SAAX,CAKA,IAAMivC,EAAOjvC,SAAS0zB,cAAT,QACbub,EAAKC,aAAL,kBACAD,EAAKC,aAAL,OAA0BF,GAE1B7xC,OAAOqC,KAAK+B,GAASa,SAAQ,SAAAnD,GAC3BgwC,EAAKC,aAAajwC,EAAKsC,EAAQtC,OAGjCgwC,EAAKvlB,OAAS3mB,EACdksC,EAAKtlB,QAAUrY,GAGbtR,SAASmvC,qBAAT,QAAsC,IACtCnvC,SAASovC,kBAAT,UAAqC,GAAGC,YAC5BC,YAAYL,QAlBxB39B,QAsBsB,SAAU09B,GACpC,OAAO,IAAIlsC,SAAQ,SAACC,EAASuO,GAC3B,IAAMi+B,EAAM,IAAIzrB,eAChByrB,EAAI1kB,KAAJ,MAAgBmkB,GAAK,GAErBO,EAAI7lB,OAAS,WACQ,MAAf6lB,EAAItlB,OACNlnB,IAEAuO,KAIJi+B,EAAIzkB,KAAK,UAQP0kB,EAAa,GAkBnB,EAhBiB,SAAUR,EAAKztC,GAC9B,OAAO,IAAIuB,SAAQ,SAAAC,GACbysC,EAAWR,GACbjsC,IAIF2rC,EAA0BM,EAAKztC,GAC5ByB,MAAK,WACJD,IACAysC,EAAWR,IAAO,KAEnBx9B,OAAM,mB,qBCrEb,EACai+B,CAIXrmC,MAAM,QAINsmC,QAAQ,WAGJC,EAAgB,SAAA53B,GAAC,OAAKA,GAAKA,EAAEoc,SAAYpc,GAQzC63B,EAAoB,SAAA3a,GAExB,qBADsB,MAAJA,EAAA,QAPY,SAAAtpB,GAG9B,OAFAA,EAAI,MAAAA,EAAE,GAAaA,EAAElN,MAAM,GAAKkN,GAC1B64B,SAAF,KAAkB74B,EAAElN,MAAM,GAAI,GAAKkN,EAKIkkC,CAAwB5a,IACnE,mBAGF,SAAS6a,EAAQd,EAAK9hC,GACpB,YADoC,IAAhBA,IAAAA,EAAgB,OAC7B,IAAIpK,SAAQ,SAACC,EAASuO,GAC3B,IAAMi+B,EAAM,IAAIzrB,eAChByrB,EAAI1kB,KAAK3d,EAAQ8hC,GAAK,GACtBO,EAAIjlB,mBAAqB,WACD,GAAlBilB,EAAIjvC,YACNyC,EAAQwsC,IAGZA,EAAIzkB,KAAK,SAIb,IAqfI9hB,EAteE+mC,EAAkB,SAACC,EAAU3tC,QAAqB,IAArBA,IAAAA,EAAY,MAC7C,IAAM4tC,EAAO,CACXC,mBAAoBF,EAASE,mBAC7Bjb,KAAM+a,EAAS/a,KACfkb,uBAAwBH,EAASG,uBACjC1C,UAAWuC,EAASvC,UACpB2C,kBAAmBJ,EAASI,mBAG9B,MAAO,CACL/tC,UAAAA,EACAguC,KAAML,EAASpN,OACfqN,KAAAA,IAISK,EAAb,WACE,WAAYC,EAAetD,GAAa,KA0BxCuD,wBAA0B,IAAIzrC,IAV5B3F,KAAKqxC,OAAS,IAAI1rC,IAClB3F,KAAKsxC,WAAa,IAAI3rC,IACtB3F,KAAKuxC,cAAgB,GACrBvxC,KAAKwxC,WAAa,IAAI7rC,IACtB3F,KAAKyxC,kBAAoB,IAAI9lC,IAC7B3L,KAAK0xC,kBAAoB,IAAI/lC,IAC7B3L,KAAKmxC,cAAgBA,GACrBjD,EAAAA,EAAAA,IAAcL,GAxBlB,2BA6BE8D,YAAA,SAAY/B,GAAM,IAAD,OACXgC,EAAkB5xC,KAAKoxC,wBAAwBjuC,IAAIysC,GAQvD,OANKgC,IACHA,EAAkBlB,EAAQd,EAAD,OACzB5vC,KAAKoxC,wBAAwB/tC,IAAIusC,EAAKgC,IAIjCA,EACJhuC,MAAK,SAAAonB,GAEJ,OADA,EAAKomB,wBAAwB3tC,OAAOmsC,GAC7B5kB,KAER5Y,OAAM,SAAAkG,GAEL,MADA,EAAK84B,wBAAwB3tC,OAAOmsC,GAC9Bt3B,MA7Cd,EAiDEu5B,aAAA,SAAaC,GACX9xC,KAAK8xC,UAAYA,EACjB9xC,KAAK+xC,iBAAmBD,EAAU,0BAA0BE,MAAK,SAAArlC,GAAC,OAAIA,MAnD1E,EAsDEslC,kBAAA,SAAkBC,GAAU,IAAD,OACjBC,EAA0BD,EAA1BC,SAAR,EAAkCD,EAAhBE,QAAAA,OAAlB,MAA4B,EAA5B,EACMxC,EAAMY,EAAkB2B,GAC9B,OAAOnyC,KAAK2xC,YAAY/B,GAAKhsC,MAAK,SAAAusC,GAChC,IAAQtlB,EAAyBslB,EAAzBtlB,OAAQE,EAAiBolB,EAAjBplB,aAGhB,GAAe,MAAXF,EACF,IACE,IAAMwnB,EAAczjC,KAAK6T,MAAMsI,GAC/B,QAAyBjlB,IAArBusC,EAAYxc,KACd,MAAM,IAAI7rB,MAAJ,iCAGR,OAAOjM,OAAO0B,OAAOyyC,EAAS,CAC5BrnB,OAAQwlB,EAAmBC,QAC3Bz9B,QAASw/B,IAEX,MAAO/5B,IAMX,OAAe,MAAXuS,GAA6B,MAAXA,EAER,cAARsnB,EACKp0C,OAAO0B,OAAOyyC,EAAS,CAC5BrnB,OAAQwlB,EAAmBrmC,QAMxB,EAAKioC,kBACVl0C,OAAO0B,OAAOyyC,EAAS,CAAEC,SAAS,YAAcG,UAAU,KAK/C,MAAXznB,EACK9sB,OAAO0B,OAAOyyC,EAAS,CAC5BrnB,OAAQwlB,EAAmBrmC,QAK3BooC,EAAU,EACL,EAAKH,kBACVl0C,OAAO0B,OAAOyyC,EAAS,CAAEE,QAASA,EAAU,KAKzCr0C,OAAO0B,OAAOyyC,EAAS,CAC5BrnB,OAAQwlB,EAAmBrmC,YA7GnC,EAkHEuoC,iBAAA,SAAiBC,GAAU,IAAD,OAClBL,GAAW1D,EAAAA,EAAAA,IAAS+D,GAC1B,GAAIxyC,KAAKwxC,WAAWrqC,IAAIgrC,GAAW,CACjC,IAAMvB,EAAW5wC,KAAKwxC,WAAWruC,IAAIgvC,GAEnC,OAAOzuC,QAAQC,QAAQitC,GAI3B,OAAO5wC,KAAKiyC,kBAAkB,CAAEE,SAAAA,IAAYvuC,MAAK,SAAAgtC,GAG/C,OAFA,EAAKY,WAAWnuC,IAAI8uC,EAAUvB,GAEvBA,MA9Hb,EAkIEzC,cAAA,SAAcqE,GACZ,OAAOrE,EAAAA,EAAAA,IAAcqE,IAnIzB,EAuIErF,SAAA,SAASqF,GAAU,IAAD,OACVL,GAAW1D,EAAAA,EAAAA,IAAS+D,GAC1B,GAAIxyC,KAAKqxC,OAAOlqC,IAAIgrC,GAAW,CAC7B,IAAMtB,EAAO7wC,KAAKqxC,OAAOluC,IAAIgvC,GAE3B,OAAItB,EAAKhmC,MACA,CACLA,MAAOgmC,EAAKhmC,MACZggB,OAAQgmB,EAAKhmB,QAIVnnB,QAAQC,QAAQktC,EAAKh+B,SAIhC,GAAI7S,KAAKsxC,WAAWnqC,IAAIgrC,GACtB,OAAOnyC,KAAKsxC,WAAWnuC,IAAIgvC,GAG7B,IAAMP,EAAkBluC,QAAQI,IAAI,CAClC9D,KAAKyyC,cACLzyC,KAAKuyC,iBAAiBJ,KACrBvuC,MAAK,SAAA8uC,GACN,IAAMlP,EAASkP,EAAQ,GACvB,GAAIlP,EAAO3Y,SAAWwlB,EAAmBrmC,MACvC,MAAO,CACL6gB,OAAQwlB,EAAmBrmC,OAI/B,IAAI4mC,EAAWpN,EAAO3wB,QACtB,EAAuD+9B,EAA/CE,EAAR,EAAQA,mBAAR,IAA4BE,kBAAAA,OAA5B,MAAgD,GAAhD,EAEM2B,EAAc,GAEdC,EAAwB,EAAKzB,cAAcL,GAAoBltC,MACnE,SAAAX,GAEE,IAAI4vC,EAiBJ,OAlBAF,EAAYG,UAAY,IAAIllC,MAEvB3K,GAAaA,aAAqB+G,OACrC2oC,EAAY9nB,OAASwlB,EAAmBrmC,MACxC2oC,EAAY9nC,MAAQ5H,IAEpB0vC,EAAY9nB,OAASwlB,EAAmBC,SAChB,IAApB9M,EAAO8O,WACTK,EAAYL,UAAW,GAEzB1B,EAAW7yC,OAAO0B,OAAOmxC,EAAU,CACjCG,uBAAwB2B,EAAQ,GAC5BA,EAAQ,GAAG3B,uBADS,KAI1B8B,EAAgBlC,EAAgBC,EAAU3tC,IAGrC4vC,KAILE,EAA0BrvC,QAAQI,IACtCktC,EAAkBhtC,KAAI,SAAAgvC,GAEpB,GAAI,EAAKzB,cAAcyB,GAAkB,CACvC,IAAMX,EAAc,EAAKd,cAAcyB,GACvC,MAAO,CAAEA,gBAAAA,EAAiBX,YAAAA,GAG5B,OAAO,EAAKV,YAAL,mBACgCqB,EADhC,SAGJpvC,MAAK,SAAAusC,GACJ,IAAMkC,EAAczjC,KAAK6T,MAAM0tB,EAAIplB,cACnC,MAAO,CAAEioB,gBAAAA,EAAiBX,YAAAA,MAE3BjgC,OAAM,WACL,MAAM,IAAIpI,MAAJ,sCACmDgpC,EADnD,iBAKZpvC,MAAK,SAAAqvC,GACL,IAAMC,EAAwB,GAO9B,OALAD,EAAmBjwC,SAAQ,YAAuC,IAApCgwC,EAAmC,EAAnCA,gBAAiBX,EAAkB,EAAlBA,YAC7Ca,EAAsBF,GAAmBX,EACzC,EAAKd,cAAcyB,GAAmBX,KAGjCa,KAGT,OACExvC,QAAQI,IAAI,CAAC8uC,EAAuBG,IACjCnvC,MAAK,YAA0C,IAC1CiP,EADEggC,EAAuC,KAAxBI,EAAwB,KAa7C,OAXIJ,IACFhgC,EAAO,iBAAQggC,EAAR,CAAuBI,mBAAAA,IAC9BN,EAAY9/B,QAAUA,EACtBsgC,EAAAA,EAAAA,KAAA,0BAAwC,CACtCtC,KAAMh+B,EACNggC,cAAehgC,KAInB,EAAKw+B,OAAOhuC,IAAI8uC,EAAUQ,GAEtBA,EAAY9nC,MACP,CACLA,MAAO8nC,EAAY9nC,MACnBggB,OAAQ8nB,EAAY9nB,QAIjBhY,KAGRT,OAAM,SAAAkG,GACL,MAAO,CACLzN,MAAOyN,EACPuS,OAAQwlB,EAAmBrmC,aAiBrC,OAXA4nC,EACGhuC,MAAK,WACJ,EAAK0tC,WAAW7tC,OAAO0uC,MAExB//B,OAAM,SAAAvH,GAEL,MADA,EAAKymC,WAAW7tC,OAAO0uC,GACjBtnC,KAGV7K,KAAKsxC,WAAWjuC,IAAI8uC,EAAUP,GAEvBA,GAhRX,EAoRExE,aAAA,SAAaoF,EAASrwC,QAAc,IAAdA,IAAAA,EAAU,IAC9B,IAAMgwC,GAAW1D,EAAAA,EAAAA,IAAS+D,GAC1B,GAAIxyC,KAAKqxC,OAAOlqC,IAAIgrC,GAAW,CAAC,IAAD,EACvBvB,EAAW5wC,KAAKqxC,OAAOluC,IAAIgvC,GAEjC,GAAIvB,EAAS/9B,QACX,OAAO+9B,EAAS/9B,QAGlB,aAAI1Q,SAAJ,OAAI,EAASixC,iBACX,MAAO,CACLvoC,MAAO+lC,EAAS/lC,MAChBggB,OAAQ+lB,EAAS/lB,UAhS3B,EAuSEwoB,eAAA,SAAelB,GAEb,QAxUkC,WACpC,GACE,eAAgB5xC,gBAChB,IAAOA,UAAU+yC,WACjB,CACA,IAAK/yC,UAAU+yC,WAAWC,eAArB,IAA0C/+B,SAA1C,MACH,OAAO,EAET,GAAIjU,UAAU+yC,WAAWE,SACvB,OAAO,EAGX,OAAO,EA4TAC,KAKDzzC,KAAKqxC,OAAOlqC,IAAIgrC,IA9SxB,EAqTEuB,SAAA,SAASvB,GAAW,IAAD,OACjB,IAAKnyC,KAAKqzC,eAAelB,GACvB,OAAO,EAWT,GANKnyC,KAAKyxC,kBAAkBtqC,IAAIgrC,KAC9BnyC,KAAK8xC,UAAL,qBAAqC,CAAEzf,SAAU8f,IACjDnyC,KAAKyxC,kBAAkB7lC,IAAIumC,IAIzBnyC,KAAK+xC,iBACP,OAAO,EAGT,IAAM4B,GAAWlF,EAAAA,EAAAA,IAAS0D,GAU1B,OAPAnyC,KAAK4zC,WAAWD,GAAU/vC,MAAK,WACxB,EAAK8tC,kBAAkBvqC,IAAIgrC,KAC9B,EAAKL,UAAL,yBAAyC,CAAEzf,SAAU8f,IACrD,EAAKT,kBAAkB9lC,IAAIumC,QAIxB,GAhVX,EAmVEyB,WAAA,SAAWzB,GAAW,IAAD,OACb0B,EAAcrD,EAAkB2B,GACtC,OAAO2B,EAAeD,EAAa,CACjCE,YAAY,YACZC,GAAG,UACFpwC,MAAK,kBAGN,EAAK2uC,iBAAiBJ,OA3V5B,EA+VElJ,SAAA,SAASuJ,GACPxyC,KAAKmtC,SAASqF,IAhWlB,EAmWEtF,2BAAA,SAA2BsF,GACzB,IAAML,GAAW1D,EAAAA,EAAAA,IAAS+D,GACpB3B,EAAO7wC,KAAKwxC,WAAWruC,IAAIgvC,GACjC,GAAItB,EAAM,CACR,IAAMgC,EAAgBlC,EAAgBE,EAAKh+B,SAE3C,MAAM,GAAN,eACKohC,EAAoBpB,EAAchC,KAAKC,qBAD5C,CAEEN,EAAkB2B,KAGpB,OAAO,MA9Wb,EAkXE+B,eAAA,SAAe1B,GACb,IAAML,GAAW1D,EAAAA,EAAAA,IAAS+D,GACpB3B,EAAO7wC,KAAKqxC,OAAOluC,IAAIgvC,GAC7B,OAAQtB,GAAQA,EAAKyB,UArXzB,EAwXEG,YAAA,SAAYL,GAAc,IAAD,OACvB,YADuB,IAAbA,IAAAA,EAAU,GACbpyC,KAAK2xC,YAAL,4BAA+D/tC,MACpE,SAAAusC,GACE,IAEIgE,EAFItpB,EAAyBslB,EAAzBtlB,OAAQE,EAAiBolB,EAAjBplB,aAIhB,GAAe,MAAXF,GAAkBunB,EAAU,EAE9B,OAAO,EAAKK,YAAYL,EAAU,GAIpC,GAAe,MAAXvnB,EACF,IACE,IAAMwnB,EAAczjC,KAAK6T,MAAMsI,GAC/B,QAA2CjlB,IAAvCusC,EAAYtB,uBACd,MAAM,IAAI/mC,MAAJ,iCAGRmqC,EAAU9B,EACV,MAAO/5B,IAKX,OAAO67B,MAlZf,KAwZMF,EAAsB,SAAAnD,GAAkB,OAC3Cv9B,OAAO6gC,gBAAgBtD,IAAuB,IAAI9sC,KACjD,SAAAqwC,GAAK,MAAIC,GAAkBD,MAGlBE,EAAb,YACE,WAAYC,EAAe3G,GAAY,OAgBrC,aAfsB,SAAA4G,GACpB,IAAKD,EAAczxC,WAAW0xC,GAC5B,MAAM,IAAIzqC,MAAJ,8DAC0DyqC,GAIlE,OACED,EAAczxC,WAAW0xC,KACtB7wC,KAAK2sC,GAELn+B,OAAM,SAAAkG,GAAG,OAAIA,OAICu1B,IAhBgB,MADzC,uCAoBE+F,WAAA,SAAWzB,GACT,OAAO,YAAMyB,WAAN,UAAiBzB,GAAUvuC,MAAK,SAAA4/B,GACrC,GAAIA,EAAO3Y,SAAWwlB,EAAmBC,QACvC,OAAO5sC,QAAQC,UAEjB,IAAMitC,EAAWpN,EAAO3wB,QAClB4hC,EAAY7D,EAASE,mBACrB4D,EAAgBT,EAAoBQ,GAC1C,OAAO/wC,QAAQI,IAAI4wC,EAAc1wC,IAAI8vC,IAAiBlwC,MAAK,kBAAMgtC,SA5BvE,EAgCE2B,iBAAA,SAAiBC,GACf,OAAO,YAAMD,iBAAN,UAAuBC,GAAS5uC,MAAK,SAAAoR,GAC1C,OAAIA,EAAKs9B,SAGA5B,EAAQ8B,EAAD,QAAkB5uC,MAAK,SAAAusC,GACnC,OAAmB,MAAfA,EAAItlB,OAIC,CACLA,OAAQwlB,EAAmBrmC,OAMxBgL,KAGJA,MApDb,GAAgCk8B,GAyDhC,EAEO,SAAkByD,GAAZC,EAAYD,GACZA,EAGAE,CAAAA,QAAAA,SACFrC,GAAA,OAAAA,EAAO,SAAI5oC,IAGpBsjC,2BAA4B,SAAAsF,GAAO,OACjC5oC,EAASsjC,2BAA2BsF,IACtCrF,SAAU,SAAAqF,GAAO,OAAI5oC,EAASujC,SAASqF,IAEvCpF,aAAc,SAACoF,EAASrwC,GAAV,gBAAUA,IAAAA,EAAU,IAChCyH,EAASwjC,aAAaoF,EAASrwC,IACjCuxC,SAAU,SAAAlB,GAAO,OAAI5oC,EAAS8pC,SAASlB,IACvC0B,eAAgB,SAAA1B,GAAO,OAAI5oC,EAASsqC,eAAe1B,IACnDvJ,SAAU,SAAAuJ,GAAO,OAAI5oC,EAASq/B,SAASuJ,IACvCC,YAAa,kBAAM7oC,EAAS6oC,gBAG9B,IAEO,SAASqC,IACd,OAAIlrC,EACKA,EAAS2nC,cAET,K,gFCvjBLwD,E,6FACJ1M,OAAA,WACE,IAAMvgC,EAAK,iBACN9H,KAAK8H,MADC,CAET6tB,OAAO,OAAD,WACD6Y,EAAAA,EAAAA,IAAgBxuC,KAAK8H,MAAMolB,SAASmF,UACpCryB,KAAK8H,MAAM+qC,cAAc5B,KAAK+D,YAAYC,YAI3CC,GAAc5gB,EAAAA,EAAAA,eAAct0B,KAAK8H,MAAM+qC,cAAc5vC,UAA1B,iBAC5B6E,EAD4B,CAE/BjI,IAAKG,KAAK8H,MAAM+tB,MAAQ71B,KAAK8H,MAAM+qC,cAAchC,KAAKhb,QAYxD,OAToBic,EAAAA,EAAAA,GAAU,kBAE5B,CAAE7F,QAASiJ,EAAaptC,MAAAA,GACxBotC,GACA,YACE,MAAO,CAAEjJ,QADK,EAAbzI,OACyB17B,MAAAA,MAE5B2vB,O,GAtBqBsS,EAAAA,WAmC3B,O,2KCvCaoL,CAAAA,GAAAA,mBACT,gBACFzO,WACU,YACRnF,EAAAA,OACA6T,EAAK,QACL9T,EAAQ,SACD,SACP+T,KAAQ,mBACJ,WAPC,SAQLC,OAAU,eAGZ,0BACA,Q,wFCLF,EAASC,SAAcljB,GACJsc,IAAAA,EAAAA,SAAwBtc,EAErCqc,GACFn7B,EAAkBm7B,EAASE,YAC3B,EAAO,EAML4G,GAAAA,mBAAAA,CAAAA,SAAAA,EAAoBtoB,aAAUuoB,KAC7BF,EAAuBljB,SAC1Byf,EAAAA,GAAS,IAAuB5kB,YAAAA,EAAAA,EAIpC,GAAMwoB,gBAAgB,UAAhBA,EAAAA,aAA2BD,KACZvoB,EACjB4kB,SAAAA,EAAAA,GAcF,QAdW,IAATA,IAAS,EAAoB5kB,IAc3B,iBAAO+F,EAAX,CAKA,IAAMZ,GAAawS,EAAAA,EAAAA,IAAU5R,GAAvBZ,SACAqc,GAAWC,EAAAA,EAAAA,GAAwBtc,GAWzC,GAPIqc,IACFzb,EAAKyb,EAASE,OACdvc,GAAWwS,EAAAA,EAAAA,IAAU5R,GAAIZ,UAKvB9e,OAAOoiC,aACTpiC,OAAO2Z,SAAWmF,MADpB,CAOA,IAAMujB,EAAYr0C,YAAW,WAC3B4xC,EAAAA,EAAAA,KAAA,6BAA2C,CAAE9gB,SAAAA,KAC7Cyf,EAAAA,EAAAA,GAAU,uBAAwB,CAChC5kB,SAAU3Z,OAAO2Z,aAElB,KAEH4hB,EAAAA,GAAAA,SAAgBzc,GAAUzuB,MAAK,SAAAivC,GAO7B,IAAKA,GAAiBA,EAAchoB,SAAWwlB,EAAAA,GAAAA,MAI7C,OAHA98B,OAAOif,QAAQa,aAAa,GAA5B,GAAoCnG,SAASgF,MAC7C3e,OAAO2Z,SAAWmF,OAClB1Q,aAAai0B,GAM8B/C,GAEzCA,EAAchC,KAAKE,yBACnBx9B,OAAOsiC,4BAIL,kBAAmBt1C,WACoB,OAAvCA,UAAUu1C,cAAcC,YACxB,cAAAx1C,UAAUu1C,cAAcC,WAAWt4B,OAEnCld,UAAUu1C,cAAcC,WAAWC,YAAY,CAC7CC,UAAU,uBAId1iC,OAAO2Z,SAAWmF,IAGtB6jB,EAAAA,EAAAA,UAAcjjB,EAAI9wB,GAClBwf,aAAai0B,YAlEbrhB,EAAAA,GAAAA,SAAuBtB,IAsE3B,SAASqY,EAAmBK,EAA5B,GAA4D,IAAD,OAAZze,EAAY,EAAZA,SACrCmF,EAAmBnF,EAAnBmF,SAAUJ,EAAS/E,EAAT+E,KACZub,GAAUsE,EAAAA,EAAAA,GAAU,qBAAsB,CAC9CnG,gBAAAA,EAEAtZ,SAAAA,EACAuZ,YAAa,CAAE1e,SAAAA,GACfipB,uBAAwB,SAAA3uC,GAAI,MAAI,CAC9B,EAGA,EAAKsjC,cAAcxf,KAAK9jB,EAAMA,EAAK3H,SAGvC,GAAI2tC,EAAQ/vC,OAAS,EAGnB,OAAO+vC,EAAQA,EAAQ/vC,OAAS,GAGlC,GAAIkuC,GAGEA,EADFze,SAAYmF,WAEMA,EAGlB,OAAOJ,EAAOlJ,UAAUkJ,EAAK5yB,MAAM,IAAM,CAAC,EAAG,GAGjD,OAAO,E,IAkBH+2C,E,YACJ,WAAYtuC,GAAQ,IAAD,SACjB,cAAMA,IAAN,MACKuuC,gBAAkBtM,EAAAA,YAFN,G,uCAKnB1C,mBAAA,SAAmBC,EAAWgP,GAAY,IAAD,OACvC9Y,uBAAsB,WACpB,IAAI+Y,EAAQ,eAAkB,EAAKzuC,MAAMolB,SAASmF,SAC9CzxB,SAAS41C,QACXD,EAAW31C,SAAS41C,OAEtB,IAAMC,EAAe71C,SAAS81C,iBAAT,4BACjBD,GAAgBA,EAAah5C,SAC/B84C,EAAWE,EAAa,GAAGE,aAE7B,IAAMC,EAAe,gBAAmBL,EACpC,EAAKF,gBAAgB9Q,UACC,EAAK8Q,gBAAgB9Q,QAAQsR,YAC7BD,IACtB,EAAKP,gBAAgB9Q,QAAQsR,UAAYD,Q,EAMjDvO,OAAA,WACE,OAAO,uCAAS8M,EAAT,CAA8BrN,IAAK9nC,KAAKq2C,oB,GA3BtBtM,EAAAA,WA+BvB+M,EAAuB,SAACrB,EAAcsB,GAAkB,IAAD,IAC3D,OAAItB,EAAavjB,OAAS6kB,EAAa7kB,OAInCujB,MAAAA,GAAA,UAAAA,EAAch4B,aAAd,eAAqB5d,QAAQk3C,MAAAA,GAA7B,UAA6BA,EAAct5B,aAA3C,aAA6B,EAAqB5d,MAQlDm3C,E,YACJ,WAAYlvC,GAAQ,IAAD,SACjB,cAAMA,IAAN,KACA0tC,EAAiB1tC,EAAMolB,SAAU,MAFhB,G,uCAKnBsa,kBAAA,WACEkO,EAAc11C,KAAK8H,MAAMolB,SAAU,O,EAGrC+pB,sBAAA,SAAsB3P,GACpB,QAAIwP,EAAqBxP,EAAUpa,SAAUltB,KAAK8H,MAAMolB,YACtDsoB,EAAiBx1C,KAAK8H,MAAMolB,SAAUoa,EAAUpa,WACzC,I,EAKXma,mBAAA,SAAmBC,GACbwP,EAAqBxP,EAAUpa,SAAUltB,KAAK8H,MAAMolB,WACtDwoB,EAAc11C,KAAK8H,MAAMolB,SAAUoa,EAAUpa,W,EAIjDmb,OAAA,WACE,OACE,gBAAC,WAAD,KACGroC,KAAK8H,MAAMkkC,SACZ,gBAACoK,EAAD,CAAgBlpB,SAAUA,a,GA5BP6c,EAAAA,W,oBC7M3B,SAASmN,EAAevqC,EAAG6J,GACzB,IAAK,IAAI9Y,KAAKiP,EACZ,KAAMjP,KAAK8Y,GAAI,OAAO,EACvB,IAAK,IAAI/O,KAAM+O,EACd,GAAI7J,EAAElF,KAAQ+O,EAAE/O,GAAK,OAAO,EAC7B,OAAO,EAGV,ICmGA,E,uBAzGM0vC,G,8DAKQ,OAJZ,kBAAYrvC,OAAO,OACjB,uBACA,EAAkB+qC,GAAAA,aAAAA,EAAAA,SACbp1B,CAAAA,kBACK,KAAOyP,G,YAAP,EAEN2lB,yBACA/D,SAAAA,EAAoB5hB,GAASmF,IAAAA,EAAY+gB,EAAAA,SAAkB,OAA3D,EAPa,S,SAWZgE,KACkBllB,CAAAA,cADzB,kBAAyD,EAAvBhF,SAAAA,CAAAA,kBAC5Bqa,IACIsL,SAAAA,OAAgB/D,OAAAA,GAAAA,IAAAA,CAAAA,SAAAA,OAAoB5hB,OAAQ,GAACmF,KACjD+gB,IAAAA,EAAgB,EAIhBP,U,OAAAA,EAAAA,cACA3lB,SAAeA,GAFjB,IAMF,EACEA,KAAAA,EADF,G,8BAKFmqB,GAAA,aACEvI,GAAAA,MAAAA,EAAAA,SAAgB0D,CAAAA,SAAc,cAAAK,GAAAA,OAC5B,UAAIA,cAAiBA,KAAyBxC,OAAAA,QAAAA,aAAAA,GAAAA,GAAAA,SAC5C,MAAKiH,OAAAA,SACHpqB,OAAQ,EAAO3Z,sBACfs/B,SAGFt/B,EAAOif,GAQX,OAAK+kB,EAAU1E,cAcX7yC,KAAKyd,MAAMo1B,gBAAkB0E,EAAU1E,gBAIzC7yC,KAAKyd,MAAMo1B,cAAc5vC,YAAcs0C,EAAU1E,cAAc5vC,YAK7DjD,KAAKyd,MAAMo1B,cAAc5B,OAASsG,EAAU1E,cAAc5B,SAM5DjxC,KAAKyd,MAAMyP,SAASrtB,MAAQ03C,EAAUrqB,SAASrtB,MAC/C03C,EAAU1E,cAAchC,OACvB0G,EAAU1E,cAAchC,KAAKxC,YAC5BkJ,EAAU1E,cAAchC,KAAKhb,ODvErC,SAA0BjsB,EAAU0sC,EAAWiB,GAC7C,OAAOL,EAAettC,EAAS9B,MAAOwuC,IAAcY,EAAettC,EAAS6T,MAAO85B,GC0E1E/iB,CAAex0B,KAAMs2C,EAAWiB,OAnCrCv3C,KAAKq3C,cAAcf,EAAUppB,SAASmF,WAC/B,I,EAqCXgW,OAAA,WAiBE,OAAOroC,KAAK8H,MAAMkkC,SAAShsC,KAAKyd,Q,GArGNssB,EAAAA,W,aCwBxB+E,IAAAA,EAAayF,GAAAA,E,KAA0B1G,EAAAA,EAC7C+G,IAAAA,GAAU9F,EACVA,aAAO+C,EAAaC,GAAAA,OAAAA,cAEb0C,EAAgBA,OAAAA,WACjB,EAAcrB,EAAAA,OAAAA,UACpB5/B,EAAmBshC,GHqHjBtgB,EAAAA,GAAAA,QAAqB,SAAA/sB,GACnBA,EAAK0lB,SAAS6F,OAASvrB,EAAKurB,UAG9Bxf,OAAOikC,QAAU,SAAAvkB,GAAE,OAAID,EAASC,EAAI,CAAE5d,SAAS,KAC/C9B,OAAOkkC,WAAa,SAAAxkB,GAAE,OAAID,EAASC,EAAI,CAAE5d,SAAS,KAClD9B,OAAO41B,YAAc,SAAClW,EAAI9wB,GAAL,OAAiB6wB,EAASC,EAAI9wB,IAGnDozC,EAAchiC,OAAO2Z,SAASmF,WG9HbwiB,EAAAA,EAInB6C,GAAAA,iBAAc,kBAGR5F,EAAAA,EAAAA,GAAU,yBAAyBxpC,OAAOm+B,SAAShpC,OAAS,GAC9DuvC,EAAQ,OAWV,IAAM2K,EAAe,SAAA7vC,GAAK,OACxB,gBAAC,EAAA8vC,YAAA,SAAD,CACEltC,MAAO,CACLmtC,QAAQ,IACRC,SAAS,MAGX,gBAAC,IAAiBhwC,KAIhBiwC,EAAchO,EAAAA,cAAoB,IAElCiO,EA5BmC,6FA6BvC3P,OAAA,WACE,IAAQ2D,EAAahsC,KAAK8H,MAAlBkkC,SACR,OACE,gBAAC,EAAAjG,SAAD,MACG,gBAAG7Y,EAAH,EAAGA,SAAH,OACC,gBAAC,EAAD,CAAiBA,SAAUA,IACxB,YAAkC,IAA/B2lB,EAA8B,EAA9BA,cAAe3lB,EAAe,EAAfA,SACX+lB,GAAqB6B,EAAAA,EAAAA,MAC3B,OACE,gBAAC,EAAAmD,mBAAA,SAAD,CAA6BvtC,MAAOuoC,GAClC,gBAAC8E,EAAY3uC,SAAb,CAAsBsB,MAAO,CAAEmoC,cAAAA,EAAe3lB,SAAAA,IAC3C8e,WAxCoB,GA4BhBjC,EAAAA,WAwBnBmO,EApDmC,6FAqDvC7P,OAAA,WAAU,IAAD,OACP,OACE,gBAAC0P,EAAYI,SAAb,MACG,gBAAGtF,EAAH,EAAGA,cAAe3lB,EAAlB,EAAkBA,SAAlB,OACC,gBAAC8pB,EAAD,CAAc9pB,SAAUA,GACtB,gBAAC,KAAD,CACEA,SAAUA,EACVoe,mBAAoBA,GAEpB,gBAAC,EAAA8M,OAAD,CACEN,SAAU7J,GACV/gB,SAAUA,EACVlZ,GAAG,wBAEH,gBAAC2jC,EAAD,eACE9hB,KACE,cAAAgd,EAAchC,KAAKhb,MACfmY,EAAAA,EAAAA,GAAY9gB,EAASmF,SAAU4b,IAC/BhlB,UACE4pB,EAAchC,KAAKxC,WACjBwE,EAAchC,KAAKhb,OAGzB,EAAK/tB,MATX,CAUEolB,SAAUA,EACV2lB,cAAeA,GACXA,EAAc5B,cA/EK,GAoDXlH,EAAAA,WAsC9B,EAA2Cx2B,OAAnC4+B,EAAR,EAAQA,SAAoBkG,EAA5B,EAAkBnrB,SAUhBilB,GACAlE,GAAgBkE,IAAakG,EAAWhmB,YAEtCyc,EAAOX,eAAcH,EAAAA,EAAAA,GAAYqK,EAAWhmB,SAAU4b,MAC9C,cAARkE,GACAA,EAAS5rC,MAAM,eACf4rC,EAAS5rC,MAAM,+CAGjBysB,EAAAA,EAAAA,UAASib,GAAgBkE,EAAWkG,EAAWrmB,OAASqmB,EAAWpmB,KAAM,CACvE5c,SAAS,IAIbw/B,EAAAA,GAAAA,SAAsBwD,EAAWhmB,UAAUzuB,MAAK,SAAAitC,GAC9C,IAAKA,GAAQA,EAAKhmB,SAAWwlB,EAAAA,GAAAA,MAA0B,CACrD,IAAM3hC,EAAO,sBAAyB2pC,EAAWhmB,SAApC,kCAIb,GAAIwe,GAAQA,EAAKhmC,MAEf,MADAzF,QAAQyF,MAAM6D,GACRmiC,EAAKhmC,MAGb,MAAM,IAAIb,MAAM0E,GAGlB6E,OAAOsiC,0BAA4BhF,EAAKA,KAAKE,uBAE7C,IAAMuH,GAAWxG,EAAAA,EAAAA,GAAU,kBAEzB,CAAE7F,QAAS,gBAACiM,EAAD,OACX,gBAACA,EAAD,OACA,YACE,MAAO,CAAEjM,QADK,EAAbzI,WAGH/L,MAEI8gB,EAAM,WACV,IAAMC,EAAsBzO,EAAAA,QAAa,GAWzC,OATAA,EAAAA,WAAgB,WACTyO,EAAoBjT,UACvBiT,EAAoBjT,SAAU,EAC9Bzb,YAAY2uB,KAAZ,0BAEA3G,EAAAA,EAAAA,GAAU,4BAEX,IAEI,gBAACkG,EAAD,KAAaM,IAGhBI,GAAW5G,EAAAA,EAAAA,GAAU,8BAEzBhsC,EACA4N,GAAYilC,wCACRC,EAAAA,oBACAA,EAAAA,SACJ,GAEFC,GAAAA,EAAS,WACP,IAAMj2C,EACJ,oBAAO2Q,OACH3S,SAAS6qC,eAAT,aACA,KAEFiN,IAAaE,EAAAA,oBACfF,EAAS91C,EAAW,CAClBk2C,SAAS,IACRzQ,OAAO,gBAACkQ,EAAD,OAEVG,EAAS,gBAACH,EAAD,MAAS31C,a,6EC3L1B,UAlBMm2C,SAAAA,GAAAA,IAAAA,EAAqC,EAAf7rB,SAAAA,EACpB2lB,EAAgB/D,GAAAA,aAAAA,EAAAA,UAAoB5hB,OAASmF,EAInD,EAAO0X,cAAAA,EAAoBiP,EAAAA,OAAAA,OAApB,YACL9rB,cACA2lB,GAAAA,EACGA,OANAA,O,sBCRP,IAAsBl6B,EAKpBzb,EAAOC,SALawb,EAKWq0B,EAAQ,SALRr0B,EAAEoc,SAAYpc,G,oBCA/Cxb,EAAQ,EAAW,SAAAwL,GAAS,OAAIA,I,uECI1BswC,EAAc,IAAItzC,IAClBuzC,EAAwB,IAAIvzC,IAU3B,SAASgpC,EAAwBtc,GACtC,IAAIqc,EAAWuK,EAAY91C,IAAIkvB,GAI/B,OAHKqc,IACHA,EAAWwK,EAAsB/1C,IAAIkvB,EAAStjB,gBAEzC2/B,E,GAbTyK,SAAkB,SAAAzK,GACZA,EAAS0K,WACXF,EAAsB71C,IAAIqrC,EAAS2K,SAAU3K,GAE7CuK,EAAY51C,IAAIqrC,EAAS2K,SAAU3K,O,yDCR9BxhB,W,gBAAP3Z,UACO2Z,cADSC,OAAhB,SACA5Z,SAAA,cAEAnO,gFAAA,kBAGS,qBAAmB7E,cAClBu1C,SAAAA,UAAV,eAEGlyC,GAAK,mBACAzC,eAAJ,cAAoC,EAClC2wC,GAAAA,6BAAS,eAAiCgE,IAG1C,IAAMwD,EAAmBC,EAAIC,WAC7Bp0C,QAAQC,IAAR,mBAAgCi0C,GAChCA,EAAiBn4C,iBAAjB,eAAiD,WAC/C,OAAQm4C,EAAiB77B,OACvB,IAAI,YACEld,UAAUu1C,cAAcC,YAK1BxiC,OAAOoiC,cAAe,GAEtB7D,EAAAA,EAAAA,GAAU,6BAA8B,CAAEgE,cAAeyD,IAGrDhmC,OAAOkmC,qBACTr0C,QAAQC,IAAR,4CACAkO,OAAO2Z,SAASwsB,YAKlBt0C,QAAQC,IAAR,sCAKAysC,EAAAA,EAAAA,GAAU,2BAA4B,CAAEgE,cAAeyD,KAEzD,MAEF,IAAI,YACFn0C,QAAQyF,MAAR,oDACAinC,EAAAA,EAAAA,GAAU,2BAA4B,CAAEgE,cAAeyD,IACvD,MAEF,IAAI,aACFzH,EAAAA,EAAAA,GAAU,wBAAyB,CAAEgE,cAAeyD,cAM7DnnC,OAAM,SAAUtN,GACfM,QAAQyF,MAAR,4CAA2D/F,O,mCC1D9D,SAAH,OAEyCkgC,YAAjBgJ,IAAAA,IAAiBhJ,EAAa,IAAbA,EAAa,IAC/CA,EACI91B,IAGLA,EAAG,WACL,OAGM0lB,EAAAA,MAAcoQ,EAAlB,QACS3lC,EAV0B2lC,E,8EC0C9BlgC,E,iCAxCP0b,G,2BAAI,CACNm5B,UAAW,IACXC,SAAU,IACVC,UAAW,IACXC,KAAM,IACNC,YAAa,IACbC,WAAY,IACZC,kBAAmB,IACnBC,iBAAkB,IAClBC,MAAO,IACPC,sBAAuB,IACvBC,cAAe,IACfC,oBAAqB,IACrBC,UAAW,IACXC,WAAY,IACZ3zC,YAAa,IACb4zC,qBAAsB,OAiCtB,SAAU31C,EAAG2H,GACX3H,EAAEhC,SAAS8D,kBAAkB,IAAI,KAAE,aAAa,SAAU9B,GAExD,OAIC,SAAUA,EAAGyH,GAChB,OAAO,IAAI,IAAEzH,EAAG,IAAI,IAAEA,EAAGyH,GAAI,IAAI,KALxBE,CADC3H,EAAEV,YAAY,OAAOK,eACjBK,EAAEV,YAAY,oBACzB,UAED6E,gBAAgBlL,OAAO0B,OAAO,GAAI+gB,MANtC,CATS1b,EAqBT,KAHIA,EAAEmB,gBAAgB,sBAAuB,S,eCrC3Cy0C,EAAe,CACjBC,GAAI,KACJC,UAAW,YACXC,QAAS,UACTC,iBAAkB,mBAClBC,kBAAmB,oBACnBC,UAAW,YACXC,eAAgB,iBAChBC,kBAAmB,oBACnBC,gBAAiB,kBACjBC,mBAAoB,qBACpBC,oBAAqB,sBACrBC,QAAS,UACTC,aAAc,eACdC,cAAe,gBACf14C,SAAU,WACV24C,YAAa,cACbC,UAAW,aAOTC,EAAiB,SAAUjnC,GAG7B,SAASinC,EAAehnC,EAAMjG,EAASktC,GACrC,IAAIt5C,EAAQoS,EAAOtV,KAAKY,KAAM0O,IAAY1O,KAQ1C,OAHAjC,OAAOS,eAAe8D,EAAOq5C,EAAe79C,WAC5CwE,EAAMqS,KAAOA,EACbrS,EAAMs5C,QAAUA,EACTt5C,EAGT,OAdA,QAAUq5C,EAAgBjnC,GAcnBinC,EAfY,CAgBnB3xC,OAoHF,IAAI6xC,EAAkB,WACpB,SAASA,EAAgBC,EAAcC,GACrC,IAAIz5C,EAAQtC,KAEZA,KAAKg8C,KAAO,KACZh8C,KAAKi8C,UAAY,KACjBj8C,KAAKg8C,KAAOF,EAAar3C,aAAa,CACpCsF,UAAU,IAEZ/J,KAAKi8C,UAAYF,EAAkBt3C,aAAa,CAC9CsF,UAAU,IAGP/J,KAAKg8C,MACRF,EAAa34C,MAAMS,MAAK,SAAUo4C,GAChC,OAAO15C,EAAM05C,KAAOA,KACnB,eAKAh8C,KAAKi8C,WACRF,EAAkB54C,MAAMS,MAAK,SAAUq4C,GACrC,OAAO35C,EAAM25C,UAAYA,KACxB,eAkIP,OA5HAJ,EAAgB/9C,UAAUo+C,aAAe,WACvC,OAAO,QAAUl8C,UAAM,OAAQ,GAAQ,WACrC,IAAIsS,EACJ,OAAO,QAAYtS,MAAM,SAAU2B,GACjC,OAAQA,EAAGqJ,OACT,KAAK,EACH,IAAKhL,KAAKg8C,KACR,MAAO,CAAC,OAENl2C,GAGJnE,EAAGqJ,MAAQ,EAEb,KAAK,EAGH,OAFArJ,EAAGgiC,KAAKniC,KAAK,CAAC,EAAG,EAAE,CAAE,IAEd,CAAC,EAENxB,KAAKg8C,KAAKG,YAEd,KAAK,EAGH,OAFA7pC,EAAQ3Q,EAAGwJ,QAQJ,CAAC,EAENmH,EAAM8pC,aAPC,CAAC,OAENt2C,GAON,KAAK,EAIH,OAHAnE,EAAGwJ,OAGI,CAAC,OAENrF,GAEJ,KAAK,EACH,MAAO,CAAC,WAQlB+1C,EAAgB/9C,UAAUu+C,mBAAqB,WAC7C,OAAO,QAAUr8C,UAAM,OAAQ,GAAQ,WACrC,OAAO,QAAYA,MAAM,SAAU2B,GACjC,OAAQA,EAAGqJ,OACT,KAAK,EACH,IAAKhL,KAAKi8C,aAAe,iBAAkB7+C,OAAqC,YAA5Bk/C,aAAaC,WAC/D,MAAO,CAAC,OAENz2C,GAGJnE,EAAGqJ,MAAQ,EAEb,KAAK,EAGH,OAFArJ,EAAGgiC,KAAKniC,KAAK,CAAC,EAAG,EAAE,CAAE,IAEd,CAAC,EAENxB,KAAKi8C,UAAUE,YAEnB,KAAK,EACH,MAAO,CAAC,EAENx6C,EAAGwJ,QAEP,KAAK,EAMH,OALAxJ,EAAGwJ,OAKI,CAAC,OAENrF,GAEJ,KAAK,EACH,MAAO,CAAC,WAQlB+1C,EAAgB/9C,UAAU0+C,WAAa,WACrC,OAAO,QAAUx8C,UAAM,OAAQ,GAAQ,WACrC,IAAIy8C,EAAWC,EACf,OAAO,QAAY18C,MAAM,SAAU2B,GACjC,OAAQA,EAAGqJ,OACT,KAAK,EACH,MAAO,CAAC,EAENhL,KAAKk8C,gBAET,KAAK,EAEH,OADAO,EAAY96C,EAAGwJ,OACR,CAAC,EAENnL,KAAKq8C,sBAET,KAAK,EAEH,OADAK,EAAkB/6C,EAAGwJ,OACd,CAAC,EAEN,CACAsxC,UAAWA,EACXC,gBAAiBA,YAOtBb,EA1Ja,GAiLtB,SAASc,EAETl+C,EAAG8X,GACD,IAAIitB,EAAS,GAEb,IAAK,IAAI3jC,KAAOpB,EACVA,EAAEqB,eAAeD,KACnB2jC,EAAO3jC,GAAO0W,EAAE9X,EAAEoB,KAItB,OAAO2jC,EAGT,IAAIoZ,EAAa,WACf,SAASA,KAmGT,OA/FAA,EAAW9+C,UAAU++C,OAAS,SAAU7nC,GACtC,IAAI1S,EAAQtC,KAEZ,GAAY,MAARgV,EACF,OAAO,KAOT,GAJIA,aAAgB6M,SAClB7M,EAAOA,EAAK8nC,WAGM,iBAAT9nC,GAAqB+nC,SAAS/nC,GAGvC,OAAOA,EAGT,IAAa,IAATA,IAA0B,IAATA,EACnB,OAAOA,EAGT,GAA6C,oBAAzCjX,OAAOD,UAAUqB,SAASC,KAAK4V,GACjC,OAAOA,EAGT,GAAIA,aAAgBpH,KAClB,OAAOoH,EAAKnH,cAGd,GAAIjQ,MAAMgB,QAAQoW,GAChB,OAAOA,EAAKhR,KAAI,SAAU0W,GACxB,OAAOpY,EAAMu6C,OAAOniC,MAIxB,GAAoB,mBAAT1F,GAAuC,iBAATA,EACvC,OAAO2nC,EAAU3nC,GAAM,SAAU0F,GAC/B,OAAOpY,EAAMu6C,OAAOniC,MAKxB,MAAM,IAAI1Q,MAAM,mCAAqCgL,IAKvD4nC,EAAW9+C,UAAU+pB,OAAS,SAAUopB,GACtC,IAAI3uC,EAAQtC,KAEZ,GAAY,MAARixC,EACF,OAAOA,EAGT,GAAIA,EAAK,SACP,OAAQA,EAAK,UACX,IA9EQ,iDAgFR,IA/EiB,kDAoFb,IAAIvmC,EAAQmX,OAAOovB,EAAY,OAE/B,GAAIprB,MAAMnb,GACR,MAAM,IAAIV,MAAM,qCAAuCinC,GAGzD,OAAOvmC,EAGX,QAEI,MAAM,IAAIV,MAAM,qCAAuCinC,GAK/D,OAAIrzC,MAAMgB,QAAQqyC,GACTA,EAAKjtC,KAAI,SAAU0W,GACxB,OAAOpY,EAAMulB,OAAOnN,MAIJ,mBAATu2B,GAAuC,iBAATA,EAChC0L,EAAU1L,GAAM,SAAUv2B,GAC/B,OAAOpY,EAAMulB,OAAOnN,MAKjBu2B,GAGF2L,EApGQ,GAgJjB,IAAII,EAAU,WAQZ,SAASA,EAAQC,EAAMnB,EAAcC,EAAmBmB,EAAkBC,EAAuBC,GAC/F,IAAI96C,EAAQtC,UAEkB,IAA1Bm9C,IACFA,EAAwB,eAG1Bn9C,KAAKi9C,KAAOA,EACZj9C,KAAKk9C,iBAAmBA,EACxBl9C,KAAKo9C,UAAYA,EACjBp9C,KAAKq9C,WAAa,IAAIT,EACtB58C,KAAKs9C,eAAiB,KACtBt9C,KAAK8C,SAAW,CACdW,OAAQ,WACN,OAAOC,QAAQC,QAAQrB,EAAMi7C,mBAGjCv9C,KAAKw9C,gBAAkB,IAAI3B,EAAgBC,EAAcC,GAEzD/7C,KAAKy9C,kBAAoB,IAAI/5C,SAAQ,SAAUC,GAC7CrB,EAAMi7C,cAAgB,WACpB,OAAO55C,QAIX,IACE,IAAIisC,EAAM,IAAIrd,IAAI4qB,GAClBn9C,KAAK09C,aAAe9N,EAAIzd,OACxBnyB,KAAK29C,OAAS,cACd,MAAO74C,GACP9E,KAAK09C,aAAe,KACpB19C,KAAK29C,OAASR,GAyRlB,OArRAp/C,OAAOmF,eAAe85C,EAAQl/C,UAAW,MAAO,CAC9CqF,IAAK,WACH,OAAOnD,KAAKi9C,MAEd15C,YAAY,EACZC,cAAc,IAOhBw5C,EAAQl/C,UAAU8/C,KAAO,SAAUt+C,GACjC,IAAIiT,EAAYvS,KAAKi9C,KAAK96C,QAAQoQ,UAElC,OAA4B,OAAxBvS,KAAKs9C,eACQt9C,KAAKs9C,eACF,IAAM/qC,EAAY,IAAMvS,KAAK29C,OAAS,IAAMr+C,EAGtC,OAAtBU,KAAK09C,aACA19C,KAAK09C,aAAe,IAAMp+C,EAG5B,WAAaU,KAAK29C,OAAS,IAAMprC,EAAY,uBAAyBjT,GAY/E09C,EAAQl/C,UAAU+/C,YAAc,SAAUzrB,EAAMjD,GAC9CnvB,KAAKs9C,eAAiB,UAAYlrB,EAAO,IAAMjD,GAYjD6tB,EAAQl/C,UAAUggD,qBAAuB,SAAU3rB,GACjDnyB,KAAKs9C,eAAiBnrB,GAQxB6qB,EAAQl/C,UAAUigD,cAAgB,SAAUz+C,EAAM6C,GAChD,IAAIG,EAAQtC,KAEZ,OAAO,SAAUgV,GACf,OAAO1S,EAAMlD,KAAKE,EAAM0V,EAAM7S,GAAW,MAY7C66C,EAAQl/C,UAAUkgD,SAAW,SAAUpO,EAAK9jB,EAAMH,GAChD,OAAO,QAAU3rB,UAAM,OAAQ,GAAQ,WACrC,IAAIi+C,EAAejzB,EAAUimB,EAC7B,OAAO,QAAYjxC,MAAM,SAAU2B,GACjC,OAAQA,EAAGqJ,OACT,KAAK,EAEH,OADA2gB,EAAQ,gBAAkB,mBACnB,CAAC,EAEN3rB,KAAKk+C,oBAET,KAAK,EAGmB,QAFtBD,EAAgBt8C,EAAGwJ,UAGjBwgB,EAAQ,uBAAyBsyB,GAGnCt8C,EAAGqJ,MAAQ,EAEb,KAAK,EAGH,OAFArJ,EAAGgiC,KAAKniC,KAAK,CAAC,EAAG,EAAE,CAAE,IAEd,CAAC,EAENxB,KAAKo9C,UAAUxN,EAAK,CACpB9hC,OAAQ,OACRge,KAAMld,KAAKC,UAAUid,GACrBH,QAASA,KAGb,KAAK,EAEH,OADAX,EAAWrpB,EAAGwJ,OACP,CAAC,EAEN,GAEJ,KAAK,EAOH,OANAxJ,EAAGwJ,OAMI,CAAC,EAEN,CACA0f,OAAQ,EACRomB,KAAM,OAGV,KAAK,EACHA,EAAO,KACPtvC,EAAGqJ,MAAQ,EAEb,KAAK,EAGH,OAFArJ,EAAGgiC,KAAKniC,KAAK,CAAC,EAAG,EAAE,CAAE,IAEd,CAAC,EAENwpB,EAASimB,QAEb,KAAK,EAEH,OADAA,EAAOtvC,EAAGwJ,OACH,CAAC,EAEN,GAEJ,KAAK,EAGH,OAFAxJ,EAAGwJ,OAEI,CAAC,EAEN,GAEJ,KAAK,EACH,MAAO,CAAC,EAEN,CACA0f,OAAQG,EAASH,OACjBomB,KAAMA,YAOlB+L,EAAQl/C,UAAUogD,iBAAmB,WACnC,OAAO,QAAUl+C,UAAM,OAAQ,GAAQ,WACrC,IAAIm+C,EACJ,OAAO,QAAYn+C,MAAM,SAAU2B,GACjC,OAAQA,EAAGqJ,OACT,KAAK,EAIH,OAHAmzC,EAAWn+C,KAAKk9C,iBAAiBz4C,aAAa,CAC5CsF,UAAU,KAKL,CAAC,EAENo0C,EAAShC,YALW,CAAC,EAErB,GAKJ,KAAK,EAMH,MAAO,CAAC,EALCx6C,EAAGwJ,OAOHmH,OAEX,KAAK,EACH,MAAO,CAAC,EAEN,cAYZ0qC,EAAQl/C,UAAUsB,KAAO,SAAUE,EAAM0V,EAAM7S,GAC7C,OAAO,QAAUnC,UAAM,OAAQ,GAAQ,WACrC,IAAI4vC,EAAK9jB,EAAMH,EAASyjB,EAAShf,EAASzuB,EAAIy8C,EAAOC,EAAkBrzB,EAAUngB,EAAOyzC,EAExF,OAAO,QAAYt+C,MAAM,SAAUoK,GACjC,OAAQA,EAAGY,OACT,KAAK,EAQH,OAPA4kC,EAAM5vC,KAAK49C,KAAKt+C,GAEhB0V,EAAOhV,KAAKq9C,WAAWR,OAAO7nC,GAC9B8W,EAAO,CACL9W,KAAMA,GAER2W,EAAU,GACH,CAAC,EAEN3rB,KAAKw9C,gBAAgBhB,cAEzB,KAAK,EAaH,OAZApN,EAAUhlC,EAAGe,QAEDsxC,YACV9wB,EAAuB,cAAI,UAAYyjB,EAAQqN,WAG7CrN,EAAQsN,kBACV/wB,EAAQ,8BAAgCyjB,EAAQsN,iBAGlDtsB,EAAUjuB,EAAQiuB,SAAW,IAC7BzuB,EApSZ,SAAmB48C,GACjB,IAAIH,EACAt0C,EAAU,IAAIpG,SAAQ,SAAU6R,EAAGrD,GACrCksC,EAAQ78C,YAAW,WACjB2Q,EAAO,IAAIypC,EAAe,oBAAqB,wBAC9C4C,MAEL,MAAO,CACLH,MAAOA,EACPt0C,QAASA,GA2RI00C,CAAUpuB,GAAUguB,EAAQz8C,EAAGy8C,MAAOC,EAAmB18C,EAAGmI,QAC1D,CAAC,EAENpG,QAAQ+6C,KAAK,CAACC,EAAoBN,EAAOp+C,KAAKg+C,SAASpO,EAAK9jB,EAAMH,IAAW0yB,EAAkBK,EAAoBN,EAAOp+C,KAAKy9C,sBAEnI,KAAK,EAGH,KAFAzyB,EAAW5gB,EAAGe,QAGZ,MAAM,IAAIwwC,EAAe,YAAa,4CAKxC,GAFA9wC,EAnqBZ,SAA2BggB,EAAQ8zB,EAAUtB,GAC3C,IAAI1oC,EArDN,SAA2BkW,GAEzB,GAAIA,GAAU,KAAOA,EAAS,IAC5B,MAAO,KAGT,OAAQA,GACN,KAAK,EAEH,MAAO,WAET,KAAK,IACH,MAAO,mBAET,KAAK,IACH,MAAO,kBAET,KAAK,IACH,MAAO,oBAET,KAAK,IACH,MAAO,YAET,KAAK,IACH,MAAO,UAET,KAAK,IACH,MAAO,qBAET,KAAK,IACH,MAAO,YAET,KAAK,IACH,MAAO,WAET,KAAK,IACH,MAAO,gBAET,KAAK,IACH,MAAO,cAET,KAAK,IACH,MAAO,oBAGX,MAAO,UAQI+zB,CAAkB/zB,GAEzBg0B,EAAclqC,EACdinC,OAAU91C,EAEd,IACE,IAAIg5C,EAAYH,GAAYA,EAAS9zC,MAErC,GAAIi0C,EAAW,CACb,IAAIC,EAAWD,EAAUj0B,OAEzB,GAAwB,iBAAbk0B,EAAuB,CAChC,IAAKrE,EAAaqE,GAEhB,OAAO,IAAIpD,EAAe,WAAY,YAGxChnC,EAAO+lC,EAAaqE,GAGpBF,EAAcE,EAGhB,IAAIrwC,EAAUowC,EAAUpwC,QAED,iBAAZA,IACTmwC,EAAcnwC,QAKA5I,KAFhB81C,EAAUkD,EAAUlD,WAGlBA,EAAUyB,EAAWx1B,OAAO+zB,KAGhC,MAAO92C,IAGT,MAAa,OAAT6P,EAIK,KAGF,IAAIgnC,EAAehnC,EAAMkqC,EAAajD,GAqnB3BoD,CAAkBh0B,EAASH,OAAQG,EAASimB,KAAMjxC,KAAKq9C,YAG7D,MAAMxyC,EAGR,IAAKmgB,EAASimB,KACZ,MAAM,IAAI0K,EAAe,WAAY,sCAUvC,QAJ4B,KAH5B2C,EAAetzB,EAASimB,KAAKj8B,QAI3BspC,EAAetzB,EAASimB,KAAKzN,aAGH,IAAjB8a,EAET,MAAM,IAAI3C,EAAe,WAAY,mCAIvC,MAAO,CAAC,EAEN,CACA3mC,KAJYhV,KAAKq9C,WAAWx1B,OAAOy2B,aAWxCtB,EAhUK,GAmUd,SAAS0B,EAAoBN,EAAOt0C,GAClC,OAAO,QAAU9J,UAAM,OAAQ,GAAQ,WACrC,IAAIwjC,EACJ,OAAO,QAAYxjC,MAAM,SAAU2B,GACjC,OAAQA,EAAGqJ,OACT,KAAK,EACH,MAAO,CAAC,EAENlB,GAEJ,KAAK,EAIH,OAHA05B,EAAS7hC,EAAGwJ,OAEZwW,aAAay8B,GACN,CAAC,EAEN5a,UAmDZ,IAtB2B55B,EAAUwzC,EAC/B6B,EADqBr1C,EAyCT,IAzCmBwzC,EAyCTrxB,MAAMrkB,KAAKtK,MAxCjC6hD,EAAmB,CAErBC,UAAWlC,GAcbpzC,EAAS9G,SAAS8D,kBAAkB,IAAI,KAnBrB,aAQnB,SAAiBhE,EAAWjB,GAC1B,IAAIw9C,EAAuBx9C,EAAGwC,mBAE1B6B,EAAMpD,EAAUwB,YAAY,OAAOK,eACnCq3C,EAAel5C,EAAUwB,YAAY,iBACrC84C,EAAmBt6C,EAAUwB,YAAY,sBACzC23C,EAAoBn5C,EAAUwB,YAAY,aAE9C,OAAO,IAAI44C,EAAQh3C,EAAK81C,EAAcC,EAAmBmB,EAAkBiC,EAAsB/B,KAGxB,UAEzEn0C,gBAAgBg2C,GAAkBj2C,sBAAqB,IAuB3D,oBApBW,sBACG,W,yDC54BdjL,aAAAA,CAAAA,OAAAA,IAAAA,EAAAA,aACS,EAETZ,0BAAuBA,EACI,uBAD3B,0FAGmB,eADYiiD,+E,2DCL/BrhD,aAAAA,CAAAA,OAAAA,IAAAA,EAAAA,mBAA6C,EAG7CZ,IAAAA,EAAAA,EAEIwnC,OAmBO0a,EAAAA,cAnBS,SAEhB3J,EAAgB,GAASA,IAKY,EALZA,EAAT,WACdxoB,EAAgBA,EAAAA,OAChBoyB,OAAqBlpC,IAArBkpC,EACAlpC,EAAAA,EAASkpC,EAA8BA,EAAAA,SACvCC,OACApd,IADAod,EACApd,IAAWod,EAAmCA,EAHlD,YAIIC,OAEJ,qBACEjsC,EAAOksC,OAAAA,uBACPlsC,EAAOmsC,EAAAA,OAAyBvd,oBACnB5uB,GAAO8rC,EAAAA,EAAAA,UAGtBG,EAAiB7a,IAAOgb,EAAAA,EAAUH,WAAYppC,EAAcuuB,GAAOib,EAAW1yB,WAAU9W,IAEpFuuB,OAAOhxB,wBACTJ,K,iDCxBwTzV,OAA9NK,EAAtE,2BAA+B,iBAAOA,OAAW,SAA4BE,SAAuB,GAAEwhD,cAAmBA,GAAsB,SAAsB,GAAEA,OAAU,GAAwB,mBAAfA,QAA6B,EAAO1hD,cAAW,QAAc8B,IAAI/B,OAAAA,UAAgBC,gBAAyBL,IAAuB,GAAOmC,OAAU,eAAeA,EAEnXlC,aAAAA,CAAAA,OAAAA,IAAAA,EAAAA,WACS,EAETZ,EAAAA,SAAqB2iD,EACrB3iD,EAAQ,gBA4CMglC,SAGb,EAED,KAI4BlP,EAAGze,SAAS,MAASye,EAAGze,SAAS,MACnCsrC,EAAWC,EAAWX,sBAE9C,GAAIzrC,GAAasf,EAAGze,SAAS,KAAM,CACjC,IACIwrC,EAAaC,EADDhtB,EAAG5Y,MAAM,KACkB,GACvC6lC,EAAaF,EAAW,GACxBG,EAASH,EAAW,GAEpBzsC,OAAO2Z,SAASmF,YAAa,EAAI+tB,EAAQlc,YAAYgc,KACvDp7C,EAAEsZ,iBACFuhC,EAAS,IAAIplC,OAAO4lC,GAAS5sC,OAAOksC,qBAAsBlsC,OAAOmsC,yBAIjEW,GAAmBA,KAnEzBljD,EAAAA,wBAsEA,SAAiC81B,EAAInuB,EAAGu7C,GAIZptB,EAAGze,SAAS,MAASye,EAAGze,SAAS,MACnCsrC,EAAWC,EAAWX,sBAE9C,IACIkB,EAAaL,EADAhtB,EAAG5Y,MAAM,KACkB,GACxC6lC,EAAaI,EAAW,GACxBH,EAASG,EAAW,GAMpBC,EAAa5sC,GAAaJ,OAAO2Z,SAASmF,WAAa6tB,EACvDM,EAAkB7sC,GAAaJ,OAAO2Z,SAASmF,WAAa6tB,EAE5DK,IACFz7C,EAAEsZ,iBACFuhC,EAAS,IAAIplC,OAAO4lC,GAAS5sC,OAAOksC,qBAAsBlsC,OAAOmsC,yBAG/Dc,IACFjtC,OAAO8rC,mBAAqB,IAAI9kC,OAAO4lC,IAGrCE,GAAmBA,KAjGzBljD,EAAkCsjD,oBAoGlC,SAA6BxtB,GAC3B,OAAOA,EAAG5Y,MAAM,KAAK,IApGvBld,EAA8BujD,UAuG9B,SAAmBxzB,EAAU9W,GAC3B,IAAI6b,EAAO/E,EAAS+E,KAChB0uB,EAAW1uB,EAAOA,EAAKnM,OAAO,GAAK,KACnC86B,EAAeD,EAAW//C,SAAS6qC,eAAekV,GAAY,KAC9D1uB,GAAQwU,QAAQma,GAAejB,EAAS1tB,EAAM7b,GAAiB6b,GAAQ0uB,IAAaC,GAAcd,EAAWC,EAAWc,eA1G9H1jD,EAAAA,cAAoByiD,EACpBziD,eAAAA,EAAA,IAYA,EAZwBA,GAYxB,EAVI2jD,EAAmB7c,SAUdA,EAAAA,WAA8B,GAAOhkC,QAAW3C,GAVX0vC,EAAAA,EAE1CoT,OAAUpT,EAIoK,SAElL,GAAS1C,GAAAA,GAAAA,EAAAA,WAAT,OAA4CrqC,EAAOA,GAAI3C,OAAAA,GAAgC2C,WAAlB,EAAOA,IAA2B,mBAAA4/C,EAAA,MAA6B,CAAO5/C,QAAQ,OAAc,EAAS,IAAgCgqC,GAAAA,GAAAA,EAAAA,IAAAA,GAA4B,OAAIpe,EAASA,IAAM1kB,GAAN,IAAkB,EAAO0kB,GAAM1oB,EAA6B,OAAIgnC,gBAAAA,OAAwBpsC,yBAA+B,IAACqsC,IAAAA,KAAAA,EAAAA,GAAAA,OAA+B,UAAWnqC,eAAiB,KAACnC,EAAAA,GAAUgC,CAAAA,IAAAA,EAAAA,EAAqCuqC,OAAOF,yBAA8B,EAACC,GAAAA,KAAAA,IAAAA,EAAP,KAAH,EAAhC,KAAyFC,OAASA,eAAiBhnC,EAAQtF,EAAOmF,GAAAA,EAAegnC,GAAQrqC,EAAKwqC,GAAzE,EAAuGpqC,QAAIJ,EAAW,GAAO,EAAC,IAAD,EAAcI,GAAS4rB,OAASA,EANtrBmhB,CAEV+S,EAAazV,QAAwB0C,SAAAA,IAEhC/C,GAAAA,mBAAAA,QAAiC,OAAOO,KAAP,IAAmB,MAAY,QAA4EP,OAArE,EAAM,WAA+DA,OAAAA,GAAAA,EAI5F3sC,SAAmB,EAArC,EAEvC,UAQycmN,SAAgC,GAEze,SAASs2C,QAAAA,GAAgBvjD,OAAWI,EAV3BqiD,CAAoBviD,IAMwHC,SAErJ,EAASqjD,GAAAA,GAAsBxjD,oBAAtBwjD,UAAoC,OAAO7iD,YAAW,OAAiBA,IAAM,OAACE,IAAP,EAAmBN,GAAM,GAAQ,EAAQ,GAAIkjD,EAAeC,OAAE,EAAaz2C,IAAK,IAAT,IAAmDhD,EAA/B8D,EAAE,EAAGzF,OAAW,cAAoBtI,GAAIW,EAAAA,EAAOE,QAAX,QAAyCoJ,EAAG8C,KAAR42C,EAAgB32C,QAAY,GAAQy2C,EAAKz/C,SAAQkJ,GAAzD,GAAEw2C,IAAoE,MAAQ,GAACzjD,GAAL,EAAmB,IAAW,YAAmB,GAA4B,MAApB,EAAnL,QAA6M,EAAe,SAAD,QAAa,GAAMgK,EAAG,SAAc,OAAxD,EARhW,CAAuBjK,EAAQwjD,IAEf,SAEzCI,EAAAA,GAAAA,IAAAA,EAAAA,OAAAA,GAAyC,iBAAVniD,EAAkB,OAAY,EAAJ,EAA2B,GAAOoiD,IAAAA,EAAAA,OAAAA,UAAqBpiD,SAAiBlB,KAAAA,GAAOD,MAAAA,GAAUqB,GAASC,WAATD,GAAiBE,EAAlC,cAAqD,EAAK,cAAcnB,MAAAA,GAAiBO,QAAjBP,GAAmBA,QAAAA,EAAYoB,OAAY,MAAI,KAAU,GAAK,GAAO,cAAP,GAAoBhB,2CAAkC,iBAAzB,EAA6E,GAJzT0iD,CAAiCI,EAAAA,IAA4B5jD,WAE9H,MAAS8jD,IAAAA,UAAAA,6IAFyFF,GAI+RC,SAAAA,EAEjY,MAASA,MAAAA,GAAAA,EAAkB7jD,EAAKD,UAAWA,EAAG,EAAI,QAAcC,IAAIC,IAAAA,EAA7B,EAAqCF,EAAMC,IAAIC,MAAQ,GAAK,EAAIC,EAAOC,IAAO,EAAIC,GAAAA,EAAML,GAAO,OAAS,EAItG,IAACqB,EAEtC+U,oBAF2DnW,OAE/C,EAAO+V,UAAW,EAGlCpW,SAAAA,EAAwBokD,GAFJ5tC,MAKd4tC,SAAen8C,EAAasJ,GAGlC,MAASixC,UAASjgD,OAChB,QAAsB,IAAlB0W,UAASzW,GAAAA,UAAiC,GAAT,EAAiBmG,EAAYnG,UAArD,OACTwiC,QAAoB,IAApBA,UAAWxiC,GAAAA,UAAiC,GAAT,KAAiBmG,EAAAA,EACpDg7C,SAAAA,EAAAA,CAAAA,SAAiB,EAAYphD,OAAQ,IAVvBgU,EAAAA,cADAC,O,yCCtCpB,EAAIswB,OAAyB+I,EAAAA,YAAQ,EAAD,EAEpC7vC,QAiLA,SAAkBw/B,EAAM6kB,EAAeviC,GACrC,IAAIwiC,EAAeC,EAAyBziC,EAAIuiC,GAEhD,OADA7kB,EAAKx7B,iBAAiB,QAASsgD,GACxB,WACL,OAAO9kB,EAAKv7B,oBAAoB,QAASqgD,KArL7CtkD,EACAA,yBACAA,EAAAA,qBAAmCA,EAAAA,sBAA+BA,EAAAA,oBAAgCA,EAAAA,0BAA8BA,EAAAA,gCAAoCA,EAAAA,kBAA0CA,EAAQ,8BAAoBA,EAAAA,gBAAAA,EAAwCA,6BAA0BA,EAAAA,IAAAA,EAAuC,EAE/UwkD,EAAsB1d,QAAuB+I,EAAAA,EAE7CoT,OAAUpT,EAEd,SAA8B,GAAS4U,OAAwB1hB,IAAxB0hB,EAAAA,QAA+B,EACpE,QAAa5kC,EAAN,SAAsBkjB,EAAM3iB,SAAU2iB,EAAM1iB,UAIrDrgB,EAAQykD,wBAA0BA,EAElC,IAAIC,EAAkB,SAAyBxvB,GAC7C,MAAuB,MAAhBA,EAAS,GAAaA,EAAW,IAAMA,GAGhDl1B,EAAQ0kD,gBAAkBA,EAE1B,IAAIC,EAAgC,SAAuC5hB,GACzE,OAAOA,EAAMrjB,kBAGf1f,EAAQ2kD,8BAAgCA,EAExC,IAAIC,EAAoB,SAA2BvW,GACjD,KAAOA,EAAKyE,WAAYzE,EAAOA,EAAKyE,WAClC,GAAoC,MAAhCzE,EAAK1tB,SAAS/O,cAChB,OAAOy8B,EAIX,OAAO,MAGTruC,EAAQ4kD,kBAAoBA,EAE5B,IAAIC,EAAkC,SAAyC7B,GAC7E,OAEoC,IAAlCA,EAAO8B,aAAa,WAUH,MAAjB9B,EAAOzgD,QAKP,CAAC,QAAS,IAAI8U,SAAS2rC,EAAOzgD,SAA6B,YAAlBygD,EAAOzgD,UAA0BygD,EAAO+B,cAAcC,YAAYC,QAC3GjC,EAAO+B,cAAcC,YAAYC,SAAWjC,EAAO+B,cAAcC,cAAkC,SAAlBhC,EAAOzgD,UAAuBygD,EAAO+B,cAAcC,YAAY5gB,KAChJ4e,EAAO+B,cAAcC,YAAY5gB,MAAQ4e,EAAO+B,cAAcC,cAIlEhlD,EAAQ6kD,gCAAkCA,EAE1C,IAAIK,EAA4B,SAAmClC,GACjE,OAKsC,IAApCA,EAAO8B,aAAa,cAKwB,IAA5CD,EAAgC7B,IAKpChjD,EAAQklD,0BAA4BA,EAEpC,IAAIC,EAAsB,SAA6BnwB,EAAQowB,GAC7D,OAAOpwB,EAAOhF,WAAao1B,EAAYp1B,UAEvCgF,EAAOC,OAASmwB,EAAYnwB,MAG9Bj1B,EAAQmlD,oBAAsBA,EAE9B,IAAIE,EAAwB,SAA+BD,EAAaE,GAEtE,OAWiE,IAA/DA,EAAeljD,KAAKsiD,EAAgBU,EAAYlwB,aAKS,IAAzDkwB,EAAYlwB,SAASL,OAjBM,kCAqB/B70B,EAAQqlD,sBAAwBA,EAEhC,IAAIE,EAAuB,SAA8BvwB,EAAQowB,GAC/D,MAA4B,KAArBA,EAAYtwB,OAAyC,KAAzBswB,EAAYlwB,UAE/CkwB,EAAYlwB,WAAaF,EAAOE,WAGlCl1B,EAAQulD,qBAAuBA,EAE/B,IAAIhB,EAA2B,SAAkCiB,EAAanB,GAC5E,OAAO,SAAUthB,GACf,GAAI3sB,OAAOkmC,mBAAoB,OAAO,EACtC,GAAImI,EAAwB1hB,GAAQ,OAAO,EAC3C,GAAI4hB,EAA8B5hB,GAAQ,OAAO,EACjD,IAAI0iB,EAAgBb,EAAkB7hB,EAAMxgC,QAC5C,GAAqB,MAAjBkjD,EAAuB,OAAO,EAClC,GAAIP,EAA0BO,GAAgB,OAAO,EAGrD,IAAIL,EAAc3hD,SAAS0zB,cAAc,KAGd,KAAvBsuB,EAAc1wB,OAChBqwB,EAAYrwB,KAAO0wB,EAAc1wB,MAG/B,sBAAuB3e,QAAUqvC,EAAc1wB,gBAAgB2wB,oBACjEN,EAAYrwB,KAAO0wB,EAAc1wB,KAAK4wB,SASxC,IAAI3wB,EAASvxB,SAAS0zB,cAAc,KAEpC,GADAnC,EAAOD,KAAO3e,OAAO2Z,SAASgF,MACmB,IAA7CowB,EAAoBnwB,EAAQowB,GAAwB,OAAO,EAE/D,IAAIE,EAAiB,IAAI7mB,OAAO,KAAM,EAAI+lB,EAAoB5sB,UAAS,EAAIqrB,EAAQlc,YAAY,OAC/F,GAAIse,EAAsBD,EAAaE,GAAiB,OAAO,EAC/D,GAAIC,EAAqBvwB,EAAQowB,GAAc,OAAO,EAEtD,GAAIf,EAAcuB,gBACG,IAAInnB,OAAO4lB,EAAcuB,gBAE3BxjD,KAAKgjD,EAAYlwB,UAChC,OAAO,EAIX6N,EAAM9hB,iBAGN,IAAI4kC,EAAsBnB,EAAgBU,EAAYlwB,UAAUhd,QAAQotC,EAAgB,KAExF,OADAE,EAAY,GAAKK,EAAsBT,EAAYvwB,OAASuwB,EAAYtwB,OACjE,IAIX90B,EAAQukD,yBAA2BA,G,wCCjLnC,EAAIzd,OAAyB+I,EAAAA,EAEzBoT,OAAUpT,EAAAA,EAEViW,EAAchf,QAAuB+I,EAAAA,cAAQ,SAEjD7vC,EAAAA,QAAqCqkD,IAAb,IACtB,EAAIA,KAAkB,IACpBA,SAAA,OAGEyB,GAAYluB,SAASxhB,IAAQiuC,EAAAA,EAAe,UAAUtvB,Q,uGCcnDgxB,G,SAIIC,SAAAA,EAAAA,GAEV3B,IAAAA,EAAkB,EADnBvV,QAEIv4B,OAKM,EAAYq2B,cAAAA,EAAoBA,SAAAA,KAAAA,M,0DCrC5C5sC,GAAAA,IAAAA,EAAwB,WACtB,sBAAoB+vB,KAEyB,OAAOk2B,KAKxC7jD,GAJH,QAG+BgU,IAApC8vC,OAAAA,kBAA2CC,OAAAA,iBAA1B,MAA8D/vC,SAAO+vC,GAAAA,OAAP,EAAwBtR,KAAK,eACtF3f,OAD1B,KAKA,IAAIkxB,EAAe,WACjB,IAAIpR,EAAWjlB,EAAWA,EAASmF,SAAWnF,EAAS8E,OAAS9E,EAAS+E,UAAOnsB,EAChFyN,OAAO6vC,KAAK,QAAS,YAAa,CAChCI,UAAWrR,KAaf,MATI,0BAA2B5+B,OAC7BiqB,uBAAsB,WACpBA,sBAAsB+lB,MAIxBhiD,WAAWgiD,EAAc,IAGpB,O,otBCykBgBjiB,IAQAA,EAAAA,IAAAA,IAAAA,EAAAA,WAAAA,MAAAA,oBCvlBF31B,kBAGV83C,YAA2B,iBAC/BC,WACMA,SAAiB5lD,EAAAA,GAAAA,GAAAA,EAAAA,IAAAA,GAAAA,SAG9B,YAAgD6lD,EAAAA,IAAAA,GAkM9CC,SAAAA,EAb+D,EAC/DxO,EAAAA,EAAAA,EAD+D,EAE/D9T,EAAAA,EAAAA,GAF+D,IAG/DuiB,EAAAA,EAAAA,YAIG/7C,IAJH+7C,IAeYC,EAfZD,IAAAA,MAAAA,GAsBF/b,EACApB,WA+DA,uBA/DuB,gBA6BdnB,SAAa,kBAAe3kC,UAASE,OAAAA,EAAAA,EAAgB4lC,WACxDnB,EAAAA,QAAQwe,EAAAA,QAAQC,QAAAA,eAAkBA,IAAlBA,OAAkBA,EAAAA,EACtClc,gBAAYic,EAAQE,WAAAA,SAAAA,GAAAA,IAAAA,IAA0BA,EAAAA,WAAAA,OAAAA,kBA1JhDnc,EAAAA,UAAAA,EAAAA,WAQEv0B,KAAe2wC,sBAAsB3e,QAAAA,OAAAA,QAAAA,QANjC,EAAuBhyB,EAAAA,KAAAA,KAAAA,EACrB4wC,EAAAA,KAAAA,EAAAA,MAAAA,MAAAA,MAAAA,eAHRrc,GAGQqc,QAAAA,QAAAA,GAAAA,EAAAA,KAAAA,EAAAA,KAAAA,GAAAA,KADqB5wC,MACrB4wC,GAAAA,OAAAA,QAAAA,OAAAA,IAuJcF,CAvJdE,IAmKJ5wB,EAAAA,GAAAA,EAAAA,CANFmT,QAOE0O,EAAAA,WACAgP,EAAAA,kBACG1d,GAAAA,MAML2d,EAAAA,GAAAA,EADGC,CAEHC,QAAAA,EAAAA,EAFGD,IAGH,gBACA5d,GAAAA,IAAAA,EAEE8d,CAAAA,EAAAA,GAAAA,IAAoB,EAAI,EAF1B9d,cArDkD,YAClDhpC,EAAA,MAIA+mD,WAEe3/C,EAAE4/C,OAAAA,EAAAA,SACDt2B,OAAJ,eACKu2B,MAAAA,WAEbC,GAEFA,MAAAA,GAAAA,KAES,iBAFTA,EAKS,EAAD,QACJC,EAAAA,EAAAA,GANJD,IASAC,EAAAA,GAAa,IAoCf/c,EAAAA,gBAYFgd,EACAC,UAKAf,GAlBElc,EAqBF,MAAoC,EAApC,EAEIkd,OACWA,EAAAA,EAAAA,gBAAkBA,EAAAA,EAAAA,SAGhB5P,aACA9T,gBACA0jB,GAAAA,cACA3Z,KAAAA,EAAAA,SAAAA,WAAAA,EAAAA,IAAAA,EACJ4Z,EAAAA,KAAAA,EAAAA,EAAAA,OACTC,EAAa7Z,EAAAA,MAAb6Z,IAAa7Z,IAAAA,EAAAA,UAEb6Z,GAAapjB,IAAO,EACpBojB,eACaC,GAAbD,IAbAF,EAuBAhB,EAAAA,GACWA,EAAAA,CAAAA,eAIbkB,EAAajB,yBAETzgB,GACDshB,MACH,aADGA,EAEH,qCAEEN,KAAAA,OAUA1iB,EAuIKgjB,IADQM,EACRN,EAAAA,CAAAA,YAAqBtjD,EAAAA,SAAQsjD,GAAYM,IAAAA,EAFbA,EAI9Bj1C,OAAAA,EAAAA,EAAAA,MAAAA,EAAAA,EAAAA,OCxb6C,MAAhDk1C,cACJJ,EACA7P,EAGA,cAEIrL,MAAAA,CAAAA,eAAAA,EAAAA,MAAAA,CAAAA,WAAAA,EAAAA,EAAAA,IAAAA,OAAAA,gBAAiBrD,EAAS4e,EAAkC,cAK5Dvb,MAAAA,CAAAA,MAAAA,CAAAA,SAAAA,EAAAA,QAAAA,UAAKrD,EAALqD,cACEA,MAAAA,CAAAA,IAAAA,GAAAA,KAAAA,eAAAA,cAAAA,OACEwb,IAAI,mDAGJ9mC,EAAAA,YAAAA,EAAAA,kEAA0E22B,MAAAA,CAAAA,SAAAA,OAAAA,QAAAA,QAAAA,SAC1E1O,aACE8e,MAAAA,EADK,SAELC,GAAAA,IACApa,EAAAA,EAAAA,SAAAA,EAAAA,EARJtB,EADFA,GASMsB,OAWV,EACE,cACEtB,EAAAA,SAAAA,KAAC2b,EAAD3b,cACEA,EAAAA,EAAAA,GAAAA,IAAAA,GAAAA,IAAAA,EAAAA,CAAAA,MAAAA,SAAAA,UAAAA,MAACsb,aDqZAl1C,YCxfT,uFC0C6C,QAAvCie,OAAuC,IAC3C3P,EAAAA,GAD2C,EAE3CknC,EAAAA,EAAAA,WACAtB,EAAAA,EAAAA,SACAkB,EAAAA,EAAAA,EAAAA,GAAAA,OACAhB,EAIA,cACExa,MAAAA,EAAAA,GAAAA,EAAAA,CAAAA,SAAAA,QAAAA,QAAAA,EAAAA,IAAAA,EAAAA,OAAAA,EAAAA,WAEE6b,OAAAA,EAAS,EADL99C,OAEJu8C,EAASA,OACT5lC,EAAK8lC,cAAmBz+C,OAAAA,EACby+C,EAAmBz+C,IAJ1BgC,EAKJ69C,IAAAA,MAAqBA,GAAS7/C,EAAAA,EAQvB+/C,aAAUrc,SAAAA,EAAAA,GAAAA,IAAAA,EAAAA,EAAAA,SAAAA,EAAAA,EAAAA,QAAAA,OAAAA,IACrB,KAEE1B,EAAAA,EAAAA,EADEge,WAAAA,OACFhe,IADYsd,GACZtd,EADYsd,EAAAA,EAAAA,EAAAA,GAAAA,EAAAA,EAAU,QAAIb,MAAAA,OAAAA,EAAAA,EAAAA,OAAAA,EAGZz8C,EACRi+C,cACJhc,EAAAA,EAAAA,GAAAA,EAAAA,EAAAA,CAAAA,MAAAA,EAAAA,WAAAA,EAAAA,SAAAA,KAAAA,OAAC3b,EAAAA,OAICm2B,EAKCa,cAKHrb,UAAAA,KAAAA,EAAAA,KAAAA,SAAAA,GAAAA,IAAAA,EAAAA,EAAAA,MAAAA,EAAAA,EAAAA,OAAAA,EAAAA,EAAAA,KACW/lC,OAAOgiD,EAAe5+C,cAC7B2iC,SAAAA,CAAAA,IAAAA,EAAAA,IAAAA,EAAAA,IAAAA,EAAAA,KAAAA,EAAAA,MAAAA,EAAAA,OAAAA,EAAAA,OAAAA,EACElqC,cADFkqC,OAEE3iC,EACA4+C,EAAAA,MACAL,OAAQpB,GAAaoB,KAAS7/C,EAAAA,UAAAA,CAAAA,IAChBy+C,EAUpBnb,OACJ3qB,WAAKwnC,IAAAA,EAAAA,OACLV,WAAKU,MAAAA,EAAAA,OACLC,OAAOD,EAHS,OAIhBN,WAAQM,EACR1B,MAAAA,EAAY0B,YAAAA,UAAAA,EAAAA,UAAAA,CAAAA,IAAAA,EAIN7c,OACNmc,WAAKU,WAAAA,EACL1B,KAAAA,SAAY0B,EACZH,MAAAA,CAAAA,IAAUG,EAAAA,OACRxnC,WAAKwnC,OAAAA,EADmB,OAExBN,MAAQM,EAAAA,SACDA,QAAAA,EAETb,QAASa,EAAAA,UACPA,CAAAA,EAAAA,MAAAA,CAAoB,MAClBA,EAAAA,OACED,WAAOC,KAAAA,EAAAA,OACP7+C,MAAM6+C,EAAAA,OACNC,OAAOD,EAHO,OAIdN,aAAQM,EAAAA,MAJVA,CADkB,MAOlBA,EAAAA,OACED,KAAOC,EAAAA,OACP7+C,WAAM6+C,MAAAA,EAAAA,OACNC,OAAOD,EAHO,OAIdN,iBAAQM,IAAAA,EAAAA,CAAAA,YAAAA,EAAAA,SAAAA,GAAAA,IAAAA,EAJM,EAPE,SAWS3c,EAAAA,EAAAA,EAAAA,GAAAA,OC5HpB6c,EACX,EACML,cAEA/b,EAAAA,EAAAA,GAAAA,EAAAA,CAAAA,SAAAA,CAAAA,IAAAA,GAAAA,eAAAA,EAAAA,IAAC8b,MAEW,EAJZC,cAYK/b,MAAAA,EAAAA,GAAAA,KAAAA,EAAAA,YAAAA,cAAAA,EAAAA,UAAAA,CAAAA,SAIDc,EAEVib,OAAAA,QAAUG,OAAAA,EAAAA,EAAAA,gBAAAA,EAAAA,EAAAA,QADY,IAEtBb,SAAAA,EAASS,EAAQzc,GAAAA,OAAAA,EAAAA,GAAAA,IAAWgc,MAAAA,iBACvB,EAAUt9C,kBACRA,EAAMs+C,yBAGAp8C,OACSo8C,IAAAA,GAA4Bl/C,EAAAA,EC/BvCm/C,aAAY7c,SAAAA,EAAAA,GAAAA,OAAAA,EAErB,cACEO,EAAAA,SAAAA,KAAAA,EAAAA,cACEA,EAAAA,EAAAA,CAAAA,IAAAA,GAAAA,IAAAA,EADFA,cAEEA,WAAAA,KAAAA,EAAAA,cACEA,EAAAA,EAAAA,GAAAA,EAAAA,CAAAA,YAAAA,UAAAA,EAAAA,YAAAA,YAAoBwa,EAAAA,UAAY,EAA/BsB,UAODhb,IAAAA,EAAAA,SAAAA,EAAAA,EAAAA,GACVwb,OAAUjd,EAAAA,KAAoBA,KAAAA,EAAAA,IAAAA,IC+HrB6c,OAAAA,MAAAA,IAAAA,CAAAA,EAAAA,EAAAA,GAAAA,OAAAA,GAAAA,MAAAA,KAAAA,UAAAA,KAAAA,IAAAA,MAAAA,iCAAkC/+C,EAAlC++C,4JAH8B/+C,EAAAA,CAAAA,MAAAA,IAM9B++C,OAAAA,WAAAA,IAAAA,GAAAA,EAAAA,CAAAA,QAAAA,aAAAA,EAAAA,SAAAA,GADgB,IAEvBV,EAFuB,EAElBe,SAAAA,EAAAA,GAAAA,IAAAA,EAAAA,OC9FDC,EAAAA,EAAAA,KAAAA,KAAAA,IAAAA,MAgBJ,MAAYz+C,EAAAA,EAAAA,aAZoC0+C,EAAAA,SAAAA,CAAAA,SAAAA,GAAAA,EAAAA,YAAAA,CAAAA,SAYpC1+C,GARZ2+C,EAAAA,aAEElhB,KAAAA,EAAAA,KAAS7xB,EAAAA,EAEuB,aAC5B8yC,EAAAA,kBAAAA,EAAAA,EAAAA,MAAAA,CAAAA,UAAAA,IAAAA,UACNE,GAAAA,EAAAA,EAAAA,GAAAA,EAAAA,GAKE3e,UACE4e,OAAAA,OACA5B,EAAAA,WAAU,8GAId6B,QAAAA,cAAoBnpC,2BACW8nB,OAAQ7E,KAAAA,IAAAA,KAAAA,SAAAA,SAAAA,KAAAA,SAIrC,SAAI+iB,EAA6CzjD,QAAK6mD,WAASthB,EAC/CA,EACC5hC,KAAAA,KAFb8/C,EAEa9/C,KAAAA,EAAAA,QAAAA,MAAAA,SAAAA,GAAAA,IAAAA,EAAAA,EAAAA,YAAAA,EAAAA,KAAAA,UAGqB,EAAD,YAAGmjD,QAAAA,EAAAA,aACrBl4C,EAAKC,EAAAA,CAAAA,MAAUy5B,EAAKxgC,MAAMi/C,OAAMzC,UAC5C0C,EAAAA,WAAeF,EAAAA,GAEhBC,SAAaA,EAAAA,UACbJ,EAAAA,GAAAA,eAAWlpC,WACDA,MAJMqpC,EAKhBG,QAAAA,EAAAA,SAAgB,2BACdn/C,IAAMo/C,EAAAA,KAAAA,GAAAA,EAAAA,KAEN5e,EAAKgP,SACHyN,EAAAA,iBAGCzc,EAAKR,2BAKZQ,SAAKme,GAjBaK,IAPtB,EATY,UAyCdK,IAAAA,IAAAA,GAAAA,GAAAA,EAA2BC,EAAAA,KAAAA,KAAAA,EACzBjD,KAAAA,EAAAA,QAAAA,MAAAA,SAAAA,GAAAA,IAAAA,GAAAA,EAAAA,EAAAA,6BAAuC,cAC/BkD,EAAuBC,KADWA,QAAAA,CAAAA,IAAAA,EAAAA,KAAAA,UACgB,QACtD,MAAS3qB,QAAK4I,MACZ,EAAMgiB,MAAW34C,aAAe44C,EAAK1/C,MAAMi/C,YAA3C,CAAiDzC,UAC5Cx8C,GAAL0/C,EAAWC,KAAAA,EAAAA,SAAN3/C,CAAAA,WAAM2/C,EAAAA,SACTC,GAAAA,EAAWN,SAEbI,EAAKlQ,KAAAA,UACHqP,EAAAA,aACA5B,EAAUqC,EAAAA,WAKZI,EAAK7qB,sBACF+pB,SAAeW,EAAqBG,GAAK7qB,IAD5C6qB,EAdNrD,KAekDxnB,GAKpDsa,EAAAA,OAAAA,KAAAA,MAAAA,YAAAA,EAAiCM,WAC3BoQ,EAAAA,WACC3nD,KAAKyd,YAAMkpC,SAAuBA,GAAAA,KAAlC3mD,MAA0D+kD,MAA1D/kD,SAEEymD,EAAAA,MAAAA,SAALzmD,KAGEA,eAAW+mD,KAAMzC,eAA2BA,KAA5CtkD,SAEO0mD,SAAAA,KAEP1mD,eAAK0mD,EAAL1mD,EAGkCgnD,QAChC3e,KAAAA,KAAAA,KAAAA,UAAAA,KAAAA,SAAAA,CAAAA,WAAO,EAAMroC,UAAAA,IAAUulC,WAI3BvlC,EAAKs3C,4BAGDyN,MAHJ/kD,GAKE,aACOmnD,UAAAA,GAAAA,KAAAA,aAhBLnnD,EAoBJ2nD,IAtBE3nD,GAyBAA,EAAK28B,kBACP38B,WAAK4mD,GAAAA,KAAL5mD,KAA6Bu3C,QAMjC/P,CAAAA,IAAAA,EAAAA,KAAAA,KAAAA,QAAAA,cACMxnC,2BAC2BulC,EAAAA,KAAQ7E,UAAAA,KAAAA,MAAAA,MAAAA,QAAAA,GAAAA,KAGpB9xB,EAAKC,CAAAA,IAAAA,EAALD,EAAe5O,GAAAA,OAAW+mD,GAAAA,EAAX/mD,KAAiBskD,OAI/Cb,cAGA,OAIA/lD,EAAA,kBAHKoK,SAAM2/C,CAAAA,IAAAA,EAAAA,EAGX,OAHWA,GAAAA,EAAc,KAAEC,OAAW,SAGvB9vC,EAAAA,KAAU,wBAClB9P,EAAAA,iBAAMo/C,QACXzC,SAFF,IAOE,EAAMniD,oBAEKnB,OAAAA,GAAAA,MAAyB,gBACvBC,EAAAA,MAAAA,SAAAA,EAAAA,MAA4B8lD,OAEjCp/C,KAANxF,4BACAmiD,KAIJ,uBAIG0C,WAAAA,KAAAA,eAIT1f,KAAAA,eAAAA,KAAAA,SAEWif,SAAAA,KAEP1mD,cAAK0mD,KAAL1mD,iBAGkBulC,EAAAA,OAAWvlC,WAAKgnD,IAA9BhnD,EACFA,KAAKgnD,MAAAA,IAAAA,MAtJG,EAsJHA,KAOX3e,MAAAA,MAAAA,EACE,QAAaroC,EAAAA,EAAK8H,OAAL9H,EAAWg0C,EAAAA,OACUh0C,EAAAA,SAAW+mD,EAAAA,EAD7C,GACQ3R,IAAAA,EAAAA,GAAO9T,EAAAA,uBAAQ2jB,MNhJpB2C,UACUvc,GAAAA,EAAb6Z,MAAa7Z,EAAAA,EAAAA,OACAgK,GAAAA,gBAAAA,IAQX6P,EAAaO,yDAGfjf,CAAAA,UAAAA,EAAAA,4BAAAA,GAAAA,MAIAA,GM+HkCxmC,CN/HlCwmC,EAAAA,EAAAA,GACA,8BACAE,GAAAA,EAAOwe,KMkIa9P,MANpB,eAIE5O,MAAAA,QACGqhB,EAAAA,KAGDrhB,MAAiB1+B,OAAM0+B,IAAAA,EAAAA,SAElB1+B,EAAAA,EAAL9H,GAAK8H,IAAL9H,EACFwmC,KAAYxmC,MAAK8H,cAGbggD,IAAAA,EAAAA,+CLnMNA,EAAAA,EAAAA,IAAAA,cAAAA,gBAAAA,IAAAA,EAAAA,0BACqB,mIAIa1S,EAAAA,YAAAA,EAAAA,yIAAuJA,EKwL9J5O,CLxL8J4O,EAAAA,EAAAA,GAAAA,OAAAA,EKgMzL,cACErL,EAAAA,EAAAA,GAAAA,EAAAA,CAAAA,MAAAA,EAAAA,GAAAA,EAAAA,KAAAA,MAAAA,MAAAA,CAAAA,gBACM8d,KACJnhB,MAAAA,kBAEgBA,UACdse,GAAAA,EAAAA,IAAiBhlD,EAAAA,IAAK8H,IAAL9H,KAAWglD,KAAAA,wBAEPxe,CAAAA,OAATuhB,GACdjgB,0BACAkgB,MAAAA,EDhHC/B,CCgHwB,EAGzBgC,WAAAA,EAhN0Bt/C,SAAAA,GAAAA,IAAAA,EAAAA,MAAAA,OAA5B49C,KAgOQ7/C,IAAAA,EAAAA,EAAAA,MAAAA,EAAAA,KAAAA,UAAAA,CAAAA,EAAAA,MAAAA,EAAAA,OAIV,EAAsDqgD,OAAAA,EAAAA,UAEhCl4C,EAAAA,MAALD,EADiBm4C,kBAAAA,OACF,EAQhC,cAAOhd,EAAAA,EAAAA,CAAAA,IAAAA,GAAAA,KAAAA,EAAAA,UAAAA,EAAAA,EAAAA,YAAAA,cAAP,IClMyBkb,EDqM7BiD,EAAY9e,CAAAA,MAAAA,cAEAyB,UAAAA,QAAAA,SAAAA,cAAAA,mBAAAA,cAAAA,UAAAA,UAAAA,mBAAAA,aAAAA,aAAAA,cAAAA,cAAAA,kBAAAA,EAAAA,SAAAA,EAAAA,GAAAA,MAAAA,cAAAA,EAAAA,QCzONsd,UAAAA,GACJrgD,WAIA,aASOm+C,OAAAA,MAAAA,IAAAA,CAAAA,EAAAA,GAAAA,OAAAA,GAAAA,MAAAA,KAAAA,UAAAA,KAAAA,IAAAA,MAAAA,IAAwBG,EAAAA,KAAAA,EAAAA,GAAAA,iDAHJA,EAAAA,IAAAA,IAAAA,CAAAA,QAAAA,YAAAA,gBAMvBgC,EAAe,KAAIz8C,IAGlBs6C,OAAAA,WAAAA,IAAAA,EAAAA,MAAAA,EAAAA,OAAAA,EAAAA,MAAAA,IAIEA,OAAAA,OAAAA,SAAAA,GAAAA,QAAAA,IAAAA,EAAAA,SACPhB,EAAAA,IAAS,EAAD,eAACn9C,IACP,uBAGiBX,EAAAA,OAAU89C,wHAKFA,GAAAA,EA7Cfv+C,EA6Ceu+C,SAAAA,GAAAA,IAAAA,EAAAA,EAAAA,IAfJ,ECrEnBoD,EAAAA,YDMJH,EAEAz7C,EAAA,YAAAA,EAAA,GACEgS,OAAAA,GACa6pC,QAAbC,KAAAA,GACAC,EAiBG1gD,EAMCwgD,cACKve,EAAAA,EAAAA,CAAAA,MAAAA,GAAAA,KAAAA,QAAAA,KAAAA,mBAACme,GAIAxhD,QAAAA,SAAAA,EAAAA,GAAAA,IAAAA,EAAAA,EAAAA,SAARtB,OALF,EEhDF4mC,WAOA,WALAjC,EAAAA,EAAgB,YAEdoa,KAAAA,EAAAA,UAAAA,IAAAA,EAAAA,EAAAA,YAAAA,cAAAA,EAAAA,UACC,G,4HCJWhB,GAAAA,IAAAA,EAA6B,EAAXlX,QAAW,OAC3C,EAAO,gBAAC,Y,yCCFV,EAAIhI,OAAyB+I,EAEzBoT,OAAJ,EAEIqI,EAAuBxkB,S,mDCJ3B9mC,aAAAA,EA4BAA,EAAQ43B,QAlBO,SAAkB1C,EAAUq2B,GACzC,IAAIC,EAAkB,uBAEtB,IAAK/qD,MAAMgB,QAAQ8pD,GACjB,OAAOC,EAGT,IAAIC,EAAoBF,EAAmBG,MAAK,SAAU7iD,GACxD,OAAOqsB,EAASuC,WAAW5uB,EAAI8iD,cAGjC,OAAKF,EAIE,YAAcA,EAAkBG,KAAO,eAHrCJ,I,kvBCrBP/zB,EAAa,SAAoBI,EAAQhD,GAC3C,OAAOgD,EAAOlP,OAAO,EAAGkM,EAAOv0B,UAAYu0B,GAwBzC2C,EAAO,SAAcM,EAAQjB,GAW/B,IAVA,IAAIztB,OAAQ,EACR2uB,OAAW,EAGXC,EADanB,EAAI3Z,MAAM,KACE,GAEzB+a,EAAcC,EAAWF,GACzBG,EAA+B,KAAnBF,EAAY,GACxBG,EAASC,EAAWP,GAEfv3B,EAAI,EAAGqb,EAAIwc,EAAO93B,OAAQC,EAAIqb,EAAGrb,IAAK,CAC7C,IAAI+3B,GAAS,EACTC,EAAQH,EAAO73B,GAAGg4B,MAEtB,GAAIA,EAAMX,QACRG,EAAW,CACTQ,MAAOA,EACPC,OAAQ,GACR3B,IAAKA,OAJT,CAcA,IALA,IAAI4B,EAAgBP,EAAWK,EAAMG,MACjCF,EAAS,GACTpZ,EAAMpD,KAAKoD,IAAI6Y,EAAY33B,OAAQm4B,EAAcn4B,QACjDo2B,EAAQ,EAELA,EAAQtX,EAAKsX,IAAS,CAC3B,IAAIiC,EAAeF,EAAc/B,GAC7BkC,EAAaX,EAAYvB,GAE7B,GAAImC,EAAQF,GAAe,CAKzBH,EADYG,EAAaz2B,MAAM,IAAM,KACrB+1B,EAAY/1B,MAAMw0B,GAAO7vB,IAAIglB,oBAAoBriB,KAAK,KACtE,MAGF,QAAmBb,IAAfiwB,EAA0B,CAI5BN,GAAS,EACT,MAGF,IAAIQ,EAAeC,EAAQrb,KAAKib,GAEhC,GAAIG,IAAiBX,EAAW,EACuC,IAA5Ca,EAAc91B,QAAQ41B,EAAa,KAC6J,KAAU,GACnO,IAAIvrB,EAAQse,mBAAmB+M,GAC/BJ,EAAOM,EAAa,IAAMvrB,OACrB,GAAIorB,IAAiBC,EAAY,CAItCN,GAAS,EACT,OAIJ,IAAKA,EAAQ,CACXlvB,EAAQ,CACNmvB,MAAOA,EACPC,OAAQA,EACR3B,IAAK,IAAMoB,EAAY/1B,MAAM,EAAGw0B,GAAOltB,KAAK,MAE9C,QAIJ,OAAOJ,GAAS2uB,GAAY,MAK1B3uB,EAAQ,SAAesvB,EAAM7B,GAC/B,OAAOW,EAAK,CAAC,CACXkB,KAAMA,IACJ7B,IA6BFrwB,EAAU,SAAiBsvB,EAAI+D,GAEjC,GAAIpC,EAAW3B,EAAI,KACjB,OAAOA,EAGT,IAAIgE,EAAYhE,EAAG5Y,MAAM,KACrB6c,EAAaD,EAAU,GACvBE,EAAUF,EAAU,GAGpBG,EADcJ,EAAK3c,MAAM,KACE,GAE3Bgd,EAAahC,EAAW6B,GACxBI,EAAejC,EAAW+B,GAE9B,GAAsB,KAAlBC,EAAW,GACb,OAAOT,EAASQ,EAAcD,GAIhC,IAAKvC,EAAWyC,EAAW,GAAI,KAAM,CACnC,IAAIhF,EAAWiF,EAAa/c,OAAO8c,GAAY1wB,KAAK,KACpD,OAAOiwB,GAA2B,MAAjBQ,EAAuB,GAAK,KAAO/E,EAAU8E,GAWhE,IAHA,IAAII,EAAcD,EAAa/c,OAAO8c,GAClCG,EAAW,GAEN95B,EAAI,EAAGqb,EAAIwe,EAAY95B,OAAQC,EAAIqb,EAAGrb,IAAK,CAClD,IAAI24B,EAAUkB,EAAY75B,GACV,OAAZ24B,EAAkBmB,EAASC,MAA2B,MAAZpB,GAAiBmB,EAASh2B,KAAK60B,GAG/E,OAAOO,EAAS,IAAMY,EAAS7wB,KAAK,KAAMwwB,IAKxCzC,EAAe,SAAsBmB,EAAMF,GAC7C,IAAI+B,EAAc7B,EAAKxb,MAAM,KACzBsd,EAAWD,EAAY,GACvBE,EAAeF,EAAY,GAC3BZ,OAAyBhxB,IAAjB8xB,EAA6B,GAAKA,EAG1CC,EAAkB,IADPxC,EAAWsC,GACW3zB,KAAI,SAAUqyB,GACjD,IAAI9vB,EAAQ2vB,EAAQrb,KAAKwb,GACzB,OAAO9vB,EAAQovB,EAAOpvB,EAAM,IAAM8vB,KACjC1vB,KAAK,KACJmxB,EAAmBnC,EAAOzI,SAE1B6K,GADJD,OAAwChyB,IAArBgyB,EAAiC,GAAKA,GACZ9F,OAEzCgG,QADmClyB,IAA1BiyB,EAAsC,GAAKA,GAC/B1d,MAAM,KAAK,IAAM,GAE1C,OADAwd,EAAkBjB,EAASiB,EAAiBf,EAAOkB,IAgBjD9B,EAAU,SAWVE,EAAY,SAAmBC,GACjC,OAAOH,EAAQ32B,KAAK82B,IAGlBL,EAAU,SAAiBK,GAC7B,OAAOA,GAA0B,MAAfA,EAAQ,IAGxBC,EAAY,SAAmBZ,EAAO7B,GAMxC,MAAO,CACL6B,MAAOA,EACPa,MAPUb,EAAMX,QAAU,EAAIM,EAAWK,EAAMG,MAAMW,QAAO,SAAUD,EAAOF,GAG7E,OAFAE,GApBiB,GAMD,SAAuBF,GACzC,MAAmB,KAAZA,EAcDI,CAAcJ,GAAwCD,EAAUC,GAAUE,GAnB7D,EAmB8FP,EAAQK,GAAUE,GAASG,EAAoCH,GApB9J,EAoBYA,GAjBd,EAkBPA,IACN,GAID1C,MAAOA,IAIP2B,EAAa,SAAoBP,GACnC,OAAOA,EAAOjxB,IAAIsyB,GAAWK,MAAK,SAAUhqB,EAAG6J,GAC7C,OAAO7J,EAAE4pB,MAAQ/f,EAAE+f,MAAQ,EAAI5pB,EAAE4pB,MAAQ/f,EAAE+f,OAAS,EAAI5pB,EAAEknB,MAAQrd,EAAEqd,UAIpEwB,EAAa,SAAoBrB,GACnC,OAAOA,EACN3e,QAAQ,eAAgB,IAAIgF,MAAM,MAGjCuc,EAAW,SAAkBvE,GAC/B,IAAK,IAAIwE,EAAOl3B,UAAUlC,OAAQq5B,EAAQl5B,MAAMi5B,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAC/FD,EAAMC,EAAO,GAAKp3B,UAAUo3B,GAM9B,OAAO1E,IAHPyE,EAAQA,EAAMxuB,QAAO,SAAUmR,GAC7B,OAAOA,GAAKA,EAAEhc,OAAS,OAEGq5B,EAAMr5B,OAAS,EAAI,IAAMq5B,EAAMnwB,KAAK,KAAO,KAGrEwvB,EAAgB,CAAC,MAAO,QC/QxB32B,EAAWzB,OAAO0B,QAAU,SAAUC,GACxC,IAAK,IAAIhC,EAAI,EAAGA,EAAIiC,UAAUlC,OAAQC,IAAK,CACzC,IAAIkC,EAASD,UAAUjC,GAEvB,IAAK,IAAImC,KAAOD,EACV7B,OAAOD,UAAUgC,eAAeV,KAAKQ,EAAQC,KAC/CH,EAAOG,GAAOD,EAAOC,IAK3B,OAAOH,GAGLoyB,EAAc,SAAqBlyB,GACrC,IAAImyB,EAAmBnyB,EAAOstB,SAC1B8E,EAASD,EAAiBC,OAC1BC,EAAOF,EAAiBE,KACxBC,EAAOH,EAAiBG,KACxBC,EAASJ,EAAiBI,OAC1BhF,EAAW4E,EAAiB5E,SAC5BiF,EAAOL,EAAiBK,KACxBlD,EAAW6C,EAAiB7C,SAC5BC,EAAO4C,EAAiB5C,KACxBkD,EAAWzyB,EAAOstB,SAASmF,UAE1BA,GAAYH,GAAQI,IAEvBD,EADU,IAAIE,IAAIL,GACHG,UAGjB,MAAO,CACLA,SAAUpJ,UAAUF,UAAUsJ,IAC9BL,OAAQA,EACRC,KAAMA,EACNC,KAAMA,EACNC,OAAQA,EACRhF,SAAUA,EACViF,KAAMA,EACNlD,SAAUA,EACVC,KAAMA,EACN1R,MAAO7d,EAAO4yB,QAAQ/U,MACtB5d,IAAKD,EAAO4yB,QAAQ/U,OAAS7d,EAAO4yB,QAAQ/U,MAAM5d,KAAO,YAIzD4yB,EAAgB,SAAuB7yB,EAAQuC,GACjD,IAAIuwB,EAAY,GACZxF,EAAW4E,EAAYlyB,GACvB+yB,GAAgB,EAEhBC,EAAoB,aAExB,MAAO,CACL,eACE,OAAO1F,GAGT,oBACE,OAAOyF,GAGTE,sBAAuB,WACrBF,GAAgB,EAChBC,KAEF/B,OAAQ,SAAgBpwB,GACtBiyB,EAAUlxB,KAAKf,GAEf,IAAIqyB,EAAmB,WACrB5F,EAAW4E,EAAYlyB,GACvBa,EAAS,CACPysB,SAAUA,EACV6F,OAAQ,SAKZ,OADAnzB,EAAOuB,iBAAiB,WAAY2xB,GAC7B,WACLlzB,EAAOwB,oBAAoB,WAAY0xB,GACvCJ,EAAYA,EAAUpqB,QAAO,SAAUhH,GACrC,OAAOA,IAAOb,OAIpBuyB,SAAU,SAAkBC,GAC1B,IAAIC,EAAOvzB,UAAUlC,OAAS,QAAsBqI,IAAjBnG,UAAU,GAAmBA,UAAU,GAAK,GAC3E8d,EAAQyV,EAAKzV,MACb0V,EAAeD,EAAK7d,QACpBA,OAA2BvP,IAAjBqtB,GAAqCA,EAEnD,GAAkB,iBAAPF,EACTrzB,EAAO4yB,QAAQY,GAAGH,OACb,CACLxV,EAAQje,EAAS,GAAIie,EAAO,CAC1B5d,IAAK+N,KAAKD,MAAQ,KAGpB,IACMglB,GAAiBtd,EACnBzV,EAAO4yB,QAAQa,aAAa5V,EAAO,KAAMwV,GAEzCrzB,EAAO4yB,QAAQc,UAAU7V,EAAO,KAAMwV,GAExC,MAAOnuB,GACPlF,EAAOstB,SAAS7X,EAAU,UAAY,UAAU4d,IAIpD/F,EAAW4E,EAAYlyB,GACvB+yB,GAAgB,EAChB,IAAIY,EAAa,IAAI7vB,SAAQ,SAAU8vB,GACrC,OAAOZ,EAAoBY,KAQ7B,OANAd,EAAU1vB,SAAQ,SAAUvC,GAC1B,OAAOA,EAAS,CACdysB,SAAUA,EACV6F,OAAQ,YAGLQ,KAOTE,EAAqB,WACvB,IAAIC,EAAc/zB,UAAUlC,OAAS,QAAsBqI,IAAjBnG,UAAU,GAAmBA,UAAU,GAAK,IAClFg0B,EAAcD,EAAYrzB,QAAQ,KAClCuzB,EAAkB,CACpBvB,SAAUsB,GAAe,EAAID,EAAY5N,OAAO,EAAG6N,GAAeD,EAClE1B,OAAQ2B,GAAe,EAAID,EAAY5N,OAAO6N,GAAe,IAE3DE,EAAQ,EACRC,EAAQ,CAACF,GACTG,EAAS,CAAC,MACd,MAAO,CACL,eACE,OAAOD,EAAMD,IAGf1yB,iBAAkB,SAA0B7B,EAAMgC,KAClDF,oBAAqB,SAA6B9B,EAAMgC,KACxDkxB,QAAS,CACP,cACE,OAAOsB,GAGT,YACE,OAAOD,GAGT,YACE,OAAOE,EAAOF,IAGhBP,UAAW,SAAmB7V,EAAOlI,EAAGye,GACtC,IAAIC,EAAaD,EAAI3Z,MAAM,KACvBgY,EAAW4B,EAAW,GACtBC,EAAcD,EAAW,GACzBjC,OAAyBlsB,IAAhBouB,EAA4B,GAAKA,EAE9CL,IACAC,EAAMtyB,KAAK,CACT6wB,SAAUA,EACVL,OAAQA,EAAOv0B,OAAS,IAAMu0B,EAASA,IAEzC+B,EAAOvyB,KAAKic,IAEd4V,aAAc,SAAsB5V,EAAOlI,EAAGye,GAC5C,IAAIG,EAAcH,EAAI3Z,MAAM,KACxBgY,EAAW8B,EAAY,GACvBC,EAAeD,EAAY,GAC3BnC,OAA0BlsB,IAAjBsuB,EAA6B,GAAKA,EAE/CN,EAAMD,GAAS,CACbxB,SAAUA,EACVL,OAAQA,GAEV+B,EAAOF,GAASpW,GAElB2V,GAAI,SAAYH,GACd,IAAIoB,EAAWR,EAAQZ,EAEnBoB,EAAW,GAAKA,EAAWN,EAAOt2B,OAAS,IAI/Co2B,EAAQQ,OASZ/B,IAAiC,oBAAX/e,SAA0BA,OAAO3S,WAAY2S,OAAO3S,SAAS0zB,eAMnFC,EAAgB9B,EAHXH,EAAY/e,OAASkgB,KAI1B,EAAWc,EAAcvB,SC7MzB,EAAWj1B,OAAO0B,QAAU,SAAUC,GACxC,IAAK,IAAIhC,EAAI,EAAGA,EAAIiC,UAAUlC,OAAQC,IAAK,CACzC,IAAIkC,EAASD,UAAUjC,GAEvB,IAAK,IAAImC,KAAOD,EACV7B,OAAOD,UAAUgC,eAAeV,KAAKQ,EAAQC,KAC/CH,EAAOG,GAAOD,EAAOC,IAK3B,OAAOH,GAGT,SAASspD,EAAyB/oD,EAAKG,GACrC,IAAIV,EAAS,GAEb,IAAK,IAAIhC,KAAKuC,EACRG,EAAKC,QAAQ3C,IAAM,GAClBK,OAAOD,UAAUgC,eAAeV,KAAKa,EAAKvC,KAC/CgC,EAAOhC,GAAKuC,EAAIvC,IAGlB,OAAOgC,EAGT,SAAS85B,EAAgB5vB,EAAUuvB,GACjC,KAAMvvB,aAAoBuvB,GACxB,MAAM,IAAIn6B,UAAU,qCAIxB,SAASiqD,EAA2B7rD,EAAMgC,GACxC,IAAKhC,EACH,MAAM,IAAIC,eAAe,6DAG3B,OAAO+B,GAAyB,iBAATA,GAAqC,mBAATA,EAA8BhC,EAAPgC,EAG5E,SAAS8pD,EAAUrrD,EAAUI,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIe,UAAU,kEAAoEf,GAG1FJ,EAASC,UAAYC,OAAOC,OAAOC,GAAcA,EAAWH,UAAW,CACrEI,YAAa,CACXwM,MAAO7M,EACP0F,YAAY,EACZ21B,UAAU,EACV11B,cAAc,KAGdvF,IAAYF,OAAOS,eAAiBT,OAAOS,eAAeX,EAAUI,GAAcJ,EAASc,UAAYV,GAW7G,IAAIkrD,EAAqB,SAA4B7pD,EAAM8pD,GACzD,IAAIC,GAAM,IAAA1e,eAAcye,GAExB,OADAC,EAAIxe,YAAcvrC,EACX+pD,GAKLC,EAAkBH,EAAmB,YAGrCpjB,EAAW,SAAkB7S,GAC/B,IAAI8Y,EAAW9Y,EAAK8Y,SACpB,OAAO,gBAAoBsd,EAAgBnR,SAAU,MAAM,SAAU/I,GACnE,OAAOA,EAAUpD,EAASoD,GAAW,gBAAoBma,EAAkB,KAAMvd,OAIjFud,EAAmB,SAAUpjB,GAG/B,SAASojB,IACP,IAAIC,EAAOlnD,EAEXk3B,EAAgBx5B,KAAMupD,GAEtB,IAAK,IAAI1yB,EAAOl3B,UAAUlC,OAAQ+J,EAAO5J,MAAMi5B,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC3EvvB,EAAKuvB,GAAQp3B,UAAUo3B,GAGzB,OAAeyyB,EAASlnD,EAAQ2mD,EAA2BjpD,KAAMmmC,EAAiB/mC,KAAKW,MAAMomC,EAAkB,CAACnmC,MAAMua,OAAO/S,KAAiBlF,EAAMmb,MAAQ,CAC1J2xB,QAAS9sC,EAAMk6C,aACfiN,KAAM,CACJC,SAAU,OAEHT,EAA2B3mD,EAAnCknD,GAqEL,OArFAN,EAAUK,EAAkBpjB,GAmB5BojB,EAAiBzrD,UAAU0+C,WAAa,WACtC,IAAImN,EAAiB3pD,KAAK8H,MAAM0qB,QAGhC,MAAO,CACLQ,SAHa22B,EAAe32B,SAI5B9F,SAHay8B,EAAez8B,WAOhCq8B,EAAiBzrD,UAAU8rD,kBAAoB,SAA2B/+C,EAAOsD,GAC/E,IAAI07C,EAAWh/C,GAOb,MAAMA,GAJNi/C,EAFgB9pD,KAAK8H,MAAM0qB,QAAQQ,UAEzBnoB,EAAMmpB,IAAK,CACnB3e,SAAS,KAOfk0C,EAAiBzrD,UAAUupC,mBAAqB,SAA4BC,EAAWC,GACjFA,EAAU6H,QAAQliB,WAAaltB,KAAKyd,MAAM2xB,QAAQliB,UACpDltB,KAAK8H,MAAM0qB,QAAQK,yBAIvB02B,EAAiBzrD,UAAU0pC,kBAAoB,WAC7C,IAAIO,EAAS/nC,KAETypD,EAAOzpD,KAAKyd,MAAMgsC,KAClBj3B,EAAUxyB,KAAK8H,MAAM0qB,QAEzBA,EAAQK,wBAER42B,EAAKC,SAAWl3B,EAAQ3B,QAAO,WAC7BntB,QAAQC,UAAUC,MAAK,WAErB45B,uBAAsB,WACfuK,EAAOgiB,WACVhiB,EAAOuP,UAAS,WACd,MAAO,CACLlI,QAASrH,EAAOyU,2BAS9B+M,EAAiBzrD,UAAU2pC,qBAAuB,WAChD,IAAIgiB,EAAOzpD,KAAKyd,MAAMgsC,KACtBzpD,KAAK+pD,WAAY,EACjBN,EAAKC,YAGPH,EAAiBzrD,UAAUuqC,OAAS,WAClC,IAAI+G,EAAUpvC,KAAKyd,MAAM2xB,QACrBpD,EAAWhsC,KAAK8H,MAAMkkC,SAC1B,OAAO,gBAAoBsd,EAAgBlgD,SAAU,CACnDsB,MAAO0kC,GACc,mBAAbpD,EAA0BA,EAASoD,GAAWpD,GAAY,OAG/Dud,EAtFc,CAuFrB,aAGFA,EAAiBS,aAAe,CAC9Bx3B,QAAS+B,GAIX,IAAI01B,EAAiB,SAAwBjkB,GAC3C,IAAI4J,EAAM5J,EAAM4J,IACZ5D,EAAWhG,EAAMgG,SACjBrY,EAAcic,EAAIvvC,QAAQ,KAE1BgyB,OAAW,EACXL,EAAS,GAUb,OAZmB2B,GAAe,GAMhCtB,EAAWud,EAAIhqB,UAAU,EAAG+N,GAC5B3B,EAAS4d,EAAIhqB,UAAU+N,IAEvBtB,EAAWud,EAGN,gBAAoB0Z,EAAgBlgD,SAAU,CACnDsB,MAAO,CACLwiB,SAAU,CACRmF,SAAUA,EACVL,OAAQA,EACRC,KAdK,IAgBPe,SAAU,WACR,MAAM,IAAIhpB,MAAM,6CAGnBgiC,IAKD4L,EAAcuR,EAAmB,OAAQ,CAC3CtR,QAAS,IACTC,SAAU,IACV9kB,SAAUuB,EAAcvB,WAItBolB,EAAS,SAAgBtwC,GAC3B,OAAO,gBAAoB8vC,EAAYO,SAAU,MAAM,SAAU+R,GAC/D,OAAO,gBAAoBnkB,EAAU,MAAM,SAAUokB,GACnD,OAAO,gBAAoBC,EAAY,EAAS,GAAIF,EAAaC,EAAiBriD,WAKpFsiD,EAAa,SAAUC,GAGzB,SAASD,IAGP,OAFA5wB,EAAgBx5B,KAAMoqD,GAEfnB,EAA2BjpD,KAAMqqD,EAAqBtqD,MAAMC,KAAML,YA2E3E,OAhFAupD,EAAUkB,EAAYC,GAQtBD,EAAWtsD,UAAUuqC,OAAS,WAC5B,IAAIiiB,EAAStqD,KAAK8H,MACdolB,EAAWo9B,EAAOp9B,SAClBq9B,EAAaD,EAAOt3B,SACpB8kB,EAAWwS,EAAOxS,SAClB0S,EAAUF,EAAOE,QACjBxe,EAAWse,EAAOte,SAElBye,GADUH,EAAOzS,QACEyS,EAAOrnD,WAC1BA,OAAiC6C,IAArB2kD,EAAiC,MAAQA,EACrDC,EAAW1B,EAAyBsB,EAAQ,CAAC,WAAY,WAAY,WAAY,UAAW,WAAY,UAAW,cAEnHr1B,EAAS,mBAAuB+W,GAAUxV,QAAO,SAAUm0B,EAAOC,GACpE,IAAI31B,EAAS41B,GAAY/S,EAAZ+S,CAAsBD,GACnC,OAAOD,EAAMpwC,OAAO0a,KACnB,IACC5C,EAAWnF,EAASmF,SACpB9rB,EAAQouB,EAAKM,EAAQ5C,GAEzB,GAAI9rB,EAAO,CACT,IAAIovB,EAASpvB,EAAMovB,OACf3B,EAAMztB,EAAMytB,IACZ0B,EAAQnvB,EAAMmvB,MACduW,EAAU1lC,EAAMmvB,MAAMhrB,MAE1BotC,EAAWpiB,EAAMX,QAAU+iB,EAAWpiB,EAAMG,KAAKxgB,QAAQ,MAAO,IAEhE,IAAIvN,EAAQ,EAAS,GAAI6tB,EAAQ,CAC/B3B,IAAKA,EACL9G,SAAUA,EACV8F,SAAU,SAAkBC,EAAI9wB,GAC9B,OAAOooD,EAAW5mD,EAAQsvB,EAAIe,GAAM7xB,MAIpC2oD,EAAQ,eAAmB7e,EAASnkC,EAAOmkC,EAAQnkC,MAAMkkC,SAAW,gBAAoBoM,EAAQ,CAClGlrB,SAAUA,EACVs9B,QAASA,GACRve,EAAQnkC,MAAMkkC,eAAYlmC,GAEzBilD,EAAeP,EAAUQ,EAAe/nD,EAExC4kD,EAAe2C,EAAU,EAAS,CACpCx2B,IAAKA,EACL9G,SAAUA,EACVjqB,UAAWA,GACVynD,GAAYA,EACf,OAAO,gBAAoB9S,EAAYxuC,SAAU,CAC/CsB,MAAO,CACLmtC,QAAS7jB,EACT8jB,SAAUA,EACV9kB,SAAUlrB,EAAMkrB,WAEjB,gBAAoB+3B,EAAclD,EAAciD,IAenD,OAAO,MAIJV,EAjFQ,CAkFf,iBAEFA,EAAWJ,aAAe,CACxBQ,SAAS,GAEX,IAAIS,EAAe9B,EAAmB,SAElC6B,EAAe,SAAsB3kB,GACvC,IAAIrS,EAAMqS,EAAMrS,IACZ9G,EAAWmZ,EAAMnZ,SACjBjqB,EAAYojC,EAAMpjC,UAClBynD,EAAW1B,EAAyB3iB,EAAO,CAAC,MAAO,WAAY,cAEnE,OAAO,gBAAoB4kB,EAAa9S,SAAU,MAAM,SAAU+S,GAChE,OAAO,gBAAoBC,EAAkB,EAAS,GAAIT,EAAU,CAClEznD,UAAWA,EACXioD,aAAcA,EACdl3B,IAAKA,EACL9G,SAAUA,SAMZk+B,GAAgB,EAChBC,EAAoB,EAEpBF,EAAmB,SAAUG,GAG/B,SAASH,IACP,IAAII,EAAQ/D,EAEZhuB,EAAgBx5B,KAAMmrD,GAEtB,IAAK,IAAIvxB,EAAQj6B,UAAUlC,OAAQ+J,EAAO5J,MAAMg8B,GAAQE,EAAQ,EAAGA,EAAQF,EAAOE,IAChFtyB,EAAKsyB,GAASn6B,UAAUm6B,GAG1B,OAAgByxB,EAAU/D,EAASyB,EAA2BjpD,KAAMsrD,EAAkBlsD,KAAKW,MAAMurD,EAAmB,CAACtrD,MAAMua,OAAO/S,KAAkBggD,EAAO/pC,MAAQ,GAAI+pC,EAAO0D,aAAe,SAAU1f,IAChMgc,EAAO/pC,MAAM+tC,aAAehgB,GAC/BA,EAAKigB,SAEGxC,EAA2BzB,EAApC+D,GAyFL,OAxGArC,EAAUiC,EAAkBG,GAkB5BH,EAAiB/T,yBAA2B,SAAkCd,EAAW/O,GAGvF,GAF+B,MAAjBA,EAAUvT,IAGtB,OAAO,EAAS,CACdw3B,aAAa,GACZlV,GAEH,IAAIoV,EAAepV,EAAUtiB,MAAQuT,EAAUvT,IAC3C23B,EAAkBpkB,EAAUra,SAASmF,WAAaikB,EAAUppB,SAASmF,UAAYikB,EAAUppB,SAASmF,WAAaikB,EAAUtiB,IAC/H,OAAO,EAAS,CACdw3B,YAAaE,GAAgBC,GAC5BrV,IAIP6U,EAAiBrtD,UAAU0pC,kBAAoB,WAC7C6jB,IACArrD,KAAKyrD,SAGPN,EAAiBrtD,UAAU2pC,qBAAuB,WAGtB,MAF1B4jB,IAGED,GAAgB,IAIpBD,EAAiBrtD,UAAUupC,mBAAqB,SAA4BC,EAAWC,GACjFD,EAAUpa,WAAaltB,KAAK8H,MAAMolB,UAAYltB,KAAKyd,MAAM+tC,aAC3DxrD,KAAKyrD,SAITN,EAAiBrtD,UAAU2tD,MAAQ,WAQjC,IAAIP,EAAelrD,KAAK8H,MAAMojD,aAE1BA,EACFA,EAAalrD,KAAKwrC,MAEd4f,EACFA,GAAgB,EACPprD,KAAKwrC,OAGTxrC,KAAKwrC,KAAKh2B,SAAS5U,SAASgrD,gBAC/B5rD,KAAKwrC,KAAKigB,UAMlBN,EAAiBrtD,UAAUuqC,OAAS,WAClC,IAAIwjB,EAAS7rD,KAET8rD,EAAU9rD,KAAK8H,MAEf4+B,GADWolB,EAAQ9f,SACX8f,EAAQplB,OAEhBqlB,GADeD,EAAQZ,aACHY,EAAQ7oD,WAC5B+oD,OAA6BlmD,IAAtBimD,EAAkC,MAAQA,EAGjDrB,GAFMoB,EAAQ93B,IACH83B,EAAQ5+B,SACR87B,EAAyB8C,EAAS,CAAC,WAAY,QAAS,eAAgB,YAAa,MAAO,cAE3G,OAAO,gBAAoBE,EAAM,EAAS,CACxCtlB,MAAO,EAAS,CACdulB,QAAS,QACRvlB,GACHwlB,SAAU,KACVpkB,IAAK,SAAa5oC,GAChB,OAAO2sD,EAAOrgB,KAAOtsC,IAEtBwrD,GAAW,gBAAoBO,EAAa7hD,SAAU,CACvDsB,MAAO1K,KAAKkrD,cACXlrD,KAAK8H,MAAMkkC,YAGTmf,EAzGc,CA0GrB,cAEF,OAASA,GAET,IAAIz+C,EAAI,aAGJ88B,EAAa,kBAES,IAAfA,IACTA,EAAa,SAAoBlpB,GAC/B,OAAOA,IAIX,IAAI0oB,EAAOQ,GAAW,SAAU2iB,EAAOrkB,GACrC,IAAIE,EAAWmkB,EAAMnkB,SACjBlgC,EAAQkhD,EAAyBmD,EAAO,CAAC,aAE7C,OAAO,gBAAoBvU,EAAYO,SAAU,MAAM,SAAUiU,GAChDA,EAAMtU,SAArB,IACID,EAAUuU,EAAMvU,QACpB,OAAO,gBAAoB9R,EAAU,MAAM,SAAUsmB,GACnD,IAAIn/B,EAAWm/B,EAAMn/B,SACjB8F,EAAWq5B,EAAMr5B,SAEjBC,EAAKnrB,EAAMmrB,GACXxV,EAAQ3V,EAAM2V,MACdpI,EAAUvN,EAAMuN,QAChBi3C,EAAkBxkD,EAAM2gC,SACxBA,OAA+B3iC,IAApBwmD,EAAgC5/C,EAAI4/C,EAC/CC,EAAcvD,EAAyBlhD,EAAO,CAAC,KAAM,QAAS,UAAW,aAEzEoqB,EAAOvuB,EAAQsvB,EAAI4kB,GACnB2U,EAAcvjC,UAAUiJ,GACxBqU,EAAYrZ,EAASmF,WAAam6B,EAClClmB,EAAqB1R,EAAW1H,EAASmF,SAAUm6B,GACvD,OAAO,gBAAoB,IAAK,EAAS,CACvC1kB,IAAKA,GAAOE,EACZ,eAAgBzB,EAAY,YAASzgC,GACpCymD,EAAa9jB,EAAS,CACvBlC,UAAWA,EACXD,mBAAoBA,EACpBpU,KAAMA,EACNhF,SAAUA,IACR,CACFgF,KAAMA,EACNyW,QAAS,SAAiBzI,GAGxB,GAFIqsB,EAAY5jB,SAAS4jB,EAAY5jB,QAAQzI,GAEzCusB,GAAevsB,GAAQ,CACzBA,EAAM9hB,iBACN,IAAI8qB,EAAgB7zB,EAEpB,GAAuB,kBAAZA,GAAyBkxB,EAAW,CAC7C,IAAImmB,EAAkB,EAAS,GAAIx/B,EAASzP,OAExCkvC,GADMD,EAAgB7sD,IACVmpD,EAAyB0D,EAAiB,CAAC,SF1N5Bz0B,EE4NA,EAAS,GAAIxa,GF5NPya,EE4Ney0B,EAApDzjB,GF3NR/Q,EAAWp6B,OAAOqC,KAAK63B,IACXx6B,SAAWM,OAAOqC,KAAK83B,GAAMz6B,QAAU06B,EAASC,OAAM,SAAUv4B,GAC9E,OAAOq4B,EAAKp4B,eAAeD,IAAQo4B,EAAKp4B,KAASq4B,EAAKr4B,ME4N9CmzB,EAASd,EAAM,CACbzU,MAAOA,EACPpI,QAAS6zB,IFjOF,IAAwBjR,EAAMC,EAC7CC,eE2ON,SAASy0B,EAAgB54B,GACvBh0B,KAAKg0B,IAAMA,EAJbgV,EAAK6B,YAAc,OAOnB,IAAIgf,EAAa,SAAoBprD,GACnC,OAAOA,aAAamuD,GAGlBC,EAAa,SAAoB55B,GACnC,MAAM,IAAI25B,EAAgB35B,IAGxB65B,EAAe,SAAUC,GAG3B,SAASD,IAGP,OAFAtzB,EAAgBx5B,KAAM8sD,GAEf7D,EAA2BjpD,KAAM+sD,EAAkBhtD,MAAMC,KAAML,YAyCxE,OA9CAupD,EAAU4D,EAAcC,GASxBD,EAAahvD,UAAU0pC,kBAAoB,WACzC,IAAIwlB,EAAUhtD,KAAK8H,MACfkrB,EAAWg6B,EAAQh6B,SACnBC,EAAK+5B,EAAQ/5B,GAEbg6B,GADOD,EAAQ1uD,KACG0uD,EAAQ33C,SAC1BA,OAA8BvP,IAApBmnD,GAAuCA,EACjDxvC,EAAQuvC,EAAQvvC,MAEhBo6B,GADUmV,EAAQE,QACRF,EAAQnV,SAClB/vC,EAAQkhD,EAAyBgE,EAAS,CAAC,WAAY,KAAM,OAAQ,UAAW,QAAS,UAAW,YAExGtpD,QAAQC,UAAUC,MAAK,WACrB,IAAIupD,EAAaxpD,EAAQsvB,EAAI4kB,GAC7B7kB,EAAS0B,EAAay4B,EAAYrlD,GAAQ,CACxCuN,QAASA,EACToI,MAAOA,QAKbqvC,EAAahvD,UAAUuqC,OAAS,WAC9B,IAAI+kB,EAAUptD,KAAK8H,MAEfmrB,GADWm6B,EAAQp6B,SACdo6B,EAAQn6B,IAIbi6B,GAHOE,EAAQ9uD,KACL8uD,EAAQ/3C,QACV+3C,EAAQ3vC,MACN2vC,EAAQF,SAClBrV,EAAUuV,EAAQvV,QAClB/vC,EAAQkhD,EAAyBoE,EAAS,CAAC,WAAY,KAAM,OAAQ,UAAW,QAAS,UAAW,YAEpGD,EAAaxpD,EAAQsvB,EAAI4kB,GAE7B,OADKqV,GAASL,EAAWn4B,EAAay4B,EAAYrlD,IAC3C,MAGFglD,EA/CU,CAgDjB,aAEEO,EAAW,SAAkBvlD,GAC/B,OAAO,gBAAoB8vC,EAAYO,SAAU,MAAM,SAAUmV,GAC/D,IAAIzV,EAAUyV,EAAMzV,QACpB,OAAO,gBAAoB9R,EAAU,MAAM,SAAUokB,GACnD,OAAO,gBAAoB2C,EAAc,EAAS,GAAI3C,EAAiB,CACrEtS,QAASA,GACR/vC,WAOLylD,EAAQ,SAAeC,GACzB,IAAI33B,EAAO23B,EAAM33B,KACbmW,EAAWwhB,EAAMxhB,SACrB,OAAO,gBAAoB4L,EAAYO,SAAU,MAAM,SAAUsV,GAC/D,IAAI5V,EAAU4V,EAAM5V,QACpB,OAAO,gBAAoB9R,EAAU,MAAM,SAAU2nB,GACnD,IAAI16B,EAAW06B,EAAO16B,SAClB9F,EAAWwgC,EAAOxgC,SAClBygC,EAAehqD,EAAQkyB,EAAMgiB,GAC7BrU,EAASj9B,EAAMonD,EAAczgC,EAASmF,UAC1C,OAAO2Z,EAAS,CACdhZ,SAAUA,EACV9F,SAAUA,EACV3mB,MAAOi9B,EAAS,EAAS,GAAIA,EAAO7N,OAAQ,CAC1C3B,IAAKwP,EAAOxP,IACZ6B,KAAMA,IACH,cAQT6W,GAAc,WAChB,IAAI0C,GAAU,IAAAzC,YAAW2c,GAEzB,IAAKla,EACH,MAAM,IAAIplC,MAAM,8JAGlB,OAAOolC,EAAQliB,UAGb0gC,GAAc,WAChB,IAAIxe,GAAU,IAAAzC,YAAWiL,GAEzB,IAAKxI,EACH,MAAM,IAAIplC,MAAM,0JAGlB,OAAOolC,EAAQpc,UAGb66B,GAAY,WACd,IAAIze,GAAU,IAAAzC,YAAWiL,GAEzB,IAAKxI,EACH,MAAM,IAAIplC,MAAM,4JAGlB,IAAIkjB,EAAWwf,KACXc,EAAUjnC,EAAM6oC,EAAQ0I,SAAU5qB,EAASmF,UAC/C,OAAOmb,EAAUA,EAAQ7X,OAAS,MAGhCm4B,GAAW,SAAkBj4B,GAC/B,IAAKA,EACH,MAAM,IAAI7rB,MAAM,4EAGlB,IAAIolC,GAAU,IAAAzC,YAAWiL,GAEzB,IAAKxI,EACH,MAAM,IAAIplC,MAAM,2JAGlB,IAAIkjB,EAAWwf,KACXihB,EAAehqD,EAAQkyB,EAAMuZ,EAAQyI,SACrCrU,EAASj9B,EAAMonD,EAAczgC,EAASmF,UAC1C,OAAOmR,EAAS,EAAS,GAAIA,EAAO7N,OAAQ,CAC1C3B,IAAKwP,EAAOxP,IACZ6B,KAAMA,IACH,MAKHk4B,GAAe,SAAsB7+C,GACvC,OAAOA,EAAImG,QAAQ,eAAgB,KAGjCw1C,GAAc,SAASA,EAAY/S,GACrC,OAAO,SAAU7L,GACf,IAAKA,EACH,OAAO,KAGT,GAAIA,EAAQ7kC,OAAS,YAAkB6kC,EAAQnkC,MAAMkkC,SACnD,OAAO,eAAmBC,EAAQnkC,MAAMkkC,SAAU6e,EAAY/S,IFzd7C,IAA0Bx5C,EAAM20B,EACjD3qB,EE+dF,GAJE2jC,EAAQnkC,MAAM+tB,MAAQoW,EAAQnkC,MAAMitB,SAAWkX,EAAQ7kC,OAASimD,GAAuN,KAAU,GAChSphB,EAAQ7kC,OAASimD,GAAcphB,EAAQnkC,MAAMxJ,MAAS2tC,EAAQnkC,MAAMmrB,IAAqN,KAAU,GACnSgZ,EAAQ7kC,OAASimD,IF9dyB/uD,EE8dK2tC,EAAQnkC,MAAMxJ,KF9db20B,EE8dmBgZ,EAAQnkC,MAAMmrB,GF7dlF3qB,EAAS,SAAgB+tB,GAC3B,OAAOD,EAAUC,IAGFhB,EAAW/2B,GAAMgK,OAAOA,GAAQquB,OAAOhwB,KAAK,OAC9C0uB,EAAWpC,GAAI3qB,OAAOA,GAAQquB,OAAOhwB,KAAK,OEwdyQ,KAAU,GAEtUslC,EAAQnkC,MAAMitB,QAChB,MAAO,CACLrqB,MAAOuhC,EACPlX,SAAS,GAIb,IAAIi5B,EAAc/hB,EAAQ7kC,OAASimD,EAAWphB,EAAQnkC,MAAMxJ,KAAO2tC,EAAQnkC,MAAM+tB,KAC7EA,EAAuB,MAAhBm4B,EAAsBlW,EAAWiW,GAAajW,GAAY,IAAMiW,GAAaC,GACxF,MAAO,CACLtjD,MAAOuhC,EACPlX,QAASkX,EAAQnkC,MAAMitB,QACvBc,KAAMoW,EAAQnkC,MAAMkkC,SAAW+hB,GAAal4B,GAAQ,KAAOA,KAK7D42B,GAAiB,SAAwBvsB,GAC3C,OAAQA,EAAMrjB,kBAAqC,IAAjBqjB,EAAMljB,UAAkBkjB,EAAM7iB,SAAW6iB,EAAM3iB,QAAU2iB,EAAM1iB,SAAW0iB,EAAM5iB,Y,+BC/oBpHpgB,EAAOC,QA5BS,SAAS8wD,EAAWpK,EAAQl3C,EAAG6J,EAAGpH,EAAGqH,EAAG3R,EAAGyR,GAOzD,IAAK03C,EAAW,CACd,IAAIpjD,EACJ,QAAe/E,IAAX+9C,EACFh5C,EAAQ,IAAIb,MACV,qIAGG,CACL,IAAIxC,EAAO,CAACmF,EAAG6J,EAAGpH,EAAGqH,EAAG3R,EAAGyR,GACvB23C,EAAW,GACfrjD,EAAQ,IAAIb,MACV65C,EAAOxuC,QAAQ,OAAO,WAAa,OAAO7N,EAAK0mD,UAE3C5uD,KAAO,sBAIf,MADAuL,EAAMsjD,YAAc,EACdtjD,M","sources":["webpack://gatsby-typescript-tailwind/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://gatsby-typescript-tailwind/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://gatsby-typescript-tailwind/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://gatsby-typescript-tailwind/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://gatsby-typescript-tailwind/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://gatsby-typescript-tailwind/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://gatsby-typescript-tailwind/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://gatsby-typescript-tailwind/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://gatsby-typescript-tailwind/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://gatsby-typescript-tailwind/./node_modules/@babel/runtime/helpers/extends.js","webpack://gatsby-typescript-tailwind/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://gatsby-typescript-tailwind/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://gatsby-typescript-tailwind/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://gatsby-typescript-tailwind/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://gatsby-typescript-tailwind/./node_modules/@mikaelkristiansson/domready/ready.js","webpack://gatsby-typescript-tailwind/./node_modules/@firebase/app/dist/index.esm.js","webpack://gatsby-typescript-tailwind/./node_modules/@firebase/component/dist/index.esm.js","webpack://gatsby-typescript-tailwind/./node_modules/@firebase/logger/dist/index.esm.js","webpack://gatsby-typescript-tailwind/./node_modules/@firebase/util/dist/index.esm.js","webpack://gatsby-typescript-tailwind/./node_modules/@firebase/webchannel-wrapper/dist/index.esm.js","webpack://gatsby-typescript-tailwind/./node_modules/@gatsbyjs/reach-router/lib/history.js","webpack://gatsby-typescript-tailwind/./node_modules/@gatsbyjs/reach-router/lib/utils.js","webpack://gatsby-typescript-tailwind/./node_modules/camelcase/index.js","webpack://gatsby-typescript-tailwind/./node_modules/common-tags/es/TemplateTag/TemplateTag.js","webpack://gatsby-typescript-tailwind/./node_modules/common-tags/es/inlineArrayTransformer/inlineArrayTransformer.js","webpack://gatsby-typescript-tailwind/./node_modules/common-tags/es/stripIndentTransformer/stripIndentTransformer.js","webpack://gatsby-typescript-tailwind/./node_modules/common-tags/es/trimResultTransformer/trimResultTransformer.js","webpack://gatsby-typescript-tailwind/./node_modules/common-tags/es/splitStringTransformer/splitStringTransformer.js","webpack://gatsby-typescript-tailwind/./node_modules/common-tags/es/commaLists/commaLists.js","webpack://gatsby-typescript-tailwind/./node_modules/common-tags/es/commaListsAnd/commaListsAnd.js","webpack://gatsby-typescript-tailwind/./node_modules/common-tags/es/commaListsOr/commaListsOr.js","webpack://gatsby-typescript-tailwind/./node_modules/common-tags/es/removeNonPrintingValuesTransformer/removeNonPrintingValuesTransformer.js","webpack://gatsby-typescript-tailwind/./node_modules/common-tags/es/replaceSubstitutionTransformer/replaceSubstitutionTransformer.js","webpack://gatsby-typescript-tailwind/./node_modules/common-tags/es/html/html.js","webpack://gatsby-typescript-tailwind/./node_modules/common-tags/es/replaceResultTransformer/replaceResultTransformer.js","webpack://gatsby-typescript-tailwind/./node_modules/common-tags/es/safeHtml/safeHtml.js","webpack://gatsby-typescript-tailwind/./node_modules/common-tags/es/oneLine/oneLine.js","webpack://gatsby-typescript-tailwind/./node_modules/common-tags/es/oneLineTrim/oneLineTrim.js","webpack://gatsby-typescript-tailwind/./node_modules/common-tags/es/oneLineCommaLists/oneLineCommaLists.js","webpack://gatsby-typescript-tailwind/./node_modules/common-tags/es/oneLineCommaListsOr/oneLineCommaListsOr.js","webpack://gatsby-typescript-tailwind/./node_modules/common-tags/es/oneLineCommaListsAnd/oneLineCommaListsAnd.js","webpack://gatsby-typescript-tailwind/./node_modules/common-tags/es/inlineLists/inlineLists.js","webpack://gatsby-typescript-tailwind/./node_modules/common-tags/es/oneLineInlineLists/oneLineInlineLists.js","webpack://gatsby-typescript-tailwind/./node_modules/common-tags/es/stripIndent/stripIndent.js","webpack://gatsby-typescript-tailwind/./node_modules/common-tags/es/stripIndents/stripIndents.js","webpack://gatsby-typescript-tailwind/./node_modules/escape-string-regexp/index.js","webpack://gatsby-typescript-tailwind/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://gatsby-typescript-tailwind/./node_modules/performance-now/lib/performance-now.js","webpack://gatsby-typescript-tailwind/./node_modules/raf/index.js","webpack://gatsby-typescript-tailwind/./node_modules/scroll-to-element/ease.js","webpack://gatsby-typescript-tailwind/./node_modules/scroll-to-element/emitter.js","webpack://gatsby-typescript-tailwind/./node_modules/scroll-to-element/index.js","webpack://gatsby-typescript-tailwind/./node_modules/scroll-to-element/scroll-to.js","webpack://gatsby-typescript-tailwind/./node_modules/scroll-to-element/tween.js","webpack://gatsby-typescript-tailwind/./node_modules/tslib/tslib.es6.js","webpack://gatsby-typescript-tailwind/./node_modules/gatsby-link/index.js","webpack://gatsby-typescript-tailwind/./node_modules/gatsby-link/parse-path.js","webpack://gatsby-typescript-tailwind/./node_modules/gatsby-react-router-scroll/index.js","webpack://gatsby-typescript-tailwind/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://gatsby-typescript-tailwind/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://gatsby-typescript-tailwind/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://gatsby-typescript-tailwind/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://gatsby-typescript-tailwind/./.cache/api-runner-browser-plugins.js","webpack://gatsby-typescript-tailwind/./.cache/api-runner-browser.js","webpack://gatsby-typescript-tailwind/./node_modules/mitt/dist/mitt.es.js","webpack://gatsby-typescript-tailwind/./.cache/emitter.js","webpack://gatsby-typescript-tailwind/./.cache/normalize-page-path.js","webpack://gatsby-typescript-tailwind/./.cache/find-path.js","webpack://gatsby-typescript-tailwind/./.cache/gatsby-browser-entry.js","webpack://gatsby-typescript-tailwind/./.cache/prefetch.js","webpack://gatsby-typescript-tailwind/./.cache/loader.js","webpack://gatsby-typescript-tailwind/./.cache/page-renderer.js","webpack://gatsby-typescript-tailwind/./.cache/route-announcer-props.js","webpack://gatsby-typescript-tailwind/./.cache/navigation.js","webpack://gatsby-typescript-tailwind/./node_modules/shallow-compare/es/index.js","webpack://gatsby-typescript-tailwind/./.cache/ensure-resources.js","webpack://gatsby-typescript-tailwind/./.cache/production-app.js","webpack://gatsby-typescript-tailwind/./.cache/public-page-renderer-prod.js","webpack://gatsby-typescript-tailwind/./.cache/public-page-renderer.js","webpack://gatsby-typescript-tailwind/./.cache/react-lifecycles-compat.js","webpack://gatsby-typescript-tailwind/./.cache/redirect-utils.js","webpack://gatsby-typescript-tailwind/./.cache/register-service-worker.js","webpack://gatsby-typescript-tailwind/./.cache/strip-prefix.js","webpack://gatsby-typescript-tailwind/./node_modules/@firebase/firestore/dist/esm5/index.js","webpack://gatsby-typescript-tailwind/./node_modules/@firebase/functions/dist/index.esm.js","webpack://gatsby-typescript-tailwind/./node_modules/gatsby-plugin-anchor-links/errors.js","webpack://gatsby-typescript-tailwind/./node_modules/gatsby-plugin-anchor-links/gatsby-browser.js","webpack://gatsby-typescript-tailwind/./node_modules/gatsby-plugin-anchor-links/utils.js","webpack://gatsby-typescript-tailwind/./node_modules/gatsby-plugin-catch-links/catch-links.js","webpack://gatsby-typescript-tailwind/./node_modules/gatsby-plugin-catch-links/gatsby-browser.js","webpack://gatsby-typescript-tailwind/./node_modules/gatsby-plugin-gatsby-cloud/gatsby-browser.js","webpack://gatsby-typescript-tailwind/./node_modules/gatsby-plugin-google-gtag/gatsby-browser.js","webpack://gatsby-typescript-tailwind/../src/image-utils.ts","webpack://gatsby-typescript-tailwind/../src/components/hooks.ts","webpack://gatsby-typescript-tailwind/../src/components/layout-wrapper.tsx","webpack://gatsby-typescript-tailwind/../src/components/picture.tsx","webpack://gatsby-typescript-tailwind/../src/components/placeholder.tsx","webpack://gatsby-typescript-tailwind/../src/components/main-image.tsx","webpack://gatsby-typescript-tailwind/../src/components/gatsby-image.server.tsx","webpack://gatsby-typescript-tailwind/../src/components/gatsby-image.browser.tsx","webpack://gatsby-typescript-tailwind/../src/components/static-image.server.tsx","webpack://gatsby-typescript-tailwind/../src/components/static-image.tsx","webpack://gatsby-typescript-tailwind/../src/components/later-hydrator.tsx","webpack://gatsby-typescript-tailwind/./node_modules/gatsby-plugin-image/gatsby-browser.js","webpack://gatsby-typescript-tailwind/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://gatsby-typescript-tailwind/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://gatsby-typescript-tailwind/./node_modules/@gatsbyjs/reach-router/es/lib/utils.js","webpack://gatsby-typescript-tailwind/./node_modules/@gatsbyjs/reach-router/es/lib/history.js","webpack://gatsby-typescript-tailwind/./node_modules/@gatsbyjs/reach-router/es/index.js","webpack://gatsby-typescript-tailwind/./node_modules/invariant/browser.js"],"sourcesContent":["function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inheritsLoose;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n * ie10 fix - Mikael Kristiansson 2019\n */\n!(function(name, definition) {\n if (typeof module != \"undefined\") module.exports = definition();\n else if (typeof define == \"function\" && typeof define.amd == \"object\")\n define(definition);\n else this[name] = definition();\n})(\"domready\", function() {\n var ie10 = false;\n if (navigator.appVersion.indexOf(\"MSIE 10\") !== -1) {\n ie10 = true;\n }\n\n var fns = [],\n listener,\n doc = typeof document === \"object\" && document,\n hack = ie10\n ? doc.documentElement.doScroll(\"left\")\n : doc.documentElement.doScroll,\n domContentLoaded = \"DOMContentLoaded\",\n loaded =\n doc && (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState);\n\n if (!loaded && doc)\n doc.addEventListener(\n domContentLoaded,\n (listener = function() {\n doc.removeEventListener(domContentLoaded, listener);\n loaded = 1;\n while ((listener = fns.shift())) listener();\n })\n );\n\n return function(fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn);\n };\n});\n","import { __assign } from 'tslib';\nimport { ErrorFactory, deepCopy, contains, deepExtend, createSubscribe, isBrowser, isNode } from '@firebase/util';\nimport { ComponentContainer, Component } from '@firebase/component';\nimport { Logger, setLogLevel, setUserLogHandler } from '@firebase/logger';\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\nvar _a$1;\n\nvar ERRORS = (_a$1 = {}, _a$1[\"no-app\"\n/* NO_APP */\n] = \"No Firebase App '{$appName}' has been created - \" + 'call Firebase App.initializeApp()', _a$1[\"bad-app-name\"\n/* BAD_APP_NAME */\n] = \"Illegal App name: '{$appName}\", _a$1[\"duplicate-app\"\n/* DUPLICATE_APP */\n] = \"Firebase App named '{$appName}' already exists\", _a$1[\"app-deleted\"\n/* APP_DELETED */\n] = \"Firebase App named '{$appName}' already deleted\", _a$1[\"invalid-app-argument\"\n/* INVALID_APP_ARGUMENT */\n] = 'firebase.{$appName}() takes either no argument or a ' + 'Firebase App instance.', _a$1[\"invalid-log-argument\"\n/* INVALID_LOG_ARGUMENT */\n] = 'First argument to `onLog` must be null or a function.', _a$1);\nvar ERROR_FACTORY = new ErrorFactory('app', 'Firebase', ERRORS);\nvar name$c = \"@firebase/app\";\nvar version$1 = \"0.6.28\";\nvar name$b = \"@firebase/analytics\";\nvar name$a = \"@firebase/app-check\";\nvar name$9 = \"@firebase/auth\";\nvar name$8 = \"@firebase/database\";\nvar name$7 = \"@firebase/functions\";\nvar name$6 = \"@firebase/installations\";\nvar name$5 = \"@firebase/messaging\";\nvar name$4 = \"@firebase/performance\";\nvar name$3 = \"@firebase/remote-config\";\nvar name$2 = \"@firebase/storage\";\nvar name$1 = \"@firebase/firestore\";\nvar name = \"firebase-wrapper\";\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\nvar _a;\n\nvar DEFAULT_ENTRY_NAME = '[DEFAULT]';\nvar PLATFORM_LOG_STRING = (_a = {}, _a[name$c] = 'fire-core', _a[name$b] = 'fire-analytics', _a[name$a] = 'fire-app-check', _a[name$9] = 'fire-auth', _a[name$8] = 'fire-rtdb', _a[name$7] = 'fire-fn', _a[name$6] = 'fire-iid', _a[name$5] = 'fire-fcm', _a[name$4] = 'fire-perf', _a[name$3] = 'fire-rc', _a[name$2] = 'fire-gcs', _a[name$1] = 'fire-fst', _a['fire-js'] = 'fire-js', _a[name] = 'fire-js-all', _a);\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\nvar logger = new Logger('@firebase/app');\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Global context object for a collection of services using\r\n * a shared authentication state.\r\n */\n\nvar FirebaseAppImpl = function () {\n function FirebaseAppImpl(options, config, firebase_) {\n var _this = this;\n\n this.firebase_ = firebase_;\n this.isDeleted_ = false;\n this.name_ = config.name;\n this.automaticDataCollectionEnabled_ = config.automaticDataCollectionEnabled || false;\n this.options_ = deepCopy(options);\n this.container = new ComponentContainer(config.name); // add itself to container\n\n this._addComponent(new Component('app', function () {\n return _this;\n }, \"PUBLIC\"\n /* PUBLIC */\n )); // populate ComponentContainer with existing components\n\n\n this.firebase_.INTERNAL.components.forEach(function (component) {\n return _this._addComponent(component);\n });\n }\n\n Object.defineProperty(FirebaseAppImpl.prototype, \"automaticDataCollectionEnabled\", {\n get: function get() {\n this.checkDestroyed_();\n return this.automaticDataCollectionEnabled_;\n },\n set: function set(val) {\n this.checkDestroyed_();\n this.automaticDataCollectionEnabled_ = val;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FirebaseAppImpl.prototype, \"name\", {\n get: function get() {\n this.checkDestroyed_();\n return this.name_;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FirebaseAppImpl.prototype, \"options\", {\n get: function get() {\n this.checkDestroyed_();\n return this.options_;\n },\n enumerable: false,\n configurable: true\n });\n\n FirebaseAppImpl.prototype.delete = function () {\n var _this = this;\n\n return new Promise(function (resolve) {\n _this.checkDestroyed_();\n\n resolve();\n }).then(function () {\n _this.firebase_.INTERNAL.removeApp(_this.name_);\n\n return Promise.all(_this.container.getProviders().map(function (provider) {\n return provider.delete();\n }));\n }).then(function () {\n _this.isDeleted_ = true;\n });\n };\n /**\r\n * Return a service instance associated with this app (creating it\r\n * on demand), identified by the passed instanceIdentifier.\r\n *\r\n * NOTE: Currently storage and functions are the only ones that are leveraging this\r\n * functionality. They invoke it by calling:\r\n *\r\n * ```javascript\r\n * firebase.app().storage('STORAGE BUCKET ID')\r\n * ```\r\n *\r\n * The service name is passed to this already\r\n * @internal\r\n */\n\n\n FirebaseAppImpl.prototype._getService = function (name, instanceIdentifier) {\n var _a;\n\n if (instanceIdentifier === void 0) {\n instanceIdentifier = DEFAULT_ENTRY_NAME;\n }\n\n this.checkDestroyed_(); // Initialize instance if InstatiationMode is `EXPLICIT`.\n\n var provider = this.container.getProvider(name);\n\n if (!provider.isInitialized() && ((_a = provider.getComponent()) === null || _a === void 0 ? void 0 : _a.instantiationMode) === \"EXPLICIT\"\n /* EXPLICIT */\n ) {\n provider.initialize();\n } // getImmediate will always succeed because _getService is only called for registered components.\n\n\n return provider.getImmediate({\n identifier: instanceIdentifier\n });\n };\n /**\r\n * Remove a service instance from the cache, so we will create a new instance for this service\r\n * when people try to get this service again.\r\n *\r\n * NOTE: currently only firestore is using this functionality to support firestore shutdown.\r\n *\r\n * @param name The service name\r\n * @param instanceIdentifier instance identifier in case multiple instances are allowed\r\n * @internal\r\n */\n\n\n FirebaseAppImpl.prototype._removeServiceInstance = function (name, instanceIdentifier) {\n if (instanceIdentifier === void 0) {\n instanceIdentifier = DEFAULT_ENTRY_NAME;\n } // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n this.container.getProvider(name).clearInstance(instanceIdentifier);\n };\n /**\r\n * @param component the component being added to this app's container\r\n */\n\n\n FirebaseAppImpl.prototype._addComponent = function (component) {\n try {\n this.container.addComponent(component);\n } catch (e) {\n logger.debug(\"Component \" + component.name + \" failed to register with FirebaseApp \" + this.name, e);\n }\n };\n\n FirebaseAppImpl.prototype._addOrOverwriteComponent = function (component) {\n this.container.addOrOverwriteComponent(component);\n };\n\n FirebaseAppImpl.prototype.toJSON = function () {\n return {\n name: this.name,\n automaticDataCollectionEnabled: this.automaticDataCollectionEnabled,\n options: this.options\n };\n };\n /**\r\n * This function will throw an Error if the App has already been deleted -\r\n * use before performing API actions on the App.\r\n */\n\n\n FirebaseAppImpl.prototype.checkDestroyed_ = function () {\n if (this.isDeleted_) {\n throw ERROR_FACTORY.create(\"app-deleted\"\n /* APP_DELETED */\n , {\n appName: this.name_\n });\n }\n };\n\n return FirebaseAppImpl;\n}(); // Prevent dead-code elimination of these methods w/o invalid property\n// copying.\n\n\nFirebaseAppImpl.prototype.name && FirebaseAppImpl.prototype.options || FirebaseAppImpl.prototype.delete || console.log('dc');\nvar version = \"8.7.0\";\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Because auth can't share code with other components, we attach the utility functions\r\n * in an internal namespace to share code.\r\n * This function return a firebase namespace object without\r\n * any utility functions, so it can be shared between the regular firebaseNamespace and\r\n * the lite version.\r\n */\n\nfunction createFirebaseNamespaceCore(firebaseAppImpl) {\n var apps = {}; // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n var components = new Map(); // A namespace is a plain JavaScript Object.\n\n var namespace = {\n // Hack to prevent Babel from modifying the object returned\n // as the firebase namespace.\n // @ts-ignore\n __esModule: true,\n initializeApp: initializeApp,\n // @ts-ignore\n app: app,\n registerVersion: registerVersion,\n setLogLevel: setLogLevel,\n onLog: onLog,\n // @ts-ignore\n apps: null,\n SDK_VERSION: version,\n INTERNAL: {\n registerComponent: registerComponent,\n removeApp: removeApp,\n components: components,\n useAsService: useAsService\n }\n }; // Inject a circular default export to allow Babel users who were previously\n // using:\n //\n // import firebase from 'firebase';\n // which becomes: var firebase = require('firebase').default;\n //\n // instead of\n //\n // import * as firebase from 'firebase';\n // which becomes: var firebase = require('firebase');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n namespace['default'] = namespace; // firebase.apps is a read-only getter.\n\n Object.defineProperty(namespace, 'apps', {\n get: getApps\n });\n /**\r\n * Called by App.delete() - but before any services associated with the App\r\n * are deleted.\r\n */\n\n function removeApp(name) {\n delete apps[name];\n }\n /**\r\n * Get the App object for a given name (or DEFAULT).\r\n */\n\n\n function app(name) {\n name = name || DEFAULT_ENTRY_NAME;\n\n if (!contains(apps, name)) {\n throw ERROR_FACTORY.create(\"no-app\"\n /* NO_APP */\n , {\n appName: name\n });\n }\n\n return apps[name];\n } // @ts-ignore\n\n\n app['App'] = firebaseAppImpl;\n\n function initializeApp(options, rawConfig) {\n if (rawConfig === void 0) {\n rawConfig = {};\n }\n\n if (typeof rawConfig !== 'object' || rawConfig === null) {\n var name_1 = rawConfig;\n rawConfig = {\n name: name_1\n };\n }\n\n var config = rawConfig;\n\n if (config.name === undefined) {\n config.name = DEFAULT_ENTRY_NAME;\n }\n\n var name = config.name;\n\n if (typeof name !== 'string' || !name) {\n throw ERROR_FACTORY.create(\"bad-app-name\"\n /* BAD_APP_NAME */\n , {\n appName: String(name)\n });\n }\n\n if (contains(apps, name)) {\n throw ERROR_FACTORY.create(\"duplicate-app\"\n /* DUPLICATE_APP */\n , {\n appName: name\n });\n }\n\n var app = new firebaseAppImpl(options, config, namespace);\n apps[name] = app;\n return app;\n }\n /*\r\n * Return an array of all the non-deleted FirebaseApps.\r\n */\n\n\n function getApps() {\n // Make a copy so caller cannot mutate the apps list.\n return Object.keys(apps).map(function (name) {\n return apps[name];\n });\n }\n\n function registerComponent(component) {\n var componentName = component.name;\n\n if (components.has(componentName)) {\n logger.debug(\"There were multiple attempts to register component \" + componentName + \".\");\n return component.type === \"PUBLIC\"\n /* PUBLIC */\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n namespace[componentName] : null;\n }\n\n components.set(componentName, component); // create service namespace for public components\n\n if (component.type === \"PUBLIC\"\n /* PUBLIC */\n ) {\n // The Service namespace is an accessor function ...\n var serviceNamespace = function serviceNamespace(appArg) {\n if (appArg === void 0) {\n appArg = app();\n } // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n if (typeof appArg[componentName] !== 'function') {\n // Invalid argument.\n // This happens in the following case: firebase.storage('gs:/')\n throw ERROR_FACTORY.create(\"invalid-app-argument\"\n /* INVALID_APP_ARGUMENT */\n , {\n appName: componentName\n });\n } // Forward service instance lookup to the FirebaseApp.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n return appArg[componentName]();\n }; // ... and a container for service-level properties.\n\n\n if (component.serviceProps !== undefined) {\n deepExtend(serviceNamespace, component.serviceProps);\n } // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n namespace[componentName] = serviceNamespace; // Patch the FirebaseAppImpl prototype\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n firebaseAppImpl.prototype[componentName] = // TODO: The eslint disable can be removed and the 'ignoreRestArgs'\n // option added to the no-explicit-any rule when ESlint releases it.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var serviceFxn = this._getService.bind(this, componentName);\n\n return serviceFxn.apply(this, component.multipleInstances ? args : []);\n };\n } // add the component to existing app instances\n\n\n for (var _i = 0, _a = Object.keys(apps); _i < _a.length; _i++) {\n var appName = _a[_i];\n\n apps[appName]._addComponent(component);\n }\n\n return component.type === \"PUBLIC\"\n /* PUBLIC */\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n namespace[componentName] : null;\n }\n\n function registerVersion(libraryKeyOrName, version, variant) {\n var _a; // TODO: We can use this check to whitelist strings when/if we set up\n // a good whitelist system.\n\n\n var library = (_a = PLATFORM_LOG_STRING[libraryKeyOrName]) !== null && _a !== void 0 ? _a : libraryKeyOrName;\n\n if (variant) {\n library += \"-\" + variant;\n }\n\n var libraryMismatch = library.match(/\\s|\\//);\n var versionMismatch = version.match(/\\s|\\//);\n\n if (libraryMismatch || versionMismatch) {\n var warning = [\"Unable to register library \\\"\" + library + \"\\\" with version \\\"\" + version + \"\\\":\"];\n\n if (libraryMismatch) {\n warning.push(\"library name \\\"\" + library + \"\\\" contains illegal characters (whitespace or \\\"/\\\")\");\n }\n\n if (libraryMismatch && versionMismatch) {\n warning.push('and');\n }\n\n if (versionMismatch) {\n warning.push(\"version name \\\"\" + version + \"\\\" contains illegal characters (whitespace or \\\"/\\\")\");\n }\n\n logger.warn(warning.join(' '));\n return;\n }\n\n registerComponent(new Component(library + \"-version\", function () {\n return {\n library: library,\n version: version\n };\n }, \"VERSION\"\n /* VERSION */\n ));\n }\n\n function onLog(logCallback, options) {\n if (logCallback !== null && typeof logCallback !== 'function') {\n throw ERROR_FACTORY.create(\"invalid-log-argument\"\n /* INVALID_LOG_ARGUMENT */\n );\n }\n\n setUserLogHandler(logCallback, options);\n } // Map the requested service to a registered service name\n // (used to map auth to serverAuth service when needed).\n\n\n function useAsService(app, name) {\n if (name === 'serverAuth') {\n return null;\n }\n\n var useService = name;\n return useService;\n }\n\n return namespace;\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Return a firebase namespace object.\r\n *\r\n * In production, this will be called exactly once and the result\r\n * assigned to the 'firebase' global. It may be called multiple times\r\n * in unit tests.\r\n */\n\n\nfunction createFirebaseNamespace() {\n var namespace = createFirebaseNamespaceCore(FirebaseAppImpl);\n namespace.INTERNAL = __assign(__assign({}, namespace.INTERNAL), {\n createFirebaseNamespace: createFirebaseNamespace,\n extendNamespace: extendNamespace,\n createSubscribe: createSubscribe,\n ErrorFactory: ErrorFactory,\n deepExtend: deepExtend\n });\n /**\r\n * Patch the top-level firebase namespace with additional properties.\r\n *\r\n * firebase.INTERNAL.extendNamespace()\r\n */\n\n function extendNamespace(props) {\n deepExtend(namespace, props);\n }\n\n return namespace;\n}\n\nvar firebase$1 = createFirebaseNamespace();\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\nvar PlatformLoggerService = function () {\n function PlatformLoggerService(container) {\n this.container = container;\n } // In initial implementation, this will be called by installations on\n // auth token refresh, and installations will send this string.\n\n\n PlatformLoggerService.prototype.getPlatformInfoString = function () {\n var providers = this.container.getProviders(); // Loop through providers and get library/version pairs from any that are\n // version components.\n\n return providers.map(function (provider) {\n if (isVersionServiceProvider(provider)) {\n var service = provider.getImmediate();\n return service.library + \"/\" + service.version;\n } else {\n return null;\n }\n }).filter(function (logString) {\n return logString;\n }).join(' ');\n };\n\n return PlatformLoggerService;\n}();\n/**\r\n *\r\n * @param provider check if this provider provides a VersionService\r\n *\r\n * NOTE: Using Provider<'app-version'> is a hack to indicate that the provider\r\n * provides VersionService. The provider is not necessarily a 'app-version'\r\n * provider.\r\n */\n\n\nfunction isVersionServiceProvider(provider) {\n var component = provider.getComponent();\n return (component === null || component === void 0 ? void 0 : component.type) === \"VERSION\"\n /* VERSION */\n ;\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nfunction registerCoreComponents(firebase, variant) {\n firebase.INTERNAL.registerComponent(new Component('platform-logger', function (container) {\n return new PlatformLoggerService(container);\n }, \"PRIVATE\"\n /* PRIVATE */\n )); // Register `app` package.\n\n firebase.registerVersion(name$c, version$1, variant); // Register platform SDK identifier (no version).\n\n firebase.registerVersion('fire-js', '');\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n// Firebase Lite detection test\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\nif (isBrowser() && self.firebase !== undefined) {\n logger.warn(\"\\n Warning: Firebase is already defined in the global scope. Please make sure\\n Firebase library is only loaded once.\\n \"); // eslint-disable-next-line\n\n var sdkVersion = self.firebase.SDK_VERSION;\n\n if (sdkVersion && sdkVersion.indexOf('LITE') >= 0) {\n logger.warn(\"\\n Warning: You are trying to load Firebase while using Firebase Performance standalone script.\\n You should load Firebase Performance with this instance of Firebase to avoid loading duplicate code.\\n \");\n }\n}\n\nvar initializeApp = firebase$1.initializeApp; // TODO: This disable can be removed and the 'ignoreRestArgs' option added to\n// the no-explicit-any rule when ESlint releases it.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\nfirebase$1.initializeApp = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n } // Environment check before initializing app\n // Do the check in initializeApp, so people have a chance to disable it by setting logLevel\n // in @firebase/logger\n\n\n if (isNode()) {\n logger.warn(\"\\n Warning: This is a browser-targeted Firebase bundle but it appears it is being\\n run in a Node environment. If running in a Node environment, make sure you\\n are using the bundle specified by the \\\"main\\\" field in package.json.\\n \\n If you are using Webpack, you can specify \\\"main\\\" as the first item in\\n \\\"resolve.mainFields\\\":\\n https://webpack.js.org/configuration/resolve/#resolvemainfields\\n \\n If using Rollup, use the @rollup/plugin-node-resolve plugin and specify \\\"main\\\"\\n as the first item in \\\"mainFields\\\", e.g. ['main', 'module'].\\n https://github.com/rollup/@rollup/plugin-node-resolve\\n \");\n }\n\n return initializeApp.apply(undefined, args);\n};\n\nvar firebase = firebase$1;\nregisterCoreComponents(firebase);\nexport default firebase;\nexport { firebase };","import { __values, __read, __awaiter, __generator, __spreadArray } from 'tslib';\nimport { Deferred } from '@firebase/util';\n/**\r\n * Component for service name T, e.g. `auth`, `auth-internal`\r\n */\n\nvar Component = function () {\n /**\r\n *\r\n * @param name The public service name, e.g. app, auth, firestore, database\r\n * @param instanceFactory Service factory responsible for creating the public interface\r\n * @param type whether the service provided by the component is public or private\r\n */\n function Component(name, instanceFactory, type) {\n this.name = name;\n this.instanceFactory = instanceFactory;\n this.type = type;\n this.multipleInstances = false;\n /**\r\n * Properties to be added to the service namespace\r\n */\n\n this.serviceProps = {};\n this.instantiationMode = \"LAZY\"\n /* LAZY */\n ;\n this.onInstanceCreated = null;\n }\n\n Component.prototype.setInstantiationMode = function (mode) {\n this.instantiationMode = mode;\n return this;\n };\n\n Component.prototype.setMultipleInstances = function (multipleInstances) {\n this.multipleInstances = multipleInstances;\n return this;\n };\n\n Component.prototype.setServiceProps = function (props) {\n this.serviceProps = props;\n return this;\n };\n\n Component.prototype.setInstanceCreatedCallback = function (callback) {\n this.onInstanceCreated = callback;\n return this;\n };\n\n return Component;\n}();\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar DEFAULT_ENTRY_NAME = '[DEFAULT]';\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Provider for instance for service name T, e.g. 'auth', 'auth-internal'\r\n * NameServiceMapping[T] is an alias for the type of the instance\r\n */\n\nvar Provider = function () {\n function Provider(name, container) {\n this.name = name;\n this.container = container;\n this.component = null;\n this.instances = new Map();\n this.instancesDeferred = new Map();\n this.onInitCallbacks = new Map();\n }\n /**\r\n * @param identifier A provider can provide mulitple instances of a service\r\n * if this.component.multipleInstances is true.\r\n */\n\n\n Provider.prototype.get = function (identifier) {\n // if multipleInstances is not supported, use the default name\n var normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\n\n if (!this.instancesDeferred.has(normalizedIdentifier)) {\n var deferred = new Deferred();\n this.instancesDeferred.set(normalizedIdentifier, deferred);\n\n if (this.isInitialized(normalizedIdentifier) || this.shouldAutoInitialize()) {\n // initialize the service if it can be auto-initialized\n try {\n var instance = this.getOrInitializeService({\n instanceIdentifier: normalizedIdentifier\n });\n\n if (instance) {\n deferred.resolve(instance);\n }\n } catch (e) {// when the instance factory throws an exception during get(), it should not cause\n // a fatal error. We just return the unresolved promise in this case.\n }\n }\n }\n\n return this.instancesDeferred.get(normalizedIdentifier).promise;\n };\n\n Provider.prototype.getImmediate = function (options) {\n var _a; // if multipleInstances is not supported, use the default name\n\n\n var normalizedIdentifier = this.normalizeInstanceIdentifier(options === null || options === void 0 ? void 0 : options.identifier);\n var optional = (_a = options === null || options === void 0 ? void 0 : options.optional) !== null && _a !== void 0 ? _a : false;\n\n if (this.isInitialized(normalizedIdentifier) || this.shouldAutoInitialize()) {\n try {\n return this.getOrInitializeService({\n instanceIdentifier: normalizedIdentifier\n });\n } catch (e) {\n if (optional) {\n return null;\n } else {\n throw e;\n }\n }\n } else {\n // In case a component is not initialized and should/can not be auto-initialized at the moment, return null if the optional flag is set, or throw\n if (optional) {\n return null;\n } else {\n throw Error(\"Service \" + this.name + \" is not available\");\n }\n }\n };\n\n Provider.prototype.getComponent = function () {\n return this.component;\n };\n\n Provider.prototype.setComponent = function (component) {\n var e_1, _a;\n\n if (component.name !== this.name) {\n throw Error(\"Mismatching Component \" + component.name + \" for Provider \" + this.name + \".\");\n }\n\n if (this.component) {\n throw Error(\"Component for \" + this.name + \" has already been provided\");\n }\n\n this.component = component; // return early without attempting to initialize the component if the component requires explicit initialization (calling `Provider.initialize()`)\n\n if (!this.shouldAutoInitialize()) {\n return;\n } // if the service is eager, initialize the default instance\n\n\n if (isComponentEager(component)) {\n try {\n this.getOrInitializeService({\n instanceIdentifier: DEFAULT_ENTRY_NAME\n });\n } catch (e) {// when the instance factory for an eager Component throws an exception during the eager\n // initialization, it should not cause a fatal error.\n // TODO: Investigate if we need to make it configurable, because some component may want to cause\n // a fatal error in this case?\n }\n }\n\n try {\n // Create service instances for the pending promises and resolve them\n // NOTE: if this.multipleInstances is false, only the default instance will be created\n // and all promises with resolve with it regardless of the identifier.\n for (var _b = __values(this.instancesDeferred.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read(_c.value, 2),\n instanceIdentifier = _d[0],\n instanceDeferred = _d[1];\n\n var normalizedIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier);\n\n try {\n // `getOrInitializeService()` should always return a valid instance since a component is guaranteed. use ! to make typescript happy.\n var instance = this.getOrInitializeService({\n instanceIdentifier: normalizedIdentifier\n });\n instanceDeferred.resolve(instance);\n } catch (e) {// when the instance factory throws an exception, it should not cause\n // a fatal error. We just leave the promise unresolved.\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n };\n\n Provider.prototype.clearInstance = function (identifier) {\n if (identifier === void 0) {\n identifier = DEFAULT_ENTRY_NAME;\n }\n\n this.instancesDeferred.delete(identifier);\n this.instances.delete(identifier);\n }; // app.delete() will call this method on every provider to delete the services\n // TODO: should we mark the provider as deleted?\n\n\n Provider.prototype.delete = function () {\n return __awaiter(this, void 0, void 0, function () {\n var services;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n services = Array.from(this.instances.values());\n return [4\n /*yield*/\n , Promise.all(__spreadArray(__spreadArray([], __read(services.filter(function (service) {\n return 'INTERNAL' in service;\n }) // legacy services\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .map(function (service) {\n return service.INTERNAL.delete();\n }))), __read(services.filter(function (service) {\n return '_delete' in service;\n }) // modularized services\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .map(function (service) {\n return service._delete();\n }))))];\n\n case 1:\n _a.sent();\n\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n Provider.prototype.isComponentSet = function () {\n return this.component != null;\n };\n\n Provider.prototype.isInitialized = function (identifier) {\n if (identifier === void 0) {\n identifier = DEFAULT_ENTRY_NAME;\n }\n\n return this.instances.has(identifier);\n };\n\n Provider.prototype.initialize = function (opts) {\n var e_2, _a;\n\n if (opts === void 0) {\n opts = {};\n }\n\n var _b = opts.options,\n options = _b === void 0 ? {} : _b;\n var normalizedIdentifier = this.normalizeInstanceIdentifier(opts.instanceIdentifier);\n\n if (this.isInitialized(normalizedIdentifier)) {\n throw Error(this.name + \"(\" + normalizedIdentifier + \") has already been initialized\");\n }\n\n if (!this.isComponentSet()) {\n throw Error(\"Component \" + this.name + \" has not been registered yet\");\n }\n\n var instance = this.getOrInitializeService({\n instanceIdentifier: normalizedIdentifier,\n options: options\n });\n\n try {\n // resolve any pending promise waiting for the service instance\n for (var _c = __values(this.instancesDeferred.entries()), _d = _c.next(); !_d.done; _d = _c.next()) {\n var _e = __read(_d.value, 2),\n instanceIdentifier = _e[0],\n instanceDeferred = _e[1];\n\n var normalizedDeferredIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier);\n\n if (normalizedIdentifier === normalizedDeferredIdentifier) {\n instanceDeferred.resolve(instance);\n }\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n\n return instance;\n };\n /**\r\n *\r\n * @param callback - a function that will be invoked after the provider has been initialized by calling provider.initialize().\r\n * The function is invoked SYNCHRONOUSLY, so it should not execute any longrunning tasks in order to not block the program.\r\n *\r\n * @param identifier An optional instance identifier\r\n * @returns a function to unregister the callback\r\n */\n\n\n Provider.prototype.onInit = function (callback, identifier) {\n var _a;\n\n var normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\n var existingCallbacks = (_a = this.onInitCallbacks.get(normalizedIdentifier)) !== null && _a !== void 0 ? _a : new Set();\n existingCallbacks.add(callback);\n this.onInitCallbacks.set(normalizedIdentifier, existingCallbacks);\n var existingInstance = this.instances.get(normalizedIdentifier);\n\n if (existingInstance) {\n callback(existingInstance, normalizedIdentifier);\n }\n\n return function () {\n existingCallbacks.delete(callback);\n };\n };\n /**\r\n * Invoke onInit callbacks synchronously\r\n * @param instance the service instance`\r\n */\n\n\n Provider.prototype.invokeOnInitCallbacks = function (instance, identifier) {\n var e_3, _a;\n\n var callbacks = this.onInitCallbacks.get(identifier);\n\n if (!callbacks) {\n return;\n }\n\n try {\n for (var callbacks_1 = __values(callbacks), callbacks_1_1 = callbacks_1.next(); !callbacks_1_1.done; callbacks_1_1 = callbacks_1.next()) {\n var callback = callbacks_1_1.value;\n\n try {\n callback(instance, identifier);\n } catch (_b) {// ignore errors in the onInit callback\n }\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (callbacks_1_1 && !callbacks_1_1.done && (_a = callbacks_1.return)) _a.call(callbacks_1);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n };\n\n Provider.prototype.getOrInitializeService = function (_a) {\n var instanceIdentifier = _a.instanceIdentifier,\n _b = _a.options,\n options = _b === void 0 ? {} : _b;\n var instance = this.instances.get(instanceIdentifier);\n\n if (!instance && this.component) {\n instance = this.component.instanceFactory(this.container, {\n instanceIdentifier: normalizeIdentifierForFactory(instanceIdentifier),\n options: options\n });\n this.instances.set(instanceIdentifier, instance);\n /**\r\n * Invoke onInit listeners.\r\n * Note this.component.onInstanceCreated is different, which is used by the component creator,\r\n * while onInit listeners are registered by consumers of the provider.\r\n */\n\n this.invokeOnInitCallbacks(instance, instanceIdentifier);\n /**\r\n * Order is important\r\n * onInstanceCreated() should be called after this.instances.set(instanceIdentifier, instance); which\r\n * makes `isInitialized()` return true.\r\n */\n\n if (this.component.onInstanceCreated) {\n try {\n this.component.onInstanceCreated(this.container, instanceIdentifier, instance);\n } catch (_c) {// ignore errors in the onInstanceCreatedCallback\n }\n }\n }\n\n return instance || null;\n };\n\n Provider.prototype.normalizeInstanceIdentifier = function (identifier) {\n if (identifier === void 0) {\n identifier = DEFAULT_ENTRY_NAME;\n }\n\n if (this.component) {\n return this.component.multipleInstances ? identifier : DEFAULT_ENTRY_NAME;\n } else {\n return identifier; // assume multiple instances are supported before the component is provided.\n }\n };\n\n Provider.prototype.shouldAutoInitialize = function () {\n return !!this.component && this.component.instantiationMode !== \"EXPLICIT\"\n /* EXPLICIT */\n ;\n };\n\n return Provider;\n}(); // undefined should be passed to the service factory for the default instance\n\n\nfunction normalizeIdentifierForFactory(identifier) {\n return identifier === DEFAULT_ENTRY_NAME ? undefined : identifier;\n}\n\nfunction isComponentEager(component) {\n return component.instantiationMode === \"EAGER\"\n /* EAGER */\n ;\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * ComponentContainer that provides Providers for service name T, e.g. `auth`, `auth-internal`\r\n */\n\n\nvar ComponentContainer = function () {\n function ComponentContainer(name) {\n this.name = name;\n this.providers = new Map();\n }\n /**\r\n *\r\n * @param component Component being added\r\n * @param overwrite When a component with the same name has already been registered,\r\n * if overwrite is true: overwrite the existing component with the new component and create a new\r\n * provider with the new component. It can be useful in tests where you want to use different mocks\r\n * for different tests.\r\n * if overwrite is false: throw an exception\r\n */\n\n\n ComponentContainer.prototype.addComponent = function (component) {\n var provider = this.getProvider(component.name);\n\n if (provider.isComponentSet()) {\n throw new Error(\"Component \" + component.name + \" has already been registered with \" + this.name);\n }\n\n provider.setComponent(component);\n };\n\n ComponentContainer.prototype.addOrOverwriteComponent = function (component) {\n var provider = this.getProvider(component.name);\n\n if (provider.isComponentSet()) {\n // delete the existing provider from the container, so we can register the new component\n this.providers.delete(component.name);\n }\n\n this.addComponent(component);\n };\n /**\r\n * getProvider provides a type safe interface where it can only be called with a field name\r\n * present in NameServiceMapping interface.\r\n *\r\n * Firebase SDKs providing services should extend NameServiceMapping interface to register\r\n * themselves.\r\n */\n\n\n ComponentContainer.prototype.getProvider = function (name) {\n if (this.providers.has(name)) {\n return this.providers.get(name);\n } // create a Provider for a service that hasn't registered with Firebase\n\n\n var provider = new Provider(name, this);\n this.providers.set(name, provider);\n return provider;\n };\n\n ComponentContainer.prototype.getProviders = function () {\n return Array.from(this.providers.values());\n };\n\n return ComponentContainer;\n}();\n\nexport { Component, ComponentContainer, Provider };","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\nfunction __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar _a;\n/**\r\n * A container for all of the Logger instances\r\n */\n\n\nvar instances = [];\n/**\r\n * The JS SDK supports 5 log levels and also allows a user the ability to\r\n * silence the logs altogether.\r\n *\r\n * The order is a follows:\r\n * DEBUG < VERBOSE < INFO < WARN < ERROR\r\n *\r\n * All of the log types above the current log level will be captured (i.e. if\r\n * you set the log level to `INFO`, errors will still be logged, but `DEBUG` and\r\n * `VERBOSE` logs will not)\r\n */\n\nvar LogLevel;\n\n(function (LogLevel) {\n LogLevel[LogLevel[\"DEBUG\"] = 0] = \"DEBUG\";\n LogLevel[LogLevel[\"VERBOSE\"] = 1] = \"VERBOSE\";\n LogLevel[LogLevel[\"INFO\"] = 2] = \"INFO\";\n LogLevel[LogLevel[\"WARN\"] = 3] = \"WARN\";\n LogLevel[LogLevel[\"ERROR\"] = 4] = \"ERROR\";\n LogLevel[LogLevel[\"SILENT\"] = 5] = \"SILENT\";\n})(LogLevel || (LogLevel = {}));\n\nvar levelStringToEnum = {\n 'debug': LogLevel.DEBUG,\n 'verbose': LogLevel.VERBOSE,\n 'info': LogLevel.INFO,\n 'warn': LogLevel.WARN,\n 'error': LogLevel.ERROR,\n 'silent': LogLevel.SILENT\n};\n/**\r\n * The default log level\r\n */\n\nvar defaultLogLevel = LogLevel.INFO;\n/**\r\n * By default, `console.debug` is not displayed in the developer console (in\r\n * chrome). To avoid forcing users to have to opt-in to these logs twice\r\n * (i.e. once for firebase, and once in the console), we are sending `DEBUG`\r\n * logs to the `console.log` function.\r\n */\n\nvar ConsoleMethod = (_a = {}, _a[LogLevel.DEBUG] = 'log', _a[LogLevel.VERBOSE] = 'log', _a[LogLevel.INFO] = 'info', _a[LogLevel.WARN] = 'warn', _a[LogLevel.ERROR] = 'error', _a);\n/**\r\n * The default log handler will forward DEBUG, VERBOSE, INFO, WARN, and ERROR\r\n * messages on to their corresponding console counterparts (if the log method\r\n * is supported by the current log level)\r\n */\n\nvar defaultLogHandler = function defaultLogHandler(instance, logType) {\n var args = [];\n\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n\n if (logType < instance.logLevel) {\n return;\n }\n\n var now = new Date().toISOString();\n var method = ConsoleMethod[logType];\n\n if (method) {\n console[method].apply(console, __spreadArrays([\"[\" + now + \"] \" + instance.name + \":\"], args));\n } else {\n throw new Error(\"Attempted to log a message with an invalid logType (value: \" + logType + \")\");\n }\n};\n\nvar Logger = function () {\n /**\r\n * Gives you an instance of a Logger to capture messages according to\r\n * Firebase's logging scheme.\r\n *\r\n * @param name The name that the logs will be associated with\r\n */\n function Logger(name) {\n this.name = name;\n /**\r\n * The log level of the given Logger instance.\r\n */\n\n this._logLevel = defaultLogLevel;\n /**\r\n * The main (internal) log handler for the Logger instance.\r\n * Can be set to a new function in internal package code but not by user.\r\n */\n\n this._logHandler = defaultLogHandler;\n /**\r\n * The optional, additional, user-defined log handler for the Logger instance.\r\n */\n\n this._userLogHandler = null;\n /**\r\n * Capture the current instance for later use\r\n */\n\n instances.push(this);\n }\n\n Object.defineProperty(Logger.prototype, \"logLevel\", {\n get: function get() {\n return this._logLevel;\n },\n set: function set(val) {\n if (!(val in LogLevel)) {\n throw new TypeError(\"Invalid value \\\"\" + val + \"\\\" assigned to `logLevel`\");\n }\n\n this._logLevel = val;\n },\n enumerable: false,\n configurable: true\n }); // Workaround for setter/getter having to be the same type.\n\n Logger.prototype.setLogLevel = function (val) {\n this._logLevel = typeof val === 'string' ? levelStringToEnum[val] : val;\n };\n\n Object.defineProperty(Logger.prototype, \"logHandler\", {\n get: function get() {\n return this._logHandler;\n },\n set: function set(val) {\n if (typeof val !== 'function') {\n throw new TypeError('Value assigned to `logHandler` must be a function');\n }\n\n this._logHandler = val;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Logger.prototype, \"userLogHandler\", {\n get: function get() {\n return this._userLogHandler;\n },\n set: function set(val) {\n this._userLogHandler = val;\n },\n enumerable: false,\n configurable: true\n });\n /**\r\n * The functions below are all based on the `console` interface\r\n */\n\n Logger.prototype.debug = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n this._userLogHandler && this._userLogHandler.apply(this, __spreadArrays([this, LogLevel.DEBUG], args));\n\n this._logHandler.apply(this, __spreadArrays([this, LogLevel.DEBUG], args));\n };\n\n Logger.prototype.log = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n this._userLogHandler && this._userLogHandler.apply(this, __spreadArrays([this, LogLevel.VERBOSE], args));\n\n this._logHandler.apply(this, __spreadArrays([this, LogLevel.VERBOSE], args));\n };\n\n Logger.prototype.info = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n this._userLogHandler && this._userLogHandler.apply(this, __spreadArrays([this, LogLevel.INFO], args));\n\n this._logHandler.apply(this, __spreadArrays([this, LogLevel.INFO], args));\n };\n\n Logger.prototype.warn = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n this._userLogHandler && this._userLogHandler.apply(this, __spreadArrays([this, LogLevel.WARN], args));\n\n this._logHandler.apply(this, __spreadArrays([this, LogLevel.WARN], args));\n };\n\n Logger.prototype.error = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n this._userLogHandler && this._userLogHandler.apply(this, __spreadArrays([this, LogLevel.ERROR], args));\n\n this._logHandler.apply(this, __spreadArrays([this, LogLevel.ERROR], args));\n };\n\n return Logger;\n}();\n\nfunction setLogLevel(level) {\n instances.forEach(function (inst) {\n inst.setLogLevel(level);\n });\n}\n\nfunction setUserLogHandler(logCallback, options) {\n var _loop_1 = function _loop_1(instance) {\n var customLogLevel = null;\n\n if (options && options.level) {\n customLogLevel = levelStringToEnum[options.level];\n }\n\n if (logCallback === null) {\n instance.userLogHandler = null;\n } else {\n instance.userLogHandler = function (instance, level) {\n var args = [];\n\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n\n var message = args.map(function (arg) {\n if (arg == null) {\n return null;\n } else if (typeof arg === 'string') {\n return arg;\n } else if (typeof arg === 'number' || typeof arg === 'boolean') {\n return arg.toString();\n } else if (arg instanceof Error) {\n return arg.message;\n } else {\n try {\n return JSON.stringify(arg);\n } catch (ignored) {\n return null;\n }\n }\n }).filter(function (arg) {\n return arg;\n }).join(' ');\n\n if (level >= (customLogLevel !== null && customLogLevel !== void 0 ? customLogLevel : instance.logLevel)) {\n logCallback({\n level: LogLevel[level].toLowerCase(),\n message: message,\n args: args,\n type: instance.name\n });\n }\n };\n }\n };\n\n for (var _i = 0, instances_1 = instances; _i < instances_1.length; _i++) {\n var instance = instances_1[_i];\n\n _loop_1(instance);\n }\n}\n\nexport { LogLevel, Logger, setLogLevel, setUserLogHandler };","import { __assign, __extends } from 'tslib';\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * @fileoverview Firebase constants. Some of these (@defines) can be overridden at compile-time.\r\n */\n\nvar CONSTANTS = {\n /**\r\n * @define {boolean} Whether this is the client Node.js SDK.\r\n */\n NODE_CLIENT: false,\n\n /**\r\n * @define {boolean} Whether this is the Admin Node.js SDK.\r\n */\n NODE_ADMIN: false,\n\n /**\r\n * Firebase SDK Version\r\n */\n SDK_VERSION: '${JSCORE_VERSION}'\n};\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Throws an error if the provided assertion is falsy\r\n */\n\nvar assert = function assert(assertion, message) {\n if (!assertion) {\n throw assertionError(message);\n }\n};\n/**\r\n * Returns an Error object suitable for throwing.\r\n */\n\n\nvar assertionError = function assertionError(message) {\n return new Error('Firebase Database (' + CONSTANTS.SDK_VERSION + ') INTERNAL ASSERT FAILED: ' + message);\n};\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar stringToByteArray = function stringToByteArray(str) {\n // TODO(user): Use native implementations if/when available\n var out = [];\n var p = 0;\n\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n\n if (c < 128) {\n out[p++] = c;\n } else if (c < 2048) {\n out[p++] = c >> 6 | 192;\n out[p++] = c & 63 | 128;\n } else if ((c & 0xfc00) === 0xd800 && i + 1 < str.length && (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n // Surrogate Pair\n c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);\n out[p++] = c >> 18 | 240;\n out[p++] = c >> 12 & 63 | 128;\n out[p++] = c >> 6 & 63 | 128;\n out[p++] = c & 63 | 128;\n } else {\n out[p++] = c >> 12 | 224;\n out[p++] = c >> 6 & 63 | 128;\n out[p++] = c & 63 | 128;\n }\n }\n\n return out;\n};\n/**\r\n * Turns an array of numbers into the string given by the concatenation of the\r\n * characters to which the numbers correspond.\r\n * @param bytes Array of numbers representing characters.\r\n * @return Stringification of the array.\r\n */\n\n\nvar byteArrayToString = function byteArrayToString(bytes) {\n // TODO(user): Use native implementations if/when available\n var out = [];\n var pos = 0,\n c = 0;\n\n while (pos < bytes.length) {\n var c1 = bytes[pos++];\n\n if (c1 < 128) {\n out[c++] = String.fromCharCode(c1);\n } else if (c1 > 191 && c1 < 224) {\n var c2 = bytes[pos++];\n out[c++] = String.fromCharCode((c1 & 31) << 6 | c2 & 63);\n } else if (c1 > 239 && c1 < 365) {\n // Surrogate Pair\n var c2 = bytes[pos++];\n var c3 = bytes[pos++];\n var c4 = bytes[pos++];\n var u = ((c1 & 7) << 18 | (c2 & 63) << 12 | (c3 & 63) << 6 | c4 & 63) - 0x10000;\n out[c++] = String.fromCharCode(0xd800 + (u >> 10));\n out[c++] = String.fromCharCode(0xdc00 + (u & 1023));\n } else {\n var c2 = bytes[pos++];\n var c3 = bytes[pos++];\n out[c++] = String.fromCharCode((c1 & 15) << 12 | (c2 & 63) << 6 | c3 & 63);\n }\n }\n\n return out.join('');\n}; // We define it as an object literal instead of a class because a class compiled down to es5 can't\n// be treeshaked. https://github.com/rollup/rollup/issues/1691\n// Static lookup maps, lazily populated by init_()\n\n\nvar base64 = {\n /**\r\n * Maps bytes to characters.\r\n */\n byteToCharMap_: null,\n\n /**\r\n * Maps characters to bytes.\r\n */\n charToByteMap_: null,\n\n /**\r\n * Maps bytes to websafe characters.\r\n * @private\r\n */\n byteToCharMapWebSafe_: null,\n\n /**\r\n * Maps websafe characters to bytes.\r\n * @private\r\n */\n charToByteMapWebSafe_: null,\n\n /**\r\n * Our default alphabet, shared between\r\n * ENCODED_VALS and ENCODED_VALS_WEBSAFE\r\n */\n ENCODED_VALS_BASE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789',\n\n /**\r\n * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\r\n */\n get ENCODED_VALS() {\n return this.ENCODED_VALS_BASE + '+/=';\n },\n\n /**\r\n * Our websafe alphabet.\r\n */\n get ENCODED_VALS_WEBSAFE() {\n return this.ENCODED_VALS_BASE + '-_.';\n },\n\n /**\r\n * Whether this browser supports the atob and btoa functions. This extension\r\n * started at Mozilla but is now implemented by many browsers. We use the\r\n * ASSUME_* variables to avoid pulling in the full useragent detection library\r\n * but still allowing the standard per-browser compilations.\r\n *\r\n */\n HAS_NATIVE_SUPPORT: typeof atob === 'function',\n\n /**\r\n * Base64-encode an array of bytes.\r\n *\r\n * @param input An array of bytes (numbers with\r\n * value in [0, 255]) to encode.\r\n * @param webSafe Boolean indicating we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\n encodeByteArray: function encodeByteArray(input, webSafe) {\n if (!Array.isArray(input)) {\n throw Error('encodeByteArray takes an array as a parameter');\n }\n\n this.init_();\n var byteToCharMap = webSafe ? this.byteToCharMapWebSafe_ : this.byteToCharMap_;\n var output = [];\n\n for (var i = 0; i < input.length; i += 3) {\n var byte1 = input[i];\n var haveByte2 = i + 1 < input.length;\n var byte2 = haveByte2 ? input[i + 1] : 0;\n var haveByte3 = i + 2 < input.length;\n var byte3 = haveByte3 ? input[i + 2] : 0;\n var outByte1 = byte1 >> 2;\n var outByte2 = (byte1 & 0x03) << 4 | byte2 >> 4;\n var outByte3 = (byte2 & 0x0f) << 2 | byte3 >> 6;\n var outByte4 = byte3 & 0x3f;\n\n if (!haveByte3) {\n outByte4 = 64;\n\n if (!haveByte2) {\n outByte3 = 64;\n }\n }\n\n output.push(byteToCharMap[outByte1], byteToCharMap[outByte2], byteToCharMap[outByte3], byteToCharMap[outByte4]);\n }\n\n return output.join('');\n },\n\n /**\r\n * Base64-encode a string.\r\n *\r\n * @param input A string to encode.\r\n * @param webSafe If true, we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\n encodeString: function encodeString(input, webSafe) {\n // Shortcut for Mozilla browsers that implement\n // a native base64 encoder in the form of \"btoa/atob\"\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\n return btoa(input);\n }\n\n return this.encodeByteArray(stringToByteArray(input), webSafe);\n },\n\n /**\r\n * Base64-decode a string.\r\n *\r\n * @param input to decode.\r\n * @param webSafe True if we should use the\r\n * alternative alphabet.\r\n * @return string representing the decoded value.\r\n */\n decodeString: function decodeString(input, webSafe) {\n // Shortcut for Mozilla browsers that implement\n // a native base64 encoder in the form of \"btoa/atob\"\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\n return atob(input);\n }\n\n return byteArrayToString(this.decodeStringToByteArray(input, webSafe));\n },\n\n /**\r\n * Base64-decode a string.\r\n *\r\n * In base-64 decoding, groups of four characters are converted into three\r\n * bytes. If the encoder did not apply padding, the input length may not\r\n * be a multiple of 4.\r\n *\r\n * In this case, the last group will have fewer than 4 characters, and\r\n * padding will be inferred. If the group has one or two characters, it decodes\r\n * to one byte. If the group has three characters, it decodes to two bytes.\r\n *\r\n * @param input Input to decode.\r\n * @param webSafe True if we should use the web-safe alphabet.\r\n * @return bytes representing the decoded value.\r\n */\n decodeStringToByteArray: function decodeStringToByteArray(input, webSafe) {\n this.init_();\n var charToByteMap = webSafe ? this.charToByteMapWebSafe_ : this.charToByteMap_;\n var output = [];\n\n for (var i = 0; i < input.length;) {\n var byte1 = charToByteMap[input.charAt(i++)];\n var haveByte2 = i < input.length;\n var byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\n ++i;\n var haveByte3 = i < input.length;\n var byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64;\n ++i;\n var haveByte4 = i < input.length;\n var byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64;\n ++i;\n\n if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\n throw Error();\n }\n\n var outByte1 = byte1 << 2 | byte2 >> 4;\n output.push(outByte1);\n\n if (byte3 !== 64) {\n var outByte2 = byte2 << 4 & 0xf0 | byte3 >> 2;\n output.push(outByte2);\n\n if (byte4 !== 64) {\n var outByte3 = byte3 << 6 & 0xc0 | byte4;\n output.push(outByte3);\n }\n }\n }\n\n return output;\n },\n\n /**\r\n * Lazy static initialization function. Called before\r\n * accessing any of the static map variables.\r\n * @private\r\n */\n init_: function init_() {\n if (!this.byteToCharMap_) {\n this.byteToCharMap_ = {};\n this.charToByteMap_ = {};\n this.byteToCharMapWebSafe_ = {};\n this.charToByteMapWebSafe_ = {}; // We want quick mappings back and forth, so we precompute two maps.\n\n for (var i = 0; i < this.ENCODED_VALS.length; i++) {\n this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i);\n this.charToByteMap_[this.byteToCharMap_[i]] = i;\n this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i);\n this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i; // Be forgiving when decoding and correctly decode both encodings.\n\n if (i >= this.ENCODED_VALS_BASE.length) {\n this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i;\n this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i;\n }\n }\n }\n }\n};\n/**\r\n * URL-safe base64 encoding\r\n */\n\nvar base64Encode = function base64Encode(str) {\n var utf8Bytes = stringToByteArray(str);\n return base64.encodeByteArray(utf8Bytes, true);\n};\n/**\r\n * URL-safe base64 decoding\r\n *\r\n * NOTE: DO NOT use the global atob() function - it does NOT support the\r\n * base64Url variant encoding.\r\n *\r\n * @param str To be decoded\r\n * @return Decoded result, if possible\r\n */\n\n\nvar base64Decode = function base64Decode(str) {\n try {\n return base64.decodeString(str, true);\n } catch (e) {\n console.error('base64Decode failed: ', e);\n }\n\n return null;\n};\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Do a deep-copy of basic JavaScript Objects or Arrays.\r\n */\n\n\nfunction deepCopy(value) {\n return deepExtend(undefined, value);\n}\n/**\r\n * Copy properties from source to target (recursively allows extension\r\n * of Objects and Arrays). Scalar values in the target are over-written.\r\n * If target is undefined, an object of the appropriate type will be created\r\n * (and returned).\r\n *\r\n * We recursively copy all child properties of plain Objects in the source- so\r\n * that namespace- like dictionaries are merged.\r\n *\r\n * Note that the target can be a function, in which case the properties in\r\n * the source Object are copied onto it as static properties of the Function.\r\n *\r\n * Note: we don't merge __proto__ to prevent prototype pollution\r\n */\n\n\nfunction deepExtend(target, source) {\n if (!(source instanceof Object)) {\n return source;\n }\n\n switch (source.constructor) {\n case Date:\n // Treat Dates like scalars; if the target date object had any child\n // properties - they will be lost!\n var dateValue = source;\n return new Date(dateValue.getTime());\n\n case Object:\n if (target === undefined) {\n target = {};\n }\n\n break;\n\n case Array:\n // Always copy the array source and overwrite the target.\n target = [];\n break;\n\n default:\n // Not a plain Object - treat it as a scalar.\n return source;\n }\n\n for (var prop in source) {\n // use isValidKey to guard against prototype pollution. See https://snyk.io/vuln/SNYK-JS-LODASH-450202\n if (!source.hasOwnProperty(prop) || !isValidKey(prop)) {\n continue;\n }\n\n target[prop] = deepExtend(target[prop], source[prop]);\n }\n\n return target;\n}\n\nfunction isValidKey(key) {\n return key !== '__proto__';\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar Deferred = function () {\n function Deferred() {\n var _this = this;\n\n this.reject = function () {};\n\n this.resolve = function () {};\n\n this.promise = new Promise(function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n });\n }\n /**\r\n * Our API internals are not promiseified and cannot because our callback APIs have subtle expectations around\r\n * invoking promises inline, which Promises are forbidden to do. This method accepts an optional node-style callback\r\n * and returns a node-style callback which will resolve or reject the Deferred's promise.\r\n */\n\n\n Deferred.prototype.wrapCallback = function (callback) {\n var _this = this;\n\n return function (error, value) {\n if (error) {\n _this.reject(error);\n } else {\n _this.resolve(value);\n }\n\n if (typeof callback === 'function') {\n // Attaching noop handler just in case developer wasn't expecting\n // promises\n _this.promise.catch(function () {}); // Some of our callbacks don't expect a value and our own tests\n // assert that the parameter length is 1\n\n\n if (callback.length === 1) {\n callback(error);\n } else {\n callback(error, value);\n }\n }\n };\n };\n\n return Deferred;\n}();\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nfunction createMockUserToken(token, projectId) {\n if (token.uid) {\n throw new Error('The \"uid\" field is no longer supported by mockUserToken. Please use \"sub\" instead for Firebase Auth User ID.');\n } // Unsecured JWTs use \"none\" as the algorithm.\n\n\n var header = {\n alg: 'none',\n type: 'JWT'\n };\n var project = projectId || 'demo-project';\n var iat = token.iat || 0;\n var sub = token.sub || token.user_id;\n\n if (!sub) {\n throw new Error(\"mockUserToken must contain 'sub' or 'user_id' field!\");\n }\n\n var payload = __assign({\n // Set all required fields to decent defaults\n iss: \"https://securetoken.google.com/\" + project,\n aud: project,\n iat: iat,\n exp: iat + 3600,\n auth_time: iat,\n sub: sub,\n user_id: sub,\n firebase: {\n sign_in_provider: 'custom',\n identities: {}\n }\n }, token); // Unsecured JWTs use the empty string as a signature.\n\n\n var signature = '';\n return [base64.encodeString(JSON.stringify(header),\n /*webSafe=*/\n false), base64.encodeString(JSON.stringify(payload),\n /*webSafe=*/\n false), signature].join('.');\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Returns navigator.userAgent string or '' if it's not defined.\r\n * @return user agent string\r\n */\n\n\nfunction getUA() {\n if (typeof navigator !== 'undefined' && typeof navigator['userAgent'] === 'string') {\n return navigator['userAgent'];\n } else {\n return '';\n }\n}\n/**\r\n * Detect Cordova / PhoneGap / Ionic frameworks on a mobile device.\r\n *\r\n * Deliberately does not rely on checking `file://` URLs (as this fails PhoneGap\r\n * in the Ripple emulator) nor Cordova `onDeviceReady`, which would normally\r\n * wait for a callback.\r\n */\n\n\nfunction isMobileCordova() {\n return typeof window !== 'undefined' && // @ts-ignore Setting up an broadly applicable index signature for Window\n // just to deal with this case would probably be a bad idea.\n !!(window['cordova'] || window['phonegap'] || window['PhoneGap']) && /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA());\n}\n/**\r\n * Detect Node.js.\r\n *\r\n * @return true if Node.js environment is detected.\r\n */\n// Node detection logic from: https://github.com/iliakan/detect-node/\n\n\nfunction isNode() {\n try {\n return Object.prototype.toString.call(global.process) === '[object process]';\n } catch (e) {\n return false;\n }\n}\n/**\r\n * Detect Browser Environment\r\n */\n\n\nfunction isBrowser() {\n return typeof self === 'object' && self.self === self;\n}\n\nfunction isBrowserExtension() {\n var runtime = typeof chrome === 'object' ? chrome.runtime : typeof browser === 'object' ? browser.runtime : undefined;\n return typeof runtime === 'object' && runtime.id !== undefined;\n}\n/**\r\n * Detect React Native.\r\n *\r\n * @return true if ReactNative environment is detected.\r\n */\n\n\nfunction isReactNative() {\n return typeof navigator === 'object' && navigator['product'] === 'ReactNative';\n}\n/** Detects Electron apps. */\n\n\nfunction isElectron() {\n return getUA().indexOf('Electron/') >= 0;\n}\n/** Detects Internet Explorer. */\n\n\nfunction isIE() {\n var ua = getUA();\n return ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\n}\n/** Detects Universal Windows Platform apps. */\n\n\nfunction isUWP() {\n return getUA().indexOf('MSAppHost/') >= 0;\n}\n/**\r\n * Detect whether the current SDK build is the Node version.\r\n *\r\n * @return true if it's the Node SDK build.\r\n */\n\n\nfunction isNodeSdk() {\n return CONSTANTS.NODE_CLIENT === true || CONSTANTS.NODE_ADMIN === true;\n}\n/** Returns true if we are running in Safari. */\n\n\nfunction isSafari() {\n return !isNode() && navigator.userAgent.includes('Safari') && !navigator.userAgent.includes('Chrome');\n}\n/**\r\n * This method checks if indexedDB is supported by current browser/service worker context\r\n * @return true if indexedDB is supported by current browser/service worker context\r\n */\n\n\nfunction isIndexedDBAvailable() {\n return 'indexedDB' in self && indexedDB != null;\n}\n/**\r\n * This method validates browser/sw context for indexedDB by opening a dummy indexedDB database and reject\r\n * if errors occur during the database open operation.\r\n *\r\n * @throws exception if current browser/sw context can't run idb.open (ex: Safari iframe, Firefox\r\n * private browsing)\r\n */\n\n\nfunction validateIndexedDBOpenable() {\n return new Promise(function (resolve, reject) {\n try {\n var preExist_1 = true;\n var DB_CHECK_NAME_1 = 'validate-browser-context-for-indexeddb-analytics-module';\n var request_1 = self.indexedDB.open(DB_CHECK_NAME_1);\n\n request_1.onsuccess = function () {\n request_1.result.close(); // delete database only when it doesn't pre-exist\n\n if (!preExist_1) {\n self.indexedDB.deleteDatabase(DB_CHECK_NAME_1);\n }\n\n resolve(true);\n };\n\n request_1.onupgradeneeded = function () {\n preExist_1 = false;\n };\n\n request_1.onerror = function () {\n var _a;\n\n reject(((_a = request_1.error) === null || _a === void 0 ? void 0 : _a.message) || '');\n };\n } catch (error) {\n reject(error);\n }\n });\n}\n/**\r\n *\r\n * This method checks whether cookie is enabled within current browser\r\n * @return true if cookie is enabled within current browser\r\n */\n\n\nfunction areCookiesEnabled() {\n if (!navigator || !navigator.cookieEnabled) {\n return false;\n }\n\n return true;\n}\n/**\r\n * Polyfill for `globalThis` object.\r\n * @returns the `globalThis` object for the given environment.\r\n */\n\n\nfunction getGlobal() {\n if (typeof self !== 'undefined') {\n return self;\n }\n\n if (typeof window !== 'undefined') {\n return window;\n }\n\n if (typeof global !== 'undefined') {\n return global;\n }\n\n throw new Error('Unable to locate global object.');\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar ERROR_NAME = 'FirebaseError'; // Based on code from:\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Custom_Error_Types\n\nvar FirebaseError = function (_super) {\n __extends(FirebaseError, _super);\n\n function FirebaseError(code, message, customData) {\n var _this = _super.call(this, message) || this;\n\n _this.code = code;\n _this.customData = customData;\n _this.name = ERROR_NAME; // Fix For ES5\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n\n Object.setPrototypeOf(_this, FirebaseError.prototype); // Maintains proper stack trace for where our error was thrown.\n // Only available on V8.\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(_this, ErrorFactory.prototype.create);\n }\n\n return _this;\n }\n\n return FirebaseError;\n}(Error);\n\nvar ErrorFactory = function () {\n function ErrorFactory(service, serviceName, errors) {\n this.service = service;\n this.serviceName = serviceName;\n this.errors = errors;\n }\n\n ErrorFactory.prototype.create = function (code) {\n var data = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n data[_i - 1] = arguments[_i];\n }\n\n var customData = data[0] || {};\n var fullCode = this.service + \"/\" + code;\n var template = this.errors[code];\n var message = template ? replaceTemplate(template, customData) : 'Error'; // Service Name: Error message (service/code).\n\n var fullMessage = this.serviceName + \": \" + message + \" (\" + fullCode + \").\";\n var error = new FirebaseError(fullCode, fullMessage, customData);\n return error;\n };\n\n return ErrorFactory;\n}();\n\nfunction replaceTemplate(template, data) {\n return template.replace(PATTERN, function (_, key) {\n var value = data[key];\n return value != null ? String(value) : \"<\" + key + \"?>\";\n });\n}\n\nvar PATTERN = /\\{\\$([^}]+)}/g;\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Evaluates a JSON string into a javascript object.\r\n *\r\n * @param {string} str A string containing JSON.\r\n * @return {*} The javascript object representing the specified JSON.\r\n */\n\nfunction jsonEval(str) {\n return JSON.parse(str);\n}\n/**\r\n * Returns JSON representing a javascript object.\r\n * @param {*} data Javascript object to be stringified.\r\n * @return {string} The JSON contents of the object.\r\n */\n\n\nfunction stringify(data) {\n return JSON.stringify(data);\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Decodes a Firebase auth. token into constituent parts.\r\n *\r\n * Notes:\r\n * - May return with invalid / incomplete claims if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\n\n\nvar decode = function decode(token) {\n var header = {},\n claims = {},\n data = {},\n signature = '';\n\n try {\n var parts = token.split('.');\n header = jsonEval(base64Decode(parts[0]) || '');\n claims = jsonEval(base64Decode(parts[1]) || '');\n signature = parts[2];\n data = claims['d'] || {};\n delete claims['d'];\n } catch (e) {}\n\n return {\n header: header,\n claims: claims,\n data: data,\n signature: signature\n };\n};\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its time-based claims. Will return true if the\r\n * token is within the time window authorized by the 'nbf' (not-before) and 'iat' (issued-at) claims.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\n\n\nvar isValidTimestamp = function isValidTimestamp(token) {\n var claims = decode(token).claims;\n var now = Math.floor(new Date().getTime() / 1000);\n var validSince = 0,\n validUntil = 0;\n\n if (typeof claims === 'object') {\n if (claims.hasOwnProperty('nbf')) {\n validSince = claims['nbf'];\n } else if (claims.hasOwnProperty('iat')) {\n validSince = claims['iat'];\n }\n\n if (claims.hasOwnProperty('exp')) {\n validUntil = claims['exp'];\n } else {\n // token will expire after 24h by default\n validUntil = validSince + 86400;\n }\n }\n\n return !!now && !!validSince && !!validUntil && now >= validSince && now <= validUntil;\n};\n/**\r\n * Decodes a Firebase auth. token and returns its issued at time if valid, null otherwise.\r\n *\r\n * Notes:\r\n * - May return null if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\n\n\nvar issuedAtTime = function issuedAtTime(token) {\n var claims = decode(token).claims;\n\n if (typeof claims === 'object' && claims.hasOwnProperty('iat')) {\n return claims['iat'];\n }\n\n return null;\n};\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its format. Expects a valid issued-at time.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\n\n\nvar isValidFormat = function isValidFormat(token) {\n var decoded = decode(token),\n claims = decoded.claims;\n return !!claims && typeof claims === 'object' && claims.hasOwnProperty('iat');\n};\n/**\r\n * Attempts to peer into an auth token and determine if it's an admin auth token by looking at the claims portion.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\n\n\nvar isAdmin = function isAdmin(token) {\n var claims = decode(token).claims;\n return typeof claims === 'object' && claims['admin'] === true;\n};\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nfunction contains(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nfunction safeGet(obj, key) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n return obj[key];\n } else {\n return undefined;\n }\n}\n\nfunction isEmpty(obj) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction map(obj, fn, contextObj) {\n var res = {};\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n res[key] = fn.call(contextObj, obj[key], key, obj);\n }\n }\n\n return res;\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Returns a querystring-formatted string (e.g. &arg=val&arg2=val2) from a\r\n * params object (e.g. {arg: 'val', arg2: 'val2'})\r\n * Note: You must prepend it with ? when adding it to a URL.\r\n */\n\n\nfunction querystring(querystringParams) {\n var params = [];\n\n var _loop_1 = function _loop_1(key, value) {\n if (Array.isArray(value)) {\n value.forEach(function (arrayVal) {\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(arrayVal));\n });\n } else {\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\n }\n };\n\n for (var _i = 0, _a = Object.entries(querystringParams); _i < _a.length; _i++) {\n var _b = _a[_i],\n key = _b[0],\n value = _b[1];\n\n _loop_1(key, value);\n }\n\n return params.length ? '&' + params.join('&') : '';\n}\n/**\r\n * Decodes a querystring (e.g. ?arg=val&arg2=val2) into a params object\r\n * (e.g. {arg: 'val', arg2: 'val2'})\r\n */\n\n\nfunction querystringDecode(querystring) {\n var obj = {};\n var tokens = querystring.replace(/^\\?/, '').split('&');\n tokens.forEach(function (token) {\n if (token) {\n var _a = token.split('='),\n key = _a[0],\n value = _a[1];\n\n obj[decodeURIComponent(key)] = decodeURIComponent(value);\n }\n });\n return obj;\n}\n/**\r\n * Extract the query string part of a URL, including the leading question mark (if present).\r\n */\n\n\nfunction extractQuerystring(url) {\n var queryStart = url.indexOf('?');\n\n if (!queryStart) {\n return '';\n }\n\n var fragmentStart = url.indexOf('#', queryStart);\n return url.substring(queryStart, fragmentStart > 0 ? fragmentStart : undefined);\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * @fileoverview SHA-1 cryptographic hash.\r\n * Variable names follow the notation in FIPS PUB 180-3:\r\n * http://csrc.nist.gov/publications/fips/fips180-3/fips180-3_final.pdf.\r\n *\r\n * Usage:\r\n * var sha1 = new sha1();\r\n * sha1.update(bytes);\r\n * var hash = sha1.digest();\r\n *\r\n * Performance:\r\n * Chrome 23: ~400 Mbit/s\r\n * Firefox 16: ~250 Mbit/s\r\n *\r\n */\n\n/**\r\n * SHA-1 cryptographic hash constructor.\r\n *\r\n * The properties declared here are discussed in the above algorithm document.\r\n * @constructor\r\n * @final\r\n * @struct\r\n */\n\n\nvar Sha1 = function () {\n function Sha1() {\n /**\r\n * Holds the previous values of accumulated variables a-e in the compress_\r\n * function.\r\n * @private\r\n */\n this.chain_ = [];\n /**\r\n * A buffer holding the partially computed hash result.\r\n * @private\r\n */\n\n this.buf_ = [];\n /**\r\n * An array of 80 bytes, each a part of the message to be hashed. Referred to\r\n * as the message schedule in the docs.\r\n * @private\r\n */\n\n this.W_ = [];\n /**\r\n * Contains data needed to pad messages less than 64 bytes.\r\n * @private\r\n */\n\n this.pad_ = [];\n /**\r\n * @private {number}\r\n */\n\n this.inbuf_ = 0;\n /**\r\n * @private {number}\r\n */\n\n this.total_ = 0;\n this.blockSize = 512 / 8;\n this.pad_[0] = 128;\n\n for (var i = 1; i < this.blockSize; ++i) {\n this.pad_[i] = 0;\n }\n\n this.reset();\n }\n\n Sha1.prototype.reset = function () {\n this.chain_[0] = 0x67452301;\n this.chain_[1] = 0xefcdab89;\n this.chain_[2] = 0x98badcfe;\n this.chain_[3] = 0x10325476;\n this.chain_[4] = 0xc3d2e1f0;\n this.inbuf_ = 0;\n this.total_ = 0;\n };\n /**\r\n * Internal compress helper function.\r\n * @param buf Block to compress.\r\n * @param offset Offset of the block in the buffer.\r\n * @private\r\n */\n\n\n Sha1.prototype.compress_ = function (buf, offset) {\n if (!offset) {\n offset = 0;\n }\n\n var W = this.W_; // get 16 big endian words\n\n if (typeof buf === 'string') {\n for (var i = 0; i < 16; i++) {\n // TODO(user): [bug 8140122] Recent versions of Safari for Mac OS and iOS\n // have a bug that turns the post-increment ++ operator into pre-increment\n // during JIT compilation. We have code that depends heavily on SHA-1 for\n // correctness and which is affected by this bug, so I've removed all uses\n // of post-increment ++ in which the result value is used. We can revert\n // this change once the Safari bug\n // (https://bugs.webkit.org/show_bug.cgi?id=109036) has been fixed and\n // most clients have been updated.\n W[i] = buf.charCodeAt(offset) << 24 | buf.charCodeAt(offset + 1) << 16 | buf.charCodeAt(offset + 2) << 8 | buf.charCodeAt(offset + 3);\n offset += 4;\n }\n } else {\n for (var i = 0; i < 16; i++) {\n W[i] = buf[offset] << 24 | buf[offset + 1] << 16 | buf[offset + 2] << 8 | buf[offset + 3];\n offset += 4;\n }\n } // expand to 80 words\n\n\n for (var i = 16; i < 80; i++) {\n var t = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n W[i] = (t << 1 | t >>> 31) & 0xffffffff;\n }\n\n var a = this.chain_[0];\n var b = this.chain_[1];\n var c = this.chain_[2];\n var d = this.chain_[3];\n var e = this.chain_[4];\n var f, k; // TODO(user): Try to unroll this loop to speed up the computation.\n\n for (var i = 0; i < 80; i++) {\n if (i < 40) {\n if (i < 20) {\n f = d ^ b & (c ^ d);\n k = 0x5a827999;\n } else {\n f = b ^ c ^ d;\n k = 0x6ed9eba1;\n }\n } else {\n if (i < 60) {\n f = b & c | d & (b | c);\n k = 0x8f1bbcdc;\n } else {\n f = b ^ c ^ d;\n k = 0xca62c1d6;\n }\n }\n\n var t = (a << 5 | a >>> 27) + f + e + k + W[i] & 0xffffffff;\n e = d;\n d = c;\n c = (b << 30 | b >>> 2) & 0xffffffff;\n b = a;\n a = t;\n }\n\n this.chain_[0] = this.chain_[0] + a & 0xffffffff;\n this.chain_[1] = this.chain_[1] + b & 0xffffffff;\n this.chain_[2] = this.chain_[2] + c & 0xffffffff;\n this.chain_[3] = this.chain_[3] + d & 0xffffffff;\n this.chain_[4] = this.chain_[4] + e & 0xffffffff;\n };\n\n Sha1.prototype.update = function (bytes, length) {\n // TODO(johnlenz): tighten the function signature and remove this check\n if (bytes == null) {\n return;\n }\n\n if (length === undefined) {\n length = bytes.length;\n }\n\n var lengthMinusBlock = length - this.blockSize;\n var n = 0; // Using local instead of member variables gives ~5% speedup on Firefox 16.\n\n var buf = this.buf_;\n var inbuf = this.inbuf_; // The outer while loop should execute at most twice.\n\n while (n < length) {\n // When we have no data in the block to top up, we can directly process the\n // input buffer (assuming it contains sufficient data). This gives ~25%\n // speedup on Chrome 23 and ~15% speedup on Firefox 16, but requires that\n // the data is provided in large chunks (or in multiples of 64 bytes).\n if (inbuf === 0) {\n while (n <= lengthMinusBlock) {\n this.compress_(bytes, n);\n n += this.blockSize;\n }\n }\n\n if (typeof bytes === 'string') {\n while (n < length) {\n buf[inbuf] = bytes.charCodeAt(n);\n ++inbuf;\n ++n;\n\n if (inbuf === this.blockSize) {\n this.compress_(buf);\n inbuf = 0; // Jump to the outer loop so we use the full-block optimization.\n\n break;\n }\n }\n } else {\n while (n < length) {\n buf[inbuf] = bytes[n];\n ++inbuf;\n ++n;\n\n if (inbuf === this.blockSize) {\n this.compress_(buf);\n inbuf = 0; // Jump to the outer loop so we use the full-block optimization.\n\n break;\n }\n }\n }\n }\n\n this.inbuf_ = inbuf;\n this.total_ += length;\n };\n /** @override */\n\n\n Sha1.prototype.digest = function () {\n var digest = [];\n var totalBits = this.total_ * 8; // Add pad 0x80 0x00*.\n\n if (this.inbuf_ < 56) {\n this.update(this.pad_, 56 - this.inbuf_);\n } else {\n this.update(this.pad_, this.blockSize - (this.inbuf_ - 56));\n } // Add # bits.\n\n\n for (var i = this.blockSize - 1; i >= 56; i--) {\n this.buf_[i] = totalBits & 255;\n totalBits /= 256; // Don't use bit-shifting here!\n }\n\n this.compress_(this.buf_);\n var n = 0;\n\n for (var i = 0; i < 5; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n digest[n] = this.chain_[i] >> j & 255;\n ++n;\n }\n }\n\n return digest;\n };\n\n return Sha1;\n}();\n/**\r\n * Helper to make a Subscribe function (just like Promise helps make a\r\n * Thenable).\r\n *\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\n\n\nfunction createSubscribe(executor, onNoObservers) {\n var proxy = new ObserverProxy(executor, onNoObservers);\n return proxy.subscribe.bind(proxy);\n}\n/**\r\n * Implement fan-out for any number of Observers attached via a subscribe\r\n * function.\r\n */\n\n\nvar ObserverProxy = function () {\n /**\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\n function ObserverProxy(executor, onNoObservers) {\n var _this = this;\n\n this.observers = [];\n this.unsubscribes = [];\n this.observerCount = 0; // Micro-task scheduling by calling task.then().\n\n this.task = Promise.resolve();\n this.finalized = false;\n this.onNoObservers = onNoObservers; // Call the executor asynchronously so subscribers that are called\n // synchronously after the creation of the subscribe function\n // can still receive the very first value generated in the executor.\n\n this.task.then(function () {\n executor(_this);\n }).catch(function (e) {\n _this.error(e);\n });\n }\n\n ObserverProxy.prototype.next = function (value) {\n this.forEachObserver(function (observer) {\n observer.next(value);\n });\n };\n\n ObserverProxy.prototype.error = function (error) {\n this.forEachObserver(function (observer) {\n observer.error(error);\n });\n this.close(error);\n };\n\n ObserverProxy.prototype.complete = function () {\n this.forEachObserver(function (observer) {\n observer.complete();\n });\n this.close();\n };\n /**\r\n * Subscribe function that can be used to add an Observer to the fan-out list.\r\n *\r\n * - We require that no event is sent to a subscriber sychronously to their\r\n * call to subscribe().\r\n */\n\n\n ObserverProxy.prototype.subscribe = function (nextOrObserver, error, complete) {\n var _this = this;\n\n var observer;\n\n if (nextOrObserver === undefined && error === undefined && complete === undefined) {\n throw new Error('Missing Observer.');\n } // Assemble an Observer object when passed as callback functions.\n\n\n if (implementsAnyMethods(nextOrObserver, ['next', 'error', 'complete'])) {\n observer = nextOrObserver;\n } else {\n observer = {\n next: nextOrObserver,\n error: error,\n complete: complete\n };\n }\n\n if (observer.next === undefined) {\n observer.next = noop;\n }\n\n if (observer.error === undefined) {\n observer.error = noop;\n }\n\n if (observer.complete === undefined) {\n observer.complete = noop;\n }\n\n var unsub = this.unsubscribeOne.bind(this, this.observers.length); // Attempt to subscribe to a terminated Observable - we\n // just respond to the Observer with the final error or complete\n // event.\n\n if (this.finalized) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.task.then(function () {\n try {\n if (_this.finalError) {\n observer.error(_this.finalError);\n } else {\n observer.complete();\n }\n } catch (e) {// nothing\n }\n\n return;\n });\n }\n\n this.observers.push(observer);\n return unsub;\n }; // Unsubscribe is synchronous - we guarantee that no events are sent to\n // any unsubscribed Observer.\n\n\n ObserverProxy.prototype.unsubscribeOne = function (i) {\n if (this.observers === undefined || this.observers[i] === undefined) {\n return;\n }\n\n delete this.observers[i];\n this.observerCount -= 1;\n\n if (this.observerCount === 0 && this.onNoObservers !== undefined) {\n this.onNoObservers(this);\n }\n };\n\n ObserverProxy.prototype.forEachObserver = function (fn) {\n if (this.finalized) {\n // Already closed by previous event....just eat the additional values.\n return;\n } // Since sendOne calls asynchronously - there is no chance that\n // this.observers will become undefined.\n\n\n for (var i = 0; i < this.observers.length; i++) {\n this.sendOne(i, fn);\n }\n }; // Call the Observer via one of it's callback function. We are careful to\n // confirm that the observe has not been unsubscribed since this asynchronous\n // function had been queued.\n\n\n ObserverProxy.prototype.sendOne = function (i, fn) {\n var _this = this; // Execute the callback asynchronously\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n\n\n this.task.then(function () {\n if (_this.observers !== undefined && _this.observers[i] !== undefined) {\n try {\n fn(_this.observers[i]);\n } catch (e) {\n // Ignore exceptions raised in Observers or missing methods of an\n // Observer.\n // Log error to console. b/31404806\n if (typeof console !== 'undefined' && console.error) {\n console.error(e);\n }\n }\n }\n });\n };\n\n ObserverProxy.prototype.close = function (err) {\n var _this = this;\n\n if (this.finalized) {\n return;\n }\n\n this.finalized = true;\n\n if (err !== undefined) {\n this.finalError = err;\n } // Proxy is no longer needed - garbage collect references\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n\n\n this.task.then(function () {\n _this.observers = undefined;\n _this.onNoObservers = undefined;\n });\n };\n\n return ObserverProxy;\n}();\n/** Turn synchronous function into one called asynchronously. */\n// eslint-disable-next-line @typescript-eslint/ban-types\n\n\nfunction async(fn, onError) {\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n Promise.resolve(true).then(function () {\n fn.apply(void 0, args);\n }).catch(function (error) {\n if (onError) {\n onError(error);\n }\n });\n };\n}\n/**\r\n * Return true if the object passed in implements any of the named methods.\r\n */\n\n\nfunction implementsAnyMethods(obj, methods) {\n if (typeof obj !== 'object' || obj === null) {\n return false;\n }\n\n for (var _i = 0, methods_1 = methods; _i < methods_1.length; _i++) {\n var method = methods_1[_i];\n\n if (method in obj && typeof obj[method] === 'function') {\n return true;\n }\n }\n\n return false;\n}\n\nfunction noop() {// do nothing\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Check to make sure the appropriate number of arguments are provided for a public function.\r\n * Throws an error if it fails.\r\n *\r\n * @param fnName The function name\r\n * @param minCount The minimum number of arguments to allow for the function call\r\n * @param maxCount The maximum number of argument to allow for the function call\r\n * @param argCount The actual number of arguments provided.\r\n */\n\n\nvar validateArgCount = function validateArgCount(fnName, minCount, maxCount, argCount) {\n var argError;\n\n if (argCount < minCount) {\n argError = 'at least ' + minCount;\n } else if (argCount > maxCount) {\n argError = maxCount === 0 ? 'none' : 'no more than ' + maxCount;\n }\n\n if (argError) {\n var error = fnName + ' failed: Was called with ' + argCount + (argCount === 1 ? ' argument.' : ' arguments.') + ' Expects ' + argError + '.';\n throw new Error(error);\n }\n};\n/**\r\n * Generates a string to prefix an error message about failed argument validation\r\n *\r\n * @param fnName The function name\r\n * @param argName The name of the argument\r\n * @return The prefix to add to the error thrown for validation.\r\n */\n\n\nfunction errorPrefix(fnName, argName) {\n return fnName + \" failed: \" + argName + \" argument \";\n}\n/**\r\n * @param fnName\r\n * @param argumentNumber\r\n * @param namespace\r\n * @param optional\r\n */\n\n\nfunction validateNamespace(fnName, namespace, optional) {\n if (optional && !namespace) {\n return;\n }\n\n if (typeof namespace !== 'string') {\n //TODO: I should do more validation here. We only allow certain chars in namespaces.\n throw new Error(errorPrefix(fnName, 'namespace') + 'must be a valid firebase namespace.');\n }\n}\n\nfunction validateCallback(fnName, argumentName, // eslint-disable-next-line @typescript-eslint/ban-types\ncallback, optional) {\n if (optional && !callback) {\n return;\n }\n\n if (typeof callback !== 'function') {\n throw new Error(errorPrefix(fnName, argumentName) + 'must be a valid function.');\n }\n}\n\nfunction validateContextObject(fnName, argumentName, context, optional) {\n if (optional && !context) {\n return;\n }\n\n if (typeof context !== 'object' || context === null) {\n throw new Error(errorPrefix(fnName, argumentName) + 'must be a valid context object.');\n }\n}\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n// Code originally came from goog.crypt.stringToUtf8ByteArray, but for some reason they\n// automatically replaced '\\r\\n' with '\\n', and they didn't handle surrogate pairs,\n// so it's been modified.\n// Note that not all Unicode characters appear as single characters in JavaScript strings.\n// fromCharCode returns the UTF-16 encoding of a character - so some Unicode characters\n// use 2 characters in Javascript. All 4-byte UTF-8 characters begin with a first\n// character in the range 0xD800 - 0xDBFF (the first character of a so-called surrogate\n// pair).\n// See http://www.ecma-international.org/ecma-262/5.1/#sec-15.1.3\n\n/**\r\n * @param {string} str\r\n * @return {Array}\r\n */\n\n\nvar stringToByteArray$1 = function stringToByteArray$1(str) {\n var out = [];\n var p = 0;\n\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i); // Is this the lead surrogate in a surrogate pair?\n\n if (c >= 0xd800 && c <= 0xdbff) {\n var high = c - 0xd800; // the high 10 bits.\n\n i++;\n assert(i < str.length, 'Surrogate pair missing trail surrogate.');\n var low = str.charCodeAt(i) - 0xdc00; // the low 10 bits.\n\n c = 0x10000 + (high << 10) + low;\n }\n\n if (c < 128) {\n out[p++] = c;\n } else if (c < 2048) {\n out[p++] = c >> 6 | 192;\n out[p++] = c & 63 | 128;\n } else if (c < 65536) {\n out[p++] = c >> 12 | 224;\n out[p++] = c >> 6 & 63 | 128;\n out[p++] = c & 63 | 128;\n } else {\n out[p++] = c >> 18 | 240;\n out[p++] = c >> 12 & 63 | 128;\n out[p++] = c >> 6 & 63 | 128;\n out[p++] = c & 63 | 128;\n }\n }\n\n return out;\n};\n/**\r\n * Calculate length without actually converting; useful for doing cheaper validation.\r\n * @param {string} str\r\n * @return {number}\r\n */\n\n\nvar stringLength = function stringLength(str) {\n var p = 0;\n\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n\n if (c < 128) {\n p++;\n } else if (c < 2048) {\n p += 2;\n } else if (c >= 0xd800 && c <= 0xdbff) {\n // Lead surrogate of a surrogate pair. The pair together will take 4 bytes to represent.\n p += 4;\n i++; // skip trail surrogate.\n } else {\n p += 3;\n }\n }\n\n return p;\n};\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * The amount of milliseconds to exponentially increase.\r\n */\n\n\nvar DEFAULT_INTERVAL_MILLIS = 1000;\n/**\r\n * The factor to backoff by.\r\n * Should be a number greater than 1.\r\n */\n\nvar DEFAULT_BACKOFF_FACTOR = 2;\n/**\r\n * The maximum milliseconds to increase to.\r\n *\r\n *

Visible for testing\r\n */\n\nvar MAX_VALUE_MILLIS = 4 * 60 * 60 * 1000; // Four hours, like iOS and Android.\n\n/**\r\n * The percentage of backoff time to randomize by.\r\n * See\r\n * http://go/safe-client-behavior#step-1-determine-the-appropriate-retry-interval-to-handle-spike-traffic\r\n * for context.\r\n *\r\n *

Visible for testing\r\n */\n\nvar RANDOM_FACTOR = 0.5;\n/**\r\n * Based on the backoff method from\r\n * https://github.com/google/closure-library/blob/master/closure/goog/math/exponentialbackoff.js.\r\n * Extracted here so we don't need to pass metadata and a stateful ExponentialBackoff object around.\r\n */\n\nfunction calculateBackoffMillis(backoffCount, intervalMillis, backoffFactor) {\n if (intervalMillis === void 0) {\n intervalMillis = DEFAULT_INTERVAL_MILLIS;\n }\n\n if (backoffFactor === void 0) {\n backoffFactor = DEFAULT_BACKOFF_FACTOR;\n } // Calculates an exponentially increasing value.\n // Deviation: calculates value from count and a constant interval, so we only need to save value\n // and count to restore state.\n\n\n var currBaseValue = intervalMillis * Math.pow(backoffFactor, backoffCount); // A random \"fuzz\" to avoid waves of retries.\n // Deviation: randomFactor is required.\n\n var randomWait = Math.round( // A fraction of the backoff value to add/subtract.\n // Deviation: changes multiplication order to improve readability.\n RANDOM_FACTOR * currBaseValue * (Math.random() - 0.5) * 2); // Limits backoff to max to avoid effectively permanent backoff.\n\n return Math.min(MAX_VALUE_MILLIS, currBaseValue + randomWait);\n}\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Provide English ordinal letters after a number\r\n */\n\n\nfunction ordinal(i) {\n if (!Number.isFinite(i)) {\n return \"\" + i;\n }\n\n return i + indicator(i);\n}\n\nfunction indicator(i) {\n i = Math.abs(i);\n var cent = i % 100;\n\n if (cent >= 10 && cent <= 20) {\n return 'th';\n }\n\n var dec = i % 10;\n\n if (dec === 1) {\n return 'st';\n }\n\n if (dec === 2) {\n return 'nd';\n }\n\n if (dec === 3) {\n return 'rd';\n }\n\n return 'th';\n}\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nfunction getModularInstance(service) {\n if (service && service._delegate) {\n return service._delegate;\n } else {\n return service;\n }\n}\n\nexport { CONSTANTS, Deferred, ErrorFactory, FirebaseError, MAX_VALUE_MILLIS, RANDOM_FACTOR, Sha1, areCookiesEnabled, assert, assertionError, async, base64, base64Decode, base64Encode, calculateBackoffMillis, contains, createMockUserToken, createSubscribe, decode, deepCopy, deepExtend, errorPrefix, extractQuerystring, getGlobal, getModularInstance, getUA, isAdmin, isBrowser, isBrowserExtension, isElectron, isEmpty, isIE, isIndexedDBAvailable, isMobileCordova, isNode, isNodeSdk, isReactNative, isSafari, isUWP, isValidFormat, isValidTimestamp, issuedAtTime, jsonEval, map, ordinal, querystring, querystringDecode, safeGet, stringLength, stringToByteArray$1 as stringToByteArray, stringify, validateArgCount, validateCallback, validateContextObject, validateIndexedDBOpenable, validateNamespace };","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nfunction __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nfunction __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\nvar k,\n goog = goog || {},\n l = commonjsGlobal || self;\n\nfunction aa() {}\n\nfunction ba(a) {\n var b = typeof a;\n b = \"object\" != b ? b : a ? Array.isArray(a) ? \"array\" : b : \"null\";\n return \"array\" == b || \"object\" == b && \"number\" == typeof a.length;\n}\n\nfunction p(a) {\n var b = typeof a;\n return \"object\" == b && null != a || \"function\" == b;\n}\n\nfunction da(a) {\n return Object.prototype.hasOwnProperty.call(a, ea) && a[ea] || (a[ea] = ++fa);\n}\n\nvar ea = \"closure_uid_\" + (1E9 * Math.random() >>> 0),\n fa = 0;\n\nfunction ha(a, b, c) {\n return a.call.apply(a.bind, arguments);\n}\n\nfunction ia(a, b, c) {\n if (!a) throw Error();\n\n if (2 < arguments.length) {\n var d = Array.prototype.slice.call(arguments, 2);\n return function () {\n var e = Array.prototype.slice.call(arguments);\n Array.prototype.unshift.apply(e, d);\n return a.apply(b, e);\n };\n }\n\n return function () {\n return a.apply(b, arguments);\n };\n}\n\nfunction q(a, b, c) {\n Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf(\"native code\") ? q = ha : q = ia;\n return q.apply(null, arguments);\n}\n\nfunction ja(a, b) {\n var c = Array.prototype.slice.call(arguments, 1);\n return function () {\n var d = c.slice();\n d.push.apply(d, arguments);\n return a.apply(this, d);\n };\n}\n\nfunction t(a, b) {\n function c() {}\n\n c.prototype = b.prototype;\n a.Z = b.prototype;\n a.prototype = new c();\n a.prototype.constructor = a;\n\n a.Vb = function (d, e, f) {\n for (var h = Array(arguments.length - 2), n = 2; n < arguments.length; n++) {\n h[n - 2] = arguments[n];\n }\n\n return b.prototype[e].apply(d, h);\n };\n}\n\nfunction v() {\n this.s = this.s;\n this.o = this.o;\n}\n\nvar ka = 0,\n la = {};\nv.prototype.s = !1;\n\nv.prototype.na = function () {\n if (!this.s && (this.s = !0, this.M(), 0 != ka)) {\n var a = da(this);\n delete la[a];\n }\n};\n\nv.prototype.M = function () {\n if (this.o) for (; this.o.length;) {\n this.o.shift()();\n }\n};\n\nvar ma = Array.prototype.indexOf ? function (a, b) {\n return Array.prototype.indexOf.call(a, b, void 0);\n} : function (a, b) {\n if (\"string\" === typeof a) return \"string\" !== typeof b || 1 != b.length ? -1 : a.indexOf(b, 0);\n\n for (var c = 0; c < a.length; c++) {\n if (c in a && a[c] === b) return c;\n }\n\n return -1;\n},\n na = Array.prototype.forEach ? function (a, b, c) {\n Array.prototype.forEach.call(a, b, c);\n} : function (a, b, c) {\n var d = a.length,\n e = \"string\" === typeof a ? a.split(\"\") : a;\n\n for (var f = 0; f < d; f++) {\n f in e && b.call(c, e[f], f, a);\n }\n};\n\nfunction oa(a) {\n a: {\n var b = pa;\n var c = a.length,\n d = \"string\" === typeof a ? a.split(\"\") : a;\n\n for (var e = 0; e < c; e++) {\n if (e in d && b.call(void 0, d[e], e, a)) {\n b = e;\n break a;\n }\n }\n\n b = -1;\n }\n\n return 0 > b ? null : \"string\" === typeof a ? a.charAt(b) : a[b];\n}\n\nfunction qa(a) {\n return Array.prototype.concat.apply([], arguments);\n}\n\nfunction ra(a) {\n var b = a.length;\n\n if (0 < b) {\n var c = Array(b);\n\n for (var d = 0; d < b; d++) {\n c[d] = a[d];\n }\n\n return c;\n }\n\n return [];\n}\n\nfunction sa(a) {\n return /^[\\s\\xa0]*$/.test(a);\n}\n\nvar ta = String.prototype.trim ? function (a) {\n return a.trim();\n} : function (a) {\n return /^[\\s\\xa0]*([\\s\\S]*?)[\\s\\xa0]*$/.exec(a)[1];\n};\n\nfunction w(a, b) {\n return -1 != a.indexOf(b);\n}\n\nfunction ua(a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n}\n\nvar x;\n\na: {\n var va = l.navigator;\n\n if (va) {\n var wa = va.userAgent;\n\n if (wa) {\n x = wa;\n break a;\n }\n }\n\n x = \"\";\n}\n\nfunction xa(a, b, c) {\n for (var d in a) {\n b.call(c, a[d], d, a);\n }\n}\n\nfunction ya(a) {\n var b = {};\n\n for (var c in a) {\n b[c] = a[c];\n }\n\n return b;\n}\n\nvar za = \"constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf\".split(\" \");\n\nfunction Aa(a, b) {\n var c, d;\n\n for (var e = 1; e < arguments.length; e++) {\n d = arguments[e];\n\n for (c in d) {\n a[c] = d[c];\n }\n\n for (var f = 0; f < za.length; f++) {\n c = za[f], Object.prototype.hasOwnProperty.call(d, c) && (a[c] = d[c]);\n }\n }\n}\n\nfunction Ca(a) {\n Ca[\" \"](a);\n return a;\n}\n\nCa[\" \"] = aa;\n\nfunction Fa(a) {\n var b = Ga;\n return Object.prototype.hasOwnProperty.call(b, 9) ? b[9] : b[9] = a(9);\n}\n\nvar Ha = w(x, \"Opera\"),\n y = w(x, \"Trident\") || w(x, \"MSIE\"),\n Ia = w(x, \"Edge\"),\n Ja = Ia || y,\n Ka = w(x, \"Gecko\") && !(w(x.toLowerCase(), \"webkit\") && !w(x, \"Edge\")) && !(w(x, \"Trident\") || w(x, \"MSIE\")) && !w(x, \"Edge\"),\n La = w(x.toLowerCase(), \"webkit\") && !w(x, \"Edge\");\n\nfunction Ma() {\n var a = l.document;\n return a ? a.documentMode : void 0;\n}\n\nvar Na;\n\na: {\n var Oa = \"\",\n Pa = function () {\n var a = x;\n if (Ka) return /rv:([^\\);]+)(\\)|;)/.exec(a);\n if (Ia) return /Edge\\/([\\d\\.]+)/.exec(a);\n if (y) return /\\b(?:MSIE|rv)[: ]([^\\);]+)(\\)|;)/.exec(a);\n if (La) return /WebKit\\/(\\S+)/.exec(a);\n if (Ha) return /(?:Version)[ \\/]?(\\S+)/.exec(a);\n }();\n\n Pa && (Oa = Pa ? Pa[1] : \"\");\n\n if (y) {\n var Qa = Ma();\n\n if (null != Qa && Qa > parseFloat(Oa)) {\n Na = String(Qa);\n break a;\n }\n }\n\n Na = Oa;\n}\n\nvar Ga = {};\n\nfunction Ra() {\n return Fa(function () {\n var a = 0;\n var b = ta(String(Na)).split(\".\"),\n c = ta(\"9\").split(\".\"),\n d = Math.max(b.length, c.length);\n\n for (var h = 0; 0 == a && h < d; h++) {\n var e = b[h] || \"\",\n f = c[h] || \"\";\n\n do {\n e = /(\\d*)(\\D*)(.*)/.exec(e) || [\"\", \"\", \"\", \"\"];\n f = /(\\d*)(\\D*)(.*)/.exec(f) || [\"\", \"\", \"\", \"\"];\n if (0 == e[0].length && 0 == f[0].length) break;\n a = ua(0 == e[1].length ? 0 : parseInt(e[1], 10), 0 == f[1].length ? 0 : parseInt(f[1], 10)) || ua(0 == e[2].length, 0 == f[2].length) || ua(e[2], f[2]);\n e = e[3];\n f = f[3];\n } while (0 == a);\n }\n\n return 0 <= a;\n });\n}\n\nvar Sa;\n\nif (l.document && y) {\n var Ta = Ma();\n Sa = Ta ? Ta : parseInt(Na, 10) || void 0;\n} else Sa = void 0;\n\nvar Ua = Sa;\n\nvar Va = function () {\n if (!l.addEventListener || !Object.defineProperty) return !1;\n var a = !1,\n b = Object.defineProperty({}, \"passive\", {\n get: function get() {\n a = !0;\n }\n });\n\n try {\n l.addEventListener(\"test\", aa, b), l.removeEventListener(\"test\", aa, b);\n } catch (c) {}\n\n return a;\n}();\n\nfunction z(a, b) {\n this.type = a;\n this.g = this.target = b;\n this.defaultPrevented = !1;\n}\n\nz.prototype.h = function () {\n this.defaultPrevented = !0;\n};\n\nfunction A(a, b) {\n z.call(this, a ? a.type : \"\");\n this.relatedTarget = this.g = this.target = null;\n this.button = this.screenY = this.screenX = this.clientY = this.clientX = 0;\n this.key = \"\";\n this.metaKey = this.shiftKey = this.altKey = this.ctrlKey = !1;\n this.state = null;\n this.pointerId = 0;\n this.pointerType = \"\";\n this.i = null;\n\n if (a) {\n var c = this.type = a.type,\n d = a.changedTouches && a.changedTouches.length ? a.changedTouches[0] : null;\n this.target = a.target || a.srcElement;\n this.g = b;\n\n if (b = a.relatedTarget) {\n if (Ka) {\n a: {\n try {\n Ca(b.nodeName);\n var e = !0;\n break a;\n } catch (f) {}\n\n e = !1;\n }\n\n e || (b = null);\n }\n } else \"mouseover\" == c ? b = a.fromElement : \"mouseout\" == c && (b = a.toElement);\n\n this.relatedTarget = b;\n d ? (this.clientX = void 0 !== d.clientX ? d.clientX : d.pageX, this.clientY = void 0 !== d.clientY ? d.clientY : d.pageY, this.screenX = d.screenX || 0, this.screenY = d.screenY || 0) : (this.clientX = void 0 !== a.clientX ? a.clientX : a.pageX, this.clientY = void 0 !== a.clientY ? a.clientY : a.pageY, this.screenX = a.screenX || 0, this.screenY = a.screenY || 0);\n this.button = a.button;\n this.key = a.key || \"\";\n this.ctrlKey = a.ctrlKey;\n this.altKey = a.altKey;\n this.shiftKey = a.shiftKey;\n this.metaKey = a.metaKey;\n this.pointerId = a.pointerId || 0;\n this.pointerType = \"string\" === typeof a.pointerType ? a.pointerType : Wa[a.pointerType] || \"\";\n this.state = a.state;\n this.i = a;\n a.defaultPrevented && A.Z.h.call(this);\n }\n}\n\nt(A, z);\nvar Wa = {\n 2: \"touch\",\n 3: \"pen\",\n 4: \"mouse\"\n};\n\nA.prototype.h = function () {\n A.Z.h.call(this);\n var a = this.i;\n a.preventDefault ? a.preventDefault() : a.returnValue = !1;\n};\n\nvar B = \"closure_listenable_\" + (1E6 * Math.random() | 0);\nvar Xa = 0;\n\nfunction Ya(a, b, c, d, e) {\n this.listener = a;\n this.proxy = null;\n this.src = b;\n this.type = c;\n this.capture = !!d;\n this.ia = e;\n this.key = ++Xa;\n this.ca = this.fa = !1;\n}\n\nfunction Za(a) {\n a.ca = !0;\n a.listener = null;\n a.proxy = null;\n a.src = null;\n a.ia = null;\n}\n\nfunction $a(a) {\n this.src = a;\n this.g = {};\n this.h = 0;\n}\n\n$a.prototype.add = function (a, b, c, d, e) {\n var f = a.toString();\n a = this.g[f];\n a || (a = this.g[f] = [], this.h++);\n var h = ab(a, b, d, e);\n -1 < h ? (b = a[h], c || (b.fa = !1)) : (b = new Ya(b, this.src, f, !!d, e), b.fa = c, a.push(b));\n return b;\n};\n\nfunction bb(a, b) {\n var c = b.type;\n\n if (c in a.g) {\n var d = a.g[c],\n e = ma(d, b),\n f;\n (f = 0 <= e) && Array.prototype.splice.call(d, e, 1);\n f && (Za(b), 0 == a.g[c].length && (delete a.g[c], a.h--));\n }\n}\n\nfunction ab(a, b, c, d) {\n for (var e = 0; e < a.length; ++e) {\n var f = a[e];\n if (!f.ca && f.listener == b && f.capture == !!c && f.ia == d) return e;\n }\n\n return -1;\n}\n\nvar cb = \"closure_lm_\" + (1E6 * Math.random() | 0),\n db = {};\n\nfunction fb(a, b, c, d, e) {\n if (d && d.once) return gb(a, b, c, d, e);\n\n if (Array.isArray(b)) {\n for (var f = 0; f < b.length; f++) {\n fb(a, b[f], c, d, e);\n }\n\n return null;\n }\n\n c = hb(c);\n return a && a[B] ? a.N(b, c, p(d) ? !!d.capture : !!d, e) : ib(a, b, c, !1, d, e);\n}\n\nfunction ib(a, b, c, d, e, f) {\n if (!b) throw Error(\"Invalid event type\");\n var h = p(e) ? !!e.capture : !!e,\n n = jb(a);\n n || (a[cb] = n = new $a(a));\n c = n.add(b, c, d, h, f);\n if (c.proxy) return c;\n d = kb();\n c.proxy = d;\n d.src = a;\n d.listener = c;\n if (a.addEventListener) Va || (e = h), void 0 === e && (e = !1), a.addEventListener(b.toString(), d, e);else if (a.attachEvent) a.attachEvent(lb(b.toString()), d);else if (a.addListener && a.removeListener) a.addListener(d);else throw Error(\"addEventListener and attachEvent are unavailable.\");\n return c;\n}\n\nfunction kb() {\n function a(c) {\n return b.call(a.src, a.listener, c);\n }\n\n var b = mb;\n return a;\n}\n\nfunction gb(a, b, c, d, e) {\n if (Array.isArray(b)) {\n for (var f = 0; f < b.length; f++) {\n gb(a, b[f], c, d, e);\n }\n\n return null;\n }\n\n c = hb(c);\n return a && a[B] ? a.O(b, c, p(d) ? !!d.capture : !!d, e) : ib(a, b, c, !0, d, e);\n}\n\nfunction nb(a, b, c, d, e) {\n if (Array.isArray(b)) for (var f = 0; f < b.length; f++) {\n nb(a, b[f], c, d, e);\n } else (d = p(d) ? !!d.capture : !!d, c = hb(c), a && a[B]) ? (a = a.i, b = String(b).toString(), b in a.g && (f = a.g[b], c = ab(f, c, d, e), -1 < c && (Za(f[c]), Array.prototype.splice.call(f, c, 1), 0 == f.length && (delete a.g[b], a.h--)))) : a && (a = jb(a)) && (b = a.g[b.toString()], a = -1, b && (a = ab(b, c, d, e)), (c = -1 < a ? b[a] : null) && ob(c));\n}\n\nfunction ob(a) {\n if (\"number\" !== typeof a && a && !a.ca) {\n var b = a.src;\n if (b && b[B]) bb(b.i, a);else {\n var c = a.type,\n d = a.proxy;\n b.removeEventListener ? b.removeEventListener(c, d, a.capture) : b.detachEvent ? b.detachEvent(lb(c), d) : b.addListener && b.removeListener && b.removeListener(d);\n (c = jb(b)) ? (bb(c, a), 0 == c.h && (c.src = null, b[cb] = null)) : Za(a);\n }\n }\n}\n\nfunction lb(a) {\n return a in db ? db[a] : db[a] = \"on\" + a;\n}\n\nfunction mb(a, b) {\n if (a.ca) a = !0;else {\n b = new A(b, this);\n var c = a.listener,\n d = a.ia || a.src;\n a.fa && ob(a);\n a = c.call(d, b);\n }\n return a;\n}\n\nfunction jb(a) {\n a = a[cb];\n return a instanceof $a ? a : null;\n}\n\nvar pb = \"__closure_events_fn_\" + (1E9 * Math.random() >>> 0);\n\nfunction hb(a) {\n if (\"function\" === typeof a) return a;\n a[pb] || (a[pb] = function (b) {\n return a.handleEvent(b);\n });\n return a[pb];\n}\n\nfunction C() {\n v.call(this);\n this.i = new $a(this);\n this.P = this;\n this.I = null;\n}\n\nt(C, v);\nC.prototype[B] = !0;\n\nC.prototype.removeEventListener = function (a, b, c, d) {\n nb(this, a, b, c, d);\n};\n\nfunction D(a, b) {\n var c,\n d = a.I;\n if (d) for (c = []; d; d = d.I) {\n c.push(d);\n }\n a = a.P;\n d = b.type || b;\n if (\"string\" === typeof b) b = new z(b, a);else if (b instanceof z) b.target = b.target || a;else {\n var e = b;\n b = new z(d, a);\n Aa(b, e);\n }\n e = !0;\n if (c) for (var f = c.length - 1; 0 <= f; f--) {\n var h = b.g = c[f];\n e = qb(h, d, !0, b) && e;\n }\n h = b.g = a;\n e = qb(h, d, !0, b) && e;\n e = qb(h, d, !1, b) && e;\n if (c) for (f = 0; f < c.length; f++) {\n h = b.g = c[f], e = qb(h, d, !1, b) && e;\n }\n}\n\nC.prototype.M = function () {\n C.Z.M.call(this);\n\n if (this.i) {\n var a = this.i,\n c;\n\n for (c in a.g) {\n for (var d = a.g[c], e = 0; e < d.length; e++) {\n Za(d[e]);\n }\n\n delete a.g[c];\n a.h--;\n }\n }\n\n this.I = null;\n};\n\nC.prototype.N = function (a, b, c, d) {\n return this.i.add(String(a), b, !1, c, d);\n};\n\nC.prototype.O = function (a, b, c, d) {\n return this.i.add(String(a), b, !0, c, d);\n};\n\nfunction qb(a, b, c, d) {\n b = a.i.g[String(b)];\n if (!b) return !0;\n b = b.concat();\n\n for (var e = !0, f = 0; f < b.length; ++f) {\n var h = b[f];\n\n if (h && !h.ca && h.capture == c) {\n var n = h.listener,\n u = h.ia || h.src;\n h.fa && bb(a.i, h);\n e = !1 !== n.call(u, d) && e;\n }\n }\n\n return e && !d.defaultPrevented;\n}\n\nvar rb = l.JSON.stringify;\n\nfunction sb() {\n var a = tb;\n var b = null;\n a.g && (b = a.g, a.g = a.g.next, a.g || (a.h = null), b.next = null);\n return b;\n}\n\nvar ub = function () {\n function ub() {\n this.h = this.g = null;\n }\n\n ub.prototype.add = function (a, b) {\n var c = vb.get();\n c.set(a, b);\n this.h ? this.h.next = c : this.g = c;\n this.h = c;\n };\n\n return ub;\n}();\n\nvar vb = new (function () {\n function class_2(a, b) {\n this.i = a;\n this.j = b;\n this.h = 0;\n this.g = null;\n }\n\n class_2.prototype.get = function () {\n var a;\n 0 < this.h ? (this.h--, a = this.g, this.g = a.next, a.next = null) : a = this.i();\n return a;\n };\n\n return class_2;\n}())(function () {\n return new wb();\n}, function (a) {\n return a.reset();\n});\n\nvar wb = function () {\n function wb() {\n this.next = this.g = this.h = null;\n }\n\n wb.prototype.set = function (a, b) {\n this.h = a;\n this.g = b;\n this.next = null;\n };\n\n wb.prototype.reset = function () {\n this.next = this.g = this.h = null;\n };\n\n return wb;\n}();\n\nfunction yb(a) {\n l.setTimeout(function () {\n throw a;\n }, 0);\n}\n\nfunction zb(a, b) {\n Ab || Bb();\n Cb || (Ab(), Cb = !0);\n tb.add(a, b);\n}\n\nvar Ab;\n\nfunction Bb() {\n var a = l.Promise.resolve(void 0);\n\n Ab = function Ab() {\n a.then(Db);\n };\n}\n\nvar Cb = !1,\n tb = new ub();\n\nfunction Db() {\n for (var a; a = sb();) {\n try {\n a.h.call(a.g);\n } catch (c) {\n yb(c);\n }\n\n var b = vb;\n b.j(a);\n 100 > b.h && (b.h++, a.next = b.g, b.g = a);\n }\n\n Cb = !1;\n}\n\nfunction Eb(a, b) {\n C.call(this);\n this.h = a || 1;\n this.g = b || l;\n this.j = q(this.kb, this);\n this.l = Date.now();\n}\n\nt(Eb, C);\nk = Eb.prototype;\nk.da = !1;\nk.S = null;\n\nk.kb = function () {\n if (this.da) {\n var a = Date.now() - this.l;\n 0 < a && a < .8 * this.h ? this.S = this.g.setTimeout(this.j, this.h - a) : (this.S && (this.g.clearTimeout(this.S), this.S = null), D(this, \"tick\"), this.da && (Fb(this), this.start()));\n }\n};\n\nk.start = function () {\n this.da = !0;\n this.S || (this.S = this.g.setTimeout(this.j, this.h), this.l = Date.now());\n};\n\nfunction Fb(a) {\n a.da = !1;\n a.S && (a.g.clearTimeout(a.S), a.S = null);\n}\n\nk.M = function () {\n Eb.Z.M.call(this);\n Fb(this);\n delete this.g;\n};\n\nfunction Gb(a, b, c) {\n if (\"function\" === typeof a) c && (a = q(a, c));else if (a && \"function\" == typeof a.handleEvent) a = q(a.handleEvent, a);else throw Error(\"Invalid listener argument\");\n return 2147483647 < Number(b) ? -1 : l.setTimeout(a, b || 0);\n}\n\nfunction Hb(a) {\n a.g = Gb(function () {\n a.g = null;\n a.i && (a.i = !1, Hb(a));\n }, a.j);\n var b = a.h;\n a.h = null;\n a.m.apply(null, b);\n}\n\nvar Ib = function (_super) {\n __extends(Ib, _super);\n\n function Ib(a, b) {\n var _this = _super.call(this) || this;\n\n _this.m = a;\n _this.j = b;\n _this.h = null;\n _this.i = !1;\n _this.g = null;\n return _this;\n }\n\n Ib.prototype.l = function (a) {\n this.h = arguments;\n this.g ? this.i = !0 : Hb(this);\n };\n\n Ib.prototype.M = function () {\n _super.prototype.M.call(this);\n\n this.g && (l.clearTimeout(this.g), this.g = null, this.i = !1, this.h = null);\n };\n\n return Ib;\n}(v);\n\nfunction E(a) {\n v.call(this);\n this.h = a;\n this.g = {};\n}\n\nt(E, v);\nvar Jb = [];\n\nfunction Kb(a, b, c, d) {\n Array.isArray(c) || (c && (Jb[0] = c.toString()), c = Jb);\n\n for (var e = 0; e < c.length; e++) {\n var f = fb(b, c[e], d || a.handleEvent, !1, a.h || a);\n if (!f) break;\n a.g[f.key] = f;\n }\n}\n\nfunction Lb(a) {\n xa(a.g, function (b, c) {\n this.g.hasOwnProperty(c) && ob(b);\n }, a);\n a.g = {};\n}\n\nE.prototype.M = function () {\n E.Z.M.call(this);\n Lb(this);\n};\n\nE.prototype.handleEvent = function () {\n throw Error(\"EventHandler.handleEvent not implemented\");\n};\n\nfunction Mb() {\n this.g = !0;\n}\n\nMb.prototype.Aa = function () {\n this.g = !1;\n};\n\nfunction Nb(a, b, c, d, e, f) {\n a.info(function () {\n if (a.g) {\n if (f) {\n var h = \"\";\n\n for (var n = f.split(\"&\"), u = 0; u < n.length; u++) {\n var m = n[u].split(\"=\");\n\n if (1 < m.length) {\n var r = m[0];\n m = m[1];\n var G = r.split(\"_\");\n h = 2 <= G.length && \"type\" == G[1] ? h + (r + \"=\" + m + \"&\") : h + (r + \"=redacted&\");\n }\n }\n } else h = null;\n } else h = f;\n return \"XMLHTTP REQ (\" + d + \") [attempt \" + e + \"]: \" + b + \"\\n\" + c + \"\\n\" + h;\n });\n}\n\nfunction Ob(a, b, c, d, e, f, h) {\n a.info(function () {\n return \"XMLHTTP RESP (\" + d + \") [ attempt \" + e + \"]: \" + b + \"\\n\" + c + \"\\n\" + f + \" \" + h;\n });\n}\n\nfunction F(a, b, c, d) {\n a.info(function () {\n return \"XMLHTTP TEXT (\" + b + \"): \" + Pb(a, c) + (d ? \" \" + d : \"\");\n });\n}\n\nfunction Qb(a, b) {\n a.info(function () {\n return \"TIMEOUT: \" + b;\n });\n}\n\nMb.prototype.info = function () {};\n\nfunction Pb(a, b) {\n if (!a.g) return b;\n if (!b) return null;\n\n try {\n var c = JSON.parse(b);\n if (c) for (a = 0; a < c.length; a++) {\n if (Array.isArray(c[a])) {\n var d = c[a];\n\n if (!(2 > d.length)) {\n var e = d[1];\n\n if (Array.isArray(e) && !(1 > e.length)) {\n var f = e[0];\n if (\"noop\" != f && \"stop\" != f && \"close\" != f) for (var h = 1; h < e.length; h++) {\n e[h] = \"\";\n }\n }\n }\n }\n }\n return rb(c);\n } catch (n) {\n return b;\n }\n}\n\nvar H = {},\n Rb = null;\n\nfunction Sb() {\n return Rb = Rb || new C();\n}\n\nH.Ma = \"serverreachability\";\n\nfunction Tb(a) {\n z.call(this, H.Ma, a);\n}\n\nt(Tb, z);\n\nfunction I(a) {\n var b = Sb();\n D(b, new Tb(b, a));\n}\n\nH.STAT_EVENT = \"statevent\";\n\nfunction Ub(a, b) {\n z.call(this, H.STAT_EVENT, a);\n this.stat = b;\n}\n\nt(Ub, z);\n\nfunction J(a) {\n var b = Sb();\n D(b, new Ub(b, a));\n}\n\nH.Na = \"timingevent\";\n\nfunction Vb(a, b) {\n z.call(this, H.Na, a);\n this.size = b;\n}\n\nt(Vb, z);\n\nfunction K(a, b) {\n if (\"function\" !== typeof a) throw Error(\"Fn must not be null and must be a function\");\n return l.setTimeout(function () {\n a();\n }, b);\n}\n\nvar Wb = {\n NO_ERROR: 0,\n lb: 1,\n yb: 2,\n xb: 3,\n sb: 4,\n wb: 5,\n zb: 6,\n Ja: 7,\n TIMEOUT: 8,\n Cb: 9\n};\nvar Xb = {\n qb: \"complete\",\n Mb: \"success\",\n Ka: \"error\",\n Ja: \"abort\",\n Eb: \"ready\",\n Fb: \"readystatechange\",\n TIMEOUT: \"timeout\",\n Ab: \"incrementaldata\",\n Db: \"progress\",\n tb: \"downloadprogress\",\n Ub: \"uploadprogress\"\n};\n\nfunction Yb() {}\n\nYb.prototype.h = null;\n\nfunction Zb(a) {\n return a.h || (a.h = a.i());\n}\n\nfunction $b() {}\n\nvar L = {\n OPEN: \"a\",\n pb: \"b\",\n Ka: \"c\",\n Bb: \"d\"\n};\n\nfunction ac() {\n z.call(this, \"d\");\n}\n\nt(ac, z);\n\nfunction bc() {\n z.call(this, \"c\");\n}\n\nt(bc, z);\nvar cc;\n\nfunction dc() {}\n\nt(dc, Yb);\n\ndc.prototype.g = function () {\n return new XMLHttpRequest();\n};\n\ndc.prototype.i = function () {\n return {};\n};\n\ncc = new dc();\n\nfunction M(a, b, c, d) {\n this.l = a;\n this.j = b;\n this.m = c;\n this.X = d || 1;\n this.V = new E(this);\n this.P = ec;\n a = Ja ? 125 : void 0;\n this.W = new Eb(a);\n this.H = null;\n this.i = !1;\n this.s = this.A = this.v = this.K = this.F = this.Y = this.B = null;\n this.D = [];\n this.g = null;\n this.C = 0;\n this.o = this.u = null;\n this.N = -1;\n this.I = !1;\n this.O = 0;\n this.L = null;\n this.aa = this.J = this.$ = this.U = !1;\n this.h = new fc();\n}\n\nfunction fc() {\n this.i = null;\n this.g = \"\";\n this.h = !1;\n}\n\nvar ec = 45E3,\n gc = {},\n hc = {};\nk = M.prototype;\n\nk.setTimeout = function (a) {\n this.P = a;\n};\n\nfunction ic(a, b, c) {\n a.K = 1;\n a.v = jc(N(b));\n a.s = c;\n a.U = !0;\n kc(a, null);\n}\n\nfunction kc(a, b) {\n a.F = Date.now();\n lc(a);\n a.A = N(a.v);\n var c = a.A,\n d = a.X;\n Array.isArray(d) || (d = [String(d)]);\n mc(c.h, \"t\", d);\n a.C = 0;\n c = a.l.H;\n a.h = new fc();\n a.g = nc(a.l, c ? b : null, !a.s);\n 0 < a.O && (a.L = new Ib(q(a.Ia, a, a.g), a.O));\n Kb(a.V, a.g, \"readystatechange\", a.gb);\n b = a.H ? ya(a.H) : {};\n a.s ? (a.u || (a.u = \"POST\"), b[\"Content-Type\"] = \"application/x-www-form-urlencoded\", a.g.ea(a.A, a.u, a.s, b)) : (a.u = \"GET\", a.g.ea(a.A, a.u, null, b));\n I(1);\n Nb(a.j, a.u, a.A, a.m, a.X, a.s);\n}\n\nk.gb = function (a) {\n a = a.target;\n var b = this.L;\n b && 3 == O(a) ? b.l() : this.Ia(a);\n};\n\nk.Ia = function (a) {\n try {\n if (a == this.g) a: {\n var r = O(this.g);\n var b = this.g.Da();\n var G = this.g.ba();\n\n if (!(3 > r) && (3 != r || Ja || this.g && (this.h.h || this.g.ga() || oc(this.g)))) {\n this.I || 4 != r || 7 == b || (8 == b || 0 >= G ? I(3) : I(2));\n pc(this);\n var c = this.g.ba();\n this.N = c;\n\n b: if (qc(this)) {\n var d = oc(this.g);\n a = \"\";\n var e = d.length,\n f = 4 == O(this.g);\n\n if (!this.h.i) {\n if (\"undefined\" === typeof TextDecoder) {\n P(this);\n rc(this);\n var h = \"\";\n break b;\n }\n\n this.h.i = new l.TextDecoder();\n }\n\n for (b = 0; b < e; b++) {\n this.h.h = !0, a += this.h.i.decode(d[b], {\n stream: f && b == e - 1\n });\n }\n\n d.splice(0, e);\n this.h.g += a;\n this.C = 0;\n h = this.h.g;\n } else h = this.g.ga();\n\n this.i = 200 == c;\n Ob(this.j, this.u, this.A, this.m, this.X, r, c);\n\n if (this.i) {\n if (this.$ && !this.J) {\n b: {\n if (this.g) {\n var n,\n u = this.g;\n\n if ((n = u.g ? u.g.getResponseHeader(\"X-HTTP-Initial-Response\") : null) && !sa(n)) {\n var m = n;\n break b;\n }\n }\n\n m = null;\n }\n\n if (c = m) F(this.j, this.m, c, \"Initial handshake response via X-HTTP-Initial-Response\"), this.J = !0, sc(this, c);else {\n this.i = !1;\n this.o = 3;\n J(12);\n P(this);\n rc(this);\n break a;\n }\n }\n\n this.U ? (tc(this, r, h), Ja && this.i && 3 == r && (Kb(this.V, this.W, \"tick\", this.fb), this.W.start())) : (F(this.j, this.m, h, null), sc(this, h));\n 4 == r && P(this);\n this.i && !this.I && (4 == r ? uc(this.l, this) : (this.i = !1, lc(this)));\n } else 400 == c && 0 < h.indexOf(\"Unknown SID\") ? (this.o = 3, J(12)) : (this.o = 0, J(13)), P(this), rc(this);\n }\n }\n } catch (r) {} finally {}\n};\n\nfunction qc(a) {\n return a.g ? \"GET\" == a.u && 2 != a.K && a.l.Ba : !1;\n}\n\nfunction tc(a, b, c) {\n var d = !0,\n e;\n\n for (; !a.I && a.C < c.length;) {\n if (e = vc(a, c), e == hc) {\n 4 == b && (a.o = 4, J(14), d = !1);\n F(a.j, a.m, null, \"[Incomplete Response]\");\n break;\n } else if (e == gc) {\n a.o = 4;\n J(15);\n F(a.j, a.m, c, \"[Invalid Chunk]\");\n d = !1;\n break;\n } else F(a.j, a.m, e, null), sc(a, e);\n }\n\n qc(a) && e != hc && e != gc && (a.h.g = \"\", a.C = 0);\n 4 != b || 0 != c.length || a.h.h || (a.o = 1, J(16), d = !1);\n a.i = a.i && d;\n d ? 0 < c.length && !a.aa && (a.aa = !0, b = a.l, b.g == a && b.$ && !b.L && (b.h.info(\"Great, no buffering proxy detected. Bytes received: \" + c.length), wc(b), b.L = !0, J(11))) : (F(a.j, a.m, c, \"[Invalid Chunked Response]\"), P(a), rc(a));\n}\n\nk.fb = function () {\n if (this.g) {\n var a = O(this.g),\n b = this.g.ga();\n this.C < b.length && (pc(this), tc(this, a, b), this.i && 4 != a && lc(this));\n }\n};\n\nfunction vc(a, b) {\n var c = a.C,\n d = b.indexOf(\"\\n\", c);\n if (-1 == d) return hc;\n c = Number(b.substring(c, d));\n if (isNaN(c)) return gc;\n d += 1;\n if (d + c > b.length) return hc;\n b = b.substr(d, c);\n a.C = d + c;\n return b;\n}\n\nk.cancel = function () {\n this.I = !0;\n P(this);\n};\n\nfunction lc(a) {\n a.Y = Date.now() + a.P;\n xc(a, a.P);\n}\n\nfunction xc(a, b) {\n if (null != a.B) throw Error(\"WatchDog timer not null\");\n a.B = K(q(a.eb, a), b);\n}\n\nfunction pc(a) {\n a.B && (l.clearTimeout(a.B), a.B = null);\n}\n\nk.eb = function () {\n this.B = null;\n var a = Date.now();\n 0 <= a - this.Y ? (Qb(this.j, this.A), 2 != this.K && (I(3), J(17)), P(this), this.o = 2, rc(this)) : xc(this, this.Y - a);\n};\n\nfunction rc(a) {\n 0 == a.l.G || a.I || uc(a.l, a);\n}\n\nfunction P(a) {\n pc(a);\n var b = a.L;\n b && \"function\" == typeof b.na && b.na();\n a.L = null;\n Fb(a.W);\n Lb(a.V);\n a.g && (b = a.g, a.g = null, b.abort(), b.na());\n}\n\nfunction sc(a, b) {\n try {\n var c = a.l;\n if (0 != c.G && (c.g == a || yc(c.i, a))) if (c.I = a.N, !a.J && yc(c.i, a) && 3 == c.G) {\n try {\n var d = c.Ca.g.parse(b);\n } catch (m) {\n d = null;\n }\n\n if (Array.isArray(d) && 3 == d.length) {\n var e = d;\n if (0 == e[0]) a: {\n if (!c.u) {\n if (c.g) if (c.g.F + 3E3 < a.F) zc(c), Ac(c);else break a;\n Bc(c);\n J(18);\n }\n } else c.ta = e[1], 0 < c.ta - c.U && 37500 > e[2] && c.N && 0 == c.A && !c.v && (c.v = K(q(c.ab, c), 6E3));\n\n if (1 >= Cc(c.i) && c.ka) {\n try {\n c.ka();\n } catch (m) {}\n\n c.ka = void 0;\n }\n } else Q(c, 11);\n } else if ((a.J || c.g == a) && zc(c), !sa(b)) for (e = c.Ca.g.parse(b), b = 0; b < e.length; b++) {\n var m = e[b];\n c.U = m[0];\n m = m[1];\n if (2 == c.G) {\n if (\"c\" == m[0]) {\n c.J = m[1];\n c.la = m[2];\n var r = m[3];\n null != r && (c.ma = r, c.h.info(\"VER=\" + c.ma));\n var G = m[4];\n null != G && (c.za = G, c.h.info(\"SVER=\" + c.za));\n var Da = m[5];\n null != Da && \"number\" === typeof Da && 0 < Da && (d = 1.5 * Da, c.K = d, c.h.info(\"backChannelRequestTimeoutMs_=\" + d));\n d = c;\n var ca = a.g;\n\n if (ca) {\n var Ea = ca.g ? ca.g.getResponseHeader(\"X-Client-Wire-Protocol\") : null;\n\n if (Ea) {\n var f = d.i;\n !f.g && (w(Ea, \"spdy\") || w(Ea, \"quic\") || w(Ea, \"h2\")) && (f.j = f.l, f.g = new Set(), f.h && (Dc(f, f.h), f.h = null));\n }\n\n if (d.D) {\n var xb = ca.g ? ca.g.getResponseHeader(\"X-HTTP-Session-Id\") : null;\n xb && (d.sa = xb, R(d.F, d.D, xb));\n }\n }\n\n c.G = 3;\n c.j && c.j.xa();\n c.$ && (c.O = Date.now() - a.F, c.h.info(\"Handshake RTT: \" + c.O + \"ms\"));\n d = c;\n var h = a;\n d.oa = Ec(d, d.H ? d.la : null, d.W);\n\n if (h.J) {\n Fc(d.i, h);\n var n = h,\n u = d.K;\n u && n.setTimeout(u);\n n.B && (pc(n), lc(n));\n d.g = h;\n } else Gc(d);\n\n 0 < c.l.length && Hc(c);\n } else \"stop\" != m[0] && \"close\" != m[0] || Q(c, 7);\n } else 3 == c.G && (\"stop\" == m[0] || \"close\" == m[0] ? \"stop\" == m[0] ? Q(c, 7) : Ic(c) : \"noop\" != m[0] && c.j && c.j.wa(m), c.A = 0);\n }\n I(4);\n } catch (m) {}\n}\n\nfunction Jc(a) {\n if (a.R && \"function\" == typeof a.R) return a.R();\n if (\"string\" === typeof a) return a.split(\"\");\n\n if (ba(a)) {\n for (var b = [], c = a.length, d = 0; d < c; d++) {\n b.push(a[d]);\n }\n\n return b;\n }\n\n b = [];\n c = 0;\n\n for (d in a) {\n b[c++] = a[d];\n }\n\n return b;\n}\n\nfunction Kc(a, b) {\n if (a.forEach && \"function\" == typeof a.forEach) a.forEach(b, void 0);else if (ba(a) || \"string\" === typeof a) na(a, b, void 0);else {\n if (a.T && \"function\" == typeof a.T) var c = a.T();else if (a.R && \"function\" == typeof a.R) c = void 0;else if (ba(a) || \"string\" === typeof a) {\n c = [];\n\n for (var d = a.length, e = 0; e < d; e++) {\n c.push(e);\n }\n } else for (e in c = [], d = 0, a) {\n c[d++] = e;\n }\n d = Jc(a);\n e = d.length;\n\n for (var f = 0; f < e; f++) {\n b.call(void 0, d[f], c && c[f], a);\n }\n }\n}\n\nfunction S(a, b) {\n this.h = {};\n this.g = [];\n this.i = 0;\n var c = arguments.length;\n\n if (1 < c) {\n if (c % 2) throw Error(\"Uneven number of arguments\");\n\n for (var d = 0; d < c; d += 2) {\n this.set(arguments[d], arguments[d + 1]);\n }\n } else if (a) if (a instanceof S) for (c = a.T(), d = 0; d < c.length; d++) {\n this.set(c[d], a.get(c[d]));\n } else for (d in a) {\n this.set(d, a[d]);\n }\n}\n\nk = S.prototype;\n\nk.R = function () {\n Lc(this);\n\n for (var a = [], b = 0; b < this.g.length; b++) {\n a.push(this.h[this.g[b]]);\n }\n\n return a;\n};\n\nk.T = function () {\n Lc(this);\n return this.g.concat();\n};\n\nfunction Lc(a) {\n if (a.i != a.g.length) {\n for (var b = 0, c = 0; b < a.g.length;) {\n var d = a.g[b];\n T(a.h, d) && (a.g[c++] = d);\n b++;\n }\n\n a.g.length = c;\n }\n\n if (a.i != a.g.length) {\n var e = {};\n\n for (c = b = 0; b < a.g.length;) {\n d = a.g[b], T(e, d) || (a.g[c++] = d, e[d] = 1), b++;\n }\n\n a.g.length = c;\n }\n}\n\nk.get = function (a, b) {\n return T(this.h, a) ? this.h[a] : b;\n};\n\nk.set = function (a, b) {\n T(this.h, a) || (this.i++, this.g.push(a));\n this.h[a] = b;\n};\n\nk.forEach = function (a, b) {\n for (var c = this.T(), d = 0; d < c.length; d++) {\n var e = c[d],\n f = this.get(e);\n a.call(b, f, e, this);\n }\n};\n\nfunction T(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n}\n\nvar Mc = /^(?:([^:/?#.]+):)?(?:\\/\\/(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$/;\n\nfunction Nc(a, b) {\n if (a) {\n a = a.split(\"&\");\n\n for (var c = 0; c < a.length; c++) {\n var d = a[c].indexOf(\"=\"),\n e = null;\n\n if (0 <= d) {\n var f = a[c].substring(0, d);\n e = a[c].substring(d + 1);\n } else f = a[c];\n\n b(f, e ? decodeURIComponent(e.replace(/\\+/g, \" \")) : \"\");\n }\n }\n}\n\nfunction U(a, b) {\n this.i = this.s = this.j = \"\";\n this.m = null;\n this.o = this.l = \"\";\n this.g = !1;\n\n if (a instanceof U) {\n this.g = void 0 !== b ? b : a.g;\n Oc(this, a.j);\n this.s = a.s;\n Pc(this, a.i);\n Qc(this, a.m);\n this.l = a.l;\n b = a.h;\n var c = new Rc();\n c.i = b.i;\n b.g && (c.g = new S(b.g), c.h = b.h);\n Sc(this, c);\n this.o = a.o;\n } else a && (c = String(a).match(Mc)) ? (this.g = !!b, Oc(this, c[1] || \"\", !0), this.s = Tc(c[2] || \"\"), Pc(this, c[3] || \"\", !0), Qc(this, c[4]), this.l = Tc(c[5] || \"\", !0), Sc(this, c[6] || \"\", !0), this.o = Tc(c[7] || \"\")) : (this.g = !!b, this.h = new Rc(null, this.g));\n}\n\nU.prototype.toString = function () {\n var a = [],\n b = this.j;\n b && a.push(Uc(b, Vc, !0), \":\");\n var c = this.i;\n if (c || \"file\" == b) a.push(\"//\"), (b = this.s) && a.push(Uc(b, Vc, !0), \"@\"), a.push(encodeURIComponent(String(c)).replace(/%25([0-9a-fA-F]{2})/g, \"%$1\")), c = this.m, null != c && a.push(\":\", String(c));\n if (c = this.l) this.i && \"/\" != c.charAt(0) && a.push(\"/\"), a.push(Uc(c, \"/\" == c.charAt(0) ? Wc : Xc, !0));\n (c = this.h.toString()) && a.push(\"?\", c);\n (c = this.o) && a.push(\"#\", Uc(c, Yc));\n return a.join(\"\");\n};\n\nfunction N(a) {\n return new U(a);\n}\n\nfunction Oc(a, b, c) {\n a.j = c ? Tc(b, !0) : b;\n a.j && (a.j = a.j.replace(/:$/, \"\"));\n}\n\nfunction Pc(a, b, c) {\n a.i = c ? Tc(b, !0) : b;\n}\n\nfunction Qc(a, b) {\n if (b) {\n b = Number(b);\n if (isNaN(b) || 0 > b) throw Error(\"Bad port number \" + b);\n a.m = b;\n } else a.m = null;\n}\n\nfunction Sc(a, b, c) {\n b instanceof Rc ? (a.h = b, Zc(a.h, a.g)) : (c || (b = Uc(b, $c)), a.h = new Rc(b, a.g));\n}\n\nfunction R(a, b, c) {\n a.h.set(b, c);\n}\n\nfunction jc(a) {\n R(a, \"zx\", Math.floor(2147483648 * Math.random()).toString(36) + Math.abs(Math.floor(2147483648 * Math.random()) ^ Date.now()).toString(36));\n return a;\n}\n\nfunction ad(a) {\n return a instanceof U ? N(a) : new U(a, void 0);\n}\n\nfunction bd(a, b, c, d) {\n var e = new U(null, void 0);\n a && Oc(e, a);\n b && Pc(e, b);\n c && Qc(e, c);\n d && (e.l = d);\n return e;\n}\n\nfunction Tc(a, b) {\n return a ? b ? decodeURI(a.replace(/%25/g, \"%2525\")) : decodeURIComponent(a) : \"\";\n}\n\nfunction Uc(a, b, c) {\n return \"string\" === typeof a ? (a = encodeURI(a).replace(b, cd), c && (a = a.replace(/%25([0-9a-fA-F]{2})/g, \"%$1\")), a) : null;\n}\n\nfunction cd(a) {\n a = a.charCodeAt(0);\n return \"%\" + (a >> 4 & 15).toString(16) + (a & 15).toString(16);\n}\n\nvar Vc = /[#\\/\\?@]/g,\n Xc = /[#\\?:]/g,\n Wc = /[#\\?]/g,\n $c = /[#\\?@]/g,\n Yc = /#/g;\n\nfunction Rc(a, b) {\n this.h = this.g = null;\n this.i = a || null;\n this.j = !!b;\n}\n\nfunction V(a) {\n a.g || (a.g = new S(), a.h = 0, a.i && Nc(a.i, function (b, c) {\n a.add(decodeURIComponent(b.replace(/\\+/g, \" \")), c);\n }));\n}\n\nk = Rc.prototype;\n\nk.add = function (a, b) {\n V(this);\n this.i = null;\n a = W(this, a);\n var c = this.g.get(a);\n c || this.g.set(a, c = []);\n c.push(b);\n this.h += 1;\n return this;\n};\n\nfunction dd(a, b) {\n V(a);\n b = W(a, b);\n T(a.g.h, b) && (a.i = null, a.h -= a.g.get(b).length, a = a.g, T(a.h, b) && (delete a.h[b], a.i--, a.g.length > 2 * a.i && Lc(a)));\n}\n\nfunction ed(a, b) {\n V(a);\n b = W(a, b);\n return T(a.g.h, b);\n}\n\nk.forEach = function (a, b) {\n V(this);\n this.g.forEach(function (c, d) {\n na(c, function (e) {\n a.call(b, e, d, this);\n }, this);\n }, this);\n};\n\nk.T = function () {\n V(this);\n\n for (var a = this.g.R(), b = this.g.T(), c = [], d = 0; d < b.length; d++) {\n for (var e = a[d], f = 0; f < e.length; f++) {\n c.push(b[d]);\n }\n }\n\n return c;\n};\n\nk.R = function (a) {\n V(this);\n var b = [];\n if (\"string\" === typeof a) ed(this, a) && (b = qa(b, this.g.get(W(this, a))));else {\n a = this.g.R();\n\n for (var c = 0; c < a.length; c++) {\n b = qa(b, a[c]);\n }\n }\n return b;\n};\n\nk.set = function (a, b) {\n V(this);\n this.i = null;\n a = W(this, a);\n ed(this, a) && (this.h -= this.g.get(a).length);\n this.g.set(a, [b]);\n this.h += 1;\n return this;\n};\n\nk.get = function (a, b) {\n if (!a) return b;\n a = this.R(a);\n return 0 < a.length ? String(a[0]) : b;\n};\n\nfunction mc(a, b, c) {\n dd(a, b);\n 0 < c.length && (a.i = null, a.g.set(W(a, b), ra(c)), a.h += c.length);\n}\n\nk.toString = function () {\n if (this.i) return this.i;\n if (!this.g) return \"\";\n\n for (var a = [], b = this.g.T(), c = 0; c < b.length; c++) {\n var d = b[c],\n e = encodeURIComponent(String(d));\n d = this.R(d);\n\n for (var f = 0; f < d.length; f++) {\n var h = e;\n \"\" !== d[f] && (h += \"=\" + encodeURIComponent(String(d[f])));\n a.push(h);\n }\n }\n\n return this.i = a.join(\"&\");\n};\n\nfunction W(a, b) {\n b = String(b);\n a.j && (b = b.toLowerCase());\n return b;\n}\n\nfunction Zc(a, b) {\n b && !a.j && (V(a), a.i = null, a.g.forEach(function (c, d) {\n var e = d.toLowerCase();\n d != e && (dd(this, d), mc(this, e, c));\n }, a));\n a.j = b;\n}\n\nvar fd = function () {\n function fd(a, b) {\n this.h = a;\n this.g = b;\n }\n\n return fd;\n}();\n\nfunction gd(a) {\n this.l = a || hd;\n l.PerformanceNavigationTiming ? (a = l.performance.getEntriesByType(\"navigation\"), a = 0 < a.length && (\"hq\" == a[0].nextHopProtocol || \"h2\" == a[0].nextHopProtocol)) : a = !!(l.g && l.g.Ea && l.g.Ea() && l.g.Ea().Zb);\n this.j = a ? this.l : 1;\n this.g = null;\n 1 < this.j && (this.g = new Set());\n this.h = null;\n this.i = [];\n}\n\nvar hd = 10;\n\nfunction id(a) {\n return a.h ? !0 : a.g ? a.g.size >= a.j : !1;\n}\n\nfunction Cc(a) {\n return a.h ? 1 : a.g ? a.g.size : 0;\n}\n\nfunction yc(a, b) {\n return a.h ? a.h == b : a.g ? a.g.has(b) : !1;\n}\n\nfunction Dc(a, b) {\n a.g ? a.g.add(b) : a.h = b;\n}\n\nfunction Fc(a, b) {\n a.h && a.h == b ? a.h = null : a.g && a.g.has(b) && a.g.delete(b);\n}\n\ngd.prototype.cancel = function () {\n var e_1, _a;\n\n this.i = jd(this);\n if (this.h) this.h.cancel(), this.h = null;else if (this.g && 0 !== this.g.size) {\n try {\n for (var _b = __values(this.g.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var a = _c.value;\n a.cancel();\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n this.g.clear();\n }\n};\n\nfunction jd(a) {\n var e_2, _a;\n\n if (null != a.h) return a.i.concat(a.h.D);\n\n if (null != a.g && 0 !== a.g.size) {\n var b = a.i;\n\n try {\n for (var _b = __values(a.g.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var c = _c.value;\n b = b.concat(c.D);\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n\n return b;\n }\n\n return ra(a.i);\n}\n\nfunction kd() {}\n\nkd.prototype.stringify = function (a) {\n return l.JSON.stringify(a, void 0);\n};\n\nkd.prototype.parse = function (a) {\n return l.JSON.parse(a, void 0);\n};\n\nfunction ld() {\n this.g = new kd();\n}\n\nfunction md(a, b, c) {\n var d = c || \"\";\n\n try {\n Kc(a, function (e, f) {\n var h = e;\n p(e) && (h = rb(e));\n b.push(d + f + \"=\" + encodeURIComponent(h));\n });\n } catch (e) {\n throw b.push(d + \"type=\" + encodeURIComponent(\"_badmap\")), e;\n }\n}\n\nfunction nd(a, b) {\n var c = new Mb();\n\n if (l.Image) {\n var d_1 = new Image();\n d_1.onload = ja(od, c, d_1, \"TestLoadImage: loaded\", !0, b);\n d_1.onerror = ja(od, c, d_1, \"TestLoadImage: error\", !1, b);\n d_1.onabort = ja(od, c, d_1, \"TestLoadImage: abort\", !1, b);\n d_1.ontimeout = ja(od, c, d_1, \"TestLoadImage: timeout\", !1, b);\n l.setTimeout(function () {\n if (d_1.ontimeout) d_1.ontimeout();\n }, 1E4);\n d_1.src = a;\n } else b(!1);\n}\n\nfunction od(a, b, c, d, e) {\n try {\n b.onload = null, b.onerror = null, b.onabort = null, b.ontimeout = null, e(d);\n } catch (f) {}\n}\n\nfunction pd(a) {\n this.l = a.$b || null;\n this.j = a.ib || !1;\n}\n\nt(pd, Yb);\n\npd.prototype.g = function () {\n return new qd(this.l, this.j);\n};\n\npd.prototype.i = function (a) {\n return function () {\n return a;\n };\n}({});\n\nfunction qd(a, b) {\n C.call(this);\n this.D = a;\n this.u = b;\n this.m = void 0;\n this.readyState = rd;\n this.status = 0;\n this.responseType = this.responseText = this.response = this.statusText = \"\";\n this.onreadystatechange = null;\n this.v = new Headers();\n this.h = null;\n this.C = \"GET\";\n this.B = \"\";\n this.g = !1;\n this.A = this.j = this.l = null;\n}\n\nt(qd, C);\nvar rd = 0;\nk = qd.prototype;\n\nk.open = function (a, b) {\n if (this.readyState != rd) throw this.abort(), Error(\"Error reopening a connection\");\n this.C = a;\n this.B = b;\n this.readyState = 1;\n sd(this);\n};\n\nk.send = function (a) {\n if (1 != this.readyState) throw this.abort(), Error(\"need to call open() first. \");\n this.g = !0;\n var b = {\n headers: this.v,\n method: this.C,\n credentials: this.m,\n cache: void 0\n };\n a && (b.body = a);\n (this.D || l).fetch(new Request(this.B, b)).then(this.Va.bind(this), this.ha.bind(this));\n};\n\nk.abort = function () {\n this.response = this.responseText = \"\";\n this.v = new Headers();\n this.status = 0;\n this.j && this.j.cancel(\"Request was aborted.\");\n 1 <= this.readyState && this.g && 4 != this.readyState && (this.g = !1, td(this));\n this.readyState = rd;\n};\n\nk.Va = function (a) {\n if (this.g && (this.l = a, this.h || (this.status = this.l.status, this.statusText = this.l.statusText, this.h = a.headers, this.readyState = 2, sd(this)), this.g && (this.readyState = 3, sd(this), this.g))) if (\"arraybuffer\" === this.responseType) a.arrayBuffer().then(this.Ta.bind(this), this.ha.bind(this));else if (\"undefined\" !== typeof l.ReadableStream && \"body\" in a) {\n this.j = a.body.getReader();\n\n if (this.u) {\n if (this.responseType) throw Error('responseType must be empty for \"streamBinaryChunks\" mode responses.');\n this.response = [];\n } else this.response = this.responseText = \"\", this.A = new TextDecoder();\n\n ud(this);\n } else a.text().then(this.Ua.bind(this), this.ha.bind(this));\n};\n\nfunction ud(a) {\n a.j.read().then(a.Sa.bind(a)).catch(a.ha.bind(a));\n}\n\nk.Sa = function (a) {\n if (this.g) {\n if (this.u && a.value) this.response.push(a.value);else if (!this.u) {\n var b = a.value ? a.value : new Uint8Array(0);\n if (b = this.A.decode(b, {\n stream: !a.done\n })) this.response = this.responseText += b;\n }\n a.done ? td(this) : sd(this);\n 3 == this.readyState && ud(this);\n }\n};\n\nk.Ua = function (a) {\n this.g && (this.response = this.responseText = a, td(this));\n};\n\nk.Ta = function (a) {\n this.g && (this.response = a, td(this));\n};\n\nk.ha = function () {\n this.g && td(this);\n};\n\nfunction td(a) {\n a.readyState = 4;\n a.l = null;\n a.j = null;\n a.A = null;\n sd(a);\n}\n\nk.setRequestHeader = function (a, b) {\n this.v.append(a, b);\n};\n\nk.getResponseHeader = function (a) {\n return this.h ? this.h.get(a.toLowerCase()) || \"\" : \"\";\n};\n\nk.getAllResponseHeaders = function () {\n if (!this.h) return \"\";\n var a = [],\n b = this.h.entries();\n\n for (var c = b.next(); !c.done;) {\n c = c.value, a.push(c[0] + \": \" + c[1]), c = b.next();\n }\n\n return a.join(\"\\r\\n\");\n};\n\nfunction sd(a) {\n a.onreadystatechange && a.onreadystatechange.call(a);\n}\n\nObject.defineProperty(qd.prototype, \"withCredentials\", {\n get: function get() {\n return \"include\" === this.m;\n },\n set: function set(a) {\n this.m = a ? \"include\" : \"same-origin\";\n }\n});\nvar vd = l.JSON.parse;\n\nfunction X(a) {\n C.call(this);\n this.headers = new S();\n this.u = a || null;\n this.h = !1;\n this.C = this.g = null;\n this.H = \"\";\n this.m = 0;\n this.j = \"\";\n this.l = this.F = this.v = this.D = !1;\n this.B = 0;\n this.A = null;\n this.J = wd;\n this.K = this.L = !1;\n}\n\nt(X, C);\nvar wd = \"\",\n xd = /^https?$/i,\n yd = [\"POST\", \"PUT\"];\nk = X.prototype;\n\nk.ea = function (a, b, c, d) {\n if (this.g) throw Error(\"[goog.net.XhrIo] Object is active with another request=\" + this.H + \"; newUri=\" + a);\n b = b ? b.toUpperCase() : \"GET\";\n this.H = a;\n this.j = \"\";\n this.m = 0;\n this.D = !1;\n this.h = !0;\n this.g = this.u ? this.u.g() : cc.g();\n this.C = this.u ? Zb(this.u) : Zb(cc);\n this.g.onreadystatechange = q(this.Fa, this);\n\n try {\n this.F = !0, this.g.open(b, String(a), !0), this.F = !1;\n } catch (f) {\n zd(this, f);\n return;\n }\n\n a = c || \"\";\n var e = new S(this.headers);\n d && Kc(d, function (f, h) {\n e.set(h, f);\n });\n d = oa(e.T());\n c = l.FormData && a instanceof l.FormData;\n !(0 <= ma(yd, b)) || d || c || e.set(\"Content-Type\", \"application/x-www-form-urlencoded;charset=utf-8\");\n e.forEach(function (f, h) {\n this.g.setRequestHeader(h, f);\n }, this);\n this.J && (this.g.responseType = this.J);\n \"withCredentials\" in this.g && this.g.withCredentials !== this.L && (this.g.withCredentials = this.L);\n\n try {\n Ad(this), 0 < this.B && ((this.K = Bd(this.g)) ? (this.g.timeout = this.B, this.g.ontimeout = q(this.pa, this)) : this.A = Gb(this.pa, this.B, this)), this.v = !0, this.g.send(a), this.v = !1;\n } catch (f) {\n zd(this, f);\n }\n};\n\nfunction Bd(a) {\n return y && Ra() && \"number\" === typeof a.timeout && void 0 !== a.ontimeout;\n}\n\nfunction pa(a) {\n return \"content-type\" == a.toLowerCase();\n}\n\nk.pa = function () {\n \"undefined\" != typeof goog && this.g && (this.j = \"Timed out after \" + this.B + \"ms, aborting\", this.m = 8, D(this, \"timeout\"), this.abort(8));\n};\n\nfunction zd(a, b) {\n a.h = !1;\n a.g && (a.l = !0, a.g.abort(), a.l = !1);\n a.j = b;\n a.m = 5;\n Cd(a);\n Dd(a);\n}\n\nfunction Cd(a) {\n a.D || (a.D = !0, D(a, \"complete\"), D(a, \"error\"));\n}\n\nk.abort = function (a) {\n this.g && this.h && (this.h = !1, this.l = !0, this.g.abort(), this.l = !1, this.m = a || 7, D(this, \"complete\"), D(this, \"abort\"), Dd(this));\n};\n\nk.M = function () {\n this.g && (this.h && (this.h = !1, this.l = !0, this.g.abort(), this.l = !1), Dd(this, !0));\n X.Z.M.call(this);\n};\n\nk.Fa = function () {\n this.s || (this.F || this.v || this.l ? Ed(this) : this.cb());\n};\n\nk.cb = function () {\n Ed(this);\n};\n\nfunction Ed(a) {\n if (a.h && \"undefined\" != typeof goog && (!a.C[1] || 4 != O(a) || 2 != a.ba())) if (a.v && 4 == O(a)) Gb(a.Fa, 0, a);else if (D(a, \"readystatechange\"), 4 == O(a)) {\n a.h = !1;\n\n try {\n var n = a.ba();\n\n a: switch (n) {\n case 200:\n case 201:\n case 202:\n case 204:\n case 206:\n case 304:\n case 1223:\n var b = !0;\n break a;\n\n default:\n b = !1;\n }\n\n var c;\n\n if (!(c = b)) {\n var d;\n\n if (d = 0 === n) {\n var e = String(a.H).match(Mc)[1] || null;\n\n if (!e && l.self && l.self.location) {\n var f = l.self.location.protocol;\n e = f.substr(0, f.length - 1);\n }\n\n d = !xd.test(e ? e.toLowerCase() : \"\");\n }\n\n c = d;\n }\n\n if (c) D(a, \"complete\"), D(a, \"success\");else {\n a.m = 6;\n\n try {\n var h = 2 < O(a) ? a.g.statusText : \"\";\n } catch (u) {\n h = \"\";\n }\n\n a.j = h + \" [\" + a.ba() + \"]\";\n Cd(a);\n }\n } finally {\n Dd(a);\n }\n }\n}\n\nfunction Dd(a, b) {\n if (a.g) {\n Ad(a);\n var c = a.g,\n d = a.C[0] ? aa : null;\n a.g = null;\n a.C = null;\n b || D(a, \"ready\");\n\n try {\n c.onreadystatechange = d;\n } catch (e) {}\n }\n}\n\nfunction Ad(a) {\n a.g && a.K && (a.g.ontimeout = null);\n a.A && (l.clearTimeout(a.A), a.A = null);\n}\n\nfunction O(a) {\n return a.g ? a.g.readyState : 0;\n}\n\nk.ba = function () {\n try {\n return 2 < O(this) ? this.g.status : -1;\n } catch (a) {\n return -1;\n }\n};\n\nk.ga = function () {\n try {\n return this.g ? this.g.responseText : \"\";\n } catch (a) {\n return \"\";\n }\n};\n\nk.Qa = function (a) {\n if (this.g) {\n var b = this.g.responseText;\n a && 0 == b.indexOf(a) && (b = b.substring(a.length));\n return vd(b);\n }\n};\n\nfunction oc(a) {\n try {\n if (!a.g) return null;\n if (\"response\" in a.g) return a.g.response;\n\n switch (a.J) {\n case wd:\n case \"text\":\n return a.g.responseText;\n\n case \"arraybuffer\":\n if (\"mozResponseArrayBuffer\" in a.g) return a.g.mozResponseArrayBuffer;\n }\n\n return null;\n } catch (b) {\n return null;\n }\n}\n\nk.Da = function () {\n return this.m;\n};\n\nk.La = function () {\n return \"string\" === typeof this.j ? this.j : String(this.j);\n};\n\nfunction Fd(a) {\n var b = \"\";\n xa(a, function (c, d) {\n b += d;\n b += \":\";\n b += c;\n b += \"\\r\\n\";\n });\n return b;\n}\n\nfunction Gd(a, b, c) {\n a: {\n for (d in c) {\n var d = !1;\n break a;\n }\n\n d = !0;\n }\n\n d || (c = Fd(c), \"string\" === typeof a ? null != c && encodeURIComponent(String(c)) : R(a, b, c));\n}\n\nfunction Hd(a, b, c) {\n return c && c.internalChannelParams ? c.internalChannelParams[a] || b : b;\n}\n\nfunction Id(a) {\n this.za = 0;\n this.l = [];\n this.h = new Mb();\n this.la = this.oa = this.F = this.W = this.g = this.sa = this.D = this.aa = this.o = this.P = this.s = null;\n this.Za = this.V = 0;\n this.Xa = Hd(\"failFast\", !1, a);\n this.N = this.v = this.u = this.m = this.j = null;\n this.X = !0;\n this.I = this.ta = this.U = -1;\n this.Y = this.A = this.C = 0;\n this.Pa = Hd(\"baseRetryDelayMs\", 5E3, a);\n this.$a = Hd(\"retryDelaySeedMs\", 1E4, a);\n this.Ya = Hd(\"forwardChannelMaxRetries\", 2, a);\n this.ra = Hd(\"forwardChannelRequestTimeoutMs\", 2E4, a);\n this.qa = a && a.xmlHttpFactory || void 0;\n this.Ba = a && a.Yb || !1;\n this.K = void 0;\n this.H = a && a.supportsCrossDomainXhr || !1;\n this.J = \"\";\n this.i = new gd(a && a.concurrentRequestLimit);\n this.Ca = new ld();\n this.ja = a && a.fastHandshake || !1;\n this.Ra = a && a.Wb || !1;\n a && a.Aa && this.h.Aa();\n a && a.forceLongPolling && (this.X = !1);\n this.$ = !this.ja && this.X && a && a.detectBufferingProxy || !1;\n this.ka = void 0;\n this.O = 0;\n this.L = !1;\n this.B = null;\n this.Wa = !a || !1 !== a.Xb;\n}\n\nk = Id.prototype;\nk.ma = 8;\nk.G = 1;\n\nfunction Ic(a) {\n Jd(a);\n\n if (3 == a.G) {\n var b = a.V++,\n c = N(a.F);\n R(c, \"SID\", a.J);\n R(c, \"RID\", b);\n R(c, \"TYPE\", \"terminate\");\n Kd(a, c);\n b = new M(a, a.h, b, void 0);\n b.K = 2;\n b.v = jc(N(c));\n c = !1;\n l.navigator && l.navigator.sendBeacon && (c = l.navigator.sendBeacon(b.v.toString(), \"\"));\n !c && l.Image && (new Image().src = b.v, c = !0);\n c || (b.g = nc(b.l, null), b.g.ea(b.v));\n b.F = Date.now();\n lc(b);\n }\n\n Ld(a);\n}\n\nk.hb = function (a) {\n try {\n this.h.info(\"Origin Trials invoked: \" + a);\n } catch (b) {}\n};\n\nfunction Ac(a) {\n a.g && (wc(a), a.g.cancel(), a.g = null);\n}\n\nfunction Jd(a) {\n Ac(a);\n a.u && (l.clearTimeout(a.u), a.u = null);\n zc(a);\n a.i.cancel();\n a.m && (\"number\" === typeof a.m && l.clearTimeout(a.m), a.m = null);\n}\n\nfunction Md(a, b) {\n a.l.push(new fd(a.Za++, b));\n 3 == a.G && Hc(a);\n}\n\nfunction Hc(a) {\n id(a.i) || a.m || (a.m = !0, zb(a.Ha, a), a.C = 0);\n}\n\nfunction Nd(a, b) {\n if (Cc(a.i) >= a.i.j - (a.m ? 1 : 0)) return !1;\n if (a.m) return a.l = b.D.concat(a.l), !0;\n if (1 == a.G || 2 == a.G || a.C >= (a.Xa ? 0 : a.Ya)) return !1;\n a.m = K(q(a.Ha, a, b), Od(a, a.C));\n a.C++;\n return !0;\n}\n\nk.Ha = function (a) {\n if (this.m) if (this.m = null, 1 == this.G) {\n if (!a) {\n this.V = Math.floor(1E5 * Math.random());\n a = this.V++;\n var e = new M(this, this.h, a, void 0);\n var f = this.s;\n this.P && (f ? (f = ya(f), Aa(f, this.P)) : f = this.P);\n null === this.o && (e.H = f);\n if (this.ja) a: {\n var b = 0;\n\n for (var c = 0; c < this.l.length; c++) {\n b: {\n var d = this.l[c];\n\n if (\"__data__\" in d.g && (d = d.g.__data__, \"string\" === typeof d)) {\n d = d.length;\n break b;\n }\n\n d = void 0;\n }\n\n if (void 0 === d) break;\n b += d;\n\n if (4096 < b) {\n b = c;\n break a;\n }\n\n if (4096 === b || c === this.l.length - 1) {\n b = c + 1;\n break a;\n }\n }\n\n b = 1E3;\n } else b = 1E3;\n b = Pd(this, e, b);\n c = N(this.F);\n R(c, \"RID\", a);\n R(c, \"CVER\", 22);\n this.D && R(c, \"X-HTTP-Session-Id\", this.D);\n Kd(this, c);\n this.o && f && Gd(c, this.o, f);\n Dc(this.i, e);\n this.Ra && R(c, \"TYPE\", \"init\");\n this.ja ? (R(c, \"$req\", b), R(c, \"SID\", \"null\"), e.$ = !0, ic(e, c, null)) : ic(e, c, b);\n this.G = 2;\n }\n } else 3 == this.G && (a ? Qd(this, a) : 0 == this.l.length || id(this.i) || Qd(this));\n};\n\nfunction Qd(a, b) {\n var c;\n b ? c = b.m : c = a.V++;\n var d = N(a.F);\n R(d, \"SID\", a.J);\n R(d, \"RID\", c);\n R(d, \"AID\", a.U);\n Kd(a, d);\n a.o && a.s && Gd(d, a.o, a.s);\n c = new M(a, a.h, c, a.C + 1);\n null === a.o && (c.H = a.s);\n b && (a.l = b.D.concat(a.l));\n b = Pd(a, c, 1E3);\n c.setTimeout(Math.round(.5 * a.ra) + Math.round(.5 * a.ra * Math.random()));\n Dc(a.i, c);\n ic(c, d, b);\n}\n\nfunction Kd(a, b) {\n a.j && Kc({}, function (c, d) {\n R(b, d, c);\n });\n}\n\nfunction Pd(a, b, c) {\n c = Math.min(a.l.length, c);\n var d = a.j ? q(a.j.Oa, a.j, a) : null;\n\n a: {\n var e = a.l;\n var f = -1;\n\n for (;;) {\n var h = [\"count=\" + c];\n -1 == f ? 0 < c ? (f = e[0].h, h.push(\"ofs=\" + f)) : f = 0 : h.push(\"ofs=\" + f);\n var n = !0;\n\n for (var u = 0; u < c; u++) {\n var m = e[u].h;\n var r = e[u].g;\n m -= f;\n if (0 > m) f = Math.max(0, e[u].h - 100), n = !1;else try {\n md(r, h, \"req\" + m + \"_\");\n } catch (G) {\n d && d(r);\n }\n }\n\n if (n) {\n d = h.join(\"&\");\n break a;\n }\n }\n }\n\n a = a.l.splice(0, c);\n b.D = a;\n return d;\n}\n\nfunction Gc(a) {\n a.g || a.u || (a.Y = 1, zb(a.Ga, a), a.A = 0);\n}\n\nfunction Bc(a) {\n if (a.g || a.u || 3 <= a.A) return !1;\n a.Y++;\n a.u = K(q(a.Ga, a), Od(a, a.A));\n a.A++;\n return !0;\n}\n\nk.Ga = function () {\n this.u = null;\n Rd(this);\n\n if (this.$ && !(this.L || null == this.g || 0 >= this.O)) {\n var a = 2 * this.O;\n this.h.info(\"BP detection timer enabled: \" + a);\n this.B = K(q(this.bb, this), a);\n }\n};\n\nk.bb = function () {\n this.B && (this.B = null, this.h.info(\"BP detection timeout reached.\"), this.h.info(\"Buffering proxy detected and switch to long-polling!\"), this.N = !1, this.L = !0, J(10), Ac(this), Rd(this));\n};\n\nfunction wc(a) {\n null != a.B && (l.clearTimeout(a.B), a.B = null);\n}\n\nfunction Rd(a) {\n a.g = new M(a, a.h, \"rpc\", a.Y);\n null === a.o && (a.g.H = a.s);\n a.g.O = 0;\n var b = N(a.oa);\n R(b, \"RID\", \"rpc\");\n R(b, \"SID\", a.J);\n R(b, \"CI\", a.N ? \"0\" : \"1\");\n R(b, \"AID\", a.U);\n Kd(a, b);\n R(b, \"TYPE\", \"xmlhttp\");\n a.o && a.s && Gd(b, a.o, a.s);\n a.K && a.g.setTimeout(a.K);\n var c = a.g;\n a = a.la;\n c.K = 1;\n c.v = jc(N(b));\n c.s = null;\n c.U = !0;\n kc(c, a);\n}\n\nk.ab = function () {\n null != this.v && (this.v = null, Ac(this), Bc(this), J(19));\n};\n\nfunction zc(a) {\n null != a.v && (l.clearTimeout(a.v), a.v = null);\n}\n\nfunction uc(a, b) {\n var c = null;\n\n if (a.g == b) {\n zc(a);\n wc(a);\n a.g = null;\n var d = 2;\n } else if (yc(a.i, b)) c = b.D, Fc(a.i, b), d = 1;else return;\n\n a.I = b.N;\n if (0 != a.G) if (b.i) {\n if (1 == d) {\n c = b.s ? b.s.length : 0;\n b = Date.now() - b.F;\n var e = a.C;\n d = Sb();\n D(d, new Vb(d, c, b, e));\n Hc(a);\n } else Gc(a);\n } else if (e = b.o, 3 == e || 0 == e && 0 < a.I || !(1 == d && Nd(a, b) || 2 == d && Bc(a))) switch (c && 0 < c.length && (b = a.i, b.i = b.i.concat(c)), e) {\n case 1:\n Q(a, 5);\n break;\n\n case 4:\n Q(a, 10);\n break;\n\n case 3:\n Q(a, 6);\n break;\n\n default:\n Q(a, 2);\n }\n}\n\nfunction Od(a, b) {\n var c = a.Pa + Math.floor(Math.random() * a.$a);\n a.j || (c *= 2);\n return c * b;\n}\n\nfunction Q(a, b) {\n a.h.info(\"Error code \" + b);\n\n if (2 == b) {\n var c = null;\n a.j && (c = null);\n var d = q(a.jb, a);\n c || (c = new U(\"//www.google.com/images/cleardot.gif\"), l.location && \"http\" == l.location.protocol || Oc(c, \"https\"), jc(c));\n nd(c.toString(), d);\n } else J(2);\n\n a.G = 0;\n a.j && a.j.va(b);\n Ld(a);\n Jd(a);\n}\n\nk.jb = function (a) {\n a ? (this.h.info(\"Successfully pinged google.com\"), J(2)) : (this.h.info(\"Failed to ping google.com\"), J(1));\n};\n\nfunction Ld(a) {\n a.G = 0;\n a.I = -1;\n\n if (a.j) {\n if (0 != jd(a.i).length || 0 != a.l.length) a.i.i.length = 0, ra(a.l), a.l.length = 0;\n a.j.ua();\n }\n}\n\nfunction Ec(a, b, c) {\n var d = ad(c);\n if (\"\" != d.i) b && Pc(d, b + \".\" + d.i), Qc(d, d.m);else {\n var e = l.location;\n d = bd(e.protocol, b ? b + \".\" + e.hostname : e.hostname, +e.port, c);\n }\n a.aa && xa(a.aa, function (e, f) {\n R(d, f, e);\n });\n b = a.D;\n c = a.sa;\n b && c && R(d, b, c);\n R(d, \"VER\", a.ma);\n Kd(a, d);\n return d;\n}\n\nfunction nc(a, b, c) {\n if (b && !a.H) throw Error(\"Can't create secondary domain capable XhrIo object.\");\n b = c && a.Ba && !a.qa ? new X(new pd({\n ib: !0\n })) : new X(a.qa);\n b.L = a.H;\n return b;\n}\n\nfunction Sd() {}\n\nk = Sd.prototype;\n\nk.xa = function () {};\n\nk.wa = function () {};\n\nk.va = function () {};\n\nk.ua = function () {};\n\nk.Oa = function () {};\n\nfunction Td() {\n if (y && !(10 <= Number(Ua))) throw Error(\"Environmental error: no available transport.\");\n}\n\nTd.prototype.g = function (a, b) {\n return new Y(a, b);\n};\n\nfunction Y(a, b) {\n C.call(this);\n this.g = new Id(b);\n this.l = a;\n this.h = b && b.messageUrlParams || null;\n a = b && b.messageHeaders || null;\n b && b.clientProtocolHeaderRequired && (a ? a[\"X-Client-Protocol\"] = \"webchannel\" : a = {\n \"X-Client-Protocol\": \"webchannel\"\n });\n this.g.s = a;\n a = b && b.initMessageHeaders || null;\n b && b.messageContentType && (a ? a[\"X-WebChannel-Content-Type\"] = b.messageContentType : a = {\n \"X-WebChannel-Content-Type\": b.messageContentType\n });\n b && b.ya && (a ? a[\"X-WebChannel-Client-Profile\"] = b.ya : a = {\n \"X-WebChannel-Client-Profile\": b.ya\n });\n this.g.P = a;\n (a = b && b.httpHeadersOverwriteParam) && !sa(a) && (this.g.o = a);\n this.A = b && b.supportsCrossDomainXhr || !1;\n this.v = b && b.sendRawJson || !1;\n (b = b && b.httpSessionIdParam) && !sa(b) && (this.g.D = b, a = this.h, null !== a && b in a && (a = this.h, b in a && delete a[b]));\n this.j = new Z(this);\n}\n\nt(Y, C);\n\nY.prototype.m = function () {\n this.g.j = this.j;\n this.A && (this.g.H = !0);\n var a = this.g,\n b = this.l,\n c = this.h || void 0;\n a.Wa && (a.h.info(\"Origin Trials enabled.\"), zb(q(a.hb, a, b)));\n J(0);\n a.W = b;\n a.aa = c || {};\n a.N = a.X;\n a.F = Ec(a, null, a.W);\n Hc(a);\n};\n\nY.prototype.close = function () {\n Ic(this.g);\n};\n\nY.prototype.u = function (a) {\n if (\"string\" === typeof a) {\n var b = {};\n b.__data__ = a;\n Md(this.g, b);\n } else this.v ? (b = {}, b.__data__ = rb(a), Md(this.g, b)) : Md(this.g, a);\n};\n\nY.prototype.M = function () {\n this.g.j = null;\n delete this.j;\n Ic(this.g);\n delete this.g;\n Y.Z.M.call(this);\n};\n\nfunction Ud(a) {\n ac.call(this);\n var b = a.__sm__;\n\n if (b) {\n a: {\n for (var c in b) {\n a = c;\n break a;\n }\n\n a = void 0;\n }\n\n if (this.i = a) a = this.i, b = null !== b && a in b ? b[a] : void 0;\n this.data = b;\n } else this.data = a;\n}\n\nt(Ud, ac);\n\nfunction Vd() {\n bc.call(this);\n this.status = 1;\n}\n\nt(Vd, bc);\n\nfunction Z(a) {\n this.g = a;\n}\n\nt(Z, Sd);\n\nZ.prototype.xa = function () {\n D(this.g, \"a\");\n};\n\nZ.prototype.wa = function (a) {\n D(this.g, new Ud(a));\n};\n\nZ.prototype.va = function (a) {\n D(this.g, new Vd(a));\n};\n\nZ.prototype.ua = function () {\n D(this.g, \"b\");\n};\n/*\r\nCopyright 2017 Google LLC\r\nLicensed under the Apache License, Version 2.0 (the \"License\");\r\nyou may not use this file except in compliance with the License.\r\nYou may obtain a copy of the License at\r\nhttp://www.apache.org/licenses/LICENSE-2.0\r\nUnless required by applicable law or agreed to in writing, software\r\ndistributed under the License is distributed on an \"AS IS\" BASIS,\r\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\nSee the License for the specific language governing permissions and\r\nlimitations under the License.\r\n*/\n\n\nTd.prototype.createWebChannel = Td.prototype.g;\nY.prototype.send = Y.prototype.u;\nY.prototype.open = Y.prototype.m;\nY.prototype.close = Y.prototype.close;\nWb.NO_ERROR = 0;\nWb.TIMEOUT = 8;\nWb.HTTP_ERROR = 6;\nXb.COMPLETE = \"complete\";\n$b.EventType = L;\nL.OPEN = \"a\";\nL.CLOSE = \"b\";\nL.ERROR = \"c\";\nL.MESSAGE = \"d\";\nC.prototype.listen = C.prototype.N;\nX.prototype.listenOnce = X.prototype.O;\nX.prototype.getLastError = X.prototype.La;\nX.prototype.getLastErrorCode = X.prototype.Da;\nX.prototype.getStatus = X.prototype.ba;\nX.prototype.getResponseJson = X.prototype.Qa;\nX.prototype.getResponseText = X.prototype.ga;\nX.prototype.send = X.prototype.ea;\n\nvar createWebChannelTransport = function createWebChannelTransport() {\n return new Td();\n};\n\nvar getStatEventTarget = function getStatEventTarget() {\n return Sb();\n};\n\nvar ErrorCode = Wb;\nvar EventType = Xb;\nvar Event = H;\nvar Stat = {\n rb: 0,\n ub: 1,\n vb: 2,\n Ob: 3,\n Tb: 4,\n Qb: 5,\n Rb: 6,\n Pb: 7,\n Nb: 8,\n Sb: 9,\n PROXY: 10,\n NOPROXY: 11,\n Lb: 12,\n Hb: 13,\n Ib: 14,\n Gb: 15,\n Jb: 16,\n Kb: 17,\n nb: 18,\n mb: 19,\n ob: 20\n};\nvar FetchXmlHttpFactory = pd;\nvar WebChannel = $b;\nvar XhrIo = X;\nvar esm = {\n createWebChannelTransport: createWebChannelTransport,\n getStatEventTarget: getStatEventTarget,\n ErrorCode: ErrorCode,\n EventType: EventType,\n Event: Event,\n Stat: Stat,\n FetchXmlHttpFactory: FetchXmlHttpFactory,\n WebChannel: WebChannel,\n XhrIo: XhrIo\n};\nexport default esm;\nexport { ErrorCode, Event, EventType, FetchXmlHttpFactory, Stat, WebChannel, XhrIo, createWebChannelTransport, getStatEventTarget };","\"use strict\";\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({\n location: location,\n action: \"POP\"\n });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, {\n key: Date.now() + \"\"\n }); // try...catch iOS Safari limits to 100 pushState calls\n\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({\n location: location,\n action: \"PUSH\"\n });\n });\n return transition;\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\n\n\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n return {\n get location() {\n return stack[index];\n },\n\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n\n get index() {\n return index;\n },\n\n get state() {\n return states[index];\n },\n\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({\n pathname: pathname,\n search: search.length ? \"?\" + search : search\n });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = {\n pathname: pathname,\n search: search\n };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\n\n\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate; ////////////////////////////////////////////////////////////////////////////////\n\nexports.globalHistory = globalHistory;\nexports.navigate = navigate;\nexports.createHistory = createHistory;\nexports.createMemorySource = createMemorySource;","\"use strict\";\n\nexports.__esModule = true;\nexports.shallowCompare = exports.validateRedirect = exports.insertParams = exports.resolve = exports.match = exports.pick = exports.startsWith = undefined;\n\nvar _invariant = require(\"invariant\");\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} ////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\n\n\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n}; ////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\n\n\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? (0, _invariant2.default)(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : (0, _invariant2.default)(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n}; ////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\n\n\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\n}; ////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\n\n\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname); // ?a=b, /users?b=c => /users?a=b\n\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n } // profile, /users/789 => /users/789/profile\n\n\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n } // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n\n\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n}; ////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar paramRe = /^:(.+)/;\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\n\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\n\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return {\n route: route,\n score: score,\n index: index\n };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\n\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n}; ////////////////////////////////////////////////////////////////////////////////\n\n\nexports.startsWith = startsWith;\nexports.pick = pick;\nexports.match = match;\nexports.resolve = resolve;\nexports.insertParams = insertParams;\nexports.validateRedirect = validateRedirect;\nexports.shallowCompare = shallowCompare;","'use strict';\n\nvar preserveCamelCase = function preserveCamelCase(string) {\n var isLastCharLower = false;\n var isLastCharUpper = false;\n var isLastLastCharUpper = false;\n\n for (var i = 0; i < string.length; i++) {\n var character = string[i];\n\n if (isLastCharLower && /[a-zA-Z]/.test(character) && character.toUpperCase() === character) {\n string = string.slice(0, i) + '-' + string.slice(i);\n isLastCharLower = false;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = true;\n i++;\n } else if (isLastCharUpper && isLastLastCharUpper && /[a-zA-Z]/.test(character) && character.toLowerCase() === character) {\n string = string.slice(0, i - 1) + '-' + string.slice(i - 1);\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = false;\n isLastCharLower = true;\n } else {\n isLastCharLower = character.toLowerCase() === character && character.toUpperCase() !== character;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = character.toUpperCase() === character && character.toLowerCase() !== character;\n }\n }\n\n return string;\n};\n\nvar camelCase = function camelCase(input, options) {\n if (!(typeof input === 'string' || Array.isArray(input))) {\n throw new TypeError('Expected the input to be `string | string[]`');\n }\n\n options = Object.assign({\n pascalCase: false\n }, options);\n\n var postProcess = function postProcess(x) {\n return options.pascalCase ? x.charAt(0).toUpperCase() + x.slice(1) : x;\n };\n\n if (Array.isArray(input)) {\n input = input.map(function (x) {\n return x.trim();\n }).filter(function (x) {\n return x.length;\n }).join('-');\n } else {\n input = input.trim();\n }\n\n if (input.length === 0) {\n return '';\n }\n\n if (input.length === 1) {\n return options.pascalCase ? input.toUpperCase() : input.toLowerCase();\n }\n\n var hasUpperCase = input !== input.toLowerCase();\n\n if (hasUpperCase) {\n input = preserveCamelCase(input);\n }\n\n input = input.replace(/^[_.\\- ]+/, '').toLowerCase().replace(/[_.\\- ]+(\\w|$)/g, function (_, p1) {\n return p1.toUpperCase();\n }).replace(/\\d+(\\w|$)/g, function (m) {\n return m.toUpperCase();\n });\n return postProcess(input);\n};\n\nmodule.exports = camelCase; // TODO: Remove this for the next major release\n\nmodule.exports.default = camelCase;","var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _templateObject = _taggedTemplateLiteral(['', ''], ['', '']);\n\nfunction _taggedTemplateLiteral(strings, raw) {\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n/**\n * @class TemplateTag\n * @classdesc Consumes a pipeline of composable transformer plugins and produces a template tag.\n */\n\n\nvar TemplateTag = function () {\n /**\n * constructs a template tag\n * @constructs TemplateTag\n * @param {...Object} [...transformers] - an array or arguments list of transformers\n * @return {Function} - a template tag\n */\n function TemplateTag() {\n var _this = this;\n\n for (var _len = arguments.length, transformers = Array(_len), _key = 0; _key < _len; _key++) {\n transformers[_key] = arguments[_key];\n }\n\n _classCallCheck(this, TemplateTag);\n\n this.tag = function (strings) {\n for (var _len2 = arguments.length, expressions = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n expressions[_key2 - 1] = arguments[_key2];\n }\n\n if (typeof strings === 'function') {\n // if the first argument passed is a function, assume it is a template tag and return\n // an intermediary tag that processes the template using the aforementioned tag, passing the\n // result to our tag\n return _this.interimTag.bind(_this, strings);\n }\n\n if (typeof strings === 'string') {\n // if the first argument passed is a string, just transform it\n return _this.transformEndResult(strings);\n } // else, return a transformed end result of processing the template with our tag\n\n\n strings = strings.map(_this.transformString.bind(_this));\n return _this.transformEndResult(strings.reduce(_this.processSubstitutions.bind(_this, expressions)));\n }; // if first argument is an array, extrude it as a list of transformers\n\n\n if (transformers.length > 0 && Array.isArray(transformers[0])) {\n transformers = transformers[0];\n } // if any transformers are functions, this means they are not initiated - automatically initiate them\n\n\n this.transformers = transformers.map(function (transformer) {\n return typeof transformer === 'function' ? transformer() : transformer;\n }); // return an ES2015 template tag\n\n return this.tag;\n }\n /**\n * Applies all transformers to a template literal tagged with this method.\n * If a function is passed as the first argument, assumes the function is a template tag\n * and applies it to the template, returning a template tag.\n * @param {(Function|String|Array)} strings - Either a template tag or an array containing template strings separated by identifier\n * @param {...*} ...expressions - Optional list of substitution values.\n * @return {(String|Function)} - Either an intermediary tag function or the results of processing the template.\n */\n\n\n _createClass(TemplateTag, [{\n key: 'interimTag',\n\n /**\n * An intermediary template tag that receives a template tag and passes the result of calling the template with the received\n * template tag to our own template tag.\n * @param {Function} nextTag - the received template tag\n * @param {Array} template - the template to process\n * @param {...*} ...substitutions - `substitutions` is an array of all substitutions in the template\n * @return {*} - the final processed value\n */\n value: function interimTag(previousTag, template) {\n for (var _len3 = arguments.length, substitutions = Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n substitutions[_key3 - 2] = arguments[_key3];\n }\n\n return this.tag(_templateObject, previousTag.apply(undefined, [template].concat(substitutions)));\n }\n /**\n * Performs bulk processing on the tagged template, transforming each substitution and then\n * concatenating the resulting values into a string.\n * @param {Array<*>} substitutions - an array of all remaining substitutions present in this template\n * @param {String} resultSoFar - this iteration's result string so far\n * @param {String} remainingPart - the template chunk after the current substitution\n * @return {String} - the result of joining this iteration's processed substitution with the result\n */\n\n }, {\n key: 'processSubstitutions',\n value: function processSubstitutions(substitutions, resultSoFar, remainingPart) {\n var substitution = this.transformSubstitution(substitutions.shift(), resultSoFar);\n return ''.concat(resultSoFar, substitution, remainingPart);\n }\n /**\n * Iterate through each transformer, applying the transformer's `onString` method to the template\n * strings before all substitutions are processed.\n * @param {String} str - The input string\n * @return {String} - The final results of processing each transformer\n */\n\n }, {\n key: 'transformString',\n value: function transformString(str) {\n var cb = function cb(res, transform) {\n return transform.onString ? transform.onString(res) : res;\n };\n\n return this.transformers.reduce(cb, str);\n }\n /**\n * When a substitution is encountered, iterates through each transformer and applies the transformer's\n * `onSubstitution` method to the substitution.\n * @param {*} substitution - The current substitution\n * @param {String} resultSoFar - The result up to and excluding this substitution.\n * @return {*} - The final result of applying all substitution transformations.\n */\n\n }, {\n key: 'transformSubstitution',\n value: function transformSubstitution(substitution, resultSoFar) {\n var cb = function cb(res, transform) {\n return transform.onSubstitution ? transform.onSubstitution(res, resultSoFar) : res;\n };\n\n return this.transformers.reduce(cb, substitution);\n }\n /**\n * Iterates through each transformer, applying the transformer's `onEndResult` method to the\n * template literal after all substitutions have finished processing.\n * @param {String} endResult - The processed template, just before it is returned from the tag\n * @return {String} - The final results of processing each transformer\n */\n\n }, {\n key: 'transformEndResult',\n value: function transformEndResult(endResult) {\n var cb = function cb(res, transform) {\n return transform.onEndResult ? transform.onEndResult(res) : res;\n };\n\n return this.transformers.reduce(cb, endResult);\n }\n }]);\n\n return TemplateTag;\n}();\n\nexport default TemplateTag;","var defaults = {\n separator: '',\n conjunction: '',\n serial: false\n};\n/**\n * Converts an array substitution to a string containing a list\n * @param {String} [opts.separator = ''] - the character that separates each item\n * @param {String} [opts.conjunction = ''] - replace the last separator with this\n * @param {Boolean} [opts.serial = false] - include the separator before the conjunction? (Oxford comma use-case)\n *\n * @return {Object} - a TemplateTag transformer\n */\n\nvar inlineArrayTransformer = function inlineArrayTransformer() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaults;\n return {\n onSubstitution: function onSubstitution(substitution, resultSoFar) {\n // only operate on arrays\n if (Array.isArray(substitution)) {\n var arrayLength = substitution.length;\n var separator = opts.separator;\n var conjunction = opts.conjunction;\n var serial = opts.serial; // join each item in the array into a string where each item is separated by separator\n // be sure to maintain indentation\n\n var indent = resultSoFar.match(/(\\n?[^\\S\\n]+)$/);\n\n if (indent) {\n substitution = substitution.join(separator + indent[1]);\n } else {\n substitution = substitution.join(separator + ' ');\n } // if conjunction is set, replace the last separator with conjunction, but only if there is more than one substitution\n\n\n if (conjunction && arrayLength > 1) {\n var separatorIndex = substitution.lastIndexOf(separator);\n substitution = substitution.slice(0, separatorIndex) + (serial ? separator : '') + ' ' + conjunction + substitution.slice(separatorIndex + 1);\n }\n }\n\n return substitution;\n }\n };\n};\n\nexport default inlineArrayTransformer;","function _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\n/**\n * strips indentation from a template literal\n * @param {String} type = 'initial' - whether to remove all indentation or just leading indentation. can be 'all' or 'initial'\n * @return {Object} - a TemplateTag transformer\n */\n\n\nvar stripIndentTransformer = function stripIndentTransformer() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'initial';\n return {\n onEndResult: function onEndResult(endResult) {\n if (type === 'initial') {\n // remove the shortest leading indentation from each line\n var match = endResult.match(/^[^\\S\\n]*(?=\\S)/gm);\n var indent = match && Math.min.apply(Math, _toConsumableArray(match.map(function (el) {\n return el.length;\n })));\n\n if (indent) {\n var regexp = new RegExp('^.{' + indent + '}', 'gm');\n return endResult.replace(regexp, '');\n }\n\n return endResult;\n }\n\n if (type === 'all') {\n // remove all indentation from each line\n return endResult.replace(/^[^\\S\\n]+/gm, '');\n }\n\n throw new Error('Unknown type: ' + type);\n }\n };\n};\n\nexport default stripIndentTransformer;","/**\n * TemplateTag transformer that trims whitespace on the end result of a tagged template\n * @param {String} side = '' - The side of the string to trim. Can be 'start' or 'end' (alternatively 'left' or 'right')\n * @return {Object} - a TemplateTag transformer\n */\nvar trimResultTransformer = function trimResultTransformer() {\n var side = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return {\n onEndResult: function onEndResult(endResult) {\n if (side === '') {\n return endResult.trim();\n }\n\n side = side.toLowerCase();\n\n if (side === 'start' || side === 'left') {\n return endResult.replace(/^\\s*/, '');\n }\n\n if (side === 'end' || side === 'right') {\n return endResult.replace(/\\s*$/, '');\n }\n\n throw new Error('Side not supported: ' + side);\n }\n };\n};\n\nexport default trimResultTransformer;","var splitStringTransformer = function splitStringTransformer(splitBy) {\n return {\n onSubstitution: function onSubstitution(substitution, resultSoFar) {\n if (splitBy != null && typeof splitBy === 'string') {\n if (typeof substitution === 'string' && substitution.includes(splitBy)) {\n substitution = substitution.split(splitBy);\n }\n } else {\n throw new Error('You need to specify a string character to split by.');\n }\n\n return substitution;\n }\n };\n};\n\nexport default splitStringTransformer;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar commaLists = new TemplateTag(inlineArrayTransformer({\n separator: ','\n}), stripIndentTransformer, trimResultTransformer);\nexport default commaLists;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar commaListsAnd = new TemplateTag(inlineArrayTransformer({\n separator: ',',\n conjunction: 'and'\n}), stripIndentTransformer, trimResultTransformer);\nexport default commaListsAnd;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar commaListsOr = new TemplateTag(inlineArrayTransformer({\n separator: ',',\n conjunction: 'or'\n}), stripIndentTransformer, trimResultTransformer);\nexport default commaListsOr;","var isValidValue = function isValidValue(x) {\n return x != null && !Number.isNaN(x) && typeof x !== 'boolean';\n};\n\nvar removeNonPrintingValuesTransformer = function removeNonPrintingValuesTransformer() {\n return {\n onSubstitution: function onSubstitution(substitution) {\n if (Array.isArray(substitution)) {\n return substitution.filter(isValidValue);\n }\n\n if (isValidValue(substitution)) {\n return substitution;\n }\n\n return '';\n }\n };\n};\n\nexport default removeNonPrintingValuesTransformer;","var replaceSubstitutionTransformer = function replaceSubstitutionTransformer(replaceWhat, replaceWith) {\n return {\n onSubstitution: function onSubstitution(substitution, resultSoFar) {\n if (replaceWhat == null || replaceWith == null) {\n throw new Error('replaceSubstitutionTransformer requires at least 2 arguments.');\n } // Do not touch if null or undefined\n\n\n if (substitution == null) {\n return substitution;\n } else {\n return substitution.toString().replace(replaceWhat, replaceWith);\n }\n }\n };\n};\n\nexport default replaceSubstitutionTransformer;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport splitStringTransformer from '../splitStringTransformer';\nimport removeNonPrintingValuesTransformer from '../removeNonPrintingValuesTransformer';\nvar html = new TemplateTag(splitStringTransformer('\\n'), removeNonPrintingValuesTransformer, inlineArrayTransformer, stripIndentTransformer, trimResultTransformer);\nexport default html;","/**\n * Replaces tabs, newlines and spaces with the chosen value when they occur in sequences\n * @param {(String|RegExp)} replaceWhat - the value or pattern that should be replaced\n * @param {*} replaceWith - the replacement value\n * @return {Object} - a TemplateTag transformer\n */\nvar replaceResultTransformer = function replaceResultTransformer(replaceWhat, replaceWith) {\n return {\n onEndResult: function onEndResult(endResult) {\n if (replaceWhat == null || replaceWith == null) {\n throw new Error('replaceResultTransformer requires at least 2 arguments.');\n }\n\n return endResult.replace(replaceWhat, replaceWith);\n }\n };\n};\n\nexport default replaceResultTransformer;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport splitStringTransformer from '../splitStringTransformer';\nimport replaceSubstitutionTransformer from '../replaceSubstitutionTransformer';\nvar safeHtml = new TemplateTag(splitStringTransformer('\\n'), inlineArrayTransformer, stripIndentTransformer, trimResultTransformer, replaceSubstitutionTransformer(/&/g, '&'), replaceSubstitutionTransformer(//g, '>'), replaceSubstitutionTransformer(/\"/g, '"'), replaceSubstitutionTransformer(/'/g, '''), replaceSubstitutionTransformer(/`/g, '`'));\nexport default safeHtml;","import TemplateTag from '../TemplateTag';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLine = new TemplateTag(replaceResultTransformer(/(?:\\n(?:\\s*))+/g, ' '), trimResultTransformer);\nexport default oneLine;","import TemplateTag from '../TemplateTag';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineTrim = new TemplateTag(replaceResultTransformer(/(?:\\n\\s*)/g, ''), trimResultTransformer);\nexport default oneLineTrim;","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineCommaLists = new TemplateTag(inlineArrayTransformer({\n separator: ','\n}), replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\nexport default oneLineCommaLists;","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineCommaListsOr = new TemplateTag(inlineArrayTransformer({\n separator: ',',\n conjunction: 'or'\n}), replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\nexport default oneLineCommaListsOr;","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineCommaListsAnd = new TemplateTag(inlineArrayTransformer({\n separator: ',',\n conjunction: 'and'\n}), replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\nexport default oneLineCommaListsAnd;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar inlineLists = new TemplateTag(inlineArrayTransformer, stripIndentTransformer, trimResultTransformer);\nexport default inlineLists;","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineInlineLists = new TemplateTag(inlineArrayTransformer, replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\nexport default oneLineInlineLists;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar stripIndent = new TemplateTag(stripIndentTransformer, trimResultTransformer);\nexport default stripIndent;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar stripIndents = new TemplateTag(stripIndentTransformer('all'), trimResultTransformer);\nexport default stripIndents;","'use strict';\n\nvar matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\n\nmodule.exports = function (str) {\n if (typeof str !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n return str.replace(matchOperatorsRe, '\\\\$&');\n};","\"use strict\";\n\nmodule.exports = Object.assign;","// Generated by CoffeeScript 1.12.2\n(function () {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if (typeof performance !== \"undefined\" && performance !== null && performance.now) {\n module.exports = function () {\n return performance.now();\n };\n } else if (typeof process !== \"undefined\" && process !== null && process.hrtime) {\n module.exports = function () {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n\n hrtime = process.hrtime;\n\n getNanoSeconds = function getNanoSeconds() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function () {\n return Date.now() - loadTime;\n };\n\n loadTime = Date.now();\n } else {\n module.exports = function () {\n return new Date().getTime() - loadTime;\n };\n\n loadTime = new Date().getTime();\n }\n}).call(this);","var now = require('performance-now'),\n root = typeof window === 'undefined' ? global : window,\n vendors = ['moz', 'webkit'],\n suffix = 'AnimationFrame',\n raf = root['request' + suffix],\n caf = root['cancel' + suffix] || root['cancelRequest' + suffix];\n\nfor (var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix];\n caf = root[vendors[i] + 'Cancel' + suffix] || root[vendors[i] + 'CancelRequest' + suffix];\n} // Some versions of FF have rAF but not cAF\n\n\nif (!raf || !caf) {\n var last = 0,\n id = 0,\n queue = [],\n frameDuration = 1000 / 60;\n\n raf = function raf(callback) {\n if (queue.length === 0) {\n var _now = now(),\n next = Math.max(0, frameDuration - (_now - last));\n\n last = next + _now;\n setTimeout(function () {\n var cp = queue.slice(0); // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n\n queue.length = 0;\n\n for (var i = 0; i < cp.length; i++) {\n if (!cp[i].cancelled) {\n try {\n cp[i].callback(last);\n } catch (e) {\n setTimeout(function () {\n throw e;\n }, 0);\n }\n }\n }\n }, Math.round(next));\n }\n\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n });\n return id;\n };\n\n caf = function caf(handle) {\n for (var i = 0; i < queue.length; i++) {\n if (queue[i].handle === handle) {\n queue[i].cancelled = true;\n }\n }\n };\n}\n\nmodule.exports = function (fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn);\n};\n\nmodule.exports.cancel = function () {\n caf.apply(root, arguments);\n};\n\nmodule.exports.polyfill = function (object) {\n if (!object) {\n object = root;\n }\n\n object.requestAnimationFrame = raf;\n object.cancelAnimationFrame = caf;\n};","// easing functions from \"Tween.js\"\nexports.linear = function (n) {\n return n;\n};\n\nexports.inQuad = function (n) {\n return n * n;\n};\n\nexports.outQuad = function (n) {\n return n * (2 - n);\n};\n\nexports.inOutQuad = function (n) {\n n *= 2;\n if (n < 1) return 0.5 * n * n;\n return -0.5 * (--n * (n - 2) - 1);\n};\n\nexports.inCube = function (n) {\n return n * n * n;\n};\n\nexports.outCube = function (n) {\n return --n * n * n + 1;\n};\n\nexports.inOutCube = function (n) {\n n *= 2;\n if (n < 1) return 0.5 * n * n * n;\n return 0.5 * ((n -= 2) * n * n + 2);\n};\n\nexports.inQuart = function (n) {\n return n * n * n * n;\n};\n\nexports.outQuart = function (n) {\n return 1 - --n * n * n * n;\n};\n\nexports.inOutQuart = function (n) {\n n *= 2;\n if (n < 1) return 0.5 * n * n * n * n;\n return -0.5 * ((n -= 2) * n * n * n - 2);\n};\n\nexports.inQuint = function (n) {\n return n * n * n * n * n;\n};\n\nexports.outQuint = function (n) {\n return --n * n * n * n * n + 1;\n};\n\nexports.inOutQuint = function (n) {\n n *= 2;\n if (n < 1) return 0.5 * n * n * n * n * n;\n return 0.5 * ((n -= 2) * n * n * n * n + 2);\n};\n\nexports.inSine = function (n) {\n return 1 - Math.cos(n * Math.PI / 2);\n};\n\nexports.outSine = function (n) {\n return Math.sin(n * Math.PI / 2);\n};\n\nexports.inOutSine = function (n) {\n return .5 * (1 - Math.cos(Math.PI * n));\n};\n\nexports.inExpo = function (n) {\n return 0 == n ? 0 : Math.pow(1024, n - 1);\n};\n\nexports.outExpo = function (n) {\n return 1 == n ? n : 1 - Math.pow(2, -10 * n);\n};\n\nexports.inOutExpo = function (n) {\n if (0 == n) return 0;\n if (1 == n) return 1;\n if ((n *= 2) < 1) return .5 * Math.pow(1024, n - 1);\n return .5 * (-Math.pow(2, -10 * (n - 1)) + 2);\n};\n\nexports.inCirc = function (n) {\n return 1 - Math.sqrt(1 - n * n);\n};\n\nexports.outCirc = function (n) {\n return Math.sqrt(1 - --n * n);\n};\n\nexports.inOutCirc = function (n) {\n n *= 2;\n if (n < 1) return -0.5 * (Math.sqrt(1 - n * n) - 1);\n return 0.5 * (Math.sqrt(1 - (n -= 2) * n) + 1);\n};\n\nexports.inBack = function (n) {\n var s = 1.70158;\n return n * n * ((s + 1) * n - s);\n};\n\nexports.outBack = function (n) {\n var s = 1.70158;\n return --n * n * ((s + 1) * n + s) + 1;\n};\n\nexports.inOutBack = function (n) {\n var s = 1.70158 * 1.525;\n if ((n *= 2) < 1) return 0.5 * (n * n * ((s + 1) * n - s));\n return 0.5 * ((n -= 2) * n * ((s + 1) * n + s) + 2);\n};\n\nexports.inBounce = function (n) {\n return 1 - exports.outBounce(1 - n);\n};\n\nexports.outBounce = function (n) {\n if (n < 1 / 2.75) {\n return 7.5625 * n * n;\n } else if (n < 2 / 2.75) {\n return 7.5625 * (n -= 1.5 / 2.75) * n + 0.75;\n } else if (n < 2.5 / 2.75) {\n return 7.5625 * (n -= 2.25 / 2.75) * n + 0.9375;\n } else {\n return 7.5625 * (n -= 2.625 / 2.75) * n + 0.984375;\n }\n};\n\nexports.inOutBounce = function (n) {\n if (n < .5) return exports.inBounce(n * 2) * .5;\n return exports.outBounce(n * 2 - 1) * .5 + .5;\n};\n\nexports.inElastic = function (n) {\n var s,\n a = 0.1,\n p = 0.4;\n if (n === 0) return 0;\n if (n === 1) return 1;\n\n if (!a || a < 1) {\n a = 1;\n s = p / 4;\n } else s = p * Math.asin(1 / a) / (2 * Math.PI);\n\n return -(a * Math.pow(2, 10 * (n -= 1)) * Math.sin((n - s) * (2 * Math.PI) / p));\n};\n\nexports.outElastic = function (n) {\n var s,\n a = 0.1,\n p = 0.4;\n if (n === 0) return 0;\n if (n === 1) return 1;\n\n if (!a || a < 1) {\n a = 1;\n s = p / 4;\n } else s = p * Math.asin(1 / a) / (2 * Math.PI);\n\n return a * Math.pow(2, -10 * n) * Math.sin((n - s) * (2 * Math.PI) / p) + 1;\n};\n\nexports.inOutElastic = function (n) {\n var s,\n a = 0.1,\n p = 0.4;\n if (n === 0) return 0;\n if (n === 1) return 1;\n\n if (!a || a < 1) {\n a = 1;\n s = p / 4;\n } else s = p * Math.asin(1 / a) / (2 * Math.PI);\n\n if ((n *= 2) < 1) return -0.5 * (a * Math.pow(2, 10 * (n -= 1)) * Math.sin((n - s) * (2 * Math.PI) / p));\n return a * Math.pow(2, -10 * (n -= 1)) * Math.sin((n - s) * (2 * Math.PI) / p) * 0.5 + 1;\n}; // aliases\n\n\nexports['in-quad'] = exports.inQuad;\nexports['out-quad'] = exports.outQuad;\nexports['in-out-quad'] = exports.inOutQuad;\nexports['in-cube'] = exports.inCube;\nexports['out-cube'] = exports.outCube;\nexports['in-out-cube'] = exports.inOutCube;\nexports['in-quart'] = exports.inQuart;\nexports['out-quart'] = exports.outQuart;\nexports['in-out-quart'] = exports.inOutQuart;\nexports['in-quint'] = exports.inQuint;\nexports['out-quint'] = exports.outQuint;\nexports['in-out-quint'] = exports.inOutQuint;\nexports['in-sine'] = exports.inSine;\nexports['out-sine'] = exports.outSine;\nexports['in-out-sine'] = exports.inOutSine;\nexports['in-expo'] = exports.inExpo;\nexports['out-expo'] = exports.outExpo;\nexports['in-out-expo'] = exports.inOutExpo;\nexports['in-circ'] = exports.inCirc;\nexports['out-circ'] = exports.outCirc;\nexports['in-out-circ'] = exports.inOutCirc;\nexports['in-back'] = exports.inBack;\nexports['out-back'] = exports.outBack;\nexports['in-out-back'] = exports.inOutBack;\nexports['in-bounce'] = exports.inBounce;\nexports['out-bounce'] = exports.outBounce;\nexports['in-out-bounce'] = exports.inOutBounce;\nexports['in-elastic'] = exports.inElastic;\nexports['out-elastic'] = exports.outElastic;\nexports['in-out-elastic'] = exports.inOutElastic;","function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n;\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n\n return obj;\n}\n\nEmitter.prototype.on = Emitter.prototype.addEventListener = function (event, fn) {\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || []).push(fn);\n return this;\n};\n\nEmitter.prototype.once = function (event, fn) {\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\nEmitter.prototype.off = Emitter.prototype.removeListener = Emitter.prototype.removeAllListeners = Emitter.prototype.removeEventListener = function (event, fn) {\n this._callbacks = this._callbacks || {}; // all\n\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n } // specific event\n\n\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this; // remove all handlers\n\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n } // remove specific handler\n\n\n var cb;\n\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n } // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n\n\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\nEmitter.prototype.emit = function (event) {\n this._callbacks = this._callbacks || {};\n var args = [].slice.call(arguments, 1),\n callbacks = this._callbacks['$' + event];\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\nEmitter.prototype.listeners = function (event) {\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\nEmitter.prototype.hasListeners = function (event) {\n return !!this.listeners(event).length;\n};\n\nif (typeof module !== 'undefined') {\n module.exports = Emitter;\n}","var scroll = require('./scroll-to');\n\nfunction calculateScrollOffset(elem, additionalOffset, alignment) {\n var body = document.body,\n html = document.documentElement;\n var elemRect = elem.getBoundingClientRect();\n var clientHeight = html.clientHeight;\n var documentHeight = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n additionalOffset = additionalOffset || 0;\n var scrollPosition;\n\n if (alignment === 'bottom') {\n scrollPosition = elemRect.bottom - clientHeight;\n } else if (alignment === 'middle') {\n scrollPosition = elemRect.bottom - clientHeight / 2 - elemRect.height / 2;\n } else {\n // top and default\n scrollPosition = elemRect.top;\n }\n\n var maxScrollPosition = documentHeight - clientHeight;\n return Math.min(scrollPosition + additionalOffset + window.pageYOffset, maxScrollPosition);\n}\n\nmodule.exports = function (elem, options) {\n options = options || {};\n if (typeof elem === 'string') elem = document.querySelector(elem);\n if (elem) return scroll(0, calculateScrollOffset(elem, options.offset, options.align), options);\n};","var Tween = require('./tween');\n\nvar raf = require('raf');\n\nfunction scroll() {\n var y = window.pageYOffset || document.documentElement.scrollTop;\n var x = window.pageXOffset || document.documentElement.scrollLeft;\n return {\n top: y,\n left: x\n };\n}\n\nfunction scrollTo(x, y, options) {\n options = options || {}; // start position\n\n var start = scroll(); // setup tween\n\n var tween = Tween(start).ease(options.ease || 'out-circ').to({\n top: y,\n left: x\n }).duration(options.duration || 1000); // scroll\n\n tween.update(function (o) {\n window.scrollTo(o.left | 0, o.top | 0);\n }); // handle end\n\n tween.on('end', function () {\n animate = function animate() {};\n }); // animate\n\n function animate() {\n raf(animate);\n tween.update();\n }\n\n animate();\n return tween;\n}\n\nmodule.exports = scrollTo;","var ease = require('./ease');\n\nvar Emitter = require('./emitter');\n\nfunction extend(obj, src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) obj[key] = src[key];\n }\n\n return obj;\n}\n\nfunction Tween(obj) {\n if (!(this instanceof Tween)) return new Tween(obj);\n this._from = obj;\n this.ease('linear');\n this.duration(500);\n}\n\nEmitter(Tween.prototype);\n\nTween.prototype.reset = function () {\n this.isArray = Object.prototype.toString.call(this._from) === '[object Array]';\n this._curr = extend({}, this._from);\n this._done = false;\n this._start = Date.now();\n return this;\n};\n\nTween.prototype.to = function (obj) {\n this.reset();\n this._to = obj;\n return this;\n};\n\nTween.prototype.duration = function (ms) {\n this._duration = ms;\n return this;\n};\n\nTween.prototype.ease = function (fn) {\n fn = 'function' == typeof fn ? fn : ease[fn];\n if (!fn) throw new TypeError('invalid easing function');\n this._ease = fn;\n return this;\n};\n\nTween.prototype.stop = function () {\n this.stopped = true;\n this._done = true;\n this.emit('stop');\n this.emit('end');\n return this;\n};\n\nTween.prototype.step = function () {\n if (this._done) return;\n var duration = this._duration;\n var now = Date.now();\n var delta = now - this._start;\n var done = delta >= duration;\n\n if (done) {\n this._from = this._to;\n\n this._update(this._to);\n\n this._done = true;\n this.emit('end');\n return this;\n }\n\n var from = this._from;\n var to = this._to;\n var curr = this._curr;\n var fn = this._ease;\n var p = (now - this._start) / duration;\n var n = fn(p);\n\n if (this.isArray) {\n for (var i = 0; i < from.length; ++i) {\n curr[i] = from[i] + (to[i] - from[i]) * n;\n }\n\n this._update(curr);\n\n return this;\n }\n\n for (var k in from) {\n curr[k] = from[k] + (to[k] - from[k]) * n;\n }\n\n this._update(curr);\n\n return this;\n};\n\nTween.prototype.update = function (fn) {\n if (0 == arguments.length) return this.step();\n this._update = fn;\n return this;\n};\n\nmodule.exports = Tween;","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) {\n if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || from);\n}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\n\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.withPrefix = withPrefix;\nexports.withAssetPrefix = withAssetPrefix;\nexports.navigate = exports.default = void 0;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nvar _utils = require(\"@gatsbyjs/reach-router/lib/utils\");\n\nvar _parsePath = require(\"./parse-path\");\n\nexports.parsePath = _parsePath.parsePath;\nvar _excluded = [\"to\", \"getProps\", \"onClick\", \"onMouseEnter\", \"activeClassName\", \"activeStyle\", \"innerRef\", \"partiallyActive\", \"state\", \"replace\", \"_location\"];\n\nvar isAbsolutePath = function isAbsolutePath(path) {\n return path === null || path === void 0 ? void 0 : path.startsWith(\"/\");\n};\n\nfunction withPrefix(path, prefix) {\n var _ref, _prefix;\n\n if (prefix === void 0) {\n prefix = getGlobalBasePrefix();\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n if (path.startsWith(\"./\") || path.startsWith(\"../\")) {\n return path;\n }\n\n var base = (_ref = (_prefix = prefix) !== null && _prefix !== void 0 ? _prefix : getGlobalPathPrefix()) !== null && _ref !== void 0 ? _ref : \"/\";\n return \"\" + (base !== null && base !== void 0 && base.endsWith(\"/\") ? base.slice(0, -1) : base) + (path.startsWith(\"/\") ? path : \"/\" + path);\n} // These global values are wrapped in typeof clauses to ensure the values exist.\n// This is especially problematic in unit testing of this component.\n\n\nvar getGlobalPathPrefix = function getGlobalPathPrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __PATH_PREFIX__ !== \"undefined\" ? __PATH_PREFIX__ : undefined : __PATH_PREFIX__;\n};\n\nvar getGlobalBasePrefix = function getGlobalBasePrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __BASE_PATH__ !== \"undefined\" ? __BASE_PATH__ : undefined : __BASE_PATH__;\n};\n\nvar isLocalLink = function isLocalLink(path) {\n return path && !path.startsWith(\"http://\") && !path.startsWith(\"https://\") && !path.startsWith(\"//\");\n};\n\nfunction withAssetPrefix(path) {\n return withPrefix(path, getGlobalPathPrefix());\n}\n\nfunction absolutify(path, current) {\n // If it's already absolute, return as-is\n if (isAbsolutePath(path)) {\n return path;\n }\n\n return (0, _utils.resolve)(path, current);\n}\n\nvar rewriteLinkPath = function rewriteLinkPath(path, relativeTo) {\n if (typeof path === \"number\") {\n return path;\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n return isAbsolutePath(path) ? withPrefix(path) : absolutify(path, relativeTo);\n};\n\nvar NavLinkPropTypes = {\n activeClassName: _propTypes.default.string,\n activeStyle: _propTypes.default.object,\n partiallyActive: _propTypes.default.bool\n}; // Set up IntersectionObserver\n\nvar createIntersectionObserver = function createIntersectionObserver(el, cb) {\n var io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (el === entry.target) {\n // Check if element is within viewport, remove listener, destroy observer, and run link callback.\n // MSEdge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(el);\n io.disconnect();\n cb();\n }\n }\n });\n }); // Add element to the observer\n\n io.observe(el);\n return {\n instance: io,\n el: el\n };\n};\n\nfunction GatsbyLinkLocationWrapper(props) {\n return /*#__PURE__*/_react.default.createElement(_reachRouter.Location, null, function (_ref2) {\n var location = _ref2.location;\n return /*#__PURE__*/_react.default.createElement(GatsbyLink, (0, _extends2.default)({}, props, {\n _location: location\n }));\n });\n}\n\nvar GatsbyLink = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(GatsbyLink, _React$Component);\n\n function GatsbyLink(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // Default to no support for IntersectionObserver\n\n _this.defaultGetProps = function (_ref3) {\n var isPartiallyCurrent = _ref3.isPartiallyCurrent,\n isCurrent = _ref3.isCurrent;\n\n if (_this.props.partiallyActive ? isPartiallyCurrent : isCurrent) {\n return {\n className: [_this.props.className, _this.props.activeClassName].filter(Boolean).join(\" \"),\n style: (0, _extends2.default)({}, _this.props.style, _this.props.activeStyle)\n };\n }\n\n return null;\n };\n\n var IOSupported = false;\n\n if (typeof window !== \"undefined\" && window.IntersectionObserver) {\n IOSupported = true;\n }\n\n _this.state = {\n IOSupported: IOSupported\n };\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = GatsbyLink.prototype;\n\n _proto._prefetch = function _prefetch() {\n var currentPath = window.location.pathname; // reach router should have the correct state\n\n if (this.props._location && this.props._location.pathname) {\n currentPath = this.props._location.pathname;\n }\n\n var rewrittenPath = rewriteLinkPath(this.props.to, currentPath);\n var newPathName = (0, _parsePath.parsePath)(rewrittenPath).pathname; // Prefech is used to speed up next navigations. When you use it on the current navigation,\n // there could be a race-condition where Chrome uses the stale data instead of waiting for the network to complete\n\n if (currentPath !== newPathName) {\n ___loader.enqueue(newPathName);\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // Preserve non IO functionality if no support\n if (this.props.to !== prevProps.to && !this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n // Preserve non IO functionality if no support\n if (!this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (!this.io) {\n return;\n }\n\n var _this$io = this.io,\n instance = _this$io.instance,\n el = _this$io.el;\n instance.unobserve(el);\n instance.disconnect();\n };\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.props.innerRef && this.props.innerRef.hasOwnProperty(\"current\")) {\n this.props.innerRef.current = ref;\n } else if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n\n if (this.state.IOSupported && ref) {\n // If IO supported and element reference found, setup Observer functionality\n this.io = createIntersectionObserver(ref, function () {\n _this2._prefetch();\n });\n }\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _this$props = this.props,\n to = _this$props.to,\n _this$props$getProps = _this$props.getProps,\n getProps = _this$props$getProps === void 0 ? this.defaultGetProps : _this$props$getProps,\n _onClick = _this$props.onClick,\n _onMouseEnter = _this$props.onMouseEnter,\n $activeClassName = _this$props.activeClassName,\n $activeStyle = _this$props.activeStyle,\n $innerRef = _this$props.innerRef,\n partiallyActive = _this$props.partiallyActive,\n state = _this$props.state,\n replace = _this$props.replace,\n _location = _this$props._location,\n rest = (0, _objectWithoutPropertiesLoose2.default)(_this$props, _excluded);\n\n if (process.env.NODE_ENV !== \"production\" && !isLocalLink(to)) {\n console.warn(\"External link \" + to + \" was detected in a Link component. Use the Link component only for internal links. See: https://gatsby.dev/internal-links\");\n }\n\n var prefixedTo = rewriteLinkPath(to, _location.pathname);\n\n if (!isLocalLink(prefixedTo)) {\n return /*#__PURE__*/_react.default.createElement(\"a\", (0, _extends2.default)({\n href: prefixedTo\n }, rest));\n }\n\n return /*#__PURE__*/_react.default.createElement(_reachRouter.Link, (0, _extends2.default)({\n to: prefixedTo,\n state: state,\n getProps: getProps,\n innerRef: this.handleRef,\n onMouseEnter: function onMouseEnter(e) {\n if (_onMouseEnter) {\n _onMouseEnter(e);\n }\n\n ___loader.hovering((0, _parsePath.parsePath)(prefixedTo).pathname);\n },\n onClick: function onClick(e) {\n if (_onClick) {\n _onClick(e);\n }\n\n if (e.button === 0 && // ignore right clicks\n !_this3.props.target && // let browser handle \"target=_blank\"\n !e.defaultPrevented && // onClick prevented default\n !e.metaKey && // ignore clicks with modifier keys...\n !e.altKey && !e.ctrlKey && !e.shiftKey) {\n e.preventDefault();\n var shouldReplace = replace;\n\n var isCurrent = encodeURI(prefixedTo) === _location.pathname;\n\n if (typeof replace !== \"boolean\" && isCurrent) {\n shouldReplace = true;\n } // Make sure the necessary scripts and data are\n // loaded before continuing.\n\n\n window.___navigate(prefixedTo, {\n state: state,\n replace: shouldReplace\n });\n }\n\n return true;\n }\n }, rest));\n };\n\n return GatsbyLink;\n}(_react.default.Component);\n\nGatsbyLink.propTypes = (0, _extends2.default)({}, NavLinkPropTypes, {\n onClick: _propTypes.default.func,\n to: _propTypes.default.string.isRequired,\n replace: _propTypes.default.bool,\n state: _propTypes.default.object\n});\n\nvar _default = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n return /*#__PURE__*/_react.default.createElement(GatsbyLinkLocationWrapper, (0, _extends2.default)({\n innerRef: ref\n }, props));\n});\n\nexports.default = _default;\n\nvar navigate = function navigate(to, options) {\n window.___navigate(rewriteLinkPath(to, window.location.pathname), options);\n};\n\nexports.navigate = navigate;","\"use strict\";\n\nexports.__esModule = true;\nexports.parsePath = parsePath;\n\nfunction parsePath(path) {\n var pathname = path || \"/\";\n var search = \"\";\n var hash = \"\";\n var hashIndex = pathname.indexOf(\"#\");\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf(\"?\");\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === \"?\" ? \"\" : search,\n hash: hash === \"#\" ? \"\" : hash\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nexports.ScrollContext = _scrollHandler.ScrollHandler;\n\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\n\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sessionStorage = require(\"./session-storage\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\n\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n\n function ScrollHandler() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing this._stateStorage.\n\n\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n\n return _this;\n }\n\n var _proto = ScrollHandler.prototype;\n\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n\n this._isTicking = false;\n };\n\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n } else if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n\n return ScrollHandler;\n}(React.Component);\n\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\n\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n\n var _proto = SessionStorage.prototype;\n\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n\n return 0;\n }\n };\n\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n\n return SessionStorage;\n}();\n\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _react = require(\"react\");\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","// prefer default export if available\nconst preferDefault = m => (m && m.default) || m\n\nexports.components = {\n \"component---src-modules-article-index-tsx\": () => import(\"./../../../src/modules/article/index.tsx\" /* webpackChunkName: \"component---src-modules-article-index-tsx\" */),\n \"component---src-modules-design-de-solucoes-index-tsx\": () => import(\"./../../../src/modules/design-de-solucoes/index.tsx\" /* webpackChunkName: \"component---src-modules-design-de-solucoes-index-tsx\" */),\n \"component---src-modules-dpc-index-tsx\": () => import(\"./../../../src/modules/dpc/index.tsx\" /* webpackChunkName: \"component---src-modules-dpc-index-tsx\" */),\n \"component---src-modules-ene-academy-index-tsx\": () => import(\"./../../../src/modules/ene-academy/index.tsx\" /* webpackChunkName: \"component---src-modules-ene-academy-index-tsx\" */),\n \"component---src-modules-politicas-de-privacidade-index-tsx\": () => import(\"./../../../src/modules/politicas-de-privacidade/index.tsx\" /* webpackChunkName: \"component---src-modules-politicas-de-privacidade-index-tsx\" */),\n \"component---src-modules-qualidade-de-software-index-tsx\": () => import(\"./../../../src/modules/qualidade-de-software/index.tsx\" /* webpackChunkName: \"component---src-modules-qualidade-de-software-index-tsx\" */),\n \"component---src-modules-termos-de-uso-index-tsx\": () => import(\"./../../../src/modules/termos-de-uso/index.tsx\" /* webpackChunkName: \"component---src-modules-termos-de-uso-index-tsx\" */),\n \"component---src-pages-404-tsx\": () => import(\"./../../../src/pages/404.tsx\" /* webpackChunkName: \"component---src-pages-404-tsx\" */),\n \"component---src-pages-blog-busca-tsx\": () => import(\"./../../../src/pages/blog/busca.tsx\" /* webpackChunkName: \"component---src-pages-blog-busca-tsx\" */),\n \"component---src-pages-blog-index-tsx\": () => import(\"./../../../src/pages/blog/index.tsx\" /* webpackChunkName: \"component---src-pages-blog-index-tsx\" */),\n \"component---src-pages-cases-index-tsx\": () => import(\"./../../../src/pages/cases/index.tsx\" /* webpackChunkName: \"component---src-pages-cases-index-tsx\" */),\n \"component---src-pages-index-tsx\": () => import(\"./../../../src/pages/index.tsx\" /* webpackChunkName: \"component---src-pages-index-tsx\" */),\n \"component---src-pages-test-tsx\": () => import(\"./../../../src/pages/test.tsx\" /* webpackChunkName: \"component---src-pages-test-tsx\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-anchor-links/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"name\":\"gatsby-starter-default\",\"short_name\":\"starter\",\"start_url\":\"/\",\"background_color\":\"#663399\",\"theme_color\":\"#663399\",\"display\":\"minimal-ui\",\"icon\":\"src/images/favicon.svg\",\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":\"240a1cc559811453e892fdffc899e9f4\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-catch-links/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-source-wordpress/gatsby-browser.js'),\n options: {\"plugins\":[],\"url\":\"https://blog.enesolucoes.com.br/graphql\",\"type\":{\"Post\":{\"limit\":1000},\"RootQuery\":\"{ excludeFieldNames: ['viewer', 'node', 'schemaMd5'], },\"},\"verbose\":true},\n },{\n plugin: require('../node_modules/gatsby-plugin-gatsby-cloud/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-plugin-image/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-plugin-google-gtag/gatsby-browser.js'),\n options: {\"plugins\":[],\"trackingIds\":[\"GTM-WSHKNP8\"]},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst {\n getResourceURLsForPathname,\n loadPage,\n loadPageSync,\n} = require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","export default path => {\n if (path === undefined) {\n return path\n }\n if (path === `/`) {\n return `/`\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1)\n }\n return path\n}\n","import { pick } from \"@gatsbyjs/reach-router/lib/utils\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n const pathname = decodeURIComponent(rawPathname)\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(\n pathname,\n decodeURIComponent(__BASE_PATH__)\n )\n // Remove any hashfragment\n .split(`#`)[0]\n // Remove search query\n .split(`?`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n const redirect = maybeGetBrowserRedirect(rawPathname)\n if (redirect) {\n return findPath(redirect.toPath)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport Link, {\n withPrefix,\n withAssetPrefix,\n navigate,\n push,\n replace,\n navigateTo,\n parsePath,\n} from \"gatsby-link\"\nimport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nimport PageRenderer from \"./public-page-renderer\"\nimport loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nconst StaticQueryContext = React.createContext({})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&

Loading (StaticQuery)
}\n \n )\n}\n\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport {\n Link,\n withAssetPrefix,\n withPrefix,\n graphql,\n parsePath,\n navigate,\n useScrollRestoration,\n StaticQueryContext,\n StaticQuery,\n PageRenderer,\n useStaticQuery,\n prefetchPathname,\n}\n","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = path => {\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json`\n}\n\nfunction doFetch(url, method = `GET`) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\nconst toPageResources = (pageData, component = null) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n }\n\n return {\n component,\n json: pageData.result,\n page,\n }\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404 page and it doesn't exist, we're done\n if (pagePath === `/404.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n if (page.error) {\n return {\n error: page.error,\n status: page.status,\n }\n }\n\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const inFlightPromise = Promise.all([\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]).then(allData => {\n const result = allData[1]\n if (result.status === PageResourceStatus.Error) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = result.payload\n const { componentChunkName, staticQueryHashes = [] } = pageData\n\n const finalResult = {}\n\n const componentChunkPromise = this.loadComponent(componentChunkName).then(\n component => {\n finalResult.createdAt = new Date()\n let pageResources\n if (!component || component instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = component\n } else {\n finalResult.status = PageResourceStatus.Success\n if (result.notFound === true) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: allData[0]\n ? allData[0].webpackCompilationHash\n : ``,\n })\n pageResources = toPageResources(pageData, component)\n }\n // undefined if final result is an error\n return pageResources\n }\n )\n\n const staticQueryBatchPromise = Promise.all(\n staticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromise, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n\n inFlightPromise\n .then(() => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if the page does not exists in cache\n loadPageSync(rawPath, options = {}) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath)\n\n if (pageData.payload) {\n return pageData.payload\n }\n\n if (options?.withErrorDetails) {\n return {\n error: pageData.error,\n status: pageData.status,\n }\n }\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return false\n }\n\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return false\n }\n\n const realPath = findPath(pagePath)\n // Todo make doPrefetch logic cacheable\n // eslint-disable-next-line consistent-return\n this.doPrefetch(realPath).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n })\n\n return true\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths) {\n const loadComponent = chunkName => {\n if (!asyncRequires.components[chunkName]) {\n throw new Error(\n `We couldn't find the correct component chunk with the name ${chunkName}`\n )\n }\n\n return (\n asyncRequires.components[chunkName]()\n .then(preferDefault)\n // loader will handle the case when component is error\n .catch(err => err)\n )\n }\n\n super(loadComponent, matchPaths)\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n // TODO add deprecation to v4 so people use withErrorDetails and then we can remove in v5 and change default behaviour\n loadPageSync: (rawPath, options = {}) =>\n instance.loadPageSync(rawPath, options),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n","import React, { createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\n\n// Renders page\nclass PageRenderer extends React.Component {\n render() {\n const props = {\n ...this.props,\n params: {\n ...grabMatchParams(this.props.location.pathname),\n ...this.props.pageResources.json.pageContext.__params,\n },\n }\n\n const pageElement = createElement(this.props.pageResources.component, {\n ...props,\n key: this.props.path || this.props.pageResources.page.path,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n { element: pageElement, props },\n pageElement,\n ({ result }) => {\n return { element: result, props }\n }\n ).pop()\n\n return wrappedPage\n }\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport { navigate as reachNavigate } from \"@gatsbyjs/reach-router\"\nimport { globalHistory } from \"@gatsbyjs/reach-router/lib/history\"\nimport { parsePath } from \"gatsby-link\"\n\nfunction maybeRedirect(pathname) {\n const redirect = maybeGetBrowserRedirect(pathname)\n\n if (redirect != null) {\n window.___replace(redirect.toPath)\n return true\n } else {\n return false\n }\n}\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_EXPERIMENTAL_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n let { pathname } = parsePath(to)\n const redirect = maybeGetBrowserRedirect(pathname)\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath\n pathname = parsePath(to).pathname\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n // FIXME this is actually a big code smell, we should fix this\n // eslint-disable-next-line @babel/no-invalid-this\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n\n // Check for initial page-load redirect\n maybeRedirect(window.location.pathname)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return
\n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onPreRouteUpdate(this.props.location, prevProps.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates, maybeGetBrowserRedirect }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources:\n pageResources ||\n loader.loadPageSync(location.pathname, { withErrorDetails: true }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(location.pathname, {\n withErrorDetails: true,\n })\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(nextProps.location.pathname)\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(nextProps.location.pathname)\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport domReady from \"@mikaelkristiansson/domready\"\nimport { StaticQueryContext } from \"gatsby\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n return (\n \n \n {children}\n \n \n )\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n \n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). But\n // only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !== browserLoc.pathname &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath === `/404.html` ||\n pagePath.match(/^\\/404\\/?$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(__BASE_PATH__ + pagePath + browserLoc.search + browserLoc.hash, {\n replace: true,\n })\n }\n\n publicLoader.loadPage(browserLoc.pathname).then(page => {\n if (!page || page.status === PageResourceStatus.Error) {\n const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n // if the chunk throws an error we want to capture the real error\n // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n if (page && page.error) {\n console.error(message)\n throw page.error\n }\n\n throw new Error(message)\n }\n\n window.___webpackCompilationHash = page.page.webpackCompilationHash\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = function App() {\n const onClientEntryRanRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!onClientEntryRanRef.current) {\n onClientEntryRanRef.current = true\n performance.mark(`onInitialClientRender`)\n\n apiRunner(`onInitialClientRender`)\n }\n }, [])\n\n return {SiteRoot}\n }\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n process.env.GATSBY_EXPERIMENTAL_CONCURRENT_FEATURES\n ? ReactDOM.unstable_createRoot\n : ReactDOM.hydrate\n )[0]\n\n domReady(() => {\n const container =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n if (renderer === ReactDOM.unstable_createRoot) {\n renderer(container, {\n hydrate: true,\n }).render()\n } else {\n renderer(, container)\n }\n })\n })\n})\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","exports.polyfill = Component => Component\n","import redirects from \"./redirects.json\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nexport function maybeGetBrowserRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n return redirect\n}\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","import e from \"@firebase/app\";\nimport { U as r, T as t, q as a, C as s, M as o, a as i, j as n, W as p, z as m, X as f, t as c, Z as u, n as b, s as l, r as g, o as h, Q as v, E as w } from \"./prebuilt-e10b3b00-01f089b3.js\";\nimport { Component as C } from \"@firebase/component\";\nimport \"tslib\";\nimport \"@firebase/util\";\nimport \"@firebase/logger\";\nimport \"@firebase/webchannel-wrapper\";\nvar I = {\n Firestore: r,\n GeoPoint: s,\n Timestamp: o,\n Blob: i,\n Transaction: n,\n WriteBatch: p,\n DocumentReference: m,\n DocumentSnapshot: f,\n Query: c,\n QueryDocumentSnapshot: u,\n QuerySnapshot: b,\n CollectionReference: l,\n FieldPath: g,\n FieldValue: h,\n setLogLevel: v,\n CACHE_SIZE_UNLIMITED: w\n};\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Registers the main Firestore build with the components framework.\n * Persistence can be enabled via `firebase.firestore().enablePersistence()`.\n */\n\nfunction P(e) {\n !\n /**\n * Configures Firestore as part of the Firebase SDK by calling registerService.\n *\n * @param firebase - The FirebaseNamespace to register Firestore with\n * @param firestoreFactory - A factory function that returns a new Firestore\n * instance.\n */\n function (e, r) {\n e.INTERNAL.registerComponent(new C(\"firestore\", function (e) {\n var t = e.getProvider(\"app\").getImmediate();\n return r(t, e.getProvider(\"auth-internal\"));\n }, \"PUBLIC\"\n /* PUBLIC */\n ).setServiceProps(Object.assign({}, I)));\n }(e, function (e, s) {\n return new r(e, new t(e, s), new a());\n }), e.registerVersion(\"@firebase/firestore\", \"2.3.9\");\n}\n\nP(e);\nexport { P as registerFirestore };","import firebase from '@firebase/app';\nimport { __extends, __awaiter, __generator } from 'tslib';\nimport { Component } from '@firebase/component';\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Standard error codes for different ways a request can fail, as defined by:\r\n * https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto\r\n *\r\n * This map is used primarily to convert from a backend error code string to\r\n * a client SDK error code string, and make sure it's in the supported set.\r\n */\n\nvar errorCodeMap = {\n OK: 'ok',\n CANCELLED: 'cancelled',\n UNKNOWN: 'unknown',\n INVALID_ARGUMENT: 'invalid-argument',\n DEADLINE_EXCEEDED: 'deadline-exceeded',\n NOT_FOUND: 'not-found',\n ALREADY_EXISTS: 'already-exists',\n PERMISSION_DENIED: 'permission-denied',\n UNAUTHENTICATED: 'unauthenticated',\n RESOURCE_EXHAUSTED: 'resource-exhausted',\n FAILED_PRECONDITION: 'failed-precondition',\n ABORTED: 'aborted',\n OUT_OF_RANGE: 'out-of-range',\n UNIMPLEMENTED: 'unimplemented',\n INTERNAL: 'internal',\n UNAVAILABLE: 'unavailable',\n DATA_LOSS: 'data-loss'\n};\n/**\r\n * An explicit error that can be thrown from a handler to send an error to the\r\n * client that called the function.\r\n */\n\nvar HttpsErrorImpl = function (_super) {\n __extends(HttpsErrorImpl, _super);\n\n function HttpsErrorImpl(code, message, details) {\n var _this = _super.call(this, message) || this; // This is a workaround for a bug in TypeScript when extending Error:\n // tslint:disable-next-line\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n\n\n Object.setPrototypeOf(_this, HttpsErrorImpl.prototype);\n _this.code = code;\n _this.details = details;\n return _this;\n }\n\n return HttpsErrorImpl;\n}(Error);\n/**\r\n * Takes an HTTP status code and returns the corresponding ErrorCode.\r\n * This is the standard HTTP status code -> error mapping defined in:\r\n * https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto\r\n *\r\n * @param status An HTTP status code.\r\n * @return The corresponding ErrorCode, or ErrorCode.UNKNOWN if none.\r\n */\n\n\nfunction codeForHTTPStatus(status) {\n // Make sure any successful status is OK.\n if (status >= 200 && status < 300) {\n return 'ok';\n }\n\n switch (status) {\n case 0:\n // This can happen if the server returns 500.\n return 'internal';\n\n case 400:\n return 'invalid-argument';\n\n case 401:\n return 'unauthenticated';\n\n case 403:\n return 'permission-denied';\n\n case 404:\n return 'not-found';\n\n case 409:\n return 'aborted';\n\n case 429:\n return 'resource-exhausted';\n\n case 499:\n return 'cancelled';\n\n case 500:\n return 'internal';\n\n case 501:\n return 'unimplemented';\n\n case 503:\n return 'unavailable';\n\n case 504:\n return 'deadline-exceeded';\n }\n\n return 'unknown';\n}\n/**\r\n * Takes an HTTP response and returns the corresponding Error, if any.\r\n */\n\n\nfunction _errorForResponse(status, bodyJSON, serializer) {\n var code = codeForHTTPStatus(status); // Start with reasonable defaults from the status code.\n\n var description = code;\n var details = undefined; // Then look through the body for explicit details.\n\n try {\n var errorJSON = bodyJSON && bodyJSON.error;\n\n if (errorJSON) {\n var status_1 = errorJSON.status;\n\n if (typeof status_1 === 'string') {\n if (!errorCodeMap[status_1]) {\n // They must've included an unknown error code in the body.\n return new HttpsErrorImpl('internal', 'internal');\n }\n\n code = errorCodeMap[status_1]; // TODO(klimt): Add better default descriptions for error enums.\n // The default description needs to be updated for the new code.\n\n description = status_1;\n }\n\n var message = errorJSON.message;\n\n if (typeof message === 'string') {\n description = message;\n }\n\n details = errorJSON.details;\n\n if (details !== undefined) {\n details = serializer.decode(details);\n }\n }\n } catch (e) {// If we couldn't parse explicit error data, that's fine.\n }\n\n if (code === 'ok') {\n // Technically, there's an edge case where a developer could explicitly\n // return an error code of OK, and we will treat it as success, but that\n // seems reasonable.\n return null;\n }\n\n return new HttpsErrorImpl(code, description, details);\n}\n/**\r\n * Helper class to get metadata that should be included with a function call.\r\n */\n\n\nvar ContextProvider = function () {\n function ContextProvider(authProvider, messagingProvider) {\n var _this = this;\n\n this.auth = null;\n this.messaging = null;\n this.auth = authProvider.getImmediate({\n optional: true\n });\n this.messaging = messagingProvider.getImmediate({\n optional: true\n });\n\n if (!this.auth) {\n authProvider.get().then(function (auth) {\n return _this.auth = auth;\n }, function () {\n /* get() never rejects */\n });\n }\n\n if (!this.messaging) {\n messagingProvider.get().then(function (messaging) {\n return _this.messaging = messaging;\n }, function () {\n /* get() never rejects */\n });\n }\n }\n\n ContextProvider.prototype.getAuthToken = function () {\n return __awaiter(this, void 0, void 0, function () {\n var token;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.auth) {\n return [2\n /*return*/\n , undefined];\n }\n\n _a.label = 1;\n\n case 1:\n _a.trys.push([1, 3,, 4]);\n\n return [4\n /*yield*/\n , this.auth.getToken()];\n\n case 2:\n token = _a.sent();\n\n if (!token) {\n return [2\n /*return*/\n , undefined];\n }\n\n return [2\n /*return*/\n , token.accessToken];\n\n case 3:\n _a.sent(); // If there's any error when trying to get the auth token, leave it off.\n\n\n return [2\n /*return*/\n , undefined];\n\n case 4:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n ContextProvider.prototype.getInstanceIdToken = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.messaging || !('Notification' in self) || Notification.permission !== 'granted') {\n return [2\n /*return*/\n , undefined];\n }\n\n _a.label = 1;\n\n case 1:\n _a.trys.push([1, 3,, 4]);\n\n return [4\n /*yield*/\n , this.messaging.getToken()];\n\n case 2:\n return [2\n /*return*/\n , _a.sent()];\n\n case 3:\n _a.sent(); // We don't warn on this, because it usually means messaging isn't set up.\n // console.warn('Failed to retrieve instance id token.', e);\n // If there's any error when trying to get the token, leave it off.\n\n\n return [2\n /*return*/\n , undefined];\n\n case 4:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n ContextProvider.prototype.getContext = function () {\n return __awaiter(this, void 0, void 0, function () {\n var authToken, instanceIdToken;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , this.getAuthToken()];\n\n case 1:\n authToken = _a.sent();\n return [4\n /*yield*/\n , this.getInstanceIdToken()];\n\n case 2:\n instanceIdToken = _a.sent();\n return [2\n /*return*/\n , {\n authToken: authToken,\n instanceIdToken: instanceIdToken\n }];\n }\n });\n });\n };\n\n return ContextProvider;\n}();\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nvar LONG_TYPE = 'type.googleapis.com/google.protobuf.Int64Value';\nvar UNSIGNED_LONG_TYPE = 'type.googleapis.com/google.protobuf.UInt64Value';\n\nfunction mapValues( // { [k: string]: unknown } is no longer a wildcard assignment target after typescript 3.5\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\no, f) {\n var result = {};\n\n for (var key in o) {\n if (o.hasOwnProperty(key)) {\n result[key] = f(o[key]);\n }\n }\n\n return result;\n}\n\nvar Serializer = function () {\n function Serializer() {} // Takes data and encodes it in a JSON-friendly way, such that types such as\n // Date are preserved.\n\n\n Serializer.prototype.encode = function (data) {\n var _this = this;\n\n if (data == null) {\n return null;\n }\n\n if (data instanceof Number) {\n data = data.valueOf();\n }\n\n if (typeof data === 'number' && isFinite(data)) {\n // Any number in JS is safe to put directly in JSON and parse as a double\n // without any loss of precision.\n return data;\n }\n\n if (data === true || data === false) {\n return data;\n }\n\n if (Object.prototype.toString.call(data) === '[object String]') {\n return data;\n }\n\n if (data instanceof Date) {\n return data.toISOString();\n }\n\n if (Array.isArray(data)) {\n return data.map(function (x) {\n return _this.encode(x);\n });\n }\n\n if (typeof data === 'function' || typeof data === 'object') {\n return mapValues(data, function (x) {\n return _this.encode(x);\n });\n } // If we got this far, the data is not encodable.\n\n\n throw new Error('Data cannot be encoded in JSON: ' + data);\n }; // Takes data that's been encoded in a JSON-friendly form and returns a form\n // with richer datatypes, such as Dates, etc.\n\n\n Serializer.prototype.decode = function (json) {\n var _this = this;\n\n if (json == null) {\n return json;\n }\n\n if (json['@type']) {\n switch (json['@type']) {\n case LONG_TYPE: // Fall through and handle this the same as unsigned.\n\n case UNSIGNED_LONG_TYPE:\n {\n // Technically, this could work return a valid number for malformed\n // data if there was a number followed by garbage. But it's just not\n // worth all the extra code to detect that case.\n var value = Number(json['value']);\n\n if (isNaN(value)) {\n throw new Error('Data cannot be decoded from JSON: ' + json);\n }\n\n return value;\n }\n\n default:\n {\n throw new Error('Data cannot be decoded from JSON: ' + json);\n }\n }\n }\n\n if (Array.isArray(json)) {\n return json.map(function (x) {\n return _this.decode(x);\n });\n }\n\n if (typeof json === 'function' || typeof json === 'object') {\n return mapValues(json, function (x) {\n return _this.decode(x);\n });\n } // Anything else is safe to return.\n\n\n return json;\n };\n\n return Serializer;\n}();\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Returns a Promise that will be rejected after the given duration.\r\n * The error will be of type HttpsErrorImpl.\r\n *\r\n * @param millis Number of milliseconds to wait before rejecting.\r\n */\n\n\nfunction failAfter(millis) {\n var timer;\n var promise = new Promise(function (_, reject) {\n timer = setTimeout(function () {\n reject(new HttpsErrorImpl('deadline-exceeded', 'deadline-exceeded'));\n }, millis);\n });\n return {\n timer: timer,\n promise: promise\n };\n}\n/**\r\n * The main class for the Firebase Functions SDK.\r\n */\n\n\nvar Service = function () {\n /**\r\n * Creates a new Functions service for the given app and (optional) region or custom domain.\r\n * @param app_ The FirebaseApp to use.\r\n * @param regionOrCustomDomain_ one of:\r\n * a) A region to call functions from, such as us-central1\r\n * b) A custom domain to use as a functions prefix, such as https://mydomain.com\r\n */\n function Service(app_, authProvider, messagingProvider, appCheckProvider, regionOrCustomDomain_, fetchImpl) {\n var _this = this;\n\n if (regionOrCustomDomain_ === void 0) {\n regionOrCustomDomain_ = 'us-central1';\n }\n\n this.app_ = app_;\n this.appCheckProvider = appCheckProvider;\n this.fetchImpl = fetchImpl;\n this.serializer = new Serializer();\n this.emulatorOrigin = null;\n this.INTERNAL = {\n delete: function _delete() {\n return Promise.resolve(_this.deleteService());\n }\n };\n this.contextProvider = new ContextProvider(authProvider, messagingProvider); // Cancels all ongoing requests when resolved.\n\n this.cancelAllRequests = new Promise(function (resolve) {\n _this.deleteService = function () {\n return resolve();\n };\n }); // Resolve the region or custom domain overload by attempting to parse it.\n\n try {\n var url = new URL(regionOrCustomDomain_);\n this.customDomain = url.origin;\n this.region = 'us-central1';\n } catch (e) {\n this.customDomain = null;\n this.region = regionOrCustomDomain_;\n }\n }\n\n Object.defineProperty(Service.prototype, \"app\", {\n get: function get() {\n return this.app_;\n },\n enumerable: false,\n configurable: true\n });\n /**\r\n * Returns the URL for a callable with the given name.\r\n * @param name The name of the callable.\r\n */\n\n Service.prototype._url = function (name) {\n var projectId = this.app_.options.projectId;\n\n if (this.emulatorOrigin !== null) {\n var origin_1 = this.emulatorOrigin;\n return origin_1 + \"/\" + projectId + \"/\" + this.region + \"/\" + name;\n }\n\n if (this.customDomain !== null) {\n return this.customDomain + \"/\" + name;\n }\n\n return \"https://\" + this.region + \"-\" + projectId + \".cloudfunctions.net/\" + name;\n };\n /**\r\n * Modify this instance to communicate with the Cloud Functions emulator.\r\n *\r\n * Note: this must be called before this instance has been used to do any operations.\r\n *\r\n * @param host The emulator host (ex: localhost)\r\n * @param port The emulator port (ex: 5001)\r\n */\n\n\n Service.prototype.useEmulator = function (host, port) {\n this.emulatorOrigin = \"http://\" + host + \":\" + port;\n };\n /**\r\n * Changes this instance to point to a Cloud Functions emulator running\r\n * locally. See https://firebase.google.com/docs/functions/local-emulator\r\n *\r\n * @deprecated Prefer the useEmulator(host, port) method.\r\n * @param origin The origin of the local emulator, such as\r\n * \"http://localhost:5005\".\r\n */\n\n\n Service.prototype.useFunctionsEmulator = function (origin) {\n this.emulatorOrigin = origin;\n };\n /**\r\n * Returns a reference to the callable https trigger with the given name.\r\n * @param name The name of the trigger.\r\n */\n\n\n Service.prototype.httpsCallable = function (name, options) {\n var _this = this;\n\n return function (data) {\n return _this.call(name, data, options || {});\n };\n };\n /**\r\n * Does an HTTP POST and returns the completed response.\r\n * @param url The url to post to.\r\n * @param body The JSON body of the post.\r\n * @param headers The HTTP headers to include in the request.\r\n * @return A Promise that will succeed when the request finishes.\r\n */\n\n\n Service.prototype.postJSON = function (url, body, headers) {\n return __awaiter(this, void 0, void 0, function () {\n var appCheckToken, response, json;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n headers['Content-Type'] = 'application/json';\n return [4\n /*yield*/\n , this.getAppCheckToken()];\n\n case 1:\n appCheckToken = _a.sent();\n\n if (appCheckToken !== null) {\n headers['X-Firebase-AppCheck'] = appCheckToken;\n }\n\n _a.label = 2;\n\n case 2:\n _a.trys.push([2, 4,, 5]);\n\n return [4\n /*yield*/\n , this.fetchImpl(url, {\n method: 'POST',\n body: JSON.stringify(body),\n headers: headers\n })];\n\n case 3:\n response = _a.sent();\n return [3\n /*break*/\n , 5];\n\n case 4:\n _a.sent(); // This could be an unhandled error on the backend, or it could be a\n // network error. There's no way to know, since an unhandled error on the\n // backend will fail to set the proper CORS header, and thus will be\n // treated as a network error by fetch.\n\n\n return [2\n /*return*/\n , {\n status: 0,\n json: null\n }];\n\n case 5:\n json = null;\n _a.label = 6;\n\n case 6:\n _a.trys.push([6, 8,, 9]);\n\n return [4\n /*yield*/\n , response.json()];\n\n case 7:\n json = _a.sent();\n return [3\n /*break*/\n , 9];\n\n case 8:\n _a.sent();\n\n return [3\n /*break*/\n , 9];\n\n case 9:\n return [2\n /*return*/\n , {\n status: response.status,\n json: json\n }];\n }\n });\n });\n };\n\n Service.prototype.getAppCheckToken = function () {\n return __awaiter(this, void 0, void 0, function () {\n var appCheck, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n appCheck = this.appCheckProvider.getImmediate({\n optional: true\n });\n if (!appCheck) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , appCheck.getToken()];\n\n case 1:\n result = _a.sent(); // If getToken() fails, it will still return a dummy token that also has\n // an error field containing the error message. We will send any token\n // provided here and show an error if/when it is rejected by the functions\n // endpoint.\n\n return [2\n /*return*/\n , result.token];\n\n case 2:\n return [2\n /*return*/\n , null];\n }\n });\n });\n };\n /**\r\n * Calls a callable function asynchronously and returns the result.\r\n * @param name The name of the callable trigger.\r\n * @param data The data to pass as params to the function.s\r\n */\n\n\n Service.prototype.call = function (name, data, options) {\n return __awaiter(this, void 0, void 0, function () {\n var url, body, headers, context, timeout, _a, timer, failAfterPromise, response, error, responseData, decodedData;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n url = this._url(name); // Encode any special types, such as dates, in the input data.\n\n data = this.serializer.encode(data);\n body = {\n data: data\n };\n headers = {};\n return [4\n /*yield*/\n , this.contextProvider.getContext()];\n\n case 1:\n context = _b.sent();\n\n if (context.authToken) {\n headers['Authorization'] = 'Bearer ' + context.authToken;\n }\n\n if (context.instanceIdToken) {\n headers['Firebase-Instance-ID-Token'] = context.instanceIdToken;\n }\n\n timeout = options.timeout || 70000;\n _a = failAfter(timeout), timer = _a.timer, failAfterPromise = _a.promise;\n return [4\n /*yield*/\n , Promise.race([clearTimeoutWrapper(timer, this.postJSON(url, body, headers)), failAfterPromise, clearTimeoutWrapper(timer, this.cancelAllRequests)])];\n\n case 2:\n response = _b.sent(); // If service was deleted, interrupted response throws an error.\n\n if (!response) {\n throw new HttpsErrorImpl('cancelled', 'Firebase Functions instance was deleted.');\n }\n\n error = _errorForResponse(response.status, response.json, this.serializer);\n\n if (error) {\n throw error;\n }\n\n if (!response.json) {\n throw new HttpsErrorImpl('internal', 'Response is not valid JSON object.');\n }\n\n responseData = response.json.data; // TODO(klimt): For right now, allow \"result\" instead of \"data\", for\n // backwards compatibility.\n\n if (typeof responseData === 'undefined') {\n responseData = response.json.result;\n }\n\n if (typeof responseData === 'undefined') {\n // Consider the response malformed.\n throw new HttpsErrorImpl('internal', 'Response is missing data field.');\n }\n\n decodedData = this.serializer.decode(responseData);\n return [2\n /*return*/\n , {\n data: decodedData\n }];\n }\n });\n });\n };\n\n return Service;\n}();\n\nfunction clearTimeoutWrapper(timer, promise) {\n return __awaiter(this, void 0, void 0, function () {\n var result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , promise];\n\n case 1:\n result = _a.sent(); // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n clearTimeout(timer);\n return [2\n /*return*/\n , result];\n }\n });\n });\n}\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * Type constant for Firebase Functions.\r\n */\n\n\nvar FUNCTIONS_TYPE = 'functions';\n\nfunction registerFunctions(instance, fetchImpl) {\n var namespaceExports = {\n // no-inline\n Functions: Service\n };\n\n function factory(container, _a) {\n var regionOrCustomDomain = _a.instanceIdentifier; // Dependencies\n\n var app = container.getProvider('app').getImmediate();\n var authProvider = container.getProvider('auth-internal');\n var appCheckProvider = container.getProvider('app-check-internal');\n var messagingProvider = container.getProvider('messaging'); // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n return new Service(app, authProvider, messagingProvider, appCheckProvider, regionOrCustomDomain, fetchImpl);\n }\n\n instance.INTERNAL.registerComponent(new Component(FUNCTIONS_TYPE, factory, \"PUBLIC\"\n /* PUBLIC */\n ).setServiceProps(namespaceExports).setMultipleInstances(true));\n}\n\nvar name = \"@firebase/functions\";\nvar version = \"0.6.13\";\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\nregisterFunctions(firebase, fetch.bind(self));\nfirebase.registerVersion(name, version);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.INVALID_HASH = exports.IMPROPPER_FORMATTING = void 0;\nvar IMPROPPER_FORMATTING = 'Anchor path should contain an absolute root path `/` and selector `#` Ex: `/about#team`';\nexports.IMPROPPER_FORMATTING = IMPROPPER_FORMATTING;\nvar INVALID_HASH = 'Anchor Links plugin attempted to scroll to an invalid hash on route change.';\nexports.INVALID_HASH = INVALID_HASH;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.onRouteUpdate = void 0;\n\nvar _utils = require(\"./utils\");\n\nvar onRouteUpdate = function onRouteUpdate(_ref, _ref2) {\n var location = _ref.location;\n var _ref2$offset = _ref2.offset,\n offset = _ref2$offset === void 0 ? 0 : _ref2$offset,\n _ref2$duration = _ref2.duration,\n duration = _ref2$duration === void 0 ? 1000 : _ref2$duration;\n var windowHash;\n\n if (_utils.isBrowser) {\n window.gatsby_scroll_offset = offset;\n window.gatsby_scroll_duration = duration;\n windowHash = window.gatsby_scroll_hash;\n }\n\n windowHash ? (0, _utils.scroller)(windowHash, offset) : (0, _utils.checkHash)(location, offset);\n\n if (_utils.isBrowser && windowHash) {\n window.gatsby_scroll_hash = undefined;\n }\n};\n\nexports.onRouteUpdate = onRouteUpdate;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.logWarning = logWarning;\nexports.scroller = scroller;\nexports.handleLinkClick = handleLinkClick;\nexports.handleStrippedLinkClick = handleStrippedLinkClick;\nexports.stripHashedLocation = stripHashedLocation;\nexports.checkHash = checkHash;\nexports.isDevelopment = exports.isBrowser = void 0;\n\nvar _scrollToElement = _interopRequireDefault(require(\"scroll-to-element\"));\n\nvar _gatsby = require(\"gatsby\");\n\nvar errorTypes = _interopRequireWildcard(require(\"./errors\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar isBrowser = typeof window !== 'undefined';\nexports.isBrowser = isBrowser;\nvar isDevelopment = process.env.NODE_ENV !== 'production';\nexports.isDevelopment = isDevelopment;\n\nfunction logWarning(message) {\n if (isDevelopment) console.warn(message);\n}\n\nfunction scroller(target) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1000;\n (0, _scrollToElement[\"default\"])(target, {\n duration: duration,\n offset: offset\n });\n}\n\nfunction handleLinkClick(to, e, onAnchorLinkClick) {\n /**\n * Log warnings on click\n */\n var improperFormatting = !to.includes('/') || !to.includes('#');\n if (improperFormatting) logWarning(errorTypes.IMPROPPER_FORMATTING);\n\n if (isBrowser && to.includes('#')) {\n var _to$split = to.split('#'),\n _to$split2 = _slicedToArray(_to$split, 2),\n anchorPath = _to$split2[0],\n anchor = _to$split2[1];\n\n if (window.location.pathname === (0, _gatsby.withPrefix)(anchorPath)) {\n e.preventDefault();\n scroller(\"#\".concat(anchor), window.gatsby_scroll_offset, window.gatsby_scroll_duration);\n }\n }\n\n if (onAnchorLinkClick) onAnchorLinkClick();\n}\n\nfunction handleStrippedLinkClick(to, e, onAnchorLinkClick) {\n /**\n * Log warnings on click\n */\n var improperFormatting = !to.includes('/') || !to.includes('#');\n if (improperFormatting) logWarning(errorTypes.IMPROPPER_FORMATTING);\n\n var _to$split3 = to.split('#'),\n _to$split4 = _slicedToArray(_to$split3, 2),\n anchorPath = _to$split4[0],\n anchor = _to$split4[1];\n /**\n * Determine location, run scroller or set window variable\n */\n\n\n var isSamePage = isBrowser && window.location.pathname === anchorPath;\n var isDifferentPage = isBrowser && window.location.pathname !== anchorPath;\n\n if (isSamePage) {\n e.preventDefault();\n scroller(\"#\".concat(anchor), window.gatsby_scroll_offset, window.gatsby_scroll_duration);\n }\n\n if (isDifferentPage) {\n window.gatsby_scroll_hash = \"#\".concat(anchor);\n }\n\n if (onAnchorLinkClick) onAnchorLinkClick();\n}\n\nfunction stripHashedLocation(to) {\n return to.split('#')[0];\n}\n\nfunction checkHash(location, offset) {\n var hash = location.hash,\n selector = hash ? hash.substr(1) : null,\n validElement = selector ? document.getElementById(selector) : null;\n if (hash && Boolean(validElement)) scroller(hash, offset);else if (hash && selector && !validElement) logWarning(errorTypes.INVALID_HASH);\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = _default;\nexports.routeThroughBrowserOrApp = exports.hashShouldBeFollowed = exports.pathIsNotHandledByApp = exports.urlsAreOnSameOrigin = exports.authorIsForcingNavigation = exports.anchorsTargetIsEquivalentToSelf = exports.findClosestAnchor = exports.navigationWasHandledElsewhere = exports.slashedPathname = exports.userIsForcingNavigation = void 0;\n\nvar _escapeStringRegexp = _interopRequireDefault(require(\"escape-string-regexp\"));\n\nvar _gatsby = require(\"gatsby\");\n\nvar userIsForcingNavigation = function userIsForcingNavigation(event) {\n return event.button !== 0 || event.altKey || event.ctrlKey || event.metaKey || event.shiftKey;\n}; // IE does not include leading slash in anchor.pathname\n\n\nexports.userIsForcingNavigation = userIsForcingNavigation;\n\nvar slashedPathname = function slashedPathname(pathname) {\n return pathname[0] === \"/\" ? pathname : \"/\" + pathname;\n};\n\nexports.slashedPathname = slashedPathname;\n\nvar navigationWasHandledElsewhere = function navigationWasHandledElsewhere(event) {\n return event.defaultPrevented;\n};\n\nexports.navigationWasHandledElsewhere = navigationWasHandledElsewhere;\n\nvar findClosestAnchor = function findClosestAnchor(node) {\n for (; node.parentNode; node = node.parentNode) {\n if (node.nodeName.toLowerCase() === \"a\") {\n return node;\n }\n }\n\n return null;\n};\n\nexports.findClosestAnchor = findClosestAnchor;\n\nvar anchorsTargetIsEquivalentToSelf = function anchorsTargetIsEquivalentToSelf(anchor) {\n return (\n /* If target attribute is not present it's treated as _self */\n anchor.hasAttribute(\"target\") === false ||\n /**\n * The browser defaults to _self, but, not all browsers set\n * a.target to the string value `_self` by default\n */\n\n /**\n * Assumption: some browsers use null/undefined for default\n * attribute values\n */\n anchor.target == null ||\n /**\n * Some browsers use the empty string to mean _self, check\n * for actual `_self`\n */\n [\"_self\", \"\"].includes(anchor.target) || anchor.target === \"_parent\" && (!anchor.ownerDocument.defaultView.parent || // Assumption: This can be falsey\n anchor.ownerDocument.defaultView.parent === anchor.ownerDocument.defaultView) || anchor.target === \"_top\" && (!anchor.ownerDocument.defaultView.top || // Assumption: This can be falsey\n anchor.ownerDocument.defaultView.top === anchor.ownerDocument.defaultView)\n );\n};\n\nexports.anchorsTargetIsEquivalentToSelf = anchorsTargetIsEquivalentToSelf;\n\nvar authorIsForcingNavigation = function authorIsForcingNavigation(anchor) {\n return (\n /**\n * HTML5 attribute that informs the browser to handle the\n * href as a downloadable file; let the browser handle it\n */\n anchor.hasAttribute(\"download\") === true ||\n /**\n * Let the browser handle anything that doesn't look like a\n * target=\"_self\" anchor\n */\n anchorsTargetIsEquivalentToSelf(anchor) === false\n );\n}; // https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy\n\n\nexports.authorIsForcingNavigation = authorIsForcingNavigation;\n\nvar urlsAreOnSameOrigin = function urlsAreOnSameOrigin(origin, destination) {\n return origin.protocol === destination.protocol &&\n /* a.host includes both hostname and port in the expected format host:port */\n origin.host === destination.host;\n};\n\nexports.urlsAreOnSameOrigin = urlsAreOnSameOrigin;\n\nvar pathIsNotHandledByApp = function pathIsNotHandledByApp(destination, pathStartRegEx) {\n var pathFileExtensionRegEx = /^.*\\.((?!htm)[a-z0-9]{1,5})$/i;\n return (\n /**\n * For when pathPrefix is used in an app and there happens to be a link\n * pointing to the same domain but outside of the app's pathPrefix. For\n * example, a Gatsby app lives at https://example.com/myapp/, with the\n * pathPrefix set to `/myapp`. When adding an absolute link to the same\n * domain but outside of the /myapp path, for example, `` the plugin won't catch it and\n * will navigate to an external link instead of doing a pushState resulting\n * in `https://example.com/myapp/https://example.com/not-my-app`\n */\n pathStartRegEx.test(slashedPathname(destination.pathname)) === false ||\n /**\n * Don't catch links pointed at what look like file extensions (other than\n * .htm/html extensions).\n */\n destination.pathname.search(pathFileExtensionRegEx) !== -1\n );\n};\n\nexports.pathIsNotHandledByApp = pathIsNotHandledByApp;\n\nvar hashShouldBeFollowed = function hashShouldBeFollowed(origin, destination) {\n return destination.hash !== \"\" && (destination.pathname === \"\" ||\n /* Don't catch links pointed to the same page but with a hash. */\n destination.pathname === origin.pathname);\n};\n\nexports.hashShouldBeFollowed = hashShouldBeFollowed;\n\nvar routeThroughBrowserOrApp = function routeThroughBrowserOrApp(hrefHandler, pluginOptions) {\n return function (event) {\n if (window.___failedResources) return true;\n if (userIsForcingNavigation(event)) return true;\n if (navigationWasHandledElsewhere(event)) return true;\n var clickedAnchor = findClosestAnchor(event.target);\n if (clickedAnchor == null) return true;\n if (authorIsForcingNavigation(clickedAnchor)) return true; // IE clears the host value if the anchor href changed after creation, e.g.\n // in React. Creating a new anchor element to ensure host value is present\n\n var destination = document.createElement(\"a\"); // https://html.spec.whatwg.org/multipage/links.html#concept-hyperlink-url-set\n // If clickedAnchor has no href attribute like `example`, the href getter returns empty string.\n\n if (clickedAnchor.href !== \"\") {\n destination.href = clickedAnchor.href;\n }\n\n if (\"SVGAnimatedString\" in window && clickedAnchor.href instanceof SVGAnimatedString) {\n destination.href = clickedAnchor.href.animVal;\n } // In IE, the default port is included in the anchor host but excluded from\n // the location host. This affects the ability to directly compare\n // location host to anchor host. For example: http://example.com would\n // have a location.host of 'example.com' and an destination.host of\n // 'example.com:80' Creating anchor from the location.href to normalize the\n // host value.\n\n\n var origin = document.createElement(\"a\");\n origin.href = window.location.href;\n if (urlsAreOnSameOrigin(origin, destination) === false) return true; // Regex to test pathname against pathPrefix\n\n var pathStartRegEx = new RegExp(\"^\" + (0, _escapeStringRegexp.default)((0, _gatsby.withPrefix)(\"/\")));\n if (pathIsNotHandledByApp(destination, pathStartRegEx)) return true;\n if (hashShouldBeFollowed(origin, destination)) return true;\n\n if (pluginOptions.excludePattern) {\n var excludeRegex = new RegExp(pluginOptions.excludePattern);\n\n if (excludeRegex.test(destination.pathname)) {\n return true;\n }\n }\n\n event.preventDefault(); // See issue #8907: destination.pathname already includes pathPrefix added\n // by gatsby-transformer-remark but gatsby-link.navigate needs href without\n\n var destinationPathname = slashedPathname(destination.pathname).replace(pathStartRegEx, \"/\");\n hrefHandler(\"\" + destinationPathname + destination.search + destination.hash);\n return false;\n };\n};\n\nexports.routeThroughBrowserOrApp = routeThroughBrowserOrApp;\n\nfunction _default(root, pluginOptions, cb) {\n var clickHandler = routeThroughBrowserOrApp(cb, pluginOptions);\n root.addEventListener(\"click\", clickHandler);\n return function () {\n return root.removeEventListener(\"click\", clickHandler);\n };\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _gatsby = require(\"gatsby\");\n\nvar _catchLinks = _interopRequireDefault(require(\"./catch-links\"));\n\nexports.onClientEntry = function (_, pluginOptions) {\n if (pluginOptions === void 0) {\n pluginOptions = {};\n }\n\n (0, _catchLinks.default)(window, pluginOptions, function (href) {\n (0, _gatsby.navigate)(href);\n });\n};","import React from \"react\";\nimport { createPortal } from \"react-dom\";\nimport Indicator from \"./components/Indicator\";\n\nconst ShadowPortal = ({\n children,\n identifier\n}) => {\n const mountNode = React.useRef(null);\n const portalNode = React.useRef(null);\n const shadowNode = React.useRef(null);\n const [, forceUpdate] = React.useState();\n React.useEffect(() => {\n const ownerDocument = mountNode.current.ownerDocument;\n portalNode.current = ownerDocument.createElement(identifier);\n shadowNode.current = portalNode.current.attachShadow({\n mode: `open`\n });\n ownerDocument.body.appendChild(portalNode.current);\n forceUpdate({});\n return () => {\n if (portalNode.current && portalNode.current.ownerDocument) {\n portalNode.current.ownerDocument.body.removeChild(portalNode.current);\n }\n };\n }, []);\n return shadowNode.current ? /*#__PURE__*/createPortal(children, shadowNode.current) : /*#__PURE__*/React.createElement(\"span\", {\n ref: mountNode\n });\n};\n\nexport const wrapRootElement = ({\n element\n}, pluginOptions) => {\n if (process.env.GATSBY_PREVIEW_INDICATOR_ENABLED === `true` && !(pluginOptions !== null && pluginOptions !== void 0 && pluginOptions.disablePreviewUI)) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, element, /*#__PURE__*/React.createElement(ShadowPortal, {\n identifier: \"gatsby-preview-indicator\"\n }, /*#__PURE__*/React.createElement(Indicator, null)));\n } else {\n return /*#__PURE__*/React.createElement(React.Fragment, null, element);\n }\n};","\"use strict\";\n\nexports.onRouteUpdate = function (_ref) {\n var location = _ref.location;\n\n if (process.env.NODE_ENV !== \"production\" || typeof gtag !== \"function\") {\n return null;\n }\n\n var pathIsExcluded = location && typeof window.excludeGtagPaths !== \"undefined\" && window.excludeGtagPaths.some(function (rx) {\n return rx.test(location.pathname);\n });\n if (pathIsExcluded) return null; // wrap inside a timeout to make sure react-helmet is done with its changes (https://github.com/gatsbyjs/gatsby/issues/11592)\n\n var sendPageView = function sendPageView() {\n var pagePath = location ? location.pathname + location.search + location.hash : undefined;\n window.gtag(\"event\", \"page_view\", {\n page_path: pagePath\n });\n };\n\n if (\"requestAnimationFrame\" in window) {\n requestAnimationFrame(function () {\n requestAnimationFrame(sendPageView);\n });\n } else {\n // simulate 2 rAF calls\n setTimeout(sendPageView, 32);\n }\n\n return null;\n};","/* eslint-disable no-unused-expressions */\nimport { stripIndent } from \"common-tags\"\nimport camelCase from \"camelcase\"\nimport { IGatsbyImageData } from \".\"\n\nconst DEFAULT_PIXEL_DENSITIES = [0.25, 0.5, 1, 2]\nexport const DEFAULT_BREAKPOINTS = [750, 1080, 1366, 1920]\nexport const EVERY_BREAKPOINT = [\n 320, 654, 768, 1024, 1366, 1600, 1920, 2048, 2560, 3440, 3840, 4096,\n]\nconst DEFAULT_FLUID_WIDTH = 800\nconst DEFAULT_FIXED_WIDTH = 800\nconst DEFAULT_ASPECT_RATIO = 4 / 3\n\nexport type Fit = \"cover\" | \"fill\" | \"inside\" | \"outside\" | \"contain\"\n\nexport type Layout = \"fixed\" | \"fullWidth\" | \"constrained\"\nexport type ImageFormat = \"jpg\" | \"png\" | \"webp\" | \"avif\" | \"auto\" | \"\"\n\n/**\n * The minimal required reporter, as we don't want to import it from gatsby-cli\n */\nexport interface IReporter {\n warn(message: string): void\n}\n\nexport interface ISharpGatsbyImageArgs {\n layout?: Layout\n formats?: Array\n placeholder?: \"tracedSVG\" | \"dominantColor\" | \"blurred\" | \"none\"\n tracedSVGOptions?: Record\n width?: number\n height?: number\n aspectRatio?: number\n sizes?: string\n quality?: number\n transformOptions?: {\n fit?: Fit\n cropFocus?: number | string\n duotone?: {\n highlight: string\n shadow: string\n opacity?: number\n }\n grayscale?: boolean\n rotate?: number\n trim?: number\n }\n jpgOptions?: Record\n pngOptions?: Record\n webpOptions?: Record\n avifOptions?: Record\n blurredOptions?: { width?: number; toFormat?: ImageFormat }\n breakpoints?: Array\n backgroundColor?: string\n}\n\nexport interface IImageSizeArgs {\n width?: number\n height?: number\n layout?: Layout\n filename: string\n outputPixelDensities?: Array\n breakpoints?: Array\n fit?: Fit\n reporter?: IReporter\n sourceMetadata: { width: number; height: number }\n}\n\nexport interface IImageSizes {\n sizes: Array\n presentationWidth: number\n presentationHeight: number\n aspectRatio: number\n unscaledWidth: number\n}\n\nexport interface IImage {\n src: string\n width: number\n height: number\n format: ImageFormat\n}\n\nexport interface IGatsbyImageHelperArgs {\n pluginName: string\n generateImageSource: (\n filename: string,\n width: number,\n height: number,\n format: ImageFormat,\n fit?: Fit,\n options?: Record\n ) => IImage\n layout?: Layout\n formats?: Array\n filename: string\n placeholderURL?: string\n width?: number\n height?: number\n sizes?: string\n reporter?: IReporter\n sourceMetadata?: { width: number; height: number; format: ImageFormat }\n fit?: Fit\n options?: Record\n breakpoints?: Array\n backgroundColor?: string\n aspectRatio?: number\n}\n\nconst warn = (message: string): void => console.warn(message)\n\nconst sortNumeric = (a: number, b: number): number => a - b\n\nexport const getSizes = (width: number, layout: Layout): string | undefined => {\n switch (layout) {\n // If screen is wider than the max size, image width is the max size,\n // otherwise it's the width of the screen\n case `constrained`:\n return `(min-width: ${width}px) ${width}px, 100vw`\n\n // Image is always the same width, whatever the size of the screen\n case `fixed`:\n return `${width}px`\n\n // Image is always the width of the screen\n case `fullWidth`:\n return `100vw`\n\n default:\n return undefined\n }\n}\n\nexport const getSrcSet = (images: Array): string =>\n images.map(image => `${image.src} ${image.width}w`).join(`,\\n`)\n\nexport function formatFromFilename(filename: string): ImageFormat | undefined {\n const dot = filename.lastIndexOf(`.`)\n if (dot !== -1) {\n const ext = filename.substr(dot + 1)\n if (ext === `jpeg`) {\n return `jpg`\n }\n if (ext.length === 3 || ext.length === 4) {\n return ext as ImageFormat\n }\n }\n return undefined\n}\n\nexport function setDefaultDimensions(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageHelperArgs {\n let {\n layout = `constrained`,\n width,\n height,\n sourceMetadata,\n breakpoints,\n aspectRatio,\n formats = [`auto`, `webp`],\n } = args\n formats = formats.map(format => format.toLowerCase() as ImageFormat)\n layout = camelCase(layout) as Layout\n\n if (width && height) {\n return { ...args, formats, layout, aspectRatio: width / height }\n }\n if (sourceMetadata.width && sourceMetadata.height && !aspectRatio) {\n aspectRatio = sourceMetadata.width / sourceMetadata.height\n }\n\n if (layout === `fullWidth`) {\n width = width || sourceMetadata.width || breakpoints[breakpoints.length - 1]\n height = height || Math.round(width / (aspectRatio || DEFAULT_ASPECT_RATIO))\n } else {\n if (!width) {\n if (height && aspectRatio) {\n width = height * aspectRatio\n } else if (sourceMetadata.width) {\n width = sourceMetadata.width\n } else if (height) {\n width = Math.round(height / DEFAULT_ASPECT_RATIO)\n } else {\n width = DEFAULT_FIXED_WIDTH\n }\n }\n\n if (aspectRatio && !height) {\n height = Math.round(width / aspectRatio)\n } else if (!aspectRatio) {\n aspectRatio = width / height\n }\n }\n return { ...args, width, height, aspectRatio, layout, formats }\n}\n\n/**\n * Use this for getting an image for the blurred placeholder. This ensures the\n * aspect ratio and crop match the main image\n */\nexport function getLowResolutionImageURL(\n args: IGatsbyImageHelperArgs,\n width = 20\n): string {\n args = setDefaultDimensions(args)\n const { generateImageSource, filename, aspectRatio } = args\n return generateImageSource(\n filename,\n width,\n Math.round(width / aspectRatio),\n args.sourceMetadata.format || `jpg`,\n args.fit,\n args.options\n )?.src\n}\n\nexport function generateImageData(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageData {\n args = setDefaultDimensions(args)\n\n let {\n pluginName,\n sourceMetadata,\n generateImageSource,\n layout,\n fit,\n options,\n width,\n height,\n filename,\n reporter = { warn },\n backgroundColor,\n placeholderURL,\n } = args\n\n if (!pluginName) {\n reporter.warn(\n `[gatsby-plugin-image] \"generateImageData\" was not passed a plugin name`\n )\n }\n\n if (typeof generateImageSource !== `function`) {\n throw new Error(`generateImageSource must be a function`)\n }\n\n if (!sourceMetadata || (!sourceMetadata.width && !sourceMetadata.height)) {\n // No metadata means we let the CDN handle max size etc, aspect ratio etc\n sourceMetadata = {\n width,\n height,\n format: sourceMetadata?.format || formatFromFilename(filename) || `auto`,\n }\n } else if (!sourceMetadata.format) {\n sourceMetadata.format = formatFromFilename(filename)\n }\n\n const formats = new Set(args.formats)\n\n if (formats.size === 0 || formats.has(`auto`) || formats.has(``)) {\n formats.delete(`auto`)\n formats.delete(``)\n formats.add(sourceMetadata.format)\n }\n\n if (formats.has(`jpg`) && formats.has(`png`)) {\n reporter.warn(\n `[${pluginName}] Specifying both 'jpg' and 'png' formats is not supported. Using 'auto' instead`\n )\n if (sourceMetadata.format === `jpg`) {\n formats.delete(`png`)\n } else {\n formats.delete(`jpg`)\n }\n }\n\n const imageSizes = calculateImageSizes({ ...args, sourceMetadata })\n\n const result: IGatsbyImageData[\"images\"] = {\n sources: [],\n }\n\n let sizes = args.sizes\n if (!sizes) {\n sizes = getSizes(imageSizes.presentationWidth, layout)\n }\n\n formats.forEach(format => {\n const images = imageSizes.sizes\n .map(size => {\n const imageSrc = generateImageSource(\n filename,\n size,\n Math.round(size / imageSizes.aspectRatio),\n format,\n fit,\n options\n )\n if (\n !imageSrc?.width ||\n !imageSrc.height ||\n !imageSrc.src ||\n !imageSrc.format\n ) {\n reporter.warn(\n `[${pluginName}] The resolver for image ${filename} returned an invalid value.`\n )\n return undefined\n }\n return imageSrc\n })\n .filter(Boolean)\n\n if (format === `jpg` || format === `png` || format === `auto`) {\n const unscaled =\n images.find(img => img.width === imageSizes.unscaledWidth) || images[0]\n\n if (unscaled) {\n result.fallback = {\n src: unscaled.src,\n srcSet: getSrcSet(images),\n sizes,\n }\n }\n } else {\n result.sources?.push({\n srcSet: getSrcSet(images),\n sizes,\n type: `image/${format}`,\n })\n }\n })\n\n const imageProps: Partial = {\n images: result,\n layout,\n backgroundColor,\n }\n\n if (placeholderURL) {\n imageProps.placeholder = { fallback: placeholderURL }\n }\n\n switch (layout) {\n case `fixed`:\n imageProps.width = imageSizes.presentationWidth\n imageProps.height = imageSizes.presentationHeight\n break\n\n case `fullWidth`:\n imageProps.width = 1\n imageProps.height = 1 / imageSizes.aspectRatio\n break\n\n case `constrained`:\n imageProps.width = args.width || imageSizes.presentationWidth || 1\n imageProps.height = (imageProps.width || 1) / imageSizes.aspectRatio\n }\n\n return imageProps as IGatsbyImageData\n}\n\nconst dedupeAndSortDensities = (values: Array): Array =>\n Array.from(new Set([1, ...values])).sort(sortNumeric)\n\nexport function calculateImageSizes(args: IImageSizeArgs): IImageSizes {\n const {\n width,\n height,\n filename,\n layout = `constrained`,\n sourceMetadata: imgDimensions,\n reporter = { warn },\n breakpoints = DEFAULT_BREAKPOINTS,\n } = args\n\n // check that all dimensions provided are positive\n const userDimensions = { width, height }\n const erroneousUserDimensions = Object.entries(userDimensions).filter(\n ([_, size]) => typeof size === `number` && size < 1\n )\n if (erroneousUserDimensions.length) {\n throw new Error(\n `Specified dimensions for images must be positive numbers (> 0). Problem dimensions you have are ${erroneousUserDimensions\n .map(dim => dim.join(`: `))\n .join(`, `)}`\n )\n }\n\n if (layout === `fixed`) {\n return fixedImageSizes(args)\n } else if (layout === `constrained`) {\n return responsiveImageSizes(args)\n } else if (layout === `fullWidth`) {\n return responsiveImageSizes({ breakpoints, ...args })\n } else {\n reporter.warn(\n `No valid layout was provided for the image at ${filename}. Valid image layouts are fixed, fullWidth, and constrained. Found ${layout}`\n )\n return {\n sizes: [imgDimensions.width],\n presentationWidth: imgDimensions.width,\n presentationHeight: imgDimensions.height,\n aspectRatio: imgDimensions.width / imgDimensions.height,\n unscaledWidth: imgDimensions.width,\n }\n }\n}\nexport function fixedImageSizes({\n filename,\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n reporter = { warn },\n}: IImageSizeArgs): IImageSizes {\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n if (!width) {\n if (!height) {\n width = DEFAULT_FIXED_WIDTH\n } else {\n width = Math.round(height * aspectRatio)\n }\n } else if (!height) {\n height = Math.round(width / aspectRatio)\n }\n\n const originalWidth = width // will use this for presentationWidth, don't want to lose it\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n\n // If the image is smaller than requested, warn the user that it's being processed as such\n // print out this message with the necessary information before we overwrite it for sizing\n if (isTopSizeOverriden) {\n const fixedDimension = imgDimensions.width < width ? `width` : `height`\n reporter.warn(stripIndent`\n The requested ${fixedDimension} \"${\n fixedDimension === `width` ? width : height\n }px\" for the image ${filename} was larger than the actual image ${fixedDimension} of ${\n imgDimensions[fixedDimension]\n }px. If possible, replace the current image with a larger one.`)\n\n if (fixedDimension === `width`) {\n width = imgDimensions.width\n height = Math.round(width / aspectRatio)\n } else {\n height = imgDimensions.height\n width = height * aspectRatio\n }\n }\n\n const sizes = densities\n .filter(size => size >= 1) // remove smaller densities because fixed images don't need them\n .map(density => Math.round(density * (width as number)))\n .filter(size => size <= imgDimensions.width)\n\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function responsiveImageSizes({\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n breakpoints,\n layout,\n}: IImageSizeArgs): IImageSizes {\n let sizes\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n // Case 1: width of height were passed in, make sure it isn't larger than the actual image\n width = width && Math.min(width, imgDimensions.width)\n height = height && Math.min(height, imgDimensions.height)\n\n // Case 2: neither width or height were passed in, use default size\n if (!width && !height) {\n width = Math.min(DEFAULT_FLUID_WIDTH, imgDimensions.width)\n height = width / aspectRatio\n }\n\n // if it still hasn't been found, calculate width from the derived height.\n // TS isn't smart enough to realise the type for height has been narrowed here\n if (!width) {\n width = (height as number) * aspectRatio\n }\n\n const originalWidth = width\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n if (isTopSizeOverriden) {\n width = imgDimensions.width\n height = imgDimensions.height\n }\n\n width = Math.round(width)\n\n if (breakpoints?.length > 0) {\n sizes = breakpoints.filter(size => size <= imgDimensions.width)\n\n // If a larger breakpoint has been filtered-out, add the actual image width instead\n if (\n sizes.length < breakpoints.length &&\n !sizes.includes(imgDimensions.width)\n ) {\n sizes.push(imgDimensions.width)\n }\n } else {\n sizes = densities.map(density => Math.round(density * (width as number)))\n sizes = sizes.filter(size => size <= imgDimensions.width)\n }\n\n // ensure that the size passed in is included in the final output\n if (layout === `constrained` && !sizes.includes(width)) {\n sizes.push(width)\n }\n sizes = sizes.sort(sortNumeric)\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function getDimensionsAndAspectRatio(\n dimensions,\n options\n): { width: number; height: number; aspectRatio: number } {\n // Calculate the eventual width/height of the image.\n const imageAspectRatio = dimensions.width / dimensions.height\n\n let width = options.width\n let height = options.height\n\n switch (options.fit) {\n case `fill`: {\n width = options.width ? options.width : dimensions.width\n height = options.height ? options.height : dimensions.height\n break\n }\n case `inside`: {\n const widthOption = options.width\n ? options.width\n : Number.MAX_SAFE_INTEGER\n const heightOption = options.height\n ? options.height\n : Number.MAX_SAFE_INTEGER\n\n width = Math.min(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.min(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n case `outside`: {\n const widthOption = options.width ? options.width : 0\n const heightOption = options.height ? options.height : 0\n\n width = Math.max(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.max(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n\n default: {\n if (options.width && !options.height) {\n width = options.width\n height = Math.round(options.width / imageAspectRatio)\n }\n\n if (options.height && !options.width) {\n width = Math.round(options.height * imageAspectRatio)\n height = options.height\n }\n }\n }\n\n return {\n width,\n height,\n aspectRatio: width / height,\n }\n}\n","/* eslint-disable no-unused-expressions */\nimport {\n useState,\n CSSProperties,\n useEffect,\n HTMLAttributes,\n ImgHTMLAttributes,\n ReactEventHandler,\n SetStateAction,\n Dispatch,\n RefObject,\n} from \"react\"\nimport { Node } from \"gatsby\"\nimport { PlaceholderProps } from \"./placeholder\"\nimport { MainImageProps } from \"./main-image\"\nimport type { IGatsbyImageData } from \"./gatsby-image.browser\"\nimport {\n IGatsbyImageHelperArgs,\n generateImageData,\n Layout,\n EVERY_BREAKPOINT,\n IImage,\n ImageFormat,\n} from \"../image-utils\"\nconst imageCache = new Set()\n\n// Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\nexport const hasNativeLazyLoadSupport = (): boolean =>\n typeof HTMLImageElement !== `undefined` &&\n `loading` in HTMLImageElement.prototype\n\nexport function gatsbyImageIsInstalled(): boolean {\n return typeof GATSBY___IMAGE !== `undefined` && GATSBY___IMAGE\n}\n\nexport function storeImageloaded(cacheKey?: string): void {\n if (cacheKey) {\n imageCache.add(cacheKey)\n }\n}\n\nexport function hasImageLoaded(cacheKey: string): boolean {\n return imageCache.has(cacheKey)\n}\nexport type IGatsbyImageDataParent = T & {\n gatsbyImageData: IGatsbyImageData\n}\nexport type FileNode = Node & {\n childImageSharp?: IGatsbyImageDataParent\n}\n\nconst isGatsbyImageData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageData | any\n): node is IGatsbyImageData =>\n // 🦆 check for a deep prop to be sure this is a valid gatsbyImageData object\n Boolean(node?.images?.fallback?.src)\n\nconst isGatsbyImageDataParent = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageDataParent | any\n): node is IGatsbyImageDataParent => Boolean(node?.gatsbyImageData)\n\nexport type ImageDataLike = FileNode | IGatsbyImageDataParent | IGatsbyImageData\nexport const getImage = (node: ImageDataLike): IGatsbyImageData | undefined => {\n if (isGatsbyImageData(node)) {\n return node\n }\n if (isGatsbyImageDataParent(node)) {\n return node.gatsbyImageData\n }\n return node?.childImageSharp?.gatsbyImageData\n}\n\nexport const getSrc = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.src\n\nexport const getSrcSet = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.srcSet\n\nexport function getWrapperProps(\n width: number,\n height: number,\n layout: Layout\n): Pick, \"className\" | \"style\"> & {\n \"data-gatsby-image-wrapper\": string\n} {\n const wrapperStyle: CSSProperties = {}\n\n let className = `gatsby-image-wrapper`\n\n // If the plugin isn't installed we need to apply the styles inline\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.position = `relative`\n wrapperStyle.overflow = `hidden`\n }\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n } else if (layout === `constrained`) {\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.display = `inline-block`\n wrapperStyle.verticalAlign = `top`\n }\n className = `gatsby-image-wrapper gatsby-image-wrapper-constrained`\n }\n\n return {\n className,\n \"data-gatsby-image-wrapper\": ``,\n style: wrapperStyle,\n }\n}\n\nexport async function applyPolyfill(\n ref: RefObject\n): Promise {\n if (!(`objectFitPolyfill` in window)) {\n await import(\n // @ts-ignore typescript can't find the module for some reason ¯\\_(ツ)_/¯\n /* webpackChunkName: \"gatsby-plugin-image-objectfit-polyfill\" */ `objectFitPolyfill`\n )\n }\n ;(window as any).objectFitPolyfill(ref.current)\n}\n\nexport interface IUrlBuilderArgs {\n width: number\n height: number\n baseUrl: string\n format: ImageFormat\n options: OptionsType\n}\nexport interface IGetImageDataArgs> {\n baseUrl: string\n /**\n * For constrained and fixed images, the size of the image element\n */\n width?: number\n height?: number\n /**\n * If available, pass the source image width and height\n */\n sourceWidth?: number\n sourceHeight?: number\n /**\n * If only one dimension is passed, then this will be used to calculate the other.\n */\n aspectRatio?: number\n layout?: Layout\n /**\n * Returns a URL based on the passed arguments. Should be a pure function\n */\n urlBuilder: (args: IUrlBuilderArgs) => string\n\n /**\n * Should be a data URI\n */\n placeholderURL?: string\n backgroundColor?: string\n /**\n * Used in error messages etc\n */\n pluginName?: string\n\n /**\n * If you do not support auto-format, pass an array of image types here\n */\n formats?: Array\n\n breakpoints?: Array\n\n /**\n * Passed to the urlBuilder function\n */\n options?: OptionsType\n}\n\n/**\n * Use this hook to generate gatsby-plugin-image data in the browser.\n */\nexport function getImageData({\n baseUrl,\n urlBuilder,\n sourceWidth,\n sourceHeight,\n pluginName = `getImageData`,\n formats = [`auto`],\n breakpoints,\n options,\n ...props\n}: IGetImageDataArgs): IGatsbyImageData {\n if (\n !breakpoints?.length &&\n (props.layout === `fullWidth` || (props.layout as string) === `FULL_WIDTH`)\n ) {\n breakpoints = EVERY_BREAKPOINT\n }\n const generateImageSource = (\n baseUrl: string,\n width: number,\n height?: number,\n format?: ImageFormat\n ): IImage => {\n return {\n width,\n height,\n format,\n src: urlBuilder({ baseUrl, width, height, options, format }),\n }\n }\n\n const sourceMetadata: IGatsbyImageHelperArgs[\"sourceMetadata\"] = {\n width: sourceWidth,\n height: sourceHeight,\n format: `auto`,\n }\n\n const args: IGatsbyImageHelperArgs = {\n ...props,\n pluginName,\n generateImageSource,\n filename: baseUrl,\n formats,\n breakpoints,\n sourceMetadata,\n }\n return generateImageData(args)\n}\n\nexport function getMainProps(\n isLoading: boolean,\n isLoaded: boolean,\n images: IGatsbyImageData[\"images\"],\n loading?: \"eager\" | \"lazy\",\n toggleLoaded?: (loaded: boolean) => void,\n cacheKey?: string,\n ref?: RefObject,\n style: CSSProperties = {}\n): Partial {\n const onLoad: ReactEventHandler = function (e) {\n if (isLoaded) {\n return\n }\n\n storeImageloaded(cacheKey)\n\n const target = e.currentTarget\n const img = new Image()\n img.src = target.currentSrc\n\n if (img.decode) {\n // Decode the image through javascript to support our transition\n img\n .decode()\n .catch(() => {\n // ignore error, we just go forward\n })\n .then(() => {\n toggleLoaded(true)\n })\n } else {\n toggleLoaded(true)\n }\n }\n\n // Polyfill \"object-fit\" if unsupported (mostly IE)\n if (ref?.current && !(`objectFit` in document.documentElement.style)) {\n ref.current.dataset.objectFit = style.objectFit ?? `cover`\n ref.current.dataset.objectPosition = `${style.objectPosition ?? `50% 50%`}`\n applyPolyfill(ref)\n }\n\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n transform: `translateZ(0)`,\n transition: `opacity 250ms linear`,\n width: `100%`,\n willChange: `opacity`,\n ...style,\n }\n }\n\n const result = {\n ...images,\n loading,\n shouldLoad: isLoading,\n \"data-main-image\": ``,\n style: {\n ...style,\n opacity: isLoaded ? 1 : 0,\n },\n onLoad,\n ref,\n }\n\n return result\n}\n\nexport type PlaceholderImageAttrs = ImgHTMLAttributes &\n Pick & {\n \"data-placeholder-image\"?: string\n }\n\nexport function getPlaceholderProps(\n placeholder: PlaceholderImageAttrs | undefined,\n isLoaded: boolean,\n layout: Layout,\n width?: number,\n height?: number,\n backgroundColor?: string,\n objectFit?: CSSProperties[\"objectFit\"],\n objectPosition?: CSSProperties[\"objectPosition\"]\n): PlaceholderImageAttrs {\n const wrapperStyle: CSSProperties = {}\n\n if (backgroundColor) {\n wrapperStyle.backgroundColor = backgroundColor\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n wrapperStyle.backgroundColor = backgroundColor\n wrapperStyle.position = `relative`\n } else if (layout === `constrained`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n } else if (layout === `fullWidth`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n }\n }\n\n if (objectFit) {\n wrapperStyle.objectFit = objectFit\n }\n\n if (objectPosition) {\n wrapperStyle.objectPosition = objectPosition\n }\n const result: PlaceholderImageAttrs = {\n ...placeholder,\n \"aria-hidden\": true,\n \"data-placeholder-image\": ``,\n style: {\n opacity: isLoaded ? 0 : 1,\n transition: `opacity 500ms linear`,\n ...wrapperStyle,\n },\n }\n\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n result.style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n width: `100%`,\n }\n }\n\n return result\n}\n\nexport function useImageLoaded(\n cacheKey: string,\n loading: \"lazy\" | \"eager\",\n ref: any\n): {\n isLoaded: boolean\n isLoading: boolean\n toggleLoaded: Dispatch>\n} {\n const [isLoaded, toggleLoaded] = useState(false)\n const [isLoading, toggleIsLoading] = useState(loading === `eager`)\n\n const rAF =\n typeof window !== `undefined` && `requestAnimationFrame` in window\n ? requestAnimationFrame\n : function (cb: TimerHandler): number {\n return setTimeout(cb, 16)\n }\n const cRAF =\n typeof window !== `undefined` && `cancelAnimationFrame` in window\n ? cancelAnimationFrame\n : clearTimeout\n\n useEffect(() => {\n let interval: number\n // @see https://stackoverflow.com/questions/44074747/componentdidmount-called-before-ref-callback/50019873#50019873\n function toggleIfRefExists(): void {\n if (ref.current) {\n if (loading === `eager` && ref.current.complete) {\n storeImageloaded(cacheKey)\n toggleLoaded(true)\n } else {\n toggleIsLoading(true)\n }\n } else {\n interval = rAF(toggleIfRefExists)\n }\n }\n toggleIfRefExists()\n\n return (): void => {\n cRAF(interval)\n }\n }, [])\n\n return {\n isLoading,\n isLoaded,\n toggleLoaded,\n }\n}\n\nexport interface IArtDirectedImage {\n media: string\n image: IGatsbyImageData\n}\n\n/**\n * Generate a Gatsby image data object with multiple, art-directed images that display at different\n * resolutions.\n *\n * @param defaultImage The image displayed when no media query matches.\n * It is also used for all other settings applied to the image, such as width, height and layout.\n * You should pass a className to the component with media queries to adjust the size of the container,\n * as this cannot be adjusted automatically.\n * @param artDirected Array of objects which each contains a `media` string which is a media query\n * such as `(min-width: 320px)`, and the image object to use when that query matches.\n */\nexport function withArtDirection(\n defaultImage: IGatsbyImageData,\n artDirected: Array\n): IGatsbyImageData {\n const { images, placeholder, ...props } = defaultImage\n const output: IGatsbyImageData = {\n ...props,\n images: {\n ...images,\n sources: [],\n },\n placeholder: placeholder && {\n ...placeholder,\n sources: [],\n },\n }\n\n artDirected.forEach(({ media, image }) => {\n if (!media) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(\n \"[gatsby-plugin-image] All art-directed images passed to must have a value set for `media`. Skipping.\"\n )\n }\n return\n }\n\n if (\n image.layout !== defaultImage.layout &&\n process.env.NODE_ENV === `development`\n ) {\n console.warn(\n `[gatsby-plugin-image] Mismatched image layout: expected \"${defaultImage.layout}\" but received \"${image.layout}\". All art-directed images use the same layout as the default image`\n )\n }\n\n output.images.sources.push(\n ...image.images.sources.map(source => {\n return { ...source, media }\n }),\n {\n media,\n srcSet: image.images.fallback.srcSet,\n }\n )\n\n if (!output.placeholder) {\n return\n }\n\n output.placeholder.sources.push({\n media,\n srcSet: image.placeholder.fallback,\n })\n })\n output.images.sources.push(...images.sources)\n if (placeholder?.sources) {\n output.placeholder?.sources.push(...placeholder.sources)\n }\n return output\n}\n","// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \n\nimport React, { Fragment, FunctionComponent } from \"react\"\nimport terserMacro from \"../../macros/terser.macro\"\nimport { Layout } from \"../image-utils\"\n\nexport interface ILayoutWrapperProps {\n layout: Layout\n width: number\n height: number\n}\n\nconst NativeScriptLoading: FunctionComponent = () => (\n \n)\n\nexport function getSizer(\n layout: Layout,\n width: number,\n height: number\n): string {\n let sizer: string | null = null\n if (layout === `fullWidth`) {\n sizer = `
`\n }\n if (layout === `constrained`) {\n sizer = `
\"\"
`\n }\n return sizer\n}\n\nconst Sizer: FunctionComponent = function Sizer({\n layout,\n width,\n height,\n}) {\n if (layout === `fullWidth`) {\n return (\n
\n )\n }\n if (layout === `constrained`) {\n return (\n
\n \n
\n )\n }\n\n return null\n}\n\nexport const LayoutWrapper: FunctionComponent =\n function LayoutWrapper({ children, ...props }) {\n return (\n \n \n {children}\n\n {\n // eslint-disable-next-line no-undef\n SERVER && \n }\n \n )\n }\n","/* eslint-disable filenames/match-regex */\nimport React, {\n FunctionComponent,\n ImgHTMLAttributes,\n forwardRef,\n LegacyRef,\n} from \"react\"\nimport * as PropTypes from \"prop-types\"\n\nexport interface IResponsiveImageProps {\n sizes?: string\n srcSet: string\n}\n\nexport type SourceProps = IResponsiveImageProps &\n (\n | {\n media: string\n type?: string\n }\n | {\n media?: string\n type: string\n }\n )\n\ntype FallbackProps = { src: string } & Partial\n\ntype ImageProps = ImgHTMLAttributes & {\n src: string\n alt: string\n shouldLoad: boolean\n innerRef: LegacyRef\n}\n\nexport type PictureProps = ImgHTMLAttributes & {\n fallback?: FallbackProps\n sources?: Array\n alt: string\n shouldLoad?: boolean\n}\n\nconst Image: FunctionComponent = function Image({\n src,\n srcSet,\n loading,\n alt = ``,\n shouldLoad,\n innerRef,\n ...props\n}) {\n return (\n \n )\n}\n\nexport const Picture = forwardRef(\n function Picture(\n { fallback, sources = [], shouldLoad = true, ...props },\n ref\n ) {\n const sizes = props.sizes || fallback?.sizes\n const fallbackImage = (\n \n )\n\n if (!sources.length) {\n return fallbackImage\n }\n\n return (\n \n {sources.map(({ media, srcSet, type }) => (\n \n ))}\n {fallbackImage}\n \n )\n }\n)\n\nImage.propTypes = {\n src: PropTypes.string.isRequired,\n alt: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string,\n shouldLoad: PropTypes.bool,\n}\n\nPicture.displayName = `Picture`\nPicture.propTypes = {\n alt: PropTypes.string.isRequired,\n shouldLoad: PropTypes.bool,\n fallback: PropTypes.exact({\n src: PropTypes.string.isRequired,\n srcSet: PropTypes.string,\n sizes: PropTypes.string,\n }),\n sources: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.exact({\n media: PropTypes.string.isRequired,\n type: PropTypes.string,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n PropTypes.exact({\n media: PropTypes.string,\n type: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n ])\n ),\n}\n","import React, { FunctionComponent, ImgHTMLAttributes } from \"react\"\nimport * as PropTypes from \"prop-types\"\nimport { Picture, SourceProps } from \"./picture\"\n\nexport type PlaceholderProps = ImgHTMLAttributes & {\n fallback?: string\n sources?: Array\n}\n\nexport const Placeholder: FunctionComponent =\n function Placeholder({ fallback, ...props }) {\n if (fallback) {\n return (\n \n )\n } else {\n return
\n }\n }\n\nPlaceholder.displayName = `Placeholder`\nPlaceholder.propTypes = {\n fallback: PropTypes.string,\n sources: Picture.propTypes?.sources,\n alt: function (props, propName, componentName): Error | null {\n if (!props[propName]) {\n return null\n }\n return new Error(\n `Invalid prop \\`${propName}\\` supplied to \\`${componentName}\\`. Validation failed.`\n )\n },\n}\n","import React, { forwardRef } from \"react\"\nimport { Picture, PictureProps } from \"./picture\"\n\nexport type MainImageProps = PictureProps\n\nexport const MainImage = forwardRef(\n function MainImage(props, ref) {\n return (\n <>\n \n \n \n )\n }\n)\n\nMainImage.displayName = `MainImage`\nMainImage.propTypes = Picture.propTypes\n","import React, {\n ElementType,\n FunctionComponent,\n CSSProperties,\n WeakValidationMap,\n} from \"react\"\nimport { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\nimport { getWrapperProps, getMainProps, getPlaceholderProps } from \"./hooks\"\nimport { Placeholder } from \"./placeholder\"\nimport { MainImage, MainImageProps } from \"./main-image\"\nimport { LayoutWrapper } from \"./layout-wrapper\"\nimport PropTypes from \"prop-types\"\n\nconst removeNewLines = (str: string): string => str.replace(/\\n/g, ``)\n\nexport const GatsbyImageHydrator: FunctionComponent<{\n as?: ElementType\n style?: CSSProperties\n className?: string\n}> = function GatsbyImageHydrator({ as: Type = `div`, children, ...props }) {\n return {children}\n}\n\nexport const GatsbyImage: FunctionComponent =\n function GatsbyImage({\n as,\n className,\n class: preactClass,\n style,\n image,\n loading = `lazy`,\n imgClassName,\n imgStyle,\n backgroundColor,\n objectFit,\n objectPosition,\n ...props\n }) {\n if (!image) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n return null\n }\n if (preactClass) {\n className = preactClass\n }\n imgStyle = {\n objectFit,\n objectPosition,\n backgroundColor,\n ...imgStyle,\n }\n\n const {\n width,\n height,\n layout,\n images,\n placeholder,\n backgroundColor: placeholderBackgroundColor,\n } = image\n\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n\n const cleanedImages: IGatsbyImageData[\"images\"] = {\n fallback: undefined,\n sources: [],\n }\n if (images.fallback) {\n cleanedImages.fallback = {\n ...images.fallback,\n srcSet: images.fallback.srcSet\n ? removeNewLines(images.fallback.srcSet)\n : undefined,\n }\n }\n\n if (images.sources) {\n cleanedImages.sources = images.sources.map(source => {\n return {\n ...source,\n srcSet: removeNewLines(source.srcSet),\n }\n })\n }\n\n return (\n \n \n \n\n )}\n // When eager is set we want to start the isLoading state on true (we want to load the img without react)\n {...getMainProps(\n loading === `eager`,\n false,\n cleanedImages,\n loading,\n undefined,\n undefined,\n undefined,\n imgStyle\n )}\n />\n \n \n )\n }\n\nexport const altValidator: PropTypes.Validator = (\n props: GatsbyImageProps,\n propName,\n componentName,\n ...rest\n): Error | undefined => {\n if (!props.alt && props.alt !== ``) {\n return new Error(\n `The \"alt\" prop is required in ${componentName}. If the image is purely presentational then pass an empty string: e.g. alt=\"\". Learn more: https://a11y-style-guide.com/style-guide/section-media.html`\n )\n }\n return PropTypes.string(props, propName, componentName, ...rest)\n}\nexport const propTypes = {\n image: PropTypes.object.isRequired,\n alt: altValidator,\n} as WeakValidationMap\n","/* eslint-disable no-unused-expressions */\nimport React, {\n Component,\n ElementType,\n createRef,\n MutableRefObject,\n FunctionComponent,\n ImgHTMLAttributes,\n RefObject,\n CSSProperties,\n} from \"react\"\nimport {\n getWrapperProps,\n hasNativeLazyLoadSupport,\n storeImageloaded,\n hasImageLoaded,\n gatsbyImageIsInstalled,\n} from \"./hooks\"\nimport { PlaceholderProps } from \"./placeholder\"\nimport { MainImageProps } from \"./main-image\"\nimport { Layout } from \"../image-utils\"\nimport { getSizer } from \"./layout-wrapper\"\nimport { propTypes } from \"./gatsby-image.server\"\nimport { Unobserver } from \"./intersection-observer\"\nimport { render } from \"react-dom\"\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport interface GatsbyImageProps\n extends Omit<\n ImgHTMLAttributes,\n \"placeholder\" | \"onLoad\" | \"src\" | \"srcSet\" | \"width\" | \"height\"\n > {\n alt: string\n as?: ElementType\n className?: string\n class?: string\n imgClassName?: string\n image: IGatsbyImageData\n imgStyle?: CSSProperties\n backgroundColor?: string\n objectFit?: CSSProperties[\"objectFit\"]\n objectPosition?: CSSProperties[\"objectPosition\"]\n onLoad?: () => void\n onError?: () => void\n onStartLoad?: (props: { wasCached?: boolean }) => void\n}\n\nexport interface IGatsbyImageData {\n layout: Layout\n width: number\n height: number\n backgroundColor?: string\n images: Pick\n placeholder?: Pick\n}\n\nclass GatsbyImageHydrator extends Component<\n GatsbyImageProps,\n { isLoading: boolean; isLoaded: boolean }\n> {\n root: RefObject = createRef<\n HTMLImageElement | undefined\n >()\n hydrated: MutableRefObject = { current: false }\n forceRender: MutableRefObject = {\n // In dev we use render not hydrate, to avoid hydration warnings\n current: process.env.NODE_ENV === `development`,\n }\n lazyHydrator: () => void | null = null\n ref = createRef()\n unobserveRef: Unobserver\n\n constructor(props) {\n super(props)\n\n this.state = {\n isLoading: hasNativeLazyLoadSupport(),\n isLoaded: false,\n }\n }\n\n _lazyHydrate(props, state): Promise {\n const hasSSRHtml = this.root.current.querySelector(\n `[data-gatsby-image-ssr]`\n )\n // On first server hydration do nothing\n if (hasNativeLazyLoadSupport() && hasSSRHtml && !this.hydrated.current) {\n this.hydrated.current = true\n return Promise.resolve()\n }\n\n return import(`./lazy-hydrate`).then(({ lazyHydrate }) => {\n const cacheKey = JSON.stringify(this.props.image.images)\n this.lazyHydrator = lazyHydrate(\n {\n image: props.image.images,\n isLoading: state.isLoading || hasImageLoaded(cacheKey),\n isLoaded: state.isLoaded || hasImageLoaded(cacheKey),\n toggleIsLoaded: () => {\n props.onLoad?.()\n\n this.setState({\n isLoaded: true,\n })\n },\n ref: this.ref,\n ...props,\n },\n this.root,\n this.hydrated,\n this.forceRender\n )\n })\n }\n\n /**\n * Choose if setupIntersectionObserver should use the image cache or not.\n */\n _setupIntersectionObserver(useCache = true): void {\n import(`./intersection-observer`).then(({ createIntersectionObserver }) => {\n const intersectionObserver = createIntersectionObserver(() => {\n if (this.root.current) {\n const cacheKey = JSON.stringify(this.props.image.images)\n this.props.onStartLoad?.({\n wasCached: useCache && hasImageLoaded(cacheKey),\n })\n this.setState({\n isLoading: true,\n isLoaded: useCache && hasImageLoaded(cacheKey),\n })\n }\n })\n\n if (this.root.current) {\n this.unobserveRef = intersectionObserver(this.root)\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState): boolean {\n let hasChanged = false\n if (!this.state.isLoading && nextState.isLoading && !nextState.isLoaded) {\n // Props have changed between SSR and hydration, so we need to force render instead of hydrate\n this.forceRender.current = true\n }\n // this check mostly means people do not have the correct ref checks in place, we want to reset some state to suppport loading effects\n if (this.props.image.images !== nextProps.image.images) {\n // reset state, we'll rely on intersection observer to reload\n if (this.unobserveRef) {\n // unregister intersectionObserver\n this.unobserveRef()\n\n // // on unmount, make sure we cleanup\n if (this.hydrated.current && this.lazyHydrator) {\n render(null, this.root.current)\n }\n }\n\n this.setState(\n {\n isLoading: false,\n isLoaded: false,\n },\n () => {\n this._setupIntersectionObserver(false)\n }\n )\n\n hasChanged = true\n }\n\n if (this.root.current && !hasChanged) {\n this._lazyHydrate(nextProps, nextState)\n }\n\n return false\n }\n\n componentDidMount(): void {\n if (this.root.current) {\n const ssrElement = this.root.current.querySelector(\n `[data-gatsby-image-ssr]`\n ) as HTMLImageElement\n const cacheKey = JSON.stringify(this.props.image.images)\n\n // when SSR and native lazyload is supported we'll do nothing ;)\n if (\n hasNativeLazyLoadSupport() &&\n ssrElement &&\n gatsbyImageIsInstalled()\n ) {\n this.props.onStartLoad?.({ wasCached: false })\n\n // When the image is already loaded before we have hydrated, we trigger onLoad and cache the item\n if (ssrElement.complete) {\n this.props.onLoad?.()\n storeImageloaded(cacheKey)\n } else {\n // We need the current class context (this) inside our named onLoad function\n // The named function is necessary to easily remove the listener afterward.\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const _this = this\n // add an onLoad to the image\n ssrElement.addEventListener(`load`, function onLoad() {\n ssrElement.removeEventListener(`load`, onLoad)\n\n _this.props.onLoad?.()\n storeImageloaded(cacheKey)\n })\n }\n\n return\n }\n\n // Fallback to custom lazy loading (intersection observer)\n this._setupIntersectionObserver(true)\n }\n }\n\n componentWillUnmount(): void {\n // Cleanup when onmount happens\n if (this.unobserveRef) {\n // unregister intersectionObserver\n this.unobserveRef()\n\n // on unmount, make sure we cleanup\n if (this.hydrated.current && this.lazyHydrator) {\n this.lazyHydrator()\n }\n }\n\n return\n }\n\n render(): JSX.Element {\n const Type = this.props.as || `div`\n const { width, height, layout } = this.props.image\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n\n let className = this.props.className\n // preact class\n if (this.props.class) {\n className = this.props.class\n }\n\n const sizer = getSizer(layout, width, height)\n\n return (\n \n )\n }\n}\n\nexport const GatsbyImage: FunctionComponent =\n function GatsbyImage(props) {\n if (!props.image) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n }\n return null\n }\n\n if (!gatsbyImageIsInstalled() && process.env.NODE_ENV === `development`) {\n console.warn(\n `[gatsby-plugin-image] You're missing out on some cool performance features. Please add \"gatsby-plugin-image\" to your gatsby-config.js`\n )\n }\n const { className, class: classSafe, backgroundColor, image } = props\n const { width, height, layout } = image\n const propsKey = JSON.stringify([\n width,\n height,\n layout,\n className,\n classSafe,\n backgroundColor,\n ])\n return \n }\n\nGatsbyImage.propTypes = propTypes\n\nGatsbyImage.displayName = `GatsbyImage`\n","import React, { FunctionComponent, ReactElement } from \"react\"\nimport {\n altValidator,\n GatsbyImage as GatsbyImageServer,\n} from \"./gatsby-image.server\"\nimport { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\nimport PropTypes from \"prop-types\"\nimport { ISharpGatsbyImageArgs } from \"../image-utils\"\n\nexport interface IStaticImageProps\n extends Omit,\n Omit {\n src: string\n}\n\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nexport function _getStaticImage(\n GatsbyImage: FunctionComponent\n): React.FC {\n return function StaticImage({\n src,\n __imageData: imageData,\n __error,\n // We extract these because they're not meant to be passed-down to GatsbyImage\n /* eslint-disable @typescript-eslint/no-unused-vars */\n width,\n height,\n aspectRatio,\n tracedSVGOptions,\n placeholder,\n formats,\n quality,\n transformOptions,\n jpgOptions,\n pngOptions,\n webpOptions,\n avifOptions,\n blurredOptions,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...props\n }): ReactElement {\n if (__error) {\n console.warn(__error)\n }\n\n if (imageData) {\n return \n }\n console.warn(`Image not loaded`, src)\n if (!__error && process.env.NODE_ENV === `development`) {\n console.warn(\n `Please ensure that \"gatsby-plugin-image\" is included in the plugins array in gatsby-config.js, and that your version of gatsby is at least 2.24.78`\n )\n }\n return null\n }\n}\n\nconst StaticImage: React.FC =\n _getStaticImage(GatsbyImageServer)\n\nconst checkDimensionProps: PropTypes.Validator = (\n props: IStaticImageProps & IPrivateProps,\n propName: keyof IStaticImageProps & IPrivateProps,\n ...rest\n) => {\n if (\n props.layout === `fullWidth` &&\n (propName === `width` || propName === `height`) &&\n props[propName]\n ) {\n return new Error(\n `\"${propName}\" ${props[propName]} may not be passed when layout is fullWidth.`\n )\n }\n return PropTypes.number(props, propName, ...rest)\n}\n\nconst validLayouts = new Set([`fixed`, `fullWidth`, `constrained`])\n\nexport const propTypes = {\n src: PropTypes.string.isRequired,\n alt: altValidator,\n width: checkDimensionProps,\n height: checkDimensionProps,\n sizes: PropTypes.string,\n layout: (props: IStaticImageProps & IPrivateProps): Error | undefined => {\n if (props.layout === undefined) {\n return undefined\n }\n if (validLayouts.has(props.layout)) {\n return undefined\n }\n\n return new Error(\n `Invalid value ${props.layout}\" provided for prop \"layout\". Defaulting to \"constrained\". Valid values are \"fixed\", \"fullWidth\" or \"constrained\".`\n )\n },\n}\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","import {\n GatsbyImage as GatsbyImageBrowser,\n IGatsbyImageData,\n} from \"./gatsby-image.browser\"\nimport React from \"react\"\nimport {\n _getStaticImage,\n propTypes,\n IStaticImageProps,\n} from \"./static-image.server\"\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nconst StaticImage: React.FC =\n _getStaticImage(GatsbyImageBrowser)\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","import * as React from \"react\"\nexport function LaterHydrator({\n children,\n}: React.PropsWithChildren>): React.ReactNode {\n React.useEffect(() => {\n // eslint-disable-next-line no-unused-expressions\n import(`./lazy-hydrate`)\n }, [])\n\n return children\n}\n","import React from \"react\"\nimport { LaterHydrator } from \".\"\n\nexport function wrapRootElement({ element }) {\n return {element}\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _gatsby = require(\"gatsby\");\n\nvar _getManifestPathname = _interopRequireDefault(require(\"./get-manifest-pathname\"));\n\n/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\n// when we don't have localisation in our manifest, we tree shake everything away\nif (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n exports.onRouteUpdate = function (_ref, pluginOptions) {\n var location = _ref.location;\n var localize = pluginOptions.localize;\n var manifestFilename = (0, _getManifestPathname.default)(location.pathname, localize);\n var manifestEl = document.head.querySelector(\"link[rel=\\\"manifest\\\"]\");\n\n if (manifestEl) {\n manifestEl.setAttribute(\"href\", (0, _gatsby.withPrefix)(manifestFilename));\n }\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @return string\n */\nvar _default = function _default(pathname, localizedManifests) {\n var defaultFilename = \"manifest.webmanifest\";\n\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n\n var localizedManifest = localizedManifests.find(function (app) {\n return pathname.startsWith(app.start_url);\n });\n\n if (!localizedManifest) {\n return defaultFilename;\n }\n\n return \"manifest_\" + localizedManifest.lang + \".webmanifest\";\n};\n\nexports.default = _default;","import invariant from \"invariant\"; ////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\n\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n}; ////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\n\n\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : invariant(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n}; ////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\n\n\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\n}; ////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\n\n\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname); // ?a=b, /users?b=c => /users?a=b\n\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n } // profile, /users/789 => /users/789/profile\n\n\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n } // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n\n\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n}; ////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar paramRe = /^:(.+)/;\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\n\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\n\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return {\n route: route,\n score: score,\n index: index\n };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\n\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n}; ////////////////////////////////////////////////////////////////////////////////\n\n\nexport { startsWith, pick, match, resolve, insertParams, validateRedirect, shallowCompare };","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({\n location: location,\n action: \"POP\"\n });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, {\n key: Date.now() + \"\"\n }); // try...catch iOS Safari limits to 100 pushState calls\n\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({\n location: location,\n action: \"PUSH\"\n });\n });\n return transition;\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\n\n\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n return {\n get location() {\n return stack[index];\n },\n\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n\n get index() {\n return index;\n },\n\n get state() {\n return states[index];\n },\n\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({\n pathname: pathname,\n search: search.length ? \"?\" + search : search\n });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = {\n pathname: pathname,\n search: search\n };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\n\n\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate; ////////////////////////////////////////////////////////////////////////////////\n\nexport { globalHistory, navigate, createHistory, createMemorySource };","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n/* eslint-disable jsx-a11y/anchor-has-content */\n\n\nimport React, { useContext, createContext } from \"react\";\nimport invariant from \"invariant\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { startsWith, pick, resolve, match, insertParams, validateRedirect, shallowCompare } from \"./lib/utils\";\nimport { globalHistory, navigate, createHistory, createMemorySource } from \"./lib/history\"; ////////////////////////////////////////////////////////////////////////////////\n\nvar createNamedContext = function createNamedContext(name, defaultValue) {\n var Ctx = createContext(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Location Context/Provider\n\n\nvar LocationContext = createNamedContext(\"Location\"); // sets up a listener if there isn't one already so apps don't need to be\n// wrapped in some top level provider\n\nvar Location = function Location(_ref) {\n var children = _ref.children;\n return React.createElement(LocationContext.Consumer, null, function (context) {\n return context ? children(context) : React.createElement(LocationProvider, null, children);\n });\n};\n\nvar LocationProvider = function (_React$Component) {\n _inherits(LocationProvider, _React$Component);\n\n function LocationProvider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, LocationProvider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n context: _this.getContext(),\n refs: {\n unlisten: null\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n LocationProvider.prototype.getContext = function getContext() {\n var _props$history = this.props.history,\n navigate = _props$history.navigate,\n location = _props$history.location;\n return {\n navigate: navigate,\n location: location\n };\n };\n\n LocationProvider.prototype.componentDidCatch = function componentDidCatch(error, info) {\n if (isRedirect(error)) {\n var _navigate = this.props.history.navigate;\n\n _navigate(error.uri, {\n replace: true\n });\n } else {\n throw error;\n }\n };\n\n LocationProvider.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevState.context.location !== this.state.context.location) {\n this.props.history._onTransitionComplete();\n }\n };\n\n LocationProvider.prototype.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n var refs = this.state.refs,\n history = this.props.history;\n\n history._onTransitionComplete();\n\n refs.unlisten = history.listen(function () {\n Promise.resolve().then(function () {\n // TODO: replace rAF with react deferred update API when it's ready https://github.com/facebook/react/issues/13306\n requestAnimationFrame(function () {\n if (!_this2.unmounted) {\n _this2.setState(function () {\n return {\n context: _this2.getContext()\n };\n });\n }\n });\n });\n });\n };\n\n LocationProvider.prototype.componentWillUnmount = function componentWillUnmount() {\n var refs = this.state.refs;\n this.unmounted = true;\n refs.unlisten();\n };\n\n LocationProvider.prototype.render = function render() {\n var context = this.state.context,\n children = this.props.children;\n return React.createElement(LocationContext.Provider, {\n value: context\n }, typeof children === \"function\" ? children(context) : children || null);\n };\n\n return LocationProvider;\n}(React.Component); ////////////////////////////////////////////////////////////////////////////////\n\n\nLocationProvider.defaultProps = {\n history: globalHistory\n};\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n\nvar ServerLocation = function ServerLocation(_ref2) {\n var url = _ref2.url,\n children = _ref2.children;\n var searchIndex = url.indexOf(\"?\");\n var searchExists = searchIndex > -1;\n var pathname = void 0;\n var search = \"\";\n var hash = \"\";\n\n if (searchExists) {\n pathname = url.substring(0, searchIndex);\n search = url.substring(searchIndex);\n } else {\n pathname = url;\n }\n\n return React.createElement(LocationContext.Provider, {\n value: {\n location: {\n pathname: pathname,\n search: search,\n hash: hash\n },\n navigate: function navigate() {\n throw new Error(\"You can't call navigate on the server.\");\n }\n }\n }, children);\n}; ////////////////////////////////////////////////////////////////////////////////\n// Sets baseuri and basepath for nested routers and links\n\n\nvar BaseContext = createNamedContext(\"Base\", {\n baseuri: \"/\",\n basepath: \"/\",\n navigate: globalHistory.navigate\n}); ////////////////////////////////////////////////////////////////////////////////\n// The main event, welcome to the show everybody.\n\nvar Router = function Router(props) {\n return React.createElement(BaseContext.Consumer, null, function (baseContext) {\n return React.createElement(Location, null, function (locationContext) {\n return React.createElement(RouterImpl, _extends({}, baseContext, locationContext, props));\n });\n });\n};\n\nvar RouterImpl = function (_React$PureComponent) {\n _inherits(RouterImpl, _React$PureComponent);\n\n function RouterImpl() {\n _classCallCheck(this, RouterImpl);\n\n return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n }\n\n RouterImpl.prototype.render = function render() {\n var _props = this.props,\n location = _props.location,\n _navigate2 = _props.navigate,\n basepath = _props.basepath,\n primary = _props.primary,\n children = _props.children,\n baseuri = _props.baseuri,\n _props$component = _props.component,\n component = _props$component === undefined ? \"div\" : _props$component,\n domProps = _objectWithoutProperties(_props, [\"location\", \"navigate\", \"basepath\", \"primary\", \"children\", \"baseuri\", \"component\"]);\n\n var routes = React.Children.toArray(children).reduce(function (array, child) {\n var routes = createRoute(basepath)(child);\n return array.concat(routes);\n }, []);\n var pathname = location.pathname;\n var match = pick(routes, pathname);\n\n if (match) {\n var params = match.params,\n uri = match.uri,\n route = match.route,\n element = match.route.value; // remove the /* from the end for child routes relative paths\n\n basepath = route.default ? basepath : route.path.replace(/\\*$/, \"\");\n\n var props = _extends({}, params, {\n uri: uri,\n location: location,\n navigate: function navigate(to, options) {\n return _navigate2(resolve(to, uri), options);\n }\n });\n\n var clone = React.cloneElement(element, props, element.props.children ? React.createElement(Router, {\n location: location,\n primary: primary\n }, element.props.children) : undefined); // using 'div' for < 16.3 support\n\n var FocusWrapper = primary ? FocusHandler : component; // don't pass any props to 'div'\n\n var wrapperProps = primary ? _extends({\n uri: uri,\n location: location,\n component: component\n }, domProps) : domProps;\n return React.createElement(BaseContext.Provider, {\n value: {\n baseuri: uri,\n basepath: basepath,\n navigate: props.navigate\n }\n }, React.createElement(FocusWrapper, wrapperProps, clone));\n } else {\n // Not sure if we want this, would require index routes at every level\n // warning(\n // false,\n // `\\n\\nNothing matched:\\n\\t${\n // location.pathname\n // }\\n\\nPaths checked: \\n\\t${routes\n // .map(route => route.path)\n // .join(\n // \"\\n\\t\"\n // )}\\n\\nTo get rid of this warning, add a default NotFound component as child of Router:\n // \\n\\tlet NotFound = () =>
Not Found!
\n // \\n\\t\\n\\t \\n\\t {/* ... */}\\n\\t`\n // );\n return null;\n }\n };\n\n return RouterImpl;\n}(React.PureComponent);\n\nRouterImpl.defaultProps = {\n primary: true\n};\nvar FocusContext = createNamedContext(\"Focus\");\n\nvar FocusHandler = function FocusHandler(_ref3) {\n var uri = _ref3.uri,\n location = _ref3.location,\n component = _ref3.component,\n domProps = _objectWithoutProperties(_ref3, [\"uri\", \"location\", \"component\"]);\n\n return React.createElement(FocusContext.Consumer, null, function (requestFocus) {\n return React.createElement(FocusHandlerImpl, _extends({}, domProps, {\n component: component,\n requestFocus: requestFocus,\n uri: uri,\n location: location\n }));\n });\n}; // don't focus on initial render\n\n\nvar initialRender = true;\nvar focusHandlerCount = 0;\n\nvar FocusHandlerImpl = function (_React$Component2) {\n _inherits(FocusHandlerImpl, _React$Component2);\n\n function FocusHandlerImpl() {\n var _temp2, _this4, _ret2;\n\n _classCallCheck(this, FocusHandlerImpl);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this4 = _possibleConstructorReturn(this, _React$Component2.call.apply(_React$Component2, [this].concat(args))), _this4), _this4.state = {}, _this4.requestFocus = function (node) {\n if (!_this4.state.shouldFocus && node) {\n node.focus();\n }\n }, _temp2), _possibleConstructorReturn(_this4, _ret2);\n }\n\n FocusHandlerImpl.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var initial = prevState.uri == null;\n\n if (initial) {\n return _extends({\n shouldFocus: true\n }, nextProps);\n } else {\n var myURIChanged = nextProps.uri !== prevState.uri;\n var navigatedUpToMe = prevState.location.pathname !== nextProps.location.pathname && nextProps.location.pathname === nextProps.uri;\n return _extends({\n shouldFocus: myURIChanged || navigatedUpToMe\n }, nextProps);\n }\n };\n\n FocusHandlerImpl.prototype.componentDidMount = function componentDidMount() {\n focusHandlerCount++;\n this.focus();\n };\n\n FocusHandlerImpl.prototype.componentWillUnmount = function componentWillUnmount() {\n focusHandlerCount--;\n\n if (focusHandlerCount === 0) {\n initialRender = true;\n }\n };\n\n FocusHandlerImpl.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevProps.location !== this.props.location && this.state.shouldFocus) {\n this.focus();\n }\n };\n\n FocusHandlerImpl.prototype.focus = function focus() {\n if (process.env.NODE_ENV === \"test\") {\n // getting cannot read property focus of null in the tests\n // and that bit of global `initialRender` state causes problems\n // should probably figure it out!\n return;\n }\n\n var requestFocus = this.props.requestFocus;\n\n if (requestFocus) {\n requestFocus(this.node);\n } else {\n if (initialRender) {\n initialRender = false;\n } else if (this.node) {\n // React polyfills [autofocus] and it fires earlier than cDM,\n // so we were stealing focus away, this line prevents that.\n if (!this.node.contains(document.activeElement)) {\n this.node.focus();\n }\n }\n }\n };\n\n FocusHandlerImpl.prototype.render = function render() {\n var _this5 = this;\n\n var _props2 = this.props,\n children = _props2.children,\n style = _props2.style,\n requestFocus = _props2.requestFocus,\n _props2$component = _props2.component,\n Comp = _props2$component === undefined ? \"div\" : _props2$component,\n uri = _props2.uri,\n location = _props2.location,\n domProps = _objectWithoutProperties(_props2, [\"children\", \"style\", \"requestFocus\", \"component\", \"uri\", \"location\"]);\n\n return React.createElement(Comp, _extends({\n style: _extends({\n outline: \"none\"\n }, style),\n tabIndex: \"-1\",\n ref: function ref(n) {\n return _this5.node = n;\n }\n }, domProps), React.createElement(FocusContext.Provider, {\n value: this.requestFocus\n }, this.props.children));\n };\n\n return FocusHandlerImpl;\n}(React.Component);\n\npolyfill(FocusHandlerImpl);\n\nvar k = function k() {}; ////////////////////////////////////////////////////////////////////////////////\n\n\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = function forwardRef(C) {\n return C;\n };\n}\n\nvar Link = forwardRef(function (_ref4, ref) {\n var innerRef = _ref4.innerRef,\n props = _objectWithoutProperties(_ref4, [\"innerRef\"]);\n\n return React.createElement(BaseContext.Consumer, null, function (_ref5) {\n var basepath = _ref5.basepath,\n baseuri = _ref5.baseuri;\n return React.createElement(Location, null, function (_ref6) {\n var location = _ref6.location,\n navigate = _ref6.navigate;\n\n var to = props.to,\n state = props.state,\n replace = props.replace,\n _props$getProps = props.getProps,\n getProps = _props$getProps === undefined ? k : _props$getProps,\n anchorProps = _objectWithoutProperties(props, [\"to\", \"state\", \"replace\", \"getProps\"]);\n\n var href = resolve(to, baseuri);\n var encodedHref = encodeURI(href);\n var isCurrent = location.pathname === encodedHref;\n var isPartiallyCurrent = startsWith(location.pathname, encodedHref);\n return React.createElement(\"a\", _extends({\n ref: ref || innerRef,\n \"aria-current\": isCurrent ? \"page\" : undefined\n }, anchorProps, getProps({\n isCurrent: isCurrent,\n isPartiallyCurrent: isPartiallyCurrent,\n href: href,\n location: location\n }), {\n href: href,\n onClick: function onClick(event) {\n if (anchorProps.onClick) anchorProps.onClick(event);\n\n if (shouldNavigate(event)) {\n event.preventDefault();\n var shouldReplace = replace;\n\n if (typeof replace !== \"boolean\" && isCurrent) {\n var _location$state = _extends({}, location.state),\n key = _location$state.key,\n restState = _objectWithoutProperties(_location$state, [\"key\"]);\n\n shouldReplace = shallowCompare(_extends({}, state), restState);\n }\n\n navigate(href, {\n state: state,\n replace: shouldReplace\n });\n }\n }\n }));\n });\n });\n});\nLink.displayName = \"Link\";\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0; ////////////////////////////////////////////////////////////////////////////////\n\nfunction RedirectRequest(uri) {\n this.uri = uri;\n}\n\nvar isRedirect = function isRedirect(o) {\n return o instanceof RedirectRequest;\n};\n\nvar redirectTo = function redirectTo(to) {\n throw new RedirectRequest(to);\n};\n\nvar RedirectImpl = function (_React$Component3) {\n _inherits(RedirectImpl, _React$Component3);\n\n function RedirectImpl() {\n _classCallCheck(this, RedirectImpl);\n\n return _possibleConstructorReturn(this, _React$Component3.apply(this, arguments));\n } // Support React < 16 with this hook\n\n\n RedirectImpl.prototype.componentDidMount = function componentDidMount() {\n var _props3 = this.props,\n navigate = _props3.navigate,\n to = _props3.to,\n from = _props3.from,\n _props3$replace = _props3.replace,\n replace = _props3$replace === undefined ? true : _props3$replace,\n state = _props3.state,\n noThrow = _props3.noThrow,\n baseuri = _props3.baseuri,\n props = _objectWithoutProperties(_props3, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n Promise.resolve().then(function () {\n var resolvedTo = resolve(to, baseuri);\n navigate(insertParams(resolvedTo, props), {\n replace: replace,\n state: state\n });\n });\n };\n\n RedirectImpl.prototype.render = function render() {\n var _props4 = this.props,\n navigate = _props4.navigate,\n to = _props4.to,\n from = _props4.from,\n replace = _props4.replace,\n state = _props4.state,\n noThrow = _props4.noThrow,\n baseuri = _props4.baseuri,\n props = _objectWithoutProperties(_props4, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n var resolvedTo = resolve(to, baseuri);\n if (!noThrow) redirectTo(insertParams(resolvedTo, props));\n return null;\n };\n\n return RedirectImpl;\n}(React.Component);\n\nvar Redirect = function Redirect(props) {\n return React.createElement(BaseContext.Consumer, null, function (_ref7) {\n var baseuri = _ref7.baseuri;\n return React.createElement(Location, null, function (locationContext) {\n return React.createElement(RedirectImpl, _extends({}, locationContext, {\n baseuri: baseuri\n }, props));\n });\n });\n};\n\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0; ////////////////////////////////////////////////////////////////////////////////\n\nvar Match = function Match(_ref8) {\n var path = _ref8.path,\n children = _ref8.children;\n return React.createElement(BaseContext.Consumer, null, function (_ref9) {\n var baseuri = _ref9.baseuri;\n return React.createElement(Location, null, function (_ref10) {\n var navigate = _ref10.navigate,\n location = _ref10.location;\n var resolvedPath = resolve(path, baseuri);\n var result = match(resolvedPath, location.pathname);\n return children({\n navigate: navigate,\n location: location,\n match: result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null\n });\n });\n });\n}; ////////////////////////////////////////////////////////////////////////////////\n// Hooks\n\n\nvar useLocation = function useLocation() {\n var context = useContext(LocationContext);\n\n if (!context) {\n throw new Error(\"useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.location;\n};\n\nvar useNavigate = function useNavigate() {\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useNavigate hook was used but a BaseContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.navigate;\n};\n\nvar useParams = function useParams() {\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n var results = match(context.basepath, location.pathname);\n return results ? results.params : null;\n};\n\nvar useMatch = function useMatch(path) {\n if (!path) {\n throw new Error(\"useMatch(path: string) requires an argument of a string to match against\");\n }\n\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n var resolvedPath = resolve(path, context.baseuri);\n var result = match(resolvedPath, location.pathname);\n return result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar stripSlashes = function stripSlashes(str) {\n return str.replace(/(^\\/+|\\/+$)/g, \"\");\n};\n\nvar createRoute = function createRoute(basepath) {\n return function (element) {\n if (!element) {\n return null;\n }\n\n if (element.type === React.Fragment && element.props.children) {\n return React.Children.map(element.props.children, createRoute(basepath));\n }\n\n !(element.props.path || element.props.default || element.type === Redirect) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \": Children of must have a `path` or `default` prop, or be a ``. None found on element type `\" + element.type + \"`\") : invariant(false) : void 0;\n !!(element.type === Redirect && (!element.props.from || !element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" requires both \\\"from\\\" and \\\"to\\\" props when inside a .\") : invariant(false) : void 0;\n !!(element.type === Redirect && !validateRedirect(element.props.from, element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.\") : invariant(false) : void 0;\n\n if (element.props.default) {\n return {\n value: element,\n default: true\n };\n }\n\n var elementPath = element.type === Redirect ? element.props.from : element.props.path;\n var path = elementPath === \"/\" ? basepath : stripSlashes(basepath) + \"/\" + stripSlashes(elementPath);\n return {\n value: element,\n default: element.props.default,\n path: element.props.children ? stripSlashes(path) + \"/*\" : path\n };\n };\n};\n\nvar shouldNavigate = function shouldNavigate(event) {\n return !event.defaultPrevented && event.button === 0 && !(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}; ////////////////////////////////////////////////////////////////////////\n\n\nexport { Link, Location, LocationProvider, Match, Redirect, Router, ServerLocation, createHistory, createMemorySource, isRedirect, navigate, redirectTo, globalHistory, match as matchPath, useLocation, useNavigate, useParams, useMatch , BaseContext };","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n"],"names":["module","exports","self","ReferenceError","__esModule","len","arr","length","i","arr2","Array","subClass","prototype","Object","create","superClass","constructor","Symbol","iter","iterator","from","_setPrototypeOf","setPrototypeOf","o","p","__proto__","isArray","arrayLikeToArray","iterableToArray","unsupportedIterableToArray","TypeError","minLen","n","toString","call","slice","name","test","_extends","assign","target","arguments","source","key","hasOwnProperty","apply","this","obj","excluded","sourceKeys","keys","indexOf","ie10","navigator","appVersion","listener","fns","doc","document","hack","documentElement","doScroll","domContentLoaded","loaded","readyState","addEventListener","removeEventListener","shift","fn","setTimeout","push","definition","_a$1","_a","ERRORS","ERROR_FACTORY","name$c","DEFAULT_ENTRY_NAME","PLATFORM_LOG_STRING","logger","FirebaseAppImpl","options","config","firebase_","_this","isDeleted_","name_","automaticDataCollectionEnabled_","automaticDataCollectionEnabled","options_","container","_addComponent","INTERNAL","components","forEach","component","defineProperty","get","checkDestroyed_","set","val","enumerable","configurable","delete","Promise","resolve","then","removeApp","all","getProviders","map","provider","_getService","instanceIdentifier","getProvider","isInitialized","getComponent","instantiationMode","initialize","getImmediate","identifier","_removeServiceInstance","clearInstance","addComponent","e","debug","_addOrOverwriteComponent","addOrOverwriteComponent","toJSON","appName","console","log","firebase$1","createFirebaseNamespace","namespace","firebaseAppImpl","apps","Map","initializeApp","rawConfig","undefined","String","app","registerVersion","libraryKeyOrName","version","variant","library","libraryMismatch","match","versionMismatch","warning","warn","join","registerComponent","setLogLevel","onLog","logCallback","SDK_VERSION","useAsService","componentName","has","type","serviceNamespace","appArg","serviceProps","args","_i","bind","multipleInstances","createFirebaseNamespaceCore","extendNamespace","props","createSubscribe","ErrorFactory","deepExtend","PlatformLoggerService","getPlatformInfoString","isVersionServiceProvider","service","filter","logString","firebase","sdkVersion","registerCoreComponents","Component","instanceFactory","onInstanceCreated","setInstantiationMode","mode","setMultipleInstances","setServiceProps","setInstanceCreatedCallback","callback","Provider","instances","instancesDeferred","onInitCallbacks","normalizedIdentifier","normalizeInstanceIdentifier","deferred","shouldAutoInitialize","instance","getOrInitializeService","promise","optional","Error","setComponent","e_1","isComponentEager","_b","entries","_c","next","done","_d","value","instanceDeferred","e_1_1","error","return","services","label","values","_delete","sent","isComponentSet","opts","e_2","_e","e_2_1","onInit","existingCallbacks","Set","add","existingInstance","invokeOnInitCallbacks","e_3","callbacks","callbacks_1","callbacks_1_1","e_3_1","ComponentContainer","providers","__spreadArrays","s","il","r","k","a","j","jl","LogLevel","levelStringToEnum","DEBUG","VERBOSE","INFO","WARN","ERROR","SILENT","defaultLogLevel","ConsoleMethod","defaultLogHandler","logType","logLevel","now","Date","toISOString","method","Logger","_logLevel","_logHandler","_userLogHandler","info","level","inst","setUserLogHandler","_loop_1","customLogLevel","userLogHandler","message","arg","JSON","stringify","ignored","toLowerCase","instances_1","stringToByteArray","str","out","c","charCodeAt","base64","byteToCharMap_","charToByteMap_","byteToCharMapWebSafe_","charToByteMapWebSafe_","ENCODED_VALS_BASE","HAS_NATIVE_SUPPORT","atob","encodeByteArray","input","webSafe","init_","byteToCharMap","output","byte1","haveByte2","byte2","haveByte3","byte3","outByte1","outByte2","outByte3","outByte4","encodeString","btoa","decodeString","bytes","pos","c1","fromCharCode","c2","u","c3","byteArrayToString","decodeStringToByteArray","charToByteMap","charAt","byte4","ENCODED_VALS","ENCODED_VALS_WEBSAFE","deepCopy","getTime","prop","Deferred","reject","wrapCallback","catch","createMockUserToken","token","projectId","uid","project","iat","sub","user_id","payload","iss","aud","exp","auth_time","sign_in_provider","identities","alg","getUA","isMobileCordova","window","isNode","g","process","isBrowser","isBrowserExtension","runtime","chrome","browser","id","isReactNative","isElectron","isIE","ua","isUWP","isSafari","userAgent","includes","FirebaseError","_super","code","customData","captureStackTrace","serviceName","errors","data","fullCode","template","replaceTemplate","fullMessage","replace","PATTERN","_","contains","Sha1","chain_","buf_","W_","pad_","inbuf_","total_","blockSize","reset","compress_","buf","offset","W","t","f","b","d","update","lengthMinusBlock","inbuf","digest","totalBits","executor","onNoObservers","proxy","ObserverProxy","subscribe","observers","unsubscribes","observerCount","task","finalized","forEachObserver","observer","close","complete","nextOrObserver","methods","methods_1","implementsAnyMethods","noop","unsub","unsubscribeOne","finalError","sendOne","err","getModularInstance","_delegate","_extendStatics","__values","m","commonjsGlobal","globalThis","goog","l","aa","ba","ea","Math","random","fa","ha","ia","unshift","q","Function","ja","Z","Vb","h","v","la","na","M","da","ma","split","qa","concat","ra","sa","x","ta","trim","exec","w","va","wa","xa","ya","za","Aa","Ca","Na","Ha","y","Ia","Ja","Ka","La","Ma","documentMode","Oa","Pa","Qa","parseFloat","Sa","Ga","Ra","Fa","max","parseInt","Ta","Ua","Va","z","defaultPrevented","A","relatedTarget","button","screenY","screenX","clientY","clientX","metaKey","shiftKey","altKey","ctrlKey","state","pointerId","pointerType","changedTouches","srcElement","nodeName","fromElement","toElement","pageX","pageY","Wa","preventDefault","returnValue","B","Xa","Ya","src","capture","ca","Za","$a","bb","splice","ab","cb","db","fb","once","gb","hb","N","ib","jb","mb","kb","attachEvent","lb","addListener","removeListener","O","nb","ob","detachEvent","pb","handleEvent","C","P","I","D","qb","rb","sb","tb","Ab","ub","vb","class_2","wb","yb","zb","Db","Bb","Cb","Eb","Fb","S","clearTimeout","Gb","Number","Hb","start","Ib","__","__extends","E","Jb","Kb","Lb","Mb","F","parse","Pb","H","Rb","Sb","Tb","Ub","STAT_EVENT","stat","J","size","K","Wb","NO_ERROR","xb","TIMEOUT","Xb","Yb","Zb","$b","cc","L","OPEN","ac","bc","dc","X","V","ec","Y","$","U","fc","XMLHttpRequest","gc","hc","ic","jc","kc","lc","mc","nc","G","Nb","qc","Ba","tc","vc","sc","wc","rc","substring","isNaN","substr","xc","eb","pc","uc","abort","yc","zc","Ac","Bc","Cc","ka","Q","Da","Ea","getResponseHeader","Dc","R","oa","Ec","Fc","Gc","Hc","Ic","Kc","T","Jc","Lc","ga","oc","TextDecoder","decode","stream","Ob","cancel","Qb","Mc","Oc","Pc","Qc","Rc","Sc","Tc","dd","Zc","Uc","$c","floor","abs","decodeURI","decodeURIComponent","encodeURI","cd","Vc","encodeURIComponent","Wc","Xc","Yc","Nc","ed","fd","gd","hd","PerformanceNavigationTiming","performance","getEntriesByType","nextHopProtocol","jd","kd","ld","md","od","onload","onerror","onabort","ontimeout","pd","qd","rd","status","responseType","responseText","response","statusText","onreadystatechange","Headers","clear","ud","read","td","sd","open","send","headers","credentials","cache","body","fetch","Request","arrayBuffer","ReadableStream","getReader","text","Uint8Array","setRequestHeader","append","getAllResponseHeaders","vd","wd","xd","yd","pa","zd","Cd","Dd","Ed","location","protocol","Ad","mozResponseArrayBuffer","Gd","Fd","Hd","internalChannelParams","Id","xmlHttpFactory","supportsCrossDomainXhr","concurrentRequestLimit","fastHandshake","forceLongPolling","detectBufferingProxy","Jd","Kd","sendBeacon","Image","Ld","Md","Qd","Pd","round","min","Od","Rd","Nd","d_1","nd","ad","bd","hostname","port","Sd","Td","messageUrlParams","messageHeaders","clientProtocolHeaderRequired","initMessageHeaders","messageContentType","httpHeadersOverwriteParam","sendRawJson","httpSessionIdParam","Ud","__sm__","Vd","toUpperCase","FormData","withCredentials","timeout","Bd","__data__","createWebChannel","HTTP_ERROR","COMPLETE","EventType","CLOSE","MESSAGE","listen","listenOnce","getLastError","getLastErrorCode","getStatus","getResponseJson","getResponseText","createWebChannelTransport","getStatEventTarget","ErrorCode","Event","Stat","PROXY","NOPROXY","FetchXmlHttpFactory","WebChannel","XhrIo","getLocation","_source$location","search","hash","href","origin","host","pathname","canUseDOM","URL","history","createHistory","listeners","transitioning","resolveTransition","_onTransitionComplete","popstateListener","action","navigate","to","_ref","_ref$replace","go","replaceState","pushState","transition","res","createMemorySource","initialPath","searchIndex","initialLocation","index","stack","states","uri","_uri$split","_uri$split$","_uri$split2","_uri$split2$","newIndex","createElement","globalHistory","shallowCompare","validateRedirect","insertParams","pick","startsWith","_invariant","_invariant2","default","string","routes","default_","uriPathname","uriSegments","segmentize","isRootUri","ranked","rankRoutes","missed","route","params","routeSegments","path","routeSegment","uriSegment","isSplat","dynamicMatch","paramRe","reservedNames","isDynamic","segment","rankRoute","score","reduce","isRootSegment","SEGMENT_POINTS","sort","addQuery","_len","query","_key","base","_to$split","toPathname","toQuery","basePathname","toSegments","baseSegments","allSegments","segments","pop","_path$split","pathBase","_path$split$","constructedPath","_params$location","_params$location$sear","searchSplit","obj1","obj2","obj1Keys","every","camelCase","pascalCase","isLastCharLower","isLastCharUpper","isLastLastCharUpper","character","preserveCamelCase","p1","strings","raw","_createClass","defineProperties","descriptor","writable","Constructor","protoProps","staticProps","_templateObject","freeze","_classCallCheck","TemplateTag","transformers","tag","_len2","expressions","_key2","interimTag","transformEndResult","transformString","processSubstitutions","transformer","previousTag","_len3","substitutions","_key3","resultSoFar","remainingPart","substitution","transformSubstitution","transform","onString","onSubstitution","endResult","onEndResult","defaults","separator","conjunction","serial","arrayLength","indent","separatorIndex","lastIndexOf","_toConsumableArray","el","regexp","RegExp","side","splitBy","isValidValue","replaceWhat","replaceWith","matchOperatorsRe","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","hr","uptime","root","vendors","suffix","raf","caf","last","queue","_now","cp","cancelled","handle","polyfill","object","requestAnimationFrame","cancelAnimationFrame","linear","inQuad","outQuad","inOutQuad","inCube","outCube","inOutCube","inQuart","outQuart","inOutQuart","inQuint","outQuint","inOutQuint","inSine","cos","PI","outSine","sin","inOutSine","inExpo","pow","outExpo","inOutExpo","inCirc","sqrt","outCirc","inOutCirc","inBack","outBack","inOutBack","inBounce","outBounce","inOutBounce","inElastic","asin","outElastic","inOutElastic","Emitter","mixin","on","event","_callbacks","off","removeAllListeners","emit","hasListeners","scroll","elem","querySelector","additionalOffset","alignment","scrollPosition","html","elemRect","getBoundingClientRect","clientHeight","documentHeight","scrollHeight","offsetHeight","bottom","height","top","maxScrollPosition","pageYOffset","calculateScrollOffset","align","Tween","scrollTop","left","pageXOffset","scrollLeft","tween","ease","duration","animate","scrollTo","_from","_curr","extend","_done","_start","_to","ms","_duration","_ease","stop","stopped","step","_update","curr","_assign","fulfilled","generator","rejected","result","thisArg","_arguments","trys","ops","verb","op","ar","pack","_interopRequireDefault","withPrefix","getGlobalPathPrefix","_objectWithoutPropertiesLoose2","_assertThisInitialized2","_inheritsLoose2","_extends2","_propTypes","_react","_reachRouter","_utils","_parsePath","parsePath","_excluded","isAbsolutePath","prefix","_prefix","getGlobalBasePrefix","isLocalLink","endsWith","rewriteLinkPath","relativeTo","current","absolutify","NavLinkPropTypes","activeClassName","activeStyle","partiallyActive","bool","GatsbyLinkLocationWrapper","Location","_ref2","GatsbyLink","_location","_React$Component","defaultGetProps","_ref3","isPartiallyCurrent","isCurrent","className","Boolean","style","IOSupported","IntersectionObserver","handleRef","_proto","_prefetch","currentPath","rewrittenPath","newPathName","___loader","enqueue","componentDidUpdate","prevProps","prevState","componentDidMount","componentWillUnmount","io","_this$io","unobserve","disconnect","ref","_this2","innerRef","entry","isIntersecting","intersectionRatio","observe","render","_this3","_this$props","_this$props$getProps","getProps","_onClick","onClick","_onMouseEnter","onMouseEnter","rest","prefixedTo","Link","hovering","shouldReplace","___navigate","propTypes","func","isRequired","_default","forwardRef","hashIndex","_scrollHandler","ScrollHandler","_useScrollRestoration","useScrollRestoration","ScrollContext","React","nodeInterop","_getRequireWildcardCache","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","_interopRequireWildcard","_sessionStorage","WeakMap","cacheBabelInterop","cacheNodeInterop","createContext","SessionStorage","displayName","_stateStorage","_isTicking","_latestKnownScrollY","scrollListener","scrollY","_saveScroll","windowScroll","position","shouldUpdateScroll","scrollToHash","node","getElementById","scrollIntoView","prevRouterProps","routerProps","save","_this$props$location","_this$props$location2","children","element","GATSBY_ROUTER_SCROLL_STATE","stateKey","getStateKey","sessionStorage","getItem","storedValue","setItem","stateKeyBase","useLocation","useContext","useRef","useLayoutEffect","onScroll","plugin","require","plugins","getResourceURLsForPathname","loadPage","loadPageSync","api","defaultReturn","argTransform","results","previous","handler","evt","pathCache","matchPaths","trimPathname","rawPathname","stripPrefix","__BASE_PATH__","setMatchPaths","findMatchPath","trimmedPathname","matchPath","originalPath","normalizePagePath","grabMatchParams","findPath","redirect","maybeGetBrowserRedirect","toPath","foundPath","loader","StaticQueryDataRenderer","staticQueryData","finalData","StaticQuery","useStaticQuery","context","graphql","supportedPrefetchStrategy","feature","fakeLink","relList","supports","support","url","link","setAttribute","getElementsByTagName","getElementsByName","parentNode","appendChild","req","preFetched","PageResourceStatus","Success","preferDefault","createPageDataUrl","stripSurroundingSlashes","doFetch","toPageResources","pageData","page","componentChunkName","webpackCompilationHash","staticQueryHashes","json","BaseLoader","loadComponent","inFlightNetworkRequests","pageDb","inFlightDb","staticQueryDb","pageDataDb","prefetchTriggered","prefetchCompleted","memoizedGet","inFlightPromise","setApiRunner","apiRunner","prefetchDisabled","some","fetchPageDataJson","loadObj","pagePath","retries","jsonPayload","notFound","loadPageDataJson","rawPath","loadAppData","allData","finalResult","componentChunkPromise","pageResources","createdAt","staticQueryBatchPromise","staticQueryHash","staticQueryResults","staticQueryResultsMap","emitter","withErrorDetails","shouldPrefetch","connection","effectiveType","saveData","doesConnectionSupportPrefetch","prefetch","realPath","doPrefetch","pageDataUrl","prefetchHelper","crossOrigin","as","createComponentUrls","isPageNotFound","appData","___chunkMapping","chunk","__PATH_PREFIX__","ProdLoader","asyncRequires","chunkName","componentUrls","_loader","setLoader","publicLoader","getStaticQueryResults","PageRenderer","pageContext","__params","pageElement","RouteAnnouncerProps","width","overflow","whiteSpace","maybeRedirect","onPreRouteUpdate","prevLocation","onRouteUpdate","___swUpdated","timeoutId","___webpackCompilationHash","serviceWorker","controller","postMessage","gatsbyApi","reachNavigate","getSavedScrollPosition","RouteAnnouncer","announcementRef","nextProps","pageName","title","pageHeadings","querySelectorAll","textContent","newAnnouncement","innerText","compareLocationProps","nextLocation","RouteUpdates","shouldComponentUpdate","shallowDiffers","EnsureResources","getDerivedStateFromProps","loadResources","setState","nextState","___push","___replace","apiRunnerAsync","RouteHandler","BaseContext","baseuri","basepath","DataContext","GatsbyRoot","StaticQueryContext","LocationHandler","Consumer","Router","browserLoc","SiteRoot","App","onClientEntryRanRef","mark","renderer","GATSBY_EXPERIMENTAL_CONCURRENT_FEATURES","ReactDOM","domReady","hydrate","ProdPageRenderer","InternalPageRenderer","redirectMap","redirectIgnoreCaseMap","redirects","ignoreCase","fromPath","installingWorker","reg","installing","___failedResources","reload","Firestore","GeoPoint","Timestamp","Blob","Transaction","WriteBatch","DocumentReference","DocumentSnapshot","Query","QueryDocumentSnapshot","QuerySnapshot","CollectionReference","FieldPath","FieldValue","CACHE_SIZE_UNLIMITED","errorCodeMap","OK","CANCELLED","UNKNOWN","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","UNAUTHENTICATED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","UNAVAILABLE","DATA_LOSS","HttpsErrorImpl","details","ContextProvider","authProvider","messagingProvider","auth","messaging","getAuthToken","getToken","accessToken","getInstanceIdToken","Notification","permission","getContext","authToken","instanceIdToken","mapValues","Serializer","encode","valueOf","isFinite","Service","app_","appCheckProvider","regionOrCustomDomain_","fetchImpl","serializer","emulatorOrigin","deleteService","contextProvider","cancelAllRequests","customDomain","region","_url","useEmulator","useFunctionsEmulator","httpsCallable","postJSON","appCheckToken","getAppCheckToken","appCheck","timer","failAfterPromise","responseData","millis","failAfter","race","clearTimeoutWrapper","bodyJSON","codeForHTTPStatus","description","errorJSON","status_1","_errorForResponse","namespaceExports","Functions","regionOrCustomDomain","IMPROPPER_FORMATTING","gatsby_scroll_hash","_ref2$offset","_ref2$duration","windowHash","gatsby_scroll_offset","gatsby_scroll_duration","scroller","checkHash","_typeof","logWarning","errorTypes","_to$split2","_slicedToArray","anchorPath","anchor","_gatsby","onAnchorLinkClick","_to$split4","isSamePage","isDifferentPage","handleStrippedLinkClick","stripHashedLocation","selector","validElement","INVALID_HASH","_scrollToElement","_arrayWithHoles","_iterableToArrayLimit","_arr","_n","_s","_unsupportedIterableToArray","_arrayLikeToArray","_nonIterableRest","isDevelopment","pluginOptions","clickHandler","routeThroughBrowserOrApp","_escapeStringRegexp","userIsForcingNavigation","slashedPathname","navigationWasHandledElsewhere","findClosestAnchor","anchorsTargetIsEquivalentToSelf","hasAttribute","ownerDocument","defaultView","parent","authorIsForcingNavigation","urlsAreOnSameOrigin","destination","pathIsNotHandledByApp","pathStartRegEx","hashShouldBeFollowed","hrefHandler","clickedAnchor","SVGAnimatedString","animVal","excludePattern","destinationPathname","_catchLinks","mountNode","wrapRootElement","gtag","pathIsExcluded","excludeGtagPaths","sendPageView","page_path","hasNativeLazyLoadSupport","HTMLImageElement","GATSBY___IMAGE","sourceMetadata","format","getMainProps","dataset","objectFit","objectPosition","objectFitPolyfill","import","willChange","loading","images","shouldLoad","opacity","storeImageloaded","currentTarget","currentSrc","img","toggleLoaded","placeholder","isLoaded","backgroundColor","layout","wrapperStyle","right","sources","Sizer","paddingTop","alt","maxWidth","display","Fragment","srcSet","decoding","Picture","fallback","fallbackImage","media","PropTypes","sizes","Placeholder","propName","MainImage","altValidator","GatsbyImageHydrator","createRef","forceRender","unobserveRef","isLoading","_lazyHydrate","hydrated","lazyHydrate","image","lazyHydrator","toggleIsLoaded","onLoad","_setupIntersectionObserver","useCache","intersectionObserver","createIntersectionObserver","cacheKey","_this4","onStartLoad","wasCached","hasChanged","gatsbyImageIsInstalled","wrapperProps","sizer","wClass","dangerouslySetInnerHTML","suppressHydrationWarning","GatsbyImage","checkDimensionProps","validLayouts","StaticImage","imageData","__imageData","__error","_getManifestPathname","localizedManifests","defaultFilename","localizedManifest","find","start_url","lang","_objectWithoutProperties","_possibleConstructorReturn","_inherits","createNamedContext","defaultValue","Ctx","LocationContext","LocationProvider","_temp","refs","unlisten","_props$history","componentDidCatch","isRedirect","_navigate","unmounted","defaultProps","ServerLocation","baseContext","locationContext","RouterImpl","_React$PureComponent","_props","_navigate2","primary","_props$component","domProps","array","child","createRoute","clone","FocusWrapper","FocusHandler","FocusContext","requestFocus","FocusHandlerImpl","initialRender","focusHandlerCount","_React$Component2","_temp2","shouldFocus","focus","myURIChanged","navigatedUpToMe","activeElement","_this5","_props2","_props2$component","Comp","outline","tabIndex","_ref4","_ref5","_ref6","_props$getProps","anchorProps","encodedHref","shouldNavigate","_location$state","restState","RedirectRequest","redirectTo","RedirectImpl","_React$Component3","_props3","_props3$replace","noThrow","resolvedTo","_props4","Redirect","_ref7","Match","_ref8","_ref9","_ref10","resolvedPath","useNavigate","useParams","useMatch","stripSlashes","elementPath","condition","argIndex","framesToPop"],"sourceRoot":""}