{"version":3,"file":"static/js/main.985acce0.js","mappings":";wSAgBIA,eAAgB,SAASC,EAAGC,GAI5B,OAHAF,eAAgBG,OAAOC,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUL,EAAGC,GAAKD,EAAEI,UAAYH,CAAA,GACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIK,KAAKL,EAAOC,OAAOK,UAAUC,eAAeC,KAAKR,EAAGK,KAAIN,EAAEM,GAAKL,EAAEK,GAAA,GAC3EN,EAAGC,EAAA,EAGrB,SAASS,UAAUV,EAAGC,GACzB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIU,UAAU,uBAAyBC,OAAOX,GAAK,iCAE7D,SAASK,IAAOO,KAAKC,YAAcd,CAAA,CADnCD,eAAcC,EAAGC,GAEjBD,EAAEO,UAAkB,OAANN,EAAaC,OAAOa,OAAOd,IAAMK,EAAGC,UAAYN,EAAEM,UAAW,IAAID,EAAA,CAG5E,IAAIU,QAAW,WAQlB,OAPAA,QAAWd,OAAOe,QAAU,SAAkBjB,GAC1C,IAAK,IAAIC,EAAGK,EAAI,EAAGY,EAAIC,UAAUC,OAAQd,EAAIY,EAAGZ,IAE5C,IAAK,IAAIe,KADTpB,EAAIkB,UAAUb,GACOJ,OAAOK,UAAUC,eAAeC,KAAKR,EAAGoB,KAAIrB,EAAEqB,GAAKpB,EAAEoB,IAE9E,OAAOrB,CAAA,GAEKsB,MAAMT,KAAMM,UAAA,EAGzB,SAASI,OAAOvB,EAAGC,GACtB,IAAIK,EAAI,CAAC,EACT,IAAK,IAAIY,KAAKlB,EAAOE,OAAOK,UAAUC,eAAeC,KAAKT,EAAGkB,IAAMjB,EAAEuB,QAAQN,GAAK,IAC9EZ,EAAEY,GAAKlB,EAAEkB,IACb,GAAS,MAALlB,GAAqD,mBAAjCE,OAAOuB,sBACtB,KAAIJ,EAAI,EAAb,IAAgBH,EAAIhB,OAAOuB,sBAAsBzB,GAAIqB,EAAIH,EAAEE,OAAQC,IAC3DpB,EAAEuB,QAAQN,EAAEG,IAAM,GAAKnB,OAAOK,UAAUmB,qBAAqBjB,KAAKT,EAAGkB,EAAEG,MACvEf,EAAEY,EAAEG,IAAMrB,EAAEkB,EAAEG,IAAA,CAE1B,OAAOf,CAAA,CAGJ,SAASqB,WAAW3B,EAAYC,EAAQK,EAAKY,GAChD,IAA2HG,EAAvHO,EAAIT,UAAUC,OAAQS,EAAID,EAAI,EAAI3B,EAAkB,OAATiB,EAAgBA,EAAOhB,OAAO4B,yBAAyB7B,EAAQK,GAAOY,EACrH,GAAuB,iBAAZa,SAAoD,mBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAAShC,EAAYC,EAAQK,EAAKY,QACpH,IAAK,IAAIe,EAAIjC,EAAWoB,OAAS,EAAGa,GAAK,EAAGA,KAASZ,EAAIrB,EAAWiC,MAAIJ,GAAKD,EAAI,EAAIP,EAAEQ,GAAKD,EAAI,EAAIP,EAAEpB,EAAQK,EAAKuB,GAAKR,EAAEpB,EAAQK,KAASuB,GAChJ,OAAOD,EAAI,GAAKC,GAAK3B,OAAOgC,eAAejC,EAAQK,EAAKuB,GAAIA,CAAA,CAGzD,SAASM,QAAQnC,EAAYC,GAChC,OAAO,SAAUK,EAAQY,GAAOjB,EAAUK,EAAQY,EAAKlB,EAAA,EAGpD,SAASoC,WAAWpC,EAAaC,GACpC,GAAuB,iBAAZ8B,SAAoD,mBAArBA,QAAQM,SAAyB,OAAON,QAAQM,SAASrC,EAAaC,EAAA,CAG7G,SAASqC,UAAUtC,EAASC,EAAYK,EAAGY,GAE9C,OAAO,IAAKZ,IAAMA,EAAIiC,WAAU,SAAUlB,EAASO,GAC/C,SAASC,EAAU7B,GAAS,IAAMwC,EAAKtB,EAAUuB,KAAKzC,GAAA,CAAW,MAAOA,GAAK4B,EAAO5B,EAAA,EACpF,SAASiC,EAASjC,GAAS,IAAMwC,EAAKtB,EAAiBwB,MAAE1C,GAAA,CAAW,MAAOA,GAAK4B,EAAO5B,EAAA,EACvF,SAASwC,EAAKxC,GAJlB,IAAeC,EAIaD,EAAO2C,KAAOtB,EAAQrB,EAAO4C,QAJ1C3C,EAIyDD,EAAO4C,MAJhD3C,aAAiBK,EAAIL,EAAQ,IAAIK,GAAE,SAAUN,GAAWA,EAAQC,EAAA,KAIT4C,KAAKhB,EAAWI,EAAA,CAClGO,GAAMtB,EAAYA,EAAUI,MAAMtB,EAASC,GAAc,KAAKwC,OAAA,IAI/D,SAASK,YAAY9C,EAASC,GACjC,IAAsGK,EAAGY,EAAGG,EAAGO,EAA3GC,EAAI,CAAEkB,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAP3B,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAO4B,KAAM,GAAIC,IAAK,IAChG,OAAOtB,EAAI,CAAEa,KAAMR,EAAK,GAAIS,MAAST,EAAK,GAAIkB,OAAUlB,EAAK,IAAwB,mBAAXmB,SAA0BxB,EAAEwB,OAAOC,UAAY,WAAa,OAAOxC,IAAA,GAAUe,EACvJ,SAASK,EAAKL,GAAK,OAAO,SAAUK,GAAK,OACzC,SAAcL,GACV,GAAItB,EAAG,MAAM,IAAIK,UAAU,mCAC3B,KAAOkB,GAAG,IACN,GAAIvB,EAAI,EAAGY,IAAMG,EAAY,EAARO,EAAG,GAASV,EAAUiC,OAAIvB,EAAG,GAAKV,EAASwB,SAAOrB,EAAIH,EAAUiC,SAAM9B,EAAEZ,KAAKS,GAAI,GAAKA,EAAEuB,SAAWpB,EAAIA,EAAEZ,KAAKS,EAAGU,EAAG,KAAKe,KAAM,OAAOtB,EAE3J,OADIH,EAAI,EAAGG,IAAGO,EAAK,CAAS,EAARA,EAAG,GAAQP,EAAEuB,QACzBhB,EAAG,IACP,KAAK,EAAG,KAAK,EAAGP,EAAIO,EAAI,MACxB,KAAK,EAAc,OAAXC,EAAEkB,QAAgB,CAAEH,MAAOhB,EAAG,GAAIe,MAAA,GAC1C,KAAK,EAAGd,EAAEkB,QAAS7B,EAAIU,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKC,EAAEqB,IAAII,MAAOzB,EAAEoB,KAAKK,MAAO,SACxC,QACI,MAAkBjC,GAAZA,EAAIQ,EAAEoB,MAAY7B,OAAS,GAAKC,EAAEA,EAAED,OAAS,KAAkB,IAAVQ,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEC,EAAI,EAAG,SACjG,GAAc,IAAVD,EAAG,MAAcP,GAAMO,EAAG,GAAKP,EAAE,IAAMO,EAAG,GAAKP,EAAE,IAAM,CAAEQ,EAAEkB,MAAQnB,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYC,EAAEkB,MAAQ1B,EAAE,GAAI,CAAEQ,EAAEkB,MAAQ1B,EAAE,GAAIA,EAAIO,EAAI,MAC7D,GAAIP,GAAKQ,EAAEkB,MAAQ1B,EAAE,GAAI,CAAEQ,EAAEkB,MAAQ1B,EAAE,GAAIQ,EAAEqB,IAAIK,KAAK3B,GAAK,MACvDP,EAAE,IAAIQ,EAAEqB,IAAII,MAChBzB,EAAEoB,KAAKK,MAAO,SAEtB1B,EAAK3B,EAAKQ,KAAKT,EAAS6B,EAAA,CAC1B,MAAO7B,GAAK4B,EAAK,CAAC,EAAG5B,GAAIkB,EAAI,EAAa,QAAEZ,EAAIe,EAAI,EACtD,GAAY,EAARO,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEgB,MAAOhB,EAAG,GAAKA,EAAG,QAAK,EAAQe,MAAA,EAAM,CApB9E,CADqD,CAACf,EAAGK,GAAA,GAyBtD,IAAIuB,gBAAkBtD,OAAOa,OAAU,SAASf,EAAGC,EAAGK,EAAGY,QAAA,IACxDA,IAAkBA,EAAKZ,GAC3BJ,OAAOgC,eAAelC,EAAGkB,EAAI,CAAEuC,YAAA,EAAkBC,IAAK,WAAa,OAAOzD,EAAEK,EAAA,KAC/E,SAAcN,EAAGC,EAAGK,EAAGY,QAAA,IAChBA,IAAkBA,EAAKZ,GAC3BN,EAAEkB,GAAMjB,EAAEK,EAAA,EAGP,SAASqD,aAAa3D,EAAGC,GAC5B,IAAK,IAAIK,KAAKN,EAAa,YAANM,GAAoBJ,OAAOK,UAAUC,eAAeC,KAAKR,EAAGK,IAAIkD,gBAAgBvD,EAAGD,EAAGM,EAAA,CAGxG,SAASsD,SAAS5D,GACrB,IAAIC,EAAsB,mBAAXmD,QAAyBA,OAAOC,SAAU/C,EAAIL,GAAKD,EAAEC,GAAIiB,EAAI,EAC5E,GAAIZ,EAAG,OAAOA,EAAEG,KAAKT,GACrB,GAAIA,GAAyB,iBAAbA,EAAEoB,OAAqB,MAAO,CAC1CqB,KAAM,WAEF,OADIzC,GAAKkB,GAAKlB,EAAEoB,SAAQpB,OAAA,GACjB,CAAE4C,MAAO5C,GAAKA,EAAEkB,KAAMyB,MAAO3C,EAAA,GAG5C,MAAM,IAAIW,UAAUV,EAAI,0BAA4B,mCAGjD,SAAS4D,OAAO7D,EAAGC,GACtB,IAAIK,EAAsB,mBAAX8C,QAAyBpD,EAAEoD,OAAOC,UACjD,IAAK/C,EAAG,OAAON,EACf,IAAmBkB,EAAYG,EAA3BO,EAAItB,EAAEG,KAAKT,GAAO6B,EAAK,GAC3B,IACI,eAAQ5B,GAAgBA,KAAM,MAAQiB,EAAIU,EAAEa,QAAQE,MAAMd,EAAG0B,KAAKrC,EAAE0B,MAAA,CAExE,MAAO5C,GAASqB,EAAI,CAAEyC,MAAO9D,EAAA,CACrB,QACJ,IACQkB,IAAMA,EAAEyB,OAASrC,EAAIsB,EAAUuB,SAAI7C,EAAEG,KAAKmB,EAAA,CAE1C,QAAE,GAAIP,EAAG,MAAMA,EAAEyC,KAAA,EAE7B,OAAOjC,CAAA,CAIJ,SAASkC,WACZ,IAAK,IAAI/D,EAAK,GAAIC,EAAI,EAAGA,EAAIkB,UAAUC,OAAQnB,IAC3CD,EAAKA,EAAGgE,OAAOH,OAAO1C,UAAUlB,KACpC,OAAOD,CAAA,CAIJ,SAASiE,iBACZ,IAAK,IAAIjE,EAAI,EAAGC,EAAI,EAAGK,EAAKa,UAAUC,OAAQnB,EAAIK,EAAIL,IAAKD,GAAKmB,UAAUlB,GAAGmB,OACxE,IAAIF,EAAIb,MAAML,GAAIqB,EAAI,EAA3B,IAA8BpB,EAAI,EAAGA,EAAIK,EAAIL,IACzC,IAAK,IAAI2B,EAAIT,UAAUlB,GAAI4B,EAAI,EAAGI,EAAKL,EAAER,OAAQS,EAAII,EAAIJ,IAAKR,IAC1DH,EAAEG,GAAKO,EAAEC,GACjB,OAAOX,CAAA,CAGJ,SAASgD,cAAclE,EAAIC,EAAMK,GACpC,GAAIA,GAA6B,IAArBa,UAAUC,OAAc,IAAK,IAA4BF,EAAxBG,EAAI,EAAGO,EAAI3B,EAAKmB,OAAYC,EAAIO,EAAGP,KACxEH,GAAQG,KAAKpB,IACRiB,IAAIA,EAAKb,MAAME,UAAU4D,MAAM1D,KAAKR,EAAM,EAAGoB,IAClDH,EAAGG,GAAKpB,EAAKoB,IAGrB,OAAOrB,EAAGgE,OAAO9C,GAAMb,MAAME,UAAU4D,MAAM1D,KAAKR,GAAA,CAG/C,SAASmE,QAAQpE,GACpB,OAAOa,gBAAgBuD,SAAWvD,KAAKwD,EAAIrE,EAAGa,MAAQ,IAAIuD,QAAQpE,EAAA,CAG/D,SAASsE,iBAAiBtE,EAASC,EAAYK,GAClD,IAAK8C,OAAOmB,cAAe,MAAM,IAAI5D,UAAU,wCAC/C,IAAoDO,EAAhDG,EAAIf,EAAUgB,MAAMtB,EAASC,GAAc,IAAQ2B,EAAI,GAC3D,OAAOV,EAAI,CAAC,EAAGW,EAAK,QAASA,EAAK,SAAUA,EAAK,UAAWX,EAAEkC,OAAOmB,eAAiB,WAAc,OAAO1D,IAAA,EAASK,EACpH,SAASW,EAAK7B,GAASqB,EAAErB,KAAIkB,EAAElB,GAAK,SAAUC,GAAK,OAAO,IAAIsC,SAAQ,SAAUjC,EAAGY,GAAKU,EAAE2B,KAAK,CAACvD,EAAGC,EAAGK,EAAGY,IAAM,GAAKe,EAAOjC,EAAGC,EAAA,MAC9H,SAASgC,EAAOjC,EAAGC,GAAK,KACVK,EADqBe,EAAErB,GAAGC,IACnB2C,iBAAiBwB,QAAU7B,QAAQiC,QAAQlE,EAAEsC,MAAMyB,GAAGxB,KAAKL,EAASiC,GAAUC,EAAO9C,EAAE,GAAG,GAAItB,EAAA,CADpE,MAAON,GAAK0E,EAAO9C,EAAE,GAAG,GAAI5B,EAAA,CAC3E,IAAcM,CAAA,CACd,SAASkC,EAAQxC,GAASiC,EAAO,OAAQjC,EAAA,CACzC,SAASyE,EAAOzE,GAASiC,EAAO,QAASjC,EAAA,CACzC,SAAS0E,EAAO1E,EAAGC,GAASD,EAAEC,GAAI2B,EAAE+C,QAAS/C,EAAER,QAAQa,EAAOL,EAAE,GAAG,GAAIA,EAAE,GAAG,KAGzE,SAASgD,iBAAiB5E,GAC7B,IAAIC,EAAGK,EACP,OAAOL,EAAI,CAAC,EAAGiB,EAAK,QAASA,EAAK,SAAS,SAAUlB,GAAK,MAAMA,CAAA,IAAOkB,EAAK,UAAWjB,EAAEmD,OAAOC,UAAY,WAAc,OAAOxC,IAAA,EAASZ,EAC1I,SAASiB,EAAKA,EAAGG,GAAKpB,EAAEiB,GAAKlB,EAAEkB,GAAK,SAAUjB,GAAK,OAAQK,GAAKA,GAAK,CAAEsC,MAAOwB,QAAQpE,EAAEkB,GAAGjB,IAAK0C,KAAY,WAANzB,GAAmBG,EAAIA,EAAEpB,GAAKA,CAAA,EAAOoB,CAAA,EAGxI,SAASwD,cAAc7E,GAC1B,IAAKoD,OAAOmB,cAAe,MAAM,IAAI5D,UAAU,wCAC/C,IAAiCV,EAA7BK,EAAIN,EAAEoD,OAAOmB,eACjB,OAAOjE,EAAIA,EAAEG,KAAKT,IAAMA,EAAwB,mBAAb4D,SAA0BA,SAAS5D,GAAKA,EAAEoD,OAAOC,YAAapD,EAAI,CAAC,EAAGiB,EAAK,QAASA,EAAK,SAAUA,EAAK,UAAWjB,EAAEmD,OAAOmB,eAAiB,WAAc,OAAO1D,IAAA,EAASZ,GAC9M,SAASiB,EAAKZ,GAAKL,EAAEK,GAAKN,EAAEM,IAAM,SAAUL,GAAK,OAAO,IAAIsC,SAAQ,SAAUrB,EAASG,IAAA,SACvErB,EAASC,EAAQK,EAAGY,GAAKqB,QAAQiC,QAAQtD,GAAG2B,MAAK,SAAS5C,GAAKD,EAAQ,CAAE4C,MAAO3C,EAAG0C,KAAMrC,GAAA,GAASL,EAAA,CAD3B,CAA8BiB,EAASG,GAA7BpB,EAAID,EAAEM,GAAGL,IAA8B0C,KAAM1C,EAAE2C,MAAA,MAI7I,SAASkC,qBAAqB9E,EAAQC,GAEzC,OADIC,OAAOgC,eAAkBhC,OAAOgC,eAAelC,EAAQ,MAAO,CAAE4C,MAAO3C,IAAiBD,EAAO+E,IAAM9E,EAClGD,CAAA,CAGX,IAAIgF,mBAAqB9E,OAAOa,OAAA,SAAmBf,EAAGC,GAClDC,OAAOgC,eAAelC,EAAG,UAAW,CAAEyD,YAAA,EAAkBb,MAAO3C,GAAA,EAC9D,SAASD,EAAGC,GACbD,EAAWiF,QAAIhF,CAAA,EAGZ,SAASiF,aAAalF,GACzB,GAAIA,GAAOA,EAAImF,WAAY,OAAOnF,EAClC,IAAIC,EAAS,CAAC,EACd,GAAW,MAAPD,EAAa,IAAK,IAAIM,KAAKN,EAAe,YAANM,GAAmBJ,OAAOK,UAAUC,eAAeC,KAAKT,EAAKM,IAAIkD,gBAAgBvD,EAAQD,EAAKM,GAEtI,OADA0E,mBAAmB/E,EAAQD,GACpBC,CAAA,CAGJ,SAASmF,gBAAgBpF,GAC5B,OAAQA,GAAOA,EAAImF,WAAcnF,EAAM,CAAEiF,QAASjF,EAAA,CAG/C,SAASqF,uBAAuBrF,EAAUC,EAAOK,EAAMY,GAC1D,GAAa,MAATZ,IAAiBY,EAAG,MAAM,IAAIP,UAAU,iDAC5C,GAAqB,mBAAVV,EAAuBD,IAAaC,IAAUiB,GAAKjB,EAAMqF,IAAItF,GAAW,MAAM,IAAIW,UAAU,4EACvG,MAAgB,MAATL,EAAeY,EAAa,MAATZ,EAAeY,EAAET,KAAKT,GAAYkB,EAAIA,EAAE0B,MAAQ3C,EAAMyD,IAAI1D,EAAA,CAGjF,SAASuF,uBAAuBvF,EAAUC,EAAOK,EAAOY,EAAMG,GACjE,GAAa,MAATH,EAAc,MAAM,IAAIP,UAAU,kCACtC,GAAa,MAATO,IAAiBG,EAAG,MAAM,IAAIV,UAAU,iDAC5C,GAAqB,mBAAVV,EAAuBD,IAAaC,IAAUoB,GAAKpB,EAAMqF,IAAItF,GAAW,MAAM,IAAIW,UAAU,2EACvG,MAAiB,MAATO,EAAeG,EAAEZ,KAAKT,EAAUM,GAASe,EAAIA,EAAEuB,MAAQtC,EAAQL,EAAMuF,IAAIxF,EAAUM,GAASA,CAAA,KAAAmF,eAAA,oBAAAC,WAAAA,WAAA,oBAAAC,OAAAA,OAAA,oBAAAC,oBAAAA,EAAAA,oBAAAA,EAAA,oBAAAC,KAAAA,KAAA,YAAAC,cAAA9F,GAAA,OAAAA,GAAAA,EAAAmF,YAAAjF,OAAAK,UAAAC,eAAAC,KAAAT,EAAA,WAAAA,EAAAiF,QAAAjF,CAAA,UAAA+F,qBAAA/F,EAAAC,GAAA,OAAAD,EAAAC,EAAA,CAAA+F,QAAA,IAAA/F,EAAA+F,SAAA/F,EAAA+F,OAAA,UAAAC,0BAAAjG,GAAA,OAAAA,GAAAA,EAAAiF,SAAAjF,CAAA,UAAAkG,kBAAA,UAAAC,MAAA,+EAAAC,OAAAL,sBAAA,SAAAM,OAAAL,SC7OlE,IAAmB/F,EAAnC,oBAAdqG,YAAiDrG,EAIlD,WAEL,IAAIsG,MAAQ,6BACRC,aAAe,GACfC,eAAA,EACAC,qBAAuB,OAEvBC,aAAe,SAAsB3G,GACvCyG,gBAAkBzG,CAAA,EAGhB4G,aAAe,WACjB,OAAOH,aAAA,EAGLI,gBAAkB,SAAyB7G,GAC7CwG,aAAexG,CAAA,EAGb8G,gBAAkB,WACpB,OAAON,YAAA,EAGT,SAASO,UAAU/G,GAEjB,OAAOgH,SAASC,cAAcjH,EAAA,CAGhC,SAASkH,gBAAgBlH,EAASC,GAChC,IAAIK,EAEAY,EADAG,EAAMrB,EAAQoB,OAGlB,IAAKd,EAAI,EAAGA,EAAIe,EAAKf,GAAK,EAGxB,IAAK,IAAIsB,KAFTV,EAAkBlB,EAAQM,GAAGC,UAGvBL,OAAOK,UAAUC,eAAeC,KAAKS,EAAiBU,KAAO3B,EAAYM,UAAUqB,GAAQV,EAAgBU,GAAA,CAKrH,SAASuF,cAAcnH,EAAQC,GAC7B,OAAOC,OAAO4B,yBAAyB9B,EAAQC,EAAA,CAGjD,SAASmH,oBAAoBpH,GAC3B,SAASC,IAAA,CAGT,OADAA,EAAcM,UAAYP,EACnBC,CAAA,CAIT,IAAIoH,uBAAyB,WAC3B,SAASrH,EAAgBA,GACvBa,KAAKyG,OAAS,GACdzG,KAAK0G,aAAevH,EACpBa,KAAK2G,QAAU,EACf3G,KAAK4G,UAAA,CAAW,CAqFlB,OAlFAzH,EAAgBO,UAAY,CAC1BmH,SAAU,SAAkB1H,GAC1Ba,KAAKyG,OAAO/D,KAAKvD,EAAA,EAEnB2H,MAAO,WACL,IAAI3H,EACAC,EAAMY,KAAKyG,OAAOlG,OAEtB,IAAKpB,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EACxBa,KAAKyG,OAAOtH,GAAG2H,OAAA,EAGnBC,OAAQ,WACN,IAAI5H,EACAC,EAAMY,KAAKyG,OAAOlG,OAEtB,IAAKpB,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EACxBa,KAAKyG,OAAOtH,GAAG4H,QAAA,EAGnBC,QAAS,SAAiB7H,GACxB,IAAIC,EACAK,EAAMO,KAAKyG,OAAOlG,OAEtB,IAAKnB,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EACxBY,KAAKyG,OAAOrH,GAAG4H,QAAQ7H,EAAA,EAG3B8H,YAAa,SAAqB9H,GAChC,OAAIa,KAAK0G,aACA1G,KAAK0G,aAAavH,GAGvB2F,OAAOoC,KACF,IAAIpC,OAAOoC,KAAK,CACrBC,IAAK,CAAChI,KAIH,CACLiI,WAAA,EACAC,KAAM,WACJrH,KAAKoH,WAAA,CAAY,EAEnBE,KAAM,WACJtH,KAAKoH,WAAA,CAAY,EAEnBG,QAAS,aACTC,KAAM,aACNC,UAAW,eAGfC,gBAAiB,SAAyBvI,GACxCa,KAAK0G,aAAevH,CAAA,EAEtBsI,UAAW,SAAmBtI,GAC5Ba,KAAK2G,QAAUxH,EAEfa,KAAK2H,eAAA,EAEPC,KAAM,WACJ5H,KAAK4G,UAAA,EAEL5G,KAAK2H,eAAA,EAEPE,OAAQ,WACN7H,KAAK4G,UAAA,EAEL5G,KAAK2H,eAAA,EAEPG,UAAW,WACT,OAAO9H,KAAK2G,OAAA,EAEdgB,cAAe,WACb,IAAIxI,EACAC,EAAMY,KAAKyG,OAAOlG,OAEtB,IAAKpB,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EACxBa,KAAKyG,OAAOtH,GAAG4I,OAAO/H,KAAK2G,SAAW3G,KAAK4G,SAAW,EAAI,MAIzD,WACL,OAAO,IAAIzH,CAAA,EA3Fc,GA+FzB6I,iBAAmB,WACrB,SAAS7I,EAAmBA,EAAMC,GAChC,IAEIK,EAFAY,EAAI,EACJG,EAAM,GAGV,OAAQrB,GACN,IAAK,QACL,IAAK,SACHM,EAAQ,EACR,MAEF,QACEA,EAAQ,IAIZ,IAAKY,EAAI,EAAGA,EAAIjB,EAAKiB,GAAK,EACxBG,EAAIkC,KAAKjD,GAGX,OAAOe,CAAA,CAmBT,MAAiC,mBAAtByH,mBAA4D,mBAAjBC,aAhBtD,SAAiC9I,EAAMK,GACrC,MAAa,YAATL,EACK,IAAI8I,aAAazI,GAGb,UAATL,EACK,IAAI+I,WAAW1I,GAGX,WAATL,EACK,IAAI6I,kBAAkBxI,GAGxBN,EAAmBC,EAAMK,EAAA,EAO3BN,CAAA,CA5Cc,GA+CvB,SAASiJ,iBAAiBjJ,GACxB,OAAOK,MAAMiB,MAAM,KAAM,CACvBF,OAAQpB,GAAA,CAIZ,SAASkJ,UAAUlJ,GAAuV,OAA1OkJ,UAArD,mBAAX9F,QAAoD,iBAApBA,OAAOC,SAAqC,SAAiBrD,GAAO,cAAcA,CAAA,EAA6B,SAAiBA,GAAO,OAAOA,GAAyB,mBAAXoD,QAAyBpD,EAAIc,cAAgBsC,QAAUpD,IAAQoD,OAAO7C,UAAY,gBAAkBP,CAAA,GAA2BA,EAAA,CAC3X,IAAImJ,iBAAA,EACAC,kBAAoB,KACpBC,sBAAwB,KACxBC,WAAa,GACbC,SAAW,iCAAiCC,KAAKlD,UAAUmD,WAC3DC,oBAAA,EACAC,MAAQC,KAAKC,IACbC,OAASF,KAAKG,KACdC,QAAUJ,KAAKK,MACfC,MAAQN,KAAKO,IACbC,MAAQR,KAAKS,IACbC,OAAS,CAAC,EAYd,SAASC,qBACP,MAAO,CAAC,CAAD,EAXT,WACE,IACIvK,EADAC,EAAgB,CAAC,MAAO,OAAQ,QAAS,OAAQ,QAAS,OAAQ,QAAS,QAAS,OAAQ,OAAQ,QAAS,QAAS,MAAO,OAAQ,MAAO,QAAS,SAAU,QAAS,OAAQ,MAAO,QAAS,OAAQ,QAAS,MAAO,MAAO,MAAO,SAAU,QAAS,OAAQ,MAAO,OAAQ,OAAQ,MAAO,OAAQ,QAAS,IAAK,OAAQ,MAAO,SAAU,QAAS,KAAM,UAAW,SAExWK,EAAML,EAAcmB,OAExB,IAAKpB,EAAI,EAAGA,EAAIM,EAAKN,GAAK,EACxBsK,OAAOrK,EAAcD,IAAM4J,KAAK3J,EAAcD,GAAA,CANlD,GAcAsK,OAAOE,OAASZ,KAAKY,OAErBF,OAAOG,IAAM,SAAUzK,GAGrB,GAAe,WAFFkJ,UAAUlJ,IAEIA,EAAIoB,OAAQ,CACrC,IACInB,EADAK,EAAS2I,iBAAiBjJ,EAAIoB,QAE9BF,EAAMlB,EAAIoB,OAEd,IAAKnB,EAAI,EAAGA,EAAIiB,EAAKjB,GAAK,EACxBK,EAAOL,GAAK2J,KAAKa,IAAIzK,EAAIC,IAG3B,OAAOK,CAAA,CAGT,OAAOsJ,KAAKa,IAAIzK,EAAA,EAGlB,IAAI0K,qBAAuB,IACvBC,UAAYf,KAAKgB,GAAK,IACtBC,YAAc,MAElB,SAASC,YAAY9K,GACnB0J,qBAAuB1J,CAAA,CAGzB,SAAS+K,MAAM/K,GACb,OAAI0J,mBACKE,KAAKoB,MAAMhL,GAGbA,CAAA,CAGT,SAASiL,SAASjL,GAChBA,EAAQkL,MAAMC,SAAW,WACzBnL,EAAQkL,MAAME,IAAM,EACpBpL,EAAQkL,MAAMG,KAAO,EACrBrL,EAAQkL,MAAMI,QAAU,QACxBtL,EAAQkL,MAAMK,gBAAkB,MAChCvL,EAAQkL,MAAMM,sBAAwB,MACtCxL,EAAQkL,MAAMO,mBAAqB,UACnCzL,EAAQkL,MAAMQ,yBAA2B,UACzC1L,EAAQkL,MAAMS,eAAiB,cAC/B3L,EAAQkL,MAAMU,qBAAuB,cACrC5L,EAAQkL,MAAMW,kBAAoB,cAGpC,SAASC,kBAAkB9L,EAAMC,EAAaK,EAAWY,GACvDL,KAAKkL,KAAO/L,EACZa,KAAKmL,YAAc/L,EACnBY,KAAKoL,UAAY3L,EACjBO,KAAKqL,UAAYhL,EAAkB,GAAK,EAAI,EAG9C,SAASiL,gBAAgBnM,EAAMC,GAC7BY,KAAKkL,KAAO/L,EACZa,KAAKqL,UAAYjM,EAAkB,GAAK,EAAI,EAG9C,SAASmM,oBAAoBpM,EAAMC,EAAYK,EAAaY,GAC1DL,KAAKkL,KAAO/L,EACZa,KAAKwL,YAAc/L,EACnBO,KAAKyL,WAAarM,EAClBY,KAAKqL,UAAYhL,EAAkB,GAAK,EAAI,EAG9C,SAASqL,oBAAoBvM,EAAMC,EAAYK,GAC7CO,KAAKkL,KAAO/L,EACZa,KAAK2L,WAAavM,EAClBY,KAAK4L,YAAcnM,CAAA,CAGrB,SAASoM,eAAe1M,EAAMC,GAC5BY,KAAKkL,KAAO/L,EACZa,KAAK8L,OAAS1M,CAAA,CAGhB,SAAS2M,wBAAwB5M,EAAaC,GAC5CY,KAAKkL,KAAO,mBACZlL,KAAKgM,YAAc7M,EACnBa,KAAKmL,YAAc/L,CAAA,CAGrB,SAAS6M,mBAAmB9M,GAC1Ba,KAAKkL,KAAO,cACZlL,KAAKgM,YAAc7M,CAAA,CAGrB,SAAS+M,4BAA4B/M,EAAMC,GACzCY,KAAKkL,KAAO/L,EACZa,KAAKgM,YAAc5M,CAAA,CAGrB,IAAI+M,iBACEC,OAAS,EACN,WAEL,OAAO3D,WAAa,qBADpB2D,QAAU,KAFRA,OAON,SAASC,SAASlN,EAAGC,EAAGK,GACtB,IAAIY,EACAG,EACAO,EACAC,EACAI,EACAO,EACAiC,EACAC,EAOJ,OAJAlC,EAAIlC,GAAK,EAAIL,GACbwE,EAAInE,GAAK,GAFT2B,EAAQ,EAAJjC,GADJ6B,EAAI+H,KAAKK,MAAU,EAAJjK,KAGEC,GACjByE,EAAIpE,GAAK,GAAK,EAAI2B,GAAKhC,GAEf4B,EAAI,GACV,KAAK,EACHX,EAAIZ,EACJe,EAAIqD,EACJ9C,EAAIY,EACJ,MAEF,KAAK,EACHtB,EAAIuD,EACJpD,EAAIf,EACJsB,EAAIY,EACJ,MAEF,KAAK,EACHtB,EAAIsB,EACJnB,EAAIf,EACJsB,EAAI8C,EACJ,MAEF,KAAK,EACHxD,EAAIsB,EACJnB,EAAIoD,EACJ7C,EAAItB,EACJ,MAEF,KAAK,EACHY,EAAIwD,EACJrD,EAAImB,EACJZ,EAAItB,EACJ,MAEF,KAAK,EACHY,EAAIZ,EACJe,EAAImB,EACJZ,EAAI6C,EAOR,MAAO,CAACvD,EAAGG,EAAGO,EAAA,CAGhB,SAASuL,SAASnN,EAAGC,EAAGK,GACtB,IAGIY,EAHAG,EAAMuI,KAAKO,IAAInK,EAAGC,EAAGK,GACrBsB,EAAMgI,KAAKS,IAAIrK,EAAGC,EAAGK,GACrBuB,EAAIR,EAAMO,EAEVK,EAAY,IAARZ,EAAY,EAAIQ,EAAIR,EACxBmB,EAAInB,EAAM,IAEd,OAAQA,GACN,KAAKO,EACHV,EAAI,EACJ,MAEF,KAAKlB,EACHkB,EAAIjB,EAAIK,EAAIuB,GAAK5B,EAAIK,EAAI,EAAI,GAC7BY,GAAK,EAAIW,EACT,MAEF,KAAK5B,EACHiB,EAAIZ,EAAIN,EAAQ,EAAJ6B,EACZX,GAAK,EAAIW,EACT,MAEF,KAAKvB,EACHY,EAAIlB,EAAIC,EAAQ,EAAJ4B,EACZX,GAAK,EAAIW,EAOb,MAAO,CAACX,EAAGe,EAAGO,EAAA,CAGhB,SAAS4K,mBAAmBpN,EAAOC,GACjC,IAAIK,EAAM6M,SAAoB,IAAXnN,EAAM,GAAqB,IAAXA,EAAM,GAAqB,IAAXA,EAAM,IASzD,OARAM,EAAI,IAAML,EAENK,EAAI,GAAK,EACXA,EAAI,GAAK,EACAA,EAAI,IAAM,IACnBA,EAAI,GAAK,GAGJ4M,SAAS5M,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAGtC,SAAS+M,mBAAmBrN,EAAOC,GACjC,IAAIK,EAAM6M,SAAoB,IAAXnN,EAAM,GAAqB,IAAXA,EAAM,GAAqB,IAAXA,EAAM,IASzD,OARAM,EAAI,IAAML,EAENK,EAAI,GAAK,EACXA,EAAI,GAAK,EACAA,EAAI,GAAK,IAClBA,EAAI,GAAK,GAGJ4M,SAAS5M,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAGtC,SAASgN,YAAYtN,EAAOC,GAC1B,IAAIK,EAAM6M,SAAoB,IAAXnN,EAAM,GAAqB,IAAXA,EAAM,GAAqB,IAAXA,EAAM,IASzD,OARAM,EAAI,IAAML,EAAS,IAEfK,EAAI,GAAK,EACXA,EAAI,IAAM,EACDA,EAAI,GAAK,IAClBA,EAAI,IAAM,GAGL4M,SAAS5M,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAGtC,IAAIiN,SAAW,WACb,IACIvN,EACAC,EAFAK,EAAW,GAIf,IAAKN,EAAI,EAAGA,EAAI,IAAKA,GAAK,EACxBC,EAAMD,EAAEwN,SAAS,IACjBlN,EAASN,GAAoB,IAAfC,EAAImB,OAAe,IAAMnB,EAAMA,EAG/C,OAAO,SAAUD,EAAGC,EAAGiB,GAarB,OAZIlB,EAAI,IACNA,EAAI,GAGFC,EAAI,IACNA,EAAI,GAGFiB,EAAI,IACNA,EAAI,GAGC,IAAMZ,EAASN,GAAKM,EAASL,GAAKK,EAASY,EAAA,EAvBvC,GA2BXuM,mBAAqB,SAA4BzN,GACnDmJ,kBAAoBnJ,CAAA,EAGlB0N,mBAAqB,WACvB,OAAOvE,eAAA,EAGLwE,qBAAuB,SAA8B3N,GACvDoJ,kBAAoBpJ,CAAA,EAGlB4N,qBAAuB,WACzB,OAAOxE,iBAAA,EAGLyE,wBAA0B,SAAiC7N,GAC7DqJ,sBAAwBrJ,CAAA,EAGtB8N,wBAA0B,WAC5B,OAAOzE,qBAAA,EAGL0E,wBAA0B,SAAiC/N,GAC7D0K,qBAAuB1K,CAAA,EAGrBgO,wBAA0B,WAC5B,OAAOtD,oBAAA,EAGLuD,YAAc,SAAqBjO,GACrCsJ,WAAatJ,CAAA,EAGXkO,YAAc,WAChB,OAAO5E,UAAA,EAGT,SAAS6E,SAASnO,GAEhB,OAAOgH,SAASoH,gBAAgB7H,MAAOvG,EAAA,CAGzC,SAASqO,UAAUrO,GAAuV,OAA1OqO,UAArD,mBAAXjL,QAAoD,iBAApBA,OAAOC,SAAqC,SAAiBrD,GAAO,cAAcA,CAAA,EAA6B,SAAiBA,GAAO,OAAOA,GAAyB,mBAAXoD,QAAyBpD,EAAIc,cAAgBsC,QAAUpD,IAAQoD,OAAO7C,UAAY,gBAAkBP,CAAA,GAA2BA,EAAA,CAE3X,IAAIsO,YAAc,WAChB,IAEItO,EACAC,EAHAK,EAAa,EACbY,EAAY,GAGZG,EAAc,CAChBkN,UAAW,aACXC,YAAa,SAAqBvO,GAChCD,EAAS,CACPyO,KAAMxO,GAAA,GAIR2B,EAAc,CAChB4M,YAAa,SAAqBxO,GAChCqB,EAAYkN,UAAU,CACpBE,KAAMzO,GAAA,GAmBZ,SAAS6B,IACF5B,KACHA,EAhBJ,SAAsBA,GACpB,GAAI0F,OAAO+I,QAAU/I,OAAOgJ,MAAQ/H,eAAgB,CAClD,IAAItG,EAAO,IAAIqO,KAAK,CAAC,4CAA6C1O,EAAGuN,YAAa,CAChFzB,KAAM,oBAGJ7K,EAAM0N,IAAIC,gBAAgBvO,GAC9B,OAAO,IAAIoO,OAAOxN,EAAA,CAIpB,OADAlB,EAAWC,EACJoB,CAAA,CAXT,EAgBkC,SAAqBrB,GAknBjD,GA3EK4B,EAAY0M,cACf1M,EAAY0M,YAviBd,WACE,SAAStO,EAAeqB,EAAQO,GAC9B,IAAIC,EACAI,EAEAO,EACAiC,EACAC,EACAoK,EAJAC,EAAM1N,EAAOD,OAMjB,IAAKa,EAAI,EAAGA,EAAI8M,EAAK9M,GAAK,EAGxB,GAAI,OAFJJ,EAAYR,EAAOY,MAEOJ,EAAUmN,UAAW,CAG7C,GAFAnN,EAAUmN,WAAA,EAENnN,EAAUoN,QAAS,CACrB,IAAIC,EAAYrN,EAAUsN,gBAG1B,IAFA1K,EAAOyK,EAAU9N,OAEZoB,EAAI,EAAGA,EAAIiC,EAAMjC,GAAK,EACzB,GAAI0M,EAAU1M,GAAG4M,GAAGC,EAAEnO,EACpBA,EAA6BgO,EAAU1M,GAAG4M,GAAGC,QAI7C,IAFAP,EAAOI,EAAU1M,GAAG4M,GAAGC,EAAEjO,OAEpBsD,EAAI,EAAGA,EAAIoK,EAAMpK,GAAK,EACrBwK,EAAU1M,GAAG4M,GAAGC,EAAE3K,GAAG9C,GACvBV,EAA6BgO,EAAU1M,GAAG4M,GAAGC,EAAE3K,GAAG9C,EAAE,IAGlDsN,EAAU1M,GAAG4M,GAAGC,EAAE3K,GAAGzE,GACvBiB,EAA6BgO,EAAU1M,GAAG4M,GAAGC,EAAE3K,GAAGzE,EAAE,IAOzC,IAAjB4B,EAAUyN,IACZzN,EAAU0N,OAAStP,EAAe4B,EAAU2N,MAAO5N,GACnD5B,EAAe6B,EAAU0N,OAAQ3N,IACP,IAAjBC,EAAUyN,GACnBhP,EAAeuB,EAAU4N,QACC,IAAjB5N,EAAUyN,IACnBI,EAAa7N,EAAA,EAgDrB,SAAS5B,EAAeD,EAAIC,GAC1B,IAAIK,EAhBN,SAAkBN,EAAIC,GAIpB,IAHA,IAAIK,EAAI,EACJY,EAAMjB,EAAMmB,OAETd,EAAIY,GAAK,CACd,GAAIjB,EAAMK,GAAGqP,KAAO3P,EAClB,OAAOC,EAAMK,GAGfA,GAAK,EAGP,OAAO,KAZT,CAgBsBN,EAAIC,GAExB,OAAIK,EACGA,EAAKiP,OAAOK,OAKVC,KAAKC,MAAMD,KAAKE,UAAUzP,EAAKiP,UAJpCjP,EAAKiP,OAAOK,QAAA,EACLtP,EAAKiP,QAMT,KAGT,SAASjP,EAAeN,GACtB,IAAIC,EAEAoB,EACAO,EAEJ,IAAK3B,EAJKD,EAAIoB,OAIC,EAAGnB,GAAK,EAAGA,GAAK,EAC7B,GAAkB,OAAdD,EAAIC,GAAGqP,GACT,GAAItP,EAAIC,GAAG+P,GAAGX,EAAEnO,EACdA,EAA6BlB,EAAIC,GAAG+P,GAAGX,QAIvC,IAFAzN,EAAO5B,EAAIC,GAAG+P,GAAGX,EAAEjO,OAEdC,EAAI,EAAGA,EAAIO,EAAMP,GAAK,EACrBrB,EAAIC,GAAG+P,GAAGX,EAAEhO,GAAGO,GACjBV,EAA6BlB,EAAIC,GAAG+P,GAAGX,EAAEhO,GAAGO,EAAE,IAG5C5B,EAAIC,GAAG+P,GAAGX,EAAEhO,GAAGpB,GACjBiB,EAA6BlB,EAAIC,GAAG+P,GAAGX,EAAEhO,GAAGpB,EAAE,QAI7B,OAAdD,EAAIC,GAAGqP,IAChBhP,EAAeN,EAAIC,GAAGgQ,GAAA,CAK5B,SAAS/O,EAA6BlB,GACpC,IAAIC,EACAK,EAAMN,EAAKkB,EAAEE,OAEjB,IAAKnB,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EACxBD,EAAKkB,EAAEjB,GAAG,IAAMD,EAAKqE,EAAEpE,GAAG,GAC1BD,EAAKkB,EAAEjB,GAAG,IAAMD,EAAKqE,EAAEpE,GAAG,GAC1BD,EAAKiC,EAAEhC,GAAG,IAAMD,EAAKqE,EAAEpE,GAAG,GAC1BD,EAAKiC,EAAEhC,GAAG,IAAMD,EAAKqE,EAAEpE,GAAG,GAI9B,SAASoB,EAAarB,EAASC,GAC7B,IAAIK,EAAcL,EAAoBA,EAAkBiQ,MAAM,KAAO,CAAC,IAAK,IAAK,KAEhF,OAAIlQ,EAAQ,GAAKM,EAAY,MAIzBA,EAAY,GAAKN,EAAQ,MAIzBA,EAAQ,GAAKM,EAAY,MAIzBA,EAAY,GAAKN,EAAQ,MAIzBA,EAAQ,GAAKM,EAAY,MAIzBA,EAAY,GAAKN,EAAQ,KAItB,OAGT,IA2CM4B,EA3CFC,EAAY,WACd,IAAI7B,EAAiB,CAAC,EAAG,EAAG,IAY5B,SAASC,EAAcD,GACrB,IAAIC,EAXmBK,EACnBY,EAWAG,EAAMrB,EAAOoB,OAEjB,IAAKnB,EAAI,EAAGA,EAAIoB,EAAKpB,GAAK,EACH,IAAjBD,EAAOC,GAAGqP,KAdZpO,GADmBZ,EAgBHN,EAAOC,IAfED,EAAEkP,EAC/B5O,EAAUN,EAAEkP,EAAI,CACdG,EAAG,CAAC,CACFzN,EAAGV,EACHlB,EAAG,MAgBT,OAAO,SAAUM,GACf,GAAIe,EAAarB,EAAgBM,EAAc+D,KAC7CpE,EAAcK,EAAciP,QAExBjP,EAAc6P,QAAQ,CACxB,IAAIjP,EACAU,EAAMtB,EAAc6P,OAAO/O,OAE/B,IAAKF,EAAI,EAAGA,EAAIU,EAAKV,GAAK,EACpBZ,EAAc6P,OAAOjP,GAAGqO,QAC1BtP,EAAcK,EAAc6P,OAAOjP,GAAGqO,OAAA,GAlClC,GA0CZtN,GACEL,EAAiB,CAAC,EAAG,EAAG,IACrB,SAAU5B,GACf,GAAIA,EAAcoQ,QAAU/O,EAAaO,EAAgB5B,EAAcqE,GAAI,CACzE,IAAIpE,EACAiB,EAAMlB,EAAcoQ,MAAMhP,OAE9B,IAAKnB,EAAI,EAAGA,EAAIiB,EAAKjB,GAAK,EAAG,CAC3B,IAAI4B,EAAW7B,EAAcoQ,MAAMnQ,GAE/B4B,EAAS4M,MAAQ5M,EAAS4M,KAAKgB,SACjCnP,EAAeuB,EAAS4M,KAAKgB,QAC7B5N,EAAS4M,KAAK4B,GAAK,EACnBxO,EAAS4M,KAAK6B,GAAK,MACnBzO,EAAS4M,KAAK8B,GAAK,EACnB1O,EAAS4M,KAAK+B,GAAK,EACnB3O,EAAS4M,KAAKuB,GAAK,CACjBtL,EAAG,CACD2K,EAAG,CAAC,EAAG,GACPhO,EAAG,GAELO,EAAG,CACDyN,EAAG,CAAC,IAAK,KACThO,EAAG,GAELA,EAAG,CACDgO,EAAG,CAAC,EAAG,GACPhO,EAAG,GAELf,EAAG,CACD+O,EAAG,EACHhO,EAAG,GAELY,EAAG,CACDoN,EAAG,IACHhO,EAAG,IAIFrB,EAAcoQ,MAAMnQ,GAAGD,IAC1B6B,EAAS4M,KAAKgB,OAAOlM,KAAK,CACxB+L,GAAI,OAENzN,EAAS4M,KAAKgB,OAAO,GAAGQ,GAAG1M,KAAK,CAC9BmB,EAAG,CACD2K,EAAG,CAAC,EAAG,GACPhO,EAAG,GAELO,EAAG,CACDyN,EAAG,CAAC,IAAK,KACThO,EAAG,GAELA,EAAG,CACDgO,EAAG,CAAC,EAAG,GACPhO,EAAG,GAELf,EAAG,CACD+O,EAAG,EACHhO,EAAG,GAELY,EAAG,CACDoN,EAAG,IACHhO,EAAG,GAELoP,GAAI,CACFpB,EAAG,EACHhO,EAAG,GAELqP,GAAI,CACFrB,EAAG,EACHhO,EAAG,GAELiO,GAAI,aASd9M,EAAsB,WACxB,IAAIxC,EAAiB,CAAC,EAAG,EAAG,IA2B5B,SAASC,EAAcD,GACrB,IAAIC,EAzBAiB,EA0BAG,EAAMrB,EAAOoB,OAEjB,IAAKnB,EAAI,EAAGA,EAAIoB,EAAKpB,GAAK,EACH,IAAjBD,EAAOC,GAAGqP,KA7BZpO,OAAA,EAEsB,iBAFtBA,EA8BgBlB,EAAOC,GA9BFD,EAAE0E,GAEPrD,IAClBH,EAASG,EAAI,CACXA,EAAG,EACHgO,EAAGnO,EAASG,IAIU,iBAAfH,EAASwD,IAClBxD,EAASwD,EAAI,CACXrD,EAAG,EACHgO,EAAGnO,EAASwD,IAIU,iBAAfxD,EAASZ,IAClBY,EAASZ,EAAI,CACXe,EAAG,EACHgO,EAAGnO,EAASZ,IAAA,CAgBlB,OAAO,SAAUA,GACf,GAAIe,EAAarB,EAAgBM,EAAc+D,KAC7CpE,EAAcK,EAAciP,QAExBjP,EAAc6P,QAAQ,CACxB,IAAIjP,EACAU,EAAMtB,EAAc6P,OAAO/O,OAE/B,IAAKF,EAAI,EAAGA,EAAIU,EAAKV,GAAK,EACpBZ,EAAc6P,OAAOjP,GAAGqO,QAC1BtP,EAAcK,EAAc6P,OAAOjP,GAAGqO,OAAA,GAjDxB,GAyDtB9K,EAAc,WAChB,IAAIzE,EAAiB,CAAC,EAAG,EAAG,GAE5B,SAASC,EAAcD,GACrB,IAAIM,EAEAY,EACAG,EAFAO,EAAM5B,EAAOoB,OAIjB,IAAKd,EAAI,EAAGA,EAAIsB,EAAKtB,GAAK,EACxB,GAAqB,OAAjBN,EAAOM,GAAGgP,GACZrP,EAAcD,EAAOM,GAAG2P,SACnB,GAAqB,OAAjBjQ,EAAOM,GAAGgP,IAAgC,OAAjBtP,EAAOM,GAAGgP,GAC5C,GAAItP,EAAOM,GAAGwO,EAAEO,GAAKrP,EAAOM,GAAGwO,EAAEO,EAAE,GAAGnO,EAGpC,IAFAG,EAAOrB,EAAOM,GAAGwO,EAAEO,EAAEjO,OAEhBF,EAAI,EAAGA,EAAIG,EAAMH,GAAK,EACrBlB,EAAOM,GAAGwO,EAAEO,EAAEnO,GAAGU,IACnB5B,EAAOM,GAAGwO,EAAEO,EAAEnO,GAAGU,EAAE,IAAM,IACzB5B,EAAOM,GAAGwO,EAAEO,EAAEnO,GAAGU,EAAE,IAAM,IACzB5B,EAAOM,GAAGwO,EAAEO,EAAEnO,GAAGU,EAAE,IAAM,IACzB5B,EAAOM,GAAGwO,EAAEO,EAAEnO,GAAGU,EAAE,IAAM,KAGvB5B,EAAOM,GAAGwO,EAAEO,EAAEnO,GAAGjB,IACnBD,EAAOM,GAAGwO,EAAEO,EAAEnO,GAAGjB,EAAE,IAAM,IACzBD,EAAOM,GAAGwO,EAAEO,EAAEnO,GAAGjB,EAAE,IAAM,IACzBD,EAAOM,GAAGwO,EAAEO,EAAEnO,GAAGjB,EAAE,IAAM,IACzBD,EAAOM,GAAGwO,EAAEO,EAAEnO,GAAGjB,EAAE,IAAM,UAI7BD,EAAOM,GAAGwO,EAAEO,EAAE,IAAM,IACpBrP,EAAOM,GAAGwO,EAAEO,EAAE,IAAM,IACpBrP,EAAOM,GAAGwO,EAAEO,EAAE,IAAM,IACpBrP,EAAOM,GAAGwO,EAAEO,EAAE,IAAM,IAM5B,SAAS/O,EAAcN,GACrB,IAAIM,EACAY,EAAMlB,EAAOoB,OAEjB,IAAKd,EAAI,EAAGA,EAAIY,EAAKZ,GAAK,EACH,IAAjBN,EAAOM,GAAGgP,IACZrP,EAAcD,EAAOM,GAAGmP,OAAA,CAK9B,OAAO,SAAUxP,GACf,GAAIoB,EAAarB,EAAgBC,EAAcoE,KAC7C/D,EAAcL,EAAcsP,QAExBtP,EAAckQ,QAAQ,CACxB,IAAIjP,EACAU,EAAM3B,EAAckQ,OAAO/O,OAE/B,IAAKF,EAAI,EAAGA,EAAIU,EAAKV,GAAK,EACpBjB,EAAckQ,OAAOjP,GAAGqO,QAC1BjP,EAAcL,EAAckQ,OAAOjP,GAAGqO,OAAA,GA9DhC,GAsEd7K,EAAc,WAChB,IAAI1E,EAAiB,CAAC,EAAG,EAAG,IAE5B,SAASC,EAAsBD,GAC7B,IAAIM,EAEAY,EACAG,EAEJ,IAAKf,EAJKN,EAAIoB,OAIC,EAAGd,GAAK,EAAGA,GAAK,EAC7B,GAAkB,OAAdN,EAAIM,GAAGgP,GACT,GAAItP,EAAIM,GAAG0P,GAAGX,EAAEnO,EACdlB,EAAIM,GAAG0P,GAAGX,EAAEP,EAAI9O,EAAIM,GAAGqQ,YAIvB,IAFAtP,EAAOrB,EAAIM,GAAG0P,GAAGX,EAAEjO,OAEdF,EAAI,EAAGA,EAAIG,EAAMH,GAAK,EACrBlB,EAAIM,GAAG0P,GAAGX,EAAEnO,GAAGU,IACjB5B,EAAIM,GAAG0P,GAAGX,EAAEnO,GAAGU,EAAE,GAAGkN,EAAI9O,EAAIM,GAAGqQ,QAG7B3Q,EAAIM,GAAG0P,GAAGX,EAAEnO,GAAGjB,IACjBD,EAAIM,GAAG0P,GAAGX,EAAEnO,GAAGjB,EAAE,GAAG6O,EAAI9O,EAAIM,GAAGqQ,YAId,OAAd3Q,EAAIM,GAAGgP,IAChBrP,EAAsBD,EAAIM,GAAG2P,GAAA,CAKnC,SAAS3P,EAAcN,GACrB,IAAIM,EACAY,EAEAG,EACAO,EACAC,EACAI,EAJAO,EAAMxC,EAAOoB,OAMjB,IAAKF,EAAI,EAAGA,EAAIsB,EAAKtB,GAAK,EAAG,CAG3B,IAFAZ,EAAYN,EAAOkB,IAEL+N,QAAS,CACrB,IAAIxK,EAAYnE,EAAU6O,gBAG1B,IAFAvN,EAAO6C,EAAUrD,OAEZC,EAAI,EAAGA,EAAIO,EAAMP,GAAK,EACzB,GAAIoD,EAAUpD,GAAG+N,GAAGC,EAAEnO,EACpBuD,EAAUpD,GAAG+N,GAAGC,EAAEP,EAAIrK,EAAUpD,GAAGuP,QAInC,IAFA3O,EAAOwC,EAAUpD,GAAG+N,GAAGC,EAAEjO,OAEpBS,EAAI,EAAGA,EAAII,EAAMJ,GAAK,EACrB4C,EAAUpD,GAAG+N,GAAGC,EAAExN,GAAGD,IACvB6C,EAAUpD,GAAG+N,GAAGC,EAAExN,GAAGD,EAAE,GAAGkN,EAAIrK,EAAUpD,GAAGuP,IAGzCnM,EAAUpD,GAAG+N,GAAGC,EAAExN,GAAG5B,IACvBwE,EAAUpD,GAAG+N,GAAGC,EAAExN,GAAG5B,EAAE,GAAG6O,EAAIrK,EAAUpD,GAAGuP,GAAA,CAOhC,IAAjBtQ,EAAUgP,IACZrP,EAAsBK,EAAUmP,OAAA,EAKtC,OAAO,SAAUxP,GACf,GAAIoB,EAAarB,EAAgBC,EAAcoE,KAC7C/D,EAAcL,EAAcsP,QAExBtP,EAAckQ,QAAQ,CACxB,IAAIjP,EACAU,EAAM3B,EAAckQ,OAAO/O,OAE/B,IAAKF,EAAI,EAAGA,EAAIU,EAAKV,GAAK,EACpBjB,EAAckQ,OAAOjP,GAAGqO,QAC1BjP,EAAcL,EAAckQ,OAAOjP,GAAGqO,OAAA,GAnFhC,GA0GlB,SAASG,EAAa1P,GACI,IAApBA,EAAKA,EAAEqB,EAAED,QAAyBpB,EAAKA,EAAE0E,CAAA,CAI/C,IAAIoK,EAAW,CACf+B,aArBA,SAAsBvQ,GAChBA,EAAcwQ,aAIlBrM,EAAYnE,GACZuB,EAAUvB,GACV2B,EAAW3B,GACXkC,EAAoBlC,GACpBoE,EAAYpE,GACZN,EAAeM,EAAciP,OAAQjP,EAAc6P,QA/drD,SAAuB7P,EAAOY,GAC5B,GAAIZ,EAAO,CACT,IAAIe,EAAI,EACJO,EAAMtB,EAAMc,OAEhB,IAAKC,EAAI,EAAGA,EAAIO,EAAKP,GAAK,EACL,IAAff,EAAMe,GAAGrB,IAEXM,EAAMe,GAAGoN,KAAKc,OAAStP,EAAeK,EAAMe,GAAGoN,KAAKe,MAAOtO,GAa3DlB,EAAeM,EAAMe,GAAGoN,KAAKc,OAAQrO,GAAA,EArB7C,CAgegBZ,EAAc8P,MAAO9P,EAAc6P,QACjD7P,EAAcwQ,YAAA,EAAa,GAe7B,OALAhC,EAASiC,YAActM,EACvBqK,EAASkC,WAAa/O,EACtB6M,EAASmC,oBAAsBzO,EAC/BsM,EAASoC,YAAcxM,EACvBoK,EAASqC,eAAiBnR,EACnB8O,CAAA,CAniBT,IA0iBKlN,EAAYwP,cACfxP,EAAYwP,YAAc,WACxB,SAASpR,EAAeA,GAGtB,IAAIC,EAAoBD,EAAIqR,kBAAkB,gBAE9C,OAAIpR,GAA0C,SAArBD,EAAIsR,eAAkE,IAAvCrR,EAAkBuB,QAAQ,SAI9ExB,EAAIuR,UAAwC,WAA5BlD,UAAUrO,EAAIuR,UAHzBvR,EAAIuR,SAOTvR,EAAIuR,UAAoC,iBAAjBvR,EAAIuR,SACtB1B,KAAKC,MAAM9P,EAAIuR,UAGpBvR,EAAIwR,aACC3B,KAAKC,MAAM9P,EAAIwR,cAGjB,KA0CT,MAAO,CACLC,KAxCF,SAAmBxR,EAAMK,EAAUY,EAAUG,GAC3C,IAAIO,EACAC,EAAM,IAAI6P,eAEd,IAEE7P,EAAIyP,aAAe,OACnB,MAAOtR,GAAA,CAGT6B,EAAI8P,mBAAqB,WACvB,GAAuB,IAAnB9P,EAAI+P,WACN,GAAmB,MAAf/P,EAAIgQ,OACNjQ,EAAW5B,EAAe6B,GAC1BX,EAASU,QAET,IACEA,EAAW5B,EAAe6B,GAC1BX,EAASU,EAAA,CACT,MAAO5B,GACHqB,GACFA,EAAcrB,EAAA,GAOxB,IAEE6B,EAAIiQ,KAAK,CAAC,IAAK,IAAK,KAAKC,KAAK,IAAK9R,GAAA,EAAM,CACzC,MAAOD,GAEP6B,EAAIiQ,KAAK,CAAC,IAAK,IAAK,KAAKC,KAAK,IAAKzR,EAAW,IAAML,GAAA,EAAM,CAG5D4B,EAAImQ,MAAA,GA7DkB,IAsER,kBAAhBhS,EAAEyO,KAAK1C,KACTnK,EAAYwP,YAAYK,KAAKzR,EAAEyO,KAAKwD,KAAMjS,EAAEyO,KAAKyD,UAAU,SAAUjS,GACnE2B,EAAY0M,YAAYuC,aAAa5Q,GAErC2B,EAAY4M,YAAY,CACtBmB,GAAI3P,EAAEyO,KAAKkB,GACXwC,QAASlS,EACT4R,OAAQ,eAET,WACDjQ,EAAY4M,YAAY,CACtBmB,GAAI3P,EAAEyO,KAAKkB,GACXkC,OAAQ,kBAGP,GAAoB,aAAhB7R,EAAEyO,KAAK1C,KAAqB,CACrC,IAAI9L,EAAYD,EAAEyO,KAAK2D,UAEvBxQ,EAAY0M,YAAYuC,aAAa5Q,GAErC2B,EAAY4M,YAAY,CACtBmB,GAAI3P,EAAEyO,KAAKkB,GACXwC,QAASlS,EACT4R,OAAQ,gBAEe,aAAhB7R,EAAEyO,KAAK1C,MAChBnK,EAAYwP,YAAYK,KAAKzR,EAAEyO,KAAKwD,KAAMjS,EAAEyO,KAAKyD,UAAU,SAAUjS,GACnE2B,EAAY4M,YAAY,CACtBmB,GAAI3P,EAAEyO,KAAKkB,GACXwC,QAASlS,EACT4R,OAAQ,eAET,WACDjQ,EAAY4M,YAAY,CACtBmB,GAAI3P,EAAEyO,KAAKkB,GACXkC,OAAQ,iBAMDtD,UAAY,SAAUvO,GACnC,IAAIC,EAAOD,EAAMyO,KACbnO,EAAKL,EAAK0P,GACVtO,EAAUH,EAAUZ,GACxBY,EAAUZ,GAAM,KAEI,YAAhBL,EAAK4R,OACPxQ,EAAQgR,WAAWpS,EAAKkS,SACf9Q,EAAQiR,SACjBjR,EAAQiR,SAAA,GAMhB,SAASrQ,EAAcjC,EAAYC,GAEjC,IAAIoB,EAAK,cADTf,GAAc,GAMd,OAJAY,EAAUG,GAAM,CACdgR,WAAYrS,EACZsS,QAASrS,GAEJoB,CAAA,CAmCT,MAAO,CACLkR,cAjCF,SAAuBvS,EAAMM,EAAYY,GACvCW,IACA,IAAIR,EAAYY,EAAc3B,EAAYY,GAC1CjB,EAAeuO,YAAY,CACzBzC,KAAM,gBACNkG,KAAMjS,EACNkS,SAAUvM,OAAO6M,SAASC,OAAS9M,OAAO6M,SAASE,SACnD/C,GAAItO,GAAA,EA2BNsR,SAvBF,SAAkB3S,EAAMM,EAAYY,GAClCW,IACA,IAAIR,EAAYY,EAAc3B,EAAYY,GAC1CjB,EAAeuO,YAAY,CACzBzC,KAAM,WACNkG,KAAMjS,EACNkS,SAAUvM,OAAO6M,SAASC,OAAS9M,OAAO6M,SAASE,SACnD/C,GAAItO,GAAA,EAiBNuR,kBAbF,SAA2B5S,EAAMM,EAAYY,GAC3CW,IACA,IAAIR,EAAYY,EAAc3B,EAAYY,GAC1CjB,EAAeuO,YAAY,CACzBzC,KAAM,WACNqG,UAAWpS,EACX2P,GAAItO,GAAA,GArvBQ,GAgwBdwR,eAAiB,WACnB,IAAI7S,EAAa,WACf,IAAIA,EAAS+G,UAAU,UACvB/G,EAAO8S,MAAQ,EACf9S,EAAO+S,OAAS,EAChB,IAAI9S,EAAMD,EAAOgT,WAAW,MAG5B,OAFA/S,EAAIgT,UAAY,gBAChBhT,EAAIiT,SAAS,EAAG,EAAG,EAAG,GACflT,CAAA,CAPQ,GAUjB,SAASC,IACPY,KAAKsS,cAAgB,EAEjBtS,KAAKsS,eAAiBtS,KAAKuS,aAAevS,KAAKwS,sBAAwBxS,KAAKyS,eAC1EzS,KAAK0S,gBACP1S,KAAK0S,eAAe,MAK1B,SAASjT,IACPO,KAAKwS,qBAAuB,EAExBxS,KAAKsS,eAAiBtS,KAAKuS,aAAevS,KAAKwS,sBAAwBxS,KAAKyS,eAC1EzS,KAAK0S,gBACP1S,KAAK0S,eAAe,MAK1B,SAASrS,EAAclB,EAAWC,EAAYK,GAC5C,IAAIY,EAAO,GAEX,GAAIlB,EAAUC,EACZiB,EAAOlB,EAAU0E,OACZ,GAAIzE,EAAY,CACrB,IAAIoB,EAAYrB,EAAU0E,GAEY,IAAlCrD,EAAUG,QAAQ,aACpBH,EAAYA,EAAU6O,MAAM,KAAK,IAGnChP,EAAOjB,EAAaoB,CAAA,MAEpBH,EAAOZ,EACPY,GAAQlB,EAAUwT,EAAIxT,EAAUwT,EAAI,GACpCtS,GAAQlB,EAAU0E,EAGpB,OAAOxD,CAAA,CAGT,SAASG,EAAgBrB,GACvB,IAAIC,EAAS,EACTK,EAAamT,YAAY,YACjBzT,EAAI0T,UAENZ,OAAS7S,EAAS,OACxBY,KAAK8S,eAELC,cAActT,IAGhBL,GAAU,GACV4T,KAAKhT,MAAO,IAmDhB,SAASe,EAAkB5B,GACzB,IAAIC,EAAK,CACP6T,UAAW9T,GAETM,EAAOY,EAAclB,EAAMa,KAAKkT,WAAYlT,KAAKoR,MAUrD,OATA3D,YAAYqE,SAASrS,EAAM,SAAUN,GACnCC,EAAG+T,IAAMhU,EAETa,KAAKoT,gBAAA,EACLJ,KAAKhT,MAAO,WACZZ,EAAG+T,IAAM,CAAC,EAEVnT,KAAKoT,gBAAA,EACLJ,KAAKhT,OACAZ,CAAA,CAkET,SAAS4B,IACPhB,KAAK8S,aAAe1T,EAAY4T,KAAKhT,MACrCA,KAAKoT,eAAiB3T,EAAcuT,KAAKhT,MACzCA,KAAKqT,gBAAkB7S,EAAgBwS,KAAKhT,MAC5CA,KAAKsT,kBAAoBvS,EAAkBiS,KAAKhT,MAChDA,KAAKkT,WAAa,GAClBlT,KAAKoR,KAAO,GACZpR,KAAKuS,YAAc,EACnBvS,KAAKyS,cAAgB,EACrBzS,KAAKsS,aAAe,EACpBtS,KAAKwS,oBAAsB,EAC3BxS,KAAK0S,eAAiB,KACtB1S,KAAKuT,OAAS,GAiBhB,OAdAvS,EAAsBtB,UAAY,CAChC8T,WA/EF,SAAoBrU,EAAQC,GAE1B,IAAIK,EADJO,KAAK0S,eAAiBtT,EAEtB,IAAIiB,EAAMlB,EAAOoB,OAEjB,IAAKd,EAAI,EAAGA,EAAIY,EAAKZ,GAAK,EACnBN,EAAOM,GAAGiP,SACRvP,EAAOM,GAAGN,GAAqB,QAAhBA,EAAOM,GAAGN,EAGH,IAAhBA,EAAOM,GAAGN,IACnBa,KAAKyS,eAAiB,EACtBzS,KAAKuT,OAAO7Q,KAAK1C,KAAKsT,kBAAkBnU,EAAOM,OAJ/CO,KAAKuS,aAAe,EACpBvS,KAAKuT,OAAO7Q,KAAK1C,KAAKyT,iBAAiBtU,EAAOM,MAAA,EAuEpDiU,cA1DF,SAAuBvU,GACrBa,KAAKkT,WAAa/T,GAAQ,IA0D1BwU,QA/DF,SAAiBxU,GACfa,KAAKoR,KAAOjS,GAAQ,IA+DpByU,aApCF,WACE,OAAO5T,KAAKuS,cAAgBvS,KAAKsS,YAAA,EAoCjCuB,eAjCF,WACE,OAAO7T,KAAKyS,gBAAkBzS,KAAKwS,mBAAA,EAiCnCsB,QA3CF,WACE9T,KAAK0S,eAAiB,KACtB1S,KAAKuT,OAAOhT,OAAS,GA0CrBwT,SA3DF,SAAkB5U,GAIhB,IAHA,IAAIC,EAAI,EACJK,EAAMO,KAAKuT,OAAOhT,OAEfnB,EAAIK,GAAK,CACd,GAAIO,KAAKuT,OAAOnU,GAAG6T,YAAc9T,EAC/B,OAAOa,KAAKuT,OAAOnU,GAAG+T,IAGxB/T,GAAK,EAGP,OAAO,MAgDP4U,cAzHF,SAAuB5U,GACrB,IAAIK,EAAOY,EAAcjB,EAAWY,KAAKkT,WAAYlT,KAAKoR,MACtD5Q,EAAM0F,UAAU,OACpB1F,EAAIyT,YAAc,YAClBzT,EAAI0T,iBAAiB,OAAQlU,KAAK8S,cAAA,GAClCtS,EAAI0T,iBAAiB,QAAS,WAC5BnT,EAAGoS,IAAMhU,EAETa,KAAK8S,cAAA,EACLE,KAAKhT,OAAO,GACdQ,EAAI2G,IAAM1H,EACV,IAAIsB,EAAK,CACPoS,IAAK3S,EACLyS,UAAW7T,GAEb,OAAO2B,CAAA,EA2GPoT,gBAxJF,SAAyB/U,GACvB,IAAIK,EAAOY,EAAcjB,EAAWY,KAAKkT,WAAYlT,KAAKoR,MACtD5Q,EAAM8M,SAAS,SAEf5E,SACF1I,KAAKqT,gBAAgB7S,GAErBA,EAAI0T,iBAAiB,OAAQlU,KAAK8S,cAAA,GAGpCtS,EAAI0T,iBAAiB,QAAS,WAC5BnT,EAAGoS,IAAMhU,EAETa,KAAK8S,cAAA,EACLE,KAAKhT,OAAO,GACdQ,EAAI4T,eAAe,+BAAgC,OAAQ3U,GAEvDO,KAAKqU,eAAeC,OACtBtU,KAAKqU,eAAeC,OAAO9T,GAE3BR,KAAKqU,eAAeE,YAAY/T,GAGlC,IAAIO,EAAK,CACPoS,IAAK3S,EACLyS,UAAW7T,GAEb,OAAO2B,CAAA,EA8HPyT,YAAapV,EACbqV,cAAehV,EACfiV,aApCF,SAAsBvV,EAAMC,GACb,QAATD,GACFa,KAAKqU,eAAiBjV,EACtBY,KAAKyT,iBAAmBzT,KAAKmU,gBAAgBnB,KAAKhT,OAElDA,KAAKyT,iBAAmBzT,KAAKgU,cAAchB,KAAKhT,KAAA,GAiC7CgB,CAAA,CAjOY,GAoOrB,SAAS2T,YAAA,CAETA,UAAUjV,UAAY,CACpBkV,aAAc,SAAsBzV,EAAWC,GAC7C,GAAIY,KAAK6U,KAAK1V,GAGZ,IAFA,IAAIM,EAAYO,KAAK6U,KAAK1V,GAEjBkB,EAAI,EAAGA,EAAIZ,EAAUc,OAAQF,GAAK,EACzCZ,EAAUY,GAAGjB,EAAA,EAInB8U,iBAAkB,SAA0B/U,EAAWC,GAOrD,OANKY,KAAK6U,KAAK1V,KACba,KAAK6U,KAAK1V,GAAa,IAGzBa,KAAK6U,KAAK1V,GAAWuD,KAAKtD,GAEnB,WACLY,KAAK8U,oBAAoB3V,EAAWC,EAAA,EACpC4T,KAAKhT,KAAA,EAET8U,oBAAqB,SAA6B3V,EAAWC,GAC3D,GAAKA,GAEE,GAAIY,KAAK6U,KAAK1V,GAAY,CAI/B,IAHA,IAAIM,EAAI,EACJY,EAAML,KAAK6U,KAAK1V,GAAWoB,OAExBd,EAAIY,GACLL,KAAK6U,KAAK1V,GAAWM,KAAOL,IAC9BY,KAAK6U,KAAK1V,GAAW4V,OAAOtV,EAAG,GAE/BA,GAAK,EACLY,GAAO,GAGTZ,GAAK,EAGFO,KAAK6U,KAAK1V,GAAWoB,SACxBP,KAAK6U,KAAK1V,GAAa,YAjBzBa,KAAK6U,KAAK1V,GAAa,OAuB7B,IAAI6V,aAAe,WACjB,SAAS7V,EAAkBA,GAMzB,IALA,IAEIC,EAFAK,EAAQN,EAAQkQ,MAAM,QACtBhP,EAAO,CAAC,EAERG,EAAY,EAEPO,EAAI,EAAGA,EAAItB,EAAMc,OAAQQ,GAAK,EAGjB,KAFpB3B,EAAOK,EAAMsB,GAAGsO,MAAM,MAEb9O,SACPF,EAAKjB,EAAK,IAAMA,EAAK,GAAG6V,OACxBzU,GAAa,GAIjB,GAAkB,IAAdA,EACF,MAAM,IAAI8E,MAGZ,OAAOjF,CAAA,CAGT,OAAO,SAAUjB,GAGf,IAFA,IAAIK,EAAU,GAELY,EAAI,EAAGA,EAAIjB,EAASmB,OAAQF,GAAK,EAAG,CAC3C,IAAIG,EAAUpB,EAASiB,GACnBU,EAAa,CACfmU,KAAM1U,EAAQ2U,GACdC,SAAU5U,EAAQ6U,IAGpB,IACEtU,EAAWuQ,QAAUtC,KAAKC,MAAM7P,EAASiB,GAAGiV,GAAA,CAC5C,MAAO7V,GACP,IACEsB,EAAWuQ,QAAUnS,EAAkBC,EAASiB,GAAGiV,GAAA,CACnD,MAAOnW,GACP4B,EAAWuQ,QAAU,CACnBiE,KAAMnW,EAASiB,GAAGiV,GAAA,EAKxB7V,EAAQiD,KAAK3B,EAAA,CAGf,OAAOtB,CAAA,EAhDQ,GAoDf+V,iBAAmB,WACrB,SAASrW,EAAoBA,GAC3Ba,KAAKyV,aAAa/S,KAAKvD,EAAA,CAGzB,OAAO,WACL,SAASC,EAAqBD,GAI5B,IAHA,IAAIC,EAAI,EACJK,EAAMO,KAAKyV,aAAalV,OAErBnB,EAAIK,GAAK,CACd,GAAIO,KAAKyV,aAAarW,GAAGwO,MAAQ5N,KAAKyV,aAAarW,GAAGwO,KAAK8H,KAAOvW,EAKhE,OAJIa,KAAKyV,aAAarW,GAAGuW,cAAgB3V,KAAKyV,aAAarW,GAAGwO,KAAKgI,IACjE5V,KAAKyV,aAAarW,GAAGuW,aAAa3V,KAAK6V,cAGlC7V,KAAKyV,aAAarW,GAAG0W,cAG9B1W,GAAK,EAGP,OAAO,KAMT,OAHAA,EAAqBqW,aAAe,GACpCrW,EAAqByW,aAAe,EACpCzW,EAAqB2W,oBAAsB5W,EACpCC,CAAA,EA5BY,GAgCnB4W,UAAY,CAAC,EAEbC,iBAAmB,SAA0B9W,EAAKC,GACpD4W,UAAU7W,GAAOC,CAAA,EAGnB,SAAS8W,YAAY/W,GACnB,OAAO6W,UAAU7W,EAAA,CAGnB,SAASgX,UAAUhX,GAAuV,OAA1OgX,UAArD,mBAAX5T,QAAoD,iBAApBA,OAAOC,SAAqC,SAAiBrD,GAAO,cAAcA,CAAA,EAA6B,SAAiBA,GAAO,OAAOA,GAAyB,mBAAXoD,QAAyBpD,EAAIc,cAAgBsC,QAAUpD,IAAQoD,OAAO7C,UAAY,gBAAkBP,CAAA,GAA2BA,EAAA,CAE3X,IAAIiX,cAAgB,WAClBpW,KAAK6U,KAAO,GACZ7U,KAAKuV,KAAO,GACZvV,KAAKoR,KAAO,GACZpR,KAAKqW,UAAA,EACLrW,KAAK6V,aAAe,EACpB7V,KAAKsW,gBAAkB,EACvBtW,KAAK2L,WAAa,EAClB3L,KAAK4L,YAAc,EACnB5L,KAAKuW,UAAY,EACjBvW,KAAKwW,UAAY,EACjBxW,KAAKyW,UAAY,EACjBzW,KAAK0W,cAAgB,EACrB1W,KAAK2W,UAAY,EACjB3W,KAAK4W,cAAgB,CAAC,EACtB5W,KAAKsP,OAAS,GACdtP,KAAK6W,UAAA,EACL7W,KAAK8W,UAAA,EACL9W,KAAK+W,MAAA,EACL/W,KAAKgX,SAAW,KAChBhX,KAAKiX,YAAc9K,kBACnBnM,KAAKkT,WAAa,GAClBlT,KAAKkX,cAAgB,EACrBlX,KAAKmX,WAAa,EAClBnX,KAAKoX,kBAAoBvK,qBACzB7M,KAAKqX,SAAW,GAChBrX,KAAKsX,OAAA,EACLtX,KAAKuX,gBAAA,EACLvX,KAAKwX,iBAAmBhC,mBACxBxV,KAAKyX,eAAiB,IAAIzF,eAC1BhS,KAAK0X,gBAAkBlR,yBACvBxG,KAAK2X,QAAU,GACf3X,KAAK4X,gBAAkB5X,KAAK4X,gBAAgB5E,KAAKhT,MACjDA,KAAK6X,aAAe7X,KAAK6X,aAAa7E,KAAKhT,MAC3CA,KAAK8X,kBAAoB9X,KAAK8X,kBAAkB9E,KAAKhT,MACrDA,KAAK+X,gBAAkB,IAAI9M,kBAAkB,aAAc,EAAG,EAAG,IAGnE5E,gBAAgB,CAACsO,WAAYyB,eAE7BA,cAAc1W,UAAUsY,UAAY,SAAU7Y,IACxCA,EAAO8Y,SAAW9Y,EAAO+Y,aAC3BlY,KAAKiY,QAAU9Y,EAAO8Y,SAAW9Y,EAAO+Y,WAG1C,IAAI9Y,EAAW,MAEXD,EAAOgZ,SACT/Y,EAAWD,EAAOgZ,SACThZ,EAAO6X,WAChB5X,EAAWD,EAAO6X,UAGpB,IAAIvX,EAAgByW,YAAY9W,GAChCY,KAAKgX,SAAW,IAAIvX,EAAcO,KAAMb,EAAOiZ,kBAC/CpY,KAAKyX,eAAe/C,aAAatV,EAAUY,KAAKgX,SAASqB,WAAWC,MACpEtY,KAAKgX,SAASuB,oBAAoBvY,KAAKwX,kBACvCxX,KAAKmY,SAAW/Y,EAEI,KAAhBD,EAAO4X,MAA+B,OAAhB5X,EAAO4X,WAAA,IAAiB5X,EAAO4X,OAAA,IAAsB5X,EAAO4X,KACpF/W,KAAK+W,MAAA,GAAO,IACH5X,EAAO4X,KAChB/W,KAAK+W,MAAA,EAEL/W,KAAK+W,KAAOyB,SAASrZ,EAAO4X,KAAM,IAGpC/W,KAAK8W,WAAW,aAAc3X,IAASA,EAAO2X,SAC9C9W,KAAKuV,KAAOpW,EAAOoW,KAAOpW,EAAOoW,KAAO,GACxCvV,KAAKyY,kBAAmBpZ,OAAOK,UAAUC,eAAeC,KAAKT,EAAQ,qBAAsBA,EAAOsZ,iBAClGzY,KAAKkT,WAAa/T,EAAO+T,WACzBlT,KAAK0Y,eAAiBvZ,EAAOuZ,eAEzBvZ,EAAOuH,cACT1G,KAAK0X,gBAAgBhQ,gBAAgBvI,EAAOuH,cAG1CvH,EAAOyX,cACT5W,KAAK2Y,eAAexZ,EAAOyX,eAClBzX,EAAOiS,QACuB,IAAnCjS,EAAOiS,KAAKwH,YAAY,MAC1B5Y,KAAKoR,KAAOjS,EAAOiS,KAAKyH,OAAO,EAAG1Z,EAAOiS,KAAKwH,YAAY,MAAQ,GAElE5Y,KAAKoR,KAAOjS,EAAOiS,KAAKyH,OAAO,EAAG1Z,EAAOiS,KAAKwH,YAAY,KAAO,GAGnE5Y,KAAK8Y,SAAW3Z,EAAOiS,KAAKyH,OAAO1Z,EAAOiS,KAAKwH,YAAY,KAAO,GAClE5Y,KAAK8Y,SAAW9Y,KAAK8Y,SAASD,OAAO,EAAG7Y,KAAK8Y,SAASF,YAAY,UAClEnL,YAAYiE,cAAcvS,EAAOiS,KAAMpR,KAAK4X,gBAAiB5X,KAAK6X,cAAA,EAItEzB,cAAc1W,UAAUmY,aAAe,WACrC7X,KAAK+Y,QAAQ,gBAGf3C,cAAc1W,UAAUiZ,eAAiB,SAAUxZ,GACjDsO,YAAYsE,kBAAkB5S,EAAMa,KAAK4X,gBAAA,EAG3CxB,cAAc1W,UAAUsZ,QAAU,SAAU7Z,EAASC,GAC/CA,GAC+B,WAA7B+W,UAAU/W,KACZA,EAAgB4P,KAAKC,MAAM7P,IAI/B,IAAIK,EAAS,CACXwY,QAAS9Y,EACTyX,cAAexX,GAEbiB,EAAoBlB,EAAQ8Z,WAChCxZ,EAAO2R,KAAO/Q,EAAkB6Y,aAAa,uBAC3C7Y,EAAkB6Y,aAAa,uBAAuBnX,MAAQ1B,EAAkB6Y,aAAa,gBAC7F7Y,EAAkB6Y,aAAa,gBAAgBnX,MAAQ1B,EAAkB6Y,aAAa,WAAa7Y,EAAkB6Y,aAAa,WAAWnX,MAAQ,GACvJtC,EAAO0Y,SAAW9X,EAAkB6Y,aAAa,kBAC/C7Y,EAAkB6Y,aAAa,kBAAkBnX,MAAQ1B,EAAkB6Y,aAAa,gBACxF7Y,EAAkB6Y,aAAa,gBAAgBnX,MAAQ1B,EAAkB6Y,aAAa,WACtF7Y,EAAkB6Y,aAAa,WAAWnX,MAAQ1B,EAAkB6Y,aAAa,oBACjF7Y,EAAkB6Y,aAAa,oBAAoBnX,MAAQ1B,EAAkB6Y,aAAa,eAAiB7Y,EAAkB6Y,aAAa,eAAenX,MAAQ,SACnK,IAAIvB,EAAOH,EAAkB6Y,aAAa,kBACxC7Y,EAAkB6Y,aAAa,kBAAkBnX,MAAQ1B,EAAkB6Y,aAAa,gBACxF7Y,EAAkB6Y,aAAa,gBAAgBnX,MAAQ1B,EAAkB6Y,aAAa,WAAa7Y,EAAkB6Y,aAAa,WAAWnX,MAAQ,GAE1I,UAATvB,EACFf,EAAOsX,MAAA,EACW,SAATvW,EACTf,EAAOsX,MAAA,EACW,KAATvW,IACTf,EAAOsX,KAAOyB,SAAShY,EAAM,KAG/B,IAAIO,EAAWV,EAAkB6Y,aAAa,sBAC5C7Y,EAAkB6Y,aAAa,sBAAsBnX,MAAQ1B,EAAkB6Y,aAAa,oBAC5F7Y,EAAkB6Y,aAAa,oBAAoBnX,OAAQ1B,EAAkB6Y,aAAa,gBAAiB7Y,EAAkB6Y,aAAa,eAAenX,MAC3JtC,EAAOqX,SAAwB,UAAb/V,EAClBtB,EAAO8V,KAAOlV,EAAkB6Y,aAAa,aAC3C7Y,EAAkB6Y,aAAa,aAAanX,MAAQ1B,EAAkB6Y,aAAa,gBACnF7Y,EAAkB6Y,aAAa,gBAAgBnX,MAAQ1B,EAAkB6Y,aAAa,WAAa7Y,EAAkB6Y,aAAa,WAAWnX,MAAQ,GAKrI,WAJF1B,EAAkB6Y,aAAa,uBAC7C7Y,EAAkB6Y,aAAa,uBAAuBnX,MAAQ1B,EAAkB6Y,aAAa,qBAC7F7Y,EAAkB6Y,aAAa,qBAAqBnX,MAAQ1B,EAAkB6Y,aAAa,gBAAkB7Y,EAAkB6Y,aAAa,gBAAgBnX,MAAQ,MAGpKtC,EAAO0Z,WAAA,GAGTnZ,KAAKgY,UAAUvY,EAAA,EAGjB2W,cAAc1W,UAAU0Z,cAAgB,SAAUja,GAC5CA,EAAKsQ,GAAKzP,KAAK4W,cAAcnH,KAC/BzP,KAAK4W,cAAcnH,GAAKtQ,EAAKsQ,GAC7BzP,KAAK4L,YAAc7C,KAAKK,MAAMjK,EAAKsQ,GAAKzP,KAAK4W,cAAcpH,KAG7D,IACIpQ,EAGAK,EAJAY,EAASL,KAAK4W,cAAclI,OAE5BlO,EAAMH,EAAOE,OACbQ,EAAY5B,EAAKuP,OAEjB1N,EAAOD,EAAUR,OAErB,IAAKd,EAAI,EAAGA,EAAIuB,EAAMvB,GAAK,EAGzB,IAFAL,EAAI,EAEGA,EAAIoB,GAAK,CACd,GAAIH,EAAOjB,GAAG0P,KAAO/N,EAAUtB,GAAGqP,GAAI,CACpCzO,EAAOjB,GAAK2B,EAAUtB,GACtB,MAGFL,GAAK,EAST,IALID,EAAKoQ,OAASpQ,EAAKka,SACrBrZ,KAAKgX,SAASqB,WAAWiB,YAAYC,SAASpa,EAAKoQ,OACnDvP,KAAKgX,SAASqB,WAAWiB,YAAYE,SAASra,EAAKka,MAAOrZ,KAAKgX,SAASqB,WAAWC,OAGjFnZ,EAAKmQ,OAGP,IAFA9O,EAAMrB,EAAKmQ,OAAO/O,OAEbnB,EAAI,EAAGA,EAAIoB,EAAKpB,GAAK,EACxBY,KAAK4W,cAActH,OAAO5M,KAAKvD,EAAKmQ,OAAOlQ,IAI/CY,KAAK4W,cAAc3G,YAAA,EACnBxC,YAAYsE,kBAAkB/R,KAAK4W,cAAe5W,KAAK8X,kBAAA,EAGzD1B,cAAc1W,UAAUoY,kBAAoB,SAAU3Y,GACpDa,KAAK4W,cAAgBzX,EACrB,IAAIC,EAAoB2N,uBAEpB3N,GACFA,EAAkBqa,gBAAgBzZ,MAGpCA,KAAK0Z,iBAAA,EAGPtD,cAAc1W,UAAUga,gBAAkB,WACxC,IAAIva,EAAWa,KAAK4W,cAAcS,SAElC,IAAKlY,GAAgC,IAApBA,EAASoB,SAAiBP,KAAKyY,iBAG9C,OAFAzY,KAAK+Y,QAAQ,mBACb/Y,KAAKkX,cAAgBlX,KAAK4L,aAI5B,IAAIxM,EAAUD,EAAS2E,QACvB9D,KAAKkX,cAAgB9X,EAAQ8V,KAAOlV,KAAKuW,UACzC,IAAI9W,EAAcO,KAAKoR,KAAOpR,KAAK8Y,SAAW,IAAM9Y,KAAKmX,WAAa,QACtEnX,KAAKmX,YAAc,EACnB1J,YAAYqE,SAASrS,EAAaO,KAAKoZ,cAAcpG,KAAKhT,MAAO,WAC/DA,KAAK+Y,QAAQ,gBACb/F,KAAKhT,MAAA,EAGToW,cAAc1W,UAAUia,aAAe,WACtB3Z,KAAK4W,cAAcS,WAGhCrX,KAAKkX,cAAgBlX,KAAK4L,aAG5B5L,KAAK0Z,iBAAA,EAGPtD,cAAc1W,UAAUka,aAAe,WACrC5Z,KAAK+Y,QAAQ,iBACb/Y,KAAK6Z,aAAA,EAGPzD,cAAc1W,UAAUoa,cAAgB,WACtC9Z,KAAKyX,eAAe/D,cAAc1T,KAAKkT,YACvClT,KAAKyX,eAAe9D,QAAQ3T,KAAKoR,MACjCpR,KAAKyX,eAAejE,WAAWxT,KAAK4W,cAActH,OAAQtP,KAAK4Z,aAAa5G,KAAKhT,MAAA,EAGnFoW,cAAc1W,UAAUkY,gBAAkB,SAAUzY,GAClD,GAAKa,KAAKgX,SAIV,IACEhX,KAAK4W,cAAgBzX,EAEjBa,KAAK0Y,gBACP1Y,KAAK4L,YAAc7C,KAAKK,MAAMpJ,KAAK0Y,eAAe,GAAK1Y,KAAK0Y,eAAe,IAC3E1Y,KAAK2L,WAAa5C,KAAKoB,MAAMnK,KAAK0Y,eAAe,MAEjD1Y,KAAK4L,YAAc7C,KAAKK,MAAMpJ,KAAK4W,cAAcnH,GAAKzP,KAAK4W,cAAcpH,IACzExP,KAAK2L,WAAa5C,KAAKoB,MAAMnK,KAAK4W,cAAcpH,KAGlDxP,KAAKgX,SAASY,gBAAgBzY,GAEzBA,EAASmQ,SACZnQ,EAASmQ,OAAS,IAGpBtP,KAAKsP,OAAStP,KAAK4W,cAActH,OACjCtP,KAAKuW,UAAYvW,KAAK4W,cAAcmD,GACpC/Z,KAAKwW,UAAYxW,KAAK4W,cAAcmD,GAAK,IACzC/Z,KAAKgX,SAASgD,wBAAwB7a,EAASmQ,QAC/CtP,KAAK2X,QAAU3C,aAAa7V,EAASwY,SAAW,IAChD3X,KAAK+Y,QAAQ,gBACb/Y,KAAK8Z,gBACL9Z,KAAK2Z,eACL3Z,KAAKia,oBACLja,KAAKka,qBAEDla,KAAK6W,UACP7W,KAAK0X,gBAAgB5Q,OAAA,CAEvB,MAAO3H,GACPa,KAAKma,mBAAmBhb,EAAA,GAI5BiX,cAAc1W,UAAUwa,mBAAqB,WACtCla,KAAKgX,WAINhX,KAAKgX,SAASqB,WAAWiB,YAAYjD,SACvCrW,KAAK6Z,cAELO,WAAWpa,KAAKka,mBAAmBlH,KAAKhT,MAAO,MAInDoW,cAAc1W,UAAUma,YAAc,WACpC,IAAK7Z,KAAKqW,UAAYrW,KAAKgX,SAASqB,WAAWiB,YAAYjD,WAAarW,KAAKyX,eAAe7D,gBAAiD,WAA/B5T,KAAKgX,SAASqD,eAA8Bra,KAAKyX,eAAe5D,iBAAkB,CAC9L7T,KAAKqW,UAAA,EACL,IAAIlX,EAAoB4N,uBAEpB5N,GACFA,EAAkBsa,gBAAgBzZ,MAGpCA,KAAKgX,SAASsD,YACdF,WAAW,WACTpa,KAAK+Y,QAAQ,cACb/F,KAAKhT,MAAO,GACdA,KAAKua,YAEDva,KAAK8W,UACP9W,KAAKqH,MAAA,GAKX+O,cAAc1W,UAAU8a,OAAS,SAAUrb,EAAOC,GAEhD,IAAIK,EAA0B,iBAAVN,EAAqBA,OAAA,EAErCkB,EAA4B,iBAAXjB,EAAsBA,OAAA,EAE3CY,KAAKgX,SAASyD,oBAAoBhb,EAAQY,EAAA,EAG5C+V,cAAc1W,UAAUgb,YAAc,SAAUvb,GAC9Ca,KAAKoX,oBAAsBjY,CAAA,EAG7BiX,cAAc1W,UAAU6a,UAAY,WAClCva,KAAK6V,aAAe7V,KAAKoX,kBAAoBpX,KAAKsW,kBAAoBtW,KAAKsW,gBAEvEtW,KAAKkX,gBAAkBlX,KAAK4L,aAAe5L,KAAK6V,aAAe7V,KAAKkX,gBACtElX,KAAK6V,aAAe7V,KAAKkX,eAG3BlX,KAAK+Y,QAAQ,cACb/Y,KAAK2a,cACL3a,KAAK+Y,QAAQ,eAGf3C,cAAc1W,UAAUib,YAAc,WACpC,IAAI,IAAA3a,KAAKqW,UAAuBrW,KAAKgX,SAIrC,IACEhX,KAAKgX,SAAS2D,YAAY3a,KAAK6V,aAAe7V,KAAK2L,WAAA,CACnD,MAAOxM,GACPa,KAAK4a,wBAAwBzb,EAAA,GAIjCiX,cAAc1W,UAAU2H,KAAO,SAAUlI,GACnCA,GAAQa,KAAKuV,OAASpW,IAAA,IAItBa,KAAK6W,WACP7W,KAAK6W,UAAA,EACL7W,KAAK+Y,QAAQ,UACb/Y,KAAK0X,gBAAgB3Q,SAEjB/G,KAAKsX,QACPtX,KAAKsX,OAAA,EACLtX,KAAK+Y,QAAQ,cAKnB3C,cAAc1W,UAAUoH,MAAQ,SAAU3H,GACpCA,GAAQa,KAAKuV,OAASpW,IAAA,IAItBa,KAAK6W,WACP7W,KAAK6W,UAAA,EACL7W,KAAK+Y,QAAQ,SACb/Y,KAAKsX,OAAA,EACLtX,KAAK+Y,QAAQ,SACb/Y,KAAK0X,gBAAgB5Q,QAAA,EAIzBsP,cAAc1W,UAAUmb,YAAc,SAAU1b,GAC1CA,GAAQa,KAAKuV,OAASpW,KAAA,IAItBa,KAAK6W,SACP7W,KAAKqH,OAELrH,KAAK8G,QAAA,EAITsP,cAAc1W,UAAUob,KAAO,SAAU3b,GACnCA,GAAQa,KAAKuV,OAASpW,IAI1Ba,KAAK8G,QACL9G,KAAK2W,UAAY,EACjB3W,KAAKuX,gBAAA,EACLvX,KAAK+a,wBAAwB,KAG/B3E,cAAc1W,UAAUsb,cAAgB,SAAU7b,GAGhD,IAFA,IAAIC,EAEKK,EAAI,EAAGA,EAAIO,KAAK2X,QAAQpX,OAAQd,GAAK,EAG5C,IAFAL,EAASY,KAAK2X,QAAQlY,IAEX6R,SAAWlS,EAAOkS,QAAQiE,OAASpW,EAC5C,OAAOC,EAIX,OAAO,MAGTgX,cAAc1W,UAAUub,YAAc,SAAU9b,EAAOC,EAASK,GAC9D,IAAIA,GAAQO,KAAKuV,OAAS9V,EAA1B,CAIA,IAAIY,EAAW6a,OAAO/b,GAEtB,GAAIgc,MAAM9a,GAAW,CACnB,IAAIG,EAASR,KAAKgb,cAAc7b,GAE5BqB,GACFR,KAAKib,YAAYza,EAAO0U,MAAA,EAAM,MAEvB9V,EACTY,KAAK+a,wBAAwB5b,GAE7Ba,KAAK+a,wBAAwB5b,EAAQa,KAAKob,eAG5Cpb,KAAK8G,OAAA,GAGPsP,cAAc1W,UAAU2b,YAAc,SAAUlc,EAAOC,EAASK,GAC9D,IAAIA,GAAQO,KAAKuV,OAAS9V,EAA1B,CAIA,IAAIY,EAAW6a,OAAO/b,GAEtB,GAAIgc,MAAM9a,GAAW,CACnB,IAAIG,EAASR,KAAKgb,cAAc7b,GAE5BqB,IACGA,EAAO4U,SAGVpV,KAAKsb,aAAa,CAAC9a,EAAO0U,KAAM1U,EAAO0U,KAAO1U,EAAO4U,WAAA,GAFrDpV,KAAKib,YAAYza,EAAO0U,MAAA,GAAM,MAMlClV,KAAKib,YAAY5a,EAAUjB,EAASK,GAGtCO,KAAKqH,MAAA,GAGP+O,cAAc1W,UAAU6b,YAAc,SAAUpc,GAC9C,IAAI,IAAAa,KAAK6W,WAAA,IAAqB7W,KAAKqW,SAAnC,CAIA,IAAIjX,EAAYY,KAAKsW,gBAAkBnX,EAAQa,KAAKob,cAChD3b,GAAA,EAGAL,GAAaY,KAAK4L,YAAc,GAAK5L,KAAKob,cAAgB,EACvDpb,KAAK+W,MAAQ/W,KAAK2W,YAAc3W,KAAK+W,KAK/B3X,GAAaY,KAAK4L,aAC3B5L,KAAK2W,WAAa,EAEb3W,KAAKwb,cAAcpc,EAAYY,KAAK4L,eACvC5L,KAAK+a,wBAAwB3b,EAAYY,KAAK4L,aAC9C5L,KAAKuX,gBAAA,EACLvX,KAAK+Y,QAAQ,kBAGf/Y,KAAK+a,wBAAwB3b,GAbxBY,KAAKwb,cAAcpc,EAAYY,KAAK4L,YAAcxM,EAAYY,KAAK4L,YAAc,KACpFnM,GAAA,EACAL,EAAYY,KAAK4L,YAAc,GAa1BxM,EAAY,EAChBY,KAAKwb,cAAcpc,EAAYY,KAAK4L,gBACnC5L,KAAK+W,MAAU/W,KAAK2W,aAAe,IAAK,IAAA3W,KAAK+W,MAU/CtX,GAAA,EACAL,EAAY,IATZY,KAAK+a,wBAAwB/a,KAAK4L,YAAcxM,EAAYY,KAAK4L,aAE5D5L,KAAKuX,eAGRvX,KAAK+Y,QAAQ,gBAFb/Y,KAAKuX,gBAAA,IAUXvX,KAAK+a,wBAAwB3b,GAG3BK,IACFO,KAAK+a,wBAAwB3b,GAC7BY,KAAK8G,QACL9G,KAAK+Y,QAAQ,eAIjB3C,cAAc1W,UAAU+b,cAAgB,SAAUtc,EAAKC,GACrDY,KAAK2W,UAAY,EAEbxX,EAAI,GAAKA,EAAI,IACXa,KAAKob,cAAgB,IACnBpb,KAAKyW,UAAY,EACnBzW,KAAK0b,UAAU1b,KAAKyW,WAEpBzW,KAAK2b,cAAc,IAIvB3b,KAAK4L,YAAczM,EAAI,GAAKA,EAAI,GAChCa,KAAKkX,cAAgBlX,KAAK4L,YAC1B5L,KAAK2L,WAAaxM,EAAI,GACtBa,KAAK+a,wBAAwB/a,KAAK4L,YAAc,KAAQxM,IAC/CD,EAAI,GAAKA,EAAI,KAClBa,KAAKob,cAAgB,IACnBpb,KAAKyW,UAAY,EACnBzW,KAAK0b,UAAU1b,KAAKyW,WAEpBzW,KAAK2b,aAAa,IAItB3b,KAAK4L,YAAczM,EAAI,GAAKA,EAAI,GAChCa,KAAKkX,cAAgBlX,KAAK4L,YAC1B5L,KAAK2L,WAAaxM,EAAI,GACtBa,KAAK+a,wBAAwB,KAAQ3b,IAGvCY,KAAK+Y,QAAQ,iBAGf3C,cAAc1W,UAAUkc,WAAa,SAAUzc,EAAMC,GACnD,IAAIK,GAAgB,EAEhBO,KAAK6W,WACH7W,KAAKsW,gBAAkBtW,KAAK2L,WAAaxM,EAC3CM,EAAeN,EACNa,KAAKsW,gBAAkBtW,KAAK2L,WAAavM,IAClDK,EAAeL,EAAMD,IAIzBa,KAAK2L,WAAaxM,EAClBa,KAAK4L,YAAcxM,EAAMD,EACzBa,KAAKkX,cAAgBlX,KAAK4L,aAEJ,IAAlBnM,GACFO,KAAKib,YAAYxb,GAAA,EAAc,EAInC2W,cAAc1W,UAAU4b,aAAe,SAAUnc,EAAKC,GAKpD,GAJIA,IACFY,KAAKqX,SAAS9W,OAAS,GAGC,WAAtB4V,UAAUhX,EAAI,IAAkB,CAClC,IAAIM,EACAY,EAAMlB,EAAIoB,OAEd,IAAKd,EAAI,EAAGA,EAAIY,EAAKZ,GAAK,EACxBO,KAAKqX,SAAS3U,KAAKvD,EAAIM,GAAA,MAGzBO,KAAKqX,SAAS3U,KAAKvD,GAGjBa,KAAKqX,SAAS9W,QAAUnB,GAC1BY,KAAKyb,cAAczb,KAAKqX,SAASvT,QAAS,GAGxC9D,KAAK6W,UACP7W,KAAKqH,MAAA,EAIT+O,cAAc1W,UAAUmc,cAAgB,SAAU1c,GAChDa,KAAKqX,SAAS9W,OAAS,EACvBP,KAAKqX,SAAS3U,KAAK,CAAC1C,KAAK4W,cAAcpH,GAAIxP,KAAK4W,cAAcnH,KAE1DtQ,GACFa,KAAKwb,cAAc,IAIvBpF,cAAc1W,UAAU8b,cAAgB,SAAUrc,GAChD,QAAIa,KAAKqX,SAAS9W,SAChBP,KAAKyb,cAAczb,KAAKqX,SAASvT,QAAS3E,IAAA,EACnC,EAMXiX,cAAc1W,UAAUoU,QAAU,SAAU3U,GACtCA,GAAQa,KAAKuV,OAASpW,IAASa,KAAKgX,WAIxChX,KAAKgX,SAASlD,UACd9T,KAAKyX,eAAe3D,UACpB9T,KAAK+Y,QAAQ,WACb/Y,KAAK6U,KAAO,KACZ7U,KAAK8b,aAAe,KACpB9b,KAAK+b,eAAiB,KACtB/b,KAAKwR,WAAa,KAClBxR,KAAKgc,eAAiB,KACtBhc,KAAKic,UAAY,KACjBjc,KAAKgX,SAAW,KAChBhX,KAAKgX,SAAW,KAChBhX,KAAKyX,eAAiB,KACtBzX,KAAKwX,iBAAmB,OAG1BpB,cAAc1W,UAAUqb,wBAA0B,SAAU5b,GAC1Da,KAAKsW,gBAAkBnX,EACvBa,KAAKua,WAAA,EAGPnE,cAAc1W,UAAUgc,SAAW,SAAUvc,GAC3Ca,KAAKyW,UAAYtX,EACjBa,KAAKia,mBAAA,EAGP7D,cAAc1W,UAAUic,aAAe,SAAUxc,GAC/Ca,KAAK0W,cAAgBvX,EAAM,GAAK,EAAI,EACpCa,KAAKia,mBAAA,EAGP7D,cAAc1W,UAAUwc,QAAU,SAAU/c,GAC1Ca,KAAK+W,KAAO5X,CAAA,EAGdiX,cAAc1W,UAAU+H,UAAY,SAAUtI,EAAKC,GAC7CA,GAAQY,KAAKuV,OAASnW,GAI1BY,KAAK0X,gBAAgBjQ,UAAUtI,EAAA,EAGjCiX,cAAc1W,UAAUoI,UAAY,WAClC,OAAO9H,KAAK0X,gBAAgB5P,WAAA,EAG9BsO,cAAc1W,UAAUkI,KAAO,SAAUzI,GACnCA,GAAQa,KAAKuV,OAASpW,GAI1Ba,KAAK0X,gBAAgB9P,MAAA,EAGvBwO,cAAc1W,UAAUmI,OAAS,SAAU1I,GACrCA,GAAQa,KAAKuV,OAASpW,GAI1Ba,KAAK0X,gBAAgB7P,QAAA,EAGvBuO,cAAc1W,UAAUua,kBAAoB,WAC1Cja,KAAKob,cAAgBpb,KAAKwW,UAAYxW,KAAKyW,UAAYzW,KAAK0W,cAC5D1W,KAAK0X,gBAAgB1Q,QAAQhH,KAAKyW,UAAYzW,KAAK0W,cAAA,EAGrDN,cAAc1W,UAAUyc,QAAU,WAChC,OAAOnc,KAAKoR,IAAA,EAGdgF,cAAc1W,UAAU0c,cAAgB,SAAUjd,GAChD,IAAIC,EAAO,GAEX,GAAID,EAAUC,EACZA,EAAOD,EAAU0E,OACZ,GAAI7D,KAAKkT,WAAY,CAC1B,IAAIzT,EAAYN,EAAU0E,GAEY,IAAlCpE,EAAUkB,QAAQ,aACpBlB,EAAYA,EAAU4P,MAAM,KAAK,IAGnCjQ,EAAOY,KAAKkT,WAAazT,CAAA,MAEzBL,EAAOY,KAAKoR,KACZhS,GAAQD,EAAUwT,EAAIxT,EAAUwT,EAAI,GACpCvT,GAAQD,EAAU0E,EAGpB,OAAOzE,CAAA,EAGTgX,cAAc1W,UAAU2c,aAAe,SAAUld,GAI/C,IAHA,IAAIC,EAAI,EACJK,EAAMO,KAAKsP,OAAO/O,OAEfnB,EAAIK,GAAK,CACd,GAAIN,IAAOa,KAAKsP,OAAOlQ,GAAG0P,GACxB,OAAO9O,KAAKsP,OAAOlQ,GAGrBA,GAAK,EAGP,OAAO,MAGTgX,cAAc1W,UAAU4c,KAAO,WAC7Btc,KAAKgX,SAASsF,MAAA,EAGhBlG,cAAc1W,UAAU6c,KAAO,WAC7Bvc,KAAKgX,SAASuF,MAAA,EAGhBnG,cAAc1W,UAAU8c,YAAc,SAAUrd,GAC9C,OAAOA,EAAUa,KAAK4L,YAAc5L,KAAK4L,YAAc5L,KAAKuW,SAAA,EAG9DH,cAAc1W,UAAU+c,mBAAqB,SAAUtd,EAAMC,EAAcK,GACzE,IACgBO,KAAKgX,SAAS0F,iBAAiBvd,GACrCsd,mBAAmBrd,EAAcK,EAAA,CACzC,MAAON,GAAA,GAIXiX,cAAc1W,UAAUqZ,QAAU,SAAU5Z,GAC1C,GAAIa,KAAK6U,MAAQ7U,KAAK6U,KAAK1V,GACzB,OAAQA,GACN,IAAK,aACHa,KAAK4U,aAAazV,EAAM,IAAI8L,kBAAkB9L,EAAMa,KAAK6V,aAAc7V,KAAK4L,YAAa5L,KAAKob,gBAC9F,MAEF,IAAK,aACHpb,KAAK+X,gBAAgB5M,YAAcnL,KAAK6V,aACxC7V,KAAK+X,gBAAgB3M,UAAYpL,KAAK4L,YACtC5L,KAAK+X,gBAAgB1M,UAAYrL,KAAKob,cACtCpb,KAAK4U,aAAazV,EAAMa,KAAK+X,iBAC7B,MAEF,IAAK,eACH/X,KAAK4U,aAAazV,EAAM,IAAIoM,oBAAoBpM,EAAMa,KAAK+W,KAAM/W,KAAK2W,UAAW3W,KAAKwW,YACtF,MAEF,IAAK,WACHxW,KAAK4U,aAAazV,EAAM,IAAImM,gBAAgBnM,EAAMa,KAAKwW,YACvD,MAEF,IAAK,eACHxW,KAAK4U,aAAazV,EAAM,IAAIuM,oBAAoBvM,EAAMa,KAAK2L,WAAY3L,KAAK4L,cAC5E,MAEF,IAAK,UACH5L,KAAK4U,aAAazV,EAAM,IAAI0M,eAAe1M,EAAMa,OACjD,MAEF,QACEA,KAAK4U,aAAazV,GAIX,eAATA,GAAyBa,KAAK8b,cAChC9b,KAAK8b,aAAalc,KAAKI,KAAM,IAAIiL,kBAAkB9L,EAAMa,KAAK6V,aAAc7V,KAAK4L,YAAa5L,KAAKwW,YAGxF,iBAATrX,GAA2Ba,KAAK+b,gBAClC/b,KAAK+b,eAAenc,KAAKI,KAAM,IAAIuL,oBAAoBpM,EAAMa,KAAK+W,KAAM/W,KAAK2W,UAAW3W,KAAKwW,YAGlF,aAATrX,GAAuBa,KAAKwR,YAC9BxR,KAAKwR,WAAW5R,KAAKI,KAAM,IAAIsL,gBAAgBnM,EAAMa,KAAKwW,YAG/C,iBAATrX,GAA2Ba,KAAKgc,gBAClChc,KAAKgc,eAAepc,KAAKI,KAAM,IAAI0L,oBAAoBvM,EAAMa,KAAK2L,WAAY3L,KAAK4L,cAGxE,YAATzM,GAAsBa,KAAKic,WAC7Bjc,KAAKic,UAAUrc,KAAKI,KAAM,IAAI6L,eAAe1M,EAAMa,MAAA,EAIvDoW,cAAc1W,UAAUkb,wBAA0B,SAAUzb,GAC1D,IAAIC,EAAQ,IAAI2M,wBAAwB5M,EAAaa,KAAK6V,cAC1D7V,KAAK4U,aAAa,QAASxV,GAEvBY,KAAKyR,SACPzR,KAAKyR,QAAQ7R,KAAKI,KAAMZ,EAAA,EAI5BgX,cAAc1W,UAAUya,mBAAqB,SAAUhb,GACrD,IAAIC,EAAQ,IAAI6M,mBAAmB9M,EAAaa,KAAK6V,cACrD7V,KAAK4U,aAAa,QAASxV,GAEvBY,KAAKyR,SACPzR,KAAKyR,QAAQ7R,KAAKI,KAAMZ,EAAA,EAI5B,IAAIud,iBAAmB,WACrB,IAAIxd,EAAW,CAAC,EACZC,EAAuB,GACvBK,EAAW,EACXY,EAAM,EACNG,EAAuB,EACvBO,GAAA,EACAC,GAAA,EAEJ,SAASI,EAAcjC,GAIrB,IAHA,IAAIM,EAAI,EACJe,EAAWrB,EAAG2M,OAEXrM,EAAIY,GACLjB,EAAqBK,GAAG8R,YAAc/Q,IACxCpB,EAAqB2V,OAAOtV,EAAG,GAC/BA,GAAK,EACLY,GAAO,EAEFG,EAASqW,UACZhT,KAIJpE,GAAK,EAIT,SAASkC,EAAkBxC,EAASM,GAClC,IAAKN,EACH,OAAO,KAKT,IAFA,IAAIqB,EAAI,EAEDA,EAAIH,GAAK,CACd,GAAIjB,EAAqBoB,GAAGoc,OAASzd,GAA4C,OAAjCC,EAAqBoB,GAAGoc,KACtE,OAAOxd,EAAqBoB,GAAG+Q,UAGjC/Q,GAAK,EAGP,IAAIO,EAAW,IAAIqV,cAGnB,OAFAvH,EAAe9N,EAAU5B,GACzB4B,EAASiY,QAAQ7Z,EAASM,GACnBsB,CAAA,CAeT,SAAS6C,IACPpD,GAAwB,EACxB6N,GAAA,CAGF,SAASxK,IACPrD,GAAwB,EAG1B,SAASqO,EAAe1P,EAAUM,GAChCN,EAAS+U,iBAAiB,UAAW9S,GACrCjC,EAAS+U,iBAAiB,UAAWtQ,GACrCzE,EAAS+U,iBAAiB,QAASrQ,GACnCzE,EAAqBsD,KAAK,CACxBka,KAAMnd,EACN8R,UAAWpS,IAEbkB,GAAO,EAkCT,SAAS4N,EAAO9O,GACd,IACIiC,EADAO,EAAcxC,EAAUM,EAG5B,IAAK2B,EAAI,EAAGA,EAAIf,EAAKe,GAAK,EACxBhC,EAAqBgC,GAAGmQ,UAAUgK,YAAY5Z,GAGhDlC,EAAWN,EAEPqB,IAAyBQ,EAC3B8D,OAAO+X,sBAAsB5O,GAE7BlN,GAAA,CAAW,CAIf,SAASmN,EAAM/O,GACbM,EAAWN,EACX2F,OAAO+X,sBAAsB5O,EAAA,CAgF/B,SAASI,KACFrN,GAAaR,GACZO,IACF+D,OAAO+X,sBAAsB3O,GAC7BnN,GAAA,EAAW,CAyDjB,OAnBA5B,EAAS2d,kBAAoBnb,EAC7BxC,EAASuS,cA7KT,SAAuBvS,GACrB,IAAIC,EAAW,IAAIgX,cAGnB,OAFAvH,EAAezP,EAAU,MACzBA,EAAS4Y,UAAU7Y,GACZC,CAAA,EA0KTD,EAASuc,SAvKT,SAAkBvc,EAAKM,GACrB,IAAIe,EAEJ,IAAKA,EAAI,EAAGA,EAAIH,EAAKG,GAAK,EACxBpB,EAAqBoB,GAAG+Q,UAAUmK,SAASvc,EAAKM,EAAA,EAoKpDN,EAASwc,aAhKT,SAAsBxc,EAAKM,GACzB,IAAIe,EAEJ,IAAKA,EAAI,EAAGA,EAAIH,EAAKG,GAAK,EACxBpB,EAAqBoB,GAAG+Q,UAAUoK,aAAaxc,EAAKM,EAAA,EA6JxDN,EAASkI,KAzJT,SAAclI,GACZ,IAAIM,EAEJ,IAAKA,EAAI,EAAGA,EAAIY,EAAKZ,GAAK,EACxBL,EAAqBK,GAAG8R,UAAUlK,KAAKlI,EAAA,EAsJ3CA,EAAS2H,MA5HT,SAAe3H,GACb,IAAIM,EAEJ,IAAKA,EAAI,EAAGA,EAAIY,EAAKZ,GAAK,EACxBL,EAAqBK,GAAG8R,UAAUzK,MAAM3H,EAAA,EAyH5CA,EAAS2b,KA7GT,SAAc3b,GACZ,IAAIM,EAEJ,IAAKA,EAAI,EAAGA,EAAIY,EAAKZ,GAAK,EACxBL,EAAqBK,GAAG8R,UAAUuJ,KAAK3b,EAAA,EA0G3CA,EAAS0b,YAtGT,SAAqB1b,GACnB,IAAIM,EAEJ,IAAKA,EAAI,EAAGA,EAAIY,EAAKZ,GAAK,EACxBL,EAAqBK,GAAG8R,UAAUsJ,YAAY1b,EAAA,EAmGlDA,EAAS4d,iBAvFT,SAA0B5d,EAAeC,EAAYK,GACnD,IACIY,EADAG,EAAe,GAAG2C,OAAO,GAAGG,MAAM1D,KAAKuG,SAAS6W,uBAAuB,WAAY,GAAG1Z,MAAM1D,KAAKuG,SAAS6W,uBAAuB,eAEjIjc,EAAWP,EAAaD,OAE5B,IAAKF,EAAI,EAAGA,EAAIU,EAAUV,GAAK,EACzBZ,GACFe,EAAaH,GAAG4c,aAAa,eAAgBxd,GAG/CkC,EAAkBnB,EAAaH,GAAIlB,GAGrC,GAAIC,GAA2B,IAAb2B,EAAgB,CAC3BtB,IACHA,EAAW,OAGb,IAAIuB,EAAOmF,SAAS+W,qBAAqB,QAAQ,GACjDlc,EAAKmc,UAAY,GACjB,IAAI/b,EAAM8E,UAAU,OACpB9E,EAAIiJ,MAAM4H,MAAQ,OAClB7Q,EAAIiJ,MAAM6H,OAAS,OACnB9Q,EAAI6b,aAAa,eAAgBxd,GACjCuB,EAAKuT,YAAYnT,GACjBO,EAAkBP,EAAKjC,EAAA,GA+D3BA,EAASqb,OA3DT,WACE,IAAIrb,EAEJ,IAAKA,EAAI,EAAGA,EAAIkB,EAAKlB,GAAK,EACxBC,EAAqBD,GAAGoS,UAAUiJ,QAAA,EAyDtCrb,EAAS8b,YA1HT,SAAqB9b,EAAOM,EAASe,GACnC,IAAIO,EAEJ,IAAKA,EAAI,EAAGA,EAAIV,EAAKU,GAAK,EACxB3B,EAAqB2B,GAAGwQ,UAAU0J,YAAY9b,EAAOM,EAASe,EAAA,EAuHlErB,EAAS2U,QAnGT,SAAiB3U,GACf,IAAIM,EAEJ,IAAKA,EAAIY,EAAM,EAAGZ,GAAK,EAAGA,GAAK,EAC7BL,EAAqBK,GAAG8R,UAAUuC,QAAQ3U,EAAA,EAgG9CA,EAASie,OA9CT,WACEpc,GAAA,CAAY,EA8Cd7B,EAASke,SA3CT,WACErc,GAAA,EACAqN,GAAA,EA0CFlP,EAASsI,UAvCT,SAAmBtI,EAAKM,GACtB,IAAIe,EAEJ,IAAKA,EAAI,EAAGA,EAAIH,EAAKG,GAAK,EACxBpB,EAAqBoB,GAAG+Q,UAAU9J,UAAUtI,EAAKM,EAAA,EAoCrDN,EAASyI,KAhCT,SAAczI,GACZ,IAAIM,EAEJ,IAAKA,EAAI,EAAGA,EAAIY,EAAKZ,GAAK,EACxBL,EAAqBK,GAAG8R,UAAU3J,KAAKzI,EAAA,EA6B3CA,EAAS0I,OAzBT,SAAgB1I,GACd,IAAIM,EAEJ,IAAKA,EAAI,EAAGA,EAAIY,EAAKZ,GAAK,EACxBL,EAAqBK,GAAG8R,UAAU1J,OAAO1I,EAAA,EAsB7CA,EAASme,wBA9NT,WACE,IAAIne,EACAM,EAAWL,EAAqBmB,OAChCF,EAAa,GAEjB,IAAKlB,EAAI,EAAGA,EAAIM,EAAUN,GAAK,EAC7BkB,EAAWqC,KAAKtD,EAAqBD,GAAGoS,WAG1C,OAAOlR,CAAA,EAsNFlB,CAAA,CAhRc,GAoRnBoe,cAAgB,WAWlB,IAAIpe,EAAK,CACTqe,gBAGA,SAAyBre,EAAGM,EAAGY,EAAGG,EAAGO,GACnC,IAAIC,EAAMD,IAAO,OAAS5B,EAAI,IAAMM,EAAI,IAAMY,EAAI,IAAMG,GAAGid,QAAQ,MAAO,KAE1E,GAAIre,EAAQ4B,GACV,OAAO5B,EAAQ4B,GAGjB,IAAII,EAAY,IAAIO,EAAa,CAACxC,EAAGM,EAAGY,EAAGG,IAE3C,OADApB,EAAQ4B,GAAOI,EACRA,CAAA,GAXLhC,EAAU,CAAC,EAqBXK,EAAgD,mBAAjByI,aAEnC,SAAS7H,EAAElB,EAAKC,GACd,OAAO,EAAM,EAAMA,EAAM,EAAMD,CAAA,CAGjC,SAASqB,EAAErB,EAAKC,GACd,OAAO,EAAMA,EAAM,EAAMD,CAAA,CAG3B,SAAS4B,EAAE5B,GACT,OAAO,EAAMA,CAAA,CAIf,SAAS6B,EAAW7B,EAAIC,EAAKK,GAC3B,QAASY,EAAEjB,EAAKK,GAAON,EAAKqB,EAAEpB,EAAKK,IAAQN,EAAK4B,EAAE3B,IAAQD,CAAA,CAI5D,SAASiC,EAASjC,EAAIC,EAAKK,GACzB,OAAO,EAAMY,EAAEjB,EAAKK,GAAON,EAAKA,EAAK,EAAMqB,EAAEpB,EAAKK,GAAON,EAAK4B,EAAE3B,EAAA,CAqClE,SAASuC,EAAaxC,GACpBa,KAAK0d,GAAKve,EACVa,KAAK2d,eAAiBle,EAAwB,IAAIyI,aA9D7B,IA8D8D,IAAI1I,MA9DlE,IA+DrBQ,KAAK4d,cAAA,EACL5d,KAAK6C,IAAM7C,KAAK6C,IAAImQ,KAAKhT,KAAA,CAsE3B,OAnEA2B,EAAajC,UAAY,CACvBmD,IAAK,SAAa1D,GAChB,IAAIC,EAAMY,KAAK0d,GAAG,GACdje,EAAMO,KAAK0d,GAAG,GACdrd,EAAML,KAAK0d,GAAG,GACdld,EAAMR,KAAK0d,GAAG,GAElB,OADK1d,KAAK4d,cAAc5d,KAAK6d,cACzBze,IAAQK,GAAOY,IAAQG,EAAYrB,EAG7B,IAANA,EAAgB,EACV,IAANA,EAAgB,EACb6B,EAAWhB,KAAK8d,UAAU3e,GAAIM,EAAKe,EAAA,EAG5Cqd,YAAa,WACX,IAAI1e,EAAMa,KAAK0d,GAAG,GACdte,EAAMY,KAAK0d,GAAG,GACdje,EAAMO,KAAK0d,GAAG,GACdrd,EAAML,KAAK0d,GAAG,GAClB1d,KAAK4d,cAAA,EAEDze,IAAQC,GAAOK,IAAQY,GACzBL,KAAK+d,mBAAA,EAGTA,kBAAmB,WAIjB,IAHA,IAAI5e,EAAMa,KAAK0d,GAAG,GACdte,EAAMY,KAAK0d,GAAG,GAETje,EAAI,EAAGA,EAjGG,KAiGqBA,EACtCO,KAAK2d,eAAele,GAAKuB,EAjGT,GAiGoBvB,EAAqBN,EAAKC,EAAA,EAOlE0e,UAAW,SAAmB3e,GAQ5B,IAPA,IAAIC,EAAMY,KAAK0d,GAAG,GACdje,EAAMO,KAAK0d,GAAG,GACdrd,EAAgBL,KAAK2d,eACrBnd,EAAgB,EAChBO,EAAgB,EACH,KAEVA,GAAgCV,EAAcU,IAAkB5B,IAAM4B,EAC3EP,GAjHgB,GAsHlB,IACImB,EAAYnB,GADJrB,EAAKkB,IAFfU,KAEgDV,EAAcU,EAAgB,GAAKV,EAAcU,IAtHjF,GAwHd6C,EAAexC,EAASO,EAAWvC,EAAKK,GAE5C,OAAImE,GA9He,KAgDvB,SAA8BzE,EAAIC,EAASK,EAAKY,GAC9C,IAAK,IAAIG,EAAI,EAAGA,EAlDM,IAkDmBA,EAAG,CAC1C,IAAIO,EAAeK,EAAShC,EAASK,EAAKY,GAC1C,GAAqB,IAAjBU,EAAsB,OAAO3B,EAEjCA,IADe4B,EAAW5B,EAASK,EAAKY,GAAOlB,GACzB4B,CAAA,CAGxB,OAAO3B,CAAA,CART,CA+EkCD,EAAIwC,EAAWvC,EAAKK,GAG7B,IAAjBmE,EACKjC,EAtGb,SAAyBxC,EAAIC,EAAIK,EAAIY,EAAKG,GACxC,IAAIO,EACAK,EACAO,EAAI,EAER,IAEEZ,EAAWC,EADXI,EAAWhC,GAAMK,EAAKL,GAAM,EACIiB,EAAKG,GAAOrB,GAE7B,EACbM,EAAK2B,EAELhC,EAAKgC,QAEA2H,KAAKa,IAAI7I,GA1CQ,QA0C+BY,EAzC1B,IA2C/B,OAAOP,CAAA,CAhBT,CAyG2BjC,EAAIqB,EAAeA,EAlIxB,GAkIyDpB,EAAKK,EAAA,GAG7EN,CAAA,CAtKW,GAyKhB6e,QAKK,CACLC,OALF,SAAiB9e,GACf,OAAOA,EAAIgE,OAAOiF,iBAAiBjJ,EAAIoB,QAAA,GAQvC2d,YACK,SAAU/e,EAAeC,EAASK,GACvC,IAAIY,EAAU,EACVG,EAAarB,EACb4B,EAAOqH,iBAAiB5H,GAiC5B,MAhCS,CACP2d,WAIF,WAUE,OAPI9d,EAEQU,EADVV,GAAW,GAGDjB,GAAA,EAVZgf,QAgBF,SAAiBjf,GACXkB,IAAYG,IACdO,EAAOid,QAAgBC,OAAEld,GACzBP,GAAc,GAGZf,GACFA,EAASN,GAGX4B,EAAKV,GAAWlB,EAChBkB,GAAW,KAObge,iBASKH,YAAY,GARnB,WACE,MAAO,CACLI,YAAa,EACbC,SAAUvW,iBAAiB,UAAWmF,2BACtCqR,QAASxW,iBAAiB,UAAWmF,2BAAA,IAOvCsR,mBAmBKP,YAAY,GAlBnB,WACE,MAAO,CACLM,QAAS,GACTE,YAAa,MAIjB,SAAiBvf,GACf,IAAIC,EACAK,EAAMN,EAAQqf,QAAQje,OAE1B,IAAKnB,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EACxBif,iBAAiBD,QAAQjf,EAAQqf,QAAQpf,IAG3CD,EAAQqf,QAAQje,OAAS,KAM7B,SAASoe,cACP,IAAIxf,EAAO4J,KAEX,SAAS3J,EAAcD,EAAIC,EAAIK,EAAIY,EAAIG,EAAIO,GACzC,IAAIC,EAAO7B,EAAKkB,EAAKjB,EAAKoB,EAAKf,EAAKsB,EAAKP,EAAKH,EAAKU,EAAK5B,EAAKM,EAAKL,EAClE,OAAO4B,GAAQ,MAASA,EAAO,KA4BjC,IAAIvB,EACK,SAAUN,EAAKC,EAAKK,EAAKY,GAC9B,IACIG,EACAO,EACAC,EACAI,EACAO,EAEAiC,EAPAC,EAAgBsJ,0BAMhB0B,EAAc,EAEdZ,EAAQ,GACRC,EAAY,GACZG,EAAagQ,iBAAiBF,aAGlC,IAFAnd,EAAMvB,EAAIc,OAELC,EAAI,EAAGA,EAAIqD,EAAerD,GAAK,EAAG,CAIrC,IAHAmB,EAAOnB,GAAKqD,EAAgB,GAC5BD,EAAa,EAER7C,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EACxBK,EAAU0H,MAAM,EAAInH,EAAM,GAAKxC,EAAI4B,GAAK,EAAI+H,MAAM,EAAInH,EAAM,GAAKA,EAAOlC,EAAIsB,GAAK,GAAK,EAAIY,GAAQmH,MAAMnH,EAAM,GAAKtB,EAAIU,GAAK+H,MAAMnH,EAAM,GAAKvC,EAAI2B,GACjJkN,EAAMlN,GAAKK,EAEU,OAAjB8M,EAAUnN,KACZ6C,GAAckF,MAAMmF,EAAMlN,GAAKmN,EAAUnN,GAAI,IAG/CmN,EAAUnN,GAAKkN,EAAMlN,GAGnB6C,IAEFiL,GADAjL,EAAaqF,OAAOrF,IAItByK,EAAWkQ,SAAS/d,GAAKmB,EACzB0M,EAAWmQ,QAAQhe,GAAKqO,CAAA,CAI1B,OADAR,EAAWiQ,YAAczP,EAClBR,CAAA,EA6BX,SAAShO,EAAWlB,GAClBa,KAAK4e,cAAgB,EACrB5e,KAAK6e,OAAS,IAAIrf,MAAML,EAAA,CAG1B,SAASqB,EAAUrB,EAASC,GAC1BY,KAAK8e,cAAgB3f,EACrBa,KAAK+e,MAAQ3f,CAAA,CAGf,IACM2B,EADFC,GACED,EAAa,CAAC,EACX,SAAU5B,EAAKM,EAAKuB,EAAKI,GAC9B,IAAIO,GAAcxC,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMM,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMuB,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMI,EAAI,GAAK,IAAMA,EAAI,IAAIqc,QAAQ,MAAO,KAElJ,IAAK1c,EAAWY,GAAa,CAC3B,IACIiC,EACAC,EACAgL,EACAZ,EACAC,EAEAG,EACAsE,EARAqM,EAAgB7R,0BAMhB8R,EAAc,EAGdzb,EAAY,KAEG,IAAfrE,EAAIoB,SAAiBpB,EAAI,KAAOM,EAAI,IAAMN,EAAI,KAAOM,EAAI,KAAOL,EAAcD,EAAI,GAAIA,EAAI,GAAIM,EAAI,GAAIA,EAAI,GAAIN,EAAI,GAAK6B,EAAI,GAAI7B,EAAI,GAAK6B,EAAI,KAAO5B,EAAcD,EAAI,GAAIA,EAAI,GAAIM,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAK2B,EAAI,GAAI3B,EAAI,GAAK2B,EAAI,MACjO4d,EAAgB,GAGlB,IAAIE,EAAa,IAAI7e,EAAW2e,GAGhC,IAFAnQ,EAAM7N,EAAIT,OAELqD,EAAI,EAAGA,EAAIob,EAAepb,GAAK,EAAG,CAKrC,IAJA+O,EAAQvK,iBAAiByG,GACzBX,EAAOtK,GAAKob,EAAgB,GAC5B3Q,EAAa,EAERxK,EAAI,EAAGA,EAAIgL,EAAKhL,GAAK,EACxBoK,EAAUnF,MAAM,EAAIoF,EAAM,GAAK/O,EAAI0E,GAAK,EAAIiF,MAAM,EAAIoF,EAAM,GAAKA,GAAQ/O,EAAI0E,GAAK7C,EAAI6C,IAAM,GAAK,EAAIqK,GAAQpF,MAAMoF,EAAM,IAAMzO,EAAIoE,GAAKzC,EAAIyC,IAAMiF,MAAMoF,EAAM,GAAKzO,EAAIoE,GACvK8O,EAAM9O,GAAKoK,EAEO,OAAdzK,IACF6K,GAAcvF,MAAM6J,EAAM9O,GAAKL,EAAUK,GAAI,IAKjDob,GADA5Q,EAAapF,OAAOoF,GAEpB6Q,EAAWL,OAAOjb,GAAK,IAAIpD,EAAU6N,EAAYsE,GACjDnP,EAAYmP,CAAA,CAGduM,EAAWN,cAAgBK,EAC3Ble,EAAWY,GAAcud,CAAA,CAG3B,OAAOne,EAAWY,EAAA,GAItB,SAASP,EAAgBjC,EAAMC,GAC7B,IAAIK,EAAWL,EAAWmf,SACtBle,EAAUjB,EAAWof,QACrBhe,EAAMf,EAASc,OACfQ,EAAUoI,SAAS3I,EAAM,GAAKrB,GAC9B6B,EAAY7B,EAAOC,EAAWkf,YAC9Bld,EAAQ,EAEZ,GAAIL,IAAYP,EAAM,GAAiB,IAAZO,GAAiBC,IAAcX,EAAQU,GAChE,OAAOtB,EAASsB,GAMlB,IAHA,IAAIY,EAAMtB,EAAQU,GAAWC,GAAa,EAAI,EAC1C4C,GAAA,EAEGA,GAQL,GAPIvD,EAAQU,IAAYC,GAAaX,EAAQU,EAAU,GAAKC,GAC1DI,GAASJ,EAAYX,EAAQU,KAAaV,EAAQU,EAAU,GAAKV,EAAQU,IACzE6C,GAAA,GAEA7C,GAAWY,EAGTZ,EAAU,GAAKA,GAAWP,EAAM,EAAG,CAErC,GAAIO,IAAYP,EAAM,EACpB,OAAOf,EAASsB,GAGlB6C,GAAA,CAAO,CAIX,OAAOnE,EAASsB,IAAYtB,EAASsB,EAAU,GAAKtB,EAASsB,IAAYK,CAAA,CAW3E,IAAIO,EAAsBqG,iBAAiB,UAAW,GAyDtD,MAAO,CACLmX,kBA7LF,SAA2BhgB,GACzB,IAKIC,EALAiB,EAAiBoe,mBAAmBN,aACpC3d,EAASrB,EAAU8O,EACnBlN,EAAQ5B,EAAUqE,EAClBxC,EAAQ7B,EAAUiC,EAClBA,EAAQjC,EAAUkB,EAElBsB,EAAMxC,EAAUigB,QAChBxb,EAAUvD,EAAeme,QACzB3a,EAAc,EAElB,IAAKzE,EAAI,EAAGA,EAAIuC,EAAM,EAAGvC,GAAK,EAC5BwE,EAAQxE,GAAKK,EAAgBsB,EAAM3B,GAAI2B,EAAM3B,EAAI,GAAI4B,EAAM5B,GAAIgC,EAAMhC,EAAI,IACzEyE,GAAeD,EAAQxE,GAAGkf,YAS5B,OANI9d,GAAUmB,IACZiC,EAAQxE,GAAKK,EAAgBsB,EAAM3B,GAAI2B,EAAM,GAAIC,EAAM5B,GAAIgC,EAAM,IACjEyC,GAAeD,EAAQxE,GAAGkf,aAG5Bje,EAAeqe,YAAc7a,EACtBxD,CAAA,EAwKPgf,cAzDF,SAAuBjgB,EAAKK,EAAKY,EAAKG,EAAKO,EAAWC,EAAS4C,GACzD7C,EAAY,EACdA,EAAY,EACHA,EAAY,IACrBA,EAAY,GAGd,IAGI8C,EAHAgL,EAAKzN,EAAgBL,EAAW6C,GAEhCqK,EAAK7M,EADTJ,EAAUA,EAAU,EAAI,EAAIA,EACM4C,GAE9BsK,EAAM9O,EAAImB,OACV8N,EAAK,EAAIQ,EACT8D,EAAK,EAAI1E,EACT+Q,EAAS3Q,EAAKA,EAAKA,EACnB4Q,EAAWpQ,EAAKR,EAAKA,EAAK,EAE1B7K,EAAWqL,EAAKA,EAAKR,EAAK,EAE1B6Q,EAASrQ,EAAKA,EAAKA,EAEnByQ,EAASjR,EAAKA,EAAKsE,EACnB4M,EAAW1Q,EAAKR,EAAKsE,EAAKtE,EAAKQ,EAAK8D,EAAKtE,EAAKA,EAAKJ,EAEnDuR,EAAW3Q,EAAKA,EAAK8D,EAAKtE,EAAKQ,EAAKZ,EAAKY,EAAKR,EAAKJ,EAEnDwR,EAAS5Q,EAAKA,EAAKZ,EAEnByR,EAASrR,EAAKsE,EAAKA,EACnBgN,EAAW9Q,EAAK8D,EAAKA,EAAKtE,EAAKJ,EAAK0E,EAAKtE,EAAKsE,EAAK1E,EAEnD2R,EAAW/Q,EAAKZ,EAAK0E,EAAKtE,EAAKJ,EAAKA,EAAKY,EAAK8D,EAAK1E,EAEnDO,EAASK,EAAKZ,EAAKA,EAEnB4R,EAASlN,EAAKA,EAAKA,EACnBmN,EAAW7R,EAAK0E,EAAKA,EAAKA,EAAK1E,EAAK0E,EAAKA,EAAKA,EAAK1E,EAEnD8R,EAAW9R,EAAKA,EAAK0E,EAAKA,EAAK1E,EAAKA,EAAKA,EAAK0E,EAAK1E,EAEnD+R,EAAS/R,EAAKA,EAAKA,EAEvB,IAAKpK,EAAI,EAAGA,EAAIqK,EAAKrK,GAAK,EACxBlC,EAAwB,EAAJkC,GAAS1E,EAAKgL,MAAoF,KAA7E6U,EAAS5f,EAAIyE,GAAKob,EAAW5e,EAAIwD,GAAKL,EAAWhD,EAAIqD,GAAKqb,EAASzf,EAAIoE,KAAc,IAE9HlC,EAAwB,EAAJkC,EAAQ,GAAK1E,EAAKgL,MAAoF,KAA7EmV,EAASlgB,EAAIyE,GAAK0b,EAAWlf,EAAIwD,GAAK2b,EAAWhf,EAAIqD,GAAK4b,EAAShgB,EAAIoE,KAAc,IAElIlC,EAAwB,EAAJkC,EAAQ,GAAK1E,EAAKgL,MAAoF,KAA7EuV,EAAStgB,EAAIyE,GAAK8b,EAAWtf,EAAIwD,GAAK+b,EAAWpf,EAAIqD,GAAK2K,EAAS/O,EAAIoE,KAAc,IAElIlC,EAAwB,EAAJkC,EAAQ,GAAK1E,EAAKgL,MAAoF,KAA7E0V,EAASzgB,EAAIyE,GAAKic,EAAWzf,EAAIwD,GAAKkc,EAAWvf,EAAIqD,GAAKmc,EAASvgB,EAAIoE,KAAc,IAGpI,OAAOlC,CAAA,EAMPse,kBApEF,SAA2B7gB,EAAKK,EAAKY,EAAKG,EAAKO,EAASC,GACtD,IAAIW,EAAKP,EAAgBL,EAASC,GAC9B4C,EAAK,EAAIjC,EAGb,MAAO,CAFGxC,EAAKgL,MAAwK,KAAjKvG,EAAKA,EAAKA,EAAKxE,EAAI,IAAMuC,EAAKiC,EAAKA,EAAKA,EAAKjC,EAAKiC,EAAKA,EAAKA,EAAKjC,GAAMtB,EAAI,IAAMsB,EAAKA,EAAKiC,EAAKA,EAAKjC,EAAKA,EAAKA,EAAKiC,EAAKjC,GAAMnB,EAAI,GAAKmB,EAAKA,EAAKA,EAAKlC,EAAI,KAAc,IACrLN,EAAKgL,MAAwK,KAAjKvG,EAAKA,EAAKA,EAAKxE,EAAI,IAAMuC,EAAKiC,EAAKA,EAAKA,EAAKjC,EAAKiC,EAAKA,EAAKA,EAAKjC,GAAMtB,EAAI,IAAMsB,EAAKA,EAAKiC,EAAKA,EAAKjC,EAAKA,EAAKA,EAAKiC,EAAKjC,GAAMnB,EAAI,GAAKmB,EAAKA,EAAKA,EAAKlC,EAAI,KAAc,MAiE/LygB,gBAAiBlf,EACjBmf,cAAe/gB,EACfghB,cAvQF,SAAuB3gB,EAAIY,EAAIG,EAAIO,EAAIC,EAAII,EAAIO,EAAIiC,EAAIC,GACrD,GAAW,IAAPrD,GAAmB,IAAPY,GAAmB,IAAPyC,EAC1B,OAAOzE,EAAcK,EAAIY,EAAIU,EAAIC,EAAIW,EAAIiC,GAG3C,IAGIiL,EAHAZ,EAAQ9O,EAAK+J,KAAK/J,EAAK6J,IAAIjI,EAAKtB,EAAI,GAAKN,EAAK6J,IAAIhI,EAAKX,EAAI,GAAKlB,EAAK6J,IAAI5H,EAAKZ,EAAI,IAClF0N,EAAQ/O,EAAK+J,KAAK/J,EAAK6J,IAAIrH,EAAKlC,EAAI,GAAKN,EAAK6J,IAAIpF,EAAKvD,EAAI,GAAKlB,EAAK6J,IAAInF,EAAKrD,EAAI,IAClF6N,EAAQlP,EAAK+J,KAAK/J,EAAK6J,IAAIrH,EAAKZ,EAAI,GAAK5B,EAAK6J,IAAIpF,EAAK5C,EAAI,GAAK7B,EAAK6J,IAAInF,EAAKzC,EAAI,IAetF,OAVIyN,EAFAZ,EAAQC,EACND,EAAQI,EACCJ,EAAQC,EAAQG,EAEhBA,EAAQH,EAAQD,EAEpBI,EAAQH,EACNG,EAAQH,EAAQD,EAEhBC,EAAQD,EAAQI,IAGV,MAAUQ,EAAW,OAqP5C,IAAIwR,IAAM1B,cAEN2B,gBAAkB,WACpB,IAAInhB,EAAY0G,oBACZzG,EAAU2J,KAAKa,IAEnB,SAASnK,EAAiBN,EAAUC,GAClC,IACIK,EADAe,EAAaR,KAAKugB,WAGA,qBAAlBvgB,KAAKwgB,WACP/gB,EAAWuI,iBAAiB,UAAWhI,KAAKygB,GAAGlgB,SAWjD,IARA,IAIIQ,EACAC,EACAI,EA6BAO,EACAiC,EACAC,EACAgL,EACAZ,EACAC,EAxCAG,EAAiBjP,EAAQshB,UACzB/N,EAAItE,EACJ2Q,EAAMhf,KAAK2gB,UAAUpgB,OAAS,EAC9B0e,GAAA,EAKGA,GAAM,CAIX,GAHAle,EAAUf,KAAK2gB,UAAUhO,GACzB3R,EAAchB,KAAK2gB,UAAUhO,EAAI,GAE7BA,IAAMqM,EAAM,GAAK7f,GAAY6B,EAAY7B,EAAIqB,EAAY,CACvDO,EAAQY,IACVZ,EAAUC,GAGZqN,EAAiB,EACjB,MAGF,GAAIrN,EAAY7B,EAAIqB,EAAarB,EAAU,CACzCkP,EAAiBsE,EACjB,MAGEA,EAAIqM,EAAM,EACZrM,GAAK,GAELtE,EAAiB,EACjB4Q,GAAA,EAAO,CAIX7d,EAAmBpB,KAAK4gB,kBAAkBjO,IAAM,CAAC,EAOjD,IAEInP,EAFA0b,EAAcle,EAAY7B,EAAIqB,EAC9B8e,EAAUve,EAAQ5B,EAAIqB,EAG1B,GAAIO,EAAQ8f,GAAI,CACTzf,EAAiB0f,aACpB1f,EAAiB0f,WAAaT,IAAIH,gBAAgBnf,EAAQA,EAAGC,EAAYD,GAAKA,EAAQ3B,EAAG2B,EAAQ8f,GAAI9f,EAAQggB,KAG/G,IAAIxB,EAAane,EAAiB0f,WAElC,GAAI3hB,GAAY+f,GAAe/f,EAAWmgB,EAAS,CACjD,IAAIE,EAAMrgB,GAAY+f,EAAcK,EAAWV,OAAOte,OAAS,EAAI,EAGnE,IAFAqD,EAAO2b,EAAWV,OAAOW,GAAKT,MAAMxe,OAE/BoB,EAAI,EAAGA,EAAIiC,EAAMjC,GAAK,EACzBlC,EAASkC,GAAK4d,EAAWV,OAAOW,GAAKT,MAAMpd,EAAA,KAGxC,CACDP,EAAiB4f,OACnB9S,EAAM9M,EAAiB4f,QAEvB9S,EAAMqP,cAAcC,gBAAgBzc,EAAQK,EAAEke,EAAGve,EAAQK,EAAE4d,EAAGje,EAAQV,EAAEif,EAAGve,EAAQV,EAAE2e,EAAGje,EAAQC,GAAG6B,IACnGzB,EAAiB4f,OAAS9S,GAG5BrK,EAAOqK,GAAK/O,EAAWmgB,IAAYJ,EAAcI,IACjD,IACIG,EADAC,EAAiBH,EAAWX,cAAgB/a,EAE5C8b,EAAcvgB,EAAQ6hB,UAAY9hB,GAAYC,EAAQ8hB,qBAAuBvO,EAAIvT,EAAQ+hB,iBAAmB,EAKhH,IAJAlT,EAAI7O,EAAQ6hB,UAAY9hB,GAAYC,EAAQ8hB,qBAAuBvO,EAAIvT,EAAQgiB,WAAa,EAC5FnC,GAAA,EACApQ,EAAO0Q,EAAWV,OAAOte,OAElB0e,GAAM,CAGX,GAFAU,GAAeJ,EAAWV,OAAO5Q,GAAG6Q,cAEb,IAAnBY,GAAiC,IAAT7b,GAAcoK,IAAMsR,EAAWV,OAAOte,OAAS,EAAG,CAG5E,IAFAqD,EAAO2b,EAAWV,OAAO5Q,GAAG8Q,MAAMxe,OAE7BoB,EAAI,EAAGA,EAAIiC,EAAMjC,GAAK,EACzBlC,EAASkC,GAAK4d,EAAWV,OAAO5Q,GAAG8Q,MAAMpd,GAG3C,MACK,GAAI+d,GAAkBC,GAAeD,EAAiBC,EAAcJ,EAAWV,OAAO5Q,EAAI,GAAG6Q,cAAe,CAIjH,IAHAW,GAAeC,EAAiBC,GAAeJ,EAAWV,OAAO5Q,EAAI,GAAG6Q,cACxElb,EAAO2b,EAAWV,OAAO5Q,GAAG8Q,MAAMxe,OAE7BoB,EAAI,EAAGA,EAAIiC,EAAMjC,GAAK,EACzBlC,EAASkC,GAAK4d,EAAWV,OAAO5Q,GAAG8Q,MAAMpd,IAAM4d,EAAWV,OAAO5Q,EAAI,GAAG8Q,MAAMpd,GAAK4d,EAAWV,OAAO5Q,GAAG8Q,MAAMpd,IAAM8d,EAGtH,MAGExR,EAAIY,EAAO,EACbZ,GAAK,EAELgR,GAAA,CAAO,CAIX7f,EAAQgiB,WAAanT,EACrB7O,EAAQ+hB,iBAAmBxB,EAAcJ,EAAWV,OAAO5Q,GAAG6Q,cAC9D1f,EAAQ8hB,mBAAqBvO,CAAA,MAE1B,CACL,IAAIiN,EACApR,EACAqR,EACAC,EACAC,EAIJ,GAHAf,EAAMje,EAAQA,EAAER,OAChBiD,EAAWxC,EAAYD,GAAKA,EAAQ3B,EAEhCY,KAAKqhB,IAAoB,IAAdtgB,EAAQY,EACjBxC,GAAY+f,GACdzf,EAAS,GAAK+D,EAAS,GACvB/D,EAAS,GAAK+D,EAAS,GACvB/D,EAAS,GAAK+D,EAAS,IACdrE,GAAYmgB,GACrB7f,EAAS,GAAKsB,EAAQA,EAAE,GACxBtB,EAAS,GAAKsB,EAAQA,EAAE,GACxBtB,EAAS,GAAKsB,EAAQA,EAAE,IAwGhC,SAA2B5B,EAAKC,GAC9B,IAAIK,EAAKL,EAAK,GACViB,EAAKjB,EAAK,GACVoB,EAAKpB,EAAK,GACV2B,EAAK3B,EAAK,GACV4B,EAAU+H,KAAKuY,MAAM,EAAIjhB,EAAKU,EAAK,EAAItB,EAAKe,EAAI,EAAI,EAAIH,EAAKA,EAAK,EAAIG,EAAKA,GAC3EY,EAAW2H,KAAKwY,KAAK,EAAI9hB,EAAKY,EAAK,EAAIG,EAAKO,GAC5CY,EAAOoH,KAAKuY,MAAM,EAAI7hB,EAAKsB,EAAK,EAAIV,EAAKG,EAAI,EAAI,EAAIf,EAAKA,EAAK,EAAIe,EAAKA,GAC5ErB,EAAI,GAAK6B,EAAU8I,UACnB3K,EAAI,GAAKiC,EAAW0I,UACpB3K,EAAI,GAAKwC,EAAOmI,SAAA,CAVlB,CAnG0BrK,EAyD1B,SAAeN,EAAGC,EAAGK,GACnB,IASIY,EACAG,EACAO,EACAC,EACAI,EAbAO,EAAM,GACNiC,EAAKzE,EAAE,GACP0E,EAAK1E,EAAE,GACP0P,EAAK1P,EAAE,GACP8O,EAAK9O,EAAE,GACP+O,EAAK9O,EAAE,GACPiP,EAAKjP,EAAE,GACPuT,EAAKvT,EAAE,GACP4f,EAAK5f,EAAE,GA8BX,OAxBAoB,EAAQoD,EAAKsK,EAAKrK,EAAKwK,EAAKQ,EAAK8D,EAAK1E,EAAK+Q,GAE/B,IACVxe,GAASA,EACT0N,GAAMA,EACNG,GAAMA,EACNsE,GAAMA,EACNqM,GAAMA,GAGJ,EAAMxe,EAAQ,MAChBH,EAAQ0I,KAAKyY,KAAKhhB,GAClBO,EAAQgI,KAAK0Y,IAAIphB,GACjBW,EAAS+H,KAAK0Y,KAAK,EAAMhiB,GAAKY,GAASU,EACvCK,EAAS2H,KAAK0Y,IAAIhiB,EAAIY,GAASU,IAE/BC,EAAS,EAAMvB,EACf2B,EAAS3B,GAGXkC,EAAI,GAAKX,EAAS4C,EAAKxC,EAAS8M,EAChCvM,EAAI,GAAKX,EAAS6C,EAAKzC,EAASiN,EAChC1M,EAAI,GAAKX,EAAS6N,EAAKzN,EAASuR,EAChChR,EAAI,GAAKX,EAASiN,EAAK7M,EAAS4d,EACzBrd,CAAA,CAvCT,CA5DwBtB,EAAiBU,EAAQA,GAC3BV,EAAiBmD,IACnBrE,EAAWmgB,IAAYJ,EAAcI,UAInD,IAAK3M,EAAI,EAAGA,EAAIqM,EAAKrM,GAAK,EACN,IAAd5R,EAAQY,IACNxC,GAAY+f,EACdrb,EAAO,EACE1E,EAAWmgB,EACpBzb,EAAO,GAEH9C,EAAQK,EAAEke,EAAErf,cAAgBT,OACzB4B,EAAiB4f,SACpB5f,EAAiB4f,OAAS,IAGvB5f,EAAiB4f,OAAOrO,GAQ3BzE,EAAM9M,EAAiB4f,OAAOrO,IAP9BiN,OAAA,IAAO7e,EAAQK,EAAEke,EAAE3M,GAAmB5R,EAAQK,EAAEke,EAAE,GAAKve,EAAQK,EAAEke,EAAE3M,GACnEnE,OAAA,IAAOzN,EAAQK,EAAE4d,EAAErM,GAAmB5R,EAAQK,EAAE4d,EAAE,GAAKje,EAAQK,EAAE4d,EAAErM,GACnEkN,OAAA,IAAM9e,EAAQV,EAAEif,EAAE3M,GAAmB5R,EAAQV,EAAEif,EAAE,GAAKve,EAAQV,EAAEif,EAAE3M,GAClEmN,OAAA,IAAM/e,EAAQV,EAAE2e,EAAErM,GAAmB5R,EAAQV,EAAE2e,EAAE,GAAKje,EAAQV,EAAE2e,EAAErM,GAClEzE,EAAMqP,cAAcC,gBAAgBoC,EAAMpR,EAAMqR,EAAKC,GAAKjd,IAC1DzB,EAAiB4f,OAAOrO,GAAKzE,IAIrB9M,EAAiB4f,OAQ3B9S,EAAM9M,EAAiB4f,QAPvBpB,EAAO7e,EAAQK,EAAEke,EACjB9Q,EAAOzN,EAAQK,EAAE4d,EACjBa,EAAM9e,EAAQV,EAAEif,EAChBQ,EAAM/e,EAAQV,EAAE2e,EAChB9Q,EAAMqP,cAAcC,gBAAgBoC,EAAMpR,EAAMqR,EAAKC,GAAKjd,IAC1D9B,EAAQ2gB,iBAAmBxT,GAK7BrK,EAAOqK,GAAK/O,EAAWmgB,IAAYJ,EAAcI,MAIrD9b,EAAWxC,EAAYD,GAAKA,EAAQ3B,EACpC2gB,EAAyB,IAAdhf,EAAQY,EAAUZ,EAAQA,EAAE4R,GAAK5R,EAAQA,EAAE4R,IAAMnP,EAASmP,GAAK5R,EAAQA,EAAE4R,IAAM9O,EAEpE,qBAAlB7D,KAAKwgB,SACP/gB,EAASkT,GAAKoN,EAEdtgB,EAAWsgB,CAAA,CAOnB,OADA3gB,EAAQshB,UAAYrS,EACb5O,CAAA,CA2DT,SAASY,EAAiBlB,GACxB,IAAIC,EAAUD,EAAO,GAAK2K,UACtBrK,EAAWN,EAAO,GAAK2K,UACvBzJ,EAAOlB,EAAO,GAAK2K,UACnBtJ,EAAKuI,KAAK4Y,IAAIviB,EAAU,GACxB2B,EAAKgI,KAAK4Y,IAAIliB,EAAW,GACzBuB,EAAK+H,KAAK4Y,IAAIthB,EAAO,GACrBe,EAAK2H,KAAK0Y,IAAIriB,EAAU,GACxBuC,EAAKoH,KAAK0Y,IAAIhiB,EAAW,GACzBmE,EAAKmF,KAAK0Y,IAAIphB,EAAO,GAKzB,MAAO,CAHCe,EAAKO,EAAKX,EAAKR,EAAKO,EAAK6C,EACzBxC,EAAKL,EAAKC,EAAKR,EAAKmB,EAAKiC,EACzBpD,EAAKmB,EAAKX,EAAKI,EAAKL,EAAK6C,EAHzBpD,EAAKO,EAAKC,EAAKI,EAAKO,EAAKiC,EAAA,CAOnC,SAASpD,IACP,IAAIpB,EAAWY,KAAK4hB,KAAKC,cAAgB7hB,KAAKugB,WAC1C9gB,EAAWO,KAAK2gB,UAAU,GAAGxhB,EAAIa,KAAKugB,WACtClgB,EAAUL,KAAK2gB,UAAU3gB,KAAK2gB,UAAUpgB,OAAS,GAAGpB,EAAIa,KAAKugB,WAEjE,KAAMnhB,IAAaY,KAAK8hB,SAASb,WAAajhB,KAAK8hB,SAASb,YAAc9hB,IAAca,KAAK8hB,SAASb,WAAa5gB,GAAWjB,GAAYiB,GAAWL,KAAK8hB,SAASb,UAAYxhB,GAAYL,EAAWK,IAAY,CAC5MO,KAAK8hB,SAASb,WAAa7hB,IAC7BY,KAAK8hB,SAASZ,oBAAsB,EACpClhB,KAAK8hB,SAASpB,UAAY,GAG5B,IAAIlgB,EAAeR,KAAK+hB,iBAAiB3iB,EAAUY,KAAK8hB,UACxD9hB,KAAKygB,GAAKjgB,CAAA,CAIZ,OADAR,KAAK8hB,SAASb,UAAY7hB,EACnBY,KAAKygB,EAAA,CAGd,SAAS1f,EAAU5B,GACjB,IAAIM,EAEJ,GAAsB,mBAAlBO,KAAKwgB,SACP/gB,EAAkBN,EAAMa,KAAKgiB,KAEzB5iB,EAAQY,KAAKwD,EAAI/D,GAAmB,OACtCO,KAAKwD,EAAI/D,EACTO,KAAKiiB,MAAA,QAMP,IAHA,IAAI5hB,EAAI,EACJG,EAAMR,KAAKwD,EAAEjD,OAEVF,EAAIG,GACTf,EAAkBN,EAAIkB,GAAKL,KAAKgiB,KAE5B5iB,EAAQY,KAAKwD,EAAEnD,GAAKZ,GAAmB,OACzCO,KAAKwD,EAAEnD,GAAKZ,EACZO,KAAKiiB,MAAA,GAGP5hB,GAAK,EAKX,SAASW,IACP,GAAIhB,KAAK4c,KAAKvE,WAAW6J,UAAYliB,KAAKkiB,SAAYliB,KAAKmiB,gBAAgB5hB,OAI3E,GAAIP,KAAKoiB,KACPpiB,KAAKqiB,UAAUriB,KAAKygB,QADtB,CAOA,IAAIthB,EAFJa,KAAKoiB,MAAA,EACLpiB,KAAKiiB,KAAOjiB,KAAKsiB,cAEjB,IAAIljB,EAAMY,KAAKmiB,gBAAgB5hB,OAC3Bd,EAAaO,KAAKuiB,GAAKviB,KAAKygB,GAAKzgB,KAAK4N,KAAKY,EAE/C,IAAKrP,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EACxBM,EAAaO,KAAKmiB,gBAAgBhjB,GAAGM,GAGvCO,KAAKqiB,UAAU5iB,GACfO,KAAKsiB,eAAA,EACLtiB,KAAKoiB,MAAA,EACLpiB,KAAKkiB,QAAUliB,KAAK4c,KAAKvE,WAAW6J,OAAA,EAGtC,SAAS9gB,EAAUjC,GACjBa,KAAKmiB,gBAAgBzf,KAAKvD,GAC1Ba,KAAKkY,UAAUsK,mBAAmBxiB,KAAA,CAGpC,SAAS2B,EAAcxC,EAAMC,EAAMK,EAAMY,GACvCL,KAAKwgB,SAAW,iBAChBxgB,KAAKgiB,KAAOviB,GAAQ,EACpBO,KAAK4N,KAAOxO,EACZY,KAAKwD,EAAI/D,EAAOL,EAAKoP,EAAI/O,EAAOL,EAAKoP,EACrCxO,KAAKygB,GAAKrhB,EAAKoP,EACfxO,KAAKiiB,MAAA,EACLjiB,KAAK4c,KAAOzd,EACZa,KAAKkY,UAAY7X,EACjBL,KAAK4hB,KAAOziB,EAAKyiB,KACjB5hB,KAAKwO,GAAA,EACLxO,KAAKuiB,IAAA,EACLviB,KAAKyiB,IAAM,EACXziB,KAAKmiB,gBAAkB,GACvBniB,KAAKsiB,eAAA,EACLtiB,KAAK0iB,SAAW1hB,EAChBhB,KAAKqiB,UAAYthB,EACjBf,KAAK2iB,UAAYvhB,CAAA,CAGnB,SAASwC,EAAyBzE,EAAMC,EAAMK,EAAMY,GAWlD,IAAIG,EAVJR,KAAKwgB,SAAW,mBAChBxgB,KAAKgiB,KAAOviB,GAAQ,EACpBO,KAAK4N,KAAOxO,EACZY,KAAKiiB,MAAA,EACLjiB,KAAK4c,KAAOzd,EACZa,KAAKkY,UAAY7X,EACjBL,KAAK4hB,KAAOziB,EAAKyiB,KACjB5hB,KAAKwO,GAAA,EACLxO,KAAKuiB,IAAA,EACLviB,KAAKkiB,SAAW,EAEhB,IAAIvgB,EAAMvC,EAAKoP,EAAEjO,OAKjB,IAJAP,KAAKwD,EAAIwE,iBAAiB,UAAWrG,GACrC3B,KAAKygB,GAAKzY,iBAAiB,UAAWrG,GACtC3B,KAAKyiB,IAAMza,iBAAiB,UAAWrG,GAElCnB,EAAI,EAAGA,EAAImB,EAAKnB,GAAK,EACxBR,KAAKwD,EAAEhD,GAAKpB,EAAKoP,EAAEhO,GAAKR,KAAKgiB,KAC7BhiB,KAAKygB,GAAGjgB,GAAKpB,EAAKoP,EAAEhO,GAGtBR,KAAKsiB,eAAA,EACLtiB,KAAKmiB,gBAAkB,GACvBniB,KAAK0iB,SAAW1hB,EAChBhB,KAAKqiB,UAAYthB,EACjBf,KAAK2iB,UAAYvhB,CAAA,CAGnB,SAASyC,EAAuBzE,EAAMiB,EAAMsB,EAAMiC,GAChD5D,KAAKwgB,SAAW,iBAChBxgB,KAAK2gB,UAAYtgB,EAAKmO,EACtBxO,KAAK4gB,kBAAoB,GACzB5gB,KAAKugB,WAAanhB,EAAKwO,KAAK8B,GAC5B1P,KAAKkiB,SAAW,EAChBliB,KAAK8hB,SAAW,CACdb,UAAW9hB,EACXuhB,UAAW,EACX3e,MAAO,EACPmf,oBAAqB,GAEvBlhB,KAAKwO,GAAA,EACLxO,KAAKuiB,IAAA,EACLviB,KAAK4N,KAAOvN,EACZL,KAAKgiB,KAAOrgB,GAAQ,EACpB3B,KAAK4c,KAAOxd,EACZY,KAAKkY,UAAYtU,EACjB5D,KAAK4hB,KAAOxiB,EAAKwiB,KACjB5hB,KAAKwD,EAAIrE,EACTa,KAAKygB,GAAKthB,EACVa,KAAKsiB,eAAA,EACLtiB,KAAK0iB,SAAW1hB,EAChBhB,KAAKqiB,UAAYthB,EACjBf,KAAK+hB,iBAAmBtiB,EACxBO,KAAKmiB,gBAAkB,CAAC3hB,EAAsBwS,KAAKhT,OACnDA,KAAK2iB,UAAYvhB,CAAA,CAGnB,SAASyN,EAAkCzP,EAAMiB,EAAMsB,EAAMiC,GAE3D,IAAIC,EADJ7D,KAAKwgB,SAAW,mBAEhB,IACI3R,EACAZ,EACAC,EACAG,EAJAsE,EAAMtS,EAAKmO,EAAEjO,OAMjB,IAAKsD,EAAI,EAAGA,EAAI8O,EAAM,EAAG9O,GAAK,EACxBxD,EAAKmO,EAAE3K,GAAGgd,IAAMxgB,EAAKmO,EAAE3K,GAAG9C,GAAKV,EAAKmO,EAAE3K,EAAI,IAAMxD,EAAKmO,EAAE3K,EAAI,GAAG9C,IAChE8N,EAAIxO,EAAKmO,EAAE3K,GAAG9C,EACdkN,EAAI5N,EAAKmO,EAAE3K,EAAI,GAAG9C,EAClBmN,EAAK7N,EAAKmO,EAAE3K,GAAGgd,GACfxS,EAAKhO,EAAKmO,EAAE3K,GAAGkd,IAEE,IAAblS,EAAEtO,SAAkBsO,EAAE,KAAOZ,EAAE,IAAMY,EAAE,KAAOZ,EAAE,KAAOoS,IAAIF,cAActR,EAAE,GAAIA,EAAE,GAAIZ,EAAE,GAAIA,EAAE,GAAIY,EAAE,GAAKX,EAAG,GAAIW,EAAE,GAAKX,EAAG,KAAOmS,IAAIF,cAActR,EAAE,GAAIA,EAAE,GAAIZ,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAKI,EAAG,GAAIJ,EAAE,GAAKI,EAAG,KAAoB,IAAbQ,EAAEtO,SAAkBsO,EAAE,KAAOZ,EAAE,IAAMY,EAAE,KAAOZ,EAAE,IAAMY,EAAE,KAAOZ,EAAE,KAAOoS,IAAID,cAAcvR,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIZ,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIY,EAAE,GAAKX,EAAG,GAAIW,EAAE,GAAKX,EAAG,GAAIW,EAAE,GAAKX,EAAG,KAAOmS,IAAID,cAAcvR,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIZ,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAKI,EAAG,GAAIJ,EAAE,GAAKI,EAAG,GAAIJ,EAAE,GAAKI,EAAG,OACldhO,EAAKmO,EAAE3K,GAAGgd,GAAK,KACfxgB,EAAKmO,EAAE3K,GAAGkd,GAAK,MAGblS,EAAE,KAAOZ,EAAE,IAAMY,EAAE,KAAOZ,EAAE,IAAgB,IAAVC,EAAG,IAAsB,IAAVA,EAAG,IAAsB,IAAVG,EAAG,IAAsB,IAAVA,EAAG,KACnE,IAAbQ,EAAEtO,QAAgBsO,EAAE,KAAOZ,EAAE,IAAgB,IAAVC,EAAG,IAAsB,IAAVG,EAAG,MACvDhO,EAAKmO,EAAE3K,GAAGgd,GAAK,KACfxgB,EAAKmO,EAAE3K,GAAGkd,GAAK,OAMvB/gB,KAAKmiB,gBAAkB,CAAC3hB,EAAsBwS,KAAKhT,OACnDA,KAAK4N,KAAOvN,EACZL,KAAK2gB,UAAYtgB,EAAKmO,EACtBxO,KAAK4gB,kBAAoB,GACzB5gB,KAAKugB,WAAanhB,EAAKwO,KAAK8B,GAC5B1P,KAAKwO,GAAA,EACLxO,KAAKuiB,IAAA,EACLviB,KAAKsiB,eAAA,EACLtiB,KAAKgiB,KAAOrgB,GAAQ,EACpB3B,KAAK4c,KAAOxd,EACZY,KAAKkY,UAAYtU,EACjB5D,KAAK4hB,KAAOxiB,EAAKwiB,KACjB5hB,KAAK0iB,SAAW1hB,EAChBhB,KAAKqiB,UAAYthB,EACjBf,KAAK+hB,iBAAmBtiB,EACxBO,KAAKkiB,SAAW,EAChB,IAAIlD,EAAS3e,EAAKmO,EAAE,GAAGzN,EAAER,OAIzB,IAHAP,KAAKwD,EAAIwE,iBAAiB,UAAWgX,GACrChf,KAAKygB,GAAKzY,iBAAiB,UAAWgX,GAEjCnb,EAAI,EAAGA,EAAImb,EAAQnb,GAAK,EAC3B7D,KAAKwD,EAAEK,GAAK1E,EACZa,KAAKygB,GAAG5c,GAAK1E,EAGfa,KAAK8hB,SAAW,CACdb,UAAW9hB,EACXuhB,UAAW,EACX3e,MAAOiG,iBAAiB,UAAWgX,IAErChf,KAAK2iB,UAAYvhB,CAAA,CAmCnB,MAHS,CACPwhB,QA9BF,SAAiBzjB,EAAMC,EAAMK,EAAMY,EAAMG,GACvC,IAAIO,EAEJ,GAAK3B,EAAKoP,EAAEjO,OAEL,GAAyB,iBAAdnB,EAAKoP,EAAE,GACvBzN,EAAI,IAAI6C,EAAyBzE,EAAMC,EAAMiB,EAAMG,QAEnD,OAAQf,GACN,KAAK,EACHsB,EAAI,IAAI8C,EAAuB1E,EAAMC,EAAMiB,EAAMG,GACjD,MAEF,KAAK,EACHO,EAAI,IAAI8N,EAAkC1P,EAAMC,EAAMiB,EAAMG,QAVhEO,EAAI,IAAIY,EAAcxC,EAAMC,EAAMiB,EAAMG,GAsB1C,OAJIO,EAAEohB,gBAAgB5hB,QACpBC,EAAUgiB,mBAAmBzhB,GAGxBA,CAAA,GApgBW,GA6gBtB,SAAS8hB,2BAAA,CAETA,yBAAyBnjB,UAAY,CACnC8iB,mBAAoB,SAA4BrjB,IACA,IAA1Ca,KAAK8iB,kBAAkBniB,QAAQxB,KACjCa,KAAK8iB,kBAAkBpgB,KAAKvD,GAC5Ba,KAAKkY,UAAUsK,mBAAmBxiB,MAClCA,KAAK+iB,aAAA,EAAc,EAGvBC,yBAA0B,WAExB,IAAI7jB,EADJa,KAAKiiB,MAAA,EAEL,IAAI7iB,EAAMY,KAAK8iB,kBAAkBviB,OAEjC,IAAKpB,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EACxBa,KAAK8iB,kBAAkB3jB,GAAGujB,WAEtB1iB,KAAK8iB,kBAAkB3jB,GAAG8iB,OAC5BjiB,KAAKiiB,MAAA,EAAO,EAIlBgB,6BAA8B,SAAsC9jB,GAClEa,KAAKkY,UAAY/Y,EACjBa,KAAK8iB,kBAAoB,GACzB9iB,KAAKiiB,MAAA,EACLjiB,KAAK+iB,aAAA,CAAc,GAIvB,IAAIG,UAKKhF,YAAY,GAJnB,WACE,OAAOlW,iBAAiB,UAAW,MAMvC,SAASmb,YACPnjB,KAAKiO,GAAA,EACLjO,KAAKof,QAAU,EACfpf,KAAKojB,WAAa,EAClBpjB,KAAKwD,EAAI4E,iBAAiBpI,KAAKojB,YAC/BpjB,KAAKoB,EAAIgH,iBAAiBpI,KAAKojB,YAC/BpjB,KAAKK,EAAI+H,iBAAiBpI,KAAKojB,WAAA,CAGjCD,UAAUzjB,UAAU2jB,YAAc,SAAUlkB,EAAQC,GAClDY,KAAKiO,EAAI9O,EACTa,KAAKsjB,UAAUlkB,GAGf,IAFA,IAAIK,EAAI,EAEDA,EAAIL,GACTY,KAAKwD,EAAE/D,GAAKyjB,UAAU/E,aACtBne,KAAKoB,EAAE3B,GAAKyjB,UAAU/E,aACtBne,KAAKK,EAAEZ,GAAKyjB,UAAU/E,aACtB1e,GAAK,GAIT0jB,UAAUzjB,UAAU4jB,UAAY,SAAUnkB,GACxC,KAAOa,KAAKojB,WAAajkB,GACvBa,KAAKujB,oBAGPvjB,KAAKof,QAAUjgB,CAAA,EAGjBgkB,UAAUzjB,UAAU6jB,kBAAoB,WACtCvjB,KAAKwD,EAAIxD,KAAKwD,EAAEL,OAAOiF,iBAAiBpI,KAAKojB,aAC7CpjB,KAAKK,EAAIL,KAAKK,EAAE8C,OAAOiF,iBAAiBpI,KAAKojB,aAC7CpjB,KAAKoB,EAAIpB,KAAKoB,EAAE+B,OAAOiF,iBAAiBpI,KAAKojB,aAC7CpjB,KAAKojB,YAAc,GAGrBD,UAAUzjB,UAAU8jB,QAAU,SAAUrkB,EAAGC,EAAGK,EAAMY,EAAKG,GACvD,IAAIO,EAOJ,OANAf,KAAKof,QAAUrW,KAAKO,IAAItJ,KAAKof,QAAS/e,EAAM,GAExCL,KAAKof,SAAWpf,KAAKojB,YACvBpjB,KAAKujB,oBAGC9jB,GACN,IAAK,IACHsB,EAAMf,KAAKwD,EACX,MAEF,IAAK,IACHzC,EAAMf,KAAKK,EACX,MAEF,IAAK,IACHU,EAAMf,KAAKoB,EACX,MAEF,QACEL,EAAM,KAILA,EAAIV,IAAQU,EAAIV,KAASG,KAC5BO,EAAIV,GAAO6iB,UAAU/E,cAGvBpd,EAAIV,GAAK,GAAKlB,EACd4B,EAAIV,GAAK,GAAKjB,CAAA,EAGhB+jB,UAAUzjB,UAAU+jB,YAAc,SAAUtkB,EAAIC,EAAIK,EAAIY,EAAIG,EAAIO,EAAIC,EAAKI,GACvEpB,KAAKwjB,QAAQrkB,EAAIC,EAAI,IAAK4B,EAAKI,GAC/BpB,KAAKwjB,QAAQ/jB,EAAIY,EAAI,IAAKW,EAAKI,GAC/BpB,KAAKwjB,QAAQhjB,EAAIO,EAAI,IAAKC,EAAKI,EAAA,EAGjC+hB,UAAUzjB,UAAUgkB,QAAU,WAC5B,IAAIvkB,EAAU,IAAIgkB,UAClBhkB,EAAQkkB,YAAYrjB,KAAKiO,EAAGjO,KAAKof,SACjC,IAAIhgB,EAAWY,KAAKwD,EAChB/D,EAAYO,KAAKoB,EACjBf,EAAWL,KAAKK,EAChBG,EAAO,EAEPR,KAAKiO,IACP9O,EAAQskB,YAAYrkB,EAAS,GAAG,GAAIA,EAAS,GAAG,GAAIiB,EAAS,GAAG,GAAIA,EAAS,GAAG,GAAIZ,EAAU,GAAG,GAAIA,EAAU,GAAG,GAAI,GAAG,GACzHe,EAAO,GAGT,IAEIO,EAFAC,EAAMhB,KAAKof,QAAU,EACrBhe,EAAMpB,KAAKof,QAGf,IAAKre,EAAIP,EAAMO,EAAIK,EAAKL,GAAK,EAC3B5B,EAAQskB,YAAYrkB,EAAS4B,GAAK,GAAI5B,EAAS4B,GAAK,GAAIX,EAASW,GAAK,GAAIX,EAASW,GAAK,GAAIvB,EAAUuB,GAAK,GAAIvB,EAAUuB,GAAK,GAAID,GAAA,GAClIC,GAAO,EAGT,OAAO7B,CAAA,EAGTgkB,UAAUzjB,UAAUa,OAAS,WAC3B,OAAOP,KAAKof,OAAA,EAGd,IAAIuE,WAoCEC,QAAU1F,YAAY,GAnC1B,WACE,OAAO,IAAIiF,SAAA,IAGb,SAAiBhkB,GACf,IACIC,EADAK,EAAMN,EAAUigB,QAGpB,IAAKhgB,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EACxB8jB,UAAU9E,QAAQjf,EAAUqE,EAAEpE,IAC9B8jB,UAAU9E,QAAQjf,EAAUkB,EAAEjB,IAC9B8jB,UAAU9E,QAAQjf,EAAUiC,EAAEhC,IAC9BD,EAAUqE,EAAEpE,GAAK,KACjBD,EAAUkB,EAAEjB,GAAK,KACjBD,EAAUiC,EAAEhC,GAAK,KAGnBD,EAAUigB,QAAU,EACpBjgB,EAAU8O,GAAA,CAAI,IAkBhB2V,QAAQC,MAfR,SAAe1kB,GACb,IACIC,EADAK,EAASmkB,QAAQzF,aAEjB9d,OAAA,IAAMlB,EAAMigB,QAAwBjgB,EAAMqE,EAAEjD,OAASpB,EAAMigB,QAI/D,IAHA3f,EAAO6jB,UAAUjjB,GACjBZ,EAAOwO,EAAI9O,EAAM8O,EAEZ7O,EAAI,EAAGA,EAAIiB,EAAKjB,GAAK,EACxBK,EAAOgkB,YAAYtkB,EAAMqE,EAAEpE,GAAG,GAAID,EAAMqE,EAAEpE,GAAG,GAAID,EAAMiC,EAAEhC,GAAG,GAAID,EAAMiC,EAAEhC,GAAG,GAAID,EAAMkB,EAAEjB,GAAG,GAAID,EAAMkB,EAAEjB,GAAG,GAAIA,GAG/G,OAAOK,CAAA,EAKFmkB,SAFHA,QAKN,SAASE,kBACP9jB,KAAKof,QAAU,EACfpf,KAAKojB,WAAa,EAClBpjB,KAAK4O,OAASxG,iBAAiBpI,KAAKojB,WAAA,CAGtCU,gBAAgBpkB,UAAUqkB,SAAW,SAAU5kB,GACzCa,KAAKof,UAAYpf,KAAKojB,aACxBpjB,KAAK4O,OAAS5O,KAAK4O,OAAOzL,OAAOiF,iBAAiBpI,KAAKojB,aACvDpjB,KAAKojB,YAAc,GAGrBpjB,KAAK4O,OAAO5O,KAAKof,SAAWjgB,EAC5Ba,KAAKof,SAAW,GAGlB0E,gBAAgBpkB,UAAUskB,cAAgB,WACxC,IAAI7kB,EAEJ,IAAKA,EAAI,EAAGA,EAAIa,KAAKof,QAASjgB,GAAK,EACjCwkB,UAAUvF,QAAQpe,KAAK4O,OAAOzP,IAGhCa,KAAKof,QAAU,GAGjB,IAAI6E,qBACEC,GAAK,CACPC,mBAOF,WAUE,OAPI/E,QAEgBgF,KADlBhF,SAAW,GAGO,IAAI0E,eAAA,EAbxB1F,QAmBF,SAAiBjf,GACf,IAAIC,EACAK,EAAMN,EAAgBigB,QAE1B,IAAKhgB,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EACxBukB,UAAUvF,QAAQjf,EAAgByP,OAAOxP,IAG3CD,EAAgBigB,QAAU,EAEtBA,UAAYgE,aACdgB,KAAOpG,QAAgBC,OAAEmG,MACzBhB,YAAc,GAGhBgB,KAAKhF,SAAWjgB,EAChBigB,SAAW,IAjCTA,QAAU,EACVgE,WAAa,EACbgB,KAAOhc,iBAAiBgb,YAkCrBc,IAxCHA,GAIA9E,QACAgE,WACAgB,KAqCFC,qBAAuB,WAGzB,SAASllB,EAAiBA,EAAUC,EAAeK,GACjD,IACIY,EACAG,EACAO,EACAC,EACAI,EACAO,EACAiC,EACAC,EACAgL,EATAZ,EAAiBxO,EAAQihB,UAUzBxS,EAAKlO,KAAK2gB,UAEd,GAAIxhB,EAAW+O,EAAG,GAAG/O,EAAIa,KAAKugB,WAC5BlgB,EAAW6N,EAAG,GAAGnN,EAAE,GACnBA,GAAA,EACAkN,EAAiB,OACZ,GAAI9O,GAAY+O,EAAGA,EAAG3N,OAAS,GAAGpB,EAAIa,KAAKugB,WAChDlgB,EAAW6N,EAAGA,EAAG3N,OAAS,GAAGQ,EAAImN,EAAGA,EAAG3N,OAAS,GAAGQ,EAAE,GAAKmN,EAAGA,EAAG3N,OAAS,GAAGnB,EAAE,GAO9E2B,GAAA,MACK,CAQL,IAPA,IAGIsN,EACAsE,EACAqM,EALAC,EAAIhR,EACJzK,EAAM0K,EAAG3N,OAAS,EAClB2e,GAAA,EAKGA,IACL7Q,EAAUH,EAAG+Q,MACbtM,EAAczE,EAAG+Q,EAAI,IAEL9f,EAAIa,KAAKugB,WAAaphB,KAIlC8f,EAAIzb,EAAM,EACZyb,GAAK,EAELC,GAAA,EAQJ,GAJAF,EAAmBhf,KAAK4gB,kBAAkB3B,IAAM,CAAC,EAEjDhR,EAAiBgR,IADjBle,EAAuB,IAAdsN,EAAQ1M,GAGJ,CACX,GAAIxC,GAAYwT,EAAYxT,EAAIa,KAAKugB,WACnC1c,EAAO,OACF,GAAI1E,EAAWkP,EAAQlP,EAAIa,KAAKugB,WACrC1c,EAAO,MACF,CACL,IAAIyb,EAEAN,EAAiBgC,OACnB1B,EAAMN,EAAiBgC,QAEvB1B,EAAM/B,cAAcC,gBAAgBnP,EAAQjN,EAAEke,EAAGjR,EAAQjN,EAAE4d,EAAG3Q,EAAQhO,EAAEif,EAAGjR,EAAQhO,EAAE2e,GAAGnc,IACxFmc,EAAiBgC,OAAS1B,GAG5Bzb,EAAOyb,GAAKngB,GAAYkP,EAAQlP,EAAIa,KAAKugB,cAAgB5N,EAAYxT,EAAIa,KAAKugB,YAAclS,EAAQlP,EAAIa,KAAKugB,aAAA,CAG/G/f,EAAWmS,EAAY5R,EAAI4R,EAAY5R,EAAE,GAAKsN,EAAQjP,EAAE,GAG1DiB,EAAWgO,EAAQtN,EAAE,GAOvB,IAJAY,EAAOvC,EAAcggB,QACrBxb,EAAOvD,EAASA,EAAE,GAAGE,OACrBd,EAAQihB,UAAYzS,EAEfjN,EAAI,EAAGA,EAAIW,EAAMX,GAAK,EACzB,IAAKI,EAAI,EAAGA,EAAIwC,EAAMxC,GAAK,EACzByN,EAAc9N,EAASV,EAASA,EAAEW,GAAGI,GAAKf,EAASA,EAAEW,GAAGI,IAAMZ,EAASH,EAAEW,GAAGI,GAAKf,EAASA,EAAEW,GAAGI,IAAMyC,EACrGzE,EAAciB,EAAEW,GAAGI,GAAKyN,EACxBA,EAAc9N,EAASV,EAASe,EAAEJ,GAAGI,GAAKf,EAASe,EAAEJ,GAAGI,IAAMZ,EAASY,EAAEJ,GAAGI,GAAKf,EAASe,EAAEJ,GAAGI,IAAMyC,EACrGzE,EAAcgC,EAAEJ,GAAGI,GAAKyN,EACxBA,EAAc9N,EAASV,EAASmD,EAAExC,GAAGI,GAAKf,EAASmD,EAAExC,GAAGI,IAAMZ,EAASgD,EAAExC,GAAGI,GAAKf,EAASmD,EAAExC,GAAGI,IAAMyC,EACrGzE,EAAcoE,EAAExC,GAAGI,GAAKyN,CAAA,CAK9B,SAASzP,IACP,IAAID,EAAWa,KAAK4hB,KAAKC,cAAgB7hB,KAAKugB,WAC1CnhB,EAAWY,KAAK2gB,UAAU,GAAGxhB,EAAIa,KAAKugB,WACtC9gB,EAAUO,KAAK2gB,UAAU3gB,KAAK2gB,UAAUpgB,OAAS,GAAGpB,EAAIa,KAAKugB,WAC7DlgB,EAAYL,KAAK8hB,SAASb,UAS9B,OA5Gc,SAqGR5gB,IAA4BA,EAAYjB,GAAYD,EAAWC,GAAYiB,EAAYZ,GAAWN,EAAWM,KAEjHO,KAAK8hB,SAASpB,UAAYrgB,EAAYlB,EAAWa,KAAK8hB,SAASpB,UAAY,EAC3E1gB,KAAKskB,iBAAiBnlB,EAAUa,KAAKygB,GAAIzgB,KAAK8hB,WAGhD9hB,KAAK8hB,SAASb,UAAY9hB,EACnBa,KAAKygB,EAAA,CAGd,SAAShhB,IACPO,KAAKukB,MAAQvkB,KAAKwkB,oBAAA,CAoBpB,SAASnkB,EAAUlB,IAAA,SAjBEA,EAAQC,GAC3B,GAAID,EAAOigB,UAAYhgB,EAAOggB,SAAWjgB,EAAO8O,IAAM7O,EAAO6O,EAC3D,OAAO,EAGT,IAAIxO,EACAY,EAAMlB,EAAOigB,QAEjB,IAAK3f,EAAI,EAAGA,EAAIY,EAAKZ,GAAK,EACxB,GAAIN,EAAOqE,EAAE/D,GAAG,KAAOL,EAAOoE,EAAE/D,GAAG,IAAMN,EAAOqE,EAAE/D,GAAG,KAAOL,EAAOoE,EAAE/D,GAAG,IAAMN,EAAOiC,EAAE3B,GAAG,KAAOL,EAAOgC,EAAE3B,GAAG,IAAMN,EAAOiC,EAAE3B,GAAG,KAAOL,EAAOgC,EAAE3B,GAAG,IAAMN,EAAOkB,EAAEZ,GAAG,KAAOL,EAAOiB,EAAEZ,GAAG,IAAMN,EAAOkB,EAAEZ,GAAG,KAAOL,EAAOiB,EAAEZ,GAAG,GAC1N,OAAO,EAIX,OAAO,GAGU,CACAO,KAAKwD,EAAGrE,KACvBa,KAAKwD,EAAImgB,UAAUE,MAAM1kB,GACzBa,KAAKwkB,qBAAqBR,gBAC1BhkB,KAAKwkB,qBAAqBT,SAAS/jB,KAAKwD,GACxCxD,KAAKiiB,MAAA,EACLjiB,KAAKukB,MAAQvkB,KAAKwkB,qBAAA,CAItB,SAAShkB,IACP,GAAIR,KAAK4c,KAAKvE,WAAW6J,UAAYliB,KAAKkiB,QAI1C,GAAKliB,KAAKmiB,gBAAgB5hB,OAK1B,GAAIP,KAAKoiB,KACPpiB,KAAKqiB,UAAUriB,KAAKygB,QADtB,CAOA,IAAIthB,EAUAC,EAZJY,KAAKoiB,MAAA,EACLpiB,KAAKiiB,MAAA,EAIH9iB,EADEa,KAAKuiB,GACMviB,KAAKygB,GACTzgB,KAAK4N,KAAKuB,GACNnP,KAAK4N,KAAKuB,GAAGX,EAEbxO,KAAK4N,KAAKW,GAAGC,EAI5B,IAAI/O,EAAMO,KAAKmiB,gBAAgB5hB,OAE/B,IAAKnB,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EACxBD,EAAaa,KAAKmiB,gBAAgB/iB,GAAGD,GAGvCa,KAAKqiB,UAAUljB,GACfa,KAAKoiB,MAAA,EACLpiB,KAAKkiB,QAAUliB,KAAK4c,KAAKvE,WAAW6J,OAAA,MA9BlCliB,KAAKiiB,MAAA,CAAO,CAiChB,SAASlhB,EAAc5B,EAAMC,EAAMiB,GACjCL,KAAKwgB,SAAW,QAChBxgB,KAAK4hB,KAAOziB,EAAKyiB,KACjB5hB,KAAKkY,UAAY/Y,EACjBa,KAAK4c,KAAOzd,EACZa,KAAK4N,KAAOxO,EACZY,KAAKwO,GAAA,EACLxO,KAAKuiB,IAAA,EACLviB,KAAKiiB,MAAA,EACL,IAAIzhB,EAAoB,IAATH,EAAajB,EAAKmP,GAAGC,EAAIpP,EAAK+P,GAAGX,EAChDxO,KAAKwD,EAAImgB,UAAUE,MAAMrjB,GACzBR,KAAKygB,GAAKkD,UAAUE,MAAM7jB,KAAKwD,GAC/BxD,KAAKwkB,qBAAuBP,oBAAoBE,qBAChDnkB,KAAKukB,MAAQvkB,KAAKwkB,qBAClBxkB,KAAKukB,MAAMR,SAAS/jB,KAAKwD,GACzBxD,KAAKykB,MAAQhlB,EACbO,KAAKmiB,gBAAkB,GAGzB,SAASnhB,EAAU7B,GACjBa,KAAKmiB,gBAAgBzf,KAAKvD,GAC1Ba,KAAKkY,UAAUsK,mBAAmBxiB,KAAA,CAQpC,SAASoB,EAAuBjC,EAAMkB,EAAMG,GAC1CR,KAAKwgB,SAAW,QAChBxgB,KAAK4hB,KAAOziB,EAAKyiB,KACjB5hB,KAAK4c,KAAOzd,EACZa,KAAKkY,UAAY/Y,EACjBa,KAAKugB,WAAaphB,EAAKyO,KAAK8B,GAC5B1P,KAAK2gB,UAAqB,IAATngB,EAAaH,EAAKkO,GAAGC,EAAInO,EAAK8O,GAAGX,EAClDxO,KAAK4gB,kBAAoB,GACzB5gB,KAAKwO,GAAA,EACLxO,KAAKuiB,IAAA,EACL,IAAIxhB,EAAMf,KAAK2gB,UAAU,GAAG5f,EAAE,GAAGV,EAAEE,OACnCP,KAAKwD,EAAImgB,UAAUxF,aACnBne,KAAKwD,EAAE6f,YAAYrjB,KAAK2gB,UAAU,GAAG5f,EAAE,GAAGkN,EAAGlN,GAC7Cf,KAAKygB,GAAKkD,UAAUE,MAAM7jB,KAAKwD,GAC/BxD,KAAKwkB,qBAAuBP,oBAAoBE,qBAChDnkB,KAAKukB,MAAQvkB,KAAKwkB,qBAClBxkB,KAAKukB,MAAMR,SAAS/jB,KAAKwD,GACzBxD,KAAKihB,WAnOS,OAoOdjhB,KAAKykB,MAAQhlB,EACbO,KAAK8hB,SAAW,CACdb,WAtOY,OAuOZP,UAAW,GAEb1gB,KAAKmiB,gBAAkB,CAAC/iB,EAA4B4T,KAAKhT,MAAA,CA5B3De,EAAcrB,UAAU4kB,iBAAmBnlB,EAC3C4B,EAAcrB,UAAUgjB,SAAWliB,EACnCO,EAAcrB,UAAU2iB,UAAYhiB,EACpCU,EAAcrB,UAAUijB,UAAY3hB,EA4BpCI,EAAuB1B,UAAUgjB,SAAWliB,EAC5CY,EAAuB1B,UAAU4kB,iBAAmBnlB,EACpDiC,EAAuB1B,UAAU2iB,UAAYhiB,EAC7Ce,EAAuB1B,UAAUijB,UAAY3hB,EAE7C,IAAIW,EAAmB,WACrB,IAAIxC,EAAS6K,YAEb,SAAS5K,EAAwBD,EAAMC,GACrCY,KAAKwD,EAAImgB,UAAUxF,aACnBne,KAAKwD,EAAE6f,aAAA,EAAkB,GACzBrjB,KAAKwkB,qBAAuBP,oBAAoBE,qBAChDnkB,KAAKukB,MAAQvkB,KAAKwkB,qBAClBxkB,KAAKwkB,qBAAqBT,SAAS/jB,KAAKwD,GACxCxD,KAAKqO,EAAIjP,EAAKiP,EACdrO,KAAK4c,KAAOzd,EACZa,KAAK4hB,KAAOziB,EAAKyiB,KACjB5hB,KAAKkiB,SAAW,EAChBliB,KAAKijB,6BAA6B9jB,GAClCa,KAAK6D,EAAIyc,gBAAgBsC,QAAQzjB,EAAMC,EAAKyE,EAAG,EAAG,EAAG7D,MACrDA,KAAKe,EAAIuf,gBAAgBsC,QAAQzjB,EAAMC,EAAK2B,EAAG,EAAG,EAAGf,MAEjDA,KAAK8iB,kBAAkBviB,OACzBP,KAAKwO,GAAA,GAELxO,KAAKwO,GAAA,EACLxO,KAAK0kB,mBAAA,CAsDT,OAlDAtlB,EAAwBM,UAAY,CAClC+kB,MAAOhlB,EACPijB,SAAU,WACJ1iB,KAAK4c,KAAKvE,WAAW6J,UAAYliB,KAAKkiB,UAI1CliB,KAAKkiB,QAAUliB,KAAK4c,KAAKvE,WAAW6J,QACpCliB,KAAKgjB,2BAEDhjB,KAAKiiB,MACPjiB,KAAK0kB,mBAAA,EAGTA,iBAAkB,WAChB,IAAItlB,EAAKY,KAAK6D,EAAEL,EAAE,GACd/D,EAAKO,KAAK6D,EAAEL,EAAE,GACdnD,EAAKL,KAAKe,EAAEyC,EAAE,GAAK,EACnBhD,EAAKR,KAAKe,EAAEyC,EAAE,GAAK,EAEnBzC,EAAiB,IAAXf,KAAKqO,EAEXrN,EAAKhB,KAAKwD,EACdxC,EAAGwC,EAAE,GAAG,GAAKpE,EACb4B,EAAGwC,EAAE,GAAG,GAAK/D,EAAKe,EAClBQ,EAAGwC,EAAE,GAAG,GAAKzC,EAAM3B,EAAKiB,EAAKjB,EAAKiB,EAClCW,EAAGwC,EAAE,GAAG,GAAK/D,EACbuB,EAAGwC,EAAE,GAAG,GAAKpE,EACb4B,EAAGwC,EAAE,GAAG,GAAK/D,EAAKe,EAClBQ,EAAGwC,EAAE,GAAG,GAAKzC,EAAM3B,EAAKiB,EAAKjB,EAAKiB,EAClCW,EAAGwC,EAAE,GAAG,GAAK/D,EACbuB,EAAGX,EAAE,GAAG,GAAKU,EAAM3B,EAAKiB,EAAKlB,EAASC,EAAKiB,EAAKlB,EAChD6B,EAAGX,EAAE,GAAG,GAAKZ,EAAKe,EAClBQ,EAAGX,EAAE,GAAG,GAAKU,EAAM3B,EAAKiB,EAAKjB,EAAKiB,EAClCW,EAAGX,EAAE,GAAG,GAAKZ,EAAKe,EAAKrB,EACvB6B,EAAGX,EAAE,GAAG,GAAKU,EAAM3B,EAAKiB,EAAKlB,EAASC,EAAKiB,EAAKlB,EAChD6B,EAAGX,EAAE,GAAG,GAAKZ,EAAKe,EAClBQ,EAAGX,EAAE,GAAG,GAAKU,EAAM3B,EAAKiB,EAAKjB,EAAKiB,EAClCW,EAAGX,EAAE,GAAG,GAAKZ,EAAKe,EAAKrB,EACvB6B,EAAGI,EAAE,GAAG,GAAKL,EAAM3B,EAAKiB,EAAKlB,EAASC,EAAKiB,EAAKlB,EAChD6B,EAAGI,EAAE,GAAG,GAAK3B,EAAKe,EAClBQ,EAAGI,EAAE,GAAG,GAAKL,EAAM3B,EAAKiB,EAAKjB,EAAKiB,EAClCW,EAAGI,EAAE,GAAG,GAAK3B,EAAKe,EAAKrB,EACvB6B,EAAGI,EAAE,GAAG,GAAKL,EAAM3B,EAAKiB,EAAKlB,EAASC,EAAKiB,EAAKlB,EAChD6B,EAAGI,EAAE,GAAG,GAAK3B,EAAKe,EAClBQ,EAAGI,EAAE,GAAG,GAAKL,EAAM3B,EAAKiB,EAAKjB,EAAKiB,EAClCW,EAAGI,EAAE,GAAG,GAAK3B,EAAKe,EAAKrB,CAAA,GAG3BkH,gBAAgB,CAACwc,0BAA2BzjB,GACrCA,CAAA,CA3Ec,GA8EnBwE,EAAoB,WACtB,SAASzE,EAAyBA,EAAMC,GACtCY,KAAKwD,EAAImgB,UAAUxF,aACnBne,KAAKwD,EAAE6f,aAAA,EAAkB,GACzBrjB,KAAK4c,KAAOzd,EACZa,KAAK4hB,KAAOziB,EAAKyiB,KACjB5hB,KAAK4N,KAAOxO,EACZY,KAAKkiB,SAAW,EAChBliB,KAAKqO,EAAIjP,EAAKiP,EACdrO,KAAKijB,6BAA6B9jB,GAElB,IAAZC,EAAKulB,IACP3kB,KAAK4kB,GAAKtE,gBAAgBsC,QAAQzjB,EAAMC,EAAKwlB,GAAI,EAAG,EAAG5kB,MACvDA,KAAK6kB,GAAKvE,gBAAgBsC,QAAQzjB,EAAMC,EAAKylB,GAAI,EAAG,IAAM7kB,MAC1DA,KAAK8kB,cAAgB9kB,KAAK+kB,mBAE1B/kB,KAAK8kB,cAAgB9kB,KAAKglB,qBAG5BhlB,KAAKuO,GAAK+R,gBAAgBsC,QAAQzjB,EAAMC,EAAKmP,GAAI,EAAG,EAAGvO,MACvDA,KAAK6D,EAAIyc,gBAAgBsC,QAAQzjB,EAAMC,EAAKyE,EAAG,EAAG,EAAG7D,MACrDA,KAAKP,EAAI6gB,gBAAgBsC,QAAQzjB,EAAMC,EAAKK,EAAG,EAAGqK,UAAW9J,MAC7DA,KAAKilB,GAAK3E,gBAAgBsC,QAAQzjB,EAAMC,EAAK6lB,GAAI,EAAG,EAAGjlB,MACvDA,KAAKklB,GAAK5E,gBAAgBsC,QAAQzjB,EAAMC,EAAK8lB,GAAI,EAAG,IAAMllB,MAC1DA,KAAKwkB,qBAAuBP,oBAAoBE,qBAChDnkB,KAAKwkB,qBAAqBT,SAAS/jB,KAAKwD,GACxCxD,KAAKukB,MAAQvkB,KAAKwkB,qBAEdxkB,KAAK8iB,kBAAkBviB,OACzBP,KAAKwO,GAAA,GAELxO,KAAKwO,GAAA,EACLxO,KAAK8kB,gBAAA,CAyFT,OArFA3lB,EAAyBO,UAAY,CACnC+kB,MAAOhlB,EACPijB,SAAU,WACJ1iB,KAAK4c,KAAKvE,WAAW6J,UAAYliB,KAAKkiB,UAI1CliB,KAAKkiB,QAAUliB,KAAK4c,KAAKvE,WAAW6J,QACpCliB,KAAKgjB,2BAEDhjB,KAAKiiB,MACPjiB,KAAK8kB,gBAAA,EAGTC,kBAAmB,WACjB,IAaI5lB,EACAC,EACAK,EACAY,EAhBAG,EAAiC,EAAxBuI,KAAKK,MAAMpJ,KAAKuO,GAAG/K,GAC5BzC,EAAkB,EAAVgI,KAAKgB,GAASvJ,EAKtBQ,GAAA,EACAI,EAAUpB,KAAKilB,GAAGzhB,EAClB7B,EAAW3B,KAAK4kB,GAAGphB,EACnBI,EAAY5D,KAAKklB,GAAG1hB,EACpBK,EAAa7D,KAAK6kB,GAAGrhB,EACrBqL,EAAmB,EAAI9F,KAAKgB,GAAK3I,GAAoB,EAATZ,GAC5CyN,EAAoB,EAAIlF,KAAKgB,GAAKpI,GAAqB,EAATnB,GAK9C0N,GAAcnF,KAAKgB,GAAK,EAC5BmE,GAAclO,KAAKP,EAAE+D,EACrB,IAAI6K,EAAsB,IAAhBrO,KAAK4N,KAAKS,GAAW,EAAI,EAGnC,IAFArO,KAAKwD,EAAE4b,QAAU,EAEZjgB,EAAI,EAAGA,EAAIqB,EAAQrB,GAAK,EAAG,CAE9BM,EAAYuB,EAAW4C,EAAYC,EACnCxD,EAAeW,EAAW6N,EAAmBZ,EAC7C,IAAI0E,GAHJvT,EAAM4B,EAAWI,EAAUO,GAGboH,KAAK4Y,IAAIzT,GACnB8Q,EAAI5f,EAAM2J,KAAK0Y,IAAIvT,GACnB+Q,EAAW,IAANtM,GAAiB,IAANqM,EAAU,EAAIA,EAAIjW,KAAKG,KAAKyJ,EAAIA,EAAIqM,EAAIA,GACxDxb,EAAW,IAANmP,GAAiB,IAANqM,EAAU,GAAKrM,EAAI5J,KAAKG,KAAKyJ,EAAIA,EAAIqM,EAAIA,GAC7DrM,IAAM3S,KAAK6D,EAAEL,EAAE,GACfwb,IAAMhf,KAAK6D,EAAEL,EAAE,GACfxD,KAAKwD,EAAEigB,YAAY9Q,EAAGqM,EAAGrM,EAAIsM,EAAK5e,EAAeZ,EAAY4O,EAAK2Q,EAAIxb,EAAKnD,EAAeZ,EAAY4O,EAAKsE,EAAIsM,EAAK5e,EAAeZ,EAAY4O,EAAK2Q,EAAIxb,EAAKnD,EAAeZ,EAAY4O,EAAKlP,GAAA,GAM7L6B,GAAYA,EACZkN,GAAcnN,EAAQsN,CAAA,GAG1B2W,qBAAsB,WACpB,IAKI7lB,EALAC,EAAS2J,KAAKK,MAAMpJ,KAAKuO,GAAG/K,GAC5B/D,EAAkB,EAAVsJ,KAAKgB,GAAS3K,EACtBiB,EAAML,KAAKilB,GAAGzhB,EACdhD,EAAYR,KAAKklB,GAAG1hB,EACpBzC,EAAe,EAAIgI,KAAKgB,GAAK1J,GAAgB,EAATjB,GAEpC4B,EAAwB,IAAV+H,KAAKgB,GACnB3I,EAAsB,IAAhBpB,KAAK4N,KAAKS,GAAW,EAAI,EAInC,IAHArN,GAAchB,KAAKP,EAAE+D,EACrBxD,KAAKwD,EAAE4b,QAAU,EAEZjgB,EAAI,EAAGA,EAAIC,EAAQD,GAAK,EAAG,CAC9B,IAAIwC,EAAItB,EAAM0I,KAAK4Y,IAAI3gB,GACnB4C,EAAIvD,EAAM0I,KAAK0Y,IAAIzgB,GACnB6C,EAAW,IAANlC,GAAiB,IAANiC,EAAU,EAAIA,EAAImF,KAAKG,KAAKvH,EAAIA,EAAIiC,EAAIA,GACxDiL,EAAW,IAANlN,GAAiB,IAANiC,EAAU,GAAKjC,EAAIoH,KAAKG,KAAKvH,EAAIA,EAAIiC,EAAIA,GAC7DjC,IAAM3B,KAAK6D,EAAEL,EAAE,GACfI,IAAM5D,KAAK6D,EAAEL,EAAE,GACfxD,KAAKwD,EAAEigB,YAAY9hB,EAAGiC,EAAGjC,EAAIkC,EAAK9C,EAAeP,EAAYY,EAAKwC,EAAIiL,EAAK9N,EAAeP,EAAYY,EAAKO,EAAIkC,EAAK9C,EAAeP,EAAYY,EAAKwC,EAAIiL,EAAK9N,EAAeP,EAAYY,EAAKjC,GAAA,GAC7L6B,GAAcvB,EAAQ2B,CAAA,CAGxBpB,KAAKukB,MAAMhkB,OAAS,EACpBP,KAAKukB,MAAM,GAAKvkB,KAAKwD,CAAA,GAGzB6C,gBAAgB,CAACwc,0BAA2B1jB,GACrCA,CAAA,CAzHe,GA4HpB0E,EAAoB,WACtB,SAAS1E,EAAyBA,EAAMC,GACtCY,KAAKwD,EAAImgB,UAAUxF,aACnBne,KAAKwD,EAAEyK,GAAA,EACPjO,KAAKwkB,qBAAuBP,oBAAoBE,qBAChDnkB,KAAKwkB,qBAAqBT,SAAS/jB,KAAKwD,GACxCxD,KAAKukB,MAAQvkB,KAAKwkB,qBAClBxkB,KAAK4c,KAAOzd,EACZa,KAAK4hB,KAAOziB,EAAKyiB,KACjB5hB,KAAKkiB,SAAW,EAChBliB,KAAKqO,EAAIjP,EAAKiP,EACdrO,KAAKijB,6BAA6B9jB,GAClCa,KAAK6D,EAAIyc,gBAAgBsC,QAAQzjB,EAAMC,EAAKyE,EAAG,EAAG,EAAG7D,MACrDA,KAAKe,EAAIuf,gBAAgBsC,QAAQzjB,EAAMC,EAAK2B,EAAG,EAAG,EAAGf,MACrDA,KAAKP,EAAI6gB,gBAAgBsC,QAAQzjB,EAAMC,EAAKK,EAAG,EAAG,EAAGO,MAEjDA,KAAK8iB,kBAAkBviB,OACzBP,KAAKwO,GAAA,GAELxO,KAAKwO,GAAA,EACLxO,KAAKmlB,oBAAA,CA8DT,OA1DAhmB,EAAyBO,UAAY,CACnCylB,kBAAmB,WACjB,IAAIhmB,EAAKa,KAAK6D,EAAEL,EAAE,GACdpE,EAAKY,KAAK6D,EAAEL,EAAE,GACd/D,EAAKO,KAAKe,EAAEyC,EAAE,GAAK,EACnBnD,EAAKL,KAAKe,EAAEyC,EAAE,GAAK,EACnBhD,EAAQ+I,MAAM9J,EAAIY,EAAIL,KAAKP,EAAE+D,GAC7BzC,EAASP,GAAS,EAAIwJ,aAC1BhK,KAAKwD,EAAE4b,QAAU,EAEF,IAAXpf,KAAKqO,GAAsB,IAAXrO,KAAKqO,GACvBrO,KAAKwD,EAAEigB,YAAYtkB,EAAKM,EAAIL,EAAKiB,EAAKG,EAAOrB,EAAKM,EAAIL,EAAKiB,EAAKG,EAAOrB,EAAKM,EAAIL,EAAKiB,EAAKU,EAAQ,GAAG,GACrGf,KAAKwD,EAAEigB,YAAYtkB,EAAKM,EAAIL,EAAKiB,EAAKG,EAAOrB,EAAKM,EAAIL,EAAKiB,EAAKU,EAAQ5B,EAAKM,EAAIL,EAAKiB,EAAKG,EAAO,GAAG,GAEvF,IAAVA,GACFR,KAAKwD,EAAEigB,YAAYtkB,EAAKM,EAAKe,EAAOpB,EAAKiB,EAAIlB,EAAKM,EAAKe,EAAOpB,EAAKiB,EAAIlB,EAAKM,EAAKsB,EAAQ3B,EAAKiB,EAAI,GAAG,GACrGL,KAAKwD,EAAEigB,YAAYtkB,EAAKM,EAAKe,EAAOpB,EAAKiB,EAAIlB,EAAKM,EAAKsB,EAAQ3B,EAAKiB,EAAIlB,EAAKM,EAAKe,EAAOpB,EAAKiB,EAAI,GAAG,GACrGL,KAAKwD,EAAEigB,YAAYtkB,EAAKM,EAAIL,EAAKiB,EAAKG,EAAOrB,EAAKM,EAAIL,EAAKiB,EAAKG,EAAOrB,EAAKM,EAAIL,EAAKiB,EAAKU,EAAQ,GAAG,GACrGf,KAAKwD,EAAEigB,YAAYtkB,EAAKM,EAAIL,EAAKiB,EAAKG,EAAOrB,EAAKM,EAAIL,EAAKiB,EAAKU,EAAQ5B,EAAKM,EAAIL,EAAKiB,EAAKG,EAAO,GAAG,GACrGR,KAAKwD,EAAEigB,YAAYtkB,EAAKM,EAAKe,EAAOpB,EAAKiB,EAAIlB,EAAKM,EAAKe,EAAOpB,EAAKiB,EAAIlB,EAAKM,EAAKsB,EAAQ3B,EAAKiB,EAAI,GAAG,GACrGL,KAAKwD,EAAEigB,YAAYtkB,EAAKM,EAAKe,EAAOpB,EAAKiB,EAAIlB,EAAKM,EAAKsB,EAAQ3B,EAAKiB,EAAIlB,EAAKM,EAAKe,EAAOpB,EAAKiB,EAAI,GAAG,KAErGL,KAAKwD,EAAEigB,YAAYtkB,EAAKM,EAAIL,EAAKiB,EAAIlB,EAAKM,EAAKsB,EAAQ3B,EAAKiB,EAAIlB,EAAKM,EAAIL,EAAKiB,EAAI,GAClFL,KAAKwD,EAAEigB,YAAYtkB,EAAKM,EAAIL,EAAKiB,EAAIlB,EAAKM,EAAIL,EAAKiB,EAAKU,EAAQ5B,EAAKM,EAAIL,EAAKiB,EAAI,MAGpFL,KAAKwD,EAAEigB,YAAYtkB,EAAKM,EAAIL,EAAKiB,EAAKG,EAAOrB,EAAKM,EAAIL,EAAKiB,EAAKU,EAAQ5B,EAAKM,EAAIL,EAAKiB,EAAKG,EAAO,GAAG,GAEvF,IAAVA,GACFR,KAAKwD,EAAEigB,YAAYtkB,EAAKM,EAAKe,EAAOpB,EAAKiB,EAAIlB,EAAKM,EAAKe,EAAOpB,EAAKiB,EAAIlB,EAAKM,EAAKsB,EAAQ3B,EAAKiB,EAAI,GAAG,GACrGL,KAAKwD,EAAEigB,YAAYtkB,EAAKM,EAAKe,EAAOpB,EAAKiB,EAAIlB,EAAKM,EAAKsB,EAAQ3B,EAAKiB,EAAIlB,EAAKM,EAAKe,EAAOpB,EAAKiB,EAAI,GAAG,GACrGL,KAAKwD,EAAEigB,YAAYtkB,EAAKM,EAAIL,EAAKiB,EAAKG,EAAOrB,EAAKM,EAAIL,EAAKiB,EAAKG,EAAOrB,EAAKM,EAAIL,EAAKiB,EAAKU,EAAQ,GAAG,GACrGf,KAAKwD,EAAEigB,YAAYtkB,EAAKM,EAAIL,EAAKiB,EAAKG,EAAOrB,EAAKM,EAAIL,EAAKiB,EAAKU,EAAQ5B,EAAKM,EAAIL,EAAKiB,EAAKG,EAAO,GAAG,GACrGR,KAAKwD,EAAEigB,YAAYtkB,EAAKM,EAAKe,EAAOpB,EAAKiB,EAAIlB,EAAKM,EAAKe,EAAOpB,EAAKiB,EAAIlB,EAAKM,EAAKsB,EAAQ3B,EAAKiB,EAAI,GAAG,GACrGL,KAAKwD,EAAEigB,YAAYtkB,EAAKM,EAAKe,EAAOpB,EAAKiB,EAAIlB,EAAKM,EAAKsB,EAAQ3B,EAAKiB,EAAIlB,EAAKM,EAAKe,EAAOpB,EAAKiB,EAAI,GAAG,GACrGL,KAAKwD,EAAEigB,YAAYtkB,EAAKM,EAAIL,EAAKiB,EAAKG,EAAOrB,EAAKM,EAAIL,EAAKiB,EAAKG,EAAOrB,EAAKM,EAAIL,EAAKiB,EAAKU,EAAQ,GAAG,KAErGf,KAAKwD,EAAEigB,YAAYtkB,EAAKM,EAAIL,EAAKiB,EAAIlB,EAAKM,EAAKsB,EAAQ3B,EAAKiB,EAAIlB,EAAKM,EAAIL,EAAKiB,EAAI,GAAG,GACrFL,KAAKwD,EAAEigB,YAAYtkB,EAAKM,EAAIL,EAAKiB,EAAIlB,EAAKM,EAAIL,EAAKiB,EAAKU,EAAQ5B,EAAKM,EAAIL,EAAKiB,EAAI,GAAG,GACrFL,KAAKwD,EAAEigB,YAAYtkB,EAAKM,EAAIL,EAAKiB,EAAIlB,EAAKM,EAAKsB,EAAQ3B,EAAKiB,EAAIlB,EAAKM,EAAIL,EAAKiB,EAAI,GAAG,MAI3FqiB,SAAU,WACJ1iB,KAAK4c,KAAKvE,WAAW6J,UAAYliB,KAAKkiB,UAI1CliB,KAAKkiB,QAAUliB,KAAK4c,KAAKvE,WAAW6J,QACpCliB,KAAKgjB,2BAEDhjB,KAAKiiB,MACPjiB,KAAKmlB,oBAAA,EAGTV,MAAOhlB,GAET4G,gBAAgB,CAACwc,0BAA2B1jB,GACrCA,CAAA,CAlFe,GAwHpB0P,EAAK,CACTuW,aApCA,SAAsBjmB,EAAMC,EAAMK,GAChC,IAAIY,EAuBJ,OArBa,IAATZ,GAAuB,IAATA,EAKdY,GAJsB,IAATZ,EAAaL,EAAKmP,GAAKnP,EAAK+P,IACvBX,EAEXjO,OACA,IAAIa,EAAuBjC,EAAMC,EAAMK,GAEvC,IAAIsB,EAAc5B,EAAMC,EAAMK,GAErB,IAATA,EACTY,EAAO,IAAIwD,EAAkB1E,EAAMC,GACjB,IAATK,EACTY,EAAO,IAAIsB,EAAiBxC,EAAMC,GAChB,IAATK,IACTY,EAAO,IAAIuD,EAAkBzE,EAAMC,IAGjCiB,EAAKmO,GACPrP,EAAKqjB,mBAAmBniB,GAGnBA,CAAA,EAaTglB,uBAVA,WACE,OAAOtkB,CAAA,EAUTukB,gCAPA,WACE,OAAOlkB,CAAA,GAOT,OAAOyN,CAAA,CAxjBkB,GAwlBvB0W,OAAS,WACX,IAAIpmB,EAAO4J,KAAK4Y,IACZviB,EAAO2J,KAAK0Y,IACZhiB,EAAOsJ,KAAKyc,IACZnlB,EAAO0I,KAAKoB,MAEhB,SAAS3J,IAiBP,OAhBAR,KAAKylB,MAAM,GAAK,EAChBzlB,KAAKylB,MAAM,GAAK,EAChBzlB,KAAKylB,MAAM,GAAK,EAChBzlB,KAAKylB,MAAM,GAAK,EAChBzlB,KAAKylB,MAAM,GAAK,EAChBzlB,KAAKylB,MAAM,GAAK,EAChBzlB,KAAKylB,MAAM,GAAK,EAChBzlB,KAAKylB,MAAM,GAAK,EAChBzlB,KAAKylB,MAAM,GAAK,EAChBzlB,KAAKylB,MAAM,GAAK,EAChBzlB,KAAKylB,MAAM,IAAM,EACjBzlB,KAAKylB,MAAM,IAAM,EACjBzlB,KAAKylB,MAAM,IAAM,EACjBzlB,KAAKylB,MAAM,IAAM,EACjBzlB,KAAKylB,MAAM,IAAM,EACjBzlB,KAAKylB,MAAM,IAAM,EACVzlB,IAAA,CAGT,SAASe,EAAOtB,GACd,GAAc,IAAVA,EACF,OAAOO,KAGT,IAAIK,EAAOlB,EAAKM,GAEZe,EAAOpB,EAAKK,GAEhB,OAAOO,KAAK0lB,GAAGrlB,GAAOG,EAAM,EAAG,EAAGA,EAAMH,EAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAG3E,SAASW,EAAQvB,GACf,GAAc,IAAVA,EACF,OAAOO,KAGT,IAAIK,EAAOlB,EAAKM,GAEZe,EAAOpB,EAAKK,GAEhB,OAAOO,KAAK0lB,GAAG,EAAG,EAAG,EAAG,EAAG,EAAGrlB,GAAOG,EAAM,EAAG,EAAGA,EAAMH,EAAM,EAAG,EAAG,EAAG,EAAG,GAG3E,SAASe,EAAQ3B,GACf,GAAc,IAAVA,EACF,OAAOO,KAGT,IAAIK,EAAOlB,EAAKM,GAEZe,EAAOpB,EAAKK,GAEhB,OAAOO,KAAK0lB,GAAGrlB,EAAM,EAAGG,EAAM,EAAG,EAAG,EAAG,EAAG,GAAIA,EAAM,EAAGH,EAAM,EAAG,EAAG,EAAG,EAAG,GAG3E,SAASsB,EAAQlC,GACf,GAAc,IAAVA,EACF,OAAOO,KAGT,IAAIK,EAAOlB,EAAKM,GAEZe,EAAOpB,EAAKK,GAEhB,OAAOO,KAAK0lB,GAAGrlB,GAAOG,EAAM,EAAG,EAAGA,EAAMH,EAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAG3E,SAASuD,EAAMzE,EAAIC,GACjB,OAAOY,KAAK0lB,GAAG,EAAGtmB,EAAID,EAAI,EAAG,EAAG,GAGlC,SAAS0E,EAAK1E,EAAIC,GAChB,OAAOY,KAAK2lB,MAAMlmB,EAAKN,GAAKM,EAAKL,GAAA,CAGnC,SAASyP,EAAaxO,EAAIG,GACxB,IAAIO,EAAO5B,EAAKqB,GAEZQ,EAAO5B,EAAKoB,GAEhB,OAAOR,KAAK0lB,GAAG3kB,EAAMC,EAAM,EAAG,GAAIA,EAAMD,EAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAG2kB,GAAG,EAAG,EAAG,EAAG,EAAGjmB,EAAKY,GAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAGqlB,GAAG3kB,GAAOC,EAAM,EAAG,EAAGA,EAAMD,EAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGrM,SAASkN,EAAM9O,EAAIC,EAAIK,GAKrB,OAJKA,GAAa,IAAPA,IACTA,EAAK,GAGI,IAAPN,GAAmB,IAAPC,GAAmB,IAAPK,EACnBO,KAGFA,KAAK0lB,GAAGvmB,EAAI,EAAG,EAAG,EAAG,EAAGC,EAAI,EAAG,EAAG,EAAG,EAAGK,EAAI,EAAG,EAAG,EAAG,EAAG,GAGjE,SAASyO,EAAa/O,EAAGC,EAAGK,EAAGY,EAAGG,EAAGO,EAAGC,EAAGI,EAAGO,EAAGiC,EAAGC,EAAGgL,EAAGZ,EAAGC,EAAGG,EAAGsE,GAiBjE,OAhBA3S,KAAKylB,MAAM,GAAKtmB,EAChBa,KAAKylB,MAAM,GAAKrmB,EAChBY,KAAKylB,MAAM,GAAKhmB,EAChBO,KAAKylB,MAAM,GAAKplB,EAChBL,KAAKylB,MAAM,GAAKjlB,EAChBR,KAAKylB,MAAM,GAAK1kB,EAChBf,KAAKylB,MAAM,GAAKzkB,EAChBhB,KAAKylB,MAAM,GAAKrkB,EAChBpB,KAAKylB,MAAM,GAAK9jB,EAChB3B,KAAKylB,MAAM,GAAK7hB,EAChB5D,KAAKylB,MAAM,IAAM5hB,EACjB7D,KAAKylB,MAAM,IAAM5W,EACjB7O,KAAKylB,MAAM,IAAMxX,EACjBjO,KAAKylB,MAAM,IAAMvX,EACjBlO,KAAKylB,MAAM,IAAMpX,EACjBrO,KAAKylB,MAAM,IAAM9S,EACV3S,IAAA,CAGT,SAASqO,EAAUlP,EAAIC,EAAIK,GAGzB,OAFAA,EAAKA,GAAM,EAEA,IAAPN,GAAmB,IAAPC,GAAmB,IAAPK,EACnBO,KAAK0lB,GAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAGvmB,EAAIC,EAAIK,EAAI,GAG1DO,IAAA,CAGT,SAAS2S,EAAUxT,EAAIC,EAAIK,EAAIY,EAAIG,EAAIO,EAAIC,EAAII,EAAIO,EAAIiC,EAAIC,EAAIgL,EAAIZ,EAAIC,EAAIG,EAAIsE,GAC7E,IAAIqM,EAAKhf,KAAKylB,MAEd,GAAW,IAAPtmB,GAAmB,IAAPC,GAAmB,IAAPK,GAAmB,IAAPY,GAAmB,IAAPG,GAAmB,IAAPO,GAAmB,IAAPC,GAAmB,IAAPI,GAAmB,IAAPO,GAAmB,IAAPiC,GAAmB,IAAPC,GAAmB,IAAPgL,EAStI,OANAmQ,EAAG,IAAMA,EAAG,IAAM7f,EAAK6f,EAAG,IAAM/Q,EAChC+Q,EAAG,IAAMA,EAAG,IAAMje,EAAKie,EAAG,IAAM9Q,EAChC8Q,EAAG,IAAMA,EAAG,IAAMnb,EAAKmb,EAAG,IAAM3Q,EAChC2Q,EAAG,KAAOrM,EAEV3S,KAAK4lB,qBAAA,EACE5lB,KAGT,IAAIif,EAAKD,EAAG,GACRxb,EAAKwb,EAAG,GACRE,EAAKF,EAAG,GACRM,EAAKN,EAAG,GACRO,EAAKP,EAAG,GACRQ,EAAKR,EAAG,GACRS,EAAKT,EAAG,GACRU,EAAKV,EAAG,GACRW,EAAKX,EAAG,GACRY,EAAKZ,EAAG,GACRxQ,EAAKwQ,EAAG,IACRa,EAAKb,EAAG,IACRc,EAAKd,EAAG,IACRe,EAAKf,EAAG,IACRgB,EAAKhB,EAAG,IACR6G,EAAK7G,EAAG,IAwBZ,OAjBAA,EAAG,GAAKC,EAAK9f,EAAKqE,EAAKhD,EAAK0e,EAAKvd,EAAK2d,EAAKrR,EAC3C+Q,EAAG,GAAKC,EAAK7f,EAAKoE,EAAKzC,EAAKme,EAAKtb,EAAK0b,EAAKpR,EAC3C8Q,EAAG,GAAKC,EAAKxf,EAAK+D,EAAKxC,EAAKke,EAAKrb,EAAKyb,EAAKjR,EAC3C2Q,EAAG,GAAKC,EAAK5e,EAAKmD,EAAKpC,EAAK8d,EAAKrQ,EAAKyQ,EAAK3M,EAC3CqM,EAAG,GAAKO,EAAKpgB,EAAKqgB,EAAKhf,EAAKif,EAAK9d,EAAK+d,EAAKzR,EAC3C+Q,EAAG,GAAKO,EAAKngB,EAAKogB,EAAKze,EAAK0e,EAAK7b,EAAK8b,EAAKxR,EAC3C8Q,EAAG,GAAKO,EAAK9f,EAAK+f,EAAKxe,EAAKye,EAAK5b,EAAK6b,EAAKrR,EAC3C2Q,EAAG,GAAKO,EAAKlf,EAAKmf,EAAKpe,EAAKqe,EAAK5Q,EAAK6Q,EAAK/M,EAC3CqM,EAAG,GAAKW,EAAKxgB,EAAKygB,EAAKpf,EAAKgO,EAAK7M,EAAKke,EAAK5R,EAC3C+Q,EAAG,GAAKW,EAAKvgB,EAAKwgB,EAAK7e,EAAKyN,EAAK5K,EAAKic,EAAK3R,EAC3C8Q,EAAG,IAAMW,EAAKlgB,EAAKmgB,EAAK5e,EAAKwN,EAAK3K,EAAKgc,EAAKxR,EAC5C2Q,EAAG,IAAMW,EAAKtf,EAAKuf,EAAKxe,EAAKoN,EAAKK,EAAKgR,EAAKlN,EAC5CqM,EAAG,IAAMc,EAAK3gB,EAAK4gB,EAAKvf,EAAKwf,EAAKre,EAAKkkB,EAAK5X,EAC5C+Q,EAAG,IAAMc,EAAK1gB,EAAK2gB,EAAKhf,EAAKif,EAAKpc,EAAKiiB,EAAK3X,EAC5C8Q,EAAG,IAAMc,EAAKrgB,EAAKsgB,EAAK/e,EAAKgf,EAAKnc,EAAKgiB,EAAKxX,EAC5C2Q,EAAG,IAAMc,EAAKzf,EAAK0f,EAAK3e,EAAK4e,EAAKnR,EAAKgX,EAAKlT,EAC5C3S,KAAK4lB,qBAAA,EACE5lB,IAAA,CAGT,SAASgf,IAMP,OALKhf,KAAK4lB,sBACR5lB,KAAK8lB,YAAgC,IAAlB9lB,KAAKylB,MAAM,IAA8B,IAAlBzlB,KAAKylB,MAAM,IAA8B,IAAlBzlB,KAAKylB,MAAM,IAA8B,IAAlBzlB,KAAKylB,MAAM,IAA8B,IAAlBzlB,KAAKylB,MAAM,IAA8B,IAAlBzlB,KAAKylB,MAAM,IAA8B,IAAlBzlB,KAAKylB,MAAM,IAA8B,IAAlBzlB,KAAKylB,MAAM,IAA8B,IAAlBzlB,KAAKylB,MAAM,IAA8B,IAAlBzlB,KAAKylB,MAAM,IAA+B,IAAnBzlB,KAAKylB,MAAM,KAAgC,IAAnBzlB,KAAKylB,MAAM,KAAgC,IAAnBzlB,KAAKylB,MAAM,KAAgC,IAAnBzlB,KAAKylB,MAAM,KAAgC,IAAnBzlB,KAAKylB,MAAM,KAAgC,IAAnBzlB,KAAKylB,MAAM,KAC5XzlB,KAAK4lB,qBAAA,GAGA5lB,KAAK8lB,SAAA,CAGd,SAAS7G,EAAO9f,GAGd,IAFA,IAAIC,EAAI,EAEDA,EAAI,IAAI,CACb,GAAID,EAAKsmB,MAAMrmB,KAAOY,KAAKylB,MAAMrmB,GAC/B,OAAO,EAGTA,GAAK,EAGP,OAAO,EAGT,SAASoE,EAAMrE,GACb,IAAIC,EAEJ,IAAKA,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvBD,EAAKsmB,MAAMrmB,GAAKY,KAAKylB,MAAMrmB,GAG7B,OAAOD,CAAA,CAGT,SAAS+f,EAAe/f,GACtB,IAAIC,EAEJ,IAAKA,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvBY,KAAKylB,MAAMrmB,GAAKD,EAAMC,EAAA,CAI1B,SAASkgB,EAAangB,EAAGC,EAAGK,GAC1B,MAAO,CACL6f,EAAGngB,EAAIa,KAAKylB,MAAM,GAAKrmB,EAAIY,KAAKylB,MAAM,GAAKhmB,EAAIO,KAAKylB,MAAM,GAAKzlB,KAAKylB,MAAM,IAC1EzG,EAAG7f,EAAIa,KAAKylB,MAAM,GAAKrmB,EAAIY,KAAKylB,MAAM,GAAKhmB,EAAIO,KAAKylB,MAAM,GAAKzlB,KAAKylB,MAAM,IAC1EM,EAAG5mB,EAAIa,KAAKylB,MAAM,GAAKrmB,EAAIY,KAAKylB,MAAM,GAAKhmB,EAAIO,KAAKylB,MAAM,IAAMzlB,KAAKylB,MAAM,KAQ/E,SAASlG,EAASpgB,EAAGC,EAAGK,GACtB,OAAON,EAAIa,KAAKylB,MAAM,GAAKrmB,EAAIY,KAAKylB,MAAM,GAAKhmB,EAAIO,KAAKylB,MAAM,GAAKzlB,KAAKylB,MAAM,IAGhF,SAASjG,EAASrgB,EAAGC,EAAGK,GACtB,OAAON,EAAIa,KAAKylB,MAAM,GAAKrmB,EAAIY,KAAKylB,MAAM,GAAKhmB,EAAIO,KAAKylB,MAAM,GAAKzlB,KAAKylB,MAAM,IAGhF,SAAShG,EAAStgB,EAAGC,EAAGK,GACtB,OAAON,EAAIa,KAAKylB,MAAM,GAAKrmB,EAAIY,KAAKylB,MAAM,GAAKhmB,EAAIO,KAAKylB,MAAM,IAAMzlB,KAAKylB,MAAM,IAGjF,SAAS/F,IACP,IAAIvgB,EAAca,KAAKylB,MAAM,GAAKzlB,KAAKylB,MAAM,GAAKzlB,KAAKylB,MAAM,GAAKzlB,KAAKylB,MAAM,GACzErmB,EAAIY,KAAKylB,MAAM,GAAKtmB,EACpBM,GAAKO,KAAKylB,MAAM,GAAKtmB,EACrBkB,GAAKL,KAAKylB,MAAM,GAAKtmB,EACrBqB,EAAIR,KAAKylB,MAAM,GAAKtmB,EACpB4B,GAAKf,KAAKylB,MAAM,GAAKzlB,KAAKylB,MAAM,IAAMzlB,KAAKylB,MAAM,GAAKzlB,KAAKylB,MAAM,KAAOtmB,EACxE6B,IAAMhB,KAAKylB,MAAM,GAAKzlB,KAAKylB,MAAM,IAAMzlB,KAAKylB,MAAM,GAAKzlB,KAAKylB,MAAM,KAAOtmB,EACzEiC,EAAgB,IAAImkB,OAOxB,OANAnkB,EAAcqkB,MAAM,GAAKrmB,EACzBgC,EAAcqkB,MAAM,GAAKhmB,EACzB2B,EAAcqkB,MAAM,GAAKplB,EACzBe,EAAcqkB,MAAM,GAAKjlB,EACzBY,EAAcqkB,MAAM,IAAM1kB,EAC1BK,EAAcqkB,MAAM,IAAMzkB,EACnBI,CAAA,CAGT,SAASue,EAAaxgB,GAEpB,OADoBa,KAAKgmB,mBACJC,kBAAkB9mB,EAAG,GAAIA,EAAG,GAAIA,EAAG,IAAM,GAGhE,SAASygB,EAAczgB,GACrB,IAAIC,EACAK,EAAMN,EAAIoB,OACVF,EAAS,GAEb,IAAKjB,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EACxBiB,EAAOjB,GAAKugB,EAAaxgB,EAAIC,IAG/B,OAAOiB,CAAA,CAGT,SAASmO,EAAoBrP,EAAKC,EAAKK,GACrC,IAAIY,EAAM2H,iBAAiB,UAAW,GAEtC,GAAIhI,KAAKkmB,aACP7lB,EAAI,GAAKlB,EAAI,GACbkB,EAAI,GAAKlB,EAAI,GACbkB,EAAI,GAAKjB,EAAI,GACbiB,EAAI,GAAKjB,EAAI,GACbiB,EAAI,GAAKZ,EAAI,GACbY,EAAI,GAAKZ,EAAI,OACR,CACL,IAAIe,EAAKR,KAAKylB,MAAM,GAChB1kB,EAAKf,KAAKylB,MAAM,GAChBzkB,EAAKhB,KAAKylB,MAAM,GAChBrkB,EAAKpB,KAAKylB,MAAM,GAChB9jB,EAAM3B,KAAKylB,MAAM,IACjB7hB,EAAM5D,KAAKylB,MAAM,IACrBplB,EAAI,GAAKlB,EAAI,GAAKqB,EAAKrB,EAAI,GAAK6B,EAAKW,EACrCtB,EAAI,GAAKlB,EAAI,GAAK4B,EAAK5B,EAAI,GAAKiC,EAAKwC,EACrCvD,EAAI,GAAKjB,EAAI,GAAKoB,EAAKpB,EAAI,GAAK4B,EAAKW,EACrCtB,EAAI,GAAKjB,EAAI,GAAK2B,EAAK3B,EAAI,GAAKgC,EAAKwC,EACrCvD,EAAI,GAAKZ,EAAI,GAAKe,EAAKf,EAAI,GAAKuB,EAAKW,EACrCtB,EAAI,GAAKZ,EAAI,GAAKsB,EAAKtB,EAAI,GAAK2B,EAAKwC,CAAA,CAGvC,OAAOvD,CAAA,CAGT,SAASwf,EAAkB1gB,EAAGC,EAAGK,GAS/B,OANIO,KAAKkmB,aACD,CAAC/mB,EAAGC,EAAGK,GAEP,CAACN,EAAIa,KAAKylB,MAAM,GAAKrmB,EAAIY,KAAKylB,MAAM,GAAKhmB,EAAIO,KAAKylB,MAAM,GAAKzlB,KAAKylB,MAAM,IAAKtmB,EAAIa,KAAKylB,MAAM,GAAKrmB,EAAIY,KAAKylB,MAAM,GAAKhmB,EAAIO,KAAKylB,MAAM,GAAKzlB,KAAKylB,MAAM,IAAKtmB,EAAIa,KAAKylB,MAAM,GAAKrmB,EAAIY,KAAKylB,MAAM,GAAKhmB,EAAIO,KAAKylB,MAAM,IAAMzlB,KAAKylB,MAAM,KAM3O,SAAS3F,EAAwB3gB,EAAGC,GAClC,GAAIY,KAAKkmB,aACP,OAAO/mB,EAAI,IAAMC,EAGnB,IAAIK,EAAKO,KAAKylB,MACd,OAAO1c,KAAKoB,MAAyC,KAAlChL,EAAIM,EAAG,GAAKL,EAAIK,EAAG,GAAKA,EAAG,MAAc,IAAM,IAAMsJ,KAAKoB,MAAyC,KAAlChL,EAAIM,EAAG,GAAKL,EAAIK,EAAG,GAAKA,EAAG,MAAc,IAG/H,SAASsgB,IAWP,IALA,IAAI5gB,EAAI,EACJC,EAAQY,KAAKylB,MACbhmB,EAAW,YAGRN,EAAI,IACTM,GAAYY,EAHN,IAGWjB,EAAMD,IAHjB,IAINM,GAAkB,KAANN,EAAW,IAAM,IAC7BA,GAAK,EAGP,OAAOM,CAAA,CAGT,SAASugB,EAAoB7gB,GAG3B,OAAIA,EAAM,MAAYA,EAAM,GAAKA,GAAO,MAAYA,EAAM,EACjDkB,EAHD,IAGMlB,GAHN,IAMDA,CAAA,CAGT,SAAS0mB,IAMP,IAAI1mB,EAAQa,KAAKylB,MAcjB,MAAO,UAZEzF,EAAoB7gB,EAAM,IAYX,IAVf6gB,EAAoB7gB,EAAM,IAUA,IAR1B6gB,EAAoB7gB,EAAM,IAQW,IANrC6gB,EAAoB7gB,EAAM,IAMsB,IAJhD6gB,EAAoB7gB,EAAM,KAIiC,IAF3D6gB,EAAoB7gB,EAAM,KAE4C,IAGjF,OAAO,WACLa,KAAKykB,MAAQjkB,EACbR,KAAKmmB,OAASplB,EACdf,KAAKomB,QAAUplB,EACfhB,KAAKqmB,QAAUjlB,EACfpB,KAAKsmB,QAAU3kB,EACf3B,KAAKumB,KAAO1iB,EACZ7D,KAAKwmB,aAAe3X,EACpB7O,KAAK2lB,MAAQ/hB,EACb5D,KAAKymB,MAAQxY,EACbjO,KAAK0mB,aAAexY,EACpBlO,KAAK2mB,UAAYtY,EACjBrO,KAAK4mB,UAAYjU,EACjB3S,KAAK6mB,aAAevH,EACpBtf,KAAK8mB,SAAWvH,EAChBvf,KAAK+mB,SAAWvH,EAChBxf,KAAKgnB,SAAWvH,EAChBzf,KAAKimB,kBAAoBpG,EACzB7f,KAAKinB,oBAAsBzY,EAC3BxO,KAAKknB,wBAA0BpH,EAC/B9f,KAAKmnB,MAAQpH,EACb/f,KAAKonB,QAAUvB,EACf7lB,KAAK6jB,MAAQrgB,EACbxD,KAAKqnB,eAAiBnI,EACtBlf,KAAKsnB,OAASrI,EACdjf,KAAKunB,cAAgB3H,EACrB5f,KAAKwnB,aAAe7H,EACpB3f,KAAKgmB,iBAAmBtG,EACxB1f,KAAK0lB,GAAK1lB,KAAK4mB,UACf5mB,KAAKkmB,WAAalH,EAClBhf,KAAK8lB,WAAA,EACL9lB,KAAK4lB,qBAAA,EACL5lB,KAAKylB,MAAQzd,iBAAiB,UAAW,IACzChI,KAAKykB,OAAA,EAxaI,GA4ab,SAASgD,UAAUtoB,GAAuV,OAA1OsoB,UAArD,mBAAXllB,QAAoD,iBAApBA,OAAOC,SAAqC,SAAiBrD,GAAO,cAAcA,CAAA,EAA6B,SAAiBA,GAAO,OAAOA,GAAyB,mBAAXoD,QAAyBpD,EAAIc,cAAgBsC,QAAUpD,IAAQoD,OAAO7C,UAAY,gBAAkBP,CAAA,GAA2BA,EAAA,CAC3X,IAAIoG,OAAS,CAAC,EACVmiB,WAAa,mBACb9Q,cAAgB,sBAChBI,SAAW,GAEf,SAAS2Q,YAAYxoB,GACnB6G,gBAAgB7G,EAAA,CAGlB,SAAS4d,oBAAA,IACH2K,WACF/K,iBAAiBI,iBAAiBnG,cAAe8Q,WAAY1Q,UAE7D2F,iBAAiBI,kBAAA,CAIrB,SAAS6K,qBAAqBzoB,GAC5ByN,mBAAmBzN,EAAA,CAGrB,SAAS0oB,UAAU1oB,GACjBiO,YAAYjO,EAAA,CAGd,SAASuS,cAAcvS,GAKrB,OAAO,IAJHuoB,aACFvoB,EAAOyX,cAAgB5H,KAAKC,MAAM2H,gBAG7B+F,iBAAiBjL,cAAcvS,EAAA,CAGxC,SAAS2oB,WAAW3oB,GAClB,GAAqB,iBAAVA,EACT,OAAQA,GACN,IAAK,OACH+N,wBAAwB,KACxB,MAEF,QACA,IAAK,SACHA,wBAAwB,IACxB,MAEF,IAAK,MACHA,wBAAwB,SAGlBiO,MAAMhc,IAAUA,EAAQ,GAClC+N,wBAAwB/N,GAGtBgO,2BAA6B,GAC/BlD,aAAA,GAEAA,aAAA,EAAY,CAIhB,SAAS8d,YACP,MAA4B,oBAAdtiB,SAAA,CAGhB,SAASuiB,cAAc7oB,EAAMC,GACd,gBAATD,GACF2N,qBAAqB1N,EAAA,CAIzB,SAAS6oB,WAAW9oB,GAClB,OAAQA,GACN,IAAK,kBACH,OAAOmhB,gBAET,IAAK,uBACH,OAAO+D,qBAET,IAAK,SACH,OAAOkB,OAET,QACE,OAAO,MAiCb,SAAS2C,aACqB,aAAxB/hB,SAAS4K,aACXgC,cAAcoV,yBACdpL,mBAAA,CAIJ,SAASqL,iBAAiBjpB,GAGxB,IAFA,IAAIC,EAAOipB,YAAYhZ,MAAM,KAEpB5P,EAAI,EAAGA,EAAIL,EAAKmB,OAAQd,GAAK,EAAG,CACvC,IAAIY,EAAOjB,EAAKK,GAAG4P,MAAM,KAEzB,GAAIiZ,mBAAmBjoB,EAAK,KAAOlB,EAEjC,OAAOmpB,mBAAmBjoB,EAAK,IAInC,OAAO,KAhDTkF,OAAO8B,KAAOsV,iBAAiBtV,KAC/B9B,OAAOuB,MAAQ6V,iBAAiB7V,MAChCvB,OAAOS,gBAAkB2hB,YACzBpiB,OAAOsV,YAAc8B,iBAAiB9B,YACtCtV,OAAOmW,SAAWiB,iBAAiBjB,SACnCnW,OAAOoW,aAAegB,iBAAiBhB,aACvCpW,OAAOuV,KAAO6B,iBAAiB7B,KAC/BvV,OAAOwX,iBAAmBA,iBAC1BxX,OAAOuX,kBAAoBH,iBAAiBG,kBAC5CvX,OAAOmM,cAAgBA,cACvBnM,OAAOqiB,qBAAuBA,qBAC9BriB,OAAOiV,OAASmC,iBAAiBnC,OAEjCjV,OAAO0V,YAAc0B,iBAAiB1B,YACtC1V,OAAOuO,QAAU6I,iBAAiB7I,QAClCvO,OAAOuiB,WAAaA,WACpBviB,OAAOwiB,UAAYA,UACnBxiB,OAAOyiB,cAAgBA,cACvBziB,OAAO6X,OAAST,iBAAiBS,OACjC7X,OAAO8X,SAAWV,iBAAiBU,SACnC9X,OAAOkC,UAAYkV,iBAAiBlV,UACpClC,OAAOqC,KAAO+U,iBAAiB/U,KAC/BrC,OAAOsC,OAAS8U,iBAAiB9U,OACjCtC,OAAO+X,wBAA0BX,iBAAiBW,wBAClD/X,OAAOgjB,aAAeziB,aACtBP,OAAOijB,YAAcX,UACrBtiB,OAAOkjB,aAAeR,WACtB1iB,OAAOmjB,QAAU,SAwBjB,IAAIL,YAAc,GAElB,GAAIX,WAAY,CACd,IAAIiB,QAAUxiB,SAAS+W,qBAAqB,UACxC0L,MAAQD,QAAQpoB,OAAS,EACzBsoB,SAAWF,QAAQC,QAAU,CAC/BzhB,IAAK,IAEPkhB,YAAcQ,SAAS1hB,IAAM0hB,SAAS1hB,IAAIsW,QAAQ,aAAc,IAAM,GAEtEzG,SAAWoR,iBAAiB,YAG9B,IAAID,wBAA0BvV,YAAYsV,WAAY,KAEtD,IACgF,WAAxBT,UAAUtiB,WAE9DL,OAAOgkB,UAAYvjB,OAAA,CAErB,MAAOpG,GAAA,CAGT,IAAI4pB,eAAiB,WACnB,IAAI5pB,EAAK,CAAC,EACNC,EAAY,CAAC,EAcjB,OAbAD,EAAG6pB,iBAGH,SAA0B7pB,EAAIM,GACvBL,EAAUD,KACbC,EAAUD,GAAMM,EAAA,EAJpBN,EAAG8pB,YAQH,SAAqB9pB,EAAIM,EAAMY,GAC7B,OAAO,IAAIjB,EAAUD,GAAIM,EAAMY,EAAA,EAG1BlB,CAAA,CAhBY,GAmBrB,SAAS+pB,gBAAA,CAmDT,SAASC,eAAA,CAgZT,SAASC,yBAAA,CAjcTF,cAAcxpB,UAAU2pB,uBAAyB,WAAa,EAE9DH,cAAcxpB,UAAU4pB,mBAAqB,WAAa,EAE1DJ,cAAcxpB,UAAUqkB,SAAW,SAAU5kB,GAC3C,IAAKa,KAAK8P,OAAQ,CAEhB3Q,EAAKkiB,GAAGnJ,UAAUsK,mBAAmBrjB,EAAKkiB,IAC1C,IAAIjiB,EAAY,CACdmqB,MAAOpqB,EAAKkiB,GACZzT,KAAMzO,EACNqlB,qBAAsBP,oBAAoBE,sBAE5CnkB,KAAK4O,OAAOlM,KAAKtD,GACjBY,KAAKspB,mBAAmBlqB,GAEpBY,KAAK+iB,aACP5jB,EAAKqqB,eAAA,GAKXN,cAAcxpB,UAAU+pB,KAAO,SAAUtqB,EAAMC,GAC7CY,KAAK4O,OAAS,GACd5O,KAAK4c,KAAOzd,EACZa,KAAKijB,6BAA6B9jB,GAClCa,KAAKqpB,uBAAuBlqB,EAAMC,GAClCY,KAAKkiB,QAAUrc,oBACf7F,KAAK8P,QAAA,EACL9P,KAAKwO,GAAA,EAEDxO,KAAK8iB,kBAAkBviB,OACzBP,KAAKwO,GAAA,EAELxO,KAAK0iB,UAAA,EAAS,EAIlBwG,cAAcxpB,UAAUgqB,YAAc,WAChC1pB,KAAK4c,KAAKvE,WAAW6J,UAAYliB,KAAKkiB,UAI1CliB,KAAKkiB,QAAUliB,KAAK4c,KAAKvE,WAAW6J,QACpCliB,KAAKgjB,2BAAA,EAGP3c,gBAAgB,CAACwc,0BAA2BqG,eAI5C7iB,gBAAgB,CAAC6iB,eAAgBC,cAEjCA,aAAazpB,UAAU2pB,uBAAyB,SAAUlqB,EAAMC,GAC9DY,KAAKe,EAAIuf,gBAAgBsC,QAAQzjB,EAAMC,EAAK2B,EAAG,EAAG,IAAMf,MACxDA,KAAKZ,EAAIkhB,gBAAgBsC,QAAQzjB,EAAMC,EAAKA,EAAG,EAAG,IAAMY,MACxDA,KAAKoB,EAAIkf,gBAAgBsC,QAAQzjB,EAAMC,EAAKgC,EAAG,EAAG,EAAGpB,MACrDA,KAAK2pB,OAAS,EACd3pB,KAAK4pB,OAAS,EACd5pB,KAAK0iB,SAAW1iB,KAAK0pB,YACrB1pB,KAAKkO,EAAI9O,EAAK8O,EACdlO,KAAK+iB,cAAgB/iB,KAAKe,EAAEohB,gBAAgB5hB,UAAYP,KAAKZ,EAAE+iB,gBAAgB5hB,UAAYP,KAAKoB,EAAE+gB,gBAAgB5hB,MAAA,EAGpH4oB,aAAazpB,UAAU4pB,mBAAqB,SAAUnqB,GACpDA,EAAU0qB,UAAY,IAGxBV,aAAazpB,UAAUoqB,oBAAsB,SAAU3qB,EAAGC,EAAGK,EAAaY,EAAaG,GACrF,IAAIO,EAAW,GAEX3B,GAAK,EACP2B,EAAS2B,KAAK,CACZ3B,EAAG5B,EACHC,EAAGA,IAEID,GAAK,EACd4B,EAAS2B,KAAK,CACZ3B,EAAG5B,EAAI,EACPC,EAAGA,EAAI,KAGT2B,EAAS2B,KAAK,CACZ3B,EAAG5B,EACHC,EAAG,IAEL2B,EAAS2B,KAAK,CACZ3B,EAAG,EACH3B,EAAGA,EAAI,KAIX,IACI4B,EAEAI,EAHAO,EAAgB,GAEhBiC,EAAM7C,EAASR,OAGnB,IAAKS,EAAI,EAAGA,EAAI4C,EAAK5C,GAAK,EAAG,CAIzB,IAAI6C,EACAgL,GAJNzN,EAAYL,EAASC,IAEL5B,EAAIoB,EAAsBH,GAAee,EAAUL,EAAIP,EAAsBH,EAAcZ,IAKvGoE,EADEzC,EAAUL,EAAIP,GAAuBH,EAC9B,GAECe,EAAUL,EAAIP,EAAsBH,GAAeZ,EAI7DoP,EADEzN,EAAUhC,EAAIoB,GAAuBH,EAAcZ,EAC5C,GAEC2B,EAAUhC,EAAIoB,EAAsBH,GAAeZ,EAG/DkC,EAAce,KAAK,CAACmB,EAAQgL,IAAA,CAQhC,OAJKlN,EAAcpB,QACjBoB,EAAce,KAAK,CAAC,EAAG,IAGlBf,CAAA,EAGTwnB,aAAazpB,UAAUqqB,iBAAmB,SAAU5qB,GAClD,IAAIC,EACAK,EAAMN,EAAUoB,OAEpB,IAAKnB,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EACxBqf,mBAAmBL,QAAQjf,EAAUC,IAIvC,OADAD,EAAUoB,OAAS,EACZpB,CAAA,EAGTgqB,aAAazpB,UAAUsqB,cAAgB,SAAU7qB,GAC/C,IAAIC,EACAK,EAwCAY,EACAG,EAvCJ,GAAIR,KAAKiiB,MAAQ9iB,EAAe,CAC9B,IAAI4B,EAAIf,KAAKoB,EAAEoC,EAAI,IAAM,IAsBzB,GApBIzC,EAAI,IACNA,GAAK,IAIL3B,EADEY,KAAKe,EAAEyC,EAAI,EACT,EAAIzC,EACCf,KAAKe,EAAEyC,EAAI,EAChB,EAAIzC,EAEJf,KAAKe,EAAEyC,EAAIzC,IAIftB,EADEO,KAAKZ,EAAEoE,EAAI,EACT,EAAIzC,EACCf,KAAKZ,EAAEoE,EAAI,EAChB,EAAIzC,EAEJf,KAAKZ,EAAEoE,EAAIzC,GAGN,CACT,IAAIC,EAAK5B,EACTA,EAAIK,EACJA,EAAIuB,CAAA,CAGN5B,EAA4B,KAAxB2J,KAAKoB,MAAU,IAAJ/K,GACfK,EAA4B,KAAxBsJ,KAAKoB,MAAU,IAAJ1K,GACfO,KAAK2pB,OAASvqB,EACdY,KAAK4pB,OAASnqB,CAAA,MAEdL,EAAIY,KAAK2pB,OACTlqB,EAAIO,KAAK4pB,OAKX,IACIxoB,EACAO,EACAiC,EACAC,EACAgL,EALAZ,EAAMjO,KAAK4O,OAAOrO,OAMlB2N,EAAsB,EAE1B,GAAIzO,IAAML,EACR,IAAKoB,EAAI,EAAGA,EAAIyN,EAAKzN,GAAK,EACxBR,KAAK4O,OAAOpO,GAAGgkB,qBAAqBR,gBACpChkB,KAAK4O,OAAOpO,GAAG+oB,MAAMtH,MAAA,EACrBjiB,KAAK4O,OAAOpO,GAAG+oB,MAAMhF,MAAQvkB,KAAK4O,OAAOpO,GAAGgkB,qBAExCxkB,KAAKiiB,OACPjiB,KAAK4O,OAAOpO,GAAGqpB,UAAUtpB,OAAS,QAGjC,GAAY,IAANd,GAAiB,IAANL,GAAiB,IAANK,GAAiB,IAANL,GAyGvC,GAAIY,KAAKiiB,KACd,IAAKzhB,EAAI,EAAGA,EAAIyN,EAAKzN,GAAK,EAGxBR,KAAK4O,OAAOpO,GAAGqpB,UAAUtpB,OAAS,EAClCP,KAAK4O,OAAOpO,GAAG+oB,MAAMtH,MAAA,MA9G+B,CACtD,IACI5T,EACAsE,EAFAqM,EAAW,GAIf,IAAKxe,EAAI,EAAGA,EAAIyN,EAAKzN,GAAK,EAGxB,IAFA6N,EAAYrO,KAAK4O,OAAOpO,IAET+oB,MAAMtH,MAASjiB,KAAKiiB,MAAS9iB,GAA4B,IAAXa,KAAKkO,EAE3D,CAKL,GAHAvM,GADAtB,EAAagO,EAAUkb,MAAMhF,OACXnF,QAClBvQ,EAAmB,GAEdR,EAAUkb,MAAMtH,MAAQ5T,EAAUwb,UAAUtpB,OAC/CsO,EAAmBR,EAAU4b,qBACxB,CAGL,IAFArmB,EAAY5D,KAAK+pB,iBAAiB1b,EAAUwb,WAEvCzoB,EAAI,EAAGA,EAAIO,EAAMP,GAAK,EACzByC,EAAWwc,IAAIlB,kBAAkB9e,EAAWuO,OAAOxN,IACnDwC,EAAUlB,KAAKmB,GACfgL,GAAoBhL,EAAS6a,YAG/BrQ,EAAU4b,iBAAmBpb,EAC7BR,EAAUwb,UAAYjmB,CAAA,CAGxBsK,GAAuBW,EACvBR,EAAUkb,MAAMtH,MAAA,CAAO,MAtBvB5T,EAAUkb,MAAMhF,MAAQlW,EAAUmW,qBA0BtC,IAGIvF,EAHAzb,EAASpE,EACT8f,EAASzf,EACT6f,EAAc,EAGlB,IAAK9e,EAAIyN,EAAM,EAAGzN,GAAK,EAAGA,GAAK,EAG7B,IAFA6N,EAAYrO,KAAK4O,OAAOpO,IAEV+oB,MAAMtH,KAAM,CAaxB,KAZAtP,EAAuBtE,EAAUmW,sBACZR,gBAEN,IAAXhkB,KAAKkO,GAAWD,EAAM,GACxBgR,EAAQjf,KAAK8pB,oBAAoB1qB,EAAGK,EAAG4O,EAAU4b,iBAAkB3K,EAAapR,GAChFoR,GAAejR,EAAU4b,kBAEzBhL,EAAQ,CAAC,CAACzb,EAAQ0b,IAGpBvd,EAAOsd,EAAM1e,OAERa,EAAI,EAAGA,EAAIO,EAAMP,GAAK,EAAG,CAC5BoC,EAASyb,EAAM7d,GAAG,GAClB8d,EAASD,EAAM7d,GAAG,GAClB4d,EAASze,OAAS,EAEd2e,GAAU,EACZF,EAAStc,KAAK,CACZ3B,EAAGsN,EAAU4b,iBAAmBzmB,EAChCpE,EAAGiP,EAAU4b,iBAAmB/K,IAEzB1b,GAAU,EACnBwb,EAAStc,KAAK,CACZ3B,EAAGsN,EAAU4b,kBAAoBzmB,EAAS,GAC1CpE,EAAGiP,EAAU4b,kBAAoB/K,EAAS,MAG5CF,EAAStc,KAAK,CACZ3B,EAAGsN,EAAU4b,iBAAmBzmB,EAChCpE,EAAGiP,EAAU4b,mBAEfjL,EAAStc,KAAK,CACZ3B,EAAG,EACH3B,EAAGiP,EAAU4b,kBAAoB/K,EAAS,MAI9C,IAAIK,EAAgBvf,KAAKkqB,UAAU7b,EAAW2Q,EAAS,IAEvD,GAAIA,EAAS,GAAGje,IAAMie,EAAS,GAAG5f,EAAG,CACnC,GAAI4f,EAASze,OAAS,EAGpB,GAF4B8N,EAAUkb,MAAMhF,MAAM3V,OAAOP,EAAUkb,MAAMhF,MAAMnF,QAAU,GAE/DnR,EAAG,CAC3B,IAAIuR,EAAYD,EAAc9c,MAC9BzC,KAAKmqB,SAAS5K,EAAe5M,GAC7B4M,EAAgBvf,KAAKkqB,UAAU7b,EAAW2Q,EAAS,GAAIQ,EAAA,MAEvDxf,KAAKmqB,SAAS5K,EAAe5M,GAC7B4M,EAAgBvf,KAAKkqB,UAAU7b,EAAW2Q,EAAS,IAIvDhf,KAAKmqB,SAAS5K,EAAe5M,EAAA,EAIjCtE,EAAUkb,MAAMhF,MAAQ5R,CAAA,IAahCwW,aAAazpB,UAAUyqB,SAAW,SAAUhrB,EAAUC,GACpD,IAAIK,EACAY,EAAMlB,EAASoB,OAEnB,IAAKd,EAAI,EAAGA,EAAIY,EAAKZ,GAAK,EACxBL,EAAqB2kB,SAAS5kB,EAASM,GAAA,EAI3C0pB,aAAazpB,UAAU0qB,WAAa,SAAUjrB,EAAKC,EAAKK,EAAKY,EAAKG,EAAWO,EAAKC,GAChFR,EAAUgjB,QAAQpkB,EAAI,GAAIA,EAAI,GAAI,IAAK2B,GACvCP,EAAUgjB,QAAQ/jB,EAAI,GAAIA,EAAI,GAAI,IAAKsB,EAAM,GAEzCC,GACFR,EAAUgjB,QAAQrkB,EAAI,GAAIA,EAAI,GAAI,IAAK4B,GAGzCP,EAAUgjB,QAAQnjB,EAAI,GAAIA,EAAI,GAAI,IAAKU,EAAM,IAG/CooB,aAAazpB,UAAU2qB,oBAAsB,SAAUlrB,EAAQC,EAAWK,EAAKY,GAC7EjB,EAAUokB,QAAQrkB,EAAO,GAAIA,EAAO,GAAI,IAAKM,GAC7CL,EAAUokB,QAAQrkB,EAAO,GAAIA,EAAO,GAAI,IAAKM,EAAM,GAE/CY,GACFjB,EAAUokB,QAAQrkB,EAAO,GAAIA,EAAO,GAAI,IAAKM,GAG/CL,EAAUokB,QAAQrkB,EAAO,GAAIA,EAAO,GAAI,IAAKM,EAAM,IAGrD0pB,aAAazpB,UAAUwqB,UAAY,SAAU/qB,EAAWC,EAAcK,GACpE,IAEIY,EAEAG,EACAO,EAEAC,EACAI,EACAO,EACAiC,EAEAC,EAZAgL,EAAY1P,EAAU0qB,UACtB5b,EAAa9O,EAAUoqB,MAAMhF,MAAM3V,OAEnCV,EAAM/O,EAAUoqB,MAAMhF,MAAMnF,QAG5B/Q,EAAc,EAKdsE,EAAS,GAETqM,GAAA,EAaJ,IAXKvf,GAKH2B,EAAe3B,EAAU2f,QACzBvb,EAAUpE,EAAU2f,UALpB3f,EAAYkkB,UAAUxF,aACtB/c,EAAe,EACfyC,EAAU,GAMZ8O,EAAOjQ,KAAKjD,GAEPY,EAAI,EAAGA,EAAI6N,EAAK7N,GAAK,EAAG,CAK3B,IAJAsB,EAAUkN,EAAUxO,GAAGme,QACvB/e,EAAUwO,EAAIA,EAAW5N,GAAG4N,EAC5BlN,EAAOkN,EAAW5N,GAAG4N,EAAItM,EAAQpB,OAASoB,EAAQpB,OAAS,EAEtDC,EAAI,EAAGA,EAAIO,EAAMP,GAAK,EAGzB,GAAI6N,GAFJrN,EAAoBW,EAAQnB,EAAI,IAEI8d,YAAclf,EAAa2B,EAC7DsN,GAAerN,EAAkBsd,YACjC7e,EAAUwO,GAAA,MACL,IAAII,EAAcjP,EAAaA,EAAG,CACvCK,EAAUwO,GAAA,EACV,MAEI7O,EAAa2B,GAAKsN,GAAejP,EAAaA,GAAKiP,EAAcrN,EAAkBsd,aACrFte,KAAKoqB,WAAWnc,EAAW5N,GAAGmD,EAAEhD,EAAI,GAAIyN,EAAW5N,GAAGe,EAAEZ,EAAI,GAAIyN,EAAW5N,GAAGA,EAAEG,GAAIyN,EAAW5N,GAAGmD,EAAEhD,GAAIf,EAAW2B,EAAc4d,GACjIA,GAAA,IAEApb,EAAUyc,IAAIhB,cAAcpR,EAAW5N,GAAGmD,EAAEhD,EAAI,GAAIyN,EAAW5N,GAAGmD,EAAEhD,GAAIyN,EAAW5N,GAAGe,EAAEZ,EAAI,GAAIyN,EAAW5N,GAAGA,EAAEG,IAAKpB,EAAa2B,EAAIsN,GAAerN,EAAkBsd,aAAclf,EAAaA,EAAIiP,GAAerN,EAAkBsd,YAAa3c,EAAQnB,EAAI,IAChQR,KAAKqqB,oBAAoBzmB,EAASnE,EAAW2B,EAAc4d,GAE3DA,GAAA,EACAvf,EAAUwO,GAAA,GAGZI,GAAerN,EAAkBsd,YACjCld,GAAgB,EAIpB,GAAI6M,EAAW5N,GAAG4N,GAAKtM,EAAQpB,OAAQ,CAGrC,GAFAS,EAAoBW,EAAQnB,EAAI,GAE5B6N,GAAejP,EAAaA,EAAG,CACjC,IAAI6f,EAAgBtd,EAAQnB,EAAI,GAAG8d,YAE/Blf,EAAa2B,GAAKsN,GAAejP,EAAaA,GAAKiP,EAAc4Q,GACnEjf,KAAKoqB,WAAWnc,EAAW5N,GAAGmD,EAAEhD,EAAI,GAAIyN,EAAW5N,GAAGe,EAAEZ,EAAI,GAAIyN,EAAW5N,GAAGA,EAAE,GAAI4N,EAAW5N,GAAGmD,EAAE,GAAI/D,EAAW2B,EAAc4d,GACjIA,GAAA,IAEApb,EAAUyc,IAAIhB,cAAcpR,EAAW5N,GAAGmD,EAAEhD,EAAI,GAAIyN,EAAW5N,GAAGmD,EAAE,GAAIyK,EAAW5N,GAAGe,EAAEZ,EAAI,GAAIyN,EAAW5N,GAAGA,EAAE,IAAKjB,EAAa2B,EAAIsN,GAAe4Q,GAAgB7f,EAAaA,EAAIiP,GAAe4Q,EAAetd,EAAQnB,EAAI,IAChOR,KAAKqqB,oBAAoBzmB,EAASnE,EAAW2B,EAAc4d,GAE3DA,GAAA,EACAvf,EAAUwO,GAAA,EAAI,MAGhBxO,EAAUwO,GAAA,EAGZI,GAAerN,EAAkBsd,YACjCld,GAAgB,EAQlB,GALI3B,EAAU2f,UACZ3f,EAAU+jB,QAAQ/jB,EAAU+D,EAAEK,GAAS,GAAIpE,EAAU+D,EAAEK,GAAS,GAAI,IAAKA,GACzEpE,EAAU+jB,QAAQ/jB,EAAU+D,EAAE/D,EAAU2f,QAAU,GAAG,GAAI3f,EAAU+D,EAAE/D,EAAU2f,QAAU,GAAG,GAAI,IAAK3f,EAAU2f,QAAU,IAGvH/Q,EAAcjP,EAAaA,EAC7B,MAGEiB,EAAI6N,EAAM,IACZzO,EAAYkkB,UAAUxF,aACtBa,GAAA,EACArM,EAAOjQ,KAAKjD,GACZ2B,EAAe,GAInB,OAAOuR,CAAA,EAKTtM,gBAAgB,CAAC6iB,eAAgBE,wBAEjCA,uBAAuB1pB,UAAU2pB,uBAAyB,SAAUlqB,EAAMC,GACxEY,KAAK0iB,SAAW1iB,KAAK0pB,YACrB1pB,KAAKsqB,OAAShK,gBAAgBsC,QAAQzjB,EAAMC,EAAKoB,EAAG,EAAG,KAAMR,MAC7DA,KAAK+iB,cAAgB/iB,KAAKsqB,OAAOnI,gBAAgB5hB,MAAA,EAGnD6oB,uBAAuB1pB,UAAU6qB,YAAc,SAAUprB,EAAMC,GAC7D,IAAIK,EAAUL,EAAS,IACnBiB,EAAc,CAAC,EAAG,GAClBG,EAAarB,EAAKigB,QAClBre,EAAI,EAER,IAAKA,EAAI,EAAGA,EAAIP,EAAYO,GAAK,EAC/BV,EAAY,IAAMlB,EAAKqE,EAAEzC,GAAG,GAC5BV,EAAY,IAAMlB,EAAKqE,EAAEzC,GAAG,GAG9BV,EAAY,IAAMG,EAClBH,EAAY,IAAMG,EAClB,IAEIQ,EACAI,EACAO,EACAiC,EACAC,EACAgL,EAPAZ,EAAa0V,UAAUxF,aAS3B,IARAlQ,EAAWA,EAAI9O,EAAK8O,EAQflN,EAAI,EAAGA,EAAIP,EAAYO,GAAK,EAC/BC,EAAK7B,EAAKqE,EAAEzC,GAAG,IAAMV,EAAY,GAAKlB,EAAKqE,EAAEzC,GAAG,IAAMtB,EACtD2B,EAAKjC,EAAKqE,EAAEzC,GAAG,IAAMV,EAAY,GAAKlB,EAAKqE,EAAEzC,GAAG,IAAMtB,EACtDkC,EAAKxC,EAAKiC,EAAEL,GAAG,IAAMV,EAAY,GAAKlB,EAAKiC,EAAEL,GAAG,KAAOtB,EACvDmE,EAAKzE,EAAKiC,EAAEL,GAAG,IAAMV,EAAY,GAAKlB,EAAKiC,EAAEL,GAAG,KAAOtB,EACvDoE,EAAK1E,EAAKkB,EAAEU,GAAG,IAAMV,EAAY,GAAKlB,EAAKkB,EAAEU,GAAG,KAAOtB,EACvDoP,EAAK1P,EAAKkB,EAAEU,GAAG,IAAMV,EAAY,GAAKlB,EAAKkB,EAAEU,GAAG,KAAOtB,EACvDwO,EAAWwV,YAAYziB,EAAII,EAAIO,EAAIiC,EAAIC,EAAIgL,EAAI9N,GAGjD,OAAOkN,CAAA,EAGTmb,uBAAuB1pB,UAAUsqB,cAAgB,SAAU7qB,GACzD,IAAIC,EACAK,EAEAY,EACAG,EAIEO,EACAC,EAPFI,EAAMpB,KAAK4O,OAAOrO,OAGlBoB,EAAS3B,KAAKsqB,OAAO9mB,EAEzB,GAAe,IAAX7B,EAIF,IAAKlC,EAAI,EAAGA,EAAI2B,EAAK3B,GAAK,EAAG,CAI3B,GAFAuB,GADAD,EAAYf,KAAK4O,OAAOnP,IACS+kB,qBAE1BzjB,EAAUwoB,MAAMtH,MAASjiB,KAAKiiB,MAAS9iB,EAM5C,IALA6B,EAAqBgjB,gBACrBjjB,EAAUwoB,MAAMtH,MAAA,EAChB7iB,EAAa2B,EAAUwoB,MAAMhF,MAAM3V,OACnCpO,EAAOO,EAAUwoB,MAAMhF,MAAMnF,QAExB/e,EAAI,EAAGA,EAAIG,EAAMH,GAAK,EACzBW,EAAqB+iB,SAAS/jB,KAAKuqB,YAAYnrB,EAAWiB,GAAIsB,IAIlEZ,EAAUwoB,MAAMhF,MAAQxjB,EAAUyjB,oBAAA,CAIjCxkB,KAAK8iB,kBAAkBviB,SAC1BP,KAAKiiB,MAAA,EAAO,EAIhB,IAAIuI,yBAA2B,WAC7B,IAAIrrB,EAAgB,CAAC,EAAG,GA+KxB,SAASC,EAAkBD,EAAMC,EAAMK,GAwBrC,GAvBAO,KAAK4c,KAAOzd,EACZa,KAAKkiB,SAAW,EAChBliB,KAAKwgB,SAAW,YAChBxgB,KAAK4N,KAAOxO,EACZY,KAAKwD,EAAI,IAAI+hB,OAEbvlB,KAAKyqB,IAAM,IAAIlF,OACfvlB,KAAK0qB,uBAAyB,EAC9B1qB,KAAKijB,6BAA6BxjB,GAAaN,GAE3CC,EAAKyE,GAAKzE,EAAKyE,EAAE9C,GACnBf,KAAK2qB,GAAKrK,gBAAgBsC,QAAQzjB,EAAMC,EAAKyE,EAAEyb,EAAG,EAAG,EAAGtf,MACxDA,KAAK4qB,GAAKtK,gBAAgBsC,QAAQzjB,EAAMC,EAAKyE,EAAEmb,EAAG,EAAG,EAAGhf,MAEpDZ,EAAKyE,EAAEkiB,IACT/lB,KAAK6qB,GAAKvK,gBAAgBsC,QAAQzjB,EAAMC,EAAKyE,EAAEkiB,EAAG,EAAG,EAAG/lB,QAG1DA,KAAK6D,EAAIyc,gBAAgBsC,QAAQzjB,EAAMC,EAAKyE,GAAK,CAC/C2K,EAAG,CAAC,EAAG,EAAG,IACT,EAAG,EAAGxO,MAGPZ,EAAK0rB,GAAI,CAKX,GAJA9qB,KAAK8qB,GAAKxK,gBAAgBsC,QAAQzjB,EAAMC,EAAK0rB,GAAI,EAAGhhB,UAAW9J,MAC/DA,KAAK+qB,GAAKzK,gBAAgBsC,QAAQzjB,EAAMC,EAAK2rB,GAAI,EAAGjhB,UAAW9J,MAC/DA,KAAKgrB,GAAK1K,gBAAgBsC,QAAQzjB,EAAMC,EAAK4rB,GAAI,EAAGlhB,UAAW9J,MAE3DZ,EAAK6lB,GAAGzW,EAAE,GAAGuS,GAAI,CACnB,IAAI1gB,EACAG,EAAMpB,EAAK6lB,GAAGzW,EAAEjO,OAEpB,IAAKF,EAAI,EAAGA,EAAIG,EAAKH,GAAK,EACxBjB,EAAK6lB,GAAGzW,EAAEnO,GAAGwgB,GAAK,KAClBzhB,EAAK6lB,GAAGzW,EAAEnO,GAAG0gB,GAAK,KAItB/gB,KAAKilB,GAAK3E,gBAAgBsC,QAAQzjB,EAAMC,EAAK6lB,GAAI,EAAGnb,UAAW9J,MAE/DA,KAAKilB,GAAG5D,IAAA,CAAK,MAEbrhB,KAAKP,EAAI6gB,gBAAgBsC,QAAQzjB,EAAMC,EAAKK,GAAK,CAC/C+O,EAAG,GACF,EAAG1E,UAAW9J,MAGfZ,EAAKwQ,KACP5P,KAAK4P,GAAK0Q,gBAAgBsC,QAAQzjB,EAAMC,EAAKwQ,GAAI,EAAG9F,UAAW9J,MAC/DA,KAAK6P,GAAKyQ,gBAAgBsC,QAAQzjB,EAAMC,EAAKyQ,GAAI,EAAG/F,UAAW9J,OAGjEA,KAAKQ,EAAI8f,gBAAgBsC,QAAQzjB,EAAMC,EAAKoB,GAAK,CAC/CgO,EAAG,CAAC,EAAG,EAAG,IACT,EAAG,EAAGxO,MACTA,KAAKe,EAAIuf,gBAAgBsC,QAAQzjB,EAAMC,EAAK2B,GAAK,CAC/CyN,EAAG,CAAC,IAAK,IAAK,MACb,EAAG,IAAMxO,MAERZ,EAAKgC,EACPpB,KAAKoB,EAAIkf,gBAAgBsC,QAAQzjB,EAAMC,EAAKgC,EAAG,EAAG,IAAMjC,GAExDa,KAAKoB,EAAI,CACP6gB,MAAA,EACAze,EAAG,GAIPxD,KAAKirB,UAAA,EAEAjrB,KAAK8iB,kBAAkBviB,QAC1BP,KAAK0iB,UAAA,EAAS,CAkBlB,OAdAtjB,EAAkBM,UAAY,CAC5BwrB,cA1PF,SAAuB/rB,GACrB,IAAIC,EAAOY,KAAKiiB,KAChBjiB,KAAKgjB,2BACLhjB,KAAKiiB,KAAOjiB,KAAKiiB,MAAQ7iB,EAErBY,KAAKQ,GACPrB,EAAIwnB,WAAW3mB,KAAKQ,EAAEgD,EAAE,IAAKxD,KAAKQ,EAAEgD,EAAE,GAAIxD,KAAKQ,EAAEgD,EAAE,IAGjDxD,KAAKe,GACP5B,EAAIsnB,MAAMzmB,KAAKe,EAAEyC,EAAE,GAAIxD,KAAKe,EAAEyC,EAAE,GAAIxD,KAAKe,EAAEyC,EAAE,IAG3CxD,KAAK4P,IACPzQ,EAAIqnB,cAAcxmB,KAAK4P,GAAGpM,EAAGxD,KAAK6P,GAAGrM,GAGnCxD,KAAKP,EACPN,EAAIgnB,QAAQnmB,KAAKP,EAAE+D,GAEnBrE,EAAImnB,SAAStmB,KAAKgrB,GAAGxnB,GAAG6iB,QAAQrmB,KAAK+qB,GAAGvnB,GAAG4iB,QAAQpmB,KAAK8qB,GAAGtnB,GAAG8iB,SAAStmB,KAAKilB,GAAGzhB,EAAE,IAAI6iB,QAAQrmB,KAAKilB,GAAGzhB,EAAE,IAAI4iB,QAAQpmB,KAAKilB,GAAGzhB,EAAE,IAG3HxD,KAAK4N,KAAK/J,EAAE9C,EACVf,KAAK4N,KAAK/J,EAAEkiB,EACd5mB,EAAIwnB,UAAU3mB,KAAK2qB,GAAGnnB,EAAGxD,KAAK4qB,GAAGpnB,GAAIxD,KAAK6qB,GAAGrnB,GAE7CrE,EAAIwnB,UAAU3mB,KAAK2qB,GAAGnnB,EAAGxD,KAAK4qB,GAAGpnB,EAAG,GAGtCrE,EAAIwnB,UAAU3mB,KAAK6D,EAAEL,EAAE,GAAIxD,KAAK6D,EAAEL,EAAE,IAAKxD,KAAK6D,EAAEL,EAAE,KA6NpDkf,SAzNF,SAAqBtjB,GACnB,GAAIY,KAAK4c,KAAKvE,WAAW6J,UAAYliB,KAAKkiB,QAA1C,CAWA,GAPIliB,KAAKirB,WACPjrB,KAAKmrB,qBACLnrB,KAAKirB,UAAA,GAGPjrB,KAAKgjB,2BAEDhjB,KAAKiiB,MAAQ7iB,EAAa,CAC5B,IAAIK,EAqBJ,GApBAO,KAAKwD,EAAE6jB,eAAernB,KAAKyqB,IAAIhF,OAE3BzlB,KAAK0qB,uBAAyB,GAChC1qB,KAAKwD,EAAEmjB,WAAW3mB,KAAKQ,EAAEgD,EAAE,IAAKxD,KAAKQ,EAAEgD,EAAE,GAAIxD,KAAKQ,EAAEgD,EAAE,IAGpDxD,KAAK0qB,uBAAyB,GAChC1qB,KAAKwD,EAAEijB,MAAMzmB,KAAKe,EAAEyC,EAAE,GAAIxD,KAAKe,EAAEyC,EAAE,GAAIxD,KAAKe,EAAEyC,EAAE,IAG9CxD,KAAK4P,IAAM5P,KAAK0qB,uBAAyB,GAC3C1qB,KAAKwD,EAAEgjB,cAAcxmB,KAAK4P,GAAGpM,EAAGxD,KAAK6P,GAAGrM,GAGtCxD,KAAKP,GAAKO,KAAK0qB,uBAAyB,EAC1C1qB,KAAKwD,EAAE2iB,QAAQnmB,KAAKP,EAAE+D,IACZxD,KAAKP,GAAKO,KAAK0qB,uBAAyB,GAClD1qB,KAAKwD,EAAE8iB,SAAStmB,KAAKgrB,GAAGxnB,GAAG6iB,QAAQrmB,KAAK+qB,GAAGvnB,GAAG4iB,QAAQpmB,KAAK8qB,GAAGtnB,GAAG8iB,SAAStmB,KAAKilB,GAAGzhB,EAAE,IAAI6iB,QAAQrmB,KAAKilB,GAAGzhB,EAAE,IAAI4iB,QAAQpmB,KAAKilB,GAAGzhB,EAAE,IAG9HxD,KAAKorB,aAAc,CACrB,IAAI/qB,EACAG,EAGJ,GAFAf,EAAYO,KAAK4c,KAAKvE,WAAW9B,UAE7BvW,KAAK6D,GAAK7D,KAAK6D,EAAE8c,WAAa3gB,KAAK6D,EAAEwnB,eACnCrrB,KAAK6D,EAAEie,SAASb,UAAYjhB,KAAK6D,EAAE0c,YAAcvgB,KAAK6D,EAAE8c,UAAU,GAAGxhB,GACvEkB,EAAKL,KAAK6D,EAAEwnB,gBAAgBrrB,KAAK6D,EAAE8c,UAAU,GAAGxhB,EAAI,KAAQM,EAAW,GACvEe,EAAKR,KAAK6D,EAAEwnB,eAAerrB,KAAK6D,EAAE8c,UAAU,GAAGxhB,EAAIM,EAAW,IACrDO,KAAK6D,EAAEie,SAASb,UAAYjhB,KAAK6D,EAAE0c,YAAcvgB,KAAK6D,EAAE8c,UAAU3gB,KAAK6D,EAAE8c,UAAUpgB,OAAS,GAAGpB,GACxGkB,EAAKL,KAAK6D,EAAEwnB,eAAerrB,KAAK6D,EAAE8c,UAAU3gB,KAAK6D,EAAE8c,UAAUpgB,OAAS,GAAGpB,EAAIM,EAAW,GACxFe,EAAKR,KAAK6D,EAAEwnB,gBAAgBrrB,KAAK6D,EAAE8c,UAAU3gB,KAAK6D,EAAE8c,UAAUpgB,OAAS,GAAGpB,EAAI,KAAQM,EAAW,KAEjGY,EAAKL,KAAK6D,EAAE4c,GACZjgB,EAAKR,KAAK6D,EAAEwnB,gBAAgBrrB,KAAK6D,EAAEie,SAASb,UAAYjhB,KAAK6D,EAAE0c,WAAa,KAAQ9gB,EAAWO,KAAK6D,EAAE0c,kBAEnG,GAAIvgB,KAAK2qB,IAAM3qB,KAAK2qB,GAAGhK,WAAa3gB,KAAK4qB,GAAGjK,WAAa3gB,KAAK2qB,GAAGU,gBAAkBrrB,KAAK4qB,GAAGS,eAAgB,CAChHhrB,EAAK,GACLG,EAAK,GACL,IAAIO,EAAKf,KAAK2qB,GACV3pB,EAAKhB,KAAK4qB,GAEV7pB,EAAG+gB,SAASb,UAAYlgB,EAAGwf,YAAcxf,EAAG4f,UAAU,GAAGxhB,GAC3DkB,EAAG,GAAKU,EAAGsqB,gBAAgBtqB,EAAG4f,UAAU,GAAGxhB,EAAI,KAAQM,EAAW,GAClEY,EAAG,GAAKW,EAAGqqB,gBAAgBrqB,EAAG2f,UAAU,GAAGxhB,EAAI,KAAQM,EAAW,GAClEe,EAAG,GAAKO,EAAGsqB,eAAetqB,EAAG4f,UAAU,GAAGxhB,EAAIM,EAAW,GACzDe,EAAG,GAAKQ,EAAGqqB,eAAerqB,EAAG2f,UAAU,GAAGxhB,EAAIM,EAAW,IAChDsB,EAAG+gB,SAASb,UAAYlgB,EAAGwf,YAAcxf,EAAG4f,UAAU5f,EAAG4f,UAAUpgB,OAAS,GAAGpB,GACxFkB,EAAG,GAAKU,EAAGsqB,eAAetqB,EAAG4f,UAAU5f,EAAG4f,UAAUpgB,OAAS,GAAGpB,EAAIM,EAAW,GAC/EY,EAAG,GAAKW,EAAGqqB,eAAerqB,EAAG2f,UAAU3f,EAAG2f,UAAUpgB,OAAS,GAAGpB,EAAIM,EAAW,GAC/Ee,EAAG,GAAKO,EAAGsqB,gBAAgBtqB,EAAG4f,UAAU5f,EAAG4f,UAAUpgB,OAAS,GAAGpB,EAAI,KAAQM,EAAW,GACxFe,EAAG,GAAKQ,EAAGqqB,gBAAgBrqB,EAAG2f,UAAU3f,EAAG2f,UAAUpgB,OAAS,GAAGpB,EAAI,KAAQM,EAAW,KAExFY,EAAK,CAACU,EAAG0f,GAAIzf,EAAGyf,IAChBjgB,EAAG,GAAKO,EAAGsqB,gBAAgBtqB,EAAG+gB,SAASb,UAAYlgB,EAAGwf,WAAa,KAAQ9gB,EAAWsB,EAAGwf,YACzF/f,EAAG,GAAKQ,EAAGqqB,gBAAgBrqB,EAAG8gB,SAASb,UAAYjgB,EAAGuf,WAAa,KAAQ9gB,EAAWuB,EAAGuf,YAAA,MAI3FlgB,EADAG,EAAKrB,EAIPa,KAAKwD,EAAE2iB,QAAQpd,KAAKuY,MAAMjhB,EAAG,GAAKG,EAAG,GAAIH,EAAG,GAAKG,EAAG,KAGlDR,KAAK4N,KAAK/J,GAAK7D,KAAK4N,KAAK/J,EAAE9C,EACzBf,KAAK4N,KAAK/J,EAAEkiB,EACd/lB,KAAKwD,EAAEmjB,UAAU3mB,KAAK2qB,GAAGnnB,EAAGxD,KAAK4qB,GAAGpnB,GAAIxD,KAAK6qB,GAAGrnB,GAEhDxD,KAAKwD,EAAEmjB,UAAU3mB,KAAK2qB,GAAGnnB,EAAGxD,KAAK4qB,GAAGpnB,EAAG,GAGzCxD,KAAKwD,EAAEmjB,UAAU3mB,KAAK6D,EAAEL,EAAE,GAAIxD,KAAK6D,EAAEL,EAAE,IAAKxD,KAAK6D,EAAEL,EAAE,IAIzDxD,KAAKkiB,QAAUliB,KAAK4c,KAAKvE,WAAW6J,OAAA,GAgIpCiJ,mBA7HF,WACE,IAAKnrB,KAAKQ,EAAEgO,IACVxO,KAAKyqB,IAAI9D,WAAW3mB,KAAKQ,EAAEgD,EAAE,IAAKxD,KAAKQ,EAAEgD,EAAE,GAAIxD,KAAKQ,EAAEgD,EAAE,IACxDxD,KAAK0qB,uBAAyB,GAK3B1qB,KAAKe,EAAEohB,gBAAgB5hB,QAA5B,CAOA,GANEP,KAAKyqB,IAAIhE,MAAMzmB,KAAKe,EAAEyC,EAAE,GAAIxD,KAAKe,EAAEyC,EAAE,GAAIxD,KAAKe,EAAEyC,EAAE,IAClDxD,KAAK0qB,uBAAyB,EAK5B1qB,KAAK4P,GAAI,CACX,GAAK5P,KAAK4P,GAAGuS,gBAAgB5hB,QAAWP,KAAK6P,GAAGsS,gBAAgB5hB,OAI9D,OAHAP,KAAKyqB,IAAIjE,cAAcxmB,KAAK4P,GAAGpM,EAAGxD,KAAK6P,GAAGrM,GAC1CxD,KAAK0qB,uBAAyB,EAM9B1qB,KAAKP,EACFO,KAAKP,EAAE0iB,gBAAgB5hB,SAC1BP,KAAKyqB,IAAItE,QAAQnmB,KAAKP,EAAE+D,GACxBxD,KAAK0qB,uBAAyB,GAEtB1qB,KAAKgrB,GAAG7I,gBAAgB5hB,QAAWP,KAAK+qB,GAAG5I,gBAAgB5hB,QAAWP,KAAK8qB,GAAG3I,gBAAgB5hB,QAAWP,KAAKilB,GAAG9C,gBAAgB5hB,SAC3IP,KAAKyqB,IAAInE,SAAStmB,KAAKgrB,GAAGxnB,GAAG6iB,QAAQrmB,KAAK+qB,GAAGvnB,GAAG4iB,QAAQpmB,KAAK8qB,GAAGtnB,GAAG8iB,SAAStmB,KAAKilB,GAAGzhB,EAAE,IAAI6iB,QAAQrmB,KAAKilB,GAAGzhB,EAAE,IAAI4iB,QAAQpmB,KAAKilB,GAAGzhB,EAAE,IAClIxD,KAAK0qB,uBAAyB,KA+FhCY,WA3FF,cA6FAjlB,gBAAgB,CAACwc,0BAA2BzjB,GAC5CA,EAAkBM,UAAU8iB,mBA1F5B,SAA4BrjB,GAC1Ba,KAAKurB,oBAAoBpsB,GAEzBa,KAAK4c,KAAK4F,mBAAmBrjB,GAC7Ba,KAAKirB,UAAA,CAAW,EAuFlB7rB,EAAkBM,UAAU6rB,oBAAsB1I,yBAAyBnjB,UAAU8iB,mBAM9E,CACLgJ,qBALF,SAA8BrsB,EAAMM,EAAMY,GACxC,OAAO,IAAIjB,EAAkBD,EAAMM,EAAMY,EAAA,GAvQd,GA+Q/B,SAASorB,mBAAA,CAkST,SAASC,uBAAA,CA0HT,SAASC,WAAWxsB,EAAGC,GACrB,OAAyB,IAAlB2J,KAAKa,IAAIzK,EAAIC,IAAe2J,KAAKS,IAAIT,KAAKa,IAAIzK,GAAI4J,KAAKa,IAAIxK,GAAA,CAGpE,SAASwsB,UAAUzsB,GACjB,OAAO4J,KAAKa,IAAIzK,IAAM,KAGxB,SAAS0sB,KAAK1sB,EAAIC,EAAIK,GACpB,OAAON,GAAM,EAAIM,GAAUL,EAAKK,CAAA,CAGlC,SAASqsB,UAAU3sB,EAAIC,EAAIK,GACzB,MAAO,CAACosB,KAAK1sB,EAAG,GAAIC,EAAG,GAAIK,GAASosB,KAAK1sB,EAAG,GAAIC,EAAG,GAAIK,GAAA,CAGzD,SAASssB,UAAU5sB,EAAGC,EAAGK,GAEvB,GAAU,IAANN,EAAS,MAAO,GACpB,IAAIkB,EAAIjB,EAAIA,EAAI,EAAID,EAAIM,EAExB,GAAIY,EAAI,EAAG,MAAO,GAClB,IAAIG,GAAcpB,GAAK,EAAID,GAE3B,GAAU,IAANkB,EAAS,MAAO,CAACG,GACrB,IAAIO,EAAQgI,KAAKG,KAAK7I,IAAM,EAAIlB,GAEhC,MAAO,CAACqB,EAAaO,EAAOP,EAAaO,EAAA,CAG3C,SAASirB,uBAAuB7sB,EAAIC,EAAIK,EAAIY,GAC1C,MAAO,CAAO,EAAIjB,EAATD,EAAc,EAAIM,EAAKY,EAAI,EAAIlB,EAAK,EAAIC,EAAK,EAAIK,GAAK,EAAIN,EAAK,EAAIC,EAAID,EAAA,CAGlF,SAAS8sB,YAAY9sB,GACnB,OAAO,IAAI+sB,iBAAiB/sB,EAAGA,EAAGA,EAAGA,GAAA,EAAG,CAG1C,SAAS+sB,iBAAiB/sB,EAAIC,EAAIK,EAAIY,EAAIG,GACpCA,GAAa2rB,WAAWhtB,EAAIC,KAC9BA,EAAK0sB,UAAU3sB,EAAIkB,EAAI,EAAI,IAGzBG,GAAa2rB,WAAW1sB,EAAIY,KAC9BZ,EAAKqsB,UAAU3sB,EAAIkB,EAAI,EAAI,IAG7B,IAAIU,EAASirB,uBAAuB7sB,EAAG,GAAIC,EAAG,GAAIK,EAAG,GAAIY,EAAG,IACxDW,EAASgrB,uBAAuB7sB,EAAG,GAAIC,EAAG,GAAIK,EAAG,GAAIY,EAAG,IAC5DL,KAAKQ,EAAI,CAACO,EAAO,GAAIC,EAAO,IAC5BhB,KAAKkf,EAAI,CAACne,EAAO,GAAIC,EAAO,IAC5BhB,KAAKiO,EAAI,CAAClN,EAAO,GAAIC,EAAO,IAC5BhB,KAAKqO,EAAI,CAACtN,EAAO,GAAIC,EAAO,IAC5BhB,KAAK6e,OAAS,CAAC1f,EAAIC,EAAIK,EAAIY,EAAA,CAmD7B,SAAS+rB,QAAQjtB,EAAKC,GACpB,IAAIK,EAAMN,EAAI0f,OAAO,GAAGzf,GACpBiB,EAAMlB,EAAI0f,OAAO1f,EAAI0f,OAAOte,OAAS,GAAGnB,GAE5C,GAAIK,EAAMY,EAAK,CACb,IAAIG,EAAIH,EACRA,EAAMZ,EACNA,EAAMe,CAAA,CAMR,IAFA,IAAIO,EAAIgrB,UAAU,EAAI5sB,EAAIqB,EAAEpB,GAAO,EAAID,EAAI+f,EAAE9f,GAAOD,EAAI8O,EAAE7O,IAEjD4B,EAAI,EAAGA,EAAID,EAAER,OAAQS,GAAK,EACjC,GAAID,EAAEC,GAAK,GAAKD,EAAEC,GAAK,EAAG,CACxB,IAAII,EAAMjC,EAAI4f,MAAMhe,EAAEC,IAAI5B,GACtBgC,EAAM3B,EAAKA,EAAM2B,EAAaA,EAAMf,IAAKA,EAAMe,EAAA,CAIvD,MAAO,CACLoI,IAAK/J,EACL6J,IAAKjJ,EAAA,CAyBT,SAASgsB,cAAcltB,EAAKC,EAAIK,GAC9B,IAAIY,EAAMlB,EAAImtB,cACd,MAAO,CACLC,GAAIlsB,EAAIksB,GACRC,GAAInsB,EAAImsB,GACRva,MAAO5R,EAAI4R,MACXC,OAAQ7R,EAAI6R,OACZmO,IAAKlhB,EACLA,GAAIC,EAAKK,GAAM,EACfgtB,GAAIrtB,EACJstB,GAAIjtB,EAAA,CAIR,SAASktB,UAAUxtB,GACjB,IAAIC,EAAQD,EAAKkhB,IAAIhR,MAAM,IAC3B,MAAO,CAACgd,cAAcjtB,EAAM,GAAID,EAAKstB,GAAIttB,EAAKA,GAAIktB,cAAcjtB,EAAM,GAAID,EAAKA,EAAGA,EAAKutB,IAAA,CAGzF,SAASE,aAAaztB,EAAIC,GACxB,OAAiC,EAA1B2J,KAAKa,IAAIzK,EAAGotB,GAAKntB,EAAGmtB,IAAUptB,EAAG8S,MAAQ7S,EAAG6S,OAAmC,EAA1BlJ,KAAKa,IAAIzK,EAAGqtB,GAAKptB,EAAGotB,IAAUrtB,EAAG+S,OAAS9S,EAAG8S,MAAA,CAG3G,SAAS2a,eAAe1tB,EAAIC,EAAIK,EAAOY,EAAWG,EAAeO,GAC/D,GAAK6rB,aAAaztB,EAAIC,GAEtB,GAAIK,GAASsB,GAAgB5B,EAAG8S,OAAS5R,GAAalB,EAAG+S,QAAU7R,GAAajB,EAAG6S,OAAS5R,GAAajB,EAAG8S,QAAU7R,EACpHG,EAAckC,KAAK,CAACvD,EAAGA,EAAGC,EAAGD,QAD/B,CAKA,IAAI6B,EAAM2rB,UAAUxtB,GAChBiC,EAAMurB,UAAUvtB,GACpBytB,eAAe7rB,EAAI,GAAII,EAAI,GAAI3B,EAAQ,EAAGY,EAAWG,EAAeO,GACpE8rB,eAAe7rB,EAAI,GAAII,EAAI,GAAI3B,EAAQ,EAAGY,EAAWG,EAAeO,GACpE8rB,eAAe7rB,EAAI,GAAII,EAAI,GAAI3B,EAAQ,EAAGY,EAAWG,EAAeO,GACpE8rB,eAAe7rB,EAAI,GAAII,EAAI,GAAI3B,EAAQ,EAAGY,EAAWG,EAAeO,EAAA,EAqBtE,SAAS+rB,aAAa3tB,EAAGC,GACvB,MAAO,CAACD,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAAID,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAAID,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,IAGvF,SAAS2tB,iBAAiB5tB,EAAQC,EAAMK,EAAQY,GAC9C,IAAIG,EAAK,CAACrB,EAAO,GAAIA,EAAO,GAAI,GAC5B4B,EAAK,CAAC3B,EAAK,GAAIA,EAAK,GAAI,GACxB4B,EAAK,CAACvB,EAAO,GAAIA,EAAO,GAAI,GAC5B2B,EAAK,CAACf,EAAK,GAAIA,EAAK,GAAI,GACxBsB,EAAImrB,aAAaA,aAAatsB,EAAIO,GAAK+rB,aAAa9rB,EAAII,IAC5D,OAAIwqB,UAAUjqB,EAAE,IAAY,KACrB,CAACA,EAAE,GAAKA,EAAE,GAAIA,EAAE,GAAKA,EAAE,IAGhC,SAASqrB,YAAY7tB,EAAGC,EAAOK,GAC7B,MAAO,CAACN,EAAE,GAAK4J,KAAK4Y,IAAIviB,GAASK,EAAQN,EAAE,GAAK4J,KAAK0Y,IAAIriB,GAASK,EAAA,CAGpE,SAASwtB,cAAc9tB,EAAIC,GACzB,OAAO2J,KAAKmkB,MAAM/tB,EAAG,GAAKC,EAAG,GAAID,EAAG,GAAKC,EAAG,IAG9C,SAAS+sB,WAAWhtB,EAAIC,GACtB,OAAOusB,WAAWxsB,EAAG,GAAIC,EAAG,KAAOusB,WAAWxsB,EAAG,GAAIC,EAAG,IAG1D,SAAS+tB,iBAAA,CAYT,SAASC,SAASjuB,EAAcC,EAAOK,EAAOY,EAAWG,EAAWO,EAAcC,GAChF,IAAII,EAAO3B,EAAQsJ,KAAKgB,GAAK,EACzBpI,EAAOlC,EAAQsJ,KAAKgB,GAAK,EACzBnG,EAAKxE,EAAM,GAAK2J,KAAK4Y,IAAIliB,GAASY,EAAYG,EAC9CqD,EAAKzE,EAAM,GAAK2J,KAAK0Y,IAAIhiB,GAASY,EAAYG,EAClDrB,EAAaskB,YAAY7f,EAAIC,EAAID,EAAKmF,KAAK4Y,IAAIvgB,GAAQL,EAAc8C,EAAKkF,KAAK0Y,IAAIrgB,GAAQL,EAAc6C,EAAKmF,KAAK4Y,IAAIhgB,GAAQX,EAAa6C,EAAKkF,KAAK0Y,IAAI9f,GAAQX,EAAa7B,EAAaoB,SAAA,CAG9L,SAAS8sB,uBAAuBluB,EAAKC,GACnC,IAAIK,EAAS,CAACL,EAAI,GAAKD,EAAI,GAAIC,EAAI,GAAKD,EAAI,IACxCkB,EAAiB,IAAV0I,KAAKgB,GAEhB,MADoB,CAAChB,KAAK4Y,IAAIthB,GAAOZ,EAAO,GAAKsJ,KAAK0Y,IAAIphB,GAAOZ,EAAO,GAAIsJ,KAAK0Y,IAAIphB,GAAOZ,EAAO,GAAKsJ,KAAK4Y,IAAIthB,GAAOZ,EAAO,IAIjI,SAAS6tB,mBAAmBnuB,EAAMC,GAChC,IAAIK,EAAoB,IAARL,EAAYD,EAAKoB,SAAW,EAAInB,EAAM,EAClDiB,GAAajB,EAAM,GAAKD,EAAKoB,SAG7BC,EAAU6sB,uBAFEluB,EAAKqE,EAAE/D,GACPN,EAAKqE,EAAEnD,IAEvB,OAAO0I,KAAKuY,MAAM,EAAG,GAAKvY,KAAKuY,MAAM9gB,EAAQ,GAAIA,EAAQ,IAG3D,SAAS+sB,aAAapuB,EAAcC,EAAMK,EAAKY,EAAWG,EAAWO,EAAWC,GAC9E,IAAII,EAAQksB,mBAAmBluB,EAAMK,GACjCkC,EAAQvC,EAAKoE,EAAE/D,EAAML,EAAKggB,SAC1Bxb,EAAYxE,EAAKoE,EAAU,IAAR/D,EAAYL,EAAKggB,QAAU,EAAI3f,EAAM,GACxDoE,EAAYzE,EAAKoE,GAAG/D,EAAM,GAAKL,EAAKggB,SACpCvQ,EAAyB,IAAd9N,EAAkBgI,KAAKG,KAAKH,KAAKC,IAAIrH,EAAM,GAAKiC,EAAU,GAAI,GAAKmF,KAAKC,IAAIrH,EAAM,GAAKiC,EAAU,GAAI,IAAM,EACtHqK,EAAyB,IAAdlN,EAAkBgI,KAAKG,KAAKH,KAAKC,IAAIrH,EAAM,GAAKkC,EAAU,GAAI,GAAKkF,KAAKC,IAAIrH,EAAM,GAAKkC,EAAU,GAAI,IAAM,EAC1HupB,SAASjuB,EAAcC,EAAKoE,EAAE/D,EAAML,EAAKggB,SAAUhe,EAAOJ,EAAWX,EAAW4N,GAA8B,GAAjBzN,EAAY,IAASqO,GAA8B,GAAjBrO,EAAY,IAASO,EAAA,CAGtJ,SAASysB,cAAcruB,EAAcC,EAASK,EAAWY,EAAWG,EAAWO,GAC7E,IAAK,IAAIC,EAAI,EAAGA,EAAIX,EAAWW,GAAK,EAAG,CACrC,IAAII,GAAKJ,EAAI,IAAMX,EAAY,GAC3BsB,EAAqB,IAAdnB,EAAkBuI,KAAKG,KAAKH,KAAKC,IAAI5J,EAAQyf,OAAO,GAAG,GAAKzf,EAAQyf,OAAO,GAAG,GAAI,GAAK9V,KAAKC,IAAI5J,EAAQyf,OAAO,GAAG,GAAKzf,EAAQyf,OAAO,GAAG,GAAI,IAAM,EAC1Jjb,EAAQxE,EAAQquB,YAAYrsB,GAEhCgsB,SAASjuB,EADGC,EAAQ2f,MAAM3d,GACIwC,EAAO7C,EAAWtB,EAAWkC,GAA0B,GAAjBtB,EAAY,IAASsB,GAA0B,GAAjBtB,EAAY,IAASG,GACvHO,GAAaA,CAAA,CAGf,OAAOA,CAAA,CAsET,SAAS2sB,aAAavuB,EAAIC,EAAIK,GAC5B,IAAIY,EAAQ0I,KAAKuY,MAAMliB,EAAG,GAAKD,EAAG,GAAIC,EAAG,GAAKD,EAAG,IACjD,MAAO,CAAC6tB,YAAY7tB,EAAIkB,EAAOZ,GAASutB,YAAY5tB,EAAIiB,EAAOZ,GAAA,CAGjE,SAASkuB,cAAcxuB,EAASC,GAC9B,IAAIK,EACAY,EACAG,EACAO,EACAC,EACAI,EACAO,EAEJlC,GADAkC,EAAI+rB,aAAavuB,EAAQ0f,OAAO,GAAI1f,EAAQ0f,OAAO,GAAIzf,IAChD,GACPiB,EAAMsB,EAAE,GAERnB,GADAmB,EAAI+rB,aAAavuB,EAAQ0f,OAAO,GAAI1f,EAAQ0f,OAAO,GAAIzf,IAC/C,GACR2B,EAAMY,EAAE,GAERX,GADAW,EAAI+rB,aAAavuB,EAAQ0f,OAAO,GAAI1f,EAAQ0f,OAAO,GAAIzf,IAC/C,GACRgC,EAAKO,EAAE,GACP,IAAIiC,EAAKmpB,iBAAiBttB,EAAIY,EAAKG,EAAKO,GAC7B,OAAP6C,IAAaA,EAAKvD,GACtB,IAAIwD,EAAKkpB,iBAAiB/rB,EAAKI,EAAIZ,EAAKO,GAExC,OADW,OAAP8C,IAAaA,EAAK7C,GACf,IAAIkrB,iBAAiBzsB,EAAImE,EAAIC,EAAIzC,EAAA,CAG1C,SAASwsB,UAAUzuB,EAAcC,EAAMK,EAAMY,EAAUG,GACrD,IAAIO,EAAK3B,EAAKyf,OAAO,GACjB7d,EAAKvB,EAAKof,OAAO,GAErB,GAAiB,IAAbxe,EAAgB,OAAOU,EAE3B,GAAIorB,WAAWprB,EAAIC,GAAK,OAAOD,EAE/B,GAAiB,IAAbV,EAAgB,CAClB,IAAIe,GAAYhC,EAAKyuB,aAAa,GAC9BlsB,GAAWlC,EAAKouB,aAAa,GAAK9kB,KAAKgB,GACvCnG,EAASmpB,iBAAiBhsB,EAAIisB,YAAYjsB,EAAIK,EAAW2H,KAAKgB,GAAK,EAAG,KAAM/I,EAAIgsB,YAAYhsB,EAAII,EAAW2H,KAAKgB,GAAK,EAAG,MACxHlG,EAASD,EAASqpB,cAAcrpB,EAAQ7C,GAAMksB,cAAclsB,EAAIC,GAAM,EACtE6N,EAAMme,YAAYjsB,EAAIK,EAAU,EAAIyC,EAASmG,aAIjD,OAHA7K,EAAaqkB,QAAQ3U,EAAI,GAAIA,EAAI,GAAI,IAAK1P,EAAaoB,SAAW,GAClEsO,EAAMme,YAAYhsB,EAAIW,EAAS,EAAIkC,EAASmG,aAC5C7K,EAAaskB,YAAYziB,EAAG,GAAIA,EAAG,GAAIA,EAAG,GAAIA,EAAG,GAAI6N,EAAI,GAAIA,EAAI,GAAI1P,EAAaoB,UAC3ES,CAAA,CAIT,IAEIiN,EAAe8e,iBAFVZ,WAAWprB,EAAI3B,EAAKyf,OAAO,IAAMzf,EAAKyf,OAAO,GAAKzf,EAAKyf,OAAO,GAE/B9d,EAAIC,EADnCmrB,WAAWnrB,EAAIvB,EAAKof,OAAO,IAAMpf,EAAKof,OAAO,GAAKpf,EAAKof,OAAO,IAGvE,OAAI5Q,GAAgBgf,cAAchf,EAAclN,GAAMP,GACpDrB,EAAaskB,YAAYxV,EAAa,GAAIA,EAAa,GAAIA,EAAa,GAAIA,EAAa,GAAIA,EAAa,GAAIA,EAAa,GAAI9O,EAAaoB,UACrI0N,GAGFlN,CAAA,CAGT,SAAS+sB,gBAAgB3uB,EAAGC,GAC1B,IAAIK,EAAYN,EAAE4uB,cAAc3uB,GAEhC,OADIK,EAAUc,QAAUorB,WAAWlsB,EAAU,GAAG,GAAI,IAAIA,EAAUqE,QAC9DrE,EAAUc,OAAed,EAAU,GAChC,KAGT,SAASuuB,yBAAyB7uB,EAAGC,GACnC,IAAIK,EAAON,EAAEmE,QACTjD,EAAOjB,EAAEkE,QACT9C,EAAYstB,gBAAgB3uB,EAAEA,EAAEoB,OAAS,GAAInB,EAAE,IAOnD,OALIoB,IACFf,EAAKN,EAAEoB,OAAS,GAAKpB,EAAEA,EAAEoB,OAAS,GAAG8O,MAAM7O,EAAU,IAAI,GACzDH,EAAK,GAAKjB,EAAE,GAAGiQ,MAAM7O,EAAU,IAAI,IAGjCrB,EAAEoB,OAAS,GAAKnB,EAAEmB,OAAS,IAC7BC,EAAYstB,gBAAgB3uB,EAAE,GAAIC,EAAEA,EAAEmB,OAAS,KAGtC,CAAC,CAACpB,EAAE,GAAGkQ,MAAM7O,EAAU,IAAI,IAAK,CAACpB,EAAEA,EAAEmB,OAAS,GAAG8O,MAAM7O,EAAU,IAAI,KAIzE,CAACf,EAAMY,EAAA,CAGhB,SAAS4tB,mBAAmB9uB,GAG1B,IAFA,IAAIC,EAEKK,EAAI,EAAGA,EAAIN,EAASoB,OAAQd,GAAK,EACxCL,EAAI4uB,yBAAyB7uB,EAASM,EAAI,GAAIN,EAASM,IACvDN,EAASM,EAAI,GAAKL,EAAE,GACpBD,EAASM,GAAKL,EAAE,GASlB,OANID,EAASoB,OAAS,IACpBnB,EAAI4uB,yBAAyB7uB,EAASA,EAASoB,OAAS,GAAIpB,EAAS,IACrEA,EAASA,EAASoB,OAAS,GAAKnB,EAAE,GAClCD,EAAS,GAAKC,EAAE,IAGXD,CAAA,CAGT,SAAS+uB,mBAAmB/uB,EAASC,GAOnC,IACIK,EACAY,EACAG,EACAO,EAJAC,EAAO7B,EAAQgvB,mBAMnB,GAAoB,IAAhBntB,EAAKT,OACP,MAAO,CAACotB,cAAcxuB,EAASC,IAGjC,GAAoB,IAAhB4B,EAAKT,QAAgBorB,WAAW3qB,EAAK,GAAI,GAI3C,OAFAvB,GADAe,EAAQrB,EAAQkQ,MAAMrO,EAAK,KACd,GACbX,EAAQG,EAAM,GACP,CAACmtB,cAAcluB,EAAML,GAASuuB,cAActtB,EAAOjB,IAI5DK,GADAe,EAAQrB,EAAQkQ,MAAMrO,EAAK,KACd,GACb,IAAII,GAAKJ,EAAK,GAAKA,EAAK,KAAO,EAAIA,EAAK,IAIxC,OAFAD,GADAP,EAAQA,EAAM,GAAG6O,MAAMjO,IACX,GACZf,EAAQG,EAAM,GACP,CAACmtB,cAAcluB,EAAML,GAASuuB,cAAc5sB,EAAK3B,GAASuuB,cAActtB,EAAOjB,GAAA,CAGxF,SAASgvB,qBAAA,CAwGT,SAASC,kBAAkBlvB,GAOzB,IANA,IAAIC,EAASD,EAASmvB,OAASnvB,EAASmvB,OAAOjf,MAAM,KAAO,GACxD5P,EAAU,SACVY,EAAS,SACTG,EAAMpB,EAAOmB,OAGRQ,EAAI,EAAGA,EAAIP,EAAKO,GAAK,EAG5B,OAFY3B,EAAO2B,GAAGwtB,eAGpB,IAAK,SACHluB,EAAS,SACT,MAEF,IAAK,OACHZ,EAAU,MACV,MAEF,IAAK,QACHA,EAAU,MACV,MAEF,IAAK,SACHA,EAAU,MACV,MAEF,IAAK,UACL,IAAK,SACHA,EAAU,MACV,MAEF,IAAK,QACL,IAAK,OACHA,EAAU,MAQhB,MAAO,CACL4K,MAAOhK,EACPmuB,OAAQrvB,EAASsvB,SAAWhvB,EAAA,CAniChC4G,gBAAgB,CAAC6iB,eAAgBuC,kBAEjCA,iBAAiB/rB,UAAU2pB,uBAAyB,SAAUlqB,EAAMC,GAClEY,KAAK0iB,SAAW1iB,KAAK0pB,YACrB1pB,KAAKiO,EAAIqS,gBAAgBsC,QAAQzjB,EAAMC,EAAK6O,EAAG,EAAG,KAAMjO,MACxDA,KAAKoB,EAAIkf,gBAAgBsC,QAAQzjB,EAAMC,EAAKgC,EAAG,EAAG,KAAMpB,MACxDA,KAAK0uB,GAAKlE,yBAAyBgB,qBAAqBrsB,EAAMC,EAAKsvB,GAAI1uB,MACvEA,KAAK2uB,GAAKrO,gBAAgBsC,QAAQzjB,EAAMC,EAAKsvB,GAAGC,GAAI,EAAG,IAAM3uB,MAC7DA,KAAK4uB,GAAKtO,gBAAgBsC,QAAQzjB,EAAMC,EAAKsvB,GAAGE,GAAI,EAAG,IAAM5uB,MAC7DA,KAAK4N,KAAOxO,EAEPY,KAAK8iB,kBAAkBviB,QAC1BP,KAAK0iB,UAAA,GAGP1iB,KAAK+iB,cAAgB/iB,KAAK8iB,kBAAkBviB,OAC5CP,KAAK6uB,QAAU,IAAItJ,OACnBvlB,KAAK8uB,QAAU,IAAIvJ,OACnBvlB,KAAK+uB,QAAU,IAAIxJ,OACnBvlB,KAAKgvB,QAAU,IAAIzJ,OACnBvlB,KAAKivB,OAAS,IAAI1J,MAAA,EAGpBkG,iBAAiB/rB,UAAUwvB,gBAAkB,SAAU/vB,EAASC,EAASK,EAASY,EAAWG,EAAMO,GACjG,IAAIC,EAAMD,GAAO,EAAI,EACjBK,EAASf,EAAUU,EAAEyC,EAAE,IAAM,EAAInD,EAAUU,EAAEyC,EAAE,KAAO,EAAIhD,GAC1DmB,EAAStB,EAAUU,EAAEyC,EAAE,IAAM,EAAInD,EAAUU,EAAEyC,EAAE,KAAO,EAAIhD,GAC9DrB,EAAQwnB,UAAUtmB,EAAUwD,EAAEL,EAAE,GAAKxC,EAAMR,EAAMH,EAAUwD,EAAEL,EAAE,GAAKxC,EAAMR,EAAMH,EAAUwD,EAAEL,EAAE,IAC9FpE,EAAQunB,WAAWtmB,EAAUG,EAAEgD,EAAE,IAAKnD,EAAUG,EAAEgD,EAAE,GAAInD,EAAUG,EAAEgD,EAAE,IACtEpE,EAAQ+mB,QAAQ9lB,EAAUZ,EAAE+D,EAAIxC,EAAMR,GACtCpB,EAAQunB,UAAUtmB,EAAUG,EAAEgD,EAAE,GAAInD,EAAUG,EAAEgD,EAAE,GAAInD,EAAUG,EAAEgD,EAAE,IACpE/D,EAAQknB,WAAWtmB,EAAUG,EAAEgD,EAAE,IAAKnD,EAAUG,EAAEgD,EAAE,GAAInD,EAAUG,EAAEgD,EAAE,IACtE/D,EAAQgnB,MAAM1lB,EAAM,EAAIK,EAASA,EAAQL,EAAM,EAAIY,EAASA,GAC5DlC,EAAQknB,UAAUtmB,EAAUG,EAAEgD,EAAE,GAAInD,EAAUG,EAAEgD,EAAE,GAAInD,EAAUG,EAAEgD,EAAE,KAGtEioB,iBAAiB/rB,UAAU+pB,KAAO,SAAUtqB,EAAMC,EAAKK,EAAKY,GAY1D,IAXAL,KAAK4c,KAAOzd,EACZa,KAAKmvB,IAAM/vB,EACXY,KAAKovB,IAAM3vB,EACXO,KAAKqvB,UAAYhvB,EACjBL,KAAKsvB,eAAiB,EACtBtvB,KAAKuvB,UAAY,GACjBvvB,KAAKwvB,QAAU,GACfxvB,KAAKkiB,SAAW,EAChBliB,KAAKijB,6BAA6B9jB,GAClCa,KAAKqpB,uBAAuBlqB,EAAMC,EAAIK,IAE/BA,EAAM,GACXA,GAAO,EAEPO,KAAKuvB,UAAUE,QAAQrwB,EAAIK,IAGzBO,KAAK8iB,kBAAkBviB,OACzBP,KAAKwO,GAAA,EAELxO,KAAK0iB,UAAA,EAAS,EAIlB+I,iBAAiB/rB,UAAUgwB,cAAgB,SAAUvwB,GACnD,IAAIC,EACAK,EAAMN,EAASoB,OAEnB,IAAKnB,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EACxBD,EAASC,GAAGuwB,YAAA,EAEW,OAAnBxwB,EAASC,GAAGqP,IACdzO,KAAK0vB,cAAcvwB,EAASC,GAAGgQ,GAAA,EAKrCqc,iBAAiB/rB,UAAUkwB,cAAgB,SAAUzwB,GACnD,IAAIC,EAAc4P,KAAKC,MAAMD,KAAKE,UAAU/P,IAE5C,OADAa,KAAK0vB,cAActwB,GACZA,CAAA,EAGTqsB,iBAAiB/rB,UAAUmwB,kBAAoB,SAAU1wB,EAAUC,GACjE,IAAIK,EACAY,EAAMlB,EAASoB,OAEnB,IAAKd,EAAI,EAAGA,EAAIY,EAAKZ,GAAK,EACxBN,EAASM,GAAGqwB,QAAU1wB,EAEC,OAAnBD,EAASM,GAAGgP,IACdzO,KAAK6vB,kBAAkB1wB,EAASM,GAAG2P,GAAIhQ,EAAA,EAK7CqsB,iBAAiB/rB,UAAUsqB,cAAgB,SAAU7qB,GACnD,IAAIC,EACAK,EACAY,EACAG,EACAO,EACAC,GAAA,EAEJ,GAAIhB,KAAKiiB,MAAQ9iB,EAAe,CAC9B,IAmEIiC,EAnEAO,EAASoH,KAAKgnB,KAAK/vB,KAAKiO,EAAEzK,GAE9B,GAAIxD,KAAKwvB,QAAQjvB,OAASoB,EAAQ,CAChC,KAAO3B,KAAKwvB,QAAQjvB,OAASoB,GAAQ,CACnC,IAAIiC,EAAQ,CACVwL,GAAIpP,KAAK4vB,cAAc5vB,KAAKuvB,WAC5B9gB,GAAI,MAEN7K,EAAMwL,GAAG1M,KAAK,CACZlC,EAAG,CACDA,EAAG,EACHwvB,GAAI,EACJxhB,EAAG,CAAC,EAAG,IAETkH,GAAI,YACJtU,EAAG,CACDZ,EAAG,EACHwvB,GAAI,EACJxhB,EAAG,KAEL3K,EAAG,CACDrD,EAAG,EACHwvB,GAAI,EACJxhB,EAAG,CAAC,EAAG,IAET/O,EAAG,CACDe,EAAG,EACHwvB,GAAI,EACJxhB,EAAG,CAAC,CACFzN,EAAG,EACH3B,EAAG,EACHD,EAAG,GACF,CACD4B,EAAG,EACH3B,EAAG,EACHD,EAAG,KAGP4B,EAAG,CACDP,EAAG,EACHwvB,GAAI,EACJxhB,EAAG,CAAC,IAAK,MAEXqB,GAAI,CACFrP,EAAG,EACHwvB,GAAI,EACJxhB,EAAG,GAELoB,GAAI,CACFpP,EAAG,EACHwvB,GAAI,EACJxhB,EAAG,GAELC,GAAI,OAENzO,KAAKmvB,IAAIpa,OAAO,EAAG,EAAGnR,GAEtB5D,KAAKwvB,QAAQza,OAAO,EAAG,EAAGnR,GAE1B5D,KAAKsvB,gBAAkB,EAGzBtvB,KAAK4c,KAAKqT,eACVjvB,GAAA,CAAc,CAMhB,IAHAD,EAAO,EAGFV,EAAI,EAAGA,GAAKL,KAAKwvB,QAAQjvB,OAAS,EAAGF,GAAK,EAAG,CAKhD,GAJAe,EAAaL,EAAOY,EACpB3B,KAAKwvB,QAAQnvB,GAAGyvB,QAAU1uB,EAC1BpB,KAAK6vB,kBAAkB7vB,KAAKwvB,QAAQnvB,GAAG+O,GAAIhO,IAEtCA,EAAY,CACf,IAAIyC,EAAQ7D,KAAKqvB,UAAUhvB,GAAG+O,GAC1BP,EAAgBhL,EAAMA,EAAMtD,OAAS,GAEJ,IAAjCsO,EAAc+X,UAAUnX,GAAGjM,GAC7BqL,EAAc+X,UAAUnX,GAAGwS,MAAA,EAC3BpT,EAAc+X,UAAUnX,GAAGjM,EAAI,GAE/BqL,EAAc+X,UAAUnX,GAAGwS,MAAA,CAAO,CAItClhB,GAAQ,EAGVf,KAAKsvB,eAAiB3tB,EAEtB,IAAIsM,EAASjO,KAAKoB,EAAEoC,EAChB0K,EAAeD,EAAS,EACxBI,EAAcJ,EAAS,EAAIlF,KAAKK,MAAM6E,GAAUlF,KAAKgnB,KAAK9hB,GAC1D0E,EAAS3S,KAAK6uB,QAAQpJ,MACtBzG,EAAShf,KAAK8uB,QAAQrJ,MACtBxG,EAASjf,KAAK+uB,QAAQtJ,MAC1BzlB,KAAK6uB,QAAQpK,QACbzkB,KAAK8uB,QAAQrK,QACbzkB,KAAK+uB,QAAQtK,QACbzkB,KAAKgvB,QAAQvK,QACbzkB,KAAKivB,OAAOxK,QACZ,IA2BIjhB,EACA0b,EA5BAI,EAAY,EAEhB,GAAIrR,EAAS,EAAG,CACd,KAAOqR,EAAYjR,GACjBrO,KAAKkvB,gBAAgBlvB,KAAK6uB,QAAS7uB,KAAK8uB,QAAS9uB,KAAK+uB,QAAS/uB,KAAK0uB,GAAI,GAAG,GAC3EpP,GAAa,EAGXpR,IACFlO,KAAKkvB,gBAAgBlvB,KAAK6uB,QAAS7uB,KAAK8uB,QAAS9uB,KAAK+uB,QAAS/uB,KAAK0uB,GAAIxgB,GAAA,GACxEoR,GAAapR,EAAA,MAEV,GAAID,EAAS,EAAG,CACrB,KAAOqR,EAAYjR,GACjBrO,KAAKkvB,gBAAgBlvB,KAAK6uB,QAAS7uB,KAAK8uB,QAAS9uB,KAAK+uB,QAAS/uB,KAAK0uB,GAAI,GAAG,GAC3EpP,GAAa,EAGXpR,IACFlO,KAAKkvB,gBAAgBlvB,KAAK6uB,QAAS7uB,KAAK8uB,QAAS9uB,KAAK+uB,QAAS/uB,KAAK0uB,IAAKxgB,GAAA,GACzEoR,GAAapR,EAAA,CAUjB,IANA7N,EAAoB,IAAhBL,KAAK4N,KAAKM,EAAU,EAAIlO,KAAKsvB,eAAiB,EAClD9uB,EAAsB,IAAhBR,KAAK4N,KAAKM,EAAU,GAAK,EAC/BnN,EAAOf,KAAKsvB,eAILvuB,GAAM,CAQX,GALAme,GADAzf,GADAL,EAAQY,KAAKqvB,UAAUhvB,GAAG+O,IACHhQ,EAAMmB,OAAS,GAAGqmB,UAAUsJ,OAAO1sB,EAAEiiB,OACtCllB,OACtBnB,EAAMA,EAAMmB,OAAS,GAAGqmB,UAAUsJ,OAAOjO,MAAA,EACzC7iB,EAAMA,EAAMmB,OAAS,GAAGqmB,UAAUnX,GAAGwS,MAAA,EACrC7iB,EAAMA,EAAMmB,OAAS,GAAGqmB,UAAUnX,GAAGjM,EAA4B,IAAxBxD,KAAKsvB,eAAuBtvB,KAAK2uB,GAAGnrB,EAAIxD,KAAK2uB,GAAGnrB,GAAKxD,KAAK4uB,GAAGprB,EAAIxD,KAAK2uB,GAAGnrB,IAAMnD,GAAKL,KAAKsvB,eAAiB,IAEjI,IAAdhQ,EAAiB,CASnB,KARU,IAANjf,GAAmB,IAARG,GAAaH,IAAML,KAAKsvB,eAAiB,IAAc,IAAT9uB,IAC3DR,KAAKkvB,gBAAgBlvB,KAAK6uB,QAAS7uB,KAAK8uB,QAAS9uB,KAAK+uB,QAAS/uB,KAAK0uB,GAAI,GAAG,GAG7E1uB,KAAKivB,OAAOrI,UAAU5H,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,KACvMhf,KAAKivB,OAAOrI,UAAU3H,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,KACvMjf,KAAKivB,OAAOrI,UAAUjU,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,KAElMnP,EAAI,EAAGA,EAAI0b,EAAM1b,GAAK,EACzB/D,EAAe+D,GAAKxD,KAAKivB,OAAOxJ,MAAMjiB,GAGxCxD,KAAKivB,OAAOxK,OAAA,MAIZ,IAFAzkB,KAAKivB,OAAOxK,QAEPjhB,EAAI,EAAGA,EAAI0b,EAAM1b,GAAK,EACzB/D,EAAe+D,GAAKxD,KAAKivB,OAAOxJ,MAAMjiB,GAI1C8b,GAAa,EACbve,GAAQ,EACRV,GAAKG,CAAA,OAOP,IAJAO,EAAOf,KAAKsvB,eACZjvB,EAAI,EACJG,EAAM,EAECO,GAELtB,GADAL,EAAQY,KAAKqvB,UAAUhvB,GAAG+O,IACHhQ,EAAMmB,OAAS,GAAGqmB,UAAUsJ,OAAO1sB,EAAEiiB,MAC5DrmB,EAAMA,EAAMmB,OAAS,GAAGqmB,UAAUsJ,OAAOjO,MAAA,EACzC7iB,EAAMA,EAAMmB,OAAS,GAAGqmB,UAAUnX,GAAGwS,MAAA,EACrClhB,GAAQ,EACRV,GAAKG,EAIT,OAAOQ,CAAA,EAGTyqB,iBAAiB/rB,UAAUqkB,SAAW,WAAa,EAInD1d,gBAAgB,CAAC6iB,eAAgBwC,sBAEjCA,qBAAqBhsB,UAAU2pB,uBAAyB,SAAUlqB,EAAMC,GACtEY,KAAK0iB,SAAW1iB,KAAK0pB,YACrB1pB,KAAKmwB,GAAK7P,gBAAgBsC,QAAQzjB,EAAMC,EAAKK,EAAG,EAAG,KAAMO,MACzDA,KAAK+iB,cAAgB/iB,KAAKmwB,GAAGhO,gBAAgB5hB,MAAA,EAG/CmrB,qBAAqBhsB,UAAU6qB,YAAc,SAAUprB,EAAMC,GAC3D,IAEIK,EAFAY,EAAasjB,UAAUxF,aAC3B9d,EAAW4N,EAAI9O,EAAK8O,EAEpB,IACIzN,EACAO,EACAC,EACAI,EACAO,EACAiC,EAEAC,EACAgL,EACAZ,EACAC,EACAG,EACAsE,EAbAqM,EAAM7f,EAAKigB,QAOXH,EAAQ,EAQZ,IAAKxf,EAAI,EAAGA,EAAIuf,EAAKvf,GAAK,EACxBe,EAAWrB,EAAKqE,EAAE/D,GAClBuB,EAAW7B,EAAKiC,EAAE3B,GAClBsB,EAAW5B,EAAKkB,EAAEZ,GAEde,EAAS,KAAOQ,EAAS,IAAMR,EAAS,KAAOQ,EAAS,IAAMR,EAAS,KAAOO,EAAS,IAAMP,EAAS,KAAOO,EAAS,GAC7G,IAANtB,GAAWA,IAAMuf,EAAM,GAAO7f,EAAK8O,GASpC7M,EADQ,IAAN3B,EACQN,EAAKqE,EAAEwb,EAAM,GAEb7f,EAAKqE,EAAE/D,EAAI,GAIvBmE,GADAjC,EAAWoH,KAAKG,KAAKH,KAAKC,IAAIxI,EAAS,GAAKY,EAAQ,GAAI,GAAK2H,KAAKC,IAAIxI,EAAS,GAAKY,EAAQ,GAAI,KACxE2H,KAAKS,IAAI7H,EAAW,EAAGvC,GAASuC,EAAW,EAEnEkC,EADAwK,EAAK7N,EAAS,IAAMY,EAAQ,GAAKZ,EAAS,IAAMoD,EAGhDiL,EADA8D,EAAKnS,EAAS,IAAMA,EAAS,GAAKY,EAAQ,IAAMwC,EAEhDqK,EAAKpK,GAAMA,EAAKrD,EAAS,IAAMwJ,YAC/BkE,EAAKW,GAAMA,EAAKrO,EAAS,IAAMwJ,YAC/B3J,EAAWojB,YAAY5f,EAAIgL,EAAIZ,EAAIC,EAAIG,EAAIsE,EAAIsM,GAC/CA,GAAS,EAGP7d,EADE3B,IAAMuf,EAAM,EACJ7f,EAAKqE,EAAE,GAEPrE,EAAKqE,EAAE/D,EAAI,GAIvBmE,GADAjC,EAAWoH,KAAKG,KAAKH,KAAKC,IAAIxI,EAAS,GAAKY,EAAQ,GAAI,GAAK2H,KAAKC,IAAIxI,EAAS,GAAKY,EAAQ,GAAI,KACxE2H,KAAKS,IAAI7H,EAAW,EAAGvC,GAASuC,EAAW,EAEnEkC,EADAoK,EAAKzN,EAAS,IAAMY,EAAQ,GAAKZ,EAAS,IAAMoD,EAGhDiL,EADAX,EAAK1N,EAAS,IAAMY,EAAQ,GAAKZ,EAAS,IAAMoD,EAEhDyK,EAAKxK,GAAMA,EAAKrD,EAAS,IAAMwJ,YAC/B2I,EAAK9D,GAAMA,EAAKrO,EAAS,IAAMwJ,YAC/B3J,EAAWojB,YAAY5f,EAAIgL,EAAIZ,EAAIC,EAAIG,EAAIsE,EAAIsM,GAC/CA,GAAS,IAvCT5e,EAAWojB,YAAYjjB,EAAS,GAAIA,EAAS,GAAIQ,EAAS,GAAIA,EAAS,GAAID,EAAS,GAAIA,EAAS,GAAIke,GAKrGA,GAAS,IAqCX5e,EAAWojB,YAAYtkB,EAAKqE,EAAE/D,GAAG,GAAIN,EAAKqE,EAAE/D,GAAG,GAAIN,EAAKiC,EAAE3B,GAAG,GAAIN,EAAKiC,EAAE3B,GAAG,GAAIN,EAAKkB,EAAEZ,GAAG,GAAIN,EAAKkB,EAAEZ,GAAG,GAAIwf,GAC3GA,GAAS,GAIb,OAAO5e,CAAA,EAGTqrB,qBAAqBhsB,UAAUsqB,cAAgB,SAAU7qB,GACvD,IAAIC,EACAK,EAEAY,EACAG,EAIEO,EACAC,EAPFI,EAAMpB,KAAK4O,OAAOrO,OAGlBoB,EAAK3B,KAAKmwB,GAAG3sB,EAEjB,GAAW,IAAP7B,EAIF,IAAKlC,EAAI,EAAGA,EAAI2B,EAAK3B,GAAK,EAAG,CAI3B,GAFAuB,GADAD,EAAYf,KAAK4O,OAAOnP,IACS+kB,qBAE1BzjB,EAAUwoB,MAAMtH,MAASjiB,KAAKiiB,MAAS9iB,EAM5C,IALA6B,EAAqBgjB,gBACrBjjB,EAAUwoB,MAAMtH,MAAA,EAChB7iB,EAAa2B,EAAUwoB,MAAMhF,MAAM3V,OACnCpO,EAAOO,EAAUwoB,MAAMhF,MAAMnF,QAExB/e,EAAI,EAAGA,EAAIG,EAAMH,GAAK,EACzBW,EAAqB+iB,SAAS/jB,KAAKuqB,YAAYnrB,EAAWiB,GAAIsB,IAIlEZ,EAAUwoB,MAAMhF,MAAQxjB,EAAUyjB,oBAAA,CAIjCxkB,KAAK8iB,kBAAkBviB,SAC1BP,KAAKiiB,MAAA,EAAO,EA4DhBiK,iBAAiBxsB,UAAUqf,MAAQ,SAAU5f,GAC3C,MAAO,GAAGa,KAAKQ,EAAE,GAAKrB,EAAIa,KAAKkf,EAAE,IAAM/f,EAAIa,KAAKiO,EAAE,IAAM9O,EAAIa,KAAKqO,EAAE,KAAMrO,KAAKQ,EAAE,GAAKrB,EAAIa,KAAKkf,EAAE,IAAM/f,EAAIa,KAAKiO,EAAE,IAAM9O,EAAIa,KAAKqO,EAAE,KAGpI6d,iBAAiBxsB,UAAU0wB,WAAa,SAAUjxB,GAChD,MAAO,EAAE,EAAIA,EAAIa,KAAKQ,EAAE,GAAK,EAAIR,KAAKkf,EAAE,IAAM/f,EAAIa,KAAKiO,EAAE,IAAK,EAAI9O,EAAIa,KAAKQ,EAAE,GAAK,EAAIR,KAAKkf,EAAE,IAAM/f,EAAIa,KAAKiO,EAAE,KAGhHie,iBAAiBxsB,UAAUmuB,aAAe,SAAU1uB,GAClD,IAAIC,EAAIY,KAAKowB,WAAWjxB,GACxB,OAAO4J,KAAKuY,MAAMliB,EAAE,GAAIA,EAAE,KAG5B8sB,iBAAiBxsB,UAAU+tB,YAAc,SAAUtuB,GACjD,IAAIC,EAAIY,KAAKowB,WAAWjxB,GACxB,OAAO4J,KAAKuY,MAAMliB,EAAE,GAAIA,EAAE,KAG5B8sB,iBAAiBxsB,UAAUyuB,iBAAmB,WAC5C,IAAIhvB,EAAQa,KAAKQ,EAAE,GAAKR,KAAKkf,EAAE,GAAKlf,KAAKQ,EAAE,GAAKR,KAAKkf,EAAE,GACvD,GAAI0M,UAAUzsB,GAAQ,MAAO,GAC7B,IAAIC,GAAS,IAAOY,KAAKQ,EAAE,GAAKR,KAAKiO,EAAE,GAAKjO,KAAKQ,EAAE,GAAKR,KAAKiO,EAAE,IAAM9O,EACjEM,EAASL,EAAQA,EAAQ,EAAI,GAAKY,KAAKkf,EAAE,GAAKlf,KAAKiO,EAAE,GAAKjO,KAAKkf,EAAE,GAAKlf,KAAKiO,EAAE,IAAM9O,EACvF,GAAIM,EAAS,EAAG,MAAO,GACvB,IAAIY,EAAO0I,KAAKG,KAAKzJ,GAErB,OAAImsB,UAAUvrB,GACRA,EAAO,GAAKA,EAAO,EAAU,CAACjB,GAC3B,GAGF,CAACA,EAAQiB,EAAMjB,EAAQiB,GAAMgwB,QAAO,SAAUlxB,GACnD,OAAOA,EAAI,GAAKA,EAAI,MAIxB+sB,iBAAiBxsB,UAAU2P,MAAQ,SAAUlQ,GAC3C,GAAIA,GAAK,EAAG,MAAO,CAAC8sB,YAAYjsB,KAAK6e,OAAO,IAAK7e,MACjD,GAAIb,GAAK,EAAG,MAAO,CAACa,KAAMisB,YAAYjsB,KAAK6e,OAAO7e,KAAK6e,OAAOte,OAAS,KACvE,IAAInB,EAAM0sB,UAAU9rB,KAAK6e,OAAO,GAAI7e,KAAK6e,OAAO,GAAI1f,GAChDM,EAAMqsB,UAAU9rB,KAAK6e,OAAO,GAAI7e,KAAK6e,OAAO,GAAI1f,GAChDkB,EAAMyrB,UAAU9rB,KAAK6e,OAAO,GAAI7e,KAAK6e,OAAO,GAAI1f,GAChDqB,EAAMsrB,UAAU1sB,EAAKK,EAAKN,GAC1B4B,EAAM+qB,UAAUrsB,EAAKY,EAAKlB,GAC1B6B,EAAK8qB,UAAUtrB,EAAKO,EAAK5B,GAC7B,MAAO,CAAC,IAAI+sB,iBAAiBlsB,KAAK6e,OAAO,GAAIzf,EAAKoB,EAAKQ,GAAA,GAAW,IAAIkrB,iBAAiBlrB,EAAID,EAAKV,EAAKL,KAAK6e,OAAO,IAAI,KA6BvHqN,iBAAiBxsB,UAAU4wB,OAAS,WAClC,MAAO,CACLhR,EAAG8M,QAAQpsB,KAAM,GACjBgf,EAAGoN,QAAQpsB,KAAM,KAIrBksB,iBAAiBxsB,UAAU4sB,YAAc,WACvC,IAAIntB,EAASa,KAAKswB,SAClB,MAAO,CACL9lB,KAAMrL,EAAOmgB,EAAE9V,IACf+mB,MAAOpxB,EAAOmgB,EAAEhW,IAChBiB,IAAKpL,EAAO6f,EAAExV,IACdgnB,OAAQrxB,EAAO6f,EAAE1V,IACjB2I,MAAO9S,EAAOmgB,EAAEhW,IAAMnK,EAAOmgB,EAAE9V,IAC/B0I,OAAQ/S,EAAO6f,EAAE1V,IAAMnK,EAAO6f,EAAExV,IAChC+iB,IAAKptB,EAAOmgB,EAAEhW,IAAMnK,EAAOmgB,EAAE9V,KAAO,EACpCgjB,IAAKrtB,EAAO6f,EAAE1V,IAAMnK,EAAO6f,EAAExV,KAAO,IA2CxC0iB,iBAAiBxsB,UAAUquB,cAAgB,SAAU5uB,EAAOC,EAAWK,QAAA,IACjEL,IAAyBA,EAAY,YACrCK,IAA4BA,EAAe,GAC/C,IAAIY,EAAgB,GAEpB,OADAwsB,eAAeR,cAAcrsB,KAAM,EAAG,GAAIqsB,cAAcltB,EAAO,EAAG,GAAI,EAAGC,EAAWiB,EAAeZ,GAC5FY,CAAA,EAGT6rB,iBAAiBuE,aAAe,SAAUtxB,EAAWC,GACnD,IAAIK,GAAaL,EAAQ,GAAKD,EAAUoB,SACxC,OAAO,IAAI2rB,iBAAiB/sB,EAAUqE,EAAEpE,GAAQD,EAAUiC,EAAEhC,GAAQD,EAAUkB,EAAEZ,GAAYN,EAAUqE,EAAE/D,IAAA,EAAY,EAGtHysB,iBAAiBwE,qBAAuB,SAAUvxB,EAAWC,GAC3D,IAAIK,GAAaL,EAAQ,GAAKD,EAAUoB,SACxC,OAAO,IAAI2rB,iBAAiB/sB,EAAUqE,EAAE/D,GAAYN,EAAUkB,EAAEZ,GAAYN,EAAUiC,EAAEhC,GAAQD,EAAUqE,EAAEpE,IAAA,EAAQ,EA+BtHiH,gBAAgB,CAAC6iB,eAAgBiE,gBAEjCA,eAAeztB,UAAU2pB,uBAAyB,SAAUlqB,EAAMC,GAChEY,KAAK0iB,SAAW1iB,KAAK0pB,YACrB1pB,KAAK2wB,UAAYrQ,gBAAgBsC,QAAQzjB,EAAMC,EAAK2B,EAAG,EAAG,KAAMf,MAChEA,KAAK4wB,UAAYtQ,gBAAgBsC,QAAQzjB,EAAMC,EAAKK,EAAG,EAAG,KAAMO,MAChEA,KAAK6wB,WAAavQ,gBAAgBsC,QAAQzjB,EAAMC,EAAKmP,GAAI,EAAG,KAAMvO,MAClEA,KAAK+iB,YAAwD,IAA1C/iB,KAAK2wB,UAAUxO,gBAAgB5hB,QAA0D,IAA1CP,KAAK4wB,UAAUzO,gBAAgB5hB,QAA2D,IAA3CP,KAAK6wB,WAAW1O,gBAAgB5hB,MAAA,EAkDnJ4sB,eAAeztB,UAAU6qB,YAAc,SAAUprB,EAAMC,EAAWK,EAAWY,GAC3E,IAAIG,EAAQrB,EAAKigB,QACbre,EAAa4iB,UAAUxF,aAO3B,GANApd,EAAWkN,EAAI9O,EAAK8O,EAEf9O,EAAK8O,IACRzN,GAAS,GAGG,IAAVA,EAAa,OAAOO,EACxB,IAAIC,GAAa,EACbI,EAAU8qB,iBAAiBuE,aAAatxB,EAAM,GAClDouB,aAAaxsB,EAAY5B,EAAM,EAAGC,EAAWK,EAAWY,EAAWW,GAEnE,IAAK,IAAIW,EAAI,EAAGA,EAAInB,EAAOmB,GAAK,EAC9BX,EAAYwsB,cAAczsB,EAAYK,EAAShC,EAAWK,EAAWY,GAAYW,GAK/EI,EAHEO,IAAMnB,EAAQ,GAAMrB,EAAK8O,EAGjBie,iBAAiBuE,aAAatxB,GAAOwC,EAAI,GAAKnB,GAF9C,KAKZ+sB,aAAaxsB,EAAY5B,EAAMwC,EAAI,EAAGvC,EAAWK,EAAWY,EAAWW,GAGzE,OAAOD,CAAA,EAGTosB,eAAeztB,UAAUsqB,cAAgB,SAAU7qB,GACjD,IAAIC,EACAK,EAEAY,EACAG,EAMEO,EACAC,EATFI,EAAMpB,KAAK4O,OAAOrO,OAGlBoB,EAAY3B,KAAK2wB,UAAUntB,EAC3BI,EAAYmF,KAAKO,IAAI,EAAGP,KAAKoB,MAAMnK,KAAK4wB,UAAUptB,IAClDK,EAAY7D,KAAK6wB,WAAWrtB,EAEhC,GAAkB,IAAd7B,EAIF,IAAKlC,EAAI,EAAGA,EAAI2B,EAAK3B,GAAK,EAAG,CAI3B,GAFAuB,GADAD,EAAYf,KAAK4O,OAAOnP,IACS+kB,qBAE1BzjB,EAAUwoB,MAAMtH,MAASjiB,KAAKiiB,MAAS9iB,EAM5C,IALA6B,EAAqBgjB,gBACrBjjB,EAAUwoB,MAAMtH,MAAA,EAChB7iB,EAAa2B,EAAUwoB,MAAMhF,MAAM3V,OACnCpO,EAAOO,EAAUwoB,MAAMhF,MAAMnF,QAExB/e,EAAI,EAAGA,EAAIG,EAAMH,GAAK,EACzBW,EAAqB+iB,SAAS/jB,KAAKuqB,YAAYnrB,EAAWiB,GAAIsB,EAAWiC,EAAWC,IAIxF9C,EAAUwoB,MAAMhF,MAAQxjB,EAAUyjB,oBAAA,CAIjCxkB,KAAK8iB,kBAAkBviB,SAC1BP,KAAKiiB,MAAA,EAAO,EAmJhB5b,gBAAgB,CAAC6iB,eAAgBkF,oBAEjCA,mBAAmB1uB,UAAU2pB,uBAAyB,SAAUlqB,EAAMC,GACpEY,KAAK0iB,SAAW1iB,KAAK0pB,YACrB1pB,KAAKsqB,OAAShK,gBAAgBsC,QAAQzjB,EAAMC,EAAKoB,EAAG,EAAG,KAAMR,MAC7DA,KAAK8wB,WAAaxQ,gBAAgBsC,QAAQzjB,EAAMC,EAAK2xB,GAAI,EAAG,KAAM/wB,MAClEA,KAAKgxB,SAAW5xB,EAAK6xB,GACrBjxB,KAAK+iB,YAAqD,IAAvC/iB,KAAKsqB,OAAOnI,gBAAgB5hB,MAAA,EAGjD6tB,mBAAmB1uB,UAAU6qB,YAAc,SAAUprB,EAAaC,EAAQK,EAAUY,GAClF,IAAIG,EAAemjB,UAAUxF,aAC7B3d,EAAayN,EAAI9O,EAAY8O,EAC7B,IAMIlN,EACAC,EACAI,EARAO,EAAQxC,EAAYoB,SAEnBpB,EAAY8O,IACftM,GAAS,GAMX,IAAIiC,EAAgB,GAEpB,IAAK7C,EAAI,EAAGA,EAAIY,EAAOZ,GAAK,EAC1BK,EAAU8qB,iBAAiBuE,aAAatxB,EAAa4B,GACrD6C,EAAclB,KAAKwrB,mBAAmB9sB,EAAShC,IAGjD,IAAKD,EAAY8O,EACf,IAAKlN,EAAIY,EAAQ,EAAGZ,GAAK,EAAGA,GAAK,EAC/BK,EAAU8qB,iBAAiBwE,qBAAqBvxB,EAAa4B,GAC7D6C,EAAclB,KAAKwrB,mBAAmB9sB,EAAShC,IAInDwE,EAAgBqqB,mBAAmBrqB,GAEnC,IAAIC,EAAY,KACZgL,EAAU,KAEd,IAAK9N,EAAI,EAAGA,EAAI6C,EAAcrD,OAAQQ,GAAK,EAAG,CAC5C,IAAIkN,EAAerK,EAAc7C,GAIjC,IAHI8N,IAAShL,EAAY+pB,UAAUptB,EAAcqO,EAASZ,EAAa,GAAIxO,EAAUY,IACrFwO,EAAUZ,EAAaA,EAAa1N,OAAS,GAExCS,EAAI,EAAGA,EAAIiN,EAAa1N,OAAQS,GAAK,EACxCI,EAAU6M,EAAajN,GAEnB6C,GAAasoB,WAAW/qB,EAAQyd,OAAO,GAAIhb,GAC7CrD,EAAagjB,QAAQpiB,EAAQyd,OAAO,GAAG,GAAIzd,EAAQyd,OAAO,GAAG,GAAI,IAAKre,EAAaD,SAAW,GAE9FC,EAAaijB,YAAYriB,EAAQyd,OAAO,GAAG,GAAIzd,EAAQyd,OAAO,GAAG,GAAIzd,EAAQyd,OAAO,GAAG,GAAIzd,EAAQyd,OAAO,GAAG,GAAIzd,EAAQyd,OAAO,GAAG,GAAIzd,EAAQyd,OAAO,GAAG,GAAIre,EAAaD,UAG5KC,EAAaijB,YAAYriB,EAAQyd,OAAO,GAAG,GAAIzd,EAAQyd,OAAO,GAAG,GAAIzd,EAAQyd,OAAO,GAAG,GAAIzd,EAAQyd,OAAO,GAAG,GAAIzd,EAAQyd,OAAO,GAAG,GAAIzd,EAAQyd,OAAO,GAAG,GAAIre,EAAaD,UAC1KsD,EAAYzC,EAAQyd,OAAO,GAK/B,OADIjb,EAAcrD,QAAQqtB,UAAUptB,EAAcqO,EAASjL,EAAc,GAAG,GAAInE,EAAUY,GACnFG,CAAA,EAGT4tB,mBAAmB1uB,UAAUsqB,cAAgB,SAAU7qB,GACrD,IAAIC,EACAK,EAEAY,EACAG,EAMEO,EACAC,EATFI,EAAMpB,KAAK4O,OAAOrO,OAGlBoB,EAAS3B,KAAKsqB,OAAO9mB,EACrBI,EAAa5D,KAAK8wB,WAAWttB,EAC7BK,EAAW7D,KAAKgxB,SAEpB,GAAe,IAAXrvB,EAIF,IAAKlC,EAAI,EAAGA,EAAI2B,EAAK3B,GAAK,EAAG,CAI3B,GAFAuB,GADAD,EAAYf,KAAK4O,OAAOnP,IACS+kB,qBAE1BzjB,EAAUwoB,MAAMtH,MAASjiB,KAAKiiB,MAAS9iB,EAM5C,IALA6B,EAAqBgjB,gBACrBjjB,EAAUwoB,MAAMtH,MAAA,EAChB7iB,EAAa2B,EAAUwoB,MAAMhF,MAAM3V,OACnCpO,EAAOO,EAAUwoB,MAAMhF,MAAMnF,QAExB/e,EAAI,EAAGA,EAAIG,EAAMH,GAAK,EACzBW,EAAqB+iB,SAAS/jB,KAAKuqB,YAAYnrB,EAAWiB,GAAIsB,EAAQkC,EAAUD,IAIpF7C,EAAUwoB,MAAMhF,MAAQxjB,EAAUyjB,oBAAA,CAIjCxkB,KAAK8iB,kBAAkBviB,SAC1BP,KAAKiiB,MAAA,EAAO,EAoDhB,IAAIiP,YAAc,WAChB,IACI/xB,EAAY,CACd0gB,EAAG,EACHsR,KAAM,EACNviB,OAAQ,GACRhB,KAAM,CACJgB,OAAQ,KAGRxP,EAAqB,GAEzBA,EAAqBA,EAAmB+D,OAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,OAChP,IAAI1D,EAAqB,CAAC,WAAY,WAAY,WAAY,WAAY,YACtEY,EAAkB,CAAC,MAAO,MAiB9B,SAASG,EAAUrB,EAAMC,GACvB,IAAIK,EAAayG,UAAU,QAE3BzG,EAAWwd,aAAa,kBACxBxd,EAAW4K,MAAM+mB,WAAahyB,EAC9B,IAAIiB,EAAO6F,UAAU,QAErB7F,EAAK8c,UAAY,iBAEjB1d,EAAW4K,MAAMC,SAAW,WAC5B7K,EAAW4K,MAAMG,KAAO,WACxB/K,EAAW4K,MAAME,IAAM,WAEvB9K,EAAW4K,MAAMgnB,SAAW,QAE5B5xB,EAAW4K,MAAMinB,YAAc,SAC/B7xB,EAAW4K,MAAMknB,UAAY,SAC7B9xB,EAAW4K,MAAMmnB,WAAa,SAC9B/xB,EAAW4K,MAAMonB,cAAgB,IACjChyB,EAAW8U,YAAYlU,GACvB8F,SAASurB,KAAKnd,YAAY9U,GAE1B,IAAIe,EAAQH,EAAKsxB,YAEjB,OADAtxB,EAAKgK,MAAM+mB,WAtCb,SAAyBjyB,GACvB,IACIC,EADAK,EAAcN,EAAKkQ,MAAM,KAEzBhP,EAAMZ,EAAYc,OAClBC,EAAkB,GAEtB,IAAKpB,EAAI,EAAGA,EAAIiB,EAAKjB,GAAK,EACD,eAAnBK,EAAYL,IAA0C,cAAnBK,EAAYL,IACjDoB,EAAgBkC,KAAKjD,EAAYL,IAIrC,OAAOoB,EAAgB0Q,KAAK,KAZ9B,CAsC0C/R,GAAQ,KAAOC,EAChD,CACLwyB,KAAMvxB,EACNwf,EAAGrf,EACHqxB,OAAQpyB,EAAA,CA+CZ,SAASsB,EAAa5B,EAAUC,GAC9B,IACIK,EADAY,EAAS8F,SAASurB,MAAQtyB,EAAM,MAAQ,SAExCoB,EAAY6tB,kBAAkBlvB,GAElC,GAAe,QAAXkB,EAAkB,CACpB,IAAIU,EAAUuM,SAAS,QACvBvM,EAAQsJ,MAAMgnB,SAAW,QAEzBtwB,EAAQkc,aAAa,cAAe9d,EAAS2yB,SAC7C/wB,EAAQkc,aAAa,aAAczc,EAAU6J,OAC7CtJ,EAAQkc,aAAa,cAAezc,EAAUguB,QAC9CztB,EAAQgxB,YAAc,IAElB5yB,EAAS6yB,QACXjxB,EAAQsJ,MAAM+mB,WAAa,UAC3BrwB,EAAQkc,aAAa,QAAS9d,EAAS6yB,SAEvCjxB,EAAQsJ,MAAM+mB,WAAajyB,EAAS2yB,QAGtC1yB,EAAImV,YAAYxT,GAChBtB,EAASsB,CAAA,KACJ,CACL,IAAIC,EAAgB,IAAIixB,gBAAgB,IAAK,KAAK9f,WAAW,MAC7DnR,EAAckxB,KAAO1xB,EAAU6J,MAAQ,IAAM7J,EAAUguB,OAAS,UAAYrvB,EAAS2yB,QACrFryB,EAASuB,CAAA,CAYX,MAAO,CACLmxB,YAVF,SAAiBhzB,GACf,MAAe,QAAXkB,GACFZ,EAAOsyB,YAAc5yB,EACdM,EAAO2yB,yBAGT3yB,EAAO0yB,YAAYhzB,GAAM8S,KAAA,GAkOpC,IAAIjR,EAAO,WACThB,KAAKqZ,MAAQ,GACbrZ,KAAKuP,MAAQ,KACbvP,KAAKqyB,cAAgB,EACrBryB,KAAKqW,UAAA,EACLrW,KAAKsyB,SAAA,EACLtyB,KAAKuyB,SAAWC,KAAKC,MACrBzyB,KAAK0yB,kBAAoB1yB,KAAK2yB,YAAY3f,KAAKhT,MAC/CA,KAAK4yB,uBAAyB5yB,KAAK6yB,iBAAiB7f,KAAKhT,KAAA,EAgB3D,OAbAgB,EAAK8xB,WAhCL,SAAoB3zB,EAAeC,GACjC,IAAIiB,EAAMlB,EAAcwN,SAAS,IAAMvN,EAAeuN,SAAS,IAC/D,OAA4C,IAArClN,EAAmBkB,QAAQN,EAAA,EA+BpCW,EAAK+xB,kBA5BL,SAA2B5zB,EAAeC,GACxC,OAAKA,EAIED,IAAkBkB,EAAgB,IAAMjB,IAAmBiB,EAAgB,GAHzElB,IAAkBkB,EAAgB,IA2B7CW,EAAKgyB,oBArBL,SAA6B7zB,GAC3B,OAA+C,IAAxCC,EAAmBuB,QAAQxB,EAAA,EA8BpC6B,EAAKtB,UATe,CAClB6Z,SA9HF,SAAkBpa,GAChB,GAAKA,EAAL,CAQA,IAAIC,EAJCY,KAAKuP,QACRvP,KAAKuP,MAAQ,IAIf,IACI9P,EAEAY,EAHAG,EAAMrB,EAAMoB,OAEZQ,EAAOf,KAAKuP,MAAMhP,OAGtB,IAAKnB,EAAI,EAAGA,EAAIoB,EAAKpB,GAAK,EAAG,CAI3B,IAHAK,EAAI,EACJY,GAAA,EAEOZ,EAAIsB,GACLf,KAAKuP,MAAM9P,GAAG4K,QAAUlL,EAAMC,GAAGiL,OAASrK,KAAKuP,MAAM9P,GAAGqyB,UAAY3yB,EAAMC,GAAG0yB,SAAW9xB,KAAKuP,MAAM9P,GAAGwzB,KAAO9zB,EAAMC,GAAG6zB,KACxH5yB,GAAA,GAGFZ,GAAK,EAGFY,IACHL,KAAKuP,MAAM7M,KAAKvD,EAAMC,IACtB2B,GAAQ,MAkGZyY,SA1OF,SAAkBra,EAAUC,GAC1B,GAAKD,EAAL,CAKA,GAAIa,KAAKuP,MAGP,OAFAvP,KAAKqW,UAAA,OACLrW,KAAKqZ,MAAQla,EAAS+zB,MAIxB,IAAK/sB,SAASurB,KAOZ,OANA1xB,KAAKqW,UAAA,EACLlX,EAAS+zB,KAAKC,SAAQ,SAAUh0B,GAC9BA,EAAKi0B,OAASryB,EAAa5B,GAC3BA,EAAKk0B,MAAQ,CAAC,CAAD,SAEfrzB,KAAKqZ,MAAQla,EAAS+zB,MAIxB,IACIzzB,EADAY,EAAUlB,EAAS+zB,KAEnBlyB,EAAMX,EAAQE,OACda,EAAgBJ,EAEpB,IAAKvB,EAAI,EAAGA,EAAIuB,EAAKvB,GAAK,EAAG,CAC3B,IACIkC,EACAiC,EAFAC,GAAA,EAOJ,GAJAxD,EAAQZ,GAAG6zB,QAAA,EACXjzB,EAAQZ,GAAG8zB,SAAW/yB,EAAUH,EAAQZ,GAAGqyB,QAAS,aACpDzxB,EAAQZ,GAAG+zB,SAAWhzB,EAAUH,EAAQZ,GAAGqyB,QAAS,cAE/CzxB,EAAQZ,GAAGg0B,OAGT,GAA2B,MAAvBpzB,EAAQZ,GAAGi0B,SAAyC,IAAtBrzB,EAAQZ,GAAGmS,QAOlD,IANAjQ,EAAiBwE,SAASwtB,iBAAiB,kCAAoCtzB,EAAQZ,GAAGqyB,QAAU,qCAAuCzxB,EAAQZ,GAAGqyB,QAAU,OAE7IvxB,OAAS,IAC1BsD,GAAA,GAGEA,EAAgB,CAClB,IAAIgL,EAAI3I,UAAU,SAClB2I,EAAEoO,aAAa,YAAa5c,EAAQZ,GAAGi0B,SACvC7kB,EAAEoO,aAAa,WAAY5c,EAAQZ,GAAGmS,QACtC/C,EAAEoO,aAAa,WAAY5c,EAAQZ,GAAGqyB,SACtCjjB,EAAE3D,KAAO,WACT2D,EAAEsO,UAAY,4BAA8B9c,EAAQZ,GAAGqyB,QAAU,mCAAqCzxB,EAAQZ,GAAGg0B,MAAQ,OACzHr0B,EAAKmV,YAAY1F,EAAA,OAEd,GAA2B,MAAvBxO,EAAQZ,GAAGi0B,SAAyC,IAAtBrzB,EAAQZ,GAAGmS,OAAc,CAGhE,IAFAjQ,EAAiBwE,SAASwtB,iBAAiB,2CAEtC/vB,EAAI,EAAGA,EAAIjC,EAAepB,OAAQqD,GAAK,GACgB,IAAtDjC,EAAeiC,GAAGgwB,KAAKjzB,QAAQN,EAAQZ,GAAGg0B,SAE5C5vB,GAAA,GAIJ,GAAIA,EAAgB,CAClB,IAAIoK,EAAI/H,UAAU,QAClB+H,EAAEgP,aAAa,YAAa5c,EAAQZ,GAAGi0B,SACvCzlB,EAAEgP,aAAa,WAAY5c,EAAQZ,GAAGmS,QACtC3D,EAAE/C,KAAO,WACT+C,EAAE4lB,IAAM,aACR5lB,EAAE2lB,KAAOvzB,EAAQZ,GAAGg0B,MACpBttB,SAASurB,KAAKnd,YAAYtG,EAAA,OAEvB,GAA2B,MAAvB5N,EAAQZ,GAAGi0B,SAAyC,IAAtBrzB,EAAQZ,GAAGmS,OAAc,CAGhE,IAFAjQ,EAAiBwE,SAASwtB,iBAAiB,+CAEtC/vB,EAAI,EAAGA,EAAIjC,EAAepB,OAAQqD,GAAK,EACtCvD,EAAQZ,GAAGg0B,QAAU9xB,EAAeiC,GAAGuD,MAEzCtD,GAAA,GAIJ,GAAIA,EAAgB,CAClB,IAAIqK,EAAKhI,UAAU,QACnBgI,EAAG+O,aAAa,YAAa5c,EAAQZ,GAAGi0B,SACxCxlB,EAAG+O,aAAa,WAAY5c,EAAQZ,GAAGmS,QACvC1D,EAAG+O,aAAa,MAAO,cACvB/O,EAAG+O,aAAa,OAAQ5c,EAAQZ,GAAGg0B,OACnCr0B,EAAKmV,YAAYrG,EAAA,QArDnB7N,EAAQZ,GAAG6zB,QAAA,EACXlyB,GAAiB,EAwDnBf,EAAQZ,GAAG2zB,OAASryB,EAAaV,EAAQZ,GAAIL,GAC7CiB,EAAQZ,GAAG4zB,MAAQ,CAAC,EACpBrzB,KAAKqZ,MAAM3W,KAAKrC,EAAQZ,GAAA,CAGJ,IAAlB2B,EACFpB,KAAKqW,UAAA,EAIL+D,WAAWpa,KAAK6yB,iBAAiB7f,KAAKhT,MAAO,UArG7CA,KAAKqW,UAAA,CAAW,EAyOlByd,YA9FF,SAAqB10B,EAAOK,EAAOY,GAIjC,IAHA,IAAIG,EAAI,EACJO,EAAMf,KAAKuP,MAAMhP,OAEdC,EAAIO,GAAK,CACd,GAAIf,KAAKuP,MAAM/O,GAAGyyB,KAAO7zB,GAASY,KAAKuP,MAAM/O,GAAG6J,QAAU5K,GAASO,KAAKuP,MAAM/O,GAAGsxB,UAAYzxB,EAC3F,OAAOL,KAAKuP,MAAM/O,GAGpBA,GAAK,EASP,OANsB,iBAAVpB,GAA8C,KAAxBA,EAAM20B,WAAW,KAAc30B,IAAU40B,SAAWA,QAAQC,OAC1Fj0B,KAAKsyB,UACPtyB,KAAKsyB,SAAA,GAIAnzB,CAAA,EA6EP+0B,cAtDF,SAAuB/0B,GAIrB,IAHA,IAAIC,EAAI,EACJK,EAAMO,KAAKqZ,MAAM9Y,OAEdnB,EAAIK,GAAK,CACd,GAAIO,KAAKqZ,MAAMja,GAAG+0B,QAAUh1B,EAC1B,OAAOa,KAAKqZ,MAAMja,GAGpBA,GAAK,EAGP,OAAOY,KAAKqZ,MAAM,IA2ClB8Y,YA3EF,SAAqBhzB,EAAQC,EAAUK,GACrC,IAAIY,EAAWL,KAAKk0B,cAAc90B,GAE9BoB,EAAQrB,EAAO40B,WAAW,GAE9B,IAAK1zB,EAASgzB,MAAM7yB,EAAQ,GAAI,CAC9B,IAAIO,EAAUV,EAAS+yB,OAEvB,GAAe,MAAXj0B,EAAgB,CAClB,IAAI6B,EAAaD,EAAQoxB,YAAY,IAAMhzB,EAAS,KAChDiC,EAAaL,EAAQoxB,YAAY,MACrC9xB,EAASgzB,MAAM7yB,EAAQ,IAAMQ,EAAaI,GAAc,SAExDf,EAASgzB,MAAM7yB,EAAQ,GAAKO,EAAQoxB,YAAYhzB,GAAU,IAI9D,OAAOkB,EAASgzB,MAAM7yB,EAAQ,GAAKf,CAAA,EA2DnCozB,iBApUF,WACE,IAAI1zB,EAEAC,EACAK,EAFAY,EAAML,KAAKqZ,MAAM9Y,OAGjBC,EAAcH,EAElB,IAAKlB,EAAI,EAAGA,EAAIkB,EAAKlB,GAAK,EACpBa,KAAKqZ,MAAMla,GAAGm0B,OAChB9yB,GAAe,EACoB,MAA1BR,KAAKqZ,MAAMla,GAAGu0B,SAA4C,IAAzB1zB,KAAKqZ,MAAMla,GAAGyS,OACxD5R,KAAKqZ,MAAMla,GAAGm0B,QAAA,GAEdl0B,EAAOY,KAAKqZ,MAAMla,GAAGo0B,SAAS3B,KAC9BnyB,EAAIO,KAAKqZ,MAAMla,GAAGo0B,SAAS1T,EAEvBzgB,EAAKuyB,cAAgBlyB,GACvBe,GAAe,EACfR,KAAKqZ,MAAMla,GAAGm0B,QAAA,IAEdl0B,EAAOY,KAAKqZ,MAAMla,GAAGq0B,SAAS5B,KAC9BnyB,EAAIO,KAAKqZ,MAAMla,GAAGq0B,SAAS3T,EAEvBzgB,EAAKuyB,cAAgBlyB,IACvBe,GAAe,EACfR,KAAKqZ,MAAMla,GAAGm0B,QAAA,IAIdtzB,KAAKqZ,MAAMla,GAAGm0B,SAChBtzB,KAAKqZ,MAAMla,GAAGq0B,SAAS3B,OAAOuC,WAAWC,YAAYr0B,KAAKqZ,MAAMla,GAAGq0B,SAAS3B,QAC5E7xB,KAAKqZ,MAAMla,GAAGo0B,SAAS1B,OAAOuC,WAAWC,YAAYr0B,KAAKqZ,MAAMla,GAAGo0B,SAAS1B,UAK9D,IAAhBrxB,GAAqBgyB,KAAKC,MAAQzyB,KAAKuyB,SAjGxB,IAkGjBnY,WAAWpa,KAAK4yB,uBAAwB,IAExCxY,WAAWpa,KAAK0yB,kBAAmB,KA8RrCC,YAzBF,WACE3yB,KAAKqW,UAAA,CAAW,GA2BXrV,CAAA,CAtYS,GAyYlB,SAASszB,oBAAA,CAETA,kBAAkB50B,UAAY,CAC5B60B,eAAgB,WAEdv0B,KAAKw0B,WAAA,EAELx0B,KAAKy0B,QAAA,EAELz0B,KAAK00B,eAAA,EAEL10B,KAAK20B,qBAAuB,IAE9BC,uBAAwB,SAAgCz1B,IACA,IAAlDa,KAAK20B,qBAAqBh0B,QAAQxB,IACpCa,KAAK20B,qBAAqBjyB,KAAKvD,EAAA,EAGnC01B,0BAA2B,SAAmC11B,IACN,IAAlDa,KAAK20B,qBAAqBh0B,QAAQxB,IACpCa,KAAK20B,qBAAqB5f,OAAO/U,KAAK20B,qBAAqBh0B,QAAQxB,GAAY,IAGnF21B,uBAAwB,SAAgC31B,GACtDa,KAAK+0B,iBAAiB51B,EAAA,EAExB61B,kBAAmB,WACbh1B,KAAKi1B,eAAeC,MAAM9zB,EAAEoC,GAAK,GAC9BxD,KAAK00B,eAAiB10B,KAAKqY,WAAW8c,aAAaC,oBACtDp1B,KAAK00B,eAAA,EACL10B,KAAKsc,QAEEtc,KAAK00B,gBACd10B,KAAK00B,eAAA,EACL10B,KAAKuc,OAAA,EAYTwY,iBAAkB,SAA0B51B,GACtCa,KAAK4N,KAAK4B,GAAKxP,KAAK4N,KAAK8B,IAAMvQ,GAAOa,KAAK4N,KAAK6B,GAAKzP,KAAK4N,KAAK8B,GAAKvQ,GAAA,IAClEa,KAAKw0B,YACPx0B,KAAKqY,WAAW4J,MAAA,EAChBjiB,KAAKiiB,MAAA,EACLjiB,KAAKw0B,WAAA,EACLx0B,KAAKuc,SAAA,IAEEvc,KAAKw0B,YACdx0B,KAAKqY,WAAW4J,MAAA,EAChBjiB,KAAKw0B,WAAA,EACLx0B,KAAKsc,OAAA,EAGT+Y,iBAAkB,WAChB,IAAIl2B,EACAC,EAAMY,KAAK20B,qBAAqBp0B,OAEpC,IAAKpB,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EACxBa,KAAK20B,qBAAqBx1B,GAAGwb,YAAY3a,KAAKsiB,cAAA,EAMlDgT,iBAAkB,WAChB,MAAO,CACL/qB,IAAK,EACLC,KAAM,EACNyH,MAAO,IACPC,OAAQ,MAGZqjB,aAAc,WACZ,OAAqB,IAAjBv1B,KAAK4N,KAAKa,GACL,CACLoR,EAAG7f,KAAK4N,KAAK4nB,SAASvjB,MACtBtQ,EAAG3B,KAAK4N,KAAK4nB,SAAStjB,QAInB,CACL2N,EAAG7f,KAAK4N,KAAKqE,MACbtQ,EAAG3B,KAAK4N,KAAKsE,OAAA,GAKnB,IAAIujB,cACEC,eAAiB,CACnB,EAAG,cACH,EAAG,WACH,EAAG,SACH,EAAG,UACH,EAAG,SACH,EAAG,UACH,EAAG,cACH,EAAG,aACH,EAAG,aACH,EAAG,aACH,GAAI,aACJ,GAAI,YACJ,GAAI,MACJ,GAAI,aACJ,GAAI,QACJ,GAAI,cAEC,SAAUv2B,GACf,OAAOu2B,eAAev2B,IAAS,KAnB7Bu2B,eAuBN,SAASC,aAAax2B,EAAMC,EAAMK,GAChCO,KAAK6D,EAAIyc,gBAAgBsC,QAAQxjB,EAAMD,EAAKqE,EAAG,EAAG,EAAG/D,EAAA,CAGvD,SAASm2B,YAAYz2B,EAAMC,EAAMK,GAC/BO,KAAK6D,EAAIyc,gBAAgBsC,QAAQxjB,EAAMD,EAAKqE,EAAG,EAAG,EAAG/D,EAAA,CAGvD,SAASo2B,YAAY12B,EAAMC,EAAMK,GAC/BO,KAAK6D,EAAIyc,gBAAgBsC,QAAQxjB,EAAMD,EAAKqE,EAAG,EAAG,EAAG/D,EAAA,CAGvD,SAASq2B,YAAY32B,EAAMC,EAAMK,GAC/BO,KAAK6D,EAAIyc,gBAAgBsC,QAAQxjB,EAAMD,EAAKqE,EAAG,EAAG,EAAG/D,EAAA,CAGvD,SAASs2B,iBAAiB52B,EAAMC,EAAMK,GACpCO,KAAK6D,EAAIyc,gBAAgBsC,QAAQxjB,EAAMD,EAAKqE,EAAG,EAAG,EAAG/D,EAAA,CAGvD,SAASu2B,gBAAgB72B,EAAMC,EAAMK,GACnCO,KAAK6D,EAAIyc,gBAAgBsC,QAAQxjB,EAAMD,EAAKqE,EAAG,EAAG,EAAG/D,EAAA,CAGvD,SAASw2B,eAAe92B,EAAMC,EAAMK,GAClCO,KAAK6D,EAAIyc,gBAAgBsC,QAAQxjB,EAAMD,EAAKqE,EAAG,EAAG,EAAG/D,EAAA,CAGvD,SAASy2B,gBACPl2B,KAAK6D,EAAI,CAAC,CAAD,CAGX,SAASsyB,eAAeh3B,EAAMC,GAC5B,IAEIK,EAFAY,EAAUlB,EAAKi3B,IAAM,GACzBp2B,KAAKq2B,eAAiB,GAEtB,IACI71B,EADAO,EAAMV,EAAQE,OAGlB,IAAKd,EAAI,EAAGA,EAAIsB,EAAKtB,GAAK,EACxBe,EAAa,IAAI81B,YAAYj2B,EAAQZ,GAAIL,GACzCY,KAAKq2B,eAAe3zB,KAAKlC,EAAA,CAI7B,SAAS81B,YAAYn3B,EAAMC,GACzBY,KAAKypB,KAAKtqB,EAAMC,EAAA,CAgElB,SAASm3B,cAAA,CAkFT,SAASC,eAAA,CAiDT,SAASC,eAAet3B,EAAMC,EAAYK,GACxCO,KAAK02B,YACL12B,KAAKu0B,iBACLv0B,KAAKiT,UAAY7T,EAAWid,aAAald,EAAKwP,OAC9C3O,KAAK22B,YAAcv3B,EAAWw3B,YAAY7iB,SAAS/T,KAAKiT,WACxDjT,KAAK62B,aAAa13B,EAAMC,EAAYK,EAAA,CA8BtC,SAASq3B,aAAa33B,EAAMC,EAAYK,GACtCO,KAAK02B,YACL12B,KAAKu0B,iBACLv0B,KAAKiT,UAAY7T,EAAWid,aAAald,EAAKwP,OAC9C3O,KAAK62B,aAAa13B,EAAMC,EAAYK,GACpCO,KAAK+2B,YAAA,EACL/2B,KAAKg3B,UAAA,EACL,IAAI32B,EAAYL,KAAKqY,WAAW+D,cAAcpc,KAAKiT,WACnDjT,KAAKi3B,MAAQj3B,KAAKqY,WAAWX,gBAAgBzQ,YAAY5G,GACzDL,KAAKk3B,aAAe,EACpBl3B,KAAKqY,WAAWX,gBAAgB7Q,SAAS7G,MACzCA,KAAKm3B,kBAAoB,EACzBn3B,KAAK2G,QAAU,EACf3G,KAAKo3B,gBAAkB,KACvBp3B,KAAKmV,GAAKhW,EAAKgW,GAAKmL,gBAAgBsC,QAAQ5iB,KAAMb,EAAKgW,GAAI,EAAG/V,EAAWmX,UAAWvW,MAAQ,CAC1Fq3B,cAAA,GAEFr3B,KAAKs3B,GAAKhX,gBAAgBsC,QAAQ5iB,KAAMb,EAAKo4B,IAAMp4B,EAAKo4B,GAAGD,GAAKn4B,EAAKo4B,GAAGD,GAAK,CAC3E9oB,EAAG,CAAC,MACH,EAAG,IAAMxO,KAAA,CA2Ed,SAASw3B,eAAA,CAmNT,SAASC,mBAAA,CAsFT,SAASC,YAAYv4B,EAAMC,EAASK,GAClCO,KAAK4N,KAAOzO,EACZa,KAAK23B,QAAUv4B,EACfY,KAAKqY,WAAa5Y,EAClBO,KAAK43B,WAAa,GAClB53B,KAAKsO,gBAAkBtO,KAAK4N,KAAKU,iBAAmB,GACpDtO,KAAK63B,YAAc,KACnB,IACIx3B,EAIAG,EALAO,EAAOf,KAAKqY,WAAWC,KAEvBtX,EAAMhB,KAAKsO,gBAAkBtO,KAAKsO,gBAAgB/N,OAAS,EAC/DP,KAAK83B,SAAW1vB,iBAAiBpH,GACjChB,KAAK+3B,UAAY,GAEjB,IAGI32B,EACAO,EAEAiC,EACAC,EACAgL,EACAZ,EATAC,EAAalO,KAAKsO,gBAClBD,EAAQ,EACRsE,EAAe,GAGfqM,EAAU7S,kBAKV8S,EAAW,WACXzb,EAAU,YAEd,IAAKnD,EAAI,EAAGA,EAAIW,EAAKX,GAAK,EAkBxB,IAjB2B,MAAvB6N,EAAW7N,GAAG23B,MAAuC,MAAvB9pB,EAAW7N,GAAG23B,MAAgB9pB,EAAW7N,GAAG43B,KAA6B,MAAtB/pB,EAAW7N,GAAGe,EAAEoN,GAAaN,EAAW7N,GAAGe,EAAEke,KAChIL,EAAW,OACXzb,EAAU,QAGgB,MAAvB0K,EAAW7N,GAAG23B,MAAuC,MAAvB9pB,EAAW7N,GAAG23B,MAA2B,IAAV3pB,EAOhEzK,EAAO,OANPA,EAAO0J,SAAS,SACX2P,aAAa,OAAQ,WAC1BrZ,EAAKqZ,aAAa,QAASjd,KAAK23B,QAAQ/V,KAAKhU,KAAKiS,GAAK,GACvDjc,EAAKqZ,aAAa,SAAUjd,KAAK23B,QAAQ/V,KAAKhU,KAAKjM,GAAK,GACxDgR,EAAajQ,KAAKkB,IAKpBpD,EAAO8M,SAAS,QAEW,MAAvBY,EAAW7N,GAAG23B,KAEhBh4B,KAAK83B,SAASz3B,GAAK,CACjBoP,GAAI6Q,gBAAgBsC,QAAQ5iB,KAAK23B,QAASzpB,EAAW7N,GAAGe,EAAG,EAAG,IAAMpB,KAAK23B,SACzEO,KAAM7T,qBAAqBe,aAAaplB,KAAK23B,QAASzpB,EAAW7N,GAAI,GACrEuc,KAAMpc,EACN23B,SAAU,IAEZp3B,EAAKwT,YAAY/T,OACZ,CAIL,IAAI0e,EAgCJ,GAnCA7Q,GAAS,EACT7N,EAAKyc,aAAa,OAA+B,MAAvB/O,EAAW7N,GAAG23B,KAAe,UAAY,WACnEx3B,EAAKyc,aAAa,YAAa,WAGL,IAAtB/O,EAAW7N,GAAGif,EAAE9Q,GAClByQ,EAAW,OACXzb,EAAU,OACVyK,EAAIqS,gBAAgBsC,QAAQ5iB,KAAK23B,QAASzpB,EAAW7N,GAAGif,EAAG,EAAG,KAAMtf,KAAK23B,SACzEzY,EAAW/S,mBACXtI,EAAWyJ,SAAS,WACX2P,aAAa,KAAMiC,IAC5BrQ,EAAUvB,SAAS,iBACX2P,aAAa,WAAY,SACjCpO,EAAQoO,aAAa,KAAM,iBAC3BpO,EAAQoO,aAAa,SAAU,KAC/BpZ,EAAS0Q,YAAY1F,GACrB9N,EAAKwT,YAAY1Q,GACjBrD,EAAKyc,aAAa,SAAiC,MAAvB/O,EAAW7N,GAAG23B,KAAe,UAAY,aAErEnpB,EAAU,KACVZ,EAAI,MAINjO,KAAK43B,WAAWv3B,GAAK,CACnBuc,KAAMpc,EACN8e,EAAGrR,EACHmqB,MAAOvpB,EACPspB,SAAU,GACVE,aAAc,GACdC,SAAUpZ,EACVqZ,WAAY,GAGa,MAAvBrqB,EAAW7N,GAAG23B,KAAc,CAC9Br2B,EAAOgR,EAAapS,OACpB,IAAI+e,EAAIhS,SAAS,KAEjB,IAAKlM,EAAI,EAAGA,EAAIO,EAAMP,GAAK,EACzBke,EAAE/K,YAAY5B,EAAavR,IAG7B,IAAIme,EAAOjS,SAAS,QACpBiS,EAAKtC,aAAa,YAAa,SAC/BsC,EAAKtC,aAAa,KAAM+B,EAAU,IAAM3Q,GACxCkR,EAAKhL,YAAY/T,GACjBO,EAAKwT,YAAYgL,GACjBD,EAAErC,aAAa,OAAQ,OAAShX,kBAAoB,IAAM+Y,EAAU,IAAM3Q,EAAQ,KAClFsE,EAAapS,OAAS,EACtBoS,EAAajQ,KAAK4c,EAAA,MAElB3M,EAAajQ,KAAKlC,GAGhB0N,EAAW7N,GAAG43B,MAAQj4B,KAAK+3B,YAC7B/3B,KAAK+3B,UAAY/3B,KAAKw4B,wBAIxBx4B,KAAK83B,SAASz3B,GAAK,CACjBuc,KAAMpc,EACN23B,SAAU,GACV1oB,GAAI6Q,gBAAgBsC,QAAQ5iB,KAAK23B,QAASzpB,EAAW7N,GAAGe,EAAG,EAAG,IAAMpB,KAAK23B,SACzEO,KAAM7T,qBAAqBe,aAAaplB,KAAK23B,QAASzpB,EAAW7N,GAAI,GACrEo4B,QAAS70B,GAGN5D,KAAK83B,SAASz3B,GAAG63B,KAAK1pB,GACzBxO,KAAK04B,SAASxqB,EAAW7N,GAAIL,KAAK83B,SAASz3B,GAAG63B,KAAK10B,EAAGxD,KAAK83B,SAASz3B,GAAA,CAQ1E,IAHAL,KAAK63B,YAAcvqB,SAAS2R,GAC5Bje,EAAM2R,EAAapS,OAEdF,EAAI,EAAGA,EAAIW,EAAKX,GAAK,EACxBL,KAAK63B,YAAYtjB,YAAY5B,EAAatS,IAGxCgO,EAAQ,IACVrO,KAAK63B,YAAY5a,aAAa,KAAM+B,GACpChf,KAAK23B,QAAQgB,cAAc1b,aAAazZ,EAAS,OAASyC,kBAAoB,IAAM+Y,EAAU,KAC9Fje,EAAKwT,YAAYvU,KAAK63B,cAGpB73B,KAAK83B,SAASv3B,QAChBP,KAAK23B,QAAQ/C,uBAAuB50B,KAAA,CAxvBxCqG,gBAAgB,CAACwc,0BAA2ByT,aAC5CA,YAAY52B,UAAUgjB,SAAW4T,YAAY52B,UAAUsjB,yBAEvDsT,YAAY52B,UAAU+pB,KAAO,SAAUtqB,EAAMC,GAI3C,IAAIK,EAHJO,KAAK4N,KAAOzO,EACZa,KAAKq2B,eAAiB,GACtBr2B,KAAKijB,6BAA6B7jB,GAElC,IACIiB,EADAG,EAAMR,KAAK4N,KAAKwoB,GAAG71B,OAEnBQ,EAAUf,KAAK4N,KAAKwoB,GAExB,IAAK32B,EAAI,EAAGA,EAAIe,EAAKf,GAAK,EAAG,CAG3B,OAFAY,EAAM,KAEEU,EAAQtB,GAAGgP,IACjB,KAAK,EACHpO,EAAM,IAAIs1B,aAAa50B,EAAQtB,GAAIL,EAASY,MAC5C,MAEF,KAAK,EACHK,EAAM,IAAIu1B,YAAY70B,EAAQtB,GAAIL,EAASY,MAC3C,MAEF,KAAK,EACHK,EAAM,IAAIw1B,YAAY90B,EAAQtB,GAAIL,EAASY,MAC3C,MAEF,KAAK,EACHK,EAAM,IAAIy1B,YAAY/0B,EAAQtB,GAAIL,EAASY,MAC3C,MAEF,KAAK,EACL,KAAK,EACHK,EAAM,IAAI41B,eAAel1B,EAAQtB,GAAIL,EAASY,MAC9C,MAEF,KAAK,GACHK,EAAM,IAAI01B,iBAAiBh1B,EAAQtB,GAAIL,EAASY,MAChD,MAEF,KAAK,GACHK,EAAM,IAAI21B,gBAAgBj1B,EAAQtB,GAAIL,EAASY,MAC/C,MAEF,KAAK,EACHK,EAAM,IAAI81B,eAAep1B,EAAQtB,GAAIL,EAASY,MAC9C,MAGF,QACEK,EAAM,IAAI61B,cAAcn1B,EAAQtB,GAAIL,EAASY,MAI7CK,GACFL,KAAKq2B,eAAe3zB,KAAKrC,EAAA,GAO/Bk2B,YAAY72B,UAAY,CACtBk5B,WAAY,WACV,IAAK54B,KAAK4N,KAAKQ,QACb,OAAO,EAMT,IAHA,IAAIjP,EAAI,EACJC,EAAMY,KAAK4N,KAAKU,gBAAgB/N,OAE7BpB,EAAIC,GAAK,CACd,GAA0C,MAAtCY,KAAK4N,KAAKU,gBAAgBnP,GAAG64B,OAAA,IAAgBh4B,KAAK4N,KAAKU,gBAAgBnP,GAAG4Q,GAC5E,OAAO,EAGT5Q,GAAK,EAGP,OAAO,GAETsa,gBAAiB,WACf,IAAIta,EAAwB8N,0BAE5B,GAAK9N,EAAL,CAIA,IAAIC,EAA2BD,EAAsB,SACjDM,EAA6BN,EAAsB,WACnDkB,EAA2BlB,EAAsB,SACjDqB,EAA0BrB,EAAsB,QAChD4B,EAA0B5B,EAAsB,QACpDa,KAAK64B,eAAiBz5B,EAAyBY,MAE3CA,KAAK4N,KAAKQ,SAAWpO,KAAK84B,aAC5B94B,KAAK64B,eAAeE,sBAAsB/4B,KAAK84B,aAGjD,IAAI93B,EAAmBvB,EAA2Bu5B,uBAAuBh5B,KAAMA,KAAK64B,gBACpF74B,KAAK64B,eAAeI,yBAAyBj4B,GAExB,IAAjBhB,KAAK4N,KAAKa,IAAYzO,KAAK4N,KAAKgI,GAClC5V,KAAK8V,cAAgB/U,EAAwBf,MACnB,IAAjBA,KAAK4N,KAAKa,IACnBzO,KAAK64B,eAAeK,eAAiB74B,EAAyBL,KAAKm5B,WAAYn5B,KAAKo5B,UAAWp5B,KAAK64B,gBACpG74B,KAAK64B,eAAeQ,QAAUr5B,KAAK64B,eAAeK,gBACxB,IAAjBl5B,KAAK4N,KAAKa,KACnBzO,KAAK64B,eAAeS,cAAgB94B,EAAwBR,MAC5DA,KAAK64B,eAAeU,KAAOv5B,KAAK64B,eAAeS,cAAA,GAGnDE,aAAc,WACZ,IAAIr6B,EAAiBs2B,aAAaz1B,KAAK4N,KAAK6rB,KACjCz5B,KAAK05B,aAAe15B,KAAK25B,cAC/BtvB,MAAM,kBAAoBlL,CAAA,EAEjC03B,aAAc,SAAsB13B,EAAMC,EAAYK,GACpDO,KAAKqY,WAAajZ,EAClBY,KAAK4hB,KAAOniB,EACZO,KAAK4N,KAAOzO,EACZa,KAAK45B,QAAUztB,kBAEVnM,KAAK4N,KAAK+B,KACb3P,KAAK4N,KAAK+B,GAAK,GAIjB3P,KAAK65B,eAAiB,IAAI1D,eAAen2B,KAAK4N,KAAM5N,KAAMA,KAAK8iB,kBAAA,EAEjEgX,QAAS,WACP,OAAO95B,KAAKkL,IAAA,EAEdoqB,iBAAkB,cAWpBkB,aAAa92B,UAAY,CAMvBg3B,UAAW,WAET12B,KAAKsiB,eAAA,EAELtiB,KAAK8iB,kBAAoB,GAEzB9iB,KAAKiiB,MAAA,CAAO,EAad8X,kBAAmB,SAA2B56B,EAAKC,GACjD,IAAIK,EACAY,EAAML,KAAK8iB,kBAAkBviB,OAEjC,IAAKd,EAAI,EAAGA,EAAIY,EAAKZ,GAAK,GACpBL,GAAaY,KAAKg6B,WAAoD,cAAvCh6B,KAAK8iB,kBAAkBrjB,GAAG+gB,YAC3DxgB,KAAK8iB,kBAAkBrjB,GAAGijB,WAEtB1iB,KAAK8iB,kBAAkBrjB,GAAGwiB,OAC5BjiB,KAAKqY,WAAW4J,MAAA,EAChBjiB,KAAKiiB,MAAA,GAAO,EAKpBO,mBAAoB,SAA4BrjB,IACA,IAA1Ca,KAAK8iB,kBAAkBniB,QAAQxB,IACjCa,KAAK8iB,kBAAkBpgB,KAAKvD,EAAA,GAalCs3B,eAAe/2B,UAAUiW,aAAe,WAAa,EAErDtP,gBAAgB,CAACiuB,kBAAmBiC,YAAaC,cAAeC,gBAEhEA,eAAe/2B,UAAUu6B,eAAiB,WACxC,OAAO,MAGTxD,eAAe/2B,UAAUib,YAAc,WAAa,EAEpD8b,eAAe/2B,UAAUoU,QAAU,WAAa,EAEhD2iB,eAAe/2B,UAAU+Z,gBAAkB,WACzC,IAAIta,EAAwB8N,0BAE5B,GAAK9N,EAAL,CAIA,IAAIC,EAAmBD,EAAsB,WAC7Ca,KAAK64B,eAAiBz5B,EAAiBY,KAAA,GAGzCy2B,eAAe/2B,UAAUw6B,eAAiB,WACxC,OAAOl6B,KAAK22B,WAAA,EAyBdG,aAAap3B,UAAUiW,aAAe,SAAUxW,GAI9C,GAHAa,KAAK80B,uBAAuB31B,GAAA,GAC5Ba,KAAK+5B,kBAAkB56B,GAAA,GAElBa,KAAKmV,GAAGkiB,aAIXr3B,KAAKk3B,aAAe/3B,EAAMa,KAAK4N,KAAK+B,OAJX,CACzB,IAAIvQ,EAAeY,KAAKmV,GAAG3R,EAC3BxD,KAAKk3B,aAAe93B,CAAA,CAKtBY,KAAK2G,QAAU3G,KAAKs3B,GAAG9zB,EAAE,GACzB,IAAI/D,EAAcO,KAAK2G,QAAU3G,KAAKm3B,kBAElCn3B,KAAKo3B,kBAAoB33B,IAC3BO,KAAKo3B,gBAAkB33B,EACvBO,KAAKi3B,MAAMlvB,OAAOtI,GAAA,EAItB4G,gBAAgB,CAACiuB,kBAAmBiC,YAAaC,cAAeM,cAEhEA,aAAap3B,UAAUib,YAAc,WAC/B3a,KAAKw0B,WAAax0B,KAAKg3B,WACpBh3B,KAAK+2B,aAIE/2B,KAAKi3B,MAAM1vB,WAAawB,KAAKa,IAAI5J,KAAKk3B,aAAel3B,KAAKqY,WAAW9B,UAAYvW,KAAKi3B,MAAM3vB,QAAU,KAChHtH,KAAKi3B,MAAM3vB,KAAKtH,KAAKk3B,aAAel3B,KAAKqY,WAAW9B,YAJpDvW,KAAKi3B,MAAM5vB,OACXrH,KAAKi3B,MAAM3vB,KAAKtH,KAAKk3B,aAAel3B,KAAKqY,WAAW9B,WACpDvW,KAAK+2B,YAAA,GAAa,EAOxBD,aAAap3B,UAAU6c,KAAO,WAAa,EAG3Cua,aAAap3B,UAAU4c,KAAO,WAC5Btc,KAAKi3B,MAAMnwB,QACX9G,KAAK+2B,YAAA,CAAa,EAGpBD,aAAap3B,UAAUoH,MAAQ,WAC7B9G,KAAKi3B,MAAMnwB,QACX9G,KAAK+2B,YAAA,EACL/2B,KAAKg3B,UAAA,CAAW,EAGlBF,aAAap3B,UAAUqH,OAAS,WAC9B/G,KAAKg3B,UAAA,CAAW,EAGlBF,aAAap3B,UAAUsH,QAAU,SAAU7H,GACzCa,KAAKi3B,MAAMzvB,KAAKrI,EAAA,EAGlB23B,aAAap3B,UAAUqI,OAAS,SAAU5I,GACxCa,KAAKm3B,kBAAoBh4B,EACzBa,KAAKo3B,gBAAkBj4B,EAAca,KAAK2G,QAC1C3G,KAAKi3B,MAAMlvB,OAAO/H,KAAKo3B,gBAAA,EAGzBN,aAAap3B,UAAUu6B,eAAiB,WACtC,OAAO,MAGTnD,aAAap3B,UAAUoU,QAAU,WAAa,EAE9CgjB,aAAap3B,UAAU41B,iBAAmB,WAAa,EAEvDwB,aAAap3B,UAAU+Z,gBAAkB,WAAa,EAItD+d,aAAa93B,UAAUy6B,YAAc,SAAUh7B,GAC7C,IAAIC,EAEAK,EADAY,EAAML,KAAK0O,OAAOnO,OAItB,IAFAP,KAAKsQ,gBAAA,EAEAlR,EAAIiB,EAAM,EAAGjB,GAAK,EAAGA,GAAK,EACxBY,KAAKo6B,SAASh7B,KACjBK,EAAOO,KAAK0O,OAAOtP,IAEVoQ,GAAK/P,EAAKiQ,IAAMvQ,EAAMa,KAAK0O,OAAOtP,GAAGsQ,IAAMjQ,EAAKgQ,GAAKhQ,EAAKiQ,GAAKvQ,EAAMa,KAAK0O,OAAOtP,GAAGsQ,IAC3F1P,KAAKq6B,UAAUj7B,GAInBY,KAAKsQ,iBAAiBtQ,KAAKo6B,SAASh7B,IAAKY,KAAKsQ,eAGhDtQ,KAAKs6B,sBAAA,EAGP9C,aAAa93B,UAAU66B,WAAa,SAAUp7B,GAC5C,OAAQA,EAAMsP,IACZ,KAAK,EACH,OAAOzO,KAAKw6B,YAAYr7B,GAE1B,KAAK,EACH,OAAOa,KAAKy6B,WAAWt7B,GAEzB,KAAK,EACH,OAAOa,KAAK06B,YAAYv7B,GAE1B,KAAK,EAkBL,QACE,OAAOa,KAAK26B,WAAWx7B,GAhBzB,KAAK,EACH,OAAOa,KAAK46B,YAAYz7B,GAE1B,KAAK,EACH,OAAOa,KAAK66B,WAAW17B,GAEzB,KAAK,EACH,OAAOa,KAAKiH,YAAY9H,GAE1B,KAAK,GACH,OAAOa,KAAK86B,aAAa37B,GAE3B,KAAK,GACH,OAAOa,KAAK+6B,cAAc57B,GAGH,EAI7Bq4B,aAAa93B,UAAUo7B,aAAe,WACpC,MAAM,IAAIx1B,MAAM,qDAGlBkyB,aAAa93B,UAAUuH,YAAc,SAAU9H,GAC7C,OAAO,IAAI23B,aAAa33B,EAAMa,KAAKqY,WAAYrY,KAAA,EAGjDw3B,aAAa93B,UAAUq7B,cAAgB,SAAU57B,GAC/C,OAAO,IAAIs3B,eAAet3B,EAAMa,KAAKqY,WAAYrY,KAAA,EAGnDw3B,aAAa93B,UAAUs7B,cAAgB,WACrC,IAAI77B,EACAC,EAAMY,KAAK0O,OAAOnO,OAEtB,IAAKpB,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EACxBa,KAAKq6B,UAAUl7B,GAGjBa,KAAKs6B,sBAAA,EAGP9C,aAAa93B,UAAU0Z,cAAgB,SAAUja,GAE/C,IAAIC,EADJY,KAAKsQ,gBAAA,EAEL,IACI7Q,EADAY,EAAMlB,EAAUoB,OAEhBC,EAAOR,KAAK0O,OAAOnO,OAEvB,IAAKnB,EAAI,EAAGA,EAAIiB,EAAKjB,GAAK,EAGxB,IAFAK,EAAI,EAEGA,EAAIe,GAAM,CACf,GAAIR,KAAK0O,OAAOjP,GAAGqP,KAAO3P,EAAUC,GAAG0P,GAAI,CACzC9O,KAAK0O,OAAOjP,GAAKN,EAAUC,GAC3B,MAGFK,GAAK,IAKX+3B,aAAa93B,UAAU6Y,oBAAsB,SAAUpZ,GACrDa,KAAKqY,WAAWb,iBAAmBrY,CAAA,EAGrCq4B,aAAa93B,UAAU4a,UAAY,WAC5Bta,KAAKqY,WAAW4iB,iBACnBj7B,KAAKg7B,eAAA,EAITxD,aAAa93B,UAAUw7B,sBAAwB,SAAU/7B,EAASC,EAAYK,GAM5E,IALA,IAAIY,EAAWL,KAAKo6B,SAChB55B,EAASR,KAAK0O,OACd3N,EAAI,EACJC,EAAMR,EAAOD,OAEVQ,EAAIC,GACLR,EAAOO,GAAGo6B,KAAO/7B,IAEdiB,EAASU,KAAA,IAAMV,EAASU,IAI3BtB,EAAUiD,KAAKrC,EAASU,IACxBV,EAASU,GAAGq6B,mBAAA,IAER56B,EAAOO,GAAG8wB,OACZ7xB,KAAKk7B,sBAAsB/7B,EAASqB,EAAOO,GAAG8wB,OAAQpyB,GAEtDN,EAAQk8B,aAAa57B,KATvBO,KAAKq6B,UAAUt5B,GACff,KAAKs7B,kBAAkBn8B,KAa3B4B,GAAK,GAITy2B,aAAa93B,UAAU47B,kBAAoB,SAAUn8B,GACnDa,KAAKu7B,gBAAgB74B,KAAKvD,EAAA,EAG5Bq4B,aAAa93B,UAAUsa,wBAA0B,SAAU7a,GACzD,IAAIC,EACAK,EAAMN,EAAOoB,OAEjB,IAAKnB,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EACxB,GAAID,EAAOC,GAAGwW,GAAI,CAChB,IAAIvV,EAAOL,KAAKy6B,WAAWt7B,EAAOC,IAClCiB,EAAKoZ,kBACLzZ,KAAKqY,WAAWb,iBAAiBzB,oBAAoB1V,EAAA,GAK3Dm3B,aAAa93B,UAAU87B,eAAiB,SAAUr8B,GAChD,IAAIC,EACAK,EAAMO,KAAKo6B,SAAS75B,OAExB,IAAKnB,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EACxB,GAAIY,KAAKo6B,SAASh7B,GAAGwO,KAAKutB,MAAQh8B,EAChC,OAAOa,KAAKo6B,SAASh7B,GAIzB,OAAO,MAGTo4B,aAAa93B,UAAUgd,iBAAmB,SAAUvd,GAClD,IACIC,EADAK,EAAYN,EAAK2E,QAGrB,GAAyB,iBAAdrE,EACTL,EAAUY,KAAKo6B,SAAS36B,OACnB,CACL,IAAIY,EACAG,EAAMR,KAAKo6B,SAAS75B,OAExB,IAAKF,EAAI,EAAGA,EAAIG,EAAKH,GAAK,EACxB,GAAIL,KAAKo6B,SAAS/5B,GAAGuN,KAAK8H,KAAOjW,EAAW,CAC1CL,EAAUY,KAAKo6B,SAAS/5B,GACxB,OAKN,OAAoB,IAAhBlB,EAAKoB,OACAnB,EAGFA,EAAQsd,iBAAiBvd,EAAA,EAGlCq4B,aAAa93B,UAAU+7B,gBAAkB,SAAUt8B,EAAUC,GAC3DY,KAAKqY,WAAWiB,YAAc,IAAI4X,YAClClxB,KAAKqY,WAAWiB,YAAYC,SAASpa,EAASoQ,OAC9CvP,KAAKqY,WAAWiB,YAAYE,SAASra,EAASka,MAAOja,GACrDY,KAAKqY,WAAWgE,aAAerc,KAAK07B,cAAcrf,aAAarJ,KAAKhT,KAAK07B,eACzE17B,KAAKqY,WAAW+D,cAAgBpc,KAAK07B,cAActf,cAAcpJ,KAAKhT,KAAK07B,eAC3E17B,KAAKqY,WAAWue,YAAc52B,KAAK07B,cAAcjkB,eACjDzX,KAAKqY,WAAWX,gBAAkB1X,KAAK07B,cAAchkB,gBACrD1X,KAAKqY,WAAW6J,QAAU,EAC1BliB,KAAKqY,WAAW9B,UAAYpX,EAAS4a,GACrC/Z,KAAKqY,WAAW3C,GAAKvW,EAASuW,GAC9B1V,KAAKqY,WAAWsjB,SAAW,CACzB9b,EAAG1gB,EAAS0gB,EACZle,EAAGxC,EAASwC,EAAA,EAMhB81B,iBAAiB/3B,UAAY,CAC3Bk8B,cAAe,WACb57B,KAAKi1B,eAAiB,CACpBC,MAAOl1B,KAAK4N,KAAKuB,GAAKqb,yBAAyBgB,qBAAqBxrB,KAAMA,KAAK4N,KAAKuB,GAAInP,MAAQ,CAC9FoB,EAAG,GAELy6B,SAAA,EACAC,QAAA,EACAC,IAAK,IAAIxW,QAGPvlB,KAAK4N,KAAKouB,KACZh8B,KAAKi1B,eAAeC,MAAM9J,cAAA,GAIxBprB,KAAK4N,KAAKa,EAAA,EAGhBwtB,gBAAiB,WAIf,GAHAj8B,KAAKi1B,eAAe6G,OAAS97B,KAAKi1B,eAAeC,MAAM9zB,EAAE6gB,MAAQjiB,KAAKsiB,cACtEtiB,KAAKi1B,eAAe4G,QAAU77B,KAAKi1B,eAAeC,MAAMjT,MAAQjiB,KAAKsiB,cAEjEtiB,KAAKk8B,UAAW,CAClB,IAAI/8B,EACAC,EAAWY,KAAKi1B,eAAe8G,IAC/Bt8B,EAAI,EACJY,EAAML,KAAKk8B,UAAU37B,OAEzB,IAAKP,KAAKi1B,eAAe4G,QACvB,KAAOp8B,EAAIY,GAAK,CACd,GAAIL,KAAKk8B,UAAUz8B,GAAGw1B,eAAeC,MAAMjT,KAAM,CAC/CjiB,KAAKi1B,eAAe4G,SAAA,EACpB,MAGFp8B,GAAK,EAIT,GAAIO,KAAKi1B,eAAe4G,QAItB,IAHA18B,EAAMa,KAAKi1B,eAAeC,MAAM1xB,EAAEiiB,MAClCrmB,EAASioB,eAAeloB,GAEnBM,EAAI,EAAGA,EAAIY,EAAKZ,GAAK,EACxBN,EAAMa,KAAKk8B,UAAUz8B,GAAGw1B,eAAeC,MAAM1xB,EAAEiiB,MAC/CrmB,EAASwnB,UAAUznB,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAAKA,EAAI,IAAKA,EAAI,IAAKA,EAAI,IAAKA,EAAI,IAAKA,EAAI,OAK5Jg9B,cAAe,SAAuBh9B,GACpC,IAAIC,EAAa,GACjBA,EAAWsD,KAAK1C,KAAKi1B,gBAIrB,IAHA,IAeIx1B,EAfAY,GAAA,EACAG,EAAOR,KAAK4hB,KAETvhB,GACDG,EAAKy0B,gBACHz0B,EAAKoN,KAAKQ,SACZhP,EAAW2V,OAAO,EAAG,EAAGvU,EAAKy0B,gBAG/Bz0B,EAAOA,EAAKohB,MAEZvhB,GAAA,EAKJ,IACIU,EADAC,EAAM5B,EAAWmB,OAGrB,IAAKd,EAAI,EAAGA,EAAIuB,EAAKvB,GAAK,EACxBsB,EAAQ3B,EAAWK,GAAGs8B,IAAI9V,kBAAkB,EAAG,EAAG,GAElD9mB,EAAK,CAACA,EAAG,GAAK4B,EAAM,GAAI5B,EAAG,GAAK4B,EAAM,GAAI,GAG5C,OAAO5B,CAAA,EAETi9B,QAAS,IAAI7W,QAqJfmS,YAAYh4B,UAAU28B,gBAAkB,SAAUl9B,GAChD,OAAOa,KAAK83B,SAAS34B,GAAK+4B,IAAA,EAG5BR,YAAYh4B,UAAUib,YAAc,SAAUxb,GAC5C,IACIC,EADAK,EAAWO,KAAK23B,QAAQ1C,eAAe8G,IAEvC17B,EAAML,KAAKsO,gBAAgB/N,OAE/B,IAAKnB,EAAI,EAAGA,EAAIiB,EAAKjB,GAAK,EASxB,IARIY,KAAK83B,SAAS14B,GAAG84B,KAAKjW,MAAQ9iB,IAChCa,KAAK04B,SAAS14B,KAAKsO,gBAAgBlP,GAAIY,KAAK83B,SAAS14B,GAAG84B,KAAK10B,EAAGxD,KAAK83B,SAAS14B,KAG5EY,KAAK83B,SAAS14B,GAAGqQ,GAAGwS,MAAQ9iB,IAC9Ba,KAAK83B,SAAS14B,GAAGwd,KAAKK,aAAa,eAAgBjd,KAAK83B,SAAS14B,GAAGqQ,GAAGjM,GAGpC,MAAjCxD,KAAKsO,gBAAgBlP,GAAG44B,OACtBh4B,KAAK83B,SAAS14B,GAAGq5B,UAAYz4B,KAAK23B,QAAQ1C,eAAeC,MAAMjT,MAAQ9iB,IACzEa,KAAK83B,SAAS14B,GAAGq5B,QAAQxb,aAAa,YAAaxd,EAASumB,mBAAmBoB,WAG7EpnB,KAAK43B,WAAWx4B,GAAGkgB,IAAMtf,KAAK43B,WAAWx4B,GAAGkgB,EAAE2C,MAAQ9iB,IAAe,CACvE,IAAIqB,EAAUR,KAAK43B,WAAWx4B,GAAGg5B,MAE7Bp4B,KAAK43B,WAAWx4B,GAAGkgB,EAAE9b,EAAI,GACa,UAApCxD,KAAK43B,WAAWx4B,GAAGi5B,eACrBr4B,KAAK43B,WAAWx4B,GAAGi5B,aAAe,QAClCr4B,KAAK43B,WAAWx4B,GAAGwd,KAAKK,aAAa,SAAU,OAAShX,kBAAoB,IAAMjG,KAAK43B,WAAWx4B,GAAGk5B,SAAW,MAGlH93B,EAAQyc,aAAa,UAAWjd,KAAK43B,WAAWx4B,GAAGkgB,EAAE9b,KAEb,WAApCxD,KAAK43B,WAAWx4B,GAAGi5B,eACrBr4B,KAAK43B,WAAWx4B,GAAGi5B,aAAe,SAClCr4B,KAAK43B,WAAWx4B,GAAGwd,KAAKK,aAAa,SAAU,OAGjDjd,KAAK43B,WAAWx4B,GAAGwd,KAAKK,aAAa,eAAyC,EAAzBjd,KAAK43B,WAAWx4B,GAAGkgB,EAAE9b,GAAA,GAOpFk0B,YAAYh4B,UAAU48B,eAAiB,WACrC,OAAOt8B,KAAK63B,WAAA,EAGdH,YAAYh4B,UAAU84B,qBAAuB,WAC3C,IAAIr5B,EAAO,QAKX,OAJAA,GAAQ,KAAOa,KAAKqY,WAAWsjB,SAAS9b,EACxC1gB,GAAQ,KAAOa,KAAKqY,WAAWsjB,SAASh6B,GACxCxC,GAAQ,MAAQa,KAAKqY,WAAWsjB,SAAS9b,GACjC,MAAQ7f,KAAKqY,WAAWsjB,SAASh6B,EAAI,KAI/C+1B,YAAYh4B,UAAUg5B,SAAW,SAAUv5B,EAAUC,EAAWK,GAC9D,IACIY,EACAG,EAFAO,EAAa,KAAO3B,EAAUoE,EAAE,GAAG,GAAK,IAAMpE,EAAUoE,EAAE,GAAG,GAKjE,IAFAhD,EAAMpB,EAAUggB,QAEX/e,EAAI,EAAGA,EAAIG,EAAKH,GAAK,EAExBU,GAAc,KAAO3B,EAAUgC,EAAEf,EAAI,GAAG,GAAK,IAAMjB,EAAUgC,EAAEf,EAAI,GAAG,GAAK,IAAMjB,EAAUiB,EAAEA,GAAG,GAAK,IAAMjB,EAAUiB,EAAEA,GAAG,GAAK,IAAMjB,EAAUoE,EAAEnD,GAAG,GAAK,IAAMjB,EAAUoE,EAAEnD,GAAG,GAShL,GALIjB,EAAU6O,GAAKzN,EAAM,IACvBO,GAAc,KAAO3B,EAAUgC,EAAEf,EAAI,GAAG,GAAK,IAAMjB,EAAUgC,EAAEf,EAAI,GAAG,GAAK,IAAMjB,EAAUiB,EAAE,GAAG,GAAK,IAAMjB,EAAUiB,EAAE,GAAG,GAAK,IAAMjB,EAAUoE,EAAE,GAAG,GAAK,IAAMpE,EAAUoE,EAAE,GAAG,IAI5K/D,EAAS04B,WAAap3B,EAAY,CACpC,IAAIC,EAAiB,GAEjBvB,EAASmd,OACPxd,EAAU6O,IACZjN,EAAiB7B,EAAS84B,IAAMj4B,KAAK+3B,UAAYh3B,EAAaA,GAGhEtB,EAASmd,KAAKK,aAAa,IAAKjc,IAGlCvB,EAAS04B,SAAWp3B,CAAA,GAIxB22B,YAAYh4B,UAAUoU,QAAU,WAC9B9T,KAAK23B,QAAU,KACf33B,KAAKqY,WAAa,KAClBrY,KAAK63B,YAAc,KACnB73B,KAAK4N,KAAO,KACZ5N,KAAKsO,gBAAkB,MAGzB,IAAIiuB,eAAiB,WACnB,IAAIp9B,EAAK,CACTA,aAGA,SAAsBA,EAAOC,GAC3B,IAAIK,EAAM6N,SAAS,UAWnB,OAVA7N,EAAIwd,aAAa,KAAM9d,IAAA,IAEnBC,IACFK,EAAIwd,aAAa,cAAe,qBAChCxd,EAAIwd,aAAa,IAAK,MACtBxd,EAAIwd,aAAa,IAAK,MACtBxd,EAAIwd,aAAa,QAAS,QAC1Bxd,EAAIwd,aAAa,SAAU,SAGtBxd,CAAA,EAdTN,6BAiBA,WACE,IAAIA,EAAgBmO,SAAS,iBAI7B,OAHAnO,EAAc8d,aAAa,OAAQ,UACnC9d,EAAc8d,aAAa,8BAA+B,QAC1D9d,EAAc8d,aAAa,SAAU,8CAC9B9d,CAAA,GAGT,OAAOA,CAAA,CA5BY,GA+BjBq9B,eAAiB,WACnB,IAAIr9B,EAAK,CACPs9B,UAAA,EACAC,eAAA,EACAC,gBAA4C,oBAApB1K,iBAW1B,OARI,WAAWtpB,KAAKlD,UAAUmD,YAAc,UAAUD,KAAKlD,UAAUmD,YAAc,WAAWD,KAAKlD,UAAUmD,YAAc,aAAaD,KAAKlD,UAAUmD,cACrJzJ,EAAGs9B,UAAA,GAGD,WAAW9zB,KAAKlD,UAAUmD,aAC5BzJ,EAAGu9B,eAAA,GAGEv9B,CAAA,CAfY,GAkBjBy9B,kBAAoB,CAAC,EACrBC,SAAW,iBAEf,SAASC,WAAW39B,GAClB,IAAIC,EAOAK,EANAY,EAAS,gBACTG,EAAMrB,EAAKyO,KAAKwoB,GAAKj3B,EAAKyO,KAAKwoB,GAAG71B,OAAS,EAC3CQ,EAAQoL,kBACRnL,EAAMu7B,eAAeQ,aAAah8B,GAAA,GAClCK,EAAQ,EAIZ,IAHApB,KAAKg9B,QAAU,GAGV59B,EAAI,EAAGA,EAAIoB,EAAKpB,GAAK,EAAG,CAC3BK,EAAgB,KAChB,IAAIkC,EAAOxC,EAAKyO,KAAKwoB,GAAGh3B,GAAGqP,GAEvBmuB,kBAAkBj7B,KAEpBlC,EAAgB,IAAI,EADPm9B,kBAAkBj7B,GAAMs7B,QACVj8B,EAAK7B,EAAK06B,eAAexD,eAAej3B,GAAID,EAAM09B,SAAWz7B,EAAOf,GAC/FA,EAASw8B,SAAWz7B,EAEhBw7B,kBAAkBj7B,GAAMu7B,iBAC1B97B,GAAS,IAIT3B,GACFO,KAAKg9B,QAAQt6B,KAAKjD,EAAA,CAIlB2B,IACFjC,EAAKkZ,WAAWC,KAAK/D,YAAYvT,GACjC7B,EAAKw6B,aAAa1c,aAAa,SAAU,OAAShX,kBAAoB,IAAMlF,EAAQ,MAGlFf,KAAKg9B,QAAQz8B,QACfpB,EAAKy1B,uBAAuB50B,KAAA,CAahC,SAASm9B,eAAeh+B,EAAIC,EAAQK,GAClCm9B,kBAAkBz9B,GAAM,CACtB89B,OAAQ79B,EACR89B,eAAgBz9B,EAAA,CAIpB,SAAS29B,iBAAA,CA4LT,SAASC,mBAAA,CAgDT,SAASC,uBAAA,CAmET,SAASC,cAAcp+B,EAAMC,EAAYK,GACvCO,KAAKiT,UAAY7T,EAAWid,aAAald,EAAKwP,OAC9C3O,KAAKw9B,YAAYr+B,EAAMC,EAAYK,GACnCO,KAAKy9B,WAAa,CAChBlzB,IAAK,EACLC,KAAM,EACNyH,MAAOjS,KAAKiT,UAAU4M,EACtB3N,OAAQlS,KAAKiT,UAAUtR,EAAA,CAoB3B,SAAS+7B,iBAAiBv+B,EAASC,GACjCY,KAAK4c,KAAOzd,EACZa,KAAKovB,IAAMhwB,CAAA,CAGb,SAASu+B,gBAAA,CA/VTb,WAAWp9B,UAAUib,YAAc,SAAUxb,GAC3C,IAAIC,EACAK,EAAMO,KAAKg9B,QAAQz8B,OAEvB,IAAKnB,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EACxBY,KAAKg9B,QAAQ59B,GAAGub,YAAYxb,EAAA,EAahCi+B,eAAe19B,UAAY,CACzBk+B,oBAAqB,WACnB59B,KAAK25B,aAAersB,SAAS,MAE/BuwB,wBAAyB,WACvB79B,KAAK89B,aAAexwB,SAAS,KAC7BtN,KAAK+9B,mBAAqB/9B,KAAK25B,aAC/B35B,KAAK24B,cAAgB34B,KAAK25B,aAC1B35B,KAAKg+B,cAAA,EACL,IAAI7+B,EAAqB,KAEzB,GAAIa,KAAK4N,KAAKqwB,GAAI,CAChBj+B,KAAKk+B,WAAa,CAAC,EACnB,IAAI9+B,EAAKkO,SAAS,KAClBlO,EAAG6d,aAAa,KAAMjd,KAAK45B,SAC3Bx6B,EAAGmV,YAAYvU,KAAK25B,cACpBx6B,EAAqBC,EACrBY,KAAKqY,WAAWC,KAAK/D,YAAYnV,EAAA,MACxBY,KAAK4N,KAAKuwB,IACnBn+B,KAAK89B,aAAavpB,YAAYvU,KAAK25B,cACnCx6B,EAAqBa,KAAK89B,aAC1B99B,KAAK05B,YAAc15B,KAAK89B,cAExB99B,KAAK05B,YAAc15B,KAAK25B,aAY1B,GATI35B,KAAK4N,KAAKwwB,IACZp+B,KAAK25B,aAAa1c,aAAa,KAAMjd,KAAK4N,KAAKwwB,IAG7Cp+B,KAAK4N,KAAKmC,IACZ/P,KAAK25B,aAAa1c,aAAa,QAASjd,KAAK4N,KAAKmC,IAI/B,IAAjB/P,KAAK4N,KAAKa,KAAazO,KAAK4N,KAAKywB,GAAI,CACvC,IAAI5+B,EAAK6N,SAAS,YACdjN,EAAKiN,SAAS,QAClBjN,EAAG4c,aAAa,IAAK,SAAWjd,KAAK4N,KAAKiS,EAAI,OAAS7f,KAAK4N,KAAKiS,EAAI,IAAM7f,KAAK4N,KAAKjM,EAAI,OAAS3B,KAAK4N,KAAKjM,EAAI,KAChH,IAAInB,EAAS2L,kBAKb,GAJA1M,EAAGwd,aAAa,KAAMzc,GACtBf,EAAG8U,YAAYlU,GACfL,KAAKqY,WAAWC,KAAK/D,YAAY9U,GAE7BO,KAAK44B,aAAc,CACrB,IAAI73B,EAAUuM,SAAS,KACvBvM,EAAQkc,aAAa,YAAa,OAAShX,kBAAoB,IAAMzF,EAAS,KAC9EO,EAAQwT,YAAYvU,KAAK25B,cACzB35B,KAAK+9B,mBAAqBh9B,EAEtB5B,EACFA,EAAmBoV,YAAYvU,KAAK+9B,oBAEpC/9B,KAAK05B,YAAc15B,KAAK+9B,kBAAA,MAG1B/9B,KAAK25B,aAAa1c,aAAa,YAAa,OAAShX,kBAAoB,IAAMzF,EAAS,KAIvE,IAAjBR,KAAK4N,KAAK6rB,IACZz5B,KAAKw5B,cAAA,EAGT8E,cAAe,WACTt+B,KAAKi1B,eAAe4G,SACtB77B,KAAK+9B,mBAAmB9gB,aAAa,YAAajd,KAAKi1B,eAAe8G,IAAI3U,WAGxEpnB,KAAKi1B,eAAe6G,QACtB97B,KAAK+9B,mBAAmB9gB,aAAa,UAAWjd,KAAKi1B,eAAeC,MAAM9zB,EAAEoC,EAAA,EAGhF+6B,mBAAoB,WAClBv+B,KAAK25B,aAAe,KACpB35B,KAAK89B,aAAe,KACpB99B,KAAK84B,YAAYhlB,SAAA,EAEnBmmB,eAAgB,WACd,OAAIj6B,KAAK4N,KAAKywB,GACL,KAGFr+B,KAAK05B,WAAA,EAEd8E,2BAA4B,WAC1Bx+B,KAAK84B,YAAc,IAAIpB,YAAY13B,KAAK4N,KAAM5N,KAAMA,KAAKqY,YACzDrY,KAAKy+B,yBAA2B,IAAI3B,WAAW98B,KAAA,EAEjD0+B,SAAU,SAAkBv/B,GAQ1B,GAJKa,KAAKk+B,aACRl+B,KAAKk+B,WAAa,CAAC,IAGhBl+B,KAAKk+B,WAAW/+B,GAAY,CAC/B,IACIC,EACAK,EACAY,EACAG,EAJAO,EAAKf,KAAK45B,QAAU,IAAMz6B,EAM9B,GAAkB,IAAdA,GAAiC,IAAdA,EAAiB,CACtC,IAAI6B,EAASsM,SAAS,QACtBtM,EAAOic,aAAa,KAAMlc,GAC1BC,EAAOic,aAAa,YAA2B,IAAd9d,EAAkB,YAAc,UACjEkB,EAAaiN,SAAS,QACX8G,eAAe,+BAAgC,OAAQ,IAAMpU,KAAK45B,SAC7E54B,EAAOuT,YAAYlU,GACnBL,KAAKqY,WAAWC,KAAK/D,YAAYvT,GAE5Bw7B,eAAeC,UAA0B,IAAdt9B,IAC9B6B,EAAOic,aAAa,YAAa,aACjC7d,EAAQ+M,kBACR1M,EAAM88B,eAAeQ,aAAa39B,GAClCY,KAAKqY,WAAWC,KAAK/D,YAAY9U,GACjCA,EAAI8U,YAAYgoB,eAAeoC,iCAC/Bn+B,EAAK8M,SAAS,MACXiH,YAAYlU,GACfW,EAAOuT,YAAY/T,GACnBA,EAAGyc,aAAa,SAAU,OAAShX,kBAAoB,IAAM7G,EAAQ,WAElE,GAAkB,IAAdD,EAAiB,CAC1B,IAAIiC,EAAYkM,SAAS,QACzBlM,EAAU6b,aAAa,KAAMlc,GAC7BK,EAAU6b,aAAa,YAAa,SACpC,IAAItb,EAAc2L,SAAS,KAC3BlM,EAAUmT,YAAY5S,GACtBvC,EAAQ+M,kBACR1M,EAAM88B,eAAeQ,aAAa39B,GAElC,IAAIwE,EAAQ0J,SAAS,uBACrB1J,EAAMqZ,aAAa,KAAM,iBACzBxd,EAAI8U,YAAY3Q,GAChB,IAAIC,EAASyJ,SAAS,WACtBzJ,EAAOoZ,aAAa,OAAQ,SAC5BpZ,EAAOoZ,aAAa,cAAe,WACnCrZ,EAAM2Q,YAAY1Q,GAElB7D,KAAKqY,WAAWC,KAAK/D,YAAY9U,GACjC,IAAIoP,EAAYvB,SAAS,QACzBuB,EAAUoO,aAAa,QAASjd,KAAK4hB,KAAKhU,KAAKiS,GAC/ChR,EAAUoO,aAAa,SAAUjd,KAAK4hB,KAAKhU,KAAKjM,GAChDkN,EAAUoO,aAAa,IAAK,KAC5BpO,EAAUoO,aAAa,IAAK,KAC5BpO,EAAUoO,aAAa,OAAQ,WAC/BpO,EAAUoO,aAAa,UAAW,KAClCtb,EAAYsb,aAAa,SAAU,OAAShX,kBAAoB,IAAM7G,EAAQ,KAC9EuC,EAAY4S,YAAY1F,IACxBxO,EAAaiN,SAAS,QACX8G,eAAe,+BAAgC,OAAQ,IAAMpU,KAAK45B,SAC7Ej4B,EAAY4S,YAAYlU,GAEnBm8B,eAAeC,WAClBr7B,EAAU6b,aAAa,YAAa,aACpCxd,EAAI8U,YAAYgoB,eAAeoC,gCAC/Bn+B,EAAK8M,SAAS,KACd3L,EAAY4S,YAAY1F,GACxBrO,EAAG+T,YAAYvU,KAAK25B,cACpBh4B,EAAY4S,YAAY/T,IAG1BR,KAAKqY,WAAWC,KAAK/D,YAAYnT,EAAA,CAGnCpB,KAAKk+B,WAAW/+B,GAAa4B,CAAA,CAG/B,OAAOf,KAAKk+B,WAAW/+B,EAAA,EAEzBy/B,SAAU,SAAkBz/B,GACrBa,KAAK89B,cAIV99B,KAAK89B,aAAa7gB,aAAa,OAAQ,OAAShX,kBAAoB,IAAM9G,EAAK,OAWnFk+B,iBAAiB39B,UAAY,CAM3Bm/B,cAAe,WAEb7+B,KAAKk8B,UAAY,GAEjBl8B,KAAKg6B,WAAA,EACLh6B,KAAK8+B,gBAAA,EAUPzD,aAAc,SAAsBl8B,GAClCa,KAAKk8B,UAAY/8B,CAAA,EAQnBi8B,YAAa,WACXp7B,KAAKg6B,WAAA,CAAY,EAQnB8E,eAAgB,oBACV9+B,KAAK4N,KAAKikB,QACZ7xB,KAAK4hB,KAAKsZ,sBAAsBl7B,KAAMA,KAAK4N,KAAKikB,OAAQ,MAqE5DxrB,gBAAgB,CAACiuB,kBAAmB/tB,oBA7DnB,CACfi3B,YAAa,SAAqBr+B,EAAMC,EAAYK,GAClDO,KAAK02B,YACL12B,KAAK62B,aAAa13B,EAAMC,EAAYK,GACpCO,KAAK47B,cAAcz8B,EAAMC,EAAYK,GACrCO,KAAK6+B,gBACL7+B,KAAKu0B,iBACLv0B,KAAK49B,sBACL59B,KAAK69B,0BACL79B,KAAKw+B,6BACLx+B,KAAK++B,gBACL/+B,KAAKsc,MAAA,EAEPA,KAAM,WAECtc,KAAKy0B,QAAYz0B,KAAKw0B,YAAax0B,KAAK00B,iBAChC10B,KAAK05B,aAAe15B,KAAK25B,cAC/BtvB,MAAMI,QAAU,OACrBzK,KAAKy0B,QAAA,EAAS,EAGlBlY,KAAM,WAEAvc,KAAKw0B,YAAcx0B,KAAK00B,gBACrB10B,KAAK4N,KAAKywB,MACFr+B,KAAK05B,aAAe15B,KAAK25B,cAC/BtvB,MAAMI,QAAU,SAGvBzK,KAAKy0B,QAAA,EACLz0B,KAAKsiB,eAAA,EAAgB,EAGzB3H,YAAa,WAGP3a,KAAK4N,KAAKywB,IAAMr+B,KAAKy0B,SAIzBz0B,KAAKi8B,kBACLj8B,KAAKq1B,mBACLr1B,KAAKs+B,gBACLt+B,KAAKg/B,qBAEDh/B,KAAKsiB,gBACPtiB,KAAKsiB,eAAA,GAAgB,EAGzB0c,mBAAoB,aACpBrpB,aAAc,SAAsBxW,GAClCa,KAAKiiB,MAAA,EACLjiB,KAAK80B,uBAAuB31B,GAC5Ba,KAAK+5B,kBAAkB56B,EAAKa,KAAKw0B,WACjCx0B,KAAKg1B,mBAAA,EAEPlhB,QAAS,WACP9T,KAAKi/B,UAAY,KACjBj/B,KAAKu+B,oBAAA,KAG6DjB,sBAcxEj3B,gBAAgB,CAACkwB,YAAakB,iBAAkB2F,eAAgBC,iBAAkB7G,aAAc8G,sBAAuBC,eAEvHA,cAAc79B,UAAUq/B,cAAgB,WACtC,IAAI5/B,EAAYa,KAAKqY,WAAW+D,cAAcpc,KAAKiT,WACnDjT,KAAKi/B,UAAY3xB,SAAS,SAC1BtN,KAAKi/B,UAAUhiB,aAAa,QAASjd,KAAKiT,UAAU4M,EAAI,MACxD7f,KAAKi/B,UAAUhiB,aAAa,SAAUjd,KAAKiT,UAAUtR,EAAI,MACzD3B,KAAKi/B,UAAUhiB,aAAa,sBAAuBjd,KAAKiT,UAAUisB,IAAMl/B,KAAKqY,WAAW8c,aAAagK,0BACrGn/B,KAAKi/B,UAAU7qB,eAAe,+BAAgC,OAAQjV,GACtEa,KAAK25B,aAAaplB,YAAYvU,KAAKi/B,UAAA,EAGrC1B,cAAc79B,UAAU41B,iBAAmB,WACzC,OAAOt1B,KAAKy9B,UAAA,EAUdE,cAAcj+B,UAAY,CACxB0/B,oBAAqB,SAA6BjgC,GAChD,IAAIC,EACAK,EAAMO,KAAKq/B,eAAe9+B,OAE9B,IAAKnB,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EACxBY,KAAKq/B,eAAejgC,GAAG2kB,SAAS5kB,EAAA,EAGpCmgC,2BAA4B,SAAoCngC,GAI9D,IAHA,IACIC,EAAMY,KAAKq/B,eAAe9+B,OADtB,EAGGnB,GACT,GAAIY,KAAKq/B,eAJH,GAIqBE,oBAAoBpgC,GAC7C,OAAO,EAIX,OAAO,GAETqgC,gBAAiB,WACf,GAAKx/B,KAAKq/B,eAAe9+B,OAAzB,CAIA,IAAIpB,EACAC,EAAMY,KAAK4O,OAAOrO,OAEtB,IAAKpB,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EACxBa,KAAK4O,OAAOzP,GAAGkiB,GAAGoD,QAMpB,IAAKtlB,GAHLC,EAAMY,KAAKq/B,eAAe9+B,QAGX,EAAGpB,GAAK,IACAa,KAAKq/B,eAAelgC,GAAG6qB,cAAchqB,KAAKsiB,eADvCnjB,GAAK,MASjCsgC,uBAAwB,SAAgCtgC,GAKtD,IAJA,IAAIC,EAAWY,KAAK0/B,kBAChBjgC,EAAI,EACJY,EAAMjB,EAASmB,OAEZd,EAAIY,GAAK,CACd,GAAIjB,EAASK,GAAGmd,OAASzd,EACvB,OAAOC,EAASK,GAAG2vB,IAGrB3vB,GAAK,EAGP,OAAO,GAETkgC,oBAAqB,SAA6BxgC,EAAMC,GAItD,IAHA,IAAIK,EAAWO,KAAK0/B,kBAChBr/B,EAAIZ,EAASc,OAEVF,GAGL,GAAIZ,EAFJY,GAAK,GAEWuc,OAASzd,EAEvB,YADAM,EAASY,GAAG+uB,IAAMhwB,GAKtBK,EAASiD,KAAK,IAAIg7B,iBAAiBv+B,EAAMC,GAAA,EAE3CuW,aAAc,SAAsBxW,GAClCa,KAAK80B,uBAAuB31B,GAC5Ba,KAAK+5B,kBAAkB56B,EAAKa,KAAKw0B,UAAA,GAIrC,IAAIoL,YAAc,CAChB,EAAG,OACH,EAAG,QACH,EAAG,UAEDC,aAAe,CACjB,EAAG,QACH,EAAG,QACH,EAAG,SAGL,SAASC,aAAa3gC,EAAcC,EAAOK,GACzCO,KAAK+/B,OAAS,GACd//B,KAAKggC,OAAS,GACdhgC,KAAKigC,aAAe9gC,EACpBa,KAAKkgC,KAAO,GACZlgC,KAAKqhB,GAAK5hB,EACVO,KAAKmgC,IAAM/gC,EAIXY,KAAK+iB,cAAgBtjB,EAAM+O,EAK3B,IAHA,IAAInO,EAAI,EACJG,EAAMrB,EAAaoB,OAEhBF,EAAIG,GAAK,CACd,GAAIrB,EAAakB,GAAG6vB,OAAOpN,kBAAkBviB,OAAQ,CACnDP,KAAK+iB,aAAA,EACL,MAGF1iB,GAAK,GAQT,SAAS+/B,aAAajhC,EAAMC,GAC1BY,KAAK4N,KAAOzO,EACZa,KAAKkL,KAAO/L,EAAKsP,GACjBzO,KAAKqO,EAAI,GACTrO,KAAKmgC,IAAM/gC,EACXY,KAAKiiB,MAAA,EACLjiB,KAAK8P,QAAA,IAAS3Q,EAAKk/B,GACnBr+B,KAAKqgC,MAAQ/yB,SAAS,QACtBtN,KAAKsgC,OAAS,KAQhB,SAASC,aAAaphC,EAAMC,EAAMK,EAAUY,GAU1C,IAAIG,EATJR,KAAK4c,KAAOzd,EACZa,KAAKkiB,SAAW,EAChBliB,KAAKwgC,UAAYp4B,iBAAiBhJ,EAAKmB,QACvCP,KAAKgX,SAAWvX,EAChBO,KAAKwO,GAAA,EACLxO,KAAKygC,QAAU,GACfzgC,KAAK0gC,UAAY14B,iBAAiB,UAAW5I,EAAKmB,OAASnB,EAAKmB,OAAS,EAAI,GAC7EP,KAAK2gC,WAAa34B,iBAAiB,UAAW,GAC9ChI,KAAKijB,6BAA6B5iB,GAElC,IACIU,EADAC,EAAM5B,EAAKmB,QAAU,EAGzB,IAAKC,EAAI,EAAGA,EAAIQ,EAAKR,GAAK,EACxBO,EAAOuf,gBAAgBsC,QAAQzjB,EAAMC,EAAKoB,GAAGgD,EAAG,EAAG,EAAGxD,MACtDA,KAAKwO,EAAIzN,EAAKyN,GAAKxO,KAAKwO,EACxBxO,KAAKwgC,UAAUhgC,GAAK,CAClBQ,EAAG5B,EAAKoB,GAAGQ,EACX6C,EAAG9C,GAIFf,KAAKwO,GACRxO,KAAK0iB,UAAA,GAGP1iB,KAAK+iB,YAAc/iB,KAAKwO,CAAA,CAoC1B,SAASoyB,mBAAmBzhC,EAAMC,EAAMK,GACtCO,KAAKijB,6BAA6B9jB,GAClCa,KAAK0iB,SAAW1iB,KAAKgjB,yBACrBhjB,KAAKoB,EAAIkf,gBAAgBsC,QAAQzjB,EAAMC,EAAKgC,EAAG,EAAG,IAAMpB,MACxDA,KAAK6f,EAAIS,gBAAgBsC,QAAQzjB,EAAMC,EAAKygB,EAAG,EAAG,KAAM7f,MACxDA,KAAKqO,EAAI,IAAIkyB,aAAaphC,EAAMC,EAAKiP,GAAK,CAAC,EAAG,MAAOrO,MACrDA,KAAKiO,EAAIqS,gBAAgBsC,QAAQzjB,EAAMC,EAAK6O,EAAG,EAAG,IAAKjO,MACvDA,KAAKqK,MAAQ5K,EACbO,KAAK+iB,cAAgB/iB,KAAK+iB,WAAA,CAK5B,SAAS8d,iBAAiB1hC,EAAMC,EAAMK,GACpCO,KAAKijB,6BAA6B9jB,GAClCa,KAAK0iB,SAAW1iB,KAAKgjB,yBACrBhjB,KAAKoB,EAAIkf,gBAAgBsC,QAAQzjB,EAAMC,EAAKgC,EAAG,EAAG,IAAMpB,MACxDA,KAAKiO,EAAIqS,gBAAgBsC,QAAQzjB,EAAMC,EAAK6O,EAAG,EAAG,IAAKjO,MACvDA,KAAKqK,MAAQ5K,CAAA,CAKf,SAASqhC,eAAe3hC,EAAMC,EAAMK,GAClCO,KAAKijB,6BAA6B9jB,GAClCa,KAAK0iB,SAAW1iB,KAAKgjB,yBACrBhjB,KAAKqK,MAAQ5K,CAAA,CAKf,SAASshC,iBAAiB5hC,EAAMC,EAAMK,GACpCO,KAAK4N,KAAOxO,EACZY,KAAKiO,EAAIjG,iBAAiB,SAAmB,EAAT5I,EAAKyE,GACzC,IAAIxD,EAAUjB,EAAKoP,EAAEA,EAAE,GAAGzN,EAAI3B,EAAKoP,EAAEA,EAAE,GAAGzN,EAAER,OAAkB,EAATnB,EAAKyE,EAAQzE,EAAKoP,EAAEA,EAAEjO,OAAkB,EAATnB,EAAKyE,EACzF7D,KAAKoB,EAAI4G,iBAAiB,UAAW3H,GACrCL,KAAKghC,OAAA,EACLhhC,KAAKihC,OAAA,EACLjhC,KAAKkhC,aAAelhC,KAAKmhC,mBACzBnhC,KAAKohC,YAAc/gC,EACnBL,KAAKijB,6BAA6BxjB,GAClCO,KAAKk4B,KAAO5X,gBAAgBsC,QAAQzjB,EAAMC,EAAKoP,EAAG,EAAG,KAAMxO,MAC3DA,KAAKwO,EAAIxO,KAAKk4B,KAAK1pB,EACnBxO,KAAK0iB,UAAA,EAAS,CAsFhB,SAAS2e,yBAAyBliC,EAAMC,EAAMK,GAC5CO,KAAKijB,6BAA6B9jB,GAClCa,KAAK0iB,SAAW1iB,KAAKgjB,yBACrBhjB,KAAKshC,iBAAiBniC,EAAMC,EAAMK,EAAA,CA0FpC,SAAS8hC,2BAA2BpiC,EAAMC,EAAMK,GAC9CO,KAAKijB,6BAA6B9jB,GAClCa,KAAK0iB,SAAW1iB,KAAKgjB,yBACrBhjB,KAAK6f,EAAIS,gBAAgBsC,QAAQzjB,EAAMC,EAAKygB,EAAG,EAAG,KAAM7f,MACxDA,KAAKqO,EAAI,IAAIkyB,aAAaphC,EAAMC,EAAKiP,GAAK,CAAC,EAAG,MAAOrO,MACrDA,KAAKshC,iBAAiBniC,EAAMC,EAAMK,GAClCO,KAAK+iB,cAAgB/iB,KAAK+iB,WAAA,CAK5B,SAASye,iBACPxhC,KAAKoP,GAAK,GACVpP,KAAKyhC,aAAe,GACpBzhC,KAAK0hC,GAAKp0B,SAAS,KAGrB,SAASq0B,iBAAiBxiC,EAAQC,EAAIK,GACpCO,KAAK4mB,UAAY,CACfsJ,OAAQ/wB,EACRsQ,GAAIrQ,EACJ8Y,UAAWzY,GAEbO,KAAKo6B,SAAW,GAChBp6B,KAAK+iB,YAAc/iB,KAAK4mB,UAAUsJ,OAAOpN,kBAAkBviB,QAAUP,KAAK4mB,UAAUnX,GAAG0S,gBAAgB5hB,MAAA,CAzUzGu/B,aAAapgC,UAAU8pB,cAAgB,WACrCxpB,KAAK+iB,aAAA,CAAc,EAcrBqd,aAAa1gC,UAAU+kB,MAAQ,WAC7BzkB,KAAKqO,EAAI,GACTrO,KAAKiiB,MAAA,CAAO,EAiCdse,aAAa7gC,UAAUgjB,SAAW,SAAUvjB,GAC1C,IAAIa,KAAK4c,KAAKvE,WAAW6J,UAAYliB,KAAKkiB,SAAY/iB,KAItDa,KAAKkiB,QAAUliB,KAAK4c,KAAKvE,WAAW6J,QACpCliB,KAAKgjB,2BACLhjB,KAAKiiB,KAAOjiB,KAAKiiB,MAAQ9iB,EAErBa,KAAKiiB,MAAM,CACb,IAAI7iB,EAAI,EACJK,EAAMO,KAAKwgC,UAAUjgC,OAMzB,IAJsB,QAAlBP,KAAKgX,WACPhX,KAAKygC,QAAU,IAGZrhC,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EACI,MAAxBY,KAAKwgC,UAAUphC,GAAG4B,EACE,QAAlBhB,KAAKgX,SACPhX,KAAKygC,SAAW,IAAMzgC,KAAKwgC,UAAUphC,GAAGyE,EAAEL,EAE1CxD,KAAK0gC,UAAUthC,GAAKY,KAAKwgC,UAAUphC,GAAGyE,EAAEL,EAG1CxD,KAAK2gC,WAAW,GAAK3gC,KAAKwgC,UAAUphC,GAAGyE,EAAEL,CAAA,GAMjD6C,gBAAgB,CAACwc,0BAA2B0d,cAa5Cl6B,gBAAgB,CAACwc,0BAA2B+d,oBAU5Cv6B,gBAAgB,CAACwc,0BAA2Bge,kBAQ5Cx6B,gBAAgB,CAACwc,0BAA2Bie,gBAiB5CC,iBAAiBrhC,UAAUkiC,cAAgB,SAAUziC,EAAQC,GAK3D,IAJA,IAAIK,EAAI,EACJY,EAAML,KAAKoB,EAAEb,OAAS,EAGnBd,EAAIY,GAAK,CAGd,GAFO0I,KAAKa,IAAIzK,EAAW,EAAJM,GAASN,EAAgB,EAATC,EAAiB,EAAJK,IAEzC,IACT,OAAO,EAGTA,GAAK,EAGP,OAAO,GAGTshC,iBAAiBrhC,UAAUyhC,iBAAmB,WAC5C,GAAInhC,KAAKoB,EAAEb,OAAS,GAAMP,KAAKiO,EAAE1N,OAAS,EACxC,OAAO,EAGT,GAAIP,KAAK4N,KAAKY,EAAEA,EAAE,GAAGzN,EAInB,IAHA,IAAI5B,EAAI,EACJC,EAAMY,KAAK4N,KAAKY,EAAEA,EAAEjO,OAEjBpB,EAAIC,GAAK,CACd,IAAKY,KAAK4hC,cAAc5hC,KAAK4N,KAAKY,EAAEA,EAAErP,GAAG4B,EAAGf,KAAK4N,KAAK/J,GACpD,OAAO,EAGT1E,GAAK,OAEF,IAAKa,KAAK4hC,cAAc5hC,KAAK4N,KAAKY,EAAEA,EAAGxO,KAAK4N,KAAK/J,GACtD,OAAO,EAGT,OAAO,GAGTk9B,iBAAiBrhC,UAAUgjB,SAAW,SAAUvjB,GAM9C,GALAa,KAAKk4B,KAAKxV,WACV1iB,KAAKiiB,MAAA,EACLjiB,KAAKghC,OAAA,EACLhhC,KAAKihC,OAAA,EAEDjhC,KAAKk4B,KAAKjW,MAAQ9iB,EAAa,CACjC,IAAIC,EAEAK,EACAY,EAFAG,EAAoB,EAAdR,KAAK4N,KAAK/J,EAIpB,IAAKzE,EAAI,EAAGA,EAAIoB,EAAKpB,GAAK,EACxBK,EAAOL,EAAI,GAAM,EAAI,IAAM,IAC3BiB,EAAM0I,KAAKoB,MAAMnK,KAAKk4B,KAAK10B,EAAEpE,GAAKK,GAE9BO,KAAKiO,EAAE7O,KAAOiB,IAChBL,KAAKiO,EAAE7O,GAAKiB,EACZL,KAAKghC,OAAS7hC,GAIlB,GAAIa,KAAKoB,EAAEb,OAGT,IAFAC,EAAMR,KAAKk4B,KAAK10B,EAAEjD,OAEbnB,EAAkB,EAAdY,KAAK4N,KAAK/J,EAAOzE,EAAIoB,EAAKpB,GAAK,EACtCK,EAAOL,EAAI,GAAM,EAAI,IAAM,EAC3BiB,EAAMjB,EAAI,GAAM,EAAI2J,KAAKoB,MAAuB,IAAjBnK,KAAKk4B,KAAK10B,EAAEpE,IAAYY,KAAKk4B,KAAK10B,EAAEpE,GAE/DY,KAAKoB,EAAEhC,EAAkB,EAAdY,KAAK4N,KAAK/J,KAAWxD,IAClCL,KAAKoB,EAAEhC,EAAkB,EAAdY,KAAK4N,KAAK/J,GAASxD,EAC9BL,KAAKihC,OAAS9hC,GAKpBa,KAAKiiB,MAAQ9iB,CAAA,GAIjBkH,gBAAgB,CAACwc,0BAA2Bke,kBAQ5CM,yBAAyB3hC,UAAU4hC,iBAAmB,SAAUniC,EAAMC,EAAMK,GAC1EO,KAAKoB,EAAIkf,gBAAgBsC,QAAQzjB,EAAMC,EAAKgC,EAAG,EAAG,IAAMpB,MACxDA,KAAKe,EAAIuf,gBAAgBsC,QAAQzjB,EAAMC,EAAK2B,EAAG,EAAG,KAAMf,MACxDA,KAAKZ,EAAIkhB,gBAAgBsC,QAAQzjB,EAAMC,EAAKA,EAAG,EAAG,KAAMY,MACxDA,KAAK2B,EAAI2e,gBAAgBsC,QAAQzjB,EAAMC,EAAKuC,GAAK,CAC/C6M,EAAG,GACF,EAAG,IAAMxO,MACZA,KAAKQ,EAAI8f,gBAAgBsC,QAAQzjB,EAAMC,EAAKoB,GAAK,CAC/CgO,EAAG,GACF,EAAG1E,UAAW9J,MACjBA,KAAKif,EAAI,IAAI8hB,iBAAiB5hC,EAAMC,EAAK6f,EAAGjf,MAC5CA,KAAKqK,MAAQ5K,EACbO,KAAK6hC,MAAQ,GACb7hC,KAAK8hC,gBAAgBriC,EAAQ4gC,MAAOjhC,GACpCY,KAAK+hC,mBAAmB3iC,EAAMK,GAC9BO,KAAK+iB,cAAgB/iB,KAAK+iB,WAAA,EAG5Bse,yBAAyB3hC,UAAUoiC,gBAAkB,SAAU3iC,EAAaC,GAC1E,IAAIK,EAAa0M,kBACb9L,EAAQiN,SAAoB,IAAXlO,EAAKD,EAAU,iBAAmB,kBACvDkB,EAAM4c,aAAa,KAAMxd,GACzBY,EAAM4c,aAAa,eAAgB,OACnC5c,EAAM4c,aAAa,gBAAiB,kBACpC,IACIzc,EACAO,EACAC,EAHAI,EAAQ,GAMZ,IAFAJ,EAAkB,EAAX5B,EAAK6f,EAAEpb,EAET9C,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACzBP,EAAO8M,SAAS,QAChBjN,EAAMkU,YAAY/T,GAClBY,EAAMsB,KAAKlC,GAGbrB,EAAY8d,aAAyB,OAAZ7d,EAAKqP,GAAc,OAAS,SAAU,OAASxI,kBAAoB,IAAMxG,EAAa,KAC/GO,KAAKgiC,GAAK3hC,EACVL,KAAKiiC,IAAM7gC,CAAA,EAGbigC,yBAAyB3hC,UAAUqiC,mBAAqB,SAAU5iC,EAAMC,GACtE,GAAIY,KAAKif,EAAEmiB,cAAgBphC,KAAKif,EAAEiiB,aAAc,CAC9C,IAAIzhC,EACAY,EACAG,EACAO,EAAOuM,SAAS,QAChBtM,EAAcsM,SAAS,QAC3BvM,EAAKwT,YAAYvT,GACjB,IAAII,EAAY+K,kBACZxK,EAASwK,kBACbpL,EAAKkc,aAAa,KAAMtb,GACxB,IAAIiC,EAAS0J,SAAoB,IAAXnO,EAAKA,EAAU,iBAAmB,kBACxDyE,EAAOqZ,aAAa,KAAM7b,GAC1BwC,EAAOqZ,aAAa,eAAgB,OACpCrZ,EAAOqZ,aAAa,gBAAiB,kBACrCzc,EAAOrB,EAAK8f,EAAEzQ,EAAEA,EAAE,GAAGzN,EAAI5B,EAAK8f,EAAEzQ,EAAEA,EAAE,GAAGzN,EAAER,OAASpB,EAAK8f,EAAEzQ,EAAEA,EAAEjO,OAC7D,IAAIsD,EAAQ7D,KAAK6hC,MAEjB,IAAKxhC,EAAe,EAAXlB,EAAK8f,EAAEpb,EAAOxD,EAAIG,EAAMH,GAAK,GACpCZ,EAAO6N,SAAS,SACX2P,aAAa,aAAc,oBAChCrZ,EAAO2Q,YAAY9U,GACnBoE,EAAMnB,KAAKjD,GAGbuB,EAAYic,aAAyB,OAAZ9d,EAAKsP,GAAc,OAAS,SAAU,OAASxI,kBAAoB,IAAM7E,EAAY,KAE9F,OAAZjC,EAAKsP,KACPzN,EAAYic,aAAa,iBAAkB2iB,YAAYzgC,EAAK+iC,IAAM,IAClElhC,EAAYic,aAAa,kBAAmB4iB,aAAa1gC,EAAK8xB,IAAM,IAEpD,IAAZ9xB,EAAK8xB,IACPjwB,EAAYic,aAAa,oBAAqB9d,EAAK4xB,KAIvD/wB,KAAKmiC,GAAKv+B,EACV5D,KAAKoiC,GAAKrhC,EACVf,KAAKqiC,IAAMx+B,EACX7D,KAAKsiC,OAAS3gC,EACdvC,EAAQkhC,OAASt/B,CAAA,GAIrBqF,gBAAgB,CAACwc,0BAA2Bwe,0BAW5Ch7B,gBAAgB,CAACg7B,yBAA0Bxe,0BAA2B0e,4BAkBtE,IAAIgB,iBAAmB,SAA0BpjC,EAAWC,EAAQK,EAAQY,GAC1E,GAAe,IAAXjB,EACF,MAAO,GAGT,IAGIoB,EAHAO,EAAK5B,EAAUiC,EACfJ,EAAK7B,EAAUkB,EACfe,EAAKjC,EAAUqE,EAEf7B,EAAc,KAAOtB,EAAI6mB,wBAAwB9lB,EAAG,GAAG,GAAIA,EAAG,GAAG,IAErE,IAAKZ,EAAI,EAAGA,EAAIpB,EAAQoB,GAAK,EAC3BmB,GAAe,KAAOtB,EAAI6mB,wBAAwBnmB,EAAGP,EAAI,GAAG,GAAIO,EAAGP,EAAI,GAAG,IAAM,IAAMH,EAAI6mB,wBAAwBlmB,EAAGR,GAAG,GAAIQ,EAAGR,GAAG,IAAM,IAAMH,EAAI6mB,wBAAwB9lB,EAAGZ,GAAG,GAAIY,EAAGZ,GAAG,IAQ5L,OALIf,GAAUL,IACZuC,GAAe,KAAOtB,EAAI6mB,wBAAwBnmB,EAAGP,EAAI,GAAG,GAAIO,EAAGP,EAAI,GAAG,IAAM,IAAMH,EAAI6mB,wBAAwBlmB,EAAG,GAAG,GAAIA,EAAG,GAAG,IAAM,IAAMX,EAAI6mB,wBAAwB9lB,EAAG,GAAG,GAAIA,EAAG,GAAG,IAC1LO,GAAe,KAGVA,CAAA,EAGL6gC,oBAAsB,WACxB,IAAIrjC,EAAkB,IAAIomB,OAEtBnmB,EAAgB,IAAImmB,OAqCxB,SAAS9lB,EAAuBN,EAAWC,EAAUK,IAC/CA,GAAgBL,EAASwnB,UAAUnX,GAAGwS,OACxC7iB,EAASwnB,UAAU1O,UAAU+E,aAAa,UAAW7d,EAASwnB,UAAUnX,GAAGjM,IAGzE/D,GAAgBL,EAASwnB,UAAUsJ,OAAOjO,OAC5C7iB,EAASwnB,UAAU1O,UAAU+E,aAAa,YAAa7d,EAASwnB,UAAUsJ,OAAO1sB,EAAE4jB,UAAA,CAIvF,SAAS/mB,IAAA,CAET,SAASG,EAAWf,EAAWY,EAAUG,GACvC,IAAIO,EACAC,EACAI,EACAO,EACAiC,EACAC,EAGAgL,EACAZ,EACAC,EACAG,EACAsE,EANAqM,EAAO3e,EAAS2/B,OAAOz/B,OACvB0e,EAAM5e,EAAS8/B,IAOnB,IAAKt8B,EAAI,EAAGA,EAAImb,EAAMnb,GAAK,EAAG,CAG5B,GAFAlC,EAAStB,EAASghB,GAAGY,MAAQzhB,EAEzBH,EAAS2/B,OAAOn8B,GAAGs8B,IAAMlhB,EAAK,CAKhC,IAJAhR,EAAM7O,EAAcqlB,QACpBpW,EAAa4Q,EAAM5e,EAAS2/B,OAAOn8B,GAAGs8B,IACtCxtB,EAAItS,EAAS4/B,aAAa1/B,OAAS,GAE3BoB,GAAU0M,EAAa,GAC7B1M,EAAStB,EAAS4/B,aAAattB,GAAGud,OAAOjO,MAAQtgB,EACjD0M,GAAc,EACdsE,GAAK,EAGP,GAAIhR,EAIF,IAHA0M,EAAa4Q,EAAM5e,EAAS2/B,OAAOn8B,GAAGs8B,IACtCxtB,EAAItS,EAAS4/B,aAAa1/B,OAAS,EAE5B8N,EAAa,GAClBH,EAAQ7N,EAAS4/B,aAAattB,GAAGud,OAAO1sB,EAAEiiB,MAC1CxX,EAAI2Y,UAAU1Y,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,IAAKA,EAAM,IAAKA,EAAM,IAAKA,EAAM,IAAKA,EAAM,IAAKA,EAAM,KAC/KG,GAAc,EACdsE,GAAK,OAIT1E,EAAM9O,EAMR,GAFA6B,GADA6N,EAAQxO,EAASghB,GAAGkD,OACPnF,QAETzd,EAAQ,CAGV,IAFAP,EAAwB,GAEnBL,EAAI,EAAGA,EAAIC,EAAMD,GAAK,GACzB6C,EAAYiL,EAAMD,OAAO7N,KAER6C,EAAUwb,UACzBhe,GAAyBmhC,iBAAiB3+B,EAAWA,EAAUwb,QAASxb,EAAUqK,EAAGA,IAIzF5N,EAAS0/B,OAAOl8B,GAAKzC,CAAA,MAErBA,EAAwBf,EAAS0/B,OAAOl8B,GAG1CxD,EAAS2/B,OAAOn8B,GAAGwK,IAAA,IAAK5O,EAAU4+B,GAAc,GAAKj9B,EACrDf,EAAS2/B,OAAOn8B,GAAGoe,KAAOtgB,GAAUtB,EAAS2/B,OAAOn8B,GAAGoe,IAAA,EAI3D,SAASlhB,EAAW5B,EAAWC,EAAUK,GACvC,IAAIY,EAAYjB,EAASiL,OAErBjL,EAAS6O,EAAEgU,MAAQxiB,IACrBY,EAAUggC,MAAMpjB,aAAa,OAAQ,OAAS9T,QAAQ/J,EAAS6O,EAAEzK,EAAE,IAAM,IAAM2F,QAAQ/J,EAAS6O,EAAEzK,EAAE,IAAM,IAAM2F,QAAQ/J,EAAS6O,EAAEzK,EAAE,IAAM,MAGzIpE,EAASgC,EAAE6gB,MAAQxiB,IACrBY,EAAUggC,MAAMpjB,aAAa,eAAgB7d,EAASgC,EAAEoC,EAAA,CAI5D,SAASxC,EAAqB7B,EAAWC,EAAUK,GACjD2B,EAAejC,EAAWC,EAAUK,GACpCkC,EAAaxC,EAAWC,EAAUK,EAAA,CAGpC,SAAS2B,EAAejC,EAAWC,EAAUK,GAC3C,IAsBIY,EACAG,EACAO,EACAC,EA+CEI,EAxEFO,EAAQvC,EAAS4iC,GACjBp+B,EAAaxE,EAAS6f,EAAEmiB,YACxBv9B,EAAMzE,EAAS2B,EAAEyC,EACjBqL,EAAMzP,EAASA,EAAEoE,EAErB,GAAIpE,EAASgC,EAAE6gB,MAAQxiB,EAAc,CACnC,IAAIwO,EAAwB,OAAjB9O,EAAUsP,GAAc,eAAiB,iBACpDrP,EAASiL,MAAMg2B,MAAMpjB,aAAahP,EAAM7O,EAASgC,EAAEoC,EAAA,CAGrD,GAAIpE,EAAS2B,EAAEkhB,MAAQxiB,EAAc,CACnC,IAAIyO,EAAwB,IAAhB/O,EAAUA,EAAU,KAAO,KACnCkP,EAAkB,OAAVH,EAAiB,KAAO,KACpCvM,EAAMsb,aAAa/O,EAAOrK,EAAI,IAC9BlC,EAAMsb,aAAa5O,EAAOxK,EAAI,IAE1BD,IAAexE,EAAS6f,EAAEiiB,eAC5B9hC,EAAS+iC,GAAGllB,aAAa/O,EAAOrK,EAAI,IACpCzE,EAAS+iC,GAAGllB,aAAa5O,EAAOxK,EAAI,KASxC,GAAIzE,EAAS6f,EAAE+hB,OAASvhC,EAAc,CACpCY,EAAQjB,EAAS6iC,IACjB,IAAItvB,EAAUvT,EAAS6f,EAAEhR,EAGzB,IAFAlN,EAAMV,EAAME,OAEPC,EAAI,EAAGA,EAAIO,EAAKP,GAAK,GACxBQ,EAAOX,EAAMG,IACRyc,aAAa,SAAUtK,EAAY,EAAJnS,GAAS,KAC7CQ,EAAKic,aAAa,aAAc,OAAStK,EAAY,EAAJnS,EAAQ,GAAK,IAAMmS,EAAY,EAAJnS,EAAQ,GAAK,IAAMmS,EAAY,EAAJnS,EAAQ,GAAK,KAIxH,GAAIoD,IAAexE,EAAS6f,EAAEgiB,OAASxhC,GAAe,CACpD,IAAIuf,EAAU5f,EAAS6f,EAAE7d,EAUzB,IAFAL,GALEV,EADEjB,EAAS6f,EAAEiiB,aACL9hC,EAAS6iC,IAET7iC,EAASijC,KAGP9hC,OAEPC,EAAI,EAAGA,EAAIO,EAAKP,GAAK,EACxBQ,EAAOX,EAAMG,GAERpB,EAAS6f,EAAEiiB,cACdlgC,EAAKic,aAAa,SAAU+B,EAAY,EAAJxe,GAAS,KAG/CQ,EAAKic,aAAa,eAAgB+B,EAAY,EAAJxe,EAAQ,IAItD,GAAoB,IAAhBrB,EAAUA,GACRC,EAASA,EAAE6iB,MAAQxiB,KACrBkC,EAAMsb,aAAa,KAAMpO,EAAI,IAC7BlN,EAAMsb,aAAa,KAAMpO,EAAI,IAEzBjL,IAAexE,EAAS6f,EAAEiiB,eAC5B9hC,EAAS+iC,GAAGllB,aAAa,KAAMpO,EAAI,IACnCzP,EAAS+iC,GAAGllB,aAAa,KAAMpO,EAAI,WAevC,IATIzP,EAAS2B,EAAEkhB,MAAQ7iB,EAASA,EAAE6iB,MAAQxiB,KACxC2B,EAAM2H,KAAKG,KAAKH,KAAKC,IAAInF,EAAI,GAAKgL,EAAI,GAAI,GAAK9F,KAAKC,IAAInF,EAAI,GAAKgL,EAAI,GAAI,IACzElN,EAAMsb,aAAa,IAAK7b,GAEpBwC,IAAexE,EAAS6f,EAAEiiB,cAC5B9hC,EAAS+iC,GAAGllB,aAAa,IAAK7b,IAI9BhC,EAASA,EAAE6iB,MAAQ7iB,EAASuC,EAAEsgB,MAAQ7iB,EAASoB,EAAEyhB,MAAQxiB,EAAc,CACpE2B,IACHA,EAAM2H,KAAKG,KAAKH,KAAKC,IAAInF,EAAI,GAAKgL,EAAI,GAAI,GAAK9F,KAAKC,IAAInF,EAAI,GAAKgL,EAAI,GAAI,KAG3E,IAAIoQ,EAAMlW,KAAKuY,MAAMzS,EAAI,GAAKhL,EAAI,GAAIgL,EAAI,GAAKhL,EAAI,IAC/CL,EAAUpE,EAASuC,EAAE6B,EAErBA,GAAW,EACbA,EAAU,IACDA,IAAY,IACrBA,GAAW,KAGb,IAAI0b,EAAO9d,EAAMoC,EACb8b,EAAIvW,KAAK4Y,IAAI1C,EAAM7f,EAASoB,EAAEgD,GAAK0b,EAAOrb,EAAI,GAC9C0b,EAAIxW,KAAK0Y,IAAIxC,EAAM7f,EAASoB,EAAEgD,GAAK0b,EAAOrb,EAAI,GAClDlC,EAAMsb,aAAa,KAAMqC,GACzB3d,EAAMsb,aAAa,KAAMsC,GAErB3b,IAAexE,EAAS6f,EAAEiiB,eAC5B9hC,EAAS+iC,GAAGllB,aAAa,KAAMqC,GAC/BlgB,EAAS+iC,GAAGllB,aAAa,KAAMsC,GAAA,EAOvC,SAAS5d,EAAaxC,EAAWC,EAAUK,GACzC,IAAIY,EAAYjB,EAASiL,MACrB7J,EAAIpB,EAASiP,EAEb7N,IAAMA,EAAEyhB,MAAQxiB,IAAiBe,EAAEigC,UACrCpgC,EAAUggC,MAAMpjB,aAAa,mBAAoBzc,EAAEigC,SACnDpgC,EAAUggC,MAAMpjB,aAAa,oBAAqBzc,EAAEmgC,WAAW,KAG7DvhC,EAAS6O,IAAM7O,EAAS6O,EAAEgU,MAAQxiB,IACpCY,EAAUggC,MAAMpjB,aAAa,SAAU,OAAS9T,QAAQ/J,EAAS6O,EAAEzK,EAAE,IAAM,IAAM2F,QAAQ/J,EAAS6O,EAAEzK,EAAE,IAAM,IAAM2F,QAAQ/J,EAAS6O,EAAEzK,EAAE,IAAM,MAG3IpE,EAASgC,EAAE6gB,MAAQxiB,IACrBY,EAAUggC,MAAMpjB,aAAa,iBAAkB7d,EAASgC,EAAEoC,IAGxDpE,EAASygB,EAAEoC,MAAQxiB,KACrBY,EAAUggC,MAAMpjB,aAAa,eAAgB7d,EAASygB,EAAErc,GAEpDnD,EAAUigC,QACZjgC,EAAUigC,OAAOrjB,aAAa,eAAgB7d,EAASygB,EAAErc,GAAA,CAK/D,MA/QS,CACPi/B,qBAGF,SAA8BtjC,GAC5B,OAAQA,EAAKsP,IACX,IAAK,KACH,OAAO1N,EAET,IAAK,KACH,OAAOK,EAET,IAAK,KACH,OAAOJ,EAET,IAAK,KACH,OAAOW,EAET,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACH,OAAOnB,EAET,IAAK,KACH,OAAOf,EAET,IAAK,KACH,OAAOY,EAET,QACE,OAAO,QApCW,GAuR1B,SAASqiC,gBAAgBvjC,EAAMC,EAAYK,GAEzCO,KAAK4O,OAAS,GAEd5O,KAAKm5B,WAAah6B,EAAKyP,OAEvB5O,KAAK2iC,WAAa,GAElB3iC,KAAKq/B,eAAiB,GAEtBr/B,KAAKo5B,UAAY,GAEjBp5B,KAAK0/B,kBAAoB,GAEzB1/B,KAAK4iC,iBAAmB,GACxB5iC,KAAKw9B,YAAYr+B,EAAMC,EAAYK,GAGnCO,KAAKyhC,aAAe,GA0WtB,SAASoB,YAAY1jC,EAAGC,EAAIK,EAAIY,EAAIG,EAAGO,GACrCf,KAAKoB,EAAIjC,EACTa,KAAK8iC,GAAK1jC,EACVY,KAAK+iC,GAAKtjC,EACVO,KAAKgjC,GAAK3iC,EACVL,KAAKkO,EAAI1N,EACTR,KAAK6D,EAAI9C,EACTf,KAAKiiB,KAAO,CACV7gB,GAAA,EACA0hC,KAAM1jC,EACN2jC,KAAMtjC,EACNujC,KAAM3iC,EACN6N,GAAA,EACArK,GAAA,EAAG,CAoDP,SAASo/B,aAAa9jC,EAAMC,GAC1BY,KAAKkjC,SAAWr9B,oBAChB7F,KAAKygB,GAAK,GACVzgB,KAAKwD,EAAI,GACTxD,KAAKuiB,IAAA,EACLviB,KAAKsiB,eAAA,EACLtiB,KAAKiiB,MAAA,EACLjiB,KAAK4N,KAAOxO,EACZY,KAAK4c,KAAOzd,EACZa,KAAK4hB,KAAO5hB,KAAK4c,KAAKgF,KACtB5hB,KAAKmjC,UAAY,EACjBnjC,KAAKojC,WAAA,EACLpjC,KAAKqjC,gBAAkB,EACvBrjC,KAAKmiB,gBAAkB,GACvBniB,KAAKsjC,YAAc,CACjBC,OAAQ,EACRC,SAAUxjC,KAAKyjC,gBACf50B,EAAG,GACHyf,OAAQ,GACRG,QAAS,GACTuU,GAAI,GACJU,EAAG,GACHC,cAAe,GACf//B,EAAG,GACHggC,GAAI,EACJC,WAAY,GACZC,GAAI,GACJ3B,GAAI,GACJphC,EAAG,GACHgiC,GAAI,GACJD,GAAI,EACJ3jC,EAAG,EACHuvB,GAAI,EACJqV,GAAI,EACJC,GAAI,KACJC,eAAA,EACAC,iBAAA,EACAC,iBAAA,EACAC,QAAS,EACTC,UAAW,EACXC,UAAW,GACXC,gBAAiB,EACjBt0B,YAAA,GAEFjQ,KAAKwkC,SAASxkC,KAAKsjC,YAAatjC,KAAK4N,KAAKS,EAAEG,EAAE,GAAGzN,GAE5Cf,KAAKykC,kBACRzkC,KAAK0kC,iBAAiB1kC,KAAKsjC,YAAA,CAvd/Bj9B,gBAAgB,CAACkwB,YAAakB,iBAAkB2F,eAAgBO,cAAeN,iBAAkB7G,aAAc8G,sBAAuBoF,iBAEtIA,gBAAgBhjC,UAAUilC,qBAAuB,WAAa,EAE9DjC,gBAAgBhjC,UAAUklC,eAAiB,IAAIrf,OAE/Cmd,gBAAgBhjC,UAAUmlC,yBAA2B,WAAa,EAElEnC,gBAAgBhjC,UAAUq/B,cAAgB,WACxC/+B,KAAK8kC,aAAa9kC,KAAKm5B,WAAYn5B,KAAKo5B,UAAWp5B,KAAKyhC,aAAczhC,KAAK25B,aAAc,EAAG,IAAI,GAChG35B,KAAK+kC,oBAAA,EAOPrC,gBAAgBhjC,UAAUqlC,mBAAqB,WAC7C,IAAI5lC,EAEAC,EACAK,EAEAY,EAJAG,EAAMR,KAAK4O,OAAOrO,OAGlBQ,EAAOf,KAAK2iC,WAAWpiC,OAEvBS,EAAa,GACbI,GAAA,EAEJ,IAAK3B,EAAI,EAAGA,EAAIsB,EAAMtB,GAAK,EAAG,CAK5B,IAJAY,EAAQL,KAAK2iC,WAAWljC,GACxB2B,GAAA,EACAJ,EAAWT,OAAS,EAEfpB,EAAI,EAAGA,EAAIqB,EAAKrB,GAAK,GAGa,KAFrCC,EAAQY,KAAK4O,OAAOzP,IAEV6gC,OAAOr/B,QAAQN,KACvBW,EAAW0B,KAAKtD,GAChBgC,EAAchC,EAAM2jB,aAAe3hB,GAInCJ,EAAWT,OAAS,GAAKa,GAC3BpB,KAAKglC,oBAAoBhkC,EAAA,GAK/B0hC,gBAAgBhjC,UAAUslC,oBAAsB,SAAU7lC,GACxD,IAAIC,EACAK,EAAMN,EAAOoB,OAEjB,IAAKnB,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EACxBD,EAAOC,GAAGoqB,eAAA,EAIdkZ,gBAAgBhjC,UAAUulC,mBAAqB,SAAU9lC,EAAMC,GAE7D,IAAIK,EACAY,EAAU,IAAI+/B,aAAajhC,EAAMC,GACjCoB,EAAcH,EAAQggC,MAgD1B,MA9CgB,OAAZlhC,EAAKsP,GACPhP,EAAc,IAAImhC,mBAAmB5gC,KAAMb,EAAMkB,GAC5B,OAAZlB,EAAKsP,GACdhP,EAAc,IAAIohC,iBAAiB7gC,KAAMb,EAAMkB,GAC1B,OAAZlB,EAAKsP,IAA2B,OAAZtP,EAAKsP,IAElChP,EAAc,IADwB,OAAZN,EAAKsP,GAAc4yB,yBAA2BE,4BAClCvhC,KAAMb,EAAMkB,GAClDL,KAAKqY,WAAWC,KAAK/D,YAAY9U,EAAYuiC,IAEzCviC,EAAY6iC,SACdtiC,KAAKqY,WAAWC,KAAK/D,YAAY9U,EAAY2iC,IAC7CpiC,KAAKqY,WAAWC,KAAK/D,YAAY9U,EAAY0iC,IAC7C3hC,EAAYyc,aAAa,OAAQ,OAAShX,kBAAoB,IAAMxG,EAAY6iC,OAAS,OAEtE,OAAZnjC,EAAKsP,KACdhP,EAAc,IAAIqhC,eAAe9gC,KAAMb,EAAMkB,IAG/B,OAAZlB,EAAKsP,IAA2B,OAAZtP,EAAKsP,KAC3BjO,EAAYyc,aAAa,iBAAkB2iB,YAAYzgC,EAAK+iC,IAAM,IAClE1hC,EAAYyc,aAAa,kBAAmB4iB,aAAa1gC,EAAK8xB,IAAM,IACpEzwB,EAAYyc,aAAa,eAAgB,KAEzB,IAAZ9d,EAAK8xB,IACPzwB,EAAYyc,aAAa,oBAAqB9d,EAAK4xB,KAIxC,IAAX5xB,EAAKM,GACPe,EAAYyc,aAAa,YAAa,WAGpC9d,EAAKi/B,IACP59B,EAAYyc,aAAa,KAAM9d,EAAKi/B,IAGlCj/B,EAAK4Q,IACPvP,EAAYyc,aAAa,QAAS9d,EAAK4Q,IAGrC5Q,EAAKs6B,KACPj5B,EAAY6J,MAAM,kBAAoBorB,aAAat2B,EAAKs6B,KAG1Dz5B,KAAK2iC,WAAWjgC,KAAKrC,GACrBL,KAAKklC,sBAAsB/lC,EAAMM,GAC1BA,CAAA,EAGTijC,gBAAgBhjC,UAAUylC,mBAAqB,SAAUhmC,GACvD,IAAIC,EAAc,IAAIoiC,eActB,OAZIriC,EAAKi/B,IACPh/B,EAAYsiC,GAAGzkB,aAAa,KAAM9d,EAAKi/B,IAGrCj/B,EAAK4Q,IACP3Q,EAAYsiC,GAAGzkB,aAAa,QAAS9d,EAAK4Q,IAGxC5Q,EAAKs6B,KACPr6B,EAAYsiC,GAAGr3B,MAAM,kBAAoBorB,aAAat2B,EAAKs6B,KAGtDr6B,CAAA,EAGTsjC,gBAAgBhjC,UAAU0lC,uBAAyB,SAAUjmC,EAAMC,GACjE,IAAIK,EAAoB+qB,yBAAyBgB,qBAAqBxrB,KAAMb,EAAMa,MAC9EK,EAAc,IAAIshC,iBAAiBliC,EAAmBA,EAAkB2B,EAAGhC,GAE/E,OADAY,KAAKklC,sBAAsB/lC,EAAMkB,GAC1BA,CAAA,EAGTqiC,gBAAgBhjC,UAAU2lC,mBAAqB,SAAUlmC,EAAMC,EAAiBK,GAC9E,IAAIY,EAAK,EAEO,OAAZlB,EAAKsP,GACPpO,EAAK,EACgB,OAAZlB,EAAKsP,GACdpO,EAAK,EACgB,OAAZlB,EAAKsP,KACdpO,EAAK,GAGP,IACIG,EAAc,IAAIs/B,aAAa1gC,EAAiBK,EADhC4kB,qBAAqBe,aAAaplB,KAAMb,EAAMkB,EAAIL,OAKtE,OAHAA,KAAK4O,OAAOlM,KAAKlC,GACjBR,KAAKo/B,oBAAoB5+B,GACzBR,KAAKklC,sBAAsB/lC,EAAMqB,GAC1BA,CAAA,EAGTkiC,gBAAgBhjC,UAAUwlC,sBAAwB,SAAU/lC,EAAMC,GAIhE,IAHA,IAAIK,EAAI,EACJY,EAAML,KAAK4iC,iBAAiBriC,OAEzBd,EAAIY,GAAK,CACd,GAAIL,KAAK4iC,iBAAiBnjC,GAAGk4B,UAAYv4B,EACvC,OAGFK,GAAK,EAGPO,KAAK4iC,iBAAiBlgC,KAAK,CACzB4iC,GAAI9C,oBAAoBC,qBAAqBtjC,GAC7Cw4B,QAASv4B,EACTwO,KAAMzO,GAAA,EAIVujC,gBAAgBhjC,UAAU6lC,iBAAmB,SAAUpmC,GACrD,IACIC,EADAK,EAAMN,EAAY6gC,OAElB3/B,EAAOL,KAAK2iC,WAAWpiC,OAE3B,IAAKnB,EAAI,EAAGA,EAAIiB,EAAMjB,GAAK,EACpBY,KAAK2iC,WAAWvjC,GAAG0Q,QACtBrQ,EAAIiD,KAAK1C,KAAK2iC,WAAWvjC,GAAA,EAK/BsjC,gBAAgBhjC,UAAUuwB,aAAe,WAEvC,IAAI9wB,EADJa,KAAKsiB,eAAA,EAEL,IAAIljB,EAAMY,KAAKo5B,UAAU74B,OAEzB,IAAKpB,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EACxBa,KAAKyhC,aAAatiC,GAAKa,KAAKo5B,UAAUj6B,GAOxC,IAJAa,KAAK8kC,aAAa9kC,KAAKm5B,WAAYn5B,KAAKo5B,UAAWp5B,KAAKyhC,aAAczhC,KAAK25B,aAAc,EAAG,IAAI,GAChG35B,KAAK+kC,qBACL3lC,EAAMY,KAAK8iB,kBAAkBviB,OAExBpB,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EACxBa,KAAK8iB,kBAAkB3jB,GAAGujB,WAG5B1iB,KAAKw/B,iBAAA,EAGPkD,gBAAgBhjC,UAAUolC,aAAe,SAAU3lC,EAAKC,EAAWK,EAAcY,EAAWG,EAAOO,EAAcC,GAC/G,IACII,EAEAO,EACAiC,EAGAC,EACAgL,EACAZ,EATAC,EAAkB,GAAG/K,OAAOpC,GAE5BsN,EAAMlP,EAAIoB,OAAS,EAGnBoS,EAAY,GACZqM,EAAe,GAKnB,IAAK5d,EAAIiN,EAAKjN,GAAK,EAAGA,GAAK,EAAG,CAS5B,IARA6M,EAAejO,KAAKy/B,uBAAuBtgC,EAAIiC,KAK7ChC,EAAUgC,GAAK3B,EAAawO,EAAe,GAF3C9O,EAAIiC,GAAG0uB,QAAU9uB,EAKD,OAAd7B,EAAIiC,GAAGqN,IAA6B,OAAdtP,EAAIiC,GAAGqN,IAA6B,OAAdtP,EAAIiC,GAAGqN,IAA6B,OAAdtP,EAAIiC,GAAGqN,IAA6B,OAAdtP,EAAIiC,GAAGqN,GAC5FR,EAGH7O,EAAUgC,GAAGiJ,MAAMyF,QAAA,EAFnB1Q,EAAUgC,GAAKpB,KAAKilC,mBAAmB9lC,EAAIiC,GAAIZ,GAK7CrB,EAAIiC,GAAG0uB,SACL1wB,EAAUgC,GAAGiJ,MAAMg2B,MAAMjM,aAAe/zB,GAC1CA,EAAUkU,YAAYnV,EAAUgC,GAAGiJ,MAAMg2B,OAI7C1tB,EAAUjQ,KAAKtD,EAAUgC,GAAGiJ,YACvB,GAAkB,OAAdlL,EAAIiC,GAAGqN,GAAa,CAC7B,GAAKR,EAKH,IAFArK,EAAOxE,EAAUgC,GAAGgO,GAAG7O,OAElBoB,EAAI,EAAGA,EAAIiC,EAAMjC,GAAK,EACzBvC,EAAUgC,GAAGqgC,aAAa9/B,GAAKvC,EAAUgC,GAAGgO,GAAGzN,QALjDvC,EAAUgC,GAAKpB,KAAKmlC,mBAAmBhmC,EAAIiC,IAS7CpB,KAAK8kC,aAAa3lC,EAAIiC,GAAGgO,GAAIhQ,EAAUgC,GAAGgO,GAAIhQ,EAAUgC,GAAGqgC,aAAcriC,EAAUgC,GAAGsgC,GAAIlhC,EAAQ,EAAG0N,EAAiBlN,GAElH7B,EAAIiC,GAAG0uB,SACL1wB,EAAUgC,GAAGsgC,GAAGtN,aAAe/zB,GACjCA,EAAUkU,YAAYnV,EAAUgC,GAAGsgC,GAAA,KAGhB,OAAdviC,EAAIiC,GAAGqN,IACXR,IACH7O,EAAUgC,GAAKpB,KAAKolC,uBAAuBjmC,EAAIiC,GAAIf,IAGrDwD,EAAmBzE,EAAUgC,GAAGwlB,UAChC1Y,EAAgBxL,KAAKmB,IACE,OAAd1E,EAAIiC,GAAGqN,IAA6B,OAAdtP,EAAIiC,GAAGqN,IAA6B,OAAdtP,EAAIiC,GAAGqN,IAA6B,OAAdtP,EAAIiC,GAAGqN,IAC7ER,IACH7O,EAAUgC,GAAKpB,KAAKqlC,mBAAmBlmC,EAAIiC,GAAI8M,EAAiB1N,IAGlER,KAAKulC,iBAAiBnmC,EAAUgC,KACT,OAAdjC,EAAIiC,GAAGqN,IAA6B,OAAdtP,EAAIiC,GAAGqN,IAA6B,OAAdtP,EAAIiC,GAAGqN,IAA6B,OAAdtP,EAAIiC,GAAGqN,IAA6B,OAAdtP,EAAIiC,GAAGqN,IAA6B,OAAdtP,EAAIiC,GAAGqN,IACzHR,GAMHY,EAAWzP,EAAUgC,IACZ0O,QAAA,IANTjB,EAAWka,eAAeE,YAAY9pB,EAAIiC,GAAGqN,KACpCgb,KAAKzpB,KAAMb,EAAIiC,IACxBhC,EAAUgC,GAAKyN,EACf7O,KAAKq/B,eAAe38B,KAAKmM,IAM3BmQ,EAAatc,KAAKmM,IACK,OAAd1P,EAAIiC,GAAGqN,KACXR,GAOHY,EAAWzP,EAAUgC,IACZ0O,QAAA,GAPTjB,EAAWka,eAAeE,YAAY9pB,EAAIiC,GAAGqN,IAC7CrP,EAAUgC,GAAKyN,EACfA,EAAS4a,KAAKzpB,KAAMb,EAAKiC,EAAGhC,GAC5BY,KAAKq/B,eAAe38B,KAAKmM,GACzB7N,GAAA,GAMFge,EAAatc,KAAKmM,IAGpB7O,KAAK2/B,oBAAoBxgC,EAAIiC,GAAIA,EAAI,GAKvC,IAFAiN,EAAMsE,EAAUpS,OAEXa,EAAI,EAAGA,EAAIiN,EAAKjN,GAAK,EACxBuR,EAAUvR,GAAG0O,QAAA,EAKf,IAFAzB,EAAM2Q,EAAaze,OAEda,EAAI,EAAGA,EAAIiN,EAAKjN,GAAK,EACxB4d,EAAa5d,GAAG0O,QAAA,CAAS,EAI7B4yB,gBAAgBhjC,UAAUs/B,mBAAqB,WAE7C,IAAI7/B,EADJa,KAAKw/B,kBAEL,IAAIpgC,EAAMY,KAAK2iC,WAAWpiC,OAE1B,IAAKpB,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EACxBa,KAAK2iC,WAAWxjC,GAAGslB,QAKrB,IAFAzkB,KAAKwlC,cAEArmC,EAAI,EAAGA,EAAIC,EAAKD,GAAK,GACpBa,KAAK2iC,WAAWxjC,GAAG8iB,MAAQjiB,KAAKsiB,iBAC9BtiB,KAAK2iC,WAAWxjC,GAAGmhC,SACrBtgC,KAAK2iC,WAAWxjC,GAAGmhC,OAAOrjB,aAAa,IAAKjd,KAAK2iC,WAAWxjC,GAAGkP,GAE/DrO,KAAK2iC,WAAWxjC,GAAGkP,EAAI,OAASrO,KAAK2iC,WAAWxjC,GAAGkP,GAGrDrO,KAAK2iC,WAAWxjC,GAAGkhC,MAAMpjB,aAAa,IAAKjd,KAAK2iC,WAAWxjC,GAAGkP,GAAK,UAKzEq0B,gBAAgBhjC,UAAU8lC,YAAc,WACtC,IAAIrmC,EAEAC,EADAK,EAAMO,KAAK4iC,iBAAiBriC,OAGhC,IAAKpB,EAAI,EAAGA,EAAIM,EAAKN,GAAK,EACxBC,EAAkBY,KAAK4iC,iBAAiBzjC,IAEnCa,KAAKsiB,eAAiBljB,EAAgBu4B,QAAQ5U,eAAA,IAAgB3jB,EAAgBwO,MACjFxO,EAAgBkmC,GAAGlmC,EAAgBwO,KAAMxO,EAAgBu4B,QAAS33B,KAAKsiB,cAAA,EAK7EogB,gBAAgBhjC,UAAUoU,QAAU,WAClC9T,KAAKu+B,qBACLv+B,KAAKm5B,WAAa,KAClBn5B,KAAKo5B,UAAY,MAoBnByJ,YAAYnjC,UAAU+lC,OAAS,SAAUtmC,EAAGC,EAAIK,EAAIY,EAAIG,EAAGO,GACzDf,KAAKiiB,KAAK7gB,GAAA,EACVpB,KAAKiiB,KAAK6gB,IAAA,EACV9iC,KAAKiiB,KAAK8gB,IAAA,EACV/iC,KAAKiiB,KAAK+gB,IAAA,EACVhjC,KAAKiiB,KAAK/T,GAAA,EACVlO,KAAKiiB,KAAKpe,GAAA,EACV,IAAI7C,GAAA,EAsCJ,OApCIhB,KAAKoB,IAAMjC,IACba,KAAKoB,EAAIjC,EACTa,KAAKiiB,KAAK7gB,GAAA,EACVJ,GAAA,GAGEhB,KAAK8iC,KAAO1jC,IACdY,KAAK8iC,GAAK1jC,EACVY,KAAKiiB,KAAK6gB,IAAA,EACV9hC,GAAA,GAGEhB,KAAK+iC,KAAOtjC,IACdO,KAAK+iC,GAAKtjC,EACVO,KAAKiiB,KAAK8gB,IAAA,EACV/hC,GAAA,GAGEhB,KAAKgjC,KAAO3iC,IACdL,KAAKgjC,GAAK3iC,EACVL,KAAKiiB,KAAK+gB,IAAA,EACVhiC,GAAA,GAGEhB,KAAKkO,IAAM1N,IACbR,KAAKkO,EAAI1N,EACTR,KAAKiiB,KAAK/T,GAAA,EACVlN,GAAA,IAGED,EAAER,QAAWP,KAAK6D,EAAE,KAAO9C,EAAE,IAAMf,KAAK6D,EAAE,KAAO9C,EAAE,IAAMf,KAAK6D,EAAE,KAAO9C,EAAE,IAAMf,KAAK6D,EAAE,KAAO9C,EAAE,IAAMf,KAAK6D,EAAE,MAAQ9C,EAAE,KAAOf,KAAK6D,EAAE,MAAQ9C,EAAE,MAChJf,KAAK6D,EAAI9C,EACTf,KAAKiiB,KAAKpe,GAAA,EACV7C,GAAA,GAGKA,CAAA,EAsDTiiC,aAAavjC,UAAU+jC,gBAAkB,CAAC,EAAG,GAE7CR,aAAavjC,UAAU8kC,SAAW,SAAUrlC,EAAKC,GAC/C,IAAK,IAAIK,KAAKL,EACRC,OAAOK,UAAUC,eAAeC,KAAKR,EAAMK,KAC7CN,EAAIM,GAAKL,EAAKK,IAIlB,OAAON,CAAA,EAGT8jC,aAAavjC,UAAUgmC,eAAiB,SAAUvmC,GAC3CA,EAAK8Q,YACRjQ,KAAK0kC,iBAAiBvlC,GAGxBa,KAAKsjC,YAAcnkC,EACnBa,KAAKsjC,YAAYE,SAAWxjC,KAAKsjC,YAAYE,UAAYxjC,KAAKyjC,gBAC9DzjC,KAAKiiB,MAAA,CAAO,EAGdghB,aAAavjC,UAAU+kC,eAAiB,WACtC,OAAOzkC,KAAK2lC,iBAAA,EAGd1C,aAAavjC,UAAUimC,gBAAkB,WAOvC,OANA3lC,KAAKuiB,GAAKviB,KAAK4N,KAAKS,EAAEG,EAAEjO,OAAS,EAE7BP,KAAKuiB,IACPviB,KAAK2iB,UAAU3iB,KAAK4lC,iBAAiB5yB,KAAKhT,OAGrCA,KAAKuiB,EAAA,EAGd0gB,aAAavjC,UAAUijB,UAAY,SAAUxjB,GAC3Ca,KAAKmiB,gBAAgBzf,KAAKvD,GAC1Ba,KAAK4c,KAAK4F,mBAAmBxiB,KAAA,EAG/BijC,aAAavjC,UAAUgjB,SAAW,SAAUvjB,GAC1C,GAAKa,KAAK4c,KAAKvE,WAAW6J,UAAYliB,KAAKkiB,SAAYliB,KAAKmiB,gBAAgB5hB,QAAYpB,EAAxF,CAIAa,KAAKsjC,YAAYnkC,EAAIa,KAAK4N,KAAKS,EAAEG,EAAExO,KAAKmjC,WAAWpiC,EAAE5B,EACrD,IAAIC,EAAeY,KAAKsjC,YACpB7jC,EAAeO,KAAKmjC,UAExB,GAAInjC,KAAKoiB,KACPpiB,KAAK0lC,eAAe1lC,KAAKsjC,iBAD3B,CAOA,IAAIjjC,EAFJL,KAAKoiB,MAAA,EACLpiB,KAAKiiB,MAAA,EAEL,IAAIzhB,EAAMR,KAAKmiB,gBAAgB5hB,OAC3BQ,EAAa5B,GAAea,KAAK4N,KAAKS,EAAEG,EAAExO,KAAKmjC,WAAWpiC,EAE9D,IAAKV,EAAI,EAAGA,EAAIG,EAAKH,GAAK,EAGtBU,EADEtB,IAAiBO,KAAKmjC,UACXnjC,KAAKmiB,gBAAgB9hB,GAAGU,EAAYA,EAAW5B,GAE/Ca,KAAKmiB,gBAAgB9hB,GAAGL,KAAKsjC,YAAaviC,EAAW5B,GAIlEC,IAAiB2B,GACnBf,KAAK0lC,eAAe3kC,GAGtBf,KAAKwD,EAAIxD,KAAKsjC,YACdtjC,KAAKygB,GAAKzgB,KAAKwD,EACfxD,KAAKoiB,MAAA,EACLpiB,KAAKkiB,QAAUliB,KAAK4c,KAAKvE,WAAW6J,OAAA,IAGtC+gB,aAAavjC,UAAUkmC,iBAAmB,WAMxC,IALA,IAAIzmC,EAAWa,KAAK4N,KAAKS,EAAEG,EACvBpP,EAAWY,KAAK4c,KAAKgF,KAAKC,cAC1BpiB,EAAI,EACJY,EAAMlB,EAASoB,OAEZd,GAAKY,EAAM,KACZZ,IAAMY,EAAM,GAAKlB,EAASM,EAAI,GAAGN,EAAIC,IAIzCK,GAAK,EAOP,OAJIO,KAAKmjC,YAAc1jC,IACrBO,KAAKmjC,UAAY1jC,GAGZO,KAAK4N,KAAKS,EAAEG,EAAExO,KAAKmjC,WAAWpiC,CAAA,EAGvCkiC,aAAavjC,UAAUmmC,eAAiB,SAAU1mC,GAQhD,IAPA,IAGIC,EACAK,EAJAY,EAAkB,GAClBG,EAAI,EACJO,EAAM5B,EAAKoB,OAGXS,GAAA,EAEGR,EAAIO,GACT3B,EAAWD,EAAK40B,WAAWvzB,GAEvB0wB,YAAY8B,oBAAoB5zB,GAClCiB,EAAgBA,EAAgBE,OAAS,IAAMpB,EAAK2mC,OAAOtlC,GAClDpB,GAAY,OAAUA,GAAY,OAC3CK,EAAiBN,EAAK40B,WAAWvzB,EAAI,KAEf,OAAUf,GAAkB,OAC5CuB,GAAiBkwB,YAAY4B,WAAW1zB,EAAUK,IACpDY,EAAgBA,EAAgBE,OAAS,IAAMpB,EAAK0Z,OAAOrY,EAAG,GAC9DQ,GAAA,GAEAX,EAAgBqC,KAAKvD,EAAK0Z,OAAOrY,EAAG,IAGtCA,GAAK,GAELH,EAAgBqC,KAAKvD,EAAK2mC,OAAOtlC,IAE1BpB,EAAW,OACpBK,EAAiBN,EAAK40B,WAAWvzB,EAAI,GAEjC0wB,YAAY6B,kBAAkB3zB,EAAUK,IAC1CuB,GAAA,EACAX,EAAgBA,EAAgBE,OAAS,IAAMpB,EAAK0Z,OAAOrY,EAAG,GAC9DA,GAAK,GAELH,EAAgBqC,KAAKvD,EAAK2mC,OAAOtlC,KAE1B0wB,YAAY6B,kBAAkB3zB,IACvCiB,EAAgBA,EAAgBE,OAAS,IAAMpB,EAAK2mC,OAAOtlC,GAC3DQ,GAAA,GAEAX,EAAgBqC,KAAKvD,EAAK2mC,OAAOtlC,IAGnCA,GAAK,EAGP,OAAOH,CAAA,EAGT4iC,aAAavjC,UAAUglC,iBAAmB,SAAUvlC,GAClDA,EAAa8Q,YAAA,EACb,IAGI7Q,EACAK,EACAY,EAEAG,EAQAO,EACAC,EAEAI,EAlBAO,EAAc3B,KAAK4c,KAAKvE,WAAWiB,YACnC1V,EAAO5D,KAAK4N,KACZ/J,EAAU,GAIVgL,EAAQ,EAERZ,EAAiBrK,EAAKsK,EAAE+Q,EACxB/Q,EAAc,EACdG,EAAa,EACbsE,EAAc,EACdqM,EAAa,GACbC,EAAY,EACZzb,EAAe,EAGf0b,EAAWvd,EAAYuyB,cAAc/0B,EAAa0P,GAElDyQ,EAAU,EACVC,EAAY8O,kBAAkBnP,GAClC/f,EAAasvB,QAAUlP,EAAUiP,OACjCrvB,EAAamvB,OAAS/O,EAAUlV,MAChClL,EAAaklC,UAAYllC,EAAa4B,EACtC5B,EAAamlC,UAAYtkC,KAAK6lC,eAAe1mC,EAAaA,GAC1DM,EAAMN,EAAamlC,UAAU/jC,OAC7BpB,EAAaolC,gBAAkBplC,EAAaykC,GAC5C,IACIpkB,EADAC,EAAiBtgB,EAAauvB,GAAK,IAAOvvB,EAAaklC,UAG3D,GAAIllC,EAAa4kC,GAOf,IANA,IAGIrkB,EACAC,EAJAC,GAAA,EACApR,EAAWrP,EAAa4kC,GAAG,GAC3BlkB,EAAY1gB,EAAa4kC,GAAG,GAIzBnkB,GAAM,CAEXF,EAAgB,EAChBT,EAAY,EACZxf,GAHAkgB,EAAY3f,KAAK6lC,eAAe1mC,EAAaA,IAG7BoB,OAChBkf,EAAiBtgB,EAAauvB,GAAK,IAAOvvB,EAAaklC,UACvD,IAAIvkB,GAAkB,EAEtB,IAAK1gB,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EACxBogB,EAAWG,EAAUvgB,GAAG20B,WAAW,GACnC1zB,GAAA,EAEqB,MAAjBsf,EAAUvgB,GACZ0gB,EAAiB1gB,EACK,KAAbogB,GAAgC,IAAbA,IAC5BP,EAAY,EACZ5e,GAAA,EACAqf,GAAiBvgB,EAAaolC,iBAA4C,IAAzBplC,EAAaklC,WAG5D1iC,EAAY4N,OACdnO,EAAWO,EAAYmyB,YAAYnU,EAAUvgB,GAAI8f,EAASoP,OAAQpP,EAAS4S,SAC3ExS,EAAUjf,EAAc,EAAIe,EAASye,EAAI1gB,EAAaklC,UAAY,KAGlE/kB,EAAU3d,EAAYwwB,YAAYxS,EAAUvgB,GAAID,EAAa0P,EAAG1P,EAAaklC,WAG3EplB,EAAYK,EAAU9Q,GAA6B,MAAjBmR,EAAUvgB,KACtB,IAApB0gB,EACFrgB,GAAO,EAEPL,EAAI0gB,EAGNJ,GAAiBvgB,EAAaolC,iBAA4C,IAAzBplC,EAAaklC,UAC9D1kB,EAAU5K,OAAO3V,EAAG0gB,IAAmB1gB,EAAI,EAAI,EAAG,MAElD0gB,GAAkB,EAClBb,EAAY,IAEZA,GAAaK,EACbL,GAAaQ,GAIjBC,GAAiBR,EAASqkB,OAASpkC,EAAaklC,UAAY,IAExDrkC,KAAKojC,WAAajkC,EAAaklC,UAAYrkC,KAAKqjC,iBAAmBxjB,EAAYH,GACjFvgB,EAAaklC,WAAa,EAC1BllC,EAAaolC,gBAAkBplC,EAAaklC,UAAYllC,EAAaykC,GAAKzkC,EAAa4B,IAEvF5B,EAAamlC,UAAY3kB,EACzBlgB,EAAMN,EAAamlC,UAAU/jC,OAC7Bqf,GAAA,EAAO,CAKbX,GAAaQ,EACbH,EAAU,EACV,IACIS,EADAC,EAAoB,EAGxB,IAAK5gB,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EA6CxB,GA5CAiB,GAAA,EAIiB,MAFjBmf,GADAO,EAAc5gB,EAAamlC,UAAUllC,IACd20B,WAAW,KAEE,IAAbvU,GACrBQ,EAAoB,EACpBhB,EAAWtc,KAAKuc,GAChBzb,EAAeyb,EAAYzb,EAAeyb,EAAYzb,EACtDyb,GAAa,EAAIQ,EACjBjf,EAAM,GACNH,GAAA,EACAsS,GAAe,GAEfnS,EAAMuf,EAGJpe,EAAY4N,OACdnO,EAAWO,EAAYmyB,YAAY/T,EAAab,EAASoP,OAAQ3sB,EAAYuyB,cAAc/0B,EAAa0P,GAAGijB,SAC3GxS,EAAUjf,EAAc,EAAIe,EAASye,EAAI1gB,EAAaklC,UAAY,KAIlE/kB,EAAU3d,EAAYwwB,YAAY3xB,EAAKrB,EAAa0P,EAAG1P,EAAaklC,WAIlD,MAAhBtkB,EACFC,GAAqBV,EAAUG,GAE/BR,GAAaK,EAAUG,EAAiBO,EACxCA,EAAoB,GAGtBnc,EAAQnB,KAAK,CACXkB,EAAG0b,EACHymB,GAAIzmB,EACJ0mB,IAAK93B,EACLlN,EAAGX,EACH4lC,UAAW,GACXC,IAAK1lC,EACL2lC,KAAMxzB,EACNyzB,sBAAuB,IAGH,GAAlBn4B,GAIF,GAFAC,GAAeoR,EAEH,KAAR9e,GAAsB,MAARA,GAAepB,IAAMK,EAAM,EAAG,CAK9C,IAJY,KAARe,GAAsB,MAARA,IAChB0N,GAAeoR,GAGVjR,GAAcjP,GACnByE,EAAQwK,GAAY03B,GAAK73B,EACzBrK,EAAQwK,GAAY8sB,IAAMtsB,EAC1BhL,EAAQwK,GAAYg4B,MAAQ/mB,EAC5BjR,GAAc,EAGhBQ,GAAS,EACTX,EAAc,QAEX,GAAsB,GAAlBD,GAIT,GAFAC,GAAeoR,EAEH,KAAR9e,GAAcpB,IAAMK,EAAM,EAAG,CAK/B,IAJY,KAARe,IACF0N,GAAeoR,GAGVjR,GAAcjP,GACnByE,EAAQwK,GAAY03B,GAAK73B,EACzBrK,EAAQwK,GAAY8sB,IAAMtsB,EAC1BhL,EAAQwK,GAAYg4B,MAAQ/mB,EAC5BjR,GAAc,EAGhBH,EAAc,EACdW,GAAS,QAGXhL,EAAQgL,GAAOssB,IAAMtsB,EACrBhL,EAAQgL,GAAOw3B,MAAQ,EACvBx3B,GAAS,EAQb,GAJA1P,EAAayE,EAAIC,EACjBL,EAAeyb,EAAYzb,EAAeyb,EAAYzb,EACtDwb,EAAWtc,KAAKuc,GAEZ9f,EAAa4kC,GACf5kC,EAAaqkC,SAAWrkC,EAAa4kC,GAAG,GACxC5kC,EAAawkC,cAAgB,OAI7B,OAFAxkC,EAAaqkC,SAAWhgC,EAEhBrE,EAAaukC,GACnB,KAAK,EACHvkC,EAAawkC,eAAiBxkC,EAAaqkC,SAC3C,MAEF,KAAK,EACHrkC,EAAawkC,eAAiBxkC,EAAaqkC,SAAW,EACtD,MAEF,QACErkC,EAAawkC,cAAgB,EAInCxkC,EAAa0kC,WAAa7kB,EAC1B,IACI6G,EACAygB,EAEAC,EACAC,EALAC,EAAY7iC,EAAKpD,EAGrBQ,EAAOylC,EAAUlmC,OAGjB,IAAImmC,EAAU,GAEd,IAAK3lC,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EAAG,CAkB5B,KAjBA8kB,EAAe4gB,EAAU1lC,IAERP,EAAEuiC,KACjB5jC,EAAa+kC,iBAAA,GAGXre,EAAarlB,EAAEsiC,KACjB3jC,EAAaglC,iBAAA,IAGXte,EAAarlB,EAAEwiC,IAAMnd,EAAarlB,EAAEmmC,IAAM9gB,EAAarlB,EAAEomC,IAAM/gB,EAAarlB,EAAEqmC,MAChF1nC,EAAa8kC,eAAA,GAGfuC,EAAM,EACND,EAAQ1gB,EAAa9kB,EAAEme,EAElB9f,EAAI,EAAGA,EAAIK,EAAKL,GAAK,GACxBknC,EAAaziC,EAAQzE,IACV6mC,UAAUllC,GAAKylC,GAEb,GAATD,GAAiC,KAAnBD,EAAWJ,KAAuB,GAATK,GAAiC,KAAnBD,EAAWJ,KAAiC,MAAnBI,EAAWJ,KAAwB,GAATK,IAAeD,EAAWtlC,GAAuB,KAAlBslC,EAAWJ,KAAc9mC,GAAKK,EAAM,IAAe,GAAT8mC,IAAeD,EAAWtlC,GAAK5B,GAAKK,EAAM,MAEnM,IAAtBomB,EAAa9kB,EAAE+lC,IACjBJ,EAAQhkC,KAAK8jC,GAGfA,GAAO,GAIX5iC,EAAKpD,EAAEO,GAAGA,EAAEgmC,WAAaP,EACzB,IACIzgB,EADAihB,GAAc,EAGlB,GAA0B,IAAtBnhB,EAAa9kB,EAAE+lC,GACjB,IAAK1nC,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EAGpB4nC,IAFJV,EAAaziC,EAAQzE,IAEQ6mC,UAAUllC,KAErCimC,EAAaV,EAAWL,UAAUllC,GAClCglB,EAAS2gB,EAAQ3xB,OAAOhM,KAAKK,MAAML,KAAKY,SAAW+8B,EAAQnmC,QAAS,GAAG,IAGzE+lC,EAAWL,UAAUllC,GAAKglB,CAAA,CAKhC5mB,EAAailC,QAAUjlC,EAAaolC,iBAA4C,IAAzBplC,EAAaklC,UACpEllC,EAAa2kC,GAAK3kC,EAAa2kC,IAAM,EACrC3kC,EAAaokC,OAASrkB,EAASqkB,OAASpkC,EAAaklC,UAAY,KAGnEpB,aAAavjC,UAAU+c,mBAAqB,SAAUtd,EAASC,GAC7DA,OAAA,IAAQA,EAAsBY,KAAKmjC,UAAY/jC,EAC/C,IAAIK,EAAQO,KAAKwkC,SAAS,CAAC,EAAGxkC,KAAK4N,KAAKS,EAAEG,EAAEpP,GAAO2B,GACnDtB,EAAQO,KAAKwkC,SAAS/kC,EAAON,GAC7Ba,KAAK4N,KAAKS,EAAEG,EAAEpP,GAAO2B,EAAItB,EACzBO,KAAKinC,YAAY7nC,GACjBY,KAAK4c,KAAK4F,mBAAmBxiB,KAAA,EAG/BijC,aAAavjC,UAAUunC,YAAc,SAAU9nC,GAC7C,IAAIC,EAAQY,KAAK4N,KAAKS,EAAEG,EAAErP,GAAO4B,EACjC3B,EAAM6Q,YAAA,EACNjQ,KAAKmjC,UAAY,EACjBnjC,KAAKsiB,eAAA,EACLtiB,KAAK0iB,SAAStjB,EAAA,EAGhB6jC,aAAavjC,UAAUwnC,cAAgB,SAAU/nC,GAC/Ca,KAAKojC,UAAYjkC,EACjBa,KAAKinC,YAAYjnC,KAAKmjC,WACtBnjC,KAAK4c,KAAK4F,mBAAmBxiB,KAAA,EAG/BijC,aAAavjC,UAAUynC,mBAAqB,SAAUhoC,GACpDa,KAAKqjC,gBAAkBt6B,KAAKK,MAAMjK,IAAe,EACjDa,KAAKinC,YAAYjnC,KAAKmjC,WACtBnjC,KAAK4c,KAAK4F,mBAAmBxiB,KAAA,EAG/B,IAAIonC,iBAAmB,WACrB,IAAIjoC,EAAM4J,KAAKO,IACXlK,EAAM2J,KAAKS,IACX/J,EAAQsJ,KAAKK,MAEjB,SAAS/I,EAAwBlB,EAAMC,GACrCY,KAAKqnC,oBAAsB,EAC3BrnC,KAAKwO,GAAA,EACLxO,KAAK4N,KAAOxO,EACZY,KAAK4c,KAAOzd,EACZa,KAAK4hB,KAAOziB,EAAKyiB,KACjB5hB,KAAKsnC,OAAS,EACdtnC,KAAKunC,OAAS,EACdvnC,KAAKijB,6BAA6B9jB,GAClCa,KAAKe,EAAIuf,gBAAgBsC,QAAQzjB,EAAMC,EAAK2B,GAAK,CAC/CyN,EAAG,GACF,EAAG,EAAGxO,MAGPA,KAAKZ,EADH,MAAOA,EACAkhB,gBAAgBsC,QAAQzjB,EAAMC,EAAKA,EAAG,EAAG,EAAGY,MAE5C,CACPwD,EAAG,KAIPxD,KAAKoB,EAAIkf,gBAAgBsC,QAAQzjB,EAAMC,EAAKgC,GAAK,CAC/CoN,EAAG,GACF,EAAG,EAAGxO,MACTA,KAAKwnC,GAAKlnB,gBAAgBsC,QAAQzjB,EAAMC,EAAKooC,IAAM,CACjDh5B,EAAG,GACF,EAAG,EAAGxO,MACTA,KAAKynC,GAAKnnB,gBAAgBsC,QAAQzjB,EAAMC,EAAKqoC,IAAM,CACjDj5B,EAAG,GACF,EAAG,EAAGxO,MACTA,KAAK0nC,GAAKpnB,gBAAgBsC,QAAQzjB,EAAMC,EAAKsoC,IAAM,CACjDl5B,EAAG,KACF,EAAG,EAAGxO,MACTA,KAAKQ,EAAI8f,gBAAgBsC,QAAQzjB,EAAMC,EAAKoB,EAAG,EAAG,IAAMR,MAEnDA,KAAK8iB,kBAAkBviB,QAC1BP,KAAK0iB,UAAA,CAiKT,OA7JAriB,EAAwBX,UAAY,CAClCioC,QAAS,SAAiBtnC,GACpBL,KAAKqnC,qBAAuBrnC,KAAK4c,KAAKgrB,aAAatE,YAAY1/B,EAAErD,QACnEP,KAAK0iB,WAGP,IAAIliB,EAAK,EACLO,EAAK,EACLC,EAAK,EACLI,EAAK,EAELpB,KAAKynC,GAAGjkC,EAAI,EACdhD,EAAKR,KAAKynC,GAAGjkC,EAAI,IAEjBzC,GAAMf,KAAKynC,GAAGjkC,EAAI,IAGhBxD,KAAKwnC,GAAGhkC,EAAI,EACdxC,EAAK,EAAMhB,KAAKwnC,GAAGhkC,EAAI,IAEvBpC,EAAK,EAAMpB,KAAKwnC,GAAGhkC,EAAI,IAGzB,IAAI7B,EAAQ4b,cAAcC,gBAAgBhd,EAAIO,EAAIC,EAAII,GAAIyB,IACtDe,EAAO,EACPC,EAAI7D,KAAKsnC,OACTz4B,EAAI7O,KAAKunC,OACTt5B,EAAOjO,KAAK4N,KAAKyT,GAErB,GAAa,IAATpT,EAOFrK,EAAOjC,EALLiC,EADEiL,IAAMhL,EACDxD,GAAOwO,EAAI,EAAI,EAEf1P,EAAI,EAAGC,EAAI,IAAOyP,EAAIhL,IAAMxD,EAAMwD,IAAMgL,EAAIhL,GAAI,UAIpD,GAAa,IAAToK,EAOTrK,EAAOjC,EALLiC,EADEiL,IAAMhL,EACDxD,GAAOwO,EAAI,EAAI,EAEf,EAAI1P,EAAI,EAAGC,EAAI,IAAOyP,EAAIhL,IAAMxD,EAAMwD,IAAMgL,EAAIhL,GAAI,UAIxD,GAAa,IAAToK,EACLY,IAAMhL,EACRD,EAAO,GAEPA,EAAOzE,EAAI,EAAGC,EAAI,IAAOyP,EAAIhL,IAAMxD,EAAMwD,IAAMgL,EAAIhL,GAAI,KAE5C,GACTD,GAAQ,EAERA,EAAO,EAAI,GAAKA,EAAO,IAI3BA,EAAOjC,EAAMiC,QACR,GAAa,IAATqK,EAAY,CACrB,GAAIY,IAAMhL,EACRD,EAAO,MACF,CACL,IAAIsK,EAAMW,EAAIhL,EAKVwK,GAAKH,EAAM,GADf7N,EAAMjB,EAAID,EAAI,EAAGkB,EAAM,GAAMwD,GAAIgL,EAAIhL,IAEjC8O,EAAIzE,EAAM,EACdtK,EAAOmF,KAAKG,KAAK,EAAImF,EAAIA,GAAKsE,EAAIA,GAAA,CAGpC/O,EAAOjC,EAAMiC,EAAA,MACK,IAATqK,GACLY,IAAMhL,EACRD,EAAO,GAEPvD,EAAMjB,EAAID,EAAI,EAAGkB,EAAM,GAAMwD,GAAIgL,EAAIhL,GACrCD,GAAQ,EAAImF,KAAK4Y,IAAI5Y,KAAKgB,GAAe,EAAVhB,KAAKgB,GAAS1J,GAAOwO,EAAIhL,KAAO,GAGjED,EAAOjC,EAAMiC,KAETvD,GAAOZ,EAAMoE,KAEbD,EAAOzE,EAAI,EAAGC,EADZiB,EAAMwD,EAAI,EACMzE,EAAIyP,EAAG,IAAMhL,EAAIxD,GAEjBwO,EAAIxO,EAFmB,KAM7CuD,EAAOjC,EAAMiC,IAaf,GAAkB,MAAd5D,KAAK0nC,GAAGlkC,EAAW,CACrB,IAAIwb,EAAyB,IAAZhf,KAAK0nC,GAAGlkC,EAEN,IAAfwb,IACFA,EAAa,MAGf,IAAIC,EAAY,GAAmB,GAAbD,EAElBpb,EAAOqb,EACTrb,EAAO,GAEPA,GAAQA,EAAOqb,GAAaD,GAEjB,IACTpb,EAAO,GAKb,OAAOA,EAAO5D,KAAKQ,EAAEgD,CAAA,EAEvBkf,SAAU,SAAkBvjB,GAC1Ba,KAAKgjB,2BACLhjB,KAAKiiB,KAAO9iB,GAAgBa,KAAKiiB,KACjCjiB,KAAKqnC,mBAAqBrnC,KAAK4c,KAAKgrB,aAAatE,YAAY1/B,EAAErD,QAAU,EAErEpB,GAAgC,IAAhBa,KAAK4N,KAAKnO,IAC5BO,KAAKZ,EAAEoE,EAAIxD,KAAKqnC,oBAGlB,IAAIjoC,EAA0B,IAAhBY,KAAK4N,KAAKnO,EAAU,EAAI,IAAMO,KAAK4N,KAAKm5B,WAClDtnC,EAAIO,KAAKoB,EAAEoC,EAAIpE,EACfiB,EAAIL,KAAKe,EAAEyC,EAAIpE,EAAUK,EACzBe,EAAIR,KAAKZ,EAAEoE,EAAIpE,EAAUK,EAE7B,GAAIY,EAAIG,EAAG,CACT,IAAIO,EAAKV,EACTA,EAAIG,EACJA,EAAIO,CAAA,CAGNf,KAAKsnC,OAASjnC,EACdL,KAAKunC,OAAS/mC,CAAA,GAGlB6F,gBAAgB,CAACwc,0BAA2BxiB,GAMrC,CACLwnC,oBALF,SAA6B1oC,EAAMC,EAAMK,GACvC,OAAO,IAAIY,EAAwBlB,EAAMC,EAAMK,EAAA,GAvM5B,GA+MvB,SAASqoC,yBAAyB3oC,EAAMC,EAAeK,GACrD,IAAIY,EAAc,CAChBmgB,UAAA,GAEEhgB,EAAU8f,gBAAgBsC,QAC1B7hB,EAA0B3B,EAAcoB,EAC5CR,KAAKQ,EAAI,CACPf,EAAGsB,EAAwBtB,EAAIe,EAAQrB,EAAM4B,EAAwBtB,EAAG,EAAGqK,UAAWrK,GAAaY,EACnGyqB,GAAI/pB,EAAwB+pB,GAAKtqB,EAAQrB,EAAM4B,EAAwB+pB,GAAI,EAAGhhB,UAAWrK,GAAaY,EACtG0qB,GAAIhqB,EAAwBgqB,GAAKvqB,EAAQrB,EAAM4B,EAAwBgqB,GAAI,EAAGjhB,UAAWrK,GAAaY,EACtGuP,GAAI7O,EAAwB6O,GAAKpP,EAAQrB,EAAM4B,EAAwB6O,GAAI,EAAG9F,UAAWrK,GAAaY,EACtGwP,GAAI9O,EAAwB8O,GAAKrP,EAAQrB,EAAM4B,EAAwB8O,GAAI,EAAG/F,UAAWrK,GAAaY,EACtGU,EAAGA,EAAwBA,EAAIP,EAAQrB,EAAM4B,EAAwBA,EAAG,EAAG,IAAMtB,GAAaY,EAC9FG,EAAGO,EAAwBP,EAAIA,EAAQrB,EAAM4B,EAAwBP,EAAG,EAAG,EAAGf,GAAaY,EAC3Fe,EAAGL,EAAwBK,EAAIZ,EAAQrB,EAAM4B,EAAwBK,EAAG,EAAG,IAAM3B,GAAaY,EAC9FwD,EAAG9C,EAAwB8C,EAAIrD,EAAQrB,EAAM4B,EAAwB8C,EAAG,EAAG,EAAGpE,GAAaY,EAC3FyiC,GAAI/hC,EAAwB+hC,GAAKtiC,EAAQrB,EAAM4B,EAAwB+hC,GAAI,EAAG,EAAGrjC,GAAaY,EAC9F0iC,GAAIhiC,EAAwBgiC,GAAKviC,EAAQrB,EAAM4B,EAAwBgiC,GAAI,EAAG,EAAGtjC,GAAaY,EAC9F2iC,GAAIjiC,EAAwBiiC,GAAKxiC,EAAQrB,EAAM4B,EAAwBiiC,GAAI,EAAG,EAAGvjC,GAAaY,EAC9FsmC,GAAI5lC,EAAwB4lC,GAAKnmC,EAAQrB,EAAM4B,EAAwB4lC,GAAI,EAAG,EAAGlnC,GAAaY,EAC9FumC,GAAI7lC,EAAwB6lC,GAAKpmC,EAAQrB,EAAM4B,EAAwB6lC,GAAI,EAAG,IAAMnnC,GAAaY,EACjGwmC,GAAI9lC,EAAwB8lC,GAAKrmC,EAAQrB,EAAM4B,EAAwB8lC,GAAI,EAAG,IAAMpnC,GAAaY,EACjGlB,EAAG4B,EAAwB5B,EAAIqB,EAAQrB,EAAM4B,EAAwB5B,EAAG,EAAG,EAAGM,GAAaY,GAE7FL,KAAKe,EAAIqmC,iBAAiBS,oBAAoB1oC,EAAMC,EAAc2B,EAAGtB,GACrEO,KAAKe,EAAE5B,EAAIC,EAAc2B,EAAE5B,CAAA,CAG7B,SAAS4oC,qBAAqB5oC,EAAUC,EAAYK,GAClDO,KAAKsiB,eAAA,EACLtiB,KAAKgoC,gBAAA,EACLhoC,KAAKkjC,UAAY,EACjBljC,KAAKioC,UAAY9oC,EACjBa,KAAKkoC,YAAc9oC,EACnBY,KAAKmoC,MAAQ1oC,EACbO,KAAKooC,eAAiBhgC,iBAAiBpI,KAAKioC,UAAUznC,EAAED,QACxDP,KAAKqoC,UAAY,CAAC,EAClBroC,KAAKsoC,aAAe,CAClBC,UAAW,CAAC,GAEdvoC,KAAKwoC,gBAAkB,GACvBxoC,KAAKyoC,oBAAA,EACLzoC,KAAKijB,6BAA6BxjB,EAAA,CAyoBpC,SAASipC,eAAA,CAtoBTX,qBAAqBroC,UAAUipC,iBAAmB,WAChD,IAAIxpC,EAEAC,EADAK,EAAMO,KAAKioC,UAAUznC,EAAED,OAEvBF,EAAUigB,gBAAgBsC,QAE9B,IAAKzjB,EAAI,EAAGA,EAAIM,EAAKN,GAAK,EACxBC,EAAgBY,KAAKioC,UAAUznC,EAAErB,GACjCa,KAAKooC,eAAejpC,GAAK,IAAI2oC,yBAAyB9nC,KAAKmoC,MAAO/oC,EAAeY,MAG/EA,KAAKioC,UAAUpkC,GAAK,MAAO7D,KAAKioC,UAAUpkC,GAC5C7D,KAAKqoC,UAAY,CACf7nC,EAAGH,EAAQL,KAAKmoC,MAAOnoC,KAAKioC,UAAUpkC,EAAErD,EAAG,EAAG,EAAGR,MACjD6O,EAAGxO,EAAQL,KAAKmoC,MAAOnoC,KAAKioC,UAAUpkC,EAAEgL,EAAG,EAAG,EAAG7O,MACjD4D,EAAGvD,EAAQL,KAAKmoC,MAAOnoC,KAAKioC,UAAUpkC,EAAED,EAAG,EAAG,EAAG5D,MACjDP,EAAGY,EAAQL,KAAKmoC,MAAOnoC,KAAKioC,UAAUpkC,EAAEpE,EAAG,EAAG,EAAGO,MACjD6D,EAAGxD,EAAQL,KAAKmoC,MAAOnoC,KAAKioC,UAAUpkC,EAAEA,EAAG,EAAG,EAAG7D,MACjDkO,EAAGlO,KAAKmoC,MAAMrP,YAAYuD,gBAAgBr8B,KAAKioC,UAAUpkC,EAAEqK,IAE7DlO,KAAKgoC,gBAAA,GAELhoC,KAAKgoC,gBAAA,EAGPhoC,KAAKsoC,aAAaC,UAAYloC,EAAQL,KAAKmoC,MAAOnoC,KAAKioC,UAAU/5B,EAAE1N,EAAG,EAAG,EAAGR,KAAA,EAG9E+nC,qBAAqBroC,UAAUkpC,YAAc,SAAUzpC,EAAcC,GAGnE,GAFAY,KAAKyoC,mBAAqBrpC,EAErBY,KAAKiiB,MAASjiB,KAAKsiB,eAAkBljB,GAAwBY,KAAKgoC,gBAAmBhoC,KAAKqoC,UAAUn6B,EAAE+T,KAA3G,CAIAjiB,KAAKsiB,eAAA,EACL,IAMI7iB,EACAY,EACAG,EACAO,EAEAC,EACAI,EACAO,EACAiC,EACAC,EACAgL,EACAZ,EACAC,EACAG,EACAsE,EACAqM,EACAC,EACAzb,EACA0b,EACAI,EAzBAC,EAAYvf,KAAKsoC,aAAaC,UAAU/kC,EACxCgc,EAAYxf,KAAKooC,eACjB3oB,EAAWzf,KAAKioC,UAChBvoB,EAAe1f,KAAKo8B,QACpBzc,EAAa3f,KAAKkoC,YAClBtoB,EAAuB5f,KAAKwoC,gBAAgBjoC,OAK5CiO,EAAUrP,EAAayE,EAiB3B,GAAI5D,KAAKgoC,eAAgB,CAGvB,GAFA1oB,EAAOtf,KAAKqoC,UAAUn6B,GAEjBlO,KAAKqoC,UAAUrnC,GAAKhB,KAAKqoC,UAAUpmB,KAAM,CAC5C,IAYIpC,EAZAC,EAAQR,EAAK9b,EAejB,IAbIxD,KAAKqoC,UAAU5oC,EAAE+D,IACnBsc,EAAQA,EAAM4D,WAIhB1iB,EAAW,CACT6nC,QAAS,EACTxxB,SAAU,IAEZtW,EAAM+e,EAAMV,QAAU,EAEtBH,EAAc,EAETze,EAAI,EAAGA,EAAIO,EAAKP,GAAK,EACxBqf,EAAaQ,IAAIH,gBAAgBJ,EAAMtc,EAAEhD,GAAIsf,EAAMtc,EAAEhD,EAAI,GAAI,CAACsf,EAAM1e,EAAEZ,GAAG,GAAKsf,EAAMtc,EAAEhD,GAAG,GAAIsf,EAAM1e,EAAEZ,GAAG,GAAKsf,EAAMtc,EAAEhD,GAAG,IAAK,CAACsf,EAAMzf,EAAEG,EAAI,GAAG,GAAKsf,EAAMtc,EAAEhD,EAAI,GAAG,GAAIsf,EAAMzf,EAAEG,EAAI,GAAG,GAAKsf,EAAMtc,EAAEhD,EAAI,GAAG,KACxMQ,EAAS6nC,SAAWhpB,EAAWjB,cAC/B5d,EAASqW,SAAS3U,KAAKmd,GACvBZ,GAAeY,EAAWjB,cAG5Bpe,EAAIO,EAEAue,EAAK9b,EAAEyK,IACT4R,EAAaQ,IAAIH,gBAAgBJ,EAAMtc,EAAEhD,GAAIsf,EAAMtc,EAAE,GAAI,CAACsc,EAAM1e,EAAEZ,GAAG,GAAKsf,EAAMtc,EAAEhD,GAAG,GAAIsf,EAAM1e,EAAEZ,GAAG,GAAKsf,EAAMtc,EAAEhD,GAAG,IAAK,CAACsf,EAAMzf,EAAE,GAAG,GAAKyf,EAAMtc,EAAE,GAAG,GAAIsc,EAAMzf,EAAE,GAAG,GAAKyf,EAAMtc,EAAE,GAAG,KACpLxC,EAAS6nC,SAAWhpB,EAAWjB,cAC/B5d,EAASqW,SAAS3U,KAAKmd,GACvBZ,GAAeY,EAAWjB,eAG5B5e,KAAKqoC,UAAUS,GAAK9nC,CAAA,CAWtB,GARAA,EAAWhB,KAAKqoC,UAAUS,GAC1B1nC,EAAgBpB,KAAKqoC,UAAUx5B,EAAErL,EACjCyK,EAAa,EACbY,EAAW,EACXjL,EAAgB,EAChBC,GAAA,EACA8O,EAAW3R,EAASqW,SAEhBjW,EAAgB,GAAKke,EAAK9b,EAAEyK,EAS9B,IARIjN,EAAS6nC,QAAU9/B,KAAKa,IAAIxI,KAC9BA,GAAiB2H,KAAKa,IAAIxI,GAAiBJ,EAAS6nC,SAKtDh6B,GADAR,EAASsE,EADT1E,EAAa0E,EAASpS,OAAS,GACDse,QACZte,OAAS,EAEpBa,EAAgB,GACrBA,GAAiBiN,EAAOQ,GAAUiQ,eAClCjQ,GAAY,GAEG,IAGbA,GADAR,EAASsE,EADT1E,GAAc,GACgB4Q,QACZte,OAAS,GAMjC2N,GADAG,EAASsE,EAAS1E,GAAY4Q,QACXhQ,EAAW,GAE9BmQ,GADArd,EAAe0M,EAAOQ,IACOiQ,aAAA,CAG/B/d,EAAMyN,EAAQjO,OACdd,EAAO,EACPY,EAAO,EACP,IAEI0f,EAEAC,EACA6F,EACAygB,EAEAC,EARAC,EAAgC,IAAzBrnC,EAAaklC,UAAkB,KACtCoC,GAAA,EAMJ5gB,EAAOrG,EAAUjf,OAEjB,IACImmC,EACA3gB,EACAihB,EAKA+B,EACAC,EACAC,EACAvF,EACAwF,EACAC,EACAC,EACAC,EAGAC,EAlBAC,GAAO,EAIPC,EAAcpoC,EACdqoC,EAAiBx7B,EACjBy7B,EAAe76B,EACf86B,GAAe,EASfxL,GAAU,GACVyL,GAAU5pC,KAAK6pC,kBAGnB,GAAuB,IAAnB1qC,EAAaukC,GAA8B,IAAnBvkC,EAAaukC,EAAS,CAChD,IAAIoG,GAAwB,EACxB16B,GAA0B,EAC1B26B,GAAuC,IAAnB5qC,EAAaukC,GAAW,IAAO,EACnDh0B,GAAY,EACZs6B,IAAA,EAEJ,IAAKxpC,EAAI,EAAGA,EAAIO,EAAKP,GAAK,EACxB,GAAIgO,EAAQhO,GAAGQ,EAAG,CAKhB,IAJI8oC,KACFA,IAAyB16B,IAGpBM,GAAYlP,GACjBgO,EAAQkB,IAAW02B,sBAAwB0D,GAC3Cp6B,IAAa,EAGfo6B,GAAwB,EACxBE,IAAA,CAAY,KACP,CACL,IAAKhqB,EAAI,EAAGA,EAAI6F,EAAM7F,GAAK,GACzBD,EAAgBP,EAAUQ,GAAGxf,GAEXrB,EAAEqhB,WACdwpB,IAAgC,IAAnB7qC,EAAaukC,IAC5Bt0B,IAA2B2Q,EAAc5gB,EAAEqE,EAAIumC,KAIjDxD,EADmB/mB,EAAUQ,GAAGjf,EACR4mC,QAAQn5B,EAAQhO,GAAGylC,UAAUjmB,GAAIP,EAASjf,EAAEwf,GAAGjf,EAAEgmC,aAEhExmC,OACPupC,IAAyB/pB,EAAc5gB,EAAEqE,EAAI+iC,EAAK,GAAKwD,GAEvDD,IAAyB/pB,EAAc5gB,EAAEqE,EAAI+iC,EAAOwD,IAK1DC,IAAA,CAAY,CAQhB,IAJIF,KACFA,IAAyB16B,IAGpBM,GAAYlP,GACjBgO,EAAQkB,IAAW02B,sBAAwB0D,GAC3Cp6B,IAAa,EAKjB,IAAKlP,EAAI,EAAGA,EAAIO,EAAKP,GAAK,EAAG,CAI3B,GAHAkf,EAAa+E,QACbskB,EAAc,EAEVv6B,EAAQhO,GAAGQ,EACbvB,EAAO,EACPY,GAAQlB,EAAailC,QACrB/jC,GAAQomC,EAAY,EAAI,EACxBrlC,EAAgBooC,EAChB/C,GAAA,EAEIzmC,KAAKgoC,iBAEPn5B,EAAW66B,EAEXx7B,GADAG,EAASsE,EAFT1E,EAAaw7B,GAEiB5qB,QACXhQ,EAAW,GAE9BmQ,GADArd,EAAe0M,EAAOQ,IACOiQ,cAC7Blb,EAAgB,GAGlBu6B,GAAU,GACVkL,EAAW,GACXF,EAAW,GACXG,EAAU,GACVM,GAAU5pC,KAAK6pC,sBACV,CACL,GAAI7pC,KAAKgoC,eAAgB,CACvB,GAAI2B,IAAgBn7B,EAAQhO,GAAG2lC,KAAM,CACnC,OAAQhnC,EAAaukC,GACnB,KAAK,EACHtiC,GAAiB6d,EAAc9f,EAAa0kC,WAAWr1B,EAAQhO,GAAG2lC,MAClE,MAEF,KAAK,EACH/kC,IAAkB6d,EAAc9f,EAAa0kC,WAAWr1B,EAAQhO,GAAG2lC,OAAS,EAOhFwD,EAAcn7B,EAAQhO,GAAG2lC,IAAA,CAGvBoD,IAAQ/6B,EAAQhO,GAAG26B,MACjB3sB,EAAQ+6B,KACVnoC,GAAiBoN,EAAQ+6B,GAAKlD,OAGhCjlC,GAAiBoN,EAAQhO,GAAGulC,GAAK,EACjCwD,EAAM/6B,EAAQhO,GAAG26B,KAGnB/5B,GAAiBme,EAAU,GAAK/Q,EAAQhO,GAAGulC,GAAK,KAChD,IAAIkE,GAAiB,EAErB,IAAKjqB,EAAI,EAAGA,EAAI6F,EAAM7F,GAAK,GACzBD,EAAgBP,EAAUQ,GAAGxf,GAEXqD,EAAE2c,YAElB+lB,EADmB/mB,EAAUQ,GAAGjf,EACR4mC,QAAQn5B,EAAQhO,GAAGylC,UAAUjmB,GAAIP,EAASjf,EAAEwf,GAAGjf,EAAEgmC,aAEhExmC,OACP0pC,IAAkBlqB,EAAclc,EAAEL,EAAE,GAAK+iC,EAAK,GAE9C0D,IAAkBlqB,EAAclc,EAAEL,EAAE,GAAK+iC,GAIzCxmB,EAAcvf,EAAEggB,YAElB+lB,EADmB/mB,EAAUQ,GAAGjf,EACR4mC,QAAQn5B,EAAQhO,GAAGylC,UAAUjmB,GAAIP,EAASjf,EAAEwf,GAAGjf,EAAEgmC,aAEhExmC,OACP0pC,IAAkBlqB,EAAcvf,EAAEgD,EAAE,GAAK+iC,EAAK,GAE9C0D,IAAkBlqB,EAAcvf,EAAEgD,EAAE,GAAK+iC,GAY/C,IAPA1iC,GAAA,EAEI7D,KAAKqoC,UAAU7nC,EAAEgD,IACnBpC,EAAgC,GAAhBoN,EAAQ,GAAGu3B,IAAY9mB,EAAcjf,KAAKqoC,UAAUx5B,EAAErL,EAAoB,GAAhBgL,EAAQ,GAAGu3B,GAA4C,GAAjCv3B,EAAQA,EAAQjO,OAAS,GAAGwlC,IAAYwD,GAAOxoC,EAAM,GACrJK,GAAiBpB,KAAKqoC,UAAUx5B,EAAErL,GAG7BK,GACDD,EAAgBob,GAAiB5d,EAAgB6oC,KAAmB57B,GACtE7K,GAAQpC,EAAgB6oC,GAAiBrmC,GAAiBjC,EAAamd,cACvEiH,EAAW7X,EAAU6Q,MAAM,IAAMpd,EAAaod,MAAM,GAAK7Q,EAAU6Q,MAAM,IAAMvb,EAC/EwjC,EAAW94B,EAAU6Q,MAAM,IAAMpd,EAAaod,MAAM,GAAK7Q,EAAU6Q,MAAM,IAAMvb,EAC/Ekc,EAAaiH,WAAWpH,EAAU,GAAK/Q,EAAQhO,GAAGulC,GAAK,MAASxmB,EAAU,GAAKinB,EAAQ,KACvF3iC,GAAA,GACSwK,IACTzK,GAAiBjC,EAAamd,eAC9BjQ,GAAY,IAEIR,EAAO9N,SACrBsO,EAAW,EAGN8D,EAFL1E,GAAc,GAYZI,EAASsE,EAAS1E,GAAY4Q,OAT1BS,EAAK9b,EAAEyK,GACTY,EAAW,EAEXR,EAASsE,EADT1E,EAAa,GACiB4Q,SAE9Bjb,GAAiBjC,EAAamd,cAC9BzQ,EAAS,OAOXA,IACFH,EAAYvM,EAEZqd,GADArd,EAAe0M,EAAOQ,IACOiQ,gBAKnC4nB,EAAOl4B,EAAQhO,GAAGulC,GAAK,EAAIv3B,EAAQhO,GAAGwlC,IACtCtmB,EAAaiH,WAAW+f,EAAM,EAAG,QAEjCA,EAAOl4B,EAAQhO,GAAGulC,GAAK,EAAIv3B,EAAQhO,GAAGwlC,IACtCtmB,EAAaiH,WAAW+f,EAAM,EAAG,GAEjChnB,EAAaiH,WAAWpH,EAAU,GAAK/Q,EAAQhO,GAAGulC,GAAK,MAAQxmB,EAAU,GAAKinB,EAAO,IAAM,GAG7F,IAAKxmB,EAAI,EAAGA,EAAI6F,EAAM7F,GAAK,GACzBD,EAAgBP,EAAUQ,GAAGxf,GAEXrB,EAAEqhB,WAElB+lB,EADmB/mB,EAAUQ,GAAGjf,EACR4mC,QAAQn5B,EAAQhO,GAAGylC,UAAUjmB,GAAIP,EAASjf,EAAEwf,GAAGjf,EAAEgmC,YAE5D,IAATtnC,GAAiC,IAAnBN,EAAaukC,IACzB1jC,KAAKgoC,eACHzB,EAAKhmC,OACPa,GAAiB2e,EAAc5gB,EAAEqE,EAAI+iC,EAAK,GAE1CnlC,GAAiB2e,EAAc5gB,EAAEqE,EAAI+iC,EAE9BA,EAAKhmC,OACdd,GAAQsgB,EAAc5gB,EAAEqE,EAAI+iC,EAAK,GAEjC9mC,GAAQsgB,EAAc5gB,EAAEqE,EAAI+iC,IAsBpC,IAhBIpnC,EAAaglC,kBACf8E,EAAK9pC,EAAa2jC,IAAM,GAGtB3jC,EAAa+kC,kBAEb8E,EADE7pC,EAAa4jC,GACV,CAAC5jC,EAAa4jC,GAAG,GAAI5jC,EAAa4jC,GAAG,GAAI5jC,EAAa4jC,GAAG,IAEzD,CAAC,EAAG,EAAG,IAIZ5jC,EAAa8kC,eAAiB9kC,EAAa6jC,KAC7CU,EAAK,CAACvkC,EAAa6jC,GAAG,GAAI7jC,EAAa6jC,GAAG,GAAI7jC,EAAa6jC,GAAG,KAG3DhjB,EAAI,EAAGA,EAAI6F,EAAM7F,GAAK,GACzBD,EAAgBP,EAAUQ,GAAGxf,GAEXA,EAAEggB,YAElB+lB,EADmB/mB,EAAUQ,GAAGjf,EACR4mC,QAAQn5B,EAAQhO,GAAGylC,UAAUjmB,GAAIP,EAASjf,EAAEwf,GAAGjf,EAAEgmC,aAEhExmC,OACPmf,EAAaiH,WAAW5G,EAAcvf,EAAEgD,EAAE,GAAK+iC,EAAK,IAAKxmB,EAAcvf,EAAEgD,EAAE,GAAK+iC,EAAK,GAAIxmB,EAAcvf,EAAEgD,EAAE,GAAK+iC,EAAK,IAErH7mB,EAAaiH,WAAW5G,EAAcvf,EAAEgD,EAAE,GAAK+iC,GAAOxmB,EAAcvf,EAAEgD,EAAE,GAAK+iC,EAAMxmB,EAAcvf,EAAEgD,EAAE,GAAK+iC,IAKhH,IAAKvmB,EAAI,EAAGA,EAAI6F,EAAM7F,GAAK,GACzBD,EAAgBP,EAAUQ,GAAGxf,GAEXO,EAAEyf,YAElB+lB,EADmB/mB,EAAUQ,GAAGjf,EACR4mC,QAAQn5B,EAAQhO,GAAGylC,UAAUjmB,GAAIP,EAASjf,EAAEwf,GAAGjf,EAAEgmC,aAEhExmC,OACPmf,EAAa+G,MAAM,GAAK1G,EAAchf,EAAEyC,EAAE,GAAK,GAAK+iC,EAAK,GAAI,GAAKxmB,EAAchf,EAAEyC,EAAE,GAAK,GAAK+iC,EAAK,GAAI,GAEvG7mB,EAAa+G,MAAM,GAAK1G,EAAchf,EAAEyC,EAAE,GAAK,GAAK+iC,EAAM,GAAKxmB,EAAchf,EAAEyC,EAAE,GAAK,GAAK+iC,EAAM,IAKvG,IAAKvmB,EAAI,EAAGA,EAAI6F,EAAM7F,GAAK,EAAG,CAqD5B,GApDAD,EAAgBP,EAAUQ,GAAGxf,EAE7B+lC,EADmB/mB,EAAUQ,GAAGjf,EACR4mC,QAAQn5B,EAAQhO,GAAGylC,UAAUjmB,GAAIP,EAASjf,EAAEwf,GAAGjf,EAAEgmC,YAErEhnB,EAAcnQ,GAAG4Q,WACf+lB,EAAKhmC,OACPmf,EAAa8G,cAAczG,EAAcnQ,GAAGpM,EAAI+iC,EAAK,GAAIxmB,EAAclQ,GAAGrM,EAAI+iC,EAAK,IAEnF7mB,EAAa8G,cAAczG,EAAcnQ,GAAGpM,EAAI+iC,EAAMxmB,EAAclQ,GAAGrM,EAAI+iC,IAI3ExmB,EAActgB,EAAE+gB,WACd+lB,EAAKhmC,OACPmf,EAAa4G,SAASvG,EAActgB,EAAE+D,EAAI+iC,EAAK,IAE/C7mB,EAAa4G,SAASvG,EAActgB,EAAE+D,EAAI+iC,IAI1CxmB,EAAcgL,GAAGvK,WACf+lB,EAAKhmC,OACPmf,EAAa2G,QAAQtG,EAAcgL,GAAGvnB,EAAI+iC,EAAK,IAE/C7mB,EAAa2G,QAAQtG,EAAcgL,GAAGvnB,EAAI+iC,IAI1CxmB,EAAc+K,GAAGtK,WACf+lB,EAAKhmC,OACPmf,EAAa0G,QAAQrG,EAAc+K,GAAGtnB,EAAI+iC,EAAK,IAE/C7mB,EAAa0G,QAAQrG,EAAc+K,GAAGtnB,EAAI+iC,IAI1CxmB,EAAc3e,EAAEof,WACd+lB,EAAKhmC,OACPwoC,IAAgBhpB,EAAc3e,EAAEoC,EAAI+iC,EAAK,GAAKwC,GAAexC,EAAK,GAElEwC,IAAgBhpB,EAAc3e,EAAEoC,EAAI+iC,EAAOwC,GAAexC,GAI1DpnC,EAAaglC,iBAAmBpkB,EAAc+iB,GAAGtiB,WAC/C+lB,EAAKhmC,OACP0oC,GAAMlpB,EAAc+iB,GAAGt/B,EAAI+iC,EAAK,GAEhC0C,GAAMlpB,EAAc+iB,GAAGt/B,EAAI+iC,GAI3BpnC,EAAa+kC,iBAAmBnkB,EAAcgjB,GAAGviB,SACnD,IAAK0oB,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAClB3C,EAAKhmC,OACPyoC,EAAGE,KAAOnpB,EAAcgjB,GAAGv/B,EAAE0lC,GAAKF,EAAGE,IAAM3C,EAAK,GAEhDyC,EAAGE,KAAOnpB,EAAcgjB,GAAGv/B,EAAE0lC,GAAKF,EAAGE,IAAM3C,EAKjD,GAAIpnC,EAAa8kC,eAAiB9kC,EAAa6jC,GAAI,CACjD,GAAIjjB,EAAcijB,GAAGxiB,SACnB,IAAK0oB,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAClB3C,EAAKhmC,OACPmjC,EAAGwF,KAAOnpB,EAAcijB,GAAGx/B,EAAE0lC,GAAKxF,EAAGwF,IAAM3C,EAAK,GAEhD7C,EAAGwF,KAAOnpB,EAAcijB,GAAGx/B,EAAE0lC,GAAKxF,EAAGwF,IAAM3C,EAK7CxmB,EAAc4mB,GAAGnmB,WAEjBkjB,EADE6C,EAAKhmC,OACFkM,YAAYi3B,EAAI3jB,EAAc4mB,GAAGnjC,EAAI+iC,EAAK,IAE1C95B,YAAYi3B,EAAI3jB,EAAc4mB,GAAGnjC,EAAI+iC,IAI1CxmB,EAAc6mB,GAAGpmB,WAEjBkjB,EADE6C,EAAKhmC,OACFgM,mBAAmBm3B,EAAI3jB,EAAc6mB,GAAGpjC,EAAI+iC,EAAK,IAEjDh6B,mBAAmBm3B,EAAI3jB,EAAc6mB,GAAGpjC,EAAI+iC,IAIjDxmB,EAAc8mB,GAAGrmB,WAEjBkjB,EADE6C,EAAKhmC,OACFiM,mBAAmBk3B,EAAI3jB,EAAc8mB,GAAGrjC,EAAI+iC,EAAK,IAEjD/5B,mBAAmBk3B,EAAI3jB,EAAc8mB,GAAGrjC,EAAI+iC,GAAA,EAMzD,IAAKvmB,EAAI,EAAGA,EAAI6F,EAAM7F,GAAK,GACzBD,EAAgBP,EAAUQ,GAAGxf,GAEXqD,EAAE2c,WAElB+lB,EADmB/mB,EAAUQ,GAAGjf,EACR4mC,QAAQn5B,EAAQhO,GAAGylC,UAAUjmB,GAAIP,EAASjf,EAAEwf,GAAGjf,EAAEgmC,YAErE/mC,KAAKgoC,eACHzB,EAAKhmC,OACPmf,EAAaiH,UAAU,EAAG5G,EAAclc,EAAEL,EAAE,GAAK+iC,EAAK,IAAKxmB,EAAclc,EAAEL,EAAE,GAAK+iC,EAAK,IAEvF7mB,EAAaiH,UAAU,EAAG5G,EAAclc,EAAEL,EAAE,GAAK+iC,GAAOxmB,EAAclc,EAAEL,EAAE,GAAK+iC,GAExEA,EAAKhmC,OACdmf,EAAaiH,UAAU5G,EAAclc,EAAEL,EAAE,GAAK+iC,EAAK,GAAIxmB,EAAclc,EAAEL,EAAE,GAAK+iC,EAAK,IAAKxmB,EAAclc,EAAEL,EAAE,GAAK+iC,EAAK,IAEpH7mB,EAAaiH,UAAU5G,EAAclc,EAAEL,EAAE,GAAK+iC,EAAMxmB,EAAclc,EAAEL,EAAE,GAAK+iC,GAAOxmB,EAAclc,EAAEL,EAAE,GAAK+iC,IAiB/G,GAZIpnC,EAAaglC,kBACfgF,EAAWF,EAAK,EAAI,EAAIA,GAGtB9pC,EAAa+kC,kBACfkF,EAAW,OAASrgC,KAAKoB,MAAc,IAAR6+B,EAAG,IAAY,IAAMjgC,KAAKoB,MAAc,IAAR6+B,EAAG,IAAY,IAAMjgC,KAAKoB,MAAc,IAAR6+B,EAAG,IAAY,KAG5G7pC,EAAa8kC,eAAiB9kC,EAAa6jC,KAC7CqG,EAAW,OAAStgC,KAAKoB,MAAc,IAARu5B,EAAG,IAAY,IAAM36B,KAAKoB,MAAc,IAARu5B,EAAG,IAAY,IAAM36B,KAAKoB,MAAc,IAARu5B,EAAG,IAAY,KAG5G1jC,KAAKgoC,eAAgB,CAIvB,GAHAtoB,EAAaiH,UAAU,GAAIxnB,EAAa2kC,IACxCpkB,EAAaiH,UAAU,EAAGpH,EAAU,GAAKinB,EAAO,IAAOnmC,EAAM,GAEzDL,KAAKqoC,UAAUxkC,EAAEL,EAAG,CACtB0b,GAAYvd,EAAaod,MAAM,GAAK7Q,EAAU6Q,MAAM,KAAOpd,EAAaod,MAAM,GAAK7Q,EAAU6Q,MAAM,IACnG,IAAImrB,GAA4B,IAAtBnhC,KAAKohC,KAAKjrB,GAAkBnW,KAAKgB,GAEvCpI,EAAaod,MAAM,GAAK7Q,EAAU6Q,MAAM,KAC1CmrB,IAAO,KAGTxqB,EAAayG,QAAQ+jB,GAAMnhC,KAAKgB,GAAK,KAGvC2V,EAAaiH,UAAUZ,EAAUihB,EAAU,GAC3C5lC,GAAiBme,EAAU,GAAK/Q,EAAQhO,GAAGulC,GAAK,KAE5Cv3B,EAAQhO,EAAI,IAAM+oC,IAAQ/6B,EAAQhO,EAAI,GAAG26B,MAC3C/5B,GAAiBoN,EAAQhO,GAAGulC,GAAK,EACjC3kC,GAAmC,KAAlBjC,EAAauvB,GAAavvB,EAAaklC,UAAA,KAErD,CAQL,OAPA3kB,EAAaiH,UAAUlnB,EAAMY,EAAM,GAE/BlB,EAAa6kC,IAEftkB,EAAaiH,UAAUxnB,EAAa6kC,GAAG,GAAI7kC,EAAa6kC,GAAG,GAAK7kC,EAAaokC,OAAQ,GAG/EpkC,EAAaukC,GACnB,KAAK,EACHhkB,EAAaiH,UAAUnY,EAAQhO,GAAG4lC,sBAAwBjnC,EAAawkC,eAAiBxkC,EAAaqkC,SAAWrkC,EAAa0kC,WAAWr1B,EAAQhO,GAAG2lC,OAAQ,EAAG,GAC9J,MAEF,KAAK,EACHzmB,EAAaiH,UAAUnY,EAAQhO,GAAG4lC,sBAAwBjnC,EAAawkC,eAAiBxkC,EAAaqkC,SAAWrkC,EAAa0kC,WAAWr1B,EAAQhO,GAAG2lC,OAAS,EAAG,EAAG,GAOtKzmB,EAAaiH,UAAU,GAAIxnB,EAAa2kC,IACxCpkB,EAAaiH,UAAU+f,EAAM,EAAG,GAChChnB,EAAaiH,UAAUpH,EAAU,GAAK/Q,EAAQhO,GAAGulC,GAAK,KAAOxmB,EAAU,GAAKinB,EAAO,IAAM,GACzF/mC,GAAQ+O,EAAQhO,GAAGoD,EAAsB,KAAlBzE,EAAauvB,GAAavvB,EAAaklC,SAAA,CAG7C,SAAf1kB,EACFwe,GAAUze,EAAayH,QACC,QAAfxH,EACTwe,GAAUze,EAAa0H,UAEvBwiB,GAAU,CAAClqB,EAAa+F,MAAM,GAAI/F,EAAa+F,MAAM,GAAI/F,EAAa+F,MAAM,GAAI/F,EAAa+F,MAAM,GAAI/F,EAAa+F,MAAM,GAAI/F,EAAa+F,MAAM,GAAI/F,EAAa+F,MAAM,GAAI/F,EAAa+F,MAAM,GAAI/F,EAAa+F,MAAM,GAAI/F,EAAa+F,MAAM,GAAI/F,EAAa+F,MAAM,IAAK/F,EAAa+F,MAAM,IAAK/F,EAAa+F,MAAM,IAAK/F,EAAa+F,MAAM,IAAK/F,EAAa+F,MAAM,IAAK/F,EAAa+F,MAAM,KAG9X6jB,EAAUP,CAAA,CAGRnpB,GAAwBpf,GAC1B8lC,EAAc,IAAIzD,YAAYyG,EAASH,EAAUC,EAAUC,EAAUlL,GAASyL,IAC9E5pC,KAAKwoC,gBAAgB9lC,KAAK4jC,GAC1B1mB,GAAwB,EACxB5f,KAAKyoC,oBAAA,IAELnC,EAActmC,KAAKwoC,gBAAgBhoC,GACnCR,KAAKyoC,mBAAqBnC,EAAYb,OAAO6D,EAASH,EAAUC,EAAUC,EAAUlL,GAASyL,KAAY5pC,KAAKyoC,mBAAA,IAKpHV,qBAAqBroC,UAAUgjB,SAAW,WACpC1iB,KAAKmoC,MAAM9vB,WAAW6J,UAAYliB,KAAKkjC,WAI3CljC,KAAKkjC,SAAWljC,KAAKmoC,MAAM9vB,WAAW6J,QACtCliB,KAAKgjB,2BAAA,EAGP+kB,qBAAqBroC,UAAU08B,QAAU,IAAI7W,OAC7CwiB,qBAAqBroC,UAAUmqC,kBAAoB,GACnDxjC,gBAAgB,CAACwc,0BAA2BklB,sBAI5CW,aAAahpC,UAAU89B,YAAc,SAAUr+B,EAAMC,EAAYK,GAC/DO,KAAKyoC,oBAAA,EACLzoC,KAAK02B,YACL12B,KAAK62B,aAAa13B,EAAMC,EAAYK,GACpCO,KAAK4nC,aAAe,IAAI3E,aAAajjC,KAAMb,EAAKA,EAAGa,KAAK8iB,mBACxD9iB,KAAKoqC,aAAe,IAAIrC,qBAAqB5oC,EAAKA,EAAGa,KAAKqqC,WAAYrqC,MACtEA,KAAK47B,cAAcz8B,EAAMC,EAAYK,GACrCO,KAAK6+B,gBACL7+B,KAAKu0B,iBACLv0B,KAAK49B,sBACL59B,KAAK69B,0BACL79B,KAAKw+B,6BACLx+B,KAAK++B,gBACL/+B,KAAKsc,OACLtc,KAAKoqC,aAAazB,iBAAiB3oC,KAAK8iB,kBAAA,EAG1C4lB,aAAahpC,UAAUiW,aAAe,SAAUxW,GAC9Ca,KAAKiiB,MAAA,EACLjiB,KAAK80B,uBAAuB31B,GAC5Ba,KAAK+5B,kBAAkB56B,EAAKa,KAAKw0B,YAE7Bx0B,KAAK4nC,aAAa3lB,MAAQjiB,KAAK4nC,aAAatlB,iBAC9CtiB,KAAKsqC,eACLtqC,KAAK4nC,aAAatlB,eAAA,EAClBtiB,KAAK4nC,aAAa3lB,MAAA,EAAO,EAI7BymB,aAAahpC,UAAU6qC,gBAAkB,SAAUprC,EAAcC,GAC/D,IAAIK,EAEAY,EADAG,EAAOpB,EAAOmB,OAEdQ,EAAW,GAEf,IAAKtB,EAAI,EAAGA,EAAIe,EAAMf,GAAK,EACJ,OAAjBL,EAAOK,GAAGgP,KACZpO,EAAYjB,EAAOK,GAAG0P,GAAGX,EACzBzN,GAAYwhC,iBAAiBliC,EAAWA,EAAUA,EAAEE,QAAA,EAAcpB,IAItE,OAAO4B,CAAA,EAGT2nC,aAAahpC,UAAU+c,mBAAqB,SAAUtd,EAASC,GAC7DY,KAAK4nC,aAAanrB,mBAAmBtd,EAASC,EAAA,EAGhDspC,aAAahpC,UAAUwnC,cAAgB,SAAU/nC,GAC/Ca,KAAK4nC,aAAaV,cAAc/nC,EAAA,EAGlCupC,aAAahpC,UAAUynC,mBAAqB,SAAUhoC,GACpDa,KAAK4nC,aAAaT,mBAAmBhoC,EAAA,EAGvCupC,aAAahpC,UAAU8qC,4BAA8B,SAAUrrC,EAAcC,EAAcK,EAAYY,EAAMG,GAO3G,OANIrB,EAAa6kC,IACf5kC,EAAaunB,UAAUxnB,EAAa6kC,GAAG,GAAI7kC,EAAa6kC,GAAG,GAAK7kC,EAAaokC,OAAQ,GAGvFnkC,EAAaunB,UAAU,GAAIxnB,EAAa2kC,GAAI,GAEpC3kC,EAAaukC,GACnB,KAAK,EACHtkC,EAAaunB,UAAUxnB,EAAawkC,eAAiBxkC,EAAaqkC,SAAWrkC,EAAa0kC,WAAWpkC,IAAc,EAAG,GACtH,MAEF,KAAK,EACHL,EAAaunB,UAAUxnB,EAAawkC,eAAiBxkC,EAAaqkC,SAAWrkC,EAAa0kC,WAAWpkC,IAAe,EAAG,EAAG,GAO9HL,EAAaunB,UAAUtmB,EAAMG,EAAM,IAGrCkoC,aAAahpC,UAAU+qC,WAAa,SAAUtrC,GAC5C,MAAO,OAAS4J,KAAKoB,MAAqB,IAAfhL,EAAU,IAAY,IAAM4J,KAAKoB,MAAqB,IAAfhL,EAAU,IAAY,IAAM4J,KAAKoB,MAAqB,IAAfhL,EAAU,IAAY,KAGjIupC,aAAahpC,UAAUgrC,UAAY,IAAI7H,YAEvC6F,aAAahpC,UAAUoU,QAAU,WAAa,EAE9C,IAAI62B,eAAiB,CACnB/7B,OAAQ,IAGV,SAASg8B,qBAAqBzrC,EAAMC,EAAYK,GAC9CO,KAAK6qC,UAAY,GACjB7qC,KAAKqqC,WAAa,MAClBrqC,KAAKw9B,YAAYr+B,EAAMC,EAAYK,EAAA,CA+UrC,SAASqrC,cAAc3rC,EAAMC,EAAYK,GACvCO,KAAKw9B,YAAYr+B,EAAMC,EAAYK,EAAA,CAgBrC,SAASsrC,YAAY5rC,EAAMC,EAAYK,GACrCO,KAAK02B,YACL12B,KAAK62B,aAAa13B,EAAMC,EAAYK,GACpCO,KAAK02B,YACL12B,KAAK47B,cAAcz8B,EAAMC,EAAYK,GACrCO,KAAK6+B,eAAA,CAqBP,SAASmM,kBAAA,CAkQT,SAASC,eAAA,CA4GT,SAASC,eAAe/rC,EAAMC,EAAYK,GACxCO,KAAK0O,OAASvP,EAAKuP,OACnB1O,KAAKmrC,YAAA,EACLnrC,KAAKsQ,gBAAA,EACLtQ,KAAKu7B,gBAAkB,GACvBv7B,KAAKo6B,SAAWp6B,KAAK0O,OAAStG,iBAAiBpI,KAAK0O,OAAOnO,QAAU,GACrEP,KAAKw9B,YAAYr+B,EAAMC,EAAYK,GACnCO,KAAKmV,GAAKhW,EAAKgW,GAAKmL,gBAAgBsC,QAAQ5iB,KAAMb,EAAKgW,GAAI,EAAG/V,EAAWmX,UAAWvW,MAAQ,CAC1Fq3B,cAAA,EAAc,CAUlB,SAAS+T,YAAYjsC,EAAeC,GAClCY,KAAK07B,cAAgBv8B,EACrBa,KAAK0O,OAAS,KACd1O,KAAK6hB,eAAiB,EACtB7hB,KAAKqrC,WAAa/9B,SAAS,OAC3B,IAAI7N,EAAY,GAEhB,GAAIL,GAAUA,EAAOksC,MAAO,CAC1B,IAAIjrC,EAAeiN,SAAS,SACxB9M,EAAU2L,kBACd9L,EAAa4c,aAAa,KAAMzc,GAChCH,EAAa0xB,YAAc3yB,EAAOksC,MAClCtrC,KAAKqrC,WAAW92B,YAAYlU,GAC5BZ,GAAae,CAAA,CAGf,GAAIpB,GAAUA,EAAOmsC,YAAa,CAChC,IAAIxqC,EAAcuM,SAAS,QACvBtM,EAASmL,kBACbpL,EAAYkc,aAAa,KAAMjc,GAC/BD,EAAYgxB,YAAc3yB,EAAOmsC,YACjCvrC,KAAKqrC,WAAW92B,YAAYxT,GAC5BtB,GAAa,IAAMuB,CAAA,CAGjBvB,GACFO,KAAKqrC,WAAWpuB,aAAa,kBAAmBxd,GAGlD,IAAI2B,EAAOkM,SAAS,QACpBtN,KAAKqrC,WAAW92B,YAAYnT,GAC5B,IAAIO,EAAc2L,SAAS,KAC3BtN,KAAKqrC,WAAW92B,YAAY5S,GAC5B3B,KAAK25B,aAAeh4B,EACpB3B,KAAKm1B,aAAe,CAClBqW,oBAAqBpsC,GAAUA,EAAOosC,qBAAuB,gBAC7DrM,yBAA0B//B,GAAUA,EAAO+/B,0BAA4B,iBACvEsM,kBAAmBrsC,GAAUA,EAAOqsC,mBAAqB,UACzDxQ,gBAAiB77B,GAAUA,EAAO67B,kBAAA,EAClC7F,oBAAqBh2B,IAAA,IAAUA,EAAOg2B,mBACtCsW,YAAatsC,GAAUA,EAAOssC,cAAA,EAC9BC,YAAavsC,GAAUA,EAAOusC,cAAA,EAC9BC,UAAWxsC,GAAUA,EAAOwsC,WAAa,GACzC98B,GAAI1P,GAAUA,EAAO0P,IAAM,GAC3B+8B,UAAWzsC,GAAUA,EAAOysC,UAC5BC,WAAY,CACV75B,MAAO7S,GAAUA,EAAO0sC,YAAc1sC,EAAO0sC,WAAW75B,OAAS,OACjEC,OAAQ9S,GAAUA,EAAO0sC,YAAc1sC,EAAO0sC,WAAW55B,QAAU,OACnEoN,EAAGlgB,GAAUA,EAAO0sC,YAAc1sC,EAAO0sC,WAAWxsB,GAAK,KACzDN,EAAG5f,GAAUA,EAAO0sC,YAAc1sC,EAAO0sC,WAAW9sB,GAAK,MAE3D/M,MAAO7S,GAAUA,EAAO6S,MACxBC,OAAQ9S,GAAUA,EAAO8S,OACzB65B,gBAAiB3sC,QAAA,IAAUA,EAAO2sC,gBAAgC3sC,EAAO2sC,gBAE3E/rC,KAAKqY,WAAa,CAChB4J,MAAA,EACA+pB,UAAW,EACX1zB,KAAMlX,EACN+zB,aAAcn1B,KAAKm1B,cAErBn1B,KAAKo6B,SAAW,GAChBp6B,KAAKu7B,gBAAkB,GACvBv7B,KAAKisC,WAAA,EACLjsC,KAAKqa,aAAe,MAStB,SAAS6xB,gBAKP,IAAI/sC,EAIJ,IARAa,KAAKmsC,MAAQ,GACbnsC,KAAKosC,QAAU,EACfpsC,KAAKqsC,IAAM,IAAI9mB,OACfvlB,KAAKssC,GAAK,EAGVtsC,KAAKusC,QAAUvkC,iBAAiB,UADtB,IAGL7I,EAAI,EAAGA,EAHF,GAGWA,GAAK,EACxBa,KAAKmsC,MAAMhtC,GAAK6I,iBAAiB,UAAW,IAG9ChI,KAAKof,QAPK,GAwFZ,SAASotB,wBACPxsC,KAAKysC,UAAY,CAAC,EAClBzsC,KAAK0sC,aAAe,GACpB1sC,KAAK2sC,oBAAsB,EAj6B7BtmC,gBAAgB,CAACkwB,YAAakB,iBAAkB2F,eAAgBC,iBAAkB7G,aAAc8G,qBAAsBoL,cAAekC,sBAErIA,qBAAqBlrC,UAAUq/B,cAAgB,WACzC/+B,KAAK4N,KAAKg/B,cAAgB5sC,KAAKqY,WAAWiB,YAAY/J,QACxDvP,KAAK6sC,cAAgBv/B,SAAS,UAIlCs9B,qBAAqBlrC,UAAUotC,kBAAoB,SAAU3tC,GAM3D,IALA,IAAIC,EAAI,EACJK,EAAMN,EAAUoB,OAChBF,EAAe,GACfG,EAAqB,GAElBpB,EAAIK,GACLN,EAAUC,KAAOW,OAAOgtC,aAAa,KAAO5tC,EAAUC,KAAOW,OAAOgtC,aAAa,IACnF1sC,EAAaqC,KAAKlC,GAClBA,EAAqB,IAErBA,GAAsBrB,EAAUC,GAGlCA,GAAK,EAIP,OADAiB,EAAaqC,KAAKlC,GACXH,CAAA,EAGTuqC,qBAAqBlrC,UAAUstC,eAAiB,SAAU7tC,EAAMC,GAK9D,GAAID,EAAKyP,QAAUzP,EAAKyP,OAAOrO,OAAQ,CACrC,IAAId,EAAQN,EAAKyP,OAAO,GAExB,GAAInP,EAAM2P,GAAI,CACZ,IAAI/O,EAAYZ,EAAM2P,GAAG3P,EAAM2P,GAAG7O,OAAS,GAEvCF,EAAUU,IACZV,EAAUU,EAAEyN,EAAE,GAAKpP,EACnBiB,EAAUU,EAAEyN,EAAE,GAAKpP,EAAA,EAKzB,OAAOD,CAAA,EAGTyrC,qBAAqBlrC,UAAU4qC,aAAe,WAE5C,IAAInrC,EACAC,EAFJY,KAAKwiB,mBAAmBxiB,MAGxB,IAAIP,EAAeO,KAAK4nC,aAAatE,YACrCtjC,KAAKwoC,gBAAkBpgC,iBAAiB3I,EAAeA,EAAamE,EAAErD,OAAS,GAE3Ed,EAAaujC,GACfhjC,KAAK25B,aAAa1c,aAAa,OAAQjd,KAAKyqC,WAAWhrC,EAAaujC,KAEpEhjC,KAAK25B,aAAa1c,aAAa,OAAQ,iBAGrCxd,EAAasjC,KACf/iC,KAAK25B,aAAa1c,aAAa,SAAUjd,KAAKyqC,WAAWhrC,EAAasjC,KACtE/iC,KAAK25B,aAAa1c,aAAa,eAAgBxd,EAAaqjC,KAG9D9iC,KAAK25B,aAAa1c,aAAa,YAAaxd,EAAa4kC,WACzD,IAAIhkC,EAAWL,KAAKqY,WAAWiB,YAAY4a,cAAcz0B,EAAaoP,GAEtE,GAAIxO,EAAS2xB,OACXhyB,KAAK25B,aAAa1c,aAAa,QAAS5c,EAAS2xB,YAC5C,CACLhyB,KAAK25B,aAAa1c,aAAa,cAAe5c,EAASyxB,SACvD,IAAItxB,EAAUf,EAAagvB,QACvB1tB,EAAStB,EAAa6uB,OAC1BtuB,KAAK25B,aAAa1c,aAAa,aAAclc,GAC7Cf,KAAK25B,aAAa1c,aAAa,cAAezc,EAAA,CAGhDR,KAAK25B,aAAa1c,aAAa,aAAcxd,EAAaN,GAC1D,IAGI6B,EAHAI,EAAU3B,EAAamE,GAAK,GAC5BjC,IAAe3B,KAAKqY,WAAWiB,YAAY/J,MAC/CnQ,EAAMgC,EAAQb,OAEd,IAAIqD,EAAe5D,KAAKo8B,QAEpBv4B,EAAc7D,KAAK4N,KAAKg/B,YACxB/9B,EAAO,EACPZ,EAAO,EACPC,GAAA,EACAG,EAAmC,KAAlB5O,EAAaivB,GAAajvB,EAAa4kC,UAE5D,IAAIxgC,GAAgBlC,GAAelC,EAAaskC,GA4CzC,CACL,IACIpxB,EADAqM,EAAoBhf,KAAK6qC,UAAUtqC,OAGvC,IAAKpB,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EAAG,CAS3B,GARKa,KAAK6qC,UAAU1rC,KAClBa,KAAK6qC,UAAU1rC,GAAK,CAClB8tC,KAAM,KACNC,UAAW,KACXC,MAAO,QAINxrC,IAAekC,GAAqB,IAAN1E,EAAS,CAG1C,GAFA6B,EAAQge,EAAoB7f,EAAIa,KAAK6qC,UAAU1rC,GAAG8tC,KAAO3/B,SAAS3L,EAAa,IAAM,QAEjFqd,GAAqB7f,EAAG,CAM1B,GALA6B,EAAMic,aAAa,iBAAkB,QACrCjc,EAAMic,aAAa,kBAAmB,SACtCjc,EAAMic,aAAa,oBAAqB,KACxCjd,KAAK6qC,UAAU1rC,GAAG8tC,KAAOjsC,EAErBW,EAAY,CACd,IAAIsd,EAAY3R,SAAS,KACzBtM,EAAMuT,YAAY0K,GAClBjf,KAAK6qC,UAAU1rC,GAAG+tC,UAAYjuB,CAAA,CAGhCjf,KAAK6qC,UAAU1rC,GAAG8tC,KAAOjsC,EACzBhB,KAAK25B,aAAaplB,YAAYvT,EAAA,CAGhCA,EAAMqJ,MAAMI,QAAU,UAmBxB,GAhBA7G,EAAa6gB,QAET5gB,IACEzC,EAAQjC,GAAG6B,IACb6N,GAAQR,EACRJ,GAAQxO,EAAa2kC,QACrBn2B,GAAQC,EAAY,EAAI,EACxBA,GAAA,GAGFlO,KAAKwqC,4BAA4B/qC,EAAcmE,EAAcxC,EAAQjC,GAAGgnC,KAAMt3B,EAAMZ,GACpFY,GAAQzN,EAAQjC,GAAGyE,GAAK,EAExBiL,GAAQR,GAGN1M,EAAY,CAEd,IAAI6B,EAEJ,GAAmB,KAHnBmP,EAAW3S,KAAKqY,WAAWiB,YAAYwa,YAAYr0B,EAAa6kC,UAAUnlC,GAAIkB,EAASiuB,OAAQtuB,KAAKqY,WAAWiB,YAAY4a,cAAcz0B,EAAaoP,GAAGijB,UAG5I3yB,EACXqE,EAAe,IAAI0nC,eAAev4B,EAAS/E,KAAM5N,KAAKqY,WAAYrY,UAC7D,CACL,IAAIkf,EAAOyrB,eAEPh4B,EAAS/E,MAAQ+E,EAAS/E,KAAKgB,SACjCsQ,EAAOlf,KAAKgtC,eAAer6B,EAAS/E,KAAMnO,EAAa4kC,YAGzD7gC,EAAe,IAAIk/B,gBAAgBxjB,EAAMlf,KAAKqY,WAAYrY,KAAA,CAG5D,GAAIA,KAAK6qC,UAAU1rC,GAAGguC,MAAO,CAC3B,IAAI7tB,EAAQtf,KAAK6qC,UAAU1rC,GAAGguC,MAC9BntC,KAAK6qC,UAAU1rC,GAAG+tC,UAAU7Y,YAAY/U,EAAMqa,cAC9Cra,EAAMxL,SAAA,CAGR9T,KAAK6qC,UAAU1rC,GAAGguC,MAAQ3pC,EAC1BA,EAAa4pC,QAAA,EACb5pC,EAAamS,aAAa,GAC1BnS,EAAamX,cACb3a,KAAK6qC,UAAU1rC,GAAG+tC,UAAU34B,YAAY/Q,EAAam2B,cAGlC,IAAfhnB,EAASxT,GACXa,KAAK6qC,UAAU1rC,GAAG+tC,UAAUjwB,aAAa,YAAa,SAAWxd,EAAa4kC,UAAY,IAAM,IAAM5kC,EAAa4kC,UAAY,IAAM,UAGnIxgC,GACF7C,EAAMic,aAAa,YAAa,aAAerZ,EAAa6hB,MAAM,IAAM,IAAM7hB,EAAa6hB,MAAM,IAAM,KAGzGzkB,EAAM+wB,YAAc3wB,EAAQjC,GAAG+mC,IAC/BllC,EAAMoT,eAAe,uCAAwC,YAAa,YAK1EvQ,GAAe7C,GACjBA,EAAMic,aAAa,IAlJR,QAOqC,CAClD,IAAIsC,EAAWvf,KAAK6sC,cAChBrtB,EAAU,QAEd,OAAQ/f,EAAaikC,GACnB,KAAK,EACHlkB,EAAU,MACV,MAEF,KAAK,EACHA,EAAU,SACV,MAEF,QACEA,EAAU,QAIdD,EAAStC,aAAa,cAAeuC,GACrCD,EAAStC,aAAa,iBAAkB5O,GACxC,IAAIoR,EAAczf,KAAK8sC,kBAAkBrtC,EAAa6kC,WAItD,IAHAllC,EAAMqgB,EAAYlf,OAClB0N,EAAOxO,EAAaukC,GAAKvkC,EAAaukC,GAAG,GAAKvkC,EAAa8jC,OAAS,EAE/DpkC,EAAI,EAAGA,EAAIC,EAAKD,GAAK,GACxB6B,EAAQhB,KAAK6qC,UAAU1rC,GAAG8tC,MAAQ3/B,SAAS,UACrCykB,YAActS,EAAYtgB,GAChC6B,EAAMic,aAAa,IAAK,GACxBjc,EAAMic,aAAa,IAAKhP,GACxBjN,EAAMqJ,MAAMI,QAAU,UACtB8U,EAAShL,YAAYvT,GAEhBhB,KAAK6qC,UAAU1rC,KAClBa,KAAK6qC,UAAU1rC,GAAK,CAClB8tC,KAAM,KACNE,MAAO,OAIXntC,KAAK6qC,UAAU1rC,GAAG8tC,KAAOjsC,EACzBiN,GAAQxO,EAAa8kC,gBAGvBvkC,KAAK25B,aAAaplB,YAAYgL,EAAA,CAoGhC,KAAOpgB,EAAIa,KAAK6qC,UAAUtqC,QACxBP,KAAK6qC,UAAU1rC,GAAG8tC,KAAK5iC,MAAMI,QAAU,OACvCtL,GAAK,EAGPa,KAAKg+B,cAAA,CAAe,EAGtB4M,qBAAqBlrC,UAAU41B,iBAAmB,WAIhD,GAHAt1B,KAAK2V,aAAa3V,KAAK4hB,KAAKC,cAAgB7hB,KAAK4N,KAAK8B,IACtD1P,KAAKg/B,qBAEDh/B,KAAKg+B,aAAc,CACrBh+B,KAAKg+B,cAAA,EACL,IAAI7+B,EAAUa,KAAK25B,aAAa9mB,UAChC7S,KAAKqtC,KAAO,CACV9iC,IAAKpL,EAAQ6f,EACbxU,KAAMrL,EAAQmgB,EACdrN,MAAO9S,EAAQ8S,MACfC,OAAQ/S,EAAQ+S,OAAA,CAIpB,OAAOlS,KAAKqtC,IAAA,EAGdzC,qBAAqBlrC,UAAUgjB,SAAW,WACxC,IAAIvjB,EAEAC,EADAK,EAAMO,KAAK6qC,UAAUtqC,OAIzB,IAFAP,KAAK6hB,cAAgB7hB,KAAK4hB,KAAKC,cAE1B1iB,EAAI,EAAGA,EAAIM,EAAKN,GAAK,GACxBC,EAAeY,KAAK6qC,UAAU1rC,GAAGguC,SAG/B/tC,EAAauW,aAAa3V,KAAK4hB,KAAKC,cAAgB7hB,KAAK4N,KAAK8B,IAE1DtQ,EAAa6iB,OACfjiB,KAAKiiB,MAAA,GAAO,EAMpB2oB,qBAAqBlrC,UAAUs/B,mBAAqB,WAClD,KAAKh/B,KAAK4N,KAAKg/B,aAAe5sC,KAAKiiB,QACjCjiB,KAAKoqC,aAAaxB,YAAY5oC,KAAK4nC,aAAatE,YAAatjC,KAAKyoC,oBAE9DzoC,KAAKyoC,oBAAsBzoC,KAAKoqC,aAAa3B,oBAAoB,CAEnE,IAAItpC,EACAC,EAFJY,KAAKg+B,cAAA,EAGL,IAGIv+B,EACAY,EACAG,EALAO,EAAkBf,KAAKoqC,aAAa5B,gBACpCxnC,EAAUhB,KAAK4nC,aAAatE,YAAY1/B,EAM5C,IALAxE,EAAM4B,EAAQT,OAKTpB,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EACnB6B,EAAQ7B,GAAG6B,IACdvB,EAAiBsB,EAAgB5B,GACjCkB,EAAWL,KAAK6qC,UAAU1rC,GAAG8tC,MAC7BzsC,EAAeR,KAAK6qC,UAAU1rC,GAAGguC,QAG/B3sC,EAAama,cAGXlb,EAAewiB,KAAK/T,GACtB7N,EAAS4c,aAAa,YAAaxd,EAAeyO,GAGhDzO,EAAewiB,KAAK7gB,GACtBf,EAAS4c,aAAa,UAAWxd,EAAe2B,GAG9C3B,EAAewiB,KAAK6gB,IACtBziC,EAAS4c,aAAa,eAAgBxd,EAAeqjC,IAGnDrjC,EAAewiB,KAAK8gB,IACtB1iC,EAAS4c,aAAa,SAAUxd,EAAesjC,IAG7CtjC,EAAewiB,KAAK+gB,IACtB3iC,EAAS4c,aAAa,OAAQxd,EAAeujC,IAAA,GAYzD38B,gBAAgB,CAACk3B,eAAgBuN,eAEjCA,cAAcprC,UAAUq/B,cAAgB,WACtC,IAAI5/B,EAAOmO,SAAS,QAIpBnO,EAAK8d,aAAa,QAASjd,KAAK4N,KAAKk1B,IACrC3jC,EAAK8d,aAAa,SAAUjd,KAAK4N,KAAKyT,IACtCliB,EAAK8d,aAAa,OAAQjd,KAAK4N,KAAKm1B,IACpC/iC,KAAK25B,aAAaplB,YAAYpV,EAAA,EAWhC4rC,YAAYrrC,UAAUiW,aAAe,SAAUxW,GAC7Ca,KAAK+5B,kBAAkB56B,GAAA,EAAK,EAG9B4rC,YAAYrrC,UAAUib,YAAc,WAAa,EAEjDowB,YAAYrrC,UAAUu6B,eAAiB,WACrC,OAAO,MAGT8Q,YAAYrrC,UAAUoU,QAAU,WAAa,EAE7Ci3B,YAAYrrC,UAAU41B,iBAAmB,WAAa,EAEtDyV,YAAYrrC,UAAU4c,KAAO,WAAa,EAE1CjW,gBAAgB,CAACkwB,YAAakB,iBAAkB4F,iBAAkB7G,cAAeuU,aAIjF1kC,gBAAgB,CAACmxB,cAAewT,iBAEhCA,gBAAgBtrC,UAAUi7B,WAAa,SAAUx7B,GAC/C,OAAO,IAAI4rC,YAAY5rC,EAAMa,KAAKqY,WAAYrY,KAAA,EAGhDgrC,gBAAgBtrC,UAAUk7B,YAAc,SAAUz7B,GAChD,OAAO,IAAIujC,gBAAgBvjC,EAAMa,KAAKqY,WAAYrY,KAAA,EAGpDgrC,gBAAgBtrC,UAAUm7B,WAAa,SAAU17B,GAC/C,OAAO,IAAIyrC,qBAAqBzrC,EAAMa,KAAKqY,WAAYrY,KAAA,EAGzDgrC,gBAAgBtrC,UAAU86B,YAAc,SAAUr7B,GAChD,OAAO,IAAIo+B,cAAcp+B,EAAMa,KAAKqY,WAAYrY,KAAA,EAGlDgrC,gBAAgBtrC,UAAUg7B,YAAc,SAAUv7B,GAChD,OAAO,IAAI2rC,cAAc3rC,EAAMa,KAAKqY,WAAYrY,KAAA,EAGlDgrC,gBAAgBtrC,UAAUkY,gBAAkB,SAAUzY,GACpDa,KAAKqrC,WAAWpuB,aAAa,QAAS,8BACtCjd,KAAKqrC,WAAWpuB,aAAa,cAAe,gCAExCjd,KAAKm1B,aAAawW,YACpB3rC,KAAKqrC,WAAWpuB,aAAa,UAAWjd,KAAKm1B,aAAawW,aAE1D3rC,KAAKqrC,WAAWpuB,aAAa,UAAW,OAAS9d,EAAS0gB,EAAI,IAAM1gB,EAASwC,GAG1E3B,KAAKm1B,aAAauW,cACrB1rC,KAAKqrC,WAAWpuB,aAAa,QAAS9d,EAAS0gB,GAC/C7f,KAAKqrC,WAAWpuB,aAAa,SAAU9d,EAASwC,GAChD3B,KAAKqrC,WAAWhhC,MAAM4H,MAAQ,OAC9BjS,KAAKqrC,WAAWhhC,MAAM6H,OAAS,OAC/BlS,KAAKqrC,WAAWhhC,MAAMuc,UAAY,qBAClC5mB,KAAKqrC,WAAWhhC,MAAMohC,kBAAoBzrC,KAAKm1B,aAAasW,mBAG1DzrC,KAAKm1B,aAAaljB,OACpBjS,KAAKqrC,WAAWpuB,aAAa,QAASjd,KAAKm1B,aAAaljB,OAGtDjS,KAAKm1B,aAAajjB,QACpBlS,KAAKqrC,WAAWpuB,aAAa,SAAUjd,KAAKm1B,aAAajjB,QAGvDlS,KAAKm1B,aAAayW,WACpB5rC,KAAKqrC,WAAWpuB,aAAa,QAASjd,KAAKm1B,aAAayW,WAGtD5rC,KAAKm1B,aAAarmB,IACpB9O,KAAKqrC,WAAWpuB,aAAa,KAAMjd,KAAKm1B,aAAarmB,SAAA,IAGnD9O,KAAKm1B,aAAa0W,WACpB7rC,KAAKqrC,WAAWpuB,aAAa,YAAajd,KAAKm1B,aAAa0W,WAG9D7rC,KAAKqrC,WAAWpuB,aAAa,sBAAuBjd,KAAKm1B,aAAaqW,qBAGtExrC,KAAK07B,cAAczjB,QAAQ1D,YAAYvU,KAAKqrC,YAE5C,IAAIjsC,EAAOY,KAAKqY,WAAWC,KAC3BtY,KAAKy7B,gBAAgBt8B,EAAUC,GAC/BY,KAAKqY,WAAW4iB,gBAAkBj7B,KAAKm1B,aAAa8F,gBACpDj7B,KAAK4N,KAAOzO,EACZ,IAAIM,EAAc6N,SAAS,YACvBjN,EAAOiN,SAAS,QACpBjN,EAAK4c,aAAa,QAAS9d,EAAS0gB,GACpCxf,EAAK4c,aAAa,SAAU9d,EAASwC,GACrCtB,EAAK4c,aAAa,IAAK,GACvB5c,EAAK4c,aAAa,IAAK,GACvB,IAAIzc,EAAS2L,kBACb1M,EAAYwd,aAAa,KAAMzc,GAC/Bf,EAAY8U,YAAYlU,GACxBL,KAAK25B,aAAa1c,aAAa,YAAa,OAAShX,kBAAoB,IAAMzF,EAAS,KACxFpB,EAAKmV,YAAY9U,GACjBO,KAAK0O,OAASvP,EAASuP,OACvB1O,KAAKo6B,SAAWhyB,iBAAiBjJ,EAASuP,OAAOnO,OAAA,EAGnDyqC,gBAAgBtrC,UAAUoU,QAAU,WAOlC,IAAI3U,EANAa,KAAK07B,cAAczjB,UACrBjY,KAAK07B,cAAczjB,QAAQkF,UAAY,IAGzCnd,KAAK25B,aAAe,KACpB35B,KAAKqY,WAAWC,KAAO,KAEvB,IAAIlZ,EAAMY,KAAK0O,OAAS1O,KAAK0O,OAAOnO,OAAS,EAE7C,IAAKpB,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EACpBa,KAAKo6B,SAASj7B,IAChBa,KAAKo6B,SAASj7B,GAAG2U,UAIrB9T,KAAKo6B,SAAS75B,OAAS,EACvBP,KAAKisC,WAAA,EACLjsC,KAAK07B,cAAgB,MAGvBsP,gBAAgBtrC,UAAU+a,oBAAsB,WAAa,EAE7DuwB,gBAAgBtrC,UAAU4tC,eAAiB,SAAUnuC,GACnD,IAAIC,EAAI,EACJK,EAAMO,KAAK0O,OAAOnO,OAEtB,IAAKnB,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EACxB,GAAIY,KAAK0O,OAAOtP,GAAG+7B,MAAQh8B,EACzB,OAAOC,EAIX,OAAQ,GAGV4rC,gBAAgBtrC,UAAU26B,UAAY,SAAUl7B,GAC9C,IAAIC,EAAWY,KAAKo6B,SAEpB,IAAIh7B,EAASD,IAAgC,KAAxBa,KAAK0O,OAAOvP,GAAKsP,GAAtC,CAIArP,EAASD,IAAA,EACT,IAAIM,EAAUO,KAAKu6B,WAAWv6B,KAAK0O,OAAOvP,IAa1C,GAZAC,EAASD,GAAOM,EAEZsN,yBAC0B,IAAxB/M,KAAK0O,OAAOvP,GAAKsP,IACnBzO,KAAKqY,WAAWb,iBAAiBzB,oBAAoBtW,GAGvDA,EAAQga,mBAGVzZ,KAAKutC,mBAAmB9tC,EAASN,GAE7Ba,KAAK0O,OAAOvP,GAAKg/B,GAAI,CACvB,IAAI99B,EAAe,OAAQL,KAAK0O,OAAOvP,GAAOa,KAAKstC,eAAettC,KAAK0O,OAAOvP,GAAKquC,IAAMruC,EAAM,EAE/F,IAAsB,IAAlBkB,EACF,OAGF,GAAKL,KAAKo6B,SAAS/5B,KAAA,IAAiBL,KAAKo6B,SAAS/5B,GAG3C,CACL,IACIG,EADepB,EAASiB,GACCq+B,SAAS1+B,KAAK0O,OAAOvP,GAAKg/B,IACvD1+B,EAAQm/B,SAASp+B,EAAA,MALjBR,KAAKq6B,UAAUh6B,GACfL,KAAKs7B,kBAAkB77B,EAAA,IAS7BurC,gBAAgBtrC,UAAU46B,qBAAuB,WAC/C,KAAOt6B,KAAKu7B,gBAAgBh7B,QAAQ,CAClC,IAAIpB,EAAUa,KAAKu7B,gBAAgB94B,MAGnC,GAFAtD,EAAQ2/B,iBAEJ3/B,EAAQyO,KAAKuwB,GAIf,IAHA,IAAI/+B,EAAI,EACJK,EAAMO,KAAKo6B,SAAS75B,OAEjBnB,EAAIK,GAAK,CACd,GAAIO,KAAKo6B,SAASh7B,KAAOD,EAAS,CAChC,IAAIkB,EAAe,OAAQlB,EAAQyO,KAAO5N,KAAKstC,eAAenuC,EAAQyO,KAAK4/B,IAAMpuC,EAAI,EAEjFoB,EADeR,KAAKo6B,SAAS/5B,GACJq+B,SAAS1+B,KAAK0O,OAAOtP,GAAG++B,IACrDh/B,EAAQy/B,SAASp+B,GACjB,MAGFpB,GAAK,KAMb4rC,gBAAgBtrC,UAAUib,YAAc,SAAUxb,GAChD,GAAIa,KAAK6hB,gBAAkB1iB,IAAOa,KAAKisC,UAAvC,CAgBA,IAAI7sC,EAZQ,OAARD,EACFA,EAAMa,KAAK6hB,cAEX7hB,KAAK6hB,cAAgB1iB,EAKvBa,KAAKqY,WAAW2zB,SAAW7sC,EAC3Ba,KAAKqY,WAAW6J,SAAW,EAC3BliB,KAAKqY,WAAWb,iBAAiB3B,aAAe1W,EAChDa,KAAKqY,WAAW4J,MAAA,EAEhB,IAAIxiB,EAAMO,KAAK0O,OAAOnO,OAMtB,IAJKP,KAAKsQ,gBACRtQ,KAAKm6B,YAAYh7B,GAGdC,EAAIK,EAAM,EAAGL,GAAK,EAAGA,GAAK,GACzBY,KAAKsQ,gBAAkBtQ,KAAKo6B,SAASh7B,KACvCY,KAAKo6B,SAASh7B,GAAGuW,aAAaxW,EAAMa,KAAK0O,OAAOtP,GAAGsQ,IAIvD,GAAI1P,KAAKqY,WAAW4J,KAClB,IAAK7iB,EAAI,EAAGA,EAAIK,EAAKL,GAAK,GACpBY,KAAKsQ,gBAAkBtQ,KAAKo6B,SAASh7B,KACvCY,KAAKo6B,SAASh7B,GAAGub,aAAA,GAMzBqwB,gBAAgBtrC,UAAU6tC,mBAAqB,SAAUpuC,EAASC,GAChE,IAAIK,EAAaN,EAAQ86B,iBAEzB,GAAKx6B,EAAL,CAOA,IAHA,IACIY,EADAG,EAAI,EAGDA,EAAIpB,GACLY,KAAKo6B,SAAS55B,KAAA,IAAMR,KAAKo6B,SAAS55B,IAAeR,KAAKo6B,SAAS55B,GAAGy5B,mBACpE55B,EAAcL,KAAKo6B,SAAS55B,GAAGy5B,kBAGjCz5B,GAAK,EAGHH,EACFL,KAAK25B,aAAa8T,aAAahuC,EAAYY,GAE3CL,KAAK25B,aAAaplB,YAAY9U,EAAA,GAIlCurC,gBAAgBtrC,UAAU4c,KAAO,WAC/Btc,KAAK25B,aAAatvB,MAAMI,QAAU,QAGpCugC,gBAAgBtrC,UAAU6c,KAAO,WAC/Bvc,KAAK25B,aAAatvB,MAAMI,QAAU,SAKpCpE,gBAAgB,CAACkwB,YAAakB,iBAAkB4F,iBAAkB7G,aAAc8G,sBAAuB2N,cAEvGA,aAAavrC,UAAU89B,YAAc,SAAUr+B,EAAMC,EAAYK,GAC/DO,KAAK02B,YACL12B,KAAK62B,aAAa13B,EAAMC,EAAYK,GACpCO,KAAK47B,cAAcz8B,EAAMC,EAAYK,GACrCO,KAAKu0B,iBACLv0B,KAAK6+B,gBACL7+B,KAAK49B,sBACL59B,KAAK69B,0BACL79B,KAAKw+B,8BAEDx+B,KAAK4N,KAAKgI,IAAOxW,EAAW67B,iBAC9Bj7B,KAAKg7B,gBAGPh7B,KAAKsc,MAAA,EAeP2uB,aAAavrC,UAAUiW,aAAe,SAAUxW,GAK9C,GAJAa,KAAKiiB,MAAA,EACLjiB,KAAK80B,uBAAuB31B,GAC5Ba,KAAK+5B,kBAAkB56B,EAAKa,KAAKw0B,WAE5Bx0B,KAAKw0B,WAAcx0B,KAAK4N,KAAKgI,GAAlC,CAIA,GAAK5V,KAAKmV,GAAGkiB,aASXr3B,KAAK6hB,cAAgB1iB,EAAMa,KAAK4N,KAAK+B,OATZ,CACzB,IAAIvQ,EAAeY,KAAKmV,GAAG3R,EAEvBpE,IAAiBY,KAAK4N,KAAK6B,KAC7BrQ,EAAeY,KAAK4N,KAAK6B,GAAK,GAGhCzP,KAAK6hB,cAAgBziB,CAAA,CAKvB,IAAIK,EACAY,EAAML,KAAKo6B,SAAS75B,OAOxB,IALKP,KAAKsQ,gBACRtQ,KAAKm6B,YAAYn6B,KAAK6hB,eAInBpiB,EAAIY,EAAM,EAAGZ,GAAK,EAAGA,GAAK,GACzBO,KAAKsQ,gBAAkBtQ,KAAKo6B,SAAS36B,MACvCO,KAAKo6B,SAAS36B,GAAGkW,aAAa3V,KAAK6hB,cAAgB7hB,KAAK0O,OAAOjP,GAAGiQ,IAE9D1P,KAAKo6B,SAAS36B,GAAGwiB,OACnBjiB,KAAKiiB,MAAA,GAAO,GAMpBgpB,aAAavrC,UAAUs/B,mBAAqB,WAC1C,IAAI7/B,EACAC,EAAMY,KAAK0O,OAAOnO,OAEtB,IAAKpB,EAAI,EAAGA,EAAIC,EAAKD,GAAK,GACpBa,KAAKsQ,gBAAkBtQ,KAAKo6B,SAASj7B,KACvCa,KAAKo6B,SAASj7B,GAAGwb,aAAA,EAKvBswB,aAAavrC,UAAUguC,YAAc,SAAUvuC,GAC7Ca,KAAKo6B,SAAWj7B,CAAA,EAGlB8rC,aAAavrC,UAAUiuC,YAAc,WACnC,OAAO3tC,KAAKo6B,QAAA,EAGd6Q,aAAavrC,UAAUkuC,gBAAkB,WACvC,IAAIzuC,EACAC,EAAMY,KAAK0O,OAAOnO,OAEtB,IAAKpB,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EACpBa,KAAKo6B,SAASj7B,IAChBa,KAAKo6B,SAASj7B,GAAG2U,SAAA,EAKvBm3B,aAAavrC,UAAUoU,QAAU,WAC/B9T,KAAK4tC,kBACL5tC,KAAKu+B,oBAAA,EAePl4B,gBAAgB,CAAC2kC,gBAAiBC,aAAc7N,gBAAiB8N,gBAEjEA,eAAexrC,UAAU+6B,WAAa,SAAUt7B,GAC9C,OAAO,IAAI+rC,eAAe/rC,EAAMa,KAAKqY,WAAYrY,KAAA,EAsEnDqG,gBAAgB,CAAC2kC,iBAAkBI,aAEnCA,YAAY1rC,UAAU+6B,WAAa,SAAUt7B,GAC3C,OAAO,IAAI+rC,eAAe/rC,EAAMa,KAAKqY,WAAYrY,KAAA,EAmBnDksC,cAAcxsC,UAAUmuC,UAAY,WAClC,IAAI1uC,EAA2B,EAAfa,KAAKof,QACjBhgB,EAAiBY,KAAKusC,QAC1BvsC,KAAKusC,QAAUvkC,iBAAiB,UAAW7I,GAC3Ca,KAAKusC,QAAQ5nC,IAAIvF,GACjB,IAAIK,EAAI,EAER,IAAKA,EAAIO,KAAKof,QAAS3f,EAAIN,EAAWM,GAAK,EACzCO,KAAKmsC,MAAM1sC,GAAKuI,iBAAiB,UAAW,IAG9ChI,KAAKof,QAAUjgB,CAAA,EAGjB+sC,cAAcxsC,UAAU+kB,MAAQ,WAC9BzkB,KAAKosC,QAAU,EACfpsC,KAAKqsC,IAAI5nB,QACTzkB,KAAKssC,GAAK,GAGZJ,cAAcxsC,UAAUouC,aAAe,WACrC,IACI3uC,EADAC,EAASY,KAAKmsC,MAAMnsC,KAAKosC,SAEzB3sC,EAAMO,KAAKqsC,IAAI5mB,MAEnB,IAAKtmB,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvBM,EAAIN,GAAKC,EAAOD,GAGlB,OAAOC,CAAA,EAGT8sC,cAAcxsC,UAAUquC,WAAa,WACnC,IAAI5uC,EAASa,KAAKusC,QAAQvsC,KAAKosC,SAE/B,OADApsC,KAAKssC,GAAKntC,EACHA,CAAA,EAGT+sC,cAAcxsC,UAAU+C,IAAM,WAI5B,OAHAzC,KAAKosC,SAAW,EAGT,CACLxlB,UAHc5mB,KAAK8tC,eAInBE,QAHYhuC,KAAK+tC,aAAA,EAOrB7B,cAAcxsC,UAAUgD,KAAO,WAC7B,IAMIvD,EANAC,EAAQY,KAAKqsC,IAAI5mB,MAEjBzlB,KAAKof,SAAWpf,KAAKosC,SACvBpsC,KAAK6tC,YAIP,IAAIpuC,EAAMO,KAAKmsC,MAAMnsC,KAAKosC,SAE1B,IAAKjtC,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvBM,EAAIN,GAAKC,EAAMD,GAGjBa,KAAKusC,QAAQvsC,KAAKosC,SAAWpsC,KAAKssC,GAClCtsC,KAAKosC,SAAW,GAGlBF,cAAcxsC,UAAUuuC,aAAe,WACrC,OAAOjuC,KAAKqsC,GAAA,EAGdH,cAAcxsC,UAAUwuC,WAAa,WACnC,OAAOluC,KAAKssC,EAAA,EAGdJ,cAAcxsC,UAAUyuC,WAAa,SAAUhvC,GAC7Ca,KAAKssC,GAAKntC,CAAA,EASZqtC,sBAAsB9sC,UAAY,CAChC0uC,qBAAsB,SAA8BjvC,GAClD,IAAIC,EACAK,EAAMN,EAAWoB,OACjBF,EAAM,IAEV,IAAKjB,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EACxBiB,GAAOlB,EAAWC,GAAGwnB,UAAUynB,IAAM,IAGvC,IAAI7tC,EAAWR,KAAKysC,UAAUpsC,GAY9B,OAVKG,IACHA,EAAW,CACT8tC,WAAY,GAAGnrC,OAAOhE,GACtB81B,eAAgB,IAAI1P,OACpBtD,MAAA,GAEFjiB,KAAKysC,UAAUpsC,GAAOG,EACtBR,KAAK0sC,aAAahqC,KAAKlC,IAGlBA,CAAA,EAET+tC,gBAAiB,SAAyBpvC,EAAUC,GAKlD,IAJA,IAcMK,EAdFY,EAAI,EACJG,EAAMrB,EAASmvC,WAAW/tC,OAC1BQ,EAAO3B,EAEJiB,EAAIG,IAAQpB,GAAc,CAC/B,GAAID,EAASmvC,WAAWjuC,GAAGumB,UAAUsJ,OAAOjO,KAAM,CAChDlhB,GAAA,EACA,MAGFV,GAAK,EAGP,GAAIU,EAIF,IAFA5B,EAAS81B,eAAexQ,QAEnBpkB,EAAIG,EAAM,EAAGH,GAAK,EAAGA,GAAK,EAC7BZ,EAAQN,EAASmvC,WAAWjuC,GAAGumB,UAAUsJ,OAAO1sB,EAAEiiB,MAClDtmB,EAAS81B,eAAerO,UAAUnnB,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,IAAKA,EAAM,IAAKA,EAAM,IAAKA,EAAM,IAAKA,EAAM,IAAKA,EAAM,KAIvMN,EAAS8iB,KAAOlhB,CAAA,EAElBytC,iBAAkB,SAA0BrvC,GAC1C,IAAIC,EACAK,EAAMO,KAAK0sC,aAAansC,OAE5B,IAAKnB,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EACxBY,KAAKuuC,gBAAgBvuC,KAAK0sC,aAAattC,GAAID,EAAA,EAG/CsvC,UAAW,WAET,OADAzuC,KAAK2sC,qBAAuB,EACrB,IAAM3sC,KAAK2sC,mBAAA,GAItB,IAAI+B,WAAa,WACf,IAAIvvC,EAAK,+BACLC,EAAa,KACbK,EAAgB,KAChBY,EAAM,KA4CV,SAASG,IAtBT,IACMA,EAEAO,EACAC,EAmBC5B,IAtBDoB,EAAO8M,SAAS,OAEhBvM,EAAMuM,SAAS,UACftM,EAASsM,SAAS,iBACtBvM,EAAIkc,aAAa,KAAM9d,GACvB6B,EAAOic,aAAa,OAAQ,UAC5Bjc,EAAOic,aAAa,8BAA+B,QACnDjc,EAAOic,aAAa,SAAU,sFAC9Blc,EAAIwT,YAAYvT,GAEhBR,EAAK+T,YAAYxT,GAEjBP,EAAKyc,aAAa,KAAM9d,EAAK,QAEzBq9B,eAAeE,gBACjBl8B,EAAK6J,MAAMI,QAAU,QAQrBpK,EALKG,EAML2F,SAASurB,KAAKnd,YAAYlU,GAC1BjB,EAAa8G,UAAU,WACvBzG,EAAgBL,EAAW+S,WAAW,OAExBke,OAAS,QAAUlxB,EAAK,IACtCM,EAAc2S,UAAY,gBAC1B3S,EAAc4S,SAAS,EAAG,EAAG,EAAG,IAgBpC,MAAO,CACLzB,KAAMpQ,EACNqC,IAdF,SAAiBxC,GASf,OARKjB,GACHoB,IAGFpB,EAAW6S,MAAQ5R,EAAO4R,MAC1B7S,EAAW8S,OAAS7R,EAAO6R,OAE3BzS,EAAc4wB,OAAS,QAAUlxB,EAAK,IAC/BC,CAAA,IASX,SAASuvC,aAAaxvC,EAAOC,GAC3B,GAAIo9B,eAAeG,gBACjB,OAAO,IAAI1K,gBAAgB9yB,EAAOC,GAGpC,IAAIK,EAASyG,UAAU,UAGvB,OAFAzG,EAAOwS,MAAQ9S,EACfM,EAAOyS,OAAS9S,EACTK,CAAA,CAGT,IAAI8Q,YACK,CACLq+B,eAAgBF,WAAW99B,KAC3Bi+B,cAAeH,WAAW7rC,IAC1B8rC,aAAcA,cAIlB,SAASG,YAAA,CAIT,SAASC,cAAc5vC,EAAMC,GAK3B,IAAIK,EAJJO,KAAK4N,KAAOzO,EACZa,KAAK23B,QAAUv4B,EACfY,KAAKsO,gBAAkBtO,KAAK4N,KAAKU,iBAAmB,GACpDtO,KAAK83B,SAAW1vB,iBAAiBpI,KAAKsO,gBAAgB/N,QAEtD,IAAIF,EAAML,KAAKsO,gBAAgB/N,OAC3BC,GAAA,EAEJ,IAAKf,EAAI,EAAGA,EAAIY,EAAKZ,GAAK,EACa,MAAjCO,KAAKsO,gBAAgB7O,GAAGu4B,OAC1Bx3B,GAAA,GAGFR,KAAK83B,SAASr4B,GAAK4kB,qBAAqBe,aAAaplB,KAAK23B,QAAS33B,KAAKsO,gBAAgB7O,GAAI,GAG9FO,KAAKgvC,SAAWxuC,EAEZA,GACFR,KAAK23B,QAAQ/C,uBAAuB50B,KAAA,CAsDxC,SAASivC,gBAAA,CA5ETH,UAAUpvC,UAAUib,YAAc,WAAa,EA0B/Co0B,cAAcrvC,UAAUib,YAAc,WACpC,GAAK3a,KAAKgvC,SAAV,CAIA,IAEI7vC,EAEAC,EACAK,EACAY,EANAG,EAAYR,KAAK23B,QAAQ1C,eAAe8G,IACxCh7B,EAAMf,KAAK23B,QAAQuX,cAEnBluC,EAAMhB,KAAKsO,gBAAgB/N,OAM/B,IAFAQ,EAAIouC,YAEChwC,EAAI,EAAGA,EAAI6B,EAAK7B,GAAK,EACxB,GAAqC,MAAjCa,KAAKsO,gBAAgBnP,GAAG64B,KAAc,CAYxC,IAAI52B,EAXApB,KAAKsO,gBAAgBnP,GAAG84B,MAC1Bl3B,EAAIquC,OAAO,EAAG,GACdruC,EAAIsuC,OAAOrvC,KAAK23B,QAAQtf,WAAWsjB,SAAS9b,EAAG,GAC/C9e,EAAIsuC,OAAOrvC,KAAK23B,QAAQtf,WAAWsjB,SAAS9b,EAAG7f,KAAK23B,QAAQtf,WAAWsjB,SAASh6B,GAChFZ,EAAIsuC,OAAO,EAAGrvC,KAAK23B,QAAQtf,WAAWsjB,SAASh6B,GAC/CZ,EAAIsuC,OAAO,EAAG,IAGhBhvC,EAAOL,KAAK83B,SAAS34B,GAAGqE,EACxBpE,EAAKoB,EAAUylB,kBAAkB5lB,EAAKmD,EAAE,GAAG,GAAInD,EAAKmD,EAAE,GAAG,GAAI,GAC7DzC,EAAIquC,OAAOhwC,EAAG,GAAIA,EAAG,IAErB,IAAIuC,EAAOtB,EAAK+e,QAEhB,IAAKhe,EAAI,EAAGA,EAAIO,EAAMP,GAAK,EACzB3B,EAAMe,EAAUymB,oBAAoB5mB,EAAKe,EAAEA,EAAI,GAAIf,EAAKA,EAAEe,GAAIf,EAAKmD,EAAEpC,IACrEL,EAAIuuC,cAAc7vC,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAGhEA,EAAMe,EAAUymB,oBAAoB5mB,EAAKe,EAAEA,EAAI,GAAIf,EAAKA,EAAE,GAAIA,EAAKmD,EAAE,IACrEzC,EAAIuuC,cAAc7vC,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAIlEO,KAAK23B,QAAQtf,WAAWrB,SAASu4B,MAAA,GACjCxuC,EAAIyuC,MAAA,GAGNT,cAAcrvC,UAAU28B,gBAAkB3E,YAAYh4B,UAAU28B,gBAEhE0S,cAAcrvC,UAAUoU,QAAU,WAChC9T,KAAK23B,QAAU,MAKjB,IAAI8X,cAAgB,CAClB,EAAG,YACH,EAAG,aACH,EAAG,YACH,EAAG,cAyJL,SAASC,YAAYvwC,EAASC,EAAMK,EAAQY,GAC1CL,KAAK2vC,aAAe,GACpB3vC,KAAK0uB,GAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAC1B,IAWIluB,EAXAO,EAAK,EAEO,OAAZ3B,EAAKqP,GACP1N,EAAK,EACgB,OAAZ3B,EAAKqP,GACd1N,EAAK,EACgB,OAAZ3B,EAAKqP,KACd1N,EAAK,GAGPf,KAAKqhB,GAAKgD,qBAAqBe,aAAajmB,EAASC,EAAM2B,EAAI5B,GAE/D,IACI6B,EADAI,EAAM3B,EAAOc,OAGjB,IAAKC,EAAI,EAAGA,EAAIY,EAAKZ,GAAK,EACnBf,EAAOe,GAAGsP,SACb9O,EAAc,CACZstC,WAAYjuC,EAAkB+tC,qBAAqB3uC,EAAOe,GAAG8tC,YAC7DsB,QAAS,IAEX5vC,KAAK2vC,aAAajtC,KAAK1B,GACvBvB,EAAOe,GAAG45B,SAAS13B,KAAK1B,GAAA,CAO9B,SAAS6uC,eAAe1wC,EAAMC,EAAYK,GACxCO,KAAK4O,OAAS,GACd5O,KAAKm5B,WAAah6B,EAAKyP,OACvB5O,KAAK2iC,WAAa,GAClB3iC,KAAKo5B,UAAY,GACjBp5B,KAAKyhC,aAAe,GACpBzhC,KAAKq/B,eAAiB,GACtBr/B,KAAK0/B,kBAAoB,GACzB1/B,KAAK8vC,kBAAoB,IAAItD,sBAC7BxsC,KAAKw9B,YAAYr+B,EAAMC,EAAYK,EAAA,CAuhBrC,SAASswC,cAAc5wC,EAAMC,EAAYK,GACvCO,KAAK6qC,UAAY,GACjB7qC,KAAKokC,QAAU,EACfpkC,KAAKikC,eAAA,EACLjkC,KAAKkkC,iBAAA,EACLlkC,KAAKmkC,iBAAA,EACLnkC,KAAKgwC,QAAA,EACLhwC,KAAKiwC,MAAA,EACLjwC,KAAK2jC,cAAgB,EACrB3jC,KAAKkwC,cAAgB,KACrBlwC,KAAKqqC,WAAa,SAClBrqC,KAAKmwC,OAAS,CACZF,KAAM,gBACND,OAAQ,gBACRI,OAAQ,EACRC,OAAQ,IAEVrwC,KAAKw9B,YAAYr+B,EAAMC,EAAYK,EAAA,CAiOrC,SAAS6wC,eAAenxC,EAAMC,EAAYK,GACxCO,KAAKiT,UAAY7T,EAAWid,aAAald,EAAKwP,OAC9C3O,KAAKmT,IAAM/T,EAAWw3B,YAAY7iB,SAAS/T,KAAKiT,WAChDjT,KAAKw9B,YAAYr+B,EAAMC,EAAYK,EAAA,CA0CrC,SAAS8wC,eAAepxC,EAAMC,EAAYK,GACxCO,KAAKw9B,YAAYr+B,EAAMC,EAAYK,EAAA,CAarC,SAAS+wC,mBAAmBrxC,EAAeC,GACzCY,KAAK07B,cAAgBv8B,EACrBa,KAAKm1B,aAAe,CAClBsb,aAAarxC,QAAA,IAAUA,EAAOqxC,aAA4BrxC,EAAOqxC,YACjEC,QAAStxC,GAAUA,EAAOsxC,SAAW,KACrCzV,gBAAiB77B,GAAUA,EAAO67B,kBAAA,EAClCuQ,oBAAqBpsC,GAAUA,EAAOosC,qBAAuB,gBAC7DrM,yBAA0B//B,GAAUA,EAAO+/B,0BAA4B,iBACvEsM,kBAAmBrsC,GAAUA,EAAOqsC,mBAAqB,UACzDG,UAAWxsC,GAAUA,EAAOwsC,WAAa,GACzC98B,GAAI1P,GAAUA,EAAO0P,IAAM,IAE7B9O,KAAKm1B,aAAawb,IAAMvxC,GAAUA,EAAOuxC,KAAO,EAE5C3wC,KAAK07B,cAAczjB,UACrBjY,KAAKm1B,aAAawb,IAAMvxC,GAAUA,EAAOuxC,KAAO7rC,OAAO8rC,kBAAoB,GAG7E5wC,KAAK6hB,eAAiB,EACtB7hB,KAAKqY,WAAa,CAChB2zB,UAAW,EACX/pB,MAAA,EACAkT,aAAcn1B,KAAKm1B,aACnB0b,oBAAqB,GAEvB7wC,KAAK8wC,YAAc,IAAI5E,cACvBlsC,KAAKo6B,SAAW,GAChBp6B,KAAKu7B,gBAAkB,GACvBv7B,KAAK+wC,aAAe,IAAIxrB,OACxBvlB,KAAKsQ,gBAAA,EACLtQ,KAAKqa,aAAe,SAkVtB,SAAS22B,cAAc7xC,EAAMC,EAAYK,GACvCO,KAAKsQ,gBAAA,EACLtQ,KAAK0O,OAASvP,EAAKuP,OACnB1O,KAAKu7B,gBAAkB,GACvBv7B,KAAKo6B,SAAWhyB,iBAAiBpI,KAAK0O,OAAOnO,QAC7CP,KAAKw9B,YAAYr+B,EAAMC,EAAYK,GACnCO,KAAKmV,GAAKhW,EAAKgW,GAAKmL,gBAAgBsC,QAAQ5iB,KAAMb,EAAKgW,GAAI,EAAG/V,EAAWmX,UAAWvW,MAAQ,CAC1Fq3B,cAAA,EAAc,CA2ClB,SAAS4Z,eAAe9xC,EAAeC,GACrCY,KAAK07B,cAAgBv8B,EACrBa,KAAKm1B,aAAe,CAClBsb,aAAarxC,QAAA,IAAUA,EAAOqxC,aAA4BrxC,EAAOqxC,YACjEC,QAAStxC,GAAUA,EAAOsxC,SAAW,KACrCzV,gBAAiB77B,GAAUA,EAAO67B,kBAAA,EAClCuQ,oBAAqBpsC,GAAUA,EAAOosC,qBAAuB,gBAC7DrM,yBAA0B//B,GAAUA,EAAO+/B,0BAA4B,iBACvEsM,kBAAmBrsC,GAAUA,EAAOqsC,mBAAqB,UACzDG,UAAWxsC,GAAUA,EAAOwsC,WAAa,GACzC98B,GAAI1P,GAAUA,EAAO0P,IAAM,GAC3Bi9B,gBAAiB3sC,QAAA,IAAUA,EAAO2sC,gBAAgC3sC,EAAO2sC,gBAE3E/rC,KAAKm1B,aAAawb,IAAMvxC,GAAUA,EAAOuxC,KAAO,EAE5C3wC,KAAK07B,cAAczjB,UACrBjY,KAAKm1B,aAAawb,IAAMvxC,GAAUA,EAAOuxC,KAAO7rC,OAAO8rC,kBAAoB,GAG7E5wC,KAAK6hB,eAAiB,EACtB7hB,KAAKqY,WAAa,CAChB2zB,UAAW,EACX/pB,MAAA,EACAkT,aAAcn1B,KAAKm1B,aACnB0b,oBAAqB,GAEvB7wC,KAAK8wC,YAAc,IAAI5E,cACvBlsC,KAAKo6B,SAAW,GAChBp6B,KAAKu7B,gBAAkB,GACvBv7B,KAAK+wC,aAAe,IAAIxrB,OACxBvlB,KAAKsQ,gBAAA,EACLtQ,KAAKqa,aAAe,SAStB,SAAS62B,eAAA,CAwFT,SAASC,cAAchyC,EAAMC,EAAYK,GACvCO,KAAKw9B,YAAYr+B,EAAMC,EAAYK,EAAA,CAyBrC,SAAS2xC,cAAcjyC,EAAMC,EAAYK,GAEvCO,KAAK4O,OAAS,GAEd5O,KAAKm5B,WAAah6B,EAAKyP,OAEvB5O,KAAK2iC,WAAa,GAElB3iC,KAAKq/B,eAAiB,GAEtBr/B,KAAKo5B,UAAY,GAEjBp5B,KAAK0/B,kBAAoB,GAEzB1/B,KAAK4iC,iBAAmB,GACxB5iC,KAAKqxC,gBAAkB/jC,SAAS,KAChCtN,KAAKw9B,YAAYr+B,EAAMC,EAAYK,GAGnCO,KAAKyhC,aAAe,GACpBzhC,KAAKsxC,YAAc,CACjBhyB,EAAG,OACHN,GAAI,OACJrd,EAAG,EACHke,EAAG,GAiOP,SAAS0xB,aAAapyC,EAAMC,EAAYK,GACtCO,KAAK6qC,UAAY,GACjB7qC,KAAKwxC,UAAY,GACjBxxC,KAAKsxC,YAAc,CACjBhyB,EAAG,OACHN,GAAI,OACJrd,EAAG,EACHke,EAAG,GAEL7f,KAAKqqC,WAAa,MAClBrqC,KAAKyxC,UAAA,EACLzxC,KAAKw9B,YAAYr+B,EAAMC,EAAYK,EAAA,CA0RrC,SAASiyC,eAAevyC,EAAMC,EAAYK,GACxCO,KAAK02B,YACL12B,KAAK62B,aAAa13B,EAAMC,EAAYK,GACpCO,KAAK6+B,gBACL,IAAIx+B,EAAUigB,gBAAgBsC,QAe9B,GAdA5iB,KAAK2xC,GAAKtxC,EAAQL,KAAMb,EAAKwyC,GAAI,EAAG,EAAG3xC,MAEnCb,EAAKgQ,GAAGtL,EAAE9C,GACZf,KAAK2qB,GAAKtqB,EAAQL,KAAMb,EAAKgQ,GAAGtL,EAAEyb,EAAG,EAAG,EAAGtf,MAC3CA,KAAK4qB,GAAKvqB,EAAQL,KAAMb,EAAKgQ,GAAGtL,EAAEmb,EAAG,EAAG,EAAGhf,MAC3CA,KAAK6qB,GAAKxqB,EAAQL,KAAMb,EAAKgQ,GAAGtL,EAAEkiB,EAAG,EAAG,EAAG/lB,OAE3CA,KAAK6D,EAAIxD,EAAQL,KAAMb,EAAKgQ,GAAGtL,EAAG,EAAG,EAAG7D,MAGtCb,EAAKgQ,GAAG3O,IACVR,KAAKQ,EAAIH,EAAQL,KAAMb,EAAKgQ,GAAG3O,EAAG,EAAG,EAAGR,OAGtCb,EAAKgQ,GAAG8V,GAAGzW,EAAEjO,QAAUpB,EAAKgQ,GAAG8V,GAAGzW,EAAE,GAAGqS,GAAI,CAC7C,IAAIrgB,EACAO,EAAM5B,EAAKgQ,GAAG8V,GAAGzW,EAAEjO,OAEvB,IAAKC,EAAI,EAAGA,EAAIO,EAAKP,GAAK,EACxBrB,EAAKgQ,GAAG8V,GAAGzW,EAAEhO,GAAGqgB,GAAK,KACrB1hB,EAAKgQ,GAAG8V,GAAGzW,EAAEhO,GAAGugB,GAAK,KAIzB/gB,KAAKilB,GAAK5kB,EAAQL,KAAMb,EAAKgQ,GAAG8V,GAAI,EAAGnb,UAAW9J,MAClDA,KAAKilB,GAAG5D,IAAA,EACRrhB,KAAK8qB,GAAKzqB,EAAQL,KAAMb,EAAKgQ,GAAG2b,GAAI,EAAGhhB,UAAW9J,MAClDA,KAAK+qB,GAAK1qB,EAAQL,KAAMb,EAAKgQ,GAAG4b,GAAI,EAAGjhB,UAAW9J,MAClDA,KAAKgrB,GAAK3qB,EAAQL,KAAMb,EAAKgQ,GAAG6b,GAAI,EAAGlhB,UAAW9J,MAClDA,KAAK+7B,IAAM,IAAIxW,OACfvlB,KAAK4xC,SAAW,IAAIrsB,OACpBvlB,KAAKsiB,eAAA,EAELtiB,KAAKi1B,eAAiB,CACpBC,MAAOl1B,KAAA,CA2IX,SAAS6xC,cAAc1yC,EAAMC,EAAYK,GACvCO,KAAKiT,UAAY7T,EAAWid,aAAald,EAAKwP,OAC9C3O,KAAKw9B,YAAYr+B,EAAMC,EAAYK,EAAA,CA6BrC,SAASqyC,mBAAmB3yC,EAAeC,GACzCY,KAAK07B,cAAgBv8B,EACrBa,KAAK0O,OAAS,KACd1O,KAAK6hB,eAAiB,EACtB7hB,KAAKm1B,aAAe,CAClByW,UAAWxsC,GAAUA,EAAOwsC,WAAa,GACzCzM,yBAA0B//B,GAAUA,EAAO+/B,0BAA4B,iBACvE/J,oBAAqBh2B,IAAA,IAAUA,EAAOg2B,mBACtC0W,WAAY,CACV75B,MAAO7S,GAAUA,EAAO0sC,YAAc1sC,EAAO0sC,WAAW75B,OAAS,OACjEC,OAAQ9S,GAAUA,EAAO0sC,YAAc1sC,EAAO0sC,WAAW55B,QAAU,OACnEoN,EAAGlgB,GAAUA,EAAO0sC,YAAc1sC,EAAO0sC,WAAWxsB,GAAK,QACzDN,EAAG5f,GAAUA,EAAO0sC,YAAc1sC,EAAO0sC,WAAW9sB,GAAK,UAG7Dhf,KAAKqY,WAAa,CAChB4J,MAAA,EACA+pB,UAAW,EACX7W,aAAcn1B,KAAKm1B,cAErBn1B,KAAKu7B,gBAAkB,GACvBv7B,KAAKo6B,SAAW,GAChBp6B,KAAK+xC,eAAiB,GACtB/xC,KAAKisC,WAAA,EACLjsC,KAAKgyC,OAAS,KACdhyC,KAAKmrC,YAAA,EACLnrC,KAAKqa,aAAe,OAwUtB,SAAS43B,aAAa9yC,EAAMC,EAAYK,GACtCO,KAAK0O,OAASvP,EAAKuP,OACnB1O,KAAKmrC,YAAchsC,EAAKiP,QACxBpO,KAAKsQ,gBAAA,EACLtQ,KAAKu7B,gBAAkB,GACvBv7B,KAAKo6B,SAAWp6B,KAAK0O,OAAStG,iBAAiBpI,KAAK0O,OAAOnO,QAAU,GACrEP,KAAKw9B,YAAYr+B,EAAMC,EAAYK,GACnCO,KAAKmV,GAAKhW,EAAKgW,GAAKmL,gBAAgBsC,QAAQ5iB,KAAMb,EAAKgW,GAAI,EAAG/V,EAAWmX,UAAWvW,MAAQ,CAC1Fq3B,cAAA,EAAc,CA+ClB,SAAS6a,eAAe/yC,EAAeC,GACrCY,KAAK07B,cAAgBv8B,EACrBa,KAAK0O,OAAS,KACd1O,KAAK6hB,eAAiB,EACtB7hB,KAAKm1B,aAAe,CAClByW,UAAWxsC,GAAUA,EAAOwsC,WAAa,GACzCzM,yBAA0B//B,GAAUA,EAAO+/B,0BAA4B,iBACvE/J,oBAAqBh2B,IAAA,IAAUA,EAAOg2B,mBACtC0W,WAAY,CACV75B,MAAO7S,GAAUA,EAAO0sC,YAAc1sC,EAAO0sC,WAAW75B,OAAS,OACjEC,OAAQ9S,GAAUA,EAAO0sC,YAAc1sC,EAAO0sC,WAAW55B,QAAU,OACnEoN,EAAGlgB,GAAUA,EAAO0sC,YAAc1sC,EAAO0sC,WAAWxsB,GAAK,QACzDN,EAAG5f,GAAUA,EAAO0sC,YAAc1sC,EAAO0sC,WAAW9sB,GAAK,SAE3D+sB,gBAAiB3sC,QAAA,IAAUA,EAAO2sC,gBAAgC3sC,EAAO2sC,gBAE3E/rC,KAAKqY,WAAa,CAChB4J,MAAA,EACA+pB,UAAW,EACX7W,aAAcn1B,KAAKm1B,cAErBn1B,KAAKu7B,gBAAkB,GACvBv7B,KAAKo6B,SAAW,GAChBp6B,KAAK+xC,eAAiB,GACtB/xC,KAAKisC,WAAA,EACLjsC,KAAKgyC,OAAS,KACdhyC,KAAKmrC,YAAA,EACLnrC,KAAKqa,aAAe,OAnuFtB40B,cAAcvvC,UAAY,CACxByyC,eAAgB,aAChBvU,oBAAqB,aACrBC,wBAAyB,WAMvB,GAAI79B,KAAK4N,KAAKuwB,IAAM,EAAG,CACrBn+B,KAAKoyC,QAAU,GACf,IAAIjzC,EAAgBa,KAAKqY,WAAW62B,cAChC9vC,EAAemR,YAAYo+B,aAAaxvC,EAAckzC,OAAOpgC,MAAO9S,EAAckzC,OAAOngC,QAC7FlS,KAAKoyC,QAAQ1vC,KAAKtD,GAClB,IAAIK,EAAgB8Q,YAAYo+B,aAAaxvC,EAAckzC,OAAOpgC,MAAO9S,EAAckzC,OAAOngC,QAC9FlS,KAAKoyC,QAAQ1vC,KAAKjD,GAEdO,KAAK4N,KAAKuwB,IAAM,IAAMh4B,SAASmsC,UACjC/hC,YAAYq+B,gBAAA,CAIhB5uC,KAAKkvC,cAAgBlvC,KAAKqY,WAAW62B,cACrClvC,KAAKuyC,gBAAkBvyC,KAAKqY,WAAWk6B,gBACvCvyC,KAAKy+B,yBAA2B,IAAIqQ,UAAU9uC,KAAA,EAEhD++B,cAAe,aACfvF,aAAc,WACZ,IAAIr6B,EAAaa,KAAKqY,WAEtB,GAAIlZ,EAAWqzC,YAAcxyC,KAAK4N,KAAK6rB,GAAI,CACzCt6B,EAAWqzC,UAAYxyC,KAAK4N,KAAK6rB,GACjC,IAAIr6B,EAAiBq2B,aAAaz1B,KAAK4N,KAAK6rB,IAC5Ct6B,EAAW+vC,cAAcuD,yBAA2BrzC,CAAA,GAGxDo/B,2BAA4B,WAC1Bx+B,KAAK84B,YAAc,IAAIiW,cAAc/uC,KAAK4N,KAAM5N,KAAA,EAElD0yC,YAAa,WACN1yC,KAAKy0B,QAAYz0B,KAAKw0B,YAAax0B,KAAK00B,gBAC3C10B,KAAKy0B,QAAA,EAAS,EAGlBke,YAAa,WACP3yC,KAAKw0B,YAAcx0B,KAAK00B,gBAC1B10B,KAAKy0B,QAAA,EACLz0B,KAAKsiB,eAAA,EACLtiB,KAAK84B,YAAYxW,eAAA,EAAgB,EAGrCmuB,YAAa,SAAqBtxC,GAChCA,EAAcyzC,UAAU5yC,KAAKuyC,gBAAgBM,GAAI7yC,KAAKuyC,gBAAgB9jC,GAAIzO,KAAKuyC,gBAAgB1yB,EAAI7f,KAAKuyC,gBAAgBO,GAAI9yC,KAAKuyC,gBAAgB5wC,EAAI3B,KAAKuyC,gBAAgB5tB,GAAA,EAE5KouB,aAAc,WACZ,GAAI/yC,KAAK4N,KAAKuwB,IAAM,EAAG,CACrB,IACIh/B,EADSa,KAAKoyC,QAAQ,GACHjgC,WAAW,MAClCnS,KAAKywC,YAAYtxC,GAEjBA,EAAU6zC,UAAUhzC,KAAKkvC,cAAcmD,OAAQ,EAAG,GAGlDryC,KAAKizC,iBAAmBjzC,KAAKkvC,cAAcjB,eAC3CjuC,KAAKkvC,cAAcxoB,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GAC/C1mB,KAAKywC,YAAYzwC,KAAKkvC,eACtBlvC,KAAKkvC,cAAcxoB,aAAa1mB,KAAKizC,iBAAA,GAGzCC,UAAW,WACT,GAAIlzC,KAAK4N,KAAKuwB,IAAM,EAAG,CACrB,IAAIh/B,EAASa,KAAKoyC,QAAQ,GAItBhzC,EAAYD,EAAOgT,WAAW,MAclC,GAbAnS,KAAKywC,YAAYrxC,GACjBA,EAAU4zC,UAAUhzC,KAAKkvC,cAAcmD,OAAQ,EAAG,GAElDryC,KAAKkvC,cAAcxoB,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GAC/C1mB,KAAKywC,YAAYzwC,KAAKkvC,eACtBlvC,KAAKkvC,cAAcxoB,aAAa1mB,KAAKizC,kBAE1BjzC,KAAK4hB,KAAK4Z,eAAe,OAAQx7B,KAAK4N,KAAO5N,KAAK4N,KAAK4/B,GAAKxtC,KAAK4N,KAAKutB,IAAM,GAClFxgB,aAAA,GAEL3a,KAAKkvC,cAAcxoB,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GAG3C1mB,KAAK4N,KAAKuwB,IAAM,IAAMh4B,SAASmsC,SAAU,CAG3C,IAAI7yC,EAAa8Q,YAAYs+B,cAAc7uC,KAAKkvC,cAAcmD,QAC1C5yC,EAAW0S,WAAW,MAC5B6gC,UAAUhzC,KAAKkvC,cAAcmD,OAAQ,EAAG,GACtDryC,KAAKywC,YAAYzwC,KAAKkvC,eAEtBlvC,KAAKkvC,cAAc8D,UAAUvzC,EAAY,EAAG,GAG9CO,KAAKkvC,cAAcuD,yBAA2BhD,cAAczvC,KAAK4N,KAAKuwB,IACtEn+B,KAAKkvC,cAAc8D,UAAU7zC,EAAQ,EAAG,GAGxCa,KAAKkvC,cAAcuD,yBAA2B,mBAC9CzyC,KAAKkvC,cAAc8D,UAAUhzC,KAAKoyC,QAAQ,GAAI,EAAG,GACjDpyC,KAAKkvC,cAAcxoB,aAAa1mB,KAAKizC,kBAErCjzC,KAAKkvC,cAAcuD,yBAA2B,gBAGlD93B,YAAa,SAAqBxb,GAChC,IAAIa,KAAKy0B,SAAUz0B,KAAK4N,KAAKywB,KAIR,IAAjBr+B,KAAK4N,KAAKqwB,IAAa9+B,GAA3B,CAIAa,KAAKi8B,kBACLj8B,KAAKq1B,mBACLr1B,KAAKw5B,eACL,IAAIp6B,EAAkC,IAAjBY,KAAK4N,KAAKa,GAC/BzO,KAAK+yC,eACL/yC,KAAKqY,WAAWrB,SAASu4B,KAAKnwC,GAC9BY,KAAKqY,WAAWrB,SAASm8B,aAAanzC,KAAKi1B,eAAe8G,IAAItW,OAC9DzlB,KAAKqY,WAAWrB,SAASo8B,WAAWpzC,KAAKi1B,eAAeC,MAAM9zB,EAAEoC,GAChExD,KAAKg/B,qBACLh/B,KAAKqY,WAAWrB,SAASq8B,QAAQj0C,GACjCY,KAAKkzC,YAEDlzC,KAAK84B,YAAYkW,UACnBhvC,KAAKqY,WAAWrB,SAASq8B,SAAA,GAGvBrzC,KAAKsiB,gBACPtiB,KAAKsiB,eAAA,EAAgB,GAGzBxO,QAAS,WACP9T,KAAKkvC,cAAgB,KACrBlvC,KAAK4N,KAAO,KACZ5N,KAAKqY,WAAa,KAClBrY,KAAK84B,YAAYhlB,SAAA,EAEnBsoB,QAAS,IAAI7W,QAEf0pB,cAAcvvC,UAAU4c,KAAO2yB,cAAcvvC,UAAUgzC,YACvDzD,cAAcvvC,UAAU6c,KAAO0yB,cAAcvvC,UAAUizC,YAgCvDjD,YAAYhwC,UAAU8pB,cAAgBsW,aAAapgC,UAAU8pB,cAc7DnjB,gBAAgB,CAACkwB,YAAakB,iBAAkBwX,cAAetR,cAAeN,iBAAkB7G,aAAclC,mBAAoBub,gBAClIA,eAAenwC,UAAU89B,YAAcF,qBAAqB59B,UAAU89B,YACtEqS,eAAenwC,UAAU4zC,gBAAkB,CACzCtF,QAAS,EACTlS,QAAA,GAEF+T,eAAenwC,UAAU6zC,aAAe,GAExC1D,eAAenwC,UAAUq/B,cAAgB,WACvC/+B,KAAK8kC,aAAa9kC,KAAKm5B,WAAYn5B,KAAKo5B,UAAWp5B,KAAKyhC,cAAA,EAAoB,KAG9EoO,eAAenwC,UAAUulC,mBAAqB,SAAU9lC,EAAMC,GAC5D,IAAIK,EAAY,CACdmO,KAAMzO,EACN+L,KAAM/L,EAAKsP,GACX+kC,cAAexzC,KAAK8vC,kBAAkB1B,qBAAqBhvC,GAC3DkvC,WAAY,GACZlU,SAAU,GACVtqB,QAAA,IAAQ3Q,EAAKk/B,IAEXh+B,EAAc,CAAC,EAsBnB,GApBgB,OAAZlB,EAAKsP,IAA2B,OAAZtP,EAAKsP,IAC3BpO,EAAY4N,EAAIqS,gBAAgBsC,QAAQ5iB,KAAMb,EAAK8O,EAAG,EAAG,IAAKjO,MAEzDK,EAAY4N,EAAEO,IACjB/O,EAAUg0C,GAAK,OAAStqC,QAAQ9I,EAAY4N,EAAEzK,EAAE,IAAM,IAAM2F,QAAQ9I,EAAY4N,EAAEzK,EAAE,IAAM,IAAM2F,QAAQ9I,EAAY4N,EAAEzK,EAAE,IAAM,MAE3G,OAAZrE,EAAKsP,IAA2B,OAAZtP,EAAKsP,KAClCpO,EAAYU,EAAIuf,gBAAgBsC,QAAQ5iB,KAAMb,EAAK4B,EAAG,EAAG,KAAMf,MAC/DK,EAAYjB,EAAIkhB,gBAAgBsC,QAAQ5iB,KAAMb,EAAKC,EAAG,EAAG,KAAMY,MAC/DK,EAAYsB,EAAI2e,gBAAgBsC,QAAQ5iB,KAAMb,EAAKwC,GAAK,CACtD6M,EAAG,GACF,EAAG,IAAMxO,MACZK,EAAYG,EAAI8f,gBAAgBsC,QAAQ5iB,KAAMb,EAAKqB,GAAK,CACtDgO,EAAG,GACF,EAAG1E,UAAW9J,MACjBK,EAAY4e,EAAI,IAAI8hB,iBAAiB/gC,KAAMb,EAAK8f,EAAGjf,OAGrDK,EAAYe,EAAIkf,gBAAgBsC,QAAQ5iB,KAAMb,EAAKiC,EAAG,EAAG,IAAMpB,MAE/C,OAAZb,EAAKsP,IAA2B,OAAZtP,EAAKsP,IAe3B,GAdAhP,EAAUyiC,GAAKtC,YAAYzgC,EAAK+iC,IAAM,GACtCziC,EAAUwxB,GAAK4O,aAAa1gC,EAAK8xB,IAAM,GAExB,GAAX9xB,EAAK8xB,KAEPxxB,EAAUsxB,GAAK5xB,EAAK4xB,IAGtB1wB,EAAYwf,EAAIS,gBAAgBsC,QAAQ5iB,KAAMb,EAAK0gB,EAAG,EAAG,KAAM7f,MAE1DK,EAAYwf,EAAErR,IACjB/O,EAAUi0C,GAAKrzC,EAAYwf,EAAErc,GAG3BrE,EAAKkP,EAAG,CACV,IAAI7N,EAAI,IAAI+/B,aAAavgC,KAAMb,EAAKkP,EAAG,SAAUrO,MACjDK,EAAYgO,EAAI7N,EAEXH,EAAYgO,EAAEG,IACjB/O,EAAUk0C,GAAKtzC,EAAYgO,EAAEqyB,UAC7BjhC,EAAcm0C,GAAIvzC,EAAYgO,EAAEsyB,WAAW,UAI/ClhC,EAAUA,EAAe,IAAXN,EAAKM,EAAU,UAAY,UAK3C,OAFAO,KAAK2iC,WAAWjgC,KAAKjD,GACrBY,EAAYgK,MAAQ5K,EACbY,CAAA,EAGTwvC,eAAenwC,UAAUylC,mBAAqB,WAK5C,MAJkB,CAChB/1B,GAAI,GACJqyB,aAAc,KAKlBoO,eAAenwC,UAAU0lC,uBAAyB,SAAUjmC,GAU1D,MATkB,CAChBynB,UAAW,CACTonB,QAAS,EACTlS,QAAA,EACAuS,IAAKruC,KAAK8vC,kBAAkBrB,YAC5Bh/B,GAAI6Q,gBAAgBsC,QAAQ5iB,KAAMb,EAAKiC,EAAG,EAAG,IAAMpB,MACnDkwB,OAAQ1F,yBAAyBgB,qBAAqBxrB,KAAMb,EAAMa,OAAA,EAMxE6vC,eAAenwC,UAAU2lC,mBAAqB,SAAUlmC,GACtD,IAAIC,EAAc,IAAIswC,YAAY1vC,KAAMb,EAAMa,KAAK2iC,WAAY3iC,KAAK8vC,mBAGpE,OAFA9vC,KAAK4O,OAAOlM,KAAKtD,GACjBY,KAAKo/B,oBAAoBhgC,GAClBA,CAAA,EAGTywC,eAAenwC,UAAUuwB,aAAe,WAEtC,IAAI9wB,EADJa,KAAKsiB,eAAA,EAEL,IAAIljB,EAAMY,KAAKo5B,UAAU74B,OAEzB,IAAKpB,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EACxBa,KAAKyhC,aAAatiC,GAAKa,KAAKo5B,UAAUj6B,GAMxC,IAHAa,KAAK8kC,aAAa9kC,KAAKm5B,WAAYn5B,KAAKo5B,UAAWp5B,KAAKyhC,cAAA,EAAoB,IAC5EriC,EAAMY,KAAK8iB,kBAAkBviB,OAExBpB,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EACxBa,KAAK8iB,kBAAkB3jB,GAAGujB,WAG5B1iB,KAAKw/B,kBACLx/B,KAAK8vC,kBAAkBtB,iBAAiBxuC,KAAKsiB,cAAA,EAG/CutB,eAAenwC,UAAUm0C,wBAA0B,SAAU10C,GAC3D,IAAIC,EACAK,EAAMO,KAAK2iC,WAAWpiC,OAE1B,IAAKnB,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EACnBY,KAAK2iC,WAAWvjC,GAAG0Q,QACtB9P,KAAK2iC,WAAWvjC,GAAGkvC,WAAW5rC,KAAKvD,EAAA,EAKzC0wC,eAAenwC,UAAUo0C,6BAA+B,WACtD,IAAI30C,EACAC,EAAMY,KAAK2iC,WAAWpiC,OAE1B,IAAKpB,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EACnBa,KAAK2iC,WAAWxjC,GAAG2Q,QACtB9P,KAAK2iC,WAAWxjC,GAAGmvC,WAAW7rC,KAAA,EAKpCotC,eAAenwC,UAAUq0C,YAAc,SAAU50C,GAC/C,IAAIC,EACAK,EAAMN,EAAOoB,OAEjB,IAAKnB,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EACxBD,EAAOC,GAAG0Q,QAAA,CAAS,EAIvB+/B,eAAenwC,UAAUolC,aAAe,SAAU3lC,EAAKC,EAAWK,EAAcY,EAAcG,GAC5F,IAAIO,EAEAC,EACAI,EAGAO,EACAiC,EACAC,EAPAgL,EAAM1P,EAAIoB,OAAS,EAGnB0N,EAAY,GACZC,EAAe,GAIfG,EAAgB,GAAGlL,OAAO3C,GAE9B,IAAKO,EAAI8N,EAAK9N,GAAK,EAAGA,GAAK,EAAG,CAS5B,IARAY,EAAe3B,KAAKy/B,uBAAuBtgC,EAAI4B,KAK7C3B,EAAU2B,GAAKtB,EAAakC,EAAe,GAF3CxC,EAAI4B,GAAGizC,cAAgB3zC,EAKP,OAAdlB,EAAI4B,GAAG0N,IAA6B,OAAdtP,EAAI4B,GAAG0N,IAA6B,OAAdtP,EAAI4B,GAAG0N,IAA6B,OAAdtP,EAAI4B,GAAG0N,GACtE9M,EAGHvC,EAAU2B,GAAGsJ,MAAMyF,QAAA,EAFnB1Q,EAAU2B,GAAKf,KAAKilC,mBAAmB9lC,EAAI4B,GAAIsN,GAKjDJ,EAAUvL,KAAKtD,EAAU2B,GAAGsJ,YACvB,GAAkB,OAAdlL,EAAI4B,GAAG0N,GAAa,CAC7B,GAAK9M,EAKH,IAFAP,EAAOhC,EAAU2B,GAAGqO,GAAG7O,OAElBS,EAAI,EAAGA,EAAII,EAAMJ,GAAK,EACzB5B,EAAU2B,GAAG0gC,aAAazgC,GAAK5B,EAAU2B,GAAGqO,GAAGpO,QALjD5B,EAAU2B,GAAKf,KAAKmlC,mBAAmBhmC,EAAI4B,IAS7Cf,KAAK8kC,aAAa3lC,EAAI4B,GAAGqO,GAAIhQ,EAAU2B,GAAGqO,GAAIhQ,EAAU2B,GAAG0gC,aAAcphC,EAAcgO,EAAA,KAChE,OAAdlP,EAAI4B,GAAG0N,IACX9M,IACHkC,EAAmB7D,KAAKolC,uBAAuBjmC,EAAI4B,IACnD3B,EAAU2B,GAAK8C,GAGjBwK,EAAc3L,KAAKtD,EAAU2B,IAC7Bf,KAAK6zC,wBAAwBz0C,EAAU2B,KAChB,OAAd5B,EAAI4B,GAAG0N,IAA6B,OAAdtP,EAAI4B,GAAG0N,IAA6B,OAAdtP,EAAI4B,GAAG0N,IAA6B,OAAdtP,EAAI4B,GAAG0N,GAC7E9M,IACHvC,EAAU2B,GAAKf,KAAKqlC,mBAAmBlmC,EAAI4B,KAEtB,OAAd5B,EAAI4B,GAAG0N,IAA6B,OAAdtP,EAAI4B,GAAG0N,IAA6B,OAAdtP,EAAI4B,GAAG0N,IAA6B,OAAdtP,EAAI4B,GAAG0N,IAA6B,OAAdtP,EAAI4B,GAAG0N,IACnG9M,GAMHiC,EAAWxE,EAAU2B,IACZ+O,QAAA,IANTlM,EAAWmlB,eAAeE,YAAY9pB,EAAI4B,GAAG0N,KACpCgb,KAAKzpB,KAAMb,EAAI4B,IACxB3B,EAAU2B,GAAK6C,EACf5D,KAAKq/B,eAAe38B,KAAKkB,IAM3BsK,EAAaxL,KAAKkB,IACK,OAAdzE,EAAI4B,GAAG0N,KACX9M,GAOHiC,EAAWxE,EAAU2B,IACZ+O,QAAA,GAPTlM,EAAWmlB,eAAeE,YAAY9pB,EAAI4B,GAAG0N,IAC7CrP,EAAU2B,GAAK6C,EACfA,EAAS6lB,KAAKzpB,KAAMb,EAAK4B,EAAG3B,GAC5BY,KAAKq/B,eAAe38B,KAAKkB,GACzBvD,GAAA,GAMF6N,EAAaxL,KAAKkB,IAGpB5D,KAAK2/B,oBAAoBxgC,EAAI4B,GAAIA,EAAI,GAOvC,IAJAf,KAAK8zC,+BACL9zC,KAAK+zC,YAAY9lC,GACjBY,EAAMX,EAAa3N,OAEdQ,EAAI,EAAGA,EAAI8N,EAAK9N,GAAK,EACxBmN,EAAanN,GAAG+O,QAAA,CAAS,EAI7B+/B,eAAenwC,UAAUs/B,mBAAqB,WAC5Ch/B,KAAKszC,gBAAgBtF,QAAU,EAC/BhuC,KAAKszC,gBAAgBxX,QAAA,EACrB97B,KAAKw/B,kBACLx/B,KAAK8vC,kBAAkBtB,iBAAiBxuC,KAAKsiB,eAC7CtiB,KAAKwlC,YAAYxlC,KAAKszC,gBAAiBtzC,KAAKm5B,WAAYn5B,KAAKo5B,WAAA,EAAW,EAG1EyW,eAAenwC,UAAUu0C,qBAAuB,SAAU90C,EAAiBC,IACrED,EAAgB28B,QAAU18B,EAAeqQ,GAAGwS,MAAQjiB,KAAKsiB,iBAC3DljB,EAAe4uC,QAAU7uC,EAAgB6uC,QACzC5uC,EAAe4uC,SAAW5uC,EAAeqQ,GAAGjM,EAC5CpE,EAAe08B,QAAA,EAAS,EAI5B+T,eAAenwC,UAAUw0C,UAAY,WACnC,IAAI/0C,EAEAC,EACAK,EACAY,EACAG,EACAO,EACAC,EAGAI,EACAO,EAVAiC,EAAM5D,KAAK2iC,WAAWpiC,OAOtBsD,EAAW7D,KAAKqY,WAAWrB,SAC3BnI,EAAM7O,KAAKqY,WAAW62B,cAI1B,IAAK/vC,EAAI,EAAGA,EAAIyE,EAAKzE,GAAK,EAQxB,IAAgB,QANhBiC,GADAO,EAAe3B,KAAK2iC,WAAWxjC,IACX+L,OAMa,OAAT9J,GAAsC,IAApBO,EAAa+xC,KAAa/xC,EAAaiM,KAAKomC,eAAuC,IAAtBryC,EAAawyC,MAAqD,IAAvCn0C,KAAKqY,WAAWw4B,mBAA2B,CAuB3K,IAtBAhtC,EAAS0rC,OACTxuC,EAAQY,EAAay4B,SAER,OAATh5B,GAA0B,OAATA,GACnByN,EAAIulC,YAAuB,OAAThzC,EAAgBO,EAAa8xC,GAAK9xC,EAAa0yC,IACjExlC,EAAIylC,UAAY3yC,EAAa+xC,GAC7B7kC,EAAI0lC,QAAU5yC,EAAaugC,GAC3BrzB,EAAImiB,SAAWrvB,EAAasvB,GAC5BpiB,EAAIiiB,WAAanvB,EAAaovB,IAAM,GAEpCliB,EAAIuD,UAAqB,OAAThR,EAAgBO,EAAa8xC,GAAK9xC,EAAa0yC,IAGjExwC,EAASuvC,WAAWzxC,EAAawyC,MAEpB,OAAT/yC,GAA0B,OAATA,GACnByN,EAAIsgC,YAGNtrC,EAASsvC,aAAaxxC,EAAa6xC,cAAcve,eAAexP,OAChEhmB,EAAOsB,EAAMR,OAERnB,EAAI,EAAGA,EAAIK,EAAML,GAAK,EAAG,CAa5B,IAZa,OAATgC,GAA0B,OAATA,IACnByN,EAAIsgC,YAEAxtC,EAAagyC,KACf9kC,EAAI2lC,YAAY7yC,EAAagyC,IAC7B9kC,EAAI4lC,eAAiB9yC,EAAiBiyC,KAK1CpzC,GADAQ,EAAQD,EAAM3B,GAAGwwC,SACJrvC,OAERF,EAAI,EAAGA,EAAIG,EAAMH,GAAK,EACN,MAAfW,EAAMX,GAAGlB,EACX0P,EAAIugC,OAAOpuC,EAAMX,GAAGwD,EAAE,GAAI7C,EAAMX,GAAGwD,EAAE,IACb,MAAf7C,EAAMX,GAAGlB,EAClB0P,EAAIygC,cAActuC,EAAMX,GAAGq0C,IAAI,GAAI1zC,EAAMX,GAAGq0C,IAAI,GAAI1zC,EAAMX,GAAGq0C,IAAI,GAAI1zC,EAAMX,GAAGq0C,IAAI,GAAI1zC,EAAMX,GAAGq0C,IAAI,GAAI1zC,EAAMX,GAAGq0C,IAAI,IAEpH7lC,EAAI8lC,YAIK,OAATvzC,GAA0B,OAATA,IACnByN,EAAImhC,SAEAruC,EAAagyC,IACf9kC,EAAI2lC,YAAYx0C,KAAKuzC,cAAA,CAKd,OAATnyC,GAA0B,OAATA,GACnByN,EAAIohC,KAAKtuC,EAAalC,GAGxBoE,EAASwvC,SAAA,GAKfxD,eAAenwC,UAAU8lC,YAAc,SAAUrmC,EAAiBC,EAAOK,EAAMY,GAC7E,IAAIG,EAEAO,EAGJ,IAFAA,EAAiB5B,EAEZqB,EAJKpB,EAAMmB,OAAS,EAIXC,GAAK,EAAGA,GAAK,EACL,OAAhBpB,EAAMoB,GAAGiO,IACX1N,EAAiBtB,EAAKe,GAAGomB,UACzB5mB,KAAKi0C,qBAAqB90C,EAAiB4B,IAClB,OAAhB3B,EAAMoB,GAAGiO,IAA+B,OAAhBrP,EAAMoB,GAAGiO,IAA+B,OAAhBrP,EAAMoB,GAAGiO,IAA+B,OAAhBrP,EAAMoB,GAAGiO,GAC1FzO,KAAK40C,WAAWx1C,EAAMoB,GAAIf,EAAKe,IACN,OAAhBpB,EAAMoB,GAAGiO,GAClBzO,KAAK60C,WAAWz1C,EAAMoB,GAAIf,EAAKe,GAAIO,GACV,OAAhB3B,EAAMoB,GAAGiO,GAClBzO,KAAK80C,aAAa11C,EAAMoB,GAAIf,EAAKe,GAAIO,GACZ,OAAhB3B,EAAMoB,GAAGiO,IAA+B,OAAhBrP,EAAMoB,GAAGiO,GAC1CzO,KAAK+0C,mBAAmB31C,EAAMoB,GAAIf,EAAKe,GAAIO,GAClB,OAAhB3B,EAAMoB,GAAGiO,GAClBzO,KAAKwlC,YAAYzkC,EAAgB3B,EAAMoB,GAAG4O,GAAI3P,EAAKe,GAAG4O,IAC7ChQ,EAAMoB,GAAGiO,GAIlBpO,GACFL,KAAKk0C,WAAA,EAITrE,eAAenwC,UAAUs1C,kBAAoB,SAAU71C,EAAaC,GAClE,GAAIY,KAAKsiB,eAAiBljB,EAAM6iB,MAAQ9iB,EAAYmvC,WAAWrsB,KAAM,CACnE,IAEIxiB,EACAY,EACAG,EAJAO,EAAa5B,EAAYywC,QACzB5uC,EAAQ5B,EAAMmlB,MAIdnjB,EAAOJ,EAAMoe,QACjBre,EAAWR,OAAS,EACpB,IAAIoB,EAAoBxC,EAAYmvC,WAAWrZ,eAE/C,IAAKz0B,EAAI,EAAGA,EAAIY,EAAMZ,GAAK,EAAG,CAC5B,IAAIoD,EAAY5C,EAAM4N,OAAOpO,GAE7B,GAAIoD,GAAaA,EAAUJ,EAAG,CAG5B,IAFAnD,EAAMuD,EAAUwb,QAEX3f,EAAI,EAAGA,EAAIY,EAAKZ,GAAK,EACd,IAANA,GACFsB,EAAW2B,KAAK,CACdvD,EAAG,IACH0E,EAAGlC,EAAkBskB,kBAAkBriB,EAAUJ,EAAE,GAAG,GAAII,EAAUJ,EAAE,GAAG,GAAI,KAIjFzC,EAAW2B,KAAK,CACdvD,EAAG,IACHu1C,IAAK/yC,EAAkBslB,oBAAoBrjB,EAAUxC,EAAE3B,EAAI,GAAImE,EAAUvD,EAAEZ,GAAImE,EAAUJ,EAAE/D,MAInF,IAARY,GACFU,EAAW2B,KAAK,CACdvD,EAAG,IACH0E,EAAGlC,EAAkBskB,kBAAkBriB,EAAUJ,EAAE,GAAG,GAAII,EAAUJ,EAAE,GAAG,GAAI,KAI7EI,EAAUqK,GAAK5N,IACjBU,EAAW2B,KAAK,CACdvD,EAAG,IACHu1C,IAAK/yC,EAAkBslB,oBAAoBrjB,EAAUxC,EAAE3B,EAAI,GAAImE,EAAUvD,EAAE,GAAIuD,EAAUJ,EAAE,MAE7FzC,EAAW2B,KAAK,CACdvD,EAAG,QAMXA,EAAYywC,QAAU7uC,CAAA,GAI1B8uC,eAAenwC,UAAUk1C,WAAa,SAAUz1C,EAAUC,GACxD,IAAI,IAAAD,EAASk/B,IAAel/B,EAAS60C,cAAe,CAClD,IAAIv0C,EACAY,EAAMjB,EAASuwC,aAAapvC,OAEhC,IAAKd,EAAI,EAAGA,EAAIY,EAAKZ,GAAK,EACxBO,KAAKg1C,kBAAkB51C,EAASuwC,aAAalwC,GAAIL,EAASiiB,GAAA,GAKhEwuB,eAAenwC,UAAUm1C,WAAa,SAAU11C,EAAWC,EAAUK,GACnE,IAAIY,EAAYjB,EAASiL,OAErBjL,EAAS6O,EAAEgU,MAAQjiB,KAAKsiB,iBAC1BjiB,EAAUozC,GAAK,OAAStqC,QAAQ/J,EAAS6O,EAAEzK,EAAE,IAAM,IAAM2F,QAAQ/J,EAAS6O,EAAEzK,EAAE,IAAM,IAAM2F,QAAQ/J,EAAS6O,EAAEzK,EAAE,IAAM,MAGnHpE,EAASgC,EAAE6gB,MAAQxiB,EAAeq8B,QAAU97B,KAAKsiB,iBACnDjiB,EAAU8zC,KAAO/0C,EAASgC,EAAEoC,EAAI/D,EAAeuuC,QAAA,EAInD6B,eAAenwC,UAAUq1C,mBAAqB,SAAU51C,EAAWC,EAAUK,GAC3E,IACIY,EADAG,EAAYpB,EAASiL,MAGzB,IAAK7J,EAAU6zC,KAAOj1C,EAAS6f,EAAEgD,MAAQ7iB,EAAS2B,EAAEkhB,MAAQ7iB,EAASA,EAAE6iB,MAAwB,IAAhB9iB,EAAUA,IAAYC,EAASuC,EAAEsgB,MAAQ7iB,EAASoB,EAAEyhB,MAAO,CACxI,IAuBIlhB,EAvBAC,EAAMhB,KAAKqY,WAAW62B,cACtB9tC,EAAMhC,EAAS2B,EAAEyC,EACjB7B,EAAMvC,EAASA,EAAEoE,EAErB,GAAoB,IAAhBrE,EAAUA,EACZkB,EAAMW,EAAIi0C,qBAAqB7zC,EAAI,GAAIA,EAAI,GAAIO,EAAI,GAAIA,EAAI,QACtD,CACL,IAAIiC,EAAMmF,KAAKG,KAAKH,KAAKC,IAAI5H,EAAI,GAAKO,EAAI,GAAI,GAAKoH,KAAKC,IAAI5H,EAAI,GAAKO,EAAI,GAAI,IACzEkC,EAAMkF,KAAKuY,MAAM3f,EAAI,GAAKP,EAAI,GAAIO,EAAI,GAAKP,EAAI,IAC/CyN,EAAUzP,EAASuC,EAAE6B,EAErBqL,GAAW,EACbA,EAAU,IACDA,IAAY,IACrBA,GAAW,KAGb,IAAIZ,EAAOrK,EAAMiL,EACbX,EAAInF,KAAK4Y,IAAI9d,EAAMzE,EAASoB,EAAEgD,GAAKyK,EAAO7M,EAAI,GAC9CiN,EAAItF,KAAK0Y,IAAI5d,EAAMzE,EAASoB,EAAEgD,GAAKyK,EAAO7M,EAAI,GAClDf,EAAMW,EAAIk0C,qBAAqBhnC,EAAGG,EAAG,EAAGjN,EAAI,GAAIA,EAAI,GAAIwC,EAAA,CAI1D,IAAI+O,EAAMxT,EAAU8f,EAAEpb,EAClBmb,EAAU5f,EAAS6f,EAAEhR,EACrBgR,EAAU,EAEd,IAAKle,EAAI,EAAGA,EAAI4R,EAAK5R,GAAK,EACpB3B,EAAS6f,EAAEmiB,aAAehiC,EAAS6f,EAAEiiB,eACvCjiB,EAAU7f,EAAS6f,EAAE7d,EAAM,EAAJL,EAAQ,IAGjCV,EAAI80C,aAAan2B,EAAY,EAAJje,GAAS,IAAK,QAAUie,EAAY,EAAJje,EAAQ,GAAK,IAAMie,EAAY,EAAJje,EAAQ,GAAK,IAAMie,EAAY,EAAJje,EAAQ,GAAK,IAAMke,EAAU,KAG9Ize,EAAU6zC,IAAMh0C,CAAA,CAGlBG,EAAU2zC,KAAO/0C,EAASgC,EAAEoC,EAAI/D,EAAeuuC,OAAA,EAGjD6B,eAAenwC,UAAUo1C,aAAe,SAAU31C,EAAWC,EAAUK,GACrE,IAAIY,EAAYjB,EAASiL,MACrB7J,EAAIpB,EAASiP,EAEb7N,IAAMA,EAAEyhB,MAAQjiB,KAAKsiB,iBACvBjiB,EAAUszC,GAAKnzC,EAAEkgC,UACjBrgC,EAAcuzC,GAAIpzC,EAAEmgC,WAAW,KAG7BvhC,EAAS6O,EAAEgU,MAAQjiB,KAAKsiB,iBAC1BjiB,EAAUozC,GAAK,OAAStqC,QAAQ/J,EAAS6O,EAAEzK,EAAE,IAAM,IAAM2F,QAAQ/J,EAAS6O,EAAEzK,EAAE,IAAM,IAAM2F,QAAQ/J,EAAS6O,EAAEzK,EAAE,IAAM,MAGnHpE,EAASgC,EAAE6gB,MAAQxiB,EAAeq8B,QAAU97B,KAAKsiB,iBACnDjiB,EAAU8zC,KAAO/0C,EAASgC,EAAEoC,EAAI/D,EAAeuuC,UAG7C5uC,EAASygB,EAAEoC,MAAQjiB,KAAKsiB,iBAC1BjiB,EAAUqzC,GAAKt0C,EAASygB,EAAErc,EAAA,EAI9BqsC,eAAenwC,UAAUoU,QAAU,WACjC9T,KAAKm5B,WAAa,KAClBn5B,KAAKqY,WAAa,KAClBrY,KAAKkvC,cAAgB,KACrBlvC,KAAK2iC,WAAWpiC,OAAS,EACzBP,KAAKo5B,UAAU74B,OAAS,GAuB1B8F,gBAAgB,CAACkwB,YAAakB,iBAAkBwX,cAAe5R,iBAAkB7G,aAAclC,kBAAmBoU,cAAeqH,eACjIA,cAAcrwC,UAAU01C,QAAUlvC,UAAU,UAAUiM,WAAW,MAEjE49B,cAAcrwC,UAAU4qC,aAAe,WACrC,IAAInrC,EAAea,KAAK4nC,aAAatE,YACrCtjC,KAAKwoC,gBAAkBpgC,iBAAiBjJ,EAAayE,EAAIzE,EAAayE,EAAErD,OAAS,GACjF,IAAInB,GAAA,EAEAD,EAAa6jC,IACf5jC,GAAA,EACAY,KAAKmwC,OAAOF,KAAOjwC,KAAKyqC,WAAWtrC,EAAa6jC,KAEhDhjC,KAAKmwC,OAAOF,KAAO,gBAGrBjwC,KAAKiwC,KAAO7wC,EACZ,IAAIK,GAAA,EAEAN,EAAa4jC,KACftjC,GAAA,EACAO,KAAKmwC,OAAOH,OAAShwC,KAAKyqC,WAAWtrC,EAAa4jC,IAClD/iC,KAAKmwC,OAAOC,OAASjxC,EAAa2jC,IAGpC,IACIziC,EACAG,EAOAO,EACAC,EACAI,EACAO,EACAiC,EACAC,EACAgL,EACAZ,EACAC,EACAG,EAlBAsE,EAAW3S,KAAKqY,WAAWiB,YAAY4a,cAAc/0B,EAAa0P,GAGlEmQ,EAAU7f,EAAayE,EACvBqb,EAAejf,KAAKo8B,QACxBp8B,KAAKgwC,OAASvwC,EACdO,KAAKmwC,OAAOE,OAASlxC,EAAaklC,UAAY,MAAQrkC,KAAKqY,WAAWiB,YAAY4a,cAAc/0B,EAAa0P,GAAGijB,QAChHtxB,EAAMrB,EAAamlC,UAAU/jC,OAY7B,IAAIiD,EAAcxD,KAAK4N,KAAKg/B,YACxB1tB,EAAmC,KAAlB/f,EAAauvB,GAAavvB,EAAaklC,UACxD/kB,EAAO,EACPC,EAAO,EACPC,GAAA,EACAC,EAAM,EAEV,IAAKpf,EAAI,EAAGA,EAAIG,EAAKH,GAAK,EAAG,CAE3BW,GADAD,EAAWf,KAAKqY,WAAWiB,YAAYwa,YAAY30B,EAAamlC,UAAUjkC,GAAIsS,EAAS2b,OAAQtuB,KAAKqY,WAAWiB,YAAY4a,cAAc/0B,EAAa0P,GAAGijB,WACjI/wB,EAAS6M,MAAQ,CAAC,EAC1CqR,EAAawF,QAETjhB,GAAewb,EAAQ3e,GAAGW,IAC5Bse,GAAQJ,EACRK,GAAQpgB,EAAailC,QACrB7kB,GAAQC,EAAY,EAAI,EACxBA,GAAA,GAIF3Q,GADAjL,EAAS5C,EAAU4N,OAAS5N,EAAU4N,OAAO,GAAGQ,GAAK,IACvC7O,OACd0e,EAAawH,MAAMtnB,EAAaklC,UAAY,IAAKllC,EAAaklC,UAAY,KAEtE7gC,GACFxD,KAAKwqC,4BAA4BrrC,EAAc8f,EAAcD,EAAQ3e,GAAG8lC,KAAM7mB,EAAMC,GAGtFrR,EAAW9F,iBAAiByG,EAAO,GACnC,IAAI6Q,EAAkB,EAEtB,IAAK7b,EAAI,EAAGA,EAAIgL,EAAMhL,GAAK,EACzB,GAAqB,OAAjBD,EAAOC,GAAG4K,GAAa,CAKzB,IAJA9M,EAAOiC,EAAOC,GAAGsL,GAAGX,EAAEnO,EAAEE,OACxB0N,EAAYrK,EAAOC,GAAGsL,GAAGX,EACzBH,EAAU,GAELjN,EAAI,EAAGA,EAAIO,EAAMP,GAAK,EACf,IAANA,GACFiN,EAAQ3L,KAAKuc,EAAa6H,SAAS7Y,EAAUzK,EAAE,GAAG,GAAIyK,EAAUzK,EAAE,GAAG,GAAI,GAAIyb,EAAa8H,SAAS9Y,EAAUzK,EAAE,GAAG,GAAIyK,EAAUzK,EAAE,GAAG,GAAI,IAG3I6K,EAAQ3L,KAAKuc,EAAa6H,SAAS7Y,EAAU7M,EAAEA,EAAI,GAAG,GAAI6M,EAAU7M,EAAEA,EAAI,GAAG,GAAI,GAAI6d,EAAa8H,SAAS9Y,EAAU7M,EAAEA,EAAI,GAAG,GAAI6M,EAAU7M,EAAEA,EAAI,GAAG,GAAI,GAAI6d,EAAa6H,SAAS7Y,EAAU5N,EAAEe,GAAG,GAAI6M,EAAU5N,EAAEe,GAAG,GAAI,GAAI6d,EAAa8H,SAAS9Y,EAAU5N,EAAEe,GAAG,GAAI6M,EAAU5N,EAAEe,GAAG,GAAI,GAAI6d,EAAa6H,SAAS7Y,EAAUzK,EAAEpC,GAAG,GAAI6M,EAAUzK,EAAEpC,GAAG,GAAI,GAAI6d,EAAa8H,SAAS9Y,EAAUzK,EAAEpC,GAAG,GAAI6M,EAAUzK,EAAEpC,GAAG,GAAI,IAG3ZiN,EAAQ3L,KAAKuc,EAAa6H,SAAS7Y,EAAU7M,EAAEA,EAAI,GAAG,GAAI6M,EAAU7M,EAAEA,EAAI,GAAG,GAAI,GAAI6d,EAAa8H,SAAS9Y,EAAU7M,EAAEA,EAAI,GAAG,GAAI6M,EAAU7M,EAAEA,EAAI,GAAG,GAAI,GAAI6d,EAAa6H,SAAS7Y,EAAU5N,EAAE,GAAG,GAAI4N,EAAU5N,EAAE,GAAG,GAAI,GAAI4e,EAAa8H,SAAS9Y,EAAU5N,EAAE,GAAG,GAAI4N,EAAU5N,EAAE,GAAG,GAAI,GAAI4e,EAAa6H,SAAS7Y,EAAUzK,EAAE,GAAG,GAAIyK,EAAUzK,EAAE,GAAG,GAAI,GAAIyb,EAAa8H,SAAS9Y,EAAUzK,EAAE,GAAG,GAAIyK,EAAUzK,EAAE,GAAG,GAAI,IACzZ0K,EAASwR,GAAmBrR,EAC5BqR,GAAmB,EAInBlc,IACF8b,GAAQN,EAAQ3e,GAAGuD,EACnB0b,GAAQJ,GAGNlf,KAAK6qC,UAAUprB,GACjBzf,KAAK6qC,UAAUprB,GAAK7C,KAAO1O,EAE3BlO,KAAK6qC,UAAUprB,GAAO,CACpB7C,KAAM1O,GAIVuR,GAAO,IAIXswB,cAAcrwC,UAAUs/B,mBAAqB,WAC3C,IAUI7/B,EACAC,EACAK,EACAY,EACAG,EACAO,EAfAC,EAAMhB,KAAKkvC,cACfluC,EAAIkxB,KAAOlyB,KAAKmwC,OAAOE,OACvBrvC,EAAIuzC,QAAU,OACdvzC,EAAIgwB,SAAW,QACfhwB,EAAI8vB,WAAa,EAEZ9wB,KAAK4N,KAAKg/B,aACb5sC,KAAKoqC,aAAaxB,YAAY5oC,KAAK4nC,aAAatE,YAAatjC,KAAKyoC,oBASpE,IAGIrnC,EAHAO,EAAkB3B,KAAKoqC,aAAa5B,gBACpC5kC,EAAU5D,KAAK4nC,aAAatE,YAAY1/B,EAC5CxE,EAAMwE,EAAQrD,OAEd,IAGIsD,EACAgL,EAJAZ,EAAW,KACXC,EAAa,KACbG,EAAc,KAIlB,IAAKlP,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EACxB,IAAKyE,EAAQzE,GAAG6B,EAAG,CASjB,IARAI,EAAiBO,EAAgBxC,MAG/Ba,KAAKqY,WAAWrB,SAASu4B,OACzBvvC,KAAKqY,WAAWrB,SAASm8B,aAAa/xC,EAAeyC,GACrD7D,KAAKqY,WAAWrB,SAASo8B,WAAWhyC,EAAeA,IAGjDpB,KAAKiwC,KAAM,CAeb,IAdI7uC,GAAkBA,EAAe4hC,GAC/B/0B,IAAa7M,EAAe4hC,KAC9B/0B,EAAW7M,EAAe4hC,GAC1BhiC,EAAIoR,UAAYhR,EAAe4hC,IAExB/0B,IAAajO,KAAKmwC,OAAOF,OAClChiC,EAAWjO,KAAKmwC,OAAOF,KACvBjvC,EAAIoR,UAAYpS,KAAKmwC,OAAOF,MAI9B5vC,GADAwD,EAAW7D,KAAK6qC,UAAU1rC,GAAGyd,MACbrc,OAChBP,KAAKqY,WAAW62B,cAAcC,YAEzB1vC,EAAI,EAAGA,EAAIY,EAAMZ,GAAK,EAKzB,IAHAsB,GADA8N,EAAUhL,EAASpE,IACJc,OACfP,KAAKqY,WAAW62B,cAAcE,OAAOvgC,EAAQ,GAAIA,EAAQ,IAEpDrO,EAAI,EAAGA,EAAIO,EAAMP,GAAK,EACzBR,KAAKqY,WAAW62B,cAAcI,cAAczgC,EAAQrO,GAAIqO,EAAQrO,EAAI,GAAIqO,EAAQrO,EAAI,GAAIqO,EAAQrO,EAAI,GAAIqO,EAAQrO,EAAI,GAAIqO,EAAQrO,EAAI,IAIxIR,KAAKqY,WAAW62B,cAAcyF,YAC9B30C,KAAKqY,WAAW62B,cAAce,MAAA,CAGhC,GAAIjwC,KAAKgwC,OAAQ,CAyBf,IAxBI5uC,GAAkBA,EAAe0hC,GAC/Bz0B,IAAgBjN,EAAe0hC,KACjCz0B,EAAcjN,EAAe0hC,GAC7B9hC,EAAIszC,UAAYlzC,EAAe0hC,IAExBz0B,IAAgBrO,KAAKmwC,OAAOC,SACrC/hC,EAAcrO,KAAKmwC,OAAOC,OAC1BpvC,EAAIszC,UAAYt0C,KAAKmwC,OAAOC,QAG1BhvC,GAAkBA,EAAe2hC,GAC/B70B,IAAe9M,EAAe2hC,KAChC70B,EAAa9M,EAAe2hC,GAC5B/hC,EAAIozC,YAAchzC,EAAe2hC,IAE1B70B,IAAelO,KAAKmwC,OAAOH,SACpC9hC,EAAalO,KAAKmwC,OAAOH,OACzBhvC,EAAIozC,YAAcp0C,KAAKmwC,OAAOH,QAIhC3vC,GADAwD,EAAW7D,KAAK6qC,UAAU1rC,GAAGyd,MACbrc,OAChBP,KAAKqY,WAAW62B,cAAcC,YAEzB1vC,EAAI,EAAGA,EAAIY,EAAMZ,GAAK,EAKzB,IAHAsB,GADA8N,EAAUhL,EAASpE,IACJc,OACfP,KAAKqY,WAAW62B,cAAcE,OAAOvgC,EAAQ,GAAIA,EAAQ,IAEpDrO,EAAI,EAAGA,EAAIO,EAAMP,GAAK,EACzBR,KAAKqY,WAAW62B,cAAcI,cAAczgC,EAAQrO,GAAIqO,EAAQrO,EAAI,GAAIqO,EAAQrO,EAAI,GAAIqO,EAAQrO,EAAI,GAAIqO,EAAQrO,EAAI,GAAIqO,EAAQrO,EAAI,IAIxIR,KAAKqY,WAAW62B,cAAcyF,YAC9B30C,KAAKqY,WAAW62B,cAAcc,QAAA,CAG5B5uC,GACFpB,KAAKqY,WAAWrB,SAASq8B,SAAA,GAYjChtC,gBAAgB,CAACkwB,YAAakB,iBAAkBwX,cAAe5R,iBAAkB7G,aAAclC,mBAAoBgc,gBACnHA,eAAe5wC,UAAU89B,YAAckF,gBAAgBhjC,UAAU89B,YACjE8S,eAAe5wC,UAAUiW,aAAe4nB,cAAc79B,UAAUiW,aAEhE26B,eAAe5wC,UAAUq/B,cAAgB,WACvC,GAAI/+B,KAAKmT,IAAIlB,QAAUjS,KAAKiT,UAAU4M,IAAM7f,KAAKmT,IAAIlB,OAASjS,KAAKiT,UAAUtR,IAAM3B,KAAKmT,IAAIjB,QAAS,CACnG,IAAI/S,EAAS+G,UAAU,UACvB/G,EAAO8S,MAAQjS,KAAKiT,UAAU4M,EAC9B1gB,EAAO+S,OAASlS,KAAKiT,UAAUtR,EAC/B,IAKIvC,EACAK,EANAY,EAAMlB,EAAOgT,WAAW,MACxB3R,EAAOR,KAAKmT,IAAIlB,MAChBlR,EAAOf,KAAKmT,IAAIjB,OAChBlR,EAASR,EAAOO,EAChBK,EAAYpB,KAAKiT,UAAU4M,EAAI7f,KAAKiT,UAAUtR,EAG9CA,EAAM3B,KAAKiT,UAAUisB,IAAMl/B,KAAKqY,WAAW8c,aAAagK,yBAExDn+B,EAASI,GAAqB,mBAARO,GAA4BX,EAASI,GAAqB,mBAARO,EAE1EvC,GADAK,EAAasB,GACYK,EAGzB3B,GADAL,EAAYoB,GACaY,EAG3Bf,EAAI2yC,UAAUhzC,KAAKmT,KAAM3S,EAAOpB,GAAa,GAAI2B,EAAOtB,GAAc,EAAGL,EAAWK,EAAY,EAAG,EAAGO,KAAKiT,UAAU4M,EAAG7f,KAAKiT,UAAUtR,GACvI3B,KAAKmT,IAAMhU,CAAA,GAIfmxC,eAAe5wC,UAAUs/B,mBAAqB,WAC5Ch/B,KAAKkvC,cAAc8D,UAAUhzC,KAAKmT,IAAK,EAAG,IAG5Cm9B,eAAe5wC,UAAUoU,QAAU,WACjC9T,KAAKmT,IAAM,MAOb9M,gBAAgB,CAACkwB,YAAakB,iBAAkBwX,cAAe5R,iBAAkB7G,aAAclC,mBAAoBic,gBACnHA,eAAe7wC,UAAU89B,YAAckF,gBAAgBhjC,UAAU89B,YACjE+S,eAAe7wC,UAAUiW,aAAe4nB,cAAc79B,UAAUiW,aAEhE46B,eAAe7wC,UAAUs/B,mBAAqB,WAC5C,IAAI7/B,EAAMa,KAAKkvC,cACf/vC,EAAIiT,UAAYpS,KAAK4N,KAAKm1B,GAC1B5jC,EAAIkT,SAAS,EAAG,EAAGrS,KAAK4N,KAAKk1B,GAAI9iC,KAAK4N,KAAKyT,GAAA,EAoC7Chb,gBAAgB,CAACmxB,cAAegZ,oBAEhCA,mBAAmB9wC,UAAUk7B,YAAc,SAAUz7B,GACnD,OAAO,IAAI0wC,eAAe1wC,EAAMa,KAAKqY,WAAYrY,KAAA,EAGnDwwC,mBAAmB9wC,UAAUm7B,WAAa,SAAU17B,GAClD,OAAO,IAAI4wC,cAAc5wC,EAAMa,KAAKqY,WAAYrY,KAAA,EAGlDwwC,mBAAmB9wC,UAAU86B,YAAc,SAAUr7B,GACnD,OAAO,IAAImxC,eAAenxC,EAAMa,KAAKqY,WAAYrY,KAAA,EAGnDwwC,mBAAmB9wC,UAAUg7B,YAAc,SAAUv7B,GACnD,OAAO,IAAIoxC,eAAepxC,EAAMa,KAAKqY,WAAYrY,KAAA,EAGnDwwC,mBAAmB9wC,UAAUi7B,WAAayQ,YAAY1rC,UAAUi7B,WAEhE6V,mBAAmB9wC,UAAUyzC,aAAe,SAAUh0C,GACpD,GAAiB,IAAbA,EAAM,IAAyB,IAAbA,EAAM,IAAyB,IAAbA,EAAM,IAAyB,IAAbA,EAAM,IAA0B,IAAdA,EAAM,KAA2B,IAAdA,EAAM,IAIrG,GAAKa,KAAKm1B,aAAasb,YAAvB,CAMAzwC,KAAK+wC,aAAa1pB,eAAeloB,GAEjC,IAAIC,EAAmBY,KAAK8wC,YAAY7C,eACpCxuC,EAASL,EAAiBqmB,MAE9BzlB,KAAK+wC,aAAanqB,UAAUnnB,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,KAE7ML,EAAiBioB,eAAernB,KAAK+wC,aAAatrB,OAClD,IAAIplB,EAAUjB,EAAiBqmB,MAE/BzlB,KAAKkvC,cAAcxoB,aAAarmB,EAAQ,GAAIA,EAAQ,GAAIA,EAAQ,GAAIA,EAAQ,GAAIA,EAAQ,IAAKA,EAAQ,UAfnGL,KAAKkvC,cAActoB,UAAUznB,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,IAAKA,EAAM,MAkB1FqxC,mBAAmB9wC,UAAU0zC,WAAa,SAAUj0C,GAIlD,IAAIC,EAAiBY,KAAK8wC,YAAY5C,aAEtC,IAAKluC,KAAKm1B,aAAasb,YAGrB,OAFAzwC,KAAKkvC,cAAcmG,aAAel2C,EAAK,EAAI,EAAIA,OAC/Ca,KAAKqY,WAAWw4B,mBAAqBzxC,GAIvCA,GAAkBD,EAAK,EAAI,EAAIA,EAC/Ba,KAAK8wC,YAAY3C,WAAW/uC,GAExBY,KAAKqY,WAAWw4B,qBAAuBzxC,IACzCY,KAAKkvC,cAAcmG,YAAcj2C,EACjCY,KAAKqY,WAAWw4B,mBAAqBzxC,EAAA,EAIzCoxC,mBAAmB9wC,UAAU+kB,MAAQ,WAC9BzkB,KAAKm1B,aAAasb,YAKvBzwC,KAAK8wC,YAAYrsB,QAJfzkB,KAAKkvC,cAAcmE,SAAA,EAOvB7C,mBAAmB9wC,UAAU6vC,KAAO,SAAUpwC,GACvCa,KAAKm1B,aAAasb,aAKnBtxC,GACFa,KAAKkvC,cAAcK,OAGrBvvC,KAAK8wC,YAAYpuC,QARf1C,KAAKkvC,cAAcK,MAAA,EAWvBiB,mBAAmB9wC,UAAU2zC,QAAU,SAAUl0C,GAC/C,GAAKa,KAAKm1B,aAAasb,YAAvB,CAKItxC,IACFa,KAAKkvC,cAAcmE,UACnBrzC,KAAKqY,WAAWm6B,UAAY,eAG9B,IAAIpzC,EAASY,KAAK8wC,YAAYruC,MAC1BhD,EAAYL,EAAOwnB,UACnBvmB,EAAUjB,EAAO4uC,QACrBhuC,KAAKkvC,cAAcxoB,aAAajnB,EAAU,GAAIA,EAAU,GAAIA,EAAU,GAAIA,EAAU,GAAIA,EAAU,IAAKA,EAAU,KAE7GO,KAAKqY,WAAWw4B,qBAAuBxwC,IACzCL,KAAKkvC,cAAcmG,YAAch1C,EACjCL,KAAKqY,WAAWw4B,mBAAqBxwC,EAAA,MAhBrCL,KAAKkvC,cAAcmE,SAAA,EAoBvB7C,mBAAmB9wC,UAAUkY,gBAAkB,SAAUzY,GACvD,GAAIa,KAAK07B,cAAczjB,QAAS,CAC9BjY,KAAK07B,cAAcxjB,UAAYhS,UAAU,UACzC,IAAI9G,EAAiBY,KAAK07B,cAAcxjB,UAAU7N,MAClDjL,EAAe6S,MAAQ,OACvB7S,EAAe8S,OAAS,OACxB,IAAIzS,EAAS,cACbL,EAAesL,gBAAkBjL,EACjCL,EAAek2C,mBAAqB71C,EACpCL,EAAeuL,sBAAwBlL,EACvCL,EAAe,qBAAuBK,EACtCL,EAAeqsC,kBAAoBzrC,KAAKm1B,aAAasW,kBACrDzrC,KAAK07B,cAAczjB,QAAQ1D,YAAYvU,KAAK07B,cAAcxjB,WAC1DlY,KAAKkvC,cAAgBlvC,KAAK07B,cAAcxjB,UAAU/F,WAAW,MAEzDnS,KAAKm1B,aAAayW,WACpB5rC,KAAK07B,cAAcxjB,UAAU+E,aAAa,QAASjd,KAAKm1B,aAAayW,WAGnE5rC,KAAKm1B,aAAarmB,IACpB9O,KAAK07B,cAAcxjB,UAAU+E,aAAa,KAAMjd,KAAKm1B,aAAarmB,GAAA,MAGpE9O,KAAKkvC,cAAgBlvC,KAAKm1B,aAAaub,QAGzC1wC,KAAK4N,KAAOzO,EACZa,KAAK0O,OAASvP,EAASuP,OACvB1O,KAAKuyC,gBAAkB,CACrB1yB,EAAG1gB,EAAS0gB,EACZle,EAAGxC,EAASwC,EACZmxC,GAAI,EACJnuB,GAAI,EACJkuB,GAAI,EACJpkC,GAAI,GAENzO,KAAKy7B,gBAAgBt8B,EAAUgH,SAASurB,MACxC1xB,KAAKqY,WAAW62B,cAAgBlvC,KAAKkvC,cACrClvC,KAAKqY,WAAWrB,SAAWhX,KAC3BA,KAAKqY,WAAWk9B,UAAA,EAChBv1C,KAAKqY,WAAW4iB,gBAAkBj7B,KAAKm1B,aAAa8F,gBACpDj7B,KAAKqY,WAAWk6B,gBAAkBvyC,KAAKuyC,gBACvCvyC,KAAKo6B,SAAWhyB,iBAAiBjJ,EAASuP,OAAOnO,QACjDP,KAAKya,qBAAA,EAGP+1B,mBAAmB9wC,UAAU+a,oBAAsB,SAAUtb,EAAOC,GAElE,IAAIK,EACAY,EAoBAG,EACAO,EAEJ,GAzBAf,KAAKykB,QAIDtlB,GACFM,EAAeN,EACfkB,EAAgBjB,EAChBY,KAAKkvC,cAAcmD,OAAOpgC,MAAQxS,EAClCO,KAAKkvC,cAAcmD,OAAOngC,OAAS7R,IAE/BL,KAAK07B,cAAczjB,SAAWjY,KAAK07B,cAAcxjB,WACnDzY,EAAeO,KAAK07B,cAAczjB,QAAQ0Z,YAC1CtxB,EAAgBL,KAAK07B,cAAczjB,QAAQu9B,eAE3C/1C,EAAeO,KAAKkvC,cAAcmD,OAAOpgC,MACzC5R,EAAgBL,KAAKkvC,cAAcmD,OAAOngC,QAG5ClS,KAAKkvC,cAAcmD,OAAOpgC,MAAQxS,EAAeO,KAAKm1B,aAAawb,IACnE3wC,KAAKkvC,cAAcmD,OAAOngC,OAAS7R,EAAgBL,KAAKm1B,aAAawb,MAMR,IAA3D3wC,KAAKm1B,aAAaqW,oBAAoB7qC,QAAQ,UAA8E,IAA5DX,KAAKm1B,aAAaqW,oBAAoB7qC,QAAQ,SAAiB,CACjI,IAAIK,EAAMhB,KAAKm1B,aAAaqW,oBAAoBn8B,MAAM,KAClDjO,EAAWJ,EAAI,IAAM,OACrBW,EAAMX,EAAI,IAAM,WAChB4C,EAAOjC,EAAIkX,OAAO,EAAG,GACrBhV,EAAOlC,EAAIkX,OAAO,GACtBrY,EAAaf,EAAeY,GAC5BU,EAAef,KAAKuyC,gBAAgB1yB,EAAI7f,KAAKuyC,gBAAgB5wC,GAE1CnB,GAA2B,SAAbY,GAAuBL,EAAeP,GAA2B,UAAbY,GACnFpB,KAAKuyC,gBAAgBO,GAAKrzC,GAAgBO,KAAKuyC,gBAAgB1yB,EAAI7f,KAAKm1B,aAAawb,KACrF3wC,KAAKuyC,gBAAgB5tB,GAAKllB,GAAgBO,KAAKuyC,gBAAgB1yB,EAAI7f,KAAKm1B,aAAawb,OAErF3wC,KAAKuyC,gBAAgBO,GAAKzyC,GAAiBL,KAAKuyC,gBAAgB5wC,EAAI3B,KAAKm1B,aAAawb,KACtF3wC,KAAKuyC,gBAAgB5tB,GAAKtkB,GAAiBL,KAAKuyC,gBAAgB5wC,EAAI3B,KAAKm1B,aAAawb,MAItF3wC,KAAKuyC,gBAAgBM,GADV,SAATjvC,IAAoB7C,EAAeP,GAA2B,SAAbY,GAAuBL,EAAeP,GAA2B,UAAbY,IAC5E3B,EAAeO,KAAKuyC,gBAAgB1yB,GAAKxf,EAAgBL,KAAKuyC,gBAAgB5wC,IAAM,EAAI3B,KAAKm1B,aAAawb,IACnH,SAAT/sC,IAAoB7C,EAAeP,GAA2B,SAAbY,GAAuBL,EAAeP,GAA2B,UAAbY,IACnF3B,EAAeO,KAAKuyC,gBAAgB1yB,GAAKxf,EAAgBL,KAAKuyC,gBAAgB5wC,IAAM3B,KAAKm1B,aAAawb,IAEvG,EAI1B3wC,KAAKuyC,gBAAgB9jC,GADV,SAAT5K,IAAoB9C,EAAeP,GAA2B,SAAbY,GAAuBL,EAAeP,GAA2B,UAAbY,IAC5Ef,EAAgBL,KAAKuyC,gBAAgB5wC,GAAKlC,EAAeO,KAAKuyC,gBAAgB1yB,IAAM,EAAI7f,KAAKm1B,aAAawb,IACnH,SAAT9sC,IAAoB9C,EAAeP,GAA2B,SAAbY,GAAuBL,EAAeP,GAA2B,UAAbY,IACnFf,EAAgBL,KAAKuyC,gBAAgB5wC,GAAKlC,EAAeO,KAAKuyC,gBAAgB1yB,IAAM7f,KAAKm1B,aAAawb,IAEvG,MAEuB,SAA1C3wC,KAAKm1B,aAAaqW,qBAC3BxrC,KAAKuyC,gBAAgBO,GAAKrzC,GAAgBO,KAAKuyC,gBAAgB1yB,EAAI7f,KAAKm1B,aAAawb,KACrF3wC,KAAKuyC,gBAAgB5tB,GAAKtkB,GAAiBL,KAAKuyC,gBAAgB5wC,EAAI3B,KAAKm1B,aAAawb,KACtF3wC,KAAKuyC,gBAAgBM,GAAK,EAC1B7yC,KAAKuyC,gBAAgB9jC,GAAK,IAE1BzO,KAAKuyC,gBAAgBO,GAAK9yC,KAAKm1B,aAAawb,IAC5C3wC,KAAKuyC,gBAAgB5tB,GAAK3kB,KAAKm1B,aAAawb,IAC5C3wC,KAAKuyC,gBAAgBM,GAAK,EAC1B7yC,KAAKuyC,gBAAgB9jC,GAAK,GAG5BzO,KAAKuyC,gBAAgB9sB,MAAQ,CAACzlB,KAAKuyC,gBAAgBO,GAAI,EAAG,EAAG,EAAG,EAAG9yC,KAAKuyC,gBAAgB5tB,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG3kB,KAAKuyC,gBAAgBM,GAAI7yC,KAAKuyC,gBAAgB9jC,GAAI,EAAG,GAQnKzO,KAAKmzC,aAAanzC,KAAKuyC,gBAAgB9sB,OACvCzlB,KAAKkvC,cAAcC,YACnBnvC,KAAKkvC,cAAcuG,KAAK,EAAG,EAAGz1C,KAAKuyC,gBAAgB1yB,EAAG7f,KAAKuyC,gBAAgB5wC,GAC3E3B,KAAKkvC,cAAcyF,YACnB30C,KAAKkvC,cAAcM,OACnBxvC,KAAK2a,YAAY3a,KAAK6hB,eAAA,EAAe,EAGvC2uB,mBAAmB9wC,UAAUoU,QAAU,WAKrC,IAAI3U,EAGJ,IAPIa,KAAKm1B,aAAasb,aAAezwC,KAAK07B,cAAczjB,UACtDjY,KAAK07B,cAAczjB,QAAQkF,UAAY,IAMpChe,GAFKa,KAAK0O,OAAS1O,KAAK0O,OAAOnO,OAAS,GAE9B,EAAGpB,GAAK,EAAGA,GAAK,EACzBa,KAAKo6B,SAASj7B,IAChBa,KAAKo6B,SAASj7B,GAAG2U,UAIrB9T,KAAKo6B,SAAS75B,OAAS,EACvBP,KAAKqY,WAAW62B,cAAgB,KAChClvC,KAAK07B,cAAcxjB,UAAY,KAC/BlY,KAAKisC,WAAA,CAAY,EAGnBuE,mBAAmB9wC,UAAUib,YAAc,SAAUxb,EAAKC,GACxD,IAAIY,KAAK6hB,gBAAkB1iB,IAAA,IAAOa,KAAKm1B,aAAasb,aAAyBrxC,KAAeY,KAAKisC,YAAsB,IAAT9sC,EAA9G,CAWA,IAAIM,EAPJO,KAAK6hB,cAAgB1iB,EACrBa,KAAKqY,WAAW2zB,SAAW7sC,EAAMa,KAAK07B,cAAcpZ,cACpDtiB,KAAKqY,WAAW6J,SAAW,EAC3BliB,KAAKqY,WAAW4J,MAAQjiB,KAAKm1B,aAAasb,aAAerxC,EACzDY,KAAKqY,WAAWb,iBAAiB3B,aAAe1W,EAIhD,IAAIkB,EAAML,KAAK0O,OAAOnO,OAMtB,IAJKP,KAAKsQ,gBACRtQ,KAAKm6B,YAAYh7B,GAGdM,EAAI,EAAGA,EAAIY,EAAKZ,GAAK,GACpBO,KAAKsQ,gBAAkBtQ,KAAKo6B,SAAS36B,KACvCO,KAAKo6B,SAAS36B,GAAGkW,aAAaxW,EAAMa,KAAK0O,OAAOjP,GAAGiQ,IAIvD,GAAI1P,KAAKqY,WAAW4J,KAAM,CAOxB,KAAK,IANDjiB,KAAKm1B,aAAasb,YACpBzwC,KAAKkvC,cAAc0D,UAAU,EAAG,EAAG5yC,KAAKuyC,gBAAgB1yB,EAAG7f,KAAKuyC,gBAAgB5wC,GAEhF3B,KAAKuvC,OAGF9vC,EAAIY,EAAM,EAAGZ,GAAK,EAAGA,GAAK,GACzBO,KAAKsQ,gBAAkBtQ,KAAKo6B,SAAS36B,KACvCO,KAAKo6B,SAAS36B,GAAGkb,eAAA,IAIjB3a,KAAKm1B,aAAasb,aACpBzwC,KAAKqzC,SAAA,IAKX7C,mBAAmB9wC,UAAU26B,UAAY,SAAUl7B,GACjD,IAAIC,EAAWY,KAAKo6B,SAEpB,IAAIh7B,EAASD,IAAgC,KAAxBa,KAAK0O,OAAOvP,GAAKsP,GAAtC,CAIA,IAAIhP,EAAUO,KAAKu6B,WAAWv6B,KAAK0O,OAAOvP,GAAMa,KAAMA,KAAKqY,YAC3DjZ,EAASD,GAAOM,EAChBA,EAAQga,iBAAA,GAMV+2B,mBAAmB9wC,UAAU46B,qBAAuB,WAClD,KAAOt6B,KAAKu7B,gBAAgBh7B,QACZP,KAAKu7B,gBAAgB94B,MAC3Bq8B,gBAAA,EAIZ0R,mBAAmB9wC,UAAU4c,KAAO,WAClCtc,KAAK07B,cAAcxjB,UAAU7N,MAAMI,QAAU,QAG/C+lC,mBAAmB9wC,UAAU6c,KAAO,WAClCvc,KAAK07B,cAAcxjB,UAAU7N,MAAMI,QAAU,SAc/CpE,gBAAgB,CAACmqC,mBAAoBvF,aAAcgE,eAAgB+B,eAEnEA,cAActxC,UAAUs/B,mBAAqB,WAC3C,IAQI7/B,EARAC,EAAMY,KAAKkvC,cAWf,IAVA9vC,EAAI+vC,YACJ/vC,EAAIgwC,OAAO,EAAG,GACdhwC,EAAIiwC,OAAOrvC,KAAK4N,KAAKiS,EAAG,GACxBzgB,EAAIiwC,OAAOrvC,KAAK4N,KAAKiS,EAAG7f,KAAK4N,KAAKjM,GAClCvC,EAAIiwC,OAAO,EAAGrvC,KAAK4N,KAAKjM,GACxBvC,EAAIiwC,OAAO,EAAG,GACdjwC,EAAIowC,OAICrwC,EAFKa,KAAK0O,OAAOnO,OAEP,EAAGpB,GAAK,EAAGA,GAAK,GACzBa,KAAKsQ,gBAAkBtQ,KAAKo6B,SAASj7B,KACvCa,KAAKo6B,SAASj7B,GAAGwb,aAAA,EAKvBq2B,cAActxC,UAAUoU,QAAU,WAChC,IAAI3U,EAGJ,IAAKA,EAFKa,KAAK0O,OAAOnO,OAEP,EAAGpB,GAAK,EAAGA,GAAK,EACzBa,KAAKo6B,SAASj7B,IAChBa,KAAKo6B,SAASj7B,GAAG2U,UAIrB9T,KAAK0O,OAAS,KACd1O,KAAKo6B,SAAW,MAGlB4W,cAActxC,UAAU+6B,WAAa,SAAUt7B,GAC7C,OAAO,IAAI6xC,cAAc7xC,EAAMa,KAAKqY,WAAYrY,KAAA,EAqClDqG,gBAAgB,CAACmqC,oBAAqBS,gBAEtCA,eAAevxC,UAAU+6B,WAAa,SAAUt7B,GAC9C,OAAO,IAAI6xC,cAAc7xC,EAAMa,KAAKqY,WAAYrY,KAAA,EAKlDkxC,aAAaxxC,UAAY,CACvBg2C,eAAgB,aAChB9X,oBAAqB,WACnB59B,KAAK05B,YAAcxzB,UAAUlG,KAAK4N,KAAK+nC,IAAM,OAEzC31C,KAAK4N,KAAKQ,SACZpO,KAAKqrC,WAAa/9B,SAAS,OAC3BtN,KAAK25B,aAAersB,SAAS,KAC7BtN,KAAK24B,cAAgB34B,KAAK25B,aAC1B35B,KAAKqrC,WAAW92B,YAAYvU,KAAK25B,cACjC35B,KAAK05B,YAAYnlB,YAAYvU,KAAKqrC,aAElCrrC,KAAK25B,aAAe35B,KAAK05B,YAG3BtvB,SAASpK,KAAK05B,YAAA,EAEhBmE,wBAAyB,WACvB79B,KAAKy+B,yBAA2B,IAAIqQ,UAAU9uC,MAC9CA,KAAK+9B,mBAAqB/9B,KAAK05B,YAC/B15B,KAAK24B,cAAgB34B,KAAK25B,aAEtB35B,KAAK4N,KAAKwwB,IACZp+B,KAAK25B,aAAa1c,aAAa,KAAMjd,KAAK4N,KAAKwwB,IAG7Cp+B,KAAK4N,KAAKmC,IACZ/P,KAAK25B,aAAa1c,aAAa,QAASjd,KAAK4N,KAAKmC,IAG/B,IAAjB/P,KAAK4N,KAAK6rB,IACZz5B,KAAKw5B,cAAA,EAGT8E,cAAe,WACb,IAAIn/B,EAA0Ba,KAAK+9B,mBAAqB/9B,KAAK+9B,mBAAmB1zB,MAAQ,CAAC,EAEzF,GAAIrK,KAAKi1B,eAAe4G,QAAS,CAC/B,IAAIz8B,EAAcY,KAAKi1B,eAAe8G,IAAI5U,QAC1ChoB,EAAwBynB,UAAYxnB,EACpCD,EAAwBy2C,gBAAkBx2C,CAAA,CAGxCY,KAAKi1B,eAAe6G,SACtB38B,EAAwB6uC,QAAUhuC,KAAKi1B,eAAeC,MAAM9zB,EAAEoC,EAAA,EAGlEmX,YAAa,WAGP3a,KAAK4N,KAAKywB,IAAMr+B,KAAKy0B,SAIzBz0B,KAAKi8B,kBACLj8B,KAAKq1B,mBACLr1B,KAAKs+B,gBACLt+B,KAAKg/B,qBAEDh/B,KAAKsiB,gBACPtiB,KAAKsiB,eAAA,GAAgB,EAGzBxO,QAAS,WACP9T,KAAK25B,aAAe,KACpB35B,KAAK+9B,mBAAqB,KAEtB/9B,KAAK89B,eACP99B,KAAK89B,aAAe,MAGlB99B,KAAK84B,cACP94B,KAAK84B,YAAYhlB,UACjB9T,KAAK84B,YAAc,OAGvB0F,2BAA4B,WAC1Bx+B,KAAK84B,YAAc,IAAIpB,YAAY13B,KAAK4N,KAAM5N,KAAMA,KAAKqY,WAAA,EAE3Dw9B,WAAY,aACZjX,SAAU,cAEZsS,aAAaxxC,UAAUu6B,eAAiBmD,eAAe19B,UAAUu6B,eACjEiX,aAAaxxC,UAAU6+B,mBAAqB2S,aAAaxxC,UAAUoU,QACnEo9B,aAAaxxC,UAAUw7B,sBAAwB1D,aAAa93B,UAAUw7B,sBAMtE70B,gBAAgB,CAACkwB,YAAakB,iBAAkByZ,aAAc7T,iBAAkB7G,aAAc8G,sBAAuB6T,eAErHA,cAAczxC,UAAUq/B,cAAgB,WACtC,IAAI5/B,EAEAa,KAAK4N,KAAKQ,UACZjP,EAAOmO,SAAS,SACX2P,aAAa,QAASjd,KAAK4N,KAAKk1B,IACrC3jC,EAAK8d,aAAa,SAAUjd,KAAK4N,KAAKyT,IACtCliB,EAAK8d,aAAa,OAAQjd,KAAK4N,KAAKm1B,IACpC/iC,KAAKqrC,WAAWpuB,aAAa,QAASjd,KAAK4N,KAAKk1B,IAChD9iC,KAAKqrC,WAAWpuB,aAAa,SAAUjd,KAAK4N,KAAKyT,OAEjDliB,EAAO+G,UAAU,QACZmE,MAAM4H,MAAQjS,KAAK4N,KAAKk1B,GAAK,KAClC3jC,EAAKkL,MAAM6H,OAASlS,KAAK4N,KAAKyT,GAAK,KACnCliB,EAAKkL,MAAMyrC,gBAAkB91C,KAAK4N,KAAKm1B,IAGzC/iC,KAAK25B,aAAaplB,YAAYpV,EAAA,EA+BhCkH,gBAAgB,CAACkwB,YAAakB,iBAAkB0Z,cAAezO,gBAAiBwO,aAAc7T,iBAAkB7G,aAAclC,mBAAoB8c,eAClJA,cAAc1xC,UAAUq2C,kBAAoB3E,cAAc1xC,UAAUs/B,mBAEpEoS,cAAc1xC,UAAUq/B,cAAgB,WACtC,IAAI5/B,EAGJ,GAFAa,KAAK05B,YAAYrvB,MAAMgnB,SAAW,EAE9BrxB,KAAK4N,KAAKQ,QACZpO,KAAK25B,aAAaplB,YAAYvU,KAAKqxC,iBACnClyC,EAAOa,KAAKqrC,eACP,CACLlsC,EAAOmO,SAAS,OAChB,IAAIlO,EAAOY,KAAK4hB,KAAKhU,KAAO5N,KAAK4hB,KAAKhU,KAAO5N,KAAKqY,WAAWsjB,SAC7Dx8B,EAAK8d,aAAa,QAAS7d,EAAKygB,GAChC1gB,EAAK8d,aAAa,SAAU7d,EAAKuC,GACjCxC,EAAKoV,YAAYvU,KAAKqxC,iBACtBrxC,KAAK25B,aAAaplB,YAAYpV,EAAA,CAGhCa,KAAK8kC,aAAa9kC,KAAKm5B,WAAYn5B,KAAKo5B,UAAWp5B,KAAKyhC,aAAczhC,KAAKqxC,gBAAiB,EAAG,IAAI,GACnGrxC,KAAK+kC,qBACL/kC,KAAKg2C,UAAY72C,CAAA,EAGnBiyC,cAAc1xC,UAAUu2C,oBAAsB,SAAU92C,EAAcC,GACpE,IAAIK,EACAY,EAAMlB,EAAaoB,OAEvB,IAAKd,EAAI,EAAGA,EAAIY,EAAKZ,GAAK,EACxBL,EAAQD,EAAaM,GAAGywB,OAAO1sB,EAAEyiB,kBAAkB7mB,EAAM,GAAIA,EAAM,GAAI,GAGzE,OAAOA,CAAA,EAGTgyC,cAAc1xC,UAAUw2C,0BAA4B,SAAU/2C,EAAMC,GAClE,IAEIK,EAEAY,EACAG,EACAO,EACAC,EAPAI,EAAQjC,EAAKkiB,GAAG7d,EAChB7B,EAAexC,EAAK8gC,aAEpBr8B,EAAMxC,EAAMge,QAMhB,KAAIxb,GAAO,GAAX,CAIA,IAAKnE,EAAI,EAAGA,EAAImE,EAAM,EAAGnE,GAAK,EAC5BY,EAASL,KAAKi2C,oBAAoBt0C,EAAcP,EAAMoC,EAAE/D,IACxDe,EAASR,KAAKi2C,oBAAoBt0C,EAAcP,EAAMA,EAAE3B,IACxDsB,EAAaf,KAAKi2C,oBAAoBt0C,EAAcP,EAAMf,EAAEZ,EAAI,IAChEuB,EAAahB,KAAKi2C,oBAAoBt0C,EAAcP,EAAMoC,EAAE/D,EAAI,IAChEO,KAAKm2C,YAAY91C,EAAQG,EAAQO,EAAYC,EAAY5B,GAGvDgC,EAAM6M,IACR5N,EAASL,KAAKi2C,oBAAoBt0C,EAAcP,EAAMoC,EAAE/D,IACxDe,EAASR,KAAKi2C,oBAAoBt0C,EAAcP,EAAMA,EAAE3B,IACxDsB,EAAaf,KAAKi2C,oBAAoBt0C,EAAcP,EAAMf,EAAE,IAC5DW,EAAahB,KAAKi2C,oBAAoBt0C,EAAcP,EAAMoC,EAAE,IAC5DxD,KAAKm2C,YAAY91C,EAAQG,EAAQO,EAAYC,EAAY5B,GAAA,GAI7DgyC,cAAc1xC,UAAUy2C,YAAc,SAAUh3C,EAAQC,EAAQK,EAAYY,EAAYG,GACtFR,KAAKo2C,iBAAiBj3C,EAAQC,EAAQK,EAAYY,GAClD,IAAIU,EAASf,KAAKq2C,iBAClB71C,EAAY8e,EAAI/V,MAAMxI,EAAOyJ,KAAMhK,EAAY8e,GAC/C9e,EAAY81C,KAAOjtC,MAAMtI,EAAOwvB,MAAO/vB,EAAY81C,MACnD91C,EAAYwe,EAAIzV,MAAMxI,EAAOwJ,IAAK/J,EAAYwe,GAC9Cxe,EAAY+1C,KAAOltC,MAAMtI,EAAOyvB,OAAQhwB,EAAY+1C,KAAA,EAGtDnF,cAAc1xC,UAAU22C,iBAAmB,CACzC7rC,KAAM,EACN+lB,MAAO,EACPhmB,IAAK,EACLimB,OAAQ,GAEV4gB,cAAc1xC,UAAU82C,gBAAkB,CACxCl3B,EAAG,EACHg3B,KAAM,EACNt3B,EAAG,EACHu3B,KAAM,EACNtkC,MAAO,EACPC,OAAQ,GAGVk/B,cAAc1xC,UAAU02C,iBAAmB,SAAUj3C,EAAIC,EAAIK,EAAIY,GAG/D,IAFA,IAESG,EAAGO,EAAGC,EAAGI,EAAGO,EAAMiC,EAAIC,EAF3BgL,EAAS,CAAC,CAAC1P,EAAG,GAAIkB,EAAG,IAAK,CAAClB,EAAG,GAAIkB,EAAG,KAEN4N,EAAI,EAAGA,EAAI,IAAKA,EAEjDlN,EAAI,EAAI5B,EAAG8O,GAAK,GAAK7O,EAAG6O,GAAK,EAAIxO,EAAGwO,GACpCzN,GAAK,EAAIrB,EAAG8O,GAAK,EAAI7O,EAAG6O,GAAK,EAAIxO,EAAGwO,GAAK,EAAI5N,EAAG4N,GAChDjN,EAAI,EAAI5B,EAAG6O,GAAK,EAAI9O,EAAG8O,GACvBlN,GAAK,EAILC,GAAK,EAEK,KAJVR,GAAK,IAIgB,IAANO,IACE,IAANP,GACTY,GAAKJ,EAAID,GAED,GAAKK,EAAI,GACfyN,EAAOZ,GAAGvL,KAAK1C,KAAKy2C,WAAWr1C,EAAGjC,EAAIC,EAAIK,EAAIY,EAAI4N,KAGpDtM,EAAOZ,EAAIA,EAAI,EAAIC,EAAIR,IAEX,KACVoD,IAAO7C,EAAIkI,OAAOtH,KAAU,EAAInB,IACvB,GAAKoD,EAAK,GAAGiL,EAAOZ,GAAGvL,KAAK1C,KAAKy2C,WAAW7yC,EAAIzE,EAAIC,EAAIK,EAAIY,EAAI4N,KACzEpK,IAAO9C,EAAIkI,OAAOtH,KAAU,EAAInB,IACvB,GAAKqD,EAAK,GAAGgL,EAAOZ,GAAGvL,KAAK1C,KAAKy2C,WAAW5yC,EAAI1E,EAAIC,EAAIK,EAAIY,EAAI4N,MAK/EjO,KAAKq2C,iBAAiB7rC,KAAOjB,MAAM9I,MAAM,KAAMoO,EAAO,IACtD7O,KAAKq2C,iBAAiB9rC,IAAMhB,MAAM9I,MAAM,KAAMoO,EAAO,IACrD7O,KAAKq2C,iBAAiB9lB,MAAQlnB,MAAM5I,MAAM,KAAMoO,EAAO,IACvD7O,KAAKq2C,iBAAiB7lB,OAASnnB,MAAM5I,MAAM,KAAMoO,EAAO,KAG1DuiC,cAAc1xC,UAAU+2C,WAAa,SAAUt3C,EAAGC,EAAIK,EAAIY,EAAIG,EAAIO,GAChE,OAAO+H,MAAM,EAAI3J,EAAG,GAAKC,EAAG2B,GAAK,EAAI+H,MAAM,EAAI3J,EAAG,GAAKA,EAAIM,EAAGsB,GAAK,GAAK,EAAI5B,GAAK2J,MAAM3J,EAAG,GAAKkB,EAAGU,GAAK+H,MAAM3J,EAAG,GAAKqB,EAAGO,EAAA,EAG1HqwC,cAAc1xC,UAAUg3C,qBAAuB,SAAUv3C,EAAWC,GAClE,IAAIK,EACAY,EAAMlB,EAAUoB,OAEpB,IAAKd,EAAI,EAAGA,EAAIY,EAAKZ,GAAK,EACpBN,EAAUM,IAAMN,EAAUM,GAAG4hB,GAC/BrhB,KAAKk2C,0BAA0B/2C,EAAUM,GAAIL,GACpCD,EAAUM,IAAMN,EAAUM,GAAG2P,GACtCpP,KAAK02C,qBAAqBv3C,EAAUM,GAAG2P,GAAIhQ,GAClCD,EAAUM,IAAMN,EAAUM,GAAG4K,OAASlL,EAAUM,GAAGogB,GAC5D7f,KAAK22C,wBAAwBx3C,EAAUM,GAAGogB,EAAGzgB,EAAA,EAKnDgyC,cAAc1xC,UAAUi3C,wBAA0B,SAAUx3C,EAAeC,GACzE,IAAIK,EAAQ,EAEZ,GAAIN,EAAcwhB,UAAW,CAC3B,IAAK,IAAItgB,EAAI,EAAGA,EAAIlB,EAAcwhB,UAAUpgB,OAAQF,GAAK,EAAG,CAC1D,IAAIG,EAAMrB,EAAcwhB,UAAUtgB,GAAGU,EAEjCP,EAAMf,IACRA,EAAQe,EAAA,CAIZf,GAASN,EAAc6iB,IAAA,MAEvBviB,EAAQN,EAAcqE,EAAIrE,EAAc6iB,KAG1C5iB,EAAYkgB,GAAK7f,EACjBL,EAAYk3C,MAAQ72C,EACpBL,EAAY4f,GAAKvf,EACjBL,EAAYm3C,MAAQ92C,CAAA,EAGtB2xC,cAAc1xC,UAAUk3C,mBAAqB,SAAUz3C,GACrD,OAAOa,KAAKsxC,YAAYhyB,GAAKngB,EAAImgB,GAAKtf,KAAKsxC,YAAYtyB,GAAK7f,EAAI6f,GAAKhf,KAAKsxC,YAAYr/B,MAAQjS,KAAKsxC,YAAYhyB,GAAKngB,EAAImgB,EAAIngB,EAAI8S,OAASjS,KAAKsxC,YAAYp/B,OAASlS,KAAKsxC,YAAYtyB,GAAK7f,EAAI6f,EAAI7f,EAAI+S,MAAA,EAGvMk/B,cAAc1xC,UAAUs/B,mBAAqB,WAG3C,GAFAh/B,KAAK+1C,qBAEA/1C,KAAKy0B,SAAWz0B,KAAKsiB,eAAiBtiB,KAAKiiB,MAAO,CACrD,IAAI9iB,EAAkBa,KAAKw2C,gBACvBp3C,EAAM,OASV,GARAD,EAAgBmgB,EAAIlgB,EACpBD,EAAgBm3C,MAAQl3C,EACxBD,EAAgB6f,EAAI5f,EACpBD,EAAgBo3C,MAAQn3C,EACxBY,KAAK02C,qBAAqB12C,KAAKo5B,UAAWj6B,GAC1CA,EAAgB8S,MAAQ9S,EAAgBm3C,KAAOn3C,EAAgBmgB,EAAI,EAAIngB,EAAgBm3C,KAAOn3C,EAAgBmgB,EAC9GngB,EAAgB+S,OAAS/S,EAAgBo3C,KAAOp3C,EAAgB6f,EAAI,EAAI7f,EAAgBo3C,KAAOp3C,EAAgB6f,EAE3Ghf,KAAK42C,mBAAmBz3C,GAC1B,OAGF,IAAIM,GAAA,EAcJ,GAZIO,KAAKsxC,YAAYzxB,IAAM1gB,EAAgB8S,QACzCjS,KAAKsxC,YAAYzxB,EAAI1gB,EAAgB8S,MACrCjS,KAAKg2C,UAAU/4B,aAAa,QAAS9d,EAAgB8S,OACrDxS,GAAA,GAGEO,KAAKsxC,YAAY3vC,IAAMxC,EAAgB+S,SACzClS,KAAKsxC,YAAY3vC,EAAIxC,EAAgB+S,OACrClS,KAAKg2C,UAAU/4B,aAAa,SAAU9d,EAAgB+S,QACtDzS,GAAA,GAGEA,GAAWO,KAAKsxC,YAAYhyB,IAAMngB,EAAgBmgB,GAAKtf,KAAKsxC,YAAYtyB,IAAM7f,EAAgB6f,EAAG,CACnGhf,KAAKsxC,YAAYzxB,EAAI1gB,EAAgB8S,MACrCjS,KAAKsxC,YAAY3vC,EAAIxC,EAAgB+S,OACrClS,KAAKsxC,YAAYhyB,EAAIngB,EAAgBmgB,EACrCtf,KAAKsxC,YAAYtyB,EAAI7f,EAAgB6f,EACrChf,KAAKg2C,UAAU/4B,aAAa,UAAWjd,KAAKsxC,YAAYhyB,EAAI,IAAMtf,KAAKsxC,YAAYtyB,EAAI,IAAMhf,KAAKsxC,YAAYzxB,EAAI,IAAM7f,KAAKsxC,YAAY3vC,GACzI,IAAItB,EAAaL,KAAKg2C,UAAU3rC,MAC5B7J,EAAiB,aAAeR,KAAKsxC,YAAYhyB,EAAI,MAAQtf,KAAKsxC,YAAYtyB,EAAI,MACtF3e,EAAWumB,UAAYpmB,EACvBH,EAAWu1C,gBAAkBp1C,CAAA,IAmBnC6F,gBAAgB,CAACkwB,YAAakB,iBAAkByZ,aAAc7T,iBAAkB7G,aAAc8G,qBAAsBoL,cAAe6I,cAEnIA,aAAa7xC,UAAUq/B,cAAgB,WAGrC,GAFA/+B,KAAKyxC,SAAWzxC,KAAK44B,aAEjB54B,KAAKyxC,SAAU,CACjBzxC,KAAKqqC,WAAa,MAClBrqC,KAAK62C,MAAQ72C,KAAK4hB,KAAKhU,KAAKiS,EAC5B7f,KAAK82C,MAAQ92C,KAAK4hB,KAAKhU,KAAKjM,EAC5B3B,KAAKqrC,WAAWpuB,aAAa,QAASjd,KAAK62C,OAC3C72C,KAAKqrC,WAAWpuB,aAAa,SAAUjd,KAAK82C,OAC5C,IAAI33C,EAAImO,SAAS,KACjBtN,KAAK24B,cAAcpkB,YAAYpV,GAC/Ba,KAAKi/B,UAAY9/B,CAAA,MAEjBa,KAAKqqC,WAAa,OAClBrqC,KAAKi/B,UAAYj/B,KAAK25B,aAGxB35B,KAAK8+B,gBAAA,EAGPyS,aAAa7xC,UAAU4qC,aAAe,WACpC,IAAInrC,EAAea,KAAK4nC,aAAatE,YACrCtjC,KAAKwoC,gBAAkBpgC,iBAAiBjJ,EAAayE,EAAIzE,EAAayE,EAAErD,OAAS,GACjF,IAAInB,EAAiBY,KAAKi/B,UAAU50B,MAChC5K,EAAYN,EAAa6jC,GAAKhjC,KAAKyqC,WAAWtrC,EAAa6jC,IAAM,gBACrE5jC,EAAe6wC,KAAOxwC,EACtBL,EAAe23C,MAAQt3C,EAEnBN,EAAa4jC,KACf3jC,EAAe4wC,OAAShwC,KAAKyqC,WAAWtrC,EAAa4jC,IACrD3jC,EAAe43C,YAAc73C,EAAa2jC,GAAK,MAGjD,IAiBIziC,EACAG,EAlBAO,EAAWf,KAAKqY,WAAWiB,YAAY4a,cAAc/0B,EAAa0P,GAEtE,IAAK7O,KAAKqY,WAAWiB,YAAY/J,MAI/B,GAHAnQ,EAAeiyB,SAAWlyB,EAAaklC,UAAY,KACnDjlC,EAAe63C,WAAa93C,EAAaklC,UAAY,KAEjDtjC,EAASixB,OACXhyB,KAAKi/B,UAAU2M,UAAY7qC,EAASixB,WAC/B,CACL5yB,EAAegyB,WAAarwB,EAAS+wB,QACrC,IAAI9wB,EAAU7B,EAAasvB,QACvBrtB,EAASjC,EAAamvB,OAC1BlvB,EAAemyB,UAAYnwB,EAC3BhC,EAAeoyB,WAAaxwB,CAAA,CAMhC,IAEIW,EACAiC,EACAC,EAJAgL,EAAU1P,EAAayE,EAC3BpD,EAAMqO,EAAQtO,OAId,IACI0N,EADAC,EAAelO,KAAKo8B,QAEpB/tB,EAAW,GACXsE,EAAM,EAEV,IAAKtS,EAAI,EAAGA,EAAIG,EAAKH,GAAK,EAAG,CAuC3B,GAtCIL,KAAKqY,WAAWiB,YAAY/J,OACzBvP,KAAKwxC,UAAU7+B,GAMlBhR,EAAQ3B,KAAKwxC,UAAU7+B,KALvBhR,EAAQ2L,SAAS,SACX2P,aAAa,iBAAkB2iB,YAAY,IACjDj+B,EAAMsb,aAAa,kBAAmB4iB,aAAa,IACnDl+B,EAAMsb,aAAa,oBAAqB,MAKrCjd,KAAKyxC,WACJzxC,KAAK6qC,UAAUl4B,GAEjB9O,GADAD,EAAU5D,KAAK6qC,UAAUl4B,IACTukC,SAAS,KAEzBtzC,EAAUsC,UAAU,QACZmE,MAAM4sC,WAAa,GAC3BpzC,EAAQyJ,SAAS,QACXiH,YAAY5S,GAClByI,SAASxG,MAGH5D,KAAKyxC,SAYf9vC,EAAQ3B,KAAKwxC,UAAU7+B,GAAO3S,KAAKwxC,UAAU7+B,GAAOrF,SAAS,QAXzDtN,KAAK6qC,UAAUl4B,IACjB/O,EAAU5D,KAAK6qC,UAAUl4B,GACzBhR,EAAQ3B,KAAKwxC,UAAU7+B,KAGvBvI,SADAxG,EAAUsC,UAAU,SAGpBkE,SADAzI,EAAQuE,UAAU,SAElBtC,EAAQ2Q,YAAY5S,IAOpB3B,KAAKqY,WAAWiB,YAAY/J,MAAO,CACrC,IACIyP,EADAC,EAAWjf,KAAKqY,WAAWiB,YAAYwa,YAAY30B,EAAamlC,UAAUjkC,GAAIU,EAASutB,OAAQtuB,KAAKqY,WAAWiB,YAAY4a,cAAc/0B,EAAa0P,GAAGijB,SAkB7J,GAdE9S,EADEC,EACUA,EAASrR,KAET,KAGdM,EAAauW,QAETzF,GAAaA,EAAUpQ,QAAUoQ,EAAUpQ,OAAOrO,SACpD0N,EAAS+Q,EAAUpQ,OAAO,GAAGQ,GAC7BlB,EAAauY,MAAMtnB,EAAaklC,UAAY,IAAKllC,EAAaklC,UAAY,KAC1Eh2B,EAAWrO,KAAKuqC,gBAAgBr8B,EAAcD,GAC9CtM,EAAMsb,aAAa,IAAK5O,IAGrBrO,KAAKyxC,SAsBRzxC,KAAKi/B,UAAU1qB,YAAY5S,OAtBT,CAGlB,GAFA3B,KAAKi/B,UAAU1qB,YAAY3Q,GAEvBob,GAAaA,EAAUpQ,OAAQ,CAEjCzI,SAASurB,KAAKnd,YAAY1Q,GAC1B,IAAIL,EAAcK,EAAMgP,UACxBhP,EAAMoZ,aAAa,QAASzZ,EAAYyO,MAAQ,GAChDpO,EAAMoZ,aAAa,SAAUzZ,EAAY0O,OAAS,GAClDrO,EAAMoZ,aAAa,UAAWzZ,EAAY8b,EAAI,EAAI,KAAO9b,EAAYwb,EAAI,GAAK,KAAOxb,EAAYyO,MAAQ,GAAK,KAAOzO,EAAY0O,OAAS,IAC1I,IAAIgN,EAAarb,EAAMwG,MACnBiV,EAAmB,cAAgB9b,EAAY8b,EAAI,GAAK,OAAS9b,EAAYwb,EAAI,GAAK,MAC1FE,EAAW0H,UAAYtH,EACvBJ,EAAW02B,gBAAkBt2B,EAC7BzQ,EAAQxO,GAAG+jC,QAAU5gC,EAAYwb,EAAI,OAErCnb,EAAMoZ,aAAa,QAAS,GAC5BpZ,EAAMoZ,aAAa,SAAU,GAG/BrZ,EAAQ2Q,YAAY1Q,EAAA,OAQtB,GAHAlC,EAAMowB,YAAcljB,EAAQxO,GAAG6lC,IAC/BvkC,EAAMyS,eAAe,uCAAwC,YAAa,YAErEpU,KAAKyxC,SAQRzxC,KAAKi/B,UAAU1qB,YAAY5S,OART,CAClB3B,KAAKi/B,UAAU1qB,YAAY3Q,GAE3B,IAAI2b,EAAS5d,EAAM0I,MACfmV,EAAmB,kBAAoBrgB,EAAaklC,UAAY,IAAM,QAC1E9kB,EAAOqH,UAAYpH,EACnBD,EAAOq2B,gBAAkBp2B,CAAA,CAOxBxf,KAAKyxC,SAGRzxC,KAAK6qC,UAAUl4B,GAAOhR,EAFtB3B,KAAK6qC,UAAUl4B,GAAO/O,EAKxB5D,KAAK6qC,UAAUl4B,GAAKtI,MAAMI,QAAU,QACpCzK,KAAKwxC,UAAU7+B,GAAOhR,EACtBgR,GAAO,EAGT,KAAOA,EAAM3S,KAAK6qC,UAAUtqC,QAC1BP,KAAK6qC,UAAUl4B,GAAKtI,MAAMI,QAAU,OACpCkI,GAAO,GAIX4+B,aAAa7xC,UAAUs/B,mBAAqB,WAC1C,IAAI7/B,EAEJ,GAAIa,KAAK4N,KAAKg/B,YAAa,CACzB,IAAK5sC,KAAKsiB,gBAAkBtiB,KAAKyoC,mBAC/B,OAGF,GAAIzoC,KAAKyxC,UAAYzxC,KAAKi1B,eAAe4G,QAAS,CAEhD77B,KAAKqrC,WAAWpuB,aAAa,WAAYjd,KAAKi1B,eAAeC,MAAMrxB,EAAEL,EAAE,GAAK,KAAOxD,KAAKi1B,eAAeC,MAAMrxB,EAAEL,EAAE,GAAK,IAAMxD,KAAK62C,MAAQ,IAAM72C,KAAK82C,OACpJ33C,EAAWa,KAAKqrC,WAAWhhC,MAC3B,IAAIjL,EAAc,cAAgBY,KAAKi1B,eAAeC,MAAMrxB,EAAEL,EAAE,GAAK,OAASxD,KAAKi1B,eAAeC,MAAMrxB,EAAEL,EAAE,GAAK,MACjHrE,EAASynB,UAAYxnB,EACrBD,EAASy2C,gBAAkBx2C,CAAA,EAM/B,GAFAY,KAAKoqC,aAAaxB,YAAY5oC,KAAK4nC,aAAatE,YAAatjC,KAAKyoC,oBAE7DzoC,KAAKyoC,oBAAuBzoC,KAAKoqC,aAAa3B,mBAAnD,CAIA,IAAIhpC,EACAY,EAKAG,EACAO,EACAC,EANAI,EAAQ,EACRO,EAAkB3B,KAAKoqC,aAAa5B,gBACpC5kC,EAAU5D,KAAK4nC,aAAatE,YAAY1/B,EAM5C,IALAvD,EAAMuD,EAAQrD,OAKTd,EAAI,EAAGA,EAAIY,EAAKZ,GAAK,EACpBmE,EAAQnE,GAAGuB,EACbI,GAAS,GAETL,EAAWf,KAAK6qC,UAAUprC,GAC1BuB,EAAWhB,KAAKwxC,UAAU/xC,GAC1Be,EAAiBmB,EAAgBP,GACjCA,GAAS,EAELZ,EAAeyhB,KAAK/T,IACjBlO,KAAKyxC,SAIR1wC,EAASkc,aAAa,YAAazc,EAAe0N,IAHlDnN,EAASsJ,MAAMurC,gBAAkBp1C,EAAe0N,EAChDnN,EAASsJ,MAAMuc,UAAYpmB,EAAe0N,IAO9CnN,EAASsJ,MAAM2jC,QAAUxtC,EAAeY,EAEpCZ,EAAesiC,IAAMtiC,EAAeyhB,KAAK6gB,IAC3C9hC,EAASic,aAAa,eAAgBzc,EAAesiC,IAGnDtiC,EAAeuiC,IAAMviC,EAAeyhB,KAAK8gB,IAC3C/hC,EAASic,aAAa,SAAUzc,EAAeuiC,IAG7CviC,EAAewiC,IAAMxiC,EAAeyhB,KAAK+gB,KAC3ChiC,EAASic,aAAa,OAAQzc,EAAewiC,IAC7ChiC,EAASqJ,MAAM0sC,MAAQv2C,EAAewiC,KAK5C,GAAIhjC,KAAKi/B,UAAUpsB,UAAY7S,KAAKy0B,SAAWz0B,KAAKsiB,eAAiBtiB,KAAKiiB,MAAO,CAC/E,IAAIpe,EAAc7D,KAAKi/B,UAAUpsB,UAcjC,GAZI7S,KAAKsxC,YAAYzxB,IAAMhc,EAAYoO,QACrCjS,KAAKsxC,YAAYzxB,EAAIhc,EAAYoO,MACjCjS,KAAKqrC,WAAWpuB,aAAa,QAASpZ,EAAYoO,QAGhDjS,KAAKsxC,YAAY3vC,IAAMkC,EAAYqO,SACrClS,KAAKsxC,YAAY3vC,EAAIkC,EAAYqO,OACjClS,KAAKqrC,WAAWpuB,aAAa,SAAUpZ,EAAYqO,SAKjDlS,KAAKsxC,YAAYzxB,IAAMhc,EAAYoO,MAAQ,GAAcjS,KAAKsxC,YAAY3vC,IAAMkC,EAAYqO,OAAS,GAAclS,KAAKsxC,YAAYhyB,IAAMzb,EAAYyb,EAF7I,GAE2Jtf,KAAKsxC,YAAYtyB,IAAMnb,EAAYmb,EAF9L,EAE0M,CACrNhf,KAAKsxC,YAAYzxB,EAAIhc,EAAYoO,MAAQ,EACzCjS,KAAKsxC,YAAY3vC,EAAIkC,EAAYqO,OAAS,EAC1ClS,KAAKsxC,YAAYhyB,EAAIzb,EAAYyb,EALtB,EAMXtf,KAAKsxC,YAAYtyB,EAAInb,EAAYmb,EANtB,EAOXhf,KAAKqrC,WAAWpuB,aAAa,UAAWjd,KAAKsxC,YAAYhyB,EAAI,IAAMtf,KAAKsxC,YAAYtyB,EAAI,IAAMhf,KAAKsxC,YAAYzxB,EAAI,IAAM7f,KAAKsxC,YAAY3vC,GAC1IxC,EAAWa,KAAKqrC,WAAWhhC,MAC3B,IAAIwE,EAAe,aAAe7O,KAAKsxC,YAAYhyB,EAAI,MAAQtf,KAAKsxC,YAAYtyB,EAAI,MACpF7f,EAASynB,UAAY/X,EACrB1P,EAASy2C,gBAAkB/mC,CAAA,KAgDjCxI,gBAAgB,CAACkwB,YAAaC,aAAc6G,kBAAmBqU,gBAE/DA,eAAehyC,UAAUy3C,MAAQ,WAC/B,IAAIh4C,EAEAC,EACAK,EACAY,EAHAG,EAAMR,KAAK4hB,KAAKmwB,eAAexxC,OAKnC,IAAKpB,EAAI,EAAGA,EAAIqB,EAAKrB,GAAK,EAIxB,GAAkB,QAFlBC,EAAOY,KAAK4hB,KAAKmwB,eAAe5yC,IAEvB+L,KAAe,CACtBzL,EAAmBL,EAAKg4C,gBAAgB/sC,MACxChK,EAAiBjB,EAAK8Y,UAAU7N,MAChC,IAAItJ,EAAcf,KAAK2xC,GAAGnuC,EAAI,KAE1BxC,EAAS,4CACbvB,EAAiB43C,YAAct2C,EAC/BtB,EAAiB63C,kBAAoBv2C,EACrCV,EAAeqK,gBAJF,cAKbrK,EAAei1C,mBALF,cAMbj1C,EAAesK,sBANF,cAOblL,EAAiBmnB,UAAY5lB,EAC7BvB,EAAiBm2C,gBAAkB50C,CAAA,GAKzC0wC,eAAehyC,UAAUyyC,eAAiB,WAAa,EAEvDT,eAAehyC,UAAU4c,KAAO,WAAa,EAE7Co1B,eAAehyC,UAAUib,YAAc,WACrC,IACIxb,EACAC,EAFAK,EAAOO,KAAKsiB,cAIhB,GAAItiB,KAAKk8B,UAGP,IAFA98B,EAAMY,KAAKk8B,UAAU37B,OAEhBpB,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EACxBM,EAAOO,KAAKk8B,UAAU/8B,GAAG81B,eAAeC,MAAMjT,MAAQxiB,EAI1D,GAAIA,GAAQO,KAAK2xC,GAAG1vB,MAAQjiB,KAAK6D,GAAK7D,KAAK6D,EAAEoe,MAAQjiB,KAAK2qB,KAAO3qB,KAAK2qB,GAAG1I,MAAQjiB,KAAK4qB,GAAG3I,MAAQjiB,KAAK6qB,GAAG5I,OAASjiB,KAAK8qB,GAAG7I,MAAQjiB,KAAK+qB,GAAG9I,MAAQjiB,KAAKgrB,GAAG/I,MAAQjiB,KAAKilB,GAAGhD,MAAQjiB,KAAKQ,GAAKR,KAAKQ,EAAEyhB,KAAM,CAGvM,GAFAjiB,KAAK+7B,IAAItX,QAELzkB,KAAKk8B,UAGP,IAAK/8B,EAFLC,EAAMY,KAAKk8B,UAAU37B,OAAS,EAEhBpB,GAAK,EAAGA,GAAK,EAAG,CAC5B,IAAIkB,EAAUL,KAAKk8B,UAAU/8B,GAAG81B,eAAeC,MAC/Cl1B,KAAK+7B,IAAIpV,WAAWtmB,EAAQwD,EAAEL,EAAE,IAAKnD,EAAQwD,EAAEL,EAAE,GAAInD,EAAQwD,EAAEL,EAAE,IACjExD,KAAK+7B,IAAI3V,SAAS/lB,EAAQ4kB,GAAGzhB,EAAE,IAAI6iB,SAAShmB,EAAQ4kB,GAAGzhB,EAAE,IAAI8iB,QAAQjmB,EAAQ4kB,GAAGzhB,EAAE,IAClFxD,KAAK+7B,IAAI3V,SAAS/lB,EAAQyqB,GAAGtnB,GAAG6iB,SAAShmB,EAAQ0qB,GAAGvnB,GAAG8iB,QAAQjmB,EAAQ2qB,GAAGxnB,GAC1ExD,KAAK+7B,IAAItV,MAAM,EAAIpmB,EAAQU,EAAEyC,EAAE,GAAI,EAAInD,EAAQU,EAAEyC,EAAE,GAAI,EAAInD,EAAQU,EAAEyC,EAAE,IACvExD,KAAK+7B,IAAIpV,UAAUtmB,EAAQG,EAAEgD,EAAE,GAAInD,EAAQG,EAAEgD,EAAE,GAAInD,EAAQG,EAAEgD,EAAE,IAUnE,GANIxD,KAAK6D,EACP7D,KAAK+7B,IAAIpV,WAAW3mB,KAAK6D,EAAEL,EAAE,IAAKxD,KAAK6D,EAAEL,EAAE,GAAIxD,KAAK6D,EAAEL,EAAE,IAExDxD,KAAK+7B,IAAIpV,WAAW3mB,KAAK2qB,GAAGnnB,GAAIxD,KAAK4qB,GAAGpnB,EAAGxD,KAAK6qB,GAAGrnB,GAGjDxD,KAAKQ,EAAG,CACV,IAAIA,EAGFA,EADER,KAAK6D,EACM,CAAC7D,KAAK6D,EAAEL,EAAE,GAAKxD,KAAKQ,EAAEgD,EAAE,GAAIxD,KAAK6D,EAAEL,EAAE,GAAKxD,KAAKQ,EAAEgD,EAAE,GAAIxD,KAAK6D,EAAEL,EAAE,GAAKxD,KAAKQ,EAAEgD,EAAE,IAE9E,CAACxD,KAAK2qB,GAAGnnB,EAAIxD,KAAKQ,EAAEgD,EAAE,GAAIxD,KAAK4qB,GAAGpnB,EAAIxD,KAAKQ,EAAEgD,EAAE,GAAIxD,KAAK6qB,GAAGrnB,EAAIxD,KAAKQ,EAAEgD,EAAE,IAGvF,IAAIzC,EAAMgI,KAAKG,KAAKH,KAAKC,IAAIxI,EAAW,GAAI,GAAKuI,KAAKC,IAAIxI,EAAW,GAAI,GAAKuI,KAAKC,IAAIxI,EAAW,GAAI,IAElGQ,EAAU,CAACR,EAAW,GAAKO,EAAKP,EAAW,GAAKO,EAAKP,EAAW,GAAKO,GACrEK,EAAiB2H,KAAKG,KAAKlI,EAAQ,GAAKA,EAAQ,GAAKA,EAAQ,GAAKA,EAAQ,IAC1EW,EAAaoH,KAAKuY,MAAMtgB,EAAQ,GAAII,GACpCwC,EAAamF,KAAKuY,MAAMtgB,EAAQ,IAAKA,EAAQ,IACjDhB,KAAK+7B,IAAI1V,QAAQziB,GAAYwiB,SAASzkB,EAAA,CAGxC3B,KAAK+7B,IAAI3V,SAASpmB,KAAK8qB,GAAGtnB,GAAG6iB,SAASrmB,KAAK+qB,GAAGvnB,GAAG8iB,QAAQtmB,KAAKgrB,GAAGxnB,GACjExD,KAAK+7B,IAAI3V,SAASpmB,KAAKilB,GAAGzhB,EAAE,IAAI6iB,SAASrmB,KAAKilB,GAAGzhB,EAAE,IAAI8iB,QAAQtmB,KAAKilB,GAAGzhB,EAAE,IACzExD,KAAK+7B,IAAIpV,UAAU3mB,KAAKqY,WAAWsjB,SAAS9b,EAAI,EAAG7f,KAAKqY,WAAWsjB,SAASh6B,EAAI,EAAG,GACnF3B,KAAK+7B,IAAIpV,UAAU,EAAG,EAAG3mB,KAAK2xC,GAAGnuC,GACjC,IAAIK,GAAoB7D,KAAK4xC,SAAStqB,OAAOtnB,KAAK+7B,KAElD,IAAKl4B,GAAoB7D,KAAK2xC,GAAG1vB,OAASjiB,KAAK4hB,KAAKmwB,eAAgB,CAElE,IAAIljC,EACAZ,EACAC,EAEJ,IALA9O,EAAMY,KAAK4hB,KAAKmwB,eAAexxC,OAK1BpB,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EAGxB,GAAkB,QAFlB0P,EAAO7O,KAAK4hB,KAAKmwB,eAAe5yC,IAEvB+L,KAAe,CACtB,GAAIrH,EAAkB,CACpB,IAAIwK,EAAWrO,KAAK+7B,IAAI5U,SACxBjZ,EAAiBW,EAAKqJ,UAAU7N,OACjBuc,UAAYvY,EAC3BH,EAAe0nC,gBAAkBvnC,CAAA,CAG/BrO,KAAK2xC,GAAG1vB,QACVhU,EAAmBY,EAAKuoC,gBAAgB/sC,OACvBgtC,YAAcr3C,KAAK2xC,GAAGnuC,EAAI,KAC3CyK,EAAiBqpC,kBAAoBt3C,KAAK2xC,GAAGnuC,EAAI,MAKvDxD,KAAK+7B,IAAIlY,MAAM7jB,KAAK4xC,SAAA,EAIxB5xC,KAAKsiB,eAAA,CAAgB,EAGvBovB,eAAehyC,UAAUiW,aAAe,SAAUxW,GAChDa,KAAK+5B,kBAAkB56B,GAAA,EAAK,EAG9BuyC,eAAehyC,UAAUoU,QAAU,WAAa,EAEhD49B,eAAehyC,UAAUu6B,eAAiB,WACxC,OAAO,MAQT5zB,gBAAgB,CAACkwB,YAAakB,iBAAkByZ,aAAcC,cAAe9T,iBAAkB7G,aAAclC,mBAAoBud,eAEjIA,cAAcnyC,UAAUq/B,cAAgB,WACtC,IAAI5/B,EAAYa,KAAKqY,WAAW+D,cAAcpc,KAAKiT,WAC/C7T,EAAM,IAAIm4C,MAEVv3C,KAAK4N,KAAKQ,SACZpO,KAAKw3C,UAAYlqC,SAAS,SAC1BtN,KAAKw3C,UAAUv6B,aAAa,QAASjd,KAAKiT,UAAU4M,EAAI,MACxD7f,KAAKw3C,UAAUv6B,aAAa,SAAUjd,KAAKiT,UAAUtR,EAAI,MACzD3B,KAAKw3C,UAAUpjC,eAAe,+BAAgC,OAAQjV,GACtEa,KAAK25B,aAAaplB,YAAYvU,KAAKw3C,WACnCx3C,KAAK05B,YAAYzc,aAAa,QAASjd,KAAKiT,UAAU4M,GACtD7f,KAAK05B,YAAYzc,aAAa,SAAUjd,KAAKiT,UAAUtR,IAEvD3B,KAAK25B,aAAaplB,YAAYnV,GAGhCA,EAAI6U,YAAc,YAClB7U,EAAI+H,IAAMhI,EAENa,KAAK4N,KAAKwwB,IACZp+B,KAAK05B,YAAYzc,aAAa,KAAMjd,KAAK4N,KAAKwwB,GAAA,EAiClD/3B,gBAAgB,CAACmxB,cAAesa,oBAChCA,mBAAmBpyC,UAAU26B,UAAY+Q,YAAY1rC,UAAU26B,UAE/DyX,mBAAmBpyC,UAAU46B,qBAAuB,WAClD,KAAOt6B,KAAKu7B,gBAAgBh7B,QACZP,KAAKu7B,gBAAgB94B,MAC3Bq8B,gBAAA,EAIZgT,mBAAmBpyC,UAAU6tC,mBAAqB,SAAUpuC,EAASC,GACnE,IAAIK,EAAgBN,EAAQ86B,iBAE5B,GAAKx6B,EAAL,CAIA,IAAIY,EAAQL,KAAK0O,OAAOtP,GAExB,GAAKiB,EAAMo3C,KAAQz3C,KAAKmrC,WA4BtBnrC,KAAK03C,iBAAiBj4C,EAAeL,QA3BrC,GAAIY,KAAK+xC,eACP/xC,KAAK03C,iBAAiBj4C,EAAeL,OAChC,CAML,IALA,IACIoB,EACAO,EAFAC,EAAI,EAKDA,EAAI5B,GACLY,KAAKo6B,SAASp5B,KAAA,IAAMhB,KAAKo6B,SAASp5B,IAAehB,KAAKo6B,SAASp5B,GAAGi5B,iBACpEl5B,EAAYf,KAAKo6B,SAASp5B,GAE1BR,GADgBR,KAAK0O,OAAO1N,GAAGy2C,IAAMz3C,KAAK23C,wBAAwB32C,GAAKD,EAAUk5B,mBAC/Cz5B,GAGpCQ,GAAK,EAGHR,EACGH,EAAMo3C,KAAQz3C,KAAKmrC,YACtBnrC,KAAK25B,aAAa8T,aAAahuC,EAAee,GAEtCH,EAAMo3C,KAAQz3C,KAAKmrC,YAC7BnrC,KAAK25B,aAAaplB,YAAY9U,EAAA,IAQtCqyC,mBAAmBpyC,UAAUk7B,YAAc,SAAUz7B,GACnD,OAAKa,KAAKmrC,WAIH,IAAIiG,cAAcjyC,EAAMa,KAAKqY,WAAYrY,MAHvC,IAAI0iC,gBAAgBvjC,EAAMa,KAAKqY,WAAYrY,KAAA,EAMtD8xC,mBAAmBpyC,UAAUm7B,WAAa,SAAU17B,GAClD,OAAKa,KAAKmrC,WAIH,IAAIoG,aAAapyC,EAAMa,KAAKqY,WAAYrY,MAHtC,IAAI4qC,qBAAqBzrC,EAAMa,KAAKqY,WAAYrY,KAAA,EAM3D8xC,mBAAmBpyC,UAAUo7B,aAAe,SAAU37B,GAEpD,OADAa,KAAKgyC,OAAS,IAAIN,eAAevyC,EAAMa,KAAKqY,WAAYrY,MACjDA,KAAKgyC,MAAA,EAGdF,mBAAmBpyC,UAAU86B,YAAc,SAAUr7B,GACnD,OAAKa,KAAKmrC,WAIH,IAAI0G,cAAc1yC,EAAMa,KAAKqY,WAAYrY,MAHvC,IAAIu9B,cAAcp+B,EAAMa,KAAKqY,WAAYrY,KAAA,EAMpD8xC,mBAAmBpyC,UAAUg7B,YAAc,SAAUv7B,GACnD,OAAKa,KAAKmrC,WAIH,IAAIgG,cAAchyC,EAAMa,KAAKqY,WAAYrY,MAHvC,IAAI8qC,cAAc3rC,EAAMa,KAAKqY,WAAYrY,KAAA,EAMpD8xC,mBAAmBpyC,UAAUi7B,WAAayQ,YAAY1rC,UAAUi7B,WAEhEmX,mBAAmBpyC,UAAUi4C,wBAA0B,SAAUx4C,GAI/D,IAHA,IAAIC,EAAI,EACJK,EAAMO,KAAK+xC,eAAexxC,OAEvBnB,EAAIK,GAAK,CACd,GAAIO,KAAK+xC,eAAe3yC,GAAGw4C,UAAYz4C,GAAOa,KAAK+xC,eAAe3yC,GAAGy4C,QAAU14C,EAC7E,OAAOa,KAAK+xC,eAAe3yC,GAAGg4C,gBAGhCh4C,GAAK,EAGP,OAAO,MAGT0yC,mBAAmBpyC,UAAUo4C,sBAAwB,SAAU34C,EAAKC,GAClE,IACIK,EACAY,EAFAG,EAAkB0F,UAAU,OAGhCkE,SAAS5J,GACT,IAAIO,EAAYmF,UAAU,OAG1B,GAFAkE,SAASrJ,GAEI,OAAT3B,EAAe,EACjBK,EAAQe,EAAgB6J,OAClB4H,MAAQjS,KAAKqY,WAAWsjB,SAAS9b,EAAI,KAC3CpgB,EAAMyS,OAASlS,KAAKqY,WAAWsjB,SAASh6B,EAAI,KAE5ClC,EAAMkL,sBADO,UAEblL,EAAM61C,mBAFO,UAGb71C,EAAMiL,gBAHO,UAKb,IAAI1J,EAAS,6CADbX,EAAiBU,EAAUsJ,OAEZuc,UAAY5lB,EAC3BX,EAAeu1C,gBAAkB50C,CAAA,CAGnCR,EAAgB+T,YAAYxT,GAE5B,IAAIK,EAAsB,CACxB8W,UAAWnX,EACXq2C,gBAAiB52C,EACjBo3C,SAAUz4C,EACV04C,OAAQ14C,EACR+L,KAAM9L,GAGR,OADAY,KAAK+xC,eAAervC,KAAKtB,GAClBA,CAAA,EAGT0wC,mBAAmBpyC,UAAUq4C,kBAAoB,WAC/C,IAAI54C,EAEAC,EADAK,EAAMO,KAAK0O,OAAOnO,OAElBF,EAAmB,GAEvB,IAAKlB,EAAI,EAAGA,EAAIM,EAAKN,GAAK,EACpBa,KAAK0O,OAAOvP,GAAGs4C,KAA6B,IAAtBz3C,KAAK0O,OAAOvP,GAAGsP,IACd,OAArBpO,IACFA,EAAmB,KACnBjB,EAA0BY,KAAK83C,sBAAsB34C,EAAG,OAG1DC,EAAwBy4C,OAAS9uC,KAAKO,IAAIlK,EAAwBy4C,OAAQ14C,KAEjD,OAArBkB,IACFA,EAAmB,KACnBjB,EAA0BY,KAAK83C,sBAAsB34C,EAAG,OAG1DC,EAAwBy4C,OAAS9uC,KAAKO,IAAIlK,EAAwBy4C,OAAQ14C,IAM9E,IAAKA,GAFLM,EAAMO,KAAK+xC,eAAexxC,QAEX,EAAGpB,GAAK,EAAGA,GAAK,EAC7Ba,KAAKg4C,YAAYzjC,YAAYvU,KAAK+xC,eAAe5yC,GAAGi4C,gBAAA,EAIxDtF,mBAAmBpyC,UAAUg4C,iBAAmB,SAAUv4C,EAAMC,GAI9D,IAHA,IAAIK,EAAI,EACJY,EAAML,KAAK+xC,eAAexxC,OAEvBd,EAAIY,GAAK,CACd,GAAIjB,GAAOY,KAAK+xC,eAAetyC,GAAGo4C,OAAQ,CAIxC,IAHA,IACIr3C,EADAO,EAAIf,KAAK+xC,eAAetyC,GAAGm4C,SAGxB72C,EAAI3B,GACLY,KAAKo6B,SAASr5B,IAAMf,KAAKo6B,SAASr5B,GAAGk5B,iBACvCz5B,EAAcR,KAAKo6B,SAASr5B,GAAGk5B,kBAGjCl5B,GAAK,EAGHP,EACFR,KAAK+xC,eAAetyC,GAAGyY,UAAUu1B,aAAatuC,EAAMqB,GAEpDR,KAAK+xC,eAAetyC,GAAGyY,UAAU3D,YAAYpV,GAG/C,MAGFM,GAAK,IAITqyC,mBAAmBpyC,UAAUkY,gBAAkB,SAAUzY,GACvD,IAAIC,EAAc8G,UAAU,OACxBzG,EAAUO,KAAK07B,cAAczjB,QAC7B5X,EAAQjB,EAAYiL,MACxBhK,EAAM4R,MAAQ9S,EAAS0gB,EAAI,KAC3Bxf,EAAM6R,OAAS/S,EAASwC,EAAI,KAC5B3B,KAAKg4C,YAAc54C,EACnBgL,SAAShL,GACTiB,EAAMyK,eAAiB,OACvBzK,EAAM2K,kBAAoB,OAC1B3K,EAAM0K,qBAAuB,OAEzB/K,KAAKm1B,aAAayW,WACpBxsC,EAAY6d,aAAa,QAASjd,KAAKm1B,aAAayW,WAGtDnsC,EAAQ8U,YAAYnV,GACpBiB,EAAM43C,SAAW,SACjB,IAAIz3C,EAAM8M,SAAS,OACnB9M,EAAIyc,aAAa,QAAS,KAC1Bzc,EAAIyc,aAAa,SAAU,KAC3B7S,SAAS5J,GACTR,KAAKg4C,YAAYzjC,YAAY/T,GAC7B,IAAIO,EAAOuM,SAAS,QACpB9M,EAAI+T,YAAYxT,GAChBf,KAAK4N,KAAOzO,EAEZa,KAAKy7B,gBAAgBt8B,EAAUqB,GAC/BR,KAAKqY,WAAWC,KAAOvX,EACvBf,KAAK0O,OAASvP,EAASuP,OACvB1O,KAAK25B,aAAe35B,KAAKg4C,YACzBh4C,KAAK+3C,oBACL/3C,KAAKya,qBAAA,EAGPq3B,mBAAmBpyC,UAAUoU,QAAU,WAOrC,IAAI3U,EANAa,KAAK07B,cAAczjB,UACrBjY,KAAK07B,cAAczjB,QAAQkF,UAAY,IAGzCnd,KAAK07B,cAAcxjB,UAAY,KAC/BlY,KAAKqY,WAAWC,KAAO,KAEvB,IAAIlZ,EAAMY,KAAK0O,OAAS1O,KAAK0O,OAAOnO,OAAS,EAE7C,IAAKpB,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EACxBa,KAAKo6B,SAASj7B,GAAG2U,UAGnB9T,KAAKo6B,SAAS75B,OAAS,EACvBP,KAAKisC,WAAA,EACLjsC,KAAK07B,cAAgB,MAGvBoW,mBAAmBpyC,UAAU+a,oBAAsB,WACjD,IAIItb,EACAC,EACAK,EACAY,EAPAG,EAAeR,KAAK07B,cAAczjB,QAAQ0Z,YAC1C5wB,EAAgBf,KAAK07B,cAAczjB,QAAQu9B,aAC3Cx0C,EAAaR,EAAeO,EACbf,KAAKqY,WAAWsjB,SAAS9b,EAAI7f,KAAKqY,WAAWsjB,SAASh6B,EAMtDX,GACjB7B,EAAKqB,EAAeR,KAAKqY,WAAWsjB,SAAS9b,EAC7CzgB,EAAKoB,EAAeR,KAAKqY,WAAWsjB,SAAS9b,EAC7CpgB,EAAK,EACLY,GAAMU,EAAgBf,KAAKqY,WAAWsjB,SAASh6B,GAAKnB,EAAeR,KAAKqY,WAAWsjB,SAAS9b,IAAM,IAElG1gB,EAAK4B,EAAgBf,KAAKqY,WAAWsjB,SAASh6B,EAC9CvC,EAAK2B,EAAgBf,KAAKqY,WAAWsjB,SAASh6B,EAC9ClC,GAAMe,EAAeR,KAAKqY,WAAWsjB,SAAS9b,GAAK9e,EAAgBf,KAAKqY,WAAWsjB,SAASh6B,IAAM,EAClGtB,EAAK,GAGP,IAAIe,EAAQpB,KAAKg4C,YAAY3tC,MAC7BjJ,EAAMw0C,gBAAkB,YAAcz2C,EAAK,YAAcC,EAAK,gBAAkBK,EAAK,IAAMY,EAAK,QAChGe,EAAMwlB,UAAYxlB,EAAMw0C,eAAA,EAG1B9D,mBAAmBpyC,UAAUib,YAAcywB,YAAY1rC,UAAUib,YAEjEm3B,mBAAmBpyC,UAAU4c,KAAO,WAClCtc,KAAKg4C,YAAY3tC,MAAMI,QAAU,QAGnCqnC,mBAAmBpyC,UAAU6c,KAAO,WAClCvc,KAAKg4C,YAAY3tC,MAAMI,QAAU,SAGnCqnC,mBAAmBpyC,UAAU4a,UAAY,WAGvC,GAFAta,KAAKg7B,gBAEDh7B,KAAKgyC,OACPhyC,KAAKgyC,OAAOmF,YACP,CACL,IAEIh4C,EAFAC,EAASY,KAAKqY,WAAWsjB,SAAS9b,EAClCpgB,EAAUO,KAAKqY,WAAWsjB,SAASh6B,EAEnCtB,EAAML,KAAK+xC,eAAexxC,OAE9B,IAAKpB,EAAI,EAAGA,EAAIkB,EAAKlB,GAAK,EAAG,CAC3B,IAAIqB,EAAQR,KAAK+xC,eAAe5yC,GAAGi4C,gBAAgB/sC,MACnD7J,EAAM82C,kBAAoBvuC,KAAKG,KAAKH,KAAKC,IAAI5J,EAAQ,GAAK2J,KAAKC,IAAIvJ,EAAS,IAAM,KAClFe,EAAM62C,YAAc72C,EAAM82C,iBAAA,IAKhCxF,mBAAmBpyC,UAAUsa,wBAA0B,SAAU7a,GAC/D,IAAIC,EACAK,EAAMN,EAAOoB,OACbF,EAAoB6F,UAAU,OAElC,IAAK9G,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EACxB,GAAID,EAAOC,GAAGwW,GAAI,CAChB,IAAIpV,EAAOR,KAAKy6B,WAAWt7B,EAAOC,GAAIiB,EAAmBL,KAAKqY,WAAWuJ,KAAM,MAC/EphB,EAAKiZ,kBACLzZ,KAAKqY,WAAWb,iBAAiBzB,oBAAoBvV,EAAA,GAiB3D6F,gBAAgB,CAACyrC,mBAAoB7G,aAAciG,cAAee,cAClEA,aAAavyC,UAAUw4C,6BAA+BjG,aAAavyC,UAAUm+B,wBAE7EoU,aAAavyC,UAAUm+B,wBAA0B,WAC/C79B,KAAKk4C,+BAGDl4C,KAAK4N,KAAKQ,SACZpO,KAAKqrC,WAAWpuB,aAAa,QAASjd,KAAK4N,KAAKiS,GAChD7f,KAAKqrC,WAAWpuB,aAAa,SAAUjd,KAAK4N,KAAKjM,GACjD3B,KAAK+9B,mBAAqB/9B,KAAK05B,aAE/B15B,KAAK+9B,mBAAqB/9B,KAAK25B,YAAA,EAInCsY,aAAavyC,UAAUg4C,iBAAmB,SAAUv4C,EAAMC,GAIxD,IAHA,IACIK,EADAY,EAAI,EAGDA,EAAIjB,GACLY,KAAKo6B,SAAS/5B,IAAML,KAAKo6B,SAAS/5B,GAAG45B,iBACvCx6B,EAAcO,KAAKo6B,SAAS/5B,GAAG45B,kBAGjC55B,GAAK,EAGHZ,EACFO,KAAK25B,aAAa8T,aAAatuC,EAAMM,GAErCO,KAAK25B,aAAaplB,YAAYpV,EAAA,EAIlC8yC,aAAavyC,UAAU+6B,WAAa,SAAUt7B,GAC5C,OAAKa,KAAKmrC,WAIH,IAAI8G,aAAa9yC,EAAMa,KAAKqY,WAAYrY,MAHtC,IAAIkrC,eAAe/rC,EAAMa,KAAKqY,WAAYrY,KAAA,EAoCrDqG,gBAAgB,CAACyrC,oBAAqBI,gBAEtCA,eAAexyC,UAAU+6B,WAAa,SAAUt7B,GAC9C,OAAKa,KAAKmrC,WAIH,IAAI8G,aAAa9yC,EAAMa,KAAKqY,WAAYrY,MAHtC,IAAIkrC,eAAe/rC,EAAMa,KAAKqY,WAAYrY,KAAA,EAMrD,IAAIm4C,wBACK,SAAUh5C,GACf,SAASC,EAAmBA,GAI1B,IAHA,IAAIK,EAAI,EACJY,EAAMlB,EAAKuP,OAAOnO,OAEfd,EAAIY,GAAK,CACd,GAAIlB,EAAKuP,OAAOjP,GAAGiW,KAAOtW,GAAQD,EAAKuP,OAAOjP,GAAG07B,MAAQ/7B,EACvD,OAAOD,EAAKi7B,SAAS36B,GAAGo5B,eAG1Bp5B,GAAK,EAGP,OAAO,KAcT,OAXAJ,OAAOgC,eAAejC,EAAoB,QAAS,CACjD2C,MAAO5C,EAAKyO,KAAK8H,KAEnBtW,EAAmBg5C,MAAQh5C,EAC3BA,EAAmBi5C,YAAc,EACjCj5C,EAAmB8S,OAAS/S,EAAKyO,KAAKjM,GAAKxC,EAAKkZ,WAAWsjB,SAASh6B,EACpEvC,EAAmB6S,MAAQ9S,EAAKyO,KAAKiS,GAAK1gB,EAAKkZ,WAAWsjB,SAAS9b,EACnEzgB,EAAmBi5C,YAAc,EACjCj5C,EAAmBk5C,cAAgB,EAAIn5C,EAAKkZ,WAAW9B,UACvDnX,EAAmBm5C,iBAAmB,EACtCn5C,EAAmBo5C,UAAYr5C,EAAKuP,OAAOnO,OACpCnB,CAAA,EAIPq5C,YAAc,WAChB,IAAIt5C,EAAK,CACTA,gBAEA,SAAyBA,GACvB,IAAIC,EAAa,EACbK,EAAY,GA+BhBN,EAAU6X,SAASlB,cAAgBqiC,wBAAwBh5C,EAAU6X,UACrE7X,EAAU6X,SAASqB,WAAWb,iBAAiBzB,oBAAoB5W,EAAU6X,UAC7E7X,EAAU6X,SAASqB,WAAWqgC,eA/B9B,WACEt5C,GAAc,GA+BhBD,EAAU6X,SAASqB,WAAWsgC,cA5B9B,WAGqB,KAFnBv5C,GAAc,IAahB,WACE,IAAID,EACAC,EAAMK,EAAUc,OAEpB,IAAKpB,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EACxBM,EAAUN,GAAGif,UAGf3e,EAAUc,OAAS,EARrB,EAVI,EAyBJpB,EAAU6X,SAASqB,WAAWugC,2BArB9B,SAAoCz5C,IACK,IAAnCM,EAAUkB,QAAQxB,IACpBM,EAAUiD,KAAKvD,EAAA,IAsBrB,OAAOA,CAAA,CA5CS,GA+Cd05C,qBAAuB,WACzB,SAAS15C,EAAcA,EAAMC,GAC3BY,KAAK84C,MAAQ35C,EACba,KAAK+4C,MAAQ35C,CAAA,CAiDf,OA9CAC,OAAOgC,eAAelC,EAAcO,UAAW,WAAY,CACzDmD,IAAK,WAKH,OAJI7C,KAAK84C,MAAM5gB,KAAK1pB,GAClBxO,KAAK84C,MAAM5gB,KAAKxV,WAGX1iB,KAAK84C,MAAM5gB,IAAA,IAGtB74B,OAAOgC,eAAelC,EAAcO,UAAW,cAAe,CAC5DmD,IAAK,WAKH,OAJI7C,KAAK84C,MAAMrpC,GAAGjB,GAChBxO,KAAK84C,MAAMrpC,GAAGiT,WAGS,IAAlB1iB,KAAK84C,MAAMrpC,GAAGjM,CAAA,IAIP,SAAqBpE,GACrC,IAEIK,EAFAY,EAAmB+H,iBAAiBhJ,EAAY04B,SAASv3B,QAGzDC,EAAMpB,EAAY04B,SAASv3B,OAE/B,IAAKd,EAAI,EAAGA,EAAIe,EAAKf,GAAK,EACxBY,EAAiBZ,GAAK,IAAIN,EAAcC,EAAY04B,SAASr4B,GAAIL,EAAYkP,gBAAgB7O,IAiB/F,OAdmB,SAAsBN,GAGvC,IAFAM,EAAI,EAEGA,EAAIe,GAAK,CACd,GAAIpB,EAAYkP,gBAAgB7O,GAAGiW,KAAOvW,EACxC,OAAOkB,EAAiBZ,GAG1BA,GAAK,EAGP,OAAO,OA9Cc,GAuDvBu5C,4BAA8B,WAChC,IAAI75C,EAA6B,CAC/BshB,GAAI,EACJjd,EAAG,EACHwe,KAAM,GAEJ5iB,EAA+B,CACjCqhB,GAAI,CAAC,EAAG,EAAG,GACXjd,EAAG,CAAC,EAAG,EAAG,GACVwe,KAAM,GAGR,SAASviB,EAAiBN,EAAiBC,EAAUK,GACnDJ,OAAOgC,eAAelC,EAAiB,WAAY,CACjD0D,IAAK,WACH,OAAOzD,EAAS65C,kBAAkB75C,EAASwiB,KAAK/L,aAAA,IAGpD1W,EAAgB+5C,QAAU95C,EAASuhB,UAAYvhB,EAASuhB,UAAUpgB,OAAS,EAE3EpB,EAAgBkvC,IAAM,SAAUhuC,GAC9B,IAAKlB,EAAgB+5C,QACnB,OAAO,EAGT,IAAI14C,EAGFA,EADE,MAAOpB,EAASuhB,UAAUtgB,EAAM,GAC1BjB,EAASuhB,UAAUtgB,EAAM,GAAGU,EAC3B,MAAO3B,EAASuhB,UAAUtgB,EAAM,GACjCjB,EAASuhB,UAAUtgB,EAAM,GAAGjB,EAE5BA,EAASuhB,UAAUtgB,EAAM,GAAGU,EAGtC,IAAIA,EAAqB,mBAATtB,EAA4B,IAAIyb,OAAO1a,GAASnB,OAAOe,OAAO,CAAC,EAAGI,GAIlF,OAFAO,EAAUmU,KAAO9V,EAASuhB,UAAUtgB,EAAM,GAAGlB,EAAIC,EAASwd,KAAKgF,KAAKvJ,WAAW9B,UAC/ExV,EAAUgB,MAAiB,mBAATtC,EAA4Be,EAAM,GAAKA,EAClDO,CAAA,EAGT5B,EAAgBg6C,YAAc/5C,EAASisB,eACvClsB,EAAgBi6C,YAAch6C,EAASi6C,eACvCl6C,EAAgBm6C,eAAiBl6C,EAAS65C,kBAC1C95C,EAAgBo6C,cAAgBn6C,EAASm6C,aAAA,CA0D3C,SAASl5C,IACP,OAAOlB,CAAA,CAGT,OAAO,SAAUqB,GACf,OAAKA,EAIqB,mBAAtBA,EAASggB,SAhEf,SAAyCphB,GAClCA,GAAc,OAAQA,IACzBA,EAAWD,GAGb,IAAIkB,EAAO,EAAIjB,EAAS4iB,KACpBxhB,EAAMpB,EAASqhB,GAAKpgB,EACpBU,EAAkB,IAAIma,OAAO1a,GAIjC,OAFAO,EAAgBgB,MAAQvB,EACxBf,EAAiBsB,EAAiB3B,EAAU,kBACrC,WAcL,OAbIA,EAASoP,GACXpP,EAASsjB,WAGXliB,EAAMpB,EAASoE,EAAInD,EAEfU,EAAgBgB,QAAUvB,KAC5BO,EAAkB,IAAIma,OAAO1a,IAEbuB,MAAQvB,EACxBf,EAAiBsB,EAAiB3B,EAAU,mBAGvC2B,CAAA,EAzBX,CAiE2CP,GApC3C,SAA2CrB,GACpCA,GAAc,OAAQA,IACzBA,EAAWC,GAGb,IAAIiB,EAAO,EAAIlB,EAAS6iB,KACpBxhB,EAAMrB,EAASyO,MAAQzO,EAASyO,KAAKhK,GAAKzE,EAASshB,GAAGlgB,OACtDQ,EAAkBiH,iBAAiB,UAAWxH,GAC9CQ,EAAWgH,iBAAiB,UAAWxH,GAG3C,OAFAO,EAAgBgB,MAAQf,EACxBvB,EAAiBsB,EAAiB5B,EAAU,oBACrC,WACDA,EAASqP,GACXrP,EAASujB,WAGX,IAAK,IAAItjB,EAAI,EAAGA,EAAIoB,EAAKpB,GAAK,EAC5B4B,EAAS5B,GAAKD,EAASqE,EAAEpE,GAAKiB,EAC9BU,EAAgB3B,GAAK4B,EAAS5B,GAGhC,OAAO2B,CAAA,EArBX,CAuC2CP,GAPhCH,CAAA,EA7GqB,GAwH9Bm5C,6BACK,SAAUr6C,GACf,SAASC,EAAcD,GACrB,OAAQA,GACN,IAAK,QACL,IAAK,QACL,IAAK,aACL,KAAK,EACH,OAAOC,EAAcqnB,MAEvB,IAAK,WACL,IAAK,WACL,IAAK,gBACL,IAAK,gBACL,KAAK,GACH,OAAOrnB,EAAcq6C,SAEvB,IAAK,gBACH,OAAOr6C,EAAcs6C,UAEvB,IAAK,gBACH,OAAOt6C,EAAcu6C,UAEvB,IAAK,WACL,IAAK,WACL,IAAK,gBACL,KAAK,EACH,OAAOv6C,EAAckL,SAEvB,IAAK,kBACH,OAAOlL,EAAcw6C,UAEvB,IAAK,kBACH,OAAOx6C,EAAcy6C,UAEvB,IAAK,kBACH,OAAOz6C,EAAc06C,UAEvB,IAAK,cACL,IAAK,cACL,IAAK,eACL,IAAK,mBACL,KAAK,EACH,OAAO16C,EAAc26C,YAEvB,IAAK,UACL,IAAK,UACL,KAAK,GACH,OAAO36C,EAAc4uC,QAEvB,QACE,OAAO,MAoBb,IAAIvuC,EAEAY,EAEAG,EAEAO,EA8CJ,OApEA1B,OAAOgC,eAAejC,EAAe,WAAY,CAC/CyD,IAAKm2C,4BAA4B75C,EAAUM,GAAKN,EAAU6rB,MAE5D3rB,OAAOgC,eAAejC,EAAe,YAAa,CAChDyD,IAAKm2C,4BAA4B75C,EAAU6rB,IAAM7rB,EAAUM,KAE7DJ,OAAOgC,eAAejC,EAAe,YAAa,CAChDyD,IAAKm2C,4BAA4B75C,EAAU2rB,MAE7CzrB,OAAOgC,eAAejC,EAAe,YAAa,CAChDyD,IAAKm2C,4BAA4B75C,EAAU4rB,MAE7C1rB,OAAOgC,eAAejC,EAAe,QAAS,CAC5CyD,IAAKm2C,4BAA4B75C,EAAU4B,KAWzC5B,EAAU0E,EACZ9C,EAAoBi4C,4BAA4B75C,EAAU0E,IAE1DpE,EAAMu5C,4BAA4B75C,EAAUwrB,IAC5CtqB,EAAM24C,4BAA4B75C,EAAUyrB,IAExCzrB,EAAU0rB,KACZrqB,EAAMw4C,4BAA4B75C,EAAU0rB,MAIhDxrB,OAAOgC,eAAejC,EAAe,WAAY,CAC/CyD,IAAK,WACH,OAAI1D,EAAU0E,EACL9C,IAGF,CAACtB,IAAOY,IAAOG,EAAMA,IAAQ,MAGxCnB,OAAOgC,eAAejC,EAAe,YAAa,CAChDyD,IAAKm2C,4BAA4B75C,EAAUwrB,MAE7CtrB,OAAOgC,eAAejC,EAAe,YAAa,CAChDyD,IAAKm2C,4BAA4B75C,EAAUyrB,MAE7CvrB,OAAOgC,eAAejC,EAAe,YAAa,CAChDyD,IAAKm2C,4BAA4B75C,EAAU0rB,MAE7CxrB,OAAOgC,eAAejC,EAAe,cAAe,CAClDyD,IAAKm2C,4BAA4B75C,EAAUqB,KAE7CnB,OAAOgC,eAAejC,EAAe,UAAW,CAC9CyD,IAAKm2C,4BAA4B75C,EAAUiC,KAE7C/B,OAAOgC,eAAejC,EAAe,OAAQ,CAC3CyD,IAAKm2C,4BAA4B75C,EAAUyQ,MAE7CvQ,OAAOgC,eAAejC,EAAe,WAAY,CAC/CyD,IAAKm2C,4BAA4B75C,EAAU0Q,MAE7CxQ,OAAOgC,eAAejC,EAAe,cAAe,CAClDyD,IAAKm2C,4BAA4B75C,EAAU8lB,MAEtC7lB,CAAA,EAIP46C,yBAA2B,WAC7B,SAAS76C,EAAUA,GACjB,IAAIC,EAAa,IAAImmB,OAWrB,YAXqB,IAEjBpmB,EACea,KAAKmoC,MAAMlT,eAAeC,MAAM7J,eAAelsB,GAErD0kB,MAAMzkB,GAEEY,KAAKmoC,MAAMlT,eAAeC,MAChChK,cAAc9rB,GAGtBA,CAAA,CAGT,SAASA,EAAWD,EAAKC,GACvB,IAAIK,EAAaO,KAAKi6C,UAAU76C,GAIhC,OAHAK,EAAWgmB,MAAM,IAAM,EACvBhmB,EAAWgmB,MAAM,IAAM,EACvBhmB,EAAWgmB,MAAM,IAAM,EAChBzlB,KAAKk6C,WAAWz6C,EAAYN,EAAA,CAGrC,SAASM,EAAQN,EAAKC,GACpB,IAAIK,EAAaO,KAAKi6C,UAAU76C,GAChC,OAAOY,KAAKk6C,WAAWz6C,EAAYN,EAAA,CAGrC,SAASkB,EAAalB,EAAKC,GACzB,IAAIK,EAAaO,KAAKi6C,UAAU76C,GAIhC,OAHAK,EAAWgmB,MAAM,IAAM,EACvBhmB,EAAWgmB,MAAM,IAAM,EACvBhmB,EAAWgmB,MAAM,IAAM,EAChBzlB,KAAKm6C,YAAY16C,EAAYN,EAAA,CAGtC,SAASqB,EAAUrB,EAAKC,GACtB,IAAIK,EAAaO,KAAKi6C,UAAU76C,GAChC,OAAOY,KAAKm6C,YAAY16C,EAAYN,EAAA,CAGtC,SAAS4B,EAAW5B,EAAQC,GAC1B,GAAIY,KAAKmoC,MAAMjM,WAAal8B,KAAKmoC,MAAMjM,UAAU37B,OAAQ,CACvD,IAAId,EACAY,EAAML,KAAKmoC,MAAMjM,UAAU37B,OAE/B,IAAKd,EAAI,EAAGA,EAAIY,EAAKZ,GAAK,EACxBO,KAAKmoC,MAAMjM,UAAUz8B,GAAGw1B,eAAeC,MAAMhK,cAAc/rB,EAAA,CAI/D,OAAOA,EAAO8mB,kBAAkB7mB,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAAM,GAG5D,SAAS4B,EAAY7B,EAAQC,GAC3B,GAAIY,KAAKmoC,MAAMjM,WAAal8B,KAAKmoC,MAAMjM,UAAU37B,OAAQ,CACvD,IAAId,EACAY,EAAML,KAAKmoC,MAAMjM,UAAU37B,OAE/B,IAAKd,EAAI,EAAGA,EAAIY,EAAKZ,GAAK,EACxBO,KAAKmoC,MAAMjM,UAAUz8B,GAAGw1B,eAAeC,MAAMhK,cAAc/rB,EAAA,CAI/D,OAAOA,EAAOqoB,aAAapoB,EAAA,CAG7B,SAASgC,EAASjC,GAChB,IAAIC,EAAa,IAAImmB,OAKrB,GAJAnmB,EAAWqlB,QAEXzkB,KAAKmoC,MAAMlT,eAAeC,MAAMhK,cAAc9rB,GAE1CY,KAAKmoC,MAAMjM,WAAal8B,KAAKmoC,MAAMjM,UAAU37B,OAAQ,CACvD,IAAId,EACAY,EAAML,KAAKmoC,MAAMjM,UAAU37B,OAE/B,IAAKd,EAAI,EAAGA,EAAIY,EAAKZ,GAAK,EACxBO,KAAKmoC,MAAMjM,UAAUz8B,GAAGw1B,eAAeC,MAAMhK,cAAc9rB,GAG7D,OAAOA,EAAWooB,aAAaroB,EAAA,CAGjC,OAAOC,EAAWooB,aAAaroB,EAAA,CAGjC,SAASwC,IACP,MAAO,CAAC,EAAG,EAAG,EAAG,GAGnB,OAAO,SAAUiC,GACf,IAAIC,EAUJ,SAASgL,EAAmB1P,GAC1B,OAAQA,GACN,IAAK,0BACL,IAAK,WACL,KAAK,EACH,OAAO0P,EAAmBqqB,eAE5B,KAAK,EACL,KAAK,EACL,IAAK,YACL,IAAK,YACL,IAAK,uBACH,OAAOr1B,EAET,KAAK,EACL,IAAK,qBACL,IAAK,UACL,IAAK,UACH,OAAOgL,EAAmBouB,OAE5B,IAAK,uBACH,OAAOpuB,EAAmByqB,cAE5B,QACE,OAAO,MAIbzqB,EAAmBorC,UAAY96C,EAC/B0P,EAAmBsrC,YAAcn5C,EACjC6N,EAAmBqrC,WAAan5C,EAChC8N,EAAmBurC,QAAU36C,EAC7BoP,EAAmBwrC,WAAaj7C,EAChCyP,EAAmByrC,UAAY95C,EAC/BqO,EAAmB0rC,aAAel6C,EAClCwO,EAAmB2rC,OAAS/6C,EAC5BoP,EAAmB4rC,SAAWr5C,EAC9ByN,EAAmB6rC,YAAc/4C,EACjCkN,EAAmBymB,iBAAmB1xB,EAAK0xB,iBAAiBtiB,KAAKpP,GACjEiL,EAAmBs5B,MAAQvkC,EAE3B,IAAIqK,EAAwB3H,cAD5BzC,EAAqB21C,6BAA6B51C,EAAKqxB,eAAeC,OACR,eAuC9D,OAtCA71B,OAAOs7C,iBAAiB9rC,EAAoB,CAC1C+rC,UAAW,CACT/3C,IAAK,WACH,OAAOe,EAAKs4B,UAAU37B,MAAA,GAG1BsxB,OAAQ,CACNhvB,IAAK,WACH,OAAOe,EAAKs4B,UAAU,GAAGrD,cAAA,GAG7B4gB,SAAUnzC,cAAczC,EAAoB,YAC5C4iB,MAAOngB,cAAczC,EAAoB,SACzCyG,SAAUhE,cAAczC,EAAoB,YAC5CmqC,QAAS1nC,cAAczC,EAAoB,WAC3Ck2C,YAAa9rC,EACb4sC,aAAc5sC,EACd2Y,UAAW,CACT/jB,IAAK,WACH,OAAOgB,CAAA,GAGXi3C,OAAQ,CACNj4C,IAAK,WACH,OAAOe,EAAK4wB,SAAA,KAIlB3lB,EAAmBksC,UAAYn3C,EAAKgK,KAAK8B,GACzCb,EAAmB+Z,MAAQhlB,EAAKgK,KAAKutB,IACrCtsB,EAAmBmsC,OAASp3C,EAAKgK,KAAKe,MACtCE,EAAmBqD,OAA0B,IAAjBtO,EAAKgK,KAAKa,GAAW7K,EAAKgK,KAAKjM,EAAI,IAC/DkN,EAAmBoD,MAAyB,IAAjBrO,EAAKgK,KAAKa,GAAW7K,EAAKgK,KAAKiS,EAAI,IAC9DhR,EAAmBosC,QAAUr3C,EAAKgK,KAAK4B,GAAK5L,EAAKge,KAAKvJ,WAAW9B,UACjE1H,EAAmBqsC,SAAWt3C,EAAKgK,KAAK6B,GAAK7L,EAAKge,KAAKvJ,WAAW9B,UAClE1H,EAAmBssC,MAAQv3C,EAAKgK,KAAK8H,GACrC7G,EAAmBkqB,sBAtFnB,SAAgC55B,GAC9B0P,EAAmBusC,KAAO,IAAIvC,qBAAqB15C,EAAayE,EAAA,EAsFlEiL,EAAmBoqB,yBAnFnB,SAAmC95B,GACjC0P,EAAmBouB,OAAS99B,CAAA,EAmFvB0P,CAAA,EAvLoB,GA2L3BwsC,qBACK,SAAUl8C,EAAmBC,GAClC,OAAO,SAAUK,GAGf,OAFAA,OAAA,IAAMA,EAAoB,EAAIA,IAEnB,EACFN,EAGFC,EAAoBK,EAAM,KAKnC67C,kBACK,SAAUn8C,EAAcC,GAC7B,IAAIK,EAAoB,CACtB07C,MAAOh8C,GAaT,OAVA,SAAwBA,GAGtB,OAFAA,OAAA,IAAMA,EAAoB,EAAIA,IAEnB,EACFM,EAGFL,EAAcD,EAAM,KAO7Bo8C,2BAA6B,WA4C/B,SAASp8C,EAAqBM,EAAMY,EAAUG,EAAeO,GAC3D,SAASC,EAAe7B,GAKtB,IAJA,IAAIC,EAAUK,EAAK22B,GACf/1B,EAAI,EACJG,EAAMpB,EAAQmB,OAEXF,EAAIG,GAAK,CACd,GAAIrB,IAASC,EAAQiB,GAAGqV,IAAMvW,IAASC,EAAQiB,GAAGm7C,IAAMr8C,IAASC,EAAQiB,GAAG2vB,GAC1E,OAAsB,IAAlB5wB,EAAQiB,GAAGoO,GACN7K,EAAevD,GAGjBuD,EAAevD,KAGxBA,GAAK,EAGP,MAAM,IAAIiF,KAAA,CAGZ,IAGIlE,EAHAO,EAAiB05C,qBAAqBr6C,EAAgBR,GAEtDoD,EAAiB,GAEjBC,EAAMpE,EAAK22B,GAAG71B,OAElB,IAAKa,EAAI,EAAGA,EAAIyC,EAAKzC,GAAK,EACF,IAAlB3B,EAAK22B,GAAGh1B,GAAGqN,GACb7K,EAAelB,KAAKvD,EAAqBM,EAAK22B,GAAGh1B,GAAIf,EAASg2B,eAAej1B,GAAIf,EAASg2B,eAAej1B,GAAGm4C,cAAex4C,IAE3H6C,EAAelB,KAAKtD,EAAqBiB,EAASg2B,eAAej1B,GAAI3B,EAAK22B,GAAGh1B,GAAGqN,GAAI1N,EAAMY,IA2B9F,MAvBgB,uBAAZlC,EAAK+7C,IACPn8C,OAAOgC,eAAeL,EAAgB,QAAS,CAC7C6B,IAAK,WACH,OAAOe,EAAe,QAK5BvE,OAAOs7C,iBAAiB35C,EAAgB,CACtCy6C,cAAe,CACb54C,IAAK,WACH,OAAOpD,EAAKi8C,EAAA,GAGhBP,MAAO,CACLp5C,MAAOtC,EAAKiW,IAEd6jC,cAAe,CACbx3C,MAAOJ,KAGXX,EAAe26C,QAAsB,IAAZl8C,EAAKm8C,GAC9B56C,EAAe85C,OAAS95C,EAAe26C,QAChC36C,CAAA,CAGT,SAAS5B,EAAqBD,EAASC,EAAMK,EAAMY,GACjD,IAAIG,EAAqBw4C,4BAA4B75C,EAAQ0E,GAc7D,OAJI1E,EAAQ0E,EAAEg4C,kBACZ18C,EAAQ0E,EAAEg4C,iBAAiBP,kBAAkB,GAAIj7C,IATnD,WACE,OAAa,KAATjB,EACKK,EAAKmiB,KAAK9L,cAAc3W,EAAQ0E,EAAEL,GAGpChD,GAAA,EAUX,MA1HS,CACPw4B,uBAGF,SAAgC55B,EAAMK,GACpC,GAAIL,EAAKy6B,eAAgB,CACvB,IAEIx5B,EAFAG,EAAiB,GACjBO,EAAc3B,EAAKwO,KAAKwoB,GAExBp1B,EAAM5B,EAAKy6B,eAAexD,eAAe91B,OAE7C,IAAKF,EAAI,EAAGA,EAAIW,EAAKX,GAAK,EACxBG,EAAekC,KAAKvD,EAAqB4B,EAAYV,GAAIjB,EAAKy6B,eAAexD,eAAeh2B,GAAIZ,EAAeL,IAGjH,IAAIgC,EAAUhC,EAAKwO,KAAKwoB,IAAM,GAE1Bz0B,EAAiB,SAAwBxC,GAI3C,IAHAkB,EAAI,EACJW,EAAMI,EAAQb,OAEPF,EAAIW,GAAK,CACd,GAAI7B,IAASiC,EAAQf,GAAGqV,IAAMvW,IAASiC,EAAQf,GAAGm7C,IAAMr8C,IAASiC,EAAQf,GAAG2vB,GAC1E,OAAOxvB,EAAeH,GAGxBA,GAAK,EAGP,OAAO,MAQT,OALAhB,OAAOgC,eAAeM,EAAgB,gBAAiB,CACrDkB,IAAK,WACH,OAAOzB,EAAQb,MAAA,IAGZoB,CAAA,CAGT,OAAO,OAzCsB,GA8H7Bm6C,mBACK,SAA8B38C,EAAOC,EAAMK,GAChD,IAAIY,EAAOjB,EAAKiiB,GAEhB,SAAS7gB,EAAkBrB,GACzB,MAAY,UAARA,GAA2B,UAARA,GAA2B,SAARA,GAA0B,SAARA,GAA0B,sBAARA,GAAuC,IAARA,EACpGqB,EAAkB4Q,KAGpB,KAGT,IAAIrQ,EAAiBs6C,qBAAqB76C,EAAmBf,GAsC7D,OApCAY,EAAKw7C,iBAAiBP,kBAAkB,OAAQv6C,IAChD1B,OAAOs7C,iBAAiBn6C,EAAmB,CACzC4Q,KAAM,CACJvO,IAAK,WAKH,OAJIxC,EAAKmO,GACPnO,EAAKqiB,WAGAriB,CAAA,GAGXkpB,MAAO,CACL1mB,IAAK,WAKH,OAJIxC,EAAKmO,GACPnO,EAAKqiB,WAGAriB,CAAA,GAGX86C,MAAO,CACLp5C,MAAO5C,EAAMuW,IAEfsa,GAAI,CACFjuB,MAAO5C,EAAM6wB,IAEf+rB,cAAe,CACbh6C,MAAO5C,EAAM6wB,IAEfwrB,GAAI,CACFz5C,MAAO5C,EAAMq8C,IAEfjC,cAAe,CACbx3C,MAAOtC,KAGJe,CAAA,EAIPw7C,yBAA2B,WAC7B,SAAS78C,EAAgBA,EAAQiC,EAAM8M,GACrC,IACIG,EADAsE,EAAM,GAENqM,EAAM7f,EAASA,EAAOoB,OAAS,EAEnC,IAAK8N,EAAI,EAAGA,EAAI2Q,EAAK3Q,GAAK,EACH,OAAjBlP,EAAOkP,GAAGI,GACZkE,EAAIjQ,KAAKtD,EAAsBD,EAAOkP,GAAIjN,EAAKiN,GAAIH,IACzB,OAAjB/O,EAAOkP,GAAGI,GACnBkE,EAAIjQ,KAAKjD,EAAqBN,EAAOkP,GAAIjN,EAAKiN,GAAIH,IACxB,OAAjB/O,EAAOkP,GAAGI,GACnBkE,EAAIjQ,KAAK3B,EAAuB5B,EAAOkP,GAAIjN,EAAKiN,GAAIH,IAC1B,OAAjB/O,EAAOkP,GAAGI,GACnBkE,EAAIjQ,KAAK1B,EAAqB7B,EAAOkP,GAAIjN,EAAKiN,GAAIH,IACxB,OAAjB/O,EAAOkP,GAAGI,KACO,OAAjBtP,EAAOkP,GAAGI,GACnBkE,EAAIjQ,KAAKf,EAAwBxC,EAAOkP,GAAIjN,EAAKiN,GAAIH,IAC3B,OAAjB/O,EAAOkP,GAAGI,GACnBkE,EAAIjQ,KAAKkB,EAAqBzE,EAAOkP,GAAIjN,EAAKiN,GAAIH,IACxB,OAAjB/O,EAAOkP,GAAGI,GACnBkE,EAAIjQ,KAAKo5C,mBAAmB38C,EAAOkP,GAAIjN,EAAKiN,GAAIH,IACtB,OAAjB/O,EAAOkP,GAAGI,GACnBkE,EAAIjQ,KAAKmB,EAAqB1E,EAAOkP,GAAIjN,EAAKiN,GAAIH,IACxB,OAAjB/O,EAAOkP,GAAGI,GACnBkE,EAAIjQ,KAAKmM,EAAwB1P,EAAOkP,GAAIjN,EAAKiN,GAAIH,IAC3B,OAAjB/O,EAAOkP,GAAGI,GACnBkE,EAAIjQ,KAAKuL,EAAyB9O,EAAOkP,GAAIjN,EAAKiN,GAAIH,IAC5B,OAAjB/O,EAAOkP,GAAGI,GACnBkE,EAAIjQ,KAAKrC,EAA6BlB,EAAOkP,GAAIjN,EAAKiN,GAAIH,IAE1DyE,EAAIjQ,MAA6BvD,EAAOkP,GAAIjN,EAAKiN,GAuJrD,WACE,OAAO,SApJT,OAAOsE,CAAA,CAmCT,SAASvT,EAAsBA,EAAOK,EAAMY,GAC1C,IAAIG,EAAoB,SAApBA,EAAgDrB,GAClD,OAAQA,GACN,IAAK,qBACL,IAAK,WACL,KAAK,EACH,OAAOqB,EAAkB64B,QAK3B,QACE,OAAO74B,EAAkBomB,UAAA,EAI/BpmB,EAAkB+4C,cAAgB8B,qBAAqB76C,EAAmBH,GAC1E,IAAIU,EAjDN,SAAkC3B,EAAOK,EAAMY,GAC7C,IAAIG,EAEAO,EAAoB,SAA4B5B,GAIlD,IAHA,IAAIC,EAAI,EACJK,EAAMe,EAAWD,OAEdnB,EAAIK,GAAK,CACd,GAAIe,EAAWpB,GAAG+7C,QAAUh8C,GAASqB,EAAWpB,GAAGo8C,KAAOr8C,GAASqB,EAAWpB,GAAG28C,gBAAkB58C,GAASqB,EAAWpB,GAAG4wB,KAAO7wB,GAASqB,EAAWpB,GAAG+7B,MAAQh8B,EAC9J,OAAOqB,EAAWpB,GAGpBA,GAAK,EAGP,MAAqB,iBAAVD,EACFqB,EAAWrB,EAAQ,GAGrB,MAGT4B,EAAkBw4C,cAAgB8B,qBAAqBt6C,EAAmBV,GAC1EG,EAAarB,EAAgBC,EAAMgQ,GAAI3P,EAAK2P,GAAIrO,EAAkBw4C,eAClEx4C,EAAkB06C,cAAgBj7C,EAAWD,OAC7C,IAAIS,EAAqBI,EAA0BhC,EAAMgQ,GAAGhQ,EAAMgQ,GAAG7O,OAAS,GAAId,EAAK2P,GAAG3P,EAAK2P,GAAG7O,OAAS,GAAIQ,EAAkBw4C,eAIjI,OAHAx4C,EAAkB6lB,UAAY5lB,EAC9BD,EAAkBg7C,cAAgB38C,EAAM68C,IACxCl7C,EAAkBo6C,MAAQ/7C,EAAMsW,GACzB3U,CAAA,CA7BT,CAiDyC3B,EAAOK,EAAMe,EAAkB+4C,eAClEv4C,EAAqBI,EAA0BhC,EAAMgQ,GAAGhQ,EAAMgQ,GAAG7O,OAAS,GAAId,EAAK2P,GAAG3P,EAAK2P,GAAG7O,OAAS,GAAIC,EAAkB+4C,eAajI,OAZA/4C,EAAkB64B,QAAUt4B,EAC5BP,EAAkBomB,UAAY5lB,EAC9B3B,OAAOgC,eAAeb,EAAmB,QAAS,CAChDqC,IAAK,WACH,OAAOzD,EAAMsW,EAAA,IAIjBlV,EAAkBi7C,cAAgBr8C,EAAMs8C,GACxCl7C,EAAkBu7C,cAAgB38C,EAAM4wB,GACxCxvB,EAAkBkV,GAAKtW,EAAMsW,GAC7BlV,EAAkBg7C,GAAKp8C,EAAMo8C,GACtBh7C,CAAA,CAGT,SAASf,EAAqBN,EAAOC,EAAMK,GACzC,SAASY,EAAkBlB,GACzB,MAAY,UAARA,GAA2B,UAARA,EACdkB,EAAkB02C,MAGf,YAAR53C,GAA6B,YAARA,EAChBkB,EAAkB2tC,QAGpB,KAmBT,OAhBA3uC,OAAOs7C,iBAAiBt6C,EAAmB,CACzC02C,MAAO,CACLl0C,IAAKm2C,4BAA4B55C,EAAK6O,IAExC+/B,QAAS,CACPnrC,IAAKm2C,4BAA4B55C,EAAKgC,IAExC+5C,MAAO,CACLp5C,MAAO5C,EAAMuW,IAEf8lC,GAAI,CACFz5C,MAAO5C,EAAMq8C,MAGjBp8C,EAAK6O,EAAE4tC,iBAAiBP,kBAAkB,QAAS77C,IACnDL,EAAKgC,EAAEy6C,iBAAiBP,kBAAkB,UAAW77C,IAC9CY,CAAA,CAGT,SAASA,EAA6BlB,EAAOC,EAAMK,GACjD,SAASY,EAAkBlB,GACzB,MAAY,gBAARA,GAAiC,gBAARA,EACpBkB,EAAkB67C,WAGf,cAAR/8C,GAA+B,cAARA,EAClBkB,EAAkB87C,SAGf,YAARh9C,GAA6B,YAARA,EAChBkB,EAAkB2tC,QAGpB,KA4BT,OAzBA3uC,OAAOs7C,iBAAiBt6C,EAAmB,CACzC67C,WAAY,CACVr5C,IAAKm2C,4BAA4B55C,EAAK2B,IAExCo7C,SAAU,CACRt5C,IAAKm2C,4BAA4B55C,EAAKA,IAExC4uC,QAAS,CACPnrC,IAAKm2C,4BAA4B55C,EAAKgC,IAExC8J,KAAM,CACJrI,IAAK,WACH,MAAO,MAGXs4C,MAAO,CACLp5C,MAAO5C,EAAMuW,IAEf8lC,GAAI,CACFz5C,MAAO5C,EAAMq8C,MAGjBp8C,EAAK2B,EAAE86C,iBAAiBP,kBAAkB,cAAe77C,IACzDL,EAAKA,EAAEy8C,iBAAiBP,kBAAkB,YAAa77C,IACvDL,EAAKgC,EAAEy6C,iBAAiBP,kBAAkB,UAAW77C,IAC9CY,CAAA,CAWT,SAASU,EAAuB5B,EAAOC,EAAMK,GAC3C,IAUIY,EAVAG,EAAiB66C,qBAAqBz3C,EAAmBnE,GAEzDsB,EAAqBs6C,qBAAqB15C,EAAQnB,GAEtD,SAASQ,EAAoBvB,GAC3BJ,OAAOgC,eAAeM,EAAQxC,EAAMkP,EAAE5O,GAAGiW,GAAI,CAC3C7S,IAAKm2C,4BAA4B55C,EAAKiP,EAAEmyB,UAAU/gC,GAAGoE,IAAA,CAKzD,IAAIzC,EAAMjC,EAAMkP,EAAIlP,EAAMkP,EAAE9N,OAAS,EACjCoB,EAAS,CAAC,EAEd,IAAKtB,EAAI,EAAGA,EAAIe,EAAKf,GAAK,EACxBW,EAAoBX,GACpBjB,EAAKiP,EAAEmyB,UAAUngC,GAAGwD,EAAEg4C,iBAAiB96C,GAGzC,SAAS6C,EAAkBzE,GACzB,MAAY,UAARA,GAA2B,UAARA,EACdyE,EAAkBmzC,MAGf,YAAR53C,GAA6B,YAARA,EAChByE,EAAkBoqC,QAGf,iBAAR7uC,GAAkC,iBAARA,EACrByE,EAAkBozC,YAGpB,KA4BT,OAzBA33C,OAAOs7C,iBAAiB/2C,EAAmB,CACzCmzC,MAAO,CACLl0C,IAAKm2C,4BAA4B55C,EAAK6O,IAExC+/B,QAAS,CACPnrC,IAAKm2C,4BAA4B55C,EAAKgC,IAExC41C,YAAa,CACXn0C,IAAKm2C,4BAA4B55C,EAAKygB,IAExCu8B,KAAM,CACJv5C,IAAK,WACH,OAAOlB,CAAA,GAGXw5C,MAAO,CACLp5C,MAAO5C,EAAMuW,IAEf8lC,GAAI,CACFz5C,MAAO5C,EAAMq8C,MAGjBp8C,EAAK6O,EAAE4tC,iBAAiBP,kBAAkB,QAAS96C,IACnDpB,EAAKgC,EAAEy6C,iBAAiBP,kBAAkB,UAAW96C,IACrDpB,EAAKygB,EAAEg8B,iBAAiBP,kBAAkB,eAAgB96C,IACnDoD,CAAA,CAGT,SAAS5C,EAAqB7B,EAAOC,EAAMK,GACzC,SAASY,EAAkBjB,GACzB,OAAIA,IAAQD,EAAMC,EAAE4wB,IAAc,QAAR5wB,GAAyB,QAARA,EAClCiB,EAAkBg8C,IAGvBj9C,IAAQD,EAAM4B,EAAEivB,GACX3vB,EAAkBi8C,MAGvBl9C,IAAQD,EAAMiC,EAAE4uB,GACX3vB,EAAkBk8C,OAGpB,KAGT,IAAI/7C,EAAiB66C,qBAAqBh7C,EAAmBZ,GAuB7D,OArBAY,EAAkB07C,cAAgB58C,EAAM6wB,GACxC5wB,EAAK2B,EAAE86C,iBAAiBP,kBAAkB,QAAS96C,IACnDpB,EAAKA,EAAEy8C,iBAAiBP,kBAAkB,MAAO96C,IACjDpB,EAAKgC,EAAEy6C,iBAAiBP,kBAAkB,SAAU96C,IACpDH,EAAkB07C,cAAgB58C,EAAM6wB,GACxC3vB,EAAkBk5C,cAAgB95C,EAClCJ,OAAOs7C,iBAAiBt6C,EAAmB,CACzCi8C,MAAO,CACLz5C,IAAKm2C,4BAA4B55C,EAAK2B,IAExCs7C,IAAK,CACHx5C,IAAKm2C,4BAA4B55C,EAAKA,IAExCm9C,OAAQ,CACN15C,IAAKm2C,4BAA4B55C,EAAKgC,IAExC+5C,MAAO,CACLp5C,MAAO5C,EAAMuW,MAGjBrV,EAAkBm7C,GAAKr8C,EAAMq8C,GACtBn7C,CAAA,CAGT,SAASe,EAA0BjC,EAAOC,EAAMK,GAC9C,SAASY,EAAkBjB,GACzB,OAAID,EAAMqB,EAAEwvB,KAAO5wB,GAAmB,iBAAVA,EACnBiB,EAAkB05C,YAGvB56C,EAAMiC,EAAE4uB,KAAO5wB,GAAmB,YAAVA,EACnBiB,EAAkB2tC,QAGvB7uC,EAAM0E,EAAEmsB,KAAO5wB,GAAmB,aAAVA,EACnBiB,EAAkBiK,SAGvBnL,EAAMM,EAAEuwB,KAAO5wB,GAAmB,aAAVA,GAAkC,yBAAVA,EAC3CiB,EAAkBo5C,SAGvBt6C,EAAM4B,EAAEivB,KAAO5wB,GAAmB,UAAVA,EACnBiB,EAAkBomB,MAGvBtnB,EAAMyQ,IAAMzQ,EAAMyQ,GAAGogB,KAAO5wB,GAAmB,SAAVA,EAChCiB,EAAkBkmB,KAGvBpnB,EAAM0Q,IAAM1Q,EAAM0Q,GAAGmgB,KAAO5wB,GAAmB,cAAVA,EAChCiB,EAAkBm8C,SAGpB,KAGT,IAAIh8C,EAAiB66C,qBAAqBh7C,EAAmBZ,GA2C7D,OAzCAL,EAAKwnB,UAAUsJ,OAAO9uB,EAAEy6C,iBAAiBP,kBAAkB,UAAW96C,IACtEpB,EAAKwnB,UAAUsJ,OAAOrsB,EAAEg4C,iBAAiBP,kBAAkB,WAAY96C,IACvEpB,EAAKwnB,UAAUsJ,OAAO1vB,EAAEq7C,iBAAiBP,kBAAkB,eAAgB96C,IAC3EpB,EAAKwnB,UAAUsJ,OAAOnvB,EAAE86C,iBAAiBP,kBAAkB,QAAS96C,IACpEpB,EAAKwnB,UAAUsJ,OAAOzwB,EAAEo8C,iBAAiBP,kBAAkB,WAAY96C,IAEnEpB,EAAKwnB,UAAUsJ,OAAOtgB,KACxBxQ,EAAKwnB,UAAUsJ,OAAOtgB,GAAGisC,iBAAiBP,kBAAkB,OAAQ96C,IACpEpB,EAAKwnB,UAAUsJ,OAAOrgB,GAAGgsC,iBAAiBP,kBAAkB,aAAc96C,KAG5EpB,EAAKwnB,UAAUnX,GAAGosC,iBAAiBP,kBAAkB,UAAW96C,IAChEnB,OAAOs7C,iBAAiBt6C,EAAmB,CACzC2tC,QAAS,CACPnrC,IAAKm2C,4BAA4B55C,EAAKwnB,UAAUsJ,OAAO9uB,IAEzDkJ,SAAU,CACRzH,IAAKm2C,4BAA4B55C,EAAKwnB,UAAUsJ,OAAOrsB,IAEzDk2C,YAAa,CACXl3C,IAAKm2C,4BAA4B55C,EAAKwnB,UAAUsJ,OAAO1vB,IAEzDimB,MAAO,CACL5jB,IAAKm2C,4BAA4B55C,EAAKwnB,UAAUsJ,OAAOnvB,IAEzD04C,SAAU,CACR52C,IAAKm2C,4BAA4B55C,EAAKwnB,UAAUsJ,OAAOzwB,IAEzD8mB,KAAM,CACJ1jB,IAAKm2C,4BAA4B55C,EAAKwnB,UAAUsJ,OAAOtgB,KAEzD4sC,SAAU,CACR35C,IAAKm2C,4BAA4B55C,EAAKwnB,UAAUsJ,OAAOrgB,KAEzDsrC,MAAO,CACLp5C,MAAO5C,EAAMuW,MAGjBrV,EAAkBoO,GAAK,KACvBpO,EAAkBm7C,GAAKr8C,EAAMq8C,GAC7Bn7C,EAAkBk5C,cAAgB95C,EAC3BY,CAAA,CAGT,SAASsB,EAAwBxC,EAAOC,EAAMK,GAC5C,SAASY,EAAkBjB,GACzB,OAAID,EAAM0E,EAAEmsB,KAAO5wB,EACViB,EAAkBiK,SAGvBnL,EAAM4B,EAAEivB,KAAO5wB,EACViB,EAAkB8wB,KAGpB,KAGT,IAAI3wB,EAAiB66C,qBAAqBh7C,EAAmBZ,GAE7DY,EAAkB07C,cAAgB58C,EAAM6wB,GACxC,IAAIjvB,EAAsB,OAAf3B,EAAKiiB,GAAG5S,GAAcrP,EAAKiiB,GAAG6W,KAAO94B,EAAKiiB,GAerD,OAdAtgB,EAAKA,EAAE86C,iBAAiBP,kBAAkB,OAAQ96C,IAClDO,EAAK8C,EAAEg4C,iBAAiBP,kBAAkB,WAAY96C,IACtDnB,OAAOs7C,iBAAiBt6C,EAAmB,CACzC8wB,KAAM,CACJtuB,IAAKm2C,4BAA4Bj4C,EAAKA,IAExCuJ,SAAU,CACRzH,IAAKm2C,4BAA4Bj4C,EAAK8C,IAExCs3C,MAAO,CACLp5C,MAAO5C,EAAMuW,MAGjBrV,EAAkBm7C,GAAKr8C,EAAMq8C,GACtBn7C,CAAA,CAGT,SAASuD,EAAqBzE,EAAOC,EAAMK,GACzC,SAASY,EAAkBjB,GACzB,OAAID,EAAM0E,EAAEmsB,KAAO5wB,EACViB,EAAkBiK,SAGvBnL,EAAMM,EAAEuwB,KAAO5wB,EACViB,EAAkBo5C,SAGvBt6C,EAAMoP,GAAGyhB,KAAO5wB,EACXiB,EAAkBwe,OAGvB1f,EAAM8lB,GAAG+K,KAAO5wB,GAAmB,kCAAVA,EACpBiB,EAAkBo8C,YAGvBt9C,EAAM+lB,GAAG8K,KAAO5wB,EACXiB,EAAkBq8C,gBAGvBv9C,EAAMylB,IAAOzlB,EAAMylB,GAAGoL,KAAO5wB,GAAmB,kCAAVA,EAItCD,EAAM0lB,IAAM1lB,EAAM0lB,GAAGmL,KAAO5wB,EACvBiB,EAAkBs8C,eAGpB,KAPEt8C,EAAkBu8C,WAAA,CAU7B,IAAIp8C,EAAiB66C,qBAAqBh7C,EAAmBZ,GAEzDsB,EAAsB,OAAf3B,EAAKiiB,GAAG5S,GAAcrP,EAAKiiB,GAAG6W,KAAO94B,EAAKiiB,GAwCrD,OAvCAhhB,EAAkB07C,cAAgB58C,EAAM6wB,GACxCjvB,EAAKkkB,GAAG42B,iBAAiBP,kBAAkB,eAAgB96C,IAC3DO,EAAKmkB,GAAG22B,iBAAiBP,kBAAkB,kBAAmB96C,IAC9DO,EAAKwN,GAAGstC,iBAAiBP,kBAAkB,SAAU96C,IACrDO,EAAK8C,EAAEg4C,iBAAiBP,kBAAkB,WAAY96C,IACtDO,EAAKtB,EAAEo8C,iBAAiBP,kBAAkB,WAAY96C,IAElDrB,EAAMylB,KACR7jB,EAAK6jB,GAAGi3B,iBAAiBP,kBAAkB,eAAgB96C,IAC3DO,EAAK8jB,GAAGg3B,iBAAiBP,kBAAkB,kBAAmB96C,KAGhEnB,OAAOs7C,iBAAiBt6C,EAAmB,CACzCiK,SAAU,CACRzH,IAAKm2C,4BAA4Bj4C,EAAK8C,IAExC41C,SAAU,CACR52C,IAAKm2C,4BAA4Bj4C,EAAKtB,IAExCof,OAAQ,CACNhc,IAAKm2C,4BAA4Bj4C,EAAKwN,KAExCkuC,YAAa,CACX55C,IAAKm2C,4BAA4Bj4C,EAAKkkB,KAExCy3B,eAAgB,CACd75C,IAAKm2C,4BAA4Bj4C,EAAKmkB,KAExC03B,YAAa,CACX/5C,IAAKm2C,4BAA4Bj4C,EAAK6jB,KAExC+3B,eAAgB,CACd95C,IAAKm2C,4BAA4Bj4C,EAAK8jB,KAExCs2B,MAAO,CACLp5C,MAAO5C,EAAMuW,MAGjBrV,EAAkBm7C,GAAKr8C,EAAMq8C,GACtBn7C,CAAA,CAGT,SAASwD,EAAqB1E,EAAOC,EAAMK,GACzC,SAASY,EAAkBjB,GACzB,OAAID,EAAM0E,EAAEmsB,KAAO5wB,EACViB,EAAkBiK,SAGvBnL,EAAMM,EAAEuwB,KAAO5wB,EACViB,EAAkBw8C,UAGvB19C,EAAM4B,EAAEivB,KAAO5wB,GAAmB,SAAVA,GAA8B,0BAAVA,EACvCiB,EAAkB8wB,KAGpB,KAGT,IAAI3wB,EAAiB66C,qBAAqBh7C,EAAmBZ,GAEzDsB,EAAsB,OAAf3B,EAAKiiB,GAAG5S,GAAcrP,EAAKiiB,GAAG6W,KAAO94B,EAAKiiB,GAoBrD,OAnBAhhB,EAAkB07C,cAAgB58C,EAAM6wB,GACxCjvB,EAAK8C,EAAEg4C,iBAAiBP,kBAAkB,WAAY96C,IACtDO,EAAKA,EAAE86C,iBAAiBP,kBAAkB,OAAQ96C,IAClDO,EAAKtB,EAAEo8C,iBAAiBP,kBAAkB,WAAY96C,IACtDnB,OAAOs7C,iBAAiBt6C,EAAmB,CACzCiK,SAAU,CACRzH,IAAKm2C,4BAA4Bj4C,EAAK8C,IAExCg5C,UAAW,CACTh6C,IAAKm2C,4BAA4Bj4C,EAAKtB,IAExC0xB,KAAM,CACJtuB,IAAKm2C,4BAA4Bj4C,EAAKA,IAExCo6C,MAAO,CACLp5C,MAAO5C,EAAMuW,MAGjBrV,EAAkBm7C,GAAKr8C,EAAMq8C,GACtBn7C,CAAA,CAGT,SAASwO,EAAwB1P,EAAOC,EAAMK,GAC5C,SAASY,EAAkBjB,GACzB,OAAID,EAAMM,EAAEuwB,KAAO5wB,GAAmB,oBAAVA,EACnBiB,EAAkBy8C,OAGpB,KAGT,IAAIt8C,EAAiB66C,qBAAqBh7C,EAAmBZ,GAEzDsB,EAAO3B,EAYX,OAXAiB,EAAkB07C,cAAgB58C,EAAM6wB,GACxCjvB,EAAKovB,GAAG0rB,iBAAiBP,kBAAkB,SAAU96C,IACrDnB,OAAOs7C,iBAAiBt6C,EAAmB,CACzCy8C,OAAQ,CACNj6C,IAAKm2C,4BAA4Bj4C,EAAKovB,KAExCgrB,MAAO,CACLp5C,MAAO5C,EAAMuW,MAGjBrV,EAAkBm7C,GAAKr8C,EAAMq8C,GACtBn7C,CAAA,CAGT,SAAS4N,EAAyB9O,EAAOC,EAAMK,GAC7C,SAASY,EAAkBjB,GACzB,OAAID,EAAM8O,EAAE+hB,KAAO5wB,GAAmB,WAAVA,EACnBiB,EAAkB08C,OAGvB59C,EAAMiC,EAAE4uB,KAAO5wB,GAAmB,WAAVA,EACnBiB,EAAkBk8C,OAGpB,KAGT,IAAI/7C,EAAiB66C,qBAAqBh7C,EAAmBZ,GAEzDsB,EAAO3B,EAgBX,OAfAiB,EAAkB07C,cAAgB58C,EAAM6wB,GACxCjvB,EAAKkN,EAAE4tC,iBAAiBP,kBAAkB,SAAU96C,IACpDO,EAAKK,EAAEy6C,iBAAiBP,kBAAkB,SAAU96C,IACpDnB,OAAOs7C,iBAAiBt6C,EAAmB,CACzC08C,OAAQ,CACNl6C,IAAKm2C,4BAA4Bj4C,EAAKkN,IAExCsuC,OAAQ,CACN15C,IAAKm2C,4BAA4Bj4C,EAAKK,IAExC+5C,MAAO,CACLp5C,MAAO5C,EAAMuW,MAGjBrV,EAAkBm7C,GAAKr8C,EAAMq8C,GACtBn7C,CAAA,CAGT,OAAO,SAAUjB,EAAQK,EAAMY,GAC7B,IAAIG,EAEJ,SAASO,EAAmB5B,GAC1B,GAAqB,iBAAVA,EAGT,OAAc,KAFdA,OAAA,IAAQA,EAAsB,EAAIA,GAGzBkB,EAGFG,EAAWrB,EAAQ,GAM5B,IAHA,IAAIC,EAAI,EACJK,EAAMe,EAAWD,OAEdnB,EAAIK,GAAK,CACd,GAAIe,EAAWpB,GAAG+7C,QAAUh8C,EAC1B,OAAOqB,EAAWpB,GAGpBA,GAAK,EAGP,OAAO,KAWT,OAJA2B,EAAmBw4C,cAAgB8B,qBAAqBt6C,GAJxD,WACE,OAAOV,CAAA,IAITG,EAAarB,EAAgBC,EAAQK,EAAMsB,EAAmBw4C,eAC9Dx4C,EAAmB06C,cAAgBj7C,EAAWD,OAC9CQ,EAAmBo6C,MAAQ,WACpBp6C,CAAA,EAjnBoB,GAqnB3Bi8C,wBACK,SAAU79C,GACf,IAAIC,EAEAK,EAEJ,SAASY,EAAmBlB,GAC1B,MACO,uBADCA,EAEGkB,EAAmB48C,WAGnB,KA4Bb,OAxBA59C,OAAOgC,eAAehB,EAAoB,aAAc,CACtDwC,IAAK,WACH1D,EAAKyoC,aAAallB,WAClB,IAAIriB,EAAclB,EAAKyoC,aAAatE,YAAYnkC,EAkBhD,OAhBIkB,IAAgBjB,IAClBA,EAAaD,EAAKyoC,aAAatE,YAAYnkC,GAC3CM,EAAc,IAAIM,OAAOM,IAGb0B,MAAQ1B,GAAe,IAAIN,OAAOM,GAE9ChB,OAAOgC,eAAe5B,EAAa,QAAS,CAC1CoD,IAAK,WACH,MAAO,CACLq6C,UAAW/9C,EAAKyoC,aAAatE,YAAYN,GAAA,KAM1CvjC,CAAA,IAGJY,CAAA,EAIX,SAAS88C,UAAUh+C,GAAuV,OAA1Og+C,UAArD,mBAAX56C,QAAoD,iBAApBA,OAAOC,SAAqC,SAAiBrD,GAAO,cAAcA,CAAA,EAA6B,SAAiBA,GAAO,OAAOA,GAAyB,mBAAXoD,QAAyBpD,EAAIc,cAAgBsC,QAAUpD,IAAQoD,OAAO7C,UAAY,gBAAkBP,CAAA,GAA2BA,EAAA,CAE3X,IAAIi+C,kBA0CEC,qBAAuB,SAA8Bl+C,GACvD,SAASC,EAAkBD,GACzB,MAAc,YAAVA,EACKC,EAAkBk+C,mBAGpB,KAKT,OAFAl+C,EAAkB+7C,MAAQ,UAC1B/7C,EAAkBk+C,iBAnDU,SAAiCn+C,GAC7D,IAAIC,EAAsB,GACtBK,EAAkBN,EAAK+6B,iBAQ3B,SAAS75B,EAAelB,GACtB,GAAIM,EAAgBN,GAIlB,OAHAC,EAAsBD,EAGa,WAA/Bg+C,UAFJ19C,EAAkBA,EAAgBN,IAGzBkB,EAGFZ,EAGT,IAAIe,EAAoBrB,EAAMwB,QAAQvB,GAEtC,IAA2B,IAAvBoB,EAA0B,CAC5B,IAAIO,EAAQyX,SAASrZ,EAAM0Z,OAAOrY,EAAoBpB,EAAoBmB,QAAS,IAGnF,MAAmC,WAA/B48C,UAFJ19C,EAAkBA,EAAgBsB,IAGzBV,EAGFZ,CAAA,CAGT,MAAO,GAGT,OAlCA,WAGE,OAFAL,EAAsB,GACtBK,EAAkBN,EAAK+6B,iBAChB75B,CAAA,EAPmB,CAmDiClB,GACtDC,CAAA,EAGF,SAAUD,GACf,SAASC,EAAmBD,GAC1B,MAAc,SAAVA,EACKC,EAAmBm+C,cAGrB,KAKT,OAFAn+C,EAAmB+7C,MAAQ,OAC3B/7C,EAAmBm+C,cAAgBF,qBAAqBl+C,GACjDC,CAAA,GAzBLi+C,qBA6BFG,WAAa,CACfpF,MAAO4B,yBACPyD,QAASlC,2BACT35B,KAAMu2B,wBACN5uB,MAAOyyB,yBACPziB,KAAMyjB,wBACNU,QAASN,kBAGX,SAASO,aAAax+C,GACpB,OAAOq+C,WAAWr+C,IAAS,KAG7B,SAASy+C,UAAUz+C,GAAuV,OAA1Oy+C,UAArD,mBAAXr7C,QAAoD,iBAApBA,OAAOC,SAAqC,SAAiBrD,GAAO,cAAcA,CAAA,EAA6B,SAAiBA,GAAO,OAAOA,GAAyB,mBAAXoD,QAAyBpD,EAAIc,cAAgBsC,QAAUpD,IAAQoD,OAAO7C,UAAY,gBAAkBP,CAAA,GAA2BA,EAAA,CA2B3X,SAAS0+C,WAAW1+C,EAAMC,GAIxB,IAAIK,EAASO,KASbK,EAAajB,EAAK4J,IARN,IAEH,GAOLxI,EAAepB,EAAK4J,IAAI,EALnB,IAMLjI,EAA0B,EAAfP,EA8Ff,SAASQ,EAAK7B,GACZ,IAAIC,EACAK,EAASN,EAAIoB,OACbF,EAAKL,KACLQ,EAAI,EACJO,EAAIV,EAAGA,EAAIA,EAAGqjC,EAAI,EAClB1iC,EAAIX,EAAGof,EAAI,GAOf,IALKhgB,IACHN,EAAM,CAACM,MAIFe,EArHG,KAsHRQ,EAAER,GAAKA,IAGT,IAAKA,EAAI,EAAGA,EAzHF,IAyHaA,IACrBQ,EAAER,GAAKQ,EAAED,EA/GF,IA+GaA,EAAI5B,EAAIqB,EAAIf,IAAWL,EAAI4B,EAAER,KACjDQ,EAAED,GAAK3B,EAITiB,EAAG4e,EAAI,SAAU9f,GAQf,IANA,IAAIC,EACAK,EAAI,EACJe,EAAIH,EAAGA,EACPU,EAAIV,EAAGqjC,EACP1iC,EAAIX,EAAGof,EAEJtgB,KACLC,EAAI4B,EAAER,EA7HD,IA6HYA,EAAI,GACrBf,EAzIM,IAyIFA,EAAYuB,EA9HX,KA8HqBA,EAAER,GAAKQ,EAAED,EA9H9B,IA8HyCA,EAAI3B,KAAO4B,EAAED,GAAK3B,IAKlE,OAFAiB,EAAGA,EAAIG,EACPH,EAAGqjC,EAAI3iC,EACAtB,CAAA,EAUX,SAAS2B,EAAKjC,EAAGC,GAIf,OAHAA,EAAEiB,EAAIlB,EAAEkB,EACRjB,EAAEskC,EAAIvkC,EAAEukC,EACRtkC,EAAEqgB,EAAItgB,EAAEsgB,EAAEnc,QACHlE,CAAA,CA4BT,SAASuC,EAAOxC,EAAMC,GAKpB,IAJA,IACIK,EADAY,EAAalB,EAAO,GAEpBqB,EAAI,EAEDA,EAAIH,EAAWE,QACpBnB,EAnLO,IAmLIoB,GAnLJ,KAmLiBf,GAAyB,GAAhBL,EAnL1B,IAmLqCoB,IAAWH,EAAW0zB,WAAWvzB,KAG/E,OAAOoD,EAASxE,EAAA,CA4BlB,SAASwE,EAASzE,GAChB,OAAOY,OAAOgtC,aAAatsC,MAAM,EAAGtB,EAAA,CAjItCC,EAAqB0+C,WA3ErB,SAAoBj6C,EAAMgL,EAASZ,GACjC,IAAIC,EAAM,GAKNG,EAAY1M,EA2IlB,SAASxC,EAAQC,EAAKK,GACpB,IAEIY,EAFAG,EAAS,GACTO,EAAM68C,UAAUx+C,GAGpB,GAAIK,GAAgB,UAAPsB,EACX,IAAKV,KAAQjB,EACX,IACEoB,EAAOkC,KAAKvD,EAAQC,EAAIiB,GAAOZ,EAAQ,IACvC,MAAON,GAAA,CAIb,OAAOqB,EAAOD,OAASC,EAAgB,UAAPO,EAAkB3B,EAAMA,EAAM,KAbhE,EA/IEyP,GAAA,IAAUA,EAAmB,CAC3BkvC,SAAA,GACElvC,GAAW,CAAC,GAEuBkvC,QAAU,CAACl6C,EAAMD,EAASzE,IAAkB,OAAT0E,EAiL5E,WACE,IAKE,IAAIzE,EAAM,IAAI4+C,WA/MN,KAiNR,OADCv+C,EAAOw+C,QAAUx+C,EAAOy+C,UAAUC,gBAAgB/+C,GAC5CwE,EAASxE,EAAA,CAChB,MAAOA,GACP,IAAIiB,EAAUZ,EAAOgG,UACjBjF,EAAUH,GAAWA,EAAQ+9C,QACjC,MAAO,EAAE,IAAI5rB,KAAQ/yB,EAAQe,EAASf,EAAO4+C,OAAQz6C,EAASzE,GAAA,EAZlE,GAjLyG0E,EAAM,GAAIqK,GAE7GyE,EAAO,IAAI3R,EAAKkN,GAGhB8Q,EAAO,WAOT,IANA,IAAI7f,EAAIwT,EAAKsM,EA5BR,GA8BL7f,EAAIiB,EAEJZ,EAAI,EAEGN,EAAIqB,GAETrB,EAtCM,KAsCDA,EAAIM,GAETL,GAxCM,IA0CNK,EAAIkT,EAAKsM,EAAE,GAGb,KAAO9f,GAAK4B,GAEV5B,GAAK,EAELC,GAAK,EAELK,KAAO,EAGT,OAAQN,EAAIM,GAAKL,CAAA,EAenB,OAZA4f,EAAKs/B,MAAQ,WACX,OAAmB,EAAZ3rC,EAAKsM,EAAE,IAGhBD,EAAKu/B,MAAQ,WACX,OAAO5rC,EAAKsM,EAAE,GAAK,YAGrBD,EAAaf,OAAIe,EAEjBrd,EAAOiC,EAAS+O,EAAK8M,GAAItgB,IAEjB0P,EAAQ2vC,MAAQvwC,GAAY,SAAU9O,EAAMM,EAAMY,EAAcG,GAetE,OAdIA,IAEEA,EAAMif,GACRre,EAAKZ,EAAOmS,GAIdxT,EAAKs/C,MAAQ,WACX,OAAOr9C,EAAKuR,EAAM,CAAC,EAAD,GAMlBtS,GACFjB,EAAYuK,OAAIxK,EACTM,GAGGN,CAAA,GACX6f,EAAM3Q,EAAW,WAAYQ,EAAUA,EAAQ9J,OAAS/E,MAAQZ,EAAMyP,EAAQ4vC,MAAA,EA8InF98C,EAAOvC,EAAKuK,SAAUxK,EAAA,CASxB,SAASu/C,aAAav/C,GACpB0+C,WAAW,GAAI1+C,EAAA,CAGjB,IAAIw/C,UAAY,CACdC,MAAO,SAGT,SAASC,QAAQ1/C,GAAmV,OAAtO0/C,QAArD,mBAAXt8C,QAAoD,iBAApBA,OAAOC,SAAmC,SAAiBrD,GAAO,cAAcA,CAAA,EAA2B,SAAiBA,GAAO,OAAOA,GAAyB,mBAAXoD,QAAyBpD,EAAIc,cAAgBsC,QAAUpD,IAAQoD,OAAO7C,UAAY,gBAAkBP,CAAA,GAAyBA,EAAA,CAEnX,IAAI2/C,kBAAoB,WAGtB,IAAI56B,GAAK,CAAC,EACNnb,KAAOU,OACP3E,OAAS,KACTqB,SAAW,KACX0K,eAAiB,KACjBkuC,MAAQ,KACRC,OAAS,KAGb,SAASC,sBAAsB9/C,GAC7B,OAAOA,EAAIc,cAAgBT,OAASL,EAAIc,cAAgBiI,YAAA,CAG1D,SAASg3C,YAAY//C,EAAMC,GACzB,MAAgB,WAATD,GAA8B,YAATA,GAA+B,WAATA,GAAqBC,aAAa8b,MAAA,CAGtF,SAASikC,QAAQhgD,GACf,IAAIC,EAAOy/C,QAAQ1/C,GAEnB,GAAa,WAATC,GAA8B,YAATA,GAAsBD,aAAa+b,OAC1D,OAAQ/b,EAGV,GAAI8/C,sBAAsB9/C,GAAI,CAC5B,IAAIM,EACAY,EAAOlB,EAAEoB,OACTC,EAAS,GAEb,IAAKf,EAAI,EAAGA,EAAIY,EAAMZ,GAAK,EACzBe,EAAOf,IAAMN,EAAEM,GAGjB,OAAOe,CAAA,CAGT,OAAIrB,EAAEqhB,SACGrhB,EAAEqE,GAGHrE,CAAA,CAjCVu/C,aAAaj1C,QAoCb,IAAI21C,UAAY7hC,cAAcC,gBAAgB,KAAO,EAAG,KAAO,KAAO,UAAU3a,IAC5Ew8C,WAAa9hC,cAAcC,gBAAgB,KAAO,KAAO,KAAO,EAAG,WAAW3a,IAC9Ey8C,aAAe/hC,cAAcC,gBAAgB,IAAM,EAAG,KAAO,EAAG,aAAa3a,IAEjF,SAAS08C,IAAIpgD,EAAGC,GACd,IAAIK,EAAOo/C,QAAQ1/C,GAEfkB,EAAOw+C,QAAQz/C,GAEnB,GAAa,WAATK,GAA8B,WAATY,EACvB,OAAOlB,EAAIC,EAGb,GAAI8/C,YAAYz/C,EAAMN,IAAM+/C,YAAY7+C,EAAMjB,GAC5C,OAAOD,EAAIC,EAGb,GAAI6/C,sBAAsB9/C,IAAM+/C,YAAY7+C,EAAMjB,GAGhD,OAFAD,EAAIA,EAAEmE,MAAM,IACV,IAAMlE,EACDD,EAGT,GAAI+/C,YAAYz/C,EAAMN,IAAM8/C,sBAAsB7/C,GAGhD,OAFAA,EAAIA,EAAEkE,MAAM,IACV,GAAKnE,EAAIC,EAAE,GACNA,EAGT,GAAI6/C,sBAAsB9/C,IAAM8/C,sBAAsB7/C,GAAI,CAMxD,IALA,IAAIoB,EAAI,EACJO,EAAO5B,EAAEoB,OACTS,EAAO5B,EAAEmB,OACTa,EAAS,GAENZ,EAAIO,GAAQP,EAAIQ,IACA,iBAAT7B,EAAEqB,IAAmBrB,EAAEqB,aAAc0a,UAA4B,iBAAT9b,EAAEoB,IAAmBpB,EAAEoB,aAAc0a,QACvG9Z,EAAOZ,GAAKrB,EAAEqB,GAAKpB,EAAEoB,GAErBY,EAAOZ,QAAA,IAAKpB,EAAEoB,GAAmBrB,EAAEqB,GAAKrB,EAAEqB,IAAMpB,EAAEoB,GAGpDA,GAAK,EAGP,OAAOY,CAAA,CAGT,OAAO,EAGT,IAAI4kC,IAAMuZ,IAEV,SAASC,IAAIrgD,EAAGC,GACd,IAAIK,EAAOo/C,QAAQ1/C,GAEfkB,EAAOw+C,QAAQz/C,GAEnB,GAAI8/C,YAAYz/C,EAAMN,IAAM+/C,YAAY7+C,EAAMjB,GAS5C,MARa,WAATK,IACFN,EAAIqZ,SAASrZ,EAAG,KAGL,WAATkB,IACFjB,EAAIoZ,SAASpZ,EAAG,KAGXD,EAAIC,EAGb,GAAI6/C,sBAAsB9/C,IAAM+/C,YAAY7+C,EAAMjB,GAGhD,OAFAD,EAAIA,EAAEmE,MAAM,IACV,IAAMlE,EACDD,EAGT,GAAI+/C,YAAYz/C,EAAMN,IAAM8/C,sBAAsB7/C,GAGhD,OAFAA,EAAIA,EAAEkE,MAAM,IACV,GAAKnE,EAAIC,EAAE,GACNA,EAGT,GAAI6/C,sBAAsB9/C,IAAM8/C,sBAAsB7/C,GAAI,CAMxD,IALA,IAAIoB,EAAI,EACJO,EAAO5B,EAAEoB,OACTS,EAAO5B,EAAEmB,OACTa,EAAS,GAENZ,EAAIO,GAAQP,EAAIQ,IACA,iBAAT7B,EAAEqB,IAAmBrB,EAAEqB,aAAc0a,UAA4B,iBAAT9b,EAAEoB,IAAmBpB,EAAEoB,aAAc0a,QACvG9Z,EAAOZ,GAAKrB,EAAEqB,GAAKpB,EAAEoB,GAErBY,EAAOZ,QAAA,IAAKpB,EAAEoB,GAAmBrB,EAAEqB,GAAKrB,EAAEqB,IAAMpB,EAAEoB,GAGpDA,GAAK,EAGP,OAAOY,CAAA,CAGT,OAAO,EAGT,SAASq+C,IAAItgD,EAAGC,GACd,IAIIK,EAMAY,EACAG,EAXAO,EAAO89C,QAAQ1/C,GAEf6B,EAAO69C,QAAQz/C,GAInB,GAAI8/C,YAAYn+C,EAAM5B,IAAM+/C,YAAYl+C,EAAM5B,GAC5C,OAAOD,EAAIC,EAMb,GAAI6/C,sBAAsB9/C,IAAM+/C,YAAYl+C,EAAM5B,GAAI,CAIpD,IAHAoB,EAAMrB,EAAEoB,OACRd,EAAMuI,iBAAiB,UAAWxH,GAE7BH,EAAI,EAAGA,EAAIG,EAAKH,GAAK,EACxBZ,EAAIY,GAAKlB,EAAEkB,GAAKjB,EAGlB,OAAOK,CAAA,CAGT,GAAIy/C,YAAYn+C,EAAM5B,IAAM8/C,sBAAsB7/C,GAAI,CAIpD,IAHAoB,EAAMpB,EAAEmB,OACRd,EAAMuI,iBAAiB,UAAWxH,GAE7BH,EAAI,EAAGA,EAAIG,EAAKH,GAAK,EACxBZ,EAAIY,GAAKlB,EAAIC,EAAEiB,GAGjB,OAAOZ,CAAA,CAGT,OAAO,EAGT,SAASigD,IAAIvgD,EAAGC,GACd,IAIIK,EAMAY,EACAG,EAXAO,EAAO89C,QAAQ1/C,GAEf6B,EAAO69C,QAAQz/C,GAInB,GAAI8/C,YAAYn+C,EAAM5B,IAAM+/C,YAAYl+C,EAAM5B,GAC5C,OAAOD,EAAIC,EAMb,GAAI6/C,sBAAsB9/C,IAAM+/C,YAAYl+C,EAAM5B,GAAI,CAIpD,IAHAoB,EAAMrB,EAAEoB,OACRd,EAAMuI,iBAAiB,UAAWxH,GAE7BH,EAAI,EAAGA,EAAIG,EAAKH,GAAK,EACxBZ,EAAIY,GAAKlB,EAAEkB,GAAKjB,EAGlB,OAAOK,CAAA,CAGT,GAAIy/C,YAAYn+C,EAAM5B,IAAM8/C,sBAAsB7/C,GAAI,CAIpD,IAHAoB,EAAMpB,EAAEmB,OACRd,EAAMuI,iBAAiB,UAAWxH,GAE7BH,EAAI,EAAGA,EAAIG,EAAKH,GAAK,EACxBZ,EAAIY,GAAKlB,EAAIC,EAAEiB,GAGjB,OAAOZ,CAAA,CAGT,OAAO,EAGT,SAASkgD,IAAIxgD,EAAGC,GASd,MARiB,iBAAND,IACTA,EAAIqZ,SAASrZ,EAAG,KAGD,iBAANC,IACTA,EAAIoZ,SAASpZ,EAAG,KAGXD,EAAIC,CAAA,CAGb,IAAIwgD,QAAUL,IACVM,QAAUL,IACVM,QAAUL,IACVM,QAAUL,IACVM,QAAUL,IAEd,SAASM,MAAM9gD,EAAKC,EAAKK,GACvB,GAAIL,EAAMK,EAAK,CACb,IAAIY,EAAKZ,EACTA,EAAML,EACNA,EAAMiB,CAAA,CAGR,OAAO0I,KAAKS,IAAIT,KAAKO,IAAInK,EAAKC,GAAMK,EAAA,CAGtC,SAASygD,iBAAiB/gD,GACxB,OAAOA,EAAM2K,SAAA,CAGf,IAAIq2C,mBAAqBD,iBAEzB,SAASE,iBAAiBjhD,GACxB,OAAOA,EAAM2K,SAAA,CAGf,IAAIu2C,mBAAqBH,iBACrBI,kBAAoB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAExC,SAAS//C,OAAOpB,EAAMC,GACpB,GAAoB,iBAATD,GAAqBA,aAAgB+b,OAE9C,OADA9b,EAAOA,GAAQ,EACR2J,KAAKa,IAAIzK,EAAOC,GAOzB,IAAIK,EAJCL,IACHA,EAAOkhD,mBAIT,IAAIjgD,EAAM0I,KAAKS,IAAIrK,EAAKoB,OAAQnB,EAAKmB,QACjCC,EAAc,EAElB,IAAKf,EAAI,EAAGA,EAAIY,EAAKZ,GAAK,EACxBe,GAAeuI,KAAKC,IAAI5J,EAAKK,GAAKN,EAAKM,GAAI,GAG7C,OAAOsJ,KAAKG,KAAK1I,EAAA,CAGnB,SAAS+/C,UAAUphD,GACjB,OAAOugD,IAAIvgD,EAAKoB,OAAOpB,GAAA,CAGzB,SAASqhD,SAASrhD,GAChB,IAKIC,EACAK,EANAY,EAAIlB,EAAI,GACRqB,EAAIrB,EAAI,GACR4B,EAAI5B,EAAI,GACR6B,EAAM+H,KAAKO,IAAIjJ,EAAGG,EAAGO,GACrBK,EAAM2H,KAAKS,IAAInJ,EAAGG,EAAGO,GAGrBY,GAAKX,EAAMI,GAAO,EAEtB,GAAIJ,IAAQI,EACVhC,EAAI,EAEJK,EAAI,MACC,CACL,IAAImE,EAAI5C,EAAMI,EAGd,OAFA3B,EAAIkC,EAAI,GAAMiC,GAAK,EAAI5C,EAAMI,GAAOwC,GAAK5C,EAAMI,GAEvCJ,GACN,KAAKX,EACHjB,GAAKoB,EAAIO,GAAK6C,GAAKpD,EAAIO,EAAI,EAAI,GAC/B,MAEF,KAAKP,EACHpB,GAAK2B,EAAIV,GAAKuD,EAAI,EAClB,MAEF,KAAK7C,EACH3B,GAAKiB,EAAIG,GAAKoD,EAAI,EAOtBxE,GAAK,EAGP,MAAO,CAACA,EAAGK,EAAGkC,EAAGxC,EAAI,IAGvB,SAASshD,QAAQthD,EAAGC,EAAGK,GAGrB,OAFIA,EAAI,IAAGA,GAAK,GACZA,EAAI,IAAGA,GAAK,GACZA,EAAI,EAAI,EAAUN,EAAc,GAATC,EAAID,GAASM,EACpCA,EAAI,GAAcL,EAClBK,EAAI,EAAI,EAAUN,GAAKC,EAAID,IAAM,EAAI,EAAIM,GAAK,EAC3CN,CAAA,CAGT,SAASuhD,SAASvhD,GAChB,IAGIC,EACAK,EACAY,EALAG,EAAIrB,EAAI,GACR4B,EAAI5B,EAAI,GACR6B,EAAI7B,EAAI,GAKZ,GAAU,IAAN4B,EACF3B,EAAI4B,EAEJX,EAAIW,EAEJvB,EAAIuB,MACC,CACL,IAAII,EAAIJ,EAAI,GAAMA,GAAK,EAAID,GAAKC,EAAID,EAAIC,EAAID,EACxCY,EAAI,EAAIX,EAAII,EAChBhC,EAAIqhD,QAAQ9+C,EAAGP,EAAGZ,EAAI,EAAI,GAC1Bf,EAAIghD,QAAQ9+C,EAAGP,EAAGZ,GAClBH,EAAIogD,QAAQ9+C,EAAGP,EAAGZ,EAAI,EAAI,GAG5B,MAAO,CAACpB,EAAGK,EAAGY,EAAGlB,EAAI,IAGvB,SAASwhD,OAAOxhD,EAAGC,EAAMK,EAAMY,EAAQG,GAQrC,QAAI,IAPAH,QAAA,IAAwBG,IAC1BH,EAASjB,EACToB,EAASf,EACTL,EAAO,EACPK,EAAO,GAGLA,EAAOL,EAAM,CACf,IAAI2B,EAAQtB,EACZA,EAAOL,EACPA,EAAO2B,CAAA,CAGT,GAAI5B,GAAKC,EACP,OAAOiB,EAGT,GAAIlB,GAAKM,EACP,OAAOe,EAGT,IAMIQ,EANAI,EAAO3B,IAASL,EAAO,GAAKD,EAAIC,IAASK,EAAOL,GAEpD,IAAKiB,EAAOE,OACV,OAAOF,GAAUG,EAASH,GAAUe,EAItC,IAAIO,EAAMtB,EAAOE,OACbqD,EAAMoE,iBAAiB,UAAWrG,GAEtC,IAAKX,EAAI,EAAGA,EAAIW,EAAKX,GAAK,EACxB4C,EAAI5C,GAAKX,EAAOW,IAAMR,EAAOQ,GAAKX,EAAOW,IAAMI,EAGjD,OAAOwC,CAAA,CAGT,SAAS+F,OAAOxK,EAAKC,GAWnB,QAAI,IAVAA,SAAA,IACED,GACFA,EAAM,EACNC,EAAM,IAENA,EAAMD,EACNA,OAAA,IAIAC,EAAImB,OAAQ,CACd,IAAId,EACAY,EAAMjB,EAAImB,OAETpB,IACHA,EAAM6I,iBAAiB,UAAW3H,IAGpC,IAAIG,EAAMwH,iBAAiB,UAAW3H,GAClCU,EAAM0I,OAAOE,SAEjB,IAAKlK,EAAI,EAAGA,EAAIY,EAAKZ,GAAK,EACxBe,EAAIf,GAAKN,EAAIM,GAAKsB,GAAO3B,EAAIK,GAAKN,EAAIM,IAGxC,OAAOe,CAAA,CAQT,YAAO,IALHrB,IACFA,EAAM,GAIDA,EADIsK,OAAOE,UACGvK,EAAMD,EAAA,CAG7B,SAASyhD,WAAWzhD,EAAQC,EAAYK,EAAaY,GACnD,IAAIG,EACAO,EAAM5B,EAAOoB,OACbS,EAAO2iB,UAAUxF,aACrBnd,EAAKqiB,cAAchjB,EAAQU,GAC3B,IACIK,EACAO,EAFAiC,EAAiB,CAAC,EAAG,GAIzB,IAAKpD,EAAI,EAAGA,EAAIO,EAAKP,GAAK,EACxBY,EAAgBhC,GAAcA,EAAWoB,GAAKpB,EAAWoB,GAAKoD,EAC9DjC,EAAiBlC,GAAeA,EAAYe,GAAKf,EAAYe,GAAKoD,EAClE5C,EAAKyiB,YAAYtkB,EAAOqB,GAAG,GAAIrB,EAAOqB,GAAG,GAAImB,EAAe,GAAKxC,EAAOqB,GAAG,GAAImB,EAAe,GAAKxC,EAAOqB,GAAG,GAAIY,EAAc,GAAKjC,EAAOqB,GAAG,GAAIY,EAAc,GAAKjC,EAAOqB,GAAG,GAAIA,GAAA,GAGrL,OAAOQ,CAAA,CAGT,SAAS6/C,mBAAmBjkC,KAAMhP,KAAMkzC,UAEtC,SAASC,KAAK5hD,GACZ,OAAOA,CAAA,CAGT,IAAKyd,KAAKvE,WAAW8c,aAAa4W,eAChC,OAAOgV,KAGT,IAAI7a,IAAMt4B,KAAK0R,EACX0hC,cAAgB,qBAAqBr4C,KAAKu9B,KAE1C+a,cAA0C,IAA3B/a,IAAIvlC,QAAQ,UAE3BugD,SAAWtkC,KAAKhP,KAAKa,GACrBmY,UACAu6B,cACA9nB,QACA4D,OACAmkB,aAAeN,SACnBM,aAAajI,YAAciI,aAAa/1B,eACxChsB,OAAOgC,eAAe+/C,aAAc,QAAS,CAC3Cv+C,IAAK,WACH,OAAOu+C,aAAa59C,CAAA,IAGxBoZ,KAAKgF,KAAK02B,cAAgB,EAAI17B,KAAKgF,KAAKvJ,WAAW9B,UACnDqG,KAAKgF,KAAK22B,iBAAmB,EAC7B,IAAI0C,QAAUr+B,KAAKhP,KAAK4B,GAAKoN,KAAKgF,KAAKvJ,WAAW9B,UAC9C2kC,SAAWt+B,KAAKhP,KAAK6B,GAAKmN,KAAKgF,KAAKvJ,WAAW9B,UAC/CtE,MAAQ2K,KAAKhP,KAAKk1B,GAAKlmB,KAAKhP,KAAKk1B,GAAK,EACtC5wB,OAAS0K,KAAKhP,KAAKyT,GAAKzE,KAAKhP,KAAKyT,GAAK,EACvC9L,KAAOqH,KAAKhP,KAAK8H,GACjB2rC,OACAC,QACAC,QACAC,SACAC,OACArH,QACAE,UACAG,SACAD,OACAkH,kBACAp3C,SACAmvC,SACAM,YACAtzB,MACAk7B,UACAC,SACAxG,KACAjC,YACAG,eACAuI,aAEAC,oBAAsBC,KAAK,oCAAsC7b,IAAM,0BAA0B,GAEjGgT,QAAU4H,SAASv+B,GAAK3U,KAAKY,EAAEjO,OAAS,EACxCu6C,QAAU96C,KAAK4N,OAAA,IAAQ5N,KAAK4N,KAAKywB,GAEjC2jB,OAAS,SAAgB7iD,EAAMC,GACjC,IAAIK,EACAY,EACAG,EAAYR,KAAKygB,GAAGlgB,OAASP,KAAKygB,GAAGlgB,OAAS,EAC9CQ,EAAYiH,iBAAiB,UAAWxH,GAExCQ,EAAa+H,KAAKK,MADf,EACqB8L,MAI5B,IAHAzV,EAAU,EACVY,EAAI,EAEGZ,EAAUuB,GAAY,CAE3B,IAAKX,EAAI,EAAGA,EAAIG,EAAWH,GAAK,EAC9BU,EAAUV,KAAOjB,EAAY,EAANA,EAAUqK,OAAOE,SAG1ClK,GAAW,EAIb,IAAI2B,EAfG,EAeO8T,KACVvT,EAAOP,EAAU2H,KAAKK,MAAMhI,GAC5BwC,EAAMoE,iBAAiB,UAAWxH,GAEtC,GAAIA,EAAY,EAAG,CACjB,IAAKH,EAAI,EAAGA,EAAIG,EAAWH,GAAK,EAC9BuD,EAAIvD,GAAKL,KAAKygB,GAAGpgB,GAAKU,EAAUV,KAAOjB,EAAY,EAANA,EAAUqK,OAAOE,UAAYhI,EAI5E,OAAOiC,CAAA,CAGT,OAAO5D,KAAKygB,GAAK1f,EAAU,KAAO3B,EAAY,EAANA,EAAUqK,OAAOE,UAAYhI,CAAA,EACrEqR,KAAKhT,MAgBP,SAASiiD,eAAe9iD,EAAMC,GAC5B,OAAOiiD,OAAOliD,EAAMC,GAAA,EAAU,CAGhC,SAAS8iD,gBAAgB/iD,EAAMC,GAC7B,OAAOmiD,QAAQpiD,EAAMC,GAAA,EAAU,CAnB7BgiD,aAAaC,SACfA,OAASD,aAAaC,OAAOruC,KAAKouC,cAClCE,QAAUD,QAGRD,aAAaG,UACfA,QAAUH,aAAaG,QAAQvuC,KAAKouC,cACpCI,SAAWD,SAGTH,aAAaK,SACfA,OAASL,aAAaK,OAAOzuC,KAAKouC,eAWhCphD,KAAKqrB,iBACP8tB,YAAcn5C,KAAKqrB,eAAerY,KAAKhT,OAGrCA,KAAKi5C,oBACPK,eAAiBt5C,KAAKi5C,kBAAkBjmC,KAAKhT,OAG/C,IAAI4hB,KAAOhF,KAAKgF,KAAKvJ,WAAWb,iBAAiBxE,KAAK4J,KAAKgF,KAAKvJ,WAAWb,kBAsLvEtC,KACAitC,SACApgD,MACAw3B,KACA6oB,UACAC,UACAC,cA1LJ,SAASC,OAAOpjD,EAAOC,GACrB,IAAIK,EAAO,CAACL,EAAM,GAAKD,EAAM,GAAIC,EAAM,GAAKD,EAAM,GAAIC,EAAM,GAAKD,EAAM,IACnEkB,EAAQ0I,KAAKuY,MAAM7hB,EAAK,GAAIsJ,KAAKG,KAAKzJ,EAAK,GAAKA,EAAK,GAAKA,EAAK,GAAKA,EAAK,KAAOqK,UAEpF,MAAO,EADIf,KAAKuY,MAAM7hB,EAAK,GAAIA,EAAK,IAAMqK,UAC7BzJ,EAAO,GAGtB,SAASmiD,QAAQrjD,EAAGC,EAAMK,EAAMY,EAAMG,GACpC,OAAOiiD,UAAUpD,WAAYlgD,EAAGC,EAAMK,EAAMY,EAAMG,EAAA,CAGpD,SAASkiD,OAAOvjD,EAAGC,EAAMK,EAAMY,EAAMG,GACnC,OAAOiiD,UAAUrD,UAAWjgD,EAAGC,EAAMK,EAAMY,EAAMG,EAAA,CAGnD,SAASmiD,KAAKxjD,EAAGC,EAAMK,EAAMY,EAAMG,GACjC,OAAOiiD,UAAUnD,aAAcngD,EAAGC,EAAMK,EAAMY,EAAMG,EAAA,CAGtD,SAASiiD,UAAUtjD,EAAIC,EAAGK,EAAMY,EAAMG,EAAMO,QAAA,IACtCP,GACFA,EAAOf,EACPsB,EAAOV,GAEPjB,GAAKA,EAAIK,IAASY,EAAOZ,GAGvBL,EAAI,EACNA,EAAI,EACKA,EAAI,IACbA,EAAI,GAGN,IAAI4B,EAAO7B,EAAGC,GAEd,GAAI6/C,sBAAsBz+C,GAAO,CAC/B,IAAIY,EACAO,EAASnB,EAAKD,OACdqD,EAAMoE,iBAAiB,UAAWrG,GAEtC,IAAKP,EAAO,EAAGA,EAAOO,EAAQP,GAAQ,EACpCwC,EAAIxC,IAASL,EAAKK,GAAQZ,EAAKY,IAASJ,EAAOR,EAAKY,GAGtD,OAAOwC,CAAA,CAGT,OAAQ7C,EAAOP,GAAQQ,EAAOR,CAAA,CAGhC,SAASoiD,WAAWzjD,GAClB,IAAIC,EAEAK,EACAY,EAFAG,EAASoN,KAAKY,EAAEjO,OAIpB,GAAKqN,KAAKY,EAAEjO,QAA+B,iBAAdqN,KAAKY,EAAE,GAOlC,GAHA/O,GAAS,GACTN,GAAQyd,KAAKgF,KAAKvJ,WAAW9B,WAElB3I,KAAKY,EAAE,GAAGrP,EACnBM,EAAQ,EACRY,EAAUuN,KAAKY,EAAE,GAAGrP,MACf,CACL,IAAKC,EAAO,EAAGA,EAAOoB,EAAS,EAAGpB,GAAQ,EAAG,CAC3C,GAAID,IAASyO,KAAKY,EAAEpP,GAAMD,EAAG,CAC3BM,EAAQL,EAAO,EACfiB,EAAUuN,KAAKY,EAAEpP,GAAMD,EACvB,MACK,GAAIA,EAAOyO,KAAKY,EAAEpP,GAAMD,GAAKA,EAAOyO,KAAKY,EAAEpP,EAAO,GAAGD,EAAG,CACzDA,EAAOyO,KAAKY,EAAEpP,GAAMD,EAAIyO,KAAKY,EAAEpP,EAAO,GAAGD,EAAIA,GAC/CM,EAAQL,EAAO,EACfiB,EAAUuN,KAAKY,EAAEpP,EAAO,GAAGD,IAE3BM,EAAQL,EAAO,EACfiB,EAAUuN,KAAKY,EAAEpP,GAAMD,GAGzB,QAIW,IAAXM,IACFA,EAAQL,EAAO,EACfiB,EAAUuN,KAAKY,EAAEpP,GAAMD,EAAA,MA9B3BM,EAAQ,EACRY,EAAU,EAkCZ,IAAIU,EAAQ,CAAC,EAGb,OAFAA,EAAM6nB,MAAQnpB,EACdsB,EAAMmU,KAAO7U,EAAUuc,KAAKgF,KAAKvJ,WAAW9B,UACrCxV,CAAA,CAGT,SAASstC,IAAIlvC,GACX,IAAIC,EACAK,EACAY,EAEJ,IAAKuN,KAAKY,EAAEjO,QAA+B,iBAAdqN,KAAKY,EAAE,GAClC,MAAM,IAAIlJ,MAAM,yCAA2CnG,GAG7DA,GAAO,EACPC,EAAQ,CACN8V,KAAMtH,KAAKY,EAAErP,GAAKA,EAAIyd,KAAKgF,KAAKvJ,WAAW9B,UAC3CxU,MAAO,IAET,IAAIvB,EAAMnB,OAAOK,UAAUC,eAAeC,KAAKgO,KAAKY,EAAErP,GAAM,KAAOyO,KAAKY,EAAErP,GAAK4B,EAAI6M,KAAKY,EAAErP,EAAM,GAAGC,EAGnG,IAFAiB,EAASG,EAAID,OAERd,EAAO,EAAGA,EAAOY,EAAQZ,GAAQ,EACpCL,EAAMK,GAAQe,EAAIf,GAClBL,EAAM2C,MAAMtC,GAAQe,EAAIf,GAG1B,OAAOL,CAAA,CAGT,SAASyjD,aAAa1jD,EAAIC,GAKxB,OAJKA,IACHA,EAAMwd,KAAKgF,KAAKvJ,WAAW9B,WAGtBpX,EAAKC,CAAA,CAGd,SAAS0jD,aAAa3jD,EAAGC,GASvB,OARKD,GAAW,IAANA,IACRA,EAAI+V,MAGD9V,IACHA,EAAMwd,KAAKgF,KAAKvJ,WAAW9B,WAGtBpX,EAAIC,CAAA,CAGb,SAASy+C,WAAW1+C,GAClBsK,OAAOq0C,WAAWiF,SAAW5jD,EAAA,CAG/B,SAASm2B,mBACP,OAAO1Y,KAAK0Y,kBAAA,CAGd,SAAS0tB,UAAU7jD,EAAMC,GACvB,MAAqB,iBAAV2C,WAAA,IACL3C,EACK2C,MAAMihD,UAAU7jD,GAGlB4C,MAAMihD,UAAU7jD,EAAMC,GAGxB,GAGT,SAASyZ,OAAO1Z,EAAMC,GACpB,MAAqB,iBAAV2C,WAAA,IACL3C,EACK2C,MAAM8W,OAAO1Z,GAGf4C,MAAM8W,OAAO1Z,EAAMC,GAGrB,GAGT,SAAS6jD,cAAc9jD,GACrB+V,KAA2B,IAApB/V,EAAwB,EAAI4J,KAAKK,MAAM8L,KAAO/V,GAAmBA,EACxE4C,MAAQo3C,YAAYjkC,KAAA,CAUtB,IAAI0T,MAAQhM,KAAKhP,KAAKutB,IAClByf,aAAeh+B,KAAKsf,YAAatf,KAAKsf,UAAU37B,QAChDsxB,OACAkxB,SAAWh6C,KAAKK,MAAsB,IAAhBL,KAAKY,UAC3B0O,WAAauE,KAAKvE,WAEtB,SAAS6qC,kBAAkB/jD,GAIzB,OAFA4C,MAAQ5C,EAEJa,KAAKmjD,oBAAsBvmC,KAAKvE,WAAW6J,SAA6B,iBAAlBliB,KAAKwgB,SACtDze,OAGa,iBAAlB/B,KAAKwgB,WACP4hC,UAAYpiD,KAAKoiD,UACjBC,UAAYriD,KAAKqiD,UACjBC,cAAgBtiD,KAAKsiD,eAGlBX,YACHpoB,KAAO3c,KAAKic,eAAeU,KAC3BooB,UAAY/kC,KAAKic,eACjB+oB,SAAWhlC,KAAKgF,KAAK9L,cACrBskC,QAAUuH,UAAUvH,QAAQpnC,KAAK2uC,WACjCrH,UAAYqH,UAAUrH,UAAUtnC,KAAK2uC,WACrClH,SAAWkH,UAAUlH,SAASznC,KAAK2uC,WACnCnH,OAASmH,UAAUnH,OAAOxnC,KAAK2uC,WAC/BvG,KAAOuG,UAAUvG,KAAOuG,UAAUvG,KAAKpoC,KAAK2uC,WAAa,KACzDD,kBAAoBjH,UAGjB7zB,YACHA,UAAYhK,KAAKic,eAAe,wBAChCsoB,cAAgBv6B,UAEZA,YACFmzB,YAAcnzB,UAAUmzB,cAOX,IAAbmH,UAAmB7nB,UACrBA,QAAUsoB,UAAU,4BAGjB1kB,SACHA,OAAS0kB,UAAU,KAGrB/G,aAAeh+B,KAAKsf,YAAatf,KAAKsf,UAAU37B,WAE9BsxB,SAChBA,OAASjV,KAAKsf,UAAU,GAAGrD,gBAG7B3jB,KAAOlV,KAAK4hB,KAAKC,cAAgB7hB,KAAK4hB,KAAKvJ,WAAW9B,UAElD0qC,cACFpD,WAAWkF,SAAW7tC,MAGpB8rC,gBACFmB,SAAW7I,eAAepkC,OAG5B4sC,sBACA9hD,KAAKmjD,kBAAoBvmC,KAAKvE,WAAW6J,QAGzC2/B,aAAeA,aAAarhC,WAAam+B,UAAUC,MAAQiD,aAAar+C,EAAIq+C,aAAA,CAM9E,OADAqB,kBAAkBE,yBAA2B,CAACjC,cAAepH,YAAa7kC,KAAMitC,SAAUlH,QAASC,SAAUjpC,MAAOC,OAAQqD,KAAM+rC,QAASE,SAAUC,OAAQjH,OAAQkH,kBAAmBtH,QAASE,UAAWc,KAAM9wC,SAAUmvC,SAAUhzB,MAAOm7B,SAAU1I,QAAS4B,OAAQkH,OAAQC,eAAgBC,gBAAiBtgC,KAAM2gC,OAAQC,QAASE,OAAQC,KAAMC,WAAYvU,IAAK9U,KAAM6oB,UAAWC,UAAWC,cAAeO,aAAcC,aAAcxtB,iBAAkB0tB,UAAWnqC,OAAQoqC,cAAer6B,MAAOvQ,YACle6qC,iBAAA,CAKT,OAFAh/B,GAAG28B,mBAAqBA,mBACxB38B,GAAGk/B,yBAA2B,CAACt+C,OAAQqB,SAAU0K,eAAgBkuC,MAAOC,OAAQG,QAASnZ,IAAK4Z,QAASC,QAASC,QAASC,QAASC,QAASC,MAAOE,mBAAoBC,iBAAkBC,mBAAoBE,UAAWC,SAAUE,SAAUC,OAAQh3C,OAAQi3C,YACpP18B,EAAA,CA71Be,GAg2BpBm/B,kBAgFK,CACLC,kBAhFF,SAA2BnkD,EAAMC,EAAMK,GACjCL,EAAKkgB,IACP7f,EAAK+O,GAAA,EACL/O,EAAK6f,GAAA,EACL7f,EAAKohD,mBAAqB/B,kBAAkB+B,mBAC5CphD,EAAK0iB,gBAAgBzf,KAAKjD,EAAKohD,mBAAmB1hD,EAAMC,EAAMK,GAAMuT,KAAKvT,IAAA,EA4E3E45C,eA3DF,SAAwBl6C,GACtB,IACIC,EAAKY,KAAKqrB,eAAelsB,GACzBM,EAAKO,KAAKqrB,eAAelsB,GAFhB,KAGTkB,EAAQ,EAEZ,GAAIjB,EAAGmB,OAAQ,CACb,IAAIC,EAEJ,IAAKA,EAAI,EAAGA,EAAIpB,EAAGmB,OAAQC,GAAK,EAC9BH,GAAS0I,KAAKC,IAAIvJ,EAAGe,GAAKpB,EAAGoB,GAAI,GAGnCH,EAA2B,IAAnB0I,KAAKG,KAAK7I,EAAA,MAElBA,EAAQ,EAGV,OAAOA,CAAA,EA0CP44C,kBAvCF,SAA2B95C,GACzB,QAAI,IAAAa,KAAKyiB,IACP,OAAOziB,KAAKyiB,IAGd,IAIIrjB,EAIEK,EANFY,EAAKL,KAAKqrB,eAAelsB,GACzBqB,EAAKR,KAAKqrB,eAAelsB,GAHjB,MAMZ,GAAIkB,EAAGE,OAIL,IAHAnB,EAAW4I,iBAAiB,UAAW3H,EAAGE,QAGrCd,EAAI,EAAGA,EAAIY,EAAGE,OAAQd,GAAK,EAI9BL,EAASK,IAAMe,EAAGf,GAAKY,EAAGZ,KAdlB,UAiBVL,GAAYoB,EAAKH,IAjBP,KAoBZ,OAAOjB,CAAA,EAePisB,eA1EF,SAAwBlsB,GAUtB,OATAA,GAAYa,KAAK4c,KAAKvE,WAAW9B,WACjCpX,GAAYa,KAAKugB,cAEAvgB,KAAKujD,eAAetiC,YACnCjhB,KAAKujD,eAAe7iC,UAAY1gB,KAAKujD,eAAetiC,UAAY9hB,EAAWa,KAAKujD,eAAe7iC,UAAY,EAC3G1gB,KAAKujD,eAAexhD,MAAQ/B,KAAK+hB,iBAAiB5iB,EAAUa,KAAKujD,gBACjEvjD,KAAKujD,eAAetiC,UAAY9hB,GAG3Ba,KAAKujD,eAAexhD,KAAA,EAiE3ByhD,qBAbF,WACE,OAAOxjD,KAAKygB,EAAA,EAaZo7B,iBAVF,SAA0B18C,GACxBa,KAAKu5C,cAAgBp6C,CAAA,GAazB,SAASskD,uBACP,SAAStkD,EAAQA,EAAMC,EAAUK,GAC/B,IAAKO,KAAKwO,IAAMxO,KAAK2gB,UACnB,OAAO3gB,KAAKygB,GAGdthB,EAAOA,EAAOA,EAAKovB,cAAgB,GACnC,IAQIluB,EACAG,EAmBAO,EACAC,EACAI,EA9BAO,EAAe3B,KAAK4hB,KAAKC,cACzBje,EAAY5D,KAAK2gB,UACjB9c,EAAeD,EAAUA,EAAUrD,OAAS,GAAGpB,EAEnD,GAAIwC,GAAgBkC,EAClB,OAAO7D,KAAKygB,GA2Bd,GArBKhhB,EAcHe,EAAgBqD,GAHdxD,EAHGjB,EAGa2J,KAAKa,IAAI/F,EAAe7D,KAAK4c,KAAKgF,KAAKvJ,WAAW9B,UAAYnX,GAF9D2J,KAAKO,IAAI,EAAGzF,EAAe7D,KAAK4c,KAAKhP,KAAK4B,QARvDpQ,GAAYA,EAAWwE,EAAUrD,OAAS,KAC7CnB,EAAWwE,EAAUrD,OAAS,GAIhCF,EAAgBwD,GADhBrD,EAAgBoD,EAAUA,EAAUrD,OAAS,EAAInB,GAAUD,IAgBhD,aAATA,GAGF,GAFiB4J,KAAKK,OAAOzH,EAAenB,GAAiBH,GAE5C,GAAM,EACrB,OAAOL,KAAKqrB,gBAAgBhrB,GAAiBsB,EAAenB,GAAiBH,EAAgBG,GAAiBR,KAAK4hB,KAAKvJ,WAAW9B,UAAW,OAE3I,IAAa,WAATpX,EAAmB,CAC5B,IAAI0P,EAAQ7O,KAAKqrB,eAAe7qB,EAAgBR,KAAK4hB,KAAKvJ,WAAW9B,UAAW,GAC5EtI,EAAOjO,KAAKqrB,eAAexnB,EAAe7D,KAAK4hB,KAAKvJ,WAAW9B,UAAW,GAC1ErI,EAAUlO,KAAKqrB,iBAAiB1pB,EAAenB,GAAiBH,EAAgBG,GAAiBR,KAAK4hB,KAAKvJ,WAAW9B,UAAW,GAEjIlI,EAAUtF,KAAKK,OAAOzH,EAAenB,GAAiBH,GAE1D,GAAIL,KAAKygB,GAAGlgB,OAAQ,CAIlB,IAFAS,GADAI,EAAM,IAAI5B,MAAMqP,EAAMtO,SACZA,OAELQ,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EACxBK,EAAIL,IAAMkN,EAAKlN,GAAK8N,EAAM9N,IAAMsN,EAAUH,EAAQnN,GAGpD,OAAOK,CAAA,CAGT,OAAQ6M,EAAOY,GAASR,EAAUH,CAAA,CAC7B,GAAa,aAAT/O,EAAqB,CAC9B,IAAIwT,EAAY3S,KAAKqrB,eAAexnB,EAAe7D,KAAK4hB,KAAKvJ,WAAW9B,UAAW,GAC/EyI,EAAgBhf,KAAKqrB,gBAAgBxnB,EAAe,MAAS7D,KAAK4hB,KAAKvJ,WAAW9B,UAAW,GAEjG,GAAIvW,KAAKygB,GAAGlgB,OAAQ,CAIlB,IAFAS,GADAI,EAAM,IAAI5B,MAAMmT,EAAUpS,SAChBA,OAELQ,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EACxBK,EAAIL,GAAK4R,EAAU5R,IAAM4R,EAAU5R,GAAKie,EAAcje,MAAQY,EAAekC,GAAgB7D,KAAK4hB,KAAKvJ,WAAW9B,WAAa,KAGjI,OAAOnV,CAAA,CAGT,OAAOuR,GAA4ChR,EAAekC,GAAgB,MAA9D8O,EAAYqM,EAAA,EAGlC,OAAOhf,KAAKqrB,iBAAiB1pB,EAAenB,GAAiBH,EAAgBG,GAAiBR,KAAK4hB,KAAKvJ,WAAW9B,UAAW,GAGhI,SAASnX,EAAOD,EAAMC,EAAUK,GAC9B,IAAKO,KAAKwO,EACR,OAAOxO,KAAKygB,GAGdthB,EAAOA,EAAOA,EAAKovB,cAAgB,GACnC,IAQIluB,EACAG,EAmBAO,EACAC,EACAI,EA9BAO,EAAe3B,KAAK4hB,KAAKC,cACzBje,EAAY5D,KAAK2gB,UACjB9c,EAAgBD,EAAU,GAAGzE,EAEjC,GAAIwC,GAAgBkC,EAClB,OAAO7D,KAAKygB,GA2Bd,GArBKhhB,EAcHe,EAAeqD,GAHbxD,EAHGjB,EAGa2J,KAAKa,IAAI5J,KAAK4c,KAAKgF,KAAKvJ,WAAW9B,UAAYnX,GAF/C2J,KAAKO,IAAI,EAAGtJ,KAAK4c,KAAKhP,KAAK6B,GAAK5L,OAR7CzE,GAAYA,EAAWwE,EAAUrD,OAAS,KAC7CnB,EAAWwE,EAAUrD,OAAS,GAIhCF,GADAG,EAAeoD,EAAUxE,GAAUD,GACJ0E,GAepB,aAAT1E,GAGF,GAFiB4J,KAAKK,OAAOvF,EAAgBlC,GAAgBtB,GAE5C,GAAM,EACrB,OAAOL,KAAKqrB,iBAAiBxnB,EAAgBlC,GAAgBtB,EAAgBwD,GAAiB7D,KAAK4hB,KAAKvJ,WAAW9B,UAAW,OAE3H,IAAa,WAATpX,EAAmB,CAC5B,IAAI0P,EAAQ7O,KAAKqrB,eAAexnB,EAAgB7D,KAAK4hB,KAAKvJ,WAAW9B,UAAW,GAC5EtI,EAAOjO,KAAKqrB,eAAe7qB,EAAeR,KAAK4hB,KAAKvJ,WAAW9B,UAAW,GAC1ErI,EAAUlO,KAAKqrB,gBAAgBhrB,GAAiBwD,EAAgBlC,GAAgBtB,EAAgBwD,GAAiB7D,KAAK4hB,KAAKvJ,WAAW9B,UAAW,GACjJlI,EAAUtF,KAAKK,OAAOvF,EAAgBlC,GAAgBtB,GAAiB,EAE3E,GAAIL,KAAKygB,GAAGlgB,OAAQ,CAIlB,IAFAS,GADAI,EAAM,IAAI5B,MAAMqP,EAAMtO,SACZA,OAELQ,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EACxBK,EAAIL,GAAKmN,EAAQnN,IAAMkN,EAAKlN,GAAK8N,EAAM9N,IAAMsN,EAG/C,OAAOjN,CAAA,CAGT,OAAO8M,GAAWD,EAAOY,GAASR,CAAA,CAC7B,GAAa,aAATlP,EAAqB,CAC9B,IAAIwT,EAAa3S,KAAKqrB,eAAexnB,EAAgB7D,KAAK4hB,KAAKvJ,WAAW9B,UAAW,GACjFyI,EAAiBhf,KAAKqrB,gBAAgBxnB,EAAgB,MAAS7D,KAAK4hB,KAAKvJ,WAAW9B,UAAW,GAEnG,GAAIvW,KAAKygB,GAAGlgB,OAAQ,CAIlB,IAFAS,GADAI,EAAM,IAAI5B,MAAMmT,EAAWpS,SACjBA,OAELQ,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EACxBK,EAAIL,GAAK4R,EAAW5R,IAAM4R,EAAW5R,GAAKie,EAAeje,KAAO8C,EAAgBlC,GAAgB,KAGlG,OAAOP,CAAA,CAGT,OAAOuR,GAAcA,EAAaqM,IAAmBnb,EAAgBlC,GAAgB,MAGvF,OAAO3B,KAAKqrB,gBAAgBhrB,IAAkBwD,EAAgBlC,GAAgBtB,EAAgBwD,IAAkB7D,KAAK4hB,KAAKvJ,WAAW9B,UAAW,GAGlJ,SAAS9W,EAAON,EAAOC,GACrB,IAAKY,KAAKwO,EACR,OAAOxO,KAAKygB,GAMd,GAHAthB,EAAyB,IAAhBA,GAAS,KAClBC,EAAU2J,KAAKK,MAAMhK,GAAW,KAEjB,EACb,OAAOY,KAAKygB,GAGd,IAMIhhB,EAQAY,EAdAG,EAAcR,KAAK4hB,KAAKC,cAAgB7hB,KAAK4hB,KAAKvJ,WAAW9B,UAC7DxV,EAAYP,EAAcrB,EAE1B6B,EAAkB5B,EAAU,GADjBoB,EAAcrB,EACmB4B,IAAc3B,EAAU,GAAK,EACzEgC,EAAI,EACJO,EAAI,EAWR,IAPElC,EADEO,KAAKygB,GAAGlgB,OACFyH,iBAAiB,UAAWhI,KAAKygB,GAAGlgB,QAEpC,EAKHa,EAAIhC,GAAS,CAGlB,GAFAiB,EAAcL,KAAKqrB,eAAetqB,EAAYK,EAAIJ,GAE9ChB,KAAKygB,GAAGlgB,OACV,IAAKoB,EAAI,EAAGA,EAAI3B,KAAKygB,GAAGlgB,OAAQoB,GAAK,EACnClC,EAAMkC,IAAMtB,EAAYsB,QAG1BlC,GAASY,EAGXe,GAAK,EAGP,GAAIpB,KAAKygB,GAAGlgB,OACV,IAAKoB,EAAI,EAAGA,EAAI3B,KAAKygB,GAAGlgB,OAAQoB,GAAK,EACnClC,EAAMkC,IAAMvC,OAGdK,GAASL,EAGX,OAAOK,CAAA,CAGT,SAASY,EAAwBlB,GAC1Ba,KAAK0jD,0BACR1jD,KAAK0jD,wBAA0B,CAC7BlgD,EAAG,IAAI+hB,SAKX,IAAInmB,EAASY,KAAK0jD,wBAAwBlgD,EAG1C,GAFApE,EAAOioB,eAAernB,KAAKyqB,IAAIhF,OAE3BzlB,KAAK0qB,uBAAyB,EAAG,CACnC,IAAIjrB,EAASO,KAAKQ,EAAE6qB,eAAelsB,GACnCC,EAAOunB,WAAWlnB,EAAO,GAAKO,KAAKQ,EAAEwhB,MAAOviB,EAAO,GAAKO,KAAKQ,EAAEwhB,KAAMviB,EAAO,GAAKO,KAAKQ,EAAEwhB,KAAA,CAG1F,GAAIhiB,KAAK0qB,uBAAyB,EAAG,CACnC,IAAIrqB,EAAQL,KAAKe,EAAEsqB,eAAelsB,GAClCC,EAAOqnB,MAAMpmB,EAAM,GAAKL,KAAKe,EAAEihB,KAAM3hB,EAAM,GAAKL,KAAKe,EAAEihB,KAAM3hB,EAAM,GAAKL,KAAKe,EAAEihB,KAAA,CAGjF,GAAIhiB,KAAK4P,IAAM5P,KAAK0qB,uBAAyB,EAAG,CAC9C,IAAIlqB,EAAOR,KAAK4P,GAAGyb,eAAelsB,GAC9B4B,EAAWf,KAAK6P,GAAGwb,eAAelsB,GACtCC,EAAOonB,cAAchmB,EAAOR,KAAK4P,GAAGoS,KAAMjhB,EAAWf,KAAK6P,GAAGmS,KAAA,CAG/D,GAAIhiB,KAAKP,GAAKO,KAAK0qB,uBAAyB,EAAG,CAC7C,IAAI1pB,EAAWhB,KAAKP,EAAE4rB,eAAelsB,GACrCC,EAAO+mB,QAAQnlB,EAAWhB,KAAKP,EAAEuiB,KAAA,MAC5B,IAAKhiB,KAAKP,GAAKO,KAAK0qB,uBAAyB,EAAG,CACrD,IAAItpB,EAAYpB,KAAKgrB,GAAGK,eAAelsB,GACnCwC,EAAY3B,KAAK+qB,GAAGM,eAAelsB,GACnCyE,EAAY5D,KAAK8qB,GAAGO,eAAelsB,GACnC0E,EAAc7D,KAAKilB,GAAGoG,eAAelsB,GACzCC,EAAOknB,SAASllB,EAAYpB,KAAKgrB,GAAGhJ,MAAMqE,QAAQ1kB,EAAY3B,KAAK+qB,GAAG/I,MAAMoE,QAAQxiB,EAAY5D,KAAK8qB,GAAG9I,MAAMsE,SAASziB,EAAY,GAAK7D,KAAKilB,GAAGjD,MAAMqE,QAAQxiB,EAAY,GAAK7D,KAAKilB,GAAGjD,MAAMoE,QAAQviB,EAAY,GAAK7D,KAAKilB,GAAGjD,KAAA,CAGhO,GAAIhiB,KAAK4N,KAAK/J,GAAK7D,KAAK4N,KAAK/J,EAAE9C,EAAG,CAChC,IAAI8N,EAAY7O,KAAK2qB,GAAGU,eAAelsB,GACnC8O,EAAYjO,KAAK4qB,GAAGS,eAAelsB,GAEvC,GAAIa,KAAK4N,KAAK/J,EAAEkiB,EAAG,CACjB,IAAI7X,EAAYlO,KAAK6qB,GAAGQ,eAAelsB,GACvCC,EAAOunB,UAAU9X,EAAY7O,KAAK2qB,GAAG3I,KAAM/T,EAAYjO,KAAK4qB,GAAG5I,MAAO9T,EAAYlO,KAAK6qB,GAAG7I,KAAA,MAE1F5iB,EAAOunB,UAAU9X,EAAY7O,KAAK2qB,GAAG3I,KAAM/T,EAAYjO,KAAK4qB,GAAG5I,KAAM,OAElE,CACL,IAAI3T,EAAWrO,KAAK6D,EAAEwnB,eAAelsB,GACrCC,EAAOunB,UAAUtY,EAAS,GAAKrO,KAAK6D,EAAEme,KAAM3T,EAAS,GAAKrO,KAAK6D,EAAEme,MAAO3T,EAAS,GAAKrO,KAAK6D,EAAEme,KAAA,CAG/F,OAAO5iB,CAAA,CAGT,SAASoB,IACP,OAAOR,KAAKwD,EAAEqgB,MAAM,IAAI0B,OAAA,CAG1B,IAAIxkB,EAAuBypB,yBAAyBgB,qBAEpDhB,yBAAyBgB,qBAAuB,SAAUrsB,EAAMC,EAAMK,GACpE,IAAIuB,EAAOD,EAAqB5B,EAAMC,EAAMK,GAS5C,OAPIuB,EAAK8hB,kBAAkBviB,OACzBS,EAAKqqB,eAAiBhrB,EAAwB2S,KAAKhS,GAEnDA,EAAKqqB,eAAiB7qB,EAA8BwS,KAAKhS,GAG3DA,EAAK66C,iBAAmBwH,kBAAkBxH,iBACnC76C,CAAA,EAGT,IAAIA,EAAkBsf,gBAAgBsC,QAEtCtC,gBAAgBsC,QAAU,SAAUviB,EAAMG,EAAMO,EAAMK,EAAMO,GAC1D,IAAIiC,EAAO5C,EAAgBX,EAAMG,EAAMO,EAAMK,EAAMO,GAI/CiC,EAAK2e,GACP3e,EAAKynB,eAAiBg4B,kBAAkBh4B,eAAerY,KAAKpP,GAE5DA,EAAKynB,eAAiBg4B,kBAAkBG,qBAAqBxwC,KAAKpP,GAGpEA,EAAKi4C,iBAAmBwH,kBAAkBxH,iBAC1Cj4C,EAAK29C,QAAUpiD,EACfyE,EAAKy9C,OAASjiD,EACdwE,EAAK69C,OAAShiD,EACdmE,EAAKq1C,kBAAoBoK,kBAAkBpK,kBAAkBjmC,KAAKpP,GAClEA,EAAKy1C,eAAiBgK,kBAAkBhK,eAAermC,KAAKpP,GAC5DA,EAAKs1C,QAAqB,IAAX14C,EAAKA,EAAUA,EAAKgO,EAAEjO,OAAS,EAC9CqD,EAAKm4C,cAAgBv7C,EAAKwvB,GAC1B,IAAInsB,EAAQ,EAiBZ,OAfa,IAAT9C,IACF8C,EAAQmE,iBAAiB,UAAsB,IAAXxH,EAAKA,EAAUA,EAAKgO,EAAE,GAAGzN,EAAER,OAASC,EAAKgO,EAAEjO,SAGjFqD,EAAK2/C,eAAiB,CACpBtiC,UAAWpb,oBACX6a,UAAW,EACX3e,MAAO8B,GAETw/C,kBAAkBC,kBAAkBjjD,EAAMG,EAAMoD,GAE5CA,EAAK4K,GACP7M,EAAU6gB,mBAAmB5e,GAGxBA,CAAA,EAyBT,IAAIxC,EAAmCijB,qBAAqBgB,yBACxD1jB,EAA4C0iB,qBAAqBiB,kCAErE,SAAS1hB,IAAA,CAETA,EAAiBlE,UAAY,CAC3BikD,SAAU,SAAkBxkD,EAAMC,GAC5BY,KAAKwO,GACPxO,KAAK0iB,WAGP,IAMIjjB,EANAY,EAAYL,KAAKwD,OAAA,IAEjBpE,IACFiB,EAAYL,KAAKqrB,eAAejsB,EAAM,IAIxC,IAAIoB,EAAMH,EAAU+e,QAChBre,EAAWV,EAAUlB,GACrB6B,EAASX,EAAUmD,EACnBpC,EAAMgH,iBAAiB5H,GAE3B,IAAKf,EAAI,EAAGA,EAAIe,EAAKf,GAAK,EAEtB2B,EAAI3B,GADO,MAATN,GAAyB,MAATA,EACT,CAAC4B,EAAStB,GAAG,GAAKuB,EAAOvB,GAAG,GAAIsB,EAAStB,GAAG,GAAKuB,EAAOvB,GAAG,IAE3D,CAACsB,EAAStB,GAAG,GAAIsB,EAAStB,GAAG,IAI1C,OAAO2B,CAAA,EAETyd,OAAQ,SAAgB1f,GACtB,OAAOa,KAAK2jD,SAAS,IAAKxkD,EAAA,EAE5BykD,WAAY,SAAoBzkD,GAC9B,OAAOa,KAAK2jD,SAAS,IAAKxkD,EAAA,EAE5B0kD,YAAa,SAAqB1kD,GAChC,OAAOa,KAAK2jD,SAAS,IAAKxkD,EAAA,EAE5B2kD,SAAU,WACR,OAAO9jD,KAAKwD,EAAEyK,CAAA,EAEhB81C,YAAa,SAAqB5kD,EAAMC,GACtC,IAAIK,EAAYO,KAAKwD,OAAA,IAEjBpE,IACFK,EAAYO,KAAKqrB,eAAejsB,EAAM,IAGnCY,KAAKgkD,kBACRhkD,KAAKgkD,gBAAkB3jC,IAAIlB,kBAAkB1f,IAW/C,IARA,IAMIY,EANAG,EAAiBR,KAAKgkD,gBACtBjjD,EAAUP,EAAege,QACzBxd,EAAYR,EAAeke,YAAcvf,EACzCiC,EAAI,EACJO,EAAMZ,EAAQR,OACdqD,EAAoB,EAGjBxC,EAAIO,GAAK,CACd,GAAIiC,EAAoB7C,EAAQK,GAAGkd,YAActd,EAAW,CAC1D,IAAI6C,EAAYzC,EACZyN,EAAWpP,EAAUwO,GAAK7M,IAAMO,EAAM,EAAI,EAAIP,EAAI,EAClD6M,GAAejN,EAAY4C,GAAqB7C,EAAQK,GAAGkd,YAC/Dje,EAAKggB,IAAIJ,kBAAkBxgB,EAAU+D,EAAEK,GAAYpE,EAAU+D,EAAEqL,GAAWpP,EAAU2B,EAAEyC,GAAYpE,EAAUY,EAAEwO,GAAWZ,EAAalN,EAAQK,IAC9I,MAEAwC,GAAqB7C,EAAQK,GAAGkd,YAGlCld,GAAK,EAOP,OAJKf,IACHA,EAAKZ,EAAUwO,EAAI,CAACxO,EAAU+D,EAAE,GAAG,GAAI/D,EAAU+D,EAAE,GAAG,IAAM,CAAC/D,EAAU+D,EAAE/D,EAAU2f,QAAU,GAAG,GAAI3f,EAAU+D,EAAE/D,EAAU2f,QAAU,GAAG,KAGlI/e,CAAA,EAET4jD,aAAc,SAAsB9kD,EAAMC,EAAMK,GAElC,GAARN,EAEFA,EAAOa,KAAKwD,EAAEyK,EACG,GAAR9O,IAETA,EAAO,MAGT,IAAIkB,EAAML,KAAK+jD,YAAY5kD,EAAMC,GAC7BoB,EAAMR,KAAK+jD,YAAY5kD,EAAO,KAAOC,GACrC2B,EAAUP,EAAI,GAAKH,EAAI,GACvBW,EAAUR,EAAI,GAAKH,EAAI,GACvBe,EAAY2H,KAAKG,KAAKH,KAAKC,IAAIjI,EAAS,GAAKgI,KAAKC,IAAIhI,EAAS,IAEnE,OAAkB,IAAdI,EACK,CAAC,EAAG,GAGmB,YAAf3B,EAA2B,CAACsB,EAAUK,EAAWJ,EAAUI,GAAa,EAAEJ,EAAUI,EAAWL,EAAUK,EAAA,EAG5H8iD,cAAe,SAAuB/kD,EAAMC,GAC1C,OAAOY,KAAKikD,aAAa9kD,EAAMC,EAAM,YAEvC+kD,aAAc,SAAsBhlD,EAAMC,GACxC,OAAOY,KAAKikD,aAAa9kD,EAAMC,EAAM,WAEvCy8C,iBAAkBwH,kBAAkBxH,iBACpCxwB,eAAgBg4B,kBAAkBG,sBAEpCn9C,gBAAgB,CAACzC,GAAmBxC,GACpCiF,gBAAgB,CAACzC,GAAmBjC,GACpCA,EAA0CjC,UAAU2rB,eA5IpD,SAA6BlsB,GAmB3B,OAjBKa,KAAKujD,iBACRvjD,KAAKujD,eAAiB,CACpBa,WAAYzgC,UAAUE,MAAM7jB,KAAKygB,IACjCC,UAAW,EACX2jC,SAAUx+C,sBAId1G,GAAYa,KAAK4c,KAAKvE,WAAW9B,WACjCpX,GAAYa,KAAKugB,cAEAvgB,KAAKujD,eAAec,WACnCrkD,KAAKujD,eAAe7iC,UAAY1gB,KAAKujD,eAAec,SAAWllD,EAAWa,KAAK8hB,SAASpB,UAAY,EACpG1gB,KAAKujD,eAAec,SAAWllD,EAC/Ba,KAAKskB,iBAAiBnlB,EAAUa,KAAKujD,eAAea,WAAYpkD,KAAKujD,iBAGhEvjD,KAAKujD,eAAea,UAAA,EA0H7BziD,EAA0CjC,UAAUmhD,mBAAqB/B,kBAAkB+B,mBAC3F,IAAIh9C,EAAuBwgB,qBAAqBe,aAEhDf,qBAAqBe,aAAe,SAAUjmB,EAAMC,EAAMK,EAAMY,EAAKG,GACnE,IAAIO,EAAO8C,EAAqB1E,EAAMC,EAAMK,EAAMY,EAAKG,GAcvD,OAbAO,EAAKg7C,cAAgB38C,EAAK4wB,GAC1BjvB,EAAKqhB,MAAA,EAEQ,IAAT3iB,EACF4jD,kBAAkBC,kBAAkBnkD,EAAMC,EAAKmP,GAAIxN,GACjC,IAATtB,GACT4jD,kBAAkBC,kBAAkBnkD,EAAMC,EAAK+P,GAAIpO,GAGjDA,EAAKyN,GACPrP,EAAKqjB,mBAAmBzhB,GAGnBA,CAAA,EAIX,SAASujD,eACPb,sBAAA,CAGF,SAASc,eAWPthB,aAAavjC,UAAU8kD,mBAAqB,SAAUrlD,EAAcC,GAClE,IAAIK,EAAWO,KAAKykD,oBAAoBrlD,GAExC,GAAID,EAAaA,IAAMM,EAAU,CAC/B,IAAIY,EAAU,CAAC,EAIf,OAHAL,KAAKwkC,SAASnkC,EAASlB,GACvBkB,EAAQlB,EAAIM,EAASkN,WACrBtM,EAAQ4P,YAAA,EACD5P,CAAA,CAGT,OAAOlB,CAAA,EAGT8jC,aAAavjC,UAAU+kC,eAAiB,WACtC,IAAItlC,EAAca,KAAK2lC,kBACnBvmC,EAAiBY,KAAKsjD,oBAE1B,OADAtjD,KAAKuiB,GAAKpjB,GAAeC,EAClBY,KAAKuiB,EAAA,EAGd0gB,aAAavjC,UAAU4jD,kBA/BvB,WACE,OAAItjD,KAAK4N,KAAKS,EAAEiR,GACdtf,KAAKykD,oBAAsB3F,kBAAkB+B,mBAAmB7tC,KAAKhT,KAA1C8+C,CAAgD9+C,KAAK4c,KAAM5c,KAAK4N,KAAKS,EAAGrO,MACnGA,KAAK2iB,UAAU3iB,KAAKwkD,mBAAmBxxC,KAAKhT,QAAA,GAIvC,MA2BX,SAAS0kD,aACPH,cAAA,CAGF,SAASI,sBAAA,CAETA,oBAAoBjlD,UAAY,CAC9BklD,gBAAiB,SAAyBzlD,EAAUC,GAClD,IAEIK,EACAY,EAHAG,EAAU8M,SAAS,WAKvB,IAJA9M,EAAQyc,aAAa,SAAU9d,GAI1BkB,EAAI,EAAGA,EAAIjB,EAAImB,OAAQF,GAAK,GAC/BZ,EAAc6N,SAAS,gBACX2P,aAAa,KAAM7d,EAAIiB,IACnCG,EAAQ+T,YAAY9U,GACpBe,EAAQ+T,YAAY9U,GAGtB,OAAOe,CAAA,GAIX,IAAIqkD,kBAAoB,mFAExB,SAASC,cAAc3lD,EAAQC,EAAeK,EAAMY,EAAIG,GACtDR,KAAK+kD,cAAgB3lD,EACrB,IAAI2B,EAAgBuM,SAAS,iBAC7BvM,EAAckc,aAAa,OAAQ,UACnClc,EAAckc,aAAa,8BAA+B,aAC1Dlc,EAAckc,aAAa,SAAU4nC,kBAAoB,QACzD7kD,KAAKglD,aAAejkD,EACpBA,EAAckc,aAAa,SAAU5c,EAAK,WAC1ClB,EAAOoV,YAAYxT,IACnBA,EAAgBuM,SAAS,kBACX2P,aAAa,OAAQ,UACnClc,EAAckc,aAAa,8BAA+B,QAC1Dlc,EAAckc,aAAa,SAAU,2CACrClc,EAAckc,aAAa,SAAU5c,EAAK,WAC1ClB,EAAOoV,YAAYxT,GACnBf,KAAKilD,aAAelkD,EACpB,IAAIC,EAAUhB,KAAK4kD,gBAAgBvkD,EAAI,CAACG,EAAQH,EAAK,UAAWA,EAAK,YACrElB,EAAOoV,YAAYvT,EAAA,CAerB,SAASkkD,cAAc/lD,EAAQC,EAAeK,EAAMY,GAClDL,KAAK+kD,cAAgB3lD,EACrB,IAAIoB,EAAgB8M,SAAS,iBAC7B9M,EAAcyc,aAAa,OAAQ,UACnCzc,EAAcyc,aAAa,8BAA+B,QAC1Dzc,EAAcyc,aAAa,SAAU,2CACrCzc,EAAcyc,aAAa,SAAU5c,GACrClB,EAAOoV,YAAY/T,GACnBR,KAAKilD,aAAezkD,CAAA,CAWtB,SAAS2kD,gBAAgBhmD,EAAKC,EAAeK,GAC3CO,KAAKolD,aAAA,EACLplD,KAAK+kD,cAAgB3lD,EACrBY,KAAK4c,KAAOnd,EACZO,KAAKukB,MAAQ,GAiIf,SAAS8gC,iBAAiBlmD,EAAQC,EAAeK,EAAMY,GACrDL,KAAK+kD,cAAgB3lD,EACrB,IAAIoB,EAAgB8M,SAAS,iBAC7B9M,EAAcyc,aAAa,OAAQ,UACnCzc,EAAcyc,aAAa,8BAA+B,aAC1Dzc,EAAcyc,aAAa,SAAU,wFACrC9d,EAAOoV,YAAY/T,GACnB,IAAIO,EAAsBuM,SAAS,uBACnCvM,EAAoBkc,aAAa,8BAA+B,QAChElc,EAAoBkc,aAAa,SAAU5c,GAC3CL,KAAKilD,aAAelkD,EACpB,IAAIC,EAAUsM,SAAS,WACvBtM,EAAQic,aAAa,OAAQ,SAC7Blc,EAAoBwT,YAAYvT,GAChChB,KAAKslD,QAAUtkD,EACf,IAAII,EAAUkM,SAAS,WACvBlM,EAAQ6b,aAAa,OAAQ,SAC7Blc,EAAoBwT,YAAYnT,GAChCpB,KAAKulD,QAAUnkD,EACf,IAAIO,EAAU2L,SAAS,WACvB3L,EAAQsb,aAAa,OAAQ,SAC7Blc,EAAoBwT,YAAY5S,GAChC3B,KAAKwlD,QAAU7jD,EACfxC,EAAOoV,YAAYxT,EAAA,CAiBrB,SAAS0kD,mBAAmBtmD,EAAQC,EAAeK,EAAMY,GACvDL,KAAK+kD,cAAgB3lD,EACrB,IAAIoB,EAAiBR,KAAK+kD,cAAc1uB,eACpCt1B,EAAsBuM,SAAS,wBAE/B9M,EAAe,IAAIqD,EAAE2K,GAAgC,IAA3BhO,EAAe,IAAIqD,EAAEL,GAAWhD,EAAe,IAAIqD,EAAE2K,GAAgC,IAA3BhO,EAAe,IAAIqD,EAAEL,GAAWhD,EAAe,IAAIqD,EAAE2K,GAAgC,IAA3BhO,EAAe,IAAIqD,EAAEL,GAAWhD,EAAe,IAAIqD,EAAE2K,GAAgC,IAA3BhO,EAAe,IAAIqD,EAAEL,GAAWhD,EAAe,IAAIqD,EAAE2K,GAAgC,IAA3BhO,EAAe,IAAIqD,EAAEL,KACzRxD,KAAKslD,QAAUtlD,KAAK0lD,aAAa,UAAW3kD,KAI1CP,EAAe,IAAIqD,EAAE2K,GAAgC,IAA3BhO,EAAe,IAAIqD,EAAEL,GAAWhD,EAAe,IAAIqD,EAAE2K,GAAgC,IAA3BhO,EAAe,IAAIqD,EAAEL,GAAWhD,EAAe,IAAIqD,EAAE2K,GAAgC,IAA3BhO,EAAe,IAAIqD,EAAEL,GAAWhD,EAAe,IAAIqD,EAAE2K,GAAgC,IAA3BhO,EAAe,IAAIqD,EAAEL,GAAWhD,EAAe,IAAIqD,EAAE2K,GAAgC,IAA3BhO,EAAe,IAAIqD,EAAEL,KACzRxD,KAAKulD,QAAUvlD,KAAK0lD,aAAa,UAAW3kD,KAI1CP,EAAe,IAAIqD,EAAE2K,GAAgC,IAA3BhO,EAAe,IAAIqD,EAAEL,GAAWhD,EAAe,IAAIqD,EAAE2K,GAAgC,IAA3BhO,EAAe,IAAIqD,EAAEL,GAAWhD,EAAe,IAAIqD,EAAE2K,GAAgC,IAA3BhO,EAAe,IAAIqD,EAAEL,GAAWhD,EAAe,IAAIqD,EAAE2K,GAAgC,IAA3BhO,EAAe,IAAIqD,EAAEL,GAAWhD,EAAe,IAAIqD,EAAE2K,GAAgC,IAA3BhO,EAAe,IAAIqD,EAAEL,KACzRxD,KAAKwlD,QAAUxlD,KAAK0lD,aAAa,UAAW3kD,KAI1CP,EAAe,IAAIqD,EAAE2K,GAAgC,IAA3BhO,EAAe,IAAIqD,EAAEL,GAAWhD,EAAe,IAAIqD,EAAE2K,GAAgC,IAA3BhO,EAAe,IAAIqD,EAAEL,GAAWhD,EAAe,IAAIqD,EAAE2K,GAAgC,IAA3BhO,EAAe,IAAIqD,EAAEL,GAAWhD,EAAe,IAAIqD,EAAE2K,GAAgC,IAA3BhO,EAAe,IAAIqD,EAAEL,GAAWhD,EAAe,IAAIqD,EAAE2K,GAAgC,IAA3BhO,EAAe,IAAIqD,EAAEL,KACzRxD,KAAK2lD,QAAU3lD,KAAK0lD,aAAa,UAAW3kD,KAI1Cf,KAAKslD,SAAWtlD,KAAKulD,SAAWvlD,KAAKwlD,SAAWxlD,KAAK2lD,WACvD5kD,EAAoBkc,aAAa,8BAA+B,QAChE9d,EAAOoV,YAAYxT,KAGjBP,EAAe,GAAGqD,EAAE2K,GAA+B,IAA1BhO,EAAe,GAAGqD,EAAEL,GAAWhD,EAAe,GAAGqD,EAAE2K,GAA+B,IAA1BhO,EAAe,GAAGqD,EAAEL,GAAWhD,EAAe,GAAGqD,EAAE2K,GAA+B,IAA1BhO,EAAe,GAAGqD,EAAEL,GAAWhD,EAAe,GAAGqD,EAAE2K,GAA+B,IAA1BhO,EAAe,GAAGqD,EAAEL,GAAWhD,EAAe,GAAGqD,EAAE2K,GAA+B,IAA1BhO,EAAe,GAAGqD,EAAEL,MAC/QzC,EAAsBuM,SAAS,wBACX2P,aAAa,8BAA+B,QAChElc,EAAoBkc,aAAa,SAAU5c,GAC3ClB,EAAOoV,YAAYxT,GACnBf,KAAK4lD,gBAAkB5lD,KAAK0lD,aAAa,UAAW3kD,GACpDf,KAAK6lD,gBAAkB7lD,KAAK0lD,aAAa,UAAW3kD,GACpDf,KAAK8lD,gBAAkB9lD,KAAK0lD,aAAa,UAAW3kD,GAAA,CA8ExD,SAASglD,oBAAoB5mD,EAAQC,EAAeK,EAAMY,EAAIG,GAC5D,IAAIO,EAAmB3B,EAAc8Y,UAAUG,WAAW8c,aAAa2W,WACnE9qC,EAAa5B,EAAcwO,KAAKg5B,IAAM7lC,EAC1C5B,EAAO8d,aAAa,IAAKjc,EAAWse,GAAKve,EAAiBue,GAC1DngB,EAAO8d,aAAa,IAAKjc,EAAWge,GAAKje,EAAiBie,GAC1D7f,EAAO8d,aAAa,QAASjc,EAAWiR,OAASlR,EAAiBkR,OAClE9S,EAAO8d,aAAa,SAAUjc,EAAWkR,QAAUnR,EAAiBmR,QACpElS,KAAK+kD,cAAgB3lD,EACrB,IAAIgC,EAAiBkM,SAAS,kBAC9BlM,EAAe6b,aAAa,KAAM,eAClC7b,EAAe6b,aAAa,SAAU5c,EAAK,kBAC3Ce,EAAe6b,aAAa,eAAgB,KAC5Cjd,KAAKgmD,eAAiB5kD,EACtBjC,EAAOoV,YAAYnT,GACnB,IAAIO,EAAW2L,SAAS,YACxB3L,EAASsb,aAAa,KAAM,MAC5Btb,EAASsb,aAAa,KAAM,KAC5Btb,EAASsb,aAAa,KAAM5c,EAAK,kBACjCsB,EAASsb,aAAa,SAAU5c,EAAK,kBACrCL,KAAKimD,SAAWtkD,EAChBxC,EAAOoV,YAAY5S,GACnB,IAAIiC,EAAU0J,SAAS,WACvB1J,EAAQqZ,aAAa,cAAe,WACpCrZ,EAAQqZ,aAAa,gBAAiB,KACtCrZ,EAAQqZ,aAAa,SAAU5c,EAAK,kBACpCL,KAAKkmD,QAAUtiD,EACfzE,EAAOoV,YAAY3Q,GACnB,IAAIC,EAAcyJ,SAAS,eAC3BzJ,EAAYoZ,aAAa,KAAM5c,EAAK,kBACpCwD,EAAYoZ,aAAa,MAAO5c,EAAK,kBACrCwD,EAAYoZ,aAAa,WAAY,MACrCpZ,EAAYoZ,aAAa,SAAU5c,EAAK,kBACxClB,EAAOoV,YAAY1Q,GACnB,IAAIgL,EAAU7O,KAAK4kD,gBAAgBvkD,EAAI,CAACA,EAAK,iBAAkBG,IAC/DrB,EAAOoV,YAAY1F,EAAA,CAjWrBxI,gBAAgB,CAACs+C,qBAAsBG,eAEvCA,cAAcplD,UAAUib,YAAc,SAAUxb,GAC9C,GAAIA,GAAea,KAAK+kD,cAAc9iC,KAAM,CAC1C,IAAI7iB,EAAaY,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,EACpD/D,EAAaO,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,EACpDnD,EAAUL,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,EAAI,IACzDxD,KAAKglD,aAAa/nC,aAAa,SAAU4nC,kBAAoB,IAAMxkD,EAAU,MAC7EL,KAAKilD,aAAahoC,aAAa,SAAUxd,EAAW,GAAKL,EAAW,GAAK,UAAYA,EAAW,GAAK,KAAOK,EAAW,GAAKL,EAAW,IAAM,UAAYA,EAAW,GAAK,KAAOK,EAAW,GAAKL,EAAW,IAAM,UAAYA,EAAW,GAAK,gBAejP8lD,cAAcxlD,UAAUib,YAAc,SAAUxb,GAC9C,GAAIA,GAAea,KAAK+kD,cAAc9iC,KAAM,CAC1C,IAAI7iB,EAAQY,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,EAC/C/D,EAAUO,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,EACrDxD,KAAKilD,aAAahoC,aAAa,SAAU,WAAa7d,EAAM,GAAK,YAAcA,EAAM,GAAK,YAAcA,EAAM,GAAK,UAAYK,EAAU,QAW7I0lD,gBAAgBzlD,UAAUglD,WAAa,WACrC,IACIvlD,EACAC,EACAK,EACAY,EAJAG,EAAeR,KAAK4c,KAAK+c,aAAaud,UAAYl3C,KAAK4c,KAAK+c,aAAawsB,WAmB7E,IAbiD,IAA7CnmD,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,GACzCnD,EAAML,KAAK4c,KAAKkc,YAAYxqB,gBAAgB/N,OAC5Cd,EAAI,GAGJY,EAAU,GADVZ,EAAIO,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,EAAI,IAIjDpE,EAAYkO,SAAS,MACX2P,aAAa,OAAQ,QAC/B7d,EAAU6d,aAAa,iBAAkB,SACzC7d,EAAU6d,aAAa,oBAAqB,GAEpCxd,EAAIY,EAAKZ,GAAK,EACpBN,EAAOmO,SAAS,QAChBlO,EAAUmV,YAAYpV,GACtBa,KAAKukB,MAAM7hB,KAAK,CACdmB,EAAG1E,EACH+O,EAAGzO,IAIP,GAAkD,IAA9CO,KAAK+kD,cAAc1uB,eAAe,IAAIxyB,EAAEL,EAAS,CACnD,IAAIzC,EAAOuM,SAAS,QAChBtM,EAAKmL,kBACTpL,EAAKkc,aAAa,KAAMjc,GACxBD,EAAKkc,aAAa,YAAa,SAC/Blc,EAAKwT,YAAYnV,GACjBY,KAAK4c,KAAKvE,WAAWC,KAAK/D,YAAYxT,GACtC,IAAIK,EAAIkM,SAAS,KAGjB,IAFAlM,EAAE6b,aAAa,OAAQ,OAAShX,kBAAoB,IAAMjF,EAAK,KAExDR,EAAa,IAClBY,EAAEmT,YAAY/T,EAAa,IAG7BR,KAAK4c,KAAK+c,aAAaplB,YAAYnT,GACnCpB,KAAKomD,OAASrlD,EACd3B,EAAU6d,aAAa,SAAU,aAC5B,GAAkD,IAA9Cjd,KAAK+kD,cAAc1uB,eAAe,IAAIxyB,EAAEL,GAAyD,IAA9CxD,KAAK+kD,cAAc1uB,eAAe,IAAIxyB,EAAEL,EAAS,CAC7G,GAAkD,IAA9CxD,KAAK+kD,cAAc1uB,eAAe,IAAIxyB,EAAEL,EAG1C,IAFAhD,EAAeR,KAAK4c,KAAK+c,aAAaud,UAAYl3C,KAAK4c,KAAK+c,aAAawsB,WAElE3lD,EAAaD,QAClBP,KAAK4c,KAAK+c,aAAatF,YAAY7zB,EAAa,IAIpDR,KAAK4c,KAAK+c,aAAaplB,YAAYnV,GACnCY,KAAK4c,KAAK+c,aAAa0sB,gBAAgB,QACvCjnD,EAAU6d,aAAa,SAAU,QAGnCjd,KAAKolD,aAAA,EACLplD,KAAKsmD,WAAalnD,CAAA,EAGpB+lD,gBAAgBzlD,UAAUib,YAAc,SAAUxb,GAKhD,IAAIC,EAJCY,KAAKolD,aACRplD,KAAK0kD,aAIP,IACIjlD,EACAY,EAFAG,EAAMR,KAAKukB,MAAMhkB,OAIrB,IAAKnB,EAAI,EAAGA,EAAIoB,EAAKpB,GAAK,EACxB,IAAyB,IAArBY,KAAKukB,MAAMnlB,GAAG8O,IAChBzO,EAAOO,KAAK4c,KAAKkc,YAAYhB,SAAS93B,KAAKukB,MAAMnlB,GAAG8O,GACpD7N,EAAOL,KAAKukB,MAAMnlB,GAAGyE,GAEjB1E,GAAea,KAAK+kD,cAAc9iC,MAAQxiB,EAAKy4B,KAAKjW,OACtD5hB,EAAK4c,aAAa,IAAKxd,EAAK04B,UAG1Bh5B,GAAea,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEoe,MAAQjiB,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEoe,MAAQjiB,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEoe,MAAQjiB,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEoe,MAAQxiB,EAAKy4B,KAAKjW,MAAM,CAC7N,IAAIlhB,EAEJ,GAAiD,IAA7Cf,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,GAAwD,MAA7CxD,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,EAAW,CACtG,IAAIxC,EAAmG,IAA/F+H,KAAKS,IAAIxJ,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,EAAGxD,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,GAC9FpC,EAAmG,IAA/F2H,KAAKO,IAAItJ,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,EAAGxD,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,GAC9F7B,EAAItB,EAAKkmD,iBACbxlD,EAAiB,SAAWY,EAAIX,EAAI,IACpC,IAGI4C,EAHAC,EAAalC,GAAKP,EAAIJ,GACtB6N,EAAU,EAA+C,EAA3C7O,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,EAAQxD,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,EAAI,IACxGyK,EAAQlF,KAAKK,MAAMvF,EAAagL,GAGpC,IAAKjL,EAAI,EAAGA,EAAIqK,EAAOrK,GAAK,EAC1B7C,GAAkB,KAAkD,EAA3Cf,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,EAAQxD,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,EAAI,IAAO,IAG5HzC,GAAkB,KAAW,GAAJY,EAAS,YAElCZ,EAAiB,KAAkD,EAA3Cf,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,EAAQxD,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,EAAI,IAGpHnD,EAAK4c,aAAa,mBAAoBlc,EAAA,CAa5C,IARI5B,GAAea,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEoe,OACxDjiB,KAAKsmD,WAAWrpC,aAAa,eAA2D,EAA3Cjd,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,IAGlFrE,GAAea,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEoe,OACxDjiB,KAAKsmD,WAAWrpC,aAAa,UAAWjd,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,IAG/B,IAA9CxD,KAAK+kD,cAAc1uB,eAAe,IAAIxyB,EAAEL,GAAyD,IAA9CxD,KAAK+kD,cAAc1uB,eAAe,IAAIxyB,EAAEL,KACzFrE,GAAea,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEoe,MAAM,CAC9D,IAAI/T,EAAQlO,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,EACnDxD,KAAKsmD,WAAWrpC,aAAa,SAAU,OAAS9T,QAAmB,IAAX+E,EAAM,IAAY,IAAM/E,QAAmB,IAAX+E,EAAM,IAAY,IAAM/E,QAAmB,IAAX+E,EAAM,IAAY,OA+BhJm3C,iBAAiB3lD,UAAUib,YAAc,SAAUxb,GACjD,GAAIA,GAAea,KAAK+kD,cAAc9iC,KAAM,CAC1C,IAAI7iB,EAASY,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,EAChD/D,EAASO,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,EAChDnD,EAASL,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,EAChDhD,EAASH,EAAO,GAAK,IAAMZ,EAAO,GAAK,IAAML,EAAO,GACpD2B,EAASV,EAAO,GAAK,IAAMZ,EAAO,GAAK,IAAML,EAAO,GACpD4B,EAASX,EAAO,GAAK,IAAMZ,EAAO,GAAK,IAAML,EAAO,GACxDY,KAAKslD,QAAQroC,aAAa,cAAezc,GACzCR,KAAKulD,QAAQtoC,aAAa,cAAelc,GACzCf,KAAKwlD,QAAQvoC,aAAa,cAAejc,EAAA,GA6C7CykD,mBAAmB/lD,UAAUgmD,aAAe,SAAUvmD,EAAMC,GAC1D,IAAIK,EAAS6N,SAASnO,GAGtB,OAFAM,EAAOwd,aAAa,OAAQ,SAC5B7d,EAAoBmV,YAAY9U,GACzBA,CAAA,EAGTgmD,mBAAmB/lD,UAAU8mD,cAAgB,SAAUrnD,EAAYC,EAAYK,EAAOY,EAAaG,GAcjG,IAbA,IAEIO,EAMAC,EARAI,EAAM,EAGNO,EAAMoH,KAAKS,IAAIrK,EAAYC,GAC3BwE,EAAMmF,KAAKO,IAAInK,EAAYC,GAC3ByE,EAAQrE,MAAMI,KAAK,KAAM,CAC3BW,OALa,MAQXsO,EAAM,EACNZ,EAAczN,EAAcH,EAC5B6N,EAAa9O,EAAaD,EAEvBiC,GAAO,KAIVJ,GAHFD,EAAOK,EAAM,MAEDO,EACGuM,EAAa,EAAI1N,EAAcH,EACnCU,GAAQ6C,EACJsK,EAAa,EAAI7N,EAAcG,EAE/BH,EAAc4N,EAAclF,KAAKC,KAAKjI,EAAO5B,GAAc+O,EAAY,EAAIzO,GAG1FoE,EAAMgL,GAAO7N,EACb6N,GAAO,EACPzN,GAAO,IAAG,IAGZ,OAAOyC,EAAMqN,KAAK,MAGpBu0C,mBAAmB/lD,UAAUib,YAAc,SAAUxb,GACnD,GAAIA,GAAea,KAAK+kD,cAAc9iC,KAAM,CAC1C,IAAI7iB,EACAK,EAAiBO,KAAK+kD,cAAc1uB,eAEpCr2B,KAAK4lD,kBAAoBzmD,GAAeM,EAAe,GAAGoE,EAAEoe,MAAQxiB,EAAe,GAAGoE,EAAEoe,MAAQxiB,EAAe,GAAGoE,EAAEoe,MAAQxiB,EAAe,GAAGoE,EAAEoe,MAAQxiB,EAAe,GAAGoE,EAAEoe,QAC9K7iB,EAAMY,KAAKwmD,cAAc/mD,EAAe,GAAGoE,EAAEL,EAAG/D,EAAe,GAAGoE,EAAEL,EAAG/D,EAAe,GAAGoE,EAAEL,EAAG/D,EAAe,GAAGoE,EAAEL,EAAG/D,EAAe,GAAGoE,EAAEL,GACzIxD,KAAK4lD,gBAAgB3oC,aAAa,cAAe7d,GACjDY,KAAK6lD,gBAAgB5oC,aAAa,cAAe7d,GACjDY,KAAK8lD,gBAAgB7oC,aAAa,cAAe7d,IAG/CY,KAAKslD,UAAYnmD,GAAeM,EAAe,IAAIoE,EAAEoe,MAAQxiB,EAAe,IAAIoE,EAAEoe,MAAQxiB,EAAe,IAAIoE,EAAEoe,MAAQxiB,EAAe,IAAIoE,EAAEoe,MAAQxiB,EAAe,IAAIoE,EAAEoe,QAC3K7iB,EAAMY,KAAKwmD,cAAc/mD,EAAe,IAAIoE,EAAEL,EAAG/D,EAAe,IAAIoE,EAAEL,EAAG/D,EAAe,IAAIoE,EAAEL,EAAG/D,EAAe,IAAIoE,EAAEL,EAAG/D,EAAe,IAAIoE,EAAEL,GAC9IxD,KAAKslD,QAAQroC,aAAa,cAAe7d,IAGvCY,KAAKulD,UAAYpmD,GAAeM,EAAe,IAAIoE,EAAEoe,MAAQxiB,EAAe,IAAIoE,EAAEoe,MAAQxiB,EAAe,IAAIoE,EAAEoe,MAAQxiB,EAAe,IAAIoE,EAAEoe,MAAQxiB,EAAe,IAAIoE,EAAEoe,QAC3K7iB,EAAMY,KAAKwmD,cAAc/mD,EAAe,IAAIoE,EAAEL,EAAG/D,EAAe,IAAIoE,EAAEL,EAAG/D,EAAe,IAAIoE,EAAEL,EAAG/D,EAAe,IAAIoE,EAAEL,EAAG/D,EAAe,IAAIoE,EAAEL,GAC9IxD,KAAKulD,QAAQtoC,aAAa,cAAe7d,IAGvCY,KAAKwlD,UAAYrmD,GAAeM,EAAe,IAAIoE,EAAEoe,MAAQxiB,EAAe,IAAIoE,EAAEoe,MAAQxiB,EAAe,IAAIoE,EAAEoe,MAAQxiB,EAAe,IAAIoE,EAAEoe,MAAQxiB,EAAe,IAAIoE,EAAEoe,QAC3K7iB,EAAMY,KAAKwmD,cAAc/mD,EAAe,IAAIoE,EAAEL,EAAG/D,EAAe,IAAIoE,EAAEL,EAAG/D,EAAe,IAAIoE,EAAEL,EAAG/D,EAAe,IAAIoE,EAAEL,EAAG/D,EAAe,IAAIoE,EAAEL,GAC9IxD,KAAKwlD,QAAQvoC,aAAa,cAAe7d,IAGvCY,KAAK2lD,UAAYxmD,GAAeM,EAAe,IAAIoE,EAAEoe,MAAQxiB,EAAe,IAAIoE,EAAEoe,MAAQxiB,EAAe,IAAIoE,EAAEoe,MAAQxiB,EAAe,IAAIoE,EAAEoe,MAAQxiB,EAAe,IAAIoE,EAAEoe,QAC3K7iB,EAAMY,KAAKwmD,cAAc/mD,EAAe,IAAIoE,EAAEL,EAAG/D,EAAe,IAAIoE,EAAEL,EAAG/D,EAAe,IAAIoE,EAAEL,EAAG/D,EAAe,IAAIoE,EAAEL,EAAG/D,EAAe,IAAIoE,EAAEL,GAC9IxD,KAAK2lD,QAAQ1oC,aAAa,cAAe7d,GAAA,GA0C/CiH,gBAAgB,CAACs+C,qBAAsBoB,qBAEvCA,oBAAoBrmD,UAAUib,YAAc,SAAUxb,GACpD,GAAIA,GAAea,KAAK+kD,cAAc9iC,KAAM,CAK1C,IAJI9iB,GAAea,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEoe,OACxDjiB,KAAKgmD,eAAe/oC,aAAa,eAAgBjd,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,EAAI,GAG1FrE,GAAea,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEoe,KAAM,CAC9D,IAAI7iB,EAAMY,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,EACjDxD,KAAKkmD,QAAQjpC,aAAa,cAAevQ,SAAS3D,KAAKoB,MAAe,IAAT/K,EAAI,IAAW2J,KAAKoB,MAAe,IAAT/K,EAAI,IAAW2J,KAAKoB,MAAe,IAAT/K,EAAI,MAOvH,IAJID,GAAea,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEoe,OACxDjiB,KAAKkmD,QAAQjpC,aAAa,gBAAiBjd,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,EAAI,KAGpFrE,GAAea,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEoe,MAAQjiB,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEoe,KAAM,CAC7G,IAAIxiB,EAAWO,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,EAClDnD,GAASL,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,EAAI,IAAMsG,UAC1DtJ,EAAIf,EAAWsJ,KAAK4Y,IAAIthB,GACxBU,EAAItB,EAAWsJ,KAAK0Y,IAAIphB,GAC5BL,KAAKimD,SAAShpC,aAAa,KAAMzc,GACjCR,KAAKimD,SAAShpC,aAAa,KAAMlc,EAAA,IAKvC,IAAI0lD,iBAAmB,GAEvB,SAASC,gBAAgBvnD,EAAYC,EAAeK,GAClDO,KAAKolD,aAAA,EACLplD,KAAK+kD,cAAgB3lD,EACrBY,KAAK2mD,WAAaxnD,EAClBa,KAAK4c,KAAOnd,EACZA,EAAKq+B,aAAexwB,SAAS,KAC7B7N,EAAKq+B,aAAavpB,YAAY9U,EAAKk6B,cACnCl6B,EAAKq+B,aAAavpB,YAAY9U,EAAKs+B,oBACnCt+B,EAAKi6B,YAAcj6B,EAAKq+B,YAAA,CAsG1B,SAAS8oB,sBAAsBznD,EAAQC,EAAeK,EAAMY,GAE1DlB,EAAO8d,aAAa,IAAK,SACzB9d,EAAO8d,aAAa,IAAK,SACzB9d,EAAO8d,aAAa,QAAS,QAC7B9d,EAAO8d,aAAa,SAAU,QAC9Bjd,KAAK+kD,cAAgB3lD,EACrB,IAAIoB,EAAiB8M,SAAS,kBAC9B9M,EAAeyc,aAAa,SAAU5c,GACtClB,EAAOoV,YAAY/T,GACnBR,KAAKgmD,eAAiBxlD,CAAA,CAuDxB,OApKAkmD,gBAAgBhnD,UAAUmnD,WAAa,SAAU1nD,GAI/C,IAHA,IAAIC,EAAI,EACJK,EAAMgnD,iBAAiBlmD,OAEpBnB,EAAIK,GAAK,CACd,GAAIgnD,iBAAiBrnD,KAAOD,EAC1B,OAAOsnD,iBAAiBrnD,GAG1BA,GAAK,EAGP,OAAO,MAGTsnD,gBAAgBhnD,UAAUonD,gBAAkB,SAAU3nD,EAAMC,GAC1D,IAAIK,EAAaN,EAAKw6B,aAAavF,WAEnC,GAAK30B,EAAL,CAQA,IAJA,IAYIY,EAZAG,EAAWf,EAAWy3C,SACtBn2C,EAAI,EACJC,EAAMR,EAASD,OAEZQ,EAAIC,GACLR,EAASO,KAAO5B,EAAKw6B,cAIzB54B,GAAK,EAKHA,GAAKC,EAAM,IACbX,EAAYG,EAASO,EAAI,IAG3B,IAAIK,EAAUkM,SAAS,OACvBlM,EAAQ6b,aAAa,OAAQ,IAAM7d,GAE/BiB,EACFZ,EAAWguC,aAAarsC,EAASf,GAEjCZ,EAAW8U,YAAYnT,EAAA,GAI3BslD,gBAAgBhnD,UAAUqnD,iBAAmB,SAAU5nD,EAAMC,GAC3D,IAAKY,KAAK6mD,WAAWznD,GAAO,CAC1B,IAAIK,EAAW0M,kBACX9L,EAASiN,SAAS,QACtBjN,EAAO4c,aAAa,KAAM7d,EAAKw6B,SAC/Bv5B,EAAO4c,aAAa,YAAa,SAEjCwpC,iBAAiB/jD,KAAKtD,GAEtB,IAAIoB,EAAOrB,EAAKkZ,WAAWC,KAC3B9X,EAAK+T,YAAYlU,GACjB,IAAIU,EAASuM,SAAS,UACtBvM,EAAOkc,aAAa,KAAMxd,GAC1BO,KAAK8mD,gBAAgB1nD,EAAMK,GAC3BsB,EAAOwT,YAAYnV,EAAKu6B,cACxBn5B,EAAK+T,YAAYxT,GACjB,IAAIC,EAAUsM,SAAS,OACvBtM,EAAQic,aAAa,OAAQ,IAAMxd,GACnCY,EAAOkU,YAAYvT,GACnB5B,EAAKwO,KAAKywB,IAAA,EACVj/B,EAAKmd,MAAA,CAGPpd,EAAKy/B,SAASx/B,EAAKw6B,QAAA,EAGrB8sB,gBAAgBhnD,UAAUglD,WAAa,WAMrC,IALA,IAAIvlD,EAAMa,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,EAC7CpE,EAAWY,KAAK4c,KAAKgF,KAAKwY,SAC1B36B,EAAI,EACJY,EAAMjB,EAASmB,OAEZd,EAAIY,GACLjB,EAASK,IAAML,EAASK,GAAGmO,KAAKutB,MAAQh8B,GAC1Ca,KAAK+mD,iBAAiB/mD,KAAK4c,KAAMxd,EAASK,IAG5CA,GAAK,EAGPO,KAAKolD,aAAA,CAAc,EAGrBsB,gBAAgBhnD,UAAUib,YAAc,WACjC3a,KAAKolD,aACRplD,KAAK0kD,YAAA,EAiBTkC,sBAAsBlnD,UAAUib,YAAc,SAAUxb,GACtD,GAAIA,GAAea,KAAK+kD,cAAc9iC,KAAM,CAE1C,IACI7iB,EADqB,GACbY,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,EAO/C/D,EAAaO,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,EACpDnD,EAAuB,GAAdZ,EAAkB,EAAIL,EAE/BoB,EAAuB,GAAdf,EAAkB,EAAIL,EAEnCY,KAAKgmD,eAAe/oC,aAAa,eAAgB5c,EAAS,IAAMG,GAKhE,IAAIO,EAAuD,GAA5Cf,KAAK+kD,cAAc1uB,eAAe,GAAGxyB,EAAEL,EAAS,OAAS,YAExExD,KAAKgmD,eAAe/oC,aAAa,WAAYlc,EAAA,GAIjDkV,iBAAiB,SAAUg7B,gBAC3Bh7B,iBAAiB,OAAQi8B,gBACzBj8B,iBAAiB,MAAOm1B,aAExBriB,eAAeC,iBAAiB,KAAMG,cACtCJ,eAAeC,iBAAiB,KAAMI,wBACtCL,eAAeC,iBAAiB,KAAMyC,kBACtC1C,eAAeC,iBAAiB,KAAM0C,sBACtC3C,eAAeC,iBAAiB,KAAMmE,gBACtCpE,eAAeC,iBAAiB,KAAMoF,oBAEtCthB,qBAAqB2rC,aACrBzrC,wBAAwB2wC,cACxB2G,eACAI,aAEAvnB,eAAe,GAAI2nB,eAAA,GACnB3nB,eAAe,GAAI+nB,eAAA,GACnB/nB,eAAe,GAAIgoB,iBAAA,GACnBhoB,eAAe,GAAIkoB,kBAAA,GACnBloB,eAAe,GAAIsoB,oBAAA,GACnBtoB,eAAe,GAAI4oB,qBAAA,GACnB5oB,eAAe,GAAIupB,iBAAA,GACnBvpB,eAAe,GAAIypB,uBAAA,GAEZrhD,MAAA,EApsmBwDC,OAAAL,QAAiB/F,IAosmBzE,ICrsmBI4nD,4BAA8B,QAC9BC,mBAAqB,UCoCtBC,YAUAC,YAVAhoD,EA7BN,SAAUioD,SAASjoD,GACvB,GAAmB,iBAARA,EACT,OAAOA,EAGL,IACF,OAAO6P,KAAKC,MAAM9P,EAAA,CAClB,MAAOA,GAAA,CAKL,IACF,OAAO,IAAI4O,IAAI5O,GAAKwN,UAAA,CACpB,MAAOxN,GAAA,CAIT,OAAOA,CAAA,CAWGA,EAAA+nD,cAAAA,YAOX,IANC/nD,EAAAkoD,QAAA,UACAloD,EAAAmoD,QAAA,UACAnoD,EAAAooD,OAAA,SACApoD,EAAAqoD,QAAA,UACAroD,EAAAsoD,OAAA,SACAtoD,EAAAmG,MAAA,QAIF,SAAYnG,GACVA,EAAAuoD,KAAA,OACAvoD,EAAAwoD,cAAA,gBACAxoD,EAAAmG,MAAA,QACAnG,EAAAyoD,MAAA,QACAzoD,EAAA0oD,KAAA,OACA1oD,EAAA2oD,MAAA,QACA3oD,EAAA4oD,KAAA,OACA5oD,EAAA6oD,OAAA,SACA7oD,EAAA8oD,KAAA,OACA9oD,EAAA+oD,SAAA,WACA/oD,EAAAgpD,MAAA,QAXF,CAAYhB,cAAAA,YAYX,KA0CD,IAAMiB,eAAiB,CACrB3X,aAAA,EACArb,mBAAA,EACA6F,iBAAA,GAGFotB,OAAA,SAAAlpD,GAYE,SAAAC,EAAYA,GACV,IAAAK,EAAAN,EAAAS,KAAA,KAAMR,IAcP,YAlBMK,EAASyY,UAAmB,KAC5BzY,EAAS6oD,WAAG,EAsDnB7oD,EAAc8oD,eAAG,SAACppD,GAChBM,EAAK+oD,SAAS,CAAEC,WAAYtpD,GAAA,EAE9BM,EAAAipD,gBAAkB,SAACvpD,EAAcC,GAC/B,IAAMK,EAAU0G,SAASC,cAAc,KAEvC3G,EAAQm0B,KAAOz0B,EACfM,EAAQkpD,SAAWvpD,EACnB+G,SAASurB,KAAKnd,YAAY9U,GAE1BA,EAAQmpD,QAERziD,SAASurB,KAAK2C,YAAY50B,EAAA,EAE5BA,EAAQopD,SAAG,SAAC1pD,GACV,IAAIC,OAAA,IADMD,IAAAA,GAAA,GAEV,IAAMkB,EAAKZ,EAAKgmB,MAAM3W,GAAKrP,EAAKgmB,MAAM3W,GAAK,SACrCtO,EAAgB2F,SAASq1B,eAAen7B,GAC9C,GAA4B,QAAxBZ,EAAKgmB,MAAMzO,SAAoB,CAEjC,GAAIxW,EAAe,CACjB,IAAMO,EAAaP,EAAcsoD,cAAc,OAE/C,GAAI/nD,EAAY,CACR,IAAAC,GAAgB,IAAI+nD,eAAgBC,kBAAkBjoD,GAC5D3B,EAAO,oCAAsC6pD,mBAAmBjoD,EAAA,EAKhE7B,GAEFM,EAAKipD,gBAAgBtpD,EAAM,qBAExB,GAA4B,WAAxBK,EAAKgmB,MAAMzO,SAAuB,CAC3C,GAAIxW,EAAe,CACjB,IAAMY,EAASZ,EAAcsoD,cAAc,UACvC1nD,IACFhC,EAAOgC,EAAO8nD,UAAU,cAIxB/pD,GAEFM,EAAKipD,gBAAgBtpD,EAAM,gBAI/B,OAAOA,CAAA,EAjGe,oBAAX0F,SACTA,OAAOS,OAASA,QAElB9F,EAAKg/C,MAAQ,CACX7nC,cAAe,KACf6xC,WAAY,cACZU,aAAcC,mCAAAA,YACdC,OAAA,EACAC,SAAU,KACVC,YAAarC,YAAYG,QACzBmC,OAAQ,GAAA/pD,CAAA,CA6Xd,OAtZ4BI,UAA2CT,EAAAD,GACjDC,EAAAqqD,yBAApB,SAA6CtqD,EAAgBC,GAAA,OAAAqC,UAAA,sCAAAQ,YAAA,eAAAxC,GAC3D,OAAIN,EAAUspD,aAAerpD,EAAUqpD,WACrC,GAAO,CAAEA,WAAYtpD,EAAUspD,aAE/B,GAAO,aA2BJrpD,EAAAM,UAAAgqD,YAAP,WACS,OACLC,iBAAkB1C,mBAClB2C,oBAAqB5C,4BAAA,EAQZ5nD,EAAAM,UAAAmqD,kBAAb,kBAAApoD,UAAA,sCAAAQ,YAAA,eAAA9C,GAAA,OAAAA,EAAA+C,OAAA,OACM,OAAClC,KAAKsoD,UAAS,MACjB,GAAMtoD,KAAK8pD,gBAAA,OAAX3qD,EAAAgD,OAAAhD,EAAA+C,MAAA,2BAIG9C,EAAAM,UAAAqqD,qBAAP,WACO,KAAAzB,WAAA,EACDtoD,KAAKy+C,MAAM6K,UACbtpD,KAAKy+C,MAAM6K,SAASx1C,SAAA,EAIX1U,EAAkBM,UAAAsqD,mBAA/B,SAAgC7qD,GAAA,OAAAsC,UAAA,sCAAAQ,YAAA,eAAA7C,GAAA,OAAAA,EAAA8C,OAAA,cAC1BlC,KAAKylB,MAAMte,MAAQhI,EAAUgI,IAAG,OAC9BnH,KAAKy+C,MAAM6K,UACbtpD,KAAKy+C,MAAM6K,SAASx1C,UAEtB,GAAM9T,KAAK8pD,iBAAA,OAAX1qD,EAAA+C,OAAA/C,EAAA8C,MAAA,2BAsDG9C,EAAAM,UAAAuqD,OAAP,WA6DC,IAAA9qD,EAAA,KA5DOC,EAA2DY,KAAKylB,MAA9DhmB,EAAAL,EAAA83C,SAAU72C,EAAAjB,EAAA2X,KAAMvW,EAAApB,EAAAiL,MAAOtJ,EAAA3B,EAAA8qD,mBAAoBlpD,EAAA5B,EAAAwsC,UAC7CxqC,EAAsEpB,KAAKy+C,MAAzE98C,EAAaP,EAAAwV,cAAEhT,EAAQxC,EAAAkoD,SAAEzlD,EAAWzC,EAAAmoD,YAAE16C,EAAMzN,EAAAooD,OAAEv7C,EAAK7M,EAAAioD,MAAEn7C,EAAU9M,EAAAqnD,WAEvE,OACEW,mCAAAA,cAAA,OAAKxd,UAAU,uBACZ5rC,KAAKy+C,MAAM8K,cAAgBrC,YAAY5hD,MACtC8jD,mCAAAA,cAAK,OAAAxd,UAAU,YACbwd,mCAAAA,cAAA,qBAAiB,eAAee,KAAK,OAE9B,iBAGTf,mCAAAA,cACE,OAAAt6C,GAAI9O,KAAKylB,MAAM3W,GAAK9O,KAAKylB,MAAM3W,GAAK,SACpCs7C,IAAK,SAAAhrD,GAAM,OAACD,EAAK+Y,UAAY9Y,CAAA,EAC7BiL,MACElK,QAAA,CAAAsoD,WAAAv6C,EACAm8C,OAAQ,SACRC,QAAS,OACTrS,SAAU,UACPz3C,GAELorC,UAAW5qC,IAGdooD,mCAAAA,SAAAA,IAAmB3pD,GAAU,SAAAL,GAC5B,OAAIgqD,mCAAAA,eAAqBhqD,GAChBgqD,mCAAAA,aAAmBhqD,EAAO,CAC/BwX,cAAajV,EACb8mD,WAAUv6C,EACVm7C,MAAKp7C,EACLq7C,SAAQ1lD,EACRmT,KAAI1W,EACJyG,MAAO,WAAM,OAAA3H,EAAK2H,OAAA,EAClBO,KAAM,WAAM,OAAAlI,EAAKkI,MAAA,EACjBkiD,YAAW1lD,EACX2lD,OAAM36C,EACN07C,cAAe,SAACnrD,GACdD,EAAKqpD,SAAS,CAAEC,WAAYrpD,IAEM,mBAAvB2B,GACTA,EAAmB3B,EAAA,EAGvBorD,UAAW,SAACprD,EAAWK,GAAe,OAAAN,EAAKqrD,UAAUprD,EAAGK,EAAA,EACxDqb,KAAM,WAAM,OAAA3b,EAAK2b,MAAA,EACjB2vC,YAAa,WAAM,OAAAtrD,EAAKsrD,aAAA,EACxBvuC,QAAS,SAAC9c,GAAkB,OAAAD,EAAK+c,QAAQ9c,EAAA,EACzCsrD,kBAAmB,SAACtrD,GAClBD,EAAKopD,eAAenpD,EAAA,EAEtBypD,SAAU,WACR1pD,EAAK0pD,UAAA,IAIJ,UAMPzpD,EAAAM,UAAA+qD,YAAR,WACEzqD,KAAKwoD,SAAS,CAAEa,OAAQrpD,KAAKy+C,MAAM4K,OAAA,EAGvBjqD,EAAAM,UAAAoqD,aAAd,kBAAAroD,UAAA,mCAAAtC,EAAAC,EAAAK,EAAAY,EAAAG,EAAAO,EAAAC,EAAAI,EAAAO,EAAAiC,EAAAC,EAAAgL,EAAAZ,EAAAC,EAAAG,EAAA,YAAApM,YAAA,eAAA0Q,GAAA,OAAAA,EAAAzQ,OAAA,OAeE,GAdM/C,EAWFa,KAAKylB,MAVPrmB,EAAQD,EAAA2X,SACRrX,EAASN,EAAAkM,UACThL,EAAIlB,EAAA4X,KACJvW,EAASrB,EAAAwrD,UACT5pD,EAAQ5B,EAAA6X,SACRhW,EAAK7B,EAAAyrD,MACLxpD,EAAGjC,EAAAgI,IACHxF,EAAUxC,EAAAspD,WACV7kD,EAAgBzE,EAAAiZ,iBAChBvU,EAAA1E,EAAA0rD,MAEMh8C,EAAa7O,KAAKy+C,MAAA6K,UAErBloD,IAAQpB,KAAKkY,UAChB,MAAO,IAAAvF,EAAAzQ,MAAA,SAQH,OAAAyQ,EAAAvQ,KAAAM,KAAA,UAAyB,iBAFzBuL,EAAgBm5C,SAAShmD,IAEQ,MACf,GAAM29C,MAAM9wC,GAAyB68C,OAAM,WAG7D,MAFAz8C,EAAKm6C,SAAS,CAAEe,YAAarC,YAAY5hD,QACzC+I,EAAKuG,aAAauyC,YAAY7hD,OACxB,IAAIA,MAAM,8EAGF,SANIqN,EAIlBxQ,OAEgC4oD,OAAOD,OAAM,WAG7C,MAFAz8C,EAAKm6C,SAAS,CAAEe,YAAarC,YAAY5hD,QACzC+I,EAAKuG,aAAauyC,YAAY7hD,OACxB,IAAIA,MAAM,8EAHlB2I,EAAgB0E,EAAAxQ,OAAAwQ,EAAAzQ,MAAA,gBAQd2M,GACFA,EAASiF,UAIL5F,EAAc3I,OAAOmM,cAAc,CACvC0G,iBAAkBxU,GAAoBwkD,eACtCxxC,cAAa3I,EACb6I,SAAU1X,IAAA,EACV8Y,UAAWlY,KAAKkY,UAChBnB,KAAM1W,IAAA,EACN2W,SAAQjW,IAENC,GACFkN,EAAYwN,SAAS1a,GAEvBhB,KAAKwoD,SAAS,CAAE5xC,cAAa3I,IAE7BjO,KAAKwoD,SAAS,CAAEc,SAAUp7C,IAAe,WACvCG,EAAKuG,aAAauyC,YAAYQ,eAEL,mBAAdnnD,GACTA,EAAU0N,GAER9O,GACFiP,EAAKhH,MAAA,IAKT6G,EAAYgG,iBAAiB,cAAc,WACzC7F,EAAKuG,aAAauyC,YAAYgB,OAE9B95C,EAAKm6C,SAAS,CACZgB,OAAQzgD,KAAKK,MAAO8E,EAAoB2H,eAAA,IAK5C3H,EAAYgG,iBAAiB,aAAa,WACxC7F,EAAKuG,aAAauyC,YAAYO,KAAA,IAIhCx5C,EAAYgG,iBAAiB,cAAc,WACzC7F,EAAKuG,aAAauyC,YAAYS,MAAA,IAIhC15C,EAAYgG,iBAAiB,eAAe,WAC1C7F,EAAKm6C,SAAS,CAAEe,YAAarC,YAAY5hD,QACzC+I,EAAKuG,aAAauyC,YAAY7hD,MAAA,IAIhC4I,EAAYgG,iBAAiB,gBAAgB,WAC3C7F,EAAKuG,aAAauyC,YAAYc,KAAA,IAIhC/5C,EAAYgG,iBAAiB,YAAY,WACvC7F,EAAKuG,aAAauyC,YAAYe,UAC9B75C,EAAKm6C,SAAS,CAAEe,YAAarC,YAAYK,SAEpCl5C,EAAKoX,MAAMulC,gBAAiB38C,EAAKoX,MAAM1O,MAC1C1I,EAAKm8C,UAAU,MAKfxqD,KAAKkY,YACPlY,KAAKkY,UAAUhE,iBAAiB,cAAc,WACxCrQ,GAASwK,EAAKowC,MAAM8K,cAAgBrC,YAAYI,UAC9Cj5C,EAAKoX,MAAMulC,eACb38C,EAAKyM,OAEPzM,EAAKhH,OAAA,IAGTrH,KAAKkY,UAAUhE,iBAAiB,cAAc,WACxCrQ,GAASwK,EAAKowC,MAAM8K,cAAgBrC,YAAYI,SAClDj5C,EAAKyM,MAAA,KAMP9Z,GACG,KAAAiqD,eAAejqD,GAGlBvB,GACG,KAAAyrD,mBAAmBzrD,GAGtBkC,GACF3B,KAAKwoD,SAAS,CAAEC,WAAU9mD,IAAA,oBAAAgR,EAAAxQ,OAG5BnC,KAAKwoD,SAAS,CAAEe,YAAarC,YAAY5hD,QACzCtF,KAAK4U,aAAauyC,YAAY7hD,OAAA,+BAI3BlG,EAAAM,UAAA2H,KAAP,WACU,IAAAlI,EAAaa,KAAKy+C,MAAA6K,SAEtBnqD,IACFa,KAAK4U,aAAauyC,YAAYU,MAE9B1oD,EAASkI,OAETrH,KAAKwoD,SAAS,CAAEe,YAAarC,YAAYI,UAAA,EAItCloD,EAAAM,UAAAoH,MAAP,WACU,IAAA3H,EAAaa,KAAKy+C,MAAA6K,SAEtBnqD,IACFa,KAAK4U,aAAauyC,YAAYW,OAE9B3oD,EAAS2H,QAET9G,KAAKwoD,SAAS,CAAEe,YAAarC,YAAYK,SAAA,EAItCnoD,EAAAM,UAAAob,KAAP,WACU,IAAA3b,EAAaa,KAAKy+C,MAAA6K,SAEtBnqD,IACFa,KAAK4U,aAAauyC,YAAYY,MAE9B5oD,EAAS2b,OAET9a,KAAKwoD,SAAS,CAAEe,YAAarC,YAAYM,UAAA,EAItCpoD,EAAcM,UAAAurD,eAArB,SAAsB9rD,GACZ,IAAAC,EAAaY,KAAKy+C,MAAA6K,SAEtBlqD,GACFA,EAASsc,SAASvc,EAAA,EAIfC,EAAkBM,UAAAwrD,mBAAzB,SAA0B/rD,GAChB,IAAAC,EAAaY,KAAKy+C,MAAA6K,SAEtBlqD,GACFA,EAASuc,aAAaxc,EAAA,EAInBC,EAAAM,UAAA8qD,UAAP,SAAiBrrD,EAAcC,QAAA,IAAAA,IAAAA,GAAA,GACvB,IAAAK,EAA4BO,KAAKy+C,MAA/Bp+C,EAAQZ,EAAA6pD,SAAE9oD,EAAWf,EAAA8pD,YAEzBlpD,IACGjB,GAAQoB,IAAgB0mD,YAAYI,QAKvCjnD,EAASgb,YAAYlc,GAAA,IAJrBkB,EAAS4a,YAAY9b,GAAA,GACrBa,KAAK4U,aAAauyC,YAAYW,OAC9B9nD,KAAKwoD,SAAS,CAAEe,YAAarC,YAAYK,UAAA,EAOxCnoD,EAAOM,UAAAwc,QAAd,SAAe/c,GACL,IAAAC,EAAaY,KAAKy+C,MAAA6K,SAEtBlqD,IACFA,EAAS2X,KAAO5X,EAChBa,KAAKwoD,SAAS,CAAEc,SAAUlqD,IAAA,EAGtBA,EAAYM,UAAAkV,aAApB,SAAqBzV,GACX,IAAAC,EAAYY,KAAKylB,MAAA0lC,QAErB/rD,GACFA,EAAQD,EAAA,EA5WLC,EAAAgsD,aAAe,CACpBr0C,MAAA,GA8WH3X,CAAA,CAtZD,CAA4BgqD,mCAAAA,WC3G5B,SAASiC,YAAYlsD,EAAKC,QAAA,IACnBA,IAAiBA,EAAM,CAAC,GAC7B,IAAIK,EAAWL,EAAIksD,SAEnB,GAAKnsD,GAA2B,oBAAbgH,SAAnB,CAEA,IAAI9F,EAAO8F,SAASolD,MAAQplD,SAAS+W,qBAAqB,QAAQ,GAC9D1c,EAAQ2F,SAASC,cAAc,SACnC5F,EAAM0K,KAAO,WAEI,QAAbzL,GACEY,EAAKmrD,WACPnrD,EAAKotC,aAAajtC,EAAOH,EAAKmrD,YAKhCnrD,EAAKkU,YAAY/T,GAGfA,EAAMirD,WACRjrD,EAAMirD,WAAWC,QAAUvsD,EAE3BqB,EAAM+T,YAAYpO,SAASwlD,eAAexsD,GAAA,MAAAysD,SAAA,unIAAAC,WAAA,unIAAAR,YAAAO,UClB9C,IAAAE,YAAA,SAAA3sD,GAAA,SAAAC,IAAA,IAmKCA,EAAA,OAAAD,GAAAA,EAAAsB,MAAA,KAAAH,YAAA,YAlKClB,EAAAq/C,MAAQ,CACNsN,IAAK,EACLC,MAAO,EACPC,KAAM,EACNC,KAAM,KACNC,IAAK,UACLC,gBAAiB,IAGnBhtD,EAAAitD,aAAe,SAACltD,EAAaM,GACvB,GAAQ,MAARN,EAAa,CACT,IAAAkB,EACJ,KACU,IAATZ,GAAkBkN,SAAS,IAAIrJ,MAAM,IACjB,IAApBlE,EAAKq/C,MAAMuN,OAAkBr/C,SAAS,IAAIrJ,MAAM,IAC7B,IAAnBlE,EAAKq/C,MAAMwN,MAAiBt/C,SAAS,IAAIrJ,MAAM,GAClDlE,EAAKopD,SAAS,CAAE2D,IAAK9rD,GAAA,KACJ,MAARlB,GACHkB,EACJ,KACmB,IAAlBjB,EAAKq/C,MAAMsN,KAAgBp/C,SAAS,IAAIrJ,MAAM,IACrC,IAAT7D,GAAkBkN,SAAS,IAAIrJ,MAAM,IAClB,IAAnBlE,EAAKq/C,MAAMwN,MAAiBt/C,SAAS,IAAIrJ,MAAM,GAClDlE,EAAKopD,SAAS,CAAE2D,IAAK9rD,KACJ,MAARlB,IACHkB,EACJ,KACmB,IAAlBjB,EAAKq/C,MAAMsN,KAAgBp/C,SAAS,IAAIrJ,MAAM,IAC1B,IAApBlE,EAAKq/C,MAAMuN,OAAkBr/C,SAAS,IAAIrJ,MAAM,IACvC,IAAT7D,GAAkBkN,SAAS,IAAIrJ,MAAM,GACxClE,EAAKopD,SAAS,CAAE2D,IAAK9rD,IAAA,EAGzBjB,EAAUktD,WAAG,SAACntD,GAAA,IAAAM,EACZ,GAAqB,iBAAVN,EAAX,CAGA,GAAiB,MAAbA,EAAM,GAAY,CACpB,IAAMkB,EACa,IAAjBlB,EAAMoB,OACF,CAACpB,EAAMmE,MAAM,EAAG,GAAInE,EAAMmE,MAAM,EAAG,GAAInE,EAAMmE,MAAM,EAAG,IAAIipD,KAAI,SAAAptD,GAAK,OAAAqZ,SAAS,GAAGrZ,EAAIA,EAAK,OACxF,CAACA,EAAMmE,MAAM,EAAG,GAAInE,EAAMmE,MAAM,EAAG,GAAInE,EAAMmE,MAAM,EAAG,IAAIipD,KAAI,SAAAptD,GAAK,OAAAqZ,SAASrZ,EAAG,OACrFC,EAAKopD,SAAS,CAAE4D,gBAAiB/rD,GAAA,MACxBlB,EAAMqtD,WAAW,aAAQ,KAC5BnsD,EAAsC,QAAAZ,EAAnBN,EAAMstD,MAAM,mBAAOhtD,OAAA,EAAAA,EAAE8sD,KAAI,SAAAptD,GAAK,OAAAqZ,SAASrZ,EAAA,MAE9DC,EAAKopD,SAAS,CAAE4D,gBAAiB/rD,IAIjCjB,EAAKq/C,MAAM2N,gBAAgB7rD,SAC7BnB,EAAKopD,SAAS,CAAEuD,IAAK3sD,EAAKq/C,MAAM2N,gBAAgB,KAChDhtD,EAAKopD,SAAS,CAAEwD,MAAO5sD,EAAKq/C,MAAM2N,gBAAgB,KAClDhtD,EAAKopD,SAAS,CAAEyD,KAAM7sD,EAAKq/C,MAAM2N,gBAAgB,QAAAhtD,CAAA,CA6GvD,OAnKiCS,UAAiCT,EAAAD,GA0DhEC,EAAAM,UAAAsqD,mBAAA,SAAmB7qD,EAAiBC,GAMlC,OALIY,KAAKylB,MAAMilC,mBACT1qD,KAAKy+C,MAAM0N,MAAQ/sD,EAAU+sD,KAC/BnsD,KAAKylB,MAAMilC,kBAAkB1qD,KAAKy+C,MAAM0N,MAAA,CAGrC,EAEF/sD,EAAAM,UAAAuqD,OAAP,WAgGC,IAAA9qD,EAAA,KA/FC,OACEiqD,mCAAAA,cAAA,OAAKxd,UAAU,mBACbwd,mCAAAA,cAAK,OAAAxd,UAAU,sBACbwd,mCAAAA,cAAK,OAAAxd,UAAU,sBACbwd,mCAAAA,cAAoB,qBACpBA,mCAAAA,cACE,SAAAl+C,KAAK,QACL1B,IAAI,IACJF,IAAI,MACJvH,MAAO/B,KAAKy+C,MAAMsN,IAClBW,SAAU,SAAAttD,GACRD,EAAKqpD,SAAS,CAAEuD,IAAK3sD,EAAM0M,OAAO/J,QAClC5C,EAAKktD,aAAa,IAAKjtD,EAAM0M,OAAO/J,MAAA,IAGxCqnD,mCAAAA,cACE,SAAAxd,UAAU,gBACV1gC,KAAK,SACL1B,IAAI,IACJF,IAAI,MACJvH,MAAO/B,KAAKy+C,MAAMsN,IAClBW,SAAU,SAAAttD,GACRD,EAAKqpD,SAAS,CAAEuD,IAAK3sD,EAAM0M,OAAO/J,QAClC5C,EAAKktD,aAAa,IAAKjtD,EAAM0M,OAAO/J,MAAA,KAI1CqnD,mCAAAA,cAAK,OAAAxd,UAAU,sBACbwd,mCAAAA,cAAsB,uBACtBA,mCAAAA,cACE,SAAAl+C,KAAK,QACL1B,IAAI,IACJF,IAAI,MACJvH,MAAO/B,KAAKy+C,MAAMuN,MAClBU,SAAU,SAAAttD,GACRD,EAAKqpD,SAAS,CAAEwD,MAAO5sD,EAAM0M,OAAO/J,QACpC5C,EAAKktD,aAAa,IAAKjtD,EAAM0M,OAAO/J,MAAA,IAGxCqnD,mCAAAA,cACE,SAAAxd,UAAU,gBACV1gC,KAAK,SACL1B,IAAI,IACJF,IAAI,MACJvH,MAAO/B,KAAKy+C,MAAMuN,MAClBU,SAAU,SAAAttD,GACRD,EAAKqpD,SAAS,CAAEwD,MAAO5sD,EAAM0M,OAAO/J,QACpC5C,EAAKktD,aAAa,IAAKjtD,EAAM0M,OAAO/J,MAAA,KAI1CqnD,mCAAAA,cAAK,OAAAxd,UAAU,sBACbwd,mCAAAA,cAAqB,sBACrBA,mCAAAA,cACE,SAAAl+C,KAAK,QACL1B,IAAI,IACJF,IAAI,MACJvH,MAAO/B,KAAKy+C,MAAMwN,KAClBS,SAAU,SAAAttD,GACRD,EAAKqpD,SAAS,CAAEyD,KAAM7sD,EAAM0M,OAAO/J,QACnC5C,EAAKktD,aAAa,IAAKjtD,EAAM0M,OAAO/J,MAAA,IAGxCqnD,mCAAAA,cACE,SAAAxd,UAAU,gBACV1gC,KAAK,SACL1B,IAAI,IACJF,IAAI,MACJvH,MAAO/B,KAAKy+C,MAAMwN,KAClBS,SAAU,SAAAttD,GACRD,EAAKqpD,SAAS,CAAEyD,KAAM7sD,EAAM0M,OAAO/J,QACnC5C,EAAKktD,aAAa,IAAKjtD,EAAM0M,OAAO/J,MAAA,MAK5CqnD,mCAAAA,cAAK,OAAAxd,UAAU,oBACbwd,mCAAAA,cAAA,OACExd,UAAU,aACVvhC,MAAO,CAAEo+C,WAAY,OAAOzoD,KAAKy+C,MAAMsN,IAAG,KAAK/rD,KAAKy+C,MAAMuN,MAAK,KAAKhsD,KAAKy+C,MAAMwN,KAAI,OAErF7C,mCAAAA,cAAA,WACEA,mCAAAA,cAAA,SACExd,UAAU,gBACV1gC,KAAK,OACLnJ,MAAO/B,KAAKy+C,MAAM0N,IAClBO,SAAU,SAAAttD,GACRD,EAAKqpD,SAAS,CAAE2D,IAAK/sD,EAAE0M,OAAO/J,QAC9B5C,EAAKmtD,WAAWltD,EAAE0M,OAAO/J,MAAA,QAQxC3C,CAAA,CAnKD,CAAiCgqD,mCAAAA,WCMpBuD,QAAmC,SAACxtD,GACvC,IAAAC,EAAmBD,EAAK+3C,SAAdz3C,EAASN,EAAKytD,KAC1BvsD,GAA+BwsD,EAAAA,mCAAAA,UAAgC,MAA9DrsD,EAAWH,EAAA,GAAEU,EAAaV,EAAA,GAC3BW,GAA+B6rD,EAAAA,mCAAAA,UAAgC,MAA9DzrD,EAAWJ,EAAA,GAAEW,EAAaX,EAAA,GAC3B4C,GAA6BipD,EAAAA,mCAAAA,UAAwB,MAApDhpD,EAAUD,EAAA,GAAEiL,EAAYjL,EAAA,GACzBqK,GAAmB4+C,EAAAA,mCAAAA,WAAA,GAAlB3+C,EAAKD,EAAA,GAAEI,EAAOJ,EAAA,GA2BrB,OAzBA6+C,EAAAA,mCAAAA,YAAU,WACJ,GAAAtsD,GAAeY,EAAa,CAC9B,IAAMjC,EAAgBqB,EAAYusD,wBAC5B3tD,EAAgBgC,EAAY2rD,wBAE5BttD,EAAYN,EAAcqL,KAAOpL,EAAc6S,MAAQnN,OAAOkoD,YAAc,EAAI,EAEtFn+C,EAAapP,EAAA,IAEd,CAACoE,EAAYzC,EAAaZ,IAiB3B4oD,mCAAAA,cACE,OAAAxd,UAAU,aACVqhB,YAAa,WAbf5+C,GAAA,EAAQ,EAgBN6+C,aAAc,WAThB7+C,GAAA,EAAQ,EAYN+7C,IAAK,SAAAjrD,GACH4B,EAAc5B,EAAA,GAGhBiqD,mCAAAA,cAAA,OAAKxd,UAAU,kBAAkBnsC,GAEjC2pD,mCAAAA,cAAA,OACExd,UAAU,qBACVwe,IAAK,SAAAjrD,GACHwC,EAAcxC,EAAA,EAEhBkL,MAAO,CACLmmB,OAAQ,OACRD,MAAO,MACP48B,OAAQ,EACRC,WAAYl/C,EAAQ,UAAY,WAGjC9O,GAAA,ECjDTiuD,OAAA,SAAAluD,GAGE,SAAAC,EAAYA,GACV,IAAAK,EAAAN,EAAAS,KAAA,KAAMR,IAEP,YALDK,EAAA6tD,SAAgBlE,mCAAAA,YAOhB3pD,EAAA4sD,aAAe,WAAM,gBAACltD,GACpB,IAAMC,EAAQD,EAAM2M,OAAO/J,MACrB1B,EAAQ0I,KAAKK,MAAOhK,EAAQ,IAAOK,EAAKgmB,MAAMnc,KACpD7J,EAAKgmB,MAAMinC,SAASrsD,EAAA,GANpBZ,EAAKg/C,MAAQ,CAAE18C,MAAO,GAAAtC,CAAA,CAgF1B,OArF4BI,UAA6BT,EAAAD,GAcvDC,EAAAM,UAAAuqD,OAAA,WACE,IAAM9qD,EAAYa,KAAKylB,MAAM1jB,MAAQ/B,KAAKylB,MAAMnc,IAAO,IACjDlK,EAAc,CAClBmuD,gBAAiB,4DAA4DpuD,EAAQ,2CAA2CA,EAAsB,gBAYlJM,EAAgB,CACpB6K,SAAU,WACVE,KAAM,EACNgjD,UAAW,MACXv7C,MAAO,OACPxH,QAAS,QACTgjD,OAAQ,MACR3X,gBAAiB91C,KAAKylB,MAAMioC,UAAY,UAAY,qBACpD3W,MAAO/2C,KAAKylB,MAAMioC,UAAY,UAAY,OAC1CC,QAAS,MACTC,UAAW,SACXC,aAAc,MACdx8B,SAAU,MACVG,WAAY,QAERnxB,EAAgB,CACpBiK,SAAU,WACVimB,MAAO,EACPi9B,UAAW,MACXv7C,MAAO,OACPxH,QAAS,QACTgjD,OAAQ,MACR3X,gBAAiB91C,KAAKylB,MAAMioC,UAAY,UAAY,qBACpD3W,MAAO/2C,KAAKylB,MAAMioC,UAAY,UAAY,OAC1CC,QAAS,MACTC,UAAW,SACXC,aAAc,MACdx8B,SAAU,MACVG,WAAY,QAEd,OACE43B,mCAAAA,cAAA,OAAK/+C,MAzCsB,CAC3BI,QAAS,OACTqjD,cAAe,SACfC,WAAY,SACZ97C,MAAO,OACP+7C,YAAa,MACbC,WAAY,MACZ3jD,SAAU,aAmCR8+C,mCAAAA,cACE,SAAAgB,IAAKpqD,KAAKstD,SACVx+C,GAAG,QACH88B,UAAU,cACVr2B,KAAK,WAAU,aACJ,WACXrK,KAAK,QACL1B,IAAI,IACJF,IAAI,MACJ4kD,KAAK,MACLnsD,MAAO5C,EACPgvD,QAASnuD,KAAKqsD,eACdK,SAAU1sD,KAAKqsD,eACfhiD,MAAOjL,IAERY,KAAKylB,MAAM2oC,YACVhF,mCAAAA,cAAK,OAAA/+C,MAAO,CAAEI,QAAS,OAAQ4jD,eAAgB,kBAC7CjF,mCAAAA,cAAK,OAAA/+C,MAAO5K,GAAgBO,KAAKylB,MAAMjc,KACvC4/C,mCAAAA,cAAA,OAAK/+C,MAAOhK,GAAgBL,KAAKylB,MAAMnc,MAAA,EAMlDlK,CAAA,CArFD,CAA4BgqD,mCAAAA,WCVtBkF,mBAAqB,CACzB7jD,QAAS,cACT8jD,OAAQ,WAwBVC,SAAA,SAAArvD,GACE,SAAAC,EAAmBA,GACjB,IAAAK,EAAAN,EAAAS,KAAA,KAAMR,IAMP,YAJCK,EAAKg/C,MAAQ,CACXgQ,YAAa,EACbC,WAAA,GAAWjvD,CAAA,CA0PjB,OAhQ8BI,UAA2ET,EAAAD,GAUhGC,EAAAM,UAAAuqD,OAAP,WAqPC,IAAA9qD,EAAA,KApPOC,EAA6FY,KAAKylB,MAAhGhmB,EAAQL,EAAAkqD,SAAEjpD,EAAAjB,EAAAmqD,YAAa/oD,EAAMpB,EAAAoqD,OAAEzoD,EAAO3B,EAAA8c,QAAElb,EAAS5B,EAAAorD,UAAEppD,EAAIhC,EAAAiI,KAAE1F,EAAKvC,EAAA0H,MAAElD,EAAIxE,EAAA0b,KAAEjX,EAAOzE,EAAAuvD,QAAE9/C,EAAAzP,EAAAwvD,QAGnF,IAACnvD,EACH,OAAO,KAIL,IAACoE,EACH,OAAO,KAGH,IAAAoK,GAAkBY,GAAWA,EAAQggD,SAAS,QAC9C3gD,GAAkBW,GAAWA,EAAQggD,SAAS,QAC9CxgD,GAAoBQ,GAAWA,EAAQggD,SAAS,UAChDl8C,GAAkB9D,GAAWA,EAAQggD,SAAS,SAC9C7vC,GAAwBnQ,GAAWA,EAAQggD,SAAS,cACpD5vC,GAAgBpQ,GAAWA,EAAQggD,SAAS,YAC5CrrD,EAAY,CAAEyO,MAAO,GAAIC,OAAQ,GAAI48C,QAAS,aAC9C5vC,EAAenW,KAAKoB,MAAM1K,EAASoW,cAEzC,OACEuzC,mCAAAA,cACE,OAAAxd,UAAU,qBACVvhC,MAAO,CACLI,QAAS,OACT4jD,eAAgB,gBAChBn8C,OAAQ,OACR67C,WAAY,SACZjY,gBAAiB91C,KAAKylB,MAAMspC,iBAAmB,cAAgB/uD,KAAKylB,MAAMioC,UAAY,UAAY,UAClGsB,YAAa,OACbC,aAAc,SAGfhhD,GACCm7C,mCAAAA,cACE,OAAAe,KAAK,SACO,aAAA9pD,IAAgB6mD,YAAYI,QAAUH,YAAYW,MAAQX,YAAYU,KAClFqH,SAAU,EACVC,QAAS,WACH9uD,IAAgB6mD,YAAYI,QACT,mBAAV3lD,GACTA,IAGkB,mBAATP,GACTA,GAAA,EAINguD,UAAW,WACL/uD,IAAgB6mD,YAAYI,QACT,mBAAV3lD,GACTA,IAGkB,mBAATP,GACTA,GAAA,EAINwqC,UAAU,gBACVvhC,MAAOikD,oBAENjuD,IAAgB6mD,YAAYI,QAC3B8B,mCAAAA,cAAA,MAAAjpD,QAAA,GAASqD,GACP4lD,mCAAAA,cAAA,QAAMl3C,OAAO,OAAO4Y,GAAG,MAAM7Y,MAAM,MAAMqN,EAAE,KAAKN,EAAE,OAClDoqC,mCAAAA,cAAM,QAAAl3C,OAAO,OAAO4Y,GAAG,MAAM7Y,MAAM,MAAMqN,EAAE,IAAIN,EAAE,QAGnDoqC,mCAAAA,cAAA,MAAAjpD,QAAA,GAASqD,GACP4lD,mCAAAA,cAAA,QAAM/6C,EAAE,iGAKfH,GACCk7C,mCAAAA,cAAA,OACE8F,SAAU,EACV/E,KAAK,SACO,aAAAhD,YAAYY,KACxBoH,QAAS,WAAM,OAAAvrD,GAAQA,GAAA,EACvBwrD,UAAW,WAAM,OAAAxrD,GAAQA,GAAA,EACzBgoC,UAAWvrC,IAAgB6mD,YAAYM,QAAU,uBAAyB,gBAC1En9C,MAAOikD,oBAEPlF,mCAAAA,cAAA,MAAAjpD,QAAA,GAASqD,GACP4lD,mCAAAA,cAAA,QACE/6C,EAAE,qJAMV+6C,mCAAAA,cAACiE,OAAM,CACL7jD,IAAK,EACL0kD,KAAM,EACN5kD,IAAK7J,EAAWA,EAASmM,YAAc,EACvC7J,MAAOvB,GAAU,EACjBksD,SAAU,SAACttD,GACL4B,GACF7B,EAAKqpD,SAAS,CAAEiG,YAAarvD,IAAY,WACvC4B,EAAU5B,GAAA,EAAU,KAI1BiwD,YAAa,SAACjwD,GACR4B,GACF7B,EAAKqpD,SAAS,CAAEiG,YAAarvD,IAAY,WACvC4B,EAAU5B,GAAA,EAAU,KAI1BgvD,WAAYpuD,KAAKylB,MAAM2oC,WACvBV,UAAW1tD,KAAKylB,MAAMioC,YAEvB/6C,GACCy2C,mCAAAA,cAAK,OAAAe,KAAK,SAASve,UAAU,2BAC3Bwd,mCAAAA,cAAA,SACE/+C,MAAO,CACLigD,QAAS,OACTmD,OAAQztD,KAAKylB,MAAMioC,UAAY,oBAAsB,iBACrDG,aAAc,MACd57C,MAAO,OACP27C,UAAW,SACX9X,gBAAiB91C,KAAKylB,MAAMioC,UAAY,UAAY,UACpD3W,MAAO/2C,KAAKylB,MAAMioC,UAAY,UAAY,OAC1Cr8B,SAAU,SACVs8B,QAAS,IACTv8B,WAAY,WAEdlmB,KAAK,OACLnJ,MAAOmd,EACPowC,UAAA,KAILjhD,GACC+6C,mCAAAA,cAAA,OACEe,KAAK,SACO,aAAAhD,YAAYc,KACxBiH,SAAU,EACVC,QAAS,WACH1vD,GAAYsB,GACdA,GAAStB,EAASsX,KAAA,EAGtBq4C,UAAW,WACL3vD,GAAYsB,GACdA,GAAStB,EAASsX,KAAA,EAGtB60B,UAAWnsC,EAASsX,KAAO,uBAAyB,gBACpD1M,MAAOikD,oBAEPlF,mCAAAA,cAAA,MAAAjpD,QAAA,GAASqD,GACP4lD,mCAAAA,cACE,QAAA/6C,EAAE,ykBAMF2hC,OAAO,UACPgH,YAAY,QAEdoS,mCAAAA,cAAA,QACE/6C,EAAE,i1BASF4hC,KAAK,UACLD,OAAO,UACPgH,YAAY,UAKnBh4B,GACCoqC,mCAAAA,cAACuD,QAAA,CACCC,KACExD,mCAAAA,cAAA,MAAAjpD,QAAA,GAASqD,GACP4lD,mCAAAA,cAAA,QACE/6C,EAAE,2dASR+6C,mCAAAA,cAAA,OAAKmG,KAAK,UAAU3jB,UAAU,iCAC5Bwd,mCAAAA,cAAC0C,YAAW,CAACpB,kBAAmB1qD,KAAKylB,MAAMilC,sBAIhDzrC,GACCmqC,mCAAAA,cAACuD,QAAA,CACCC,KACExD,mCAAAA,cAAA,MAAAjpD,QAAA,GAASqD,GACP4lD,mCAAAA,cACE,QAAAoG,SAAS,UACTnhD,EAAE,gSAGFohD,SAAS,YAEXrG,mCAAAA,cAAM,QAAA/6C,EAAE,yEACR+6C,mCAAAA,cAAQ,UAAA78B,GAAG,QAAQC,GAAG,QAAQ/sB,EAAE,UAChC2pD,mCAAAA,cAAA,QACE/6C,EAAE,2JAEF2hC,OAAO,UACPgH,YAAY,WAKlBoS,mCAAAA,cACE,OAAAmG,KAAK,UACL3jB,UAAU,iCACV8jB,QAAS,SAAAvwD,GACH6B,GAAWA,EAAUke,GAAgB/f,EAAEwwD,OAAS,GAAK,EAAI,IAAI,KAGnEvG,mCAAAA,cAAA,mBAAWlqC,GACXkqC,mCAAAA,cAAA,OAAK/+C,MAAO,CAAEkkD,OAAQ,UAAWxX,MAAO,WAAaoY,QAASnvD,KAAKylB,MAAMojC,UAEnE,gBACNO,mCAAAA,cAAA,OAAK/+C,MAAO,CAAEkkD,OAAQ,UAAWxX,MAAO,WAAaoY,QAASnvD,KAAKylB,MAAMojC,UAEnE,gBACNO,mCAAAA,cAAG,KAAAxd,UAAU,WAAS,kDAOnCxsC,CAAA,CAhQD,CAA8BgqD,mCAAAA,6CCnC9B,IAAIwG,EAAUC,EAAQ,KAMlBC,EAAgB,CAClBC,mBAAmB,EACnBC,aAAa,EACbC,cAAc,EACd7E,cAAc,EACd8E,aAAa,EACbC,iBAAiB,EACjBC,0BAA0B,EAC1B3G,0BAA0B,EAC1B4G,QAAQ,EACR1R,WAAW,EACXzzC,MAAM,GAEJolD,EAAgB,CAClB/6C,MAAM,EACNhV,QAAQ,EACRb,WAAW,EACX6wD,QAAQ,EACRC,QAAQ,EACRlwD,WAAW,EACXmwD,OAAO,GASLC,EAAe,CACjB,UAAY,EACZC,SAAS,EACTvF,cAAc,EACd8E,aAAa,EACbvR,WAAW,EACXzzC,MAAM,GAEJ0lD,EAAe,CAAC,EAIpB,SAASC,EAAWC,GAElB,OAAIlB,EAAQmB,OAAOD,GACVJ,EAIFE,EAAaE,EAAoB,WAAMhB,CAChD,CAXAc,EAAahB,EAAQoB,YAhBK,CACxB,UAAY,EACZ/G,QAAQ,EACRmB,cAAc,EACd8E,aAAa,EACbvR,WAAW,GAYbiS,EAAahB,EAAQqB,MAAQP,EAY7B,IAAIrvD,EAAiBhC,OAAOgC,eACxB6vD,EAAsB7xD,OAAO6xD,oBAC7BtwD,EAAwBvB,OAAOuB,sBAC/BK,EAA2B5B,OAAO4B,yBAClCkwD,EAAiB9xD,OAAO8xD,eACxBC,EAAkB/xD,OAAOK,UAsC7B8F,EAAOL,QArCP,SAASksD,EAAqBC,EAAiBC,EAAiBC,GAC9D,GAA+B,kBAApBD,EAA8B,CAEvC,GAAIH,EAAiB,CACnB,IAAIK,EAAqBN,EAAeI,GAEpCE,GAAsBA,IAAuBL,GAC/CC,EAAqBC,EAAiBG,EAAoBD,EAE9D,CAEA,IAAIE,EAAOR,EAAoBK,GAE3B3wD,IACF8wD,EAAOA,EAAKvuD,OAAOvC,EAAsB2wD,KAM3C,IAHA,IAAII,EAAgBd,EAAWS,GAC3BM,EAAgBf,EAAWU,GAEtBlxD,EAAI,EAAGA,EAAIqxD,EAAKnxD,SAAUF,EAAG,CACpC,IAAIguC,EAAMqjB,EAAKrxD,GAEf,IAAKiwD,EAAcjiB,MAAUmjB,IAAaA,EAAUnjB,OAAWujB,IAAiBA,EAAcvjB,OAAWsjB,IAAiBA,EAActjB,IAAO,CAC7I,IAAIwjB,EAAa5wD,EAAyBswD,EAAiBljB,GAE3D,IAEEhtC,EAAeiwD,EAAiBjjB,EAAKwjB,EACvC,CAAE,MAAOzyD,GAAI,CACf,CACF,CACF,CAEA,OAAOkyD,CACT,kCC3Fa,IAAIpyC,EAAE,oBAAoB3c,QAAQA,OAAOuvD,IAAI7jD,EAAEiR,EAAE3c,OAAOuvD,IAAI,iBAAiB,MAAMzjD,EAAE6Q,EAAE3c,OAAOuvD,IAAI,gBAAgB,MAAM1yD,EAAE8f,EAAE3c,OAAOuvD,IAAI,kBAAkB,MAAMjjD,EAAEqQ,EAAE3c,OAAOuvD,IAAI,qBAAqB,MAAM7yC,EAAEC,EAAE3c,OAAOuvD,IAAI,kBAAkB,MAAMnwD,EAAEud,EAAE3c,OAAOuvD,IAAI,kBAAkB,MAAMtjD,EAAE0Q,EAAE3c,OAAOuvD,IAAI,iBAAiB,MAAMluD,EAAEsb,EAAE3c,OAAOuvD,IAAI,oBAAoB,MAAM5jD,EAAEgR,EAAE3c,OAAOuvD,IAAI,yBAAyB,MAAM9wD,EAAEke,EAAE3c,OAAOuvD,IAAI,qBAAqB,MAAMjuD,EAAEqb,EAAE3c,OAAOuvD,IAAI,kBAAkB,MAAM5oB,EAAEhqB,EACpf3c,OAAOuvD,IAAI,uBAAuB,MAAMryD,EAAEyf,EAAE3c,OAAOuvD,IAAI,cAAc,MAAM3yD,EAAE+f,EAAE3c,OAAOuvD,IAAI,cAAc,MAAMtuD,EAAE0b,EAAE3c,OAAOuvD,IAAI,eAAe,MAAMjyC,EAAEX,EAAE3c,OAAOuvD,IAAI,qBAAqB,MAAMxyC,EAAEJ,EAAE3c,OAAOuvD,IAAI,mBAAmB,MAAM9yC,EAAEE,EAAE3c,OAAOuvD,IAAI,eAAe,MAClQ,SAAS/rC,EAAEvlB,GAAG,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,IAAImS,EAAEnS,EAAEuxD,SAAS,OAAOp/C,GAAG,KAAK1E,EAAE,OAAOzN,EAAEA,EAAE0K,MAAQ,KAAKtH,EAAE,KAAKsK,EAAE,KAAK9O,EAAE,KAAK6f,EAAE,KAAKpQ,EAAE,KAAKhL,EAAE,OAAOrD,EAAE,QAAQ,OAAOA,EAAEA,GAAGA,EAAEuxD,UAAY,KAAKvjD,EAAE,KAAKxN,EAAE,KAAK7B,EAAE,KAAKM,EAAE,KAAKkC,EAAE,OAAOnB,EAAE,QAAQ,OAAOmS,GAAG,KAAKtE,EAAE,OAAOsE,EAAE,CAAC,CAAC,SAASiN,EAAEpf,GAAG,OAAOulB,EAAEvlB,KAAK0N,CAAC,CAAC/I,EAAQ6sD,UAAUpuD,EAAEuB,EAAQ8sD,eAAe/jD,EAAE/I,EAAQ+sD,gBAAgB1jD,EAAErJ,EAAQgtD,gBAAgBxwD,EAAEwD,EAAQitD,QAAQnkD,EAAE9I,EAAQ6rD,WAAWhwD,EAAEmE,EAAQktD,SAASjzD,EAAE+F,EAAQmtD,KAAKnzD,EAAEgG,EAAQ8rD,KAAKxxD,EAAE0F,EAAQotD,OAAOlkD,EAChflJ,EAAQqtD,SAASvzC,EAAE9Z,EAAQstD,WAAW5jD,EAAE1J,EAAQutD,SAAS7uD,EAAEsB,EAAQwtD,YAAY,SAASnyD,GAAG,OAAOof,EAAEpf,IAAIulB,EAAEvlB,KAAKoD,CAAC,EAAEuB,EAAQytD,iBAAiBhzC,EAAEza,EAAQ0tD,kBAAkB,SAASryD,GAAG,OAAOulB,EAAEvlB,KAAKgO,CAAC,EAAErJ,EAAQ2tD,kBAAkB,SAAStyD,GAAG,OAAOulB,EAAEvlB,KAAKmB,CAAC,EAAEwD,EAAQ4tD,UAAU,SAASvyD,GAAG,MAAM,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEuxD,WAAW9jD,CAAC,EAAE9I,EAAQ6tD,aAAa,SAASxyD,GAAG,OAAOulB,EAAEvlB,KAAKQ,CAAC,EAAEmE,EAAQ8tD,WAAW,SAASzyD,GAAG,OAAOulB,EAAEvlB,KAAKpB,CAAC,EAAE+F,EAAQ+tD,OAAO,SAAS1yD,GAAG,OAAOulB,EAAEvlB,KAAKrB,CAAC,EAC1dgG,EAAQ4rD,OAAO,SAASvwD,GAAG,OAAOulB,EAAEvlB,KAAKf,CAAC,EAAE0F,EAAQguD,SAAS,SAAS3yD,GAAG,OAAOulB,EAAEvlB,KAAK6N,CAAC,EAAElJ,EAAQiuD,WAAW,SAAS5yD,GAAG,OAAOulB,EAAEvlB,KAAKye,CAAC,EAAE9Z,EAAQkuD,aAAa,SAAS7yD,GAAG,OAAOulB,EAAEvlB,KAAKqO,CAAC,EAAE1J,EAAQmuD,WAAW,SAAS9yD,GAAG,OAAOulB,EAAEvlB,KAAKqD,CAAC,EAC1OsB,EAAQouD,mBAAmB,SAAS/yD,GAAG,MAAM,kBAAkBA,GAAG,oBAAoBA,GAAGA,IAAIpB,GAAGoB,IAAI0N,GAAG1N,IAAIye,GAAGze,IAAIqO,GAAGrO,IAAIqD,GAAGrD,IAAI0oC,GAAG,kBAAkB1oC,GAAG,OAAOA,IAAIA,EAAEuxD,WAAW5yD,GAAGqB,EAAEuxD,WAAWtyD,GAAGe,EAAEuxD,WAAWpwD,GAAGnB,EAAEuxD,WAAWvjD,GAAGhO,EAAEuxD,WAAW/wD,GAAGR,EAAEuxD,WAAWlyC,GAAGrf,EAAEuxD,WAAWzyC,GAAG9e,EAAEuxD,WAAW/yC,GAAGxe,EAAEuxD,WAAWvuD,EAAE,EAAE2B,EAAQquD,OAAOztC,oCCXjUvgB,EAAOL,QAAU,EAAjBK,uCCIwEL,QAGjE,WAAc,aAEnB,IAAIsuD,EA6HAC,EA3HJ,SAASC,IACL,OAAOF,EAAahzD,MAAM,KAAMH,UACpC,CAIA,SAASszD,EAAgBC,GACrBJ,EAAeI,CACnB,CAEA,SAASC,EAAQC,GACb,OACIA,aAAiBv0D,OACyB,mBAA1CH,OAAOK,UAAUiN,SAAS/M,KAAKm0D,EAEvC,CAEA,SAASC,EAASD,GAGd,OACa,MAATA,GAC0C,oBAA1C10D,OAAOK,UAAUiN,SAAS/M,KAAKm0D,EAEvC,CAEA,SAASE,EAAWzzD,EAAG0e,GACnB,OAAO7f,OAAOK,UAAUC,eAAeC,KAAKY,EAAG0e,EACnD,CAEA,SAASg1C,EAAcC,GACnB,GAAI90D,OAAO6xD,oBACP,OAAkD,IAA3C7xD,OAAO6xD,oBAAoBiD,GAAK5zD,OAEvC,IAAIiO,EACJ,IAAKA,KAAK2lD,EACN,GAAIF,EAAWE,EAAK3lD,GAChB,OAAO,EAGf,OAAO,CAEf,CAEA,SAAS4lD,EAAYL,GACjB,YAAiB,IAAVA,CACX,CAEA,SAASM,EAASN,GACd,MACqB,kBAAVA,GACmC,oBAA1C10D,OAAOK,UAAUiN,SAAS/M,KAAKm0D,EAEvC,CAEA,SAASO,EAAOP,GACZ,OACIA,aAAiBvhC,MACyB,kBAA1CnzB,OAAOK,UAAUiN,SAAS/M,KAAKm0D,EAEvC,CAEA,SAASxH,EAAIp9B,EAAKmW,GACd,IACIjlC,EADAk0D,EAAM,GAENC,EAASrlC,EAAI5uB,OACjB,IAAKF,EAAI,EAAGA,EAAIm0D,IAAUn0D,EACtBk0D,EAAI7xD,KAAK4iC,EAAGnW,EAAI9uB,GAAIA,IAExB,OAAOk0D,CACX,CAEA,SAASE,EAAOj0D,EAAG0e,GACf,IAAK,IAAI7e,KAAK6e,EACN+0C,EAAW/0C,EAAG7e,KACdG,EAAEH,GAAK6e,EAAE7e,IAYjB,OARI4zD,EAAW/0C,EAAG,cACd1e,EAAEmM,SAAWuS,EAAEvS,UAGfsnD,EAAW/0C,EAAG,aACd1e,EAAEk0D,QAAUx1C,EAAEw1C,SAGXl0D,CACX,CAEA,SAASm0D,EAAUZ,EAAOa,EAAQC,EAAQC,GACtC,OAAOC,GAAiBhB,EAAOa,EAAQC,EAAQC,GAAQ,GAAME,KACjE,CAEA,SAASC,IAEL,MAAO,CACHC,OAAO,EACPC,aAAc,GACdC,YAAa,GACbnd,UAAW,EACXod,cAAe,EACfC,WAAW,EACXC,WAAY,KACZC,aAAc,KACdC,eAAe,EACfC,iBAAiB,EACjBC,KAAK,EACLC,gBAAiB,GACjBC,IAAK,KACLC,SAAU,KACVC,SAAS,EACTC,iBAAiB,EAEzB,CAEA,SAASC,EAAgB/nD,GAIrB,OAHa,MAATA,EAAEgoD,MACFhoD,EAAEgoD,IAAMjB,KAEL/mD,EAAEgoD,GACb,CAqBA,SAASC,EAAQjoD,GACb,GAAkB,MAAdA,EAAEkoD,SAAkB,CACpB,IAAIC,EAAQJ,EAAgB/nD,GACxBooD,EAAc5C,EAAK9zD,KAAKy2D,EAAMT,iBAAiB,SAAUv1D,GACrD,OAAY,MAALA,CACX,IACAk2D,GACKp7C,MAAMjN,EAAEsoD,GAAGC,YACZJ,EAAMpe,SAAW,IAChBoe,EAAMnB,QACNmB,EAAMd,aACNc,EAAMb,eACNa,EAAMK,iBACNL,EAAML,kBACNK,EAAMf,YACNe,EAAMZ,gBACNY,EAAMX,mBACLW,EAAMP,UAAaO,EAAMP,UAAYQ,GAU/C,GARIpoD,EAAEyoD,UACFJ,EACIA,GACwB,IAAxBF,EAAMhB,eACwB,IAA9BgB,EAAMlB,aAAa50D,aACDq2D,IAAlBP,EAAMQ,SAGS,MAAnBx3D,OAAOy3D,UAAqBz3D,OAAOy3D,SAAS5oD,GAG5C,OAAOqoD,EAFProD,EAAEkoD,SAAWG,CAIrB,CACA,OAAOroD,EAAEkoD,QACb,CAEA,SAASW,EAAcV,GACnB,IAAInoD,EAAIymD,EAAUqC,KAOlB,OANa,MAATX,EACA5B,EAAOwB,EAAgB/nD,GAAImoD,GAE3BJ,EAAgB/nD,GAAGwnD,iBAAkB,EAGlCxnD,CACX,CA9DIwlD,EADAl0D,MAAME,UAAUg0D,KACTl0D,MAAME,UAAUg0D,KAEhB,SAAUuD,GACb,IAEI52D,EAFAlB,EAAIE,OAAOW,MACXk3D,EAAM/3D,EAAEoB,SAAW,EAGvB,IAAKF,EAAI,EAAGA,EAAI62D,EAAK72D,IACjB,GAAIA,KAAKlB,GAAK83D,EAAIr3D,KAAKI,KAAMb,EAAEkB,GAAIA,EAAGlB,GAClC,OAAO,EAIf,OAAO,CACX,EAoDJ,IAAIg4D,EAAoBxD,EAAMwD,iBAAmB,GAC7CC,GAAmB,EAEvB,SAASC,EAAWx2C,EAAIy2C,GACpB,IAAIj3D,EACA63B,EACAgO,EACAqxB,EAAsBJ,EAAiB52D,OAiC3C,GA/BK6zD,EAAYkD,EAAKE,oBAClB32C,EAAG22C,iBAAmBF,EAAKE,kBAE1BpD,EAAYkD,EAAKG,MAClB52C,EAAG42C,GAAKH,EAAKG,IAEZrD,EAAYkD,EAAKI,MAClB72C,EAAG62C,GAAKJ,EAAKI,IAEZtD,EAAYkD,EAAKK,MAClB92C,EAAG82C,GAAKL,EAAKK,IAEZvD,EAAYkD,EAAKX,WAClB91C,EAAG81C,QAAUW,EAAKX,SAEjBvC,EAAYkD,EAAKM,QAClB/2C,EAAG+2C,KAAON,EAAKM,MAEdxD,EAAYkD,EAAKO,UAClBh3C,EAAGg3C,OAASP,EAAKO,QAEhBzD,EAAYkD,EAAKQ,WAClBj3C,EAAGi3C,QAAUR,EAAKQ,SAEjB1D,EAAYkD,EAAKpB,OAClBr1C,EAAGq1C,IAAMD,EAAgBqB,IAExBlD,EAAYkD,EAAKS,WAClBl3C,EAAGk3C,QAAUT,EAAKS,SAGlBR,EAAsB,EACtB,IAAKl3D,EAAI,EAAGA,EAAIk3D,EAAqBl3D,IAG5B+zD,EADLluB,EAAMoxB,EADNp/B,EAAOi/B,EAAiB92D,OAGpBwgB,EAAGqX,GAAQgO,GAKvB,OAAOrlB,CACX,CAGA,SAASm3C,EAAOC,GACZZ,EAAWr3D,KAAMi4D,GACjBj4D,KAAKw2D,GAAK,IAAIhkC,KAAkB,MAAbylC,EAAOzB,GAAayB,EAAOzB,GAAGC,UAAYO,KACxDh3D,KAAKm2D,YACNn2D,KAAKw2D,GAAK,IAAIhkC,KAAKwkC,OAIE,IAArBI,IACAA,GAAmB,EACnBzD,EAAMuE,aAAal4D,MACnBo3D,GAAmB,EAE3B,CAEA,SAASe,EAAShE,GACd,OACIA,aAAe6D,GAAkB,MAAP7D,GAAuC,MAAxBA,EAAIqD,gBAErD,CAEA,SAASvjC,EAAKmkC,IAEgC,IAAtCzE,EAAM0E,6BACa,qBAAZrkC,SACPA,QAAQC,MAERD,QAAQC,KAAK,wBAA0BmkC,EAE/C,CAEA,SAASE,EAAUF,EAAK9yB,GACpB,IAAIizB,GAAY,EAEhB,OAAO9D,GAAO,WAIV,GAHgC,MAA5Bd,EAAM6E,oBACN7E,EAAM6E,mBAAmB,KAAMJ,GAE/BG,EAAW,CACX,IACIE,EACAp4D,EACAguC,EAHAqqB,EAAO,GAIPC,EAASr4D,UAAUC,OACvB,IAAKF,EAAI,EAAGA,EAAIs4D,EAAQt4D,IAAK,CAEzB,GADAo4D,EAAM,GACsB,kBAAjBn4D,UAAUD,GAAiB,CAElC,IAAKguC,KADLoqB,GAAO,MAAQp4D,EAAI,KACPC,UAAU,GACd2zD,EAAW3zD,UAAU,GAAI+tC,KACzBoqB,GAAOpqB,EAAM,KAAO/tC,UAAU,GAAG+tC,GAAO,MAGhDoqB,EAAMA,EAAIn1D,MAAM,GAAI,EACxB,MACIm1D,EAAMn4D,UAAUD,GAEpBq4D,EAAKh2D,KAAK+1D,EACd,CACAxkC,EACImkC,EACI,gBACA54D,MAAME,UAAU4D,MAAM1D,KAAK84D,GAAMxnD,KAAK,IACtC,MACA,IAAI5L,OAAQszD,OAEpBL,GAAY,CAChB,CACA,OAAOjzB,EAAG7kC,MAAMT,KAAMM,UAC1B,GAAGglC,EACP,CAEA,IAgFIosB,EAhFAmH,EAAe,CAAC,EAEpB,SAASC,EAAgBvjD,EAAM6iD,GACK,MAA5BzE,EAAM6E,oBACN7E,EAAM6E,mBAAmBjjD,EAAM6iD,GAE9BS,EAAatjD,KACd0e,EAAKmkC,GACLS,EAAatjD,IAAQ,EAE7B,CAKA,SAASwjD,EAAWhF,GAChB,MACyB,qBAAbiF,UAA4BjF,aAAiBiF,UACX,sBAA1C35D,OAAOK,UAAUiN,SAAS/M,KAAKm0D,EAEvC,CAEA,SAASpvD,EAAIszD,GACT,IAAI//B,EAAM73B,EACV,IAAKA,KAAK43D,EACFhE,EAAWgE,EAAQ53D,KAEf04D,EADJ7gC,EAAO+/B,EAAO53D,IAEVL,KAAKK,GAAK63B,EAEVl4B,KAAK,IAAMK,GAAK63B,GAI5Bl4B,KAAKi5D,QAAUhB,EAIfj4D,KAAKk5D,+BAAiC,IAAIC,QACrCn5D,KAAKo5D,wBAAwBpe,QAAUh7C,KAAKq5D,cAAcre,QACvD,IACA,UAAUA,OAEtB,CAEA,SAASse,EAAaC,EAAcC,GAChC,IACIthC,EADAq8B,EAAME,EAAO,CAAC,EAAG8E,GAErB,IAAKrhC,KAAQshC,EACLvF,EAAWuF,EAAathC,KACpB87B,EAASuF,EAAarhC,KAAU87B,EAASwF,EAAYthC,KACrDq8B,EAAIr8B,GAAQ,CAAC,EACbu8B,EAAOF,EAAIr8B,GAAOqhC,EAAarhC,IAC/Bu8B,EAAOF,EAAIr8B,GAAOshC,EAAYthC,KACF,MAArBshC,EAAYthC,GACnBq8B,EAAIr8B,GAAQshC,EAAYthC,UAEjBq8B,EAAIr8B,IAIvB,IAAKA,KAAQqhC,EAELtF,EAAWsF,EAAcrhC,KACxB+7B,EAAWuF,EAAathC,IACzB87B,EAASuF,EAAarhC,MAGtBq8B,EAAIr8B,GAAQu8B,EAAO,CAAC,EAAGF,EAAIr8B,KAGnC,OAAOq8B,CACX,CAEA,SAASkF,EAAOxB,GACE,MAAVA,GACAj4D,KAAK2E,IAAIszD,EAEjB,CAlEAtE,EAAM0E,6BAA8B,EACpC1E,EAAM6E,mBAAqB,KAsEvB9G,EADAryD,OAAOqyD,KACAryD,OAAOqyD,KAEP,SAAUyC,GACb,IAAI9zD,EACAk0D,EAAM,GACV,IAAKl0D,KAAK8zD,EACFF,EAAWE,EAAK9zD,IAChBk0D,EAAI7xD,KAAKrC,GAGjB,OAAOk0D,CACX,EAGJ,IAAImF,EAAkB,CAClBC,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAGd,SAASC,EAAS5rB,EAAK6rB,EAAKznC,GACxB,IAAI0nC,EAASn6D,KAAKo6D,UAAU/rB,IAAQruC,KAAKo6D,UAAoB,SAC7D,OAAOrB,EAAWoB,GAAUA,EAAOv6D,KAAKs6D,EAAKznC,GAAO0nC,CACxD,CAEA,SAASE,EAASC,EAAQC,EAAcC,GACpC,IAAIC,EAAY,GAAK1xD,KAAKa,IAAI0wD,GAC1BI,EAAcH,EAAeE,EAAUl6D,OAE3C,OADW+5D,GAAU,EAERE,EAAY,IAAM,GAAM,KACjCzxD,KAAKC,IAAI,GAAID,KAAKO,IAAI,EAAGoxD,IAAc/tD,WAAWkM,OAAO,GACzD4hD,CAER,CAEA,IAAIE,EACI,yMACJC,EAAwB,6CACxBC,EAAkB,CAAC,EACnBC,EAAuB,CAAC,EAM5B,SAASC,EAAeC,EAAOC,EAAQC,EAASrH,GAC5C,IAAIsH,EAAOtH,EACa,kBAAbA,IACPsH,EAAO,WACH,OAAOn7D,KAAK6zD,IAChB,GAEAmH,IACAF,EAAqBE,GAASG,GAE9BF,IACAH,EAAqBG,EAAO,IAAM,WAC9B,OAAOZ,EAASc,EAAK16D,MAAMT,KAAMM,WAAY26D,EAAO,GAAIA,EAAO,GACnE,GAEAC,IACAJ,EAAqBI,GAAW,WAC5B,OAAOl7D,KAAKo7D,aAAaF,QACrBC,EAAK16D,MAAMT,KAAMM,WACjB06D,EAER,EAER,CAEA,SAASK,EAAuBtH,GAC5B,OAAIA,EAAMtH,MAAM,YACLsH,EAAMt2C,QAAQ,WAAY,IAE9Bs2C,EAAMt2C,QAAQ,MAAO,GAChC,CAEA,SAAS69C,EAAmB1G,GACxB,IACIv0D,EACAE,EAFAg7D,EAAQ3G,EAAOnI,MAAMkO,GAIzB,IAAKt6D,EAAI,EAAGE,EAASg7D,EAAMh7D,OAAQF,EAAIE,EAAQF,IACvCy6D,EAAqBS,EAAMl7D,IAC3Bk7D,EAAMl7D,GAAKy6D,EAAqBS,EAAMl7D,IAEtCk7D,EAAMl7D,GAAKg7D,EAAuBE,EAAMl7D,IAIhD,OAAO,SAAU65D,GACb,IACI75D,EADA85D,EAAS,GAEb,IAAK95D,EAAI,EAAGA,EAAIE,EAAQF,IACpB85D,GAAUpB,EAAWwC,EAAMl7D,IACrBk7D,EAAMl7D,GAAGT,KAAKs6D,EAAKtF,GACnB2G,EAAMl7D,GAEhB,OAAO85D,CACX,CACJ,CAGA,SAASqB,EAAattD,EAAG0mD,GACrB,OAAK1mD,EAAEioD,WAIPvB,EAAS6G,EAAa7G,EAAQ1mD,EAAEktD,cAChCP,EAAgBjG,GACZiG,EAAgBjG,IAAW0G,EAAmB1G,GAE3CiG,EAAgBjG,GAAQ1mD,IAPpBA,EAAEktD,aAAaM,aAQ9B,CAEA,SAASD,EAAa7G,EAAQC,GAC1B,IAAIx0D,EAAI,EAER,SAASs7D,EAA4B5H,GACjC,OAAOc,EAAO+G,eAAe7H,IAAUA,CAC3C,CAGA,IADA6G,EAAsBl6C,UAAY,EAC3BrgB,GAAK,GAAKu6D,EAAsBjyD,KAAKisD,IACxCA,EAASA,EAAOn3C,QACZm9C,EACAe,GAEJf,EAAsBl6C,UAAY,EAClCrgB,GAAK,EAGT,OAAOu0D,CACX,CAEA,IAAIiH,EAAwB,CACxBC,IAAK,YACLC,GAAI,SACJr1B,EAAG,aACHs1B,GAAI,eACJC,IAAK,sBACLC,KAAM,6BAGV,SAASN,EAAevtB,GACpB,IAAIumB,EAAS50D,KAAKm8D,gBAAgB9tB,GAC9B+tB,EAAcp8D,KAAKm8D,gBAAgB9tB,EAAIguB,eAE3C,OAAIzH,IAAWwH,EACJxH,GAGX50D,KAAKm8D,gBAAgB9tB,GAAO+tB,EACvB3P,MAAMkO,GACNpO,KAAI,SAAU+P,GACX,MACY,SAARA,GACQ,OAARA,GACQ,OAARA,GACQ,SAARA,EAEOA,EAAIh5D,MAAM,GAEdg5D,CACX,IACCprD,KAAK,IAEHlR,KAAKm8D,gBAAgB9tB,GAChC,CAEA,IAAIkuB,EAAqB,eAEzB,SAASb,IACL,OAAO17D,KAAKw8D,YAChB,CAEA,IAAIC,EAAiB,KACjBC,EAAgC,UAEpC,SAASxB,EAAQZ,GACb,OAAOt6D,KAAK28D,SAASl/C,QAAQ,KAAM68C,EACvC,CAEA,IAAIsC,EAAsB,CACtBC,OAAQ,QACRC,KAAM,SACN/7D,EAAG,gBACHg8D,GAAI,aACJ7uD,EAAG,WACH8uD,GAAI,aACJr7D,EAAG,UACHs7D,GAAI,WACJ5uD,EAAG,QACH6uD,GAAI,UACJr9C,EAAG,SACHs9C,GAAI,WACJp9C,EAAG,UACHq9C,GAAI,YACJp+C,EAAG,SACHq+C,GAAI,YAGR,SAASC,EAAahD,EAAQiD,EAAeC,EAAQC,GACjD,IAAItD,EAASn6D,KAAK09D,cAAcF,GAChC,OAAOzE,EAAWoB,GACZA,EAAOG,EAAQiD,EAAeC,EAAQC,GACtCtD,EAAO18C,QAAQ,MAAO68C,EAChC,CAEA,SAASqD,GAAWC,EAAMzD,GACtB,IAAIvF,EAAS50D,KAAK09D,cAAcE,EAAO,EAAI,SAAW,QACtD,OAAO7E,EAAWnE,GAAUA,EAAOuF,GAAUvF,EAAOn3C,QAAQ,MAAO08C,EACvE,CAEA,IAAI0D,GAAU,CAAC,EAEf,SAASC,GAAaC,EAAMC,GACxB,IAAIC,EAAYF,EAAKxvC,cACrBsvC,GAAQI,GAAaJ,GAAQI,EAAY,KAAOJ,GAAQG,GAAaD,CACzE,CAEA,SAASG,GAAeC,GACpB,MAAwB,kBAAVA,EACRN,GAAQM,IAAUN,GAAQM,EAAM5vC,oBAChCqoC,CACV,CAEA,SAASwH,GAAqBC,GAC1B,IACIC,EACApmC,EAFAqmC,EAAkB,CAAC,EAIvB,IAAKrmC,KAAQmmC,EACLpK,EAAWoK,EAAanmC,KACxBomC,EAAiBJ,GAAehmC,MAE5BqmC,EAAgBD,GAAkBD,EAAYnmC,IAK1D,OAAOqmC,CACX,CAEA,IAAIC,GAAa,CAAC,EAElB,SAASC,GAAgBV,EAAMW,GAC3BF,GAAWT,GAAQW,CACvB,CAEA,SAASC,GAAoBC,GACzB,IACIjsD,EADAwrD,EAAQ,GAEZ,IAAKxrD,KAAKisD,EACF3K,EAAW2K,EAAUjsD,IACrBwrD,EAAMz7D,KAAK,CAAEq7D,KAAMprD,EAAG+rD,SAAUF,GAAW7rD,KAMnD,OAHAwrD,EAAMU,MAAK,SAAUr+D,EAAG0e,GACpB,OAAO1e,EAAEk+D,SAAWx/C,EAAEw/C,QAC1B,IACOP,CACX,CAEA,SAASW,GAAWC,GAChB,OAAQA,EAAO,IAAM,GAAKA,EAAO,MAAQ,GAAMA,EAAO,MAAQ,CAClE,CAEA,SAASC,GAAS1E,GACd,OAAIA,EAAS,EAEFvxD,KAAKgnB,KAAKuqC,IAAW,EAErBvxD,KAAKK,MAAMkxD,EAE1B,CAEA,SAAS2E,GAAMC,GACX,IAAIC,GAAiBD,EACjBn9D,EAAQ,EAMZ,OAJsB,IAAlBo9D,GAAuBC,SAASD,KAChCp9D,EAAQi9D,GAASG,IAGdp9D,CACX,CAEA,SAASs9D,GAAWtB,EAAMuB,GACtB,OAAO,SAAUv9D,GACb,OAAa,MAATA,GACAw9D,GAAMv/D,KAAM+9D,EAAMh8D,GAClB4xD,EAAMuE,aAAal4D,KAAMs/D,GAClBt/D,MAEA6C,GAAI7C,KAAM+9D,EAEzB,CACJ,CAEA,SAASl7D,GAAIq3D,EAAK6D,GACd,OAAO7D,EAAI/D,UACL+D,EAAI1D,GAAG,OAAS0D,EAAIrC,OAAS,MAAQ,IAAMkG,KAC3C/G,GACV,CAEA,SAASuI,GAAMrF,EAAK6D,EAAMh8D,GAClBm4D,EAAI/D,YAAch7C,MAAMpZ,KAEX,aAATg8D,GACAe,GAAW5E,EAAI6E,SACC,IAAhB7E,EAAIsF,SACW,KAAftF,EAAIuF,QAEJ19D,EAAQk9D,GAAMl9D,GACdm4D,EAAI1D,GAAG,OAAS0D,EAAIrC,OAAS,MAAQ,IAAMkG,GACvCh8D,EACAm4D,EAAIsF,QACJE,GAAY39D,EAAOm4D,EAAIsF,WAG3BtF,EAAI1D,GAAG,OAAS0D,EAAIrC,OAAS,MAAQ,IAAMkG,GAAMh8D,GAG7D,CAIA,SAAS49D,GAAUxB,GAEf,OAAIpF,EAAW/4D,KADfm+D,EAAQD,GAAeC,KAEZn+D,KAAKm+D,KAETn+D,IACX,CAEA,SAAS4/D,GAAUzB,EAAOp8D,GACtB,GAAqB,kBAAVo8D,EAAoB,CAE3B,IACI99D,EADAw/D,EAAclB,GADlBR,EAAQC,GAAqBD,IAGzB2B,EAAiBD,EAAYt/D,OACjC,IAAKF,EAAI,EAAGA,EAAIy/D,EAAgBz/D,IAC5BL,KAAK6/D,EAAYx/D,GAAG09D,MAAMI,EAAM0B,EAAYx/D,GAAG09D,MAEvD,MAEI,GAAIhF,EAAW/4D,KADfm+D,EAAQD,GAAeC,KAEnB,OAAOn+D,KAAKm+D,GAAOp8D,GAG3B,OAAO/B,IACX,CAEA,IAoBI+/D,GApBAC,GAAS,KACTC,GAAS,OACTC,GAAS,QACTC,GAAS,QACTC,GAAS,aACTC,GAAY,QACZC,GAAY,YACZC,GAAY,gBACZC,GAAY,UACZC,GAAY,UACZC,GAAY,eACZC,GAAgB,MAChBC,GAAc,WACdC,GAAc,qBACdC,GAAmB,0BACnBC,GAAiB,uBAGjBC,GACI,wJAKR,SAASC,GAAcjG,EAAOkG,EAAOC,GACjCpB,GAAQ/E,GAASjC,EAAWmI,GACtBA,EACA,SAAUE,EAAUhG,GAChB,OAAOgG,GAAYD,EAAcA,EAAcD,CACnD,CACV,CAEA,SAASG,GAAsBrG,EAAO/C,GAClC,OAAKhE,EAAW8L,GAAS/E,GAIlB+E,GAAQ/E,GAAO/C,EAAOtB,QAASsB,EAAOF,SAHlC,IAAIoB,OAAOmI,GAAetG,GAIzC,CAGA,SAASsG,GAAevgE,GACpB,OAAOwgE,GACHxgE,EACK0c,QAAQ,KAAM,IACdA,QACG,uCACA,SAAU+jD,EAASC,EAAIC,EAAIC,EAAIC,GAC3B,OAAOH,GAAMC,GAAMC,GAAMC,CAC7B,IAGhB,CAEA,SAASL,GAAYxgE,GACjB,OAAOA,EAAE0c,QAAQ,yBAA0B,OAC/C,CAlCAsiD,GAAU,CAAC,EAoCX,IAAI8B,GAAS,CAAC,EAEd,SAASC,GAAc9G,EAAOnH,GAC1B,IAAIxzD,EAEA0hE,EADA5G,EAAOtH,EAWX,IATqB,kBAAVmH,IACPA,EAAQ,CAACA,IAET3G,EAASR,KACTsH,EAAO,SAAUpH,EAAOwH,GACpBA,EAAM1H,GAAYoL,GAAMlL,EAC5B,GAEJgO,EAAW/G,EAAMz6D,OACZF,EAAI,EAAGA,EAAI0hE,EAAU1hE,IACtBwhE,GAAO7G,EAAM36D,IAAM86D,CAE3B,CAEA,SAAS6G,GAAkBhH,EAAOnH,GAC9BiO,GAAc9G,GAAO,SAAUjH,EAAOwH,EAAOtD,EAAQ+C,GACjD/C,EAAOgK,GAAKhK,EAAOgK,IAAM,CAAC,EAC1BpO,EAASE,EAAOkE,EAAOgK,GAAIhK,EAAQ+C,EACvC,GACJ,CAEA,SAASkH,GAAwBlH,EAAOjH,EAAOkE,GAC9B,MAATlE,GAAiBE,EAAW4N,GAAQ7G,IACpC6G,GAAO7G,GAAOjH,EAAOkE,EAAOkK,GAAIlK,EAAQ+C,EAEhD,CAEA,IAcIr6D,GAdAyhE,GAAO,EACPC,GAAQ,EACRC,GAAO,EACPC,GAAO,EACPC,GAAS,EACTC,GAAS,EACTC,GAAc,EACdC,GAAO,EACPC,GAAU,EAEd,SAASjjB,GAAI3+C,EAAGse,GACZ,OAASte,EAAIse,EAAKA,GAAKA,CAC3B,CAmBA,SAASogD,GAAYX,EAAMS,GACvB,GAAIrkD,MAAM4jD,IAAS5jD,MAAMqkD,GACrB,OAAOxI,IAEX,IAAI6L,EAAWljB,GAAI6f,EAAO,IAE1B,OADAT,IAASS,EAAQqD,GAAY,GACT,IAAbA,EACD/D,GAAWC,GACP,GACA,GACJ,GAAO8D,EAAW,EAAK,CACjC,CAzBIliE,GADAnB,MAAME,UAAUiB,QACNnB,MAAME,UAAUiB,QAEhB,SAAUS,GAEhB,IAAIf,EACJ,IAAKA,EAAI,EAAGA,EAAIL,KAAKO,SAAUF,EAC3B,GAAIL,KAAKK,KAAOe,EACZ,OAAOf,EAGf,OAAQ,CACZ,EAkBJ06D,EAAe,IAAK,CAAC,KAAM,GAAI,MAAM,WACjC,OAAO/6D,KAAKw/D,QAAU,CAC1B,IAEAzE,EAAe,MAAO,EAAG,GAAG,SAAUnG,GAClC,OAAO50D,KAAKo7D,aAAa0H,YAAY9iE,KAAM40D,EAC/C,IAEAmG,EAAe,OAAQ,EAAG,GAAG,SAAUnG,GACnC,OAAO50D,KAAKo7D,aAAa2H,OAAO/iE,KAAM40D,EAC1C,IAIAkJ,GAAa,QAAS,KAItBW,GAAgB,QAAS,GAIzBwC,GAAc,IAAKZ,IACnBY,GAAc,KAAMZ,GAAWJ,IAC/BgB,GAAc,OAAO,SAAUG,EAAUvM,GACrC,OAAOA,EAAOmO,iBAAiB5B,EACnC,IACAH,GAAc,QAAQ,SAAUG,EAAUvM,GACtC,OAAOA,EAAOoO,YAAY7B,EAC9B,IAEAU,GAAc,CAAC,IAAK,OAAO,SAAU/N,EAAOwH,GACxCA,EAAM8G,IAASpD,GAAMlL,GAAS,CAClC,IAEA+N,GAAc,CAAC,MAAO,SAAS,SAAU/N,EAAOwH,EAAOtD,EAAQ+C,GAC3D,IAAIwE,EAAQvH,EAAOF,QAAQmL,YAAYnP,EAAOiH,EAAO/C,EAAOtB,SAE/C,MAAT6I,EACAjE,EAAM8G,IAAS7C,EAEfvJ,EAAgBgC,GAAQzC,aAAezB,CAE/C,IAIA,IAAIoP,GACI,wFAAwF9zD,MACpF,KAER+zD,GACI,kDAAkD/zD,MAAM,KAC5Dg0D,GAAmB,gCACnBC,GAA0BtC,GAC1BuC,GAAqBvC,GAEzB,SAASwC,GAAat1D,EAAG0mD,GACrB,OAAK1mD,EAKE4lD,EAAQ9zD,KAAKyjE,SACdzjE,KAAKyjE,QAAQv1D,EAAEsxD,SACfx/D,KAAKyjE,SACAzjE,KAAKyjE,QAAQC,UAAYL,IAAkB16D,KAAKisD,GAC3C,SACA,cACR1mD,EAAEsxD,SAVC1L,EAAQ9zD,KAAKyjE,SACdzjE,KAAKyjE,QACLzjE,KAAKyjE,QAAoB,UASvC,CAEA,SAASE,GAAkBz1D,EAAG0mD,GAC1B,OAAK1mD,EAKE4lD,EAAQ9zD,KAAK4jE,cACd5jE,KAAK4jE,aAAa11D,EAAEsxD,SACpBx/D,KAAK4jE,aACDP,GAAiB16D,KAAKisD,GAAU,SAAW,cAC7C1mD,EAAEsxD,SARC1L,EAAQ9zD,KAAK4jE,cACd5jE,KAAK4jE,aACL5jE,KAAK4jE,aAAyB,UAO5C,CAEA,SAASC,GAAkBC,EAAWlP,EAAQE,GAC1C,IAAIz0D,EACA0jE,EACA7J,EACA8J,EAAMF,EAAUG,oBACpB,IAAKjkE,KAAKkkE,aAKN,IAHAlkE,KAAKkkE,aAAe,GACpBlkE,KAAKmkE,iBAAmB,GACxBnkE,KAAKokE,kBAAoB,GACpB/jE,EAAI,EAAGA,EAAI,KAAMA,EAClB65D,EAAMvF,EAAU,CAAC,IAAMt0D,IACvBL,KAAKokE,kBAAkB/jE,GAAKL,KAAK8iE,YAC7B5I,EACA,IACF+J,oBACFjkE,KAAKmkE,iBAAiB9jE,GAAKL,KAAK+iE,OAAO7I,EAAK,IAAI+J,oBAIxD,OAAInP,EACe,QAAXF,GAEe,KADfmP,EAAKpjE,GAAQf,KAAKI,KAAKokE,kBAAmBJ,IACvBD,EAAK,MAGT,KADfA,EAAKpjE,GAAQf,KAAKI,KAAKmkE,iBAAkBH,IACtBD,EAAK,KAGb,QAAXnP,GAEY,KADZmP,EAAKpjE,GAAQf,KAAKI,KAAKokE,kBAAmBJ,MAK3B,KADfD,EAAKpjE,GAAQf,KAAKI,KAAKmkE,iBAAkBH,IAF9BD,EAGa,MAGZ,KADZA,EAAKpjE,GAAQf,KAAKI,KAAKmkE,iBAAkBH,MAK1B,KADfD,EAAKpjE,GAAQf,KAAKI,KAAKokE,kBAAmBJ,IAF/BD,EAGa,IAGpC,CAEA,SAASM,GAAkBP,EAAWlP,EAAQE,GAC1C,IAAIz0D,EAAG65D,EAAKgH,EAEZ,GAAIlhE,KAAKskE,kBACL,OAAOT,GAAkBjkE,KAAKI,KAAM8jE,EAAWlP,EAAQE,GAY3D,IATK90D,KAAKkkE,eACNlkE,KAAKkkE,aAAe,GACpBlkE,KAAKmkE,iBAAmB,GACxBnkE,KAAKokE,kBAAoB,IAMxB/jE,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAmBrB,GAjBA65D,EAAMvF,EAAU,CAAC,IAAMt0D,IACnBy0D,IAAW90D,KAAKmkE,iBAAiB9jE,KACjCL,KAAKmkE,iBAAiB9jE,GAAK,IAAI84D,OAC3B,IAAMn5D,KAAK+iE,OAAO7I,EAAK,IAAIz8C,QAAQ,IAAK,IAAM,IAC9C,KAEJzd,KAAKokE,kBAAkB/jE,GAAK,IAAI84D,OAC5B,IAAMn5D,KAAK8iE,YAAY5I,EAAK,IAAIz8C,QAAQ,IAAK,IAAM,IACnD,MAGHq3C,GAAW90D,KAAKkkE,aAAa7jE,KAC9B6gE,EACI,IAAMlhE,KAAK+iE,OAAO7I,EAAK,IAAM,KAAOl6D,KAAK8iE,YAAY5I,EAAK,IAC9Dl6D,KAAKkkE,aAAa7jE,GAAK,IAAI84D,OAAO+H,EAAMzjD,QAAQ,IAAK,IAAK,MAI1Dq3C,GACW,SAAXF,GACA50D,KAAKmkE,iBAAiB9jE,GAAGsI,KAAKm7D,GAE9B,OAAOzjE,EACJ,GACHy0D,GACW,QAAXF,GACA50D,KAAKokE,kBAAkB/jE,GAAGsI,KAAKm7D,GAE/B,OAAOzjE,EACJ,IAAKy0D,GAAU90D,KAAKkkE,aAAa7jE,GAAGsI,KAAKm7D,GAC5C,OAAOzjE,CAEf,CACJ,CAIA,SAASkkE,GAASrK,EAAKn4D,GACnB,IAAIyiE,EAEJ,IAAKtK,EAAI/D,UAEL,OAAO+D,EAGX,GAAqB,kBAAVn4D,EACP,GAAI,QAAQ4G,KAAK5G,GACbA,EAAQk9D,GAAMl9D,QAId,IAAKsyD,EAFLtyD,EAAQm4D,EAAIkB,aAAa8H,YAAYnhE,IAGjC,OAAOm4D,EAOnB,OAFAsK,EAAaz7D,KAAKS,IAAI0wD,EAAIuF,OAAQC,GAAYxF,EAAI6E,OAAQh9D,IAC1Dm4D,EAAI1D,GAAG,OAAS0D,EAAIrC,OAAS,MAAQ,IAAM,SAAS91D,EAAOyiE,GACpDtK,CACX,CAEA,SAASuK,GAAY1iE,GACjB,OAAa,MAATA,GACAwiE,GAASvkE,KAAM+B,GACf4xD,EAAMuE,aAAal4D,MAAM,GAClBA,MAEA6C,GAAI7C,KAAM,QAEzB,CAEA,SAAS0kE,KACL,OAAOhF,GAAY1/D,KAAK++D,OAAQ/+D,KAAKw/D,QACzC,CAEA,SAASwD,GAAiB5B,GACtB,OAAIphE,KAAKskE,mBACArQ,EAAWj0D,KAAM,iBAClB2kE,GAAmB/kE,KAAKI,MAExBohE,EACOphE,KAAK4kE,wBAEL5kE,KAAK6kE,oBAGX5Q,EAAWj0D,KAAM,uBAClBA,KAAK6kE,kBAAoBvB,IAEtBtjE,KAAK4kE,yBAA2BxD,EACjCphE,KAAK4kE,wBACL5kE,KAAK6kE,kBAEnB,CAEA,SAAS5B,GAAY7B,GACjB,OAAIphE,KAAKskE,mBACArQ,EAAWj0D,KAAM,iBAClB2kE,GAAmB/kE,KAAKI,MAExBohE,EACOphE,KAAK8kE,mBAEL9kE,KAAK+kE,eAGX9Q,EAAWj0D,KAAM,kBAClBA,KAAK+kE,aAAexB,IAEjBvjE,KAAK8kE,oBAAsB1D,EAC5BphE,KAAK8kE,mBACL9kE,KAAK+kE,aAEnB,CAEA,SAASJ,KACL,SAASK,EAAUxkE,EAAG0e,GAClB,OAAOA,EAAE3e,OAASC,EAAED,MACxB,CAEA,IAGIF,EACA65D,EAJA+K,EAAc,GACdC,EAAa,GACbC,EAAc,GAGlB,IAAK9kE,EAAI,EAAGA,EAAI,GAAIA,IAEhB65D,EAAMvF,EAAU,CAAC,IAAMt0D,IACvB4kE,EAAYviE,KAAK1C,KAAK8iE,YAAY5I,EAAK,KACvCgL,EAAWxiE,KAAK1C,KAAK+iE,OAAO7I,EAAK,KACjCiL,EAAYziE,KAAK1C,KAAK+iE,OAAO7I,EAAK,KAClCiL,EAAYziE,KAAK1C,KAAK8iE,YAAY5I,EAAK,KAO3C,IAHA+K,EAAYpG,KAAKmG,GACjBE,EAAWrG,KAAKmG,GAChBG,EAAYtG,KAAKmG,GACZ3kE,EAAI,EAAGA,EAAI,GAAIA,IAChB4kE,EAAY5kE,GAAKkhE,GAAY0D,EAAY5kE,IACzC6kE,EAAW7kE,GAAKkhE,GAAY2D,EAAW7kE,IAE3C,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAChB8kE,EAAY9kE,GAAKkhE,GAAY4D,EAAY9kE,IAG7CL,KAAK+kE,aAAe,IAAI5L,OAAO,KAAOgM,EAAYj0D,KAAK,KAAO,IAAK,KACnElR,KAAK6kE,kBAAoB7kE,KAAK+kE,aAC9B/kE,KAAK8kE,mBAAqB,IAAI3L,OAC1B,KAAO+L,EAAWh0D,KAAK,KAAO,IAC9B,KAEJlR,KAAK4kE,wBAA0B,IAAIzL,OAC/B,KAAO8L,EAAY/zD,KAAK,KAAO,IAC/B,IAER,CA+CA,SAASk0D,GAAWrG,GAChB,OAAOD,GAAWC,GAAQ,IAAM,GACpC,CA7CAhE,EAAe,IAAK,EAAG,GAAG,WACtB,IAAI/7C,EAAIhf,KAAK++D,OACb,OAAO//C,GAAK,KAAOq7C,EAASr7C,EAAG,GAAK,IAAMA,CAC9C,IAEA+7C,EAAe,EAAG,CAAC,KAAM,GAAI,GAAG,WAC5B,OAAO/6D,KAAK++D,OAAS,GACzB,IAEAhE,EAAe,EAAG,CAAC,OAAQ,GAAI,EAAG,QAClCA,EAAe,EAAG,CAAC,QAAS,GAAI,EAAG,QACnCA,EAAe,EAAG,CAAC,SAAU,GAAG,GAAO,EAAG,QAI1C+C,GAAa,OAAQ,KAIrBW,GAAgB,OAAQ,GAIxBwC,GAAc,IAAKL,IACnBK,GAAc,KAAMZ,GAAWJ,IAC/BgB,GAAc,OAAQR,GAAWN,IACjCc,GAAc,QAASP,GAAWN,IAClCa,GAAc,SAAUP,GAAWN,IAEnC0B,GAAc,CAAC,QAAS,UAAWM,IACnCN,GAAc,QAAQ,SAAU/N,EAAOwH,GACnCA,EAAM6G,IACe,IAAjBrO,EAAMxzD,OAAeozD,EAAM0R,kBAAkBtR,GAASkL,GAAMlL,EACpE,IACA+N,GAAc,MAAM,SAAU/N,EAAOwH,GACjCA,EAAM6G,IAAQzO,EAAM0R,kBAAkBtR,EAC1C,IACA+N,GAAc,KAAK,SAAU/N,EAAOwH,GAChCA,EAAM6G,IAAQ5pD,SAASu7C,EAAO,GAClC,IAUAJ,EAAM0R,kBAAoB,SAAUtR,GAChC,OAAOkL,GAAMlL,IAAUkL,GAAMlL,GAAS,GAAK,KAAO,IACtD,EAIA,IAAIuR,GAAajG,GAAW,YAAY,GAExC,SAASkG,KACL,OAAOzG,GAAW9+D,KAAK++D,OAC3B,CAEA,SAASyG,GAAWxmD,EAAG9Q,EAAGG,EAAG1M,EAAGoe,EAAGhf,EAAGqhC,GAGlC,IAAIq9B,EAYJ,OAVIzgD,EAAI,KAAOA,GAAK,GAEhBygD,EAAO,IAAIjtC,KAAKxT,EAAI,IAAK9Q,EAAGG,EAAG1M,EAAGoe,EAAGhf,EAAGqhC,GACpCg9B,SAASK,EAAKgG,gBACdhG,EAAKiG,YAAY1mD,IAGrBygD,EAAO,IAAIjtC,KAAKxT,EAAG9Q,EAAGG,EAAG1M,EAAGoe,EAAGhf,EAAGqhC,GAG/Bq9B,CACX,CAEA,SAASkG,GAAc3mD,GACnB,IAAIygD,EAAM/G,EAcV,OAZI15C,EAAI,KAAOA,GAAK,IAChB05C,EAAOl5D,MAAME,UAAU4D,MAAM1D,KAAKU,YAE7B,GAAK0e,EAAI,IACdygD,EAAO,IAAIjtC,KAAKA,KAAKozC,IAAInlE,MAAM,KAAMi4D,IACjC0G,SAASK,EAAKoG,mBACdpG,EAAKqG,eAAe9mD,IAGxBygD,EAAO,IAAIjtC,KAAKA,KAAKozC,IAAInlE,MAAM,KAAMH,YAGlCm/D,CACX,CAGA,SAASsG,GAAgBhH,EAAMiH,EAAKC,GAChC,IACIC,EAAM,EAAIF,EAAMC,EAIpB,QAFa,EAAIN,GAAc5G,EAAM,EAAGmH,GAAKC,YAAcH,GAAO,EAElDE,EAAM,CAC1B,CAGA,SAASE,GAAmBrH,EAAMsH,EAAMC,EAASN,EAAKC,GAClD,IAGIM,EACAC,EAFAC,EAAY,EAAI,GAAKJ,EAAO,IAFZ,EAAIC,EAAUN,GAAO,EACxBD,GAAgBhH,EAAMiH,EAAKC,GAgB5C,OAXIQ,GAAa,EAEbD,EAAepB,GADfmB,EAAUxH,EAAO,GACoB0H,EAC9BA,EAAYrB,GAAWrG,IAC9BwH,EAAUxH,EAAO,EACjByH,EAAeC,EAAYrB,GAAWrG,KAEtCwH,EAAUxH,EACVyH,EAAeC,GAGZ,CACH1H,KAAMwH,EACNE,UAAWD,EAEnB,CAEA,SAASE,GAAWxM,EAAK8L,EAAKC,GAC1B,IAEIU,EACAJ,EAHAK,EAAab,GAAgB7L,EAAI6E,OAAQiH,EAAKC,GAC9CI,EAAOt9D,KAAKK,OAAO8wD,EAAIuM,YAAcG,EAAa,GAAK,GAAK,EAehE,OAXIP,EAAO,EAEPM,EAAUN,EAAOQ,GADjBN,EAAUrM,EAAI6E,OAAS,EACeiH,EAAKC,GACpCI,EAAOQ,GAAY3M,EAAI6E,OAAQiH,EAAKC,IAC3CU,EAAUN,EAAOQ,GAAY3M,EAAI6E,OAAQiH,EAAKC,GAC9CM,EAAUrM,EAAI6E,OAAS,IAEvBwH,EAAUrM,EAAI6E,OACd4H,EAAUN,GAGP,CACHA,KAAMM,EACN5H,KAAMwH,EAEd,CAEA,SAASM,GAAY9H,EAAMiH,EAAKC,GAC5B,IAAIW,EAAab,GAAgBhH,EAAMiH,EAAKC,GACxCa,EAAiBf,GAAgBhH,EAAO,EAAGiH,EAAKC,GACpD,OAAQb,GAAWrG,GAAQ6H,EAAaE,GAAkB,CAC9D,CAmCA,SAASC,GAAW7M,GAChB,OAAOwM,GAAWxM,EAAKl6D,KAAKgnE,MAAMhB,IAAKhmE,KAAKgnE,MAAMf,KAAKI,IAC3D,CAjCAtL,EAAe,IAAK,CAAC,KAAM,GAAI,KAAM,QACrCA,EAAe,IAAK,CAAC,KAAM,GAAI,KAAM,WAIrC+C,GAAa,OAAQ,KACrBA,GAAa,UAAW,KAIxBW,GAAgB,OAAQ,GACxBA,GAAgB,UAAW,GAI3BwC,GAAc,IAAKZ,IACnBY,GAAc,KAAMZ,GAAWJ,IAC/BgB,GAAc,IAAKZ,IACnBY,GAAc,KAAMZ,GAAWJ,IAE/B+B,GACI,CAAC,IAAK,KAAM,IAAK,OACjB,SAAUjO,EAAOsS,EAAMpO,EAAQ+C,GAC3BqL,EAAKrL,EAAMniD,OAAO,EAAG,IAAMomD,GAAMlL,EACrC,IAWJ,IAAIkT,GAAoB,CACpBjB,IAAK,EACLC,IAAK,GAGT,SAASiB,KACL,OAAOlnE,KAAKgnE,MAAMhB,GACtB,CAEA,SAASmB,KACL,OAAOnnE,KAAKgnE,MAAMf,GACtB,CAIA,SAASmB,GAAWrT,GAChB,IAAIsS,EAAOrmE,KAAKo7D,aAAaiL,KAAKrmE,MAClC,OAAgB,MAAT+zD,EAAgBsS,EAAOrmE,KAAKgmC,IAAqB,GAAhB+tB,EAAQsS,GAAW,IAC/D,CAEA,SAASgB,GAActT,GACnB,IAAIsS,EAAOK,GAAW1mE,KAAM,EAAG,GAAGqmE,KAClC,OAAgB,MAATtS,EAAgBsS,EAAOrmE,KAAKgmC,IAAqB,GAAhB+tB,EAAQsS,GAAW,IAC/D,CA+DA,SAASiB,GAAavT,EAAOc,GACzB,MAAqB,kBAAVd,EACAA,EAGN54C,MAAM44C,GAKU,kBADrBA,EAAQc,EAAO0S,cAAcxT,IAElBA,EAGJ,KARIv7C,SAASu7C,EAAO,GAS/B,CAEA,SAASyT,GAAgBzT,EAAOc,GAC5B,MAAqB,kBAAVd,EACAc,EAAO0S,cAAcxT,GAAS,GAAK,EAEvC54C,MAAM44C,GAAS,KAAOA,CACjC,CAGA,SAAS0T,GAAcC,EAAI1mE,GACvB,OAAO0mE,EAAGpkE,MAAMtC,EAAG,GAAGmC,OAAOukE,EAAGpkE,MAAM,EAAGtC,GAC7C,CAtFA+5D,EAAe,IAAK,EAAG,KAAM,OAE7BA,EAAe,KAAM,EAAG,GAAG,SAAUnG,GACjC,OAAO50D,KAAKo7D,aAAauM,YAAY3nE,KAAM40D,EAC/C,IAEAmG,EAAe,MAAO,EAAG,GAAG,SAAUnG,GAClC,OAAO50D,KAAKo7D,aAAawM,cAAc5nE,KAAM40D,EACjD,IAEAmG,EAAe,OAAQ,EAAG,GAAG,SAAUnG,GACnC,OAAO50D,KAAKo7D,aAAayM,SAAS7nE,KAAM40D,EAC5C,IAEAmG,EAAe,IAAK,EAAG,EAAG,WAC1BA,EAAe,IAAK,EAAG,EAAG,cAI1B+C,GAAa,MAAO,KACpBA,GAAa,UAAW,KACxBA,GAAa,aAAc,KAG3BW,GAAgB,MAAO,IACvBA,GAAgB,UAAW,IAC3BA,GAAgB,aAAc,IAI9BwC,GAAc,IAAKZ,IACnBY,GAAc,IAAKZ,IACnBY,GAAc,IAAKZ,IACnBY,GAAc,MAAM,SAAUG,EAAUvM,GACpC,OAAOA,EAAOiT,iBAAiB1G,EACnC,IACAH,GAAc,OAAO,SAAUG,EAAUvM,GACrC,OAAOA,EAAOkT,mBAAmB3G,EACrC,IACAH,GAAc,QAAQ,SAAUG,EAAUvM,GACtC,OAAOA,EAAOmT,cAAc5G,EAChC,IAEAY,GAAkB,CAAC,KAAM,MAAO,SAAS,SAAUjO,EAAOsS,EAAMpO,EAAQ+C,GACpE,IAAIsL,EAAUrO,EAAOF,QAAQwP,cAAcxT,EAAOiH,EAAO/C,EAAOtB,SAEjD,MAAX2P,EACAD,EAAKh4D,EAAIi4D,EAETrQ,EAAgBgC,GAAQvB,eAAiB3C,CAEjD,IAEAiO,GAAkB,CAAC,IAAK,IAAK,MAAM,SAAUjO,EAAOsS,EAAMpO,EAAQ+C,GAC9DqL,EAAKrL,GAASiE,GAAMlL,EACxB,IAiCA,IAAIkU,GACI,2DAA2D54D,MAAM,KACrE64D,GAA6B,8BAA8B74D,MAAM,KACjE84D,GAA2B,uBAAuB94D,MAAM,KACxD+4D,GAAuBpH,GACvBqH,GAA4BrH,GAC5BsH,GAA0BtH,GAE9B,SAASuH,GAAer6D,EAAG0mD,GACvB,IAAIiT,EAAW/T,EAAQ9zD,KAAKwoE,WACtBxoE,KAAKwoE,UACLxoE,KAAKwoE,UACDt6D,IAAW,IAANA,GAAclO,KAAKwoE,UAAU9E,SAAS/6D,KAAKisD,GAC1C,SACA,cAEhB,OAAa,IAAN1mD,EACDu5D,GAAcI,EAAU7nE,KAAKgnE,MAAMhB,KACnC93D,EACA25D,EAAS35D,EAAEu6D,OACXZ,CACV,CAEA,SAASa,GAAoBx6D,GACzB,OAAa,IAANA,EACDu5D,GAAcznE,KAAK2oE,eAAgB3oE,KAAKgnE,MAAMhB,KAC9C93D,EACAlO,KAAK2oE,eAAez6D,EAAEu6D,OACtBzoE,KAAK2oE,cACf,CAEA,SAASC,GAAkB16D,GACvB,OAAa,IAANA,EACDu5D,GAAcznE,KAAK6oE,aAAc7oE,KAAKgnE,MAAMhB,KAC5C93D,EACAlO,KAAK6oE,aAAa36D,EAAEu6D,OACpBzoE,KAAK6oE,YACf,CAEA,SAASC,GAAoBC,EAAanU,EAAQE,GAC9C,IAAIz0D,EACA0jE,EACA7J,EACA8J,EAAM+E,EAAY9E,oBACtB,IAAKjkE,KAAKgpE,eAKN,IAJAhpE,KAAKgpE,eAAiB,GACtBhpE,KAAKipE,oBAAsB,GAC3BjpE,KAAKkpE,kBAAoB,GAEpB7oE,EAAI,EAAGA,EAAI,IAAKA,EACjB65D,EAAMvF,EAAU,CAAC,IAAM,IAAI8T,IAAIpoE,GAC/BL,KAAKkpE,kBAAkB7oE,GAAKL,KAAK2nE,YAC7BzN,EACA,IACF+J,oBACFjkE,KAAKipE,oBAAoB5oE,GAAKL,KAAK4nE,cAC/B1N,EACA,IACF+J,oBACFjkE,KAAKgpE,eAAe3oE,GAAKL,KAAK6nE,SAAS3N,EAAK,IAAI+J,oBAIxD,OAAInP,EACe,SAAXF,GAEe,KADfmP,EAAKpjE,GAAQf,KAAKI,KAAKgpE,eAAgBhF,IACpBD,EAAK,KACN,QAAXnP,GAEQ,KADfmP,EAAKpjE,GAAQf,KAAKI,KAAKipE,oBAAqBjF,IACzBD,EAAK,MAGT,KADfA,EAAKpjE,GAAQf,KAAKI,KAAKkpE,kBAAmBlF,IACvBD,EAAK,KAGb,SAAXnP,GAEY,KADZmP,EAAKpjE,GAAQf,KAAKI,KAAKgpE,eAAgBhF,MAK3B,KADZD,EAAKpjE,GAAQf,KAAKI,KAAKipE,oBAAqBjF,MAK7B,KADfD,EAAKpjE,GAAQf,KAAKI,KAAKkpE,kBAAmBlF,IAN/BD,EAOa,KACN,QAAXnP,GAEK,KADZmP,EAAKpjE,GAAQf,KAAKI,KAAKipE,oBAAqBjF,MAKhC,KADZD,EAAKpjE,GAAQf,KAAKI,KAAKgpE,eAAgBhF,MAKxB,KADfD,EAAKpjE,GAAQf,KAAKI,KAAKkpE,kBAAmBlF,IAN/BD,EAOa,MAGZ,KADZA,EAAKpjE,GAAQf,KAAKI,KAAKkpE,kBAAmBlF,MAK9B,KADZD,EAAKpjE,GAAQf,KAAKI,KAAKgpE,eAAgBhF,MAKxB,KADfD,EAAKpjE,GAAQf,KAAKI,KAAKipE,oBAAqBjF,IANjCD,EAOa,IAGpC,CAEA,SAASoF,GAAoBJ,EAAanU,EAAQE,GAC9C,IAAIz0D,EAAG65D,EAAKgH,EAEZ,GAAIlhE,KAAKopE,oBACL,OAAON,GAAoBlpE,KAAKI,KAAM+oE,EAAanU,EAAQE,GAU/D,IAPK90D,KAAKgpE,iBACNhpE,KAAKgpE,eAAiB,GACtBhpE,KAAKkpE,kBAAoB,GACzBlpE,KAAKipE,oBAAsB,GAC3BjpE,KAAKqpE,mBAAqB,IAGzBhpE,EAAI,EAAGA,EAAI,EAAGA,IAAK,CA6BpB,GA1BA65D,EAAMvF,EAAU,CAAC,IAAM,IAAI8T,IAAIpoE,GAC3By0D,IAAW90D,KAAKqpE,mBAAmBhpE,KACnCL,KAAKqpE,mBAAmBhpE,GAAK,IAAI84D,OAC7B,IAAMn5D,KAAK6nE,SAAS3N,EAAK,IAAIz8C,QAAQ,IAAK,QAAU,IACpD,KAEJzd,KAAKipE,oBAAoB5oE,GAAK,IAAI84D,OAC9B,IAAMn5D,KAAK4nE,cAAc1N,EAAK,IAAIz8C,QAAQ,IAAK,QAAU,IACzD,KAEJzd,KAAKkpE,kBAAkB7oE,GAAK,IAAI84D,OAC5B,IAAMn5D,KAAK2nE,YAAYzN,EAAK,IAAIz8C,QAAQ,IAAK,QAAU,IACvD,MAGHzd,KAAKgpE,eAAe3oE,KACrB6gE,EACI,IACAlhE,KAAK6nE,SAAS3N,EAAK,IACnB,KACAl6D,KAAK4nE,cAAc1N,EAAK,IACxB,KACAl6D,KAAK2nE,YAAYzN,EAAK,IAC1Bl6D,KAAKgpE,eAAe3oE,GAAK,IAAI84D,OAAO+H,EAAMzjD,QAAQ,IAAK,IAAK,MAI5Dq3C,GACW,SAAXF,GACA50D,KAAKqpE,mBAAmBhpE,GAAGsI,KAAKogE,GAEhC,OAAO1oE,EACJ,GACHy0D,GACW,QAAXF,GACA50D,KAAKipE,oBAAoB5oE,GAAGsI,KAAKogE,GAEjC,OAAO1oE,EACJ,GACHy0D,GACW,OAAXF,GACA50D,KAAKkpE,kBAAkB7oE,GAAGsI,KAAKogE,GAE/B,OAAO1oE,EACJ,IAAKy0D,GAAU90D,KAAKgpE,eAAe3oE,GAAGsI,KAAKogE,GAC9C,OAAO1oE,CAEf,CACJ,CAIA,SAASipE,GAAgBvV,GACrB,IAAK/zD,KAAKm2D,UACN,OAAgB,MAATpC,EAAgB/zD,KAAOg3D,IAElC,IAAIyR,EAAMzoE,KAAK63D,OAAS73D,KAAKw2D,GAAG2P,YAAcnmE,KAAKw2D,GAAG+S,SACtD,OAAa,MAATxV,GACAA,EAAQuT,GAAavT,EAAO/zD,KAAKo7D,cAC1Bp7D,KAAKgmC,IAAI+tB,EAAQ0U,EAAK,MAEtBA,CAEf,CAEA,SAASe,GAAsBzV,GAC3B,IAAK/zD,KAAKm2D,UACN,OAAgB,MAATpC,EAAgB/zD,KAAOg3D,IAElC,IAAIsP,GAAWtmE,KAAKyoE,MAAQ,EAAIzoE,KAAKo7D,aAAa4L,MAAMhB,KAAO,EAC/D,OAAgB,MAATjS,EAAgBuS,EAAUtmE,KAAKgmC,IAAI+tB,EAAQuS,EAAS,IAC/D,CAEA,SAASmD,GAAmB1V,GACxB,IAAK/zD,KAAKm2D,UACN,OAAgB,MAATpC,EAAgB/zD,KAAOg3D,IAOlC,GAAa,MAATjD,EAAe,CACf,IAAIuS,EAAUkB,GAAgBzT,EAAO/zD,KAAKo7D,cAC1C,OAAOp7D,KAAKyoE,IAAIzoE,KAAKyoE,MAAQ,EAAInC,EAAUA,EAAU,EACzD,CACI,OAAOtmE,KAAKyoE,OAAS,CAE7B,CAEA,SAAST,GAAc5G,GACnB,OAAIphE,KAAKopE,qBACAnV,EAAWj0D,KAAM,mBAClB0pE,GAAqB9pE,KAAKI,MAE1BohE,EACOphE,KAAK2pE,qBAEL3pE,KAAK4pE,iBAGX3V,EAAWj0D,KAAM,oBAClBA,KAAK4pE,eAAiBxB,IAEnBpoE,KAAK2pE,sBAAwBvI,EAC9BphE,KAAK2pE,qBACL3pE,KAAK4pE,eAEnB,CAEA,SAAS7B,GAAmB3G,GACxB,OAAIphE,KAAKopE,qBACAnV,EAAWj0D,KAAM,mBAClB0pE,GAAqB9pE,KAAKI,MAE1BohE,EACOphE,KAAK6pE,0BAEL7pE,KAAK8pE,sBAGX7V,EAAWj0D,KAAM,yBAClBA,KAAK8pE,oBAAsBzB,IAExBroE,KAAK6pE,2BAA6BzI,EACnCphE,KAAK6pE,0BACL7pE,KAAK8pE,oBAEnB,CAEA,SAAShC,GAAiB1G,GACtB,OAAIphE,KAAKopE,qBACAnV,EAAWj0D,KAAM,mBAClB0pE,GAAqB9pE,KAAKI,MAE1BohE,EACOphE,KAAK+pE,wBAEL/pE,KAAKgqE,oBAGX/V,EAAWj0D,KAAM,uBAClBA,KAAKgqE,kBAAoB1B,IAEtBtoE,KAAK+pE,yBAA2B3I,EACjCphE,KAAK+pE,wBACL/pE,KAAKgqE,kBAEnB,CAEA,SAASN,KACL,SAAS1E,EAAUxkE,EAAG0e,GAClB,OAAOA,EAAE3e,OAASC,EAAED,MACxB,CAEA,IAIIF,EACA65D,EACA+P,EACAC,EACAC,EARAC,EAAY,GACZnF,EAAc,GACdC,EAAa,GACbC,EAAc,GAMlB,IAAK9kE,EAAI,EAAGA,EAAI,EAAGA,IAEf65D,EAAMvF,EAAU,CAAC,IAAM,IAAI8T,IAAIpoE,GAC/B4pE,EAAO1I,GAAYvhE,KAAK2nE,YAAYzN,EAAK,KACzCgQ,EAAS3I,GAAYvhE,KAAK4nE,cAAc1N,EAAK,KAC7CiQ,EAAQ5I,GAAYvhE,KAAK6nE,SAAS3N,EAAK,KACvCkQ,EAAU1nE,KAAKunE,GACfhF,EAAYviE,KAAKwnE,GACjBhF,EAAWxiE,KAAKynE,GAChBhF,EAAYziE,KAAKunE,GACjB9E,EAAYziE,KAAKwnE,GACjB/E,EAAYziE,KAAKynE,GAIrBC,EAAUvL,KAAKmG,GACfC,EAAYpG,KAAKmG,GACjBE,EAAWrG,KAAKmG,GAChBG,EAAYtG,KAAKmG,GAEjBhlE,KAAK4pE,eAAiB,IAAIzQ,OAAO,KAAOgM,EAAYj0D,KAAK,KAAO,IAAK,KACrElR,KAAK8pE,oBAAsB9pE,KAAK4pE,eAChC5pE,KAAKgqE,kBAAoBhqE,KAAK4pE,eAE9B5pE,KAAK2pE,qBAAuB,IAAIxQ,OAC5B,KAAO+L,EAAWh0D,KAAK,KAAO,IAC9B,KAEJlR,KAAK6pE,0BAA4B,IAAI1Q,OACjC,KAAO8L,EAAY/zD,KAAK,KAAO,IAC/B,KAEJlR,KAAK+pE,wBAA0B,IAAI5Q,OAC/B,KAAOiR,EAAUl5D,KAAK,KAAO,IAC7B,IAER,CAIA,SAASm5D,KACL,OAAOrqE,KAAKsqE,QAAU,IAAM,EAChC,CAEA,SAASC,KACL,OAAOvqE,KAAKsqE,SAAW,EAC3B,CAgCA,SAASxU,GAASkF,EAAOwP,GACrBzP,EAAeC,EAAO,EAAG,GAAG,WACxB,OAAOh7D,KAAKo7D,aAAatF,SACrB91D,KAAKsqE,QACLtqE,KAAKyqE,UACLD,EAER,GACJ,CAcA,SAASE,GAActJ,EAAUvM,GAC7B,OAAOA,EAAO8V,cAClB,CA0DA,SAASC,GAAW7W,GAGhB,MAAgD,OAAxCA,EAAQ,IAAIxlC,cAAcuX,OAAO,EAC7C,CApHAi1B,EAAe,IAAK,CAAC,KAAM,GAAI,EAAG,QAClCA,EAAe,IAAK,CAAC,KAAM,GAAI,EAAGsP,IAClCtP,EAAe,IAAK,CAAC,KAAM,GAAI,EAAGwP,IAElCxP,EAAe,MAAO,EAAG,GAAG,WACxB,MAAO,GAAKsP,GAAQ5pE,MAAMT,MAAQq6D,EAASr6D,KAAKyqE,UAAW,EAC/D,IAEA1P,EAAe,QAAS,EAAG,GAAG,WAC1B,MACI,GACAsP,GAAQ5pE,MAAMT,MACdq6D,EAASr6D,KAAKyqE,UAAW,GACzBpQ,EAASr6D,KAAK6qE,UAAW,EAEjC,IAEA9P,EAAe,MAAO,EAAG,GAAG,WACxB,MAAO,GAAK/6D,KAAKsqE,QAAUjQ,EAASr6D,KAAKyqE,UAAW,EACxD,IAEA1P,EAAe,QAAS,EAAG,GAAG,WAC1B,MACI,GACA/6D,KAAKsqE,QACLjQ,EAASr6D,KAAKyqE,UAAW,GACzBpQ,EAASr6D,KAAK6qE,UAAW,EAEjC,IAYA/U,GAAS,KAAK,GACdA,GAAS,KAAK,GAIdgI,GAAa,OAAQ,KAGrBW,GAAgB,OAAQ,IAQxBwC,GAAc,IAAKyJ,IACnBzJ,GAAc,IAAKyJ,IACnBzJ,GAAc,IAAKZ,IACnBY,GAAc,IAAKZ,IACnBY,GAAc,IAAKZ,IACnBY,GAAc,KAAMZ,GAAWJ,IAC/BgB,GAAc,KAAMZ,GAAWJ,IAC/BgB,GAAc,KAAMZ,GAAWJ,IAE/BgB,GAAc,MAAOX,IACrBW,GAAc,QAASV,IACvBU,GAAc,MAAOX,IACrBW,GAAc,QAASV,IAEvBuB,GAAc,CAAC,IAAK,MAAOS,IAC3BT,GAAc,CAAC,IAAK,OAAO,SAAU/N,EAAOwH,EAAOtD,GAC/C,IAAI6S,EAAS7L,GAAMlL,GACnBwH,EAAMgH,IAAmB,KAAXuI,EAAgB,EAAIA,CACtC,IACAhJ,GAAc,CAAC,IAAK,MAAM,SAAU/N,EAAOwH,EAAOtD,GAC9CA,EAAO8S,MAAQ9S,EAAOF,QAAQiT,KAAKjX,GACnCkE,EAAOgT,UAAYlX,CACvB,IACA+N,GAAc,CAAC,IAAK,OAAO,SAAU/N,EAAOwH,EAAOtD,GAC/CsD,EAAMgH,IAAQtD,GAAMlL,GACpBkC,EAAgBgC,GAAQpB,SAAU,CACtC,IACAiL,GAAc,OAAO,SAAU/N,EAAOwH,EAAOtD,GACzC,IAAI7oC,EAAM2kC,EAAMxzD,OAAS,EACzBg7D,EAAMgH,IAAQtD,GAAMlL,EAAMl7C,OAAO,EAAGuW,IACpCmsC,EAAMiH,IAAUvD,GAAMlL,EAAMl7C,OAAOuW,IACnC6mC,EAAgBgC,GAAQpB,SAAU,CACtC,IACAiL,GAAc,SAAS,SAAU/N,EAAOwH,EAAOtD,GAC3C,IAAIiT,EAAOnX,EAAMxzD,OAAS,EACtB4qE,EAAOpX,EAAMxzD,OAAS,EAC1Bg7D,EAAMgH,IAAQtD,GAAMlL,EAAMl7C,OAAO,EAAGqyD,IACpC3P,EAAMiH,IAAUvD,GAAMlL,EAAMl7C,OAAOqyD,EAAM,IACzC3P,EAAMkH,IAAUxD,GAAMlL,EAAMl7C,OAAOsyD,IACnClV,EAAgBgC,GAAQpB,SAAU,CACtC,IACAiL,GAAc,OAAO,SAAU/N,EAAOwH,EAAOtD,GACzC,IAAI7oC,EAAM2kC,EAAMxzD,OAAS,EACzBg7D,EAAMgH,IAAQtD,GAAMlL,EAAMl7C,OAAO,EAAGuW,IACpCmsC,EAAMiH,IAAUvD,GAAMlL,EAAMl7C,OAAOuW,GACvC,IACA0yC,GAAc,SAAS,SAAU/N,EAAOwH,EAAOtD,GAC3C,IAAIiT,EAAOnX,EAAMxzD,OAAS,EACtB4qE,EAAOpX,EAAMxzD,OAAS,EAC1Bg7D,EAAMgH,IAAQtD,GAAMlL,EAAMl7C,OAAO,EAAGqyD,IACpC3P,EAAMiH,IAAUvD,GAAMlL,EAAMl7C,OAAOqyD,EAAM,IACzC3P,EAAMkH,IAAUxD,GAAMlL,EAAMl7C,OAAOsyD,GACvC,IAUA,IAAIC,GAA6B,gBAK7BC,GAAahM,GAAW,SAAS,GAErC,SAASiM,GAAehB,EAAOG,EAASc,GACpC,OAAIjB,EAAQ,GACDiB,EAAU,KAAO,KAEjBA,EAAU,KAAO,IAEhC,CAEA,IAuBIC,GAvBAC,GAAa,CACbxR,SAAUP,EACVkC,eAAgBC,EAChBH,YAAaa,EACbrB,QAASuB,EACTiP,uBAAwBhP,EACxBY,aAAcV,EAEdmG,OAAQI,GACRL,YAAaM,GAEbiD,KAAMY,GAENY,SAAUI,GACVN,YAAaQ,GACbP,cAAeM,GAEfyD,cAAeP,IAIfQ,GAAU,CAAC,EACXC,GAAiB,CAAC,EAGtB,SAASC,GAAaC,EAAMC,GACxB,IAAI3rE,EACA4rE,EAAOljE,KAAKS,IAAIuiE,EAAKxrE,OAAQyrE,EAAKzrE,QACtC,IAAKF,EAAI,EAAGA,EAAI4rE,EAAM5rE,GAAK,EACvB,GAAI0rE,EAAK1rE,KAAO2rE,EAAK3rE,GACjB,OAAOA,EAGf,OAAO4rE,CACX,CAEA,SAASC,GAAgB79B,GACrB,OAAOA,EAAMA,EAAI9f,cAAc9Q,QAAQ,IAAK,KAAO4wB,CACvD,CAKA,SAAS89B,GAAaC,GAOlB,IANA,IACI1oC,EACA9hC,EACAizD,EACAxlD,EAJAhP,EAAI,EAMDA,EAAI+rE,EAAM7rE,QAAQ,CAKrB,IAHAmjC,GADAr0B,EAAQ68D,GAAgBE,EAAM/rE,IAAIgP,MAAM,MAC9B9O,OAEVqB,GADAA,EAAOsqE,GAAgBE,EAAM/rE,EAAI,KACnBuB,EAAKyN,MAAM,KAAO,KACzBq0B,EAAI,GAAG,CAEV,GADAmxB,EAASwX,GAAWh9D,EAAM/L,MAAM,EAAGogC,GAAGxyB,KAAK,MAEvC,OAAO2jD,EAEX,GACIjzD,GACAA,EAAKrB,QAAUmjC,GACfooC,GAAaz8D,EAAOzN,IAAS8hC,EAAI,EAGjC,MAEJA,GACJ,CACArjC,GACJ,CACA,OAAOmrE,EACX,CAEA,SAASc,GAAiB/2D,GAEtB,OAAoC,MAA7BA,EAAKk3C,MAAM,cACtB,CAEA,SAAS4f,GAAW92D,GAChB,IAAIg3D,EAAY,KAGhB,QACsB3V,IAAlBgV,GAAQr2D,IAER/P,GACAA,EAAOL,SACPmnE,GAAiB/2D,GAEjB,IACIg3D,EAAYf,GAAagB,MAEzBC,OAAAA,WAAAA,IAAAA,EAAAA,IAAAA,MAAAA,kCAAAA,MAAAA,EAAAA,KAAAA,mBAAAA,CAAAA,CAAAA,IACAC,GAAmBH,EACvB,CAAE,MAAOntE,GAGLwsE,GAAQr2D,GAAQ,IACpB,CAEJ,OAAOq2D,GAAQr2D,EACnB,CAKA,SAASm3D,GAAmBr+B,EAAK8B,GAC7B,IAAIviC,EAqBJ,OApBIygC,KAEIzgC,EADAwmD,EAAYjkB,GACLw8B,GAAUt+B,GAEVu+B,GAAav+B,EAAK8B,IAKzBq7B,GAAe59D,EAEQ,qBAAZomB,SAA2BA,QAAQC,MAE1CD,QAAQC,KACJ,UAAYoa,EAAM,2CAM3Bm9B,GAAagB,KACxB,CAEA,SAASI,GAAar3D,EAAM0iD,GACxB,GAAe,OAAXA,EAAiB,CACjB,IAAIpD,EACA0E,EAAekS,GAEnB,GADAxT,EAAO4U,KAAOt3D,EACO,MAAjBq2D,GAAQr2D,GACRujD,EACI,uBACA,2OAKJS,EAAeqS,GAAQr2D,GAAM0jD,aAC1B,GAA2B,MAAvBhB,EAAO6U,aACd,GAAoC,MAAhClB,GAAQ3T,EAAO6U,cACfvT,EAAeqS,GAAQ3T,EAAO6U,cAAc7T,YACzC,CAEH,GAAc,OADdpE,EAASwX,GAAWpU,EAAO6U,eAWvB,OAPKjB,GAAe5T,EAAO6U,gBACvBjB,GAAe5T,EAAO6U,cAAgB,IAE1CjB,GAAe5T,EAAO6U,cAAcpqE,KAAK,CACrC6S,KAAMA,EACN0iD,OAAQA,IAEL,KATPsB,EAAe1E,EAAOoE,OAW9B,CAeJ,OAbA2S,GAAQr2D,GAAQ,IAAIkkD,EAAOH,EAAaC,EAActB,IAElD4T,GAAet2D,IACfs2D,GAAet2D,GAAM4d,SAAQ,SAAU7T,GACnCstD,GAAattD,EAAE/J,KAAM+J,EAAE24C,OAC3B,IAMJyU,GAAmBn3D,GAEZq2D,GAAQr2D,EACnB,CAGI,cADOq2D,GAAQr2D,GACR,IAEf,CAEA,SAASw3D,GAAax3D,EAAM0iD,GACxB,GAAc,MAAVA,EAAgB,CAChB,IAAIpD,EACAmY,EACAzT,EAAekS,GAEE,MAAjBG,GAAQr2D,IAA+C,MAA9Bq2D,GAAQr2D,GAAMu3D,aAEvClB,GAAQr2D,GAAM5Q,IAAI20D,EAAasS,GAAQr2D,GAAM0jD,QAAShB,KAIrC,OADjB+U,EAAYX,GAAW92D,MAEnBgkD,EAAeyT,EAAU/T,SAE7BhB,EAASqB,EAAaC,EAActB,GACnB,MAAb+U,IAIA/U,EAAO4U,KAAOt3D,IAElBs/C,EAAS,IAAI4E,EAAOxB,IACb6U,aAAelB,GAAQr2D,GAC9Bq2D,GAAQr2D,GAAQs/C,GAIpB6X,GAAmBn3D,EACvB,MAEyB,MAAjBq2D,GAAQr2D,KAC0B,MAA9Bq2D,GAAQr2D,GAAMu3D,cACdlB,GAAQr2D,GAAQq2D,GAAQr2D,GAAMu3D,aAC1Bv3D,IAASm3D,MACTA,GAAmBn3D,IAEC,MAAjBq2D,GAAQr2D,WACRq2D,GAAQr2D,IAI3B,OAAOq2D,GAAQr2D,EACnB,CAGA,SAASo3D,GAAUt+B,GACf,IAAIwmB,EAMJ,GAJIxmB,GAAOA,EAAI0pB,SAAW1pB,EAAI0pB,QAAQyU,QAClCn+B,EAAMA,EAAI0pB,QAAQyU,QAGjBn+B,EACD,OAAOm9B,GAGX,IAAK1X,EAAQzlB,GAAM,CAGf,GADAwmB,EAASwX,GAAWh+B,GAEhB,OAAOwmB,EAEXxmB,EAAM,CAACA,EACX,CAEA,OAAO89B,GAAa99B,EACxB,CAEA,SAAS4+B,KACL,OAAOvb,EAAKka,GAChB,CAEA,SAASsB,GAAch/D,GACnB,IAAI+pC,EACAz3C,EAAI0N,EAAEi0D,GAuCV,OArCI3hE,IAAsC,IAAjCy1D,EAAgB/nD,GAAG+pC,WACxBA,EACIz3C,EAAE6hE,IAAS,GAAK7hE,EAAE6hE,IAAS,GACrBA,GACA7hE,EAAE8hE,IAAQ,GAAK9hE,EAAE8hE,IAAQ5C,GAAYl/D,EAAE4hE,IAAO5hE,EAAE6hE,KAChDC,GACA9hE,EAAE+hE,IAAQ,GACV/hE,EAAE+hE,IAAQ,IACG,KAAZ/hE,EAAE+hE,MACgB,IAAd/hE,EAAEgiE,KACe,IAAdhiE,EAAEiiE,KACiB,IAAnBjiE,EAAEkiE,KACVH,GACA/hE,EAAEgiE,IAAU,GAAKhiE,EAAEgiE,IAAU,GAC7BA,GACAhiE,EAAEiiE,IAAU,GAAKjiE,EAAEiiE,IAAU,GAC7BA,GACAjiE,EAAEkiE,IAAe,GAAKliE,EAAEkiE,IAAe,IACvCA,IACC,EAGPzM,EAAgB/nD,GAAGi/D,qBAClBl1B,EAAWmqB,IAAQnqB,EAAWqqB,MAE/BrqB,EAAWqqB,IAEXrM,EAAgB/nD,GAAGk/D,iBAAgC,IAAdn1B,IACrCA,EAAW0qB,IAEX1M,EAAgB/nD,GAAGm/D,mBAAkC,IAAdp1B,IACvCA,EAAW2qB,IAGf3M,EAAgB/nD,GAAG+pC,SAAWA,GAG3B/pC,CACX,CAIA,IAAIo/D,GACI,iJACJC,GACI,6IACJC,GAAU,wBACVC,GAAW,CACP,CAAC,eAAgB,uBACjB,CAAC,aAAc,mBACf,CAAC,eAAgB,kBACjB,CAAC,aAAc,eAAe,GAC9B,CAAC,WAAY,eACb,CAAC,UAAW,cAAc,GAC1B,CAAC,aAAc,cACf,CAAC,WAAY,SACb,CAAC,aAAc,eACf,CAAC,YAAa,eAAe,GAC7B,CAAC,UAAW,SACZ,CAAC,SAAU,SAAS,GACpB,CAAC,OAAQ,SAAS,IAGtBC,GAAW,CACP,CAAC,gBAAiB,uBAClB,CAAC,gBAAiB,sBAClB,CAAC,WAAY,kBACb,CAAC,QAAS,aACV,CAAC,cAAe,qBAChB,CAAC,cAAe,oBAChB,CAAC,SAAU,gBACX,CAAC,OAAQ,YACT,CAAC,KAAM,SAEXC,GAAkB,qBAElB5X,GACI,0LACJ6X,GAAa,CACTC,GAAI,EACJC,IAAK,EACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,KAIb,SAASC,GAActW,GACnB,IAAI53D,EACAuD,EAGA4qE,EACAC,EACAC,EACAC,EALAnR,EAASvF,EAAOR,GAChBhL,EAAQ6gB,GAAiBsB,KAAKpR,IAAW+P,GAAcqB,KAAKpR,GAK5DqR,EAAcpB,GAASltE,OACvBuuE,EAAcpB,GAASntE,OAE3B,GAAIksD,EAAO,CAEP,IADAwJ,EAAgBgC,GAAQtC,KAAM,EACzBt1D,EAAI,EAAGuD,EAAIirE,EAAaxuE,EAAIuD,EAAGvD,IAChC,GAAIotE,GAASptE,GAAG,GAAGuuE,KAAKniB,EAAM,IAAK,CAC/BgiB,EAAahB,GAASptE,GAAG,GACzBmuE,GAA+B,IAAnBf,GAASptE,GAAG,GACxB,KACJ,CAEJ,GAAkB,MAAdouE,EAEA,YADAxW,EAAO7B,UAAW,GAGtB,GAAI3J,EAAM,GAAI,CACV,IAAKpsD,EAAI,EAAGuD,EAAIkrE,EAAazuE,EAAIuD,EAAGvD,IAChC,GAAIqtE,GAASrtE,GAAG,GAAGuuE,KAAKniB,EAAM,IAAK,CAE/BiiB,GAAcjiB,EAAM,IAAM,KAAOihB,GAASrtE,GAAG,GAC7C,KACJ,CAEJ,GAAkB,MAAdquE,EAEA,YADAzW,EAAO7B,UAAW,EAG1B,CACA,IAAKoY,GAA2B,MAAdE,EAEd,YADAzW,EAAO7B,UAAW,GAGtB,GAAI3J,EAAM,GAAI,CACV,IAAI+gB,GAAQoB,KAAKniB,EAAM,IAInB,YADAwL,EAAO7B,UAAW,GAFlBuY,EAAW,GAKnB,CACA1W,EAAOP,GAAK+W,GAAcC,GAAc,KAAOC,GAAY,IAC3DI,GAA0B9W,EAC9B,MACIA,EAAO7B,UAAW,CAE1B,CAEA,SAAS4Y,GACLC,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAS,CACTC,GAAeP,GACf7L,GAAyBziE,QAAQuuE,GACjC12D,SAAS22D,EAAQ,IACjB32D,SAAS42D,EAAS,IAClB52D,SAAS62D,EAAW,KAOxB,OAJIC,GACAC,EAAO7sE,KAAK8V,SAAS82D,EAAW,KAG7BC,CACX,CAEA,SAASC,GAAeP,GACpB,IAAIlQ,EAAOvmD,SAASy2D,EAAS,IAC7B,OAAIlQ,GAAQ,GACD,IAAOA,EACPA,GAAQ,IACR,KAAOA,EAEXA,CACX,CAEA,SAAS0Q,GAAkB1uE,GAEvB,OAAOA,EACF0c,QAAQ,qBAAsB,KAC9BA,QAAQ,WAAY,KACpBA,QAAQ,SAAU,IAClBA,QAAQ,SAAU,GAC3B,CAEA,SAASiyD,GAAaC,EAAYC,EAAa3X,GAC3C,OAAI0X,GAEsBzH,GAA2BvnE,QAAQgvE,KACrC,IAAIn9C,KAChBo9C,EAAY,GACZA,EAAY,GACZA,EAAY,IACdrG,WAEFtT,EAAgBgC,GAAQjC,iBAAkB,EAC1CiC,EAAO7B,UAAW,GACX,EAInB,CAEA,SAASyZ,GAAgBC,EAAWC,EAAgBC,GAChD,GAAIF,EACA,OAAOlC,GAAWkC,GACf,GAAIC,EAEP,OAAO,EAEP,IAAIE,EAAKz3D,SAASw3D,EAAW,IACzB9hE,EAAI+hE,EAAK,IAEb,OADSA,EAAK/hE,GAAK,IACR,GAAKA,CAExB,CAGA,SAASgiE,GAAkBjY,GACvB,IACIkY,EADA1jB,EAAQsJ,GAAQ6Y,KAAKa,GAAkBxX,EAAOR,KAElD,GAAIhL,EAAO,CASP,GARA0jB,EAAcnB,GACVviB,EAAM,GACNA,EAAM,GACNA,EAAM,GACNA,EAAM,GACNA,EAAM,GACNA,EAAM,KAELijB,GAAajjB,EAAM,GAAI0jB,EAAalY,GACrC,OAGJA,EAAOkK,GAAKgO,EACZlY,EAAOL,KAAOiY,GAAgBpjB,EAAM,GAAIA,EAAM,GAAIA,EAAM,KAExDwL,EAAOzB,GAAKmP,GAAcllE,MAAM,KAAMw3D,EAAOkK,IAC7ClK,EAAOzB,GAAG4Z,cAAcnY,EAAOzB,GAAG6Z,gBAAkBpY,EAAOL,MAE3D3B,EAAgBgC,GAAQlC,SAAU,CACtC,MACIkC,EAAO7B,UAAW,CAE1B,CAGA,SAASka,GAAiBrY,GACtB,IAAIuJ,EAAUmM,GAAgBiB,KAAK3W,EAAOR,IAC1B,OAAZ+J,GAKJ+M,GAActW,IACU,IAApBA,EAAO7B,kBACA6B,EAAO7B,SAKlB8Z,GAAkBjY,IACM,IAApBA,EAAO7B,kBACA6B,EAAO7B,SAKd6B,EAAOtB,QACPsB,EAAO7B,UAAW,EAGlBzC,EAAM4c,wBAAwBtY,MAtB9BA,EAAOzB,GAAK,IAAIhkC,MAAMgvC,EAAQ,GAwBtC,CAYA,SAASgP,GAAShwE,EAAG0e,EAAGjR,GACpB,OAAS,MAALzN,EACOA,EAEF,MAAL0e,EACOA,EAEJjR,CACX,CAEA,SAASwiE,GAAiBxY,GAEtB,IAAIyY,EAAW,IAAIl+C,KAAKmhC,EAAMlhC,OAC9B,OAAIwlC,EAAO0Y,QACA,CACHD,EAAS7K,iBACT6K,EAASE,cACTF,EAASG,cAGV,CAACH,EAASjL,cAAeiL,EAASI,WAAYJ,EAASK,UAClE,CAMA,SAASC,GAAgB/Y,GACrB,IAAI53D,EACAo/D,EAEAwR,EACAC,EACAC,EAHApd,EAAQ,GAKZ,IAAIkE,EAAOzB,GAAX,CAgCA,IA5BAya,EAAcR,GAAiBxY,GAG3BA,EAAOgK,IAAyB,MAAnBhK,EAAOkK,GAAGG,KAAqC,MAApBrK,EAAOkK,GAAGE,KAClD+O,GAAsBnZ,GAID,MAArBA,EAAOoZ,aACPF,EAAYX,GAASvY,EAAOkK,GAAGC,IAAO6O,EAAY7O,MAG9CnK,EAAOoZ,WAAajM,GAAW+L,IACT,IAAtBlZ,EAAOoZ,cAEPpb,EAAgBgC,GAAQkV,oBAAqB,GAGjD1N,EAAOkG,GAAcwL,EAAW,EAAGlZ,EAAOoZ,YAC1CpZ,EAAOkK,GAAGE,IAAS5C,EAAKmR,cACxB3Y,EAAOkK,GAAGG,IAAQ7C,EAAKoR,cAQtBxwE,EAAI,EAAGA,EAAI,GAAqB,MAAhB43D,EAAOkK,GAAG9hE,KAAcA,EACzC43D,EAAOkK,GAAG9hE,GAAK0zD,EAAM1zD,GAAK4wE,EAAY5wE,GAI1C,KAAOA,EAAI,EAAGA,IACV43D,EAAOkK,GAAG9hE,GAAK0zD,EAAM1zD,GACD,MAAhB43D,EAAOkK,GAAG9hE,GAAoB,IAANA,EAAU,EAAI,EAAK43D,EAAOkK,GAAG9hE,GAKrC,KAApB43D,EAAOkK,GAAGI,KACY,IAAtBtK,EAAOkK,GAAGK,KACY,IAAtBvK,EAAOkK,GAAGM,KACiB,IAA3BxK,EAAOkK,GAAGO,MAEVzK,EAAOqZ,UAAW,EAClBrZ,EAAOkK,GAAGI,IAAQ,GAGtBtK,EAAOzB,IAAMyB,EAAO0Y,QAAUhL,GAAgBH,IAAY/kE,MACtD,KACAszD,GAEJmd,EAAkBjZ,EAAO0Y,QACnB1Y,EAAOzB,GAAG2P,YACVlO,EAAOzB,GAAG+S,SAIG,MAAftR,EAAOL,MACPK,EAAOzB,GAAG4Z,cAAcnY,EAAOzB,GAAG6Z,gBAAkBpY,EAAOL,MAG3DK,EAAOqZ,WACPrZ,EAAOkK,GAAGI,IAAQ,IAKlBtK,EAAOgK,IACgB,qBAAhBhK,EAAOgK,GAAG5zD,GACjB4pD,EAAOgK,GAAG5zD,IAAM6iE,IAEhBjb,EAAgBgC,GAAQjC,iBAAkB,EA3E9C,CA6EJ,CAEA,SAASob,GAAsBnZ,GAC3B,IAAIp4C,EAAG0xD,EAAUlL,EAAMC,EAASN,EAAKC,EAAKuL,EAAMC,EAAiBC,EAGrD,OADZ7xD,EAAIo4C,EAAOgK,IACL0P,IAAqB,MAAP9xD,EAAEspB,GAAoB,MAAPtpB,EAAEL,GACjCwmD,EAAM,EACNC,EAAM,EAMNsL,EAAWf,GACP3wD,EAAE8xD,GACF1Z,EAAOkK,GAAGC,IACVsE,GAAWkL,KAAe,EAAG,GAAG7S,MAEpCsH,EAAOmK,GAAS3wD,EAAEspB,EAAG,KACrBm9B,EAAUkK,GAAS3wD,EAAEL,EAAG,IACV,GAAK8mD,EAAU,KACzBmL,GAAkB,KAGtBzL,EAAM/N,EAAOF,QAAQiP,MAAMhB,IAC3BC,EAAMhO,EAAOF,QAAQiP,MAAMf,IAE3ByL,EAAUhL,GAAWkL,KAAe5L,EAAKC,GAEzCsL,EAAWf,GAAS3wD,EAAEgyD,GAAI5Z,EAAOkK,GAAGC,IAAOsP,EAAQ3S,MAGnDsH,EAAOmK,GAAS3wD,EAAEA,EAAG6xD,EAAQrL,MAElB,MAAPxmD,EAAExR,IAEFi4D,EAAUzmD,EAAExR,GACE,GAAKi4D,EAAU,KACzBmL,GAAkB,GAER,MAAP5xD,EAAEzgB,GAETknE,EAAUzmD,EAAEzgB,EAAI4mE,GACZnmD,EAAEzgB,EAAI,GAAKygB,EAAEzgB,EAAI,KACjBqyE,GAAkB,IAItBnL,EAAUN,GAGdK,EAAO,GAAKA,EAAOQ,GAAY0K,EAAUvL,EAAKC,GAC9ChQ,EAAgBgC,GAAQmV,gBAAiB,EACf,MAAnBqE,EACPxb,EAAgBgC,GAAQoV,kBAAmB,GAE3CmE,EAAOpL,GAAmBmL,EAAUlL,EAAMC,EAASN,EAAKC,GACxDhO,EAAOkK,GAAGC,IAAQoP,EAAKzS,KACvB9G,EAAOoZ,WAAaG,EAAK/K,UAEjC,CASA,SAASsI,GAA0B9W,GAE/B,GAAIA,EAAOP,KAAO/D,EAAMme,SAIxB,GAAI7Z,EAAOP,KAAO/D,EAAMoe,SAAxB,CAIA9Z,EAAOkK,GAAK,GACZlM,EAAgBgC,GAAQ/C,OAAQ,EAGhC,IACI70D,EACAuvE,EACA/N,EACA7G,EACAgX,EAGAnc,EACAkM,EATAvE,EAAS,GAAKvF,EAAOR,GAMrBwa,EAAezU,EAAOj9D,OACtB2xE,EAAyB,EAO7B,IADAnQ,GAFAF,EACIpG,EAAaxD,EAAOP,GAAIO,EAAOF,SAAStL,MAAMkO,IAAqB,IACrDp6D,OACbF,EAAI,EAAGA,EAAI0hE,EAAU1hE,IACtB26D,EAAQ6G,EAAOxhE,IACfuvE,GAAepS,EAAO/Q,MAAM4U,GAAsBrG,EAAO/C,KACrD,IAAI,OAEJ+Z,EAAUxU,EAAO3kD,OAAO,EAAG2kD,EAAO78D,QAAQivE,KAC9BrvE,OAAS,GACjB01D,EAAgBgC,GAAQ7C,YAAY1yD,KAAKsvE,GAE7CxU,EAASA,EAAOl6D,MACZk6D,EAAO78D,QAAQivE,GAAeA,EAAYrvE,QAE9C2xE,GAA0BtC,EAAYrvE,QAGtCu6D,EAAqBE,IACjB4U,EACA3Z,EAAgBgC,GAAQ/C,OAAQ,EAEhCe,EAAgBgC,GAAQ9C,aAAazyD,KAAKs4D,GAE9CkH,GAAwBlH,EAAO4U,EAAa3X,IACrCA,EAAOtB,UAAYiZ,GAC1B3Z,EAAgBgC,GAAQ9C,aAAazyD,KAAKs4D,GAKlD/E,EAAgBgC,GAAQ5C,cACpB4c,EAAeC,EACf1U,EAAOj9D,OAAS,GAChB01D,EAAgBgC,GAAQ7C,YAAY1yD,KAAK86D,GAKzCvF,EAAOkK,GAAGI,KAAS,KACiB,IAApCtM,EAAgBgC,GAAQpB,SACxBoB,EAAOkK,GAAGI,IAAQ,IAElBtM,EAAgBgC,GAAQpB,aAAUD,GAGtCX,EAAgBgC,GAAQrC,gBAAkBqC,EAAOkK,GAAG7+D,MAAM,GAC1D2yD,EAAgBgC,GAAQnC,SAAWmC,EAAOgT,UAE1ChT,EAAOkK,GAAGI,IAAQ4P,GACdla,EAAOF,QACPE,EAAOkK,GAAGI,IACVtK,EAAOgT,WAKC,QADZpV,EAAMI,EAAgBgC,GAAQpC,OAE1BoC,EAAOkK,GAAGC,IAAQnK,EAAOF,QAAQqa,gBAAgBvc,EAAKoC,EAAOkK,GAAGC,MAGpE4O,GAAgB/Y,GAChBiV,GAAcjV,EA9Ed,MAFIiY,GAAkBjY,QAJlBsW,GAActW,EAqFtB,CAEA,SAASka,GAAgBtd,EAAQwd,EAAMvc,GACnC,IAAIwc,EAEJ,OAAgB,MAAZxc,EAEOuc,EAEgB,MAAvBxd,EAAO0d,aACA1d,EAAO0d,aAAaF,EAAMvc,GACX,MAAfjB,EAAOmW,OAEdsH,EAAOzd,EAAOmW,KAAKlV,KACPuc,EAAO,KACfA,GAAQ,IAEPC,GAAiB,KAATD,IACTA,EAAO,GAEJA,GAGAA,CAEf,CAGA,SAASG,GAAyBva,GAC9B,IAAIwa,EACAC,EACAC,EACAtyE,EACAuyE,EACAC,EACAC,GAAoB,EACpBC,EAAa9a,EAAOP,GAAGn3D,OAE3B,GAAmB,IAAfwyE,EAGA,OAFA9c,EAAgBgC,GAAQxC,eAAgB,OACxCwC,EAAOzB,GAAK,IAAIhkC,KAAKwkC,MAIzB,IAAK32D,EAAI,EAAGA,EAAI0yE,EAAY1yE,IACxBuyE,EAAe,EACfC,GAAmB,EACnBJ,EAAapb,EAAW,CAAC,EAAGY,GACN,MAAlBA,EAAO0Y,UACP8B,EAAW9B,QAAU1Y,EAAO0Y,SAEhC8B,EAAW/a,GAAKO,EAAOP,GAAGr3D,GAC1B0uE,GAA0B0D,GAEtBtc,EAAQsc,KACRI,GAAmB,GAIvBD,GAAgB3c,EAAgBwc,GAAYpd,cAG5Cud,GAAkE,GAAlD3c,EAAgBwc,GAAYtd,aAAa50D,OAEzD01D,EAAgBwc,GAAYO,MAAQJ,EAE/BE,EAaGF,EAAeD,IACfA,EAAcC,EACdF,EAAaD,IAbE,MAAfE,GACAC,EAAeD,GACfE,KAEAF,EAAcC,EACdF,EAAaD,EACTI,IACAC,GAAoB,IAWpCre,EAAOwD,EAAQya,GAAcD,EACjC,CAEA,SAASQ,GAAiBhb,GACtB,IAAIA,EAAOzB,GAAX,CAIA,IAAIn2D,EAAI+9D,GAAqBnG,EAAOR,IAChCyb,OAAsBtc,IAAVv2D,EAAEooE,IAAoBpoE,EAAEo/D,KAAOp/D,EAAEooE,IACjDxQ,EAAOkK,GAAK5V,EACR,CAAClsD,EAAE0+D,KAAM1+D,EAAEm/D,MAAO0T,EAAW7yE,EAAEgyE,KAAMhyE,EAAE8yE,OAAQ9yE,EAAE+yE,OAAQ/yE,EAAEgzE,cAC3D,SAAUlf,GACN,OAAOA,GAAO37C,SAAS27C,EAAK,GAChC,IAGJ6c,GAAgB/Y,EAXhB,CAYJ,CAEA,SAASqb,GAAiBrb,GACtB,IAAI1D,EAAM,IAAIyD,EAAOkV,GAAcqG,GAActb,KAOjD,OANI1D,EAAI+c,WAEJ/c,EAAIvuB,IAAI,EAAG,KACXuuB,EAAI+c,cAAW1a,GAGZrC,CACX,CAEA,SAASgf,GAActb,GACnB,IAAIlE,EAAQkE,EAAOR,GACf7C,EAASqD,EAAOP,GAIpB,OAFAO,EAAOF,QAAUE,EAAOF,SAAW4U,GAAU1U,EAAON,IAEtC,OAAV5D,QAA8B6C,IAAXhC,GAAkC,KAAVb,EACpCgD,EAAc,CAAEzB,WAAW,KAGjB,kBAAVvB,IACPkE,EAAOR,GAAK1D,EAAQkE,EAAOF,QAAQyb,SAASzf,IAG5CoE,EAASpE,GACF,IAAIiE,EAAOkV,GAAcnZ,KACzBO,EAAOP,GACdkE,EAAOzB,GAAKzC,EACLD,EAAQc,GACf4d,GAAyBva,GAClBrD,EACPma,GAA0B9W,GAE1Bwb,GAAgBxb,GAGf9B,EAAQ8B,KACTA,EAAOzB,GAAK,MAGTyB,GACX,CAEA,SAASwb,GAAgBxb,GACrB,IAAIlE,EAAQkE,EAAOR,GACfrD,EAAYL,GACZkE,EAAOzB,GAAK,IAAIhkC,KAAKmhC,EAAMlhC,OACpB6hC,EAAOP,GACdkE,EAAOzB,GAAK,IAAIhkC,KAAKuhC,EAAMW,WACH,kBAAVX,EACduc,GAAiBrY,GACVnE,EAAQC,IACfkE,EAAOkK,GAAK5V,EAAIwH,EAAMzwD,MAAM,IAAI,SAAU6wD,GACtC,OAAO37C,SAAS27C,EAAK,GACzB,IACA6c,GAAgB/Y,IACTjE,EAASD,GAChBkf,GAAiBhb,GACV5D,EAASN,GAEhBkE,EAAOzB,GAAK,IAAIhkC,KAAKuhC,GAErBJ,EAAM4c,wBAAwBtY,EAEtC,CAEA,SAASlD,GAAiBhB,EAAOa,EAAQC,EAAQC,EAAQ4e,GACrD,IAAIzlE,EAAI,CAAC,EA2BT,OAzBe,IAAX2mD,IAA8B,IAAXA,IACnBE,EAASF,EACTA,OAASgC,IAGE,IAAX/B,IAA8B,IAAXA,IACnBC,EAASD,EACTA,OAAS+B,IAIR5C,EAASD,IAAUG,EAAcH,IACjCD,EAAQC,IAA2B,IAAjBA,EAAMxzD,UAEzBwzD,OAAQ6C,GAIZ3oD,EAAEupD,kBAAmB,EACrBvpD,EAAE0iE,QAAU1iE,EAAE4pD,OAAS6b,EACvBzlE,EAAE0pD,GAAK9C,EACP5mD,EAAEwpD,GAAK1D,EACP9lD,EAAEypD,GAAK9C,EACP3mD,EAAE0oD,QAAU7B,EAELwe,GAAiBrlE,EAC5B,CAEA,SAAS2jE,GAAY7d,EAAOa,EAAQC,EAAQC,GACxC,OAAOC,GAAiBhB,EAAOa,EAAQC,EAAQC,GAAQ,EAC3D,CAxeAnB,EAAM4c,wBAA0BjY,EAC5B,iSAGA,SAAUL,GACNA,EAAOzB,GAAK,IAAIhkC,KAAKylC,EAAOR,IAAMQ,EAAO0Y,QAAU,OAAS,IAChE,IAsLJhd,EAAMme,SAAW,WAAa,EAG9Bne,EAAMoe,SAAW,WAAa,EA2S9B,IAAI4B,GAAerb,EACX,sGACA,WACI,IAAIsb,EAAQhC,GAAYnxE,MAAM,KAAMH,WACpC,OAAIN,KAAKm2D,WAAayd,EAAMzd,UACjByd,EAAQ5zE,KAAOA,KAAO4zE,EAEtB7c,GAEf,IAEJ8c,GAAevb,EACX,sGACA,WACI,IAAIsb,EAAQhC,GAAYnxE,MAAM,KAAMH,WACpC,OAAIN,KAAKm2D,WAAayd,EAAMzd,UACjByd,EAAQ5zE,KAAOA,KAAO4zE,EAEtB7c,GAEf,IAQR,SAAS+c,GAAOxuC,EAAIyuC,GAChB,IAAIxf,EAAKl0D,EAIT,GAHuB,IAAnB0zE,EAAQxzE,QAAgBuzD,EAAQigB,EAAQ,MACxCA,EAAUA,EAAQ,KAEjBA,EAAQxzE,OACT,OAAOqxE,KAGX,IADArd,EAAMwf,EAAQ,GACT1zE,EAAI,EAAGA,EAAI0zE,EAAQxzE,SAAUF,EACzB0zE,EAAQ1zE,GAAG81D,YAAa4d,EAAQ1zE,GAAGilC,GAAIivB,KACxCA,EAAMwf,EAAQ1zE,IAGtB,OAAOk0D,CACX,CAGA,SAAS/qD,KAGL,OAAOsqE,GAAO,WAFH,GAAGxwE,MAAM1D,KAAKU,UAAW,GAGxC,CAEA,SAASgJ,KAGL,OAAOwqE,GAAO,UAFH,GAAGxwE,MAAM1D,KAAKU,UAAW,GAGxC,CAEA,IAAImyB,GAAM,WACN,OAAOD,KAAKC,IAAMD,KAAKC,OAAS,IAAID,IACxC,EAEIwhD,GAAW,CACX,OACA,UACA,QACA,OACA,MACA,OACA,SACA,SACA,eAGJ,SAASC,GAAgB/lE,GACrB,IAAImgC,EAEAhuC,EADA6zE,GAAiB,EAEjBC,EAAWH,GAASzzE,OACxB,IAAK8tC,KAAOngC,EACR,GACI+lD,EAAW/lD,EAAGmgC,MAEuB,IAAjC1tC,GAAQf,KAAKo0E,GAAU3lC,IACZ,MAAVngC,EAAEmgC,IAAiBlzB,MAAMjN,EAAEmgC,KAGhC,OAAO,EAIf,IAAKhuC,EAAI,EAAGA,EAAI8zE,IAAY9zE,EACxB,GAAI6N,EAAE8lE,GAAS3zE,IAAK,CAChB,GAAI6zE,EACA,OAAO,EAEPE,WAAWlmE,EAAE8lE,GAAS3zE,OAAS4+D,GAAM/wD,EAAE8lE,GAAS3zE,OAChD6zE,GAAiB,EAEzB,CAGJ,OAAO,CACX,CAEA,SAASG,KACL,OAAOr0E,KAAKo2D,QAChB,CAEA,SAASke,KACL,OAAOC,GAAevd,IAC1B,CAEA,SAASwd,GAASp/D,GACd,IAAImpD,EAAkBH,GAAqBhpD,GACvCq/D,EAAQlW,EAAgBQ,MAAQ,EAChC2V,EAAWnW,EAAgBoW,SAAW,EACtC5R,EAASxE,EAAgBiB,OAAS,EAClCoV,EAAQrW,EAAgB8H,MAAQ9H,EAAgBsW,SAAW,EAC3DC,EAAOvW,EAAgBkK,KAAO,EAC9B6B,EAAQ/L,EAAgB8T,MAAQ,EAChC5H,EAAUlM,EAAgB4U,QAAU,EACpCtI,EAAUtM,EAAgB6U,QAAU,EACpC2B,EAAexW,EAAgB8U,aAAe,EAElDrzE,KAAKo2D,SAAW6d,GAAgB1V,GAGhCv+D,KAAKg1E,eACAD,EACS,IAAVlK,EACU,IAAVJ,EACQ,IAARH,EAAe,GAAK,GAGxBtqE,KAAKi1E,OAASH,EAAe,EAARF,EAIrB50E,KAAKyjE,SAAWV,EAAoB,EAAX2R,EAAuB,GAARD,EAExCz0E,KAAK+4C,MAAQ,CAAC,EAEd/4C,KAAK+3D,QAAU4U,KAEf3sE,KAAKk1E,SACT,CAEA,SAASC,GAAWhhB,GAChB,OAAOA,aAAeqgB,EAC1B,CAEA,SAASY,GAAS9a,GACd,OAAIA,EAAS,GACyB,EAA3BvxD,KAAKoB,OAAO,EAAImwD,GAEhBvxD,KAAKoB,MAAMmwD,EAE1B,CAGA,SAAS+a,GAAcC,EAAQC,EAAQC,GACnC,IAGIn1E,EAHA62D,EAAMnuD,KAAKS,IAAI8rE,EAAO/0E,OAAQg1E,EAAOh1E,QACrCk1E,EAAa1sE,KAAKa,IAAI0rE,EAAO/0E,OAASg1E,EAAOh1E,QAC7Cm1E,EAAQ,EAEZ,IAAKr1E,EAAI,EAAGA,EAAI62D,EAAK72D,KAEZm1E,GAAeF,EAAOj1E,KAAOk1E,EAAOl1E,KACnCm1E,GAAevW,GAAMqW,EAAOj1E,MAAQ4+D,GAAMsW,EAAOl1E,MAEnDq1E,IAGR,OAAOA,EAAQD,CACnB,CAIA,SAASl5B,GAAOye,EAAO2a,GACnB5a,EAAeC,EAAO,EAAG,GAAG,WACxB,IAAIze,EAASv8C,KAAK41E,YACdC,EAAO,IAKX,OAJIt5B,EAAS,IACTA,GAAUA,EACVs5B,EAAO,KAGPA,EACAxb,KAAY9d,EAAS,IAAK,GAC1Bo5B,EACAtb,IAAW9d,EAAS,GAAI,EAEhC,GACJ,CAEAA,GAAO,IAAK,KACZA,GAAO,KAAM,IAIb0kB,GAAc,IAAKH,IACnBG,GAAc,KAAMH,IACpBgB,GAAc,CAAC,IAAK,OAAO,SAAU/N,EAAOwH,EAAOtD,GAC/CA,EAAO0Y,SAAU,EACjB1Y,EAAOL,KAAOke,GAAiBhV,GAAkB/M,EACrD,IAOA,IAAIgiB,GAAc,kBAElB,SAASD,GAAiBE,EAASxY,GAC/B,IAEIyY,EACAxL,EAHAyL,GAAW1Y,GAAU,IAAI/Q,MAAMupB,GAKnC,OAAgB,OAAZE,EACO,KAOQ,KAFnBzL,EAAuB,IADvBwL,IADQC,EAAQA,EAAQ31E,OAAS,IAAM,IACtB,IAAIksD,MAAMspB,KAAgB,CAAC,IAAK,EAAG,IAClC,GAAW9W,GAAMgX,EAAM,KAElB,EAAiB,MAAbA,EAAM,GAAaxL,GAAWA,CAC7D,CAGA,SAAS0L,GAAgBpiB,EAAOqiB,GAC5B,IAAI7hB,EAAKqJ,EACT,OAAIwY,EAAMve,QACNtD,EAAM6hB,EAAMvyD,QACZ+5C,GACKzF,EAASpE,IAAUO,EAAOP,GACrBA,EAAMW,UACNkd,GAAY7d,GAAOW,WAAaH,EAAIG,UAE9CH,EAAIiC,GAAG6f,QAAQ9hB,EAAIiC,GAAG9B,UAAYkJ,GAClCjK,EAAMuE,aAAa3D,GAAK,GACjBA,GAEAqd,GAAY7d,GAAOuiB,OAElC,CAEA,SAASC,GAAcroE,GAGnB,OAAQnF,KAAKoB,MAAM+D,EAAEsoD,GAAGggB,oBAC5B,CAoBA,SAASC,GAAa1iB,EAAO2iB,EAAeC,GACxC,IACIC,EADAr6B,EAASv8C,KAAK83D,SAAW,EAE7B,IAAK93D,KAAKm2D,UACN,OAAgB,MAATpC,EAAgB/zD,KAAOg3D,IAElC,GAAa,MAATjD,EAAe,CACf,GAAqB,kBAAVA,GAEP,GAAc,QADdA,EAAQ+hB,GAAiBhV,GAAkB/M,IAEvC,OAAO/zD,UAEJ+I,KAAKa,IAAImqD,GAAS,KAAO4iB,IAChC5iB,GAAgB,IAwBpB,OAtBK/zD,KAAK63D,QAAU6e,IAChBE,EAAcL,GAAcv2E,OAEhCA,KAAK83D,QAAU/D,EACf/zD,KAAK63D,QAAS,EACK,MAAf+e,GACA52E,KAAKgmC,IAAI4wC,EAAa,KAEtBr6B,IAAWwX,KACN2iB,GAAiB12E,KAAK62E,kBACvBC,GACI92E,KACAu0E,GAAexgB,EAAQxX,EAAQ,KAC/B,GACA,GAEIv8C,KAAK62E,oBACb72E,KAAK62E,mBAAoB,EACzBljB,EAAMuE,aAAal4D,MAAM,GACzBA,KAAK62E,kBAAoB,OAG1B72E,IACX,CACI,OAAOA,KAAK63D,OAAStb,EAASg6B,GAAcv2E,KAEpD,CAEA,SAAS+2E,GAAWhjB,EAAO2iB,GACvB,OAAa,MAAT3iB,GACqB,kBAAVA,IACPA,GAASA,GAGb/zD,KAAK41E,UAAU7hB,EAAO2iB,GAEf12E,OAECA,KAAK41E,WAErB,CAEA,SAASoB,GAAeN,GACpB,OAAO12E,KAAK41E,UAAU,EAAGc,EAC7B,CAEA,SAASO,GAAiBP,GAStB,OARI12E,KAAK63D,SACL73D,KAAK41E,UAAU,EAAGc,GAClB12E,KAAK63D,QAAS,EAEV6e,GACA12E,KAAKk3E,SAASX,GAAcv2E,MAAO,MAGpCA,IACX,CAEA,SAASm3E,KACL,GAAiB,MAAbn3E,KAAK43D,KACL53D,KAAK41E,UAAU51E,KAAK43D,MAAM,GAAO,QAC9B,GAAuB,kBAAZ53D,KAAKy3D,GAAiB,CACpC,IAAI2f,EAAQtB,GAAiBjV,GAAa7gE,KAAKy3D,IAClC,MAAT2f,EACAp3E,KAAK41E,UAAUwB,GAEfp3E,KAAK41E,UAAU,GAAG,EAE1B,CACA,OAAO51E,IACX,CAEA,SAASq3E,GAAqBtjB,GAC1B,QAAK/zD,KAAKm2D,YAGVpC,EAAQA,EAAQ6d,GAAY7d,GAAO6hB,YAAc,GAEzC51E,KAAK41E,YAAc7hB,GAAS,KAAO,EAC/C,CAEA,SAASujB,KACL,OACIt3E,KAAK41E,YAAc51E,KAAK6jB,QAAQ27C,MAAM,GAAGoW,aACzC51E,KAAK41E,YAAc51E,KAAK6jB,QAAQ27C,MAAM,GAAGoW,WAEjD,CAEA,SAAS2B,KACL,IAAKnjB,EAAYp0D,KAAKw3E,eAClB,OAAOx3E,KAAKw3E,cAGhB,IACI5D,EADA3lE,EAAI,CAAC,EAcT,OAXAopD,EAAWppD,EAAGjO,OACdiO,EAAIslE,GAActlE,IAEZk0D,IACFyR,EAAQ3lE,EAAE4pD,OAASlD,EAAU1mD,EAAEk0D,IAAMyP,GAAY3jE,EAAEk0D,IACnDniE,KAAKw3E,cACDx3E,KAAKm2D,WAAakf,GAAcpnE,EAAEk0D,GAAIyR,EAAM6D,WAAa,GAE7Dz3E,KAAKw3E,eAAgB,EAGlBx3E,KAAKw3E,aAChB,CAEA,SAASE,KACL,QAAO13E,KAAKm2D,YAAan2D,KAAK63D,MAClC,CAEA,SAAS8f,KACL,QAAO33E,KAAKm2D,WAAYn2D,KAAK63D,MACjC,CAEA,SAAS+f,KACL,QAAO53E,KAAKm2D,WAAYn2D,KAAK63D,QAA2B,IAAjB73D,KAAK83D,OAChD,CArJAnE,EAAMuE,aAAe,WAAa,EAwJlC,IAAI2f,GAAc,wDAIdC,GACI,sKAER,SAASvD,GAAexgB,EAAO1lB,GAC3B,IAGIwnC,EACAkC,EACAC,EALA5iE,EAAW2+C,EAEXtH,EAAQ,KAkEZ,OA7DI0oB,GAAWphB,GACX3+C,EAAW,CACPgtB,GAAI2xB,EAAMihB,cACV3mE,EAAG0lD,EAAMkhB,MACTl1D,EAAGg0C,EAAM0P,SAENpP,EAASN,KAAW54C,OAAO44C,IAClC3+C,EAAW,CAAC,EACRi5B,EACAj5B,EAASi5B,IAAQ0lB,EAEjB3+C,EAAS2/D,cAAgBhhB,IAErBtH,EAAQorB,GAAYjJ,KAAK7a,KACjC8hB,EAAoB,MAAbppB,EAAM,IAAc,EAAI,EAC/Br3C,EAAW,CACP4J,EAAG,EACH3Q,EAAG4wD,GAAMxS,EAAM6V,KAASuT,EACxBl0E,EAAGs9D,GAAMxS,EAAM8V,KAASsT,EACxB3nE,EAAG+wD,GAAMxS,EAAM+V,KAAWqT,EAC1B90E,EAAGk+D,GAAMxS,EAAMgW,KAAWoT,EAC1BzzC,GAAI68B,GAAMmW,GAA8B,IAArB3oB,EAAMiW,MAAwBmT,KAE7CppB,EAAQqrB,GAASlJ,KAAK7a,KAC9B8hB,EAAoB,MAAbppB,EAAM,IAAc,EAAI,EAC/Br3C,EAAW,CACP4J,EAAGi5D,GAASxrB,EAAM,GAAIopB,GACtB91D,EAAGk4D,GAASxrB,EAAM,GAAIopB,GACtBh2D,EAAGo4D,GAASxrB,EAAM,GAAIopB,GACtBxnE,EAAG4pE,GAASxrB,EAAM,GAAIopB,GACtBl0E,EAAGs2E,GAASxrB,EAAM,GAAIopB,GACtB3nE,EAAG+pE,GAASxrB,EAAM,GAAIopB,GACtB90E,EAAGk3E,GAASxrB,EAAM,GAAIopB,KAEP,MAAZzgE,EAEPA,EAAW,CAAC,EAEQ,kBAAbA,IACN,SAAUA,GAAY,OAAQA,KAE/B4iE,EAAUE,GACNtG,GAAYx8D,EAASkiD,MACrBsa,GAAYx8D,EAASyL,MAGzBzL,EAAW,CAAC,GACHgtB,GAAK41C,EAAQjD,aACtB3/D,EAAS2K,EAAIi4D,EAAQjV,QAGzBgV,EAAM,IAAIvD,GAASp/D,GAEf+/D,GAAWphB,IAAUE,EAAWF,EAAO,aACvCgkB,EAAIhgB,QAAUhE,EAAMgE,SAGpBod,GAAWphB,IAAUE,EAAWF,EAAO,cACvCgkB,EAAI3hB,SAAWrC,EAAMqC,UAGlB2hB,CACX,CAKA,SAASE,GAASE,EAAKtC,GAInB,IAAIthB,EAAM4jB,GAAO/D,WAAW+D,EAAI16D,QAAQ,IAAK,MAE7C,OAAQtC,MAAMo5C,GAAO,EAAIA,GAAOshB,CACpC,CAEA,SAASuC,GAA0BC,EAAMzE,GACrC,IAAIrf,EAAM,CAAC,EAUX,OARAA,EAAIwO,OACA6Q,EAAMpU,QAAU6Y,EAAK7Y,QAAyC,IAA9BoU,EAAM7U,OAASsZ,EAAKtZ,QACpDsZ,EAAKx0D,QAAQmiB,IAAIuuB,EAAIwO,OAAQ,KAAKuV,QAAQ1E,MACxCrf,EAAIwO,OAGVxO,EAAIwgB,cAAgBnB,GAASyE,EAAKx0D,QAAQmiB,IAAIuuB,EAAIwO,OAAQ,KAEnDxO,CACX,CAEA,SAAS2jB,GAAkBG,EAAMzE,GAC7B,IAAIrf,EACJ,OAAM8jB,EAAKliB,WAAayd,EAAMzd,WAI9Byd,EAAQuC,GAAgBvC,EAAOyE,GAC3BA,EAAKE,SAAS3E,GACdrf,EAAM6jB,GAA0BC,EAAMzE,KAEtCrf,EAAM6jB,GAA0BxE,EAAOyE,IACnCtD,cAAgBxgB,EAAIwgB,aACxBxgB,EAAIwO,QAAUxO,EAAIwO,QAGfxO,GAZI,CAAEwgB,aAAc,EAAGhS,OAAQ,EAa1C,CAGA,SAASyV,GAAYntE,EAAWkK,GAC5B,OAAO,SAAU2wB,EAAKuyC,GAClB,IAASC,EAmBT,OAjBe,OAAXD,GAAoBt9D,OAAOs9D,KAC3B3f,EACIvjD,EACA,YACIA,EACA,uDACAA,EAHJ,kGAOJmjE,EAAMxyC,EACNA,EAAMuyC,EACNA,EAASC,GAIb5B,GAAY92E,KADNu0E,GAAeruC,EAAKuyC,GACHptE,GAChBrL,IACX,CACJ,CAEA,SAAS82E,GAAY5c,EAAK9kD,EAAUujE,EAAUzgB,GAC1C,IAAI6c,EAAe3/D,EAAS4/D,cACxBF,EAAOM,GAAShgE,EAAS6/D,OACzBlS,EAASqS,GAAShgE,EAASquD,SAE1BvJ,EAAI/D,YAKT+B,EAA+B,MAAhBA,GAA8BA,EAEzC6K,GACAwB,GAASrK,EAAKr3D,GAAIq3D,EAAK,SAAW6I,EAAS4V,GAE3C7D,GACAvV,GAAMrF,EAAK,OAAQr3D,GAAIq3D,EAAK,QAAU4a,EAAO6D,GAE7C5D,GACA7a,EAAI1D,GAAG6f,QAAQnc,EAAI1D,GAAG9B,UAAYqgB,EAAe4D,GAEjDzgB,GACAvE,EAAMuE,aAAagC,EAAK4a,GAAQ/R,GAExC,CA9FAwR,GAAejvC,GAAKkvC,GAAS90E,UAC7B60E,GAAeqE,QAAUtE,GA+FzB,IAAItuC,GAAMwyC,GAAY,EAAG,OACrBtB,GAAWsB,IAAa,EAAG,YAE/B,SAASK,GAAS9kB,GACd,MAAwB,kBAAVA,GAAsBA,aAAiBh0D,MACzD,CAGA,SAAS+4E,GAAc/kB,GACnB,OACIoE,EAASpE,IACTO,EAAOP,IACP8kB,GAAS9kB,IACTM,EAASN,IACTglB,GAAsBhlB,IACtBilB,GAAoBjlB,IACV,OAAVA,QACU6C,IAAV7C,CAER,CAEA,SAASilB,GAAoBjlB,GACzB,IA4BI1zD,EACAygD,EA7BAm4B,EAAajlB,EAASD,KAAWG,EAAcH,GAC/CmlB,GAAe,EACfC,EAAa,CACT,QACA,OACA,IACA,SACA,QACA,IACA,OACA,MACA,IACA,QACA,OACA,IACA,QACA,OACA,IACA,UACA,SACA,IACA,UACA,SACA,IACA,eACA,cACA,MAIJC,EAAcD,EAAW54E,OAE7B,IAAKF,EAAI,EAAGA,EAAI+4E,EAAa/4E,GAAK,EAC9BygD,EAAWq4B,EAAW94E,GACtB64E,EAAeA,GAAgBjlB,EAAWF,EAAOjT,GAGrD,OAAOm4B,GAAcC,CACzB,CAEA,SAASH,GAAsBhlB,GAC3B,IAAIslB,EAAYvlB,EAAQC,GACpBulB,GAAe,EAOnB,OANID,IACAC,EAGkB,IAFdvlB,EAAM1jC,QAAO,SAAUkpD,GACnB,OAAQllB,EAASklB,IAASV,GAAS9kB,EACvC,IAAGxzD,QAEJ84E,GAAaC,CACxB,CAEA,SAASE,GAAezlB,GACpB,IAUI1zD,EACAygD,EAXAm4B,EAAajlB,EAASD,KAAWG,EAAcH,GAC/CmlB,GAAe,EACfC,EAAa,CACT,UACA,UACA,UACA,WACA,WACA,YAKR,IAAK94E,EAAI,EAAGA,EAAI84E,EAAW54E,OAAQF,GAAK,EACpCygD,EAAWq4B,EAAW94E,GACtB64E,EAAeA,GAAgBjlB,EAAWF,EAAOjT,GAGrD,OAAOm4B,GAAcC,CACzB,CAEA,SAASO,GAAkBC,EAAUjnD,GACjC,IAAImrC,EAAO8b,EAAS9b,KAAKnrC,EAAK,QAAQ,GACtC,OAAOmrC,GAAQ,EACT,WACAA,GAAQ,EACR,WACAA,EAAO,EACP,UACAA,EAAO,EACP,UACAA,EAAO,EACP,UACAA,EAAO,EACP,WACA,UACV,CAEA,SAAS+b,GAAWzkE,EAAM0kE,GAEG,IAArBt5E,UAAUC,SACLD,UAAU,GAGJw4E,GAAcx4E,UAAU,KAC/B4U,EAAO5U,UAAU,GACjBs5E,OAAUhjB,GACH4iB,GAAel5E,UAAU,MAChCs5E,EAAUt5E,UAAU,GACpB4U,OAAO0hD,IAPP1hD,OAAO0hD,EACPgjB,OAAUhjB,IAWlB,IAAInkC,EAAMvd,GAAQ08D,KACdiI,EAAM1D,GAAgB1jD,EAAKzyB,MAAM85E,QAAQ,OACzCllB,EAASjB,EAAMomB,eAAe/5E,KAAM65E,IAAQ,WAC5C1f,EACIyf,IACC7gB,EAAW6gB,EAAQhlB,IACdglB,EAAQhlB,GAAQh1D,KAAKI,KAAMyyB,GAC3BmnD,EAAQhlB,IAEtB,OAAO50D,KAAK40D,OACRuF,GAAUn6D,KAAKo7D,aAAanB,SAASrF,EAAQ50D,KAAM4xE,GAAYn/C,IAEvE,CAEA,SAAS5O,KACL,OAAO,IAAIm0C,EAAOh4D,KACtB,CAEA,SAASs4E,GAAQvkB,EAAOoK,GACpB,IAAI6b,EAAa7hB,EAASpE,GAASA,EAAQ6d,GAAY7d,GACvD,SAAM/zD,KAAKm2D,YAAa6jB,EAAW7jB,aAIrB,iBADdgI,EAAQD,GAAeC,IAAU,eAEtBn+D,KAAK00D,UAAYslB,EAAWtlB,UAE5BslB,EAAWtlB,UAAY10D,KAAK6jB,QAAQi2D,QAAQ3b,GAAOzJ,UAElE,CAEA,SAAS6jB,GAASxkB,EAAOoK,GACrB,IAAI6b,EAAa7hB,EAASpE,GAASA,EAAQ6d,GAAY7d,GACvD,SAAM/zD,KAAKm2D,YAAa6jB,EAAW7jB,aAIrB,iBADdgI,EAAQD,GAAeC,IAAU,eAEtBn+D,KAAK00D,UAAYslB,EAAWtlB,UAE5B10D,KAAK6jB,QAAQo2D,MAAM9b,GAAOzJ,UAAYslB,EAAWtlB,UAEhE,CAEA,SAASwlB,GAAU5iB,EAAMz2C,EAAIs9C,EAAOgc,GAChC,IAAIC,EAAYjiB,EAASb,GAAQA,EAAOsa,GAAYta,GAChD+iB,EAAUliB,EAASt3C,GAAMA,EAAK+wD,GAAY/wD,GAC9C,SAAM7gB,KAAKm2D,WAAaikB,EAAUjkB,WAAakkB,EAAQlkB,aAK/B,OAFxBgkB,EAAcA,GAAe,MAEZ,GACPn6E,KAAKs4E,QAAQ8B,EAAWjc,IACvBn+D,KAAKu4E,SAAS6B,EAAWjc,MACZ,MAAnBgc,EAAY,GACPn6E,KAAKu4E,SAAS8B,EAASlc,IACtBn+D,KAAKs4E,QAAQ+B,EAASlc,GAErC,CAEA,SAASmc,GAAOvmB,EAAOoK,GACnB,IACIoc,EADAP,EAAa7hB,EAASpE,GAASA,EAAQ6d,GAAY7d,GAEvD,SAAM/zD,KAAKm2D,YAAa6jB,EAAW7jB,aAIrB,iBADdgI,EAAQD,GAAeC,IAAU,eAEtBn+D,KAAK00D,YAAcslB,EAAWtlB,WAErC6lB,EAAUP,EAAWtlB,UAEjB10D,KAAK6jB,QAAQi2D,QAAQ3b,GAAOzJ,WAAa6lB,GACzCA,GAAWv6E,KAAK6jB,QAAQo2D,MAAM9b,GAAOzJ,WAGjD,CAEA,SAAS8lB,GAAczmB,EAAOoK,GAC1B,OAAOn+D,KAAKs6E,OAAOvmB,EAAOoK,IAAUn+D,KAAKs4E,QAAQvkB,EAAOoK,EAC5D,CAEA,SAASsc,GAAe1mB,EAAOoK,GAC3B,OAAOn+D,KAAKs6E,OAAOvmB,EAAOoK,IAAUn+D,KAAKu4E,SAASxkB,EAAOoK,EAC7D,CAEA,SAASP,GAAK7J,EAAOoK,EAAOuc,GACxB,IAAIC,EAAMC,EAAWzgB,EAErB,IAAKn6D,KAAKm2D,UACN,OAAOa,IAKX,KAFA2jB,EAAOxE,GAAgBpiB,EAAO/zD,OAEpBm2D,UACN,OAAOa,IAOX,OAJA4jB,EAAoD,KAAvCD,EAAK/E,YAAc51E,KAAK41E,aAErCzX,EAAQD,GAAeC,IAGnB,IAAK,OACDhE,EAAS0gB,GAAU76E,KAAM26E,GAAQ,GACjC,MACJ,IAAK,QACDxgB,EAAS0gB,GAAU76E,KAAM26E,GACzB,MACJ,IAAK,UACDxgB,EAAS0gB,GAAU76E,KAAM26E,GAAQ,EACjC,MACJ,IAAK,SACDxgB,GAAUn6D,KAAO26E,GAAQ,IACzB,MACJ,IAAK,SACDxgB,GAAUn6D,KAAO26E,GAAQ,IACzB,MACJ,IAAK,OACDxgB,GAAUn6D,KAAO26E,GAAQ,KACzB,MACJ,IAAK,MACDxgB,GAAUn6D,KAAO26E,EAAOC,GAAa,MACrC,MACJ,IAAK,OACDzgB,GAAUn6D,KAAO26E,EAAOC,GAAa,OACrC,MACJ,QACIzgB,EAASn6D,KAAO26E,EAGxB,OAAOD,EAAUvgB,EAAS6E,GAAS7E,EACvC,CAEA,SAAS0gB,GAAUr6E,EAAG0e,GAClB,GAAI1e,EAAEi/D,OAASvgD,EAAEugD,OAGb,OAAQob,GAAU37D,EAAG1e,GAGzB,IAAIs6E,EAAyC,IAAvB57D,EAAE6/C,OAASv+D,EAAEu+D,SAAgB7/C,EAAEsgD,QAAUh/D,EAAEg/D,SAE7Dub,EAASv6E,EAAEqjB,QAAQmiB,IAAI80C,EAAgB,UAe3C,QAASA,GAXL57D,EAAI67D,EAAS,GAGH77D,EAAI67D,IAAWA,EAFfv6E,EAAEqjB,QAAQmiB,IAAI80C,EAAiB,EAAG,YAMlC57D,EAAI67D,IAFJv6E,EAAEqjB,QAAQmiB,IAAI80C,EAAiB,EAAG,UAETC,MAIF,CACzC,CAKA,SAASpuE,KACL,OAAO3M,KAAK6jB,QAAQgxC,OAAO,MAAMD,OAAO,mCAC5C,CAEA,SAASomB,GAAYC,GACjB,IAAKj7E,KAAKm2D,UACN,OAAO,KAEX,IAAInB,GAAqB,IAAfimB,EACN/sE,EAAI8mD,EAAMh1D,KAAK6jB,QAAQmxC,MAAQh1D,KACnC,OAAIkO,EAAE6wD,OAAS,GAAK7wD,EAAE6wD,OAAS,KACpBvD,EACHttD,EACA8mD,EACM,iCACA,gCAGV+D,EAAWvmC,KAAK9yB,UAAUs7E,aAEtBhmB,EACOh1D,KAAKk7E,SAASF,cAEd,IAAIxoD,KAAKxyB,KAAK00D,UAA+B,GAAnB10D,KAAK41E,YAAmB,KACpDoF,cACAv9D,QAAQ,IAAK+9C,EAAattD,EAAG,MAGnCstD,EACHttD,EACA8mD,EAAM,+BAAiC,6BAE/C,CAQA,SAASmmB,KACL,IAAKn7E,KAAKm2D,UACN,MAAO,qBAAuBn2D,KAAKy3D,GAAK,OAE5C,IAEI2jB,EACArc,EACAsc,EACAC,EALAngB,EAAO,SACPogB,EAAO,GAcX,OATKv7E,KAAK03E,YACNvc,EAA4B,IAArBn7D,KAAK41E,YAAoB,aAAe,mBAC/C2F,EAAO,KAEXH,EAAS,IAAMjgB,EAAO,MACtB4D,EAAO,GAAK/+D,KAAK++D,QAAU/+D,KAAK++D,QAAU,KAAO,OAAS,SAC1Dsc,EAAW,wBACXC,EAASC,EAAO,OAETv7E,KAAK40D,OAAOwmB,EAASrc,EAAOsc,EAAWC,EAClD,CAEA,SAAS1mB,GAAO4mB,GACPA,IACDA,EAAcx7E,KAAK43E,QACbjkB,EAAM8nB,iBACN9nB,EAAM+nB,eAEhB,IAAIvhB,EAASqB,EAAax7D,KAAMw7E,GAChC,OAAOx7E,KAAKo7D,aAAaugB,WAAWxhB,EACxC,CAEA,SAAS7C,GAAKpiD,EAAMqoD,GAChB,OACIv9D,KAAKm2D,YACHgC,EAASjjD,IAASA,EAAKihD,WAAcyb,GAAY18D,GAAMihD,WAElDoe,GAAe,CAAE1zD,GAAI7gB,KAAMs3D,KAAMpiD,IACnC2/C,OAAO70D,KAAK60D,UACZ+mB,UAAUre,GAERv9D,KAAKo7D,aAAaM,aAEjC,CAEA,SAASmgB,GAAQte,GACb,OAAOv9D,KAAKs3D,KAAKsa,KAAerU,EACpC,CAEA,SAAS18C,GAAG3L,EAAMqoD,GACd,OACIv9D,KAAKm2D,YACHgC,EAASjjD,IAASA,EAAKihD,WAAcyb,GAAY18D,GAAMihD,WAElDoe,GAAe,CAAEjd,KAAMt3D,KAAM6gB,GAAI3L,IACnC2/C,OAAO70D,KAAK60D,UACZ+mB,UAAUre,GAERv9D,KAAKo7D,aAAaM,aAEjC,CAEA,SAASogB,GAAMve,GACX,OAAOv9D,KAAK6gB,GAAG+wD,KAAerU,EAClC,CAKA,SAAS1I,GAAOxmB,GACZ,IAAI0tC,EAEJ,YAAYnlB,IAARvoB,EACOruC,KAAK+3D,QAAQyU,OAGC,OADrBuP,EAAgBpP,GAAUt+B,MAEtBruC,KAAK+3D,QAAUgkB,GAEZ/7E,KAEf,CA5HA2zD,EAAM+nB,cAAgB,uBACtB/nB,EAAM8nB,iBAAmB,yBA6HzB,IAAIO,GAAO1jB,EACP,mJACA,SAAUjqB,GACN,YAAYuoB,IAARvoB,EACOruC,KAAKo7D,aAELp7D,KAAK60D,OAAOxmB,EAE3B,IAGJ,SAAS+sB,KACL,OAAOp7D,KAAK+3D,OAChB,CAEA,IAAIkkB,GAAgB,IAChBC,GAAgB,GAAKD,GACrBE,GAAc,GAAKD,GACnBE,GAAmB,QAAwBD,GAG/C,SAASE,GAAMC,EAAUC,GACrB,OAASD,EAAWC,EAAWA,GAAWA,CAC9C,CAEA,SAASC,GAAiBx9D,EAAG9Q,EAAGG,GAE5B,OAAI2Q,EAAI,KAAOA,GAAK,EAET,IAAIwT,KAAKxT,EAAI,IAAK9Q,EAAGG,GAAK+tE,GAE1B,IAAI5pD,KAAKxT,EAAG9Q,EAAGG,GAAGqmD,SAEjC,CAEA,SAAS+nB,GAAez9D,EAAG9Q,EAAGG,GAE1B,OAAI2Q,EAAI,KAAOA,GAAK,EAETwT,KAAKozC,IAAI5mD,EAAI,IAAK9Q,EAAGG,GAAK+tE,GAE1B5pD,KAAKozC,IAAI5mD,EAAG9Q,EAAGG,EAE9B,CAEA,SAASyrE,GAAQ3b,GACb,IAAIjpD,EAAMwnE,EAEV,QAAc9lB,KADduH,EAAQD,GAAeC,KACc,gBAAVA,IAA4Bn+D,KAAKm2D,UACxD,OAAOn2D,KAKX,OAFA08E,EAAc18E,KAAK63D,OAAS4kB,GAAiBD,GAErCre,GACJ,IAAK,OACDjpD,EAAOwnE,EAAY18E,KAAK++D,OAAQ,EAAG,GACnC,MACJ,IAAK,UACD7pD,EAAOwnE,EACH18E,KAAK++D,OACL/+D,KAAKw/D,QAAWx/D,KAAKw/D,QAAU,EAC/B,GAEJ,MACJ,IAAK,QACDtqD,EAAOwnE,EAAY18E,KAAK++D,OAAQ/+D,KAAKw/D,QAAS,GAC9C,MACJ,IAAK,OACDtqD,EAAOwnE,EACH18E,KAAK++D,OACL/+D,KAAKw/D,QACLx/D,KAAKy/D,OAASz/D,KAAKsmE,WAEvB,MACJ,IAAK,UACDpxD,EAAOwnE,EACH18E,KAAK++D,OACL/+D,KAAKw/D,QACLx/D,KAAKy/D,QAAUz/D,KAAK28E,aAAe,IAEvC,MACJ,IAAK,MACL,IAAK,OACDznE,EAAOwnE,EAAY18E,KAAK++D,OAAQ/+D,KAAKw/D,QAASx/D,KAAKy/D,QACnD,MACJ,IAAK,OACDvqD,EAAOlV,KAAKw2D,GAAG9B,UACfx/C,GAAQmnE,GACJnnE,GAAQlV,KAAK63D,OAAS,EAAI73D,KAAK41E,YAAcsG,IAC7CC,IAEJ,MACJ,IAAK,SACDjnE,EAAOlV,KAAKw2D,GAAG9B,UACfx/C,GAAQmnE,GAAMnnE,EAAMgnE,IACpB,MACJ,IAAK,SACDhnE,EAAOlV,KAAKw2D,GAAG9B,UACfx/C,GAAQmnE,GAAMnnE,EAAM+mE,IAM5B,OAFAj8E,KAAKw2D,GAAG6f,QAAQnhE,GAChBy+C,EAAMuE,aAAal4D,MAAM,GAClBA,IACX,CAEA,SAASi6E,GAAM9b,GACX,IAAIjpD,EAAMwnE,EAEV,QAAc9lB,KADduH,EAAQD,GAAeC,KACc,gBAAVA,IAA4Bn+D,KAAKm2D,UACxD,OAAOn2D,KAKX,OAFA08E,EAAc18E,KAAK63D,OAAS4kB,GAAiBD,GAErCre,GACJ,IAAK,OACDjpD,EAAOwnE,EAAY18E,KAAK++D,OAAS,EAAG,EAAG,GAAK,EAC5C,MACJ,IAAK,UACD7pD,EACIwnE,EACI18E,KAAK++D,OACL/+D,KAAKw/D,QAAWx/D,KAAKw/D,QAAU,EAAK,EACpC,GACA,EACR,MACJ,IAAK,QACDtqD,EAAOwnE,EAAY18E,KAAK++D,OAAQ/+D,KAAKw/D,QAAU,EAAG,GAAK,EACvD,MACJ,IAAK,OACDtqD,EACIwnE,EACI18E,KAAK++D,OACL/+D,KAAKw/D,QACLx/D,KAAKy/D,OAASz/D,KAAKsmE,UAAY,GAC/B,EACR,MACJ,IAAK,UACDpxD,EACIwnE,EACI18E,KAAK++D,OACL/+D,KAAKw/D,QACLx/D,KAAKy/D,QAAUz/D,KAAK28E,aAAe,GAAK,GACxC,EACR,MACJ,IAAK,MACL,IAAK,OACDznE,EAAOwnE,EAAY18E,KAAK++D,OAAQ/+D,KAAKw/D,QAASx/D,KAAKy/D,OAAS,GAAK,EACjE,MACJ,IAAK,OACDvqD,EAAOlV,KAAKw2D,GAAG9B,UACfx/C,GACIinE,GACAE,GACInnE,GAAQlV,KAAK63D,OAAS,EAAI73D,KAAK41E,YAAcsG,IAC7CC,IAEJ,EACJ,MACJ,IAAK,SACDjnE,EAAOlV,KAAKw2D,GAAG9B,UACfx/C,GAAQgnE,GAAgBG,GAAMnnE,EAAMgnE,IAAiB,EACrD,MACJ,IAAK,SACDhnE,EAAOlV,KAAKw2D,GAAG9B,UACfx/C,GAAQ+mE,GAAgBI,GAAMnnE,EAAM+mE,IAAiB,EAM7D,OAFAj8E,KAAKw2D,GAAG6f,QAAQnhE,GAChBy+C,EAAMuE,aAAal4D,MAAM,GAClBA,IACX,CAEA,SAAS00D,KACL,OAAO10D,KAAKw2D,GAAG9B,UAAkC,KAArB10D,KAAK83D,SAAW,EAChD,CAEA,SAAS8kB,KACL,OAAO7zE,KAAKK,MAAMpJ,KAAK00D,UAAY,IACvC,CAEA,SAASwmB,KACL,OAAO,IAAI1oD,KAAKxyB,KAAK00D,UACzB,CAEA,SAAS+iB,KACL,IAAIvpE,EAAIlO,KACR,MAAO,CACHkO,EAAE6wD,OACF7wD,EAAEsxD,QACFtxD,EAAEuxD,OACFvxD,EAAEmkE,OACFnkE,EAAEilE,SACFjlE,EAAEklE,SACFllE,EAAEmlE,cAEV,CAEA,SAASwJ,KACL,IAAI3uE,EAAIlO,KACR,MAAO,CACHy0E,MAAOvmE,EAAE6wD,OACTgE,OAAQ70D,EAAEsxD,QACVC,KAAMvxD,EAAEuxD,OACR6K,MAAOp8D,EAAEo8D,QACTG,QAASv8D,EAAEu8D,UACXI,QAAS38D,EAAE28D,UACXkK,aAAc7mE,EAAE6mE,eAExB,CAEA,SAAS+H,KAEL,OAAO98E,KAAKm2D,UAAYn2D,KAAKg7E,cAAgB,IACjD,CAEA,SAAS+B,KACL,OAAO5mB,EAAQn2D,KACnB,CAEA,SAASg9E,KACL,OAAOvoB,EAAO,CAAC,EAAGwB,EAAgBj2D,MACtC,CAEA,SAASi9E,KACL,OAAOhnB,EAAgBj2D,MAAMi4C,QACjC,CAEA,SAASilC,KACL,MAAO,CACHnpB,MAAO/zD,KAAKy3D,GACZ7C,OAAQ50D,KAAK03D,GACb7C,OAAQ70D,KAAK+3D,QACb2b,MAAO1zE,KAAK63D,OACZ/C,OAAQ90D,KAAK22D,QAErB,CAmDA,SAASwmB,GAAWjvE,EAAG0mD,GACnB,IAAIv0D,EACAuD,EACA67D,EACA2d,EAAOp9E,KAAKq9E,OAAS1Q,GAAU,MAAM0Q,MACzC,IAAKh9E,EAAI,EAAGuD,EAAIw5E,EAAK78E,OAAQF,EAAIuD,IAAKvD,EASlC,OAPS,kBADM+8E,EAAK/8E,GAAGi9E,QAGf7d,EAAO9L,EAAMypB,EAAK/8E,GAAGi9E,OAAOxD,QAAQ,OACpCsD,EAAK/8E,GAAGi9E,MAAQ7d,EAAK/K,kBAId0oB,EAAK/8E,GAAGk9E,OACnB,IAAK,YACDH,EAAK/8E,GAAGk9E,MAAQ,IAChB,MACJ,IAAK,SAED9d,EAAO9L,EAAMypB,EAAK/8E,GAAGk9E,OAAOzD,QAAQ,OAAOplB,UAC3C0oB,EAAK/8E,GAAGk9E,MAAQ9d,EAAK/K,UAIjC,OAAO0oB,CACX,CAEA,SAASI,GAAgBC,EAAS7oB,EAAQE,GACtC,IAAIz0D,EACAuD,EAEA2R,EACAs3D,EACA6Q,EAHAN,EAAOp9E,KAAKo9E,OAMhB,IAFAK,EAAUA,EAAQphB,cAEbh8D,EAAI,EAAGuD,EAAIw5E,EAAK78E,OAAQF,EAAIuD,IAAKvD,EAKlC,GAJAkV,EAAO6nE,EAAK/8E,GAAGkV,KAAK8mD,cACpBwQ,EAAOuQ,EAAK/8E,GAAGwsE,KAAKxQ,cACpBqhB,EAASN,EAAK/8E,GAAGq9E,OAAOrhB,cAEpBvH,EACA,OAAQF,GACJ,IAAK,IACL,IAAK,KACL,IAAK,MACD,GAAIiY,IAAS4Q,EACT,OAAOL,EAAK/8E,GAEhB,MAEJ,IAAK,OACD,GAAIkV,IAASkoE,EACT,OAAOL,EAAK/8E,GAEhB,MAEJ,IAAK,QACD,GAAIq9E,IAAWD,EACX,OAAOL,EAAK/8E,QAIrB,GAAI,CAACkV,EAAMs3D,EAAM6Q,GAAQ/8E,QAAQ88E,IAAY,EAChD,OAAOL,EAAK/8E,EAGxB,CAEA,SAASs9E,GAAsB9nB,EAAKkJ,GAChC,IAAI6e,EAAM/nB,EAAIynB,OAASznB,EAAI0nB,MAAQ,GAAM,EACzC,YAAa3mB,IAATmI,EACOpL,EAAMkC,EAAIynB,OAAOve,OAEjBpL,EAAMkC,EAAIynB,OAAOve,QAAUA,EAAOlJ,EAAItZ,QAAUqhC,CAE/D,CAEA,SAASC,KACL,IAAIx9E,EACAuD,EACAsiC,EACAk3C,EAAOp9E,KAAKo7D,aAAagiB,OAC7B,IAAK/8E,EAAI,EAAGuD,EAAIw5E,EAAK78E,OAAQF,EAAIuD,IAAKvD,EAAG,CAIrC,GAFA6lC,EAAMlmC,KAAK6jB,QAAQi2D,QAAQ,OAAOplB,UAE9B0oB,EAAK/8E,GAAGi9E,OAASp3C,GAAOA,GAAOk3C,EAAK/8E,GAAGk9E,MACvC,OAAOH,EAAK/8E,GAAGkV,KAEnB,GAAI6nE,EAAK/8E,GAAGk9E,OAASr3C,GAAOA,GAAOk3C,EAAK/8E,GAAGi9E,MACvC,OAAOF,EAAK/8E,GAAGkV,IAEvB,CAEA,MAAO,EACX,CAEA,SAASuoE,KACL,IAAIz9E,EACAuD,EACAsiC,EACAk3C,EAAOp9E,KAAKo7D,aAAagiB,OAC7B,IAAK/8E,EAAI,EAAGuD,EAAIw5E,EAAK78E,OAAQF,EAAIuD,IAAKvD,EAAG,CAIrC,GAFA6lC,EAAMlmC,KAAK6jB,QAAQi2D,QAAQ,OAAOplB,UAE9B0oB,EAAK/8E,GAAGi9E,OAASp3C,GAAOA,GAAOk3C,EAAK/8E,GAAGk9E,MACvC,OAAOH,EAAK/8E,GAAGq9E,OAEnB,GAAIN,EAAK/8E,GAAGk9E,OAASr3C,GAAOA,GAAOk3C,EAAK/8E,GAAGi9E,MACvC,OAAOF,EAAK/8E,GAAGq9E,MAEvB,CAEA,MAAO,EACX,CAEA,SAASK,KACL,IAAI19E,EACAuD,EACAsiC,EACAk3C,EAAOp9E,KAAKo7D,aAAagiB,OAC7B,IAAK/8E,EAAI,EAAGuD,EAAIw5E,EAAK78E,OAAQF,EAAIuD,IAAKvD,EAAG,CAIrC,GAFA6lC,EAAMlmC,KAAK6jB,QAAQi2D,QAAQ,OAAOplB,UAE9B0oB,EAAK/8E,GAAGi9E,OAASp3C,GAAOA,GAAOk3C,EAAK/8E,GAAGk9E,MACvC,OAAOH,EAAK/8E,GAAGwsE,KAEnB,GAAIuQ,EAAK/8E,GAAGk9E,OAASr3C,GAAOA,GAAOk3C,EAAK/8E,GAAGi9E,MACvC,OAAOF,EAAK/8E,GAAGwsE,IAEvB,CAEA,MAAO,EACX,CAEA,SAASmR,KACL,IAAI39E,EACAuD,EACAg6E,EACA13C,EACAk3C,EAAOp9E,KAAKo7D,aAAagiB,OAC7B,IAAK/8E,EAAI,EAAGuD,EAAIw5E,EAAK78E,OAAQF,EAAIuD,IAAKvD,EAMlC,GALAu9E,EAAMR,EAAK/8E,GAAGi9E,OAASF,EAAK/8E,GAAGk9E,MAAQ,GAAM,EAG7Cr3C,EAAMlmC,KAAK6jB,QAAQi2D,QAAQ,OAAOplB,UAG7B0oB,EAAK/8E,GAAGi9E,OAASp3C,GAAOA,GAAOk3C,EAAK/8E,GAAGk9E,OACvCH,EAAK/8E,GAAGk9E,OAASr3C,GAAOA,GAAOk3C,EAAK/8E,GAAGi9E,MAExC,OACKt9E,KAAK++D,OAASpL,EAAMypB,EAAK/8E,GAAGi9E,OAAOve,QAAU6e,EAC9CR,EAAK/8E,GAAGk8C,OAKpB,OAAOv8C,KAAK++D,MAChB,CAEA,SAASkf,GAAc7c,GAInB,OAHKnN,EAAWj0D,KAAM,mBAClBk+E,GAAiBt+E,KAAKI,MAEnBohE,EAAWphE,KAAKm+E,eAAiBn+E,KAAKo+E,UACjD,CAEA,SAASC,GAAcjd,GAInB,OAHKnN,EAAWj0D,KAAM,mBAClBk+E,GAAiBt+E,KAAKI,MAEnBohE,EAAWphE,KAAKs+E,eAAiBt+E,KAAKo+E,UACjD,CAEA,SAASG,GAAgBnd,GAIrB,OAHKnN,EAAWj0D,KAAM,qBAClBk+E,GAAiBt+E,KAAKI,MAEnBohE,EAAWphE,KAAKw+E,iBAAmBx+E,KAAKo+E,UACnD,CAEA,SAASK,GAAard,EAAUvM,GAC5B,OAAOA,EAAOwpB,cAAcjd,EAChC,CAEA,SAASsd,GAAatd,EAAUvM,GAC5B,OAAOA,EAAOopB,cAAc7c,EAChC,CAEA,SAASud,GAAevd,EAAUvM,GAC9B,OAAOA,EAAO0pB,gBAAgBnd,EAClC,CAEA,SAASwd,GAAoBxd,EAAUvM,GACnC,OAAOA,EAAOgqB,sBAAwBle,EAC1C,CAEA,SAASud,KACL,IAII79E,EACAuD,EALAk7E,EAAa,GACbC,EAAa,GACbC,EAAe,GACf7Z,EAAc,GAGdiY,EAAOp9E,KAAKo9E,OAEhB,IAAK/8E,EAAI,EAAGuD,EAAIw5E,EAAK78E,OAAQF,EAAIuD,IAAKvD,EAClC0+E,EAAWr8E,KAAK6+D,GAAY6b,EAAK/8E,GAAGkV,OACpCupE,EAAWp8E,KAAK6+D,GAAY6b,EAAK/8E,GAAGwsE,OACpCmS,EAAat8E,KAAK6+D,GAAY6b,EAAK/8E,GAAGq9E,SAEtCvY,EAAYziE,KAAK6+D,GAAY6b,EAAK/8E,GAAGkV,OACrC4vD,EAAYziE,KAAK6+D,GAAY6b,EAAK/8E,GAAGwsE,OACrC1H,EAAYziE,KAAK6+D,GAAY6b,EAAK/8E,GAAGq9E,SAGzC19E,KAAKo+E,WAAa,IAAIjlB,OAAO,KAAOgM,EAAYj0D,KAAK,KAAO,IAAK,KACjElR,KAAKm+E,eAAiB,IAAIhlB,OAAO,KAAO4lB,EAAW7tE,KAAK,KAAO,IAAK,KACpElR,KAAKs+E,eAAiB,IAAInlB,OAAO,KAAO2lB,EAAW5tE,KAAK,KAAO,IAAK,KACpElR,KAAKw+E,iBAAmB,IAAIrlB,OACxB,KAAO6lB,EAAa9tE,KAAK,KAAO,IAChC,IAER,CAYA,SAAS+tE,GAAuBjkB,EAAOkkB,GACnCnkB,EAAe,EAAG,CAACC,EAAOA,EAAMz6D,QAAS,EAAG2+E,EAChD,CAyCA,SAASC,GAAeprB,GACpB,OAAOqrB,GAAqBx/E,KACxBI,KACA+zD,EACA/zD,KAAKqmE,OACLrmE,KAAKsmE,UACLtmE,KAAKo7D,aAAa4L,MAAMhB,IACxBhmE,KAAKo7D,aAAa4L,MAAMf,IAEhC,CAEA,SAASoZ,GAAkBtrB,GACvB,OAAOqrB,GAAqBx/E,KACxBI,KACA+zD,EACA/zD,KAAK60E,UACL70E,KAAK28E,aACL,EACA,EAER,CAEA,SAAS2C,KACL,OAAOzY,GAAY7mE,KAAK++D,OAAQ,EAAG,EACvC,CAEA,SAASwgB,KACL,OAAO1Y,GAAY7mE,KAAKw/E,cAAe,EAAG,EAC9C,CAEA,SAASC,KACL,IAAIC,EAAW1/E,KAAKo7D,aAAa4L,MACjC,OAAOH,GAAY7mE,KAAK++D,OAAQ2gB,EAAS1Z,IAAK0Z,EAASzZ,IAC3D,CAEA,SAAS0Z,KACL,IAAID,EAAW1/E,KAAKo7D,aAAa4L,MACjC,OAAOH,GAAY7mE,KAAKuxE,WAAYmO,EAAS1Z,IAAK0Z,EAASzZ,IAC/D,CAEA,SAASmZ,GAAqBrrB,EAAOsS,EAAMC,EAASN,EAAKC,GACrD,IAAI2Z,EACJ,OAAa,MAAT7rB,EACO2S,GAAW1mE,KAAMgmE,EAAKC,GAAKlH,MAG9BsH,GADJuZ,EAAc/Y,GAAY9S,EAAOiS,EAAKC,MAElCI,EAAOuZ,GAEJC,GAAWjgF,KAAKI,KAAM+zD,EAAOsS,EAAMC,EAASN,EAAKC,GAEhE,CAEA,SAAS4Z,GAAWtO,EAAUlL,EAAMC,EAASN,EAAKC,GAC9C,IAAI6Z,EAAgB1Z,GAAmBmL,EAAUlL,EAAMC,EAASN,EAAKC,GACjExG,EAAOkG,GAAcma,EAAc/gB,KAAM,EAAG+gB,EAAcrZ,WAK9D,OAHAzmE,KAAK++D,KAAKU,EAAKoG,kBACf7lE,KAAKw/D,MAAMC,EAAKmR,eAChB5wE,KAAKy/D,KAAKA,EAAKoR,cACR7wE,IACX,CAuBA,SAAS+/E,GAAchsB,GACnB,OAAgB,MAATA,EACDhrD,KAAKgnB,MAAM/vB,KAAKw/D,QAAU,GAAK,GAC/Bx/D,KAAKw/D,MAAoB,GAAbzL,EAAQ,GAAU/zD,KAAKw/D,QAAU,EACvD,CApaAzE,EAAe,IAAK,EAAG,EAAG,WAC1BA,EAAe,KAAM,EAAG,EAAG,WAC3BA,EAAe,MAAO,EAAG,EAAG,WAC5BA,EAAe,OAAQ,EAAG,EAAG,WAC7BA,EAAe,QAAS,EAAG,EAAG,aAE9BA,EAAe,IAAK,CAAC,IAAK,GAAI,KAAM,WACpCA,EAAe,IAAK,CAAC,KAAM,GAAI,EAAG,WAClCA,EAAe,IAAK,CAAC,MAAO,GAAI,EAAG,WACnCA,EAAe,IAAK,CAAC,OAAQ,GAAI,EAAG,WAEpCkG,GAAc,IAAKwd,IACnBxd,GAAc,KAAMwd,IACpBxd,GAAc,MAAOwd,IACrBxd,GAAc,OAAQyd,IACtBzd,GAAc,QAAS0d,IAEvB7c,GACI,CAAC,IAAK,KAAM,MAAO,OAAQ,UAC3B,SAAU/N,EAAOwH,EAAOtD,EAAQ+C,GAC5B,IAAInF,EAAMoC,EAAOF,QAAQioB,UAAUjsB,EAAOiH,EAAO/C,EAAOtB,SACpDd,EACAI,EAAgBgC,GAAQpC,IAAMA,EAE9BI,EAAgBgC,GAAQ1C,WAAaxB,CAE7C,IAGJkN,GAAc,IAAKN,IACnBM,GAAc,KAAMN,IACpBM,GAAc,MAAON,IACrBM,GAAc,OAAQN,IACtBM,GAAc,KAAM2d,IAEpB9c,GAAc,CAAC,IAAK,KAAM,MAAO,QAASM,IAC1CN,GAAc,CAAC,OAAO,SAAU/N,EAAOwH,EAAOtD,EAAQ+C,GAClD,IAAIvO,EACAwL,EAAOF,QAAQ8mB,uBACfpyB,EAAQsH,EAAMtH,MAAMwL,EAAOF,QAAQ8mB,uBAGnC5mB,EAAOF,QAAQkoB,oBACf1kB,EAAM6G,IAAQnK,EAAOF,QAAQkoB,oBAAoBlsB,EAAOtH,GAExD8O,EAAM6G,IAAQ5pD,SAASu7C,EAAO,GAEtC,IA0OAgH,EAAe,EAAG,CAAC,KAAM,GAAI,GAAG,WAC5B,OAAO/6D,KAAKuxE,WAAa,GAC7B,IAEAxW,EAAe,EAAG,CAAC,KAAM,GAAI,GAAG,WAC5B,OAAO/6D,KAAKw/E,cAAgB,GAChC,IAMAP,GAAuB,OAAQ,YAC/BA,GAAuB,QAAS,YAChCA,GAAuB,OAAQ,eAC/BA,GAAuB,QAAS,eAIhCnhB,GAAa,WAAY,MACzBA,GAAa,cAAe,MAI5BW,GAAgB,WAAY,GAC5BA,GAAgB,cAAe,GAI/BwC,GAAc,IAAKL,IACnBK,GAAc,IAAKL,IACnBK,GAAc,KAAMZ,GAAWJ,IAC/BgB,GAAc,KAAMZ,GAAWJ,IAC/BgB,GAAc,OAAQR,GAAWN,IACjCc,GAAc,OAAQR,GAAWN,IACjCc,GAAc,QAASP,GAAWN,IAClCa,GAAc,QAASP,GAAWN,IAElC4B,GACI,CAAC,OAAQ,QAAS,OAAQ,UAC1B,SAAUjO,EAAOsS,EAAMpO,EAAQ+C,GAC3BqL,EAAKrL,EAAMniD,OAAO,EAAG,IAAMomD,GAAMlL,EACrC,IAGJiO,GAAkB,CAAC,KAAM,OAAO,SAAUjO,EAAOsS,EAAMpO,EAAQ+C,GAC3DqL,EAAKrL,GAASrH,EAAM0R,kBAAkBtR,EAC1C,IAqEAgH,EAAe,IAAK,EAAG,KAAM,WAI7B+C,GAAa,UAAW,KAIxBW,GAAgB,UAAW,GAI3BwC,GAAc,IAAKjB,IACnB8B,GAAc,KAAK,SAAU/N,EAAOwH,GAChCA,EAAM8G,IAA8B,GAApBpD,GAAMlL,GAAS,EACnC,IAYAgH,EAAe,IAAK,CAAC,KAAM,GAAI,KAAM,QAIrC+C,GAAa,OAAQ,KAGrBW,GAAgB,OAAQ,GAIxBwC,GAAc,IAAKZ,IACnBY,GAAc,KAAMZ,GAAWJ,IAC/BgB,GAAc,MAAM,SAAUG,EAAUvM,GAEpC,OAAOuM,EACDvM,EAAOuE,yBAA2BvE,EAAOwE,cACzCxE,EAAOqE,8BACjB,IAEA4I,GAAc,CAAC,IAAK,MAAOQ,IAC3BR,GAAc,MAAM,SAAU/N,EAAOwH,GACjCA,EAAM+G,IAAQrD,GAAMlL,EAAMtH,MAAM4T,IAAW,GAC/C,IAIA,IAAI6f,GAAmB7gB,GAAW,QAAQ,GAyB1C,SAAS8gB,GAAgBpsB,GACrB,IAAI0S,EACA19D,KAAKoB,OACAnK,KAAK6jB,QAAQi2D,QAAQ,OAAS95E,KAAK6jB,QAAQi2D,QAAQ,SAAW,OAC/D,EACR,OAAgB,MAAT/lB,EAAgB0S,EAAYzmE,KAAKgmC,IAAI+tB,EAAQ0S,EAAW,IACnE,CA3BA1L,EAAe,MAAO,CAAC,OAAQ,GAAI,OAAQ,aAI3C+C,GAAa,YAAa,OAG1BW,GAAgB,YAAa,GAI7BwC,GAAc,MAAOT,IACrBS,GAAc,OAAQf,IACtB4B,GAAc,CAAC,MAAO,SAAS,SAAU/N,EAAOwH,EAAOtD,GACnDA,EAAOoZ,WAAapS,GAAMlL,EAC9B,IAgBAgH,EAAe,IAAK,CAAC,KAAM,GAAI,EAAG,UAIlC+C,GAAa,SAAU,KAIvBW,GAAgB,SAAU,IAI1BwC,GAAc,IAAKZ,IACnBY,GAAc,KAAMZ,GAAWJ,IAC/B6B,GAAc,CAAC,IAAK,MAAOU,IAI3B,IAAI4d,GAAe/gB,GAAW,WAAW,GAIzCtE,EAAe,IAAK,CAAC,KAAM,GAAI,EAAG,UAIlC+C,GAAa,SAAU,KAIvBW,GAAgB,SAAU,IAI1BwC,GAAc,IAAKZ,IACnBY,GAAc,KAAMZ,GAAWJ,IAC/B6B,GAAc,CAAC,IAAK,MAAOW,IAI3B,IA8CIzH,GAAOqlB,GA9CPC,GAAejhB,GAAW,WAAW,GA+CzC,IA3CAtE,EAAe,IAAK,EAAG,GAAG,WACtB,SAAU/6D,KAAKqzE,cAAgB,IACnC,IAEAtY,EAAe,EAAG,CAAC,KAAM,GAAI,GAAG,WAC5B,SAAU/6D,KAAKqzE,cAAgB,GACnC,IAEAtY,EAAe,EAAG,CAAC,MAAO,GAAI,EAAG,eACjCA,EAAe,EAAG,CAAC,OAAQ,GAAI,GAAG,WAC9B,OAA4B,GAArB/6D,KAAKqzE,aAChB,IACAtY,EAAe,EAAG,CAAC,QAAS,GAAI,GAAG,WAC/B,OAA4B,IAArB/6D,KAAKqzE,aAChB,IACAtY,EAAe,EAAG,CAAC,SAAU,GAAI,GAAG,WAChC,OAA4B,IAArB/6D,KAAKqzE,aAChB,IACAtY,EAAe,EAAG,CAAC,UAAW,GAAI,GAAG,WACjC,OAA4B,IAArB/6D,KAAKqzE,aAChB,IACAtY,EAAe,EAAG,CAAC,WAAY,GAAI,GAAG,WAClC,OAA4B,IAArB/6D,KAAKqzE,aAChB,IACAtY,EAAe,EAAG,CAAC,YAAa,GAAI,GAAG,WACnC,OAA4B,IAArB/6D,KAAKqzE,aAChB,IAIAvV,GAAa,cAAe,MAI5BW,GAAgB,cAAe,IAI/BwC,GAAc,IAAKT,GAAWR,IAC9BiB,GAAc,KAAMT,GAAWP,IAC/BgB,GAAc,MAAOT,GAAWN,IAG3BlF,GAAQ,OAAQA,GAAMz6D,QAAU,EAAGy6D,IAAS,IAC7CiG,GAAcjG,GAAO2F,IAGzB,SAAS4f,GAAQxsB,EAAOwH,GACpBA,EAAMmH,IAAezD,GAAuB,KAAhB,KAAOlL,GACvC,CAEA,IAAKiH,GAAQ,IAAKA,GAAMz6D,QAAU,EAAGy6D,IAAS,IAC1C8G,GAAc9G,GAAOulB,IAYzB,SAASC,KACL,OAAOxgF,KAAK63D,OAAS,MAAQ,EACjC,CAEA,SAAS4oB,KACL,OAAOzgF,KAAK63D,OAAS,6BAA+B,EACxD,CAfAwoB,GAAoBhhB,GAAW,gBAAgB,GAI/CtE,EAAe,IAAK,EAAG,EAAG,YAC1BA,EAAe,KAAM,EAAG,EAAG,YAY3B,IAAI2lB,GAAQ1oB,EAAOt4D,UAwGnB,SAASihF,GAAW5sB,GAChB,OAAO6d,GAAoB,IAAR7d,EACvB,CAEA,SAAS6sB,KACL,OAAOhP,GAAYnxE,MAAM,KAAMH,WAAWugF,WAC9C,CAEA,SAASC,GAAmBtjB,GACxB,OAAOA,CACX,CAhHAkjB,GAAM16C,IAAMA,GACZ06C,GAAMzmB,SAAW0f,GACjB+G,GAAM78D,MAAQA,GACd68D,GAAM9iB,KAAOA,GACb8iB,GAAMzG,MAAQA,GACdyG,GAAM9rB,OAASA,GACf8rB,GAAMppB,KAAOA,GACbopB,GAAM7E,QAAUA,GAChB6E,GAAM7/D,GAAKA,GACX6/D,GAAM5E,MAAQA,GACd4E,GAAM79E,IAAM88D,GACZ+gB,GAAMzD,UAAYA,GAClByD,GAAMpI,QAAUA,GAChBoI,GAAMnI,SAAWA,GACjBmI,GAAMxG,UAAYA,GAClBwG,GAAMpG,OAASA,GACfoG,GAAMlG,cAAgBA,GACtBkG,GAAMjG,eAAiBA,GACvBiG,GAAMvqB,QAAU4mB,GAChB2D,GAAM1E,KAAOA,GACb0E,GAAM7rB,OAASA,GACf6rB,GAAMtlB,WAAaA,GACnBslB,GAAMp3E,IAAMuqE,GACZ6M,GAAMl3E,IAAMmqE,GACZ+M,GAAM1D,aAAeA,GACrB0D,GAAM/7E,IAAMi7D,GACZ8gB,GAAM5G,QAAUA,GAChB4G,GAAMxJ,SAAWA,GACjBwJ,GAAMjJ,QAAUA,GAChBiJ,GAAM7D,SAAWA,GACjB6D,GAAMxF,OAASA,GACfwF,GAAM1F,YAAcA,GACpB0F,GAAMvF,QAAUA,GACM,qBAAX54E,QAAwC,MAAdA,OAAOuvD,MACxC4uB,GAAMn+E,OAAOuvD,IAAI,+BAAiC,WAC9C,MAAO,UAAY9xD,KAAK40D,SAAW,GACvC,GAEJ8rB,GAAM5D,OAASA,GACf4D,GAAM/zE,SAAWA,GACjB+zE,GAAM9D,KAAOA,GACb8D,GAAMhsB,QAAUA,GAChBgsB,GAAMxD,aAAeA,GACrBwD,GAAMjD,QAAUI,GAChB6C,GAAMK,UAAYjD,GAClB4C,GAAMM,QAAUjD,GAChB2C,GAAMO,QAAUjD,GAChB0C,GAAM3hB,KAAOuG,GACbob,GAAM5hB,WAAayG,GACnBmb,GAAMnP,SAAW4N,GACjBuB,GAAMlB,YAAcH,GACpBqB,GAAM/L,QAAU+L,GAAMhM,SAAWqL,GACjCW,GAAMlhB,MAAQiF,GACdic,GAAMhhB,YAAcgF,GACpBgc,GAAMra,KAAOqa,GAAM9L,MAAQxN,GAC3BsZ,GAAM7L,QAAU6L,GAAMQ,SAAW7Z,GACjCqZ,GAAM7Z,YAAc4Y,GACpBiB,GAAMS,gBAAkBxB,GACxBe,GAAMU,eAAiB9B,GACvBoB,GAAMW,sBAAwB9B,GAC9BmB,GAAMjhB,KAAOygB,GACbQ,GAAMjY,IAAMiY,GAAM5L,KAAOxL,GACzBoX,GAAMpa,QAAUkD,GAChBkX,GAAM/D,WAAalT,GACnBiX,GAAMja,UAAY0Z,GAClBO,GAAMrO,KAAOqO,GAAMpW,MAAQe,GAC3BqV,GAAMvN,OAASuN,GAAMjW,QAAU2V,GAC/BM,GAAMtN,OAASsN,GAAM7V,QAAUyV,GAC/BI,GAAMrN,YAAcqN,GAAM3L,aAAesL,GACzCK,GAAM9K,UAAYa,GAClBiK,GAAM1rB,IAAMgiB,GACZ0J,GAAMpK,MAAQW,GACdyJ,GAAMG,UAAY1J,GAClBuJ,GAAMrJ,qBAAuBA,GAC7BqJ,GAAMY,MAAQhK,GACdoJ,GAAMhJ,QAAUA,GAChBgJ,GAAM/I,YAAcA,GACpB+I,GAAM9I,MAAQA,GACd8I,GAAMhN,MAAQkE,GACd8I,GAAMa,SAAWf,GACjBE,GAAMc,SAAWf,GACjBC,GAAMe,MAAQnpB,EACV,kDACA4nB,IAEJQ,GAAM3d,OAASzK,EACX,mDACAmM,IAEJic,GAAMjM,MAAQnc,EACV,iDACAgN,IAEJob,GAAMnF,KAAOjjB,EACT,2GACAye,IAEJ2J,GAAMgB,aAAeppB,EACjB,0GACAif,IAeJ,IAAIoK,GAAUloB,EAAO/5D,UAuCrB,SAASkiF,GAAMhtB,EAAQhsC,EAAOi5D,EAAOC,GACjC,IAAIjtB,EAAS8X,KACT3X,EAAML,IAAYhwD,IAAIm9E,EAAQl5D,GAClC,OAAOisC,EAAOgtB,GAAO7sB,EAAKJ,EAC9B,CAEA,SAASmtB,GAAentB,EAAQhsC,EAAOi5D,GAQnC,GAPIxtB,EAASO,KACThsC,EAAQgsC,EACRA,OAASgC,GAGbhC,EAASA,GAAU,GAEN,MAAThsC,EACA,OAAOg5D,GAAMhtB,EAAQhsC,EAAOi5D,EAAO,SAGvC,IAAIxhF,EACA2hF,EAAM,GACV,IAAK3hF,EAAI,EAAGA,EAAI,GAAIA,IAChB2hF,EAAI3hF,GAAKuhF,GAAMhtB,EAAQv0D,EAAGwhF,EAAO,SAErC,OAAOG,CACX,CAUA,SAASC,GAAiBC,EAActtB,EAAQhsC,EAAOi5D,GACvB,mBAAjBK,GACH7tB,EAASO,KACThsC,EAAQgsC,EACRA,OAASgC,GAGbhC,EAASA,GAAU,KAGnBhsC,EADAgsC,EAASstB,EAETA,GAAe,EAEX7tB,EAASO,KACThsC,EAAQgsC,EACRA,OAASgC,GAGbhC,EAASA,GAAU,IAGvB,IAEIv0D,EAFAw0D,EAAS8X,KACT7oE,EAAQo+E,EAAertB,EAAOmS,MAAMhB,IAAM,EAE1Cgc,EAAM,GAEV,GAAa,MAATp5D,EACA,OAAOg5D,GAAMhtB,GAAShsC,EAAQ9kB,GAAS,EAAG+9E,EAAO,OAGrD,IAAKxhF,EAAI,EAAGA,EAAI,EAAGA,IACf2hF,EAAI3hF,GAAKuhF,GAAMhtB,GAASv0D,EAAIyD,GAAS,EAAG+9E,EAAO,OAEnD,OAAOG,CACX,CAEA,SAASG,GAAWvtB,EAAQhsC,GACxB,OAAOm5D,GAAentB,EAAQhsC,EAAO,SACzC,CAEA,SAASw5D,GAAgBxtB,EAAQhsC,GAC7B,OAAOm5D,GAAentB,EAAQhsC,EAAO,cACzC,CAEA,SAASy5D,GAAaH,EAActtB,EAAQhsC,GACxC,OAAOq5D,GAAiBC,EAActtB,EAAQhsC,EAAO,WACzD,CAEA,SAAS05D,GAAkBJ,EAActtB,EAAQhsC,GAC7C,OAAOq5D,GAAiBC,EAActtB,EAAQhsC,EAAO,gBACzD,CAEA,SAAS25D,GAAgBL,EAActtB,EAAQhsC,GAC3C,OAAOq5D,GAAiBC,EAActtB,EAAQhsC,EAAO,cACzD,CA7HA+4D,GAAQ1nB,SAAWA,EACnB0nB,GAAQ/lB,eAAiBA,EACzB+lB,GAAQjmB,YAAcA,EACtBimB,GAAQzmB,QAAUA,EAClBymB,GAAQnO,SAAWsN,GACnBa,GAAQhG,WAAamF,GACrBa,GAAQrkB,aAAeA,EACvBqkB,GAAQhkB,WAAaA,GACrBgkB,GAAQh9E,IAAMA,EACdg9E,GAAQvE,KAAOD,GACfwE,GAAQ3B,UAAYxC,GACpBmE,GAAQvP,gBAAkBuL,GAC1BgE,GAAQtD,cAAgBA,GACxBsD,GAAQ1D,cAAgBA,GACxB0D,GAAQpD,gBAAkBA,GAE1BoD,GAAQ5e,OAASS,GACjBme,GAAQ7e,YAAca,GACtBge,GAAQze,YAAcmB,GACtBsd,GAAQ1e,YAAcA,GACtB0e,GAAQ3e,iBAAmBA,GAC3B2e,GAAQtb,KAAOU,GACf4a,GAAQa,eAAiBrb,GACzBwa,GAAQc,eAAiBvb,GAEzBya,GAAQ9Z,SAAWU,GACnBoZ,GAAQha,YAAciB,GACtB+Y,GAAQ/Z,cAAgBc,GACxBiZ,GAAQpa,cAAgB4B,GAExBwY,GAAQ3Z,cAAgBA,GACxB2Z,GAAQ5Z,mBAAqBA,GAC7B4Z,GAAQ7Z,iBAAmBA,GAE3B6Z,GAAQ3W,KAAOJ,GACf+W,GAAQ7rB,SAAWwV,GA4FnBoB,GAAmB,KAAM,CACrB0Q,KAAM,CACF,CACIE,MAAO,aACPC,MAAO,IACPhhC,OAAQ,EACRhnC,KAAM,cACNmoE,OAAQ,KACR7Q,KAAM,MAEV,CACIyQ,MAAO,aACPC,OAAO,IACPhhC,OAAQ,EACRhnC,KAAM,gBACNmoE,OAAQ,KACR7Q,KAAM,OAGdnB,uBAAwB,uBACxBxQ,QAAS,SAAUZ,GACf,IAAIp7C,EAAIo7C,EAAS,GAWjB,OAAOA,GATgC,IAA/B2E,GAAO3E,EAAS,IAAO,IACjB,KACM,IAANp7C,EACA,KACM,IAANA,EACA,KACM,IAANA,EACA,KACA,KAElB,IAKJy0C,EAAMqoB,KAAO1jB,EACT,wDACAoU,IAEJ/Y,EAAM+uB,SAAWpqB,EACb,gEACAqU,IAGJ,IAAIgW,GAAU55E,KAAKa,IAEnB,SAASA,KACL,IAAIgE,EAAO5N,KAAK+4C,MAahB,OAXA/4C,KAAKg1E,cAAgB2N,GAAQ3iF,KAAKg1E,eAClCh1E,KAAKi1E,MAAQ0N,GAAQ3iF,KAAKi1E,OAC1Bj1E,KAAKyjE,QAAUkf,GAAQ3iF,KAAKyjE,SAE5B71D,EAAKmnE,aAAe4N,GAAQ/0E,EAAKmnE,cACjCnnE,EAAKi9D,QAAU8X,GAAQ/0E,EAAKi9D,SAC5Bj9D,EAAK68D,QAAUkY,GAAQ/0E,EAAK68D,SAC5B78D,EAAK08D,MAAQqY,GAAQ/0E,EAAK08D,OAC1B18D,EAAKm1D,OAAS4f,GAAQ/0E,EAAKm1D,QAC3Bn1D,EAAK6mE,MAAQkO,GAAQ/0E,EAAK6mE,OAEnBz0E,IACX,CAEA,SAAS4iF,GAAcxtE,EAAU2+C,EAAOhyD,EAAOsJ,GAC3C,IAAIuoE,EAAQW,GAAexgB,EAAOhyD,GAMlC,OAJAqT,EAAS4/D,eAAiB3pE,EAAYuoE,EAAMoB,cAC5C5/D,EAAS6/D,OAAS5pE,EAAYuoE,EAAMqB,MACpC7/D,EAASquD,SAAWp4D,EAAYuoE,EAAMnQ,QAE/BruD,EAAS8/D,SACpB,CAGA,SAAS2N,GAAM9uB,EAAOhyD,GAClB,OAAO6gF,GAAc5iF,KAAM+zD,EAAOhyD,EAAO,EAC7C,CAGA,SAAS+gF,GAAW/uB,EAAOhyD,GACvB,OAAO6gF,GAAc5iF,KAAM+zD,EAAOhyD,GAAQ,EAC9C,CAEA,SAASghF,GAAQzoB,GACb,OAAIA,EAAS,EACFvxD,KAAKK,MAAMkxD,GAEXvxD,KAAKgnB,KAAKuqC,EAEzB,CAEA,SAAS0oB,KACL,IAIInY,EACAJ,EACAH,EACAmK,EACAwO,EARAlO,EAAe/0E,KAAKg1E,cACpBF,EAAO90E,KAAKi1E,MACZlS,EAAS/iE,KAAKyjE,QACd71D,EAAO5N,KAAK+4C,MAgDhB,OArCSg8B,GAAgB,GAAKD,GAAQ,GAAK/R,GAAU,GAC5CgS,GAAgB,GAAKD,GAAQ,GAAK/R,GAAU,IAGjDgS,GAAuD,MAAvCgO,GAAQG,GAAangB,GAAU+R,GAC/CA,EAAO,EACP/R,EAAS,GAKbn1D,EAAKmnE,aAAeA,EAAe,IAEnClK,EAAU7L,GAAS+V,EAAe,KAClCnnE,EAAKi9D,QAAUA,EAAU,GAEzBJ,EAAUzL,GAAS6L,EAAU,IAC7Bj9D,EAAK68D,QAAUA,EAAU,GAEzBH,EAAQtL,GAASyL,EAAU,IAC3B78D,EAAK08D,MAAQA,EAAQ,GAErBwK,GAAQ9V,GAASsL,EAAQ,IAIzBvH,GADAkgB,EAAiBjkB,GAASmkB,GAAarO,IAEvCA,GAAQiO,GAAQG,GAAaD,IAG7BxO,EAAQzV,GAAS+D,EAAS,IAC1BA,GAAU,GAEVn1D,EAAKknE,KAAOA,EACZlnE,EAAKm1D,OAASA,EACdn1D,EAAK6mE,MAAQA,EAENz0E,IACX,CAEA,SAASmjF,GAAarO,GAGlB,OAAe,KAAPA,EAAe,MAC3B,CAEA,SAASoO,GAAangB,GAElB,OAAiB,OAATA,EAAmB,IAC/B,CAEA,SAASqgB,GAAGjlB,GACR,IAAKn+D,KAAKm2D,UACN,OAAOa,IAEX,IAAI8d,EACA/R,EACAgS,EAAe/0E,KAAKg1E,cAIxB,GAAc,WAFd7W,EAAQD,GAAeC,KAEY,YAAVA,GAAiC,SAAVA,EAG5C,OAFA2W,EAAO90E,KAAKi1E,MAAQF,EAAe,MACnChS,EAAS/iE,KAAKyjE,QAAU0f,GAAarO,GAC7B3W,GACJ,IAAK,QACD,OAAO4E,EACX,IAAK,UACD,OAAOA,EAAS,EACpB,IAAK,OACD,OAAOA,EAAS,QAKxB,OADA+R,EAAO90E,KAAKi1E,MAAQlsE,KAAKoB,MAAM+4E,GAAaljF,KAAKyjE,UACzCtF,GACJ,IAAK,OACD,OAAO2W,EAAO,EAAIC,EAAe,OACrC,IAAK,MACD,OAAOD,EAAOC,EAAe,MACjC,IAAK,OACD,OAAc,GAAPD,EAAYC,EAAe,KACtC,IAAK,SACD,OAAc,KAAPD,EAAcC,EAAe,IACxC,IAAK,SACD,OAAc,MAAPD,EAAeC,EAAe,IAEzC,IAAK,cACD,OAAOhsE,KAAKK,MAAa,MAAP0rE,GAAgBC,EACtC,QACI,MAAM,IAAIzvE,MAAM,gBAAkB64D,GAGlD,CAGA,SAASklB,KACL,OAAKrjF,KAAKm2D,UAINn2D,KAAKg1E,cACQ,MAAbh1E,KAAKi1E,MACJj1E,KAAKyjE,QAAU,GAAM,OACK,QAA3BxE,GAAMj/D,KAAKyjE,QAAU,IANdzM,GAQf,CAEA,SAASssB,GAAOC,GACZ,OAAO,WACH,OAAOvjF,KAAKojF,GAAGG,EACnB,CACJ,CAEA,IAAIC,GAAiBF,GAAO,MACxBG,GAAYH,GAAO,KACnBI,GAAYJ,GAAO,KACnBK,GAAUL,GAAO,KACjBM,GAASN,GAAO,KAChBO,GAAUP,GAAO,KACjBQ,GAAWR,GAAO,KAClBS,GAAaT,GAAO,KACpBU,GAAUV,GAAO,KAErB,SAASW,KACL,OAAO1P,GAAev0E,KAC1B,CAEA,SAASkkF,GAAM/lB,GAEX,OADAA,EAAQD,GAAeC,GAChBn+D,KAAKm2D,UAAYn2D,KAAKm+D,EAAQ,OAASnH,GAClD,CAEA,SAASmtB,GAAW5uE,GAChB,OAAO,WACH,OAAOvV,KAAKm2D,UAAYn2D,KAAK+4C,MAAMxjC,GAAQyhD,GAC/C,CACJ,CAEA,IAAI+d,GAAeoP,GAAW,gBAC1BtZ,GAAUsZ,GAAW,WACrB1Z,GAAU0Z,GAAW,WACrB7Z,GAAQ6Z,GAAW,SACnBrP,GAAOqP,GAAW,QAClBphB,GAASohB,GAAW,UACpB1P,GAAQ0P,GAAW,SAEvB,SAASvP,KACL,OAAO5V,GAASh/D,KAAK80E,OAAS,EAClC,CAEA,IAAI3qE,GAAQpB,KAAKoB,MACbi6E,GAAa,CACTrnB,GAAI,GACJh8D,EAAG,GACHmN,EAAG,GACHvM,EAAG,GACH0M,EAAG,GACHwR,EAAG,KACHE,EAAG,IAIX,SAASskE,GAAkB7mB,EAAQlD,EAAQiD,EAAeE,EAAU5I,GAChE,OAAOA,EAAOyI,aAAahD,GAAU,IAAKiD,EAAeC,EAAQC,EACrE,CAEA,SAAS6mB,GAAeC,EAAgBhnB,EAAe6mB,EAAYvvB,GAC/D,IAAIz/C,EAAWm/D,GAAegQ,GAAgB36E,MAC1CihE,EAAU1gE,GAAMiL,EAASguE,GAAG,MAC5B3Y,EAAUtgE,GAAMiL,EAASguE,GAAG,MAC5B9Y,EAAQngE,GAAMiL,EAASguE,GAAG,MAC1BtO,EAAO3qE,GAAMiL,EAASguE,GAAG,MACzBrgB,EAAS54D,GAAMiL,EAASguE,GAAG,MAC3BxO,EAAQzqE,GAAMiL,EAASguE,GAAG,MAC1B3O,EAAQtqE,GAAMiL,EAASguE,GAAG,MAC1B5iF,EACKqqE,GAAWuZ,EAAWrnB,IAAM,CAAC,IAAK8N,IAClCA,EAAUuZ,EAAWrjF,GAAK,CAAC,KAAM8pE,IACjCJ,GAAW,GAAK,CAAC,MACjBA,EAAU2Z,EAAWl2E,GAAK,CAAC,KAAMu8D,IACjCH,GAAS,GAAK,CAAC,MACfA,EAAQ8Z,EAAWziF,GAAK,CAAC,KAAM2oE,IAC/BwK,GAAQ,GAAK,CAAC,MACdA,EAAOsP,EAAW/1E,GAAK,CAAC,KAAMymE,GAgBvC,OAdoB,MAAhBsP,EAAWvkE,IACXrf,EACIA,GACCo0E,GAAS,GAAK,CAAC,MACfA,EAAQwP,EAAWvkE,GAAK,CAAC,KAAM+0D,KAExCp0E,EAAIA,GACCuiE,GAAU,GAAK,CAAC,MAChBA,EAASqhB,EAAWrkE,GAAK,CAAC,KAAMgjD,IAChC0R,GAAS,GAAK,CAAC,MAAS,CAAC,KAAMA,IAElC,GAAKlX,EACP/8D,EAAE,IAAM+jF,EAAiB,EACzB/jF,EAAE,GAAKq0D,EACAwvB,GAAkB5jF,MAAM,KAAMD,EACzC,CAGA,SAASgkF,GAA2BC,GAChC,YAAyB7tB,IAArB6tB,EACOt6E,GAEqB,oBAArBs6E,IACPt6E,GAAQs6E,GACD,EAGf,CAGA,SAASC,GAA4BC,EAAWC,GAC5C,YAA8BhuB,IAA1BwtB,GAAWO,UAGD/tB,IAAVguB,EACOR,GAAWO,IAEtBP,GAAWO,GAAaC,EACN,MAAdD,IACAP,GAAWrnB,GAAK6nB,EAAQ,IAErB,GACX,CAEA,SAAShJ,GAASiJ,EAAeC,GAC7B,IAAK9kF,KAAKm2D,UACN,OAAOn2D,KAAKo7D,aAAaM,cAG7B,IAEI7G,EACAsF,EAHA4qB,GAAa,EACbC,EAAKZ,GAyBT,MArB6B,kBAAlBS,IACPC,EAAgBD,EAChBA,GAAgB,GAES,mBAAlBA,IACPE,EAAaF,GAEY,kBAAlBC,IACPE,EAAK3lF,OAAOe,OAAO,CAAC,EAAGgkF,GAAYU,GACZ,MAAnBA,EAAc/jF,GAAiC,MAApB+jF,EAAc/nB,KACzCioB,EAAGjoB,GAAK+nB,EAAc/jF,EAAI,IAKlCo5D,EAASmqB,GAAetkF,MAAO+kF,EAAYC,EAD3CnwB,EAAS70D,KAAKo7D,cAGV2pB,IACA5qB,EAAStF,EAAO8I,YAAY39D,KAAMm6D,IAG/BtF,EAAO8mB,WAAWxhB,EAC7B,CAEA,IAAI8qB,GAAQl8E,KAAKa,IAEjB,SAASisE,GAAKv2D,GACV,OAAQA,EAAI,IAAMA,EAAI,KAAOA,CACjC,CAEA,SAAS4lE,KAQL,IAAKllF,KAAKm2D,UACN,OAAOn2D,KAAKo7D,aAAaM,cAG7B,IAGI+O,EACAH,EACAmK,EACA1zE,EAEAokF,EACAC,EACAC,EACAC,EAXAza,EAAUoa,GAAMjlF,KAAKg1E,eAAiB,IACtCF,EAAOmQ,GAAMjlF,KAAKi1E,OAClBlS,EAASkiB,GAAMjlF,KAAKyjE,SAKpB8hB,EAAQvlF,KAAKyjF,YAMjB,OAAK8B,GAOL9a,EAAUzL,GAAS6L,EAAU,IAC7BP,EAAQtL,GAASyL,EAAU,IAC3BI,GAAW,GACXJ,GAAW,GAGXgK,EAAQzV,GAAS+D,EAAS,IAC1BA,GAAU,GAGVhiE,EAAI8pE,EAAUA,EAAQ2a,QAAQ,GAAG/nE,QAAQ,SAAU,IAAM,GAEzD0nE,EAAYI,EAAQ,EAAI,IAAM,GAC9BH,EAASvP,GAAK71E,KAAKyjE,WAAaoS,GAAK0P,GAAS,IAAM,GACpDF,EAAWxP,GAAK71E,KAAKi1E,SAAWY,GAAK0P,GAAS,IAAM,GACpDD,EAAUzP,GAAK71E,KAAKg1E,iBAAmBa,GAAK0P,GAAS,IAAM,GAGvDJ,EACA,KACC1Q,EAAQ2Q,EAAS3Q,EAAQ,IAAM,KAC/B1R,EAASqiB,EAASriB,EAAS,IAAM,KACjC+R,EAAOuQ,EAAWvQ,EAAO,IAAM,KAC/BxK,GAASG,GAAWI,EAAU,IAAM,KACpCP,EAAQgb,EAAUhb,EAAQ,IAAM,KAChCG,EAAU6a,EAAU7a,EAAU,IAAM,KACpCI,EAAUya,EAAUvkF,EAAI,IAAM,KA9BxB,KAgCf,CAEA,IAAI0kF,GAAUjR,GAAS90E,UAwGvB,OAtGA+lF,GAAQtvB,QAAUke,GAClBoR,GAAQ77E,IAAMA,GACd67E,GAAQz/C,IAAM68C,GACd4C,GAAQvO,SAAW4L,GACnB2C,GAAQrC,GAAKA,GACbqC,GAAQjC,eAAiBA,GACzBiC,GAAQhC,UAAYA,GACpBgC,GAAQ/B,UAAYA,GACpB+B,GAAQ9B,QAAUA,GAClB8B,GAAQ7B,OAASA,GACjB6B,GAAQ5B,QAAUA,GAClB4B,GAAQ3B,SAAWA,GACnB2B,GAAQ1B,WAAaA,GACrB0B,GAAQzB,QAAUA,GAClByB,GAAQ/wB,QAAU2uB,GAClBoC,GAAQvQ,QAAU8N,GAClByC,GAAQ5hE,MAAQogE,GAChBwB,GAAQ5iF,IAAMqhF,GACduB,GAAQ1Q,aAAeA,GACvB0Q,GAAQ5a,QAAUA,GAClB4a,GAAQhb,QAAUA,GAClBgb,GAAQnb,MAAQA,GAChBmb,GAAQ3Q,KAAOA,GACf2Q,GAAQ7Q,MAAQA,GAChB6Q,GAAQ1iB,OAASA,GACjB0iB,GAAQhR,MAAQA,GAChBgR,GAAQ7J,SAAWA,GACnB6J,GAAQzK,YAAckK,GACtBO,GAAQ94E,SAAWu4E,GACnBO,GAAQ3I,OAASoI,GACjBO,GAAQ5wB,OAASA,GACjB4wB,GAAQrqB,WAAaA,GAErBqqB,GAAQC,YAAcptB,EAClB,sFACA4sB,IAEJO,GAAQzJ,KAAOA,GAIfjhB,EAAe,IAAK,EAAG,EAAG,QAC1BA,EAAe,IAAK,EAAG,EAAG,WAI1BkG,GAAc,IAAKL,IACnBK,GAAc,IAAKF,IACnBe,GAAc,KAAK,SAAU/N,EAAOwH,EAAOtD,GACvCA,EAAOzB,GAAK,IAAIhkC,KAAyB,IAApB4hD,WAAWrgB,GACpC,IACA+N,GAAc,KAAK,SAAU/N,EAAOwH,EAAOtD,GACvCA,EAAOzB,GAAK,IAAIhkC,KAAKysC,GAAMlL,GAC/B,IAIAJ,EAAMjrC,QAAU,SAEhBkrC,EAAgBge,IAEhBje,EAAMruB,GAAKo7C,GACX/sB,EAAMnqD,IAAMA,GACZmqD,EAAMrqD,IAAMA,GACZqqD,EAAMlhC,IAAMA,GACZkhC,EAAMqB,IAAML,EACZhB,EAAMipB,KAAO+D,GACbhtB,EAAMoP,OAASof,GACfxuB,EAAMW,OAASA,EACfX,EAAMkB,OAAS6X,GACf/Y,EAAMilB,QAAU7hB,EAChBpD,EAAMv+C,SAAWm/D,GACjB5gB,EAAMwE,SAAWA,EACjBxE,EAAMkU,SAAWwa,GACjB1uB,EAAMktB,UAAYD,GAClBjtB,EAAMyH,WAAauR,GACnBhZ,EAAMwhB,WAAaA,GACnBxhB,EAAMmP,YAAcsf,GACpBzuB,EAAMgU,YAAc4a,GACpB5uB,EAAMiZ,aAAeA,GACrBjZ,EAAMoZ,aAAeA,GACrBpZ,EAAMiY,QAAUqB,GAChBtZ,EAAMiU,cAAgB0a,GACtB3uB,EAAMuK,eAAiBA,GACvBvK,EAAMgyB,qBAAuBnB,GAC7B7wB,EAAMiyB,sBAAwBlB,GAC9B/wB,EAAMomB,eAAiBN,GACvB9lB,EAAMj0D,UAAYghF,GAGlB/sB,EAAMkyB,UAAY,CACdC,eAAgB,mBAChBC,uBAAwB,sBACxBC,kBAAmB,0BACnB1jB,KAAM,aACN2jB,KAAM,QACNC,aAAc,WACdC,QAAS,eACTxjB,KAAM,aACNN,MAAO,WAGJ1O,CAEX,CA7iLoF/vC,qCCEpF,IAAIwiE,EAAuBv2B,EAAQ,IAEnC,SAASw2B,IAAiB,CAC1B,SAASC,IAA0B,CACnCA,EAAuBC,kBAAoBF,EAE3C7gF,EAAOL,QAAU,WACf,SAASqhF,EAAK/gE,EAAOghE,EAAUC,EAAe/0E,EAAUg1E,EAAcC,GACpE,GAAIA,IAAWR,EAAf,CAIA,IAAIS,EAAM,IAAIvhF,MACZ,mLAKF,MADAuhF,EAAItxE,KAAO,sBACLsxE,CAPN,CAQF,CAEA,SAASC,IACP,OAAON,CACT,CAHAA,EAAKO,WAAaP,EAMlB,IAAIQ,EAAiB,CACnBzrB,MAAOirB,EACPS,OAAQT,EACRU,KAAMV,EACNrrB,KAAMqrB,EACNlsB,OAAQksB,EACRW,OAAQX,EACRhpB,OAAQgpB,EACRY,OAAQZ,EAERa,IAAKb,EACLc,QAASR,EACTnvD,QAAS6uD,EACTe,YAAaf,EACbgB,WAAYV,EACZl1D,KAAM40D,EACNiB,SAAUX,EACVY,MAAOZ,EACPa,UAAWb,EACXv9D,MAAOu9D,EACPc,MAAOd,EAEPe,eAAgBvB,EAChBC,kBAAmBF,GAKrB,OAFAW,EAAec,UAAYd,EAEpBA,CACT,qBC/CExhF,EAAOL,QAAU0qD,EAAQ,IAARA,gCCNnBrqD,EAAOL,QAFoB,iFCGd,IAAI4iF,EAAGl4B,EAAQ,KAASm4B,EAAGn4B,EAAQ,KAAa,SAAShsD,EAAErD,GAAG,IAAI,IAAI0e,EAAE,yDAAyD1e,EAAEyN,EAAE,EAAEA,EAAE3N,UAAUC,OAAO0N,IAAIiR,GAAG,WAAW+pC,mBAAmB3oD,UAAU2N,IAAI,MAAM,yBAAyBzN,EAAE,WAAW0e,EAAE,gHAAgH,CAAC,IAAIy0B,EAAG,IAAIs0C,IAAIC,EAAG,CAAC,EAAE,SAASC,EAAG3nF,EAAE0e,GAAGkpE,EAAG5nF,EAAE0e,GAAGkpE,EAAG5nF,EAAE,UAAU0e,EAAE,CACxb,SAASkpE,EAAG5nF,EAAE0e,GAAW,IAARgpE,EAAG1nF,GAAG0e,EAAM1e,EAAE,EAAEA,EAAE0e,EAAE3e,OAAOC,IAAImzC,EAAG3N,IAAI9mB,EAAE1e,GAAG,CAC5D,IAAI6nF,IAAK,qBAAqBvjF,QAAQ,qBAAqBA,OAAOqB,UAAU,qBAAqBrB,OAAOqB,SAASC,eAAekiF,EAAGjpF,OAAOK,UAAUC,eAAe4oF,EAAG,8VAA8VC,EACpgB,CAAC,EAAEC,EAAG,CAAC,EACiN,SAASjlF,EAAEhD,EAAE0e,EAAEjR,EAAEI,EAAEjP,EAAEyP,EAAEoQ,GAAGjf,KAAK0oF,gBAAgB,IAAIxpE,GAAG,IAAIA,GAAG,IAAIA,EAAElf,KAAK2oF,cAAct6E,EAAErO,KAAK4oF,mBAAmBxpF,EAAEY,KAAK6oF,gBAAgB56E,EAAEjO,KAAK8oF,aAAatoF,EAAER,KAAKkL,KAAKgU,EAAElf,KAAK+oF,YAAYl6E,EAAE7O,KAAKgpF,kBAAkB/pE,CAAC,CAAC,IAAI8G,EAAE,CAAC,EACpb,uIAAuI1W,MAAM,KAAK8jB,SAAQ,SAAS3yB,GAAGulB,EAAEvlB,GAAG,IAAIgD,EAAEhD,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,CAAC,gBAAgB,kBAAkB,CAAC,YAAY,SAAS,CAAC,UAAU,OAAO,CAAC,YAAY,eAAe2yB,SAAQ,SAAS3yB,GAAG,IAAI0e,EAAE1e,EAAE,GAAGulB,EAAE7G,GAAG,IAAI1b,EAAE0b,EAAE,GAAE,EAAG1e,EAAE,GAAG,MAAK,GAAG,EAAG,IAAG,CAAC,kBAAkB,YAAY,aAAa,SAAS2yB,SAAQ,SAAS3yB,GAAGulB,EAAEvlB,GAAG,IAAIgD,EAAEhD,EAAE,GAAE,EAAGA,EAAE+tB,cAAc,MAAK,GAAG,EAAG,IAC1e,CAAC,cAAc,4BAA4B,YAAY,iBAAiB4E,SAAQ,SAAS3yB,GAAGulB,EAAEvlB,GAAG,IAAIgD,EAAEhD,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,8OAA8O6O,MAAM,KAAK8jB,SAAQ,SAAS3yB,GAAGulB,EAAEvlB,GAAG,IAAIgD,EAAEhD,EAAE,GAAE,EAAGA,EAAE+tB,cAAc,MAAK,GAAG,EAAG,IACxb,CAAC,UAAU,WAAW,QAAQ,YAAY4E,SAAQ,SAAS3yB,GAAGulB,EAAEvlB,GAAG,IAAIgD,EAAEhD,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,UAAU,YAAY2yB,SAAQ,SAAS3yB,GAAGulB,EAAEvlB,GAAG,IAAIgD,EAAEhD,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,OAAO,OAAO,OAAO,QAAQ2yB,SAAQ,SAAS3yB,GAAGulB,EAAEvlB,GAAG,IAAIgD,EAAEhD,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,UAAU,SAAS2yB,SAAQ,SAAS3yB,GAAGulB,EAAEvlB,GAAG,IAAIgD,EAAEhD,EAAE,GAAE,EAAGA,EAAE+tB,cAAc,MAAK,GAAG,EAAG,IAAG,IAAI06D,EAAG,gBAAgB,SAASp5E,EAAGrP,GAAG,OAAOA,EAAE,GAAG67D,aAAa,CAIxZ,SAAS6sB,EAAG1oF,EAAE0e,EAAEjR,EAAEI,GAAG,IAAIjP,EAAE2mB,EAAEpmB,eAAeuf,GAAG6G,EAAE7G,GAAG,MAAQ,OAAO9f,EAAE,IAAIA,EAAE8L,KAAKmD,KAAK,EAAE6Q,EAAE3e,SAAS,MAAM2e,EAAE,IAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,MAP9I,SAAY1e,EAAE0e,EAAEjR,EAAEI,GAAG,GAAG,OAAO6Q,GAAG,qBAAqBA,GADqE,SAAY1e,EAAE0e,EAAEjR,EAAEI,GAAG,GAAG,OAAOJ,GAAG,IAAIA,EAAE/C,KAAK,OAAM,EAAG,cAAcgU,GAAG,IAAK,WAAW,IAAK,SAAS,OAAM,EAAG,IAAK,UAAU,OAAG7Q,IAAc,OAAOJ,GAASA,EAAEy6E,gBAAmD,WAAnCloF,EAAEA,EAAE+tB,cAAcjrB,MAAM,EAAE,KAAsB,UAAU9C,GAAE,QAAQ,OAAM,EAAG,CAC/T2oF,CAAG3oF,EAAE0e,EAAEjR,EAAEI,GAAG,OAAM,EAAG,GAAGA,EAAE,OAAM,EAAG,GAAG,OAAOJ,EAAE,OAAOA,EAAE/C,MAAM,KAAK,EAAE,OAAOgU,EAAE,KAAK,EAAE,OAAM,IAAKA,EAAE,KAAK,EAAE,OAAO/D,MAAM+D,GAAG,KAAK,EAAE,OAAO/D,MAAM+D,IAAI,EAAEA,EAAE,OAAM,CAAE,CAOtEkqE,CAAGlqE,EAAEjR,EAAE7O,EAAEiP,KAAKJ,EAAE,MAAMI,GAAG,OAAOjP,EARxK,SAAYoB,GAAG,QAAG8nF,EAAG1oF,KAAK6oF,EAAGjoF,KAAe8nF,EAAG1oF,KAAK4oF,EAAGhoF,KAAe+nF,EAAG5/E,KAAKnI,GAAUioF,EAAGjoF,IAAG,GAAGgoF,EAAGhoF,IAAG,GAAS,GAAE,CAQwD6oF,CAAGnqE,KAAK,OAAOjR,EAAEzN,EAAE6lD,gBAAgBnnC,GAAG1e,EAAEyc,aAAaiC,EAAE,GAAGjR,IAAI7O,EAAEypF,gBAAgBroF,EAAEpB,EAAE0pF,cAAc,OAAO76E,EAAE,IAAI7O,EAAE8L,MAAQ,GAAG+C,GAAGiR,EAAE9f,EAAEupF,cAAct6E,EAAEjP,EAAEwpF,mBAAmB,OAAO36E,EAAEzN,EAAE6lD,gBAAgBnnC,IAAajR,EAAE,KAAX7O,EAAEA,EAAE8L,OAAc,IAAI9L,IAAG,IAAK6O,EAAE,GAAG,GAAGA,EAAEI,EAAE7N,EAAE4T,eAAe/F,EAAE6Q,EAAEjR,GAAGzN,EAAEyc,aAAaiC,EAAEjR,KAAI,CAHjd,0jCAA0jCoB,MAAM,KAAK8jB,SAAQ,SAAS3yB,GAAG,IAAI0e,EAAE1e,EAAEid,QAAQwrE,EACzmCp5E,GAAIkW,EAAE7G,GAAG,IAAI1b,EAAE0b,EAAE,GAAE,EAAG1e,EAAE,MAAK,GAAG,EAAG,IAAG,2EAA2E6O,MAAM,KAAK8jB,SAAQ,SAAS3yB,GAAG,IAAI0e,EAAE1e,EAAEid,QAAQwrE,EAAGp5E,GAAIkW,EAAE7G,GAAG,IAAI1b,EAAE0b,EAAE,GAAE,EAAG1e,EAAE,gCAA+B,GAAG,EAAG,IAAG,CAAC,WAAW,WAAW,aAAa2yB,SAAQ,SAAS3yB,GAAG,IAAI0e,EAAE1e,EAAEid,QAAQwrE,EAAGp5E,GAAIkW,EAAE7G,GAAG,IAAI1b,EAAE0b,EAAE,GAAE,EAAG1e,EAAE,wCAAuC,GAAG,EAAG,IAAG,CAAC,WAAW,eAAe2yB,SAAQ,SAAS3yB,GAAGulB,EAAEvlB,GAAG,IAAIgD,EAAEhD,EAAE,GAAE,EAAGA,EAAE+tB,cAAc,MAAK,GAAG,EAAG,IACldxI,EAAEujE,UAAU,IAAI9lF,EAAE,YAAY,GAAE,EAAG,aAAa,gCAA+B,GAAG,GAAI,CAAC,MAAM,OAAO,SAAS,cAAc2vB,SAAQ,SAAS3yB,GAAGulB,EAAEvlB,GAAG,IAAIgD,EAAEhD,EAAE,GAAE,EAAGA,EAAE+tB,cAAc,MAAK,GAAG,EAAG,IAE5L,IAAIg7D,EAAGxB,EAAGyB,mDAAmDC,EAAGlnF,OAAOuvD,IAAI,iBAAiB43B,EAAGnnF,OAAOuvD,IAAI,gBAAgB63B,EAAGpnF,OAAOuvD,IAAI,kBAAkB83B,EAAGrnF,OAAOuvD,IAAI,qBAAqB+3B,EAAGtnF,OAAOuvD,IAAI,kBAAkBg4B,EAAGvnF,OAAOuvD,IAAI,kBAAkBi4B,EAAGxnF,OAAOuvD,IAAI,iBAAiBk4B,EAAGznF,OAAOuvD,IAAI,qBAAqBm4B,EAAG1nF,OAAOuvD,IAAI,kBAAkBo4B,EAAG3nF,OAAOuvD,IAAI,uBAAuBq4B,EAAG5nF,OAAOuvD,IAAI,cAAcs4B,EAAG7nF,OAAOuvD,IAAI,cAAcvvD,OAAOuvD,IAAI,eAAevvD,OAAOuvD,IAAI,0BACje,IAAIu4B,EAAG9nF,OAAOuvD,IAAI,mBAAmBvvD,OAAOuvD,IAAI,uBAAuBvvD,OAAOuvD,IAAI,eAAevvD,OAAOuvD,IAAI,wBAAwB,IAAIw4B,EAAG/nF,OAAOC,SAAS,SAAS+nF,EAAG/pF,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAwC,oBAAnCA,EAAE8pF,GAAI9pF,EAAE8pF,IAAK9pF,EAAE,eAA0CA,EAAE,IAAI,CAAC,IAAoBgqF,EAAhB5qE,EAAEvgB,OAAOe,OAAU,SAASqqF,EAAGjqF,GAAG,QAAG,IAASgqF,EAAG,IAAI,MAAMllF,OAAQ,CAAC,MAAM2I,GAAG,IAAIiR,EAAEjR,EAAE2qD,MAAM3jD,OAAOw3C,MAAM,gBAAgB+9B,EAAGtrE,GAAGA,EAAE,IAAI,EAAE,CAAC,MAAM,KAAKsrE,EAAGhqF,CAAC,CAAC,IAAIkqF,GAAG,EACzb,SAASC,EAAGnqF,EAAE0e,GAAG,IAAI1e,GAAGkqF,EAAG,MAAM,GAAGA,GAAG,EAAG,IAAIz8E,EAAE3I,MAAMslF,kBAAkBtlF,MAAMslF,uBAAkB,EAAO,IAAI,GAAG1rE,EAAE,GAAGA,EAAE,WAAW,MAAM5Z,OAAQ,EAAEjG,OAAOgC,eAAe6d,EAAExf,UAAU,QAAQ,CAACiF,IAAI,WAAW,MAAMW,OAAQ,IAAI,kBAAkBpE,SAASA,QAAQ2pF,UAAU,CAAC,IAAI3pF,QAAQ2pF,UAAU3rE,EAAE,GAAG,CAAC,MAAMtb,GAAG,IAAIyK,EAAEzK,CAAC,CAAC1C,QAAQ2pF,UAAUrqF,EAAE,GAAG0e,EAAE,KAAK,CAAC,IAAIA,EAAEtf,MAAM,CAAC,MAAMgE,GAAGyK,EAAEzK,CAAC,CAACpD,EAAEZ,KAAKsf,EAAExf,UAAU,KAAK,CAAC,IAAI,MAAM4F,OAAQ,CAAC,MAAM1B,GAAGyK,EAAEzK,CAAC,CAACpD,GAAG,CAAC,CAAC,MAAMoD,GAAG,GAAGA,GAAGyK,GAAG,kBAAkBzK,EAAEg1D,MAAM,CAAC,IAAI,IAAIx5D,EAAEwE,EAAEg1D,MAAMvpD,MAAM,MACnfR,EAAER,EAAEuqD,MAAMvpD,MAAM,MAAM4P,EAAE7f,EAAEmB,OAAO,EAAEoB,EAAEkN,EAAEtO,OAAO,EAAE,GAAG0e,GAAG,GAAGtd,GAAGvC,EAAE6f,KAAKpQ,EAAElN,IAAIA,IAAI,KAAK,GAAGsd,GAAG,GAAGtd,EAAEsd,IAAItd,IAAI,GAAGvC,EAAE6f,KAAKpQ,EAAElN,GAAG,CAAC,GAAG,IAAIsd,GAAG,IAAItd,EAAG,MAAMsd,IAAQ,IAAJtd,GAASvC,EAAE6f,KAAKpQ,EAAElN,GAAG,CAAC,IAAI6M,EAAE,KAAKpP,EAAE6f,GAAGxB,QAAQ,WAAW,QAA6F,OAArFjd,EAAE0vD,aAAa1hD,EAAEqgD,SAAS,iBAAiBrgD,EAAEA,EAAEiP,QAAQ,cAAcjd,EAAE0vD,cAAqB1hD,CAAC,QAAO,GAAGyQ,GAAG,GAAGtd,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ+oF,GAAG,EAAGplF,MAAMslF,kBAAkB38E,CAAC,CAAC,OAAOzN,EAAEA,EAAEA,EAAE0vD,aAAa1vD,EAAE+U,KAAK,IAAIk1E,EAAGjqF,GAAG,EAAE,CAC9Z,SAASsqF,EAAGtqF,GAAG,OAAOA,EAAEuqF,KAAK,KAAK,EAAE,OAAON,EAAGjqF,EAAE0K,MAAM,KAAK,GAAG,OAAOu/E,EAAG,QAAQ,KAAK,GAAG,OAAOA,EAAG,YAAY,KAAK,GAAG,OAAOA,EAAG,gBAAgB,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAOjqF,EAAEmqF,EAAGnqF,EAAE0K,MAAK,GAAM,KAAK,GAAG,OAAO1K,EAAEmqF,EAAGnqF,EAAE0K,KAAK++C,QAAO,GAAM,KAAK,EAAE,OAAOzpD,EAAEmqF,EAAGnqF,EAAE0K,MAAK,GAAM,QAAQ,MAAM,GAAG,CACxR,SAAS8/E,EAAGxqF,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,oBAAoBA,EAAE,OAAOA,EAAE0vD,aAAa1vD,EAAE+U,MAAM,KAAK,GAAG,kBAAkB/U,EAAE,OAAOA,EAAE,OAAOA,GAAG,KAAKmpF,EAAG,MAAM,WAAW,KAAKD,EAAG,MAAM,SAAS,KAAKG,EAAG,MAAM,WAAW,KAAKD,EAAG,MAAM,aAAa,KAAKK,EAAG,MAAM,WAAW,KAAKC,EAAG,MAAM,eAAe,GAAG,kBAAkB1pF,EAAE,OAAOA,EAAEuxD,UAAU,KAAKg4B,EAAG,OAAOvpF,EAAE0vD,aAAa,WAAW,YAAY,KAAK45B,EAAG,OAAOtpF,EAAEyqF,SAAS/6B,aAAa,WAAW,YAAY,KAAK85B,EAAG,IAAI9qE,EAAE1e,EAAEypD,OAC7Z,OADoazpD,EAAEA,EAAE0vD,eACnd1vD,EAAE,MADieA,EAAE0e,EAAEgxC,aAClfhxC,EAAE3J,MAAM,IAAY,cAAc/U,EAAE,IAAI,cAAqBA,EAAE,KAAK2pF,EAAG,OAA6B,QAAtBjrE,EAAE1e,EAAE0vD,aAAa,MAAchxC,EAAE8rE,EAAGxqF,EAAE0K,OAAO,OAAO,KAAKk/E,EAAGlrE,EAAE1e,EAAE0qF,SAAS1qF,EAAEA,EAAE2qF,MAAM,IAAI,OAAOH,EAAGxqF,EAAE0e,GAAG,CAAC,MAAMjR,GAAG,EAAE,OAAO,IAAI,CAC3M,SAASm9E,EAAG5qF,GAAG,IAAI0e,EAAE1e,EAAE0K,KAAK,OAAO1K,EAAEuqF,KAAK,KAAK,GAAG,MAAM,QAAQ,KAAK,EAAE,OAAO7rE,EAAEgxC,aAAa,WAAW,YAAY,KAAK,GAAG,OAAOhxC,EAAE+rE,SAAS/6B,aAAa,WAAW,YAAY,KAAK,GAAG,MAAM,qBAAqB,KAAK,GAAG,OAAkB1vD,GAAXA,EAAE0e,EAAE+qC,QAAWiG,aAAa1vD,EAAE+U,MAAM,GAAG2J,EAAEgxC,cAAc,KAAK1vD,EAAE,cAAcA,EAAE,IAAI,cAAc,KAAK,EAAE,MAAM,WAAW,KAAK,EAAE,OAAO0e,EAAE,KAAK,EAAE,MAAM,SAAS,KAAK,EAAE,MAAM,OAAO,KAAK,EAAE,MAAM,OAAO,KAAK,GAAG,OAAO8rE,EAAG9rE,GAAG,KAAK,EAAE,OAAOA,IAAI0qE,EAAG,aAAa,OAAO,KAAK,GAAG,MAAM,YACtf,KAAK,GAAG,MAAM,WAAW,KAAK,GAAG,MAAM,QAAQ,KAAK,GAAG,MAAM,WAAW,KAAK,GAAG,MAAM,eAAe,KAAK,GAAG,MAAM,gBAAgB,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,GAAG,oBAAoB1qE,EAAE,OAAOA,EAAEgxC,aAAahxC,EAAE3J,MAAM,KAAK,GAAG,kBAAkB2J,EAAE,OAAOA,EAAE,OAAO,IAAI,CAAC,SAASmsE,EAAG7qF,GAAG,cAAcA,GAAG,IAAK,UAAU,IAAK,SAAS,IAAK,SAAS,IAAK,YAAqB,IAAK,SAAS,OAAOA,EAAE,QAAQ,MAAM,GAAG,CACra,SAAS8qF,EAAG9qF,GAAG,IAAI0e,EAAE1e,EAAE0K,KAAK,OAAO1K,EAAEA,EAAE+qF,WAAW,UAAU/qF,EAAE+tB,gBAAgB,aAAarP,GAAG,UAAUA,EAAE,CAEtF,SAASssE,EAAGhrF,GAAGA,EAAEirF,gBAAgBjrF,EAAEirF,cADvD,SAAYjrF,GAAG,IAAI0e,EAAEosE,EAAG9qF,GAAG,UAAU,QAAQyN,EAAE5O,OAAO4B,yBAAyBT,EAAEP,YAAYP,UAAUwf,GAAG7Q,EAAE,GAAG7N,EAAE0e,GAAG,IAAI1e,EAAEb,eAAeuf,IAAI,qBAAqBjR,GAAG,oBAAoBA,EAAEpL,KAAK,oBAAoBoL,EAAEtJ,IAAI,CAAC,IAAIvF,EAAE6O,EAAEpL,IAAIgM,EAAEZ,EAAEtJ,IAAiL,OAA7KtF,OAAOgC,eAAeb,EAAE0e,EAAE,CAACwsE,cAAa,EAAG7oF,IAAI,WAAW,OAAOzD,EAAEQ,KAAKI,KAAK,EAAE2E,IAAI,SAASnE,GAAG6N,EAAE,GAAG7N,EAAEqO,EAAEjP,KAAKI,KAAKQ,EAAE,IAAInB,OAAOgC,eAAeb,EAAE0e,EAAE,CAACtc,WAAWqL,EAAErL,aAAmB,CAAC8f,SAAS,WAAW,OAAOrU,CAAC,EAAEs9E,SAAS,SAASnrF,GAAG6N,EAAE,GAAG7N,CAAC,EAAEorF,aAAa,WAAWprF,EAAEirF,cACxf,YAAYjrF,EAAE0e,EAAE,EAAE,CAAC,CAAkD2sE,CAAGrrF,GAAG,CAAC,SAASsrF,EAAGtrF,GAAG,IAAIA,EAAE,OAAM,EAAG,IAAI0e,EAAE1e,EAAEirF,cAAc,IAAIvsE,EAAE,OAAM,EAAG,IAAIjR,EAAEiR,EAAEwD,WAAerU,EAAE,GAAqD,OAAlD7N,IAAI6N,EAAEi9E,EAAG9qF,GAAGA,EAAEurF,QAAQ,OAAO,QAAQvrF,EAAEuB,QAAOvB,EAAE6N,KAAaJ,IAAGiR,EAAEysE,SAASnrF,IAAG,EAAM,CAAC,SAASwrF,EAAGxrF,GAAwD,GAAG,qBAAxDA,EAAEA,IAAI,qBAAqB2F,SAASA,cAAS,IAAkC,OAAO,KAAK,IAAI,OAAO3F,EAAEyrF,eAAezrF,EAAEkxB,IAAI,CAAC,MAAMxS,GAAG,OAAO1e,EAAEkxB,IAAI,CAAC,CACpa,SAASw6D,EAAG1rF,EAAE0e,GAAG,IAAIjR,EAAEiR,EAAE6sE,QAAQ,OAAOnsE,EAAE,CAAC,EAAEV,EAAE,CAACitE,oBAAe,EAAOC,kBAAa,EAAOrqF,WAAM,EAAOgqF,QAAQ,MAAM99E,EAAEA,EAAEzN,EAAE6rF,cAAcC,gBAAgB,CAAC,SAASC,EAAG/rF,EAAE0e,GAAG,IAAIjR,EAAE,MAAMiR,EAAEktE,aAAa,GAAGltE,EAAEktE,aAAa/9E,EAAE,MAAM6Q,EAAE6sE,QAAQ7sE,EAAE6sE,QAAQ7sE,EAAEitE,eAAel+E,EAAEo9E,EAAG,MAAMnsE,EAAEnd,MAAMmd,EAAEnd,MAAMkM,GAAGzN,EAAE6rF,cAAc,CAACC,eAAej+E,EAAEm+E,aAAav+E,EAAEw+E,WAAW,aAAavtE,EAAEhU,MAAM,UAAUgU,EAAEhU,KAAK,MAAMgU,EAAE6sE,QAAQ,MAAM7sE,EAAEnd,MAAM,CAAC,SAAS2qF,EAAGlsF,EAAE0e,GAAe,OAAZA,EAAEA,EAAE6sE,UAAiB7C,EAAG1oF,EAAE,UAAU0e,GAAE,EAAG,CAC9d,SAASytE,EAAGnsF,EAAE0e,GAAGwtE,EAAGlsF,EAAE0e,GAAG,IAAIjR,EAAEo9E,EAAGnsE,EAAEnd,OAAOsM,EAAE6Q,EAAEhU,KAAK,GAAG,MAAM+C,EAAK,WAAWI,GAAM,IAAIJ,GAAG,KAAKzN,EAAEuB,OAAOvB,EAAEuB,OAAOkM,KAAEzN,EAAEuB,MAAM,GAAGkM,GAAOzN,EAAEuB,QAAQ,GAAGkM,IAAIzN,EAAEuB,MAAM,GAAGkM,QAAQ,GAAG,WAAWI,GAAG,UAAUA,EAA8B,YAA3B7N,EAAE6lD,gBAAgB,SAAgBnnC,EAAEvf,eAAe,SAASitF,GAAGpsF,EAAE0e,EAAEhU,KAAK+C,GAAGiR,EAAEvf,eAAe,iBAAiBitF,GAAGpsF,EAAE0e,EAAEhU,KAAKmgF,EAAGnsE,EAAEktE,eAAe,MAAMltE,EAAE6sE,SAAS,MAAM7sE,EAAEitE,iBAAiB3rF,EAAE2rF,iBAAiBjtE,EAAEitE,eAAe,CACla,SAASU,EAAGrsF,EAAE0e,EAAEjR,GAAG,GAAGiR,EAAEvf,eAAe,UAAUuf,EAAEvf,eAAe,gBAAgB,CAAC,IAAI0O,EAAE6Q,EAAEhU,KAAK,KAAK,WAAWmD,GAAG,UAAUA,QAAG,IAAS6Q,EAAEnd,OAAO,OAAOmd,EAAEnd,OAAO,OAAOmd,EAAE,GAAG1e,EAAE6rF,cAAcG,aAAav+E,GAAGiR,IAAI1e,EAAEuB,QAAQvB,EAAEuB,MAAMmd,GAAG1e,EAAE4rF,aAAaltE,CAAC,CAAU,MAATjR,EAAEzN,EAAE+U,QAAc/U,EAAE+U,KAAK,IAAI/U,EAAE2rF,iBAAiB3rF,EAAE6rF,cAAcC,eAAe,KAAKr+E,IAAIzN,EAAE+U,KAAKtH,EAAE,CACzV,SAAS2+E,GAAGpsF,EAAE0e,EAAEjR,GAAM,WAAWiR,GAAG8sE,EAAGxrF,EAAEssF,iBAAiBtsF,IAAE,MAAMyN,EAAEzN,EAAE4rF,aAAa,GAAG5rF,EAAE6rF,cAAcG,aAAahsF,EAAE4rF,eAAe,GAAGn+E,IAAIzN,EAAE4rF,aAAa,GAAGn+E,GAAE,CAAC,IAAI8+E,GAAGvtF,MAAMs0D,QAC7K,SAASjtB,GAAGrmC,EAAE0e,EAAEjR,EAAEI,GAAe,GAAZ7N,EAAEA,EAAEwsF,QAAW9tE,EAAE,CAACA,EAAE,CAAC,EAAE,IAAI,IAAI9f,EAAE,EAAEA,EAAE6O,EAAE1N,OAAOnB,IAAI8f,EAAE,IAAIjR,EAAE7O,KAAI,EAAG,IAAI6O,EAAE,EAAEA,EAAEzN,EAAED,OAAO0N,IAAI7O,EAAE8f,EAAEvf,eAAe,IAAIa,EAAEyN,GAAGlM,OAAOvB,EAAEyN,GAAGg/E,WAAW7tF,IAAIoB,EAAEyN,GAAGg/E,SAAS7tF,GAAGA,GAAGiP,IAAI7N,EAAEyN,GAAGi/E,iBAAgB,EAAG,KAAK,CAAmB,IAAlBj/E,EAAE,GAAGo9E,EAAGp9E,GAAGiR,EAAE,KAAS9f,EAAE,EAAEA,EAAEoB,EAAED,OAAOnB,IAAI,CAAC,GAAGoB,EAAEpB,GAAG2C,QAAQkM,EAAiD,OAA9CzN,EAAEpB,GAAG6tF,UAAS,OAAG5+E,IAAI7N,EAAEpB,GAAG8tF,iBAAgB,IAAW,OAAOhuE,GAAG1e,EAAEpB,GAAG+tF,WAAWjuE,EAAE1e,EAAEpB,GAAG,CAAC,OAAO8f,IAAIA,EAAE+tE,UAAS,EAAG,CAAC,CACxY,SAASG,GAAG5sF,EAAE0e,GAAG,GAAG,MAAMA,EAAEmuE,wBAAwB,MAAM/nF,MAAMzB,EAAE,KAAK,OAAO+b,EAAE,CAAC,EAAEV,EAAE,CAACnd,WAAM,EAAOqqF,kBAAa,EAAOl1C,SAAS,GAAG12C,EAAE6rF,cAAcG,cAAc,CAAC,SAASc,GAAG9sF,EAAE0e,GAAG,IAAIjR,EAAEiR,EAAEnd,MAAM,GAAG,MAAMkM,EAAE,CAA+B,GAA9BA,EAAEiR,EAAEg4B,SAASh4B,EAAEA,EAAEktE,aAAgB,MAAMn+E,EAAE,CAAC,GAAG,MAAMiR,EAAE,MAAM5Z,MAAMzB,EAAE,KAAK,GAAGkpF,GAAG9+E,GAAG,CAAC,GAAG,EAAEA,EAAE1N,OAAO,MAAM+E,MAAMzB,EAAE,KAAKoK,EAAEA,EAAE,EAAE,CAACiR,EAAEjR,CAAC,CAAC,MAAMiR,IAAIA,EAAE,IAAIjR,EAAEiR,CAAC,CAAC1e,EAAE6rF,cAAc,CAACG,aAAanB,EAAGp9E,GAAG,CACnY,SAASs/E,GAAG/sF,EAAE0e,GAAG,IAAIjR,EAAEo9E,EAAGnsE,EAAEnd,OAAOsM,EAAEg9E,EAAGnsE,EAAEktE,cAAc,MAAMn+E,KAAIA,EAAE,GAAGA,KAAMzN,EAAEuB,QAAQvB,EAAEuB,MAAMkM,GAAG,MAAMiR,EAAEktE,cAAc5rF,EAAE4rF,eAAen+E,IAAIzN,EAAE4rF,aAAan+E,IAAI,MAAMI,IAAI7N,EAAE4rF,aAAa,GAAG/9E,EAAE,CAAC,SAASm/E,GAAGhtF,GAAG,IAAI0e,EAAE1e,EAAEuxB,YAAY7S,IAAI1e,EAAE6rF,cAAcG,cAAc,KAAKttE,GAAG,OAAOA,IAAI1e,EAAEuB,MAAMmd,EAAE,CAAC,SAASuuE,GAAGjtF,GAAG,OAAOA,GAAG,IAAK,MAAM,MAAM,6BAA6B,IAAK,OAAO,MAAM,qCAAqC,QAAQ,MAAM,+BAA+B,CAC7c,SAASktF,GAAGltF,EAAE0e,GAAG,OAAO,MAAM1e,GAAG,iCAAiCA,EAAEitF,GAAGvuE,GAAG,+BAA+B1e,GAAG,kBAAkB0e,EAAE,+BAA+B1e,CAAC,CAChK,IAAImtF,GAAentF,GAAZotF,IAAYptF,GAAsJ,SAASA,EAAE0e,GAAG,GAAG,+BAA+B1e,EAAEqtF,cAAc,cAAcrtF,EAAEA,EAAEstF,UAAU5uE,MAAM,CAA2F,KAA1FyuE,GAAGA,IAAIxnF,SAASC,cAAc,QAAU0nF,UAAU,QAAQ5uE,EAAEw1C,UAAU/nD,WAAW,SAAauS,EAAEyuE,GAAGniC,WAAWhrD,EAAEgrD,YAAYhrD,EAAE6zB,YAAY7zB,EAAEgrD,YAAY,KAAKtsC,EAAEssC,YAAYhrD,EAAE+T,YAAY2K,EAAEssC,WAAW,CAAC,EAAvb,qBAAqBuiC,OAAOA,MAAMC,wBAAwB,SAAS9uE,EAAEjR,EAAEI,EAAEjP,GAAG2uF,MAAMC,yBAAwB,WAAW,OAAOxtF,GAAE0e,EAAEjR,EAAM,GAAE,EAAEzN,IACtK,SAAS0jB,GAAG1jB,EAAE0e,GAAG,GAAGA,EAAE,CAAC,IAAIjR,EAAEzN,EAAEgrD,WAAW,GAAGv9C,GAAGA,IAAIzN,EAAEytF,WAAW,IAAIhgF,EAAEigF,SAAwB,YAAdjgF,EAAEkgF,UAAUjvE,EAAS,CAAC1e,EAAEuxB,YAAY7S,CAAC,CACtH,IAAIkvE,GAAG,CAACC,yBAAwB,EAAGC,aAAY,EAAGC,mBAAkB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,SAAQ,EAAGC,cAAa,EAAGC,iBAAgB,EAAGC,aAAY,EAAGC,SAAQ,EAAGC,MAAK,EAAGC,UAAS,EAAGC,cAAa,EAAGC,YAAW,EAAGC,cAAa,EAAGC,WAAU,EAAGC,UAAS,EAAGC,SAAQ,EAAGC,YAAW,EAAGC,aAAY,EAAGC,cAAa,EAAGC,YAAW,EAAGC,eAAc,EAAGC,gBAAe,EAAGC,iBAAgB,EAAGr+D,YAAW,EAAGs+D,WAAU,EAAG74C,YAAW,EAAGjJ,SAAQ,EAAG+hD,OAAM,EAAGC,SAAQ,EAAGC,SAAQ,EAAGC,QAAO,EAAG/iC,QAAO,EAClfgjC,MAAK,EAAGC,aAAY,EAAGC,cAAa,EAAGC,aAAY,EAAGC,iBAAgB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,eAAc,EAAG15C,aAAY,GAAI25C,GAAG,CAAC,SAAS,KAAK,MAAM,KAA6H,SAASC,GAAGpwF,EAAE0e,EAAEjR,GAAG,OAAO,MAAMiR,GAAG,mBAAmBA,GAAG,KAAKA,EAAE,GAAGjR,GAAG,kBAAkBiR,GAAG,IAAIA,GAAGkvE,GAAGzuF,eAAea,IAAI4tF,GAAG5tF,IAAI,GAAG0e,GAAGjK,OAAOiK,EAAE,IAAI,CACzb,SAAS2xE,GAAGrwF,EAAE0e,GAAa,IAAI,IAAIjR,KAAlBzN,EAAEA,EAAE6J,MAAmB6U,EAAE,GAAGA,EAAEvf,eAAesO,GAAG,CAAC,IAAII,EAAE,IAAIJ,EAAEtN,QAAQ,MAAMvB,EAAEwxF,GAAG3iF,EAAEiR,EAAEjR,GAAGI,GAAG,UAAUJ,IAAIA,EAAE,YAAYI,EAAE7N,EAAEswF,YAAY7iF,EAAE7O,GAAGoB,EAAEyN,GAAG7O,CAAC,CAAC,CADYC,OAAOqyD,KAAK08B,IAAIj7D,SAAQ,SAAS3yB,GAAGmwF,GAAGx9D,SAAQ,SAASjU,GAAGA,EAAEA,EAAE1e,EAAEslC,OAAO,GAAGu2B,cAAc77D,EAAEwiD,UAAU,GAAGorC,GAAGlvE,GAAGkvE,GAAG5tF,EAAE,GAAE,IAChI,IAAIuwF,GAAGnxE,EAAE,CAACoxE,UAAS,GAAI,CAACC,MAAK,EAAG5Y,MAAK,EAAG6Y,IAAG,EAAGC,KAAI,EAAGC,OAAM,EAAGC,IAAG,EAAGl+E,KAAI,EAAG4gD,OAAM,EAAGu9B,QAAO,EAAGC,MAAK,EAAGC,MAAK,EAAGC,OAAM,EAAGz2C,QAAO,EAAG02C,OAAM,EAAGC,KAAI,IAClT,SAASC,GAAGpxF,EAAE0e,GAAG,GAAGA,EAAE,CAAC,GAAG6xE,GAAGvwF,KAAK,MAAM0e,EAAEg4B,UAAU,MAAMh4B,EAAEmuE,yBAAyB,MAAM/nF,MAAMzB,EAAE,IAAIrD,IAAI,GAAG,MAAM0e,EAAEmuE,wBAAwB,CAAC,GAAG,MAAMnuE,EAAEg4B,SAAS,MAAM5xC,MAAMzB,EAAE,KAAK,GAAG,kBAAkBqb,EAAEmuE,2BAA2B,WAAWnuE,EAAEmuE,yBAAyB,MAAM/nF,MAAMzB,EAAE,IAAK,CAAC,GAAG,MAAMqb,EAAE7U,OAAO,kBAAkB6U,EAAE7U,MAAM,MAAM/E,MAAMzB,EAAE,IAAK,CAAC,CAClW,SAASguF,GAAGrxF,EAAE0e,GAAG,IAAI,IAAI1e,EAAEG,QAAQ,KAAK,MAAM,kBAAkBue,EAAE2F,GAAG,OAAOrkB,GAAG,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,YAAY,IAAK,gBAAgB,IAAK,gBAAgB,IAAK,mBAAmB,IAAK,iBAAiB,IAAK,gBAAgB,OAAM,EAAG,QAAQ,OAAM,EAAG,CAAC,IAAIsxF,GAAG,KAAK,SAASC,GAAGvxF,GAA6F,OAA1FA,EAAEA,EAAEsL,QAAQtL,EAAEwxF,YAAYltF,QAASmtF,0BAA0BzxF,EAAEA,EAAEyxF,yBAAgC,IAAIzxF,EAAE0tF,SAAS1tF,EAAE4zB,WAAW5zB,CAAC,CAAC,IAAI0xF,GAAG,KAAKC,GAAG,KAAKC,GAAG,KACpc,SAASC,GAAG7xF,GAAG,GAAGA,EAAE8xF,GAAG9xF,GAAG,CAAC,GAAG,oBAAoB0xF,GAAG,MAAM5sF,MAAMzB,EAAE,MAAM,IAAIqb,EAAE1e,EAAE+xF,UAAUrzE,IAAIA,EAAEszE,GAAGtzE,GAAGgzE,GAAG1xF,EAAE+xF,UAAU/xF,EAAE0K,KAAKgU,GAAG,CAAC,CAAC,SAASuzE,GAAGjyF,GAAG2xF,GAAGC,GAAGA,GAAG1vF,KAAKlC,GAAG4xF,GAAG,CAAC5xF,GAAG2xF,GAAG3xF,CAAC,CAAC,SAASkyF,KAAK,GAAGP,GAAG,CAAC,IAAI3xF,EAAE2xF,GAAGjzE,EAAEkzE,GAAoB,GAAjBA,GAAGD,GAAG,KAAKE,GAAG7xF,GAAM0e,EAAE,IAAI1e,EAAE,EAAEA,EAAE0e,EAAE3e,OAAOC,IAAI6xF,GAAGnzE,EAAE1e,GAAG,CAAC,CAAC,SAASmyF,GAAGnyF,EAAE0e,GAAG,OAAO1e,EAAE0e,EAAE,CAAC,SAAS0zE,KAAK,CAAC,IAAIC,IAAG,EAAG,SAASC,GAAGtyF,EAAE0e,EAAEjR,GAAG,GAAG4kF,GAAG,OAAOryF,EAAE0e,EAAEjR,GAAG4kF,IAAG,EAAG,IAAI,OAAOF,GAAGnyF,EAAE0e,EAAEjR,EAAE,CAAC,QAAW4kF,IAAG,GAAG,OAAOV,IAAI,OAAOC,MAAGQ,KAAKF,KAAI,CAAC,CAChb,SAASK,GAAGvyF,EAAE0e,GAAG,IAAIjR,EAAEzN,EAAE+xF,UAAU,GAAG,OAAOtkF,EAAE,OAAO,KAAK,IAAII,EAAEmkF,GAAGvkF,GAAG,GAAG,OAAOI,EAAE,OAAO,KAAKJ,EAAEI,EAAE6Q,GAAG1e,EAAE,OAAO0e,GAAG,IAAK,UAAU,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,uBAAuB,IAAK,cAAc,IAAK,qBAAqB,IAAK,cAAc,IAAK,qBAAqB,IAAK,YAAY,IAAK,mBAAmB,IAAK,gBAAgB7Q,GAAGA,EAAE8+E,YAAqB9+E,IAAI,YAAb7N,EAAEA,EAAE0K,OAAuB,UAAU1K,GAAG,WAAWA,GAAG,aAAaA,IAAIA,GAAG6N,EAAE,MAAM7N,EAAE,QAAQA,GAAE,EAAG,GAAGA,EAAE,OAAO,KAAK,GAAGyN,GAAG,oBACleA,EAAE,MAAM3I,MAAMzB,EAAE,IAAIqb,SAASjR,IAAI,OAAOA,CAAC,CAAC,IAAI+kF,IAAG,EAAG,GAAG3K,EAAG,IAAI,IAAI4K,GAAG,CAAC,EAAE5zF,OAAOgC,eAAe4xF,GAAG,UAAU,CAACpwF,IAAI,WAAWmwF,IAAG,CAAE,IAAIluF,OAAOoP,iBAAiB,OAAO++E,GAAGA,IAAInuF,OAAOgQ,oBAAoB,OAAOm+E,GAAGA,GAAG,CAAC,MAAMzyF,IAAGwyF,IAAG,CAAE,CAAC,SAASE,GAAG1yF,EAAE0e,EAAEjR,EAAEI,EAAEjP,EAAEyP,EAAEoQ,EAAEtd,EAAE6M,GAAG,IAAI5K,EAAEpE,MAAME,UAAU4D,MAAM1D,KAAKU,UAAU,GAAG,IAAI4e,EAAEze,MAAMwN,EAAErK,EAAE,CAAC,MAAMsK,GAAGlO,KAAKyR,QAAQvD,EAAE,CAAC,CAAC,IAAIilF,IAAG,EAAGC,GAAG,KAAKC,IAAG,EAAGC,GAAG,KAAKC,GAAG,CAAC9hF,QAAQ,SAASjR,GAAG2yF,IAAG,EAAGC,GAAG5yF,CAAC,GAAG,SAASgzF,GAAGhzF,EAAE0e,EAAEjR,EAAEI,EAAEjP,EAAEyP,EAAEoQ,EAAEtd,EAAE6M,GAAG2kF,IAAG,EAAGC,GAAG,KAAKF,GAAGzyF,MAAM8yF,GAAGjzF,UAAU,CACjW,SAASmzF,GAAGjzF,GAAG,IAAI0e,EAAE1e,EAAEyN,EAAEzN,EAAE,GAAGA,EAAEkzF,UAAU,KAAKx0E,EAAE5c,QAAQ4c,EAAEA,EAAE5c,WAAW,CAAC9B,EAAE0e,EAAE,GAAO,KAAa,MAAjBA,EAAE1e,GAAS61D,SAAcpoD,EAAEiR,EAAE5c,QAAQ9B,EAAE0e,EAAE5c,aAAa9B,EAAE,CAAC,OAAO,IAAI0e,EAAE6rE,IAAI98E,EAAE,IAAI,CAAC,SAAS0lF,GAAGnzF,GAAG,GAAG,KAAKA,EAAEuqF,IAAI,CAAC,IAAI7rE,EAAE1e,EAAEozF,cAAsE,GAAxD,OAAO10E,IAAkB,QAAd1e,EAAEA,EAAEkzF,aAAqBx0E,EAAE1e,EAAEozF,gBAAmB,OAAO10E,EAAE,OAAOA,EAAE20E,UAAU,CAAC,OAAO,IAAI,CAAC,SAASC,GAAGtzF,GAAG,GAAGizF,GAAGjzF,KAAKA,EAAE,MAAM8E,MAAMzB,EAAE,KAAM,CAE1S,SAASkwF,GAAGvzF,GAAW,OAAO,QAAfA,EADtN,SAAYA,GAAG,IAAI0e,EAAE1e,EAAEkzF,UAAU,IAAIx0E,EAAE,CAAS,GAAG,QAAXA,EAAEu0E,GAAGjzF,IAAe,MAAM8E,MAAMzB,EAAE,MAAM,OAAOqb,IAAI1e,EAAE,KAAKA,CAAC,CAAC,IAAI,IAAIyN,EAAEzN,EAAE6N,EAAE6Q,IAAI,CAAC,IAAI9f,EAAE6O,EAAE3L,OAAO,GAAG,OAAOlD,EAAE,MAAM,IAAIyP,EAAEzP,EAAEs0F,UAAU,GAAG,OAAO7kF,EAAE,CAAY,GAAG,QAAdR,EAAEjP,EAAEkD,QAAmB,CAAC2L,EAAEI,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAGjP,EAAE40F,QAAQnlF,EAAEmlF,MAAM,CAAC,IAAInlF,EAAEzP,EAAE40F,MAAMnlF,GAAG,CAAC,GAAGA,IAAIZ,EAAE,OAAO6lF,GAAG10F,GAAGoB,EAAE,GAAGqO,IAAIR,EAAE,OAAOylF,GAAG10F,GAAG8f,EAAErQ,EAAEA,EAAEolF,OAAO,CAAC,MAAM3uF,MAAMzB,EAAE,KAAM,CAAC,GAAGoK,EAAE3L,SAAS+L,EAAE/L,OAAO2L,EAAE7O,EAAEiP,EAAEQ,MAAM,CAAC,IAAI,IAAIoQ,GAAE,EAAGtd,EAAEvC,EAAE40F,MAAMryF,GAAG,CAAC,GAAGA,IAAIsM,EAAE,CAACgR,GAAE,EAAGhR,EAAE7O,EAAEiP,EAAEQ,EAAE,KAAK,CAAC,GAAGlN,IAAI0M,EAAE,CAAC4Q,GAAE,EAAG5Q,EAAEjP,EAAE6O,EAAEY,EAAE,KAAK,CAAClN,EAAEA,EAAEsyF,OAAO,CAAC,IAAIh1E,EAAE,CAAC,IAAItd,EAAEkN,EAAEmlF,MAAMryF,GAAG,CAAC,GAAGA,IAC5fsM,EAAE,CAACgR,GAAE,EAAGhR,EAAEY,EAAER,EAAEjP,EAAE,KAAK,CAAC,GAAGuC,IAAI0M,EAAE,CAAC4Q,GAAE,EAAG5Q,EAAEQ,EAAEZ,EAAE7O,EAAE,KAAK,CAACuC,EAAEA,EAAEsyF,OAAO,CAAC,IAAIh1E,EAAE,MAAM3Z,MAAMzB,EAAE,KAAM,CAAC,CAAC,GAAGoK,EAAEylF,YAAYrlF,EAAE,MAAM/I,MAAMzB,EAAE,KAAM,CAAC,GAAG,IAAIoK,EAAE88E,IAAI,MAAMzlF,MAAMzB,EAAE,MAAM,OAAOoK,EAAEskF,UAAU2B,UAAUjmF,EAAEzN,EAAE0e,CAAC,CAAkBi1E,CAAG3zF,IAAmB4zF,GAAG5zF,GAAG,IAAI,CAAC,SAAS4zF,GAAG5zF,GAAG,GAAG,IAAIA,EAAEuqF,KAAK,IAAIvqF,EAAEuqF,IAAI,OAAOvqF,EAAE,IAAIA,EAAEA,EAAEwzF,MAAM,OAAOxzF,GAAG,CAAC,IAAI0e,EAAEk1E,GAAG5zF,GAAG,GAAG,OAAO0e,EAAE,OAAOA,EAAE1e,EAAEA,EAAEyzF,OAAO,CAAC,OAAO,IAAI,CAC1X,IAAII,GAAGrM,EAAGsM,0BAA0BC,GAAGvM,EAAGwM,wBAAwBC,GAAGzM,EAAG0M,qBAAqBC,GAAG3M,EAAG4M,sBAAsBpuD,GAAEwhD,EAAG6M,aAAaC,GAAG9M,EAAG+M,iCAAiC/xD,GAAGglD,EAAGgN,2BAA2BC,GAAGjN,EAAGkN,8BAA8BC,GAAGnN,EAAGoN,wBAAwBC,GAAGrN,EAAGsN,qBAAqBC,GAAGvN,EAAGwN,sBAAsBC,GAAG,KAAKvzD,GAAG,KACvV,IAAIwzD,GAAG3sF,KAAK4sF,MAAM5sF,KAAK4sF,MAAiC,SAAYn1F,GAAU,OAAPA,KAAK,EAAS,IAAIA,EAAE,GAAG,IAAIo1F,GAAGp1F,GAAGq1F,GAAG,GAAG,CAAC,EAA/ED,GAAG7sF,KAAK+sF,IAAID,GAAG9sF,KAAKgtF,IAA4D,IAAIC,GAAG,GAAGjzD,GAAG,QAC7H,SAASkzD,GAAGz1F,GAAG,OAAOA,GAAGA,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,KAAK,QAAQ,OAAS,QAAFA,EAAU,KAAK,QAAQ,KAAK,QAAQ,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS,OAAS,UAAFA,EAAY,KAAK,UAAU,OAAO,UAAU,KAAK,UAAU,OAAO,UAAU,KAAK,UAAU,OAAO,UAAU,KAAK,WAAW,OAAO,WACzgB,QAAQ,OAAOA,EAAE,CAAC,SAAS01F,GAAG11F,EAAE0e,GAAG,IAAIjR,EAAEzN,EAAE21F,aAAa,GAAG,IAAIloF,EAAE,OAAO,EAAE,IAAII,EAAE,EAAEjP,EAAEoB,EAAE41F,eAAevnF,EAAErO,EAAE61F,YAAYp3E,EAAI,UAAFhR,EAAY,GAAG,IAAIgR,EAAE,CAAC,IAAItd,EAAEsd,GAAG7f,EAAE,IAAIuC,EAAE0M,EAAE4nF,GAAGt0F,GAAS,KAALkN,GAAGoQ,KAAU5Q,EAAE4nF,GAAGpnF,GAAI,MAAa,KAAPoQ,EAAEhR,GAAG7O,GAAQiP,EAAE4nF,GAAGh3E,GAAG,IAAIpQ,IAAIR,EAAE4nF,GAAGpnF,IAAI,GAAG,IAAIR,EAAE,OAAO,EAAE,GAAG,IAAI6Q,GAAGA,IAAI7Q,GAAG,KAAK6Q,EAAE9f,MAAKA,EAAEiP,GAAGA,KAAEQ,EAAEqQ,GAAGA,IAAQ,KAAK9f,GAAG,KAAO,QAAFyP,IAAY,OAAOqQ,EAA0C,GAAxC,KAAO,EAAF7Q,KAAOA,GAAK,GAAFJ,GAA4B,KAAtBiR,EAAE1e,EAAE81F,gBAAwB,IAAI91F,EAAEA,EAAE+1F,cAAcr3E,GAAG7Q,EAAE,EAAE6Q,GAAc9f,EAAE,IAAb6O,EAAE,GAAGynF,GAAGx2E,IAAU7Q,GAAG7N,EAAEyN,GAAGiR,IAAI9f,EAAE,OAAOiP,CAAC,CACvc,SAASmoF,GAAGh2F,EAAE0e,GAAG,OAAO1e,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO0e,EAAE,IAAI,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,KAAK,QAAQ,OAAOA,EAAE,IAAuJ,QAAQ,OAAO,EAAE,CACrN,SAASu3E,GAAGj2F,GAAgC,OAAO,KAApCA,GAAkB,WAAhBA,EAAE21F,cAAsC31F,EAAI,WAAFA,EAAa,WAAW,CAAC,CAAC,SAASk2F,KAAK,IAAIl2F,EAAEw1F,GAAoC,OAA1B,KAAQ,SAAfA,KAAK,MAAqBA,GAAG,IAAWx1F,CAAC,CAAC,SAASm2F,GAAGn2F,GAAG,IAAI,IAAI0e,EAAE,GAAGjR,EAAE,EAAE,GAAGA,EAAEA,IAAIiR,EAAExc,KAAKlC,GAAG,OAAO0e,CAAC,CAC3a,SAAS03E,GAAGp2F,EAAE0e,EAAEjR,GAAGzN,EAAE21F,cAAcj3E,EAAE,YAAYA,IAAI1e,EAAE41F,eAAe,EAAE51F,EAAE61F,YAAY,IAAG71F,EAAEA,EAAEq2F,YAAW33E,EAAE,GAAGw2E,GAAGx2E,IAAQjR,CAAC,CACzH,SAAS6oF,GAAGt2F,EAAE0e,GAAG,IAAIjR,EAAEzN,EAAE81F,gBAAgBp3E,EAAE,IAAI1e,EAAEA,EAAE+1F,cAActoF,GAAG,CAAC,IAAII,EAAE,GAAGqnF,GAAGznF,GAAG7O,EAAE,GAAGiP,EAAEjP,EAAE8f,EAAE1e,EAAE6N,GAAG6Q,IAAI1e,EAAE6N,IAAI6Q,GAAGjR,IAAI7O,CAAC,CAAC,CAAC,IAAIsgB,GAAE,EAAE,SAASq3E,GAAGv2F,GAAS,OAAO,GAAbA,IAAIA,GAAa,EAAEA,EAAE,KAAO,UAAFA,GAAa,GAAG,UAAU,EAAE,CAAC,CAAC,IAAIw2F,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,IAAG,EAAGC,GAAG,GAAGC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,IAAIC,IAAIC,GAAG,IAAID,IAAIE,GAAG,GAAGC,GAAG,6PAA6PzoF,MAAM,KAChiB,SAAS0oF,GAAGv3F,EAAE0e,GAAG,OAAO1e,GAAG,IAAK,UAAU,IAAK,WAAW+2F,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,YAAYC,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,WAAWC,GAAG,KAAK,MAAM,IAAK,cAAc,IAAK,aAAaC,GAAGM,OAAO94E,EAAE+4E,WAAW,MAAM,IAAK,oBAAoB,IAAK,qBAAqBL,GAAGI,OAAO94E,EAAE+4E,WAAW,CACnT,SAASC,GAAG13F,EAAE0e,EAAEjR,EAAEI,EAAEjP,EAAEyP,GAAG,OAAG,OAAOrO,GAAGA,EAAE23F,cAActpF,GAASrO,EAAE,CAAC43F,UAAUl5E,EAAEm5E,aAAapqF,EAAEqqF,iBAAiBjqF,EAAE8pF,YAAYtpF,EAAE0pF,iBAAiB,CAACn5F,IAAI,OAAO8f,IAAY,QAARA,EAAEozE,GAAGpzE,KAAa+3E,GAAG/3E,IAAI1e,IAAEA,EAAE83F,kBAAkBjqF,EAAE6Q,EAAE1e,EAAE+3F,iBAAiB,OAAOn5F,IAAI,IAAI8f,EAAEve,QAAQvB,IAAI8f,EAAExc,KAAKtD,GAAUoB,EAAC,CAEpR,SAASg4F,GAAGh4F,GAAG,IAAI0e,EAAEu5E,GAAGj4F,EAAEsL,QAAQ,GAAG,OAAOoT,EAAE,CAAC,IAAIjR,EAAEwlF,GAAGv0E,GAAG,GAAG,OAAOjR,EAAE,GAAW,MAARiR,EAAEjR,EAAE88E,MAAY,GAAW,QAAR7rE,EAAEy0E,GAAG1lF,IAA4D,OAA/CzN,EAAE43F,UAAUl5E,OAAEk4E,GAAG52F,EAAEk+D,UAAS,WAAWw4B,GAAGjpF,EAAE,SAAgB,GAAG,IAAIiR,GAAGjR,EAAEskF,UAAU2B,QAAQN,cAAc8E,aAAmE,YAArDl4F,EAAE43F,UAAU,IAAInqF,EAAE88E,IAAI98E,EAAEskF,UAAUoG,cAAc,KAAY,CAACn4F,EAAE43F,UAAU,IAAI,CAClT,SAASQ,GAAGp4F,GAAG,GAAG,OAAOA,EAAE43F,UAAU,OAAM,EAAG,IAAI,IAAIl5E,EAAE1e,EAAE+3F,iBAAiB,EAAEr5E,EAAE3e,QAAQ,CAAC,IAAI0N,EAAE4qF,GAAGr4F,EAAE63F,aAAa73F,EAAE83F,iBAAiBp5E,EAAE,GAAG1e,EAAE23F,aAAa,GAAG,OAAOlqF,EAAiG,OAAe,QAARiR,EAAEozE,GAAGrkF,KAAagpF,GAAG/3E,GAAG1e,EAAE43F,UAAUnqF,GAAE,EAA3H,IAAII,EAAE,IAAtBJ,EAAEzN,EAAE23F,aAAwBl4F,YAAYgO,EAAE/C,KAAK+C,GAAG6jF,GAAGzjF,EAAEJ,EAAEnC,OAAOgtF,cAAczqF,GAAGyjF,GAAG,KAA0D5yE,EAAEpb,OAAO,CAAC,OAAM,CAAE,CAAC,SAASi1F,GAAGv4F,EAAE0e,EAAEjR,GAAG2qF,GAAGp4F,IAAIyN,EAAE+pF,OAAO94E,EAAE,CAAC,SAAS85E,KAAK3B,IAAG,EAAG,OAAOE,IAAIqB,GAAGrB,MAAMA,GAAG,MAAM,OAAOC,IAAIoB,GAAGpB,MAAMA,GAAG,MAAM,OAAOC,IAAImB,GAAGnB,MAAMA,GAAG,MAAMC,GAAGvkE,QAAQ4lE,IAAInB,GAAGzkE,QAAQ4lE,GAAG,CACnf,SAASE,GAAGz4F,EAAE0e,GAAG1e,EAAE43F,YAAYl5E,IAAI1e,EAAE43F,UAAU,KAAKf,KAAKA,IAAG,EAAGrP,EAAGsM,0BAA0BtM,EAAGoN,wBAAwB4D,KAAK,CAC5H,SAASE,GAAG14F,GAAG,SAAS0e,EAAEA,GAAG,OAAO+5E,GAAG/5E,EAAE1e,EAAE,CAAC,GAAG,EAAE82F,GAAG/2F,OAAO,CAAC04F,GAAG3B,GAAG,GAAG92F,GAAG,IAAI,IAAIyN,EAAE,EAAEA,EAAEqpF,GAAG/2F,OAAO0N,IAAI,CAAC,IAAII,EAAEipF,GAAGrpF,GAAGI,EAAE+pF,YAAY53F,IAAI6N,EAAE+pF,UAAU,KAAK,CAAC,CAAyF,IAAxF,OAAOb,IAAI0B,GAAG1B,GAAG/2F,GAAG,OAAOg3F,IAAIyB,GAAGzB,GAAGh3F,GAAG,OAAOi3F,IAAIwB,GAAGxB,GAAGj3F,GAAGk3F,GAAGvkE,QAAQjU,GAAG04E,GAAGzkE,QAAQjU,GAAOjR,EAAE,EAAEA,EAAE4pF,GAAGt3F,OAAO0N,KAAII,EAAEwpF,GAAG5pF,IAAKmqF,YAAY53F,IAAI6N,EAAE+pF,UAAU,MAAM,KAAK,EAAEP,GAAGt3F,QAAiB,QAAR0N,EAAE4pF,GAAG,IAAYO,WAAYI,GAAGvqF,GAAG,OAAOA,EAAEmqF,WAAWP,GAAG/zF,OAAO,CAAC,IAAIq1F,GAAG5P,EAAG6P,wBAAwBl8B,IAAG,EAC5a,SAASm8B,GAAG74F,EAAE0e,EAAEjR,EAAEI,GAAG,IAAIjP,EAAEsgB,GAAE7Q,EAAEsqF,GAAGG,WAAWH,GAAGG,WAAW,KAAK,IAAI55E,GAAE,EAAE65E,GAAG/4F,EAAE0e,EAAEjR,EAAEI,EAAE,CAAC,QAAQqR,GAAEtgB,EAAE+5F,GAAGG,WAAWzqF,CAAC,CAAC,CAAC,SAAS2qF,GAAGh5F,EAAE0e,EAAEjR,EAAEI,GAAG,IAAIjP,EAAEsgB,GAAE7Q,EAAEsqF,GAAGG,WAAWH,GAAGG,WAAW,KAAK,IAAI55E,GAAE,EAAE65E,GAAG/4F,EAAE0e,EAAEjR,EAAEI,EAAE,CAAC,QAAQqR,GAAEtgB,EAAE+5F,GAAGG,WAAWzqF,CAAC,CAAC,CACjO,SAAS0qF,GAAG/4F,EAAE0e,EAAEjR,EAAEI,GAAG,GAAG6uD,GAAG,CAAC,IAAI99D,EAAEy5F,GAAGr4F,EAAE0e,EAAEjR,EAAEI,GAAG,GAAG,OAAOjP,EAAEi/B,GAAG79B,EAAE0e,EAAE7Q,EAAES,GAAGb,GAAG8pF,GAAGv3F,EAAE6N,QAAQ,GANtF,SAAY7N,EAAE0e,EAAEjR,EAAEI,EAAEjP,GAAG,OAAO8f,GAAG,IAAK,UAAU,OAAOq4E,GAAGW,GAAGX,GAAG/2F,EAAE0e,EAAEjR,EAAEI,EAAEjP,IAAG,EAAG,IAAK,YAAY,OAAOo4F,GAAGU,GAAGV,GAAGh3F,EAAE0e,EAAEjR,EAAEI,EAAEjP,IAAG,EAAG,IAAK,YAAY,OAAOq4F,GAAGS,GAAGT,GAAGj3F,EAAE0e,EAAEjR,EAAEI,EAAEjP,IAAG,EAAG,IAAK,cAAc,IAAIyP,EAAEzP,EAAE64F,UAAkD,OAAxCP,GAAG/yF,IAAIkK,EAAEqpF,GAAGR,GAAG70F,IAAIgM,IAAI,KAAKrO,EAAE0e,EAAEjR,EAAEI,EAAEjP,KAAU,EAAG,IAAK,oBAAoB,OAAOyP,EAAEzP,EAAE64F,UAAUL,GAAGjzF,IAAIkK,EAAEqpF,GAAGN,GAAG/0F,IAAIgM,IAAI,KAAKrO,EAAE0e,EAAEjR,EAAEI,EAAEjP,KAAI,EAAG,OAAM,CAAE,CAM1Qq6F,CAAGr6F,EAAEoB,EAAE0e,EAAEjR,EAAEI,GAAGA,EAAEqrF,uBAAuB,GAAG3B,GAAGv3F,EAAE6N,GAAK,EAAF6Q,IAAM,EAAE44E,GAAGn3F,QAAQH,GAAG,CAAC,KAAK,OAAOpB,GAAG,CAAC,IAAIyP,EAAEyjF,GAAGlzF,GAA0D,GAAvD,OAAOyP,GAAGmoF,GAAGnoF,GAAiB,QAAdA,EAAEgqF,GAAGr4F,EAAE0e,EAAEjR,EAAEI,KAAagwB,GAAG79B,EAAE0e,EAAE7Q,EAAES,GAAGb,GAAMY,IAAIzP,EAAE,MAAMA,EAAEyP,CAAC,CAAC,OAAOzP,GAAGiP,EAAEqrF,iBAAiB,MAAMr7D,GAAG79B,EAAE0e,EAAE7Q,EAAE,KAAKJ,EAAE,CAAC,CAAC,IAAIa,GAAG,KACpU,SAAS+pF,GAAGr4F,EAAE0e,EAAEjR,EAAEI,GAA2B,GAAxBS,GAAG,KAAwB,QAAXtO,EAAEi4F,GAAVj4F,EAAEuxF,GAAG1jF,KAAuB,GAAW,QAAR6Q,EAAEu0E,GAAGjzF,IAAYA,EAAE,UAAU,GAAW,MAARyN,EAAEiR,EAAE6rE,KAAW,CAAS,GAAG,QAAXvqF,EAAEmzF,GAAGz0E,IAAe,OAAO1e,EAAEA,EAAE,IAAI,MAAM,GAAG,IAAIyN,EAAE,CAAC,GAAGiR,EAAEqzE,UAAU2B,QAAQN,cAAc8E,aAAa,OAAO,IAAIx5E,EAAE6rE,IAAI7rE,EAAEqzE,UAAUoG,cAAc,KAAKn4F,EAAE,IAAI,MAAM0e,IAAI1e,IAAIA,EAAE,MAAW,OAALsO,GAAGtO,EAAS,IAAI,CAC7S,SAASm5F,GAAGn5F,GAAG,OAAOA,GAAG,IAAK,SAAS,IAAK,QAAQ,IAAK,QAAQ,IAAK,cAAc,IAAK,OAAO,IAAK,MAAM,IAAK,WAAW,IAAK,WAAW,IAAK,UAAU,IAAK,YAAY,IAAK,OAAO,IAAK,UAAU,IAAK,WAAW,IAAK,QAAQ,IAAK,UAAU,IAAK,UAAU,IAAK,WAAW,IAAK,QAAQ,IAAK,YAAY,IAAK,UAAU,IAAK,QAAQ,IAAK,QAAQ,IAAK,OAAO,IAAK,gBAAgB,IAAK,cAAc,IAAK,YAAY,IAAK,aAAa,IAAK,QAAQ,IAAK,SAAS,IAAK,SAAS,IAAK,SAAS,IAAK,cAAc,IAAK,WAAW,IAAK,aAAa,IAAK,eAAe,IAAK,SAAS,IAAK,kBAAkB,IAAK,YAAY,IAAK,mBAAmB,IAAK,iBAAiB,IAAK,oBAAoB,IAAK,aAAa,IAAK,YAAY,IAAK,cAAc,IAAK,OAAO,IAAK,mBAAmB,IAAK,QAAQ,IAAK,aAAa,IAAK,WAAW,IAAK,SAAS,IAAK,cAAc,OAAO,EAAE,IAAK,OAAO,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,cAAc,IAAK,aAAa,IAAK,cAAc,IAAK,SAAS,IAAK,SAAS,IAAK,YAAY,IAAK,QAAQ,IAAK,aAAa,IAAK,aAAa,IAAK,eAAe,IAAK,eAAe,OAAO,EACpqC,IAAK,UAAU,OAAOs0F,MAAM,KAAK9xD,GAAG,OAAO,EAAE,KAAKiyD,GAAG,OAAO,EAAE,KAAKE,GAAG,KAAKE,GAAG,OAAO,GAAG,KAAKE,GAAG,OAAO,UAAU,QAAQ,OAAO,GAAG,QAAQ,OAAO,GAAG,CAAC,IAAIqE,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAK,SAASC,KAAK,GAAGD,GAAG,OAAOA,GAAG,IAAIt5F,EAAkB6N,EAAhB6Q,EAAE26E,GAAG5rF,EAAEiR,EAAE3e,OAASnB,EAAE,UAAUw6F,GAAGA,GAAG73F,MAAM63F,GAAG7nE,YAAYljB,EAAEzP,EAAEmB,OAAO,IAAIC,EAAE,EAAEA,EAAEyN,GAAGiR,EAAE1e,KAAKpB,EAAEoB,GAAGA,KAAK,IAAIye,EAAEhR,EAAEzN,EAAE,IAAI6N,EAAE,EAAEA,GAAG4Q,GAAGC,EAAEjR,EAAEI,KAAKjP,EAAEyP,EAAER,GAAGA,KAAK,OAAOyrF,GAAG16F,EAAEkE,MAAM9C,EAAE,EAAE6N,EAAE,EAAEA,OAAE,EAAO,CACxY,SAAS2rF,GAAGx5F,GAAG,IAAI0e,EAAE1e,EAAEy5F,QAA+E,MAAvE,aAAaz5F,EAAgB,KAAbA,EAAEA,EAAE05F,WAAgB,KAAKh7E,IAAI1e,EAAE,IAAKA,EAAE0e,EAAE,KAAK1e,IAAIA,EAAE,IAAW,IAAIA,GAAG,KAAKA,EAAEA,EAAE,CAAC,CAAC,SAAS25F,KAAK,OAAM,CAAE,CAAC,SAASC,KAAK,OAAM,CAAE,CAC5K,SAASjqE,GAAG3vB,GAAG,SAAS0e,EAAEA,EAAE7Q,EAAEjP,EAAEyP,EAAEoQ,GAA6G,IAAI,IAAIhR,KAAlHjO,KAAKq6F,WAAWn7E,EAAElf,KAAKs6F,YAAYl7F,EAAEY,KAAKkL,KAAKmD,EAAErO,KAAKm4F,YAAYtpF,EAAE7O,KAAK8L,OAAOmT,EAAEjf,KAAKu6F,cAAc,KAAkB/5F,EAAEA,EAAEb,eAAesO,KAAKiR,EAAE1e,EAAEyN,GAAGjO,KAAKiO,GAAGiR,EAAEA,EAAErQ,GAAGA,EAAEZ,IAAgI,OAA5HjO,KAAKw6F,oBAAoB,MAAM3rF,EAAE4rF,iBAAiB5rF,EAAE4rF,kBAAiB,IAAK5rF,EAAE6rF,aAAaP,GAAGC,GAAGp6F,KAAK26F,qBAAqBP,GAAUp6F,IAAI,CAC9E,OAD+E4f,EAAEV,EAAExf,UAAU,CAACk7F,eAAe,WAAW56F,KAAKy6F,kBAAiB,EAAG,IAAIj6F,EAAER,KAAKm4F,YAAY33F,IAAIA,EAAEo6F,eAAep6F,EAAEo6F,iBAAiB,mBAAmBp6F,EAAEk6F,cAC7el6F,EAAEk6F,aAAY,GAAI16F,KAAKw6F,mBAAmBL,GAAG,EAAET,gBAAgB,WAAW,IAAIl5F,EAAER,KAAKm4F,YAAY33F,IAAIA,EAAEk5F,gBAAgBl5F,EAAEk5F,kBAAkB,mBAAmBl5F,EAAEq6F,eAAer6F,EAAEq6F,cAAa,GAAI76F,KAAK26F,qBAAqBR,GAAG,EAAEW,QAAQ,WAAW,EAAEC,aAAaZ,KAAYj7E,CAAC,CACjR,IAAoL87E,GAAGC,GAAGC,GAAtLC,GAAG,CAACC,WAAW,EAAEC,QAAQ,EAAEC,WAAW,EAAEC,UAAU,SAAS/6F,GAAG,OAAOA,EAAE+6F,WAAW/oE,KAAKC,KAAK,EAAEgoE,iBAAiB,EAAEe,UAAU,GAAGv9D,GAAG9N,GAAGgrE,IAAIM,GAAG77E,EAAE,CAAC,EAAEu7E,GAAG,CAACO,KAAK,EAAEC,OAAO,IAAIC,GAAGzrE,GAAGsrE,IAAaI,GAAGj8E,EAAE,CAAC,EAAE67E,GAAG,CAACK,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,iBAAiBC,GAAGC,OAAO,EAAE9tC,QAAQ,EAAE+tC,cAAc,SAASn8F,GAAG,YAAO,IAASA,EAAEm8F,cAAcn8F,EAAEo8F,cAAcp8F,EAAEwxF,WAAWxxF,EAAEq8F,UAAUr8F,EAAEo8F,YAAYp8F,EAAEm8F,aAAa,EAAEG,UAAU,SAASt8F,GAAG,MAAG,cAC3eA,EAASA,EAAEs8F,WAAUt8F,IAAI06F,KAAKA,IAAI,cAAc16F,EAAE0K,MAAM8vF,GAAGx6F,EAAEs7F,QAAQZ,GAAGY,QAAQb,GAAGz6F,EAAEu7F,QAAQb,GAAGa,SAASd,GAAGD,GAAG,EAAEE,GAAG16F,GAAUw6F,GAAE,EAAE+B,UAAU,SAASv8F,GAAG,MAAM,cAAcA,EAAEA,EAAEu8F,UAAU9B,EAAE,IAAI+B,GAAG7sE,GAAG0rE,IAAiCoB,GAAG9sE,GAA7BvQ,EAAE,CAAC,EAAEi8E,GAAG,CAACqB,aAAa,KAA4CC,GAAGhtE,GAA9BvQ,EAAE,CAAC,EAAE67E,GAAG,CAACkB,cAAc,KAA0ES,GAAGjtE,GAA5DvQ,EAAE,CAAC,EAAEu7E,GAAG,CAACkC,cAAc,EAAEC,YAAY,EAAEC,cAAc,KAAcC,GAAG59E,EAAE,CAAC,EAAEu7E,GAAG,CAACsC,cAAc,SAASj9F,GAAG,MAAM,kBAAkBA,EAAEA,EAAEi9F,cAAc34F,OAAO24F,aAAa,IAAIC,GAAGvtE,GAAGqtE,IAAyBG,GAAGxtE,GAArBvQ,EAAE,CAAC,EAAEu7E,GAAG,CAACvtF,KAAK,KAAcgwF,GAAG,CAACC,IAAI,SACxfC,SAAS,IAAIC,KAAK,YAAYC,GAAG,UAAUC,MAAM,aAAaC,KAAK,YAAYC,IAAI,SAASC,IAAI,KAAKC,KAAK,cAAcC,KAAK,cAAcC,OAAO,aAAaC,gBAAgB,gBAAgBC,GAAG,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KACtf,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,UAAU,IAAI,aAAa,IAAI,QAAQC,GAAG,CAACC,IAAI,SAASC,QAAQ,UAAUC,KAAK,UAAUC,MAAM,YAAY,SAASC,GAAGv+F,GAAG,IAAI0e,EAAElf,KAAKm4F,YAAY,OAAOj5E,EAAEs9E,iBAAiBt9E,EAAEs9E,iBAAiBh8F,MAAIA,EAAEk+F,GAAGl+F,OAAM0e,EAAE1e,EAAK,CAAC,SAASi8F,KAAK,OAAOsC,EAAE,CAChS,IAAIC,GAAGp/E,EAAE,CAAC,EAAE67E,GAAG,CAACptD,IAAI,SAAS7tC,GAAG,GAAGA,EAAE6tC,IAAI,CAAC,IAAInvB,EAAE0+E,GAAGp9F,EAAE6tC,MAAM7tC,EAAE6tC,IAAI,GAAG,iBAAiBnvB,EAAE,OAAOA,CAAC,CAAC,MAAM,aAAa1e,EAAE0K,KAAc,MAAR1K,EAAEw5F,GAAGx5F,IAAU,QAAQT,OAAOgtC,aAAavsC,GAAI,YAAYA,EAAE0K,MAAM,UAAU1K,EAAE0K,KAAKuzF,GAAGj+F,EAAEy5F,UAAU,eAAe,EAAE,EAAEgF,KAAK,EAAEttF,SAAS,EAAEyqF,QAAQ,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,EAAE2C,OAAO,EAAErqC,OAAO,EAAE2nC,iBAAiBC,GAAGvC,SAAS,SAAS15F,GAAG,MAAM,aAAaA,EAAE0K,KAAK8uF,GAAGx5F,GAAG,CAAC,EAAEy5F,QAAQ,SAASz5F,GAAG,MAAM,YAAYA,EAAE0K,MAAM,UAAU1K,EAAE0K,KAAK1K,EAAEy5F,QAAQ,CAAC,EAAEkF,MAAM,SAAS3+F,GAAG,MAAM,aAC7eA,EAAE0K,KAAK8uF,GAAGx5F,GAAG,YAAYA,EAAE0K,MAAM,UAAU1K,EAAE0K,KAAK1K,EAAEy5F,QAAQ,CAAC,IAAImF,GAAGjvE,GAAG6uE,IAAiIK,GAAGlvE,GAA7HvQ,EAAE,CAAC,EAAEi8E,GAAG,CAAC5D,UAAU,EAAEhmF,MAAM,EAAEC,OAAO,EAAEotF,SAAS,EAAEC,mBAAmB,EAAEC,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAEC,YAAY,EAAEC,UAAU,KAAmIC,GAAG1vE,GAArHvQ,EAAE,CAAC,EAAE67E,GAAG,CAACqE,QAAQ,EAAEC,cAAc,EAAEC,eAAe,EAAE1D,OAAO,EAAEC,QAAQ,EAAEH,QAAQ,EAAEC,SAAS,EAAEG,iBAAiBC,MAA0EwD,GAAG9vE,GAA3DvQ,EAAE,CAAC,EAAEu7E,GAAG,CAACrS,aAAa,EAAEwU,YAAY,EAAEC,cAAc,KAAc2C,GAAGtgF,EAAE,CAAC,EAAEi8E,GAAG,CAACsE,OAAO,SAAS3/F,GAAG,MAAM,WAAWA,EAAEA,EAAE2/F,OAAO,gBAAgB3/F,GAAGA,EAAE4/F,YAAY,CAAC,EACnfzwC,OAAO,SAASnvD,GAAG,MAAM,WAAWA,EAAEA,EAAEmvD,OAAO,gBAAgBnvD,GAAGA,EAAE6/F,YAAY,eAAe7/F,GAAGA,EAAE8/F,WAAW,CAAC,EAAEC,OAAO,EAAEC,UAAU,IAAIC,GAAGtwE,GAAG+vE,IAAIQ,GAAG,CAAC,EAAE,GAAG,GAAG,IAAIC,GAAGtY,GAAI,qBAAqBvjF,OAAO87F,GAAG,KAAKvY,GAAI,iBAAiBliF,WAAWy6F,GAAGz6F,SAAS06F,cAAc,IAAIC,GAAGzY,GAAI,cAAcvjF,SAAS87F,GAAGG,GAAG1Y,KAAMsY,IAAIC,IAAI,EAAEA,IAAI,IAAIA,IAAII,GAAGjhG,OAAOgtC,aAAa,IAAIk0D,IAAG,EAC1W,SAASC,GAAG1gG,EAAE0e,GAAG,OAAO1e,GAAG,IAAK,QAAQ,OAAO,IAAIkgG,GAAG//F,QAAQue,EAAE+6E,SAAS,IAAK,UAAU,OAAO,MAAM/6E,EAAE+6E,QAAQ,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,OAAM,EAAG,QAAQ,OAAM,EAAG,CAAC,SAASkH,GAAG3gG,GAAc,MAAM,kBAAjBA,EAAEA,EAAEm7F,SAAkC,SAASn7F,EAAEA,EAAEoN,KAAK,IAAI,CAAC,IAAIwzF,IAAG,EAE9Q,IAAIC,GAAG,CAACtqD,OAAM,EAAG0oB,MAAK,EAAG4b,UAAS,EAAG,kBAAiB,EAAGimB,OAAM,EAAG9hC,OAAM,EAAGlF,QAAO,EAAGinC,UAAS,EAAGC,OAAM,EAAGC,QAAO,EAAGC,KAAI,EAAGnoE,MAAK,EAAGrkB,MAAK,EAAGysF,KAAI,EAAGt7B,MAAK,GAAI,SAASu7B,GAAGphG,GAAG,IAAI0e,EAAE1e,GAAGA,EAAE+qF,UAAU/qF,EAAE+qF,SAASh9D,cAAc,MAAM,UAAUrP,IAAImiF,GAAG7gG,EAAE0K,MAAM,aAAagU,CAAO,CAAC,SAASuoB,GAAGjnC,EAAE0e,EAAEjR,EAAEI,GAAGokF,GAAGpkF,GAAsB,GAAnB6Q,EAAE2iF,GAAG3iF,EAAE,aAAgB3e,SAAS0N,EAAE,IAAIgwB,GAAG,WAAW,SAAS,KAAKhwB,EAAEI,GAAG7N,EAAEkC,KAAK,CAACo/F,MAAM7zF,EAAE8zF,UAAU7iF,IAAI,CAAC,IAAIyyB,GAAG,KAAKqwD,GAAG,KAAK,SAASC,GAAGzhG,GAAG0hG,GAAG1hG,EAAE,EAAE,CAAC,SAAS2hG,GAAG3hG,GAAe,GAAGsrF,EAATsW,GAAG5hG,IAAY,OAAOA,CAAC,CACpe,SAAS6hG,GAAG7hG,EAAE0e,GAAG,GAAG,WAAW1e,EAAE,OAAO0e,CAAC,CAAC,IAAIojF,IAAG,EAAG,GAAGja,EAAG,CAAC,IAAI7gD,GAAG,GAAG6gD,EAAG,CAAC,IAAIka,GAAG,YAAYp8F,SAAS,IAAIo8F,GAAG,CAAC,IAAIC,GAAGr8F,SAASC,cAAc,OAAOo8F,GAAGvlF,aAAa,UAAU,WAAWslF,GAAG,oBAAoBC,GAAGC,OAAO,CAACj7D,GAAG+6D,EAAE,MAAM/6D,IAAG,EAAG86D,GAAG96D,MAAMrhC,SAAS06F,cAAc,EAAE16F,SAAS06F,aAAa,CAAC,SAAS6B,KAAK/wD,KAAKA,GAAGgxD,YAAY,mBAAmBC,IAAIZ,GAAGrwD,GAAG,KAAK,CAAC,SAASixD,GAAGpiG,GAAG,GAAG,UAAUA,EAAEsoF,cAAcqZ,GAAGH,IAAI,CAAC,IAAI9iF,EAAE,GAAGuoB,GAAGvoB,EAAE8iF,GAAGxhG,EAAEuxF,GAAGvxF,IAAIsyF,GAAGmP,GAAG/iF,EAAE,CAAC,CAC/b,SAAS2jF,GAAGriG,EAAE0e,EAAEjR,GAAG,YAAYzN,GAAGkiG,KAAUV,GAAG/zF,GAAR0jC,GAAGzyB,GAAU4jF,YAAY,mBAAmBF,KAAK,aAAapiG,GAAGkiG,IAAI,CAAC,SAASK,GAAGviG,GAAG,GAAG,oBAAoBA,GAAG,UAAUA,GAAG,YAAYA,EAAE,OAAO2hG,GAAGH,GAAG,CAAC,SAASgB,GAAGxiG,EAAE0e,GAAG,GAAG,UAAU1e,EAAE,OAAO2hG,GAAGjjF,EAAE,CAAC,SAAS+jF,GAAGziG,EAAE0e,GAAG,GAAG,UAAU1e,GAAG,WAAWA,EAAE,OAAO2hG,GAAGjjF,EAAE,CAAiE,IAAIgkF,GAAG,oBAAoB7jG,OAAOwlB,GAAGxlB,OAAOwlB,GAA5G,SAAYrkB,EAAE0e,GAAG,OAAO1e,IAAI0e,IAAI,IAAI1e,GAAG,EAAEA,IAAI,EAAE0e,IAAI1e,IAAIA,GAAG0e,IAAIA,CAAC,EACtW,SAASikF,GAAG3iG,EAAE0e,GAAG,GAAGgkF,GAAG1iG,EAAE0e,GAAG,OAAM,EAAG,GAAG,kBAAkB1e,GAAG,OAAOA,GAAG,kBAAkB0e,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAIjR,EAAE5O,OAAOqyD,KAAKlxD,GAAG6N,EAAEhP,OAAOqyD,KAAKxyC,GAAG,GAAGjR,EAAE1N,SAAS8N,EAAE9N,OAAO,OAAM,EAAG,IAAI8N,EAAE,EAAEA,EAAEJ,EAAE1N,OAAO8N,IAAI,CAAC,IAAIjP,EAAE6O,EAAEI,GAAG,IAAIi6E,EAAG1oF,KAAKsf,EAAE9f,KAAK8jG,GAAG1iG,EAAEpB,GAAG8f,EAAE9f,IAAI,OAAM,CAAE,CAAC,OAAM,CAAE,CAAC,SAASgkG,GAAG5iG,GAAG,KAAKA,GAAGA,EAAEgrD,YAAYhrD,EAAEA,EAAEgrD,WAAW,OAAOhrD,CAAC,CACtU,SAAS6iG,GAAG7iG,EAAE0e,GAAG,IAAwB7Q,EAApBJ,EAAEm1F,GAAG5iG,GAAO,IAAJA,EAAE,EAAYyN,GAAG,CAAC,GAAG,IAAIA,EAAEigF,SAAS,CAA0B,GAAzB7/E,EAAE7N,EAAEyN,EAAE8jB,YAAYxxB,OAAUC,GAAG0e,GAAG7Q,GAAG6Q,EAAE,MAAM,CAAC0S,KAAK3jB,EAAEsuC,OAAOr9B,EAAE1e,GAAGA,EAAE6N,CAAC,CAAC7N,EAAE,CAAC,KAAKyN,GAAG,CAAC,GAAGA,EAAEq1F,YAAY,CAACr1F,EAAEA,EAAEq1F,YAAY,MAAM9iG,CAAC,CAACyN,EAAEA,EAAEmmB,UAAU,CAACnmB,OAAE,CAAM,CAACA,EAAEm1F,GAAGn1F,EAAE,CAAC,CAAC,SAASs1F,GAAG/iG,EAAE0e,GAAG,SAAO1e,IAAG0e,KAAE1e,IAAI0e,KAAK1e,GAAG,IAAIA,EAAE0tF,YAAYhvE,GAAG,IAAIA,EAAEgvE,SAASqV,GAAG/iG,EAAE0e,EAAEkV,YAAY,aAAa5zB,EAAEA,EAAEgjG,SAAStkF,KAAG1e,EAAEijG,4BAAwD,GAA7BjjG,EAAEijG,wBAAwBvkF,KAAY,CAC9Z,SAASwkF,KAAK,IAAI,IAAIljG,EAAEsE,OAAOoa,EAAE8sE,IAAK9sE,aAAa1e,EAAEmjG,mBAAmB,CAAC,IAAI,IAAI11F,EAAE,kBAAkBiR,EAAE0kF,cAAcjyF,SAASiiB,IAAI,CAAC,MAAMvlB,GAAGJ,GAAE,CAAE,CAAC,IAAGA,EAAyB,MAAMiR,EAAE8sE,GAA/BxrF,EAAE0e,EAAE0kF,eAAgCz9F,SAAS,CAAC,OAAO+Y,CAAC,CAAC,SAAS2kF,GAAGrjG,GAAG,IAAI0e,EAAE1e,GAAGA,EAAE+qF,UAAU/qF,EAAE+qF,SAASh9D,cAAc,OAAOrP,IAAI,UAAUA,IAAI,SAAS1e,EAAE0K,MAAM,WAAW1K,EAAE0K,MAAM,QAAQ1K,EAAE0K,MAAM,QAAQ1K,EAAE0K,MAAM,aAAa1K,EAAE0K,OAAO,aAAagU,GAAG,SAAS1e,EAAEsjG,gBAAgB,CACxa,SAASC,GAAGvjG,GAAG,IAAI0e,EAAEwkF,KAAKz1F,EAAEzN,EAAEwjG,YAAY31F,EAAE7N,EAAEyjG,eAAe,GAAG/kF,IAAIjR,GAAGA,GAAGA,EAAE6+E,eAAeyW,GAAGt1F,EAAE6+E,cAAcoX,gBAAgBj2F,GAAG,CAAC,GAAG,OAAOI,GAAGw1F,GAAG51F,GAAG,GAAGiR,EAAE7Q,EAAEiuC,WAAc,KAAR97C,EAAE6N,EAAEguC,OAAiB77C,EAAE0e,GAAG,mBAAmBjR,EAAEA,EAAEk2F,eAAejlF,EAAEjR,EAAEm2F,aAAar7F,KAAKS,IAAIhJ,EAAEyN,EAAElM,MAAMxB,aAAa,IAAGC,GAAG0e,EAAEjR,EAAE6+E,eAAe3mF,WAAW+Y,EAAEmlF,aAAav/F,QAASw/F,aAAa,CAAC9jG,EAAEA,EAAE8jG,eAAe,IAAIllG,EAAE6O,EAAE8jB,YAAYxxB,OAAOsO,EAAE9F,KAAKS,IAAI6E,EAAEiuC,MAAMl9C,GAAGiP,OAAE,IAASA,EAAEguC,IAAIxtC,EAAE9F,KAAKS,IAAI6E,EAAEguC,IAAIj9C,IAAIoB,EAAEi0D,QAAQ5lD,EAAER,IAAIjP,EAAEiP,EAAEA,EAAEQ,EAAEA,EAAEzP,GAAGA,EAAEikG,GAAGp1F,EAAEY,GAAG,IAAIoQ,EAAEokF,GAAGp1F,EACvfI,GAAGjP,GAAG6f,IAAI,IAAIze,EAAE+jG,YAAY/jG,EAAEgkG,aAAaplG,EAAEwyB,MAAMpxB,EAAEikG,eAAerlG,EAAEm9C,QAAQ/7C,EAAEkkG,YAAYzlF,EAAE2S,MAAMpxB,EAAEmkG,cAAc1lF,EAAEs9B,WAAUr9B,EAAEA,EAAE0lF,eAAgBC,SAASzlG,EAAEwyB,KAAKxyB,EAAEm9C,QAAQ/7C,EAAEskG,kBAAkBj2F,EAAER,GAAG7N,EAAEukG,SAAS7lF,GAAG1e,EAAEi0D,OAAOx1C,EAAE2S,KAAK3S,EAAEs9B,UAAUr9B,EAAE8lF,OAAO/lF,EAAE2S,KAAK3S,EAAEs9B,QAAQ/7C,EAAEukG,SAAS7lF,IAAI,CAAM,IAALA,EAAE,GAAO1e,EAAEyN,EAAEzN,EAAEA,EAAE4zB,YAAY,IAAI5zB,EAAE0tF,UAAUhvE,EAAExc,KAAK,CAACi1B,QAAQn3B,EAAEgK,KAAKhK,EAAEykG,WAAW16F,IAAI/J,EAAE0kG,YAAmD,IAAvC,oBAAoBj3F,EAAEk3F,OAAOl3F,EAAEk3F,QAAYl3F,EAAE,EAAEA,EAAEiR,EAAE3e,OAAO0N,KAAIzN,EAAE0e,EAAEjR,IAAK0pB,QAAQstE,WAAWzkG,EAAEgK,KAAKhK,EAAEm3B,QAAQutE,UAAU1kG,EAAE+J,GAAG,CAAC,CACzf,IAAI66F,GAAG/c,GAAI,iBAAiBliF,UAAU,IAAIA,SAAS06F,aAAawE,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,IAAG,EAC3F,SAASC,GAAGjlG,EAAE0e,EAAEjR,GAAG,IAAII,EAAEJ,EAAEnJ,SAASmJ,EAAEA,EAAE9H,SAAS,IAAI8H,EAAEigF,SAASjgF,EAAEA,EAAE6+E,cAAc0Y,IAAI,MAAMH,IAAIA,KAAKrZ,EAAG39E,KAAU,mBAALA,EAAEg3F,KAAyBxB,GAAGx1F,GAAGA,EAAE,CAACiuC,MAAMjuC,EAAE81F,eAAe9nD,IAAIhuC,EAAE+1F,cAAuF/1F,EAAE,CAACm2F,YAA3En2F,GAAGA,EAAEy+E,eAAez+E,EAAEy+E,cAAcuX,aAAav/F,QAAQw/F,gBAA+BE,WAAWC,aAAap2F,EAAEo2F,aAAaC,UAAUr2F,EAAEq2F,UAAUC,YAAYt2F,EAAEs2F,aAAcY,IAAIpC,GAAGoC,GAAGl3F,KAAKk3F,GAAGl3F,EAAsB,GAApBA,EAAEwzF,GAAGyD,GAAG,aAAgB/kG,SAAS2e,EAAE,IAAI+e,GAAG,WAAW,SAAS,KAAK/e,EAAEjR,GAAGzN,EAAEkC,KAAK,CAACo/F,MAAM5iF,EAAE6iF,UAAU1zF,IAAI6Q,EAAEpT,OAAOu5F,KAAK,CACtf,SAASK,GAAGllG,EAAE0e,GAAG,IAAIjR,EAAE,CAAC,EAAiF,OAA/EA,EAAEzN,EAAE+tB,eAAerP,EAAEqP,cAActgB,EAAE,SAASzN,GAAG,SAAS0e,EAAEjR,EAAE,MAAMzN,GAAG,MAAM0e,EAASjR,CAAC,CAAC,IAAI03F,GAAG,CAACC,aAAaF,GAAG,YAAY,gBAAgBG,mBAAmBH,GAAG,YAAY,sBAAsBI,eAAeJ,GAAG,YAAY,kBAAkBK,cAAcL,GAAG,aAAa,kBAAkBM,GAAG,CAAC,EAAEC,GAAG,CAAC,EACpF,SAASC,GAAG1lG,GAAG,GAAGwlG,GAAGxlG,GAAG,OAAOwlG,GAAGxlG,GAAG,IAAImlG,GAAGnlG,GAAG,OAAOA,EAAE,IAAYyN,EAARiR,EAAEymF,GAAGnlG,GAAK,IAAIyN,KAAKiR,EAAE,GAAGA,EAAEvf,eAAesO,IAAIA,KAAKg4F,GAAG,OAAOD,GAAGxlG,GAAG0e,EAAEjR,GAAG,OAAOzN,CAAC,CAA/X6nF,IAAK4d,GAAG9/F,SAASC,cAAc,OAAOiE,MAAM,mBAAmBvF,gBAAgB6gG,GAAGC,aAAar0F,iBAAiBo0F,GAAGE,mBAAmBt0F,iBAAiBo0F,GAAGG,eAAev0F,WAAW,oBAAoBzM,eAAe6gG,GAAGI,cAAczM,YAAwJ,IAAI6M,GAAGD,GAAG,gBAAgBE,GAAGF,GAAG,sBAAsBG,GAAGH,GAAG,kBAAkBI,GAAGJ,GAAG,iBAAiBK,GAAG,IAAI5O,IAAIvhE,GAAG,smBAAsmB/mB,MAAM,KAC/lC,SAASm3F,GAAGhmG,EAAE0e,GAAGqnF,GAAG5hG,IAAInE,EAAE0e,GAAGipE,EAAGjpE,EAAE,CAAC1e,GAAG,CAAC,IAAI,IAAIwhC,GAAG,EAAEA,GAAG5L,GAAG71B,OAAOyhC,KAAK,CAAC,IAAIykE,GAAGrwE,GAAG4L,IAA2DwkE,GAApDC,GAAGl4E,cAAuD,MAAtCk4E,GAAG,GAAGpqC,cAAcoqC,GAAGnjG,MAAM,IAAiB,CAACkjG,GAAGL,GAAG,kBAAkBK,GAAGJ,GAAG,wBAAwBI,GAAGH,GAAG,oBAAoBG,GAAG,WAAW,iBAAiBA,GAAG,UAAU,WAAWA,GAAG,WAAW,UAAUA,GAAGF,GAAG,mBAAmBle,EAAG,eAAe,CAAC,WAAW,cAAcA,EAAG,eAAe,CAAC,WAAW,cAAcA,EAAG,iBAAiB,CAAC,aAAa,gBAC7cA,EAAG,iBAAiB,CAAC,aAAa,gBAAgBD,EAAG,WAAW,oEAAoE94E,MAAM,MAAM84E,EAAG,WAAW,uFAAuF94E,MAAM,MAAM84E,EAAG,gBAAgB,CAAC,iBAAiB,WAAW,YAAY,UAAUA,EAAG,mBAAmB,2DAA2D94E,MAAM,MAAM84E,EAAG,qBAAqB,6DAA6D94E,MAAM,MAC/f84E,EAAG,sBAAsB,8DAA8D94E,MAAM,MAAM,IAAIq3F,GAAG,6NAA6Nr3F,MAAM,KAAKs3F,GAAG,IAAI1e,IAAI,0CAA0C54E,MAAM,KAAKlM,OAAOujG,KACzZ,SAASE,GAAGpmG,EAAE0e,EAAEjR,GAAG,IAAII,EAAE7N,EAAE0K,MAAM,gBAAgB1K,EAAE+5F,cAActsF,EAlDjE,SAAYzN,EAAE0e,EAAEjR,EAAEI,EAAEjP,EAAEyP,EAAEoQ,EAAEtd,EAAE6M,GAA4B,GAAzBglF,GAAG/yF,MAAMT,KAAKM,WAAc6yF,GAAG,CAAC,IAAGA,GAAgC,MAAM7tF,MAAMzB,EAAE,MAA1C,IAAID,EAAEwvF,GAAGD,IAAG,EAAGC,GAAG,KAA8BC,KAAKA,IAAG,EAAGC,GAAG1vF,EAAE,CAAC,CAkDpEijG,CAAGx4F,EAAE6Q,OAAE,EAAO1e,GAAGA,EAAE+5F,cAAc,IAAI,CACxG,SAAS2H,GAAG1hG,EAAE0e,GAAGA,EAAE,KAAO,EAAFA,GAAK,IAAI,IAAIjR,EAAE,EAAEA,EAAEzN,EAAED,OAAO0N,IAAI,CAAC,IAAII,EAAE7N,EAAEyN,GAAG7O,EAAEiP,EAAEyzF,MAAMzzF,EAAEA,EAAE0zF,UAAUvhG,EAAE,CAAC,IAAIqO,OAAE,EAAO,GAAGqQ,EAAE,IAAI,IAAID,EAAE5Q,EAAE9N,OAAO,EAAE,GAAG0e,EAAEA,IAAI,CAAC,IAAItd,EAAE0M,EAAE4Q,GAAGzQ,EAAE7M,EAAE2nD,SAAS1lD,EAAEjC,EAAE44F,cAA2B,GAAb54F,EAAEA,EAAEmlG,SAAYt4F,IAAIK,GAAGzP,EAAEu7F,uBAAuB,MAAMn6F,EAAEomG,GAAGxnG,EAAEuC,EAAEiC,GAAGiL,EAAEL,CAAC,MAAM,IAAIyQ,EAAE,EAAEA,EAAE5Q,EAAE9N,OAAO0e,IAAI,CAAoD,GAA5CzQ,GAAP7M,EAAE0M,EAAE4Q,IAAOqqC,SAAS1lD,EAAEjC,EAAE44F,cAAc54F,EAAEA,EAAEmlG,SAAYt4F,IAAIK,GAAGzP,EAAEu7F,uBAAuB,MAAMn6F,EAAEomG,GAAGxnG,EAAEuC,EAAEiC,GAAGiL,EAAEL,CAAC,CAAC,CAAC,CAAC,GAAG6kF,GAAG,MAAM7yF,EAAE8yF,GAAGD,IAAG,EAAGC,GAAG,KAAK9yF,CAAE,CAC5a,SAASwf,GAAExf,EAAE0e,GAAG,IAAIjR,EAAEiR,EAAEijB,SAAI,IAASl0B,IAAIA,EAAEiR,EAAEijB,IAAI,IAAI8lD,KAAK,IAAI55E,EAAE7N,EAAE,WAAWyN,EAAExJ,IAAI4J,KAAK04F,GAAG7nF,EAAE1e,EAAE,GAAE,GAAIyN,EAAE+3B,IAAI33B,GAAG,CAAC,SAAS24F,GAAGxmG,EAAE0e,EAAEjR,GAAG,IAAII,EAAE,EAAE6Q,IAAI7Q,GAAG,GAAG04F,GAAG94F,EAAEzN,EAAE6N,EAAE6Q,EAAE,CAAC,IAAI+nF,GAAG,kBAAkBl+F,KAAKY,SAASgD,SAAS,IAAIrJ,MAAM,GAAG,SAAS4jG,GAAG1mG,GAAG,IAAIA,EAAEymG,IAAI,CAACzmG,EAAEymG,KAAI,EAAGtzD,EAAGxgB,SAAQ,SAASjU,GAAG,oBAAoBA,IAAIynF,GAAGliG,IAAIya,IAAI8nF,GAAG9nF,GAAE,EAAG1e,GAAGwmG,GAAG9nF,GAAE,EAAG1e,GAAG,IAAG,IAAI0e,EAAE,IAAI1e,EAAE0tF,SAAS1tF,EAAEA,EAAEssF,cAAc,OAAO5tE,GAAGA,EAAE+nF,MAAM/nF,EAAE+nF,KAAI,EAAGD,GAAG,mBAAkB,EAAG9nF,GAAG,CAAC,CACjb,SAAS6nF,GAAGvmG,EAAE0e,EAAEjR,EAAEI,GAAG,OAAOsrF,GAAGz6E,IAAI,KAAK,EAAE,IAAI9f,EAAEi6F,GAAG,MAAM,KAAK,EAAEj6F,EAAEo6F,GAAG,MAAM,QAAQp6F,EAAEm6F,GAAGtrF,EAAE7O,EAAE4T,KAAK,KAAKkM,EAAEjR,EAAEzN,GAAGpB,OAAE,GAAQ4zF,IAAI,eAAe9zE,GAAG,cAAcA,GAAG,UAAUA,IAAI9f,GAAE,GAAIiP,OAAE,IAASjP,EAAEoB,EAAE0T,iBAAiBgL,EAAEjR,EAAE,CAACk5F,SAAQ,EAAGC,QAAQhoG,IAAIoB,EAAE0T,iBAAiBgL,EAAEjR,GAAE,QAAI,IAAS7O,EAAEoB,EAAE0T,iBAAiBgL,EAAEjR,EAAE,CAACm5F,QAAQhoG,IAAIoB,EAAE0T,iBAAiBgL,EAAEjR,GAAE,EAAG,CAClV,SAASowB,GAAG79B,EAAE0e,EAAEjR,EAAEI,EAAEjP,GAAG,IAAIyP,EAAER,EAAE,GAAG,KAAO,EAAF6Q,IAAM,KAAO,EAAFA,IAAM,OAAO7Q,EAAE7N,EAAE,OAAO,CAAC,GAAG,OAAO6N,EAAE,OAAO,IAAI4Q,EAAE5Q,EAAE08E,IAAI,GAAG,IAAI9rE,GAAG,IAAIA,EAAE,CAAC,IAAItd,EAAE0M,EAAEkkF,UAAUoG,cAAc,GAAGh3F,IAAIvC,GAAG,IAAIuC,EAAEusF,UAAUvsF,EAAEyyB,aAAah1B,EAAE,MAAM,GAAG,IAAI6f,EAAE,IAAIA,EAAE5Q,EAAE/L,OAAO,OAAO2c,GAAG,CAAC,IAAIzQ,EAAEyQ,EAAE8rE,IAAI,IAAG,IAAIv8E,GAAG,IAAIA,MAAKA,EAAEyQ,EAAEszE,UAAUoG,iBAAkBv5F,GAAG,IAAIoP,EAAE0/E,UAAU1/E,EAAE4lB,aAAah1B,GAAE,OAAO6f,EAAEA,EAAE3c,MAAM,CAAC,KAAK,OAAOX,GAAG,CAAS,GAAG,QAAXsd,EAAEw5E,GAAG92F,IAAe,OAAe,GAAG,KAAX6M,EAAEyQ,EAAE8rE,MAAc,IAAIv8E,EAAE,CAACH,EAAEQ,EAAEoQ,EAAE,SAASze,CAAC,CAACmB,EAAEA,EAAEyyB,UAAU,CAAC,CAAC/lB,EAAEA,EAAE/L,MAAM,CAACwwF,IAAG,WAAW,IAAIzkF,EAAEQ,EAAEzP,EAAE2yF,GAAG9jF,GAAGgR,EAAE,GACpfze,EAAE,CAAC,IAAImB,EAAE4kG,GAAG1jG,IAAIrC,GAAG,QAAG,IAASmB,EAAE,CAAC,IAAI6M,EAAEyvB,GAAGj9B,EAAER,EAAE,OAAOA,GAAG,IAAK,WAAW,GAAG,IAAIw5F,GAAG/rF,GAAG,MAAMzN,EAAE,IAAK,UAAU,IAAK,QAAQgO,EAAE4wF,GAAG,MAAM,IAAK,UAAUp+F,EAAE,QAAQwN,EAAE2uF,GAAG,MAAM,IAAK,WAAWn8F,EAAE,OAAOwN,EAAE2uF,GAAG,MAAM,IAAK,aAAa,IAAK,YAAY3uF,EAAE2uF,GAAG,MAAM,IAAK,QAAQ,GAAG,IAAIlvF,EAAEyuF,OAAO,MAAMl8F,EAAE,IAAK,WAAW,IAAK,WAAW,IAAK,YAAY,IAAK,YAAY,IAAK,UAAU,IAAK,WAAW,IAAK,YAAY,IAAK,cAAcgO,EAAEwuF,GAAG,MAAM,IAAK,OAAO,IAAK,UAAU,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,OAAOxuF,EAC1iByuF,GAAG,MAAM,IAAK,cAAc,IAAK,WAAW,IAAK,YAAY,IAAK,aAAazuF,EAAEqxF,GAAG,MAAM,KAAKsG,GAAG,KAAKC,GAAG,KAAKC,GAAG73F,EAAE4uF,GAAG,MAAM,KAAKkJ,GAAG93F,EAAEyxF,GAAG,MAAM,IAAK,SAASzxF,EAAEotF,GAAG,MAAM,IAAK,QAAQptF,EAAEiyF,GAAG,MAAM,IAAK,OAAO,IAAK,MAAM,IAAK,QAAQjyF,EAAEkvF,GAAG,MAAM,IAAK,oBAAoB,IAAK,qBAAqB,IAAK,gBAAgB,IAAK,cAAc,IAAK,cAAc,IAAK,aAAa,IAAK,cAAc,IAAK,YAAYlvF,EAAE6wF,GAAG,IAAIlgG,EAAE,KAAO,EAAF+f,GAAKuqB,GAAGtqC,GAAG,WAAWqB,EAAE8e,EAAEngB,EAAE,OAAOwC,EAAEA,EAAE,UAAU,KAAKA,EAAExC,EAAE,GAAG,IAAI,IAAQwT,EAAJkN,EAAExR,EAAI,OAC/ewR,GAAG,CAAK,IAAIgG,GAARlT,EAAEkN,GAAU0yE,UAAsF,GAA5E,IAAI5/E,EAAEo4E,KAAK,OAAOllE,IAAIlT,EAAEkT,EAAE,OAAOvG,IAAc,OAAVuG,EAAEktE,GAAGlzE,EAAEP,KAAYngB,EAAEuD,KAAK2kG,GAAGxnF,EAAEgG,EAAElT,MAAS82B,EAAE,MAAM5pB,EAAEA,EAAEvd,MAAM,CAAC,EAAEnD,EAAEoB,SAASoB,EAAE,IAAI6M,EAAE7M,EAAEX,EAAE,KAAKiN,EAAE7O,GAAG6f,EAAEvc,KAAK,CAACo/F,MAAMngG,EAAEogG,UAAU5iG,IAAI,CAAC,CAAC,GAAG,KAAO,EAAF+f,GAAK,CAA4E,GAAnC1Q,EAAE,aAAahO,GAAG,eAAeA,KAAtEmB,EAAE,cAAcnB,GAAG,gBAAgBA,IAA2CyN,IAAI6jF,MAAK9wF,EAAEiN,EAAE0uF,eAAe1uF,EAAE2uF,eAAenE,GAAGz3F,KAAIA,EAAEsmG,OAAgB94F,GAAG7M,KAAGA,EAAEvC,EAAE0F,SAAS1F,EAAEA,GAAGuC,EAAEvC,EAAE0tF,eAAenrF,EAAE0iG,aAAa1iG,EAAE4lG,aAAaziG,OAAU0J,GAAqCA,EAAEH,EAAiB,QAAfrN,GAAnCA,EAAEiN,EAAE0uF,eAAe1uF,EAAE4uF,WAAkBpE,GAAGz3F,GAAG,QAC9dA,KAARyoC,EAAEgqD,GAAGzyF,KAAU,IAAIA,EAAE+pF,KAAK,IAAI/pF,EAAE+pF,OAAK/pF,EAAE,QAAUwN,EAAE,KAAKxN,EAAEqN,GAAKG,IAAIxN,GAAE,CAAgU,GAA/T7B,EAAE69F,GAAGn3E,EAAE,eAAevG,EAAE,eAAeO,EAAE,QAAW,eAAerf,GAAG,gBAAgBA,IAAErB,EAAEkgG,GAAGx5E,EAAE,iBAAiBvG,EAAE,iBAAiBO,EAAE,WAAU4pB,EAAE,MAAMj7B,EAAE7M,EAAEygG,GAAG5zF,GAAGmE,EAAE,MAAM3R,EAAEW,EAAEygG,GAAGphG,IAAGW,EAAE,IAAIxC,EAAE0mB,EAAEhG,EAAE,QAAQrR,EAAEP,EAAE7O,IAAK0M,OAAO29B,EAAE9nC,EAAEg7F,cAAchqF,EAAEkT,EAAE,KAAK4yE,GAAGr5F,KAAKiP,KAAIlP,EAAE,IAAIA,EAAEmgB,EAAEO,EAAE,QAAQ7e,EAAEiN,EAAE7O,IAAK0M,OAAO6G,EAAExT,EAAEw9F,cAAclzD,EAAE5jB,EAAE1mB,GAAGsqC,EAAE5jB,EAAKrX,GAAGxN,EAAEke,EAAE,CAAa,IAARI,EAAEte,EAAE6e,EAAE,EAAMlN,EAAhBxT,EAAEqP,EAAkBmE,EAAEA,EAAE60F,GAAG70F,GAAGkN,IAAQ,IAAJlN,EAAE,EAAMkT,EAAEvG,EAAEuG,EAAEA,EAAE2hF,GAAG3hF,GAAGlT,IAAI,KAAK,EAAEkN,EAAElN,GAAGxT,EAAEqoG,GAAGroG,GAAG0gB,IAAI,KAAK,EAAElN,EAAEkN,GAAGP,EACpfkoF,GAAGloF,GAAG3M,IAAI,KAAKkN,KAAK,CAAC,GAAG1gB,IAAImgB,GAAG,OAAOA,GAAGngB,IAAImgB,EAAEo0E,UAAU,MAAMx0E,EAAE/f,EAAEqoG,GAAGroG,GAAGmgB,EAAEkoF,GAAGloF,EAAE,CAACngB,EAAE,IAAI,MAAMA,EAAE,KAAK,OAAOqP,GAAGi5F,GAAGxoF,EAAEtd,EAAE6M,EAAErP,GAAE,GAAI,OAAO6B,GAAG,OAAOyoC,GAAGg+D,GAAGxoF,EAAEwqB,EAAEzoC,EAAE7B,GAAE,EAAG,CAA8D,GAAG,YAA1CqP,GAAjB7M,EAAE0M,EAAE+zF,GAAG/zF,GAAGvJ,QAAWymF,UAAU5pF,EAAE4pF,SAASh9D,gBAA+B,UAAU/f,GAAG,SAAS7M,EAAEuJ,KAAK,IAAIw8F,EAAGrF,QAAQ,GAAGT,GAAGjgG,GAAG,GAAG2gG,GAAGoF,EAAGzE,OAAO,CAACyE,EAAG3E,GAAG,IAAI4E,EAAG9E,EAAE,MAAMr0F,EAAE7M,EAAE4pF,WAAW,UAAU/8E,EAAE+f,gBAAgB,aAAa5sB,EAAEuJ,MAAM,UAAUvJ,EAAEuJ,QAAQw8F,EAAG1E,IACrV,OAD4V0E,IAAKA,EAAGA,EAAGlnG,EAAE6N,IAAKo5B,GAAGxoB,EAAEyoF,EAAGz5F,EAAE7O,IAAWuoG,GAAIA,EAAGnnG,EAAEmB,EAAE0M,GAAG,aAAa7N,IAAImnG,EAAGhmG,EAAE0qF,gBAClfsb,EAAGlb,YAAY,WAAW9qF,EAAEuJ,MAAM0hF,GAAGjrF,EAAE,SAASA,EAAEI,QAAO4lG,EAAGt5F,EAAE+zF,GAAG/zF,GAAGvJ,OAActE,GAAG,IAAK,WAAaohG,GAAG+F,IAAK,SAASA,EAAG7D,mBAAgBuB,GAAGsC,EAAGrC,GAAGj3F,EAAEk3F,GAAG,MAAK,MAAM,IAAK,WAAWA,GAAGD,GAAGD,GAAG,KAAK,MAAM,IAAK,YAAYG,IAAG,EAAG,MAAM,IAAK,cAAc,IAAK,UAAU,IAAK,UAAUA,IAAG,EAAGC,GAAGxmF,EAAEhR,EAAE7O,GAAG,MAAM,IAAK,kBAAkB,GAAGgmG,GAAG,MAAM,IAAK,UAAU,IAAK,QAAQK,GAAGxmF,EAAEhR,EAAE7O,GAAG,IAAIwoG,EAAG,GAAGjH,GAAGzhF,EAAE,CAAC,OAAO1e,GAAG,IAAK,mBAAmB,IAAIqnG,EAAG,qBAAqB,MAAM3oF,EAAE,IAAK,iBAAiB2oF,EAAG,mBACpe,MAAM3oF,EAAE,IAAK,oBAAoB2oF,EAAG,sBAAsB,MAAM3oF,EAAE2oF,OAAG,CAAM,MAAMzG,GAAGF,GAAG1gG,EAAEyN,KAAK45F,EAAG,oBAAoB,YAAYrnG,GAAG,MAAMyN,EAAEgsF,UAAU4N,EAAG,sBAAsBA,IAAK9G,IAAI,OAAO9yF,EAAE4mD,SAASusC,IAAI,uBAAuByG,EAAG,qBAAqBA,GAAIzG,KAAKwG,EAAG7N,OAAYF,GAAG,UAARD,GAAGx6F,GAAkBw6F,GAAG73F,MAAM63F,GAAG7nE,YAAYqvE,IAAG,IAAiB,GAAZuG,EAAG9F,GAAGxzF,EAAEw5F,IAAStnG,SAASsnG,EAAG,IAAIlK,GAAGkK,EAAGrnG,EAAE,KAAKyN,EAAE7O,GAAG6f,EAAEvc,KAAK,CAACo/F,MAAM+F,EAAG9F,UAAU4F,IAAKC,EAAGC,EAAGj6F,KAAKg6F,EAAa,QAATA,EAAGzG,GAAGlzF,MAAe45F,EAAGj6F,KAAKg6F,MAAUA,EAAG9G,GA5BhM,SAAYtgG,EAAE0e,GAAG,OAAO1e,GAAG,IAAK,iBAAiB,OAAO2gG,GAAGjiF,GAAG,IAAK,WAAW,OAAG,KAAKA,EAAEigF,MAAa,MAAK8B,IAAG,EAAUD,IAAG,IAAK,YAAY,OAAOxgG,EAAE0e,EAAEtR,QAASozF,IAAIC,GAAG,KAAKzgG,EAAE,QAAQ,OAAO,KAAK,CA4BEsnG,CAAGtnG,EAAEyN,GA3Bzd,SAAYzN,EAAE0e,GAAG,GAAGkiF,GAAG,MAAM,mBAAmB5gG,IAAImgG,IAAIO,GAAG1gG,EAAE0e,IAAI1e,EAAEu5F,KAAKD,GAAGD,GAAGD,GAAG,KAAKwH,IAAG,EAAG5gG,GAAG,KAAK,OAAOA,GAAG,IAAK,QAAgQ,QAAQ,OAAO,KAA3P,IAAK,WAAW,KAAK0e,EAAEk9E,SAASl9E,EAAEo9E,QAAQp9E,EAAEq9E,UAAUr9E,EAAEk9E,SAASl9E,EAAEo9E,OAAO,CAAC,GAAGp9E,EAAE6oF,MAAM,EAAE7oF,EAAE6oF,KAAKxnG,OAAO,OAAO2e,EAAE6oF,KAAK,GAAG7oF,EAAEigF,MAAM,OAAOp/F,OAAOgtC,aAAa7tB,EAAEigF,MAAM,CAAC,OAAO,KAAK,IAAK,iBAAiB,OAAO4B,IAAI,OAAO7hF,EAAE21C,OAAO,KAAK31C,EAAEtR,KAAyB,CA2BqFo6F,CAAGxnG,EAAEyN,MACje,GADoeI,EAAEwzF,GAAGxzF,EAAE,kBACve9N,SAASnB,EAAE,IAAIu+F,GAAG,gBAAgB,cAAc,KAAK1vF,EAAE7O,GAAG6f,EAAEvc,KAAK,CAACo/F,MAAM1iG,EAAE2iG,UAAU1zF,IAAIjP,EAAEwO,KAAKg6F,GAAG,CAAC1F,GAAGjjF,EAAEC,EAAE,GAAE,CAAC,SAASmoF,GAAG7mG,EAAE0e,EAAEjR,GAAG,MAAM,CAACq7C,SAAS9oD,EAAEsmG,SAAS5nF,EAAEq7E,cAActsF,EAAE,CAAC,SAAS4zF,GAAGrhG,EAAE0e,GAAG,IAAI,IAAIjR,EAAEiR,EAAE,UAAU7Q,EAAE,GAAG,OAAO7N,GAAG,CAAC,IAAIpB,EAAEoB,EAAEqO,EAAEzP,EAAEmzF,UAAU,IAAInzF,EAAE2rF,KAAK,OAAOl8E,IAAIzP,EAAEyP,EAAY,OAAVA,EAAEkkF,GAAGvyF,EAAEyN,KAAYI,EAAEohB,QAAQ43E,GAAG7mG,EAAEqO,EAAEzP,IAAc,OAAVyP,EAAEkkF,GAAGvyF,EAAE0e,KAAY7Q,EAAE3L,KAAK2kG,GAAG7mG,EAAEqO,EAAEzP,KAAKoB,EAAEA,EAAE8B,MAAM,CAAC,OAAO+L,CAAC,CAAC,SAASm5F,GAAGhnG,GAAG,GAAG,OAAOA,EAAE,OAAO,KAAK,GAAGA,EAAEA,EAAE8B,aAAa9B,GAAG,IAAIA,EAAEuqF,KAAK,OAAOvqF,GAAI,IAAI,CACnd,SAASinG,GAAGjnG,EAAE0e,EAAEjR,EAAEI,EAAEjP,GAAG,IAAI,IAAIyP,EAAEqQ,EAAEm7E,WAAWp7E,EAAE,GAAG,OAAOhR,GAAGA,IAAII,GAAG,CAAC,IAAI1M,EAAEsM,EAAEO,EAAE7M,EAAE+xF,UAAU9vF,EAAEjC,EAAE4wF,UAAU,GAAG,OAAO/jF,GAAGA,IAAIH,EAAE,MAAM,IAAI1M,EAAEopF,KAAK,OAAOnnF,IAAIjC,EAAEiC,EAAExE,EAAa,OAAVoP,EAAEukF,GAAG9kF,EAAEY,KAAYoQ,EAAEwQ,QAAQ43E,GAAGp5F,EAAEO,EAAE7M,IAAKvC,GAAc,OAAVoP,EAAEukF,GAAG9kF,EAAEY,KAAYoQ,EAAEvc,KAAK2kG,GAAGp5F,EAAEO,EAAE7M,KAAMsM,EAAEA,EAAE3L,MAAM,CAAC,IAAI2c,EAAE1e,QAAQC,EAAEkC,KAAK,CAACo/F,MAAM5iF,EAAE6iF,UAAU9iF,GAAG,CAAC,IAAIgpF,GAAG,SAASC,GAAG,iBAAiB,SAASC,GAAG3nG,GAAG,OAAO,kBAAkBA,EAAEA,EAAE,GAAGA,GAAGid,QAAQwqF,GAAG,MAAMxqF,QAAQyqF,GAAG,GAAG,CAAC,SAASE,GAAG5nG,EAAE0e,EAAEjR,GAAW,GAARiR,EAAEipF,GAAGjpF,GAAMipF,GAAG3nG,KAAK0e,GAAGjR,EAAE,MAAM3I,MAAMzB,EAAE,KAAM,CAAC,SAASwkG,KAAK,CAC9e,IAAIC,GAAG,KAAKC,GAAG,KAAK,SAASC,GAAGhoG,EAAE0e,GAAG,MAAM,aAAa1e,GAAG,aAAaA,GAAG,kBAAkB0e,EAAEg4B,UAAU,kBAAkBh4B,EAAEg4B,UAAU,kBAAkBh4B,EAAEmuE,yBAAyB,OAAOnuE,EAAEmuE,yBAAyB,MAAMnuE,EAAEmuE,wBAAwBob,MAAM,CAC5P,IAAIC,GAAG,oBAAoBtuF,WAAWA,gBAAW,EAAOuuF,GAAG,oBAAoBC,aAAaA,kBAAa,EAAOC,GAAG,oBAAoBnnG,QAAQA,aAAQ,EAAOonG,GAAG,oBAAoBC,eAAeA,eAAe,qBAAqBF,GAAG,SAASroG,GAAG,OAAOqoG,GAAGllG,QAAQ,MAAM3B,KAAKxB,GAAGsqD,MAAMk+C,GAAG,EAAEN,GAAG,SAASM,GAAGxoG,GAAG4Z,YAAW,WAAW,MAAM5Z,CAAE,GAAE,CACpV,SAASyoG,GAAGzoG,EAAE0e,GAAG,IAAIjR,EAAEiR,EAAE7Q,EAAE,EAAE,EAAE,CAAC,IAAIjP,EAAE6O,EAAEq1F,YAA6B,GAAjB9iG,EAAE6zB,YAAYpmB,GAAM7O,GAAG,IAAIA,EAAE8uF,SAAS,GAAY,QAATjgF,EAAE7O,EAAEwO,MAAc,CAAC,GAAG,IAAIS,EAA0B,OAAvB7N,EAAE6zB,YAAYj1B,QAAG85F,GAAGh6E,GAAU7Q,GAAG,KAAK,MAAMJ,GAAG,OAAOA,GAAG,OAAOA,GAAGI,IAAIJ,EAAE7O,CAAC,OAAO6O,GAAGirF,GAAGh6E,EAAE,CAAC,SAASgqF,GAAG1oG,GAAG,KAAK,MAAMA,EAAEA,EAAEA,EAAE8iG,YAAY,CAAC,IAAIpkF,EAAE1e,EAAE0tF,SAAS,GAAG,IAAIhvE,GAAG,IAAIA,EAAE,MAAM,GAAG,IAAIA,EAAE,CAAU,GAAG,OAAZA,EAAE1e,EAAEoN,OAAiB,OAAOsR,GAAG,OAAOA,EAAE,MAAM,GAAG,OAAOA,EAAE,OAAO,IAAI,CAAC,CAAC,OAAO1e,CAAC,CACjY,SAAS2oG,GAAG3oG,GAAGA,EAAEA,EAAE4oG,gBAAgB,IAAI,IAAIlqF,EAAE,EAAE1e,GAAG,CAAC,GAAG,IAAIA,EAAE0tF,SAAS,CAAC,IAAIjgF,EAAEzN,EAAEoN,KAAK,GAAG,MAAMK,GAAG,OAAOA,GAAG,OAAOA,EAAE,CAAC,GAAG,IAAIiR,EAAE,OAAO1e,EAAE0e,GAAG,KAAK,OAAOjR,GAAGiR,GAAG,CAAC1e,EAAEA,EAAE4oG,eAAe,CAAC,OAAO,IAAI,CAAC,IAAIC,GAAGtgG,KAAKY,SAASgD,SAAS,IAAIrJ,MAAM,GAAGgmG,GAAG,gBAAgBD,GAAGE,GAAG,gBAAgBF,GAAG/B,GAAG,oBAAoB+B,GAAGlnE,GAAG,iBAAiBknE,GAAGG,GAAG,oBAAoBH,GAAGI,GAAG,kBAAkBJ,GAClX,SAAS5Q,GAAGj4F,GAAG,IAAI0e,EAAE1e,EAAE8oG,IAAI,GAAGpqF,EAAE,OAAOA,EAAE,IAAI,IAAIjR,EAAEzN,EAAE4zB,WAAWnmB,GAAG,CAAC,GAAGiR,EAAEjR,EAAEq5F,KAAKr5F,EAAEq7F,IAAI,CAAe,GAAdr7F,EAAEiR,EAAEw0E,UAAa,OAAOx0E,EAAE80E,OAAO,OAAO/lF,GAAG,OAAOA,EAAE+lF,MAAM,IAAIxzF,EAAE2oG,GAAG3oG,GAAG,OAAOA,GAAG,CAAC,GAAGyN,EAAEzN,EAAE8oG,IAAI,OAAOr7F,EAAEzN,EAAE2oG,GAAG3oG,EAAE,CAAC,OAAO0e,CAAC,CAAKjR,GAAJzN,EAAEyN,GAAMmmB,UAAU,CAAC,OAAO,IAAI,CAAC,SAASk+D,GAAG9xF,GAAkB,QAAfA,EAAEA,EAAE8oG,KAAK9oG,EAAE8mG,MAAc,IAAI9mG,EAAEuqF,KAAK,IAAIvqF,EAAEuqF,KAAK,KAAKvqF,EAAEuqF,KAAK,IAAIvqF,EAAEuqF,IAAI,KAAKvqF,CAAC,CAAC,SAAS4hG,GAAG5hG,GAAG,GAAG,IAAIA,EAAEuqF,KAAK,IAAIvqF,EAAEuqF,IAAI,OAAOvqF,EAAE+xF,UAAU,MAAMjtF,MAAMzB,EAAE,IAAK,CAAC,SAAS2uF,GAAGhyF,GAAG,OAAOA,EAAE+oG,KAAK,IAAI,CAAC,IAAIG,GAAG,GAAGC,IAAI,EAAE,SAASC,GAAGppG,GAAG,MAAM,CAAC0zF,QAAQ1zF,EAAE,CACve,SAASgf,GAAEhf,GAAG,EAAEmpG,KAAKnpG,EAAE0zF,QAAQwV,GAAGC,IAAID,GAAGC,IAAI,KAAKA,KAAK,CAAC,SAAS3iE,GAAExmC,EAAE0e,GAAGyqF,KAAKD,GAAGC,IAAInpG,EAAE0zF,QAAQ1zF,EAAE0zF,QAAQh1E,CAAC,CAAC,IAAI2qF,GAAG,CAAC,EAAE5gE,GAAE2gE,GAAGC,IAAIC,GAAGF,IAAG,GAAIG,GAAGF,GAAG,SAASG,GAAGxpG,EAAE0e,GAAG,IAAIjR,EAAEzN,EAAE0K,KAAK+kD,aAAa,IAAIhiD,EAAE,OAAO47F,GAAG,IAAIx7F,EAAE7N,EAAE+xF,UAAU,GAAGlkF,GAAGA,EAAE47F,8CAA8C/qF,EAAE,OAAO7Q,EAAE67F,0CAA0C,IAASr7F,EAALzP,EAAE,CAAC,EAAI,IAAIyP,KAAKZ,EAAE7O,EAAEyP,GAAGqQ,EAAErQ,GAAoH,OAAjHR,KAAI7N,EAAEA,EAAE+xF,WAAY0X,4CAA4C/qF,EAAE1e,EAAE0pG,0CAA0C9qG,GAAUA,CAAC,CAC9d,SAAS+qG,GAAG3pG,GAAyB,OAAO,QAA7BA,EAAEA,EAAEuvD,yBAAmC,IAASvvD,CAAC,CAAC,SAAS4pG,KAAK5qF,GAAEsqF,IAAItqF,GAAEypB,GAAE,CAAC,SAASohE,GAAG7pG,EAAE0e,EAAEjR,GAAG,GAAGg7B,GAAEirD,UAAU2V,GAAG,MAAMvkG,MAAMzB,EAAE,MAAMmjC,GAAEiC,GAAE/pB,GAAG8nB,GAAE8iE,GAAG77F,EAAE,CAAC,SAASq8F,GAAG9pG,EAAE0e,EAAEjR,GAAG,IAAII,EAAE7N,EAAE+xF,UAAgC,GAAtBrzE,EAAEA,EAAE6wC,kBAAqB,oBAAoB1hD,EAAEk8F,gBAAgB,OAAOt8F,EAAwB,IAAI,IAAI7O,KAA9BiP,EAAEA,EAAEk8F,kBAAiC,KAAKnrG,KAAK8f,GAAG,MAAM5Z,MAAMzB,EAAE,IAAIunF,EAAG5qF,IAAI,UAAUpB,IAAI,OAAOwgB,EAAE,CAAC,EAAE3R,EAAEI,EAAE,CACxX,SAASm8F,GAAGhqG,GAA2G,OAAxGA,GAAGA,EAAEA,EAAE+xF,YAAY/xF,EAAEiqG,2CAA2CZ,GAAGE,GAAG9gE,GAAEirD,QAAQltD,GAAEiC,GAAEzoC,GAAGwmC,GAAE8iE,GAAGA,GAAG5V,UAAe,CAAE,CAAC,SAASwW,GAAGlqG,EAAE0e,EAAEjR,GAAG,IAAII,EAAE7N,EAAE+xF,UAAU,IAAIlkF,EAAE,MAAM/I,MAAMzB,EAAE,MAAMoK,GAAGzN,EAAE8pG,GAAG9pG,EAAE0e,EAAE6qF,IAAI17F,EAAEo8F,0CAA0CjqG,EAAEgf,GAAEsqF,IAAItqF,GAAEypB,IAAGjC,GAAEiC,GAAEzoC,IAAIgf,GAAEsqF,IAAI9iE,GAAE8iE,GAAG77F,EAAE,CAAC,IAAI08F,GAAG,KAAKC,IAAG,EAAG/4B,IAAG,EAAG,SAASg5B,GAAGrqG,GAAG,OAAOmqG,GAAGA,GAAG,CAACnqG,GAAGmqG,GAAGjoG,KAAKlC,EAAE,CAChW,SAASsqG,KAAK,IAAIj5B,IAAI,OAAO84B,GAAG,CAAC94B,IAAG,EAAG,IAAIrxE,EAAE,EAAE0e,EAAEQ,GAAE,IAAI,IAAIzR,EAAE08F,GAAG,IAAIjrF,GAAE,EAAElf,EAAEyN,EAAE1N,OAAOC,IAAI,CAAC,IAAI6N,EAAEJ,EAAEzN,GAAG,GAAG6N,EAAEA,GAAE,SAAU,OAAOA,EAAE,CAACs8F,GAAG,KAAKC,IAAG,CAAE,CAAC,MAAMxrG,GAAG,MAAM,OAAOurG,KAAKA,GAAGA,GAAGrnG,MAAM9C,EAAE,IAAI6zF,GAAGrxD,GAAG8nE,IAAI1rG,CAAE,CAAC,QAAQsgB,GAAER,EAAE2yD,IAAG,CAAE,CAAC,CAAC,OAAO,IAAI,CAAC,IAAIk5B,GAAG,GAAGC,GAAG,EAAEC,GAAG,KAAKC,GAAG,EAAEC,GAAG,GAAGC,GAAG,EAAEC,GAAG,KAAKC,GAAG,EAAEC,GAAG,GAAG,SAAS51D,GAAGn1C,EAAE0e,GAAG6rF,GAAGC,MAAME,GAAGH,GAAGC,MAAMC,GAAGA,GAAGzqG,EAAE0qG,GAAGhsF,CAAC,CACjV,SAASssF,GAAGhrG,EAAE0e,EAAEjR,GAAGk9F,GAAGC,MAAME,GAAGH,GAAGC,MAAMG,GAAGJ,GAAGC,MAAMC,GAAGA,GAAG7qG,EAAE,IAAI6N,EAAEi9F,GAAG9qG,EAAE+qG,GAAG,IAAInsG,EAAE,GAAGs2F,GAAGrnF,GAAG,EAAEA,KAAK,GAAGjP,GAAG6O,GAAG,EAAE,IAAIY,EAAE,GAAG6mF,GAAGx2E,GAAG9f,EAAE,GAAG,GAAGyP,EAAE,CAAC,IAAIoQ,EAAE7f,EAAEA,EAAE,EAAEyP,GAAGR,GAAG,GAAG4Q,GAAG,GAAGtS,SAAS,IAAI0B,IAAI4Q,EAAE7f,GAAG6f,EAAEqsF,GAAG,GAAG,GAAG5V,GAAGx2E,GAAG9f,EAAE6O,GAAG7O,EAAEiP,EAAEk9F,GAAG18F,EAAErO,CAAC,MAAM8qG,GAAG,GAAGz8F,EAAEZ,GAAG7O,EAAEiP,EAAEk9F,GAAG/qG,CAAC,CAAC,SAASirG,GAAGjrG,GAAG,OAAOA,EAAE8B,SAASqzC,GAAGn1C,EAAE,GAAGgrG,GAAGhrG,EAAE,EAAE,GAAG,CAAC,SAASkrG,GAAGlrG,GAAG,KAAKA,IAAIyqG,IAAIA,GAAGF,KAAKC,IAAID,GAAGC,IAAI,KAAKE,GAAGH,KAAKC,IAAID,GAAGC,IAAI,KAAK,KAAKxqG,IAAI6qG,IAAIA,GAAGF,KAAKC,IAAID,GAAGC,IAAI,KAAKG,GAAGJ,KAAKC,IAAID,GAAGC,IAAI,KAAKE,GAAGH,KAAKC,IAAID,GAAGC,IAAI,IAAI,CAAC,IAAIO,GAAG,KAAKC,GAAG,KAAKtlE,IAAE,EAAGulE,GAAG,KACje,SAASC,GAAGtrG,EAAE0e,GAAG,IAAIjR,EAAE89F,GAAG,EAAE,KAAK,KAAK,GAAG99F,EAAEs5E,YAAY,UAAUt5E,EAAEskF,UAAUrzE,EAAEjR,EAAE3L,OAAO9B,EAAgB,QAAd0e,EAAE1e,EAAEwrG,YAAoBxrG,EAAEwrG,UAAU,CAAC/9F,GAAGzN,EAAE61D,OAAO,IAAIn3C,EAAExc,KAAKuL,EAAE,CACxJ,SAASg+F,GAAGzrG,EAAE0e,GAAG,OAAO1e,EAAEuqF,KAAK,KAAK,EAAE,IAAI98E,EAAEzN,EAAE0K,KAAyE,OAAO,QAA3EgU,EAAE,IAAIA,EAAEgvE,UAAUjgF,EAAEsgB,gBAAgBrP,EAAEqsE,SAASh9D,cAAc,KAAKrP,KAAmB1e,EAAE+xF,UAAUrzE,EAAEysF,GAAGnrG,EAAEorG,GAAG1C,GAAGhqF,EAAEssC,aAAY,GAAO,KAAK,EAAE,OAAoD,QAA7CtsC,EAAE,KAAK1e,EAAE0rG,cAAc,IAAIhtF,EAAEgvE,SAAS,KAAKhvE,KAAY1e,EAAE+xF,UAAUrzE,EAAEysF,GAAGnrG,EAAEorG,GAAG,MAAK,GAAO,KAAK,GAAG,OAA+B,QAAxB1sF,EAAE,IAAIA,EAAEgvE,SAAS,KAAKhvE,KAAYjR,EAAE,OAAOo9F,GAAG,CAACv8F,GAAGw8F,GAAGrzD,SAASszD,IAAI,KAAK/qG,EAAEozF,cAAc,CAACC,WAAW30E,EAAEitF,YAAYl+F,EAAEm+F,UAAU,aAAYn+F,EAAE89F,GAAG,GAAG,KAAK,KAAK,IAAKxZ,UAAUrzE,EAAEjR,EAAE3L,OAAO9B,EAAEA,EAAEwzF,MAAM/lF,EAAE09F,GAAGnrG,EAAEorG,GAClf,MAAK,GAAO,QAAQ,OAAM,EAAG,CAAC,SAASS,GAAG7rG,GAAG,OAAO,KAAY,EAAPA,EAAEw3B,OAAS,KAAa,IAARx3B,EAAE61D,MAAU,CAAC,SAASi2C,GAAG9rG,GAAG,GAAG8lC,GAAE,CAAC,IAAIpnB,EAAE0sF,GAAG,GAAG1sF,EAAE,CAAC,IAAIjR,EAAEiR,EAAE,IAAI+sF,GAAGzrG,EAAE0e,GAAG,CAAC,GAAGmtF,GAAG7rG,GAAG,MAAM8E,MAAMzB,EAAE,MAAMqb,EAAEgqF,GAAGj7F,EAAEq1F,aAAa,IAAIj1F,EAAEs9F,GAAGzsF,GAAG+sF,GAAGzrG,EAAE0e,GAAG4sF,GAAGz9F,EAAEJ,IAAIzN,EAAE61D,OAAe,KAAT71D,EAAE61D,MAAY,EAAE/vB,IAAE,EAAGqlE,GAAGnrG,EAAE,CAAC,KAAK,CAAC,GAAG6rG,GAAG7rG,GAAG,MAAM8E,MAAMzB,EAAE,MAAMrD,EAAE61D,OAAe,KAAT71D,EAAE61D,MAAY,EAAE/vB,IAAE,EAAGqlE,GAAGnrG,CAAC,CAAC,CAAC,CAAC,SAAS+rG,GAAG/rG,GAAG,IAAIA,EAAEA,EAAE8B,OAAO,OAAO9B,GAAG,IAAIA,EAAEuqF,KAAK,IAAIvqF,EAAEuqF,KAAK,KAAKvqF,EAAEuqF,KAAKvqF,EAAEA,EAAE8B,OAAOqpG,GAAGnrG,CAAC,CACha,SAASgsG,GAAGhsG,GAAG,GAAGA,IAAImrG,GAAG,OAAM,EAAG,IAAIrlE,GAAE,OAAOimE,GAAG/rG,GAAG8lC,IAAE,GAAG,EAAG,IAAIpnB,EAAkG,IAA/FA,EAAE,IAAI1e,EAAEuqF,QAAQ7rE,EAAE,IAAI1e,EAAEuqF,OAAgB7rE,EAAE,UAAXA,EAAE1e,EAAE0K,OAAmB,SAASgU,IAAIspF,GAAGhoG,EAAE0K,KAAK1K,EAAEisG,gBAAmBvtF,IAAIA,EAAE0sF,IAAI,CAAC,GAAGS,GAAG7rG,GAAG,MAAMksG,KAAKpnG,MAAMzB,EAAE,MAAM,KAAKqb,GAAG4sF,GAAGtrG,EAAE0e,GAAGA,EAAEgqF,GAAGhqF,EAAEokF,YAAY,CAAO,GAANiJ,GAAG/rG,GAAM,KAAKA,EAAEuqF,IAAI,CAAgD,KAA7BvqF,EAAE,QAApBA,EAAEA,EAAEozF,eAAyBpzF,EAAEqzF,WAAW,MAAW,MAAMvuF,MAAMzB,EAAE,MAAMrD,EAAE,CAAiB,IAAhBA,EAAEA,EAAE8iG,YAAgBpkF,EAAE,EAAE1e,GAAG,CAAC,GAAG,IAAIA,EAAE0tF,SAAS,CAAC,IAAIjgF,EAAEzN,EAAEoN,KAAK,GAAG,OAAOK,EAAE,CAAC,GAAG,IAAIiR,EAAE,CAAC0sF,GAAG1C,GAAG1oG,EAAE8iG,aAAa,MAAM9iG,CAAC,CAAC0e,GAAG,KAAK,MAAMjR,GAAG,OAAOA,GAAG,OAAOA,GAAGiR,GAAG,CAAC1e,EAAEA,EAAE8iG,WAAW,CAACsI,GACjgB,IAAI,CAAC,MAAMA,GAAGD,GAAGzC,GAAG1oG,EAAE+xF,UAAU+Q,aAAa,KAAK,OAAM,CAAE,CAAC,SAASoJ,KAAK,IAAI,IAAIlsG,EAAEorG,GAAGprG,GAAGA,EAAE0oG,GAAG1oG,EAAE8iG,YAAY,CAAC,SAASqJ,KAAKf,GAAGD,GAAG,KAAKrlE,IAAE,CAAE,CAAC,SAASsmE,GAAGpsG,GAAG,OAAOqrG,GAAGA,GAAG,CAACrrG,GAAGqrG,GAAGnpG,KAAKlC,EAAE,CAAC,IAAIqsG,GAAGtjB,EAAG6P,wBAAwB,SAAS0T,GAAGtsG,EAAE0e,GAAG,GAAG1e,GAAGA,EAAE4qD,aAAa,CAA4B,IAAI,IAAIn9C,KAAnCiR,EAAEU,EAAE,CAAC,EAAEV,GAAG1e,EAAEA,EAAE4qD,kBAA4B,IAASlsC,EAAEjR,KAAKiR,EAAEjR,GAAGzN,EAAEyN,IAAI,OAAOiR,CAAC,CAAC,OAAOA,CAAC,CAAC,IAAI6tF,GAAGnD,GAAG,MAAMoD,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAK,SAASC,KAAKD,GAAGD,GAAGD,GAAG,IAAI,CAAC,SAASI,GAAG5sG,GAAG,IAAI0e,EAAE6tF,GAAG7Y,QAAQ10E,GAAEutF,IAAIvsG,EAAE6sG,cAAcnuF,CAAC,CACjd,SAASouF,GAAG9sG,EAAE0e,EAAEjR,GAAG,KAAK,OAAOzN,GAAG,CAAC,IAAI6N,EAAE7N,EAAEkzF,UAA+H,IAApHlzF,EAAE+sG,WAAWruF,KAAKA,GAAG1e,EAAE+sG,YAAYruF,EAAE,OAAO7Q,IAAIA,EAAEk/F,YAAYruF,IAAI,OAAO7Q,IAAIA,EAAEk/F,WAAWruF,KAAKA,IAAI7Q,EAAEk/F,YAAYruF,GAAM1e,IAAIyN,EAAE,MAAMzN,EAAEA,EAAE8B,MAAM,CAAC,CAAC,SAASkrG,GAAGhtG,EAAE0e,GAAG8tF,GAAGxsG,EAAE0sG,GAAGD,GAAG,KAAsB,QAAjBzsG,EAAEA,EAAEitG,eAAuB,OAAOjtG,EAAEktG,eAAe,KAAKltG,EAAEmtG,MAAMzuF,KAAK0uF,IAAG,GAAIptG,EAAEktG,aAAa,KAAK,CACtU,SAASG,GAAGrtG,GAAG,IAAI0e,EAAE1e,EAAE6sG,cAAc,GAAGH,KAAK1sG,EAAE,GAAGA,EAAE,CAACkwC,QAAQlwC,EAAEstG,cAAc5uF,EAAEtd,KAAK,MAAM,OAAOqrG,GAAG,CAAC,GAAG,OAAOD,GAAG,MAAM1nG,MAAMzB,EAAE,MAAMopG,GAAGzsG,EAAEwsG,GAAGS,aAAa,CAACE,MAAM,EAAED,aAAaltG,EAAE,MAAMysG,GAAGA,GAAGrrG,KAAKpB,EAAE,OAAO0e,CAAC,CAAC,IAAI6uF,GAAG,KAAK,SAASC,GAAGxtG,GAAG,OAAOutG,GAAGA,GAAG,CAACvtG,GAAGutG,GAAGrrG,KAAKlC,EAAE,CAAC,SAASytG,GAAGztG,EAAE0e,EAAEjR,EAAEI,GAAG,IAAIjP,EAAE8f,EAAEgvF,YAA+E,OAAnE,OAAO9uG,GAAG6O,EAAErM,KAAKqM,EAAE+/F,GAAG9uF,KAAKjR,EAAErM,KAAKxC,EAAEwC,KAAKxC,EAAEwC,KAAKqM,GAAGiR,EAAEgvF,YAAYjgG,EAASkgG,GAAG3tG,EAAE6N,EAAE,CAChY,SAAS8/F,GAAG3tG,EAAE0e,GAAG1e,EAAEmtG,OAAOzuF,EAAE,IAAIjR,EAAEzN,EAAEkzF,UAAqC,IAA3B,OAAOzlF,IAAIA,EAAE0/F,OAAOzuF,GAAGjR,EAAEzN,EAAMA,EAAEA,EAAE8B,OAAO,OAAO9B,GAAGA,EAAE+sG,YAAYruF,EAAgB,QAAdjR,EAAEzN,EAAEkzF,aAAqBzlF,EAAEs/F,YAAYruF,GAAGjR,EAAEzN,EAAEA,EAAEA,EAAE8B,OAAO,OAAO,IAAI2L,EAAE88E,IAAI98E,EAAEskF,UAAU,IAAI,CAAC,IAAI6b,IAAG,EAAG,SAASC,GAAG7tG,GAAGA,EAAE8tG,YAAY,CAACC,UAAU/tG,EAAEozF,cAAc4a,gBAAgB,KAAKC,eAAe,KAAKC,OAAO,CAACC,QAAQ,KAAKT,YAAY,KAAKP,MAAM,GAAGlwD,QAAQ,KAAK,CACpX,SAASmxD,GAAGpuG,EAAE0e,GAAG1e,EAAEA,EAAE8tG,YAAYpvF,EAAEovF,cAAc9tG,IAAI0e,EAAEovF,YAAY,CAACC,UAAU/tG,EAAE+tG,UAAUC,gBAAgBhuG,EAAEguG,gBAAgBC,eAAejuG,EAAEiuG,eAAeC,OAAOluG,EAAEkuG,OAAOjxD,QAAQj9C,EAAEi9C,SAAS,CAAC,SAASxqB,GAAGzyB,EAAE0e,GAAG,MAAM,CAAC2vF,UAAUruG,EAAEsuG,KAAK5vF,EAAE6rE,IAAI,EAAEz5E,QAAQ,KAAKuiD,SAAS,KAAKjyD,KAAK,KAAK,CACtR,SAASmtG,GAAGvuG,EAAE0e,EAAEjR,GAAG,IAAII,EAAE7N,EAAE8tG,YAAY,GAAG,OAAOjgG,EAAE,OAAO,KAAgB,GAAXA,EAAEA,EAAEqgG,OAAU,KAAO,EAAFllE,IAAK,CAAC,IAAIpqC,EAAEiP,EAAEsgG,QAA+D,OAAvD,OAAOvvG,EAAE8f,EAAEtd,KAAKsd,GAAGA,EAAEtd,KAAKxC,EAAEwC,KAAKxC,EAAEwC,KAAKsd,GAAG7Q,EAAEsgG,QAAQzvF,EAASivF,GAAG3tG,EAAEyN,EAAE,CAAoF,OAAnE,QAAhB7O,EAAEiP,EAAE6/F,cAAsBhvF,EAAEtd,KAAKsd,EAAE8uF,GAAG3/F,KAAK6Q,EAAEtd,KAAKxC,EAAEwC,KAAKxC,EAAEwC,KAAKsd,GAAG7Q,EAAE6/F,YAAYhvF,EAASivF,GAAG3tG,EAAEyN,EAAE,CAAC,SAAS+gG,GAAGxuG,EAAE0e,EAAEjR,GAAmB,GAAG,QAAnBiR,EAAEA,EAAEovF,eAA0BpvF,EAAEA,EAAEwvF,OAAO,KAAO,QAAFzgG,IAAY,CAAC,IAAII,EAAE6Q,EAAEyuF,MAAwB1/F,GAAlBI,GAAG7N,EAAE21F,aAAkBj3E,EAAEyuF,MAAM1/F,EAAE6oF,GAAGt2F,EAAEyN,EAAE,CAAC,CACrZ,SAAS04B,GAAGnmC,EAAE0e,GAAG,IAAIjR,EAAEzN,EAAE8tG,YAAYjgG,EAAE7N,EAAEkzF,UAAU,GAAG,OAAOrlF,GAAoBJ,KAAhBI,EAAEA,EAAEigG,aAAmB,CAAC,IAAIlvG,EAAE,KAAKyP,EAAE,KAAyB,GAAG,QAAvBZ,EAAEA,EAAEugG,iBAA4B,CAAC,EAAE,CAAC,IAAIvvF,EAAE,CAAC4vF,UAAU5gG,EAAE4gG,UAAUC,KAAK7gG,EAAE6gG,KAAK/jB,IAAI98E,EAAE88E,IAAIz5E,QAAQrD,EAAEqD,QAAQuiD,SAAS5lD,EAAE4lD,SAASjyD,KAAK,MAAM,OAAOiN,EAAEzP,EAAEyP,EAAEoQ,EAAEpQ,EAAEA,EAAEjN,KAAKqd,EAAEhR,EAAEA,EAAErM,IAAI,OAAO,OAAOqM,GAAG,OAAOY,EAAEzP,EAAEyP,EAAEqQ,EAAErQ,EAAEA,EAAEjN,KAAKsd,CAAC,MAAM9f,EAAEyP,EAAEqQ,EAAiH,OAA/GjR,EAAE,CAACsgG,UAAUlgG,EAAEkgG,UAAUC,gBAAgBpvG,EAAEqvG,eAAe5/F,EAAE6/F,OAAOrgG,EAAEqgG,OAAOjxD,QAAQpvC,EAAEovC,cAASj9C,EAAE8tG,YAAYrgG,EAAQ,CAAoB,QAAnBzN,EAAEyN,EAAEwgG,gBAAwBxgG,EAAEugG,gBAAgBtvF,EAAE1e,EAAEoB,KACnfsd,EAAEjR,EAAEwgG,eAAevvF,CAAC,CACpB,SAAS+vF,GAAGzuG,EAAE0e,EAAEjR,EAAEI,GAAG,IAAIjP,EAAEoB,EAAE8tG,YAAYF,IAAG,EAAG,IAAIv/F,EAAEzP,EAAEovG,gBAAgBvvF,EAAE7f,EAAEqvG,eAAe9sG,EAAEvC,EAAEsvG,OAAOC,QAAQ,GAAG,OAAOhtG,EAAE,CAACvC,EAAEsvG,OAAOC,QAAQ,KAAK,IAAIngG,EAAE7M,EAAEiC,EAAE4K,EAAE5M,KAAK4M,EAAE5M,KAAK,KAAK,OAAOqd,EAAEpQ,EAAEjL,EAAEqb,EAAErd,KAAKgC,EAAEqb,EAAEzQ,EAAE,IAAIN,EAAE1N,EAAEkzF,UAAU,OAAOxlF,KAAoBvM,GAAhBuM,EAAEA,EAAEogG,aAAgBG,kBAAmBxvF,IAAI,OAAOtd,EAAEuM,EAAEsgG,gBAAgB5qG,EAAEjC,EAAEC,KAAKgC,EAAEsK,EAAEugG,eAAejgG,GAAG,CAAC,GAAG,OAAOK,EAAE,CAAC,IAAIq6B,EAAE9pC,EAAEmvG,UAA6B,IAAnBtvF,EAAE,EAAE/Q,EAAEtK,EAAE4K,EAAE,KAAK7M,EAAEkN,IAAI,CAAC,IAAIpP,EAAEkC,EAAEmtG,KAAK9vF,EAAErd,EAAEktG,UAAU,IAAIxgG,EAAE5O,KAAKA,EAAE,CAAC,OAAOyO,IAAIA,EAAEA,EAAEtM,KAAK,CAACitG,UAAU7vF,EAAE8vF,KAAK,EAAE/jB,IAAIppF,EAAEopF,IAAIz5E,QAAQ3P,EAAE2P,QAAQuiD,SAASlyD,EAAEkyD,SACvfjyD,KAAK,OAAOpB,EAAE,CAAC,IAAIQ,EAAER,EAAErB,EAAEwC,EAAU,OAARlC,EAAEyf,EAAEF,EAAE/Q,EAAS9O,EAAE4rF,KAAK,KAAK,EAAc,GAAG,oBAAf/pF,EAAE7B,EAAEmS,SAAiC,CAAC43B,EAAEloC,EAAEpB,KAAKof,EAAEkqB,EAAEzpC,GAAG,MAAMe,CAAC,CAAC0oC,EAAEloC,EAAE,MAAMR,EAAE,KAAK,EAAEQ,EAAEq1D,OAAe,MAATr1D,EAAEq1D,MAAa,IAAI,KAAK,EAAsD,GAAG,QAA3C52D,EAAE,oBAAduB,EAAE7B,EAAEmS,SAAgCtQ,EAAEpB,KAAKof,EAAEkqB,EAAEzpC,GAAGuB,SAAe,IAASvB,EAAE,MAAMe,EAAE0oC,EAAEtpB,EAAE,CAAC,EAAEspB,EAAEzpC,GAAG,MAAMe,EAAE,KAAK,EAAE4tG,IAAG,EAAG,CAAC,OAAOzsG,EAAEkyD,UAAU,IAAIlyD,EAAEmtG,OAAOtuG,EAAE61D,OAAO,GAAe,QAAZ52D,EAAEL,EAAEq+C,SAAiBr+C,EAAEq+C,QAAQ,CAAC97C,GAAGlC,EAAEiD,KAAKf,GAAG,MAAMqd,EAAE,CAAC6vF,UAAU7vF,EAAE8vF,KAAKrvG,EAAEsrF,IAAIppF,EAAEopF,IAAIz5E,QAAQ3P,EAAE2P,QAAQuiD,SAASlyD,EAAEkyD,SAASjyD,KAAK,MAAM,OAAOsM,GAAGtK,EAAEsK,EAAE8Q,EAAExQ,EAAE06B,GAAGh7B,EAAEA,EAAEtM,KAAKod,EAAEC,GAAGxf,EAC3e,GAAG,QAAZkC,EAAEA,EAAEC,MAAiB,IAAsB,QAAnBD,EAAEvC,EAAEsvG,OAAOC,SAAiB,MAAehtG,GAAJlC,EAAEkC,GAAMC,KAAKnC,EAAEmC,KAAK,KAAKxC,EAAEqvG,eAAehvG,EAAEL,EAAEsvG,OAAOC,QAAQ,IAAI,EAAsG,GAA5F,OAAOzgG,IAAIM,EAAE06B,GAAG9pC,EAAEmvG,UAAU//F,EAAEpP,EAAEovG,gBAAgB5qG,EAAExE,EAAEqvG,eAAevgG,EAA4B,QAA1BgR,EAAE9f,EAAEsvG,OAAOR,aAAwB,CAAC9uG,EAAE8f,EAAE,GAAGD,GAAG7f,EAAE0vG,KAAK1vG,EAAEA,EAAEwC,WAAWxC,IAAI8f,EAAE,MAAM,OAAOrQ,IAAIzP,EAAEsvG,OAAOf,MAAM,GAAG1wC,IAAIh+C,EAAEze,EAAEmtG,MAAM1uF,EAAEze,EAAEozF,cAAc1qD,CAAC,CAAC,CAC9V,SAASgmE,GAAG1uG,EAAE0e,EAAEjR,GAA8B,GAA3BzN,EAAE0e,EAAEu+B,QAAQv+B,EAAEu+B,QAAQ,KAAQ,OAAOj9C,EAAE,IAAI0e,EAAE,EAAEA,EAAE1e,EAAED,OAAO2e,IAAI,CAAC,IAAI7Q,EAAE7N,EAAE0e,GAAG9f,EAAEiP,EAAEwlD,SAAS,GAAG,OAAOz0D,EAAE,CAAqB,GAApBiP,EAAEwlD,SAAS,KAAKxlD,EAAEJ,EAAK,oBAAoB7O,EAAE,MAAMkG,MAAMzB,EAAE,IAAIzE,IAAIA,EAAEQ,KAAKyO,EAAE,CAAC,CAAC,CAAC,IAAI8gG,IAAI,IAAIpnB,EAAGqnB,WAAWC,KAAK,SAASC,GAAG9uG,EAAE0e,EAAEjR,EAAEI,GAA8BJ,EAAE,QAAXA,EAAEA,EAAEI,EAAtB6Q,EAAE1e,EAAEozF,sBAAmC,IAAS3lF,EAAEiR,EAAEU,EAAE,CAAC,EAAEV,EAAEjR,GAAGzN,EAAEozF,cAAc3lF,EAAE,IAAIzN,EAAEmtG,QAAQntG,EAAE8tG,YAAYC,UAAUtgG,EAAE,CAClX,IAAIshG,GAAG,CAACC,UAAU,SAAShvG,GAAG,SAAOA,EAAEA,EAAEivG,kBAAiBhc,GAAGjzF,KAAKA,CAAI,EAAEkvG,gBAAgB,SAASlvG,EAAE0e,EAAEjR,GAAGzN,EAAEA,EAAEivG,gBAAgB,IAAIphG,EAAEq4B,KAAItnC,EAAEwkC,GAAGpjC,GAAGqO,EAAEokB,GAAG5kB,EAAEjP,GAAGyP,EAAEyC,QAAQ4N,OAAE,IAASjR,GAAG,OAAOA,IAAIY,EAAEglD,SAAS5lD,GAAe,QAAZiR,EAAE6vF,GAAGvuG,EAAEqO,EAAEzP,MAAcuwG,GAAGzwF,EAAE1e,EAAEpB,EAAEiP,GAAG2gG,GAAG9vF,EAAE1e,EAAEpB,GAAG,EAAEwwG,oBAAoB,SAASpvG,EAAE0e,EAAEjR,GAAGzN,EAAEA,EAAEivG,gBAAgB,IAAIphG,EAAEq4B,KAAItnC,EAAEwkC,GAAGpjC,GAAGqO,EAAEokB,GAAG5kB,EAAEjP,GAAGyP,EAAEk8E,IAAI,EAAEl8E,EAAEyC,QAAQ4N,OAAE,IAASjR,GAAG,OAAOA,IAAIY,EAAEglD,SAAS5lD,GAAe,QAAZiR,EAAE6vF,GAAGvuG,EAAEqO,EAAEzP,MAAcuwG,GAAGzwF,EAAE1e,EAAEpB,EAAEiP,GAAG2gG,GAAG9vF,EAAE1e,EAAEpB,GAAG,EAAEywG,mBAAmB,SAASrvG,EAAE0e,GAAG1e,EAAEA,EAAEivG,gBAAgB,IAAIxhG,EAAEy4B,KAAIr4B,EACnfu1B,GAAGpjC,GAAGpB,EAAE6zB,GAAGhlB,EAAEI,GAAGjP,EAAE2rF,IAAI,OAAE,IAAS7rE,GAAG,OAAOA,IAAI9f,EAAEy0D,SAAS30C,GAAe,QAAZA,EAAE6vF,GAAGvuG,EAAEpB,EAAEiP,MAAcshG,GAAGzwF,EAAE1e,EAAE6N,EAAEJ,GAAG+gG,GAAG9vF,EAAE1e,EAAE6N,GAAG,GAAG,SAASyhG,GAAGtvG,EAAE0e,EAAEjR,EAAEI,EAAEjP,EAAEyP,EAAEoQ,GAAiB,MAAM,oBAApBze,EAAEA,EAAE+xF,WAAsCwd,sBAAsBvvG,EAAEuvG,sBAAsB1hG,EAAEQ,EAAEoQ,IAAGC,EAAExf,YAAWwf,EAAExf,UAAUswG,wBAAsB7M,GAAGl1F,EAAEI,KAAK80F,GAAG/jG,EAAEyP,GAAK,CAC1S,SAASohG,GAAGzvG,EAAE0e,EAAEjR,GAAG,IAAII,GAAE,EAAGjP,EAAEyqG,GAAOh7F,EAAEqQ,EAAE8wC,YAA2W,MAA/V,kBAAkBnhD,GAAG,OAAOA,EAAEA,EAAEg/F,GAAGh/F,IAAIzP,EAAE+qG,GAAGjrF,GAAG6qF,GAAG9gE,GAAEirD,QAAyBrlF,GAAGR,EAAE,QAAtBA,EAAE6Q,EAAE+wC,oBAA4B,IAAS5hD,GAAG27F,GAAGxpG,EAAEpB,GAAGyqG,IAAI3qF,EAAE,IAAIA,EAAEjR,EAAEY,GAAGrO,EAAEozF,cAAc,OAAO10E,EAAEu/B,YAAO,IAASv/B,EAAEu/B,MAAMv/B,EAAEu/B,MAAM,KAAKv/B,EAAEgxF,QAAQX,GAAG/uG,EAAE+xF,UAAUrzE,EAAEA,EAAEuwF,gBAAgBjvG,EAAE6N,KAAI7N,EAAEA,EAAE+xF,WAAY0X,4CAA4C7qG,EAAEoB,EAAE0pG,0CAA0Cr7F,GAAUqQ,CAAC,CAC5Z,SAASixF,GAAG3vG,EAAE0e,EAAEjR,EAAEI,GAAG7N,EAAE0e,EAAEu/B,MAAM,oBAAoBv/B,EAAEkxF,2BAA2BlxF,EAAEkxF,0BAA0BniG,EAAEI,GAAG,oBAAoB6Q,EAAEmxF,kCAAkCnxF,EAAEmxF,iCAAiCpiG,EAAEI,GAAG6Q,EAAEu/B,QAAQj+C,GAAG+uG,GAAGK,oBAAoB1wF,EAAEA,EAAEu/B,MAAM,KAAK,CACpQ,SAAS6xD,GAAG9vG,EAAE0e,EAAEjR,EAAEI,GAAG,IAAIjP,EAAEoB,EAAE+xF,UAAUnzF,EAAEqmB,MAAMxX,EAAE7O,EAAEq/C,MAAMj+C,EAAEozF,cAAcx0F,EAAEiwG,KAAKF,GAAGd,GAAG7tG,GAAG,IAAIqO,EAAEqQ,EAAE8wC,YAAY,kBAAkBnhD,GAAG,OAAOA,EAAEzP,EAAEsxC,QAAQm9D,GAAGh/F,IAAIA,EAAEs7F,GAAGjrF,GAAG6qF,GAAG9gE,GAAEirD,QAAQ90F,EAAEsxC,QAAQs5D,GAAGxpG,EAAEqO,IAAIzP,EAAEq/C,MAAMj+C,EAAEozF,cAA2C,oBAA7B/kF,EAAEqQ,EAAEuqC,4BAAiD6lD,GAAG9uG,EAAE0e,EAAErQ,EAAEZ,GAAG7O,EAAEq/C,MAAMj+C,EAAEozF,eAAe,oBAAoB10E,EAAEuqC,0BAA0B,oBAAoBrqD,EAAEmxG,yBAAyB,oBAAoBnxG,EAAEoxG,2BAA2B,oBAAoBpxG,EAAEqxG,qBAAqBvxF,EAAE9f,EAAEq/C,MACrf,oBAAoBr/C,EAAEqxG,oBAAoBrxG,EAAEqxG,qBAAqB,oBAAoBrxG,EAAEoxG,2BAA2BpxG,EAAEoxG,4BAA4BtxF,IAAI9f,EAAEq/C,OAAO8wD,GAAGK,oBAAoBxwG,EAAEA,EAAEq/C,MAAM,MAAMwwD,GAAGzuG,EAAEyN,EAAE7O,EAAEiP,GAAGjP,EAAEq/C,MAAMj+C,EAAEozF,eAAe,oBAAoBx0F,EAAEyqD,oBAAoBrpD,EAAE61D,OAAO,QAAQ,CACpS,SAASh1C,GAAG7gB,EAAE0e,EAAEjR,GAAW,GAAG,QAAXzN,EAAEyN,EAAEm8C,MAAiB,oBAAoB5pD,GAAG,kBAAkBA,EAAE,CAAC,GAAGyN,EAAEyiG,OAAO,CAAY,GAAXziG,EAAEA,EAAEyiG,OAAY,CAAC,GAAG,IAAIziG,EAAE88E,IAAI,MAAMzlF,MAAMzB,EAAE,MAAM,IAAIwK,EAAEJ,EAAEskF,SAAS,CAAC,IAAIlkF,EAAE,MAAM/I,MAAMzB,EAAE,IAAIrD,IAAI,IAAIpB,EAAEiP,EAAEQ,EAAE,GAAGrO,EAAE,OAAG,OAAO0e,GAAG,OAAOA,EAAEkrC,KAAK,oBAAoBlrC,EAAEkrC,KAAKlrC,EAAEkrC,IAAIumD,aAAa9hG,EAASqQ,EAAEkrC,KAAIlrC,EAAE,SAAS1e,GAAG,IAAI0e,EAAE9f,EAAEiwG,KAAKnwF,IAAIiwF,KAAKjwF,EAAE9f,EAAEiwG,KAAK,CAAC,GAAG,OAAO7uG,SAAS0e,EAAErQ,GAAGqQ,EAAErQ,GAAGrO,CAAC,EAAE0e,EAAEyxF,WAAW9hG,EAASqQ,EAAC,CAAC,GAAG,kBAAkB1e,EAAE,MAAM8E,MAAMzB,EAAE,MAAM,IAAIoK,EAAEyiG,OAAO,MAAMprG,MAAMzB,EAAE,IAAIrD,GAAI,CAAC,OAAOA,CAAC,CACre,SAASwkF,GAAGxkF,EAAE0e,GAAuC,MAApC1e,EAAEnB,OAAOK,UAAUiN,SAAS/M,KAAKsf,GAAS5Z,MAAMzB,EAAE,GAAG,oBAAoBrD,EAAE,qBAAqBnB,OAAOqyD,KAAKxyC,GAAGhO,KAAK,MAAM,IAAI1Q,GAAI,CAAC,SAASowG,GAAGpwG,GAAiB,OAAO0e,EAAf1e,EAAE2qF,OAAe3qF,EAAE0qF,SAAS,CACrM,SAAS2lB,GAAGrwG,GAAG,SAAS0e,EAAEA,EAAEjR,GAAG,GAAGzN,EAAE,CAAC,IAAI6N,EAAE6Q,EAAE8sF,UAAU,OAAO39F,GAAG6Q,EAAE8sF,UAAU,CAAC/9F,GAAGiR,EAAEm3C,OAAO,IAAIhoD,EAAE3L,KAAKuL,EAAE,CAAC,CAAC,SAASA,EAAEA,EAAEI,GAAG,IAAI7N,EAAE,OAAO,KAAK,KAAK,OAAO6N,GAAG6Q,EAAEjR,EAAEI,GAAGA,EAAEA,EAAE4lF,QAAQ,OAAO,IAAI,CAAC,SAAS5lF,EAAE7N,EAAE0e,GAAG,IAAI1e,EAAE,IAAIm3F,IAAI,OAAOz4E,GAAG,OAAOA,EAAEmvB,IAAI7tC,EAAEmE,IAAIua,EAAEmvB,IAAInvB,GAAG1e,EAAEmE,IAAIua,EAAE0J,MAAM1J,GAAGA,EAAEA,EAAE+0E,QAAQ,OAAOzzF,CAAC,CAAC,SAASpB,EAAEoB,EAAE0e,GAAsC,OAAnC1e,EAAEswG,GAAGtwG,EAAE0e,IAAK0J,MAAM,EAAEpoB,EAAEyzF,QAAQ,KAAYzzF,CAAC,CAAC,SAASqO,EAAEqQ,EAAEjR,EAAEI,GAAa,OAAV6Q,EAAE0J,MAAMva,EAAM7N,EAA6C,QAAjB6N,EAAE6Q,EAAEw0E,YAA6BrlF,EAAEA,EAAEua,OAAQ3a,GAAGiR,EAAEm3C,OAAO,EAAEpoD,GAAGI,GAAE6Q,EAAEm3C,OAAO,EAASpoD,IAArGiR,EAAEm3C,OAAO,QAAQpoD,EAAqF,CAAC,SAASgR,EAAEC,GACzd,OAD4d1e,GAC7f,OAAO0e,EAAEw0E,YAAYx0E,EAAEm3C,OAAO,GAAUn3C,CAAC,CAAC,SAASvd,EAAEnB,EAAE0e,EAAEjR,EAAEI,GAAG,OAAG,OAAO6Q,GAAG,IAAIA,EAAE6rE,MAAW7rE,EAAE6xF,GAAG9iG,EAAEzN,EAAEw3B,KAAK3pB,IAAK/L,OAAO9B,EAAE0e,KAAEA,EAAE9f,EAAE8f,EAAEjR,IAAK3L,OAAO9B,EAAS0e,EAAC,CAAC,SAAS1Q,EAAEhO,EAAE0e,EAAEjR,EAAEI,GAAG,IAAIQ,EAAEZ,EAAE/C,KAAK,OAAG2D,IAAI86E,EAAUz7E,EAAE1N,EAAE0e,EAAEjR,EAAEwX,MAAMyxB,SAAS7oC,EAAEJ,EAAEogC,KAAQ,OAAOnvB,IAAIA,EAAEqoE,cAAc14E,GAAG,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEkjD,WAAWq4B,GAAIwmB,GAAG/hG,KAAKqQ,EAAEhU,QAAamD,EAAEjP,EAAE8f,EAAEjR,EAAEwX,QAAS2kC,IAAI/oC,GAAG7gB,EAAE0e,EAAEjR,GAAGI,EAAE/L,OAAO9B,EAAE6N,KAAEA,EAAE2iG,GAAG/iG,EAAE/C,KAAK+C,EAAEogC,IAAIpgC,EAAEwX,MAAM,KAAKjlB,EAAEw3B,KAAK3pB,IAAK+7C,IAAI/oC,GAAG7gB,EAAE0e,EAAEjR,GAAGI,EAAE/L,OAAO9B,EAAS6N,EAAC,CAAC,SAASzK,EAAEpD,EAAE0e,EAAEjR,EAAEI,GAAG,OAAG,OAAO6Q,GAAG,IAAIA,EAAE6rE,KACjf7rE,EAAEqzE,UAAUoG,gBAAgB1qF,EAAE0qF,eAAez5E,EAAEqzE,UAAU0e,iBAAiBhjG,EAAEgjG,iBAAsB/xF,EAAEgyF,GAAGjjG,EAAEzN,EAAEw3B,KAAK3pB,IAAK/L,OAAO9B,EAAE0e,KAAEA,EAAE9f,EAAE8f,EAAEjR,EAAEipC,UAAU,KAAM50C,OAAO9B,EAAS0e,EAAC,CAAC,SAAShR,EAAE1N,EAAE0e,EAAEjR,EAAEI,EAAEQ,GAAG,OAAG,OAAOqQ,GAAG,IAAIA,EAAE6rE,MAAW7rE,EAAEiyF,GAAGljG,EAAEzN,EAAEw3B,KAAK3pB,EAAEQ,IAAKvM,OAAO9B,EAAE0e,KAAEA,EAAE9f,EAAE8f,EAAEjR,IAAK3L,OAAO9B,EAAS0e,EAAC,CAAC,SAASgqB,EAAE1oC,EAAE0e,EAAEjR,GAAG,GAAG,kBAAkBiR,GAAG,KAAKA,GAAG,kBAAkBA,EAAE,OAAOA,EAAE6xF,GAAG,GAAG7xF,EAAE1e,EAAEw3B,KAAK/pB,IAAK3L,OAAO9B,EAAE0e,EAAE,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAE6yC,UAAU,KAAK03B,EAAG,OAAOx7E,EAAE+iG,GAAG9xF,EAAEhU,KAAKgU,EAAEmvB,IAAInvB,EAAEuG,MAAM,KAAKjlB,EAAEw3B,KAAK/pB,IACjfm8C,IAAI/oC,GAAG7gB,EAAE,KAAK0e,GAAGjR,EAAE3L,OAAO9B,EAAEyN,EAAE,KAAKy7E,EAAG,OAAOxqE,EAAEgyF,GAAGhyF,EAAE1e,EAAEw3B,KAAK/pB,IAAK3L,OAAO9B,EAAE0e,EAAE,KAAKkrE,EAAiB,OAAOlhD,EAAE1oC,GAAE6N,EAAnB6Q,EAAEisE,OAAmBjsE,EAAEgsE,UAAUj9E,GAAG,GAAG8+E,GAAG7tE,IAAIqrE,EAAGrrE,GAAG,OAAOA,EAAEiyF,GAAGjyF,EAAE1e,EAAEw3B,KAAK/pB,EAAE,OAAQ3L,OAAO9B,EAAE0e,EAAE8lE,GAAGxkF,EAAE0e,EAAE,CAAC,OAAO,IAAI,CAAC,SAASzf,EAAEe,EAAE0e,EAAEjR,EAAEI,GAAG,IAAIjP,EAAE,OAAO8f,EAAEA,EAAEmvB,IAAI,KAAK,GAAG,kBAAkBpgC,GAAG,KAAKA,GAAG,kBAAkBA,EAAE,OAAO,OAAO7O,EAAE,KAAKuC,EAAEnB,EAAE0e,EAAE,GAAGjR,EAAEI,GAAG,GAAG,kBAAkBJ,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAE8jD,UAAU,KAAK03B,EAAG,OAAOx7E,EAAEogC,MAAMjvC,EAAEoP,EAAEhO,EAAE0e,EAAEjR,EAAEI,GAAG,KAAK,KAAKq7E,EAAG,OAAOz7E,EAAEogC,MAAMjvC,EAAEwE,EAAEpD,EAAE0e,EAAEjR,EAAEI,GAAG,KAAK,KAAK+7E,EAAG,OAAiB3qF,EAAEe,EACpf0e,GADwe9f,EAAE6O,EAAEk9E,OACxel9E,EAAEi9E,UAAU78E,GAAG,GAAG0+E,GAAG9+E,IAAIs8E,EAAGt8E,GAAG,OAAO,OAAO7O,EAAE,KAAK8O,EAAE1N,EAAE0e,EAAEjR,EAAEI,EAAE,MAAM22E,GAAGxkF,EAAEyN,EAAE,CAAC,OAAO,IAAI,CAAC,SAAS+Q,EAAExe,EAAE0e,EAAEjR,EAAEI,EAAEjP,GAAG,GAAG,kBAAkBiP,GAAG,KAAKA,GAAG,kBAAkBA,EAAE,OAAwB1M,EAAEud,EAAnB1e,EAAEA,EAAEqC,IAAIoL,IAAI,KAAW,GAAGI,EAAEjP,GAAG,GAAG,kBAAkBiP,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAE0jD,UAAU,KAAK03B,EAAG,OAA2Cj7E,EAAE0Q,EAAtC1e,EAAEA,EAAEqC,IAAI,OAAOwL,EAAEggC,IAAIpgC,EAAEI,EAAEggC,MAAM,KAAWhgC,EAAEjP,GAAG,KAAKsqF,EAAG,OAA2C9lF,EAAEsb,EAAtC1e,EAAEA,EAAEqC,IAAI,OAAOwL,EAAEggC,IAAIpgC,EAAEI,EAAEggC,MAAM,KAAWhgC,EAAEjP,GAAG,KAAKgrF,EAAiB,OAAOprE,EAAExe,EAAE0e,EAAEjR,GAAEY,EAAvBR,EAAE88E,OAAuB98E,EAAE68E,UAAU9rF,GAAG,GAAG2tF,GAAG1+E,IAAIk8E,EAAGl8E,GAAG,OAAwBH,EAAEgR,EAAnB1e,EAAEA,EAAEqC,IAAIoL,IAAI,KAAWI,EAAEjP,EAAE,MAAM4lF,GAAG9lE,EAAE7Q,EAAE,CAAC,OAAO,IAAI,CAC9f,SAASrN,EAAE5B,EAAE6f,EAAEtd,EAAE6M,GAAG,IAAI,IAAI5K,EAAE,KAAKsK,EAAE,KAAKyE,EAAEsM,EAAEY,EAAEZ,EAAE,EAAEK,EAAE,KAAK,OAAO3M,GAAGkN,EAAEle,EAAEpB,OAAOsf,IAAI,CAAClN,EAAEiW,MAAM/I,GAAGP,EAAE3M,EAAEA,EAAE,MAAM2M,EAAE3M,EAAEshF,QAAQ,IAAIjzF,EAAEvB,EAAEL,EAAEuT,EAAEhR,EAAEke,GAAGrR,GAAG,GAAG,OAAOxN,EAAE,CAAC,OAAO2R,IAAIA,EAAE2M,GAAG,KAAK,CAAC9e,GAAGmS,GAAG,OAAO3R,EAAE0yF,WAAWx0E,EAAE9f,EAAEuT,GAAGsM,EAAEpQ,EAAE7N,EAAEie,EAAEY,GAAG,OAAO3R,EAAEtK,EAAE5C,EAAEkN,EAAE+lF,QAAQjzF,EAAEkN,EAAElN,EAAE2R,EAAE2M,CAAC,CAAC,GAAGO,IAAIle,EAAEpB,OAAO,OAAO0N,EAAE7O,EAAEuT,GAAG2zB,IAAGqP,GAAGv2C,EAAEygB,GAAGjc,EAAE,GAAG,OAAO+O,EAAE,CAAC,KAAKkN,EAAEle,EAAEpB,OAAOsf,IAAkB,QAAdlN,EAAEu2B,EAAE9pC,EAAEuC,EAAEke,GAAGrR,MAAcyQ,EAAEpQ,EAAE8D,EAAEsM,EAAEY,GAAG,OAAO3R,EAAEtK,EAAE+O,EAAEzE,EAAE+lF,QAAQthF,EAAEzE,EAAEyE,GAAc,OAAX2zB,IAAGqP,GAAGv2C,EAAEygB,GAAUjc,CAAC,CAAC,IAAI+O,EAAEtE,EAAEjP,EAAEuT,GAAGkN,EAAEle,EAAEpB,OAAOsf,IAAsB,QAAlBP,EAAEN,EAAErM,EAAEvT,EAAEygB,EAAEle,EAAEke,GAAGrR,MAAchO,GAAG,OAAO8e,EAAEo0E,WAAW/gF,EAAEqlF,OAAO,OACvf14E,EAAE+uB,IAAIxuB,EAAEP,EAAE+uB,KAAKpvB,EAAEpQ,EAAEyQ,EAAEL,EAAEY,GAAG,OAAO3R,EAAEtK,EAAE0b,EAAEpR,EAAE+lF,QAAQ30E,EAAEpR,EAAEoR,GAAuD,OAApD9e,GAAGmS,EAAEwgB,SAAQ,SAAS3yB,GAAG,OAAO0e,EAAE9f,EAAEoB,EAAE,IAAG8lC,IAAGqP,GAAGv2C,EAAEygB,GAAUjc,CAAC,CAAC,SAASzE,EAAEC,EAAE6f,EAAEtd,EAAE6M,GAAG,IAAI5K,EAAE2mF,EAAG5oF,GAAG,GAAG,oBAAoBiC,EAAE,MAAM0B,MAAMzB,EAAE,MAAkB,GAAG,OAAflC,EAAEiC,EAAEhE,KAAK+B,IAAc,MAAM2D,MAAMzB,EAAE,MAAM,IAAI,IAAI8O,EAAE/O,EAAE,KAAKsK,EAAE+Q,EAAEY,EAAEZ,EAAE,EAAEK,EAAE,KAAKte,EAAEW,EAAEC,OAAO,OAAOsM,IAAIlN,EAAEc,KAAK+d,IAAI7e,EAAEW,EAAEC,OAAO,CAACsM,EAAE0a,MAAM/I,GAAGP,EAAEpR,EAAEA,EAAE,MAAMoR,EAAEpR,EAAE+lF,QAAQ,IAAI90F,EAAEM,EAAEL,EAAE8O,EAAElN,EAAEe,MAAMyM,GAAG,GAAG,OAAOrP,EAAE,CAAC,OAAO+O,IAAIA,EAAEoR,GAAG,KAAK,CAAC9e,GAAG0N,GAAG,OAAO/O,EAAEu0F,WAAWx0E,EAAE9f,EAAE8O,GAAG+Q,EAAEpQ,EAAE1P,EAAE8f,EAAEY,GAAG,OAAOlN,EAAE/O,EAAEzE,EAAEwT,EAAEshF,QAAQ90F,EAAEwT,EAAExT,EAAE+O,EAAEoR,CAAC,CAAC,GAAGte,EAAEc,KAAK,OAAOmM,EAAE7O,EACzf8O,GAAGo4B,IAAGqP,GAAGv2C,EAAEygB,GAAGjc,EAAE,GAAG,OAAOsK,EAAE,CAAC,MAAMlN,EAAEc,KAAK+d,IAAI7e,EAAEW,EAAEC,OAAwB,QAAjBZ,EAAEkoC,EAAE9pC,EAAE4B,EAAEe,MAAMyM,MAAcyQ,EAAEpQ,EAAE7N,EAAEie,EAAEY,GAAG,OAAOlN,EAAE/O,EAAE5C,EAAE2R,EAAEshF,QAAQjzF,EAAE2R,EAAE3R,GAAc,OAAXslC,IAAGqP,GAAGv2C,EAAEygB,GAAUjc,CAAC,CAAC,IAAIsK,EAAEG,EAAEjP,EAAE8O,IAAIlN,EAAEc,KAAK+d,IAAI7e,EAAEW,EAAEC,OAA4B,QAArBZ,EAAEge,EAAE9Q,EAAE9O,EAAEygB,EAAE7e,EAAEe,MAAMyM,MAAchO,GAAG,OAAOQ,EAAE0yF,WAAWxlF,EAAE8pF,OAAO,OAAOh3F,EAAEqtC,IAAIxuB,EAAE7e,EAAEqtC,KAAKpvB,EAAEpQ,EAAE7N,EAAEie,EAAEY,GAAG,OAAOlN,EAAE/O,EAAE5C,EAAE2R,EAAEshF,QAAQjzF,EAAE2R,EAAE3R,GAAuD,OAApDR,GAAG0N,EAAEilB,SAAQ,SAAS3yB,GAAG,OAAO0e,EAAE9f,EAAEoB,EAAE,IAAG8lC,IAAGqP,GAAGv2C,EAAEygB,GAAUjc,CAAC,CAG3T,OAH4T,SAAS6lC,EAAEjpC,EAAE6N,EAAEQ,EAAElN,GAAkF,GAA/E,kBAAkBkN,GAAG,OAAOA,GAAGA,EAAE3D,OAAOy+E,GAAI,OAAO96E,EAAEw/B,MAAMx/B,EAAEA,EAAE4W,MAAMyxB,UAAa,kBAAkBroC,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEkjD,UAAU,KAAK03B,EAAGjpF,EAAE,CAAC,IAAI,IAAIgO,EAC7hBK,EAAEw/B,IAAIzqC,EAAEyK,EAAE,OAAOzK,GAAG,CAAC,GAAGA,EAAEyqC,MAAM7/B,EAAE,CAAU,IAATA,EAAEK,EAAE3D,QAAYy+E,GAAI,GAAG,IAAI/lF,EAAEmnF,IAAI,CAAC98E,EAAEzN,EAAEoD,EAAEqwF,UAAS5lF,EAAEjP,EAAEwE,EAAEiL,EAAE4W,MAAMyxB,WAAY50C,OAAO9B,EAAEA,EAAE6N,EAAE,MAAM7N,CAAC,OAAO,GAAGoD,EAAE2jF,cAAc/4E,GAAG,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEujD,WAAWq4B,GAAIwmB,GAAGpiG,KAAK5K,EAAEsH,KAAK,CAAC+C,EAAEzN,EAAEoD,EAAEqwF,UAAS5lF,EAAEjP,EAAEwE,EAAEiL,EAAE4W,QAAS2kC,IAAI/oC,GAAG7gB,EAAEoD,EAAEiL,GAAGR,EAAE/L,OAAO9B,EAAEA,EAAE6N,EAAE,MAAM7N,CAAC,CAACyN,EAAEzN,EAAEoD,GAAG,KAAK,CAAMsb,EAAE1e,EAAEoD,GAAGA,EAAEA,EAAEqwF,OAAO,CAACplF,EAAE3D,OAAOy+E,IAAIt7E,EAAE8iG,GAAGtiG,EAAE4W,MAAMyxB,SAAS12C,EAAEw3B,KAAKr2B,EAAEkN,EAAEw/B,MAAO/rC,OAAO9B,EAAEA,EAAE6N,KAAI1M,EAAEqvG,GAAGniG,EAAE3D,KAAK2D,EAAEw/B,IAAIx/B,EAAE4W,MAAM,KAAKjlB,EAAEw3B,KAAKr2B,IAAKyoD,IAAI/oC,GAAG7gB,EAAE6N,EAAEQ,GAAGlN,EAAEW,OAAO9B,EAAEA,EAAEmB,EAAE,CAAC,OAAOsd,EAAEze,GAAG,KAAKkpF,EAAGlpF,EAAE,CAAC,IAAIoD,EAAEiL,EAAEw/B,IAAI,OACzfhgC,GAAG,CAAC,GAAGA,EAAEggC,MAAMzqC,EAAC,CAAC,GAAG,IAAIyK,EAAE08E,KAAK18E,EAAEkkF,UAAUoG,gBAAgB9pF,EAAE8pF,eAAetqF,EAAEkkF,UAAU0e,iBAAiBpiG,EAAEoiG,eAAe,CAAChjG,EAAEzN,EAAE6N,EAAE4lF,UAAS5lF,EAAEjP,EAAEiP,EAAEQ,EAAEqoC,UAAU,KAAM50C,OAAO9B,EAAEA,EAAE6N,EAAE,MAAM7N,CAAC,CAAMyN,EAAEzN,EAAE6N,GAAG,KAAM,CAAK6Q,EAAE1e,EAAE6N,GAAGA,EAAEA,EAAE4lF,OAAO,EAAC5lF,EAAE6iG,GAAGriG,EAAErO,EAAEw3B,KAAKr2B,IAAKW,OAAO9B,EAAEA,EAAE6N,CAAC,CAAC,OAAO4Q,EAAEze,GAAG,KAAK4pF,EAAG,OAAiB3gD,EAAEjpC,EAAE6N,GAAdzK,EAAEiL,EAAEs8E,OAAct8E,EAAEq8E,UAAUvpF,GAAG,GAAGorF,GAAGl+E,GAAG,OAAO7N,EAAER,EAAE6N,EAAEQ,EAAElN,GAAG,GAAG4oF,EAAG17E,GAAG,OAAO1P,EAAEqB,EAAE6N,EAAEQ,EAAElN,GAAGqjF,GAAGxkF,EAAEqO,EAAE,CAAC,MAAM,kBAAkBA,GAAG,KAAKA,GAAG,kBAAkBA,GAAGA,EAAE,GAAGA,EAAE,OAAOR,GAAG,IAAIA,EAAE08E,KAAK98E,EAAEzN,EAAE6N,EAAE4lF,UAAS5lF,EAAEjP,EAAEiP,EAAEQ,IAAKvM,OAAO9B,EAAEA,EAAE6N,IACnfJ,EAAEzN,EAAE6N,IAAGA,EAAE0iG,GAAGliG,EAAErO,EAAEw3B,KAAKr2B,IAAKW,OAAO9B,EAAEA,EAAE6N,GAAG4Q,EAAEze,IAAIyN,EAAEzN,EAAE6N,EAAE,CAAS,CAAC,IAAI+iG,GAAGP,IAAG,GAAIQ,GAAGR,IAAG,GAAIS,GAAG,CAAC,EAAEC,GAAG3H,GAAG0H,IAAIE,GAAG5H,GAAG0H,IAAIG,GAAG7H,GAAG0H,IAAI,SAASI,GAAGlxG,GAAG,GAAGA,IAAI8wG,GAAG,MAAMhsG,MAAMzB,EAAE,MAAM,OAAOrD,CAAC,CAAC,SAASmxG,GAAGnxG,EAAE0e,GAAyC,OAAtC8nB,GAAEyqE,GAAGvyF,GAAG8nB,GAAEwqE,GAAGhxG,GAAGwmC,GAAEuqE,GAAGD,IAAI9wG,EAAE0e,EAAEgvE,UAAmB,KAAK,EAAE,KAAK,GAAGhvE,GAAGA,EAAEA,EAAEglF,iBAAiBhlF,EAAE2uE,aAAaH,GAAG,KAAK,IAAI,MAAM,QAAkExuE,EAAEwuE,GAArCxuE,GAAvB1e,EAAE,IAAIA,EAAE0e,EAAEkV,WAAWlV,GAAM2uE,cAAc,KAAKrtF,EAAEA,EAAEoxG,SAAkBpyF,GAAE+xF,IAAIvqE,GAAEuqE,GAAGryF,EAAE,CAAC,SAAS2yF,KAAKryF,GAAE+xF,IAAI/xF,GAAEgyF,IAAIhyF,GAAEiyF,GAAG,CACnb,SAASK,GAAGtxG,GAAGkxG,GAAGD,GAAGvd,SAAS,IAAIh1E,EAAEwyF,GAAGH,GAAGrd,SAAajmF,EAAEy/E,GAAGxuE,EAAE1e,EAAE0K,MAAMgU,IAAIjR,IAAI+4B,GAAEwqE,GAAGhxG,GAAGwmC,GAAEuqE,GAAGtjG,GAAG,CAAC,SAAS8jG,GAAGvxG,GAAGgxG,GAAGtd,UAAU1zF,IAAIgf,GAAE+xF,IAAI/xF,GAAEgyF,IAAI,CAAC,IAAIzxF,GAAE6pF,GAAG,GACrJ,SAASoI,GAAGxxG,GAAG,IAAI,IAAI0e,EAAE1e,EAAE,OAAO0e,GAAG,CAAC,GAAG,KAAKA,EAAE6rE,IAAI,CAAC,IAAI98E,EAAEiR,EAAE00E,cAAc,GAAG,OAAO3lF,IAAmB,QAAfA,EAAEA,EAAE4lF,aAAqB,OAAO5lF,EAAEL,MAAM,OAAOK,EAAEL,MAAM,OAAOsR,CAAC,MAAM,GAAG,KAAKA,EAAE6rE,UAAK,IAAS7rE,EAAEutF,cAAcwF,aAAa,GAAG,KAAa,IAAR/yF,EAAEm3C,OAAW,OAAOn3C,OAAO,GAAG,OAAOA,EAAE80E,MAAM,CAAC90E,EAAE80E,MAAM1xF,OAAO4c,EAAEA,EAAEA,EAAE80E,MAAM,QAAQ,CAAC,GAAG90E,IAAI1e,EAAE,MAAM,KAAK,OAAO0e,EAAE+0E,SAAS,CAAC,GAAG,OAAO/0E,EAAE5c,QAAQ4c,EAAE5c,SAAS9B,EAAE,OAAO,KAAK0e,EAAEA,EAAE5c,MAAM,CAAC4c,EAAE+0E,QAAQ3xF,OAAO4c,EAAE5c,OAAO4c,EAAEA,EAAE+0E,OAAO,CAAC,OAAO,IAAI,CAAC,IAAIie,GAAG,GACrc,SAASC,KAAK,IAAI,IAAI3xG,EAAE,EAAEA,EAAE0xG,GAAG3xG,OAAOC,IAAI0xG,GAAG1xG,GAAG4xG,8BAA8B,KAAKF,GAAG3xG,OAAO,CAAC,CAAC,IAAI8xG,GAAG9oB,EAAG+oB,uBAAuBC,GAAGhpB,EAAG6P,wBAAwBoZ,GAAG,EAAExpE,GAAE,KAAKD,GAAE,KAAKxpB,GAAE,KAAKkzF,IAAG,EAAGC,IAAG,EAAGC,GAAG,EAAEC,GAAG,EAAE,SAASjpE,KAAI,MAAMrkC,MAAMzB,EAAE,KAAM,CAAC,SAASgvG,GAAGryG,EAAE0e,GAAG,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAI,IAAIjR,EAAE,EAAEA,EAAEiR,EAAE3e,QAAQ0N,EAAEzN,EAAED,OAAO0N,IAAI,IAAIi1F,GAAG1iG,EAAEyN,GAAGiR,EAAEjR,IAAI,OAAM,EAAG,OAAM,CAAE,CAChW,SAAS6kG,GAAGtyG,EAAE0e,EAAEjR,EAAEI,EAAEjP,EAAEyP,GAAyH,GAAtH2jG,GAAG3jG,EAAEm6B,GAAE9pB,EAAEA,EAAE00E,cAAc,KAAK10E,EAAEovF,YAAY,KAAKpvF,EAAEyuF,MAAM,EAAE0E,GAAGne,QAAQ,OAAO1zF,GAAG,OAAOA,EAAEozF,cAAcmf,GAAGC,GAAGxyG,EAAEyN,EAAEI,EAAEjP,GAAMszG,GAAG,CAAC7jG,EAAE,EAAE,EAAE,CAAY,GAAX6jG,IAAG,EAAGC,GAAG,EAAK,IAAI9jG,EAAE,MAAMvJ,MAAMzB,EAAE,MAAMgL,GAAG,EAAE0Q,GAAEwpB,GAAE,KAAK7pB,EAAEovF,YAAY,KAAK+D,GAAGne,QAAQ+e,GAAGzyG,EAAEyN,EAAEI,EAAEjP,EAAE,OAAOszG,GAAG,CAA+D,GAA9DL,GAAGne,QAAQgf,GAAGh0F,EAAE,OAAO6pB,IAAG,OAAOA,GAAEnnC,KAAK4wG,GAAG,EAAEjzF,GAAEwpB,GAAEC,GAAE,KAAKypE,IAAG,EAAMvzF,EAAE,MAAM5Z,MAAMzB,EAAE,MAAM,OAAOrD,CAAC,CAAC,SAAS2yG,KAAK,IAAI3yG,EAAE,IAAImyG,GAAQ,OAALA,GAAG,EAASnyG,CAAC,CAC/Y,SAAS4yG,KAAK,IAAI5yG,EAAE,CAACozF,cAAc,KAAK2a,UAAU,KAAK8E,UAAU,KAAKC,MAAM,KAAK1xG,KAAK,MAA8C,OAAxC,OAAO2d,GAAEypB,GAAE4qD,cAAcr0E,GAAE/e,EAAE+e,GAAEA,GAAE3d,KAAKpB,EAAS+e,EAAC,CAAC,SAASg0F,KAAK,GAAG,OAAOxqE,GAAE,CAAC,IAAIvoC,EAAEwoC,GAAE0qD,UAAUlzF,EAAE,OAAOA,EAAEA,EAAEozF,cAAc,IAAI,MAAMpzF,EAAEuoC,GAAEnnC,KAAK,IAAIsd,EAAE,OAAOK,GAAEypB,GAAE4qD,cAAcr0E,GAAE3d,KAAK,GAAG,OAAOsd,EAAEK,GAAEL,EAAE6pB,GAAEvoC,MAAM,CAAC,GAAG,OAAOA,EAAE,MAAM8E,MAAMzB,EAAE,MAAUrD,EAAE,CAACozF,eAAP7qD,GAAEvoC,GAAqBozF,cAAc2a,UAAUxlE,GAAEwlE,UAAU8E,UAAUtqE,GAAEsqE,UAAUC,MAAMvqE,GAAEuqE,MAAM1xG,KAAK,MAAM,OAAO2d,GAAEypB,GAAE4qD,cAAcr0E,GAAE/e,EAAE+e,GAAEA,GAAE3d,KAAKpB,CAAC,CAAC,OAAO+e,EAAC,CACje,SAASi0F,GAAGhzG,EAAE0e,GAAG,MAAM,oBAAoBA,EAAEA,EAAE1e,GAAG0e,CAAC,CACnD,SAASu0F,GAAGjzG,GAAG,IAAI0e,EAAEq0F,KAAKtlG,EAAEiR,EAAEo0F,MAAM,GAAG,OAAOrlG,EAAE,MAAM3I,MAAMzB,EAAE,MAAMoK,EAAEylG,oBAAoBlzG,EAAE,IAAI6N,EAAE06B,GAAE3pC,EAAEiP,EAAEglG,UAAUxkG,EAAEZ,EAAE0gG,QAAQ,GAAG,OAAO9/F,EAAE,CAAC,GAAG,OAAOzP,EAAE,CAAC,IAAI6f,EAAE7f,EAAEwC,KAAKxC,EAAEwC,KAAKiN,EAAEjN,KAAKiN,EAAEjN,KAAKqd,CAAC,CAAC5Q,EAAEglG,UAAUj0G,EAAEyP,EAAEZ,EAAE0gG,QAAQ,IAAI,CAAC,GAAG,OAAOvvG,EAAE,CAACyP,EAAEzP,EAAEwC,KAAKyM,EAAEA,EAAEkgG,UAAU,IAAI5sG,EAAEsd,EAAE,KAAKzQ,EAAE,KAAK5K,EAAEiL,EAAE,EAAE,CAAC,IAAIX,EAAEtK,EAAEkrG,KAAK,IAAI0D,GAAGtkG,KAAKA,EAAE,OAAOM,IAAIA,EAAEA,EAAE5M,KAAK,CAACktG,KAAK,EAAE6E,OAAO/vG,EAAE+vG,OAAOC,cAAchwG,EAAEgwG,cAAcC,WAAWjwG,EAAEiwG,WAAWjyG,KAAK,OAAOyM,EAAEzK,EAAEgwG,cAAchwG,EAAEiwG,WAAWrzG,EAAE6N,EAAEzK,EAAE+vG,YAAY,CAAC,IAAIzqE,EAAE,CAAC4lE,KAAK5gG,EAAEylG,OAAO/vG,EAAE+vG,OAAOC,cAAchwG,EAAEgwG,cACngBC,WAAWjwG,EAAEiwG,WAAWjyG,KAAK,MAAM,OAAO4M,GAAG7M,EAAE6M,EAAE06B,EAAEjqB,EAAE5Q,GAAGG,EAAEA,EAAE5M,KAAKsnC,EAAEF,GAAE2kE,OAAOz/F,EAAE+uD,IAAI/uD,CAAC,CAACtK,EAAEA,EAAEhC,IAAI,OAAO,OAAOgC,GAAGA,IAAIiL,GAAG,OAAOL,EAAEyQ,EAAE5Q,EAAEG,EAAE5M,KAAKD,EAAEuhG,GAAG70F,EAAE6Q,EAAE00E,iBAAiBga,IAAG,GAAI1uF,EAAE00E,cAAcvlF,EAAE6Q,EAAEqvF,UAAUtvF,EAAEC,EAAEm0F,UAAU7kG,EAAEP,EAAE6lG,kBAAkBzlG,CAAC,CAAiB,GAAG,QAAnB7N,EAAEyN,EAAEigG,aAAwB,CAAC9uG,EAAEoB,EAAE,GAAGqO,EAAEzP,EAAE0vG,KAAK9lE,GAAE2kE,OAAO9+F,EAAEouD,IAAIpuD,EAAEzP,EAAEA,EAAEwC,WAAWxC,IAAIoB,EAAE,MAAM,OAAOpB,IAAI6O,EAAE0/F,MAAM,GAAG,MAAM,CAACzuF,EAAE00E,cAAc3lF,EAAE8lG,SAAS,CAC9X,SAASC,GAAGxzG,GAAG,IAAI0e,EAAEq0F,KAAKtlG,EAAEiR,EAAEo0F,MAAM,GAAG,OAAOrlG,EAAE,MAAM3I,MAAMzB,EAAE,MAAMoK,EAAEylG,oBAAoBlzG,EAAE,IAAI6N,EAAEJ,EAAE8lG,SAAS30G,EAAE6O,EAAE0gG,QAAQ9/F,EAAEqQ,EAAE00E,cAAc,GAAG,OAAOx0F,EAAE,CAAC6O,EAAE0gG,QAAQ,KAAK,IAAI1vF,EAAE7f,EAAEA,EAAEwC,KAAK,GAAGiN,EAAErO,EAAEqO,EAAEoQ,EAAE00F,QAAQ10F,EAAEA,EAAErd,WAAWqd,IAAI7f,GAAG8jG,GAAGr0F,EAAEqQ,EAAE00E,iBAAiBga,IAAG,GAAI1uF,EAAE00E,cAAc/kF,EAAE,OAAOqQ,EAAEm0F,YAAYn0F,EAAEqvF,UAAU1/F,GAAGZ,EAAE6lG,kBAAkBjlG,CAAC,CAAC,MAAM,CAACA,EAAER,EAAE,CAAC,SAAS4lG,KAAK,CACpW,SAASlwC,GAAGvjE,EAAE0e,GAAG,IAAIjR,EAAE+6B,GAAE36B,EAAEklG,KAAKn0G,EAAE8f,IAAIrQ,GAAGq0F,GAAG70F,EAAEulF,cAAcx0F,GAAsE,GAAnEyP,IAAIR,EAAEulF,cAAcx0F,EAAEwuG,IAAG,GAAIv/F,EAAEA,EAAEilG,MAAMY,GAAGC,GAAGnhG,KAAK,KAAK/E,EAAEI,EAAE7N,GAAG,CAACA,IAAO6N,EAAE+lG,cAAcl1F,GAAGrQ,GAAG,OAAO0Q,IAAuB,EAApBA,GAAEq0E,cAAc7I,IAAM,CAAuD,GAAtD98E,EAAEooD,OAAO,KAAKg+C,GAAG,EAAEC,GAAGthG,KAAK,KAAK/E,EAAEI,EAAEjP,EAAE8f,QAAG,EAAO,MAAS,OAAOqnB,GAAE,MAAMjhC,MAAMzB,EAAE,MAAM,KAAQ,GAAH2uG,KAAQ+B,GAAGtmG,EAAEiR,EAAE9f,EAAE,CAAC,OAAOA,CAAC,CAAC,SAASm1G,GAAG/zG,EAAE0e,EAAEjR,GAAGzN,EAAE61D,OAAO,MAAM71D,EAAE,CAAC4zG,YAAYl1F,EAAEnd,MAAMkM,GAAmB,QAAhBiR,EAAE8pB,GAAEslE,cAAsBpvF,EAAE,CAACs1F,WAAW,KAAKC,OAAO,MAAMzrE,GAAEslE,YAAYpvF,EAAEA,EAAEu1F,OAAO,CAACj0G,IAAgB,QAAXyN,EAAEiR,EAAEu1F,QAAgBv1F,EAAEu1F,OAAO,CAACj0G,GAAGyN,EAAEvL,KAAKlC,EAAG,CAClf,SAAS8zG,GAAG9zG,EAAE0e,EAAEjR,EAAEI,GAAG6Q,EAAEnd,MAAMkM,EAAEiR,EAAEk1F,YAAY/lG,EAAEqmG,GAAGx1F,IAAI4pB,GAAGtoC,EAAE,CAAC,SAAS2zG,GAAG3zG,EAAE0e,EAAEjR,GAAG,OAAOA,GAAE,WAAWymG,GAAGx1F,IAAI4pB,GAAGtoC,EAAE,GAAE,CAAC,SAASk0G,GAAGl0G,GAAG,IAAI0e,EAAE1e,EAAE4zG,YAAY5zG,EAAEA,EAAEuB,MAAM,IAAI,IAAIkM,EAAEiR,IAAI,OAAOgkF,GAAG1iG,EAAEyN,EAAE,CAAC,MAAMI,GAAG,OAAM,CAAE,CAAC,CAAC,SAASy6B,GAAGtoC,GAAG,IAAI0e,EAAEivF,GAAG3tG,EAAE,GAAG,OAAO0e,GAAGywF,GAAGzwF,EAAE1e,EAAE,GAAG,EAAE,CAClQ,SAASm0G,GAAGn0G,GAAG,IAAI0e,EAAEk0F,KAA8M,MAAzM,oBAAoB5yG,IAAIA,EAAEA,KAAK0e,EAAE00E,cAAc10E,EAAEqvF,UAAU/tG,EAAEA,EAAE,CAACmuG,QAAQ,KAAKT,YAAY,KAAKP,MAAM,EAAEoG,SAAS,KAAKL,oBAAoBF,GAAGM,kBAAkBtzG,GAAG0e,EAAEo0F,MAAM9yG,EAAEA,EAAEA,EAAEuzG,SAASa,GAAG5hG,KAAK,KAAKg2B,GAAExoC,GAAS,CAAC0e,EAAE00E,cAAcpzF,EAAE,CAC5P,SAAS6zG,GAAG7zG,EAAE0e,EAAEjR,EAAEI,GAA8O,OAA3O7N,EAAE,CAACuqF,IAAIvqF,EAAEN,OAAOgf,EAAEpL,QAAQ7F,EAAE4mG,KAAKxmG,EAAEzM,KAAK,MAAsB,QAAhBsd,EAAE8pB,GAAEslE,cAAsBpvF,EAAE,CAACs1F,WAAW,KAAKC,OAAO,MAAMzrE,GAAEslE,YAAYpvF,EAAEA,EAAEs1F,WAAWh0G,EAAEoB,KAAKpB,GAAmB,QAAfyN,EAAEiR,EAAEs1F,YAAoBt1F,EAAEs1F,WAAWh0G,EAAEoB,KAAKpB,GAAG6N,EAAEJ,EAAErM,KAAKqM,EAAErM,KAAKpB,EAAEA,EAAEoB,KAAKyM,EAAE6Q,EAAEs1F,WAAWh0G,GAAWA,CAAC,CAAC,SAASs0G,KAAK,OAAOvB,KAAK3f,aAAa,CAAC,SAAS7yE,GAAGvgB,EAAE0e,EAAEjR,EAAEI,GAAG,IAAIjP,EAAEg0G,KAAKpqE,GAAEqtB,OAAO71D,EAAEpB,EAAEw0F,cAAcygB,GAAG,EAAEn1F,EAAEjR,OAAE,OAAO,IAASI,EAAE,KAAKA,EAAE,CAC9Y,SAAS0mG,GAAGv0G,EAAE0e,EAAEjR,EAAEI,GAAG,IAAIjP,EAAEm0G,KAAKllG,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAIQ,OAAE,EAAO,GAAG,OAAOk6B,GAAE,CAAC,IAAI9pB,EAAE8pB,GAAE6qD,cAA0B,GAAZ/kF,EAAEoQ,EAAEnL,QAAW,OAAOzF,GAAGwkG,GAAGxkG,EAAE4Q,EAAE41F,MAAmC,YAA5Bz1G,EAAEw0F,cAAcygB,GAAGn1F,EAAEjR,EAAEY,EAAER,GAAU,CAAC26B,GAAEqtB,OAAO71D,EAAEpB,EAAEw0F,cAAcygB,GAAG,EAAEn1F,EAAEjR,EAAEY,EAAER,EAAE,CAAC,SAAS2mG,GAAGx0G,EAAE0e,GAAG,OAAO6B,GAAG,QAAQ,EAAEvgB,EAAE0e,EAAE,CAAC,SAASg1F,GAAG1zG,EAAE0e,GAAG,OAAO61F,GAAG,KAAK,EAAEv0G,EAAE0e,EAAE,CAAC,SAASw0B,GAAGlzC,EAAE0e,GAAG,OAAO61F,GAAG,EAAE,EAAEv0G,EAAE0e,EAAE,CAAC,SAAS+1F,GAAGz0G,EAAE0e,GAAG,OAAO61F,GAAG,EAAE,EAAEv0G,EAAE0e,EAAE,CAChX,SAASg2F,GAAG10G,EAAE0e,GAAG,MAAG,oBAAoBA,GAAS1e,EAAEA,IAAI0e,EAAE1e,GAAG,WAAW0e,EAAE,KAAK,GAAK,OAAOA,QAAG,IAASA,GAAS1e,EAAEA,IAAI0e,EAAEg1E,QAAQ1zF,EAAE,WAAW0e,EAAEg1E,QAAQ,IAAI,QAA1E,CAA2E,CAAC,SAASihB,GAAG30G,EAAE0e,EAAEjR,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAE9K,OAAO,CAAC3C,IAAI,KAAYu0G,GAAG,EAAE,EAAEG,GAAGliG,KAAK,KAAKkM,EAAE1e,GAAGyN,EAAE,CAAC,SAASmnG,KAAK,CAAC,SAASC,GAAG70G,EAAE0e,GAAG,IAAIjR,EAAEslG,KAAKr0F,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAI7Q,EAAEJ,EAAE2lF,cAAc,OAAG,OAAOvlF,GAAG,OAAO6Q,GAAG2zF,GAAG3zF,EAAE7Q,EAAE,IAAWA,EAAE,IAAGJ,EAAE2lF,cAAc,CAACpzF,EAAE0e,GAAU1e,EAAC,CAC7Z,SAAS80G,GAAG90G,EAAE0e,GAAG,IAAIjR,EAAEslG,KAAKr0F,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAI7Q,EAAEJ,EAAE2lF,cAAc,OAAG,OAAOvlF,GAAG,OAAO6Q,GAAG2zF,GAAG3zF,EAAE7Q,EAAE,IAAWA,EAAE,IAAG7N,EAAEA,IAAIyN,EAAE2lF,cAAc,CAACpzF,EAAE0e,GAAU1e,EAAC,CAAC,SAAS+0G,GAAG/0G,EAAE0e,EAAEjR,GAAG,OAAG,KAAQ,GAAHukG,KAAchyG,EAAE+tG,YAAY/tG,EAAE+tG,WAAU,EAAGX,IAAG,GAAIptG,EAAEozF,cAAc3lF,IAAEi1F,GAAGj1F,EAAEiR,KAAKjR,EAAEyoF,KAAK1tD,GAAE2kE,OAAO1/F,EAAEgvD,IAAIhvD,EAAEzN,EAAE+tG,WAAU,GAAWrvF,EAAC,CAAC,SAASs2F,GAAGh1G,EAAE0e,GAAG,IAAIjR,EAAEyR,GAAEA,GAAE,IAAIzR,GAAG,EAAEA,EAAEA,EAAE,EAAEzN,GAAE,GAAI,IAAI6N,EAAEkkG,GAAGjZ,WAAWiZ,GAAGjZ,WAAW,CAAC,EAAE,IAAI94F,GAAE,GAAI0e,GAAG,CAAC,QAAQQ,GAAEzR,EAAEskG,GAAGjZ,WAAWjrF,CAAC,CAAC,CAAC,SAASonG,KAAK,OAAOlC,KAAK3f,aAAa,CAC1d,SAAS8hB,GAAGl1G,EAAE0e,EAAEjR,GAAG,IAAII,EAAEu1B,GAAGpjC,GAAkE,GAA/DyN,EAAE,CAAC6gG,KAAKzgG,EAAEslG,OAAO1lG,EAAE2lG,eAAc,EAAGC,WAAW,KAAKjyG,KAAK,MAAS+zG,GAAGn1G,GAAGo1G,GAAG12F,EAAEjR,QAAQ,GAAiB,QAAdA,EAAEggG,GAAGztG,EAAE0e,EAAEjR,EAAEI,IAAY,CAAWshG,GAAG1hG,EAAEzN,EAAE6N,EAAXq4B,MAAgBmvE,GAAG5nG,EAAEiR,EAAE7Q,EAAE,CAAC,CAC/K,SAASumG,GAAGp0G,EAAE0e,EAAEjR,GAAG,IAAII,EAAEu1B,GAAGpjC,GAAGpB,EAAE,CAAC0vG,KAAKzgG,EAAEslG,OAAO1lG,EAAE2lG,eAAc,EAAGC,WAAW,KAAKjyG,KAAK,MAAM,GAAG+zG,GAAGn1G,GAAGo1G,GAAG12F,EAAE9f,OAAO,CAAC,IAAIyP,EAAErO,EAAEkzF,UAAU,GAAG,IAAIlzF,EAAEmtG,QAAQ,OAAO9+F,GAAG,IAAIA,EAAE8+F,QAAiC,QAAxB9+F,EAAEqQ,EAAEw0F,qBAA8B,IAAI,IAAIz0F,EAAEC,EAAE40F,kBAAkBnyG,EAAEkN,EAAEoQ,EAAEhR,GAAqC,GAAlC7O,EAAEw0G,eAAc,EAAGx0G,EAAEy0G,WAAWlyG,EAAKuhG,GAAGvhG,EAAEsd,GAAG,CAAC,IAAIzQ,EAAE0Q,EAAEgvF,YAA+E,OAAnE,OAAO1/F,GAAGpP,EAAEwC,KAAKxC,EAAE4uG,GAAG9uF,KAAK9f,EAAEwC,KAAK4M,EAAE5M,KAAK4M,EAAE5M,KAAKxC,QAAG8f,EAAEgvF,YAAY9uG,EAAQ,CAAC,CAAC,MAAMwE,GAAG,CAAwB,QAAdqK,EAAEggG,GAAGztG,EAAE0e,EAAE9f,EAAEiP,MAAoBshG,GAAG1hG,EAAEzN,EAAE6N,EAAbjP,EAAEsnC,MAAgBmvE,GAAG5nG,EAAEiR,EAAE7Q,GAAG,CAAC,CAC/c,SAASsnG,GAAGn1G,GAAG,IAAI0e,EAAE1e,EAAEkzF,UAAU,OAAOlzF,IAAIwoC,IAAG,OAAO9pB,GAAGA,IAAI8pB,EAAC,CAAC,SAAS4sE,GAAGp1G,EAAE0e,GAAGwzF,GAAGD,IAAG,EAAG,IAAIxkG,EAAEzN,EAAEmuG,QAAQ,OAAO1gG,EAAEiR,EAAEtd,KAAKsd,GAAGA,EAAEtd,KAAKqM,EAAErM,KAAKqM,EAAErM,KAAKsd,GAAG1e,EAAEmuG,QAAQzvF,CAAC,CAAC,SAAS22F,GAAGr1G,EAAE0e,EAAEjR,GAAG,GAAG,KAAO,QAAFA,GAAW,CAAC,IAAII,EAAE6Q,EAAEyuF,MAAwB1/F,GAAlBI,GAAG7N,EAAE21F,aAAkBj3E,EAAEyuF,MAAM1/F,EAAE6oF,GAAGt2F,EAAEyN,EAAE,CAAC,CAC9P,IAAIilG,GAAG,CAAC4C,YAAYjI,GAAGkI,YAAYpsE,GAAEqsE,WAAWrsE,GAAEmjB,UAAUnjB,GAAEssE,oBAAoBtsE,GAAEusE,mBAAmBvsE,GAAEwsE,gBAAgBxsE,GAAEysE,QAAQzsE,GAAE0sE,WAAW1sE,GAAE2sE,OAAO3sE,GAAEkjB,SAASljB,GAAE4sE,cAAc5sE,GAAE6sE,iBAAiB7sE,GAAE8sE,cAAc9sE,GAAE+sE,iBAAiB/sE,GAAEgtE,qBAAqBhtE,GAAEitE,MAAMjtE,GAAEktE,0BAAyB,GAAI9D,GAAG,CAAC+C,YAAYjI,GAAGkI,YAAY,SAASv1G,EAAE0e,GAA4C,OAAzCk0F,KAAKxf,cAAc,CAACpzF,OAAE,IAAS0e,EAAE,KAAKA,GAAU1e,CAAC,EAAEw1G,WAAWnI,GAAG/gD,UAAUkoD,GAAGiB,oBAAoB,SAASz1G,EAAE0e,EAAEjR,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAE9K,OAAO,CAAC3C,IAAI,KAAYugB,GAAG,QAC3f,EAAEm0F,GAAGliG,KAAK,KAAKkM,EAAE1e,GAAGyN,EAAE,EAAEkoG,gBAAgB,SAAS31G,EAAE0e,GAAG,OAAO6B,GAAG,QAAQ,EAAEvgB,EAAE0e,EAAE,EAAEg3F,mBAAmB,SAAS11G,EAAE0e,GAAG,OAAO6B,GAAG,EAAE,EAAEvgB,EAAE0e,EAAE,EAAEk3F,QAAQ,SAAS51G,EAAE0e,GAAG,IAAIjR,EAAEmlG,KAAqD,OAAhDl0F,OAAE,IAASA,EAAE,KAAKA,EAAE1e,EAAEA,IAAIyN,EAAE2lF,cAAc,CAACpzF,EAAE0e,GAAU1e,CAAC,EAAE61G,WAAW,SAAS71G,EAAE0e,EAAEjR,GAAG,IAAII,EAAE+kG,KAAkM,OAA7Ll0F,OAAE,IAASjR,EAAEA,EAAEiR,GAAGA,EAAE7Q,EAAEulF,cAAcvlF,EAAEkgG,UAAUrvF,EAAE1e,EAAE,CAACmuG,QAAQ,KAAKT,YAAY,KAAKP,MAAM,EAAEoG,SAAS,KAAKL,oBAAoBlzG,EAAEszG,kBAAkB50F,GAAG7Q,EAAEilG,MAAM9yG,EAAEA,EAAEA,EAAEuzG,SAAS2B,GAAG1iG,KAAK,KAAKg2B,GAAExoC,GAAS,CAAC6N,EAAEulF,cAAcpzF,EAAE,EAAE81G,OAAO,SAAS91G,GAC3d,OAAdA,EAAE,CAAC0zF,QAAQ1zF,GAAhB4yG,KAA4Bxf,cAAcpzF,CAAC,EAAEqsD,SAAS8nD,GAAG4B,cAAcnB,GAAGoB,iBAAiB,SAASh2G,GAAG,OAAO4yG,KAAKxf,cAAcpzF,CAAC,EAAEi2G,cAAc,WAAW,IAAIj2G,EAAEm0G,IAAG,GAAIz1F,EAAE1e,EAAE,GAA6C,OAA1CA,EAAEg1G,GAAGxiG,KAAK,KAAKxS,EAAE,IAAI4yG,KAAKxf,cAAcpzF,EAAQ,CAAC0e,EAAE1e,EAAE,EAAEk2G,iBAAiB,WAAW,EAAEC,qBAAqB,SAASn2G,EAAE0e,EAAEjR,GAAG,IAAII,EAAE26B,GAAE5pC,EAAEg0G,KAAK,GAAG9sE,GAAE,CAAC,QAAG,IAASr4B,EAAE,MAAM3I,MAAMzB,EAAE,MAAMoK,EAAEA,GAAG,KAAK,CAAO,GAANA,EAAEiR,IAAO,OAAOqnB,GAAE,MAAMjhC,MAAMzB,EAAE,MAAM,KAAQ,GAAH2uG,KAAQ+B,GAAGlmG,EAAE6Q,EAAEjR,EAAE,CAAC7O,EAAEw0F,cAAc3lF,EAAE,IAAIY,EAAE,CAAC9M,MAAMkM,EAAEmmG,YAAYl1F,GACvZ,OAD0Z9f,EAAEk0G,MAAMzkG,EAAEmmG,GAAGb,GAAGnhG,KAAK,KAAK3E,EACpfQ,EAAErO,GAAG,CAACA,IAAI6N,EAAEgoD,OAAO,KAAKg+C,GAAG,EAAEC,GAAGthG,KAAK,KAAK3E,EAAEQ,EAAEZ,EAAEiR,QAAG,EAAO,MAAajR,CAAC,EAAE2oG,MAAM,WAAW,IAAIp2G,EAAE4yG,KAAKl0F,EAAEqnB,GAAEuwE,iBAAiB,GAAGxwE,GAAE,CAAC,IAAIr4B,EAAEs9F,GAAkDrsF,EAAE,IAAIA,EAAE,KAA9CjR,GAAHq9F,KAAU,GAAG,GAAG5V,GAAhB4V,IAAsB,IAAI3+F,SAAS,IAAIsB,GAAuB,GAAPA,EAAE0kG,QAAWzzF,GAAG,IAAIjR,EAAEtB,SAAS,KAAKuS,GAAG,GAAG,MAAaA,EAAE,IAAIA,EAAE,KAAfjR,EAAE2kG,MAAmBjmG,SAAS,IAAI,IAAI,OAAOnM,EAAEozF,cAAc10E,CAAC,EAAE23F,0BAAyB,GAAI7D,GAAG,CAAC8C,YAAYjI,GAAGkI,YAAYV,GAAGW,WAAWnI,GAAG/gD,UAAUonD,GAAG+B,oBAAoBd,GAAGe,mBAAmBxiE,GAAGyiE,gBAAgBlB,GAAGmB,QAAQd,GAAGe,WAAW5C,GAAG6C,OAAOxB,GAAGjoD,SAAS,WAAW,OAAO4mD,GAAGD,GAAG,EACrhB+C,cAAcnB,GAAGoB,iBAAiB,SAASh2G,GAAc,OAAO+0G,GAAZhC,KAAiBxqE,GAAE6qD,cAAcpzF,EAAE,EAAEi2G,cAAc,WAAgD,MAAM,CAArChD,GAAGD,IAAI,GAAKD,KAAK3f,cAAyB,EAAE8iB,iBAAiBzC,GAAG0C,qBAAqB5yC,GAAG6yC,MAAMnB,GAAGoB,0BAAyB,GAAI5D,GAAG,CAAC6C,YAAYjI,GAAGkI,YAAYV,GAAGW,WAAWnI,GAAG/gD,UAAUonD,GAAG+B,oBAAoBd,GAAGe,mBAAmBxiE,GAAGyiE,gBAAgBlB,GAAGmB,QAAQd,GAAGe,WAAWrC,GAAGsC,OAAOxB,GAAGjoD,SAAS,WAAW,OAAOmnD,GAAGR,GAAG,EAAE+C,cAAcnB,GAAGoB,iBAAiB,SAASh2G,GAAG,IAAI0e,EAAEq0F,KAAK,OAAO,OACzfxqE,GAAE7pB,EAAE00E,cAAcpzF,EAAE+0G,GAAGr2F,EAAE6pB,GAAE6qD,cAAcpzF,EAAE,EAAEi2G,cAAc,WAAgD,MAAM,CAArCzC,GAAGR,IAAI,GAAKD,KAAK3f,cAAyB,EAAE8iB,iBAAiBzC,GAAG0C,qBAAqB5yC,GAAG6yC,MAAMnB,GAAGoB,0BAAyB,GAAI,SAASE,GAAGv2G,EAAE0e,GAAG,IAAI,IAAIjR,EAAE,GAAGI,EAAE6Q,EAAE,GAAGjR,GAAG68E,EAAGz8E,GAAGA,EAAEA,EAAE/L,aAAa+L,GAAG,IAAIjP,EAAE6O,CAAC,CAAC,MAAMY,GAAGzP,EAAE,6BAA6ByP,EAAEmoG,QAAQ,KAAKnoG,EAAE+pD,KAAK,CAAC,MAAM,CAAC72D,MAAMvB,EAAEw6C,OAAO97B,EAAE05C,MAAMx5D,EAAE63G,OAAO,KAAK,CAAC,SAASC,GAAG12G,EAAE0e,EAAEjR,GAAG,MAAM,CAAClM,MAAMvB,EAAEw6C,OAAO,KAAK4d,MAAM,MAAM3qD,EAAEA,EAAE,KAAKgpG,OAAO,MAAM/3F,EAAEA,EAAE,KAAK,CACzd,SAASi4F,GAAG32G,EAAE0e,GAAG,IAAI8U,QAAQ/wB,MAAMic,EAAEnd,MAAM,CAAC,MAAMkM,GAAGmM,YAAW,WAAW,MAAMnM,CAAE,GAAE,CAAC,CAAC,IAAImpG,GAAG,oBAAoBC,QAAQA,QAAQ1f,IAAI,SAAS2f,GAAG92G,EAAE0e,EAAEjR,IAAGA,EAAEglB,IAAI,EAAEhlB,IAAK88E,IAAI,EAAE98E,EAAEqD,QAAQ,CAACqmB,QAAQ,MAAM,IAAItpB,EAAE6Q,EAAEnd,MAAsD,OAAhDkM,EAAE4lD,SAAS,WAAW0jD,KAAKA,IAAG,EAAGC,GAAGnpG,GAAG8oG,GAAG32G,EAAE0e,EAAE,EAASjR,CAAC,CAC3Q,SAASwpG,GAAGj3G,EAAE0e,EAAEjR,IAAGA,EAAEglB,IAAI,EAAEhlB,IAAK88E,IAAI,EAAE,IAAI18E,EAAE7N,EAAE0K,KAAKklD,yBAAyB,GAAG,oBAAoB/hD,EAAE,CAAC,IAAIjP,EAAE8f,EAAEnd,MAAMkM,EAAEqD,QAAQ,WAAW,OAAOjD,EAAEjP,EAAE,EAAE6O,EAAE4lD,SAAS,WAAWsjD,GAAG32G,EAAE0e,EAAE,CAAC,CAAC,IAAIrQ,EAAErO,EAAE+xF,UAA8O,OAApO,OAAO1jF,GAAG,oBAAoBA,EAAE6oG,oBAAoBzpG,EAAE4lD,SAAS,WAAWsjD,GAAG32G,EAAE0e,GAAG,oBAAoB7Q,IAAI,OAAOspG,GAAGA,GAAG,IAAI1vB,IAAI,CAACjoF,OAAO23G,GAAG3xE,IAAIhmC,OAAO,IAAIiO,EAAEiR,EAAE05C,MAAM54D,KAAK03G,kBAAkBx4F,EAAEnd,MAAM,CAAC61G,eAAe,OAAO3pG,EAAEA,EAAE,IAAI,GAAUA,CAAC,CACnb,SAAS4pG,GAAGr3G,EAAE0e,EAAEjR,GAAG,IAAII,EAAE7N,EAAEs3G,UAAU,GAAG,OAAOzpG,EAAE,CAACA,EAAE7N,EAAEs3G,UAAU,IAAIV,GAAG,IAAIh4G,EAAE,IAAI6oF,IAAI55E,EAAE1J,IAAIua,EAAE9f,EAAE,WAAiB,KAAXA,EAAEiP,EAAExL,IAAIqc,MAAgB9f,EAAE,IAAI6oF,IAAI55E,EAAE1J,IAAIua,EAAE9f,IAAIA,EAAEqF,IAAIwJ,KAAK7O,EAAE4mC,IAAI/3B,GAAGzN,EAAEu3G,GAAG/kG,KAAK,KAAKxS,EAAE0e,EAAEjR,GAAGiR,EAAEld,KAAKxB,EAAEA,GAAG,CAAC,SAASw3G,GAAGx3G,GAAG,EAAE,CAAC,IAAI0e,EAA4E,IAAvEA,EAAE,KAAK1e,EAAEuqF,OAAsB7rE,EAAE,QAApBA,EAAE1e,EAAEozF,gBAAyB,OAAO10E,EAAE20E,YAAuB30E,EAAE,OAAO1e,EAAEA,EAAEA,EAAE8B,MAAM,OAAO,OAAO9B,GAAG,OAAO,IAAI,CAChW,SAASy3G,GAAGz3G,EAAE0e,EAAEjR,EAAEI,EAAEjP,GAAG,OAAG,KAAY,EAAPoB,EAAEw3B,OAAex3B,IAAI0e,EAAE1e,EAAE61D,OAAO,OAAO71D,EAAE61D,OAAO,IAAIpoD,EAAEooD,OAAO,OAAOpoD,EAAEooD,QAAQ,MAAM,IAAIpoD,EAAE88E,MAAM,OAAO98E,EAAEylF,UAAUzlF,EAAE88E,IAAI,KAAI7rE,EAAE+T,IAAI,EAAE,IAAK83D,IAAI,EAAEgkB,GAAG9gG,EAAEiR,EAAE,KAAKjR,EAAE0/F,OAAO,GAAGntG,IAAEA,EAAE61D,OAAO,MAAM71D,EAAEmtG,MAAMvuG,EAASoB,EAAC,CAAC,IAAI03G,GAAG3uB,EAAG4uB,kBAAkBvK,IAAG,EAAG,SAASwK,GAAG53G,EAAE0e,EAAEjR,EAAEI,GAAG6Q,EAAE80E,MAAM,OAAOxzF,EAAE6wG,GAAGnyF,EAAE,KAAKjR,EAAEI,GAAG+iG,GAAGlyF,EAAE1e,EAAEwzF,MAAM/lF,EAAEI,EAAE,CACnV,SAASgqG,GAAG73G,EAAE0e,EAAEjR,EAAEI,EAAEjP,GAAG6O,EAAEA,EAAEg8C,OAAO,IAAIp7C,EAAEqQ,EAAEkrC,IAAqC,OAAjCojD,GAAGtuF,EAAE9f,GAAGiP,EAAEykG,GAAGtyG,EAAE0e,EAAEjR,EAAEI,EAAEQ,EAAEzP,GAAG6O,EAAEklG,KAAQ,OAAO3yG,GAAIotG,IAA2EtnE,IAAGr4B,GAAGw9F,GAAGvsF,GAAGA,EAAEm3C,OAAO,EAAE+hD,GAAG53G,EAAE0e,EAAE7Q,EAAEjP,GAAU8f,EAAE80E,QAA7G90E,EAAEovF,YAAY9tG,EAAE8tG,YAAYpvF,EAAEm3C,QAAQ,KAAK71D,EAAEmtG,QAAQvuG,EAAEk5G,GAAG93G,EAAE0e,EAAE9f,GAAoD,CACzN,SAASm5G,GAAG/3G,EAAE0e,EAAEjR,EAAEI,EAAEjP,GAAG,GAAG,OAAOoB,EAAE,CAAC,IAAIqO,EAAEZ,EAAE/C,KAAK,MAAG,oBAAoB2D,GAAI2pG,GAAG3pG,SAAI,IAASA,EAAEu8C,cAAc,OAAOn9C,EAAE0iD,cAAS,IAAS1iD,EAAEm9C,eAAoD5qD,EAAEwwG,GAAG/iG,EAAE/C,KAAK,KAAKmD,EAAE6Q,EAAEA,EAAE8Y,KAAK54B,IAAKgrD,IAAIlrC,EAAEkrC,IAAI5pD,EAAE8B,OAAO4c,EAASA,EAAE80E,MAAMxzF,IAArG0e,EAAE6rE,IAAI,GAAG7rE,EAAEhU,KAAK2D,EAAE4pG,GAAGj4G,EAAE0e,EAAErQ,EAAER,EAAEjP,GAAyE,CAAW,GAAVyP,EAAErO,EAAEwzF,MAAS,KAAKxzF,EAAEmtG,MAAMvuG,GAAG,CAAC,IAAI6f,EAAEpQ,EAAE49F,cAA0C,IAAhBx+F,EAAE,QAAdA,EAAEA,EAAE0iD,SAAmB1iD,EAAEk1F,IAAQlkF,EAAE5Q,IAAI7N,EAAE4pD,MAAMlrC,EAAEkrC,IAAI,OAAOkuD,GAAG93G,EAAE0e,EAAE9f,EAAE,CAA6C,OAA5C8f,EAAEm3C,OAAO,GAAE71D,EAAEswG,GAAGjiG,EAAER,IAAK+7C,IAAIlrC,EAAEkrC,IAAI5pD,EAAE8B,OAAO4c,EAASA,EAAE80E,MAAMxzF,CAAC,CAC1b,SAASi4G,GAAGj4G,EAAE0e,EAAEjR,EAAEI,EAAEjP,GAAG,GAAG,OAAOoB,EAAE,CAAC,IAAIqO,EAAErO,EAAEisG,cAAc,GAAGtJ,GAAGt0F,EAAER,IAAI7N,EAAE4pD,MAAMlrC,EAAEkrC,IAAI,IAAGwjD,IAAG,EAAG1uF,EAAEgtF,aAAa79F,EAAEQ,EAAE,KAAKrO,EAAEmtG,MAAMvuG,GAAsC,OAAO8f,EAAEyuF,MAAMntG,EAAEmtG,MAAM2K,GAAG93G,EAAE0e,EAAE9f,GAAjE,KAAa,OAARoB,EAAE61D,SAAgBu3C,IAAG,EAAyC,EAAC,OAAO8K,GAAGl4G,EAAE0e,EAAEjR,EAAEI,EAAEjP,EAAE,CACxN,SAASu5G,GAAGn4G,EAAE0e,EAAEjR,GAAG,IAAII,EAAE6Q,EAAEgtF,aAAa9sG,EAAEiP,EAAE6oC,SAASroC,EAAE,OAAOrO,EAAEA,EAAEozF,cAAc,KAAK,GAAG,WAAWvlF,EAAE2pB,KAAK,GAAG,KAAY,EAAP9Y,EAAE8Y,MAAQ9Y,EAAE00E,cAAc,CAACglB,UAAU,EAAEC,UAAU,KAAKC,YAAY,MAAM9xE,GAAE+xE,GAAGC,IAAIA,IAAI/qG,MAAM,CAAC,GAAG,KAAO,WAAFA,GAAc,OAAOzN,EAAE,OAAOqO,EAAEA,EAAE+pG,UAAU3qG,EAAEA,EAAEiR,EAAEyuF,MAAMzuF,EAAEquF,WAAW,WAAWruF,EAAE00E,cAAc,CAACglB,UAAUp4G,EAAEq4G,UAAU,KAAKC,YAAY,MAAM55F,EAAEovF,YAAY,KAAKtnE,GAAE+xE,GAAGC,IAAIA,IAAIx4G,EAAE,KAAK0e,EAAE00E,cAAc,CAACglB,UAAU,EAAEC,UAAU,KAAKC,YAAY,MAAMzqG,EAAE,OAAOQ,EAAEA,EAAE+pG,UAAU3qG,EAAE+4B,GAAE+xE,GAAGC,IAAIA,IAAI3qG,CAAC,MAAM,OACtfQ,GAAGR,EAAEQ,EAAE+pG,UAAU3qG,EAAEiR,EAAE00E,cAAc,MAAMvlF,EAAEJ,EAAE+4B,GAAE+xE,GAAGC,IAAIA,IAAI3qG,EAAc,OAAZ+pG,GAAG53G,EAAE0e,EAAE9f,EAAE6O,GAAUiR,EAAE80E,KAAK,CAAC,SAASilB,GAAGz4G,EAAE0e,GAAG,IAAIjR,EAAEiR,EAAEkrC,KAAO,OAAO5pD,GAAG,OAAOyN,GAAG,OAAOzN,GAAGA,EAAE4pD,MAAMn8C,KAAEiR,EAAEm3C,OAAO,IAAIn3C,EAAEm3C,OAAO,QAAO,CAAC,SAASqiD,GAAGl4G,EAAE0e,EAAEjR,EAAEI,EAAEjP,GAAG,IAAIyP,EAAEs7F,GAAGl8F,GAAG87F,GAAG9gE,GAAEirD,QAAmD,OAA3CrlF,EAAEm7F,GAAG9qF,EAAErQ,GAAG2+F,GAAGtuF,EAAE9f,GAAG6O,EAAE6kG,GAAGtyG,EAAE0e,EAAEjR,EAAEI,EAAEQ,EAAEzP,GAAGiP,EAAE8kG,KAAQ,OAAO3yG,GAAIotG,IAA2EtnE,IAAGj4B,GAAGo9F,GAAGvsF,GAAGA,EAAEm3C,OAAO,EAAE+hD,GAAG53G,EAAE0e,EAAEjR,EAAE7O,GAAU8f,EAAE80E,QAA7G90E,EAAEovF,YAAY9tG,EAAE8tG,YAAYpvF,EAAEm3C,QAAQ,KAAK71D,EAAEmtG,QAAQvuG,EAAEk5G,GAAG93G,EAAE0e,EAAE9f,GAAoD,CACla,SAAS85G,GAAG14G,EAAE0e,EAAEjR,EAAEI,EAAEjP,GAAG,GAAG+qG,GAAGl8F,GAAG,CAAC,IAAIY,GAAE,EAAG27F,GAAGtrF,EAAE,MAAMrQ,GAAE,EAAW,GAAR2+F,GAAGtuF,EAAE9f,GAAM,OAAO8f,EAAEqzE,UAAU4mB,GAAG34G,EAAE0e,GAAG+wF,GAAG/wF,EAAEjR,EAAEI,GAAGiiG,GAAGpxF,EAAEjR,EAAEI,EAAEjP,GAAGiP,GAAE,OAAQ,GAAG,OAAO7N,EAAE,CAAC,IAAIye,EAAEC,EAAEqzE,UAAU5wF,EAAEud,EAAEutF,cAAcxtF,EAAEwG,MAAM9jB,EAAE,IAAI6M,EAAEyQ,EAAEyxB,QAAQ9sC,EAAEqK,EAAE+hD,YAAY,kBAAkBpsD,GAAG,OAAOA,EAAEA,EAAEiqG,GAAGjqG,GAAyBA,EAAEomG,GAAG9qF,EAA1Btb,EAAEumG,GAAGl8F,GAAG87F,GAAG9gE,GAAEirD,SAAmB,IAAIhmF,EAAED,EAAEw7C,yBAAyBvgB,EAAE,oBAAoBh7B,GAAG,oBAAoB+Q,EAAEsxF,wBAAwBrnE,GAAG,oBAAoBjqB,EAAEoxF,kCAAkC,oBAAoBpxF,EAAEmxF,4BAC1dzuG,IAAI0M,GAAGG,IAAI5K,IAAIusG,GAAGjxF,EAAED,EAAE5Q,EAAEzK,GAAGwqG,IAAG,EAAG,IAAI3uG,EAAEyf,EAAE00E,cAAc30E,EAAEw/B,MAAMh/C,EAAEwvG,GAAG/vF,EAAE7Q,EAAE4Q,EAAE7f,GAAGoP,EAAE0Q,EAAE00E,cAAcjyF,IAAI0M,GAAG5O,IAAI+O,GAAGs7F,GAAG5V,SAASka,IAAI,oBAAoBlgG,IAAIohG,GAAGpwF,EAAEjR,EAAEC,EAAEG,GAAGG,EAAE0Q,EAAE00E,gBAAgBjyF,EAAEysG,IAAI0B,GAAG5wF,EAAEjR,EAAEtM,EAAE0M,EAAE5O,EAAE+O,EAAE5K,KAAKslC,GAAG,oBAAoBjqB,EAAEuxF,2BAA2B,oBAAoBvxF,EAAEwxF,qBAAqB,oBAAoBxxF,EAAEwxF,oBAAoBxxF,EAAEwxF,qBAAqB,oBAAoBxxF,EAAEuxF,2BAA2BvxF,EAAEuxF,6BAA6B,oBAAoBvxF,EAAE4qC,oBAAoB3qC,EAAEm3C,OAAO,WAClf,oBAAoBp3C,EAAE4qC,oBAAoB3qC,EAAEm3C,OAAO,SAASn3C,EAAEutF,cAAcp+F,EAAE6Q,EAAE00E,cAAcplF,GAAGyQ,EAAEwG,MAAMpX,EAAE4Q,EAAEw/B,MAAMjwC,EAAEyQ,EAAEyxB,QAAQ9sC,EAAEyK,EAAE1M,IAAI,oBAAoBsd,EAAE4qC,oBAAoB3qC,EAAEm3C,OAAO,SAAShoD,GAAE,EAAG,KAAK,CAAC4Q,EAAEC,EAAEqzE,UAAUqc,GAAGpuG,EAAE0e,GAAGvd,EAAEud,EAAEutF,cAAc7oG,EAAEsb,EAAEhU,OAAOgU,EAAEqoE,YAAY5lF,EAAEmrG,GAAG5tF,EAAEhU,KAAKvJ,GAAGsd,EAAEwG,MAAM7hB,EAAEslC,EAAEhqB,EAAEgtF,aAAazsG,EAAEwf,EAAEyxB,QAAwB,kBAAhBliC,EAAEP,EAAE+hD,cAAiC,OAAOxhD,EAAEA,EAAEq/F,GAAGr/F,GAAyBA,EAAEw7F,GAAG9qF,EAA1B1Q,EAAE27F,GAAGl8F,GAAG87F,GAAG9gE,GAAEirD,SAAmB,IAAIl1E,EAAE/Q,EAAEw7C,0BAA0Bv7C,EAAE,oBAAoB8Q,GAAG,oBAAoBC,EAAEsxF,0BAC9e,oBAAoBtxF,EAAEoxF,kCAAkC,oBAAoBpxF,EAAEmxF,4BAA4BzuG,IAAIunC,GAAGzpC,IAAI+O,IAAI2hG,GAAGjxF,EAAED,EAAE5Q,EAAEG,GAAG4/F,IAAG,EAAG3uG,EAAEyf,EAAE00E,cAAc30E,EAAEw/B,MAAMh/C,EAAEwvG,GAAG/vF,EAAE7Q,EAAE4Q,EAAE7f,GAAG,IAAI4B,EAAEke,EAAE00E,cAAcjyF,IAAIunC,GAAGzpC,IAAIuB,GAAG8oG,GAAG5V,SAASka,IAAI,oBAAoBpvF,IAAIswF,GAAGpwF,EAAEjR,EAAE+Q,EAAE3Q,GAAGrN,EAAEke,EAAE00E,gBAAgBhwF,EAAEwqG,IAAI0B,GAAG5wF,EAAEjR,EAAErK,EAAEyK,EAAE5O,EAAEuB,EAAEwN,KAAI,IAAKN,GAAG,oBAAoB+Q,EAAEm6F,4BAA4B,oBAAoBn6F,EAAEo6F,sBAAsB,oBAAoBp6F,EAAEo6F,qBAAqBp6F,EAAEo6F,oBAAoBhrG,EAAErN,EAAEwN,GAAG,oBAAoByQ,EAAEm6F,4BAC5fn6F,EAAEm6F,2BAA2B/qG,EAAErN,EAAEwN,IAAI,oBAAoByQ,EAAE+qC,qBAAqB9qC,EAAEm3C,OAAO,GAAG,oBAAoBp3C,EAAEsxF,0BAA0BrxF,EAAEm3C,OAAO,QAAQ,oBAAoBp3C,EAAE+qC,oBAAoBroD,IAAInB,EAAEisG,eAAehtG,IAAIe,EAAEozF,gBAAgB10E,EAAEm3C,OAAO,GAAG,oBAAoBp3C,EAAEsxF,yBAAyB5uG,IAAInB,EAAEisG,eAAehtG,IAAIe,EAAEozF,gBAAgB10E,EAAEm3C,OAAO,MAAMn3C,EAAEutF,cAAcp+F,EAAE6Q,EAAE00E,cAAc5yF,GAAGie,EAAEwG,MAAMpX,EAAE4Q,EAAEw/B,MAAMz9C,EAAEie,EAAEyxB,QAAQliC,EAAEH,EAAEzK,IAAI,oBAAoBqb,EAAE+qC,oBAAoBroD,IAAInB,EAAEisG,eAAehtG,IACjfe,EAAEozF,gBAAgB10E,EAAEm3C,OAAO,GAAG,oBAAoBp3C,EAAEsxF,yBAAyB5uG,IAAInB,EAAEisG,eAAehtG,IAAIe,EAAEozF,gBAAgB10E,EAAEm3C,OAAO,MAAMhoD,GAAE,EAAG,CAAC,OAAOirG,GAAG94G,EAAE0e,EAAEjR,EAAEI,EAAEQ,EAAEzP,EAAE,CACnK,SAASk6G,GAAG94G,EAAE0e,EAAEjR,EAAEI,EAAEjP,EAAEyP,GAAGoqG,GAAGz4G,EAAE0e,GAAG,IAAID,EAAE,KAAa,IAARC,EAAEm3C,OAAW,IAAIhoD,IAAI4Q,EAAE,OAAO7f,GAAGsrG,GAAGxrF,EAAEjR,GAAE,GAAIqqG,GAAG93G,EAAE0e,EAAErQ,GAAGR,EAAE6Q,EAAEqzE,UAAU2lB,GAAGhkB,QAAQh1E,EAAE,IAAIvd,EAAEsd,GAAG,oBAAoBhR,EAAEmiD,yBAAyB,KAAK/hD,EAAE47C,SAAwI,OAA/H/qC,EAAEm3C,OAAO,EAAE,OAAO71D,GAAGye,GAAGC,EAAE80E,MAAMod,GAAGlyF,EAAE1e,EAAEwzF,MAAM,KAAKnlF,GAAGqQ,EAAE80E,MAAMod,GAAGlyF,EAAE,KAAKvd,EAAEkN,IAAIupG,GAAG53G,EAAE0e,EAAEvd,EAAEkN,GAAGqQ,EAAE00E,cAAcvlF,EAAEowC,MAAMr/C,GAAGsrG,GAAGxrF,EAAEjR,GAAE,GAAWiR,EAAE80E,KAAK,CAAC,SAAS/iE,GAAGzwB,GAAG,IAAI0e,EAAE1e,EAAE+xF,UAAUrzE,EAAEq6F,eAAelP,GAAG7pG,EAAE0e,EAAEq6F,eAAer6F,EAAEq6F,iBAAiBr6F,EAAEwxB,SAASxxB,EAAEwxB,SAAS25D,GAAG7pG,EAAE0e,EAAEwxB,SAAQ,GAAIihE,GAAGnxG,EAAE0e,EAAEy5E,cAAc,CAC5e,SAAS6gB,GAAGh5G,EAAE0e,EAAEjR,EAAEI,EAAEjP,GAAuC,OAApCutG,KAAKC,GAAGxtG,GAAG8f,EAAEm3C,OAAO,IAAI+hD,GAAG53G,EAAE0e,EAAEjR,EAAEI,GAAU6Q,EAAE80E,KAAK,CAAC,IAaqLylB,GAAGC,GAAGC,GAAGC,GAb1LC,GAAG,CAAChmB,WAAW,KAAKsY,YAAY,KAAKC,UAAU,GAAG,SAAS0N,GAAGt5G,GAAG,MAAM,CAACo4G,UAAUp4G,EAAEq4G,UAAU,KAAKC,YAAY,KAAK,CAClM,SAASiB,GAAGv5G,EAAE0e,EAAEjR,GAAG,IAA0DtM,EAAtD0M,EAAE6Q,EAAEgtF,aAAa9sG,EAAE2gB,GAAEm0E,QAAQrlF,GAAE,EAAGoQ,EAAE,KAAa,IAARC,EAAEm3C,OAAqJ,IAAvI10D,EAAEsd,KAAKtd,GAAE,OAAOnB,GAAG,OAAOA,EAAEozF,gBAAiB,KAAO,EAAFx0F,IAASuC,GAAEkN,GAAE,EAAGqQ,EAAEm3C,QAAQ,KAAY,OAAO71D,GAAG,OAAOA,EAAEozF,gBAAcx0F,GAAG,GAAE4nC,GAAEjnB,GAAI,EAAF3gB,GAAQ,OAAOoB,EAA2B,OAAxB8rG,GAAGptF,GAAwB,QAArB1e,EAAE0e,EAAE00E,gBAA2C,QAAfpzF,EAAEA,EAAEqzF,aAA4B,KAAY,EAAP30E,EAAE8Y,MAAQ9Y,EAAEyuF,MAAM,EAAE,OAAOntG,EAAEoN,KAAKsR,EAAEyuF,MAAM,EAAEzuF,EAAEyuF,MAAM,WAAW,OAAK1uF,EAAE5Q,EAAE6oC,SAAS12C,EAAE6N,EAAE2rG,SAAgBnrG,GAAGR,EAAE6Q,EAAE8Y,KAAKnpB,EAAEqQ,EAAE80E,MAAM/0E,EAAE,CAAC+Y,KAAK,SAASkf,SAASj4B,GAAG,KAAO,EAAF5Q,IAAM,OAAOQ,GAAGA,EAAE0+F,WAAW,EAAE1+F,EAAEq9F,aAC7ejtF,GAAGpQ,EAAEorG,GAAGh7F,EAAE5Q,EAAE,EAAE,MAAM7N,EAAE2wG,GAAG3wG,EAAE6N,EAAEJ,EAAE,MAAMY,EAAEvM,OAAO4c,EAAE1e,EAAE8B,OAAO4c,EAAErQ,EAAEolF,QAAQzzF,EAAE0e,EAAE80E,MAAMnlF,EAAEqQ,EAAE80E,MAAMJ,cAAckmB,GAAG7rG,GAAGiR,EAAE00E,cAAcimB,GAAGr5G,GAAG05G,GAAGh7F,EAAED,IAAqB,GAAG,QAArB7f,EAAEoB,EAAEozF,gBAA2C,QAAfjyF,EAAEvC,EAAEy0F,YAAqB,OAGpM,SAAYrzF,EAAE0e,EAAEjR,EAAEI,EAAEjP,EAAEyP,EAAEoQ,GAAG,GAAGhR,EAAG,OAAW,IAARiR,EAAEm3C,OAAiBn3C,EAAEm3C,QAAQ,IAAwB8jD,GAAG35G,EAAE0e,EAAED,EAA3B5Q,EAAE6oG,GAAG5xG,MAAMzB,EAAE,SAAsB,OAAOqb,EAAE00E,eAAqB10E,EAAE80E,MAAMxzF,EAAEwzF,MAAM90E,EAAEm3C,OAAO,IAAI,OAAKxnD,EAAER,EAAE2rG,SAAS56G,EAAE8f,EAAE8Y,KAAK3pB,EAAE4rG,GAAG,CAACjiF,KAAK,UAAUkf,SAAS7oC,EAAE6oC,UAAU93C,EAAE,EAAE,OAAMyP,EAAEsiG,GAAGtiG,EAAEzP,EAAE6f,EAAE,OAAQo3C,OAAO,EAAEhoD,EAAE/L,OAAO4c,EAAErQ,EAAEvM,OAAO4c,EAAE7Q,EAAE4lF,QAAQplF,EAAEqQ,EAAE80E,MAAM3lF,EAAE,KAAY,EAAP6Q,EAAE8Y,OAASo5E,GAAGlyF,EAAE1e,EAAEwzF,MAAM,KAAK/0E,GAAGC,EAAE80E,MAAMJ,cAAckmB,GAAG76F,GAAGC,EAAE00E,cAAcimB,GAAUhrG,GAAE,GAAG,KAAY,EAAPqQ,EAAE8Y,MAAQ,OAAOmiF,GAAG35G,EAAE0e,EAAED,EAAE,MAAM,GAAG,OAAO7f,EAAEwO,KAAK,CAChd,GADidS,EAAEjP,EAAEkkG,aAAalkG,EAAEkkG,YAAY8W,QAC3e,IAAIz4G,EAAE0M,EAAEgsG,KAA0C,OAArChsG,EAAE1M,EAA0Cw4G,GAAG35G,EAAE0e,EAAED,EAA/B5Q,EAAE6oG,GAAlBroG,EAAEvJ,MAAMzB,EAAE,MAAawK,OAAE,GAA0B,CAAwB,GAAvB1M,EAAE,KAAKsd,EAAEze,EAAE+sG,YAAeK,IAAIjsG,EAAE,CAAK,GAAG,QAAP0M,EAAEk4B,IAAc,CAAC,OAAOtnB,GAAGA,GAAG,KAAK,EAAE7f,EAAE,EAAE,MAAM,KAAK,GAAGA,EAAE,EAAE,MAAM,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,SAAS,KAAK,SAAS,KAAK,SAASA,EAAE,GAAG,MAAM,KAAK,UAAUA,EAAE,UAAU,MAAM,QAAQA,EAAE,EAChd,KADkdA,EAAE,KAAKA,GAAGiP,EAAE+nF,eAAen3E,IAAI,EAAE7f,IAC5eA,IAAIyP,EAAEu9F,YAAYv9F,EAAEu9F,UAAUhtG,EAAE+uG,GAAG3tG,EAAEpB,GAAGuwG,GAAGthG,EAAE7N,EAAEpB,GAAG,GAAG,CAA0B,OAAzBk7G,KAAgCH,GAAG35G,EAAE0e,EAAED,EAAlC5Q,EAAE6oG,GAAG5xG,MAAMzB,EAAE,OAAyB,CAAC,MAAG,OAAOzE,EAAEwO,MAAYsR,EAAEm3C,OAAO,IAAIn3C,EAAE80E,MAAMxzF,EAAEwzF,MAAM90E,EAAEq7F,GAAGvnG,KAAK,KAAKxS,GAAGpB,EAAEo7G,YAAYt7F,EAAE,OAAK1e,EAAEqO,EAAEs9F,YAAYP,GAAG1C,GAAG9pG,EAAEkkG,aAAaqI,GAAGzsF,EAAEonB,IAAE,EAAGulE,GAAG,KAAK,OAAOrrG,IAAI2qG,GAAGC,MAAME,GAAGH,GAAGC,MAAMG,GAAGJ,GAAGC,MAAMC,GAAGC,GAAG9qG,EAAEsO,GAAGy8F,GAAG/qG,EAAEy3C,SAASozD,GAAGnsF,GAAGA,EAAEg7F,GAAGh7F,EAAE7Q,EAAE6oC,UAAUh4B,EAAEm3C,OAAO,KAAYn3C,EAAC,CALrKu7F,CAAGj6G,EAAE0e,EAAED,EAAE5Q,EAAE1M,EAAEvC,EAAE6O,GAAG,GAAGY,EAAE,CAACA,EAAER,EAAE2rG,SAAS/6F,EAAEC,EAAE8Y,KAAer2B,GAAVvC,EAAEoB,EAAEwzF,OAAUC,QAAQ,IAAIzlF,EAAE,CAACwpB,KAAK,SAASkf,SAAS7oC,EAAE6oC,UAChF,OAD0F,KAAO,EAAFj4B,IAAMC,EAAE80E,QAAQ50F,IAAGiP,EAAE6Q,EAAE80E,OAAQuZ,WAAW,EAAEl/F,EAAE69F,aAAa19F,EAAE0Q,EAAE8sF,UAAU,OAAO39F,EAAEyiG,GAAG1xG,EAAEoP,IAAKksG,aAA4B,SAAft7G,EAAEs7G,aAAuB,OAAO/4G,EAAEkN,EAAEiiG,GAAGnvG,EAAEkN,IAAIA,EAAEsiG,GAAGtiG,EAAEoQ,EAAEhR,EAAE,OAAQooD,OAAO,EAAGxnD,EAAEvM,OACnf4c,EAAE7Q,EAAE/L,OAAO4c,EAAE7Q,EAAE4lF,QAAQplF,EAAEqQ,EAAE80E,MAAM3lF,EAAEA,EAAEQ,EAAEA,EAAEqQ,EAAE80E,MAA8B/0E,EAAE,QAA1BA,EAAEze,EAAEwzF,MAAMJ,eAAyBkmB,GAAG7rG,GAAG,CAAC2qG,UAAU35F,EAAE25F,UAAU3qG,EAAE4qG,UAAU,KAAKC,YAAY75F,EAAE65F,aAAajqG,EAAE+kF,cAAc30E,EAAEpQ,EAAE0+F,WAAW/sG,EAAE+sG,YAAYt/F,EAAEiR,EAAE00E,cAAcimB,GAAUxrG,CAAC,CAAoO,OAAzN7N,GAAVqO,EAAErO,EAAEwzF,OAAUC,QAAQ5lF,EAAEyiG,GAAGjiG,EAAE,CAACmpB,KAAK,UAAUkf,SAAS7oC,EAAE6oC,WAAW,KAAY,EAAPh4B,EAAE8Y,QAAU3pB,EAAEs/F,MAAM1/F,GAAGI,EAAE/L,OAAO4c,EAAE7Q,EAAE4lF,QAAQ,KAAK,OAAOzzF,IAAkB,QAAdyN,EAAEiR,EAAE8sF,YAAoB9sF,EAAE8sF,UAAU,CAACxrG,GAAG0e,EAAEm3C,OAAO,IAAIpoD,EAAEvL,KAAKlC,IAAI0e,EAAE80E,MAAM3lF,EAAE6Q,EAAE00E,cAAc,KAAYvlF,CAAC,CACnd,SAAS6rG,GAAG15G,EAAE0e,GAA8D,OAA3DA,EAAE+6F,GAAG,CAACjiF,KAAK,UAAUkf,SAASh4B,GAAG1e,EAAEw3B,KAAK,EAAE,OAAQ11B,OAAO9B,EAASA,EAAEwzF,MAAM90E,CAAC,CAAC,SAASi7F,GAAG35G,EAAE0e,EAAEjR,EAAEI,GAAwG,OAArG,OAAOA,GAAGu+F,GAAGv+F,GAAG+iG,GAAGlyF,EAAE1e,EAAEwzF,MAAM,KAAK/lF,IAAGzN,EAAE05G,GAAGh7F,EAAEA,EAAEgtF,aAAah1D,WAAYmf,OAAO,EAAEn3C,EAAE00E,cAAc,KAAYpzF,CAAC,CAGkJ,SAASm6G,GAAGn6G,EAAE0e,EAAEjR,GAAGzN,EAAEmtG,OAAOzuF,EAAE,IAAI7Q,EAAE7N,EAAEkzF,UAAU,OAAOrlF,IAAIA,EAAEs/F,OAAOzuF,GAAGouF,GAAG9sG,EAAE8B,OAAO4c,EAAEjR,EAAE,CACxc,SAAS2sG,GAAGp6G,EAAE0e,EAAEjR,EAAEI,EAAEjP,GAAG,IAAIyP,EAAErO,EAAEozF,cAAc,OAAO/kF,EAAErO,EAAEozF,cAAc,CAACinB,YAAY37F,EAAE47F,UAAU,KAAKC,mBAAmB,EAAEC,KAAK3sG,EAAE4sG,KAAKhtG,EAAEitG,SAAS97G,IAAIyP,EAAEgsG,YAAY37F,EAAErQ,EAAEisG,UAAU,KAAKjsG,EAAEksG,mBAAmB,EAAElsG,EAAEmsG,KAAK3sG,EAAEQ,EAAEosG,KAAKhtG,EAAEY,EAAEqsG,SAAS97G,EAAE,CAC3O,SAAS+7G,GAAG36G,EAAE0e,EAAEjR,GAAG,IAAII,EAAE6Q,EAAEgtF,aAAa9sG,EAAEiP,EAAE4jG,YAAYpjG,EAAER,EAAE4sG,KAAsC,GAAjC7C,GAAG53G,EAAE0e,EAAE7Q,EAAE6oC,SAASjpC,GAAkB,KAAO,GAAtBI,EAAE0R,GAAEm0E,UAAqB7lF,EAAI,EAAFA,EAAI,EAAE6Q,EAAEm3C,OAAO,QAAQ,CAAC,GAAG,OAAO71D,GAAG,KAAa,IAARA,EAAE61D,OAAW71D,EAAE,IAAIA,EAAE0e,EAAE80E,MAAM,OAAOxzF,GAAG,CAAC,GAAG,KAAKA,EAAEuqF,IAAI,OAAOvqF,EAAEozF,eAAe+mB,GAAGn6G,EAAEyN,EAAEiR,QAAQ,GAAG,KAAK1e,EAAEuqF,IAAI4vB,GAAGn6G,EAAEyN,EAAEiR,QAAQ,GAAG,OAAO1e,EAAEwzF,MAAM,CAACxzF,EAAEwzF,MAAM1xF,OAAO9B,EAAEA,EAAEA,EAAEwzF,MAAM,QAAQ,CAAC,GAAGxzF,IAAI0e,EAAE,MAAM1e,EAAE,KAAK,OAAOA,EAAEyzF,SAAS,CAAC,GAAG,OAAOzzF,EAAE8B,QAAQ9B,EAAE8B,SAAS4c,EAAE,MAAM1e,EAAEA,EAAEA,EAAE8B,MAAM,CAAC9B,EAAEyzF,QAAQ3xF,OAAO9B,EAAE8B,OAAO9B,EAAEA,EAAEyzF,OAAO,CAAC5lF,GAAG,CAAC,CAAQ,GAAP24B,GAAEjnB,GAAE1R,GAAM,KAAY,EAAP6Q,EAAE8Y,MAAQ9Y,EAAE00E,cAC/e,UAAU,OAAOx0F,GAAG,IAAK,WAAqB,IAAV6O,EAAEiR,EAAE80E,MAAU50F,EAAE,KAAK,OAAO6O,GAAiB,QAAdzN,EAAEyN,EAAEylF,YAAoB,OAAOse,GAAGxxG,KAAKpB,EAAE6O,GAAGA,EAAEA,EAAEgmF,QAAY,QAAJhmF,EAAE7O,IAAYA,EAAE8f,EAAE80E,MAAM90E,EAAE80E,MAAM,OAAO50F,EAAE6O,EAAEgmF,QAAQhmF,EAAEgmF,QAAQ,MAAM2mB,GAAG17F,GAAE,EAAG9f,EAAE6O,EAAEY,GAAG,MAAM,IAAK,YAA6B,IAAjBZ,EAAE,KAAK7O,EAAE8f,EAAE80E,MAAU90E,EAAE80E,MAAM,KAAK,OAAO50F,GAAG,CAAe,GAAG,QAAjBoB,EAAEpB,EAAEs0F,YAAuB,OAAOse,GAAGxxG,GAAG,CAAC0e,EAAE80E,MAAM50F,EAAE,KAAK,CAACoB,EAAEpB,EAAE60F,QAAQ70F,EAAE60F,QAAQhmF,EAAEA,EAAE7O,EAAEA,EAAEoB,CAAC,CAACo6G,GAAG17F,GAAE,EAAGjR,EAAE,KAAKY,GAAG,MAAM,IAAK,WAAW+rG,GAAG17F,GAAE,EAAG,KAAK,UAAK,GAAQ,MAAM,QAAQA,EAAE00E,cAAc,KAAK,OAAO10E,EAAE80E,KAAK,CAC7d,SAASmlB,GAAG34G,EAAE0e,GAAG,KAAY,EAAPA,EAAE8Y,OAAS,OAAOx3B,IAAIA,EAAEkzF,UAAU,KAAKx0E,EAAEw0E,UAAU,KAAKx0E,EAAEm3C,OAAO,EAAE,CAAC,SAASiiD,GAAG93G,EAAE0e,EAAEjR,GAAyD,GAAtD,OAAOzN,IAAI0e,EAAEuuF,aAAajtG,EAAEitG,cAAcxwC,IAAI/9C,EAAEyuF,MAAS,KAAK1/F,EAAEiR,EAAEquF,YAAY,OAAO,KAAK,GAAG,OAAO/sG,GAAG0e,EAAE80E,QAAQxzF,EAAEwzF,MAAM,MAAM1uF,MAAMzB,EAAE,MAAM,GAAG,OAAOqb,EAAE80E,MAAM,CAA4C,IAAjC/lF,EAAE6iG,GAAZtwG,EAAE0e,EAAE80E,MAAaxzF,EAAE0rG,cAAchtF,EAAE80E,MAAM/lF,EAAMA,EAAE3L,OAAO4c,EAAE,OAAO1e,EAAEyzF,SAASzzF,EAAEA,EAAEyzF,SAAQhmF,EAAEA,EAAEgmF,QAAQ6c,GAAGtwG,EAAEA,EAAE0rG,eAAgB5pG,OAAO4c,EAAEjR,EAAEgmF,QAAQ,IAAI,CAAC,OAAO/0E,EAAE80E,KAAK,CAO9a,SAASonB,GAAG56G,EAAE0e,GAAG,IAAIonB,GAAE,OAAO9lC,EAAE06G,UAAU,IAAK,SAASh8F,EAAE1e,EAAEy6G,KAAK,IAAI,IAAIhtG,EAAE,KAAK,OAAOiR,GAAG,OAAOA,EAAEw0E,YAAYzlF,EAAEiR,GAAGA,EAAEA,EAAE+0E,QAAQ,OAAOhmF,EAAEzN,EAAEy6G,KAAK,KAAKhtG,EAAEgmF,QAAQ,KAAK,MAAM,IAAK,YAAYhmF,EAAEzN,EAAEy6G,KAAK,IAAI,IAAI5sG,EAAE,KAAK,OAAOJ,GAAG,OAAOA,EAAEylF,YAAYrlF,EAAEJ,GAAGA,EAAEA,EAAEgmF,QAAQ,OAAO5lF,EAAE6Q,GAAG,OAAO1e,EAAEy6G,KAAKz6G,EAAEy6G,KAAK,KAAKz6G,EAAEy6G,KAAKhnB,QAAQ,KAAK5lF,EAAE4lF,QAAQ,KAAK,CAC5U,SAASx0E,GAAEjf,GAAG,IAAI0e,EAAE,OAAO1e,EAAEkzF,WAAWlzF,EAAEkzF,UAAUM,QAAQxzF,EAAEwzF,MAAM/lF,EAAE,EAAEI,EAAE,EAAE,GAAG6Q,EAAE,IAAI,IAAI9f,EAAEoB,EAAEwzF,MAAM,OAAO50F,GAAG6O,GAAG7O,EAAEuuG,MAAMvuG,EAAEmuG,WAAWl/F,GAAkB,SAAfjP,EAAEs7G,aAAsBrsG,GAAW,SAARjP,EAAEi3D,MAAej3D,EAAEkD,OAAO9B,EAAEpB,EAAEA,EAAE60F,aAAa,IAAI70F,EAAEoB,EAAEwzF,MAAM,OAAO50F,GAAG6O,GAAG7O,EAAEuuG,MAAMvuG,EAAEmuG,WAAWl/F,GAAGjP,EAAEs7G,aAAarsG,GAAGjP,EAAEi3D,MAAMj3D,EAAEkD,OAAO9B,EAAEpB,EAAEA,EAAE60F,QAAyC,OAAjCzzF,EAAEk6G,cAAcrsG,EAAE7N,EAAE+sG,WAAWt/F,EAASiR,CAAC,CAC7V,SAASm8F,GAAG76G,EAAE0e,EAAEjR,GAAG,IAAII,EAAE6Q,EAAEgtF,aAAmB,OAANR,GAAGxsF,GAAUA,EAAE6rE,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,OAAOtrE,GAAEP,GAAG,KAAK,KAAK,EAUtD,KAAK,GAAG,OAAOirF,GAAGjrF,EAAEhU,OAAOk/F,KAAK3qF,GAAEP,GAAG,KAVqD,KAAK,EAA2Q,OAAzQ7Q,EAAE6Q,EAAEqzE,UAAUsf,KAAKryF,GAAEsqF,IAAItqF,GAAEypB,IAAGkpE,KAAK9jG,EAAEkrG,iBAAiBlrG,EAAEqiC,QAAQriC,EAAEkrG,eAAelrG,EAAEkrG,eAAe,MAAS,OAAO/4G,GAAG,OAAOA,EAAEwzF,QAAMwY,GAAGttF,GAAGA,EAAEm3C,OAAO,EAAE,OAAO71D,GAAGA,EAAEozF,cAAc8E,cAAc,KAAa,IAARx5E,EAAEm3C,SAAan3C,EAAEm3C,OAAO,KAAK,OAAOw1C,KAAKyP,GAAGzP,IAAIA,GAAG,QAAO6N,GAAGl5G,EAAE0e,GAAGO,GAAEP,GAAU,KAAK,KAAK,EAAE6yF,GAAG7yF,GAAG,IAAI9f,EAAEsyG,GAAGD,GAAGvd,SAC7e,GAATjmF,EAAEiR,EAAEhU,KAAQ,OAAO1K,GAAG,MAAM0e,EAAEqzE,UAAUonB,GAAGn5G,EAAE0e,EAAEjR,EAAEI,EAAEjP,GAAGoB,EAAE4pD,MAAMlrC,EAAEkrC,MAAMlrC,EAAEm3C,OAAO,IAAIn3C,EAAEm3C,OAAO,aAAa,CAAC,IAAIhoD,EAAE,CAAC,GAAG,OAAO6Q,EAAEqzE,UAAU,MAAMjtF,MAAMzB,EAAE,MAAW,OAAL4b,GAAEP,GAAU,IAAI,CAAkB,GAAjB1e,EAAEkxG,GAAGH,GAAGrd,SAAYsY,GAAGttF,GAAG,CAAC7Q,EAAE6Q,EAAEqzE,UAAUtkF,EAAEiR,EAAEhU,KAAK,IAAI2D,EAAEqQ,EAAEutF,cAA+C,OAAjCp+F,EAAEi7F,IAAIpqF,EAAE7Q,EAAEk7F,IAAI16F,EAAErO,EAAE,KAAY,EAAP0e,EAAE8Y,MAAe/pB,GAAG,IAAK,SAAS+R,GAAE,SAAS3R,GAAG2R,GAAE,QAAQ3R,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQ2R,GAAE,OAAO3R,GAAG,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAIjP,EAAE,EAAEA,EAAEsnG,GAAGnmG,OAAOnB,IAAI4gB,GAAE0mF,GAAGtnG,GAAGiP,GAAG,MAAM,IAAK,SAAS2R,GAAE,QAAQ3R,GAAG,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAO2R,GAAE,QACnhB3R,GAAG2R,GAAE,OAAO3R,GAAG,MAAM,IAAK,UAAU2R,GAAE,SAAS3R,GAAG,MAAM,IAAK,QAAQk+E,EAAGl+E,EAAEQ,GAAGmR,GAAE,UAAU3R,GAAG,MAAM,IAAK,SAASA,EAAEg+E,cAAc,CAACkvB,cAAc1sG,EAAE2sG,UAAUx7F,GAAE,UAAU3R,GAAG,MAAM,IAAK,WAAWi/E,GAAGj/E,EAAEQ,GAAGmR,GAAE,UAAU3R,GAAkB,IAAI,IAAI4Q,KAAvB2yE,GAAG3jF,EAAEY,GAAGzP,EAAE,KAAkByP,EAAE,GAAGA,EAAElP,eAAesf,GAAG,CAAC,IAAItd,EAAEkN,EAAEoQ,GAAG,aAAaA,EAAE,kBAAkBtd,EAAE0M,EAAE0jB,cAAcpwB,KAAI,IAAKkN,EAAE4sG,0BAA0BrT,GAAG/5F,EAAE0jB,YAAYpwB,EAAEnB,GAAGpB,EAAE,CAAC,WAAWuC,IAAI,kBAAkBA,GAAG0M,EAAE0jB,cAAc,GAAGpwB,KAAI,IAAKkN,EAAE4sG,0BAA0BrT,GAAG/5F,EAAE0jB,YAC1epwB,EAAEnB,GAAGpB,EAAE,CAAC,WAAW,GAAGuC,IAAIumF,EAAGvoF,eAAesf,IAAI,MAAMtd,GAAG,aAAasd,GAAGe,GAAE,SAAS3R,EAAE,CAAC,OAAOJ,GAAG,IAAK,QAAQu9E,EAAGn9E,GAAGw+E,EAAGx+E,EAAEQ,GAAE,GAAI,MAAM,IAAK,WAAW28E,EAAGn9E,GAAGm/E,GAAGn/E,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,MAAM,QAAQ,oBAAoBQ,EAAEsgD,UAAU9gD,EAAEqtG,QAAQrT,IAAIh6F,EAAEjP,EAAE8f,EAAEovF,YAAYjgG,EAAE,OAAOA,IAAI6Q,EAAEm3C,OAAO,EAAE,KAAK,CAACp3C,EAAE,IAAI7f,EAAE8uF,SAAS9uF,EAAEA,EAAE0tF,cAAc,iCAAiCtsF,IAAIA,EAAEitF,GAAGx/E,IAAI,iCAAiCzN,EAAE,WAAWyN,IAAGzN,EAAEye,EAAE7Y,cAAc,QAAS0nF,UAAU,qBAAuBttF,EAAEA,EAAE6zB,YAAY7zB,EAAEgrD,aAC/f,kBAAkBn9C,EAAEwW,GAAGrkB,EAAEye,EAAE7Y,cAAc6H,EAAE,CAAC4W,GAAGxW,EAAEwW,MAAMrkB,EAAEye,EAAE7Y,cAAc6H,GAAG,WAAWA,IAAIgR,EAAEze,EAAE6N,EAAEmtG,SAASv8F,EAAEu8F,UAAS,EAAGntG,EAAE8iB,OAAOlS,EAAEkS,KAAK9iB,EAAE8iB,QAAQ3wB,EAAEye,EAAE1R,gBAAgB/M,EAAEyN,GAAGzN,EAAE8oG,IAAIpqF,EAAE1e,EAAE+oG,IAAIl7F,EAAEorG,GAAGj5G,EAAE0e,GAAE,GAAG,GAAIA,EAAEqzE,UAAU/xF,EAAEA,EAAE,CAAW,OAAVye,EAAE4yE,GAAG5jF,EAAEI,GAAUJ,GAAG,IAAK,SAAS+R,GAAE,SAASxf,GAAGwf,GAAE,QAAQxf,GAAGpB,EAAEiP,EAAE,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQ2R,GAAE,OAAOxf,GAAGpB,EAAEiP,EAAE,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAIjP,EAAE,EAAEA,EAAEsnG,GAAGnmG,OAAOnB,IAAI4gB,GAAE0mF,GAAGtnG,GAAGoB,GAAGpB,EAAEiP,EAAE,MAAM,IAAK,SAAS2R,GAAE,QAAQxf,GAAGpB,EAAEiP,EAAE,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAO2R,GAAE,QAClfxf,GAAGwf,GAAE,OAAOxf,GAAGpB,EAAEiP,EAAE,MAAM,IAAK,UAAU2R,GAAE,SAASxf,GAAGpB,EAAEiP,EAAE,MAAM,IAAK,QAAQk+E,EAAG/rF,EAAE6N,GAAGjP,EAAE8sF,EAAG1rF,EAAE6N,GAAG2R,GAAE,UAAUxf,GAAG,MAAM,IAAK,SAAiL,QAAQpB,EAAEiP,QAAxK,IAAK,SAAS7N,EAAE6rF,cAAc,CAACkvB,cAAcltG,EAAEmtG,UAAUp8G,EAAEwgB,EAAE,CAAC,EAAEvR,EAAE,CAACtM,WAAM,IAASie,GAAE,UAAUxf,GAAG,MAAM,IAAK,WAAW8sF,GAAG9sF,EAAE6N,GAAGjP,EAAEguF,GAAG5sF,EAAE6N,GAAG2R,GAAE,UAAUxf,GAAiC,IAAIqO,KAAhB+iF,GAAG3jF,EAAE7O,GAAGuC,EAAEvC,EAAa,GAAGuC,EAAEhC,eAAekP,GAAG,CAAC,IAAIL,EAAE7M,EAAEkN,GAAG,UAAUA,EAAEgiF,GAAGrwF,EAAEgO,GAAG,4BAA4BK,EAAuB,OAApBL,EAAEA,EAAEA,EAAEi6F,YAAO,IAAgB7a,GAAGptF,EAAEgO,GAAI,aAAaK,EAAE,kBAAkBL,GAAG,aAC7eP,GAAG,KAAKO,IAAI0V,GAAG1jB,EAAEgO,GAAG,kBAAkBA,GAAG0V,GAAG1jB,EAAE,GAAGgO,GAAG,mCAAmCK,GAAG,6BAA6BA,GAAG,cAAcA,IAAIq5E,EAAGvoF,eAAekP,GAAG,MAAML,GAAG,aAAaK,GAAGmR,GAAE,SAASxf,GAAG,MAAMgO,GAAG06E,EAAG1oF,EAAEqO,EAAEL,EAAEyQ,GAAG,CAAC,OAAOhR,GAAG,IAAK,QAAQu9E,EAAGhrF,GAAGqsF,EAAGrsF,EAAE6N,GAAE,GAAI,MAAM,IAAK,WAAWm9E,EAAGhrF,GAAGgtF,GAAGhtF,GAAG,MAAM,IAAK,SAAS,MAAM6N,EAAEtM,OAAOvB,EAAEyc,aAAa,QAAQ,GAAGouE,EAAGh9E,EAAEtM,QAAQ,MAAM,IAAK,SAASvB,EAAEg7G,WAAWntG,EAAEmtG,SAAmB,OAAV3sG,EAAER,EAAEtM,OAAc8kC,GAAGrmC,IAAI6N,EAAEmtG,SAAS3sG,GAAE,GAAI,MAAMR,EAAE+9E,cAAcvlD,GAAGrmC,IAAI6N,EAAEmtG,SAASntG,EAAE+9E,cAClf,GAAI,MAAM,QAAQ,oBAAoBhtF,EAAE+vD,UAAU3uD,EAAEk7G,QAAQrT,IAAI,OAAOp6F,GAAG,IAAK,SAAS,IAAK,QAAQ,IAAK,SAAS,IAAK,WAAWI,IAAIA,EAAEstG,UAAU,MAAMn7G,EAAE,IAAK,MAAM6N,GAAE,EAAG,MAAM7N,EAAE,QAAQ6N,GAAE,EAAG,CAACA,IAAI6Q,EAAEm3C,OAAO,EAAE,CAAC,OAAOn3C,EAAEkrC,MAAMlrC,EAAEm3C,OAAO,IAAIn3C,EAAEm3C,OAAO,QAAQ,CAAM,OAAL52C,GAAEP,GAAU,KAAK,KAAK,EAAE,GAAG1e,GAAG,MAAM0e,EAAEqzE,UAAUqnB,GAAGp5G,EAAE0e,EAAE1e,EAAEisG,cAAcp+F,OAAO,CAAC,GAAG,kBAAkBA,GAAG,OAAO6Q,EAAEqzE,UAAU,MAAMjtF,MAAMzB,EAAE,MAAsC,GAAhCoK,EAAEyjG,GAAGD,GAAGvd,SAASwd,GAAGH,GAAGrd,SAAYsY,GAAGttF,GAAG,CAAyC,GAAxC7Q,EAAE6Q,EAAEqzE,UAAUtkF,EAAEiR,EAAEutF,cAAcp+F,EAAEi7F,IAAIpqF,GAAKrQ,EAAER,EAAE8/E,YAAYlgF,IAC/e,QADofzN,EACvfmrG,IAAY,OAAOnrG,EAAEuqF,KAAK,KAAK,EAAEqd,GAAG/5F,EAAE8/E,UAAUlgF,EAAE,KAAY,EAAPzN,EAAEw3B,OAAS,MAAM,KAAK,GAAE,IAAKx3B,EAAEisG,cAAcgP,0BAA0BrT,GAAG/5F,EAAE8/E,UAAUlgF,EAAE,KAAY,EAAPzN,EAAEw3B,OAASnpB,IAAIqQ,EAAEm3C,OAAO,EAAE,MAAMhoD,GAAG,IAAIJ,EAAEigF,SAASjgF,EAAEA,EAAE6+E,eAAenhC,eAAet9C,IAAKi7F,IAAIpqF,EAAEA,EAAEqzE,UAAUlkF,CAAC,CAAM,OAALoR,GAAEP,GAAU,KAAK,KAAK,GAA0B,GAAvBM,GAAEO,IAAG1R,EAAE6Q,EAAE00E,cAAiB,OAAOpzF,GAAG,OAAOA,EAAEozF,eAAe,OAAOpzF,EAAEozF,cAAcC,WAAW,CAAC,GAAGvtD,IAAG,OAAOslE,IAAI,KAAY,EAAP1sF,EAAE8Y,OAAS,KAAa,IAAR9Y,EAAEm3C,OAAWq2C,KAAKC,KAAKztF,EAAEm3C,OAAO,MAAMxnD,GAAE,OAAQ,GAAGA,EAAE29F,GAAGttF,GAAG,OAAO7Q,GAAG,OAAOA,EAAEwlF,WAAW,CAAC,GAAG,OAC5frzF,EAAE,CAAC,IAAIqO,EAAE,MAAMvJ,MAAMzB,EAAE,MAAqD,KAA7BgL,EAAE,QAApBA,EAAEqQ,EAAE00E,eAAyB/kF,EAAEglF,WAAW,MAAW,MAAMvuF,MAAMzB,EAAE,MAAMgL,EAAEy6F,IAAIpqF,CAAC,MAAMytF,KAAK,KAAa,IAARztF,EAAEm3C,SAAan3C,EAAE00E,cAAc,MAAM10E,EAAEm3C,OAAO,EAAE52C,GAAEP,GAAGrQ,GAAE,CAAE,MAAM,OAAOg9F,KAAKyP,GAAGzP,IAAIA,GAAG,MAAMh9F,GAAE,EAAG,IAAIA,EAAE,OAAe,MAARqQ,EAAEm3C,MAAYn3C,EAAE,IAAI,CAAC,OAAG,KAAa,IAARA,EAAEm3C,QAAkBn3C,EAAEyuF,MAAM1/F,EAAEiR,KAAE7Q,EAAE,OAAOA,MAAO,OAAO7N,GAAG,OAAOA,EAAEozF,gBAAgBvlF,IAAI6Q,EAAE80E,MAAM39B,OAAO,KAAK,KAAY,EAAPn3C,EAAE8Y,QAAU,OAAOx3B,GAAG,KAAe,EAAVuf,GAAEm0E,SAAW,IAAIp0E,KAAIA,GAAE,GAAGw6F,OAAO,OAAOp7F,EAAEovF,cAAcpvF,EAAEm3C,OAAO,GAAG52C,GAAEP,GAAU,MAAK,KAAK,EAAE,OAAO2yF,KACrf6H,GAAGl5G,EAAE0e,GAAG,OAAO1e,GAAG0mG,GAAGhoF,EAAEqzE,UAAUoG,eAAel5E,GAAEP,GAAG,KAAK,KAAK,GAAG,OAAOkuF,GAAGluF,EAAEhU,KAAK+/E,UAAUxrE,GAAEP,GAAG,KAA+C,KAAK,GAA0B,GAAvBM,GAAEO,IAAwB,QAArBlR,EAAEqQ,EAAE00E,eAA0B,OAAOn0E,GAAEP,GAAG,KAAuC,GAAlC7Q,EAAE,KAAa,IAAR6Q,EAAEm3C,OAA4B,QAAjBp3C,EAAEpQ,EAAEisG,WAAsB,GAAGzsG,EAAE+sG,GAAGvsG,GAAE,OAAQ,CAAC,GAAG,IAAIiR,IAAG,OAAOtf,GAAG,KAAa,IAARA,EAAE61D,OAAW,IAAI71D,EAAE0e,EAAE80E,MAAM,OAAOxzF,GAAG,CAAS,GAAG,QAAXye,EAAE+yF,GAAGxxG,IAAe,CAAmG,IAAlG0e,EAAEm3C,OAAO,IAAI+kD,GAAGvsG,GAAE,GAAoB,QAAhBR,EAAE4Q,EAAEqvF,eAAuBpvF,EAAEovF,YAAYjgG,EAAE6Q,EAAEm3C,OAAO,GAAGn3C,EAAEw7F,aAAa,EAAErsG,EAAEJ,EAAMA,EAAEiR,EAAE80E,MAAM,OAAO/lF,GAAOzN,EAAE6N,GAANQ,EAAEZ,GAAQooD,OAAO,SAC/d,QAAdp3C,EAAEpQ,EAAE6kF,YAAoB7kF,EAAE0+F,WAAW,EAAE1+F,EAAE8+F,MAAMntG,EAAEqO,EAAEmlF,MAAM,KAAKnlF,EAAE6rG,aAAa,EAAE7rG,EAAE49F,cAAc,KAAK59F,EAAE+kF,cAAc,KAAK/kF,EAAEy/F,YAAY,KAAKz/F,EAAE4+F,aAAa,KAAK5+F,EAAE0jF,UAAU,OAAO1jF,EAAE0+F,WAAWtuF,EAAEsuF,WAAW1+F,EAAE8+F,MAAM1uF,EAAE0uF,MAAM9+F,EAAEmlF,MAAM/0E,EAAE+0E,MAAMnlF,EAAE6rG,aAAa,EAAE7rG,EAAEm9F,UAAU,KAAKn9F,EAAE49F,cAAcxtF,EAAEwtF,cAAc59F,EAAE+kF,cAAc30E,EAAE20E,cAAc/kF,EAAEy/F,YAAYrvF,EAAEqvF,YAAYz/F,EAAE3D,KAAK+T,EAAE/T,KAAK1K,EAAEye,EAAEwuF,aAAa5+F,EAAE4+F,aAAa,OAAOjtG,EAAE,KAAK,CAACmtG,MAAMntG,EAAEmtG,MAAMD,aAAaltG,EAAEktG,eAAez/F,EAAEA,EAAEgmF,QAA2B,OAAnBjtD,GAAEjnB,GAAY,EAAVA,GAAEm0E,QAAU,GAAUh1E,EAAE80E,KAAK,CAACxzF,EAClgBA,EAAEyzF,OAAO,CAAC,OAAOplF,EAAEosG,MAAMz0E,KAAIo1E,KAAK18F,EAAEm3C,OAAO,IAAIhoD,GAAE,EAAG+sG,GAAGvsG,GAAE,GAAIqQ,EAAEyuF,MAAM,QAAQ,KAAK,CAAC,IAAIt/F,EAAE,GAAW,QAAR7N,EAAEwxG,GAAG/yF,KAAa,GAAGC,EAAEm3C,OAAO,IAAIhoD,GAAE,EAAmB,QAAhBJ,EAAEzN,EAAE8tG,eAAuBpvF,EAAEovF,YAAYrgG,EAAEiR,EAAEm3C,OAAO,GAAG+kD,GAAGvsG,GAAE,GAAI,OAAOA,EAAEosG,MAAM,WAAWpsG,EAAEqsG,WAAWj8F,EAAEy0E,YAAYptD,GAAE,OAAO7mB,GAAEP,GAAG,UAAU,EAAEsnB,KAAI33B,EAAEksG,mBAAmBa,IAAI,aAAa3tG,IAAIiR,EAAEm3C,OAAO,IAAIhoD,GAAE,EAAG+sG,GAAGvsG,GAAE,GAAIqQ,EAAEyuF,MAAM,SAAS9+F,EAAEgsG,aAAa57F,EAAEg1E,QAAQ/0E,EAAE80E,MAAM90E,EAAE80E,MAAM/0E,IAAa,QAAThR,EAAEY,EAAEmsG,MAAc/sG,EAAEgmF,QAAQh1E,EAAEC,EAAE80E,MAAM/0E,EAAEpQ,EAAEmsG,KAAK/7F,EAAE,CAAC,OAAG,OAAOpQ,EAAEosG,MAAY/7F,EAAErQ,EAAEosG,KAAKpsG,EAAEisG,UAC9e57F,EAAErQ,EAAEosG,KAAK/7F,EAAE+0E,QAAQplF,EAAEksG,mBAAmBv0E,KAAItnB,EAAE+0E,QAAQ,KAAKhmF,EAAE8R,GAAEm0E,QAAQltD,GAAEjnB,GAAE1R,EAAI,EAAFJ,EAAI,EAAI,EAAFA,GAAKiR,IAAEO,GAAEP,GAAU,MAAK,KAAK,GAAG,KAAK,GAAG,OAAO28F,KAAKxtG,EAAE,OAAO6Q,EAAE00E,cAAc,OAAOpzF,GAAG,OAAOA,EAAEozF,gBAAgBvlF,IAAI6Q,EAAEm3C,OAAO,MAAMhoD,GAAG,KAAY,EAAP6Q,EAAE8Y,MAAQ,KAAQ,WAAHghF,MAAiBv5F,GAAEP,GAAkB,EAAfA,EAAEw7F,eAAiBx7F,EAAEm3C,OAAO,OAAO52C,GAAEP,GAAG,KAAK,KAAK,GAAe,KAAK,GAAG,OAAO,KAAK,MAAM5Z,MAAMzB,EAAE,IAAIqb,EAAE6rE,KAAM,CAClX,SAAS+wB,GAAGt7G,EAAE0e,GAAS,OAANwsF,GAAGxsF,GAAUA,EAAE6rE,KAAK,KAAK,EAAE,OAAOof,GAAGjrF,EAAEhU,OAAOk/F,KAAiB,OAAZ5pG,EAAE0e,EAAEm3C,QAAen3C,EAAEm3C,OAAS,MAAH71D,EAAS,IAAI0e,GAAG,KAAK,KAAK,EAAE,OAAO2yF,KAAKryF,GAAEsqF,IAAItqF,GAAEypB,IAAGkpE,KAAe,KAAO,OAAjB3xG,EAAE0e,EAAEm3C,SAAqB,KAAO,IAAF71D,IAAQ0e,EAAEm3C,OAAS,MAAH71D,EAAS,IAAI0e,GAAG,KAAK,KAAK,EAAE,OAAO6yF,GAAG7yF,GAAG,KAAK,KAAK,GAA0B,GAAvBM,GAAEO,IAAwB,QAArBvf,EAAE0e,EAAE00E,gBAA2B,OAAOpzF,EAAEqzF,WAAW,CAAC,GAAG,OAAO30E,EAAEw0E,UAAU,MAAMpuF,MAAMzB,EAAE,MAAM8oG,IAAI,CAAW,OAAS,OAAnBnsG,EAAE0e,EAAEm3C,QAAsBn3C,EAAEm3C,OAAS,MAAH71D,EAAS,IAAI0e,GAAG,KAAK,KAAK,GAAG,OAAOM,GAAEO,IAAG,KAAK,KAAK,EAAE,OAAO8xF,KAAK,KAAK,KAAK,GAAG,OAAOzE,GAAGluF,EAAEhU,KAAK+/E,UAAU,KAAK,KAAK,GAAG,KAAK,GAAG,OAAO4wB,KAC1gB,KAAyB,QAAQ,OAAO,KAAK,CArB7CpC,GAAG,SAASj5G,EAAE0e,GAAG,IAAI,IAAIjR,EAAEiR,EAAE80E,MAAM,OAAO/lF,GAAG,CAAC,GAAG,IAAIA,EAAE88E,KAAK,IAAI98E,EAAE88E,IAAIvqF,EAAE+T,YAAYtG,EAAEskF,gBAAgB,GAAG,IAAItkF,EAAE88E,KAAK,OAAO98E,EAAE+lF,MAAM,CAAC/lF,EAAE+lF,MAAM1xF,OAAO2L,EAAEA,EAAEA,EAAE+lF,MAAM,QAAQ,CAAC,GAAG/lF,IAAIiR,EAAE,MAAM,KAAK,OAAOjR,EAAEgmF,SAAS,CAAC,GAAG,OAAOhmF,EAAE3L,QAAQ2L,EAAE3L,SAAS4c,EAAE,OAAOjR,EAAEA,EAAE3L,MAAM,CAAC2L,EAAEgmF,QAAQ3xF,OAAO2L,EAAE3L,OAAO2L,EAAEA,EAAEgmF,OAAO,CAAC,EAAEylB,GAAG,WAAW,EACxTC,GAAG,SAASn5G,EAAE0e,EAAEjR,EAAEI,GAAG,IAAIjP,EAAEoB,EAAEisG,cAAc,GAAGrtG,IAAIiP,EAAE,CAAC7N,EAAE0e,EAAEqzE,UAAUmf,GAAGH,GAAGrd,SAAS,IAA4Rj1E,EAAxRpQ,EAAE,KAAK,OAAOZ,GAAG,IAAK,QAAQ7O,EAAE8sF,EAAG1rF,EAAEpB,GAAGiP,EAAE69E,EAAG1rF,EAAE6N,GAAGQ,EAAE,GAAG,MAAM,IAAK,SAASzP,EAAEwgB,EAAE,CAAC,EAAExgB,EAAE,CAAC2C,WAAM,IAASsM,EAAEuR,EAAE,CAAC,EAAEvR,EAAE,CAACtM,WAAM,IAAS8M,EAAE,GAAG,MAAM,IAAK,WAAWzP,EAAEguF,GAAG5sF,EAAEpB,GAAGiP,EAAE++E,GAAG5sF,EAAE6N,GAAGQ,EAAE,GAAG,MAAM,QAAQ,oBAAoBzP,EAAE+vD,SAAS,oBAAoB9gD,EAAE8gD,UAAU3uD,EAAEk7G,QAAQrT,IAAyB,IAAIzkG,KAAzBguF,GAAG3jF,EAAEI,GAASJ,EAAE,KAAc7O,EAAE,IAAIiP,EAAE1O,eAAeiE,IAAIxE,EAAEO,eAAeiE,IAAI,MAAMxE,EAAEwE,GAAG,GAAG,UAAUA,EAAE,CAAC,IAAIjC,EAAEvC,EAAEwE,GAAG,IAAIqb,KAAKtd,EAAEA,EAAEhC,eAAesf,KACjfhR,IAAIA,EAAE,CAAC,GAAGA,EAAEgR,GAAG,GAAG,KAAK,4BAA4Brb,GAAG,aAAaA,GAAG,mCAAmCA,GAAG,6BAA6BA,GAAG,cAAcA,IAAIskF,EAAGvoF,eAAeiE,GAAGiL,IAAIA,EAAE,KAAKA,EAAEA,GAAG,IAAInM,KAAKkB,EAAE,OAAO,IAAIA,KAAKyK,EAAE,CAAC,IAAIG,EAAEH,EAAEzK,GAAyB,GAAtBjC,EAAE,MAAMvC,EAAEA,EAAEwE,QAAG,EAAUyK,EAAE1O,eAAeiE,IAAI4K,IAAI7M,IAAI,MAAM6M,GAAG,MAAM7M,GAAG,GAAG,UAAUiC,EAAE,GAAGjC,EAAE,CAAC,IAAIsd,KAAKtd,GAAGA,EAAEhC,eAAesf,IAAIzQ,GAAGA,EAAE7O,eAAesf,KAAKhR,IAAIA,EAAE,CAAC,GAAGA,EAAEgR,GAAG,IAAI,IAAIA,KAAKzQ,EAAEA,EAAE7O,eAAesf,IAAItd,EAAEsd,KAAKzQ,EAAEyQ,KAAKhR,IAAIA,EAAE,CAAC,GAAGA,EAAEgR,GAAGzQ,EAAEyQ,GAAG,MAAMhR,IAAIY,IAAIA,EAAE,IAAIA,EAAEnM,KAAKkB,EACpfqK,IAAIA,EAAEO,MAAM,4BAA4B5K,GAAG4K,EAAEA,EAAEA,EAAEi6F,YAAO,EAAO9mG,EAAEA,EAAEA,EAAE8mG,YAAO,EAAO,MAAMj6F,GAAG7M,IAAI6M,IAAIK,EAAEA,GAAG,IAAInM,KAAKkB,EAAE4K,IAAI,aAAa5K,EAAE,kBAAkB4K,GAAG,kBAAkBA,IAAIK,EAAEA,GAAG,IAAInM,KAAKkB,EAAE,GAAG4K,GAAG,mCAAmC5K,GAAG,6BAA6BA,IAAIskF,EAAGvoF,eAAeiE,IAAI,MAAM4K,GAAG,aAAa5K,GAAGoc,GAAE,SAASxf,GAAGqO,GAAGlN,IAAI6M,IAAIK,EAAE,MAAMA,EAAEA,GAAG,IAAInM,KAAKkB,EAAE4K,GAAG,CAACP,IAAIY,EAAEA,GAAG,IAAInM,KAAK,QAAQuL,GAAG,IAAIrK,EAAEiL,GAAKqQ,EAAEovF,YAAY1qG,KAAEsb,EAAEm3C,OAAO,EAAC,CAAC,EAAEujD,GAAG,SAASp5G,EAAE0e,EAAEjR,EAAEI,GAAGJ,IAAII,IAAI6Q,EAAEm3C,OAAO,EAAE,EAkBlb,IAAI0lD,IAAG,EAAGryE,IAAE,EAAGsyE,GAAG,oBAAoBC,QAAQA,QAAQh0B,IAAIxhD,GAAE,KAAK,SAASy1E,GAAG17G,EAAE0e,GAAG,IAAIjR,EAAEzN,EAAE4pD,IAAI,GAAG,OAAOn8C,EAAE,GAAG,oBAAoBA,EAAE,IAAIA,EAAE,KAAK,CAAC,MAAMI,GAAG86B,GAAE3oC,EAAE0e,EAAE7Q,EAAE,MAAMJ,EAAEimF,QAAQ,IAAI,CAAC,SAASioB,GAAG37G,EAAE0e,EAAEjR,GAAG,IAAIA,GAAG,CAAC,MAAMI,GAAG86B,GAAE3oC,EAAE0e,EAAE7Q,EAAE,CAAC,CAAC,IAAI+tG,IAAG,EAIxR,SAASC,GAAG77G,EAAE0e,EAAEjR,GAAG,IAAII,EAAE6Q,EAAEovF,YAAyC,GAAG,QAAhCjgG,EAAE,OAAOA,EAAEA,EAAEmmG,WAAW,MAAiB,CAAC,IAAIp1G,EAAEiP,EAAEA,EAAEzM,KAAK,EAAE,CAAC,IAAIxC,EAAE2rF,IAAIvqF,KAAKA,EAAE,CAAC,IAAIqO,EAAEzP,EAAE0U,QAAQ1U,EAAE0U,aAAQ,OAAO,IAASjF,GAAGstG,GAAGj9F,EAAEjR,EAAEY,EAAE,CAACzP,EAAEA,EAAEwC,IAAI,OAAOxC,IAAIiP,EAAE,CAAC,CAAC,SAASiuG,GAAG97G,EAAE0e,GAAgD,GAAG,QAAhCA,EAAE,QAAlBA,EAAEA,EAAEovF,aAAuBpvF,EAAEs1F,WAAW,MAAiB,CAAC,IAAIvmG,EAAEiR,EAAEA,EAAEtd,KAAK,EAAE,CAAC,IAAIqM,EAAE88E,IAAIvqF,KAAKA,EAAE,CAAC,IAAI6N,EAAEJ,EAAE/N,OAAO+N,EAAE6F,QAAQzF,GAAG,CAACJ,EAAEA,EAAErM,IAAI,OAAOqM,IAAIiR,EAAE,CAAC,CAAC,SAASq9F,GAAG/7G,GAAG,IAAI0e,EAAE1e,EAAE4pD,IAAI,GAAG,OAAOlrC,EAAE,CAAC,IAAIjR,EAAEzN,EAAE+xF,UAAiB/xF,EAAEuqF,IAA8BvqF,EAAEyN,EAAE,oBAAoBiR,EAAEA,EAAE1e,GAAG0e,EAAEg1E,QAAQ1zF,CAAC,CAAC,CAClf,SAASg8G,GAAGh8G,GAAG,IAAI0e,EAAE1e,EAAEkzF,UAAU,OAAOx0E,IAAI1e,EAAEkzF,UAAU,KAAK8oB,GAAGt9F,IAAI1e,EAAEwzF,MAAM,KAAKxzF,EAAEwrG,UAAU,KAAKxrG,EAAEyzF,QAAQ,KAAK,IAAIzzF,EAAEuqF,MAAoB,QAAd7rE,EAAE1e,EAAE+xF,oBAA4BrzE,EAAEoqF,WAAWpqF,EAAEqqF,WAAWrqF,EAAEijB,WAAWjjB,EAAEsqF,WAAWtqF,EAAEuqF,MAAMjpG,EAAE+xF,UAAU,KAAK/xF,EAAE8B,OAAO,KAAK9B,EAAEitG,aAAa,KAAKjtG,EAAEisG,cAAc,KAAKjsG,EAAEozF,cAAc,KAAKpzF,EAAE0rG,aAAa,KAAK1rG,EAAE+xF,UAAU,KAAK/xF,EAAE8tG,YAAY,IAAI,CAAC,SAASmO,GAAGj8G,GAAG,OAAO,IAAIA,EAAEuqF,KAAK,IAAIvqF,EAAEuqF,KAAK,IAAIvqF,EAAEuqF,GAAG,CACna,SAAS2xB,GAAGl8G,GAAGA,EAAE,OAAO,CAAC,KAAK,OAAOA,EAAEyzF,SAAS,CAAC,GAAG,OAAOzzF,EAAE8B,QAAQm6G,GAAGj8G,EAAE8B,QAAQ,OAAO,KAAK9B,EAAEA,EAAE8B,MAAM,CAA2B,IAA1B9B,EAAEyzF,QAAQ3xF,OAAO9B,EAAE8B,OAAW9B,EAAEA,EAAEyzF,QAAQ,IAAIzzF,EAAEuqF,KAAK,IAAIvqF,EAAEuqF,KAAK,KAAKvqF,EAAEuqF,KAAK,CAAC,GAAW,EAARvqF,EAAE61D,MAAQ,SAAS71D,EAAE,GAAG,OAAOA,EAAEwzF,OAAO,IAAIxzF,EAAEuqF,IAAI,SAASvqF,EAAOA,EAAEwzF,MAAM1xF,OAAO9B,EAAEA,EAAEA,EAAEwzF,KAAK,CAAC,KAAa,EAARxzF,EAAE61D,OAAS,OAAO71D,EAAE+xF,SAAS,CAAC,CACzT,SAASoqB,GAAGn8G,EAAE0e,EAAEjR,GAAG,IAAII,EAAE7N,EAAEuqF,IAAI,GAAG,IAAI18E,GAAG,IAAIA,EAAE7N,EAAEA,EAAE+xF,UAAUrzE,EAAE,IAAIjR,EAAEigF,SAASjgF,EAAEmmB,WAAWqZ,aAAajtC,EAAE0e,GAAGjR,EAAEw/B,aAAajtC,EAAE0e,IAAI,IAAIjR,EAAEigF,UAAUhvE,EAAEjR,EAAEmmB,YAAaqZ,aAAajtC,EAAEyN,IAAKiR,EAAEjR,GAAIsG,YAAY/T,GAA4B,QAAxByN,EAAEA,EAAE2uG,2BAA8B,IAAS3uG,GAAG,OAAOiR,EAAEw8F,UAAUx8F,EAAEw8F,QAAQrT,UAAU,GAAG,IAAIh6F,GAAc,QAAV7N,EAAEA,EAAEwzF,OAAgB,IAAI2oB,GAAGn8G,EAAE0e,EAAEjR,GAAGzN,EAAEA,EAAEyzF,QAAQ,OAAOzzF,GAAGm8G,GAAGn8G,EAAE0e,EAAEjR,GAAGzN,EAAEA,EAAEyzF,OAAO,CAC1X,SAAS4oB,GAAGr8G,EAAE0e,EAAEjR,GAAG,IAAII,EAAE7N,EAAEuqF,IAAI,GAAG,IAAI18E,GAAG,IAAIA,EAAE7N,EAAEA,EAAE+xF,UAAUrzE,EAAEjR,EAAEw/B,aAAajtC,EAAE0e,GAAGjR,EAAEsG,YAAY/T,QAAQ,GAAG,IAAI6N,GAAc,QAAV7N,EAAEA,EAAEwzF,OAAgB,IAAI6oB,GAAGr8G,EAAE0e,EAAEjR,GAAGzN,EAAEA,EAAEyzF,QAAQ,OAAOzzF,GAAGq8G,GAAGr8G,EAAE0e,EAAEjR,GAAGzN,EAAEA,EAAEyzF,OAAO,CAAC,IAAI3qD,GAAE,KAAKwzE,IAAG,EAAG,SAASC,GAAGv8G,EAAE0e,EAAEjR,GAAG,IAAIA,EAAEA,EAAE+lF,MAAM,OAAO/lF,GAAG+uG,GAAGx8G,EAAE0e,EAAEjR,GAAGA,EAAEA,EAAEgmF,OAAO,CACnR,SAAS+oB,GAAGx8G,EAAE0e,EAAEjR,GAAG,GAAGi0B,IAAI,oBAAoBA,GAAG+6E,qBAAqB,IAAI/6E,GAAG+6E,qBAAqBxnB,GAAGxnF,EAAE,CAAC,MAAMtM,GAAG,CAAC,OAAOsM,EAAE88E,KAAK,KAAK,EAAErhD,IAAGwyE,GAAGjuG,EAAEiR,GAAG,KAAK,EAAE,IAAI7Q,EAAEi7B,GAAElqC,EAAE09G,GAAGxzE,GAAE,KAAKyzE,GAAGv8G,EAAE0e,EAAEjR,GAAO6uG,GAAG19G,EAAE,QAATkqC,GAAEj7B,KAAkByuG,IAAIt8G,EAAE8oC,GAAEr7B,EAAEA,EAAEskF,UAAU,IAAI/xF,EAAE0tF,SAAS1tF,EAAE4zB,WAAWC,YAAYpmB,GAAGzN,EAAE6zB,YAAYpmB,IAAIq7B,GAAEjV,YAAYpmB,EAAEskF,YAAY,MAAM,KAAK,GAAG,OAAOjpD,KAAIwzE,IAAIt8G,EAAE8oC,GAAEr7B,EAAEA,EAAEskF,UAAU,IAAI/xF,EAAE0tF,SAAS+a,GAAGzoG,EAAE4zB,WAAWnmB,GAAG,IAAIzN,EAAE0tF,UAAU+a,GAAGzoG,EAAEyN,GAAGirF,GAAG14F,IAAIyoG,GAAG3/D,GAAEr7B,EAAEskF,YAAY,MAAM,KAAK,EAAElkF,EAAEi7B,GAAElqC,EAAE09G,GAAGxzE,GAAEr7B,EAAEskF,UAAUoG,cAAcmkB,IAAG,EAClfC,GAAGv8G,EAAE0e,EAAEjR,GAAGq7B,GAAEj7B,EAAEyuG,GAAG19G,EAAE,MAAM,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAIsqC,KAAoB,QAAhBr7B,EAAEJ,EAAEqgG,cAAsC,QAAfjgG,EAAEA,EAAEmmG,aAAsB,CAACp1G,EAAEiP,EAAEA,EAAEzM,KAAK,EAAE,CAAC,IAAIiN,EAAEzP,EAAE6f,EAAEpQ,EAAEiF,QAAQjF,EAAEA,EAAEk8E,SAAI,IAAS9rE,IAAI,KAAO,EAAFpQ,IAAe,KAAO,EAAFA,KAAfstG,GAAGluG,EAAEiR,EAAED,GAAyB7f,EAAEA,EAAEwC,IAAI,OAAOxC,IAAIiP,EAAE,CAAC0uG,GAAGv8G,EAAE0e,EAAEjR,GAAG,MAAM,KAAK,EAAE,IAAIy7B,KAAIwyE,GAAGjuG,EAAEiR,GAAiB,oBAAd7Q,EAAEJ,EAAEskF,WAAgCxoC,sBAAsB,IAAI17C,EAAEoX,MAAMxX,EAAEw+F,cAAcp+F,EAAEowC,MAAMxwC,EAAE2lF,cAAcvlF,EAAE07C,sBAAsB,CAAC,MAAMpoD,GAAGwnC,GAAEl7B,EAAEiR,EAAEvd,EAAE,CAACo7G,GAAGv8G,EAAE0e,EAAEjR,GAAG,MAAM,KAAK,GAAG8uG,GAAGv8G,EAAE0e,EAAEjR,GAAG,MAAM,KAAK,GAAU,EAAPA,EAAE+pB,MAAQ0R,IAAGr7B,EAAEq7B,KAAI,OAChfz7B,EAAE2lF,cAAcmpB,GAAGv8G,EAAE0e,EAAEjR,GAAGy7B,GAAEr7B,GAAG0uG,GAAGv8G,EAAE0e,EAAEjR,GAAG,MAAM,QAAQ8uG,GAAGv8G,EAAE0e,EAAEjR,GAAG,CAAC,SAASivG,GAAG18G,GAAG,IAAI0e,EAAE1e,EAAE8tG,YAAY,GAAG,OAAOpvF,EAAE,CAAC1e,EAAE8tG,YAAY,KAAK,IAAIrgG,EAAEzN,EAAE+xF,UAAU,OAAOtkF,IAAIA,EAAEzN,EAAE+xF,UAAU,IAAIypB,IAAI98F,EAAEiU,SAAQ,SAASjU,GAAG,IAAI7Q,EAAE8uG,GAAGnqG,KAAK,KAAKxS,EAAE0e,GAAGjR,EAAExJ,IAAIya,KAAKjR,EAAE+3B,IAAI9mB,GAAGA,EAAEld,KAAKqM,EAAEA,GAAG,GAAE,CAAC,CACzQ,SAAS+uG,GAAG58G,EAAE0e,GAAG,IAAIjR,EAAEiR,EAAE8sF,UAAU,GAAG,OAAO/9F,EAAE,IAAI,IAAII,EAAE,EAAEA,EAAEJ,EAAE1N,OAAO8N,IAAI,CAAC,IAAIjP,EAAE6O,EAAEI,GAAG,IAAI,IAAIQ,EAAErO,EAAEye,EAAEC,EAAEvd,EAAEsd,EAAEze,EAAE,KAAK,OAAOmB,GAAG,CAAC,OAAOA,EAAEopF,KAAK,KAAK,EAAEzhD,GAAE3nC,EAAE4wF,UAAUuqB,IAAG,EAAG,MAAMt8G,EAAE,KAAK,EAA4C,KAAK,EAAE8oC,GAAE3nC,EAAE4wF,UAAUoG,cAAcmkB,IAAG,EAAG,MAAMt8G,EAAEmB,EAAEA,EAAEW,MAAM,CAAC,GAAG,OAAOgnC,GAAE,MAAMhkC,MAAMzB,EAAE,MAAMm5G,GAAGnuG,EAAEoQ,EAAE7f,GAAGkqC,GAAE,KAAKwzE,IAAG,EAAG,IAAItuG,EAAEpP,EAAEs0F,UAAU,OAAOllF,IAAIA,EAAElM,OAAO,MAAMlD,EAAEkD,OAAO,IAAI,CAAC,MAAMsB,GAAGulC,GAAE/pC,EAAE8f,EAAEtb,EAAE,CAAC,CAAC,GAAkB,MAAfsb,EAAEw7F,aAAmB,IAAIx7F,EAAEA,EAAE80E,MAAM,OAAO90E,GAAGm+F,GAAGn+F,EAAE1e,GAAG0e,EAAEA,EAAE+0E,OAAO,CACje,SAASopB,GAAG78G,EAAE0e,GAAG,IAAIjR,EAAEzN,EAAEkzF,UAAUrlF,EAAE7N,EAAE61D,MAAM,OAAO71D,EAAEuqF,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAiB,GAAdqyB,GAAGl+F,EAAE1e,GAAG88G,GAAG98G,GAAQ,EAAF6N,EAAI,CAAC,IAAIguG,GAAG,EAAE77G,EAAEA,EAAE8B,QAAQg6G,GAAG,EAAE97G,EAAE,CAAC,MAAMrB,GAAGgqC,GAAE3oC,EAAEA,EAAE8B,OAAOnD,EAAE,CAAC,IAAIk9G,GAAG,EAAE77G,EAAEA,EAAE8B,OAAO,CAAC,MAAMnD,GAAGgqC,GAAE3oC,EAAEA,EAAE8B,OAAOnD,EAAE,CAAC,CAAC,MAAM,KAAK,EAAEi+G,GAAGl+F,EAAE1e,GAAG88G,GAAG98G,GAAK,IAAF6N,GAAO,OAAOJ,GAAGiuG,GAAGjuG,EAAEA,EAAE3L,QAAQ,MAAM,KAAK,EAAgD,GAA9C86G,GAAGl+F,EAAE1e,GAAG88G,GAAG98G,GAAK,IAAF6N,GAAO,OAAOJ,GAAGiuG,GAAGjuG,EAAEA,EAAE3L,QAAmB,GAAR9B,EAAE61D,MAAS,CAAC,IAAIj3D,EAAEoB,EAAE+xF,UAAU,IAAIruE,GAAG9kB,EAAE,GAAG,CAAC,MAAMD,GAAGgqC,GAAE3oC,EAAEA,EAAE8B,OAAOnD,EAAE,CAAC,CAAC,GAAK,EAAFkP,GAAoB,OAAdjP,EAAEoB,EAAE+xF,WAAmB,CAAC,IAAI1jF,EAAErO,EAAEisG,cAAcxtF,EAAE,OAAOhR,EAAEA,EAAEw+F,cAAc59F,EAAElN,EAAEnB,EAAE0K,KAAKsD,EAAEhO,EAAE8tG,YACje,GAAnB9tG,EAAE8tG,YAAY,KAAQ,OAAO9/F,EAAE,IAAI,UAAU7M,GAAG,UAAUkN,EAAE3D,MAAM,MAAM2D,EAAE0G,MAAMm3E,EAAGttF,EAAEyP,GAAGgjF,GAAGlwF,EAAEsd,GAAG,IAAIrb,EAAEiuF,GAAGlwF,EAAEkN,GAAG,IAAIoQ,EAAE,EAAEA,EAAEzQ,EAAEjO,OAAO0e,GAAG,EAAE,CAAC,IAAI/Q,EAAEM,EAAEyQ,GAAGiqB,EAAE16B,EAAEyQ,EAAE,GAAG,UAAU/Q,EAAE2iF,GAAGzxF,EAAE8pC,GAAG,4BAA4Bh7B,EAAE0/E,GAAGxuF,EAAE8pC,GAAG,aAAah7B,EAAEgW,GAAG9kB,EAAE8pC,GAAGggD,EAAG9pF,EAAE8O,EAAEg7B,EAAEtlC,EAAE,CAAC,OAAOjC,GAAG,IAAK,QAAQgrF,EAAGvtF,EAAEyP,GAAG,MAAM,IAAK,WAAW0+E,GAAGnuF,EAAEyP,GAAG,MAAM,IAAK,SAAS,IAAIpP,EAAEL,EAAEitF,cAAckvB,YAAYn8G,EAAEitF,cAAckvB,cAAc1sG,EAAE2sG,SAAS,IAAIx8F,EAAEnQ,EAAE9M,MAAM,MAAMid,EAAE6nB,GAAGznC,IAAIyP,EAAE2sG,SAASx8F,GAAE,GAAIvf,MAAMoP,EAAE2sG,WAAW,MAAM3sG,EAAEu9E,aAAavlD,GAAGznC,IAAIyP,EAAE2sG,SACnf3sG,EAAEu9E,cAAa,GAAIvlD,GAAGznC,IAAIyP,EAAE2sG,SAAS3sG,EAAE2sG,SAAS,GAAG,IAAG,IAAKp8G,EAAEmqG,IAAI16F,CAAC,CAAC,MAAM1P,GAAGgqC,GAAE3oC,EAAEA,EAAE8B,OAAOnD,EAAE,CAAC,CAAC,MAAM,KAAK,EAAgB,GAAdi+G,GAAGl+F,EAAE1e,GAAG88G,GAAG98G,GAAQ,EAAF6N,EAAI,CAAC,GAAG,OAAO7N,EAAE+xF,UAAU,MAAMjtF,MAAMzB,EAAE,MAAMzE,EAAEoB,EAAE+xF,UAAU1jF,EAAErO,EAAEisG,cAAc,IAAIrtG,EAAE+uF,UAAUt/E,CAAC,CAAC,MAAM1P,GAAGgqC,GAAE3oC,EAAEA,EAAE8B,OAAOnD,EAAE,CAAC,CAAC,MAAM,KAAK,EAAgB,GAAdi+G,GAAGl+F,EAAE1e,GAAG88G,GAAG98G,GAAQ,EAAF6N,GAAK,OAAOJ,GAAGA,EAAE2lF,cAAc8E,aAAa,IAAIQ,GAAGh6E,EAAEy5E,cAAc,CAAC,MAAMx5F,GAAGgqC,GAAE3oC,EAAEA,EAAE8B,OAAOnD,EAAE,CAAC,MAAM,KAAK,EAG4G,QAAQi+G,GAAGl+F,EACnf1e,GAAG88G,GAAG98G,SAJ4Y,KAAK,GAAG48G,GAAGl+F,EAAE1e,GAAG88G,GAAG98G,GAAqB,MAAlBpB,EAAEoB,EAAEwzF,OAAQ39B,QAAaxnD,EAAE,OAAOzP,EAAEw0F,cAAcx0F,EAAEmzF,UAAUgrB,SAAS1uG,GAAGA,GAClf,OAAOzP,EAAEs0F,WAAW,OAAOt0F,EAAEs0F,UAAUE,gBAAgB4pB,GAAGh3E,OAAQ,EAAFn4B,GAAK6uG,GAAG18G,GAAG,MAAM,KAAK,GAAsF,GAAnF0N,EAAE,OAAOD,GAAG,OAAOA,EAAE2lF,cAAqB,EAAPpzF,EAAEw3B,MAAQ0R,IAAG9lC,EAAE8lC,KAAIx7B,EAAEkvG,GAAGl+F,EAAE1e,GAAGkpC,GAAE9lC,GAAGw5G,GAAGl+F,EAAE1e,GAAG88G,GAAG98G,GAAQ,KAAF6N,EAAO,CAA0B,GAAzBzK,EAAE,OAAOpD,EAAEozF,eAAkBpzF,EAAE+xF,UAAUgrB,SAAS35G,KAAKsK,GAAG,KAAY,EAAP1N,EAAEw3B,MAAQ,IAAIyO,GAAEjmC,EAAE0N,EAAE1N,EAAEwzF,MAAM,OAAO9lF,GAAG,CAAC,IAAIg7B,EAAEzC,GAAEv4B,EAAE,OAAOu4B,IAAG,CAAe,OAAVznB,GAAJvf,EAAEgnC,IAAMutD,MAAav0F,EAAEsrF,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAGsxB,GAAG,EAAE58G,EAAEA,EAAE6C,QAAQ,MAAM,KAAK,EAAE45G,GAAGz8G,EAAEA,EAAE6C,QAAQ,IAAItB,EAAEvB,EAAE8yF,UAAU,GAAG,oBAAoBvxF,EAAE+oD,qBAAqB,CAAC17C,EAAE5O,EAAEwO,EAAExO,EAAE6C,OAAO,IAAI4c,EAAE7Q,EAAErN,EAAEykB,MACpfvG,EAAEutF,cAAczrG,EAAEy9C,MAAMv/B,EAAE00E,cAAc5yF,EAAE+oD,sBAAsB,CAAC,MAAM5qD,GAAGgqC,GAAE96B,EAAEJ,EAAE9O,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE+8G,GAAGz8G,EAAEA,EAAE6C,QAAQ,MAAM,KAAK,GAAG,GAAG,OAAO7C,EAAEm0F,cAAc,CAAC6pB,GAAGv0E,GAAG,QAAQ,EAAE,OAAOlqB,GAAGA,EAAE1c,OAAO7C,EAAEgnC,GAAEznB,GAAGy+F,GAAGv0E,EAAE,CAACh7B,EAAEA,EAAE+lF,OAAO,CAACzzF,EAAE,IAAI0N,EAAE,KAAKg7B,EAAE1oC,IAAI,CAAC,GAAG,IAAI0oC,EAAE6hD,KAAK,GAAG,OAAO78E,EAAE,CAACA,EAAEg7B,EAAE,IAAI9pC,EAAE8pC,EAAEqpD,UAAU3uF,EAAa,oBAAViL,EAAEzP,EAAEiL,OAA4BymF,YAAYjiF,EAAEiiF,YAAY,UAAU,OAAO,aAAajiF,EAAEpE,QAAQ,QAAS9I,EAAEunC,EAAEqpD,UAAkCtzE,OAAE,KAA1BzQ,EAAE06B,EAAEujE,cAAcpiG,QAAoB,OAAOmE,GAAGA,EAAE7O,eAAe,WAAW6O,EAAE/D,QAAQ,KAAK9I,EAAE0I,MAAMI,QACzfmmF,GAAG,UAAU3xE,GAAG,CAAC,MAAM9f,GAAGgqC,GAAE3oC,EAAEA,EAAE8B,OAAOnD,EAAE,CAAC,OAAO,GAAG,IAAI+pC,EAAE6hD,KAAK,GAAG,OAAO78E,EAAE,IAAIg7B,EAAEqpD,UAAUpE,UAAUvqF,EAAE,GAAGslC,EAAEujE,aAAa,CAAC,MAAMttG,GAAGgqC,GAAE3oC,EAAEA,EAAE8B,OAAOnD,EAAE,OAAO,IAAI,KAAK+pC,EAAE6hD,KAAK,KAAK7hD,EAAE6hD,KAAK,OAAO7hD,EAAE0qD,eAAe1qD,IAAI1oC,IAAI,OAAO0oC,EAAE8qD,MAAM,CAAC9qD,EAAE8qD,MAAM1xF,OAAO4mC,EAAEA,EAAEA,EAAE8qD,MAAM,QAAQ,CAAC,GAAG9qD,IAAI1oC,EAAE,MAAMA,EAAE,KAAK,OAAO0oC,EAAE+qD,SAAS,CAAC,GAAG,OAAO/qD,EAAE5mC,QAAQ4mC,EAAE5mC,SAAS9B,EAAE,MAAMA,EAAE0N,IAAIg7B,IAAIh7B,EAAE,MAAMg7B,EAAEA,EAAE5mC,MAAM,CAAC4L,IAAIg7B,IAAIh7B,EAAE,MAAMg7B,EAAE+qD,QAAQ3xF,OAAO4mC,EAAE5mC,OAAO4mC,EAAEA,EAAE+qD,OAAO,CAAC,CAAC,MAAM,KAAK,GAAGmpB,GAAGl+F,EAAE1e,GAAG88G,GAAG98G,GAAK,EAAF6N,GAAK6uG,GAAG18G,GAAS,KAAK,IACtd,CAAC,SAAS88G,GAAG98G,GAAG,IAAI0e,EAAE1e,EAAE61D,MAAM,GAAK,EAAFn3C,EAAI,CAAC,IAAI1e,EAAE,CAAC,IAAI,IAAIyN,EAAEzN,EAAE8B,OAAO,OAAO2L,GAAG,CAAC,GAAGwuG,GAAGxuG,GAAG,CAAC,IAAII,EAAEJ,EAAE,MAAMzN,CAAC,CAACyN,EAAEA,EAAE3L,MAAM,CAAC,MAAMgD,MAAMzB,EAAE,KAAM,CAAC,OAAOwK,EAAE08E,KAAK,KAAK,EAAE,IAAI3rF,EAAEiP,EAAEkkF,UAAkB,GAARlkF,EAAEgoD,QAAWnyC,GAAG9kB,EAAE,IAAIiP,EAAEgoD,QAAQ,IAAgBwmD,GAAGr8G,EAATk8G,GAAGl8G,GAAUpB,GAAG,MAAM,KAAK,EAAE,KAAK,EAAE,IAAI6f,EAAE5Q,EAAEkkF,UAAUoG,cAAsBgkB,GAAGn8G,EAATk8G,GAAGl8G,GAAUye,GAAG,MAAM,QAAQ,MAAM3Z,MAAMzB,EAAE,MAAO,CAAC,MAAM2K,GAAG26B,GAAE3oC,EAAEA,EAAE8B,OAAOkM,EAAE,CAAChO,EAAE61D,QAAQ,CAAC,CAAG,KAAFn3C,IAAS1e,EAAE61D,QAAQ,KAAK,CAAC,SAASqnD,GAAGl9G,EAAE0e,EAAEjR,GAAGw4B,GAAEjmC,EAAEm9G,GAAGn9G,EAAE0e,EAAEjR,EAAE,CACvb,SAAS0vG,GAAGn9G,EAAE0e,EAAEjR,GAAG,IAAI,IAAII,EAAE,KAAY,EAAP7N,EAAEw3B,MAAQ,OAAOyO,IAAG,CAAC,IAAIrnC,EAAEqnC,GAAE53B,EAAEzP,EAAE40F,MAAM,GAAG,KAAK50F,EAAE2rF,KAAK18E,EAAE,CAAC,IAAI4Q,EAAE,OAAO7f,EAAEw0F,eAAemoB,GAAG,IAAI98F,EAAE,CAAC,IAAItd,EAAEvC,EAAEs0F,UAAUllF,EAAE,OAAO7M,GAAG,OAAOA,EAAEiyF,eAAelqD,GAAE/nC,EAAEo6G,GAAG,IAAIn4G,EAAE8lC,GAAO,GAALqyE,GAAG98F,GAAMyqB,GAAEl7B,KAAK5K,EAAE,IAAI6iC,GAAErnC,EAAE,OAAOqnC,IAAOj4B,GAAJyQ,EAAEwnB,IAAMutD,MAAM,KAAK/0E,EAAE8rE,KAAK,OAAO9rE,EAAE20E,cAAcgqB,GAAGx+G,GAAG,OAAOoP,GAAGA,EAAElM,OAAO2c,EAAEwnB,GAAEj4B,GAAGovG,GAAGx+G,GAAG,KAAK,OAAOyP,GAAG43B,GAAE53B,EAAE8uG,GAAG9uG,EAAEqQ,EAAEjR,GAAGY,EAAEA,EAAEolF,QAAQxtD,GAAErnC,EAAE28G,GAAGp6G,EAAE+nC,GAAE9lC,CAAC,CAACi6G,GAAGr9G,EAAM,MAAM,KAAoB,KAAfpB,EAAEs7G,eAAoB,OAAO7rG,GAAGA,EAAEvM,OAAOlD,EAAEqnC,GAAE53B,GAAGgvG,GAAGr9G,EAAM,CAAC,CACvc,SAASq9G,GAAGr9G,GAAG,KAAK,OAAOimC,IAAG,CAAC,IAAIvnB,EAAEunB,GAAE,GAAG,KAAa,KAARvnB,EAAEm3C,OAAY,CAAC,IAAIpoD,EAAEiR,EAAEw0E,UAAU,IAAI,GAAG,KAAa,KAARx0E,EAAEm3C,OAAY,OAAOn3C,EAAE6rE,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAGrhD,IAAG4yE,GAAG,EAAEp9F,GAAG,MAAM,KAAK,EAAE,IAAI7Q,EAAE6Q,EAAEqzE,UAAU,GAAW,EAARrzE,EAAEm3C,QAAU3sB,GAAE,GAAG,OAAOz7B,EAAEI,EAAEw7C,wBAAwB,CAAC,IAAIzqD,EAAE8f,EAAEqoE,cAAcroE,EAAEhU,KAAK+C,EAAEw+F,cAAcK,GAAG5tF,EAAEhU,KAAK+C,EAAEw+F,eAAep+F,EAAE27C,mBAAmB5qD,EAAE6O,EAAE2lF,cAAcvlF,EAAEyvG,oCAAoC,CAAC,IAAIjvG,EAAEqQ,EAAEovF,YAAY,OAAOz/F,GAAGqgG,GAAGhwF,EAAErQ,EAAER,GAAG,MAAM,KAAK,EAAE,IAAI4Q,EAAEC,EAAEovF,YAAY,GAAG,OAAOrvF,EAAE,CAAQ,GAAPhR,EAAE,KAAQ,OAAOiR,EAAE80E,MAAM,OAAO90E,EAAE80E,MAAMjJ,KAAK,KAAK,EACvf,KAAK,EAAE98E,EAAEiR,EAAE80E,MAAMzB,UAAU2c,GAAGhwF,EAAED,EAAEhR,EAAE,CAAC,MAAM,KAAK,EAAE,IAAItM,EAAEud,EAAEqzE,UAAU,GAAG,OAAOtkF,GAAW,EAARiR,EAAEm3C,MAAQ,CAACpoD,EAAEtM,EAAE,IAAI6M,EAAE0Q,EAAEutF,cAAc,OAAOvtF,EAAEhU,MAAM,IAAK,SAAS,IAAK,QAAQ,IAAK,SAAS,IAAK,WAAWsD,EAAEmtG,WAAW1tG,EAAEk3F,QAAQ,MAAM,IAAK,MAAM32F,EAAErH,MAAM8G,EAAE9G,IAAIqH,EAAErH,KAAK,CAAC,MAAM,KAAK,EAAQ,KAAK,EAAQ,KAAK,GAAyJ,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAhM,KAAK,GAAG,GAAG,OAAO+X,EAAE00E,cAAc,CAAC,IAAIhwF,EAAEsb,EAAEw0E,UAAU,GAAG,OAAO9vF,EAAE,CAAC,IAAIsK,EAAEtK,EAAEgwF,cAAc,GAAG,OAAO1lF,EAAE,CAAC,IAAIg7B,EAAEh7B,EAAE2lF,WAAW,OAAO3qD,GAAGgwD,GAAGhwD,EAAE,CAAC,CAAC,CAAC,MAC5c,QAAQ,MAAM5jC,MAAMzB,EAAE,MAAO6lC,IAAW,IAARxqB,EAAEm3C,OAAWkmD,GAAGr9F,EAAE,CAAC,MAAMzf,GAAG0pC,GAAEjqB,EAAEA,EAAE5c,OAAO7C,EAAE,CAAC,CAAC,GAAGyf,IAAI1e,EAAE,CAACimC,GAAE,KAAK,KAAK,CAAa,GAAG,QAAfx4B,EAAEiR,EAAE+0E,SAAoB,CAAChmF,EAAE3L,OAAO4c,EAAE5c,OAAOmkC,GAAEx4B,EAAE,KAAK,CAACw4B,GAAEvnB,EAAE5c,MAAM,CAAC,CAAC,SAASm7G,GAAGj9G,GAAG,KAAK,OAAOimC,IAAG,CAAC,IAAIvnB,EAAEunB,GAAE,GAAGvnB,IAAI1e,EAAE,CAACimC,GAAE,KAAK,KAAK,CAAC,IAAIx4B,EAAEiR,EAAE+0E,QAAQ,GAAG,OAAOhmF,EAAE,CAACA,EAAE3L,OAAO4c,EAAE5c,OAAOmkC,GAAEx4B,EAAE,KAAK,CAACw4B,GAAEvnB,EAAE5c,MAAM,CAAC,CACvS,SAASs7G,GAAGp9G,GAAG,KAAK,OAAOimC,IAAG,CAAC,IAAIvnB,EAAEunB,GAAE,IAAI,OAAOvnB,EAAE6rE,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI98E,EAAEiR,EAAE5c,OAAO,IAAIg6G,GAAG,EAAEp9F,EAAE,CAAC,MAAM1Q,GAAG26B,GAAEjqB,EAAEjR,EAAEO,EAAE,CAAC,MAAM,KAAK,EAAE,IAAIH,EAAE6Q,EAAEqzE,UAAU,GAAG,oBAAoBlkF,EAAEw7C,kBAAkB,CAAC,IAAIzqD,EAAE8f,EAAE5c,OAAO,IAAI+L,EAAEw7C,mBAAmB,CAAC,MAAMr7C,GAAG26B,GAAEjqB,EAAE9f,EAAEoP,EAAE,CAAC,CAAC,IAAIK,EAAEqQ,EAAE5c,OAAO,IAAIi6G,GAAGr9F,EAAE,CAAC,MAAM1Q,GAAG26B,GAAEjqB,EAAErQ,EAAEL,EAAE,CAAC,MAAM,KAAK,EAAE,IAAIyQ,EAAEC,EAAE5c,OAAO,IAAIi6G,GAAGr9F,EAAE,CAAC,MAAM1Q,GAAG26B,GAAEjqB,EAAED,EAAEzQ,EAAE,EAAE,CAAC,MAAMA,GAAG26B,GAAEjqB,EAAEA,EAAE5c,OAAOkM,EAAE,CAAC,GAAG0Q,IAAI1e,EAAE,CAACimC,GAAE,KAAK,KAAK,CAAC,IAAI9kC,EAAEud,EAAE+0E,QAAQ,GAAG,OAAOtyF,EAAE,CAACA,EAAEW,OAAO4c,EAAE5c,OAAOmkC,GAAE9kC,EAAE,KAAK,CAAC8kC,GAAEvnB,EAAE5c,MAAM,CAAC,CAC7d,IAwBkNy7G,GAxB9MC,GAAGj1G,KAAKgnB,KAAKkuF,GAAG10B,EAAG+oB,uBAAuB4L,GAAG30B,EAAG4uB,kBAAkBgG,GAAG50B,EAAG6P,wBAAwB5vD,GAAE,EAAEjD,GAAE,KAAK8C,GAAE,KAAKE,GAAE,EAAEyvE,GAAG,EAAED,GAAGnP,GAAG,GAAG9pF,GAAE,EAAEs+F,GAAG,KAAKnhD,GAAG,EAAEohD,GAAG,EAAEzuG,GAAG,EAAE0uG,GAAG,KAAKC,GAAG,KAAKf,GAAG,EAAE5B,GAAG4C,IAASC,GAAG,KAAKlH,IAAG,EAAGC,GAAG,KAAKG,GAAG,KAAK+G,IAAG,EAAGC,GAAG,KAAKC,GAAG,EAAEC,GAAG,EAAEC,GAAG,KAAKC,IAAI,EAAEC,GAAG,EAAE,SAASt4E,KAAI,OAAO,KAAO,EAAF8C,IAAKhD,MAAK,IAAIu4E,GAAGA,GAAGA,GAAGv4E,IAAG,CAChU,SAAS5C,GAAGpjC,GAAG,OAAG,KAAY,EAAPA,EAAEw3B,MAAe,EAAK,KAAO,EAAFwR,KAAM,IAAID,GAASA,IAAGA,GAAK,OAAOsjE,GAAGvT,YAAkB,IAAI0lB,KAAKA,GAAGtoB,MAAMsoB,IAAU,KAAPx+G,EAAEkf,IAAkBlf,EAAiBA,OAAE,KAAjBA,EAAEsE,OAAOg9F,OAAmB,GAAGnI,GAAGn5F,EAAE0K,KAAc,CAAC,SAASykG,GAAGnvG,EAAE0e,EAAEjR,EAAEI,GAAG,GAAG,GAAGwwG,GAAG,MAAMA,GAAG,EAAEC,GAAG,KAAKx5G,MAAMzB,EAAE,MAAM+yF,GAAGp2F,EAAEyN,EAAEI,GAAM,KAAO,EAAFm7B,KAAMhpC,IAAI+lC,KAAE/lC,IAAI+lC,KAAI,KAAO,EAAFiD,MAAO60E,IAAIpwG,GAAG,IAAI6R,IAAGm/F,GAAGz+G,EAAE+oC,KAAI21E,GAAG1+G,EAAE6N,GAAG,IAAIJ,GAAG,IAAIu7B,IAAG,KAAY,EAAPtqB,EAAE8Y,QAAU4jF,GAAGp1E,KAAI,IAAIokE,IAAIE,MAAK,CAC1Y,SAASoU,GAAG1+G,EAAE0e,GAAG,IAAIjR,EAAEzN,EAAE2+G,cA5MzB,SAAY3+G,EAAE0e,GAAG,IAAI,IAAIjR,EAAEzN,EAAE41F,eAAe/nF,EAAE7N,EAAE61F,YAAYj3F,EAAEoB,EAAE4+G,gBAAgBvwG,EAAErO,EAAE21F,aAAa,EAAEtnF,GAAG,CAAC,IAAIoQ,EAAE,GAAGy2E,GAAG7mF,GAAGlN,EAAE,GAAGsd,EAAEzQ,EAAEpP,EAAE6f,IAAO,IAAIzQ,EAAM,KAAK7M,EAAEsM,IAAI,KAAKtM,EAAE0M,KAAGjP,EAAE6f,GAAGu3E,GAAG70F,EAAEud,IAAQ1Q,GAAG0Q,IAAI1e,EAAE6+G,cAAc19G,GAAGkN,IAAIlN,CAAC,CAAC,CA4MnL29G,CAAG9+G,EAAE0e,GAAG,IAAI7Q,EAAE6nF,GAAG11F,EAAEA,IAAI+lC,GAAEgD,GAAE,GAAG,GAAG,IAAIl7B,EAAE,OAAOJ,GAAGsmF,GAAGtmF,GAAGzN,EAAE2+G,aAAa,KAAK3+G,EAAE++G,iBAAiB,OAAO,GAAGrgG,EAAE7Q,GAAGA,EAAE7N,EAAE++G,mBAAmBrgG,EAAE,CAAgB,GAAf,MAAMjR,GAAGsmF,GAAGtmF,GAAM,IAAIiR,EAAE,IAAI1e,EAAEuqF,IA7IsJ,SAAYvqF,GAAGoqG,IAAG,EAAGC,GAAGrqG,EAAE,CA6I5Kg/G,CAAGC,GAAGzsG,KAAK,KAAKxS,IAAIqqG,GAAG4U,GAAGzsG,KAAK,KAAKxS,IAAIsoG,IAAG,WAAW,KAAO,EAAFt/D,KAAMshE,IAAI,IAAG78F,EAAE,SAAS,CAAC,OAAO8oF,GAAG1oF,IAAI,KAAK,EAAEJ,EAAE+0B,GAAG,MAAM,KAAK,EAAE/0B,EAAEgnF,GAAG,MAAM,KAAK,GAAwC,QAAQhnF,EAAEknF,SAApC,KAAK,UAAUlnF,EAAEsnF,GAAsBtnF,EAAEyxG,GAAGzxG,EAAE0xG,GAAG3sG,KAAK,KAAKxS,GAAG,CAACA,EAAE++G,iBAAiBrgG,EAAE1e,EAAE2+G,aAAalxG,CAAC,CAAC,CAC7c,SAAS0xG,GAAGn/G,EAAE0e,GAAc,GAAX6/F,IAAI,EAAEC,GAAG,EAAK,KAAO,EAAFx1E,IAAK,MAAMlkC,MAAMzB,EAAE,MAAM,IAAIoK,EAAEzN,EAAE2+G,aAAa,GAAGS,MAAMp/G,EAAE2+G,eAAelxG,EAAE,OAAO,KAAK,IAAII,EAAE6nF,GAAG11F,EAAEA,IAAI+lC,GAAEgD,GAAE,GAAG,GAAG,IAAIl7B,EAAE,OAAO,KAAK,GAAG,KAAO,GAAFA,IAAO,KAAKA,EAAE7N,EAAE6+G,eAAengG,EAAEA,EAAE2gG,GAAGr/G,EAAE6N,OAAO,CAAC6Q,EAAE7Q,EAAE,IAAIjP,EAAEoqC,GAAEA,IAAG,EAAE,IAAI36B,EAAEixG,KAAgD,IAAxCv5E,KAAI/lC,GAAG+oC,KAAIrqB,IAAEu/F,GAAG,KAAK7C,GAAGp1E,KAAI,IAAIu5E,GAAGv/G,EAAE0e,UAAU8gG,KAAK,KAAK,CAAC,MAAMr+G,GAAGs+G,GAAGz/G,EAAEmB,EAAE,CAAUwrG,KAAK8Q,GAAG/pB,QAAQrlF,EAAE26B,GAAEpqC,EAAE,OAAOiqC,GAAEnqB,EAAE,GAAGqnB,GAAE,KAAKgD,GAAE,EAAErqB,EAAEY,GAAE,CAAC,GAAG,IAAIZ,EAAE,CAAyC,GAAxC,IAAIA,IAAY,KAAR9f,EAAEq3F,GAAGj2F,MAAW6N,EAAEjP,EAAE8f,EAAEghG,GAAG1/G,EAAEpB,KAAQ,IAAI8f,EAAE,MAAMjR,EAAEmwG,GAAG2B,GAAGv/G,EAAE,GAAGy+G,GAAGz+G,EAAE6N,GAAG6wG,GAAG1+G,EAAEgmC,MAAKv4B,EAAE,GAAG,IAAIiR,EAAE+/F,GAAGz+G,EAAE6N,OAChf,CAAuB,GAAtBjP,EAAEoB,EAAE0zF,QAAQR,UAAa,KAAO,GAAFrlF,KAGnC,SAAY7N,GAAG,IAAI,IAAI0e,EAAE1e,IAAI,CAAC,GAAW,MAAR0e,EAAEm3C,MAAY,CAAC,IAAIpoD,EAAEiR,EAAEovF,YAAY,GAAG,OAAOrgG,GAAe,QAAXA,EAAEA,EAAEwmG,QAAiB,IAAI,IAAIpmG,EAAE,EAAEA,EAAEJ,EAAE1N,OAAO8N,IAAI,CAAC,IAAIjP,EAAE6O,EAAEI,GAAGQ,EAAEzP,EAAEg1G,YAAYh1G,EAAEA,EAAE2C,MAAM,IAAI,IAAImhG,GAAGr0F,IAAIzP,GAAG,OAAM,CAAE,CAAC,MAAM6f,GAAG,OAAM,CAAE,CAAC,CAAC,CAAW,GAAVhR,EAAEiR,EAAE80E,MAAwB,MAAf90E,EAAEw7F,cAAoB,OAAOzsG,EAAEA,EAAE3L,OAAO4c,EAAEA,EAAEjR,MAAM,CAAC,GAAGiR,IAAI1e,EAAE,MAAM,KAAK,OAAO0e,EAAE+0E,SAAS,CAAC,GAAG,OAAO/0E,EAAE5c,QAAQ4c,EAAE5c,SAAS9B,EAAE,OAAM,EAAG0e,EAAEA,EAAE5c,MAAM,CAAC4c,EAAE+0E,QAAQ3xF,OAAO4c,EAAE5c,OAAO4c,EAAEA,EAAE+0E,OAAO,CAAC,CAAC,OAAM,CAAE,CAHvXksB,CAAG/gH,KAAe,KAAV8f,EAAE2gG,GAAGr/G,EAAE6N,MAAmB,KAARQ,EAAE4nF,GAAGj2F,MAAW6N,EAAEQ,EAAEqQ,EAAEghG,GAAG1/G,EAAEqO,KAAK,IAAIqQ,GAAG,MAAMjR,EAAEmwG,GAAG2B,GAAGv/G,EAAE,GAAGy+G,GAAGz+G,EAAE6N,GAAG6wG,GAAG1+G,EAAEgmC,MAAKv4B,EAAqC,OAAnCzN,EAAE4/G,aAAahhH,EAAEoB,EAAE6/G,cAAchyG,EAAS6Q,GAAG,KAAK,EAAE,KAAK,EAAE,MAAM5Z,MAAMzB,EAAE,MAAM,KAAK,EAC8B,KAAK,EAAEy8G,GAAG9/G,EAAE+9G,GAAGE,IAAI,MAD7B,KAAK,EAAU,GAARQ,GAAGz+G,EAAE6N,IAAS,UAAFA,KAAeA,GAAiB,IAAb6Q,EAAEs+F,GAAG,IAAIh3E,MAAU,CAAC,GAAG,IAAI0vD,GAAG11F,EAAE,GAAG,MAAyB,KAAnBpB,EAAEoB,EAAE41F,gBAAqB/nF,KAAKA,EAAE,CAACq4B,KAAIlmC,EAAE61F,aAAa71F,EAAE41F,eAAeh3F,EAAE,KAAK,CAACoB,EAAE+/G,cAAc7X,GAAG4X,GAAGttG,KAAK,KAAKxS,EAAE+9G,GAAGE,IAAIv/F,GAAG,KAAK,CAACohG,GAAG9/G,EAAE+9G,GAAGE,IAAI,MAAM,KAAK,EAAU,GAARQ,GAAGz+G,EAAE6N,IAAS,QAAFA,KAC9eA,EAAE,MAAqB,IAAf6Q,EAAE1e,EAAEq2F,WAAez3F,GAAG,EAAE,EAAEiP,GAAG,CAAC,IAAI4Q,EAAE,GAAGy2E,GAAGrnF,GAAGQ,EAAE,GAAGoQ,GAAEA,EAAEC,EAAED,IAAK7f,IAAIA,EAAE6f,GAAG5Q,IAAIQ,CAAC,CAAqG,GAApGR,EAAEjP,EAAqG,IAA3FiP,GAAG,KAAXA,EAAEm4B,KAAIn4B,GAAW,IAAI,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAKA,EAAE,KAAK,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAK2vG,GAAG3vG,EAAE,OAAOA,GAAU,CAAC7N,EAAE+/G,cAAc7X,GAAG4X,GAAGttG,KAAK,KAAKxS,EAAE+9G,GAAGE,IAAIpwG,GAAG,KAAK,CAACiyG,GAAG9/G,EAAE+9G,GAAGE,IAAI,MAA+B,QAAQ,MAAMn5G,MAAMzB,EAAE,MAAO,CAAC,CAAW,OAAVq7G,GAAG1+G,EAAEgmC,MAAYhmC,EAAE2+G,eAAelxG,EAAE0xG,GAAG3sG,KAAK,KAAKxS,GAAG,IAAI,CACrX,SAAS0/G,GAAG1/G,EAAE0e,GAAG,IAAIjR,EAAEqwG,GAA2G,OAAxG99G,EAAE0zF,QAAQN,cAAc8E,eAAeqnB,GAAGv/G,EAAE0e,GAAGm3C,OAAO,KAAe,KAAV71D,EAAEq/G,GAAGr/G,EAAE0e,MAAWA,EAAEq/F,GAAGA,GAAGtwG,EAAE,OAAOiR,GAAGo8F,GAAGp8F,IAAW1e,CAAC,CAAC,SAAS86G,GAAG96G,GAAG,OAAO+9G,GAAGA,GAAG/9G,EAAE+9G,GAAG77G,KAAKjC,MAAM89G,GAAG/9G,EAAE,CAE5L,SAASy+G,GAAGz+G,EAAE0e,GAAuD,IAApDA,IAAItP,GAAGsP,IAAIm/F,GAAG79G,EAAE41F,gBAAgBl3E,EAAE1e,EAAE61F,cAAcn3E,EAAM1e,EAAEA,EAAE4+G,gBAAgB,EAAElgG,GAAG,CAAC,IAAIjR,EAAE,GAAGynF,GAAGx2E,GAAG7Q,EAAE,GAAGJ,EAAEzN,EAAEyN,IAAI,EAAEiR,IAAI7Q,CAAC,CAAC,CAAC,SAASoxG,GAAGj/G,GAAG,GAAG,KAAO,EAAFgpC,IAAK,MAAMlkC,MAAMzB,EAAE,MAAM+7G,KAAK,IAAI1gG,EAAEg3E,GAAG11F,EAAE,GAAG,GAAG,KAAO,EAAF0e,GAAK,OAAOggG,GAAG1+G,EAAEgmC,MAAK,KAAK,IAAIv4B,EAAE4xG,GAAGr/G,EAAE0e,GAAG,GAAG,IAAI1e,EAAEuqF,KAAK,IAAI98E,EAAE,CAAC,IAAII,EAAEooF,GAAGj2F,GAAG,IAAI6N,IAAI6Q,EAAE7Q,EAAEJ,EAAEiyG,GAAG1/G,EAAE6N,GAAG,CAAC,GAAG,IAAIJ,EAAE,MAAMA,EAAEmwG,GAAG2B,GAAGv/G,EAAE,GAAGy+G,GAAGz+G,EAAE0e,GAAGggG,GAAG1+G,EAAEgmC,MAAKv4B,EAAE,GAAG,IAAIA,EAAE,MAAM3I,MAAMzB,EAAE,MAAiF,OAA3ErD,EAAE4/G,aAAa5/G,EAAE0zF,QAAQR,UAAUlzF,EAAE6/G,cAAcnhG,EAAEohG,GAAG9/G,EAAE+9G,GAAGE,IAAIS,GAAG1+G,EAAEgmC,MAAY,IAAI,CACvd,SAASg6E,GAAGhgH,EAAE0e,GAAG,IAAIjR,EAAEu7B,GAAEA,IAAG,EAAE,IAAI,OAAOhpC,EAAE0e,EAAE,CAAC,QAAY,KAAJsqB,GAAEv7B,KAAU2tG,GAAGp1E,KAAI,IAAIokE,IAAIE,KAAK,CAAC,CAAC,SAAS2V,GAAGjgH,GAAG,OAAOm+G,IAAI,IAAIA,GAAG5zB,KAAK,KAAO,EAAFvhD,KAAMo2E,KAAK,IAAI1gG,EAAEsqB,GAAEA,IAAG,EAAE,IAAIv7B,EAAEkwG,GAAG7kB,WAAWjrF,EAAEqR,GAAE,IAAI,GAAGy+F,GAAG7kB,WAAW,KAAK55E,GAAE,EAAElf,EAAE,OAAOA,GAAG,CAAC,QAAQkf,GAAErR,EAAE8vG,GAAG7kB,WAAWrrF,EAAM,KAAO,GAAXu7B,GAAEtqB,KAAa4rF,IAAI,CAAC,CAAC,SAAS+Q,KAAK7C,GAAGD,GAAG7kB,QAAQ10E,GAAEu5F,GAAG,CAChT,SAASgH,GAAGv/G,EAAE0e,GAAG1e,EAAE4/G,aAAa,KAAK5/G,EAAE6/G,cAAc,EAAE,IAAIpyG,EAAEzN,EAAE+/G,cAAiD,IAAlC,IAAItyG,IAAIzN,EAAE+/G,eAAe,EAAE5X,GAAG16F,IAAO,OAAOo7B,GAAE,IAAIp7B,EAAEo7B,GAAE/mC,OAAO,OAAO2L,GAAG,CAAC,IAAII,EAAEJ,EAAQ,OAANy9F,GAAGr9F,GAAUA,EAAE08E,KAAK,KAAK,EAA6B,QAA3B18E,EAAEA,EAAEnD,KAAK6kD,yBAA4B,IAAS1hD,GAAG+7F,KAAK,MAAM,KAAK,EAAEyH,KAAKryF,GAAEsqF,IAAItqF,GAAEypB,IAAGkpE,KAAK,MAAM,KAAK,EAAEJ,GAAG1jG,GAAG,MAAM,KAAK,EAAEwjG,KAAK,MAAM,KAAK,GAAc,KAAK,GAAGryF,GAAEO,IAAG,MAAM,KAAK,GAAGqtF,GAAG/+F,EAAEnD,KAAK+/E,UAAU,MAAM,KAAK,GAAG,KAAK,GAAG4wB,KAAK5tG,EAAEA,EAAE3L,MAAM,CAAqE,GAApEikC,GAAE/lC,EAAE6oC,GAAE7oC,EAAEswG,GAAGtwG,EAAE0zF,QAAQ,MAAM3qD,GAAEyvE,GAAG95F,EAAEY,GAAE,EAAEs+F,GAAG,KAAKxuG,GAAGyuG,GAAGphD,GAAG,EAAEshD,GAAGD,GAAG,KAAQ,OAAOvQ,GAAG,CAAC,IAAI7uF,EAC1f,EAAEA,EAAE6uF,GAAGxtG,OAAO2e,IAAI,GAA2B,QAAhB7Q,GAARJ,EAAE8/F,GAAG7uF,IAAOgvF,aAAqB,CAACjgG,EAAEigG,YAAY,KAAK,IAAI9uG,EAAEiP,EAAEzM,KAAKiN,EAAEZ,EAAE0gG,QAAQ,GAAG,OAAO9/F,EAAE,CAAC,IAAIoQ,EAAEpQ,EAAEjN,KAAKiN,EAAEjN,KAAKxC,EAAEiP,EAAEzM,KAAKqd,CAAC,CAAChR,EAAE0gG,QAAQtgG,CAAC,CAAC0/F,GAAG,IAAI,CAAC,OAAOvtG,CAAC,CAC3K,SAASy/G,GAAGz/G,EAAE0e,GAAG,OAAE,CAAC,IAAIjR,EAAEo7B,GAAE,IAAuB,GAAnB8jE,KAAKkF,GAAGne,QAAQgf,GAAMT,GAAG,CAAC,IAAI,IAAIpkG,EAAE26B,GAAE4qD,cAAc,OAAOvlF,GAAG,CAAC,IAAIjP,EAAEiP,EAAEilG,MAAM,OAAOl0G,IAAIA,EAAEuvG,QAAQ,MAAMtgG,EAAEA,EAAEzM,IAAI,CAAC6wG,IAAG,CAAE,CAA4C,GAA3CD,GAAG,EAAEjzF,GAAEwpB,GAAEC,GAAE,KAAK0pE,IAAG,EAAGC,GAAG,EAAEuL,GAAGhqB,QAAQ,KAAQ,OAAOjmF,GAAG,OAAOA,EAAE3L,OAAO,CAACwd,GAAE,EAAEs+F,GAAGl/F,EAAEmqB,GAAE,KAAK,KAAK,CAAC7oC,EAAE,CAAC,IAAIqO,EAAErO,EAAEye,EAAEhR,EAAE3L,OAAOX,EAAEsM,EAAEO,EAAE0Q,EAAqB,GAAnBA,EAAEqqB,GAAE5nC,EAAE00D,OAAO,MAAS,OAAO7nD,GAAG,kBAAkBA,GAAG,oBAAoBA,EAAExM,KAAK,CAAC,IAAI4B,EAAE4K,EAAEN,EAAEvM,EAAEunC,EAAEh7B,EAAE68E,IAAI,GAAG,KAAY,EAAP78E,EAAE8pB,QAAU,IAAIkR,GAAG,KAAKA,GAAG,KAAKA,GAAG,CAAC,IAAIzpC,EAAEyO,EAAEwlF,UAAUj0F,GAAGyO,EAAEogG,YAAY7uG,EAAE6uG,YAAYpgG,EAAE0lF,cAAcn0F,EAAEm0F,cACxe1lF,EAAEy/F,MAAMluG,EAAEkuG,QAAQz/F,EAAEogG,YAAY,KAAKpgG,EAAE0lF,cAAc,KAAK,CAAC,IAAI50E,EAAEg5F,GAAG/4F,GAAG,GAAG,OAAOD,EAAE,CAACA,EAAEq3C,QAAQ,IAAI4hD,GAAGj5F,EAAEC,EAAEtd,EAAEkN,EAAEqQ,GAAU,EAAPF,EAAEgZ,MAAQ6/E,GAAGhpG,EAAEjL,EAAEsb,GAAO1Q,EAAE5K,EAAE,IAAI5C,GAAZke,EAAEF,GAAcsvF,YAAY,GAAG,OAAOttG,EAAE,CAAC,IAAI7B,EAAE,IAAI8oF,IAAI9oF,EAAE6mC,IAAIx3B,GAAG0Q,EAAEovF,YAAYnvG,CAAC,MAAM6B,EAAEglC,IAAIx3B,GAAG,MAAMhO,CAAC,CAAM,GAAG,KAAO,EAAF0e,GAAK,CAAC24F,GAAGhpG,EAAEjL,EAAEsb,GAAGo7F,KAAK,MAAM95G,CAAC,CAACgO,EAAElJ,MAAMzB,EAAE,KAAM,MAAM,GAAGyiC,IAAU,EAAP3kC,EAAEq2B,KAAO,CAAC,IAAIyR,EAAEuuE,GAAG/4F,GAAG,GAAG,OAAOwqB,EAAE,CAAC,KAAa,MAARA,EAAE4sB,SAAe5sB,EAAE4sB,OAAO,KAAK4hD,GAAGxuE,EAAExqB,EAAEtd,EAAEkN,EAAEqQ,GAAG0tF,GAAGmK,GAAGvoG,EAAE7M,IAAI,MAAMnB,CAAC,CAAC,CAACqO,EAAEL,EAAEuoG,GAAGvoG,EAAE7M,GAAG,IAAIme,KAAIA,GAAE,GAAG,OAAOw+F,GAAGA,GAAG,CAACzvG,GAAGyvG,GAAG57G,KAAKmM,GAAGA,EAAEoQ,EAAE,EAAE,CAAC,OAAOpQ,EAAEk8E,KAAK,KAAK,EAAEl8E,EAAEwnD,OAAO,MACpfn3C,IAAIA,EAAErQ,EAAE8+F,OAAOzuF,EAAkBynB,GAAG93B,EAAbyoG,GAAGzoG,EAAEL,EAAE0Q,IAAW,MAAM1e,EAAE,KAAK,EAAEmB,EAAE6M,EAAE,IAAIqR,EAAEhR,EAAE3D,KAAKyH,EAAE9D,EAAE0jF,UAAU,GAAG,KAAa,IAAR1jF,EAAEwnD,SAAa,oBAAoBx2C,EAAEuwC,0BAA0B,OAAOz9C,GAAG,oBAAoBA,EAAE+kG,oBAAoB,OAAOC,KAAKA,GAAGlzG,IAAIkO,KAAK,CAAC9D,EAAEwnD,OAAO,MAAMn3C,IAAIA,EAAErQ,EAAE8+F,OAAOzuF,EAAkBynB,GAAG93B,EAAb4oG,GAAG5oG,EAAElN,EAAEud,IAAW,MAAM1e,CAAC,EAAEqO,EAAEA,EAAEvM,MAAM,OAAO,OAAOuM,EAAE,CAAC6xG,GAAGzyG,EAAE,CAAC,MAAMy5F,GAAIxoF,EAAEwoF,EAAGr+D,KAAIp7B,GAAG,OAAOA,IAAIo7B,GAAEp7B,EAAEA,EAAE3L,QAAQ,QAAQ,CAAC,KAAK,CAAS,CAAC,SAASw9G,KAAK,IAAIt/G,EAAEy9G,GAAG/pB,QAAsB,OAAd+pB,GAAG/pB,QAAQgf,GAAU,OAAO1yG,EAAE0yG,GAAG1yG,CAAC,CACrd,SAAS85G,KAAQ,IAAIx6F,IAAG,IAAIA,IAAG,IAAIA,KAAEA,GAAE,GAAE,OAAOymB,IAAG,KAAQ,UAAH02B,KAAe,KAAQ,UAAHohD,KAAeY,GAAG14E,GAAEgD,GAAE,CAAC,SAASs2E,GAAGr/G,EAAE0e,GAAG,IAAIjR,EAAEu7B,GAAEA,IAAG,EAAE,IAAIn7B,EAAEyxG,KAAqC,IAA7Bv5E,KAAI/lC,GAAG+oC,KAAIrqB,IAAEu/F,GAAG,KAAKsB,GAAGv/G,EAAE0e,UAAUyhG,KAAK,KAAK,CAAC,MAAMvhH,GAAG6gH,GAAGz/G,EAAEpB,EAAE,CAAgC,GAAtB+tG,KAAK3jE,GAAEv7B,EAAEgwG,GAAG/pB,QAAQ7lF,EAAK,OAAOg7B,GAAE,MAAM/jC,MAAMzB,EAAE,MAAiB,OAAX0iC,GAAE,KAAKgD,GAAE,EAASzpB,EAAC,CAAC,SAAS6gG,KAAK,KAAK,OAAOt3E,IAAGu3E,GAAGv3E,GAAE,CAAC,SAAS22E,KAAK,KAAK,OAAO32E,KAAIorD,MAAMmsB,GAAGv3E,GAAE,CAAC,SAASu3E,GAAGpgH,GAAG,IAAI0e,EAAE6+F,GAAGv9G,EAAEkzF,UAAUlzF,EAAEw4G,IAAIx4G,EAAEisG,cAAcjsG,EAAE0rG,aAAa,OAAOhtF,EAAEwhG,GAAGlgH,GAAG6oC,GAAEnqB,EAAEg/F,GAAGhqB,QAAQ,IAAI,CAC1d,SAASwsB,GAAGlgH,GAAG,IAAI0e,EAAE1e,EAAE,EAAE,CAAC,IAAIyN,EAAEiR,EAAEw0E,UAAqB,GAAXlzF,EAAE0e,EAAE5c,OAAU,KAAa,MAAR4c,EAAEm3C,QAAc,GAAgB,QAAbpoD,EAAEotG,GAAGptG,EAAEiR,EAAE85F,KAAkB,YAAJ3vE,GAAEp7B,OAAc,CAAW,GAAG,QAAbA,EAAE6tG,GAAG7tG,EAAEiR,IAAmC,OAAnBjR,EAAEooD,OAAO,WAAMhtB,GAAEp7B,GAAS,GAAG,OAAOzN,EAAmE,OAAXsf,GAAE,OAAEupB,GAAE,MAA5D7oC,EAAE61D,OAAO,MAAM71D,EAAEk6G,aAAa,EAAEl6G,EAAEwrG,UAAU,IAA4B,CAAa,GAAG,QAAf9sF,EAAEA,EAAE+0E,SAAyB,YAAJ5qD,GAAEnqB,GAASmqB,GAAEnqB,EAAE1e,CAAC,OAAO,OAAO0e,GAAG,IAAIY,KAAIA,GAAE,EAAE,CAAC,SAASwgG,GAAG9/G,EAAE0e,EAAEjR,GAAG,IAAII,EAAEqR,GAAEtgB,EAAE++G,GAAG7kB,WAAW,IAAI6kB,GAAG7kB,WAAW,KAAK55E,GAAE,EAC3Y,SAAYlf,EAAE0e,EAAEjR,EAAEI,GAAG,GAAGuxG,WAAW,OAAOjB,IAAI,GAAG,KAAO,EAAFn1E,IAAK,MAAMlkC,MAAMzB,EAAE,MAAMoK,EAAEzN,EAAE4/G,aAAa,IAAIhhH,EAAEoB,EAAE6/G,cAAc,GAAG,OAAOpyG,EAAE,OAAO,KAA2C,GAAtCzN,EAAE4/G,aAAa,KAAK5/G,EAAE6/G,cAAc,EAAKpyG,IAAIzN,EAAE0zF,QAAQ,MAAM5uF,MAAMzB,EAAE,MAAMrD,EAAE2+G,aAAa,KAAK3+G,EAAE++G,iBAAiB,EAAE,IAAI1wG,EAAEZ,EAAE0/F,MAAM1/F,EAAEs/F,WAA8J,GA1NtT,SAAY/sG,EAAE0e,GAAG,IAAIjR,EAAEzN,EAAE21F,cAAcj3E,EAAE1e,EAAE21F,aAAaj3E,EAAE1e,EAAE41F,eAAe,EAAE51F,EAAE61F,YAAY,EAAE71F,EAAE6+G,cAAcngG,EAAE1e,EAAEqgH,kBAAkB3hG,EAAE1e,EAAE81F,gBAAgBp3E,EAAEA,EAAE1e,EAAE+1F,cAAc,IAAIloF,EAAE7N,EAAEq2F,WAAW,IAAIr2F,EAAEA,EAAE4+G,gBAAgB,EAAEnxG,GAAG,CAAC,IAAI7O,EAAE,GAAGs2F,GAAGznF,GAAGY,EAAE,GAAGzP,EAAE8f,EAAE9f,GAAG,EAAEiP,EAAEjP,IAAI,EAAEoB,EAAEpB,IAAI,EAAE6O,IAAIY,CAAC,CAAC,CA0N5GiyG,CAAGtgH,EAAEqO,GAAGrO,IAAI+lC,KAAI8C,GAAE9C,GAAE,KAAKgD,GAAE,GAAG,KAAoB,KAAft7B,EAAEysG,eAAoB,KAAa,KAARzsG,EAAEooD,QAAaqoD,KAAKA,IAAG,EAAGgB,GAAGvqB,IAAG,WAAgB,OAALyqB,KAAY,IAAI,KAAI/wG,EAAE,KAAa,MAARZ,EAAEooD,OAAgB,KAAoB,MAAfpoD,EAAEysG,eAAqB7rG,EAAE,CAACA,EAAEsvG,GAAG7kB,WAAW6kB,GAAG7kB,WAAW,KAChf,IAAIr6E,EAAES,GAAEA,GAAE,EAAE,IAAI/d,EAAE6nC,GAAEA,IAAG,EAAE00E,GAAGhqB,QAAQ,KA1CpC,SAAY1zF,EAAE0e,GAAgB,GAAbopF,GAAGprC,GAAa2mC,GAAVrjG,EAAEkjG,MAAc,CAAC,GAAG,mBAAmBljG,EAAE,IAAIyN,EAAE,CAACquC,MAAM97C,EAAE2jG,eAAe9nD,IAAI77C,EAAE4jG,mBAAmB5jG,EAAE,CAA8C,IAAI6N,GAAjDJ,GAAGA,EAAEzN,EAAEssF,gBAAgB7+E,EAAEo2F,aAAav/F,QAAew/F,cAAcr2F,EAAEq2F,eAAe,GAAGj2F,GAAG,IAAIA,EAAEk2F,WAAW,CAACt2F,EAAEI,EAAEm2F,WAAW,IAAIplG,EAAEiP,EAAEo2F,aAAa51F,EAAER,EAAEq2F,UAAUr2F,EAAEA,EAAEs2F,YAAY,IAAI12F,EAAEigF,SAASr/E,EAAEq/E,QAAQ,CAAC,MAAMroE,GAAG5X,EAAE,KAAK,MAAMzN,CAAC,CAAC,IAAIye,EAAE,EAAEtd,GAAG,EAAE6M,GAAG,EAAE5K,EAAE,EAAEsK,EAAE,EAAEg7B,EAAE1oC,EAAEf,EAAE,KAAKyf,EAAE,OAAO,CAAC,IAAI,IAAIF,EAAKkqB,IAAIj7B,GAAG,IAAI7O,GAAG,IAAI8pC,EAAEglD,WAAWvsF,EAAEsd,EAAE7f,GAAG8pC,IAAIr6B,GAAG,IAAIR,GAAG,IAAI66B,EAAEglD,WAAW1/E,EAAEyQ,EAAE5Q,GAAG,IAAI66B,EAAEglD,WAAWjvE,GACnfiqB,EAAEilD,UAAU5tF,QAAW,QAAQye,EAAEkqB,EAAEsiB,aAAkB/rD,EAAEypC,EAAEA,EAAElqB,EAAE,OAAO,CAAC,GAAGkqB,IAAI1oC,EAAE,MAAM0e,EAA8C,GAA5Czf,IAAIwO,KAAKrK,IAAIxE,IAAIuC,EAAEsd,GAAGxf,IAAIoP,KAAKX,IAAIG,IAAIG,EAAEyQ,GAAM,QAAQD,EAAEkqB,EAAEo6D,aAAa,MAAU7jG,GAAJypC,EAAEzpC,GAAM20B,UAAU,CAAC8U,EAAElqB,CAAC,CAAC/Q,GAAG,IAAItM,IAAI,IAAI6M,EAAE,KAAK,CAAC8tC,MAAM36C,EAAE06C,IAAI7tC,EAAE,MAAMP,EAAE,IAAI,CAACA,EAAEA,GAAG,CAACquC,MAAM,EAAED,IAAI,EAAE,MAAMpuC,EAAE,KAA+C,IAA1Cs6F,GAAG,CAACvE,YAAYxjG,EAAEyjG,eAAeh2F,GAAGivD,IAAG,EAAOz2B,GAAEvnB,EAAE,OAAOunB,IAAG,GAAOjmC,GAAJ0e,EAAEunB,IAAMutD,MAAM,KAAoB,KAAf90E,EAAEw7F,eAAoB,OAAOl6G,EAAEA,EAAE8B,OAAO4c,EAAEunB,GAAEjmC,OAAO,KAAK,OAAOimC,IAAG,CAACvnB,EAAEunB,GAAE,IAAI,IAAIzlC,EAAEke,EAAEw0E,UAAU,GAAG,KAAa,KAARx0E,EAAEm3C,OAAY,OAAOn3C,EAAE6rE,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GACvK,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,MAA3W,KAAK,EAAE,GAAG,OAAO/pF,EAAE,CAAC,IAAI7B,EAAE6B,EAAEyrG,cAAchjE,EAAEzoC,EAAE4yF,cAAct0E,EAAEJ,EAAEqzE,UAAU1yE,EAAEP,EAAEixF,wBAAwBrxF,EAAEqoE,cAAcroE,EAAEhU,KAAK/L,EAAE2tG,GAAG5tF,EAAEhU,KAAK/L,GAAGsqC,GAAGnqB,EAAEw+F,oCAAoCj+F,CAAC,CAAC,MAAM,KAAK,EAAE,IAAIlN,EAAEuM,EAAEqzE,UAAUoG,cAAc,IAAIhmF,EAAEu7E,SAASv7E,EAAEof,YAAY,GAAG,IAAIpf,EAAEu7E,UAAUv7E,EAAEuxF,iBAAiBvxF,EAAE0hB,YAAY1hB,EAAEuxF,iBAAiB,MAAyC,QAAQ,MAAM5+F,MAAMzB,EAAE,MAAO,CAAC,MAAMgiB,GAAGsjB,GAAEjqB,EAAEA,EAAE5c,OAAOujB,EAAE,CAAa,GAAG,QAAfrlB,EAAE0e,EAAE+0E,SAAoB,CAACzzF,EAAE8B,OAAO4c,EAAE5c,OAAOmkC,GAAEjmC,EAAE,KAAK,CAACimC,GAAEvnB,EAAE5c,MAAM,CAACtB,EAAEo7G,GAAGA,IAAG,CAAW,CAwCld2E,CAAGvgH,EAAEyN,GAAGovG,GAAGpvG,EAAEzN,GAAGujG,GAAGwE,IAAIrrC,KAAKorC,GAAGC,GAAGD,GAAG,KAAK9nG,EAAE0zF,QAAQjmF,EAAEyvG,GAAGzvG,EAAEzN,EAAEpB,GAAGu1F,KAAKnrD,GAAE7nC,EAAE+d,GAAET,EAAEk/F,GAAG7kB,WAAWzqF,CAAC,MAAMrO,EAAE0zF,QAAQjmF,EAAsF,GAApFywG,KAAKA,IAAG,EAAGC,GAAGn+G,EAAEo+G,GAAGx/G,GAAGyP,EAAErO,EAAE21F,aAAa,IAAItnF,IAAI8oG,GAAG,MAjOmJ,SAAYn3G,GAAG,GAAG0hC,IAAI,oBAAoBA,GAAG8+E,kBAAkB,IAAI9+E,GAAG8+E,kBAAkBvrB,GAAGj1F,OAAE,EAAO,OAAuB,IAAhBA,EAAE0zF,QAAQ79B,OAAW,CAAC,MAAMn3C,GAAG,CAAC,CAiOxR+hG,CAAGhzG,EAAEskF,WAAa2sB,GAAG1+G,EAAEgmC,MAAQ,OAAOtnB,EAAE,IAAI7Q,EAAE7N,EAAE0gH,mBAAmBjzG,EAAE,EAAEA,EAAEiR,EAAE3e,OAAO0N,IAAI7O,EAAE8f,EAAEjR,GAAGI,EAAEjP,EAAE2C,MAAM,CAAC61G,eAAex4G,EAAEw5D,MAAMq+C,OAAO73G,EAAE63G,SAAS,GAAGM,GAAG,MAAMA,IAAG,EAAG/2G,EAAEg3G,GAAGA,GAAG,KAAKh3G,EAAE,KAAQ,EAAHo+G,KAAO,IAAIp+G,EAAEuqF,KAAK60B,KAAK/wG,EAAErO,EAAE21F,aAAa,KAAO,EAAFtnF,GAAKrO,IAAIs+G,GAAGD,MAAMA,GAAG,EAAEC,GAAGt+G,GAAGq+G,GAAG,EAAE/T,IAAgB,CAFxFqW,CAAG3gH,EAAE0e,EAAEjR,EAAEI,EAAE,CAAC,QAAQ8vG,GAAG7kB,WAAWl6F,EAAEsgB,GAAErR,CAAC,CAAC,OAAO,IAAI,CAGhc,SAASuxG,KAAK,GAAG,OAAOjB,GAAG,CAAC,IAAIn+G,EAAEu2F,GAAG6nB,IAAI1/F,EAAEi/F,GAAG7kB,WAAWrrF,EAAEyR,GAAE,IAAmC,GAA/By+F,GAAG7kB,WAAW,KAAK55E,GAAE,GAAGlf,EAAE,GAAGA,EAAK,OAAOm+G,GAAG,IAAItwG,GAAE,MAAO,CAAmB,GAAlB7N,EAAEm+G,GAAGA,GAAG,KAAKC,GAAG,EAAK,KAAO,EAAFp1E,IAAK,MAAMlkC,MAAMzB,EAAE,MAAM,IAAIzE,EAAEoqC,GAAO,IAALA,IAAG,EAAM/C,GAAEjmC,EAAE0zF,QAAQ,OAAOztD,IAAG,CAAC,IAAI53B,EAAE43B,GAAExnB,EAAEpQ,EAAEmlF,MAAM,GAAG,KAAa,GAARvtD,GAAE4vB,OAAU,CAAC,IAAI10D,EAAEkN,EAAEm9F,UAAU,GAAG,OAAOrqG,EAAE,CAAC,IAAI,IAAI6M,EAAE,EAAEA,EAAE7M,EAAEpB,OAAOiO,IAAI,CAAC,IAAI5K,EAAEjC,EAAE6M,GAAG,IAAIi4B,GAAE7iC,EAAE,OAAO6iC,IAAG,CAAC,IAAIv4B,EAAEu4B,GAAE,OAAOv4B,EAAE68E,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAGsxB,GAAG,EAAEnuG,EAAEW,GAAG,IAAIq6B,EAAEh7B,EAAE8lF,MAAM,GAAG,OAAO9qD,EAAEA,EAAE5mC,OAAO4L,EAAEu4B,GAAEyC,OAAO,KAAK,OAAOzC,IAAG,CAAK,IAAIhnC,GAARyO,EAAEu4B,IAAUwtD,QAAQj1E,EAAE9Q,EAAE5L,OAAa,GAANk6G,GAAGtuG,GAAMA,IACnftK,EAAE,CAAC6iC,GAAE,KAAK,KAAK,CAAC,GAAG,OAAOhnC,EAAE,CAACA,EAAE6C,OAAO0c,EAAEynB,GAAEhnC,EAAE,KAAK,CAACgnC,GAAEznB,CAAC,CAAC,CAAC,CAAC,IAAIhe,EAAE6N,EAAE6kF,UAAU,GAAG,OAAO1yF,EAAE,CAAC,IAAI7B,EAAE6B,EAAEgzF,MAAM,GAAG,OAAO70F,EAAE,CAAC6B,EAAEgzF,MAAM,KAAK,EAAE,CAAC,IAAIvqD,EAAEtqC,EAAE80F,QAAQ90F,EAAE80F,QAAQ,KAAK90F,EAAEsqC,CAAC,OAAO,OAAOtqC,EAAE,CAAC,CAACsnC,GAAE53B,CAAC,CAAC,CAAC,GAAG,KAAoB,KAAfA,EAAE6rG,eAAoB,OAAOz7F,EAAEA,EAAE3c,OAAOuM,EAAE43B,GAAExnB,OAAOC,EAAE,KAAK,OAAOunB,IAAG,CAAK,GAAG,KAAa,MAApB53B,EAAE43B,IAAY4vB,OAAY,OAAOxnD,EAAEk8E,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAGsxB,GAAG,EAAExtG,EAAEA,EAAEvM,QAAQ,IAAIgd,EAAEzQ,EAAEolF,QAAQ,GAAG,OAAO30E,EAAE,CAACA,EAAEhd,OAAOuM,EAAEvM,OAAOmkC,GAAEnnB,EAAE,MAAMJ,CAAC,CAACunB,GAAE53B,EAAEvM,MAAM,CAAC,CAAC,IAAIud,EAAErf,EAAE0zF,QAAQ,IAAIztD,GAAE5mB,EAAE,OAAO4mB,IAAG,CAAK,IAAI9zB,GAARsM,EAAEwnB,IAAUutD,MAAM,GAAG,KAAoB,KAAf/0E,EAAEy7F,eAAoB,OAClf/nG,EAAEA,EAAErQ,OAAO2c,EAAEwnB,GAAE9zB,OAAOuM,EAAE,IAAID,EAAEY,EAAE,OAAO4mB,IAAG,CAAK,GAAG,KAAa,MAApB9kC,EAAE8kC,IAAY4vB,OAAY,IAAI,OAAO10D,EAAEopF,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAGuxB,GAAG,EAAE36G,GAAG,CAAC,MAAM+lG,GAAIv+D,GAAExnC,EAAEA,EAAEW,OAAOolG,EAAG,CAAC,GAAG/lG,IAAIsd,EAAE,CAACwnB,GAAE,KAAK,MAAMvnB,CAAC,CAAC,IAAI2G,EAAElkB,EAAEsyF,QAAQ,GAAG,OAAOpuE,EAAE,CAACA,EAAEvjB,OAAOX,EAAEW,OAAOmkC,GAAE5gB,EAAE,MAAM3G,CAAC,CAACunB,GAAE9kC,EAAEW,MAAM,CAAC,CAAU,GAATknC,GAAEpqC,EAAE0rG,KAAQ5oE,IAAI,oBAAoBA,GAAGk/E,sBAAsB,IAAIl/E,GAAGk/E,sBAAsB3rB,GAAGj1F,EAAE,CAAC,MAAMknG,GAAI,CAACr5F,GAAE,CAAE,CAAC,OAAOA,CAAC,CAAC,QAAQqR,GAAEzR,EAAEkwG,GAAG7kB,WAAWp6E,CAAC,CAAC,CAAC,OAAM,CAAE,CAAC,SAASmiG,GAAG7gH,EAAE0e,EAAEjR,GAAyBzN,EAAEuuG,GAAGvuG,EAAjB0e,EAAEo4F,GAAG92G,EAAf0e,EAAE63F,GAAG9oG,EAAEiR,GAAY,GAAY,GAAGA,EAAEwnB,KAAI,OAAOlmC,IAAIo2F,GAAGp2F,EAAE,EAAE0e,GAAGggG,GAAG1+G,EAAE0e,GAAG,CACze,SAASiqB,GAAE3oC,EAAE0e,EAAEjR,GAAG,GAAG,IAAIzN,EAAEuqF,IAAIs2B,GAAG7gH,EAAEA,EAAEyN,QAAQ,KAAK,OAAOiR,GAAG,CAAC,GAAG,IAAIA,EAAE6rE,IAAI,CAACs2B,GAAGniG,EAAE1e,EAAEyN,GAAG,KAAK,CAAM,GAAG,IAAIiR,EAAE6rE,IAAI,CAAC,IAAI18E,EAAE6Q,EAAEqzE,UAAU,GAAG,oBAAoBrzE,EAAEhU,KAAKklD,0BAA0B,oBAAoB/hD,EAAEqpG,oBAAoB,OAAOC,KAAKA,GAAGlzG,IAAI4J,IAAI,CAAuB6Q,EAAE6vF,GAAG7vF,EAAjB1e,EAAEi3G,GAAGv4F,EAAf1e,EAAEu2G,GAAG9oG,EAAEzN,GAAY,GAAY,GAAGA,EAAEkmC,KAAI,OAAOxnB,IAAI03E,GAAG13E,EAAE,EAAE1e,GAAG0+G,GAAGhgG,EAAE1e,IAAI,KAAK,CAAC,CAAC0e,EAAEA,EAAE5c,MAAM,CAAC,CACnV,SAASy1G,GAAGv3G,EAAE0e,EAAEjR,GAAG,IAAII,EAAE7N,EAAEs3G,UAAU,OAAOzpG,GAAGA,EAAE2pF,OAAO94E,GAAGA,EAAEwnB,KAAIlmC,EAAE61F,aAAa71F,EAAE41F,eAAenoF,EAAEs4B,KAAI/lC,IAAI+oC,GAAEt7B,KAAKA,IAAI,IAAI6R,IAAG,IAAIA,KAAM,UAAFypB,MAAeA,IAAG,IAAI/C,KAAIg3E,GAAGuC,GAAGv/G,EAAE,GAAGoP,IAAI3B,GAAGixG,GAAG1+G,EAAE0e,EAAE,CAAC,SAASoiG,GAAG9gH,EAAE0e,GAAG,IAAIA,IAAI,KAAY,EAAP1e,EAAEw3B,MAAQ9Y,EAAE,GAAGA,EAAE6jB,GAAU,KAAQ,WAAfA,KAAK,MAAuBA,GAAG,WAAW,IAAI90B,EAAEy4B,KAAc,QAAVlmC,EAAE2tG,GAAG3tG,EAAE0e,MAAc03E,GAAGp2F,EAAE0e,EAAEjR,GAAGixG,GAAG1+G,EAAEyN,GAAG,CAAC,SAASssG,GAAG/5G,GAAG,IAAI0e,EAAE1e,EAAEozF,cAAc3lF,EAAE,EAAE,OAAOiR,IAAIjR,EAAEiR,EAAEktF,WAAWkV,GAAG9gH,EAAEyN,EAAE,CACjZ,SAASkvG,GAAG38G,EAAE0e,GAAG,IAAIjR,EAAE,EAAE,OAAOzN,EAAEuqF,KAAK,KAAK,GAAG,IAAI18E,EAAE7N,EAAE+xF,UAAcnzF,EAAEoB,EAAEozF,cAAc,OAAOx0F,IAAI6O,EAAE7O,EAAEgtG,WAAW,MAAM,KAAK,GAAG/9F,EAAE7N,EAAE+xF,UAAU,MAAM,QAAQ,MAAMjtF,MAAMzB,EAAE,MAAO,OAAOwK,GAAGA,EAAE2pF,OAAO94E,GAAGoiG,GAAG9gH,EAAEyN,EAAE,CAQqK,SAASyxG,GAAGl/G,EAAE0e,GAAG,OAAOm1E,GAAG7zF,EAAE0e,EAAE,CACjZ,SAASqiG,GAAG/gH,EAAE0e,EAAEjR,EAAEI,GAAGrO,KAAK+qF,IAAIvqF,EAAER,KAAKquC,IAAIpgC,EAAEjO,KAAKi0F,QAAQj0F,KAAKg0F,MAAMh0F,KAAKsC,OAAOtC,KAAKuyF,UAAUvyF,KAAKkL,KAAKlL,KAAKunF,YAAY,KAAKvnF,KAAK4oB,MAAM,EAAE5oB,KAAKoqD,IAAI,KAAKpqD,KAAKksG,aAAahtF,EAAElf,KAAKytG,aAAaztG,KAAK4zF,cAAc5zF,KAAKsuG,YAAYtuG,KAAKysG,cAAc,KAAKzsG,KAAKg4B,KAAK3pB,EAAErO,KAAK06G,aAAa16G,KAAKq2D,MAAM,EAAEr2D,KAAKgsG,UAAU,KAAKhsG,KAAKutG,WAAWvtG,KAAK2tG,MAAM,EAAE3tG,KAAK0zF,UAAU,IAAI,CAAC,SAASqY,GAAGvrG,EAAE0e,EAAEjR,EAAEI,GAAG,OAAO,IAAIkzG,GAAG/gH,EAAE0e,EAAEjR,EAAEI,EAAE,CAAC,SAASmqG,GAAGh4G,GAAiB,UAAdA,EAAEA,EAAEd,aAAuBc,EAAEghH,iBAAiB,CAEpd,SAAS1Q,GAAGtwG,EAAE0e,GAAG,IAAIjR,EAAEzN,EAAEkzF,UACuB,OADb,OAAOzlF,IAAGA,EAAE89F,GAAGvrG,EAAEuqF,IAAI7rE,EAAE1e,EAAE6tC,IAAI7tC,EAAEw3B,OAAQuvD,YAAY/mF,EAAE+mF,YAAYt5E,EAAE/C,KAAK1K,EAAE0K,KAAK+C,EAAEskF,UAAU/xF,EAAE+xF,UAAUtkF,EAAEylF,UAAUlzF,EAAEA,EAAEkzF,UAAUzlF,IAAIA,EAAEi+F,aAAahtF,EAAEjR,EAAE/C,KAAK1K,EAAE0K,KAAK+C,EAAEooD,MAAM,EAAEpoD,EAAEysG,aAAa,EAAEzsG,EAAE+9F,UAAU,MAAM/9F,EAAEooD,MAAc,SAAR71D,EAAE61D,MAAepoD,EAAEs/F,WAAW/sG,EAAE+sG,WAAWt/F,EAAE0/F,MAAMntG,EAAEmtG,MAAM1/F,EAAE+lF,MAAMxzF,EAAEwzF,MAAM/lF,EAAEw+F,cAAcjsG,EAAEisG,cAAcx+F,EAAE2lF,cAAcpzF,EAAEozF,cAAc3lF,EAAEqgG,YAAY9tG,EAAE8tG,YAAYpvF,EAAE1e,EAAEitG,aAAax/F,EAAEw/F,aAAa,OAAOvuF,EAAE,KAAK,CAACyuF,MAAMzuF,EAAEyuF,MAAMD,aAAaxuF,EAAEwuF,cAC/ez/F,EAAEgmF,QAAQzzF,EAAEyzF,QAAQhmF,EAAE2a,MAAMpoB,EAAEooB,MAAM3a,EAAEm8C,IAAI5pD,EAAE4pD,IAAWn8C,CAAC,CACxD,SAAS+iG,GAAGxwG,EAAE0e,EAAEjR,EAAEI,EAAEjP,EAAEyP,GAAG,IAAIoQ,EAAE,EAAM,GAAJ5Q,EAAE7N,EAAK,oBAAoBA,EAAEg4G,GAAGh4G,KAAKye,EAAE,QAAQ,GAAG,kBAAkBze,EAAEye,EAAE,OAAOze,EAAE,OAAOA,GAAG,KAAKmpF,EAAG,OAAOwnB,GAAGljG,EAAEipC,SAAS93C,EAAEyP,EAAEqQ,GAAG,KAAK0qE,EAAG3qE,EAAE,EAAE7f,GAAG,EAAE,MAAM,KAAKyqF,EAAG,OAAOrpF,EAAEurG,GAAG,GAAG99F,EAAEiR,EAAI,EAAF9f,IAAOmoF,YAAYsC,EAAGrpF,EAAEmtG,MAAM9+F,EAAErO,EAAE,KAAKypF,EAAG,OAAOzpF,EAAEurG,GAAG,GAAG99F,EAAEiR,EAAE9f,IAAKmoF,YAAY0C,EAAGzpF,EAAEmtG,MAAM9+F,EAAErO,EAAE,KAAK0pF,EAAG,OAAO1pF,EAAEurG,GAAG,GAAG99F,EAAEiR,EAAE9f,IAAKmoF,YAAY2C,EAAG1pF,EAAEmtG,MAAM9+F,EAAErO,EAAE,KAAK6pF,EAAG,OAAO4vB,GAAGhsG,EAAE7O,EAAEyP,EAAEqQ,GAAG,QAAQ,GAAG,kBAAkB1e,GAAG,OAAOA,EAAE,OAAOA,EAAEuxD,UAAU,KAAK+3B,EAAG7qE,EAAE,GAAG,MAAMze,EAAE,KAAKupF,EAAG9qE,EAAE,EAAE,MAAMze,EAAE,KAAKwpF,EAAG/qE,EAAE,GACpf,MAAMze,EAAE,KAAK2pF,EAAGlrE,EAAE,GAAG,MAAMze,EAAE,KAAK4pF,EAAGnrE,EAAE,GAAG5Q,EAAE,KAAK,MAAM7N,EAAE,MAAM8E,MAAMzB,EAAE,IAAI,MAAMrD,EAAEA,SAASA,EAAE,KAAuD,OAAjD0e,EAAE6sF,GAAG9sF,EAAEhR,EAAEiR,EAAE9f,IAAKmoF,YAAY/mF,EAAE0e,EAAEhU,KAAKmD,EAAE6Q,EAAEyuF,MAAM9+F,EAASqQ,CAAC,CAAC,SAASiyF,GAAG3wG,EAAE0e,EAAEjR,EAAEI,GAA2B,OAAxB7N,EAAEurG,GAAG,EAAEvrG,EAAE6N,EAAE6Q,IAAKyuF,MAAM1/F,EAASzN,CAAC,CAAC,SAASy5G,GAAGz5G,EAAE0e,EAAEjR,EAAEI,GAAuE,OAApE7N,EAAEurG,GAAG,GAAGvrG,EAAE6N,EAAE6Q,IAAKqoE,YAAY8C,EAAG7pF,EAAEmtG,MAAM1/F,EAAEzN,EAAE+xF,UAAU,CAACgrB,UAAS,GAAW/8G,CAAC,CAAC,SAASuwG,GAAGvwG,EAAE0e,EAAEjR,GAA8B,OAA3BzN,EAAEurG,GAAG,EAAEvrG,EAAE,KAAK0e,IAAKyuF,MAAM1/F,EAASzN,CAAC,CAC5W,SAAS0wG,GAAG1wG,EAAE0e,EAAEjR,GAA8J,OAA3JiR,EAAE6sF,GAAG,EAAE,OAAOvrG,EAAE02C,SAAS12C,EAAE02C,SAAS,GAAG12C,EAAE6tC,IAAInvB,IAAKyuF,MAAM1/F,EAAEiR,EAAEqzE,UAAU,CAACoG,cAAcn4F,EAAEm4F,cAAc8oB,gBAAgB,KAAKxQ,eAAezwG,EAAEywG,gBAAuB/xF,CAAC,CACtL,SAASwiG,GAAGlhH,EAAE0e,EAAEjR,EAAEI,EAAEjP,GAAGY,KAAK+qF,IAAI7rE,EAAElf,KAAK24F,cAAcn4F,EAAER,KAAKogH,aAAapgH,KAAK83G,UAAU93G,KAAKk0F,QAAQl0F,KAAKyhH,gBAAgB,KAAKzhH,KAAKugH,eAAe,EAAEvgH,KAAKm/G,aAAan/G,KAAKu5G,eAAev5G,KAAK0wC,QAAQ,KAAK1wC,KAAKu/G,iBAAiB,EAAEv/G,KAAK62F,WAAWF,GAAG,GAAG32F,KAAKo/G,gBAAgBzoB,IAAI,GAAG32F,KAAKs2F,eAAet2F,KAAKqgH,cAAcrgH,KAAK6gH,iBAAiB7gH,KAAKq/G,aAAar/G,KAAKq2F,YAAYr2F,KAAKo2F,eAAep2F,KAAKm2F,aAAa,EAAEn2F,KAAKu2F,cAAcI,GAAG,GAAG32F,KAAK82G,iBAAiBzoG,EAAErO,KAAKkhH,mBAAmB9hH,EAAEY,KAAK2hH,gCAC/e,IAAI,CAAC,SAAS5xG,GAAGvP,EAAE0e,EAAEjR,EAAEI,EAAEjP,EAAEyP,EAAEoQ,EAAEtd,EAAE6M,GAAgN,OAA7MhO,EAAE,IAAIkhH,GAAGlhH,EAAE0e,EAAEjR,EAAEtM,EAAE6M,GAAG,IAAI0Q,GAAGA,EAAE,GAAE,IAAKrQ,IAAIqQ,GAAG,IAAIA,EAAE,EAAErQ,EAAEk9F,GAAG,EAAE,KAAK,KAAK7sF,GAAG1e,EAAE0zF,QAAQrlF,EAAEA,EAAE0jF,UAAU/xF,EAAEqO,EAAE+kF,cAAc,CAACj8D,QAAQtpB,EAAEqqF,aAAazqF,EAAEolB,MAAM,KAAKylF,YAAY,KAAK8I,0BAA0B,MAAMvT,GAAGx/F,GAAUrO,CAAC,CACzP,SAASqhH,GAAGrhH,GAAG,IAAIA,EAAE,OAAOqpG,GAAuBrpG,EAAE,CAAC,GAAGizF,GAA1BjzF,EAAEA,EAAEivG,mBAA8BjvG,GAAG,IAAIA,EAAEuqF,IAAI,MAAMzlF,MAAMzB,EAAE,MAAM,IAAIqb,EAAE1e,EAAE,EAAE,CAAC,OAAO0e,EAAE6rE,KAAK,KAAK,EAAE7rE,EAAEA,EAAEqzE,UAAU7hD,QAAQ,MAAMlwC,EAAE,KAAK,EAAE,GAAG2pG,GAAGjrF,EAAEhU,MAAM,CAACgU,EAAEA,EAAEqzE,UAAUkY,0CAA0C,MAAMjqG,CAAC,EAAE0e,EAAEA,EAAE5c,MAAM,OAAO,OAAO4c,GAAG,MAAM5Z,MAAMzB,EAAE,KAAM,CAAC,GAAG,IAAIrD,EAAEuqF,IAAI,CAAC,IAAI98E,EAAEzN,EAAE0K,KAAK,GAAGi/F,GAAGl8F,GAAG,OAAOq8F,GAAG9pG,EAAEyN,EAAEiR,EAAE,CAAC,OAAOA,CAAC,CACpW,SAAS4iG,GAAGthH,EAAE0e,EAAEjR,EAAEI,EAAEjP,EAAEyP,EAAEoQ,EAAEtd,EAAE6M,GAAwK,OAArKhO,EAAEuP,GAAG9B,EAAEI,GAAE,EAAG7N,EAAEpB,EAAEyP,EAAEoQ,EAAEtd,EAAE6M,IAAKkiC,QAAQmxE,GAAG,MAAM5zG,EAAEzN,EAAE0zF,SAAsBrlF,EAAEokB,GAAhB5kB,EAAEq4B,KAAItnC,EAAEwkC,GAAG31B,KAAe4lD,cAAS,IAAS30C,GAAG,OAAOA,EAAEA,EAAE,KAAK6vF,GAAG9gG,EAAEY,EAAEzP,GAAGoB,EAAE0zF,QAAQyZ,MAAMvuG,EAAEw3F,GAAGp2F,EAAEpB,EAAEiP,GAAG6wG,GAAG1+G,EAAE6N,GAAU7N,CAAC,CAAC,SAASuhH,GAAGvhH,EAAE0e,EAAEjR,EAAEI,GAAG,IAAIjP,EAAE8f,EAAEg1E,QAAQrlF,EAAE63B,KAAIznB,EAAE2kB,GAAGxkC,GAAsL,OAAnL6O,EAAE4zG,GAAG5zG,GAAG,OAAOiR,EAAEwxB,QAAQxxB,EAAEwxB,QAAQziC,EAAEiR,EAAEq6F,eAAetrG,GAAEiR,EAAE+T,GAAGpkB,EAAEoQ,IAAK3N,QAAQ,CAACqmB,QAAQn3B,GAAuB,QAApB6N,OAAE,IAASA,EAAE,KAAKA,KAAa6Q,EAAE20C,SAASxlD,GAAe,QAAZ7N,EAAEuuG,GAAG3vG,EAAE8f,EAAED,MAAc0wF,GAAGnvG,EAAEpB,EAAE6f,EAAEpQ,GAAGmgG,GAAGxuG,EAAEpB,EAAE6f,IAAWA,CAAC,CAC3b,SAAS+iG,GAAGxhH,GAAe,OAAZA,EAAEA,EAAE0zF,SAAcF,OAAyBxzF,EAAEwzF,MAAMjJ,IAAoDvqF,EAAEwzF,MAAMzB,WAAhF,IAA0F,CAAC,SAAS0vB,GAAGzhH,EAAE0e,GAAqB,GAAG,QAArB1e,EAAEA,EAAEozF,gBAA2B,OAAOpzF,EAAEqzF,WAAW,CAAC,IAAI5lF,EAAEzN,EAAE4rG,UAAU5rG,EAAE4rG,UAAU,IAAIn+F,GAAGA,EAAEiR,EAAEjR,EAAEiR,CAAC,CAAC,CAAC,SAASgjG,GAAG1hH,EAAE0e,GAAG+iG,GAAGzhH,EAAE0e,IAAI1e,EAAEA,EAAEkzF,YAAYuuB,GAAGzhH,EAAE0e,EAAE,CAnB7S6+F,GAAG,SAASv9G,EAAE0e,EAAEjR,GAAG,GAAG,OAAOzN,EAAE,GAAGA,EAAEisG,gBAAgBvtF,EAAEgtF,cAAcpC,GAAG5V,QAAQ0Z,IAAG,MAAO,CAAC,GAAG,KAAKptG,EAAEmtG,MAAM1/F,IAAI,KAAa,IAARiR,EAAEm3C,OAAW,OAAOu3C,IAAG,EAzE1I,SAAYptG,EAAE0e,EAAEjR,GAAG,OAAOiR,EAAE6rE,KAAK,KAAK,EAAE95D,GAAG/R,GAAGytF,KAAK,MAAM,KAAK,EAAEmF,GAAG5yF,GAAG,MAAM,KAAK,EAAEirF,GAAGjrF,EAAEhU,OAAOs/F,GAAGtrF,GAAG,MAAM,KAAK,EAAEyyF,GAAGzyF,EAAEA,EAAEqzE,UAAUoG,eAAe,MAAM,KAAK,GAAG,IAAItqF,EAAE6Q,EAAEhU,KAAK+/E,SAAS7rF,EAAE8f,EAAEutF,cAAc1qG,MAAMilC,GAAE+lE,GAAG1+F,EAAEg/F,eAAeh/F,EAAEg/F,cAAcjuG,EAAE,MAAM,KAAK,GAAqB,GAAG,QAArBiP,EAAE6Q,EAAE00E,eAA2B,OAAG,OAAOvlF,EAAEwlF,YAAkB7sD,GAAEjnB,GAAY,EAAVA,GAAEm0E,SAAWh1E,EAAEm3C,OAAO,IAAI,MAAQ,KAAKpoD,EAAEiR,EAAE80E,MAAMuZ,YAAmBwM,GAAGv5G,EAAE0e,EAAEjR,IAAG+4B,GAAEjnB,GAAY,EAAVA,GAAEm0E,SAA8B,QAAnB1zF,EAAE83G,GAAG93G,EAAE0e,EAAEjR,IAAmBzN,EAAEyzF,QAAQ,MAAKjtD,GAAEjnB,GAAY,EAAVA,GAAEm0E,SAAW,MAAM,KAAK,GAC7d,GADge7lF,EAAE,KAAKJ,EACrfiR,EAAEquF,YAAe,KAAa,IAAR/sG,EAAE61D,OAAW,CAAC,GAAGhoD,EAAE,OAAO8sG,GAAG36G,EAAE0e,EAAEjR,GAAGiR,EAAEm3C,OAAO,GAAG,CAA6F,GAA1E,QAAlBj3D,EAAE8f,EAAE00E,iBAAyBx0F,EAAE07G,UAAU,KAAK17G,EAAE67G,KAAK,KAAK77G,EAAEo1G,WAAW,MAAMxtE,GAAEjnB,GAAEA,GAAEm0E,SAAY7lF,EAAE,MAAW,OAAO,KAAK,KAAK,GAAG,KAAK,GAAG,OAAO6Q,EAAEyuF,MAAM,EAAEgL,GAAGn4G,EAAE0e,EAAEjR,GAAG,OAAOqqG,GAAG93G,EAAE0e,EAAEjR,EAAE,CAwE7Gk0G,CAAG3hH,EAAE0e,EAAEjR,GAAG2/F,GAAG,KAAa,OAARptG,EAAE61D,MAAmB,MAAMu3C,IAAG,EAAGtnE,IAAG,KAAa,QAARpnB,EAAEm3C,QAAgBm1C,GAAGtsF,EAAEgsF,GAAGhsF,EAAE0J,OAAiB,OAAV1J,EAAEyuF,MAAM,EAASzuF,EAAE6rE,KAAK,KAAK,EAAE,IAAI18E,EAAE6Q,EAAEhU,KAAKiuG,GAAG34G,EAAE0e,GAAG1e,EAAE0e,EAAEgtF,aAAa,IAAI9sG,EAAE4qG,GAAG9qF,EAAE+pB,GAAEirD,SAASsZ,GAAGtuF,EAAEjR,GAAG7O,EAAE0zG,GAAG,KAAK5zF,EAAE7Q,EAAE7N,EAAEpB,EAAE6O,GAAG,IAAIY,EAAEskG,KACvI,OAD4Ij0F,EAAEm3C,OAAO,EAAE,kBAAkBj3D,GAAG,OAAOA,GAAG,oBAAoBA,EAAE6qD,aAAQ,IAAS7qD,EAAE2yD,UAAU7yC,EAAE6rE,IAAI,EAAE7rE,EAAE00E,cAAc,KAAK10E,EAAEovF,YAC1e,KAAKnE,GAAG97F,IAAIQ,GAAE,EAAG27F,GAAGtrF,IAAIrQ,GAAE,EAAGqQ,EAAE00E,cAAc,OAAOx0F,EAAEq/C,YAAO,IAASr/C,EAAEq/C,MAAMr/C,EAAEq/C,MAAM,KAAK4vD,GAAGnvF,GAAG9f,EAAE8wG,QAAQX,GAAGrwF,EAAEqzE,UAAUnzF,EAAEA,EAAEqwG,gBAAgBvwF,EAAEoxF,GAAGpxF,EAAE7Q,EAAE7N,EAAEyN,GAAGiR,EAAEo6F,GAAG,KAAKp6F,EAAE7Q,GAAE,EAAGQ,EAAEZ,KAAKiR,EAAE6rE,IAAI,EAAEzkD,IAAGz3B,GAAG48F,GAAGvsF,GAAGk5F,GAAG,KAAKl5F,EAAE9f,EAAE6O,GAAGiR,EAAEA,EAAE80E,OAAc90E,EAAE,KAAK,GAAG7Q,EAAE6Q,EAAEqoE,YAAY/mF,EAAE,CAAqF,OAApF24G,GAAG34G,EAAE0e,GAAG1e,EAAE0e,EAAEgtF,aAAuB79F,GAAVjP,EAAEiP,EAAE88E,OAAU98E,EAAE68E,UAAUhsE,EAAEhU,KAAKmD,EAAEjP,EAAE8f,EAAE6rE,IAQtU,SAAYvqF,GAAG,GAAG,oBAAoBA,EAAE,OAAOg4G,GAAGh4G,GAAG,EAAE,EAAE,QAAG,IAASA,GAAG,OAAOA,EAAE,CAAc,IAAbA,EAAEA,EAAEuxD,YAAgBi4B,EAAG,OAAO,GAAG,GAAGxpF,IAAI2pF,EAAG,OAAO,EAAE,CAAC,OAAO,CAAC,CAR2Li4B,CAAG/zG,GAAG7N,EAAEssG,GAAGz+F,EAAE7N,GAAUpB,GAAG,KAAK,EAAE8f,EAAEw5F,GAAG,KAAKx5F,EAAE7Q,EAAE7N,EAAEyN,GAAG,MAAMzN,EAAE,KAAK,EAAE0e,EAAEg6F,GAAG,KAAKh6F,EAAE7Q,EAAE7N,EAAEyN,GAAG,MAAMzN,EAAE,KAAK,GAAG0e,EAAEm5F,GAAG,KAAKn5F,EAAE7Q,EAAE7N,EAAEyN,GAAG,MAAMzN,EAAE,KAAK,GAAG0e,EAAEq5F,GAAG,KAAKr5F,EAAE7Q,EAAEy+F,GAAGz+F,EAAEnD,KAAK1K,GAAGyN,GAAG,MAAMzN,EAAE,MAAM8E,MAAMzB,EAAE,IACvgBwK,EAAE,IAAK,CAAC,OAAO6Q,EAAE,KAAK,EAAE,OAAO7Q,EAAE6Q,EAAEhU,KAAK9L,EAAE8f,EAAEgtF,aAA2CwM,GAAGl4G,EAAE0e,EAAE7Q,EAArCjP,EAAE8f,EAAEqoE,cAAcl5E,EAAEjP,EAAE0tG,GAAGz+F,EAAEjP,GAAc6O,GAAG,KAAK,EAAE,OAAOI,EAAE6Q,EAAEhU,KAAK9L,EAAE8f,EAAEgtF,aAA2CgN,GAAG14G,EAAE0e,EAAE7Q,EAArCjP,EAAE8f,EAAEqoE,cAAcl5E,EAAEjP,EAAE0tG,GAAGz+F,EAAEjP,GAAc6O,GAAG,KAAK,EAAEzN,EAAE,CAAO,GAANywB,GAAG/R,GAAM,OAAO1e,EAAE,MAAM8E,MAAMzB,EAAE,MAAMwK,EAAE6Q,EAAEgtF,aAA+B9sG,GAAlByP,EAAEqQ,EAAE00E,eAAkBj8D,QAAQi3E,GAAGpuG,EAAE0e,GAAG+vF,GAAG/vF,EAAE7Q,EAAE,KAAKJ,GAAG,IAAIgR,EAAEC,EAAE00E,cAA0B,GAAZvlF,EAAE4Q,EAAE0Y,QAAW9oB,EAAE6pF,aAAY,CAAC,GAAG7pF,EAAE,CAAC8oB,QAAQtpB,EAAEqqF,cAAa,EAAGrlE,MAAMpU,EAAEoU,MAAMuuF,0BAA0B3iG,EAAE2iG,0BAA0B9I,YAAY75F,EAAE65F,aAAa55F,EAAEovF,YAAYC,UAChf1/F,EAAEqQ,EAAE00E,cAAc/kF,EAAU,IAARqQ,EAAEm3C,MAAU,CAAuBn3C,EAAEs6F,GAAGh5G,EAAE0e,EAAE7Q,EAAEJ,EAAjC7O,EAAE23G,GAAGzxG,MAAMzB,EAAE,MAAMqb,IAAmB,MAAM1e,CAAC,CAAM,GAAG6N,IAAIjP,EAAE,CAAuB8f,EAAEs6F,GAAGh5G,EAAE0e,EAAE7Q,EAAEJ,EAAjC7O,EAAE23G,GAAGzxG,MAAMzB,EAAE,MAAMqb,IAAmB,MAAM1e,CAAC,CAAM,IAAIorG,GAAG1C,GAAGhqF,EAAEqzE,UAAUoG,cAAcntC,YAAYmgD,GAAGzsF,EAAEonB,IAAE,EAAGulE,GAAG,KAAK59F,EAAEojG,GAAGnyF,EAAE,KAAK7Q,EAAEJ,GAAGiR,EAAE80E,MAAM/lF,EAAEA,GAAGA,EAAEooD,OAAe,EAATpoD,EAAEooD,MAAS,KAAKpoD,EAAEA,EAAEgmF,OAAQ,KAAI,CAAM,GAAL0Y,KAAQt+F,IAAIjP,EAAE,CAAC8f,EAAEo5F,GAAG93G,EAAE0e,EAAEjR,GAAG,MAAMzN,CAAC,CAAC43G,GAAG53G,EAAE0e,EAAE7Q,EAAEJ,EAAE,CAACiR,EAAEA,EAAE80E,KAAK,CAAC,OAAO90E,EAAE,KAAK,EAAE,OAAO4yF,GAAG5yF,GAAG,OAAO1e,GAAG8rG,GAAGptF,GAAG7Q,EAAE6Q,EAAEhU,KAAK9L,EAAE8f,EAAEgtF,aAAar9F,EAAE,OAAOrO,EAAEA,EAAEisG,cAAc,KAAKxtF,EAAE7f,EAAE83C,SAASsxD,GAAGn6F,EAAEjP,GAAG6f,EAAE,KAAK,OAAOpQ,GAAG25F,GAAGn6F,EAAEQ,KAAKqQ,EAAEm3C,OAAO,IACnf4iD,GAAGz4G,EAAE0e,GAAGk5F,GAAG53G,EAAE0e,EAAED,EAAEhR,GAAGiR,EAAE80E,MAAM,KAAK,EAAE,OAAO,OAAOxzF,GAAG8rG,GAAGptF,GAAG,KAAK,KAAK,GAAG,OAAO66F,GAAGv5G,EAAE0e,EAAEjR,GAAG,KAAK,EAAE,OAAO0jG,GAAGzyF,EAAEA,EAAEqzE,UAAUoG,eAAetqF,EAAE6Q,EAAEgtF,aAAa,OAAO1rG,EAAE0e,EAAE80E,MAAMod,GAAGlyF,EAAE,KAAK7Q,EAAEJ,GAAGmqG,GAAG53G,EAAE0e,EAAE7Q,EAAEJ,GAAGiR,EAAE80E,MAAM,KAAK,GAAG,OAAO3lF,EAAE6Q,EAAEhU,KAAK9L,EAAE8f,EAAEgtF,aAA2CmM,GAAG73G,EAAE0e,EAAE7Q,EAArCjP,EAAE8f,EAAEqoE,cAAcl5E,EAAEjP,EAAE0tG,GAAGz+F,EAAEjP,GAAc6O,GAAG,KAAK,EAAE,OAAOmqG,GAAG53G,EAAE0e,EAAEA,EAAEgtF,aAAaj+F,GAAGiR,EAAE80E,MAAM,KAAK,EAAmD,KAAK,GAAG,OAAOokB,GAAG53G,EAAE0e,EAAEA,EAAEgtF,aAAah1D,SAASjpC,GAAGiR,EAAE80E,MAAM,KAAK,GAAGxzF,EAAE,CACxZ,GADyZ6N,EAAE6Q,EAAEhU,KAAK+/E,SAAS7rF,EAAE8f,EAAEgtF,aAAar9F,EAAEqQ,EAAEutF,cAClfxtF,EAAE7f,EAAE2C,MAAMilC,GAAE+lE,GAAG1+F,EAAEg/F,eAAeh/F,EAAEg/F,cAAcpuF,EAAK,OAAOpQ,EAAE,GAAGq0F,GAAGr0F,EAAE9M,MAAMkd,IAAI,GAAGpQ,EAAEqoC,WAAW93C,EAAE83C,WAAW4yD,GAAG5V,QAAQ,CAACh1E,EAAEo5F,GAAG93G,EAAE0e,EAAEjR,GAAG,MAAMzN,CAAC,OAAO,IAAc,QAAVqO,EAAEqQ,EAAE80E,SAAiBnlF,EAAEvM,OAAO4c,GAAG,OAAOrQ,GAAG,CAAC,IAAIlN,EAAEkN,EAAE4+F,aAAa,GAAG,OAAO9rG,EAAE,CAACsd,EAAEpQ,EAAEmlF,MAAM,IAAI,IAAIxlF,EAAE7M,EAAE+rG,aAAa,OAAOl/F,GAAG,CAAC,GAAGA,EAAEkiC,UAAUriC,EAAE,CAAC,GAAG,IAAIQ,EAAEk8E,IAAI,EAACv8E,EAAEykB,IAAI,EAAEhlB,GAAGA,IAAK88E,IAAI,EAAE,IAAInnF,EAAEiL,EAAEy/F,YAAY,GAAG,OAAO1qG,EAAE,CAAY,IAAIsK,GAAftK,EAAEA,EAAE8qG,QAAeC,QAAQ,OAAOzgG,EAAEM,EAAE5M,KAAK4M,GAAGA,EAAE5M,KAAKsM,EAAEtM,KAAKsM,EAAEtM,KAAK4M,GAAG5K,EAAE+qG,QAAQngG,CAAC,CAAC,CAACK,EAAE8+F,OAAO1/F,EAAgB,QAAdO,EAAEK,EAAE6kF,aAAqBllF,EAAEm/F,OAAO1/F,GAAGq/F,GAAGz+F,EAAEvM,OAClf2L,EAAEiR,GAAGvd,EAAEgsG,OAAO1/F,EAAE,KAAK,CAACO,EAAEA,EAAE5M,IAAI,CAAC,MAAM,GAAG,KAAKiN,EAAEk8E,IAAI9rE,EAAEpQ,EAAE3D,OAAOgU,EAAEhU,KAAK,KAAK2D,EAAEmlF,WAAW,GAAG,KAAKnlF,EAAEk8E,IAAI,CAAY,GAAG,QAAd9rE,EAAEpQ,EAAEvM,QAAmB,MAAMgD,MAAMzB,EAAE,MAAMob,EAAE0uF,OAAO1/F,EAAgB,QAAdtM,EAAEsd,EAAEy0E,aAAqB/xF,EAAEgsG,OAAO1/F,GAAGq/F,GAAGruF,EAAEhR,EAAEiR,GAAGD,EAAEpQ,EAAEolF,OAAO,MAAMh1E,EAAEpQ,EAAEmlF,MAAM,GAAG,OAAO/0E,EAAEA,EAAE3c,OAAOuM,OAAO,IAAIoQ,EAAEpQ,EAAE,OAAOoQ,GAAG,CAAC,GAAGA,IAAIC,EAAE,CAACD,EAAE,KAAK,KAAK,CAAa,GAAG,QAAfpQ,EAAEoQ,EAAEg1E,SAAoB,CAACplF,EAAEvM,OAAO2c,EAAE3c,OAAO2c,EAAEpQ,EAAE,KAAK,CAACoQ,EAAEA,EAAE3c,MAAM,CAACuM,EAAEoQ,CAAC,CAACm5F,GAAG53G,EAAE0e,EAAE9f,EAAE83C,SAASjpC,GAAGiR,EAAEA,EAAE80E,KAAK,CAAC,OAAO90E,EAAE,KAAK,EAAE,OAAO9f,EAAE8f,EAAEhU,KAAKmD,EAAE6Q,EAAEgtF,aAAah1D,SAASs2D,GAAGtuF,EAAEjR,GAAWI,EAAEA,EAAVjP,EAAEyuG,GAAGzuG,IAAU8f,EAAEm3C,OAAO,EAAE+hD,GAAG53G,EAAE0e,EAAE7Q,EAAEJ,GACpfiR,EAAE80E,MAAM,KAAK,GAAG,OAAgB50F,EAAE0tG,GAAXz+F,EAAE6Q,EAAEhU,KAAYgU,EAAEgtF,cAA6BqM,GAAG/3G,EAAE0e,EAAE7Q,EAAtBjP,EAAE0tG,GAAGz+F,EAAEnD,KAAK9L,GAAc6O,GAAG,KAAK,GAAG,OAAOwqG,GAAGj4G,EAAE0e,EAAEA,EAAEhU,KAAKgU,EAAEgtF,aAAaj+F,GAAG,KAAK,GAAG,OAAOI,EAAE6Q,EAAEhU,KAAK9L,EAAE8f,EAAEgtF,aAAa9sG,EAAE8f,EAAEqoE,cAAcl5E,EAAEjP,EAAE0tG,GAAGz+F,EAAEjP,GAAG+5G,GAAG34G,EAAE0e,GAAGA,EAAE6rE,IAAI,EAAEof,GAAG97F,IAAI7N,GAAE,EAAGgqG,GAAGtrF,IAAI1e,GAAE,EAAGgtG,GAAGtuF,EAAEjR,GAAGgiG,GAAG/wF,EAAE7Q,EAAEjP,GAAGkxG,GAAGpxF,EAAE7Q,EAAEjP,EAAE6O,GAAGqrG,GAAG,KAAKp6F,EAAE7Q,GAAE,EAAG7N,EAAEyN,GAAG,KAAK,GAAG,OAAOktG,GAAG36G,EAAE0e,EAAEjR,GAAG,KAAK,GAAG,OAAO0qG,GAAGn4G,EAAE0e,EAAEjR,GAAG,MAAM3I,MAAMzB,EAAE,IAAIqb,EAAE6rE,KAAM,EAYxC,IAAIs3B,GAAG,oBAAoBC,YAAYA,YAAY,SAAS9hH,GAAGwzB,QAAQ/wB,MAAMzC,EAAE,EAAE,SAASuwB,GAAGvwB,GAAGR,KAAKuiH,cAAc/hH,CAAC,CACjI,SAASgiH,GAAGhiH,GAAGR,KAAKuiH,cAAc/hH,CAAC,CAC5J,SAASiiH,GAAGjiH,GAAG,SAASA,GAAG,IAAIA,EAAE0tF,UAAU,IAAI1tF,EAAE0tF,UAAU,KAAK1tF,EAAE0tF,SAAS,CAAC,SAASw0B,GAAGliH,GAAG,SAASA,GAAG,IAAIA,EAAE0tF,UAAU,IAAI1tF,EAAE0tF,UAAU,KAAK1tF,EAAE0tF,WAAW,IAAI1tF,EAAE0tF,UAAU,iCAAiC1tF,EAAE2tF,WAAW,CAAC,SAASw0B,KAAK,CAExa,SAASC,GAAGpiH,EAAE0e,EAAEjR,EAAEI,EAAEjP,GAAG,IAAIyP,EAAEZ,EAAE2uG,oBAAoB,GAAG/tG,EAAE,CAAC,IAAIoQ,EAAEpQ,EAAE,GAAG,oBAAoBzP,EAAE,CAAC,IAAIuC,EAAEvC,EAAEA,EAAE,WAAW,IAAIoB,EAAEwhH,GAAG/iG,GAAGtd,EAAE/B,KAAKY,EAAE,CAAC,CAACuhH,GAAG7iG,EAAED,EAAEze,EAAEpB,EAAE,MAAM6f,EADxJ,SAAYze,EAAE0e,EAAEjR,EAAEI,EAAEjP,GAAG,GAAGA,EAAE,CAAC,GAAG,oBAAoBiP,EAAE,CAAC,IAAIQ,EAAER,EAAEA,EAAE,WAAW,IAAI7N,EAAEwhH,GAAG/iG,GAAGpQ,EAAEjP,KAAKY,EAAE,CAAC,CAAC,IAAIye,EAAE6iG,GAAG5iG,EAAE7Q,EAAE7N,EAAE,EAAE,MAAK,EAAG,EAAG,GAAGmiH,IAAmF,OAA/EniH,EAAEo8G,oBAAoB39F,EAAEze,EAAE8mG,IAAIroF,EAAEi1E,QAAQgT,GAAG,IAAI1mG,EAAE0tF,SAAS1tF,EAAE4zB,WAAW5zB,GAAGigH,KAAYxhG,CAAC,CAAC,KAAK7f,EAAEoB,EAAEytF,WAAWztF,EAAE6zB,YAAYj1B,GAAG,GAAG,oBAAoBiP,EAAE,CAAC,IAAI1M,EAAE0M,EAAEA,EAAE,WAAW,IAAI7N,EAAEwhH,GAAGxzG,GAAG7M,EAAE/B,KAAKY,EAAE,CAAC,CAAC,IAAIgO,EAAEuB,GAAGvP,EAAE,GAAE,EAAG,KAAK,GAAK,EAAG,EAAG,GAAGmiH,IAA0G,OAAtGniH,EAAEo8G,oBAAoBpuG,EAAEhO,EAAE8mG,IAAI94F,EAAE0lF,QAAQgT,GAAG,IAAI1mG,EAAE0tF,SAAS1tF,EAAE4zB,WAAW5zB,GAAGigH,IAAG,WAAWsB,GAAG7iG,EAAE1Q,EAAEP,EAAEI,EAAE,IAAUG,CAAC,CACpUq0G,CAAG50G,EAAEiR,EAAE1e,EAAEpB,EAAEiP,GAAG,OAAO2zG,GAAG/iG,EAAE,CAHpLujG,GAAG9iH,UAAUuqD,OAAOl5B,GAAGrxB,UAAUuqD,OAAO,SAASzpD,GAAG,IAAI0e,EAAElf,KAAKuiH,cAAc,GAAG,OAAOrjG,EAAE,MAAM5Z,MAAMzB,EAAE,MAAMk+G,GAAGvhH,EAAE0e,EAAE,KAAK,KAAK,EAAEsjG,GAAG9iH,UAAUojH,QAAQ/xF,GAAGrxB,UAAUojH,QAAQ,WAAW,IAAItiH,EAAER,KAAKuiH,cAAc,GAAG,OAAO/hH,EAAE,CAACR,KAAKuiH,cAAc,KAAK,IAAIrjG,EAAE1e,EAAEm4F,cAAc8nB,IAAG,WAAWsB,GAAG,KAAKvhH,EAAE,KAAK,KAAK,IAAG0e,EAAEooF,IAAI,IAAI,CAAC,EACzTkb,GAAG9iH,UAAUqjH,2BAA2B,SAASviH,GAAG,GAAGA,EAAE,CAAC,IAAI0e,EAAEi4E,KAAK32F,EAAE,CAAC43F,UAAU,KAAKtsF,OAAOtL,EAAEk+D,SAASx/C,GAAG,IAAI,IAAIjR,EAAE,EAAEA,EAAE4pF,GAAGt3F,QAAQ,IAAI2e,GAAGA,EAAE24E,GAAG5pF,GAAGywD,SAASzwD,KAAK4pF,GAAG9iF,OAAO9G,EAAE,EAAEzN,GAAG,IAAIyN,GAAGuqF,GAAGh4F,EAAE,CAAC,EAEXw2F,GAAG,SAASx2F,GAAG,OAAOA,EAAEuqF,KAAK,KAAK,EAAE,IAAI7rE,EAAE1e,EAAE+xF,UAAU,GAAGrzE,EAAEg1E,QAAQN,cAAc8E,aAAa,CAAC,IAAIzqF,EAAEgoF,GAAG/2E,EAAEi3E,cAAc,IAAIloF,IAAI6oF,GAAG53E,EAAI,EAAFjR,GAAKixG,GAAGhgG,EAAEsnB,MAAK,KAAO,EAAFgD,MAAOoyE,GAAGp1E,KAAI,IAAIskE,MAAM,CAAC,MAAM,KAAK,GAAG2V,IAAG,WAAW,IAAIvhG,EAAEivF,GAAG3tG,EAAE,GAAG,GAAG,OAAO0e,EAAE,CAAC,IAAIjR,EAAEy4B,KAAIipE,GAAGzwF,EAAE1e,EAAE,EAAEyN,EAAE,CAAC,IAAGi0G,GAAG1hH,EAAE,GAAG,EAC/by2F,GAAG,SAASz2F,GAAG,GAAG,KAAKA,EAAEuqF,IAAI,CAAC,IAAI7rE,EAAEivF,GAAG3tG,EAAE,WAAW,GAAG,OAAO0e,EAAaywF,GAAGzwF,EAAE1e,EAAE,UAAXkmC,MAAwBw7E,GAAG1hH,EAAE,UAAU,CAAC,EAAE02F,GAAG,SAAS12F,GAAG,GAAG,KAAKA,EAAEuqF,IAAI,CAAC,IAAI7rE,EAAE0kB,GAAGpjC,GAAGyN,EAAEkgG,GAAG3tG,EAAE0e,GAAG,GAAG,OAAOjR,EAAa0hG,GAAG1hG,EAAEzN,EAAE0e,EAAXwnB,MAAgBw7E,GAAG1hH,EAAE0e,EAAE,CAAC,EAAEi4E,GAAG,WAAW,OAAOz3E,EAAC,EAAE03E,GAAG,SAAS52F,EAAE0e,GAAG,IAAIjR,EAAEyR,GAAE,IAAI,OAAOA,GAAElf,EAAE0e,GAAG,CAAC,QAAQQ,GAAEzR,CAAC,CAAC,EAClSikF,GAAG,SAAS1xF,EAAE0e,EAAEjR,GAAG,OAAOiR,GAAG,IAAK,QAAyB,GAAjBytE,EAAGnsF,EAAEyN,GAAGiR,EAAEjR,EAAEsH,KAAQ,UAAUtH,EAAE/C,MAAM,MAAMgU,EAAE,CAAC,IAAIjR,EAAEzN,EAAEyN,EAAEmmB,YAAYnmB,EAAEA,EAAEmmB,WAAsF,IAA3EnmB,EAAEA,EAAE0lB,iBAAiB,cAAc3kB,KAAKE,UAAU,GAAGgQ,GAAG,mBAAuBA,EAAE,EAAEA,EAAEjR,EAAE1N,OAAO2e,IAAI,CAAC,IAAI7Q,EAAEJ,EAAEiR,GAAG,GAAG7Q,IAAI7N,GAAG6N,EAAE20G,OAAOxiH,EAAEwiH,KAAK,CAAC,IAAI5jH,EAAEozF,GAAGnkF,GAAG,IAAIjP,EAAE,MAAMkG,MAAMzB,EAAE,KAAKioF,EAAGz9E,GAAGs+E,EAAGt+E,EAAEjP,EAAE,CAAC,CAAC,CAAC,MAAM,IAAK,WAAWmuF,GAAG/sF,EAAEyN,GAAG,MAAM,IAAK,SAAmB,OAAViR,EAAEjR,EAAElM,QAAe8kC,GAAGrmC,IAAIyN,EAAEutG,SAASt8F,GAAE,GAAI,EAAEyzE,GAAG6tB,GAAG5tB,GAAG6tB,GACpa,IAAIwC,GAAG,CAACC,uBAAsB,EAAGC,OAAO,CAAC7wB,GAAG8P,GAAG5P,GAAGC,GAAGC,GAAG8tB,KAAK4C,GAAG,CAACC,wBAAwB5qB,GAAG6qB,WAAW,EAAE56F,QAAQ,SAAS66F,oBAAoB,aAC1IC,GAAG,CAACF,WAAWF,GAAGE,WAAW56F,QAAQ06F,GAAG16F,QAAQ66F,oBAAoBH,GAAGG,oBAAoBE,eAAeL,GAAGK,eAAeC,kBAAkB,KAAKC,4BAA4B,KAAKC,4BAA4B,KAAKC,cAAc,KAAKC,wBAAwB,KAAKC,wBAAwB,KAAKC,gBAAgB,KAAKC,mBAAmB,KAAKC,eAAe,KAAKC,qBAAqB56B,EAAG+oB,uBAAuB8R,wBAAwB,SAAS5jH,GAAW,OAAO,QAAfA,EAAEuzF,GAAGvzF,IAAmB,KAAKA,EAAE+xF,SAAS,EAAE8wB,wBAAwBD,GAAGC,yBARjN,WAAc,OAAO,IAAI,EASpUgB,4BAA4B,KAAKC,gBAAgB,KAAKC,aAAa,KAAKC,kBAAkB,KAAKC,gBAAgB,KAAKC,kBAAkB,kCAAkC,GAAG,qBAAqBC,+BAA+B,CAAC,IAAIC,GAAGD,+BAA+B,IAAIC,GAAGC,YAAYD,GAAGE,cAAc,IAAIrvB,GAAGmvB,GAAGG,OAAOvB,IAAIthF,GAAG0iF,EAAE,CAAC,MAAMpkH,IAAG,CAAC,CAAC2E,EAAQqkF,mDAAmDy5B,GAC9Y99G,EAAQ6/G,aAAa,SAASxkH,EAAE0e,GAAG,IAAIjR,EAAE,EAAE3N,UAAUC,aAAQ,IAASD,UAAU,GAAGA,UAAU,GAAG,KAAK,IAAImiH,GAAGvjG,GAAG,MAAM5Z,MAAMzB,EAAE,MAAM,OAbuH,SAAYrD,EAAE0e,EAAEjR,GAAG,IAAII,EAAE,EAAE/N,UAAUC,aAAQ,IAASD,UAAU,GAAGA,UAAU,GAAG,KAAK,MAAM,CAACyxD,SAAS23B,EAAGr7C,IAAI,MAAMhgC,EAAE,KAAK,GAAGA,EAAE6oC,SAAS12C,EAAEm4F,cAAcz5E,EAAE+xF,eAAehjG,EAAE,CAa1Rg3G,CAAGzkH,EAAE0e,EAAE,KAAKjR,EAAE,EAAE9I,EAAQ+/G,WAAW,SAAS1kH,EAAE0e,GAAG,IAAIujG,GAAGjiH,GAAG,MAAM8E,MAAMzB,EAAE,MAAM,IAAIoK,GAAE,EAAGI,EAAE,GAAGjP,EAAEijH,GAA4P,OAAzP,OAAOnjG,QAAG,IAASA,KAAI,IAAKA,EAAEimG,sBAAsBl3G,GAAE,QAAI,IAASiR,EAAE43F,mBAAmBzoG,EAAE6Q,EAAE43F,uBAAkB,IAAS53F,EAAEgiG,qBAAqB9hH,EAAE8f,EAAEgiG,qBAAqBhiG,EAAEnP,GAAGvP,EAAE,GAAE,EAAG,KAAK,EAAKyN,EAAE,EAAGI,EAAEjP,GAAGoB,EAAE8mG,IAAIpoF,EAAEg1E,QAAQgT,GAAG,IAAI1mG,EAAE0tF,SAAS1tF,EAAE4zB,WAAW5zB,GAAU,IAAIuwB,GAAG7R,EAAE,EACrf/Z,EAAQigH,YAAY,SAAS5kH,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,IAAIA,EAAE0tF,SAAS,OAAO1tF,EAAE,IAAI0e,EAAE1e,EAAEivG,gBAAgB,QAAG,IAASvwF,EAAE,CAAC,GAAG,oBAAoB1e,EAAEypD,OAAO,MAAM3kD,MAAMzB,EAAE,MAAiC,MAA3BrD,EAAEnB,OAAOqyD,KAAKlxD,GAAG0Q,KAAK,KAAW5L,MAAMzB,EAAE,IAAIrD,GAAI,CAAqC,OAA5BA,EAAE,QAAVA,EAAEuzF,GAAG70E,IAAc,KAAK1e,EAAE+xF,SAAkB,EAAEptF,EAAQkgH,UAAU,SAAS7kH,GAAG,OAAOigH,GAAGjgH,EAAE,EAAE2E,EAAQmgH,QAAQ,SAAS9kH,EAAE0e,EAAEjR,GAAG,IAAIy0G,GAAGxjG,GAAG,MAAM5Z,MAAMzB,EAAE,MAAM,OAAO++G,GAAG,KAAKpiH,EAAE0e,GAAE,EAAGjR,EAAE,EAC/Y9I,EAAQogH,YAAY,SAAS/kH,EAAE0e,EAAEjR,GAAG,IAAIw0G,GAAGjiH,GAAG,MAAM8E,MAAMzB,EAAE,MAAM,IAAIwK,EAAE,MAAMJ,GAAGA,EAAEu3G,iBAAiB,KAAKpmH,GAAE,EAAGyP,EAAE,GAAGoQ,EAAEojG,GAAyO,GAAtO,OAAOp0G,QAAG,IAASA,KAAI,IAAKA,EAAEk3G,sBAAsB/lH,GAAE,QAAI,IAAS6O,EAAE6oG,mBAAmBjoG,EAAEZ,EAAE6oG,uBAAkB,IAAS7oG,EAAEizG,qBAAqBjiG,EAAEhR,EAAEizG,qBAAqBhiG,EAAE4iG,GAAG5iG,EAAE,KAAK1e,EAAE,EAAE,MAAMyN,EAAEA,EAAE,KAAK7O,EAAE,EAAGyP,EAAEoQ,GAAGze,EAAE8mG,IAAIpoF,EAAEg1E,QAAQgT,GAAG1mG,GAAM6N,EAAE,IAAI7N,EAAE,EAAEA,EAAE6N,EAAE9N,OAAOC,IAA2BpB,GAAhBA,GAAP6O,EAAEI,EAAE7N,IAAOilH,aAAgBx3G,EAAEy3G,SAAS,MAAMxmG,EAAEyiG,gCAAgCziG,EAAEyiG,gCAAgC,CAAC1zG,EAAE7O,GAAG8f,EAAEyiG,gCAAgCj/G,KAAKuL,EACvhB7O,GAAG,OAAO,IAAIojH,GAAGtjG,EAAE,EAAE/Z,EAAQ8kD,OAAO,SAASzpD,EAAE0e,EAAEjR,GAAG,IAAIy0G,GAAGxjG,GAAG,MAAM5Z,MAAMzB,EAAE,MAAM,OAAO++G,GAAG,KAAKpiH,EAAE0e,GAAE,EAAGjR,EAAE,EAAE9I,EAAQwgH,uBAAuB,SAASnlH,GAAG,IAAIkiH,GAAGliH,GAAG,MAAM8E,MAAMzB,EAAE,KAAK,QAAOrD,EAAEo8G,sBAAqB6D,IAAG,WAAWmC,GAAG,KAAK,KAAKpiH,GAAE,GAAG,WAAWA,EAAEo8G,oBAAoB,KAAKp8G,EAAE8mG,IAAI,IAAI,GAAE,KAAG,EAAM,EAAEniG,EAAQygH,wBAAwBpF,GAC/Ur7G,EAAQ0gH,oCAAoC,SAASrlH,EAAE0e,EAAEjR,EAAEI,GAAG,IAAIq0G,GAAGz0G,GAAG,MAAM3I,MAAMzB,EAAE,MAAM,GAAG,MAAMrD,QAAG,IAASA,EAAEivG,gBAAgB,MAAMnqG,MAAMzB,EAAE,KAAK,OAAO++G,GAAGpiH,EAAE0e,EAAEjR,GAAE,EAAGI,EAAE,EAAElJ,EAAQujB,QAAQ,mEChU7L,IAAIxa,EAAI2hD,EAAQ,KAEd1qD,EAAQ+/G,WAAah3G,EAAEg3G,WACvB//G,EAAQogH,YAAcr3G,EAAEq3G,+CCH1B,SAASO,IAEP,GAC4C,qBAAnCnB,gCAC4C,oBAA5CA,+BAA+BmB,SAcxC,IAEEnB,+BAA+BmB,SAASA,EAC1C,CAAE,MAAOj/B,GAGP7yD,QAAQ/wB,MAAM4jF,EAChB,CACF,CAKEi/B,GACAtgH,EAAOL,QAAU,EAAjBK,0BClCFA,EAAOL,QAAQ,SAAS/F,GAAG,IAAID,EAAE,CAAC,EAAE,SAASM,EAAEuB,GAAG,GAAG7B,EAAE6B,GAAG,OAAO7B,EAAE6B,GAAGmE,QAAQ,IAAI3E,EAAErB,EAAE6B,GAAG,CAACX,EAAEW,EAAE4C,GAAE,EAAGuB,QAAQ,CAAC,GAAG,OAAO/F,EAAE4B,GAAGpB,KAAKY,EAAE2E,QAAQ3E,EAAEA,EAAE2E,QAAQ1F,GAAGe,EAAEoD,GAAE,EAAGpD,EAAE2E,OAAO,CAAC,OAAO1F,EAAEyO,EAAE9O,EAAEK,EAAEwO,EAAE9O,EAAEM,EAAE4O,EAAE,SAASjP,EAAED,EAAE6B,GAAGvB,EAAE2B,EAAEhC,EAAED,IAAIE,OAAOgC,eAAejC,EAAED,EAAE,CAACyD,YAAW,EAAGC,IAAI7B,GAAG,EAAEvB,EAAEA,EAAE,SAASL,GAAG,oBAAoBmD,QAAQA,OAAOwjH,aAAa1mH,OAAOgC,eAAejC,EAAEmD,OAAOwjH,YAAY,CAAChkH,MAAM,WAAW1C,OAAOgC,eAAejC,EAAE,aAAa,CAAC2C,OAAM,GAAI,EAAEtC,EAAEN,EAAE,SAASC,EAAED,GAAG,GAAG,EAAEA,IAAIC,EAAEK,EAAEL,IAAI,EAAED,EAAE,OAAOC,EAAE,GAAG,EAAED,GAAG,iBAAiBC,GAAGA,GAAGA,EAAEkF,WAAW,OAAOlF,EAAE,IAAI4B,EAAE3B,OAAOa,OAAO,MAAM,GAAGT,EAAEA,EAAEuB,GAAG3B,OAAOgC,eAAeL,EAAE,UAAU,CAAC4B,YAAW,EAAGb,MAAM3C,IAAI,EAAED,GAAG,iBAAiBC,EAAE,IAAI,IAAIoB,KAAKpB,EAAEK,EAAE4O,EAAErN,EAAER,EAAE,SAASrB,GAAG,OAAOC,EAAED,EAAE,EAAE6T,KAAK,KAAKxS,IAAI,OAAOQ,CAAC,EAAEvB,EAAEuB,EAAE,SAAS5B,GAAG,IAAID,EAAEC,GAAGA,EAAEkF,WAAW,WAAW,OAAOlF,EAAEgF,OAAO,EAAE,WAAW,OAAOhF,CAAC,EAAE,OAAOK,EAAE4O,EAAElP,EAAE,IAAIA,GAAGA,CAAC,EAAEM,EAAE2B,EAAE,SAAShC,EAAED,GAAG,OAAOE,OAAOK,UAAUC,eAAeC,KAAKR,EAAED,EAAE,EAAEM,EAAEoE,EAAE,GAAGpE,EAAEA,EAAEsB,EAAE,EAAE,CAAn5B,CAAq5B,CAAC,SAAS3B,EAAED,GAAGC,EAAE+F,QAAQ0qD,EAAQ,IAAQ,EAAE,SAASzwD,EAAED,EAAEM,GAAG,IAAIuB,GAKh+B,WAAW,aAAa,IAAIvB,EAAE,CAAC,EAAEE,eAAe,SAASa,IAAI,IAAI,IAAIpB,EAAE,GAAGD,EAAE,EAAEA,EAAEmB,UAAUC,OAAOpB,IAAI,CAAC,IAAI6B,EAAEV,UAAUnB,GAAG,GAAG6B,EAAE,CAAC,IAAII,SAASJ,EAAE,GAAG,WAAWI,GAAG,WAAWA,EAAEhC,EAAEsD,KAAK1B,QAAQ,GAAGxB,MAAMs0D,QAAQ9yD,IAAIA,EAAET,OAAO,CAAC,IAAIF,EAAEG,EAAEC,MAAM,KAAKO,GAAGX,GAAGjB,EAAEsD,KAAKrC,EAAE,MAAM,GAAG,WAAWe,EAAE,IAAI,IAAIuR,KAAK3R,EAAEvB,EAAEG,KAAKoB,EAAE2R,IAAI3R,EAAE2R,IAAIvT,EAAEsD,KAAKiQ,EAAE,CAAC,CAAC,OAAOvT,EAAE8R,KAAK,IAAI,CAAC9R,EAAE+F,SAAS3E,EAAE4D,QAAQ5D,EAAEpB,EAAE+F,QAAQ3E,QAAG,KAAUQ,EAAE,WAAW,OAAOR,CAAC,EAAEC,MAAMtB,EAAE,OAAOC,EAAE+F,QAAQnE,EAAE,CAAlb,EAAqb,EAAE,SAAS5B,EAAED,EAAEM,IAAG,SAAUN,GAAG,IAAIM,EAAE,aAAauB,EAAE,qBAAqBR,EAAE,aAAaY,EAAE,cAAcf,EAAEmY,SAAS7F,EAAE,iBAAiBxT,GAAGA,GAAGA,EAAEE,SAASA,QAAQF,EAAE8O,EAAE,iBAAiBjJ,MAAMA,MAAMA,KAAK3F,SAASA,QAAQ2F,KAAKjE,EAAE4R,GAAG1E,GAAG+qD,SAAS,cAATA,GAA0Bp1D,EAAEvE,OAAOK,UAAUiN,SAASkC,EAAE9N,EAAEwB,OAAO8L,EAAEQ,EAAEA,EAAEnP,eAAU,EAAOmE,EAAEwK,EAAEA,EAAE1B,cAAS,EAAO,SAAShL,EAAEvC,GAAG,GAAG,iBAAiBA,EAAE,OAAOA,EAAE,GAAG4f,EAAE5f,GAAG,OAAOyE,EAAEA,EAAEjE,KAAKR,GAAG,GAAG,IAAID,EAAEC,EAAE,GAAG,MAAM,KAAKD,GAAG,EAAEC,IAAG,IAAK,KAAKD,CAAC,CAAC,SAAS+O,EAAE9O,GAAG,IAAID,SAASC,EAAE,QAAQA,IAAI,UAAUD,GAAG,YAAYA,EAAE,CAAC,SAAS6f,EAAE5f,GAAG,MAAM,iBAAiBA,GAAG,SAASA,GAAG,QAAQA,GAAG,iBAAiBA,CAAC,CAAzC,CAA2CA,IAAI,mBAAmBwE,EAAEhE,KAAKR,EAAE,CAAC,SAAS8f,EAAE9f,GAAG,OAAOA,GAAGA,EAAE,SAASA,GAAG,GAAG,iBAAiBA,EAAE,OAAOA,EAAE,GAAG4f,EAAE5f,GAAG,OAAO43D,IAAI,GAAG9oD,EAAE9O,GAAG,CAAC,IAAID,EAAE,mBAAmBC,EAAEs1D,QAAQt1D,EAAEs1D,UAAUt1D,EAAEA,EAAE8O,EAAE/O,GAAGA,EAAE,GAAGA,CAAC,CAAC,GAAG,iBAAiBC,EAAE,OAAO,IAAIA,EAAEA,GAAGA,EAAEA,EAAEA,EAAEqe,QAAQhe,EAAE,IAAI,IAAIkT,EAAEnS,EAAEmI,KAAKvJ,GAAG,OAAOuT,GAAGvR,EAAEuH,KAAKvJ,GAAGiB,EAAEjB,EAAEkE,MAAM,GAAGqP,EAAE,EAAE,GAAG3R,EAAE2H,KAAKvJ,GAAG43D,KAAK53D,CAAC,CAAxQ,CAA0QA,MAAM,KAAKA,KAAI,IAAK,uBAAuBA,EAAE,GAAG,EAAE,GAAGA,GAAGA,EAAEA,EAAE,EAAE,IAAIA,EAAEA,EAAE,CAAC,CAACA,EAAE+F,QAAQ,SAAS/F,EAAED,EAAEM,GAAG,IAAIuB,EAAER,EAAIH,EAAE,OAAOjB,EAAE,OAAO4B,EAAE5B,GAAG,GAAGuC,EAAEX,GAAGR,EAAE,SAASpB,GAAG,IAAID,EAAE+f,EAAE9f,GAAGK,EAAEN,EAAE,EAAE,OAAOA,GAAGA,EAAEM,EAAEN,EAAEM,EAAEN,EAAE,CAAC,CAAlD,CAAoDM,GAAK,EAAEY,EAAEjB,EAAEmB,OAAOC,GAAGA,SAAI,IAASH,IAAIG,EAAEA,GAAGH,EAAEG,EAAEH,GAAgBG,EAAEA,GAA5D,EAAiEA,EAAjE,GAAuEf,EAAEe,EAAErB,EAAEwC,EAAExC,GAAGC,EAAEkE,MAAM7D,EAAEA,EAAEN,EAAEoB,SAASpB,CAAC,CAAE,GAAES,KAAKI,KAAKP,EAAE,GAAG,EAAE,SAASL,EAAED,GAAG,IAAIM,EAAEA,EAAE,WAAW,OAAOO,IAAI,CAAtB,GAA0B,IAAIP,EAAEA,GAAG,IAAIu5D,SAAS,cAAb,EAA6B,CAAC,MAAM55D,GAAG,iBAAiB0F,SAASrF,EAAEqF,OAAO,CAAC1F,EAAE+F,QAAQ1F,CAAC,EAAE,SAASL,EAAED,EAAEM,IAAG,SAAUN,GAAG,IAAkLkB,EAA9KZ,EAAE,8BAA8BuB,EAAE,iBAAiB7B,GAAGA,GAAGA,EAAEE,SAASA,QAAQF,EAAEqB,EAAE,iBAAiBwE,MAAMA,MAAMA,KAAK3F,SAASA,QAAQ2F,KAAK5D,EAAEJ,GAAGR,GAAGw4D,SAAS,cAATA,GAAgCrmD,EAAEnT,MAAME,UAAUuO,EAAE+qD,SAASt5D,UAAUqB,EAAE1B,OAAOK,UAAUkE,EAAExC,EAAE,sBAAsByN,GAAGxO,EAAE,SAASuuE,KAAKhrE,GAAGA,EAAE8tD,MAAM9tD,EAAE8tD,KAAKs0D,UAAU,KAAK,iBAAiB3lH,EAAE,GAAGgO,EAAEJ,EAAEtB,SAAS9I,EAAE9C,EAAEpB,eAAegC,EAAEZ,EAAE4L,SAASuB,EAAEirD,OAAO,IAAI9qD,EAAEzO,KAAKiE,GAAG4Z,QAAQ,sBAAsB,QAAQA,QAAQ,yDAAyD,SAAS,KAAKuB,EAAErM,EAAEoC,OAAOmK,EAAEI,EAAEle,EAAE,OAAO6d,EAAEK,EAAEjgB,OAAO,UAAU,SAASmE,EAAEpE,GAAG,IAAID,GAAG,EAAEM,EAAEL,EAAEA,EAAEmB,OAAO,EAAE,IAAIP,KAAKimH,UAAU9mH,EAAEM,GAAG,CAAC,IAAIuB,EAAE5B,EAAED,GAAGa,KAAK2E,IAAI3D,EAAE,GAAGA,EAAE,GAAG,CAAC,CAAC,SAAS0e,EAAEtgB,GAAG,IAAID,GAAG,EAAEM,EAAEL,EAAEA,EAAEmB,OAAO,EAAE,IAAIP,KAAKimH,UAAU9mH,EAAEM,GAAG,CAAC,IAAIuB,EAAE5B,EAAED,GAAGa,KAAK2E,IAAI3D,EAAE,GAAGA,EAAE,GAAG,CAAC,CAAC,SAAS2e,EAAEvgB,GAAG,IAAID,GAAG,EAAEM,EAAEL,EAAEA,EAAEmB,OAAO,EAAE,IAAIP,KAAKimH,UAAU9mH,EAAEM,GAAG,CAAC,IAAIuB,EAAE5B,EAAED,GAAGa,KAAK2E,IAAI3D,EAAE,GAAGA,EAAE,GAAG,CAAC,CAAC,SAAS6e,EAAEzgB,EAAED,GAAG,IAAI,IAAIM,EAAEuB,EAAER,EAAEpB,EAAEmB,OAAOC,KAAK,IAAIf,EAAEL,EAAEoB,GAAG,OAAOQ,EAAE7B,IAAIM,GAAGA,GAAGuB,GAAGA,EAAE,OAAOR,EAAE,OAAO,CAAC,CAAC,SAASif,EAAErgB,GAAG,SAAS2pC,EAAE3pC,KAAKD,EAAEC,EAAEyP,GAAGA,KAAK1P,MAAM,SAASC,GAAG,IAAID,EAAE4pC,EAAE3pC,GAAGuC,EAAE/B,KAAKR,GAAG,GAAG,MAAM,qBAAqBD,GAAG,8BAA8BA,CAAC,CAAjG,CAAmGC,IAAI,SAASA,GAAG,IAAID,GAAE,EAAG,GAAG,MAAMC,GAAG,mBAAmBA,EAAEuN,SAAS,IAAIxN,KAAKC,EAAE,GAAG,CAAC,MAAMA,GAAG,CAAC,OAAOD,CAAC,CAAhG,CAAkGC,GAAG8O,EAAEzO,GAAGkJ,KAAK,SAASvJ,GAAG,GAAG,MAAMA,EAAE,CAAC,IAAI,OAAOiP,EAAEzO,KAAKR,EAAE,CAAC,MAAMA,GAAG,CAAC,IAAI,OAAOA,EAAE,EAAE,CAAC,MAAMA,GAAG,CAAC,CAAC,MAAM,EAAE,CAA1F,CAA4FA,IAAI,IAAID,CAAC,CAAC,SAASukC,EAAEtkC,EAAED,GAAG,IAAIM,EAAEuB,EAAER,EAAEpB,EAAE8mH,SAAS,OAAO,WAAWllH,SAASvB,EAAEN,KAAK,UAAU6B,GAAG,UAAUA,GAAG,WAAWA,EAAE,cAAcvB,EAAE,OAAOA,GAAGe,EAAE,iBAAiBrB,EAAE,SAAS,QAAQqB,EAAE+rD,GAAG,CAAC,SAASjtC,EAAElgB,EAAED,GAAG,IAAIM,EAAE,SAASL,EAAED,GAAG,OAAO,MAAMC,OAAE,EAAOA,EAAED,EAAE,CAAxC,CAA0CC,EAAED,GAAG,OAAOsgB,EAAEhgB,GAAGA,OAAE,CAAM,CAAC,SAASupC,EAAE5pC,EAAED,GAAG,GAAG,mBAAmBC,GAAGD,GAAG,mBAAmBA,EAAE,MAAM,IAAIW,UAAU,uBAAuB,IAAIL,EAAE,SAAFA,IAAa,IAAIuB,EAAEV,UAAUE,EAAErB,EAAEA,EAAEsB,MAAMT,KAAKgB,GAAGA,EAAE,GAAGI,EAAE3B,EAAE4zB,MAAM,GAAGjyB,EAAEqD,IAAIjE,GAAG,OAAOY,EAAEyB,IAAIrC,GAAG,IAAIH,EAAEjB,EAAEqB,MAAMT,KAAKgB,GAAG,OAAOvB,EAAE4zB,MAAMjyB,EAAEuD,IAAInE,EAAEH,GAAGA,CAAC,EAAE,OAAOZ,EAAE4zB,MAAM,IAAI2V,EAAEm9E,OAAOxmG,GAAGlgB,CAAC,CAAC,SAASspC,EAAE3pC,GAAG,IAAID,SAASC,EAAE,QAAQA,IAAI,UAAUD,GAAG,YAAYA,EAAE,CAACqE,EAAE9D,UAAUumH,MAAM,WAAWjmH,KAAKkmH,SAASjnG,EAAEA,EAAE,MAAM,CAAC,CAAC,EAAEzb,EAAE9D,UAAUs4F,OAAO,SAAS54F,GAAG,OAAOY,KAAKyE,IAAIrF,WAAWY,KAAKkmH,SAAS9mH,EAAE,EAAEoE,EAAE9D,UAAUmD,IAAI,SAASzD,GAAG,IAAID,EAAEa,KAAKkmH,SAAS,GAAGjnG,EAAE,CAAC,IAAIxf,EAAEN,EAAEC,GAAG,MAAM,8BAA8BK,OAAE,EAAOA,CAAC,CAAC,OAAOoE,EAAEjE,KAAKT,EAAEC,GAAGD,EAAEC,QAAG,CAAM,EAAEoE,EAAE9D,UAAU+E,IAAI,SAASrF,GAAG,IAAID,EAAEa,KAAKkmH,SAAS,OAAOjnG,OAAE,IAAS9f,EAAEC,GAAGyE,EAAEjE,KAAKT,EAAEC,EAAE,EAAEoE,EAAE9D,UAAUiF,IAAI,SAASvF,EAAED,GAAG,OAAOa,KAAKkmH,SAAS9mH,GAAG6f,QAAG,IAAS9f,EAAE,4BAA4BA,EAAEa,IAAI,EAAE0f,EAAEhgB,UAAUumH,MAAM,WAAWjmH,KAAKkmH,SAAS,EAAE,EAAExmG,EAAEhgB,UAAUs4F,OAAO,SAAS54F,GAAG,IAAID,EAAEa,KAAKkmH,SAASzmH,EAAEogB,EAAE1gB,EAAEC,GAAG,QAAQK,EAAE,KAAKA,GAAGN,EAAEoB,OAAO,EAAEpB,EAAEsD,MAAMuc,EAAEpf,KAAKT,EAAEM,EAAE,IAAG,EAAG,EAAEigB,EAAEhgB,UAAUmD,IAAI,SAASzD,GAAG,IAAID,EAAEa,KAAKkmH,SAASzmH,EAAEogB,EAAE1gB,EAAEC,GAAG,OAAOK,EAAE,OAAE,EAAON,EAAEM,GAAG,EAAE,EAAEigB,EAAEhgB,UAAU+E,IAAI,SAASrF,GAAG,OAAOygB,EAAE7f,KAAKkmH,SAAS9mH,IAAI,CAAC,EAAEsgB,EAAEhgB,UAAUiF,IAAI,SAASvF,EAAED,GAAG,IAAIM,EAAEO,KAAKkmH,SAASllH,EAAE6e,EAAEpgB,EAAEL,GAAG,OAAO4B,EAAE,EAAEvB,EAAEiD,KAAK,CAACtD,EAAED,IAAIM,EAAEuB,GAAG,GAAG7B,EAAEa,IAAI,EAAE2f,EAAEjgB,UAAUumH,MAAM,WAAWjmH,KAAKkmH,SAAS,CAACE,KAAK,IAAI5iH,EAAE+oD,IAAI,IAAIrtC,GAAGQ,GAAG89C,OAAO,IAAIh6D,EAAE,EAAEmc,EAAEjgB,UAAUs4F,OAAO,SAAS54F,GAAG,OAAOskC,EAAE1jC,KAAKZ,GAAG44F,OAAO54F,EAAE,EAAEugB,EAAEjgB,UAAUmD,IAAI,SAASzD,GAAG,OAAOskC,EAAE1jC,KAAKZ,GAAGyD,IAAIzD,EAAE,EAAEugB,EAAEjgB,UAAU+E,IAAI,SAASrF,GAAG,OAAOskC,EAAE1jC,KAAKZ,GAAGqF,IAAIrF,EAAE,EAAEugB,EAAEjgB,UAAUiF,IAAI,SAASvF,EAAED,GAAG,OAAOukC,EAAE1jC,KAAKZ,GAAGuF,IAAIvF,EAAED,GAAGa,IAAI,EAAEgpC,EAAEm9E,MAAMxmG,EAAEvgB,EAAE+F,QAAQ6jC,CAAE,GAAEppC,KAAKI,KAAKP,EAAE,GAAG,EAAE,SAASL,EAAED,EAAEM,IAAG,SAAUN,GAAG,IAAIM,EAAE,aAAauB,EAAE,qBAAqBR,EAAE,aAAaY,EAAE,cAAcf,EAAEmY,SAAS7F,EAAE,iBAAiBxT,GAAGA,GAAGA,EAAEE,SAASA,QAAQF,EAAE8O,EAAE,iBAAiBjJ,MAAMA,MAAMA,KAAK3F,SAASA,QAAQ2F,KAAKjE,EAAE4R,GAAG1E,GAAG+qD,SAAS,cAATA,GAA0Bp1D,EAAEvE,OAAOK,UAAUiN,SAASkC,EAAE9F,KAAKO,IAAI+E,EAAEtF,KAAKS,IAAI3F,EAAE,WAAW,OAAO9C,EAAEyxB,KAAKC,KAAK,EAAE,SAAS9wB,EAAEvC,GAAG,IAAID,SAASC,EAAE,QAAQA,IAAI,UAAUD,GAAG,YAAYA,EAAE,CAAC,SAAS+O,EAAE9O,GAAG,GAAG,iBAAiBA,EAAE,OAAOA,EAAE,GAAG,SAASA,GAAG,MAAM,iBAAiBA,GAAG,SAASA,GAAG,QAAQA,GAAG,iBAAiBA,CAAC,CAAzC,CAA2CA,IAAI,mBAAmBwE,EAAEhE,KAAKR,EAAE,CAAjH,CAAmHA,GAAG,OAAO43D,IAAI,GAAGr1D,EAAEvC,GAAG,CAAC,IAAID,EAAE,mBAAmBC,EAAEs1D,QAAQt1D,EAAEs1D,UAAUt1D,EAAEA,EAAEuC,EAAExC,GAAGA,EAAE,GAAGA,CAAC,CAAC,GAAG,iBAAiBC,EAAE,OAAO,IAAIA,EAAEA,GAAGA,EAAEA,EAAEA,EAAEqe,QAAQhe,EAAE,IAAI,IAAIkT,EAAEnS,EAAEmI,KAAKvJ,GAAG,OAAOuT,GAAGvR,EAAEuH,KAAKvJ,GAAGiB,EAAEjB,EAAEkE,MAAM,GAAGqP,EAAE,EAAE,GAAG3R,EAAE2H,KAAKvJ,GAAG43D,KAAK53D,CAAC,CAACA,EAAE+F,QAAQ,SAAS/F,EAAED,EAAEM,GAAG,IAAIuB,EAAER,EAAEY,EAAEf,EAAEsS,EAAE1E,EAAElN,EAAE,EAAE6C,GAAE,EAAGob,GAAE,EAAGE,GAAE,EAAG,GAAG,mBAAmB9f,EAAE,MAAM,IAAIU,UAAU,uBAAuB,SAASmf,EAAE9f,GAAG,IAAIM,EAAEuB,EAAEI,EAAEZ,EAAE,OAAOQ,EAAER,OAAE,EAAOO,EAAE5B,EAAEkB,EAAEjB,EAAEqB,MAAMW,EAAE3B,EAAE,CAAqD,SAASigB,EAAEtgB,GAAG,IAAIK,EAAEL,EAAE6O,EAAE,YAAO,IAASA,GAAGxO,GAAGN,GAAGM,EAAE,GAAGuf,GAAG5f,EAAE2B,GAAGK,CAAC,CAAC,SAASue,IAAI,IAAIvgB,EAAEyE,IAAI,GAAG6b,EAAEtgB,GAAG,OAAOygB,EAAEzgB,GAAGuT,EAAEyH,WAAWuF,EAAE,SAASvgB,GAAG,IAAIK,EAAEN,GAAGC,EAAE6O,GAAG,OAAO+Q,EAAE3Q,EAAE5O,EAAE2B,GAAGhC,EAAE2B,IAAItB,CAAC,CAAjD,CAAmDL,GAAG,CAAC,SAASygB,EAAEzgB,GAAG,OAAOuT,OAAE,EAAOuM,GAAGle,EAAEie,EAAE7f,IAAI4B,EAAER,OAAE,EAAOH,EAAE,CAAC,SAASof,IAAI,IAAIrgB,EAAEyE,IAAIpE,EAAEigB,EAAEtgB,GAAG,GAAG4B,EAAEV,UAAUE,EAAER,KAAKiO,EAAE7O,EAAEK,EAAE,CAAC,QAAG,IAASkT,EAAE,OAArW,SAAWvT,GAAG,OAAO2B,EAAE3B,EAAEuT,EAAEyH,WAAWuF,EAAExgB,GAAGyE,EAAEqb,EAAE7f,GAAGiB,CAAC,CAAyTmD,CAAEyK,GAAG,GAAG+Q,EAAE,OAAOrM,EAAEyH,WAAWuF,EAAExgB,GAAG8f,EAAEhR,EAAE,CAAC,YAAO,IAAS0E,IAAIA,EAAEyH,WAAWuF,EAAExgB,IAAIkB,CAAC,CAAC,OAAOlB,EAAE+O,EAAE/O,IAAI,EAAEwC,EAAElC,KAAKmE,IAAInE,EAAE4mH,QAAQjlH,GAAG4d,EAAE,YAAYvf,GAAGoP,EAAEX,EAAEzO,EAAE6mH,UAAU,EAAEnnH,GAAGiC,EAAE8d,EAAE,aAAazf,IAAIA,EAAE8mH,SAASrnG,GAAGO,EAAE+mG,OAAO,gBAAW,IAAS7zG,GAAGi2F,aAAaj2F,GAAG5R,EAAE,EAAEC,EAAEiN,EAAEzN,EAAEmS,OAAE,CAAM,EAAE8M,EAAEgnG,MAAM,WAAW,YAAO,IAAS9zG,EAAEtS,EAAEwf,EAAEhc,IAAI,EAAE4b,CAAC,CAAE,GAAE7f,KAAKI,KAAKP,EAAE,GAAG,EAAE,SAASL,EAAED,EAAEM,IAAG,SAAUL,EAAEK,GAAG,IAAIuB,EAAE,qBAAqBR,EAAE,eAAeY,EAAE,kBAAkBf,EAAE,eAAesS,EAAE,mDAAmD1E,EAAE,QAAQlN,EAAE,MAAM6C,EAAE,mGAAmGiL,EAAE,WAAWR,EAAE,8BAA8BxK,EAAE,mBAAmBlC,EAAE,CAAC,EAAEA,EAAE,yBAAyBA,EAAE,yBAAyBA,EAAE,sBAAsBA,EAAE,uBAAuBA,EAAE,uBAAuBA,EAAE,uBAAuBA,EAAE,8BAA8BA,EAAE,wBAAwBA,EAAE,yBAAwB,EAAGA,EAAEX,GAAGW,EAAE,kBAAkBA,EAAE,wBAAwBA,EAAE,oBAAoBA,EAAE,qBAAqBA,EAAE,iBAAiBA,EAAE,kBAAkBA,EAAE,qBAAqBA,EAAEnB,GAAGmB,EAAE,mBAAmBA,EAAEP,GAAGO,EAAE,mBAAmBA,EAAEtB,GAAGsB,EAAE,mBAAmBA,EAAE,qBAAoB,EAAG,IAAIuM,EAAE,iBAAiB9O,GAAGA,GAAGA,EAAEC,SAASA,QAAQD,EAAE4f,EAAE,iBAAiBha,MAAMA,MAAMA,KAAK3F,SAASA,QAAQ2F,KAAKka,EAAEhR,GAAG8Q,GAAGg6C,SAAS,cAATA,GAA0B/5C,EAAE9f,IAAIA,EAAE+uF,UAAU/uF,EAAEqE,EAAEyb,GAAG,iBAAiBxf,GAAGA,IAAIA,EAAEyuF,UAAUzuF,EAAEigB,EAAElc,GAAGA,EAAE2B,UAAU8Z,GAAG/Q,EAAEw4G,QAAQ/mG,EAAE,WAAW,IAAI,OAAOD,GAAGA,EAAEinG,QAAQ,OAAO,CAAC,MAAMvnH,GAAG,CAAC,CAArD,GAAyDygB,EAAEF,GAAGA,EAAEinG,aAAa,SAASnnG,EAAErgB,EAAED,EAAEM,EAAEuB,GAAG,IAAIR,GAAG,EAAEY,EAAEhC,EAAEA,EAAEmB,OAAO,EAAE,IAAIS,GAAGI,IAAI3B,EAAEL,IAAIoB,MAAMA,EAAEY,GAAG3B,EAAEN,EAAEM,EAAEL,EAAEoB,GAAGA,EAAEpB,GAAG,OAAOK,CAAC,CAAC,SAASikC,EAAEtkC,EAAED,GAAG,IAAI,IAAIM,GAAG,EAAEuB,EAAE5B,EAAEA,EAAEmB,OAAO,IAAId,EAAEuB,GAAG,GAAG7B,EAAEC,EAAEK,GAAGA,EAAEL,GAAG,OAAM,EAAG,OAAM,CAAE,CAAC,SAASkgB,EAAElgB,EAAED,EAAEM,EAAEuB,EAAER,GAAG,OAAOA,EAAEpB,GAAG,SAASA,EAAEoB,EAAEY,GAAG3B,EAAEuB,GAAGA,GAAE,EAAG5B,GAAGD,EAAEM,EAAEL,EAAEoB,EAAEY,EAAE,IAAI3B,CAAC,CAAC,SAASupC,EAAE5pC,GAAG,IAAID,GAAE,EAAG,GAAG,MAAMC,GAAG,mBAAmBA,EAAEuN,SAAS,IAAIxN,KAAKC,EAAE,GAAG,CAAC,MAAMA,GAAG,CAAC,OAAOD,CAAC,CAAC,SAAS4pC,EAAE3pC,GAAG,IAAID,GAAG,EAAEM,EAAED,MAAMJ,EAAE+xB,MAAM,OAAO/xB,EAAE+zB,SAAS,SAAS/zB,EAAE4B,GAAGvB,IAAIN,GAAG,CAAC6B,EAAE5B,EAAE,IAAIK,CAAC,CAAC,SAAS+O,EAAEpP,GAAG,IAAID,GAAG,EAAEM,EAAED,MAAMJ,EAAE+xB,MAAM,OAAO/xB,EAAE+zB,SAAS,SAAS/zB,GAAGK,IAAIN,GAAGC,CAAC,IAAIK,CAAC,CAAC,IAAI+f,EAAEM,EAAEwmB,EAAE1mB,EAAEpgB,MAAME,UAAUsgB,EAAEg5C,SAASt5D,UAAU6f,EAAElgB,OAAOK,UAAUmmB,EAAE3G,EAAE,sBAAsBa,GAAGP,EAAE,SAASovD,KAAK/oD,GAAGA,EAAE6rC,MAAM7rC,EAAE6rC,KAAKs0D,UAAU,KAAK,iBAAiBxmG,EAAE,GAAG+mB,EAAEvmB,EAAErT,SAAS+5B,EAAEnnB,EAAE5f,eAAeomB,EAAExG,EAAE5S,SAAS65B,EAAE2yB,OAAO,IAAI5yB,EAAE3mC,KAAK8mC,GAAGjpB,QAAQ,sBAAsB,QAAQA,QAAQ,yDAAyD,SAAS,KAAKupB,EAAE9nB,EAAE3c,OAAO6mC,EAAElqB,EAAE8+B,WAAWvX,EAAElnB,EAAE1e,qBAAqB2oC,EAAE5pB,EAAE7K,OAAO20B,GAAG5pB,EAAEzgB,OAAOqyD,KAAKprB,EAAEjnC,OAAO,SAASD,GAAG,OAAO0gB,EAAEwmB,EAAElnC,GAAG,GAAG8pC,EAAE26D,GAAG3kF,EAAE,YAAY+pB,EAAE46D,GAAG3kF,EAAE,OAAOiqB,EAAE06D,GAAG3kF,EAAE,WAAWuqB,EAAEo6D,GAAG3kF,EAAE,OAAOqqB,EAAEs6D,GAAG3kF,EAAE,WAAWyqB,EAAEk6D,GAAGxkG,OAAO,UAAUgqC,EAAE+7D,GAAGl8D,GAAGI,EAAE87D,GAAGn8D,GAAG+3D,GAAGoE,GAAGj8D,GAAGg5D,GAAGiD,GAAG37D,GAAGw4D,GAAGmD,GAAG77D,GAAG9B,GAAGT,EAAEA,EAAEtnC,eAAU,EAAOihG,GAAGl5D,GAAGA,GAAGitB,aAAQ,EAAOmtC,GAAGp6D,GAAGA,GAAG96B,cAAS,EAAO,SAASy0F,GAAGhiG,GAAG,IAAID,GAAG,EAAEM,EAAEL,EAAEA,EAAEmB,OAAO,EAAE,IAAIP,KAAKimH,UAAU9mH,EAAEM,GAAG,CAAC,IAAIuB,EAAE5B,EAAED,GAAGa,KAAK2E,IAAI3D,EAAE,GAAGA,EAAE,GAAG,CAAC,CAAC,SAASohG,GAAGhjG,GAAG,IAAID,GAAG,EAAEM,EAAEL,EAAEA,EAAEmB,OAAO,EAAE,IAAIP,KAAKimH,UAAU9mH,EAAEM,GAAG,CAAC,IAAIuB,EAAE5B,EAAED,GAAGa,KAAK2E,IAAI3D,EAAE,GAAGA,EAAE,GAAG,CAAC,CAAC,SAAS8/F,GAAG1hG,GAAG,IAAID,GAAG,EAAEM,EAAEL,EAAEA,EAAEmB,OAAO,EAAE,IAAIP,KAAKimH,UAAU9mH,EAAEM,GAAG,CAAC,IAAIuB,EAAE5B,EAAED,GAAGa,KAAK2E,IAAI3D,EAAE,GAAGA,EAAE,GAAG,CAAC,CAAC,SAASkhG,GAAG9iG,GAAG,IAAID,GAAG,EAAEM,EAAEL,EAAEA,EAAEmB,OAAO,EAAE,IAAIP,KAAKkmH,SAAS,IAAIplB,KAAK3hG,EAAEM,GAAGO,KAAKgmC,IAAI5mC,EAAED,GAAG,CAAC,SAASkiG,GAAGjiG,GAAGY,KAAKkmH,SAAS,IAAI9jB,GAAGhjG,EAAE,CAA0N,SAAS2hG,GAAG3hG,EAAED,GAAG,IAAI,IAAIM,EAAEL,EAAEmB,OAAOd,KAAK,GAAGikG,GAAGtkG,EAAEK,GAAG,GAAGN,GAAG,OAAOM,EAAE,OAAO,CAAC,CAAC2hG,GAAG1hG,UAAUumH,MAAM,WAAWjmH,KAAKkmH,SAASv8E,EAAEA,EAAE,MAAM,CAAC,CAAC,EAAEy3D,GAAG1hG,UAAUs4F,OAAO,SAAS54F,GAAG,OAAOY,KAAKyE,IAAIrF,WAAWY,KAAKkmH,SAAS9mH,EAAE,EAAEgiG,GAAG1hG,UAAUmD,IAAI,SAASzD,GAAG,IAAID,EAAEa,KAAKkmH,SAAS,GAAGv8E,EAAE,CAAC,IAAIlqC,EAAEN,EAAEC,GAAG,MAAM,8BAA8BK,OAAE,EAAOA,CAAC,CAAC,OAAOinC,EAAE9mC,KAAKT,EAAEC,GAAGD,EAAEC,QAAG,CAAM,EAAEgiG,GAAG1hG,UAAU+E,IAAI,SAASrF,GAAG,IAAID,EAAEa,KAAKkmH,SAAS,OAAOv8E,OAAE,IAASxqC,EAAEC,GAAGsnC,EAAE9mC,KAAKT,EAAEC,EAAE,EAAEgiG,GAAG1hG,UAAUiF,IAAI,SAASvF,EAAED,GAAG,OAAOa,KAAKkmH,SAAS9mH,GAAGuqC,QAAG,IAASxqC,EAAE,4BAA4BA,EAAEa,IAAI,EAAEoiG,GAAG1iG,UAAUumH,MAAM,WAAWjmH,KAAKkmH,SAAS,EAAE,EAAE9jB,GAAG1iG,UAAUs4F,OAAO,SAAS54F,GAAG,IAAID,EAAEa,KAAKkmH,SAASzmH,EAAEshG,GAAG5hG,EAAEC,GAAG,QAAQK,EAAE,KAAKA,GAAGN,EAAEoB,OAAO,EAAEpB,EAAEsD,MAAM+mC,EAAE5pC,KAAKT,EAAEM,EAAE,IAAG,EAAG,EAAE2iG,GAAG1iG,UAAUmD,IAAI,SAASzD,GAAG,IAAID,EAAEa,KAAKkmH,SAASzmH,EAAEshG,GAAG5hG,EAAEC,GAAG,OAAOK,EAAE,OAAE,EAAON,EAAEM,GAAG,EAAE,EAAE2iG,GAAG1iG,UAAU+E,IAAI,SAASrF,GAAG,OAAO2hG,GAAG/gG,KAAKkmH,SAAS9mH,IAAI,CAAC,EAAEgjG,GAAG1iG,UAAUiF,IAAI,SAASvF,EAAED,GAAG,IAAIM,EAAEO,KAAKkmH,SAASllH,EAAE+/F,GAAGthG,EAAEL,GAAG,OAAO4B,EAAE,EAAEvB,EAAEiD,KAAK,CAACtD,EAAED,IAAIM,EAAEuB,GAAG,GAAG7B,EAAEa,IAAI,EAAE8gG,GAAGphG,UAAUumH,MAAM,WAAWjmH,KAAKkmH,SAAS,CAACE,KAAK,IAAIhlB,GAAG70C,IAAI,IAAItjB,GAAGm5D,IAAI5kC,OAAO,IAAI4jC,GAAG,EAAEN,GAAGphG,UAAUs4F,OAAO,SAAS54F,GAAG,OAAOooC,GAAGxnC,KAAKZ,GAAG44F,OAAO54F,EAAE,EAAE0hG,GAAGphG,UAAUmD,IAAI,SAASzD,GAAG,OAAOooC,GAAGxnC,KAAKZ,GAAGyD,IAAIzD,EAAE,EAAE0hG,GAAGphG,UAAU+E,IAAI,SAASrF,GAAG,OAAOooC,GAAGxnC,KAAKZ,GAAGqF,IAAIrF,EAAE,EAAE0hG,GAAGphG,UAAUiF,IAAI,SAASvF,EAAED,GAAG,OAAOqoC,GAAGxnC,KAAKZ,GAAGuF,IAAIvF,EAAED,GAAGa,IAAI,EAAEkiG,GAAGxiG,UAAUsmC,IAAIk8D,GAAGxiG,UAAUgD,KAAK,SAAStD,GAAG,OAAOY,KAAKkmH,SAASvhH,IAAIvF,EAAE,6BAA6BY,IAAI,EAAEkiG,GAAGxiG,UAAU+E,IAAI,SAASrF,GAAG,OAAOY,KAAKkmH,SAASzhH,IAAIrF,EAAE,EAAEiiG,GAAG3hG,UAAUumH,MAAM,WAAWjmH,KAAKkmH,SAAS,IAAI9jB,EAAE,EAAEf,GAAG3hG,UAAUs4F,OAAO,SAAS54F,GAAG,OAAOY,KAAKkmH,SAASluB,OAAO54F,EAAE,EAAEiiG,GAAG3hG,UAAUmD,IAAI,SAASzD,GAAG,OAAOY,KAAKkmH,SAASrjH,IAAIzD,EAAE,EAAEiiG,GAAG3hG,UAAU+E,IAAI,SAASrF,GAAG,OAAOY,KAAKkmH,SAASzhH,IAAIrF,EAAE,EAAEiiG,GAAG3hG,UAAUiF,IAAI,SAASvF,EAAED,GAAG,IAAIM,EAAEO,KAAKkmH,SAAS,GAAGzmH,aAAa2iG,GAAG,CAAC,IAAIphG,EAAEvB,EAAEymH,SAAS,IAAIj9E,GAAGjoC,EAAET,OAAO,IAAI,OAAOS,EAAE0B,KAAK,CAACtD,EAAED,IAAIa,KAAKP,EAAEO,KAAKkmH,SAAS,IAAIplB,GAAG9/F,EAAE,CAAC,OAAOvB,EAAEkF,IAAIvF,EAAED,GAAGa,IAAI,EAAE,IAAI2xC,GAAMiwD,IAAIjwD,GAAG,SAASvyC,EAAED,GAAG,OAAOC,GAAGmjG,GAAGnjG,EAAED,EAAE6iG,GAAG,EAAE,SAAS5iG,EAAED,GAAG,GAAG,MAAMC,EAAE,OAAOA,EAAE,IAAIojG,GAAGpjG,GAAG,OAAOuyC,GAAGvyC,EAAED,GAAG,IAAI,IAAIM,EAAEL,EAAEmB,OAAOS,GAAQ,EAAER,EAAEnB,OAAOD,KAAa4B,EAAEvB,IAAI,IAAKN,EAAEqB,EAAEQ,GAAGA,EAAER,KAAK,OAAOpB,CAAC,GAAGmjG,GAAsB,SAASpjG,EAAEM,EAAEuB,GAAG,IAAI,IAAIR,GAAG,EAAEY,EAAE/B,OAAOF,GAAGkB,EAAEW,EAAE7B,GAAGwT,EAAEtS,EAAEE,OAAOoS,KAAK,CAAC,IAAI1E,EAAE5N,IAAQG,GAAG,IAAG,IAAKf,EAAE2B,EAAE6M,GAAGA,EAAE7M,GAAG,KAAK,CAAC,OAAOjC,CAAC,EAAK,SAASyhG,GAAGxhG,EAAED,GAAG,IAAI,IAAIM,EAAE,EAAEuB,GAAG7B,EAAE6jG,GAAG7jG,EAAEC,GAAG,CAACD,GAAGomG,GAAGpmG,IAAIoB,OAAO,MAAMnB,GAAGK,EAAEuB,GAAG5B,EAAEA,EAAE2jG,GAAG5jG,EAAEM,OAAO,OAAOA,GAAGA,GAAGuB,EAAE5B,OAAE,CAAM,CAAC,SAAS8hG,GAAG9hG,EAAED,GAAG,OAAO,MAAMC,GAAGD,KAAKE,OAAOD,EAAE,CAAC,SAASijG,GAAGjjG,EAAED,EAAEM,EAAEkT,EAAE1E,GAAG,OAAO7O,IAAID,IAAI,MAAMC,GAAG,MAAMD,IAAIgnG,GAAG/mG,KAAKsmG,GAAGvmG,GAAGC,GAAGA,GAAGD,GAAGA,EAAE,SAASC,EAAED,EAAEM,EAAEkT,EAAE1E,EAAElN,GAAG,IAAI6C,EAAE2/F,GAAGnkG,GAAGyP,EAAE00F,GAAGpkG,GAAGkP,EAAE,iBAAiBxK,EAAE,iBAAiBD,IAAIyK,GAAGA,EAAE01F,GAAG3kG,KAAK4B,EAAEI,EAAEiN,GAAGQ,IAAIhL,GAAGA,EAAEkgG,GAAG5kG,KAAK6B,EAAEI,EAAEyC,GAAG,IAAIlC,EAAE0M,GAAGjN,IAAI4nC,EAAE5pC,GAAG8O,EAAErK,GAAGzC,IAAI4nC,EAAE7pC,GAAG6f,EAAE3Q,GAAGxK,EAAE,GAAGmb,IAAIrd,EAAE,OAAOZ,IAAIA,EAAE,IAAIsgG,IAAIz9F,GAAG6hG,GAAGrmG,GAAG0oG,GAAG1oG,EAAED,EAAEM,EAAEkT,EAAE1E,EAAElN,GAAG,SAAS3B,EAAED,EAAEM,EAAEuB,EAAEI,EAAEuR,EAAE1E,GAAG,OAAOxO,GAAG,IAAI,oBAAoB,GAAGL,EAAEynH,YAAY1nH,EAAE0nH,YAAYznH,EAAE0nH,YAAY3nH,EAAE2nH,WAAW,OAAM,EAAG1nH,EAAEA,EAAE2nH,OAAO5nH,EAAEA,EAAE4nH,OAAO,IAAI,uBAAuB,QAAQ3nH,EAAEynH,YAAY1nH,EAAE0nH,aAAa7lH,EAAE,IAAIooC,EAAEhqC,GAAG,IAAIgqC,EAAEjqC,KAAK,IAAI,mBAAmB,IAAI,gBAAgB,IAAI,kBAAkB,OAAOukG,IAAItkG,GAAGD,GAAG,IAAI,iBAAiB,OAAOC,EAAEmW,MAAMpW,EAAEoW,MAAMnW,EAAE43G,SAAS73G,EAAE63G,QAAQ,IAAI,kBAAkB,IAAI,kBAAkB,OAAO53G,GAAGD,EAAE,GAAG,KAAKqB,EAAE,IAAIO,EAAEgoC,EAAE,KAAK1oC,EAAE,IAAIuD,EAAE,EAAE+O,EAAE,GAAG5R,IAAIA,EAAEyN,GAAGpP,EAAE+xB,MAAMhyB,EAAEgyB,OAAOvtB,EAAE,OAAM,EAAG,IAAIiL,EAAEZ,EAAEpL,IAAIzD,GAAG,GAAGyP,EAAE,OAAOA,GAAG1P,EAAEwT,GAAG,EAAE1E,EAAEtJ,IAAIvF,EAAED,GAAG,IAAIkP,EAAEy5F,GAAG/mG,EAAE3B,GAAG2B,EAAE5B,GAAG6B,EAAEI,EAAEuR,EAAE1E,GAAG,OAAOA,EAAE+pF,OAAO54F,GAAGiP,EAAE,IAAI,kBAAkB,GAAGsyF,GAAG,OAAOA,GAAG/gG,KAAKR,IAAIuhG,GAAG/gG,KAAKT,GAAG,OAAM,CAAE,CAAlqB,CAAoqBC,EAAED,EAAEkP,EAAE5O,EAAEkT,EAAE1E,EAAElN,GAAG,KAAK,EAAEkN,GAAG,CAAC,IAAIiR,EAAEvd,GAAG+kC,EAAE9mC,KAAKR,EAAE,eAAe6f,EAAE/Q,GAAGw4B,EAAE9mC,KAAKT,EAAE,eAAe,GAAG+f,GAAGD,EAAE,CAAC,IAAIzb,EAAE0b,EAAE9f,EAAE2C,QAAQ3C,EAAEsgB,EAAET,EAAE9f,EAAE4C,QAAQ5C,EAAE,OAAO4B,IAAIA,EAAE,IAAIsgG,IAAI5hG,EAAE+D,EAAEkc,EAAE/M,EAAE1E,EAAElN,EAAE,CAAC,CAAC,QAAIie,IAAkBje,IAAIA,EAAE,IAAIsgG,IAAI,SAASjiG,EAAED,EAAEM,EAAEuB,EAAER,EAAEY,GAAG,IAAIf,EAAE,EAAEG,EAAEmS,EAAEqvF,GAAG5iG,GAAG6O,EAAE0E,EAAEpS,OAAsB,GAAG0N,GAAhB+zF,GAAG7iG,GAAGoB,SAAiBF,EAAE,OAAM,EAAW,IAAR,IAAIuD,EAAEqK,EAAOrK,KAAK,CAAC,IAAIiL,EAAE8D,EAAE/O,GAAG,KAAKvD,EAAEwO,KAAK1P,EAAEunC,EAAE9mC,KAAKT,EAAE0P,IAAI,OAAM,CAAE,CAAC,IAAIR,EAAEjN,EAAEyB,IAAIzD,GAAG,GAAGiP,GAAGjN,EAAEyB,IAAI1D,GAAG,OAAOkP,GAAGlP,EAAE,IAAI0E,GAAE,EAAGzC,EAAEuD,IAAIvF,EAAED,GAAGiC,EAAEuD,IAAIxF,EAAEC,GAAW,IAAR,IAAIuC,EAAEtB,IAASuD,EAAEqK,GAAG,CAAQ,IAAIC,EAAE9O,EAAbyP,EAAE8D,EAAE/O,IAAcob,EAAE7f,EAAE0P,GAAG,GAAG7N,EAAE,IAAIke,EAAE7e,EAAEW,EAAEge,EAAE9Q,EAAEW,EAAE1P,EAAEC,EAAEgC,GAAGJ,EAAEkN,EAAE8Q,EAAEnQ,EAAEzP,EAAED,EAAEiC,GAAG,UAAK,IAAS8d,EAAEhR,IAAI8Q,GAAGvf,EAAEyO,EAAE8Q,EAAEhe,EAAER,EAAEY,GAAG8d,GAAG,CAACrb,GAAE,EAAG,KAAK,CAAClC,IAAIA,EAAE,eAAekN,EAAE,CAAC,GAAGhL,IAAIlC,EAAE,CAAC,IAAIsd,EAAE7f,EAAEa,YAAYuD,EAAErE,EAAEc,YAAYgf,GAAGzb,KAAK,gBAAgBpE,MAAM,gBAAgBD,IAAI,mBAAmB8f,GAAGA,aAAaA,GAAG,mBAAmBzb,GAAGA,aAAaA,IAAIK,GAAE,EAAG,CAAC,OAAOzC,EAAE42F,OAAO54F,GAAGgC,EAAE42F,OAAO74F,GAAG0E,CAAC,CAAzlB,CAA2lBzE,EAAED,EAAEM,EAAEkT,EAAE1E,EAAElN,GAAE,CAArrD,CAAurD3B,EAAED,EAAEkjG,GAAG5iG,EAAEkT,EAAE1E,GAAG,CAAo7C,SAASs3F,GAAGnmG,GAAG,OAAOmkG,GAAGnkG,GAAGA,EAAEsjG,GAAGtjG,EAAE,CAAC,SAAS0oG,GAAG1oG,EAAED,EAAEM,EAAEuB,EAAER,EAAEY,GAAG,IAAIf,EAAE,EAAEG,EAAEmS,EAAEvT,EAAEmB,OAAO0N,EAAE9O,EAAEoB,OAAO,GAAGoS,GAAG1E,KAAK5N,GAAG4N,EAAE0E,GAAG,OAAM,EAAG,IAAI5R,EAAEK,EAAEyB,IAAIzD,GAAG,GAAG2B,GAAGK,EAAEyB,IAAI1D,GAAG,OAAO4B,GAAG5B,EAAE,IAAIyE,GAAG,EAAEiL,GAAE,EAAGR,EAAE,EAAE7N,EAAE,IAAI0hG,QAAG,EAAO,IAAI9gG,EAAEuD,IAAIvF,EAAED,GAAGiC,EAAEuD,IAAIxF,EAAEC,KAAKwE,EAAE+O,GAAG,CAAC,IAAI9O,EAAEzE,EAAEwE,GAAGjC,EAAExC,EAAEyE,GAAG,GAAG5C,EAAE,IAAIkN,EAAE7N,EAAEW,EAAEW,EAAEkC,EAAED,EAAEzE,EAAEC,EAAEgC,GAAGJ,EAAE6C,EAAElC,EAAEiC,EAAExE,EAAED,EAAEiC,GAAG,QAAG,IAAS8M,EAAE,CAAC,GAAGA,EAAE,SAASW,GAAE,EAAG,KAAK,CAAC,GAAGR,GAAG,IAAIq1B,EAAEvkC,GAAG,SAASC,EAAED,GAAG,IAAIkP,EAAE5J,IAAItF,KAAK0E,IAAIzE,GAAGK,EAAEoE,EAAEzE,EAAE4B,EAAER,EAAEY,IAAI,OAAOiN,EAAE23B,IAAI7mC,EAAE,IAAI,CAAC0P,GAAE,EAAG,KAAK,OAAO,GAAGhL,IAAIlC,IAAIlC,EAAEoE,EAAElC,EAAEX,EAAER,EAAEY,GAAG,CAACyN,GAAE,EAAG,KAAK,CAAC,CAAC,OAAOzN,EAAE42F,OAAO54F,GAAGgC,EAAE42F,OAAO74F,GAAG0P,CAAC,CAAC,SAAS24B,GAAGpoC,EAAED,GAAG,IAAIM,EAAEuB,EAAER,EAAEpB,EAAE8mH,SAAS,OAAO,WAAWllH,SAASvB,EAAEN,KAAK,UAAU6B,GAAG,UAAUA,GAAG,WAAWA,EAAE,cAAcvB,EAAE,OAAOA,GAAGe,EAAE,iBAAiBrB,EAAE,SAAS,QAAQqB,EAAE+rD,GAAG,CAAC,SAASs3C,GAAGzkG,EAAED,GAAG,IAAIM,EAAE,SAASL,EAAED,GAAG,OAAO,MAAMC,OAAE,EAAOA,EAAED,EAAE,CAAxC,CAA0CC,EAAED,GAAG,OAAtqE,SAAYC,GAAG,SAAS+mG,GAAG/mG,IAAI,SAASA,GAAG,QAAQ2gB,GAAGA,KAAK3gB,CAAC,CAA7B,CAA+BA,MAAMwjG,GAAGxjG,IAAI4pC,EAAE5pC,GAAGonC,EAAEn4B,GAAG1F,KAAKy8F,GAAGhmG,GAAG,CAA6kEyjG,CAAGpjG,GAAGA,OAAE,CAAM,CAAC,IAAIskG,GAAG,SAAS3kG,GAAG,OAAO2mB,EAAEnmB,KAAKR,EAAE,EAAE,SAAS4oG,GAAG5oG,EAAED,GAAG,SAASA,EAAE,MAAMA,EAAE,iBAAiBA,KAAK,iBAAiBC,GAAGyE,EAAE8E,KAAKvJ,KAAKA,GAAG,GAAGA,EAAE,GAAG,GAAGA,EAAED,CAAC,CAAC,SAAS6jG,GAAG5jG,EAAED,GAAG,GAAGokG,GAAGnkG,GAAG,OAAM,EAAG,IAAIK,SAASL,EAAE,QAAQ,UAAUK,GAAG,UAAUA,GAAG,WAAWA,GAAG,MAAML,IAAIikG,GAAGjkG,KAAM6O,EAAEtF,KAAKvJ,KAAKuT,EAAEhK,KAAKvJ,IAAI,MAAMD,GAAGC,KAAKC,OAAOF,EAAG,CAAC,SAASqmG,GAAGpmG,GAAG,OAAOA,GAAGA,IAAI+mG,GAAG/mG,EAAE,CAAC,SAAS+jG,GAAG/jG,EAAED,GAAG,OAAO,SAASM,GAAG,OAAO,MAAMA,GAAIA,EAAEL,KAAKD,SAAI,IAASA,GAAGC,KAAKC,OAAOI,GAAI,CAAC,EAAEypC,GAAG,qBAAqB66D,GAAG,IAAI76D,EAAE,IAAI89E,YAAY,MAAM/9E,GAAG86D,GAAG,IAAI96D,IAAIzoC,GAAG2oC,GAAG,oBAAoB46D,GAAG56D,EAAExlC,YAAY8lC,GAAGs6D,GAAG,IAAIt6D,IAAIppC,GAAGkpC,GAAG,oBAAoBw6D,GAAG,IAAIx6D,MAAMw6D,GAAG,SAAS3kG,GAAG,IAAID,EAAE4mB,EAAEnmB,KAAKR,GAAGK,EAAEN,GAAGiC,EAAEhC,EAAEa,iBAAY,EAAOe,EAAEvB,EAAE2lG,GAAG3lG,QAAG,EAAO,GAAGuB,EAAE,OAAOA,GAAG,KAAKqoC,EAAE,MAAM,oBAAoB,KAAKC,EAAE,OAAO9oC,EAAE,KAAKwgG,GAAG,MAAM,mBAAmB,KAAKmB,GAAG,OAAO9hG,EAAE,KAAK4hG,GAAG,MAAM,mBAAmB,OAAO9iG,CAAC,GAAG,IAAIujG,GAAGO,IAAI,SAAS7jG,GAAG,IAAID,EAAEC,EAAE,OAAOD,EAAEC,GAAG,GAAG,SAASA,GAAG,GAAG,iBAAiBA,EAAE,OAAOA,EAAE,GAAGikG,GAAGjkG,GAAG,OAAOyiG,GAAGA,GAAGjiG,KAAKR,GAAG,GAAG,IAAID,EAAEC,EAAE,GAAG,MAAM,KAAKD,GAAG,EAAEC,IAAG,IAAK,KAAKD,CAAC,CAArH,CAAuHA,GAAG,IAAIM,EAAE,GAAG,OAAOsB,EAAE4H,KAAKvJ,IAAIK,EAAEiD,KAAK,IAAItD,EAAEqe,QAAQ7Z,GAAG,SAASxE,EAAED,EAAE6B,EAAER,GAAGf,EAAEiD,KAAK1B,EAAER,EAAEid,QAAQ5O,EAAE,MAAM1P,GAAGC,EAAE,IAAIK,CAAC,IAAI,SAASsjG,GAAG3jG,GAAG,GAAG,iBAAiBA,GAAGikG,GAAGjkG,GAAG,OAAOA,EAAE,IAAID,EAAEC,EAAE,GAAG,MAAM,KAAKD,GAAG,EAAEC,IAAG,IAAK,KAAKD,CAAC,CAAC,SAASimG,GAAGhmG,GAAG,GAAG,MAAMA,EAAE,CAAC,IAAI,OAAOmnC,EAAE3mC,KAAKR,EAAE,CAAC,MAAMA,GAAG,CAAC,IAAI,OAAOA,EAAE,EAAE,CAAC,MAAMA,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS6jG,GAAG7jG,EAAED,GAAG,GAAG,mBAAmBC,GAAGD,GAAG,mBAAmBA,EAAE,MAAM,IAAIW,UAAU,uBAAuB,IAAIL,EAAE,SAAFA,IAAa,IAAIuB,EAAEV,UAAUE,EAAErB,EAAEA,EAAEsB,MAAMT,KAAKgB,GAAGA,EAAE,GAAGI,EAAE3B,EAAE4zB,MAAM,GAAGjyB,EAAEqD,IAAIjE,GAAG,OAAOY,EAAEyB,IAAIrC,GAAG,IAAIH,EAAEjB,EAAEqB,MAAMT,KAAKgB,GAAG,OAAOvB,EAAE4zB,MAAMjyB,EAAEuD,IAAInE,EAAEH,GAAGA,CAAC,EAAE,OAAOZ,EAAE4zB,MAAM,IAAI4vE,GAAGkjB,OAAOrlB,IAAIrhG,CAAC,CAAC,SAASikG,GAAGtkG,EAAED,GAAG,OAAOC,IAAID,GAAGC,GAAGA,GAAGD,GAAGA,CAAC,CAAC,SAASmmG,GAAGlmG,GAAG,OAAO,SAASA,GAAG,OAAOsmG,GAAGtmG,IAAIojG,GAAGpjG,EAAE,CAA/B,CAAiCA,IAAIsnC,EAAE9mC,KAAKR,EAAE,aAAaqnC,EAAE7mC,KAAKR,EAAE,WAAW2mB,EAAEnmB,KAAKR,IAAI4B,EAAE,CAACiiG,GAAGkjB,MAAMrlB,GAAG,IAAIyC,GAAG/jG,MAAMs0D,QAAQ,SAAS0uC,GAAGpjG,GAAG,OAAO,MAAMA,GAAG6nH,GAAG7nH,EAAEmB,UAAUqiG,GAAGxjG,EAAE,CAAC,SAASwjG,GAAGxjG,GAAG,IAAID,EAAEgnG,GAAG/mG,GAAG2mB,EAAEnmB,KAAKR,GAAG,GAAG,MAAM,qBAAqBD,GAAG,8BAA8BA,CAAC,CAAC,SAAS8nH,GAAG7nH,GAAG,MAAM,iBAAiBA,GAAGA,GAAG,GAAGA,EAAE,GAAG,GAAGA,GAAG,gBAAgB,CAAC,SAAS+mG,GAAG/mG,GAAG,IAAID,SAASC,EAAE,QAAQA,IAAI,UAAUD,GAAG,YAAYA,EAAE,CAAC,SAASumG,GAAGtmG,GAAG,QAAQA,GAAG,iBAAiBA,CAAC,CAAC,SAASikG,GAAGjkG,GAAG,MAAM,iBAAiBA,GAAGsmG,GAAGtmG,IAAI,mBAAmB2mB,EAAEnmB,KAAKR,EAAE,CAAC,IAAIqmG,GAAG5lF,EAAE,SAASzgB,GAAG,OAAO,SAASD,GAAG,OAAOC,EAAED,EAAE,CAAC,CAA3C,CAA6C0gB,GAAG,SAASzgB,GAAG,OAAOsmG,GAAGtmG,IAAI6nH,GAAG7nH,EAAEmB,WAAWoB,EAAEokB,EAAEnmB,KAAKR,GAAG,EAAE,SAAS4iG,GAAG5iG,GAAG,OAAOojG,GAAGpjG,GAAzxR,SAAYA,EAAED,GAAG,IAAIM,EAAE8jG,GAAGnkG,IAAIkmG,GAAGlmG,GAAG,SAASA,EAAED,GAAG,IAAI,IAAIM,GAAG,EAAEuB,EAAExB,MAAMJ,KAAKK,EAAEL,GAAG4B,EAAEvB,GAAGN,EAAEM,GAAG,OAAOuB,CAAC,CAA/D,CAAiE5B,EAAEmB,OAAOR,QAAQ,GAAGiB,EAAEvB,EAAEc,OAAOC,IAAIQ,EAAE,IAAI,IAAII,KAAKhC,GAAGD,IAAIunC,EAAE9mC,KAAKR,EAAEgC,IAAIZ,IAAI,UAAUY,GAAG4mG,GAAG5mG,EAAEJ,KAAKvB,EAAEiD,KAAKtB,GAAG,OAAO3B,CAAC,CAAokRwhG,CAAG7hG,GAAnvG,SAAYA,GAAG,GAAGK,GAAGN,EAAEC,IAAID,EAAEc,YAAmDd,KAArC,mBAAmBM,GAAGA,EAAEC,WAAW6f,GAAQ,OAAOmqB,EAAEtqC,GAAG,IAAID,EAAEM,EAAIe,EAAE,GAAG,IAAI,IAAIY,KAAK/B,OAAOD,GAAGsnC,EAAE9mC,KAAKR,EAAEgC,IAAI,eAAeA,GAAGZ,EAAEkC,KAAKtB,GAAG,OAAOZ,CAAC,CAA6jG8hG,CAAGljG,EAAE,CAAC,SAAS8jG,GAAG9jG,GAAG,OAAOA,CAAC,CAACK,EAAE0F,QAAQ,SAAS/F,EAAED,EAAEM,GAAG,IAAIuB,EAAEuiG,GAAGnkG,GAAGqgB,EAAEH,EAAE9e,EAAEF,UAAUC,OAAO,EAAE,OAAOS,EAAE5B,EAAp/I,SAAYA,GAAG,MAAM,mBAAmBA,EAAEA,EAAE,MAAMA,EAAE8jG,GAAG,iBAAiB9jG,EAAEmkG,GAAGnkG,GAAG,SAASA,EAAED,GAAG,OAAG6jG,GAAG5jG,IAAIomG,GAAGrmG,GAAUgkG,GAAGJ,GAAG3jG,GAAGD,GAAU,SAASM,GAAG,IAAIuB,EAAE,SAAS5B,EAAED,EAAEM,GAAG,IAAIuB,EAAE,MAAM5B,OAAE,EAAOwhG,GAAGxhG,EAAED,GAAG,YAAO,IAAS6B,OAA7D,EAAiEA,CAAC,CAAlE,CAAoEvB,EAAEL,GAAG,YAAO,IAAS4B,GAAGA,IAAI7B,EAAE,SAASC,EAAED,GAAG,OAAO,MAAMC,GAAG,SAASA,EAAED,EAAEM,GAA6C,IAAtB,IAAIuB,EAAER,GAAG,EAAEY,GAA/BjC,EAAE6jG,GAAG7jG,EAAEC,GAAG,CAACD,GAAGomG,GAAGpmG,IAAkBoB,SAAcC,EAAEY,GAAG,CAAC,IAAIf,EAAE0iG,GAAG5jG,EAAEqB,IAAI,KAAKQ,EAAE,MAAM5B,GAAGK,EAAEL,EAAEiB,IAAI,MAAMjB,EAAEA,EAAEiB,EAAE,CAAC,OAAGW,MAAoBI,EAAEhC,EAAEA,EAAEmB,OAAO,IAAI0mH,GAAG7lH,IAAI4mG,GAAG3nG,EAAEe,KAAKmiG,GAAGnkG,IAAIkmG,GAAGlmG,GAAG,CAAjM,CAAmMA,EAAED,EAAE+hG,GAAG,CAAxO,CAA0OzhG,EAAEL,GAAGijG,GAAGljG,EAAE6B,OAAE,EAAO,EAAE,CAAC,CAA5a,CAA8a5B,EAAE,GAAGA,EAAE,IAAI,SAASA,GAAG,IAAID,EAAE,SAASC,GAA0B,IAAvB,IAAID,EAAE6iG,GAAG5iG,GAAGK,EAAEN,EAAEoB,OAAYd,KAAK,CAAC,IAAIuB,EAAE7B,EAAEM,GAAGe,EAAEpB,EAAE4B,GAAG7B,EAAEM,GAAG,CAACuB,EAAER,EAAEglG,GAAGhlG,GAAG,CAAC,OAAOrB,CAAC,CAAzF,CAA2FC,GAAG,OAAG,GAAGD,EAAEoB,QAAQpB,EAAE,GAAG,GAAUgkG,GAAGhkG,EAAE,GAAG,GAAGA,EAAE,GAAG,IAAW,SAASM,GAAG,OAAOA,IAAIL,GAAG,SAASA,EAAED,EAAEM,EAAEuB,GAAG,IAAIR,EAAEf,EAAEc,OAAOa,EAAEZ,EAAO,GAAG,MAAMpB,EAAE,OAAOgC,EAAE,IAAIhC,EAAEC,OAAOD,GAAGoB,KAAK,CAAC,IAAImS,EAAElT,EAAEe,GAAG,GAAMmS,EAAE,GAAGA,EAAE,KAAKvT,EAAEuT,EAAE,MAAMA,EAAE,KAAKvT,GAAG,OAAM,CAAE,CAAC,OAAOoB,EAAEY,GAAG,CAAC,IAAI6M,GAAG0E,EAAElT,EAAEe,IAAI,GAAGO,EAAE3B,EAAE6O,GAAGrK,EAAE+O,EAAE,GAAG,GAAMA,EAAE,IAAI,QAAG,IAAS5R,KAAKkN,KAAK7O,GAAG,OAAM,MAAO,CAAC,IAAsBiP,EAAlBQ,EAAE,IAAIwyF,GAA6B,UAAK,IAAShzF,EAAEg0F,GAAGz+F,EAAE7C,EAAEC,EAAE,EAAE6N,GAAGR,GAAG,OAAM,CAAE,CAAC,CAAC,OAAM,CAAE,CAAxU,CAA0U5O,EAAEL,EAAED,EAAE,CAAC,CAArhB,CAAuhBC,GAAG4jG,GAAG7jG,EAAEC,IAAIK,EAAEsjG,GAAG5jG,GAAG,SAASC,GAAG,OAAO,MAAMA,OAAE,EAAOA,EAAEK,EAAE,GAAG,SAASL,GAAG,OAAO,SAASD,GAAG,OAAOyhG,GAAGzhG,EAAEC,EAAE,CAAC,CAA9C,CAAgDD,GAAG,IAAIA,EAAEM,CAAC,CAA+1GynH,CAAG/nH,GAAGM,EAAEe,EAAEohG,GAAG,CAAE,GAAEhiG,KAAKI,KAAKP,EAAE,GAAGA,EAAE,EAAFA,CAAKL,GAAG,EAAE,SAASA,EAAED,GAAGC,EAAE+F,QAAQ,SAAS/F,GAAG,OAAOA,EAAE+nH,kBAAkB/nH,EAAEk5D,UAAU,WAAW,EAAEl5D,EAAEmlB,MAAM,GAAGnlB,EAAE83C,WAAW93C,EAAE83C,SAAS,IAAI73C,OAAOgC,eAAejC,EAAE,SAAS,CAACwD,YAAW,EAAGC,IAAI,WAAW,OAAOzD,EAAEwE,CAAC,IAAIvE,OAAOgC,eAAejC,EAAE,KAAK,CAACwD,YAAW,EAAGC,IAAI,WAAW,OAAOzD,EAAEiB,CAAC,IAAIjB,EAAE+nH,gBAAgB,GAAG/nH,CAAC,CAAC,EAAE,SAASA,EAAED,GAAGY,OAAOL,UAAU0nH,SAASrnH,OAAOL,UAAU0nH,OAAO,SAAShoH,EAAED,GAAG,OAAOC,IAAI,EAAED,EAAEY,YAAO,IAASZ,EAAEA,EAAE,KAAKa,KAAKO,OAAOnB,EAAEW,OAAOC,QAAQZ,GAAGY,KAAKO,QAAQpB,EAAEoB,SAASpB,GAAGA,EAAE+/F,OAAO9/F,EAAED,EAAEoB,SAASR,OAAOC,MAAMb,EAAEmE,MAAM,EAAElE,GAAG,EAAE,EAAE,SAASA,EAAED,EAAEM,GAAG,aAAa,SAASuB,EAAE5B,EAAED,EAAEM,GAAG,OAAON,KAAKC,EAAEC,OAAOgC,eAAejC,EAAED,EAAE,CAAC4C,MAAMtC,EAAEmD,YAAW,EAAG8oF,cAAa,EAAG27B,UAAS,IAAKjoH,EAAED,GAAGM,EAAEL,CAAC,CAAC,SAASoB,EAAEpB,GAAG,GAAGmD,OAAOC,YAAYnD,OAAOD,IAAI,uBAAuBC,OAAOK,UAAUiN,SAAS/M,KAAKR,GAAG,OAAOI,MAAM83D,KAAKl4D,EAAE,CAAC,SAASgC,EAAEhC,GAAG,OAAO,SAASA,GAAG,GAAGI,MAAMs0D,QAAQ10D,GAAG,CAAC,IAAI,IAAID,EAAE,EAAEM,EAAE,IAAID,MAAMJ,EAAEmB,QAAQpB,EAAEC,EAAEmB,OAAOpB,IAAIM,EAAEN,GAAGC,EAAED,GAAG,OAAOM,CAAC,CAAC,CAArG,CAAuGL,IAAIoB,EAAEpB,IAAI,WAAW,MAAM,IAAIU,UAAU,kDAAkD,CAAjF,EAAoF,CAAC,SAASO,EAAEjB,GAAG,GAAGI,MAAMs0D,QAAQ10D,GAAG,OAAOA,CAAC,CAAC,SAASuT,IAAI,MAAM,IAAI7S,UAAU,uDAAuD,CAAC,SAASmO,EAAE7O,EAAED,GAAG,KAAKC,aAAaD,GAAG,MAAM,IAAIW,UAAU,oCAAoC,CAAC,SAASiB,EAAE3B,EAAED,GAAG,IAAI,IAAIM,EAAE,EAAEA,EAAEN,EAAEoB,OAAOd,IAAI,CAAC,IAAIuB,EAAE7B,EAAEM,GAAGuB,EAAE4B,WAAW5B,EAAE4B,aAAY,EAAG5B,EAAE0qF,cAAa,EAAG,UAAU1qF,IAAIA,EAAEqmH,UAAS,GAAIhoH,OAAOgC,eAAejC,EAAE4B,EAAEqtC,IAAIrtC,EAAE,CAAC,CAAC,SAAS4C,EAAExE,GAAG,OAAOwE,EAAE,mBAAmBrB,QAAQ,iBAAiBA,OAAOC,SAAS,SAASpD,GAAG,cAAcA,CAAC,EAAE,SAASA,GAAG,OAAOA,GAAG,mBAAmBmD,QAAQnD,EAAEa,cAAcsC,QAAQnD,IAAImD,OAAO7C,UAAU,gBAAgBN,CAAC,GAAGA,EAAE,CAAC,SAASyP,EAAEzP,GAAG,OAAOyP,EAAE,mBAAmBtM,QAAQ,WAAWqB,EAAErB,OAAOC,UAAU,SAASpD,GAAG,OAAOwE,EAAExE,EAAE,EAAE,SAASA,GAAG,OAAOA,GAAG,mBAAmBmD,QAAQnD,EAAEa,cAAcsC,QAAQnD,IAAImD,OAAO7C,UAAU,SAASkE,EAAExE,EAAE,GAAGA,EAAE,CAAC,SAASiP,EAAEjP,GAAG,QAAG,IAASA,EAAE,MAAM,IAAIkoH,eAAe,6DAA6D,OAAOloH,CAAC,CAAC,SAASyE,EAAEzE,GAAG,OAAOyE,EAAExE,OAAOC,eAAeD,OAAO8xD,eAAe,SAAS/xD,GAAG,OAAOA,EAAEG,WAAWF,OAAO8xD,eAAe/xD,EAAE,GAAGA,EAAE,CAAC,SAASuC,EAAEvC,EAAED,GAAG,OAAOwC,EAAEtC,OAAOC,gBAAgB,SAASF,EAAED,GAAG,OAAOC,EAAEG,UAAUJ,EAAEC,CAAC,GAAGA,EAAED,EAAE,CAACM,EAAEA,EAAEN,GAAG,IAAI+O,EAAEzO,EAAE,GAAGuf,EAAEvf,EAAEuB,EAAEkN,GAAGgR,EAAEzf,EAAE,GAAGwf,EAAExf,EAAEuB,EAAEke,GAAG1b,EAAE/D,EAAE,GAAGigB,EAAEjgB,EAAEuB,EAAEwC,GAAGmc,EAAElgB,EAAE,GAAGogB,EAAEpgB,EAAEuB,EAAE2e,GAAGF,EAAEhgB,EAAE,GAAGikC,EAAEjkC,EAAEuB,EAAEye,GAAGH,EAAE7f,EAAE,GAAGupC,EAAEvpC,EAAEuB,EAAEse,GAAQ,SAASypB,EAAE3pC,EAAED,GAAG,OAAOkB,EAAEjB,IAAI,SAASA,EAAED,GAAG,IAAIM,EAAE,GAAGuB,GAAE,EAAGR,GAAE,EAAGY,OAAE,EAAO,IAAI,IAAI,IAAIf,EAAEsS,EAAEvT,EAAEmD,OAAOC,cAAcxB,GAAGX,EAAEsS,EAAE/Q,QAAQE,QAAQrC,EAAEiD,KAAKrC,EAAE0B,QAAQ5C,GAAGM,EAAEc,SAASpB,GAAG6B,GAAE,GAAI,CAAC,MAAM5B,GAAGoB,GAAE,EAAGY,EAAEhC,CAAC,CAAC,QAAQ,IAAI4B,GAAG,MAAM2R,EAAErQ,QAAQqQ,EAAErQ,QAAQ,CAAC,QAAQ,GAAG9B,EAAE,MAAMY,CAAC,CAAC,CAAC,OAAO3B,CAAC,CAA3O,CAA6OL,EAAED,IAAIwT,GAAG,CAAxRlT,EAAE,GAAuR,IAAI+O,EAAE,CAAC,CAAC,cAAc,CAAC,QAAQ,KAAK,MAAM,CAAC,UAAU,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,SAAS,gBAAgB,KAAK,OAAO,CAAC,UAAU,CAAC,UAAU,KAAK,OAAO,CAAC,SAAS,CAAC,UAAU,KAAK,OAAO,CAAC,sBAAsB,CAAC,UAAU,aAAa,KAAK,QAAQ,CAAC,YAAY,CAAC,UAAU,iBAAiB,KAAK,KAAK,gBAAgB,EAAE,CAAC,KAAK,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,QAAQ,CAAC,UAAU,CAAC,OAAO,WAAW,KAAK,MAAM,aAAa,CAAC,QAAQ,CAAC,UAAU,aAAa,KAAK,OAAO,CAAC,YAAY,CAAC,WAAW,KAAK,KAAK,iBAAiB,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,OAAO,CAAC,UAAU,CAAC,SAAS,YAAY,KAAK,MAAM,CAAC,aAAa,CAAC,OAAO,WAAW,KAAK,MAAM,kBAAkB,CAAC,UAAU,CAAC,UAAU,aAAa,KAAK,QAAQ,CAAC,UAAU,CAAC,eAAe,KAAK,OAAO,CAAC,aAAa,CAAC,QAAQ,KAAK,OAAO,CAAC,WAAW,CAAC,UAAU,aAAa,KAAK,QAAQ,CAAC,UAAU,CAAC,SAAS,WAAW,KAAK,MAAM,kBAAkB,CAAC,UAAU,CAAC,SAAS,YAAY,KAAK,KAAK,gBAAgB,CAAC,SAAS,CAAC,UAAU,mBAAmB,KAAK,OAAO,CAAC,QAAQ,CAAC,UAAU,KAAK,OAAO,CAAC,SAAS,CAAC,QAAQ,KAAK,OAAO,CAAC,UAAU,CAAC,UAAU,iBAAiB,KAAK,OAAO,CAAC,yBAAyB,CAAC,SAAS,YAAY,KAAK,OAAO,CAAC,WAAW,CAAC,UAAU,KAAK,OAAO,CAAC,SAAS,CAAC,UAAU,iBAAiB,KAAK,KAAK,kBAAkB,CAAC,iCAAiC,CAAC,QAAQ,KAAK,OAAO,CAAC,SAAS,CAAC,QAAQ,KAAK,OAAO,CAAC,WAAW,CAAC,SAAS,YAAY,KAAK,OAAO,CAAC,eAAe,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,UAAU,KAAK,OAAO,CAAC,WAAW,CAAC,QAAQ,KAAK,OAAO,CAAC,WAAW,CAAC,UAAU,KAAK,OAAO,CAAC,SAAS,CAAC,UAAU,iBAAiB,KAAK,IAAI,iBAAiB,EAAE,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,QAAQ,CAAC,aAAa,CAAC,UAAU,KAAK,OAAO,CAAC,wBAAwB,CAAC,UAAU,aAAa,KAAK,MAAM,GAAG,GAAG,CAAC,2BAA2B,CAAC,UAAU,KAAK,OAAO,CAAC,OAAO,CAAC,UAAU,KAAK,OAAO,CAAC,QAAQ,CAAC,UAAU,iBAAiB,KAAK,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,KAAK,gBAAgB,CAAC,WAAW,CAAC,UAAU,iBAAiB,KAAK,KAAK,gBAAgB,CAAC,UAAU,CAAC,UAAU,KAAK,OAAO,CAAC,QAAQ,CAAC,UAAU,KAAK,OAAO,CAAC,QAAQ,CAAC,UAAU,KAAK,OAAO,CAAC,aAAa,CAAC,UAAU,mBAAmB,KAAK,MAAM,aAAa,CAAC,wBAAgB,CAAC,UAAU,KAAK,MAAM,eAAe,CAAC,UAAU,CAAC,SAAS,WAAW,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,UAAU,aAAa,KAAK,MAAM,CAAC,aAAU,CAAC,UAAU,aAAa,KAAK,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,YAAY,KAAK,MAAM,aAAa,CAAC,iBAAiB,CAAC,SAAS,YAAY,KAAK,MAAM,eAAe,CAAC,UAAU,CAAC,SAAS,WAAW,UAAU,KAAK,KAAK,eAAe,CAAC,WAAW,CAAC,UAAU,KAAK,OAAO,CAAC,WAAW,CAAC,UAAU,aAAa,KAAK,QAAQ,CAAC,qBAAqB,CAAC,UAAU,aAAa,KAAK,IAAI,GAAG,EAAE,CAAC,MAAM,MAAM,QAAQ,CAAC,UAAU,CAAC,UAAU,iBAAiB,KAAK,OAAO,CAAC,QAAQ,CAAC,SAAS,gBAAgB,KAAK,MAAM,CAAC,cAAc,CAAC,UAAU,mBAAmB,KAAK,MAAM,aAAa,CAAC,oBAAoB,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,SAAS,WAAW,UAAU,UAAU,KAAK,MAAM,eAAe,CAAC,WAAW,CAAC,UAAU,KAAK,OAAO,CAAC,OAAO,CAAC,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,SAAS,WAAW,UAAU,KAAK,MAAM,gBAAgB,CAAC,SAAS,CAAC,SAAS,YAAY,KAAK,KAAK,iBAAiB,CAAC,gBAAgB,CAAC,UAAU,iBAAiB,KAAK,OAAO,CAAC,mBAAmB,CAAC,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,UAAU,KAAK,OAAO,CAAC,SAAS,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,OAAO,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,SAAS,WAAW,UAAU,KAAK,KAAK,iBAAiB,CAAC,QAAQ,CAAC,UAAU,KAAK,OAAO,CAAC,SAAS,CAAC,SAAS,YAAY,KAAK,MAAM,CAAC,UAAU,CAAC,UAAU,aAAa,KAAK,QAAQ,CAAC,aAAa,CAAC,UAAU,aAAa,KAAK,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,QAAQ,CAAC,YAAY,CAAC,UAAU,mBAAmB,KAAK,MAAM,aAAa,CAAC,SAAS,CAAC,UAAU,KAAK,OAAO,CAAC,gBAAgB,CAAC,UAAU,KAAK,OAAO,CAAC,SAAS,CAAC,UAAU,iBAAiB,KAAK,OAAO,CAAC,QAAQ,CAAC,UAAU,aAAa,KAAK,MAAM,aAAa,CAAC,WAAW,CAAC,UAAU,mBAAmB,KAAK,OAAO,CAAC,YAAY,CAAC,QAAQ,KAAK,MAAM,aAAa,CAAC,UAAU,CAAC,SAAS,YAAY,KAAK,MAAM,CAAC,UAAU,CAAC,UAAU,KAAK,MAAM,YAAY,CAAC,QAAQ,CAAC,QAAQ,KAAK,KAAK,eAAe,CAAC,YAAY,CAAC,QAAQ,KAAK,MAAM,CAAC,OAAO,CAAC,eAAe,KAAK,KAAK,gBAAgB,CAAC,OAAO,CAAC,eAAe,KAAK,OAAO,CAAC,UAAU,CAAC,SAAS,YAAY,KAAK,MAAM,cAAc,CAAC,SAAS,CAAC,eAAe,KAAK,MAAM,gBAAgB,CAAC,QAAQ,CAAC,SAAS,YAAY,KAAK,KAAK,cAAc,GAAG,CAAC,UAAU,CAAC,UAAU,aAAa,KAAK,QAAQ,CAAC,QAAQ,CAAC,QAAQ,KAAK,KAAK,gBAAgB,CAAC,SAAS,CAAC,eAAe,KAAK,OAAO,CAAC,aAAa,CAAC,OAAO,WAAW,KAAK,IAAI,gBAAgB,EAAE,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,UAAU,CAAC,QAAQ,CAAC,UAAU,KAAK,OAAO,CAAC,WAAW,CAAC,WAAW,KAAK,OAAO,CAAC,SAAS,CAAC,SAAS,YAAY,KAAK,OAAO,CAAC,SAAS,CAAC,eAAe,KAAK,OAAO,CAAC,aAAa,CAAC,OAAO,WAAW,KAAK,MAAM,eAAe,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,SAAS,CAAC,SAAS,WAAW,UAAU,UAAU,KAAK,MAAM,cAAc,CAAC,UAAU,CAAC,eAAe,KAAK,OAAO,CAAC,UAAU,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,UAAU,KAAK,OAAO,CAAC,QAAQ,CAAC,SAAS,gBAAgB,KAAK,OAAO,CAAC,gBAAgB,CAAC,UAAU,KAAK,OAAO,CAAC,YAAY,CAAC,SAAS,WAAW,UAAU,UAAU,KAAK,OAAO,CAAC,aAAa,CAAC,SAAS,YAAY,KAAK,OAAO,CAAC,QAAQ,CAAC,QAAQ,KAAK,OAAO,CAAC,YAAY,CAAC,SAAS,YAAY,KAAK,OAAO,CAAC,aAAa,CAAC,UAAU,KAAK,OAAO,CAAC,SAAS,CAAC,UAAU,KAAK,OAAO,CAAC,WAAW,CAAC,QAAQ,KAAK,KAAK,gBAAgB,CAAC,WAAW,CAAC,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,UAAU,KAAK,OAAO,CAAC,QAAQ,CAAC,SAAS,YAAY,KAAK,OAAO,CAAC,mBAAmB,CAAC,WAAW,KAAK,OAAO,CAAC,aAAa,CAAC,UAAU,aAAa,KAAK,OAAO,CAAC,aAAa,CAAC,UAAU,KAAK,OAAO,CAAC,YAAY,CAAC,UAAU,KAAK,OAAO,CAAC,SAAS,CAAC,UAAU,mBAAmB,KAAK,KAAK,eAAe,EAAE,CAAC,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,QAAQ,CAAC,aAAa,CAAC,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,UAAU,KAAK,MAAM,iBAAiB,CAAC,SAAS,CAAC,UAAU,KAAK,OAAO,CAAC,WAAW,CAAC,QAAQ,KAAK,OAAO,CAAC,aAAa,CAAC,SAAS,YAAY,KAAK,OAAO,CAAC,UAAU,CAAC,SAAS,gBAAgB,KAAK,OAAO,CAAC,aAAa,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,QAAQ,KAAK,MAAM,CAAC,UAAU,CAAC,UAAU,KAAK,OAAO,CAAC,QAAQ,CAAC,UAAU,KAAK,OAAO,CAAC,QAAQ,CAAC,QAAQ,KAAK,OAAO,CAAC,cAAc,CAAC,SAAS,YAAY,KAAK,KAAK,eAAe,CAAC,gBAAgB,CAAC,WAAW,KAAK,OAAO,CAAC,cAAc,CAAC,WAAW,KAAK,KAAK,gBAAgB,CAAC,YAAY,CAAC,UAAU,mBAAmB,KAAK,OAAO,CAAC,QAAQ,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,UAAU,KAAK,OAAO,CAAC,cAAc,CAAC,QAAQ,KAAK,OAAO,CAAC,SAAS,CAAC,SAAS,UAAU,KAAK,KAAK,cAAc,CAAC,OAAO,CAAC,eAAe,KAAK,OAAO,CAAC,WAAW,CAAC,QAAQ,KAAK,KAAK,eAAe,CAAC,QAAQ,CAAC,WAAW,KAAK,OAAO,CAAC,YAAY,CAAC,eAAe,KAAK,OAAO,CAAC,SAAS,CAAC,UAAU,mBAAmB,KAAK,OAAO,CAAC,mBAAmB,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC,UAAU,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,UAAU,iBAAiB,KAAK,MAAM,CAAC,cAAc,CAAC,QAAQ,KAAK,KAAK,gBAAgB,CAAC,SAAS,CAAC,SAAS,WAAW,UAAU,KAAK,KAAK,eAAe,CAAC,WAAW,CAAC,SAAS,YAAY,KAAK,OAAO,CAAC,cAAc,CAAC,UAAU,aAAa,KAAK,IAAI,GAAG,EAAE,CAAC,MAAM,QAAQ,CAAC,QAAQ,CAAC,eAAe,KAAK,OAAO,CAAC,aAAU,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,SAAS,YAAY,KAAK,MAAM,CAAC,SAAS,CAAC,SAAS,OAAO,UAAU,UAAU,KAAK,IAAI,kBAAkB,GAAG,CAAC,SAAS,CAAC,UAAU,KAAK,OAAO,CAAC,wBAAwB,CAAC,UAAU,aAAa,KAAK,QAAQ,CAAC,cAAc,CAAC,UAAU,aAAa,KAAK,QAAQ,CAAC,mCAAmC,CAAC,UAAU,aAAa,KAAK,QAAQ,CAAC,QAAQ,CAAC,WAAW,KAAK,OAAO,CAAC,aAAa,CAAC,UAAU,KAAK,OAAO,CAAC,iCAAwB,CAAC,UAAU,KAAK,OAAO,CAAC,eAAe,CAAC,eAAe,KAAK,OAAO,CAAC,UAAU,CAAC,UAAU,KAAK,OAAO,CAAC,SAAS,CAAC,SAAS,YAAY,KAAK,OAAO,CAAC,aAAa,CAAC,UAAU,KAAK,OAAO,CAAC,eAAe,CAAC,UAAU,KAAK,OAAO,CAAC,YAAY,CAAC,QAAQ,KAAK,KAAK,aAAa,CAAC,WAAW,CAAC,SAAS,YAAY,KAAK,OAAO,CAAC,WAAW,CAAC,SAAS,WAAW,YAAY,KAAK,OAAO,CAAC,kBAAkB,CAAC,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,UAAU,KAAK,OAAO,CAAC,eAAe,CAAC,UAAU,KAAK,MAAM,CAAC,cAAc,CAAC,QAAQ,KAAK,KAAK,iBAAiB,CAAC,cAAc,CAAC,SAAS,gBAAgB,KAAK,OAAO,CAAC,QAAQ,CAAC,SAAS,YAAY,KAAK,KAAK,eAAe,CAAC,YAAY,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,UAAU,KAAK,OAAO,CAAC,WAAW,CAAC,UAAU,iBAAiB,KAAK,OAAO,CAAC,YAAY,CAAC,UAAU,KAAK,OAAO,CAAC,SAAS,CAAC,SAAS,WAAW,UAAU,KAAK,KAAK,iBAAiB,CAAC,cAAc,CAAC,UAAU,KAAK,KAAK,gBAAgB,CAAC,QAAQ,CAAC,eAAe,KAAK,OAAO,CAAC,SAAS,CAAC,QAAQ,KAAK,OAAO,CAAC,aAAa,CAAC,OAAO,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC,UAAU,KAAK,OAAO,CAAC,WAAW,CAAC,QAAQ,KAAK,MAAM,CAAC,cAAc,CAAC,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,UAAU,KAAK,OAAO,CAAC,QAAQ,CAAC,WAAW,KAAK,OAAO,CAAC,sBAAsB,CAAC,UAAU,aAAa,KAAK,QAAQ,CAAC,UAAU,CAAC,SAAS,gBAAgB,KAAK,OAAO,CAAC,SAAS,CAAC,UAAU,KAAK,KAAK,iBAAiB,CAAC,eAAe,CAAC,OAAO,WAAW,KAAK,OAAO,CAAC,SAAS,CAAC,QAAQ,KAAK,OAAO,CAAC,SAAS,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,SAAS,WAAW,KAAK,MAAM,kBAAkB,CAAC,uBAAuB,CAAC,eAAe,KAAK,OAAO,CAAC,iBAAiB,CAAC,SAAS,YAAY,KAAK,KAAK,eAAe,CAAC,gBAAgB,CAAC,UAAU,iBAAiB,KAAK,IAAI,iBAAiB,EAAE,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,QAAQ,CAAC,UAAU,CAAC,UAAU,iBAAiB,KAAK,OAAO,CAAC,aAAa,CAAC,OAAO,WAAW,KAAK,MAAM,gBAAgB,CAAC,UAAU,CAAC,WAAW,KAAK,OAAO,CAAC,eAAe,CAAC,UAAU,KAAK,KAAK,eAAe,GAAG,CAAC,YAAY,CAAC,UAAU,iBAAiB,KAAK,MAAM,CAAC,UAAU,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,eAAe,KAAK,OAAO,CAAC,SAAS,CAAC,UAAU,KAAK,OAAO,CAAC,WAAW,CAAC,UAAU,KAAK,QAAQgR,EAAE,CAAC,CAAC,iBAAiB,CAAC,WAAW,KAAK,QAAQ,CAAC,WAAW,CAAC,UAAU,aAAa,KAAK,QAAQ,CAAC,UAAU,CAAC,UAAU,iBAAiB,KAAK,QAAQ,CAAC,yBAAyB,CAAC,UAAU,aAAa,KAAK,QAAQ,CAAC,iBAAiB,CAAC,UAAU,aAAa,KAAK,QAAQ,CAAC,eAAe,CAAC,WAAW,KAAK,OAAO,CAAC,mBAAmB,CAAC,UAAU,iBAAiB,KAAK,OAAO,CAAC,gBAAgB,CAAC,UAAU,KAAK,OAAO,CAAC,YAAY,CAAC,UAAU,KAAK,OAAO,CAAC,YAAY,CAAC,WAAW,KAAK,OAAO,CAAC,SAAS,CAAC,SAAS,YAAY,KAAK,KAAK,eAAe,CAAC,aAAa,CAAC,UAAU,aAAa,KAAK,QAAQ,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,iBAAiB,CAAC,WAAW,KAAK,OAAO,CAAC,2BAA2B,CAAC,WAAW,KAAK,QAAQ,CAAC,sBAAmB,CAAC,UAAU,aAAa,KAAK,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC,UAAU,KAAK,OAAO,CAAC,eAAe,CAAC,UAAU,aAAa,KAAK,MAAM,GAAG,GAAG,CAAC,4BAA4B,CAAC,UAAU,iBAAiB,KAAK,OAAO,CAAC,eAAe,CAAC,UAAU,aAAa,KAAK,QAAQ,CAAC,UAAU,CAAC,WAAW,KAAK,OAAO,CAAC,2BAA2B,CAAC,UAAU,aAAa,KAAK,QAAQ,CAAC,sBAAsB,CAAC,UAAU,aAAa,KAAK,QAAQ,CAAC,oBAAoB,CAAC,WAAW,KAAK,QAAQ,SAASM,EAAE1gB,EAAED,EAAEM,EAAEuB,EAAER,GAAG,OAAOf,GAAGe,EAAEpB,EAAE,GAAGgoH,OAAOjoH,EAAEoB,OAAO,KAAK,IAAIS,EAAE5B,EAAE,GAAGgoH,OAAOjoH,EAAEoB,OAAO,KAAK,IAAId,CAAC,CAAC,SAAS6mC,EAAElnC,EAAED,EAAEM,EAAEe,EAAEH,GAAG,IAAIsS,EAAE1E,EAAElN,EAAE,GAAG,OAAOkN,GAAE,IAAK9O,EAAE,EAAEwT,EAAE,IAAIxP,OAAO1C,MAAMkS,EAAEvR,EAAEhC,EAAEmtD,KAAK,SAASntD,GAAG,IAAIgC,EAAE,CAACmU,KAAKnW,EAAE,GAAGmoH,QAAQnoH,EAAE,GAAGooH,KAAKpoH,EAAE,GAAGqoH,YAAYroH,EAAE,GAAGsoH,SAAStoH,EAAE,GAAGw1D,OAAO90C,EAAErgB,EAAEL,EAAE,GAAGA,EAAE,GAAGoB,EAAEH,GAAGq+D,SAASt/D,EAAE,IAAI,GAAGuT,EAAE,GAAG,OAAOvT,EAAE,IAAIA,EAAE,GAAGmtD,KAAK,SAASptD,GAAG,IAAIM,EAAE,SAASL,GAAG,IAAI,IAAID,EAAE,EAAEA,EAAEmB,UAAUC,OAAOpB,IAAI,CAAC,IAAIM,EAAE,MAAMa,UAAUnB,GAAGmB,UAAUnB,GAAG,CAAC,EAAEqB,EAAEnB,OAAOqyD,KAAKjyD,GAAG,mBAAmBJ,OAAOuB,wBAAwBJ,EAAEA,EAAE2C,OAAO9D,OAAOuB,sBAAsBnB,GAAG4wB,QAAQ,SAASjxB,GAAG,OAAOC,OAAO4B,yBAAyBxB,EAAEL,GAAGwD,UAAU,MAAMpC,EAAE2yB,SAAS,SAASh0B,GAAG6B,EAAE5B,EAAED,EAAEM,EAAEN,GAAG,GAAG,CAAC,OAAOC,CAAC,CAArU,CAAuU,CAAC,EAAEgC,GAAG3B,EAAEioH,SAAStoH,EAAE,GAAGD,EAAEM,EAAEkoH,YAAW,EAAGloH,EAAEmoH,eAAezoH,EAAEoB,OAAOoS,EAAEjQ,KAAKjD,EAAE,IAAIkT,EAAEpS,OAAO,GAAGa,EAAEymH,UAAS,EAAG55G,GAAG,UAAU9O,EAAEc,YAAYsV,MAAMpW,EAAE0vD,SAASzvD,EAAE,KAAKgC,EAAE0mH,cAAa,EAAG,CAAC1mH,GAAG+B,OAAOwP,KAAK5R,EAAEA,EAAEoC,OAAOwP,GAAG,CAACvR,KAAK,CAACA,EAAE,MAAML,EAAE,CAAC,SAAS6e,EAAExgB,EAAED,EAAEM,EAAEuB,GAAG,GAAG,OAAOvB,EAAE,CAAC,IAAIe,EAAEnB,OAAOqyD,KAAKjyD,GAAG2B,EAAE/B,OAAO8wC,OAAO1wC,GAAGe,EAAE2yB,SAAS,SAAS1zB,EAAEe,GAAG,GAAGQ,EAAE,OAAO5B,EAAEsD,KAAK,CAACjD,EAAE2B,EAAEZ,KAAK,IAAIH,EAAEjB,EAAE2oH,WAAW,SAAS3oH,GAAG,OAAOA,EAAE,KAAKK,CAAC,IAAI,IAAI,IAAIY,EAAE,CAAC,IAAIsS,EAAE,CAAClT,GAAGkT,EAAExT,GAAGiC,EAAEZ,GAAGpB,EAAEsD,KAAKiQ,EAAE,MAAMvT,EAAEiB,GAAGlB,GAAGiC,EAAEZ,EAAE,GAAG,CAAC,CAAC,SAASwf,EAAE5gB,EAAED,GAAG,OAAO,IAAIA,EAAEoB,OAAOnB,EAAEA,EAAEmtD,KAAK,SAASntD,GAAG,IAAIK,EAAEN,EAAE4oH,WAAW,SAAS5oH,GAAG,OAAOA,EAAE,KAAKC,EAAE,EAAE,IAAI,IAAI,IAAIK,EAAE,OAAOL,EAAE,IAAI4B,EAAE7B,EAAEM,GAAG,OAAOuB,EAAE,KAAK5B,EAAE,GAAG4B,EAAE,IAAIA,EAAE,KAAK5B,EAAE,GAAG4B,EAAE,IAAIA,EAAE,KAAK5B,EAAE,GAAG4B,EAAE,IAAI5B,CAAC,GAAG,CAAC,IAAImgB,EAAE,SAASngB,EAAED,EAAEM,EAAEuB,EAAER,EAAEH,EAAEsS,EAAE5R,EAAE6C,EAAEiL,EAAER,EAAExK,EAAElC,EAAEuM,EAAE8Q,GAAG/Q,EAAEjO,KAAKZ,GAAGY,KAAKgoH,cAAc,SAAS5oH,EAAED,GAAG,GAAG,iBAAiBC,EAAE,CAAC,IAAIK,EAAEL,EAAE,OAAOD,EAAEkxB,QAAQ,SAASjxB,GAAG,OAAOA,EAAEmoH,QAAQ7zD,MAAM,SAASt0D,GAAG,OAAOA,IAAIK,CAAC,GAAG,GAAG,CAAC,OAAON,EAAEkxB,QAAQ,SAASlxB,GAAG,OAAOC,EAAEmtD,KAAK,SAASntD,GAAG,OAAOD,EAAEooH,QAAQ7zD,MAAM,SAASv0D,GAAG,OAAOA,IAAIC,CAAC,GAAG,IAAIs0D,MAAM,SAASt0D,GAAG,OAAOA,CAAC,GAAG,GAAG,EAAEY,KAAKioH,gBAAgB,SAAS7oH,EAAED,GAAG,IAAIM,EAAE,GAAG0D,OAAO/B,EAAEhC,GAAGgC,EAAEjC,IAAI,OAAOM,EAAEo/D,MAAM,SAASz/D,EAAED,GAAG,OAAOC,EAAEmW,KAAKpW,EAAEoW,MAAM,EAAEnW,EAAEmW,KAAKpW,EAAEoW,KAAK,EAAE,CAAC,IAAI9V,CAAC,EAAEO,KAAKkoH,uBAAuB,SAAS9oH,EAAED,EAAEM,GAAG,OAAO,IAAIL,EAAEmB,OAAOpB,EAAEM,EAAEL,EAAEmtD,KAAK,SAASntD,GAAG,IAAIK,EAAEN,EAAEgpH,MAAM,SAAShpH,GAAG,OAAOA,EAAEqoH,OAAOpoH,CAAC,IAAI,GAAGK,EAAE,OAAOA,CAAC,IAAI4wB,QAAQ,SAASjxB,GAAG,OAAOA,CAAC,IAAID,EAAEkxB,QAAQ,SAASlxB,GAAG,OAAOC,EAAEs0D,MAAM,SAASt0D,GAAG,OAAOA,IAAID,EAAEqoH,IAAI,GAAG,GAAG,EAAExnH,KAAKooH,kBAAkB,SAAShpH,EAAED,EAAEM,GAAG,IAAI,IAAIuB,EAAE,EAAEA,EAAE5B,EAAEmB,OAAOS,SAAI,IAAS7B,EAAEC,EAAE4B,GAAGwmH,MAAMpoH,EAAE4B,GAAGqnH,UAAUlpH,EAAEC,EAAE4B,GAAGwmH,WAAM,IAASroH,EAAEC,EAAE4B,GAAGuU,QAAQnW,EAAE4B,GAAGqnH,UAAUlpH,EAAEC,EAAE4B,GAAGuU,OAAO,OAAO9V,GAAGL,EAAEy/D,MAAM,SAASz/D,EAAED,GAAG,OAAOC,EAAEipH,UAAUlpH,EAAEkpH,WAAW,EAAEjpH,EAAEipH,UAAUlpH,EAAEkpH,UAAU,EAAE,CAAC,IAAIjpH,CAAC,EAAEY,KAAKsoH,eAAe,SAASlpH,EAAED,GAAG,IAAI,IAAIM,EAAE,GAAGuB,EAAE,EAAEA,EAAE7B,EAAEoB,OAAOS,IAAI,CAAC,IAAIR,EAAEwO,KAAKC,MAAMD,KAAKE,UAAU9P,IAAIoB,EAAEknH,UAAUvoH,EAAE6B,GAAGvB,EAAEiD,KAAKlC,EAAE,CAAC,OAAOf,CAAC,EAAEO,KAAKuoH,iBAAiB,SAASnpH,EAAED,GAAG,OAAO,IAAIA,EAAEoB,OAAOnB,EAAEA,EAAEixB,QAAQ,SAASjxB,GAAG,OAAOD,EAAE0vD,SAASzvD,EAAEooH,KAAK,GAAG,EAAE,IAAItoG,EAAE,SAAS9f,EAAED,EAAEM,GAAG,IAAIuB,EAAE,GAAG,OAAO4e,EAAE5e,EAAE,EAAE5B,GAAE,GAAIwgB,EAAE5e,EAAE,EAAE7B,GAAGygB,EAAE5e,EAAE,EAAEvB,GAAGuB,CAAC,CAA/D,CAAiE4C,EAAEiL,EAAER,GAAG4Q,EAAEe,EAAEhR,KAAKC,MAAMD,KAAKE,UAAUV,IAAI0Q,GAAG1b,EAAEwc,EAAEhR,KAAKC,MAAMD,KAAKE,UAAUsQ,IAAIN,GAAGQ,EAAEqpB,EAAEzC,EAAErnB,EAAE9f,EAAEwC,EAAEuM,EAAE8Q,GAAG,GAAGW,EAAED,EAAE,GAAGG,EAAEH,EAAE,GAAG,GAAGjgB,EAAE,CAAC,IAAIggB,EAAEspB,EAAEzC,EAAE9iC,EAAErE,EAAEwC,EAAEuM,EAAE8Q,GAAG,GAAG0kB,EAAEjkB,EAAE,GAAGA,EAAE,GAAGE,EAAE3f,KAAKioH,gBAAgBvkF,EAAE/jB,EAAE,CAAC3e,IAAI2e,EAAE3f,KAAKgoH,cAAchnH,EAAE2e,IAAI3f,KAAKwoH,cAAcxoH,KAAKooH,kBAAkBpoH,KAAKuoH,iBAAiBvoH,KAAKkoH,uBAAuB1nH,EAAEmf,EAAE5e,EAAE8tD,SAAS,kBAAkBl8C,GAAG9O,EAAE9C,EAAE8tD,SAAS,kBAAkB7uD,KAAKyoH,mBAAmB,IAAIpoH,EAAEE,OAAO,GAAGP,KAAKooH,kBAAkBpoH,KAAKkoH,uBAAuB7nH,EAAEsf,EAAE5e,EAAE8tD,SAAS,uBAAuBhrD,EAAE9C,EAAE8tD,SAAS,uBAAuB7uD,KAAK0oH,gBAAgB1oH,KAAKuoH,iBAAiBvoH,KAAKkoH,uBAAuB1nH,EAAEqf,GAAGlN,EAAE,EAAEkT,EAAE,SAASzmB,GAAG,SAASD,EAAEC,GAAG,IAAIK,EAAEwO,EAAEjO,KAAKb,IAAIM,EAAE,SAASL,EAAED,GAAG,OAAOA,GAAG,WAAW0P,EAAE1P,IAAI,mBAAmBA,EAAEkP,EAAEjP,GAAGD,CAAC,CAApE,CAAsEa,KAAK6D,EAAE1E,GAAGS,KAAKI,KAAKZ,KAAKupH,qBAAqBjpG,KAAK,SAAStgB,GAAG,OAAOA,GAAG,IAAIA,EAAEmB,OAAOd,EAAEg/C,MAAM+pE,cAAcn4F,QAAQ,SAASlxB,GAAG,OAAOukC,IAAIvkC,EAAEoW,KAAKgZ,cAAcnvB,EAAEmvB,cAAc,GAAGlgB,EAAEA,EAAE5O,KAAK,GAAG,IAAI,IAAIA,EAAEmpH,qBAAqBlpG,KAAK,SAAStgB,EAAED,EAAE6B,EAAER,GAAG,IAAIY,EAAE,IAAG,IAAK3B,EAAEgmB,MAAMojG,kBAAkBroH,EAAEkzD,MAAM,SAASv0D,GAAG,GAAGukC,IAAItkC,EAAED,EAAEuoH,UAAU,OAAO1mH,EAAE0yD,MAAM,SAASt0D,GAAG,GAAGD,EAAEqoH,OAAOpoH,EAAEooH,MAAMpoH,EAAEyoH,SAAS,OAAOzmH,EAAEhC,GAAE,CAAE,KAAI,CAAE,IAAIgC,GAAG,OAAOA,EAAE,IAAIf,EAAEW,EAAEmnH,MAAM,SAAS/oH,GAAG,OAAOA,EAAEooH,MAAMroH,CAAC,IAAI,GAAG,KAAKC,EAAE6V,OAAO,OAAO5U,EAAE,IAAIsS,EAAE3R,EAAE8nH,QAAQ,SAAS3pH,EAAEM,GAAG,GAAGikC,IAAItkC,EAAEK,EAAEioH,UAAU,CAAC,GAAGjoH,EAAEioH,SAASnnH,OAAOpB,EAAEuoH,SAASnnH,OAAO,OAAOd,EAAE,GAAGA,EAAEioH,SAASnnH,SAASpB,EAAEuoH,SAASnnH,QAAQd,EAAEi/D,SAASv/D,EAAEu/D,SAAS,OAAOj/D,CAAC,CAAC,OAAON,CAAC,GAAG,CAACuoH,SAAS,GAAGhpD,SAAS,OAAOrwD,EAAEA,EAAE5O,KAAK,OAAOkT,EAAE4C,KAAK5C,EAAEtS,CAAC,IAAIZ,EAAEspH,cAAc,SAAS3pH,GAAG,IAAID,EAAE6B,EAAEvB,EAAEg/C,MAAM+pE,eAAerpH,EAAEC,EAAEuB,QAAQ,IAAI,KAAKvB,EAAEuB,QAAQ,IAAI,IAAIK,EAAEmnH,MAAM,SAAShpH,GAAG,OAAOA,EAAEuoH,WAAWtoH,CAAC,IAAI4B,EAAEmnH,MAAM,SAAShpH,GAAG,OAAOA,EAAEqoH,MAAMpoH,CAAC,MAAMD,EAAEuoH,UAAUjoH,EAAE+oD,SAAS,CAACwgE,gBAAgB7pH,EAAE8pH,gBAAgBxpH,EAAEgmB,MAAMyjG,mBAAmB,GAAGzpH,EAAE0pH,aAAahqH,EAAEuoH,SAASvoH,IAAI,EAAEM,EAAE2pH,SAAS,SAAShqH,EAAED,GAAG,GAAGC,EAAE,CAAC,IAAI4B,EAAEvB,EAAE4pH,YAAY,GAAGroH,GAAGmF,SAASurB,KAAK,CAAC,IAAIlxB,EAAEQ,EAAEw0C,aAAap0C,EAAEJ,EAAE+rD,wBAAwBxiD,IAAIpE,SAASurB,KAAKwzE,UAAU7kG,EAAEe,EAAEZ,EAAEmS,EAAEvT,EAAE6O,EAAE0E,EAAEo6C,wBAAwBhsD,EAAE4R,EAAE6iC,aAAa5xC,EAAEqK,EAAE1D,IAAIpE,SAASurB,KAAKwzE,UAAUr2F,EAAEjL,EAAE7C,EAAEsN,EAAEzK,EAAExC,EAAEJ,EAAEkkG,UAAUrhG,EAAErD,EAAE,EAAEO,EAAE,EAAE,GAAGtB,EAAEgmB,MAAM6jG,aAAa1lH,EAAExC,EAAE,GAAGwC,EAAExC,EAAEjC,IAAIkP,GAAGxK,GAAG7C,EAAEkkG,UAAU72F,OAAO,GAAGQ,EAAExO,EAAE,CAAClB,IAAIkP,GAAGxK,GAAG,IAAIlC,EAAEnB,EAAEO,EAAEC,EAAEkkG,UAAU72F,EAAE1M,CAAC,CAAC,CAAC,CAAC,EAAElC,EAAE8pH,YAAY,WAAW,IAAInqH,EAAEK,EAAE4pH,YAAYjqH,GAAG+G,SAASurB,OAAOtyB,EAAE8lG,UAAU,EAAE,EAAEzlG,EAAE0pH,aAAa,SAAS/pH,EAAED,GAAG,IAAIA,EAAE,OAAOC,EAAE,IAAI4B,EAAEI,EAAEjC,EAAEy1D,OAAO3mD,EAAExO,EAAEgmB,MAAM1kB,EAAEkN,EAAEi7G,mBAAmBtlH,EAAEqK,EAAEu7G,sBAAsB36G,EAAEZ,EAAEw7G,kBAAkBp7G,EAAEJ,EAAEy7G,WAAW,GAAG3oH,IAAIC,EAAEI,EAAEiO,MAAM,MAAMvL,QAAQ9C,EAAEA,EAAEkQ,KAAK,MAAMtN,GAAGzE,EAAEwoH,aAAa3mH,EAAEI,EAAEiO,MAAM,MAAM,GAAGrO,EAAE,GAAGyc,QAAQ,MAAM,GAAG2pG,OAAOjoH,EAAEyoH,eAAe,MAAM5mH,EAAEA,EAAEkQ,KAAK,MAAMlQ,EAAEI,GAAGhC,GAAG,IAAIA,EAAEmB,OAAO,OAAOQ,EAAE,GAAGtB,EAAEgmB,MAAM21D,OAAO,GAAGh8E,GAAGA,EAAEmB,OAAO,IAAIS,IAAIqN,EAAE,OAAOtN,EAAE3B,EAAEK,EAAEgmB,MAAM21D,OAAOh8E,EAAE,IAAIyE,EAAElC,EAAEke,IAAI7e,GAAG,SAAS5B,EAAED,GAAG,GAAG,IAAIC,EAAEuqH,cAAcppH,OAAO,OAAOnB,EAAE,GAAG,MAAMD,EAAE,MAAM,CAACyqH,cAAcxqH,EAAEwqH,cAAczqH,EAAEwqH,cAAcvqH,EAAEuqH,eAAe,IAAIlqH,EAAEuB,EAAEX,EAAEZ,EAAEL,EAAEuqH,gBAAgBnpH,EAAEf,IAAIkT,IAAIvR,EAAEJ,EAAE,GAAGiN,EAAEjN,EAAEsC,MAAM,GAAG,MAAM,CAACsmH,cAAcxqH,EAAEwqH,cAAcxoH,EAAEuoH,cAAc17G,EAAE,GAAG,CAAC27G,cAAc,GAAGD,cAAcvqH,EAAEiQ,MAAM,MAAM,OAAOxL,EAAEgL,EAAElN,EAAEioH,cAAcjoH,EAAEgoH,cAAcz4G,KAAK,IAAIvP,EAAEioH,eAAe/6D,SAAS,OAAOhrD,EAAEgrD,SAAS,OAAOhrD,GAAG,KAAKA,CAAC,EAAEpE,EAAEoqH,YAAY,WAAW,IAAIzqH,EAAEK,EAAEqqH,eAAe,GAAG3jH,SAAS8lF,gBAAgB7sF,EAAE,CAACA,EAAE+lG,QAAQ,IAAIhmG,EAAEC,EAAE2C,MAAMxB,OAAO,MAAMnB,EAAE2C,MAAM+jC,OAAO3mC,EAAE,KAAKA,GAAG,GAAGC,EAAE2qH,kBAAkB5qH,EAAEA,EAAE,CAAC,EAAEM,EAAEuqH,WAAW,SAAS5qH,GAAG,OAAOK,EAAE,WAAW0D,OAAO/D,GAAG,EAAEK,EAAEwqH,eAAe,WAAW,OAAOxqH,EAAEg/C,MAAMuqE,gBAAgB,CAACzzG,KAAK9V,EAAEg/C,MAAMuqE,gBAAgBzzG,MAAM,GAAGmyG,SAASjoH,EAAEg/C,MAAMuqE,gBAAgBtB,UAAU,GAAGD,YAAYhoH,EAAEg/C,MAAMuqE,gBAAgBxB,MAAM,GAAG5yD,OAAOn1D,EAAEg/C,MAAMuqE,gBAAgBp0D,QAAQ,IAAI,CAAC,CAAC,EAAEn1D,EAAEyqH,wBAAwB,SAAS9qH,GAAG,GAAGA,EAAEw7F,iBAAiBn7F,EAAEg/C,MAAM0rE,eAAe1qH,EAAEgmB,MAAM0nE,SAAS,CAAC,IAAIhuF,EAAEM,EAAEg/C,MAAMz9C,EAAE7B,EAAEspH,mBAAmBjoH,EAAErB,EAAEqpH,cAAcpnH,EAAEjC,EAAE6pH,gBAAgB3oH,EAAEZ,EAAE2qH,yBAAyBppH,EAAER,GAAGunH,WAAW,SAAS3oH,GAAG,OAAOA,EAAEsoH,WAAWtmH,EAAEsmH,UAAUtoH,EAAEooH,OAAOpmH,EAAEomH,IAAI,IAAI/nH,EAAE+oD,SAAS,CAAC2hE,cAAc1qH,EAAEg/C,MAAM0rE,aAAaE,sBAAsBhqH,IAAI,WAAWZ,EAAEg/C,MAAM0rE,cAAc1qH,EAAE2pH,SAAS3pH,EAAEuqH,WAAWvqH,EAAEg/C,MAAM4rE,uBAAuB,GAAG,CAAC,EAAE5qH,EAAE6qH,YAAY,SAASlrH,GAAG,IAAID,EAAEC,EAAE0M,OAAO/J,MAAMf,EAAEvB,EAAEgmB,MAAMjlB,EAAEQ,EAAEo6E,OAAOh6E,EAAEJ,EAAE0rD,SAASrsD,EAAEZ,EAAEgmB,MAAMyjG,mBAAmB,GAAG1oH,EAAEmS,EAAElT,EAAEg/C,MAAMuqE,gBAAgB/6G,EAAExO,EAAEg/C,MAAM8rE,gBAAgB,IAAI9qH,EAAEgmB,MAAM+kG,oBAAoB,CAAC,IAAIzpH,EAAEP,GAAGmS,EAAEm1G,aAAaroH,EAAEg/C,MAAM+pE,cAAcL,MAAM,SAAS/oH,GAAG,OAAOA,EAAEooH,OAAO70G,EAAE60G,MAAMpoH,EAAEyoH,QAAQ,IAAIH,SAAS/0G,EAAE+0G,UAAU,GAAGvoH,EAAEmE,MAAM,EAAEvC,EAAER,UAAUQ,EAAE,MAAM,CAAC,GAAG5B,IAAIqB,EAAE,OAAOY,GAAGA,EAAE,GAAG3B,EAAEwqH,iBAAiB7qH,EAAE,IAAIK,EAAE+oD,SAAS,CAACygE,gBAAgB,KAAK,GAAG9pH,EAAEse,QAAQ,MAAM,IAAIld,OAAO,GAAG,CAAC,IAAG,IAAKd,EAAEgmB,MAAMgkG,kBAAkB,OAAO,GAAG,iBAAiBhqH,EAAEgmB,MAAMgkG,mBAAmBtqH,EAAEse,QAAQ,MAAM,IAAIld,OAAOd,EAAEgmB,MAAMgkG,kBAAkB,MAAM,CAAC,GAAGtqH,IAAIM,EAAEg/C,MAAMwqE,gBAAgB,CAAC7pH,EAAEw7F,eAAex7F,EAAEw7F,iBAAiBx7F,EAAEs7F,aAAY,EAAG,IAAI92F,EAAEnE,EAAEgmB,MAAMglG,QAAQ57G,EAAEpP,EAAEg/C,MAAMpwC,EAAEQ,EAAE25G,cAAc3kH,EAAEgL,EAAEm6G,gBAAgBrnH,EAAEkN,EAAE65G,gBAAgB,GAAGtnH,GAAGhC,EAAE07F,UAAU37F,EAAEoB,OAAO,EAAE,CAAC,IAAI2N,EAAE/O,EAAEse,QAAQ,MAAM,MAAMhe,EAAEg/C,MAAM8rE,iBAAiB1mH,GAAGA,EAAE6jH,SAASnnH,OAAO2N,EAAE3N,UAAUoS,EAAElT,EAAEgmB,MAAMilG,oBAAoB7mH,EAAEpE,EAAEmpH,qBAAqB16G,EAAE80C,UAAU,EAAE,GAAGp/C,EAAEyK,EAAE1M,IAAIkC,EAAEoK,GAAE,GAAI5N,EAAEZ,EAAE0pH,aAAaj7G,EAAEyE,GAAGA,EAAEA,EAAE+0G,SAAS/0G,EAAE9O,CAAC,CAAC,IAAImb,EAAE5f,EAAE0M,OAAOq4F,eAAejlF,EAAE9f,EAAE0M,OAAOq4F,eAAellF,EAAExf,EAAEg/C,MAAMwqE,gBAAgBzlH,EAAEnD,EAAEE,OAAO0e,EAAE1e,OAAOd,EAAE+oD,SAAS,CAACygE,gBAAgB5oH,EAAEkqH,gBAAgBt8G,EAAE+6G,gBAAgBr2G,IAAI,WAAWnP,EAAE,IAAI0b,GAAG1b,GAAG,KAAKnD,EAAEylC,OAAOzlC,EAAEE,OAAO,GAAGd,EAAEqqH,eAAeC,kBAAkB1pH,EAAEE,OAAO,EAAEF,EAAEE,OAAO,GAAG2e,EAAE,GAAGD,EAAE1e,QAAQF,EAAEE,OAAOd,EAAEqqH,eAAeC,kBAAkB7qG,EAAEA,GAAGF,EAAEC,EAAE1e,QAAQd,EAAEqqH,eAAeC,kBAAkB/qG,EAAEA,GAAG5d,GAAGA,EAAEf,EAAEod,QAAQ,WAAW,IAAIhe,EAAEwqH,iBAAiB7qH,EAAEiB,EAAE,GAAG,CAAC,EAAEZ,EAAEkrH,iBAAiB,SAASvrH,GAAGK,EAAE+oD,SAAS,CAAC2hE,cAAa,IAAK1qH,EAAEgmB,MAAM0pC,SAAS1vD,EAAEgmB,MAAM0pC,QAAQ/vD,EAAEK,EAAEwqH,iBAAiB,EAAExqH,EAAEmrH,kBAAkB,SAASxrH,GAAG,IAAID,EAAEC,EAAE0M,OAAO/J,MAAMxB,OAAOnB,EAAE0M,OAAOi+G,kBAAkB,EAAE5qH,EAAE,EAAEM,EAAEorH,oBAAoB,SAASzrH,EAAED,GAAG,IAAI6B,EAAEvB,EAAEg/C,MAAMuqE,gBAAgBxoH,EAAEf,EAAEg/C,MAAM+pE,cAAcL,MAAM,SAAShpH,GAAG,OAAOA,GAAGC,CAAC,IAAI,GAAGoB,EAAE,CAAC,IAAIY,EAAE3B,EAAEg/C,MAAMwqE,gBAAgBxrG,QAAQ,IAAI,IAAIA,QAAQ,IAAI,IAAIA,QAAQ,IAAI,IAAIA,QAAQ,IAAI,IAAIpd,EAAEe,EAAEb,OAAO,EAAEa,EAAEqc,QAAQzc,EAAE0mH,SAASlnH,EAAEknH,UAAUlnH,EAAEknH,SAAS/0G,EAAElT,EAAE0pH,aAAa9oH,EAAEod,QAAQ,MAAM,IAAIjd,GAAGf,EAAE+oD,SAAS,CAAC2hE,cAAa,EAAGnB,gBAAgBxoH,EAAE+pH,iBAAgB,EAAGtB,gBAAgBt2G,EAAEm4G,YAAY,KAAK,WAAWrrH,EAAEoqH,cAAcpqH,EAAEgmB,MAAMinC,UAAUjtD,EAAEgmB,MAAMinC,SAAS/5C,EAAE8K,QAAQ,WAAW,IAAIhe,EAAEwqH,iBAAiB9qH,EAAEwT,EAAE,GAAG,CAAC,EAAElT,EAAEsrH,iBAAiB,SAAS3rH,GAAGK,EAAEqqH,gBAAgBrqH,EAAEqqH,eAAe/nH,QAAQtC,EAAEgmB,MAAM21D,QAAQ37E,EAAEg/C,MAAMuqE,kBAAkBvpH,EAAEgmB,MAAMyjG,oBAAoBzpH,EAAE+oD,SAAS,CAACygE,gBAAgBxpH,EAAEgmB,MAAM21D,OAAO37E,EAAEg/C,MAAMuqE,gBAAgBtB,WAAW,WAAWjoH,EAAEgmB,MAAMulG,iBAAiB5wG,WAAW3a,EAAEoqH,YAAY,EAAE,IAAIpqH,EAAE+oD,SAAS,CAACyiE,YAAY,KAAKxrH,EAAEgmB,MAAMylG,SAASzrH,EAAEgmB,MAAMylG,QAAQ9rH,EAAEK,EAAEwqH,kBAAkBxqH,EAAEgmB,MAAMulG,iBAAiB5wG,WAAW3a,EAAEoqH,YAAY,EAAE,EAAEpqH,EAAE0rH,gBAAgB,SAAS/rH,GAAGA,EAAE0M,OAAO/J,OAAOtC,EAAE+oD,SAAS,CAACyiE,YAAYxrH,EAAEgmB,MAAMwlG,cAAcxrH,EAAEgmB,MAAM2lG,QAAQ3rH,EAAEgmB,MAAM2lG,OAAOhsH,EAAEK,EAAEwqH,iBAAiB,EAAExqH,EAAE4rH,gBAAgB,SAASjsH,GAAG,GAAGK,EAAEgmB,MAAM6lG,gBAAgB,CAAC,IAAInsH,EAAE2F,OAAOw/F,eAAe33F,WAAW8Q,QAAQ,WAAW,IAAIre,EAAEq+F,cAAczkF,QAAQ,aAAa7Z,GAAGC,EAAEw7F,gBAAgB,CAAC,EAAEn7F,EAAE8rH,yBAAyB,SAASnsH,GAAG,IAAID,EAAEM,EAAEg/C,MAAM4rE,sBAAsBjrH,EAAE,OAAOD,EAAE,GAAGA,GAAGM,EAAEg/C,MAAM+pE,cAAcjoH,OAAOd,EAAEg/C,MAAMgqE,mBAAmBloH,OAAOpB,EAAEC,EAAEK,EAAEgmB,MAAM6jG,cAAcnqH,EAAEM,EAAE+rH,6BAA6BjrH,OAAO,EAAEpB,CAAC,EAAEM,EAAEgsH,cAAc,WAAW,IAAIrsH,EAAEK,EAAEkpH,qBAAqBlpH,EAAEg/C,MAAMp2B,cAAc5oB,EAAEg/C,MAAM+pE,cAAc,GAAGrpH,EAAEM,EAAEg/C,MAAM+pE,cAAcT,WAAW,SAAS5oH,GAAG,OAAOA,GAAGC,CAAC,IAAIK,EAAEg/C,MAAMgqE,mBAAmBloH,OAAOd,EAAE2pH,SAAS3pH,EAAEuqH,WAAW7qH,IAAG,GAAIM,EAAE+oD,SAAS,CAACngC,YAAY,GAAGgiG,sBAAsBlrH,GAAG,EAAEM,EAAEisH,cAAc,SAAStsH,GAAG,IAAID,EAAEM,EAAEgmB,MAAMisC,KAAK1wD,EAAE5B,EAAE0M,OAAO8/B,UAAU,GAAG5qC,EAAE6tD,SAAS,kBAAkBzvD,EAAE+/F,QAAQhgG,EAAEwsH,QAAQlsH,EAAEg/C,MAAM0rE,aAAa,OAAO1qH,EAAEyqH,wBAAwB9qH,GAAG,GAAG4B,EAAE6tD,SAAS,kBAAkBzvD,EAAE+/F,QAAQhgG,EAAEwsH,OAAOvsH,EAAE+/F,QAAQhgG,EAAEysH,KAAK,OAAOxsH,EAAE0M,OAAO+/G,OAAO,GAAGpsH,EAAEg/C,MAAM0rE,eAAe1qH,EAAEgmB,MAAM0nE,YAAYnsF,EAAE6tD,SAAS,eAAezvD,EAAE+/F,QAAQhgG,EAAE2sH,IAAI1sH,EAAE+/F,QAAQhgG,EAAE4sH,MAAM3sH,EAAE+/F,QAAQhgG,EAAEwsH,OAAOvsH,EAAE+/F,QAAQhgG,EAAEysH,KAAK,KAAKxsH,EAAE0M,OAAO/J,OAAO,CAAC3C,EAAEw7F,eAAex7F,EAAEw7F,iBAAiBx7F,EAAEs7F,aAAY,EAAG,IAAIl6F,EAAE,SAASpB,GAAGK,EAAE+oD,SAAS,CAAC6hE,sBAAsB5qH,EAAE8rH,yBAAyBnsH,KAAK,WAAWK,EAAE2pH,SAAS3pH,EAAEuqH,WAAWvqH,EAAEg/C,MAAM4rE,wBAAuB,EAAG,GAAG,EAAE,OAAOjrH,EAAE+/F,OAAO,KAAKhgG,EAAE4sH,KAAKvrH,EAAE,GAAG,MAAM,KAAKrB,EAAE2sH,GAAGtrH,GAAG,GAAG,MAAM,KAAKrB,EAAEwsH,MAAMlsH,EAAEgmB,MAAM6jG,aAAa7pH,EAAEorH,oBAAoBprH,EAAE+rH,6BAA6B/rH,EAAEg/C,MAAM4rE,wBAAwB5qH,EAAE+rH,6BAA6B,GAAGpsH,GAAGK,EAAEorH,oBAAoB,GAAG1nH,OAAO/B,EAAE3B,EAAEg/C,MAAMgqE,oBAAoBrnH,EAAE3B,EAAEg/C,MAAM+pE,gBAAgB/oH,EAAEg/C,MAAM4rE,uBAAuBjrH,GAAG,MAAM,KAAKD,EAAEysH,IAAI,KAAKzsH,EAAE6sH,IAAIvsH,EAAE+oD,SAAS,CAAC2hE,cAAa,GAAI1qH,EAAEoqH,aAAa,MAAM,SAASzqH,EAAE+/F,OAAOhgG,EAAEygB,GAAGxgB,EAAE+/F,OAAOhgG,EAAEoqC,GAAGnqC,EAAE+/F,QAAQhgG,EAAE8sH,QAAQxsH,EAAE+oD,SAAS,CAACngC,YAAY5oB,EAAEg/C,MAAMp2B,YAAYtoB,OAAOgtC,aAAa3tC,EAAE+/F,QAAQ1/F,EAAEg/C,MAAMytE,6BAA6B,CAAC,EAAEzsH,EAAE0sH,mBAAmB,SAAS/sH,GAAG,IAAID,EAAEM,EAAEgmB,MAAMzkB,EAAE7B,EAAEuyD,KAAKlxD,EAAErB,EAAEitH,gBAAgBhrH,EAAEjC,EAAEiwD,UAAUhwD,EAAE+/F,QAAQn+F,EAAE2qH,OAAOnrH,GAAGA,EAAEpB,GAAGgC,GAAGA,EAAEhC,EAAE,EAAEK,EAAE4sH,mBAAmB,SAASjtH,GAAGK,EAAE4pH,cAAc5pH,EAAE6sH,qBAAqB9oB,SAASpkG,EAAE0M,SAASrM,EAAEg/C,MAAM0rE,cAAc1qH,EAAE+oD,SAAS,CAAC2hE,cAAa,GAAI,EAAE1qH,EAAE8sH,mBAAmB,SAASntH,GAAG,IAAID,EAAEC,EAAEm7F,cAAcx4F,MAAMf,EAAEvB,EAAEg/C,MAAMj+C,EAAEQ,EAAEynH,mBAAmBrnH,EAAEJ,EAAEgoH,gBAAgB3oH,EAAE,EAAE,GAAG,KAAKlB,GAAGiC,EAAE,CAAC,IAAIuR,EAAElT,EAAEg/C,MAAM+pE,cAAcnoH,EAAEZ,EAAE2qH,yBAAyB5pH,EAAEmS,GAAGo1G,WAAW,SAAS3oH,GAAG,OAAOA,GAAGgC,CAAC,IAAIgZ,YAAY,WAAW,OAAO3a,EAAE2pH,SAAS3pH,EAAEuqH,WAAW3pH,GAAG,GAAG,IAAI,CAACZ,EAAE+oD,SAAS,CAACsiE,YAAY3rH,EAAEkrH,sBAAsBhqH,GAAG,EAAEZ,EAAE2qH,yBAAyB,SAAShrH,EAAED,GAAG,OAAOC,EAAEmB,OAAO,EAAEa,EAAE,IAAI6mF,IAAI7oF,EAAE+D,OAAOhE,KAAKA,CAAC,EAAEM,EAAE+sH,uBAAuB,SAASptH,GAAG,OAAOA,EAAEipH,WAAWjpH,EAAEmW,IAAI,EAAE9V,EAAE+rH,2BAA2B,WAAW,IAAIpsH,EAAEK,EAAEg/C,MAAMt/C,EAAEC,EAAEqpH,mBAAmBznH,EAAE5B,EAAEopH,cAAchoH,EAAEpB,EAAE0rH,YAAYzqH,EAAEZ,EAAEgmB,MAAM6jG,aAAa32G,EAAElT,EAAE2qH,yBAAyBjrH,EAAE6B,GAAGiN,EAAEzN,EAAEyU,OAAOsZ,cAAc9Q,QAAQ,IAAI,IAAI,GAAGpd,GAAG4N,EAAE,CAAC,GAAG,QAAQtF,KAAKsF,GAAG,OAAO0E,EAAE0d,QAAQ,SAASjxB,GAAG,IAAID,EAAEC,EAAEsoH,SAAS,MAAM,CAAC,GAAGvkH,OAAOhE,IAAIu0D,MAAM,SAASt0D,GAAG,OAAOA,EAAEmvB,cAAcsgC,SAAS5gD,EAAE,GAAG,IAAI,IAAIlN,EAAE4R,EAAE0d,QAAQ,SAASjxB,GAAG,IAAID,EAAEC,EAAEooH,KAAK,MAAM,CAAC,GAAGrkH,OAAOhE,IAAIu0D,MAAM,SAASt0D,GAAG,OAAOA,EAAEmvB,cAAcsgC,SAAS5gD,EAAE,GAAG,IAAIrK,EAAE+O,EAAE0d,QAAQ,SAASjxB,GAAG,IAAID,EAAEC,EAAEmW,KAAK9V,EAAEL,EAAEipH,UAAiB,OAAPjpH,EAAEooH,KAAW,CAAC,GAAGrkH,OAAOhE,GAAG,GAAGgE,OAAO1D,GAAG,KAAKi0D,MAAM,SAASt0D,GAAG,OAAOA,EAAEmvB,cAAcsgC,SAAS5gD,EAAE,GAAG,IAAI,OAAOxO,EAAE8pH,cAAcnoH,EAAE,IAAI6mF,IAAI,GAAG9kF,OAAOpC,EAAE6C,IAAI,CAAC,OAAO+O,CAAC,EAAElT,EAAEgtH,uBAAuB,WAAW,IAAIrtH,EAAEK,EAAEg/C,MAAMt/C,EAAEC,EAAEqpH,mBAAmBjoH,EAAEpB,EAAEirH,sBAAsBjpH,EAAEhC,EAAE+qH,aAAa9pH,EAAEjB,EAAE0rH,YAAYn4G,EAAElT,EAAEgmB,MAAMxX,EAAE0E,EAAE+5G,gBAAgB3rH,EAAE4R,EAAEyoE,OAAOx3E,EAAEnE,EAAEgmB,MAAM5W,EAAEjL,EAAE0lH,aAAaj7G,EAAEzK,EAAE+oH,eAAe9oH,EAAED,EAAEgpH,kBAAkBjrH,EAAEiC,EAAEipH,YAAY3+G,EAAEtK,EAAEkpH,YAAY5tG,EAAEtb,EAAEmpH,kBAAkB9tG,EAAErb,EAAEopH,mBAAmBxpH,EAAE/D,EAAE+rH,6BAA6Bj/D,KAAK,SAASntD,EAAED,GAAG,IAAI6B,EAAER,IAAIrB,EAAEiC,EAAE4nC,IAAI,CAACyhF,SAAQ,EAAGwC,UAAU,OAAO7tH,EAAEooH,MAAM,OAAOpoH,EAAEooH,KAAK1sE,OAAO,OAAO17C,EAAEooH,KAAK0F,UAAUlsH,IAAIX,EAAE,QAAQ8C,OAAO/D,EAAEooH,MAAM,OAAOxoG,EAAExe,EAAE4F,cAAc,KAAK/G,OAAOe,OAAO,CAACgqD,IAAI,SAAShrD,GAAG,OAAOK,EAAE,WAAW0D,OAAOhE,IAAIC,CAAC,EAAEivC,IAAI,WAAWlrC,OAAOhE,GAAG,gBAAgB,WAAWgE,OAAOhE,GAAGysC,UAAUxqC,EAAE,iBAAiB,IAAI8tD,SAASjhD,EAAE,KAAK,IAAI,oBAAoB7O,EAAEooH,KAAKr4D,QAAQ,SAAShwD,GAAG,OAAOM,EAAEorH,oBAAoBzrH,EAAED,EAAE,EAAEgrD,KAAK,UAAUnpD,EAAE,CAAC,iBAAgB,GAAI,CAAC,GAAGge,EAAExe,EAAE4F,cAAc,MAAM,CAACwlC,UAAUvrC,IAAI2e,EAAExe,EAAE4F,cAAc,OAAO,CAACwlC,UAAU,gBAAgBnsC,EAAE+sH,uBAAuBptH,IAAI4f,EAAExe,EAAE4F,cAAc,OAAO,CAACwlC,UAAU,aAAaxsC,EAAEw1D,OAAOn1D,EAAE0pH,aAAa/pH,EAAEsoH,SAAStoH,GAAG2B,EAAE3B,EAAEsoH,UAAU,IAAIhoG,EAAEV,EAAExe,EAAE4F,cAAc,KAAK,CAACioC,IAAI,SAASzC,UAAU,YAAYzsC,EAAEoB,OAAO,KAAKsO,GAAGA,IAAIxO,EAAE4U,SAASzR,EAAEuR,OAAO5V,EAAEoB,OAAO,EAAEmf,GAAG,IAAIC,EAAEqpB,IAAIhoC,EAAE,CAAC,gBAAe,EAAGsb,MAAMlb,GAAG3B,EAAEgmB,MAAM0nG,eAAc,IAAK,OAAOnuG,EAAExe,EAAE4F,cAAc,KAAK,CAACgkD,IAAI,SAAShrD,GAAG,OAAOyP,GAAGzP,GAAGA,EAAE+lG,QAAQ1lG,EAAE4pH,YAAYjqH,CAAC,EAAEwsC,UAAUjsB,EAAEtV,MAAM5K,EAAEgmB,MAAM2nG,cAAcjjE,KAAK,UAAU+E,SAAS,KAAKrgD,GAAGmQ,EAAExe,EAAE4F,cAAc,KAAK,CAACwlC,UAAU5C,IAAIhoC,EAAE,CAACygG,QAAO,GAAI9/F,EAAEA,MAAMkC,GAAGmb,EAAExe,EAAE4F,cAAc,OAAO,CAACwlC,UAAU5C,IAAIhoC,EAAE,CAAC,gBAAe,GAAI,GAAGmC,OAAOxB,EAAE,UAAUA,IAAIwoD,KAAK,MAAM,aAAa,oBAAoB,gBAAMnrC,EAAExe,EAAE4F,cAAc,QAAQ,CAACwlC,UAAU5C,IAAIhoC,EAAE,CAAC,cAAa,GAAI,GAAGmC,OAAOxB,EAAE,QAAQA,IAAI0I,MAAM6D,EAAEhD,KAAK,SAAS+/G,YAAY/rG,EAAEy8F,WAAU,EAAG0R,aAAapuG,EAAE,KAAK,MAAMld,MAAM1B,EAAEqsD,SAASjtD,EAAE8sH,sBAAsB/oH,EAAEjD,OAAO,EAAEiD,EAAEwb,EAAExe,EAAE4F,cAAc,KAAK,CAACwlC,UAAU,sBAAsB5sB,EAAExe,EAAE4F,cAAc,OAAO,KAAKiI,IAAI,EAAE,IAAItN,EAAE6C,EAAE,IAAI2b,EAAEngB,EAAEypH,gBAAgBzpH,EAAEkuH,kBAAkBluH,EAAEmoH,QAAQnoH,EAAEopH,cAAcppH,EAAEqpH,mBAAmBrpH,EAAEmpH,iBAAiBnpH,EAAEmuH,cAAcnuH,EAAEouH,MAAMpuH,EAAEs/D,SAASt/D,EAAEquH,UAAUruH,EAAEsuH,aAAatuH,EAAEg8E,OAAOh8E,EAAEuuH,YAAYvuH,EAAEwuH,mBAAmBjsH,EAAEiC,EAAE4kH,cAAct6G,EAAEtK,EAAE6kH,mBAAmBvpG,EAAEtb,EAAE8kH,gBAAgBllH,EAAEpE,EAAE2C,MAAM3C,EAAE2C,MAAM0b,QAAQ,MAAM,IAAI,GAAG1c,EAAE3B,EAAEyuH,2BAA2B,EAAErqH,EAAEjD,OAAO,EAAEd,EAAEmpH,qBAAqBplH,EAAEw/C,UAAU,EAAE,GAAG5jD,EAAEqrH,QAAQ9oH,EAAEud,IAAI,EAAE9f,EAAEqrH,SAAS9oH,EAAEwmH,MAAM,SAAShpH,GAAG,OAAOA,EAAEqoH,MAAMpoH,EAAEqrH,OAAO,KAAK,EAAE,IAAI9qG,EAAEF,EAAEjc,EAAEjD,OAAO,GAAGQ,IAAI2iC,IAAIlgC,EAAEzC,EAAE2mH,UAAU3mH,EAAE2mH,SAAS,GAAG/nG,EAAE,KAAKnc,GAAG,IAAIzC,EAAE,GAAGtB,EAAE0pH,cAAc/pH,EAAE8pH,mBAAmB,GAAGzpG,GAAGjc,EAAEzC,EAAEwU,KAAKxU,OAAE,GAAQ,IAAIue,EAAE3d,EAAEomH,WAAW,SAAS3oH,GAAG,OAAOA,GAAG2B,CAAC,IAAI,OAAOtB,EAAEg/C,MAAM,CAAC0rE,aAAa/qH,EAAE+qH,aAAalB,gBAAgBtpG,EAAE6oG,cAAc7mH,EAAE8mH,mBAAmBv6G,EAAEw6G,gBAAgBxpG,EAAE8pG,gBAAgBjoH,EAAEspH,sBAAsB/qG,EAAE+I,YAAY,GAAGkiG,iBAAgB,EAAG2B,4BAA4BjtG,IAAIxf,EAAEgsH,cAAc,KAAKX,YAAY,IAAIrrH,CAAC,CAAC,IAAIA,EAAEmE,EAAI,OAAO,SAASxE,EAAED,GAAG,GAAG,mBAAmBA,GAAG,OAAOA,EAAE,MAAM,IAAIW,UAAU,sDAAsDV,EAAEM,UAAUL,OAAOa,OAAOf,GAAGA,EAAEO,UAAU,CAACO,YAAY,CAAC8B,MAAM3C,EAAEioH,UAAS,EAAG37B,cAAa,KAAMvsF,GAAGwC,EAAEvC,EAAED,EAAE,CAAjO,CAAmOA,EAAEC,GAAGK,EAAEN,GAAGyE,EAAE,CAAC,CAACyqC,IAAI,oBAAoBtsC,MAAM,WAAWoE,SAAS+N,kBAAkBlU,KAAKylB,MAAMqoG,oBAAoB3nH,SAAS+N,iBAAiB,YAAYlU,KAAKqsH,oBAAoBrsH,KAAKylB,MAAMsoG,SAAS/tH,KAAKylB,MAAMsoG,QAAQ/tH,KAAKy+C,MAAMwqE,gBAAgBxrG,QAAQ,WAAW,IAAIzd,KAAKiqH,iBAAiBjqH,KAAKy+C,MAAMwqE,gBAAgB,GAAG,CAAC56E,IAAI,uBAAuBtsC,MAAM,WAAWoE,SAAS2O,qBAAqB9U,KAAKylB,MAAMqoG,oBAAoB3nH,SAAS2O,oBAAoB,YAAY9U,KAAKqsH,mBAAmB,GAAG,CAACh+E,IAAI,qBAAqBtsC,MAAM,SAAS3C,EAAED,EAAEM,GAAGL,EAAEqrH,UAAUzqH,KAAKylB,MAAMglG,QAAQzqH,KAAK+oH,cAAc/oH,KAAKylB,MAAMglG,SAASrrH,EAAE2C,QAAQ/B,KAAKylB,MAAM1jB,OAAO/B,KAAKguH,sBAAsBhuH,KAAKylB,MAAM1jB,MAAM,GAAG,CAACssC,IAAI,wBAAwBtsC,MAAM,SAAS3C,GAAG,GAAG,OAAOA,EAAE,OAAOY,KAAKwoD,SAAS,CAACwgE,gBAAgB,EAAEC,gBAAgB,KAAK,IAAI9pH,EAAEa,KAAKy+C,MAAMh/C,EAAEN,EAAEqpH,cAAcxnH,EAAE7B,EAAE6pH,gBAAgBxoH,EAAErB,EAAEupH,gBAAgBtnH,EAAEpB,KAAKylB,MAAMplB,EAAEe,EAAEqpH,QAAQ93G,EAAEvR,EAAEg6E,OAAO,GAAG,KAAKh8E,EAAE,OAAOY,KAAKwoD,SAAS,CAACwgE,gBAAgBhoH,EAAEioH,gBAAgB,KAAK,IAAIh7G,EAAElN,EAAE6C,EAAExE,EAAEqe,QAAQ,MAAM,IAAI,GAAGzc,GAAG0iC,IAAItkC,EAAEuT,EAAE3R,EAAE0mH,UAAU3mH,EAAEf,KAAKmpH,aAAavlH,EAAE5C,GAAGhB,KAAKwoD,SAAS,CAACygE,gBAAgBloH,QAAQ,CAAC,IAAI8N,GAAGZ,EAAEjO,KAAKylB,MAAMilG,oBAAoB1pH,EAAEhB,KAAK4oH,qBAAqBhlH,EAAEo/C,UAAU,EAAE,GAAG3iD,EAAEZ,EAAEe,IAAIQ,IAAI0iC,IAAI9/B,EAAE+O,EAAE1E,EAAEy5G,UAAUz5G,EAAEy5G,SAAS,GAAG3mH,EAAEf,KAAKmpH,cAAcnpH,KAAKylB,MAAMyjG,mBAAmB,GAAGr6G,GAAGjL,EAAEqK,QAAG,GAAQjO,KAAKwoD,SAAS,CAACwgE,gBAAgB/6G,EAAEg7G,gBAAgBloH,GAAG,CAAC,GAAG,CAACstC,IAAI,SAAStsC,MAAM,WAAW,IAAI3C,EAAED,EAAEM,EAAEe,EAAER,KAAKoB,EAAEpB,KAAKy+C,MAAMp+C,EAAEe,EAAEonH,cAAc71G,EAAEvR,EAAE4nH,gBAAgB/6G,EAAE7M,EAAE+oH,aAAappH,EAAEK,EAAE6nH,gBAAgBrlH,EAAExC,EAAEsnH,gBAAgB75G,EAAE7O,KAAKylB,MAAMpX,EAAEQ,EAAE69G,gBAAgB7oH,EAAEgL,EAAEo/G,mBAAmBtsH,EAAEkN,EAAEsnD,QAAQjoD,EAAEW,EAAEq/G,oBAAoBhvG,EAAErQ,EAAEs/G,aAAa,GAAG,kBAAkBxsH,EAAExC,EAAEwC,MAAM,CAAC,IAAIsd,EAAEtd,EAAEZ,EAAE0c,QAAQ,MAAM,IAAI9K,EAAEtS,EAAEuD,GAAG,kBAAkBqb,GAAE,KAAM9f,EAAE8f,KAAKxf,EAAEyO,IAAI/O,GAAE,EAAGM,EAAEwf,EAAE,CAAC,IAAIzb,EAAEwlC,KAAKhoC,EAAE5B,EAAE,CAAC,EAAEY,KAAKylB,MAAM2oG,gBAAe,GAAIptH,EAAE5B,EAAE,mBAAkB,GAAIA,IAAIsgB,EAAEspB,IAAI,CAACqlF,OAAM,EAAGC,GAAGrgH,IAAI0R,EAAEqpB,IAAIhoC,EAAE,CAAC,gBAAe,EAAG,kBAAkB7B,EAAE8R,KAAKhD,GAAGjO,KAAKylB,MAAM8oG,YAAW,IAAK1uG,EAAEmpB,IAAI,CAAC,iBAAgB,EAAG/3B,KAAKhD,IAAIwR,EAAEupB,IAAIhoC,EAAE,CAAC,iBAAgB,EAAG,kBAAkB7B,EAAE8R,KAAKhD,GAAGjO,KAAKylB,MAAM+oG,aAAY,IAAK9qF,EAAE,QAAQvgC,OAAOwP,GAAGA,EAAE60G,MAAM,OAAOxoG,EAAExe,EAAE4F,cAAc,MAAM,CAACwlC,UAAU,GAAGzoC,OAAOK,EAAE,KAAKL,OAAOnD,KAAKylB,MAAMmmB,WAAWvhC,MAAMrK,KAAKylB,MAAMpb,OAAOrK,KAAKylB,MAAMgpG,eAAer/D,UAAUpvD,KAAK0rH,eAAexsG,GAAGF,EAAExe,EAAE4F,cAAc,MAAM,CAACwlC,UAAU,iBAAiB1sB,GAAGzf,GAAGuf,EAAExe,EAAE4F,cAAc,MAAM,CAACwlC,UAAU,0BAA0BnsC,GAAGuf,EAAExe,EAAE4F,cAAc,QAAQ/G,OAAOe,OAAO,CAACwrC,UAAUjsB,EAAEtV,MAAMrK,KAAKylB,MAAMipG,WAAWhiE,SAAS1sD,KAAKsqH,YAAYn7D,QAAQnvD,KAAK2qH,iBAAiBgE,cAAc3uH,KAAK4qH,kBAAkBM,QAAQlrH,KAAK+qH,iBAAiBK,OAAOprH,KAAKmrH,gBAAgByD,OAAO5uH,KAAKqrH,gBAAgBtpH,MAAMhB,EAAEquD,UAAUpvD,KAAKmsH,mBAAmBlB,YAAYjrH,KAAKylB,MAAMwlG,YAAY99B,SAASntF,KAAKylB,MAAM0nE,SAASjiF,KAAK,OAAOlL,KAAKylB,MAAMopG,WAAW,CAACzkE,IAAI,SAAShrD,GAAGoB,EAAEspH,eAAe1qH,EAAE,mBAAmBoB,EAAEilB,MAAMopG,WAAWzkE,IAAI5pD,EAAEilB,MAAMopG,WAAWzkE,IAAIhrD,GAAG,iBAAiBoB,EAAEilB,MAAMopG,WAAWzkE,MAAM5pD,EAAEilB,MAAMopG,WAAWzkE,IAAI8pC,QAAQ90F,EAAE,KAAK4f,EAAExe,EAAE4F,cAAc,MAAM,CAACwlC,UAAUnsB,EAAEpV,MAAMrK,KAAKylB,MAAMqpG,YAAY1kE,IAAI,SAAShrD,GAAG,OAAOoB,EAAE8rH,qBAAqBltH,CAAC,GAAGyE,EAAEmb,EAAExe,EAAE4F,cAAc,MAAM,CAACwlC,UAAU/rB,GAAGhc,GAAGmb,EAAExe,EAAE4F,cAAc,MAAM,CAAC+oD,QAAQ9gD,OAAE,EAAOrO,KAAKkqH,wBAAwBt+E,UAAU/rB,EAAEyrB,MAAM34B,EAAE,GAAGxP,OAAOwP,EAAE01G,WAAW11G,EAAE4C,KAAK,QAAQpS,OAAOwP,EAAE+0G,UAAU,GAAGx4D,SAAS7gD,EAAE,KAAK,IAAI87C,KAAK,SAAS,gBAAgB,UAAU,kBAAkBl8C,QAAG,GAAQ+Q,EAAExe,EAAE4F,cAAc,MAAM,CAACwlC,UAAUlI,IAAIr1B,GAAG2Q,EAAExe,EAAE4F,cAAc,MAAM,CAACwlC,UAAUlsB,MAAMzR,GAAGjO,KAAKysH,0BAA0B,MAAM1rH,EAAEtB,EAAEC,UAAUkE,GAAazE,CAAC,CAA7xf,CAA+xf6f,EAAExe,EAAE4uG,WAAWvpF,EAAEulC,aAAa,CAACq/D,QAAQ,GAAG1oH,MAAM,GAAGymH,cAAc,GAAGC,mBAAmB,GAAGF,iBAAiB,GAAG0C,YAAY,mBAAmB8B,kBAAkB,SAASJ,eAAe,qBAAqBoC,eAAe,cAAc5hC,UAAS,EAAGshC,eAAe,CAAC,EAAEC,WAAW,CAAC,EAAEI,YAAY,CAAC,EAAE1B,cAAc,CAAC,EAAEN,YAAY,CAAC,EAAEsB,eAAe,GAAGG,WAAW,GAAGC,YAAY,GAAGrB,cAAc,GAAGN,YAAY,GAAGjhF,UAAU,GAAG89E,YAAW,EAAGb,iBAAgB,EAAGyE,mBAAkB,EAAGpE,oBAAmB,EAAGwD,iBAAgB,EAAGjD,mBAAkB,EAAGe,qBAAoB,EAAGlB,cAAa,EAAGsD,mBAAkB,EAAGiB,4BAA2B,EAAGnD,qBAAoB,EAAGnD,QAAQ,GAAGsH,WAAW,CAAC,EAAEnB,aAAa,CAAC,EAAEF,MAAM,KAAK9uD,SAAS,KAAK+uD,UAAU,KAAKF,cAAc,GAAGI,YAAY,qBAAqBC,mBAAkB,EAAGxyC,OAAO,IAAIkwC,iBAAgB,EAAG2C,mBAAmB,GAAGjB,oBAAmB,EAAGhC,iBAAgB,EAAGxB,uBAAsB,EAAGsE,oBAAmB,EAAG3D,cAAa,EAAGh0D,SAAQ,EAAG+3D,oBAAoB,GAAGC,aAAa,QAAQ/B,gBAAgB,KAAK16D,KAAK,CAACo6D,GAAG,GAAGC,KAAK,GAAGiD,MAAM,GAAGC,KAAK,GAAGtD,MAAM,GAAGC,IAAI,GAAGsD,KAAK,GAAGtvG,EAAE,GAAG2pB,EAAE,GAAG0iF,MAAM,GAAGD,IAAI,IAAI7sH,EAAEiF,QAAQyhB,CAAC,wCCIniqDlT,EAAxbuM,EAAE3c,OAAOuvD,IAAI,iBAAiB7jD,EAAE1L,OAAOuvD,IAAI,gBAAgBzjD,EAAE9L,OAAOuvD,IAAI,kBAAkB1yD,EAAEmD,OAAOuvD,IAAI,qBAAqBjjD,EAAEtM,OAAOuvD,IAAI,kBAAkB7yC,EAAE1c,OAAOuvD,IAAI,kBAAkBnwD,EAAEY,OAAOuvD,IAAI,iBAAiBtjD,EAAEjM,OAAOuvD,IAAI,wBAAwBluD,EAAErB,OAAOuvD,IAAI,qBAAqB5jD,EAAE3L,OAAOuvD,IAAI,kBAAkB9wD,EAAEuB,OAAOuvD,IAAI,uBAAuBjuD,EAAEtB,OAAOuvD,IAAI,cAAc5oB,EAAE3mC,OAAOuvD,IAAI,cAAc3yD,EAAEoD,OAAOuvD,IAAI,mBACtb,SAAStuD,EAAEhD,GAAG,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,IAAIf,EAAEe,EAAEuxD,SAAS,OAAOtyD,GAAG,KAAKyf,EAAE,OAAO1e,EAAEA,EAAE0K,MAAQ,KAAKmD,EAAE,KAAKQ,EAAE,KAAKzP,EAAE,KAAK8O,EAAE,KAAKlN,EAAE,OAAOR,EAAE,QAAQ,OAAOA,EAAEA,GAAGA,EAAEuxD,UAAY,KAAKvjD,EAAE,KAAK7M,EAAE,KAAKiC,EAAE,KAAKslC,EAAE,KAAKrlC,EAAE,KAAKob,EAAE,OAAOze,EAAE,QAAQ,OAAOf,GAAG,KAAKwO,EAAE,OAAOxO,EAAE,CAAC,CADkMkT,EAAEpQ,OAAOuvD,IAAI,4DCNtdtsD,EAAAA,uCCMW,IAAIqJ,EAAEghD,EAAQ,KAASrhD,EAAEjM,OAAOuvD,IAAI,iBAAiBluD,EAAErB,OAAOuvD,IAAI,kBAAkB5jD,EAAE7O,OAAOK,UAAUC,eAAeqB,EAAE6N,EAAE26E,mDAAmD2uB,kBAAkBt0G,EAAE,CAACwqC,KAAI,EAAG+b,KAAI,EAAG+kE,QAAO,EAAGC,UAAS,GAChP,SAASlmF,EAAEj7B,EAAEzN,EAAEye,GAAG,IAAIC,EAAE7Q,EAAE,CAAC,EAAEjP,EAAE,KAAKuC,EAAE,KAAiF,IAAIud,UAAhF,IAASD,IAAI7f,EAAE,GAAG6f,QAAG,IAASze,EAAE6tC,MAAMjvC,EAAE,GAAGoB,EAAE6tC,UAAK,IAAS7tC,EAAE4pD,MAAMzoD,EAAEnB,EAAE4pD,KAAc5pD,EAAE0N,EAAEtO,KAAKY,EAAE0e,KAAKrb,EAAElE,eAAeuf,KAAK7Q,EAAE6Q,GAAG1e,EAAE0e,IAAI,GAAGjR,GAAGA,EAAEm9C,aAAa,IAAIlsC,KAAK1e,EAAEyN,EAAEm9C,kBAAe,IAAS/8C,EAAE6Q,KAAK7Q,EAAE6Q,GAAG1e,EAAE0e,IAAI,MAAM,CAAC6yC,SAASvjD,EAAEtD,KAAK+C,EAAEogC,IAAIjvC,EAAEgrD,IAAIzoD,EAAE8jB,MAAMpX,EAAEqiG,OAAO1vG,EAAEkzF,QAAQ,CAAC/uF,EAAQktD,SAASzuD,EAAEuB,EAAQkqH,IAAInmF,EAAE/jC,EAAQmqH,KAAKpmF,kCCD7V,IAAItlC,EAAErB,OAAOuvD,IAAI,iBAAiB9wD,EAAEuB,OAAOuvD,IAAI,gBAAgBjuD,EAAEtB,OAAOuvD,IAAI,kBAAkB5oB,EAAE3mC,OAAOuvD,IAAI,qBAAqBryD,EAAE8C,OAAOuvD,IAAI,kBAAkB3yD,EAAEoD,OAAOuvD,IAAI,kBAAkBn/C,EAAEpQ,OAAOuvD,IAAI,iBAAiBtuD,EAAEjB,OAAOuvD,IAAI,qBAAqBjyC,EAAEtd,OAAOuvD,IAAI,kBAAkBxyC,EAAE/c,OAAOuvD,IAAI,cAAc9yC,EAAEzc,OAAOuvD,IAAI,cAAc/rC,EAAExjB,OAAOC,SACzW,IAAIgkC,EAAE,CAACgpE,UAAU,WAAW,OAAM,CAAE,EAAEK,mBAAmB,WAAW,EAAED,oBAAoB,WAAW,EAAEF,gBAAgB,WAAW,GAAGhwF,EAAErgB,OAAOe,OAAO4f,EAAE,CAAC,EAAE,SAASR,EAAEhf,EAAE0e,EAAE9f,GAAGY,KAAKylB,MAAMjlB,EAAER,KAAK0wC,QAAQxxB,EAAElf,KAAKqvG,KAAKrvF,EAAEhgB,KAAKkwG,QAAQ9wG,GAAGonC,CAAC,CACwI,SAAS3gB,IAAI,CAAyB,SAASmhB,EAAExmC,EAAE0e,EAAE9f,GAAGY,KAAKylB,MAAMjlB,EAAER,KAAK0wC,QAAQxxB,EAAElf,KAAKqvG,KAAKrvF,EAAEhgB,KAAKkwG,QAAQ9wG,GAAGonC,CAAC,CADxPhnB,EAAE9f,UAAU8hH,iBAAiB,CAAC,EACpQhiG,EAAE9f,UAAU8oD,SAAS,SAAShoD,EAAE0e,GAAG,GAAG,kBAAkB1e,GAAG,oBAAoBA,GAAG,MAAMA,EAAE,MAAM8E,MAAM,yHAAyHtF,KAAKkwG,QAAQR,gBAAgB1vG,KAAKQ,EAAE0e,EAAE,WAAW,EAAEM,EAAE9f,UAAU6vH,YAAY,SAAS/uH,GAAGR,KAAKkwG,QAAQL,mBAAmB7vG,KAAKQ,EAAE,cAAc,EAAgBqlB,EAAEnmB,UAAU8f,EAAE9f,UAAsF,IAAIupC,EAAEjC,EAAEtnC,UAAU,IAAImmB,EACrfojB,EAAEhpC,YAAY+mC,EAAEtnB,EAAEupB,EAAEzpB,EAAE9f,WAAWupC,EAAE+mE,sBAAqB,EAAG,IAAI1pE,EAAE9mC,MAAMs0D,QAAQrqB,EAAEpqC,OAAOK,UAAUC,eAAe6pC,EAAE,CAAC0qD,QAAQ,MAAMxtD,EAAE,CAAC2H,KAAI,EAAG+b,KAAI,EAAG+kE,QAAO,EAAGC,UAAS,GACtK,SAASrvG,EAAEvf,EAAE0e,EAAE9f,GAAG,IAAIiP,EAAEJ,EAAE,CAAC,EAAEO,EAAE,KAAK7M,EAAE,KAAK,GAAG,MAAMud,EAAE,IAAI7Q,UAAK,IAAS6Q,EAAEkrC,MAAMzoD,EAAEud,EAAEkrC,UAAK,IAASlrC,EAAEmvB,MAAM7/B,EAAE,GAAG0Q,EAAEmvB,KAAKnvB,EAAEuqB,EAAE7pC,KAAKsf,EAAE7Q,KAAKq4B,EAAE/mC,eAAe0O,KAAKJ,EAAEI,GAAG6Q,EAAE7Q,IAAI,IAAI4Q,EAAE3e,UAAUC,OAAO,EAAE,GAAG,IAAI0e,EAAEhR,EAAEipC,SAAS93C,OAAO,GAAG,EAAE6f,EAAE,CAAC,IAAI,IAAIpQ,EAAErP,MAAMyf,GAAG/Q,EAAE,EAAEA,EAAE+Q,EAAE/Q,IAAIW,EAAEX,GAAG5N,UAAU4N,EAAE,GAAGD,EAAEipC,SAASroC,CAAC,CAAC,GAAGrO,GAAGA,EAAE4qD,aAAa,IAAI/8C,KAAK4Q,EAAEze,EAAE4qD,kBAAe,IAASn9C,EAAEI,KAAKJ,EAAEI,GAAG4Q,EAAE5Q,IAAI,MAAM,CAAC0jD,SAASnuD,EAAEsH,KAAK1K,EAAE6tC,IAAI7/B,EAAE47C,IAAIzoD,EAAE8jB,MAAMxX,EAAEyiG,OAAOlnE,EAAE0qD,QAAQ,CAChV,SAASnrD,EAAEvoC,GAAG,MAAM,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEuxD,WAAWnuD,CAAC,CAAoG,IAAI2b,EAAE,OAAO,SAASoqB,EAAEnpC,EAAE0e,GAAG,MAAM,kBAAkB1e,GAAG,OAAOA,GAAG,MAAMA,EAAE6tC,IAA7K,SAAgB7tC,GAAG,IAAI0e,EAAE,CAAC,IAAI,KAAK,IAAI,MAAM,MAAM,IAAI1e,EAAEid,QAAQ,SAAQ,SAASjd,GAAG,OAAO0e,EAAE1e,EAAE,GAAE,CAA+EgvH,CAAO,GAAGhvH,EAAE6tC,KAAKnvB,EAAEvS,SAAS,GAAG,CAC/W,SAAS45B,EAAE/lC,EAAE0e,EAAE9f,EAAEiP,EAAEJ,GAAG,IAAIO,SAAShO,EAAK,cAAcgO,GAAG,YAAYA,IAAEhO,EAAE,MAAK,IAAImB,GAAE,EAAG,GAAG,OAAOnB,EAAEmB,GAAE,OAAQ,OAAO6M,GAAG,IAAK,SAAS,IAAK,SAAS7M,GAAE,EAAG,MAAM,IAAK,SAAS,OAAOnB,EAAEuxD,UAAU,KAAKnuD,EAAE,KAAK5C,EAAEW,GAAE,GAAI,GAAGA,EAAE,OAAWsM,EAAEA,EAANtM,EAAEnB,GAASA,EAAE,KAAK6N,EAAE,IAAIs7B,EAAEhoC,EAAE,GAAG0M,EAAEi4B,EAAEr4B,IAAI7O,EAAE,GAAG,MAAMoB,IAAIpB,EAAEoB,EAAEid,QAAQ8B,EAAE,OAAO,KAAKgnB,EAAEt4B,EAAEiR,EAAE9f,EAAE,IAAG,SAASoB,GAAG,OAAOA,CAAC,KAAI,MAAMyN,IAAI86B,EAAE96B,KAAKA,EADnW,SAAWzN,EAAE0e,GAAG,MAAM,CAAC6yC,SAASnuD,EAAEsH,KAAK1K,EAAE0K,KAAKmjC,IAAInvB,EAAEkrC,IAAI5pD,EAAE4pD,IAAI3kC,MAAMjlB,EAAEilB,MAAMirF,OAAOlwG,EAAEkwG,OAAO,CACyQ1nE,CAAE/6B,EAAE7O,IAAI6O,EAAEogC,KAAK1sC,GAAGA,EAAE0sC,MAAMpgC,EAAEogC,IAAI,IAAI,GAAGpgC,EAAEogC,KAAK5wB,QAAQ8B,EAAE,OAAO,KAAK/e,IAAI0e,EAAExc,KAAKuL,IAAI,EAAyB,GAAvBtM,EAAE,EAAE0M,EAAE,KAAKA,EAAE,IAAIA,EAAE,IAAOi4B,EAAE9lC,GAAG,IAAI,IAAIye,EAAE,EAAEA,EAAEze,EAAED,OAAO0e,IAAI,CAC/e,IAAIpQ,EAAER,EAAEs7B,EADwen7B,EACrfhO,EAAEye,GAAeA,GAAGtd,GAAG4kC,EAAE/3B,EAAE0Q,EAAE9f,EAAEyP,EAAEZ,EAAE,MAAM,GAAGY,EAPsU,SAAWrO,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAsC,oBAAjCA,EAAEulB,GAAGvlB,EAAEulB,IAAIvlB,EAAE,eAA0CA,EAAE,IAAI,CAO5bof,CAAEpf,GAAG,oBAAoBqO,EAAE,IAAIrO,EAAEqO,EAAEjP,KAAKY,GAAGye,EAAE,IAAIzQ,EAAEhO,EAAEoB,QAAQE,MAA6BH,GAAG4kC,EAA1B/3B,EAAEA,EAAEzM,MAA0Bmd,EAAE9f,EAAtByP,EAAER,EAAEs7B,EAAEn7B,EAAEyQ,KAAkBhR,QAAQ,GAAG,WAAWO,EAAE,MAAM0Q,EAAEnf,OAAOS,GAAG8E,MAAM,mDAAmD,oBAAoB4Z,EAAE,qBAAqB7f,OAAOqyD,KAAKlxD,GAAG0Q,KAAK,MAAM,IAAIgO,GAAG,6EAA6E,OAAOvd,CAAC,CACzZ,SAAS8d,EAAEjf,EAAE0e,EAAE9f,GAAG,GAAG,MAAMoB,EAAE,OAAOA,EAAE,IAAI6N,EAAE,GAAGJ,EAAE,EAAmD,OAAjDs4B,EAAE/lC,EAAE6N,EAAE,GAAG,IAAG,SAAS7N,GAAG,OAAO0e,EAAEtf,KAAKR,EAAEoB,EAAEyN,IAAI,IAAUI,CAAC,CAAC,SAASyR,EAAEtf,GAAG,IAAI,IAAIA,EAAEivH,QAAQ,CAAC,IAAIvwG,EAAE1e,EAAEkvH,SAAQxwG,EAAEA,KAAMld,MAAK,SAASkd,GAAM,IAAI1e,EAAEivH,UAAU,IAAIjvH,EAAEivH,UAAQjvH,EAAEivH,QAAQ,EAAEjvH,EAAEkvH,QAAQxwG,EAAC,IAAE,SAASA,GAAM,IAAI1e,EAAEivH,UAAU,IAAIjvH,EAAEivH,UAAQjvH,EAAEivH,QAAQ,EAAEjvH,EAAEkvH,QAAQxwG,EAAC,KAAI,IAAI1e,EAAEivH,UAAUjvH,EAAEivH,QAAQ,EAAEjvH,EAAEkvH,QAAQxwG,EAAE,CAAC,GAAG,IAAI1e,EAAEivH,QAAQ,OAAOjvH,EAAEkvH,QAAQtrH,QAAQ,MAAM5D,EAAEkvH,OAAQ,CAC5Z,IAAIhmF,EAAE,CAACwqD,QAAQ,MAAMztD,EAAE,CAAC6yD,WAAW,MAAMnwD,EAAE,CAACmpE,uBAAuB5oE,EAAE0vD,wBAAwB3yD,EAAE0xE,kBAAkB3uE,GAAGrkC,EAAQwqH,SAAS,CAACpjE,IAAI9sC,EAAE0T,QAAQ,SAAS3yB,EAAE0e,EAAE9f,GAAGqgB,EAAEjf,GAAE,WAAW0e,EAAEze,MAAMT,KAAKM,UAAU,GAAElB,EAAE,EAAEwwH,MAAM,SAASpvH,GAAG,IAAI0e,EAAE,EAAuB,OAArBO,EAAEjf,GAAE,WAAW0e,GAAG,IAAUA,CAAC,EAAEu4D,QAAQ,SAASj3E,GAAG,OAAOif,EAAEjf,GAAE,SAASA,GAAG,OAAOA,CAAC,KAAI,EAAE,EAAEqvH,KAAK,SAASrvH,GAAG,IAAIuoC,EAAEvoC,GAAG,MAAM8E,MAAM,yEAAyE,OAAO9E,CAAC,GAAG2E,EAAQiqG,UAAU5vF,EAAEra,EAAQktD,SAASxuD,EACnesB,EAAQqtD,SAAS/yD,EAAE0F,EAAQ2qH,cAAc9oF,EAAE7hC,EAAQstD,WAAWvpB,EAAE/jC,EAAQutD,SAAS7yC,EAAE1a,EAAQqkF,mDAAmDrgD,EAC9IhkC,EAAQ4qH,aAAa,SAASvvH,EAAE0e,EAAE9f,GAAG,GAAG,OAAOoB,QAAG,IAASA,EAAE,MAAM8E,MAAM,iFAAiF9E,EAAE,KAAK,IAAI6N,EAAEqR,EAAE,CAAC,EAAElf,EAAEilB,OAAOxX,EAAEzN,EAAE6tC,IAAI7/B,EAAEhO,EAAE4pD,IAAIzoD,EAAEnB,EAAEkwG,OAAO,GAAG,MAAMxxF,EAAE,CAAoE,QAAnE,IAASA,EAAEkrC,MAAM57C,EAAE0Q,EAAEkrC,IAAIzoD,EAAE6nC,EAAE0qD,cAAS,IAASh1E,EAAEmvB,MAAMpgC,EAAE,GAAGiR,EAAEmvB,KAAQ7tC,EAAE0K,MAAM1K,EAAE0K,KAAKkgD,aAAa,IAAInsC,EAAEze,EAAE0K,KAAKkgD,aAAa,IAAIv8C,KAAKqQ,EAAEuqB,EAAE7pC,KAAKsf,EAAErQ,KAAK63B,EAAE/mC,eAAekP,KAAKR,EAAEQ,QAAG,IAASqQ,EAAErQ,SAAI,IAASoQ,EAAEA,EAAEpQ,GAAGqQ,EAAErQ,GAAG,CAAC,IAAIA,EAAEvO,UAAUC,OAAO,EAAE,GAAG,IAAIsO,EAAER,EAAE6oC,SAAS93C,OAAO,GAAG,EAAEyP,EAAE,CAACoQ,EAAEzf,MAAMqP,GACrf,IAAI,IAAIX,EAAE,EAAEA,EAAEW,EAAEX,IAAI+Q,EAAE/Q,GAAG5N,UAAU4N,EAAE,GAAGG,EAAE6oC,SAASj4B,CAAC,CAAC,MAAM,CAAC8yC,SAASnuD,EAAEsH,KAAK1K,EAAE0K,KAAKmjC,IAAIpgC,EAAEm8C,IAAI57C,EAAEiX,MAAMpX,EAAEqiG,OAAO/uG,EAAE,EAAEwD,EAAQ6qH,cAAc,SAASxvH,GAAqK,OAAlKA,EAAE,CAACuxD,SAASp/C,EAAE06F,cAAc7sG,EAAEyvH,eAAezvH,EAAE0vH,aAAa,EAAEC,SAAS,KAAKC,SAAS,KAAKC,cAAc,KAAKC,YAAY,OAAQH,SAAS,CAACp+D,SAAS5yD,EAAE8rF,SAASzqF,GAAUA,EAAE4vH,SAAS5vH,CAAC,EAAE2E,EAAQiB,cAAc2Z,EAAE5a,EAAQorH,cAAc,SAAS/vH,GAAG,IAAI0e,EAAEa,EAAE/M,KAAK,KAAKxS,GAAY,OAAT0e,EAAEhU,KAAK1K,EAAS0e,CAAC,EAAE/Z,EAAQqrH,UAAU,WAAW,MAAM,CAACt8B,QAAQ,KAAK,EAC9d/uF,EAAQsrH,WAAW,SAASjwH,GAAG,MAAM,CAACuxD,SAASvuD,EAAEymD,OAAOzpD,EAAE,EAAE2E,EAAQurH,eAAe3nF,EAAE5jC,EAAQwrH,KAAK,SAASnwH,GAAG,MAAM,CAACuxD,SAAS/yC,EAAEksE,SAAS,CAACukC,SAAS,EAAEC,QAAQlvH,GAAG2qF,MAAMrrE,EAAE,EAAE3a,EAAQyrH,KAAK,SAASpwH,EAAE0e,GAAG,MAAM,CAAC6yC,SAASzyC,EAAEpU,KAAK1K,EAAEmwD,aAAQ,IAASzxC,EAAE,KAAKA,EAAE,EAAE/Z,EAAQ0rH,gBAAgB,SAASrwH,GAAG,IAAI0e,EAAEunB,EAAE6yD,WAAW7yD,EAAE6yD,WAAW,CAAC,EAAE,IAAI94F,GAAG,CAAC,QAAQimC,EAAE6yD,WAAWp6E,CAAC,CAAC,EAAE/Z,EAAQ2rH,aAAa,WAAW,MAAMxrH,MAAM,2DAA4D,EAC1cH,EAAQ4wG,YAAY,SAASv1G,EAAE0e,GAAG,OAAOwqB,EAAEwqD,QAAQ6hB,YAAYv1G,EAAE0e,EAAE,EAAE/Z,EAAQ6wG,WAAW,SAASx1G,GAAG,OAAOkpC,EAAEwqD,QAAQ8hB,WAAWx1G,EAAE,EAAE2E,EAAQoxG,cAAc,WAAW,EAAEpxG,EAAQqxG,iBAAiB,SAASh2G,GAAG,OAAOkpC,EAAEwqD,QAAQsiB,iBAAiBh2G,EAAE,EAAE2E,EAAQ2nD,UAAU,SAAStsD,EAAE0e,GAAG,OAAOwqB,EAAEwqD,QAAQpnC,UAAUtsD,EAAE0e,EAAE,EAAE/Z,EAAQyxG,MAAM,WAAW,OAAOltE,EAAEwqD,QAAQ0iB,OAAO,EAAEzxG,EAAQ8wG,oBAAoB,SAASz1G,EAAE0e,EAAE9f,GAAG,OAAOsqC,EAAEwqD,QAAQ+hB,oBAAoBz1G,EAAE0e,EAAE9f,EAAE,EAC7b+F,EAAQ+wG,mBAAmB,SAAS11G,EAAE0e,GAAG,OAAOwqB,EAAEwqD,QAAQgiB,mBAAmB11G,EAAE0e,EAAE,EAAE/Z,EAAQgxG,gBAAgB,SAAS31G,EAAE0e,GAAG,OAAOwqB,EAAEwqD,QAAQiiB,gBAAgB31G,EAAE0e,EAAE,EAAE/Z,EAAQixG,QAAQ,SAAS51G,EAAE0e,GAAG,OAAOwqB,EAAEwqD,QAAQkiB,QAAQ51G,EAAE0e,EAAE,EAAE/Z,EAAQkxG,WAAW,SAAS71G,EAAE0e,EAAE9f,GAAG,OAAOsqC,EAAEwqD,QAAQmiB,WAAW71G,EAAE0e,EAAE9f,EAAE,EAAE+F,EAAQmxG,OAAO,SAAS91G,GAAG,OAAOkpC,EAAEwqD,QAAQoiB,OAAO91G,EAAE,EAAE2E,EAAQ0nD,SAAS,SAASrsD,GAAG,OAAOkpC,EAAEwqD,QAAQrnC,SAASrsD,EAAE,EAAE2E,EAAQwxG,qBAAqB,SAASn2G,EAAE0e,EAAE9f,GAAG,OAAOsqC,EAAEwqD,QAAQyiB,qBAAqBn2G,EAAE0e,EAAE9f,EAAE,EAC/e+F,EAAQsxG,cAAc,WAAW,OAAO/sE,EAAEwqD,QAAQuiB,eAAe,EAAEtxG,EAAQujB,QAAQ,2CCtBjFljB,EAAOL,QAAU,EAAjBK,uCCAAA,EAAOL,QAAU,EAAjBK,uCCDFL,EAAQb,YAAa,EACrBa,EAAAA,QAMA,SAA0B+F,GACxB,IAAI6lH,GAAU,EAAIC,EAAY5sH,SAAS8G,GACvC,MAAO,CACL+lH,QAAS,SAAiB5iF,GACxB,OAAO,IAAI3sC,SAAQ,SAAUiC,EAASutH,GACpCvtH,EAAQotH,EAAQE,QAAQ5iF,GAC1B,GACF,EACA8iF,QAAS,SAAiB9iF,EAAKkrC,GAC7B,OAAO,IAAI73E,SAAQ,SAAUiC,EAASutH,GACpCvtH,EAAQotH,EAAQI,QAAQ9iF,EAAKkrC,GAC/B,GACF,EACA63C,WAAY,SAAoB/iF,GAC9B,OAAO,IAAI3sC,SAAQ,SAAUiC,EAASutH,GACpCvtH,EAAQotH,EAAQK,WAAW/iF,GAC7B,GACF,EAEJ,EAvBA,IAEgC8lB,EAF5B68D,GAE4B78D,EAFStE,EAAQ,MAEIsE,EAAI7vD,WAAa6vD,EAAM,CAAE/vD,QAAS+vD,kCCFvF,SAAStV,EAAQsV,GAAwT,OAAtOtV,EAArD,oBAAXt8C,QAAoD,kBAApBA,OAAOC,SAAmC,SAAiB2xD,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX5xD,QAAyB4xD,EAAIl0D,cAAgBsC,QAAU4xD,IAAQ5xD,OAAO7C,UAAY,gBAAkBy0D,CAAK,EAAYtV,EAAQsV,EAAM,CAE9V,SAASk9D,IAAQ,CALjBlsH,EAAQb,YAAa,EACrBa,EAAAA,QA+BA,SAAoB+F,GAClB,IAAIomH,EAAc,GAAGnuH,OAAO+H,EAAM,WAClC,OArBF,SAAoBomH,GAClB,GAAoE,YAA/C,qBAATtsH,KAAuB,YAAc65C,EAAQ75C,UAAyBssH,KAAetsH,MAC/F,OAAO,EAGT,IACE,IAAI+rH,EAAU/rH,KAAKssH,GACfC,EAAU,iBAAiBpuH,OAAOmuH,EAAa,SACnDP,EAAQI,QAAQI,EAAS,QACzBR,EAAQE,QAAQM,GAChBR,EAAQK,WAAWG,EACrB,CAAE,MAAOnyH,GAEP,OAAO,CACT,CAEA,OAAO,CACT,CAIMoyH,CAAWF,GAAqBtsH,KAAKssH,GAKhCG,CAEX,EAlCA,IAAIA,EAAc,CAChBR,QAASI,EACTF,QAASE,EACTD,WAAYC,yCCLkBl9D,GAEjB,IAFiBA,EAFetE,EAAQ,OAEFsE,EAAI7vD,WAAa6vD,EAAM,CAAE/vD,QAAS+vD,IAElD/vD,SAAS,+CCFd+vD,EAJhChvD,EAAQ,OAAU,EAMlB,IAAIusH,GAAW,IAFiBv9D,EAFetE,EAAQ,OAEFsE,EAAI7vD,WAAa6vD,EAAM,CAAE/vD,QAAS+vD,IAElD/vD,SAAS,WAE9Ce,EAAQ,EAAUusH,kCCFL,SAAS7iH,EAAErO,EAAE0e,GAAG,IAAIjR,EAAEzN,EAAED,OAAOC,EAAEkC,KAAKwc,GAAG1e,EAAE,KAAK,EAAEyN,GAAG,CAAC,IAAII,EAAEJ,EAAE,IAAI,EAAE7O,EAAEoB,EAAE6N,GAAG,KAAG,EAAE4Q,EAAE7f,EAAE8f,IAA0B,MAAM1e,EAA7BA,EAAE6N,GAAG6Q,EAAE1e,EAAEyN,GAAG7O,EAAE6O,EAAEI,CAAc,CAAC,CAAC,SAAS1M,EAAEnB,GAAG,OAAO,IAAIA,EAAED,OAAO,KAAKC,EAAE,EAAE,CAAC,SAASgO,EAAEhO,GAAG,GAAG,IAAIA,EAAED,OAAO,OAAO,KAAK,IAAI2e,EAAE1e,EAAE,GAAGyN,EAAEzN,EAAEiC,MAAM,GAAGwL,IAAIiR,EAAE,CAAC1e,EAAE,GAAGyN,EAAEzN,EAAE,IAAI,IAAI6N,EAAE,EAAEjP,EAAEoB,EAAED,OAAOsf,EAAEzgB,IAAI,EAAEiP,EAAEwR,GAAG,CAAC,IAAI3R,EAAE,GAAGG,EAAE,GAAG,EAAEqR,EAAElf,EAAE0N,GAAGlN,EAAEkN,EAAE,EAAEoR,EAAE9e,EAAEQ,GAAG,GAAG,EAAEie,EAAES,EAAEzR,GAAGjN,EAAE5B,GAAG,EAAE6f,EAAEK,EAAEI,IAAIlf,EAAE6N,GAAGiR,EAAE9e,EAAEQ,GAAGiN,EAAEI,EAAErN,IAAIR,EAAE6N,GAAGqR,EAAElf,EAAE0N,GAAGD,EAAEI,EAAEH,OAAQ,MAAGlN,EAAE5B,GAAG,EAAE6f,EAAEK,EAAErR,IAA0B,MAAMzN,EAA7BA,EAAE6N,GAAGiR,EAAE9e,EAAEQ,GAAGiN,EAAEI,EAAErN,CAAc,EAAC,CAAC,OAAOke,CAAC,CAC3c,SAASD,EAAEze,EAAE0e,GAAG,IAAIjR,EAAEzN,EAAEmxH,UAAUzyG,EAAEyyG,UAAU,OAAO,IAAI1jH,EAAEA,EAAEzN,EAAEsO,GAAGoQ,EAAEpQ,EAAE,CAAC,GAAG,kBAAkB8iH,aAAa,oBAAoBA,YAAYn/F,IAAI,CAAC,IAAI7uB,EAAEguH,YAAYzsH,EAAQ0vF,aAAa,WAAW,OAAOjxF,EAAE6uB,KAAK,CAAC,KAAK,CAAC,IAAI5uB,EAAE2uB,KAAK0W,EAAErlC,EAAE4uB,MAAMttB,EAAQ0vF,aAAa,WAAW,OAAOhxF,EAAE4uB,MAAMyW,CAAC,CAAC,CAAC,IAAIzpC,EAAE,GAAGN,EAAE,GAAGwT,EAAE,EAAEnP,EAAE,KAAKwb,EAAE,EAAE+G,GAAE,EAAGnG,GAAE,EAAG4mB,GAAE,EAAGxmB,EAAE,oBAAoB5F,WAAWA,WAAW,KAAKoF,EAAE,oBAAoBopF,aAAaA,aAAa,KAAK/iF,EAAE,qBAAqBgsG,aAAaA,aAAa,KACnT,SAAS7qF,EAAExmC,GAAG,IAAI,IAAI0e,EAAEvd,EAAExC,GAAG,OAAO+f,GAAG,CAAC,GAAG,OAAOA,EAAE20C,SAASrlD,EAAErP,OAAQ,MAAG+f,EAAE67B,WAAWv6C,GAAgD,MAA9CgO,EAAErP,GAAG+f,EAAEyyG,UAAUzyG,EAAE4yG,eAAejjH,EAAEpP,EAAEyf,EAAa,CAACA,EAAEvd,EAAExC,EAAE,CAAC,CAAC,SAAS8pC,EAAEzoC,GAAa,GAAVgmC,GAAE,EAAGQ,EAAExmC,IAAOof,EAAE,GAAG,OAAOje,EAAElC,GAAGmgB,GAAE,EAAG0mB,EAAEmD,OAAO,CAAC,IAAIvqB,EAAEvd,EAAExC,GAAG,OAAO+f,GAAGsqB,EAAEP,EAAE/pB,EAAE67B,UAAUv6C,EAAE,CAAC,CACra,SAASipC,EAAEjpC,EAAE0e,GAAGU,GAAE,EAAG4mB,IAAIA,GAAE,EAAGhnB,EAAEknB,GAAGA,GAAG,GAAG3gB,GAAE,EAAG,IAAI9X,EAAE+Q,EAAE,IAAS,IAALgoB,EAAE9nB,GAAO1b,EAAE7B,EAAElC,GAAG,OAAO+D,MAAMA,EAAEsuH,eAAe5yG,IAAI1e,IAAIuf,MAAM,CAAC,IAAI1R,EAAE7K,EAAEqwD,SAAS,GAAG,oBAAoBxlD,EAAE,CAAC7K,EAAEqwD,SAAS,KAAK70C,EAAExb,EAAEuuH,cAAc,IAAI3yH,EAAEiP,EAAE7K,EAAEsuH,gBAAgB5yG,GAAGA,EAAE/Z,EAAQ0vF,eAAe,oBAAoBz1F,EAAEoE,EAAEqwD,SAASz0D,EAAEoE,IAAI7B,EAAElC,IAAI+O,EAAE/O,GAAGunC,EAAE9nB,EAAE,MAAM1Q,EAAE/O,GAAG+D,EAAE7B,EAAElC,EAAE,CAAC,GAAG,OAAO+D,EAAE,IAAIqc,GAAE,MAAO,CAAC,IAAI3R,EAAEvM,EAAExC,GAAG,OAAO+O,GAAGs7B,EAAEP,EAAE/6B,EAAE6sC,UAAU77B,GAAGW,GAAE,CAAE,CAAC,OAAOA,CAAC,CAAC,QAAQrc,EAAE,KAAKwb,EAAE/Q,EAAE8X,GAAE,CAAE,CAAC,CAD1a,qBAAqBtgB,gBAAW,IAASA,UAAUusH,iBAAY,IAASvsH,UAAUusH,WAAWC,gBAAgBxsH,UAAUusH,WAAWC,eAAej/G,KAAKvN,UAAUusH,YAC2Q,IACzPvyG,EAD6PupB,GAAE,EAAGD,EAAE,KAAKrC,GAAG,EAAEnnB,EAAE,EAAEoqB,GAAG,EACvc,SAAS5pB,IAAI,QAAO5a,EAAQ0vF,eAAelrD,EAAEpqB,EAAO,CAAC,SAASgnB,IAAI,GAAG,OAAOwC,EAAE,CAAC,IAAIvoC,EAAE2E,EAAQ0vF,eAAelrD,EAAEnpC,EAAE,IAAI0e,GAAE,EAAG,IAAIA,EAAE6pB,GAAE,EAAGvoC,EAAE,CAAC,QAAQ0e,EAAEO,KAAKupB,GAAE,EAAGD,EAAE,KAAK,CAAC,MAAMC,GAAE,CAAE,CAAO,GAAG,oBAAoBnjB,EAAEpG,EAAE,WAAWoG,EAAE0gB,EAAE,OAAO,GAAG,qBAAqB2rF,eAAe,CAAC,IAAIpyG,EAAE,IAAIoyG,eAAexoF,EAAE5pB,EAAEqyG,MAAMryG,EAAEsyG,MAAM1kH,UAAU64B,EAAE9mB,EAAE,WAAWiqB,EAAE/7B,YAAY,KAAK,CAAC,MAAM8R,EAAE,WAAWO,EAAEumB,EAAE,EAAE,EAAE,SAASD,EAAE9lC,GAAGuoC,EAAEvoC,EAAEwoC,IAAIA,GAAE,EAAGvpB,IAAI,CAAC,SAAS+pB,EAAEhpC,EAAE0e,GAAGwnB,EAAE1mB,GAAE,WAAWxf,EAAE2E,EAAQ0vF,eAAe,GAAE31E,EAAE,CAC5d/Z,EAAQqwF,sBAAsB,EAAErwF,EAAQ6vF,2BAA2B,EAAE7vF,EAAQmwF,qBAAqB,EAAEnwF,EAAQiwF,wBAAwB,EAAEjwF,EAAQktH,mBAAmB,KAAKltH,EAAQ+vF,8BAA8B,EAAE/vF,EAAQqvF,wBAAwB,SAASh0F,GAAGA,EAAEqzD,SAAS,IAAI,EAAE1uD,EAAQmtH,2BAA2B,WAAW1yG,GAAGmG,IAAInG,GAAE,EAAG0mB,EAAEmD,GAAG,EAC1UtkC,EAAQotH,wBAAwB,SAAS/xH,GAAG,EAAEA,GAAG,IAAIA,EAAEwzB,QAAQ/wB,MAAM,mHAAmHsc,EAAE,EAAE/e,EAAEuI,KAAKK,MAAM,IAAI5I,GAAG,CAAC,EAAE2E,EAAQ4vF,iCAAiC,WAAW,OAAO/1E,CAAC,EAAE7Z,EAAQqtH,8BAA8B,WAAW,OAAO7wH,EAAElC,EAAE,EAAE0F,EAAQstH,cAAc,SAASjyH,GAAG,OAAOwe,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAIE,EAAE,EAAE,MAAM,QAAQA,EAAEF,EAAE,IAAI/Q,EAAE+Q,EAAEA,EAAEE,EAAE,IAAI,OAAO1e,GAAG,CAAC,QAAQwe,EAAE/Q,CAAC,CAAC,EAAE9I,EAAQutH,wBAAwB,WAAW,EAC9fvtH,EAAQyvF,sBAAsB,WAAW,EAAEzvF,EAAQwtH,yBAAyB,SAASnyH,EAAE0e,GAAG,OAAO1e,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQA,EAAE,EAAE,IAAIyN,EAAE+Q,EAAEA,EAAExe,EAAE,IAAI,OAAO0e,GAAG,CAAC,QAAQF,EAAE/Q,CAAC,CAAC,EAChM9I,EAAQmvF,0BAA0B,SAAS9zF,EAAE0e,EAAEjR,GAAG,IAAII,EAAElJ,EAAQ0vF,eAA8F,OAA/E,kBAAkB5mF,GAAG,OAAOA,EAAaA,EAAE,kBAAZA,EAAEA,EAAE2kH,QAA6B,EAAE3kH,EAAEI,EAAEJ,EAAEI,EAAGJ,EAAEI,EAAS7N,GAAG,KAAK,EAAE,IAAIpB,GAAG,EAAE,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,KAAK,EAAEA,EAAE,WAAW,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,QAAQA,EAAE,IAAmN,OAAzMoB,EAAE,CAACsO,GAAG6D,IAAIkhD,SAAS30C,EAAE6yG,cAAcvxH,EAAEu6C,UAAU9sC,EAAE6jH,eAAvD1yH,EAAE6O,EAAE7O,EAAoEuyH,WAAW,GAAG1jH,EAAEI,GAAG7N,EAAEmxH,UAAU1jH,EAAEY,EAAE1P,EAAEqB,GAAG,OAAOmB,EAAElC,IAAIe,IAAImB,EAAExC,KAAKqnC,GAAGhnB,EAAEknB,GAAGA,GAAG,GAAGF,GAAE,EAAGgD,EAAEP,EAAEh7B,EAAEI,MAAM7N,EAAEmxH,UAAUvyH,EAAEyP,EAAEpP,EAAEe,GAAGof,GAAGmG,IAAInG,GAAE,EAAG0mB,EAAEmD,KAAYjpC,CAAC,EACne2E,EAAQuvF,qBAAqB30E,EAAE5a,EAAQ0tH,sBAAsB,SAASryH,GAAG,IAAI0e,EAAEF,EAAE,OAAO,WAAW,IAAI/Q,EAAE+Q,EAAEA,EAAEE,EAAE,IAAI,OAAO1e,EAAEC,MAAMT,KAAKM,UAAU,CAAC,QAAQ0e,EAAE/Q,CAAC,CAAC,CAAC,oCCf7JzI,EAAOL,QAAU,EAAjBK,uCCMW,IAAIpG,EAAEywD,EAAQ,KAAwE,IAAIrhD,EAAE,oBAAoBnP,OAAOwlB,GAAGxlB,OAAOwlB,GAA1G,SAAWrkB,EAAE0e,GAAG,OAAO1e,IAAI0e,IAAI,IAAI1e,GAAG,EAAEA,IAAI,EAAE0e,IAAI1e,IAAIA,GAAG0e,IAAIA,CAAC,EAAiDtb,EAAExE,EAAEytD,SAAS3+C,EAAE9O,EAAE0tD,UAAU9rD,EAAE5B,EAAE+2G,gBAAgBtyG,EAAEzE,EAAEm3G,cACtM,SAAS92G,EAAEe,GAAG,IAAI0e,EAAE1e,EAAE4zG,YAAY5zG,EAAEA,EAAEuB,MAAM,IAAI,IAAIsM,EAAE6Q,IAAI,OAAO1Q,EAAEhO,EAAE6N,EAAE,CAAC,MAAMQ,GAAG,OAAM,CAAE,CAAC,CAA4B,IAAI8D,EAAE,qBAAqB7N,QAAQ,qBAAqBA,OAAOqB,UAAU,qBAAqBrB,OAAOqB,SAASC,cAAzI,SAAW5F,EAAE0e,GAAG,OAAOA,GAAG,EAD+F,SAAW1e,EAAE0e,GAAG,IAAI7Q,EAAE6Q,IAAIrQ,EAAEjL,EAAE,CAACkvH,KAAK,CAAC/wH,MAAMsM,EAAE+lG,YAAYl1F,KAAKjR,EAAEY,EAAE,GAAGikH,KAAK7zG,EAAEpQ,EAAE,GAAwJ,OAArJ7N,GAAE,WAAWiN,EAAElM,MAAMsM,EAAEJ,EAAEmmG,YAAYl1F,EAAEzf,EAAEwO,IAAIgR,EAAE,CAAC6zG,KAAK7kH,GAAG,GAAE,CAACzN,EAAE6N,EAAE6Q,IAAIhR,GAAE,WAA6B,OAAlBzO,EAAEwO,IAAIgR,EAAE,CAAC6zG,KAAK7kH,IAAWzN,GAAE,WAAWf,EAAEwO,IAAIgR,EAAE,CAAC6zG,KAAK7kH,GAAG,GAAE,GAAE,CAACzN,IAAIqD,EAAEwK,GAAUA,CAAC,EAC5MlJ,EAAQwxG,0BAAqB,IAASv3G,EAAEu3G,qBAAqBv3G,EAAEu3G,qBAAqBhkG,oCCD7T,IAAIhR,EAAEkuD,EAAQ,KAAS7uD,EAAE6uD,EAAQ,KAA+F,IAAI3mB,EAAE,oBAAoB7pC,OAAOwlB,GAAGxlB,OAAOwlB,GAA1G,SAAWrkB,EAAE0e,GAAG,OAAO1e,IAAI0e,IAAI,IAAI1e,GAAG,EAAEA,IAAI,EAAE0e,IAAI1e,IAAIA,GAAG0e,IAAIA,CAAC,EAAiDzf,EAAEuB,EAAE21G,qBAAqBx3G,EAAEwC,EAAE20G,OAAO3jG,EAAEhR,EAAEmrD,UAAUtpD,EAAE7B,EAAEy0G,QAAQv2F,EAAEle,EAAE40G,cAC/PpxG,EAAQ4tH,iCAAiC,SAASvyH,EAAE0e,EAAE9f,EAAEwE,EAAEqb,GAAG,IAAIhR,EAAE9O,EAAE,MAAM,GAAG,OAAO8O,EAAEimF,QAAQ,CAAC,IAAIrlF,EAAE,CAACmkH,UAAS,EAAGjxH,MAAM,MAAMkM,EAAEimF,QAAQrlF,CAAC,MAAMA,EAAEZ,EAAEimF,QAAQjmF,EAAEzK,GAAE,WAAW,SAAShD,EAAEA,GAAG,IAAIyN,EAAE,CAAiB,GAAhBA,GAAE,EAAGI,EAAE7N,EAAEA,EAAEoD,EAAEpD,QAAM,IAASye,GAAGpQ,EAAEmkH,SAAS,CAAC,IAAI9zG,EAAErQ,EAAE9M,MAAM,GAAGkd,EAAEC,EAAE1e,GAAG,OAAOgO,EAAE0Q,CAAC,CAAC,OAAO1Q,EAAEhO,CAAC,CAAK,GAAJ0e,EAAE1Q,EAAK06B,EAAE76B,EAAE7N,GAAG,OAAO0e,EAAE,IAAI9f,EAAEwE,EAAEpD,GAAG,YAAG,IAASye,GAAGA,EAAEC,EAAE9f,GAAU8f,GAAE7Q,EAAE7N,EAASgO,EAAEpP,EAAC,CAAC,IAASiP,EAAEG,EAAPP,GAAE,EAAOC,OAAE,IAAS9O,EAAE,KAAKA,EAAE,MAAM,CAAC,WAAW,OAAOoB,EAAE0e,IAAI,EAAE,OAAOhR,OAAE,EAAO,WAAW,OAAO1N,EAAE0N,IAAI,EAAE,GAAE,CAACgR,EAAE9f,EAAEwE,EAAEqb,IAAI,IAAI5Q,EAAE5O,EAAEe,EAAEyN,EAAE,GAAGA,EAAE,IACnc,OAAhD0E,GAAE,WAAW9D,EAAEmkH,UAAS,EAAGnkH,EAAE9M,MAAMsM,CAAC,GAAE,CAACA,IAAIwR,EAAExR,GAAUA,CAAC,oCCRtD7I,EAAOL,QAAU,EAAjBK,uCCAAA,EAAOL,QAAU,EAAjBK,OCFEytH,yBAA2B,CAAC,EAGhC,SAASC,oBAAoBC,GAE5B,IAAIC,EAAeH,yBAAyBE,GAC5C,QAAqBv8D,IAAjBw8D,EACH,OAAOA,EAAajuH,QAGrB,IAAIK,EAASytH,yBAAyBE,GAAY,CACjDrkH,GAAIqkH,EACJ7/F,QAAQ,EACRnuB,QAAS,CAAC,GAUX,OANAkuH,oBAAoBF,GAAUvzH,KAAK4F,EAAOL,QAASK,EAAQA,EAAOL,QAAS+tH,qBAG3E1tH,EAAO8tB,QAAS,EAGT9tB,EAAOL,OACf,CAGA+tH,oBAAoBhlH,EAAImlH,oBC3BxBH,oBAAoBlyH,EAAI,SAASwE,GAChC,IAAI05E,EAAS15E,GAAUA,EAAOlB,WAC7B,WAAa,OAAOkB,EAAgB,OAAG,EACvC,WAAa,OAAOA,CAAQ,EAE7B,OADA0tH,oBAAoB7kH,EAAE6wE,EAAQ,CAAE1+E,EAAG0+E,IAC5BA,CACR,aCPA,IACIo0C,EADAC,EAAWl0H,OAAO8xD,eAAiB,SAASgD,GAAO,OAAO90D,OAAO8xD,eAAegD,EAAM,EAAI,SAASA,GAAO,OAAOA,EAAI50D,SAAW,EAQpI2zH,oBAAoB/zH,EAAI,SAAS4C,EAAOi2B,GAEvC,GADU,EAAPA,IAAUj2B,EAAQ/B,KAAK+B,IAChB,EAAPi2B,EAAU,OAAOj2B,EACpB,GAAoB,kBAAVA,GAAsBA,EAAO,CACtC,GAAW,EAAPi2B,GAAaj2B,EAAMuC,WAAY,OAAOvC,EAC1C,GAAW,GAAPi2B,GAAoC,oBAAfj2B,EAAMC,KAAqB,OAAOD,CAC5D,CACA,IAAIyxH,EAAKn0H,OAAOa,OAAO,MACvBgzH,oBAAoBzzH,EAAE+zH,GACtB,IAAIC,EAAM,CAAC,EACXH,EAAiBA,GAAkB,CAAC,KAAMC,EAAS,CAAC,GAAIA,EAAS,IAAKA,EAASA,IAC/E,IAAI,IAAIr/B,EAAiB,EAAPl8D,GAAYj2B,EAAyB,iBAAXmyF,KAAyBo/B,EAAe3yH,QAAQuzF,GAAUA,EAAUq/B,EAASr/B,GACxH70F,OAAO6xD,oBAAoBgjC,GAAS/gE,SAAQ,SAASkb,GAAOolF,EAAIplF,GAAO,WAAa,OAAOtsC,EAAMssC,EAAM,CAAG,IAI3G,OAFAolF,EAAa,QAAI,WAAa,OAAO1xH,CAAO,EAC5CmxH,oBAAoB7kH,EAAEmlH,EAAIC,GACnBD,CACR,KCxBAN,oBAAoB7kH,EAAI,SAASlJ,EAASuuH,GACzC,IAAI,IAAIrlF,KAAOqlF,EACXR,oBAAoB9xH,EAAEsyH,EAAYrlF,KAAS6kF,oBAAoB9xH,EAAE+D,EAASkpC,IAC5EhvC,OAAOgC,eAAe8D,EAASkpC,EAAK,CAAEzrC,YAAY,EAAMC,IAAK6wH,EAAWrlF,IAG3E,ECPA6kF,oBAAoBrkH,EAAI,CAAC,EAGzBqkH,oBAAoB9zH,EAAI,SAASu0H,GAChC,OAAOjyH,QAAQkyH,IAAIv0H,OAAOqyD,KAAKwhE,oBAAoBrkH,GAAGi6G,QAAO,SAAS+K,EAAUxlF,GAE/E,OADA6kF,oBAAoBrkH,EAAEw/B,GAAKslF,EAASE,GAC7BA,CACR,GAAG,IACJ,ECPAX,oBAAoBvgH,EAAI,SAASghH,GAEhC,MAAO,aAAeA,EAAf,oBACR,ECHAT,oBAAoBY,SAAW,SAASH,GAGxC,ECJAT,oBAAoBj0G,EAAI,WACvB,GAA0B,kBAAfpa,WAAyB,OAAOA,WAC3C,IACC,OAAO7E,MAAQ,IAAIg5D,SAAS,cAAb,EAChB,CAAE,MAAO55D,GACR,GAAsB,kBAAX0F,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBouH,oBAAoB9xH,EAAI,SAAS+yD,EAAKj8B,GAAQ,OAAO74B,OAAOK,UAAUC,eAAeC,KAAKu0D,EAAKj8B,EAAO,aCAtG,IAAI67F,EAAa,CAAC,EACdC,EAAoB,YAExBd,oBAAoBtvH,EAAI,SAAS+9F,EAAK7/F,EAAMusC,EAAKslF,GAChD,GAAGI,EAAWpyB,GAAQoyB,EAAWpyB,GAAKj/F,KAAKZ,OAA3C,CACA,IAAImyH,EAAQC,EACZ,QAAWt9D,IAARvoB,EAEF,IADA,IAAI1lB,EAAUxiB,SAAS+W,qBAAqB,UACpC7c,EAAI,EAAGA,EAAIsoB,EAAQpoB,OAAQF,IAAK,CACvC,IAAIU,EAAI4nB,EAAQtoB,GAChB,GAAGU,EAAEozH,aAAa,QAAUxyB,GAAO5gG,EAAEozH,aAAa,iBAAmBH,EAAoB3lF,EAAK,CAAE4lF,EAASlzH,EAAG,KAAO,CACpH,CAEGkzH,IACHC,GAAa,GACbD,EAAS9tH,SAASC,cAAc,WAEzBguH,QAAU,QACjBH,EAAOI,QAAU,IACbnB,oBAAoBoB,IACvBL,EAAOh3G,aAAa,QAASi2G,oBAAoBoB,IAElDL,EAAOh3G,aAAa,eAAgB+2G,EAAoB3lF,GACxD4lF,EAAO9sH,IAAMw6F,GAEdoyB,EAAWpyB,GAAO,CAAC7/F,GACnB,IAAIyyH,EAAmB,SAASC,EAAM1yB,GAErCmyB,EAAOQ,QAAUR,EAAOS,OAAS,KACjC9rB,aAAayrB,GACb,IAAIM,EAAUZ,EAAWpyB,GAIzB,UAHOoyB,EAAWpyB,GAClBsyB,EAAO7/F,YAAc6/F,EAAO7/F,WAAWC,YAAY4/F,GACnDU,GAAWA,EAAQxhG,SAAQ,SAASmS,GAAM,OAAOA,EAAGw8D,EAAQ,IACzD0yB,EAAM,OAAOA,EAAK1yB,EACtB,EACIuyB,EAAUj6G,WAAWm6G,EAAiBvhH,KAAK,UAAM4jD,EAAW,CAAE1rD,KAAM,UAAWY,OAAQmoH,IAAW,MACtGA,EAAOQ,QAAUF,EAAiBvhH,KAAK,KAAMihH,EAAOQ,SACpDR,EAAOS,OAASH,EAAiBvhH,KAAK,KAAMihH,EAAOS,QACnDR,GAAc/tH,SAASolD,KAAKh3C,YAAY0/G,EAnCkB,CAoC3D,KCvCAf,oBAAoBzzH,EAAI,SAAS0F,GACX,qBAAX5C,QAA0BA,OAAOwjH,aAC1C1mH,OAAOgC,eAAe8D,EAAS5C,OAAOwjH,YAAa,CAAEhkH,MAAO,WAE7D1C,OAAOgC,eAAe8D,EAAS,aAAc,CAAEpD,OAAO,GACvD,ECNAmxH,oBAAoB0B,IAAM,SAASpvH,GAGlC,OAFAA,EAAO+e,MAAQ,GACV/e,EAAO0xC,WAAU1xC,EAAO0xC,SAAW,IACjC1xC,CACR,ECJA0tH,oBAAoBrvH,EAAI,eCKxB,IAAIgxH,EAAkB,CACrB,IAAK,GAGN3B,oBAAoBrkH,EAAE60B,EAAI,SAASiwF,EAASE,GAE1C,IAAIiB,EAAqB5B,oBAAoB9xH,EAAEyzH,EAAiBlB,GAAWkB,EAAgBlB,QAAW/8D,EACtG,GAA0B,IAAvBk+D,EAGF,GAAGA,EACFjB,EAASnxH,KAAKoyH,EAAmB,QAC3B,CAGL,IAAIC,EAAU,IAAIrzH,SAAQ,SAASiC,EAASutH,GAAU4D,EAAqBD,EAAgBlB,GAAW,CAAChwH,EAASutH,EAAS,IACzH2C,EAASnxH,KAAKoyH,EAAmB,GAAKC,GAGtC,IAAIpzB,EAAMuxB,oBAAoBrvH,EAAIqvH,oBAAoBvgH,EAAEghH,GAEpD1wH,EAAQ,IAAIqC,MAgBhB4tH,oBAAoBtvH,EAAE+9F,GAfH,SAASG,GAC3B,GAAGoxB,oBAAoB9xH,EAAEyzH,EAAiBlB,KAEf,KAD1BmB,EAAqBD,EAAgBlB,MACRkB,EAAgBlB,QAAW/8D,GACrDk+D,GAAoB,CACtB,IAAIE,EAAYlzB,IAAyB,SAAfA,EAAM52F,KAAkB,UAAY42F,EAAM52F,MAChE+pH,EAAUnzB,GAASA,EAAMh2F,QAAUg2F,EAAMh2F,OAAO3E,IACpDlE,EAAM+zG,QAAU,iBAAmB2c,EAAU,cAAgBqB,EAAY,KAAOC,EAAU,IAC1FhyH,EAAMsS,KAAO,iBACbtS,EAAMiI,KAAO8pH,EACb/xH,EAAMiyH,QAAUD,EAChBH,EAAmB,GAAG7xH,EACvB,CAEF,GACyC,SAAW0wH,EAASA,EAE/D,CAEH,EAaA,IAAIwB,EAAuB,SAASC,EAA4BxnH,GAC/D,IAKIulH,EAAUQ,EALV0B,EAAWznH,EAAK,GAChB0nH,EAAc1nH,EAAK,GACnB2nH,EAAU3nH,EAAK,GAGIvN,EAAI,EAC3B,GAAGg1H,EAAS3hE,MAAK,SAAS5kD,GAAM,OAA+B,IAAxB+lH,EAAgB/lH,EAAW,IAAI,CACrE,IAAIqkH,KAAYmC,EACZpC,oBAAoB9xH,EAAEk0H,EAAanC,KACrCD,oBAAoBhlH,EAAEilH,GAAYmC,EAAYnC,IAGhD,GAAGoC,EAAsBA,EAAQrC,oBAClC,CAEA,IADGkC,GAA4BA,EAA2BxnH,GACrDvN,EAAIg1H,EAAS90H,OAAQF,IACzBszH,EAAU0B,EAASh1H,GAChB6yH,oBAAoB9xH,EAAEyzH,EAAiBlB,IAAYkB,EAAgBlB,IACrEkB,EAAgBlB,GAAS,KAE1BkB,EAAgBlB,GAAW,CAG7B,EAEI6B,EAAqBxwH,KAA2B,qBAAIA,KAA2B,sBAAK,GACxFwwH,EAAmBriG,QAAQgiG,EAAqBniH,KAAK,KAAM,IAC3DwiH,EAAmB9yH,KAAOyyH,EAAqBniH,KAAK,KAAMwiH,EAAmB9yH,KAAKsQ,KAAKwiH,kJCvFxE,SAASC,EAAgBtmG,GACtC,GAAI3vB,MAAMs0D,QAAQ3kC,GAAM,OAAOA,CACjC,CCFe,SAASumG,EAAkBvmG,EAAK+nC,IAClC,MAAPA,GAAeA,EAAM/nC,EAAI5uB,UAAQ22D,EAAM/nC,EAAI5uB,QAC/C,IAAK,IAAIF,EAAI,EAAG2rE,EAAO,IAAIxsE,MAAM03D,GAAM72D,EAAI62D,EAAK72D,IAAK2rE,EAAK3rE,GAAK8uB,EAAI9uB,GACnE,OAAO2rE,CACT,CCHe,SAAS2pD,EAA4Bv0H,EAAGw0H,GACrD,GAAKx0H,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAO,EAAiBA,EAAGw0H,GACtD,IAAI50H,EAAI3B,OAAOK,UAAUiN,SAAS/M,KAAKwB,GAAGkC,MAAM,GAAI,GAEpD,MADU,WAANtC,GAAkBI,EAAEnB,cAAae,EAAII,EAAEnB,YAAYsV,MAC7C,QAANvU,GAAqB,QAANA,EAAoBxB,MAAM83D,KAAKl2D,GACxC,cAANJ,GAAqB,2CAA2C2H,KAAK3H,GAAW,EAAiBI,EAAGw0H,QAAxG,CALc,CAMhB,CCRe,SAASC,IACtB,MAAM,IAAI/1H,UAAU,4IACtB,CCEe,SAAS,EAAeqvB,EAAK9uB,GAC1C,OAAO,EAAe8uB,ICLT,SAA+BA,EAAK9uB,GACjD,IAAIo3D,EAAK,MAAQtoC,EAAM,KAAO,oBAAsB5sB,QAAU4sB,EAAI5sB,OAAOC,WAAa2sB,EAAI,cAC1F,GAAI,MAAQsoC,EAAI,CACd,IAAIq+D,EACF5O,EACA6O,EACAC,EACAC,EAAO,GACPC,GAAK,EACL1/D,GAAK,EACP,IACE,GAAIu/D,GAAMt+D,EAAKA,EAAG73D,KAAKuvB,IAAMvtB,KAAM,IAAMvB,EAAG,CAC1C,GAAIhB,OAAOo4D,KAAQA,EAAI,OACvBy+D,GAAK,CACP,MAAO,OAASA,GAAMJ,EAAKC,EAAGn2H,KAAK63D,IAAK31D,QAAUm0H,EAAKvzH,KAAKozH,EAAG/zH,OAAQk0H,EAAK11H,SAAWF,GAAI61H,GAAK,GAClG,CAAE,MAAOrvC,GACPrwB,GAAK,EAAI0wD,EAAKrgC,CAChB,CAAE,QACA,IACE,IAAKqvC,GAAM,MAAQz+D,EAAW,SAAMu+D,EAAKv+D,EAAW,SAAKp4D,OAAO22H,KAAQA,GAAK,MAC/E,CAAE,QACA,GAAIx/D,EAAI,MAAM0wD,CAChB,CACF,CACA,OAAO+O,CACT,CACF,CDrBgC,CAAqB9mG,EAAK9uB,IAAM,EAA2B8uB,EAAK9uB,IAAM,GACtG,CEuBA,ICtBY81H,EDuBG,sBE9BA,SAASt3E,EAAQsV,GAG9B,OAAOtV,EAAU,mBAAqBt8C,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2xD,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAO,mBAAqB5xD,QAAU4xD,EAAIl0D,cAAgBsC,QAAU4xD,IAAQ5xD,OAAO7C,UAAY,gBAAkBy0D,CAC1H,EAAGtV,EAAQsV,EACb,CCPe,SAAS,IAEtB,EAAsB,WACpB,OAAOhvD,CACT,EACA,IAAIA,EAAU,CAAC,EACbixH,EAAK/2H,OAAOK,UACZ22H,EAASD,EAAGz2H,eACZ0B,EAAiBhC,OAAOgC,gBAAkB,SAAU8yD,EAAK9lB,EAAKioF,GAC5DniE,EAAI9lB,GAAOioF,EAAKv0H,KAClB,EACAw0H,EAAU,mBAAqBh0H,OAASA,OAAS,CAAC,EAClDi0H,EAAiBD,EAAQ/zH,UAAY,aACrCi0H,EAAsBF,EAAQ7yH,eAAiB,kBAC/CgzH,EAAoBH,EAAQxQ,aAAe,gBAC7C,SAAS4Q,EAAOxiE,EAAK9lB,EAAKtsC,GACxB,OAAO1C,OAAOgC,eAAe8yD,EAAK9lB,EAAK,CACrCtsC,MAAOA,EACPa,YAAY,EACZ8oF,cAAc,EACd27B,UAAU,IACRlzD,EAAI9lB,EACV,CACA,IACEsoF,EAAO,CAAC,EAAG,GACb,CAAE,MAAO9vC,GACP8vC,EAAS,SAAgBxiE,EAAK9lB,EAAKtsC,GACjC,OAAOoyD,EAAI9lB,GAAOtsC,CACpB,CACF,CACA,SAAS60H,EAAKC,EAASC,EAAS9xH,EAAM+xH,GACpC,IAAIC,EAAiBF,GAAWA,EAAQp3H,qBAAqBu3H,EAAYH,EAAUG,EACjFC,EAAY73H,OAAOa,OAAO82H,EAAet3H,WACzCgxC,EAAU,IAAIymF,EAAQJ,GAAe,IACvC,OAAO11H,EAAe61H,EAAW,UAAW,CAC1Cn1H,MAAOq1H,EAAiBP,EAAS7xH,EAAM0rC,KACrCwmF,CACN,CACA,SAASG,EAAS/xF,EAAI6uB,EAAKsE,GACzB,IACE,MAAO,CACLvtD,KAAM,SACNutD,IAAKnzB,EAAG1lC,KAAKu0D,EAAKsE,GAEtB,CAAE,MAAOouB,GACP,MAAO,CACL37E,KAAM,QACNutD,IAAKouB,EAET,CACF,CACA1hF,EAAQyxH,KAAOA,EACf,IAAIU,EAAmB,CAAC,EACxB,SAASL,IAAa,CACtB,SAASM,IAAqB,CAC9B,SAASC,IAA8B,CACvC,IAAIC,EAAoB,CAAC,EACzBd,EAAOc,EAAmBjB,GAAgB,WACxC,OAAOx2H,IACT,IACA,IAAIuzH,EAAWl0H,OAAO8xD,eACpBumE,EAA0BnE,GAAYA,EAASA,EAASpjF,EAAO,MACjEunF,GAA2BA,IAA4BtB,GAAMC,EAAOz2H,KAAK83H,EAAyBlB,KAAoBiB,EAAoBC,GAC1I,IAAIC,EAAKH,EAA2B93H,UAAYu3H,EAAUv3H,UAAYL,OAAOa,OAAOu3H,GACpF,SAASG,EAAsBl4H,GAC7B,CAAC,OAAQ,QAAS,UAAUyzB,SAAQ,SAAU0kG,GAC5ClB,EAAOj3H,EAAWm4H,GAAQ,SAAUp/D,GAClC,OAAOz4D,KAAK83H,QAAQD,EAAQp/D,EAC9B,GACF,GACF,CACA,SAASs/D,EAAcb,EAAWc,GAChC,SAASC,EAAOJ,EAAQp/D,EAAK90D,EAASutH,GACpC,IAAIgH,EAASb,EAASH,EAAUW,GAASX,EAAWz+D,GACpD,GAAI,UAAYy/D,EAAOhtH,KAAM,CAC3B,IAAIqkE,EAAS2oD,EAAOz/D,IAClB12D,EAAQwtE,EAAOxtE,MACjB,OAAOA,GAAS,UAAY88C,EAAQ98C,IAAUs0H,EAAOz2H,KAAKmC,EAAO,WAAai2H,EAAYr0H,QAAQ5B,EAAMwB,SAASvB,MAAK,SAAUD,GAC9Hk2H,EAAO,OAAQl2H,EAAO4B,EAASutH,EACjC,IAAG,SAAUrqC,GACXoxC,EAAO,QAASpxC,EAAKljF,EAASutH,EAChC,IAAK8G,EAAYr0H,QAAQ5B,GAAOC,MAAK,SAAUm2H,GAC7C5oD,EAAOxtE,MAAQo2H,EAAWx0H,EAAQ4rE,EACpC,IAAG,SAAUtsE,GACX,OAAOg1H,EAAO,QAASh1H,EAAOU,EAASutH,EACzC,GACF,CACAA,EAAOgH,EAAOz/D,IAChB,CACA,IAAI2/D,EACJ/2H,EAAerB,KAAM,UAAW,CAC9B+B,MAAO,SAAe81H,EAAQp/D,GAC5B,SAAS4/D,IACP,OAAO,IAAIL,GAAY,SAAUr0H,EAASutH,GACxC+G,EAAOJ,EAAQp/D,EAAK90D,EAASutH,EAC/B,GACF,CACA,OAAOkH,EAAkBA,EAAkBA,EAAgBp2H,KAAKq2H,EAA4BA,GAA8BA,GAC5H,GAEJ,CACA,SAASjB,EAAiBP,EAAS7xH,EAAM0rC,GACvC,IAAI+N,EAAQ,iBACZ,OAAO,SAAUo5E,EAAQp/D,GACvB,GAAI,cAAgBha,EAAO,MAAM,IAAIn5C,MAAM,gCAC3C,GAAI,cAAgBm5C,EAAO,CACzB,GAAI,UAAYo5E,EAAQ,MAAMp/D,EAC9B,OAAO6/D,GACT,CACA,IAAK5nF,EAAQmnF,OAASA,EAAQnnF,EAAQ+nB,IAAMA,IAAO,CACjD,IAAI8/D,EAAW7nF,EAAQ6nF,SACvB,GAAIA,EAAU,CACZ,IAAIC,EAAiBC,EAAoBF,EAAU7nF,GACnD,GAAI8nF,EAAgB,CAClB,GAAIA,IAAmBlB,EAAkB,SACzC,OAAOkB,CACT,CACF,CACA,GAAI,SAAW9nF,EAAQmnF,OAAQnnF,EAAQvuC,KAAOuuC,EAAQgoF,MAAQhoF,EAAQ+nB,SAAS,GAAI,UAAY/nB,EAAQmnF,OAAQ,CAC7G,GAAI,mBAAqBp5E,EAAO,MAAMA,EAAQ,YAAa/N,EAAQ+nB,IACnE/nB,EAAQioF,kBAAkBjoF,EAAQ+nB,IACpC,KAAO,WAAa/nB,EAAQmnF,QAAUnnF,EAAQkoF,OAAO,SAAUloF,EAAQ+nB,KACvEha,EAAQ,YACR,IAAIy5E,EAASb,EAASR,EAAS7xH,EAAM0rC,GACrC,GAAI,WAAawnF,EAAOhtH,KAAM,CAC5B,GAAIuzC,EAAQ/N,EAAQ5uC,KAAO,YAAc,iBAAkBo2H,EAAOz/D,MAAQ6+D,EAAkB,SAC5F,MAAO,CACLv1H,MAAOm2H,EAAOz/D,IACd32D,KAAM4uC,EAAQ5uC,KAElB,CACA,UAAYo2H,EAAOhtH,OAASuzC,EAAQ,YAAa/N,EAAQmnF,OAAS,QAASnnF,EAAQ+nB,IAAMy/D,EAAOz/D,IAClG,CACF,CACF,CACA,SAASggE,EAAoBF,EAAU7nF,GACrC,IAAImoF,EAAanoF,EAAQmnF,OACvBA,EAASU,EAAS/1H,SAASq2H,GAC7B,QAAIjiE,IAAcihE,EAAQ,OAAOnnF,EAAQ6nF,SAAW,KAAM,UAAYM,GAAcN,EAAS/1H,SAAiB,SAAMkuC,EAAQmnF,OAAS,SAAUnnF,EAAQ+nB,SAAM7B,EAAW6hE,EAAoBF,EAAU7nF,GAAU,UAAYA,EAAQmnF,SAAW,WAAagB,IAAenoF,EAAQmnF,OAAS,QAASnnF,EAAQ+nB,IAAM,IAAI34D,UAAU,oCAAsC+4H,EAAa,aAAcvB,EAClY,IAAIY,EAASb,EAASQ,EAAQU,EAAS/1H,SAAUkuC,EAAQ+nB,KACzD,GAAI,UAAYy/D,EAAOhtH,KAAM,OAAOwlC,EAAQmnF,OAAS,QAASnnF,EAAQ+nB,IAAMy/D,EAAOz/D,IAAK/nB,EAAQ6nF,SAAW,KAAMjB,EACjH,IAAIwB,EAAOZ,EAAOz/D,IAClB,OAAOqgE,EAAOA,EAAKh3H,MAAQ4uC,EAAQ6nF,EAASQ,YAAcD,EAAK/2H,MAAO2uC,EAAQ9uC,KAAO22H,EAASS,QAAS,WAAatoF,EAAQmnF,SAAWnnF,EAAQmnF,OAAS,OAAQnnF,EAAQ+nB,SAAM7B,GAAYlmB,EAAQ6nF,SAAW,KAAMjB,GAAoBwB,GAAQpoF,EAAQmnF,OAAS,QAASnnF,EAAQ+nB,IAAM,IAAI34D,UAAU,oCAAqC4wC,EAAQ6nF,SAAW,KAAMjB,EACrW,CACA,SAAS2B,EAAaC,GACpB,IAAIC,EAAQ,CACVC,OAAQF,EAAK,IAEf,KAAKA,IAASC,EAAME,SAAWH,EAAK,IAAK,KAAKA,IAASC,EAAMG,WAAaJ,EAAK,GAAIC,EAAMI,SAAWL,EAAK,IAAKl5H,KAAKw5H,WAAW92H,KAAKy2H,EACrI,CACA,SAASM,EAAcN,GACrB,IAAIjB,EAASiB,EAAMO,YAAc,CAAC,EAClCxB,EAAOhtH,KAAO,gBAAiBgtH,EAAOz/D,IAAK0gE,EAAMO,WAAaxB,CAChE,CACA,SAASf,EAAQJ,GACf/2H,KAAKw5H,WAAa,CAAC,CACjBJ,OAAQ,SACNrC,EAAY5jG,QAAQ8lG,EAAcj5H,MAAOA,KAAKykB,OAAM,EAC1D,CACA,SAAS0rB,EAAOwpF,GACd,GAAIA,EAAU,CACZ,IAAIC,EAAiBD,EAASnD,GAC9B,GAAIoD,EAAgB,OAAOA,EAAeh6H,KAAK+5H,GAC/C,GAAI,mBAAqBA,EAAS/3H,KAAM,OAAO+3H,EAC/C,IAAKx+G,MAAMw+G,EAASp5H,QAAS,CAC3B,IAAIF,GAAK,EACPuB,EAAO,SAASA,IACd,OAASvB,EAAIs5H,EAASp5H,QAAS,GAAI81H,EAAOz2H,KAAK+5H,EAAUt5H,GAAI,OAAOuB,EAAKG,MAAQ43H,EAASt5H,GAAIuB,EAAKE,MAAO,EAAIF,EAC9G,OAAOA,EAAKG,WAAQ60D,EAAWh1D,EAAKE,MAAO,EAAIF,CACjD,EACF,OAAOA,EAAKA,KAAOA,CACrB,CACF,CACA,MAAO,CACLA,KAAM02H,EAEV,CACA,SAASA,IACP,MAAO,CACLv2H,WAAO60D,EACP90D,MAAM,EAEV,CACA,OAAOy1H,EAAkB73H,UAAY83H,EAA4Bn2H,EAAes2H,EAAI,cAAe,CACjG51H,MAAOy1H,EACP9rC,cAAc,IACZrqF,EAAem2H,EAA4B,cAAe,CAC5Dz1H,MAAOw1H,EACP7rC,cAAc,IACZ6rC,EAAkBrnE,YAAcymE,EAAOa,EAA4Bd,EAAmB,qBAAsBvxH,EAAQ00H,oBAAsB,SAAUC,GACtJ,IAAIC,EAAO,mBAAqBD,GAAUA,EAAO75H,YACjD,QAAS85H,IAASA,IAASxC,GAAqB,uBAAyBwC,EAAK7pE,aAAe6pE,EAAKxkH,MACpG,EAAGpQ,EAAQ60H,KAAO,SAAUF,GAC1B,OAAOz6H,OAAOC,eAAiBD,OAAOC,eAAew6H,EAAQtC,IAA+BsC,EAAOv6H,UAAYi4H,EAA4Bb,EAAOmD,EAAQpD,EAAmB,sBAAuBoD,EAAOp6H,UAAYL,OAAOa,OAAOy3H,GAAKmC,CAC5O,EAAG30H,EAAQ80H,MAAQ,SAAUxhE,GAC3B,MAAO,CACLl1D,QAASk1D,EAEb,EAAGm/D,EAAsBG,EAAcr4H,WAAYi3H,EAAOoB,EAAcr4H,UAAW+2H,GAAqB,WACtG,OAAOz2H,IACT,IAAImF,EAAQ4yH,cAAgBA,EAAe5yH,EAAQ+0H,MAAQ,SAAUrD,EAASC,EAAS9xH,EAAM+xH,EAAaiB,QACxG,IAAWA,IAAgBA,EAAct2H,SACzC,IAAIy4H,EAAO,IAAIpC,EAAcnB,EAAKC,EAASC,EAAS9xH,EAAM+xH,GAAciB,GACxE,OAAO7yH,EAAQ00H,oBAAoB/C,GAAWqD,EAAOA,EAAKv4H,OAAOI,MAAK,SAAUutE,GAC9E,OAAOA,EAAOztE,KAAOytE,EAAOxtE,MAAQo4H,EAAKv4H,MAC3C,GACF,EAAGg2H,EAAsBD,GAAKhB,EAAOgB,EAAIjB,EAAmB,aAAcC,EAAOgB,EAAInB,GAAgB,WACnG,OAAOx2H,IACT,IAAI22H,EAAOgB,EAAI,YAAY,WACzB,MAAO,oBACT,IAAIxyH,EAAQusD,KAAO,SAAUxrB,GAC3B,IAAIihD,EAAS9nF,OAAO6mC,GAClBwrB,EAAO,GACT,IAAK,IAAIrjB,KAAO84C,EAAQz1B,EAAKhvD,KAAK2rC,GAClC,OAAOqjB,EAAKhuC,UAAW,SAAS9hB,IAC9B,KAAO8vD,EAAKnxD,QAAS,CACnB,IAAI8tC,EAAMqjB,EAAKjvD,MACf,GAAI4rC,KAAO84C,EAAQ,OAAOvlF,EAAKG,MAAQssC,EAAKzsC,EAAKE,MAAO,EAAIF,CAC9D,CACA,OAAOA,EAAKE,MAAO,EAAIF,CACzB,CACF,EAAGuD,EAAQgrC,OAASA,EAAQgnF,EAAQz3H,UAAY,CAC9CO,YAAak3H,EACb1yG,MAAO,SAAe21G,GACpB,GAAIp6H,KAAKw0H,KAAO,EAAGx0H,KAAK4B,KAAO,EAAG5B,KAAKmC,KAAOnC,KAAK04H,WAAQ9hE,EAAW52D,KAAK8B,MAAO,EAAI9B,KAAKu4H,SAAW,KAAMv4H,KAAK63H,OAAS,OAAQ73H,KAAKy4D,SAAM7B,EAAW52D,KAAKw5H,WAAWrmG,QAAQsmG,IAAiBW,EAAe,IAAK,IAAI7kH,KAAQvV,KAAM,MAAQuV,EAAKuwB,OAAO,IAAMuwF,EAAOz2H,KAAKI,KAAMuV,KAAU4F,OAAO5F,EAAKjS,MAAM,MAAQtD,KAAKuV,QAAQqhD,EACtU,EACA97C,KAAM,WACJ9a,KAAK8B,MAAO,EACZ,IAAIu4H,EAAar6H,KAAKw5H,WAAW,GAAGE,WACpC,GAAI,UAAYW,EAAWnvH,KAAM,MAAMmvH,EAAW5hE,IAClD,OAAOz4D,KAAKs6H,IACd,EACA3B,kBAAmB,SAA2B4B,GAC5C,GAAIv6H,KAAK8B,KAAM,MAAMy4H,EACrB,IAAI7pF,EAAU1wC,KACd,SAASw6H,EAAOC,EAAKC,GACnB,OAAOxC,EAAOhtH,KAAO,QAASgtH,EAAOz/D,IAAM8hE,EAAW7pF,EAAQ9uC,KAAO64H,EAAKC,IAAWhqF,EAAQmnF,OAAS,OAAQnnF,EAAQ+nB,SAAM7B,KAAc8jE,CAC5I,CACA,IAAK,IAAIr6H,EAAIL,KAAKw5H,WAAWj5H,OAAS,EAAGF,GAAK,IAAKA,EAAG,CACpD,IAAI84H,EAAQn5H,KAAKw5H,WAAWn5H,GAC1B63H,EAASiB,EAAMO,WACjB,GAAI,SAAWP,EAAMC,OAAQ,OAAOoB,EAAO,OAC3C,GAAIrB,EAAMC,QAAUp5H,KAAKw0H,KAAM,CAC7B,IAAImG,EAAWtE,EAAOz2H,KAAKu5H,EAAO,YAChCyB,EAAavE,EAAOz2H,KAAKu5H,EAAO,cAClC,GAAIwB,GAAYC,EAAY,CAC1B,GAAI56H,KAAKw0H,KAAO2E,EAAME,SAAU,OAAOmB,EAAOrB,EAAME,UAAU,GAC9D,GAAIr5H,KAAKw0H,KAAO2E,EAAMG,WAAY,OAAOkB,EAAOrB,EAAMG,WACxD,MAAO,GAAIqB,GACT,GAAI36H,KAAKw0H,KAAO2E,EAAME,SAAU,OAAOmB,EAAOrB,EAAME,UAAU,OACzD,CACL,IAAKuB,EAAY,MAAM,IAAIt1H,MAAM,0CACjC,GAAItF,KAAKw0H,KAAO2E,EAAMG,WAAY,OAAOkB,EAAOrB,EAAMG,WACxD,CACF,CACF,CACF,EACAV,OAAQ,SAAgB1tH,EAAMutD,GAC5B,IAAK,IAAIp4D,EAAIL,KAAKw5H,WAAWj5H,OAAS,EAAGF,GAAK,IAAKA,EAAG,CACpD,IAAI84H,EAAQn5H,KAAKw5H,WAAWn5H,GAC5B,GAAI84H,EAAMC,QAAUp5H,KAAKw0H,MAAQ6B,EAAOz2H,KAAKu5H,EAAO,eAAiBn5H,KAAKw0H,KAAO2E,EAAMG,WAAY,CACjG,IAAIuB,EAAe1B,EACnB,KACF,CACF,CACA0B,IAAiB,UAAY3vH,GAAQ,aAAeA,IAAS2vH,EAAazB,QAAU3gE,GAAOA,GAAOoiE,EAAavB,aAAeuB,EAAe,MAC7I,IAAI3C,EAAS2C,EAAeA,EAAanB,WAAa,CAAC,EACvD,OAAOxB,EAAOhtH,KAAOA,EAAMgtH,EAAOz/D,IAAMA,EAAKoiE,GAAgB76H,KAAK63H,OAAS,OAAQ73H,KAAK4B,KAAOi5H,EAAavB,WAAYhC,GAAoBt3H,KAAK86H,SAAS5C,EAC5J,EACA4C,SAAU,SAAkB5C,EAAQqB,GAClC,GAAI,UAAYrB,EAAOhtH,KAAM,MAAMgtH,EAAOz/D,IAC1C,MAAO,UAAYy/D,EAAOhtH,MAAQ,aAAegtH,EAAOhtH,KAAOlL,KAAK4B,KAAOs2H,EAAOz/D,IAAM,WAAay/D,EAAOhtH,MAAQlL,KAAKs6H,KAAOt6H,KAAKy4D,IAAMy/D,EAAOz/D,IAAKz4D,KAAK63H,OAAS,SAAU73H,KAAK4B,KAAO,OAAS,WAAas2H,EAAOhtH,MAAQquH,IAAav5H,KAAK4B,KAAO23H,GAAWjC,CACtQ,EACAyD,OAAQ,SAAgBzB,GACtB,IAAK,IAAIj5H,EAAIL,KAAKw5H,WAAWj5H,OAAS,EAAGF,GAAK,IAAKA,EAAG,CACpD,IAAI84H,EAAQn5H,KAAKw5H,WAAWn5H,GAC5B,GAAI84H,EAAMG,aAAeA,EAAY,OAAOt5H,KAAK86H,SAAS3B,EAAMO,WAAYP,EAAMI,UAAWE,EAAcN,GAAQ7B,CACrH,CACF,EACA,MAAS,SAAgB8B,GACvB,IAAK,IAAI/4H,EAAIL,KAAKw5H,WAAWj5H,OAAS,EAAGF,GAAK,IAAKA,EAAG,CACpD,IAAI84H,EAAQn5H,KAAKw5H,WAAWn5H,GAC5B,GAAI84H,EAAMC,SAAWA,EAAQ,CAC3B,IAAIlB,EAASiB,EAAMO,WACnB,GAAI,UAAYxB,EAAOhtH,KAAM,CAC3B,IAAI8vH,EAAS9C,EAAOz/D,IACpBghE,EAAcN,EAChB,CACA,OAAO6B,CACT,CACF,CACA,MAAM,IAAI11H,MAAM,wBAClB,EACA21H,cAAe,SAAuBtB,EAAUZ,EAAYC,GAC1D,OAAOh5H,KAAKu4H,SAAW,CACrB/1H,SAAU2tC,EAAOwpF,GACjBZ,WAAYA,EACZC,QAASA,GACR,SAAWh5H,KAAK63H,SAAW73H,KAAKy4D,SAAM7B,GAAY0gE,CACvD,GACCnyH,CACL,CC9SA,SAAS+1H,EAAmBC,EAAKx3H,EAASutH,EAAQkK,EAAOC,EAAQhtF,EAAKoqB,GACpE,IACE,IAAIqgE,EAAOqC,EAAI9sF,GAAKoqB,GAChB12D,EAAQ+2H,EAAK/2H,KACnB,CAAE,MAAOkB,GAEP,YADAiuH,EAAOjuH,EAET,CACI61H,EAAKh3H,KACP6B,EAAQ5B,GAERL,QAAQiC,QAAQ5B,GAAOC,KAAKo5H,EAAOC,EAEvC,CACe,SAAS,EAAkB/1F,GACxC,OAAO,WACL,IAAItgC,EAAOhF,KACT04D,EAAOp4D,UACT,OAAO,IAAIoB,SAAQ,SAAUiC,EAASutH,GACpC,IAAIiK,EAAM71F,EAAG7kC,MAAMuE,EAAM0zD,GACzB,SAAS0iE,EAAMr5H,GACbm5H,EAAmBC,EAAKx3H,EAASutH,EAAQkK,EAAOC,EAAQ,OAAQt5H,EAClE,CACA,SAASs5H,EAAOx0C,GACdq0C,EAAmBC,EAAKx3H,EAASutH,EAAQkK,EAAOC,EAAQ,QAASx0C,EACnE,CACAu0C,OAAMxkE,EACR,GACF,CACF,CC7Be,SAAS0kE,EAAiBnB,GACvC,GAAsB,qBAAX53H,QAAmD,MAAzB43H,EAAK53H,OAAOC,WAA2C,MAAtB23H,EAAK,cAAuB,OAAO36H,MAAM83D,KAAK6iE,EACtH,CCEe,SAAS,EAAmBhrG,GACzC,OCJa,SAA4BA,GACzC,GAAI3vB,MAAMs0D,QAAQ3kC,GAAM,OAAO,EAAiBA,EAClD,CDES,CAAkBA,IAAQ,EAAgBA,IAAQ,EAA2BA,IELvE,WACb,MAAM,IAAIrvB,UAAU,uIACtB,CFG8F,EAC9F,CGNe,SAAS,EAAgBwpD,EAAUiyE,GAChD,KAAMjyE,aAAoBiyE,GACxB,MAAM,IAAIz7H,UAAU,oCAExB,CCFe,SAAS07H,EAAe/iE,GACrC,IAAIpqB,ECFS,SAAsB0lB,EAAO0nE,GAC1C,GAAuB,WAAnB58E,EAAQkV,IAAiC,OAAVA,EAAgB,OAAOA,EAC1D,IAAI2nE,EAAO3nE,EAAMxxD,OAAOo5H,aACxB,QAAa/kE,IAAT8kE,EAAoB,CACtB,IAAInnE,EAAMmnE,EAAK97H,KAAKm0D,EAAO0nE,GAAQ,WACnC,GAAqB,WAAjB58E,EAAQ0V,GAAmB,OAAOA,EACtC,MAAM,IAAIz0D,UAAU,+CACtB,CACA,OAAiB,WAAT27H,EAAoB17H,OAASmb,QAAQ64C,EAC/C,CDPY,CAAY0E,EAAK,UAC3B,MAAwB,WAAjB5Z,EAAQxQ,GAAoBA,EAAMtuC,OAAOsuC,EAClD,CEJA,SAASutF,EAAkB9vH,EAAQ2Z,GACjC,IAAK,IAAIplB,EAAI,EAAGA,EAAIolB,EAAMllB,OAAQF,IAAK,CACrC,IAAIwxD,EAAapsC,EAAMplB,GACvBwxD,EAAWjvD,WAAaivD,EAAWjvD,aAAc,EACjDivD,EAAW65B,cAAe,EACtB,UAAW75B,IAAYA,EAAWw1D,UAAW,GACjDhoH,OAAOgC,eAAeyK,EAAQ,EAAc+lD,EAAWxjB,KAAMwjB,EAC/D,CACF,CACe,SAAS,EAAa0pE,EAAaM,EAAYC,GAM5D,OALID,GAAYD,EAAkBL,EAAY77H,UAAWm8H,GACrDC,GAAaF,EAAkBL,EAAaO,GAChDz8H,OAAOgC,eAAek6H,EAAa,YAAa,CAC9ClU,UAAU,IAELkU,CACT,CCjBe,SAASQ,EAAgB36H,EAAGyC,GAKzC,OAJAk4H,EAAkB18H,OAAOC,eAAiBD,OAAOC,eAAe0T,OAAS,SAAyB5R,EAAGyC,GAEnG,OADAzC,EAAE7B,UAAYsE,EACPzC,CACT,EACO26H,EAAgB36H,EAAGyC,EAC5B,CCLe,SAASm4H,EAAUC,EAAUC,GAC1C,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIp8H,UAAU,sDAEtBm8H,EAASv8H,UAAYL,OAAOa,OAAOg8H,GAAcA,EAAWx8H,UAAW,CACrEO,YAAa,CACX8B,MAAOk6H,EACP5U,UAAU,EACV37B,cAAc,KAGlBrsF,OAAOgC,eAAe46H,EAAU,YAAa,CAC3C5U,UAAU,IAER6U,GAAY,EAAeD,EAAUC,EAC3C,CChBe,SAASC,EAAgB/6H,GAItC,OAHA+6H,EAAkB98H,OAAOC,eAAiBD,OAAO8xD,eAAen+C,OAAS,SAAyB5R,GAChG,OAAOA,EAAE7B,WAAaF,OAAO8xD,eAAe/vD,EAC9C,EACO+6H,EAAgB/6H,EACzB,CCLe,SAASg7H,IACtB,GAAuB,qBAAZl7H,UAA4BA,QAAQ2pF,UAAW,OAAO,EACjE,GAAI3pF,QAAQ2pF,UAAUwxC,KAAM,OAAO,EACnC,GAAqB,oBAAVC,MAAsB,OAAO,EACxC,IAEE,OADAC,QAAQ78H,UAAUg1D,QAAQ90D,KAAKsB,QAAQ2pF,UAAU0xC,QAAS,IAAI,WAAa,MACpE,CACT,CAAE,MAAOn9H,GACP,OAAO,CACT,CACF,CCRe,SAASo9H,EAA2Bx3H,EAAMpF,GACvD,GAAIA,IAA2B,WAAlBi/C,EAAQj/C,IAAsC,oBAATA,GAChD,OAAOA,EACF,QAAa,IAATA,EACT,MAAM,IAAIE,UAAU,4DAEtB,OCRa,SAAgCkF,GAC7C,QAAa,IAATA,EACF,MAAM,IAAIsiH,eAAe,6DAE3B,OAAOtiH,CACT,CDGS,CAAsBA,EAC/B,CENe,SAASy3H,EAAaC,GACnC,IAAIC,EAA4B,IAChC,OAAO,WACL,IACEptD,EADEqtD,EAAQ,EAAeF,GAE3B,GAAIC,EAA2B,CAC7B,IAAIE,EAAY,EAAe78H,MAAMC,YACrCsvE,EAASruE,QAAQ2pF,UAAU+xC,EAAOt8H,UAAWu8H,EAC/C,MACEttD,EAASqtD,EAAMn8H,MAAMT,KAAMM,WAE7B,OAAO,EAA0BN,KAAMuvE,EACzC,CACF,CCde,SAASutD,EAAWC,EAAQrkE,EAAMskE,GAa/C,OAXEF,EADE,IACW57H,QAAQ2pF,UAAU73E,OAElB,SAAoB+pH,EAAQrkE,EAAMskE,GAC7C,IAAIx8H,EAAI,CAAC,MACTA,EAAEkC,KAAKjC,MAAMD,EAAGk4D,GAChB,IACIpP,EAAW,IADG0P,SAAShmD,KAAKvS,MAAMs8H,EAAQv8H,IAG9C,OADIw8H,GAAO,EAAe1zE,EAAU0zE,EAAMt9H,WACnC4pD,CACT,EAEKwzE,EAAWr8H,MAAM,KAAMH,UAChC,CCZe,SAAS28H,EAAiBD,GACvC,IAAIE,EAAwB,oBAARvlC,IAAqB,IAAIA,SAAQ/gC,EAuBrD,OAtBAqmE,EAAmB,SAA0BD,GAC3C,GAAc,OAAVA,ICPO,SAA2B13F,GACxC,OAAgE,IAAzD0zB,SAASrsD,SAAS/M,KAAK0lC,GAAI3kC,QAAQ,gBAC5C,CDK2B,CAAiBq8H,GAAQ,OAAOA,EACvD,GAAqB,oBAAVA,EACT,MAAM,IAAIl9H,UAAU,sDAEtB,GAAsB,qBAAXo9H,EAAwB,CACjC,GAAIA,EAAOz4H,IAAIu4H,GAAQ,OAAOE,EAAOr6H,IAAIm6H,GACzCE,EAAOv4H,IAAIq4H,EAAOG,EACpB,CACA,SAASA,IACP,OAAO,EAAUH,EAAO18H,UAAW,EAAeN,MAAMC,YAC1D,CASA,OARAk9H,EAAQz9H,UAAYL,OAAOa,OAAO88H,EAAMt9H,UAAW,CACjDO,YAAa,CACX8B,MAAOo7H,EACPv6H,YAAY,EACZykH,UAAU,EACV37B,cAAc,KAGX,EAAeyxC,EAASH,EACjC,EACOC,EAAiBD,EAC1B,CE5Be,SAAS,EAA2B57H,EAAGg8H,GACpD,IAAIhuH,EAAuB,qBAAX7M,QAA0BnB,EAAEmB,OAAOC,WAAapB,EAAE,cAClE,IAAKgO,EAAI,CACP,GAAI5P,MAAMs0D,QAAQ1yD,KAAOgO,EAAK,EAA2BhO,KAAOg8H,GAAkBh8H,GAAyB,kBAAbA,EAAEb,OAAqB,CAC/G6O,IAAIhO,EAAIgO,GACZ,IAAI/O,EAAI,EACJwlB,EAAI,WAAc,EACtB,MAAO,CACL9kB,EAAG8kB,EACH7kB,EAAG,WACD,OAAIX,GAAKe,EAAEb,OAAe,CACxBuB,MAAM,GAED,CACLA,MAAM,EACNC,MAAOX,EAAEf,KAEb,EACAjB,EAAG,SAAW8nH,GACZ,MAAMA,CACR,EACAr4G,EAAGgX,EAEP,CACA,MAAM,IAAI/lB,UAAU,wIACtB,CACA,IAEE+mF,EAFEw2C,GAAmB,EACrBC,GAAS,EAEX,MAAO,CACLv8H,EAAG,WACDqO,EAAKA,EAAGxP,KAAKwB,EACf,EACAJ,EAAG,WACD,IAAIktD,EAAO9+C,EAAGxN,OAEd,OADAy7H,EAAmBnvE,EAAKpsD,KACjBosD,CACT,EACA9uD,EAAG,SAAWm+H,GACZD,GAAS,EACTz2C,EAAM02C,CACR,EACA1uH,EAAG,WACD,IACOwuH,GAAoC,MAAhBjuH,EAAW,QAAWA,EAAW,QAC5D,CAAE,QACA,GAAIkuH,EAAQ,MAAMz2C,CACpB,CACF,EAEJ,sOtB5CA,SAAYsvC,GAQVA,EAAA,UAOAA,EAAA,YAMAA,EAAA,iBArBF,EAAYA,IAAAA,EAsBX,KAkKD,IuBrLYqH,EvBqLNC,EAAoB,WA8RV,SAAAC,EAAU37H,EAAYi1G,GACpC,IAAc,IAAVj1G,GAA6B,OAAVA,GAAmC,qBAAVA,EAC9C,MAAM,IAAIuD,MAAM0xG,EAEnB,CAEe,SAAA2mB,EAAQC,EAAW5mB,GACjC,IAAK4mB,EAAM,CAEc,qBAAZ5pG,SAAyBA,QAAQC,KAAK+iF,GAEjD,IAME,MAAM,IAAI1xG,MAAM0xG,EAEjB,CAAC,MAAO53G,GAAI,CACd,CACF,CASD,SAASy+H,EAAgBlsH,EAAoBiX,GAC3C,MAAO,CACLk1G,IAAKnsH,EAAS8sC,MACdpQ,IAAK18B,EAAS08B,IACd0vF,IAAKn1G,EAER,CAKK,SAAUo1G,EACd9pC,EACArzE,EACA49B,EACApQ,GAcA,YAdY,IADZoQ,IAAAA,EAAa,MAGDw/E,EAAA,CACVpsH,SAA6B,kBAAZqiF,EAAuBA,EAAUA,EAAQriF,SAC1D4vF,OAAQ,GACR2kB,KAAM,IACY,kBAAPvlG,EAAkBq9G,EAAUr9G,GAAMA,EAJnC,CAKV49B,MAAAA,EAKApQ,IAAMxtB,GAAOA,EAAgBwtB,KAAQA,GAjChCtlC,KAAKY,SAASgD,SAAS,IAAIkM,OAAO,EAAG,IAoC7C,CAKe,SAAA+nC,EAIAu9E,GAAA,IAAAC,EAAAD,EAHdtsH,SAAAA,OAAQ,IAAAusH,EAAG,IADcA,EAAAC,EAIXF,EAFd18B,OAAAA,OAAM,IAAA48B,EAAG,GAFgBA,EAAAC,EAIXH,EADd/X,KAAAA,OAAI,IAAAkY,EAAG,GAAAA,EAMP,OAJI78B,GAAqB,MAAXA,IACZ5vF,GAAiC,MAArB4vF,EAAO37D,OAAO,GAAa27D,EAAS,IAAMA,GACpD2kB,GAAiB,MAATA,IACVv0G,GAA+B,MAAnBu0G,EAAKtgF,OAAO,GAAasgF,EAAO,IAAMA,GAC7Cv0G,CACR,CAKK,SAAUqsH,EAAU9sH,GACxB,IAAImtH,EAA4B,CAAC,EAEjC,GAAIntH,EAAM,CACR,IAAIotH,EAAYptH,EAAKzQ,QAAQ,KACzB69H,GAAa,IACfD,EAAWnY,KAAOh1G,EAAKyH,OAAO2lH,GAC9BptH,EAAOA,EAAKyH,OAAO,EAAG2lH,IAGxB,IAAIC,EAAcrtH,EAAKzQ,QAAQ,KAC3B89H,GAAe,IACjBF,EAAW98B,OAASrwF,EAAKyH,OAAO4lH,GAChCrtH,EAAOA,EAAKyH,OAAO,EAAG4lH,IAGpBrtH,IACFmtH,EAAW1sH,SAAWT,EAEzB,CAED,OAAOmtH,CACR,CASD,SAASG,EACPC,EACAC,EACAC,EACA7xC,QAA+B,IAA/BA,IAAAA,EAA6B,CAAC,GAE9B,IAAA8xC,EAA2D9xC,EAA3D+xC,EAAAD,EAAMh6H,OAAAA,OAAM,IAAAi6H,EAAG54H,SAASk+F,YAApB06B,EAAAC,EAAAF,EAAkCG,SAAAA,OAAQ,IAAAD,GAAGA,EAC7CE,EAAgBp6H,EAAOq6H,QACvBxrB,EAASwiB,EAAOiJ,IAChBt4B,EAA4B,KAE5Bl+E,EAAQy2G,IASZ,SAASA,IAEP,OADYH,EAAczgF,OAAS,CAAEs/E,IAAK,OAC7BA,GACd,CAED,SAASuB,IACP3rB,EAASwiB,EAAOiJ,IAChB,IAAIG,EAAYF,IACZG,EAAqB,MAAbD,EAAoB,KAAOA,EAAY32G,EACnDA,EAAQ22G,EACJz4B,GACFA,EAAS,CAAE6M,OAAAA,EAAQhiG,SAAUwtH,EAAQxtH,SAAU6tH,MAAAA,GAElD,CAwCD,SAASC,EAAU5+G,GAIjB,IAAIw3D,EACyB,SAA3BvzE,EAAO6M,SAASC,OACZ9M,EAAO6M,SAASC,OAChB9M,EAAO6M,SAASiiB,KAElBA,EAAqB,kBAAP/S,EAAkBA,EAAK+/B,EAAW//B,GAKpD,OAJA68G,EACErlD,EACsE,sEAAAzkD,GAEjE,IAAI7lB,IAAI6lB,EAAMykD,EACtB,CAzEY,MAATzvD,IACFA,EAAQ,EACRs2G,EAAcQ,aAAkBzB,EAAA,GAAAiB,EAAczgF,MAA9C,CAAqDs/E,IAAKn1G,IAAS,KAyErE,IAAIu2G,EAAmB,CACjBxrB,aACF,OAAOA,GAELhiG,eACF,OAAOgtH,EAAY75H,EAAQo6H,IAE7BS,OAAM,SAACr6F,GACL,GAAIwhE,EACF,MAAM,IAAIxhG,MAAM,8CAKlB,OAHAR,EAAOoP,iBAAiBupH,EAAmB6B,GAC3Cx4B,EAAWxhE,EAEJ,WACLxgC,EAAOgQ,oBAAoB2oH,EAAmB6B,GAC9Cx4B,EAAW,OAGf83B,WAAU,SAAC/9G,GACT,OAAO+9G,EAAW95H,EAAQ+b,IAE5B4+G,UAAAA,EACAG,eAAc,SAAC/+G,GAEb,IAAI8gF,EAAM89B,EAAU5+G,GACpB,MAAO,CACLhP,SAAU8vF,EAAI9vF,SACd4vF,OAAQE,EAAIF,OACZ2kB,KAAMzkB,EAAIykB,OAGd1jH,KAvFF,SAAcme,EAAQ49B,GACpBk1D,EAASwiB,EAAO0J,KAChB,IAAIluH,EAAWqsH,EAAemB,EAAQxtH,SAAUkP,EAAI49B,GAChDogF,GAAkBA,EAAiBltH,EAAUkP,GAGjD,IAAIi/G,EAAejC,EAAgBlsH,EADnCiX,EAAQy2G,IAAa,GAEjB19B,EAAMw9B,EAAQP,WAAWjtH,GAG7B,IACEutH,EAAca,UAAUD,EAAc,GAAIn+B,GAC1C,MAAO1+F,GAGP6B,EAAO6M,SAASvR,OAAOuhG,EACxB,CAEGs9B,GAAYn4B,GACdA,EAAS,CAAE6M,OAAAA,EAAQhiG,SAAUwtH,EAAQxtH,SAAU6tH,MAAO,GAEzD,EAmEC/hH,QAjEF,SAAiBoD,EAAQ49B,GACvBk1D,EAASwiB,EAAO6J,QAChB,IAAIruH,EAAWqsH,EAAemB,EAAQxtH,SAAUkP,EAAI49B,GAChDogF,GAAkBA,EAAiBltH,EAAUkP,GAGjD,IAAIi/G,EAAejC,EAAgBlsH,EADnCiX,EAAQy2G,KAEJ19B,EAAMw9B,EAAQP,WAAWjtH,GAC7ButH,EAAcQ,aAAaI,EAAc,GAAIn+B,GAEzCs9B,GAAYn4B,GACdA,EAAS,CAAE6M,OAAAA,EAAQhiG,SAAUwtH,EAAQxtH,SAAU6tH,MAAO,GAEzD,EAqDCS,GAAE,SAACj/H,GACD,OAAOk+H,EAAce,GAAGj/H,EACzB,GAGH,OAAOm+H,CACR,EuBpsBD,SAAY3B,GACVA,EAAA,YACAA,EAAA,oBACAA,EAAA,oBACAA,EAAA,aAJF,EAAYA,IAAAA,EAKX,KAmJiC,IAAIv1C,IAAuB,CAC3D,OACA,gBACA,OACA,KACA,QACA,aA6MI,SAAUi4C,EAGdC,EACAC,EACAC,QAAc,IAAdA,IAAAA,EAAW,KAEX,IAGIxuH,EAAWyuH,GAFU,kBAAhBF,EAA2BlC,EAAUkC,GAAeA,GAEvBvuH,UAAY,IAAKwuH,GAEvD,GAAgB,MAAZxuH,EACF,OAAO,KAGT,IAAI0uH,EAAWC,EAAcL,IA4K/B,SAA2BI,GACzBA,EAAS1hE,MAAK,SAACr+D,EAAG0e,GAAJ,OACZ1e,EAAEwyE,QAAU9zD,EAAE8zD,MACV9zD,EAAE8zD,MAAQxyE,EAAEwyE,MAyCpB,SAAwBxyE,EAAa0e,GACnC,IAAIuhH,EACFjgI,EAAED,SAAW2e,EAAE3e,QAAUC,EAAE8C,MAAM,GAAI,GAAGo9H,OAAM,SAAC1/H,EAAGX,GAAJ,OAAUW,IAAMke,EAAE7e,EAAvC,IAE3B,OAAOogI,EAKHjgI,EAAEA,EAAED,OAAS,GAAK2e,EAAEA,EAAE3e,OAAS,GAG/B,CACL,CArDOogI,CACEngI,EAAEogI,WAAWr0E,KAAK,SAAAilC,GAAD,OAAUA,EAAKqvC,aAAhC,IACA3hH,EAAE0hH,WAAWr0E,KAAK,SAAAilC,GAAD,OAAUA,EAAKqvC,aAAhC,IALR,GAQD,CApLCC,CAAkBP,GAGlB,IADA,IAAIrqD,EAAU,KACL71E,EAAI,EAAc,MAAX61E,GAAmB71E,EAAIkgI,EAAShgI,SAAUF,EACxD61E,EAAU6qD,EACRR,EAASlgI,GAOT2gI,EAAgBnvH,IAIpB,OAAOqkE,CACR,CAmBD,SAASsqD,EAGPL,EACAI,EACAU,EACAC,QAAe,IAFfX,IAAAA,EAA2C,SAE5B,IADfU,IAAAA,EAA4C,SAC7B,IAAfC,IAAAA,EAAa,IAEb,IAAIC,EAAe,SACjBC,EACAx4G,EACAy4G,GAEA,IAAI7vC,EAAmC,CACrC6vC,kBACmBzqE,IAAjByqE,EAA6BD,EAAMhwH,MAAQ,GAAKiwH,EAClDC,eAAuC,IAAxBF,EAAME,cACrBT,cAAej4G,EACfw4G,MAAAA,GAGE5vC,EAAK6vC,aAAa70E,WAAW,OAC/BkxE,EACElsC,EAAK6vC,aAAa70E,WAAW00E,GAC7B,wBAAwB1vC,EAAK6vC,aAA7B,wBACMH,EADN,4GAKF1vC,EAAK6vC,aAAe7vC,EAAK6vC,aAAa/9H,MAAM49H,EAAW3gI,SAGzD,IAAI6Q,EAAOmwH,GAAU,CAACL,EAAY1vC,EAAK6vC,eACnCT,EAAaK,EAAY99H,OAAOquF,GAKhC4vC,EAAMlqF,UAAYkqF,EAAMlqF,SAAS32C,OAAS,IAC5Cm9H,GAGkB,IAAhB0D,EAAMx4G,MACN,4FACuCxX,EADvC,MAIFovH,EAAcY,EAAMlqF,SAAUqpF,EAAUK,EAAYxvH,KAKpC,MAAdgwH,EAAMhwH,MAAiBgwH,EAAMx4G,QAIjC23G,EAAS79H,KAAK,CACZ0O,KAAAA,EACA4hE,MAAOwuD,EAAapwH,EAAMgwH,EAAMx4G,OAChCg4G,WAAAA,KAcJ,OAXAT,EAAOhtG,SAAQ,SAACiuG,EAAOx4G,GAAS,IAAA64G,EAE9B,GAAmB,KAAfL,EAAMhwH,MAAe,OAACqwH,EAAAL,EAAMhwH,OAANqwH,EAAY5yE,SAAS,KAExC,KACL6yE,EADKC,EAAAC,EACgBC,EAAwBT,EAAMhwH,OAAnD,QAAAuwH,EAAA5gI,MAAA2gI,EAAAC,EAAA3gI,KAAAc,MAA0D,KAAjDggI,EAATJ,EAAA3/H,MACEo/H,EAAaC,EAAOx4G,EAAOk5G,EAC5B,QAAAj7C,GAAA86C,EAAAviI,EAAAynF,EAAA,SAAA86C,EAAA9yH,GAAA,CACF,MALCsyH,EAAaC,EAAOx4G,MAQjB23G,CACR,CAgBD,SAASsB,EAAwBzwH,GAC/B,IAAIiG,EAAWjG,EAAK/B,MAAM,KAC1B,GAAwB,IAApBgI,EAAS9W,OAAc,MAAO,GAElC,ICpgB+B4uB,EDogB/B4yG,ECngBO,EADwB5yG,EDogBR9X,ICngBO,EAAgB8X,IAAQ,EAA2BA,IAAQ,IDmgBpF6yG,EAADD,EAAC,GAAUE,EAAXF,EAAAz+H,MAAA,GAGA4+H,EAAaF,EAAMG,SAAS,KAE5BC,EAAWJ,EAAMvkH,QAAQ,MAAO,IAEpC,GAAoB,IAAhBwkH,EAAK1hI,OAGP,OAAO2hI,EAAa,CAACE,EAAU,IAAM,CAACA,GAGxC,IAAIC,EAAeR,EAAwBI,EAAK/wH,KAAK,MAEjDq+D,EAAmB,GAqBvB,OAZAA,EAAO7sE,KAAPjC,MAAA8uE,EAAM+yD,EACDD,EAAa91E,KAAK,SAAAg2E,GAAD,MACN,KAAZA,EAAiBH,EAAW,CAACA,EAAUG,GAASrxH,KAAK,IADpD,MAMDgxH,GACF3yD,EAAO7sE,KAAPjC,MAAA8uE,EAAM+yD,EAASD,IAIV9yD,EAAOhjB,KAAK,SAAAu1E,GAAD,OAChB1wH,EAAKo7C,WAAW,MAAqB,KAAbs1E,EAAkB,IAAMA,CAD3C,GAGR,CAaD,IAAMU,EAAU,SACVC,EAAsB,EACtBC,EAAkB,EAClBC,EAAoB,EACpBC,EAAqB,GACrBC,GAAgB,EAChBC,EAAW,SAAA/hI,GAAD,MAAqB,MAANA,CAA/B,EAEA,SAASygI,EAAapwH,EAAcwX,GAClC,IAAIvR,EAAWjG,EAAK/B,MAAM,KACtB0zH,EAAe1rH,EAAS9W,OAS5B,OARI8W,EAASq8C,KAAKovE,KAChBC,GAAgBF,GAGdj6G,IACFm6G,GAAgBL,GAGXrrH,EACJgZ,QAAQ,SAAAtvB,GAAD,OAAQ+hI,EAAQ/hI,EADnB,IAEJ+nH,QACC,SAAC91C,EAAOgwD,GAAR,OACEhwD,GACCwvD,EAAQ75H,KAAKq6H,GACVP,EACY,KAAZO,EACAL,EACAC,EATH,GAUHG,EAEL,CAiBD,SAAShC,EAIPkC,EACApxH,GAOA,IALA,IAAM+uH,EAAeqC,EAAfrC,WAEFsC,EAAgB,CAAC,EACjBC,EAAkB,IAClBjtD,EAA2D,GACtD71E,EAAI,EAAGA,EAAIugI,EAAWrgI,SAAUF,EAAG,CAC1C,IAAImxF,EAAOovC,EAAWvgI,GAClBg8C,EAAMh8C,IAAMugI,EAAWrgI,OAAS,EAChC6iI,EACkB,MAApBD,EACItxH,EACAA,EAASvO,MAAM6/H,EAAgB5iI,SAAW,IAC5CksD,EAAQ42E,EACV,CAAEjyH,KAAMogF,EAAK6vC,aAAcC,cAAe9vC,EAAK8vC,cAAejlF,IAAAA,GAC9D+mF,GAGF,IAAK32E,EAAO,OAAO,KAEnBptD,OAAOe,OAAO8iI,EAAez2E,EAAM62E,QAEnC,IAAIlC,EAAQ5vC,EAAK4vC,MAEjBlrD,EAAQxzE,KAAK,CAEX4gI,OAAQJ,EACRrxH,SAAU0vH,GAAU,CAAC4B,EAAiB12E,EAAM56C,WAC5C0xH,aAAcC,GACZjC,GAAU,CAAC4B,EAAiB12E,EAAM82E,gBAEpCnC,MAAAA,IAGyB,MAAvB30E,EAAM82E,eACRJ,EAAkB5B,GAAU,CAAC4B,EAAiB12E,EAAM82E,eAEvD,CAED,OAAOrtD,CACR,CAwHe,SAAAmtD,EAIdI,EACA5xH,GAEuB,kBAAZ4xH,IACTA,EAAU,CAAEryH,KAAMqyH,EAASnC,eAAe,EAAOjlF,KAAK,IAGxD,IAAAqnF,EAwCF,SACEtyH,EACAkwH,EACAjlF,QAAU,IADVilF,IAAAA,GAAgB,QACN,IAAVjlF,IAAAA,GAAM,GAENshF,EACW,MAATvsH,IAAiBA,EAAK+wH,SAAS,MAAQ/wH,EAAK+wH,SAAS,MACrD,eAAe/wH,EAAf,oCACMA,EAAKqM,QAAQ,MAAO,MAD1B,qIAGsCrM,EAAKqM,QAAQ,MAAO,MAH1D,MAMF,IAAIkmH,EAAuB,GACvBC,EACF,IACAxyH,EACGqM,QAAQ,UAAW,IACnBA,QAAQ,OAAQ,KAChBA,QAAQ,sBAAuB,QAC/BA,QAAQ,aAAa,SAACkC,EAAWkkH,GAEhC,OADAF,EAAWjhI,KAAKmhI,GACT,YACR,IAEDzyH,EAAK+wH,SAAS,MAChBwB,EAAWjhI,KAAK,KAChBkhI,GACW,MAATxyH,GAAyB,OAATA,EACZ,QACA,qBACGirC,EAETunF,GAAgB,QACE,KAATxyH,GAAwB,MAATA,IAQxBwyH,GAAgB,iBAKlB,IAAI5tD,EAAU,IAAI7c,OAAOyqE,EAActC,OAAgB1qE,EAAY,KAEnE,MAAO,CAACof,EAAS2tD,EAClB,CA1F6BG,CAC1BL,EAAQryH,KACRqyH,EAAQnC,cACRmC,EAAQpnF,KAHV0nF,EAAAC,EAAAN,EAAA,GAAK1tD,EAAD+tD,EAAC,GAASJ,EAAVI,EAAC,GAMDt3E,EAAQ56C,EAAS46C,MAAMupB,GAC3B,IAAKvpB,EAAO,OAAO,KAEnB,IAAI02E,EAAkB12E,EAAM,GACxB82E,EAAeJ,EAAgB1lH,QAAQ,UAAW,MAClDwmH,EAAgBx3E,EAAMnpD,MAAM,GAqBhC,MAAO,CACLggI,OArBmBK,EAAW7a,QAC9B,SAAC8H,EAAMiT,EAAWj7G,GAGhB,GAAkB,MAAdi7G,EAAmB,CACrB,IAAIK,EAAaD,EAAcr7G,IAAU,GACzC26G,EAAeJ,EACZ7/H,MAAM,EAAG6/H,EAAgB5iI,OAAS2jI,EAAW3jI,QAC7Ckd,QAAQ,UAAW,KACvB,CAMD,OAJAmzG,EAAKiT,GAoFX,SAAkC9hI,EAAe8hI,GAC/C,IACE,OAAOv7G,mBAAmBvmB,GAC1B,MAAOkB,GAQP,OAPA06H,GACE,EACA,gCAAgCkG,EAAhC,6CACkB9hI,EADlB,iFAEqCkB,EAFrC,MAKKlB,CACR,CACF,CAjGuBoiI,CAChBF,EAAcr7G,IAAU,GACxBi7G,GAEKjT,IAET,CAAC,GAKD/+G,SAAUsxH,EACVI,aAAAA,EACAE,QAAAA,EAEH,CAsDD,SAASzC,EAAgBj/H,GACvB,IACE,OAAOqiI,UAAUriI,GACjB,MAAOkB,GAQP,OAPA06H,GACE,EACA,iBAAiB57H,EAAjB,oHAEekB,EAFf,MAKKlB,CACR,CACF,CAoBe,SAAAu+H,EACdzuH,EACAwuH,GAEA,GAAiB,MAAbA,EAAkB,OAAOxuH,EAE7B,IAAKA,EAAS0c,cAAci+B,WAAW6zE,EAAS9xG,eAC9C,OAAO,KAKT,IAAI81G,EAAahE,EAAS8B,SAAS,KAC/B9B,EAAS9/H,OAAS,EAClB8/H,EAAS9/H,OACT+jI,EAAWzyH,EAASi0B,OAAOu+F,GAC/B,OAAIC,GAAyB,MAAbA,EAEP,KAGFzyH,EAASvO,MAAM+gI,IAAe,GACtC,CA2CD,SAASE,EACPx8B,EACAlmB,EACA2iD,EACApzH,GAEA,MACE,qBAAqB22F,EAArB,2CACQlmB,EAAkB,YAAA7yE,KAAKE,UAC7BkC,GAFF,yCAIQozH,EAJR,2HAOH,CAyBK,SAAUC,GAEdvuD,GACA,OAAOA,EAAQ7lD,QACb,SAACo8B,EAAO7jC,GAAR,OACY,IAAVA,GAAgB6jC,EAAM20E,MAAMhwH,MAAQq7C,EAAM20E,MAAMhwH,KAAK7Q,OAAS,CAF3D,GAIR,CAKK,SAAUmkI,GACdC,EACAC,EACAC,EACAC,GAEA,IAAIjkH,OAFkB,IAAtBikH,IAAAA,GAAiB,GAGI,kBAAVH,EACT9jH,EAAKq9G,EAAUyG,IAIfjH,IAFA78G,EAAEo9G,EAAA,GAAQ0G,IAGJ9yH,WAAagP,EAAGhP,SAASg9C,SAAS,KACtC01E,EAAoB,IAAK,WAAY,SAAU1jH,IAEjD68G,GACG78G,EAAGhP,WAAagP,EAAGhP,SAASg9C,SAAS,KACtC01E,EAAoB,IAAK,WAAY,OAAQ1jH,IAE/C68G,GACG78G,EAAG4gF,SAAW5gF,EAAG4gF,OAAO5yC,SAAS,KAClC01E,EAAoB,IAAK,SAAU,OAAQ1jH,KAI/C,IAGIy2C,EAHAytE,EAAwB,KAAVJ,GAAgC,KAAhB9jH,EAAGhP,SACjCmzH,EAAaD,EAAc,IAAMlkH,EAAGhP,SAaxC,GAAIizH,GAAgC,MAAdE,EACpB1tE,EAAOutE,MACF,CACL,IAAII,EAAqBL,EAAerkI,OAAS,EAEjD,GAAIykI,EAAWx4E,WAAW,MAAO,CAM/B,IALA,IAAI04E,EAAaF,EAAW31H,MAAM,KAKT,OAAlB61H,EAAW,IAChBA,EAAWphI,QACXmhI,GAAsB,EAGxBpkH,EAAGhP,SAAWqzH,EAAWh0H,KAAK,IAC/B,CAIDomD,EAAO2tE,GAAsB,EAAIL,EAAeK,GAAsB,GACvE,CAED,IAAI7zH,WAvJsByP,EAAQskH,QAAkB,IAAlBA,IAAAA,EAAe,KACjD,IAAAC,EAIkB,kBAAPvkH,EAAkBq9G,EAAUr9G,GAAMA,EAHjCmkH,EADRI,EACFvzH,SAAQwzH,EAAAD,EACR3jC,OAAAA,OAAM,IAAA4jC,EAAG,GAFPA,EAAAC,EAAAF,EAGFhf,KAAAA,OAAI,IAAAkf,EAAG,GAAAA,EAGLzzH,EAAWmzH,EACXA,EAAWx4E,WAAW,KACpBw4E,EAWR,SAAyB3D,EAAsB8D,GAC7C,IAAI9tH,EAAW8tH,EAAa1nH,QAAQ,OAAQ,IAAIpO,MAAM,KAYtD,OAXuBgyH,EAAahyH,MAAM,KAEzB8jB,SAAS,SAAA6vG,GACR,OAAZA,EAEE3rH,EAAS9W,OAAS,GAAG8W,EAAS5U,MACb,MAAZugI,GACT3rH,EAAS3U,KAAKsgI,MAIX3rH,EAAS9W,OAAS,EAAI8W,EAASnG,KAAK,KAAO,GACnD,CAxBOq0H,CAAgBP,EAAYG,GAC9BA,EAEJ,MAAO,CACLtzH,SAAAA,EACA4vF,OAAQ+jC,GAAgB/jC,GACxB2kB,KAAMqf,GAAcrf,GAEvB,CAqIYsf,CAAY7kH,EAAIy2C,GAGvBquE,EACFX,GAA6B,MAAfA,GAAsBA,EAAW7C,SAAS,KAEtDyD,GACDb,GAA8B,MAAfC,IAAuBH,EAAiB1C,SAAS,KAQnE,OANG/wH,EAAKS,SAASswH,SAAS,OACvBwD,IAA4BC,IAE7Bx0H,EAAKS,UAAY,KAGZT,CACR,KAiBYmwH,GAAa,SAAAh9G,GAAD,OACvBA,EAAMrT,KAAK,KAAKuM,QAAQ,SAAU,IAAlC,EAKW+lH,GAAqB,SAAA3xH,GAAD,OAC/BA,EAAS4L,QAAQ,OAAQ,IAAIA,QAAQ,OAAQ,IAA7C,EAKW+nH,GAAmB,SAAA/jC,GAAD,OAC5BA,GAAqB,MAAXA,EAEPA,EAAOj1C,WAAW,KAClBi1C,EACA,IAAMA,EAHN,EAFC,EAUMgkC,GAAiB,SAAArf,GAAD,OAC1BA,GAAiB,MAATA,EAAoBA,EAAK55D,WAAW,KAAO45D,EAAO,IAAMA,EAAzC,EADnB,EAgCMyf,GAAP,SAAAC,GAAA9J,EAAA6J,EAAAC,GAAA,IAAAC,EAAAtJ,EAAAoJ,GAAA,SAAAA,IAAA,OAAAG,EAAA,KAAAH,GAAAE,EAAAtlI,MAAA,KAAAH,UAAA,QAAA2lI,EAAAJ,EAAA,EAAA5I,EAAoC33H,QAwPpC,SAAU4gI,GAAqBjjI,GACnC,OACW,MAATA,GACwB,kBAAjBA,EAAM+N,QACe,kBAArB/N,EAAMkjI,YACa,mBAAnBljI,EAAMmjI,UACb,SAAUnjI,CAEb,CEj1BD,IAAMojI,GAAgD,CACpD,OACA,MACA,QACA,UAMIC,IAJuB,IAAIr+C,IAC/Bo+C,IAG0B,CAC1B,OAD2CljI,OAExCkjI,KAEuB,IAAIp+C,IAAgBq+C,IAEpB,IAAIr+C,IAAI,CAAC,IAAK,IAAK,IAAK,IAAK,MACf,IAAIA,IAAI,CAAC,IAAK,MA8BpC,qBAAXnjF,QACoB,qBAApBA,OAAOqB,UACPrB,OAAOqB,SAASC,cAuuDa7D,OAAO,YCz1E7C,IAAMsiB,GACiB,oBAAdxlB,OAAOwlB,GAAoBxlB,OAAOwlB,GAP3C,SAAoBvF,EAAQN,GAC1B,OACGM,IAAMN,IAAY,IAANM,GAAW,EAAIA,IAAM,EAAIN,IAAQM,IAAMA,GAAKN,IAAMA,CAElE,EAOO6tC,GAAwDzD,EAAAA,SAA9C0D,GAA8C1D,EAAAA,UAAnC+sD,GAAmC/sD,EAAAA,gBAAlBmtD,GAAkBntD,EAAAA,cAsHhE,SAASm9E,GAAuBzT,GAC9B,IAAM0T,EAAoB1T,EAAK1e,YACzBqyB,EAAY3T,EAAK/wH,MACvB,IACE,IAAM2kI,EAAYF,IAClB,OAAQ3hH,GAAG4hH,EAAWC,GACtB,MAAOzjI,GACP,OAAO,CACR,CACF,CClImB,qBAAX6B,QACoB,qBAApBA,OAAOqB,UACPrB,OAAOqB,SAASC,cAOuBgjD,EAAtButD,qBAV1B,ICoDagwB,GACXv9E,EAAAA,cAAoD,MAK/C,IAAMw9E,GAAyBx9E,EAAAA,cAEpC,MAKK,IAAMy9E,GAAez9E,EAAAA,cAA2C,MAsChE,IAAM09E,GAAoB19E,EAAAA,cAC/B,MAYK,IAAM29E,GAAkB39E,EAAAA,cAC7B,UAYW49E,GAAe59E,EAAAA,cAAwC,CAClE69E,OAAQ,KACR/wD,QAAS,KAOJ,IAAMgxD,GAAoB99E,EAAAA,cAAyB,6OC3EnD,SAAS+9E,KACd,OAA4C,MAArC/9E,EAAAA,WAAiB29E,GACzB,CAYM,SAASK,KAQd,OANED,MADFE,GAAA,GAOOj+E,EAAAA,WAAiB29E,IAAiBp1H,QAC1C,CAmDM,SAAS21H,KAEZH,MADFE,GAAA,GAOA,IAAAE,EAA8Bn+E,EAAAA,WAAiB09E,IAAzCzG,EAAFkH,EAAElH,SAAU56H,EAAA8hI,EAAA9hI,UACVywE,EAAY9sB,EAAAA,WAAiB49E,IAA7B9wD,QACU2uD,EAAqBuC,KAA/Bv1H,SAEF21H,EAAqBx4H,KAAKE,UAC5Bu4H,GAA2BvxD,GAAS3pB,KAAK,SAAAE,GAAD,OAAWA,EAAM82E,YAAzD,KAGEmE,EAAYt+E,EAAAA,QAAa,GA+C7B,OA9CAA,EAAAA,WAAgB,WACds+E,EAAUxzC,SAAU,KAGW9qC,EAAAA,aAC/B,SAACvoC,EAAiBmsE,GAOhB,QAPkD,IAAlCA,IAAAA,EAA2B,CAAC,GAOvC06C,EAAUxzC,QAEf,GAAkB,kBAAPrzE,EAAX,CAKA,IAAIzP,EAAOszH,GACT7jH,EACA7R,KAAKC,MAAMu4H,GACX3C,EACqB,SAArB73C,EAAQ26C,UAOO,MAAbtH,IACFjvH,EAAKS,SACe,MAAlBT,EAAKS,SACDwuH,EACAkB,GAAU,CAAClB,EAAUjvH,EAAKS,aAG/Bm7E,EAAQvvE,QAAUhY,EAAUgY,QAAUhY,EAAU/C,MACjD0O,EACA47E,EAAQvuC,MACRuuC,EAvBD,MAFCvnF,EAAUw6H,GAAGp/G,KA4BjB,CAACw/G,EAAU56H,EAAW+hI,EAAoB3C,GAI7C,CAED,IAAM+C,GAAgBx+E,EAAAA,cAA6B,MAiC5C,SAASy+E,KAKd,IAAM3xD,EAAY9sB,EAAAA,WAAiB49E,IAA7B9wD,QACF4xD,EAAa5xD,EAAQA,EAAQ31E,OAAS,GAC1C,OAAOunI,EAAcA,EAAWxE,OAAiB,CAAC,CACnD,CAgMD,SAASyE,KACP,IAAI9kI,EA4WC,WAAkC,IAAA+kI,EACnC/kI,EAAQmmD,EAAAA,WAAiB89E,IACzBzoF,EAAQwpF,GAAmBC,GAAoBC,eAC/CC,EAAUC,GAAkBH,GAAoBC,eAIpD,GAAIllI,EACF,OAAOA,EAIT,OAAO,OAAP+kI,EAAOvpF,EAAM6pF,aAAN,EAAAN,EAAeI,EACvB,CAzXaG,GACRvxB,EAAUkvB,GAAqBjjI,GAC5BA,EAAM+N,OAAU,IAAA/N,EAAMkjI,WACzBljI,aAAiBqC,MACjBrC,EAAM+zG,QACNhoG,KAAKE,UAAUjM,GACf21D,EAAQ31D,aAAiBqC,MAAQrC,EAAM21D,MAAQ,KAC/C4vE,EAAY,yBACZC,EAAY,CAAE96E,QAAS,SAAU7X,gBAAiB0yF,GAkBtD,OACEp/E,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,2CACAA,EAAAA,cAAA,MAAI/+C,MAAO,CAAEknB,UAAW,WAAaylF,GACpCp+C,EAAQxP,EAAAA,cAAA,OAAK/+C,MAAOo+H,GAAY7vE,GAAe,KAnBtC,KAuBf,KA8LI8vE,GAKAR,GArLQS,GAAN,SAAAC,GAAA5M,EAAA2M,EAAAC,GAAA,IAAA7C,EAAAtJ,EAAAkM,GAIL,SAAAA,EAAYljH,GAAiC,IAAAojH,EAE3C,OAF2C7C,EAAA,KAAA2C,IAC3CE,EAAA9C,EAAAnmI,KAAA,KAAM6lB,IACDg5B,MAAQ,CACX9sC,SAAU8T,EAAM9T,SAChB1O,MAAOwiB,EAAMxiB,OAFf4lI,CAID,CAiCA,OAjCA5C,EAAA0C,EAAA,EAAAt6F,IAAA,oBAAAtsC,MAmCD,SAAkBkB,EAAY6lI,GAC5B90G,QAAQ/wB,MACN,wDACAA,EACA6lI,EAEH,IAAAz6F,IAAA,SAAAtsC,MAED,WACE,OAAO/B,KAAKy+C,MAAMx7C,MAChBmmD,EAAAA,cAAC49E,GAAa7W,SAAd,CAAuBpuH,MAAO/B,KAAKylB,MAAMsjH,cACvC3/E,EAAAA,cAAC89E,GAAkB/W,SAAnB,CACEpuH,MAAO/B,KAAKy+C,MAAMx7C,MAClBi0C,SAAUl3C,KAAKylB,MAAMqrC,aAIzB9wD,KAAKylB,MAAMyxB,QAEd,MAAA7I,IAAA,2BAAAtsC,MApD8B,SAACkB,GAC9B,MAAO,CAAEA,MAAOA,EACjB,IAAAorC,IAAA,2BAAAtsC,MAE8B,SAC7B0jB,EACAg5B,GAUA,OAAIA,EAAM9sC,WAAa8T,EAAM9T,SACpB,CACL1O,MAAOwiB,EAAMxiB,MACb0O,SAAU8T,EAAM9T,UAQb,CACL1O,MAAOwiB,EAAMxiB,OAASw7C,EAAMx7C,MAC5B0O,SAAU8sC,EAAM9sC,SAEnB,KAAAg3H,CAAA,CA3CI,CAAkCv/E,EAAAA,WAyEzC,SAAS4/E,GAAqE7K,GAAA,IAArD4K,EAAqD5K,EAArD4K,aAAct8E,EAAuC0xE,EAAvC1xE,MAAOvV,EAAgCinF,EAAhCjnF,SACxC+xF,EAAoB7/E,EAAAA,WAAiBu9E,IAazC,OAREsC,GACAA,EAAkBC,QAClBD,EAAkBE,gBACjB18E,EAAM20E,MAAMgI,cAAgB38E,EAAM20E,MAAMiI,iBAEzCJ,EAAkBE,cAAcG,2BAA6B78E,EAAM20E,MAAMtyH,IAIzEs6C,EAAAA,cAAC49E,GAAa7W,SAAd,CAAuBpuH,MAAOgnI,GAC3B7xF,EAGN,CAEM,SAASqyF,GACdrzD,EACAszD,EACAC,GAEA,QAD2B,IAF3BD,IAAAA,EAA8B,IAGf,MAAXtzD,EAAiB,CACnB,SAAIuzD,IAAAA,EAAiBnB,OAKnB,OAAO,KAFPpyD,EAAUuzD,EAAgBvzD,OAI7B,CAED,IAAIwzD,EAAkBxzD,EAGlBoyD,EAAS,MAAAmB,OAAA,EAAAA,EAAiBnB,OAC9B,GAAc,MAAVA,EAAgB,CAClB,IAAIqB,EAAaD,EAAgB3hB,WAC9B,SAAA75G,GAAD,OAAOA,EAAEkzH,MAAMtyH,KAAM,MAAAw5H,OAAA,EAAAA,EAASp6H,EAAEkzH,MAAMtyH,IADvB,IAIf66H,GAAc,GADhBtC,GAAA,GAIAqC,EAAkBA,EAAgBpmI,MAChC,EACAyF,KAAKS,IAAIkgI,EAAgBnpI,OAAQopI,EAAa,GAEjD,CAED,OAAOD,EAAgBE,aAAY,SAAC3C,EAAQx6E,EAAO7jC,GACjD,IAAI3lB,EAAQwpD,EAAM20E,MAAMtyH,GAAZ,MAAiBw5H,OAAjB,EAAiBA,EAAS77E,EAAM20E,MAAMtyH,IAAM,KAEpDs6H,EAAuC,KACvCK,IAEAL,EADE38E,EAAM20E,MAAMiI,cACCjgF,EAAAA,cAACqD,EAAM20E,MAAMiI,cAA5B,MACS58E,EAAM20E,MAAMgI,aACN38E,EAAM20E,MAAMgI,aAEZhgF,EAAAA,cAAC2+E,GAAhB,OAGJ,IAAI7xD,EAAUszD,EAAcrmI,OAAOumI,EAAgBpmI,MAAM,EAAGslB,EAAQ,IAChEihH,EAAc,WAChB,IAAI3yF,EAA4B+vF,EAQhC,OAPIhkI,EACFi0C,EAAWkyF,EACF38E,EAAM20E,MAAMhyB,UACrBl4D,EAAWkS,EAAAA,cAACqD,EAAM20E,MAAMhyB,UAAxB,MACS3iD,EAAM20E,MAAMzpG,UACrBuf,EAAWuV,EAAM20E,MAAMzpG,SAGvByxB,EAAAA,cAAC4/E,GAAD,CACEv8E,MAAOA,EACPs8E,aAAc,CAAE9B,OAAAA,EAAQ/wD,QAAAA,GACxBh/B,SAAUA,GAGf,EAID,OAAOuyF,IACJh9E,EAAM20E,MAAMiI,eAAiB58E,EAAM20E,MAAMgI,cAA0B,IAAVxgH,GAC1DwgC,EAAAA,cAACu/E,GAAD,CACEh3H,SAAU83H,EAAgB93H,SAC1Bm/C,UAAWs4E,EACXnmI,MAAOA,EACPi0C,SAAU2yF,IACVd,aAAc,CAAE9B,OAAQ,KAAM/wD,QAAAA,KAGhC2zD,MAED,KACJ,CA8BD,SAAS5B,GAAmB6B,GAC1B,IAAIrrF,EAAQ2K,EAAAA,WAAiBw9E,IAE7B,OADUnoF,GAAV4oF,GAAA,GACO5oF,CACR,CAQD,SAAS4pF,GAAkByB,GACzB,IAAI1I,EAPN,SAAyB0I,GACvB,IAAI1I,EAAQh4E,EAAAA,WAAiB49E,IAE7B,OADU5F,GAAViG,GAAA,GACOjG,CACR,CAGa2I,GACRC,EAAY5I,EAAMlrD,QAAQkrD,EAAMlrD,QAAQ31E,OAAS,GAKrD,OAHEypI,EAAU5I,MAAMtyH,IADlBu4H,GAAA,GAIO2C,EAAU5I,MAAMtyH,EACxB,WAhDI45H,GAAAA,EAAA,wBAAAA,EAAA,iCAAAA,KAAAA,GAAA,cAKAR,GAAAA,EAAA,wBAAAA,EAAA,8BAAAA,EAAA,8BAAAA,EAAA,8BAAAA,EAAA,8BAAAA,EAAA,wCAAAA,EAAA,wBAAAA,EAAA,iCAAAA,KAAAA,GAAA,KAyML,IClcK+B,GA3ME,SAASC,GAAOzkH,GACrB,ODKK,SAAmBirB,GACxB,IAAIu2F,EAAS79E,EAAAA,WAAiB49E,IAAcC,OAC5C,OAAIA,EAEA79E,EAAAA,cAACw+E,GAAczX,SAAf,CAAwBpuH,MAAO2uC,GAAUu2F,GAGtCA,CACR,CCbQkD,CAAU1kH,EAAMirB,QACxB,CA+CM,SAAS05F,GAAMC,GACpBhD,GAAA,EAKD,CAoBM,SAASiD,GAO2BC,GAAA,IAAAC,EAAAD,EANzClK,SAAUoK,OAAY,IAAAD,EAAG,IADJA,EAAAE,EAOoBH,EALzCrzF,SAAAA,OAAQ,IAAAwzF,EAAG,KAFUA,EAGXC,EAI+BJ,EAJzC54H,SAAQi5H,EAIiCL,EAHzCM,eAAAA,OAAc,IAAAD,EAAGzU,EAAAA,IAJIyU,EAKrBnlI,EAEyC8kI,EAFzC9kI,UALqBqlI,EAOoBP,EADzCrB,OAAQ6B,OAAU,IAAAD,GAAGA,EAGlB3D,MADHE,GAAA,GAQA,IAAIhH,EAAWoK,EAAahtH,QAAQ,OAAQ,KACxCutH,EAAoB5hF,EAAAA,SACtB,iBAAO,CAAEi3E,SAAAA,EAAU56H,UAAAA,EAAWyjI,OAAQ6B,EAAtC,GACA,CAAC1K,EAAU56H,EAAWslI,IAGI,kBAAjBJ,IACTA,EAAezM,EAAUyM,IAG3B,IAAAM,EAMIN,EANJO,EAAAD,EACEp5H,SAAAA,OAAQ,IAAAq5H,EAAG,IADTA,EAAAC,EAAAF,EAEFxpC,OAAAA,OAAM,IAAA0pC,EAAG,GAFPA,EAAAC,EAAAH,EAGF7kB,KAAAA,OAAI,IAAAglB,EAAG,GAHLA,EAAAC,EAAAJ,EAIFxsF,MAAAA,OAAK,IAAA4sF,EAAG,KAJNA,EAAAC,EAAAL,EAKF58F,IAAAA,OAAG,IAAAi9F,EAAG,UAAAA,EAGJC,EAAkBniF,EAAAA,SAAc,WAClC,IAAIoiF,EAAmBlL,EAAczuH,EAAUwuH,GAE/C,OAAwB,MAApBmL,EACK,KAGF,CACL75H,SAAU,CACRE,SAAU25H,EACV/pC,OAAAA,EACA2kB,KAAAA,EACA3nE,MAAAA,EACApQ,IAAAA,GAEFw8F,eAAAA,EAEH,GAAE,CAACxK,EAAUxuH,EAAU4vF,EAAQ2kB,EAAM3nE,EAAOpQ,EAAKw8F,IASlD,OAAuB,MAAnBU,EACK,KAIPniF,EAAAA,cAAC09E,GAAkB3W,SAAnB,CAA4BpuH,MAAOipI,GACjC5hF,EAAAA,cAAC29E,GAAgB5W,SAAjB,CAA0Bj5E,SAAUA,EAAUn1C,MAAOwpI,IAG1D,CAaM,SAASE,GAG2BC,GAAA,IAFzCx0F,EAEyCw0F,EAFzCx0F,SACAvlC,EACyC+5H,EADzC/5H,SAEIs3H,EAAoB7/E,EAAAA,WAAiBu9E,IAQzC,ODrGK,SACLxG,EACAC,GAGE+G,MADFE,GAAA,GAOA,IA8CI11H,EA9CElM,EAAc2jD,EAAAA,WAAiB09E,IAA/BrhI,UACFkmI,EAAyBviF,EAAAA,WAAiBw9E,IAC/B4C,EAAkBpgF,EAAAA,WAAiB49E,IAA5C9wD,QACF4xD,EAAa0B,EAAcA,EAAcjpI,OAAS,GAClDqrI,EAAe9D,EAAaA,EAAWxE,OAAS,CAAC,EAEjDuI,GADiB/D,GAAaA,EAAWj2H,SACpBi2H,EAAaA,EAAWvE,aAAe,KAsC5DuI,GArCchE,GAAcA,EAAW1G,MAqCjBgG,MAG1B,GAAIhH,EAAa,KAAA2L,EACXC,EACqB,kBAAhB5L,EAA2BlC,EAAUkC,GAAeA,EAGpC,MAAvByL,IACE,OAAAE,EAAAC,EAAkBn6H,eAAlB,EAAAk6H,EAA4Bv/E,WAAWq/E,KAF3CxE,GAAA,GASA11H,EAAWq6H,CACZ,MACCr6H,EAAWm6H,EAGb,IAAIj6H,EAAWF,EAASE,UAAY,IAMhCqkE,EAAUgqD,EAAYC,EAAQ,CAAEtuH,SAJX,MAAvBg6H,EACIh6H,EACAA,EAASvO,MAAMuoI,EAAmBtrI,SAAW,MAoB/CmpI,EAAkBH,GACpBrzD,GACEA,EAAQ3pB,KAAK,SAAAE,GAAD,OACVptD,OAAOe,OAAO,CAAC,EAAGqsD,EAAO,CACvB62E,OAAQjkI,OAAOe,OAAO,CAAC,EAAGwrI,EAAcn/E,EAAM62E,QAC9CzxH,SAAU0vH,GAAU,CAClBsK,EAEApmI,EAAUm6H,eACNn6H,EAAUm6H,eAAenzE,EAAM56C,UAAUA,SACzC46C,EAAM56C,WAEZ0xH,aACyB,MAAvB92E,EAAM82E,aACFsI,EACAtK,GAAU,CACRsK,EAEApmI,EAAUm6H,eACNn6H,EAAUm6H,eAAenzE,EAAM82E,cAAc1xH,SAC7C46C,EAAM82E,gBAlBtB,IAsBFiG,EACAmC,QAA0B/0E,GAM5B,OAAIwpE,GAAesJ,EAEftgF,EAAAA,cAAC29E,GAAgB5W,SAAjB,CACEpuH,MAAO,CACL4P,SAAQssH,GAAA,CACNpsH,SAAU,IACV4vF,OAAQ,GACR2kB,KAAM,GACN3nE,MAAO,KACPpQ,IAAK,WACF18B,GAELk5H,eAAgB1U,EAAAA,MAGjBuT,GAKAA,CACR,CCnDQuC,CAHLhD,IAAsB/xF,EACjB+xF,EAAkBiD,OAAO/L,OAC1BgM,GAAyBj1F,GACNvlC,EAC1B,WAiCIs4H,GAAAA,EAAAA,EAAA,qBAAAA,EAAAA,EAAA,qBAAAA,EAAAA,EAAA,kBAAAA,KAAAA,GAAA,KAML,IAAMmC,GAAsB,IAAI1qI,SAAQ,WAAO,IAEd0nD,EAAAA,UAkH1B,SAAS+iF,GACdj1F,EACAgqF,QACe,IADfA,IAAAA,EAAuB,IAEvB,IAAIf,EAAwB,GA4D5B,OA1DA/2E,EAAAA,SAAAA,QAAuBlS,GAAU,SAACvf,EAAS/O,GACzC,GAAKwgC,EAAAA,eAAqBzxB,GAM1B,GAAIA,EAAQzsB,OAASk+C,EAAAA,SAArB,CAUEzxB,EAAQzsB,OAASk/H,IADnB/C,GAAA,GAQG1vG,EAAQlS,MAAMmD,OAAU+O,EAAQlS,MAAMyxB,UADzCmwF,GAAA,GAKA,IAAIgF,EAAW,GAAHlpI,OAAAm/H,EAAOpB,GAAJ,CAAgBt4G,IAC3Bw4G,EAAqB,CACvBtyH,GAAI6oB,EAAQlS,MAAM3W,IAAMu9H,EAASn7H,KAAK,KACtCowH,cAAe3pG,EAAQlS,MAAM67G,cAC7B3pG,QAASA,EAAQlS,MAAMkS,QACvBy3E,UAAWz3E,EAAQlS,MAAM2pF,UACzBxmF,MAAO+O,EAAQlS,MAAMmD,MACrBxX,KAAMumB,EAAQlS,MAAMrU,KACpBk7H,OAAQ30G,EAAQlS,MAAM6mH,OACtB34B,OAAQh8E,EAAQlS,MAAMkuF,OACtBy1B,aAAczxG,EAAQlS,MAAM2jH,aAC5BC,cAAe1xG,EAAQlS,MAAM4jH,cAC7BkD,iBACiC,MAA/B50G,EAAQlS,MAAM4jH,eACgB,MAA9B1xG,EAAQlS,MAAM2jH,aAChBoD,iBAAkB70G,EAAQlS,MAAM+mH,iBAChChS,OAAQ7iG,EAAQlS,MAAM+0G,OACtB7J,KAAMh5F,EAAQlS,MAAMkrG,MAGlBh5F,EAAQlS,MAAMyxB,WAChBkqF,EAAMlqF,SAAWi1F,GACfx0G,EAAQlS,MAAMyxB,SACdm1F,IAIJlM,EAAOz9H,KAAK0+H,EAzCX,MALCjB,EAAOz9H,KAAKjC,MACV0/H,EACAgM,GAAyBx0G,EAAQlS,MAAMyxB,SAAUgqF,OA+ChDf,CACR,iCCtmBD,GARgB,SAAC16G,GACf,OACEgnH,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAx1F,UACEu1F,EAAAA,GAAAA,KAAA,MAAI7gG,UAAU,eAAcsL,SAAEzxB,EAAMknH,eAG1C,sFCHA,IAAIC,GAJJ,SAA0B/4E,GACxBA,GACF,EAMag5E,GAAW,WAAH,OAASD,EAAK,ECRtBE,IAAiC9c,EAAAA,EAAAA,eAAc,MCkBrD,SAAS+c,KAOd,OANqB/2B,EAAAA,EAAAA,YAAW82B,GAOlC,CC3BO,IAAME,GAAiB,WAC5B,MAAM,IAAI1nI,MAAM,wBAClB,ECEIytH,GAAmCia,GAKjCC,GAAc,SAACzsI,EAAG0e,GAAC,OAAK1e,IAAM0e,CAAC,EAS9B,SAASguH,KAAgD,IAA7Bx8F,EAAOpwC,UAAAC,OAAA,QAAAq2D,IAAAt2D,UAAA,GAAAA,UAAA,GAAGwsI,GACrCC,EAAkBr8F,IAAYo8F,GAAoBK,GAAyB,kBAAMn3B,EAAAA,EAAAA,YAAWtlE,EAAQ,EAC1G,OAAO,SAAqB08F,GAAoC,IAA1BC,EAAU/sI,UAAAC,OAAA,QAAAq2D,IAAAt2D,UAAA,GAAAA,UAAA,GAAG2sI,GAejD,IAAAK,EAIIP,IAHFQ,EAAKD,EAALC,MACAC,EAAYF,EAAZE,aACAC,EAAcH,EAAdG,eAEIC,EAAgB3a,GAAiCya,EAAaG,aAAcJ,EAAMK,SAAUH,GAAkBF,EAAMK,SAAUR,EAAUC,GAE9I,OADA92B,EAAAA,EAAAA,eAAcm3B,GACPA,CACT,CACF,CAyBO,IAAMG,GAA2BX,uDCGxC,IAAMY,GAAgB,CACpBC,OAAM,WAAI,EAEVlrI,IAAK,iBAAM,EAAE,GAER,SAASmrI,GAAmBT,EAAOU,GACxC,IAAIC,EACAnsC,EAAY+rC,GAWhB,SAASK,IACHX,EAAaY,eACfZ,EAAaY,eAEjB,CAMA,SAASC,IACFH,IACHA,EAAcD,EAAYA,EAAUN,aAAaQ,GAAuBZ,EAAMe,UAAUH,GACxFpsC,EAnGN,WACE,IAAM6qC,EAAQC,KACV7K,EAAQ,KACRhnB,EAAO,KACX,MAAO,CACLiL,MAAK,WACH+b,EAAQ,KACRhnB,EAAO,IACT,EAEA+yB,OAAM,WACJnB,GAAM,WAGJ,IAFA,IAAI9lC,EAAWk7B,EAERl7B,GACLA,EAASjzC,WACTizC,EAAWA,EAASllG,IAExB,GACF,EAEAiB,IAAG,WAID,IAHA,IAAIk/F,EAAY,GACZ+E,EAAWk7B,EAERl7B,GACL/E,EAAUr/F,KAAKokG,GACfA,EAAWA,EAASllG,KAGtB,OAAOmgG,CACT,EAEAusC,UAAS,SAACz6E,GACR,IAAI06E,GAAe,EACfznC,EAAWkU,EAAO,CACpBnnD,SAAAA,EACAjyD,KAAM,KACN4yH,KAAMxZ,GASR,OANIlU,EAAS0tB,KACX1tB,EAAS0tB,KAAK5yH,KAAOklG,EAErBk7B,EAAQl7B,EAGH,WACAynC,GAA0B,OAAVvM,IACrBuM,GAAe,EAEXznC,EAASllG,KACXklG,EAASllG,KAAK4yH,KAAO1tB,EAAS0tB,KAE9BxZ,EAAOlU,EAAS0tB,KAGd1tB,EAAS0tB,KACX1tB,EAAS0tB,KAAK5yH,KAAOklG,EAASllG,KAE9BogI,EAAQl7B,EAASllG,KAErB,CACF,EAGJ,CAiCkB4sI,GAEhB,CAWA,IAAMhB,EAAe,CACnBG,aApCF,SAAsB7mC,GAEpB,OADAunC,IACOtsC,EAAUusC,UAAUxnC,EAC7B,EAkCE2nC,iBAhCF,WACE1sC,EAAUgsC,QACZ,EA+BEI,oBAAAA,EACAI,aAxBF,WACE,OAAOhS,QAAQ2R,EACjB,EAuBEG,aAAAA,EACAK,eAfF,WACMR,IACFA,IACAA,OAAct3E,EACdmrC,EAAUkkB,QACVlkB,EAAY+rC,GAEhB,EASEa,aAAc,kBAAM5sC,CAAS,GAE/B,OAAOyrC,CACT,CCpHO,IACMoB,KADiC,qBAAX9pI,QAAqD,qBAApBA,OAAOqB,UAAqE,qBAAlCrB,OAAOqB,SAASC,eACzE+vG,EAAAA,gBAAkBrpD,EAAAA,UCgCvE,OAtCA,SAAiBqxE,GAKd,IAJDoP,EAAKpP,EAALoP,MACA78F,EAAOytF,EAAPztF,QACAwG,EAAQinF,EAARjnF,SACA23F,EAAW1Q,EAAX0Q,YAEMC,GAAe14B,EAAAA,EAAAA,UAAQ,WAC3B,IAAMo3B,EAAeQ,GAAmBT,GACxC,MAAO,CACLA,MAAAA,EACAC,aAAAA,EACAC,eAAgBoB,EAAc,kBAAMA,CAAW,OAAGj4E,EAEtD,GAAG,CAAC22E,EAAOsB,IACLE,GAAgB34B,EAAAA,EAAAA,UAAQ,kBAAMm3B,EAAMK,UAAU,GAAE,CAACL,IACvDqB,IAA0B,WACxB,IACEpB,EACEsB,EADFtB,aASF,OAPAA,EAAaY,cAAgBZ,EAAaiB,iBAC1CjB,EAAaa,eAETU,IAAkBxB,EAAMK,YAC1BJ,EAAaiB,mBAGR,WACLjB,EAAakB,iBACblB,EAAaY,mBAAgBx3E,CAC/B,CACF,GAAG,CAACk4E,EAAcC,IAClB,IAAM5X,EAAUzmF,GAAWo8F,GAE3B,OAAoB1jF,EAAAA,cAAoB+tE,EAAQhH,SAAU,CACxDpuH,MAAO+sI,GACN53F,EACL,EC/BO,SAAS83F,KAA6C,IAA7Bt+F,EAAOpwC,UAAAC,OAAA,QAAAq2D,IAAAt2D,UAAA,GAAAA,UAAA,GAAGwsI,GAClCC,EACNr8F,IAAYo8F,GAAoBK,GAAyB,kBAAMn3B,EAAAA,EAAAA,YAAWtlE,EAAQ,EAClF,OAAO,WAKL,OAFIq8F,IADFQ,KAIJ,CACF,CAiBO,IAAM0B,GAAwBD,KC5B9B,SAASE,KAAgD,IAA7Bx+F,EAAOpwC,UAAAC,OAAA,QAAAq2D,IAAAt2D,UAAA,GAAAA,UAAA,GAAGwsI,GACrCmC,EACNv+F,IAAYo8F,GAAoBqC,GAAkBH,GAAgBt+F,GAClE,OAAO,WAGL,OAFcu+F,IAEDl7B,QACf,CACF,CAuBO,ITjCiBq7B,GSiCXC,GAA2BH,MLnCH,SAAA5pG,GACnCytF,GAAmCztF,CACrC,CMEAgqG,CAAsBvc,GAAAA,kCCUW,SAAAztF,GACRA,CACzB,CDXAiqG,CAAkB54B,GAAAA,sBVHMy4B,GUMfxC,GAAAA,wBVN2BA,GAAQwC,GYPrC,IAAMI,GAAiB,SAACtkI,GAC3B,MAAa,aAATA,EACK,CACLukI,YAAa,iFACbC,UAAW,CACTpkG,MAAO,sBACPjS,QAAS,kYAEXs2G,oBAAqB,CACnBrkG,MAAO,gCACPjS,QAAS,kOAEXu2G,kBAAmB,CACjBtkG,MAAO,qBACPjS,QAAS,uaAEXw2G,UAAW,oEACXC,kBAAmB,+CACnBC,uBAAwB,saACxBC,cAAe,uBACfC,oBAAqB,mEACrBC,WAAY,mEACZC,eAAgB,gGAEhBC,UAAW,sBACXC,WAAY,UACZC,SAAU,mFACVC,iBAAkB,wCAEF,UAATrlI,EACF,CACLukI,YAAa,0BACbC,UAAW,CACTpkG,MAAO,mBACPjS,QAAS,uXAEXs2G,oBAAqB,CACnBrkG,MAAO,6BACPjS,QAAS,gLAEXu2G,kBAAmB,CACjBtkG,MAAO,kBACPjS,QAAS,qXAEXw2G,UAAW,mEACXC,kBAAmB,+CACnBC,uBAAwB,saACxBC,cAAe,wBACfC,oBAAqB,yEACrBC,WAAY,2DACZC,eAAgB,8EAEhBC,UAAW,sBACXC,WAAY,UACZC,SAAU,wCACVC,iBAAkB,qCAGb,IAEX,ECnBF,GAnCgB,SAAC9qH,GAAW,IAAD+qH,EAEuBC,EAAAzM,GAAdn3E,EAAAA,EAAAA,WAAS,GAAK,GAG1C6jF,GAHUD,EAAA,GAAcA,EAAA,GAGK,QAArBD,EADG3C,IAAY,SAACpvF,GAAK,OAAKA,CAAK,IACnBkyF,iBAAS,IAAAH,OAAA,EAAlBA,EAAoBI,WAepC,OAAiB,IAAbF,GAAkC,SAAbA,EACjB,MAMPjE,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAx1F,UACEu1F,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,UAASsL,UACtBu1F,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,WAAWzkC,IAAKqoI,GAAe/pH,EAAMorH,SAASpB,YAAaqB,IAAI,QAItF,ECrCe,SAAS99H,GAAKsyB,EAAIyrG,GAC/B,OAAO,WACL,OAAOzrG,EAAG7kC,MAAMswI,EAASzwI,UAC3B,CACF,CCAA,IAGgB+yB,GAHT1mB,GAAYtN,OAAOK,UAAnBiN,SACAwkD,GAAkB9xD,OAAlB8xD,eAED6/E,IAAU39G,GAGbh0B,OAAOa,OAAO,MAHQ,SAAA+wI,GACrB,IAAMC,EAAMvkI,GAAS/M,KAAKqxI,GAC1B,OAAO59G,GAAM69G,KAAS79G,GAAM69G,GAAOA,EAAI5tI,MAAM,GAAI,GAAGirB,cACxD,GAEM4iH,GAAa,SAACjmI,GAElB,OADAA,EAAOA,EAAKqjB,cACL,SAAC0iH,GAAK,OAAKD,GAAOC,KAAW/lI,CAAI,CAC1C,EAEMkmI,GAAa,SAAAlmI,GAAI,OAAI,SAAA+lI,GAAK,cAAWA,IAAU/lI,CAAI,GASlD4oD,GAAWt0D,MAAXs0D,QASDM,GAAcg9E,GAAW,aAqB/B,IAAMC,GAAgBF,GAAW,eA2BjC,IAAMt4D,GAAWu4D,GAAW,UAQtBr4E,GAAaq4E,GAAW,YASxB/8E,GAAW+8E,GAAW,UAStBp9E,GAAW,SAACi9E,GAAK,OAAe,OAAVA,GAAmC,kBAAVA,CAAkB,EAiBjEK,GAAgB,SAACprG,GACrB,GAAoB,WAAhB8qG,GAAO9qG,GACT,OAAO,EAGT,IAAMxmC,EAAYyxD,GAAejrB,GACjC,OAAsB,OAAdxmC,GAAsBA,IAAcL,OAAOK,WAAkD,OAArCL,OAAO8xD,eAAezxD,OAA0B6C,OAAOwjH,eAAe7/E,MAAU3jC,OAAOC,YAAY0jC,EACrK,EASMouB,GAAS68E,GAAW,QASpBI,GAASJ,GAAW,QASpBK,GAASL,GAAW,QASpBM,GAAaN,GAAW,YAkCxBO,GAAoBP,GAAW,mBA2BrC,SAASh+G,GAAQghC,EAAK7uB,GAA+B,IAM/CjlC,EACAuD,EAP6C+tI,GAAErxI,UAAAC,OAAA,QAAAq2D,IAAAt2D,UAAA,GAAAA,UAAA,GAAJ,CAAC,GAAvBsxI,WAAAA,OAAU,IAAAD,GAAQA,EAE3C,GAAY,OAARx9E,GAA+B,qBAARA,EAa3B,GALmB,kBAARA,IAETA,EAAM,CAACA,IAGLL,GAAQK,GAEV,IAAK9zD,EAAI,EAAGuD,EAAIuwD,EAAI5zD,OAAQF,EAAIuD,EAAGvD,IACjCilC,EAAG1lC,KAAK,KAAMu0D,EAAI9zD,GAAIA,EAAG8zD,OAEtB,CAEL,IAEI9lB,EAFEqjB,EAAOkgF,EAAavyI,OAAO6xD,oBAAoBiD,GAAO90D,OAAOqyD,KAAKyC,GAClE+C,EAAMxF,EAAKnxD,OAGjB,IAAKF,EAAI,EAAGA,EAAI62D,EAAK72D,IACnBguC,EAAMqjB,EAAKrxD,GACXilC,EAAG1lC,KAAK,KAAMu0D,EAAI9lB,GAAMA,EAAK8lB,EAEjC,CACF,CAEA,SAAS09E,GAAQ19E,EAAK9lB,GACpBA,EAAMA,EAAI9f,cAIV,IAHA,IAEIujH,EAFEpgF,EAAOryD,OAAOqyD,KAAKyC,GACrB9zD,EAAIqxD,EAAKnxD,OAENF,KAAM,GAEX,GAAIguC,KADJyjG,EAAOpgF,EAAKrxD,IACKkuB,cACf,OAAOujH,EAGX,OAAO,IACT,CAEA,IAAMC,GAEsB,qBAAfltI,WAAmCA,WACvB,qBAATG,KAAuBA,KAA0B,qBAAXF,OAAyBA,OAASC,OAGlFitI,GAAmB,SAACthG,GAAO,OAAM0jB,GAAY1jB,IAAYA,IAAYqhG,EAAO,EAoDlF,IA8HsBE,GAAhBrrB,IAAgBqrB,GAKG,qBAAfj0F,YAA8BmT,GAAenT,YAH9C,SAAAizF,GACL,OAAOgB,IAAchB,aAAiBgB,EACxC,GA4CIC,GAAaf,GAAW,mBAWxBxxI,GAAkB,SAAA4qI,GAAA,IAAE5qI,EAAmEN,OAAOK,UAA1EC,eAAc,OAAM,SAACw0D,EAAKj8B,GAAI,OAAKv4B,EAAeC,KAAKu0D,EAAKj8B,EAAK,EAAnE,GASlBi6G,GAAWhB,GAAW,UAEtBiB,GAAoB,SAACj+E,EAAKk+E,GAC9B,IAAMC,EAAcjzI,OAAOkzI,0BAA0Bp+E,GAC/Cq+E,EAAqB,CAAC,EAE5Br/G,GAAQm/G,GAAa,SAACzgF,EAAYt8C,IACO,IAAnC88H,EAAQxgF,EAAYt8C,EAAM4+C,KAC5Bq+E,EAAmBj9H,GAAQs8C,EAE/B,IAEAxyD,OAAOs7C,iBAAiBwZ,EAAKq+E,EAC/B,EAsDMC,GAAQ,6BAERC,GAAQ,aAERC,GAAW,CACfD,MAAAA,GACAD,MAAAA,GACAG,YAAaH,GAAQA,GAAMp2E,cAAgBq2E,IAwB7C,IA+BA,IACE5+E,QAAAA,GACAu9E,cAAAA,GACAwB,SAzmBF,SAAkB3sG,GAChB,OAAe,OAARA,IAAiBkuB,GAAYluB,IAA4B,OAApBA,EAAIjmC,cAAyBm0D,GAAYluB,EAAIjmC,cACpF84D,GAAW7yB,EAAIjmC,YAAY4yI,WAAa3sG,EAAIjmC,YAAY4yI,SAAS3sG,EACxE,EAumBE4sG,WA3diB,SAAC7B,GAClB,IAAMxN,EAAU,oBAChB,OAAOwN,IACgB,oBAAb8B,UAA2B9B,aAAiB8B,UACpDpmI,GAAS/M,KAAKqxI,KAAWxN,GACxB1qE,GAAWk4E,EAAMtkI,WAAaskI,EAAMtkI,aAAe82H,EAExD,EAqdEuP,kBArlBF,SAA2B9sG,GAOzB,MAL4B,qBAAhB8gF,aAAiCA,YAAYisB,OAC9CjsB,YAAYisB,OAAO/sG,GAElBA,GAASA,EAAI6gF,QAAYsqB,GAAcnrG,EAAI6gF,OAGzD,EA8kBEluC,SAAAA,GACAxkB,SAAAA,GACA6+E,UAriBgB,SAAAjC,GAAK,OAAc,IAAVA,IAA4B,IAAVA,CAAe,EAsiB1Dj9E,SAAAA,GACAs9E,cAAAA,GACAl9E,YAAAA,GACAE,OAAAA,GACAi9E,OAAAA,GACAC,OAAAA,GACAW,SAAAA,GACAp5E,WAAAA,GACAo6E,SAjfe,SAACjtG,GAAG,OAAK8tB,GAAS9tB,IAAQ6yB,GAAW7yB,EAAIktG,KAAK,EAkf7D1B,kBAAAA,GACA9qB,aAAAA,GACA6qB,WAAAA,GACAt+G,QAAAA,GACAkgH,MAzXF,SAASA,IAgBP,IAfA,IAAOC,GAAYtB,GAAiBhyI,OAASA,MAAQ,CAAC,GAA/CszI,SACD/jE,EAAS,CAAC,EACVgkE,EAAc,SAACrtG,EAAKmI,GACxB,IAAMmlG,EAAYF,GAAYzB,GAAQtiE,EAAQlhC,IAAQA,EAClDijG,GAAc/hE,EAAOikE,KAAelC,GAAcprG,GACpDqpC,EAAOikE,GAAaH,EAAM9jE,EAAOikE,GAAYttG,GACpCorG,GAAcprG,GACvBqpC,EAAOikE,GAAaH,EAAM,CAAC,EAAGntG,GACrB4tB,GAAQ5tB,GACjBqpC,EAAOikE,GAAattG,EAAI5iC,QAExBisE,EAAOikE,GAAattG,CAExB,EAES7lC,EAAI,EAAGuD,EAAItD,UAAUC,OAAQF,EAAIuD,EAAGvD,IAC3CC,UAAUD,IAAM8yB,GAAQ7yB,UAAUD,GAAIkzI,GAExC,OAAOhkE,CACT,EAsWE9a,OA1Va,SAACj0D,EAAG0e,EAAG6xH,GAQpB,OAPA59G,GAAQjU,GAAG,SAACgnB,EAAKmI,GACX0iG,GAAWh4E,GAAW7yB,GACxB1lC,EAAE6tC,GAAOr7B,GAAKkzB,EAAK6qG,GAEnBvwI,EAAE6tC,GAAOnI,CAEb,GAAG,CAAC0rG,YAP8CtxI,UAAAC,OAAA,QAAAq2D,IAAAt2D,UAAA,GAAAA,UAAA,GAAP,CAAC,GAAdsxI,aAQvBpxI,CACT,EAkVEyU,KAtdW,SAACi8H,GAAG,OAAKA,EAAIj8H,KACxBi8H,EAAIj8H,OAASi8H,EAAIzzH,QAAQ,qCAAsC,GAAG,EAsdlEg2H,SA1Ue,SAACp6G,GAIhB,OAH8B,QAA1BA,EAAQtF,WAAW,KACrBsF,EAAUA,EAAQ/1B,MAAM,IAEnB+1B,CACT,EAsUEq6G,SA3Te,SAACzzI,EAAa0zI,EAAkBluH,EAAO6sH,GACtDryI,EAAYP,UAAYL,OAAOa,OAAOyzI,EAAiBj0I,UAAW4yI,GAClEryI,EAAYP,UAAUO,YAAcA,EACpCZ,OAAOgC,eAAepB,EAAa,QAAS,CAC1C8B,MAAO4xI,EAAiBj0I,YAE1B+lB,GAASpmB,OAAOe,OAAOH,EAAYP,UAAW+lB,EAChD,EAqTEmuH,aA1SmB,SAACC,EAAWC,EAASzjH,EAAQ0jH,GAChD,IAAItuH,EACAplB,EACA63B,EACE87G,EAAS,CAAC,EAIhB,GAFAF,EAAUA,GAAW,CAAC,EAEL,MAAbD,EAAmB,OAAOC,EAE9B,EAAG,CAGD,IADAzzI,GADAolB,EAAQpmB,OAAO6xD,oBAAoB2iF,IACzBtzI,OACHF,KAAM,GACX63B,EAAOzS,EAAMplB,GACP0zI,IAAcA,EAAW77G,EAAM27G,EAAWC,IAAcE,EAAO97G,KACnE47G,EAAQ57G,GAAQ27G,EAAU37G,GAC1B87G,EAAO97G,IAAQ,GAGnB27G,GAAuB,IAAXxjH,GAAoB8gC,GAAe0iF,EACjD,OAASA,KAAexjH,GAAUA,EAAOwjH,EAAWC,KAAaD,IAAcx0I,OAAOK,WAEtF,OAAOo0I,CACT,EAmRE9C,OAAAA,GACAG,WAAAA,GACAhP,SA1Qe,SAAC+O,EAAK+C,EAAc3pI,GACnC4mI,EAAMnxI,OAAOmxI,SACIt6E,IAAbtsD,GAA0BA,EAAW4mI,EAAI3wI,UAC3C+J,EAAW4mI,EAAI3wI,QAEjB+J,GAAY2pI,EAAa1zI,OACzB,IAAMmgB,EAAYwwH,EAAIvwI,QAAQszI,EAAc3pI,GAC5C,OAAsB,IAAfoW,GAAoBA,IAAcpW,CAC3C,EAmQEmtE,QAzPc,SAACw5D,GACf,IAAKA,EAAO,OAAO,KACnB,GAAIn9E,GAAQm9E,GAAQ,OAAOA,EAC3B,IAAI5wI,EAAI4wI,EAAM1wI,OACd,IAAK8zD,GAASh0D,GAAI,OAAO,KAEzB,IADA,IAAM8uB,EAAM,IAAI3vB,MAAMa,GACfA,KAAM,GACX8uB,EAAI9uB,GAAK4wI,EAAM5wI,GAEjB,OAAO8uB,CACT,EAgPE+kH,aAtNmB,SAAC//E,EAAK7uB,GAOzB,IANA,IAIIiqC,EAFE/sE,GAFY2xD,GAAOA,EAAI5xD,OAAOC,WAET5C,KAAKu0D,IAIxBob,EAAS/sE,EAASZ,UAAY2tE,EAAOztE,MAAM,CACjD,IAAMqyI,EAAO5kE,EAAOxtE,MACpBujC,EAAG1lC,KAAKu0D,EAAKggF,EAAK,GAAIA,EAAK,GAC7B,CACF,EA4MEC,SAlMe,SAACC,EAAQnD,GAIxB,IAHA,IAAIh7D,EACE/mD,EAAM,GAE4B,QAAhC+mD,EAAUm+D,EAAOzlE,KAAKsiE,KAC5B/hH,EAAIzsB,KAAKwzE,GAGX,OAAO/mD,CACT,EA0LE+iH,WAAAA,GACAvyI,eAAAA,GACAs0D,WAAYt0D,GACZyyI,kBAAAA,GACAkC,cAnJoB,SAACngF,GACrBi+E,GAAkBj+E,GAAK,SAACtC,EAAYt8C,GAElC,GAAIwjD,GAAW5E,KAA6D,IAArD,CAAC,YAAa,SAAU,UAAUxzD,QAAQ4U,GAC/D,OAAO,EAGT,IAAMxT,EAAQoyD,EAAI5+C,GAEbwjD,GAAWh3D,KAEhB8vD,EAAWjvD,YAAa,EAEpB,aAAcivD,EAChBA,EAAWw1D,UAAW,EAInBx1D,EAAWltD,MACdktD,EAAWltD,IAAM,WACf,MAAMW,MAAM,qCAAwCiQ,EAAO,IAC7D,GAEJ,GACF,EA4HEg/H,YA1HkB,SAACC,EAAeC,GAClC,IAAMtgF,EAAM,CAAC,EAEPwiE,EAAS,SAACxnG,GACdA,EAAIgE,SAAQ,SAAApxB,GACVoyD,EAAIpyD,IAAS,CACf,GACF,EAIA,OAFA+xD,GAAQ0gF,GAAiB7d,EAAO6d,GAAiB7d,EAAO52H,OAAOy0I,GAAenlI,MAAMolI,IAE7EtgF,CACT,EA+GEugF,YA3LkB,SAAAxD,GAClB,OAAOA,EAAI3iH,cAAc9Q,QAAQ,yBAC/B,SAAkBvP,EAAGuzD,EAAIC,GACvB,OAAOD,EAAGpF,cAAgBqF,CAC5B,GAEJ,EAsLE2vD,KA9GW,WAAO,EA+GlBsjB,eA7GqB,SAAC5yI,EAAOqqF,GAE7B,OADArqF,GAASA,EACFmZ,OAAOkkD,SAASr9D,GAASA,EAAQqqF,CAC1C,EA2GEylD,QAAAA,GACA9sI,OAAQgtI,GACRC,iBAAAA,GACAW,SAAAA,GACAiC,eAnGqB,WAGrB,IAHqE,IAA/CzjH,EAAI7wB,UAAAC,OAAA,QAAAq2D,IAAAt2D,UAAA,GAAAA,UAAA,GAAG,GAAIu0I,EAAQv0I,UAAAC,OAAA,QAAAq2D,IAAAt2D,UAAA,GAAAA,UAAA,GAAGqyI,GAASC,YACjD1B,EAAM,GACH3wI,EAAUs0I,EAAVt0I,OACA4wB,KACL+/G,GAAO2D,EAAS9rI,KAAKY,SAAWpJ,EAAO,GAGzC,OAAO2wI,CACT,EA4FE4D,oBAnFF,SAA6B7D,GAC3B,SAAUA,GAASl4E,GAAWk4E,EAAM38H,SAAyC,aAA9B28H,EAAM1uI,OAAOwjH,cAA+BkrB,EAAM1uI,OAAOC,UAC1G,EAkFEuyI,aAhFmB,SAAC5gF,GACpB,IAAMyE,EAAQ,IAAIp5D,MAAM,IA2BxB,OAzBc,SAARw1I,EAASh6F,EAAQ36C,GAErB,GAAI2zD,GAAShZ,GAAS,CACpB,GAAI4d,EAAMj4D,QAAQq6C,IAAW,EAC3B,OAGF,KAAK,WAAYA,GAAS,CACxB4d,EAAMv4D,GAAK26C,EACX,IAAMlvC,EAASgoD,GAAQ9Y,GAAU,GAAK,CAAC,EASvC,OAPA7nB,GAAQ6nB,GAAQ,SAACj5C,EAAOssC,GACtB,IAAM4mG,EAAeD,EAAMjzI,EAAO1B,EAAI,IACrC+zD,GAAY6gF,KAAkBnpI,EAAOuiC,GAAO4mG,EAC/C,IAEAr8E,EAAMv4D,QAAKu2D,EAEJ9qD,CACT,CACF,CAEA,OAAOkvC,CACT,CAEOg6F,CAAM7gF,EAAK,EACpB,GCnoBA,SAAS+gF,GAAWl+B,EAAS/X,EAAMhnC,EAAQi9D,EAASxkH,GAClDpL,MAAM1F,KAAKI,MAEPsF,MAAM6vI,kBACR7vI,MAAM6vI,kBAAkBn1I,KAAMA,KAAKC,aAEnCD,KAAK44D,OAAS,IAAItzD,OAASszD,MAG7B54D,KAAKg3G,QAAUA,EACfh3G,KAAKuV,KAAO,aACZ0pF,IAASj/F,KAAKi/F,KAAOA,GACrBhnC,IAAWj4D,KAAKi4D,OAASA,GACzBi9D,IAAYl1H,KAAKk1H,QAAUA,GAC3BxkH,IAAa1Q,KAAK0Q,SAAWA,EAC/B,CAEA0kI,GAAM1B,SAASwB,GAAY5vI,MAAO,CAChCw3E,OAAQ,WACN,MAAO,CAELk6B,QAASh3G,KAAKg3G,QACdzhG,KAAMvV,KAAKuV,KAEXg2B,YAAavrC,KAAKurC,YAClB+uB,OAAQt6D,KAAKs6D,OAEbxhD,SAAU9Y,KAAK8Y,SACfu8H,WAAYr1I,KAAKq1I,WACjBC,aAAct1I,KAAKs1I,aACnB18E,MAAO54D,KAAK44D,MAEZX,OAAQm9E,GAAML,aAAa/0I,KAAKi4D,QAChCgnC,KAAMj/F,KAAKi/F,KACXjuF,OAAQhR,KAAK0Q,UAAY1Q,KAAK0Q,SAASM,OAAShR,KAAK0Q,SAASM,OAAS,KAE3E,IAGF,IAAMtR,GAAYw1I,GAAWx1I,UACvB4yI,GAAc,CAAC,EAErB,CACE,uBACA,iBACA,eACA,YACA,cACA,4BACA,iBACA,mBACA,kBACA,eACA,kBACA,mBAEAn/G,SAAQ,SAAA8rE,GACRqzC,GAAYrzC,GAAQ,CAACl9F,MAAOk9F,EAC9B,IAEA5/F,OAAOs7C,iBAAiBu6F,GAAY5C,IACpCjzI,OAAOgC,eAAe3B,GAAW,eAAgB,CAACqC,OAAO,IAGzDmzI,GAAW59E,KAAO,SAACr0D,EAAOg8F,EAAMhnC,EAAQi9D,EAASxkH,EAAU6kI,GACzD,IAAMC,EAAan2I,OAAOa,OAAOR,IAgBjC,OAdA01I,GAAMxB,aAAa3wI,EAAOuyI,GAAY,SAAgBrhF,GACpD,OAAOA,IAAQ7uD,MAAM5F,SACvB,IAAG,SAAAw4B,GACD,MAAgB,iBAATA,CACT,IAEAg9G,GAAWt1I,KAAK41I,EAAYvyI,EAAM+zG,QAAS/X,EAAMhnC,EAAQi9D,EAASxkH,GAElE8kI,EAAWC,MAAQxyI,EAEnBuyI,EAAWjgI,KAAOtS,EAAMsS,KAExBggI,GAAel2I,OAAOe,OAAOo1I,EAAYD,GAElCC,CACT,EAEA,UClGA,QCaA,SAASE,GAAYzE,GACnB,OAAOmE,GAAM9D,cAAcL,IAAUmE,GAAMthF,QAAQm9E,EACrD,CASA,SAAS0E,GAAetnG,GACtB,OAAO+mG,GAAMjT,SAAS9zF,EAAK,MAAQA,EAAI/qC,MAAM,GAAI,GAAK+qC,CACxD,CAWA,SAASunG,GAAUxkI,EAAMi9B,EAAKwnG,GAC5B,OAAKzkI,EACEA,EAAKjO,OAAOkrC,GAAKke,KAAI,SAAcyO,EAAO36D,GAG/C,OADA26D,EAAQ26E,GAAe36E,IACf66E,GAAQx1I,EAAI,IAAM26D,EAAQ,IAAMA,CAC1C,IAAG9pD,KAAK2kI,EAAO,IAAM,IALHxnG,CAMpB,CAaA,IAAMynG,GAAaV,GAAMxB,aAAawB,GAAO,CAAC,EAAG,MAAM,SAAgBl9G,GACrE,MAAO,WAAWvvB,KAAKuvB,EACzB,IA8JA,OArIA,SAAoBi8B,EAAK4hF,EAAU/oD,GACjC,IAAKooD,GAAMphF,SAASG,GAClB,MAAM,IAAIr0D,UAAU,4BAItBi2I,EAAWA,GAAY,IAAKC,IAAoBjD,UAYhD,IAAMkD,GATNjpD,EAAUooD,GAAMxB,aAAa5mD,EAAS,CACpCipD,YAAY,EACZJ,MAAM,EACNK,SAAS,IACR,GAAO,SAAiBC,EAAQn7F,GAEjC,OAAQo6F,GAAMhhF,YAAYpZ,EAAOm7F,GACnC,KAE2BF,WAErBG,EAAUppD,EAAQopD,SAAWC,EAC7BR,EAAO7oD,EAAQ6oD,KACfK,EAAUlpD,EAAQkpD,QAElBI,GADQtpD,EAAQl/E,MAAwB,qBAATA,MAAwBA,OACpCsnI,GAAMN,oBAAoBiB,GAEnD,IAAKX,GAAMr8E,WAAWq9E,GACpB,MAAM,IAAIt2I,UAAU,8BAGtB,SAASy2I,EAAax0I,GACpB,GAAc,OAAVA,EAAgB,MAAO,GAE3B,GAAIqzI,GAAM9gF,OAAOvyD,GACf,OAAOA,EAAMi5E,cAGf,IAAKs7D,GAAWlB,GAAM5D,OAAOzvI,GAC3B,MAAM,IAAImzI,GAAW,gDAGvB,OAAIE,GAAM/D,cAActvI,IAAUqzI,GAAMxuB,aAAa7kH,GAC5Cu0I,GAA2B,oBAATxoI,KAAsB,IAAIA,KAAK,CAAC/L,IAAUy0I,OAAOl/E,KAAKv1D,GAG1EA,CACT,CAYA,SAASs0I,EAAet0I,EAAOssC,EAAKj9B,GAClC,IAAI+d,EAAMptB,EAEV,GAAIA,IAAUqP,GAAyB,kBAAVrP,EAC3B,GAAIqzI,GAAMjT,SAAS9zF,EAAK,MAEtBA,EAAM4nG,EAAa5nG,EAAMA,EAAI/qC,MAAM,GAAI,GAEvCvB,EAAQiN,KAAKE,UAAUnN,QAClB,GACJqzI,GAAMthF,QAAQ/xD,IAnGvB,SAAqBotB,GACnB,OAAOimH,GAAMthF,QAAQ3kC,KAASA,EAAIukC,KAAKgiF,GACzC,CAiGiCe,CAAY10I,KACnCqzI,GAAM3D,WAAW1vI,IAAUqzI,GAAMjT,SAAS9zF,EAAK,SAAWlf,EAAMimH,GAAM39D,QAAQ11E,IAYhF,OATAssC,EAAMsnG,GAAetnG,GAErBlf,EAAIgE,SAAQ,SAAc0uF,EAAIj5F,IAC1BwsH,GAAMhhF,YAAYytD,IAAc,OAAPA,GAAgBk0B,EAASzhI,QAEtC,IAAZ4hI,EAAmBN,GAAU,CAACvnG,GAAMzlB,EAAOitH,GAAqB,OAAZK,EAAmB7nG,EAAMA,EAAM,KACnFkoG,EAAa10B,GAEjB,KACO,EAIX,QAAI6zB,GAAY3zI,KAIhBg0I,EAASzhI,OAAOshI,GAAUxkI,EAAMi9B,EAAKwnG,GAAOU,EAAax0I,KAElD,EACT,CAEA,IAAM62D,EAAQ,GAER89E,EAAiBr3I,OAAOe,OAAO01I,GAAY,CAC/CO,eAAAA,EACAE,aAAAA,EACAb,YAAAA,KAyBF,IAAKN,GAAMphF,SAASG,GAClB,MAAM,IAAIr0D,UAAU,0BAKtB,OA5BA,SAAS62I,EAAM50I,EAAOqP,GACpB,IAAIgkI,GAAMhhF,YAAYryD,GAAtB,CAEA,IAA8B,IAA1B62D,EAAMj4D,QAAQoB,GAChB,MAAMuD,MAAM,kCAAoC8L,EAAKF,KAAK,MAG5D0nD,EAAMl2D,KAAKX,GAEXqzI,GAAMjiH,QAAQpxB,GAAO,SAAc8/G,EAAIxzE,IAKtB,OAJE+mG,GAAMhhF,YAAYytD,IAAc,OAAPA,IAAgBu0B,EAAQx2I,KAChEm2I,EAAUl0B,EAAIuzB,GAAMv8D,SAASxqC,GAAOA,EAAIp5B,OAASo5B,EAAKj9B,EAAMslI,KAI5DC,EAAM90B,EAAIzwG,EAAOA,EAAKjO,OAAOkrC,GAAO,CAACA,GAEzC,IAEAuqB,EAAMn2D,KAlB8B,CAmBtC,CAMAk0I,CAAMxiF,GAEC4hF,CACT,EC5MA,SAASa,GAAO1F,GACd,IAAM2F,EAAU,CACd,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,MAAO,IACP,MAAO,MAET,OAAO5tF,mBAAmBioF,GAAKzzH,QAAQ,oBAAoB,SAAkBgvC,GAC3E,OAAOoqF,EAAQpqF,EACjB,GACF,CAUA,SAASqqF,GAAqBxT,EAAQt2C,GACpChtF,KAAK+2I,OAAS,GAEdzT,GAAU0T,GAAW1T,EAAQtjI,KAAMgtF,EACrC,CAEA,IAAMttF,GAAYo3I,GAAqBp3I,UAEvCA,GAAU4U,OAAS,SAAgBiB,EAAMxT,GACvC/B,KAAK+2I,OAAOr0I,KAAK,CAAC6S,EAAMxT,GAC1B,EAEArC,GAAUiN,SAAW,SAAkBsqI,GACrC,IAAMC,EAAUD,EAAU,SAASl1I,GACjC,OAAOk1I,EAAQr3I,KAAKI,KAAM+B,EAAO60I,GACnC,EAAIA,GAEJ,OAAO52I,KAAK+2I,OAAOxqF,KAAI,SAAc4nF,GACnC,OAAO+C,EAAQ/C,EAAK,IAAM,IAAM+C,EAAQ/C,EAAK,GAC/C,GAAG,IAAIjjI,KAAK,IACd,EAEA,UC5CA,SAAS0lI,GAAO1wG,GACd,OAAO+iB,mBAAmB/iB,GACxBzoB,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,IACrB,CAWe,SAAS05H,GAASx1C,EAAK2hC,EAAQt2C,GAE5C,IAAKs2C,EACH,OAAO3hC,EAGT,IAIIy1C,EAJEF,EAAUlqD,GAAWA,EAAQ4pD,QAAUA,GAEvCS,EAAcrqD,GAAWA,EAAQsqD,UAYvC,GAPEF,EADEC,EACiBA,EAAY/T,EAAQt2C,GAEpBooD,GAAM1D,kBAAkBpO,GACzCA,EAAO32H,WACP,IAAImqI,GAAqBxT,EAAQt2C,GAASrgF,SAASuqI,GAGjC,CACpB,IAAMK,EAAgB51C,EAAIhhG,QAAQ,MAEX,IAAnB42I,IACF51C,EAAMA,EAAIr+F,MAAM,EAAGi0I,IAErB51C,KAA8B,IAAtBA,EAAIhhG,QAAQ,KAAc,IAAM,KAAOy2I,CACjD,CAEA,OAAOz1C,CACT,CC5DkC,IAE5B61C,GAAkB,WACtB,SAAAA,IAAcxR,EAAA,KAAAwR,GACZx3I,KAAKy3I,SAAW,EAClB,CA4DC,OA1DDxR,EAAAuR,EAAA,EAAAnpG,IAAA,MAAAtsC,MAQA,SAAI21I,EAAWC,EAAU3qD,GAOvB,OANAhtF,KAAKy3I,SAAS/0I,KAAK,CACjBg1I,UAAAA,EACAC,SAAAA,EACAC,cAAa5qD,GAAUA,EAAQ4qD,YAC/BC,QAAS7qD,EAAUA,EAAQ6qD,QAAU,OAEhC73I,KAAKy3I,SAASl3I,OAAS,CAChC,GAEA,CAAA8tC,IAAA,QAAAtsC,MAOA,SAAM+M,GACA9O,KAAKy3I,SAAS3oI,KAChB9O,KAAKy3I,SAAS3oI,GAAM,KAExB,GAEA,CAAAu/B,IAAA,QAAAtsC,MAKA,WACM/B,KAAKy3I,WACPz3I,KAAKy3I,SAAW,GAEpB,GAEA,CAAAppG,IAAA,UAAAtsC,MAUA,SAAQujC,GACN8vG,GAAMjiH,QAAQnzB,KAAKy3I,UAAU,SAAwB91I,GACzC,OAANA,GACF2jC,EAAG3jC,EAEP,GACF,KAAC61I,CAAA,CA/DqB,GAkExB,MCpEA,IACEM,mBAAmB,EACnBC,mBAAmB,EACnBC,qBAAqB,GCgDvB,IACEC,WAAW,EACXC,QAAS,CACPC,gBCrDsC,qBAApBA,gBAAkCA,gBAAkBrB,GDsDtE/D,SEvD+B,qBAAbA,SAA2BA,SAAW,KFwDxDjlI,KGxD2B,qBAATA,KAAuBA,KAAO,MH0DlDsqI,qBAvC4B,WAC5B,IAAIC,EACJ,OAAyB,qBAAd5yI,WACyB,iBAAjC4yI,EAAU5yI,UAAU4yI,UACT,iBAAZA,GACY,OAAZA,KAKuB,qBAAXvzI,QAA8C,qBAAbqB,SACjD,CAX8B,GAwC5BmyI,8BAhB+B,qBAAtBC,mBAEPvzI,gBAAgBuzI,mBACc,oBAAvBvzI,KAAKwzI,cAcdC,UAAW,CAAC,OAAQ,QAAS,OAAQ,OAAQ,MAAO,SI6BtD,OA3CA,SAAwB1C,GACtB,SAAS2C,EAAUtnI,EAAMrP,EAAO+J,EAAQ8c,GACtC,IAAIrT,EAAOnE,EAAKwX,KACV+vH,EAAez9H,OAAOkkD,UAAU7pD,GAChCqjI,EAAShwH,GAASxX,EAAK7Q,OAG7B,OAFAgV,GAAQA,GAAQ6/H,GAAMthF,QAAQhoD,GAAUA,EAAOvL,OAASgV,EAEpDqjI,GACExD,GAAMnhF,WAAWnoD,EAAQyJ,GAC3BzJ,EAAOyJ,GAAQ,CAACzJ,EAAOyJ,GAAOxT,GAE9B+J,EAAOyJ,GAAQxT,GAGT42I,IAGL7sI,EAAOyJ,IAAU6/H,GAAMphF,SAASloD,EAAOyJ,MAC1CzJ,EAAOyJ,GAAQ,IAGFmjI,EAAUtnI,EAAMrP,EAAO+J,EAAOyJ,GAAOqT,IAEtCwsH,GAAMthF,QAAQhoD,EAAOyJ,MACjCzJ,EAAOyJ,GA5Cb,SAAuB4Z,GACrB,IAEI9uB,EAEAguC,EAJE8lB,EAAM,CAAC,EACPzC,EAAOryD,OAAOqyD,KAAKviC,GAEnB+nC,EAAMxF,EAAKnxD,OAEjB,IAAKF,EAAI,EAAGA,EAAI62D,EAAK72D,IAEnB8zD,EADA9lB,EAAMqjB,EAAKrxD,IACA8uB,EAAIkf,GAEjB,OAAO8lB,CACT,CAiCqB0kF,CAAc/sI,EAAOyJ,MAG9BojI,EACV,CAEA,GAAIvD,GAAMtC,WAAWiD,IAAaX,GAAMr8E,WAAWg9E,EAAS+C,SAAU,CACpE,IAAM3kF,EAAM,CAAC,EAMb,OAJAihF,GAAMlB,aAAa6B,GAAU,SAACxgI,EAAMxT,GAClC22I,EAvEN,SAAuBnjI,GAKrB,OAAO6/H,GAAMhB,SAAS,gBAAiB7+H,GAAMg3C,KAAI,SAAAE,GAC/C,MAAoB,OAAbA,EAAM,GAAc,GAAKA,EAAM,IAAMA,EAAM,EACpD,GACF,CA+DgBssF,CAAcxjI,GAAOxT,EAAOoyD,EAAK,EAC7C,IAEOA,CACT,CAEA,OAAO,IACT,EC/EM6kF,GAAuB,CAC3B,oBAAgBpiF,GA4BlB,IAAM4Z,GAAW,CAEfyoE,aAAcC,GAEdC,QAAS,CAAC,MAAO,QAEjBC,iBAAkB,CAAC,SAA0BxrI,EAAMyrI,GACjD,IAiCI5H,EAjCE6H,EAAcD,EAAQE,kBAAoB,GAC1CC,EAAqBF,EAAY34I,QAAQ,qBAAuB,EAChE84I,EAAkBrE,GAAMphF,SAASpmD,GAQvC,GANI6rI,GAAmBrE,GAAMlD,WAAWtkI,KACtCA,EAAO,IAAImlI,SAASnlI,IAGHwnI,GAAMtC,WAAWllI,GAGlC,OAAK4rI,GAGEA,EAAqBxqI,KAAKE,UAAUwqI,GAAe9rI,IAFjDA,EAKX,GAAIwnI,GAAM/D,cAAczjI,IACtBwnI,GAAMvC,SAASjlI,IACfwnI,GAAMjC,SAASvlI,IACfwnI,GAAM7D,OAAO3jI,IACbwnI,GAAM5D,OAAO5jI,GAEb,OAAOA,EAET,GAAIwnI,GAAMpC,kBAAkBplI,GAC1B,OAAOA,EAAKm5G,OAEd,GAAIquB,GAAM1D,kBAAkB9jI,GAE1B,OADAyrI,EAAQM,eAAe,mDAAmD,GACnE/rI,EAAKjB,WAKd,GAAI8sI,EAAiB,CACnB,GAAIH,EAAY34I,QAAQ,sCAAwC,EAC9D,OC7EO,SAA0BiN,EAAMo/E,GAC7C,OAAOgqD,GAAWppI,EAAM,IAAIgsI,GAAAA,QAAAA,gBAAoCv6I,OAAOe,OAAO,CAC5Eg2I,QAAS,SAASr0I,EAAOssC,EAAKj9B,EAAMyoI,GAClC,OAAID,GAAAA,QAAmBxE,GAAMvC,SAAS9wI,IACpC/B,KAAKsU,OAAO+5B,EAAKtsC,EAAM4K,SAAS,YACzB,GAGFktI,EAAQxD,eAAe51I,MAAMT,KAAMM,UAC5C,GACC0sF,GACL,CDkEe8sD,CAAiBlsI,EAAM5N,KAAK+5I,gBAAgBptI,WAGrD,IAAK8kI,EAAa2D,GAAM3D,WAAW7jI,KAAU0rI,EAAY34I,QAAQ,wBAA0B,EAAG,CAC5F,IAAMq5I,EAAYh6I,KAAKi6I,KAAOj6I,KAAKi6I,IAAIlH,SAEvC,OAAOiE,GACLvF,EAAa,CAAC,UAAW7jI,GAAQA,EACjCosI,GAAa,IAAIA,EACjBh6I,KAAK+5I,eAET,CACF,CAEA,OAAIN,GAAmBD,GACrBH,EAAQM,eAAe,oBAAoB,GA1EjD,SAAyBO,EAAUC,EAAQlD,GACzC,GAAI7B,GAAMv8D,SAASqhE,GACjB,IAEE,OADCC,GAAUnrI,KAAKC,OAAOirI,GAChB9E,GAAMngI,KAAKilI,EACpB,CAAE,MAAO96I,GACP,GAAe,gBAAXA,EAAEmW,KACJ,MAAMnW,CAEV,CAGF,OAAQ63I,GAAWjoI,KAAKE,WAAWgrI,EACrC,CA8DaE,CAAgBxsI,IAGlBA,CACT,GAEAysI,kBAAmB,CAAC,SAA2BzsI,GAC7C,IAAMqrI,EAAej5I,KAAKi5I,cAAgBzoE,GAASyoE,aAC7ClB,EAAoBkB,GAAgBA,EAAalB,kBACjDuC,EAAsC,SAAtBt6I,KAAKyQ,aAE3B,GAAI7C,GAAQwnI,GAAMv8D,SAASjrE,KAAWmqI,IAAsB/3I,KAAKyQ,cAAiB6pI,GAAgB,CAChG,IACMC,IADoBtB,GAAgBA,EAAanB,oBACPwC,EAEhD,IACE,OAAOtrI,KAAKC,MAAMrB,EACpB,CAAE,MAAOxO,GACP,GAAIm7I,EAAmB,CACrB,GAAe,gBAAXn7I,EAAEmW,KACJ,MAAM2/H,GAAAA,KAAgB91I,EAAG81I,GAAAA,iBAA6Bl1I,KAAM,KAAMA,KAAK0Q,UAEzE,MAAMtR,CACR,CACF,CACF,CAEA,OAAOwO,CACT,GAMAymH,QAAS,EAETmmB,eAAgB,aAChBC,eAAgB,eAEhBC,kBAAmB,EACnBC,eAAgB,EAEhBV,IAAK,CACHlH,SAAU6G,GAAAA,QAAAA,SACV9rI,KAAM8rI,GAAAA,QAAAA,MAGRgB,eAAgB,SAAwB5pI,GACtC,OAAOA,GAAU,KAAOA,EAAS,GACnC,EAEAqoI,QAAS,CACPwB,OAAQ,CACN,OAAU,uCAKhBzF,GAAMjiH,QAAQ,CAAC,SAAU,MAAO,SAAS,SAA6B0kG,GACpErnD,GAAS6oE,QAAQxhB,GAAU,CAAC,CAC9B,IAEAud,GAAMjiH,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+B0kG,GACrErnD,GAAS6oE,QAAQxhB,GAAUud,GAAM/B,MAAM2F,GACzC,IAEA,UE/JM8B,GAAoB1F,GAAMb,YAAY,CAC1C,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,eCLtBwG,GAAax4I,OAAO,aAE1B,SAASy4I,GAAgBC,GACvB,OAAOA,GAAUl7I,OAAOk7I,GAAQhmI,OAAOsZ,aACzC,CAEA,SAAS2sH,GAAen5I,GACtB,OAAc,IAAVA,GAA4B,MAATA,EACdA,EAGFqzI,GAAMthF,QAAQ/xD,GAASA,EAAMwqD,IAAI2uF,IAAkBn7I,OAAOgC,EACnE,CAkBA,SAASo5I,GAAiBzqG,EAAS3uC,EAAOk5I,EAAQ5qH,EAAQ+qH,GACxD,OAAIhG,GAAMr8E,WAAW1oC,GACZA,EAAOzwB,KAAKI,KAAM+B,EAAOk5I,IAG9BG,IACFr5I,EAAQk5I,GAGL7F,GAAMv8D,SAAS92E,GAEhBqzI,GAAMv8D,SAASxoD,IACiB,IAA3BtuB,EAAMpB,QAAQ0vB,GAGnB+kH,GAAMjD,SAAS9hH,GACVA,EAAO1nB,KAAK5G,QADrB,OANA,EASF,CAoBC,IAEKs5I,GAAY,SAAAC,EAAAC,GAChB,SAAAF,EAAYhC,GAASrT,EAAA,KAAAqV,GACnBhC,GAAWr5I,KAAK2E,IAAI00I,EACtB,CA2MC,OA3MApT,EAAAoV,EAAA,EAAAhtG,IAAA,MAAAtsC,MAED,SAAIk5I,EAAQO,EAAgBC,GAC1B,IAAMz2I,EAAOhF,KAEb,SAAS07I,EAAUC,EAAQC,EAASC,GAClC,IAAMC,EAAUd,GAAgBY,GAEhC,IAAKE,EACH,MAAM,IAAIx2I,MAAM,0CAGlB,IAAM+oC,EAAM+mG,GAAMvD,QAAQ7sI,EAAM82I,KAE5BztG,QAAqBuoB,IAAd5xD,EAAKqpC,KAAmC,IAAbwtG,QAAmCjlF,IAAbilF,IAAwC,IAAd72I,EAAKqpC,MACzFrpC,EAAKqpC,GAAOutG,GAAWV,GAAeS,GAE1C,CAEA,IAAMI,EAAa,SAAC1C,EAASwC,GAAQ,OACnCzG,GAAMjiH,QAAQkmH,GAAS,SAACsC,EAAQC,GAAO,OAAKF,EAAUC,EAAQC,EAASC,EAAS,GAAC,EAUnF,OARIzG,GAAM9D,cAAc2J,IAAWA,aAAkBj7I,KAAKC,YACxD87I,EAAWd,EAAQO,GACXpG,GAAMv8D,SAASoiE,KAAYA,EAASA,EAAOhmI,UAtEhD,gBAAgBtM,KAsE8DsyI,EAtErDhmI,QAuE5B8mI,ED5EN,SAAeC,GACb,IACI3tG,EACAnI,EACA7lC,EAHE47I,EAAS,CAAC,EAyBhB,OApBAD,GAAcA,EAAW3sI,MAAM,MAAM8jB,SAAQ,SAAgBgT,GAC3D9lC,EAAI8lC,EAAKxlC,QAAQ,KACjB0tC,EAAMlI,EAAK6c,UAAU,EAAG3iD,GAAG4U,OAAOsZ,cAClC2X,EAAMC,EAAK6c,UAAU3iD,EAAI,GAAG4U,QAEvBo5B,GAAQ4tG,EAAO5tG,IAAQysG,GAAkBzsG,KAIlC,eAARA,EACE4tG,EAAO5tG,GACT4tG,EAAO5tG,GAAK3rC,KAAKwjC,GAEjB+1G,EAAO5tG,GAAO,CAACnI,GAGjB+1G,EAAO5tG,GAAO4tG,EAAO5tG,GAAO4tG,EAAO5tG,GAAO,KAAOnI,EAAMA,EAE3D,IAEO+1G,CACR,CCiDgBC,CAAajB,GAASO,GAEvB,MAAVP,GAAkBS,EAAUF,EAAgBP,EAAQQ,GAG/Cz7I,IACT,GAAC,CAAAquC,IAAA,MAAAtsC,MAED,SAAIk5I,EAAQd,GAGV,GAFAc,EAASD,GAAgBC,GAEb,CACV,IAAM5sG,EAAM+mG,GAAMvD,QAAQ7xI,KAAMi7I,GAEhC,GAAI5sG,EAAK,CACP,IAAMtsC,EAAQ/B,KAAKquC,GAEnB,IAAK8rG,EACH,OAAOp4I,EAGT,IAAe,IAAXo4I,EACF,OA1GV,SAAqBjJ,GAKnB,IAJA,IAEIzkF,EAFEoV,EAASxiE,OAAOa,OAAO,MACvBi8I,EAAW,mCAGT1vF,EAAQ0vF,EAASvtE,KAAKsiE,IAC5BrvE,EAAOpV,EAAM,IAAMA,EAAM,GAG3B,OAAOoV,CACT,CAgGiBu6E,CAAYr6I,GAGrB,GAAIqzI,GAAMr8E,WAAWohF,GACnB,OAAOA,EAAOv6I,KAAKI,KAAM+B,EAAOssC,GAGlC,GAAI+mG,GAAMjD,SAASgI,GACjB,OAAOA,EAAOvrE,KAAK7sE,GAGrB,MAAM,IAAIjC,UAAU,yCACtB,CACF,CACF,GAAC,CAAAuuC,IAAA,MAAAtsC,MAED,SAAIk5I,EAAQjlE,GAGV,GAFAilE,EAASD,GAAgBC,GAEb,CACV,IAAM5sG,EAAM+mG,GAAMvD,QAAQ7xI,KAAMi7I,GAEhC,SAAU5sG,QAAqBuoB,IAAd52D,KAAKquC,IAAwB2nC,IAAWmlE,GAAiBn7I,EAAMA,KAAKquC,GAAMA,EAAK2nC,GAClG,CAEA,OAAO,CACT,GAAC,CAAA3nC,IAAA,SAAAtsC,MAED,SAAOk5I,EAAQjlE,GACb,IAAMhxE,EAAOhF,KACTq8I,GAAU,EAEd,SAASC,EAAaV,GAGpB,GAFAA,EAAUZ,GAAgBY,GAEb,CACX,IAAMvtG,EAAM+mG,GAAMvD,QAAQ7sI,EAAM42I,IAE5BvtG,GAAS2nC,IAAWmlE,GAAiBn2I,EAAMA,EAAKqpC,GAAMA,EAAK2nC,YACtDhxE,EAAKqpC,GAEZguG,GAAU,EAEd,CACF,CAQA,OANIjH,GAAMthF,QAAQmnF,GAChBA,EAAO9nH,QAAQmpH,GAEfA,EAAarB,GAGRoB,CACT,GAAC,CAAAhuG,IAAA,QAAAtsC,MAED,SAAMi0E,GAKJ,IAJA,IAAMtkB,EAAOryD,OAAOqyD,KAAK1xD,MACrBK,EAAIqxD,EAAKnxD,OACT87I,GAAU,EAEPh8I,KAAK,CACV,IAAMguC,EAAMqjB,EAAKrxD,GACb21E,IAAWmlE,GAAiBn7I,EAAMA,KAAKquC,GAAMA,EAAK2nC,GAAS,YACtDh2E,KAAKquC,GACZguG,GAAU,EAEd,CAEA,OAAOA,CACT,GAAC,CAAAhuG,IAAA,YAAAtsC,MAED,SAAU6yD,GACR,IAAM5vD,EAAOhF,KACPq5I,EAAU,CAAC,EAsBjB,OApBAjE,GAAMjiH,QAAQnzB,MAAM,SAAC+B,EAAOk5I,GAC1B,IAAM5sG,EAAM+mG,GAAMvD,QAAQwH,EAAS4B,GAEnC,GAAI5sG,EAGF,OAFArpC,EAAKqpC,GAAO6sG,GAAen5I,eACpBiD,EAAKi2I,GAId,IAAMsB,EAAa3nF,EA1JzB,SAAsBqmF,GACpB,OAAOA,EAAOhmI,OACXsZ,cAAc9Q,QAAQ,mBAAmB,SAACoC,EAAGkoF,EAAMmpC,GAClD,OAAOnpC,EAAK1rC,cAAgB60E,CAC9B,GACJ,CAqJkCsL,CAAavB,GAAUl7I,OAAOk7I,GAAQhmI,OAE9DsnI,IAAetB,UACVj2I,EAAKi2I,GAGdj2I,EAAKu3I,GAAcrB,GAAen5I,GAElCs3I,EAAQkD,IAAc,CACxB,IAEOv8I,IACT,GAAC,CAAAquC,IAAA,SAAAtsC,MAED,WAAmB,QAAA06I,EAAAC,EAAAp8I,UAAAC,OAATo8I,EAAO,IAAAn9I,MAAAk9I,GAAA5K,EAAA,EAAAA,EAAA4K,EAAA5K,IAAP6K,EAAO7K,GAAAxxI,UAAAwxI,GACf,OAAO2K,EAAAz8I,KAAKC,aAAYkD,OAAM1C,MAAAg8I,EAAA,CAACz8I,MAAImD,OAAKw5I,GAC1C,GAAC,CAAAtuG,IAAA,SAAAtsC,MAED,SAAO66I,GACL,IAAMzoF,EAAM90D,OAAOa,OAAO,MAM1B,OAJAk1I,GAAMjiH,QAAQnzB,MAAM,SAAC+B,EAAOk5I,GACjB,MAATl5I,IAA2B,IAAVA,IAAoBoyD,EAAI8mF,GAAU2B,GAAaxH,GAAMthF,QAAQ/xD,GAASA,EAAMmP,KAAK,MAAQnP,EAC5G,IAEOoyD,CACT,GAAC,CAAA9lB,IAEA9rC,OAAOC,SAFPT,MAED,WACE,OAAO1C,OAAOy5I,QAAQ94I,KAAK88E,UAAUv6E,OAAOC,WAC9C,GAAC,CAAA6rC,IAAA,WAAAtsC,MAED,WACE,OAAO1C,OAAOy5I,QAAQ94I,KAAK88E,UAAUvwB,KAAI,SAAA4xE,GAAA,IAAA0e,EAAA7Y,EAAA7F,EAAA,GAAe,OAAP0e,EAAA,GAAsB,KAAfA,EAAA,EAA2B,IAAE3rI,KAAK,KAC5F,GAAC,CAAAm9B,IAEI9rC,OAAOwjH,YAFXljH,IAED,WACE,MAAO,cACT,IAAC,EAAAwrC,IAAA,OAAAtsC,MAED,SAAYkvI,GACV,OAAOA,aAAiBjxI,KAAOixI,EAAQ,IAAIjxI,KAAKixI,EAClD,GAAC,CAAA5iG,IAAA,SAAAtsC,MAED,SAAcigI,GACqB,IAAjC,IAAM8a,EAAW,IAAI98I,KAAKgiI,GAAO+a,EAAAz8I,UAAAC,OADXo8I,EAAO,IAAAn9I,MAAAu9I,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAPL,EAAOK,EAAA,GAAA18I,UAAA08I,GAK7B,OAFAL,EAAQxpH,SAAQ,SAACrnB,GAAM,OAAKgxI,EAASn4I,IAAImH,EAAO,IAEzCgxI,CACT,GAAC,CAAAzuG,IAAA,WAAAtsC,MAED,SAAgBk5I,GACd,IAIMgC,GAJYj9I,KAAK+6I,IAAe/6I,KAAK+6I,IAAc,CACvDkC,UAAW,CAAC,IAGcA,UACtBv9I,EAAYM,KAAKN,UAEvB,SAASw9I,EAAetB,GACtB,IAAME,EAAUd,GAAgBY,GAE3BqB,EAAUnB,MAlNrB,SAAwB3nF,EAAK8mF,GAC3B,IAAMkC,EAAe/H,GAAMV,YAAY,IAAMuG,GAE7C,CAAC,MAAO,MAAO,OAAO9nH,SAAQ,SAAA0lG,GAC5Bx5H,OAAOgC,eAAe8yD,EAAK0kE,EAAaskB,EAAc,CACpDp7I,MAAO,SAASq7I,EAAMC,EAAMC,GAC1B,OAAOt9I,KAAK64H,GAAYj5H,KAAKI,KAAMi7I,EAAQmC,EAAMC,EAAMC,EACzD,EACA5xD,cAAc,GAElB,GACF,CAwMQ6xD,CAAe79I,EAAWk8I,GAC1BqB,EAAUnB,IAAW,EAEzB,CAIA,OAFA1G,GAAMthF,QAAQmnF,GAAUA,EAAO9nH,QAAQ+pH,GAAkBA,EAAejC,GAEjEj7I,IACT,KAACq7I,CAAA,CA9Me,GAiNlBA,GAAamC,SAAS,CAAC,eAAgB,iBAAkB,SAAU,kBAAmB,aAAc,kBAEpGpI,GAAMd,cAAc+G,GAAa37I,WACjC01I,GAAMd,cAAc+G,IAEpB,UCnRe,SAASoC,GAAcC,EAAKhtI,GACzC,IAAMunD,EAASj4D,MAAQwwE,GACjB9/B,EAAUhgC,GAAYunD,EACtBohF,EAAUgC,GAAAA,KAAkB3qG,EAAQ2oG,SACtCzrI,EAAO8iC,EAAQ9iC,KAQnB,OANAwnI,GAAMjiH,QAAQuqH,GAAK,SAAmBp4G,GACpC13B,EAAO03B,EAAG1lC,KAAKq4D,EAAQrqD,EAAMyrI,EAAQ94F,YAAa7vC,EAAWA,EAASM,YAAS4lD,EACjF,IAEAyiF,EAAQ94F,YAED3yC,CACT,CCzBe,SAAS+vI,GAAS57I,GAC/B,SAAUA,IAASA,EAAM67I,WAC3B,CCUA,SAASC,GAAc7mC,EAAS/+C,EAAQi9D,GAEtCggB,GAAAA,KAAgBl1I,KAAiB,MAAXg3G,EAAkB,WAAaA,EAASk+B,GAAAA,aAAyBj9E,EAAQi9D,GAC/Fl1H,KAAKuV,KAAO,eACd,CAEA6/H,GAAM1B,SAASmK,GAAe3I,GAAY,CACxC0I,YAAY,IAGd,UCnBA,OAAehE,GAAAA,qBAIJ,CACLkE,MAAO,SAAevoI,EAAMxT,EAAOg8I,EAAS3sI,EAAM4sI,EAAQC,GACxD,IAAMC,EAAS,GACfA,EAAOx7I,KAAK6S,EAAO,IAAM0zC,mBAAmBlnD,IAExCqzI,GAAM/gF,SAAS0pF,IACjBG,EAAOx7I,KAAK,WAAa,IAAI8vB,KAAKurH,GAASI,eAGzC/I,GAAMv8D,SAASznE,IACjB8sI,EAAOx7I,KAAK,QAAU0O,GAGpBgkI,GAAMv8D,SAASmlE,IACjBE,EAAOx7I,KAAK,UAAYs7I,IAGX,IAAXC,GACFC,EAAOx7I,KAAK,UAGdyD,SAAS+3I,OAASA,EAAOhtI,KAAK,KAChC,EAEAktI,KAAM,SAAc7oI,GAClB,IAAMk3C,EAAQtmD,SAAS+3I,OAAOzxF,MAAM,IAAI0M,OAAO,aAAe5jD,EAAO,cACrE,OAAQk3C,EAAQnkC,mBAAmBmkC,EAAM,IAAM,IACjD,EAEA4xF,OAAQ,SAAgB9oI,GACtBvV,KAAK89I,MAAMvoI,EAAM,GAAIid,KAAKC,MAAQ,MACpC,GAMK,CACLqrH,MAAO,WAAkB,EACzBM,KAAM,WAAkB,OAAO,IAAM,EACrCC,OAAQ,WAAmB,GClClB,SAASC,GAAcC,EAASC,GAC7C,OAAID,ICHG,8BAA8B51I,KDGP61I,GENjB,SAAqBD,EAASE,GAC3C,OAAOA,EACHF,EAAQ9gI,QAAQ,OAAQ,IAAM,IAAMghI,EAAYhhI,QAAQ,OAAQ,IAChE8gI,CACN,CFGWG,CAAYH,EAASC,GAEvBA,CACT,CGfA,OAAe5E,GAAAA,qBAIZ,WACC,IAEI+E,EAFEC,EAAO,kBAAkBj2I,KAAKlD,UAAUmD,WACxCi2I,EAAiB14I,SAASC,cAAc,KAS9C,SAAS04I,EAAWn9C,GAClB,IAAI/tE,EAAO+tE,EAWX,OATIi9C,IAEFC,EAAe5hI,aAAa,OAAQ2W,GACpCA,EAAOirH,EAAejrH,MAGxBirH,EAAe5hI,aAAa,OAAQ2W,GAG7B,CACLA,KAAMirH,EAAejrH,KACrBmrH,SAAUF,EAAeE,SAAWF,EAAeE,SAASthI,QAAQ,KAAM,IAAM,GAChFuhI,KAAMH,EAAeG,KACrBv9C,OAAQo9C,EAAep9C,OAASo9C,EAAep9C,OAAOhkF,QAAQ,MAAO,IAAM,GAC3E2oG,KAAMy4B,EAAez4B,KAAOy4B,EAAez4B,KAAK3oG,QAAQ,KAAM,IAAM,GACpEwhI,SAAUJ,EAAeI,SACzBC,KAAML,EAAeK,KACrBrtI,SAAiD,MAAtCgtI,EAAehtI,SAASi0B,OAAO,GACxC+4G,EAAehtI,SACf,IAAMgtI,EAAehtI,SAE3B,CAUA,OARA8sI,EAAYG,EAAWh6I,OAAO6M,SAASiiB,MAQhC,SAAyBurH,GAC9B,IAAMlD,EAAU7G,GAAMv8D,SAASsmE,GAAeL,EAAWK,GAAcA,EACvE,OAAQlD,EAAO8C,WAAaJ,EAAUI,UAClC9C,EAAO+C,OAASL,EAAUK,IAChC,CACF,CAlDC,GAsDQ,WACL,OAAO,CACT,ECXJ,OA9CA,SAAqBI,EAAc51I,GACjC41I,EAAeA,GAAgB,GAC/B,IAIIC,EAJEC,EAAQ,IAAI9/I,MAAM4/I,GAClBG,EAAa,IAAI//I,MAAM4/I,GACzB7zF,EAAO,EACP0vD,EAAO,EAKX,OAFAzxG,OAAcotD,IAARptD,EAAoBA,EAAM,IAEzB,SAAcg2I,GACnB,IAAM/sH,EAAMD,KAAKC,MAEXgtH,EAAYF,EAAWtkC,GAExBokC,IACHA,EAAgB5sH,GAGlB6sH,EAAM/zF,GAAQi0F,EACdD,EAAWh0F,GAAQ94B,EAKnB,IAHA,IAAIpyB,EAAI46G,EACJykC,EAAa,EAEVr/I,IAAMkrD,GACXm0F,GAAcJ,EAAMj/I,KACpBA,GAAQ++I,EASV,IANA7zF,GAAQA,EAAO,GAAK6zF,KAEPnkC,IACXA,GAAQA,EAAO,GAAKmkC,KAGlB3sH,EAAM4sH,EAAgB71I,GAA1B,CAIA,IAAMm2I,EAASF,GAAahtH,EAAMgtH,EAElC,OAAOE,EAAS52I,KAAKoB,MAAmB,IAAbu1I,EAAoBC,QAAU/oF,CAJzD,CAKF,CACF,ECpCA,SAASgpF,GAAqB94C,EAAU+4C,GACtC,IAAIC,EAAgB,EACdC,EAAeC,GAAY,GAAI,KAErC,OAAO,SAAA5gJ,GACL,IAAMk0B,EAASl0B,EAAEk0B,OACXiyD,EAAQnmF,EAAE6gJ,iBAAmB7gJ,EAAEmmF,WAAQ3uB,EACvCspF,EAAgB5sH,EAASwsH,EACzBt4I,EAAOu4I,EAAaG,GAG1BJ,EAAgBxsH,EAEhB,IAAM1lB,EAAO,CACX0lB,OAAAA,EACAiyD,MAAAA,EACA46D,SAAU56D,EAASjyD,EAASiyD,OAAS3uB,EACrC0oF,MAAOY,EACP14I,KAAMA,QAAcovD,EACpBwpF,UAAW54I,GAAQ+9E,GAVLjyD,GAAUiyD,GAUeA,EAAQjyD,GAAU9rB,OAAOovD,EAChEkrC,MAAO1iG,GAGTwO,EAAKiyI,EAAmB,WAAa,WAAY,EAEjD/4C,EAASl5F,EACX,CACF,CAEA,IAEA,GAFwD,qBAAnBiD,gBAEG,SAAUonD,GAChD,OAAO,IAAIv2D,SAAQ,SAA4BiC,EAASutH,GACtD,IAGImvB,EAHAC,EAAcroF,EAAOrqD,KACnB2yI,EAAiBlF,GAAAA,KAAkBpjF,EAAOohF,SAAS94F,YACnD9vC,EAAewnD,EAAOxnD,aAE5B,SAAS3O,IACHm2D,EAAOuoF,aACTvoF,EAAOuoF,YAAYtS,YAAYmS,GAG7BpoF,EAAOwoF,QACTxoF,EAAOwoF,OAAO3rI,oBAAoB,QAASurI,EAE/C,CAEIjL,GAAMtC,WAAWwN,KAAiB1G,GAAAA,sBAAiCA,GAAAA,gCACrE2G,EAAe5G,gBAAe,GAGhC,IAAIzkB,EAAU,IAAIrkH,eAGlB,GAAIonD,EAAOyoF,KAAM,CACf,IAAMC,EAAW1oF,EAAOyoF,KAAKC,UAAY,GACnCp/C,EAAWtpC,EAAOyoF,KAAKn/C,SAAWq/C,SAAS33F,mBAAmBgP,EAAOyoF,KAAKn/C,WAAa,GAC7Fg/C,EAAe57I,IAAI,gBAAiB,SAAWk8I,KAAKF,EAAW,IAAMp/C,GACvE,CAEA,IAAMlwF,EAAWitI,GAAcrmF,EAAOsmF,QAAStmF,EAAO0pC,KAOtD,SAASm/C,IACP,GAAK5rB,EAAL,CAIA,IAAM6rB,EAAkB1F,GAAAA,KACtB,0BAA2BnmB,GAAWA,EAAQ8rB,0BC5EvC,SAAgBr9I,EAASutH,EAAQxgH,GAC9C,IAAMkqI,EAAiBlqI,EAASunD,OAAO2iF,eAClClqI,EAASM,QAAW4pI,IAAkBA,EAAelqI,EAASM,QAGjEkgH,EAAO,IAAIgkB,GACT,mCAAqCxkI,EAASM,OAC9C,CAACkkI,GAAAA,gBAA4BA,GAAAA,kBAA6BnsI,KAAKK,MAAMsH,EAASM,OAAS,KAAO,GAC9FN,EAASunD,OACTvnD,EAASwkH,QACTxkH,IAPF/M,EAAQ+M,EAUZ,CD4EMuwI,EAAO,SAAkBl/I,GACvB4B,EAAQ5B,GACRD,GACF,IAAG,SAAiB+kF,GAClBqqC,EAAOrqC,GACP/kF,GACF,GAfiB,CACf8L,KAHoB6C,GAAiC,SAAjBA,GAA4C,SAAjBA,EACxCykH,EAAQxkH,SAA/BwkH,EAAQvkH,aAGRK,OAAQkkH,EAAQlkH,OAChBm1H,WAAYjR,EAAQiR,WACpBkT,QAAS0H,EACT9oF,OAAAA,EACAi9D,QAAAA,IAYFA,EAAU,IAzBV,CA0BF,CAmEA,GArGAA,EAAQjkH,KAAKgnD,EAAO4/D,OAAOx7D,cAAe86E,GAAS9lI,EAAU4mD,EAAOqrE,OAAQrrE,EAAOipF,mBAAmB,GAGtGhsB,EAAQb,QAAUp8D,EAAOo8D,QAiCrB,cAAea,EAEjBA,EAAQ4rB,UAAYA,EAGpB5rB,EAAQpkH,mBAAqB,WACtBokH,GAAkC,IAAvBA,EAAQnkH,aAQD,IAAnBmkH,EAAQlkH,QAAkBkkH,EAAQisB,aAAwD,IAAzCjsB,EAAQisB,YAAYxgJ,QAAQ,WAKjFyZ,WAAW0mI,EACb,EAIF5rB,EAAQksB,QAAU,WACXlsB,IAILhE,EAAO,IAAIgkB,GAAW,kBAAmBA,GAAAA,aAAyBj9E,EAAQi9D,IAG1EA,EAAU,KACZ,EAGAA,EAAQT,QAAU,WAGhBvD,EAAO,IAAIgkB,GAAW,gBAAiBA,GAAAA,YAAwBj9E,EAAQi9D,IAGvEA,EAAU,IACZ,EAGAA,EAAQmsB,UAAY,WAClB,IAAIC,EAAsBrpF,EAAOo8D,QAAU,cAAgBp8D,EAAOo8D,QAAU,cAAgB,mBACtF4kB,EAAehhF,EAAOghF,cAAgBC,GACxCjhF,EAAOqpF,sBACTA,EAAsBrpF,EAAOqpF,qBAE/BpwB,EAAO,IAAIgkB,GACToM,EACArI,EAAajB,oBAAsB9C,GAAAA,UAAuBA,GAAAA,aAC1Dj9E,EACAi9D,IAGFA,EAAU,IACZ,EAKI0kB,GAAAA,qBAA+B,CAEjC,IAAM2H,GAAatpF,EAAOupF,iBAAmBC,GAAgBpwI,KACxD4mD,EAAOuiF,gBAAkBkH,GAAQtD,KAAKnmF,EAAOuiF,gBAE9C+G,GACFhB,EAAe57I,IAAIszD,EAAOwiF,eAAgB8G,EAE9C,MAGgB3qF,IAAhB0pF,GAA6BC,EAAe5G,eAAe,MAGvD,qBAAsBzkB,GACxBkgB,GAAMjiH,QAAQotH,EAAezjE,UAAU,SAA0B52C,EAAKmI,GACpE6mF,EAAQysB,iBAAiBtzG,EAAKnI,EAChC,IAIGkvG,GAAMhhF,YAAY6D,EAAOupF,mBAC5BtsB,EAAQssB,kBAAoBvpF,EAAOupF,iBAIjC/wI,GAAiC,SAAjBA,IAClBykH,EAAQzkH,aAAewnD,EAAOxnD,cAIS,oBAA9BwnD,EAAO2pF,oBAChB1sB,EAAQhhH,iBAAiB,WAAY0rI,GAAqB3nF,EAAO2pF,oBAAoB,IAIhD,oBAA5B3pF,EAAO4pF,kBAAmC3sB,EAAQ4sB,QAC3D5sB,EAAQ4sB,OAAO5tI,iBAAiB,WAAY0rI,GAAqB3nF,EAAO4pF,oBAGtE5pF,EAAOuoF,aAAevoF,EAAOwoF,UAG/BJ,EAAa,SAAA75B,GACN0O,IAGLhE,GAAQ1K,GAAUA,EAAOt7G,KAAO,IAAI2yI,GAAc,KAAM5lF,EAAQi9D,GAAW1O,GAC3E0O,EAAQ6sB,QACR7sB,EAAU,KACZ,EAEAj9D,EAAOuoF,aAAevoF,EAAOuoF,YAAYlS,UAAU+R,GAC/CpoF,EAAOwoF,SACTxoF,EAAOwoF,OAAOuB,QAAU3B,IAAepoF,EAAOwoF,OAAOvsI,iBAAiB,QAASmsI,KAInF,IAAMtB,EE3OK,SAAuBp9C,GACpC,IAAMl1C,EAAQ,4BAA4BmiB,KAAK+yB,GAC/C,OAAOl1C,GAASA,EAAM,IAAM,EAC9B,CFwOqBw1F,CAAc5wI,GAE3B0tI,IAAsD,IAA1CnF,GAAAA,UAAAA,QAA2BmF,GACzC7tB,EAAO,IAAIgkB,GAAW,wBAA0B6J,EAAW,IAAK7J,GAAAA,gBAA4Bj9E,IAM9Fi9D,EAAQ/jH,KAAKmvI,GAAe,KAC9B,GACF,EGnPM4B,GAAgB,CACpBC,KAAMC,GACNC,IAAKC,IAGPlN,GAAMjiH,QAAQ+uH,IAAe,SAAC58G,EAAIvjC,GAChC,GAAGujC,EAAI,CACL,IACEjmC,OAAOgC,eAAeikC,EAAI,OAAQ,CAACvjC,MAAAA,GACrC,CAAE,MAAO3C,GACP,CAEFC,OAAOgC,eAAeikC,EAAI,cAAe,CAACvjC,MAAAA,GAC5C,CACF,IAEA,QACEwgJ,WAAY,SAACC,GAOX,IAJA,IACIC,EACAtJ,EAFG54I,GAFPiiJ,EAAWpN,GAAMthF,QAAQ0uF,GAAYA,EAAW,CAACA,IAE1CjiJ,OAIEF,EAAI,EAAGA,EAAIE,IAClBkiJ,EAAgBD,EAASniJ,KACrB84I,EAAU/D,GAAMv8D,SAAS4pE,GAAiBP,GAAcO,EAAcl0H,eAAiBk0H,IAFjEpiJ,KAO5B,IAAK84I,EAAS,CACZ,IAAgB,IAAZA,EACF,MAAM,IAAIjE,GAAW,WAAD/xI,OACPs/I,EAAa,wCACxB,mBAIJ,MAAM,IAAIn9I,MACR8vI,GAAMnhF,WAAWiuF,GAAeO,GAAc,YAAAt/I,OAChCs/I,EAAa,uDAAAt/I,OACLs/I,EAAa,KAEvC,CAEA,IAAKrN,GAAMr8E,WAAWogF,GACpB,MAAM,IAAIr5I,UAAU,6BAGtB,OAAOq5I,CACT,EACAqJ,SAAUN,ICzCZ,SAASQ,GAA6BzqF,GAKpC,GAJIA,EAAOuoF,aACTvoF,EAAOuoF,YAAYmC,mBAGjB1qF,EAAOwoF,QAAUxoF,EAAOwoF,OAAOuB,QACjC,MAAM,IAAInE,GAAc,KAAM5lF,EAElC,CASe,SAAS2qF,GAAgB3qF,GAiBtC,OAhBAyqF,GAA6BzqF,GAE7BA,EAAOohF,QAAUgC,GAAAA,KAAkBpjF,EAAOohF,SAG1CphF,EAAOrqD,KAAO6vI,GAAc79I,KAC1Bq4D,EACAA,EAAOmhF,mBAGgD,IAArD,CAAC,OAAQ,MAAO,SAASz4I,QAAQs3D,EAAO4/D,SAC1C5/D,EAAOohF,QAAQM,eAAe,qCAAqC,GAGrD6I,GAASD,WAAWtqF,EAAOkhF,SAAW3oE,GAAAA,QAE/C2oE,CAAQlhF,GAAQj2D,MAAK,SAA6B0O,GAYvD,OAXAgyI,GAA6BzqF,GAG7BvnD,EAAS9C,KAAO6vI,GAAc79I,KAC5Bq4D,EACAA,EAAOoiF,kBACP3pI,GAGFA,EAAS2oI,QAAUgC,GAAAA,KAAkB3qI,EAAS2oI,SAEvC3oI,CACT,IAAG,SAA4BmyI,GAe7B,OAdKlF,GAASkF,KACZH,GAA6BzqF,GAGzB4qF,GAAUA,EAAOnyI,WACnBmyI,EAAOnyI,SAAS9C,KAAO6vI,GAAc79I,KACnCq4D,EACAA,EAAOoiF,kBACPwI,EAAOnyI,UAETmyI,EAAOnyI,SAAS2oI,QAAUgC,GAAAA,KAAkBwH,EAAOnyI,SAAS2oI,WAIzD33I,QAAQwvH,OAAO2xB,EACxB,GACF,CC3EA,IAAMC,GAAkB,SAAC7R,GAAK,OAAKA,aAAiBoK,GAAepK,EAAMn0D,SAAWm0D,CAAK,EAW1E,SAAS8R,GAAYC,EAASC,GAE3CA,EAAUA,GAAW,CAAC,EACtB,IAAMhrF,EAAS,CAAC,EAEhB,SAASirF,EAAep3I,EAAQkvC,EAAQs4F,GACtC,OAAI8B,GAAM9D,cAAcxlI,IAAWspI,GAAM9D,cAAct2F,GAC9Co6F,GAAM/B,MAAMzzI,KAAK,CAAC0zI,SAAAA,GAAWxnI,EAAQkvC,GACnCo6F,GAAM9D,cAAct2F,GACtBo6F,GAAM/B,MAAM,CAAC,EAAGr4F,GACdo6F,GAAMthF,QAAQ9Y,GAChBA,EAAO13C,QAET03C,CACT,CAGA,SAASmoG,EAAoB3iJ,EAAG0e,EAAGo0H,GACjC,OAAK8B,GAAMhhF,YAAYl1C,GAEXk2H,GAAMhhF,YAAY5zD,QAAvB,EACE0iJ,OAAetsF,EAAWp2D,EAAG8yI,GAF7B4P,EAAe1iJ,EAAG0e,EAAGo0H,EAIhC,CAGA,SAAS8P,EAAiB5iJ,EAAG0e,GAC3B,IAAKk2H,GAAMhhF,YAAYl1C,GACrB,OAAOgkI,OAAetsF,EAAW13C,EAErC,CAGA,SAASmkI,EAAiB7iJ,EAAG0e,GAC3B,OAAKk2H,GAAMhhF,YAAYl1C,GAEXk2H,GAAMhhF,YAAY5zD,QAAvB,EACE0iJ,OAAetsF,EAAWp2D,GAF1B0iJ,OAAetsF,EAAW13C,EAIrC,CAGA,SAASokI,EAAgB9iJ,EAAG0e,EAAGgZ,GAC7B,OAAIA,KAAQ+qH,EACHC,EAAe1iJ,EAAG0e,GAChBgZ,KAAQ8qH,EACVE,OAAetsF,EAAWp2D,QAD5B,CAGT,CAEA,IAAM+iJ,EAAW,CACf5hD,IAAKyhD,EACLvrB,OAAQurB,EACRx1I,KAAMw1I,EACN7E,QAAS8E,EACTjK,iBAAkBiK,EAClBhJ,kBAAmBgJ,EACnBnC,iBAAkBmC,EAClBhvB,QAASgvB,EACTG,eAAgBH,EAChB7B,gBAAiB6B,EACjBlK,QAASkK,EACT5yI,aAAc4yI,EACd7I,eAAgB6I,EAChB5I,eAAgB4I,EAChBxB,iBAAkBwB,EAClBzB,mBAAoByB,EACpBI,WAAYJ,EACZ3I,iBAAkB2I,EAClB1I,cAAe0I,EACfK,eAAgBL,EAChBM,UAAWN,EACXO,UAAWP,EACXQ,WAAYR,EACZ7C,YAAa6C,EACbS,WAAYT,EACZU,iBAAkBV,EAClBzI,eAAgB0I,EAChBjK,QAAS,SAAC74I,EAAG0e,GAAC,OAAKikI,EAAoBL,GAAgBtiJ,GAAIsiJ,GAAgB5jI,IAAI,EAAK,GAStF,OANAk2H,GAAMjiH,QAAQ9zB,OAAOqyD,KAAKsxF,GAAS7/I,OAAO9D,OAAOqyD,KAAKuxF,KAAW,SAA4B/qH,GAC3F,IAAMm7G,EAAQkQ,EAASrrH,IAASirH,EAC1Ba,EAAc3Q,EAAM2P,EAAQ9qH,GAAO+qH,EAAQ/qH,GAAOA,GACvDk9G,GAAMhhF,YAAY4vF,IAAgB3Q,IAAUiQ,IAAqBrrF,EAAO//B,GAAQ8rH,EACnF,IAEO/rF,CACT,CCxGO,IAAMgsF,GAAU,QCKjBC,GAAa,CAAC,EAGpB,CAAC,SAAU,UAAW,SAAU,WAAY,SAAU,UAAU/wH,SAAQ,SAACjoB,EAAM7K,GAC7E6jJ,GAAWh5I,GAAQ,SAAmB+lI,GACpC,cAAcA,IAAU/lI,GAAQ,KAAO7K,EAAI,EAAI,KAAO,KAAO6K,CAC/D,CACF,IAEA,IAAMi5I,GAAqB,CAAC,EAW5BD,GAAWjL,aAAe,SAAsBmL,EAAW17H,EAASsuF,GAClE,SAASqtC,EAAcC,EAAKhuB,GAC1B,MAAO,uCAAoDguB,EAAM,IAAOhuB,GAAQtf,EAAU,KAAOA,EAAU,GAC7G,CAGA,OAAO,SAACj1G,EAAOuiJ,EAAKC,GAClB,IAAkB,IAAdH,EACF,MAAM,IAAIlP,GACRmP,EAAcC,EAAK,qBAAuB57H,EAAU,OAASA,EAAU,KACvEwsH,GAAAA,gBAeJ,OAXIxsH,IAAYy7H,GAAmBG,KACjCH,GAAmBG,IAAO,EAE1BtwH,QAAQC,KACNowH,EACEC,EACA,+BAAiC57H,EAAU,8CAK1C07H,GAAYA,EAAUriJ,EAAOuiJ,EAAKC,EAC3C,CACF,EAmCA,QACEC,cAxBF,SAAuBx3D,EAASy3D,EAAQC,GACtC,GAAuB,kBAAZ13D,EACT,MAAM,IAAIkoD,GAAW,4BAA6BA,GAAAA,sBAIpD,IAFA,IAAMxjF,EAAOryD,OAAOqyD,KAAKs7B,GACrB3sF,EAAIqxD,EAAKnxD,OACNF,KAAM,GAAG,CACd,IAAMikJ,EAAM5yF,EAAKrxD,GACX+jJ,EAAYK,EAAOH,GACzB,GAAIF,EAAJ,CACE,IAAMriJ,EAAQirF,EAAQs3D,GAChB/0E,OAAmB3Y,IAAV70D,GAAuBqiJ,EAAUriJ,EAAOuiJ,EAAKt3D,GAC5D,IAAe,IAAXzd,EACF,MAAM,IAAI2lE,GAAW,UAAYoP,EAAM,YAAc/0E,EAAQ2lE,GAAAA,qBAGjE,MACA,IAAqB,IAAjBwP,EACF,MAAM,IAAIxP,GAAW,kBAAoBoP,EAAKpP,GAAAA,eAElD,CACF,EAIEgP,WAAAA,IC9EIA,GAAaE,GAAUF,WASvBS,GAAK,WACT,SAAAA,EAAYC,GAAgB5e,EAAA,KAAA2e,GAC1B3kJ,KAAKwwE,SAAWo0E,EAChB5kJ,KAAK6kJ,aAAe,CAClB3vB,QAAS,IAAIsiB,GACb9mI,SAAU,IAAI8mI,GAElB,CAqIC,OAnIDvR,EAAA0e,EAAA,EAAAt2G,IAAA,UAAAtsC,MAQA,SAAQ+iJ,EAAa7sF,GAGQ,kBAAhB6sF,GACT7sF,EAASA,GAAU,CAAC,GACb0pC,IAAMmjD,EAEb7sF,EAAS6sF,GAAe,CAAC,EAK3B,IAoBIC,EApBJ9rF,EAFAhB,EAAS8qF,GAAY/iJ,KAAKwwE,SAAUvY,GAE7BghF,EAAYhgF,EAAZggF,aAAciI,EAAgBjoF,EAAhBioF,iBAAkB7H,EAAOpgF,EAAPogF,aAElBziF,IAAjBqiF,GACFmL,GAAUI,cAAcvL,EAAc,CACpCnB,kBAAmBoM,GAAWjL,aAAaiL,GAAWc,SACtDjN,kBAAmBmM,GAAWjL,aAAaiL,GAAWc,SACtDhN,oBAAqBkM,GAAWjL,aAAaiL,GAAWc,WACvD,QAGoBpuF,IAArBsqF,GACFkD,GAAUI,cAActD,EAAkB,CACxCtK,OAAQsN,GAAWe,SACnB3N,UAAW4M,GAAWe,WACrB,GAILhtF,EAAO4/D,QAAU5/D,EAAO4/D,QAAU73H,KAAKwwE,SAASqnD,QAAU,OAAOtpG,eAKjEw2H,EAAiB1L,GAAWjE,GAAM/B,MAChCgG,EAAQwB,OACRxB,EAAQphF,EAAO4/D,WAGCud,GAAMjiH,QACtB,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,WAClD,SAAC0kG,UACQwhB,EAAQxhB,EACjB,IAGF5/D,EAAOohF,QAAUgC,GAAAA,OAAoB0J,EAAgB1L,GAGrD,IAAM6L,EAA0B,GAC5BC,GAAiC,EACrCnlJ,KAAK6kJ,aAAa3vB,QAAQ/hG,SAAQ,SAAoCiyH,GACjC,oBAAxBA,EAAYvN,UAA0D,IAAhCuN,EAAYvN,QAAQ5/E,KAIrEktF,EAAiCA,GAAkCC,EAAYxN,YAE/EsN,EAAwBz1H,QAAQ21H,EAAY1N,UAAW0N,EAAYzN,UACrE,IAEA,IAKI5iB,EALEswB,EAA2B,GACjCrlJ,KAAK6kJ,aAAan0I,SAASyiB,SAAQ,SAAkCiyH,GACnEC,EAAyB3iJ,KAAK0iJ,EAAY1N,UAAW0N,EAAYzN,SACnE,IAGA,IACIzgF,EADA72D,EAAI,EAGR,IAAK8kJ,EAAgC,CACnC,IAAMG,EAAQ,CAAC1C,GAAgB5vI,KAAKhT,WAAO42D,GAO3C,IANA0uF,EAAM71H,QAAQhvB,MAAM6kJ,EAAOJ,GAC3BI,EAAM5iJ,KAAKjC,MAAM6kJ,EAAOD,GACxBnuF,EAAMouF,EAAM/kJ,OAEZw0H,EAAUrzH,QAAQiC,QAAQs0D,GAEnB53D,EAAI62D,GACT69D,EAAUA,EAAQ/yH,KAAKsjJ,EAAMjlJ,KAAMilJ,EAAMjlJ,MAG3C,OAAO00H,CACT,CAEA79D,EAAMguF,EAAwB3kJ,OAE9B,IAAIglJ,EAAYttF,EAIhB,IAFA53D,EAAI,EAEGA,EAAI62D,GAAK,CACd,IAAMsuF,EAAcN,EAAwB7kJ,KACtColJ,EAAaP,EAAwB7kJ,KAC3C,IACEklJ,EAAYC,EAAYD,EAC1B,CAAE,MAAOtiJ,GACPwiJ,EAAW7lJ,KAAKI,KAAMiD,GACtB,KACF,CACF,CAEA,IACE8xH,EAAU6tB,GAAgBhjJ,KAAKI,KAAMulJ,EACvC,CAAE,MAAOtiJ,GACP,OAAOvB,QAAQwvH,OAAOjuH,EACxB,CAKA,IAHA5C,EAAI,EACJ62D,EAAMmuF,EAAyB9kJ,OAExBF,EAAI62D,GACT69D,EAAUA,EAAQ/yH,KAAKqjJ,EAAyBhlJ,KAAMglJ,EAAyBhlJ,MAGjF,OAAO00H,CACT,GAAC,CAAA1mF,IAAA,SAAAtsC,MAED,SAAOk2D,GAGL,OAAOk/E,GADUmH,IADjBrmF,EAAS8qF,GAAY/iJ,KAAKwwE,SAAUvY,IACEsmF,QAAStmF,EAAO0pC,KAC5B1pC,EAAOqrE,OAAQrrE,EAAOipF,iBAClD,KAACyD,CAAA,CA5IQ,GAgJXvP,GAAMjiH,QAAQ,CAAC,SAAU,MAAO,OAAQ,YAAY,SAA6B0kG,GAE/E8sB,GAAMjlJ,UAAUm4H,GAAU,SAASl2B,EAAK1pC,GACtC,OAAOj4D,KAAKk1H,QAAQ6tB,GAAY9qF,GAAU,CAAC,EAAG,CAC5C4/D,OAAAA,EACAl2B,IAAAA,EACA/zF,MAAOqqD,GAAU,CAAC,GAAGrqD,OAEzB,CACF,IAEAwnI,GAAMjiH,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+B0kG,GAGrE,SAAS6tB,EAAmBC,GAC1B,OAAO,SAAoBhkD,EAAK/zF,EAAMqqD,GACpC,OAAOj4D,KAAKk1H,QAAQ6tB,GAAY9qF,GAAU,CAAC,EAAG,CAC5C4/D,OAAAA,EACAwhB,QAASsM,EAAS,CAChB,eAAgB,uBACd,CAAC,EACLhkD,IAAAA,EACA/zF,KAAAA,IAEJ,CACF,CAEA+2I,GAAMjlJ,UAAUm4H,GAAU6tB,IAE1Bf,GAAMjlJ,UAAUm4H,EAAS,QAAU6tB,GAAmB,EACxD,IAEA,UCzLME,GAAW,WACf,SAAAA,EAAYC,GACV,GADoB7f,EAAA,KAAA4f,GACI,oBAAbC,EACT,MAAM,IAAI/lJ,UAAU,gCAGtB,IAAIgmJ,EAEJ9lJ,KAAK+0H,QAAU,IAAIrzH,SAAQ,SAAyBiC,GAClDmiJ,EAAiBniJ,CACnB,IAEA,IAAMq3D,EAAQh7D,KAGdA,KAAK+0H,QAAQ/yH,MAAK,SAAAwkH,GAChB,GAAKxrD,EAAM+qF,WAAX,CAIA,IAFA,IAAI1lJ,EAAI26D,EAAM+qF,WAAWxlJ,OAElBF,KAAM,GACX26D,EAAM+qF,WAAW1lJ,GAAGmmH,GAEtBxrD,EAAM+qF,WAAa,IAPU,CAQ/B,IAGA/lJ,KAAK+0H,QAAQ/yH,KAAO,SAAAgkJ,GAClB,IAAIC,EAEElxB,EAAU,IAAIrzH,SAAQ,SAAAiC,GAC1Bq3D,EAAMszE,UAAU3qI,GAChBsiJ,EAAWtiJ,CACb,IAAG3B,KAAKgkJ,GAMR,OAJAjxB,EAAQvO,OAAS,WACfxrD,EAAMkzE,YAAY+X,EACpB,EAEOlxB,CACT,EAEA8wB,GAAS,SAAgB7uC,EAAS/+C,EAAQi9D,GACpCl6D,EAAM6nF,SAKV7nF,EAAM6nF,OAAS,IAAIhF,GAAc7mC,EAAS/+C,EAAQi9D,GAClD4wB,EAAe9qF,EAAM6nF,QACvB,GACF,CAuDC,OArDD5c,EAAA2f,EAAA,EAAAv3G,IAAA,mBAAAtsC,MAGA,WACE,GAAI/B,KAAK6iJ,OACP,MAAM7iJ,KAAK6iJ,MAEf,GAEA,CAAAx0G,IAAA,YAAAtsC,MAIA,SAAU+kG,GACJ9mG,KAAK6iJ,OACP/7C,EAAS9mG,KAAK6iJ,QAIZ7iJ,KAAK+lJ,WACP/lJ,KAAK+lJ,WAAWrjJ,KAAKokG,GAErB9mG,KAAK+lJ,WAAa,CAACj/C,EAEvB,GAEA,CAAAz4D,IAAA,cAAAtsC,MAIA,SAAY+kG,GACV,GAAK9mG,KAAK+lJ,WAAV,CAGA,IAAMn9H,EAAQ5oB,KAAK+lJ,WAAWplJ,QAAQmmG,IACvB,IAAXl+E,GACF5oB,KAAK+lJ,WAAWhxI,OAAO6T,EAAO,EAHhC,CAKF,IAEA,EAAAylB,IAAA,SAAAtsC,MAIA,WACE,IAAIykH,EACExrD,EAAQ,IAAI4qF,GAAY,SAAkB33I,GAC9Cu4G,EAASv4G,CACX,IACA,MAAO,CACL+sD,MAAAA,EACAwrD,OAAAA,EAEJ,KAACo/B,CAAA,CA1Gc,GA6GjB,MCxHA,IAAMM,GAAiB,CACrBC,SAAU,IACVC,mBAAoB,IACpBC,WAAY,IACZC,WAAY,IACZpmC,GAAI,IACJqmC,QAAS,IACTC,SAAU,IACVC,4BAA6B,IAC7BC,UAAW,IACXC,aAAc,IACdC,eAAgB,IAChBC,YAAa,IACbC,gBAAiB,IACjBC,OAAQ,IACRC,gBAAiB,IACjBC,iBAAkB,IAClBC,MAAO,IACPC,SAAU,IACVC,YAAa,IACbC,SAAU,IACVC,OAAQ,IACRC,kBAAmB,IACnBC,kBAAmB,IACnBC,WAAY,IACZC,aAAc,IACdC,gBAAiB,IACjBC,UAAW,IACXC,SAAU,IACVC,iBAAkB,IAClBC,cAAe,IACfC,4BAA6B,IAC7BC,eAAgB,IAChBC,SAAU,IACVC,KAAM,IACNC,eAAgB,IAChBC,mBAAoB,IACpBC,gBAAiB,IACjBC,WAAY,IACZC,qBAAsB,IACtBC,oBAAqB,IACrBC,kBAAmB,IACnBC,UAAW,IACXC,mBAAoB,IACpBC,oBAAqB,IACrBC,OAAQ,IACRC,iBAAkB,IAClBC,SAAU,IACVC,gBAAiB,IACjBC,qBAAsB,IACtBC,gBAAiB,IACjBC,4BAA6B,IAC7BC,2BAA4B,IAC5BC,oBAAqB,IACrBC,eAAgB,IAChBC,WAAY,IACZC,mBAAoB,IACpBC,eAAgB,IAChBC,wBAAyB,IACzBC,sBAAuB,IACvBC,oBAAqB,IACrBC,aAAc,IACdC,YAAa,IACbC,8BAA+B,KAGjC3qJ,OAAOy5I,QAAQoN,IAAgB/yH,SAAQ,SAAAgrG,GAAkB,IAAA0e,EAAA7Y,EAAA7F,EAAA,GAAhB9vF,EAAGwuG,EAAA,GAAE96I,EAAK86I,EAAA,GACjDqJ,GAAenkJ,GAASssC,CAC1B,IAEA,UCzBA,IAAM47G,GAnBN,SAASC,EAAeC,GACtB,IAAMz5G,EAAU,IAAIi0G,GAAMwF,GACpB7gG,EAAWt2C,GAAK2xI,GAAAA,UAAAA,QAAyBj0G,GAa/C,OAVA0kG,GAAM3gF,OAAOnL,EAAUq7F,GAAAA,UAAiBj0G,EAAS,CAACkhG,YAAY,IAG9DwD,GAAM3gF,OAAOnL,EAAU5Y,EAAS,KAAM,CAACkhG,YAAY,IAGnDtoF,EAASppD,OAAS,SAAgB0kJ,GAChC,OAAOsF,EAAenH,GAAYoH,EAAevF,GACnD,EAEOt7F,CACT,CAGc4gG,CAAe15E,IAG7By5E,GAAMtF,MAAQA,GAGdsF,GAAMpM,cAAgBA,GACtBoM,GAAMrE,YAAcA,GACpBqE,GAAMtM,SAAWA,GACjBsM,GAAMhG,QAAUA,GAChBgG,GAAMjT,WAAaA,GAGnBiT,GAAM/U,WAAaA,GAGnB+U,GAAMG,OAASH,GAAMpM,cAGrBoM,GAAMr2B,IAAM,SAAaC,GACvB,OAAOnyH,QAAQkyH,IAAIC,EACrB,EAEAo2B,GAAMI,OC7CS,SAAgBx2F,GAC7B,OAAO,SAAc1kC,GACnB,OAAO0kC,EAASpzD,MAAM,KAAM0uB,EAC9B,CACF,ED4CA86H,GAAMK,aE5DS,SAAsBh5I,GACnC,OAAO8jI,GAAMphF,SAAS1iD,KAAsC,IAAzBA,EAAQg5I,YAC7C,EF6DAL,GAAMlH,YAAcA,GAEpBkH,GAAM5O,aAAeA,GAErB4O,GAAMM,WAAa,SAAAtZ,GAAK,OAAIyI,GAAetE,GAAMlD,WAAWjB,GAAS,IAAI8B,SAAS9B,GAASA,EAAM,EAEjGgZ,GAAM/D,eAAiBA,GAEvB+D,GAAM7lJ,QAAU6lJ,GAGhB,UG1EA,GATiB,WACf,OACEO,EAAAA,GAAAA,MAAA,OAAAtzG,SAAA,EACEu1F,EAAAA,GAAAA,KAAA,MAAAv1F,SAAI,0BACJu1F,EAAAA,GAAAA,KAAA,KAAAv1F,SAAG,mDAGT,ECQA,GAfgB,SAACzxB,GACf,OACEgnH,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAx1F,UACEszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,WAAUsL,SAAA,EAEvBu1F,EAAAA,GAAAA,KAAA,KAAG7gG,UAAU,sBAAqBsL,SAAC,wBACnCu1F,EAAAA,GAAAA,KAAA,KAAAv1F,SAAA,OACAu1F,EAAAA,GAAAA,KAAA,KAAG7gG,UAAU,qBAAoBsL,SAAEzxB,EAAMlQ,QACzCk3H,EAAAA,GAAAA,KAAA,KAAAv1F,SAAA,MACCzxB,EAAMglI,iBAAkBhe,EAAAA,GAAAA,KAAA,KAAG7gG,UAAU,qBAAoBsL,SAAEzxB,EAAMglI,kBAAuB,OAIjG,ECfA,SAASC,GAAQvjE,EAAQwjE,GACvB,IAAIj5F,EAAOryD,OAAOqyD,KAAKy1B,GAEvB,GAAI9nF,OAAOuB,sBAAuB,CAChC,IAAIgqJ,EAAUvrJ,OAAOuB,sBAAsBumF,GAC3CwjE,IAAmBC,EAAUA,EAAQv6H,QAAO,SAAUw6H,GACpD,OAAOxrJ,OAAO4B,yBAAyBkmF,EAAQ0jE,GAAKjoJ,UACtD,KAAK8uD,EAAKhvD,KAAKjC,MAAMixD,EAAMk5F,EAC7B,CAEA,OAAOl5F,CACT,CAEA,SAASo5F,GAAeh/I,GACtB,IAAK,IAAIzL,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAI26C,EAAS,MAAQ16C,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EACpDA,EAAI,EAAIqqJ,GAAQrrJ,OAAO27C,IAAS,GAAI7nB,SAAQ,SAAUkb,GACpD08G,GAAgBj/I,EAAQuiC,EAAK2M,EAAO3M,GACtC,IAAKhvC,OAAOkzI,0BAA4BlzI,OAAOs7C,iBAAiB7uC,EAAQzM,OAAOkzI,0BAA0Bv3F,IAAW0vG,GAAQrrJ,OAAO27C,IAAS7nB,SAAQ,SAAUkb,GAC5JhvC,OAAOgC,eAAeyK,EAAQuiC,EAAKhvC,OAAO4B,yBAAyB+5C,EAAQ3M,GAC7E,GACF,CAEA,OAAOviC,CACT,CAEA,SAAS+yC,GAAQsV,GAGf,OAAOtV,GAAU,mBAAqBt8C,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2xD,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAO,mBAAqB5xD,QAAU4xD,EAAIl0D,cAAgBsC,QAAU4xD,IAAQ5xD,OAAO7C,UAAY,gBAAkBy0D,CAC1H,EAAGtV,GAAQsV,EACb,CAwDA,SAASynE,GAAkB9vH,EAAQ2Z,GACjC,IAAK,IAAIplB,EAAI,EAAGA,EAAIolB,EAAMllB,OAAQF,IAAK,CACrC,IAAIwxD,EAAapsC,EAAMplB,GACvBwxD,EAAWjvD,WAAaivD,EAAWjvD,aAAc,EACjDivD,EAAW65B,cAAe,EACtB,UAAW75B,IAAYA,EAAWw1D,UAAW,GACjDhoH,OAAOgC,eAAeyK,EAAQ+lD,EAAWxjB,IAAKwjB,EAChD,CACF,CAWA,SAASk5F,GAAgB52F,EAAK9lB,EAAKtsC,GAYjC,OAXIssC,KAAO8lB,EACT90D,OAAOgC,eAAe8yD,EAAK9lB,EAAK,CAC9BtsC,MAAOA,EACPa,YAAY,EACZ8oF,cAAc,EACd27B,UAAU,IAGZlzD,EAAI9lB,GAAOtsC,EAGNoyD,CACT,CA6BA,SAAS6vE,GAAe70G,EAAK9uB,GAC3B,OAWF,SAAyB8uB,GACvB,GAAI3vB,MAAMs0D,QAAQ3kC,GAAM,OAAOA,CACjC,CAbSsmG,CAAgBtmG,IAmBzB,SAA+BA,EAAK9uB,GAClC,IAAIo3D,EAAY,MAAPtoC,EAAc,KAAyB,qBAAX5sB,QAA0B4sB,EAAI5sB,OAAOC,WAAa2sB,EAAI,cAE3F,GAAU,MAANsoC,EAAY,OAChB,IAIIq+D,EAAI5O,EAJJ+O,EAAO,GACPC,GAAK,EACL1/D,GAAK,EAIT,IACE,IAAKiB,EAAKA,EAAG73D,KAAKuvB,KAAQ+mG,GAAMJ,EAAKr+D,EAAG71D,QAAQE,QAC9Cm0H,EAAKvzH,KAAKozH,EAAG/zH,QAET1B,GAAK41H,EAAK11H,SAAWF,GAH4B61H,GAAK,GAK9D,CAAE,MAAOrvC,GACPrwB,GAAK,EACL0wD,EAAKrgC,CACP,CAAE,QACA,IACOqvC,GAAsB,MAAhBz+D,EAAW,QAAWA,EAAW,QAC9C,CAAE,QACA,GAAIjB,EAAI,MAAM0wD,CAChB,CACF,CAEA,OAAO+O,CACT,CA/CiC+0B,CAAsB77H,EAAK9uB,IAAMs1H,GAA4BxmG,EAAK9uB,IAsEnG,WACE,MAAM,IAAIP,UAAU,4IACtB,CAxEyG+1H,EACzG,CAEA,SAASyM,GAAmBnzG,GAC1B,OAGF,SAA4BA,GAC1B,GAAI3vB,MAAMs0D,QAAQ3kC,GAAM,OAAOumG,GAAkBvmG,EACnD,CALS87H,CAAmB97H,IAW5B,SAA0BgrG,GACxB,GAAsB,qBAAX53H,QAAmD,MAAzB43H,EAAK53H,OAAOC,WAA2C,MAAtB23H,EAAK,cAAuB,OAAO36H,MAAM83D,KAAK6iE,EACtH,CAboCmB,CAAiBnsG,IAAQwmG,GAA4BxmG,IA8DzF,WACE,MAAM,IAAIrvB,UAAU,uIACtB,CAhEiGorJ,EACjG,CA4CA,SAASv1B,GAA4Bv0H,EAAGw0H,GACtC,GAAKx0H,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOs0H,GAAkBt0H,EAAGw0H,GACvD,IAAI50H,EAAI3B,OAAOK,UAAUiN,SAAS/M,KAAKwB,GAAGkC,MAAM,GAAI,GAEpD,MADU,WAANtC,GAAkBI,EAAEnB,cAAae,EAAII,EAAEnB,YAAYsV,MAC7C,QAANvU,GAAqB,QAANA,EAAoBxB,MAAM83D,KAAKl2D,GACxC,cAANJ,GAAqB,2CAA2C2H,KAAK3H,GAAW00H,GAAkBt0H,EAAGw0H,QAAzG,CALc,CAMhB,CAEA,SAASF,GAAkBvmG,EAAK+nC,IACnB,MAAPA,GAAeA,EAAM/nC,EAAI5uB,UAAQ22D,EAAM/nC,EAAI5uB,QAE/C,IAAK,IAAIF,EAAI,EAAG2rE,EAAO,IAAIxsE,MAAM03D,GAAM72D,EAAI62D,EAAK72D,IAAK2rE,EAAK3rE,GAAK8uB,EAAI9uB,GAEnE,OAAO2rE,CACT,CAUA,IAAIqlD,GAAO,WAAiB,EAExB85B,GAAU,CAAC,EACXC,GAAY,CAAC,EACbC,GAAqB,KACrBC,GAAe,CACjBtxB,KAAM3I,GACNk6B,QAASl6B,IAGX,IACwB,qBAAXvsH,SAAwBqmJ,GAAUrmJ,QACrB,qBAAbqB,WAA0BilJ,GAAYjlJ,UACjB,qBAArBqlJ,mBAAkCH,GAAqBG,kBACvC,qBAAhB55B,cAA6B05B,GAAe15B,YACzD,CAAE,MAAOxyH,IAAI,CAEb,IAWIqsJ,GAAcC,GAAeC,GAAeC,GAAeC,GAV3DC,IADOX,GAAQ1lJ,WAAa,CAAC,GACPmD,UACtBA,QAA+B,IAAnBkjJ,GAA4B,GAAKA,GAC7CC,GAASZ,GACTa,GAAWZ,GACXa,GAAoBZ,GACpBa,GAAcZ,GAEda,IADeJ,GAAO5lJ,WACX6lJ,GAAS9nD,mBAAqB8nD,GAASzgG,MAA6C,oBAA9BygG,GAAS93I,kBAAqE,oBAA3B83I,GAAS5lJ,eAC7HgmJ,IAASxjJ,GAAUjI,QAAQ,UAAYiI,GAAUjI,QAAQ,YAIzD0rJ,GAAuB,qBACvBC,GAAgB,GAChBC,GAAqB,KACrBC,GAA4B,iBAC5BC,GAAgB,gBAChBC,GAAyB,yBACzBC,GAAiC,iCACjCC,GAAc,cACdC,GAAY,YACZC,GAA8B,oBAC9BC,GAA0B,QAC1BC,GAAsC,CAAC,OAAQ,OAAQ,QAAS,UAChEC,GAAa,WACf,IACE,OAAOvmC,CACT,CAAE,MAAOtnH,IACP,OAAO,CACT,CACF,CANiB,GAOb8tJ,GAAiB,UACjBC,GAAe,QACfC,GAAW,CAACF,GAAgBC,IAEhC,SAASE,GAAYl5F,GAEnB,OAAO,IAAImoE,MAAMnoE,EAAK,CACpBtxD,IAAK,SAAaiJ,EAAQosB,GACxB,OAAOA,KAAQpsB,EAASA,EAAOosB,GAAQpsB,EAAOohJ,GAChD,GAEJ,CACA,IAAII,GAAkBD,IAAgCtC,GAAnBU,GAAe,CAAC,EAAiCyB,GAAgB,CAClG,GAAM,QACN,IAAO,QACP,WAAY,QACZ,IAAO,UACP,aAAc,UACd,IAAO,QACP,WAAY,QACZ,IAAO,OACP,UAAW,OACX,IAAO,UACP,aAAc,UACd,IAAO,SACP,YAAa,SACb,IAAO,MACP,SAAU,QACRnC,GAAgBU,GAAc0B,GAAc,CAC9C,GAAM,QACN,KAAQ,QACR,WAAY,QACZ,KAAQ,UACR,aAAc,YACZ1B,KACA8B,GAAkBF,IAAiCtC,GAApBW,GAAgB,CAAC,EAAkCwB,GAAgB,CACpG,MAAS,MACT,QAAW,MACX,MAAS,MACT,KAAQ,MACR,QAAW,MACX,OAAU,MACV,IAAO,QACLnC,GAAgBW,GAAeyB,GAAc,CAC/C,MAAS,OACT,QAAW,SACTzB,KACA8B,GAAuBH,IAAiCtC,GAApBY,GAAgB,CAAC,EAAkCuB,GAAgB,CACzG,IAAO,YACP,IAAO,aACP,IAAO,SACP,IAAO,WACP,IAAO,aACP,IAAO,WACP,IAAO,YACLnC,GAAgBY,GAAewB,GAAc,CAC/C,KAAQ,WACR,KAAQ,eACNxB,KACA8B,GAAuBJ,IAAiCtC,GAApBa,GAAgB,CAAC,EAAkCsB,GAAgB,CACzG,YAAa,MACb,aAAc,MACd,SAAU,MACV,WAAY,MACZ,aAAc,MACd,WAAY,MACZ,UAAW,QACTnC,GAAgBa,GAAeuB,GAAc,CAC/C,WAAY,OACZ,aAAc,SACZvB,KACA8B,GAAgC,iCAEhCC,GAAwB,iBACxBC,GAAsB,0FACtBC,GAAwBR,IAAiCtC,GAApBc,GAAgB,CAAC,EAAkCqB,GAAgB,CAC1G,IAAO,MACP,IAAO,MACP,OAAU,MACV,IAAO,MACP,IAAO,QACLnC,GAAgBc,GAAesB,GAAc,CAC/C,IAAO,OACP,IAAO,SACLtB,KACAiC,GAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IACvCC,GAAcD,GAAS3qJ,OAAO,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KACnE6qJ,GAAkC,CAAC,QAAS,cAAe,YAAa,oBAAqB,gBAC7FC,GAAkB,CACpBC,MAAO,gBACPC,aAAc,eACdC,QAAS,UACTC,UAAW,aAETC,GAAW,IAAIrmE,IACnB5oF,OAAOqyD,KAAK67F,GAAgBL,KAAiB3gG,IAAI+hG,GAAStoH,IAAIhzB,KAAKs7I,KACnEjvJ,OAAOqyD,KAAK67F,GAAgBJ,KAAe5gG,IAAI+hG,GAAStoH,IAAIhzB,KAAKs7I,KACjE,IAAIC,GAAmB,GAAGprJ,OAAOiqJ,GAAU9qB,GAAmBgsB,IAAW,CAAC,MAAO,KAAM,KAAM,KAAM,KAAM,MAAO,OAAQ,SAAU,OAAQ,YAAa,SAAU,YAAa,kBAAmB,gBAAiB,OAAQ,KAAM,UAAW,iBAAkB,cAAe,SAAU,KAAM,YAAa,aAAc,QAAS,aAAc,aAAc,YAAa,YAAa,QAAS,aAAc,eAAgB,OAAQ,WAAY,WAAY,QAAS,KAAML,GAAgBC,MAAOD,GAAgBE,aAAcF,GAAgBG,QAASH,GAAgBI,YAAYlrJ,OAAO2qJ,GAASvhG,KAAI,SAAUvrD,GACllB,MAAO,GAAGmC,OAAOnC,EAAG,IACtB,KAAImC,OAAO4qJ,GAAYxhG,KAAI,SAAUvrD,GACnC,MAAO,KAAKmC,OAAOnC,EACrB,KAEIwtJ,GAAUzC,GAAO0C,mBAAqB,CAAC,EAmB3C,GAAIzC,IAA8C,oBAA3BA,GAASljG,cAA8B,CAChD,CAAC,CAAC,qBAAsB,gBAAiB,CAAC,kBAAmB,aAAc,CAAC,sBAAuB,iBAAkB,CAAC,qBAAsB,gBAAiB,CAAC,yBAA0B,oBAAqB,CAAC,wBAAyB,kBAAmB,CAAC,oBAAqB,cAAe,CAAC,iBAAkB,YAAa,CAAC,8BAA+B,wBAAyB,CAAC,yBAA0B,oBAAqB,CAAC,uBAAwB,kBAAmB,CAAC,4BAA6B,sBAAuB,CAAC,2BAA4B,sBAAuB,CAAC,0BAA2B,qBAC/lB31B,SAAQ,SAAUgrG,GACtB,IAAI0e,EAAQ7Y,GAAe7F,EAAM,GAC7BuwB,EAAO7R,EAAM,GACbxuG,EAAMwuG,EAAM,GAEZ32G,EAhBR,SAAgBA,GAGd,MAAY,KAARA,GACQ,UAARA,IACQ,SAARA,GACGA,EACT,CAScyoH,CAxBd,SAAuBD,GACrB,IAAI/2H,EAAUq0H,GAASljG,cAAc,UAAY4lG,EAAO,KAExD,GAAI/2H,EACF,OAAOA,EAAQw8F,aAAau6B,EAEhC,CAkBqBE,CAAcF,SAEnB93F,IAAR1wB,GAA6B,OAARA,IACvBsoH,GAAQngH,GAAOnI,EAEnB,GACF,CAEA,IAAIwrF,GAAW,CACbm9B,aAAc,QACdC,cAAe,UACfC,UAAWxC,GACXyC,iBAAkBxC,GAClByC,gBAAgB,EAChBC,YAAY,EACZC,UAAU,EACVC,sBAAsB,EACtBC,kBAAkB,EAClBC,eAAgB,QAChBC,oBAAoB,EACpBC,oBAAoB,EACpBC,kBAAkB,GAGhBjB,GAAQkB,eACVlB,GAAQO,UAAYP,GAAQkB,cAG9B,IAAIz2F,GAAU6xF,GAAeA,GAAe,CAAC,EAAGp5B,IAAW88B,IAEtDv1F,GAAQg2F,iBAAgBh2F,GAAQo2F,kBAAmB,GACxD,IAAIp3F,GAAS,CAAC,EACd54D,OAAOqyD,KAAKggE,IAAUv+F,SAAQ,SAAUkb,GACtChvC,OAAOgC,eAAe42D,GAAQ5pB,EAAK,CACjCzrC,YAAY,EACZ+B,IAAK,SAAauhC,GAChB+yB,GAAQ5qB,GAAOnI,EAEfypH,GAAYx8H,SAAQ,SAAUy5D,GAC5B,OAAOA,EAAG30B,GACZ,GACF,EACAp1D,IAAK,WACH,OAAOo2D,GAAQ5qB,EACjB,GAEJ,IAEAhvC,OAAOgC,eAAe42D,GAAQ,eAAgB,CAC5Cr1D,YAAY,EACZ+B,IAAK,SAAauhC,GAChB+yB,GAAQ81F,UAAY7oH,EAEpBypH,GAAYx8H,SAAQ,SAAUy5D,GAC5B,OAAOA,EAAG30B,GACZ,GACF,EACAp1D,IAAK,WACH,OAAOo2D,GAAQ81F,SACjB,IAEFhD,GAAO0C,kBAAoBx2F,GAC3B,IAAI03F,GAAc,GASlB,IAAIthJ,GAAIi+I,GACJsD,GAAuB,CACzBz+H,KAAM,GACN7R,EAAG,EACHN,EAAG,EACHmH,OAAQ,EACR0pI,OAAO,EACPC,OAAO,GAyBT,IAAIC,GAAS,iEACb,SAASC,KAIP,IAHA,IAAI7+H,EAAO,GACPriB,EAAK,GAEFqiB,KAAS,GACdriB,GAAMihJ,GAAuB,GAAhBhnJ,KAAKY,SAAgB,GAGpC,OAAOmF,CACT,CACA,SAAS2oE,GAAQtjB,GAGf,IAFA,IAAIoH,EAAQ,GAEHl7D,GAAK8zD,GAAO,IAAI5zD,SAAW,EAAGF,KACrCk7D,EAAMl7D,GAAK8zD,EAAI9zD,GAGjB,OAAOk7D,CACT,CACA,SAAS00F,GAAWr+H,GAClB,OAAIA,EAAKs+H,UACAz4E,GAAQ7lD,EAAKs+H,YAEZt+H,EAAKuiG,aAAa,UAAY,IAAI9kH,MAAM,KAAKghB,QAAO,SAAUhwB,GACpE,OAAOA,CACT,GAEJ,CACA,SAAS8vJ,GAAWjf,GAClB,MAAO,GAAG/tI,OAAO+tI,GAAKzzH,QAAQ,KAAM,SAASA,QAAQ,KAAM,UAAUA,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,OAClI,CAMA,SAAS2yI,GAAWpwH,GAClB,OAAO3gC,OAAOqyD,KAAK1xB,GAAU,CAAC,GAAG8oF,QAAO,SAAUunC,EAAKC,GACrD,OAAOD,EAAM,GAAGltJ,OAAOmtJ,EAAW,MAAMntJ,OAAO68B,EAAOswH,GAAWr7I,OAAQ,IAC3E,GAAG,GACL,CACA,SAASs7I,GAAsB3pI,GAC7B,OAAOA,EAAUuK,OAASy+H,GAAqBz+H,MAAQvK,EAAUtH,IAAMswI,GAAqBtwI,GAAKsH,EAAU5H,IAAM4wI,GAAqB5wI,GAAK4H,EAAUT,SAAWypI,GAAqBzpI,QAAUS,EAAUipI,OAASjpI,EAAUkpI,KAC9N,CA8CA,IAAIU,GAAa,korBAEjB,SAASC,KACP,IAAIC,EAAMnE,GACNoE,EAAMnE,GACNoE,EAAK34F,GAAO82F,UACZ/4D,EAAK/9B,GAAO+2F,iBACZjuJ,EAAIyvJ,GAER,GAAII,IAAOF,GAAO16D,IAAO26D,EAAK,CAC5B,IAAIE,EAAQ,IAAI13F,OAAO,MAAMh2D,OAAOutJ,EAAK,OAAQ,KAC7CI,EAAiB,IAAI33F,OAAO,OAAOh2D,OAAOutJ,EAAK,OAAQ,KACvDK,EAAQ,IAAI53F,OAAO,MAAMh2D,OAAOwtJ,GAAM,KAC1C5vJ,EAAIA,EAAE0c,QAAQozI,EAAO,IAAI1tJ,OAAOytJ,EAAI,MAAMnzI,QAAQqzI,EAAgB,KAAK3tJ,OAAOytJ,EAAI,MAAMnzI,QAAQszI,EAAO,IAAI5tJ,OAAO6yF,GACpH,CAEA,OAAOj1F,CACT,CAEA,IAAIiwJ,IAAe,EAEnB,SAASC,KACHh5F,GAAOi3F,aAAe8B,MAvI5B,SAAmBP,GACjB,GAAKA,GAAQtE,GAAb,CAIA,IAAI9hJ,EAAQ2hJ,GAAS5lJ,cAAc,SACnCiE,EAAM4S,aAAa,OAAQ,YAC3B5S,EAAMyjF,UAAY2iE,EAIlB,IAHA,IAAIS,EAAelF,GAASzgG,KAAKpF,WAC7BgrG,EAAc,KAET9wJ,EAAI6wJ,EAAa3wJ,OAAS,EAAGF,GAAK,EAAGA,IAAK,CACjD,IAAI2zF,EAAQk9D,EAAa7wJ,GACrBuxG,GAAW5d,EAAM4d,SAAW,IAAIv1C,cAEhC,CAAC,QAAS,QAAQ17D,QAAQixG,IAAY,IACxCu/C,EAAcn9D,EAElB,CAEAg4D,GAASzgG,KAAK9d,aAAapjC,EAAO8mJ,EAjBlC,CAmBF,CAkHIC,CAAUX,MACVO,IAAe,EAEnB,CAEA,IAAIK,GAAY,CACdC,OAAQ,WACN,MAAO,CACLC,IAAK,CACHd,IAAKA,GACLW,UAAWH,IAGjB,EACAt9F,MAAO,WACL,MAAO,CACL69F,yBAA0B,WACxBP,IACF,EACAQ,YAAa,WACXR,IACF,EAEJ,GAGEpxI,GAAIksI,IAAU,CAAC,EACdlsI,GAAEwsI,MAAuBxsI,GAAEwsI,IAAwB,CAAC,GACpDxsI,GAAEwsI,IAAsBrsH,SAAQngB,GAAEwsI,IAAsBrsH,OAAS,CAAC,GAClEngB,GAAEwsI,IAAsB14F,QAAO9zC,GAAEwsI,IAAsB14F,MAAQ,CAAC,GAChE9zC,GAAEwsI,IAAsBqF,QAAO7xI,GAAEwsI,IAAsBqF,MAAQ,IACpE,IAAIC,GAAY9xI,GAAEwsI,IAEduF,GAAY,GAUZt+H,IAAS,EAYb,SAASu+H,GAAOC,GACd,IAAI/mE,EAAM+mE,EAAc/mE,IACpBgnE,EAAwBD,EAAc74I,WACtCA,OAAuC,IAA1B84I,EAAmC,CAAC,EAAIA,EACrDC,EAAwBF,EAAc56G,SACtCA,OAAqC,IAA1B86G,EAAmC,GAAKA,EAEvD,MAA6B,kBAAlBF,EACF3B,GAAW2B,GAEX,IAAI3uJ,OAAO4nF,EAAK,KAAK5nF,OAlJhC,SAAwB8V,GACtB,OAAO5Z,OAAOqyD,KAAKz4C,GAAc,CAAC,GAAG6vG,QAAO,SAAUunC,EAAK1nE,GACzD,OAAO0nE,EAAM,GAAGltJ,OAAOwlF,EAAe,MAAOxlF,OAAOgtJ,GAAWl3I,EAAW0vE,IAAiB,KAC7F,GAAG,IAAI1zE,MACT,CA8IuCg9I,CAAeh5I,GAAa,KAAK9V,OAAO+zC,EAASqV,IAAIslG,IAAQ3gJ,KAAK,IAAK,MAAM/N,OAAO4nF,EAAK,IAEhI,CAEA,SAASmnE,GAAgBC,EAAS/2E,EAAQg3E,GACxC,GAAID,GAAWA,EAAQ/2E,IAAW+2E,EAAQ/2E,GAAQg3E,GAChD,MAAO,CACLh3E,OAAQA,EACRg3E,SAAUA,EACVxlG,KAAMulG,EAAQ/2E,GAAQg3E,GAG5B,CAhCIjG,MACF74H,IAAU04H,GAAS9nD,gBAAgBmuD,SAAW,aAAe,iBAAiB1pJ,KAAKqjJ,GAASj7I,cAC/Ei7I,GAAS93I,iBAAiB,oBAZ1B,SAAS4yF,IACtBklD,GAASl3I,oBAAoB,mBAAoBgyF,GACjDxzE,GAAS,EACTs+H,GAAUrlG,KAAI,SAAUjnB,GACtB,OAAOA,GACT,GACF,KA2CA,IAmBIwjF,GAAS,SAA0BwpC,EAAShtH,EAAIknD,EAAc+lE,GAChE,IAGIlyJ,EACAguC,EACAkhC,EALA7d,EAAOryD,OAAOqyD,KAAK4gG,GACnB/xJ,EAASmxD,EAAKnxD,OACdiC,OAA2Bo0D,IAAhB27F,EAtBG,SAAuBp3F,EAAMo3F,GAC/C,OAAO,SAAU/xJ,EAAG0e,EAAGjR,EAAGI,GACxB,OAAO8sD,EAAKv7D,KAAK2yJ,EAAa/xJ,EAAG0e,EAAGjR,EAAGI,EACzC,CACF,CAkB6CmkJ,CAAcltH,EAAIitH,GAAejtH,EAa5E,SARqBsxB,IAAjB41B,GACFnsF,EAAI,EACJkvE,EAAS+iF,EAAQ5gG,EAAK,MAEtBrxD,EAAI,EACJkvE,EAASid,GAGJnsF,EAAIE,EAAQF,IAEjBkvE,EAAS/sE,EAAS+sE,EAAQ+iF,EAD1BjkH,EAAMqjB,EAAKrxD,IAC6BguC,EAAKikH,GAG/C,OAAO/iF,CACT,EAoDA,SAASkjF,GAAMC,GACb,IAAIC,EA3BN,SAAoBn1F,GAKlB,IAJA,IAAIrD,EAAS,GACTy4F,EAAU,EACVryJ,EAASi9D,EAAOj9D,OAEbqyJ,EAAUryJ,GAAQ,CACvB,IAAIwB,EAAQy7D,EAAOzpC,WAAW6+H,KAE9B,GAAI7wJ,GAAS,OAAUA,GAAS,OAAU6wJ,EAAUryJ,EAAQ,CAC1D,IAAI8lC,EAAQm3B,EAAOzpC,WAAW6+H,KAEN,QAAX,MAARvsH,GAEH8zB,EAAOz3D,OAAe,KAARX,IAAkB,KAAe,KAARskC,GAAiB,QAExD8zB,EAAOz3D,KAAKX,GACZ6wJ,IAEJ,MACEz4F,EAAOz3D,KAAKX,EAEhB,CAEA,OAAOo4D,CACT,CAGgB04F,CAAWH,GACzB,OAA0B,IAAnBC,EAAQpyJ,OAAeoyJ,EAAQ,GAAGhmJ,SAAS,IAAM,IAC1D,CAiBA,SAASmmJ,GAAeC,GACtB,OAAO1zJ,OAAOqyD,KAAKqhG,GAAOjqC,QAAO,SAAUunC,EAAK+B,GAC9C,IAAIxlG,EAAOmmG,EAAMX,GASjB,QARiBxlG,EAAKA,KAGpByjG,EAAIzjG,EAAKwlG,UAAYxlG,EAAKA,KAE1ByjG,EAAI+B,GAAYxlG,EAGXyjG,CACT,GAAG,CAAC,EACN,CAEA,SAAS2C,GAAY53E,EAAQ23E,GAC3B,IACIE,GADS3yJ,UAAUC,OAAS,QAAsBq2D,IAAjBt2D,UAAU,GAAmBA,UAAU,GAAK,CAAC,GACnD4yJ,UAC3BA,OAAkC,IAAtBD,GAAuCA,EACnD1W,EAAauW,GAAeC,GAEO,oBAA5BpB,GAAUh+F,MAAMw/F,SAA2BD,EAGpDvB,GAAU3xH,OAAOo7C,GAAU0vE,GAAeA,GAAe,CAAC,EAAG6G,GAAU3xH,OAAOo7C,IAAW,CAAC,GAAImhE,GAF9FoV,GAAUh+F,MAAMw/F,QAAQ/3E,EAAQ03E,GAAeC,IAYlC,QAAX33E,GACF43E,GAAY,KAAMD,EAEtB,CAEA,IAaIK,GAAaC,GAAWC,GACxBtzH,GAAS2xH,GAAU3xH,OACnB0xH,GAAQC,GAAUD,MAClB6B,IAAgCxI,GAAlBqI,GAAc,CAAC,EAAgClG,GAAgB7tJ,OAAO8wC,OAAOq9G,GAAqBN,MAAmBnC,GAAgBqI,GAAajG,GAAc9tJ,OAAO8wC,OAAOq9G,GAAqBL,MAAiBiG,IAClOI,GAAuB,KACvBC,GAAa,CAAC,EACdC,GAAc,CAAC,EACfC,GAAa,CAAC,EACdC,GAAgB,CAAC,EACjBC,GAAW,CAAC,EACZC,IAA4B/I,GAAhBsI,GAAY,CAAC,EAA8BnG,GAAgB7tJ,OAAOqyD,KAAK47F,GAAgBJ,MAAmBnC,GAAgBsI,GAAWlG,GAAc9tJ,OAAOqyD,KAAK47F,GAAgBH,MAAiBkG,IAMhN,SAASU,GAAYhF,EAAWiF,GAC9B,IALkBz+I,EAKd0gE,EAAQ+9E,EAAI3kJ,MAAM,KAClB+rE,EAASnF,EAAM,GACfm8E,EAAWn8E,EAAM3yE,MAAM,GAAG4N,KAAK,KAEnC,OAAIkqE,IAAW2zE,GAA0B,KAAbqD,IATV78I,EASyC68I,GARnD7D,GAAiB5tJ,QAAQ4U,IAWxB,KAFA68I,CAIX,CACA,IA7akBxlE,GA6ad+pD,GAAQ,WACV,IAAIsd,EAAS,SAAgB5hB,GAC3B,OAAOvpB,GAAO9oF,IAAQ,SAAU5+B,EAAGiJ,EAAO+wE,GAExC,OADAh6E,EAAEg6E,GAAU0tC,GAAOz+G,EAAOgoI,EAAS,CAAC,GAC7BjxI,CACT,GAAG,CAAC,EACN,EAEAqyJ,GAAaQ,GAAO,SAAU5D,EAAKzjG,EAAMwlG,GAKvC,GAJIxlG,EAAK,KACPyjG,EAAIzjG,EAAK,IAAMwlG,GAGbxlG,EAAK,GAAI,CACX,IAAIiR,EAAUjR,EAAK,GAAGv8B,QAAO,SAAU7vB,GACrC,MAAoB,kBAANA,CAChB,IACAq9D,EAAQ1qC,SAAQ,SAAUowD,GACxB8sE,EAAI9sE,EAAM52E,SAAS,KAAOylJ,CAC5B,GACF,CAEA,OAAO/B,CACT,IACAqD,GAAcO,GAAO,SAAU5D,EAAKzjG,EAAMwlG,GAGxC,GAFA/B,EAAI+B,GAAYA,EAEZxlG,EAAK,GAAI,CACX,IAAIiR,EAAUjR,EAAK,GAAGv8B,QAAO,SAAU7vB,GACrC,MAAoB,kBAANA,CAChB,IACAq9D,EAAQ1qC,SAAQ,SAAUowD,GACxB8sE,EAAI9sE,GAAS6uE,CACf,GACF,CAEA,OAAO/B,CACT,IACAwD,GAAWI,GAAO,SAAU5D,EAAKzjG,EAAMwlG,GACrC,IAAIv0F,EAAUjR,EAAK,GAKnB,OAJAyjG,EAAI+B,GAAYA,EAChBv0F,EAAQ1qC,SAAQ,SAAUowD,GACxB8sE,EAAI9sE,GAAS6uE,CACf,IACO/B,CACT,IAGA,IAAI6D,EAAa,QAASl0H,IAAUi4B,GAAOk8F,aACvCC,EAActrC,GAAO4oC,IAAO,SAAUrB,EAAK7pE,GAC7C,IAAI6tE,EAAwB7tE,EAAK,GAC7BpL,EAASoL,EAAK,GACd4rE,EAAW5rE,EAAK,GAoBpB,MAlBe,QAAXpL,GAAqB84E,IACvB94E,EAAS,OAG0B,kBAA1Bi5E,IACThE,EAAIjkF,MAAMioF,GAAyB,CACjCj5E,OAAQA,EACRg3E,SAAUA,IAIuB,kBAA1BiC,IACThE,EAAIiE,SAASD,EAAsB1nJ,SAAS,KAAO,CACjDyuE,OAAQA,EACRg3E,SAAUA,IAIP/B,CACT,GAAG,CACDjkF,MAAO,CAAC,EACRkoF,SAAU,CAAC,IAEbX,GAAaS,EAAYhoF,MACzBwnF,GAAgBQ,EAAYE,SAC5Bd,GAAuBe,GAAmBt8F,GAAO42F,aAAc,CAC7D2F,OAAQv8F,GAAO62F,eAEnB,EAOA,SAAS2F,GAAUr5E,EAAQs3E,GACzB,OAAQe,GAAWr4E,IAAW,CAAC,GAAGs3E,EACpC,CAIA,SAASgC,GAAQt5E,EAAQmI,GACvB,OAAQswE,GAASz4E,IAAW,CAAC,GAAGmI,EAClC,CACA,SAASoxE,GAAUp/I,GACjB,OAAOo+I,GAAWp+I,IAAS,CACzB6lE,OAAQ,KACRg3E,SAAU,KAEd,CAYA,SAASwC,KACP,OAAOpB,EACT,CAliBkB5mE,GAggBT,SAAU3+E,GACjBulJ,GAAuBe,GAAmBtmJ,EAAE4gJ,aAAc,CACxD2F,OAAQv8F,GAAO62F,eAEnB,EAngBEa,GAAYjtJ,KAAKkqF,IAogBnB+pD,KA8BA,IAAIke,GAAqB,WACvB,MAAO,CACLz5E,OAAQ,KACRg3E,SAAU,KACVnwB,KAAM,GAEV,EACA,SAASsyB,GAAmBO,GAC1B,IACIC,GADSz0J,UAAUC,OAAS,QAAsBq2D,IAAjBt2D,UAAU,GAAmBA,UAAU,GAAK,CAAC,GACtDk0J,OACxBA,OAA4B,IAAnBO,EAA4B7H,GAAiB6H,EACtD1qJ,EAAQijJ,GAAgBkH,GAAQM,GAChC15E,EAASmyE,GAAgBiH,GAAQM,IAAkBvH,GAAgBiH,GAAQnqJ,GAC3E2qJ,EAAUF,KAAiBnD,GAAU3xH,OAAS80H,EAAgB,KAClE,OAAO15E,GAAU45E,GAAW,IAC9B,CACA,IAAIC,IAAkDlK,GAA3BuI,GAAuB,CAAC,EAAyCpG,GAAgB7tJ,OAAOqyD,KAAK87F,GAAqBN,MAAmBnC,GAAgBuI,GAAsBnG,GAAc9tJ,OAAOqyD,KAAK87F,GAAqBL,MAAiBmG,IACtQ,SAAS4B,GAAiB/kH,GACxB,IAAIglH,EAGAC,GADS90J,UAAUC,OAAS,QAAsBq2D,IAAjBt2D,UAAU,GAAmBA,UAAU,GAAK,CAAC,GACjD+0J,YAC7BA,OAAsC,IAAxBD,GAAyCA,EACvDE,GAA4BvK,GAAhBoK,EAAY,CAAC,EAA8BjI,GAAgB,GAAG/pJ,OAAO80D,GAAO82F,UAAW,KAAK5rJ,OAAO+pJ,KAAkBnC,GAAgBoK,EAAWhI,GAAc,GAAGhqJ,OAAO80D,GAAO82F,UAAW,KAAK5rJ,OAAOgqJ,KAAgBgI,GAClOI,EAAc,KACdf,EAAStH,IAET/8G,EAAO0e,SAASymG,EAASpI,MAAoB/8G,EAAOujB,MAAK,SAAUlwD,GACrE,OAAOyxJ,GAAoB/H,IAAgBr+F,SAASrrD,EACtD,OACEgxJ,EAAStH,KAGP/8G,EAAO0e,SAASymG,EAASnI,MAAkBh9G,EAAOujB,MAAK,SAAUlwD,GACnE,OAAOyxJ,GAAoB9H,IAAct+F,SAASrrD,EACpD,OACEgxJ,EAASrH,IAGX,IAAIqI,EAAYrlH,EAAO24E,QAAO,SAAUunC,EAAK2D,GAC3C,IAAI5B,EAAW2B,GAAY97F,GAAO82F,UAAWiF,GAiB7C,GAfIh0H,GAAOg0H,IACTA,EAAMT,GAAWiB,GAAQ3lG,SAASmlG,GAAOvG,GAAqB+G,GAAQR,GAAOA,EAC7EuB,EAAcvB,EACd3D,EAAIj1E,OAAS44E,GACJF,GAASU,GAAQ7zJ,QAAQqzJ,IAAQ,GAC1CuB,EAAcvB,EACd3D,EAAIj1E,OAASm5E,GAAmBP,EAAK,CACnCQ,OAAQA,KAEDpC,EACT/B,EAAI+B,SAAWA,EACN4B,IAAQ/7F,GAAO+2F,kBAAoBgF,IAAQsB,EAASpI,KAAmB8G,IAAQsB,EAASnI,KACjGkD,EAAIpuB,KAAKv/H,KAAKsxJ,IAGXqB,GAAehF,EAAIj1E,QAAUi1E,EAAI+B,SAAU,CAC9C,IAAI5rE,EAAuB,OAAhB+uE,EAAuBZ,GAAUtE,EAAI+B,UAAY,CAAC,EACzDqD,EAAgBf,GAAQrE,EAAIj1E,OAAQi1E,EAAI+B,UAExC5rE,EAAKpL,SACPm6E,EAAc,MAGhBlF,EAAI+B,SAAW5rE,EAAK4rE,UAAYqD,GAAiBpF,EAAI+B,SACrD/B,EAAIj1E,OAASoL,EAAKpL,QAAUi1E,EAAIj1E,OAEb,QAAfi1E,EAAIj1E,QAAqBp7C,GAAY,MAAKA,GAAY,KAAMi4B,GAAOk8F,eAGrE9D,EAAIj1E,OAAS,MAEjB,CAEA,OAAOi1E,CACT,GAAGwE,MAqBH,OAnBI1kH,EAAO0e,SAAS,cAAgB1e,EAAO0e,SAAS,UAClD2mG,EAAUp6E,OAAS,QAGjBjrC,EAAO0e,SAAS,eAAiB1e,EAAO0e,SAAS,UACnD2mG,EAAUp6E,OAAS,OAGhBo6E,EAAUp6E,QAAUo5E,IAAWrH,KAAiBntH,GAAa,OAAKi4B,GAAOk8F,eAC5EqB,EAAUp6E,OAAS,OACnBo6E,EAAUpD,SAAWsC,GAAQc,EAAUp6E,OAAQo6E,EAAUpD,WAAaoD,EAAUpD,UAGzD,OAArBoD,EAAUp6E,QAAmC,OAAhBm6E,IAG/BC,EAAUp6E,OAASw5E,MAA4B,OAG1CY,CACT,CAEA,IAAIE,GAAuB,WACzB,SAASA,KAvgCX,SAAyBpsG,EAAUiyE,GACjC,KAAMjyE,aAAoBiyE,GACxB,MAAM,IAAIz7H,UAAU,oCAExB,CAogCIkmI,CAAgBhmI,KAAM01J,GAEtB11J,KAAK21J,YAAc,CAAC,CACtB,CA3/BF,IAAsBp6B,EAAaM,EAAYC,EAijC7C,OAjjCoBP,EA6/BPm6B,EA7/BoB75B,EA6/BX,CAAC,CACrBxtF,IAAK,MACLtsC,MAAO,WAGL,IAFA,IAAI8mI,EAAQ7oI,KAEH08I,EAAOp8I,UAAUC,OAAQo1J,EAAc,IAAIn2J,MAAMk9I,GAAO5K,EAAO,EAAGA,EAAO4K,EAAM5K,IACtF6jB,EAAY7jB,GAAQxxI,UAAUwxI,GAGhC,IAAI8jB,EAAYD,EAAY7sC,OAAO9oH,KAAK61J,iBAAkB,CAAC,GAC3Dx2J,OAAOqyD,KAAKkkG,GAAWziI,SAAQ,SAAUkb,GACvCw6F,EAAM8sB,YAAYtnH,GAAOy8G,GAAeA,GAAe,CAAC,EAAGjiB,EAAM8sB,YAAYtnH,IAAQ,CAAC,GAAIunH,EAAUvnH,IACpG2kH,GAAY3kH,EAAKunH,EAAUvnH,IAE3B,IAAIynH,EAAatI,GAAqBN,IAAgB7+G,GAClDynH,GAAY9C,GAAY8C,EAAYF,EAAUvnH,IAClDsoG,IACF,GACF,GACC,CACDtoG,IAAK,QACLtsC,MAAO,WACL/B,KAAK21J,YAAc,CAAC,CACtB,GACC,CACDtnH,IAAK,mBACLtsC,MAAO,SAA0B6zJ,EAAWliC,GAC1C,IAAI6oB,EAAa7oB,EAAWt4C,QAAUs4C,EAAW0+B,UAAY1+B,EAAW9mE,KAAO,CAC7E,EAAG8mE,GACDA,EAmBJ,OAlBAr0H,OAAOqyD,KAAK6qF,GAAYhwF,KAAI,SAAUle,GACpC,IAAI0nH,EAAkBxZ,EAAWluG,GAC7B+sC,EAAS26E,EAAgB36E,OACzBg3E,EAAW2D,EAAgB3D,SAC3BxlG,EAAOmpG,EAAgBnpG,KACvBiR,EAAUjR,EAAK,GACdgpG,EAAUx6E,KAASw6E,EAAUx6E,GAAU,CAAC,GAEzCvd,EAAQt9D,OAAS,GACnBs9D,EAAQ1qC,SAAQ,SAAUowD,GACH,kBAAVA,IACTqyE,EAAUx6E,GAAQmI,GAAS32B,EAE/B,IAGFgpG,EAAUx6E,GAAQg3E,GAAYxlG,CAChC,IACOgpG,CACT,IA7iCE/5B,GAAYD,GAAkBL,EAAY77H,UAAWm8H,GACrDC,GAAaF,GAAkBL,EAAaO,GAChDz8H,OAAOgC,eAAek6H,EAAa,YAAa,CAC9ClU,UAAU,IA6iCLquC,CACT,CA5D2B,GA8DvBM,GAAW,GACXC,GAAS,CAAC,EACVC,GAAY,CAAC,EACbC,GAAsB92J,OAAOqyD,KAAKwkG,IA+CtC,SAASE,GAAWC,EAAMC,GACxB,IAAK,IAAI5Z,EAAOp8I,UAAUC,OAAQm4D,EAAO,IAAIl5D,MAAMk9I,EAAO,EAAIA,EAAO,EAAI,GAAI5K,EAAO,EAAGA,EAAO4K,EAAM5K,IAClGp5E,EAAKo5E,EAAO,GAAKxxI,UAAUwxI,GAO7B,OAJcmkB,GAAOI,IAAS,IACtBljI,SAAQ,SAAUojI,GACxBD,EAAcC,EAAO91J,MAAM,KAAM,CAAC61J,GAAanzJ,OAAOu1D,GACxD,IACO49F,CACT,CACA,SAASE,GAAUH,GACjB,IAAK,IAAItZ,EAAQz8I,UAAUC,OAAQm4D,EAAO,IAAIl5D,MAAMu9I,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGtkF,EAAKskF,EAAQ,GAAK18I,UAAU08I,IAGhBiZ,GAAOI,IAAS,IACtBljI,SAAQ,SAAUojI,GACxBA,EAAO91J,MAAM,KAAMi4D,EACrB,GAEF,CACA,SAAS+9F,KACP,IAAIJ,EAAO/1J,UAAU,GACjBo4D,EAAOl5D,MAAME,UAAU4D,MAAM1D,KAAKU,UAAW,GACjD,OAAO41J,GAAUG,GAAQH,GAAUG,GAAM51J,MAAM,KAAMi4D,QAAQ9B,CAC/D,CAEA,SAAS8/F,GAAmBC,GACA,OAAtBA,EAAWv7E,SACbu7E,EAAWv7E,OAAS,OAGtB,IAAIg3E,EAAWuE,EAAWvE,SACtBh3E,EAASu7E,EAAWv7E,QAAUw5E,KAClC,GAAKxC,EAEL,OADAA,EAAWsC,GAAQt5E,EAAQg3E,IAAaA,EACjCF,GAAgB0E,GAAQjB,YAAav6E,EAAQg3E,IAAaF,GAAgBP,GAAU3xH,OAAQo7C,EAAQg3E,EAC7G,CACA,IAAIwE,GAAU,IAAIlB,GAMdnE,GAAM,CACRsF,MAAO,WACL,IAAIvzB,EAAShjI,UAAUC,OAAS,QAAsBq2D,IAAjBt2D,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAElF,OAAI6rJ,IACFqK,GAAU,cAAelzB,GACzBmzB,GAAa,qBAAsBnzB,GAC5BmzB,GAAa,QAASnzB,IAEtB5hI,QAAQwvH,OAAO,yCAE1B,EACA4lC,MAAO,WACL,IAAIxzB,EAAShjI,UAAUC,OAAS,QAAsBq2D,IAAjBt2D,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9Ey2J,EAAqBzzB,EAAOyzB,oBAEF,IAA1B9+F,GAAOg3F,iBACTh3F,GAAOg3F,gBAAiB,GAG1Bh3F,GAAOo3F,kBAAmB,EA7mB9B,SAAmB/pH,GACZ6mH,KACL74H,GAASlZ,WAAWkrB,EAAI,GAAKssH,GAAUlvJ,KAAK4iC,GAC9C,CA2mBI0xH,EAAS,WACPC,GAAY,CACVF,mBAAoBA,IAEtBP,GAAU,QAASlzB,EACrB,GACF,GAEEr0H,GAAQ,CACV29C,KAAM,SAAcsqG,GAClB,GAAc,OAAVA,EACF,OAAO,KAGT,GAAuB,WAAnBr4G,GAAQq4G,IAAuBA,EAAM97E,QAAU87E,EAAM9E,SACvD,MAAO,CACLh3E,OAAQ87E,EAAM97E,OACdg3E,SAAUsC,GAAQwC,EAAM97E,OAAQ87E,EAAM9E,WAAa8E,EAAM9E,UAI7D,GAAI5yJ,MAAMs0D,QAAQojG,IAA2B,IAAjBA,EAAM32J,OAAc,CAC9C,IAAI6xJ,EAAuC,IAA5B8E,EAAM,GAAGv2J,QAAQ,OAAeu2J,EAAM,GAAG5zJ,MAAM,GAAK4zJ,EAAM,GACrE97E,EAASm5E,GAAmB2C,EAAM,IACtC,MAAO,CACL97E,OAAQA,EACRg3E,SAAUsC,GAAQt5E,EAAQg3E,IAAaA,EAE3C,CAEA,GAAqB,kBAAV8E,IAAuBA,EAAMv2J,QAAQ,GAAGwC,OAAO80D,GAAO82F,UAAW,OAAS,GAAKmI,EAAMzqG,MAAMihG,KAAiC,CACrI,IAAIyJ,EAAgBjC,GAAiBgC,EAAM7nJ,MAAM,KAAM,CACrDgmJ,aAAa,IAEf,MAAO,CACLj6E,OAAQ+7E,EAAc/7E,QAAUw5E,KAChCxC,SAAUsC,GAAQyC,EAAc/7E,OAAQ+7E,EAAc/E,WAAa+E,EAAc/E,SAErF,CAEA,GAAqB,kBAAV8E,EAAoB,CAC7B,IAAIE,EAAUxC,KAEd,MAAO,CACLx5E,OAAQg8E,EACRhF,SAAUsC,GAAQ0C,EAASF,IAAUA,EAEzC,CACF,GAEEG,GAAM,CACRC,OA7EW,WACXr/F,GAAOg3F,gBAAiB,EACxBh3F,GAAOo3F,kBAAmB,EAC1BmH,GAAU,SACZ,EA0EEv+F,OAAQA,GACRs5F,IAAKA,GACLtiJ,MAAOA,GACP2nJ,QAASA,GACTF,mBAAoBA,GACpB7E,OAAQA,IAGNoF,GAAc,WAChB,IACIM,GADSj3J,UAAUC,OAAS,QAAsBq2D,IAAjBt2D,UAAU,GAAmBA,UAAU,GAAK,CAAC,GAC/Cy2J,mBAC/BA,OAA+C,IAA1BQ,EAAmCvL,GAAWuL,GAClEl4J,OAAOqyD,KAAKigG,GAAU3xH,QAAQz/B,OAAS,GAAK03D,GAAOk8F,eAAiBhI,IAAUl0F,GAAOg3F,gBAAgBoI,GAAI9F,IAAIsF,MAAM,CACtHjlI,KAAMmlI,GAEV,EAEA,SAASS,GAAYtxH,EAAKuxH,GAmBxB,OAlBAp4J,OAAOgC,eAAe6kC,EAAK,WAAY,CACrCrjC,IAAK40J,IAEPp4J,OAAOgC,eAAe6kC,EAAK,OAAQ,CACjCrjC,IAAK,WACH,OAAOqjC,EAAIwxH,SAASnrG,KAAI,SAAU/rD,GAChC,OAAOqxJ,GAAOrxJ,EAChB,GACF,IAEFnB,OAAOgC,eAAe6kC,EAAK,OAAQ,CACjCrjC,IAAK,WACH,GAAKspJ,GAAL,CACA,IAAIj0I,EAAY8zI,GAAS5lJ,cAAc,OAEvC,OADA8R,EAAU41E,UAAY5nD,EAAIyxH,KACnBz/I,EAAUg/B,QAHE,CAIrB,IAEKhR,CACT,CAmDA,SAAS0xH,GAAsBt0B,GAC7B,IAAIu0B,EAAgBv0B,EAAOyvB,MACvB+E,EAAOD,EAAcC,KACrB18G,EAAOy8G,EAAcz8G,KACrBggC,EAASkoD,EAAOloD,OAChBg3E,EAAW9uB,EAAO8uB,SAClBxrI,EAAY08G,EAAO18G,UACnBwgE,EAASk8C,EAAOl8C,OAChB97C,EAAQg4F,EAAOh4F,MACfhJ,EAASghG,EAAOhhG,OAChBy1H,EAAUz0B,EAAOy0B,QACjB1xH,EAAQi9F,EAAOj9F,MACf2xH,EAAoB10B,EAAO20B,UAC3BA,OAAkC,IAAtBD,GAAuCA,EAEnD75B,EAAO/iF,EAAK88G,MAAQ98G,EAAO08G,EAC3B7lJ,EAAQksH,EAAKlsH,MACbC,EAASisH,EAAKjsH,OAEdimJ,EAA4B,QAAX/8E,EACjBg9E,EAAY,CAACngG,GAAO+2F,iBAAkBoD,EAAW,GAAGjvJ,OAAO80D,GAAO82F,UAAW,KAAK5rJ,OAAOivJ,GAAY,IAAI/hI,QAAO,SAAUpiB,GAC5H,OAAqC,IAA9Bo4B,EAAM6xG,QAAQv3I,QAAQsN,EAC/B,IAAGoiB,QAAO,SAAUpiB,GAClB,MAAa,KAANA,KAAcA,CACvB,IAAG9K,OAAOkjC,EAAM6xG,SAAShnI,KAAK,KAC1BmoB,EAAU,CACZ6d,SAAU,GACVj+B,WAAY6xI,GAAeA,GAAe,CAAC,EAAGzkH,EAAMptB,YAAa,CAAC,EAAG,CACnE,cAAemiE,EACf,YAAag3E,EACb,MAASgG,EACT,KAAQ/xH,EAAMptB,WAAWkxC,MAAQ,MACjC,MAAS,6BACT,QAAW,OAAOhnD,OAAO8O,EAAO,KAAK9O,OAAO+O,MAG5CmmJ,EAAyBF,KAAoB9xH,EAAM6xG,QAAQv3I,QAAQ,SAAW,CAChFsR,MAAO,GAAG9O,OAAO8O,EAAQC,EAAS,GAAK,MAAQ,OAC7C,CAAC,EAED+lJ,IACF5+H,EAAQpgB,WAAWwzI,IAAiB,IAGlCnhH,IACFjS,EAAQ6d,SAASx0C,KAAK,CACpBqoF,IAAK,QACL9xE,WAAY,CACVnK,GAAIuqB,EAAQpgB,WAAW,oBAAsB,SAAS9V,OAAO40J,GAAW/H,OAE1E94G,SAAU,CAAC5L,YAENjS,EAAQpgB,WAAWqyB,OAG5B,IAAIotB,EAAOoyF,GAAeA,GAAe,CAAC,EAAGzxH,GAAU,CAAC,EAAG,CACzD+hD,OAAQA,EACRg3E,SAAUA,EACV0F,KAAMA,EACN18G,KAAMA,EACN9Y,OAAQA,EACR1b,UAAWA,EACXwgE,OAAQA,EACRpnD,OAAQ8qH,GAAeA,GAAe,CAAC,EAAGuN,GAAyBhyH,EAAMrG,UAGvE68G,EAAQzhG,EAAK88G,OAASJ,EAAKI,MAAQzB,GAAa,uBAAwB/9F,IAAS,CACnFxhB,SAAU,GACVj+B,WAAY,CAAC,GACXw9I,GAAa,uBAAwB/9F,IAAS,CAChDxhB,SAAU,GACVj+B,WAAY,CAAC,GAEXi+B,EAAW2lG,EAAM3lG,SACjBj+B,EAAa4jI,EAAM5jI,WAKvB,OAHAy/C,EAAKxhB,SAAWA,EAChBwhB,EAAKz/C,WAAaA,EAEdmuE,EArGN,SAAmB+2C,GACjB,IAAI/iD,EAAS+iD,EAAK/iD,OACdg3E,EAAWj0B,EAAKi0B,SAChBl7G,EAAWinF,EAAKjnF,SAChBj+B,EAAaklH,EAAKllH,WAClBmuE,EAAS+2C,EAAK/2C,OACdt4E,GAAgB,IAAXs4E,EAAkB,GAAGjkF,OAAOi4E,EAAQ,KAAKj4E,OAAO80D,GAAO82F,UAAW,KAAK5rJ,OAAOivJ,GAAYhrE,EACnG,MAAO,CAAC,CACN2D,IAAK,MACL9xE,WAAY,CACV5O,MAAO,kBAET6sC,SAAU,CAAC,CACT6zC,IAAK,SACL9xE,WAAY6xI,GAAeA,GAAe,CAAC,EAAG7xI,GAAa,CAAC,EAAG,CAC7DnK,GAAIA,IAENooC,SAAUA,KAGhB,CAkFWohH,CAAS5/F,GAjIpB,SAAiBylE,GACf,IAAIjnF,EAAWinF,EAAKjnF,SAChB4gH,EAAO35B,EAAK25B,KACZ18G,EAAO+iF,EAAK/iF,KACZniC,EAAaklH,EAAKllH,WAClB+mB,EAASm+F,EAAKn+F,OACdpZ,EAAYu3G,EAAKv3G,UAErB,GAAI2pI,GAAsB3pI,IAAckxI,EAAKI,QAAU98G,EAAK88G,MAAO,CACjE,IAEI37G,EAAS,CACXj9B,EAHUw4I,EAAK7lJ,MACJ6lJ,EAAK5lJ,OAEI,EACpB8M,EAAG,IAEL/F,EAAkB,MAAIm3I,GAAWtF,GAAeA,GAAe,CAAC,EAAG9qH,GAAS,CAAC,EAAG,CAC9E,mBAAoB,GAAG78B,OAAOo5C,EAAOj9B,EAAIsH,EAAUtH,EAAI,GAAI,OAAOnc,OAAOo5C,EAAOv9B,EAAI4H,EAAU5H,EAAI,GAAI,QAE1G,CAEA,MAAO,CAAC,CACN+rE,IAAK,MACL9xE,WAAYA,EACZi+B,SAAUA,GAEd,CA0GWqhH,CAAO7/F,EAElB,CACA,SAAS8/F,GAAuBl1B,GAC9B,IAAIjqG,EAAUiqG,EAAOjqG,QACjBpnB,EAAQqxH,EAAOrxH,MACfC,EAASoxH,EAAOpxH,OAChB0U,EAAY08G,EAAO18G,UACnB0kB,EAAQg4F,EAAOh4F,MACfjF,EAAQi9F,EAAOj9F,MACfoyH,EAAqBn1B,EAAO20B,UAC5BA,OAAmC,IAAvBQ,GAAwCA,EAEpDx/I,EAAa6xI,GAAeA,GAAeA,GAAe,CAAC,EAAGzkH,EAAMptB,YAAaqyB,EAAQ,CAC3F,MAASA,GACP,CAAC,GAAI,CAAC,EAAG,CACX,MAASjF,EAAM6xG,QAAQhnI,KAAK,OAG1B+mJ,IACFh/I,EAAWwzI,IAAiB,IAG9B,IAAIzsH,EAAS8qH,GAAe,CAAC,EAAGzkH,EAAMrG,QAElCuwH,GAAsB3pI,KACxBoZ,EAAkB,UAt8BtB,SAAyB68G,GACvB,IAAIj2H,EAAYi2H,EAAMj2H,UAClB8xI,EAAc7b,EAAM5qI,MACpBA,OAAwB,IAAhBymJ,EAAyBpM,GAAgBoM,EACjDC,EAAe9b,EAAM3qI,OACrBA,OAA0B,IAAjBymJ,EAA0BrM,GAAgBqM,EACnDC,EAAsB/b,EAAMgc,cAC5BA,OAAwC,IAAxBD,GAAyCA,EACzD1yH,EAAM,GAYV,OATEA,GADE2yH,GAAiBzM,GACZ,aAAajpJ,OAAOyjB,EAAUtH,EAAIjR,GAAI4D,EAAQ,EAAG,QAAQ9O,OAAOyjB,EAAU5H,EAAI3Q,GAAI6D,EAAS,EAAG,QAC5F2mJ,EACF,yBAAyB11J,OAAOyjB,EAAUtH,EAAIjR,GAAG,qBAAqBlL,OAAOyjB,EAAU5H,EAAI3Q,GAAG,SAE9F,aAAalL,OAAOyjB,EAAUtH,EAAIjR,GAAG,QAAQlL,OAAOyjB,EAAU5H,EAAI3Q,GAAG,QAG9E63B,GAAO,SAAS/iC,OAAOyjB,EAAUuK,KAAO9iB,IAAKuY,EAAUipI,OAAS,EAAI,GAAI,MAAM1sJ,OAAOyjB,EAAUuK,KAAO9iB,IAAKuY,EAAUkpI,OAAS,EAAI,GAAI,MACtI5pH,EAAO,UAAU/iC,OAAOyjB,EAAUT,OAAQ,QAE5C,CAi7B0B2yI,CAAgB,CACpClyI,UAAWA,EACXiyI,eAAe,EACf5mJ,MAAOA,EACPC,OAAQA,IAEV8tB,EAAO,qBAAuBA,EAAkB,WAGlD,IAAI+4H,EAAc3I,GAAWpwH,GAEzB+4H,EAAYx4J,OAAS,IACvB0Y,EAAkB,MAAI8/I,GAGxB,IAAI7yH,EAAM,GAiBV,OAhBAA,EAAIxjC,KAAK,CACPqoF,IAAK,OACL9xE,WAAYA,EACZi+B,SAAU,CAAC7d,KAGTiS,GACFpF,EAAIxjC,KAAK,CACPqoF,IAAK,OACL9xE,WAAY,CACV+/I,MAAO,WAET9hH,SAAU,CAAC5L,KAIRpF,CACT,CAsCA,IAAI+yH,GAAWtH,GAAU3xH,OACzB,SAASk5H,GAAYtsG,GACnB,IAAI36C,EAAQ26C,EAAK,GACb16C,EAAS06C,EAAK,GAIdusG,EADen1B,GADDp3E,EAAKtpD,MAAM,GACkB,GACjB,GAoC9B,MAAO,CACL40J,OAAO,EACPjmJ,MAAOA,EACPC,OAAQA,EACR06C,KApCEptD,MAAMs0D,QAAQqlG,GACN,CACRpuE,IAAK,IACL9xE,WAAY,CACV+/I,MAAO,GAAG71J,OAAO80D,GAAO82F,UAAW,KAAK5rJ,OAAO8qJ,GAAgBC,QAEjEh3G,SAAU,CAAC,CACT6zC,IAAK,OACL9xE,WAAY,CACV+/I,MAAO,GAAG71J,OAAO80D,GAAO82F,UAAW,KAAK5rJ,OAAO8qJ,GAAgBI,WAC/Dp+G,KAAM,eACN5hC,EAAG8qJ,EAAW,KAEf,CACDpuE,IAAK,OACL9xE,WAAY,CACV+/I,MAAO,GAAG71J,OAAO80D,GAAO82F,UAAW,KAAK5rJ,OAAO8qJ,GAAgBG,SAC/Dn+G,KAAM,eACN5hC,EAAG8qJ,EAAW,OAKV,CACRpuE,IAAK,OACL9xE,WAAY,CACVg3B,KAAM,eACN5hC,EAAG8qJ,IAWX,CACA,IAAIC,GAA6B,CAC/BlB,OAAO,EACPjmJ,MAAO,IACPC,OAAQ,KASV,SAASmnJ,GAASjH,EAAUh3E,GAC1B,IAAIm6E,EAAcn6E,EAMlB,MAJe,OAAXA,GAA2C,OAAxBnjB,GAAO42F,eAC5BzzE,EAASw5E,MAGJ,IAAIlzJ,SAAQ,SAAUiC,EAASutH,GAK5BulC,GAAa,uBAGrB,GAAoB,OAAhBlB,EAAsB,CACxB,IAAI/uE,EAAOmuE,GAAUvC,IAAa,CAAC,EACnCA,EAAW5rE,EAAK4rE,UAAYA,EAC5Bh3E,EAASoL,EAAKpL,QAAUA,CAC1B,CAEA,GAAIg3E,GAAYh3E,GAAU69E,GAAS79E,IAAW69E,GAAS79E,GAAQg3E,GAE7D,OAAOzuJ,EAAQu1J,GADJD,GAAS79E,GAAQg3E,MA5BlC,SAA4BA,EAAUh3E,GAC/B6xE,IAAeh1F,GAAOw3F,mBAAoB2C,GAC7Cp+H,QAAQ/wB,MAAM,mBAAoBE,OAAOivJ,EAAU,kBAAoBjvJ,OAAOi4E,EAAQ,iBAE1F,CA4BIk+E,CAAmBlH,EAAUh3E,GAC7Bz3E,EAAQmnJ,GAAeA,GAAe,CAAC,EAAGsO,IAA6B,CAAC,EAAG,CACzExsG,KAAMqL,GAAOw3F,kBAAoB2C,GAAWqE,GAAa,wBAA+B,CAAC,IAE7F,GACF,CAEA,IAAI8C,GAAS,WAAiB,EAE1B11J,GAAIo0D,GAAOu3F,oBAAsBtD,IAAeA,GAAYlyB,MAAQkyB,GAAYX,QAAUW,GAAc,CAC1GlyB,KAAMu/B,GACNhO,QAASgO,IAEPC,GAAW,aASXn9G,GAAM,SAAa9mC,GACrB1R,GAAEm2H,KAAK,GAAG72H,OAAOq2J,GAAU,KAAKr2J,OAAOoS,EAAM,UAC7C1R,GAAE0nJ,QAAQ,GAAGpoJ,OAAOq2J,GAAU,KAAKr2J,OAAOoS,GAAO,GAAGpS,OAAOq2J,GAAU,KAAKr2J,OAAOoS,EAAM,WAAY,GAAGpS,OAAOq2J,GAAU,KAAKr2J,OAAOoS,EAAM,SAC3I,EAEIkkJ,GAAO,CACTC,MAbU,SAAenkJ,GAEzB,OADA1R,GAAEm2H,KAAK,GAAG72H,OAAOq2J,GAAU,KAAKr2J,OAAOoS,EAAM,YACtC,WACL,OAAO8mC,GAAI9mC,EACb,CACF,EASE8mC,IAAKA,IAGHs9G,GAAS,WAAiB,EAE9B,SAASC,GAAUhoI,GAEjB,MAAwB,kBADZA,EAAKuiG,aAAeviG,EAAKuiG,aAAas4B,IAAiB,KAErE,CAqBA,SAASl/I,GAAgBw9E,GACvB,OAAOihE,GAASz+I,gBAAgB,6BAA8Bw9E,EAChE,CAEA,SAAS3kF,GAAc2kF,GACrB,OAAOihE,GAAS5lJ,cAAc2kF,EAChC,CAEA,SAAS8uE,GAAWC,GAClB,IACIC,GADSz5J,UAAUC,OAAS,QAAsBq2D,IAAjBt2D,UAAU,GAAmBA,UAAU,GAAK,CAAC,GACxD05J,KACtBA,OAAwB,IAAjBD,EAA8C,QAApBD,EAAY/uE,IAAgBx9E,GAAkBnH,GAAgB2zJ,EAEnG,GAA2B,kBAAhBD,EACT,OAAO9N,GAASrgG,eAAemuG,GAGjC,IAAI/uE,EAAMivE,EAAKF,EAAY/uE,KAU3B,OATA1rF,OAAOqyD,KAAKooG,EAAY7gJ,YAAc,IAAIka,SAAQ,SAAUkb,GAC1D08C,EAAI9tE,aAAaoxB,EAAKyrH,EAAY7gJ,WAAWo1B,GAC/C,KACeyrH,EAAY5iH,UAAY,IAC9B/jB,SAAQ,SAAU6gE,GACzBjJ,EAAIx2E,YAAYslJ,GAAW7lE,EAAO,CAChCgmE,KAAMA,IAEV,IACOjvE,CACT,CAYA,IAAIkvE,GAAW,CACbx8I,QAAS,SAAiBy8I,GACxB,IAAItoI,EAAOsoI,EAAS,GAEpB,GAAItoI,EAAKwC,WAKP,GAJA8lI,EAAS,GAAG/mI,SAAQ,SAAUgnI,GAC5BvoI,EAAKwC,WAAWqZ,aAAaosH,GAAWM,GAAYvoI,EACtD,IAEyC,OAArCA,EAAKuiG,aAAas4B,KAA2Bx0F,GAAOs3F,mBAAoB,CAC1E,IAAI6K,EAAUpO,GAASqO,cApB/B,SAAuBzoI,GACrB,IAAIwoI,EAAU,IAAIj3J,OAAOyuB,EAAK0oI,UAAW,KAMzC,MAHU,GAAGn3J,OAAOi3J,EAAS,gCAI/B,CAY6CG,CAAc3oI,IACnDA,EAAKwC,WAAWomI,aAAaJ,EAASxoI,EACxC,MACEA,EAAKysH,QAGX,EACAoc,KAAM,SAAcP,GAClB,IAAItoI,EAAOsoI,EAAS,GAChBQ,EAAaR,EAAS,GAG1B,IAAKjK,GAAWr+H,GAAMjxB,QAAQs3D,GAAO+2F,kBACnC,OAAOiL,GAASx8I,QAAQy8I,GAG1B,IAAIS,EAAS,IAAIxhG,OAAO,GAAGh2D,OAAO80D,GAAO82F,UAAW,QAGpD,UAFO2L,EAAW,GAAGzhJ,WAAWnK,GAE5B4rJ,EAAW,GAAGzhJ,WAAW+/I,MAAO,CAClC,IAAI4B,EAAeF,EAAW,GAAGzhJ,WAAW+/I,MAAM3pJ,MAAM,KAAKy5G,QAAO,SAAUunC,EAAK2D,GAOjF,OANIA,IAAQ/7F,GAAO+2F,kBAAoBgF,EAAIvnG,MAAMkuG,GAC/CtK,EAAIwK,MAAMn4J,KAAKsxJ,GAEf3D,EAAIyK,OAAOp4J,KAAKsxJ,GAGX3D,CACT,GAAG,CACDyK,OAAQ,GACRD,MAAO,KAGTH,EAAW,GAAGzhJ,WAAW+/I,MAAQ4B,EAAaC,MAAM3pJ,KAAK,KAEtB,IAA/B0pJ,EAAaE,OAAOv6J,OACtBqxB,EAAKy0B,gBAAgB,SAErBz0B,EAAK3U,aAAa,QAAS29I,EAAaE,OAAO5pJ,KAAK,KAExD,CAEA,IAAI6pJ,EAAeL,EAAWnuG,KAAI,SAAU/rD,GAC1C,OAAOqxJ,GAAOrxJ,EAChB,IAAG0Q,KAAK,MAER0gB,EAAK3U,aAAawvI,GAAe,IACjC76H,EAAKk8D,UAAYitE,CACnB,GAGF,SAASC,GAAqBvrJ,GAC5BA,GACF,CAEA,SAASwrJ,GAAQC,EAAWrnG,GAC1B,IAAIsnG,EAAuC,oBAAbtnG,EAA0BA,EAAW8lG,GAEnE,GAAyB,IAArBuB,EAAU36J,OACZ46J,QACK,CACL,IAAIC,EAAQJ,GAER/iG,GAAOq3F,iBAAmBvC,KAC5BqO,EAAQrP,GAAOlvI,uBAAyBm+I,IAG1CI,GAAM,WACJ,IAAIC,GA9HsB,IAA1BpjG,GAAOg3F,eACFgL,GAASx8I,QAGJw8I,GAAShiG,GAAOg3F,iBACZgL,GAASx8I,QA0HnBu8G,EAAOy/B,GAAKC,MAAM,UACtBwB,EAAU3uG,IAAI8uG,GACdrhC,IACAmhC,GACF,GACF,CACF,CACA,IAAIhuE,IAAW,EACf,SAASmuE,KACPnuE,IAAW,CACb,CACA,SAASouE,KACPpuE,IAAW,CACb,CACA,IAAIquE,GAAK,KACT,SAASC,GAAQzuE,GACf,GAAKi/D,IAIAh0F,GAAOo3F,iBAAZ,CAIA,IAAIqM,EAAwB1uE,EAAQ2uE,aAChCA,OAAyC,IAA1BD,EAAmC/B,GAAS+B,EAC3DE,EAAwB5uE,EAAQ6uE,aAChCA,OAAyC,IAA1BD,EAAmCjC,GAASiC,EAC3DE,EAAwB9uE,EAAQ+uE,uBAChCA,OAAmD,IAA1BD,EAAmCnC,GAASmC,EACrEE,EAAwBhvE,EAAQivE,qBAChCA,OAAiD,IAA1BD,EAAmChQ,GAAWgQ,EACzER,GAAK,IAAIvP,IAAkB,SAAUiQ,GACnC,IAAI/uE,GAAJ,CACA,IAAIgvE,EAAgBvH,KACpBn9E,GAAQykF,GAAS/oI,SAAQ,SAAUipI,GAajC,GAZ4B,cAAxBA,EAAelxJ,MAAwBkxJ,EAAeC,WAAW97J,OAAS,IAAMq5J,GAAUwC,EAAeC,WAAW,MAClHpkG,GAAOm3F,sBACT2M,EAAuBK,EAAetwJ,QAGxC6vJ,EAAaS,EAAetwJ,SAGF,eAAxBswJ,EAAelxJ,MAAyBkxJ,EAAetwJ,OAAOsoB,YAAc6jC,GAAOm3F,sBACrF2M,EAAuBK,EAAetwJ,OAAOsoB,YAGnB,eAAxBgoI,EAAelxJ,MAAyB0uJ,GAAUwC,EAAetwJ,UAAYkiJ,GAAgCrtJ,QAAQy7J,EAAezzE,eACtI,GAAqC,UAAjCyzE,EAAezzE,eA3L3B,SAA0B/2D,GACxB,IAAIwpD,EAASxpD,EAAKuiG,aAAeviG,EAAKuiG,aAAay4B,IAAe,KAC9DhgG,EAAOh7B,EAAKuiG,aAAeviG,EAAKuiG,aAAa04B,IAAa,KAC9D,OAAOzxE,GAAUxuB,CACnB,CAuLwD0vG,CAAiBF,EAAetwJ,QAAS,CACvF,IAAIywJ,EAAoBrH,GAAiBjF,GAAWmM,EAAetwJ,SAC/DsvE,EAASmhF,EAAkBnhF,OAC3Bg3E,EAAWmK,EAAkBnK,SAEjCgK,EAAetwJ,OAAOmR,aAAa2vI,GAAaxxE,GAAU+gF,GACtD/J,GAAUgK,EAAetwJ,OAAOmR,aAAa4vI,GAAWuF,EAC9D,MA5LiBxgI,EA4LUwqI,EAAetwJ,SA3LjC8lB,EAAKs+H,WAAat+H,EAAKs+H,UAAU1sD,UAAY5xE,EAAKs+H,UAAU1sD,SAASvrC,GAAO+2F,mBA4LnF6M,EAAaO,EAAetwJ,QA7LtC,IAAyB8lB,CAgMrB,GA3BoB,CA4BtB,IACKu6H,IACLqP,GAAGC,QAAQQ,EAAsB,CAC/BO,WAAW,EACXvjJ,YAAY,EACZwjJ,eAAe,EACfC,SAAS,GA7CX,CA+CF,CA2BA,SAASC,GAAa/qI,GACpB,IAAIgrI,EAAiBhrI,EAAKuiG,aAAa,eACnC0oC,EAAmBjrI,EAAKuiG,aAAa,aACrCh3G,OAA+By5C,IAAnBhlC,EAAKzU,UAA0ByU,EAAKzU,UAAUlI,OAAS,GACnEixB,EAAMgvH,GAAiBjF,GAAWr+H,IAWtC,OATKsU,EAAIk1C,SACPl1C,EAAIk1C,OAASw5E,MAGXgI,GAAkBC,IACpB32H,EAAIk1C,OAASwhF,EACb12H,EAAIksH,SAAWyK,GAGb32H,EAAIksH,UAAYlsH,EAAIk1C,SAIpBl1C,EAAIk1C,QAAUj+D,EAAU5c,OAAS,IACnC2lC,EAAIksH,SA5+BR,SAAoBh3E,EAAQ0hF,GAC1B,OAAQpJ,GAAYt4E,IAAW,CAAC,GAAG0hF,EACrC,CA0+BmBC,CAAW72H,EAAIk1C,OAAQxpD,EAAKzU,YAAcs3I,GAAUvuH,EAAIk1C,OAAQq3E,GAAM7gI,EAAKzU,cAGvF+oB,EAAIksH,UAAYn6F,GAAOk8F,cAAgBviI,EAAK45B,YAAc55B,EAAK45B,WAAW0iC,WAAa8uE,KAAKC,YAC/F/2H,EAAIksH,SAAWxgI,EAAK45B,WAAW59C,OARxBs4B,CAYX,CA8CA,SAASg3H,GAAUtrI,GACjB,IAAIuoH,EAAS75I,UAAUC,OAAS,QAAsBq2D,IAAjBt2D,UAAU,GAAmBA,UAAU,GAAK,CAC/E68J,aAAa,GAGXC,EAAeT,GAAY/qI,GAC3BwgI,EAAWgL,EAAahL,SACxBh3E,EAASgiF,EAAahiF,OACtBiiF,EAAeD,EAAan7B,KAE5Bq7B,EAtDN,SAA2B1rI,GACzB,IAAI0rI,EAAkB7lF,GAAQ7lD,EAAK3Y,YAAY6vG,QAAO,SAAUunC,EAAK3B,GAKnE,MAJiB,UAAb2B,EAAI96I,MAAiC,UAAb86I,EAAI96I,OAC9B86I,EAAI3B,EAAKn5I,MAAQm5I,EAAK3sJ,OAGjBsuJ,CACT,GAAG,CAAC,GACA/kH,EAAQ1Z,EAAKuiG,aAAa,SAC1B4jC,EAAUnmI,EAAKuiG,aAAa,oBAWhC,OATIl8D,GAAOk3F,WACL7jH,EACFgyH,EAAgB,mBAAqB,GAAGn6J,OAAO80D,GAAO+2F,iBAAkB,WAAW7rJ,OAAO40J,GAAW/H,OAErGsN,EAAgB,eAAiB,OACjCA,EAA2B,UAAI,UAI5BA,CACT,CAiCwBC,CAAiB3rI,GACnC4rI,EAAapH,GAAW,sBAAuB,CAAC,EAAGxkI,GACnD6rI,EAActjB,EAAOgjB,YA3G3B,SAAsBvrI,GACpB,IAAIvnB,EAAQunB,EAAKuiG,aAAa,SAC1BjuF,EAAM,GAgBV,OAdI77B,IACF67B,EAAM77B,EAAMgF,MAAM,KAAKy5G,QAAO,SAAUunC,EAAKhmJ,GAC3C,IAAI21B,EAAS31B,EAAMgF,MAAM,KACrB6oB,EAAO8H,EAAO,GACdj+B,EAAQi+B,EAAO18B,MAAM,GAMzB,OAJI40B,GAAQn2B,EAAMxB,OAAS,IACzB8vJ,EAAIn4H,GAAQn2B,EAAMmP,KAAK,KAAK+D,QAGvBo7I,CACT,GAAG,CAAC,IAGCnqH,CACT,CAwFyCi3H,CAAYvrI,GAAQ,GAC3D,OAAOk5H,GAAe,CACpBsH,SAAUA,EACV9mH,MAAO1Z,EAAKuiG,aAAa,SACzB4jC,QAASnmI,EAAKuiG,aAAa,oBAC3B/4C,OAAQA,EACRx0D,UAAWgpI,GACXx0G,KAAM,CACJg3G,SAAU,KACVh3E,OAAQ,KACR6mD,KAAM,IAER3/F,OAAQ,KACR8kD,QAAQ,EACR/gD,MAAO,CACL6xG,QAASmlB,EACTr9H,OAAQy9H,EACRxkJ,WAAYqkJ,IAEbE,EACL,CAEA,IAAIE,GAAW/L,GAAU3xH,OAEzB,SAAS29H,GAAiB/rI,GACxB,IAAIgsI,EAAqC,SAA1B3lG,GAAOg3F,eAA4BiO,GAAUtrI,EAAM,CAChEurI,aAAa,IACVD,GAAUtrI,GAEf,OAAKgsI,EAASv3H,MAAM6xG,QAAQv3I,QAAQgtJ,IAC3B8I,GAAa,qBAAsB7kI,EAAMgsI,GAEzCnH,GAAa,iCAAkC7kI,EAAMgsI,EAEhE,CAEA,IAAIC,GAAgB,IAAI51E,IAQxB,SAAS61E,GAAOC,GACd,IAAIlqG,EAAWvzD,UAAUC,OAAS,QAAsBq2D,IAAjBt2D,UAAU,GAAmBA,UAAU,GAAK,KACnF,IAAK6rJ,GAAQ,OAAOzqJ,QAAQiC,UAC5B,IAAIq6J,EAAgBhS,GAAS9nD,gBAAgBgsD,UAEzC+N,EAAS,SAAgB3iF,GAC3B,OAAO0iF,EAAch4H,IAAI,GAAG7iC,OAAO2pJ,GAA6B,KAAK3pJ,OAAOm4E,GAC9E,EAEI4iF,EAAY,SAAmB5iF,GACjC,OAAO0iF,EAAc3f,OAAO,GAAGl7I,OAAO2pJ,GAA6B,KAAK3pJ,OAAOm4E,GACjF,EAEIgzE,EAAWr2F,GAAOk8F,aAAe0J,GAAgBzQ,GAAS7gG,KAAI,SAAU19C,GAC1E,MAAO,MAAM1L,OAAO0L,EACtB,IAAG1L,OAAO9D,OAAOqyD,KAAKgsG,KAEjBpP,EAASz/F,SAAS,OACrBy/F,EAAS5rJ,KAAK,MAGhB,IAAIy7J,EAAmB,CAAC,IAAIh7J,OAAOwqJ,GAAuB,UAAUxqJ,OAAOspJ,GAAe,OAAOtpJ,OAAOmrJ,EAAS/hG,KAAI,SAAU1oD,GAC7H,MAAO,IAAIV,OAAOU,EAAG,UAAUV,OAAOspJ,GAAe,KACvD,KAAIv7I,KAAK,MAET,GAAgC,IAA5BitJ,EAAiB59J,OACnB,OAAOmB,QAAQiC,UAGjB,IAAIy6J,EAAa,GAEjB,IACEA,EAAa3mF,GAAQsmF,EAAKpqI,iBAAiBwqI,GAC7C,CAAE,MAAO/+J,IAAI,CAGb,KAAIg/J,EAAW79J,OAAS,GAItB,OAAOmB,QAAQiC,UAHfs6J,EAAO,WACPC,EAAU,YAKZ,IAAIlkC,EAAOy/B,GAAKC,MAAM,UAClBwB,EAAYkD,EAAWt1C,QAAO,SAAUunC,EAAKz+H,GAC/C,IACE,IAAIsoI,EAAWyD,GAAiB/rI,GAE5BsoI,GACF7J,EAAI3tJ,KAAKw3J,EAEb,CAAE,MAAO96J,IACF6tJ,IACY,gBAAX7tJ,GAAEmW,MACJye,QAAQ/wB,MAAM7D,GAGpB,CAEA,OAAOixJ,CACT,GAAG,IACH,OAAO,IAAI3uJ,SAAQ,SAAUiC,EAASutH,GACpCxvH,QAAQkyH,IAAIsnC,GAAWl5J,MAAK,SAAUq8J,GACpCpD,GAAQoD,GAAmB,WACzBJ,EAAO,UACPA,EAAO,YACPC,EAAU,WACc,oBAAbrqG,GAAyBA,IACpCmmE,IACAr2H,GACF,GACF,IAAGmnD,OAAM,SAAU1rD,GACjB46H,IACA9I,EAAO9xH,EACT,GACF,GACF,CAEA,SAASk/J,GAAO1sI,GACd,IAAIiiC,EAAWvzD,UAAUC,OAAS,QAAsBq2D,IAAjBt2D,UAAU,GAAmBA,UAAU,GAAK,KACnFq9J,GAAiB/rI,GAAM5vB,MAAK,SAAUk4J,GAChCA,GACFe,GAAQ,CAACf,GAAWrmG,EAExB,GACF,CA5FAu5F,GAAS7gG,KAAI,SAAUioG,GACrBqJ,GAAc73H,IAAI,MAAM7iC,OAAOqxJ,GACjC,IACAn1J,OAAOqyD,KAAK47F,GAAgBJ,KAAiB3gG,IAAIsxG,GAAc73H,IAAIhzB,KAAK6qJ,KACxEx+J,OAAOqyD,KAAK47F,GAAgBH,KAAe5gG,IAAIsxG,GAAc73H,IAAIhzB,KAAK6qJ,KACtEA,GAAgBv7B,GAAmBu7B,IAyGnC,IAAI5zG,GAAS,SAAgBs0G,GAC3B,IAAIj7B,EAAShjI,UAAUC,OAAS,QAAsBq2D,IAAjBt2D,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9Ek+J,EAAoBl7B,EAAO18G,UAC3BA,OAAkC,IAAtB43I,EAA+B5O,GAAuB4O,EAClEC,EAAiBn7B,EAAOl8C,OACxBA,OAA4B,IAAnBq3E,GAAoCA,EAC7CC,EAAep7B,EAAOloF,KACtBA,OAAwB,IAAjBsjH,EAA0B,KAAOA,EACxCC,EAAiBr7B,EAAOhhG,OACxBA,OAA4B,IAAnBq8H,EAA4B,KAAOA,EAC5CC,EAAgBt7B,EAAOh4F,MACvBA,OAA0B,IAAlBszH,EAA2B,KAAOA,EAC1CC,EAAkBv7B,EAAOy0B,QACzBA,OAA8B,IAApB8G,EAA6B,KAAOA,EAC9CC,EAAkBx7B,EAAO4U,QACzBA,OAA8B,IAApB4mB,EAA6B,GAAKA,EAC5CC,EAAqBz7B,EAAOrqH,WAC5BA,OAAoC,IAAvB8lJ,EAAgC,CAAC,EAAIA,EAClDC,EAAiB17B,EAAOtjG,OACxBA,OAA4B,IAAnBg/H,EAA4B,CAAC,EAAIA,EAC9C,GAAKT,EAAL,CACA,IAAInjF,EAASmjF,EAAenjF,OACxBg3E,EAAWmM,EAAenM,SAC1BxlG,EAAO2xG,EAAe3xG,KAC1B,OAAO4qG,GAAY1M,GAAe,CAChC5/I,KAAM,QACLqzJ,IAAiB,WAelB,OAdA/H,GAAU,2BAA4B,CACpC+H,eAAgBA,EAChBj7B,OAAQA,IAGNrrE,GAAOk3F,WACL7jH,EACFryB,EAAW,mBAAqB,GAAG9V,OAAO80D,GAAO+2F,iBAAkB,WAAW7rJ,OAAO40J,GAAW/H,OAEhG/2I,EAAW,eAAiB,OAC5BA,EAAsB,UAAI,UAIvB2+I,GAAsB,CAC3B7E,MAAO,CACL+E,KAAMoB,GAAYtsG,GAClBxR,KAAMA,EAAO89G,GAAY99G,EAAKwR,MAAQ,CACpCsrG,OAAO,EACPjmJ,MAAO,KACPC,OAAQ,KACR06C,KAAM,CAAC,IAGXwuB,OAAQA,EACRg3E,SAAUA,EACVxrI,UAAWkkI,GAAeA,GAAe,CAAC,EAAG8E,IAAuBhpI,GACpEwgE,OAAQA,EACR97C,MAAOA,EACPhJ,OAAQA,EACRy1H,QAASA,EACT1xH,MAAO,CACLptB,WAAYA,EACZ+mB,OAAQA,EACRk4G,QAASA,IAGf,GA5C2B,CA6C7B,EACI+mB,GAAkB,CACpB3N,OAAQ,WACN,MAAO,CACL1kG,MArFgBhrD,EAqFGqoD,GApFhB,SAAUi1G,GACf,IAAI57B,EAAShjI,UAAUC,OAAS,QAAsBq2D,IAAjBt2D,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9Ei+J,GAAkBW,GAAuB,CAAC,GAAGtyG,KAAOsyG,EAAsBxI,GAAmBwI,GAAuB,CAAC,GACrH9jH,EAAOkoF,EAAOloF,KAMlB,OAJIA,IACFA,GAAQA,GAAQ,CAAC,GAAGwR,KAAOxR,EAAOs7G,GAAmBt7G,GAAQ,CAAC,IAGzDx5C,EAAK28J,EAAgBzT,GAAeA,GAAe,CAAC,EAAGxnB,GAAS,CAAC,EAAG,CACzEloF,KAAMA,IAEV,IAbF,IAAsBx5C,CAuFpB,EACA+xD,MAAO,WACL,MAAO,CACLwrG,0BAA2B,SAAmC7I,GAG5D,OAFAA,EAAYqF,aAAemC,GAC3BxH,EAAYuF,aAAeyC,GACpBhI,CACT,EAEJ,EACA8I,SAAU,SAAkBC,GAC1BA,EAAaxI,MAAQ,SAAUvzB,GAC7B,IAAIg8B,EAAeh8B,EAAO1xG,KACtBA,OAAwB,IAAjB0tI,EAA0BtT,GAAWsT,EAC5CC,EAAmBj8B,EAAOzvE,SAE9B,OAAOiqG,GAAOlsI,OADsB,IAArB2tI,EAA8B,WAAa,EAAIA,EAEhE,EAEAF,EAAaG,+BAAiC,SAAU5tI,EAAMgsI,GAC5D,IAAIxL,EAAWwL,EAASxL,SACpB9mH,EAAQsyH,EAAStyH,MACjBysH,EAAU6F,EAAS7F,QACnB38E,EAASwiF,EAASxiF,OAClBx0D,EAAYg3I,EAASh3I,UACrBwgE,EAASw2E,EAASx2E,OAClBhsC,EAAOwiH,EAASxiH,KAChB9Y,EAASs7H,EAASt7H,OAClB+D,EAAQu3H,EAASv3H,MACrB,OAAO,IAAI3kC,SAAQ,SAAUiC,EAASutH,GACpCxvH,QAAQkyH,IAAI,CAACylC,GAASjH,EAAUh3E,GAAShgC,EAAKg3G,SAAWiH,GAASj+G,EAAKg3G,SAAUh3G,EAAKggC,QAAU15E,QAAQiC,QAAQ,CAC9Gu0J,OAAO,EACPjmJ,MAAO,IACPC,OAAQ,IACR06C,KAAM,CAAC,MACJ5qD,MAAK,SAAUm8H,GAClB,IAAI0e,EAAQ7Y,GAAe7F,EAAM,GAC7B25B,EAAOjb,EAAM,GACbzhG,EAAOyhG,EAAM,GAEjBl5I,EAAQ,CAACiuB,EAAMgmI,GAAsB,CACnC7E,MAAO,CACL+E,KAAMA,EACN18G,KAAMA,GAERggC,OAAQA,EACRg3E,SAAUA,EACVxrI,UAAWA,EACXwgE,OAAQA,EACR9kD,OAAQA,EACRgJ,MAAOA,EACPysH,QAASA,EACT1xH,MAAOA,EACP4xH,WAAW,KAEf,IAAGntG,MAAMomE,EACX,GACF,EAEAmuC,EAAaI,qBAAuB,SAAUr6B,GAC5C,IAWIs6B,EAXAxoH,EAAWkuF,EAAMluF,SACjBj+B,EAAamsH,EAAMnsH,WACnB6+I,EAAO1yB,EAAM0yB,KACblxI,EAAYw+G,EAAMx+G,UAElBmyI,EAAc3I,GADLhrB,EAAMplG,QAmBnB,OAhBI+4H,EAAYx4J,OAAS,IACvB0Y,EAAkB,MAAI8/I,GAKpBxI,GAAsB3pI,KACxB84I,EAAYjJ,GAAa,oCAAqC,CAC5DqB,KAAMA,EACNlxI,UAAWA,EACX+4I,eAAgB7H,EAAK7lJ,MACrB2tJ,UAAW9H,EAAK7lJ,SAIpBilC,EAASx0C,KAAKg9J,GAAa5H,EAAKlrG,MACzB,CACL1V,SAAUA,EACVj+B,WAAYA,EAEhB,CACF,GAGE4mJ,GAAS,CACXvO,OAAQ,WACN,MAAO,CACLl5G,MAAO,SAAe0nH,GACpB,IAAIx8B,EAAShjI,UAAUC,OAAS,QAAsBq2D,IAAjBt2D,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9Ew+J,EAAkBx7B,EAAO4U,QACzBA,OAA8B,IAApB4mB,EAA6B,GAAKA,EAChD,OAAOtH,GAAY,CACjBtsJ,KAAM,UACL,WACDsrJ,GAAU,2BAA4B,CACpCsJ,UAAWA,EACXx8B,OAAQA,IAEV,IAAIpsF,EAAW,GAMf,OALA4oH,GAAU,SAAUpnG,GAClBl5D,MAAMs0D,QAAQ4E,GAAQA,EAAKnM,KAAI,SAAU/rD,GACvC02C,EAAWA,EAAS/zC,OAAO3C,EAAEk3J,SAC/B,IAAKxgH,EAAWA,EAAS/zC,OAAOu1D,EAAKg/F,SACvC,IACO,CAAC,CACN3sE,IAAK,OACL9xE,WAAY,CACV+/I,MAAO,CAAC,GAAG71J,OAAO80D,GAAO82F,UAAW,YAAY5rJ,OAAOm/H,GAAmB4V,IAAUhnI,KAAK,MAE3FgmC,SAAUA,GAEd,GACF,EAEJ,GAGE6oH,GAAgB,CAClBzO,OAAQ,WACN,MAAO,CACLsB,QAAS,SAAiBv5H,GACxB,IAAIiqG,EAAShjI,UAAUC,OAAS,QAAsBq2D,IAAjBt2D,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9Es+J,EAAgBt7B,EAAOh4F,MACvBA,OAA0B,IAAlBszH,EAA2B,KAAOA,EAC1CE,EAAkBx7B,EAAO4U,QACzBA,OAA8B,IAApB4mB,EAA6B,GAAKA,EAC5CC,EAAqBz7B,EAAOrqH,WAC5BA,OAAoC,IAAvB8lJ,EAAgC,CAAC,EAAIA,EAClDC,EAAiB17B,EAAOtjG,OACxBA,OAA4B,IAAnBg/H,EAA4B,CAAC,EAAIA,EAC9C,OAAOxH,GAAY,CACjBtsJ,KAAM,UACNmuB,QAASA,IACR,WAKD,OAJAm9H,GAAU,2BAA4B,CACpCn9H,QAASA,EACTiqG,OAAQA,IA70BpB,SAAmCA,GACjC,IAAIjqG,EAAUiqG,EAAOjqG,QACjBiS,EAAQg4F,EAAOh4F,MACfjF,EAAQi9F,EAAOj9F,MAEfptB,EAAa6xI,GAAeA,GAAeA,GAAe,CAAC,EAAGzkH,EAAMptB,YAAaqyB,EAAQ,CAC3F,MAASA,GACP,CAAC,GAAI,CAAC,EAAG,CACX,MAASjF,EAAM6xG,QAAQhnI,KAAK,OAG1B6nJ,EAAc3I,GAAW/pH,EAAMrG,QAE/B+4H,EAAYx4J,OAAS,IACvB0Y,EAAkB,MAAI8/I,GAGxB,IAAI7yH,EAAM,GAiBV,OAhBAA,EAAIxjC,KAAK,CACPqoF,IAAK,OACL9xE,WAAYA,EACZi+B,SAAU,CAAC7d,KAGTiS,GACFpF,EAAIxjC,KAAK,CACPqoF,IAAK,OACL9xE,WAAY,CACV+/I,MAAO,WAET9hH,SAAU,CAAC5L,KAIRpF,CACT,CA4yBiB85H,CAA0B,CAC/B3mI,QAASA,EAAQ1sB,WACjB2+B,MAAOA,EACPjF,MAAO,CACLptB,WAAYA,EACZ+mB,OAAQA,EACRk4G,QAAS,CAAC,GAAG/0I,OAAO80D,GAAO82F,UAAW,oBAAoB5rJ,OAAOm/H,GAAmB4V,MAG1F,GACF,EAEJ,GAGE+nB,GAAa,CACf3O,OAAQ,WACN,MAAO,CACL/3H,KAAM,SAAcF,GAClB,IAAIiqG,EAAShjI,UAAUC,OAAS,QAAsBq2D,IAAjBt2D,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9Ek+J,EAAoBl7B,EAAO18G,UAC3BA,OAAkC,IAAtB43I,EAA+B5O,GAAuB4O,EAClEI,EAAgBt7B,EAAOh4F,MACvBA,OAA0B,IAAlBszH,EAA2B,KAAOA,EAC1CE,EAAkBx7B,EAAO4U,QACzBA,OAA8B,IAApB4mB,EAA6B,GAAKA,EAC5CC,EAAqBz7B,EAAOrqH,WAC5BA,OAAoC,IAAvB8lJ,EAAgC,CAAC,EAAIA,EAClDC,EAAiB17B,EAAOtjG,OACxBA,OAA4B,IAAnBg/H,EAA4B,CAAC,EAAIA,EAC9C,OAAOxH,GAAY,CACjBtsJ,KAAM,OACNmuB,QAASA,IACR,WAKD,OAJAm9H,GAAU,2BAA4B,CACpCn9H,QAASA,EACTiqG,OAAQA,IAEHk1B,GAAuB,CAC5Bn/H,QAASA,EACTzS,UAAWkkI,GAAeA,GAAe,CAAC,EAAG8E,IAAuBhpI,GACpE0kB,MAAOA,EACPjF,MAAO,CACLptB,WAAYA,EACZ+mB,OAAQA,EACRk4G,QAAS,CAAC,GAAG/0I,OAAO80D,GAAO82F,UAAW,iBAAiB5rJ,OAAOm/H,GAAmB4V,MAGvF,GACF,EAEJ,EACAknB,SAAU,SAAkBC,GAC1BA,EAAaa,mBAAqB,SAAUtuI,EAAMgsI,GAChD,IAAItyH,EAAQsyH,EAAStyH,MACjB1kB,EAAYg3I,EAASh3I,UACrByf,EAAQu3H,EAASv3H,MACjBp0B,EAAQ,KACRC,EAAS,KAEb,GAAIk6I,GAAO,CACT,IAAI+T,EAAmB3nJ,SAAS4nJ,iBAAiBxuI,GAAMP,SAAU,IAC7DgvI,EAAqBzuI,EAAKm7B,wBAC9B96C,EAAQouJ,EAAmBpuJ,MAAQkuJ,EACnCjuJ,EAASmuJ,EAAmBnuJ,OAASiuJ,CACvC,CAMA,OAJIloG,GAAOk3F,WAAa7jH,IACtBjF,EAAMptB,WAAW,eAAiB,QAG7BvX,QAAQiC,QAAQ,CAACiuB,EAAM4mI,GAAuB,CACnDn/H,QAASzH,EAAKk8D,UACd77E,MAAOA,EACPC,OAAQA,EACR0U,UAAWA,EACX0kB,MAAOA,EACPjF,MAAOA,EACP4xH,WAAW,KAEf,CACF,GAGEqI,GAAwB,IAAInnG,OAAO,IAAM,MACzConG,GAA0B,CAAC,QAAS,SAYxC,SAASC,GAAmB5uI,EAAMtnB,GAChC,IAAIm2J,EAAmB,GAAGt9J,OAAOwpJ,IAAgCxpJ,OAAOmH,EAASmT,QAAQ,IAAK,MAC9F,OAAO,IAAI/b,SAAQ,SAAUiC,EAASutH,GACpC,GAA4C,OAAxCt/F,EAAKuiG,aAAassC,GAEpB,OAAO98J,IAGT,IACI+8J,EADWjpF,GAAQ7lD,EAAKslB,UACiB7mB,QAAO,SAAUpiB,GAC5D,OAAOA,EAAEkmH,aAAau4B,MAA4BpiJ,CACpD,IAAG,GACC01B,EAAS+rH,GAAOqU,iBAAiBxuI,EAAMtnB,GACvC8mB,EAAa4O,EAAO2gI,iBAAiB,eAAel0G,MAAMmhG,IAC1Dp8H,EAAawO,EAAO2gI,iBAAiB,eACrCtnI,EAAU2G,EAAO2gI,iBAAiB,WAEtC,GAAID,IAAkCtvI,EAKpC,OADAQ,EAAKyC,YAAYqsI,GACV/8J,IACF,GAAIytB,GAA0B,SAAZiI,GAAkC,KAAZA,EAAgB,CAC7D,IAAIunI,EAAW5gI,EAAO2gI,iBAAiB,WAEnCnM,GAAU,CAAC,SAAS7zJ,QAAQywB,EAAW,IAAM+7H,GAAeD,GAC5D9xE,GAAU,CAAC,QAAS,UAAW,QAAS,OAAQ,UAAW,SAAU,OAAOz6E,QAAQywB,EAAW,IAAMm8H,GAAgBiH,GAAQpjI,EAAW,GAAG7C,eAAiBs/H,GAAsB2G,GAAQhjI,GAE1LqvI,EAxCV,SAA6BxnI,GAC3B,IAAIynI,EAAUznI,EAAQ5b,QAAQ6iJ,GAAuB,IACjDS,EA5qDN,SAAqBvjG,EAAQ50C,GAC3B,IAEIwqD,EAFAjiD,EAAOqsC,EAAOj9D,OACdyhI,EAAQxkE,EAAOzpC,WAAWnL,GAG9B,OAAIo5G,GAAS,OAAUA,GAAS,OAAU7wG,EAAOvI,EAAQ,IACvDwqD,EAAS5V,EAAOzpC,WAAWnL,EAAQ,KAErB,OAAUwqD,GAAU,MACN,MAAlB4uD,EAAQ,OAAkB5uD,EAAS,MAAS,MAIjD4uD,CACT,CA8pDkBg/B,CAAYF,EAAS,GACjCG,EAAeF,GAAaR,GAAwB,IAAMQ,GAAaR,GAAwB,GAC/FW,EAA+B,IAAnBJ,EAAQvgK,QAAeugK,EAAQ,KAAOA,EAAQ,GAC9D,MAAO,CACL/+J,MAAmB0wJ,GAAZyO,EAAkBJ,EAAQ,GAAYA,GAC7CK,YAAaF,GAAgBC,EAEjC,CA+BiCE,CAAoBR,GAC3CS,EAAWR,EAAqB9+J,MAChCo/J,EAAcN,EAAqBM,YAEnCG,EAAOlwI,EAAW,GAAGo7B,WAAW,eAChC4lG,EAAWqC,GAAUr5E,EAAQimF,GAC7BE,EAAiBnP,EAErB,GAAIkP,EAAM,CACR,IAAIE,EAphDZ,SAAsB9O,GACpB,IAAI+O,EAAa7N,GAAclB,GAC3BgP,EAAajN,GAAU,MAAO/B,GAClC,OAAO+O,IAAeC,EAAa,CACjCtmF,OAAQ,MACRg3E,SAAUsP,GACR,OAAS,CACXtmF,OAAQ,KACRg3E,SAAU,KAEd,CA0gDwBuP,CAAaN,GAEzBG,EAAUpP,UAAYoP,EAAUpmF,SAClCg3E,EAAWoP,EAAUpP,SACrBh3E,EAASomF,EAAUpmF,OAEvB,CAIA,IAAIg3E,GAAa+O,GAAiBT,GAAiCA,EAA8BvsC,aAAay4B,MAAiBxxE,GAAUslF,EAA8BvsC,aAAa04B,MAAe0U,EAsCjM59J,QAtCkN,CAClNiuB,EAAK3U,aAAawjJ,EAAkBc,GAEhCb,GAEF9uI,EAAKyC,YAAYqsI,GAGnB,IAAIlvE,EApiBH,CACL4gE,SAAU,KACV9mH,MAAO,KACPysH,QAAS,KACT38E,OAAQ,KACRx0D,UAAWgpI,GACXxoE,QAAQ,EACRhsC,KAAM,CACJg3G,SAAU,KACVh3E,OAAQ,KACR6mD,KAAM,IAER3/F,OAAQ,KACR+D,MAAO,CACL6xG,QAAS,GACTl4G,OAAQ,CAAC,EACT/mB,WAAY,CAAC,IAqhBPotB,EAAQmrD,EAAKnrD,MACjBA,EAAMptB,WAAWyzI,IAA0BpiJ,EAC3C+uJ,GAASjH,EAAUh3E,GAAQp5E,MAAK,SAAU81J,GACxC,IAAIqC,EAAYvC,GAAsB9M,GAAeA,GAAe,CAAC,EAAGt5D,GAAO,CAAC,EAAG,CACjFuhE,MAAO,CACL+E,KAAMA,EACN18G,KAAMy5G,MAERz5E,OAAQA,EACRg3E,SAAUmP,EACVl7H,MAAOA,EACP4xH,WAAW,KAGTtgI,EAAUq0H,GAAS5lJ,cAAc,OAEpB,aAAbkE,EACFsnB,EAAK6b,aAAa9V,EAAS/F,EAAK45B,YAEhC55B,EAAKrd,YAAYojB,GAGnBA,EAAQ2iI,UAAYH,EAAU5tG,KAAI,SAAU/rD,GAC1C,OAAOqxJ,GAAOrxJ,EAChB,IAAG0Q,KAAK,MACR0gB,EAAKy0B,gBAAgBo6G,GACrB98J,GACF,IAAGmnD,MAAMomE,EACX,CAGF,MACEvtH,GAEJ,GACF,CAEA,SAAS8Z,GAAQmU,GACf,OAAOlwB,QAAQkyH,IAAI,CAAC4sC,GAAmB5uI,EAAM,YAAa4uI,GAAmB5uI,EAAM,YACrF,CAEA,SAASgwI,GAAYhwI,GACnB,OAAOA,EAAKwC,aAAejuB,SAASolD,QAAUyhG,GAAoCrsJ,QAAQixB,EAAKggF,QAAQv1C,iBAAmBzqC,EAAKuiG,aAAau4B,OAA6B96H,EAAKwC,YAA0C,QAA5BxC,EAAKwC,WAAWw9E,QAC9M,CAEA,SAASw9C,GAAqB2O,GAC5B,GAAK5R,GACL,OAAO,IAAIzqJ,SAAQ,SAAUiC,EAASutH,GACpC,IAAI2wC,EAAapqF,GAAQsmF,EAAKpqI,iBAAiB,MAAMtD,OAAOuxI,IAAar1G,IAAI9uC,IACzE4+B,EAAMo9G,GAAKC,MAAM,wBACrB4B,KACA55J,QAAQkyH,IAAIiuC,GAAY7/J,MAAK,WAC3Bq6C,IACAk/G,KACA53J,GACF,IAAGmnD,OAAM,WACPzO,IACAk/G,KACArqC,GACF,GACF,GACF,CAEA,IAqBI4wC,IAAa,EAmCbC,GAAuB,SAA8BC,GASvD,OAAOA,EAAgBzzI,cAAclf,MAAM,KAAKy5G,QAAO,SAAUunC,EAAKrvJ,GACpE,IAAIi1E,EAAQj1E,EAAEutB,cAAclf,MAAM,KAC9B2yH,EAAQ/rD,EAAM,GACdgsD,EAAOhsD,EAAM3yE,MAAM,GAAG4N,KAAK,KAE/B,GAAI8wH,GAAkB,MAATC,EAEX,OADAouB,EAAIR,OAAQ,EACLQ,EAGT,GAAIruB,GAAkB,MAATC,EAEX,OADAouB,EAAIP,OAAQ,EACLO,EAKT,GAFApuB,EAAO7tD,WAAW6tD,GAEd9mH,MAAM8mH,GACR,OAAOouB,EAGT,OAAQruB,GACN,IAAK,OACHquB,EAAIl/H,KAAOk/H,EAAIl/H,KAAO8wG,EACtB,MAEF,IAAK,SACHouB,EAAIl/H,KAAOk/H,EAAIl/H,KAAO8wG,EACtB,MAEF,IAAK,OACHouB,EAAI/wI,EAAI+wI,EAAI/wI,EAAI2iH,EAChB,MAEF,IAAK,QACHouB,EAAI/wI,EAAI+wI,EAAI/wI,EAAI2iH,EAChB,MAEF,IAAK,KACHouB,EAAIrxI,EAAIqxI,EAAIrxI,EAAIijH,EAChB,MAEF,IAAK,OACHouB,EAAIrxI,EAAIqxI,EAAIrxI,EAAIijH,EAChB,MAEF,IAAK,SACHouB,EAAIlqI,OAASkqI,EAAIlqI,OAAS87G,EAI9B,OAAOouB,CACT,GA5DgB,CACdl/H,KAAM,GACN7R,EAAG,EACHN,EAAG,EACH6wI,OAAO,EACPC,OAAO,EACP3pI,OAAQ,GAuDZ,EACI87I,GAAkB,CACpB3Q,OAAQ,WACN,MAAO,CACLriJ,MAAO,CACL2X,UAAW,SAAmBo7I,GAC5B,OAAOD,GAAqBC,EAC9B,GAGN,EACAruG,MAAO,WACL,MAAO,CACLuuG,oBAAqB,SAA6B5L,EAAa1kI,GAC7D,IAAIowI,EAAkBpwI,EAAKuiG,aAAa,qBAMxC,OAJI6tC,IACF1L,EAAY1vI,UAAYm7I,GAAqBC,IAGxC1L,CACT,EAEJ,EACA8I,SAAU,SAAkBlJ,GAC1BA,EAAUiM,kCAAoC,SAAUhkC,GACtD,IAAI25B,EAAO35B,EAAK25B,KACZlxI,EAAYu3G,EAAKv3G,UACjB+4I,EAAiBxhC,EAAKwhC,eACtBC,EAAYzhC,EAAKyhC,UACjBwC,EAAQ,CACVx7I,UAAW,aAAazjB,OAAOw8J,EAAiB,EAAG,UAEjD0C,EAAiB,aAAal/J,OAAqB,GAAdyjB,EAAUtH,EAAQ,MAAMnc,OAAqB,GAAdyjB,EAAU5H,EAAQ,MACtFsjJ,EAAa,SAASn/J,OAAOyjB,EAAUuK,KAAO,IAAMvK,EAAUipI,OAAS,EAAI,GAAI,MAAM1sJ,OAAOyjB,EAAUuK,KAAO,IAAMvK,EAAUkpI,OAAS,EAAI,GAAI,MAC9IyS,EAAc,UAAUp/J,OAAOyjB,EAAUT,OAAQ,SAOjD07I,EAAa,CACfO,MAAOA,EACPI,MARU,CACV57I,UAAW,GAAGzjB,OAAOk/J,EAAgB,KAAKl/J,OAAOm/J,EAAY,KAAKn/J,OAAOo/J,IAQzEnxJ,KANS,CACTwV,UAAW,aAAazjB,OAAOy8J,EAAY,GAAK,EAAG,YAOrD,MAAO,CACL70E,IAAK,IACL9xE,WAAY6xI,GAAe,CAAC,EAAG+W,EAAWO,OAC1ClrH,SAAU,CAAC,CACT6zC,IAAK,IACL9xE,WAAY6xI,GAAe,CAAC,EAAG+W,EAAWW,OAC1CtrH,SAAU,CAAC,CACT6zC,IAAK+sE,EAAKlrG,KAAKm+B,IACf7zC,SAAU4gH,EAAKlrG,KAAK1V,SACpBj+B,WAAY6xI,GAAeA,GAAe,CAAC,EAAGgN,EAAKlrG,KAAK3zC,YAAa4oJ,EAAWzwJ,UAIxF,CACF,GAGEqxJ,GAAY,CACdnjJ,EAAG,EACHN,EAAG,EACH/M,MAAO,OACPC,OAAQ,QAGV,SAASwwJ,GAAUvI,GACjB,IAAIwI,IAAQriK,UAAUC,OAAS,QAAsBq2D,IAAjBt2D,UAAU,KAAmBA,UAAU,GAM3E,OAJI65J,EAAUlhJ,aAAekhJ,EAAUlhJ,WAAWg3B,MAAQ0yH,KACxDxI,EAAUlhJ,WAAWg3B,KAAO,SAGvBkqH,CACT,CAUA,IAAIyI,GAAQ,CACVjvG,MAAO,WACL,MAAO,CACLuuG,oBAAqB,SAA6B5L,EAAa1kI,GAC7D,IAAIixI,EAAWjxI,EAAKuiG,aAAa,gBAC7B/4E,EAAQynH,EAAkC3N,GAAiB2N,EAASxzJ,MAAM,KAAKk9C,KAAI,SAAUlsD,GAC/F,OAAOA,EAAE4U,MACX,KAFuB4/I,KAUvB,OANKz5G,EAAKggC,SACRhgC,EAAKggC,OAASw5E,MAGhB0B,EAAYl7G,KAAOA,EACnBk7G,EAAYh0H,OAAS1Q,EAAKuiG,aAAa,mBAChCmiC,CACT,EAEJ,EACA8I,SAAU,SAAkBlJ,GAC1BA,EAAU4M,qBAAuB,SAAU3kC,GACzC,IA7BWu8B,EA6BPxjH,EAAWinF,EAAKjnF,SAChBj+B,EAAaklH,EAAKllH,WAClB6+I,EAAO35B,EAAK25B,KACZ18G,EAAO+iF,EAAK/iF,KACZ2nH,EAAiB5kC,EAAK77F,OACtB1b,EAAYu3G,EAAKv3G,UACjBo8I,EAAYlL,EAAK7lJ,MACjBgxJ,EAAWnL,EAAKlrG,KAChBs2G,EAAY9nH,EAAKnpC,MACjBkxJ,EAAW/nH,EAAKwR,KAChBw2G,EApxEV,SAAyBjlC,GACvB,IAAIv3G,EAAYu3G,EAAKv3G,UACjB+4I,EAAiBxhC,EAAKwhC,eACtBC,EAAYzhC,EAAKyhC,UACjBwC,EAAQ,CACVx7I,UAAW,aAAazjB,OAAOw8J,EAAiB,EAAG,UAEjD0C,EAAiB,aAAal/J,OAAqB,GAAdyjB,EAAUtH,EAAQ,MAAMnc,OAAqB,GAAdyjB,EAAU5H,EAAQ,MACtFsjJ,EAAa,SAASn/J,OAAOyjB,EAAUuK,KAAO,IAAMvK,EAAUipI,OAAS,EAAI,GAAI,MAAM1sJ,OAAOyjB,EAAUuK,KAAO,IAAMvK,EAAUkpI,OAAS,EAAI,GAAI,MAC9IyS,EAAc,UAAUp/J,OAAOyjB,EAAUT,OAAQ,SAOrD,MAAO,CACLi8I,MAAOA,EACPI,MARU,CACV57I,UAAW,GAAGzjB,OAAOk/J,EAAgB,KAAKl/J,OAAOm/J,EAAY,KAAKn/J,OAAOo/J,IAQzEnxJ,KANS,CACTwV,UAAW,aAAazjB,OAAOy8J,EAAY,GAAK,EAAG,WAOvD,CA+vEkByD,CAAgB,CAC1Bz8I,UAAWA,EACX+4I,eAAgBuD,EAChBtD,UAAWoD,IAETM,EAAW,CACbv4E,IAAK,OACL9xE,WAAY6xI,GAAeA,GAAe,CAAC,EAAG2X,IAAY,CAAC,EAAG,CAC5DxyH,KAAM,WAGNszH,EAA8BN,EAAS/rH,SAAW,CACpDA,SAAU+rH,EAAS/rH,SAASqV,IAAIm2G,KAC9B,CAAC,EACDc,EAAiB,CACnBz4E,IAAK,IACL9xE,WAAY6xI,GAAe,CAAC,EAAGsY,EAAMZ,OACrCtrH,SAAU,CAACwrH,GAAU5X,GAAe,CAClC//D,IAAKk4E,EAASl4E,IACd9xE,WAAY6xI,GAAeA,GAAe,CAAC,EAAGmY,EAAShqJ,YAAamqJ,EAAMhyJ,OACzEmyJ,MAEDE,EAAiB,CACnB14E,IAAK,IACL9xE,WAAY6xI,GAAe,CAAC,EAAGsY,EAAMhB,OACrClrH,SAAU,CAACssH,IAETlhI,EAAS,QAAQn/B,OAAO4/J,GAAkB/S,MAC1C0T,EAAS,QAAQvgK,OAAO4/J,GAAkB/S,MAC1C2T,EAAU,CACZ54E,IAAK,OACL9xE,WAAY6xI,GAAeA,GAAe,CAAC,EAAG2X,IAAY,CAAC,EAAG,CAC5D3zJ,GAAIwzB,EACJshI,UAAW,iBACXC,iBAAkB,mBAEpB3sH,SAAU,CAACosH,EAAUG,IAEnBnrJ,EAAO,CACTyyE,IAAK,OACL7zC,SAAU,CAAC,CACT6zC,IAAK,WACL9xE,WAAY,CACVnK,GAAI40J,GAENxsH,UApFOwjH,EAoFWyI,EAnFH,MAAnBzI,EAAW3vE,IACN2vE,EAAWxjH,SAEX,CAACwjH,KAiFDiJ,IAUL,OARAzsH,EAASx0C,KAAK4V,EAAM,CAClByyE,IAAK,OACL9xE,WAAY6xI,GAAe,CACzB76G,KAAM,eACN,YAAa,QAAQ9sC,OAAOugK,EAAQ,KACpCtoH,KAAM,QAAQj4C,OAAOm/B,EAAQ,MAC5BmgI,MAEE,CACLvrH,SAAUA,EACVj+B,WAAYA,EAEhB,CACF,GAGE6qJ,GAAuB,CACzB1E,SAAU,SAAkBlJ,GAC1B,IAAI6N,GAAe,EAEfhY,GAAOiY,aACTD,EAAehY,GAAOiY,WAAW,oCAAoC9tF,SAGvEggF,EAAU+N,oBAAsB,WAC9B,IAAIC,EAAY,GACZC,EAAO,CACTl0H,KAAM,gBAEJm0H,EAAiB,CACnBC,cAAe,MACfC,YAAa,aACbC,IAAK,MAGPL,EAAUxhK,KAAK,CACbqoF,IAAK,OACL9xE,WAAY6xI,GAAeA,GAAe,CAAC,EAAGqZ,GAAO,CAAC,EAAG,CACvD91J,EAAG,u4CAIP,IAAIm2J,EAAkB1Z,GAAeA,GAAe,CAAC,EAAGsZ,GAAiB,CAAC,EAAG,CAC3Ez7E,cAAe,YAGb87E,EAAM,CACR15E,IAAK,SACL9xE,WAAY6xI,GAAeA,GAAe,CAAC,EAAGqZ,GAAO,CAAC,EAAG,CACvD53I,GAAI,MACJC,GAAI,MACJ/sB,EAAG,OAELy3C,SAAU,IAkDZ,OA/CK6sH,GACHU,EAAIvtH,SAASx0C,KAAK,CAChBqoF,IAAK,UACL9xE,WAAY6xI,GAAeA,GAAe,CAAC,EAAGsZ,GAAiB,CAAC,EAAG,CACjEz7E,cAAe,IACfx4C,OAAQ,wBAET,CACD46C,IAAK,UACL9xE,WAAY6xI,GAAeA,GAAe,CAAC,EAAG0Z,GAAkB,CAAC,EAAG,CAClEr0H,OAAQ,mBAKd+zH,EAAUxhK,KAAK+hK,GACfP,EAAUxhK,KAAK,CACbqoF,IAAK,OACL9xE,WAAY6xI,GAAeA,GAAe,CAAC,EAAGqZ,GAAO,CAAC,EAAG,CACvDn2H,QAAS,IACT3/B,EAAG,ySAEL6oC,SAAU6sH,EAAe,GAAK,CAAC,CAC7Bh5E,IAAK,UACL9xE,WAAY6xI,GAAeA,GAAe,CAAC,EAAG0Z,GAAkB,CAAC,EAAG,CAClEr0H,OAAQ,qBAKT4zH,GAEHG,EAAUxhK,KAAK,CACbqoF,IAAK,OACL9xE,WAAY6xI,GAAeA,GAAe,CAAC,EAAGqZ,GAAO,CAAC,EAAG,CACvDn2H,QAAS,IACT3/B,EAAG,gJAEL6oC,SAAU,CAAC,CACT6zC,IAAK,UACL9xE,WAAY6xI,GAAeA,GAAe,CAAC,EAAG0Z,GAAkB,CAAC,EAAG,CAClEr0H,OAAQ,qBAMT,CACL46C,IAAK,IACL9xE,WAAY,CACV,MAAS,WAEXi+B,SAAUgtH,EAEd,CACF,IA/zDF,SAAyBQ,EAAavmC,GACpC,IAAIhqE,EAAMgqE,EAAKwmC,UACf3O,GAAW0O,EACXzO,GAAS,CAAC,EACV52J,OAAOqyD,KAAKwkG,IAAW/iI,SAAQ,SAAU3kB,IACC,IAApC2nJ,GAAoBx1J,QAAQ6N,WACvB0nJ,GAAU1nJ,EAErB,IAEAwnJ,GAAS7iI,SAAQ,SAAUyxI,GACzB,IAAItT,EAASsT,EAAOtT,OAASsT,EAAOtT,SAAW,CAAC,EAiBhD,GAhBAjyJ,OAAOqyD,KAAK4/F,GAAQn+H,SAAQ,SAAUmrF,GACV,oBAAfgzC,EAAOhzC,KAChBnqD,EAAImqD,GAAMgzC,EAAOhzC,IAGS,WAAxBz/D,GAAQyyG,EAAOhzC,KACjBj/G,OAAOqyD,KAAK4/F,EAAOhzC,IAAKnrF,SAAQ,SAAUvjB,GACnCukD,EAAImqD,KACPnqD,EAAImqD,GAAM,CAAC,GAGbnqD,EAAImqD,GAAI1uG,GAAM0hJ,EAAOhzC,GAAI1uG,EAC3B,GAEJ,IAEIg1J,EAAOjxG,MAAO,CAChB,IAAIA,EAAQixG,EAAOjxG,QACnBt0D,OAAOqyD,KAAKiC,GAAOxgC,SAAQ,SAAUkjI,GAC9BJ,GAAOI,KACVJ,GAAOI,GAAQ,IAGjBJ,GAAOI,GAAM3zJ,KAAKixD,EAAM0iG,GAC1B,GACF,CAEIuO,EAAOxF,UACTwF,EAAOxF,SAASlJ,GAEpB,GAGF,CAoyDA2O,CAFc,CAACxT,GAAW4N,GAAiBY,GAAQE,GAAeE,GA7Z7C,CACnBtsG,MAAO,WACL,MAAO,CACLwrG,0BAA2B,SAAmC7I,GAE5D,OADAA,EAAYyF,uBAAyB3M,GAC9BkH,CACT,EAEJ,EACA8I,SAAU,SAAkBC,GAC1BA,EAAayF,mBAAqB,SAAUxhC,GAC1C,IAAIg8B,EAAeh8B,EAAO1xG,KACtBA,OAAwB,IAAjB0tI,EAA0BtT,GAAWsT,EAE5CrnG,GAAOm3F,sBACTA,GAAqBx9H,EAEzB,CACF,GAIuB,CACvB0/H,OAAQ,WACN,MAAO,CACLC,IAAK,CACHwT,QAAS,WACPzJ,KACAwG,IAAa,CACf,GAGN,EACAnuG,MAAO,WACL,MAAO,CACLqxG,UAAW,WACTvJ,GAAQrF,GAAW,4BAA6B,CAAC,GACnD,EACAkB,OAAQ,WAztBPkE,IACLA,GAAGyJ,YA0tBC,EACAnO,MAAO,SAAexzB,GACpB,IAAI24B,EAAuB34B,EAAO24B,qBAE9B6F,GACFvG,KAEAE,GAAQrF,GAAW,4BAA6B,CAC9C6F,qBAAsBA,IAG5B,EAEJ,GAwWgHgG,GAAiBW,GAAOkB,GAbzH,CACfnwG,MAAO,WACL,MAAO,CACLuuG,oBAAqB,SAA6B5L,EAAa1kI,GAC7D,IAAIszI,EAAatzI,EAAKuiG,aAAa,kBAC/B/sC,EAAwB,OAAf89E,IAA6C,KAAfA,GAA2BA,GAEtE,OADA5O,EAAoB,OAAIlvE,EACjBkvE,CACT,EAEJ,IAKuB,CACvBqO,UAAWtN,KAEb,IAII8N,GAAU9N,GAAIpoJ,MAGd29C,GAAOyqG,GAAIzqG,4DCn/Ff,SAAS89F,GAAQvjE,EAAQwjE,GACvB,IAAIj5F,EAAOryD,OAAOqyD,KAAKy1B,GAEvB,GAAI9nF,OAAOuB,sBAAuB,CAChC,IAAIgqJ,EAAUvrJ,OAAOuB,sBAAsBumF,GAC3CwjE,IAAmBC,EAAUA,EAAQv6H,QAAO,SAAUw6H,GACpD,OAAOxrJ,OAAO4B,yBAAyBkmF,EAAQ0jE,GAAKjoJ,UACtD,KAAK8uD,EAAKhvD,KAAKjC,MAAMixD,EAAMk5F,EAC7B,CAEA,OAAOl5F,CACT,CAEA,SAASo5F,GAAeh/I,GACtB,IAAK,IAAIzL,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAI26C,EAAS,MAAQ16C,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EACpDA,EAAI,EAAIqqJ,GAAQrrJ,OAAO27C,IAAS,GAAI7nB,SAAQ,SAAUkb,GACpD08G,GAAgBj/I,EAAQuiC,EAAK2M,EAAO3M,GACtC,IAAKhvC,OAAOkzI,0BAA4BlzI,OAAOs7C,iBAAiB7uC,EAAQzM,OAAOkzI,0BAA0Bv3F,IAAW0vG,GAAQrrJ,OAAO27C,IAAS7nB,SAAQ,SAAUkb,GAC5JhvC,OAAOgC,eAAeyK,EAAQuiC,EAAKhvC,OAAO4B,yBAAyB+5C,EAAQ3M,GAC7E,GACF,CAEA,OAAOviC,CACT,CAEA,SAAS+yC,GAAQsV,GAGf,OAAOtV,GAAU,mBAAqBt8C,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2xD,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAO,mBAAqB5xD,QAAU4xD,EAAIl0D,cAAgBsC,QAAU4xD,IAAQ5xD,OAAO7C,UAAY,gBAAkBy0D,CAC1H,EAAGtV,GAAQsV,EACb,CAEA,SAAS42F,GAAgB52F,EAAK9lB,EAAKtsC,GAYjC,OAXIssC,KAAO8lB,EACT90D,OAAOgC,eAAe8yD,EAAK9lB,EAAK,CAC9BtsC,MAAOA,EACPa,YAAY,EACZ8oF,cAAc,EACd27B,UAAU,IAGZlzD,EAAI9lB,GAAOtsC,EAGNoyD,CACT,CAiBA,SAASixG,GAAyBpqH,EAAQqqH,GACxC,GAAc,MAAVrqH,EAAgB,MAAO,CAAC,EAE5B,IAEI3M,EAAKhuC,EAFLyL,EAlBN,SAAuCkvC,EAAQqqH,GAC7C,GAAc,MAAVrqH,EAAgB,MAAO,CAAC,EAC5B,IAEI3M,EAAKhuC,EAFLyL,EAAS,CAAC,EACVw5J,EAAajmK,OAAOqyD,KAAK1W,GAG7B,IAAK36C,EAAI,EAAGA,EAAIilK,EAAW/kK,OAAQF,IACjCguC,EAAMi3H,EAAWjlK,GACbglK,EAAS1kK,QAAQ0tC,IAAQ,IAC7BviC,EAAOuiC,GAAO2M,EAAO3M,IAGvB,OAAOviC,CACT,CAKey5J,CAA8BvqH,EAAQqqH,GAInD,GAAIhmK,OAAOuB,sBAAuB,CAChC,IAAI4kK,EAAmBnmK,OAAOuB,sBAAsBo6C,GAEpD,IAAK36C,EAAI,EAAGA,EAAImlK,EAAiBjlK,OAAQF,IACvCguC,EAAMm3H,EAAiBnlK,GACnBglK,EAAS1kK,QAAQ0tC,IAAQ,GACxBhvC,OAAOK,UAAUmB,qBAAqBjB,KAAKo7C,EAAQ3M,KACxDviC,EAAOuiC,GAAO2M,EAAO3M,GAEzB,CAEA,OAAOviC,CACT,CAEA,SAASw2H,GAAmBnzG,GAC1B,OAGF,SAA4BA,GAC1B,GAAI3vB,MAAMs0D,QAAQ3kC,GAAM,OAAOumG,GAAkBvmG,EACnD,CALS87H,CAAmB97H,IAO5B,SAA0BgrG,GACxB,GAAsB,qBAAX53H,QAAmD,MAAzB43H,EAAK53H,OAAOC,WAA2C,MAAtB23H,EAAK,cAAuB,OAAO36H,MAAM83D,KAAK6iE,EACtH,CAToCmB,CAAiBnsG,IAWrD,SAAqC/tB,EAAGw0H,GACtC,IAAKx0H,EAAG,OACR,GAAiB,kBAANA,EAAgB,OAAOs0H,GAAkBt0H,EAAGw0H,GACvD,IAAI50H,EAAI3B,OAAOK,UAAUiN,SAAS/M,KAAKwB,GAAGkC,MAAM,GAAI,GAC1C,WAANtC,GAAkBI,EAAEnB,cAAae,EAAII,EAAEnB,YAAYsV,MACvD,GAAU,QAANvU,GAAqB,QAANA,EAAa,OAAOxB,MAAM83D,KAAKl2D,GAClD,GAAU,cAANJ,GAAqB,2CAA2C2H,KAAK3H,GAAI,OAAO00H,GAAkBt0H,EAAGw0H,EAC3G,CAlB6DD,CAA4BxmG,IA4BzF,WACE,MAAM,IAAIrvB,UAAU,uIACtB,CA9BiGorJ,EACjG,CAmBA,SAASx1B,GAAkBvmG,EAAK+nC,IACnB,MAAPA,GAAeA,EAAM/nC,EAAI5uB,UAAQ22D,EAAM/nC,EAAI5uB,QAE/C,IAAK,IAAIF,EAAI,EAAG2rE,EAAO,IAAIxsE,MAAM03D,GAAM72D,EAAI62D,EAAK72D,IAAK2rE,EAAK3rE,GAAK8uB,EAAI9uB,GAEnE,OAAO2rE,CACT,CAmEA,SAASy5F,GAASjoG,GAChB,OAPoBrJ,EAOHqJ,GANjBrJ,GAAY,KAEGA,EAKNqJ,GAITA,EAASA,EAAO//C,QAAQ,iBAAiB,SAAUgvC,EAAOi5G,GACxD,OAAOA,EAAMA,EAAIrpG,cAAgB,EACnC,KAEcxjD,OAAO,EAAG,GAAG0V,cAAgBivC,EAAO3kD,OAAO,GAhB3D,IAAsBs7C,CAiBtB,CAEA,IAAIwxG,GAAY,CAAC,SAqEjB,IAAI1Y,IAAa,EAEjB,IACEA,IAAavmC,CACf,CAAE,MAAOtnH,IAAI,CAUb,SAASwmK,GAAkBh5G,GAGzB,OAAIA,GAA0B,WAAlB/N,GAAQ+N,IAAsBA,EAAKwuB,QAAUxuB,EAAKwlG,UAAYxlG,EAAKA,KACtEA,EAGL39C,GAAAA,KACKA,GAAAA,KAAW29C,GAIP,OAATA,EACK,KAILA,GAA0B,WAAlB/N,GAAQ+N,IAAsBA,EAAKwuB,QAAUxuB,EAAKwlG,SACrDxlG,EAILptD,MAAMs0D,QAAQlH,IAAyB,IAAhBA,EAAKrsD,OAEvB,CACL66E,OAAQxuB,EAAK,GACbwlG,SAAUxlG,EAAK,IAKC,kBAATA,EACF,CACLwuB,OAAQ,MACRg3E,SAAUxlG,QAHd,CAMF,CAKA,SAASi5G,GAAcx3H,EAAKtsC,GAK1B,OAAOvC,MAAMs0D,QAAQ/xD,IAAUA,EAAMxB,OAAS,IAAMf,MAAMs0D,QAAQ/xD,IAAUA,EAAQgpJ,GAAgB,CAAC,EAAG18G,EAAKtsC,GAAS,CAAC,CACzH,CAEA,IAAI+jK,GAA+B18G,EAAAA,YAAiB,SAAU3jC,EAAO2kC,GACnE,IAAI27G,EAAWtgJ,EAAMmnC,KACjBo5G,EAAWvgJ,EAAM21B,KACjBgsC,EAAS3hE,EAAM2hE,OACfx7C,EAAYnmB,EAAMmmB,UAClBN,EAAQ7lB,EAAM6lB,MACdysH,EAAUtyI,EAAMsyI,QAChBz1H,EAAS7c,EAAM6c,OACfq0H,EAAaiP,GAAkBG,GAC/B7tB,EAAU2tB,GAAc,UAAW,GAAG1iK,OAAOm/H,GAvNnD,SAAmB78G,GACjB,IAAIwgJ,EAEAC,EAAOzgJ,EAAMygJ,KACbC,EAAO1gJ,EAAM0gJ,KACbC,EAAW3gJ,EAAM2gJ,SACjBC,EAAS5gJ,EAAM4gJ,OACfC,EAAQ7gJ,EAAM6gJ,MACdC,EAAQ9gJ,EAAM8gJ,MACdC,EAAO/gJ,EAAM+gJ,KACbC,EAAYhhJ,EAAMghJ,UAClBC,EAAcjhJ,EAAMihJ,YACpBC,EAAQlhJ,EAAMkhJ,MACdC,EAAanhJ,EAAMmhJ,WACnBC,EAAUphJ,EAAMohJ,QAChBp5G,EAAShoC,EAAMgoC,OACfq5G,EAAWrhJ,EAAMqhJ,SACjBC,EAAOthJ,EAAMshJ,KACb51I,EAAO1L,EAAM0L,KACbsoB,EAAWh0B,EAAMg0B,SACjButH,EAAOvhJ,EAAMuhJ,KAEb9uB,GAkBD6S,GAlBYkb,EAAW,CACxB,UAAWC,EACX,UAAWC,EACX,eAAgBC,EAChB,YAAaC,EACb,WAAYC,EACZ,WAAYC,EACZ,UAAWC,EACX,kBAAmBE,EACnB,gBAAiBD,EACjB,WAAYE,EACZ,QAASC,EACT,aAAcC,EACd,YAAap5G,EACb,QAASq5G,EACT,WAAoB,IAATC,EACX,qBAA+B,eAATA,GAAkC,SAATA,EAC/C,mBAA6B,aAATA,GAAgC,SAATA,GAChB,MAAM5jK,OAAOguB,GAAuB,qBAATA,GAAiC,OAATA,GAAgB45H,GAAgBkb,EAAU,aAAa9iK,OAAOs2C,GAA+B,qBAAbA,GAAyC,OAAbA,GAAkC,IAAbA,GAAiBsxG,GAAgBkb,EAAU,WAAW9iK,OAAO6jK,GAAuB,qBAATA,GAAiC,OAATA,GAAgBjc,GAAgBkb,EAAU,kBAAmBxgJ,EAAMwhJ,aAAchB,GAGrY,OAAO5mK,OAAOqyD,KAAKwmF,GAAS3rF,KAAI,SAAUle,GACxC,OAAO6pG,EAAQ7pG,GAAOA,EAAM,IAC9B,IAAGhe,QAAO,SAAUge,GAClB,OAAOA,CACT,GACF,CAuKsE6hH,CAAUzqI,IAAS68G,GAAmB12F,EAAUv8B,MAAM,QACtHuX,EAAYi/I,GAAc,YAAwC,kBAApBpgJ,EAAMmB,UAAyB3X,GAAAA,UAAgBwW,EAAMmB,WAAanB,EAAMmB,WACtHw0B,EAAOyqH,GAAc,OAAQD,GAAkBI,IAC/CkB,EAAet6G,GAAK+pG,EAAY7L,GAAeA,GAAeA,GAAeA,GAAe,CAAC,EAAG5S,GAAUtxH,GAAYw0B,GAAO,CAAC,EAAG,CACnIgsC,OAAQA,EACR97C,MAAOA,EACPysH,QAASA,EACTz1H,OAAQA,KAGV,IAAK4kI,EAEH,OA/EJ,WAEI,IAAIC,GADDla,IAAcj5H,SAAoC,oBAAlBA,QAAQ/wB,QAG1CkkK,EAAWnzI,SAAS/wB,MAAMxC,MAAM0mK,EAAU7mK,UAE/C,CAwEIw1F,CAAI,sBAAuB6gE,GACpB,KAGT,IAAIe,EAAWwP,EAAaxP,SACxB0P,EAAa,CACfh9G,IAAKA,GAQP,OANA/qD,OAAOqyD,KAAKjsC,GAAO0N,SAAQ,SAAUkb,GAE9By3H,GAAgB16G,aAAazrD,eAAe0uC,KAC/C+4H,EAAW/4H,GAAO5oB,EAAM4oB,GAE5B,IACOg5H,GAAa3P,EAAS,GAAI0P,EACnC,IACAtB,GAAgB51G,YAAc,kBAC9B41G,GAAgBnnH,UAAY,CAC1BunH,KAAMp+E,KAAAA,KACNr6B,OAAQq6B,KAAAA,KACRs+E,SAAUt+E,KAAAA,KACVu+E,OAAQv+E,KAAAA,KACRl8C,UAAWk8C,KAAAA,OACXq+E,KAAMr+E,KAAAA,KACNy+E,MAAOz+E,KAAAA,KACP1sC,KAAM0sC,KAAAA,UAAoB,CAACA,KAAAA,OAAkBA,KAAAA,MAAiBA,KAAAA,SAC9DxlD,OAAQwlD,KAAAA,OACR8+E,WAAY9+E,KAAAA,KACZ++E,QAAS/+E,KAAAA,KACTi/E,KAAMj/E,KAAAA,MAAgB,EAAC,GAAM,EAAO,aAAc,WAAY,SAC9Dl7B,KAAMk7B,KAAAA,UAAoB,CAACA,KAAAA,OAAkBA,KAAAA,MAAiBA,KAAAA,SAC9Dg/E,SAAUh/E,KAAAA,KACVk/E,KAAMl/E,KAAAA,MAAgB,CAAC,QAAS,SAChC6+E,MAAO7+E,KAAAA,KACPruC,SAAUquC,KAAAA,MAAgB,CAAC,EAAG,GAAI,IAAK,MACvCw+E,MAAOx+E,KAAAA,KACP32D,KAAM22D,KAAAA,MAAgB,CAAC,MAAO,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,QACnH0+E,KAAM1+E,KAAAA,KACN2+E,UAAW3+E,KAAAA,KACX4+E,YAAa5+E,KAAAA,KACbV,OAAQU,KAAAA,UAAoB,CAACA,KAAAA,KAAgBA,KAAAA,SAC7Cx8C,MAAOw8C,KAAAA,OACPiwE,QAASjwE,KAAAA,OACTlhE,UAAWkhE,KAAAA,UAAoB,CAACA,KAAAA,OAAkBA,KAAAA,SAClDm/E,YAAan/E,KAAAA,MAEfg+E,GAAgB16G,aAAe,CAC7BqC,QAAQ,EACR7hB,UAAW,GACXwP,KAAM,KACN9Y,OAAQ,KACRskI,YAAY,EACZC,SAAS,EACTE,MAAM,EACNn6G,KAAM,KACNk6G,UAAU,EACVE,KAAM,KACNL,OAAO,EACPltH,SAAU,KACVtoB,KAAM,KACNq1I,MAAM,EACNC,WAAW,EACXC,aAAa,EACbR,MAAM,EACNC,MAAM,EACNC,UAAU,EACVC,QAAQ,EACRC,OAAO,EACPl/E,QAAQ,EACR97C,MAAO,GACPysH,QAAS,KACTnxI,UAAW,KACXqgJ,aAAa,GAEf,IAAII,GA/MJ,SAASC,EAAQlhK,EAAeuxB,GAC9B,IAAIyvI,EAAa9mK,UAAUC,OAAS,QAAsBq2D,IAAjBt2D,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAEtF,GAAuB,kBAAZq3B,EACT,OAAOA,EAGT,IAAIuf,GAAYvf,EAAQuf,UAAY,IAAIqV,KAAI,SAAUynC,GACpD,OAAOszE,EAAQlhK,EAAe4tF,EAChC,IAGI3jC,EAAShxD,OAAOqyD,KAAK/5B,EAAQ1e,YAAc,CAAC,GAAG6vG,QAAO,SAAUunC,EAAKhiH,GACvE,IAAInI,EAAMvO,EAAQ1e,WAAWo1B,GAE7B,OAAQA,GACN,IAAK,QACHgiH,EAAIkX,MAAiB,UAAIrhI,SAClBvO,EAAQ1e,WAAkB,MACjC,MAEF,IAAK,QACHo3I,EAAIkX,MAAa,MApCzB,SAAuBl9J,GACrB,OAAOA,EAAMgF,MAAM,KAAKk9C,KAAI,SAAUxrD,GACpC,OAAOA,EAAEkU,MACX,IAAGob,QAAO,SAAUtvB,GAClB,OAAOA,CACT,IAAG+nH,QAAO,SAAUunC,EAAKlc,GACvB,IAVgBjuG,EAUZ7lC,EAAI8zI,EAAKxzI,QAAQ,KACjBu3B,EAAOutI,GAAStxB,EAAK7wI,MAAM,EAAGjD,IAC9B0B,EAAQoyI,EAAK7wI,MAAMjD,EAAI,GAAG4U,OAE9B,OADAijB,EAAKs0B,WAAW,UAAY6jG,GAbZnqH,EAa2BhO,EAZtCgO,EAAIJ,OAAO,GAAGu2B,cAAgBn2B,EAAI5iC,MAAM,KAYOvB,EAAQsuJ,EAAIn4H,GAAQn2B,EACjEsuJ,CACT,GAAG,CAAC,EACN,CAwB6BmX,CAActhI,GACnC,MAEF,QAC+B,IAAzBmI,EAAI1tC,QAAQ,UAA2C,IAAzB0tC,EAAI1tC,QAAQ,SAC5C0vJ,EAAIkX,MAAMl5H,EAAI9f,eAAiB2X,EAE/BmqH,EAAIkX,MAAM9B,GAASp3H,IAAQnI,EAKjC,OAAOmqH,CACT,GAAG,CACDkX,MAAO,CAAC,IAGNE,EAAoBL,EAAW/8J,MAC/Bq9J,OAAsC,IAAtBD,EAA+B,CAAC,EAAIA,EACpDE,EAAYvC,GAAyBgC,EAAYzB,IAKrD,OAHAt1G,EAAOk3G,MAAa,MAAIzc,GAAeA,GAAe,CAAC,EAAGz6F,EAAOk3G,MAAa,OAAIG,GAG3EthK,EAAc3F,WAAM,EAAQ,CAACk3B,EAAQozD,IAAK+/D,GAAeA,GAAe,CAAC,EAAGz6F,EAAOk3G,OAAQI,IAAYxkK,OAAOm/H,GAAmBprF,IAC1I,EAgK2BlkC,KAAK,KAAMo2C,EAAAA,wBC7XtBpoD,GAAIA,GAAA,QAAAvB,EAAAa,UAAAC,OAA+BpB,EAAAK,MAAAC,EAAA,EAAAA,EAAA,KAAAL,EAAA,EAAAA,EAAAK,EAAAL,IAAAD,EAAAC,EAAA,GAAAkB,UAAAlB,GAQtB,MAElBkG,MAAA,8BACqBtE,GAC7B7B,EAAKoB,OAAS,IAAMpB,EAAKotD,KAAI,SAAAvrD,GAAA,UAASA,EAAA,OAAMkQ,KAAK,KAAO,iECvC3CzR,GAAQuB,GAAA,QACdA,KAAWA,EAAM2oC,GAAA,UAKXxqC,GAAY6B,GAAA,IAAAvB,EAAA,QACtBuB,IAAA,SAawBA,GAAA,IACxBA,GAA0B,iBAAVA,EAAoB,OAAO,MAC1CvB,EAAQJ,OAAO8xD,eAAenwD,GAAA,GACtB,OAAVvB,EAAA,SACI,IAEFN,EACLE,OAAOM,eAAeC,KAAKH,EAAO,gBAAkBA,EAAMQ,YAAA,OAEvDd,IAASE,QAGG,mBAARF,GACP65D,SAASrsD,SAAS/M,KAAKT,KAAUoqC,EAAA,CA1B7B,CAEUvoC,IACdxB,MAAMs0D,QAAQ9yD,MACZA,EAAM0lC,QAAA,QAAAjnC,EACNuB,EAAMf,mBAAA,IAAAR,OAAA,EAANA,EAAoBinC,MACtB3lC,GAAMC,IACNwC,GAAMxC,GAAA,CA0DR,SAAgBX,GAAKW,EAAUvB,EAAWN,QAAA,IAAAA,IAAAA,GAAA,GAAiB,IACtDiC,GAAYJ,IACb7B,EAAiBE,OAAOqyD,KAAOk2G,IAAS5mK,GAAKmyB,SAAQ,SAAA/zB,GACjDD,GAAiC,iBAARC,GAAkBK,EAAKL,EAAK4B,EAAI5B,GAAM4B,EAAA,IAGrEA,EAAImyB,SAAQ,SAACh0B,EAAYC,GAAA,OAAeK,EAAKL,EAAOD,EAAO6B,EAAA,aAK7CI,GAAYJ,GAAA,IAErBvB,EAAgCuB,EAAM2oC,IAAA,OACrClqC,EACJA,EAAMY,EAAQ,EACbZ,EAAMY,EAAQ,EACbZ,EAAMY,EACRb,MAAMs0D,QAAQ9yD,GAAA,EAEdD,GAAMC,GAAA,EAENwC,GAAMxC,GAAA,aAMM2R,GAAI3R,EAAYvB,GAAA,WACxB2B,GAAYJ,GAChBA,EAAMyD,IAAIhF,GACVJ,OAAOK,UAAUC,eAAeC,KAAKoB,EAAOvB,EAAA,UAIhCe,GAAIQ,EAA2BvB,GAAA,WAEvC2B,GAAYJ,GAA0BA,EAAM6B,IAAIpD,GAAQuB,EAAMvB,EAAA,CAItE,SAAgBoP,GAAI7N,EAAYvB,EAA6BN,GAAA,IACtDC,EAAIgC,GAAYJ,GAAA,IAClB5B,EAAoB4B,EAAM2D,IAAIlF,EAAgBN,GAAA,IACzCC,EACR4B,EAAMglC,IAAI7mC,GACJ6B,EAAMvB,GAAkBN,CAAA,UAIhB8O,GAAGjN,EAAQvB,GAAA,OAEtBuB,IAAMvB,EACI,IAANuB,GAAW,EAAIA,GAAM,EAAIvB,EAEzBuB,GAAMA,GAAKvB,GAAMA,CAAA,UAKVsB,GAAMC,GAAA,OACdsoC,IAAUtoC,aAAkB22F,GAAA,UAIpBn0F,GAAMxC,GAAA,OACdkoC,IAAUloC,aAAkBinF,GAAA,UAGpBpkF,GAAO7C,GAAA,OACfA,EAAMI,GAASJ,EAAM7B,CAAA,UAIbyE,GAAY5C,GAAA,GACvBxB,MAAMs0D,QAAQ9yD,GAAO,OAAOxB,MAAME,UAAU4D,MAAM1D,KAAKoB,GAAA,IACrDvB,EAAcqnC,GAA0B9lC,UACvCvB,EAAYkqC,IAAA,QACfxqC,EAAOyoK,GAAQnoK,GACVL,EAAI,EAAGA,EAAID,EAAKoB,OAAQnB,IAAK,KAC/BiB,EAAWlB,EAAKC,GAChBgC,EAAO3B,EAAYY,IAAA,IACrBe,EAAKimH,WACRjmH,EAAKimH,UAAA,EACLjmH,EAAKsqF,cAAA,IAKFtqF,EAAKyB,KAAOzB,EAAKuD,OACpBlF,EAAYY,GAAO,CAClBqrF,cAAA,EACA27B,UAAA,EACAzkH,WAAYxB,EAAKwB,WACjBb,MAAOf,EAAKX,IAAA,QAGRhB,OAAOa,OAAOb,OAAO8xD,eAAenwD,GAAOvB,EAAA,UAWnC4O,GAAUrN,EAAU5B,GAAA,gBAAAA,IAAAA,GAAA,GAC/B4f,GAAShe,IAAQvB,GAAQuB,KAAS7B,GAAY6B,KAC9CI,GAAYJ,GAAO,IACtBA,EAAI2D,IAAM3D,EAAIglC,IAAMhlC,EAAIilH,MAAQjlH,EAAIg3F,OAASr2F,IAE9CtC,OAAO+d,OAAOpc,GACV5B,GAAMiB,GAAKW,GAAK,SAACA,EAAKvB,GAAA,OAAU4O,GAAO5O,GAAA,EAAO,QALauB,CAAA,CAShE,SAASW,KACRX,GAAI,YAGWge,GAAShe,GAAA,OACb,MAAPA,GAA8B,iBAARA,GAEnB3B,OAAOy3D,SAAS91D,EAAA,UCxKRke,GACfzf,GAAA,IAEMN,EAAS0oK,GAAQpoK,GAAA,OAClBN,GACJ6B,GAAI,GAAIvB,GAGFN,CAAA,UAGQ+O,GACflN,EACAvB,GAEKooK,GAAQ7mK,KAAY6mK,GAAQ7mK,GAAavB,EAAA,CClC/C,SAAgBkgB,KAAA,OAER+pB,EAAA,UAkBQhG,GACf1iC,EACAvB,GAEIA,IACHyf,GAAU,WACVle,EAAM2R,EAAW,GACjB3R,EAAMD,EAAkB,GACxBC,EAAMwC,EAAiB/D,EAAA,UAITspC,GAAY/nC,GAC3Bie,GAAWje,GACXA,EAAM6C,EAAQsvB,QAAQ1T,IAEtBze,EAAM6C,EAAU,cAGDob,GAAWje,GACtBA,IAAU0oC,KACbA,GAAe1oC,EAAM4C,EAAA,UAIPic,GAAW7e,GAAA,OAClB0oC,GArCD,CACN7lC,EAAS,GACTD,EAmCkC8lC,GAlClC/nC,EAkCgDX,EA/BhDkN,GAAA,EACAyR,EAAoB,GAiCtB,SAASF,GAAYze,GAAA,IACdvB,EAAoBuB,EAAM2oC,IAAA,IAE/BlqC,EAAMY,GAAA,IACNZ,EAAMY,EAENZ,EAAMikC,IACFjkC,EAAMspC,GAAA,CAAW,UC9DPxpB,GAAc9f,EAAaL,GAC1CA,EAAMugB,EAAqBvgB,EAAMyE,EAAQtD,OAAA,IACnCF,EAAYjB,EAAMyE,EAAS,GAC3BzC,OAAA,IAAa3B,GAAwBA,IAAWY,EAAA,OACjDjB,EAAMuC,EAAOsd,GACjBC,GAAU,OAAOO,EAAiBrgB,EAAOK,EAAQ2B,GAC9CA,GACCf,EAAUspC,IAAapqB,IAC1BwpB,GAAY3pC,GACZ4B,GAAI,IAED7B,GAAYM,KAEfA,EAASsgB,GAAS3gB,EAAOK,GACpBL,EAAMwE,GAAS0b,GAAYlgB,EAAOK,IAEpCL,EAAMuT,GACTuM,GAAU,WAAWa,EACpB1f,EAAUspC,IAAaxqC,EACvBM,EACAL,EAAMuT,EACNvT,EAAM2B,IAKRtB,EAASsgB,GAAS3gB,EAAOiB,EAAW,IAErC0oC,GAAY3pC,GACRA,EAAMuT,GACTvT,EAAMoE,EAAgBpE,EAAMuT,EAAUvT,EAAM2B,GAEtCtB,IAAWwpC,GAAUxpC,OAAA,CAAS,CAGtC,SAASsgB,GAAS/e,EAAuBvB,EAAYN,GAAA,GAEhD6f,GAASvf,GAAQ,OAAOA,EAAA,IAEtBL,EAAoBK,EAAMkqC,IAAA,IAE3BvqC,EAAA,OACJiB,GACCZ,GACA,SAACY,EAAKe,GAAA,OACLwe,GAAiB5e,EAAW5B,EAAOK,EAAOY,EAAKe,EAAYjC,EAAA,OAGtDM,EAAA,GAGJL,EAAMwgB,IAAW5e,EAAW,OAAOvB,EAAA,IAElCL,EAAMmgB,EAAA,OACVD,GAAYte,EAAW5B,EAAMD,GAAA,GACtBC,EAAMD,EAAA,IAGTC,EAAMknC,EAAY,CACtBlnC,EAAMknC,GAAA,EACNlnC,EAAMwgB,EAAOD,IAAA,IACPve,EAAA,IAELhC,EAAMiB,GAAA,IAAiCjB,EAAMiB,EACzCjB,EAAMgC,EAAQwC,GAAYxE,EAAMoP,GACjCpP,EAAMgC,EAKNuR,EAAavR,EACbZ,GAAA,EAAQ,IACRpB,EAAMiB,IACTsS,EAAa,IAAIs1E,IAAI7mF,GACrBA,EAAO6kH,QACPzlH,GAAA,GAEDH,GAAKsS,GAAY,SAAClT,EAAKY,GAAA,OACtBuf,GAAiB5e,EAAW5B,EAAOgC,EAAQ3B,EAAKY,EAAYlB,EAAMqB,EAAA,IAGnE8e,GAAYte,EAAWI,GAAA,GAEnBjC,GAAQ6B,EAAU2R,GACrBuM,GAAU,WAAW8pB,EACpB5pC,EACAD,EACA6B,EAAU2R,EACV3R,EAAUD,EAAA,QAIN3B,EAAMgC,CAAA,CAGd,SAASwe,GACRxgB,EACAiB,EACAe,EACAZ,EACAyN,EACAlN,EACAyC,GAAA,GAGI/D,GAAQwO,GAAa,KASlBpK,EAAMkc,GAAS3gB,EAAW6O,EAP/BlN,GACAV,GAAA,IACAA,EAAaA,IACZsS,GAAKtS,EAA8CkmC,EAAY/lC,GAC7DO,EAAUoC,OAAO3C,QAAA,GACjB,GAGJqO,GAAIzN,EAAcZ,EAAMqD,IAGpBpE,GAAQoE,GAEL,OADNzE,EAAU8O,GAAA,CAAiB,MAElB1K,GACVpC,EAAa4kC,IAAI/3B,GAAA,GAGd9O,GAAY8O,KAAgB+Q,GAAS/Q,GAAa,KAChD7O,EAAUuC,EAAOqe,GAAe5gB,EAAUugB,EAAqB,EAAG,OAQvEI,GAAS3gB,EAAW6O,GAEf5N,GAAgBA,EAAYuf,EAAOhc,GACvC0b,GAAYlgB,EAAW6O,EAAA,EAI1B,SAASqR,GAAYte,EAAmBvB,EAAYN,QAAA,IAAAA,IAAAA,GAAA,IAE9C6B,EAAM4C,GAAW5C,EAAMW,EAAOqe,GAAehf,EAAMkN,GACvDG,GAAO5O,EAAON,EAAA,CCqEhB,SAAS4mB,GAAK/kB,EAAgBvB,GAAA,IACvBN,EAAQ6B,EAAM2oC,IAAA,OACLxqC,EAAQ0E,GAAO1E,GAAS6B,GACzBvB,EAAA,CAcf,SAAS6mC,GACRtlC,EACAvB,GAAA,GAGMA,KAAQuB,EAAA,QACV7B,EAAQE,OAAO8xD,eAAenwD,GAC3B7B,GAAO,KACPC,EAAOC,OAAO4B,yBAAyB9B,EAAOM,GAAA,GAChDL,EAAM,OAAOA,EACjBD,EAAQE,OAAO8xD,eAAehyD,EAAA,WAKhBqP,GAAYxN,GACtBA,EAAMue,IACVve,EAAMue,GAAA,EACFve,EAAM4C,GACT4K,GAAYxN,EAAM4C,GAAA,UAKL4b,GAAYxe,GACtBA,EAAMI,IACVJ,EAAMI,EAAQwC,GAAY5C,EAAM7B,GAAA,CCtDlC,SAAgB6pC,GACfhoC,EACAvB,EACAN,GAAA,IAGMC,EAAiB2B,GAAMtB,GAC1Byf,GAAU,UAAU2G,EAAUpmB,EAAON,GACrCqE,GAAM/D,GACNyf,GAAU,UAAUY,EAAUrgB,EAAON,GACrC6B,EAAMie,EAAA,SDvLTje,EACAvB,GAAA,IAEMN,EAAUK,MAAMs0D,QAAQ9yD,GACxB5B,EAAoB,CACzBiB,EAAOlB,EAAA,EAAkC,EAEzCygB,EAAQngB,EAASA,EAAOmgB,EAASD,KAEjCJ,GAAA,EAEA+mB,GAAA,EAEAC,EAAW,CAAC,EAEZ3iC,EAASnE,EAETN,EAAO6B,EAEPwN,EAAQ,KAERpN,EAAO,KAEPsiC,EAAS,KACThkB,GAAA,GASGrf,EAAYjB,EACZgC,EAA2Cw6C,GAC3Cz8C,IACHkB,EAAS,CAACjB,GACVgC,EAAQ0mK,IAAA,IAAAn1J,EAGe2pH,MAAMyrC,UAAU1nK,EAAQe,GAAzCZ,EAAAmS,EAAAq1J,OAAQn5J,EAAA8D,EAAAs1J,MAAA,OACf7oK,EAAMoP,EAASK,EACfzP,EAAMskC,EAAUljC,EACTqO,CAAA,CC4IE,CACWpP,EAAON,GACxB+f,GAAU,OAAOuqB,EAAgBhqC,EAAON,GAAA,OAE7BA,EAASA,EAAOygB,EAASD,MACjC9b,EAAQnB,KAAKtD,GACZA,CAAA,UC9NQmnC,GAAQnnC,GAAA,OAClBK,GAAQL,IAAQ4B,GAAI,GAAI5B,GAI9B,SAAS4B,EAAYvB,GAAA,IACfN,GAAYM,GAAQ,OAAOA,EAAA,IAE5BL,EADEuT,EAAgClT,EAAMkqC,IAEtC17B,EAAW7M,GAAY3B,GAAA,GACzBkT,EAAO,KAERA,EAAM4M,IACN5M,EAAMtS,EAAQ,IAAM6e,GAAU,OAAOsqB,EAAY72B,IAElD,OAAOA,EAAMxT,EAEdwT,EAAM2zB,GAAA,EACNlnC,EAAO4gB,GAAWvgB,EAAOwO,GACzB0E,EAAM2zB,GAAA,CAAa,MAEnBlnC,EAAO4gB,GAAWvgB,EAAOwO,GAAA,OAG1B5N,GAAKjB,GAAM,SAACK,EAAKN,GACZwT,GAASnS,GAAImS,EAAMxT,EAAOM,KAASN,GACvC0P,GAAIzP,EAAMK,EAAKuB,EAAY7B,GAAA,QAGrB8O,EAA4B,IAAIg6E,IAAI7oF,GAAQA,CAAA,CAxBpD,CAHoBA,EAAA,CA8BpB,SAAS4gB,GAAWhf,EAAYvB,GAAA,OAEvBA,GAAA,cAEC,IAAIk4F,IAAI32F,GAAA,cAGRxB,MAAM83D,KAAKt2D,GAAA,OAEb4C,GAAY5C,EAAA,UClCJ6kB,KAAA,SA8EN1mB,EACR6B,EACAvB,GAAA,IAEIN,EAAO4B,EAAYC,GAAA,OACnB7B,EACHA,EAAKyD,WAAanD,EAElBsB,EAAYC,GAAQ7B,EAAO,CAC1BusF,cAAA,EACA9oF,WAAAnD,EACAoD,IAAA,eACOpD,EAAQO,KAAK2pC,IAAA,OAGZiS,GAAY/4C,IAAIpD,EAAOuB,EAAA,EAE/B2D,IAAA,SAAelF,GAAA,IACRN,EAAQa,KAAK2pC,IAGnBiS,GAAYj3C,IAAIxF,EAAO6B,EAAMvB,EAAA,GAIzBN,CAAA,UAICC,EAAiB4B,GAAA,IAKpB,IAAIvB,EAAIuB,EAAOT,OAAS,EAAGd,GAAK,EAAGA,IAAK,KACtCN,EAAkB6B,EAAOvB,GAAGkqC,IAAA,IAC7BxqC,EAAMogB,EAAA,OACFpgB,EAAMkB,GAAA,OAERG,EAAgBrB,IAAQqP,GAAYrP,GAAA,aAGpCiC,EAAiBjC,IAAQqP,GAAYrP,GAAA,WA6DrCiC,EAAiBJ,GAAA,QAClBvB,EAAiBuB,EAAjB7B,EAAOA,EAAU6B,EAAVwN,EAIRpP,EAAOwoK,GAAQzoK,GACZkB,EAAIjB,EAAKmB,OAAS,EAAGF,GAAK,EAAGA,IAAK,KACpCe,EAAWhC,EAAKiB,GAAA,GAClBe,IAAQuoC,GAAA,KACNnpC,EAAYf,EAAM2B,GAAA,YAEpBZ,IAA4BmS,GAAIlT,EAAO2B,GAAA,SACnC,IAKDyN,EAAQ1P,EAAOiC,GACfL,EAAoB8N,GAASA,EAAM86B,IAAA,GACrC5oC,EAAQA,EAAM5B,IAAUqB,GAAayN,GAAGY,EAAOrO,GAAA,QAC3C,MAOJgD,IAAgB/D,EAAMkqC,IAAA,OACrBvqC,EAAKmB,SAAWqnK,GAAQnoK,GAAOc,QAAUiD,EAAc,EAAI,YAG1DhD,EAAgBQ,GAAA,IACjBvB,EAAUuB,EAAVwN,EAAA,GACH/O,EAAOc,SAAWS,EAAM7B,EAAMoB,OAAQ,OAAO,MAS3CpB,EAAaE,OAAO4B,yBACzBxB,EACAA,EAAOc,OAAS,MAGbpB,IAAeA,EAAW0D,IAAK,OAAO,MAErC,IAAIzD,EAAI,EAAGA,EAAIK,EAAOc,OAAQnB,IAAA,IAC7BK,EAAOE,eAAeP,GAAI,OAAO,UAGhC,CAU0C,IAxK5C2B,EAAoD,CAAC,EA2K3DmN,GAAW,MAAO,CACjBu7B,EAAA,SA5MAzoC,EACAvB,GAAA,IAEML,EAAUI,MAAMs0D,QAAQ9yD,GACxBX,EAAA,SA1BiBW,EAAkBvB,GAAA,GACrCuB,EAAS,SACN5B,EAAYI,MAAMC,EAAKc,QACpBF,EAAI,EAAGA,EAAIZ,EAAKc,OAAQF,IAChChB,OAAOgC,eAAejC,EAAO,GAAKiB,EAAGlB,EAAckB,GAAA,IAAG,OAChDjB,CAAA,KAEDgC,EAAc0lC,GAA0BrnC,UACvC2B,EAAYuoC,IAAA,QACbh3B,EAAOi1J,GAAQxmK,GACZZ,EAAI,EAAGA,EAAImS,EAAKpS,OAAQC,IAAK,KAC/BqO,EAAW8D,EAAKnS,GACtBY,EAAYyN,GAAO1P,EAClB0P,EACA7N,KAAaI,EAAYyN,GAAKjM,WAAA,QAGzBvD,OAAOa,OAAOb,OAAO8xD,eAAe1xD,GAAO2B,EAAA,CAS7C,CAAuBhC,EAAS4B,GAEhCI,EAAwC,CAC7Cf,EAAOjB,EAAA,EAAgC,EACvCwgB,EAAQngB,EAASA,EAAOmgB,EAASD,KACjCJ,GAAA,EACA+mB,GAAA,EACAC,EAAW,CAAC,EACZ3iC,EAASnE,EAETN,EAAO6B,EAEPwN,EAAQnO,EACRe,EAAO,KACP2nC,GAAA,EACArpB,GAAA,GAAW,OAGZrgB,OAAOgC,eAAehB,EAAOspC,GAAa,CACzC5nC,MAAOX,EAEPimH,UAAA,IAEMhnH,CAAA,EAkLPof,EAAA,SAvPAze,EACA7B,EACAiC,GAEKA,EASJ3B,GAAQN,IACPA,EAAOwqC,IAA0B/pB,IAAW5e,GAE7C5B,EAAiB4B,EAAM6C,IAXnB7C,EAAM2R,GAAA,SAwHH3R,EAAuBvB,GAAA,GAC1BA,GAA4B,iBAAXA,EAAA,KAChBN,EAA8BM,EAAOkqC,IAAA,GACtCxqC,EAAA,KACEC,EAAmCD,EAAnCA,EAAOiC,EAA4BjC,EAA5BqP,EAAQK,EAAoB1P,EAApBonC,EAAWt4B,EAAS9O,EAATkB,EAAA,OAC7B4N,EAKH5N,GAAKe,GAAQ,SAAA3B,GACPA,IAAgBkqC,UAAA,IAEhBvqC,EAAcK,IAAuBkT,GAAIvT,EAAOK,GAGzCoP,EAAUpP,IAErBuB,EAAuBI,EAAO3B,KAJ9BoP,EAAUpP,IAAA,EACV+O,GAAYrP,IAAA,IAOdkB,GAAKjB,GAAO,SAAA4B,QAAA,IAEPI,EAAOJ,IAAuB2R,GAAIvR,EAAQJ,KAC7C6N,EAAU7N,IAAA,EACVwN,GAAYrP,GAAA,SAGR,GAAI,IAAA8O,EAA8B,IACpCzN,EAAgBrB,KACnBqP,GAAYrP,GACZ0P,EAAUtO,QAAA,GAGPa,EAAOb,OAASnB,EAAMmB,OAAA,IACpB,IAAIQ,EAAIK,EAAOb,OAAQQ,EAAI3B,EAAMmB,OAAQQ,IAAK8N,EAAU9N,IAAA,OAAK,IAE7D,IAAIyC,EAAIpE,EAAMmB,OAAQiD,EAAIpC,EAAOb,OAAQiD,IAAKqL,EAAUrL,IAAA,EAAK,QAI7DK,EAAMkF,KAAKS,IAAIpI,EAAOb,OAAQnB,EAAMmB,QAEjCqD,EAAI,EAAGA,EAAIC,EAAKD,IAEnBxC,EAAOzB,eAAeiE,KAC1BiL,EAAUjL,IAAA,QAAK,IAEZiL,EAAUjL,IAAkB5C,EAAuBI,EAAOwC,GAAA,IAzKrD,CACc5C,EAAM6C,EAAS,IAGvCzE,EAAiB4B,EAAM6C,GAAA,EA+OxB2lC,EAAA,SAboBxoC,GAAA,WACbA,EAAMX,EACVe,EAAiBJ,GACjBR,EAAgBQ,EAAA,IC5Jb,IAAAgmC,GNnFJ0C,GOpBEP,GACa,oBAAX5mC,QAAiD,iBAAhBA,OAAO,KACnC+mC,GAAwB,oBAARquD,IAChBzuD,GAAwB,oBAAR++C,IAChBzhD,GACK,oBAAV81F,YAAA,IACAA,MAAMyrC,WACM,oBAAZ7mK,QAKK+nC,GAAmBE,GAC7B5mC,OAAOuvD,IAAI,mBAAA9qB,GAAA,IACR,oBAAkBA,IAUXN,GAA2ByC,GACrC5mC,OAAOuvD,IAAI,mBACV,qBAESnoB,GAA6BR,GACvC5mC,OAAOuvD,IAAI,eACV,iBTAEvoB,ISIa,oBAAVhnC,QAAyBA,OAAOC,STJhB,GAAAnD,OAAOK,UAAUO,aA4B7B2nK,GACO,oBAAZ1mK,SAA2BA,QAAQwpJ,QACvCxpJ,QAAQwpJ,aAAA,IACDrrJ,OAAOuB,sBACd,SAAAI,GAAA,OACA3B,OAAO6xD,oBAAoBlwD,GAAKmC,OAC/B9D,OAAOuB,sBAAsBI,GAAA,EAEH3B,OAAO6xD,oBAEzBpqB,GACZznC,OAAOkzI,2BACP,SAAmCvxI,GAAA,IAE5BvB,EAAW,CAAC,EAAD,OACjBmoK,GAAQ5mK,GAAQmyB,SAAQ,SAAAh0B,GACvBM,EAAIN,GAAOE,OAAO4B,yBAAyBD,EAAQ7B,EAAA,IAE7CM,CAAA,ECnEHooK,GA4BF,CAAC,EGyDQjsH,GAAwC,CACpD/4C,IAAA,SAAI7B,EAAOvB,GAAA,GACNA,IAASkqC,GAAa,OAAO3oC,EAAA,IAE3B5B,EAASyE,GAAO7C,GAAA,IACjB2R,GAAIvT,EAAQK,GAAA,OAwInB,SAA2BuB,EAAmBvB,EAAaN,GAAA,IAAAC,EACpDiB,EAAOimC,GAAuB7mC,EAAQN,GAAA,OACrCkB,EACJ,UAAWA,EACVA,EAAK0B,MAAA,QAAA3C,EAGLiB,EAAKwC,WAAA,IAAAzD,OAAA,EAALA,EAAUQ,KAAKoB,EAAMwN,QAAA,CACtB,CARJ,CAtI4BxN,EAAO5B,EAAQK,GAAA,IAEnCY,EAAQjB,EAAOK,GAAA,OACjBuB,EAAMslC,IAAennC,GAAYkB,GAC7BA,EAIJA,IAAU0lB,GAAK/kB,EAAM7B,EAAOM,IAC/B+f,GAAYxe,GACJA,EAAMI,EAAO3B,GAAeupC,GACnChoC,EAAM4e,EAAOje,EACbtB,EACAW,IAGKX,CAAA,EAERoE,IAAA,SAAIzD,EAAOvB,GAAA,OACHA,KAAQoE,GAAO7C,EAAA,EAEvB0pJ,QAAA,SAAQ1pJ,GAAA,OACAE,QAAQwpJ,QAAQ7mJ,GAAO7C,GAAA,EAE/B2D,IAAA,SACC3D,EACAvB,EACAN,GAAA,IAEMC,EAAOknC,GAAuBziC,GAAO7C,GAAQvB,GAAA,GAC/C,MAAAL,OAAA,EAAAA,EAAMuF,IAAA,OAGTvF,EAAKuF,IAAI/E,KAAKoB,EAAMwN,EAAQrP,IAAA,EACrB,IAEH6B,EAAMue,EAAW,KAGflf,EAAU0lB,GAAKliB,GAAO7C,GAAQvB,GAE9B2B,EAAiC,MAAAf,OAAA,EAAAA,EAAUspC,IAAA,GAC7CvoC,GAAgBA,EAAajC,IAAUA,EAAA,OAC1C6B,EAAMI,EAAO3B,GAAQN,EACrB6B,EAAMulC,EAAU9mC,IAAA,GAAQ,EACjB,GAEJwO,GAAG9O,EAAOkB,UAAA,IAAalB,GAAuBwT,GAAI3R,EAAM7B,EAAOM,IAClE,OAAO,EACR+f,GAAYxe,GACZwN,GAAYxN,EAAA,QAIXA,EAAMI,EAAO3B,KAAUN,SAAA,IAEtBA,GAAuBM,KAAQuB,EAAMI,IAEtC8Z,OAAOC,MAAMhc,IAAU+b,OAAOC,MAAMna,EAAMI,EAAO3B,MAKnDuB,EAAMI,EAAO3B,GAAQN,EACrB6B,EAAMulC,EAAU9mC,IAAA,IAAQ,CAJhB,EAOTyoK,eAAA,SAAelnK,EAAOvB,GAAA,gBAEjBsmB,GAAK/kB,EAAM7B,EAAOM,IAAuBA,KAAQuB,EAAM7B,GAC1D6B,EAAMulC,EAAU9mC,IAAA,EAChB+f,GAAYxe,GACZwN,GAAYxN,WAGLA,EAAMulC,EAAU9mC,GAGpBuB,EAAMI,UAAcJ,EAAMI,EAAM3B,IAAA,CAC7B,EAIRwB,yBAAA,SAAyBD,EAAOvB,GAAA,IACzBN,EAAQ0E,GAAO7C,GACf5B,EAAO8B,QAAQD,yBAAyB9B,EAAOM,GAAA,OAChDL,EACE,CACNioH,UAAA,EACA37B,aAAA,IAAc1qF,EAAMX,GAA2C,WAATZ,EACtDmD,WAAYxD,EAAKwD,WACjBb,MAAO5C,EAAMM,IALIL,CAAA,EAQnBiC,eAAA,WACCL,GAAI,KAELmwD,eAAA,SAAenwD,GAAA,OACP3B,OAAO8xD,eAAenwD,EAAM7B,EAAA,EAEpCG,eAAA,WACC0B,GAAI,MAQA8mK,GAA8C,CAAC,EACrDznK,GAAKu7C,IAAa,SAAC56C,EAAKvB,GAEvBqoK,GAAW9mK,GAAO,kBACjBV,UAAU,GAAKA,UAAU,GAAG,GACrBb,EAAGgB,MAAMT,KAAMM,UAAA,KAGxBwnK,GAAWI,eAAiB,SAASzoK,EAAON,GAAA,OAGpC2oK,GAAWnjK,IAAK/E,KAAKI,KAAMP,EAAON,OAAA,EAAM,EAEhD2oK,GAAWnjK,IAAM,SAASlF,EAAON,EAAMC,GAAA,OAE/Bw8C,GAAYj3C,IAAK/E,KAAKI,KAAMP,EAAM,GAAIN,EAAMC,EAAOK,EAAM,SCpMpD0oK,GAAb,oBAAA/oK,EAKaK,GAAA,IAAAL,EAAA,UAAA6f,EAJWunB,GAAA,KAAAxmB,GAAA,EAEA,KAAAooJ,QA4BH,SAAC3oK,EAAWY,EAAce,GAAA,GAEzB,mBAAT3B,GAAyC,mBAAXY,EAAuB,KACzDsS,EAActS,EACpBA,EAASZ,EAAA,IAEHe,EAAOpB,EAAA,OACN,SAEN4B,GAAA,IAAAvB,EAAA,cAAAuB,IAAAA,EAAO2R,GAAA,QAAAxT,EAAAmB,UAAAC,OACJnB,EAAAI,MAAAL,EAAA,EAAAA,EAAA,KAAAiC,EAAA,EAAAA,EAAAjC,EAAAiC,IAAAhC,EAAAgC,EAAA,GAAAd,UAAAc,GAAA,OAEIZ,EAAK4nK,QAAQpnK,GAAM,SAACA,GAAA,IAAA7B,EAAA,OAAAA,EAAmBkB,GAAOT,KAAAa,MAAAtB,EAAA,CAAKM,EAAMuB,GAAAmC,OAAU/D,GAAA,SAQxEyP,EAAA,GAJkB,mBAAXxO,GAAuBW,GAAI,YAClCI,GAAwD,mBAAlBA,GACzCJ,GAAI,GAKD7B,GAAYM,GAAO,KAChBwO,EAAQ4R,GAAWzgB,GACnB2B,EAAQioC,GAAY5pC,EAAMK,OAAA,GAC5B+D,GAAA,EAAW,IAEdqL,EAASxO,EAAOU,GAChByC,GAAA,CAAW,SAGPA,EAAUulC,GAAY96B,GACrBgR,GAAWhR,EAAA,OAEM,oBAAZvM,SAA2BmN,aAAkBnN,QAChDmN,EAAO7M,MACb,SAAAhB,GAAA,OACC0iC,GAAkBz1B,EAAO7M,GAClBme,GAAcve,EAAQiN,EAAA,IAE9B,SAAAjN,GAAA,MACC+nC,GAAY96B,GACNjN,CAAA,KAIT0iC,GAAkBz1B,EAAO7M,GAClBme,GAAc1Q,EAAQZ,GAAA,CACvB,IAAKxO,GAAwB,iBAATA,EAAmB,cAC7CoP,EAASxO,EAAOZ,MACUoP,EAASpP,GAC/BoP,IAAWo6B,KAASp6B,OAAA,GACpBzP,EAAK4gB,GAAa3R,GAAOQ,GAAA,GACzBzN,EAAe,KACZyC,EAAa,GACbD,EAAc,GACpBsb,GAAU,WAAWa,EAA4BtgB,EAAMoP,EAAQhL,EAAGD,GAClExC,EAAcyC,EAAGD,EAAA,QAEXiL,CAAA,CACD7N,GAAI,GAAIvB,EAAA,OAAA4oK,mBAG0B,SAACrnK,EAAWvB,GAAA,GAEjC,mBAATuB,EAAA,OACH,SAACvB,GAAA,QAAAN,EAAAmB,UAAAC,OAAeF,EAAAb,MAAAL,EAAA,EAAAA,EAAA,KAAAiC,EAAA,EAAAA,EAAAjC,EAAAiC,IAAAf,EAAAe,EAAA,GAAAd,UAAAc,GAAA,OACtBhC,EAAKipK,mBAAmB5oK,GAAO,SAACA,GAAA,OAAeuB,EAAAP,WAAA,GAAKhB,GAAA0D,OAAU9C,GAAA,SAG5DlB,EAAkBkB,EAChBe,EAAShC,EAAKgpK,QAAQpnK,EAAMvB,GAAQ,SAACuB,EAAYvB,GACtDN,EAAU6B,EACVX,EAAiBZ,CAAA,UAGK,oBAAZiC,SAA2BN,aAAkBM,QAChDN,EAAOY,MAAK,SAAAhB,GAAA,MAAa,CAACA,EAAW7B,EAAUkB,EAAA,IAEhD,CAACe,EAAQjC,EAAUkB,EAAA,EAzGQ,kBAAvB,MAAAZ,OAAA,EAAAA,EAAQ6oK,aAClBtoK,KAAKuoK,cAAc9oK,EAAQ6oK,YACM,kBAAvB,MAAA7oK,OAAA,EAAAA,EAAQ+oK,aAClBxoK,KAAKyoK,cAAchpK,EAAQ+oK,WAAA,KAAAnoK,EAAAjB,EAAAM,UAAA,OAAAW,EAyG7BqoK,YAAA,SAAiCtpK,GAC3BD,GAAYC,IAAO4B,GAAI,GACxBvB,GAAQL,KAAOA,EAAOmnC,GAAQnnC,IAAA,IAC5BiB,EAAQwf,GAAW7f,MACnBoB,EAAQ4nC,GAAYhpC,KAAMZ,OAAA,GAAM,OACtCgC,EAAMuoC,IAAajqB,GAAA,EACnBT,GAAW5e,GACJe,CAAA,EAAAf,EAGRsoK,YAAA,SACClpK,EACAN,GAAA,IAOekB,GALWZ,GAAUA,EAAckqC,KAK3C/pB,EAAA,OACP8jB,GAAkBrjC,EAAOlB,GAClBogB,QAAA,EAAyBlf,EAAA,EAAAA,EAQjCooK,cAAA,SAAcznK,GAAA,KACRgf,EAAchf,CAAA,EAAAX,EASpBkoK,cAAA,SAAc9oK,GACTA,IAAU+mC,IACbxlC,GAAI,SAEAie,EAAcxf,CAAA,EAAAY,EAGpBuoK,aAAA,SAAkC5nK,EAAS7B,GAAA,IAGtCC,EAAA,IACCA,EAAID,EAAQoB,OAAS,EAAGnB,GAAK,EAAGA,IAAK,KACnCiB,EAAQlB,EAAQC,GAAA,GACI,IAAtBiB,EAAM+Q,KAAK7Q,QAA6B,YAAbF,EAAMoP,GAAkB,CACtDzO,EAAOX,EAAM0B,MAAA,OAMX3C,GAAK,IACRD,EAAUA,EAAQmE,MAAMlE,EAAI,QAGvBgC,EAAmB8d,GAAU,WAAWkqB,EAAA,OAC1C3pC,GAAQuB,GAEJI,EAAiBJ,EAAM7B,GAGxBa,KAAKooK,QAAQpnK,GAAM,SAACA,GAAA,OAC1BI,EAAiBJ,EAAO7B,EAAA,KAAAC,CAAA,CAxL3B,GGZM2mC,GAAQ,IAAIoiI,GAqBL7iI,GAAoBS,GAAMqiI,QA+CW,IAxCKriI,GAAMsiI,mBAAmBr1J,KAC/E+yB,IAQ4BA,GAAM0iI,cAAcz1J,KAAK+yB,IAQzBA,GAAMwiI,cAAcv1J,KAAK+yB,IAO1BA,GAAM6iI,aAAa51J,KAAK+yB,IAMzBA,GAAM2iI,YAAY11J,KAAK+yB,IAUvBA,GAAM4iI,YAAY31J,KAAK+yB,IAAA,IEzFnC,SAAS,GAAgBouB,EAAK9lB,EAAKtsC,GAYhD,OAXAssC,EAAM,EAAcA,MACT8lB,EACT90D,OAAOgC,eAAe8yD,EAAK9lB,EAAK,CAC9BtsC,MAAOA,EACPa,YAAY,EACZ8oF,cAAc,EACd27B,UAAU,IAGZlzD,EAAI9lB,GAAOtsC,EAENoyD,CACT,CCbA,SAAS,GAAQgzB,EAAQwjE,GACvB,IAAIj5F,EAAOryD,OAAOqyD,KAAKy1B,GACvB,GAAI9nF,OAAOuB,sBAAuB,CAChC,IAAIgqJ,EAAUvrJ,OAAOuB,sBAAsBumF,GAC3CwjE,IAAmBC,EAAUA,EAAQv6H,QAAO,SAAUw6H,GACpD,OAAOxrJ,OAAO4B,yBAAyBkmF,EAAQ0jE,GAAKjoJ,UACtD,KAAK8uD,EAAKhvD,KAAKjC,MAAMixD,EAAMk5F,EAC7B,CACA,OAAOl5F,CACT,CACe,SAAS,GAAe5lD,GACrC,IAAK,IAAIzL,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAI26C,EAAS,MAAQ16C,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EACpDA,EAAI,EAAI,GAAQhB,OAAO27C,IAAS,GAAI7nB,SAAQ,SAAUkb,GACpD,GAAeviC,EAAQuiC,EAAK2M,EAAO3M,GACrC,IAAKhvC,OAAOkzI,0BAA4BlzI,OAAOs7C,iBAAiB7uC,EAAQzM,OAAOkzI,0BAA0Bv3F,IAAW,GAAQ37C,OAAO27C,IAAS7nB,SAAQ,SAAUkb,GAC5JhvC,OAAOgC,eAAeyK,EAAQuiC,EAAKhvC,OAAO4B,yBAAyB+5C,EAAQ3M,GAC7E,GACF,CACA,OAAOviC,CACT,CCZA,SAAS+8J,GAAuB5pE,GAC9B,MAAO,yBAA2BA,EAAO,4CAA8CA,EAAhF,iFACT,CAGA,IAAI6pE,GACuB,oBAAXvmK,QAAyBA,OAAOwmK,YAAc,eAS1DC,GAAe,WACjB,OAAOjgK,KAAKY,SAASgD,SAAS,IAAIq2C,UAAU,GAAG3zC,MAAM,IAAI6B,KAAK,IAChE,EAEI+3J,GAAc,CAChBC,KAAM,eAAiBF,KACvBG,QAAS,kBAAoBH,KAC7BI,qBAAsB,WACpB,MAAO,+BAAiCJ,IAC1C,GAOF,SAAS13B,GAAcn9E,GACrB,GAAmB,kBAARA,GAA4B,OAARA,EAAc,OAAO,EAGpD,IAFA,IAAIusB,EAAQvsB,EAE4B,OAAjC90D,OAAO8xD,eAAeuvB,IAC3BA,EAAQrhF,OAAO8xD,eAAeuvB,GAGhC,OAAOrhF,OAAO8xD,eAAegD,KAASusB,CACxC,CAuFA,SAAS2oF,GAAYh3B,EAASi3B,EAAgBC,GAC5C,IAAI1sB,EAEJ,GAA8B,oBAAnBysB,GAAqD,oBAAbC,GAA+C,oBAAbA,GAAmD,oBAAjBjpK,UAAU,GAC/H,MAAM,IAAIgF,MAA8CujK,GAAuB,IAQjF,GAL8B,oBAAnBS,GAAqD,qBAAbC,IACjDA,EAAWD,EACXA,OAAiB1yG,GAGK,qBAAb2yG,EAA0B,CACnC,GAAwB,oBAAbA,EACT,MAAM,IAAIjkK,MAA8CujK,GAAuB,IAGjF,OAAOU,EAASF,GAATE,CAAsBl3B,EAASi3B,EACxC,CAEA,GAAuB,oBAAZj3B,EACT,MAAM,IAAI/sI,MAA8CujK,GAAuB,IAGjF,IAAIW,EAAiBn3B,EACjBo3B,EAAeH,EACfI,EAAmB,GACnBC,EAAgBD,EAChBE,GAAgB,EASpB,SAASC,IACHF,IAAkBD,IACpBC,EAAgBD,EAAiBpmK,QAErC,CAQA,SAASsqI,IACP,GAAIg8B,EACF,MAAM,IAAItkK,MAA8CujK,GAAuB,IAGjF,OAAOY,CACT,CA0BA,SAASn7B,EAAUxnC,GACjB,GAAwB,oBAAbA,EACT,MAAM,IAAIxhG,MAA8CujK,GAAuB,IAGjF,GAAIe,EACF,MAAM,IAAItkK,MAA8CujK,GAAuB,IAGjF,IAAIt6B,GAAe,EAGnB,OAFAs7B,IACAF,EAAcjnK,KAAKokG,GACZ,WACL,GAAKynC,EAAL,CAIA,GAAIq7B,EACF,MAAM,IAAItkK,MAA8CujK,GAAuB,IAGjFt6B,GAAe,EACfs7B,IACA,IAAIjhJ,EAAQ+gJ,EAAchpK,QAAQmmG,GAClC6iE,EAAc50J,OAAO6T,EAAO,GAC5B8gJ,EAAmB,IAVnB,CAWF,CACF,CA4BA,SAAS31D,EAASJ,GAChB,IAAK29B,GAAc39B,GACjB,MAAM,IAAIruG,MAA8CujK,GAAuB,IAGjF,GAA2B,qBAAhBl1D,EAAOzoG,KAChB,MAAM,IAAI5F,MAA8CujK,GAAuB,IAGjF,GAAIe,EACF,MAAM,IAAItkK,MAA8CujK,GAAuB,IAGjF,IACEe,GAAgB,EAChBH,EAAeD,EAAeC,EAAc91D,EAC9C,CAAE,QACAi2D,GAAgB,CAClB,CAIA,IAFA,IAAI7nE,EAAY2nE,EAAmBC,EAE1BtpK,EAAI,EAAGA,EAAI0hG,EAAUxhG,OAAQF,IAAK,EAEzCymG,EADe/E,EAAU1hG,KAE3B,CAEA,OAAOszG,CACT,CA4EA,OAHAI,EAAS,CACP7oG,KAAM+9J,GAAYC,QAEbrsB,EAAQ,CACb9oC,SAAUA,EACVu6B,UAAWA,EACXV,SAAUA,EACVk8B,eAnEF,SAAwBC,GACtB,GAA2B,oBAAhBA,EACT,MAAM,IAAIzkK,MAA8CujK,GAAuB,KAGjFW,EAAiBO,EAKjBh2D,EAAS,CACP7oG,KAAM+9J,GAAYE,SAEtB,IAuDSL,IA9CT,WACE,IAAI3qC,EAEA6rC,EAAiB17B,EACrB,OAAOnQ,EAAO,CASZmQ,UAAW,SAAmB27B,GAC5B,GAAwB,kBAAbA,GAAsC,OAAbA,EAClC,MAAM,IAAI3kK,MAA8CujK,GAAuB,KAGjF,SAASqB,IACHD,EAASroK,MACXqoK,EAASroK,KAAKgsI,IAElB,CAIA,OAFAs8B,IAEO,CACLh8B,YAFgB87B,EAAeE,GAInC,IACMpB,IAAgB,WACtB,OAAO9oK,IACT,EAAGm+H,CACL,EAaqC0e,CACvC,CAsHA,SAASstB,GAAgBC,GAIvB,IAHA,IAAIC,EAAchrK,OAAOqyD,KAAK04G,GAC1BE,EAAgB,CAAC,EAEZjqK,EAAI,EAAGA,EAAIgqK,EAAY9pK,OAAQF,IAAK,CAC3C,IAAIguC,EAAMg8H,EAAYhqK,GAElBqmH,EAMyB,oBAAlB0jD,EAAS/7H,KAClBi8H,EAAcj8H,GAAO+7H,EAAS/7H,GAElC,CAEA,IASIk8H,EATAC,EAAmBnrK,OAAOqyD,KAAK44G,GAWnC,KAjEF,SAA4BF,GAC1B/qK,OAAOqyD,KAAK04G,GAAUj3I,SAAQ,SAAUkb,GACtC,IAAIgkG,EAAU+3B,EAAS/7H,GAKvB,GAA4B,qBAJTgkG,OAAQz7E,EAAW,CACpC1rD,KAAM+9J,GAAYC,OAIlB,MAAM,IAAI5jK,MAA8CujK,GAAuB,KAGjF,GAEO,qBAFIx2B,OAAQz7E,EAAW,CAC5B1rD,KAAM+9J,GAAYG,yBAElB,MAAM,IAAI9jK,MAA8CujK,GAAuB,IAEnF,GACF,CAiDI4B,CAAmBH,EACrB,CAAE,MAAOlrK,IACPmrK,EAAsBnrK,EACxB,CAEA,OAAO,SAAqBq/C,EAAOk1D,GAKjC,QAJc,IAAVl1D,IACFA,EAAQ,CAAC,GAGP8rH,EACF,MAAMA,EAcR,IAX2C,IAQvCG,GAAa,EACbC,EAAY,CAAC,EAERlzG,EAAK,EAAGA,EAAK+yG,EAAiBjqK,OAAQk3D,IAAM,CACnD,IAAIq6E,EAAO04B,EAAiB/yG,GACxB46E,EAAUi4B,EAAcx4B,GACxB84B,EAAsBnsH,EAAMqzF,GAC5B+4B,EAAkBx4B,EAAQu4B,EAAqBj3D,GAEnD,GAA+B,qBAApBk3D,EAAiC,CACzBl3D,GAAUA,EAAOzoG,KAClC,MAAM,IAAI5F,MAA8CujK,GAAuB,IACjF,CAEA8B,EAAU74B,GAAQ+4B,EAClBH,EAAaA,GAAcG,IAAoBD,CACjD,CAGA,OADAF,EAAaA,GAAcF,EAAiBjqK,SAAWlB,OAAOqyD,KAAKjT,GAAOl+C,QACtDoqK,EAAYlsH,CAClC,CACF,CA8DA,SAASqsH,KACP,IAAK,IAAIpuB,EAAOp8I,UAAUC,OAAQwqK,EAAQ,IAAIvrK,MAAMk9I,GAAO5K,EAAO,EAAGA,EAAO4K,EAAM5K,IAChFi5B,EAAMj5B,GAAQxxI,UAAUwxI,GAG1B,OAAqB,IAAjBi5B,EAAMxqK,OACD,SAAUk4D,GACf,OAAOA,CACT,EAGmB,IAAjBsyG,EAAMxqK,OACDwqK,EAAM,GAGRA,EAAMjiD,QAAO,SAAUtoH,EAAG0e,GAC/B,OAAO,WACL,OAAO1e,EAAE0e,EAAEze,WAAM,EAAQH,WAC3B,CACF,GACF,CAmBA,SAAS0qK,KACP,IAAK,IAAItuB,EAAOp8I,UAAUC,OAAQ0qK,EAAc,IAAIzrK,MAAMk9I,GAAO5K,EAAO,EAAGA,EAAO4K,EAAM5K,IACtFm5B,EAAYn5B,GAAQxxI,UAAUwxI,GAGhC,OAAO,SAAUu3B,GACf,OAAO,WACL,IAAI97B,EAAQ87B,EAAY5oK,WAAM,EAAQH,WAElC4qK,EAAY,WACd,MAAM,IAAI5lK,MAA8CujK,GAAuB,IACjF,EAEIsC,EAAgB,CAClBv9B,SAAUL,EAAMK,SAChB75B,SAAU,WACR,OAAOm3D,EAAUzqK,WAAM,EAAQH,UACjC,GAEEglJ,EAAQ2lB,EAAY1+G,KAAI,SAAU6+G,GACpC,OAAOA,EAAWD,EACpB,IAEA,OADAD,EAAYJ,GAAQrqK,WAAM,EAAQ6kJ,EAAtBwlB,CAA6Bv9B,EAAMx5B,UACxCs3D,GAAcA,GAAc,CAAC,EAAG99B,GAAQ,CAAC,EAAG,CACjDx5B,SAAUm3D,GAEd,CACF,CACF,CC3rBA,SAASI,GAAsBC,GAqB7B,OAlBiB,SAAoBptC,GACnC,IAAIpqB,EAAWoqB,EAAKpqB,SAChB65B,EAAWzP,EAAKyP,SACpB,OAAO,SAAUhsI,GACf,OAAO,SAAU+xG,GAGf,MAAsB,oBAAXA,EAEFA,EAAOI,EAAU65B,EAAU29B,GAI7B3pK,EAAK+xG,EACd,CACF,CACF,CAGF,CAEA,IAAI63D,GAAQF,KAGZE,GAAMC,kBAAoBH,GAC1B,i1ECqMaI,GACO,qBAAX5mK,QACNA,OAAe6mK,qCACX7mK,OAAe6mK,qCAChB,WACE,GAAyB,IAArBrrK,UAAUC,OACd,MAA4B,kBAAjBD,UAAU,GAAwBwqK,GACtCA,GAAQrqK,MAAM,KAAMH,UAAA,EASf,qBAAXwE,QAA2BA,OAAe8mK,8BAC5C9mK,OAAe8mK,6BC3OP,SAAAt6B,GAAuBvvI,GACpC,GAAqB,kBAAVA,GAAgC,OAAVA,EAAgB,OAAO,EAExD,IAAI2+E,EAAQrhF,OAAO8xD,eAAepvD,GAClC,GAAc,OAAV2+E,EAAgB,OAAO,EAG3B,IADA,IAAImrF,EAAYnrF,EAC4B,OAArCrhF,OAAO8xD,eAAe06G,IAC3BA,EAAYxsK,OAAO8xD,eAAe06G,GAGpC,OAAOnrF,IAAUmrF,CAAA,CCWZ,IAAAC,GAAA,SAAA/lC,GAIL,SAAA+lC,QAAA,IAAApzG,EAAA,GAAAjB,EAAA,EAAAA,EAAAn3D,UAAAC,OAAAk3D,IAAAiB,EAAAjB,GAAAn3D,UAAAm3D,GAAA,IAAAoxE,EAAA9C,EAAAtlI,MAAA,KACWi4D,IAAA,YACTr5D,OAAOC,eAAeupI,EAAMijC,EAAgBpsK,YAAA,CA8BH,OAlCnCG,GAAAisK,EAAA/lC,GAIsC1mI,OAAAgC,eAAAyqK,EAGlCvpK,OAAOwpK,QAAA,KAH2B,WAI5C,OAAOD,CAAA,kCAUTA,EAAApsK,UAAAyD,OAAA,mBAAAgsB,EAAA,GAAAsoC,EAAA,EAAAA,EAAAn3D,UAAAC,OAAAk3D,IAAAtoC,EAAAsoC,GAAAn3D,UAAAm3D,GACE,OAAOsuE,EAAArmI,UAAMyD,OAAO1C,MAAMT,KAAMmvB,EAAA,EAWlC28I,EAAApsK,UAAAssK,QAAA,mBAAA78I,EAAA,GAAAsoC,EAAA,EAAAA,EAAAn3D,UAAAC,OAAAk3D,IAAAtoC,EAAAsoC,GAAAn3D,UAAAm3D,GACE,OAAmB,IAAftoC,EAAI5uB,QAAgBf,MAAMs0D,QAAQ3kC,EAAI,IACjC,IAAI28I,EAAA94J,KAAAvS,MAAAqrK,EAAAzoK,GAAA,SAAmB8rB,EAAI,GAAGhsB,OAAOnD,SAEvC,IAAI8rK,EAAA94J,KAAAvS,MAAAqrK,EAAAzoK,GAAA,SAAmB8rB,EAAIhsB,OAAOnD,QAAA,EAAA8rK,CAAA,CApCtC,CAEGtsK,OAsCH,SAAAysK,GAA4B/lI,GACjC,OAAOgmI,GAAYhmI,GAAOimI,GAAgBjmI,GAAK,WAAM,IAAMA,CAAA,CCzBtD,SAAAkmI,KAGL,OAAO,SAAqCp/E,GAC1C,OAgBG,SAQLA,QAAA,IAAAA,IAAAA,EAAA,IAGE,IAAAq/E,EAGEr/E,EAAAw+E,MAHFA,OAAA,IAAAa,GAAQA,EAKNC,GAFAt/E,EAAAu/E,eAAAv/E,EAAAw/E,kBAEkB,IAAIV,IAEtBN,KAzEN,SAAmBlsJ,GACjB,MAAoB,mBAANA,CAAM,CAyEd4zH,CAAUs4B,GAGZc,EAAgB5pK,KACd+pK,GAAAA,kBAAkCjB,EAAMD,gBAH1Ce,EAAgB5pK,KAAK+pK,KAQrB/lD,EA4BJ,OAAO4lD,CAAA,CAxEEI,CAAqB1/E,EAAA,ECxBhC,IAAM2/E,IAAgBjmD,ECwOf,SAAAkmD,GAAsB1hK,EAAc2hK,GACzC,SAAAC,QAAA,IAAAp0G,EAAA,GAAAjB,EAAA,EAAAA,EAAAn3D,UAAAC,OAAAk3D,IAAAiB,EAAAjB,GAAAn3D,UAAAm3D,GACE,GAAIo1G,EAAe,CACjB,IAAIE,EAAWF,EAAApsK,WAAA,EAAiBi4D,GAChC,IAAKq0G,EACH,MAAM,IAAIznK,MAAM,0CAGlB,OAAO0nK,GAAAA,GAAA,CACL9hK,KAAAA,EACAoG,QAASy7J,EAASz7J,SACd,SAAUy7J,GAAY,CAAEv7E,KAAMu7E,EAASv7E,OACvC,UAAWu7E,GAAY,CAAE9pK,MAAO8pK,EAAS9pK,QAGjD,MAAO,CAAEiI,KAAAA,EAAMoG,QAASonD,EAAK,IAU/B,OAPAo0G,EAAcngK,SAAW,WAAM,SAAGzB,CAAH,EAE/B4hK,EAAc5hK,KAAOA,EAErB4hK,EAAcrgH,MAAQ,SAACknD,GACrB,OAAAA,EAAOzoG,OAASA,CAAhB,EAEK4hK,CAAA,CChKF,SAAAG,GACLC,GAMA,IAEIC,EAFEC,EAAmC,CAAC,EACpCC,EAAwD,GAExDC,EAAU,CACdC,QAAA,SACEC,EACAn7B,GAmBA,IAAMnnI,EAC2B,kBAAxBsiK,EACHA,EACAA,EAAoBtiK,KAC1B,GAAIA,KAAQkiK,EACV,MAAM,IAAI9nK,MACR,uEAIJ,OADA8nK,EAAWliK,GAAQmnI,EACZi7B,CAAA,EAETG,WAAA,SACEz3F,EACAq8D,GAUA,OADAg7B,EAAe3qK,KAAK,CAAEszE,QAAAA,EAASq8D,QAAAA,IACxBi7B,CAAA,EAETI,eAAA,SAAer7B,GAOb,OADA86B,EAAqB96B,EACdi7B,CAAA,GAIX,OADAJ,EAAgBI,GACT,CAACF,EAAYC,EAAgBF,EAAA,CC8E/B,SAAAQ,GAKL3gF,GAEQ,IAAAz3E,EAASy3E,EAAAz3E,KACjB,IAAKA,EACH,MAAM,IAAIjQ,MAAM,+CAclB,IAqEIsoK,EArEEC,EAC2B,mBAAxB7gF,EAAQ6gF,aACX7gF,EAAQ6gF,aACR5B,GAAgBj/E,EAAQ6gF,cAExBzD,EAAWp9E,EAAQo9E,UAAY,CAAC,EAEhC0D,EAAezuK,OAAOqyD,KAAK04G,GAE3B2D,EAAuD,CAAC,EACxDC,EAAuD,CAAC,EACxDC,EAA2C,CAAC,EAuBlD,SAAAC,IAWQ,IAAA7B,EAK6B,oBAA1Br/E,EAAQmhF,cACXlB,GAA8BjgF,EAAQmhF,eACtC,CAACnhF,EAAQmhF,eANb33G,EAAA61G,EAAA,GAAA8B,OAAA,IAAA33G,EAAgB,CAAC,EAADA,EAChB0wD,EAAAmlD,EAAA,GAAAgB,OAAA,IAAAnmD,EAAiB,GAAAA,EACjBxvD,EAAA20G,EAAA,GAAAc,OAAA,IAAAz1G,OAAqB,EAAAA,EAMjB02G,EAAoBpB,GAAAA,GAAA,GAAKmB,GAAkBH,GAEjD,OCxIG,SACLH,EACAQ,EAGAhB,EACAF,QADA,IAAAE,IAAAA,EAAA,IAcI,IAMAiB,EANAjC,EAC8B,oBAAzBgC,EACHpB,GAA8BoB,GAC9B,CAACA,EAAsBhB,EAAgBF,GAHxCC,EAAAf,EAAA,GAAYkC,EAAAlC,EAAA,GAAqBmC,EAAAnC,EAAA,GAOtC,GAvKF,SAA4B/sJ,GAC1B,MAAoB,oBAANA,CAAM,CAsKhBmvJ,CAAgBZ,GAClBS,EAAkB,WAAM,OAAArC,GAAgB4B,IAAhB,MACnB,CACL,IAAMa,EAAqBzC,GAAgB4B,GAC3CS,EAAkB,WAAM,OAAAI,CAAA,EAG1B,SAAAr8B,EAAiB5zF,EAA2Bk1D,QAA3B,IAAAl1D,IAAAA,EAAQ6vH,KACvB,IAAIK,EAAAtrK,GAAA,CACF+pK,EAAWz5D,EAAOzoG,OACfqjK,EACAl+I,QAAO,SAACg8I,GAAgB,OAAAr2F,EAAdq2F,EAAAr2F,SAAsB29B,EAAR,IACxBpnD,KAAI,SAAC8/G,GAAgB,OAAdA,EAAAh6B,OAAc,KAM1B,OAJiD,IAA7Cs8B,EAAat+I,QAAO,SAACu+I,GAAO,QAAEA,CAAF,IAAMruK,SACpCouK,EAAe,CAACH,IAGXG,EAAa7lD,QAAO,SAACimB,EAAe8/B,GACzC,GAAIA,EAAa,CAKb,IAWMt/F,EAfR,GAAIu/F,GAAQ//B,GAOV,YAAe,KAFTx/D,EAASs/F,EADD9/B,EACoBp7B,IAGzBo7B,EAGFx/D,EAAA,GACGw/F,GAAYhgC,GAmBtB,OAAOigC,GAAgBjgC,GAAe,SAACkgC,GACrC,OAAOJ,EAAYI,EAAOt7D,EAAA,IAf5B,QAAe,KAFTpkC,EAASs/F,EAAY9/B,EAAsBp7B,IAEvB,CACxB,GAAsB,OAAlBo7B,EACF,OAAOA,EAET,MAAMzpI,MACJ,qEAIJ,OAAOiqE,EAWX,OAAOw/D,CAAA,GACNtwF,EAAA,CAKL,OAFA4zF,EAAQi8B,gBAAkBA,EAEnBj8B,CAAA,CD+CE68B,CAAcrB,GAAc,SAACP,GAClC,IAAK,IAAIj/H,KAAO+/H,EACdd,EAAQC,QAAQl/H,EAAK+/H,EAAkB//H,IAEzC,IAAc,IAAAopB,EAAA,EAAA03G,EAAA9B,EAAA51G,EAAA03G,EAAA5uK,OAAAk3D,IAAgB,CAA9B,IAASvpD,EAAAihK,EAAA13G,GACP61G,EAAQG,WAAWv/J,EAAE8nE,QAAS9nE,EAAEmkI,SAE9B86B,GACFG,EAAQI,eAAeP,EAAA,IAO7B,OA1DAW,EAAa36I,SAAQ,SAACi8I,GACpB,IAGIP,EACAQ,EAJEC,EAA0BlF,EAASgF,GACnClkK,EAAeqK,EAnDb,IAmDmB65J,EAKvB,YAAaE,GACfT,EAAcS,EAAwBj9B,QACtCg9B,EAAkBC,EAAwBC,SAE1CV,EAAcS,EAGhBvB,EAAwBqB,GAAeP,EACvCb,EAAwB9iK,GAAQ2jK,EAChCZ,EAAemB,GAAeC,EAC1BzC,GAAa1hK,EAAMmkK,GACnBzC,GAAa1hK,EAAA,IAwCZ,CACLqK,KAAAA,EACA88H,QAAA,SAAQ5zF,EAAOk1D,GAGb,OAFKi6D,IAAUA,EAAWM,KAEnBN,EAASnvH,EAAOk1D,EAAA,EAEzB67D,QAASvB,EACTU,aAAcZ,EACdO,gBAAA,WAGE,OAFKV,IAAUA,EAAWM,KAEnBN,EAASU,iBAAA,GEvXtB,IAOWmB,GAAS,SAACt+I,QAAA,IAAAA,IAAAA,EAAA,IAInB,IAHA,IAAIriB,EAAK,GAELzO,EAAI8wB,EACD9wB,KAELyO,GAZF,mEAYqC,GAAhB/F,KAAKY,SAAiB,GAE3C,OAAOmF,CAAA,ECqCH4gK,GAAiD,CACrD,OACA,UACA,QACA,QAGFC,GAME,SACkBr+J,EACAkgF,GADA,KAAAlgF,QAAAA,EACA,KAAAkgF,KAAAA,CAAA,EAIpBo+E,GAME,SACkBt+J,EACAkgF,GADA,KAAAlgF,QAAAA,EACA,KAAAkgF,KAAAA,CAAA,EAUPq+E,GAAqB,SAAC9tK,GACjC,GAAqB,kBAAVA,GAAgC,OAAVA,EAAgB,CAE/C,IADA,IAAM+tK,EAA+B,CAAC,EACfr4G,EAAA,EAAAs4G,EAAAL,GAAAj4G,EAAAs4G,EAAAxvK,OAAAk3D,IAAkB,CAAzC,IAAW3W,EAAAivH,EAAAt4G,GACsB,kBAApB11D,EAAM++C,KACfgvH,EAAYhvH,GAAY/+C,EAAM++C,IAIlC,OAAOgvH,EAGT,MAAO,CAAE94D,QAASj3G,OAAOgC,GAAA,EA8WdiuK,GAAoB,WAC/B,SAAAC,EAKEC,EACAC,EAKAnjF,GAOA,IAAM0qD,EAIFk1B,GACFsD,EAAa,cACb,SACE5+J,EACA8+J,EACA33G,EACA+4B,GACI,OACJlgF,QAAAA,EACAkgF,KAAM6+E,GAAArD,GAAA,GACCx7E,GAAgB,CAAC,GADlB,CAEJ/4B,IAAAA,EACA23G,UAAAA,EACAE,cAAe,cANb,IAWF3hE,EACJi+D,GACEsD,EAAa,YACb,SAACE,EAAmB33G,EAAe+4B,GAAwB,OACzDlgF,aAAS,EACTkgF,KAAM6+E,GAAArD,GAAA,GACCx7E,GAAgB,CAAC,GADlB,CAEJ/4B,IAAAA,EACA23G,UAAAA,EACAE,cAAe,YANwC,IAWzD34B,EACJi1B,GACEsD,EAAa,aACb,SACEjtK,EACAmtK,EACA33G,EACAnnD,EACAkgF,GACI,OACJlgF,QAAAA,EACArO,OAAS+pF,GAAWA,EAAQujF,gBAAmBV,IAC7C5sK,GAAS,YAEXuuF,KAAM6+E,GAAArD,GAAA,GACCx7E,GAAgB,CAAC,GADlB,CAEJ/4B,IAAAA,EACA23G,UAAAA,EACAI,oBAAqBl/J,EACrBg/J,cAAe,WACftuB,QAAyB,gBAAhB,MAAA/+I,OAAA,EAAAA,EAAOsS,MAChBk7J,UAA2B,oBAAhB,MAAAxtK,OAAA,EAAAA,EAAOsS,QAZhB,IAmBJm7J,EACuB,qBAApBC,gBACHA,gBAAA,WACA,SAAAC,IACE,KAAAnwB,OAAS,CACPuB,SAAS,EACT9tI,iBAAA,WAAmB,EACnB4kF,cAAA,WACE,OAAO,GAETsoD,QAAA,WAAU,EACVtsI,oBAAA,WAAsB,EACtB+tI,YAAQ,EACRguB,eAAA,WAAiB,GAOX,OALRD,EAAAlxK,UAAAqiJ,MAAA,WACMr7B,CAIE,EAAAkqD,CAAA,CAlBV,GA6IN,OAAOvxK,OAAOe,QAnHd,SACEq4D,GAEA,OAAO,SAACs7C,EAAU65B,EAAUvnG,GAC1B,IAKIyqI,EALEV,GAAY,MAAApjF,OAAA,EAAAA,EAAS+jF,aACvB/jF,EAAQ+jF,YAAYt4G,GACpBg3G,KAEEuB,EAAkB,IAAIN,EAI5B,SAAA3uB,EAAec,GACbiuB,EAAcjuB,EACdmuB,EAAgBjvB,OAAA,CAGlB,IAAMkvB,EAAW,WAAkB,OAAAC,GAAA,sHAG3BC,EAAkB,OAAAhvG,EAAA,MAAA6qB,OAAA,EAAAA,EAASyjF,gBAAT,EAAAtuG,EAAAviE,KAAAotF,EAAqBv0B,EAAK,CAAEm1E,SAAAA,EAAUvnG,MAAAA,IAkJ1D,QAFMtkC,EA/IOovK,IAkJN,kBAAVpvK,GACe,oBAAfA,EAAMC,KAnJD,MACgB,GAAMmvK,UAAxBA,EAAkB9E,EAAAlqK,wBAGpB,IAAwB,IAApBgvK,GAA6BH,EAAgBvwB,OAAOuB,QAEtD,KAAM,CACJzsI,KAAM,iBACNyhG,QAAS,sDAuBC,OApBJ,EAEJo6D,EAAiB,IAAI1vK,SAAe,SAACie,EAAGuxG,GAC5C,OAAA8/C,EAAgBvwB,OAAOvsI,iBAAiB,SAAS,WAC/C,OAAAg9G,EAAO,CACL37G,KAAM,aACNyhG,QAAS85D,GAAe,WAF1B,GADF,IAOF/8D,EACEpF,EACEyhE,EACA33G,EACA,OAAA44G,EAAA,MAAArkF,OAAA,EAAAA,EAASskF,qBAAT,EAAAD,EAAAzxK,KAAAotF,EACE,CAAEojF,UAAAA,EAAW33G,IAAAA,GACb,CAAEm1E,SAAAA,EAAUvnG,MAAAA,MAIJ,GAAM3kC,QAAQ6vK,KAAK,CAC/BH,EACA1vK,QAAQiC,QACNwsK,EAAe13G,EAAK,CAClBs7C,SAAAA,EACA65B,SAAAA,EACAvnG,MAAAA,EACA+pI,UAAAA,EACA3vB,OAAQuwB,EAAgBvwB,OACxBsB,MAAAA,EACAyvB,gBAAkB,SAChBzvK,EACAyvF,GAEA,OAAO,IAAIm+E,GAAgB5tK,EAAOyvF,EAAA,EAEpCigF,iBAAmB,SAAC1vK,EAAgByvF,GAClC,OAAO,IAAIo+E,GAAgB7tK,EAAOyvF,EAAA,KAGtCxvF,MAAK,SAACutE,GACN,GAAIA,aAAkBogG,GACpB,MAAMpgG,EAER,OAAIA,aAAkBqgG,GACbl4B,EAAUnoE,EAAOj+D,QAAS8+J,EAAW33G,EAAK8W,EAAOiiB,MAEnDkmD,EAAUnoE,EAAe6gG,EAAW33G,EAAA,qBA3B/Ci5G,EAAcrF,EAAAlqK,sCA+BduvK,EACEC,aAAehC,GACXh4B,EAAS,KAAMy4B,EAAW33G,EAAKk5G,EAAIrgK,QAASqgK,EAAIngF,MAChDmmD,EAASg6B,EAAYvB,EAAW33G,gBAgBxC,OAREu0B,IACCA,EAAQ4kF,4BACTj6B,EAASlrF,MAAMilH,IACdA,EAAoBlgF,KAAKi/E,WAG1B18D,EAAS29D,GAEJ,CAAP,EAAOA,GA8DjB,IAAoB3vK,OA9DH,CArFQ,GAuFjB,OAAO1C,OAAOe,OAAO6wK,EAAyB,CAC5ClvB,MAAAA,EACAquB,UAAAA,EACA33G,IAAAA,EACAo5G,OAAA,WACE,OAAOZ,EAAQjvK,KAAU8vK,GAAA,OAY/B,CACEnjE,QAAAA,EACAgpC,SAAAA,EACAD,UAAAA,EACAw4B,WAAAA,GAAA,CAMN,OAFAD,EAAiB8B,UAAY,WAAM,OAAA9B,CAAA,EAE5BA,CAAA,CAlPwB,GAmQ1B,SAAA6B,GACLn+D,GAEA,GAAIA,EAAOniB,MAAQmiB,EAAOniB,KAAKg/E,kBAC7B,MAAM78D,EAAOriG,QAEf,GAAIqiG,EAAO1wG,MACT,MAAM0wG,EAAO1wG,MAEf,OAAO0wG,EAAOriG,OAAA,CC1pBGjS,OAAAe,OCvBZ,ID6BD4xK,GAAM,qBAoMepF,GACtBoF,GAAA,QAM4BpF,GAAgBoF,GAAA,cAKnBpF,GACzBoF,GAAA,WEhRuB,oBAAnBjpE,gBACHA,eAAe/1F,KACK,qBAAXlO,OACHA,OACkB,qBAAXC,oBAAAA,EACPA,oBAAAA,EACAF,YAnBL,IAWHkwH,GAkBEk9C,GAAuB,SAAC59C,GAC5B,OAAO,SAAC0Z,GACN3zH,WAAW2zH,EAAQ1Z,EAAA,GAOH,qBAAXvvH,QAA0BA,OAAO+X,sBACpC/X,OAAO+X,sBACPo1J,GAAqB,IClB3BC,KCtBA,IAAMrE,GAAe,CACnBsE,YAAa,CAAEC,SAAU,IACzBC,iBAAkB,CAAEC,cAAe,IAEnCC,iBAAiB,EAKjBC,eAAe,KAGfC,YAAa,CACX,YAAa,KACb,iBAAkB,KAClB,cAAe,KACfC,OAAQ,KACRC,MAAO,KACPC,QAAS,KACTC,QAAS,KACT,eAAgB,KAChBC,UAAW,KACXC,OAAQ,KACRC,UAAW,KACXC,WAAY,KACZC,WAAY,KACZC,WAAY,KACZC,WAAY,KACZC,SAAU,KACVC,OAAQ,KACR/9J,KAAM,KACNg+J,SAAU,KACVC,SAAU,KACVC,QAAS,KACTC,cAAe,KACfC,eAAgB,KAChBryE,MAAO,KACPsyE,MAAO,KACPC,UAAW,KACXC,QAAQ,MAGVC,SAAU,KAEVC,eAAgB,MAIZC,GAAWtG,GAAY,CAC3Bp4J,KAAM,UACNs4J,aAAcA,GACdzD,SAAU,CACR8J,WAAY,SAACz1H,EAAOk1D,GAClBl1D,EAAM0zH,YAAYC,SAAWz+D,EAAOriG,OACtC,EAEA6iK,iBAAkB,SAAC11H,EAAOk1D,GACxBl1D,EAAMg0H,YAAYK,UAAYn/D,EAAOriG,QAAQwhK,UAC7Cr0H,EAAMg0H,YAAY,aAAe9+D,EAAOriG,QAAQ8iK,SAChD31H,EAAMg0H,YAAYM,OAASp/D,EAAOriG,QAAQyhK,OAC1Ct0H,EAAMg0H,YAAYO,UAAYr/D,EAAOriG,QAAQ0hK,UAC7Cv0H,EAAMg0H,YAAYC,OAAS/+D,EAAOriG,QAAQ+iK,SAC1C51H,EAAMg0H,YAAY,gBAAkB9+D,EAAOriG,QAAQgjK,QACnD71H,EAAMg0H,YAAYI,QAAUl/D,EAAOriG,QAAQuhK,QAC3Cp0H,EAAMg0H,YAAYG,QAAUj/D,EAAOriG,QAAQshK,QAC3Cn0H,EAAMg0H,YAAYQ,WAAat/D,EAAOriG,QAAQ2hK,WAC9Cx0H,EAAMg0H,YAAYS,WAAav/D,EAAOriG,QAAQ4hK,WAC9Cz0H,EAAMg0H,YAAYE,MAAQh/D,EAAOriG,QAAQijK,QACzC91H,EAAMg0H,YAAYl9J,KAAOo+F,EAAOriG,QAAQiE,KACxCkpC,EAAMg0H,YAAY,eAAiB9+D,EAAOriG,QAAQkjK,WAClD/1H,EAAMg0H,YAAY,kBAAoB9+D,EAAOriG,QAAQmjK,aACrDh2H,EAAMg0H,YAAYc,SAAW5/D,EAAOriG,QAAQiiK,SAC5C90H,EAAMg0H,YAAYe,SAAW7/D,EAAOriG,QAAQkiK,SAC5C/0H,EAAMg0H,YAAYqB,QAAUngE,EAAOriG,QAAQwiK,OAC7C,EAEAY,mBAAoB,SAACj2H,EAAOk1D,GAC1Bl1D,EAAMg0H,YAAYU,WAAax/D,EAAOriG,QAAQ6hK,WAC9C10H,EAAMg0H,YAAYW,WAAaz/D,EAAOriG,QAAQ8hK,WAC9C30H,EAAMg0H,YAAYY,SAAW1/D,EAAOriG,QAAQ+hK,SAC5C50H,EAAMg0H,YAAYkC,SAAWhhE,EAAOriG,QAAQqjK,SAC5Cl2H,EAAMg0H,YAAYE,MAAQh/D,EAAOriG,QAAQqhK,MACzCl0H,EAAMg0H,YAAYI,QAAUl/D,EAAOriG,QAAQuhK,QAC3Cp0H,EAAMg0H,YAAYG,QAAUj/D,EAAOriG,QAAQshK,QAC3Cn0H,EAAMg0H,YAAY,gBAAkB9+D,EAAOriG,QAAQi0E,KACrD,EAEAqvF,kBAAmB,SAACn2H,EAAOk1D,GACzBl1D,EAAMg0H,YAAYE,MAAQh/D,EAAOriG,QAAQqhK,MACzCl0H,EAAMg0H,YAAYI,QAAUl/D,EAAOriG,QAAQuhK,QAC3Cp0H,EAAMg0H,YAAYG,QAAUj/D,EAAOriG,QAAQshK,QAC3Cn0H,EAAMg0H,YAAY,gBAAkB9+D,EAAOriG,QAAQi0E,KACrD,EAEAsvF,uBAAwB,SAACp2H,EAAOk1D,GAC9Bl1D,EAAMg0H,YAAYU,WAAa,KAC/B10H,EAAMg0H,YAAYW,WAAa,KAC/B30H,EAAMg0H,YAAYY,SAAW,KAC7B50H,EAAMg0H,YAAYkC,SAAW,KAC7Bl2H,EAAMg0H,YAAYE,MAAQ,KAC1Bl0H,EAAMg0H,YAAY,gBAAkB,IACtC,EAEAqC,kBAAkB,SAACr2H,EAAOk1D,GACxBl1D,EAAM+zH,eAAiB7+D,EAAOriG,OAEhC,EAEAyjK,eAAgB,SAACt2H,EAAOk1D,GACtBl1D,EAAMs1H,SAAWpgE,EAAOriG,OAC1B,EACA0jK,eAAgB,SAACv2H,EAAOk1D,GACtBl1D,EAAMg0H,YAAYnxE,MAAQqS,EAAOriG,QAAQgwF,MACzC7iD,EAAMg0H,YAAYmB,MAAQjgE,EAAOriG,QAAQsiK,KAC3C,EAEAqB,sBAAuB,SAACx2H,EAAOk1D,GAC7Bl1D,EAAMg0H,YAAYmB,MAAQjgE,EAAOriG,OACnC,EAEA4jK,kBAAmB,SAACz2H,EAAOk1D,GACzBl1D,EAAMg0H,YAAYgB,QAAU9/D,EAAOriG,QAAQmiK,QAC3Ch1H,EAAMg0H,YAAYiB,cAAgB//D,EAAOriG,QAAQoiK,cACjDj1H,EAAMg0H,YAAYkB,eAAiBhgE,EAAOriG,QAAQqiK,cACpD,EAEAwB,aAAc,SAAC12H,EAAOk1D,GACpBl1D,EAAMg0H,YAAYoB,UAAYlgE,EAAOriG,QAAQuiK,UAC7Cp1H,EAAMg0H,YAAYa,OAAS3/D,EAAOriG,QAAQgiK,MAC5C,EACA8B,WAAU,SAAC32H,EAAOk1D,GAChB,OAAOk6D,EACT,EAEAwH,aAAc,SAAC52H,EAAOk1D,GACpBl1D,EAAM4zH,iBAAiBC,cAAgB3+D,EAAOriG,OAEhD,EAEAgkK,eAAgB,SAAC72H,EAAOk1D,GACtBl1D,EAAMg0H,YAAYK,UAAYn/D,EAAOriG,OAEvC,EAEAikK,cAAe,SAAC92H,EAAOk1D,GACrBl1D,EAAMg0H,YAAY,eAAiB9+D,EAAOriG,OAC5C,EAEAkkK,mBAAoB,SAAC/2H,EAAOk1D,GAC1Bl1D,EAAM8zH,gBAAkB5+D,EAAOriG,OACjC,EAEAmkK,kBAAmB,SAACh3H,EAAOk1D,GACzBl1D,EAAMu1H,eAAiBrgE,EAAOriG,OAChC,KAcGokK,GAmBHzB,GAASzE,QAlBX0E,GAAUwB,GAAVxB,WACAC,GAAgBuB,GAAhBvB,iBACAY,GAAcW,GAAdX,eACAC,GAAcU,GAAdV,eACAE,GAAiBQ,GAAjBR,kBACAD,GAAqBS,GAArBT,sBACAE,GAAYO,GAAZP,aACAE,GAAYK,GAAZL,aAEAX,IADegB,GAAfC,gBACkBD,GAAlBhB,oBAEAI,IADiBY,GAAjBd,kBACiBc,GAAjBZ,mBAEAQ,IADUI,GAAVN,WACcM,GAAdJ,gBACAE,GAAkBE,GAAlBF,mBACAC,GAAiBC,GAAjBD,kBACAZ,GAAsBa,GAAtBb,uBACAU,GAAaG,GAAbH,cAKWK,GAAe3B,GAAS5hC,QCrL/BwjC,GAAalI,GAAY,CAC7Bp4J,KAAM,YACNs4J,aAZmB,CACnBiI,YAAa,KACbllC,UAAW,KACXmlC,cAAe,KACfC,KAAM,KACNC,QAAS,KACTC,eAAgB,GAChBl7G,MAAO,MAMPovG,SAAU,CACR+L,YAAa,SAAC13H,EAAOk1D,GACnBl1D,EAAMq3H,YAAcniE,EAAOriG,OAC7B,EACA8kK,UAAW,SAAC33H,EAAOk1D,GACjBl1D,EAAMmyF,UAAYj9B,EAAOriG,OAC3B,EACA+kK,cAAe,SAAC53H,EAAOk1D,GACrBl1D,EAAMs3H,cAAgBpiE,EAAOriG,OAC/B,EACAglK,WAAY,SAAC73H,EAAOk1D,GAClBl1D,EAAMu3H,KAAOriE,EAAOriG,OACtB,EACAilK,cAAe,SAAC93H,EAAOk1D,GACrBl1D,EAAMw3H,QAAUtiE,EAAOriG,OACzB,EACAklK,eAAgB,SAAC/3H,EAAOk1D,GACtBl1D,EAAMy3H,eAAiBviE,EAAOriG,OAChC,EACAmlK,YAAa,SAACh4H,EAAOk1D,GACnBl1D,EAAMuc,MAAQ24C,EAAOriG,OACvB,KAIGolK,GAQHb,GAAWrG,QAPb2G,GAAWO,GAAXP,YACAC,GAASM,GAATN,UACAC,GAAaK,GAAbL,cACAC,GAAUI,GAAVJ,WACAC,GAAaG,GAAbH,cACAC,GAAcE,GAAdF,eACAC,GAAWC,GAAXD,YAKWE,GAAed,GAAWxjC,QCXvC,GArC0B,WAAO,IAADukC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAExBC,EAAWrpC,IAAY,SAACpvF,GAAK,OAAKA,EAAM04H,OAAO,IAG/CC,GAA+C,QAAzBR,EAAAM,EAAS7E,wBAAgB,IAAAuE,OAAA,EAAzBA,EAA2BtE,gBAAiB,GAClE+E,GAAqC,QAApBR,EAAAK,EAAS/E,mBAAW,IAAA0E,OAAA,EAApBA,EAAsBzE,WAAY,GAMnDkF,GAH0C,QAApBR,EAAAI,EAASzE,mBAAW,IAAAqE,GAApBA,EAAsBhD,QAGtBsD,EAAoBrvD,WAAU,SAACwvD,GAAI,IAAAC,EAAA,OAAS,OAAJD,QAAI,IAAJA,OAAI,EAAJA,EAAMvE,cAAsB,OAARkE,QAAQ,IAARA,GAAqB,QAAbM,EAARN,EAAUzE,mBAAW,IAAA+E,OAAb,EAARA,EAAuBxE,UAAW,KACpHyE,EAAiBJ,EAAetvD,WAAU,SAACwvD,GAAI,IAAAG,EAAA,OAAS,OAAJH,QAAI,IAAJA,OAAI,EAAJA,EAAMvE,cAAsB,OAARkE,QAAQ,IAARA,GAAqB,QAAbQ,EAARR,EAAUzE,mBAAW,IAAAiF,OAAb,EAARA,EAAuB1E,UAAW,IAMhHh/I,QAAQ8hE,IAAI,wBAAyBwhF,GACrCtjJ,QAAQ8hE,IAAI,kBAAmB2hF,GAE/B,IAAM3D,EAA8B,QAAvBiD,EAAGG,EAASzE,mBAAW,IAAAsE,OAAA,EAApBA,EAAsBjD,QAKtC,MAAO,CACLA,QAAAA,EACA6D,cANoB7D,EAAkD,QAA3CkD,EAAGI,EAAoBE,UAAoB,IAAAN,OAAA,EAAxCA,EAA0CxD,SAAW,KAOnFoE,aANoB9D,EAAqD,KAAb,QAAjCmD,EAAGI,EAAeI,UAAe,IAAAR,OAAA,EAA9BA,EAAgCzD,SAWlE,EC8LA,GA/NkB,SAAHr1C,GAAmBA,EAAb05C,cAA+B15C,EAAhB25C,iBAAyM,IAAvLC,EAAY55C,EAAZ45C,aAAaC,EAAiB75C,EAAjB65C,kBAAsDC,GAAxB95C,EAAZ+5C,aAA+B/5C,EAAlBg6C,mBAA6Ch6C,EAAtB85C,wBAAuBG,EAAej6C,EAAfi6C,gBAAgBC,EAAiBl6C,EAAjBk6C,kBAAkBC,EAA2Bn6C,EAA3Bm6C,4BAA6BC,EAAYp6C,EAAZo6C,aAAaC,EAAUr6C,EAAVq6C,WAE1J/nC,EAAAzM,GAAVn3E,EAAAA,EAAAA,YAAU,GAAvD4rH,EAAkBhoC,EAAA,GAAEioC,EAAqBjoC,EAAA,GACwBkoC,EAAA30C,GAAVn3E,EAAAA,EAAAA,YAAU,GAAjE+rH,EAAuBD,EAAA,GAAEE,EAA0BF,EAAA,GAE8BG,EAAA90C,GAAhDn3E,EAAAA,EAAAA,WAAS,IAAIr6B,MAAOwoD,cAAc3rE,MAAM,KAAK,IAAG,GAAjF0pK,EAAYD,EAAA,GAAEE,EAAeF,EAAA,GACsCG,EAAAj1C,GAAVn3E,EAAAA,EAAAA,YAAU,GAAnEqsH,EAAwBD,EAAA,GAAEE,EAA2BF,EAAA,GAG9DG,EAIIC,KAHFvF,EAAOsF,EAAPtF,QACA6D,EAAayB,EAAbzB,cACAC,EAAYwB,EAAZxB,aAMI7jE,EAAWs7B,KAEyCiqC,EAAAt1C,GAAdn3E,EAAAA,EAAAA,WAAS,GAAK,GAAjD0sH,EAAaD,EAAA,GAAEE,EAAgBF,EAAA,GAC4BG,EAAAz1C,GAAdn3E,EAAAA,EAAAA,WAAS,GAAK,GAA3D6sH,EAAkBD,EAAA,GAAEE,EAAqBF,EAAA,GAEEG,EAAA51C,GAAVn3E,EAAAA,EAAAA,YAAU,GAA3CgtH,EAAaD,EAAA,GAACE,EAAgBF,EAAA,IAEpC9sH,EAAAA,EAAAA,YAAU,WACP,IACOknH,EADa,IAAI77B,gBAAgBrzI,OAAO6M,SAAS8vF,QACpB5+F,IAAI,aAEpCkxG,EAASyiE,GADV+C,GAAiBvF,EACQ,EAEA,GAE/B,GAAE,CAACuF,KAGJzsH,EAAAA,EAAAA,YAAU,WACNqsH,EAA4Bf,GAExBC,EAAoBD,EACpB0B,EAAiB1B,IACVC,EAAoBD,GAGrBC,IAAsBD,IAD5B0B,EAAiBzB,EAOzB,GAAG,CAACD,EAAiBC,KAOrBvrH,EAAAA,EAAAA,YAAU,WACN4rH,EAAsBT,GACtBY,EAA2BP,EAE7B,GAAG,CAACL,EAAuBK,KAE3BxrH,EAAAA,EAAAA,YAAU,WACR6sH,EAAsBrB,EAExB,GAAG,CAACA,KAGHxrH,EAAAA,EAAAA,YAAU,WAILksH,EAHChB,IACe,IAAIxlJ,MAAOwoD,cAAc3rE,MAAM,KAAK,GAI5D,GAAG,CAAC2oK,IAGF,IAiCQ+B,EAAmB,YAEpB1B,EAAoBD,GAAmBC,GAAqBD,IAC9D0B,EAAiB1B,EAGpB,EAuCF,OADEpkJ,QAAQ8hE,IAAIkiF,EAAkBK,EAAkB,iBAEhD7tB,EAAAA,GAAAA,MAAA9d,GAAAA,SAAA,CAAAx1F,SAAA,CACImhI,EAAoBD,IAEpB3rC,EAAAA,GAAAA,KAAA,KAAG7gG,UAAU,kBAAmBujB,QAAS4qH,EAAkB7iI,SAAC,oDAGhEszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,iBAAgBsL,SAAA,EAC7Bu1F,EAAAA,GAAAA,KAAA,SAAAv1F,SAAO,uBACPszG,EAAAA,GAAAA,MAAA,OAAAtzG,SAAA,EACAu1F,EAAAA,GAAAA,KAAA,SACExhB,YAAY,aACZ//G,KAAK,OACLqK,KAAK,YACLq2B,UAAU,aACVwgD,aAAc4rF,GAAqB6B,GAAiB,GACpDntH,SA9FmB,SAACo1C,GACxB,IAAMk4E,EAAel4E,EAAMh2F,OAAO/J,MAC9Bg2K,EACFA,EAAaiC,IAGXjmE,EAASuhE,GAAe0E,IACxBF,EAAiBE,GAEvB,EAuFMxwK,IAAK0vK,GAA4BH,GAAiB,GAElD5rF,SAAUsrF,IAAmDG,IAAoD,MAEnHnsC,EAAAA,GAAAA,KAAA,UAEAA,EAAAA,GAAAA,KAAA,SAEqB,KAAtBurC,QAAmDphH,IAAtBohH,GAAyD,OAAtBA,IACjEvrC,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,qBAAoBsL,UACjCszG,EAAAA,GAAAA,MAAA,SAAAtzG,SAAA,EACAu1F,EAAAA,GAAAA,KAAA,SACEvhI,KAAK,WACL6gF,QAASwtF,EACT7sH,SAlGuB,WAI3B8sH,GAAkBD,GAClBb,GAAuBD,EAIzB,IA0FM,gDAC+ChsC,EAAAA,GAAAA,KAAA,UAAKA,EAAAA,GAAAA,KAAA,QAAM7gG,UAAU,gBAAesL,SAAC,wJAKnE,KAAtBmhI,QAAmDzhH,IAAvByhH,GAA0D,OAAtBA,IAC/D5rC,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,qBAAoBsL,UACjCszG,EAAAA,GAAAA,MAAA,SAAAtzG,SAAA,EACAu1F,EAAAA,GAAAA,KAAA,SACEvhI,KAAK,WACL6gF,QAAS2tF,EACThtH,SAnG8B,WAE9BitH,GAAuBD,GACvBb,GAA4BD,GAC5BmB,GAEF,IA8FE,gDAC+CttC,EAAAA,GAAAA,KAAA,UAAKA,EAAAA,GAAAA,KAAA,QAAM7gG,UAAU,gBAAesL,SAAC,8JAYvFmhI,GAAqBD,IACtB3rC,EAAAA,GAAAA,KAAA,UAAQ7gG,UAAU,WAAWujB,QAjGV,WAGf4kD,EAASyiE,GAFUkD,EAAqB,EAAI,IAI5C1lJ,QAAQ8hE,IAAI,YAAa+jF,EAAe/F,EAAS6D,EAAeC,GAEhE,IAAIpD,EAAa,IAAIhiJ,KAAK,GAADrvB,OACpB02K,EAAa,cAGlB7lJ,QAAQ8hE,IAAI,qBAAsB0+E,GAElCA,EAAWyF,QACTzF,EAAWzjG,UACT71D,OAAO44J,EAAU6D,EAAgBC,IAGrC,IAAIsC,EAAU,IAAI1nJ,KAAKgiJ,GACnB/0G,GAAQ,IAAMy6G,EAAQnpG,WAAWztE,OAAO,GACxCk8D,GAAS,KAAO06G,EAAQppG,WAAa,IAAIxtE,OAAO,GAEpDkxK,EADW0F,EAAQz0G,cACC,IAAMjG,EAAQ,IAAMC,EAExCzrC,QAAQ8hE,IAAI,oBAAqB0+E,GAEjCzgE,EAASwhE,GAAcf,IAGvBzgE,EAASuhE,GAAeuE,IAGxBtB,IACAC,GACJ,EA+DkDthI,SAAC,WAK3D,ECxJA,GAxEe,SAACzxB,GAkCd,OACEgnH,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAx1F,UAGIu1F,EAAAA,GAAAA,KAAA,OAAKpiI,MArBU,CACnBC,SAAU,QACVC,IAAK,EACLC,KAAM,EACNyH,MAAO,OACPC,OAAQ,OACR4jC,gBAAiB,qBACjBqX,OAAQ,QAcqBjW,UACvBszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,cAAcvhC,MAlClB,CACjBC,SAAU,QACVC,IAAK,MACLC,KAAM,MACNoc,UAAW,wBACXkvB,gBAAiB,OACjB+X,aAAc,MACdF,QAAS,YACTwsH,UAAW,kCACXhtH,OAAQ,QAyB6CjW,SAAA,EAC7Cu1F,EAAAA,GAAAA,KAAA,UAASpiI,MAbM,CACvBC,SAAU,WACVC,IAAK,MACLgmB,MAAO,OACPg+B,OAAQ,WASkCY,QAAS1pC,EAAM8yJ,aAAarhI,SAAC,OAGrC,kBAAhBzxB,EAAM6lB,OAAsB7lB,EAAM6lB,iBAAiBvrC,SAA2B,KAAhB0lB,EAAM6lB,QAAiBmhG,EAAAA,GAAAA,KAAA,MAAIpiI,MAAO,CAAC+vK,aAAa,QAAQljI,SAAEzxB,EAAM6lB,SAC3G,kBAAnB7lB,EAAM40J,UAAyB50J,EAAM40J,oBAAoBt6K,SAA8B,KAAnB0lB,EAAM40J,WAAoB5tC,EAAAA,GAAAA,KAAA,KAAAv1F,SAAIzxB,EAAM40J,YAElH5tC,EAAAA,GAAAA,KAAA,SAGChnH,EAAM60J,aAEL7tC,EAAAA,GAAAA,KAAC8tC,GAAS,CACVnC,gBAAiB3yJ,EAAM2yJ,gBACvBI,WAAY/yJ,EAAM+yJ,WAIlBH,kBAAmB5yJ,EAAM4yJ,kBACzBC,4BAA6B7yJ,EAAMwyJ,uBACnCM,aAAe9yJ,EAAM8yJ,qBAWnC,6BCxEe,SAAS,GAAyBv9H,EAAQqqH,GACvD,GAAc,MAAVrqH,EAAgB,MAAO,CAAC,EAC5B,IACI3M,EAAKhuC,EADLyL,ECHS,SAAuCkvC,EAAQqqH,GAC5D,GAAc,MAAVrqH,EAAgB,MAAO,CAAC,EAC5B,IAEI3M,EAAKhuC,EAFLyL,EAAS,CAAC,EACVw5J,EAAajmK,OAAOqyD,KAAK1W,GAE7B,IAAK36C,EAAI,EAAGA,EAAIilK,EAAW/kK,OAAQF,IACjCguC,EAAMi3H,EAAWjlK,GACbglK,EAAS1kK,QAAQ0tC,IAAQ,IAC7BviC,EAAOuiC,GAAO2M,EAAO3M,IAEvB,OAAOviC,CACT,CDRe,CAA6BkvC,EAAQqqH,GAElD,GAAIhmK,OAAOuB,sBAAuB,CAChC,IAAI4kK,EAAmBnmK,OAAOuB,sBAAsBo6C,GACpD,IAAK36C,EAAI,EAAGA,EAAImlK,EAAiBjlK,OAAQF,IACvCguC,EAAMm3H,EAAiBnlK,GACnBglK,EAAS1kK,QAAQ0tC,IAAQ,GACxBhvC,OAAOK,UAAUmB,qBAAqBjB,KAAKo7C,EAAQ3M,KACxDviC,EAAOuiC,GAAO2M,EAAO3M,GAEzB,CACA,OAAOviC,CACT,qCEbA0uK,GAAe,SAAC7iJ,GAAqB,MAClB,aAAjBA,EAAQzsB,IAAmB,ECH7BuvK,GAAe,SAAC14K,GAAc,OAAoBA,aAAiBywB,IAAI,ECAvEkoJ,GAAe,SAAC34K,GAAc,OAAyC,MAATA,CAAa,ECG9D44K,GAAe,SAAC54K,GAAc,MAAsB,kBAAVA,CAAkB,EAEzEiyD,GAAe,SAAmBjyD,GAAc,OAC7C24K,GAAkB34K,KAClBvC,MAAMs0D,QAAQ/xD,IACf44K,GAAa54K,KACZ04K,GAAa14K,EAAM,ECJtB64K,GAAe,SAAC94E,GAAc,OAC5B9tC,GAAS8tC,IAAWA,EAAgBh2F,OAChC0uK,GAAiB14E,EAAgBh2F,QAC9Bg2F,EAAgBh2F,OAAOigF,QACvB+V,EAAgBh2F,OAAO/J,MAC1B+/F,CAAK,ECNX+4E,GAAe,SAACzuG,EAA+B72D,GAAuB,OACpE62D,EAAM3nE,ICLO,SAAC8Q,GAAY,OAC1BA,EAAKytC,UAAU,EAAGztC,EAAKksF,OAAO,iBAAmBlsF,CAAI,CDI3CulK,CAAkBvlK,GAAM,EEHpC+7H,GAAe,SAACypC,GACd,IAAMC,EACJD,EAAW96K,aAAe86K,EAAW96K,YAAYP,UAEnD,OACEs0D,GAASgnH,IAAkBA,EAAcr7K,eAAe,gBAE5D,ECTAs7K,GAAiC,qBAAXn2K,QACU,qBAAvBA,OAAOo2K,aACM,qBAAb/0K,SCEe,SAAAg1K,GAAevtK,GACrC,IAAIwtK,EACEtnH,EAAUt0D,MAAMs0D,QAAQlmD,GAE9B,GAAIA,aAAgB4kB,KAClB4oJ,EAAO,IAAI5oJ,KAAK5kB,QACX,GAAIA,aAAgBq6E,IACzBmzF,EAAO,IAAInzF,IAAIr6E,OACV,IACHqtK,KAAUrtK,aAAgBE,MAAQF,aAAgBytK,YACnDvnH,IAAWE,GAASpmD,GAYrB,OAAOA,EARP,GAFAwtK,EAAOtnH,EAAU,GAAK,CAAC,EAElBt0D,MAAMs0D,QAAQlmD,IAAU0jI,GAAc1jI,GAGzC,IAAK,IAAMygC,KAAOzgC,EAChBwtK,EAAK/sI,GAAO8sI,GAAYvtK,EAAKygC,SAH/B+sI,EAAOxtK,CAQV,CAED,OAAOwtK,CACT,CC9BA,IAAAE,GAAe,SAASv5K,GAAe,OACrCvC,MAAMs0D,QAAQ/xD,GAASA,EAAMsuB,OAAOksG,SAAW,EAAE,ECDnDnoE,GAAe,SAACluB,GAAY,YAA+B0wB,IAAR1wB,CAAiB,ECKpErjC,GAAe,SAAIsxD,EAAQ/iD,EAAeg7E,GACxC,IAAKh7E,IAAS4iD,GAASG,GACrB,OAAOi4B,EAGT,IAAM7c,EAAS+rG,GAAQlqK,EAAK/B,MAAM,cAAcy5G,QAC9C,SAACv5C,EAAQlhC,GAAG,OACVqsI,GAAkBnrG,GAAUA,EAASA,EAAOlhC,EAAgB,GAC9D8lB,GAGF,OAAOC,GAAYmb,IAAWA,IAAWpb,EACrCC,GAAYD,EAAI/iD,IACdg7E,EACAj4B,EAAI/iD,GACNm+D,CACN,ECnBagsG,GAAS,CACpBC,KAAM,OACNC,UAAW,WACXC,OAAQ,UAGGC,GAAkC,CAC7CvwD,OAAQ,SACR1+D,SAAU,WACVkvH,SAAU,WACVC,UAAW,YACXjoD,IAAK,OAGMkoD,GACN,MADMA,GAEN,MAFMA,GAGA,YAHAA,GAIA,YAJAA,GAKF,UALEA,GAMD,WANCA,GAOD,WCpBZC,ICCwB3yH,EAAAA,cAA0C,MDDnD,SACb4yH,EACAC,EACAC,GAEE,IADFC,IAAM77K,UAAAC,OAAA,QAAAq2D,IAAAt2D,UAAA,KAAAA,UAAA,GAEAivE,EAAS,CACb6sG,cAAeH,EAAQI,gBACHC,EAAA,SAAAjuI,GAGpBhvC,OAAOgC,eAAekuE,EAAQlhC,EAAK,CACjCxrC,IAAK,WACH,IAAMivI,EAAOzjG,EAOb,OALI4tI,EAAQM,gBAAgBzqC,KAAU6pC,GAAgB/nD,MACpDqoD,EAAQM,gBAAgBzqC,IAASqqC,GAAUR,GAAgB/nD,KAG7DsoD,IAAwBA,EAAoBpqC,IAAQ,GAC7CkqC,EAAUlqC,KAGtB,EAbD,IAAK,IAAMzjG,KAAO2tI,EAASM,EAAAjuI,GAe3B,OAAOkhC,CACT,GEzBAitG,GAAe,SAACz6K,GAAc,OAC5BiyD,GAASjyD,KAAW1C,OAAOqyD,KAAK3vD,GAAOxB,MAAM,ECK/Ck8K,GAAe,SACbC,EACAH,EACAI,EACAR,GAEAQ,EAAgBD,GACeA,EAAvBnnK,KAAR,IAAiBymK,EAAS5W,GAAKsX,EAAaE,IAE5C,OACEJ,GAAcR,IACd38K,OAAOqyD,KAAKsqH,GAAWz7K,QAAUlB,OAAOqyD,KAAK6qH,GAAiBh8K,QAC9DlB,OAAOqyD,KAAKsqH,GAAW7zD,MACrB,SAAC95E,GAAG,OACFkuI,EAAgBluI,OACd8tI,GAAUR,GAAgB/nD,IAAI,GAGxC,EC5BAipD,GAAe,SAAI96K,GAAQ,OAAMvC,MAAMs0D,QAAQ/xD,GAASA,EAAQ,CAACA,EAAM,ECUjE,SAAU+6K,GAAgBr3J,GAC9B,IAAM4kH,EAASjhF,EAAAA,OAAa3jC,GAC5B4kH,EAAOn2C,QAAUzuE,EAEjB2jC,EAAAA,WAAgB,WACd,IAAMokF,GACH/nH,EAAM0nE,UACPk9C,EAAOn2C,QAAQo+D,SACfjoB,EAAOn2C,QAAQo+D,QAAQhkB,UAAU,CAC/B1sI,KAAMyoI,EAAOn2C,QAAQtyF,OAGzB,OAAO,WACL4rI,GAAgBA,EAAaU,aAC/B,CACF,GAAG,CAACzoH,EAAM0nE,UACZ,CC1BA,IAAAtU,GAAe,SAAC92E,GAAc,MAAuC,kBAAVA,CAAkB,ECI7Eg7K,GAAe,SACb3wG,EACA4wG,EACAC,EACAC,EACA9wF,GAEA,OAAIvT,GAASzM,IACX8wG,GAAYF,EAAOlmB,MAAM9wH,IAAIomC,GACtBvpE,GAAIo6K,EAAY7wG,EAAOggB,IAG5B5sF,MAAMs0D,QAAQsY,GACTA,EAAM7f,KACX,SAAC4wH,GAAS,OACRD,GAAYF,EAAOlmB,MAAM9wH,IAAIm3I,GAAYt6K,GAAIo6K,EAAYE,EAAU,KAKzED,IAAaF,EAAOI,UAAW,GAExBH,EACT,EC3BA,IAAAI,GAAe,SAACt7K,GAAa,MAAK,QAAQ4G,KAAK5G,EAAM,ECErDu7K,GAAe,SAACvpH,GAAa,OAC3BunH,GAAQvnH,EAAMt2C,QAAQ,YAAa,IAAIpO,MAAM,SAAS,ECGhC,SAAA1K,GACtBwiF,EACA/1E,EACArP,GAOA,IALA,IAAI6mB,GAAS,EACP20J,EAAWF,GAAMjsK,GAAQ,CAACA,GAAQksK,GAAalsK,GAC/C7Q,EAASg9K,EAASh9K,OAClBmgB,EAAYngB,EAAS,IAElBqoB,EAAQroB,GAAQ,CACvB,IAAM8tC,EAAMkvI,EAAS30J,GACjB40J,EAAWz7K,EAEf,GAAI6mB,IAAUlI,EAAW,CACvB,IAAM+8J,EAAWt2F,EAAO94C,GACxBmvI,EACExpH,GAASypH,IAAaj+K,MAAMs0D,QAAQ2pH,GAChCA,EACCtiK,OAAOoiK,EAAS30J,EAAQ,IAEzB,CAAC,EADD,EAEP,CACDu+D,EAAO94C,GAAOmvI,EACdr2F,EAASA,EAAO94C,EACjB,CACD,OAAO84C,CACT,CCYA,ICvCAu2F,GAAe,SACbnoK,EACAooK,EACAr1C,EACAp9H,EACA8rG,GAAuB,OAEvB2mE,EAAwBtS,GAAAA,GAAA,GAEf/iC,EAAO/yH,IAAK,IACfqoK,MAAKvS,GAAAA,GAAA,GACC/iC,EAAO/yH,IAAS+yH,EAAO/yH,GAAOqoK,MAAQt1C,EAAO/yH,GAAOqoK,MAAQ,CAAC,GAAC,GAAA7yB,GAAA,GACjE7/I,EAAO8rG,IAAW,MAGvB,CAAC,CAAC,ECjBF6mE,GAAe,SAAfA,EACJC,EACAjqH,EACAkqH,GACE,IACkDr8C,EADlDC,EAAAC,EACgBm8C,GAAe1+K,OAAOqyD,KAAKosH,IAAO,IAApD,IAAAn8C,EAAA5gI,MAAA2gI,EAAAC,EAAA3gI,KAAAc,MAAsD,KAA3CusC,EAAGqzF,EAAA3/H,MACN8/E,EAAQh/E,GAAIi7K,EAAQzvI,GAE1B,GAAIwzC,EAAO,CACT,IAAQnqB,EAAwBmqB,EAAxBnqB,GAAOsmH,EAAY5Y,GAAKvjF,EAAKo8F,IAErC,GAAIvmH,GAAM7D,EAAS6D,EAAGniD,MAAO,CAC3B,GAAImiD,EAAGtN,IAAI+6C,MAAO,CAChBztC,EAAGtN,IAAI+6C,QACP,KACD,CAAM,GAAIztC,EAAG23C,MAAQ33C,EAAG23C,KAAK,GAAGlK,MAAO,CACtCztC,EAAG23C,KAAK,GAAGlK,QACX,KACD,CACF,MAAUnxC,GAASgqH,IAClBH,EAAaG,EAAcnqH,EAE9B,CACF,QAAAgzB,GAAA86C,EAAAviI,EAAAynF,EAAA,SAAA86C,EAAA9yH,GAAA,CACH,ECzBAqvK,GAAe,SACblmJ,GAAW,MAOP,CACJmmJ,YAAanmJ,GAAQA,IAAS2jJ,GAAgBC,SAC9CwC,SAAUpmJ,IAAS2jJ,GAAgBvwD,OACnCizD,WAAYrmJ,IAAS2jJ,GAAgBjvH,SACrC4xH,QAAStmJ,IAAS2jJ,GAAgB/nD,IAClC2qD,UAAWvmJ,IAAS2jJ,GAAgBE,UACrC,ECfDjiB,GAAe,SACbrkJ,EACAynK,EACAwB,GAAqB,OAEpBA,IACAxB,EAAOI,UACNJ,EAAOlmB,MAAMryJ,IAAI8Q,IACjB+sH,EAAI06C,EAAOlmB,OAAOpjG,MAChB,SAAC+qH,GAAS,OACRlpK,EAAKi3C,WAAWiyH,IAChB,SAAS91K,KAAK4M,EAAKjS,MAAMm7K,EAAUl+K,QAAQ,IAC7C,ECJNm+K,GAAe,SACbp2C,EACArlI,EACAsS,GAEA,IAAMopK,EAAmBrD,GAAQz4K,GAAIylI,EAAQ/yH,IAG7C,OAFA5Q,GAAIg6K,EAAkB,OAAQ17K,EAAMsS,IACpC5Q,GAAI2jI,EAAQ/yH,EAAMopK,GACXr2C,CACT,ECnBA4K,GAAe,SAACnxI,GAAc,MAAwC,mBAAVA,CAAmB,ECE/E68K,GAAe,SAACjnJ,GAAqB,MAClB,SAAjBA,EAAQzsB,IAAe,ECHzB6tD,GAAe,SAACh3D,GAAc,MACX,oBAAVA,CAAoB,ECC7B88K,GAAe,SAAC98K,GACd,IAAKk5K,GACH,OAAO,EAGT,IAAM6D,EAAQ/8K,EAAUA,EAAsB+qF,cAA6B,EAC3E,OACE/qF,aACC+8K,GAASA,EAAMz6E,YAAcy6E,EAAMz6E,YAAY62E,YAAcA,YAElE,ECTA6D,GAAe,SAACh9K,GAAc,OAAuB82E,GAAS92E,EAAM,ECDpEi9K,GAAe,SAACrnJ,GAAqB,MAClB,UAAjBA,EAAQzsB,IAAgB,ECH1B+zK,GAAe,SAACl9K,GAAc,OAAsBA,aAAiBo3D,MAAM,ECOrE+lH,GAAqC,CACzCn9K,OAAO,EACPo0D,SAAS,GAGLgpH,GAAc,CAAEp9K,OAAO,EAAMo0D,SAAS,GAE5CipH,GAAe,SAACpyF,GACd,GAAIxtF,MAAMs0D,QAAQk5B,GAAU,CAC1B,GAAIA,EAAQzsF,OAAS,EAAG,CACtB,IAAM4vC,EAAS68C,EACZ38D,QAAO,SAAC8lH,GAAM,OAAKA,GAAUA,EAAOpqD,UAAYoqD,EAAOhpD,QAAQ,IAC/D5gC,KAAI,SAAC4pF,GAAM,OAAKA,EAAOp0I,KAAK,IAC/B,MAAO,CAAEA,MAAOouC,EAAQgmB,UAAWhmB,EAAO5vC,OAC3C,CAED,OAAOysF,EAAQ,GAAGjB,UAAYiB,EAAQ,GAAGG,SAErCH,EAAQ,GAAG/zE,aAAem7C,GAAY44B,EAAQ,GAAG/zE,WAAWlX,OAC1DqyD,GAAY44B,EAAQ,GAAGjrF,QAA+B,KAArBirF,EAAQ,GAAGjrF,MAC1Co9K,GACA,CAAEp9K,MAAOirF,EAAQ,GAAGjrF,MAAOo0D,SAAS,GACtCgpH,GACFD,EACL,CAED,OAAOA,EACT,EC7BMG,GAAkC,CACtClpH,SAAS,EACTp0D,MAAO,MAGTu9K,GAAe,SAACtyF,GAA4B,OAC1CxtF,MAAMs0D,QAAQk5B,GACVA,EAAQ87B,QACN,SAACy2D,EAAUppC,GAAM,OACfA,GAAUA,EAAOpqD,UAAYoqD,EAAOhpD,SAChC,CACEh3B,SAAS,EACTp0D,MAAOo0I,EAAOp0I,OAEhBw9K,CAAQ,GACdF,IAEFA,EAAa,EClBL,SAAUG,GACtBjwG,EACAnlB,GACiB,IAAjBl/C,EAAI5K,UAAAC,OAAA,QAAAq2D,IAAAt2D,UAAA,GAAAA,UAAA,GAAG,WAEP,GACEy+K,GAAUxvG,IACT/vE,MAAMs0D,QAAQyb,IAAWA,EAAOmxD,MAAMq+C,KACtC7rC,GAAU3jE,KAAYA,EAEvB,MAAO,CACLrkE,KAAAA,EACA8rG,QAAS+nE,GAAUxvG,GAAUA,EAAS,GACtCnlB,IAAAA,EAGN,CChBA,IAAAq1H,GAAe,SAACC,GAA+B,OAC7C1rH,GAAS0rH,KAAoBT,GAAQS,GACjCA,EACA,CACE39K,MAAO29K,EACP1oE,QAAS,GACV,ECoBP2oE,GAAA,eAAAv6C,EAAAw6C,EAAAC,IAAA7lD,MAAe,SAAA8lD,EACbj+F,EACAo7F,EACAU,EACAoC,EACAC,GAAsB,IAAAC,EAAA71H,EAAAilD,EAAA+yB,EAAA89C,EAAAC,EAAA32K,EAAAF,EAAAm6H,EAAA28C,EAAA7qK,EAAA8qK,EAAAC,EAAAnzF,EAAAozF,EAAAjzH,EAAAkzH,EAAAv9K,EAAAw9K,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAv2C,EAAAxoI,EAAAi1G,EAAA+pE,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAvyG,EAAAwyG,EAAAC,EAAA3zI,EAAA4zI,GAAA,OAAApC,IAAAjpD,MAAA,SAAA3rC,GAAA,cAAAA,EAAAupC,KAAAvpC,EAAArpF,MAAA,OAiBoC,GAjBpCq+K,EAgBlBp+F,EAAMnqB,GAbRtN,EAAG61H,EAAH71H,IACAilD,EAAI4wE,EAAJ5wE,KACA+yB,EAAQ69C,EAAR79C,SACA89C,EAASD,EAATC,UACAC,EAASF,EAATE,UACA32K,EAAGy2K,EAAHz2K,IACAF,EAAG22K,EAAH32K,IACAm6H,EAAOw8C,EAAPx8C,QACA28C,EAAQH,EAARG,SACA7qK,EAAI0qK,EAAJ1qK,KACA8qK,EAAaJ,EAAbI,cACAC,EAAKL,EAALK,MACAnzF,EAAQ8yF,EAAR9yF,SAEIozF,EAA+B19K,GAAIo6K,EAAY1nK,GAChD+qK,IAASnzF,EAAQ,CAAAlC,EAAArpF,KAAA,eAAAqpF,EAAA2tC,OAAA,SACb,CAAC,GAAC,OAwCV,GAtCKtrE,EAA6B+hD,EAAOA,EAAK,GAAMjlD,EAC/Co2H,EAAoB,SAACxpE,GACrB+oE,GAA6BzyH,EAAS40H,iBACxC50H,EAASkzH,kBAAkBttC,GAAUl8B,GAAW,GAAKA,GAAW,IAChE1pD,EAAS40H,iBAEb,EACMj/K,EAA6B,CAAC,EAC9Bw9K,EAAUzB,GAAa50H,GACvBs2H,EAAalG,GAAgBpwH,GAC7Bu2H,EAAoBF,GAAWC,EAC/BE,GACFP,GAAiBzB,GAAYx0H,KAC7BgK,GAAYhK,EAAIroD,QAChBqyD,GAAYmsH,IACb1B,GAAcz0H,IAAsB,KAAdA,EAAIroD,OACZ,KAAfw+K,GACC/gL,MAAMs0D,QAAQysH,KAAgBA,EAAWhgL,OACtCsgL,EAAoBnD,GAAa1qK,KACrC,KACAuC,EACAooK,EACA16K,GAEI69K,EAAmB,SACvBC,EACAoB,EACAC,GAGE,IAFFC,EAAO/hL,UAAAC,OAAA,QAAAq2D,IAAAt2D,UAAA,GAAAA,UAAA,GAAGw7K,GACVwG,EAAOhiL,UAAAC,OAAA,QAAAq2D,IAAAt2D,UAAA,GAAAA,UAAA,GAAGw7K,GAEJ9kE,EAAU+pE,EAAYoB,EAAmBC,EAC/Cn/K,EAAMsS,GAAK81J,GAAA,CACTngK,KAAM61K,EAAYsB,EAAUC,EAC5BtrE,QAAAA,EACA5sD,IAAAA,GACGy2H,EAAkBE,EAAYsB,EAAUC,EAAStrE,GAExD,IAGEgpE,GACKxgL,MAAMs0D,QAAQysH,KAAgBA,EAAWhgL,OAC1C6hI,KACGu+C,IAAsBC,GAAWlG,GAAkB6F,KACnDrtC,GAAUqtC,KAAgBA,GAC1BG,IAAetB,GAAiB/vE,GAAMl5C,SACtCsqH,IAAYnB,GAAcjwE,GAAMl5C,UAAS,CAAA80B,EAAArpF,KAAA,SAE1B,GAF0B2oI,EAErBw0C,GAAU38C,GACjC,CAAErgI,QAASqgI,EAAUprB,QAASorB,GAC9Bq9C,GAAmBr9C,GAFfrgI,EAAKwoI,EAALxoI,MAAOi1G,EAAOuzB,EAAPvzB,SAIXj1G,EAAO,CAAFkpF,EAAArpF,KAAA,SAML,GALFqB,EAAMsS,GAAK81J,GAAA,CACTngK,KAAM4wK,GACN9kE,QAAAA,EACA5sD,IAAKkD,GACFuzH,EAAkB/E,GAAiC9kE,IAEnD2mE,EAA0B,CAAF1yF,EAAArpF,KAAA,SACA,OAA3B4+K,EAAkBxpE,GAAS/rB,EAAA2tC,OAAA,SACpB31H,GAAK,WAKb29K,GAAalG,GAAkBlxK,IAASkxK,GAAkBpxK,GAAK,CAAA2hF,EAAArpF,KAAA,SAuCjE,GApCKq/K,EAAYxB,GAAmBn2K,GAC/B43K,EAAYzB,GAAmBj2K,GAEhCkxK,GAAkB6F,IAAgBplK,MAAMolK,IAWrCa,EACHh3H,EAAyBm4H,aAAe,IAAI/vJ,KAAK+tJ,GAC9Cc,EAAoB,SAACnsK,GAAa,OACtC,IAAIsd,MAAK,IAAIA,MAAOgwJ,eAAiB,IAAMttK,EAAK,EAC5CosK,EAAqB,QAAZl3H,EAAIl/C,KACbq2K,EAAqB,QAAZn3H,EAAIl/C,KAEf2tE,GAASooG,EAAUl/K,QAAUw+K,IAC/BQ,EAAYO,EACRD,EAAkBd,GAAcc,EAAkBJ,EAAUl/K,OAC5Dw/K,EACAhB,EAAaU,EAAUl/K,MACvBq/K,EAAY,IAAI5uJ,KAAKyuJ,EAAUl/K,QAGjC82E,GAASqoG,EAAUn/K,QAAUw+K,IAC/BS,EAAYM,EACRD,EAAkBd,GAAcc,EAAkBH,EAAUn/K,OAC5Dw/K,EACAhB,EAAaW,EAAUn/K,MACvBq/K,EAAY,IAAI5uJ,KAAK0uJ,EAAUn/K,UA9B/Bo/K,EACH/2H,EAAyBi2H,gBACzBE,GAAcA,EAAaA,GACzB7F,GAAkBuG,EAAUl/K,SAC/Bg/K,EAAYI,EAAcF,EAAUl/K,OAEjC24K,GAAkBwG,EAAUn/K,SAC/Bi/K,EAAYG,EAAcD,EAAUn/K,SA2BpCg/K,IAAaC,EAAS,CAAA/1F,EAAArpF,KAAA,SAOtB,GANFk/K,IACIC,EACFE,EAAUjqE,QACVkqE,EAAUlqE,QACV8kE,GACAA,IAEG6B,EAA0B,CAAF1yF,EAAArpF,KAAA,SACa,OAAxC4+K,EAAkBv9K,EAAMsS,GAAOyhG,SAAS/rB,EAAA2tC,OAAA,SACjC31H,GAAK,YAMfi9K,IAAaC,GACbS,KACA/nG,GAAS0nG,IAAgBP,GAAgBxgL,MAAMs0D,QAAQysH,IAAa,CAAAt1F,EAAArpF,KAAA,SASzB,GAPtC4/K,EAAkB/B,GAAmBS,GACrCuB,EAAkBhC,GAAmBU,GACrCY,GACHrG,GAAkB8G,EAAgBz/K,QACnCw+K,EAAWhgL,QAAUihL,EAAgBz/K,MACjCi/K,GACHtG,GAAkB+G,EAAgB1/K,QACnCw+K,EAAWhgL,QAAUkhL,EAAgB1/K,OAEnCg/K,IAAaC,EAAS,CAAA/1F,EAAArpF,KAAA,SAKtB,GAJFk/K,EACEC,EACAS,EAAgBxqE,QAChByqE,EAAgBzqE,SAEb2mE,EAA0B,CAAF1yF,EAAArpF,KAAA,SACa,OAAxC4+K,EAAkBv9K,EAAMsS,GAAOyhG,SAAS/rB,EAAA2tC,OAAA,SACjC31H,GAAK,YAKdwgI,GAAYm9C,IAAW/nG,GAAS0nG,GAAW,CAAAt1F,EAAArpF,KAAA,SACT,GADSggL,EACJnC,GAAmBh8C,GAA7Co+C,EAAYD,EAAnB7/K,MAAqBi1G,EAAO4qE,EAAP5qE,SAEzBioE,GAAQ4C,IAAkBtB,EAAW9zH,MAAMo1H,GAAa,CAAA52F,EAAArpF,KAAA,SAMxD,GALFqB,EAAMsS,GAAK81J,GAAA,CACTngK,KAAM4wK,GACN9kE,QAAAA,EACA5sD,IAAAA,GACGy2H,EAAkB/E,GAAgC9kE,IAElD2mE,EAA0B,CAAF1yF,EAAArpF,KAAA,SACA,OAA3B4+K,EAAkBxpE,GAAS/rB,EAAA2tC,OAAA,SACpB31H,GAAK,YAKdm9K,EAAU,CAAFn1F,EAAArpF,KAAA,aACNm3D,GAAWqnH,GAAW,CAAFn1F,EAAArpF,KAAA,gBAAAqpF,EAAArpF,KAAA,GACDw+K,EAASG,EAAYtD,GAAW,QACG,GADlD1tG,EAAM0b,EAAA9oF,OACN4/K,EAAgBvC,GAAiBjwG,EAAQjiB,IAE5B,CAAF29B,EAAArpF,KAAA,SAOb,GANFqB,EAAMsS,GAAK81J,GAAAA,GAAA,GACN0W,GACAlB,EACD/E,GACAiG,EAAc/qE,UAGb2mE,EAA0B,CAAF1yF,EAAArpF,KAAA,SACc,OAAzC4+K,EAAkBuB,EAAc/qE,SAAS/rB,EAAA2tC,OAAA,SAClC31H,GAAK,QAAAgoF,EAAArpF,KAAA,qBAGPoyD,GAASosH,GAAW,CAAFn1F,EAAArpF,KAAA,SACvBogL,EAAmB,CAAC,EAAe/2F,EAAAw3F,GAAA5C,IAAAnuH,KAErB0uH,GAAQ,YAAAn1F,EAAAx+D,GAAAw+D,EAAAw3F,MAAA3gL,KAAE,CAAFmpF,EAAArpF,KAAA,SAAZ,GAAHysC,EAAG48C,EAAAx+D,GAAA1qB,MACPy6K,GAAcwF,IAAsBrE,EAAwB,CAAA1yF,EAAArpF,KAAA,gBAAAqpF,EAAA2tC,OAAA,oBAI3B,OAJ2B3tC,EAAAv+D,GAI3C8yJ,GAAgBv0F,EAAArpF,KAAA,GAC9Bw+K,EAAS/xI,GAAKkyI,EAAYtD,GAAW,QAAAhyF,EAAAy3F,GAAAz3F,EAAA9oF,KAAA8oF,EAAA03F,GAC3Cr1H,EAAQ29B,EAAA23F,GACRv0I,GAHI0zI,IAAgB,EAAH92F,EAAAv+D,IAAAu+D,EAAAy3F,GAAAz3F,EAAA03F,GAAA13F,EAAA23F,OAOjBZ,EAAgB3W,GAAAA,GAAA,GACX0W,IACAlB,EAAkBxyI,EAAK0zI,GAAc/qE,UAG1CwpE,EAAkBuB,GAAc/qE,SAE5B2mE,IACF16K,EAAMsS,GAAQysK,IAEjB/2F,EAAArpF,KAAA,oBAGE46K,GAAcwF,GAAmB,CAAF/2F,EAAArpF,KAAA,SAIhC,GAHFqB,EAAMsS,GAAK81J,GAAA,CACTjhH,IAAKkD,GACF00H,GAEArE,EAA0B,CAAF1yF,EAAArpF,KAAA,gBAAAqpF,EAAA2tC,OAAA,SACpB31H,GAAK,QAMI,OAAxBu9K,GAAkB,GAAMv1F,EAAA2tC,OAAA,SACjB31H,GAAK,yBAAAgoF,EAAAnwE,OAAA,GAAAglK,EAAA,KACb,gBA7PD/pD,EAAA8sD,EAAAC,EAAAC,EAAAC,GAAA,OAAA59C,EAAA3kI,MAAA,KAAAH,UAAA,KCJc,SAAU2iL,GAAM97F,EAAa/1E,GACzC,IAAMmT,EAAQ/kB,MAAMs0D,QAAQ1iD,GACxBA,EACAisK,GAAMjsK,GACN,CAACA,GACDksK,GAAalsK,GAEX8xK,EAA+B,IAAjB3+J,EAAMhkB,OAAe4mF,EA3B3C,SAAiBA,EAAag8F,GAI5B,IAHA,IAAM5iL,EAAS4iL,EAAW7/K,MAAM,GAAI,GAAG/C,OACnCqoB,EAAQ,EAELA,EAAQroB,GACb4mF,EAAS/yB,GAAY+yB,GAAUv+D,IAAUu+D,EAAOg8F,EAAWv6J,MAG7D,OAAOu+D,CACT,CAkBoDi8F,CAAQj8F,EAAQ5iE,GAE5DqE,EAAQrE,EAAMhkB,OAAS,EACvB8tC,EAAM9pB,EAAMqE,GAclB,OAZIs6J,UACKA,EAAY70I,GAIT,IAAVzlB,IACEorC,GAASkvH,IAAgB1G,GAAc0G,IACtC1jL,MAAMs0D,QAAQovH,IA5BrB,SAAsB/uH,GACpB,IAAK,IAAM9lB,KAAO8lB,EAChB,IAAKC,GAAYD,EAAI9lB,IACnB,OAAO,EAGX,OAAO,CACT,CAqBqCg1I,CAAaH,KAE9CD,GAAM97F,EAAQ5iE,EAAMjhB,MAAM,GAAI,IAGzB6jF,CACT,CCnCc,SAAUm8F,KACtB,IAAIC,EAA4B,GAqBhC,MAAO,CACDC,gBACF,OAAOD,GAET3hL,KAvBW,SAACG,GAAY,IACS0hL,EADTC,EAAA9hD,EACD2hD,GAAU,IAAjC,IAAAG,EAAA3iL,MAAA0iL,EAAAC,EAAA1iL,KAAAc,MAAmC,KAAxBmoK,EAAQwZ,EAAA1hL,MACjBkoK,EAASroK,MAAQqoK,EAASroK,KAAKG,EAChC,QAAA8kF,GAAA68F,EAAAtkL,EAAAynF,EAAA,SAAA68F,EAAA70K,GAAA,CACH,EAoBEy/H,UAlBgB,SAAC27B,GAEjB,OADAsZ,EAAW7gL,KAAKunK,GACT,CACL/7B,YAAa,WACXq1C,EAAaA,EAAWlzJ,QAAO,SAACjvB,GAAC,OAAKA,IAAM6oK,CAAQ,KAG1D,EAYE/7B,YAVkB,WAClBq1C,EAAa,EACf,EAUF,CCzCA,IAAAI,GAAe,SAAC5hL,GAAc,OAC5B24K,GAAkB34K,KAAW44K,GAAa54K,EAAM,ECDpC,SAAU6hL,GAAUC,EAAcC,GAC9C,GAAIH,GAAYE,IAAYF,GAAYG,GACtC,OAAOD,IAAYC,EAGrB,GAAIrJ,GAAaoJ,IAAYpJ,GAAaqJ,GACxC,OAAOD,EAAQptH,YAAcqtH,EAAQrtH,UAGvC,IAAMstH,EAAQ1kL,OAAOqyD,KAAKmyH,GACpBG,EAAQ3kL,OAAOqyD,KAAKoyH,GAE1B,GAAIC,EAAMxjL,SAAWyjL,EAAMzjL,OACzB,OAAO,EAGT,IAAK,IAALk3D,EAAA,EAAAwsH,EAAkBF,EAAKtsH,EAAAwsH,EAAA1jL,OAAAk3D,IAAE,CAApB,IAAMppB,EAAG41I,EAAAxsH,GACNysH,EAAOL,EAAQx1I,GAErB,IAAK21I,EAAMn1H,SAASxgB,GAClB,OAAO,EAGT,GAAY,QAARA,EAAe,CACjB,IAAM81I,EAAOL,EAAQz1I,GAErB,GACGosI,GAAayJ,IAASzJ,GAAa0J,IACnCnwH,GAASkwH,IAASlwH,GAASmwH,IAC3B3kL,MAAMs0D,QAAQowH,IAAS1kL,MAAMs0D,QAAQqwH,IACjCP,GAAUM,EAAMC,GACjBD,IAASC,EAEb,OAAO,CAEV,CACF,CAED,OAAO,CACT,CC1CA,IAAAC,GAAe,SAACzsJ,GAAqB,MAClB,oBAAjBA,EAAQzsB,IAA0B,ECEpCy1K,GAAe,SAACv2H,GAAiB,OAC/B40H,GAAa50H,IAAQowH,GAAgBpwH,EAAI,ECF3Ci6H,GAAe,SAACj6H,GAAQ,OAAKy0H,GAAcz0H,IAAQA,EAAIk6H,WAAW,ECFlEC,GAAe,SAAI32K,GACjB,IAAK,IAAMygC,KAAOzgC,EAChB,GAAImrD,GAAWnrD,EAAKygC,IAClB,OAAO,EAGX,OAAO,CACT,ECFA,SAASm2I,GAAmB52K,GAAyC,IAAhCkwK,EAAAx9K,UAAAC,OAAA,QAAAq2D,IAAAt2D,UAAA,GAAAA,UAAA,GAA8B,CAAC,EAC5DmkL,EAAoBjlL,MAAMs0D,QAAQlmD,GAExC,GAAIomD,GAASpmD,IAAS62K,EACpB,IAAK,IAAMp2I,KAAOzgC,EAEdpO,MAAMs0D,QAAQlmD,EAAKygC,KAClB2lB,GAASpmD,EAAKygC,MAAUk2I,GAAkB32K,EAAKygC,KAEhDyvI,EAAOzvI,GAAO7uC,MAAMs0D,QAAQlmD,EAAKygC,IAAQ,GAAK,CAAC,EAC/Cm2I,GAAgB52K,EAAKygC,GAAMyvI,EAAOzvI,KACxBqsI,GAAkB9sK,EAAKygC,MACjCyvI,EAAOzvI,IAAO,GAKpB,OAAOyvI,CACT,CAEA,SAAS4G,GACP92K,EACAqvK,EACA0H,GAEA,IAAMF,EAAoBjlL,MAAMs0D,QAAQlmD,GAExC,GAAIomD,GAASpmD,IAAS62K,EACpB,IAAK,IAAMp2I,KAAOzgC,EAEdpO,MAAMs0D,QAAQlmD,EAAKygC,KAClB2lB,GAASpmD,EAAKygC,MAAUk2I,GAAkB32K,EAAKygC,IAG9C+lB,GAAY6oH,IACZ0G,GAAYgB,EAAsBt2I,IAElCs2I,EAAsBt2I,GAAO7uC,MAAMs0D,QAAQlmD,EAAKygC,IAC5Cm2I,GAAgB52K,EAAKygC,GAAM,IAAGg9H,GAAA,GACzBmZ,GAAgB52K,EAAKygC,KAE9Bq2I,GACE92K,EAAKygC,GACLqsI,GAAkBuC,GAAc,CAAC,EAAIA,EAAW5uI,GAChDs2I,EAAsBt2I,IAI1Bs2I,EAAsBt2I,IAAQu1I,GAAUh2K,EAAKygC,GAAM4uI,EAAW5uI,IAKpE,OAAOs2I,CACT,CAEA,IAAAC,GAAe,SAAIxI,EAAkBa,GAAa,OAChDyH,GACEtI,EACAa,EACAuH,GAAgBvH,GACjB,EChEH4H,GAAe,SACb9iL,EAAQ+iL,GAAA,IACNzE,EAAayE,EAAbzE,cAAekC,EAAWuC,EAAXvC,YAAawC,EAAUD,EAAVC,WAAU,OAExC3wH,GAAYryD,GACRA,EACAs+K,EACU,KAAVt+K,EACEi1D,IACAj1D,GACCA,EACDA,EACFwgL,GAAe1pG,GAAS92E,GACxB,IAAIywB,KAAKzwB,GACTgjL,EACAA,EAAWhjL,GACXA,CAAK,ECTa,SAAAijL,GAActtH,GACpC,IAAMtN,EAAMsN,EAAGtN,IAEf,KAAIsN,EAAG23C,KAAO33C,EAAG23C,KAAKqxB,OAAM,SAACt2E,GAAG,OAAKA,EAAI+iC,QAAQ,IAAI/iC,EAAI+iC,UAIzD,OAAIyxF,GAAYx0H,GACPA,EAAI66H,MAGTjG,GAAa50H,GACRk1H,GAAc5nH,EAAG23C,MAAMttG,MAG5BqiL,GAAiBh6H,GACZk4E,EAAIl4E,EAAI86H,iBAAiB34H,KAAI,SAAA44H,GAAQ,OAAAA,EAALpjL,KAAiB,IAGtDy4K,GAAWpwH,GACNg1H,GAAiB1nH,EAAG23C,MAAMttG,MAG5B8iL,GAAgBzwH,GAAYhK,EAAIroD,OAAS21D,EAAGtN,IAAIroD,MAAQqoD,EAAIroD,MAAO21D,EAC5E,CCxBA,IAAA0tH,GAAe,SACbrH,EACAsH,EACAC,EACAvF,GAEA,IAE8BwF,EAFxBzH,EAAiD,CAAC,EAAE0H,EAAA5jD,EAEvCm8C,GAAW,IAA9B,IAAAyH,EAAAzkL,MAAAwkL,EAAAC,EAAAxkL,KAAAc,MAAgC,KAArByT,EAAIgwK,EAAAxjL,MACP8/E,EAAeh/E,GAAIwiL,EAAS9vK,GAElCssE,GAASl9E,GAAIm5K,EAAQvoK,EAAMssE,EAAMnqB,GAClC,QAAAmvB,GAAA2+F,EAAApmL,EAAAynF,EAAA,SAAA2+F,EAAA32K,GAAA,CAED,MAAO,CACLy2K,aAAAA,EACAl5G,MAAKk2D,EAAMy7C,GACXD,OAAAA,EACAiC,0BAAAA,EAEJ,ECtBA0F,GAAe,SACbC,GAAoD,OAEpDtxH,GAAYsxH,GACRA,EACAzG,GAAQyG,GACRA,EAAK1qI,OACLgZ,GAAS0xH,GACTzG,GAAQyG,EAAK3jL,OACX2jL,EAAK3jL,MAAMi5C,OACX0qI,EAAK3jL,MACP2jL,CAAI,EClBVC,GAAe,SAAC34F,GAAoB,OAClCA,EAAQszF,QACPtzF,EAAQo1C,UACPp1C,EAAQxjF,KACRwjF,EAAQ1jF,KACR0jF,EAAQkzF,WACRlzF,EAAQmzF,WACRnzF,EAAQy2C,SACRz2C,EAAQozF,SAAS,ECNG,SAAAwF,GACtBt9C,EACA+8C,EACA9vK,GAKA,IAAMtS,EAAQJ,GAAIylI,EAAQ/yH,GAE1B,GAAItS,GAASo6K,GAAM9nK,GACjB,MAAO,CACLtS,MAAAA,EACAsS,KAAAA,GAMJ,IAFA,IAAM62D,EAAQ72D,EAAKlG,MAAM,KAElB+8D,EAAM7rE,QAAQ,CACnB,IAAM48K,EAAY/wG,EAAMl7D,KAAK,KACvB2wE,EAAQh/E,GAAIwiL,EAASlI,GACrB0I,EAAahjL,GAAIylI,EAAQ60C,GAE/B,GAAIt7F,IAAUriF,MAAMs0D,QAAQ+tB,IAAUtsE,IAAS4nK,EAC7C,MAAO,CAAE5nK,KAAAA,GAGX,GAAIswK,GAAcA,EAAW36K,KAC3B,MAAO,CACLqK,KAAM4nK,EACNl6K,MAAO4iL,GAIXz5G,EAAM3pE,KACP,CAED,MAAO,CACL8S,KAAAA,EAEJ,CC7CA,IAAAuwK,GAAe,SACbtH,EACAuH,EACAC,EACAC,EAIAjuJ,GAQA,OAAIA,EAAKsmJ,WAEG0H,GAAehuJ,EAAKumJ,YACrBwH,GAAavH,IACbwH,EAAcC,EAAe7H,SAAWpmJ,EAAKomJ,WAC9CI,IACCwH,EAAcC,EAAe5H,WAAarmJ,EAAKqmJ,aACjDG,EAGX,ECtBA0H,GAAe,SAAI97H,EAAQ70C,GAAY,OACpC+lK,GAAQz4K,GAAIunD,EAAK70C,IAAOhV,QAAU0iL,GAAM74H,EAAK70C,EAAK,EC8E/C6yC,GAAiB,CACrBpwB,KAAM2jJ,GAAgBC,SACtBqK,eAAgBtK,GAAgBjvH,SAChCy5H,kBAAkB,YAGJC,KAKa,IAsCvBC,EAvCJ5gK,EAA8CnlB,UAAAC,OAAA,QAAAq2D,IAAAt2D,UAAA,GAAAA,UAAA,MAC9CgmL,EAA2BhmL,UAAAC,OAAA,EAAAD,UAAA,QAAAs2D,EAEvB2vH,EAAQlb,GAAAA,GAAA,GACPjjH,IACA3iC,GAED+gK,EAAsC,CACxCC,YAAa,EACbC,SAAS,EACTC,UAAW5tH,GAAWwtH,EAASnK,eAC/BwK,cAAc,EACdZ,aAAa,EACba,cAAc,EACdC,oBAAoB,EACpB3wH,SAAS,EACT4wH,cAAe,CAAC,EAChBC,YAAa,CAAC,EACd1+C,OAAQ,CAAC,GAEP+8C,EAAU,CAAC,EACXhJ,GACFroH,GAASuyH,EAASnK,gBAAkBpoH,GAASuyH,EAASp2I,UAClDgrI,GAAYoL,EAASnK,eAAiBmK,EAASp2I,SAC/C,CAAC,EACH82I,EAAcV,EAASW,iBACvB,CAAC,EACD/L,GAAYkB,GACZ8K,EAAS,CACXxzE,QAAQ,EACR2sE,OAAO,EACPxpB,OAAO,GAELkmB,EAAgB,CAClBsD,MAAO,IAAIr4F,IACXm/F,QAAS,IAAIn/F,IACb1sB,MAAO,IAAI0sB,IACX6uE,MAAO,IAAI7uE,KAGTo/F,EAAQ,EACN9K,EAAkB,CACtBmK,SAAS,EACTM,aAAa,EACbD,eAAe,EACfH,cAAc,EACdzwH,SAAS,EACTmyE,QAAQ,GAEJg/C,EAAoC,CACxCn3I,OAAQmzI,KACR/nH,MAAO+nH,KACP7kI,MAAO6kI,MAEHiE,EACJ9hK,EAAM+hK,cAAgB/hK,EAAM+hK,aAAaC,gBACrCC,EAA6BxJ,GAAmBqI,EAASvuJ,MACzD2vJ,EAA4BzJ,GAAmBqI,EAASN,gBACxD2B,EACJrB,EAASjB,eAAiB3J,GAAgB/nD,IAStCi0D,EAAY,eAAAC,EAAAlI,EAAAC,IAAA7lD,MAAG,SAAA+tD,EAAOC,GAA2B,IAAA7xH,EAAA,OAAA0pH,IAAAjpD,MAAA,SAAAqxD,GAAA,cAAAA,EAAAzzD,KAAAyzD,EAAArmL,MAAA,WACjD26K,EAAgBpmH,UAAW6xH,EAAiB,CAAAC,EAAArmL,KAAA,aAC9B2kL,EAAS2B,SAAQ,CAAAD,EAAArmL,KAAA,QAChB,OADgBqmL,EAAAx7J,GAC7B+vJ,GAAayL,EAAArmL,KAAA,EAAQumL,IAAgB,OAAAF,EAAAv7J,GAAAu7J,EAAA9lL,KAAEmmI,OAAM2/C,EAAAxF,IAAA,EAAAwF,EAAAx7J,IAAAw7J,EAAAv7J,IAAAu7J,EAAArmL,KAAA,uBAAAqmL,EAAArmL,KAAA,GACvCwmL,EAAyB/C,GAAS,GAAK,QAAA4C,EAAAxF,GAAAwF,EAAA9lL,KAAA,SAF3Cg0D,EAAO8xH,EAAAxF,MAIG+D,EAAWrwH,SACzBmxH,EAAU7oI,MAAM78C,KAAK,CACnBu0D,QAAAA,IAEH,yBAAA8xH,EAAAntK,OAAA,GAAAitK,EAAA,KAEJ,gBAZiBM,GAAA,OAAAP,EAAArnL,MAAA,KAAAH,UAAA,KAcZgoL,EAAsB,SAACvmL,GAAc,OACzCw6K,EAAgBqK,cAChBU,EAAU7oI,MAAM78C,KAAK,CACnBglL,aAAc7kL,GACd,EAkEEwmL,EAAsB,SAC1BhzK,EACAizK,EACAzmL,EACAqoD,GAEA,IAAMy3B,EAAeh/E,GAAIwiL,EAAS9vK,GAElC,GAAIssE,EAAO,CACT,IAAMuK,EAAevpF,GACnBokL,EACA1xK,EACA6+C,GAAYryD,GAASc,GAAIw5K,EAAgB9mK,GAAQxT,GAGnDqyD,GAAYg4B,IACXhiC,GAAQA,EAAyB+hC,gBAClCq8F,EACI7jL,GACEsiL,EACA1xK,EACAizK,EAAuBp8F,EAAe44F,GAAcnjG,EAAMnqB,KAE5D+wH,EAAclzK,EAAM62E,GAExB+6F,EAAO7G,OAASuH,GACjB,CACH,EAEMa,EAAsB,SAC1BnzK,EACAozK,EACAnK,EACAoK,EACAC,GAIA,IAAIC,GAAoB,EACpBC,GAAkB,EAChB5uH,EAA8D,CAClE5kD,KAAAA,GAGF,IAAKipK,GAAeoK,EAAa,CAC3BrM,EAAgBmK,UAClBqC,EAAkBvC,EAAWE,QAC7BF,EAAWE,QAAUvsH,EAAOusH,QAAUsC,IACtCF,EAAoBC,IAAoB5uH,EAAOusH,SAGjD,IAAMuC,EAAyBrF,GAC7B/gL,GAAIw5K,EAAgB9mK,GACpBozK,GAGFI,EAAkBlmL,GAAI2jL,EAAWQ,YAAazxK,GAC9C0zK,EACIhG,GAAMuD,EAAWQ,YAAazxK,GAC9B5Q,GAAI6hL,EAAWQ,YAAazxK,GAAM,GACtC4kD,EAAO6sH,YAAcR,EAAWQ,YAChC8B,EACEA,GACCvM,EAAgByK,aACf+B,KAAqBE,CAC1B,CAED,GAAIzK,EAAa,CACf,IAAM0K,EAAyBrmL,GAAI2jL,EAAWO,cAAexxK,GAExD2zK,IACHvkL,GAAI6hL,EAAWO,cAAexxK,EAAMipK,GACpCrkH,EAAO4sH,cAAgBP,EAAWO,cAClC+B,EACEA,GACCvM,EAAgBwK,eACfmC,IAA2B1K,EAElC,CAID,OAFAsK,GAAqBD,GAAgBvB,EAAU7oI,MAAM78C,KAAKu4D,GAEnD2uH,EAAoB3uH,EAAS,CAAC,CACvC,EAEMgvH,EAAsB,SAC1B5zK,EACA4gD,EACAlzD,EACAmmL,GAMA,IAzLqBv1H,EAyLfw1H,EAAqBxmL,GAAI2jL,EAAWl+C,OAAQ/yH,GAC5CyyK,EACJzL,EAAgBpmH,SAChB+8E,GAAU/8E,IACVqwH,EAAWrwH,UAAYA,EAazB,GAXI1wC,EAAM6jK,YAAcrmL,GA/LH4wD,EAgMW,kBA7Gb,SAACt+C,EAAyBtS,GAC7C0B,GAAI6hL,EAAWl+C,OAAQ/yH,EAAMtS,GAC7BqkL,EAAU7oI,MAAM78C,KAAK,CACnB0mI,OAAQk+C,EAAWl+C,QAEvB,CAwGwCihD,CAAah0K,EAAMtS,EAAM,GAA7DojL,EA/LF,SAACmD,GACC5gF,aAAay+E,GACbA,EAAQjtK,WAAWy5C,EAAU21H,EAC/B,GA6LqB/jK,EAAM6jK,cAEzB1gF,aAAay+E,GACbhB,EAAqB,KACrBpjL,EACI0B,GAAI6hL,EAAWl+C,OAAQ/yH,EAAMtS,GAC7BggL,GAAMuD,EAAWl+C,OAAQ/yH,KAI5BtS,GAAS2gL,GAAUyF,EAAoBpmL,GAASomL,KAChD7M,GAAc4M,IACfpB,EACA,CACA,IAAMyB,EAAgBpe,GAAAA,GAAAA,GAAA,GACjB+d,GACCpB,GAAqB90C,GAAU/8E,GAAW,CAAEA,QAAAA,GAAY,CAAC,GAAC,IAC9DmyE,OAAQk+C,EAAWl+C,OACnB/yH,KAAAA,IAGFixK,EAAUnb,GAAAA,GAAA,GACLmb,GACAiD,GAGLnC,EAAU7oI,MAAM78C,KAAK6nL,EACtB,CAEDnB,GAAoB,EACtB,EAEMH,EAAc,eAAAuB,EAAA9J,EAAAC,IAAA7lD,MAAG,SAAA2vD,EAAOp0K,GAA0B,OAAAsqK,IAAAjpD,MAAA,SAAAgzD,GAAA,cAAAA,EAAAp1D,KAAAo1D,EAAAhoL,MAAA,cAAAgoL,EAAAhxD,OAAA,SACtD2tD,EAAS2B,SACPjB,EACAV,EAAS71I,QACT00I,GACE7vK,GAAQynK,EAAOsD,MACf+E,EACAkB,EAASjB,aACTiB,EAASxG,6BAEZ,wBAAA6J,EAAA9uK,OAAA,GAAA6uK,EAAA,qBAViBE,GAAA,OAAAH,EAAAjpL,MAAA,KAAAH,UAAA,KAYdwpL,EAA2B,eAAAC,EAAAnK,EAAAC,IAAA7lD,MAAG,SAAAgwD,EAAO59G,GAA2B,IAAA69G,EAAA3hD,EAAA4hD,EAAAC,EAAAC,EAAAC,EAAA,OAAAxK,IAAAjpD,MAAA,SAAA0zD,GAAA,cAAAA,EAAA91D,KAAA81D,EAAA1oL,MAAA,cAAA0oL,EAAA1oL,KAAA,EAC3CumL,IAAgB,OAEzC,GAFyC8B,EAAAK,EAAAnoL,KAAjCmmI,EAAM2hD,EAAN3hD,OAEJl8D,EAAO,CAAA89G,EAAAtoD,EACUx1D,GAAK,IAAxB,IAAA89G,EAAAnpL,MAAAopL,EAAAD,EAAAlpL,KAAAc,MAAWyT,EAAI40K,EAAApoL,OACPkB,EAAQJ,GAAIylI,EAAQ/yH,IAEtB5Q,GAAI6hL,EAAWl+C,OAAQ/yH,EAAMtS,GAC7BggL,GAAMuD,EAAWl+C,OAAQ/yH,EAC9B,OAAAsxE,GAAAqjG,EAAA9qL,EAAAynF,EAAA,SAAAqjG,EAAAr7K,GAAA,CACF,MACC23K,EAAWl+C,OAASA,EACrB,OAAAgiD,EAAA1xD,OAAA,SAEM0P,GAAM,wBAAAgiD,EAAAxvK,OAAA,GAAAkvK,EAAA,KACd,gBAfgCO,GAAA,OAAAR,EAAAtpL,MAAA,KAAAH,UAAA,KAiB3B8nL,EAAwB,eAAAoC,EAAA5K,EAAAC,IAAA7lD,MAAG,SAAAywD,EAC/B3M,EACA4M,GAA8B,IAAAh6I,EAAAi6I,EAAA9oG,EAAAnqB,EAAAixH,EAAAiC,EAAAC,EAAAC,EAAAxqL,UAAA,OAAAu/K,IAAAjpD,MAAA,SAAAm0D,GAAA,cAAAA,EAAAv2D,KAAAu2D,EAAAnpL,MAAA,OAC9B8uC,EAEIo6I,EAAAvqL,OAAA,QAAAq2D,IAAAk0H,EAAA,GAAAA,EAAA,IACFE,OAAO,GACRD,EAAAtI,GAAA5C,IAAAnuH,KAEkBosH,GAAM,WAAAiN,EAAAt+J,GAAAs+J,EAAAtI,MAAA3gL,KAAE,CAAFipL,EAAAnpL,KAAA,SACG,GADjB2T,EAAIw1K,EAAAt+J,GAAA1qB,QACP8/E,EAAQi8F,EAAOvoK,IAEV,CAAFw1K,EAAAnpL,KAAA,SAC4B,GAA3B81D,EAAsBmqB,EAAtBnqB,GAAOixH,EAAUvjB,GAAKvjF,EAAKopG,KAE/BvzH,EAAI,CAAFqzH,EAAAnpL,KAAA,SAC8C,OAA5CgpL,EAAmB5N,EAAOzhH,MAAM92D,IAAIizD,EAAGniD,MAAKw1K,EAAAnpL,KAAA,GACzB+9K,GACvB99F,EACAolG,EACAW,EACArB,EAASxG,4BAA8B2K,EACvCE,GACD,QANe,KAAVC,EAAUE,EAAA5oL,MAQDu1D,EAAGniD,MAAO,CAAFw1K,EAAAnpL,KAAA,SACC,GAAtB8uC,EAAQs6I,OAAQ,GACZN,EAAsB,CAAFK,EAAAnpL,KAAA,gBAAAmpL,EAAAnyD,OAAA,qBAKzB8xD,IACE7nL,GAAIgoL,EAAYnzH,EAAGniD,MAChBq1K,EACElM,GACE8H,EAAWl+C,OACXuiD,EACAnzH,EAAGniD,MAEL5Q,GAAI6hL,EAAWl+C,OAAQ5wE,EAAGniD,KAAMs1K,EAAWnzH,EAAGniD,OAChD0tK,GAAMuD,EAAWl+C,OAAQ5wE,EAAGniD,OAAO,QAGjC,GAHiCw1K,EAAAr+J,GAG3Ci8J,GAAUoC,EAAAr+J,GAAA,CAAAq+J,EAAAnpL,KAAA,gBAAAmpL,EAAAnpL,KAAA,GACDwmL,EACLO,EACA+B,EACAh6I,GACD,QAAAq6I,EAAAnpL,KAAA,uBAAAmpL,EAAAnyD,OAAA,SAIAloF,EAAQs6I,OAAK,yBAAAD,EAAAjwK,OAAA,GAAA2vK,EAAA,KACrB,gBAtD6BS,EAAAC,GAAA,OAAAX,EAAA/pL,MAAA,KAAAH,UAAA,KAsExB0oL,EAAwB,SAACzzK,EAAM3H,GAAI,OACvC2H,GAAQ3H,GAAQjJ,GAAIsiL,EAAa1xK,EAAM3H,IACtCg2K,GAAUwH,IAAa/O,EAAe,EAGnCgP,EAAyC,SAC7Cj/G,EACAggB,EACA8wF,GAAQ,OAERH,GACE3wG,EACA4wG,EAAM3R,GAAA,GAEA8b,EAAO7G,MACP2G,EACA7yH,GAAYg4B,GACZiwF,EACAxjG,GAASzM,GAAM2+E,GAAA,GACZ3+E,EAAQggB,GACXA,GAEN8wF,EACA9wF,EACD,EAaGq8F,EAAgB,SACpBlzK,EACAxT,GAEE,IADFirF,EAAA1sF,UAAAC,OAAA,QAAAq2D,IAAAt2D,UAAA,GAAAA,UAAA,GAA0B,CAAC,EAErBuhF,EAAeh/E,GAAIwiL,EAAS9vK,GAC9BozK,EAAsB5mL,EAE1B,GAAI8/E,EAAO,CACT,IAAMypG,EAAiBzpG,EAAMnqB,GAEzB4zH,KACDA,EAAen+F,UACdxoF,GAAIsiL,EAAa1xK,EAAMsvK,GAAgB9iL,EAAOupL,IAEhD3C,EACE9J,GAAcyM,EAAelhI,MAAQswH,GAAkB34K,GACnD,GACAA,EAEFqiL,GAAiBkH,EAAelhI,KAClCk4E,EAAIgpD,EAAelhI,IAAI4iC,SAAS75D,SAC9B,SAACo4J,GAAS,OACPA,EAAUt+F,SACT07F,EACA95H,SAAS08H,EAAUxpL,MAAM,IAEtBupL,EAAej8E,KACpBmrE,GAAgB8Q,EAAelhI,KACjCkhI,EAAej8E,KAAK9uG,OAAS,EACzB+qL,EAAej8E,KAAKl8E,SAClB,SAACq4J,GAAW,QACRA,EAAYr/F,iBAAmBq/F,EAAYr+F,YAC5Cq+F,EAAYz/F,QAAUvsF,MAAMs0D,QAAQ60H,KAC9BA,EAAkBxgE,MACnB,SAACv6G,GAAY,OAAKA,IAAS49K,EAAYzpL,KAAK,IAE9C4mL,IAAe6C,EAAYzpL,MAAM,IAEzCupL,EAAej8E,KAAK,KACnBi8E,EAAej8E,KAAK,GAAGtjB,UAAY48F,GAExC2C,EAAej8E,KAAKl8E,SAClB,SAACs4J,GAA0B,OACxBA,EAAS1/F,QAAU0/F,EAAS1pL,QAAU4mL,CAAU,IAG9C/J,GAAY0M,EAAelhI,KACpCkhI,EAAelhI,IAAIroD,MAAQ,IAE3BupL,EAAelhI,IAAIroD,MAAQ4mL,EAEtB2C,EAAelhI,IAAIl/C,MACtBo8K,EAAUn3I,OAAOvuC,KAAK,CACpB2T,KAAAA,EACA46B,OAAMk7H,GAAA,GAAO4b,MAKtB,EAEAj6F,EAAQ47F,aAAe57F,EAAQ0+F,cAC9BhD,EACEnzK,EACAozK,EACA37F,EAAQ0+F,YACR1+F,EAAQ47F,aACR,GAGJ57F,EAAQ2+F,gBAAkB5yK,EAAQxD,EACpC,EAEMq2K,EAAY,SAAZA,EAKJr2K,EACAxT,EACAirF,GAEA,IAAK,IAAM6+F,KAAY9pL,EAAO,CAC5B,IAAM4mL,EAAa5mL,EAAM8pL,GACnB1O,EAAY,GAAHh6K,OAAMoS,EAAI,KAAApS,OAAI0oL,GACvBhqG,EAAQh/E,GAAIwiL,EAASlI,IAE1BH,EAAOzhH,MAAM92D,IAAI8Q,IACfouK,GAAYgF,MACZ9mG,GAAUA,EAAMnqB,KAClB+iH,GAAakO,GAEVF,EAActL,EAAWwL,EAAY37F,GADrC4+F,EAAUzO,EAAWwL,EAAY37F,EAEtC,CACH,EAEMrB,EAA0C,SAC9Cp2E,EACAxT,GAEE,IADFirF,EAAO1sF,UAAAC,OAAA,QAAAq2D,IAAAt2D,UAAA,GAAAA,UAAA,GAAG,CAAC,EAELuhF,EAAQh/E,GAAIwiL,EAAS9vK,GACrByqK,EAAehD,EAAOzhH,MAAM92D,IAAI8Q,GAChCu2K,EAAa3Q,GAAYp5K,GAE/B4C,GAAIsiL,EAAa1xK,EAAMu2K,GAEnB9L,GACFsH,EAAU/rH,MAAM35D,KAAK,CACnB2T,KAAAA,EACA46B,OAAMk7H,GAAA,GAAO4b,MAIZ1K,EAAgBmK,SAAWnK,EAAgByK,cAC5Ch6F,EAAQ47F,aAERtB,EAAU7oI,MAAM78C,KAAK,CACnB2T,KAAAA,EACAyxK,YAAapC,GAAevI,EAAgB4K,GAC5CP,QAASsC,EAAUzzK,EAAMu2K,OAI7BjqG,GAAUA,EAAMnqB,IAAOgjH,GAAkBoR,GAErCrD,EAAclzK,EAAMu2K,EAAY9+F,GADhC4+F,EAAUr2K,EAAMu2K,EAAY9+F,GAIlC4sE,GAAUrkJ,EAAMynK,IAAWsK,EAAU7oI,MAAM78C,KAAIypK,GAAC,CAAC,EAAImb,IACrDc,EAAUn3I,OAAOvuC,KAAK,CACpB2T,KAAAA,EACA46B,OAAMk7H,GAAA,GAAO4b,MAEdE,EAAO7G,OAASgG,GACnB,EAEM55H,EAAQ,eAAAq/H,EAAAnM,EAAAC,IAAA7lD,MAAkB,SAAAgyD,EAAOlqF,GAAK,IAAAh2F,EAAAyJ,EAAA02K,EAAApqG,EAAAqqG,EAAAC,EAAAh2H,EAAAwyH,EAAAnK,EAAA4N,EAAAC,EAAAjD,EAAAP,EAAAyD,EAAAhkD,EAAAikD,EAAAC,EAAA,OAAA3M,IAAAjpD,MAAA,SAAA61D,GAAA,cAAAA,EAAAj4D,KAAAi4D,EAAA7qL,MAAA,OAMoB,GALxDkK,EAASg2F,EAAMh2F,OACjByJ,EAAOzJ,EAAOyJ,KACd02K,GAAsB,EACpBpqG,EAAeh/E,GAAIwiL,EAAS9vK,GAC5B22K,EAAuB,WAAH,OACxBpgL,EAAOZ,KAAO85K,GAAcnjG,EAAMnqB,IAAMkjH,GAAc94E,EAAM,GAE1DjgB,EAAO,CAAF4qG,EAAA7qL,KAAA,SA2CF,GAxCC+mL,EAAauD,IACb1N,EACJ18E,EAAM52F,OAASqwK,GAAOC,MAAQ15E,EAAM52F,OAASqwK,GAAOE,UAChD2Q,GACFzG,GAAc9jG,EAAMnqB,MACnB6uH,EAAS2B,WACTrlL,GAAI2jL,EAAWl+C,OAAQ/yH,KACvBssE,EAAMnqB,GAAGm9C,MACZixE,GACEtH,EACA37K,GAAI2jL,EAAWO,cAAexxK,GAC9BixK,EAAWR,YACX2B,EACAD,GAEE2E,EAAUzyB,GAAUrkJ,EAAMynK,EAAQwB,GAExC75K,GAAIsiL,EAAa1xK,EAAMozK,GAEnBnK,GACF38F,EAAMnqB,GAAG0zD,QAAUvpC,EAAMnqB,GAAG0zD,OAAOtpB,GACnCukF,GAAsBA,EAAmB,IAChCxkG,EAAMnqB,GAAGhL,UAClBm1B,EAAMnqB,GAAGhL,SAASo1C,GAGdsnF,EAAaV,EACjBnzK,EACAozK,EACAnK,GACA,GAGIqK,GAAgBrM,GAAc4M,IAAeiD,GAElD7N,GACC8I,EAAUn3I,OAAOvuC,KAAK,CACpB2T,KAAAA,EACArK,KAAM42F,EAAM52F,KACZilC,OAAMk7H,GAAA,GAAO4b,MAGbmF,EAAsB,CAAFK,EAAA7qL,KAAA,SACoB,OAA1C26K,EAAgBpmH,SAAW0xH,IAAe4E,EAAA7zD,OAAA,SAGxCiwD,GACAvB,EAAU7oI,MAAM78C,KAAIypK,GAAC,CAAE91J,KAAAA,GAAU82K,EAAU,CAAC,EAAIjD,KAAc,QAMxC,IAFzB5K,GAAe6N,GAAW/E,EAAU7oI,MAAM78C,KAAIypK,GAAC,CAAC,EAAImb,IAErD8B,GAAoB,IAEhB/B,EAAS2B,SAAU,CAAFuE,EAAA7qL,KAAA,gBAAA6qL,EAAA7qL,KAAA,GACMumL,EAAe,CAAC5yK,IAAM,QAAA+2K,EAAAG,EAAAtqL,KAAvCmmI,EAAMgkD,EAANhkD,OACFikD,EAA4B3G,GAChCY,EAAWl+C,OACX+8C,EACA9vK,GAEIi3K,EAAoB5G,GACxBt9C,EACA+8C,EACAkH,EAA0Bh3K,MAAQA,GAGpCtS,EAAQupL,EAAkBvpL,MAC1BsS,EAAOi3K,EAAkBj3K,KAEzB4gD,EAAUqmH,GAAcl0C,GAAQmkD,EAAA7qL,KAAA,wBAAA6qL,EAAA7qL,KAAA,GAGxB+9K,GACJ99F,EACAolG,EACAW,EACArB,EAASxG,2BACV,QAKiD,GALjD0M,EAAAhK,GACDltK,EAPFtS,EAAKwpL,EAAAtqL,KAAAsqL,EAAAhK,MASLwJ,EACE9wK,MAAMwtK,IACNA,IAAe9lL,GAAIokL,EAAa1xK,EAAMozK,IAEf,CAAF8D,EAAA7qL,KAAA,aACjBqB,EAAO,CAAFwpL,EAAA7qL,KAAA,SACPu0D,GAAU,EAAMs2H,EAAA7qL,KAAA,qBACP26K,EAAgBpmH,QAAS,CAAFs2H,EAAA7qL,KAAA,gBAAA6qL,EAAA7qL,KAAA,GAChBwmL,EAAyB/C,GAAS,GAAK,QAAvDlvH,EAAOs2H,EAAAtqL,KAAA,QAKT8pL,IACFpqG,EAAMnqB,GAAGm9C,MACP97F,EACE8oE,EAAMnqB,GAAGm9C,MAIbs0E,EAAoB5zK,EAAM4gD,EAASlzD,EAAOmmL,IAC3C,yBAAAqD,EAAA3xK,OAAA,GAAAkxK,EAAA,KAEJ,gBApHaU,GAAA,OAAAX,EAAAtrL,MAAA,KAAAH,UAAA,KAsHRyY,EAAO,eAAA4zK,EAAA/M,EAAAC,IAAA7lD,MAAiC,SAAA4yD,EAAOr3K,GAAI,IAAAy3E,EAAA72B,EAAA6rH,EAAA6K,EAAAvkD,EAAAwkD,EAAAxsL,UAAA,OAAAu/K,IAAAjpD,MAAA,SAAAm2D,GAAA,cAAAA,EAAAv4D,KAAAu4D,EAAAnrL,MAAA,OAK7B,GAL+BorF,EAAO8/F,EAAAvsL,OAAA,QAAAq2D,IAAAk2H,EAAA,GAAAA,EAAA,GAAG,CAAC,EAG9DD,EAAahQ,GAAsBtnK,GAEzC+yK,GAAoB,IAEhB/B,EAAS2B,SAAU,CAAF6E,EAAAnrL,KAAA,gBAAAmrL,EAAAnrL,KAAA,EACEkoL,EACnB11H,GAAY7+C,GAAQA,EAAOs3K,GAC5B,OAFKvkD,EAAMykD,EAAA5qL,KAIZg0D,EAAUqmH,GAAcl0C,GACxB05C,EAAmBzsK,GACds3K,EAAWn5H,MAAK,SAACn+C,GAAI,OAAK1S,GAAIylI,EAAQ/yH,EAAK,IAC5C4gD,EAAQ42H,EAAAnrL,KAAA,qBACH2T,EAAM,CAAFw3K,EAAAnrL,KAAA,gBAAAmrL,EAAAnrL,KAAA,GAELF,QAAQkyH,IACZi5D,EAAWtgI,IAAG,eAAAygI,EAAApN,EAAAC,IAAA7lD,MAAC,SAAAizD,EAAO9P,GAAS,IAAAt7F,EAAA,OAAAg+F,IAAAjpD,MAAA,SAAAs2D,GAAA,cAAAA,EAAA14D,KAAA04D,EAAAtrL,MAAA,OACQ,OAA/BigF,EAAQh/E,GAAIwiL,EAASlI,GAAU+P,EAAAtrL,KAAA,EACxBwmL,EACXvmG,GAASA,EAAMnqB,GAAEqzF,GAAA,GAAMoyB,EAAYt7F,GAAUA,GAC9C,cAAAqrG,EAAAt0D,OAAA,SAAAs0D,EAAA/qL,MAAA,wBAAA+qL,EAAApyK,OAAA,GAAAmyK,EAAA,KACF,gBAAAE,GAAA,OAAAH,EAAAvsL,MAAA,KAAAH,UAAA,EALa,KAMf,UARH0hL,EAAgB+K,EAAA5qL,KASdu+H,MAAMnE,WACgBiqD,EAAWrwH,UAAY0xH,IAAekF,EAAAnrL,KAAA,wBAAAmrL,EAAAnrL,KAAA,GAE3BwmL,EAAyB/C,GAAQ,QAApErD,EAAmB7rH,EAAO42H,EAAA5qL,KAAA,QAmBxB,OAhBJmlL,EAAU7oI,MAAM78C,KAAIypK,GAAAA,GAAAA,GAAC,CAAC,GACfxyF,GAAStjE,IACbgnK,EAAgBpmH,SAAWA,IAAYqwH,EAAWrwH,QAC/C,CAAC,EACD,CAAE5gD,KAAAA,IACFgxK,EAAS2B,WAAa3yK,EAAO,CAAE4gD,QAAAA,GAAY,CAAC,GAAC,IACjDmyE,OAAQk+C,EAAWl+C,OACnBs+C,cAAc,KAGhB55F,EAAQogG,cACLpL,GACDnE,GACEwH,GACA,SAACh3I,GAAG,OAAKA,GAAOxrC,GAAI2jL,EAAWl+C,OAAQj6F,EAAI,GAC3C94B,EAAOs3K,EAAa7P,EAAOsD,OAC3ByM,EAAAn0D,OAAA,SAEGopD,GAAgB,yBAAA+K,EAAAjyK,OAAA,GAAA8xK,EAAA,KACxB,gBAnDYS,GAAA,OAAAV,EAAAlsL,MAAA,KAAAH,UAAA,KAqDP8qL,EAA4C,SAChDyB,GAIA,IAAM18I,EAAMk7H,GAAAA,GAAA,GACPgR,GACC8K,EAAO7G,MAAQ2G,EAAc,CAAC,GAGpC,OAAO7yH,GAAYy4H,GACf18I,EACA0oC,GAASg0G,GACThqL,GAAIstC,EAAQ08I,GACZA,EAAWtgI,KAAI,SAACh3C,GAAI,OAAK1S,GAAIstC,EAAQ56B,EAAK,GAChD,EAEM+3K,EAAoD,SACxD/3K,EACAymK,GAAS,MACL,CACJpjG,UAAW/1E,IAAKm5K,GAAawK,GAAYl+C,OAAQ/yH,GACjDmxK,UAAW7jL,IAAKm5K,GAAawK,GAAYQ,YAAazxK,GACtDwwK,YAAaljL,IAAKm5K,GAAawK,GAAYO,cAAexxK,GAC1DtS,MAAOJ,IAAKm5K,GAAawK,GAAYl+C,OAAQ/yH,GAC9C,EAuDKg4K,EAA8C,SAACh4K,GAAsB,IACAi4K,EADhBxgG,EAAO1sF,UAAAC,OAAA,QAAAq2D,IAAAt2D,UAAA,GAAAA,UAAA,GAAG,CAAC,EAACmtL,EAAA7rD,EAC7CrsH,EAAOsnK,GAAsBtnK,GAAQynK,EAAOsD,OAAK,IAAzE,IAAAmN,EAAA1sL,MAAAysL,EAAAC,EAAAzsL,KAAAc,MAA2E,KAAhEq7K,EAASqQ,EAAAzrL,MAClBi7K,EAAOsD,MAAMtoF,OAAOmlF,GACpBH,EAAOzhH,MAAMy8B,OAAOmlF,GAEfnwF,EAAQ0gG,YACXzK,GAAMoC,EAASlI,GACf8F,GAAMgE,EAAa9J,KAGpBnwF,EAAQ2gG,WAAa1K,GAAMuD,EAAWl+C,OAAQ60C,IAC9CnwF,EAAQ4gG,WAAa3K,GAAMuD,EAAWQ,YAAa7J,IACnDnwF,EAAQ6gG,aAAe5K,GAAMuD,EAAWO,cAAe5J,IACvDoJ,EAASW,mBACPl6F,EAAQ8gG,kBACT7K,GAAM5G,EAAgBc,EACzB,QAAAt2F,GAAA4mG,EAAAruL,EAAAynF,EAAA,SAAA4mG,EAAA5+K,GAAA,CAEDy4K,EAAUn3I,OAAOvuC,KAAK,CACpBuuC,OAAMk7H,GAAA,GAAO4b,KAGfK,EAAU7oI,MAAM78C,KAAIypK,GAAAA,GAAC,CAAC,EACjBmb,GACEx5F,EAAQ4gG,UAAiB,CAAElH,QAASsC,KAAhB,CAAC,KAG3Bh8F,EAAQ+gG,aAAelG,GAC1B,EAEMmG,EAA0C,SAA1CA,EAA2Cz4K,GAAsB,IAAhBy3E,EAAO1sF,UAAAC,OAAA,QAAAq2D,IAAAt2D,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC5DuhF,EAAQh/E,GAAIwiL,EAAS9vK,GACnB04K,EAAoB/6C,GAAUlmD,EAAQG,UAwB5C,OAtBAxoF,GAAI0gL,EAAS9vK,EAAI81J,GAAAA,GAAA,GACXxpF,GAAS,CAAC,GAAC,IACfnqB,GAAE2zG,GAAAA,GAAA,GACIxpF,GAASA,EAAMnqB,GAAKmqB,EAAMnqB,GAAK,CAAEtN,IAAK,CAAE70C,KAAAA,KAAQ,IACpDA,KAAAA,EACA+qK,OAAO,GACJtzF,MAGPgwF,EAAOsD,MAAMt6I,IAAIzwB,GAEjBssE,EACIosG,GACAtpL,GACEsiL,EACA1xK,EACAy3E,EAAQG,cACJv2B,EACA/zD,GAAIokL,EAAa1xK,EAAMyvK,GAAcnjG,EAAMnqB,MAEjD6wH,EAAoBhzK,GAAM,EAAMy3E,EAAQjrF,OAE5CspK,GAAAA,GAAAA,GAAA,GACM4iB,EAAoB,CAAE9gG,SAAUH,EAAQG,UAAa,CAAC,GACtDo5F,EAASxG,0BACT,CACE39C,WAAYp1C,EAAQo1C,SACpB54H,IAAKi8K,GAAaz4F,EAAQxjF,KAC1BF,IAAKm8K,GAAaz4F,EAAQ1jF,KAC1B62K,UAAWsF,GAAqBz4F,EAAQmzF,WACxCD,UAAWuF,GAAaz4F,EAAQkzF,WAChCz8C,QAASgiD,GAAaz4F,EAAQy2C,UAEhC,CAAC,GAAC,IACNluH,KAAAA,EACAm3C,SAAAA,EACA0+D,OAAQ1+D,EACRtC,IAAK,SAAF8jI,GAAA,SAAA9jI,EAAA+jI,GAAA,OAAAD,EAAAztL,MAAA,KAAAH,UAAA,QAAA8pD,EAAAz9C,SAAA,kBAAAuhL,EAAAvhL,UAAA,EAAAy9C,CAAA,CAAE,WAACA,GACJ,GAAIA,EAAK,CACP4jI,EAASz4K,EAAMy3E,GACfnL,EAAQh/E,GAAIwiL,EAAS9vK,GAErB,IAAM64K,EAAWh6H,GAAYhK,EAAIroD,QAC7BqoD,EAAIz2B,kBACDy2B,EAAIz2B,iBAAiB,yBAAyB,IAEjDy2B,EACEikI,EAAkB1N,GAAkByN,GACpC/+E,EAAOxtB,EAAMnqB,GAAG23C,MAAQ,GAE9B,GACEg/E,EACIh/E,EAAK8Y,MAAK,SAACguB,GAAW,OAAKA,IAAWi4C,CAAQ,IAC9CA,IAAavsG,EAAMnqB,GAAGtN,IAE1B,OAGFzlD,GAAI0gL,EAAS9vK,EAAM,CACjBmiD,GAAE2zG,GAAAA,GAAA,GACGxpF,EAAMnqB,IACL22H,EACA,CACEh/E,KAAM,GAAFlsG,OAAAm/H,EACCjzB,EAAKh/E,OAAOg0J,KAAK,CACpB+J,GAAQ9rD,EACJ9iI,MAAMs0D,QAAQjxD,GAAIw5K,EAAgB9mK,IAAS,CAAC,CAAC,GAAK,KAExD60C,IAAK,CAAEl/C,KAAMkjL,EAASljL,KAAMqK,KAAAA,IAE9B,CAAE60C,IAAKgkI,MAIf7F,EAAoBhzK,GAAM,OAAOqhD,EAAWw3H,EAC7C,MACCvsG,EAAQh/E,GAAIwiL,EAAS9vK,EAAM,CAAC,IAElBmiD,KACRmqB,EAAMnqB,GAAG4oH,OAAQ,IAGlBiG,EAASW,kBAAoBl6F,EAAQk6F,qBAClCrM,GAAmBmC,EAAOzhH,MAAOhmD,KAAS4xK,EAAOxzE,SACnDqpE,EAAOoK,QAAQphJ,IAAIzwB,OAI7B,EAEM+4K,EAAc,WAAH,OACf/H,EAASJ,kBACTtI,GACEwH,GACA,SAACh3I,GAAG,OAAKA,GAAOxrC,GAAI2jL,EAAWl+C,OAAQj6F,EAAI,GAC3C2uI,EAAOsD,MACR,EA2EGiO,EAAqC,SACzCtR,GAEE,IADFuR,EAAgBluL,UAAAC,OAAA,QAAAq2D,IAAAt2D,UAAA,GAAAA,UAAA,GAAG,CAAC,EAEdmuL,EAAgBxR,GAAcZ,EAC9BqS,EAAqBvT,GAAYsT,GACjCt+I,EACJ8sI,IAAeT,GAAcS,GACzByR,EACArS,EAMN,GAJKmS,EAAiBG,oBACpBtS,EAAiBoS,IAGdD,EAAiBI,WAAY,CAChC,GAAIJ,EAAiB/G,iBAAmBF,EAA0B,KAC5BsH,EAD4BC,EAAAltD,EACxCo7C,EAAOsD,OAAK,IAApC,IAAAwO,EAAA/tL,MAAA8tL,EAAAC,EAAA9tL,KAAAc,MAAsC,KAA3Bq7K,EAAS0R,EAAA9sL,MAClBc,GAAI2jL,EAAWQ,YAAa7J,GACxBx4K,GAAIwrC,EAAQgtI,EAAWt6K,GAAIokL,EAAa9J,IACxCxxF,EACEwxF,EACAt6K,GAAIstC,EAAQgtI,GAEnB,QAAAt2F,GAAAioG,EAAA1vL,EAAAynF,EAAA,SAAAioG,EAAAjgL,GAAA,CACF,KAAM,CACL,GAAIosK,IAAS7mH,GAAY6oH,GAAa,KACL8R,EADKC,EAAAptD,EACjBo7C,EAAOsD,OAAK,IAA/B,IAAA0O,EAAAjuL,MAAAguL,EAAAC,EAAAhuL,KAAAc,MAAiC,KAAtByT,EAAIw5K,EAAAhtL,MACP8/E,EAAQh/E,GAAIwiL,EAAS9vK,GAC3B,GAAIssE,GAASA,EAAMnqB,GAAI,CACrB,IAAM4zH,EAAiB9rL,MAAMs0D,QAAQ+tB,EAAMnqB,GAAG23C,MAC1CxtB,EAAMnqB,GAAG23C,KAAK,GACdxtB,EAAMnqB,GAAGtN,IAEb,GAAIy0H,GAAcyM,GAAiB,CACjC,IAAMtoE,EAAOsoE,EAAe2D,QAAQ,QACpC,GAAIjsE,EAAM,CACRA,EAAKv+F,QACL,KACD,CACF,CACF,CACF,QAAAoiE,GAAAmoG,EAAA5vL,EAAAynF,EAAA,SAAAmoG,EAAAngL,GAAA,CACF,CAEDw2K,EAAU,CAAC,CACZ,CAED4B,EAAcxhK,EAAMyhK,iBAChBsH,EAAiBG,kBACfxT,GAAYkB,GACZ,CAAC,EACHqS,EAEJpH,EAAU/rH,MAAM35D,KAAK,CACnBuuC,OAAMk7H,GAAA,GAAOl7H,KAGfm3I,EAAUn3I,OAAOvuC,KAAK,CACpBuuC,OAAMk7H,GAAA,GAAOl7H,IAEhB,CAED6sI,EAAS,CACPsD,MAAO,IAAIr4F,IACXm/F,QAAS,IAAIn/F,IACb1sB,MAAO,IAAI0sB,IACX6uE,MAAO,IAAI7uE,IACXm1F,UAAU,EACVj4E,MAAO,KAGRgiF,EAAO7G,OAASgG,IAEjBa,EAAO7G,OAAS/D,EAAgBpmH,WAAaq4H,EAAiBT,YAE9D5G,EAAOrwB,QAAUrxI,EAAMyhK,iBAEvBI,EAAU7oI,MAAM78C,KAAK,CACnB6kL,YAAa+H,EAAiBU,gBAC1B1I,EAAWC,YACX,EACJC,QAAS8H,EAAiBZ,UACtBpH,EAAWE,WAET8H,EAAiBG,mBAChB/K,GAAU3G,EAAYZ,IAE7B2J,cAAawI,EAAiBW,iBAC1B3I,EAAWR,YAEfgB,YAAawH,EAAiB/G,gBAC1BjB,EAAWQ,YACXwH,EAAiBG,mBAAqB1R,EACtC2H,GAAevI,EAAgBY,GAC/B,CAAC,EACL8J,cAAeyH,EAAiBX,YAC5BrH,EAAWO,cACX,CAAC,EACLz+C,OAAQkmD,EAAiBY,WAAa5I,EAAWl+C,OAAS,CAAC,EAC3Du+C,cAAc,EACdC,oBAAoB,GAExB,EAEMriK,EAAoC,SAACw4J,EAAYuR,GAAgB,OACrED,EACEx1H,GAAWkkH,GACPA,EAAWgK,GACXhK,EACJuR,EACD,EAoCH,OATIz1H,GAAWwtH,EAASnK,gBACtBmK,EAASnK,gBAAgBp6K,MAAK,SAACmuC,GAC7B1rB,EAAM0rB,EAAQo2I,EAASiB,cACvBF,EAAU7oI,MAAM78C,KAAK,CACnB+kL,WAAW,GAEf,IAGK,CACL1K,QAAS,CACP+R,SAAAA,EACAT,WAAAA,EACAD,cAAAA,EACAnF,eAAAA,EACAkD,UAAAA,EACArC,UAAAA,EACAnB,aAAAA,EACAwH,iBAjyBqB,WAAK,IACKC,EADLC,EAAA3tD,EACTo7C,EAAOoK,SAAO,IAAjC,IAAAmI,EAAAxuL,MAAAuuL,EAAAC,EAAAvuL,KAAAc,MAAmC,KAAxByT,EAAI+5K,EAAAvtL,MACP8/E,EAAeh/E,GAAIwiL,EAAS9vK,GAElCssE,IACGA,EAAMnqB,GAAG23C,KACNxtB,EAAMnqB,GAAG23C,KAAKqxB,OAAM,SAACt2E,GAAG,OAAMi6H,GAAKj6H,EAAI,KACtCi6H,GAAKxiG,EAAMnqB,GAAGtN,OACnBmjI,EAAWh4K,EACd,QAAAsxE,GAAA0oG,EAAAnwL,EAAAynF,EAAA,SAAA0oG,EAAA1gL,GAAA,CAEDmuK,EAAOoK,QAAU,IAAIn/F,GACvB,EAsxBIunG,kBA9jC6C,SAC/Cj6K,GAME,IALF46B,EAAM7vC,UAAAC,OAAA,QAAAq2D,IAAAt2D,UAAA,GAAAA,UAAA,GAAG,GACTu3H,EAAMv3H,UAAAC,OAAA,EAAAD,UAAA,QAAAs2D,EACN8B,EAAIp4D,UAAAC,OAAA,EAAAD,UAAA,QAAAs2D,EACJ64H,IAAenvL,UAAAC,OAAA,QAAAq2D,IAAAt2D,UAAA,KAAAA,UAAA,GACfovL,IAA0BpvL,UAAAC,OAAA,QAAAq2D,IAAAt2D,UAAA,KAAAA,UAAA,GAE1B,GAAIo4D,GAAQm/D,EAAQ,CAElB,GADAsvD,EAAOxzE,QAAS,EACZ+7E,GAA8BlwL,MAAMs0D,QAAQjxD,GAAIwiL,EAAS9vK,IAAQ,CACnE,IAAMo6K,EAAc93D,EAAOh1H,GAAIwiL,EAAS9vK,GAAOmjD,EAAKk3H,KAAMl3H,EAAKm3H,MAC/DJ,GAAmB9qL,GAAI0gL,EAAS9vK,EAAMo6K,EACvC,CAED,GACED,GACAlwL,MAAMs0D,QAAQjxD,GAAI2jL,EAAWl+C,OAAQ/yH,IACrC,CACA,IAAM+yH,EAASzQ,EACbh1H,GAAI2jL,EAAWl+C,OAAQ/yH,GACvBmjD,EAAKk3H,KACLl3H,EAAKm3H,MAEPJ,GAAmB9qL,GAAI6hL,EAAWl+C,OAAQ/yH,EAAM+yH,GAChD49C,GAAgBM,EAAWl+C,OAAQ/yH,EACpC,CAED,GACEgnK,EAAgBwK,eAChB2I,GACAlwL,MAAMs0D,QAAQjxD,GAAI2jL,EAAWO,cAAexxK,IAC5C,CACA,IAAMwxK,EAAgBlvD,EACpBh1H,GAAI2jL,EAAWO,cAAexxK,GAC9BmjD,EAAKk3H,KACLl3H,EAAKm3H,MAEPJ,GAAmB9qL,GAAI6hL,EAAWO,cAAexxK,EAAMwxK,EACxD,CAEGxK,EAAgByK,cAClBR,EAAWQ,YAAcpC,GAAevI,EAAgB4K,IAG1DK,EAAU7oI,MAAM78C,KAAK,CACnB2T,KAAAA,EACAmxK,QAASsC,EAAUzzK,EAAM46B,GACzB62I,YAAaR,EAAWQ,YACxB1+C,OAAQk+C,EAAWl+C,OACnBnyE,QAASqwH,EAAWrwH,SAEvB,MACCxxD,GAAIsiL,EAAa1xK,EAAM46B,EAE3B,EAwgCI2/I,eA3vBmB,SACrBv6K,GAAuB,OAEvB+lK,GACEz4K,GACEskL,EAAO7G,MAAQ2G,EAAc5K,EAC7B9mK,EACAkQ,EAAMyhK,iBAAmBrkL,GAAIw5K,EAAgB9mK,EAAM,IAAM,IAE5D,EAmvBCg5K,OAAAA,EACAwB,iBA/BqB,SACvBtG,GAEAjD,EAAUnb,GAAAA,GAAA,GACLmb,GACAiD,EAEP,EAyBInC,UAAAA,EACA/K,gBAAAA,EACI8I,cACF,OAAOA,GAEL4B,kBACF,OAAOA,GAELE,aACF,OAAOA,GAELA,WAAOplL,GACTolL,EAASplL,GAEPs6K,qBACF,OAAOA,GAELW,aACF,OAAOA,GAELA,WAAOj7K,GACTi7K,EAASj7K,GAEPykL,iBACF,OAAOA,GAELA,eAAWzkL,GACbykL,EAAazkL,GAEXwkL,eACF,OAAOA,GAELA,aAASxkL,GACXwkL,EAAQlb,GAAAA,GAAA,GACHkb,GACAxkL,KAITgX,QAAAA,EACAi1K,SAAAA,EACAgC,aAlRA,SAACC,EAASC,GAAS,sBAAAC,EAAAvQ,EAAAC,IAAA7lD,MAAK,SAAAo2D,EAAOhxL,GAAC,IAAAuwL,EAAAU,EAAA/nD,EAAAn4F,EAAA,OAAA0vI,IAAAjpD,MAAA,SAAA05D,GAAA,cAAAA,EAAA97D,KAAA87D,EAAA1uL,MAAA,OAS3B,GARCxC,IACFA,EAAEw7F,gBAAkBx7F,EAAEw7F,iBACtBx7F,EAAE07F,SAAW17F,EAAE07F,WAEb60F,EAAcxU,GAAY8L,GAE9BK,EAAU7oI,MAAM78C,KAAK,CACnBilL,cAAc,KAGZN,EAAS2B,SAAU,CAAFoI,EAAA1uL,KAAA,gBAAA0uL,EAAA1uL,KAAA,EACcumL,IAAgB,OAAAkI,EAAAC,EAAAnuL,KAAzCmmI,EAAM+nD,EAAN/nD,OAAQn4F,EAAMkgJ,EAANlgJ,OAChBq2I,EAAWl+C,OAASA,EACpBqnD,EAAcx/I,EAAOmgJ,EAAA1uL,KAAA,wBAAA0uL,EAAA1uL,KAAA,GAEfwmL,EAAyB/C,GAAQ,QAGR,GAAjCpC,GAAMuD,EAAWl+C,OAAQ,SAErBk0C,GAAcgK,EAAWl+C,QAAS,CAAFgoD,EAAA1uL,KAAA,SAG/B,OAFH0lL,EAAU7oI,MAAM78C,KAAK,CACnB0mI,OAAQ,CAAC,IACRgoD,EAAA1uL,KAAA,GACGquL,EAAQN,EAA6BvwL,GAAE,QAAAkxL,EAAA1uL,KAAA,qBAEzCsuL,EAAW,CAAFI,EAAA1uL,KAAA,gBAAA0uL,EAAA1uL,KAAA,GACLsuL,EAAS7kB,GAAC,CAAC,EAAImb,EAAWl+C,QAAUlpI,GAAE,QAE9CkvL,IACAl0K,WAAWk0K,GAAa,QAG1BhH,EAAU7oI,MAAM78C,KAAK,CACnBokL,aAAa,EACba,cAAc,EACdC,mBAAoBtK,GAAcgK,EAAWl+C,QAC7Cm+C,YAAaD,EAAWC,YAAc,EACtCn+C,OAAQk+C,EAAWl+C,SAClB,yBAAAgoD,EAAAx1K,OAAA,GAAAs1K,EAAA,KACJ,gBAAAG,GAAA,OAAAJ,EAAA1vL,MAAA,KAAAH,UAAA,EAzCkB,EAyClB,EA0ODw2J,MAjbwC,SACxCvhJ,EAIA62E,GAAwC,OAExCrzB,GAAWxjD,GACP+xK,EAAUn3I,OAAOm+F,UAAU,CACzB1sI,KAAM,SAAC0P,GAAO,OACZiE,EACE81K,OAAUz0H,EAAWw1B,GACrB96E,EAKD,IAEL+5K,EACE91K,EACA62E,GACA,EACD,EA2ZLT,SAAAA,EACAy/F,UAAAA,EACA3mK,MAAAA,EACA+rK,WA5OkD,SAACj7K,GAAsB,IAAhBy3E,EAAO1sF,UAAAC,OAAA,QAAAq2D,IAAAt2D,UAAA,GAAAA,UAAA,GAAG,CAAC,EAChEuC,GAAIwiL,EAAS9vK,KACX6+C,GAAY44B,EAAQZ,cACtBT,EAASp2E,EAAM1S,GAAIw5K,EAAgB9mK,KAEnCo2E,EAASp2E,EAAMy3E,EAAQZ,cACvBznF,GAAI03K,EAAgB9mK,EAAMy3E,EAAQZ,eAG/BY,EAAQ6gG,aACX5K,GAAMuD,EAAWO,cAAexxK,GAG7By3E,EAAQ4gG,YACX3K,GAAMuD,EAAWQ,YAAazxK,GAC9BixK,EAAWE,QAAU15F,EAAQZ,aACzB48F,EAAUzzK,EAAM1S,GAAIw5K,EAAgB9mK,IACpCyzK,KAGDh8F,EAAQ2gG,YACX1K,GAAMuD,EAAWl+C,OAAQ/yH,GACzBgnK,EAAgBpmH,SAAW0xH,KAG7BP,EAAU7oI,MAAM78C,KAAIypK,GAAC,CAAC,EAAImb,IAE9B,EAkNEiK,YAldoD,SAACl7K,GACrDA,GACEsnK,GAAsBtnK,GAAM4d,SAAQ,SAACu9J,GAAS,OAC5CzN,GAAMuD,EAAWl+C,OAAQooD,EAAU,IAGvCpJ,EAAU7oI,MAAM78C,KAAK,CACnB0mI,OAAQ/yH,EAAOixK,EAAWl+C,OAAS,CAAC,GAExC,EA0cEilD,WAAAA,EACAoD,SAzc8C,SAACp7K,EAAMtS,EAAO+pF,GAC5D,IAAM5iC,GAAOvnD,GAAIwiL,EAAS9vK,EAAM,CAAEmiD,GAAI,CAAC,IAAKA,IAAM,CAAC,GAAGtN,IAEtDzlD,GAAI6hL,EAAWl+C,OAAQ/yH,EAAI81J,GAAAA,GAAA,GACtBpoK,GAAK,IACRmnD,IAAAA,KAGFk9H,EAAU7oI,MAAM78C,KAAK,CACnB2T,KAAAA,EACA+yH,OAAQk+C,EAAWl+C,OACnBnyE,SAAS,IAGX62B,GAAWA,EAAQogG,aAAehjI,GAAOA,EAAI+6C,OAAS/6C,EAAI+6C,OAC5D,EA2bEyrF,SAlG8C,SAACr7K,GAAsB,IAAhBy3E,EAAO1sF,UAAAC,OAAA,QAAAq2D,IAAAt2D,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC1DuhF,EAAQh/E,GAAIwiL,EAAS9vK,GACrB+1K,EAAiBzpG,GAASA,EAAMnqB,GAEtC,GAAI4zH,EAAgB,CAClB,IAAM8C,EAAW9C,EAAej8E,KAC5Bi8E,EAAej8E,KAAK,GACpBi8E,EAAelhI,IAEfgkI,EAASjpF,QACXipF,EAASjpF,QACTnY,EAAQ6jG,cAAgBzC,EAAS0C,SAEpC,CACH,EAqFExD,cAAAA,EAEJ,CC/vCgB,SAAAyD,KAIkC,IAAhDtrK,EAAAnlB,UAAAC,OAAA,QAAAq2D,IAAAt2D,UAAA,GAAAA,UAAA,GAA8C,CAAC,EAEzC0wL,EAAe5nI,EAAAA,SAkBnB6nI,EAAAjtD,EAfmC56E,EAAAA,SAAwC,CAC3Es9H,SAAS,EACTE,cAAc,EACdD,UAAW5tH,GAAWtzC,EAAM22J,eAC5B4J,aAAa,EACba,cAAc,EACdC,oBAAoB,EACpB3wH,SAAS,EACTswH,YAAa,EACbO,YAAa,CAAC,EACdD,cAAe,CAAC,EAChBz+C,OAAQ,CAAC,EACT8zC,cAAerjH,GAAWtzC,EAAM22J,oBAC5BxlH,EACAnxC,EAAM22J,gBACV,GAfKJ,EAASiV,EAAA,GAAEtU,EAAesU,EAAA,GAiB5BD,EAAa98F,UAChB88F,EAAa98F,QAAOm3E,GAAAA,GAAA,GACf+a,GAAkB3gK,GAAO,kBAC1Bk3J,GAAgB,SAACX,GAAS,OAAA3Q,GAAA,GAAW2Q,EAAS,GAAI,KACnD,IACDA,UAAAA,KAIJ,IAAMC,EAAU+U,EAAa98F,QAAQ+nF,QA2CrC,OA1CAA,EAAQsK,SAAW9gK,EAEnBq3J,GAAa,CACXxqB,QAAS2pB,EAAQqL,UAAU7oI,MAC3B78C,KAAM,SACJG,GAGE06K,GACE16K,EACAk6K,EAAQM,gBACRN,EAAQ8T,kBACR,IAGFpT,EAAetR,GAAC,CAAC,EAAI4Q,EAAQuK,gBAKnCp9H,EAAAA,WAAgB,WACV3jC,EAAM0qB,SAAWyzI,GAAUn+J,EAAM0qB,OAAQ8rI,EAAQI,iBACnDJ,EAAQsS,OAAO9oK,EAAM0qB,OAAQ8rI,EAAQsK,SAASiB,gBAE/C,CAAC/hK,EAAM0qB,OAAQ8rI,IAElB7yH,EAAAA,WAAgB,WACT6yH,EAAQkL,OAAO7G,QAClBrE,EAAQ4L,eACR5L,EAAQkL,OAAO7G,OAAQ,GAGrBrE,EAAQkL,OAAOrwB,QACjBmlB,EAAQkL,OAAOrwB,OAAQ,EACvBmlB,EAAQqL,UAAU7oI,MAAM78C,KAAIypK,GAAC,CAAC,EAAI4Q,EAAQuK,cAG5CvK,EAAQoT,kBACV,IAEA2B,EAAa98F,QAAQ8nF,UAAYD,GAAkBC,EAAWC,GAEvD+U,EAAa98F,OACtB,CC5HA,IA4nCIg9F,GAAa,CACf91G,OAAQ,MACRg3E,SAAU,YACVxlG,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,swBAwN3BukI,GAAe,CACjB/1G,OAAQ,MACRg3E,SAAU,cACVxlG,KAAM,CAAC,IAAK,IAAK,CAAC,MAAO,OAAQ,8KAqhC/BwkI,GAAgB,CAClBh2G,OAAQ,MACRg3E,SAAU,eACVxlG,KAAM,CAAC,IAAK,IAAK,CAAC,MAAO,gBAAiB,OAAQ,sOAEhDykI,GAAgBD,GAwnChBE,GAAW,CACbl2G,OAAQ,MACRg3E,SAAU,SACVxlG,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,qOA2N3B2kI,GAAQ,CACVn2G,OAAQ,MACRg3E,SAAU,MACVxlG,KAAM,CAAC,IAAK,IAAK,CAAC,QAAS,OAAQ,ikBA6WjC4kI,GAAc,CAChBp2G,OAAQ,MACRg3E,SAAU,aACVxlG,KAAM,CAAC,IAAK,IAAK,CAAC,MAAO,OAAQ,iOA4P/B6kI,GAAe,CACjBr2G,OAAQ,MACRg3E,SAAU,cACVxlG,KAAM,CAAC,IAAK,IAAK,CAAC,eAAgB,OAAQ,iQAimBxC8kI,GAAa,CACft2G,OAAQ,MACRg3E,SAAU,WACVxlG,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,2ZAkhC3B+kI,GAAU,CACZv2G,OAAQ,MACRg3E,SAAU,QACVxlG,KAAM,CAAC,IAAK,IAAK,CAAC,OAAQ,MAAO,MAAO,MAAO,IAAK,QAAS,WAAY,SAAU,SAAU,OAAQ,2RAEnGglI,GAAUD,GC76LDE,GAAS,0CACTC,GAAc,iDACdC,GAAS,0BAaTC,GAAY,eAAA7zD,EAAAyhD,EAAAC,IAAA7lD,MAAG,SAAA8lD,EAC1B1M,EACA6e,EACAC,EACAC,EACAC,EACAC,EACA/uD,EACAtoE,GAAK,IAAAtqD,EAAA,OAAAmvK,IAAAjpD,MAAA,SAAA3rC,GAAA,cAAAA,EAAAupC,KAAAvpC,EAAArpF,MAAA,OAO6B,OAP7BqpF,EAAAupC,KAAA,EAOHxgG,QAAQ8hE,IAAIwtC,EAAQ8vC,GAAYnoF,EAAArpF,KAAA,EAETqoJ,GAAAA,IAUrB4nC,GAAS,mBACT,CACEvuD,OAAQ,CACNgvD,YAAoB,OAANhvD,QAAM,IAANA,OAAM,EAANA,EAAQgvD,YACtBC,YAAoB,OAANjvD,QAAM,IAANA,OAAM,EAANA,EAAQivD,YACtBC,aAAoB,OAANlvD,QAAM,IAANA,OAAM,EAANA,EAAQkvD,aAEtBC,WAAkB,OAANnvD,QAAM,IAANA,OAAM,EAANA,EAAQmvD,WACpBC,UAAiB,OAANpvD,QAAM,IAANA,OAAM,EAANA,EAAQovD,UACnBC,QAAe,OAANrvD,QAAM,IAANA,OAAM,EAANA,EAAQqvD,QACjBC,YAAaxf,KAGjB,KAAD,EAG+C,GA1B1C1iK,EAAQu6E,EAAA9oF,KA0Bd6xB,QAAQ8hE,IAAI,yBAA0BplF,GAEd,MAApBA,EAASM,OAAc,CAAAi6E,EAAArpF,KAAA,eAAAqpF,EAAA2tC,OAAA,SAClB,CACL31H,MAAO,KACP2K,KAAM,CACJulK,WAAYziK,EAAS9C,KAAKA,KAAK,GAAGilL,mBAClCle,SAAUjkK,EAAS9C,KAAKA,KAAK,GAAGilL,mBAChClgB,MACEn6J,SAAS65K,GAAc,GACvB75K,SAAS9H,EAAS9C,KAAKA,KAAK,GAAGilL,oBAAsB,EACjD9pL,KAAKoB,OACDgoL,EAASzf,OACThiK,EAAS9C,KAAKA,KAAK,GAAGilL,mBACtBr6K,SAAS65K,IACTD,EAAUnf,WACV,KAEI,OAARkf,QAAQ,IAARA,OAAQ,EAARA,EAAUxf,MAChBptF,MACE/sE,SAAS65K,GAAc,GACvB75K,SAAS9H,EAAS9C,KAAKA,KAAK,GAAGilL,oBAAsB,EACjD9pL,KAAKoB,MACHgoL,EAASzf,OACPhiK,EAAS9C,KAAKA,KAAK,GAAGilL,mBACtBr6K,SAAS65K,IACPF,EAASzf,OACThiK,EAAS9C,KAAKA,KAAK,GAAGilL,mBACtBr6K,SAAS65K,IACTD,EAAUnf,WACV,KAENkf,EAASW,MACfjgB,QAAkB,OAATuf,QAAS,IAATA,OAAS,EAATA,EAAWvf,QACpBD,QAAkB,OAATwf,QAAS,IAATA,OAAS,EAATA,EAAWxf,QACpBQ,WAAY1iK,EAAS9C,KAAKA,KAAK,GAAGwlK,WAClCC,SAAU3iK,EAAS9C,KAAKA,KAAK,GAAGmlL,IAChCC,cAAuB,OAARtiL,QAAQ,IAARA,OAAQ,EAARA,EAAU9C,KAAKA,QAEjC,OAAAq9E,EAAArpF,KAAA,iBAKH,GALGqpF,EAAAupC,KAAA,GAAAvpC,EAAAw3F,GAAAx3F,EAAA,SAGHj3D,QAAQ8hE,IAAI,6BAAyB7K,EAAAw3F,IAIF,oBAA/Bx3F,EAAAw3F,GAAM/xK,SAAS9C,KAAKopG,QAA6B,CAAA/rB,EAAArpF,KAAA,gBAAAqpF,EAAA2tC,OAAA,SAC5C,CACL31H,OAAO,EACP2K,KAAM,CAGJ+kK,MACEn6J,SAAS65K,GAAc,EACnBtpL,KAAKoB,OACDgoL,EAASzf,OAASl6J,SAAS65K,IAC3BD,EAAUnf,WACV,KAEJmf,EAAUvf,QAChBttF,MACE/sE,SAAS65K,GAAc,EACnBtpL,KAAKoB,MACHgoL,EAASzf,OACPl6J,SAAS65K,IACPF,EAASzf,OAASl6J,SAAS65K,IAC3BD,EAAUnf,WACV,KAENmf,EAAUxf,QAChBC,QAASuf,EAAUvf,QACnBD,QAASwf,EAAUxf,QACnBQ,WAAY,KACZC,SAAU,KACV4f,aAAa,EACbC,WAAYjoG,EAAAw3F,GAAM/xK,SAAS9C,KAAKopG,WAEnC,eAAA/rB,EAAA2tC,OAAA,SAEM,CACL31H,MAAOgoF,EAAAw3F,GAAM/xK,SAAS9C,KAAK3K,MAC3B2K,KAAM,CAGJ+kK,MAAOyf,EAAUvf,QACjBttF,MAAO6sG,EAAUxf,QACjBC,QAASuf,EAAUvf,QACnBD,QAASwf,EAAUvf,QACnBO,WAAY,KACZC,SAAU,MAEZ4f,aAAa,EACbC,WAAYjoG,EAAAw3F,GAAM/xK,SAAS9C,KAAKopG,UACjC,yBAAA/rB,EAAAnwE,OAAA,GAAAglK,EAAA,mBAGN,gBA3IwB/pD,EAAA8sD,EAAAC,EAAAC,EAAAC,EAAAqF,EAAAwB,EAAAU,GAAA,OAAApsD,EAAA19H,MAAA,KAAAH,UAAA,KA+IZ6yL,GAAqB,eAAA/tD,EAAAw6C,EAAAC,IAAA7lD,MAAG,SAAA+tD,EAAAlrC,GAAA,IAAAu2C,EAAAC,EAAAC,EAAAC,EAAA,OAAA1T,IAAAjpD,MAAA,SAAAqxD,GAAA,cAAAA,EAAAzzD,KAAAyzD,EAAArmL,MAAA,OAelC,OAdDwxL,EAAoBv2C,EAApBu2C,qBACAC,EAAoBx2C,EAApBw2C,qBACAC,EAAkBz2C,EAAlBy2C,mBAGMC,EADFH,GAAwBC,EACZ,CACZ76K,SAAS46K,GACT56K,SAAS46K,EAAuBE,IAGpB,CACZ96K,SAAS66K,GACT76K,SAAS66K,EAAuBC,IAEnCrL,EAAArvD,OAAA,SACM26D,GAAO,wBAAAtL,EAAAntK,OAAA,GAAAitK,EAAA,KACf,gBAjBiCmD,GAAA,OAAA9lD,EAAA3kI,MAAA,KAAAH,UAAA,KAmBrBkzL,GAAW,eAAAjpD,EAAAq1C,EAAAC,IAAA7lD,MAAG,SAAA2vD,EACzBvW,EACA6e,EACAC,EACAC,EACAC,EACAC,GAAU,IAAAoB,EAAA,OAAA5T,IAAAjpD,MAAA,SAAAgzD,GAAA,cAAAA,EAAAp1D,KAAAo1D,EAAAhoL,MAAA,UAAAgoL,EAAAp1D,KAAA,EAIHr5G,MAAMk3K,GAAY,CAADzI,EAAAhoL,KAAA,QAUc,OAT9B6xL,EAAat4K,MAAMi3K,EAAUzd,UAAY,EAAIyd,EAAUzd,SAC3D3gJ,QAAQ8hE,IAAIt9E,SAAS65K,GAAc,GAAK75K,SAASi7K,GAAc,EAC/D1qL,KAAKoB,OACDioL,EAAU1f,OACVl6J,SAAS65K,GACT75K,SAASi7K,IACTrB,EAAUnf,WACV,KAEJmf,EAAUvf,QAAQ,iBAAgB+W,EAAAhxD,OAAA,SAC3B,CACL31H,MAAO,KACP2K,KAAM,CACJ+kK,MACEn6J,SAAS65K,GAAc,GAAK75K,SAASi7K,GAAc,EAC/C1qL,KAAKoB,OACDioL,EAAU1f,OACVl6J,SAAS65K,GACT75K,SAASi7K,IACTrB,EAAUnf,WACV,KAEJmf,EAAUvf,QAChBttF,MACE/sE,SAAS65K,GAAc,GAAK75K,SAASi7K,GAAc,EAC/C1qL,KAAKoB,MACHioL,EAAU1f,OACRl6J,SAAS65K,GACT75K,SAASi7K,IACPrB,EAAU1f,OACVl6J,SAAS65K,GACT75K,SAASi7K,IACTrB,EAAUnf,WACV,KAENmf,EAAUxf,QAChBC,QAASuf,EAAUvf,QACnBD,QAASwf,EAAUxf,QACnBO,WAAY36J,SAASi7K,GACrB9e,SAAUn8J,SAASi7K,GACnBrgB,WAAYgf,EAAUhf,WACtBC,SAAU+e,EAAU/e,SACpB2f,cAAeZ,EAAUY,iBAE5B,OAAApJ,EAAAhoL,KAAA,gBAAAgoL,EAAAp1D,KAAA,EAAAo1D,EAAAnH,GAAAmH,EAAA,SAGH51J,QAAQ8hE,IAAG8zF,EAAAnH,IAAQ,yBAAAmH,EAAA9uK,OAAA,GAAA6uK,EAAA,kBAEtB,gBA5DuBwB,EAAAuB,EAAAW,EAAAF,EAAAgB,EAAAoC,GAAA,OAAAhmD,EAAA9pI,MAAA,KAAAH,UAAA,KA8DXozL,GAAW,eAAAhoD,EAAAk0C,EAAAC,IAAA7lD,MAAG,SAAAgwD,EAAO2J,GAAS,IAAAC,EAAA,OAAA/T,IAAAjpD,MAAA,SAAA0zD,GAAA,cAAAA,EAAA91D,KAAA81D,EAAA1oL,MAAA,cAAA0oL,EAAA91D,KAAA,EAAA81D,EAAA1oL,KAAA,EAEfqoJ,GAAAA,KAAW,GAAD9mJ,OAAI0uL,GAAM,gBAAgB8B,EAAW,CACrEt6C,QAAS,CAAE,eAAgB,sBAC1B,KAAD,EAFa,OAATu6C,EAAStJ,EAAAnoL,KAAAmoL,EAAA1xD,OAAA,SAIRg7D,EAAUhmL,KAAKA,MAAI,aAAA08K,EAAA91D,KAAA,EAAA81D,EAAA7H,GAAA6H,EAAA,SAAAA,EAAA7H,GAAC,KAAD,oBAAA6H,EAAAxvK,OAAA,GAAAkvK,EAAA,kBAI7B,gBAVuB6J,GAAA,OAAAnoD,EAAAjrI,MAAA,KAAAH,UAAA,KAYXwzL,GAAM,eAAAhP,EAAAlF,EAAAC,IAAA7lD,MAAG,SAAAywD,EAAO54K,GAAQ,IAAAokE,EAAA89G,EAAArjL,EAAAsjL,EAAAvnI,EAAA,OAAAozH,IAAAjpD,MAAA,SAAAm0D,GAAA,cAAAA,EAAAv2D,KAAAu2D,EAAAnpL,MAAA,OAM/B,OAN+BmpL,EAAAv2D,KAAA,EAGzBv+C,EAAQpkE,EAASxC,MAAM,KAAKghB,OAAOksG,SACnCw3D,EAAa99G,EAAM,GAEzB80G,EAAAnpL,KAAA,EACuBqoJ,GAAAA,IAAU6nC,GAAY,qCAAqC,KAAD,EAKpD,OALvBphL,EAAQq6K,EAAA5oL,KACd6xB,QAAQ8hE,IAAIplF,EAASqjL,EAAW,YAE1BC,EAAatjL,EAAS9C,KAAKA,KAAKqmL,eAChCxnI,EAAQunI,EAAW7rE,MAAK,SAAA+rE,GAAQ,OAAIA,EAASC,OAASJ,CAAU,IACtE//J,QAAQ8hE,IAAIrpC,EAAM,YAAWs+H,EAAAnyD,OAAA,SAEtBnsE,EAAQA,EAAMsmI,IAAM,MAAI,QAEa,OAFbhI,EAAAv2D,KAAA,GAAAu2D,EAAAtI,GAAAsI,EAAA,SAE/B/2J,QAAQ/wB,MAAM,sBAAqB8nL,EAAAtI,IAASsI,EAAAnyD,OAAA,SACrC,MAAI,yBAAAmyD,EAAAjwK,OAAA,GAAA2vK,EAAA,mBAEhB,gBAnBkB2J,GAAA,OAAAtP,EAAArkL,MAAA,KAAAH,UAAA,uHCojBnB,GAzxBwB,SAAH69H,GAAqB,IAADqS,EAAA6jD,EAAAC,EAAAC,EAAd1jD,EAAO1S,EAAP0S,QACoCJ,EAAAzM,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAAtD2nI,EAAe/jD,EAAA,GAAEgkD,EAAkBhkD,EAAA,GACWkoC,EAAA30C,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAA9C6nI,EAAW/b,EAAA,GAAEgc,EAAchc,EAAA,GAC6BG,EAAA90C,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAAxD+nI,EAAiB9b,EAAA,GAAE+b,EAAkB/b,EAAA,GACPG,EAAAj1C,GAAXn3E,EAAAA,EAAAA,UAAS,GAAE,GAEOysH,GAFhCL,EAAA,GAAUA,EAAA,GAEsBj1C,GAAZn3E,EAAAA,EAAAA,UAAS,IAAG,IAEK4sH,GAFlCH,EAAA,GAAaA,EAAA,GAEqBt1C,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,IAA1CioI,EAASrb,EAAA,GAAEsb,EAAYtb,EAAA,GACqBG,EAAA51C,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAA5CmoI,EAAUpb,EAAA,GAAEqb,EAAarb,EAAA,GAC4Bsb,EAAAlxD,GAAdn3E,EAAAA,EAAAA,UAAS,MAAK,GAArDurH,EAAe8c,EAAA,GAAEC,EAAkBD,EAAA,GAEqBE,EAAApxD,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAAxDwoI,EAAgBD,EAAA,GAAEE,EAAmBF,EAAA,GAEIG,EAAAvxD,GAAVn3E,EAAAA,EAAAA,YAAU,GAAzC2oI,EAAWD,EAAA,GAAEE,EAAcF,EAAA,GAGWG,EAAA1xD,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAAtC8oI,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GACoBG,EAAA7xD,GAAZn3E,EAAAA,EAAAA,UAAS,IAAG,GAAvCipI,EAASD,EAAA,GAAEE,EAAYF,EAAA,GAC2BG,EAAAhyD,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAAlDopI,EAAaD,EAAA,GAAEE,EAAgBF,EAAA,GAE0BG,EAAAnyD,GAAdn3E,EAAAA,EAAAA,UAAS,MAAK,GAAzDupI,EAAiBD,EAAA,GAAEE,EAAoBF,EAAA,GAExCG,EAAc,WAClBvB,GAAcD,EAChB,EAQMyB,EAAWjvD,KACX4vC,EAAWrpC,IAAY,SAACpvF,GAAK,OAAKA,CAAK,IACvC2zI,EAAYlb,EAASC,QAAQ1E,YAE7B+jB,EAAgBtf,EAASC,QAAQpD,SAGjC0iB,GAFYvf,EAASC,QAAQ1E,YAAYl9J,KAEtB2hK,EAASwf,WAAWD,kBACvCE,GAAiBzf,EAASwf,WAAWC,eAIKC,IAFtB1f,EAASC,QAAQ3E,eAEKxuC,GAAZn3E,EAAAA,EAAAA,UAAS,IAAG,IAAzCgqI,GAAUD,GAAA,GAAEE,GAAaF,GAAA,GAEYG,GAAA/yD,GAAZn3E,EAAAA,EAAAA,UAAS,IAAG,GAA3BmqI,IAAFD,GAAA,GAAaA,GAAA,IAEuCE,GAAAjzD,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAAxC6rH,IAAFue,GAAA,GAAuBA,GAAA,IAE1CC,GAA+B,QAArB1mD,EAAG0mC,EAASvmC,iBAAS,IAAAH,OAAA,EAAlBA,EAAoBslC,YACjCqhB,GAAiC,QAArB9C,EAAGnd,EAASvmC,iBAAS,IAAA0jD,OAAA,EAAlBA,EAAoBte,cAGnCqhB,IAF6B,QAArB9C,EAAGpd,EAASvmC,iBAAS,IAAA2jD,GAAlBA,EAAoB1jD,UAEE,QAAnB2jD,EAAGrd,EAASC,eAAO,IAAAod,OAAA,EAAhBA,EAAkB9hB,YAAYK,YAErDhmH,EAAAA,EAAAA,YAAU,WACe,OAAnBsqI,IACF1e,IAAsB,EAE1B,KAEA5rH,EAAAA,EAAAA,YAAU,WACH8nI,GACHC,EAAmBqC,GAEvB,GAAG,CAACtC,IAEJ,IAGAyC,GAMItG,KALF/C,GAAQqJ,GAARrJ,SACAgC,GAAYqH,GAAZrH,aACa1nD,GAAM+uD,GAAnBrb,UAAa1zC,OACbqoD,GAAQ0G,GAAR1G,SACAF,GAAW4G,GAAX5G,YAKgD6G,GAAAtzD,GAAZn3E,EAAAA,EAAAA,UAAS,IAAG,GAA3C0qI,GAAWD,GAAA,GAAEE,GAAcF,GAAA,GACgBG,GAAAzzD,GAAZn3E,EAAAA,EAAAA,UAAS,IAAG,GAA9B6qI,IAAFD,GAAA,GAAgBA,GAAA,IACME,GAAA3zD,GAAdn3E,EAAAA,EAAAA,WAAS,GAAK,GAAjCm+H,GAAK2M,GAAA,GAAEC,GAAQD,GAAA,GAShBE,GAAsB,SAACN,GAE3B,MAD2B,qBACD5uL,KAAK4uL,EACjC,EAUMxjF,GAAWs7B,MAIjBviF,EAAAA,EAAAA,YAAU,WAEJoqH,GACFljJ,QAAQ8hE,IAAI,wBAAyB2gG,EAAkBE,GAE3D,GAAG,CAACzf,EAAUnjE,KAEd,IAAMykE,GAAU,eAAA37B,EAAA+iC,EAAAC,IAAA7lD,MAAG,SAAA8lD,EAAOgY,GAAS,IAAAlqL,EAAAmqL,EAAA,OAAAlY,IAAAjpD,MAAA,SAAA3rC,GAAA,cAAAA,EAAAupC,KAAAvpC,EAAArpF,MAAA,OAiC/B,GAhCEgM,EAAOkqL,GAAatC,EACxBU,GAAiB,GACjBN,GAAW,GAEX7hF,GACEihE,GAAe,CACb1zE,MAAO1zF,EAAK0zF,MACZsyE,MAAO2jB,MAIPQ,EAAW,CACblkB,UAAWjmK,EAAKimK,UAChBmkB,SAAUpqL,EAAKoqL,SACfC,cAAerqL,EAAKsqL,SACpBC,OAAQ,IACRC,SAAU,IACV3tE,QAAS,IACTnpB,MAAO1zF,EAAK0zF,MACZ+2F,QAASd,GACT5lL,SAAU,IACV2mL,KAAM,IACNC,YAAa,IACbC,MAAO,IACPC,MAAO,IACPl3F,SAAU3zF,EAAK2zF,SACfm3F,QAAStG,EAAUte,QACnB6kB,WAAY,EACZC,WAAY,IACZC,WAAY,IACZC,SAAU,IACVC,MAAO,IAGLvE,EAAgB,CAADvpG,EAAArpF,KAAA,gBAAAqpF,EAAAupC,KAAA,EAAAvpC,EAAArpF,KAAA,EAEQqoJ,GAAM,CAC3BpyB,OAAQ,OACRl2B,IAAKkwF,GAAS,UACdjkL,KAAMmqL,EACN1+C,QAAS,CAAE,eAAgB,sBAC1Br3I,MAAK,SAAC0O,GACkC,IAADsoL,EAAAC,EAAX,YAAzBvoL,EAAS9C,KAAKoD,SAChB+kL,EAAa,WACbhiF,GACEohE,GAAa,CACX7B,OAAQ5iK,EAAS9C,KAAKA,KAAKmlL,IAC3Blf,UAAWjmK,EAAKimK,aAOpB9/D,GAAS0iE,GAAoB,OAAR/lK,QAAQ,IAARA,GAAc,QAANsoL,EAARtoL,EAAU9C,YAAI,IAAAorL,GAAM,QAANC,EAAdD,EAAgBprL,YAAI,IAAAqrL,OAAZ,EAARA,EAAsBj+H,QAC3C+4C,GAASwiE,GAAc,OACvBxiE,GAASuiE,GAAW,QAEtBsf,GAAW,GAEXW,EAAS,IAADpzL,OACFszL,EAAgB,KAAAtzL,OAAIwzL,GAAc,KAAAxzL,OAAIqzL,EAAa,iBAE3D,IAAG,KAAD,EA3BYvrG,EAAA9oF,KAAA8oF,EAAArpF,KAAA,iBAAAqpF,EAAAupC,KAAA,GAAAvpC,EAAAw3F,GAAAx3F,EAAA,SA6BdirG,GAAiB,GACiB,qBAA9BjrG,EAAAw3F,GAAE/xK,SAAS9C,KAAKk7H,WAClButD,EACE,4DAEFC,KACuC,oBAA9BrrG,EAAAw3F,GAAE/xK,SAAS9C,KAAKk7H,WACzButD,EACE,wDAEFC,KACSrrG,EAAAw3F,GAAE/xK,SAAS9C,KAAK3K,QACzBozL,EAAqB,2CACrBC,KACD,QAAArrG,EAAArpF,KAAA,iBAIHg0L,GAAW,GACXG,EAAa,WACbQ,EAAS,IAADpzL,OACFszL,EAAgB,KAAAtzL,OAAIwzL,GAAc,KAAAxzL,OAAIqzL,EAAa,kBACvD,yBAAAvrG,EAAAnwE,OAAA,GAAAglK,EAAA,mBAEL,gBA1Fe/pD,GAAA,OAAA8mB,EAAAp8I,MAAA,KAAAH,UAAA,KA4FhB0zB,QAAQ8hE,IAAIwyC,GAAO,UAEnB,IAoBI4wD,GAEEC,GAAU,eAAA/zD,EAAAw6C,EAAAC,IAAA7lD,MAAG,SAAA+tD,EAAOzmF,GAAK,IAAA5wF,EAAA0oL,EAAAC,EAAAC,EAAAC,EAAA,OAAA1Z,IAAAjpD,MAAA,SAAAqxD,GAAA,cAAAA,EAAAzzD,KAAAyzD,EAAArmL,MAAA,OAWG,OAT5Bs3L,IACFA,GAAkB1yE,OAAO,0CAI3B0yE,GAAoBjvC,GAAAA,YAAAA,SAA2Bg+B,EAAAzzD,KAAA,EAG7CzgB,GAASuiE,GAAW,OACpBviE,GAASwiE,GAAc,OAAO0R,EAAArmL,KAAA,EAEPqoJ,GAAM,CAC3BpyB,OAAQ,OACRl2B,IAAKkwF,GAAS,kBACdjkL,KAAM,CACJ0zF,MAAOA,EACPk4F,OD9QY,KCgRdngD,QAAS,CACP,eAAgB,oBAElBmH,YAAa04C,GAAkBl+H,QAC9BlQ,OAAM,SAAC+7B,GACRktB,GAASoiE,GAAY,OACrBgf,EAAmB,MACnBphF,GAAS+gE,GAAkB,CAAC2kB,wBAAwB,KAClDC,eAAe,KACfC,oBAAoB,KACpBC,0BAA2B,KAC3BC,6BAA6B,KAC7BC,YAAY,KACZC,YAAY,OAChB,IAAG,KAAD,EAgB0C,OArCtCrpL,EAAQu3K,EAAA9lL,KAuBd6xB,QAAQ8hE,IAAI,oCAAkCplF,GAI9CqjG,GACEohE,GAAa,CACX7B,OAAQ5iK,EAAS9C,KAAKA,KAAKmlL,IAC3Blf,UAAWnjK,EAAS9C,KAAKA,KAAKimK,aAI9BulB,EACDhH,EAAU,gBAAkB1hL,EAAS9C,KAAKA,KAAK+rL,oBAChD,IACAjpL,EAAS9C,KAAKA,KAAK6rL,wBAAuBxR,EAAArmL,KAAA,GAEXuxL,GAAsB,CACrDC,qBAAsBgG,EACtB/F,qBAAsB3iL,EAAS9C,KAAKA,KAAK8rL,eACzCpG,mBAAoB5iL,EAAS9C,KAAKA,KAAK6rL,0BACtC,KAAD,GAJIJ,EAAkBpR,EAAA9lL,KAMxB4xG,GACE+gE,GAAkB,CAChB2kB,wBAAyB/oL,EAAS9C,KAAKA,KAAK6rL,wBAC5CC,eAAgBhpL,EAAS9C,KAAKA,KAAK8rL,eACnCC,oBAAqBjpL,EAAS9C,KAAKA,KAAK+rL,oBACxCC,0BACElpL,EAAS9C,KAAKA,KAAK6rL,wBACnB/oL,EAAS9C,KAAKA,KAAK8rL,eACrBG,6BAA8BT,EAC9BU,YAAaT,EAAmB,GAChCU,YAAaV,EAAmB,MAIpCtlF,GAASuiE,GAAW5lK,EAAS9C,KAAKA,KAAK4qL,QACvCzkF,GAASwiE,GAAc7lK,EAAS9C,KAAKA,KAAK2qL,cAI1C5D,GAAe,GACfF,GAAmB,GACyB,OAAxC/jL,EAAS9C,KAAKosL,uBAChB7E,EAA2B,OAARzkL,QAAQ,IAARA,GAAc,QAAN4oL,EAAR5oL,EAAU9C,YAAI,IAAA0rL,GAAM,QAANC,EAAdD,EAAgB1rL,YAAI,IAAA2rL,OAAZ,EAARA,EAAsBS,uBAS3ClD,GAAcx1F,GAAO2mF,EAAArmL,KAAA,iBAAAqmL,EAAAzzD,KAAA,GAAAyzD,EAAAxF,GAAAwF,EAAA,SAEjBh+B,GAAAA,SAAcg+B,EAAAxF,IAEhBzuJ,QAAQ8hE,IAAI,oBAAqBmyF,EAAAxF,GAAMzrE,UAGvC29E,GAAe,GACfF,GAAmB,GACnB1gF,GAAS+gE,GAAkB,CACzB2kB,wBAAwB,KACRC,eAAe,KACfC,oBAAoB,KACpBC,0BAA2B,KAC3BC,6BAA6B,KAC7BC,YAAY,KACZC,YAAY,SAS/B,yBAAA9R,EAAAntK,OAAA,GAAAitK,EAAA,mBAEJ,gBApHelF,GAAA,OAAAz9C,EAAA3kI,MAAA,KAAAH,UAAA,KAgIuC25L,GAAAj2D,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAAhDqtI,GAAYD,GAAA,GAAEE,GAAeF,GAAA,GAwKpC,OAnKAntI,EAAAA,EAAAA,YAAU,WACR,QAAmB8J,IAAfsgI,SAA6CtgI,IAAjBugI,GAA4B,CAC1DpjF,GAAS0iE,GAAY,OAGrB,IA4EE,IAAM2jB,EAAS,eAAA7vD,EAAAq1C,EAAAC,IAAA7lD,MAAG,SAAA2vD,IAAA,IAAAj5K,EAAA0oL,EAAAC,EAAA,OAAAxZ,IAAAjpD,MAAA,SAAAgzD,GAAA,cAAAA,EAAAp1D,KAAAo1D,EAAAhoL,MAAA,cAAAgoL,EAAAp1D,KAAA,EAAAo1D,EAAAhoL,KAAA,EAEWqoJ,GAAM,CACzBpyB,OAAQ,OACRl2B,IAAKkwF,GAAS,kBACdjkL,KAAM,CACF0zF,MAAO41F,IAEX79C,QAAS,CACL,eAAgB,sBAErB,KAAD,EAGwB,GAZpB3oI,EAAQk5K,EAAAznL,KAYd20L,GAAcI,MACVxmL,EAAS9C,MAAQ8C,EAAS9C,KAAKA,MAAQ8C,EAAS9C,KAAKA,KAAKmlL,KAAG,CAAAnJ,EAAAhoL,KAAA,SAcf,OAb9CmyG,GACIohE,GAAa,CACT7B,OAAQ5iK,EAAS9C,KAAKA,KAAKmlL,IAC3Blf,UAAWnjK,EAAS9C,KAAKA,KAAKimK,aAGtC9/D,GAASkhE,GAAsBvkK,EAAS9C,KAAKA,KAAKyqL,UAClDtkF,GAASuiE,GAAW5lK,EAAS9C,KAAKA,KAAK4qL,QACvCzkF,GAASwiE,GAAc7lK,EAAS9C,KAAKA,KAAK2qL,cAEtCa,EACChH,EAAU,gBAAkB1hL,EAAS9C,KAAKA,KAAK+rL,oBAChD,IACAjpL,EAAS9C,KAAKA,KAAK6rL,wBAAuB7P,EAAAhoL,KAAA,GAEbuxL,GAAsB,CACnDC,qBAAsBgG,EACtB/F,qBAAsB3iL,EAAS9C,KAAKA,KAAK8rL,eACzCpG,mBAAoB5iL,EAAS9C,KAAKA,KAAK6rL,0BACxC,KAAD,GAJIJ,EAAkBzP,EAAAznL,KAMxB4xG,GACI+gE,GAAkB,CACd2kB,wBAAyB/oL,EAAS9C,KAAKA,KAAK6rL,wBAC5CC,eAAgBhpL,EAAS9C,KAAKA,KAAK8rL,eACnCC,oBAAqBjpL,EAAS9C,KAAKA,KAAK+rL,oBACxCC,0BACIlpL,EAAS9C,KAAKA,KAAK6rL,wBACnB/oL,EAAS9C,KAAKA,KAAK8rL,eACvBG,6BAA8BT,EAC9BU,YAAaT,EAAmB,GAChCU,YAAaV,EAAmB,MAIpC3oL,EAAS9C,KAAKA,KAAKmlL,KACnBjuL,OAAO6M,SAAS8L,QAAQ,GAADta,OAChBszL,EAAgB,KAAAtzL,OAAIwzL,GAAc,KAAAxzL,OAAIqzL,EAAa,kBAE7D,QAAA5M,EAAAhoL,KAAA,iBAAAgoL,EAAAp1D,KAAA,GAAAo1D,EAAAnH,GAAAmH,EAAA,SAGL51J,QAAQ8hE,IAAI,SACZie,GAASoiE,GAAY,OACrBgf,EAAmB,MACnBphF,GAAS+gE,GAAkB,CACzB2kB,wBAAwB,KACdC,eAAe,KACfC,oBAAoB,KACpBC,0BAA2B,KAC3BC,6BAA6B,KAC7BC,YAAY,KACZC,YAAY,QACrB,yBAAAnQ,EAAA9uK,OAAA,GAAA6uK,EAAA,mBAEV,kBAvEgB,OAAAp/C,EAAA9pI,MAAA,KAAAH,UAAA,KA0EjB85L,GAEA,CAAE,MAAOn3L,GACP,CAEJ,CACF,GAAG,CAACi0L,MAGF1sC,EAAAA,GAAAA,MAAA9d,GAAAA,SAAA,CAAAx1F,SAAA,EACEszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,iDAAgDsL,SAAA,EAC7Du1F,EAAAA,GAAAA,KAAC4tD,GAAO,CAAC9kL,KAAM68K,EAAU78K,KAAM6+J,SAAUge,EAAU,gBACnD3lD,EAAAA,GAAAA,KAAC6tD,GAAO,CAAC3tD,YAAY,4BACrB6d,EAAAA,GAAAA,MAAA,QAAM5+G,UAAU,kBAAkBgwI,SAAUoU,IAnUjC,SAACpiL,GAAU,IAAD2sL,EACzB3sL,EAAKsqL,SAAwB,QAAhBqC,EAAG3sL,EAAKsqL,gBAAQ,IAAAqC,OAAA,EAAbA,EAAel+H,cAC/BroC,QAAQ8hE,IAAIloF,EAAK,YACZ2pL,IAOL9B,EAAe7nL,GACS,OAApBwqK,EAMJI,GAAW5qK,GALT0nL,GAAoB,IARpB3E,GAAS,QAAS,CAChBzlL,KAAM,SACN8rG,QAAS,iCAYf,IAiTyE9/D,SAAA,EACjEszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,aAAYsL,SAAA,EACzBu1F,EAAAA,GAAAA,KAAA,QAAA4+B,GAAAA,GAAA,CACEngK,KAAK,OACL0gC,UAAU,GACVr2B,KAAK,QACLzG,GAAG,eAGCk/K,GAAS,QAAS,CACpBvqD,QAAS,CACP1hI,MAAO,oDACPi1G,QAAS,wBAEXorB,SAAU,gCACV,IACFo4D,QAAS,SAACp7L,GAAO,IAADq7L,GAvMP,SAAC34F,GACpB,IAAMR,EAAQQ,EAAMh2F,OAAO/J,MACX,mDAEJ4G,KAAK24F,IACf63F,GAAW73F,EAEf,CAiMcj1C,CAAajtD,GACb43L,GAAa,OAAD53L,QAAC,IAADA,GAAS,QAARq7L,EAADr7L,EAAG0M,cAAM,IAAA2uL,OAAR,EAADA,EAAW14L,MACzB,EACAqqF,aAAcwoG,EAAoBiC,GAAa,GAC/CvnI,SAAUslI,EACV3pE,YAAY,kBAEdwhB,EAAAA,GAAAA,KAAA,SACCnE,GAAOhnC,QAASmrC,EAAAA,GAAAA,KAAA,QAAM7gG,UAAU,GAAEsL,SAAEoxF,GAAOhnC,MAAM0V,aAGnD09E,GAAeF,IACdhqC,EAAAA,GAAAA,MAAA9d,GAAAA,SAAA,CAAAx1F,SAAA,EACEszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,aAAYsL,SAAA,EACzBu1F,EAAAA,GAAAA,KAAA,QAAA4+B,GAAA,CACEz/H,UAAU,GACVq/E,YAAY,aACZ//G,KAAK,QACD8iL,GAAS,YAAa,CACxBvqD,QAAS,CACP1hI,MAAO,oBACPi1G,QAAS,sCAEXorB,SAAU,kCAGdqK,EAAAA,GAAAA,KAAA,SACCnE,GAAOurC,YACNpnC,EAAAA,GAAAA,KAAA,QAAM7gG,UAAU,GAAEsL,SAAEoxF,GAAOurC,UAAU78D,cAGzCwzC,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,aAAYsL,SAAA,EACzBu1F,EAAAA,GAAAA,KAAA,QAAA4+B,GAAA,CACEz/H,UAAU,GACVq/E,YAAY,YACZ//G,KAAK,QACD8iL,GAAS,WAAY,CACvBvqD,QAAS,CACP1hI,MAAO,oBACPi1G,QAAS,sCAEXorB,SAAU,kCAGdqK,EAAAA,GAAAA,KAAA,SACCnE,GAAO0vD,WACNvrD,EAAAA,GAAAA,KAAA,QAAM7gG,UAAU,GAAEsL,SAAEoxF,GAAO0vD,SAAShhF,cAIxCwzC,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,aAAYsL,SAAA,EACzBszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,eAAcsL,SAAA,EAC3Bu1F,EAAAA,GAAAA,KAAA,QAAA4+B,GAAAA,GAAA,CAEEngK,KAAMgvL,GAAe,OAAS,WAC9BtuJ,UAAU,GACVr2B,KAAK,YACDy4K,GAAS,WAAY,CACvBvqD,QAAS,CACP1hI,MAAO,GACPi1G,QAAS,IAEXorB,SAAU,gCACV,IACFnX,YAAY,qBAEdwhB,EAAAA,GAAAA,KAAA,OACE7gG,UAAU,uBACVujB,QAjQS,WACzBgrI,IAAgB,SAACO,GAAS,OAAMA,CAAS,GAC3C,EA+P8CxjJ,SAE3BgjJ,IACCztD,EAAAA,GAAAA,KAAA,QAAAv1F,UACEu1F,EAAAA,GAAAA,KAACq5B,GAAe,CACdl6H,UAAU,sBACVghB,KAAM2kI,QAIV9kD,EAAAA,GAAAA,KAAA,QAAAv1F,UACEu1F,EAAAA,GAAAA,KAACq5B,GAAe,CACdl6H,UAAU,sBACVghB,KAAMskI,YAOf5oD,GAAO/mC,WACNkrC,EAAAA,GAAAA,KAAA,QAAM7gG,UAAU,GAAEsL,SAAEoxF,GAAO/mC,SAASyV,cAIxCwzC,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,aAAYsL,SAAA,EACzBu1F,EAAAA,GAAAA,KAAA,QAAA4+B,GAAA,CACEz/H,UAAU,GACVq/E,YAAY,gBACZ//G,KAAK,QACD8iL,GAAS,WAAY,CACvB,MAGJvhD,EAAAA,GAAAA,KAAA,SACCnE,GAAO4vD,WACNzrD,EAAAA,GAAAA,KAAA,QAAM7gG,UAAU,GAAEsL,SAAEoxF,GAAO4vD,SAASlhF,iBAK5CwzC,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,aAAYsL,SAAA,EAoBzBu1F,EAAAA,GAAAA,KAACkuD,KAAU,CACT/uJ,UAAU,qBACV6+E,QAAS,KACT1oH,MAAOw1L,GAEP7qI,SAAU,SAAC3qD,EAAO0oH,GAAO,OAvlBV,SAAC1oH,EAAO0oH,GACjCgmE,KACA+G,GAAez1L,GACf21L,IAAsB,OAAPjtE,QAAO,IAAPA,OAAO,EAAPA,EAAS/C,WAAY,IACpCkwE,GAASC,GAAoB91L,GAC/B,CAklB0C64L,CAAmB74L,EAAO0oH,EAAQ,EAChEoE,WAAY,CACVuT,UAAU,KAIJ,GAAT4oD,KAAkBv+C,EAAAA,GAAAA,KAAA,QAAM7gG,UAAU,GAAEsL,SAAC,uCACrCoxF,GAAOsrC,QAASnnC,EAAAA,GAAAA,KAAA,QAAM7gG,UAAU,GAAEsL,SAAEoxF,GAAOsrC,MAAM58D,cAGpDwzC,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,aAAYsL,SAAA,EACzBszG,EAAAA,GAAAA,MAAA,KAAAtzG,SAAA,CAAG,6CAC0C,KAC3Cu1F,EAAAA,GAAAA,KAAA,KAAG74G,KAAM47G,GAAeqB,GAAShB,UAAW/jI,OAAO,SAAQorC,SAAC,uBAEvD,IAAI,MACL,KACJu1F,EAAAA,GAAAA,KAAA,KACE74G,KAAM47G,GAAeqB,GAASf,kBAC9BhkI,OAAO,SAAQorC,SAChB,sBAKD++I,EAQEN,GAAyB,YAAdG,GACbrpD,EAAAA,GAAAA,KAACpkF,GAAAA,GAAM,CACLvxC,UAAQ,EACRC,MAAI,EACJ5P,IAAI,yBACJkD,MAAO,CAAE4H,MAAO,OAAQC,OAAQ,QAASglC,UAEzCu1F,EAAAA,GAAAA,KAACj+E,GAAAA,GAAQ,CACPG,SAAS,EACTC,QAAS,CAAC,OAAQ,SAAU,QAAS,aAGvC,MAnBF69E,EAAAA,GAAAA,KAAA,UAEEvhI,KAAK,SACL0gC,UAAU,qBAAoBsL,SAE7Bw9I,GAAcjoD,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAx1F,SAAE,uBAAuBu1F,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAx1F,SAAE,sBAqBnD49I,IACCroD,EAAAA,GAAAA,KAACouD,GAAM,CACLtiB,aAAc+d,EACdjc,SAAU+b,EACV9qJ,MAAM,UAIT+pJ,IACC5oD,EAAAA,GAAAA,KAACouD,GACC,CACAxiB,kBAAmB+e,GACnBnf,yBACEmf,GAAiBhf,GACjBgf,KAAmBhf,GAIrBA,gBAAiBA,EAIjBkC,YAAY,EACZ9B,WAAYA,GACZD,aA5tBmB,WACzB+c,GAAqBD,EACvB,EA2tBQhb,SACE+c,GAAiBhf,EAAe,gDAAAj1K,OACoB23L,KAC9C1D,IACAxiI,OACA,eACD,2DAAAzxD,OAA0D23L,KACzD1iB,GACAxjH,OAAO,gBACTwiI,GAAiBhf,EACjB,kGACA,KAKT4c,IACCvoD,EAAAA,GAAAA,KAACouD,GAAM,CACLtiB,aAlvBa,WACnB0c,GAAeD,EACjB,EAivBQ3a,SACwB,IAAtB+X,EAAUte,QACN,6DACA,6IAENxoI,MAAM,oCAKhB,EC1rBA,GAnHkB,WAAO,IAADipJ,EAAAwG,EAAAC,EAChB9jB,EAAWrpC,IAAY,SAACpvF,GAAK,OAAKA,CAAK,IACvCg0H,EAAsB,OAARyE,QAAQ,IAARA,GAAiB,QAATqd,EAARrd,EAAUC,eAAO,IAAAod,OAAT,EAARA,EAAmB9hB,YACjC8jB,EAAWjvD,KAEqCmJ,EAAAzM,GAAdn3E,EAAAA,EAAAA,UAAS,MAAK,GAA/CouI,EAAYxqD,EAAA,GAAEyqD,EAAezqD,EAAA,GACckoC,EAAA30C,GAAdn3E,EAAAA,EAAAA,UAAS,MAAK,GAA3CmnI,EAAUrb,EAAA,GAAEwiB,EAAaxiB,EAAA,GACxBub,EAAarsD,KAAbqsD,SAE+Cpb,EAAA90C,GAAZn3E,EAAAA,EAAAA,UAAS,CAAC,GAAE,GAAhDuuI,EAAatiB,EAAA,GAAEuiB,EAAgBviB,EAAA,GAsFtC,OApFAhsH,EAAAA,EAAAA,YAAU,WACR,GACG2lH,GAA0C,QAAhB,OAAXA,QAAW,IAAXA,OAAW,EAAXA,EAAaK,YACP,QAAX,OAAXL,QAAW,IAAXA,OAAW,EAAXA,EAAal9J,MACb,CACA,IAAM+lL,EAAex2L,OAAO6M,SAASE,SAASxC,MAAM,KAGpDisL,EAAa74L,MAGb,IAAM84L,EAASD,EAAapqL,KAAK,KAGjC8iB,QAAQ8hE,IAAI,6BAA8BylG,GAC1ChF,EAASgF,EACX,CACF,GAAG,CAAC9oB,KAGJ3lH,EAAAA,EAAAA,YAAU,WAOLonI,GAAUgH,EAAgBhH,GAE3BlgK,QAAQ8hE,IAAI,mBAAiBo+F,GAE7B,IAAMsH,EAAa,eAAAr9D,EAAAyhD,EAAAC,IAAA7lD,MAAG,SAAA8lD,IAAA,IAAAvrH,EAAA3mD,EAAA6tL,EAAA,OAAA5b,IAAAjpD,MAAA,SAAA3rC,GAAA,cAAAA,EAAAupC,KAAAvpC,EAAArpF,MAAA,cAAAqpF,EAAArpF,KAAA,EACFqoJ,GAAAA,IAEhB6nC,GAAY,oCACZ,CACEz4C,QAAS,CACP,eAAgB,oBAElBrhH,KAAM,YAER,KAAD,EATKu8B,EAAG02B,EAAA9oF,KAWHyL,EAAO2mD,EAAI3mD,KAAKA,KACtButL,EAAkB,OAAJvtL,QAAI,IAAJA,OAAI,EAAJA,EAAMqmL,gBACb,OAAJrmL,QAAI,IAAJA,GAAAA,EAAMqmL,iBACDwH,EAAe,CAAC,EAClB,OAAJ7tL,QAAI,IAAJA,GAAAA,EAAMqmL,eAAe1nI,KAAI,SAACmvI,EAAK9yK,GAE3B6yK,EAAaC,EAAIvH,MADhBvrK,EAAQ,EACgB,QAGA,UAG7B,IACAoL,QAAQ8hE,IAAI,uBAAqB2lG,GACjCJ,EAAiBI,IAGnBznK,QAAQ8hE,IAAI,6BAA8BloF,GAAM,wBAAAq9E,EAAAnwE,OAAA,GAAAglK,EAAA,KACjD,kBA9BkB,OAAA3hD,EAAA19H,MAAA,KAAAH,UAAA,KA+BnBk7L,GAEJ,GAAG,CAACtH,KAWJpnI,EAAAA,EAAAA,YAAU,WACLsuI,GAAiBH,IACc,YAA/BG,EAAcH,IACsB,SAA/BG,EAAcH,KADwB90L,SAAS+9F,gBAAgB75F,MAAMymF,YAAY,iBAAkB,QAG7G,GAAG,CAACmqG,EAAcG,KAKhB3uD,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAx1F,UACEu1F,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,uBAAsBsL,SACpCkkJ,EAAcH,KACXzwC,EAAAA,GAAAA,MAAA9d,GAAAA,SAAA,CAAAx1F,SAAA,EAEFu1F,EAAAA,GAAAA,KAACkvD,GAAO,CAAC9qD,QAAsE,KAAjD,OAAVmjD,QAAU,IAAVA,GAAkD,QAAxC+G,EAAV/G,EAAY7rE,MAAK,SAAAuzE,GAAG,OAAO,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAKvH,OAAQ8G,CAAY,WAAC,IAAAF,OAAxC,EAAVA,EAAoDhI,KAAY,WAAa,WAClGtmD,EAAAA,GAAAA,KAAA,OAAKpiI,MAAO,CAACC,SAAU,eAItBmiI,EAAAA,GAAAA,KAACmvD,GAAe,CAAE/qD,QAAsE,KAAjD,OAAVmjD,QAAU,IAAVA,GAAkD,QAAxCgH,EAAVhH,EAAY7rE,MAAK,SAAAuzE,GAAG,OAAO,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAKvH,OAAQ8G,CAAY,WAAC,IAAAD,OAAxC,EAAVA,EAAoDjI,KAAY,WAAa,gBAOlH,EC1GA,GAfe,SAACttK,GACd,OACEgnH,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAx1F,UACEu1F,EAAAA,GAAAA,KAAA,UACE7gG,eACuBgrB,IAArBnxC,EAAMo2K,WAA2B,MAAQ,OAASp2K,EAAMo2K,WAE1D1sI,aAA2ByH,IAAlBnxC,EAAM0pC,QAAwB1pC,EAAM0pC,QAAU,KAAKjY,SAE3DzxB,EAAMq2K,WAIf,ECHA,GAVe,WACb,OACErvD,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAx1F,UACEu1F,EAAAA,GAAAA,KAAA,KAAG7gG,UAAU,YAKnB,ECeA,ICbA,GAViB,SAACnmB,GAChB,OACEgnH,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAx1F,UAEEu1F,EAAAA,GAAAA,KAAA,OAAK7gG,UAAWnmB,EAAMs2K,WAAat2K,EAAMs2K,WAAa,cAI5D,ECyDA,GA7DiB,SAAH59D,GAAyB,IAAD69D,EAAAC,EAAlBC,EAAW/9D,EAAX+9D,YAClB7E,EAIItG,KAHF/C,EAAQqJ,EAARrJ,SACAgC,EAAYqH,EAAZrH,aACa1nD,EAAM+uD,EAAnBrb,UAAa1zC,OAETv0B,EAAWs7B,KAGX8sD,EAAWtuD,IAAY,SAACpvF,GAAK,OAAKA,CAAK,IAEvC29I,EAA8B,QAArBJ,EAAGG,EAASxrD,iBAAS,IAAAqrD,OAAA,EAAlBA,EAAoBhmB,KAChCqmB,EAAiC,QAArBJ,EAAGE,EAASxrD,iBAAS,IAAAsrD,OAAA,EAAlBA,EAAoBhmB,QAYzC,OACExpC,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,YAAWsL,UACxBszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,kBAAiBsL,SAAA,EAC9Bu1F,EAAAA,GAAAA,KAAA,UAAQ7gG,UAAU,gBAAgBujB,QAAS+sI,EAAYhlJ,SAAC,UAGxDu1F,EAAAA,GAAAA,KAAA,MAAAv1F,SAAI,iBACJszG,EAAAA,GAAAA,MAAA,QAAMoxB,SAAUoU,GAjBL,SAAApiL,GAKfmmG,EAASuiE,GAAW1oK,EAAKooK,OACzBjiE,EAASwiE,GAAc3oK,EAAKqoK,UAC5BimB,GACF,IAS6ChlJ,SAAA,EACrCu1F,EAAAA,GAAAA,KAAA,QAAA4+B,GAAAA,GAAA,CACEz/H,UAAU,YACVwgD,aAAcgwG,GAAwB,IAClCpO,EAAS,OAAQ,CACnB5rD,SAAU,yBACVqB,QAAS,CACP1hI,MAAO,6DACPi1G,QAAS,sCAEX,IACFiU,YAAY,gBAGXqd,EAAO0tC,OAAQvpC,EAAAA,GAAAA,KAAA,KAAGpiI,MAAO,CAAE0sC,MAAO,OAAQG,SAAEoxF,EAAO0tC,KAAKh/D,WAC3Dy1B,EAAAA,GAAAA,KAAA,QAAA4+B,GAAAA,GAAA,CACIj/E,aAAciwG,GAA8B,GAE9CzwJ,UAAU,aACNoiJ,EAAS,YAAU,IACvB/iE,YAAY,eAEdwhB,EAAAA,GAAAA,KAAA,UACAA,EAAAA,GAAAA,KAAA,UAAQ7gG,UAAU,oBAAoB1gC,KAAK,SAAQgsC,SAAC,gBAK9D,ECjEqC,SAASn2C,KAAI,OAAOA,GAAE1B,OAAOe,OAAOf,OAAOe,OAAO4S,OAAO,SAAS7T,GAAG,IAAI,IAAIkB,EAAE,EAAEA,EAAEC,UAAUC,OAAOF,IAAI,CAAC,IAAIU,EAAET,UAAUD,GAAG,IAAI,IAAIW,KAAKD,EAAE1B,OAAOK,UAAUC,eAAeC,KAAKmB,EAAEC,KAAK7B,EAAE6B,GAAGD,EAAEC,GAAG,CAAC,OAAO7B,CAAC,EAAE4B,GAAEN,MAAMT,KAAKM,UAAU,CAAC,IAAIU,GAAE7B,EAAAA,cAAgB,MAAM,CAAC2vD,QAAQ,cAAc58C,OAAO,OAAOD,MAAM,OAAO5H,MAAM,CAACC,SAAS,WAAWC,IAAI,IAAIpL,EAAAA,cAAgB,OAAO,CAACkP,EAAE,yHAAyH4hC,KAAK,OAAOwf,SAAS,aAAaruD,GAAEjC,EAAAA,cAAgB,MAAM,CAAC+S,OAAO,OAAOD,MAAM,OAAO68C,QAAQ,cAAczkD,MAAM,CAACC,SAAS,WAAWC,IAAI,IAAIpL,EAAAA,cAAgB,OAAO,CAACkP,EAAE,yEAAyE4hC,KAAK,OAAOwf,SAAS,aAAa,SAAS9tD,GAAExC,GAAG,GAAG,IAAIA,EAAEoB,OAAO,OAAOpB,EAAE,IAAI,IAAIkB,EAAE,IAAIU,EAAE,EAAEA,EAAE,EAAEA,GAAG,EAAEV,GAAGlB,EAAE4B,GAAG5B,EAAE4B,GAAG,OAAOV,CAAC,CAAC,SAASjB,GAAED,EAAEkB,EAAEU,EAAEC,EAAEI,GAAG,OAAO,SAASjC,EAAEkB,EAAEU,EAAEC,EAAEI,GAAG,IAAIO,GAAGxC,EAAE4B,IAAIV,EAAEU,GAAG,GAAG,IAAIY,EAAE,OAAOX,EAAE,GAAG,IAAIW,EAAE,OAAOP,EAAE,IAAI,IAAIhC,EAAE,IAAIoB,EAAE,EAAEA,EAAE,EAAEA,GAAG,EAAE,CAAC,IAAIf,EAAE+Y,SAASxX,EAAE6X,OAAOrY,EAAE,GAAG,IAAIoD,EAAE4U,SAASpX,EAAEyX,OAAOrY,EAAE,GAAG,IAAIyN,EAAElF,KAAKoB,OAAO,EAAExI,GAAGlC,EAAEkC,EAAEiC,GAAG+I,SAAS,IAAI,IAAIsB,EAAE1N,SAAS0N,EAAE,IAAIA,GAAG7O,GAAG6O,CAAC,CAAC,OAAO7O,CAAC,CAAhP,CAAkPD,EAAEkB,EAAEU,EAAEY,GAAEX,GAAGW,GAAEP,GAAG,CAAC,IAAIZ,GAAE,SAASH,GAAG,SAASW,EAAE7B,GAAGkB,EAAET,KAAKI,KAAKb,GAAG,IAAI4B,EAAE5B,EAAE+S,OAAOlR,EAAE7B,EAAE8S,MAAM7Q,EAAEjC,EAAE4sF,QAAQ/rF,KAAKb,EAAEA,EAAEm9L,gBAAgBv7L,EAAE,EAAEf,KAAKK,EAAE0I,KAAKO,IAAItI,EAAED,EAAEC,GAAGD,EAAEf,KAAKb,GAAG,GAAGa,KAAKoB,EAAE2H,KAAKO,IAAI,GAAGvI,EAAEf,KAAKb,GAAG,GAAGa,KAAKy+C,MAAM,CAAC98C,EAAEP,EAAEpB,KAAKK,EAAEL,KAAKoB,GAAGpB,KAAK4D,EAAE,EAAE5D,KAAK2S,EAAE,EAAE3S,KAAK6D,EAAE7D,KAAK6D,EAAEmP,KAAKhT,MAAMA,KAAKwD,EAAExD,KAAKwD,EAAEwP,KAAKhT,MAAMA,KAAKif,EAAEjf,KAAKif,EAAEjM,KAAKhT,MAAMA,KAAKwO,EAAExO,KAAKwO,EAAEwE,KAAKhT,MAAMA,KAAKkO,EAAElO,KAAKkO,EAAE8E,KAAKhT,MAAMA,KAAK+f,EAAE/f,KAAK+f,EAAE/M,KAAKhT,MAAMA,KAAK8f,EAAE9f,KAAK8f,EAAE9M,KAAKhT,MAAMA,KAAKopC,EAAEppC,KAAKopC,EAAEp2B,KAAKhT,MAAMA,KAAK0f,EAAE1f,KAAK0f,EAAE1M,KAAKhT,MAAMA,KAAKggB,EAAEhgB,KAAKggB,EAAEhN,KAAKhT,MAAMA,KAAK+oC,EAAE/oC,KAAK+oC,EAAE/1B,KAAKhT,MAAMA,KAAKyf,EAAEzf,KAAKyf,EAAEzM,KAAKhT,KAAK,CAAC,OAAOK,IAAIW,EAAEzB,UAAUc,IAAIW,EAAEtB,UAAUL,OAAOa,OAAOG,GAAGA,EAAEX,YAAYO,YAAYe,EAAEA,EAAEtB,UAAUmqD,kBAAkB,WAAW7pD,KAAKmpC,GAAE,CAAE,EAAEnoC,EAAEtB,UAAUsqD,mBAAmB,SAAS7qD,GAAGA,EAAE4sF,UAAU/rF,KAAKylB,MAAMsmE,SAAS/rF,KAAKwoD,SAAS,CAAC7mD,EAAE3B,KAAKylB,MAAMsmE,QAAQ/rF,KAAKK,EAAEL,KAAKoB,GAAG,EAAEJ,EAAEtB,UAAUqqD,qBAAqB,WAAW/pD,KAAKmpC,GAAE,CAAE,EAAEnoC,EAAEtB,UAAU4mC,EAAE,SAASnnC,GAAGa,KAAKipC,EAAEk8D,QAAQnlG,KAAKwoD,SAAS,CAACjiB,EAAEpnC,EAAEukC,GAAE,EAAG8C,EAAEhU,KAAKC,OAAO,EAAEzxB,EAAEtB,UAAUgnC,EAAE,SAASvnC,GAAG,IAAIkB,EAAEL,KAAKy+C,MAAM19C,EAAEV,EAAEkmC,EAAEvlC,EAAEX,EAAEsB,EAAEP,GAAGpB,KAAKylB,MAAMsmE,QAAQ/rF,KAAKK,EAAEL,KAAKoB,GAAGjC,EAAE4B,EAAEV,EAAE2oC,GAAG7pC,IAAI4B,GAAGf,KAAKwoD,SAAS,CAACxf,GAAE,IAAK,IAAIrnC,EAAEoH,KAAKS,IAAIxJ,KAAKK,EAAE0I,KAAKO,IAAItJ,KAAKoB,EAAEA,IAAIO,IAAIX,GAAGhB,KAAKwoD,SAAS,CAAC7mD,EAAEA,GAAG,EAAEX,EAAEtB,UAAUgqC,EAAE,SAASvqC,GAAG,IAAIkB,EAAEL,KAAKy+C,MAAM19C,EAAEV,EAAEsB,EAAEX,EAAEX,EAAE2oC,EAAE5nC,EAAEf,EAAEmmC,EAAE7kC,EAAE3B,KAAKylB,MAAMsmE,QAAQ3sF,GAAGY,KAAKK,EAAEL,KAAKoB,GAAG,EAAEpB,KAAKwoD,SAAS,CAAC7mD,EAAE3B,KAAKylB,MAAMsmE,QAAQ/rF,KAAKK,EAAEL,KAAKoB,IAAI,IAAIZ,EAAEgyB,KAAKC,MAAMrxB,IAAIJ,GAAGR,EAAE,KAAMmB,GAAGZ,GAAG3B,IAAIuC,GAAGZ,GAAG3B,IAAKY,KAAK4f,EAAEzgB,GAAGa,KAAKmpC,GAAGnpC,KAAKwoD,SAAS,CAACxf,GAAE,EAAGtF,GAAE,IAAK1jC,KAAK4D,EAAE4uB,KAAKC,KAAK,EAAEzxB,EAAEtB,UAAUmE,EAAE,SAAS1E,GAAGA,EAAEy7F,iBAAiB,iBAAiBz7F,EAAEu9F,QAAQ,IAAIv9F,EAAEu9F,SAAS18F,KAAKsmC,EAAEnnC,EAAE68F,SAASl3F,OAAOoP,iBAAiB,YAAYlU,KAAKwD,GAAGsB,OAAOoP,iBAAiB,UAAUlU,KAAKif,GAAG,EAAEje,EAAEtB,UAAU8D,EAAE,SAASrE,GAAGA,EAAEy7F,iBAAiB56F,KAAK0mC,EAAEvnC,EAAE68F,QAAQ,EAAEh7F,EAAEtB,UAAUuf,EAAE,SAAS9f,GAAGa,KAAK0pC,EAAEvqC,GAAG2F,OAAOgQ,oBAAoB,YAAY9U,KAAKwD,GAAGsB,OAAOgQ,oBAAoB,UAAU9U,KAAKif,EAAE,EAAEje,EAAEtB,UAAU8O,EAAE,SAASrP,GAAGa,KAAKspC,EAAE,KAAKtpC,KAAKsmC,EAAEnnC,EAAE2gG,QAAQ,GAAG9D,QAAQ,EAAEh7F,EAAEtB,UAAUwO,EAAE,SAAS/O,GAAGa,KAAK0mC,EAAEvnC,EAAE2gG,QAAQ,GAAG9D,QAAQ,EAAEh7F,EAAEtB,UAAUqgB,EAAE,SAAS5gB,GAAGA,EAAEy7F,iBAAiB56F,KAAK0pC,EAAEvqC,EAAE,EAAE6B,EAAEtB,UAAU0pC,EAAE,SAASjqC,GAAGqzB,KAAKC,MAAMzyB,KAAK4D,EAAE,KAAK5D,KAAK4f,EAAEzgB,GAAGqzB,KAAKC,MAAMzyB,KAAK2S,EAAE,IAAI3S,KAAKmpC,GAAGnpC,KAAKwoD,SAAS,CAAC9kB,GAAE,IAAK,EAAE1iC,EAAEtB,UAAUggB,EAAE,WAAW1f,KAAK2S,EAAE6f,KAAKC,KAAK,EAAEzxB,EAAEtB,UAAUsgB,EAAE,WAAWhgB,KAAKwoD,SAAS,CAAC9kB,GAAE,GAAI,EAAE1iC,EAAEtB,UAAUqpC,EAAE,WAAW/oC,KAAKwoD,SAAS,CAAC9kB,GAAE,GAAI,EAAE1iC,EAAEtB,UAAU+f,EAAE,SAAStgB,GAAGa,KAAKipC,EAAE9pC,CAAC,EAAE6B,EAAEtB,UAAUogB,EAAE,SAAS3gB,GAAGA,EAAEy7F,iBAAiB56F,KAAKipC,EAAEk8D,QAAQnlG,KAAK4f,EAAEzgB,GAAGa,KAAKmpC,GAAGnpC,KAAKwoD,SAAS,CAAC9kB,GAAE,GAAI,EAAE1iC,EAAEtB,UAAUkgB,EAAE,SAASzgB,GAAG,IAAIkB,EAAEL,KAAKylB,OAAM,EAAGplB,EAAEqsD,WAAWrsD,EAAE0rF,QAAQ5sF,EAAEkB,EAAEyO,GAAG,EAAE9N,EAAEtB,UAAUuqD,OAAO,WAAW,IAAI5pD,EAAEL,KAAKylB,MAAMzkB,EAAEX,EAAE0rF,QAAQ3qF,EAAEf,EAAE8sF,SAASxrF,EAAEtB,EAAEurC,UAAUprC,EAAEH,EAAEk8L,SAAS98L,EAAEY,EAAEm8L,QAAQ54L,EAAEvD,EAAEo8L,eAAexuL,EAAE5N,EAAEq8L,cAAc/pL,EAAEtS,EAAEs8L,YAAYtuL,EAAEhO,EAAEu8L,cAAc/tL,EAAExO,EAAEw8L,kBAAkBh5L,EAAExD,EAAEy8L,oBAAoB59K,EAAE7e,EAAE85K,UAAU32K,EAAEnD,EAAE08L,gBAAgB99K,EAAE5e,EAAE6R,OAAO8M,EAAE3e,EAAE4R,MAAM4N,EAAExf,EAAEwtD,aAAar/C,EAAE,SAASrP,EAAEkB,GAAG,IAAIU,EAAE,CAAC,EAAE,IAAI,IAAIC,KAAK7B,EAAEE,OAAOK,UAAUC,eAAeC,KAAKT,EAAE6B,KAAK,IAAIX,EAAEM,QAAQK,KAAKD,EAAEC,GAAG7B,EAAE6B,IAAI,OAAOD,CAAC,CAAxH,CAA0HV,EAAE,CAAC,UAAU,WAAW,YAAY,WAAW,UAAU,iBAAiB,gBAAgB,cAAc,gBAAgB,oBAAoB,sBAAsB,YAAY,kBAAkB,SAAS,QAAQ,eAAe,mBAAmB6N,EAAElO,KAAKy+C,MAAM1+B,EAAE7R,EAAEvM,EAAEme,EAAE5R,EAAE86B,EAAE1pB,EAAEpR,EAAEw1B,EAAE0F,EAAE,CAAC9+B,SAAS,WAAWG,QAAQ,eAAemjD,UAAU,OAAO5f,QAAQ5sC,EAAE,GAAG,EAAEiK,UAAU,MAAMwiD,aAAa5uC,EAAE,EAAE+9K,iBAAiB,gBAAgBC,cAAc,gBAAgB3jG,WAAW,gBAAgB4jG,YAAY,OAAOC,wBAAwB,mBAAmBC,iBAAiB,OAAOC,cAAc,OAAOC,aAAa,OAAOC,WAAW,QAAQ79K,EAAE,CAACxN,OAAO+M,EAAEhN,MAAM+M,EAAEqrC,OAAOthD,KAAKO,IAAI,GAAGtJ,KAAKb,EAAE8f,GAAG,GAAG3U,SAAS,WAAWm+C,WAAWrpD,GAAE2gB,EAAE/f,KAAKK,EAAEL,KAAKoB,EAAEZ,EAAEf,GAAGouD,aAAa,iBAAiBhuC,EAAEA,EAAEZ,EAAE,EAAEsvC,OAAOntD,EAAE,UAAU,UAAU47L,iBAAiBl9K,EAAE,KAAK,mBAAmBm9K,cAAcn9K,EAAE,KAAK,mBAAmBw5E,WAAWx5E,EAAE,KAAK,oBAAoBE,EAAE,CAAC9N,OAAO+M,EAAEhN,MAAMlJ,KAAKS,IAAI,IAAIyV,EAAED,GAAGhf,KAAKb,EAAE8f,GAAG,EAAE,GAAG3U,SAAS,WAAW0jC,SAASjuB,EAAE/f,KAAKoB,IAAIpB,KAAKK,EAAEL,KAAKoB,GAAGo8L,cAAc,OAAOR,iBAAiBl9K,EAAE,KAAK,gBAAgBm9K,cAAcn9K,EAAE,KAAK,gBAAgBw5E,WAAWx5E,EAAE,KAAK,iBAAiBipB,EAAE,CAAC72B,OAAO+M,EAAEhN,MAAMlJ,KAAKS,IAAI,IAAIyV,EAAED,GAAGhf,KAAKb,EAAE8f,GAAG,EAAE,GAAG3U,SAAS,WAAW0jC,QAAQ,GAAGjuB,EAAE/f,KAAKoB,IAAIpB,KAAKK,EAAEL,KAAKoB,GAAGmvB,MAAM,EAAEhmB,IAAI,EAAEizL,cAAc,OAAOR,iBAAiBl9K,EAAE,KAAK,gBAAgBm9K,cAAcn9K,EAAE,KAAK,gBAAgBw5E,WAAWx5E,EAAE,KAAK,iBAAiBL,EAAE,CAACvN,OAAOlS,KAAKb,EAAE8S,MAAMjS,KAAKb,EAAEspD,WAAWrpD,GAAE2gB,EAAE/f,KAAKK,EAAEL,KAAKoB,EAAEwC,EAAEqK,GAAGxD,QAAQ,eAAe8jD,OAAOntD,EAAE,UAAU,UAAUysD,aAAa,iBAAiBhuC,EAAEA,EAAE,EAAE,MAAMvV,SAAS,WAAWsc,UAAU,cAAc7G,EAAE,MAAMxV,IAAIxB,KAAKO,IAAI,GAAG2V,EAAEjf,KAAKb,GAAG,GAAGmrD,QAAQ,EAAE6vH,UAAU76J,EAAE9b,EAAE0b,EAAEuuC,OAAO,EAAEuvI,iBAAiBl9K,EAAE,KAAK,4DAA4Dm9K,cAAcn9K,EAAE,KAAK,4DAA4Dw5E,WAAWx5E,EAAE,KAAK,6DAA6DqpB,EAAE,CAACj3B,OAAOlS,KAAKb,EAAE8S,MAAMjS,KAAKb,EAAE6uC,QAAQjlC,KAAKO,IAAI,GAAG,GAAGyW,EAAE/f,KAAKoB,IAAIpB,KAAKK,EAAEL,KAAKoB,GAAG,IAAI,GAAGkJ,SAAS,WAAWE,KAAK,EAAED,IAAI,EAAEizL,cAAc,OAAOR,iBAAiBl9K,EAAE,KAAK,gBAAgBm9K,cAAcn9K,EAAE,KAAK,gBAAgBw5E,WAAWx5E,EAAE,KAAK,iBAAiBiG,EAAE,CAAC7T,OAAOlS,KAAKb,EAAE8S,MAAMjS,KAAKb,EAAE6uC,QAAQjlC,KAAKO,IAAI,IAAIyW,EAAE/f,KAAKoB,IAAIpB,KAAKK,EAAEL,KAAKoB,GAAG,IAAI,GAAGkJ,SAAS,WAAWE,KAAK,EAAED,IAAI,EAAEizL,cAAc,OAAOR,iBAAiBl9K,EAAE,KAAK,gBAAgBm9K,cAAcn9K,EAAE,KAAK,gBAAgBw5E,WAAWx5E,EAAE,KAAK,iBAAiB,OAAO3gB,EAAAA,cAAgB,MAAM,CAACysC,UAAUjqC,EAAE0I,MAAM++B,GAAGjqC,EAAAA,cAAgB,MAAM,CAACysC,UAAU,kBAAkBvhC,MAAMqV,EAAEyvC,QAAQ/tD,EAAE,KAAKpB,KAAK8f,EAAE29K,YAAY,SAASt+L,GAAG,OAAOA,EAAEy7F,gBAAgB,GAAGjoF,GAAGxT,EAAAA,cAAgB,MAAM,CAACkL,MAAM2V,GAAGrN,GAAGtE,GAAGlP,EAAAA,cAAgB,MAAM,CAACkL,MAAM0+B,GAAG16B,IAAIlP,EAAAA,cAAgB,MAAM,CAACysC,UAAU,sBAAsBvhC,MAAMoV,EAAE0vC,QAAQ,SAAShwD,GAAG,OAAOA,EAAEy7F,gBAAgB,EAAE6iG,YAAYr8L,EAAE,KAAKpB,KAAK6D,EAAE65L,aAAat8L,EAAE,KAAKpB,KAAKwO,EAAEmvL,YAAYv8L,EAAE,KAAKpB,KAAKkO,EAAE0vL,WAAWx8L,EAAE,KAAKpB,KAAK+f,EAAE89K,cAAcz8L,EAAE,KAAKpB,KAAK+oC,GAAGllC,GAAG1E,EAAAA,cAAgB,MAAM,CAACkL,MAAM8+B,GAAGtlC,GAAGgL,GAAG1P,EAAAA,cAAgB,MAAM,CAACkL,MAAM0b,GAAGlX,IAAI1P,EAAAA,cAAgB,QAAQ4B,GAAE,CAAC,EAAE,CAACmK,KAAK,WAAWi/C,KAAK,SAAS,eAAenpD,EAAE+qF,QAAQ/qF,EAAEmsF,SAAS/rF,EAAEiJ,MAAM,CAACojD,OAAO,EAAEje,KAAK,gBAAgBt9B,OAAO,EAAEm4C,QAAQ,EAAEpS,SAAS,SAAS0V,QAAQ,EAAErjD,SAAS,WAAW2H,MAAM,IAAIzD,EAAE,CAAC47C,IAAIpqD,KAAKyf,EAAEyrG,QAAQlrH,KAAKggB,EAAEorG,OAAOprH,KAAK+oC,EAAEyxJ,QAAQx6L,KAAK0f,EAAEgtC,SAAS1sD,KAAKopC,KAAK,EAAEpoC,CAAC,CAA5gM,CAA8gMX,EAAAA,WAAGG,GAAE4qD,aAAa,CAAC+hC,UAAS,EAAGovG,SAAS,OAAOC,QAAQ,OAAOC,eAAe,OAAOC,cAAc,OAAOE,cAAc57L,GAAE27L,YAAYv7L,GAAE+4K,UAAU,KAAK4iB,gBAAgB,mBAAmB7qL,OAAO,GAAGD,MAAM,IC6Gt3O,IAmGA,GAnGe,SAAHksH,GAQL,IAPLjnF,EAAQinF,EAARjnF,SACA5sC,EAAQ6zH,EAAR7zH,SACAwzL,EAAU3/D,EAAV2/D,WACAC,EAAa5/D,EAAb4/D,cACAC,EAAO7/D,EAAP6/D,QACAC,EAAW9/D,EAAX8/D,YACAC,EAAiB//D,EAAjB+/D,kBAE6EztD,EAAAzM,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAGvEsxI,GAHwB1tD,EAAA,GAA4BA,EAAA,GAGtC,CAClBnmI,SAAU,QACVC,IAAkB,WAAbD,EAAwB,QAAU,IACvCkmB,OAAqB,WAAblmB,EAAyBwzL,EAAa,IAAM,QAAW,QAC/DtzL,KAAmB,UAAbF,EAAuB,QAAU,IACvCimB,MAAoB,UAAbjmB,EAAwBwzL,EAAa,IAAM,QAAW,QAC7DM,UAAW,QACXnsL,MAAO,OACP6jC,gBAAiB,2BACjBqX,OAAQ,OACR1iD,QAAS,OACTqjD,cAAe,WAIXuwI,EAAe,CACnBpsL,MAAoB,WAAb3H,EAAwB,OAAS,MAGxC8zL,UAAW,UAEX9zL,SAAU,WACV2jD,WAAyB,UAAb3jD,EAAuB,OAAS,QAC5C0jD,YAA0B,SAAb1jD,EAAsB,OAAS,QAC5CgvF,WAAY,sBACZ1yE,UAAWk3K,EACM,WAAbxzL,EACE,gBACA,gBACW,WAAbA,EACA,mBAAkB,cAAAnH,OACS,UAAbmH,EAAuB,OAAS,QAAO,KACzD0kF,SAAU,EACVvkF,QAAS,OACTqjD,cAAe,WAIjBhB,EAAAA,EAAAA,YAAU,WACHgxI,GACH5B,GAEJ,GAAG,CAAC4B,IAGJ,IAAM5B,EAAc,WACd+B,GAAeC,IACjBF,IACAD,GAAc,GAElB,EAEA,OACEtxD,EAAAA,GAAAA,KAAA,OACE7gG,UAAU,SACVvhC,MAAO8zL,EACP/uI,UAAW,SAAChwD,GACK,YAAV,OAADA,QAAC,IAADA,OAAC,EAADA,EAAGivC,MAAkB6tJ,GAC3B,EACAhtI,SAAU,EACVuuI,YAAa,SAACr+L,GACRA,EAAE0M,SAAW1M,EAAEm7F,eACjB2hG,GAEJ,EAAEhlJ,UAEFszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,gBAAgBvhC,MAAOg0L,EAAannJ,SAAA,EACjDu1F,EAAAA,GAAAA,KAAA,UACEt9E,QAAS,WACP+sI,GACF,EACA7xL,MAAO,CACLC,SAAU,WACVE,KAAM,OACND,IAAK,OACL0H,MAAO,QAET25B,UAAU,YAAWsL,UAErBu1F,EAAAA,GAAAA,KAACq5B,GAAe,CAACl5G,KAAMglI,OAExB16I,MAIT,ECNA,GAxJe,SAAHinF,GAAWA,EAAL7yF,MAA6J,IAAtJgzJ,EAAMngE,EAANmgE,OAAQC,EAAYpgE,EAAZogE,aAAcC,EAAgBrgE,EAAhBqgE,iBAAkBC,EAAYtgE,EAAZsgE,aAAcn7D,EAAMnF,EAANmF,OAAQo7D,EAAwBvgE,EAAxBugE,yBAA0BX,EAAa5/D,EAAb4/D,cAAeY,EAAiBxgE,EAAjBwgE,kBAAmBC,EAAqBzgE,EAArBygE,sBACzIC,EAAa,IAAIrsK,KAAW,OAAN8rK,QAAM,IAANA,OAAM,EAANA,EAAQQ,yBACoBruD,EAAAzM,GAAdn3E,EAAAA,EAAAA,UAAS,MAAK,GAAjDkyI,EAAatuD,EAAA,GAAEuuD,EAAgBvuD,EAAA,GACyBkoC,EAAA30C,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAAxDoyI,EAAiBtmB,EAAA,GAAEumB,EAAkBvmB,EAAA,GACCG,EAAA90C,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAAtCsyI,EAAOrmB,EAAA,GAAEsmB,EAAUtmB,EAAA,IAE1BhsH,EAAAA,EAAAA,YAAU,WACN,IAAIuyI,EAEEC,EAAc,WAChB,IAAM7sK,EAAM,IAAID,KACVm1I,EAAYk3B,EAAapsK,EAE3Bk1I,EAAY,GACTw3B,GAASC,GAAW,GACvBJ,EAAiBr3B,GACbA,EAAY,QAAwBs3B,EACpCC,GAAmB,GACZv3B,GAAa,OACpBu3B,GAAmB,KAGvBE,GAAW,GACXJ,EAAiB,MACjBjsL,cAAcssL,GAEtB,EAMA,OAJAC,IAEAD,EAAWzsL,YAAY0sL,EAAa,KAE7B,kBAAMvsL,cAAcssL,EAAU,CACzC,GAAG,CAACR,EAAYI,IAEhB,IAoBMM,EAAiB,eAAA1iD,EAAA+iC,EAAAC,IAAA7lD,MAAG,SAAA8lD,IAAA,IAAA0f,EAAAC,EAAAlrI,EAAAmrI,EAAAC,EAAAC,EAAAC,EAAA,OAAAhgB,IAAAjpD,MAAA,SAAA3rC,GAAA,cAAAA,EAAAupC,KAAAvpC,EAAArpF,MAAA,OAiBkB,OAfxCoyB,QAAQ8hE,IAAI,mBAAoBwtC,GAQhCtvG,QAAQ8hE,IAAI,SAAUwtC,GAGtBq7D,EAAkB,MAClBC,GAAsB,GACtB95L,OAAOskH,SAAS,EAAE,GAElBhvG,YAAW,kBAAMmkL,GAAa,EAAK,GAAE,GAAGtzG,EAAArpF,KAAA,EAKvBowL,GAAmB,OAANsM,QAAM,IAANA,OAAM,EAANA,EAAQlrB,WAAkB,OAANkrB,QAAM,IAANA,OAAM,EAANA,EAAQzL,mBAAgC,OAAZ4L,QAAY,IAAZA,GAAuB,QAAXe,EAAZf,EAAcrM,iBAAS,IAAAoN,OAAX,EAAZA,EAAyBzsB,OAAoB,OAAZ0rB,QAAY,IAAZA,OAAY,EAAZA,EAActM,SAAsB,OAAZsM,QAAY,IAAZA,OAAY,EAAZA,EAAcrM,UAAuB,OAAZqM,QAAY,IAAZA,OAAY,EAAZA,EAAcpM,WAAY/uD,EAAQ,MAAK,OAAlM/uE,EAAG02B,EAAA9oF,KAETu8L,EAAyBnqI,GAEzBvgC,QAAQ8hE,IAAI,2BAAyBvhC,GAE7B,OAAHA,QAAG,IAAHA,GAAAA,EAAKtxD,OACC,OAAHsxD,QAAG,IAAHA,GAAS,QAANmrI,EAAHnrI,EAAK3mD,YAAI,IAAA8xL,GAATA,EAAW1M,gBACVwL,EAAoB,OAAHjqI,QAAG,IAAHA,GAAS,QAANorI,EAAHprI,EAAK3mD,YAAI,IAAA+xL,OAAN,EAAHA,EAAW3M,cAAc,IAC1C54K,YAAW,kBAAMmkL,GAAa,EAAK,GAAE,GACrCR,GAAc,IAIhB,OAAHxpI,QAAG,IAAHA,GAAS,QAANkrI,EAAHlrI,EAAK3mD,YAAI,IAAA6xL,GAATA,EAAWvM,aAEVyL,EAAqB,OAAHpqI,QAAG,IAAHA,GAAS,QAANqrI,EAAHrrI,EAAK3mD,YAAI,IAAAgyL,OAAN,EAAHA,EAAW1M,YAC7B94K,YAAW,kBAAMmkL,GAAa,EAAM,GAAE,GACtCz5L,OAAOskH,SAAS,EAAGjjH,SAASurB,KAAKouK,gBAGb,KAAlB,OAAHvrI,QAAG,IAAHA,OAAG,EAAHA,EAAK0+H,eACJ2L,GAAsB,GACtB5qK,QAAQ8hE,IAAI,iCAAqC,OAAHvhC,QAAG,IAAHA,GAAS,QAANsrI,EAAHtrI,EAAK3mD,YAAI,IAAAiyL,OAAN,EAAHA,EAAW3M,YAEzDyL,EAAkB,uBAClBvkL,YAAW,kBAAMmkL,GAAa,EAAM,GAAE,GACtCz5L,OAAOskH,SAAS,EAAGjjH,SAASurB,KAAKouK,eAGrClB,GAAsB,GAAO,yBAAA3zG,EAAAnwE,OAAA,GAAAglK,EAAA,KAChC,kBArDsB,OAAAjjC,EAAAp8I,MAAA,KAAAH,UAAA,KAuDvB,OACIkqJ,EAAAA,GAAAA,MAAA,OAAK5+G,UAAWuzJ,EAAO,0BAA+BjoJ,SAAA,EAElDszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,kBAAiBsL,SAAA,EAC5BszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,kBAAiBsL,SAAA,EAC5Bu1F,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,YACf6gG,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,YACf6gG,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,YACf6gG,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,eAEnB4+G,EAAAA,GAAAA,MAAA,KAAGngJ,MAAO,CAAC0sC,MAAO,SAASG,SAAA,CACD,SAAnB,OAANonJ,QAAM,IAANA,OAAM,EAANA,EAAQyB,gBAA0Bv1C,EAAAA,GAAAA,MAAA,QAAMngJ,MAAO,CAACmnB,WAAY,QAAQ0lB,SAAA,CAAC,SAAc,OAANonJ,QAAM,IAANA,OAAM,EAANA,EAAQv8L,UAAsB,OAANu8L,QAAM,IAANA,OAAM,EAANA,EAAQv8L,OAAM,IAAI,cAI5HyoJ,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,gBAAesL,SAAA,EAC1BszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,sBAAqBsL,SAAA,EAChCszG,EAAAA,GAAAA,MAAA,KAAAtzG,SAAA,EACIu1F,EAAAA,GAAAA,KAACq5B,GAAe,CAACl5G,KAAM0kI,GAAUjnL,MAAO,CAAE2jD,YAAa,QAASjX,MAAO,yBAChE,OAANunJ,QAAM,IAANA,OAAM,EAANA,EAAQlrB,eAEb3mC,EAAAA,GAAAA,KAAA,UAAQ7gG,UAAU,iBAAiBuhD,SAAUgyG,EAAShwI,QAASowI,EAAkBroJ,SAAC,cAEtFszG,EAAAA,GAAAA,MAAA,KAAG5+G,UAAU,qBAAoBsL,SAAA,CAAC,QACA,SAAnB,OAANonJ,QAAM,IAANA,OAAM,EAANA,EAAQyB,gBAA0Bv1C,EAAAA,GAAAA,MAAA,QAAMngJ,MAAO,CAACmnB,WAAY,QAAQ0lB,SAAA,CAAC,SAAc,OAANonJ,QAAM,IAANA,OAAM,EAANA,EAAQv8L,UAAsB,OAANu8L,QAAM,IAANA,OAAM,EAANA,EAAQv8L,OAAM,IAAI,sBAGhIyoJ,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,cAAasL,SAAA,EACtBioJ,GAvGI,WAClB,GAAIF,GAAuC,OAAlBF,EAAwB,CAC7C,IAAMz0H,EAAQvhE,KAAKK,MAAO21L,EAAa,MAAwB,MACzDt0H,EAAU1hE,KAAKK,MAAO21L,EAAa,KAAmB,KACtDl0H,EAAU9hE,KAAKK,MAAO21L,EAAa,IAAkB,KAC3D,OAAOv0C,EAAAA,GAAAA,MAAA,KAAAtzG,SAAA,CAAG,gBAAYszG,EAAAA,GAAAA,MAAA,QAAAtzG,SAAA,CAAOozB,EAAM,KAAGG,EAAQ,KAAGI,EAAQ,SAC7D,CAED,OAAO2/E,EAAAA,GAAAA,MAAA,KAAAtzG,SAAA,CAAG,eAEN,WACC,IAAM8oJ,EAAQ,IAAIxtK,KACZytK,EAAmBpB,EAAamB,EAChCE,EAAgBn3L,KAAKgnB,KAAKkwK,EAAgB,OAChD,OAAOC,EAAgB,EAAC,GAAA/8L,OAAM+8L,EAAa,SAAU,SACvD,CALC,KAQP,CAqF6BC,GACZhB,IAAW1yD,EAAAA,GAAAA,KAAA,KAAAv1F,SAAG,gBAGnBu1F,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,eAEf6gG,EAAAA,GAAAA,KAAA,KAAG7gG,UAAU,mBAAkBsL,SACpB,OAANonJ,QAAM,IAANA,OAAM,EAANA,EAAQ/yJ,mBAK7B,ECtLA,GAbmB,SAAH4yF,GACW,IADNiiE,EAAOjiE,EAAPiiE,QAAS7B,EAAYpgE,EAAZogE,aAAcG,EAAwBvgE,EAAxBugE,yBAA0BF,EAAgBrgE,EAAhBqgE,iBAAkBC,EAAYtgE,EAAZsgE,aAAcn7D,EAAMnF,EAANmF,OAAQy6D,EAAa5/D,EAAb4/D,cAAeY,EAAiBxgE,EAAjBwgE,kBAAmBC,EAAqBzgE,EAArBygE,sBAC9IyB,EAAkBliE,EAAlBkiE,mBACA,OACE5zD,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,aAAYsL,SAEf,OAAPkpJ,QAAO,IAAPA,OAAO,EAAPA,EAAS7zI,KAAI,SAAAgtB,GAAI,OAAIkzD,EAAAA,GAAAA,KAAC6zD,GAAM,CAAC3B,kBAAmBA,EAAmBZ,cAAeA,EAAez6D,OAAQA,EAAQo7D,yBAA0BA,EAA0BD,aAAcA,EAAcnzJ,MAAW,OAAJiuC,QAAI,IAAJA,OAAI,EAAJA,EAAM65F,WAAYkrB,OAAQ/kH,EAAMglH,aAAcA,EAAcC,iBAAkBA,EACrRI,sBAAyBA,EACzByB,mBAAsBA,GACtB,KAGV,ECZA,MCDA,GAAwB,qBAAxB,GAA+D,+BCkB/D,GAhBc,SAAHliE,GAAyC,IAAnCoiE,EAAMpiE,EAANoiE,OAAQrpJ,EAAQinF,EAARjnF,SAAmBinF,EAATqiE,UACjC,GAAID,EACF,OACE9zD,EAAAA,GAAAA,KAAA,OACE7gG,UAAW5L,GAKXkX,UAEAu1F,EAAAA,GAAAA,KAAA,OAAK7gG,UAAS,GAAAzoC,OAAK68B,IAAekX,SAAEA,KAG5C,EChBA,GAAgC,yCAAhC,GAAiF,iCAAjF,GAAgI,uCAAhI,GAA6K,+BAA7K,GAAoN,iCAApN,GAAiQ,qCAAjQ,GAA6S,gCCsC7S,GAlC0B,SAAHinF,GAAuC,IAAlC60D,EAAa70D,EAAb60D,cAAeuL,EAAYpgE,EAAZogE,cAEzCzxI,EAAAA,EAAAA,YAAU,WACRhoD,OAAOskH,SAAS,CACd7+G,IAAK,EACLk2L,SAAU,UAEd,GAAG,IAMH,OACEj2C,EAAAA,GAAAA,MAAA,OAAK5+G,UAAW5L,GAAqBkX,SAAA,EAEjCu1F,EAAAA,GAAAA,KAACq5B,GAAe,CAACl6H,UAAW5L,GAAc4sB,KAAMwkI,MAChD3kD,EAAAA,GAAAA,KAAA,UAAQ7gG,UAAW5L,GAAcmvB,QARrB,WAChBovI,GAAa,EACf,EAM2DrnJ,UAACu1F,EAAAA,GAAAA,KAACq5B,GAAe,CAACl5G,KAAM+kI,QAC7EnnC,EAAAA,GAAAA,MAAA,OAAK5+G,UAAW5L,GAAiBkX,SAAA,EAC7BszG,EAAAA,GAAAA,MAAA,KAAG5+G,UAAW5L,GAAYkX,SAAA,CAAe,OAAb87I,QAAa,IAAbA,OAAa,EAAbA,EAAe5f,WAAW,eAEtD5oB,EAAAA,GAAAA,MAAA,OAAKngJ,MAAO,CAACI,QAAS,OAASqjD,cAAe,SAAU4yI,IAAK,QAAQxpJ,SAAA,EACrEu1F,EAAAA,GAAAA,KAAA,KAAG7gG,UAAW5L,GAAmBkX,SAAe,OAAb87I,QAAa,IAAbA,OAAa,EAAbA,EAAeznJ,eAGlDkhG,EAAAA,GAAAA,KAAA,KAAG7gG,UAAW5L,GAAYkX,SAAC,oDAG3Bu1F,EAAAA,GAAAA,KAAA,KAAG7gG,UAAW5L,GAAYmvB,QAAS,kBAAMovI,GAAa,EAAM,EAACrnJ,SAAC,cAI1E,ECpCA,GAA8B,qCCiI9B,GAzHwB,SAAHinF,GAAYA,EAAPwiE,QACC,IADQC,EAAYziE,EAAZyiE,aAAc7C,EAAa5/D,EAAb4/D,cAAeqC,EAAOjiE,EAAPiiE,QAASS,EAAc1iE,EAAd0iE,eAAgB1O,EAAQh0D,EAARg0D,SAAUC,EAASj0D,EAATi0D,UAAWC,EAAUl0D,EAAVk0D,WAAY/uD,EAAMnF,EAANmF,OAAQo7D,EAAwBvgE,EAAxBugE,yBAA0BF,EAAgBrgE,EAAhBqgE,iBAAkBD,EAAYpgE,EAAZogE,aAAcI,EAAiBxgE,EAAjBwgE,kBAAmBmC,EAAc3iE,EAAd2iE,eAAiBlC,EAAqBzgE,EAArBygE,sBAC9NyB,EAAkBliE,EAAlBkiE,mBAGwD5vD,EAAAzM,GAAZn3E,EAAAA,EAAAA,UAAS,IAAG,GAA/Ck0I,EAAatwD,EAAA,GAAEuwD,EAAgBvwD,EAAA,GAIYkoC,EAAA30C,GAAVn3E,EAAAA,EAAAA,YAAU,GAA3C4xI,EAAY9lB,EAAA,GAAEsoB,EAAetoB,EAAA,IAIpC7rH,EAAAA,EAAAA,YAAU,WACRm0I,EAAgB,CACZ9O,SAAUA,EACVC,UAAWA,EACXC,WAAYA,GAEpB,GAAG,CAACF,EAAUC,EAAWC,KAIvBvlI,EAAAA,EAAAA,YAAU,kBAAM6xI,EAAkB,KAAK,GAAE,IAGzC,IAAMY,EAAiB,eAAA1iD,EAAA+iC,EAAAC,IAAA7lD,MAAG,SAAA8lD,IAAA,IAAA4f,EAAAE,EAAArrI,EAAAorI,EAAAF,EAAAI,EAAAqB,EAAAC,EAAA,OAAAthB,IAAAjpD,MAAA,SAAA3rC,GAAA,cAAAA,EAAAupC,KAAAvpC,EAAArpF,MAAA,OAegB,OAbxCoyB,QAAQ8hE,IAAI,mBAAoBwtC,GAQhCq7D,EAAkB,MAClBC,GAAsB,GACtB95L,OAAOskH,SAAS,EAAE,GAGlBhvG,YAAW,kBAAMmkL,GAAa,EAAK,GAAE,GAAGtzG,EAAArpF,KAAA,EAEvBowL,GAAa+O,EAAe,KAAe,OAAT3O,QAAS,IAATA,OAAS,EAATA,EAAWrf,OAAQof,EAAUC,EAAWC,EAAY/uD,EAAQ,MAAK,OAI7G,QAJF/uE,EAAG02B,EAAA9oF,YAID,IAAHoyD,GAAS,QAANmrI,EAAHnrI,EAAK3mD,YAAI,IAAA8xL,GAATA,EAAWzM,aACbyL,EAAyBnqI,GAE5BvgC,QAAQ8hE,IAAI,2BAAyBvhC,GAE7B,OAAHA,QAAG,IAAHA,GAAAA,EAAKtxD,OACD,OAAHsxD,QAAG,IAAHA,GAAS,QAANorI,EAAHprI,EAAK3mD,YAAI,IAAA+xL,GAATA,EAAW3M,gBACZwL,EAAoB,OAAHjqI,QAAG,IAAHA,GAAS,QAANkrI,EAAHlrI,EAAK3mD,YAAI,IAAA6xL,OAAN,EAAHA,EAAWzM,cAAc,IAC1C54K,YAAW,kBAAMmkL,GAAa,EAAK,GAAE,GACrCR,GAAc,IAIZ,OAAHxpI,QAAG,IAAHA,GAAS,QAANqrI,EAAHrrI,EAAK3mD,YAAI,IAAAgyL,GAATA,EAAW1M,aACZl/J,QAAQ8hE,IAAI,iCAAqC,OAAHvhC,QAAG,IAAHA,GAAS,QAANsrI,EAAHtrI,EAAK3mD,YAAI,IAAAiyL,OAAN,EAAHA,EAAW3M,YAEzDyL,EAAqB,OAAHpqI,QAAG,IAAHA,GAAS,QAAN2sI,EAAH3sI,EAAK3mD,YAAI,IAAAszL,OAAN,EAAHA,EAAWhO,YAC7B94K,YAAW,kBAAMmkL,GAAa,EAAM,GAAE,GACtCz5L,OAAOskH,SAAS,EAAGjjH,SAASurB,KAAKouK,gBAGX,KAAlB,OAAHvrI,QAAG,IAAHA,OAAG,EAAHA,EAAK0+H,eACN2L,GAAsB,GACtB5qK,QAAQ8hE,IAAI,iCAAqC,OAAHvhC,QAAG,IAAHA,GAAS,QAAN4sI,EAAH5sI,EAAK3mD,YAAI,IAAAuzL,OAAN,EAAHA,EAAWjO,YAEzDyL,EAAkB,uBAClBvkL,YAAW,kBAAMmkL,GAAa,EAAM,GAAE,GACtCz5L,OAAOskH,SAAS,EAAGjjH,SAASurB,KAAKouK,eAGnClB,GAAsB,GAAO,yBAAA3zG,EAAAnwE,OAAA,GAAAglK,EAAA,KAChC,kBApDwB,OAAAjjC,EAAAp8I,MAAA,KAAAH,UAAA,KA4DzB,OANAwsD,EAAAA,EAAAA,YAAU,WACR,OAAO,kBAAMyxI,GAAa,EAAO,CACnC,GAAE,KAKA9xD,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAx1F,UACAszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,kBAAiBsL,SAAA,EAC5BszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,mBAAkBsL,SAAA,EAC7BszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,kBAAiBsL,SAAA,EAC5Bu1F,EAAAA,GAAAA,KAAA,UAAQ7gG,UAAU,iBAAiBujB,QAAS,kBAAM4uI,GAAc,EAAM,EAAC7mJ,UAACu1F,EAAAA,GAAAA,KAACq5B,GAAe,CAACl5G,KAAM4kI,QAC/F/kD,EAAAA,GAAAA,KAAA,OAAAv1F,UACIu1F,EAAAA,GAAAA,KAAA,KAAAv1F,SAAG,uBAIXszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,SAAQsL,SAAA,EACfu1F,EAAAA,GAAAA,KAAA,SAAOvhI,KAAK,OAAOwhD,SAAU,SAACttD,GAAC,IAAAq7L,EAAA,OAAKuG,EAAkB,OAAD5hM,QAAC,IAADA,GAAS,QAARq7L,EAADr7L,EAAG0M,cAAM,IAAA2uL,OAAR,EAADA,EAAW14L,MAAM,EAAEA,MAAOg/L,EAAe91E,YAAY,uBAC1GwhB,EAAAA,GAAAA,KAAA,UAAQt/C,SAAmC,KAAZ,OAAb4zG,QAAa,IAAbA,OAAa,EAAbA,EAAe9rL,QAAc22B,UAAU,kCAAkCujB,QAASowI,EAAkBroJ,SAAC,cAEhIu1F,EAAAA,GAAAA,KAAA,QAAM7gG,UAAU,UAASsL,SAAE4pJ,GAAkB,uCAG/CD,IAAmBD,IAAgBn0D,EAAAA,GAAAA,KAAA,KAAG7gG,UAAW5L,GAAmBkX,SAAC,iBAEpE2pJ,GAAkBD,IAAgBn0D,EAAAA,GAAAA,KAAA,KAAG7gG,UAAW5L,GAAmBkX,SAAE0pJ,IAEtER,IAAYS,IAAkBp0D,EAAAA,GAAAA,KAAC20D,GAAU,CAACzC,kBAAmBA,EAAmBH,iBAAkBA,EAAkBE,yBAA0BA,EAA0Bp7D,OAAQA,EAAQm7D,aAAcA,EAAc2B,QAASA,EAAS7B,aAAcA,EAAcR,cAAeA,EAChRa,sBAAyBA,EACzByB,mBAAsBA,QAUhC,EC7EA,SAASgB,GAAWl6L,GAClB,OAAO,IAAIzF,SAAQ,SAACiC,GAClB,IAAMswH,EAAS9tH,SAASC,cAAc,UACtC6tH,EAAO9sH,IAAMA,EACb8sH,EAAOS,OAAS,WACd/wH,GAAQ,EACV,EACAswH,EAAOQ,QAAU,WACf9wH,GAAQ,EACV,EACAwC,SAASurB,KAAKnd,YAAY0/G,EAC5B,GACF,CACA,IAo5BA,GAp5B0B,SAAHkK,GAAqB,IAAD69D,EAAAC,EAAAqF,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAd9wD,EAAO1S,EAAP0S,QAC8BJ,EAAAzM,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAAlD+0I,EAAanxD,EAAA,GAAEoxD,EAAgBpxD,EAAA,GAEakoC,EAAA30C,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAA5CsmH,EAAUwF,EAAA,GAAEmpB,EAAanpB,EAAA,GACqBG,EAAA90C,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAA9Ck1I,EAAWjpB,EAAA,GAAEkpB,EAAclpB,EAAA,GACgBG,EAAAj1C,GAAdn3E,EAAAA,EAAAA,UAAS,MAAK,GAA3CumH,EAAU6F,EAAA,GAAEgpB,EAAahpB,EAAA,GACcK,EAAAt1C,GAAdn3E,EAAAA,EAAAA,UAAS,MAAK,GAAvCwmH,EAAQiG,EAAA,GAAE4oB,EAAW5oB,EAAA,GACYG,EAAAz1C,GAAdn3E,EAAAA,EAAAA,UAAS,MAAK,GAAjCslI,EAAQ1Y,EAAA,GAAE0oB,EAAK1oB,EAAA,GAE6BG,EAAA51C,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAA5CmoI,EAAUpb,EAAA,GAAEqb,EAAarb,EAAA,GAEiBsb,EAAAlxD,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAA1Cu1I,EAASlN,EAAA,GAAEmN,EAAYnN,EAAA,GAC2BE,EAAApxD,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAAlDy1I,EAAalN,EAAA,GAAEmN,EAAgBnN,EAAA,GAEOG,EAAAvxD,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAAtC21I,EAAOjN,EAAA,GAAEkN,EAAUlN,EAAA,GAEyBG,EAAA1xD,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAA5CixI,EAAUpI,EAAA,GAAEqI,EAAarI,EAAA,GACyBG,EAAA7xD,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAAlD61I,EAAa7M,EAAA,GAAE8M,EAAgB9M,EAAA,GAEQG,EAAAhyD,GAAVn3E,EAAAA,EAAAA,YAAU,GAAvC+1I,EAAU5M,EAAA,GAAE6M,EAAa7M,EAAA,GAC2BG,EAAAnyD,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAApDg0I,GAAc1K,EAAA,GAAE2M,GAAiB3M,EAAA,GACUS,GAAA5yD,GAAVn3E,EAAAA,EAAAA,YAAU,GAEIkqI,IAFnCH,GAAA,GAAiBA,GAAA,GAEkB5yD,GAAVn3E,EAAAA,EAAAA,YAAU,IAA/Ci0I,GAAc/J,GAAA,GAAE4H,GAAiB5H,GAAA,GACsBE,GAAAjzD,GAAVn3E,EAAAA,EAAAA,YAAU,GAAvDwzI,GAAkBpJ,GAAA,GAAE2H,GAAqB3H,GAAA,GAEVK,GAAAtzD,GAAVn3E,EAAAA,EAAAA,YAAU,GAA/By2E,GAAMg0D,GAAA,GAAEt/K,GAASs/K,GAAA,GAExByL,GAA6Cl1D,IAC3C,SAACpvF,GAAK,OAAKA,EAAMi4I,UAAU,IADrBD,GAAgBsM,GAAhBtM,iBAAkBE,GAAcoM,GAAdpM,eAIuBc,GAAAzzD,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAA1Cm2I,GAASvL,GAAA,GAAE8G,GAAY9G,GAAA,GAC0BE,GAAA3zD,GAAdn3E,EAAAA,EAAAA,UAAS,MAAK,GAAjDmmI,GAAa2E,GAAA,GAAE6G,GAAgB7G,GAAA,GAGhCpf,GAAe,WACnB0c,GAAeD,EACjB,EAEMuB,GAAWjvD,KACX27D,GAAc77D,KAC8B6yD,GAAAj2D,GAAdn3E,EAAAA,EAAAA,UAAS,MAAK,GAA3Cq2I,GAAUjJ,GAAA,GAAEkJ,GAAalJ,GAAA,GAE1BkC,GAAWtuD,IAAY,SAACpvF,GAAK,OAAKA,CAAK,IACvC+3I,GAAgB2F,GAAShlB,QAAQpD,SACjCmjB,GAA+B,QAArB8E,EAAGG,GAASxrD,iBAAS,IAAAqrD,OAAA,EAAlBA,EAAoBlmB,YACjCsmB,GAA8B,QAArBH,EAAGE,GAASxrD,iBAAS,IAAAsrD,OAAA,EAAlBA,EAAoBjmB,KAChCqmB,GAAiC,QAArBiF,EAAGnF,GAASxrD,iBAAS,IAAA2wD,OAAA,EAAlBA,EAAoBrrB,QACnCmtB,GAAmB,OAARjH,SAAQ,IAARA,IAAmB,QAAXoF,EAARpF,GAAUxrD,iBAAS,IAAA4wD,OAAX,EAARA,EAAqB3wD,UAGhCwhD,GAAY+J,GAAShlB,QAAQ1E,YAE7Bz3G,GAAgB,OAARmhI,SAAQ,IAARA,IAAmB,QAAXqF,EAARrF,GAAUxrD,iBAAS,IAAA6wD,OAAX,EAARA,EAAqBxmI,MAE7BqoI,GAAoBlH,GAAShlB,QAAQ3E,eAErC6f,GAAa+P,EAA6B,OAAjBiB,SAAiB,IAAjBA,QAAiB,EAAjBA,GAAmBtJ,YAAc,EAE1DuJ,GAAWnH,GAAShlB,QAAQ1E,YAC5B8wB,GAAwB,OAARpH,SAAQ,IAARA,IAAmB,QAAXsF,EAARtF,GAAUxrD,iBAAS,IAAA8wD,OAAX,EAARA,EAAqBvrB,eACvCxkH,GAAOryD,OAAOqyD,KAAK4xI,IAGrB5xI,GADE4xI,GAAS3uB,SAAW,EACf,CAAC,SAAU,WAAY,QAAS,gBAEhC,CAAC,SAAU,QAAS,gBAK7B,IAAM6uB,GAAe,WACnBb,EAAiB79L,OAAOkoD,WAAa,IACvC,GAGAF,EAAAA,EAAAA,YAAU,WAKR,OAJA02I,KACA1+L,OAAOoP,iBAAiB,SAAUsvL,IAG3B,WACL1+L,OAAOgQ,oBAAoB,SAAU0uL,GACvC,CAEF,GAAG,IAGH,IAAMC,GAAY,eAAA5mD,EAAA+iC,EAAAC,IAAA7lD,MAAG,SAAA8lD,EAAO9kH,EAAO1wC,EAAQo5K,EAAUhR,EAAWC,EAAS3f,GAAS,IAAA+f,EAAA4Q,EAAAC,EAAA,OAAA/jB,IAAAjpD,MAAA,SAAA3rC,GAAA,cAAAA,EAAAupC,KAAAvpC,EAAArpF,MAAA,OAI7C,OAHnCkhM,IAAkB,GAClBd,EAAe,MAEfhuK,QAAQ8hE,IAAI,eAAgB96B,GAAOiwB,EAAArpF,KAAA,EACjBkyL,GAAOmP,GAAYpxL,UAAS,OAAxCkhL,EAAG9nG,EAAA9oF,KACTghM,GAAcpQ,GAEd/6K,GAAU,CACRs6K,YAAcS,EACdR,YAAcjoK,EACdkoK,aAAc,MACdqR,QAASH,EACTjR,WAAYzf,EACZ0f,UAAWA,EACXC,QAASA,IAGX,IAEA1oC,GAAAA,IAAU4nC,GAAS,mBAAqB,CACpCvuD,OAAMynB,GAAA,CACJunC,YAAcS,EACdR,YAAcjoK,EACdkoK,aAAc,MAEdC,WAAYzf,EACZ0f,UAAWA,EACXC,QAAAA,GAAO,UAAEA,GAEXt5C,QAASr+E,EAAQ,CAAE,cAAgB,UAAD73D,OAAY63D,IAAW,CAAC,IAE3Dh5D,MAAK,SAAAuyD,GAAQ,IAADmrI,EACboD,IAAkB,GAClBd,EAAe,MAEfhuK,QAAQ8hE,IAAI,cAAkB,OAAHvhC,QAAG,IAAHA,OAAG,EAAHA,EAAK3mD,MAChCi1L,EAAiB,OAAHtuI,QAAG,IAAHA,GAAS,QAANmrI,EAAHnrI,EAAK3mD,YAAI,IAAA8xL,OAAN,EAAHA,EAAW9xL,KAC3B,IAAIk9C,OAAM,SAAA+7B,GAAQ,IAADi9G,EAAAC,EACfjB,IAAkB,GAClBd,EAAkB,OAAHn7G,QAAG,IAAHA,GAAa,QAAVi9G,EAAHj9G,EAAKn2E,gBAAQ,IAAAozL,GAAM,QAANC,EAAbD,EAAel2L,YAAI,IAAAm2L,OAAhB,EAAHA,EAAqB/sF,SAEpChjF,QAAQ/wB,MAAM,6BAChB,GAEA,CAEA,MAAM4jF,GACJi8G,IAAkB,GAClBd,EAAkB,OAAHn7G,QAAG,IAAHA,GAAa,QAAV88G,EAAH98G,EAAKn2E,gBAAQ,IAAAizL,GAAM,QAANC,EAAbD,EAAe/1L,YAAI,IAAAg2L,OAAhB,EAAHA,EAAqB5sF,SAEpChjF,QAAQ/wB,MAAM,6BAChB,CAAC,wBAAAgoF,EAAAnwE,OAAA,GAAAglK,EAAA,KAEF,gBAtDiB/pD,EAAA8sD,EAAAC,EAAAC,EAAAC,EAAAqF,GAAA,OAAAxrC,EAAAp8I,MAAA,KAAAH,UAAA,MAwDlBwsD,EAAAA,EAAAA,YAAU,WACLw2I,IACDG,GAAazoI,GAAe,OAARsoI,SAAQ,IAARA,QAAQ,EAARA,GAAU5wB,OAAgB,OAAR4wB,SAAQ,IAARA,QAAQ,EAARA,GAAUvwB,OAAgB,OAARuwB,SAAQ,IAARA,QAAQ,EAARA,GAAU/vB,SAAkB,OAAR+vB,SAAQ,IAARA,QAAQ,EAARA,GAAUhwB,OAAgB,OAARgwB,SAAQ,IAARA,QAAQ,EAARA,GAAUtwB,UAE5G,GAAG,CAACh4G,MAEJlO,EAAAA,EAAAA,YAAU,WACRq1I,EAAM,CACJzvB,OAAQ0f,GAAU1f,OAClBogB,MAAOV,GAAU,gBACjBzf,MAAOyf,GAAUzf,OAYrB,GAAG,IAEH,IAAMqxB,GAAkB,eAAA5+D,EAAAw6C,EAAAC,IAAA7lD,MAAG,SAAA+tD,IAAA,OAAAlI,IAAAjpD,MAAA,SAAAqxD,GAAA,cAAAA,EAAAzzD,KAAAyzD,EAAArmL,MAAA,OACzBygM,GAAa,SAAC4B,GAAW,OAAMA,CAAW,IAAE,wBAAAhc,EAAAntK,OAAA,GAAAitK,EAAA,KAC7C,kBAFuB,OAAA3iD,EAAA3kI,MAAA,KAAAH,UAAA,KAIlB4jM,GAAa,eAAA35D,EAAAq1C,EAAAC,IAAA7lD,MAAG,SAAAgwD,IAAA,IAAAma,EAAAC,EAAA,OAAAvkB,IAAAjpD,MAAA,SAAA0zD,GAAA,cAAAA,EAAA91D,KAAA81D,EAAA1oL,MAAA,cAAA0oL,EAAA1oL,KAAA,EAGK4xL,GACvBpgB,EACAgf,GAAU1f,OACV0f,GAAUrf,OACVof,EACAC,GACAC,IACA,KAAD,EAPK8R,EAAU7Z,EAAAnoL,KAShB6xB,QAAQ8hE,IAAIquG,EAAW/R,GAAU,iBACR,OAArB+R,EAAWlhM,QAEX8wG,GAAS2gE,GAAmByvB,EAAWv2L,OACvC20L,EAAiBH,GAEb9+D,EAAS,CACfgvD,YAAc4Q,GACd3Q,YAAsB,OAAR+Q,SAAQ,IAARA,QAAQ,EAARA,GAAU5wB,OACxB8f,aAAc,MACdqR,QAAiB,OAARP,SAAQ,IAARA,QAAQ,EAARA,GAAUvwB,OACnB2f,UAAmB,OAAR4Q,SAAQ,IAARA,QAAQ,EAARA,GAAU/vB,SACrBof,QAAiB,OAAR2Q,SAAQ,IAARA,QAAQ,EAARA,GAAUhwB,QAGlB0f,IAEC54K,WAAUwlK,EAAAC,IAAA7lD,MAAC,SAAA2vD,IAAA,OAAA9J,IAAAjpD,MAAA,SAAAgzD,GAAA,cAAAA,EAAAp1D,KAAAo1D,EAAAhoL,MAAA,cAAAgoL,EAAAhoL,KAAA,EACSowL,GAA0B,OAAbgB,SAAa,IAAbA,QAAa,EAAbA,GAAe5f,WAAoB,OAARkwB,SAAQ,IAARA,QAAQ,EAARA,GAAU5wB,OAAgB,OAAR4wB,SAAQ,IAARA,QAAQ,EAARA,GAAUvwB,OAAQof,EAAUC,GAAWC,GAAY/uD,EAAQtoE,IAAM,OAApI4uH,EAAAznL,KAAA,wBAAAynL,EAAA9uK,OAAA,GAAA6uK,EAAA,KAKR,IAGN,wBAAAW,EAAAxvK,OAAA,GAAAkvK,EAAA,KAEF,kBAxCkB,OAAAz/C,EAAA9pI,MAAA,KAAAH,UAAA,MA0CnBwsD,EAAAA,EAAAA,YAAU,WAERo3I,IAEF,GAAG,CAAC9B,IAEJ,IAAA/K,GAIItG,KAFFf,IADQqH,GAARrJ,SACYqJ,GAAZrH,cAIIj8E,IAHesjF,GAAnBrb,UAAa1zC,OAGE+G,MAEXusC,GAAQ,eAAAkJ,EAAAlF,EAAAC,IAAA7lD,MAAG,SAAAywD,EAAO78K,GAAI,OAAAiyK,IAAAjpD,MAAA,SAAAm0D,GAAA,cAAAA,EAAAv2D,KAAAu2D,EAAAnpL,MAAA,wBAAAmpL,EAAAjwK,OAAA,GAAA2vK,EAAA,KAAO,gBAArBZ,GAAA,OAAA/E,EAAArkL,MAAA,KAAAH,UAAA,KAER+jM,GAAe,eAAAlf,EAAAvF,EAAAC,IAAA7lD,MAAG,SAAAgyD,IAAA,IAAA2H,EAAA2Q,EAAA,OAAAzkB,IAAAjpD,MAAA,SAAA61D,GAAA,cAAAA,EAAAj4D,KAAAi4D,EAAA7qL,MAAA,OA+BrB,OA9BG+xL,EAAY,CACd5gB,OAAQqf,GAAUrf,OAClBC,UAAWof,GAAUpf,UACrBqlB,QAASjG,GAAUxe,MAAMjnK,WACzB0nK,SAAU+d,GAAU1f,OACpB4B,QAAS8d,GAAU,gBACnB7d,QAAS6d,GAAUzf,MACnBM,WAAYmf,GAAUnf,WACtBsxB,WAAY,IACZC,cAAe,IACfrxB,WAAYA,EACZC,WAAYA,EACZC,SAAUA,EACVoxB,WAAY,IACZC,QAAS,IACTC,UAAW,IACX3uB,KAAMomB,IAAwB,GAC9B1D,QAAStG,GAAUte,QACnBmC,QAASomB,IAA8B,GACvCuI,OAAQ,IACRC,YAAa,SACbC,cAAe,IACf9zL,OAAQ,aACR+zL,UAAW,yBACXC,SAAU,aACVlyB,UAAWsf,GAAUtf,UACrBQ,OAAQ8e,GAAU9e,OAClB2xB,UAAW1B,IAAgC,EAC3C2B,gBAAkC,OAAjB7B,SAAiB,IAAjBA,QAAiB,EAAjBA,GAAmBvJ,YACpCqL,gBAAiB9S,IAClB5F,EAAAj4D,KAAA,EAAAi4D,EAAA7qL,KAAA,EAGyB8xL,GAAYC,EAAWxB,EAAUC,IAAW,KAAD,EAA7DkS,EAAS7X,EAAAtqL,KAEf4zL,GAAa,WACbhiF,GACEmhE,GAAkB,CAChBzB,QAAS6wB,EAAUx1L,GACnB4kK,cAAe4wB,EAAU5wB,cACzBC,eAAgB2wB,EAAU3wB,kBAG9B8Y,EAAA7qL,KAAA,gBAAA6qL,EAAAj4D,KAAA,EAAAi4D,EAAAhK,GAAAgK,EAAA,SAGEA,EAAAhK,GAAE/xK,UAC0B,yCAA5B+7K,EAAAhK,GAAE/xK,SAAS9C,KAAKopG,SAEhBuhE,KAEFwd,GAAa,SACbG,IAAiB,GACjBliK,QAAQ8hE,IAAI,uBAAsB22F,EAAAhK,IAAK,QAEzCyT,IAAiB,GACjBN,IAAW,GAAO,yBAAAnJ,EAAA3xK,OAAA,GAAAkxK,EAAA,kBACnB,kBA1DoB,OAAA7G,EAAA1kL,MAAA,KAAAH,UAAA,MA4DrBwsD,EAAAA,EAAAA,YAAU,WACRopI,IAAiB,GACjBN,IAAW,GAEXyO,IACF,GAAG,CAACjxB,EAAYgpB,GAAWC,GAAciG,IAEzC,IA6G6C8C,GAAAphE,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAAtC8oI,GAAOyP,GAAA,GAAExP,GAAUwP,GAAA,GACoBC,GAAArhE,GAAZn3E,EAAAA,EAAAA,UAAS,IAAG,GAAvCipI,GAASuP,GAAA,GAAEtP,GAAYsP,GAAA,GAC2BC,GAAAthE,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAAlDopI,GAAaqP,GAAA,GAAEpP,GAAgBoP,GAAA,GACyBC,GAAAvhE,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAAxD+nI,GAAiB2Q,GAAA,GAAE1Q,GAAkB0Q,GAAA,GACcC,GAAAxhE,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAAnD44I,GAAcD,GAAA,GAAEE,GAAgBF,GAAA,IAEvC14I,EAAAA,EAAAA,YAAU,WACJoqI,IACFrC,IAAmB,GAGjBuO,IAAUsC,IAAiB,EACjC,GAAG,CAACxO,GAAYkM,KAEhB,IAUMuC,GAAW,eAAAjc,EAAA9J,EAAAC,IAAA7lD,MAAG,SAAA4yD,IAAA,IAAA5/F,EAAAu5F,EAAAwR,EAAA,OAAAlY,IAAAjpD,MAAA,SAAAm2D,GAAA,cAAAA,EAAAv4D,KAAAu4D,EAAAnrL,MAAA,OAED,GADjBs0L,IAAiB,GACjBN,IAAW,KACP0N,GAAS,gBAAkB,GAAC,CAAAvW,EAAAnrL,KAAA,SAWzB,GAVLqoJ,GAAM,CACJpyB,OAAQ,QACRl2B,IAAKkwF,GAAS,sBAAwByR,GAAS5vB,cAC/C9lK,KAAM,CAAEm3L,UAAW,oCAElB/iM,MAAK,SAAC0O,GACLqlL,GAAa,UACf,IACCjrI,OAAM,SAAC7nD,GACN8yL,GAAa,QACf,IAEG0P,GAAe,CAAD1Y,EAAAnrL,KAAA,gBAAAmrL,EAAAnrL,KAAA,EACCy/L,GAChB,gDACA,KAAD,EAFQ,GAAAtU,EAAA5qL,KAIA,CAAD4qL,EAAAnrL,KAAA,SACgD,OAAtDgkM,MAAM,gDAAgD7Y,EAAAn0D,OAAA,kBAGlD5rC,EAAU,CACd3+C,IAAK0jJ,GACL8T,SAAU,MACVv7K,OAAQg5K,GAAS,gBACjBwC,SAAUxC,GAAS7vB,QACnBl+J,KAAMi6H,GAAeqB,GAAST,UAAY,MAAQkzD,GAAS/tL,KAG3Dg2B,YAAa,GAEbw6J,MAAO,mBACPC,MAAO,CAELjvJ,MAAO,SAETkvJ,QAAS,SAAUv1L,GAIbA,GACF6lL,GAAS,IAADpzL,OACFszL,GAAgB,KAAAtzL,OAAIwzL,GAAc,KAAAxzL,OAAIqzL,GAAa,UAG7D,EACA0P,MAAO,CACLC,UAAW,WAETjQ,IAAiB,GAQHjsC,GAAM,CAClBpyB,OAAQ,QACRl2B,IACEkwF,GAAM,sBAA2ByR,GAAS5vB,cAC5C9lK,KAAM,CAAEm3L,UAAW,oCAElB/iM,MAAK,SAAC0O,GACLsjB,QAAQ8hE,IAAI,GACd,IACChrC,OAAM,SAAC7nD,GACN+wB,QAAQ8hE,IAAI,GACd,GACJ,EAGA05B,QAAQ,EAGR42E,eAAe,GAEjBC,QAAS,CACP9wL,KAAM+tL,GAASzvB,UACfvyE,MAAOgiG,GAAShiG,MAChBglG,aAAchD,GAAS1vB,OAEzB2yB,MAAO,CACLC,YAAalD,GAAS3vB,eACtBb,UAAWwwB,GAASxwB,UACpB2zB,KAAMnD,GAASvwB,OACf2zB,UAAWtE,EAAY,EAAI,EAC3BuE,SAAUrD,GAAShwB,OACnBszB,QAAStD,GAAStwB,UAClBz9J,KAAM+tL,GAAS,aACfrgE,OAAQqgE,GAAS/vB,SACjBz+F,KAAMwuH,GAAS9vB,SACfjuF,MAAO+9G,GAAS,kBAChB5K,QAAS,EACTp3F,MAAOgiG,GAAShiG,MAChBuyE,UAAWyvB,GAASzvB,UACpBoxB,UAAW1B,IAAgC,IAGzB,IAAIz+L,OAAO+hM,SAAS75G,GAC5B/7E,OAAO87K,EAAAnrL,KAAA,iBAEforF,EAAU,CACd3+C,IAAK0jJ,GACL8T,SAAU,MACVv7K,OAAQg5K,GAAS,gBACjBwC,SAAUxC,GAAS7vB,QACnBl+J,KAAMi6H,GAAeqB,GAAST,UAAY,MAAQkzD,GAAS/tL,KAC3Dg2B,YAAa,GACbw6J,MAAO,mBACPC,MAAO,CACLjvJ,MAAO,SAETsvJ,QAAS,CACP9wL,KAAM+tL,GAASzvB,UACfvyE,MAAOgiG,GAAShiG,MAChB+2F,QAASiL,GAAS1vB,OAEpB2yB,MAAO,CACLC,YAAalD,GAAS3vB,eACtBb,UAAWwwB,GAASxwB,UACpB2zB,KAAMnD,GAASvwB,OACf4zB,SAAUrD,GAAShwB,OACnBszB,QAAStD,GAAStwB,UAClBz9J,KAAM+tL,GAAS,aACfrgE,OAAQqgE,GAAS/vB,SACjBz+F,KAAMwuH,GAAS9vB,SACfjuF,MAAO+9G,GAAS,kBAChB5K,QAAS,EACTp3F,MAAOgiG,GAAShiG,MAChBuyE,UAAWyvB,GAASzvB,UACpBoxB,UAAW1B,IAAgC,IAG/Cz+L,OAAO6M,SAASiiB,KAAI,GAAAzwB,OAAMszL,GAAgB,KAAAtzL,OAAIwzL,GAAc,KAAAxzL,OAAIqzL,GAAa,kBAAArzL,OAAiB6L,KAAKE,UACjG89E,IACE,QAAA+/F,EAAAnrL,KAAA,iBAGFm2L,EAAW,CACblkB,UAAWyvB,GAASzvB,UACpBvyE,MAAOgiG,GAAShiG,MAChBqlG,SAAUrD,GAAShwB,OACnBmzB,KAAMnD,GAASvwB,OACf6zB,QAAStD,GAAStwB,UAClBz9J,KAAM+tL,GAAS,aACfxuH,KAAMwuH,GAAS9vB,SACfszB,YAAaxD,GAAS5wB,OACtB8zB,YAAalD,GAAS3vB,eACtBb,UAAWwwB,GAASxwB,UACpB7vC,OAAQqgE,GAAS/vB,SACjBhuF,MAAO+9G,GAAS,kBAChB5K,QAAS4K,GAASxvB,SAGpB7pB,GAAM,CACJpyB,OAAQ,OACRl2B,IAAKkwF,GAAS,gBACdjkL,KAAMmqL,EACN1+C,QAAS,CAAE,eAAgB,sBAE1Br3I,MAAK,SAAC0O,GACLqlL,GAAa,WACRnB,GAKH9vL,OAAO6M,SAASiiB,KAAI,IAAAzwB,OAAOszL,GAAgB,KAAAtzL,OAAIwzL,GAAc,KAAAxzL,OAAIqzL,GAAa,UAJ9ED,GAAS,IAADpzL,OACFszL,GAAgB,KAAAtzL,OAAIwzL,GAAc,KAAAxzL,OAAIqzL,GAAa,UAK7D,IACC1rI,OAAM,SAAC7nD,GACN8yL,GAAa,QACf,IAAG,QAEPH,IAAW,GAAO,yBAAA7I,EAAAjyK,OAAA,GAAA8xK,EAAA,KACnB,kBApLgB,OAAAlD,EAAAjpL,MAAA,KAAAH,UAAA,KAsLXymM,GAAqBjM,KAAOwI,GAAoB,WAAG1uI,OACvD,eAEIoyI,GAAmBlM,KAAOwI,GAAS,gBAAgB1uI,OACvD,eAIF,OAAmB,OAAfsuI,GACK,MAIP14C,EAAAA,GAAAA,MAAA9d,GAAAA,SAAA,CAAAx1F,SAAA,EACEszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,mGAAkGsL,SAAA,EAC/Gu1F,EAAAA,GAAAA,KAAC4tD,GAAO,CACN5vC,gBAAgB,WAChBl1I,KAAM+tL,GAAS/tL,KAEf6+J,SAAS,wBAEX3nC,EAAAA,GAAAA,KAAC6tD,GAAO,CAAC3tD,YAAY,cAIrB6d,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,mBAAkBsL,SAAA,EAC/BszG,EAAAA,GAAAA,MAAA,QAAM5+G,UAAU,iBAAgBsL,SAAA,CAC7BosJ,GAAS,aAAa,MAAIA,GAAS/tL,SAEtCk3H,EAAAA,GAAAA,KAAA,UACA+d,EAAAA,GAAAA,MAAA,KAAG5+G,UAAU,0BAAyBsL,SAAA,CAAC,gBACvBosJ,GAAS,kBAAmB,KACzCA,GAAS,kBAAqB,eAEjC94C,EAAAA,GAAAA,MAAA,KAAG5+G,UAAU,0BAAyBsL,SAAA,CAAC,gBACvB6vJ,OAEhBv8C,EAAAA,GAAAA,MAAA,KAAG5+G,UAAU,0BAAyBsL,SAAA,CAAC,cACzB8vJ,MAGbxE,IAAW/1D,EAAAA,GAAAA,KAACw6D,GAAQ,CAAC/K,YAAa,kBAAMuG,GAAW,EAAM,KAC1Dj4C,EAAAA,GAAAA,MAAA,QACE5+G,UAAU,qCACVgwI,SAAUoU,GAAapU,IAAU1kI,SAAA,EAEjCszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,gBAAesL,SAAA,EAC5Bu1F,EAAAA,GAAAA,KAAA,SAAAv1F,SAAO,yBACPu1F,EAAAA,GAAAA,KAAA,SACEvhI,KAAK,WACL6gF,aACgBn1B,IAAdwlI,IACc,OAAdA,IACc,KAAdA,SACiBxlI,IAAjBylI,IACiB,OAAjBA,IACiB,KAAjBA,IAC6B,IAApB,OAATD,SAAS,IAATA,IAAiB,QAARsF,EAATtF,GAAWnnL,cAAM,IAAAysL,OAAR,EAATA,EAAmBnhM,SACa,IAApB,OAAZ87L,SAAY,IAAZA,IAAoB,QAARsF,EAAZtF,GAAcpnL,cAAM,IAAA0sL,OAAR,EAAZA,EAAsBphM,QAIxBmsD,SA9PO,SAACttD,GAChBA,EAAE0M,OAAOigF,QACX02G,GAAW,IAEXA,GAAW,GACX1uF,GAASuiE,GAAW,KACpBviE,GAASwiE,GAAc,KAE3B,OA0PW6lB,IACCC,IAC2B,GAA3BD,GAAUnnL,OAAO1U,QACa,GAA9B87L,GAAapnL,OAAO1U,SAClBiqJ,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,sBAAqBsL,SAAA,EAClCszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,gBAAesL,SAAA,EAC5BszG,EAAAA,GAAAA,MAAA,KAAAtzG,SAAA,EACEu1F,EAAAA,GAAAA,KAACq5B,GAAe,CAACl5G,KAAMykI,MACvB5kD,EAAAA,GAAAA,KAAA,QAAAv1F,SAAOmlJ,SAET7xC,EAAAA,GAAAA,MAAA,KAAAtzG,SAAA,EACEu1F,EAAAA,GAAAA,KAACq5B,GAAe,CAACl5G,KAAMykI,MACvB5kD,EAAAA,GAAAA,KAAA,QAAAv1F,SAAOklJ,YAGX3vD,EAAAA,GAAAA,KAAA,KAAG7gG,UAAU,gBAAgBujB,QAAS,kBAAMszI,GAAW,EAAK,EAACvrJ,SAAC,aAMpEu1F,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,+BAA8BsL,SAmC1C0qJ,IACCp3C,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,6CAA4CsL,SAAA,EACzDszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,yCAAwCsL,SAAA,EACvDszG,EAAAA,GAAAA,MAAA,QAAM5+G,UAAU,UAAUvhC,MAAO,CAAE0sC,MAAO,aAAcG,SAAA,CAAC,IACxC,OAAb87I,SAAa,IAAbA,QAAa,EAAbA,GAAe5f,WAAW,wBAE9B5oB,EAAAA,GAAAA,MAAA,KAAG5+G,UAAU,iCAAgCsL,SAAA,EAACu1F,EAAAA,GAAAA,KAACq5B,GAAe,CAACz7J,MAAO,CAAC0sC,MAAO,SAAU6V,KAAMykI,KAAiC,uBAAgBe,GAAUjf,WAAW,cAEtK3oB,EAAAA,GAAAA,MAAA,UAAQr9D,SAAUwoG,GAAS/pJ,UAAU,cAAcujB,QA/Z7C,WAClB4kD,GAAS2gE,GACP,CACIvB,WAAY,EACZwB,SAAU,EACVhC,MACEn6J,SAAS65K,IAAc,EACnBtpL,KAAKoB,OACDgoL,EAASzf,OAASl6J,SAAS65K,KAC3BD,GAAUnf,WACV,KAEJmf,GAAUvf,QAChBttF,MACE/sE,SAAS65K,IAAc,EACnBtpL,KAAKoB,MACHgoL,EAASzf,OACPl6J,SAAS65K,KACPF,EAASzf,OAASl6J,SAAS65K,KAC3BD,GAAUnf,WACV,KAENmf,GAAUxf,QAChBC,QAASuf,GAAUvf,QACnBD,QAASwf,GAAUxf,QACnBQ,WAAY,KACZC,SAAU,QAKhB4uB,EAAc,MACdC,EAAY,MACZJ,GAAc,GACdD,GAAiB,GACjBrD,GAAiB,MACjBD,IAAa,EACf,EA0XsFrnJ,SAAA,EAACu1F,EAAAA,GAAAA,KAACq5B,GAAe,CAACl5G,KAAM+kI,KAAW,mBAM/GnnC,EAAAA,GAAAA,MAAA,UAAQr9D,SAAUwoG,GAAS/pJ,UAAU,iBAAiBujB,QAAOywH,EAAAC,IAAA7lD,MAAE,SAAAo2D,IAAA,OAAAvQ,IAAAjpD,MAAA,SAAA05D,GAAA,cAAAA,EAAA97D,KAAA87D,EAAA1uL,MAAA,OAmBzDwY,YAAW,WACV2jL,GAAc,EACf,IAAG,wBAAAzN,EAAAx1K,OAAA,GAAAs1K,EAAA,KAELl5I,SAAA,EACHszG,EAAAA,GAAAA,MAAA,KAAG5+G,UAAU,iBAAgBsL,SAAA,CAAC,iBAAwB,OAAV0rJ,QAAU,IAAVA,OAAU,EAAVA,EAAYriM,QAAS,GAAe,OAAVqiM,QAAU,IAAVA,OAAU,EAAVA,EAAYriM,QAAS,EAAI,KAAc,OAAVqiM,QAAU,IAAVA,OAAU,EAAVA,EAAYriM,QAAQ,sBAAwB,KAAc,OAAVqiM,QAAU,IAAVA,OAAU,EAAVA,EAAYriM,QAAQ,qBAAwB,MAAO,KAACksI,EAAAA,GAAAA,KAACq5B,GAAe,CAACz7J,MAAO,CAACgnB,SAAU,UAAWu7B,KAAMukI,YAK9P1kD,EAAAA,GAAAA,KAACy6D,GAAQ,CAACnL,WAAW,gBAIpBrqI,GAAKnF,KAAI,SAACxqD,EAAO6mB,GAGhB,OAFAoL,QAAQ8hE,IAAI/zF,EAAM,YAClBiyB,QAAQ8hE,IAAIwtG,GAASvhM,GAAO,aAE1B0qI,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAx1F,UACEu1F,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,oBAAmBsL,UAChCu1F,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,wBAAuBsL,UACpCszG,EAAAA,GAAAA,MAAA9d,GAAAA,SAAA,CAAAx1F,SAAA,EACEszG,EAAAA,GAAAA,MAAA,KAAAtzG,SAAA,CAAIn1C,EAAM,QACVyoJ,EAAAA,GAAAA,MAAA,KAAG5+G,UAAU,8BAA6BsL,SAAA,CACvC,CAAC,SAAU,QAAS,gBAAgB2X,SAAS9sD,GAC1C,SACA,GACH,CAAC,YAAY8sD,SAAS9sD,GAAS,WAAQ,GACvCuhM,GAASvhM,GACT,CAAC,UAAU8sD,SAAS9sD,IAAUugM,GAC7B93C,EAAAA,GAAAA,MAAA9d,GAAAA,SAAA,CAAAx1F,SAAA,CACG,KACDu1F,EAAAA,GAAAA,KAAA,OACEv6H,OAAQ,OACR/K,IAAI,qBACJ2pI,IAAI,QAIR,cAQhB,IAEkB,OAAjBuyD,SAAiB,IAAjBA,IAAAA,GAAmBvJ,aACc,IAAjB,OAAjBuJ,SAAiB,IAAjBA,QAAiB,EAAjBA,GAAmBvJ,cACjBtvC,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,wCAAuCsL,SAAA,EACpDszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,uBAAsBsL,SAAA,EACnCu1F,EAAAA,GAAAA,KAAA,OAAKtlI,IAAI,qBAAqB2pI,IAAI,MAClC0Z,EAAAA,GAAAA,MAAA,SAAAtzG,SAAA,CAAO,OACiB,OAAjBmsJ,SAAiB,IAAjBA,QAAiB,EAAjBA,GAAmBvJ,YAAY,yBAClB,OAAjBuJ,SAAiB,IAAjBA,QAAiB,EAAjBA,GAAmBtJ,YAAY,WAGpCttD,EAAAA,GAAAA,KAAC06D,GAAM,CACLp7G,QAASq2G,EACTj1G,SAAUwoG,GAEVjpI,SAAUs3I,GACV9xL,OAAQ,GACRD,MAAO,GACP25B,UAAU,oBAGZ,KACFqqJ,KAEEN,IAAyB,YAAdG,KACbrpD,EAAAA,GAAAA,KAACpkF,GAAAA,GAAM,CACLvxC,UAAQ,EACRC,MAAI,EACJ5P,IAAI,yBACJkD,MAAO,CAAE4H,MAAO,OAAQC,OAAQ,QAASglC,UAEzCu1F,EAAAA,GAAAA,KAACj+E,GAAAA,GAAQ,CACPG,SAAS,EACTC,QAAS,CAAC,OAAQ,SAAU,QAAS,cAVzC69E,EAAAA,GAAAA,KAAC26D,GAAM,CAACtL,QAAQ,UAAU3sI,QAASw2I,SAkBvCl5D,EAAAA,GAAAA,KAAC46D,GAAM,IAENrS,IACCvoD,EAAAA,GAAAA,KAACouD,GAAM,CACLtiB,aAAcA,GACd8B,SACwB,IAAtB+X,GAAUte,QACN,6DACA,6IAENxoI,MAAM,sCAOdmhG,EAAAA,GAAAA,KAAC66D,GAAM,CACPvJ,cAAeA,EACfD,WAAYA,EACZG,aAAa,EACbC,mBAAmB,EACnBF,QAAS,kBAAMhqK,QAAQ8hE,IAAI,cAAc,EACzCxrF,SAAUo4L,EAAgB,SAAW,QAAQxrJ,UAE3Cu1F,EAAAA,GAAAA,KAAC86D,GAAe,CAACjkE,OAAQA,GAAQ88D,QAASwC,EAAYzQ,SAAU,CAC9Dzf,OAAQ0f,GAAU1f,OAClBogB,MAAOV,GAAU,gBACjBzf,MAAOyf,GAAUzf,OAEjByf,UAAWA,GACXC,WAAYA,GACZ0L,cAAgBA,EAChBW,yBAhlB2B,SAAC8I,GAIA,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GAF/B9zK,QAAQ8hE,IAAI,oCAAqC0xG,GAExB,OAArBA,EAAWvkM,QACb8wG,GAAS2gE,GAA6B,OAAV8yB,QAAU,IAAVA,OAAU,EAAVA,EAAY55L,OACxCk0L,EAAwB,OAAV0F,QAAU,IAAVA,GAAgB,QAANC,EAAVD,EAAY55L,YAAI,IAAA65L,GAAkB,QAAlBC,EAAhBD,EAAkBzU,cAAc,UAAE,IAAA0U,OAAxB,EAAVA,EAAoC7U,oBAClDgP,GAAiB,GACjBG,GAAe,GACfC,EAAwB,OAAVuF,QAAU,IAAVA,GAAgB,QAANG,EAAVH,EAAY55L,YAAI,IAAA+5L,GAAkB,QAAlBC,EAAhBD,EAAkB3U,cAAc,UAAE,IAAA4U,OAAxB,EAAVA,EAAoCx0B,YAClD8uB,EAAsB,OAAVsF,QAAU,IAAVA,GAAgB,QAANK,EAAVL,EAAY55L,YAAI,IAAAi6L,GAAkB,QAAlBC,EAAhBD,EAAkB7U,cAAc,UAAE,IAAA8U,OAAxB,EAAVA,EAAoC/U,OAOhDh/E,GAAS2gE,GACP8yB,EAAW55L,OAGbo0L,EAAewF,EAAWvkM,OAC1Bg/L,EAAc,MACdC,EAAY,MACZJ,GAAc,GACdD,GAAiB,GAErB,EAsjBMtD,aAAgBA,GAChBC,iBAAkBA,GAClBwD,eAAgBA,EAChBpB,aAAcmB,EACdlB,eAAgBA,GAChBC,eAAgBA,GAChBnC,kBAAmBA,GACnBC,sBAAuBA,GACvByB,mBAAsBA,QAI1B71C,EAAAA,GAAAA,MAACu9C,GAAK,CAACxH,OAAQyC,GAAWxC,UAAWjC,GAAarnJ,SAAA,EAE/CmpJ,KAAsB5zD,EAAAA,GAAAA,KAACu7D,GAAiB,CAAChV,cAAeA,GAAeuL,aAAcA,KACrF8B,KAAsB71C,EAAAA,GAAAA,MAAA,OAAKngJ,MAAO,CAACo+C,WAAY,QAASx2C,MAAO,QAASC,OAAQ,QAASzH,QAAS,OAAQqjD,cAAe,SAAUO,eAAgB,SAAUN,WAAY,SAAU2yI,IAAK,OAAS7yI,aAAc,QAAQ3W,SAAA,EAEtNu1F,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,oBACf6gG,EAAAA,GAAAA,KAAA,KAAAv1F,SAAG,+BAKX,EC71BA,GA5GoB,WAAO,IAADq9I,EAAAwG,EAAAC,EAE4BvqD,EAAAzM,GAAVn3E,EAAAA,EAAAA,YAAU,GAA7Co7I,EAAgBx3D,EAAA,GAACy3D,EAAcz3D,EAAA,GAChCymC,EAAWrpC,IAAY,SAACpvF,GAAK,OAAKA,CAAK,IACvCg0H,EAAsB,OAARyE,QAAQ,IAARA,GAAiB,QAATqd,EAARrd,EAAUC,eAAO,IAAAod,OAAT,EAARA,EAAmB9hB,YACjC8jB,EAAWjvD,KAGqCqxC,EAAA30C,GAAdn3E,EAAAA,EAAAA,UAAS,MAAK,GAA/CouI,EAAYtiB,EAAA,GAAEuiB,EAAeviB,EAAA,GACcG,EAAA90C,GAAdn3E,EAAAA,EAAAA,UAAS,MAAK,GAA3CmnI,EAAUlb,EAAA,GAAEqiB,EAAariB,EAAA,GACxBob,EAAarsD,KAAbqsD,SAE+Cjb,EAAAj1C,GAAZn3E,EAAAA,EAAAA,UAAS,CAAC,GAAE,GAAhDuuI,EAAaniB,EAAA,GAAEoiB,EAAgBpiB,EAAA,GAiFtC,OA/EAnsH,EAAAA,EAAAA,YAAU,WACRo7I,EAAez1B,EACjB,GAAE,KAEF3lH,EAAAA,EAAAA,YAAU,WACR,GACE2lH,GAC2B,QAAhB,OAAXA,QAAW,IAAXA,OAAW,EAAXA,EAAaK,YACS,QAAX,OAAXL,QAAW,IAAXA,OAAW,EAAXA,EAAal9J,MACb,CACA,IAAM+lL,EAAex2L,OAAO6M,SAASE,SAASxC,MAAM,KAEpDisL,EAAa74L,MAGb,IAAM84L,EAASD,EAAapqL,KAAK,KAGjCqlL,EAASgF,EACX,CACF,GAAG,CAAC0M,KAGJn7I,EAAAA,EAAAA,YAAU,WAOLonI,GAAUgH,EAAgBhH,GAE3BlgK,QAAQ8hE,IAAI,mBAAiBo+F,GAE7B,IAAMsH,EAAa,eAAAr9D,EAAAyhD,EAAAC,IAAA7lD,MAAG,SAAA8lD,IAAA,IAAAvrH,EAAA3mD,EAAA6tL,EAAA,OAAA5b,IAAAjpD,MAAA,SAAA3rC,GAAA,cAAAA,EAAAupC,KAAAvpC,EAAArpF,MAAA,cAAAqpF,EAAArpF,KAAA,EACFqoJ,GAAAA,IAChB6nC,GAAY,oCAEZ,CACEz4C,QAAS,CACP,eAAgB,oBAElBrhH,KAAM,YAER,KAAD,EATKu8B,EAAG02B,EAAA9oF,KAWHyL,EAAO2mD,EAAI3mD,KAAKA,KACtButL,EAAkB,OAAJvtL,QAAI,IAAJA,OAAI,EAAJA,EAAMqmL,gBACb,OAAJrmL,QAAI,IAAJA,GAAAA,EAAMqmL,iBACDwH,EAAe,CAAC,EAClB,OAAJ7tL,QAAI,IAAJA,GAAAA,EAAMqmL,eAAe1nI,KAAI,SAACmvI,EAAK9yK,GAE3B6yK,EAAaC,EAAIvH,MADhBvrK,EAAQ,EACgB,QAIA,UAG7B,IACAoL,QAAQ8hE,IAAI,uBAAqB2lG,GACjCJ,EAAiBI,IAGnBznK,QAAQ8hE,IAAI,6BAA8BloF,GAAM,wBAAAq9E,EAAAnwE,OAAA,GAAAglK,EAAA,KACjD,kBA/BkB,OAAA3hD,EAAA19H,MAAA,KAAAH,UAAA,KAgCnBk7L,GAEJ,GAAG,CAACtH,KAGJpnI,EAAAA,EAAAA,YAAU,WACLsuI,GAAiBH,IACc,YAA/BG,EAAcH,GAA6B90L,SAAS+9F,gBAAgB75F,MAAMymF,YAAY,iBAAkB,WACpE,SAA/BsqG,EAAcH,IAA0B90L,SAAS+9F,gBAAgB75F,MAAMymF,YAAY,iBAAkB,WAE/G,GAAG,CAACmqG,EAAcG,KAIhB3uD,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAx1F,UACEu1F,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,oCAAmCsL,SACjDkkJ,EAAcH,IACfzwC,EAAAA,GAAAA,MAAA9d,GAAAA,SAAA,CAAAx1F,SAAA,EACEu1F,EAAAA,GAAAA,KAACkvD,GAAO,CAAC9qD,QAAsE,KAAjD,OAAVmjD,QAAU,IAAVA,GAAkD,QAAxC+G,EAAV/G,EAAY7rE,MAAK,SAAAuzE,GAAG,OAAO,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAKvH,OAAQ8G,CAAY,WAAC,IAAAF,OAAxC,EAAVA,EAAoDhI,KAAY,WAAa,WAEjGtmD,EAAAA,GAAAA,KAAC07D,GAAiB,CAAEt3D,QAAsE,KAAjD,OAAVmjD,QAAU,IAAVA,GAAkD,QAAxCgH,EAAVhH,EAAY7rE,MAAK,SAAAuzE,GAAG,OAAO,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAKvH,OAAQ8G,CAAY,WAAC,IAAAD,OAAxC,EAAVA,EAAoDjI,KAAY,WAAa,cAE1GtmD,EAAAA,GAAAA,KAAA,KAAAv1F,SAAG,kBAIb,EC2dA,GA3jBkB,WAAO,IAADs5F,EAAA6jD,EAAAC,EAAAC,EAAAyG,EAAAoN,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAC0Bh4D,EAAAzM,GAAVn3E,EAAAA,EAAAA,YAAU,GAAzC67I,EAAWj4D,EAAA,GAAEk4D,EAAcl4D,EAAA,GACgBkoC,EAAA30C,GAAVn3E,EAAAA,EAAAA,YAAU,GAA3C+7I,EAAYjwB,EAAA,GAAEkwB,EAAelwB,EAAA,GACgBG,EAAA90C,GAAVn3E,EAAAA,EAAAA,YAAU,GAA7Ci8I,EAAahwB,EAAA,GAAEiwB,EAAgBjwB,EAAA,GACUG,EAAAj1C,GAAdn3E,EAAAA,EAAAA,WAAS,GAAK,GAAzC85H,EAAS1N,EAAA,GAAE+vB,EAAY/vB,EAAA,GAC2BK,EAAAt1C,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAAlDo8I,EAAa3vB,EAAA,GAAE4vB,EAAgB5vB,EAAA,GACyBG,EAAAz1C,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAAxD+nI,EAAiBnb,EAAA,GAAEob,EAAkBpb,EAAA,GAEUG,EAAA51C,GAAdn3E,EAAAA,EAAAA,UAAS,MAAK,GAA/CouI,EAAYrhB,EAAA,GAAEshB,EAAethB,EAAA,GACcsb,EAAAlxD,GAAdn3E,EAAAA,EAAAA,UAAS,MAAK,GAA3CmnI,EAAUkB,EAAA,GAAEiG,EAAajG,EAAA,GACQE,EAAApxD,GAAZn3E,EAAAA,EAAAA,UAAS,IAAG,GAAzBs8I,GAAF/T,EAAA,GAAWA,EAAA,IAEmDG,EAAAvxD,GAAzBn3E,EAAAA,EAAAA,UAAS,CAAC,EAAG,EAAG,EAAG,EAAG,IAAG,GAApEu8I,EAAiB7T,EAAA,GAC+BG,GADTH,EAAA,GACSvxD,GAAjBn3E,EAAAA,EAAAA,UAAS,CAAC,EAAE,EAAE,IAAG,IAE/CqnI,GAFUwB,EAAA,GAAgBA,EAAA,GAEb7tD,KAAbqsD,UAE8C2B,EAAA7xD,GAAZn3E,EAAAA,EAAAA,UAAS,CAAC,GAAE,GAA/CuuI,EAAavF,EAAA,GAAEwF,EAAgBxF,EAAA,GAEhC3e,EAAWrpC,IAAY,SAACpvF,GAAK,OAAKA,CAAK,IACvCy4I,EAA+B,QAArB1mD,EAAG0mC,EAASvmC,iBAAS,IAAAH,OAAA,EAAlBA,EAAoBslC,YACjCuzB,EAA8B,QAArBhV,EAAGnd,EAASvmC,iBAAS,IAAA0jD,OAAA,EAAlBA,EAAoBr5H,MAChCooI,EAA6B,QAArB9O,EAAGpd,EAASvmC,iBAAS,IAAA2jD,OAAA,EAAlBA,EAAoBgV,UAC/BhG,EAAWpsB,EAASC,QAAQ1E,YAC5B82B,EAAiBryB,EAASC,QAAQ3E,eAEewjB,GAAAhyD,GAAjBn3E,EAAAA,EAAAA,UAAS,SAAQ,GAAhD28I,GAAWxT,GAAA,GAAEyT,GAAczT,GAAA,GAEGG,GAAAnyD,GAAZn3E,EAAAA,EAAAA,UAAS,IAAG,GAA9Bm3H,GAAKmS,GAAA,GAAEuT,GAAOvT,GAAA,GAEV92L,OAAOqyD,KAAK4xI,IACX,OAARA,QAAQ,IAARA,OAAQ,EAARA,EAAU3uB,UAAW,IAAmB,OAAd40B,QAAc,IAAdA,OAAc,EAAdA,EAAgBxP,aAAc,KAWzC,OAARuJ,QAAQ,IAARA,OAAQ,EAARA,EAAU3uB,UAAW,IAUP,OAAd40B,QAAc,IAAdA,GAAAA,EAAgBxP,eAwB3BjtI,EAAAA,EAAAA,YAAU,WACRhoD,OAAOskH,SAAS,EAAG,EACrB,GAAG,KAEHt8D,EAAAA,EAAAA,YAAU,WACJoqI,GACFrC,GAAmB,EAEvB,GAAG,CAACqC,IAEJ,IAAMzkB,GAAsB,OAARyE,QAAQ,IAARA,GAAiB,QAATqd,EAARrd,EAAUC,eAAO,IAAAod,OAAT,EAARA,EAAmB9hB,YACjC8jB,GAAWjvD,KAwMjB,OA/LAx6E,EAAAA,EAAAA,YAAU,WACR,GACG2lH,IAA0C,UAAhB,OAAXA,SAAW,IAAXA,QAAW,EAAXA,GAAaK,YACF,QAAhB,OAAXL,SAAW,IAAXA,QAAW,EAAXA,GAAaK,YACS,UAAX,OAAXL,SAAW,IAAXA,QAAW,EAAXA,GAAal9J,OACS,QAAX,OAAXk9J,SAAW,IAAXA,QAAW,EAAXA,GAAal9J,MACb,CACA,IAAM+lL,EAAex2L,OAAO6M,SAASE,SAASxC,MAAM,KAGpDisL,EAAa74L,MAGb,IAAM84L,EAASD,EAAapqL,KAAK,KAGjCqlL,GAASgF,EACX,CACF,GAAG,CAAC9oB,MAEJ3lH,EAAAA,EAAAA,YAAU,WACR,IAAMunE,EAAUj6G,YAAW,WACzB4uL,GAAa,EACf,GAAG,KAGGW,EAAWvvL,YAAW,WAC1B8uL,GAAiB,EACnB,GAAG,KAEH,OAAO,WACLtgG,aAAayrB,GACbzrB,aAAa+gG,EACf,CACF,GAAG,KAEH78I,EAAAA,EAAAA,YAAU,WACRm9F,GAAM,CACJpyB,OAAQ,MACRl2B,IAAKkwF,GAAM,oBAAyByR,EAAS3vB,iBAC5C3xK,MAAK,SAAC0O,GACPi4L,EAAej4L,EAAS9C,KAAKA,KAAK,GACpC,IACAq8I,GAAM,CACJpyB,OAAQ,MACRl2B,IACEkwF,GAAM,4BAENyR,EAAS3vB,eAAc,qBAExB3xK,MAAK,SAAC0O,GAEPsjB,QAAQ8hE,IAAI,eAAwB,OAARplF,QAAQ,IAARA,OAAQ,EAARA,EAAU9C,MACtCi7L,EAAgBn4L,EAAS9C,KAAKA,KAAK,IACnCm7L,EAAiBr4L,EAAS9C,KAAKA,KAAK,IAEpC,IAAMg7L,EAAel4L,EAAS9C,KAAKA,KAAK,GAExComB,QAAQ8hE,IAAI,gBAAiB8yG,GAE7B,IAAIgB,EAAY,GAOZA,EAFDhB,GAA4B,OAAZA,QAAY,IAAZA,GAAAA,EAAczD,kBAA2B,OAAR7B,QAAQ,IAARA,OAAQ,EAARA,EAAU3uB,UAAW,EAEzD,CACV,iBACA,YACA,cACA,SACA,WACA,kBACA,QACA,gBAGOi0B,GAAiD,OAArB,OAAZA,QAAY,IAAZA,OAAY,EAAZA,EAAczD,mBAAmC,OAAR7B,QAAQ,IAARA,OAAQ,EAARA,EAAU3uB,UAAW,EAC3E,CACV,iBACA,YACA,cACA,SACA,WACA,QACA,gBAEOi0B,GAA4B,OAAZA,QAAY,IAAZA,GAAAA,EAAczD,sBAA6CvuI,IAAd,OAAZgyI,QAAY,IAAZA,OAAY,EAAZA,EAAcj0B,UAC5D,CACV,iBACA,YACA,cACA,SACA,kBACA,QACA,gBAIU,CACV,iBACA,YACA,cACA,SAEA,QACA,gBAIJ+0B,GAAQE,EAIZ,GACF,GAAG,KAEH98I,EAAAA,EAAAA,YAAU,WAOJonI,GAAUgH,EAAgBhH,GAE9BlgK,QAAQ8hE,IAAI,mBAAiBo+F,GAE7B,IAAMsH,EAAa,eAAAr9D,EAAAyhD,EAAAC,IAAA7lD,MAAG,SAAA8lD,IAAA,IAAAvrH,EAAA3mD,EAAA6tL,EAAAoO,EAAA,OAAAhqB,IAAAjpD,MAAA,SAAA3rC,GAAA,cAAAA,EAAAupC,KAAAvpC,EAAArpF,MAAA,cAAAqpF,EAAArpF,KAAA,EAEFqoJ,GAAAA,IAChB6nC,GAAY,oCAEZ,CACEz4C,QAAS,CACP,eAAgB,oBAElBrhH,KAAM,YAER,KAAD,EATKu8B,EAAG02B,EAAA9oF,KAWHyL,EAAO2mD,EAAI3mD,KAAKA,KACtButL,EAAkB,OAAJvtL,QAAI,IAAJA,OAAI,EAAJA,EAAMqmL,gBACZ,OAAJrmL,QAAI,IAAJA,GAAAA,EAAMqmL,iBACFwH,EAAe,CAAC,EAChBoO,EAAc,GAChB,OAAJj8L,QAAI,IAAJA,GAAAA,EAAMqmL,eAAe1nI,KAAI,SAACmvI,EAAK9yK,GAC7BihL,EAAYnnM,KAAQ,OAAHg5L,QAAG,IAAHA,OAAG,EAAHA,EAAK3I,KAElBnqK,EAAQ,GACV6yK,EAAaC,EAAIvH,MAAQ,QACzBhuL,SAAS+9F,gBAAgB75F,MAAMymF,YAC7B,iBACA,aAGF2qG,EAAaC,EAAIvH,MAAQ,WACzBhuL,SAAS+9F,gBAAgB75F,MAAMymF,YAC7B,iBACA,WAGN,IACA98D,QAAQ8hE,IAAI,uBAAqB2lG,GACjCJ,EAAiBI,GACjB0N,EAAUU,IAGZ71K,QAAQ8hE,IAAI,6BAA8BloF,GAAM,wBAAAq9E,EAAAnwE,OAAA,GAAAglK,EAAA,KACjD,kBAzCkB,OAAA3hD,EAAA19H,MAAA,KAAAH,UAAA,KA0CnBk7L,GACF,GAAG,CAACtH,KAEJpnI,EAAAA,EAAAA,YAAU,WACR,GAAIsuI,GAAiBH,EAAc,CAAC,IAADF,EAE3B+O,EAAuE,KAAjD,OAAV9V,QAAU,IAAVA,GAAkD,QAAxC+G,EAAV/G,EAAY7rE,MAAK,SAAAuzE,GAAG,OAAO,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAKvH,OAAQ8G,CAAY,WAAC,IAAAF,OAAxC,EAAVA,EAAoDhI,KAAY,WAAa,QAG9E,YAAb+W,GACF3jM,SAAS+9F,gBAAgB75F,MAAMymF,YAAY,iBAAkB,WAC7D24G,GAAe,aAEK,SAAbK,IACP3jM,SAAS+9F,gBAAgB75F,MAAMymF,YAAY,iBAAkB,WAC7D24G,GAAe,SAEnB,CACF,GAAG,CAACxO,EAAcG,KAGhB3uD,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAx1F,SACGkkJ,GAAiBA,EAAcH,KAC9BzwC,EAAAA,GAAAA,MAAA9d,GAAAA,SAAA,CAAAx1F,SAAA,CACGyvI,IACCn8B,EAAAA,GAAAA,MAAA9d,GAAAA,SAAA,CAAAx1F,SAAA,EACEu1F,EAAAA,GAAAA,KAACpkF,GAAAA,GAAM,CACLvxC,UAAQ,EACRC,MAAI,EACJ5P,IACEqoI,GAA0E,KAAjD,OAAVwkD,QAAU,IAAVA,GAAkD,QAAxCgH,EAAVhH,EAAY7rE,MAAK,SAAAuzE,GAAG,OAAO,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAKvH,OAAQ8G,CAAY,WAAC,IAAAD,OAAxC,EAAVA,EAAoDjI,KAAY,WAAa,SAASxiD,iBAEvGlmI,MAAO,CAAE4H,MAAO,QAASC,OAAQ,SAAUglC,UAE3Cu1F,EAAAA,GAAAA,KAACj+E,GAAAA,GAAQ,CACPG,SAAS,EACTC,QAAS,CAAC,OAAQ,SAAU,QAAS,cAGzC69E,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,yBAMlBq9J,IACCz+C,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,aAAYsL,SAAA,EACzBszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,gBAAesL,SAAA,EAC5Bu1F,EAAAA,GAAAA,KAAA,KAAG7gG,UAAU,sBACb6gG,EAAAA,GAAAA,KAAA,MAAAv1F,SAAI,8BACJu1F,EAAAA,GAAAA,KAAA,KAAG7gG,UAAU,wBAGf4+G,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,0BAAyBsL,SAAA,EACtCszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,qBAAoBsL,SAAA,EACjCu1F,EAAAA,GAAAA,KAAA,MAAAv1F,SAAI,yBAOJszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,uBAAsBsL,SAAA,EACnCszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,gBAAesL,SAAA,EAC5Bu1F,EAAAA,GAAAA,KAAA,QAAAv1F,SAAM,kBACNszG,EAAAA,GAAAA,MAAA,KAAAtzG,SAAA,CAAG,IAAa,OAAXwxJ,QAAW,IAAXA,OAAW,EAAXA,EAAa/D,UAAU,WAE9Bn6C,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,gBAAesL,SAAA,EAC5Bu1F,EAAAA,GAAAA,KAAA,QAAAv1F,SAAM,YACNszG,EAAAA,GAAAA,MAAA,KAAAtzG,SAAA,CACG,IACA4jJ,KACY,OAAX4N,QAAW,IAAXA,OAAW,EAAXA,EAAaqB,UACVC,WAAW,IAAK,KAChB36L,MAAM,KAAK,GACd,cACAulD,OAAO,eAAgB,WAG7B41F,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,gBAAesL,SAAA,EAC5Bu1F,EAAAA,GAAAA,KAAA,QAAAv1F,SAAM,YACNszG,EAAAA,GAAAA,MAAA,KAAAtzG,SAAA,CACG,IACA4jJ,KACY,OAAX4N,QAAW,IAAXA,OAAW,EAAXA,EAAaqB,UACVC,WAAW,IAAK,KAChB36L,MAAM,KAAK,GACd,YACAulD,OAAO,UAAW,cAqBxBggI,IACApqC,EAAAA,GAAAA,MAAA9d,GAAAA,SAAA,CAAAx1F,SAAA,EACEu1F,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,aAAYsL,UACzBu1F,EAAAA,GAAAA,KAAA,OACEtlI,IACEqoI,GAA0E,KAAjD,OAAVwkD,QAAU,IAAVA,GAAkD,QAAxCoU,EAAVpU,EAAY7rE,MAAK,SAAAuzE,GAAG,OAAO,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAKvH,OAAQ8G,CAAY,WAAC,IAAAmN,OAAxC,EAAVA,EAAoDrV,KAAY,WAAa,SACzF/iD,cAELc,IAAI,QAGRrE,EAAAA,GAAAA,KAAA,KAAAv1F,SAAG,iBAEHszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,mBAAkBsL,SAAA,EAC/Bu1F,EAAAA,GAAAA,KAAA,KACE74G,KACE47G,GAA0E,KAAjD,OAAVwkD,QAAU,IAAVA,GAAkD,QAAxCqU,EAAVrU,EAAY7rE,MAAK,SAAAuzE,GAAG,OAAO,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAKvH,OAAQ8G,CAAY,WAAC,IAAAoN,OAAxC,EAAVA,EAAoDtV,KAAY,WAAa,SACzF7iD,WAELpkI,OAAO,SAAQorC,UAEfu1F,EAAAA,GAAAA,KAAA,OAAKtlI,IAAI,yBAAyB2pI,IAAI,QAExCrE,EAAAA,GAAAA,KAAA,KACE74G,KACE47G,GAA0E,KAAjD,OAAVwkD,QAAU,IAAVA,GAAkD,QAAxCsU,EAAVtU,EAAY7rE,MAAK,SAAAuzE,GAAG,OAAO,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAKvH,OAAQ8G,CAAY,WAAC,IAAAqN,OAAxC,EAAVA,EAAoDvV,KAAY,WAAa,SACzF5iD,eAELrkI,OAAO,SAAQorC,UAEfu1F,EAAAA,GAAAA,KAAA,OACE7gG,UAAU,kBACVzkC,IAAI,0BACJ2pI,IAAI,iBAQhB0Z,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,oBAAmBsL,SAAA,EAChCszG,EAAAA,GAAAA,MAAA,MAAAtzG,SAAA,CACGosJ,EAAS,aAAa,MAAIA,EAAS/tL,SAEtCk3H,EAAAA,GAAAA,KAAA,OAAAv1F,SAIG0xJ,GAAgB5kB,GAAMz3H,KAAI,SAACxqD,EAAO6mB,GAAK,OACtC6jH,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,sBAAqBsL,UAClCszG,EAAAA,GAAAA,MAAA9d,GAAAA,SAAA,CAAAx1F,SAAA,EACEszG,EAAAA,GAAAA,MAAA,KAAAtzG,SAAA,CAKE,CAAC,aAAa2X,SAAS9sD,GACnB,aACA,CAAC,kBAAkB8sD,SAAS9sD,GAC5B,aAED,CAAC,mBAAmB8sD,SAAS9sD,GAC5B,aACAA,EACH,QAIHyoJ,EAAAA,GAAAA,MAAA,KAAG5+G,UAAU,8BAA6BsL,SAAA,CACvC,CAAC,SAAU,QAAS,gBAAgB2X,SAAS9sD,GAC1C,SACA,GAGJ,CAAC,aAAa8sD,SAAS9sD,IAInB,CAAC,eAAe8sD,SAAS9sD,GAHzB+4L,KAAOwI,EAASvhM,GAAQ,cAAc6yD,OACpC,eAMF0uI,EAASvhM,GAGX,CAAC,mBAAmB8sD,SAAS9sD,KACjB,OAAdwnM,QAAc,IAAdA,OAAc,EAAdA,EAAgBxP,aAAc,GAC5BvvC,EAAAA,GAAAA,MAAA9d,GAAAA,SAAA,CAAAx1F,SAAA,CAAE,WACkB,OAAdqyJ,QAAc,IAAdA,OAAc,EAAdA,EAAgBxP,YAAa,KACjCttD,EAAAA,GAAAA,KAAA,OACEv6H,OAAQ,OACR/K,IAAI,qBACJ2pI,IAAI,QAIR,UAIF,OAMI,OAAbg4D,QAAa,IAAbA,OAAa,EAAbA,EAAe5D,iBAAkB,IAChCz4D,EAAAA,GAAAA,KAAA,UAAAv1F,UACEszG,EAAAA,GAAAA,MAAA,OAAAtzG,SAAA,CAAK,UACK,KACRu1F,EAAAA,GAAAA,KAAA,OAAKv6H,OAAQ,OAAQ/K,IAAI,qBAAqB2pI,IAAI,KACjD,KAAmB,OAAbg4D,QAAa,IAAbA,OAAa,EAAbA,EAAe5D,iBAAgB,gCAM5C16C,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,gBAAesL,SAAA,EAE5Bu1F,EAAAA,GAAAA,KAAA,KACE3gI,OAAO,SACP8nB,KACE47G,GAA0E,KAAjD,OAAVwkD,QAAU,IAAVA,GAAkD,QAAxCuU,EAAVvU,EAAY7rE,MAAK,SAAAuzE,GAAG,OAAO,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAKvH,OAAQ8G,CAAY,WAAC,IAAAsN,OAAxC,EAAVA,EAAoDxV,KAAY,WAAa,SACzF9iD,oBAAsBqzD,EAAS5vB,cACnCx8H,UAEDszG,EAAAA,GAAAA,MAAA,UAAQ5+G,UAAU,eAAcsL,SAAA,CAAC,mBACd,KACjBu1F,EAAAA,GAAAA,KAAA,QAAAv1F,UACEu1F,EAAAA,GAAAA,KAACq5B,GAAe,CACdl6H,UAAU,sBACVghB,KAAM8kI,YAWb0X,EAAkBv6I,SACP,OAAVmlI,QAAU,IAAVA,GAAoD,QAA1CwU,EAAVxU,EAAY7rE,MAAK,SAACuzE,GAAG,OAAQ,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAKvH,OAAQ8G,CAAY,WAAC,IAAAuN,OAA1C,EAAVA,EAAsDzV,OAEtDtmD,EAAAA,GAAAA,KAAA,KACE74G,KACEghK,EAAiB,4DAAAzxL,OAC+CqmM,IAC5DH,EAAS,6DAAAlmM,OACoDkmM,EAAS,UAAAlmM,OAASqmM,IAAW,4DAAArmM,OAC9BqmM,IAElE19L,OAAO,SAAQorC,UAEfu1F,EAAAA,GAAAA,KAAC26D,GAAM,CACLtL,QAAQ,iBACR3sI,QA7bH,WAIfi0I,GACFt+L,OAAOmlM,qBAAqBC,YAAY,eAAgB,QAC5D,aA8bcz9D,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,sBAAqBsL,UAClCu1F,EAAAA,GAAAA,KAAA,OACEtlI,IACEqoI,GAA0E,KAAjD,OAAVwkD,QAAU,IAAVA,GAAkD,QAAxCyU,EAAVzU,EAAY7rE,MAAK,SAAAuzE,GAAG,OAAO,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAKvH,OAAQ8G,CAAY,WAAC,IAAAwN,OAAxC,EAAVA,EAAoD1V,KAAY,WAAa,SAAStjD,YAEvGqB,IAAI,WAIVrE,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,oBAAmBsL,UAChCszG,EAAAA,GAAAA,MAAA,KAAAtzG,SAAA,EACEu1F,EAAAA,GAAAA,KAAA,QAAAv1F,UACEu1F,EAAAA,GAAAA,KAACq5B,GAAe,CACdl6H,UAAU,sBACVghB,KAAM6kI,OAEF,IAAI,kFAKhBhlD,EAAAA,GAAAA,KAAC46D,GAAM,WAOrB,ECzKA,GArYuB,SAAC5hL,GAAW,IAAD8uK,EAAA4V,EAC8B15D,EAAAzM,GAAZn3E,EAAAA,EAAAA,UAAS,IAAG,GAAvDmrH,EAAiBvnC,EAAA,GAAE25D,EAAoB35D,EAAA,GACqBkoC,EAAA30C,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAAxC6rH,GAAFC,EAAA,GAAuBA,EAAA,IAEhDS,EAIIC,KAK+DP,GAR1DM,EAAPtF,QACasF,EAAbzB,cACYyB,EAAZxB,aAMiE5zC,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,IAE7DknD,GAFmB+kE,EAAA,GAAuBA,EAAA,GAE/BzpC,MAEXg7D,EAAc,IAAIlyD,gBAAgBrzI,OAAO6M,SAAS8vF,QAClDy1F,EAAamT,EAAYxnM,IAAI,SAC7B+tI,EAAYy5D,EAAYxnM,IAAI,OAE5BynM,EAAgBD,EAAYxnM,IAAI,YAEtCiqD,EAAAA,EAAAA,YAAU,WAERinD,EAAS8gE,MAET,IAAMw1B,EAAc,IAAIlyD,gBAAgBrzI,OAAO6M,SAAS8vF,QAClDuyE,EAAiBq2B,EAAYxnM,IAAI,aAGnCmxK,GAEFjgE,EAAS0hE,GAAkBzB,IAE3Bu2B,EAAcv2B,GAEdo2B,EAAqBp2B,GAErBhgJ,QAAQ8hE,IAAI,uBAAwBu0G,EAAYxnM,IAAI,cACpD61K,GAAsB,IAItB0xB,EAAqB,GAIzB,GAAG,IAECC,EAAYxnM,IAAI,UAAUkxG,EAASoiE,GAAY+gB,IAC/CmT,EAAYxnM,IAAI,YAAYkxG,EAASsiE,GAAci0B,IACnDD,EAAYxnM,IAAI,QAAQkxG,EAASqiE,GAAuB,QAAbxlC,IAE3Cy5D,EAAYxnM,IAAI,UAAYwnM,EAAYxnM,IAAI,YAC9CkxG,EACEihE,GAAe,CACb1zE,MAAO41F,EACPtjB,MAAO02B,KAIb,IAAMpzB,EAAWrpC,IAAY,SAACpvF,GAAK,OAAKA,CAAK,IACvC44H,EAAiBH,EAASC,QAAQhF,YAAYC,SAE9CgF,EAAsBF,EAASC,QAAQ9E,iBAAiBC,cACxDC,EAAkB2E,EAASC,QAAQ5E,gBAEzC8kB,EAIItG,KAFFf,GADQqH,EAARrJ,SACYqJ,EAAZrH,cAGIuG,GAFec,EAAnBrb,UAAa1zC,OAEEhB,MAEsC2xC,EAAAj1C,GAAXn3E,EAAAA,EAAAA,UAAS,GAAE,GAAhD4qH,EAAcwB,EAAA,GAAEuxB,EAAiBvxB,EAAA,GACyBK,EAAAt1C,GAAXn3E,EAAAA,EAAAA,UAAS,GAAE,GAA1DyqH,EAAmBgC,EAAA,GAAEmxB,EAAsBnxB,EAAA,GACiCG,EAAAz1C,GAA/Cn3E,EAAAA,EAAAA,UAASqqH,EAASC,QAAQnD,gBAAkB,IAAG,GAA5E02B,EAAUjxB,EAAA,GAAE8wB,EAAa9wB,EAAA,GACwBG,EAAA51C,GAAdn3E,EAAAA,EAAAA,UAAS,MAAK,GAAjDgrH,EAAa+B,EAAA,GAAE+wB,EAAgB/wB,EAAA,GACwBsb,EAAAlxD,GAAdn3E,EAAAA,EAAAA,UAAS,MAAK,GAAvDirH,EAAgBod,EAAA,GAAE0V,EAAmB1V,EAAA,GAEwBE,EAAApxD,GAAdn3E,EAAAA,EAAAA,UAAS,MAAK,GAA7Dg+I,EAAmBzV,EAAA,GAAE0V,EAAsB1V,EAAA,GAI5C2V,EAA0B,SAACC,GAC/BF,EAAuBE,GACF7kM,SAAS6W,uBAAuB,cACtC,GAAGmoF,QAClB,IAAMv8E,EAAQpQ,SAASwyL,EAAY37L,MAAM,KAAK,IAE1C27L,EAAYx+I,WAAW,UACzBi+I,EAAuB7hL,GACdoiL,EAAYx+I,WAAW,UAChCg+I,EAAkB5hL,EAEtB,EAYMqiL,EAAYjb,GAAa,SAACpiL,GAAI,OAAKomB,QAAQ8hE,IAAIloF,EAAK,IAoF5D,OAAG2kK,GAAuB9lC,EAAAA,GAAAA,KAAA,KAAAv1F,SAAG,gBAEzBq7H,GAAmB8E,GAEnB5qC,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAx1F,UACEszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,yBAAwBsL,SAAA,EACrCu1F,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,WAAUsL,UAIvBu1F,EAAAA,GAAAA,KAAA,KAAG7gG,UAAU,sBAAqBsL,SAAC,0BAGrCszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,kBAAiBsL,SAAA,EAE9BszG,EAAAA,GAAAA,MAAA,QAAMoxB,SAAUoU,EAAaib,GAAYr/J,UAAU,YAAWsL,SAAA,EAC5DszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,kBAAiBsL,SAAA,EAC9Bu1F,EAAAA,GAAAA,KAAA,SAAAv1F,SAAO,uBACPszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,gBAAesL,SAAA,EAC1Bq7H,GACA6E,GACAA,EAAoB7qH,KAAI,SAACgrH,EAAM3uJ,GAC7B,OACE4hI,EAAAA,GAAAA,MAAA,SAEE5+G,UAAS,aAAAzoC,OACP0nM,IAAmB,SAAA1nM,OAAcylB,GAC7B,WACA,IACHsuB,SAAA,EAEHu1F,EAAAA,GAAAA,KAAA,SACEvhI,KAAK,QACLqK,KAAK,cACLxT,MAAK,SAAAoB,OAAWylB,GAChBmjE,QAAS8+G,IAAmB,SAAA1nM,OAAcylB,GAC1C8jC,SAAU,WACRq+I,EAAwB,SAAD5nM,OAAUylB,IACjC+hL,EAAiBpzB,EAAKjD,SACtBs2B,EAAoBrzB,EAAKhiK,KAC3B,KAEFi1I,EAAAA,GAAAA,MAAA,KAAG5+G,UAAU,iBAAgBsL,SAAA,CAAEqgI,EAAKhiK,KAAK,QACzCi1I,EAAAA,GAAAA,MAAA,KAAG5+G,UAAU,aAAYsL,SAAA,CAAC,SACtBqgI,EAAKjD,QAAS,QAKlB9pB,EAAAA,GAAAA,MAAA,KAAG5+G,UAAU,gBAAesL,SAAA,CAAC,aAChBqgI,EAAK/D,SAAS,YAE3BhpB,EAAAA,GAAAA,MAAA,KAAG5+G,UAAU,gBAAesL,SAAA,CACzB,IAAI,SAEJqgI,EAAK9C,aACF1rK,KAAKK,MAAMmuK,EAAKjD,QAAUiD,EAAK9C,cAC/B,IAAK,IAAI,mBAjCV7rJ,EAsCX,KAEA2pJ,GACA8E,GACAA,EAAe9qH,KAAI,SAACgrH,EAAM3uJ,GACxB,OACE4hI,EAAAA,GAAAA,MAAA,SAEE5+G,UAAS,aAAAzoC,OACP0nM,IAAmB,QAAA1nM,OAAaylB,GAC5B,WACA,IAONsuB,SAAA,EAEAu1F,EAAAA,GAAAA,KAAA,SACEvhI,KAAK,QACLqK,KAAK,cACLxT,MAAK,QAAAoB,OAAUylB,GACfmjE,QAAS8+G,IAAmB,QAAA1nM,OAAaylB,GAMzC8jC,SAAU,WACRq+I,EAAwB,QAAD5nM,OAASylB,IAChC+hL,EAAiBpzB,EAAKjD,SACtBs2B,EAAoBrzB,EAAKhiK,KAC3B,KAEFi1I,EAAAA,GAAAA,MAAA,KAAG5+G,UAAU,iBAAgBsL,SAAA,CAAEqgI,EAAKhiK,KAAK,QACzCi1I,EAAAA,GAAAA,MAAA,KAAG5+G,UAAU,aAAYsL,SAAA,CAAC,SACtBqgI,EAAKjD,QAAS,QAKlB9pB,EAAAA,GAAAA,MAAA,KAAG5+G,UAAU,gBAAesL,SAAA,CAAC,aAChBqgI,EAAK/D,SAAS,YAE3BhpB,EAAAA,GAAAA,MAAA,KAAG5+G,UAAU,gBAAesL,SAAA,CACzB,IAAI,SAEJqgI,EAAK9C,aACF1rK,KAAKK,MAAMmuK,EAAKjD,QAAUiD,EAAK9C,cAC/B,IAAK,IAAI,mBA5CV7rJ,EAiDX,WAGN6jH,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAx1F,UAYEu1F,EAAAA,GAAAA,KAAC8tC,GAAS,CACR1C,cAAeA,EACfC,iBAAkBA,EAClBC,aApOgB,SAACt4G,GAE7B8qI,EAAc9qI,GAEdzrC,QAAQ8hE,IAAI,0BAAwBr2B,EACtC,EAgOcu4G,kBAA2B,OAARd,QAAQ,IAARA,GAAiB,QAATqd,EAARrd,EAAUC,eAAO,IAAAod,OAAT,EAARA,EAAmBvgB,eACtCiE,yBAAgC,OAARf,QAAQ,IAARA,GAAiB,QAATizB,EAARjzB,EAAUC,eAAO,IAAAgzB,IAAjBA,EAAmBn2B,oBAO5B,OAAlB6D,GACCgzB,IACCA,EAAoBr+I,WAAW,WAC9Bq+I,EAAoBr+I,WAAW,YAC/Bg+F,EAAAA,GAAAA,MAAA,KAAG5+G,UAAU,sBAAqBsL,SAAA,CAAC,SAC/B2gI,EAAe,KACjBrtB,EAAAA,GAAAA,MAAA,QAAM5+G,UAAU,YAAWsL,SAAA,CAAC,OAAK4gI,YAKzCttB,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,yBAAwBsL,SAAA,EACrCu1F,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,wBAIE,KAAf8+J,GAAyD,KAApCxzB,EAASC,QAAQnD,gBACxC62B,GACEp+D,EAAAA,GAAAA,KAAA,UAAQvhI,KAAK,SAASikD,QArPf,WAAO,IAAD6nH,EAAAC,EAAAi0B,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAKnBv4B,EAAa,IAAIhiJ,KACF,GAAArvB,OAAF,KAAfunM,EAAuBA,EAA2B1yB,EAAjB,cAGnChkJ,QAAQ8hE,IAAI,qBAAmB0+E,EAAYk2B,GAE3Cl2B,EAAWyF,QACTzF,EAAWzjG,UACT71D,OACE2vL,EAAoBr+I,WAAW,UACa,QADJwqH,EACpCI,EAAoBE,UAAoB,IAAAN,OAAA,EAAxCA,EAA0CxD,SACZ,QADoByD,EAClDI,EAAeI,UAAe,IAAAR,OAAA,EAA9BA,EAAgCzD,WAI1C,IAAI0G,EAAU,IAAI1nJ,KAAKgiJ,GACnB/0G,GAAQ,IAAMy6G,EAAQnpG,WAAWztE,OAAO,GACxCk8D,GAAS,KAAO06G,EAAQppG,WAAa,IAAIxtE,OAAO,GAEpDkxK,EADW0F,EAAQz0G,cACC,IAAMjG,EAAQ,IAAMC,EAExCs0C,EACEogE,GAAiB,CACfC,SAAUy2B,EAAoBr+I,WAAW,UACG,QADM0+I,EAC9C9zB,EAAoBE,UAAoB,IAAA4zB,OAAA,EAAxCA,EAA0C92B,SACZ,QADoB+2B,EAClD9zB,EAAeI,UAAe,IAAA0zB,OAAA,EAA9BA,EAAgC/2B,SACpCrB,OAAQ83B,EAAoBr+I,WAAW,UACK,QADI4+I,EAC5Ch0B,EAAoBE,UAAoB,IAAA8zB,OAAA,EAAxCA,EAA0Cr4B,OACZ,QADkBs4B,EAChDh0B,EAAeI,UAAe,IAAA4zB,OAAA,EAA9BA,EAAgCt4B,OACpCC,UAAW63B,EAAoBr+I,WAAW,UACE,QADO8+I,EAC/Cl0B,EAAoBE,UAAoB,IAAAg0B,OAAA,EAAxCA,EAA0Ct4B,UACZ,QADqBu4B,EACnDl0B,EAAeI,UAAe,IAAA8zB,OAAA,EAA9BA,EAAgCv4B,UACpCqB,SAAUw2B,EAAoBr+I,WAAW,UACG,QADMg/I,EAC9Cp0B,EAAoBE,UAAoB,IAAAk0B,OAAA,EAAxCA,EAA0Cn3B,SACZ,QADoBo3B,EAClDp0B,EAAeI,UAAe,IAAAg0B,OAAA,EAA9BA,EAAgCp3B,SACpCC,QAASu2B,EAAoBr+I,WAAW,UACI,QADKk/I,EAC7Ct0B,EAAoBE,UAAoB,IAAAo0B,OAAA,EAAxCA,EAA0Cp3B,QACZ,QADmBq3B,EACjDt0B,EAAeI,UAAe,IAAAk0B,OAAA,EAA9BA,EAAgCr3B,QACpC1B,QAASi4B,EAAoBr+I,WAAW,UACI,QADKo/I,EAC7Cx0B,EAAoBE,UAAoB,IAAAs0B,OAAA,EAAxCA,EAA0Ct3B,QACZ,QADmBu3B,EACjDx0B,EAAeI,UAAe,IAAAo0B,OAAA,EAA9BA,EAAgCv3B,QACpCC,QAASs2B,EAAoBr+I,WAAW,UACI,QADKs/I,EAC7C10B,EAAoBE,UAAoB,IAAAw0B,OAAA,EAAxCA,EAA0Cv3B,QACZ,QADmBw3B,EACjD10B,EAAeI,UAAe,IAAAs0B,OAAA,EAA9BA,EAAgCx3B,QACpC1B,QAASg4B,EAAoBr+I,WAAW,UACI,QADKw/I,EAC7C50B,EAAoBE,UAAoB,IAAA00B,OAAA,EAAxCA,EAA0Cz3B,QACZ,QADmB03B,EACjD50B,EAAeI,UAAe,IAAAw0B,OAAA,EAA9BA,EAAgC13B,QACpCtB,WAAY43B,EAAoBr+I,WAAW,UACC,QADQ0/I,EAChD90B,EAAoBE,UAAoB,IAAA40B,OAAA,EAAxCA,EAA0Cj5B,WACZ,QADsBk5B,EACpD90B,EAAeI,UAAe,IAAA00B,OAAA,EAA9BA,EAAgCl5B,WACpCC,WAAY23B,EAAoBr+I,WAAW,UACC,QADQ4/I,EAChDh1B,EAAoBE,UAAoB,IAAA80B,OAAA,EAAxCA,EAA0Cl5B,WACZ,QADsBm5B,EACpDh1B,EAAeI,UAAe,IAAA40B,OAAA,EAA9BA,EAAgCn5B,WACpCJ,UAA0B,KAAf43B,EAAoBA,EAAa1yB,EAC5CziK,KAAMs1L,EAAoBr+I,WAAW,UACO,QADE8/I,EAC1Cl1B,EAAoBE,UAAoB,IAAAg1B,OAAA,EAAxCA,EAA0C/2L,KACZ,QADgBg3L,EAC9Cl1B,EAAeI,UAAe,IAAA80B,OAAA,EAA9BA,EAAgCh3L,KACpCi/J,WAAYA,EACZC,aAAco2B,EAAoBr+I,WAAW,UACD,QADUggJ,EAClDp1B,EAAoBE,UAAoB,IAAAk1B,OAAA,EAAxCA,EAA0C/3B,aACZ,QADwBg4B,EACtDp1B,EAAeI,UAAe,IAAAg1B,OAAA,EAA9BA,EAAgCh4B,aACpClB,SAAUs3B,EAAoBr+I,WAAW,UACG,QADMkgJ,EAC9Ct1B,EAAoBE,UAAoB,IAAAo1B,OAAA,EAAxCA,EAA0Cha,UACZ,QADqBia,EACnDt1B,EAAeI,UAAe,IAAAk1B,OAAA,EAA9BA,EAAgCja,UACpClf,SAAUq3B,EAAoBr+I,WAAW,UACG,QADMogJ,EAC9Cx1B,EAAoBE,UAAoB,IAAAs1B,OAAA,EAAxCA,EAA0Cp5B,SACZ,QADoBq5B,EAClDx1B,EAAeI,UAAe,IAAAo1B,OAAA,EAA9BA,EAAgCr5B,SACpCM,QAAS+2B,EAAoBr+I,WAAW,UACI,QADKsgJ,EAC7C11B,EAAoBE,UAAoB,IAAAw1B,OAAA,EAAxCA,EAA0CpU,QACZ,QADmBqU,EACjD11B,EAAeI,UAAe,IAAAs1B,OAAA,EAA9BA,EAAgCrU,WAIxCnC,EAAS,OACX,EAsKuD3qJ,UAAU,MAAKsL,SAAC,eAI3Du1F,EAAAA,GAAAA,KAAA,UAAQt/C,UAAQ,EAACvhD,UAAU,kBAAiBsL,SAAC,qBAOnDu1F,EAAAA,GAAAA,KAACy6D,GAAQ,cA5KjB,CAiMA,ECpZa8F,GAAwBh9B,GACnC,iBAAgB4P,EAAAC,IAAA7lD,MAChB,SAAA8lD,IAAA,IAAAvrH,EAAAy/H,EAAA,OAAAnU,IAAAjpD,MAAA,SAAA3rC,GAAA,cAAAA,EAAAupC,KAAAvpC,EAAArpF,MAAA,cAAAqpF,EAAAupC,KAAA,EAAAvpC,EAAArpF,KAAA,EAEsBm9C,MAAM,0BAA4BvsB,KAAKC,OAAO,KAAD,EAGvC,OAHlB8hC,EAAG02B,EAAA9oF,KACT6xB,QAAQ8hE,IAAIvhC,GACNy/H,EAAaz/H,EACnBvgC,QAAQ8hE,IAAIk+F,GAAY/oG,EAAA2tC,OAAA,SACjBo7D,GAAU,cAAA/oG,EAAAupC,KAAA,GAAAvpC,EAAAw3F,GAAAx3F,EAAA,SAAAA,EAAAw3F,GAAC,KAAD,oBAAAx3F,EAAAnwE,OAAA,GAAAglK,EAAA,oBAOjBmtB,GAAgBt/B,GAAY,CAChCp4J,KAAM,aACNs4J,aA3BmB,CACnBmmB,WAAY,KACZkZ,mBAAmB,EACnBC,iBAAiB,EACjB1W,iBAAkB,KAClBE,eAAgB,KAChByW,SAAU,KACVzkM,KAAM,OAqBNyhK,SAAU,CACRijC,aAAc,SAAC5uJ,EAAOk1D,GACpBl1D,EAAMg4I,iBAAmB9iF,EAAOriG,OAClC,EAEAg8L,WAAY,SAAC7uJ,EAAOk1D,GAClBl1D,EAAMk4I,eAAiBhjF,EAAOriG,OAChC,EAEAi8L,UAAW,SAAC9uJ,EAAOk1D,GACjBl1D,EAAM2uJ,SAAWz5F,EAAOriG,OAC1B,EAEAk8L,SAAU,SAAC/uJ,EAAOk1D,GAChBl1D,EAAM91C,KAAOgrG,EAAOriG,OACtB,GAGF68J,cAAe,SAACb,GACdA,EAAQC,QAAQy/B,GAAsBr+F,SAAS,SAAClwD,EAAOk1D,GACrDl1D,EAAMyuJ,mBAAoB,EAC1BzuJ,EAAMu1I,WAAa,KACnBv1I,EAAM0uJ,iBAAkB,CAC1B,IAEA7/B,EAAQC,QAAQy/B,GAAsBt1D,WAAW,SAACj5F,EAAOk1D,GACvDl1D,EAAMyuJ,mBAAoB,EAC1BzuJ,EAAMu1I,WAAargF,EAAOriG,QAC1BmtC,EAAM0uJ,iBAAkB,CAC1B,IAEA7/B,EAAQC,QAAQy/B,GAAsBr1D,UAAU,SAACl5F,EAAOk1D,GACtDl1D,EAAMyuJ,mBAAoB,EAC1BzuJ,EAAMu1I,WAAa,KACnBv1I,EAAM0uJ,iBAAkB,CAC1B,GACF,IAGKM,GACLR,GAAcz9B,QADD69B,GAAYI,GAAZJ,aAAcC,GAAUG,GAAVH,WAAYC,GAASE,GAATF,UAAWC,GAAQC,GAARD,SAMvCE,GAAkBT,GAAc56D,QC+B7C,GAvFa,SAAC5sH,GAAW,IAADs1K,EAAAC,EAEgCvqD,EAAAzM,GAAdn3E,EAAAA,EAAAA,UAAS,MAAK,GAA/CouI,EAAYxqD,EAAA,GAAEyqD,EAAezqD,EAAA,GACckoC,EAAA30C,GAAdn3E,EAAAA,EAAAA,UAAS,MAAK,GAA3CmnI,EAAUrb,EAAA,GAAEwiB,EAAaxiB,EAAA,GACxBub,EAAarsD,KAAbqsD,SAE+Cpb,EAAA90C,GAAZn3E,EAAAA,EAAAA,UAAS,CAAC,GAAE,GAAhDuuI,EAAatiB,EAAA,GAAEuiB,EAAgBviB,EAAA,GAGrBzpC,KAgEjB,OAzDAviF,EAAAA,EAAAA,YAAU,WAOLonI,GAAUgH,EAAgBhH,GAE3BlgK,QAAQ8hE,IAAI,mBAAiBo+F,GAE7B,IAAMsH,EAAa,eAAAr9D,EAAAyhD,EAAAC,IAAA7lD,MAAG,SAAA8lD,IAAA,IAAAvrH,EAAA3mD,EAAA6tL,EAAA,OAAA5b,IAAAjpD,MAAA,SAAA3rC,GAAA,cAAAA,EAAAupC,KAAAvpC,EAAArpF,MAAA,cAAAqpF,EAAArpF,KAAA,EACFqoJ,GAAAA,IAChB6nC,GAAY,oCAEZ,CACEz4C,QAAS,CACP,eAAgB,oBAElBrhH,KAAM,YAER,KAAD,EATKu8B,EAAG02B,EAAA9oF,KAWHyL,EAAO2mD,EAAI3mD,KAAKA,KACtButL,EAAkB,OAAJvtL,QAAI,IAAJA,OAAI,EAAJA,EAAMqmL,gBACb,OAAJrmL,QAAI,IAAJA,GAAAA,EAAMqmL,iBACDwH,EAAe,CAAC,EAClB,OAAJ7tL,QAAI,IAAJA,GAAAA,EAAMqmL,eAAe1nI,KAAI,SAACmvI,EAAK9yK,GAMvB,IAAD+kL,EAAAC,EALFhlL,EAAQ,GACT6yK,EAAaC,EAAIvH,MAAQ,QACzBngK,QAAQ8hE,IAAI,eAAa2lG,EAAaC,EAAIvH,SAI1CsH,EAAaC,EAAIvH,MAAQ,WACzBngK,QAAQ8hE,IAAI,cAAW2lG,EAAaC,EAAIvH,OACxCngK,QAAQ8hE,IAAI,sCAA+C,QAAV63G,EAAExnM,gBAAQ,IAAAwnM,GAAiB,QAAjBC,EAARD,EAAUzpG,uBAAe,IAAA0pG,OAAjB,EAARA,EAA2BvjM,OAElF,IAEA2pB,QAAQ8hE,IAAI,uBAAqB2lG,GACjCJ,EAAiBI,IAGnBznK,QAAQ8hE,IAAI,6BAA8BloF,GAAM,wBAAAq9E,EAAAnwE,OAAA,GAAAglK,EAAA,KACjD,kBAlCkB,OAAA3hD,EAAA19H,MAAA,KAAAH,UAAA,KAmCnBk7L,GAEJ,GAAG,CAACtH,KAEJpnI,EAAAA,EAAAA,YAAU,WACLsuI,GAAiBH,IACc,YAA/BG,EAAcH,IACsB,SAA/BG,EAAcH,KADwB90L,SAAS+9F,gBAAgB75F,MAAMymF,YAAY,iBAAkB,QAG7G,GAAG,CAACmqG,EAAcG,KAGhB3uD,EAAAA,GAAAA,KAAAC,GAAAA,SAAA,CAAAx1F,UACEu1F,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,YAAWsL,SACvBkkJ,EAAcH,KACbzwC,EAAAA,GAAAA,MAAA9d,GAAAA,SAAA,CAAAx1F,SAAA,EACFu1F,EAAAA,GAAAA,KAACkvD,GAAO,CAAC9qD,QAAsE,KAAjD,OAAVmjD,QAAU,IAAVA,GAAkD,QAAxC+G,EAAV/G,EAAY7rE,MAAK,SAAAuzE,GAAG,OAAO,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAKvH,OAAQ8G,CAAY,WAAC,IAAAF,OAAxC,EAAVA,EAAoDhI,KAAY,WAAa,WACjGtmD,EAAAA,GAAAA,KAACohE,GAAc,CAAEh9D,QAAsE,KAAjD,OAAVmjD,QAAU,IAAVA,GAAkD,QAAxCgH,EAAVhH,EAAY7rE,MAAK,SAAAuzE,GAAG,OAAO,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAKvH,OAAQ8G,CAAY,WAAC,IAAAD,OAAxC,EAAVA,EAAoDjI,KAAY,WAAa,gBAMjH,EC/FA,GARgB,WACd,OACEtmD,EAAAA,GAAAA,KAAA,OAAAv1F,UACEu1F,EAAAA,GAAAA,KAACvC,GAAM,KAGb,ECgMA,GApL6B,SAAH/L,GAAmB,IAADqS,EAAbK,EAAO1S,EAAP0S,QAC4BJ,EAAAzM,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GACN8rH,GAD/BloC,EAAA,GAAkBA,EAAA,GACazM,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,IAA5CmoI,EAAUrc,EAAA,GAAEsc,EAAatc,EAAA,GAEkBG,EAAA90C,GAAdn3E,EAAAA,EAAAA,UAAS,MAAK,GACEosH,GADnCH,EAAA,GAAeA,EAAA,GACoB90C,GAAdn3E,EAAAA,EAAAA,UAAS,MAAK,IACFysH,GADhCL,EAAA,GAAgBA,EAAA,GACgBj1C,GAAdn3E,EAAAA,EAAAA,UAAS,MAAK,IACJ4sH,GAD7BH,EAAA,GAAeA,EAAA,GACct1C,GAAdn3E,EAAAA,EAAAA,UAAS,MAAK,IACN+sH,GADzBH,EAAA,GAAaA,EAAA,GACYz1C,GAAdn3E,EAAAA,EAAAA,UAAS,MAAK,IAAjCslI,EAAQvY,EAAA,GAC+Bsb,GADxBtb,EAAA,GACwB51C,GAAZn3E,EAAAA,EAAAA,UAAS,IAAG,IAAvCipI,EAASZ,EAAA,GAAEa,EAAYb,EAAA,GAE2BE,EAAApxD,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAAlDopI,EAAab,EAAA,GAAEc,EAAgBd,EAAA,GACOG,EAAAvxD,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAAtC8oI,EAAOJ,EAAA,GAAEK,EAAUL,EAAA,GAEpBhd,EAAe,WACnB0c,GAAeD,EACjB,EACMuB,EAAWjvD,KACX4vC,EAAWrpC,IAAY,SAACpvF,GAAK,OAAKA,CAAK,IACvC2zI,EAAYlb,EAASC,QAAQ1E,YAC7B+jB,EAAgBtf,EAASC,QAAQpD,SACjC0iB,EAAmBvf,EAASwf,WAAWD,iBACvCE,EAAiBzf,EAASwf,WAAWC,eAErC4M,EAAwB,OAARrsB,QAAQ,IAARA,GAAmB,QAAX1mC,EAAR0mC,EAAUvmC,iBAAS,IAAAH,OAAX,EAARA,EAAqB0lC,eAErCniE,EAAWs7B,KAEjBgoD,EAIItG,KAFFf,GADQqH,EAARrJ,SACYqJ,EAAZrH,cAIIpU,GAHeyb,EAAnBrb,UAAa1zC,OAGD,eAAAuU,EAAA+iC,EAAAC,IAAA7lD,MAAG,SAAA8lD,EAAOlyK,GAAI,IAAAkgM,EAAAna,EAAA,OAAA9T,IAAAjpD,MAAA,SAAA3rC,GAAA,cAAAA,EAAAupC,KAAAvpC,EAAArpF,MAAA,OAgCzB,OA/BDs0L,GAAiB,GACjBN,GAAW,GAEPjC,EAAY,CACd5gB,OAAQqf,EAAUrf,OAClBC,UAAWof,EAAUpf,UACrBqlB,SAAkB,OAATjG,QAAS,IAATA,GAAgB,QAAP0b,EAAT1b,EAAWxe,aAAK,IAAAk6B,OAAP,EAATA,EAAkBnhM,aAAc,IACzC0nK,SAAU+d,EAAU1f,OACpB4B,QAAS8d,EAAU,gBACnB7d,QAAS6d,EAAUzf,MACnBM,WAAYmf,EAAUnf,WACtBsxB,WAAY,IACZC,cAAe,IAIfC,WAAY,IACZC,QAAS,IACTC,UAAW,IACX3uB,KAAM,IACN0iB,QAAStG,EAAUte,QACnBmC,QAAS,IACT2uB,OAAQ,IACRC,YAAa,SACbC,cAAe,IACf9zL,OAAQ,aACR+zL,UAAW,yBACXC,SAAU,aACVlyB,UAAWsf,EAAUtf,UACrBQ,OAAQ8e,EAAU9e,OAClB2xB,UAAW1B,GAAgC,GAC5Ct4G,EAAArpF,KAAA,EAEK8xL,GAAYC,EAAWxB,EAAUC,GACpCpwL,MAAK,SAACsiM,GACLvO,EAAa,WACbhiF,EACEmhE,GAAkB,CAChBzB,QAAS6wB,EAAUx1L,GACnB4kK,cAAe4wB,EAAU5wB,cACzBC,eAAgB2wB,EAAU3wB,kBAG9B4iB,EAAS,IAADpzL,OACFszL,EAAgB,KAAAtzL,OAAIwzL,EAAc,KAAAxzL,OAAIqzL,EAAa,YAE3D,IACC1rI,OAAM,SAAC1rD,GAEJA,EAAEsR,UAC0B,yCAA5BtR,EAAEsR,SAAS9C,KAAKopG,SAEhBuhE,IAEFwd,EAAa,SACbG,GAAiB,GACjBliK,QAAQ8hE,IAAI,uBAAwB12F,EACtC,IAAG,KAAD,EAEJw2L,GAAW,GAAO,wBAAA3qG,EAAAnwE,OAAA,GAAAglK,EAAA,KACnB,gBA7Da/pD,GAAA,OAAA8mB,EAAAp8I,MAAA,KAAAH,UAAA,MA+Daw6L,KAAO1I,EAAqB,WAAGx9H,OACxD,eAEuBkmI,KAAO1I,EAAU,gBAAgBx9H,OACxD,eAGF,OACE41F,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,2EAA0EsL,SAAA,EACvFu1F,EAAAA,GAAAA,KAAC4tD,GAAO,CACN5vC,gBAAgB,eAChBl1I,KAAM68K,EAAU78K,KAChB6+J,SAAUge,EAAU,gBAGtB3lD,EAAAA,GAAAA,KAAC6tD,GAAO,CAAC3tD,YAAY,gCAErB6d,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,sBAAqBsL,SAAA,EAClCszG,EAAAA,GAAAA,MAAA,MAAI5+G,UAAU,mBAAkBsL,SAAA,CAC7Bs/I,EAAcn6H,cAAc,MAAI+1H,EAAU78K,SAE7Ci1I,EAAAA,GAAAA,MAAA,KAAAtzG,SAAA,CACGk7I,EAAU,kBAAkB,6BAA2B,IACvD5iD,GAAeqB,GAAST,UAAU,eAErCoa,EAAAA,GAAAA,MAAA,KAAAtzG,SAAA,CAAG,OACIk7I,EAAU5e,SAAS,yEAI1B/mC,EAAAA,GAAAA,KAAA,MACEpiI,MAAO,CAAEggD,OAAQ,YACjBgjC,wBAAyB,CACvBob,OAAQ+mC,GAAeqB,GAASd,2BAIpCtD,EAAAA,GAAAA,KAAA,KAAAv1F,SAAG,qHAMLu1F,EAAAA,GAAAA,KAAA,QAAM7gG,UAAU,kBAAkBgwI,SAAUoU,EAAapU,GAAU1kI,UACjEu1F,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,+BAA8BsL,SACzC++I,EAOEN,GAAyB,YAAdG,GACbrpD,EAAAA,GAAAA,KAACpkF,GAAAA,GAAM,CACLvxC,UAAQ,EACRC,MAAI,EACJ5P,IAAI,yBACJkD,MAAO,CAAE4H,MAAO,OAAQC,OAAQ,QAASglC,UAEzCu1F,EAAAA,GAAAA,KAACj+E,GAAAA,GAAQ,CACPG,SAAS,EACTC,QAAS,CAAC,OAAQ,SAAU,QAAS,aAGvC,MAlBF69E,EAAAA,GAAAA,KAAA,UACEvhI,KAAK,SACL0gC,UAAU,yCAAwCsL,SACnD,kCAmBN89I,IACCvoD,EAAAA,GAAAA,KAACouD,GAAM,CACLtiB,aAAcA,EACd8B,SACwB,IAAtB+X,EAAUte,QACN,6DACA,6IAENxoI,MAAM,oCAKhB,ECpEA,GA1H2B,WAAO,IAADipJ,EAAAwG,EAAAC,EACuBvqD,EAAAzM,GAAVn3E,EAAAA,EAAAA,YAAU,GAA7Co7I,EAAgBx3D,EAAA,GAACy3D,EAAcz3D,EAAA,GAClCymC,EAAWrpC,IAAY,SAACpvF,GAAK,OAAKA,CAAK,IACvCg0H,EAAsB,OAARyE,QAAQ,IAARA,GAAiB,QAATqd,EAARrd,EAAUC,eAAO,IAAAod,OAAT,EAARA,EAAmB9hB,YAGekG,EAAA30C,GAAdn3E,EAAAA,EAAAA,UAAS,MAAK,GAA/CouI,EAAYtiB,EAAA,GAAEuiB,EAAeviB,EAAA,GACcG,EAAA90C,GAAdn3E,EAAAA,EAAAA,UAAS,MAAK,GAA3CmnI,EAAUlb,EAAA,GAAEqiB,EAAariB,EAAA,GACxBob,EAAarsD,KAAbqsD,SAE+Cjb,EAAAj1C,GAAZn3E,EAAAA,EAAAA,UAAS,CAAC,GAAE,GAAhDuuI,EAAaniB,EAAA,GAAEoiB,EAAgBpiB,EAAA,GAEhCsd,EAAWjvD,KA6FjB,OA3FAx6E,EAAAA,EAAAA,YAAU,WACRo7I,EAAez1B,EACjB,GAAE,KAEF3lH,EAAAA,EAAAA,YAAU,WAOLonI,GAAUgH,EAAgBhH,GAE3BlgK,QAAQ8hE,IAAI,mBAAiBo+F,GAE7B,IAAMsH,EAAa,eAAAr9D,EAAAyhD,EAAAC,IAAA7lD,MAAG,SAAA8lD,IAAA,IAAAvrH,EAAA3mD,EAAA6tL,EAAA,OAAA5b,IAAAjpD,MAAA,SAAA3rC,GAAA,cAAAA,EAAAupC,KAAAvpC,EAAArpF,MAAA,cAAAqpF,EAAArpF,KAAA,EAEFqoJ,GAAAA,IAChB6nC,GAAY,oCACZ,CACEz4C,QAAS,CACP,eAAgB,oBAElBrhH,KAAM,YAER,KAAD,EARKu8B,EAAG02B,EAAA9oF,KAUHyL,EAAO2mD,EAAI3mD,KAAKA,KAEtButL,EAAkB,OAAJvtL,QAAI,IAAJA,OAAI,EAAJA,EAAMqmL,gBAEb,OAAJrmL,QAAI,IAAJA,GAAAA,EAAMqmL,iBAEDwH,EAAe,CAAC,EAElB,OAAJ7tL,QAAI,IAAJA,GAAAA,EAAMqmL,eAAe1nI,KAAI,SAACmvI,EAAK9yK,GAE3B6yK,EAAaC,EAAIvH,MADhBvrK,EAAQ,EACgB,QAKA,UAG7B,IAEAoL,QAAQ8hE,IAAI,uBAAqB2lG,GACjCJ,EAAiBI,IAGnBznK,QAAQ8hE,IAAI,6BAA8BloF,GAAM,wBAAAq9E,EAAAnwE,OAAA,GAAAglK,EAAA,KACjD,kBArCkB,OAAA3hD,EAAA19H,MAAA,KAAAH,UAAA,KAsCnBk7L,GAEJ,GAAG,CAACtH,KAWJpnI,EAAAA,EAAAA,YAAU,WACLsuI,GAAiBH,IACc,YAA/BG,EAAcH,IACsB,SAA/BG,EAAcH,KADwB90L,SAAS+9F,gBAAgB75F,MAAMymF,YAAY,iBAAkB,QAG7G,GAAG,CAACmqG,EAAcG,KAGlBtuI,EAAAA,EAAAA,YAAU,WACR,GACE2lH,GAC2B,QAAhB,OAAXA,QAAW,IAAXA,OAAW,EAAXA,EAAaK,YACS,QAAX,OAAXL,QAAW,IAAXA,OAAW,EAAXA,EAAal9J,MACb,CACA,IAAM+lL,EAAex2L,OAAO6M,SAASE,SAASxC,MAAM,KAEpDisL,EAAa74L,MAGb,IAAM84L,EAASD,EAAapqL,KAAK,KAGjCqlL,EAASgF,EACX,CACF,GAAG,CAAC0M,KAGEx7D,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,8CAA6CsL,SACzDkkJ,EAAcH,IACjBzwC,EAAAA,GAAAA,MAAA9d,GAAAA,SAAA,CAAAx1F,SAAA,EACEu1F,EAAAA,GAAAA,KAACkvD,GAAO,CAAC9qD,QAAsE,KAAjD,OAAVmjD,QAAU,IAAVA,GAAkD,QAAxC+G,EAAV/G,EAAY7rE,MAAK,SAAAuzE,GAAG,OAAO,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAKvH,OAAQ8G,CAAY,WAAC,IAAAF,OAAxC,EAAVA,EAAoDhI,KAAY,WAAa,WAGjGtmD,EAAAA,GAAAA,KAACshE,GAAoB,CAAEl9D,QAAsE,KAAjD,OAAVmjD,QAAU,IAAVA,GAAkD,QAAxCgH,EAAVhH,EAAY7rE,MAAK,SAAAuzE,GAAG,OAAO,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAKvH,OAAQ8G,CAAY,WAAC,IAAAD,OAAxC,EAAVA,EAAoDjI,KAAY,WAAa,cAE9GtmD,EAAAA,GAAAA,KAAA,KAAAv1F,SAAG,gBAKd,EC1FA,GApCuB,WAiCrB,OAhCA4V,EAAAA,EAAAA,YAAU,WACR,IAAMkhJ,EAAU7nM,SAASq1B,eAAe,WAClCyyK,EAAe9nM,SAASq1B,eAAe,gBACvC0yK,EAAappM,OAAO6M,SAASiiB,KAG7Bu6K,EAAgB,SAACxsG,GACjBA,EAAI9yC,SAAS,oBACfm/I,EAAQp6K,KAAO,yGACfq6K,EAAar6K,KAAO,0GACX+tE,EAAI9yC,SAAS,8BACtBm/I,EAAQp6K,KAAO,2EACfq6K,EAAar6K,KAAO,2EAExB,EAGAu6K,EAAcD,GAGd,IAAME,EAAkB,WACtB,IAAM7S,EAASz2L,OAAO6M,SAASiiB,KAC/Bu6K,EAAc5S,EAChB,EAIA,OAFAz2L,OAAOoP,iBAAiB,WAAYk6L,GAE7B,WACLtpM,OAAOgQ,oBAAoB,WAAYs5L,EACzC,CACF,GAAG,IAEI,IACT,ECmCgB,SAAAC,GACd5kL,GAEA,YAF8B,IAA9BA,IAAAA,EAA4B,IAErB,IAAI0uH,gBACO,kBAAT1uH,GACPjqB,MAAMs0D,QAAQrqC,IACdA,aAAgB0uH,gBACZ1uH,EACApqB,OAAOqyD,KAAKjoC,GAAMq/F,QAAO,SAAC8H,EAAMviF,GAC9B,IAAItsC,EAAQ0nB,EAAK4kB,GACjB,OAAOuiF,EAAKztH,OACV3D,MAAMs0D,QAAQ/xD,GAASA,EAAMwqD,KAAK,SAAA/oD,GAAD,MAAO,CAAC6qC,EAAK7qC,EAAvB,IAA6B,CAAC,CAAC6qC,EAAKtsC,OAE5D,IAEV,CC4MK,SAAUusM,GAIKnwE,GAAA,I7N+DnBnxC,E6NlEAqzC,EAGmBlC,EAHnBkC,SACAnpF,EAEmBinF,EAFnBjnF,SACApyC,EACmBq5H,EADnBr5H,OAEIypM,EAAanlJ,EAAAA,SACS,MAAtBmlJ,EAAWr6G,UACbq6G,EAAWr6G,c7N4DsB,KAAnClH,E6N5D4C,CAAEloF,OAAAA,EAAQm6H,UAAU,M7N4DhEjyC,EAAiC,CAAC,GAoB3B0xC,GAlBP,SACE55H,EACAo6H,GAEA,IAAAsvE,EAAiC1pM,EAAO6M,SACxC,OAAOqsH,EACL,GACA,CAAEnsH,SAHA28L,EAAE38L,SAGQ4vF,OAHV+sG,EAAY/sG,OAGM2kB,KAHEooF,EAAApoF,MAKrB8Y,EAAczgF,OAASygF,EAAczgF,MAAMq/E,KAAQ,KACnDoB,EAAczgF,OAASygF,EAAczgF,MAAMpQ,KAAQ,UAEvD,IAED,SAA2BvpC,EAAgB+b,GACzC,MAAqB,kBAAPA,EAAkBA,EAAK+/B,EAAW//B,EACjD,GAKC,KACAmsE,K6NjFF,IAAImyC,EAAUovE,EAAWr6G,QACzBu6G,EAAAzqE,EAAwB56E,EAAAA,SAAe,CACrCuqD,OAAQwrB,EAAQxrB,OAChBhiG,SAAUwtH,EAAQxtH,WAFpB,GAAK8sC,EAADgwJ,EAAC,GAAOjmJ,EAARimJ,EAAC,GAOL,OAFArlJ,EAAAA,iBAAsB,kBAAM+1E,EAAQQ,OAAOn3E,EAA3C,GAAsD,CAAC22E,IAGrD/1E,EAAAA,cAACkhF,GAAM,CACLjK,SAAUA,EACVnpF,SAAUA,EACVvlC,SAAU8sC,EAAM9sC,SAChBk5H,eAAgBpsF,EAAMk1D,OACtBluG,UAAW05H,GAGhB,CAqFmB,qBAAXr6H,QACoB,qBAApBA,OAAOqB,UACPrB,OAAOqB,SAASC,cAqRzB,IAkFKsiI,GAMAR,GAiFC,SAAUwmE,GACdC,GAcA,IAAIC,EAAyBxlJ,EAAAA,OAAailJ,GAAmBM,IACzDE,EAAwBzlJ,EAAAA,QAAa,GAErCz3C,EAAWy1H,KACX0nE,EAAe1lJ,EAAAA,SACjB,kBD9wBY,SACd2lJ,EACAC,GAEA,IAAIF,EAAeT,GAAmBU,GAEtC,GAAIC,EAAqB,KACvBttE,EADuBC,EAAAC,EACPotE,EAAoBt9I,QAApC,QAAA4qH,EAAA,WAA4C,IAAnCjuI,EAATqzF,EAAA3/H,MACO+sM,EAAarqM,IAAI4pC,IACpB2gK,EAAoBC,OAAO5gK,GAAKlb,SAAS,SAAApxB,GACvC+sM,EAAax6L,OAAO+5B,EAAKtsC,KAG9B,EAND,IAAA4/H,EAAA5gI,MAAA2gI,EAAAC,EAAA3gI,KAAAc,MAAAw6K,GAMC,OAAAz1F,GAAA86C,EAAAviI,EAAAynF,EAAA,SAAA86C,EAAA9yH,GAAA,CACF,CAED,OAAOigM,CACR,CC6vBG,CAKIn9L,EAAS8vF,OACTotG,EAAsB36G,QAAU,KAAO06G,EAAuB16G,QAPjD,GASjB,CAACviF,EAAS8vF,SAGR80F,EAAWjvD,KACX4nE,EAAkB9lJ,EAAAA,aACpB,SAAC+lJ,EAAUC,GACT,IAAMC,EAAkBhB,GACF,oBAAbc,EAA0BA,EAASL,GAAgBK,GAE5DN,EAAsB36G,SAAU,EAChCqiG,EAAS,IAAM8Y,EAAiBD,EACjC,GACD,CAAC7Y,EAAUuY,IAGb,MAAO,CAACA,EAAcI,EACvB,EAnID,SAAKxmE,GACHA,EAAA,4CACAA,EAAA,8BACAA,EAAA,uBAHF,GAAKA,KAAAA,GAIJ,KAED,SAAKR,GACHA,EAAA,0BACAA,EAAA,2CAFF,EAAKA,KAAAA,GAGJ,KCxuBD,IA0JA,GA1JuB,WACrB,IAA8CuI,EAAAzM,GAAVn3E,EAAAA,EAAAA,YAAU,GAAvCmnI,EAAUvjD,EAAA,GAAE0qD,EAAa1qD,EAAA,GACyB6+D,EAAAtrE,EAAjB0qE,KAAiB,GAAlDI,EAAYQ,EAAA,GAC0B32B,GADT22B,EAAA,GACStrE,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,IAAtC8oI,EAAOhd,EAAA,GAAEid,EAAUjd,EAAA,GACeG,EAAA90C,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAAlC5pD,EAAK61K,EAAA,GAAE6X,EAAQ7X,EAAA,GAEhB/kE,EAAWs7B,KAEXknD,EAAWjvD,KAETmrC,EAAgB5kC,IAAY,SAACpvF,GAAK,OAAKA,EAAM04H,OAAO,IAApD1E,YAEF+oB,EAAa,eAAAr9D,EAAAyhD,EAAAC,IAAA7lD,MAAG,SAAA8lD,IAAA,IAAAyvB,EAAAh7I,EAAA3mD,EAAA,OAAAiyK,IAAAjpD,MAAA,SAAA3rC,GAAA,cAAAA,EAAAupC,KAAAvpC,EAAArpF,MAAA,OAED,OAFCqpF,EAAAupC,KAAA,EAElBohE,GAAW,GAAM3qG,EAAArpF,KAAA,EACCqoJ,GAAAA,IAChB6nC,GAAY,oCAEZ,CACEz4C,QAAS,CACP,eAAgB,oBAElBrhH,KAAM,YAER,KAAD,EATKu8B,EAAG02B,EAAA9oF,KAWHyL,EAAO2mD,EAAI3mD,KAAKA,KACtBgoL,GAAW,GACXuF,EAAkB,OAAJvtL,QAAI,IAAJA,GAAoB,QAAhB2hM,EAAJ3hM,EAAMqmL,sBAAc,IAAAsb,OAAhB,EAAJA,EAAsBl/K,QAAO,SAAAqrK,GAAG,OAAgB,IAAT,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAK3I,MAAwB,KAAT,OAAH2I,QAAG,IAAHA,OAAG,EAAHA,EAAK3I,IAAS,KAAG9nG,EAAArpF,KAAA,iBAAAqpF,EAAAupC,KAAA,GAAAvpC,EAAAw3F,GAAAx3F,EAAA,SAEpF2qG,GAAW,GACXjF,GAAS,GAAM,yBAAA1lG,EAAAnwE,OAAA,GAAAglK,EAAA,mBAGlB,kBAtBkB,OAAA3hD,EAAA19H,MAAA,KAAAH,UAAA,KA+DnB,OAvCAwsD,EAAAA,EAAAA,YAAU,WACJgiJ,EAAajsM,IAAI,UACnBkxG,EAASoiE,GAAY24B,EAAajsM,IAAI,WAEpCisM,EAAajsM,IAAI,YACnBkxG,EAASsiE,GAAcy4B,EAAajsM,IAAI,aAEtCisM,EAAajsM,IAAI,QAAQkxG,EAASqiE,GAAU04B,EAAajsM,IAAI,SAE7DisM,EAAajsM,IAAI,UACnBkxG,EAASw5F,GAAUuB,EAAajsM,IAAI,WAElCisM,EAAajsM,IAAI,UAAYisM,EAAajsM,IAAI,YAChDkxG,EACEihE,GAAe,CACb1zE,MAAOwtG,EAAajsM,IAAI,SACxB+wK,MAAOk7B,EAAajsM,IAAI,cAGzBisM,EAAajsM,IAAI,cAClBkxG,EAAS0hE,GAAkBq5B,EAAajsM,IAAI,eAGhDkxG,EACEogE,GAAgB9I,GAAAA,GAAC,CAAC,EACboH,GAAW,IACdK,UAAWg8B,EAAajsM,IAAI,iBAIhCkxG,EAASy5F,GAAS,QAElBhS,GACF,GAAG,KAOD/uD,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,YAAWsL,UACxBszG,EAAAA,GAAAA,MAAA,OACE5+G,UAAU,oBAQVsL,SAAA,EAEAu1F,EAAAA,GAAAA,KAAA,OAAKpiI,MAAO,CAAE+vK,aAAc,QAASljI,UACnCu1F,EAAAA,GAAAA,KAAA,OAAKtlI,IAAI,mBAAoB8K,MAAM,QAAS5H,MAAO,CAACmlM,UAAW,gBAEjE/iE,EAAAA,GAAAA,KAAA,KAAAv1F,SAAG,4BAEHszG,EAAAA,GAAAA,MAAA,OAQE5+G,UAAU,wBAAuBsL,SAAA,CAEhCy+I,IAAY3B,IAAe/wL,IAC1BwpI,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,WAAUsL,SAAC,gBAE1By+I,IAAY3B,GAAc/wL,IAASwpI,EAAAA,GAAAA,KAAA,OAAAv1F,SAAK,wBACzC88I,IACE2B,GACD3B,EAAWznI,KAAI,SAAC2nI,GACd,OACEznD,EAAAA,GAAAA,KAAA,OACEt9E,QAAS,WACP4kD,EAASs5F,GAAqB,OAARnZ,QAAQ,IAARA,OAAQ,EAARA,EAAUC,OAQhCoC,EAAS,CACP1kL,SAAkB,OAARqiL,QAAQ,IAARA,OAAQ,EAARA,EAAUC,MAgBxB,EACAvoJ,UAAU,WAAUsL,UAGpBu1F,EAAAA,GAAAA,KAAA,KAAAv1F,SAAY,OAARg9I,QAAQ,IAARA,OAAQ,EAARA,EAAUub,YAKpB,WAKZ,ECwHA,GA/QqB,WACnB,IAAyDH,EAAAtrE,EAAjB0qE,KAAiB,GAAlDI,EAAYQ,EAAA,GACnBI,GADoCJ,EAAA,GACHznE,MAAbqsD,GAAFwb,EAAVxM,WAAoBwM,EAARxb,UACwBzjD,EAAAzM,GAAZn3E,EAAAA,EAAAA,UAAS,CAAC,GAAE,GAArC0zE,EAAQkQ,EAAA,GAAEk/D,EAAWl/D,EAAA,GACiBkoC,EAAA30C,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAAtC8oI,EAAOhd,EAAA,GAAEid,EAAUjd,EAAA,GACeG,EAAA90C,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAAlC5pD,EAAK61K,EAAA,GAAE6X,EAAQ7X,EAAA,GAE0BG,EAAAj1C,GAAVn3E,EAAAA,EAAAA,YAAU,GAAzC+iJ,EAAW32B,EAAA,GAAE42B,EAAc52B,EAAA,GAI1BxG,GAFqB5kC,IAAY,SAACpvF,GAAK,OAAKA,EAAMi4I,UAAU,IAA5DD,iBAEgB5oD,IAAY,SAACpvF,GAAK,OAAKA,EAAM04H,OAAO,IAApD1E,aAEF8jB,EAAWjvD,KACXvzB,EAAWs7B,KAIXygE,EAAW,eAAA3xE,EAAAyhD,EAAAC,IAAA7lD,MAAG,SAAA8lD,EAAOiwB,GAAc,IAAAx7I,EAAA3mD,EAAAoiM,EAAAC,EAAAC,EAAA,OAAArwB,IAAAjpD,MAAA,SAAA3rC,GAAA,cAAAA,EAAAupC,KAAAvpC,EAAArpF,MAAA,OAEpB,OAFoBqpF,EAAAupC,KAAA,EAErCohE,GAAW,GAAM3qG,EAAArpF,KAAA,EACCqoJ,GAAAA,IAChB6nC,GAAY,oCAEZ,CACEz4C,QAAS,CACP,eAAgB,oBAElBrhH,KAAM,YAER,KAAD,EATKu8B,EAAG02B,EAAA9oF,KAUHyL,EAAO2mD,EAAI3mD,KAAKA,KAEtBmmG,EAASs5F,GAAa0C,IAEtBF,EAAejiM,EAAKuiM,YAEd5vE,EAAW,GAEX0vE,EAAmB,CAAC,EAE1Bj8K,QAAQ8hE,IAAI,MAAOi6G,GAEnB/7K,QAAQ8hE,IACN,iBACAloF,EAAKqmL,eAAe5jK,QAClB,SAAC6jK,GAAQ,OAAKA,EAASC,MAAQ4b,CAAc,KAI3CG,EAAsBtiM,EAAKqmL,eAAe5jK,QAC9C,SAAC6jK,GAAQ,OAAKA,EAASC,MAAQ4b,CAAc,IAC7C,GAAGK,MAELxiM,EAAKqmL,eAAe5jK,QAClB,SAAC6jK,GAAQ,OAAKA,EAASC,MAAQ4b,CAAc,IAC7C,GAAGK,MAAM7jJ,KAAI,SAACk6I,GACTlmE,EAAS1xE,SAAS43I,EAAK4J,cAC1B9vE,EAAS79H,KAAK+jM,EAAK4J,YACvB,IAEA9vE,EAASh0E,KAAI,SAAC02E,GAAM,OAClBitE,EAAoB3jJ,KAAI,SAAC+jJ,GACnBA,EAAaD,aAAeptE,IAC9BjvG,QAAQ8hE,IAAI,uBACRmtC,KAAUgtE,GACZj8K,QAAQ8hE,IAAI,mCAEW,IAArBw6G,EAAanc,MACZ8b,EAAiBhtE,GAAQmtE,MAAMvhJ,SAASyhJ,EAAanc,OAEtD8b,EAAiBhtE,GAAQmtE,MAAM1tM,KAAK4tM,EAAanc,OAG1B,IAArBmc,EAAanc,OACf8b,EAAiBhtE,GAAU,CACzBmtE,MAAO,CAACE,EAAanc,QAK/B,GAAE,IAGJngK,QAAQ8hE,IAAI,2BAA4Bm6G,GAIxCN,EAAYM,GAEZj8K,QAAQ8hE,IAAI,gBAAiByqC,GAC7Bq1D,GAAW,GAAO3qG,EAAArpF,KAAA,iBAAAqpF,EAAAupC,KAAA,GAAAvpC,EAAAw3F,GAAAx3F,EAAA,SAElB2qG,GAAW,GACXjF,GAAS,GAAM,yBAAA1lG,EAAAnwE,OAAA,GAAAglK,EAAA,mBAElB,gBA9EgB/pD,GAAA,OAAAoI,EAAA19H,MAAA,KAAAH,UAAA,KA4JjB,OA7CAwsD,EAAAA,EAAAA,YAAU,WACJonI,IAGE4a,EAAajsM,IAAI,UACnBkxG,EAASoiE,GAAY24B,EAAajsM,IAAI,WAEpCisM,EAAajsM,IAAI,YACnBkxG,EAASsiE,GAAcy4B,EAAajsM,IAAI,aAEtCisM,EAAajsM,IAAI,QACnBkxG,EAASqiE,GAAsC,SAA5B04B,EAAajsM,IAAI,SAElCisM,EAAajsM,IAAI,UACnBkxG,EAASw5F,GAAUuB,EAAajsM,IAAI,WAElCisM,EAAajsM,IAAI,UAAYisM,EAAajsM,IAAI,YAChDkxG,EACEihE,GAAe,CACb1zE,MAAOwtG,EAAajsM,IAAI,SACxB+wK,MAAOk7B,EAAajsM,IAAI,cAM3BisM,EAAajsM,IAAI,cAClBkxG,EAAS0hE,GAAkBq5B,EAAajsM,IAAI,eAG9CkxG,EACEogE,GAAgB9I,GAAAA,GAAC,CAAC,EACboH,GAAW,IACdK,UAAWg8B,EAAajsM,IAAI,iBAIhCmxB,QAAQ8hE,IAAI,qBAAsBo+F,GAClC4b,EAAY5b,GAEZngF,EAASmgE,GAAW,KACpBngE,EAASshE,GAAa,KAE1B,GAAG,CAAC6e,KAGFznD,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,YAAWsL,UACxBszG,EAAAA,GAAAA,MAAA,OAAK5+G,UAAU,oBAAmBsL,SAAA,EAChCu1F,EAAAA,GAAAA,KAAA,OAAKpiI,MAAO,CAAE+vK,aAAc,QAASljI,UACnCu1F,EAAAA,GAAAA,KAAA,OAAKtlI,IAAI,mBAAmB8K,MAAM,QAAS5H,MAAO,CAACmlM,UAAW,gBAEhE/iE,EAAAA,GAAAA,KAAA,KAAAv1F,SAAG,0BAEDy+I,IACC1yL,GACDs9H,GACgC,GAAhClhI,OAAOqyD,KAAK6uE,GAAUhgI,SACpBksI,EAAAA,GAAAA,KAAA,KAAG7gG,UAAU,OAAMsL,SAAC,uBAEtBy+I,GACA1yL,IACCs9H,GAC+B,GAAhClhI,OAAOqyD,KAAK6uE,GAAUhgI,SACpBksI,EAAAA,GAAAA,KAAA,KAAG7gG,UAAU,OAAMsL,SAAC,yBAGxBszG,EAAAA,GAAAA,MAAA,OAQE5+G,UAAU,wBAAuBsL,SAAA,CAE/By+I,IAAY1yL,IAASwpI,EAAAA,GAAAA,KAAA,OAAK7gG,UAAU,gBAAesL,SAAC,eAErDqpF,GACClhI,OAAOqyD,KAAK6uE,GAAUh0E,KAAI,SAAC02E,GAAM,OAC/BwJ,EAAAA,GAAAA,KAAA,OACEt9E,QAAS,WACP4kD,EACEu5F,GACEsC,EAAYv/K,QACV,SAACkgL,GAAY,OAAKA,EAAaF,aAAeptE,CAAM,IACpD,GAAGkxD,OAUToC,EAAS,CACP1kL,SAAS,GAAD1O,OACNysM,EAAYv/K,QACV,SAACkgL,GAAY,OAAKA,EAAaF,aAAeptE,CAAM,IACpD,GAAGkxD,KAAI,KAAAhxL,OACPo9H,EAAS0C,GAAQmtE,MAAM,KAuB/B,EACAxkK,UAAU,WAAUsL,UAMpBu1F,EAAAA,GAAAA,KAAA,KAAAv1F,SAAI+rF,KAGA,WAMpB,ECqCA,OA7SA,WACE,IAA4CwN,EAAAzM,GAAZn3E,EAAAA,EAAAA,UAAS,IAAG,GACF8rH,GAD3BloC,EAAA,GAAaA,EAAA,GACczM,GAAVn3E,EAAAA,EAAAA,YAAU,IAEpCknD,GAFS4kE,EAAA,GAAaA,EAAA,GAEXtpC,MAET+9D,EAAav/D,IAAY,SAACpvF,GAAK,OAAKA,EAAMi4I,UAAU,IAApD0W,SACRoD,EAAmC3iE,IAAY,SAACpvF,GAAK,OAAKA,EAAMkyF,SAAS,IAAjEmlC,EAAW06B,EAAX16B,YAAallC,EAAS4/D,EAAT5/D,UAEf6/D,EAAiB,IAAIt4D,gBAAgBrzI,OAAO6M,SAAS8vF,QACrD2hG,EAAyC,SAA9BqN,EAAe5tM,IAAI,QAAqB+tI,EAInD2lD,GAFaka,EAAe5tM,IAAI,SAErBykI,MACX31H,EAAW7M,OAAO6M,SAASE,SAASxC,MAAM,KAAK,GAEFypK,EAAA90C,GAAfn3E,EAAAA,EAAAA,WAAS,GAAM,GAE7C6jJ,GAFW53B,EAAA,GAAeA,EAAA,GAEdh0K,OAAO6M,UAIqBsnK,EAAAj1C,GAAdn3E,EAAAA,EAAAA,UAAS,MAAK,GAAvCunH,EAAQ6E,EAAA,GAAE03B,EAAW13B,EAAA,GAqN5B,OAnNAnsH,EAAAA,EAAAA,YAAU,WAMJ2jJ,EAAe5tM,IAAI,UACrBkxG,EAASw5F,GAAUkD,EAAe5tM,IAAI,WAGxC,IAAM+tM,EAAgBF,EAAU7+L,SAASxC,MAAM,KAEnB,GAAxBuhM,EAAcrwM,SACdowM,EAAYC,EAAc,IAC1B78F,EAASs5F,GAAauD,EAAc,KACpC78F,EAASu5F,GAAWsD,EAAc,MAGV,GAAxBA,EAAcrwM,SAChBwzG,EAASu5F,GAAWsD,EAAc,KAClC78F,EAASs5F,GAAauD,EAAc,MAGV,GAAxBA,EAAcrwM,QAChBwzG,EAASs5F,GAAauD,EAAc,IAExC,GAAG,CAACF,EAAU7+L,SAAU4+L,EAAgB18F,KA4CxCjnD,EAAAA,EAAAA,YAAU,WACR94B,QAAQ8hE,IAAI,uBAEZ,IACIs+E,EADEw8B,EAAgBF,EAAU7+L,SAASxC,MAAM,KAGnB,GAAxBuhM,EAAcrwM,SAChB6zK,EAAWw8B,EAAc,IAGvBx8B,IAEFpgJ,QAAQ8hE,IAAI,iBACZ9hE,QAAQ8hE,IAAI,eAAgBs+E,GAC5BrgE,EAASmgE,GAAW,KACpBngE,EAASshE,GAAa,KACtBthE,EAASyhE,IAAmB,IAE5BvrB,GAAM,CACJpyB,OAAQ,MACRl2B,IAAKkwF,GAAS,qBAAuB5oI,mBAAmBmrH,GAGxD/6B,QAAS,CACP,eAAgB,sBAGjBr3I,MAAK,SAAC0O,GAAc,IAADsoL,EAAAM,EAAAuX,EACd/8B,EAAU,GACVg9B,EAAU,GACd98K,QAAQ8hE,IAAI,yBAA0BplF,EAAS9C,MAC/ComB,QAAQ8hE,IAAIstG,GACJ,OAAR1yL,QAAQ,IAARA,GAAc,QAANsoL,EAARtoL,EAAU9C,YAAI,IAAAorL,GAAdA,EAAgBprL,KAAK2+C,KAAI,SAACgrH,GACxBvjJ,QAAQ8hE,IAAI,cAGU,IAAnByhF,EAAKw5B,WAAoB3N,EAOA,IAAnB7rB,EAAKy5B,WAAmB5N,IAC3B7rB,EAAKmhB,QACP5kB,EAAQpxK,KAAK60K,GAGbu5B,EAAQpuM,KAAK60K,IAXXA,EAAKmhB,QACT5kB,EAAQpxK,KAAK60K,GAGbu5B,EAAQpuM,KAAK60K,EA+CjB,IAQAvjJ,QAAQ8hE,IAAI,WAAYg7G,GACR,SAAZ1D,GAAuBt3B,GACzB/hE,EAASmgE,GAAW48B,IACpB/8F,EAASshE,GAAa,MACD,QAAZ+3B,GAAuBt3B,EAGX,QAAZs3B,GAAsBt3B,GAC/B/hE,EAASshE,GAAavB,IACtB//D,EAASmgE,GAAW,MACC,SAAZk5B,GAAwBt3B,GAMjC/hE,EAASmgE,GAAW48B,IACpB/8F,EAASshE,GAAavB,MANtB//D,EAASshE,GAAa,KACtBthE,EAASmgE,GAAW48B,MAPpB/8F,EAASshE,GAAavB,IACtB//D,EAASmgE,GAAW,MAqBtBngE,EAASghE,GAAepjK,IACxBxL,SAASmlC,MAAQ56B,EAAS9C,KAAKA,KAAK,GAAGwmK,SAAW,oBAClDrgE,EAASyhE,IAAmB,IAEC,YAAlB,OAAR9kK,QAAQ,IAARA,GAAc,QAAN4oL,EAAR5oL,EAAU9C,YAAI,IAAA0rL,OAAN,EAARA,EAAgBtoL,SAAgD,IAAjB,OAARN,QAAQ,IAARA,GAAc,QAANmgM,EAARngM,EAAU9C,YAAI,IAAAijM,OAAN,EAARA,EAAgB5tM,QAExDszL,EAAS,YAGb,IACCzrI,OAAM,SAAC7nD,GACN8wG,EAASyhE,IAAmB,IAC5BxhJ,QAAQ8hE,IAAI,YAAa7yF,GACzBszL,EAAS,YACX,IAEN,GAAG,CAACniB,EAAUrgE,EAAU08F,KAGtBjmD,EAAAA,GAAAA,MAAA9d,GAAAA,SAAA,CAAAx1F,SAAA,EACEu1F,EAAAA,GAAAA,KAACwkE,GAAc,KACfxkE,EAAAA,GAAAA,KAAChB,GAAM,CAAAv0F,UAILszG,EAAAA,GAAAA,MAACpgB,GAAK,CAACh5H,KAAK,IAAIumB,SAAS80G,EAAAA,GAAAA,KAACplF,GAAO,IAAInQ,SAAA,EAanCu1F,EAAAA,GAAAA,KAACrC,GAAK,CAACh5H,KAAK,IAAIumB,SAAS80G,EAAAA,GAAAA,KAACykE,GAAc,OAExCzkE,EAAAA,GAAAA,KAACrC,GAAK,CAACh5H,KAAK,aAAaumB,SAAS80G,EAAAA,GAAAA,KAAC0kE,GAAY,OAE/C1kE,EAAAA,GAAAA,KAACrC,GAAK,CAACh5H,KAAK,+BAA+BumB,SAAS80G,EAAAA,GAAAA,KAAC2kE,GAAI,OAOzD3kE,EAAAA,GAAAA,KAACrC,GAAK,CACJh5H,KAAK,oCACLumB,SAAS80G,EAAAA,GAAAA,KAAC4kE,GAAS,OAGrB5kE,EAAAA,GAAAA,KAACrC,GAAK,CACJh5H,KAAK,4CACLumB,SAAS80G,EAAAA,GAAAA,KAAC6kE,GAAkB,OAG9B7kE,EAAAA,GAAAA,KAACrC,GAAK,CACJh5H,KAAK,uCACLumB,SAAS80G,EAAAA,GAAAA,KAAC8kE,GAAW,OAGvB9kE,EAAAA,GAAAA,KAACrC,GAAK,CACJh5H,KAAK,qCACLumB,SAAS80G,EAAAA,GAAAA,KAAC+kE,GAAS,OAGrB/kE,EAAAA,GAAAA,KAACrC,GAAK,CAACh5H,KAAK,iCAAiCumB,SAAS80G,EAAAA,GAAAA,KAACob,GAAQ,OAE/Dpb,EAAAA,GAAAA,KAACrC,GAAK,CAACh5H,KAAK,YAAYumB,SAAS80G,EAAAA,GAAAA,KAACob,GAAQ,aAUpD,ECjUA,GAZwB,SAAA4pD,GAClBA,GAAeA,aAAuBz4I,UACxC,mFAAqBh3D,MAAK,SAAAm8H,GAAkD,IAA/CuzE,EAAMvzE,EAANuzE,OAAQC,EAAMxzE,EAANwzE,OAAQC,EAAMzzE,EAANyzE,OAAQC,EAAM1zE,EAAN0zE,OAAQC,EAAO3zE,EAAP2zE,QAC3DJ,EAAOD,GACPE,EAAOF,GACPG,EAAOH,GACPI,EAAOJ,GACPK,EAAQL,EACV,GAEJ,ECEA,GANoBtnC,GAAgB,CAClCgN,QAASvB,GACTjlC,UAAWgmC,GACX+f,WAAYgX,KCTHqE,6BAAa,YACbC,GAAQ,gBACRC,GAAY,oBACZC,GAAQ,gBACRC,GAAU,kBACVC,GAAQ,gBACRC,GAAW,mBACXC,IAAmB,ECP9B,SAASzzJ,GAAQsV,GAAwT,OAAtOtV,GAArD,oBAAXt8C,QAAoD,kBAApBA,OAAOC,SAAmC,SAAiB2xD,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX5xD,QAAyB4xD,EAAIl0D,cAAgBsC,QAAU4xD,IAAQ5xD,OAAO7C,UAAY,gBAAkBy0D,CAAK,EAAYtV,GAAQsV,EAAM,CAE9V,SAASu2F,GAAQvjE,EAAQwjE,GAAkB,IAAIj5F,EAAOryD,OAAOqyD,KAAKy1B,GAAS,GAAI9nF,OAAOuB,sBAAuB,CAAE,IAAIgqJ,EAAUvrJ,OAAOuB,sBAAsBumF,GAAawjE,IAAgBC,EAAUA,EAAQv6H,QAAO,SAAUw6H,GAAO,OAAOxrJ,OAAO4B,yBAAyBkmF,EAAQ0jE,GAAKjoJ,UAAY,KAAI8uD,EAAKhvD,KAAKjC,MAAMixD,EAAMk5F,EAAU,CAAE,OAAOl5F,CAAM,CAIpV,SAASq5F,GAAgB52F,EAAK9lB,EAAKtsC,GAAiK,OAApJssC,KAAO8lB,EAAO90D,OAAOgC,eAAe8yD,EAAK9lB,EAAK,CAAEtsC,MAAOA,EAAOa,YAAY,EAAM8oF,cAAc,EAAM27B,UAAU,IAAkBlzD,EAAI9lB,GAAOtsC,EAAgBoyD,CAAK,CAOjM,SAASo+I,GAAgBC,EAAcC,EAAeC,EAAcv0E,GACrEA,EAAK90E,MAAjB,IAEIspJ,EAZN,SAAuB7mM,GAAU,IAAK,IAAIzL,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAI26C,EAAyB,MAAhB16C,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAKqqJ,GAAQ1vG,GAAQ,GAAM7nB,SAAQ,SAAUkb,GAAO08G,GAAgBj/I,EAAQuiC,EAAK2M,EAAO3M,GAAO,IAAehvC,OAAOkzI,0BAA6BlzI,OAAOs7C,iBAAiB7uC,EAAQzM,OAAOkzI,0BAA0Bv3F,IAAmB0vG,GAAQ1vG,GAAQ7nB,SAAQ,SAAUkb,GAAOhvC,OAAOgC,eAAeyK,EAAQuiC,EAAKhvC,OAAO4B,yBAAyB+5C,EAAQ3M,GAAO,GAAM,CAAE,OAAOviC,CAAQ,CAYpfu/J,CAAc,CAAC,EAAGqnC,GAmBjC,OAhBIF,GAA0C,WAA1B3zJ,GAAQ2zJ,IAC1BnzM,OAAOqyD,KAAK8gJ,GAAcr/K,SAAQ,SAAUkb,GAE9B,aAARA,GAEAokK,EAAcpkK,KAASqkK,EAAarkK,KAMxCskK,EAAStkK,GAAOmkK,EAAankK,GAC/B,IAIKskK,CACT,CClCe,SAASC,GAAiB36I,GAEvC,IAMIq/E,EANA9lF,EAAYyG,EAAOzG,WAAa,KAChCqhJ,EAAY56I,EAAO46I,WAAa,KAChCvkK,EAAa2pB,EAAO3pB,YAAc,GAClCwkK,EAAW76I,EAAO66I,UAAY,EAC9BC,EAAa,GAAG5vM,YAA4ByzD,IAArBqB,EAAO+6I,UAA0B/6I,EAAO+6I,UAAYjB,IAAY5uM,OAAO80D,EAAO5pB,KACrG0iF,EAAU94D,EAAO84D,QAInBumB,GADuB,IAArBr/E,EAAOq/E,UACG,SAAmBh4H,GAC7B,OAAOA,CACT,EACqC,oBAArB24C,EAAOq/E,UACXr/E,EAAOq/E,UAEP27D,GAGd,IAAIC,EAAmBj7I,EAAOi7I,kBAAoB,KAE9CC,EAAY,CAAC,EACbC,EAAc,CAAC,EACfC,EAAgB,GAChBC,EAAe,KACfC,EAAe,KA4BnB,SAASC,IACP,GAA6B,IAAzBH,EAAc9yM,OAGhB,OAFI+yM,GAAcvgM,cAAcugM,QAChCA,EAAe,MAIjB,IAAIjlK,EAAMglK,EAAcvvM,QACpB2vM,EAAWnlK,EAAWw6E,QAAO,SAAU4qF,EAAUC,GACnD,OAAOA,EAAYC,GAAGF,EAAUrlK,EAAK8kK,EACvC,GAAGA,EAAU9kK,IAEb,QAAiBuoB,IAAb68I,EACF,IACEL,EAAY/kK,GAAOipG,EAAUm8D,EAC/B,CAAE,MAAO5sH,GACP7yD,QAAQ/wB,MAAM,0DAA2D4jF,EAC3E,aAGOusH,EAAY/kK,GAGQ,IAAzBglK,EAAc9yM,SAOlBlB,OAAOqyD,KAAK0hJ,GAAajgL,SAAQ,SAAUkb,QAClBuoB,IAAnBu8I,EAAU9kK,WACL+kK,EAAY/kK,EAEvB,IACAklK,EAAexiF,EAAQI,QAAQ4hF,EAAYz7D,EAAU87D,IAActoJ,MAAM+oJ,GAT3E,CAYA,SAASC,EAAuBzlK,GAC9B,QAAIwkK,IAAyC,IAA5BA,EAAUlyM,QAAQ0tC,IAAuB,aAARA,MAC9CmjB,IAAyC,IAA5BA,EAAU7wD,QAAQ0tC,GAErC,CAEA,SAASwlK,EAAYhtH,GAEfqsH,GAAkBA,EAAiBrsH,EAKzC,CAWA,MAAO,CACLphD,OAzFW,SAAgBgZ,GAE3Bp/C,OAAOqyD,KAAKjT,GAAOtrB,SAAQ,SAAUkb,GAC9BylK,EAAuBzlK,IAExB8kK,EAAU9kK,KAASoQ,EAAMpQ,KAEO,IAAhCglK,EAAc1yM,QAAQ0tC,IAE1BglK,EAAc3wM,KAAK2rC,EACrB,IAGAhvC,OAAOqyD,KAAKyhJ,GAAWhgL,SAAQ,SAAUkb,QACpBuoB,IAAfnY,EAAMpQ,IAAsBylK,EAAuBzlK,KAAwC,IAAhCglK,EAAc1yM,QAAQ0tC,SAAkCuoB,IAAnBu8I,EAAU9kK,IAC5GglK,EAAc3wM,KAAK2rC,EAEvB,IAEqB,OAAjBilK,IACFA,EAAe1gM,YAAY4gM,EAAgBV,IAG7CK,EAAY10J,CACd,EAkEEgoE,MAXU,WACV,KAAgC,IAAzB4sF,EAAc9yM,QACnBizM,IAGF,OAAOD,GAAgB7xM,QAAQiC,SACjC,EAOF,CAEA,SAASsvM,GAAiBrlM,GACxB,OAAOoB,KAAKE,UAAUtB,EACxB,CC7He,SAASmmM,GAAe97I,GACrC,IAII+7I,EAJA1lK,EAAa2pB,EAAO3pB,YAAc,GAClCykK,EAAa,GAAG5vM,YAA4ByzD,IAArBqB,EAAO+6I,UAA0B/6I,EAAO+6I,UAAYjB,IAAY5uM,OAAO80D,EAAO5pB,KACrG0iF,EAAU94D,EAAO84D,QACT94D,EAAO5O,MAanB,OATE2qJ,GADyB,IAAvB/7I,EAAO+7I,YACK,SAAqB10L,GACjC,OAAOA,CACT,EACuC,oBAAvB24C,EAAO+7I,YACT/7I,EAAO+7I,YAEPC,GAGTljF,EAAQE,QAAQ8hF,GAAY/wM,MAAK,SAAUkyM,GAChD,GAAKA,EACH,IACE,IAAIz1J,EAAQ,CAAC,EACT01J,EAAWH,EAAYE,GAM3B,OALA70M,OAAOqyD,KAAKyiJ,GAAUhhL,SAAQ,SAAUkb,GACtCoQ,EAAMpQ,GAAOC,EAAWs7F,aAAY,SAAU8pE,EAAUC,GACtD,OAAOA,EAAY3xH,IAAI0xH,EAAUrlK,EAAK8lK,EACxC,GAAGH,EAAYG,EAAS9lK,IAC1B,IACOoQ,CACT,CAAE,MAAOooC,GAEP,MAAMA,CACR,CAEJ,GACF,CAEA,SAASotH,GAAmBG,GAC1B,OAAOplM,KAAKC,MAAMmlM,EACpB,CChCA,SAASC,GAAkBxtH,GACrBA,CAGN,CCXA,SAAS6jE,GAAQvjE,EAAQwjE,GAAkB,IAAIj5F,EAAOryD,OAAOqyD,KAAKy1B,GAAS,GAAI9nF,OAAOuB,sBAAuB,CAAE,IAAIgqJ,EAAUvrJ,OAAOuB,sBAAsBumF,GAAawjE,IAAgBC,EAAUA,EAAQv6H,QAAO,SAAUw6H,GAAO,OAAOxrJ,OAAO4B,yBAAyBkmF,EAAQ0jE,GAAKjoJ,UAAY,KAAI8uD,EAAKhvD,KAAKjC,MAAMixD,EAAMk5F,EAAU,CAAE,OAAOl5F,CAAM,CAEpV,SAAS25G,GAAcv/J,GAAU,IAAK,IAAIzL,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAI26C,EAAyB,MAAhB16C,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAKqqJ,GAAQ1vG,GAAQ,GAAM7nB,SAAQ,SAAUkb,GAAO08G,GAAgBj/I,EAAQuiC,EAAK2M,EAAO3M,GAAO,IAAehvC,OAAOkzI,0BAA6BlzI,OAAOs7C,iBAAiB7uC,EAAQzM,OAAOkzI,0BAA0Bv3F,IAAmB0vG,GAAQ1vG,GAAQ7nB,SAAQ,SAAUkb,GAAOhvC,OAAOgC,eAAeyK,EAAQuiC,EAAKhvC,OAAO4B,yBAAyB+5C,EAAQ3M,GAAO,GAAM,CAAE,OAAOviC,CAAQ,CAErgB,SAASi/I,GAAgB52F,EAAK9lB,EAAKtsC,GAAiK,OAApJssC,KAAO8lB,EAAO90D,OAAOgC,eAAe8yD,EAAK9lB,EAAK,CAAEtsC,MAAOA,EAAOa,YAAY,EAAM8oF,cAAc,EAAM27B,UAAU,IAAkBlzD,EAAI9lB,GAAOtsC,EAAgBoyD,CAAK,CAEhN,SAASixG,GAAyBpqH,EAAQqqH,GAAY,GAAc,MAAVrqH,EAAgB,MAAO,CAAC,EAAG,IAAkE3M,EAAKhuC,EAAnEyL,EAEzF,SAAuCkvC,EAAQqqH,GAAY,GAAc,MAAVrqH,EAAgB,MAAO,CAAC,EAAG,IAA2D3M,EAAKhuC,EAA5DyL,EAAS,CAAC,EAAOw5J,EAAajmK,OAAOqyD,KAAK1W,GAAqB,IAAK36C,EAAI,EAAGA,EAAIilK,EAAW/kK,OAAQF,IAAOguC,EAAMi3H,EAAWjlK,GAAQglK,EAAS1kK,QAAQ0tC,IAAQ,IAAaviC,EAAOuiC,GAAO2M,EAAO3M,IAAQ,OAAOviC,CAAQ,CAFhNy5J,CAA8BvqH,EAAQqqH,GAAuB,GAAIhmK,OAAOuB,sBAAuB,CAAE,IAAI4kK,EAAmBnmK,OAAOuB,sBAAsBo6C,GAAS,IAAK36C,EAAI,EAAGA,EAAImlK,EAAiBjlK,OAAQF,IAAOguC,EAAMm3H,EAAiBnlK,GAAQglK,EAAS1kK,QAAQ0tC,IAAQ,GAAkBhvC,OAAOK,UAAUmB,qBAAqBjB,KAAKo7C,EAAQ3M,KAAgBviC,EAAOuiC,GAAO2M,EAAO3M,GAAQ,CAAE,OAAOviC,CAAQ,CAS3e,IAAIwoM,GAAkB,ICftB,SAAShyE,GAAmBnzG,GAAO,OAMnC,SAA4BA,GAAO,GAAI3vB,MAAMs0D,QAAQ3kC,GAAM,CAAE,IAAK,IAAI9uB,EAAI,EAAG2rE,EAAO,IAAIxsE,MAAM2vB,EAAI5uB,QAASF,EAAI8uB,EAAI5uB,OAAQF,IAAO2rE,EAAK3rE,GAAK8uB,EAAI9uB,GAAM,OAAO2rE,CAAM,CAAE,CAN3Hi/E,CAAmB97H,IAI7D,SAA0BgrG,GAAQ,GAAI53H,OAAOC,YAAYnD,OAAO86H,IAAkD,uBAAzC96H,OAAOK,UAAUiN,SAAS/M,KAAKu6H,GAAgC,OAAO36H,MAAM83D,KAAK6iE,EAAO,CAJ5FmB,CAAiBnsG,IAEtF,WAAgC,MAAM,IAAIrvB,UAAU,kDAAoD,CAFVorJ,EAAsB,CAQpH,SAASR,GAAQvjE,EAAQwjE,GAAkB,IAAIj5F,EAAOryD,OAAOqyD,KAAKy1B,GAAS,GAAI9nF,OAAOuB,sBAAuB,CAAE,IAAIgqJ,EAAUvrJ,OAAOuB,sBAAsBumF,GAAawjE,IAAgBC,EAAUA,EAAQv6H,QAAO,SAAUw6H,GAAO,OAAOxrJ,OAAO4B,yBAAyBkmF,EAAQ0jE,GAAKjoJ,UAAY,KAAI8uD,EAAKhvD,KAAKjC,MAAMixD,EAAMk5F,EAAU,CAAE,OAAOl5F,CAAM,CAEpV,SAAS25G,GAAcv/J,GAAU,IAAK,IAAIzL,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAI26C,EAAyB,MAAhB16C,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAKqqJ,GAAQ1vG,GAAQ,GAAM7nB,SAAQ,SAAUkb,GAAO08G,GAAgBj/I,EAAQuiC,EAAK2M,EAAO3M,GAAO,IAAehvC,OAAOkzI,0BAA6BlzI,OAAOs7C,iBAAiB7uC,EAAQzM,OAAOkzI,0BAA0Bv3F,IAAmB0vG,GAAQ1vG,GAAQ7nB,SAAQ,SAAUkb,GAAOhvC,OAAOgC,eAAeyK,EAAQuiC,EAAKhvC,OAAO4B,yBAAyB+5C,EAAQ3M,GAAO,GAAM,CAAE,OAAOviC,CAAQ,CAErgB,SAASi/I,GAAgB52F,EAAK9lB,EAAKtsC,GAAiK,OAApJssC,KAAO8lB,EAAO90D,OAAOgC,eAAe8yD,EAAK9lB,EAAK,CAAEtsC,MAAOA,EAAOa,YAAY,EAAM8oF,cAAc,EAAM27B,UAAU,IAAkBlzD,EAAI9lB,GAAOtsC,EAAgBoyD,CAAK,CAIhN,IAAI05G,GAAe,CACjB0mC,SAAU,GACVC,cAAc,GAGZC,GAAmB,WACrB,IAAIh2J,EAAQn+C,UAAUC,OAAS,QAAsBq2D,IAAjBt2D,UAAU,GAAmBA,UAAU,GAAKutK,GAC5El6D,EAASrzG,UAAUC,OAAS,EAAID,UAAU,QAAKs2D,EAEnD,OAAQ+8C,EAAOzoG,MACb,KAAKmnM,GACH,OAAOhnC,GAAc,CAAC,EAAG5sH,EAAO,CAC9B81J,SAAU,GAAGpxM,OAAOm/H,GAAmB7jF,EAAM81J,UAAW,CAAC5gG,EAAOtlE,QAGpE,KAAK4jK,GACH,IAAIyC,EAAaj2J,EAAM81J,SAAS5zM,QAAQgzG,EAAOtlE,KAE3CkmK,EAAWjyE,GAAmB7jF,EAAM81J,UAGxC,OADAA,EAASx/L,OAAO2/L,EAAY,GACrBrpC,GAAc,CAAC,EAAG5sH,EAAO,CAC9B81J,SAAUA,EACVC,aAAkC,IAApBD,EAASh0M,SAG3B,QACE,OAAOk+C,EAEb,MCzBMk2J,GFES,SAAwB18I,EAAQ28I,GAO7C,IAAIlsL,OAA6BkuC,IAAnBqB,EAAOvvC,QAAwBuvC,EAAOvvC,QAAU4pL,GAE1DuC,GADQ58I,EAAO5O,WAC8BuN,IAA3BqB,EAAO48I,gBAAgCtC,GAAkBt6I,EAAO48I,iBAClFd,EAAiB97I,EAAO87I,gBAAkBe,GAC1CzgF,OAA6Bz9D,IAAnBqB,EAAOo8D,QAAwBp8D,EAAOo8D,QAAUigF,GAC1DS,EAAc,KACdC,GAAS,EACTC,GAAU,EAEVC,EAAoB,SAA2Bz2J,GAGjD,OADAA,EAAM02J,SAASC,YAAcL,IAAgBE,GAAWF,EAAYtvK,OAAOgZ,GACpEA,CACT,EAEA,OAAO,SAAUA,EAAOk1D,GACtB,IAAIwqB,EAAO1/E,GAAS,CAAC,EACjB02J,EAAWh3E,EAAKg3E,SAIhBE,EAHOjwC,GAAyBjnC,EAAM,CAAC,aAK3C,GAAIxqB,EAAOzoG,OAASinM,GAAS,CAC3B,IAAImD,GAAU,EAEVC,EAAa,SAAoBjkM,EAASu1E,GAIvCyuH,IACH3hG,EAAO6hG,UAAUv9I,EAAO5pB,IAAK/8B,EAASu1E,GACtCyuH,GAAU,EAEd,EAUA,GARAjhF,GAAWj6G,YAAW,YACnBk7L,GAAWC,OAAW3+I,EAAW,IAAItxD,MAAM,qDAAsDnC,OAAO80D,EAAO5pB,IAAK,MACvH,GAAGgmF,GAEH4gF,GAAU,EAELF,IAAaA,EAAcnC,GAAiB36I,IAE7Ck9I,EAGF,OAAO9pC,GAAc,CAAC,EAAGupC,EAAYS,EAAW1hG,GAAS,CACvDwhG,SAAUA,IAId,GAAgC,oBAArBxhG,EAAO6hG,WAAuD,oBAApB7hG,EAAOq6E,SAAyB,MAAM,IAAI1oL,MAAM,mOAiBrG,OAhBAquG,EAAOq6E,SAAS/1H,EAAO5pB,KACvB0lK,EAAe97I,GAAQj2D,MAAK,SAAUyzM,GACpC,IAAIC,EAAUz9I,EAAOy9I,SAAW,SAAU30M,EAAGyC,GAC3C,OAAO9B,QAAQiC,QAAQ5C,EACzB,EAEA20M,EAAQD,EAAe/sL,GAAS1mB,MAAK,SAAU2zM,GAC7CJ,EAAWI,EACb,IAAG,SAAUC,GAGXL,OAAW3+I,EAAWg/I,EACxB,GACF,IAAG,SAAU/uH,GACX0uH,OAAW3+I,EAAWiwB,EACxB,IACOwkF,GAAc,CAAC,EAAGupC,EAAYS,EAAW1hG,GAAS,CACvDwhG,SAAU,CACRzsL,QAASA,EACT0sL,YAAY,IAGlB,CAAO,GAAIzhG,EAAOzoG,OAASknM,GAGzB,OAFA4C,GAAS,EACTrhG,EAAOpkC,ODzGE,SAA0BtX,GACvC,IAAI84D,EAAU94D,EAAO84D,QACjBgiF,EAAa,GAAG5vM,YAA4ByzD,IAArBqB,EAAO+6I,UAA0B/6I,EAAO+6I,UAAYjB,IAAY5uM,OAAO80D,EAAO5pB,KACzG,OAAO0iF,EAAQK,WAAW2hF,EAAYsB,GACxC,CCqGoBwB,CAAiB59I,IACxBozG,GAAc,CAAC,EAAGupC,EAAYS,EAAW1hG,GAAS,CACvDwhG,SAAUA,IAEP,GAAIxhG,EAAOzoG,OAAS8mM,GAEzB,OADAr+F,EAAOpkC,OAAOwlI,GAAeA,EAAYtuF,SAClC4kD,GAAc,CAAC,EAAGupC,EAAYS,EAAW1hG,GAAS,CACvDwhG,SAAUA,IAEP,GAAIxhG,EAAOzoG,OAASgnM,GACzB+C,GAAU,OACL,GAAIthG,EAAOzoG,OAAS+mM,GAAW,CAEpC,GAAI+C,EAAQ,OAAO3pC,GAAc,CAAC,EAAGgqC,EAAW,CAC9CF,SAAU9pC,GAAc,CAAC,EAAG8pC,EAAU,CACpCC,YAAY,MAKhB,GAAIzhG,EAAOtlE,MAAQ4pB,EAAO5pB,IAAK,CAC7B,IAAIqkK,EAAekC,EAAYS,EAAW1hG,GACtC6+F,EAAe7+F,EAAOriG,QAItBwkM,EAAYzqC,GAAc,CAAC,GAFU,IAApBwpC,QAA8Cj+I,IAAjB47I,EAA6BqC,EAAgBrC,EAAc/zJ,EAAOi0J,EAAcz6I,GAAUy6I,EAE1F,CAChDyC,SAAU9pC,GAAc,CAAC,EAAG8pC,EAAU,CACpCC,YAAY,MAIhB,OAAOF,EAAkBY,EAC3B,CACF,CAGA,IAAKX,EAAU,OAAOP,EAAYn2J,EAAOk1D,GAGzC,IAAIg/F,EAAWiC,EAAYS,EAAW1hG,GACtC,OAAIg/F,IAAa0C,EAAkB52J,EAC5By2J,EAAkB7pC,GAAc,CAAC,EAAGsnC,EAAU,CACnDwC,SAAUA,IAEd,CACF,CEpIyBY,CALH,CACpB1nK,IAAK,OACL0iF,iCAASilF,GAG4CC,IAE1C1oE,G5HsHN,SAKLvgD,GACA,IAUIipH,EAVEC,EAA8B9pC,KAE9BC,EAMFr/E,GAAW,CAAC,EALdx2B,EAAA61G,EAAAh6B,QAAAA,OAAA,IAAA77E,OAAU,EAAAA,EACV0wD,EAAAmlD,EAAAjB,WAAAA,OAAA,IAAAlkD,EAAagvF,IAAAhvF,EACbxvD,EAAA20G,EAAA8pC,SAAAA,OAAA,IAAAz+I,GAAWA,EACX0+I,EAAA/pC,EAAA/C,eAAAA,OAAA,IAAA8sC,OAAiB,EAAAA,EACjBC,EAAAhqC,EAAAiqC,UAAAA,OAAA,IAAAD,OAAY,EAAAA,EAKd,GAAuB,oBAAZhkE,EACT4jE,EAAc5jE,MAAA,KACLf,GAAce,GAGvB,MAAM,IAAI/sI,MACR,4HAHF2wM,EAAc9rC,GAAgB93B,GAOhC,IAAIkkE,EAAkBnrC,EACtB,GAA+B,oBAApBmrC,IACTA,EAAkBA,EAAgBL,IAE7BvpC,KAAkBntK,MAAMs0D,QAAQyiJ,IACnC,MAAM,IAAIjxM,MACR,qFAIN,IACGqnK,IACD4pC,EAAgB7iJ,MAAK,SAAC6lB,GAAc,MAAgB,oBAATA,CAAP,IAEpC,MAAM,IAAIj0E,MACR,iEAIJ,IAAMkxM,EAAoCxrC,GAAAA,WAAA,EAAmBurC,GAEzDE,EAAeC,GAEfP,IACFM,EAAe/qC,GAAoBsB,GAAA,CAEjC2pC,OAAQhqC,IACgB,kBAAbwpC,GAAyBA,KAIxC,IAAIS,EAA4B,CAACJ,GAUjC,OARIh3M,MAAMs0D,QAAQwiJ,GAChBM,EAAAvzM,GAAA,CAAkBmzM,GAAuBF,GACX,oBAAdA,IAChBM,EAAiBN,EAAUM,IAKtBvtC,GAAY4sC,EAAa3sC,EAFPmtC,EAAAh2M,WAAA,EAAgBm2M,GAEO,C4H3L7BC,CAAe,CAClCxkE,QAASsiE,GACTvpC,WAAY,CAACI,MAGFsrC,GDoBE,SAAsBvpE,EAAOvgD,EAASJ,GAER,IAQvCmqH,EAAgBnqH,IAAM,EAEtBoqH,EAAU3tC,GAAYorC,GAAkB5mC,GAAc7gF,GAAWA,EAAQu8E,SAAWv8E,EAAQu8E,cAAW3yG,GAEvGo3H,EAAW,SAAkB3/I,GAC/B2oK,EAAQjjG,SAAS,CACf7oG,KAAMmnM,GACNhkK,IAAKA,GAET,EAEImnK,EAAY,SAAmBnnK,EAAK/8B,EAASu1E,GAC/C,IAAIowH,EAAkB,CACpB/rM,KAAM+mM,GACN3gM,QAASA,EACTu1E,IAAKA,EACLx4C,IAAKA,GAGPk/F,EAAMx5B,SAASkjG,GAEfD,EAAQjjG,SAASkjG,GAEbF,GAAiBD,EAAUlpE,WAAW4mE,eACxCuC,IACAA,GAAgB,EAEpB,EAEID,EAAYzrC,GAAc,CAAC,EAAG2rC,EAAS,CACzCE,MAAO,WACL,IAAIC,EAAU,GAOd,OANA5pE,EAAMx5B,SAAS,CACb7oG,KAAMknM,GACN7iI,OAAQ,SAAgB6nI,GACtBD,EAAQz0M,KAAK00M,EACf,IAEK11M,QAAQkyH,IAAIujF,EACrB,EACA1wF,MAAO,WACL,IAAI0wF,EAAU,GAOd,OANA5pE,EAAMx5B,SAAS,CACb7oG,KAAM8mM,GACNziI,OAAQ,SAAgB8nI,GACtBF,EAAQz0M,KAAK20M,EACf,IAEK31M,QAAQkyH,IAAIujF,EACrB,EACArwM,MAAO,WACLymI,EAAMx5B,SAAS,CACb7oG,KAAMgnM,IAEV,EACAp3G,QAAS,WACPyyC,EAAMx5B,SAAS,CACb7oG,KAAMinM,GACNnkB,SAAUA,EACVwnB,UAAWA,GAEf,IAOF,OAJMxoH,GAAWA,EAAQsqH,eACvBR,EAAUh8G,UAGLg8G,CACT,CCnGyBS,CAAahqE,IC3BtC,SAAS1uF,GAAQsV,GAAwT,OAAtOtV,GAArD,oBAAXt8C,QAAoD,kBAApBA,OAAOC,SAAmC,SAAiB2xD,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX5xD,QAAyB4xD,EAAIl0D,cAAgBsC,QAAU4xD,IAAQ5xD,OAAO7C,UAAY,gBAAkBy0D,CAAK,EAAYtV,GAAQsV,EAAM,CAI9V,SAASynE,GAAkB9vH,EAAQ2Z,GAAS,IAAK,IAAIplB,EAAI,EAAGA,EAAIolB,EAAMllB,OAAQF,IAAK,CAAE,IAAIwxD,EAAapsC,EAAMplB,GAAIwxD,EAAWjvD,WAAaivD,EAAWjvD,aAAc,EAAOivD,EAAW65B,cAAe,EAAU,UAAW75B,IAAYA,EAAWw1D,UAAW,GAAMhoH,OAAOgC,eAAeyK,EAAQ+lD,EAAWxjB,IAAKwjB,EAAa,CAAE,CAM5T,SAASsqE,GAAgB/6H,GAAwJ,OAAnJ+6H,GAAkB98H,OAAOC,eAAiBD,OAAO8xD,eAAiB,SAAyB/vD,GAAK,OAAOA,EAAE7B,WAAaF,OAAO8xD,eAAe/vD,EAAI,EAAU+6H,GAAgB/6H,EAAI,CAE5M,SAASo2M,GAAuBxyM,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIsiH,eAAe,6DAAgE,OAAOtiH,CAAM,CAIrK,SAAS+2H,GAAgB36H,EAAGyC,GAA+G,OAA1Gk4H,GAAkB18H,OAAOC,gBAAkB,SAAyB8B,EAAGyC,GAAsB,OAAjBzC,EAAE7B,UAAYsE,EAAUzC,CAAG,EAAU26H,GAAgB36H,EAAGyC,EAAI,CAEzK,SAASknJ,GAAgB52F,EAAK9lB,EAAKtsC,GAAiK,OAApJssC,KAAO8lB,EAAO90D,OAAOgC,eAAe8yD,EAAK9lB,EAAK,CAAEtsC,MAAOA,EAAOa,YAAY,EAAM8oF,cAAc,EAAM27B,UAAU,IAAkBlzD,EAAI9lB,GAAOtsC,EAAgBoyD,CAAK,CAIzM,IAAIsjJ,GAEX,SAAUC,GAGR,SAASD,IACP,IAAIE,EAEA9uE,GA5BR,SAAyBv/E,EAAUiyE,GAAe,KAAMjyE,aAAoBiyE,GAAgB,MAAM,IAAIz7H,UAAU,oCAAwC,CA8BpJkmI,CAAgBhmI,KAAMy3M,GAEtB,IAAK,IAAI/6D,EAAOp8I,UAAUC,OAAQm4D,EAAO,IAAIl5D,MAAMk9I,GAAO5K,EAAO,EAAGA,EAAO4K,EAAM5K,IAC/Ep5E,EAAKo5E,GAAQxxI,UAAUwxI,GAkCzB,OA/BAjJ,EA9BJ,SAAoC7jI,EAAMpF,GAAQ,OAAIA,GAA2B,WAAlBi/C,GAAQj/C,IAAsC,oBAATA,EAA8C43M,GAAuBxyM,GAAtCpF,CAA6C,CA8BpK48H,CAA2Bx8H,MAAO23M,EAAmBx7E,GAAgBs7E,IAAc73M,KAAKa,MAAMk3M,EAAkB,CAAC33M,MAAMmD,OAAOu1D,KAEtIqyF,GAAgBysD,GAAuB3uE,GAAQ,QAAS,CACtD2rE,cAAc,IAGhBzpD,GAAgBysD,GAAuB3uE,GAAQ,oBAAgB,GAE/DkiB,GAAgBysD,GAAuB3uE,GAAQ,wBAAwB,WACrDA,EAAMpjH,MAAMqxL,UAEQlpE,WACG4mE,eAGjC3rE,EAAMpjH,MAAMmyL,aACdl2M,QAAQiC,QAAQklI,EAAMpjH,MAAMmyL,gBAAgBC,SAAQ,WAClD,OAAOhvE,EAAMrgF,SAAS,CACpBgsJ,cAAc,GAElB,IAEA3rE,EAAMrgF,SAAS,CACbgsJ,cAAc,IAIlB3rE,EAAMivE,cAAgBjvE,EAAMivE,eAEhC,IAEOjvE,CACT,CAhEF,IAAsBtN,EAAaM,EAAYC,EA4F7C,OApFF,SAAmBG,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIp8H,UAAU,sDAAyDm8H,EAASv8H,UAAYL,OAAOa,OAAOg8H,GAAcA,EAAWx8H,UAAW,CAAEO,YAAa,CAAE8B,MAAOk6H,EAAU5U,UAAU,EAAM37B,cAAc,KAAewwC,GAAYH,GAAgBE,EAAUC,EAAa,CAW9XF,CAAUy7E,EAAaC,GAnBHn8E,EAkEPk8E,GAlEoB57E,EAkEP,CAAC,CACzBxtF,IAAK,oBACLtsC,MAAO,WACL/B,KAAK83M,aAAe93M,KAAKylB,MAAMqxL,UAAUxoE,UAAUtuI,KAAK+3M,sBACxD/3M,KAAK+3M,sBACP,GACC,CACD1pK,IAAK,uBACLtsC,MAAO,WACL/B,KAAK83M,cAAgB93M,KAAK83M,cAC5B,GACC,CACDzpK,IAAK,SACLtsC,MAAO,WAKL,MAAmC,oBAAxB/B,KAAKylB,MAAMyxB,SACbl3C,KAAKylB,MAAMyxB,SAASl3C,KAAKy+C,MAAM+1J,cAGjCx0M,KAAKy+C,MAAM+1J,aAAex0M,KAAKylB,MAAMyxB,SAAWl3C,KAAKylB,MAAMkwK,OACpE,MAzF0E/5D,GAAkBL,EAAY77H,UAAWm8H,GAAiBC,GAAaF,GAAkBL,EAAaO,GA4F3K27E,CACT,CA3EA,CA2EE3nF,EAAAA,eAEFi7B,GAAgB0sD,GAAa,eAAgB,CAC3CvgK,SAAU,KACVy+I,QAAS,OC3FEqiB,EAAAA,WAAoB7xM,SAASq1B,eAAe,SACpDyuB,QAEDwiF,EAAAA,GAAAA,KAACtc,GAAQ,CAACod,MAAOA,GAAMr2F,UACrBu1F,EAAAA,GAAAA,KAACgrE,GAAW,CAAC9hB,QAAS,KAAMmhB,UAAWA,GAAU5/J,UAC/Cu1F,EAAAA,GAAAA,KAAC6hE,GAAa,CAAAp3J,UACZu1F,EAAAA,GAAAA,KAACwrE,GAAG,WAUdC","sources":["../node_modules/@lottiefiles/react-lottie-player/node_modules/tslib/tslib.es6.js","../node_modules/@lottiefiles/react-lottie-player/node_modules/lottie-web/build/player/lottie.js","../node_modules/@lottiefiles/react-lottie-player/src/versions.ts","../node_modules/@lottiefiles/react-lottie-player/src/Player.tsx","../node_modules/@lottiefiles/react-lottie-player/node_modules/style-inject/dist/style-inject.es.js","../node_modules/@lottiefiles/react-lottie-player/src/ColorPicker.tsx","../node_modules/@lottiefiles/react-lottie-player/src/Popover.tsx","../node_modules/@lottiefiles/react-lottie-player/src/Seeker.tsx","../node_modules/@lottiefiles/react-lottie-player/src/Controls.tsx","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/moment/moment.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-phone-input-2/lib/lib.js","../node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-redux/node_modules/react-is/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/redux-persist/lib/storage/createWebStorage.js","../node_modules/redux-persist/lib/storage/getStorage.js","../node_modules/redux-persist/lib/storage/index.js","../node_modules/redux-persist/lib/storage/session.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../node_modules/use-sync-external-store/shim/index.js","../node_modules/use-sync-external-store/shim/with-selector.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","logo.svg","../node_modules/@remix-run/router/history.ts","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@remix-run/router/utils.ts","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/use-sync-external-store-shim/useSyncExternalStoreShimClient.ts","../node_modules/react-router/lib/use-sync-external-store-shim/index.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","Component/Heading.js","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/hooks/useReduxContext.js","../node_modules/react-redux/es/utils/useSyncExternalStore.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/react-redux/es/hooks/useStore.js","../node_modules/react-redux/es/hooks/useDispatch.js","../node_modules/react-redux/es/index.js","../node_modules/react-redux/es/components/connect.js","Utils/content.js","Component/ImgComp.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","Pages/NotFound.js","Component/NavText.js","../node_modules/@fortawesome/fontawesome-svg-core/index.mjs","../node_modules/@fortawesome/react-fontawesome/index.es.js","../node_modules/immer/src/utils/errors.ts","../node_modules/immer/src/utils/common.ts","../node_modules/immer/src/utils/plugins.ts","../node_modules/immer/src/core/scope.ts","../node_modules/immer/src/core/finalize.ts","../node_modules/immer/src/core/proxy.ts","../node_modules/immer/src/core/immerClass.ts","../node_modules/immer/src/core/current.ts","../node_modules/immer/src/plugins/es5.ts","../node_modules/immer/src/immer.ts","../node_modules/immer/src/utils/env.ts","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/redux/es/redux.js","../node_modules/redux-thunk/es/index.js","../node_modules/@reduxjs/toolkit/src/devtoolsExtension.ts","../node_modules/@reduxjs/toolkit/src/isPlainObject.ts","../node_modules/@reduxjs/toolkit/src/utils.ts","../node_modules/@reduxjs/toolkit/src/getDefaultMiddleware.ts","../node_modules/@reduxjs/toolkit/src/configureStore.ts","../node_modules/@reduxjs/toolkit/src/createAction.ts","../node_modules/@reduxjs/toolkit/src/mapBuilders.ts","../node_modules/@reduxjs/toolkit/src/createSlice.ts","../node_modules/@reduxjs/toolkit/src/createReducer.ts","../node_modules/@reduxjs/toolkit/src/nanoid.ts","../node_modules/@reduxjs/toolkit/src/createAsyncThunk.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/index.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/task.ts","../node_modules/@reduxjs/toolkit/src/autoBatchEnhancer.ts","../node_modules/@reduxjs/toolkit/src/index.ts","Component/Redux/Feature/UrlSlice.js","Component/Redux/Feature/EmailSlice.js","useSessionDetails.jsx","Component/DateInput.js","Component/Popup2.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-hook-form/src/utils/isCheckBoxInput.ts","../node_modules/react-hook-form/src/utils/isDateObject.ts","../node_modules/react-hook-form/src/utils/isNullOrUndefined.ts","../node_modules/react-hook-form/src/utils/isObject.ts","../node_modules/react-hook-form/src/logic/getEventValue.ts","../node_modules/react-hook-form/src/logic/isNameInFieldArray.ts","../node_modules/react-hook-form/src/logic/getNodeParentName.ts","../node_modules/react-hook-form/src/utils/isPlainObject.ts","../node_modules/react-hook-form/src/utils/isWeb.ts","../node_modules/react-hook-form/src/utils/cloneObject.ts","../node_modules/react-hook-form/src/utils/compact.ts","../node_modules/react-hook-form/src/utils/isUndefined.ts","../node_modules/react-hook-form/src/utils/get.ts","../node_modules/react-hook-form/src/constants.ts","../node_modules/react-hook-form/src/logic/getProxyFormState.ts","../node_modules/react-hook-form/src/useFormContext.tsx","../node_modules/react-hook-form/src/utils/isEmptyObject.ts","../node_modules/react-hook-form/src/logic/shouldRenderFormState.ts","../node_modules/react-hook-form/src/utils/convertToArrayPayload.ts","../node_modules/react-hook-form/src/useSubscribe.ts","../node_modules/react-hook-form/src/utils/isString.ts","../node_modules/react-hook-form/src/logic/generateWatchOutput.ts","../node_modules/react-hook-form/src/utils/isKey.ts","../node_modules/react-hook-form/src/utils/stringToPath.ts","../node_modules/react-hook-form/src/utils/set.ts","../node_modules/react-hook-form/src/controller.tsx","../node_modules/react-hook-form/src/logic/appendErrors.ts","../node_modules/react-hook-form/src/logic/focusFieldBy.ts","../node_modules/react-hook-form/src/logic/getValidationModes.ts","../node_modules/react-hook-form/src/logic/isWatched.ts","../node_modules/react-hook-form/src/logic/updateFieldArrayRootError.ts","../node_modules/react-hook-form/src/utils/isBoolean.ts","../node_modules/react-hook-form/src/utils/isFileInput.ts","../node_modules/react-hook-form/src/utils/isFunction.ts","../node_modules/react-hook-form/src/utils/isHTMLElement.ts","../node_modules/react-hook-form/src/utils/isMessage.ts","../node_modules/react-hook-form/src/utils/isRadioInput.ts","../node_modules/react-hook-form/src/utils/isRegex.ts","../node_modules/react-hook-form/src/logic/getCheckboxValue.ts","../node_modules/react-hook-form/src/logic/getRadioValue.ts","../node_modules/react-hook-form/src/logic/getValidateError.ts","../node_modules/react-hook-form/src/logic/getValueAndMessage.ts","../node_modules/react-hook-form/src/logic/validateField.ts","../node_modules/react-hook-form/src/utils/unset.ts","../node_modules/react-hook-form/src/utils/createSubject.ts","../node_modules/react-hook-form/src/utils/isPrimitive.ts","../node_modules/react-hook-form/src/utils/deepEqual.ts","../node_modules/react-hook-form/src/utils/isMultipleSelect.ts","../node_modules/react-hook-form/src/utils/isRadioOrCheckbox.ts","../node_modules/react-hook-form/src/utils/live.ts","../node_modules/react-hook-form/src/utils/objectHasFunction.ts","../node_modules/react-hook-form/src/logic/getDirtyFields.ts","../node_modules/react-hook-form/src/logic/getFieldValueAs.ts","../node_modules/react-hook-form/src/logic/getFieldValue.ts","../node_modules/react-hook-form/src/logic/getResolverOptions.ts","../node_modules/react-hook-form/src/logic/getRuleValue.ts","../node_modules/react-hook-form/src/logic/hasValidation.ts","../node_modules/react-hook-form/src/logic/schemaErrorLookup.ts","../node_modules/react-hook-form/src/logic/skipValidation.ts","../node_modules/react-hook-form/src/logic/unsetEmptyArray.ts","../node_modules/react-hook-form/src/logic/createFormControl.ts","../node_modules/react-hook-form/src/useForm.ts","../node_modules/@fortawesome/free-solid-svg-icons/index.mjs","Utils/constants.js","Modules/startContentNew.js","Pages/StartPage.js","Component/Button.js","Component/Footer.js","Modules/PaymentContent.js","Component/GreyLine.js","Component/GstPopup.js","../node_modules/react-switch/dist/index.prod.mjs","Component/Drawer/Drawer.jsx","Component/Coupon/Coupon.jsx","Component/CouponList/CouponList.jsx","Component/CouponList/index.js","webpack://reactapp/./src/Component/Modal/Modal.module.css?e393","Component/Modal/Modal.jsx","webpack://reactapp/./src/Component/AppliedCouponView/AppliedCouponView.module.css?e910","Component/AppliedCouponView/AppliedCouponView.jsx","webpack://reactapp/./src/Component/ApplyCouponView/ApplyCouponView.module.css?0b58","Component/ApplyCouponView/ApplyCouponView.jsx","Modules/PaymentContentNew.js","Pages/PaymentPage.js","Pages/ThankPage.js","Modules/HomeContentNew.js","Component/Redux/Feature/CategorySlice.js","Pages/Home.js","Pages/Loading.js","Modules/TermsCondtionContent.js","Pages/TermsConditionPage.js","Utils/favIcon.js","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","Modules/CategorySelect.js","Modules/BranchSelect.js","App.js","reportWebVitals.js","Component/Redux/RootReducer.js","../node_modules/redux-persist/es/constants.js","../node_modules/redux-persist/es/stateReconciler/autoMergeLevel1.js","../node_modules/redux-persist/es/createPersistoid.js","../node_modules/redux-persist/es/getStoredState.js","../node_modules/redux-persist/es/purgeStoredState.js","../node_modules/redux-persist/es/persistReducer.js","../node_modules/redux-persist/es/persistStore.js","Component/Redux/Store.js","../node_modules/redux-persist/es/integration/react.js","index.js"],"sourcesContent":["/*! *****************************************************************************\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***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\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\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\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\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\r\n typeof define === 'function' && define.amd ? define(factory) :\r\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\r\n})(this, (function () { 'use strict';\r\n\r\n var svgNS = 'http://www.w3.org/2000/svg';\r\n var locationHref = '';\r\n var _useWebWorker = false;\r\n var initialDefaultFrame = -999999;\r\n\r\n var setWebWorker = function setWebWorker(flag) {\r\n _useWebWorker = !!flag;\r\n };\r\n\r\n var getWebWorker = function getWebWorker() {\r\n return _useWebWorker;\r\n };\r\n\r\n var setLocationHref = function setLocationHref(value) {\r\n locationHref = value;\r\n };\r\n\r\n var getLocationHref = function getLocationHref() {\r\n return locationHref;\r\n };\r\n\r\n function createTag(type) {\r\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\r\n return document.createElement(type);\r\n }\r\n\r\n function extendPrototype(sources, destination) {\r\n var i;\r\n var len = sources.length;\r\n var sourcePrototype;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n sourcePrototype = sources[i].prototype;\r\n\r\n for (var attr in sourcePrototype) {\r\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\r\n }\r\n }\r\n }\r\n\r\n function getDescriptor(object, prop) {\r\n return Object.getOwnPropertyDescriptor(object, prop);\r\n }\r\n\r\n function createProxyFunction(prototype) {\r\n function ProxyFunction() {}\r\n\r\n ProxyFunction.prototype = prototype;\r\n return ProxyFunction;\r\n }\r\n\r\n // import Howl from '../../3rd_party/howler';\r\n var audioControllerFactory = function () {\r\n function AudioController(audioFactory) {\r\n this.audios = [];\r\n this.audioFactory = audioFactory;\r\n this._volume = 1;\r\n this._isMuted = false;\r\n }\r\n\r\n AudioController.prototype = {\r\n addAudio: function addAudio(audio) {\r\n this.audios.push(audio);\r\n },\r\n pause: function pause() {\r\n var i;\r\n var len = this.audios.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].pause();\r\n }\r\n },\r\n resume: function resume() {\r\n var i;\r\n var len = this.audios.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].resume();\r\n }\r\n },\r\n setRate: function setRate(rateValue) {\r\n var i;\r\n var len = this.audios.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].setRate(rateValue);\r\n }\r\n },\r\n createAudio: function createAudio(assetPath) {\r\n if (this.audioFactory) {\r\n return this.audioFactory(assetPath);\r\n }\r\n\r\n if (window.Howl) {\r\n return new window.Howl({\r\n src: [assetPath]\r\n });\r\n }\r\n\r\n return {\r\n isPlaying: false,\r\n play: function play() {\r\n this.isPlaying = true;\r\n },\r\n seek: function seek() {\r\n this.isPlaying = false;\r\n },\r\n playing: function playing() {},\r\n rate: function rate() {},\r\n setVolume: function setVolume() {}\r\n };\r\n },\r\n setAudioFactory: function setAudioFactory(audioFactory) {\r\n this.audioFactory = audioFactory;\r\n },\r\n setVolume: function setVolume(value) {\r\n this._volume = value;\r\n\r\n this._updateVolume();\r\n },\r\n mute: function mute() {\r\n this._isMuted = true;\r\n\r\n this._updateVolume();\r\n },\r\n unmute: function unmute() {\r\n this._isMuted = false;\r\n\r\n this._updateVolume();\r\n },\r\n getVolume: function getVolume() {\r\n return this._volume;\r\n },\r\n _updateVolume: function _updateVolume() {\r\n var i;\r\n var len = this.audios.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\r\n }\r\n }\r\n };\r\n return function () {\r\n return new AudioController();\r\n };\r\n }();\r\n\r\n var createTypedArray = function () {\r\n function createRegularArray(type, len) {\r\n var i = 0;\r\n var arr = [];\r\n var value;\r\n\r\n switch (type) {\r\n case 'int16':\r\n case 'uint8c':\r\n value = 1;\r\n break;\r\n\r\n default:\r\n value = 1.1;\r\n break;\r\n }\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr.push(value);\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function createTypedArrayFactory(type, len) {\r\n if (type === 'float32') {\r\n return new Float32Array(len);\r\n }\r\n\r\n if (type === 'int16') {\r\n return new Int16Array(len);\r\n }\r\n\r\n if (type === 'uint8c') {\r\n return new Uint8ClampedArray(len);\r\n }\r\n\r\n return createRegularArray(type, len);\r\n }\r\n\r\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\r\n return createTypedArrayFactory;\r\n }\r\n\r\n return createRegularArray;\r\n }();\r\n\r\n function createSizedArray(len) {\r\n return Array.apply(null, {\r\n length: len\r\n });\r\n }\r\n\r\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\r\n var subframeEnabled = true;\r\n var expressionsPlugin = null;\r\n var expressionsInterfaces = null;\r\n var idPrefix$1 = '';\r\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\r\n var _shouldRoundValues = false;\r\n var bmPow = Math.pow;\r\n var bmSqrt = Math.sqrt;\r\n var bmFloor = Math.floor;\r\n var bmMax = Math.max;\r\n var bmMin = Math.min;\r\n var BMMath = {};\r\n\r\n (function () {\r\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\r\n var i;\r\n var len = propertyNames.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\r\n }\r\n })();\r\n\r\n function ProjectInterface$1() {\r\n return {};\r\n }\r\n\r\n BMMath.random = Math.random;\r\n\r\n BMMath.abs = function (val) {\r\n var tOfVal = _typeof$6(val);\r\n\r\n if (tOfVal === 'object' && val.length) {\r\n var absArr = createSizedArray(val.length);\r\n var i;\r\n var len = val.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n absArr[i] = Math.abs(val[i]);\r\n }\r\n\r\n return absArr;\r\n }\r\n\r\n return Math.abs(val);\r\n };\r\n\r\n var defaultCurveSegments = 150;\r\n var degToRads = Math.PI / 180;\r\n var roundCorner = 0.5519;\r\n\r\n function roundValues(flag) {\r\n _shouldRoundValues = !!flag;\r\n }\r\n\r\n function bmRnd(value) {\r\n if (_shouldRoundValues) {\r\n return Math.round(value);\r\n }\r\n\r\n return value;\r\n }\r\n\r\n function styleDiv(element) {\r\n element.style.position = 'absolute';\r\n element.style.top = 0;\r\n element.style.left = 0;\r\n element.style.display = 'block';\r\n element.style.transformOrigin = '0 0';\r\n element.style.webkitTransformOrigin = '0 0';\r\n element.style.backfaceVisibility = 'visible';\r\n element.style.webkitBackfaceVisibility = 'visible';\r\n element.style.transformStyle = 'preserve-3d';\r\n element.style.webkitTransformStyle = 'preserve-3d';\r\n element.style.mozTransformStyle = 'preserve-3d';\r\n }\r\n\r\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\r\n this.type = type;\r\n this.currentTime = currentTime;\r\n this.totalTime = totalTime;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n }\r\n\r\n function BMCompleteEvent(type, frameMultiplier) {\r\n this.type = type;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n }\r\n\r\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\r\n this.type = type;\r\n this.currentLoop = currentLoop;\r\n this.totalLoops = totalLoops;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n }\r\n\r\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\r\n this.type = type;\r\n this.firstFrame = firstFrame;\r\n this.totalFrames = totalFrames;\r\n }\r\n\r\n function BMDestroyEvent(type, target) {\r\n this.type = type;\r\n this.target = target;\r\n }\r\n\r\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\r\n this.type = 'renderFrameError';\r\n this.nativeError = nativeError;\r\n this.currentTime = currentTime;\r\n }\r\n\r\n function BMConfigErrorEvent(nativeError) {\r\n this.type = 'configError';\r\n this.nativeError = nativeError;\r\n }\r\n\r\n function BMAnimationConfigErrorEvent(type, nativeError) {\r\n this.type = type;\r\n this.nativeError = nativeError;\r\n }\r\n\r\n var createElementID = function () {\r\n var _count = 0;\r\n return function createID() {\r\n _count += 1;\r\n return idPrefix$1 + '__lottie_element_' + _count;\r\n };\r\n }();\r\n\r\n function HSVtoRGB(h, s, v) {\r\n var r;\r\n var g;\r\n var b;\r\n var i;\r\n var f;\r\n var p;\r\n var q;\r\n var t;\r\n i = Math.floor(h * 6);\r\n f = h * 6 - i;\r\n p = v * (1 - s);\r\n q = v * (1 - f * s);\r\n t = v * (1 - (1 - f) * s);\r\n\r\n switch (i % 6) {\r\n case 0:\r\n r = v;\r\n g = t;\r\n b = p;\r\n break;\r\n\r\n case 1:\r\n r = q;\r\n g = v;\r\n b = p;\r\n break;\r\n\r\n case 2:\r\n r = p;\r\n g = v;\r\n b = t;\r\n break;\r\n\r\n case 3:\r\n r = p;\r\n g = q;\r\n b = v;\r\n break;\r\n\r\n case 4:\r\n r = t;\r\n g = p;\r\n b = v;\r\n break;\r\n\r\n case 5:\r\n r = v;\r\n g = p;\r\n b = q;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return [r, g, b];\r\n }\r\n\r\n function RGBtoHSV(r, g, b) {\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var d = max - min;\r\n var h;\r\n var s = max === 0 ? 0 : d / max;\r\n var v = max / 255;\r\n\r\n switch (max) {\r\n case min:\r\n h = 0;\r\n break;\r\n\r\n case r:\r\n h = g - b + d * (g < b ? 6 : 0);\r\n h /= 6 * d;\r\n break;\r\n\r\n case g:\r\n h = b - r + d * 2;\r\n h /= 6 * d;\r\n break;\r\n\r\n case b:\r\n h = r - g + d * 4;\r\n h /= 6 * d;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return [h, s, v];\r\n }\r\n\r\n function addSaturationToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[1] += offset;\r\n\r\n if (hsv[1] > 1) {\r\n hsv[1] = 1;\r\n } else if (hsv[1] <= 0) {\r\n hsv[1] = 0;\r\n }\r\n\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n }\r\n\r\n function addBrightnessToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[2] += offset;\r\n\r\n if (hsv[2] > 1) {\r\n hsv[2] = 1;\r\n } else if (hsv[2] < 0) {\r\n hsv[2] = 0;\r\n }\r\n\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n }\r\n\r\n function addHueToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[0] += offset / 360;\r\n\r\n if (hsv[0] > 1) {\r\n hsv[0] -= 1;\r\n } else if (hsv[0] < 0) {\r\n hsv[0] += 1;\r\n }\r\n\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n }\r\n\r\n var rgbToHex = function () {\r\n var colorMap = [];\r\n var i;\r\n var hex;\r\n\r\n for (i = 0; i < 256; i += 1) {\r\n hex = i.toString(16);\r\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\r\n }\r\n\r\n return function (r, g, b) {\r\n if (r < 0) {\r\n r = 0;\r\n }\r\n\r\n if (g < 0) {\r\n g = 0;\r\n }\r\n\r\n if (b < 0) {\r\n b = 0;\r\n }\r\n\r\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\r\n };\r\n }();\r\n\r\n var setSubframeEnabled = function setSubframeEnabled(flag) {\r\n subframeEnabled = !!flag;\r\n };\r\n\r\n var getSubframeEnabled = function getSubframeEnabled() {\r\n return subframeEnabled;\r\n };\r\n\r\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\r\n expressionsPlugin = value;\r\n };\r\n\r\n var getExpressionsPlugin = function getExpressionsPlugin() {\r\n return expressionsPlugin;\r\n };\r\n\r\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\r\n expressionsInterfaces = value;\r\n };\r\n\r\n var getExpressionInterfaces = function getExpressionInterfaces() {\r\n return expressionsInterfaces;\r\n };\r\n\r\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\r\n defaultCurveSegments = value;\r\n };\r\n\r\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\r\n return defaultCurveSegments;\r\n };\r\n\r\n var setIdPrefix = function setIdPrefix(value) {\r\n idPrefix$1 = value;\r\n };\r\n\r\n var getIdPrefix = function getIdPrefix() {\r\n return idPrefix$1;\r\n };\r\n\r\n function createNS(type) {\r\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\r\n return document.createElementNS(svgNS, type);\r\n }\r\n\r\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\r\n\r\n var dataManager = function () {\r\n var _counterId = 1;\r\n var processes = [];\r\n var workerFn;\r\n var workerInstance;\r\n var workerProxy = {\r\n onmessage: function onmessage() {},\r\n postMessage: function postMessage(path) {\r\n workerFn({\r\n data: path\r\n });\r\n }\r\n };\r\n var _workerSelf = {\r\n postMessage: function postMessage(data) {\r\n workerProxy.onmessage({\r\n data: data\r\n });\r\n }\r\n };\r\n\r\n function createWorker(fn) {\r\n if (window.Worker && window.Blob && getWebWorker()) {\r\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\r\n type: 'text/javascript'\r\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\r\n\r\n var url = URL.createObjectURL(blob);\r\n return new Worker(url);\r\n }\r\n\r\n workerFn = fn;\r\n return workerProxy;\r\n }\r\n\r\n function setupWorker() {\r\n if (!workerInstance) {\r\n workerInstance = createWorker(function workerStart(e) {\r\n function dataFunctionManager() {\r\n function completeLayers(layers, comps) {\r\n var layerData;\r\n var i;\r\n var len = layers.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n layerData = layers[i];\r\n\r\n if ('ks' in layerData && !layerData.completed) {\r\n layerData.completed = true;\r\n\r\n if (layerData.hasMask) {\r\n var maskProps = layerData.masksProperties;\r\n jLen = maskProps.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (maskProps[j].pt.k.i) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\r\n } else {\r\n kLen = maskProps[j].pt.k.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n if (maskProps[j].pt.k[k].s) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\r\n }\r\n\r\n if (maskProps[j].pt.k[k].e) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (layerData.ty === 0) {\r\n layerData.layers = findCompLayers(layerData.refId, comps);\r\n completeLayers(layerData.layers, comps);\r\n } else if (layerData.ty === 4) {\r\n completeShapes(layerData.shapes);\r\n } else if (layerData.ty === 5) {\r\n completeText(layerData);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function completeChars(chars, assets) {\r\n if (chars) {\r\n var i = 0;\r\n var len = chars.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (chars[i].t === 1) {\r\n // var compData = findComp(chars[i].data.refId, assets);\r\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\r\n // chars[i].data.op = 99999;\r\n // chars[i].data.st = 0;\r\n // chars[i].data.sr = 1;\r\n // chars[i].w = compData.w;\r\n // chars[i].data.ks = {\r\n // a: { k: [0, 0, 0], a: 0 },\r\n // p: { k: [0, -compData.h, 0], a: 0 },\r\n // r: { k: 0, a: 0 },\r\n // s: { k: [100, 100], a: 0 },\r\n // o: { k: 100, a: 0 },\r\n // };\r\n\r\n completeLayers(chars[i].data.layers, assets);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function findComp(id, comps) {\r\n var i = 0;\r\n var len = comps.length;\r\n\r\n while (i < len) {\r\n if (comps[i].id === id) {\r\n return comps[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function findCompLayers(id, comps) {\r\n var comp = findComp(id, comps);\r\n\r\n if (comp) {\r\n if (!comp.layers.__used) {\r\n comp.layers.__used = true;\r\n return comp.layers;\r\n }\r\n\r\n return JSON.parse(JSON.stringify(comp.layers));\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function completeShapes(arr) {\r\n var i;\r\n var len = arr.length;\r\n var j;\r\n var jLen;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (arr[i].ty === 'sh') {\r\n if (arr[i].ks.k.i) {\r\n convertPathsToAbsoluteValues(arr[i].ks.k);\r\n } else {\r\n jLen = arr[i].ks.k.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (arr[i].ks.k[j].s) {\r\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\r\n }\r\n\r\n if (arr[i].ks.k[j].e) {\r\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\r\n }\r\n }\r\n }\r\n } else if (arr[i].ty === 'gr') {\r\n completeShapes(arr[i].it);\r\n }\r\n }\r\n }\r\n\r\n function convertPathsToAbsoluteValues(path) {\r\n var i;\r\n var len = path.i.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n path.i[i][0] += path.v[i][0];\r\n path.i[i][1] += path.v[i][1];\r\n path.o[i][0] += path.v[i][0];\r\n path.o[i][1] += path.v[i][1];\r\n }\r\n }\r\n\r\n function checkVersion(minimum, animVersionString) {\r\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\r\n\r\n if (minimum[0] > animVersion[0]) {\r\n return true;\r\n }\r\n\r\n if (animVersion[0] > minimum[0]) {\r\n return false;\r\n }\r\n\r\n if (minimum[1] > animVersion[1]) {\r\n return true;\r\n }\r\n\r\n if (animVersion[1] > minimum[1]) {\r\n return false;\r\n }\r\n\r\n if (minimum[2] > animVersion[2]) {\r\n return true;\r\n }\r\n\r\n if (animVersion[2] > minimum[2]) {\r\n return false;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var checkText = function () {\r\n var minimumVersion = [4, 4, 14];\r\n\r\n function updateTextLayer(textLayer) {\r\n var documentData = textLayer.t.d;\r\n textLayer.t.d = {\r\n k: [{\r\n s: documentData,\r\n t: 0\r\n }]\r\n };\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (layers[i].ty === 5) {\r\n updateTextLayer(layers[i]);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n var checkChars = function () {\r\n var minimumVersion = [4, 7, 99];\r\n return function (animationData) {\r\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\r\n var i;\r\n var len = animationData.chars.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n var charData = animationData.chars[i];\r\n\r\n if (charData.data && charData.data.shapes) {\r\n completeShapes(charData.data.shapes);\r\n charData.data.ip = 0;\r\n charData.data.op = 99999;\r\n charData.data.st = 0;\r\n charData.data.sr = 1;\r\n charData.data.ks = {\r\n p: {\r\n k: [0, 0],\r\n a: 0\r\n },\r\n s: {\r\n k: [100, 100],\r\n a: 0\r\n },\r\n a: {\r\n k: [0, 0],\r\n a: 0\r\n },\r\n r: {\r\n k: 0,\r\n a: 0\r\n },\r\n o: {\r\n k: 100,\r\n a: 0\r\n }\r\n };\r\n\r\n if (!animationData.chars[i].t) {\r\n charData.data.shapes.push({\r\n ty: 'no'\r\n });\r\n charData.data.shapes[0].it.push({\r\n p: {\r\n k: [0, 0],\r\n a: 0\r\n },\r\n s: {\r\n k: [100, 100],\r\n a: 0\r\n },\r\n a: {\r\n k: [0, 0],\r\n a: 0\r\n },\r\n r: {\r\n k: 0,\r\n a: 0\r\n },\r\n o: {\r\n k: 100,\r\n a: 0\r\n },\r\n sk: {\r\n k: 0,\r\n a: 0\r\n },\r\n sa: {\r\n k: 0,\r\n a: 0\r\n },\r\n ty: 'tr'\r\n });\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n var checkPathProperties = function () {\r\n var minimumVersion = [5, 7, 15];\r\n\r\n function updateTextLayer(textLayer) {\r\n var pathData = textLayer.t.p;\r\n\r\n if (typeof pathData.a === 'number') {\r\n pathData.a = {\r\n a: 0,\r\n k: pathData.a\r\n };\r\n }\r\n\r\n if (typeof pathData.p === 'number') {\r\n pathData.p = {\r\n a: 0,\r\n k: pathData.p\r\n };\r\n }\r\n\r\n if (typeof pathData.r === 'number') {\r\n pathData.r = {\r\n a: 0,\r\n k: pathData.r\r\n };\r\n }\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (layers[i].ty === 5) {\r\n updateTextLayer(layers[i]);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n var checkColors = function () {\r\n var minimumVersion = [4, 1, 9];\r\n\r\n function iterateShapes(shapes) {\r\n var i;\r\n var len = shapes.length;\r\n var j;\r\n var jLen;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (shapes[i].ty === 'gr') {\r\n iterateShapes(shapes[i].it);\r\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\r\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\r\n jLen = shapes[i].c.k.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (shapes[i].c.k[j].s) {\r\n shapes[i].c.k[j].s[0] /= 255;\r\n shapes[i].c.k[j].s[1] /= 255;\r\n shapes[i].c.k[j].s[2] /= 255;\r\n shapes[i].c.k[j].s[3] /= 255;\r\n }\r\n\r\n if (shapes[i].c.k[j].e) {\r\n shapes[i].c.k[j].e[0] /= 255;\r\n shapes[i].c.k[j].e[1] /= 255;\r\n shapes[i].c.k[j].e[2] /= 255;\r\n shapes[i].c.k[j].e[3] /= 255;\r\n }\r\n }\r\n } else {\r\n shapes[i].c.k[0] /= 255;\r\n shapes[i].c.k[1] /= 255;\r\n shapes[i].c.k[2] /= 255;\r\n shapes[i].c.k[3] /= 255;\r\n }\r\n }\r\n }\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (layers[i].ty === 4) {\r\n iterateShapes(layers[i].shapes);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n var checkShapes = function () {\r\n var minimumVersion = [4, 4, 18];\r\n\r\n function completeClosingShapes(arr) {\r\n var i;\r\n var len = arr.length;\r\n var j;\r\n var jLen;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (arr[i].ty === 'sh') {\r\n if (arr[i].ks.k.i) {\r\n arr[i].ks.k.c = arr[i].closed;\r\n } else {\r\n jLen = arr[i].ks.k.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (arr[i].ks.k[j].s) {\r\n arr[i].ks.k[j].s[0].c = arr[i].closed;\r\n }\r\n\r\n if (arr[i].ks.k[j].e) {\r\n arr[i].ks.k[j].e[0].c = arr[i].closed;\r\n }\r\n }\r\n }\r\n } else if (arr[i].ty === 'gr') {\r\n completeClosingShapes(arr[i].it);\r\n }\r\n }\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var layerData;\r\n var i;\r\n var len = layers.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n layerData = layers[i];\r\n\r\n if (layerData.hasMask) {\r\n var maskProps = layerData.masksProperties;\r\n jLen = maskProps.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (maskProps[j].pt.k.i) {\r\n maskProps[j].pt.k.c = maskProps[j].cl;\r\n } else {\r\n kLen = maskProps[j].pt.k.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n if (maskProps[j].pt.k[k].s) {\r\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\r\n }\r\n\r\n if (maskProps[j].pt.k[k].e) {\r\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (layerData.ty === 4) {\r\n completeClosingShapes(layerData.shapes);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n function completeData(animationData) {\r\n if (animationData.__complete) {\r\n return;\r\n }\r\n\r\n checkColors(animationData);\r\n checkText(animationData);\r\n checkChars(animationData);\r\n checkPathProperties(animationData);\r\n checkShapes(animationData);\r\n completeLayers(animationData.layers, animationData.assets);\r\n completeChars(animationData.chars, animationData.assets);\r\n animationData.__complete = true;\r\n }\r\n\r\n function completeText(data) {\r\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\r\n }\r\n }\r\n\r\n var moduleOb = {};\r\n moduleOb.completeData = completeData;\r\n moduleOb.checkColors = checkColors;\r\n moduleOb.checkChars = checkChars;\r\n moduleOb.checkPathProperties = checkPathProperties;\r\n moduleOb.checkShapes = checkShapes;\r\n moduleOb.completeLayers = completeLayers;\r\n return moduleOb;\r\n }\r\n\r\n if (!_workerSelf.dataManager) {\r\n _workerSelf.dataManager = dataFunctionManager();\r\n }\r\n\r\n if (!_workerSelf.assetLoader) {\r\n _workerSelf.assetLoader = function () {\r\n function formatResponse(xhr) {\r\n // using typeof doubles the time of execution of this method,\r\n // so if available, it's better to use the header to validate the type\r\n var contentTypeHeader = xhr.getResponseHeader('content-type');\r\n\r\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\r\n return xhr.response;\r\n }\r\n\r\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\r\n return xhr.response;\r\n }\r\n\r\n if (xhr.response && typeof xhr.response === 'string') {\r\n return JSON.parse(xhr.response);\r\n }\r\n\r\n if (xhr.responseText) {\r\n return JSON.parse(xhr.responseText);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function loadAsset(path, fullPath, callback, errorCallback) {\r\n var response;\r\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\r\n\r\n try {\r\n // This crashes on Android WebView prior to KitKat\r\n xhr.responseType = 'json';\r\n } catch (err) {} // eslint-disable-line no-empty\r\n\r\n\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState === 4) {\r\n if (xhr.status === 200) {\r\n response = formatResponse(xhr);\r\n callback(response);\r\n } else {\r\n try {\r\n response = formatResponse(xhr);\r\n callback(response);\r\n } catch (err) {\r\n if (errorCallback) {\r\n errorCallback(err);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n try {\r\n // Hack to workaround banner validation\r\n xhr.open(['G', 'E', 'T'].join(''), path, true);\r\n } catch (error) {\r\n // Hack to workaround banner validation\r\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\r\n }\r\n\r\n xhr.send();\r\n }\r\n\r\n return {\r\n load: loadAsset\r\n };\r\n }();\r\n }\r\n\r\n if (e.data.type === 'loadAnimation') {\r\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\r\n _workerSelf.dataManager.completeData(data);\r\n\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: data,\r\n status: 'success'\r\n });\r\n }, function () {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n status: 'error'\r\n });\r\n });\r\n } else if (e.data.type === 'complete') {\r\n var animation = e.data.animation;\r\n\r\n _workerSelf.dataManager.completeData(animation);\r\n\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: animation,\r\n status: 'success'\r\n });\r\n } else if (e.data.type === 'loadData') {\r\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: data,\r\n status: 'success'\r\n });\r\n }, function () {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n status: 'error'\r\n });\r\n });\r\n }\r\n });\r\n\r\n workerInstance.onmessage = function (event) {\r\n var data = event.data;\r\n var id = data.id;\r\n var process = processes[id];\r\n processes[id] = null;\r\n\r\n if (data.status === 'success') {\r\n process.onComplete(data.payload);\r\n } else if (process.onError) {\r\n process.onError();\r\n }\r\n };\r\n }\r\n }\r\n\r\n function createProcess(onComplete, onError) {\r\n _counterId += 1;\r\n var id = 'processId_' + _counterId;\r\n processes[id] = {\r\n onComplete: onComplete,\r\n onError: onError\r\n };\r\n return id;\r\n }\r\n\r\n function loadAnimation(path, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'loadAnimation',\r\n path: path,\r\n fullPath: window.location.origin + window.location.pathname,\r\n id: processId\r\n });\r\n }\r\n\r\n function loadData(path, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'loadData',\r\n path: path,\r\n fullPath: window.location.origin + window.location.pathname,\r\n id: processId\r\n });\r\n }\r\n\r\n function completeAnimation(anim, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'complete',\r\n animation: anim,\r\n id: processId\r\n });\r\n }\r\n\r\n return {\r\n loadAnimation: loadAnimation,\r\n loadData: loadData,\r\n completeAnimation: completeAnimation\r\n };\r\n }();\r\n\r\n var ImagePreloader = function () {\r\n var proxyImage = function () {\r\n var canvas = createTag('canvas');\r\n canvas.width = 1;\r\n canvas.height = 1;\r\n var ctx = canvas.getContext('2d');\r\n ctx.fillStyle = 'rgba(0,0,0,0)';\r\n ctx.fillRect(0, 0, 1, 1);\r\n return canvas;\r\n }();\r\n\r\n function imageLoaded() {\r\n this.loadedAssets += 1;\r\n\r\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\r\n if (this.imagesLoadedCb) {\r\n this.imagesLoadedCb(null);\r\n }\r\n }\r\n }\r\n\r\n function footageLoaded() {\r\n this.loadedFootagesCount += 1;\r\n\r\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\r\n if (this.imagesLoadedCb) {\r\n this.imagesLoadedCb(null);\r\n }\r\n }\r\n }\r\n\r\n function getAssetsPath(assetData, assetsPath, originalPath) {\r\n var path = '';\r\n\r\n if (assetData.e) {\r\n path = assetData.p;\r\n } else if (assetsPath) {\r\n var imagePath = assetData.p;\r\n\r\n if (imagePath.indexOf('images/') !== -1) {\r\n imagePath = imagePath.split('/')[1];\r\n }\r\n\r\n path = assetsPath + imagePath;\r\n } else {\r\n path = originalPath;\r\n path += assetData.u ? assetData.u : '';\r\n path += assetData.p;\r\n }\r\n\r\n return path;\r\n }\r\n\r\n function testImageLoaded(img) {\r\n var _count = 0;\r\n var intervalId = setInterval(function () {\r\n var box = img.getBBox();\r\n\r\n if (box.width || _count > 500) {\r\n this._imageLoaded();\r\n\r\n clearInterval(intervalId);\r\n }\r\n\r\n _count += 1;\r\n }.bind(this), 50);\r\n }\r\n\r\n function createImageData(assetData) {\r\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\r\n var img = createNS('image');\r\n\r\n if (isSafari) {\r\n this.testImageLoaded(img);\r\n } else {\r\n img.addEventListener('load', this._imageLoaded, false);\r\n }\r\n\r\n img.addEventListener('error', function () {\r\n ob.img = proxyImage;\r\n\r\n this._imageLoaded();\r\n }.bind(this), false);\r\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\r\n\r\n if (this._elementHelper.append) {\r\n this._elementHelper.append(img);\r\n } else {\r\n this._elementHelper.appendChild(img);\r\n }\r\n\r\n var ob = {\r\n img: img,\r\n assetData: assetData\r\n };\r\n return ob;\r\n }\r\n\r\n function createImgData(assetData) {\r\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\r\n var img = createTag('img');\r\n img.crossOrigin = 'anonymous';\r\n img.addEventListener('load', this._imageLoaded, false);\r\n img.addEventListener('error', function () {\r\n ob.img = proxyImage;\r\n\r\n this._imageLoaded();\r\n }.bind(this), false);\r\n img.src = path;\r\n var ob = {\r\n img: img,\r\n assetData: assetData\r\n };\r\n return ob;\r\n }\r\n\r\n function createFootageData(data) {\r\n var ob = {\r\n assetData: data\r\n };\r\n var path = getAssetsPath(data, this.assetsPath, this.path);\r\n dataManager.loadData(path, function (footageData) {\r\n ob.img = footageData;\r\n\r\n this._footageLoaded();\r\n }.bind(this), function () {\r\n ob.img = {};\r\n\r\n this._footageLoaded();\r\n }.bind(this));\r\n return ob;\r\n }\r\n\r\n function loadAssets(assets, cb) {\r\n this.imagesLoadedCb = cb;\r\n var i;\r\n var len = assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!assets[i].layers) {\r\n if (!assets[i].t || assets[i].t === 'seq') {\r\n this.totalImages += 1;\r\n this.images.push(this._createImageData(assets[i]));\r\n } else if (assets[i].t === 3) {\r\n this.totalFootages += 1;\r\n this.images.push(this.createFootageData(assets[i]));\r\n }\r\n }\r\n }\r\n }\r\n\r\n function setPath(path) {\r\n this.path = path || '';\r\n }\r\n\r\n function setAssetsPath(path) {\r\n this.assetsPath = path || '';\r\n }\r\n\r\n function getAsset(assetData) {\r\n var i = 0;\r\n var len = this.images.length;\r\n\r\n while (i < len) {\r\n if (this.images[i].assetData === assetData) {\r\n return this.images[i].img;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function destroy() {\r\n this.imagesLoadedCb = null;\r\n this.images.length = 0;\r\n }\r\n\r\n function loadedImages() {\r\n return this.totalImages === this.loadedAssets;\r\n }\r\n\r\n function loadedFootages() {\r\n return this.totalFootages === this.loadedFootagesCount;\r\n }\r\n\r\n function setCacheType(type, elementHelper) {\r\n if (type === 'svg') {\r\n this._elementHelper = elementHelper;\r\n this._createImageData = this.createImageData.bind(this);\r\n } else {\r\n this._createImageData = this.createImgData.bind(this);\r\n }\r\n }\r\n\r\n function ImagePreloaderFactory() {\r\n this._imageLoaded = imageLoaded.bind(this);\r\n this._footageLoaded = footageLoaded.bind(this);\r\n this.testImageLoaded = testImageLoaded.bind(this);\r\n this.createFootageData = createFootageData.bind(this);\r\n this.assetsPath = '';\r\n this.path = '';\r\n this.totalImages = 0;\r\n this.totalFootages = 0;\r\n this.loadedAssets = 0;\r\n this.loadedFootagesCount = 0;\r\n this.imagesLoadedCb = null;\r\n this.images = [];\r\n }\r\n\r\n ImagePreloaderFactory.prototype = {\r\n loadAssets: loadAssets,\r\n setAssetsPath: setAssetsPath,\r\n setPath: setPath,\r\n loadedImages: loadedImages,\r\n loadedFootages: loadedFootages,\r\n destroy: destroy,\r\n getAsset: getAsset,\r\n createImgData: createImgData,\r\n createImageData: createImageData,\r\n imageLoaded: imageLoaded,\r\n footageLoaded: footageLoaded,\r\n setCacheType: setCacheType\r\n };\r\n return ImagePreloaderFactory;\r\n }();\r\n\r\n function BaseEvent() {}\r\n\r\n BaseEvent.prototype = {\r\n triggerEvent: function triggerEvent(eventName, args) {\r\n if (this._cbs[eventName]) {\r\n var callbacks = this._cbs[eventName];\r\n\r\n for (var i = 0; i < callbacks.length; i += 1) {\r\n callbacks[i](args);\r\n }\r\n }\r\n },\r\n addEventListener: function addEventListener(eventName, callback) {\r\n if (!this._cbs[eventName]) {\r\n this._cbs[eventName] = [];\r\n }\r\n\r\n this._cbs[eventName].push(callback);\r\n\r\n return function () {\r\n this.removeEventListener(eventName, callback);\r\n }.bind(this);\r\n },\r\n removeEventListener: function removeEventListener(eventName, callback) {\r\n if (!callback) {\r\n this._cbs[eventName] = null;\r\n } else if (this._cbs[eventName]) {\r\n var i = 0;\r\n var len = this._cbs[eventName].length;\r\n\r\n while (i < len) {\r\n if (this._cbs[eventName][i] === callback) {\r\n this._cbs[eventName].splice(i, 1);\r\n\r\n i -= 1;\r\n len -= 1;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (!this._cbs[eventName].length) {\r\n this._cbs[eventName] = null;\r\n }\r\n }\r\n }\r\n };\r\n\r\n var markerParser = function () {\r\n function parsePayloadLines(payload) {\r\n var lines = payload.split('\\r\\n');\r\n var keys = {};\r\n var line;\r\n var keysCount = 0;\r\n\r\n for (var i = 0; i < lines.length; i += 1) {\r\n line = lines[i].split(':');\r\n\r\n if (line.length === 2) {\r\n keys[line[0]] = line[1].trim();\r\n keysCount += 1;\r\n }\r\n }\r\n\r\n if (keysCount === 0) {\r\n throw new Error();\r\n }\r\n\r\n return keys;\r\n }\r\n\r\n return function (_markers) {\r\n var markers = [];\r\n\r\n for (var i = 0; i < _markers.length; i += 1) {\r\n var _marker = _markers[i];\r\n var markerData = {\r\n time: _marker.tm,\r\n duration: _marker.dr\r\n };\r\n\r\n try {\r\n markerData.payload = JSON.parse(_markers[i].cm);\r\n } catch (_) {\r\n try {\r\n markerData.payload = parsePayloadLines(_markers[i].cm);\r\n } catch (__) {\r\n markerData.payload = {\r\n name: _markers[i].cm\r\n };\r\n }\r\n }\r\n\r\n markers.push(markerData);\r\n }\r\n\r\n return markers;\r\n };\r\n }();\r\n\r\n var ProjectInterface = function () {\r\n function registerComposition(comp) {\r\n this.compositions.push(comp);\r\n }\r\n\r\n return function () {\r\n function _thisProjectFunction(name) {\r\n var i = 0;\r\n var len = this.compositions.length;\r\n\r\n while (i < len) {\r\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\r\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\r\n this.compositions[i].prepareFrame(this.currentFrame);\r\n }\r\n\r\n return this.compositions[i].compInterface;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n _thisProjectFunction.compositions = [];\r\n _thisProjectFunction.currentFrame = 0;\r\n _thisProjectFunction.registerComposition = registerComposition;\r\n return _thisProjectFunction;\r\n };\r\n }();\r\n\r\n var renderers = {};\r\n\r\n var registerRenderer = function registerRenderer(key, value) {\r\n renderers[key] = value;\r\n };\r\n\r\n function getRenderer(key) {\r\n return renderers[key];\r\n }\r\n\r\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\r\n\r\n var AnimationItem = function AnimationItem() {\r\n this._cbs = [];\r\n this.name = '';\r\n this.path = '';\r\n this.isLoaded = false;\r\n this.currentFrame = 0;\r\n this.currentRawFrame = 0;\r\n this.firstFrame = 0;\r\n this.totalFrames = 0;\r\n this.frameRate = 0;\r\n this.frameMult = 0;\r\n this.playSpeed = 1;\r\n this.playDirection = 1;\r\n this.playCount = 0;\r\n this.animationData = {};\r\n this.assets = [];\r\n this.isPaused = true;\r\n this.autoplay = false;\r\n this.loop = true;\r\n this.renderer = null;\r\n this.animationID = createElementID();\r\n this.assetsPath = '';\r\n this.timeCompleted = 0;\r\n this.segmentPos = 0;\r\n this.isSubframeEnabled = getSubframeEnabled();\r\n this.segments = [];\r\n this._idle = true;\r\n this._completedLoop = false;\r\n this.projectInterface = ProjectInterface();\r\n this.imagePreloader = new ImagePreloader();\r\n this.audioController = audioControllerFactory();\r\n this.markers = [];\r\n this.configAnimation = this.configAnimation.bind(this);\r\n this.onSetupError = this.onSetupError.bind(this);\r\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\r\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\r\n };\r\n\r\n extendPrototype([BaseEvent], AnimationItem);\r\n\r\n AnimationItem.prototype.setParams = function (params) {\r\n if (params.wrapper || params.container) {\r\n this.wrapper = params.wrapper || params.container;\r\n }\r\n\r\n var animType = 'svg';\r\n\r\n if (params.animType) {\r\n animType = params.animType;\r\n } else if (params.renderer) {\r\n animType = params.renderer;\r\n }\r\n\r\n var RendererClass = getRenderer(animType);\r\n this.renderer = new RendererClass(this, params.rendererSettings);\r\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\r\n this.renderer.setProjectInterface(this.projectInterface);\r\n this.animType = animType;\r\n\r\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\r\n this.loop = true;\r\n } else if (params.loop === false) {\r\n this.loop = false;\r\n } else {\r\n this.loop = parseInt(params.loop, 10);\r\n }\r\n\r\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\r\n this.name = params.name ? params.name : '';\r\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\r\n this.assetsPath = params.assetsPath;\r\n this.initialSegment = params.initialSegment;\r\n\r\n if (params.audioFactory) {\r\n this.audioController.setAudioFactory(params.audioFactory);\r\n }\r\n\r\n if (params.animationData) {\r\n this.setupAnimation(params.animationData);\r\n } else if (params.path) {\r\n if (params.path.lastIndexOf('\\\\') !== -1) {\r\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\r\n } else {\r\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\r\n }\r\n\r\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\r\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\r\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.onSetupError = function () {\r\n this.trigger('data_failed');\r\n };\r\n\r\n AnimationItem.prototype.setupAnimation = function (data) {\r\n dataManager.completeAnimation(data, this.configAnimation);\r\n };\r\n\r\n AnimationItem.prototype.setData = function (wrapper, animationData) {\r\n if (animationData) {\r\n if (_typeof$4(animationData) !== 'object') {\r\n animationData = JSON.parse(animationData);\r\n }\r\n }\r\n\r\n var params = {\r\n wrapper: wrapper,\r\n animationData: animationData\r\n };\r\n var wrapperAttributes = wrapper.attributes;\r\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\r\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : 'canvas';\r\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\r\n\r\n if (loop === 'false') {\r\n params.loop = false;\r\n } else if (loop === 'true') {\r\n params.loop = true;\r\n } else if (loop !== '') {\r\n params.loop = parseInt(loop, 10);\r\n }\r\n\r\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\r\n params.autoplay = autoplay !== 'false';\r\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\r\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\r\n\r\n if (prerender === 'false') {\r\n params.prerender = false;\r\n }\r\n\r\n this.setParams(params);\r\n };\r\n\r\n AnimationItem.prototype.includeLayers = function (data) {\r\n if (data.op > this.animationData.op) {\r\n this.animationData.op = data.op;\r\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\r\n }\r\n\r\n var layers = this.animationData.layers;\r\n var i;\r\n var len = layers.length;\r\n var newLayers = data.layers;\r\n var j;\r\n var jLen = newLayers.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n i = 0;\r\n\r\n while (i < len) {\r\n if (layers[i].id === newLayers[j].id) {\r\n layers[i] = newLayers[j];\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n\r\n if (data.chars || data.fonts) {\r\n this.renderer.globalData.fontManager.addChars(data.chars);\r\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\r\n }\r\n\r\n if (data.assets) {\r\n len = data.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.animationData.assets.push(data.assets[i]);\r\n }\r\n }\r\n\r\n this.animationData.__complete = false;\r\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\r\n };\r\n\r\n AnimationItem.prototype.onSegmentComplete = function (data) {\r\n this.animationData = data;\r\n var expressionsPlugin = getExpressionsPlugin();\r\n\r\n if (expressionsPlugin) {\r\n expressionsPlugin.initExpressions(this);\r\n }\r\n\r\n this.loadNextSegment();\r\n };\r\n\r\n AnimationItem.prototype.loadNextSegment = function () {\r\n var segments = this.animationData.segments;\r\n\r\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\r\n this.trigger('data_ready');\r\n this.timeCompleted = this.totalFrames;\r\n return;\r\n }\r\n\r\n var segment = segments.shift();\r\n this.timeCompleted = segment.time * this.frameRate;\r\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\r\n this.segmentPos += 1;\r\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\r\n this.trigger('data_failed');\r\n }.bind(this));\r\n };\r\n\r\n AnimationItem.prototype.loadSegments = function () {\r\n var segments = this.animationData.segments;\r\n\r\n if (!segments) {\r\n this.timeCompleted = this.totalFrames;\r\n }\r\n\r\n this.loadNextSegment();\r\n };\r\n\r\n AnimationItem.prototype.imagesLoaded = function () {\r\n this.trigger('loaded_images');\r\n this.checkLoaded();\r\n };\r\n\r\n AnimationItem.prototype.preloadImages = function () {\r\n this.imagePreloader.setAssetsPath(this.assetsPath);\r\n this.imagePreloader.setPath(this.path);\r\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\r\n };\r\n\r\n AnimationItem.prototype.configAnimation = function (animData) {\r\n if (!this.renderer) {\r\n return;\r\n }\r\n\r\n try {\r\n this.animationData = animData;\r\n\r\n if (this.initialSegment) {\r\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\r\n this.firstFrame = Math.round(this.initialSegment[0]);\r\n } else {\r\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\r\n this.firstFrame = Math.round(this.animationData.ip);\r\n }\r\n\r\n this.renderer.configAnimation(animData);\r\n\r\n if (!animData.assets) {\r\n animData.assets = [];\r\n }\r\n\r\n this.assets = this.animationData.assets;\r\n this.frameRate = this.animationData.fr;\r\n this.frameMult = this.animationData.fr / 1000;\r\n this.renderer.searchExtraCompositions(animData.assets);\r\n this.markers = markerParser(animData.markers || []);\r\n this.trigger('config_ready');\r\n this.preloadImages();\r\n this.loadSegments();\r\n this.updaFrameModifier();\r\n this.waitForFontsLoaded();\r\n\r\n if (this.isPaused) {\r\n this.audioController.pause();\r\n }\r\n } catch (error) {\r\n this.triggerConfigError(error);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.waitForFontsLoaded = function () {\r\n if (!this.renderer) {\r\n return;\r\n }\r\n\r\n if (this.renderer.globalData.fontManager.isLoaded) {\r\n this.checkLoaded();\r\n } else {\r\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.checkLoaded = function () {\r\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\r\n this.isLoaded = true;\r\n var expressionsPlugin = getExpressionsPlugin();\r\n\r\n if (expressionsPlugin) {\r\n expressionsPlugin.initExpressions(this);\r\n }\r\n\r\n this.renderer.initItems();\r\n setTimeout(function () {\r\n this.trigger('DOMLoaded');\r\n }.bind(this), 0);\r\n this.gotoFrame();\r\n\r\n if (this.autoplay) {\r\n this.play();\r\n }\r\n }\r\n };\r\n\r\n AnimationItem.prototype.resize = function (width, height) {\r\n // Adding this validation for backwards compatibility in case an event object was being passed down\r\n var _width = typeof width === 'number' ? width : undefined;\r\n\r\n var _height = typeof height === 'number' ? height : undefined;\r\n\r\n this.renderer.updateContainerSize(_width, _height);\r\n };\r\n\r\n AnimationItem.prototype.setSubframe = function (flag) {\r\n this.isSubframeEnabled = !!flag;\r\n };\r\n\r\n AnimationItem.prototype.gotoFrame = function () {\r\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\r\n\r\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\r\n this.currentFrame = this.timeCompleted;\r\n }\r\n\r\n this.trigger('enterFrame');\r\n this.renderFrame();\r\n this.trigger('drawnFrame');\r\n };\r\n\r\n AnimationItem.prototype.renderFrame = function () {\r\n if (this.isLoaded === false || !this.renderer) {\r\n return;\r\n }\r\n\r\n try {\r\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\r\n } catch (error) {\r\n this.triggerRenderFrameError(error);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.play = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n if (this.isPaused === true) {\r\n this.isPaused = false;\r\n this.trigger('_pause');\r\n this.audioController.resume();\r\n\r\n if (this._idle) {\r\n this._idle = false;\r\n this.trigger('_active');\r\n }\r\n }\r\n };\r\n\r\n AnimationItem.prototype.pause = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n if (this.isPaused === false) {\r\n this.isPaused = true;\r\n this.trigger('_play');\r\n this._idle = true;\r\n this.trigger('_idle');\r\n this.audioController.pause();\r\n }\r\n };\r\n\r\n AnimationItem.prototype.togglePause = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n if (this.isPaused === true) {\r\n this.play();\r\n } else {\r\n this.pause();\r\n }\r\n };\r\n\r\n AnimationItem.prototype.stop = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n this.pause();\r\n this.playCount = 0;\r\n this._completedLoop = false;\r\n this.setCurrentRawFrameValue(0);\r\n };\r\n\r\n AnimationItem.prototype.getMarkerData = function (markerName) {\r\n var marker;\r\n\r\n for (var i = 0; i < this.markers.length; i += 1) {\r\n marker = this.markers[i];\r\n\r\n if (marker.payload && marker.payload.name === markerName) {\r\n return marker;\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n var numValue = Number(value);\r\n\r\n if (isNaN(numValue)) {\r\n var marker = this.getMarkerData(value);\r\n\r\n if (marker) {\r\n this.goToAndStop(marker.time, true);\r\n }\r\n } else if (isFrame) {\r\n this.setCurrentRawFrameValue(value);\r\n } else {\r\n this.setCurrentRawFrameValue(value * this.frameModifier);\r\n }\r\n\r\n this.pause();\r\n };\r\n\r\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n var numValue = Number(value);\r\n\r\n if (isNaN(numValue)) {\r\n var marker = this.getMarkerData(value);\r\n\r\n if (marker) {\r\n if (!marker.duration) {\r\n this.goToAndStop(marker.time, true);\r\n } else {\r\n this.playSegments([marker.time, marker.time + marker.duration], true);\r\n }\r\n }\r\n } else {\r\n this.goToAndStop(numValue, isFrame, name);\r\n }\r\n\r\n this.play();\r\n };\r\n\r\n AnimationItem.prototype.advanceTime = function (value) {\r\n if (this.isPaused === true || this.isLoaded === false) {\r\n return;\r\n }\r\n\r\n var nextValue = this.currentRawFrame + value * this.frameModifier;\r\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\r\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\r\n\r\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\r\n if (!this.loop || this.playCount === this.loop) {\r\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\r\n _isComplete = true;\r\n nextValue = this.totalFrames - 1;\r\n }\r\n } else if (nextValue >= this.totalFrames) {\r\n this.playCount += 1;\r\n\r\n if (!this.checkSegments(nextValue % this.totalFrames)) {\r\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\r\n this._completedLoop = true;\r\n this.trigger('loopComplete');\r\n }\r\n } else {\r\n this.setCurrentRawFrameValue(nextValue);\r\n }\r\n } else if (nextValue < 0) {\r\n if (!this.checkSegments(nextValue % this.totalFrames)) {\r\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\r\n // eslint-disable-line no-plusplus\r\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\r\n\r\n if (!this._completedLoop) {\r\n this._completedLoop = true;\r\n } else {\r\n this.trigger('loopComplete');\r\n }\r\n } else {\r\n _isComplete = true;\r\n nextValue = 0;\r\n }\r\n }\r\n } else {\r\n this.setCurrentRawFrameValue(nextValue);\r\n }\r\n\r\n if (_isComplete) {\r\n this.setCurrentRawFrameValue(nextValue);\r\n this.pause();\r\n this.trigger('complete');\r\n }\r\n };\r\n\r\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\r\n this.playCount = 0;\r\n\r\n if (arr[1] < arr[0]) {\r\n if (this.frameModifier > 0) {\r\n if (this.playSpeed < 0) {\r\n this.setSpeed(-this.playSpeed);\r\n } else {\r\n this.setDirection(-1);\r\n }\r\n }\r\n\r\n this.totalFrames = arr[0] - arr[1];\r\n this.timeCompleted = this.totalFrames;\r\n this.firstFrame = arr[1];\r\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\r\n } else if (arr[1] > arr[0]) {\r\n if (this.frameModifier < 0) {\r\n if (this.playSpeed < 0) {\r\n this.setSpeed(-this.playSpeed);\r\n } else {\r\n this.setDirection(1);\r\n }\r\n }\r\n\r\n this.totalFrames = arr[1] - arr[0];\r\n this.timeCompleted = this.totalFrames;\r\n this.firstFrame = arr[0];\r\n this.setCurrentRawFrameValue(0.001 + offset);\r\n }\r\n\r\n this.trigger('segmentStart');\r\n };\r\n\r\n AnimationItem.prototype.setSegment = function (init, end) {\r\n var pendingFrame = -1;\r\n\r\n if (this.isPaused) {\r\n if (this.currentRawFrame + this.firstFrame < init) {\r\n pendingFrame = init;\r\n } else if (this.currentRawFrame + this.firstFrame > end) {\r\n pendingFrame = end - init;\r\n }\r\n }\r\n\r\n this.firstFrame = init;\r\n this.totalFrames = end - init;\r\n this.timeCompleted = this.totalFrames;\r\n\r\n if (pendingFrame !== -1) {\r\n this.goToAndStop(pendingFrame, true);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\r\n if (forceFlag) {\r\n this.segments.length = 0;\r\n }\r\n\r\n if (_typeof$4(arr[0]) === 'object') {\r\n var i;\r\n var len = arr.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.segments.push(arr[i]);\r\n }\r\n } else {\r\n this.segments.push(arr);\r\n }\r\n\r\n if (this.segments.length && forceFlag) {\r\n this.adjustSegment(this.segments.shift(), 0);\r\n }\r\n\r\n if (this.isPaused) {\r\n this.play();\r\n }\r\n };\r\n\r\n AnimationItem.prototype.resetSegments = function (forceFlag) {\r\n this.segments.length = 0;\r\n this.segments.push([this.animationData.ip, this.animationData.op]);\r\n\r\n if (forceFlag) {\r\n this.checkSegments(0);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.checkSegments = function (offset) {\r\n if (this.segments.length) {\r\n this.adjustSegment(this.segments.shift(), offset);\r\n return true;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n AnimationItem.prototype.destroy = function (name) {\r\n if (name && this.name !== name || !this.renderer) {\r\n return;\r\n }\r\n\r\n this.renderer.destroy();\r\n this.imagePreloader.destroy();\r\n this.trigger('destroy');\r\n this._cbs = null;\r\n this.onEnterFrame = null;\r\n this.onLoopComplete = null;\r\n this.onComplete = null;\r\n this.onSegmentStart = null;\r\n this.onDestroy = null;\r\n this.renderer = null;\r\n this.renderer = null;\r\n this.imagePreloader = null;\r\n this.projectInterface = null;\r\n };\r\n\r\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\r\n this.currentRawFrame = value;\r\n this.gotoFrame();\r\n };\r\n\r\n AnimationItem.prototype.setSpeed = function (val) {\r\n this.playSpeed = val;\r\n this.updaFrameModifier();\r\n };\r\n\r\n AnimationItem.prototype.setDirection = function (val) {\r\n this.playDirection = val < 0 ? -1 : 1;\r\n this.updaFrameModifier();\r\n };\r\n\r\n AnimationItem.prototype.setLoop = function (isLooping) {\r\n this.loop = isLooping;\r\n };\r\n\r\n AnimationItem.prototype.setVolume = function (val, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n this.audioController.setVolume(val);\r\n };\r\n\r\n AnimationItem.prototype.getVolume = function () {\r\n return this.audioController.getVolume();\r\n };\r\n\r\n AnimationItem.prototype.mute = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n this.audioController.mute();\r\n };\r\n\r\n AnimationItem.prototype.unmute = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n this.audioController.unmute();\r\n };\r\n\r\n AnimationItem.prototype.updaFrameModifier = function () {\r\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\r\n this.audioController.setRate(this.playSpeed * this.playDirection);\r\n };\r\n\r\n AnimationItem.prototype.getPath = function () {\r\n return this.path;\r\n };\r\n\r\n AnimationItem.prototype.getAssetsPath = function (assetData) {\r\n var path = '';\r\n\r\n if (assetData.e) {\r\n path = assetData.p;\r\n } else if (this.assetsPath) {\r\n var imagePath = assetData.p;\r\n\r\n if (imagePath.indexOf('images/') !== -1) {\r\n imagePath = imagePath.split('/')[1];\r\n }\r\n\r\n path = this.assetsPath + imagePath;\r\n } else {\r\n path = this.path;\r\n path += assetData.u ? assetData.u : '';\r\n path += assetData.p;\r\n }\r\n\r\n return path;\r\n };\r\n\r\n AnimationItem.prototype.getAssetData = function (id) {\r\n var i = 0;\r\n var len = this.assets.length;\r\n\r\n while (i < len) {\r\n if (id === this.assets[i].id) {\r\n return this.assets[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n AnimationItem.prototype.hide = function () {\r\n this.renderer.hide();\r\n };\r\n\r\n AnimationItem.prototype.show = function () {\r\n this.renderer.show();\r\n };\r\n\r\n AnimationItem.prototype.getDuration = function (isFrame) {\r\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\r\n };\r\n\r\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\r\n try {\r\n var element = this.renderer.getElementByPath(path);\r\n element.updateDocumentData(documentData, index);\r\n } catch (error) {// TODO: decide how to handle catch case\r\n }\r\n };\r\n\r\n AnimationItem.prototype.trigger = function (name) {\r\n if (this._cbs && this._cbs[name]) {\r\n switch (name) {\r\n case 'enterFrame':\r\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\r\n break;\r\n\r\n case 'drawnFrame':\r\n this.drawnFrameEvent.currentTime = this.currentFrame;\r\n this.drawnFrameEvent.totalTime = this.totalFrames;\r\n this.drawnFrameEvent.direction = this.frameModifier;\r\n this.triggerEvent(name, this.drawnFrameEvent);\r\n break;\r\n\r\n case 'loopComplete':\r\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\r\n break;\r\n\r\n case 'complete':\r\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\r\n break;\r\n\r\n case 'segmentStart':\r\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\r\n break;\r\n\r\n case 'destroy':\r\n this.triggerEvent(name, new BMDestroyEvent(name, this));\r\n break;\r\n\r\n default:\r\n this.triggerEvent(name);\r\n }\r\n }\r\n\r\n if (name === 'enterFrame' && this.onEnterFrame) {\r\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\r\n }\r\n\r\n if (name === 'loopComplete' && this.onLoopComplete) {\r\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\r\n }\r\n\r\n if (name === 'complete' && this.onComplete) {\r\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\r\n }\r\n\r\n if (name === 'segmentStart' && this.onSegmentStart) {\r\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\r\n }\r\n\r\n if (name === 'destroy' && this.onDestroy) {\r\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\r\n }\r\n };\r\n\r\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\r\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\r\n this.triggerEvent('error', error);\r\n\r\n if (this.onError) {\r\n this.onError.call(this, error);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\r\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\r\n this.triggerEvent('error', error);\r\n\r\n if (this.onError) {\r\n this.onError.call(this, error);\r\n }\r\n };\r\n\r\n var animationManager = function () {\r\n var moduleOb = {};\r\n var registeredAnimations = [];\r\n var initTime = 0;\r\n var len = 0;\r\n var playingAnimationsNum = 0;\r\n var _stopped = true;\r\n var _isFrozen = false;\r\n\r\n function removeElement(ev) {\r\n var i = 0;\r\n var animItem = ev.target;\r\n\r\n while (i < len) {\r\n if (registeredAnimations[i].animation === animItem) {\r\n registeredAnimations.splice(i, 1);\r\n i -= 1;\r\n len -= 1;\r\n\r\n if (!animItem.isPaused) {\r\n subtractPlayingCount();\r\n }\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n\r\n function registerAnimation(element, animationData) {\r\n if (!element) {\r\n return null;\r\n }\r\n\r\n var i = 0;\r\n\r\n while (i < len) {\r\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\r\n return registeredAnimations[i].animation;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n var animItem = new AnimationItem();\r\n setupAnimation(animItem, element);\r\n animItem.setData(element, animationData);\r\n return animItem;\r\n }\r\n\r\n function getRegisteredAnimations() {\r\n var i;\r\n var lenAnims = registeredAnimations.length;\r\n var animations = [];\r\n\r\n for (i = 0; i < lenAnims; i += 1) {\r\n animations.push(registeredAnimations[i].animation);\r\n }\r\n\r\n return animations;\r\n }\r\n\r\n function addPlayingCount() {\r\n playingAnimationsNum += 1;\r\n activate();\r\n }\r\n\r\n function subtractPlayingCount() {\r\n playingAnimationsNum -= 1;\r\n }\r\n\r\n function setupAnimation(animItem, element) {\r\n animItem.addEventListener('destroy', removeElement);\r\n animItem.addEventListener('_active', addPlayingCount);\r\n animItem.addEventListener('_idle', subtractPlayingCount);\r\n registeredAnimations.push({\r\n elem: element,\r\n animation: animItem\r\n });\r\n len += 1;\r\n }\r\n\r\n function loadAnimation(params) {\r\n var animItem = new AnimationItem();\r\n setupAnimation(animItem, null);\r\n animItem.setParams(params);\r\n return animItem;\r\n }\r\n\r\n function setSpeed(val, animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setSpeed(val, animation);\r\n }\r\n }\r\n\r\n function setDirection(val, animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setDirection(val, animation);\r\n }\r\n }\r\n\r\n function play(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.play(animation);\r\n }\r\n }\r\n\r\n function resume(nowTime) {\r\n var elapsedTime = nowTime - initTime;\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.advanceTime(elapsedTime);\r\n }\r\n\r\n initTime = nowTime;\r\n\r\n if (playingAnimationsNum && !_isFrozen) {\r\n window.requestAnimationFrame(resume);\r\n } else {\r\n _stopped = true;\r\n }\r\n }\r\n\r\n function first(nowTime) {\r\n initTime = nowTime;\r\n window.requestAnimationFrame(resume);\r\n }\r\n\r\n function pause(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.pause(animation);\r\n }\r\n }\r\n\r\n function goToAndStop(value, isFrame, animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\r\n }\r\n }\r\n\r\n function stop(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.stop(animation);\r\n }\r\n }\r\n\r\n function togglePause(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.togglePause(animation);\r\n }\r\n }\r\n\r\n function destroy(animation) {\r\n var i;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n registeredAnimations[i].animation.destroy(animation);\r\n }\r\n }\r\n\r\n function searchAnimations(animationData, standalone, renderer) {\r\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\r\n var i;\r\n var lenAnims = animElements.length;\r\n\r\n for (i = 0; i < lenAnims; i += 1) {\r\n if (renderer) {\r\n animElements[i].setAttribute('data-bm-type', renderer);\r\n }\r\n\r\n registerAnimation(animElements[i], animationData);\r\n }\r\n\r\n if (standalone && lenAnims === 0) {\r\n if (!renderer) {\r\n renderer = 'svg';\r\n }\r\n\r\n var body = document.getElementsByTagName('body')[0];\r\n body.innerText = '';\r\n var div = createTag('div');\r\n div.style.width = '100%';\r\n div.style.height = '100%';\r\n div.setAttribute('data-bm-type', renderer);\r\n body.appendChild(div);\r\n registerAnimation(div, animationData);\r\n }\r\n }\r\n\r\n function resize() {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.resize();\r\n }\r\n }\r\n\r\n function activate() {\r\n if (!_isFrozen && playingAnimationsNum) {\r\n if (_stopped) {\r\n window.requestAnimationFrame(first);\r\n _stopped = false;\r\n }\r\n }\r\n }\r\n\r\n function freeze() {\r\n _isFrozen = true;\r\n }\r\n\r\n function unfreeze() {\r\n _isFrozen = false;\r\n activate();\r\n }\r\n\r\n function setVolume(val, animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setVolume(val, animation);\r\n }\r\n }\r\n\r\n function mute(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.mute(animation);\r\n }\r\n }\r\n\r\n function unmute(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.unmute(animation);\r\n }\r\n }\r\n\r\n moduleOb.registerAnimation = registerAnimation;\r\n moduleOb.loadAnimation = loadAnimation;\r\n moduleOb.setSpeed = setSpeed;\r\n moduleOb.setDirection = setDirection;\r\n moduleOb.play = play;\r\n moduleOb.pause = pause;\r\n moduleOb.stop = stop;\r\n moduleOb.togglePause = togglePause;\r\n moduleOb.searchAnimations = searchAnimations;\r\n moduleOb.resize = resize; // moduleOb.start = start;\r\n\r\n moduleOb.goToAndStop = goToAndStop;\r\n moduleOb.destroy = destroy;\r\n moduleOb.freeze = freeze;\r\n moduleOb.unfreeze = unfreeze;\r\n moduleOb.setVolume = setVolume;\r\n moduleOb.mute = mute;\r\n moduleOb.unmute = unmute;\r\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\r\n return moduleOb;\r\n }();\r\n\r\n /* eslint-disable */\r\n var BezierFactory = function () {\r\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\r\n var ob = {};\r\n ob.getBezierEasing = getBezierEasing;\r\n var beziers = {};\r\n\r\n function getBezierEasing(a, b, c, d, nm) {\r\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\r\n\r\n if (beziers[str]) {\r\n return beziers[str];\r\n }\r\n\r\n var bezEasing = new BezierEasing([a, b, c, d]);\r\n beziers[str] = bezEasing;\r\n return bezEasing;\r\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\r\n\r\n\r\n var NEWTON_ITERATIONS = 4;\r\n var NEWTON_MIN_SLOPE = 0.001;\r\n var SUBDIVISION_PRECISION = 0.0000001;\r\n var SUBDIVISION_MAX_ITERATIONS = 10;\r\n var kSplineTableSize = 11;\r\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\r\n var float32ArraySupported = typeof Float32Array === 'function';\r\n\r\n function A(aA1, aA2) {\r\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\r\n }\r\n\r\n function B(aA1, aA2) {\r\n return 3.0 * aA2 - 6.0 * aA1;\r\n }\r\n\r\n function C(aA1) {\r\n return 3.0 * aA1;\r\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\r\n\r\n\r\n function calcBezier(aT, aA1, aA2) {\r\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\r\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\r\n\r\n\r\n function getSlope(aT, aA1, aA2) {\r\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\r\n }\r\n\r\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\r\n var currentX,\r\n currentT,\r\n i = 0;\r\n\r\n do {\r\n currentT = aA + (aB - aA) / 2.0;\r\n currentX = calcBezier(currentT, mX1, mX2) - aX;\r\n\r\n if (currentX > 0.0) {\r\n aB = currentT;\r\n } else {\r\n aA = currentT;\r\n }\r\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\r\n\r\n return currentT;\r\n }\r\n\r\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\r\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\r\n var currentSlope = getSlope(aGuessT, mX1, mX2);\r\n if (currentSlope === 0.0) return aGuessT;\r\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\r\n aGuessT -= currentX / currentSlope;\r\n }\r\n\r\n return aGuessT;\r\n }\r\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\r\n\r\n\r\n function BezierEasing(points) {\r\n this._p = points;\r\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\r\n this._precomputed = false;\r\n this.get = this.get.bind(this);\r\n }\r\n\r\n BezierEasing.prototype = {\r\n get: function get(x) {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n if (!this._precomputed) this._precompute();\r\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\r\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\r\n\r\n if (x === 0) return 0;\r\n if (x === 1) return 1;\r\n return calcBezier(this._getTForX(x), mY1, mY2);\r\n },\r\n // Private part\r\n _precompute: function _precompute() {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n this._precomputed = true;\r\n\r\n if (mX1 !== mY1 || mX2 !== mY2) {\r\n this._calcSampleValues();\r\n }\r\n },\r\n _calcSampleValues: function _calcSampleValues() {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2];\r\n\r\n for (var i = 0; i < kSplineTableSize; ++i) {\r\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\r\n }\r\n },\r\n\r\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\r\n _getTForX: function _getTForX(aX) {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2],\r\n mSampleValues = this._mSampleValues;\r\n var intervalStart = 0.0;\r\n var currentSample = 1;\r\n var lastSample = kSplineTableSize - 1;\r\n\r\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\r\n intervalStart += kSampleStepSize;\r\n }\r\n\r\n --currentSample; // Interpolate to provide an initial guess for t\r\n\r\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\r\n var guessForT = intervalStart + dist * kSampleStepSize;\r\n var initialSlope = getSlope(guessForT, mX1, mX2);\r\n\r\n if (initialSlope >= NEWTON_MIN_SLOPE) {\r\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\r\n }\r\n\r\n if (initialSlope === 0.0) {\r\n return guessForT;\r\n }\r\n\r\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\r\n }\r\n };\r\n return ob;\r\n }();\r\n\r\n var pooling = function () {\r\n function _double(arr) {\r\n return arr.concat(createSizedArray(arr.length));\r\n }\r\n\r\n return {\r\n \"double\": _double\r\n };\r\n }();\r\n\r\n var poolFactory = function () {\r\n return function (initialLength, _create, _release) {\r\n var _length = 0;\r\n var _maxLength = initialLength;\r\n var pool = createSizedArray(_maxLength);\r\n var ob = {\r\n newElement: newElement,\r\n release: release\r\n };\r\n\r\n function newElement() {\r\n var element;\r\n\r\n if (_length) {\r\n _length -= 1;\r\n element = pool[_length];\r\n } else {\r\n element = _create();\r\n }\r\n\r\n return element;\r\n }\r\n\r\n function release(element) {\r\n if (_length === _maxLength) {\r\n pool = pooling[\"double\"](pool);\r\n _maxLength *= 2;\r\n }\r\n\r\n if (_release) {\r\n _release(element);\r\n }\r\n\r\n pool[_length] = element;\r\n _length += 1;\r\n }\r\n\r\n return ob;\r\n };\r\n }();\r\n\r\n var bezierLengthPool = function () {\r\n function create() {\r\n return {\r\n addedLength: 0,\r\n percents: createTypedArray('float32', getDefaultCurveSegments()),\r\n lengths: createTypedArray('float32', getDefaultCurveSegments())\r\n };\r\n }\r\n\r\n return poolFactory(8, create);\r\n }();\r\n\r\n var segmentsLengthPool = function () {\r\n function create() {\r\n return {\r\n lengths: [],\r\n totalLength: 0\r\n };\r\n }\r\n\r\n function release(element) {\r\n var i;\r\n var len = element.lengths.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n bezierLengthPool.release(element.lengths[i]);\r\n }\r\n\r\n element.lengths.length = 0;\r\n }\r\n\r\n return poolFactory(8, create, release);\r\n }();\r\n\r\n function bezFunction() {\r\n var math = Math;\r\n\r\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\r\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\r\n return det1 > -0.001 && det1 < 0.001;\r\n }\r\n\r\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\r\n if (z1 === 0 && z2 === 0 && z3 === 0) {\r\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\r\n }\r\n\r\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\r\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\r\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\r\n var diffDist;\r\n\r\n if (dist1 > dist2) {\r\n if (dist1 > dist3) {\r\n diffDist = dist1 - dist2 - dist3;\r\n } else {\r\n diffDist = dist3 - dist2 - dist1;\r\n }\r\n } else if (dist3 > dist2) {\r\n diffDist = dist3 - dist2 - dist1;\r\n } else {\r\n diffDist = dist2 - dist1 - dist3;\r\n }\r\n\r\n return diffDist > -0.0001 && diffDist < 0.0001;\r\n }\r\n\r\n var getBezierLength = function () {\r\n return function (pt1, pt2, pt3, pt4) {\r\n var curveSegments = getDefaultCurveSegments();\r\n var k;\r\n var i;\r\n var len;\r\n var ptCoord;\r\n var perc;\r\n var addedLength = 0;\r\n var ptDistance;\r\n var point = [];\r\n var lastPoint = [];\r\n var lengthData = bezierLengthPool.newElement();\r\n len = pt3.length;\r\n\r\n for (k = 0; k < curveSegments; k += 1) {\r\n perc = k / (curveSegments - 1);\r\n ptDistance = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\r\n point[i] = ptCoord;\r\n\r\n if (lastPoint[i] !== null) {\r\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\r\n }\r\n\r\n lastPoint[i] = point[i];\r\n }\r\n\r\n if (ptDistance) {\r\n ptDistance = bmSqrt(ptDistance);\r\n addedLength += ptDistance;\r\n }\r\n\r\n lengthData.percents[k] = perc;\r\n lengthData.lengths[k] = addedLength;\r\n }\r\n\r\n lengthData.addedLength = addedLength;\r\n return lengthData;\r\n };\r\n }();\r\n\r\n function getSegmentsLength(shapeData) {\r\n var segmentsLength = segmentsLengthPool.newElement();\r\n var closed = shapeData.c;\r\n var pathV = shapeData.v;\r\n var pathO = shapeData.o;\r\n var pathI = shapeData.i;\r\n var i;\r\n var len = shapeData._length;\r\n var lengths = segmentsLength.lengths;\r\n var totalLength = 0;\r\n\r\n for (i = 0; i < len - 1; i += 1) {\r\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\r\n totalLength += lengths[i].addedLength;\r\n }\r\n\r\n if (closed && len) {\r\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\r\n totalLength += lengths[i].addedLength;\r\n }\r\n\r\n segmentsLength.totalLength = totalLength;\r\n return segmentsLength;\r\n }\r\n\r\n function BezierData(length) {\r\n this.segmentLength = 0;\r\n this.points = new Array(length);\r\n }\r\n\r\n function PointData(partial, point) {\r\n this.partialLength = partial;\r\n this.point = point;\r\n }\r\n\r\n var buildBezierData = function () {\r\n var storedData = {};\r\n return function (pt1, pt2, pt3, pt4) {\r\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\r\n\r\n if (!storedData[bezierName]) {\r\n var curveSegments = getDefaultCurveSegments();\r\n var k;\r\n var i;\r\n var len;\r\n var ptCoord;\r\n var perc;\r\n var addedLength = 0;\r\n var ptDistance;\r\n var point;\r\n var lastPoint = null;\r\n\r\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\r\n curveSegments = 2;\r\n }\r\n\r\n var bezierData = new BezierData(curveSegments);\r\n len = pt3.length;\r\n\r\n for (k = 0; k < curveSegments; k += 1) {\r\n point = createSizedArray(len);\r\n perc = k / (curveSegments - 1);\r\n ptDistance = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\r\n point[i] = ptCoord;\r\n\r\n if (lastPoint !== null) {\r\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\r\n }\r\n }\r\n\r\n ptDistance = bmSqrt(ptDistance);\r\n addedLength += ptDistance;\r\n bezierData.points[k] = new PointData(ptDistance, point);\r\n lastPoint = point;\r\n }\r\n\r\n bezierData.segmentLength = addedLength;\r\n storedData[bezierName] = bezierData;\r\n }\r\n\r\n return storedData[bezierName];\r\n };\r\n }();\r\n\r\n function getDistancePerc(perc, bezierData) {\r\n var percents = bezierData.percents;\r\n var lengths = bezierData.lengths;\r\n var len = percents.length;\r\n var initPos = bmFloor((len - 1) * perc);\r\n var lengthPos = perc * bezierData.addedLength;\r\n var lPerc = 0;\r\n\r\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\r\n return percents[initPos];\r\n }\r\n\r\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\r\n var flag = true;\r\n\r\n while (flag) {\r\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\r\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\r\n flag = false;\r\n } else {\r\n initPos += dir;\r\n }\r\n\r\n if (initPos < 0 || initPos >= len - 1) {\r\n // FIX for TypedArrays that don't store floating point values with enough accuracy\r\n if (initPos === len - 1) {\r\n return percents[initPos];\r\n }\r\n\r\n flag = false;\r\n }\r\n }\r\n\r\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\r\n }\r\n\r\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\r\n var t1 = getDistancePerc(percent, bezierData);\r\n var u1 = 1 - t1;\r\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\r\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\r\n return [ptX, ptY];\r\n }\r\n\r\n var bezierSegmentPoints = createTypedArray('float32', 8);\r\n\r\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\r\n if (startPerc < 0) {\r\n startPerc = 0;\r\n } else if (startPerc > 1) {\r\n startPerc = 1;\r\n }\r\n\r\n var t0 = getDistancePerc(startPerc, bezierData);\r\n endPerc = endPerc > 1 ? 1 : endPerc;\r\n var t1 = getDistancePerc(endPerc, bezierData);\r\n var i;\r\n var len = pt1.length;\r\n var u0 = 1 - t0;\r\n var u1 = 1 - t1;\r\n var u0u0u0 = u0 * u0 * u0;\r\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\r\n\r\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\r\n\r\n var t0t0t0 = t0 * t0 * t0; //\r\n\r\n var u0u0u1 = u0 * u0 * u1;\r\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\r\n\r\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\r\n\r\n var t0t0t1 = t0 * t0 * t1; //\r\n\r\n var u0u1u1 = u0 * u1 * u1;\r\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\r\n\r\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\r\n\r\n var t0t1t1 = t0 * t1 * t1; //\r\n\r\n var u1u1u1 = u1 * u1 * u1;\r\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\r\n\r\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\r\n\r\n var t1t1t1 = t1 * t1 * t1;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\r\n\r\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\r\n\r\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\r\n\r\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\r\n }\r\n\r\n return bezierSegmentPoints;\r\n }\r\n\r\n return {\r\n getSegmentsLength: getSegmentsLength,\r\n getNewSegment: getNewSegment,\r\n getPointInSegment: getPointInSegment,\r\n buildBezierData: buildBezierData,\r\n pointOnLine2D: pointOnLine2D,\r\n pointOnLine3D: pointOnLine3D\r\n };\r\n }\r\n\r\n var bez = bezFunction();\r\n\r\n var PropertyFactory = function () {\r\n var initFrame = initialDefaultFrame;\r\n var mathAbs = Math.abs;\r\n\r\n function interpolateValue(frameNum, caching) {\r\n var offsetTime = this.offsetTime;\r\n var newValue;\r\n\r\n if (this.propType === 'multidimensional') {\r\n newValue = createTypedArray('float32', this.pv.length);\r\n }\r\n\r\n var iterationIndex = caching.lastIndex;\r\n var i = iterationIndex;\r\n var len = this.keyframes.length - 1;\r\n var flag = true;\r\n var keyData;\r\n var nextKeyData;\r\n var keyframeMetadata;\r\n\r\n while (flag) {\r\n keyData = this.keyframes[i];\r\n nextKeyData = this.keyframes[i + 1];\r\n\r\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\r\n if (keyData.h) {\r\n keyData = nextKeyData;\r\n }\r\n\r\n iterationIndex = 0;\r\n break;\r\n }\r\n\r\n if (nextKeyData.t - offsetTime > frameNum) {\r\n iterationIndex = i;\r\n break;\r\n }\r\n\r\n if (i < len - 1) {\r\n i += 1;\r\n } else {\r\n iterationIndex = 0;\r\n flag = false;\r\n }\r\n }\r\n\r\n keyframeMetadata = this.keyframesMetadata[i] || {};\r\n var k;\r\n var kLen;\r\n var perc;\r\n var jLen;\r\n var j;\r\n var fnc;\r\n var nextKeyTime = nextKeyData.t - offsetTime;\r\n var keyTime = keyData.t - offsetTime;\r\n var endValue;\r\n\r\n if (keyData.to) {\r\n if (!keyframeMetadata.bezierData) {\r\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\r\n }\r\n\r\n var bezierData = keyframeMetadata.bezierData;\r\n\r\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\r\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\r\n kLen = bezierData.points[ind].point.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[ind].point[k];\r\n } // caching._lastKeyframeIndex = -1;\r\n\r\n } else {\r\n if (keyframeMetadata.__fnct) {\r\n fnc = keyframeMetadata.__fnct;\r\n } else {\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\r\n keyframeMetadata.__fnct = fnc;\r\n }\r\n\r\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\r\n var distanceInLine = bezierData.segmentLength * perc;\r\n var segmentPerc;\r\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\r\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\r\n flag = true;\r\n jLen = bezierData.points.length;\r\n\r\n while (flag) {\r\n addedLength += bezierData.points[j].partialLength;\r\n\r\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\r\n kLen = bezierData.points[j].point.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[j].point[k];\r\n }\r\n\r\n break;\r\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\r\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\r\n kLen = bezierData.points[j].point.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\r\n }\r\n\r\n break;\r\n }\r\n\r\n if (j < jLen - 1) {\r\n j += 1;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n\r\n caching._lastPoint = j;\r\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\r\n caching._lastKeyframeIndex = i;\r\n }\r\n } else {\r\n var outX;\r\n var outY;\r\n var inX;\r\n var inY;\r\n var keyValue;\r\n len = keyData.s.length;\r\n endValue = nextKeyData.s || keyData.e;\r\n\r\n if (this.sh && keyData.h !== 1) {\r\n if (frameNum >= nextKeyTime) {\r\n newValue[0] = endValue[0];\r\n newValue[1] = endValue[1];\r\n newValue[2] = endValue[2];\r\n } else if (frameNum <= keyTime) {\r\n newValue[0] = keyData.s[0];\r\n newValue[1] = keyData.s[1];\r\n newValue[2] = keyData.s[2];\r\n } else {\r\n var quatStart = createQuaternion(keyData.s);\r\n var quatEnd = createQuaternion(endValue);\r\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\r\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\r\n }\r\n } else {\r\n for (i = 0; i < len; i += 1) {\r\n if (keyData.h !== 1) {\r\n if (frameNum >= nextKeyTime) {\r\n perc = 1;\r\n } else if (frameNum < keyTime) {\r\n perc = 0;\r\n } else {\r\n if (keyData.o.x.constructor === Array) {\r\n if (!keyframeMetadata.__fnct) {\r\n keyframeMetadata.__fnct = [];\r\n }\r\n\r\n if (!keyframeMetadata.__fnct[i]) {\r\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\r\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\r\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\r\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\r\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\r\n keyframeMetadata.__fnct[i] = fnc;\r\n } else {\r\n fnc = keyframeMetadata.__fnct[i];\r\n }\r\n } else if (!keyframeMetadata.__fnct) {\r\n outX = keyData.o.x;\r\n outY = keyData.o.y;\r\n inX = keyData.i.x;\r\n inY = keyData.i.y;\r\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\r\n keyData.keyframeMetadata = fnc;\r\n } else {\r\n fnc = keyframeMetadata.__fnct;\r\n }\r\n\r\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\r\n }\r\n }\r\n\r\n endValue = nextKeyData.s || keyData.e;\r\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\r\n\r\n if (this.propType === 'multidimensional') {\r\n newValue[i] = keyValue;\r\n } else {\r\n newValue = keyValue;\r\n }\r\n }\r\n }\r\n }\r\n\r\n caching.lastIndex = iterationIndex;\r\n return newValue;\r\n } // based on @Toji's https://github.com/toji/gl-matrix/\r\n\r\n\r\n function slerp(a, b, t) {\r\n var out = [];\r\n var ax = a[0];\r\n var ay = a[1];\r\n var az = a[2];\r\n var aw = a[3];\r\n var bx = b[0];\r\n var by = b[1];\r\n var bz = b[2];\r\n var bw = b[3];\r\n var omega;\r\n var cosom;\r\n var sinom;\r\n var scale0;\r\n var scale1;\r\n cosom = ax * bx + ay * by + az * bz + aw * bw;\r\n\r\n if (cosom < 0.0) {\r\n cosom = -cosom;\r\n bx = -bx;\r\n by = -by;\r\n bz = -bz;\r\n bw = -bw;\r\n }\r\n\r\n if (1.0 - cosom > 0.000001) {\r\n omega = Math.acos(cosom);\r\n sinom = Math.sin(omega);\r\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\r\n scale1 = Math.sin(t * omega) / sinom;\r\n } else {\r\n scale0 = 1.0 - t;\r\n scale1 = t;\r\n }\r\n\r\n out[0] = scale0 * ax + scale1 * bx;\r\n out[1] = scale0 * ay + scale1 * by;\r\n out[2] = scale0 * az + scale1 * bz;\r\n out[3] = scale0 * aw + scale1 * bw;\r\n return out;\r\n }\r\n\r\n function quaternionToEuler(out, quat) {\r\n var qx = quat[0];\r\n var qy = quat[1];\r\n var qz = quat[2];\r\n var qw = quat[3];\r\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\r\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\r\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\r\n out[0] = heading / degToRads;\r\n out[1] = attitude / degToRads;\r\n out[2] = bank / degToRads;\r\n }\r\n\r\n function createQuaternion(values) {\r\n var heading = values[0] * degToRads;\r\n var attitude = values[1] * degToRads;\r\n var bank = values[2] * degToRads;\r\n var c1 = Math.cos(heading / 2);\r\n var c2 = Math.cos(attitude / 2);\r\n var c3 = Math.cos(bank / 2);\r\n var s1 = Math.sin(heading / 2);\r\n var s2 = Math.sin(attitude / 2);\r\n var s3 = Math.sin(bank / 2);\r\n var w = c1 * c2 * c3 - s1 * s2 * s3;\r\n var x = s1 * s2 * c3 + c1 * c2 * s3;\r\n var y = s1 * c2 * c3 + c1 * s2 * s3;\r\n var z = c1 * s2 * c3 - s1 * c2 * s3;\r\n return [x, y, z, w];\r\n }\r\n\r\n function getValueAtCurrentTime() {\r\n var frameNum = this.comp.renderedFrame - this.offsetTime;\r\n var initTime = this.keyframes[0].t - this.offsetTime;\r\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\r\n\r\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\r\n if (this._caching.lastFrame >= frameNum) {\r\n this._caching._lastKeyframeIndex = -1;\r\n this._caching.lastIndex = 0;\r\n }\r\n\r\n var renderResult = this.interpolateValue(frameNum, this._caching);\r\n this.pv = renderResult;\r\n }\r\n\r\n this._caching.lastFrame = frameNum;\r\n return this.pv;\r\n }\r\n\r\n function setVValue(val) {\r\n var multipliedValue;\r\n\r\n if (this.propType === 'unidimensional') {\r\n multipliedValue = val * this.mult;\r\n\r\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\r\n this.v = multipliedValue;\r\n this._mdf = true;\r\n }\r\n } else {\r\n var i = 0;\r\n var len = this.v.length;\r\n\r\n while (i < len) {\r\n multipliedValue = val[i] * this.mult;\r\n\r\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\r\n this.v[i] = multipliedValue;\r\n this._mdf = true;\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n }\r\n\r\n function processEffectsSequence() {\r\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\r\n return;\r\n }\r\n\r\n if (this.lock) {\r\n this.setVValue(this.pv);\r\n return;\r\n }\r\n\r\n this.lock = true;\r\n this._mdf = this._isFirstFrame;\r\n var i;\r\n var len = this.effectsSequence.length;\r\n var finalValue = this.kf ? this.pv : this.data.k;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n finalValue = this.effectsSequence[i](finalValue);\r\n }\r\n\r\n this.setVValue(finalValue);\r\n this._isFirstFrame = false;\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function addEffect(effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.container.addDynamicProperty(this);\r\n }\r\n\r\n function ValueProperty(elem, data, mult, container) {\r\n this.propType = 'unidimensional';\r\n this.mult = mult || 1;\r\n this.data = data;\r\n this.v = mult ? data.k * mult : data.k;\r\n this.pv = data.k;\r\n this._mdf = false;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.k = false;\r\n this.kf = false;\r\n this.vel = 0;\r\n this.effectsSequence = [];\r\n this._isFirstFrame = true;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function MultiDimensionalProperty(elem, data, mult, container) {\r\n this.propType = 'multidimensional';\r\n this.mult = mult || 1;\r\n this.data = data;\r\n this._mdf = false;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.k = false;\r\n this.kf = false;\r\n this.frameId = -1;\r\n var i;\r\n var len = data.k.length;\r\n this.v = createTypedArray('float32', len);\r\n this.pv = createTypedArray('float32', len);\r\n this.vel = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.v[i] = data.k[i] * this.mult;\r\n this.pv[i] = data.k[i];\r\n }\r\n\r\n this._isFirstFrame = true;\r\n this.effectsSequence = [];\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function KeyframedValueProperty(elem, data, mult, container) {\r\n this.propType = 'unidimensional';\r\n this.keyframes = data.k;\r\n this.keyframesMetadata = [];\r\n this.offsetTime = elem.data.st;\r\n this.frameId = -1;\r\n this._caching = {\r\n lastFrame: initFrame,\r\n lastIndex: 0,\r\n value: 0,\r\n _lastKeyframeIndex: -1\r\n };\r\n this.k = true;\r\n this.kf = true;\r\n this.data = data;\r\n this.mult = mult || 1;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.v = initFrame;\r\n this.pv = initFrame;\r\n this._isFirstFrame = true;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.interpolateValue = interpolateValue;\r\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\r\n this.propType = 'multidimensional';\r\n var i;\r\n var len = data.k.length;\r\n var s;\r\n var e;\r\n var to;\r\n var ti;\r\n\r\n for (i = 0; i < len - 1; i += 1) {\r\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\r\n s = data.k[i].s;\r\n e = data.k[i + 1].s;\r\n to = data.k[i].to;\r\n ti = data.k[i].ti;\r\n\r\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\r\n data.k[i].to = null;\r\n data.k[i].ti = null;\r\n }\r\n\r\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\r\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\r\n data.k[i].to = null;\r\n data.k[i].ti = null;\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\r\n this.data = data;\r\n this.keyframes = data.k;\r\n this.keyframesMetadata = [];\r\n this.offsetTime = elem.data.st;\r\n this.k = true;\r\n this.kf = true;\r\n this._isFirstFrame = true;\r\n this.mult = mult || 1;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.interpolateValue = interpolateValue;\r\n this.frameId = -1;\r\n var arrLen = data.k[0].s.length;\r\n this.v = createTypedArray('float32', arrLen);\r\n this.pv = createTypedArray('float32', arrLen);\r\n\r\n for (i = 0; i < arrLen; i += 1) {\r\n this.v[i] = initFrame;\r\n this.pv[i] = initFrame;\r\n }\r\n\r\n this._caching = {\r\n lastFrame: initFrame,\r\n lastIndex: 0,\r\n value: createTypedArray('float32', arrLen)\r\n };\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function getProp(elem, data, type, mult, container) {\r\n var p;\r\n\r\n if (!data.k.length) {\r\n p = new ValueProperty(elem, data, mult, container);\r\n } else if (typeof data.k[0] === 'number') {\r\n p = new MultiDimensionalProperty(elem, data, mult, container);\r\n } else {\r\n switch (type) {\r\n case 0:\r\n p = new KeyframedValueProperty(elem, data, mult, container);\r\n break;\r\n\r\n case 1:\r\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n if (p.effectsSequence.length) {\r\n container.addDynamicProperty(p);\r\n }\r\n\r\n return p;\r\n }\r\n\r\n var ob = {\r\n getProp: getProp\r\n };\r\n return ob;\r\n }();\r\n\r\n function DynamicPropertyContainer() {}\r\n\r\n DynamicPropertyContainer.prototype = {\r\n addDynamicProperty: function addDynamicProperty(prop) {\r\n if (this.dynamicProperties.indexOf(prop) === -1) {\r\n this.dynamicProperties.push(prop);\r\n this.container.addDynamicProperty(this);\r\n this._isAnimated = true;\r\n }\r\n },\r\n iterateDynamicProperties: function iterateDynamicProperties() {\r\n this._mdf = false;\r\n var i;\r\n var len = this.dynamicProperties.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n\r\n if (this.dynamicProperties[i]._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n },\r\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\r\n this.container = container;\r\n this.dynamicProperties = [];\r\n this._mdf = false;\r\n this._isAnimated = false;\r\n }\r\n };\r\n\r\n var pointPool = function () {\r\n function create() {\r\n return createTypedArray('float32', 2);\r\n }\r\n\r\n return poolFactory(8, create);\r\n }();\r\n\r\n function ShapePath() {\r\n this.c = false;\r\n this._length = 0;\r\n this._maxLength = 8;\r\n this.v = createSizedArray(this._maxLength);\r\n this.o = createSizedArray(this._maxLength);\r\n this.i = createSizedArray(this._maxLength);\r\n }\r\n\r\n ShapePath.prototype.setPathData = function (closed, len) {\r\n this.c = closed;\r\n this.setLength(len);\r\n var i = 0;\r\n\r\n while (i < len) {\r\n this.v[i] = pointPool.newElement();\r\n this.o[i] = pointPool.newElement();\r\n this.i[i] = pointPool.newElement();\r\n i += 1;\r\n }\r\n };\r\n\r\n ShapePath.prototype.setLength = function (len) {\r\n while (this._maxLength < len) {\r\n this.doubleArrayLength();\r\n }\r\n\r\n this._length = len;\r\n };\r\n\r\n ShapePath.prototype.doubleArrayLength = function () {\r\n this.v = this.v.concat(createSizedArray(this._maxLength));\r\n this.i = this.i.concat(createSizedArray(this._maxLength));\r\n this.o = this.o.concat(createSizedArray(this._maxLength));\r\n this._maxLength *= 2;\r\n };\r\n\r\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\r\n var arr;\r\n this._length = Math.max(this._length, pos + 1);\r\n\r\n if (this._length >= this._maxLength) {\r\n this.doubleArrayLength();\r\n }\r\n\r\n switch (type) {\r\n case 'v':\r\n arr = this.v;\r\n break;\r\n\r\n case 'i':\r\n arr = this.i;\r\n break;\r\n\r\n case 'o':\r\n arr = this.o;\r\n break;\r\n\r\n default:\r\n arr = [];\r\n break;\r\n }\r\n\r\n if (!arr[pos] || arr[pos] && !replace) {\r\n arr[pos] = pointPool.newElement();\r\n }\r\n\r\n arr[pos][0] = x;\r\n arr[pos][1] = y;\r\n };\r\n\r\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\r\n this.setXYAt(vX, vY, 'v', pos, replace);\r\n this.setXYAt(oX, oY, 'o', pos, replace);\r\n this.setXYAt(iX, iY, 'i', pos, replace);\r\n };\r\n\r\n ShapePath.prototype.reverse = function () {\r\n var newPath = new ShapePath();\r\n newPath.setPathData(this.c, this._length);\r\n var vertices = this.v;\r\n var outPoints = this.o;\r\n var inPoints = this.i;\r\n var init = 0;\r\n\r\n if (this.c) {\r\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\r\n init = 1;\r\n }\r\n\r\n var cnt = this._length - 1;\r\n var len = this._length;\r\n var i;\r\n\r\n for (i = init; i < len; i += 1) {\r\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\r\n cnt -= 1;\r\n }\r\n\r\n return newPath;\r\n };\r\n\r\n ShapePath.prototype.length = function () {\r\n return this._length;\r\n };\r\n\r\n var shapePool = function () {\r\n function create() {\r\n return new ShapePath();\r\n }\r\n\r\n function release(shapePath) {\r\n var len = shapePath._length;\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n pointPool.release(shapePath.v[i]);\r\n pointPool.release(shapePath.i[i]);\r\n pointPool.release(shapePath.o[i]);\r\n shapePath.v[i] = null;\r\n shapePath.i[i] = null;\r\n shapePath.o[i] = null;\r\n }\r\n\r\n shapePath._length = 0;\r\n shapePath.c = false;\r\n }\r\n\r\n function clone(shape) {\r\n var cloned = factory.newElement();\r\n var i;\r\n var len = shape._length === undefined ? shape.v.length : shape._length;\r\n cloned.setLength(len);\r\n cloned.c = shape.c;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\r\n }\r\n\r\n return cloned;\r\n }\r\n\r\n var factory = poolFactory(4, create, release);\r\n factory.clone = clone;\r\n return factory;\r\n }();\r\n\r\n function ShapeCollection() {\r\n this._length = 0;\r\n this._maxLength = 4;\r\n this.shapes = createSizedArray(this._maxLength);\r\n }\r\n\r\n ShapeCollection.prototype.addShape = function (shapeData) {\r\n if (this._length === this._maxLength) {\r\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\r\n this._maxLength *= 2;\r\n }\r\n\r\n this.shapes[this._length] = shapeData;\r\n this._length += 1;\r\n };\r\n\r\n ShapeCollection.prototype.releaseShapes = function () {\r\n var i;\r\n\r\n for (i = 0; i < this._length; i += 1) {\r\n shapePool.release(this.shapes[i]);\r\n }\r\n\r\n this._length = 0;\r\n };\r\n\r\n var shapeCollectionPool = function () {\r\n var ob = {\r\n newShapeCollection: newShapeCollection,\r\n release: release\r\n };\r\n var _length = 0;\r\n var _maxLength = 4;\r\n var pool = createSizedArray(_maxLength);\r\n\r\n function newShapeCollection() {\r\n var shapeCollection;\r\n\r\n if (_length) {\r\n _length -= 1;\r\n shapeCollection = pool[_length];\r\n } else {\r\n shapeCollection = new ShapeCollection();\r\n }\r\n\r\n return shapeCollection;\r\n }\r\n\r\n function release(shapeCollection) {\r\n var i;\r\n var len = shapeCollection._length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapePool.release(shapeCollection.shapes[i]);\r\n }\r\n\r\n shapeCollection._length = 0;\r\n\r\n if (_length === _maxLength) {\r\n pool = pooling[\"double\"](pool);\r\n _maxLength *= 2;\r\n }\r\n\r\n pool[_length] = shapeCollection;\r\n _length += 1;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var ShapePropertyFactory = function () {\r\n var initFrame = -999999;\r\n\r\n function interpolateShape(frameNum, previousValue, caching) {\r\n var iterationIndex = caching.lastIndex;\r\n var keyPropS;\r\n var keyPropE;\r\n var isHold;\r\n var j;\r\n var k;\r\n var jLen;\r\n var kLen;\r\n var perc;\r\n var vertexValue;\r\n var kf = this.keyframes;\r\n\r\n if (frameNum < kf[0].t - this.offsetTime) {\r\n keyPropS = kf[0].s[0];\r\n isHold = true;\r\n iterationIndex = 0;\r\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\r\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\r\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\r\n\r\n isHold = true;\r\n } else {\r\n var i = iterationIndex;\r\n var len = kf.length - 1;\r\n var flag = true;\r\n var keyData;\r\n var nextKeyData;\r\n var keyframeMetadata;\r\n\r\n while (flag) {\r\n keyData = kf[i];\r\n nextKeyData = kf[i + 1];\r\n\r\n if (nextKeyData.t - this.offsetTime > frameNum) {\r\n break;\r\n }\r\n\r\n if (i < len - 1) {\r\n i += 1;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n\r\n keyframeMetadata = this.keyframesMetadata[i] || {};\r\n isHold = keyData.h === 1;\r\n iterationIndex = i;\r\n\r\n if (!isHold) {\r\n if (frameNum >= nextKeyData.t - this.offsetTime) {\r\n perc = 1;\r\n } else if (frameNum < keyData.t - this.offsetTime) {\r\n perc = 0;\r\n } else {\r\n var fnc;\r\n\r\n if (keyframeMetadata.__fnct) {\r\n fnc = keyframeMetadata.__fnct;\r\n } else {\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\r\n keyframeMetadata.__fnct = fnc;\r\n }\r\n\r\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\r\n }\r\n\r\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\r\n }\r\n\r\n keyPropS = keyData.s[0];\r\n }\r\n\r\n jLen = previousValue._length;\r\n kLen = keyPropS.i[0].length;\r\n caching.lastIndex = iterationIndex;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n for (k = 0; k < kLen; k += 1) {\r\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\r\n previousValue.i[j][k] = vertexValue;\r\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\r\n previousValue.o[j][k] = vertexValue;\r\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\r\n previousValue.v[j][k] = vertexValue;\r\n }\r\n }\r\n }\r\n\r\n function interpolateShapeCurrentTime() {\r\n var frameNum = this.comp.renderedFrame - this.offsetTime;\r\n var initTime = this.keyframes[0].t - this.offsetTime;\r\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\r\n var lastFrame = this._caching.lastFrame;\r\n\r\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\r\n /// /\r\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\r\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\r\n }\r\n\r\n this._caching.lastFrame = frameNum;\r\n return this.pv;\r\n }\r\n\r\n function resetShape() {\r\n this.paths = this.localShapeCollection;\r\n }\r\n\r\n function shapesEqual(shape1, shape2) {\r\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\r\n return false;\r\n }\r\n\r\n var i;\r\n var len = shape1._length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function setVValue(newPath) {\r\n if (!shapesEqual(this.v, newPath)) {\r\n this.v = shapePool.clone(newPath);\r\n this.localShapeCollection.releaseShapes();\r\n this.localShapeCollection.addShape(this.v);\r\n this._mdf = true;\r\n this.paths = this.localShapeCollection;\r\n }\r\n }\r\n\r\n function processEffectsSequence() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n if (!this.effectsSequence.length) {\r\n this._mdf = false;\r\n return;\r\n }\r\n\r\n if (this.lock) {\r\n this.setVValue(this.pv);\r\n return;\r\n }\r\n\r\n this.lock = true;\r\n this._mdf = false;\r\n var finalValue;\r\n\r\n if (this.kf) {\r\n finalValue = this.pv;\r\n } else if (this.data.ks) {\r\n finalValue = this.data.ks.k;\r\n } else {\r\n finalValue = this.data.pt.k;\r\n }\r\n\r\n var i;\r\n var len = this.effectsSequence.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n finalValue = this.effectsSequence[i](finalValue);\r\n }\r\n\r\n this.setVValue(finalValue);\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function ShapeProperty(elem, data, type) {\r\n this.propType = 'shape';\r\n this.comp = elem.comp;\r\n this.container = elem;\r\n this.elem = elem;\r\n this.data = data;\r\n this.k = false;\r\n this.kf = false;\r\n this._mdf = false;\r\n var pathData = type === 3 ? data.pt.k : data.ks.k;\r\n this.v = shapePool.clone(pathData);\r\n this.pv = shapePool.clone(this.v);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.reset = resetShape;\r\n this.effectsSequence = [];\r\n }\r\n\r\n function addEffect(effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.container.addDynamicProperty(this);\r\n }\r\n\r\n ShapeProperty.prototype.interpolateShape = interpolateShape;\r\n ShapeProperty.prototype.getValue = processEffectsSequence;\r\n ShapeProperty.prototype.setVValue = setVValue;\r\n ShapeProperty.prototype.addEffect = addEffect;\r\n\r\n function KeyframedShapeProperty(elem, data, type) {\r\n this.propType = 'shape';\r\n this.comp = elem.comp;\r\n this.elem = elem;\r\n this.container = elem;\r\n this.offsetTime = elem.data.st;\r\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\r\n this.keyframesMetadata = [];\r\n this.k = true;\r\n this.kf = true;\r\n var len = this.keyframes[0].s[0].i.length;\r\n this.v = shapePool.newElement();\r\n this.v.setPathData(this.keyframes[0].s[0].c, len);\r\n this.pv = shapePool.clone(this.v);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.lastFrame = initFrame;\r\n this.reset = resetShape;\r\n this._caching = {\r\n lastFrame: initFrame,\r\n lastIndex: 0\r\n };\r\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\r\n }\r\n\r\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\r\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\r\n KeyframedShapeProperty.prototype.setVValue = setVValue;\r\n KeyframedShapeProperty.prototype.addEffect = addEffect;\r\n\r\n var EllShapeProperty = function () {\r\n var cPoint = roundCorner;\r\n\r\n function EllShapePropertyFactory(elem, data) {\r\n this.v = shapePool.newElement();\r\n this.v.setPathData(true, 4);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.localShapeCollection.addShape(this.v);\r\n this.d = data.d;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.frameId = -1;\r\n this.initDynamicPropertyContainer(elem);\r\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\r\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\r\n\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.k = false;\r\n this.convertEllToPath();\r\n }\r\n }\r\n\r\n EllShapePropertyFactory.prototype = {\r\n reset: resetShape,\r\n getValue: function getValue() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf) {\r\n this.convertEllToPath();\r\n }\r\n },\r\n convertEllToPath: function convertEllToPath() {\r\n var p0 = this.p.v[0];\r\n var p1 = this.p.v[1];\r\n var s0 = this.s.v[0] / 2;\r\n var s1 = this.s.v[1] / 2;\r\n\r\n var _cw = this.d !== 3;\r\n\r\n var _v = this.v;\r\n _v.v[0][0] = p0;\r\n _v.v[0][1] = p1 - s1;\r\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.v[1][1] = p1;\r\n _v.v[2][0] = p0;\r\n _v.v[2][1] = p1 + s1;\r\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.v[3][1] = p1;\r\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\r\n _v.i[0][1] = p1 - s1;\r\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.i[1][1] = p1 - s1 * cPoint;\r\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\r\n _v.i[2][1] = p1 + s1;\r\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.i[3][1] = p1 + s1 * cPoint;\r\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\r\n _v.o[0][1] = p1 - s1;\r\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.o[1][1] = p1 + s1 * cPoint;\r\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\r\n _v.o[2][1] = p1 + s1;\r\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.o[3][1] = p1 - s1 * cPoint;\r\n }\r\n };\r\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\r\n return EllShapePropertyFactory;\r\n }();\r\n\r\n var StarShapeProperty = function () {\r\n function StarShapePropertyFactory(elem, data) {\r\n this.v = shapePool.newElement();\r\n this.v.setPathData(true, 0);\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.data = data;\r\n this.frameId = -1;\r\n this.d = data.d;\r\n this.initDynamicPropertyContainer(elem);\r\n\r\n if (data.sy === 1) {\r\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\r\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\r\n this.convertToPath = this.convertStarToPath;\r\n } else {\r\n this.convertToPath = this.convertPolygonToPath;\r\n }\r\n\r\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\r\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\r\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\r\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\r\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.localShapeCollection.addShape(this.v);\r\n this.paths = this.localShapeCollection;\r\n\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.k = false;\r\n this.convertToPath();\r\n }\r\n }\r\n\r\n StarShapePropertyFactory.prototype = {\r\n reset: resetShape,\r\n getValue: function getValue() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf) {\r\n this.convertToPath();\r\n }\r\n },\r\n convertStarToPath: function convertStarToPath() {\r\n var numPts = Math.floor(this.pt.v) * 2;\r\n var angle = Math.PI * 2 / numPts;\r\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\r\n\r\n var longFlag = true;\r\n var longRad = this.or.v;\r\n var shortRad = this.ir.v;\r\n var longRound = this.os.v;\r\n var shortRound = this.is.v;\r\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\r\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\r\n var i;\r\n var rad;\r\n var roundness;\r\n var perimSegment;\r\n var currentAng = -Math.PI / 2;\r\n currentAng += this.r.v;\r\n var dir = this.data.d === 3 ? -1 : 1;\r\n this.v._length = 0;\r\n\r\n for (i = 0; i < numPts; i += 1) {\r\n rad = longFlag ? longRad : shortRad;\r\n roundness = longFlag ? longRound : shortRound;\r\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\r\n var x = rad * Math.cos(currentAng);\r\n var y = rad * Math.sin(currentAng);\r\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\r\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\r\n x += +this.p.v[0];\r\n y += +this.p.v[1];\r\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\r\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\r\n\r\n longFlag = !longFlag;\r\n currentAng += angle * dir;\r\n }\r\n },\r\n convertPolygonToPath: function convertPolygonToPath() {\r\n var numPts = Math.floor(this.pt.v);\r\n var angle = Math.PI * 2 / numPts;\r\n var rad = this.or.v;\r\n var roundness = this.os.v;\r\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\r\n var i;\r\n var currentAng = -Math.PI * 0.5;\r\n var dir = this.data.d === 3 ? -1 : 1;\r\n currentAng += this.r.v;\r\n this.v._length = 0;\r\n\r\n for (i = 0; i < numPts; i += 1) {\r\n var x = rad * Math.cos(currentAng);\r\n var y = rad * Math.sin(currentAng);\r\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\r\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\r\n x += +this.p.v[0];\r\n y += +this.p.v[1];\r\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\r\n currentAng += angle * dir;\r\n }\r\n\r\n this.paths.length = 0;\r\n this.paths[0] = this.v;\r\n }\r\n };\r\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\r\n return StarShapePropertyFactory;\r\n }();\r\n\r\n var RectShapeProperty = function () {\r\n function RectShapePropertyFactory(elem, data) {\r\n this.v = shapePool.newElement();\r\n this.v.c = true;\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.localShapeCollection.addShape(this.v);\r\n this.paths = this.localShapeCollection;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.frameId = -1;\r\n this.d = data.d;\r\n this.initDynamicPropertyContainer(elem);\r\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\r\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\r\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\r\n\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.k = false;\r\n this.convertRectToPath();\r\n }\r\n }\r\n\r\n RectShapePropertyFactory.prototype = {\r\n convertRectToPath: function convertRectToPath() {\r\n var p0 = this.p.v[0];\r\n var p1 = this.p.v[1];\r\n var v0 = this.s.v[0] / 2;\r\n var v1 = this.s.v[1] / 2;\r\n var round = bmMin(v0, v1, this.r.v);\r\n var cPoint = round * (1 - roundCorner);\r\n this.v._length = 0;\r\n\r\n if (this.d === 2 || this.d === 1) {\r\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\r\n\r\n if (round !== 0) {\r\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\r\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\r\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\r\n } else {\r\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\r\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\r\n }\r\n } else {\r\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\r\n\r\n if (round !== 0) {\r\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\r\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\r\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\r\n } else {\r\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\r\n }\r\n }\r\n },\r\n getValue: function getValue() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf) {\r\n this.convertRectToPath();\r\n }\r\n },\r\n reset: resetShape\r\n };\r\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\r\n return RectShapePropertyFactory;\r\n }();\r\n\r\n function getShapeProp(elem, data, type) {\r\n var prop;\r\n\r\n if (type === 3 || type === 4) {\r\n var dataProp = type === 3 ? data.pt : data.ks;\r\n var keys = dataProp.k;\r\n\r\n if (keys.length) {\r\n prop = new KeyframedShapeProperty(elem, data, type);\r\n } else {\r\n prop = new ShapeProperty(elem, data, type);\r\n }\r\n } else if (type === 5) {\r\n prop = new RectShapeProperty(elem, data);\r\n } else if (type === 6) {\r\n prop = new EllShapeProperty(elem, data);\r\n } else if (type === 7) {\r\n prop = new StarShapeProperty(elem, data);\r\n }\r\n\r\n if (prop.k) {\r\n elem.addDynamicProperty(prop);\r\n }\r\n\r\n return prop;\r\n }\r\n\r\n function getConstructorFunction() {\r\n return ShapeProperty;\r\n }\r\n\r\n function getKeyframedConstructorFunction() {\r\n return KeyframedShapeProperty;\r\n }\r\n\r\n var ob = {};\r\n ob.getShapeProp = getShapeProp;\r\n ob.getConstructorFunction = getConstructorFunction;\r\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\r\n return ob;\r\n }();\r\n\r\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\r\n\r\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\r\n\r\n var Matrix = function () {\r\n var _cos = Math.cos;\r\n var _sin = Math.sin;\r\n var _tan = Math.tan;\r\n var _rnd = Math.round;\r\n\r\n function reset() {\r\n this.props[0] = 1;\r\n this.props[1] = 0;\r\n this.props[2] = 0;\r\n this.props[3] = 0;\r\n this.props[4] = 0;\r\n this.props[5] = 1;\r\n this.props[6] = 0;\r\n this.props[7] = 0;\r\n this.props[8] = 0;\r\n this.props[9] = 0;\r\n this.props[10] = 1;\r\n this.props[11] = 0;\r\n this.props[12] = 0;\r\n this.props[13] = 0;\r\n this.props[14] = 0;\r\n this.props[15] = 1;\r\n return this;\r\n }\r\n\r\n function rotate(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateX(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateY(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateZ(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function shear(sx, sy) {\r\n return this._t(1, sy, sx, 1, 0, 0);\r\n }\r\n\r\n function skew(ax, ay) {\r\n return this.shear(_tan(ax), _tan(ay));\r\n }\r\n\r\n function skewFromAxis(ax, angle) {\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\r\n }\r\n\r\n function scale(sx, sy, sz) {\r\n if (!sz && sz !== 0) {\r\n sz = 1;\r\n }\r\n\r\n if (sx === 1 && sy === 1 && sz === 1) {\r\n return this;\r\n }\r\n\r\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\r\n this.props[0] = a;\r\n this.props[1] = b;\r\n this.props[2] = c;\r\n this.props[3] = d;\r\n this.props[4] = e;\r\n this.props[5] = f;\r\n this.props[6] = g;\r\n this.props[7] = h;\r\n this.props[8] = i;\r\n this.props[9] = j;\r\n this.props[10] = k;\r\n this.props[11] = l;\r\n this.props[12] = m;\r\n this.props[13] = n;\r\n this.props[14] = o;\r\n this.props[15] = p;\r\n return this;\r\n }\r\n\r\n function translate(tx, ty, tz) {\r\n tz = tz || 0;\r\n\r\n if (tx !== 0 || ty !== 0 || tz !== 0) {\r\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\r\n var _p = this.props;\r\n\r\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\r\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\r\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\r\n _p[12] = _p[12] * a2 + _p[15] * m2;\r\n _p[13] = _p[13] * f2 + _p[15] * n2;\r\n _p[14] = _p[14] * k2 + _p[15] * o2;\r\n _p[15] *= p2; // }\r\n\r\n this._identityCalculated = false;\r\n return this;\r\n }\r\n\r\n var a1 = _p[0];\r\n var b1 = _p[1];\r\n var c1 = _p[2];\r\n var d1 = _p[3];\r\n var e1 = _p[4];\r\n var f1 = _p[5];\r\n var g1 = _p[6];\r\n var h1 = _p[7];\r\n var i1 = _p[8];\r\n var j1 = _p[9];\r\n var k1 = _p[10];\r\n var l1 = _p[11];\r\n var m1 = _p[12];\r\n var n1 = _p[13];\r\n var o1 = _p[14];\r\n var p1 = _p[15];\r\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\r\n\r\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\r\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\r\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\r\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\r\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\r\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\r\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\r\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\r\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\r\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\r\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\r\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\r\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\r\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\r\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\r\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\r\n this._identityCalculated = false;\r\n return this;\r\n }\r\n\r\n function isIdentity() {\r\n if (!this._identityCalculated) {\r\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\r\n this._identityCalculated = true;\r\n }\r\n\r\n return this._identity;\r\n }\r\n\r\n function equals(matr) {\r\n var i = 0;\r\n\r\n while (i < 16) {\r\n if (matr.props[i] !== this.props[i]) {\r\n return false;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function clone(matr) {\r\n var i;\r\n\r\n for (i = 0; i < 16; i += 1) {\r\n matr.props[i] = this.props[i];\r\n }\r\n\r\n return matr;\r\n }\r\n\r\n function cloneFromProps(props) {\r\n var i;\r\n\r\n for (i = 0; i < 16; i += 1) {\r\n this.props[i] = props[i];\r\n }\r\n }\r\n\r\n function applyToPoint(x, y, z) {\r\n return {\r\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\r\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\r\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\r\n };\r\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\r\n }\r\n\r\n function applyToX(x, y, z) {\r\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\r\n }\r\n\r\n function applyToY(x, y, z) {\r\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\r\n }\r\n\r\n function applyToZ(x, y, z) {\r\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\r\n }\r\n\r\n function getInverseMatrix() {\r\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\r\n var a = this.props[5] / determinant;\r\n var b = -this.props[1] / determinant;\r\n var c = -this.props[4] / determinant;\r\n var d = this.props[0] / determinant;\r\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\r\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\r\n var inverseMatrix = new Matrix();\r\n inverseMatrix.props[0] = a;\r\n inverseMatrix.props[1] = b;\r\n inverseMatrix.props[4] = c;\r\n inverseMatrix.props[5] = d;\r\n inverseMatrix.props[12] = e;\r\n inverseMatrix.props[13] = f;\r\n return inverseMatrix;\r\n }\r\n\r\n function inversePoint(pt) {\r\n var inverseMatrix = this.getInverseMatrix();\r\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\r\n }\r\n\r\n function inversePoints(pts) {\r\n var i;\r\n var len = pts.length;\r\n var retPts = [];\r\n\r\n for (i = 0; i < len; i += 1) {\r\n retPts[i] = inversePoint(pts[i]);\r\n }\r\n\r\n return retPts;\r\n }\r\n\r\n function applyToTriplePoints(pt1, pt2, pt3) {\r\n var arr = createTypedArray('float32', 6);\r\n\r\n if (this.isIdentity()) {\r\n arr[0] = pt1[0];\r\n arr[1] = pt1[1];\r\n arr[2] = pt2[0];\r\n arr[3] = pt2[1];\r\n arr[4] = pt3[0];\r\n arr[5] = pt3[1];\r\n } else {\r\n var p0 = this.props[0];\r\n var p1 = this.props[1];\r\n var p4 = this.props[4];\r\n var p5 = this.props[5];\r\n var p12 = this.props[12];\r\n var p13 = this.props[13];\r\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\r\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\r\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\r\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\r\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\r\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function applyToPointArray(x, y, z) {\r\n var arr;\r\n\r\n if (this.isIdentity()) {\r\n arr = [x, y, z];\r\n } else {\r\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function applyToPointStringified(x, y) {\r\n if (this.isIdentity()) {\r\n return x + ',' + y;\r\n }\r\n\r\n var _p = this.props;\r\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\r\n }\r\n\r\n function toCSS() {\r\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\r\n\r\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\r\n var i = 0;\r\n var props = this.props;\r\n var cssValue = 'matrix3d(';\r\n var v = 10000;\r\n\r\n while (i < 16) {\r\n cssValue += _rnd(props[i] * v) / v;\r\n cssValue += i === 15 ? ')' : ',';\r\n i += 1;\r\n }\r\n\r\n return cssValue;\r\n }\r\n\r\n function roundMatrixProperty(val) {\r\n var v = 10000;\r\n\r\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\r\n return _rnd(val * v) / v;\r\n }\r\n\r\n return val;\r\n }\r\n\r\n function to2dCSS() {\r\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\r\n\r\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\r\n var props = this.props;\r\n\r\n var _a = roundMatrixProperty(props[0]);\r\n\r\n var _b = roundMatrixProperty(props[1]);\r\n\r\n var _c = roundMatrixProperty(props[4]);\r\n\r\n var _d = roundMatrixProperty(props[5]);\r\n\r\n var _e = roundMatrixProperty(props[12]);\r\n\r\n var _f = roundMatrixProperty(props[13]);\r\n\r\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\r\n }\r\n\r\n return function () {\r\n this.reset = reset;\r\n this.rotate = rotate;\r\n this.rotateX = rotateX;\r\n this.rotateY = rotateY;\r\n this.rotateZ = rotateZ;\r\n this.skew = skew;\r\n this.skewFromAxis = skewFromAxis;\r\n this.shear = shear;\r\n this.scale = scale;\r\n this.setTransform = setTransform;\r\n this.translate = translate;\r\n this.transform = transform;\r\n this.applyToPoint = applyToPoint;\r\n this.applyToX = applyToX;\r\n this.applyToY = applyToY;\r\n this.applyToZ = applyToZ;\r\n this.applyToPointArray = applyToPointArray;\r\n this.applyToTriplePoints = applyToTriplePoints;\r\n this.applyToPointStringified = applyToPointStringified;\r\n this.toCSS = toCSS;\r\n this.to2dCSS = to2dCSS;\r\n this.clone = clone;\r\n this.cloneFromProps = cloneFromProps;\r\n this.equals = equals;\r\n this.inversePoints = inversePoints;\r\n this.inversePoint = inversePoint;\r\n this.getInverseMatrix = getInverseMatrix;\r\n this._t = this.transform;\r\n this.isIdentity = isIdentity;\r\n this._identity = true;\r\n this._identityCalculated = false;\r\n this.props = createTypedArray('float32', 16);\r\n this.reset();\r\n };\r\n }();\r\n\r\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\r\n var lottie = {};\r\n var standalone = '__[STANDALONE]__';\r\n var animationData = '__[ANIMATIONDATA]__';\r\n var renderer = '';\r\n\r\n function setLocation(href) {\r\n setLocationHref(href);\r\n }\r\n\r\n function searchAnimations() {\r\n if (standalone === true) {\r\n animationManager.searchAnimations(animationData, standalone, renderer);\r\n } else {\r\n animationManager.searchAnimations();\r\n }\r\n }\r\n\r\n function setSubframeRendering(flag) {\r\n setSubframeEnabled(flag);\r\n }\r\n\r\n function setPrefix(prefix) {\r\n setIdPrefix(prefix);\r\n }\r\n\r\n function loadAnimation(params) {\r\n if (standalone === true) {\r\n params.animationData = JSON.parse(animationData);\r\n }\r\n\r\n return animationManager.loadAnimation(params);\r\n }\r\n\r\n function setQuality(value) {\r\n if (typeof value === 'string') {\r\n switch (value) {\r\n case 'high':\r\n setDefaultCurveSegments(200);\r\n break;\r\n\r\n default:\r\n case 'medium':\r\n setDefaultCurveSegments(50);\r\n break;\r\n\r\n case 'low':\r\n setDefaultCurveSegments(10);\r\n break;\r\n }\r\n } else if (!isNaN(value) && value > 1) {\r\n setDefaultCurveSegments(value);\r\n }\r\n\r\n if (getDefaultCurveSegments() >= 50) {\r\n roundValues(false);\r\n } else {\r\n roundValues(true);\r\n }\r\n }\r\n\r\n function inBrowser() {\r\n return typeof navigator !== 'undefined';\r\n }\r\n\r\n function installPlugin(type, plugin) {\r\n if (type === 'expressions') {\r\n setExpressionsPlugin(plugin);\r\n }\r\n }\r\n\r\n function getFactory(name) {\r\n switch (name) {\r\n case 'propertyFactory':\r\n return PropertyFactory;\r\n\r\n case 'shapePropertyFactory':\r\n return ShapePropertyFactory;\r\n\r\n case 'matrix':\r\n return Matrix;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n lottie.play = animationManager.play;\r\n lottie.pause = animationManager.pause;\r\n lottie.setLocationHref = setLocation;\r\n lottie.togglePause = animationManager.togglePause;\r\n lottie.setSpeed = animationManager.setSpeed;\r\n lottie.setDirection = animationManager.setDirection;\r\n lottie.stop = animationManager.stop;\r\n lottie.searchAnimations = searchAnimations;\r\n lottie.registerAnimation = animationManager.registerAnimation;\r\n lottie.loadAnimation = loadAnimation;\r\n lottie.setSubframeRendering = setSubframeRendering;\r\n lottie.resize = animationManager.resize; // lottie.start = start;\r\n\r\n lottie.goToAndStop = animationManager.goToAndStop;\r\n lottie.destroy = animationManager.destroy;\r\n lottie.setQuality = setQuality;\r\n lottie.inBrowser = inBrowser;\r\n lottie.installPlugin = installPlugin;\r\n lottie.freeze = animationManager.freeze;\r\n lottie.unfreeze = animationManager.unfreeze;\r\n lottie.setVolume = animationManager.setVolume;\r\n lottie.mute = animationManager.mute;\r\n lottie.unmute = animationManager.unmute;\r\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\r\n lottie.useWebWorker = setWebWorker;\r\n lottie.setIDPrefix = setPrefix;\r\n lottie.__getFactory = getFactory;\r\n lottie.version = '5.10.2';\r\n\r\n function checkReady() {\r\n if (document.readyState === 'complete') {\r\n clearInterval(readyStateCheckInterval);\r\n searchAnimations();\r\n }\r\n }\r\n\r\n function getQueryVariable(variable) {\r\n var vars = queryString.split('&');\r\n\r\n for (var i = 0; i < vars.length; i += 1) {\r\n var pair = vars[i].split('=');\r\n\r\n if (decodeURIComponent(pair[0]) == variable) {\r\n // eslint-disable-line eqeqeq\r\n return decodeURIComponent(pair[1]);\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var queryString = '';\r\n\r\n if (standalone) {\r\n var scripts = document.getElementsByTagName('script');\r\n var index = scripts.length - 1;\r\n var myScript = scripts[index] || {\r\n src: ''\r\n };\r\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\r\n\r\n renderer = getQueryVariable('renderer');\r\n }\r\n\r\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\r\n\r\n try {\r\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\r\n ) {\r\n window.bodymovin = lottie;\r\n }\r\n } catch (err) {//\r\n }\r\n\r\n var ShapeModifiers = function () {\r\n var ob = {};\r\n var modifiers = {};\r\n ob.registerModifier = registerModifier;\r\n ob.getModifier = getModifier;\r\n\r\n function registerModifier(nm, factory) {\r\n if (!modifiers[nm]) {\r\n modifiers[nm] = factory;\r\n }\r\n }\r\n\r\n function getModifier(nm, elem, data) {\r\n return new modifiers[nm](elem, data);\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n function ShapeModifier() {}\r\n\r\n ShapeModifier.prototype.initModifierProperties = function () {};\r\n\r\n ShapeModifier.prototype.addShapeToModifier = function () {};\r\n\r\n ShapeModifier.prototype.addShape = function (data) {\r\n if (!this.closed) {\r\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\r\n data.sh.container.addDynamicProperty(data.sh);\r\n var shapeData = {\r\n shape: data.sh,\r\n data: data,\r\n localShapeCollection: shapeCollectionPool.newShapeCollection()\r\n };\r\n this.shapes.push(shapeData);\r\n this.addShapeToModifier(shapeData);\r\n\r\n if (this._isAnimated) {\r\n data.setAsAnimated();\r\n }\r\n }\r\n };\r\n\r\n ShapeModifier.prototype.init = function (elem, data) {\r\n this.shapes = [];\r\n this.elem = elem;\r\n this.initDynamicPropertyContainer(elem);\r\n this.initModifierProperties(elem, data);\r\n this.frameId = initialDefaultFrame;\r\n this.closed = false;\r\n this.k = false;\r\n\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.getValue(true);\r\n }\r\n };\r\n\r\n ShapeModifier.prototype.processKeys = function () {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\r\n\r\n function TrimModifier() {}\r\n\r\n extendPrototype([ShapeModifier], TrimModifier);\r\n\r\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\r\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\r\n this.sValue = 0;\r\n this.eValue = 0;\r\n this.getValue = this.processKeys;\r\n this.m = data.m;\r\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\r\n };\r\n\r\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\r\n shapeData.pathsData = [];\r\n };\r\n\r\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\r\n var segments = [];\r\n\r\n if (e <= 1) {\r\n segments.push({\r\n s: s,\r\n e: e\r\n });\r\n } else if (s >= 1) {\r\n segments.push({\r\n s: s - 1,\r\n e: e - 1\r\n });\r\n } else {\r\n segments.push({\r\n s: s,\r\n e: 1\r\n });\r\n segments.push({\r\n s: 0,\r\n e: e - 1\r\n });\r\n }\r\n\r\n var shapeSegments = [];\r\n var i;\r\n var len = segments.length;\r\n var segmentOb;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n segmentOb = segments[i];\r\n\r\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\r\n var shapeS;\r\n var shapeE;\r\n\r\n if (segmentOb.s * totalModifierLength <= addedLength) {\r\n shapeS = 0;\r\n } else {\r\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\r\n }\r\n\r\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\r\n shapeE = 1;\r\n } else {\r\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\r\n }\r\n\r\n shapeSegments.push([shapeS, shapeE]);\r\n }\r\n }\r\n\r\n if (!shapeSegments.length) {\r\n shapeSegments.push([0, 0]);\r\n }\r\n\r\n return shapeSegments;\r\n };\r\n\r\n TrimModifier.prototype.releasePathsData = function (pathsData) {\r\n var i;\r\n var len = pathsData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n segmentsLengthPool.release(pathsData[i]);\r\n }\r\n\r\n pathsData.length = 0;\r\n return pathsData;\r\n };\r\n\r\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var s;\r\n var e;\r\n\r\n if (this._mdf || _isFirstFrame) {\r\n var o = this.o.v % 360 / 360;\r\n\r\n if (o < 0) {\r\n o += 1;\r\n }\r\n\r\n if (this.s.v > 1) {\r\n s = 1 + o;\r\n } else if (this.s.v < 0) {\r\n s = 0 + o;\r\n } else {\r\n s = this.s.v + o;\r\n }\r\n\r\n if (this.e.v > 1) {\r\n e = 1 + o;\r\n } else if (this.e.v < 0) {\r\n e = 0 + o;\r\n } else {\r\n e = this.e.v + o;\r\n }\r\n\r\n if (s > e) {\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n\r\n s = Math.round(s * 10000) * 0.0001;\r\n e = Math.round(e * 10000) * 0.0001;\r\n this.sValue = s;\r\n this.eValue = e;\r\n } else {\r\n s = this.sValue;\r\n e = this.eValue;\r\n }\r\n\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var pathsData;\r\n var pathData;\r\n var totalShapeLength;\r\n var totalModifierLength = 0;\r\n\r\n if (e === s) {\r\n for (i = 0; i < len; i += 1) {\r\n this.shapes[i].localShapeCollection.releaseShapes();\r\n this.shapes[i].shape._mdf = true;\r\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\r\n\r\n if (this._mdf) {\r\n this.shapes[i].pathsData.length = 0;\r\n }\r\n }\r\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\r\n var segments = [];\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\r\n\r\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n } else {\r\n shapePaths = shapeData.shape.paths;\r\n jLen = shapePaths._length;\r\n totalShapeLength = 0;\r\n\r\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\r\n totalShapeLength = shapeData.totalShapeLength;\r\n } else {\r\n pathsData = this.releasePathsData(shapeData.pathsData);\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\r\n pathsData.push(pathData);\r\n totalShapeLength += pathData.totalLength;\r\n }\r\n\r\n shapeData.totalShapeLength = totalShapeLength;\r\n shapeData.pathsData = pathsData;\r\n }\r\n\r\n totalModifierLength += totalShapeLength;\r\n shapeData.shape._mdf = true;\r\n }\r\n }\r\n\r\n var shapeS = s;\r\n var shapeE = e;\r\n var addedLength = 0;\r\n var edges;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n shapeData = this.shapes[i];\r\n\r\n if (shapeData.shape._mdf) {\r\n localShapeCollection = shapeData.localShapeCollection;\r\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\r\n\r\n if (this.m === 2 && len > 1) {\r\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\r\n addedLength += shapeData.totalShapeLength;\r\n } else {\r\n edges = [[shapeS, shapeE]];\r\n }\r\n\r\n jLen = edges.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n shapeS = edges[j][0];\r\n shapeE = edges[j][1];\r\n segments.length = 0;\r\n\r\n if (shapeE <= 1) {\r\n segments.push({\r\n s: shapeData.totalShapeLength * shapeS,\r\n e: shapeData.totalShapeLength * shapeE\r\n });\r\n } else if (shapeS >= 1) {\r\n segments.push({\r\n s: shapeData.totalShapeLength * (shapeS - 1),\r\n e: shapeData.totalShapeLength * (shapeE - 1)\r\n });\r\n } else {\r\n segments.push({\r\n s: shapeData.totalShapeLength * shapeS,\r\n e: shapeData.totalShapeLength\r\n });\r\n segments.push({\r\n s: 0,\r\n e: shapeData.totalShapeLength * (shapeE - 1)\r\n });\r\n }\r\n\r\n var newShapesData = this.addShapes(shapeData, segments[0]);\r\n\r\n if (segments[0].s !== segments[0].e) {\r\n if (segments.length > 1) {\r\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\r\n\r\n if (lastShapeInCollection.c) {\r\n var lastShape = newShapesData.pop();\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\r\n } else {\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData, segments[1]);\r\n }\r\n }\r\n\r\n this.addPaths(newShapesData, localShapeCollection);\r\n }\r\n }\r\n\r\n shapeData.shape.paths = localShapeCollection;\r\n }\r\n }\r\n } else if (this._mdf) {\r\n for (i = 0; i < len; i += 1) {\r\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\r\n // Don't remove this even if it's losing cached info.\r\n this.shapes[i].pathsData.length = 0;\r\n this.shapes[i].shape._mdf = true;\r\n }\r\n }\r\n };\r\n\r\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\r\n var i;\r\n var len = newPaths.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n localShapeCollection.addShape(newPaths[i]);\r\n }\r\n };\r\n\r\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\r\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\r\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\r\n\r\n if (newShape) {\r\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\r\n }\r\n\r\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\r\n };\r\n\r\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\r\n shapePath.setXYAt(points[1], points[5], 'o', pos);\r\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\r\n\r\n if (newShape) {\r\n shapePath.setXYAt(points[0], points[4], 'v', pos);\r\n }\r\n\r\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\r\n };\r\n\r\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\r\n var pathsData = shapeData.pathsData;\r\n var shapePaths = shapeData.shape.paths.shapes;\r\n var i;\r\n var len = shapeData.shape.paths._length;\r\n var j;\r\n var jLen;\r\n var addedLength = 0;\r\n var currentLengthData;\r\n var segmentCount;\r\n var lengths;\r\n var segment;\r\n var shapes = [];\r\n var initPos;\r\n var newShape = true;\r\n\r\n if (!shapePath) {\r\n shapePath = shapePool.newElement();\r\n segmentCount = 0;\r\n initPos = 0;\r\n } else {\r\n segmentCount = shapePath._length;\r\n initPos = shapePath._length;\r\n }\r\n\r\n shapes.push(shapePath);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n lengths = pathsData[i].lengths;\r\n shapePath.c = shapePaths[i].c;\r\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\r\n\r\n for (j = 1; j < jLen; j += 1) {\r\n currentLengthData = lengths[j - 1];\r\n\r\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\r\n addedLength += currentLengthData.addedLength;\r\n shapePath.c = false;\r\n } else if (addedLength > shapeSegment.e) {\r\n shapePath.c = false;\r\n break;\r\n } else {\r\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\r\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\r\n newShape = false;\r\n } else {\r\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\r\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\r\n\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n }\r\n\r\n if (shapePaths[i].c && lengths.length) {\r\n currentLengthData = lengths[j - 1];\r\n\r\n if (addedLength <= shapeSegment.e) {\r\n var segmentLength = lengths[j - 1].addedLength;\r\n\r\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\r\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\r\n newShape = false;\r\n } else {\r\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\r\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\r\n\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n } else {\r\n shapePath.c = false;\r\n }\r\n\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n\r\n if (shapePath._length) {\r\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\r\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\r\n }\r\n\r\n if (addedLength > shapeSegment.e) {\r\n break;\r\n }\r\n\r\n if (i < len - 1) {\r\n shapePath = shapePool.newElement();\r\n newShape = true;\r\n shapes.push(shapePath);\r\n segmentCount = 0;\r\n }\r\n }\r\n\r\n return shapes;\r\n };\r\n\r\n function PuckerAndBloatModifier() {}\r\n\r\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\r\n\r\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\r\n this._isAnimated = !!this.amount.effectsSequence.length;\r\n };\r\n\r\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\r\n var percent = amount / 100;\r\n var centerPoint = [0, 0];\r\n var pathLength = path._length;\r\n var i = 0;\r\n\r\n for (i = 0; i < pathLength; i += 1) {\r\n centerPoint[0] += path.v[i][0];\r\n centerPoint[1] += path.v[i][1];\r\n }\r\n\r\n centerPoint[0] /= pathLength;\r\n centerPoint[1] /= pathLength;\r\n var clonedPath = shapePool.newElement();\r\n clonedPath.c = path.c;\r\n var vX;\r\n var vY;\r\n var oX;\r\n var oY;\r\n var iX;\r\n var iY;\r\n\r\n for (i = 0; i < pathLength; i += 1) {\r\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\r\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\r\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\r\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\r\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\r\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\r\n }\r\n\r\n return clonedPath;\r\n };\r\n\r\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var amount = this.amount.v;\r\n\r\n if (amount !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\r\n }\r\n }\r\n\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n };\r\n\r\n var TransformPropertyFactory = function () {\r\n var defaultVector = [0, 0];\r\n\r\n function applyToMatrix(mat) {\r\n var _mdf = this._mdf;\r\n this.iterateDynamicProperties();\r\n this._mdf = this._mdf || _mdf;\r\n\r\n if (this.a) {\r\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n }\r\n\r\n if (this.s) {\r\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n }\r\n\r\n if (this.sk) {\r\n mat.skewFromAxis(-this.sk.v, this.sa.v);\r\n }\r\n\r\n if (this.r) {\r\n mat.rotate(-this.r.v);\r\n } else {\r\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\r\n }\r\n\r\n if (this.data.p.s) {\r\n if (this.data.p.z) {\r\n mat.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n mat.translate(this.px.v, this.py.v, 0);\r\n }\r\n } else {\r\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\r\n }\r\n }\r\n\r\n function processKeys(forceRender) {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n if (this._isDirty) {\r\n this.precalculateMatrix();\r\n this._isDirty = false;\r\n }\r\n\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf || forceRender) {\r\n var frameRate;\r\n this.v.cloneFromProps(this.pre.props);\r\n\r\n if (this.appliedTransformations < 1) {\r\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n }\r\n\r\n if (this.appliedTransformations < 2) {\r\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n }\r\n\r\n if (this.sk && this.appliedTransformations < 3) {\r\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\r\n }\r\n\r\n if (this.r && this.appliedTransformations < 4) {\r\n this.v.rotate(-this.r.v);\r\n } else if (!this.r && this.appliedTransformations < 4) {\r\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\r\n }\r\n\r\n if (this.autoOriented) {\r\n var v1;\r\n var v2;\r\n frameRate = this.elem.globalData.frameRate;\r\n\r\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\r\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\r\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\r\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\r\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\r\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\r\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\r\n } else {\r\n v1 = this.p.pv;\r\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\r\n }\r\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\r\n v1 = [];\r\n v2 = [];\r\n var px = this.px;\r\n var py = this.py;\r\n\r\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\r\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\r\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\r\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\r\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\r\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\r\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\r\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\r\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\r\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\r\n } else {\r\n v1 = [px.pv, py.pv];\r\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\r\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\r\n }\r\n } else {\r\n v2 = defaultVector;\r\n v1 = v2;\r\n }\r\n\r\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\r\n }\r\n\r\n if (this.data.p && this.data.p.s) {\r\n if (this.data.p.z) {\r\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n this.v.translate(this.px.v, this.py.v, 0);\r\n }\r\n } else {\r\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\r\n }\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function precalculateMatrix() {\r\n if (!this.a.k) {\r\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n this.appliedTransformations = 1;\r\n } else {\r\n return;\r\n }\r\n\r\n if (!this.s.effectsSequence.length) {\r\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n this.appliedTransformations = 2;\r\n } else {\r\n return;\r\n }\r\n\r\n if (this.sk) {\r\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\r\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\r\n this.appliedTransformations = 3;\r\n } else {\r\n return;\r\n }\r\n }\r\n\r\n if (this.r) {\r\n if (!this.r.effectsSequence.length) {\r\n this.pre.rotate(-this.r.v);\r\n this.appliedTransformations = 4;\r\n }\r\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\r\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\r\n this.appliedTransformations = 4;\r\n }\r\n }\r\n\r\n function autoOrient() {//\r\n // var prevP = this.getValueAtTime();\r\n }\r\n\r\n function addDynamicProperty(prop) {\r\n this._addDynamicProperty(prop);\r\n\r\n this.elem.addDynamicProperty(prop);\r\n this._isDirty = true;\r\n }\r\n\r\n function TransformProperty(elem, data, container) {\r\n this.elem = elem;\r\n this.frameId = -1;\r\n this.propType = 'transform';\r\n this.data = data;\r\n this.v = new Matrix(); // Precalculated matrix with non animated properties\r\n\r\n this.pre = new Matrix();\r\n this.appliedTransformations = 0;\r\n this.initDynamicPropertyContainer(container || elem);\r\n\r\n if (data.p && data.p.s) {\r\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\r\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\r\n\r\n if (data.p.z) {\r\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\r\n }\r\n } else {\r\n this.p = PropertyFactory.getProp(elem, data.p || {\r\n k: [0, 0, 0]\r\n }, 1, 0, this);\r\n }\r\n\r\n if (data.rx) {\r\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\r\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\r\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\r\n\r\n if (data.or.k[0].ti) {\r\n var i;\r\n var len = data.or.k.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n data.or.k[i].to = null;\r\n data.or.k[i].ti = null;\r\n }\r\n }\r\n\r\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\r\n\r\n this.or.sh = true;\r\n } else {\r\n this.r = PropertyFactory.getProp(elem, data.r || {\r\n k: 0\r\n }, 0, degToRads, this);\r\n }\r\n\r\n if (data.sk) {\r\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\r\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\r\n }\r\n\r\n this.a = PropertyFactory.getProp(elem, data.a || {\r\n k: [0, 0, 0]\r\n }, 1, 0, this);\r\n this.s = PropertyFactory.getProp(elem, data.s || {\r\n k: [100, 100, 100]\r\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\r\n\r\n if (data.o) {\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\r\n } else {\r\n this.o = {\r\n _mdf: false,\r\n v: 1\r\n };\r\n }\r\n\r\n this._isDirty = true;\r\n\r\n if (!this.dynamicProperties.length) {\r\n this.getValue(true);\r\n }\r\n }\r\n\r\n TransformProperty.prototype = {\r\n applyToMatrix: applyToMatrix,\r\n getValue: processKeys,\r\n precalculateMatrix: precalculateMatrix,\r\n autoOrient: autoOrient\r\n };\r\n extendPrototype([DynamicPropertyContainer], TransformProperty);\r\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\r\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\r\n\r\n function getTransformProperty(elem, data, container) {\r\n return new TransformProperty(elem, data, container);\r\n }\r\n\r\n return {\r\n getTransformProperty: getTransformProperty\r\n };\r\n }();\r\n\r\n function RepeaterModifier() {}\r\n\r\n extendPrototype([ShapeModifier], RepeaterModifier);\r\n\r\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\r\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\r\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\r\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\r\n this.data = data;\r\n\r\n if (!this.dynamicProperties.length) {\r\n this.getValue(true);\r\n }\r\n\r\n this._isAnimated = !!this.dynamicProperties.length;\r\n this.pMatrix = new Matrix();\r\n this.rMatrix = new Matrix();\r\n this.sMatrix = new Matrix();\r\n this.tMatrix = new Matrix();\r\n this.matrix = new Matrix();\r\n };\r\n\r\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\r\n var dir = inv ? -1 : 1;\r\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\r\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\r\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\r\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\r\n rMatrix.rotate(-transform.r.v * dir * perc);\r\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\r\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\r\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\r\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\r\n };\r\n\r\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\r\n this.elem = elem;\r\n this.arr = arr;\r\n this.pos = pos;\r\n this.elemsData = elemsData;\r\n this._currentCopies = 0;\r\n this._elements = [];\r\n this._groups = [];\r\n this.frameId = -1;\r\n this.initDynamicPropertyContainer(elem);\r\n this.initModifierProperties(elem, arr[pos]);\r\n\r\n while (pos > 0) {\r\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\r\n\r\n this._elements.unshift(arr[pos]);\r\n }\r\n\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.getValue(true);\r\n }\r\n };\r\n\r\n RepeaterModifier.prototype.resetElements = function (elements) {\r\n var i;\r\n var len = elements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n elements[i]._processed = false;\r\n\r\n if (elements[i].ty === 'gr') {\r\n this.resetElements(elements[i].it);\r\n }\r\n }\r\n };\r\n\r\n RepeaterModifier.prototype.cloneElements = function (elements) {\r\n var newElements = JSON.parse(JSON.stringify(elements));\r\n this.resetElements(newElements);\r\n return newElements;\r\n };\r\n\r\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\r\n var i;\r\n var len = elements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n elements[i]._render = renderFlag;\r\n\r\n if (elements[i].ty === 'gr') {\r\n this.changeGroupRender(elements[i].it, renderFlag);\r\n }\r\n }\r\n };\r\n\r\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var items;\r\n var itemsTransform;\r\n var i;\r\n var dir;\r\n var cont;\r\n var hasReloaded = false;\r\n\r\n if (this._mdf || _isFirstFrame) {\r\n var copies = Math.ceil(this.c.v);\r\n\r\n if (this._groups.length < copies) {\r\n while (this._groups.length < copies) {\r\n var group = {\r\n it: this.cloneElements(this._elements),\r\n ty: 'gr'\r\n };\r\n group.it.push({\r\n a: {\r\n a: 0,\r\n ix: 1,\r\n k: [0, 0]\r\n },\r\n nm: 'Transform',\r\n o: {\r\n a: 0,\r\n ix: 7,\r\n k: 100\r\n },\r\n p: {\r\n a: 0,\r\n ix: 2,\r\n k: [0, 0]\r\n },\r\n r: {\r\n a: 1,\r\n ix: 6,\r\n k: [{\r\n s: 0,\r\n e: 0,\r\n t: 0\r\n }, {\r\n s: 0,\r\n e: 0,\r\n t: 1\r\n }]\r\n },\r\n s: {\r\n a: 0,\r\n ix: 3,\r\n k: [100, 100]\r\n },\r\n sa: {\r\n a: 0,\r\n ix: 5,\r\n k: 0\r\n },\r\n sk: {\r\n a: 0,\r\n ix: 4,\r\n k: 0\r\n },\r\n ty: 'tr'\r\n });\r\n this.arr.splice(0, 0, group);\r\n\r\n this._groups.splice(0, 0, group);\r\n\r\n this._currentCopies += 1;\r\n }\r\n\r\n this.elem.reloadShapes();\r\n hasReloaded = true;\r\n }\r\n\r\n cont = 0;\r\n var renderFlag;\r\n\r\n for (i = 0; i <= this._groups.length - 1; i += 1) {\r\n renderFlag = cont < copies;\r\n this._groups[i]._render = renderFlag;\r\n this.changeGroupRender(this._groups[i].it, renderFlag);\r\n\r\n if (!renderFlag) {\r\n var elems = this.elemsData[i].it;\r\n var transformData = elems[elems.length - 1];\r\n\r\n if (transformData.transform.op.v !== 0) {\r\n transformData.transform.op._mdf = true;\r\n transformData.transform.op.v = 0;\r\n } else {\r\n transformData.transform.op._mdf = false;\r\n }\r\n }\r\n\r\n cont += 1;\r\n }\r\n\r\n this._currentCopies = copies; /// /\r\n\r\n var offset = this.o.v;\r\n var offsetModulo = offset % 1;\r\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\r\n var pProps = this.pMatrix.props;\r\n var rProps = this.rMatrix.props;\r\n var sProps = this.sMatrix.props;\r\n this.pMatrix.reset();\r\n this.rMatrix.reset();\r\n this.sMatrix.reset();\r\n this.tMatrix.reset();\r\n this.matrix.reset();\r\n var iteration = 0;\r\n\r\n if (offset > 0) {\r\n while (iteration < roundOffset) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\r\n iteration += 1;\r\n }\r\n\r\n if (offsetModulo) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\r\n iteration += offsetModulo;\r\n }\r\n } else if (offset < 0) {\r\n while (iteration > roundOffset) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\r\n iteration -= 1;\r\n }\r\n\r\n if (offsetModulo) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\r\n iteration -= offsetModulo;\r\n }\r\n }\r\n\r\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\r\n dir = this.data.m === 1 ? 1 : -1;\r\n cont = this._currentCopies;\r\n var j;\r\n var jLen;\r\n\r\n while (cont) {\r\n items = this.elemsData[i].it;\r\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\r\n jLen = itemsTransform.length;\r\n items[items.length - 1].transform.mProps._mdf = true;\r\n items[items.length - 1].transform.op._mdf = true;\r\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\r\n\r\n if (iteration !== 0) {\r\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\r\n }\r\n\r\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\r\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\r\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsTransform[j] = this.matrix.props[j];\r\n }\r\n\r\n this.matrix.reset();\r\n } else {\r\n this.matrix.reset();\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsTransform[j] = this.matrix.props[j];\r\n }\r\n }\r\n\r\n iteration += 1;\r\n cont -= 1;\r\n i += dir;\r\n }\r\n } else {\r\n cont = this._currentCopies;\r\n i = 0;\r\n dir = 1;\r\n\r\n while (cont) {\r\n items = this.elemsData[i].it;\r\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\r\n items[items.length - 1].transform.mProps._mdf = false;\r\n items[items.length - 1].transform.op._mdf = false;\r\n cont -= 1;\r\n i += dir;\r\n }\r\n }\r\n\r\n return hasReloaded;\r\n };\r\n\r\n RepeaterModifier.prototype.addShape = function () {};\r\n\r\n function RoundCornersModifier() {}\r\n\r\n extendPrototype([ShapeModifier], RoundCornersModifier);\r\n\r\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\r\n this._isAnimated = !!this.rd.effectsSequence.length;\r\n };\r\n\r\n RoundCornersModifier.prototype.processPath = function (path, round) {\r\n var clonedPath = shapePool.newElement();\r\n clonedPath.c = path.c;\r\n var i;\r\n var len = path._length;\r\n var currentV;\r\n var currentI;\r\n var currentO;\r\n var closerV;\r\n var distance;\r\n var newPosPerc;\r\n var index = 0;\r\n var vX;\r\n var vY;\r\n var oX;\r\n var oY;\r\n var iX;\r\n var iY;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n currentV = path.v[i];\r\n currentO = path.o[i];\r\n currentI = path.i[i];\r\n\r\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\r\n if ((i === 0 || i === len - 1) && !path.c) {\r\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\r\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\r\n\r\n index += 1;\r\n } else {\r\n if (i === 0) {\r\n closerV = path.v[len - 1];\r\n } else {\r\n closerV = path.v[i - 1];\r\n }\r\n\r\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\r\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\r\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\r\n vX = iX;\r\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\r\n vY = iY;\r\n oX = vX - (vX - currentV[0]) * roundCorner;\r\n oY = vY - (vY - currentV[1]) * roundCorner;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\r\n index += 1;\r\n\r\n if (i === len - 1) {\r\n closerV = path.v[0];\r\n } else {\r\n closerV = path.v[i + 1];\r\n }\r\n\r\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\r\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\r\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\r\n vX = oX;\r\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\r\n vY = oY;\r\n iX = vX - (vX - currentV[0]) * roundCorner;\r\n iY = vY - (vY - currentV[1]) * roundCorner;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\r\n index += 1;\r\n }\r\n } else {\r\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\r\n index += 1;\r\n }\r\n }\r\n\r\n return clonedPath;\r\n };\r\n\r\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var rd = this.rd.v;\r\n\r\n if (rd !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\r\n }\r\n }\r\n\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n };\r\n\r\n function floatEqual(a, b) {\r\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\r\n }\r\n\r\n function floatZero(f) {\r\n return Math.abs(f) <= 0.00001;\r\n }\r\n\r\n function lerp(p0, p1, amount) {\r\n return p0 * (1 - amount) + p1 * amount;\r\n }\r\n\r\n function lerpPoint(p0, p1, amount) {\r\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\r\n }\r\n\r\n function quadRoots(a, b, c) {\r\n // no root\r\n if (a === 0) return [];\r\n var s = b * b - 4 * a * c; // Complex roots\r\n\r\n if (s < 0) return [];\r\n var singleRoot = -b / (2 * a); // 1 root\r\n\r\n if (s === 0) return [singleRoot];\r\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\r\n\r\n return [singleRoot - delta, singleRoot + delta];\r\n }\r\n\r\n function polynomialCoefficients(p0, p1, p2, p3) {\r\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\r\n }\r\n\r\n function singlePoint(p) {\r\n return new PolynomialBezier(p, p, p, p, false);\r\n }\r\n\r\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\r\n if (linearize && pointEqual(p0, p1)) {\r\n p1 = lerpPoint(p0, p3, 1 / 3);\r\n }\r\n\r\n if (linearize && pointEqual(p2, p3)) {\r\n p2 = lerpPoint(p0, p3, 2 / 3);\r\n }\r\n\r\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\r\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\r\n this.a = [coeffx[0], coeffy[0]];\r\n this.b = [coeffx[1], coeffy[1]];\r\n this.c = [coeffx[2], coeffy[2]];\r\n this.d = [coeffx[3], coeffy[3]];\r\n this.points = [p0, p1, p2, p3];\r\n }\r\n\r\n PolynomialBezier.prototype.point = function (t) {\r\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\r\n };\r\n\r\n PolynomialBezier.prototype.derivative = function (t) {\r\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\r\n };\r\n\r\n PolynomialBezier.prototype.tangentAngle = function (t) {\r\n var p = this.derivative(t);\r\n return Math.atan2(p[1], p[0]);\r\n };\r\n\r\n PolynomialBezier.prototype.normalAngle = function (t) {\r\n var p = this.derivative(t);\r\n return Math.atan2(p[0], p[1]);\r\n };\r\n\r\n PolynomialBezier.prototype.inflectionPoints = function () {\r\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\r\n if (floatZero(denom)) return [];\r\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\r\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\r\n if (square < 0) return [];\r\n var root = Math.sqrt(square);\r\n\r\n if (floatZero(root)) {\r\n if (root > 0 && root < 1) return [tcusp];\r\n return [];\r\n }\r\n\r\n return [tcusp - root, tcusp + root].filter(function (r) {\r\n return r > 0 && r < 1;\r\n });\r\n };\r\n\r\n PolynomialBezier.prototype.split = function (t) {\r\n if (t <= 0) return [singlePoint(this.points[0]), this];\r\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\r\n var p10 = lerpPoint(this.points[0], this.points[1], t);\r\n var p11 = lerpPoint(this.points[1], this.points[2], t);\r\n var p12 = lerpPoint(this.points[2], this.points[3], t);\r\n var p20 = lerpPoint(p10, p11, t);\r\n var p21 = lerpPoint(p11, p12, t);\r\n var p3 = lerpPoint(p20, p21, t);\r\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\r\n };\r\n\r\n function extrema(bez, comp) {\r\n var min = bez.points[0][comp];\r\n var max = bez.points[bez.points.length - 1][comp];\r\n\r\n if (min > max) {\r\n var e = max;\r\n max = min;\r\n min = e;\r\n } // Derivative roots to find min/max\r\n\r\n\r\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\r\n\r\n for (var i = 0; i < f.length; i += 1) {\r\n if (f[i] > 0 && f[i] < 1) {\r\n var val = bez.point(f[i])[comp];\r\n if (val < min) min = val;else if (val > max) max = val;\r\n }\r\n }\r\n\r\n return {\r\n min: min,\r\n max: max\r\n };\r\n }\r\n\r\n PolynomialBezier.prototype.bounds = function () {\r\n return {\r\n x: extrema(this, 0),\r\n y: extrema(this, 1)\r\n };\r\n };\r\n\r\n PolynomialBezier.prototype.boundingBox = function () {\r\n var bounds = this.bounds();\r\n return {\r\n left: bounds.x.min,\r\n right: bounds.x.max,\r\n top: bounds.y.min,\r\n bottom: bounds.y.max,\r\n width: bounds.x.max - bounds.x.min,\r\n height: bounds.y.max - bounds.y.min,\r\n cx: (bounds.x.max + bounds.x.min) / 2,\r\n cy: (bounds.y.max + bounds.y.min) / 2\r\n };\r\n };\r\n\r\n function intersectData(bez, t1, t2) {\r\n var box = bez.boundingBox();\r\n return {\r\n cx: box.cx,\r\n cy: box.cy,\r\n width: box.width,\r\n height: box.height,\r\n bez: bez,\r\n t: (t1 + t2) / 2,\r\n t1: t1,\r\n t2: t2\r\n };\r\n }\r\n\r\n function splitData(data) {\r\n var split = data.bez.split(0.5);\r\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\r\n }\r\n\r\n function boxIntersect(b1, b2) {\r\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\r\n }\r\n\r\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\r\n if (!boxIntersect(d1, d2)) return;\r\n\r\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\r\n intersections.push([d1.t, d2.t]);\r\n return;\r\n }\r\n\r\n var d1s = splitData(d1);\r\n var d2s = splitData(d2);\r\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\r\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\r\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\r\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\r\n }\r\n\r\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\r\n if (tolerance === undefined) tolerance = 2;\r\n if (maxRecursion === undefined) maxRecursion = 7;\r\n var intersections = [];\r\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\r\n return intersections;\r\n };\r\n\r\n PolynomialBezier.shapeSegment = function (shapePath, index) {\r\n var nextIndex = (index + 1) % shapePath.length();\r\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\r\n };\r\n\r\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\r\n var nextIndex = (index + 1) % shapePath.length();\r\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\r\n };\r\n\r\n function crossProduct(a, b) {\r\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\r\n }\r\n\r\n function lineIntersection(start1, end1, start2, end2) {\r\n var v1 = [start1[0], start1[1], 1];\r\n var v2 = [end1[0], end1[1], 1];\r\n var v3 = [start2[0], start2[1], 1];\r\n var v4 = [end2[0], end2[1], 1];\r\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\r\n if (floatZero(r[2])) return null;\r\n return [r[0] / r[2], r[1] / r[2]];\r\n }\r\n\r\n function polarOffset(p, angle, length) {\r\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\r\n }\r\n\r\n function pointDistance(p1, p2) {\r\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\r\n }\r\n\r\n function pointEqual(p1, p2) {\r\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\r\n }\r\n\r\n function ZigZagModifier() {}\r\n\r\n extendPrototype([ShapeModifier], ZigZagModifier);\r\n\r\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\r\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\r\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\r\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\r\n };\r\n\r\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\r\n var angO = angle - Math.PI / 2;\r\n var angI = angle + Math.PI / 2;\r\n var px = point[0] + Math.cos(angle) * direction * amplitude;\r\n var py = point[1] - Math.sin(angle) * direction * amplitude;\r\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\r\n }\r\n\r\n function getPerpendicularVector(pt1, pt2) {\r\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\r\n var rot = -Math.PI * 0.5;\r\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\r\n return rotatedVector;\r\n }\r\n\r\n function getProjectingAngle(path, cur) {\r\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\r\n var nextIndex = (cur + 1) % path.length();\r\n var prevPoint = path.v[prevIndex];\r\n var nextPoint = path.v[nextIndex];\r\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\r\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\r\n }\r\n\r\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\r\n var angle = getProjectingAngle(path, cur);\r\n var point = path.v[cur % path._length];\r\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\r\n var nextPoint = path.v[(cur + 1) % path._length];\r\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\r\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\r\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\r\n }\r\n\r\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\r\n for (var i = 0; i < frequency; i += 1) {\r\n var t = (i + 1) / (frequency + 1);\r\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\r\n var angle = segment.normalAngle(t);\r\n var point = segment.point(t);\r\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\r\n direction = -direction;\r\n }\r\n\r\n return direction;\r\n }\r\n\r\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\r\n var count = path._length;\r\n var clonedPath = shapePool.newElement();\r\n clonedPath.c = path.c;\r\n\r\n if (!path.c) {\r\n count -= 1;\r\n }\r\n\r\n if (count === 0) return clonedPath;\r\n var direction = -1;\r\n var segment = PolynomialBezier.shapeSegment(path, 0);\r\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\r\n\r\n for (var i = 0; i < count; i += 1) {\r\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\r\n\r\n if (i === count - 1 && !path.c) {\r\n segment = null;\r\n } else {\r\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\r\n }\r\n\r\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\r\n }\r\n\r\n return clonedPath;\r\n };\r\n\r\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var amplitude = this.amplitude.v;\r\n var frequency = Math.max(0, Math.round(this.frequency.v));\r\n var pointType = this.pointsType.v;\r\n\r\n if (amplitude !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\r\n }\r\n }\r\n\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n };\r\n\r\n function linearOffset(p1, p2, amount) {\r\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\r\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\r\n }\r\n\r\n function offsetSegment(segment, amount) {\r\n var p0;\r\n var p1a;\r\n var p1b;\r\n var p2b;\r\n var p2a;\r\n var p3;\r\n var e;\r\n e = linearOffset(segment.points[0], segment.points[1], amount);\r\n p0 = e[0];\r\n p1a = e[1];\r\n e = linearOffset(segment.points[1], segment.points[2], amount);\r\n p1b = e[0];\r\n p2b = e[1];\r\n e = linearOffset(segment.points[2], segment.points[3], amount);\r\n p2a = e[0];\r\n p3 = e[1];\r\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\r\n if (p1 === null) p1 = p1a;\r\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\r\n if (p2 === null) p2 = p2a;\r\n return new PolynomialBezier(p0, p1, p2, p3);\r\n }\r\n\r\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\r\n var p0 = seg1.points[3];\r\n var p1 = seg2.points[0]; // Bevel\r\n\r\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\r\n\r\n if (pointEqual(p0, p1)) return p0; // Round\r\n\r\n if (lineJoin === 2) {\r\n var angleOut = -seg1.tangentAngle(1);\r\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\r\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\r\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\r\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\r\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\r\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\r\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\r\n return p1;\r\n } // Miter\r\n\r\n\r\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\r\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\r\n var intersection = lineIntersection(t0, p0, p1, t1);\r\n\r\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\r\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\r\n return intersection;\r\n }\r\n\r\n return p0;\r\n }\r\n\r\n function getIntersection(a, b) {\r\n var intersect = a.intersections(b);\r\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\r\n if (intersect.length) return intersect[0];\r\n return null;\r\n }\r\n\r\n function pruneSegmentIntersection(a, b) {\r\n var outa = a.slice();\r\n var outb = b.slice();\r\n var intersect = getIntersection(a[a.length - 1], b[0]);\r\n\r\n if (intersect) {\r\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\r\n outb[0] = b[0].split(intersect[1])[1];\r\n }\r\n\r\n if (a.length > 1 && b.length > 1) {\r\n intersect = getIntersection(a[0], b[b.length - 1]);\r\n\r\n if (intersect) {\r\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\r\n }\r\n }\r\n\r\n return [outa, outb];\r\n }\r\n\r\n function pruneIntersections(segments) {\r\n var e;\r\n\r\n for (var i = 1; i < segments.length; i += 1) {\r\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\r\n segments[i - 1] = e[0];\r\n segments[i] = e[1];\r\n }\r\n\r\n if (segments.length > 1) {\r\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\r\n segments[segments.length - 1] = e[0];\r\n segments[0] = e[1];\r\n }\r\n\r\n return segments;\r\n }\r\n\r\n function offsetSegmentSplit(segment, amount) {\r\n /*\r\n We split each bezier segment into smaller pieces based\r\n on inflection points, this ensures the control point\r\n polygon is convex.\r\n (A cubic bezier can have none, one, or two inflection points)\r\n */\r\n var flex = segment.inflectionPoints();\r\n var left;\r\n var right;\r\n var split;\r\n var mid;\r\n\r\n if (flex.length === 0) {\r\n return [offsetSegment(segment, amount)];\r\n }\r\n\r\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\r\n split = segment.split(flex[0]);\r\n left = split[0];\r\n right = split[1];\r\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\r\n }\r\n\r\n split = segment.split(flex[0]);\r\n left = split[0];\r\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\r\n split = split[1].split(t);\r\n mid = split[0];\r\n right = split[1];\r\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\r\n }\r\n\r\n function OffsetPathModifier() {}\r\n\r\n extendPrototype([ShapeModifier], OffsetPathModifier);\r\n\r\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\r\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\r\n this.lineJoin = data.lj;\r\n this._isAnimated = this.amount.effectsSequence.length !== 0;\r\n };\r\n\r\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\r\n var outputBezier = shapePool.newElement();\r\n outputBezier.c = inputBezier.c;\r\n var count = inputBezier.length();\r\n\r\n if (!inputBezier.c) {\r\n count -= 1;\r\n }\r\n\r\n var i;\r\n var j;\r\n var segment;\r\n var multiSegments = [];\r\n\r\n for (i = 0; i < count; i += 1) {\r\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\r\n multiSegments.push(offsetSegmentSplit(segment, amount));\r\n }\r\n\r\n if (!inputBezier.c) {\r\n for (i = count - 1; i >= 0; i -= 1) {\r\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\r\n multiSegments.push(offsetSegmentSplit(segment, amount));\r\n }\r\n }\r\n\r\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\r\n\r\n var lastPoint = null;\r\n var lastSeg = null;\r\n\r\n for (i = 0; i < multiSegments.length; i += 1) {\r\n var multiSegment = multiSegments[i];\r\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\r\n lastSeg = multiSegment[multiSegment.length - 1];\r\n\r\n for (j = 0; j < multiSegment.length; j += 1) {\r\n segment = multiSegment[j];\r\n\r\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\r\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\r\n } else {\r\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\r\n }\r\n\r\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\r\n lastPoint = segment.points[3];\r\n }\r\n }\r\n\r\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\r\n return outputBezier;\r\n };\r\n\r\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var amount = this.amount.v;\r\n var miterLimit = this.miterLimit.v;\r\n var lineJoin = this.lineJoin;\r\n\r\n if (amount !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\r\n }\r\n }\r\n\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n };\r\n\r\n function getFontProperties(fontData) {\r\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\r\n var fWeight = 'normal';\r\n var fStyle = 'normal';\r\n var len = styles.length;\r\n var styleName;\r\n\r\n for (var i = 0; i < len; i += 1) {\r\n styleName = styles[i].toLowerCase();\r\n\r\n switch (styleName) {\r\n case 'italic':\r\n fStyle = 'italic';\r\n break;\r\n\r\n case 'bold':\r\n fWeight = '700';\r\n break;\r\n\r\n case 'black':\r\n fWeight = '900';\r\n break;\r\n\r\n case 'medium':\r\n fWeight = '500';\r\n break;\r\n\r\n case 'regular':\r\n case 'normal':\r\n fWeight = '400';\r\n break;\r\n\r\n case 'light':\r\n case 'thin':\r\n fWeight = '200';\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n return {\r\n style: fStyle,\r\n weight: fontData.fWeight || fWeight\r\n };\r\n }\r\n\r\n var FontManager = function () {\r\n var maxWaitingTime = 5000;\r\n var emptyChar = {\r\n w: 0,\r\n size: 0,\r\n shapes: [],\r\n data: {\r\n shapes: []\r\n }\r\n };\r\n var combinedCharacters = []; // Hindi characters\r\n\r\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\r\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\r\n var zeroWidthJoiner = [65039, 8205];\r\n\r\n function trimFontOptions(font) {\r\n var familyArray = font.split(',');\r\n var i;\r\n var len = familyArray.length;\r\n var enabledFamilies = [];\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\r\n enabledFamilies.push(familyArray[i]);\r\n }\r\n }\r\n\r\n return enabledFamilies.join(',');\r\n }\r\n\r\n function setUpNode(font, family) {\r\n var parentNode = createTag('span'); // Node is invisible to screen readers.\r\n\r\n parentNode.setAttribute('aria-hidden', true);\r\n parentNode.style.fontFamily = family;\r\n var node = createTag('span'); // Characters that vary significantly among different fonts\r\n\r\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\r\n\r\n parentNode.style.position = 'absolute';\r\n parentNode.style.left = '-10000px';\r\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\r\n\r\n parentNode.style.fontSize = '300px'; // Reset any font properties\r\n\r\n parentNode.style.fontVariant = 'normal';\r\n parentNode.style.fontStyle = 'normal';\r\n parentNode.style.fontWeight = 'normal';\r\n parentNode.style.letterSpacing = '0';\r\n parentNode.appendChild(node);\r\n document.body.appendChild(parentNode); // Remember width with no applied web font\r\n\r\n var width = node.offsetWidth;\r\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\r\n return {\r\n node: node,\r\n w: width,\r\n parent: parentNode\r\n };\r\n }\r\n\r\n function checkLoadedFonts() {\r\n var i;\r\n var len = this.fonts.length;\r\n var node;\r\n var w;\r\n var loadedCount = len;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.fonts[i].loaded) {\r\n loadedCount -= 1;\r\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\r\n this.fonts[i].loaded = true;\r\n } else {\r\n node = this.fonts[i].monoCase.node;\r\n w = this.fonts[i].monoCase.w;\r\n\r\n if (node.offsetWidth !== w) {\r\n loadedCount -= 1;\r\n this.fonts[i].loaded = true;\r\n } else {\r\n node = this.fonts[i].sansCase.node;\r\n w = this.fonts[i].sansCase.w;\r\n\r\n if (node.offsetWidth !== w) {\r\n loadedCount -= 1;\r\n this.fonts[i].loaded = true;\r\n }\r\n }\r\n\r\n if (this.fonts[i].loaded) {\r\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\r\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\r\n }\r\n }\r\n }\r\n\r\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\r\n setTimeout(this.checkLoadedFontsBinded, 20);\r\n } else {\r\n setTimeout(this.setIsLoadedBinded, 10);\r\n }\r\n }\r\n\r\n function createHelper(fontData, def) {\r\n var engine = document.body && def ? 'svg' : 'canvas';\r\n var helper;\r\n var fontProps = getFontProperties(fontData);\r\n\r\n if (engine === 'svg') {\r\n var tHelper = createNS('text');\r\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\r\n\r\n tHelper.setAttribute('font-family', fontData.fFamily);\r\n tHelper.setAttribute('font-style', fontProps.style);\r\n tHelper.setAttribute('font-weight', fontProps.weight);\r\n tHelper.textContent = '1';\r\n\r\n if (fontData.fClass) {\r\n tHelper.style.fontFamily = 'inherit';\r\n tHelper.setAttribute('class', fontData.fClass);\r\n } else {\r\n tHelper.style.fontFamily = fontData.fFamily;\r\n }\r\n\r\n def.appendChild(tHelper);\r\n helper = tHelper;\r\n } else {\r\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\r\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\r\n helper = tCanvasHelper;\r\n }\r\n\r\n function measure(text) {\r\n if (engine === 'svg') {\r\n helper.textContent = text;\r\n return helper.getComputedTextLength();\r\n }\r\n\r\n return helper.measureText(text).width;\r\n }\r\n\r\n return {\r\n measureText: measure\r\n };\r\n }\r\n\r\n function addFonts(fontData, defs) {\r\n if (!fontData) {\r\n this.isLoaded = true;\r\n return;\r\n }\r\n\r\n if (this.chars) {\r\n this.isLoaded = true;\r\n this.fonts = fontData.list;\r\n return;\r\n }\r\n\r\n if (!document.body) {\r\n this.isLoaded = true;\r\n fontData.list.forEach(function (data) {\r\n data.helper = createHelper(data);\r\n data.cache = {};\r\n });\r\n this.fonts = fontData.list;\r\n return;\r\n }\r\n\r\n var fontArr = fontData.list;\r\n var i;\r\n var len = fontArr.length;\r\n var _pendingFonts = len;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n var shouldLoadFont = true;\r\n var loadedSelector;\r\n var j;\r\n fontArr[i].loaded = false;\r\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\r\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\r\n\r\n if (!fontArr[i].fPath) {\r\n fontArr[i].loaded = true;\r\n _pendingFonts -= 1;\r\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\r\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\r\n\r\n if (loadedSelector.length > 0) {\r\n shouldLoadFont = false;\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var s = createTag('style');\r\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n s.setAttribute('f-origin', fontArr[i].origin);\r\n s.setAttribute('f-family', fontArr[i].fFamily);\r\n s.type = 'text/css';\r\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\r\n defs.appendChild(s);\r\n }\r\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\r\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\r\n\r\n for (j = 0; j < loadedSelector.length; j += 1) {\r\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\r\n // Font is already loaded\r\n shouldLoadFont = false;\r\n }\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var l = createTag('link');\r\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n l.setAttribute('f-origin', fontArr[i].origin);\r\n l.type = 'text/css';\r\n l.rel = 'stylesheet';\r\n l.href = fontArr[i].fPath;\r\n document.body.appendChild(l);\r\n }\r\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\r\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\r\n\r\n for (j = 0; j < loadedSelector.length; j += 1) {\r\n if (fontArr[i].fPath === loadedSelector[j].src) {\r\n // Font is already loaded\r\n shouldLoadFont = false;\r\n }\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var sc = createTag('link');\r\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n sc.setAttribute('f-origin', fontArr[i].origin);\r\n sc.setAttribute('rel', 'stylesheet');\r\n sc.setAttribute('href', fontArr[i].fPath);\r\n defs.appendChild(sc);\r\n }\r\n }\r\n\r\n fontArr[i].helper = createHelper(fontArr[i], defs);\r\n fontArr[i].cache = {};\r\n this.fonts.push(fontArr[i]);\r\n }\r\n\r\n if (_pendingFonts === 0) {\r\n this.isLoaded = true;\r\n } else {\r\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\r\n // Adding this timeout seems to fix it\r\n setTimeout(this.checkLoadedFonts.bind(this), 100);\r\n }\r\n }\r\n\r\n function addChars(chars) {\r\n if (!chars) {\r\n return;\r\n }\r\n\r\n if (!this.chars) {\r\n this.chars = [];\r\n }\r\n\r\n var i;\r\n var len = chars.length;\r\n var j;\r\n var jLen = this.chars.length;\r\n var found;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n j = 0;\r\n found = false;\r\n\r\n while (j < jLen) {\r\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\r\n found = true;\r\n }\r\n\r\n j += 1;\r\n }\r\n\r\n if (!found) {\r\n this.chars.push(chars[i]);\r\n jLen += 1;\r\n }\r\n }\r\n }\r\n\r\n function getCharData(_char, style, font) {\r\n var i = 0;\r\n var len = this.chars.length;\r\n\r\n while (i < len) {\r\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\r\n return this.chars[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\r\n && !this._warned) {\r\n this._warned = true;\r\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\r\n }\r\n\r\n return emptyChar;\r\n }\r\n\r\n function measureText(_char2, fontName, size) {\r\n var fontData = this.getFontByName(fontName);\r\n\r\n var index = _char2.charCodeAt(0);\r\n\r\n if (!fontData.cache[index + 1]) {\r\n var tHelper = fontData.helper;\r\n\r\n if (_char2 === ' ') {\r\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\r\n var singleSize = tHelper.measureText('||');\r\n fontData.cache[index + 1] = (doubleSize - singleSize) / 100;\r\n } else {\r\n fontData.cache[index + 1] = tHelper.measureText(_char2) / 100;\r\n }\r\n }\r\n\r\n return fontData.cache[index + 1] * size;\r\n }\r\n\r\n function getFontByName(name) {\r\n var i = 0;\r\n var len = this.fonts.length;\r\n\r\n while (i < len) {\r\n if (this.fonts[i].fName === name) {\r\n return this.fonts[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return this.fonts[0];\r\n }\r\n\r\n function isModifier(firstCharCode, secondCharCode) {\r\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\r\n return surrogateModifiers.indexOf(sum) !== -1;\r\n }\r\n\r\n function isZeroWidthJoiner(firstCharCode, secondCharCode) {\r\n if (!secondCharCode) {\r\n return firstCharCode === zeroWidthJoiner[1];\r\n }\r\n\r\n return firstCharCode === zeroWidthJoiner[0] && secondCharCode === zeroWidthJoiner[1];\r\n }\r\n\r\n function isCombinedCharacter(_char3) {\r\n return combinedCharacters.indexOf(_char3) !== -1;\r\n }\r\n\r\n function setIsLoaded() {\r\n this.isLoaded = true;\r\n }\r\n\r\n var Font = function Font() {\r\n this.fonts = [];\r\n this.chars = null;\r\n this.typekitLoaded = 0;\r\n this.isLoaded = false;\r\n this._warned = false;\r\n this.initTime = Date.now();\r\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\r\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\r\n };\r\n\r\n Font.isModifier = isModifier;\r\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\r\n Font.isCombinedCharacter = isCombinedCharacter;\r\n var fontPrototype = {\r\n addChars: addChars,\r\n addFonts: addFonts,\r\n getCharData: getCharData,\r\n getFontByName: getFontByName,\r\n measureText: measureText,\r\n checkLoadedFonts: checkLoadedFonts,\r\n setIsLoaded: setIsLoaded\r\n };\r\n Font.prototype = fontPrototype;\r\n return Font;\r\n }();\r\n\r\n function RenderableElement() {}\r\n\r\n RenderableElement.prototype = {\r\n initRenderable: function initRenderable() {\r\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\r\n this.isInRange = false; // layer's display state\r\n\r\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\r\n\r\n this.isTransparent = false; // list of animated components\r\n\r\n this.renderableComponents = [];\r\n },\r\n addRenderableComponent: function addRenderableComponent(component) {\r\n if (this.renderableComponents.indexOf(component) === -1) {\r\n this.renderableComponents.push(component);\r\n }\r\n },\r\n removeRenderableComponent: function removeRenderableComponent(component) {\r\n if (this.renderableComponents.indexOf(component) !== -1) {\r\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\r\n }\r\n },\r\n prepareRenderableFrame: function prepareRenderableFrame(num) {\r\n this.checkLayerLimits(num);\r\n },\r\n checkTransparency: function checkTransparency() {\r\n if (this.finalTransform.mProp.o.v <= 0) {\r\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\r\n this.isTransparent = true;\r\n this.hide();\r\n }\r\n } else if (this.isTransparent) {\r\n this.isTransparent = false;\r\n this.show();\r\n }\r\n },\r\n\r\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\r\n checkLayerLimits: function checkLayerLimits(num) {\r\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\r\n if (this.isInRange !== true) {\r\n this.globalData._mdf = true;\r\n this._mdf = true;\r\n this.isInRange = true;\r\n this.show();\r\n }\r\n } else if (this.isInRange !== false) {\r\n this.globalData._mdf = true;\r\n this.isInRange = false;\r\n this.hide();\r\n }\r\n },\r\n renderRenderable: function renderRenderable() {\r\n var i;\r\n var len = this.renderableComponents.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\r\n }\r\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\r\n\r\n },\r\n sourceRectAtTime: function sourceRectAtTime() {\r\n return {\r\n top: 0,\r\n left: 0,\r\n width: 100,\r\n height: 100\r\n };\r\n },\r\n getLayerSize: function getLayerSize() {\r\n if (this.data.ty === 5) {\r\n return {\r\n w: this.data.textData.width,\r\n h: this.data.textData.height\r\n };\r\n }\r\n\r\n return {\r\n w: this.data.width,\r\n h: this.data.height\r\n };\r\n }\r\n };\r\n\r\n var getBlendMode = function () {\r\n var blendModeEnums = {\r\n 0: 'source-over',\r\n 1: 'multiply',\r\n 2: 'screen',\r\n 3: 'overlay',\r\n 4: 'darken',\r\n 5: 'lighten',\r\n 6: 'color-dodge',\r\n 7: 'color-burn',\r\n 8: 'hard-light',\r\n 9: 'soft-light',\r\n 10: 'difference',\r\n 11: 'exclusion',\r\n 12: 'hue',\r\n 13: 'saturation',\r\n 14: 'color',\r\n 15: 'luminosity'\r\n };\r\n return function (mode) {\r\n return blendModeEnums[mode] || '';\r\n };\r\n }();\r\n\r\n function SliderEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function AngleEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function ColorEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\r\n }\r\n\r\n function PointEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\r\n }\r\n\r\n function LayerIndexEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function MaskIndexEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function CheckboxEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function NoValueEffect() {\r\n this.p = {};\r\n }\r\n\r\n function EffectsManager(data, element) {\r\n var effects = data.ef || [];\r\n this.effectElements = [];\r\n var i;\r\n var len = effects.length;\r\n var effectItem;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n effectItem = new GroupEffect(effects[i], element);\r\n this.effectElements.push(effectItem);\r\n }\r\n }\r\n\r\n function GroupEffect(data, element) {\r\n this.init(data, element);\r\n }\r\n\r\n extendPrototype([DynamicPropertyContainer], GroupEffect);\r\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\r\n\r\n GroupEffect.prototype.init = function (data, element) {\r\n this.data = data;\r\n this.effectElements = [];\r\n this.initDynamicPropertyContainer(element);\r\n var i;\r\n var len = this.data.ef.length;\r\n var eff;\r\n var effects = this.data.ef;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n eff = null;\r\n\r\n switch (effects[i].ty) {\r\n case 0:\r\n eff = new SliderEffect(effects[i], element, this);\r\n break;\r\n\r\n case 1:\r\n eff = new AngleEffect(effects[i], element, this);\r\n break;\r\n\r\n case 2:\r\n eff = new ColorEffect(effects[i], element, this);\r\n break;\r\n\r\n case 3:\r\n eff = new PointEffect(effects[i], element, this);\r\n break;\r\n\r\n case 4:\r\n case 7:\r\n eff = new CheckboxEffect(effects[i], element, this);\r\n break;\r\n\r\n case 10:\r\n eff = new LayerIndexEffect(effects[i], element, this);\r\n break;\r\n\r\n case 11:\r\n eff = new MaskIndexEffect(effects[i], element, this);\r\n break;\r\n\r\n case 5:\r\n eff = new EffectsManager(effects[i], element, this);\r\n break;\r\n // case 6:\r\n\r\n default:\r\n eff = new NoValueEffect(effects[i], element, this);\r\n break;\r\n }\r\n\r\n if (eff) {\r\n this.effectElements.push(eff);\r\n }\r\n }\r\n };\r\n\r\n function BaseElement() {}\r\n\r\n BaseElement.prototype = {\r\n checkMasks: function checkMasks() {\r\n if (!this.data.hasMask) {\r\n return false;\r\n }\r\n\r\n var i = 0;\r\n var len = this.data.masksProperties.length;\r\n\r\n while (i < len) {\r\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\r\n return true;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return false;\r\n },\r\n initExpressions: function initExpressions() {\r\n var expressionsInterfaces = getExpressionInterfaces();\r\n\r\n if (!expressionsInterfaces) {\r\n return;\r\n }\r\n\r\n var LayerExpressionInterface = expressionsInterfaces('layer');\r\n var EffectsExpressionInterface = expressionsInterfaces('effects');\r\n var ShapeExpressionInterface = expressionsInterfaces('shape');\r\n var TextExpressionInterface = expressionsInterfaces('text');\r\n var CompExpressionInterface = expressionsInterfaces('comp');\r\n this.layerInterface = LayerExpressionInterface(this);\r\n\r\n if (this.data.hasMask && this.maskManager) {\r\n this.layerInterface.registerMaskInterface(this.maskManager);\r\n }\r\n\r\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\r\n this.layerInterface.registerEffectsInterface(effectsInterface);\r\n\r\n if (this.data.ty === 0 || this.data.xt) {\r\n this.compInterface = CompExpressionInterface(this);\r\n } else if (this.data.ty === 4) {\r\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\r\n this.layerInterface.content = this.layerInterface.shapeInterface;\r\n } else if (this.data.ty === 5) {\r\n this.layerInterface.textInterface = TextExpressionInterface(this);\r\n this.layerInterface.text = this.layerInterface.textInterface;\r\n }\r\n },\r\n setBlendMode: function setBlendMode() {\r\n var blendModeValue = getBlendMode(this.data.bm);\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style['mix-blend-mode'] = blendModeValue;\r\n },\r\n initBaseData: function initBaseData(data, globalData, comp) {\r\n this.globalData = globalData;\r\n this.comp = comp;\r\n this.data = data;\r\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\r\n\r\n if (!this.data.sr) {\r\n this.data.sr = 1;\r\n } // effects manager\r\n\r\n\r\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\r\n },\r\n getType: function getType() {\r\n return this.type;\r\n },\r\n sourceRectAtTime: function sourceRectAtTime() {}\r\n };\r\n\r\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\r\n function FrameElement() {}\r\n\r\n FrameElement.prototype = {\r\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\r\n initFrame: function initFrame() {\r\n // set to true when inpoint is rendered\r\n this._isFirstFrame = false; // list of animated properties\r\n\r\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\r\n\r\n this._mdf = false;\r\n },\r\n\r\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\r\n prepareProperties: function prepareProperties(num, isVisible) {\r\n var i;\r\n var len = this.dynamicProperties.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\r\n this.dynamicProperties[i].getValue();\r\n\r\n if (this.dynamicProperties[i]._mdf) {\r\n this.globalData._mdf = true;\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n },\r\n addDynamicProperty: function addDynamicProperty(prop) {\r\n if (this.dynamicProperties.indexOf(prop) === -1) {\r\n this.dynamicProperties.push(prop);\r\n }\r\n }\r\n };\r\n\r\n function FootageElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initRenderable();\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\r\n this.initBaseData(data, globalData, comp);\r\n }\r\n\r\n FootageElement.prototype.prepareFrame = function () {};\r\n\r\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\r\n\r\n FootageElement.prototype.getBaseElement = function () {\r\n return null;\r\n };\r\n\r\n FootageElement.prototype.renderFrame = function () {};\r\n\r\n FootageElement.prototype.destroy = function () {};\r\n\r\n FootageElement.prototype.initExpressions = function () {\r\n var expressionsInterfaces = getExpressionInterfaces();\r\n\r\n if (!expressionsInterfaces) {\r\n return;\r\n }\r\n\r\n var FootageInterface = expressionsInterfaces('footage');\r\n this.layerInterface = FootageInterface(this);\r\n };\r\n\r\n FootageElement.prototype.getFootageData = function () {\r\n return this.footageData;\r\n };\r\n\r\n function AudioElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initRenderable();\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initBaseData(data, globalData, comp);\r\n this._isPlaying = false;\r\n this._canPlay = false;\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n this.audio = this.globalData.audioController.createAudio(assetPath);\r\n this._currentTime = 0;\r\n this.globalData.audioController.addAudio(this);\r\n this._volumeMultiplier = 1;\r\n this._volume = 1;\r\n this._previousVolume = null;\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\r\n _placeholder: true\r\n };\r\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\r\n k: [100]\r\n }, 1, 0.01, this);\r\n }\r\n\r\n AudioElement.prototype.prepareFrame = function (num) {\r\n this.prepareRenderableFrame(num, true);\r\n this.prepareProperties(num, true);\r\n\r\n if (!this.tm._placeholder) {\r\n var timeRemapped = this.tm.v;\r\n this._currentTime = timeRemapped;\r\n } else {\r\n this._currentTime = num / this.data.sr;\r\n }\r\n\r\n this._volume = this.lv.v[0];\r\n var totalVolume = this._volume * this._volumeMultiplier;\r\n\r\n if (this._previousVolume !== totalVolume) {\r\n this._previousVolume = totalVolume;\r\n this.audio.volume(totalVolume);\r\n }\r\n };\r\n\r\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\r\n\r\n AudioElement.prototype.renderFrame = function () {\r\n if (this.isInRange && this._canPlay) {\r\n if (!this._isPlaying) {\r\n this.audio.play();\r\n this.audio.seek(this._currentTime / this.globalData.frameRate);\r\n this._isPlaying = true;\r\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\r\n this.audio.seek(this._currentTime / this.globalData.frameRate);\r\n }\r\n }\r\n };\r\n\r\n AudioElement.prototype.show = function () {// this.audio.play()\r\n };\r\n\r\n AudioElement.prototype.hide = function () {\r\n this.audio.pause();\r\n this._isPlaying = false;\r\n };\r\n\r\n AudioElement.prototype.pause = function () {\r\n this.audio.pause();\r\n this._isPlaying = false;\r\n this._canPlay = false;\r\n };\r\n\r\n AudioElement.prototype.resume = function () {\r\n this._canPlay = true;\r\n };\r\n\r\n AudioElement.prototype.setRate = function (rateValue) {\r\n this.audio.rate(rateValue);\r\n };\r\n\r\n AudioElement.prototype.volume = function (volumeValue) {\r\n this._volumeMultiplier = volumeValue;\r\n this._previousVolume = volumeValue * this._volume;\r\n this.audio.volume(this._previousVolume);\r\n };\r\n\r\n AudioElement.prototype.getBaseElement = function () {\r\n return null;\r\n };\r\n\r\n AudioElement.prototype.destroy = function () {};\r\n\r\n AudioElement.prototype.sourceRectAtTime = function () {};\r\n\r\n AudioElement.prototype.initExpressions = function () {};\r\n\r\n function BaseRenderer() {}\r\n\r\n BaseRenderer.prototype.checkLayers = function (num) {\r\n var i;\r\n var len = this.layers.length;\r\n var data;\r\n this.completeLayers = true;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (!this.elements[i]) {\r\n data = this.layers[i];\r\n\r\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\r\n this.buildItem(i);\r\n }\r\n }\r\n\r\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\r\n }\r\n\r\n this.checkPendingElements();\r\n };\r\n\r\n BaseRenderer.prototype.createItem = function (layer) {\r\n switch (layer.ty) {\r\n case 2:\r\n return this.createImage(layer);\r\n\r\n case 0:\r\n return this.createComp(layer);\r\n\r\n case 1:\r\n return this.createSolid(layer);\r\n\r\n case 3:\r\n return this.createNull(layer);\r\n\r\n case 4:\r\n return this.createShape(layer);\r\n\r\n case 5:\r\n return this.createText(layer);\r\n\r\n case 6:\r\n return this.createAudio(layer);\r\n\r\n case 13:\r\n return this.createCamera(layer);\r\n\r\n case 15:\r\n return this.createFootage(layer);\r\n\r\n default:\r\n return this.createNull(layer);\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.createCamera = function () {\r\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\r\n };\r\n\r\n BaseRenderer.prototype.createAudio = function (data) {\r\n return new AudioElement(data, this.globalData, this);\r\n };\r\n\r\n BaseRenderer.prototype.createFootage = function (data) {\r\n return new FootageElement(data, this.globalData, this);\r\n };\r\n\r\n BaseRenderer.prototype.buildAllItems = function () {\r\n var i;\r\n var len = this.layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.buildItem(i);\r\n }\r\n\r\n this.checkPendingElements();\r\n };\r\n\r\n BaseRenderer.prototype.includeLayers = function (newLayers) {\r\n this.completeLayers = false;\r\n var i;\r\n var len = newLayers.length;\r\n var j;\r\n var jLen = this.layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n j = 0;\r\n\r\n while (j < jLen) {\r\n if (this.layers[j].id === newLayers[i].id) {\r\n this.layers[j] = newLayers[i];\r\n break;\r\n }\r\n\r\n j += 1;\r\n }\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\r\n this.globalData.projectInterface = pInterface;\r\n };\r\n\r\n BaseRenderer.prototype.initItems = function () {\r\n if (!this.globalData.progressiveLoad) {\r\n this.buildAllItems();\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\r\n var elements = this.elements;\r\n var layers = this.layers;\r\n var i = 0;\r\n var len = layers.length;\r\n\r\n while (i < len) {\r\n if (layers[i].ind == parentName) {\r\n // eslint-disable-line eqeqeq\r\n if (!elements[i] || elements[i] === true) {\r\n this.buildItem(i);\r\n this.addPendingElement(element);\r\n } else {\r\n hierarchy.push(elements[i]);\r\n elements[i].setAsParent();\r\n\r\n if (layers[i].parent !== undefined) {\r\n this.buildElementParenting(element, layers[i].parent, hierarchy);\r\n } else {\r\n element.setHierarchy(hierarchy);\r\n }\r\n }\r\n }\r\n\r\n i += 1;\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.addPendingElement = function (element) {\r\n this.pendingElements.push(element);\r\n };\r\n\r\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\r\n var i;\r\n var len = assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (assets[i].xt) {\r\n var comp = this.createComp(assets[i]);\r\n comp.initExpressions();\r\n this.globalData.projectInterface.registerComposition(comp);\r\n }\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.getElementById = function (ind) {\r\n var i;\r\n var len = this.elements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i].data.ind === ind) {\r\n return this.elements[i];\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n BaseRenderer.prototype.getElementByPath = function (path) {\r\n var pathValue = path.shift();\r\n var element;\r\n\r\n if (typeof pathValue === 'number') {\r\n element = this.elements[pathValue];\r\n } else {\r\n var i;\r\n var len = this.elements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i].data.nm === pathValue) {\r\n element = this.elements[i];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (path.length === 0) {\r\n return element;\r\n }\r\n\r\n return element.getElementByPath(path);\r\n };\r\n\r\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\r\n this.globalData.fontManager = new FontManager();\r\n this.globalData.fontManager.addChars(animData.chars);\r\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\r\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\r\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\r\n this.globalData.imageLoader = this.animationItem.imagePreloader;\r\n this.globalData.audioController = this.animationItem.audioController;\r\n this.globalData.frameId = 0;\r\n this.globalData.frameRate = animData.fr;\r\n this.globalData.nm = animData.nm;\r\n this.globalData.compSize = {\r\n w: animData.w,\r\n h: animData.h\r\n };\r\n };\r\n\r\n function TransformElement() {}\r\n\r\n TransformElement.prototype = {\r\n initTransform: function initTransform() {\r\n this.finalTransform = {\r\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\r\n o: 0\r\n },\r\n _matMdf: false,\r\n _opMdf: false,\r\n mat: new Matrix()\r\n };\r\n\r\n if (this.data.ao) {\r\n this.finalTransform.mProp.autoOriented = true;\r\n } // TODO: check TYPE 11: Guided elements\r\n\r\n\r\n if (this.data.ty !== 11) {// this.createElements();\r\n }\r\n },\r\n renderTransform: function renderTransform() {\r\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\r\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\r\n\r\n if (this.hierarchy) {\r\n var mat;\r\n var finalMat = this.finalTransform.mat;\r\n var i = 0;\r\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\r\n\r\n if (!this.finalTransform._matMdf) {\r\n while (i < len) {\r\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\r\n this.finalTransform._matMdf = true;\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n\r\n if (this.finalTransform._matMdf) {\r\n mat = this.finalTransform.mProp.v.props;\r\n finalMat.cloneFromProps(mat);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n mat = this.hierarchy[i].finalTransform.mProp.v.props;\r\n finalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);\r\n }\r\n }\r\n }\r\n },\r\n globalToLocal: function globalToLocal(pt) {\r\n var transforms = [];\r\n transforms.push(this.finalTransform);\r\n var flag = true;\r\n var comp = this.comp;\r\n\r\n while (flag) {\r\n if (comp.finalTransform) {\r\n if (comp.data.hasMask) {\r\n transforms.splice(0, 0, comp.finalTransform);\r\n }\r\n\r\n comp = comp.comp;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n\r\n var i;\r\n var len = transforms.length;\r\n var ptNew;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\r\n\r\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\r\n }\r\n\r\n return pt;\r\n },\r\n mHelper: new Matrix()\r\n };\r\n\r\n function MaskElement(data, element, globalData) {\r\n this.data = data;\r\n this.element = element;\r\n this.globalData = globalData;\r\n this.storedData = [];\r\n this.masksProperties = this.data.masksProperties || [];\r\n this.maskElement = null;\r\n var defs = this.globalData.defs;\r\n var i;\r\n var len = this.masksProperties ? this.masksProperties.length : 0;\r\n this.viewData = createSizedArray(len);\r\n this.solidPath = '';\r\n var path;\r\n var properties = this.masksProperties;\r\n var count = 0;\r\n var currentMasks = [];\r\n var j;\r\n var jLen;\r\n var layerId = createElementID();\r\n var rect;\r\n var expansor;\r\n var feMorph;\r\n var x;\r\n var maskType = 'clipPath';\r\n var maskRef = 'clip-path';\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\r\n maskType = 'mask';\r\n maskRef = 'mask';\r\n }\r\n\r\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\r\n rect = createNS('rect');\r\n rect.setAttribute('fill', '#ffffff');\r\n rect.setAttribute('width', this.element.comp.data.w || 0);\r\n rect.setAttribute('height', this.element.comp.data.h || 0);\r\n currentMasks.push(rect);\r\n } else {\r\n rect = null;\r\n }\r\n\r\n path = createNS('path');\r\n\r\n if (properties[i].mode === 'n') {\r\n // TODO move this to a factory or to a constructor\r\n this.viewData[i] = {\r\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\r\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\r\n elem: path,\r\n lastPath: ''\r\n };\r\n defs.appendChild(path);\r\n } else {\r\n count += 1;\r\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\r\n path.setAttribute('clip-rule', 'nonzero');\r\n var filterID;\r\n\r\n if (properties[i].x.k !== 0) {\r\n maskType = 'mask';\r\n maskRef = 'mask';\r\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\r\n filterID = createElementID();\r\n expansor = createNS('filter');\r\n expansor.setAttribute('id', filterID);\r\n feMorph = createNS('feMorphology');\r\n feMorph.setAttribute('operator', 'erode');\r\n feMorph.setAttribute('in', 'SourceGraphic');\r\n feMorph.setAttribute('radius', '0');\r\n expansor.appendChild(feMorph);\r\n defs.appendChild(expansor);\r\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\r\n } else {\r\n feMorph = null;\r\n x = null;\r\n } // TODO move this to a factory or to a constructor\r\n\r\n\r\n this.storedData[i] = {\r\n elem: path,\r\n x: x,\r\n expan: feMorph,\r\n lastPath: '',\r\n lastOperator: '',\r\n filterId: filterID,\r\n lastRadius: 0\r\n };\r\n\r\n if (properties[i].mode === 'i') {\r\n jLen = currentMasks.length;\r\n var g = createNS('g');\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n g.appendChild(currentMasks[j]);\r\n }\r\n\r\n var mask = createNS('mask');\r\n mask.setAttribute('mask-type', 'alpha');\r\n mask.setAttribute('id', layerId + '_' + count);\r\n mask.appendChild(path);\r\n defs.appendChild(mask);\r\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\r\n currentMasks.length = 0;\r\n currentMasks.push(g);\r\n } else {\r\n currentMasks.push(path);\r\n }\r\n\r\n if (properties[i].inv && !this.solidPath) {\r\n this.solidPath = this.createLayerSolidPath();\r\n } // TODO move this to a factory or to a constructor\r\n\r\n\r\n this.viewData[i] = {\r\n elem: path,\r\n lastPath: '',\r\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\r\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\r\n invRect: rect\r\n };\r\n\r\n if (!this.viewData[i].prop.k) {\r\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\r\n }\r\n }\r\n }\r\n\r\n this.maskElement = createNS(maskType);\r\n len = currentMasks.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.maskElement.appendChild(currentMasks[i]);\r\n }\r\n\r\n if (count > 0) {\r\n this.maskElement.setAttribute('id', layerId);\r\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\r\n defs.appendChild(this.maskElement);\r\n }\r\n\r\n if (this.viewData.length) {\r\n this.element.addRenderableComponent(this);\r\n }\r\n }\r\n\r\n MaskElement.prototype.getMaskProperty = function (pos) {\r\n return this.viewData[pos].prop;\r\n };\r\n\r\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\r\n var finalMat = this.element.finalTransform.mat;\r\n var i;\r\n var len = this.masksProperties.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.viewData[i].prop._mdf || isFirstFrame) {\r\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\r\n }\r\n\r\n if (this.viewData[i].op._mdf || isFirstFrame) {\r\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\r\n }\r\n\r\n if (this.masksProperties[i].mode !== 'n') {\r\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\r\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\r\n }\r\n\r\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\r\n var feMorph = this.storedData[i].expan;\r\n\r\n if (this.storedData[i].x.v < 0) {\r\n if (this.storedData[i].lastOperator !== 'erode') {\r\n this.storedData[i].lastOperator = 'erode';\r\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\r\n }\r\n\r\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\r\n } else {\r\n if (this.storedData[i].lastOperator !== 'dilate') {\r\n this.storedData[i].lastOperator = 'dilate';\r\n this.storedData[i].elem.setAttribute('filter', null);\r\n }\r\n\r\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n MaskElement.prototype.getMaskelement = function () {\r\n return this.maskElement;\r\n };\r\n\r\n MaskElement.prototype.createLayerSolidPath = function () {\r\n var path = 'M0,0 ';\r\n path += ' h' + this.globalData.compSize.w;\r\n path += ' v' + this.globalData.compSize.h;\r\n path += ' h-' + this.globalData.compSize.w;\r\n path += ' v-' + this.globalData.compSize.h + ' ';\r\n return path;\r\n };\r\n\r\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\r\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\r\n var i;\r\n var len;\r\n len = pathNodes._length;\r\n\r\n for (i = 1; i < len; i += 1) {\r\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\r\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\r\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\r\n\r\n\r\n if (pathNodes.c && len > 1) {\r\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\r\n } // pathNodes.__renderedString = pathString;\r\n\r\n\r\n if (viewData.lastPath !== pathString) {\r\n var pathShapeValue = '';\r\n\r\n if (viewData.elem) {\r\n if (pathNodes.c) {\r\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\r\n }\r\n\r\n viewData.elem.setAttribute('d', pathShapeValue);\r\n }\r\n\r\n viewData.lastPath = pathString;\r\n }\r\n };\r\n\r\n MaskElement.prototype.destroy = function () {\r\n this.element = null;\r\n this.globalData = null;\r\n this.maskElement = null;\r\n this.data = null;\r\n this.masksProperties = null;\r\n };\r\n\r\n var filtersFactory = function () {\r\n var ob = {};\r\n ob.createFilter = createFilter;\r\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\r\n\r\n function createFilter(filId, skipCoordinates) {\r\n var fil = createNS('filter');\r\n fil.setAttribute('id', filId);\r\n\r\n if (skipCoordinates !== true) {\r\n fil.setAttribute('filterUnits', 'objectBoundingBox');\r\n fil.setAttribute('x', '0%');\r\n fil.setAttribute('y', '0%');\r\n fil.setAttribute('width', '100%');\r\n fil.setAttribute('height', '100%');\r\n }\r\n\r\n return fil;\r\n }\r\n\r\n function createAlphaToLuminanceFilter() {\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\r\n return feColorMatrix;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var featureSupport = function () {\r\n var ob = {\r\n maskType: true,\r\n svgLumaHidden: true,\r\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\r\n };\r\n\r\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\r\n ob.maskType = false;\r\n }\r\n\r\n if (/firefox/i.test(navigator.userAgent)) {\r\n ob.svgLumaHidden = false;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var registeredEffects = {};\r\n var idPrefix = 'filter_result_';\r\n\r\n function SVGEffects(elem) {\r\n var i;\r\n var source = 'SourceGraphic';\r\n var len = elem.data.ef ? elem.data.ef.length : 0;\r\n var filId = createElementID();\r\n var fil = filtersFactory.createFilter(filId, true);\r\n var count = 0;\r\n this.filters = [];\r\n var filterManager;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n filterManager = null;\r\n var type = elem.data.ef[i].ty;\r\n\r\n if (registeredEffects[type]) {\r\n var Effect = registeredEffects[type].effect;\r\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\r\n source = idPrefix + count;\r\n\r\n if (registeredEffects[type].countsAsEffect) {\r\n count += 1;\r\n }\r\n }\r\n\r\n if (filterManager) {\r\n this.filters.push(filterManager);\r\n }\r\n }\r\n\r\n if (count) {\r\n elem.globalData.defs.appendChild(fil);\r\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\r\n }\r\n\r\n if (this.filters.length) {\r\n elem.addRenderableComponent(this);\r\n }\r\n }\r\n\r\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\r\n var i;\r\n var len = this.filters.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.filters[i].renderFrame(_isFirstFrame);\r\n }\r\n };\r\n\r\n function registerEffect(id, effect, countsAsEffect) {\r\n registeredEffects[id] = {\r\n effect: effect,\r\n countsAsEffect: countsAsEffect\r\n };\r\n }\r\n\r\n function SVGBaseElement() {}\r\n\r\n SVGBaseElement.prototype = {\r\n initRendererElement: function initRendererElement() {\r\n this.layerElement = createNS('g');\r\n },\r\n createContainerElements: function createContainerElements() {\r\n this.matteElement = createNS('g');\r\n this.transformedElement = this.layerElement;\r\n this.maskedElement = this.layerElement;\r\n this._sizeChanged = false;\r\n var layerElementParent = null; // If this layer acts as a mask for the following layer\r\n\r\n if (this.data.td) {\r\n this.matteMasks = {};\r\n var gg = createNS('g');\r\n gg.setAttribute('id', this.layerId);\r\n gg.appendChild(this.layerElement);\r\n layerElementParent = gg;\r\n this.globalData.defs.appendChild(gg);\r\n } else if (this.data.tt) {\r\n this.matteElement.appendChild(this.layerElement);\r\n layerElementParent = this.matteElement;\r\n this.baseElement = this.matteElement;\r\n } else {\r\n this.baseElement = this.layerElement;\r\n }\r\n\r\n if (this.data.ln) {\r\n this.layerElement.setAttribute('id', this.data.ln);\r\n }\r\n\r\n if (this.data.cl) {\r\n this.layerElement.setAttribute('class', this.data.cl);\r\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\r\n\r\n\r\n if (this.data.ty === 0 && !this.data.hd) {\r\n var cp = createNS('clipPath');\r\n var pt = createNS('path');\r\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\r\n var clipId = createElementID();\r\n cp.setAttribute('id', clipId);\r\n cp.appendChild(pt);\r\n this.globalData.defs.appendChild(cp);\r\n\r\n if (this.checkMasks()) {\r\n var cpGroup = createNS('g');\r\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\r\n cpGroup.appendChild(this.layerElement);\r\n this.transformedElement = cpGroup;\r\n\r\n if (layerElementParent) {\r\n layerElementParent.appendChild(this.transformedElement);\r\n } else {\r\n this.baseElement = this.transformedElement;\r\n }\r\n } else {\r\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\r\n }\r\n }\r\n\r\n if (this.data.bm !== 0) {\r\n this.setBlendMode();\r\n }\r\n },\r\n renderElement: function renderElement() {\r\n if (this.finalTransform._matMdf) {\r\n this.transformedElement.setAttribute('transform', this.finalTransform.mat.to2dCSS());\r\n }\r\n\r\n if (this.finalTransform._opMdf) {\r\n this.transformedElement.setAttribute('opacity', this.finalTransform.mProp.o.v);\r\n }\r\n },\r\n destroyBaseElement: function destroyBaseElement() {\r\n this.layerElement = null;\r\n this.matteElement = null;\r\n this.maskManager.destroy();\r\n },\r\n getBaseElement: function getBaseElement() {\r\n if (this.data.hd) {\r\n return null;\r\n }\r\n\r\n return this.baseElement;\r\n },\r\n createRenderableComponents: function createRenderableComponents() {\r\n this.maskManager = new MaskElement(this.data, this, this.globalData);\r\n this.renderableEffectsManager = new SVGEffects(this);\r\n },\r\n getMatte: function getMatte(matteType) {\r\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\r\n // It solves animations that have two consecutive layers marked as matte masks.\r\n // Which is an undefined behavior in AE.\r\n if (!this.matteMasks) {\r\n this.matteMasks = {};\r\n }\r\n\r\n if (!this.matteMasks[matteType]) {\r\n var id = this.layerId + '_' + matteType;\r\n var filId;\r\n var fil;\r\n var useElement;\r\n var gg;\r\n\r\n if (matteType === 1 || matteType === 3) {\r\n var masker = createNS('mask');\r\n masker.setAttribute('id', id);\r\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\r\n useElement = createNS('use');\r\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\r\n masker.appendChild(useElement);\r\n this.globalData.defs.appendChild(masker);\r\n\r\n if (!featureSupport.maskType && matteType === 1) {\r\n masker.setAttribute('mask-type', 'luminance');\r\n filId = createElementID();\r\n fil = filtersFactory.createFilter(filId);\r\n this.globalData.defs.appendChild(fil);\r\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\r\n gg = createNS('g');\r\n gg.appendChild(useElement);\r\n masker.appendChild(gg);\r\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\r\n }\r\n } else if (matteType === 2) {\r\n var maskGroup = createNS('mask');\r\n maskGroup.setAttribute('id', id);\r\n maskGroup.setAttribute('mask-type', 'alpha');\r\n var maskGrouper = createNS('g');\r\n maskGroup.appendChild(maskGrouper);\r\n filId = createElementID();\r\n fil = filtersFactory.createFilter(filId); /// /\r\n\r\n var feCTr = createNS('feComponentTransfer');\r\n feCTr.setAttribute('in', 'SourceGraphic');\r\n fil.appendChild(feCTr);\r\n var feFunc = createNS('feFuncA');\r\n feFunc.setAttribute('type', 'table');\r\n feFunc.setAttribute('tableValues', '1.0 0.0');\r\n feCTr.appendChild(feFunc); /// /\r\n\r\n this.globalData.defs.appendChild(fil);\r\n var alphaRect = createNS('rect');\r\n alphaRect.setAttribute('width', this.comp.data.w);\r\n alphaRect.setAttribute('height', this.comp.data.h);\r\n alphaRect.setAttribute('x', '0');\r\n alphaRect.setAttribute('y', '0');\r\n alphaRect.setAttribute('fill', '#ffffff');\r\n alphaRect.setAttribute('opacity', '0');\r\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\r\n maskGrouper.appendChild(alphaRect);\r\n useElement = createNS('use');\r\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\r\n maskGrouper.appendChild(useElement);\r\n\r\n if (!featureSupport.maskType) {\r\n maskGroup.setAttribute('mask-type', 'luminance');\r\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\r\n gg = createNS('g');\r\n maskGrouper.appendChild(alphaRect);\r\n gg.appendChild(this.layerElement);\r\n maskGrouper.appendChild(gg);\r\n }\r\n\r\n this.globalData.defs.appendChild(maskGroup);\r\n }\r\n\r\n this.matteMasks[matteType] = id;\r\n }\r\n\r\n return this.matteMasks[matteType];\r\n },\r\n setMatte: function setMatte(id) {\r\n if (!this.matteElement) {\r\n return;\r\n }\r\n\r\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\r\n }\r\n };\r\n\r\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\r\n function HierarchyElement() {}\r\n\r\n HierarchyElement.prototype = {\r\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\r\n initHierarchy: function initHierarchy() {\r\n // element's parent list\r\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\r\n\r\n this._isParent = false;\r\n this.checkParenting();\r\n },\r\n\r\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\r\n setHierarchy: function setHierarchy(hierarchy) {\r\n this.hierarchy = hierarchy;\r\n },\r\n\r\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\r\n setAsParent: function setAsParent() {\r\n this._isParent = true;\r\n },\r\n\r\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\r\n checkParenting: function checkParenting() {\r\n if (this.data.parent !== undefined) {\r\n this.comp.buildElementParenting(this, this.data.parent, []);\r\n }\r\n }\r\n };\r\n\r\n function RenderableDOMElement() {}\r\n\r\n (function () {\r\n var _prototype = {\r\n initElement: function initElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n this.initRenderable();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n this.createContent();\r\n this.hide();\r\n },\r\n hide: function hide() {\r\n // console.log('HIDE', this);\r\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style.display = 'none';\r\n this.hidden = true;\r\n }\r\n },\r\n show: function show() {\r\n // console.log('SHOW', this);\r\n if (this.isInRange && !this.isTransparent) {\r\n if (!this.data.hd) {\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style.display = 'block';\r\n }\r\n\r\n this.hidden = false;\r\n this._isFirstFrame = true;\r\n }\r\n },\r\n renderFrame: function renderFrame() {\r\n // If it is exported as hidden (data.hd === true) no need to render\r\n // If it is not visible no need to render\r\n if (this.data.hd || this.hidden) {\r\n return;\r\n }\r\n\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.renderElement();\r\n this.renderInnerContent();\r\n\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n renderInnerContent: function renderInnerContent() {},\r\n prepareFrame: function prepareFrame(num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n this.checkTransparency();\r\n },\r\n destroy: function destroy() {\r\n this.innerElem = null;\r\n this.destroyBaseElement();\r\n }\r\n };\r\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\r\n })();\r\n\r\n function IImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initElement(data, globalData, comp);\r\n this.sourceRect = {\r\n top: 0,\r\n left: 0,\r\n width: this.assetData.w,\r\n height: this.assetData.h\r\n };\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\r\n\r\n IImageElement.prototype.createContent = function () {\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n this.innerElem = createNS('image');\r\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\r\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\r\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\r\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\r\n this.layerElement.appendChild(this.innerElem);\r\n };\r\n\r\n IImageElement.prototype.sourceRectAtTime = function () {\r\n return this.sourceRect;\r\n };\r\n\r\n function ProcessedElement(element, position) {\r\n this.elem = element;\r\n this.pos = position;\r\n }\r\n\r\n function IShapeElement() {}\r\n\r\n IShapeElement.prototype = {\r\n addShapeToModifiers: function addShapeToModifiers(data) {\r\n var i;\r\n var len = this.shapeModifiers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.shapeModifiers[i].addShape(data);\r\n }\r\n },\r\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\r\n var i = 0;\r\n var len = this.shapeModifiers.length;\r\n\r\n while (i < len) {\r\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n },\r\n renderModifiers: function renderModifiers() {\r\n if (!this.shapeModifiers.length) {\r\n return;\r\n }\r\n\r\n var i;\r\n var len = this.shapes.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.shapes[i].sh.reset();\r\n }\r\n\r\n len = this.shapeModifiers.length;\r\n var shouldBreakProcess;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\r\n // TODO: find a better solution for this\r\n\r\n if (shouldBreakProcess) {\r\n break;\r\n }\r\n }\r\n },\r\n searchProcessedElement: function searchProcessedElement(elem) {\r\n var elements = this.processedElements;\r\n var i = 0;\r\n var len = elements.length;\r\n\r\n while (i < len) {\r\n if (elements[i].elem === elem) {\r\n return elements[i].pos;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return 0;\r\n },\r\n addProcessedElement: function addProcessedElement(elem, pos) {\r\n var elements = this.processedElements;\r\n var i = elements.length;\r\n\r\n while (i) {\r\n i -= 1;\r\n\r\n if (elements[i].elem === elem) {\r\n elements[i].pos = pos;\r\n return;\r\n }\r\n }\r\n\r\n elements.push(new ProcessedElement(elem, pos));\r\n },\r\n prepareFrame: function prepareFrame(num) {\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n }\r\n };\r\n\r\n var lineCapEnum = {\r\n 1: 'butt',\r\n 2: 'round',\r\n 3: 'square'\r\n };\r\n var lineJoinEnum = {\r\n 1: 'miter',\r\n 2: 'round',\r\n 3: 'bevel'\r\n };\r\n\r\n function SVGShapeData(transformers, level, shape) {\r\n this.caches = [];\r\n this.styles = [];\r\n this.transformers = transformers;\r\n this.lStr = '';\r\n this.sh = shape;\r\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\r\n // For now, since shapes add up with other shapes. They have to be calculated every time.\r\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\r\n\r\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\r\n\r\n var i = 0;\r\n var len = transformers.length;\r\n\r\n while (i < len) {\r\n if (transformers[i].mProps.dynamicProperties.length) {\r\n this._isAnimated = true;\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n\r\n SVGShapeData.prototype.setAsAnimated = function () {\r\n this._isAnimated = true;\r\n };\r\n\r\n function SVGStyleData(data, level) {\r\n this.data = data;\r\n this.type = data.ty;\r\n this.d = '';\r\n this.lvl = level;\r\n this._mdf = false;\r\n this.closed = data.hd === true;\r\n this.pElem = createNS('path');\r\n this.msElem = null;\r\n }\r\n\r\n SVGStyleData.prototype.reset = function () {\r\n this.d = '';\r\n this._mdf = false;\r\n };\r\n\r\n function DashProperty(elem, data, renderer, container) {\r\n this.elem = elem;\r\n this.frameId = -1;\r\n this.dataProps = createSizedArray(data.length);\r\n this.renderer = renderer;\r\n this.k = false;\r\n this.dashStr = '';\r\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\r\n this.dashoffset = createTypedArray('float32', 1);\r\n this.initDynamicPropertyContainer(container);\r\n var i;\r\n var len = data.length || 0;\r\n var prop;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\r\n this.k = prop.k || this.k;\r\n this.dataProps[i] = {\r\n n: data[i].n,\r\n p: prop\r\n };\r\n }\r\n\r\n if (!this.k) {\r\n this.getValue(true);\r\n }\r\n\r\n this._isAnimated = this.k;\r\n }\r\n\r\n DashProperty.prototype.getValue = function (forceRender) {\r\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\r\n return;\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n this._mdf = this._mdf || forceRender;\r\n\r\n if (this._mdf) {\r\n var i = 0;\r\n var len = this.dataProps.length;\r\n\r\n if (this.renderer === 'svg') {\r\n this.dashStr = '';\r\n }\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.dataProps[i].n !== 'o') {\r\n if (this.renderer === 'svg') {\r\n this.dashStr += ' ' + this.dataProps[i].p.v;\r\n } else {\r\n this.dashArray[i] = this.dataProps[i].p.v;\r\n }\r\n } else {\r\n this.dashoffset[0] = this.dataProps[i].p.v;\r\n }\r\n }\r\n }\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], DashProperty);\r\n\r\n function SVGStrokeStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\r\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\r\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\r\n this.style = styleOb;\r\n this._isAnimated = !!this._isAnimated;\r\n }\r\n\r\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\r\n\r\n function SVGFillStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\r\n this.style = styleOb;\r\n }\r\n\r\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\r\n\r\n function SVGNoStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.style = styleOb;\r\n }\r\n\r\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\r\n\r\n function GradientProperty(elem, data, container) {\r\n this.data = data;\r\n this.c = createTypedArray('uint8c', data.p * 4);\r\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\r\n this.o = createTypedArray('float32', cLength);\r\n this._cmdf = false;\r\n this._omdf = false;\r\n this._collapsable = this.checkCollapsable();\r\n this._hasOpacity = cLength;\r\n this.initDynamicPropertyContainer(container);\r\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\r\n this.k = this.prop.k;\r\n this.getValue(true);\r\n }\r\n\r\n GradientProperty.prototype.comparePoints = function (values, points) {\r\n var i = 0;\r\n var len = this.o.length / 2;\r\n var diff;\r\n\r\n while (i < len) {\r\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\r\n\r\n if (diff > 0.01) {\r\n return false;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n GradientProperty.prototype.checkCollapsable = function () {\r\n if (this.o.length / 2 !== this.c.length / 4) {\r\n return false;\r\n }\r\n\r\n if (this.data.k.k[0].s) {\r\n var i = 0;\r\n var len = this.data.k.k.length;\r\n\r\n while (i < len) {\r\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\r\n return false;\r\n }\r\n\r\n i += 1;\r\n }\r\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n GradientProperty.prototype.getValue = function (forceRender) {\r\n this.prop.getValue();\r\n this._mdf = false;\r\n this._cmdf = false;\r\n this._omdf = false;\r\n\r\n if (this.prop._mdf || forceRender) {\r\n var i;\r\n var len = this.data.p * 4;\r\n var mult;\r\n var val;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n mult = i % 4 === 0 ? 100 : 255;\r\n val = Math.round(this.prop.v[i] * mult);\r\n\r\n if (this.c[i] !== val) {\r\n this.c[i] = val;\r\n this._cmdf = !forceRender;\r\n }\r\n }\r\n\r\n if (this.o.length) {\r\n len = this.prop.v.length;\r\n\r\n for (i = this.data.p * 4; i < len; i += 1) {\r\n mult = i % 2 === 0 ? 100 : 1;\r\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\r\n\r\n if (this.o[i - this.data.p * 4] !== val) {\r\n this.o[i - this.data.p * 4] = val;\r\n this._omdf = !forceRender;\r\n }\r\n }\r\n }\r\n\r\n this._mdf = !forceRender;\r\n }\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], GradientProperty);\r\n\r\n function SVGGradientFillStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.initGradientData(elem, data, styleOb);\r\n }\r\n\r\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\r\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\r\n this.h = PropertyFactory.getProp(elem, data.h || {\r\n k: 0\r\n }, 0, 0.01, this);\r\n this.a = PropertyFactory.getProp(elem, data.a || {\r\n k: 0\r\n }, 0, degToRads, this);\r\n this.g = new GradientProperty(elem, data.g, this);\r\n this.style = styleOb;\r\n this.stops = [];\r\n this.setGradientData(styleOb.pElem, data);\r\n this.setGradientOpacity(data, styleOb);\r\n this._isAnimated = !!this._isAnimated;\r\n };\r\n\r\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\r\n var gradientId = createElementID();\r\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\r\n gfill.setAttribute('id', gradientId);\r\n gfill.setAttribute('spreadMethod', 'pad');\r\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\r\n var stops = [];\r\n var stop;\r\n var j;\r\n var jLen;\r\n jLen = data.g.p * 4;\r\n\r\n for (j = 0; j < jLen; j += 4) {\r\n stop = createNS('stop');\r\n gfill.appendChild(stop);\r\n stops.push(stop);\r\n }\r\n\r\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\r\n this.gf = gfill;\r\n this.cst = stops;\r\n };\r\n\r\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\r\n if (this.g._hasOpacity && !this.g._collapsable) {\r\n var stop;\r\n var j;\r\n var jLen;\r\n var mask = createNS('mask');\r\n var maskElement = createNS('path');\r\n mask.appendChild(maskElement);\r\n var opacityId = createElementID();\r\n var maskId = createElementID();\r\n mask.setAttribute('id', maskId);\r\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\r\n opFill.setAttribute('id', opacityId);\r\n opFill.setAttribute('spreadMethod', 'pad');\r\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\r\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\r\n var stops = this.stops;\r\n\r\n for (j = data.g.p * 4; j < jLen; j += 2) {\r\n stop = createNS('stop');\r\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\r\n opFill.appendChild(stop);\r\n stops.push(stop);\r\n }\r\n\r\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\r\n\r\n if (data.ty === 'gs') {\r\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\r\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\r\n\r\n if (data.lj === 1) {\r\n maskElement.setAttribute('stroke-miterlimit', data.ml);\r\n }\r\n }\r\n\r\n this.of = opFill;\r\n this.ms = mask;\r\n this.ost = stops;\r\n this.maskId = maskId;\r\n styleOb.msElem = maskElement;\r\n }\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\r\n\r\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\r\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\r\n this.initGradientData(elem, data, styleOb);\r\n this._isAnimated = !!this._isAnimated;\r\n }\r\n\r\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\r\n\r\n function ShapeGroupData() {\r\n this.it = [];\r\n this.prevViewData = [];\r\n this.gr = createNS('g');\r\n }\r\n\r\n function SVGTransformData(mProps, op, container) {\r\n this.transform = {\r\n mProps: mProps,\r\n op: op,\r\n container: container\r\n };\r\n this.elements = [];\r\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\r\n }\r\n\r\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\r\n if (length === 0) {\r\n return '';\r\n }\r\n\r\n var _o = pathNodes.o;\r\n var _i = pathNodes.i;\r\n var _v = pathNodes.v;\r\n var i;\r\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\r\n\r\n for (i = 1; i < length; i += 1) {\r\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\r\n }\r\n\r\n if (closed && length) {\r\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\r\n shapeString += 'z';\r\n }\r\n\r\n return shapeString;\r\n };\r\n\r\n var SVGElementsRenderer = function () {\r\n var _identityMatrix = new Matrix();\r\n\r\n var _matrixHelper = new Matrix();\r\n\r\n var ob = {\r\n createRenderFunction: createRenderFunction\r\n };\r\n\r\n function createRenderFunction(data) {\r\n switch (data.ty) {\r\n case 'fl':\r\n return renderFill;\r\n\r\n case 'gf':\r\n return renderGradient;\r\n\r\n case 'gs':\r\n return renderGradientStroke;\r\n\r\n case 'st':\r\n return renderStroke;\r\n\r\n case 'sh':\r\n case 'el':\r\n case 'rc':\r\n case 'sr':\r\n return renderPath;\r\n\r\n case 'tr':\r\n return renderContentTransform;\r\n\r\n case 'no':\r\n return renderNoop;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n function renderContentTransform(styleData, itemData, isFirstFrame) {\r\n if (isFirstFrame || itemData.transform.op._mdf) {\r\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\r\n }\r\n\r\n if (isFirstFrame || itemData.transform.mProps._mdf) {\r\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\r\n }\r\n }\r\n\r\n function renderNoop() {}\r\n\r\n function renderPath(styleData, itemData, isFirstFrame) {\r\n var j;\r\n var jLen;\r\n var pathStringTransformed;\r\n var redraw;\r\n var pathNodes;\r\n var l;\r\n var lLen = itemData.styles.length;\r\n var lvl = itemData.lvl;\r\n var paths;\r\n var mat;\r\n var props;\r\n var iterations;\r\n var k;\r\n\r\n for (l = 0; l < lLen; l += 1) {\r\n redraw = itemData.sh._mdf || isFirstFrame;\r\n\r\n if (itemData.styles[l].lvl < lvl) {\r\n mat = _matrixHelper.reset();\r\n iterations = lvl - itemData.styles[l].lvl;\r\n k = itemData.transformers.length - 1;\r\n\r\n while (!redraw && iterations > 0) {\r\n redraw = itemData.transformers[k].mProps._mdf || redraw;\r\n iterations -= 1;\r\n k -= 1;\r\n }\r\n\r\n if (redraw) {\r\n iterations = lvl - itemData.styles[l].lvl;\r\n k = itemData.transformers.length - 1;\r\n\r\n while (iterations > 0) {\r\n props = itemData.transformers[k].mProps.v.props;\r\n mat.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\r\n iterations -= 1;\r\n k -= 1;\r\n }\r\n }\r\n } else {\r\n mat = _identityMatrix;\r\n }\r\n\r\n paths = itemData.sh.paths;\r\n jLen = paths._length;\r\n\r\n if (redraw) {\r\n pathStringTransformed = '';\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n pathNodes = paths.shapes[j];\r\n\r\n if (pathNodes && pathNodes._length) {\r\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\r\n }\r\n }\r\n\r\n itemData.caches[l] = pathStringTransformed;\r\n } else {\r\n pathStringTransformed = itemData.caches[l];\r\n }\r\n\r\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\r\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\r\n }\r\n }\r\n\r\n function renderFill(styleData, itemData, isFirstFrame) {\r\n var styleElem = itemData.style;\r\n\r\n if (itemData.c._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\r\n }\r\n\r\n if (itemData.o._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\r\n }\r\n }\r\n\r\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\r\n renderGradient(styleData, itemData, isFirstFrame);\r\n renderStroke(styleData, itemData, isFirstFrame);\r\n }\r\n\r\n function renderGradient(styleData, itemData, isFirstFrame) {\r\n var gfill = itemData.gf;\r\n var hasOpacity = itemData.g._hasOpacity;\r\n var pt1 = itemData.s.v;\r\n var pt2 = itemData.e.v;\r\n\r\n if (itemData.o._mdf || isFirstFrame) {\r\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\r\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\r\n }\r\n\r\n if (itemData.s._mdf || isFirstFrame) {\r\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\r\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\r\n gfill.setAttribute(attr1, pt1[0]);\r\n gfill.setAttribute(attr2, pt1[1]);\r\n\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute(attr1, pt1[0]);\r\n itemData.of.setAttribute(attr2, pt1[1]);\r\n }\r\n }\r\n\r\n var stops;\r\n var i;\r\n var len;\r\n var stop;\r\n\r\n if (itemData.g._cmdf || isFirstFrame) {\r\n stops = itemData.cst;\r\n var cValues = itemData.g.c;\r\n len = stops.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n stop = stops[i];\r\n stop.setAttribute('offset', cValues[i * 4] + '%');\r\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\r\n }\r\n }\r\n\r\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\r\n var oValues = itemData.g.o;\r\n\r\n if (itemData.g._collapsable) {\r\n stops = itemData.cst;\r\n } else {\r\n stops = itemData.ost;\r\n }\r\n\r\n len = stops.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n stop = stops[i];\r\n\r\n if (!itemData.g._collapsable) {\r\n stop.setAttribute('offset', oValues[i * 2] + '%');\r\n }\r\n\r\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\r\n }\r\n }\r\n\r\n if (styleData.t === 1) {\r\n if (itemData.e._mdf || isFirstFrame) {\r\n gfill.setAttribute('x2', pt2[0]);\r\n gfill.setAttribute('y2', pt2[1]);\r\n\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('x2', pt2[0]);\r\n itemData.of.setAttribute('y2', pt2[1]);\r\n }\r\n }\r\n } else {\r\n var rad;\r\n\r\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\r\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n gfill.setAttribute('r', rad);\r\n\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('r', rad);\r\n }\r\n }\r\n\r\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\r\n if (!rad) {\r\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n }\r\n\r\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\r\n var percent = itemData.h.v;\r\n\r\n if (percent >= 1) {\r\n percent = 0.99;\r\n } else if (percent <= -1) {\r\n percent = -0.99;\r\n }\r\n\r\n var dist = rad * percent;\r\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\r\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\r\n gfill.setAttribute('fx', x);\r\n gfill.setAttribute('fy', y);\r\n\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('fx', x);\r\n itemData.of.setAttribute('fy', y);\r\n }\r\n } // gfill.setAttribute('fy','200');\r\n\r\n }\r\n }\r\n\r\n function renderStroke(styleData, itemData, isFirstFrame) {\r\n var styleElem = itemData.style;\r\n var d = itemData.d;\r\n\r\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\r\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\r\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\r\n }\r\n\r\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\r\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\r\n }\r\n\r\n if (itemData.o._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\r\n }\r\n\r\n if (itemData.w._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\r\n\r\n if (styleElem.msElem) {\r\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\r\n }\r\n }\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n function SVGShapeElement(data, globalData, comp) {\r\n // List of drawable elements\r\n this.shapes = []; // Full shape data\r\n\r\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\r\n\r\n this.stylesList = []; // List of modifiers that will be applied to shapes\r\n\r\n this.shapeModifiers = []; // List of items in shape tree\r\n\r\n this.itemsData = []; // List of items in previous shape tree\r\n\r\n this.processedElements = []; // List of animated components\r\n\r\n this.animatedContents = [];\r\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\r\n // List of elements that have been created\r\n\r\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\r\n\r\n SVGShapeElement.prototype.initSecondaryElement = function () {};\r\n\r\n SVGShapeElement.prototype.identityMatrix = new Matrix();\r\n\r\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\r\n\r\n SVGShapeElement.prototype.createContent = function () {\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\r\n this.filterUniqueShapes();\r\n };\r\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\r\n\r\n\r\n SVGShapeElement.prototype.filterUniqueShapes = function () {\r\n var i;\r\n var len = this.shapes.length;\r\n var shape;\r\n var j;\r\n var jLen = this.stylesList.length;\r\n var style;\r\n var tempShapes = [];\r\n var areAnimated = false;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n style = this.stylesList[j];\r\n areAnimated = false;\r\n tempShapes.length = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shape = this.shapes[i];\r\n\r\n if (shape.styles.indexOf(style) !== -1) {\r\n tempShapes.push(shape);\r\n areAnimated = shape._isAnimated || areAnimated;\r\n }\r\n }\r\n\r\n if (tempShapes.length > 1 && areAnimated) {\r\n this.setShapesAsAnimated(tempShapes);\r\n }\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\r\n var i;\r\n var len = shapes.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapes[i].setAsAnimated();\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\r\n // TODO: prevent drawing of hidden styles\r\n var elementData;\r\n var styleOb = new SVGStyleData(data, level);\r\n var pathElement = styleOb.pElem;\r\n\r\n if (data.ty === 'st') {\r\n elementData = new SVGStrokeStyleData(this, data, styleOb);\r\n } else if (data.ty === 'fl') {\r\n elementData = new SVGFillStyleData(this, data, styleOb);\r\n } else if (data.ty === 'gf' || data.ty === 'gs') {\r\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\r\n elementData = new GradientConstructor(this, data, styleOb);\r\n this.globalData.defs.appendChild(elementData.gf);\r\n\r\n if (elementData.maskId) {\r\n this.globalData.defs.appendChild(elementData.ms);\r\n this.globalData.defs.appendChild(elementData.of);\r\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\r\n }\r\n } else if (data.ty === 'no') {\r\n elementData = new SVGNoStyleData(this, data, styleOb);\r\n }\r\n\r\n if (data.ty === 'st' || data.ty === 'gs') {\r\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\r\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\r\n pathElement.setAttribute('fill-opacity', '0');\r\n\r\n if (data.lj === 1) {\r\n pathElement.setAttribute('stroke-miterlimit', data.ml);\r\n }\r\n }\r\n\r\n if (data.r === 2) {\r\n pathElement.setAttribute('fill-rule', 'evenodd');\r\n }\r\n\r\n if (data.ln) {\r\n pathElement.setAttribute('id', data.ln);\r\n }\r\n\r\n if (data.cl) {\r\n pathElement.setAttribute('class', data.cl);\r\n }\r\n\r\n if (data.bm) {\r\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\r\n }\r\n\r\n this.stylesList.push(styleOb);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n };\r\n\r\n SVGShapeElement.prototype.createGroupElement = function (data) {\r\n var elementData = new ShapeGroupData();\r\n\r\n if (data.ln) {\r\n elementData.gr.setAttribute('id', data.ln);\r\n }\r\n\r\n if (data.cl) {\r\n elementData.gr.setAttribute('class', data.cl);\r\n }\r\n\r\n if (data.bm) {\r\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\r\n }\r\n\r\n return elementData;\r\n };\r\n\r\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\r\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\r\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n };\r\n\r\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\r\n var ty = 4;\r\n\r\n if (data.ty === 'rc') {\r\n ty = 5;\r\n } else if (data.ty === 'el') {\r\n ty = 6;\r\n } else if (data.ty === 'sr') {\r\n ty = 7;\r\n }\r\n\r\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\r\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\r\n this.shapes.push(elementData);\r\n this.addShapeToModifiers(elementData);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n };\r\n\r\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\r\n var i = 0;\r\n var len = this.animatedContents.length;\r\n\r\n while (i < len) {\r\n if (this.animatedContents[i].element === element) {\r\n return;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n this.animatedContents.push({\r\n fn: SVGElementsRenderer.createRenderFunction(data),\r\n element: element,\r\n data: data\r\n });\r\n };\r\n\r\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\r\n var arr = elementData.styles;\r\n var j;\r\n var jLen = this.stylesList.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (!this.stylesList[j].closed) {\r\n arr.push(this.stylesList[j]);\r\n }\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.reloadShapes = function () {\r\n this._isFirstFrame = true;\r\n var i;\r\n var len = this.itemsData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.prevViewData[i] = this.itemsData[i];\r\n }\r\n\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\r\n this.filterUniqueShapes();\r\n len = this.dynamicProperties.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n }\r\n\r\n this.renderModifiers();\r\n };\r\n\r\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\r\n var ownTransformers = [].concat(transformers);\r\n var i;\r\n var len = arr.length - 1;\r\n var j;\r\n var jLen;\r\n var ownStyles = [];\r\n var ownModifiers = [];\r\n var currentTransform;\r\n var modifier;\r\n var processedPos;\r\n\r\n for (i = len; i >= 0; i -= 1) {\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n\r\n if (!processedPos) {\r\n arr[i]._render = render;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n\r\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createStyleElement(arr[i], level);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n\r\n if (arr[i]._render) {\r\n if (itemsData[i].style.pElem.parentNode !== container) {\r\n container.appendChild(itemsData[i].style.pElem);\r\n }\r\n }\r\n\r\n ownStyles.push(itemsData[i].style);\r\n } else if (arr[i].ty === 'gr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\r\n }\r\n }\r\n\r\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\r\n\r\n if (arr[i]._render) {\r\n if (itemsData[i].gr.parentNode !== container) {\r\n container.appendChild(itemsData[i].gr);\r\n }\r\n }\r\n } else if (arr[i].ty === 'tr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createTransformElement(arr[i], container);\r\n }\r\n\r\n currentTransform = itemsData[i].transform;\r\n ownTransformers.push(currentTransform);\r\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\r\n }\r\n\r\n this.setElementStyles(itemsData[i]);\r\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n modifier.init(this, arr[i]);\r\n itemsData[i] = modifier;\r\n this.shapeModifiers.push(modifier);\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = false;\r\n }\r\n\r\n ownModifiers.push(modifier);\r\n } else if (arr[i].ty === 'rp') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n itemsData[i] = modifier;\r\n modifier.init(this, arr, i, itemsData);\r\n this.shapeModifiers.push(modifier);\r\n render = false;\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = true;\r\n }\r\n\r\n ownModifiers.push(modifier);\r\n }\r\n\r\n this.addProcessedElement(arr[i], i + 1);\r\n }\r\n\r\n len = ownStyles.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ownStyles[i].closed = true;\r\n }\r\n\r\n len = ownModifiers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ownModifiers[i].closed = true;\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.renderInnerContent = function () {\r\n this.renderModifiers();\r\n var i;\r\n var len = this.stylesList.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.stylesList[i].reset();\r\n }\r\n\r\n this.renderShape();\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\r\n if (this.stylesList[i].msElem) {\r\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\r\n\r\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\r\n }\r\n\r\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\r\n }\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.renderShape = function () {\r\n var i;\r\n var len = this.animatedContents.length;\r\n var animatedContent;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n animatedContent = this.animatedContents[i];\r\n\r\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\r\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\r\n }\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.destroy = function () {\r\n this.destroyBaseElement();\r\n this.shapesData = null;\r\n this.itemsData = null;\r\n };\r\n\r\n function LetterProps(o, sw, sc, fc, m, p) {\r\n this.o = o;\r\n this.sw = sw;\r\n this.sc = sc;\r\n this.fc = fc;\r\n this.m = m;\r\n this.p = p;\r\n this._mdf = {\r\n o: true,\r\n sw: !!sw,\r\n sc: !!sc,\r\n fc: !!fc,\r\n m: true,\r\n p: true\r\n };\r\n }\r\n\r\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\r\n this._mdf.o = false;\r\n this._mdf.sw = false;\r\n this._mdf.sc = false;\r\n this._mdf.fc = false;\r\n this._mdf.m = false;\r\n this._mdf.p = false;\r\n var updated = false;\r\n\r\n if (this.o !== o) {\r\n this.o = o;\r\n this._mdf.o = true;\r\n updated = true;\r\n }\r\n\r\n if (this.sw !== sw) {\r\n this.sw = sw;\r\n this._mdf.sw = true;\r\n updated = true;\r\n }\r\n\r\n if (this.sc !== sc) {\r\n this.sc = sc;\r\n this._mdf.sc = true;\r\n updated = true;\r\n }\r\n\r\n if (this.fc !== fc) {\r\n this.fc = fc;\r\n this._mdf.fc = true;\r\n updated = true;\r\n }\r\n\r\n if (this.m !== m) {\r\n this.m = m;\r\n this._mdf.m = true;\r\n updated = true;\r\n }\r\n\r\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\r\n this.p = p;\r\n this._mdf.p = true;\r\n updated = true;\r\n }\r\n\r\n return updated;\r\n };\r\n\r\n function TextProperty(elem, data) {\r\n this._frameId = initialDefaultFrame;\r\n this.pv = '';\r\n this.v = '';\r\n this.kf = false;\r\n this._isFirstFrame = true;\r\n this._mdf = false;\r\n this.data = data;\r\n this.elem = elem;\r\n this.comp = this.elem.comp;\r\n this.keysIndex = 0;\r\n this.canResize = false;\r\n this.minimumFontSize = 1;\r\n this.effectsSequence = [];\r\n this.currentData = {\r\n ascent: 0,\r\n boxWidth: this.defaultBoxWidth,\r\n f: '',\r\n fStyle: '',\r\n fWeight: '',\r\n fc: '',\r\n j: '',\r\n justifyOffset: '',\r\n l: [],\r\n lh: 0,\r\n lineWidths: [],\r\n ls: '',\r\n of: '',\r\n s: '',\r\n sc: '',\r\n sw: 0,\r\n t: 0,\r\n tr: 0,\r\n sz: 0,\r\n ps: null,\r\n fillColorAnim: false,\r\n strokeColorAnim: false,\r\n strokeWidthAnim: false,\r\n yOffset: 0,\r\n finalSize: 0,\r\n finalText: [],\r\n finalLineHeight: 0,\r\n __complete: false\r\n };\r\n this.copyData(this.currentData, this.data.d.k[0].s);\r\n\r\n if (!this.searchProperty()) {\r\n this.completeTextData(this.currentData);\r\n }\r\n }\r\n\r\n TextProperty.prototype.defaultBoxWidth = [0, 0];\r\n\r\n TextProperty.prototype.copyData = function (obj, data) {\r\n for (var s in data) {\r\n if (Object.prototype.hasOwnProperty.call(data, s)) {\r\n obj[s] = data[s];\r\n }\r\n }\r\n\r\n return obj;\r\n };\r\n\r\n TextProperty.prototype.setCurrentData = function (data) {\r\n if (!data.__complete) {\r\n this.completeTextData(data);\r\n }\r\n\r\n this.currentData = data;\r\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\r\n this._mdf = true;\r\n };\r\n\r\n TextProperty.prototype.searchProperty = function () {\r\n return this.searchKeyframes();\r\n };\r\n\r\n TextProperty.prototype.searchKeyframes = function () {\r\n this.kf = this.data.d.k.length > 1;\r\n\r\n if (this.kf) {\r\n this.addEffect(this.getKeyframeValue.bind(this));\r\n }\r\n\r\n return this.kf;\r\n };\r\n\r\n TextProperty.prototype.addEffect = function (effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.elem.addDynamicProperty(this);\r\n };\r\n\r\n TextProperty.prototype.getValue = function (_finalValue) {\r\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\r\n return;\r\n }\r\n\r\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\r\n var currentValue = this.currentData;\r\n var currentIndex = this.keysIndex;\r\n\r\n if (this.lock) {\r\n this.setCurrentData(this.currentData);\r\n return;\r\n }\r\n\r\n this.lock = true;\r\n this._mdf = false;\r\n var i;\r\n var len = this.effectsSequence.length;\r\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n // Checking if index changed to prevent creating a new object every time the expression updates.\r\n if (currentIndex !== this.keysIndex) {\r\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\r\n } else {\r\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\r\n }\r\n }\r\n\r\n if (currentValue !== finalValue) {\r\n this.setCurrentData(finalValue);\r\n }\r\n\r\n this.v = this.currentData;\r\n this.pv = this.v;\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n };\r\n\r\n TextProperty.prototype.getKeyframeValue = function () {\r\n var textKeys = this.data.d.k;\r\n var frameNum = this.elem.comp.renderedFrame;\r\n var i = 0;\r\n var len = textKeys.length;\r\n\r\n while (i <= len - 1) {\r\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (this.keysIndex !== i) {\r\n this.keysIndex = i;\r\n }\r\n\r\n return this.data.d.k[this.keysIndex].s;\r\n };\r\n\r\n TextProperty.prototype.buildFinalText = function (text) {\r\n var charactersArray = [];\r\n var i = 0;\r\n var len = text.length;\r\n var charCode;\r\n var secondCharCode;\r\n var shouldCombine = false;\r\n\r\n while (i < len) {\r\n charCode = text.charCodeAt(i);\r\n\r\n if (FontManager.isCombinedCharacter(charCode)) {\r\n charactersArray[charactersArray.length - 1] += text.charAt(i);\r\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\r\n secondCharCode = text.charCodeAt(i + 1);\r\n\r\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\r\n if (shouldCombine || FontManager.isModifier(charCode, secondCharCode)) {\r\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\r\n shouldCombine = false;\r\n } else {\r\n charactersArray.push(text.substr(i, 2));\r\n }\r\n\r\n i += 1;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n } else if (charCode > 0xDBFF) {\r\n secondCharCode = text.charCodeAt(i + 1);\r\n\r\n if (FontManager.isZeroWidthJoiner(charCode, secondCharCode)) {\r\n shouldCombine = true;\r\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\r\n i += 1;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\r\n charactersArray[charactersArray.length - 1] += text.charAt(i);\r\n shouldCombine = true;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return charactersArray;\r\n };\r\n\r\n TextProperty.prototype.completeTextData = function (documentData) {\r\n documentData.__complete = true;\r\n var fontManager = this.elem.globalData.fontManager;\r\n var data = this.data;\r\n var letters = [];\r\n var i;\r\n var len;\r\n var newLineFlag;\r\n var index = 0;\r\n var val;\r\n var anchorGrouping = data.m.g;\r\n var currentSize = 0;\r\n var currentPos = 0;\r\n var currentLine = 0;\r\n var lineWidths = [];\r\n var lineWidth = 0;\r\n var maxLineWidth = 0;\r\n var j;\r\n var jLen;\r\n var fontData = fontManager.getFontByName(documentData.f);\r\n var charData;\r\n var cLength = 0;\r\n var fontProps = getFontProperties(fontData);\r\n documentData.fWeight = fontProps.weight;\r\n documentData.fStyle = fontProps.style;\r\n documentData.finalSize = documentData.s;\r\n documentData.finalText = this.buildFinalText(documentData.t);\r\n len = documentData.finalText.length;\r\n documentData.finalLineHeight = documentData.lh;\r\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\r\n var charCode;\r\n\r\n if (documentData.sz) {\r\n var flag = true;\r\n var boxWidth = documentData.sz[0];\r\n var boxHeight = documentData.sz[1];\r\n var currentHeight;\r\n var finalText;\r\n\r\n while (flag) {\r\n finalText = this.buildFinalText(documentData.t);\r\n currentHeight = 0;\r\n lineWidth = 0;\r\n len = finalText.length;\r\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\r\n var lastSpaceIndex = -1;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n charCode = finalText[i].charCodeAt(0);\r\n newLineFlag = false;\r\n\r\n if (finalText[i] === ' ') {\r\n lastSpaceIndex = i;\r\n } else if (charCode === 13 || charCode === 3) {\r\n lineWidth = 0;\r\n newLineFlag = true;\r\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n }\r\n\r\n if (fontManager.chars) {\r\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\r\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\r\n } else {\r\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\r\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\r\n }\r\n\r\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\r\n if (lastSpaceIndex === -1) {\r\n len += 1;\r\n } else {\r\n i = lastSpaceIndex;\r\n }\r\n\r\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\r\n\r\n lastSpaceIndex = -1;\r\n lineWidth = 0;\r\n } else {\r\n lineWidth += cLength;\r\n lineWidth += trackingOffset;\r\n }\r\n }\r\n\r\n currentHeight += fontData.ascent * documentData.finalSize / 100;\r\n\r\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\r\n documentData.finalSize -= 1;\r\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\r\n } else {\r\n documentData.finalText = finalText;\r\n len = documentData.finalText.length;\r\n flag = false;\r\n }\r\n }\r\n }\r\n\r\n lineWidth = -trackingOffset;\r\n cLength = 0;\r\n var uncollapsedSpaces = 0;\r\n var currentChar;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n newLineFlag = false;\r\n currentChar = documentData.finalText[i];\r\n charCode = currentChar.charCodeAt(0);\r\n\r\n if (charCode === 13 || charCode === 3) {\r\n uncollapsedSpaces = 0;\r\n lineWidths.push(lineWidth);\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidth = -2 * trackingOffset;\r\n val = '';\r\n newLineFlag = true;\r\n currentLine += 1;\r\n } else {\r\n val = currentChar;\r\n }\r\n\r\n if (fontManager.chars) {\r\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\r\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\r\n } else {\r\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\r\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\r\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\r\n } //\r\n\r\n\r\n if (currentChar === ' ') {\r\n uncollapsedSpaces += cLength + trackingOffset;\r\n } else {\r\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\r\n uncollapsedSpaces = 0;\r\n }\r\n\r\n letters.push({\r\n l: cLength,\r\n an: cLength,\r\n add: currentSize,\r\n n: newLineFlag,\r\n anIndexes: [],\r\n val: val,\r\n line: currentLine,\r\n animatorJustifyOffset: 0\r\n });\r\n\r\n if (anchorGrouping == 2) {\r\n // eslint-disable-line eqeqeq\r\n currentSize += cLength;\r\n\r\n if (val === '' || val === ' ' || i === len - 1) {\r\n if (val === '' || val === ' ') {\r\n currentSize -= cLength;\r\n }\r\n\r\n while (currentPos <= i) {\r\n letters[currentPos].an = currentSize;\r\n letters[currentPos].ind = index;\r\n letters[currentPos].extra = cLength;\r\n currentPos += 1;\r\n }\r\n\r\n index += 1;\r\n currentSize = 0;\r\n }\r\n } else if (anchorGrouping == 3) {\r\n // eslint-disable-line eqeqeq\r\n currentSize += cLength;\r\n\r\n if (val === '' || i === len - 1) {\r\n if (val === '') {\r\n currentSize -= cLength;\r\n }\r\n\r\n while (currentPos <= i) {\r\n letters[currentPos].an = currentSize;\r\n letters[currentPos].ind = index;\r\n letters[currentPos].extra = cLength;\r\n currentPos += 1;\r\n }\r\n\r\n currentSize = 0;\r\n index += 1;\r\n }\r\n } else {\r\n letters[index].ind = index;\r\n letters[index].extra = 0;\r\n index += 1;\r\n }\r\n }\r\n\r\n documentData.l = letters;\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidths.push(lineWidth);\r\n\r\n if (documentData.sz) {\r\n documentData.boxWidth = documentData.sz[0];\r\n documentData.justifyOffset = 0;\r\n } else {\r\n documentData.boxWidth = maxLineWidth;\r\n\r\n switch (documentData.j) {\r\n case 1:\r\n documentData.justifyOffset = -documentData.boxWidth;\r\n break;\r\n\r\n case 2:\r\n documentData.justifyOffset = -documentData.boxWidth / 2;\r\n break;\r\n\r\n default:\r\n documentData.justifyOffset = 0;\r\n }\r\n }\r\n\r\n documentData.lineWidths = lineWidths;\r\n var animators = data.a;\r\n var animatorData;\r\n var letterData;\r\n jLen = animators.length;\r\n var based;\r\n var ind;\r\n var indexes = [];\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorData = animators[j];\r\n\r\n if (animatorData.a.sc) {\r\n documentData.strokeColorAnim = true;\r\n }\r\n\r\n if (animatorData.a.sw) {\r\n documentData.strokeWidthAnim = true;\r\n }\r\n\r\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\r\n documentData.fillColorAnim = true;\r\n }\r\n\r\n ind = 0;\r\n based = animatorData.s.b;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n letterData = letters[i];\r\n letterData.anIndexes[j] = ind;\r\n\r\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\r\n // eslint-disable-line eqeqeq\r\n if (animatorData.s.rn === 1) {\r\n indexes.push(ind);\r\n }\r\n\r\n ind += 1;\r\n }\r\n }\r\n\r\n data.a[j].s.totalChars = ind;\r\n var currentInd = -1;\r\n var newInd;\r\n\r\n if (animatorData.s.rn === 1) {\r\n for (i = 0; i < len; i += 1) {\r\n letterData = letters[i];\r\n\r\n if (currentInd != letterData.anIndexes[j]) {\r\n // eslint-disable-line eqeqeq\r\n currentInd = letterData.anIndexes[j];\r\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\r\n }\r\n\r\n letterData.anIndexes[j] = newInd;\r\n }\r\n }\r\n }\r\n\r\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n documentData.ls = documentData.ls || 0;\r\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\r\n };\r\n\r\n TextProperty.prototype.updateDocumentData = function (newData, index) {\r\n index = index === undefined ? this.keysIndex : index;\r\n var dData = this.copyData({}, this.data.d.k[index].s);\r\n dData = this.copyData(dData, newData);\r\n this.data.d.k[index].s = dData;\r\n this.recalculate(index);\r\n this.elem.addDynamicProperty(this);\r\n };\r\n\r\n TextProperty.prototype.recalculate = function (index) {\r\n var dData = this.data.d.k[index].s;\r\n dData.__complete = false;\r\n this.keysIndex = 0;\r\n this._isFirstFrame = true;\r\n this.getValue(dData);\r\n };\r\n\r\n TextProperty.prototype.canResizeFont = function (_canResize) {\r\n this.canResize = _canResize;\r\n this.recalculate(this.keysIndex);\r\n this.elem.addDynamicProperty(this);\r\n };\r\n\r\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\r\n this.minimumFontSize = Math.floor(_fontValue) || 1;\r\n this.recalculate(this.keysIndex);\r\n this.elem.addDynamicProperty(this);\r\n };\r\n\r\n var TextSelectorProp = function () {\r\n var max = Math.max;\r\n var min = Math.min;\r\n var floor = Math.floor;\r\n\r\n function TextSelectorPropFactory(elem, data) {\r\n this._currentTextLength = -1;\r\n this.k = false;\r\n this.data = data;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.finalS = 0;\r\n this.finalE = 0;\r\n this.initDynamicPropertyContainer(elem);\r\n this.s = PropertyFactory.getProp(elem, data.s || {\r\n k: 0\r\n }, 0, 0, this);\r\n\r\n if ('e' in data) {\r\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\r\n } else {\r\n this.e = {\r\n v: 100\r\n };\r\n }\r\n\r\n this.o = PropertyFactory.getProp(elem, data.o || {\r\n k: 0\r\n }, 0, 0, this);\r\n this.xe = PropertyFactory.getProp(elem, data.xe || {\r\n k: 0\r\n }, 0, 0, this);\r\n this.ne = PropertyFactory.getProp(elem, data.ne || {\r\n k: 0\r\n }, 0, 0, this);\r\n this.sm = PropertyFactory.getProp(elem, data.sm || {\r\n k: 100\r\n }, 0, 0, this);\r\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\r\n\r\n if (!this.dynamicProperties.length) {\r\n this.getValue();\r\n }\r\n }\r\n\r\n TextSelectorPropFactory.prototype = {\r\n getMult: function getMult(ind) {\r\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\r\n this.getValue();\r\n }\r\n\r\n var x1 = 0;\r\n var y1 = 0;\r\n var x2 = 1;\r\n var y2 = 1;\r\n\r\n if (this.ne.v > 0) {\r\n x1 = this.ne.v / 100.0;\r\n } else {\r\n y1 = -this.ne.v / 100.0;\r\n }\r\n\r\n if (this.xe.v > 0) {\r\n x2 = 1.0 - this.xe.v / 100.0;\r\n } else {\r\n y2 = 1.0 + this.xe.v / 100.0;\r\n }\r\n\r\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\r\n var mult = 0;\r\n var s = this.finalS;\r\n var e = this.finalE;\r\n var type = this.data.sh;\r\n\r\n if (type === 2) {\r\n if (e === s) {\r\n mult = ind >= e ? 1 : 0;\r\n } else {\r\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n }\r\n\r\n mult = easer(mult);\r\n } else if (type === 3) {\r\n if (e === s) {\r\n mult = ind >= e ? 0 : 1;\r\n } else {\r\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n }\r\n\r\n mult = easer(mult);\r\n } else if (type === 4) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n\r\n if (mult < 0.5) {\r\n mult *= 2;\r\n } else {\r\n mult = 1 - 2 * (mult - 0.5);\r\n }\r\n }\r\n\r\n mult = easer(mult);\r\n } else if (type === 5) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n var tot = e - s;\r\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\r\n\r\n ind = min(max(0, ind + 0.5 - s), e - s);\r\n var x = -tot / 2 + ind;\r\n var a = tot / 2;\r\n mult = Math.sqrt(1 - x * x / (a * a));\r\n }\r\n\r\n mult = easer(mult);\r\n } else if (type === 6) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n ind = min(max(0, ind + 0.5 - s), e - s);\r\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\r\n }\r\n\r\n mult = easer(mult);\r\n } else {\r\n if (ind >= floor(s)) {\r\n if (ind - s < 0) {\r\n mult = max(0, min(min(e, 1) - (s - ind), 1));\r\n } else {\r\n mult = max(0, min(e - ind, 1));\r\n }\r\n }\r\n\r\n mult = easer(mult);\r\n } // Smoothness implementation.\r\n // The smoothness represents a reduced range of the original [0; 1] range.\r\n // if smoothness is 25%, the new range will be [0.375; 0.625]\r\n // Steps are:\r\n // - find the lower value of the new range (threshold)\r\n // - if multiplier is smaller than that value, floor it to 0\r\n // - if it is larger,\r\n // - subtract the threshold\r\n // - divide it by the smoothness (this will return the range to [0; 1])\r\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\r\n\r\n\r\n if (this.sm.v !== 100) {\r\n var smoothness = this.sm.v * 0.01;\r\n\r\n if (smoothness === 0) {\r\n smoothness = 0.00000001;\r\n }\r\n\r\n var threshold = 0.5 - smoothness * 0.5;\r\n\r\n if (mult < threshold) {\r\n mult = 0;\r\n } else {\r\n mult = (mult - threshold) / smoothness;\r\n\r\n if (mult > 1) {\r\n mult = 1;\r\n }\r\n }\r\n }\r\n\r\n return mult * this.a.v;\r\n },\r\n getValue: function getValue(newCharsFlag) {\r\n this.iterateDynamicProperties();\r\n this._mdf = newCharsFlag || this._mdf;\r\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\r\n\r\n if (newCharsFlag && this.data.r === 2) {\r\n this.e.v = this._currentTextLength;\r\n }\r\n\r\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\r\n var o = this.o.v / divisor;\r\n var s = this.s.v / divisor + o;\r\n var e = this.e.v / divisor + o;\r\n\r\n if (s > e) {\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n\r\n this.finalS = s;\r\n this.finalE = e;\r\n }\r\n };\r\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\r\n\r\n function getTextSelectorProp(elem, data, arr) {\r\n return new TextSelectorPropFactory(elem, data, arr);\r\n }\r\n\r\n return {\r\n getTextSelectorProp: getTextSelectorProp\r\n };\r\n }();\r\n\r\n function TextAnimatorDataProperty(elem, animatorProps, container) {\r\n var defaultData = {\r\n propType: false\r\n };\r\n var getProp = PropertyFactory.getProp;\r\n var textAnimatorAnimatables = animatorProps.a;\r\n this.a = {\r\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\r\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\r\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\r\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\r\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\r\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\r\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\r\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\r\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\r\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\r\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\r\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\r\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\r\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\r\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\r\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\r\n };\r\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\r\n this.s.t = animatorProps.s.t;\r\n }\r\n\r\n function TextAnimatorProperty(textData, renderType, elem) {\r\n this._isFirstFrame = true;\r\n this._hasMaskedPath = false;\r\n this._frameId = -1;\r\n this._textData = textData;\r\n this._renderType = renderType;\r\n this._elem = elem;\r\n this._animatorsData = createSizedArray(this._textData.a.length);\r\n this._pathData = {};\r\n this._moreOptions = {\r\n alignment: {}\r\n };\r\n this.renderedLetters = [];\r\n this.lettersChangedFlag = false;\r\n this.initDynamicPropertyContainer(elem);\r\n }\r\n\r\n TextAnimatorProperty.prototype.searchProperties = function () {\r\n var i;\r\n var len = this._textData.a.length;\r\n var animatorProps;\r\n var getProp = PropertyFactory.getProp;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n animatorProps = this._textData.a[i];\r\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\r\n }\r\n\r\n if (this._textData.p && 'm' in this._textData.p) {\r\n this._pathData = {\r\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\r\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\r\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\r\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\r\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\r\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\r\n };\r\n this._hasMaskedPath = true;\r\n } else {\r\n this._hasMaskedPath = false;\r\n }\r\n\r\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\r\n };\r\n\r\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\r\n this.lettersChangedFlag = lettersChangedFlag;\r\n\r\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\r\n return;\r\n }\r\n\r\n this._isFirstFrame = false;\r\n var alignment = this._moreOptions.alignment.v;\r\n var animators = this._animatorsData;\r\n var textData = this._textData;\r\n var matrixHelper = this.mHelper;\r\n var renderType = this._renderType;\r\n var renderedLettersCount = this.renderedLetters.length;\r\n var xPos;\r\n var yPos;\r\n var i;\r\n var len;\r\n var letters = documentData.l;\r\n var pathInfo;\r\n var currentLength;\r\n var currentPoint;\r\n var segmentLength;\r\n var flag;\r\n var pointInd;\r\n var segmentInd;\r\n var prevPoint;\r\n var points;\r\n var segments;\r\n var partialLength;\r\n var totalLength;\r\n var perc;\r\n var tanAngle;\r\n var mask;\r\n\r\n if (this._hasMaskedPath) {\r\n mask = this._pathData.m;\r\n\r\n if (!this._pathData.n || this._pathData._mdf) {\r\n var paths = mask.v;\r\n\r\n if (this._pathData.r.v) {\r\n paths = paths.reverse();\r\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\r\n\r\n\r\n pathInfo = {\r\n tLength: 0,\r\n segments: []\r\n };\r\n len = paths._length - 1;\r\n var bezierData;\r\n totalLength = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\r\n pathInfo.tLength += bezierData.segmentLength;\r\n pathInfo.segments.push(bezierData);\r\n totalLength += bezierData.segmentLength;\r\n }\r\n\r\n i = len;\r\n\r\n if (mask.v.c) {\r\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\r\n pathInfo.tLength += bezierData.segmentLength;\r\n pathInfo.segments.push(bezierData);\r\n totalLength += bezierData.segmentLength;\r\n }\r\n\r\n this._pathData.pi = pathInfo;\r\n }\r\n\r\n pathInfo = this._pathData.pi;\r\n currentLength = this._pathData.f.v;\r\n segmentInd = 0;\r\n pointInd = 1;\r\n segmentLength = 0;\r\n flag = true;\r\n segments = pathInfo.segments;\r\n\r\n if (currentLength < 0 && mask.v.c) {\r\n if (pathInfo.tLength < Math.abs(currentLength)) {\r\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\r\n }\r\n\r\n segmentInd = segments.length - 1;\r\n points = segments[segmentInd].points;\r\n pointInd = points.length - 1;\r\n\r\n while (currentLength < 0) {\r\n currentLength += points[pointInd].partialLength;\r\n pointInd -= 1;\r\n\r\n if (pointInd < 0) {\r\n segmentInd -= 1;\r\n points = segments[segmentInd].points;\r\n pointInd = points.length - 1;\r\n }\r\n }\r\n }\r\n\r\n points = segments[segmentInd].points;\r\n prevPoint = points[pointInd - 1];\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n }\r\n\r\n len = letters.length;\r\n xPos = 0;\r\n yPos = 0;\r\n var yOff = documentData.finalSize * 1.2 * 0.714;\r\n var firstLine = true;\r\n var animatorProps;\r\n var animatorSelector;\r\n var j;\r\n var jLen;\r\n var letterValue;\r\n jLen = animators.length;\r\n var mult;\r\n var ind = -1;\r\n var offf;\r\n var xPathPos;\r\n var yPathPos;\r\n var initPathPos = currentLength;\r\n var initSegmentInd = segmentInd;\r\n var initPointInd = pointInd;\r\n var currentLine = -1;\r\n var elemOpacity;\r\n var sc;\r\n var sw;\r\n var fc;\r\n var k;\r\n var letterSw;\r\n var letterSc;\r\n var letterFc;\r\n var letterM = '';\r\n var letterP = this.defaultPropsArray;\r\n var letterO; //\r\n\r\n if (documentData.j === 2 || documentData.j === 1) {\r\n var animatorJustifyOffset = 0;\r\n var animatorFirstCharOffset = 0;\r\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\r\n var lastIndex = 0;\r\n var isNewLine = true;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (letters[i].n) {\r\n if (animatorJustifyOffset) {\r\n animatorJustifyOffset += animatorFirstCharOffset;\r\n }\r\n\r\n while (lastIndex < i) {\r\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\r\n lastIndex += 1;\r\n }\r\n\r\n animatorJustifyOffset = 0;\r\n isNewLine = true;\r\n } else {\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.t.propType) {\r\n if (isNewLine && documentData.j === 2) {\r\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\r\n }\r\n\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\r\n } else {\r\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\r\n }\r\n }\r\n }\r\n\r\n isNewLine = false;\r\n }\r\n }\r\n\r\n if (animatorJustifyOffset) {\r\n animatorJustifyOffset += animatorFirstCharOffset;\r\n }\r\n\r\n while (lastIndex < i) {\r\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\r\n lastIndex += 1;\r\n }\r\n } //\r\n\r\n\r\n for (i = 0; i < len; i += 1) {\r\n matrixHelper.reset();\r\n elemOpacity = 1;\r\n\r\n if (letters[i].n) {\r\n xPos = 0;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n currentLength = initPathPos;\r\n firstLine = false;\r\n\r\n if (this._hasMaskedPath) {\r\n segmentInd = initSegmentInd;\r\n pointInd = initPointInd;\r\n points = segments[segmentInd].points;\r\n prevPoint = points[pointInd - 1];\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n segmentLength = 0;\r\n }\r\n\r\n letterM = '';\r\n letterFc = '';\r\n letterSw = '';\r\n letterO = '';\r\n letterP = this.defaultPropsArray;\r\n } else {\r\n if (this._hasMaskedPath) {\r\n if (currentLine !== letters[i].line) {\r\n switch (documentData.j) {\r\n case 1:\r\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\r\n break;\r\n\r\n case 2:\r\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n currentLine = letters[i].line;\r\n }\r\n\r\n if (ind !== letters[i].ind) {\r\n if (letters[ind]) {\r\n currentLength += letters[ind].extra;\r\n }\r\n\r\n currentLength += letters[i].an / 2;\r\n ind = letters[i].ind;\r\n }\r\n\r\n currentLength += alignment[0] * letters[i].an * 0.005;\r\n var animatorOffset = 0;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.p.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n animatorOffset += animatorProps.p.v[0] * mult[0];\r\n } else {\r\n animatorOffset += animatorProps.p.v[0] * mult;\r\n }\r\n }\r\n\r\n if (animatorProps.a.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n animatorOffset += animatorProps.a.v[0] * mult[0];\r\n } else {\r\n animatorOffset += animatorProps.a.v[0] * mult;\r\n }\r\n }\r\n }\r\n\r\n flag = true; // Force alignment only works with a single line for now\r\n\r\n if (this._pathData.a.v) {\r\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\r\n currentLength += this._pathData.f.v;\r\n }\r\n\r\n while (flag) {\r\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\r\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\r\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\r\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\r\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\r\n flag = false;\r\n } else if (points) {\r\n segmentLength += currentPoint.partialLength;\r\n pointInd += 1;\r\n\r\n if (pointInd >= points.length) {\r\n pointInd = 0;\r\n segmentInd += 1;\r\n\r\n if (!segments[segmentInd]) {\r\n if (mask.v.c) {\r\n pointInd = 0;\r\n segmentInd = 0;\r\n points = segments[segmentInd].points;\r\n } else {\r\n segmentLength -= currentPoint.partialLength;\r\n points = null;\r\n }\r\n } else {\r\n points = segments[segmentInd].points;\r\n }\r\n }\r\n\r\n if (points) {\r\n prevPoint = currentPoint;\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n }\r\n }\r\n }\r\n\r\n offf = letters[i].an / 2 - letters[i].add;\r\n matrixHelper.translate(-offf, 0, 0);\r\n } else {\r\n offf = letters[i].an / 2 - letters[i].add;\r\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\r\n\r\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.t.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\r\n\r\n if (xPos !== 0 || documentData.j !== 0) {\r\n if (this._hasMaskedPath) {\r\n if (mult.length) {\r\n currentLength += animatorProps.t.v * mult[0];\r\n } else {\r\n currentLength += animatorProps.t.v * mult;\r\n }\r\n } else if (mult.length) {\r\n xPos += animatorProps.t.v * mult[0];\r\n } else {\r\n xPos += animatorProps.t.v * mult;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (documentData.strokeWidthAnim) {\r\n sw = documentData.sw || 0;\r\n }\r\n\r\n if (documentData.strokeColorAnim) {\r\n if (documentData.sc) {\r\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\r\n } else {\r\n sc = [0, 0, 0];\r\n }\r\n }\r\n\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.a.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\r\n } else {\r\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\r\n }\r\n }\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.s.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\r\n } else {\r\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\r\n }\r\n }\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (animatorProps.sk.propType) {\r\n if (mult.length) {\r\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\r\n } else {\r\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.r.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\r\n } else {\r\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.ry.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\r\n } else {\r\n matrixHelper.rotateY(animatorProps.ry.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.rx.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\r\n } else {\r\n matrixHelper.rotateX(animatorProps.rx.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.o.propType) {\r\n if (mult.length) {\r\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\r\n } else {\r\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\r\n }\r\n }\r\n\r\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\r\n if (mult.length) {\r\n sw += animatorProps.sw.v * mult[0];\r\n } else {\r\n sw += animatorProps.sw.v * mult;\r\n }\r\n }\r\n\r\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\r\n for (k = 0; k < 3; k += 1) {\r\n if (mult.length) {\r\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\r\n } else {\r\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\r\n }\r\n }\r\n }\r\n\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n if (animatorProps.fc.propType) {\r\n for (k = 0; k < 3; k += 1) {\r\n if (mult.length) {\r\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\r\n } else {\r\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\r\n }\r\n }\r\n }\r\n\r\n if (animatorProps.fh.propType) {\r\n if (mult.length) {\r\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\r\n } else {\r\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.fs.propType) {\r\n if (mult.length) {\r\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\r\n } else {\r\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.fb.propType) {\r\n if (mult.length) {\r\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\r\n } else {\r\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.p.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (this._hasMaskedPath) {\r\n if (mult.length) {\r\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\r\n } else {\r\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\r\n }\r\n } else if (mult.length) {\r\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\r\n } else {\r\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\r\n }\r\n }\r\n }\r\n\r\n if (documentData.strokeWidthAnim) {\r\n letterSw = sw < 0 ? 0 : sw;\r\n }\r\n\r\n if (documentData.strokeColorAnim) {\r\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\r\n }\r\n\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\r\n }\r\n\r\n if (this._hasMaskedPath) {\r\n matrixHelper.translate(0, -documentData.ls);\r\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\r\n\r\n if (this._pathData.p.v) {\r\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\r\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\r\n\r\n if (currentPoint.point[0] < prevPoint.point[0]) {\r\n rot += 180;\r\n }\r\n\r\n matrixHelper.rotate(-rot * Math.PI / 180);\r\n }\r\n\r\n matrixHelper.translate(xPathPos, yPathPos, 0);\r\n currentLength -= alignment[0] * letters[i].an * 0.005;\r\n\r\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\r\n currentLength += letters[i].an / 2;\r\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\r\n }\r\n } else {\r\n matrixHelper.translate(xPos, yPos, 0);\r\n\r\n if (documentData.ps) {\r\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\r\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\r\n }\r\n\r\n switch (documentData.j) {\r\n case 1:\r\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\r\n break;\r\n\r\n case 2:\r\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n matrixHelper.translate(0, -documentData.ls);\r\n matrixHelper.translate(offf, 0, 0);\r\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\r\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\r\n }\r\n\r\n if (renderType === 'html') {\r\n letterM = matrixHelper.toCSS();\r\n } else if (renderType === 'svg') {\r\n letterM = matrixHelper.to2dCSS();\r\n } else {\r\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\r\n }\r\n\r\n letterO = elemOpacity;\r\n }\r\n\r\n if (renderedLettersCount <= i) {\r\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\r\n this.renderedLetters.push(letterValue);\r\n renderedLettersCount += 1;\r\n this.lettersChangedFlag = true;\r\n } else {\r\n letterValue = this.renderedLetters[i];\r\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\r\n }\r\n }\r\n };\r\n\r\n TextAnimatorProperty.prototype.getValue = function () {\r\n if (this._elem.globalData.frameId === this._frameId) {\r\n return;\r\n }\r\n\r\n this._frameId = this._elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n };\r\n\r\n TextAnimatorProperty.prototype.mHelper = new Matrix();\r\n TextAnimatorProperty.prototype.defaultPropsArray = [];\r\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\r\n\r\n function ITextElement() {}\r\n\r\n ITextElement.prototype.initElement = function (data, globalData, comp) {\r\n this.lettersChangedFlag = true;\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\r\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n this.initRenderable();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n this.createContent();\r\n this.hide();\r\n this.textAnimator.searchProperties(this.dynamicProperties);\r\n };\r\n\r\n ITextElement.prototype.prepareFrame = function (num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n\r\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\r\n this.buildNewText();\r\n this.textProperty._isFirstFrame = false;\r\n this.textProperty._mdf = false;\r\n }\r\n };\r\n\r\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\r\n var j;\r\n var jLen = shapes.length;\r\n var pathNodes;\r\n var shapeStr = '';\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (shapes[j].ty === 'sh') {\r\n pathNodes = shapes[j].ks.k;\r\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\r\n }\r\n }\r\n\r\n return shapeStr;\r\n };\r\n\r\n ITextElement.prototype.updateDocumentData = function (newData, index) {\r\n this.textProperty.updateDocumentData(newData, index);\r\n };\r\n\r\n ITextElement.prototype.canResizeFont = function (_canResize) {\r\n this.textProperty.canResizeFont(_canResize);\r\n };\r\n\r\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\r\n this.textProperty.setMinimumFontSize(_fontSize);\r\n };\r\n\r\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\r\n if (documentData.ps) {\r\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\r\n }\r\n\r\n matrixHelper.translate(0, -documentData.ls, 0);\r\n\r\n switch (documentData.j) {\r\n case 1:\r\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\r\n break;\r\n\r\n case 2:\r\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n matrixHelper.translate(xPos, yPos, 0);\r\n };\r\n\r\n ITextElement.prototype.buildColor = function (colorData) {\r\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\r\n };\r\n\r\n ITextElement.prototype.emptyProp = new LetterProps();\r\n\r\n ITextElement.prototype.destroy = function () {};\r\n\r\n var emptyShapeData = {\r\n shapes: []\r\n };\r\n\r\n function SVGTextLottieElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.renderType = 'svg';\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\r\n\r\n SVGTextLottieElement.prototype.createContent = function () {\r\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\r\n this.textContainer = createNS('text');\r\n }\r\n };\r\n\r\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\r\n var i = 0;\r\n var len = textArray.length;\r\n var textContents = [];\r\n var currentTextContent = '';\r\n\r\n while (i < len) {\r\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\r\n textContents.push(currentTextContent);\r\n currentTextContent = '';\r\n } else {\r\n currentTextContent += textArray[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n textContents.push(currentTextContent);\r\n return textContents;\r\n };\r\n\r\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\r\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\r\n // but since text internal content gets only rendered once and then it's never rerendered,\r\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\r\n // Avoiding cloning is preferred since cloning each character shape data is expensive\r\n if (data.shapes && data.shapes.length) {\r\n var shape = data.shapes[0];\r\n\r\n if (shape.it) {\r\n var shapeItem = shape.it[shape.it.length - 1];\r\n\r\n if (shapeItem.s) {\r\n shapeItem.s.k[0] = scale;\r\n shapeItem.s.k[1] = scale;\r\n }\r\n }\r\n }\r\n\r\n return data;\r\n };\r\n\r\n SVGTextLottieElement.prototype.buildNewText = function () {\r\n this.addDynamicProperty(this);\r\n var i;\r\n var len;\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\r\n\r\n if (documentData.fc) {\r\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\r\n } else {\r\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\r\n }\r\n\r\n if (documentData.sc) {\r\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\r\n this.layerElement.setAttribute('stroke-width', documentData.sw);\r\n }\r\n\r\n this.layerElement.setAttribute('font-size', documentData.finalSize);\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n\r\n if (fontData.fClass) {\r\n this.layerElement.setAttribute('class', fontData.fClass);\r\n } else {\r\n this.layerElement.setAttribute('font-family', fontData.fFamily);\r\n var fWeight = documentData.fWeight;\r\n var fStyle = documentData.fStyle;\r\n this.layerElement.setAttribute('font-style', fStyle);\r\n this.layerElement.setAttribute('font-weight', fWeight);\r\n }\r\n\r\n this.layerElement.setAttribute('aria-label', documentData.t);\r\n var letters = documentData.l || [];\r\n var usesGlyphs = !!this.globalData.fontManager.chars;\r\n len = letters.length;\r\n var tSpan;\r\n var matrixHelper = this.mHelper;\r\n var shapeStr = '';\r\n var singleShape = this.data.singleShape;\r\n var xPos = 0;\r\n var yPos = 0;\r\n var firstLine = true;\r\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\r\n\r\n if (singleShape && !usesGlyphs && !documentData.sz) {\r\n var tElement = this.textContainer;\r\n var justify = 'start';\r\n\r\n switch (documentData.j) {\r\n case 1:\r\n justify = 'end';\r\n break;\r\n\r\n case 2:\r\n justify = 'middle';\r\n break;\r\n\r\n default:\r\n justify = 'start';\r\n break;\r\n }\r\n\r\n tElement.setAttribute('text-anchor', justify);\r\n tElement.setAttribute('letter-spacing', trackingOffset);\r\n var textContent = this.buildTextContents(documentData.finalText);\r\n len = textContent.length;\r\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n tSpan = this.textSpans[i].span || createNS('tspan');\r\n tSpan.textContent = textContent[i];\r\n tSpan.setAttribute('x', 0);\r\n tSpan.setAttribute('y', yPos);\r\n tSpan.style.display = 'inherit';\r\n tElement.appendChild(tSpan);\r\n\r\n if (!this.textSpans[i]) {\r\n this.textSpans[i] = {\r\n span: null,\r\n glyph: null\r\n };\r\n }\r\n\r\n this.textSpans[i].span = tSpan;\r\n yPos += documentData.finalLineHeight;\r\n }\r\n\r\n this.layerElement.appendChild(tElement);\r\n } else {\r\n var cachedSpansLength = this.textSpans.length;\r\n var charData;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!this.textSpans[i]) {\r\n this.textSpans[i] = {\r\n span: null,\r\n childSpan: null,\r\n glyph: null\r\n };\r\n }\r\n\r\n if (!usesGlyphs || !singleShape || i === 0) {\r\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\r\n\r\n if (cachedSpansLength <= i) {\r\n tSpan.setAttribute('stroke-linecap', 'butt');\r\n tSpan.setAttribute('stroke-linejoin', 'round');\r\n tSpan.setAttribute('stroke-miterlimit', '4');\r\n this.textSpans[i].span = tSpan;\r\n\r\n if (usesGlyphs) {\r\n var childSpan = createNS('g');\r\n tSpan.appendChild(childSpan);\r\n this.textSpans[i].childSpan = childSpan;\r\n }\r\n\r\n this.textSpans[i].span = tSpan;\r\n this.layerElement.appendChild(tSpan);\r\n }\r\n\r\n tSpan.style.display = 'inherit';\r\n }\r\n\r\n matrixHelper.reset();\r\n\r\n if (singleShape) {\r\n if (letters[i].n) {\r\n xPos = -trackingOffset;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n firstLine = false;\r\n }\r\n\r\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\r\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\r\n\r\n xPos += trackingOffset;\r\n }\r\n\r\n if (usesGlyphs) {\r\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\r\n\r\n if (charData.t === 1) {\r\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\r\n } else {\r\n var data = emptyShapeData;\r\n\r\n if (charData.data && charData.data.shapes) {\r\n data = this.buildShapeData(charData.data, documentData.finalSize);\r\n }\r\n\r\n glyphElement = new SVGShapeElement(data, this.globalData, this);\r\n }\r\n\r\n if (this.textSpans[i].glyph) {\r\n var glyph = this.textSpans[i].glyph;\r\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\r\n glyph.destroy();\r\n }\r\n\r\n this.textSpans[i].glyph = glyphElement;\r\n glyphElement._debug = true;\r\n glyphElement.prepareFrame(0);\r\n glyphElement.renderFrame();\r\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\r\n // this might have issues with strokes and might need a different solution\r\n\r\n if (charData.t === 1) {\r\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\r\n }\r\n } else {\r\n if (singleShape) {\r\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\r\n }\r\n\r\n tSpan.textContent = letters[i].val;\r\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\r\n } //\r\n\r\n }\r\n\r\n if (singleShape && tSpan) {\r\n tSpan.setAttribute('d', shapeStr);\r\n }\r\n }\r\n\r\n while (i < this.textSpans.length) {\r\n this.textSpans[i].span.style.display = 'none';\r\n i += 1;\r\n }\r\n\r\n this._sizeChanged = true;\r\n };\r\n\r\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\r\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\r\n this.renderInnerContent();\r\n\r\n if (this._sizeChanged) {\r\n this._sizeChanged = false;\r\n var textBox = this.layerElement.getBBox();\r\n this.bbox = {\r\n top: textBox.y,\r\n left: textBox.x,\r\n width: textBox.width,\r\n height: textBox.height\r\n };\r\n }\r\n\r\n return this.bbox;\r\n };\r\n\r\n SVGTextLottieElement.prototype.getValue = function () {\r\n var i;\r\n var len = this.textSpans.length;\r\n var glyphElement;\r\n this.renderedFrame = this.comp.renderedFrame;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n glyphElement = this.textSpans[i].glyph;\r\n\r\n if (glyphElement) {\r\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\r\n\r\n if (glyphElement._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n };\r\n\r\n SVGTextLottieElement.prototype.renderInnerContent = function () {\r\n if (!this.data.singleShape || this._mdf) {\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n\r\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\r\n this._sizeChanged = true;\r\n var i;\r\n var len;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n var letters = this.textProperty.currentData.l;\r\n len = letters.length;\r\n var renderedLetter;\r\n var textSpan;\r\n var glyphElement;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!letters[i].n) {\r\n renderedLetter = renderedLetters[i];\r\n textSpan = this.textSpans[i].span;\r\n glyphElement = this.textSpans[i].glyph;\r\n\r\n if (glyphElement) {\r\n glyphElement.renderFrame();\r\n }\r\n\r\n if (renderedLetter._mdf.m) {\r\n textSpan.setAttribute('transform', renderedLetter.m);\r\n }\r\n\r\n if (renderedLetter._mdf.o) {\r\n textSpan.setAttribute('opacity', renderedLetter.o);\r\n }\r\n\r\n if (renderedLetter._mdf.sw) {\r\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\r\n }\r\n\r\n if (renderedLetter._mdf.sc) {\r\n textSpan.setAttribute('stroke', renderedLetter.sc);\r\n }\r\n\r\n if (renderedLetter._mdf.fc) {\r\n textSpan.setAttribute('fill', renderedLetter.fc);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n function ISolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([IImageElement], ISolidElement);\r\n\r\n ISolidElement.prototype.createContent = function () {\r\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\r\n /// /rect.style.height = this.data.sh;\r\n /// /rect.style.fill = this.data.sc;\r\n\r\n rect.setAttribute('width', this.data.sw);\r\n rect.setAttribute('height', this.data.sh);\r\n rect.setAttribute('fill', this.data.sc);\r\n this.layerElement.appendChild(rect);\r\n };\r\n\r\n function NullElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initFrame();\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n }\r\n\r\n NullElement.prototype.prepareFrame = function (num) {\r\n this.prepareProperties(num, true);\r\n };\r\n\r\n NullElement.prototype.renderFrame = function () {};\r\n\r\n NullElement.prototype.getBaseElement = function () {\r\n return null;\r\n };\r\n\r\n NullElement.prototype.destroy = function () {};\r\n\r\n NullElement.prototype.sourceRectAtTime = function () {};\r\n\r\n NullElement.prototype.hide = function () {};\r\n\r\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\r\n\r\n function SVGRendererBase() {}\r\n\r\n extendPrototype([BaseRenderer], SVGRendererBase);\r\n\r\n SVGRendererBase.prototype.createNull = function (data) {\r\n return new NullElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.createShape = function (data) {\r\n return new SVGShapeElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.createText = function (data) {\r\n return new SVGTextLottieElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.createImage = function (data) {\r\n return new IImageElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.createSolid = function (data) {\r\n return new ISolidElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.configAnimation = function (animData) {\r\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\r\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\r\n\r\n if (this.renderConfig.viewBoxSize) {\r\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\r\n } else {\r\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\r\n }\r\n\r\n if (!this.renderConfig.viewBoxOnly) {\r\n this.svgElement.setAttribute('width', animData.w);\r\n this.svgElement.setAttribute('height', animData.h);\r\n this.svgElement.style.width = '100%';\r\n this.svgElement.style.height = '100%';\r\n this.svgElement.style.transform = 'translate3d(0,0,0)';\r\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\r\n }\r\n\r\n if (this.renderConfig.width) {\r\n this.svgElement.setAttribute('width', this.renderConfig.width);\r\n }\r\n\r\n if (this.renderConfig.height) {\r\n this.svgElement.setAttribute('height', this.renderConfig.height);\r\n }\r\n\r\n if (this.renderConfig.className) {\r\n this.svgElement.setAttribute('class', this.renderConfig.className);\r\n }\r\n\r\n if (this.renderConfig.id) {\r\n this.svgElement.setAttribute('id', this.renderConfig.id);\r\n }\r\n\r\n if (this.renderConfig.focusable !== undefined) {\r\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\r\n }\r\n\r\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\r\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\r\n\r\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\r\n\r\n var defs = this.globalData.defs;\r\n this.setupGlobalData(animData, defs);\r\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\r\n this.data = animData;\r\n var maskElement = createNS('clipPath');\r\n var rect = createNS('rect');\r\n rect.setAttribute('width', animData.w);\r\n rect.setAttribute('height', animData.h);\r\n rect.setAttribute('x', 0);\r\n rect.setAttribute('y', 0);\r\n var maskId = createElementID();\r\n maskElement.setAttribute('id', maskId);\r\n maskElement.appendChild(rect);\r\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\r\n defs.appendChild(maskElement);\r\n this.layers = animData.layers;\r\n this.elements = createSizedArray(animData.layers.length);\r\n };\r\n\r\n SVGRendererBase.prototype.destroy = function () {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.wrapper.innerText = '';\r\n }\r\n\r\n this.layerElement = null;\r\n this.globalData.defs = null;\r\n var i;\r\n var len = this.layers ? this.layers.length : 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n\r\n this.elements.length = 0;\r\n this.destroyed = true;\r\n this.animationItem = null;\r\n };\r\n\r\n SVGRendererBase.prototype.updateContainerSize = function () {};\r\n\r\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\r\n var i = 0;\r\n var len = this.layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.layers[i].ind === ind) {\r\n return i;\r\n }\r\n }\r\n\r\n return -1;\r\n };\r\n\r\n SVGRendererBase.prototype.buildItem = function (pos) {\r\n var elements = this.elements;\r\n\r\n if (elements[pos] || this.layers[pos].ty === 99) {\r\n return;\r\n }\r\n\r\n elements[pos] = true;\r\n var element = this.createItem(this.layers[pos]);\r\n elements[pos] = element;\r\n\r\n if (getExpressionsPlugin()) {\r\n if (this.layers[pos].ty === 0) {\r\n this.globalData.projectInterface.registerComposition(element);\r\n }\r\n\r\n element.initExpressions();\r\n }\r\n\r\n this.appendElementInPos(element, pos);\r\n\r\n if (this.layers[pos].tt) {\r\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\r\n\r\n if (elementIndex === -1) {\r\n return;\r\n }\r\n\r\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\r\n this.buildItem(elementIndex);\r\n this.addPendingElement(element);\r\n } else {\r\n var matteElement = elements[elementIndex];\r\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\r\n element.setMatte(matteMask);\r\n }\r\n }\r\n };\r\n\r\n SVGRendererBase.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n\r\n if (element.data.tt) {\r\n var i = 0;\r\n var len = this.elements.length;\r\n\r\n while (i < len) {\r\n if (this.elements[i] === element) {\r\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\r\n var matteElement = this.elements[elementIndex];\r\n var matteMask = matteElement.getMatte(this.layers[i].tt);\r\n element.setMatte(matteMask);\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n }\r\n };\r\n\r\n SVGRendererBase.prototype.renderFrame = function (num) {\r\n if (this.renderedFrame === num || this.destroyed) {\r\n return;\r\n }\r\n\r\n if (num === null) {\r\n num = this.renderedFrame;\r\n } else {\r\n this.renderedFrame = num;\r\n } // console.log('-------');\r\n // console.log('FRAME ',num);\r\n\r\n\r\n this.globalData.frameNum = num;\r\n this.globalData.frameId += 1;\r\n this.globalData.projectInterface.currentFrame = num;\r\n this.globalData._mdf = false;\r\n var i;\r\n var len = this.layers.length;\r\n\r\n if (!this.completeLayers) {\r\n this.checkLayers(num);\r\n }\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].prepareFrame(num - this.layers[i].st);\r\n }\r\n }\r\n\r\n if (this.globalData._mdf) {\r\n for (i = 0; i < len; i += 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n }\r\n };\r\n\r\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\r\n var newElement = element.getBaseElement();\r\n\r\n if (!newElement) {\r\n return;\r\n }\r\n\r\n var i = 0;\r\n var nextElement;\r\n\r\n while (i < pos) {\r\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\r\n nextElement = this.elements[i].getBaseElement();\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (nextElement) {\r\n this.layerElement.insertBefore(newElement, nextElement);\r\n } else {\r\n this.layerElement.appendChild(newElement);\r\n }\r\n };\r\n\r\n SVGRendererBase.prototype.hide = function () {\r\n this.layerElement.style.display = 'none';\r\n };\r\n\r\n SVGRendererBase.prototype.show = function () {\r\n this.layerElement.style.display = 'block';\r\n };\r\n\r\n function ICompElement() {}\r\n\r\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\r\n\r\n ICompElement.prototype.initElement = function (data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initTransform(data, globalData, comp);\r\n this.initRenderable();\r\n this.initHierarchy();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n\r\n if (this.data.xt || !globalData.progressiveLoad) {\r\n this.buildAllItems();\r\n }\r\n\r\n this.hide();\r\n };\r\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\r\n\r\n\r\n ICompElement.prototype.prepareFrame = function (num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n\r\n if (!this.isInRange && !this.data.xt) {\r\n return;\r\n }\r\n\r\n if (!this.tm._placeholder) {\r\n var timeRemapped = this.tm.v;\r\n\r\n if (timeRemapped === this.data.op) {\r\n timeRemapped = this.data.op - 1;\r\n }\r\n\r\n this.renderedFrame = timeRemapped;\r\n } else {\r\n this.renderedFrame = num / this.data.sr;\r\n }\r\n\r\n var i;\r\n var len = this.elements.length;\r\n\r\n if (!this.completeLayers) {\r\n this.checkLayers(this.renderedFrame);\r\n } // This iteration needs to be backwards because of how expressions connect between each other\r\n\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\r\n\r\n if (this.elements[i]._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n };\r\n\r\n ICompElement.prototype.renderInnerContent = function () {\r\n var i;\r\n var len = this.layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n };\r\n\r\n ICompElement.prototype.setElements = function (elems) {\r\n this.elements = elems;\r\n };\r\n\r\n ICompElement.prototype.getElements = function () {\r\n return this.elements;\r\n };\r\n\r\n ICompElement.prototype.destroyElements = function () {\r\n var i;\r\n var len = this.layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n };\r\n\r\n ICompElement.prototype.destroy = function () {\r\n this.destroyElements();\r\n this.destroyBaseElement();\r\n };\r\n\r\n function SVGCompElement(data, globalData, comp) {\r\n this.layers = data.layers;\r\n this.supports3d = true;\r\n this.completeLayers = false;\r\n this.pendingElements = [];\r\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\r\n _placeholder: true\r\n };\r\n }\r\n\r\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\r\n\r\n SVGCompElement.prototype.createComp = function (data) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n };\r\n\r\n function SVGRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.layers = null;\r\n this.renderedFrame = -1;\r\n this.svgElement = createNS('svg');\r\n var ariaLabel = '';\r\n\r\n if (config && config.title) {\r\n var titleElement = createNS('title');\r\n var titleId = createElementID();\r\n titleElement.setAttribute('id', titleId);\r\n titleElement.textContent = config.title;\r\n this.svgElement.appendChild(titleElement);\r\n ariaLabel += titleId;\r\n }\r\n\r\n if (config && config.description) {\r\n var descElement = createNS('desc');\r\n var descId = createElementID();\r\n descElement.setAttribute('id', descId);\r\n descElement.textContent = config.description;\r\n this.svgElement.appendChild(descElement);\r\n ariaLabel += ' ' + descId;\r\n }\r\n\r\n if (ariaLabel) {\r\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\r\n }\r\n\r\n var defs = createNS('defs');\r\n this.svgElement.appendChild(defs);\r\n var maskElement = createNS('g');\r\n this.svgElement.appendChild(maskElement);\r\n this.layerElement = maskElement;\r\n this.renderConfig = {\r\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\r\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\r\n contentVisibility: config && config.contentVisibility || 'visible',\r\n progressiveLoad: config && config.progressiveLoad || false,\r\n hideOnTransparent: !(config && config.hideOnTransparent === false),\r\n viewBoxOnly: config && config.viewBoxOnly || false,\r\n viewBoxSize: config && config.viewBoxSize || false,\r\n className: config && config.className || '',\r\n id: config && config.id || '',\r\n focusable: config && config.focusable,\r\n filterSize: {\r\n width: config && config.filterSize && config.filterSize.width || '100%',\r\n height: config && config.filterSize && config.filterSize.height || '100%',\r\n x: config && config.filterSize && config.filterSize.x || '0%',\r\n y: config && config.filterSize && config.filterSize.y || '0%'\r\n },\r\n width: config && config.width,\r\n height: config && config.height,\r\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\r\n };\r\n this.globalData = {\r\n _mdf: false,\r\n frameNum: -1,\r\n defs: defs,\r\n renderConfig: this.renderConfig\r\n };\r\n this.elements = [];\r\n this.pendingElements = [];\r\n this.destroyed = false;\r\n this.rendererType = 'svg';\r\n }\r\n\r\n extendPrototype([SVGRendererBase], SVGRenderer);\r\n\r\n SVGRenderer.prototype.createComp = function (data) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n };\r\n\r\n function CVContextData() {\r\n this.saved = [];\r\n this.cArrPos = 0;\r\n this.cTr = new Matrix();\r\n this.cO = 1;\r\n var i;\r\n var len = 15;\r\n this.savedOp = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.saved[i] = createTypedArray('float32', 16);\r\n }\r\n\r\n this._length = len;\r\n }\r\n\r\n CVContextData.prototype.duplicate = function () {\r\n var newLength = this._length * 2;\r\n var currentSavedOp = this.savedOp;\r\n this.savedOp = createTypedArray('float32', newLength);\r\n this.savedOp.set(currentSavedOp);\r\n var i = 0;\r\n\r\n for (i = this._length; i < newLength; i += 1) {\r\n this.saved[i] = createTypedArray('float32', 16);\r\n }\r\n\r\n this._length = newLength;\r\n };\r\n\r\n CVContextData.prototype.reset = function () {\r\n this.cArrPos = 0;\r\n this.cTr.reset();\r\n this.cO = 1;\r\n };\r\n\r\n CVContextData.prototype.popTransform = function () {\r\n var popped = this.saved[this.cArrPos];\r\n var i;\r\n var arr = this.cTr.props;\r\n\r\n for (i = 0; i < 16; i += 1) {\r\n arr[i] = popped[i];\r\n }\r\n\r\n return popped;\r\n };\r\n\r\n CVContextData.prototype.popOpacity = function () {\r\n var popped = this.savedOp[this.cArrPos];\r\n this.cO = popped;\r\n return popped;\r\n };\r\n\r\n CVContextData.prototype.pop = function () {\r\n this.cArrPos -= 1;\r\n var transform = this.popTransform();\r\n var opacity = this.popOpacity();\r\n return {\r\n transform: transform,\r\n opacity: opacity\r\n };\r\n };\r\n\r\n CVContextData.prototype.push = function () {\r\n var props = this.cTr.props;\r\n\r\n if (this._length <= this.cArrPos) {\r\n this.duplicate();\r\n }\r\n\r\n var i;\r\n var arr = this.saved[this.cArrPos];\r\n\r\n for (i = 0; i < 16; i += 1) {\r\n arr[i] = props[i];\r\n }\r\n\r\n this.savedOp[this.cArrPos] = this.cO;\r\n this.cArrPos += 1;\r\n };\r\n\r\n CVContextData.prototype.getTransform = function () {\r\n return this.cTr;\r\n };\r\n\r\n CVContextData.prototype.getOpacity = function () {\r\n return this.cO;\r\n };\r\n\r\n CVContextData.prototype.setOpacity = function (value) {\r\n this.cO = value;\r\n };\r\n\r\n function ShapeTransformManager() {\r\n this.sequences = {};\r\n this.sequenceList = [];\r\n this.transform_key_count = 0;\r\n }\r\n\r\n ShapeTransformManager.prototype = {\r\n addTransformSequence: function addTransformSequence(transforms) {\r\n var i;\r\n var len = transforms.length;\r\n var key = '_';\r\n\r\n for (i = 0; i < len; i += 1) {\r\n key += transforms[i].transform.key + '_';\r\n }\r\n\r\n var sequence = this.sequences[key];\r\n\r\n if (!sequence) {\r\n sequence = {\r\n transforms: [].concat(transforms),\r\n finalTransform: new Matrix(),\r\n _mdf: false\r\n };\r\n this.sequences[key] = sequence;\r\n this.sequenceList.push(sequence);\r\n }\r\n\r\n return sequence;\r\n },\r\n processSequence: function processSequence(sequence, isFirstFrame) {\r\n var i = 0;\r\n var len = sequence.transforms.length;\r\n var _mdf = isFirstFrame;\r\n\r\n while (i < len && !isFirstFrame) {\r\n if (sequence.transforms[i].transform.mProps._mdf) {\r\n _mdf = true;\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (_mdf) {\r\n var props;\r\n sequence.finalTransform.reset();\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n props = sequence.transforms[i].transform.mProps.v.props;\r\n sequence.finalTransform.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\r\n }\r\n }\r\n\r\n sequence._mdf = _mdf;\r\n },\r\n processSequences: function processSequences(isFirstFrame) {\r\n var i;\r\n var len = this.sequenceList.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.processSequence(this.sequenceList[i], isFirstFrame);\r\n }\r\n },\r\n getNewKey: function getNewKey() {\r\n this.transform_key_count += 1;\r\n return '_' + this.transform_key_count;\r\n }\r\n };\r\n\r\n var lumaLoader = function lumaLoader() {\r\n var id = '__lottie_element_luma_buffer';\r\n var lumaBuffer = null;\r\n var lumaBufferCtx = null;\r\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\r\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\r\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\r\n // Naming it solution 2 to mark the extra comment lines.\r\n\r\n /*\r\n var svgString = [\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n ].join('');\r\n var blob = new Blob([svgString], { type: 'image/svg+xml' });\r\n var url = URL.createObjectURL(blob);\r\n */\r\n\r\n function createLumaSvgFilter() {\r\n var _svg = createNS('svg');\r\n\r\n var fil = createNS('filter');\r\n var matrix = createNS('feColorMatrix');\r\n fil.setAttribute('id', id);\r\n matrix.setAttribute('type', 'matrix');\r\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n matrix.setAttribute('values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0');\r\n fil.appendChild(matrix);\r\n\r\n _svg.appendChild(fil);\r\n\r\n _svg.setAttribute('id', id + '_svg');\r\n\r\n if (featureSupport.svgLumaHidden) {\r\n _svg.style.display = 'none';\r\n }\r\n\r\n return _svg;\r\n }\r\n\r\n function loadLuma() {\r\n if (!lumaBuffer) {\r\n svg = createLumaSvgFilter();\r\n document.body.appendChild(svg);\r\n lumaBuffer = createTag('canvas');\r\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\r\n\r\n lumaBufferCtx.filter = 'url(#' + id + ')';\r\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\r\n lumaBufferCtx.fillRect(0, 0, 1, 1);\r\n }\r\n }\r\n\r\n function getLuma(canvas) {\r\n if (!lumaBuffer) {\r\n loadLuma();\r\n }\r\n\r\n lumaBuffer.width = canvas.width;\r\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\r\n\r\n lumaBufferCtx.filter = 'url(#' + id + ')';\r\n return lumaBuffer;\r\n }\r\n\r\n return {\r\n load: loadLuma,\r\n get: getLuma\r\n };\r\n };\r\n\r\n function createCanvas(width, height) {\r\n if (featureSupport.offscreenCanvas) {\r\n return new OffscreenCanvas(width, height);\r\n }\r\n\r\n var canvas = createTag('canvas');\r\n canvas.width = width;\r\n canvas.height = height;\r\n return canvas;\r\n }\r\n\r\n var assetLoader = function () {\r\n return {\r\n loadLumaCanvas: lumaLoader.load,\r\n getLumaCanvas: lumaLoader.get,\r\n createCanvas: createCanvas\r\n };\r\n }();\r\n\r\n function CVEffects() {}\r\n\r\n CVEffects.prototype.renderFrame = function () {};\r\n\r\n function CVMaskElement(data, element) {\r\n this.data = data;\r\n this.element = element;\r\n this.masksProperties = this.data.masksProperties || [];\r\n this.viewData = createSizedArray(this.masksProperties.length);\r\n var i;\r\n var len = this.masksProperties.length;\r\n var hasMasks = false;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.masksProperties[i].mode !== 'n') {\r\n hasMasks = true;\r\n }\r\n\r\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\r\n }\r\n\r\n this.hasMasks = hasMasks;\r\n\r\n if (hasMasks) {\r\n this.element.addRenderableComponent(this);\r\n }\r\n }\r\n\r\n CVMaskElement.prototype.renderFrame = function () {\r\n if (!this.hasMasks) {\r\n return;\r\n }\r\n\r\n var transform = this.element.finalTransform.mat;\r\n var ctx = this.element.canvasContext;\r\n var i;\r\n var len = this.masksProperties.length;\r\n var pt;\r\n var pts;\r\n var data;\r\n ctx.beginPath();\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.masksProperties[i].mode !== 'n') {\r\n if (this.masksProperties[i].inv) {\r\n ctx.moveTo(0, 0);\r\n ctx.lineTo(this.element.globalData.compSize.w, 0);\r\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\r\n ctx.lineTo(0, this.element.globalData.compSize.h);\r\n ctx.lineTo(0, 0);\r\n }\r\n\r\n data = this.viewData[i].v;\r\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\r\n ctx.moveTo(pt[0], pt[1]);\r\n var j;\r\n var jLen = data._length;\r\n\r\n for (j = 1; j < jLen; j += 1) {\r\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\r\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\r\n }\r\n\r\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\r\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\r\n }\r\n }\r\n\r\n this.element.globalData.renderer.save(true);\r\n ctx.clip();\r\n };\r\n\r\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\r\n\r\n CVMaskElement.prototype.destroy = function () {\r\n this.element = null;\r\n };\r\n\r\n function CVBaseElement() {}\r\n\r\n var operationsMap = {\r\n 1: 'source-in',\r\n 2: 'source-out',\r\n 3: 'source-in',\r\n 4: 'source-out'\r\n };\r\n CVBaseElement.prototype = {\r\n createElements: function createElements() {},\r\n initRendererElement: function initRendererElement() {},\r\n createContainerElements: function createContainerElements() {\r\n // If the layer is masked we will use two buffers to store each different states of the drawing\r\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\r\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\r\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\r\n // It might be challenging because the layer most likely is transformed in some way\r\n if (this.data.tt >= 1) {\r\n this.buffers = [];\r\n var canvasContext = this.globalData.canvasContext;\r\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\r\n this.buffers.push(bufferCanvas);\r\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\r\n this.buffers.push(bufferCanvas2);\r\n\r\n if (this.data.tt >= 3 && !document._isProxy) {\r\n assetLoader.loadLumaCanvas();\r\n }\r\n }\r\n\r\n this.canvasContext = this.globalData.canvasContext;\r\n this.transformCanvas = this.globalData.transformCanvas;\r\n this.renderableEffectsManager = new CVEffects(this);\r\n },\r\n createContent: function createContent() {},\r\n setBlendMode: function setBlendMode() {\r\n var globalData = this.globalData;\r\n\r\n if (globalData.blendMode !== this.data.bm) {\r\n globalData.blendMode = this.data.bm;\r\n var blendModeValue = getBlendMode(this.data.bm);\r\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\r\n }\r\n },\r\n createRenderableComponents: function createRenderableComponents() {\r\n this.maskManager = new CVMaskElement(this.data, this);\r\n },\r\n hideElement: function hideElement() {\r\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\r\n this.hidden = true;\r\n }\r\n },\r\n showElement: function showElement() {\r\n if (this.isInRange && !this.isTransparent) {\r\n this.hidden = false;\r\n this._isFirstFrame = true;\r\n this.maskManager._isFirstFrame = true;\r\n }\r\n },\r\n clearCanvas: function clearCanvas(canvasContext) {\r\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\r\n },\r\n prepareLayer: function prepareLayer() {\r\n if (this.data.tt >= 1) {\r\n var buffer = this.buffers[0];\r\n var bufferCtx = buffer.getContext('2d');\r\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\r\n\r\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\r\n // TODO: Check if there is a way to clear the canvas without resetting the transform\r\n\r\n this.currentTransform = this.canvasContext.getTransform();\r\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\r\n this.clearCanvas(this.canvasContext);\r\n this.canvasContext.setTransform(this.currentTransform);\r\n }\r\n },\r\n exitLayer: function exitLayer() {\r\n if (this.data.tt >= 1) {\r\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\r\n // that only contains the content of this layer\r\n // (if it is a composition, it also includes the nested layers)\r\n\r\n var bufferCtx = buffer.getContext('2d');\r\n this.clearCanvas(bufferCtx);\r\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\r\n\r\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\r\n this.clearCanvas(this.canvasContext);\r\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\r\n\r\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\r\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\r\n\r\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0); // If the mask is a Luma matte, we need to do two extra painting operations\r\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\r\n\r\n if (this.data.tt >= 3 && !document._isProxy) {\r\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\r\n // that applies the rgb values to the alpha channel\r\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\r\n var lumaBufferCtx = lumaBuffer.getContext('2d');\r\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\r\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\r\n\r\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\r\n }\r\n\r\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\r\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\r\n // We use destination-over to draw the global drawing below the current layer\r\n\r\n this.canvasContext.globalCompositeOperation = 'destination-over';\r\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\r\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\r\n\r\n this.canvasContext.globalCompositeOperation = 'source-over';\r\n }\r\n },\r\n renderFrame: function renderFrame(forceRender) {\r\n if (this.hidden || this.data.hd) {\r\n return;\r\n }\r\n\r\n if (this.data.td === 1 && !forceRender) {\r\n return;\r\n }\r\n\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.setBlendMode();\r\n var forceRealStack = this.data.ty === 0;\r\n this.prepareLayer();\r\n this.globalData.renderer.save(forceRealStack);\r\n this.globalData.renderer.ctxTransform(this.finalTransform.mat.props);\r\n this.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v);\r\n this.renderInnerContent();\r\n this.globalData.renderer.restore(forceRealStack);\r\n this.exitLayer();\r\n\r\n if (this.maskManager.hasMasks) {\r\n this.globalData.renderer.restore(true);\r\n }\r\n\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n destroy: function destroy() {\r\n this.canvasContext = null;\r\n this.data = null;\r\n this.globalData = null;\r\n this.maskManager.destroy();\r\n },\r\n mHelper: new Matrix()\r\n };\r\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\r\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\r\n\r\n function CVShapeData(element, data, styles, transformsManager) {\r\n this.styledShapes = [];\r\n this.tr = [0, 0, 0, 0, 0, 0];\r\n var ty = 4;\r\n\r\n if (data.ty === 'rc') {\r\n ty = 5;\r\n } else if (data.ty === 'el') {\r\n ty = 6;\r\n } else if (data.ty === 'sr') {\r\n ty = 7;\r\n }\r\n\r\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\r\n var i;\r\n var len = styles.length;\r\n var styledShape;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!styles[i].closed) {\r\n styledShape = {\r\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\r\n trNodes: []\r\n };\r\n this.styledShapes.push(styledShape);\r\n styles[i].elements.push(styledShape);\r\n }\r\n }\r\n }\r\n\r\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\r\n\r\n function CVShapeElement(data, globalData, comp) {\r\n this.shapes = [];\r\n this.shapesData = data.shapes;\r\n this.stylesList = [];\r\n this.itemsData = [];\r\n this.prevViewData = [];\r\n this.shapeModifiers = [];\r\n this.processedElements = [];\r\n this.transformsManager = new ShapeTransformManager();\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\r\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\r\n CVShapeElement.prototype.transformHelper = {\r\n opacity: 1,\r\n _opMdf: false\r\n };\r\n CVShapeElement.prototype.dashResetter = [];\r\n\r\n CVShapeElement.prototype.createContent = function () {\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\r\n };\r\n\r\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\r\n var styleElem = {\r\n data: data,\r\n type: data.ty,\r\n preTransforms: this.transformsManager.addTransformSequence(transforms),\r\n transforms: [],\r\n elements: [],\r\n closed: data.hd === true\r\n };\r\n var elementData = {};\r\n\r\n if (data.ty === 'fl' || data.ty === 'st') {\r\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\r\n\r\n if (!elementData.c.k) {\r\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\r\n }\r\n } else if (data.ty === 'gf' || data.ty === 'gs') {\r\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\r\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\r\n elementData.h = PropertyFactory.getProp(this, data.h || {\r\n k: 0\r\n }, 0, 0.01, this);\r\n elementData.a = PropertyFactory.getProp(this, data.a || {\r\n k: 0\r\n }, 0, degToRads, this);\r\n elementData.g = new GradientProperty(this, data.g, this);\r\n }\r\n\r\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\r\n\r\n if (data.ty === 'st' || data.ty === 'gs') {\r\n styleElem.lc = lineCapEnum[data.lc || 2];\r\n styleElem.lj = lineJoinEnum[data.lj || 2];\r\n\r\n if (data.lj == 1) {\r\n // eslint-disable-line eqeqeq\r\n styleElem.ml = data.ml;\r\n }\r\n\r\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\r\n\r\n if (!elementData.w.k) {\r\n styleElem.wi = elementData.w.v;\r\n }\r\n\r\n if (data.d) {\r\n var d = new DashProperty(this, data.d, 'canvas', this);\r\n elementData.d = d;\r\n\r\n if (!elementData.d.k) {\r\n styleElem.da = elementData.d.dashArray;\r\n styleElem[\"do\"] = elementData.d.dashoffset[0];\r\n }\r\n }\r\n } else {\r\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\r\n }\r\n\r\n this.stylesList.push(styleElem);\r\n elementData.style = styleElem;\r\n return elementData;\r\n };\r\n\r\n CVShapeElement.prototype.createGroupElement = function () {\r\n var elementData = {\r\n it: [],\r\n prevViewData: []\r\n };\r\n return elementData;\r\n };\r\n\r\n CVShapeElement.prototype.createTransformElement = function (data) {\r\n var elementData = {\r\n transform: {\r\n opacity: 1,\r\n _opMdf: false,\r\n key: this.transformsManager.getNewKey(),\r\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\r\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\r\n }\r\n };\r\n return elementData;\r\n };\r\n\r\n CVShapeElement.prototype.createShapeElement = function (data) {\r\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\r\n this.shapes.push(elementData);\r\n this.addShapeToModifiers(elementData);\r\n return elementData;\r\n };\r\n\r\n CVShapeElement.prototype.reloadShapes = function () {\r\n this._isFirstFrame = true;\r\n var i;\r\n var len = this.itemsData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.prevViewData[i] = this.itemsData[i];\r\n }\r\n\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\r\n len = this.dynamicProperties.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n }\r\n\r\n this.renderModifiers();\r\n this.transformsManager.processSequences(this._isFirstFrame);\r\n };\r\n\r\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\r\n var i;\r\n var len = this.stylesList.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!this.stylesList[i].closed) {\r\n this.stylesList[i].transforms.push(transform);\r\n }\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\r\n var i;\r\n var len = this.stylesList.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!this.stylesList[i].closed) {\r\n this.stylesList[i].transforms.pop();\r\n }\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.closeStyles = function (styles) {\r\n var i;\r\n var len = styles.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n styles[i].closed = true;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\r\n var i;\r\n var len = arr.length - 1;\r\n var j;\r\n var jLen;\r\n var ownStyles = [];\r\n var ownModifiers = [];\r\n var processedPos;\r\n var modifier;\r\n var currentTransform;\r\n var ownTransforms = [].concat(transforms);\r\n\r\n for (i = len; i >= 0; i -= 1) {\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n\r\n if (!processedPos) {\r\n arr[i]._shouldRender = shouldRender;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n\r\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n\r\n ownStyles.push(itemsData[i].style);\r\n } else if (arr[i].ty === 'gr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\r\n }\r\n }\r\n\r\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\r\n } else if (arr[i].ty === 'tr') {\r\n if (!processedPos) {\r\n currentTransform = this.createTransformElement(arr[i]);\r\n itemsData[i] = currentTransform;\r\n }\r\n\r\n ownTransforms.push(itemsData[i]);\r\n this.addTransformToStyleList(itemsData[i]);\r\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createShapeElement(arr[i]);\r\n }\r\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n modifier.init(this, arr[i]);\r\n itemsData[i] = modifier;\r\n this.shapeModifiers.push(modifier);\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = false;\r\n }\r\n\r\n ownModifiers.push(modifier);\r\n } else if (arr[i].ty === 'rp') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n itemsData[i] = modifier;\r\n modifier.init(this, arr, i, itemsData);\r\n this.shapeModifiers.push(modifier);\r\n shouldRender = false;\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = true;\r\n }\r\n\r\n ownModifiers.push(modifier);\r\n }\r\n\r\n this.addProcessedElement(arr[i], i + 1);\r\n }\r\n\r\n this.removeTransformFromStyleList();\r\n this.closeStyles(ownStyles);\r\n len = ownModifiers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ownModifiers[i].closed = true;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderInnerContent = function () {\r\n this.transformHelper.opacity = 1;\r\n this.transformHelper._opMdf = false;\r\n this.renderModifiers();\r\n this.transformsManager.processSequences(this._isFirstFrame);\r\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\r\n };\r\n\r\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\r\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\r\n groupTransform.opacity = parentTransform.opacity;\r\n groupTransform.opacity *= groupTransform.op.v;\r\n groupTransform._opMdf = true;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.drawLayer = function () {\r\n var i;\r\n var len = this.stylesList.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n var elems;\r\n var nodes;\r\n var renderer = this.globalData.renderer;\r\n var ctx = this.globalData.canvasContext;\r\n var type;\r\n var currentStyle;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n currentStyle = this.stylesList[i];\r\n type = currentStyle.type; // Skipping style when\r\n // Stroke width equals 0\r\n // style should not be rendered (extra unused repeaters)\r\n // current opacity equals 0\r\n // global opacity equals 0\r\n\r\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\r\n renderer.save();\r\n elems = currentStyle.elements;\r\n\r\n if (type === 'st' || type === 'gs') {\r\n ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\r\n ctx.lineWidth = currentStyle.wi;\r\n ctx.lineCap = currentStyle.lc;\r\n ctx.lineJoin = currentStyle.lj;\r\n ctx.miterLimit = currentStyle.ml || 0;\r\n } else {\r\n ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\r\n }\r\n\r\n renderer.ctxOpacity(currentStyle.coOp);\r\n\r\n if (type !== 'st' && type !== 'gs') {\r\n ctx.beginPath();\r\n }\r\n\r\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\r\n jLen = elems.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (type === 'st' || type === 'gs') {\r\n ctx.beginPath();\r\n\r\n if (currentStyle.da) {\r\n ctx.setLineDash(currentStyle.da);\r\n ctx.lineDashOffset = currentStyle[\"do\"];\r\n }\r\n }\r\n\r\n nodes = elems[j].trNodes;\r\n kLen = nodes.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n if (nodes[k].t === 'm') {\r\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\r\n } else if (nodes[k].t === 'c') {\r\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\r\n } else {\r\n ctx.closePath();\r\n }\r\n }\r\n\r\n if (type === 'st' || type === 'gs') {\r\n ctx.stroke();\r\n\r\n if (currentStyle.da) {\r\n ctx.setLineDash(this.dashResetter);\r\n }\r\n }\r\n }\r\n\r\n if (type !== 'st' && type !== 'gs') {\r\n ctx.fill(currentStyle.r);\r\n }\r\n\r\n renderer.restore();\r\n }\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\r\n var i;\r\n var len = items.length - 1;\r\n var groupTransform;\r\n groupTransform = parentTransform;\r\n\r\n for (i = len; i >= 0; i -= 1) {\r\n if (items[i].ty === 'tr') {\r\n groupTransform = data[i].transform;\r\n this.renderShapeTransform(parentTransform, groupTransform);\r\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\r\n this.renderPath(items[i], data[i]);\r\n } else if (items[i].ty === 'fl') {\r\n this.renderFill(items[i], data[i], groupTransform);\r\n } else if (items[i].ty === 'st') {\r\n this.renderStroke(items[i], data[i], groupTransform);\r\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\r\n this.renderGradientFill(items[i], data[i], groupTransform);\r\n } else if (items[i].ty === 'gr') {\r\n this.renderShape(groupTransform, items[i].it, data[i].it);\r\n } else if (items[i].ty === 'tm') {//\r\n }\r\n }\r\n\r\n if (isMain) {\r\n this.drawLayer();\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\r\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\r\n var shapeNodes = styledShape.trNodes;\r\n var paths = shape.paths;\r\n var i;\r\n var len;\r\n var j;\r\n var jLen = paths._length;\r\n shapeNodes.length = 0;\r\n var groupTransformMat = styledShape.transforms.finalTransform;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n var pathNodes = paths.shapes[j];\r\n\r\n if (pathNodes && pathNodes.v) {\r\n len = pathNodes._length;\r\n\r\n for (i = 1; i < len; i += 1) {\r\n if (i === 1) {\r\n shapeNodes.push({\r\n t: 'm',\r\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\r\n });\r\n }\r\n\r\n shapeNodes.push({\r\n t: 'c',\r\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\r\n });\r\n }\r\n\r\n if (len === 1) {\r\n shapeNodes.push({\r\n t: 'm',\r\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\r\n });\r\n }\r\n\r\n if (pathNodes.c && len) {\r\n shapeNodes.push({\r\n t: 'c',\r\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\r\n });\r\n shapeNodes.push({\r\n t: 'z'\r\n });\r\n }\r\n }\r\n }\r\n\r\n styledShape.trNodes = shapeNodes;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\r\n if (pathData.hd !== true && pathData._shouldRender) {\r\n var i;\r\n var len = itemData.styledShapes.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\r\n }\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n\r\n if (itemData.c._mdf || this._isFirstFrame) {\r\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\r\n }\r\n\r\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n var grd;\r\n\r\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\r\n var ctx = this.globalData.canvasContext;\r\n var pt1 = itemData.s.v;\r\n var pt2 = itemData.e.v;\r\n\r\n if (styleData.t === 1) {\r\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\r\n } else {\r\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\r\n var percent = itemData.h.v;\r\n\r\n if (percent >= 1) {\r\n percent = 0.99;\r\n } else if (percent <= -1) {\r\n percent = -0.99;\r\n }\r\n\r\n var dist = rad * percent;\r\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\r\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\r\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\r\n }\r\n\r\n var i;\r\n var len = styleData.g.p;\r\n var cValues = itemData.g.c;\r\n var opacity = 1;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\r\n opacity = itemData.g.o[i * 2 + 1];\r\n }\r\n\r\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\r\n }\r\n\r\n styleElem.grd = grd;\r\n }\r\n\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n };\r\n\r\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n var d = itemData.d;\r\n\r\n if (d && (d._mdf || this._isFirstFrame)) {\r\n styleElem.da = d.dashArray;\r\n styleElem[\"do\"] = d.dashoffset[0];\r\n }\r\n\r\n if (itemData.c._mdf || this._isFirstFrame) {\r\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\r\n }\r\n\r\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n }\r\n\r\n if (itemData.w._mdf || this._isFirstFrame) {\r\n styleElem.wi = itemData.w.v;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.destroy = function () {\r\n this.shapesData = null;\r\n this.globalData = null;\r\n this.canvasContext = null;\r\n this.stylesList.length = 0;\r\n this.itemsData.length = 0;\r\n };\r\n\r\n function CVTextElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.yOffset = 0;\r\n this.fillColorAnim = false;\r\n this.strokeColorAnim = false;\r\n this.strokeWidthAnim = false;\r\n this.stroke = false;\r\n this.fill = false;\r\n this.justifyOffset = 0;\r\n this.currentRender = null;\r\n this.renderType = 'canvas';\r\n this.values = {\r\n fill: 'rgba(0,0,0,0)',\r\n stroke: 'rgba(0,0,0,0)',\r\n sWidth: 0,\r\n fValue: ''\r\n };\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\r\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\r\n\r\n CVTextElement.prototype.buildNewText = function () {\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\r\n var hasFill = false;\r\n\r\n if (documentData.fc) {\r\n hasFill = true;\r\n this.values.fill = this.buildColor(documentData.fc);\r\n } else {\r\n this.values.fill = 'rgba(0,0,0,0)';\r\n }\r\n\r\n this.fill = hasFill;\r\n var hasStroke = false;\r\n\r\n if (documentData.sc) {\r\n hasStroke = true;\r\n this.values.stroke = this.buildColor(documentData.sc);\r\n this.values.sWidth = documentData.sw;\r\n }\r\n\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n var i;\r\n var len;\r\n var letters = documentData.l;\r\n var matrixHelper = this.mHelper;\r\n this.stroke = hasStroke;\r\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\r\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\r\n\r\n var charData;\r\n var shapeData;\r\n var k;\r\n var kLen;\r\n var shapes;\r\n var j;\r\n var jLen;\r\n var pathNodes;\r\n var commands;\r\n var pathArr;\r\n var singleShape = this.data.singleShape;\r\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\r\n var xPos = 0;\r\n var yPos = 0;\r\n var firstLine = true;\r\n var cnt = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n shapeData = charData && charData.data || {};\r\n matrixHelper.reset();\r\n\r\n if (singleShape && letters[i].n) {\r\n xPos = -trackingOffset;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n firstLine = false;\r\n }\r\n\r\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\r\n jLen = shapes.length;\r\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\r\n\r\n if (singleShape) {\r\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\r\n }\r\n\r\n commands = createSizedArray(jLen - 1);\r\n var commandsCounter = 0;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (shapes[j].ty === 'sh') {\r\n kLen = shapes[j].ks.k.i.length;\r\n pathNodes = shapes[j].ks.k;\r\n pathArr = [];\r\n\r\n for (k = 1; k < kLen; k += 1) {\r\n if (k === 1) {\r\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\r\n }\r\n\r\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\r\n }\r\n\r\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\r\n commands[commandsCounter] = pathArr;\r\n commandsCounter += 1;\r\n }\r\n }\r\n\r\n if (singleShape) {\r\n xPos += letters[i].l;\r\n xPos += trackingOffset;\r\n }\r\n\r\n if (this.textSpans[cnt]) {\r\n this.textSpans[cnt].elem = commands;\r\n } else {\r\n this.textSpans[cnt] = {\r\n elem: commands\r\n };\r\n }\r\n\r\n cnt += 1;\r\n }\r\n };\r\n\r\n CVTextElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.font = this.values.fValue;\r\n ctx.lineCap = 'butt';\r\n ctx.lineJoin = 'miter';\r\n ctx.miterLimit = 4;\r\n\r\n if (!this.data.singleShape) {\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n }\r\n\r\n var i;\r\n var len;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n var letters = this.textProperty.currentData.l;\r\n len = letters.length;\r\n var renderedLetter;\r\n var lastFill = null;\r\n var lastStroke = null;\r\n var lastStrokeW = null;\r\n var commands;\r\n var pathArr;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!letters[i].n) {\r\n renderedLetter = renderedLetters[i];\r\n\r\n if (renderedLetter) {\r\n this.globalData.renderer.save();\r\n this.globalData.renderer.ctxTransform(renderedLetter.p);\r\n this.globalData.renderer.ctxOpacity(renderedLetter.o);\r\n }\r\n\r\n if (this.fill) {\r\n if (renderedLetter && renderedLetter.fc) {\r\n if (lastFill !== renderedLetter.fc) {\r\n lastFill = renderedLetter.fc;\r\n ctx.fillStyle = renderedLetter.fc;\r\n }\r\n } else if (lastFill !== this.values.fill) {\r\n lastFill = this.values.fill;\r\n ctx.fillStyle = this.values.fill;\r\n }\r\n\r\n commands = this.textSpans[i].elem;\r\n jLen = commands.length;\r\n this.globalData.canvasContext.beginPath();\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n pathArr = commands[j];\r\n kLen = pathArr.length;\r\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\r\n\r\n for (k = 2; k < kLen; k += 6) {\r\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\r\n }\r\n }\r\n\r\n this.globalData.canvasContext.closePath();\r\n this.globalData.canvasContext.fill(); /// ctx.fillText(this.textSpans[i].val,0,0);\r\n }\r\n\r\n if (this.stroke) {\r\n if (renderedLetter && renderedLetter.sw) {\r\n if (lastStrokeW !== renderedLetter.sw) {\r\n lastStrokeW = renderedLetter.sw;\r\n ctx.lineWidth = renderedLetter.sw;\r\n }\r\n } else if (lastStrokeW !== this.values.sWidth) {\r\n lastStrokeW = this.values.sWidth;\r\n ctx.lineWidth = this.values.sWidth;\r\n }\r\n\r\n if (renderedLetter && renderedLetter.sc) {\r\n if (lastStroke !== renderedLetter.sc) {\r\n lastStroke = renderedLetter.sc;\r\n ctx.strokeStyle = renderedLetter.sc;\r\n }\r\n } else if (lastStroke !== this.values.stroke) {\r\n lastStroke = this.values.stroke;\r\n ctx.strokeStyle = this.values.stroke;\r\n }\r\n\r\n commands = this.textSpans[i].elem;\r\n jLen = commands.length;\r\n this.globalData.canvasContext.beginPath();\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n pathArr = commands[j];\r\n kLen = pathArr.length;\r\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\r\n\r\n for (k = 2; k < kLen; k += 6) {\r\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\r\n }\r\n }\r\n\r\n this.globalData.canvasContext.closePath();\r\n this.globalData.canvasContext.stroke(); /// ctx.strokeText(letters[i].val,0,0);\r\n }\r\n\r\n if (renderedLetter) {\r\n this.globalData.renderer.restore();\r\n }\r\n }\r\n }\r\n };\r\n\r\n function CVImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.img = globalData.imageLoader.getAsset(this.assetData);\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\r\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\r\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\r\n\r\n CVImageElement.prototype.createContent = function () {\r\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\r\n var canvas = createTag('canvas');\r\n canvas.width = this.assetData.w;\r\n canvas.height = this.assetData.h;\r\n var ctx = canvas.getContext('2d');\r\n var imgW = this.img.width;\r\n var imgH = this.img.height;\r\n var imgRel = imgW / imgH;\r\n var canvasRel = this.assetData.w / this.assetData.h;\r\n var widthCrop;\r\n var heightCrop;\r\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\r\n\r\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\r\n heightCrop = imgH;\r\n widthCrop = heightCrop * canvasRel;\r\n } else {\r\n widthCrop = imgW;\r\n heightCrop = widthCrop / canvasRel;\r\n }\r\n\r\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\r\n this.img = canvas;\r\n }\r\n };\r\n\r\n CVImageElement.prototype.renderInnerContent = function () {\r\n this.canvasContext.drawImage(this.img, 0, 0);\r\n };\r\n\r\n CVImageElement.prototype.destroy = function () {\r\n this.img = null;\r\n };\r\n\r\n function CVSolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\r\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\r\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\r\n\r\n CVSolidElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.fillStyle = this.data.sc;\r\n ctx.fillRect(0, 0, this.data.sw, this.data.sh); //\r\n };\r\n\r\n function CanvasRendererBase(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.renderConfig = {\r\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\r\n context: config && config.context || null,\r\n progressiveLoad: config && config.progressiveLoad || false,\r\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\r\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\r\n contentVisibility: config && config.contentVisibility || 'visible',\r\n className: config && config.className || '',\r\n id: config && config.id || ''\r\n };\r\n this.renderConfig.dpr = config && config.dpr || 1;\r\n\r\n if (this.animationItem.wrapper) {\r\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\r\n }\r\n\r\n this.renderedFrame = -1;\r\n this.globalData = {\r\n frameNum: -1,\r\n _mdf: false,\r\n renderConfig: this.renderConfig,\r\n currentGlobalAlpha: -1\r\n };\r\n this.contextData = new CVContextData();\r\n this.elements = [];\r\n this.pendingElements = [];\r\n this.transformMat = new Matrix();\r\n this.completeLayers = false;\r\n this.rendererType = 'canvas';\r\n }\r\n\r\n extendPrototype([BaseRenderer], CanvasRendererBase);\r\n\r\n CanvasRendererBase.prototype.createShape = function (data) {\r\n return new CVShapeElement(data, this.globalData, this);\r\n };\r\n\r\n CanvasRendererBase.prototype.createText = function (data) {\r\n return new CVTextElement(data, this.globalData, this);\r\n };\r\n\r\n CanvasRendererBase.prototype.createImage = function (data) {\r\n return new CVImageElement(data, this.globalData, this);\r\n };\r\n\r\n CanvasRendererBase.prototype.createSolid = function (data) {\r\n return new CVSolidElement(data, this.globalData, this);\r\n };\r\n\r\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\r\n\r\n CanvasRendererBase.prototype.ctxTransform = function (props) {\r\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\r\n return;\r\n }\r\n\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\r\n return;\r\n } // Resetting the canvas transform matrix to the new transform\r\n\r\n\r\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\r\n\r\n var currentTransform = this.contextData.getTransform();\r\n var cProps = currentTransform.props; // Applying the last transform value after the new transform to respect the order of transformations\r\n\r\n this.transformMat.transform(cProps[0], cProps[1], cProps[2], cProps[3], cProps[4], cProps[5], cProps[6], cProps[7], cProps[8], cProps[9], cProps[10], cProps[11], cProps[12], cProps[13], cProps[14], cProps[15]); // Storing the new transformed value in the stored transform\r\n\r\n currentTransform.cloneFromProps(this.transformMat.props);\r\n var trProps = currentTransform.props; // Applying the new transform to the canvas\r\n\r\n this.canvasContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\r\n };\r\n\r\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\r\n /* if(op === 1){\r\n return;\r\n } */\r\n var currentOpacity = this.contextData.getOpacity();\r\n\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\r\n this.globalData.currentGlobalAlpha = currentOpacity;\r\n return;\r\n }\r\n\r\n currentOpacity *= op < 0 ? 0 : op;\r\n this.contextData.setOpacity(currentOpacity);\r\n\r\n if (this.globalData.currentGlobalAlpha !== currentOpacity) {\r\n this.canvasContext.globalAlpha = currentOpacity;\r\n this.globalData.currentGlobalAlpha = currentOpacity;\r\n }\r\n };\r\n\r\n CanvasRendererBase.prototype.reset = function () {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.restore();\r\n return;\r\n }\r\n\r\n this.contextData.reset();\r\n };\r\n\r\n CanvasRendererBase.prototype.save = function (actionFlag) {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.save();\r\n return;\r\n }\r\n\r\n if (actionFlag) {\r\n this.canvasContext.save();\r\n }\r\n\r\n this.contextData.push();\r\n };\r\n\r\n CanvasRendererBase.prototype.restore = function (actionFlag) {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.restore();\r\n return;\r\n }\r\n\r\n if (actionFlag) {\r\n this.canvasContext.restore();\r\n this.globalData.blendMode = 'source-over';\r\n }\r\n\r\n var popped = this.contextData.pop();\r\n var transform = popped.transform;\r\n var opacity = popped.opacity;\r\n this.canvasContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\r\n\r\n if (this.globalData.currentGlobalAlpha !== opacity) {\r\n this.canvasContext.globalAlpha = opacity;\r\n this.globalData.currentGlobalAlpha = opacity;\r\n }\r\n };\r\n\r\n CanvasRendererBase.prototype.configAnimation = function (animData) {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.container = createTag('canvas');\r\n var containerStyle = this.animationItem.container.style;\r\n containerStyle.width = '100%';\r\n containerStyle.height = '100%';\r\n var origin = '0px 0px 0px';\r\n containerStyle.transformOrigin = origin;\r\n containerStyle.mozTransformOrigin = origin;\r\n containerStyle.webkitTransformOrigin = origin;\r\n containerStyle['-webkit-transform'] = origin;\r\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\r\n this.animationItem.wrapper.appendChild(this.animationItem.container);\r\n this.canvasContext = this.animationItem.container.getContext('2d');\r\n\r\n if (this.renderConfig.className) {\r\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\r\n }\r\n\r\n if (this.renderConfig.id) {\r\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\r\n }\r\n } else {\r\n this.canvasContext = this.renderConfig.context;\r\n }\r\n\r\n this.data = animData;\r\n this.layers = animData.layers;\r\n this.transformCanvas = {\r\n w: animData.w,\r\n h: animData.h,\r\n sx: 0,\r\n sy: 0,\r\n tx: 0,\r\n ty: 0\r\n };\r\n this.setupGlobalData(animData, document.body);\r\n this.globalData.canvasContext = this.canvasContext;\r\n this.globalData.renderer = this;\r\n this.globalData.isDashed = false;\r\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\r\n this.globalData.transformCanvas = this.transformCanvas;\r\n this.elements = createSizedArray(animData.layers.length);\r\n this.updateContainerSize();\r\n };\r\n\r\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\r\n this.reset();\r\n var elementWidth;\r\n var elementHeight;\r\n\r\n if (width) {\r\n elementWidth = width;\r\n elementHeight = height;\r\n this.canvasContext.canvas.width = elementWidth;\r\n this.canvasContext.canvas.height = elementHeight;\r\n } else {\r\n if (this.animationItem.wrapper && this.animationItem.container) {\r\n elementWidth = this.animationItem.wrapper.offsetWidth;\r\n elementHeight = this.animationItem.wrapper.offsetHeight;\r\n } else {\r\n elementWidth = this.canvasContext.canvas.width;\r\n elementHeight = this.canvasContext.canvas.height;\r\n }\r\n\r\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\r\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\r\n }\r\n\r\n var elementRel;\r\n var animationRel;\r\n\r\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\r\n var par = this.renderConfig.preserveAspectRatio.split(' ');\r\n var fillType = par[1] || 'meet';\r\n var pos = par[0] || 'xMidYMid';\r\n var xPos = pos.substr(0, 4);\r\n var yPos = pos.substr(4);\r\n elementRel = elementWidth / elementHeight;\r\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\r\n\r\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\r\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n } else {\r\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n }\r\n\r\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\r\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\r\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\r\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\r\n } else {\r\n this.transformCanvas.tx = 0;\r\n }\r\n\r\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\r\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\r\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\r\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\r\n } else {\r\n this.transformCanvas.ty = 0;\r\n }\r\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\r\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n this.transformCanvas.tx = 0;\r\n this.transformCanvas.ty = 0;\r\n } else {\r\n this.transformCanvas.sx = this.renderConfig.dpr;\r\n this.transformCanvas.sy = this.renderConfig.dpr;\r\n this.transformCanvas.tx = 0;\r\n this.transformCanvas.ty = 0;\r\n }\r\n\r\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\r\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n\r\n this.elements.length = 0;\r\n this.globalData.canvasContext = null;\r\n this.animationItem.container = null;\r\n this.destroyed = true;\r\n };\r\n\r\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\r\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\r\n return;\r\n }\r\n\r\n this.renderedFrame = num;\r\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\r\n this.globalData.frameId += 1;\r\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\r\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\r\n // console.log('NEW: ',num);\r\n\r\n var i;\r\n var len = this.layers.length;\r\n\r\n if (!this.completeLayers) {\r\n this.checkLayers(num);\r\n }\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].prepareFrame(num - this.layers[i].st);\r\n }\r\n }\r\n\r\n if (this.globalData._mdf) {\r\n if (this.renderConfig.clearCanvas === true) {\r\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\r\n } else {\r\n this.save();\r\n }\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n\r\n if (this.renderConfig.clearCanvas !== true) {\r\n this.restore();\r\n }\r\n }\r\n };\r\n\r\n CanvasRendererBase.prototype.buildItem = function (pos) {\r\n var elements = this.elements;\r\n\r\n if (elements[pos] || this.layers[pos].ty === 99) {\r\n return;\r\n }\r\n\r\n var element = this.createItem(this.layers[pos], this, this.globalData);\r\n elements[pos] = element;\r\n element.initExpressions();\r\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\r\n };\r\n\r\n CanvasRendererBase.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n }\r\n };\r\n\r\n CanvasRendererBase.prototype.hide = function () {\r\n this.animationItem.container.style.display = 'none';\r\n };\r\n\r\n CanvasRendererBase.prototype.show = function () {\r\n this.animationItem.container.style.display = 'block';\r\n };\r\n\r\n function CVCompElement(data, globalData, comp) {\r\n this.completeLayers = false;\r\n this.layers = data.layers;\r\n this.pendingElements = [];\r\n this.elements = createSizedArray(this.layers.length);\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\r\n _placeholder: true\r\n };\r\n }\r\n\r\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\r\n\r\n CVCompElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.beginPath();\r\n ctx.moveTo(0, 0);\r\n ctx.lineTo(this.data.w, 0);\r\n ctx.lineTo(this.data.w, this.data.h);\r\n ctx.lineTo(0, this.data.h);\r\n ctx.lineTo(0, 0);\r\n ctx.clip();\r\n var i;\r\n var len = this.layers.length;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n };\r\n\r\n CVCompElement.prototype.destroy = function () {\r\n var i;\r\n var len = this.layers.length;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n\r\n this.layers = null;\r\n this.elements = null;\r\n };\r\n\r\n CVCompElement.prototype.createComp = function (data) {\r\n return new CVCompElement(data, this.globalData, this);\r\n };\r\n\r\n function CanvasRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.renderConfig = {\r\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\r\n context: config && config.context || null,\r\n progressiveLoad: config && config.progressiveLoad || false,\r\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\r\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\r\n contentVisibility: config && config.contentVisibility || 'visible',\r\n className: config && config.className || '',\r\n id: config && config.id || '',\r\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\r\n };\r\n this.renderConfig.dpr = config && config.dpr || 1;\r\n\r\n if (this.animationItem.wrapper) {\r\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\r\n }\r\n\r\n this.renderedFrame = -1;\r\n this.globalData = {\r\n frameNum: -1,\r\n _mdf: false,\r\n renderConfig: this.renderConfig,\r\n currentGlobalAlpha: -1\r\n };\r\n this.contextData = new CVContextData();\r\n this.elements = [];\r\n this.pendingElements = [];\r\n this.transformMat = new Matrix();\r\n this.completeLayers = false;\r\n this.rendererType = 'canvas';\r\n }\r\n\r\n extendPrototype([CanvasRendererBase], CanvasRenderer);\r\n\r\n CanvasRenderer.prototype.createComp = function (data) {\r\n return new CVCompElement(data, this.globalData, this);\r\n };\r\n\r\n function HBaseElement() {}\r\n\r\n HBaseElement.prototype = {\r\n checkBlendMode: function checkBlendMode() {},\r\n initRendererElement: function initRendererElement() {\r\n this.baseElement = createTag(this.data.tg || 'div');\r\n\r\n if (this.data.hasMask) {\r\n this.svgElement = createNS('svg');\r\n this.layerElement = createNS('g');\r\n this.maskedElement = this.layerElement;\r\n this.svgElement.appendChild(this.layerElement);\r\n this.baseElement.appendChild(this.svgElement);\r\n } else {\r\n this.layerElement = this.baseElement;\r\n }\r\n\r\n styleDiv(this.baseElement);\r\n },\r\n createContainerElements: function createContainerElements() {\r\n this.renderableEffectsManager = new CVEffects(this);\r\n this.transformedElement = this.baseElement;\r\n this.maskedElement = this.layerElement;\r\n\r\n if (this.data.ln) {\r\n this.layerElement.setAttribute('id', this.data.ln);\r\n }\r\n\r\n if (this.data.cl) {\r\n this.layerElement.setAttribute('class', this.data.cl);\r\n }\r\n\r\n if (this.data.bm !== 0) {\r\n this.setBlendMode();\r\n }\r\n },\r\n renderElement: function renderElement() {\r\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\r\n\r\n if (this.finalTransform._matMdf) {\r\n var matrixValue = this.finalTransform.mat.toCSS();\r\n transformedElementStyle.transform = matrixValue;\r\n transformedElementStyle.webkitTransform = matrixValue;\r\n }\r\n\r\n if (this.finalTransform._opMdf) {\r\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\r\n }\r\n },\r\n renderFrame: function renderFrame() {\r\n // If it is exported as hidden (data.hd === true) no need to render\r\n // If it is not visible no need to render\r\n if (this.data.hd || this.hidden) {\r\n return;\r\n }\r\n\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.renderElement();\r\n this.renderInnerContent();\r\n\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n destroy: function destroy() {\r\n this.layerElement = null;\r\n this.transformedElement = null;\r\n\r\n if (this.matteElement) {\r\n this.matteElement = null;\r\n }\r\n\r\n if (this.maskManager) {\r\n this.maskManager.destroy();\r\n this.maskManager = null;\r\n }\r\n },\r\n createRenderableComponents: function createRenderableComponents() {\r\n this.maskManager = new MaskElement(this.data, this, this.globalData);\r\n },\r\n addEffects: function addEffects() {},\r\n setMatte: function setMatte() {}\r\n };\r\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\r\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\r\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\r\n\r\n function HSolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\r\n\r\n HSolidElement.prototype.createContent = function () {\r\n var rect;\r\n\r\n if (this.data.hasMask) {\r\n rect = createNS('rect');\r\n rect.setAttribute('width', this.data.sw);\r\n rect.setAttribute('height', this.data.sh);\r\n rect.setAttribute('fill', this.data.sc);\r\n this.svgElement.setAttribute('width', this.data.sw);\r\n this.svgElement.setAttribute('height', this.data.sh);\r\n } else {\r\n rect = createTag('div');\r\n rect.style.width = this.data.sw + 'px';\r\n rect.style.height = this.data.sh + 'px';\r\n rect.style.backgroundColor = this.data.sc;\r\n }\r\n\r\n this.layerElement.appendChild(rect);\r\n };\r\n\r\n function HShapeElement(data, globalData, comp) {\r\n // List of drawable elements\r\n this.shapes = []; // Full shape data\r\n\r\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\r\n\r\n this.stylesList = []; // List of modifiers that will be applied to shapes\r\n\r\n this.shapeModifiers = []; // List of items in shape tree\r\n\r\n this.itemsData = []; // List of items in previous shape tree\r\n\r\n this.processedElements = []; // List of animated components\r\n\r\n this.animatedContents = [];\r\n this.shapesContainer = createNS('g');\r\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\r\n // List of elements that have been created\r\n\r\n this.prevViewData = [];\r\n this.currentBBox = {\r\n x: 999999,\r\n y: -999999,\r\n h: 0,\r\n w: 0\r\n };\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\r\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\r\n\r\n HShapeElement.prototype.createContent = function () {\r\n var cont;\r\n this.baseElement.style.fontSize = 0;\r\n\r\n if (this.data.hasMask) {\r\n this.layerElement.appendChild(this.shapesContainer);\r\n cont = this.svgElement;\r\n } else {\r\n cont = createNS('svg');\r\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\r\n cont.setAttribute('width', size.w);\r\n cont.setAttribute('height', size.h);\r\n cont.appendChild(this.shapesContainer);\r\n this.layerElement.appendChild(cont);\r\n }\r\n\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\r\n this.filterUniqueShapes();\r\n this.shapeCont = cont;\r\n };\r\n\r\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\r\n var i;\r\n var len = transformers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\r\n }\r\n\r\n return point;\r\n };\r\n\r\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\r\n var shape = item.sh.v;\r\n var transformers = item.transformers;\r\n var i;\r\n var len = shape._length;\r\n var vPoint;\r\n var oPoint;\r\n var nextIPoint;\r\n var nextVPoint;\r\n\r\n if (len <= 1) {\r\n return;\r\n }\r\n\r\n for (i = 0; i < len - 1; i += 1) {\r\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\r\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\r\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\r\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\r\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\r\n }\r\n\r\n if (shape.c) {\r\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\r\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\r\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\r\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\r\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\r\n }\r\n };\r\n\r\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\r\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\r\n var bounds = this.shapeBoundingBox;\r\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\r\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\r\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\r\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\r\n };\r\n\r\n HShapeElement.prototype.shapeBoundingBox = {\r\n left: 0,\r\n right: 0,\r\n top: 0,\r\n bottom: 0\r\n };\r\n HShapeElement.prototype.tempBoundingBox = {\r\n x: 0,\r\n xMax: 0,\r\n y: 0,\r\n yMax: 0,\r\n width: 0,\r\n height: 0\r\n };\r\n\r\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\r\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\r\n\r\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\r\n // eslint-disable-line no-plusplus\r\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\r\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\r\n c = 3 * p1[i] - 3 * p0[i];\r\n b |= 0; // eslint-disable-line no-bitwise\r\n\r\n a |= 0; // eslint-disable-line no-bitwise\r\n\r\n c |= 0; // eslint-disable-line no-bitwise\r\n\r\n if (a === 0 && b === 0) {//\r\n } else if (a === 0) {\r\n t = -c / b;\r\n\r\n if (t > 0 && t < 1) {\r\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\r\n }\r\n } else {\r\n b2ac = b * b - 4 * c * a;\r\n\r\n if (b2ac >= 0) {\r\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\r\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\r\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\r\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\r\n }\r\n }\r\n }\r\n\r\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\r\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\r\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\r\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\r\n };\r\n\r\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\r\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\r\n };\r\n\r\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\r\n var i;\r\n var len = itemsData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (itemsData[i] && itemsData[i].sh) {\r\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\r\n } else if (itemsData[i] && itemsData[i].it) {\r\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\r\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\r\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\r\n }\r\n }\r\n };\r\n\r\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\r\n var width = 0;\r\n\r\n if (widthProperty.keyframes) {\r\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\r\n var kfw = widthProperty.keyframes[i].s;\r\n\r\n if (kfw > width) {\r\n width = kfw;\r\n }\r\n }\r\n\r\n width *= widthProperty.mult;\r\n } else {\r\n width = widthProperty.v * widthProperty.mult;\r\n }\r\n\r\n boundingBox.x -= width;\r\n boundingBox.xMax += width;\r\n boundingBox.y -= width;\r\n boundingBox.yMax += width;\r\n };\r\n\r\n HShapeElement.prototype.currentBoxContains = function (box) {\r\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\r\n };\r\n\r\n HShapeElement.prototype.renderInnerContent = function () {\r\n this._renderShapeFrame();\r\n\r\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\r\n var tempBoundingBox = this.tempBoundingBox;\r\n var max = 999999;\r\n tempBoundingBox.x = max;\r\n tempBoundingBox.xMax = -max;\r\n tempBoundingBox.y = max;\r\n tempBoundingBox.yMax = -max;\r\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\r\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\r\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\r\n\r\n if (this.currentBoxContains(tempBoundingBox)) {\r\n return;\r\n }\r\n\r\n var changed = false;\r\n\r\n if (this.currentBBox.w !== tempBoundingBox.width) {\r\n this.currentBBox.w = tempBoundingBox.width;\r\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\r\n changed = true;\r\n }\r\n\r\n if (this.currentBBox.h !== tempBoundingBox.height) {\r\n this.currentBBox.h = tempBoundingBox.height;\r\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\r\n changed = true;\r\n }\r\n\r\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\r\n this.currentBBox.w = tempBoundingBox.width;\r\n this.currentBBox.h = tempBoundingBox.height;\r\n this.currentBBox.x = tempBoundingBox.x;\r\n this.currentBBox.y = tempBoundingBox.y;\r\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\r\n var shapeStyle = this.shapeCont.style;\r\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\r\n shapeStyle.transform = shapeTransform;\r\n shapeStyle.webkitTransform = shapeTransform;\r\n }\r\n }\r\n };\r\n\r\n function HTextElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.textPaths = [];\r\n this.currentBBox = {\r\n x: 999999,\r\n y: -999999,\r\n h: 0,\r\n w: 0\r\n };\r\n this.renderType = 'svg';\r\n this.isMasked = false;\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\r\n\r\n HTextElement.prototype.createContent = function () {\r\n this.isMasked = this.checkMasks();\r\n\r\n if (this.isMasked) {\r\n this.renderType = 'svg';\r\n this.compW = this.comp.data.w;\r\n this.compH = this.comp.data.h;\r\n this.svgElement.setAttribute('width', this.compW);\r\n this.svgElement.setAttribute('height', this.compH);\r\n var g = createNS('g');\r\n this.maskedElement.appendChild(g);\r\n this.innerElem = g;\r\n } else {\r\n this.renderType = 'html';\r\n this.innerElem = this.layerElement;\r\n }\r\n\r\n this.checkParenting();\r\n };\r\n\r\n HTextElement.prototype.buildNewText = function () {\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\r\n var innerElemStyle = this.innerElem.style;\r\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\r\n innerElemStyle.fill = textColor;\r\n innerElemStyle.color = textColor;\r\n\r\n if (documentData.sc) {\r\n innerElemStyle.stroke = this.buildColor(documentData.sc);\r\n innerElemStyle.strokeWidth = documentData.sw + 'px';\r\n }\r\n\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n\r\n if (!this.globalData.fontManager.chars) {\r\n innerElemStyle.fontSize = documentData.finalSize + 'px';\r\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\r\n\r\n if (fontData.fClass) {\r\n this.innerElem.className = fontData.fClass;\r\n } else {\r\n innerElemStyle.fontFamily = fontData.fFamily;\r\n var fWeight = documentData.fWeight;\r\n var fStyle = documentData.fStyle;\r\n innerElemStyle.fontStyle = fStyle;\r\n innerElemStyle.fontWeight = fWeight;\r\n }\r\n }\r\n\r\n var i;\r\n var len;\r\n var letters = documentData.l;\r\n len = letters.length;\r\n var tSpan;\r\n var tParent;\r\n var tCont;\r\n var matrixHelper = this.mHelper;\r\n var shapes;\r\n var shapeStr = '';\r\n var cnt = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.globalData.fontManager.chars) {\r\n if (!this.textPaths[cnt]) {\r\n tSpan = createNS('path');\r\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\r\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\r\n tSpan.setAttribute('stroke-miterlimit', '4');\r\n } else {\r\n tSpan = this.textPaths[cnt];\r\n }\r\n\r\n if (!this.isMasked) {\r\n if (this.textSpans[cnt]) {\r\n tParent = this.textSpans[cnt];\r\n tCont = tParent.children[0];\r\n } else {\r\n tParent = createTag('div');\r\n tParent.style.lineHeight = 0;\r\n tCont = createNS('svg');\r\n tCont.appendChild(tSpan);\r\n styleDiv(tParent);\r\n }\r\n }\r\n } else if (!this.isMasked) {\r\n if (this.textSpans[cnt]) {\r\n tParent = this.textSpans[cnt];\r\n tSpan = this.textPaths[cnt];\r\n } else {\r\n tParent = createTag('span');\r\n styleDiv(tParent);\r\n tSpan = createTag('span');\r\n styleDiv(tSpan);\r\n tParent.appendChild(tSpan);\r\n }\r\n } else {\r\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\r\n } // tSpan.setAttribute('visibility', 'hidden');\r\n\r\n\r\n if (this.globalData.fontManager.chars) {\r\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n var shapeData;\r\n\r\n if (charData) {\r\n shapeData = charData.data;\r\n } else {\r\n shapeData = null;\r\n }\r\n\r\n matrixHelper.reset();\r\n\r\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\r\n shapes = shapeData.shapes[0].it;\r\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\r\n shapeStr = this.createPathShape(matrixHelper, shapes);\r\n tSpan.setAttribute('d', shapeStr);\r\n }\r\n\r\n if (!this.isMasked) {\r\n this.innerElem.appendChild(tParent);\r\n\r\n if (shapeData && shapeData.shapes) {\r\n // document.body.appendChild is needed to get exact measure of shape\r\n document.body.appendChild(tCont);\r\n var boundingBox = tCont.getBBox();\r\n tCont.setAttribute('width', boundingBox.width + 2);\r\n tCont.setAttribute('height', boundingBox.height + 2);\r\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\r\n var tContStyle = tCont.style;\r\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\r\n tContStyle.transform = tContTranslation;\r\n tContStyle.webkitTransform = tContTranslation;\r\n letters[i].yOffset = boundingBox.y - 1;\r\n } else {\r\n tCont.setAttribute('width', 1);\r\n tCont.setAttribute('height', 1);\r\n }\r\n\r\n tParent.appendChild(tCont);\r\n } else {\r\n this.innerElem.appendChild(tSpan);\r\n }\r\n } else {\r\n tSpan.textContent = letters[i].val;\r\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\r\n\r\n if (!this.isMasked) {\r\n this.innerElem.appendChild(tParent); //\r\n\r\n var tStyle = tSpan.style;\r\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\r\n tStyle.transform = tSpanTranslation;\r\n tStyle.webkitTransform = tSpanTranslation;\r\n } else {\r\n this.innerElem.appendChild(tSpan);\r\n }\r\n } //\r\n\r\n\r\n if (!this.isMasked) {\r\n this.textSpans[cnt] = tParent;\r\n } else {\r\n this.textSpans[cnt] = tSpan;\r\n }\r\n\r\n this.textSpans[cnt].style.display = 'block';\r\n this.textPaths[cnt] = tSpan;\r\n cnt += 1;\r\n }\r\n\r\n while (cnt < this.textSpans.length) {\r\n this.textSpans[cnt].style.display = 'none';\r\n cnt += 1;\r\n }\r\n };\r\n\r\n HTextElement.prototype.renderInnerContent = function () {\r\n var svgStyle;\r\n\r\n if (this.data.singleShape) {\r\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\r\n return;\r\n }\r\n\r\n if (this.isMasked && this.finalTransform._matMdf) {\r\n // Todo Benchmark if using this is better than getBBox\r\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\r\n svgStyle = this.svgElement.style;\r\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\r\n svgStyle.transform = translation;\r\n svgStyle.webkitTransform = translation;\r\n }\r\n }\r\n\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n\r\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\r\n return;\r\n }\r\n\r\n var i;\r\n var len;\r\n var count = 0;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n var letters = this.textProperty.currentData.l;\r\n len = letters.length;\r\n var renderedLetter;\r\n var textSpan;\r\n var textPath;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (letters[i].n) {\r\n count += 1;\r\n } else {\r\n textSpan = this.textSpans[i];\r\n textPath = this.textPaths[i];\r\n renderedLetter = renderedLetters[count];\r\n count += 1;\r\n\r\n if (renderedLetter._mdf.m) {\r\n if (!this.isMasked) {\r\n textSpan.style.webkitTransform = renderedLetter.m;\r\n textSpan.style.transform = renderedLetter.m;\r\n } else {\r\n textSpan.setAttribute('transform', renderedLetter.m);\r\n }\r\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\r\n\r\n\r\n textSpan.style.opacity = renderedLetter.o;\r\n\r\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\r\n textPath.setAttribute('stroke-width', renderedLetter.sw);\r\n }\r\n\r\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\r\n textPath.setAttribute('stroke', renderedLetter.sc);\r\n }\r\n\r\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\r\n textPath.setAttribute('fill', renderedLetter.fc);\r\n textPath.style.color = renderedLetter.fc;\r\n }\r\n }\r\n }\r\n\r\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\r\n var boundingBox = this.innerElem.getBBox();\r\n\r\n if (this.currentBBox.w !== boundingBox.width) {\r\n this.currentBBox.w = boundingBox.width;\r\n this.svgElement.setAttribute('width', boundingBox.width);\r\n }\r\n\r\n if (this.currentBBox.h !== boundingBox.height) {\r\n this.currentBBox.h = boundingBox.height;\r\n this.svgElement.setAttribute('height', boundingBox.height);\r\n }\r\n\r\n var margin = 1;\r\n\r\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\r\n this.currentBBox.w = boundingBox.width + margin * 2;\r\n this.currentBBox.h = boundingBox.height + margin * 2;\r\n this.currentBBox.x = boundingBox.x - margin;\r\n this.currentBBox.y = boundingBox.y - margin;\r\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\r\n svgStyle = this.svgElement.style;\r\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\r\n svgStyle.transform = svgTransform;\r\n svgStyle.webkitTransform = svgTransform;\r\n }\r\n }\r\n };\r\n\r\n function HCameraElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initHierarchy();\r\n var getProp = PropertyFactory.getProp;\r\n this.pe = getProp(this, data.pe, 0, 0, this);\r\n\r\n if (data.ks.p.s) {\r\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\r\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\r\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\r\n } else {\r\n this.p = getProp(this, data.ks.p, 1, 0, this);\r\n }\r\n\r\n if (data.ks.a) {\r\n this.a = getProp(this, data.ks.a, 1, 0, this);\r\n }\r\n\r\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\r\n var i;\r\n var len = data.ks.or.k.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n data.ks.or.k[i].to = null;\r\n data.ks.or.k[i].ti = null;\r\n }\r\n }\r\n\r\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\r\n this.or.sh = true;\r\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\r\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\r\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\r\n this.mat = new Matrix();\r\n this._prevMat = new Matrix();\r\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\r\n\r\n this.finalTransform = {\r\n mProp: this\r\n };\r\n }\r\n\r\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\r\n\r\n HCameraElement.prototype.setup = function () {\r\n var i;\r\n var len = this.comp.threeDElements.length;\r\n var comp;\r\n var perspectiveStyle;\r\n var containerStyle;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n // [perspectiveElem,container]\r\n comp = this.comp.threeDElements[i];\r\n\r\n if (comp.type === '3d') {\r\n perspectiveStyle = comp.perspectiveElem.style;\r\n containerStyle = comp.container.style;\r\n var perspective = this.pe.v + 'px';\r\n var origin = '0px 0px 0px';\r\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\r\n perspectiveStyle.perspective = perspective;\r\n perspectiveStyle.webkitPerspective = perspective;\r\n containerStyle.transformOrigin = origin;\r\n containerStyle.mozTransformOrigin = origin;\r\n containerStyle.webkitTransformOrigin = origin;\r\n perspectiveStyle.transform = matrix;\r\n perspectiveStyle.webkitTransform = matrix;\r\n }\r\n }\r\n };\r\n\r\n HCameraElement.prototype.createElements = function () {};\r\n\r\n HCameraElement.prototype.hide = function () {};\r\n\r\n HCameraElement.prototype.renderFrame = function () {\r\n var _mdf = this._isFirstFrame;\r\n var i;\r\n var len;\r\n\r\n if (this.hierarchy) {\r\n len = this.hierarchy.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\r\n }\r\n }\r\n\r\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\r\n this.mat.reset();\r\n\r\n if (this.hierarchy) {\r\n len = this.hierarchy.length - 1;\r\n\r\n for (i = len; i >= 0; i -= 1) {\r\n var mTransf = this.hierarchy[i].finalTransform.mProp;\r\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\r\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\r\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\r\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\r\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\r\n }\r\n }\r\n\r\n if (this.p) {\r\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\r\n } else {\r\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\r\n }\r\n\r\n if (this.a) {\r\n var diffVector;\r\n\r\n if (this.p) {\r\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\r\n } else {\r\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\r\n }\r\n\r\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\r\n\r\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\r\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\r\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\r\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\r\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\r\n }\r\n\r\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\r\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\r\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\r\n this.mat.translate(0, 0, this.pe.v);\r\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\r\n\r\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\r\n len = this.comp.threeDElements.length;\r\n var comp;\r\n var perspectiveStyle;\r\n var containerStyle;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n comp = this.comp.threeDElements[i];\r\n\r\n if (comp.type === '3d') {\r\n if (hasMatrixChanged) {\r\n var matValue = this.mat.toCSS();\r\n containerStyle = comp.container.style;\r\n containerStyle.transform = matValue;\r\n containerStyle.webkitTransform = matValue;\r\n }\r\n\r\n if (this.pe._mdf) {\r\n perspectiveStyle = comp.perspectiveElem.style;\r\n perspectiveStyle.perspective = this.pe.v + 'px';\r\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\r\n }\r\n }\r\n }\r\n\r\n this.mat.clone(this._prevMat);\r\n }\r\n }\r\n\r\n this._isFirstFrame = false;\r\n };\r\n\r\n HCameraElement.prototype.prepareFrame = function (num) {\r\n this.prepareProperties(num, true);\r\n };\r\n\r\n HCameraElement.prototype.destroy = function () {};\r\n\r\n HCameraElement.prototype.getBaseElement = function () {\r\n return null;\r\n };\r\n\r\n function HImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\r\n\r\n HImageElement.prototype.createContent = function () {\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n var img = new Image();\r\n\r\n if (this.data.hasMask) {\r\n this.imageElem = createNS('image');\r\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\r\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\r\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\r\n this.layerElement.appendChild(this.imageElem);\r\n this.baseElement.setAttribute('width', this.assetData.w);\r\n this.baseElement.setAttribute('height', this.assetData.h);\r\n } else {\r\n this.layerElement.appendChild(img);\r\n }\r\n\r\n img.crossOrigin = 'anonymous';\r\n img.src = assetPath;\r\n\r\n if (this.data.ln) {\r\n this.baseElement.setAttribute('id', this.data.ln);\r\n }\r\n };\r\n\r\n function HybridRendererBase(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.layers = null;\r\n this.renderedFrame = -1;\r\n this.renderConfig = {\r\n className: config && config.className || '',\r\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\r\n hideOnTransparent: !(config && config.hideOnTransparent === false),\r\n filterSize: {\r\n width: config && config.filterSize && config.filterSize.width || '400%',\r\n height: config && config.filterSize && config.filterSize.height || '400%',\r\n x: config && config.filterSize && config.filterSize.x || '-100%',\r\n y: config && config.filterSize && config.filterSize.y || '-100%'\r\n }\r\n };\r\n this.globalData = {\r\n _mdf: false,\r\n frameNum: -1,\r\n renderConfig: this.renderConfig\r\n };\r\n this.pendingElements = [];\r\n this.elements = [];\r\n this.threeDElements = [];\r\n this.destroyed = false;\r\n this.camera = null;\r\n this.supports3d = true;\r\n this.rendererType = 'html';\r\n }\r\n\r\n extendPrototype([BaseRenderer], HybridRendererBase);\r\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\r\n\r\n HybridRendererBase.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n }\r\n };\r\n\r\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\r\n var newDOMElement = element.getBaseElement();\r\n\r\n if (!newDOMElement) {\r\n return;\r\n }\r\n\r\n var layer = this.layers[pos];\r\n\r\n if (!layer.ddd || !this.supports3d) {\r\n if (this.threeDElements) {\r\n this.addTo3dContainer(newDOMElement, pos);\r\n } else {\r\n var i = 0;\r\n var nextDOMElement;\r\n var nextLayer;\r\n var tmpDOMElement;\r\n\r\n while (i < pos) {\r\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\r\n nextLayer = this.elements[i];\r\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\r\n nextDOMElement = tmpDOMElement || nextDOMElement;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (nextDOMElement) {\r\n if (!layer.ddd || !this.supports3d) {\r\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\r\n }\r\n } else if (!layer.ddd || !this.supports3d) {\r\n this.layerElement.appendChild(newDOMElement);\r\n }\r\n }\r\n } else {\r\n this.addTo3dContainer(newDOMElement, pos);\r\n }\r\n };\r\n\r\n HybridRendererBase.prototype.createShape = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGShapeElement(data, this.globalData, this);\r\n }\r\n\r\n return new HShapeElement(data, this.globalData, this);\r\n };\r\n\r\n HybridRendererBase.prototype.createText = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGTextLottieElement(data, this.globalData, this);\r\n }\r\n\r\n return new HTextElement(data, this.globalData, this);\r\n };\r\n\r\n HybridRendererBase.prototype.createCamera = function (data) {\r\n this.camera = new HCameraElement(data, this.globalData, this);\r\n return this.camera;\r\n };\r\n\r\n HybridRendererBase.prototype.createImage = function (data) {\r\n if (!this.supports3d) {\r\n return new IImageElement(data, this.globalData, this);\r\n }\r\n\r\n return new HImageElement(data, this.globalData, this);\r\n };\r\n\r\n HybridRendererBase.prototype.createSolid = function (data) {\r\n if (!this.supports3d) {\r\n return new ISolidElement(data, this.globalData, this);\r\n }\r\n\r\n return new HSolidElement(data, this.globalData, this);\r\n };\r\n\r\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\r\n\r\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\r\n var i = 0;\r\n var len = this.threeDElements.length;\r\n\r\n while (i < len) {\r\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\r\n return this.threeDElements[i].perspectiveElem;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\r\n var perspectiveElem = createTag('div');\r\n var style;\r\n var containerStyle;\r\n styleDiv(perspectiveElem);\r\n var container = createTag('div');\r\n styleDiv(container);\r\n\r\n if (type === '3d') {\r\n style = perspectiveElem.style;\r\n style.width = this.globalData.compSize.w + 'px';\r\n style.height = this.globalData.compSize.h + 'px';\r\n var center = '50% 50%';\r\n style.webkitTransformOrigin = center;\r\n style.mozTransformOrigin = center;\r\n style.transformOrigin = center;\r\n containerStyle = container.style;\r\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\r\n containerStyle.transform = matrix;\r\n containerStyle.webkitTransform = matrix;\r\n }\r\n\r\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\r\n\r\n var threeDContainerData = {\r\n container: container,\r\n perspectiveElem: perspectiveElem,\r\n startPos: pos,\r\n endPos: pos,\r\n type: type\r\n };\r\n this.threeDElements.push(threeDContainerData);\r\n return threeDContainerData;\r\n };\r\n\r\n HybridRendererBase.prototype.build3dContainers = function () {\r\n var i;\r\n var len = this.layers.length;\r\n var lastThreeDContainerData;\r\n var currentContainer = '';\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\r\n if (currentContainer !== '3d') {\r\n currentContainer = '3d';\r\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\r\n }\r\n\r\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\r\n } else {\r\n if (currentContainer !== '2d') {\r\n currentContainer = '2d';\r\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\r\n }\r\n\r\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\r\n }\r\n }\r\n\r\n len = this.threeDElements.length;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\r\n }\r\n };\r\n\r\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\r\n var i = 0;\r\n var len = this.threeDElements.length;\r\n\r\n while (i < len) {\r\n if (pos <= this.threeDElements[i].endPos) {\r\n var j = this.threeDElements[i].startPos;\r\n var nextElement;\r\n\r\n while (j < pos) {\r\n if (this.elements[j] && this.elements[j].getBaseElement) {\r\n nextElement = this.elements[j].getBaseElement();\r\n }\r\n\r\n j += 1;\r\n }\r\n\r\n if (nextElement) {\r\n this.threeDElements[i].container.insertBefore(elem, nextElement);\r\n } else {\r\n this.threeDElements[i].container.appendChild(elem);\r\n }\r\n\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n };\r\n\r\n HybridRendererBase.prototype.configAnimation = function (animData) {\r\n var resizerElem = createTag('div');\r\n var wrapper = this.animationItem.wrapper;\r\n var style = resizerElem.style;\r\n style.width = animData.w + 'px';\r\n style.height = animData.h + 'px';\r\n this.resizerElem = resizerElem;\r\n styleDiv(resizerElem);\r\n style.transformStyle = 'flat';\r\n style.mozTransformStyle = 'flat';\r\n style.webkitTransformStyle = 'flat';\r\n\r\n if (this.renderConfig.className) {\r\n resizerElem.setAttribute('class', this.renderConfig.className);\r\n }\r\n\r\n wrapper.appendChild(resizerElem);\r\n style.overflow = 'hidden';\r\n var svg = createNS('svg');\r\n svg.setAttribute('width', '1');\r\n svg.setAttribute('height', '1');\r\n styleDiv(svg);\r\n this.resizerElem.appendChild(svg);\r\n var defs = createNS('defs');\r\n svg.appendChild(defs);\r\n this.data = animData; // Mask animation\r\n\r\n this.setupGlobalData(animData, svg);\r\n this.globalData.defs = defs;\r\n this.layers = animData.layers;\r\n this.layerElement = this.resizerElem;\r\n this.build3dContainers();\r\n this.updateContainerSize();\r\n };\r\n\r\n HybridRendererBase.prototype.destroy = function () {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.wrapper.innerText = '';\r\n }\r\n\r\n this.animationItem.container = null;\r\n this.globalData.defs = null;\r\n var i;\r\n var len = this.layers ? this.layers.length : 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.elements[i].destroy();\r\n }\r\n\r\n this.elements.length = 0;\r\n this.destroyed = true;\r\n this.animationItem = null;\r\n };\r\n\r\n HybridRendererBase.prototype.updateContainerSize = function () {\r\n var elementWidth = this.animationItem.wrapper.offsetWidth;\r\n var elementHeight = this.animationItem.wrapper.offsetHeight;\r\n var elementRel = elementWidth / elementHeight;\r\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\r\n var sx;\r\n var sy;\r\n var tx;\r\n var ty;\r\n\r\n if (animationRel > elementRel) {\r\n sx = elementWidth / this.globalData.compSize.w;\r\n sy = elementWidth / this.globalData.compSize.w;\r\n tx = 0;\r\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\r\n } else {\r\n sx = elementHeight / this.globalData.compSize.h;\r\n sy = elementHeight / this.globalData.compSize.h;\r\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\r\n ty = 0;\r\n }\r\n\r\n var style = this.resizerElem.style;\r\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\r\n style.transform = style.webkitTransform;\r\n };\r\n\r\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\r\n\r\n HybridRendererBase.prototype.hide = function () {\r\n this.resizerElem.style.display = 'none';\r\n };\r\n\r\n HybridRendererBase.prototype.show = function () {\r\n this.resizerElem.style.display = 'block';\r\n };\r\n\r\n HybridRendererBase.prototype.initItems = function () {\r\n this.buildAllItems();\r\n\r\n if (this.camera) {\r\n this.camera.setup();\r\n } else {\r\n var cWidth = this.globalData.compSize.w;\r\n var cHeight = this.globalData.compSize.h;\r\n var i;\r\n var len = this.threeDElements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n var style = this.threeDElements[i].perspectiveElem.style;\r\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\r\n style.perspective = style.webkitPerspective;\r\n }\r\n }\r\n };\r\n\r\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\r\n var i;\r\n var len = assets.length;\r\n var floatingContainer = createTag('div');\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (assets[i].xt) {\r\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\r\n comp.initExpressions();\r\n this.globalData.projectInterface.registerComposition(comp);\r\n }\r\n }\r\n };\r\n\r\n function HCompElement(data, globalData, comp) {\r\n this.layers = data.layers;\r\n this.supports3d = !data.hasMask;\r\n this.completeLayers = false;\r\n this.pendingElements = [];\r\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\r\n _placeholder: true\r\n };\r\n }\r\n\r\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\r\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\r\n\r\n HCompElement.prototype.createContainerElements = function () {\r\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\r\n\r\n\r\n if (this.data.hasMask) {\r\n this.svgElement.setAttribute('width', this.data.w);\r\n this.svgElement.setAttribute('height', this.data.h);\r\n this.transformedElement = this.baseElement;\r\n } else {\r\n this.transformedElement = this.layerElement;\r\n }\r\n };\r\n\r\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\r\n var j = 0;\r\n var nextElement;\r\n\r\n while (j < pos) {\r\n if (this.elements[j] && this.elements[j].getBaseElement) {\r\n nextElement = this.elements[j].getBaseElement();\r\n }\r\n\r\n j += 1;\r\n }\r\n\r\n if (nextElement) {\r\n this.layerElement.insertBefore(elem, nextElement);\r\n } else {\r\n this.layerElement.appendChild(elem);\r\n }\r\n };\r\n\r\n HCompElement.prototype.createComp = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n }\r\n\r\n return new HCompElement(data, this.globalData, this);\r\n };\r\n\r\n function HybridRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.layers = null;\r\n this.renderedFrame = -1;\r\n this.renderConfig = {\r\n className: config && config.className || '',\r\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\r\n hideOnTransparent: !(config && config.hideOnTransparent === false),\r\n filterSize: {\r\n width: config && config.filterSize && config.filterSize.width || '400%',\r\n height: config && config.filterSize && config.filterSize.height || '400%',\r\n x: config && config.filterSize && config.filterSize.x || '-100%',\r\n y: config && config.filterSize && config.filterSize.y || '-100%'\r\n },\r\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\r\n };\r\n this.globalData = {\r\n _mdf: false,\r\n frameNum: -1,\r\n renderConfig: this.renderConfig\r\n };\r\n this.pendingElements = [];\r\n this.elements = [];\r\n this.threeDElements = [];\r\n this.destroyed = false;\r\n this.camera = null;\r\n this.supports3d = true;\r\n this.rendererType = 'html';\r\n }\r\n\r\n extendPrototype([HybridRendererBase], HybridRenderer);\r\n\r\n HybridRenderer.prototype.createComp = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n }\r\n\r\n return new HCompElement(data, this.globalData, this);\r\n };\r\n\r\n var CompExpressionInterface = function () {\r\n return function (comp) {\r\n function _thisLayerFunction(name) {\r\n var i = 0;\r\n var len = comp.layers.length;\r\n\r\n while (i < len) {\r\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\r\n return comp.elements[i].layerInterface;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null; // return {active:false};\r\n }\r\n\r\n Object.defineProperty(_thisLayerFunction, '_name', {\r\n value: comp.data.nm\r\n });\r\n _thisLayerFunction.layer = _thisLayerFunction;\r\n _thisLayerFunction.pixelAspect = 1;\r\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\r\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\r\n _thisLayerFunction.pixelAspect = 1;\r\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\r\n _thisLayerFunction.displayStartTime = 0;\r\n _thisLayerFunction.numLayers = comp.layers.length;\r\n return _thisLayerFunction;\r\n };\r\n }();\r\n\r\n var Expressions = function () {\r\n var ob = {};\r\n ob.initExpressions = initExpressions;\r\n\r\n function initExpressions(animation) {\r\n var stackCount = 0;\r\n var registers = [];\r\n\r\n function pushExpression() {\r\n stackCount += 1;\r\n }\r\n\r\n function popExpression() {\r\n stackCount -= 1;\r\n\r\n if (stackCount === 0) {\r\n releaseInstances();\r\n }\r\n }\r\n\r\n function registerExpressionProperty(expression) {\r\n if (registers.indexOf(expression) === -1) {\r\n registers.push(expression);\r\n }\r\n }\r\n\r\n function releaseInstances() {\r\n var i;\r\n var len = registers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registers[i].release();\r\n }\r\n\r\n registers.length = 0;\r\n }\r\n\r\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\r\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\r\n animation.renderer.globalData.pushExpression = pushExpression;\r\n animation.renderer.globalData.popExpression = popExpression;\r\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var MaskManagerInterface = function () {\r\n function MaskInterface(mask, data) {\r\n this._mask = mask;\r\n this._data = data;\r\n }\r\n\r\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\r\n get: function get() {\r\n if (this._mask.prop.k) {\r\n this._mask.prop.getValue();\r\n }\r\n\r\n return this._mask.prop;\r\n }\r\n });\r\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\r\n get: function get() {\r\n if (this._mask.op.k) {\r\n this._mask.op.getValue();\r\n }\r\n\r\n return this._mask.op.v * 100;\r\n }\r\n });\r\n\r\n var MaskManager = function MaskManager(maskManager) {\r\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\r\n\r\n var i;\r\n var len = maskManager.viewData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\r\n }\r\n\r\n var maskFunction = function maskFunction(name) {\r\n i = 0;\r\n\r\n while (i < len) {\r\n if (maskManager.masksProperties[i].nm === name) {\r\n return _masksInterfaces[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n return maskFunction;\r\n };\r\n\r\n return MaskManager;\r\n }();\r\n\r\n var ExpressionPropertyInterface = function () {\r\n var defaultUnidimensionalValue = {\r\n pv: 0,\r\n v: 0,\r\n mult: 1\r\n };\r\n var defaultMultidimensionalValue = {\r\n pv: [0, 0, 0],\r\n v: [0, 0, 0],\r\n mult: 1\r\n };\r\n\r\n function completeProperty(expressionValue, property, type) {\r\n Object.defineProperty(expressionValue, 'velocity', {\r\n get: function get() {\r\n return property.getVelocityAtTime(property.comp.currentFrame);\r\n }\r\n });\r\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\r\n\r\n expressionValue.key = function (pos) {\r\n if (!expressionValue.numKeys) {\r\n return 0;\r\n }\r\n\r\n var value = '';\r\n\r\n if ('s' in property.keyframes[pos - 1]) {\r\n value = property.keyframes[pos - 1].s;\r\n } else if ('e' in property.keyframes[pos - 2]) {\r\n value = property.keyframes[pos - 2].e;\r\n } else {\r\n value = property.keyframes[pos - 2].s;\r\n }\r\n\r\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\r\n\r\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\r\n valueProp.value = type === 'unidimensional' ? value[0] : value;\r\n return valueProp;\r\n };\r\n\r\n expressionValue.valueAtTime = property.getValueAtTime;\r\n expressionValue.speedAtTime = property.getSpeedAtTime;\r\n expressionValue.velocityAtTime = property.getVelocityAtTime;\r\n expressionValue.propertyGroup = property.propertyGroup;\r\n }\r\n\r\n function UnidimensionalPropertyInterface(property) {\r\n if (!property || !('pv' in property)) {\r\n property = defaultUnidimensionalValue;\r\n }\r\n\r\n var mult = 1 / property.mult;\r\n var val = property.pv * mult;\r\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\r\n\r\n expressionValue.value = val;\r\n completeProperty(expressionValue, property, 'unidimensional');\r\n return function () {\r\n if (property.k) {\r\n property.getValue();\r\n }\r\n\r\n val = property.v * mult;\r\n\r\n if (expressionValue.value !== val) {\r\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\r\n\r\n expressionValue.value = val;\r\n completeProperty(expressionValue, property, 'unidimensional');\r\n }\r\n\r\n return expressionValue;\r\n };\r\n }\r\n\r\n function MultidimensionalPropertyInterface(property) {\r\n if (!property || !('pv' in property)) {\r\n property = defaultMultidimensionalValue;\r\n }\r\n\r\n var mult = 1 / property.mult;\r\n var len = property.data && property.data.l || property.pv.length;\r\n var expressionValue = createTypedArray('float32', len);\r\n var arrValue = createTypedArray('float32', len);\r\n expressionValue.value = arrValue;\r\n completeProperty(expressionValue, property, 'multidimensional');\r\n return function () {\r\n if (property.k) {\r\n property.getValue();\r\n }\r\n\r\n for (var i = 0; i < len; i += 1) {\r\n arrValue[i] = property.v[i] * mult;\r\n expressionValue[i] = arrValue[i];\r\n }\r\n\r\n return expressionValue;\r\n };\r\n } // TODO: try to avoid using this getter\r\n\r\n\r\n function defaultGetter() {\r\n return defaultUnidimensionalValue;\r\n }\r\n\r\n return function (property) {\r\n if (!property) {\r\n return defaultGetter;\r\n }\r\n\r\n if (property.propType === 'unidimensional') {\r\n return UnidimensionalPropertyInterface(property);\r\n }\r\n\r\n return MultidimensionalPropertyInterface(property);\r\n };\r\n }();\r\n\r\n var TransformExpressionInterface = function () {\r\n return function (transform) {\r\n function _thisFunction(name) {\r\n switch (name) {\r\n case 'scale':\r\n case 'Scale':\r\n case 'ADBE Scale':\r\n case 6:\r\n return _thisFunction.scale;\r\n\r\n case 'rotation':\r\n case 'Rotation':\r\n case 'ADBE Rotation':\r\n case 'ADBE Rotate Z':\r\n case 10:\r\n return _thisFunction.rotation;\r\n\r\n case 'ADBE Rotate X':\r\n return _thisFunction.xRotation;\r\n\r\n case 'ADBE Rotate Y':\r\n return _thisFunction.yRotation;\r\n\r\n case 'position':\r\n case 'Position':\r\n case 'ADBE Position':\r\n case 2:\r\n return _thisFunction.position;\r\n\r\n case 'ADBE Position_0':\r\n return _thisFunction.xPosition;\r\n\r\n case 'ADBE Position_1':\r\n return _thisFunction.yPosition;\r\n\r\n case 'ADBE Position_2':\r\n return _thisFunction.zPosition;\r\n\r\n case 'anchorPoint':\r\n case 'AnchorPoint':\r\n case 'Anchor Point':\r\n case 'ADBE AnchorPoint':\r\n case 1:\r\n return _thisFunction.anchorPoint;\r\n\r\n case 'opacity':\r\n case 'Opacity':\r\n case 11:\r\n return _thisFunction.opacity;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n Object.defineProperty(_thisFunction, 'rotation', {\r\n get: ExpressionPropertyInterface(transform.r || transform.rz)\r\n });\r\n Object.defineProperty(_thisFunction, 'zRotation', {\r\n get: ExpressionPropertyInterface(transform.rz || transform.r)\r\n });\r\n Object.defineProperty(_thisFunction, 'xRotation', {\r\n get: ExpressionPropertyInterface(transform.rx)\r\n });\r\n Object.defineProperty(_thisFunction, 'yRotation', {\r\n get: ExpressionPropertyInterface(transform.ry)\r\n });\r\n Object.defineProperty(_thisFunction, 'scale', {\r\n get: ExpressionPropertyInterface(transform.s)\r\n });\r\n\r\n var _px;\r\n\r\n var _py;\r\n\r\n var _pz;\r\n\r\n var _transformFactory;\r\n\r\n if (transform.p) {\r\n _transformFactory = ExpressionPropertyInterface(transform.p);\r\n } else {\r\n _px = ExpressionPropertyInterface(transform.px);\r\n _py = ExpressionPropertyInterface(transform.py);\r\n\r\n if (transform.pz) {\r\n _pz = ExpressionPropertyInterface(transform.pz);\r\n }\r\n }\r\n\r\n Object.defineProperty(_thisFunction, 'position', {\r\n get: function get() {\r\n if (transform.p) {\r\n return _transformFactory();\r\n }\r\n\r\n return [_px(), _py(), _pz ? _pz() : 0];\r\n }\r\n });\r\n Object.defineProperty(_thisFunction, 'xPosition', {\r\n get: ExpressionPropertyInterface(transform.px)\r\n });\r\n Object.defineProperty(_thisFunction, 'yPosition', {\r\n get: ExpressionPropertyInterface(transform.py)\r\n });\r\n Object.defineProperty(_thisFunction, 'zPosition', {\r\n get: ExpressionPropertyInterface(transform.pz)\r\n });\r\n Object.defineProperty(_thisFunction, 'anchorPoint', {\r\n get: ExpressionPropertyInterface(transform.a)\r\n });\r\n Object.defineProperty(_thisFunction, 'opacity', {\r\n get: ExpressionPropertyInterface(transform.o)\r\n });\r\n Object.defineProperty(_thisFunction, 'skew', {\r\n get: ExpressionPropertyInterface(transform.sk)\r\n });\r\n Object.defineProperty(_thisFunction, 'skewAxis', {\r\n get: ExpressionPropertyInterface(transform.sa)\r\n });\r\n Object.defineProperty(_thisFunction, 'orientation', {\r\n get: ExpressionPropertyInterface(transform.or)\r\n });\r\n return _thisFunction;\r\n };\r\n }();\r\n\r\n var LayerExpressionInterface = function () {\r\n function getMatrix(time) {\r\n var toWorldMat = new Matrix();\r\n\r\n if (time !== undefined) {\r\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\r\n\r\n propMatrix.clone(toWorldMat);\r\n } else {\r\n var transformMat = this._elem.finalTransform.mProp;\r\n transformMat.applyToMatrix(toWorldMat);\r\n }\r\n\r\n return toWorldMat;\r\n }\r\n\r\n function toWorldVec(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n toWorldMat.props[12] = 0;\r\n toWorldMat.props[13] = 0;\r\n toWorldMat.props[14] = 0;\r\n return this.applyPoint(toWorldMat, arr);\r\n }\r\n\r\n function toWorld(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n return this.applyPoint(toWorldMat, arr);\r\n }\r\n\r\n function fromWorldVec(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n toWorldMat.props[12] = 0;\r\n toWorldMat.props[13] = 0;\r\n toWorldMat.props[14] = 0;\r\n return this.invertPoint(toWorldMat, arr);\r\n }\r\n\r\n function fromWorld(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n return this.invertPoint(toWorldMat, arr);\r\n }\r\n\r\n function applyPoint(matrix, arr) {\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\r\n }\r\n }\r\n\r\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\r\n }\r\n\r\n function invertPoint(matrix, arr) {\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\r\n }\r\n }\r\n\r\n return matrix.inversePoint(arr);\r\n }\r\n\r\n function fromComp(arr) {\r\n var toWorldMat = new Matrix();\r\n toWorldMat.reset();\r\n\r\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\r\n\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\r\n }\r\n\r\n return toWorldMat.inversePoint(arr);\r\n }\r\n\r\n return toWorldMat.inversePoint(arr);\r\n }\r\n\r\n function sampleImage() {\r\n return [1, 1, 1, 1];\r\n }\r\n\r\n return function (elem) {\r\n var transformInterface;\r\n\r\n function _registerMaskInterface(maskManager) {\r\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\r\n }\r\n\r\n function _registerEffectsInterface(effects) {\r\n _thisLayerFunction.effect = effects;\r\n }\r\n\r\n function _thisLayerFunction(name) {\r\n switch (name) {\r\n case 'ADBE Root Vectors Group':\r\n case 'Contents':\r\n case 2:\r\n return _thisLayerFunction.shapeInterface;\r\n\r\n case 1:\r\n case 6:\r\n case 'Transform':\r\n case 'transform':\r\n case 'ADBE Transform Group':\r\n return transformInterface;\r\n\r\n case 4:\r\n case 'ADBE Effect Parade':\r\n case 'effects':\r\n case 'Effects':\r\n return _thisLayerFunction.effect;\r\n\r\n case 'ADBE Text Properties':\r\n return _thisLayerFunction.textInterface;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n _thisLayerFunction.getMatrix = getMatrix;\r\n _thisLayerFunction.invertPoint = invertPoint;\r\n _thisLayerFunction.applyPoint = applyPoint;\r\n _thisLayerFunction.toWorld = toWorld;\r\n _thisLayerFunction.toWorldVec = toWorldVec;\r\n _thisLayerFunction.fromWorld = fromWorld;\r\n _thisLayerFunction.fromWorldVec = fromWorldVec;\r\n _thisLayerFunction.toComp = toWorld;\r\n _thisLayerFunction.fromComp = fromComp;\r\n _thisLayerFunction.sampleImage = sampleImage;\r\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\r\n _thisLayerFunction._elem = elem;\r\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\r\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\r\n Object.defineProperties(_thisLayerFunction, {\r\n hasParent: {\r\n get: function get() {\r\n return elem.hierarchy.length;\r\n }\r\n },\r\n parent: {\r\n get: function get() {\r\n return elem.hierarchy[0].layerInterface;\r\n }\r\n },\r\n rotation: getDescriptor(transformInterface, 'rotation'),\r\n scale: getDescriptor(transformInterface, 'scale'),\r\n position: getDescriptor(transformInterface, 'position'),\r\n opacity: getDescriptor(transformInterface, 'opacity'),\r\n anchorPoint: anchorPointDescriptor,\r\n anchor_point: anchorPointDescriptor,\r\n transform: {\r\n get: function get() {\r\n return transformInterface;\r\n }\r\n },\r\n active: {\r\n get: function get() {\r\n return elem.isInRange;\r\n }\r\n }\r\n });\r\n _thisLayerFunction.startTime = elem.data.st;\r\n _thisLayerFunction.index = elem.data.ind;\r\n _thisLayerFunction.source = elem.data.refId;\r\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\r\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\r\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\r\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\r\n _thisLayerFunction._name = elem.data.nm;\r\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\r\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\r\n return _thisLayerFunction;\r\n };\r\n }();\r\n\r\n var propertyGroupFactory = function () {\r\n return function (interfaceFunction, parentPropertyGroup) {\r\n return function (val) {\r\n val = val === undefined ? 1 : val;\r\n\r\n if (val <= 0) {\r\n return interfaceFunction;\r\n }\r\n\r\n return parentPropertyGroup(val - 1);\r\n };\r\n };\r\n }();\r\n\r\n var PropertyInterface = function () {\r\n return function (propertyName, propertyGroup) {\r\n var interfaceFunction = {\r\n _name: propertyName\r\n };\r\n\r\n function _propertyGroup(val) {\r\n val = val === undefined ? 1 : val;\r\n\r\n if (val <= 0) {\r\n return interfaceFunction;\r\n }\r\n\r\n return propertyGroup(val - 1);\r\n }\r\n\r\n return _propertyGroup;\r\n };\r\n }();\r\n\r\n var EffectsExpressionInterface = function () {\r\n var ob = {\r\n createEffectsInterface: createEffectsInterface\r\n };\r\n\r\n function createEffectsInterface(elem, propertyGroup) {\r\n if (elem.effectsManager) {\r\n var effectElements = [];\r\n var effectsData = elem.data.ef;\r\n var i;\r\n var len = elem.effectsManager.effectElements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\r\n }\r\n\r\n var effects = elem.data.ef || [];\r\n\r\n var groupInterface = function groupInterface(name) {\r\n i = 0;\r\n len = effects.length;\r\n\r\n while (i < len) {\r\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\r\n return effectElements[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n Object.defineProperty(groupInterface, 'numProperties', {\r\n get: function get() {\r\n return effects.length;\r\n }\r\n });\r\n return groupInterface;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function createGroupInterface(data, elements, propertyGroup, elem) {\r\n function groupInterface(name) {\r\n var effects = data.ef;\r\n var i = 0;\r\n var len = effects.length;\r\n\r\n while (i < len) {\r\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\r\n if (effects[i].ty === 5) {\r\n return effectElements[i];\r\n }\r\n\r\n return effectElements[i]();\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n throw new Error();\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\r\n\r\n var effectElements = [];\r\n var i;\r\n var len = data.ef.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (data.ef[i].ty === 5) {\r\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\r\n } else {\r\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\r\n }\r\n }\r\n\r\n if (data.mn === 'ADBE Color Control') {\r\n Object.defineProperty(groupInterface, 'color', {\r\n get: function get() {\r\n return effectElements[0]();\r\n }\r\n });\r\n }\r\n\r\n Object.defineProperties(groupInterface, {\r\n numProperties: {\r\n get: function get() {\r\n return data.np;\r\n }\r\n },\r\n _name: {\r\n value: data.nm\r\n },\r\n propertyGroup: {\r\n value: _propertyGroup\r\n }\r\n });\r\n groupInterface.enabled = data.en !== 0;\r\n groupInterface.active = groupInterface.enabled;\r\n return groupInterface;\r\n }\r\n\r\n function createValueInterface(element, type, elem, propertyGroup) {\r\n var expressionProperty = ExpressionPropertyInterface(element.p);\r\n\r\n function interfaceFunction() {\r\n if (type === 10) {\r\n return elem.comp.compInterface(element.p.v);\r\n }\r\n\r\n return expressionProperty();\r\n }\r\n\r\n if (element.p.setGroupProperty) {\r\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\r\n }\r\n\r\n return interfaceFunction;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var ShapePathInterface = function () {\r\n return function pathInterfaceFactory(shape, view, propertyGroup) {\r\n var prop = view.sh;\r\n\r\n function interfaceFunction(val) {\r\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\r\n return interfaceFunction.path;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n path: {\r\n get: function get() {\r\n if (prop.k) {\r\n prop.getValue();\r\n }\r\n\r\n return prop;\r\n }\r\n },\r\n shape: {\r\n get: function get() {\r\n if (prop.k) {\r\n prop.getValue();\r\n }\r\n\r\n return prop;\r\n }\r\n },\r\n _name: {\r\n value: shape.nm\r\n },\r\n ix: {\r\n value: shape.ix\r\n },\r\n propertyIndex: {\r\n value: shape.ix\r\n },\r\n mn: {\r\n value: shape.mn\r\n },\r\n propertyGroup: {\r\n value: propertyGroup\r\n }\r\n });\r\n return interfaceFunction;\r\n };\r\n }();\r\n\r\n var ShapeExpressionInterface = function () {\r\n function iterateElements(shapes, view, propertyGroup) {\r\n var arr = [];\r\n var i;\r\n var len = shapes ? shapes.length : 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (shapes[i].ty === 'gr') {\r\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'fl') {\r\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'st') {\r\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'tm') {\r\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\r\n } else if (shapes[i].ty === 'el') {\r\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'sr') {\r\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'sh') {\r\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rc') {\r\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rd') {\r\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rp') {\r\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'gf') {\r\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else {\r\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n }\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function contentsInterfaceFactory(shape, view, propertyGroup) {\r\n var interfaces;\r\n\r\n var interfaceFunction = function _interfaceFunction(value) {\r\n var i = 0;\r\n var len = interfaces.length;\r\n\r\n while (i < len) {\r\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\r\n return interfaces[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n return interfaces[value - 1];\r\n }\r\n\r\n return null;\r\n };\r\n\r\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\r\n interfaceFunction.numProperties = interfaces.length;\r\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\r\n interfaceFunction.transform = transformInterface;\r\n interfaceFunction.propertyIndex = shape.cix;\r\n interfaceFunction._name = shape.nm;\r\n return interfaceFunction;\r\n }\r\n\r\n function groupInterfaceFactory(shape, view, propertyGroup) {\r\n var interfaceFunction = function _interfaceFunction(value) {\r\n switch (value) {\r\n case 'ADBE Vectors Group':\r\n case 'Contents':\r\n case 2:\r\n return interfaceFunction.content;\r\n // Not necessary for now. Keeping them here in case a new case appears\r\n // case 'ADBE Vector Transform Group':\r\n // case 3:\r\n\r\n default:\r\n return interfaceFunction.transform;\r\n }\r\n };\r\n\r\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\r\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\r\n interfaceFunction.content = content;\r\n interfaceFunction.transform = transformInterface;\r\n Object.defineProperty(interfaceFunction, '_name', {\r\n get: function get() {\r\n return shape.nm;\r\n }\r\n }); // interfaceFunction.content = interfaceFunction;\r\n\r\n interfaceFunction.numProperties = shape.np;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n interfaceFunction.nm = shape.nm;\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function fillInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === 'Color' || val === 'color') {\r\n return interfaceFunction.color;\r\n }\r\n\r\n if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n color: {\r\n get: ExpressionPropertyInterface(view.c)\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o)\r\n },\r\n _name: {\r\n value: shape.nm\r\n },\r\n mn: {\r\n value: shape.mn\r\n }\r\n });\r\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\r\n return interfaceFunction;\r\n }\r\n\r\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === 'Start Point' || val === 'start point') {\r\n return interfaceFunction.startPoint;\r\n }\r\n\r\n if (val === 'End Point' || val === 'end point') {\r\n return interfaceFunction.endPoint;\r\n }\r\n\r\n if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n startPoint: {\r\n get: ExpressionPropertyInterface(view.s)\r\n },\r\n endPoint: {\r\n get: ExpressionPropertyInterface(view.e)\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o)\r\n },\r\n type: {\r\n get: function get() {\r\n return 'a';\r\n }\r\n },\r\n _name: {\r\n value: shape.nm\r\n },\r\n mn: {\r\n value: shape.mn\r\n }\r\n });\r\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\r\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\r\n return interfaceFunction;\r\n }\r\n\r\n function defaultInterfaceFactory() {\r\n function interfaceFunction() {\r\n return null;\r\n }\r\n\r\n return interfaceFunction;\r\n }\r\n\r\n function strokeInterfaceFactory(shape, view, propertyGroup) {\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\r\n\r\n function addPropertyToDashOb(i) {\r\n Object.defineProperty(dashOb, shape.d[i].nm, {\r\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\r\n });\r\n }\r\n\r\n var i;\r\n var len = shape.d ? shape.d.length : 0;\r\n var dashOb = {};\r\n\r\n for (i = 0; i < len; i += 1) {\r\n addPropertyToDashOb(i);\r\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\r\n }\r\n\r\n function interfaceFunction(val) {\r\n if (val === 'Color' || val === 'color') {\r\n return interfaceFunction.color;\r\n }\r\n\r\n if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n\r\n if (val === 'Stroke Width' || val === 'stroke width') {\r\n return interfaceFunction.strokeWidth;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n color: {\r\n get: ExpressionPropertyInterface(view.c)\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o)\r\n },\r\n strokeWidth: {\r\n get: ExpressionPropertyInterface(view.w)\r\n },\r\n dash: {\r\n get: function get() {\r\n return dashOb;\r\n }\r\n },\r\n _name: {\r\n value: shape.nm\r\n },\r\n mn: {\r\n value: shape.mn\r\n }\r\n });\r\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\r\n return interfaceFunction;\r\n }\r\n\r\n function trimInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === shape.e.ix || val === 'End' || val === 'end') {\r\n return interfaceFunction.end;\r\n }\r\n\r\n if (val === shape.s.ix) {\r\n return interfaceFunction.start;\r\n }\r\n\r\n if (val === shape.o.ix) {\r\n return interfaceFunction.offset;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n interfaceFunction.propertyIndex = shape.ix;\r\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\r\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\r\n interfaceFunction.propertyIndex = shape.ix;\r\n interfaceFunction.propertyGroup = propertyGroup;\r\n Object.defineProperties(interfaceFunction, {\r\n start: {\r\n get: ExpressionPropertyInterface(view.s)\r\n },\r\n end: {\r\n get: ExpressionPropertyInterface(view.e)\r\n },\r\n offset: {\r\n get: ExpressionPropertyInterface(view.o)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function transformInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.a.ix === value || value === 'Anchor Point') {\r\n return interfaceFunction.anchorPoint;\r\n }\r\n\r\n if (shape.o.ix === value || value === 'Opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n\r\n if (shape.p.ix === value || value === 'Position') {\r\n return interfaceFunction.position;\r\n }\r\n\r\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\r\n return interfaceFunction.rotation;\r\n }\r\n\r\n if (shape.s.ix === value || value === 'Scale') {\r\n return interfaceFunction.scale;\r\n }\r\n\r\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\r\n return interfaceFunction.skew;\r\n }\r\n\r\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\r\n return interfaceFunction.skewAxis;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\r\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\r\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n\r\n if (view.transform.mProps.sk) {\r\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\r\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\r\n }\r\n\r\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.o)\r\n },\r\n position: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.p)\r\n },\r\n anchorPoint: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.a)\r\n },\r\n scale: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.s)\r\n },\r\n rotation: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.r)\r\n },\r\n skew: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\r\n },\r\n skewAxis: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.ty = 'tr';\r\n interfaceFunction.mn = shape.mn;\r\n interfaceFunction.propertyGroup = propertyGroup;\r\n return interfaceFunction;\r\n }\r\n\r\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n\r\n if (shape.s.ix === value) {\r\n return interfaceFunction.size;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n interfaceFunction.propertyIndex = shape.ix;\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n size: {\r\n get: ExpressionPropertyInterface(prop.s)\r\n },\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function starInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n\r\n if (shape.r.ix === value) {\r\n return interfaceFunction.rotation;\r\n }\r\n\r\n if (shape.pt.ix === value) {\r\n return interfaceFunction.points;\r\n }\r\n\r\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\r\n return interfaceFunction.outerRadius;\r\n }\r\n\r\n if (shape.os.ix === value) {\r\n return interfaceFunction.outerRoundness;\r\n }\r\n\r\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\r\n return interfaceFunction.innerRadius;\r\n }\r\n\r\n if (shape.is && shape.is.ix === value) {\r\n return interfaceFunction.innerRoundness;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\r\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\r\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n\r\n if (shape.ir) {\r\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\r\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\r\n }\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p)\r\n },\r\n rotation: {\r\n get: ExpressionPropertyInterface(prop.r)\r\n },\r\n points: {\r\n get: ExpressionPropertyInterface(prop.pt)\r\n },\r\n outerRadius: {\r\n get: ExpressionPropertyInterface(prop.or)\r\n },\r\n outerRoundness: {\r\n get: ExpressionPropertyInterface(prop.os)\r\n },\r\n innerRadius: {\r\n get: ExpressionPropertyInterface(prop.ir)\r\n },\r\n innerRoundness: {\r\n get: ExpressionPropertyInterface(prop.is)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function rectInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n\r\n if (shape.r.ix === value) {\r\n return interfaceFunction.roundness;\r\n }\r\n\r\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\r\n return interfaceFunction.size;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\r\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p)\r\n },\r\n roundness: {\r\n get: ExpressionPropertyInterface(prop.r)\r\n },\r\n size: {\r\n get: ExpressionPropertyInterface(prop.s)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function roundedInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.r.ix === value || value === 'Round Corners 1') {\r\n return interfaceFunction.radius;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var prop = view;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n radius: {\r\n get: ExpressionPropertyInterface(prop.rd)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.c.ix === value || value === 'Copies') {\r\n return interfaceFunction.copies;\r\n }\r\n\r\n if (shape.o.ix === value || value === 'Offset') {\r\n return interfaceFunction.offset;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var prop = view;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\r\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n copies: {\r\n get: ExpressionPropertyInterface(prop.c)\r\n },\r\n offset: {\r\n get: ExpressionPropertyInterface(prop.o)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n return function (shapes, view, propertyGroup) {\r\n var interfaces;\r\n\r\n function _interfaceFunction(value) {\r\n if (typeof value === 'number') {\r\n value = value === undefined ? 1 : value;\r\n\r\n if (value === 0) {\r\n return propertyGroup;\r\n }\r\n\r\n return interfaces[value - 1];\r\n }\r\n\r\n var i = 0;\r\n var len = interfaces.length;\r\n\r\n while (i < len) {\r\n if (interfaces[i]._name === value) {\r\n return interfaces[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function parentGroupWrapper() {\r\n return propertyGroup;\r\n }\r\n\r\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\r\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\r\n _interfaceFunction.numProperties = interfaces.length;\r\n _interfaceFunction._name = 'Contents';\r\n return _interfaceFunction;\r\n };\r\n }();\r\n\r\n var TextExpressionInterface = function () {\r\n return function (elem) {\r\n var _prevValue;\r\n\r\n var _sourceText;\r\n\r\n function _thisLayerFunction(name) {\r\n switch (name) {\r\n case 'ADBE Text Document':\r\n return _thisLayerFunction.sourceText;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\r\n get: function get() {\r\n elem.textProperty.getValue();\r\n var stringValue = elem.textProperty.currentData.t;\r\n\r\n if (stringValue !== _prevValue) {\r\n _prevValue = elem.textProperty.currentData.t;\r\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\r\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\r\n\r\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\r\n\r\n Object.defineProperty(_sourceText, 'style', {\r\n get: function get() {\r\n return {\r\n fillColor: elem.textProperty.currentData.fc\r\n };\r\n }\r\n });\r\n }\r\n\r\n return _sourceText;\r\n }\r\n });\r\n return _thisLayerFunction;\r\n };\r\n }();\r\n\r\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\r\n\r\n var FootageInterface = function () {\r\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\r\n var currentPropertyName = '';\r\n var currentProperty = elem.getFootageData();\r\n\r\n function init() {\r\n currentPropertyName = '';\r\n currentProperty = elem.getFootageData();\r\n return searchProperty;\r\n }\r\n\r\n function searchProperty(value) {\r\n if (currentProperty[value]) {\r\n currentPropertyName = value;\r\n currentProperty = currentProperty[value];\r\n\r\n if (_typeof$2(currentProperty) === 'object') {\r\n return searchProperty;\r\n }\r\n\r\n return currentProperty;\r\n }\r\n\r\n var propertyNameIndex = value.indexOf(currentPropertyName);\r\n\r\n if (propertyNameIndex !== -1) {\r\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\r\n currentProperty = currentProperty[index];\r\n\r\n if (_typeof$2(currentProperty) === 'object') {\r\n return searchProperty;\r\n }\r\n\r\n return currentProperty;\r\n }\r\n\r\n return '';\r\n }\r\n\r\n return init;\r\n };\r\n\r\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\r\n function interfaceFunction(value) {\r\n if (value === 'Outline') {\r\n return interfaceFunction.outlineInterface();\r\n }\r\n\r\n return null;\r\n }\r\n\r\n interfaceFunction._name = 'Outline';\r\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\r\n return interfaceFunction;\r\n };\r\n\r\n return function (elem) {\r\n function _interfaceFunction(value) {\r\n if (value === 'Data') {\r\n return _interfaceFunction.dataInterface;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n _interfaceFunction._name = 'Data';\r\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\r\n return _interfaceFunction;\r\n };\r\n }();\r\n\r\n var interfaces = {\r\n layer: LayerExpressionInterface,\r\n effects: EffectsExpressionInterface,\r\n comp: CompExpressionInterface,\r\n shape: ShapeExpressionInterface,\r\n text: TextExpressionInterface,\r\n footage: FootageInterface\r\n };\r\n\r\n function getInterface(type) {\r\n return interfaces[type] || null;\r\n }\r\n\r\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\r\n\r\n /* eslint-disable */\r\n\r\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\r\n function seedRandom(pool, math) {\r\n //\r\n // The following constants are related to IEEE 754 limits.\r\n //\r\n var global = this,\r\n width = 256,\r\n // each RC4 output is 0 <= x < 256\r\n chunks = 6,\r\n // at least six RC4 outputs for each double\r\n digits = 52,\r\n // there are 52 significant digits in a double\r\n rngname = 'random',\r\n // rngname: name for Math.random and Math.seedrandom\r\n startdenom = math.pow(width, chunks),\r\n significance = math.pow(2, digits),\r\n overflow = significance * 2,\r\n mask = width - 1,\r\n nodecrypto; // node.js crypto module, initialized at the bottom.\r\n //\r\n // seedrandom()\r\n // This is the seedrandom function described above.\r\n //\r\n\r\n function seedrandom(seed, options, callback) {\r\n var key = [];\r\n options = options === true ? {\r\n entropy: true\r\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\r\n\r\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\r\n\r\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\r\n // randomness in every bit of the mantissa of the IEEE 754 value.\r\n\r\n var prng = function prng() {\r\n var n = arc4.g(chunks),\r\n // Start with a numerator n < 2 ^ 48\r\n d = startdenom,\r\n // and denominator d = 2 ^ 48.\r\n x = 0; // and no 'extra last byte'.\r\n\r\n while (n < significance) {\r\n // Fill up all significant digits by\r\n n = (n + x) * width; // shifting numerator and\r\n\r\n d *= width; // denominator and generating a\r\n\r\n x = arc4.g(1); // new least-significant-byte.\r\n }\r\n\r\n while (n >= overflow) {\r\n // To avoid rounding up, before adding\r\n n /= 2; // last byte, shift everything\r\n\r\n d /= 2; // right using integer math until\r\n\r\n x >>>= 1; // we have exactly the desired bits.\r\n }\r\n\r\n return (n + x) / d; // Form the number within [0, 1).\r\n };\r\n\r\n prng.int32 = function () {\r\n return arc4.g(4) | 0;\r\n };\r\n\r\n prng.quick = function () {\r\n return arc4.g(4) / 0x100000000;\r\n };\r\n\r\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\r\n\r\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\r\n\r\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\r\n if (state) {\r\n // Load the arc4 state from the given state if it has an S array.\r\n if (state.S) {\r\n copy(state, arc4);\r\n } // Only provide the .state method if requested via options.state.\r\n\r\n\r\n prng.state = function () {\r\n return copy(arc4, {});\r\n };\r\n } // If called as a method of Math (Math.seedrandom()), mutate\r\n // Math.random because that is how seedrandom.js has worked since v1.0.\r\n\r\n\r\n if (is_math_call) {\r\n math[rngname] = prng;\r\n return seed;\r\n } // Otherwise, it is a newer calling convention, so return the\r\n // prng directly.\r\n else return prng;\r\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\r\n }\r\n\r\n math['seed' + rngname] = seedrandom; //\r\n // ARC4\r\n //\r\n // An ARC4 implementation. The constructor takes a key in the form of\r\n // an array of at most (width) integers that should be 0 <= x < (width).\r\n //\r\n // The g(count) method returns a pseudorandom integer that concatenates\r\n // the next (count) outputs from ARC4. Its return value is a number x\r\n // that is in the range 0 <= x < (width ^ count).\r\n //\r\n\r\n function ARC4(key) {\r\n var t,\r\n keylen = key.length,\r\n me = this,\r\n i = 0,\r\n j = me.i = me.j = 0,\r\n s = me.S = []; // The empty key [] is treated as [0].\r\n\r\n if (!keylen) {\r\n key = [keylen++];\r\n } // Set up S using the standard key scheduling algorithm.\r\n\r\n\r\n while (i < width) {\r\n s[i] = i++;\r\n }\r\n\r\n for (i = 0; i < width; i++) {\r\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\r\n s[j] = t;\r\n } // The \"g\" method returns the next (count) outputs as one number.\r\n\r\n\r\n me.g = function (count) {\r\n // Using instance members instead of closure state nearly doubles speed.\r\n var t,\r\n r = 0,\r\n i = me.i,\r\n j = me.j,\r\n s = me.S;\r\n\r\n while (count--) {\r\n t = s[i = mask & i + 1];\r\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\r\n }\r\n\r\n me.i = i;\r\n me.j = j;\r\n return r; // For robust unpredictability, the function call below automatically\r\n // discards an initial batch of values. This is called RC4-drop[256].\r\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\r\n };\r\n } //\r\n // copy()\r\n // Copies internal state of ARC4 to or from a plain object.\r\n //\r\n\r\n\r\n function copy(f, t) {\r\n t.i = f.i;\r\n t.j = f.j;\r\n t.S = f.S.slice();\r\n return t;\r\n } //\r\n // flatten()\r\n // Converts an object tree to nested arrays of strings.\r\n //\r\n\r\n\r\n function flatten(obj, depth) {\r\n var result = [],\r\n typ = _typeof$1(obj),\r\n prop;\r\n\r\n if (depth && typ == 'object') {\r\n for (prop in obj) {\r\n try {\r\n result.push(flatten(obj[prop], depth - 1));\r\n } catch (e) {}\r\n }\r\n }\r\n\r\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\r\n } //\r\n // mixkey()\r\n // Mixes a string seed into a key that is an array of integers, and\r\n // returns a shortened string seed that is equivalent to the result key.\r\n //\r\n\r\n\r\n function mixkey(seed, key) {\r\n var stringseed = seed + '',\r\n smear,\r\n j = 0;\r\n\r\n while (j < stringseed.length) {\r\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\r\n }\r\n\r\n return tostring(key);\r\n } //\r\n // autoseed()\r\n // Returns an object for autoseeding, using window.crypto and Node crypto\r\n // module if available.\r\n //\r\n\r\n\r\n function autoseed() {\r\n try {\r\n if (nodecrypto) {\r\n return tostring(nodecrypto.randomBytes(width));\r\n }\r\n\r\n var out = new Uint8Array(width);\r\n (global.crypto || global.msCrypto).getRandomValues(out);\r\n return tostring(out);\r\n } catch (e) {\r\n var browser = global.navigator,\r\n plugins = browser && browser.plugins;\r\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\r\n }\r\n } //\r\n // tostring()\r\n // Converts an array of charcodes to a string\r\n //\r\n\r\n\r\n function tostring(a) {\r\n return String.fromCharCode.apply(0, a);\r\n } //\r\n // When seedrandom.js is loaded, we immediately mix a few bits\r\n // from the built-in RNG into the entropy pool. Because we do\r\n // not want to interfere with deterministic PRNG state later,\r\n // seedrandom will not call math.random on its own again after\r\n // initialization.\r\n //\r\n\r\n\r\n mixkey(math.random(), pool); //\r\n // Nodejs and AMD support: export the implementation as a module using\r\n // either convention.\r\n //\r\n // End anonymous scope, and pass initial values.\r\n }\r\n\r\n ;\r\n\r\n function initialize$2(BMMath) {\r\n seedRandom([], BMMath);\r\n }\r\n\r\n var propTypes = {\r\n SHAPE: 'shape'\r\n };\r\n\r\n function _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); }\r\n\r\n var ExpressionManager = function () {\r\n 'use strict';\r\n\r\n var ob = {};\r\n var Math = BMMath;\r\n var window = null;\r\n var document = null;\r\n var XMLHttpRequest = null;\r\n var fetch = null;\r\n var frames = null;\r\n initialize$2(BMMath);\r\n\r\n function $bm_isInstanceOfArray(arr) {\r\n return arr.constructor === Array || arr.constructor === Float32Array;\r\n }\r\n\r\n function isNumerable(tOfV, v) {\r\n return tOfV === 'number' || tOfV === 'boolean' || tOfV === 'string' || v instanceof Number;\r\n }\r\n\r\n function $bm_neg(a) {\r\n var tOfA = _typeof(a);\r\n\r\n if (tOfA === 'number' || tOfA === 'boolean' || a instanceof Number) {\r\n return -a;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a)) {\r\n var i;\r\n var lenA = a.length;\r\n var retArr = [];\r\n\r\n for (i = 0; i < lenA; i += 1) {\r\n retArr[i] = -a[i];\r\n }\r\n\r\n return retArr;\r\n }\r\n\r\n if (a.propType) {\r\n return a.v;\r\n }\r\n\r\n return -a;\r\n }\r\n\r\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\r\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\r\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\r\n\r\n function sum(a, b) {\r\n var tOfA = _typeof(a);\r\n\r\n var tOfB = _typeof(b);\r\n\r\n if (tOfA === 'string' || tOfB === 'string') {\r\n return a + b;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a + b;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n a = a.slice(0);\r\n a[0] += b;\r\n return a;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n b = b.slice(0);\r\n b[0] = a + b[0];\r\n return b;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\r\n var i = 0;\r\n var lenA = a.length;\r\n var lenB = b.length;\r\n var retArr = [];\r\n\r\n while (i < lenA || i < lenB) {\r\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\r\n retArr[i] = a[i] + b[i];\r\n } else {\r\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return retArr;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n var add = sum;\r\n\r\n function sub(a, b) {\r\n var tOfA = _typeof(a);\r\n\r\n var tOfB = _typeof(b);\r\n\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n if (tOfA === 'string') {\r\n a = parseInt(a, 10);\r\n }\r\n\r\n if (tOfB === 'string') {\r\n b = parseInt(b, 10);\r\n }\r\n\r\n return a - b;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n a = a.slice(0);\r\n a[0] -= b;\r\n return a;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n b = b.slice(0);\r\n b[0] = a - b[0];\r\n return b;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\r\n var i = 0;\r\n var lenA = a.length;\r\n var lenB = b.length;\r\n var retArr = [];\r\n\r\n while (i < lenA || i < lenB) {\r\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\r\n retArr[i] = a[i] - b[i];\r\n } else {\r\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return retArr;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n function mul(a, b) {\r\n var tOfA = _typeof(a);\r\n\r\n var tOfB = _typeof(b);\r\n\r\n var arr;\r\n\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a * b;\r\n }\r\n\r\n var i;\r\n var len;\r\n\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n len = a.length;\r\n arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a[i] * b;\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n len = b.length;\r\n arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a * b[i];\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n function div(a, b) {\r\n var tOfA = _typeof(a);\r\n\r\n var tOfB = _typeof(b);\r\n\r\n var arr;\r\n\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a / b;\r\n }\r\n\r\n var i;\r\n var len;\r\n\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n len = a.length;\r\n arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a[i] / b;\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n len = b.length;\r\n arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a / b[i];\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n function mod(a, b) {\r\n if (typeof a === 'string') {\r\n a = parseInt(a, 10);\r\n }\r\n\r\n if (typeof b === 'string') {\r\n b = parseInt(b, 10);\r\n }\r\n\r\n return a % b;\r\n }\r\n\r\n var $bm_sum = sum;\r\n var $bm_sub = sub;\r\n var $bm_mul = mul;\r\n var $bm_div = div;\r\n var $bm_mod = mod;\r\n\r\n function clamp(num, min, max) {\r\n if (min > max) {\r\n var mm = max;\r\n max = min;\r\n min = mm;\r\n }\r\n\r\n return Math.min(Math.max(num, min), max);\r\n }\r\n\r\n function radiansToDegrees(val) {\r\n return val / degToRads;\r\n }\r\n\r\n var radians_to_degrees = radiansToDegrees;\r\n\r\n function degreesToRadians(val) {\r\n return val * degToRads;\r\n }\r\n\r\n var degrees_to_radians = radiansToDegrees;\r\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\r\n\r\n function length(arr1, arr2) {\r\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\r\n arr2 = arr2 || 0;\r\n return Math.abs(arr1 - arr2);\r\n }\r\n\r\n if (!arr2) {\r\n arr2 = helperLengthArray;\r\n }\r\n\r\n var i;\r\n var len = Math.min(arr1.length, arr2.length);\r\n var addedLength = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\r\n }\r\n\r\n return Math.sqrt(addedLength);\r\n }\r\n\r\n function normalize(vec) {\r\n return div(vec, length(vec));\r\n }\r\n\r\n function rgbToHsl(val) {\r\n var r = val[0];\r\n var g = val[1];\r\n var b = val[2];\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var h;\r\n var s;\r\n var l = (max + min) / 2;\r\n\r\n if (max === min) {\r\n h = 0; // achromatic\r\n\r\n s = 0; // achromatic\r\n } else {\r\n var d = max - min;\r\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\r\n\r\n switch (max) {\r\n case r:\r\n h = (g - b) / d + (g < b ? 6 : 0);\r\n break;\r\n\r\n case g:\r\n h = (b - r) / d + 2;\r\n break;\r\n\r\n case b:\r\n h = (r - g) / d + 4;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n h /= 6;\r\n }\r\n\r\n return [h, s, l, val[3]];\r\n }\r\n\r\n function hue2rgb(p, q, t) {\r\n if (t < 0) t += 1;\r\n if (t > 1) t -= 1;\r\n if (t < 1 / 6) return p + (q - p) * 6 * t;\r\n if (t < 1 / 2) return q;\r\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\r\n return p;\r\n }\r\n\r\n function hslToRgb(val) {\r\n var h = val[0];\r\n var s = val[1];\r\n var l = val[2];\r\n var r;\r\n var g;\r\n var b;\r\n\r\n if (s === 0) {\r\n r = l; // achromatic\r\n\r\n b = l; // achromatic\r\n\r\n g = l; // achromatic\r\n } else {\r\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\r\n var p = 2 * l - q;\r\n r = hue2rgb(p, q, h + 1 / 3);\r\n g = hue2rgb(p, q, h);\r\n b = hue2rgb(p, q, h - 1 / 3);\r\n }\r\n\r\n return [r, g, b, val[3]];\r\n }\r\n\r\n function linear(t, tMin, tMax, value1, value2) {\r\n if (value1 === undefined || value2 === undefined) {\r\n value1 = tMin;\r\n value2 = tMax;\r\n tMin = 0;\r\n tMax = 1;\r\n }\r\n\r\n if (tMax < tMin) {\r\n var _tMin = tMax;\r\n tMax = tMin;\r\n tMin = _tMin;\r\n }\r\n\r\n if (t <= tMin) {\r\n return value1;\r\n }\r\n\r\n if (t >= tMax) {\r\n return value2;\r\n }\r\n\r\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\r\n\r\n if (!value1.length) {\r\n return value1 + (value2 - value1) * perc;\r\n }\r\n\r\n var i;\r\n var len = value1.length;\r\n var arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function random(min, max) {\r\n if (max === undefined) {\r\n if (min === undefined) {\r\n min = 0;\r\n max = 1;\r\n } else {\r\n max = min;\r\n min = undefined;\r\n }\r\n }\r\n\r\n if (max.length) {\r\n var i;\r\n var len = max.length;\r\n\r\n if (!min) {\r\n min = createTypedArray('float32', len);\r\n }\r\n\r\n var arr = createTypedArray('float32', len);\r\n var rnd = BMMath.random();\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = min[i] + rnd * (max[i] - min[i]);\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n if (min === undefined) {\r\n min = 0;\r\n }\r\n\r\n var rndm = BMMath.random();\r\n return min + rndm * (max - min);\r\n }\r\n\r\n function createPath(points, inTangents, outTangents, closed) {\r\n var i;\r\n var len = points.length;\r\n var path = shapePool.newElement();\r\n path.setPathData(!!closed, len);\r\n var arrPlaceholder = [0, 0];\r\n var inVertexPoint;\r\n var outVertexPoint;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\r\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\r\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\r\n }\r\n\r\n return path;\r\n }\r\n\r\n function initiateExpression(elem, data, property) {\r\n // Bail out if we don't want expressions\r\n function noOp(_value) {\r\n return _value;\r\n }\r\n\r\n if (!elem.globalData.renderConfig.runExpressions) {\r\n return noOp;\r\n }\r\n\r\n var val = data.x;\r\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\r\n\r\n var _needsRandom = val.indexOf('random') !== -1;\r\n\r\n var elemType = elem.data.ty;\r\n var transform;\r\n var $bm_transform;\r\n var content;\r\n var effect;\r\n var thisProperty = property;\r\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\r\n Object.defineProperty(thisProperty, 'value', {\r\n get: function get() {\r\n return thisProperty.v;\r\n }\r\n });\r\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\r\n elem.comp.displayStartTime = 0;\r\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\r\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\r\n var width = elem.data.sw ? elem.data.sw : 0;\r\n var height = elem.data.sh ? elem.data.sh : 0;\r\n var name = elem.data.nm;\r\n var loopIn;\r\n var loop_in;\r\n var loopOut;\r\n var loop_out;\r\n var smooth;\r\n var toWorld;\r\n var fromWorld;\r\n var fromComp;\r\n var toComp;\r\n var fromCompToSurface;\r\n var position;\r\n var rotation;\r\n var anchorPoint;\r\n var scale;\r\n var thisLayer;\r\n var thisComp;\r\n var mask;\r\n var valueAtTime;\r\n var velocityAtTime;\r\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\r\n\r\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\r\n\r\n var numKeys = property.kf ? data.k.length : 0;\r\n var active = !this.data || this.data.hd !== true;\r\n\r\n var wiggle = function wiggle(freq, amp) {\r\n var iWiggle;\r\n var j;\r\n var lenWiggle = this.pv.length ? this.pv.length : 1;\r\n var addedAmps = createTypedArray('float32', lenWiggle);\r\n freq = 5;\r\n var iterations = Math.floor(time * freq);\r\n iWiggle = 0;\r\n j = 0;\r\n\r\n while (iWiggle < iterations) {\r\n // var rnd = BMMath.random();\r\n for (j = 0; j < lenWiggle; j += 1) {\r\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\r\n }\r\n\r\n iWiggle += 1;\r\n } // var rnd2 = BMMath.random();\r\n\r\n\r\n var periods = time * freq;\r\n var perc = periods - Math.floor(periods);\r\n var arr = createTypedArray('float32', lenWiggle);\r\n\r\n if (lenWiggle > 1) {\r\n for (j = 0; j < lenWiggle; j += 1) {\r\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\r\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\r\n }.bind(this);\r\n\r\n if (thisProperty.loopIn) {\r\n loopIn = thisProperty.loopIn.bind(thisProperty);\r\n loop_in = loopIn;\r\n }\r\n\r\n if (thisProperty.loopOut) {\r\n loopOut = thisProperty.loopOut.bind(thisProperty);\r\n loop_out = loopOut;\r\n }\r\n\r\n if (thisProperty.smooth) {\r\n smooth = thisProperty.smooth.bind(thisProperty);\r\n }\r\n\r\n function loopInDuration(type, duration) {\r\n return loopIn(type, duration, true);\r\n }\r\n\r\n function loopOutDuration(type, duration) {\r\n return loopOut(type, duration, true);\r\n }\r\n\r\n if (this.getValueAtTime) {\r\n valueAtTime = this.getValueAtTime.bind(this);\r\n }\r\n\r\n if (this.getVelocityAtTime) {\r\n velocityAtTime = this.getVelocityAtTime.bind(this);\r\n }\r\n\r\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\r\n\r\n function lookAt(elem1, elem2) {\r\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\r\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\r\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\r\n return [yaw, pitch, 0];\r\n }\r\n\r\n function easeOut(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function easeIn(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function ease(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function applyEase(fn, t, tMin, tMax, val1, val2) {\r\n if (val1 === undefined) {\r\n val1 = tMin;\r\n val2 = tMax;\r\n } else {\r\n t = (t - tMin) / (tMax - tMin);\r\n }\r\n\r\n if (t > 1) {\r\n t = 1;\r\n } else if (t < 0) {\r\n t = 0;\r\n }\r\n\r\n var mult = fn(t);\r\n\r\n if ($bm_isInstanceOfArray(val1)) {\r\n var iKey;\r\n var lenKey = val1.length;\r\n var arr = createTypedArray('float32', lenKey);\r\n\r\n for (iKey = 0; iKey < lenKey; iKey += 1) {\r\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n return (val2 - val1) * mult + val1;\r\n }\r\n\r\n function nearestKey(time) {\r\n var iKey;\r\n var lenKey = data.k.length;\r\n var index;\r\n var keyTime;\r\n\r\n if (!data.k.length || typeof data.k[0] === 'number') {\r\n index = 0;\r\n keyTime = 0;\r\n } else {\r\n index = -1;\r\n time *= elem.comp.globalData.frameRate;\r\n\r\n if (time < data.k[0].t) {\r\n index = 1;\r\n keyTime = data.k[0].t;\r\n } else {\r\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\r\n if (time === data.k[iKey].t) {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n break;\r\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\r\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\r\n index = iKey + 2;\r\n keyTime = data.k[iKey + 1].t;\r\n } else {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n }\r\n\r\n break;\r\n }\r\n }\r\n\r\n if (index === -1) {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n }\r\n }\r\n }\r\n\r\n var obKey = {};\r\n obKey.index = index;\r\n obKey.time = keyTime / elem.comp.globalData.frameRate;\r\n return obKey;\r\n }\r\n\r\n function key(ind) {\r\n var obKey;\r\n var iKey;\r\n var lenKey;\r\n\r\n if (!data.k.length || typeof data.k[0] === 'number') {\r\n throw new Error('The property has no keyframe at index ' + ind);\r\n }\r\n\r\n ind -= 1;\r\n obKey = {\r\n time: data.k[ind].t / elem.comp.globalData.frameRate,\r\n value: []\r\n };\r\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\r\n lenKey = arr.length;\r\n\r\n for (iKey = 0; iKey < lenKey; iKey += 1) {\r\n obKey[iKey] = arr[iKey];\r\n obKey.value[iKey] = arr[iKey];\r\n }\r\n\r\n return obKey;\r\n }\r\n\r\n function framesToTime(fr, fps) {\r\n if (!fps) {\r\n fps = elem.comp.globalData.frameRate;\r\n }\r\n\r\n return fr / fps;\r\n }\r\n\r\n function timeToFrames(t, fps) {\r\n if (!t && t !== 0) {\r\n t = time;\r\n }\r\n\r\n if (!fps) {\r\n fps = elem.comp.globalData.frameRate;\r\n }\r\n\r\n return t * fps;\r\n }\r\n\r\n function seedRandom(seed) {\r\n BMMath.seedrandom(randSeed + seed);\r\n }\r\n\r\n function sourceRectAtTime() {\r\n return elem.sourceRectAtTime();\r\n }\r\n\r\n function substring(init, end) {\r\n if (typeof value === 'string') {\r\n if (end === undefined) {\r\n return value.substring(init);\r\n }\r\n\r\n return value.substring(init, end);\r\n }\r\n\r\n return '';\r\n }\r\n\r\n function substr(init, end) {\r\n if (typeof value === 'string') {\r\n if (end === undefined) {\r\n return value.substr(init);\r\n }\r\n\r\n return value.substr(init, end);\r\n }\r\n\r\n return '';\r\n }\r\n\r\n function posterizeTime(framesPerSecond) {\r\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\r\n value = valueAtTime(time);\r\n }\r\n\r\n var time;\r\n var velocity;\r\n var value;\r\n var text;\r\n var textIndex;\r\n var textTotal;\r\n var selectorValue;\r\n var index = elem.data.ind;\r\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\r\n var parent;\r\n var randSeed = Math.floor(Math.random() * 1000000);\r\n var globalData = elem.globalData;\r\n\r\n function executeExpression(_value) {\r\n // globalData.pushExpression();\r\n value = _value;\r\n\r\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\r\n return value;\r\n }\r\n\r\n if (this.propType === 'textSelector') {\r\n textIndex = this.textIndex;\r\n textTotal = this.textTotal;\r\n selectorValue = this.selectorValue;\r\n }\r\n\r\n if (!thisLayer) {\r\n text = elem.layerInterface.text;\r\n thisLayer = elem.layerInterface;\r\n thisComp = elem.comp.compInterface;\r\n toWorld = thisLayer.toWorld.bind(thisLayer);\r\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\r\n fromComp = thisLayer.fromComp.bind(thisLayer);\r\n toComp = thisLayer.toComp.bind(thisLayer);\r\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\r\n fromCompToSurface = fromComp;\r\n }\r\n\r\n if (!transform) {\r\n transform = elem.layerInterface('ADBE Transform Group');\r\n $bm_transform = transform;\r\n\r\n if (transform) {\r\n anchorPoint = transform.anchorPoint;\r\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\r\n }\r\n }\r\n\r\n if (elemType === 4 && !content) {\r\n content = thisLayer('ADBE Root Vectors Group');\r\n }\r\n\r\n if (!effect) {\r\n effect = thisLayer(4);\r\n }\r\n\r\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\r\n\r\n if (hasParent && !parent) {\r\n parent = elem.hierarchy[0].layerInterface;\r\n }\r\n\r\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\r\n\r\n if (_needsRandom) {\r\n seedRandom(randSeed + time);\r\n }\r\n\r\n if (needsVelocity) {\r\n velocity = velocityAtTime(time);\r\n }\r\n\r\n expression_function();\r\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\r\n // Changed this to a ternary operation because Rollup failed compiling it correctly\r\n\r\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\r\n return scoped_bm_rt;\r\n } // Bundlers will see these as dead code and unless we reference them\r\n\r\n\r\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\r\n return executeExpression;\r\n }\r\n\r\n ob.initiateExpression = initiateExpression;\r\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath];\r\n return ob;\r\n }();\r\n\r\n var expressionHelpers = function () {\r\n function searchExpressions(elem, data, prop) {\r\n if (data.x) {\r\n prop.k = true;\r\n prop.x = true;\r\n prop.initiateExpression = ExpressionManager.initiateExpression;\r\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\r\n }\r\n }\r\n\r\n function getValueAtTime(frameNum) {\r\n frameNum *= this.elem.globalData.frameRate;\r\n frameNum -= this.offsetTime;\r\n\r\n if (frameNum !== this._cachingAtTime.lastFrame) {\r\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\r\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\r\n this._cachingAtTime.lastFrame = frameNum;\r\n }\r\n\r\n return this._cachingAtTime.value;\r\n }\r\n\r\n function getSpeedAtTime(frameNum) {\r\n var delta = -0.01;\r\n var v1 = this.getValueAtTime(frameNum);\r\n var v2 = this.getValueAtTime(frameNum + delta);\r\n var speed = 0;\r\n\r\n if (v1.length) {\r\n var i;\r\n\r\n for (i = 0; i < v1.length; i += 1) {\r\n speed += Math.pow(v2[i] - v1[i], 2);\r\n }\r\n\r\n speed = Math.sqrt(speed) * 100;\r\n } else {\r\n speed = 0;\r\n }\r\n\r\n return speed;\r\n }\r\n\r\n function getVelocityAtTime(frameNum) {\r\n if (this.vel !== undefined) {\r\n return this.vel;\r\n }\r\n\r\n var delta = -0.001; // frameNum += this.elem.data.st;\r\n\r\n var v1 = this.getValueAtTime(frameNum);\r\n var v2 = this.getValueAtTime(frameNum + delta);\r\n var velocity;\r\n\r\n if (v1.length) {\r\n velocity = createTypedArray('float32', v1.length);\r\n var i;\r\n\r\n for (i = 0; i < v1.length; i += 1) {\r\n // removing frameRate\r\n // if needed, don't add it here\r\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\r\n velocity[i] = (v2[i] - v1[i]) / delta;\r\n }\r\n } else {\r\n velocity = (v2 - v1) / delta;\r\n }\r\n\r\n return velocity;\r\n }\r\n\r\n function getStaticValueAtTime() {\r\n return this.pv;\r\n }\r\n\r\n function setGroupProperty(propertyGroup) {\r\n this.propertyGroup = propertyGroup;\r\n }\r\n\r\n return {\r\n searchExpressions: searchExpressions,\r\n getSpeedAtTime: getSpeedAtTime,\r\n getVelocityAtTime: getVelocityAtTime,\r\n getValueAtTime: getValueAtTime,\r\n getStaticValueAtTime: getStaticValueAtTime,\r\n setGroupProperty: setGroupProperty\r\n };\r\n }();\r\n\r\n function addPropertyDecorator() {\r\n function loopOut(type, duration, durationFlag) {\r\n if (!this.k || !this.keyframes) {\r\n return this.pv;\r\n }\r\n\r\n type = type ? type.toLowerCase() : '';\r\n var currentFrame = this.comp.renderedFrame;\r\n var keyframes = this.keyframes;\r\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\r\n\r\n if (currentFrame <= lastKeyFrame) {\r\n return this.pv;\r\n }\r\n\r\n var cycleDuration;\r\n var firstKeyFrame;\r\n\r\n if (!durationFlag) {\r\n if (!duration || duration > keyframes.length - 1) {\r\n duration = keyframes.length - 1;\r\n }\r\n\r\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\r\n cycleDuration = lastKeyFrame - firstKeyFrame;\r\n } else {\r\n if (!duration) {\r\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\r\n } else {\r\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\r\n }\r\n\r\n firstKeyFrame = lastKeyFrame - cycleDuration;\r\n }\r\n\r\n var i;\r\n var len;\r\n var ret;\r\n\r\n if (type === 'pingpong') {\r\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\r\n\r\n if (iterations % 2 !== 0) {\r\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n } else if (type === 'offset') {\r\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n\r\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\r\n\r\n if (this.pv.length) {\r\n ret = new Array(initV.length);\r\n len = ret.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n return (endV - initV) * repeats + current;\r\n } else if (type === 'continue') {\r\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\r\n\r\n if (this.pv.length) {\r\n ret = new Array(lastValue.length);\r\n len = ret.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\r\n }\r\n\r\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n\r\n function loopIn(type, duration, durationFlag) {\r\n if (!this.k) {\r\n return this.pv;\r\n }\r\n\r\n type = type ? type.toLowerCase() : '';\r\n var currentFrame = this.comp.renderedFrame;\r\n var keyframes = this.keyframes;\r\n var firstKeyFrame = keyframes[0].t;\r\n\r\n if (currentFrame >= firstKeyFrame) {\r\n return this.pv;\r\n }\r\n\r\n var cycleDuration;\r\n var lastKeyFrame;\r\n\r\n if (!durationFlag) {\r\n if (!duration || duration > keyframes.length - 1) {\r\n duration = keyframes.length - 1;\r\n }\r\n\r\n lastKeyFrame = keyframes[duration].t;\r\n cycleDuration = lastKeyFrame - firstKeyFrame;\r\n } else {\r\n if (!duration) {\r\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\r\n } else {\r\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\r\n }\r\n\r\n lastKeyFrame = firstKeyFrame + cycleDuration;\r\n }\r\n\r\n var i;\r\n var len;\r\n var ret;\r\n\r\n if (type === 'pingpong') {\r\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\r\n\r\n if (iterations % 2 === 0) {\r\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n } else if (type === 'offset') {\r\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\r\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\r\n\r\n if (this.pv.length) {\r\n ret = new Array(initV.length);\r\n len = ret.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n return current - (endV - initV) * repeats;\r\n } else if (type === 'continue') {\r\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\r\n\r\n if (this.pv.length) {\r\n ret = new Array(firstValue.length);\r\n len = ret.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\r\n }\r\n\r\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n\r\n function smooth(width, samples) {\r\n if (!this.k) {\r\n return this.pv;\r\n }\r\n\r\n width = (width || 0.4) * 0.5;\r\n samples = Math.floor(samples || 5);\r\n\r\n if (samples <= 1) {\r\n return this.pv;\r\n }\r\n\r\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\r\n var initFrame = currentTime - width;\r\n var endFrame = currentTime + width;\r\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\r\n var i = 0;\r\n var j = 0;\r\n var value;\r\n\r\n if (this.pv.length) {\r\n value = createTypedArray('float32', this.pv.length);\r\n } else {\r\n value = 0;\r\n }\r\n\r\n var sampleValue;\r\n\r\n while (i < samples) {\r\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\r\n\r\n if (this.pv.length) {\r\n for (j = 0; j < this.pv.length; j += 1) {\r\n value[j] += sampleValue[j];\r\n }\r\n } else {\r\n value += sampleValue;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (this.pv.length) {\r\n for (j = 0; j < this.pv.length; j += 1) {\r\n value[j] /= samples;\r\n }\r\n } else {\r\n value /= samples;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n function getTransformValueAtTime(time) {\r\n if (!this._transformCachingAtTime) {\r\n this._transformCachingAtTime = {\r\n v: new Matrix()\r\n };\r\n } /// /\r\n\r\n\r\n var matrix = this._transformCachingAtTime.v;\r\n matrix.cloneFromProps(this.pre.props);\r\n\r\n if (this.appliedTransformations < 1) {\r\n var anchor = this.a.getValueAtTime(time);\r\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\r\n }\r\n\r\n if (this.appliedTransformations < 2) {\r\n var scale = this.s.getValueAtTime(time);\r\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\r\n }\r\n\r\n if (this.sk && this.appliedTransformations < 3) {\r\n var skew = this.sk.getValueAtTime(time);\r\n var skewAxis = this.sa.getValueAtTime(time);\r\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\r\n }\r\n\r\n if (this.r && this.appliedTransformations < 4) {\r\n var rotation = this.r.getValueAtTime(time);\r\n matrix.rotate(-rotation * this.r.mult);\r\n } else if (!this.r && this.appliedTransformations < 4) {\r\n var rotationZ = this.rz.getValueAtTime(time);\r\n var rotationY = this.ry.getValueAtTime(time);\r\n var rotationX = this.rx.getValueAtTime(time);\r\n var orientation = this.or.getValueAtTime(time);\r\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\r\n }\r\n\r\n if (this.data.p && this.data.p.s) {\r\n var positionX = this.px.getValueAtTime(time);\r\n var positionY = this.py.getValueAtTime(time);\r\n\r\n if (this.data.p.z) {\r\n var positionZ = this.pz.getValueAtTime(time);\r\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\r\n } else {\r\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\r\n }\r\n } else {\r\n var position = this.p.getValueAtTime(time);\r\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\r\n }\r\n\r\n return matrix; /// /\r\n }\r\n\r\n function getTransformStaticValueAtTime() {\r\n return this.v.clone(new Matrix());\r\n }\r\n\r\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\r\n\r\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\r\n var prop = getTransformProperty(elem, data, container);\r\n\r\n if (prop.dynamicProperties.length) {\r\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\r\n } else {\r\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\r\n }\r\n\r\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\r\n return prop;\r\n };\r\n\r\n var propertyGetProp = PropertyFactory.getProp;\r\n\r\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\r\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\r\n // prop.loopOut = loopOut;\r\n // prop.loopIn = loopIn;\r\n\r\n if (prop.kf) {\r\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\r\n } else {\r\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\r\n }\r\n\r\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\r\n prop.loopOut = loopOut;\r\n prop.loopIn = loopIn;\r\n prop.smooth = smooth;\r\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\r\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\r\n prop.numKeys = data.a === 1 ? data.k.length : 0;\r\n prop.propertyIndex = data.ix;\r\n var value = 0;\r\n\r\n if (type !== 0) {\r\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\r\n }\r\n\r\n prop._cachingAtTime = {\r\n lastFrame: initialDefaultFrame,\r\n lastIndex: 0,\r\n value: value\r\n };\r\n expressionHelpers.searchExpressions(elem, data, prop);\r\n\r\n if (prop.k) {\r\n container.addDynamicProperty(prop);\r\n }\r\n\r\n return prop;\r\n };\r\n\r\n function getShapeValueAtTime(frameNum) {\r\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\r\n if (!this._cachingAtTime) {\r\n this._cachingAtTime = {\r\n shapeValue: shapePool.clone(this.pv),\r\n lastIndex: 0,\r\n lastTime: initialDefaultFrame\r\n };\r\n }\r\n\r\n frameNum *= this.elem.globalData.frameRate;\r\n frameNum -= this.offsetTime;\r\n\r\n if (frameNum !== this._cachingAtTime.lastTime) {\r\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\r\n this._cachingAtTime.lastTime = frameNum;\r\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\r\n }\r\n\r\n return this._cachingAtTime.shapeValue;\r\n }\r\n\r\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\r\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\r\n\r\n function ShapeExpressions() {}\r\n\r\n ShapeExpressions.prototype = {\r\n vertices: function vertices(prop, time) {\r\n if (this.k) {\r\n this.getValue();\r\n }\r\n\r\n var shapePath = this.v;\r\n\r\n if (time !== undefined) {\r\n shapePath = this.getValueAtTime(time, 0);\r\n }\r\n\r\n var i;\r\n var len = shapePath._length;\r\n var vertices = shapePath[prop];\r\n var points = shapePath.v;\r\n var arr = createSizedArray(len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (prop === 'i' || prop === 'o') {\r\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\r\n } else {\r\n arr[i] = [vertices[i][0], vertices[i][1]];\r\n }\r\n }\r\n\r\n return arr;\r\n },\r\n points: function points(time) {\r\n return this.vertices('v', time);\r\n },\r\n inTangents: function inTangents(time) {\r\n return this.vertices('i', time);\r\n },\r\n outTangents: function outTangents(time) {\r\n return this.vertices('o', time);\r\n },\r\n isClosed: function isClosed() {\r\n return this.v.c;\r\n },\r\n pointOnPath: function pointOnPath(perc, time) {\r\n var shapePath = this.v;\r\n\r\n if (time !== undefined) {\r\n shapePath = this.getValueAtTime(time, 0);\r\n }\r\n\r\n if (!this._segmentsLength) {\r\n this._segmentsLength = bez.getSegmentsLength(shapePath);\r\n }\r\n\r\n var segmentsLength = this._segmentsLength;\r\n var lengths = segmentsLength.lengths;\r\n var lengthPos = segmentsLength.totalLength * perc;\r\n var i = 0;\r\n var len = lengths.length;\r\n var accumulatedLength = 0;\r\n var pt;\r\n\r\n while (i < len) {\r\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\r\n var initIndex = i;\r\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\r\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\r\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\r\n break;\r\n } else {\r\n accumulatedLength += lengths[i].addedLength;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (!pt) {\r\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\r\n }\r\n\r\n return pt;\r\n },\r\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\r\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\r\n if (perc == 1) {\r\n // eslint-disable-line eqeqeq\r\n perc = this.v.c;\r\n } else if (perc == 0) {\r\n // eslint-disable-line eqeqeq\r\n perc = 0.999;\r\n }\r\n\r\n var pt1 = this.pointOnPath(perc, time);\r\n var pt2 = this.pointOnPath(perc + 0.001, time);\r\n var xLength = pt2[0] - pt1[0];\r\n var yLength = pt2[1] - pt1[1];\r\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\r\n\r\n if (magnitude === 0) {\r\n return [0, 0];\r\n }\r\n\r\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\r\n return unitVector;\r\n },\r\n tangentOnPath: function tangentOnPath(perc, time) {\r\n return this.vectorOnPath(perc, time, 'tangent');\r\n },\r\n normalOnPath: function normalOnPath(perc, time) {\r\n return this.vectorOnPath(perc, time, 'normal');\r\n },\r\n setGroupProperty: expressionHelpers.setGroupProperty,\r\n getValueAtTime: expressionHelpers.getStaticValueAtTime\r\n };\r\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\r\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\r\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\r\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\r\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\r\n\r\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\r\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\r\n prop.propertyIndex = data.ix;\r\n prop.lock = false;\r\n\r\n if (type === 3) {\r\n expressionHelpers.searchExpressions(elem, data.pt, prop);\r\n } else if (type === 4) {\r\n expressionHelpers.searchExpressions(elem, data.ks, prop);\r\n }\r\n\r\n if (prop.k) {\r\n elem.addDynamicProperty(prop);\r\n }\r\n\r\n return prop;\r\n };\r\n }\r\n\r\n function initialize$1() {\r\n addPropertyDecorator();\r\n }\r\n\r\n function addDecorator() {\r\n function searchExpressions() {\r\n if (this.data.d.x) {\r\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\r\n this.addEffect(this.getExpressionValue.bind(this));\r\n return true;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\r\n var newValue = this.calculateExpression(text);\r\n\r\n if (currentValue.t !== newValue) {\r\n var newData = {};\r\n this.copyData(newData, currentValue);\r\n newData.t = newValue.toString();\r\n newData.__complete = false;\r\n return newData;\r\n }\r\n\r\n return currentValue;\r\n };\r\n\r\n TextProperty.prototype.searchProperty = function () {\r\n var isKeyframed = this.searchKeyframes();\r\n var hasExpressions = this.searchExpressions();\r\n this.kf = isKeyframed || hasExpressions;\r\n return this.kf;\r\n };\r\n\r\n TextProperty.prototype.searchExpressions = searchExpressions;\r\n }\r\n\r\n function initialize() {\r\n addDecorator();\r\n }\r\n\r\n function SVGComposableEffect() {}\r\n\r\n SVGComposableEffect.prototype = {\r\n createMergeNode: function createMergeNode(resultId, ins) {\r\n var feMerge = createNS('feMerge');\r\n feMerge.setAttribute('result', resultId);\r\n var feMergeNode;\r\n var i;\r\n\r\n for (i = 0; i < ins.length; i += 1) {\r\n feMergeNode = createNS('feMergeNode');\r\n feMergeNode.setAttribute('in', ins[i]);\r\n feMerge.appendChild(feMergeNode);\r\n feMerge.appendChild(feMergeNode);\r\n }\r\n\r\n return feMerge;\r\n }\r\n };\r\n\r\n var linearFilterValue = '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0';\r\n\r\n function SVGTintFilter(filter, filterManager, elem, id, source) {\r\n this.filterManager = filterManager;\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\r\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\r\n this.linearFilter = feColorMatrix;\r\n feColorMatrix.setAttribute('result', id + '_tint_1');\r\n filter.appendChild(feColorMatrix);\r\n feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\r\n feColorMatrix.setAttribute('result', id + '_tint_2');\r\n filter.appendChild(feColorMatrix);\r\n this.matrixFilter = feColorMatrix;\r\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\r\n filter.appendChild(feMerge);\r\n }\r\n\r\n extendPrototype([SVGComposableEffect], SVGTintFilter);\r\n\r\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var colorBlack = this.filterManager.effectElements[0].p.v;\r\n var colorWhite = this.filterManager.effectElements[1].p.v;\r\n var opacity = this.filterManager.effectElements[2].p.v / 100;\r\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\r\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 1 0');\r\n }\r\n };\r\n\r\n function SVGFillFilter(filter, filterManager, elem, id) {\r\n this.filterManager = filterManager;\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\r\n feColorMatrix.setAttribute('result', id);\r\n filter.appendChild(feColorMatrix);\r\n this.matrixFilter = feColorMatrix;\r\n }\r\n\r\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var color = this.filterManager.effectElements[2].p.v;\r\n var opacity = this.filterManager.effectElements[6].p.v;\r\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\r\n }\r\n };\r\n\r\n function SVGStrokeEffect(fil, filterManager, elem) {\r\n this.initialized = false;\r\n this.filterManager = filterManager;\r\n this.elem = elem;\r\n this.paths = [];\r\n }\r\n\r\n SVGStrokeEffect.prototype.initialize = function () {\r\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\r\n var path;\r\n var groupPath;\r\n var i;\r\n var len;\r\n\r\n if (this.filterManager.effectElements[1].p.v === 1) {\r\n len = this.elem.maskManager.masksProperties.length;\r\n i = 0;\r\n } else {\r\n i = this.filterManager.effectElements[0].p.v - 1;\r\n len = i + 1;\r\n }\r\n\r\n groupPath = createNS('g');\r\n groupPath.setAttribute('fill', 'none');\r\n groupPath.setAttribute('stroke-linecap', 'round');\r\n groupPath.setAttribute('stroke-dashoffset', 1);\r\n\r\n for (i; i < len; i += 1) {\r\n path = createNS('path');\r\n groupPath.appendChild(path);\r\n this.paths.push({\r\n p: path,\r\n m: i\r\n });\r\n }\r\n\r\n if (this.filterManager.effectElements[10].p.v === 3) {\r\n var mask = createNS('mask');\r\n var id = createElementID();\r\n mask.setAttribute('id', id);\r\n mask.setAttribute('mask-type', 'alpha');\r\n mask.appendChild(groupPath);\r\n this.elem.globalData.defs.appendChild(mask);\r\n var g = createNS('g');\r\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\r\n\r\n while (elemChildren[0]) {\r\n g.appendChild(elemChildren[0]);\r\n }\r\n\r\n this.elem.layerElement.appendChild(g);\r\n this.masker = mask;\r\n groupPath.setAttribute('stroke', '#fff');\r\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\r\n if (this.filterManager.effectElements[10].p.v === 2) {\r\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\r\n\r\n while (elemChildren.length) {\r\n this.elem.layerElement.removeChild(elemChildren[0]);\r\n }\r\n }\r\n\r\n this.elem.layerElement.appendChild(groupPath);\r\n this.elem.layerElement.removeAttribute('mask');\r\n groupPath.setAttribute('stroke', '#fff');\r\n }\r\n\r\n this.initialized = true;\r\n this.pathMasker = groupPath;\r\n };\r\n\r\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\r\n if (!this.initialized) {\r\n this.initialize();\r\n }\r\n\r\n var i;\r\n var len = this.paths.length;\r\n var mask;\r\n var path;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.paths[i].m !== -1) {\r\n mask = this.elem.maskManager.viewData[this.paths[i].m];\r\n path = this.paths[i].p;\r\n\r\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\r\n path.setAttribute('d', mask.lastPath);\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\r\n var dasharrayValue;\r\n\r\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\r\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\r\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\r\n var l = path.getTotalLength();\r\n dasharrayValue = '0 0 0 ' + l * s + ' ';\r\n var lineLength = l * (e - s);\r\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\r\n var units = Math.floor(lineLength / segment);\r\n var j;\r\n\r\n for (j = 0; j < units; j += 1) {\r\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\r\n }\r\n\r\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\r\n } else {\r\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\r\n }\r\n\r\n path.setAttribute('stroke-dasharray', dasharrayValue);\r\n }\r\n }\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\r\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\r\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\r\n }\r\n\r\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\r\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\r\n var color = this.filterManager.effectElements[3].p.v;\r\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\r\n }\r\n }\r\n };\r\n\r\n function SVGTritoneFilter(filter, filterManager, elem, id) {\r\n this.filterManager = filterManager;\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\r\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\r\n filter.appendChild(feColorMatrix);\r\n var feComponentTransfer = createNS('feComponentTransfer');\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n feComponentTransfer.setAttribute('result', id);\r\n this.matrixFilter = feComponentTransfer;\r\n var feFuncR = createNS('feFuncR');\r\n feFuncR.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncR);\r\n this.feFuncR = feFuncR;\r\n var feFuncG = createNS('feFuncG');\r\n feFuncG.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncG);\r\n this.feFuncG = feFuncG;\r\n var feFuncB = createNS('feFuncB');\r\n feFuncB.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncB);\r\n this.feFuncB = feFuncB;\r\n filter.appendChild(feComponentTransfer);\r\n }\r\n\r\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var color1 = this.filterManager.effectElements[0].p.v;\r\n var color2 = this.filterManager.effectElements[1].p.v;\r\n var color3 = this.filterManager.effectElements[2].p.v;\r\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\r\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\r\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\r\n this.feFuncR.setAttribute('tableValues', tableR);\r\n this.feFuncG.setAttribute('tableValues', tableG);\r\n this.feFuncB.setAttribute('tableValues', tableB);\r\n }\r\n };\r\n\r\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\r\n this.filterManager = filterManager;\r\n var effectElements = this.filterManager.effectElements;\r\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\r\n\r\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\r\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\r\n } // Green\r\n\r\n\r\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\r\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\r\n } // Blue\r\n\r\n\r\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\r\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\r\n } // Alpha\r\n\r\n\r\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\r\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\r\n } // RGB\r\n\r\n\r\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n filter.appendChild(feComponentTransfer);\r\n }\r\n\r\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\r\n feComponentTransfer = createNS('feComponentTransfer');\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n feComponentTransfer.setAttribute('result', id);\r\n filter.appendChild(feComponentTransfer);\r\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\r\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\r\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\r\n }\r\n }\r\n\r\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\r\n var feFunc = createNS(type);\r\n feFunc.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFunc);\r\n return feFunc;\r\n };\r\n\r\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\r\n var cnt = 0;\r\n var segments = 256;\r\n var perc;\r\n var min = Math.min(inputBlack, inputWhite);\r\n var max = Math.max(inputBlack, inputWhite);\r\n var table = Array.call(null, {\r\n length: segments\r\n });\r\n var colorValue;\r\n var pos = 0;\r\n var outputDelta = outputWhite - outputBlack;\r\n var inputDelta = inputWhite - inputBlack;\r\n\r\n while (cnt <= 256) {\r\n perc = cnt / 256;\r\n\r\n if (perc <= min) {\r\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\r\n } else if (perc >= max) {\r\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\r\n } else {\r\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\r\n }\r\n\r\n table[pos] = colorValue;\r\n pos += 1;\r\n cnt += 256 / (segments - 1);\r\n }\r\n\r\n return table.join(' ');\r\n };\r\n\r\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var val;\r\n var effectElements = this.filterManager.effectElements;\r\n\r\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\r\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\r\n this.feFuncRComposed.setAttribute('tableValues', val);\r\n this.feFuncGComposed.setAttribute('tableValues', val);\r\n this.feFuncBComposed.setAttribute('tableValues', val);\r\n }\r\n\r\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\r\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\r\n this.feFuncR.setAttribute('tableValues', val);\r\n }\r\n\r\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\r\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\r\n this.feFuncG.setAttribute('tableValues', val);\r\n }\r\n\r\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\r\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\r\n this.feFuncB.setAttribute('tableValues', val);\r\n }\r\n\r\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\r\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\r\n this.feFuncA.setAttribute('tableValues', val);\r\n }\r\n }\r\n };\r\n\r\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\r\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\r\n var filterSize = filterManager.data.fs || globalFilterSize;\r\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\r\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\r\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\r\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\r\n this.filterManager = filterManager;\r\n var feGaussianBlur = createNS('feGaussianBlur');\r\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\r\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\r\n feGaussianBlur.setAttribute('stdDeviation', '0');\r\n this.feGaussianBlur = feGaussianBlur;\r\n filter.appendChild(feGaussianBlur);\r\n var feOffset = createNS('feOffset');\r\n feOffset.setAttribute('dx', '25');\r\n feOffset.setAttribute('dy', '0');\r\n feOffset.setAttribute('in', id + '_drop_shadow_1');\r\n feOffset.setAttribute('result', id + '_drop_shadow_2');\r\n this.feOffset = feOffset;\r\n filter.appendChild(feOffset);\r\n var feFlood = createNS('feFlood');\r\n feFlood.setAttribute('flood-color', '#00ff00');\r\n feFlood.setAttribute('flood-opacity', '1');\r\n feFlood.setAttribute('result', id + '_drop_shadow_3');\r\n this.feFlood = feFlood;\r\n filter.appendChild(feFlood);\r\n var feComposite = createNS('feComposite');\r\n feComposite.setAttribute('in', id + '_drop_shadow_3');\r\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\r\n feComposite.setAttribute('operator', 'in');\r\n feComposite.setAttribute('result', id + '_drop_shadow_4');\r\n filter.appendChild(feComposite);\r\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\r\n filter.appendChild(feMerge); //\r\n }\r\n\r\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\r\n\r\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\r\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\r\n var col = this.filterManager.effectElements[0].p.v;\r\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\r\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\r\n var distance = this.filterManager.effectElements[3].p.v;\r\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\r\n var x = distance * Math.cos(angle);\r\n var y = distance * Math.sin(angle);\r\n this.feOffset.setAttribute('dx', x);\r\n this.feOffset.setAttribute('dy', y);\r\n }\r\n }\r\n };\r\n\r\n var _svgMatteSymbols = [];\r\n\r\n function SVGMatte3Effect(filterElem, filterManager, elem) {\r\n this.initialized = false;\r\n this.filterManager = filterManager;\r\n this.filterElem = filterElem;\r\n this.elem = elem;\r\n elem.matteElement = createNS('g');\r\n elem.matteElement.appendChild(elem.layerElement);\r\n elem.matteElement.appendChild(elem.transformedElement);\r\n elem.baseElement = elem.matteElement;\r\n }\r\n\r\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\r\n var i = 0;\r\n var len = _svgMatteSymbols.length;\r\n\r\n while (i < len) {\r\n if (_svgMatteSymbols[i] === mask) {\r\n return _svgMatteSymbols[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\r\n var parentNode = mask.layerElement.parentNode;\r\n\r\n if (!parentNode) {\r\n return;\r\n }\r\n\r\n var children = parentNode.children;\r\n var i = 0;\r\n var len = children.length;\r\n\r\n while (i < len) {\r\n if (children[i] === mask.layerElement) {\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n var nextChild;\r\n\r\n if (i <= len - 2) {\r\n nextChild = children[i + 1];\r\n }\r\n\r\n var useElem = createNS('use');\r\n useElem.setAttribute('href', '#' + symbolId);\r\n\r\n if (nextChild) {\r\n parentNode.insertBefore(useElem, nextChild);\r\n } else {\r\n parentNode.appendChild(useElem);\r\n }\r\n };\r\n\r\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\r\n if (!this.findSymbol(mask)) {\r\n var symbolId = createElementID();\r\n var masker = createNS('mask');\r\n masker.setAttribute('id', mask.layerId);\r\n masker.setAttribute('mask-type', 'alpha');\r\n\r\n _svgMatteSymbols.push(mask);\r\n\r\n var defs = elem.globalData.defs;\r\n defs.appendChild(masker);\r\n var symbol = createNS('symbol');\r\n symbol.setAttribute('id', symbolId);\r\n this.replaceInParent(mask, symbolId);\r\n symbol.appendChild(mask.layerElement);\r\n defs.appendChild(symbol);\r\n var useElem = createNS('use');\r\n useElem.setAttribute('href', '#' + symbolId);\r\n masker.appendChild(useElem);\r\n mask.data.hd = false;\r\n mask.show();\r\n }\r\n\r\n elem.setMatte(mask.layerId);\r\n };\r\n\r\n SVGMatte3Effect.prototype.initialize = function () {\r\n var ind = this.filterManager.effectElements[0].p.v;\r\n var elements = this.elem.comp.elements;\r\n var i = 0;\r\n var len = elements.length;\r\n\r\n while (i < len) {\r\n if (elements[i] && elements[i].data.ind === ind) {\r\n this.setElementAsMask(this.elem, elements[i]);\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n this.initialized = true;\r\n };\r\n\r\n SVGMatte3Effect.prototype.renderFrame = function () {\r\n if (!this.initialized) {\r\n this.initialize();\r\n }\r\n };\r\n\r\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\r\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\r\n filter.setAttribute('x', '-100%');\r\n filter.setAttribute('y', '-100%');\r\n filter.setAttribute('width', '300%');\r\n filter.setAttribute('height', '300%');\r\n this.filterManager = filterManager;\r\n var feGaussianBlur = createNS('feGaussianBlur');\r\n feGaussianBlur.setAttribute('result', id);\r\n filter.appendChild(feGaussianBlur);\r\n this.feGaussianBlur = feGaussianBlur;\r\n }\r\n\r\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n // Empirical value, matching AE's blur appearance.\r\n var kBlurrinessToSigma = 0.3;\r\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\r\n //\r\n // 1 -> horizontal & vertical\r\n // 2 -> horizontal only\r\n // 3 -> vertical only\r\n //\r\n\r\n var dimensions = this.filterManager.effectElements[1].p.v;\r\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\r\n\r\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\r\n\r\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\r\n //\r\n // 0 -> off -> duplicate\r\n // 1 -> on -> wrap\r\n\r\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\r\n\r\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\r\n }\r\n };\r\n\r\n registerRenderer('canvas', CanvasRenderer);\r\n registerRenderer('html', HybridRenderer);\r\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\r\n\r\n ShapeModifiers.registerModifier('tm', TrimModifier);\r\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\r\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\r\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\r\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\r\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\r\n\r\n setExpressionsPlugin(Expressions);\r\n setExpressionInterfaces(getInterface);\r\n initialize$1();\r\n initialize(); // Registering svg effects\r\n\r\n registerEffect(20, SVGTintFilter, true);\r\n registerEffect(21, SVGFillFilter, true);\r\n registerEffect(22, SVGStrokeEffect, false);\r\n registerEffect(23, SVGTritoneFilter, true);\r\n registerEffect(24, SVGProLevelsFilter, true);\r\n registerEffect(25, SVGDropShadowEffect, true);\r\n registerEffect(28, SVGMatte3Effect, false);\r\n registerEffect(29, SVGGaussianBlurEffect, true);\r\n\r\n return lottie;\r\n\r\n}));\r\n","export const REACT_LOTTIE_PLAYER_VERSION = \"3.5.3\"; \nexport const LOTTIE_WEB_VERSION = \"^5.10.2\";\n","import lottie, { AnimationItem } from 'lottie-web';\nimport * as React from 'react';\n\nimport { LOTTIE_WEB_VERSION, REACT_LOTTIE_PLAYER_VERSION } from './versions';\n\n/**\n * Parse a resource into a JSON object or a URL string\n */\nexport function parseSrc(src: string | object): string | object {\n if (typeof src === 'object') {\n return src;\n }\n\n try {\n return JSON.parse(src);\n } catch (e) {\n // Do nothing...\n }\n\n // Try construct an absolute URL from the src URL\n try {\n return new URL(src).toString();\n } catch (e) {\n // Do nothing...\n }\n\n return src;\n}\n\n// Necessary so that we can add Lottie to the window afterwards\ndeclare global {\n interface Window {\n lottie: any;\n }\n}\n\n// Define valid player states\nexport enum PlayerState {\n Loading = 'loading',\n Playing = 'playing',\n Paused = 'paused',\n Stopped = 'stopped',\n Frozen = 'frozen',\n Error = 'error',\n}\n\n// Define player events\nexport enum PlayerEvent {\n Load = 'load',\n InstanceSaved = 'instanceSaved',\n Error = 'error',\n Ready = 'ready',\n Play = 'play',\n Pause = 'pause',\n Stop = 'stop',\n Freeze = 'freeze',\n Loop = 'loop',\n Complete = 'complete',\n Frame = 'frame',\n}\n\nexport type Versions = {\n lottieWebVersion: string;\n lottiePlayerVersion: string;\n};\n\nexport type PlayerDirection = -1 | 1;\n\nexport interface IPlayerProps {\n id?: string;\n lottieRef?: (ref: AnimationItem) => void;\n onEvent?: (event: PlayerEvent) => any;\n onStateChange?: (state: PlayerState) => any;\n onBackgroundChange?: (color: string) => void;\n autoplay?: boolean;\n background?: string;\n children?: React.ReactNode | React.ReactNode[];\n controls?: boolean;\n direction?: PlayerDirection;\n hover?: boolean;\n loop?: boolean | number;\n renderer?: any;\n speed?: number;\n src: object | string;\n style?: React.CSSProperties;\n rendererSettings?: object;\n keepLastFrame?: boolean;\n className?: string;\n}\n\ninterface IPlayerState {\n animationData: any;\n background: string;\n containerRef: React.Ref | null;\n debug?: boolean;\n instance: AnimationItem | null;\n seeker: number;\n playerState: PlayerState;\n}\n\n// Build default config for lottie-web player\nconst defaultOptions = {\n clearCanvas: false,\n hideOnTransparent: true,\n progressiveLoad: true,\n};\n\nexport class Player extends React.Component {\n public static async getDerivedStateFromProps(nextProps: any, prevState: any) {\n if (nextProps.background !== prevState.background) {\n return { background: nextProps.background };\n } else {\n return null;\n }\n }\n\n public container: Element | null = null;\n public unmounted = false;\n\n constructor(props: IPlayerProps) {\n super(props);\n\n if (typeof window !== 'undefined') {\n window.lottie = lottie;\n }\n this.state = {\n animationData: null,\n background: 'transparent',\n containerRef: React.createRef(),\n debug: true,\n instance: null,\n playerState: PlayerState.Loading,\n seeker: 0,\n };\n }\n\n /**\n * Returns the lottie-web version and this player's version\n */\n public getVersions(): Versions {\n return {\n lottieWebVersion: LOTTIE_WEB_VERSION,\n lottiePlayerVersion: REACT_LOTTIE_PLAYER_VERSION,\n };\n }\n\n static defaultProps = {\n loop: false,\n };\n\n public async componentDidMount() {\n if (!this.unmounted) {\n await this.createLottie();\n }\n }\n\n public componentWillUnmount() {\n this.unmounted = true;\n if (this.state.instance) {\n this.state.instance.destroy();\n }\n }\n\n public async componentDidUpdate(prevProps: any) {\n if (this.props.src !== prevProps.src) {\n if (this.state.instance) {\n this.state.instance.destroy();\n }\n await this.createLottie();\n }\n }\n handleBgChange = (childData: any) => {\n this.setState({ background: childData });\n };\n triggerDownload = (dataUri: any, filename: any) => {\n const element = document.createElement('a');\n\n element.href = dataUri;\n element.download = filename;\n document.body.appendChild(element);\n\n element.click();\n\n document.body.removeChild(element);\n };\n snapshot = (download = true) => {\n let data;\n const id = this.props.id ? this.props.id : 'lottie';\n const lottieElement = document.getElementById(id);\n if (this.props.renderer === 'svg') {\n // Get SVG element and serialize markup\n if (lottieElement) {\n const svgElement = lottieElement.querySelector('svg');\n\n if (svgElement) {\n const serializedSvg = new XMLSerializer().serializeToString(svgElement);\n data = 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(serializedSvg);\n }\n }\n\n // Trigger file download if needed\n if (download) {\n // this.triggerDownload(data, `snapshot_${progress}.svg`);\n this.triggerDownload(data, `snapshot.svg`);\n }\n } else if (this.props.renderer === 'canvas') {\n if (lottieElement) {\n const canvas = lottieElement.querySelector('canvas');\n if (canvas) {\n data = canvas.toDataURL('image/png');\n }\n }\n // Trigger file download if needed\n if (download) {\n // this.triggerDownload(data, `snapshot_${progress}.png`);\n this.triggerDownload(data, `snapshot.png`);\n }\n }\n\n return data;\n };\n\n public render() {\n const { children, loop, style, onBackgroundChange, className } = this.props;\n const { animationData, instance, playerState, seeker, debug, background } = this.state;\n\n return (\n
\n {this.state.playerState === PlayerState.Error ? (\n
\n \n ⚠️\n \n
\n ) : (\n (this.container = el)}\n style={{\n background,\n margin: '0 auto',\n outline: 'none',\n overflow: 'hidden',\n ...style,\n }}\n className={className}\n >
\n )}\n {React.Children.map(children, child => {\n if (React.isValidElement(child)) {\n return React.cloneElement(child, {\n animationData,\n background,\n debug,\n instance,\n loop,\n pause: () => this.pause(),\n play: () => this.play(),\n playerState,\n seeker,\n setBackground: (value: string) => {\n this.setState({ background: value });\n\n if (typeof onBackgroundChange === 'function') {\n onBackgroundChange(value);\n }\n },\n setSeeker: (f: number, p: boolean) => this.setSeeker(f, p),\n stop: () => this.stop(),\n toggleDebug: () => this.toggleDebug(),\n setLoop: (loop: boolean) => this.setLoop(loop),\n colorChangedEvent: (hex: string) => {\n this.handleBgChange(hex);\n },\n snapshot: () => {\n this.snapshot();\n },\n });\n }\n return null;\n })}\n \n );\n }\n\n private toggleDebug() {\n this.setState({ debug: !this.state.debug });\n }\n\n private async createLottie() {\n const {\n autoplay,\n direction,\n loop,\n lottieRef,\n renderer,\n speed,\n src,\n background,\n rendererSettings,\n hover,\n } = this.props;\n const { instance } = this.state;\n\n if (!src || !this.container) {\n return;\n }\n\n // Load the resource information\n try {\n // Parse the src to see if it is a URL or Lottie JSON data\n let animationData = parseSrc(src);\n\n if (typeof animationData === 'string') {\n const fetchResult = await fetch(animationData as string).catch(() => {\n this.setState({ playerState: PlayerState.Error });\n this.triggerEvent(PlayerEvent.Error);\n throw new Error('@LottieFiles/lottie-react: Animation data could not be fetched.');\n });\n\n animationData = await fetchResult.json().catch(() => {\n this.setState({ playerState: PlayerState.Error });\n this.triggerEvent(PlayerEvent.Error);\n throw new Error('@LottieFiles/lottie-react: Animation data could not be fetched.');\n });\n }\n\n // Clear previous animation, if any\n if (instance) {\n instance.destroy();\n }\n\n // Initialize lottie player and load animation\n const newInstance = lottie.loadAnimation({\n rendererSettings: rendererSettings || defaultOptions,\n animationData,\n autoplay: autoplay || false,\n container: this.container as Element,\n loop: loop || false,\n renderer,\n });\n if (speed) {\n newInstance.setSpeed(speed);\n }\n this.setState({ animationData });\n\n this.setState({ instance: newInstance }, () => {\n this.triggerEvent(PlayerEvent.InstanceSaved);\n\n if (typeof lottieRef === 'function') {\n lottieRef(newInstance);\n }\n if (autoplay) {\n this.play();\n }\n });\n\n // Handle new frame event\n newInstance.addEventListener('enterFrame', () => {\n this.triggerEvent(PlayerEvent.Frame);\n\n this.setState({\n seeker: Math.floor((newInstance as any).currentFrame),\n });\n });\n\n // Handle lottie-web ready event\n newInstance.addEventListener('DOMLoaded', () => {\n this.triggerEvent(PlayerEvent.Load);\n });\n\n // Handle animation data load complete\n newInstance.addEventListener('data_ready', () => {\n this.triggerEvent(PlayerEvent.Ready);\n });\n\n // Set error state when animation load fail event triggers\n newInstance.addEventListener('data_failed', () => {\n this.setState({ playerState: PlayerState.Error });\n this.triggerEvent(PlayerEvent.Error);\n });\n\n // Handle new loop event\n newInstance.addEventListener('loopComplete', () => {\n this.triggerEvent(PlayerEvent.Loop);\n });\n\n // Set state to paused if loop is off and anim has completed\n newInstance.addEventListener('complete', () => {\n this.triggerEvent(PlayerEvent.Complete);\n this.setState({ playerState: PlayerState.Paused });\n\n if (!this.props.keepLastFrame || this.props.loop) {\n this.setSeeker(0);\n }\n });\n\n // Set handlers to auto play animation on hover if enabled\n if (this.container) {\n this.container.addEventListener('mouseenter', () => {\n if (hover && this.state.playerState !== PlayerState.Playing) {\n if (this.props.keepLastFrame) {\n this.stop();\n }\n this.play();\n }\n });\n this.container.addEventListener('mouseleave', () => {\n if (hover && this.state.playerState === PlayerState.Playing) {\n this.stop();\n }\n });\n }\n\n // Set initial playback speed and direction\n if (speed) {\n this.setPlayerSpeed(speed);\n }\n\n if (direction) {\n this.setPlayerDirection(direction);\n }\n\n if (background) {\n this.setState({ background });\n }\n } catch (e) {\n this.setState({ playerState: PlayerState.Error });\n this.triggerEvent(PlayerEvent.Error);\n }\n }\n\n public play() {\n const { instance } = this.state;\n\n if (instance) {\n this.triggerEvent(PlayerEvent.Play);\n\n instance.play();\n\n this.setState({ playerState: PlayerState.Playing });\n }\n }\n\n public pause() {\n const { instance } = this.state;\n\n if (instance) {\n this.triggerEvent(PlayerEvent.Pause);\n\n instance.pause();\n\n this.setState({ playerState: PlayerState.Paused });\n }\n }\n\n public stop() {\n const { instance } = this.state;\n\n if (instance) {\n this.triggerEvent(PlayerEvent.Stop);\n\n instance.stop();\n\n this.setState({ playerState: PlayerState.Stopped });\n }\n }\n\n public setPlayerSpeed(speed: number) {\n const { instance } = this.state;\n\n if (instance) {\n instance.setSpeed(speed);\n }\n }\n\n public setPlayerDirection(direction: PlayerDirection) {\n const { instance } = this.state;\n\n if (instance) {\n instance.setDirection(direction);\n }\n }\n\n public setSeeker(seek: number, play = false) {\n const { instance, playerState } = this.state;\n\n if (instance) {\n if (!play || playerState !== PlayerState.Playing) {\n instance.goToAndStop(seek, true);\n this.triggerEvent(PlayerEvent.Pause);\n this.setState({ playerState: PlayerState.Paused });\n } else {\n instance.goToAndPlay(seek, true);\n }\n }\n }\n\n public setLoop(loop: boolean) {\n const { instance } = this.state;\n\n if (instance) {\n instance.loop = loop;\n this.setState({ instance: instance });\n }\n }\n private triggerEvent(event: PlayerEvent) {\n const { onEvent } = this.props;\n\n if (onEvent) {\n onEvent(event);\n }\n }\n}\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import * as React from 'react';\n\ninterface ColorPickerProps {\n colorChangedEvent?: (hex: string) => void;\n}\nexport class ColorPicker extends React.Component {\n state = {\n red: 0,\n green: 0,\n blue: 0,\n rgba: null,\n hex: '#000000',\n colorComponents: [],\n };\n\n handleChange = (rgb: string, value: any) => {\n if (rgb === 'r') {\n const hex =\n '#' +\n (value | (1 << 8)).toString(16).slice(1) +\n (this.state.green | (1 << 8)).toString(16).slice(1) +\n (this.state.blue | (1 << 8)).toString(16).slice(1);\n this.setState({ hex: hex });\n } else if (rgb === 'g') {\n const hex =\n '#' +\n (this.state.red | (1 << 8)).toString(16).slice(1) +\n (value | (1 << 8)).toString(16).slice(1) +\n (this.state.blue | (1 << 8)).toString(16).slice(1);\n this.setState({ hex: hex });\n } else if (rgb === 'b') {\n const hex =\n '#' +\n (this.state.red | (1 << 8)).toString(16).slice(1) +\n (this.state.green | (1 << 8)).toString(16).slice(1) +\n (value | (1 << 8)).toString(16).slice(1);\n this.setState({ hex: hex });\n }\n };\n parseColor = (input: string) => {\n if (typeof input !== 'string') {\n return;\n }\n if (input[0] === '#') {\n const _colorComponents =\n input.length === 4\n ? [input.slice(1, 2), input.slice(2, 3), input.slice(3, 4)].map(n => parseInt(`${n}${n}`, 16))\n : [input.slice(1, 3), input.slice(3, 5), input.slice(5, 7)].map(n => parseInt(n, 16));\n this.setState({ colorComponents: _colorComponents });\n } else if (input.startsWith('rgb')) {\n const _colorComponents = input.match(/\\d+/g)?.map(n => parseInt(n));\n if (_colorComponents !== undefined) {\n this.setState({ colorComponents: _colorComponents });\n }\n }\n\n if (this.state.colorComponents.length) {\n this.setState({ red: this.state.colorComponents[0] });\n this.setState({ green: this.state.colorComponents[1] });\n this.setState({ blue: this.state.colorComponents[2] });\n }\n };\n\n componentDidUpdate(_prevProps: any, prevState: any) {\n if (this.props.colorChangedEvent) {\n if (this.state.hex !== prevState.hex) {\n this.props.colorChangedEvent(this.state.hex);\n }\n }\n return true;\n }\n public render() {\n return (\n
\n
\n
\n Red\n {\n this.setState({ red: event.target.value });\n this.handleChange('r', event.target.value);\n }}\n />\n {\n this.setState({ red: event.target.value });\n this.handleChange('r', event.target.value);\n }}\n />\n
\n
\n Green\n {\n this.setState({ green: event.target.value });\n this.handleChange('g', event.target.value);\n }}\n />\n {\n this.setState({ green: event.target.value });\n this.handleChange('g', event.target.value);\n }}\n />\n
\n
\n Blue\n {\n this.setState({ blue: event.target.value });\n this.handleChange('b', event.target.value);\n }}\n />\n {\n this.setState({ blue: event.target.value });\n this.handleChange('b', event.target.value);\n }}\n />\n
\n
\n
\n \n
\n {\n this.setState({ hex: e.target.value });\n this.parseColor(e.target.value);\n }}\n />\n
\n
\n
\n );\n }\n}\n","/* eslint-disable jsx-a11y/mouse-events-have-key-events */\n/* eslint-disable react/jsx-no-comment-textnodes */\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport { ReactNode } from 'react';\n\ninterface IPopoverProps {\n children: ReactNode;\n icon: ReactNode;\n}\n\nexport const Popover: React.FC = (props: IPopoverProps) => {\n const { children, icon } = props;\n const [_triggerRef, setTriggerRef] = useState(null);\n const [_contentRef, setContentRef] = useState(null);\n const [_alignment, setAlignment] = useState(null);\n const [_open, setOpen] = useState(false);\n\n useEffect(() => {\n if (_triggerRef && _contentRef) {\n const triggerBounds = _triggerRef.getBoundingClientRect();\n const contentBounds = _contentRef.getBoundingClientRect();\n\n const alignment = triggerBounds.left + contentBounds.width > window.innerWidth ? -1 : 0;\n\n setAlignment(alignment);\n }\n }, [_alignment, _contentRef, _triggerRef]);\n\n // /**\n // * Show content box\n // */\n const show = () => {\n setOpen(true);\n };\n\n /**\n * Hide content box\n */\n const hide = () => {\n setOpen(false);\n };\n\n return (\n {\n show();\n }}\n onMouseLeave={() => {\n hide();\n }}\n ref={triggerRef => {\n setTriggerRef(triggerRef);\n }}\n >\n
{icon}
\n\n {\n setContentRef(contentRef);\n }}\n style={{\n bottom: '22px',\n right: '0px',\n zIndex: 2,\n visibility: _open ? 'visible' : 'hidden',\n }}\n >\n {children}\n \n \n );\n};\nexport default Popover;\n","import './Styles.css';\n\nimport * as React from 'react';\n\n// const active = 'rgba(15, 204, 206, 0.4)';\n// const inactive = '#dbdbdb';\n\ninterface ISeekerProps {\n className?: string;\n disabled?: boolean;\n max: number;\n min: number;\n onChange: (e: any) => void;\n onChangeStart?: (v: number) => void;\n onChangeEnd?: (v: number) => void;\n showLabels?: boolean;\n step: number;\n value: number;\n darkTheme?: boolean;\n}\n\nexport class Seeker extends React.Component {\n inputRef: any = React.createRef();\n\n constructor(props: ISeekerProps) {\n super(props);\n this.state = { value: 0 };\n }\n\n handleChange = () => (event: any) => {\n const value = event.target.value;\n const frame = Math.floor((value / 100) * this.props.max);\n this.props.onChange(frame);\n };\n\n render() {\n const progress = (this.props.value / this.props.max) * 100;\n const seekerStyle = {\n backgroundImage: `-webkit-gradient(linear, left top, right top, color-stop(${progress}%, rgba(15, 204, 206, 0.4)), color-stop(${progress}%, #DAE1E7))`,\n };\n const seekerContainerStyle = {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n width: '100%',\n marginRight: '5px',\n marginLeft: '5px',\n position: 'relative',\n } as React.CSSProperties;\n\n const minLabelStyle = {\n position: 'absolute',\n left: 0,\n marginTop: '8px',\n width: '20px',\n display: 'block',\n border: '0px',\n backgroundColor: this.props.darkTheme ? '#505050' : 'rgb(218, 225, 231)',\n color: this.props.darkTheme ? '#B9B9B9' : '#555',\n padding: '2px',\n textAlign: 'center',\n borderRadius: '3px',\n fontSize: '8px',\n fontWeight: 'bold',\n } as React.CSSProperties;\n const maxLabelStyle = {\n position: 'absolute',\n right: 0,\n marginTop: '8px',\n width: '20px',\n display: 'block',\n border: '0px',\n backgroundColor: this.props.darkTheme ? '#505050' : 'rgb(218, 225, 231)',\n color: this.props.darkTheme ? '#B9B9B9' : '#555',\n padding: '2px',\n textAlign: 'center',\n borderRadius: '3px',\n fontSize: '8px',\n fontWeight: 'bold',\n } as React.CSSProperties;\n return (\n
\n \n {this.props.showLabels && (\n
\n
{this.props.min}
\n
{this.props.max}
\n
\n )}\n
\n );\n }\n}\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport './Styles.css';\n\nimport * as React from 'react';\n\nimport { ColorPicker } from './ColorPicker';\nimport { PlayerEvent, PlayerState } from './Player';\nimport { Popover } from './Popover';\nimport { Seeker } from './Seeker';\n\nconst ControlButtonStyle = {\n display: 'inline-flex',\n cursor: 'pointer',\n};\n\ninterface IControlProps {\n instance?: any;\n loop?: boolean;\n pause?: () => void;\n play?: () => void;\n playerState?: PlayerState;\n seeker?: number;\n setLoop?: (value: boolean) => void;\n setSeeker?: (seek: number, play: boolean) => void;\n stop?: () => void;\n visible?: boolean;\n buttons?: string[];\n debug?: boolean;\n toggleDebug?: () => void;\n showLabels?: boolean;\n darkTheme?: boolean;\n transparentTheme?: boolean;\n colorChangedEvent?: () => void;\n snapshot?: () => void;\n}\n\nexport class Controls extends React.Component {\n public constructor(props: IControlProps) {\n super(props);\n\n this.state = {\n activeFrame: 0,\n mouseDown: false,\n };\n }\n\n public render() {\n const { instance, playerState, seeker, setLoop, setSeeker, play, pause, stop, visible, buttons } = this.props;\n\n // Render nothing if lottie instance is not available\n if (!instance) {\n return null;\n }\n\n // Hide controls if not set to visible\n if (!visible) {\n return null;\n }\n\n const showPlayButton = !buttons || buttons.includes('play');\n const showStopButton = !buttons || buttons.includes('stop');\n const showRepeatButton = !buttons || buttons.includes('repeat');\n const showFrameInput = !buttons || buttons.includes('frame');\n const showBackgroundChange = !buttons || buttons.includes('background');\n const showSnapshot = !buttons || buttons.includes('snapshot');\n const ICON_SIZE = { width: 14, height: 14, viewBox: '0 0 24 24' };\n const currentFrame = Math.round(instance.currentFrame);\n\n return (\n \n {showPlayButton && (\n {\n if (playerState === PlayerState.Playing) {\n if (typeof pause === 'function') {\n pause();\n }\n } else {\n if (typeof play === 'function') {\n play();\n }\n }\n }}\n onKeyDown={() => {\n if (playerState === PlayerState.Playing) {\n if (typeof pause === 'function') {\n pause();\n }\n } else {\n if (typeof play === 'function') {\n play();\n }\n }\n }}\n className=\"lf-player-btn\"\n style={ControlButtonStyle}\n >\n {playerState === PlayerState.Playing ? (\n \n \n \n \n ) : (\n \n \n \n )}\n \n )}\n {showStopButton && (\n stop && stop()}\n onKeyDown={() => stop && stop()}\n className={playerState === PlayerState.Stopped ? 'lf-player-btn active' : 'lf-player-btn'}\n style={ControlButtonStyle}\n >\n \n \n \n \n )}\n {\n if (setSeeker) {\n this.setState({ activeFrame: newFrame }, () => {\n setSeeker(newFrame, false);\n });\n }\n }}\n onChangeEnd={(newFrame: any) => {\n if (setSeeker) {\n this.setState({ activeFrame: newFrame }, () => {\n setSeeker(newFrame, false);\n });\n }\n }}\n showLabels={this.props.showLabels}\n darkTheme={this.props.darkTheme}\n />\n {showFrameInput && (\n
\n \n
\n )}\n {showRepeatButton && (\n {\n if (instance && setLoop) {\n setLoop(!instance.loop);\n }\n }}\n onKeyDown={() => {\n if (instance && setLoop) {\n setLoop(!instance.loop);\n }\n }}\n className={instance.loop ? 'lf-player-btn active' : 'lf-player-btn'}\n style={ControlButtonStyle}\n >\n \n \n \n \n \n )}\n {showBackgroundChange && (\n \n \n \n }\n >\n
\n \n
\n \n )}\n {showSnapshot && (\n \n \n \n \n \n \n }\n >\n {\n if (setSeeker) setSeeker(currentFrame + (e.deltaY > 0 ? -1 : 1), false);\n }}\n >\n
Frame {currentFrame}
\n
\n Download SVG\n
\n
\n Download PNG\n
\n Scroll with mousewheel to find exact frame\n \n \n )}\n \n );\n }\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","/**\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\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\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\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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 Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3=o?a:o)),r=a,t=h(t),e.slice(r,r+t.length)==t}}).call(this,r(3))},function(e,t){var r;r=function(){return this}();try{r=r||new Function(\"return this\")()}catch(e){\"object\"==typeof window&&(r=window)}e.exports=r},function(e,t,r){(function(t){var r=/^\\[object .+?Constructor\\]$/,n=\"object\"==typeof t&&t&&t.Object===Object&&t,a=\"object\"==typeof self&&self&&self.Object===Object&&self,o=n||a||Function(\"return this\")();var i,u=Array.prototype,c=Function.prototype,s=Object.prototype,l=o[\"__core-js_shared__\"],f=(i=/[^.]+$/.exec(l&&l.keys&&l.keys.IE_PROTO||\"\"))?\"Symbol(src)_1.\"+i:\"\",d=c.toString,p=s.hasOwnProperty,h=s.toString,m=RegExp(\"^\"+d.call(p).replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),y=u.splice,b=x(o,\"Map\"),g=x(Object,\"create\");function v(e){var t=-1,r=e?e.length:0;for(this.clear();++t-1},C.prototype.set=function(e,t){var r=this.__data__,n=w(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},_.prototype.clear=function(){this.__data__={hash:new v,map:new(b||C),string:new v}},_.prototype.delete=function(e){return j(this,e).delete(e)},_.prototype.get=function(e){return j(this,e).get(e)},_.prototype.has=function(e){return j(this,e).has(e)},_.prototype.set=function(e,t){return j(this,e).set(e,t),this},N.Cache=_,e.exports=N}).call(this,r(3))},function(e,t,r){(function(t){var r=/^\\s+|\\s+$/g,n=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,o=/^0o[0-7]+$/i,i=parseInt,u=\"object\"==typeof t&&t&&t.Object===Object&&t,c=\"object\"==typeof self&&self&&self.Object===Object&&self,s=u||c||Function(\"return this\")(),l=Object.prototype.toString,f=Math.max,d=Math.min,p=function(){return s.Date.now()};function h(e){var t=typeof e;return!!e&&(\"object\"==t||\"function\"==t)}function m(e){if(\"number\"==typeof e)return e;if(function(e){return\"symbol\"==typeof e||function(e){return!!e&&\"object\"==typeof e}(e)&&\"[object Symbol]\"==l.call(e)}(e))return NaN;if(h(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=h(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(r,\"\");var u=a.test(e);return u||o.test(e)?i(e.slice(2),u?2:8):n.test(e)?NaN:+e}e.exports=function(e,t,r){var n,a,o,i,u,c,s=0,l=!1,y=!1,b=!0;if(\"function\"!=typeof e)throw new TypeError(\"Expected a function\");function g(t){var r=n,o=a;return n=a=void 0,s=t,i=e.apply(o,r)}function v(e){return s=e,u=setTimeout(_,t),l?g(e):i}function C(e){var r=e-c;return void 0===c||r>=t||r<0||y&&e-s>=o}function _(){var e=p();if(C(e))return w(e);u=setTimeout(_,function(e){var r=t-(e-c);return y?d(r,o-(e-s)):r}(e))}function w(e){return u=void 0,b&&n?g(e):(n=a=void 0,i)}function S(){var e=p(),r=C(e);if(n=arguments,a=this,c=e,r){if(void 0===u)return v(c);if(y)return u=setTimeout(_,t),g(c)}return void 0===u&&(u=setTimeout(_,t)),i}return t=m(t)||0,h(r)&&(l=!!r.leading,o=(y=\"maxWait\"in r)?f(m(r.maxWait)||0,t):o,b=\"trailing\"in r?!!r.trailing:b),S.cancel=function(){void 0!==u&&clearTimeout(u),s=0,n=c=a=u=void 0},S.flush=function(){return void 0===u?i:w(p())},S}}).call(this,r(3))},function(e,t,r){(function(e,r){var n=\"[object Arguments]\",a=\"[object Map]\",o=\"[object Object]\",i=\"[object Set]\",u=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,c=/^\\w*$/,s=/^\\./,l=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,f=/\\\\(\\\\)?/g,d=/^\\[object .+?Constructor\\]$/,p=/^(?:0|[1-9]\\d*)$/,h={};h[\"[object Float32Array]\"]=h[\"[object Float64Array]\"]=h[\"[object Int8Array]\"]=h[\"[object Int16Array]\"]=h[\"[object Int32Array]\"]=h[\"[object Uint8Array]\"]=h[\"[object Uint8ClampedArray]\"]=h[\"[object Uint16Array]\"]=h[\"[object Uint32Array]\"]=!0,h[n]=h[\"[object Array]\"]=h[\"[object ArrayBuffer]\"]=h[\"[object Boolean]\"]=h[\"[object DataView]\"]=h[\"[object Date]\"]=h[\"[object Error]\"]=h[\"[object Function]\"]=h[a]=h[\"[object Number]\"]=h[o]=h[\"[object RegExp]\"]=h[i]=h[\"[object String]\"]=h[\"[object WeakMap]\"]=!1;var m=\"object\"==typeof e&&e&&e.Object===Object&&e,y=\"object\"==typeof self&&self&&self.Object===Object&&self,b=m||y||Function(\"return this\")(),g=t&&!t.nodeType&&t,v=g&&\"object\"==typeof r&&r&&!r.nodeType&&r,C=v&&v.exports===g&&m.process,_=function(){try{return C&&C.binding(\"util\")}catch(e){}}(),w=_&&_.isTypedArray;function S(e,t,r,n){var a=-1,o=e?e.length:0;for(n&&o&&(r=e[++a]);++a-1},ue.prototype.set=function(e,t){var r=this.__data__,n=de(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},ce.prototype.clear=function(){this.__data__={hash:new ie,map:new(H||ue),string:new ie}},ce.prototype.delete=function(e){return xe(this,e).delete(e)},ce.prototype.get=function(e){return xe(this,e).get(e)},ce.prototype.has=function(e){return xe(this,e).has(e)},ce.prototype.set=function(e,t){return xe(this,e).set(e,t),this},se.prototype.add=se.prototype.push=function(e){return this.__data__.set(e,\"__lodash_hash_undefined__\"),this},se.prototype.has=function(e){return this.__data__.has(e)},le.prototype.clear=function(){this.__data__=new ue},le.prototype.delete=function(e){return this.__data__.delete(e)},le.prototype.get=function(e){return this.__data__.get(e)},le.prototype.has=function(e){return this.__data__.has(e)},le.prototype.set=function(e,t){var r=this.__data__;if(r instanceof ue){var n=r.__data__;if(!H||n.length<199)return n.push([e,t]),this;r=this.__data__=new ce(n)}return r.set(e,t),this};var pe,he,me=(pe=function(e,t){return e&&ye(e,t,qe)},function(e,t){if(null==e)return e;if(!ze(e))return pe(e,t);for(var r=e.length,n=he?r:-1,a=Object(e);(he?n--:++nu))return!1;var s=o.get(e);if(s&&o.get(t))return s==t;var l=-1,f=!0,d=1&a?new se:void 0;for(o.set(e,t),o.set(t,e);++l-1&&e%1==0&&e-1&&e%1==0&&e<=9007199254740991}function $e(e){var t=typeof e;return!!e&&(\"object\"==t||\"function\"==t)}function Ve(e){return!!e&&\"object\"==typeof e}function Ke(e){return\"symbol\"==typeof e||Ve(e)&&\"[object Symbol]\"==z.call(e)}var Ue=w?function(e){return function(t){return e(t)}}(w):function(e){return Ve(e)&&Ge(e.length)&&!!h[z.call(e)]};function qe(e){return ze(e)?fe(e):we(e)}function He(e){return e}r.exports=function(e,t,r){var n=Le(e)?S:x,a=arguments.length<3;return n(e,_e(t),r,a,me)}}).call(this,r(3),r(7)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,\"loaded\",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,\"id\",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t){String.prototype.padEnd||(String.prototype.padEnd=function(e,t){return e>>=0,t=String(void 0!==t?t:\" \"),this.length>e?String(this):((e-=this.length)>t.length&&(t+=t.repeat(e/t.length)),String(this)+t.slice(0,e))})},function(e,t,r){\"use strict\";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function o(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t0?(o.mainCode=!0,c||\"Array\"===t.constructor.name&&t.includes(e[2])?(o.hasAreaCodes=!0,[o].concat(u)):(s=s.concat(u),[o])):[o]})))),s]}function A(e,t,r,n){if(null!==r){var a=Object.keys(r),o=Object.values(r);a.forEach((function(r,a){if(n)return e.push([r,o[a]]);var i=e.findIndex((function(e){return e[0]===r}));if(-1===i){var u=[r];u[t]=o[a],e.push(u)}else e[i][t]=o[a]}))}}function D(e,t){return 0===t.length?e:e.map((function(e){var r=t.findIndex((function(t){return t[0]===e[2]}));if(-1===r)return e;var n=t[r];return n[1]&&(e[4]=n[1]),n[3]&&(e[5]=n[3]),n[2]&&(e[6]=n[2]),e}))}var P=function e(t,r,n,a,i,u,s,l,f,d,p,h,m,y){c(this,e),this.filterRegions=function(e,t){if(\"string\"==typeof e){var r=e;return t.filter((function(e){return e.regions.some((function(e){return e===r}))}))}return t.filter((function(t){return e.map((function(e){return t.regions.some((function(t){return t===e}))})).some((function(e){return e}))}))},this.sortTerritories=function(e,t){var r=[].concat(o(e),o(t));return r.sort((function(e,t){return e.namet.name?1:0})),r},this.getFilteredCountryList=function(e,t,r){return 0===e.length?t:r?e.map((function(e){var r=t.find((function(t){return t.iso2===e}));if(r)return r})).filter((function(e){return e})):t.filter((function(t){return e.some((function(e){return e===t.iso2}))}))},this.localizeCountries=function(e,t,r){for(var n=0;nt.localName?1:0})),e},this.getCustomAreas=function(e,t){for(var r=[],n=0;nt.dialCode.length)return r;if(r.dialCode.length===t.dialCode.length&&r.priority=\"0\"&&e.indexOf(0)<=\"9\"?n.find((function(t){return t.dialCode==+e})):n.find((function(t){return t.iso2==e})))&&t.dialCode&&r.setState({selectedCountry:t,formattedNumber:r.props.disableCountryCode?\"\":r.formatNumber(t.dialCode,t)})},r.scrollTo=function(e,t){if(e){var n=r.dropdownRef;if(n&&document.body){var a=n.offsetHeight,o=n.getBoundingClientRect().top+document.body.scrollTop,i=o+a,u=e,c=u.getBoundingClientRect(),s=u.offsetHeight,l=c.top+document.body.scrollTop,f=l+s,d=l-o+n.scrollTop,p=a/2-s/2;if(r.props.enableSearch?li){t&&(d+=p);var h=a-s;n.scrollTop=d-h}}}},r.scrollToTop=function(){var e=r.dropdownRef;e&&document.body&&(e.scrollTop=0)},r.formatNumber=function(e,t){if(!t)return e;var n,o=t.format,c=r.props,s=c.disableCountryCode,l=c.enableAreaCodeStretch,f=c.enableLongNumbers,d=c.autoFormat;if(s?((n=o.split(\" \")).shift(),n=n.join(\" \")):l&&t.isAreaCode?((n=o.split(\" \"))[1]=n[1].replace(/\\.+/,\"\".padEnd(t.areaCodeLength,\".\")),n=n.join(\" \")):n=o,!e||0===e.length)return s?\"\":r.props.prefix;if(e&&e.length<2||!n||!d)return s?e:r.props.prefix+e;var p,h=w()(n,(function(e,t){if(0===e.remainingText.length)return e;if(\".\"!==t)return{formattedText:e.formattedText+t,remainingText:e.remainingText};var r,n=i(r=e.remainingText)||a(r)||u(),o=n[0],c=n.slice(1);return{formattedText:e.formattedText+o,remainingText:c}}),{formattedText:\"\",remainingText:e.split(\"\")});return(p=f?h.formattedText+h.remainingText.join(\"\"):h.formattedText).includes(\"(\")&&!p.includes(\")\")&&(p+=\")\"),p},r.cursorToEnd=function(){var e=r.numberInputRef;if(document.activeElement===e){e.focus();var t=e.value.length;\")\"===e.value.charAt(t-1)&&(t-=1),e.setSelectionRange(t,t)}},r.getElement=function(e){return r[\"flag_no_\".concat(e)]},r.getCountryData=function(){return r.state.selectedCountry?{name:r.state.selectedCountry.name||\"\",dialCode:r.state.selectedCountry.dialCode||\"\",countryCode:r.state.selectedCountry.iso2||\"\",format:r.state.selectedCountry.format||\"\"}:{}},r.handleFlagDropdownClick=function(e){if(e.preventDefault(),r.state.showDropdown||!r.props.disabled){var t=r.state,n=t.preferredCountries,a=t.onlyCountries,o=t.selectedCountry,i=r.concatPreferredCountries(n,a).findIndex((function(e){return e.dialCode===o.dialCode&&e.iso2===o.iso2}));r.setState({showDropdown:!r.state.showDropdown,highlightCountryIndex:i},(function(){r.state.showDropdown&&r.scrollTo(r.getElement(r.state.highlightCountryIndex))}))}},r.handleInput=function(e){var t=e.target.value,n=r.props,a=n.prefix,o=n.onChange,i=r.props.disableCountryCode?\"\":a,u=r.state.selectedCountry,c=r.state.freezeSelection;if(!r.props.countryCodeEditable){var s=a+(u.hasAreaCodes?r.state.onlyCountries.find((function(e){return e.iso2===u.iso2&&e.mainCode})).dialCode:u.dialCode);if(t.slice(0,s.length)!==s)return}if(t===a)return o&&o(\"\",r.getCountryData(),e,\"\"),r.setState({formattedNumber:\"\"});if(t.replace(/\\D/g,\"\").length>15){if(!1===r.props.enableLongNumbers)return;if(\"number\"==typeof r.props.enableLongNumbers&&t.replace(/\\D/g,\"\").length>r.props.enableLongNumbers)return}if(t!==r.state.formattedNumber){e.preventDefault?e.preventDefault():e.returnValue=!1;var l=r.props.country,f=r.state,d=f.onlyCountries,p=f.selectedCountry,h=f.hiddenAreaCodes;if(o&&e.persist(),t.length>0){var m=t.replace(/\\D/g,\"\");(!r.state.freezeSelection||p&&p.dialCode.length>m.length)&&(u=r.props.disableCountryGuess?p:r.guessSelectedCountry(m.substring(0,6),l,d,h)||p,c=!1),i=r.formatNumber(m,u),u=u.dialCode?u:p}var y=e.target.selectionStart,b=e.target.selectionStart,g=r.state.formattedNumber,v=i.length-g.length;r.setState({formattedNumber:i,freezeSelection:c,selectedCountry:u},(function(){v>0&&(b-=v),\")\"==i.charAt(i.length-1)?r.numberInputRef.setSelectionRange(i.length-1,i.length-1):b>0&&g.length>=i.length?r.numberInputRef.setSelectionRange(b,b):y1?o.replace(n.dialCode,a.dialCode):a.dialCode,u=r.formatNumber(i.replace(/\\D/g,\"\"),a);r.setState({showDropdown:!1,selectedCountry:a,freezeSelection:!0,formattedNumber:u,searchValue:\"\"},(function(){r.cursorToEnd(),r.props.onChange&&r.props.onChange(u.replace(/[^0-9]+/g,\"\"),r.getCountryData(),t,u)}))}},r.handleInputFocus=function(e){r.numberInputRef&&r.numberInputRef.value===r.props.prefix&&r.state.selectedCountry&&!r.props.disableCountryCode&&r.setState({formattedNumber:r.props.prefix+r.state.selectedCountry.dialCode},(function(){r.props.jumpCursorToEnd&&setTimeout(r.cursorToEnd,0)})),r.setState({placeholder:\"\"}),r.props.onFocus&&r.props.onFocus(e,r.getCountryData()),r.props.jumpCursorToEnd&&setTimeout(r.cursorToEnd,0)},r.handleInputBlur=function(e){e.target.value||r.setState({placeholder:r.props.placeholder}),r.props.onBlur&&r.props.onBlur(e,r.getCountryData())},r.handleInputCopy=function(e){if(r.props.copyNumbersOnly){var t=window.getSelection().toString().replace(/[^0-9]+/g,\"\");e.clipboardData.setData(\"text/plain\",t),e.preventDefault()}},r.getHighlightCountryIndex=function(e){var t=r.state.highlightCountryIndex+e;return t<0||t>=r.state.onlyCountries.length+r.state.preferredCountries.length?t-e:r.props.enableSearch&&t>r.getSearchFilteredCountries().length?0:t},r.searchCountry=function(){var e=r.getProbableCandidate(r.state.queryString)||r.state.onlyCountries[0],t=r.state.onlyCountries.findIndex((function(t){return t==e}))+r.state.preferredCountries.length;r.scrollTo(r.getElement(t),!0),r.setState({queryString:\"\",highlightCountryIndex:t})},r.handleKeydown=function(e){var t=r.props.keys,n=e.target.className;if(n.includes(\"selected-flag\")&&e.which===t.ENTER&&!r.state.showDropdown)return r.handleFlagDropdownClick(e);if(n.includes(\"form-control\")&&(e.which===t.ENTER||e.which===t.ESC))return e.target.blur();if(r.state.showDropdown&&!r.props.disabled&&(!n.includes(\"search-box\")||e.which===t.UP||e.which===t.DOWN||e.which===t.ENTER||e.which===t.ESC&&\"\"===e.target.value)){e.preventDefault?e.preventDefault():e.returnValue=!1;var a=function(e){r.setState({highlightCountryIndex:r.getHighlightCountryIndex(e)},(function(){r.scrollTo(r.getElement(r.state.highlightCountryIndex),!0)}))};switch(e.which){case t.DOWN:a(1);break;case t.UP:a(-1);break;case t.ENTER:r.props.enableSearch?r.handleFlagItemClick(r.getSearchFilteredCountries()[r.state.highlightCountryIndex]||r.getSearchFilteredCountries()[0],e):r.handleFlagItemClick([].concat(o(r.state.preferredCountries),o(r.state.onlyCountries))[r.state.highlightCountryIndex],e);break;case t.ESC:case t.TAB:r.setState({showDropdown:!1},r.cursorToEnd);break;default:(e.which>=t.A&&e.which<=t.Z||e.which===t.SPACE)&&r.setState({queryString:r.state.queryString+String.fromCharCode(e.which)},r.state.debouncedQueryStingSearcher)}}},r.handleInputKeyDown=function(e){var t=r.props,n=t.keys,a=t.onEnterKeyPress,o=t.onKeyDown;e.which===n.ENTER&&a&&a(e),o&&o(e)},r.handleClickOutside=function(e){r.dropdownRef&&!r.dropdownContainerRef.contains(e.target)&&r.state.showDropdown&&r.setState({showDropdown:!1})},r.handleSearchChange=function(e){var t=e.currentTarget.value,n=r.state,a=n.preferredCountries,o=n.selectedCountry,i=0;if(\"\"===t&&o){var u=r.state.onlyCountries;i=r.concatPreferredCountries(a,u).findIndex((function(e){return e==o})),setTimeout((function(){return r.scrollTo(r.getElement(i))}),100)}r.setState({searchValue:t,highlightCountryIndex:i})},r.concatPreferredCountries=function(e,t){return e.length>0?o(new Set(e.concat(t))):t},r.getDropdownCountryName=function(e){return e.localName||e.name},r.getSearchFilteredCountries=function(){var e=r.state,t=e.preferredCountries,n=e.onlyCountries,a=e.searchValue,i=r.props.enableSearch,u=r.concatPreferredCountries(t,n),c=a.trim().toLowerCase().replace(\"+\",\"\");if(i&&c){if(/^\\d+$/.test(c))return u.filter((function(e){var t=e.dialCode;return[\"\".concat(t)].some((function(e){return e.toLowerCase().includes(c)}))}));var s=u.filter((function(e){var t=e.iso2;return[\"\".concat(t)].some((function(e){return e.toLowerCase().includes(c)}))})),l=u.filter((function(e){var t=e.name,r=e.localName;e.iso2;return[\"\".concat(t),\"\".concat(r||\"\")].some((function(e){return e.toLowerCase().includes(c)}))}));return r.scrollToTop(),o(new Set([].concat(s,l)))}return u},r.getCountryDropdownList=function(){var e=r.state,t=e.preferredCountries,a=e.highlightCountryIndex,o=e.showDropdown,i=e.searchValue,u=r.props,c=u.disableDropdown,s=u.prefix,l=r.props,f=l.enableSearch,d=l.searchNotFound,p=l.disableSearchIcon,h=l.searchClass,m=l.searchStyle,b=l.searchPlaceholder,g=l.autocompleteSearch,v=r.getSearchFilteredCountries().map((function(e,t){var n=a===t,o=N()({country:!0,preferred:\"us\"===e.iso2||\"gb\"===e.iso2,active:\"us\"===e.iso2,highlight:n}),i=\"flag \".concat(e.iso2);return y.a.createElement(\"li\",Object.assign({ref:function(e){return r[\"flag_no_\".concat(t)]=e},key:\"flag_no_\".concat(t),\"data-flag-key\":\"flag_no_\".concat(t),className:o,\"data-dial-code\":\"1\",tabIndex:c?\"-1\":\"0\",\"data-country-code\":e.iso2,onClick:function(t){return r.handleFlagItemClick(e,t)},role:\"option\"},n?{\"aria-selected\":!0}:{}),y.a.createElement(\"div\",{className:i}),y.a.createElement(\"span\",{className:\"country-name\"},r.getDropdownCountryName(e)),y.a.createElement(\"span\",{className:\"dial-code\"},e.format?r.formatNumber(e.dialCode,e):s+e.dialCode))})),C=y.a.createElement(\"li\",{key:\"dashes\",className:\"divider\"});t.length>0&&(!f||f&&!i.trim())&&v.splice(t.length,0,C);var _=N()(n({\"country-list\":!0,hide:!o},r.props.dropdownClass,!0));return y.a.createElement(\"ul\",{ref:function(e){return!f&&e&&e.focus(),r.dropdownRef=e},className:_,style:r.props.dropdownStyle,role:\"listbox\",tabIndex:\"0\"},f&&y.a.createElement(\"li\",{className:N()(n({search:!0},h,h))},!p&&y.a.createElement(\"span\",{className:N()(n({\"search-emoji\":!0},\"\".concat(h,\"-emoji\"),h)),role:\"img\",\"aria-label\":\"Magnifying glass\"},\"🔎\"),y.a.createElement(\"input\",{className:N()(n({\"search-box\":!0},\"\".concat(h,\"-box\"),h)),style:m,type:\"search\",placeholder:b,autoFocus:!0,autoComplete:g?\"on\":\"off\",value:i,onChange:r.handleSearchChange})),v.length>0?v:y.a.createElement(\"li\",{className:\"no-entries-message\"},y.a.createElement(\"span\",null,d)))};var s,l=new P(e.enableAreaCodes,e.enableTerritories,e.regions,e.onlyCountries,e.preferredCountries,e.excludeCountries,e.preserveOrder,e.masks,e.priority,e.areaCodes,e.localization,e.prefix,e.defaultMask,e.alwaysDefaultMask),h=l.onlyCountries,m=l.preferredCountries,b=l.hiddenAreaCodes,v=e.value?e.value.replace(/\\D/g,\"\"):\"\";s=e.disableInitialCountryGuess?0:v.length>1?r.guessSelectedCountry(v.substring(0,6),e.country,h,b)||0:e.country&&h.find((function(t){return t.iso2==e.country}))||0;var _,S=v.length<2&&s&&!j()(v,s.dialCode)?s.dialCode:\"\";_=\"\"===v&&0===s?\"\":r.formatNumber((e.disableCountryCode?\"\":S)+v,s.name?s:void 0);var x=h.findIndex((function(e){return e==s}));return r.state={showDropdown:e.showDropdown,formattedNumber:_,onlyCountries:h,preferredCountries:m,hiddenAreaCodes:b,selectedCountry:s,highlightCountryIndex:x,queryString:\"\",freezeSelection:!1,debouncedQueryStingSearcher:g()(r.searchCountry,250),searchValue:\"\"},r}var r,l,m;return function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(t,e),r=t,(l=[{key:\"componentDidMount\",value:function(){document.addEventListener&&this.props.enableClickOutside&&document.addEventListener(\"mousedown\",this.handleClickOutside),this.props.onMount&&this.props.onMount(this.state.formattedNumber.replace(/[^0-9]+/g,\"\"),this.getCountryData(),this.state.formattedNumber)}},{key:\"componentWillUnmount\",value:function(){document.removeEventListener&&this.props.enableClickOutside&&document.removeEventListener(\"mousedown\",this.handleClickOutside)}},{key:\"componentDidUpdate\",value:function(e,t,r){e.country!==this.props.country?this.updateCountry(this.props.country):e.value!==this.props.value&&this.updateFormattedNumber(this.props.value)}},{key:\"updateFormattedNumber\",value:function(e){if(null===e)return this.setState({selectedCountry:0,formattedNumber:\"\"});var t=this.state,r=t.onlyCountries,n=t.selectedCountry,a=t.hiddenAreaCodes,o=this.props,i=o.country,u=o.prefix;if(\"\"===e)return this.setState({selectedCountry:n,formattedNumber:\"\"});var c,s,l=e.replace(/\\D/g,\"\");if(n&&j()(e,u+n.dialCode))s=this.formatNumber(l,n),this.setState({formattedNumber:s});else{var f=(c=this.props.disableCountryGuess?n:this.guessSelectedCountry(l.substring(0,6),i,r,a)||n)&&j()(l,u+c.dialCode)?c.dialCode:\"\";s=this.formatNumber((this.props.disableCountryCode?\"\":f)+l,c||void 0),this.setState({selectedCountry:c,formattedNumber:s})}}},{key:\"render\",value:function(){var e,t,r,a=this,o=this.state,i=o.onlyCountries,u=o.selectedCountry,c=o.showDropdown,s=o.formattedNumber,l=o.hiddenAreaCodes,f=this.props,d=f.disableDropdown,p=f.renderStringAsFlag,h=f.isValid,m=f.defaultErrorMessage,b=f.specialLabel;if(\"boolean\"==typeof h)t=h;else{var g=h(s.replace(/\\D/g,\"\"),u,i,l);\"boolean\"==typeof g?!1===(t=g)&&(r=m):(t=!1,r=g)}var v=N()((n(e={},this.props.containerClass,!0),n(e,\"react-tel-input\",!0),e)),C=N()({arrow:!0,up:c}),_=N()(n({\"form-control\":!0,\"invalid-number\":!t,open:c},this.props.inputClass,!0)),w=N()({\"selected-flag\":!0,open:c}),S=N()(n({\"flag-dropdown\":!0,\"invalid-number\":!t,open:c},this.props.buttonClass,!0)),j=\"flag \".concat(u&&u.iso2);return y.a.createElement(\"div\",{className:\"\".concat(v,\" \").concat(this.props.className),style:this.props.style||this.props.containerStyle,onKeyDown:this.handleKeydown},b&&y.a.createElement(\"div\",{className:\"special-label\"},b),r&&y.a.createElement(\"div\",{className:\"invalid-number-message\"},r),y.a.createElement(\"input\",Object.assign({className:_,style:this.props.inputStyle,onChange:this.handleInput,onClick:this.handleInputClick,onDoubleClick:this.handleDoubleClick,onFocus:this.handleInputFocus,onBlur:this.handleInputBlur,onCopy:this.handleInputCopy,value:s,onKeyDown:this.handleInputKeyDown,placeholder:this.props.placeholder,disabled:this.props.disabled,type:\"tel\"},this.props.inputProps,{ref:function(e){a.numberInputRef=e,\"function\"==typeof a.props.inputProps.ref?a.props.inputProps.ref(e):\"object\"==typeof a.props.inputProps.ref&&(a.props.inputProps.ref.current=e)}})),y.a.createElement(\"div\",{className:S,style:this.props.buttonStyle,ref:function(e){return a.dropdownContainerRef=e}},p?y.a.createElement(\"div\",{className:w},p):y.a.createElement(\"div\",{onClick:d?void 0:this.handleFlagDropdownClick,className:w,title:u?\"\".concat(u.localName||u.name,\": + \").concat(u.dialCode):\"\",tabIndex:d?\"-1\":\"0\",role:\"button\",\"aria-haspopup\":\"listbox\",\"aria-expanded\":!!c||void 0},y.a.createElement(\"div\",{className:j},!d&&y.a.createElement(\"div\",{className:C}))),c&&this.getCountryDropdownList()))}}])&&s(r.prototype,l),m&&s(r,m),t}(y.a.Component);F.defaultProps={country:\"\",value:\"\",onlyCountries:[],preferredCountries:[],excludeCountries:[],placeholder:\"1 (702) 123-4567\",searchPlaceholder:\"search\",searchNotFound:\"No entries to show\",flagsImagePath:\"./flags.png\",disabled:!1,containerStyle:{},inputStyle:{},buttonStyle:{},dropdownStyle:{},searchStyle:{},containerClass:\"\",inputClass:\"\",buttonClass:\"\",dropdownClass:\"\",searchClass:\"\",className:\"\",autoFormat:!0,enableAreaCodes:!1,enableTerritories:!1,disableCountryCode:!1,disableDropdown:!1,enableLongNumbers:!1,countryCodeEditable:!0,enableSearch:!1,disableSearchIcon:!1,disableInitialCountryGuess:!1,disableCountryGuess:!1,regions:\"\",inputProps:{},localization:{},masks:null,priority:null,areaCodes:null,preserveOrder:[],defaultMask:\"... ... ... ... ..\",alwaysDefaultMask:!1,prefix:\"+\",copyNumbersOnly:!0,renderStringAsFlag:\"\",autocompleteSearch:!1,jumpCursorToEnd:!0,enableAreaCodeStretch:!1,enableClickOutside:!0,showDropdown:!1,isValid:!0,defaultErrorMessage:\"\",specialLabel:\"Phone\",onEnterKeyPress:null,keys:{UP:38,DOWN:40,RIGHT:39,LEFT:37,ENTER:13,ESC:27,PLUS:43,A:65,Z:90,SPACE:32,TAB:9}};t.default=F}]);","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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'use strict';var h=require(\"react\"),n=require(\"use-sync-external-store/shim\");function p(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var q=\"function\"===typeof Object.is?Object.is:p,r=n.useSyncExternalStore,t=h.useRef,u=h.useEffect,v=h.useMemo,w=h.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,g){var c=t(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=v(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==g&&f.hasValue){var b=f.value;if(g(b,a))return k=b}return k=a}b=k;if(q(d,a))return b;var e=l(a);if(void 0!==g&&g(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,g]);var d=r(a,c[0],c[1]);\nu(function(){f.hasValue=!0;f.value=d},[d]);w(d);return d};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"5480e000\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"reactapp:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkreactapp\"] = self[\"webpackChunkreactapp\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\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}","export default function _nonIterableRest() {\n 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}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","var _g;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgLogo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 841.9 595.3\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#61DAFB\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M666.3 296.5c0-32.5-40.7-63.3-103.1-82.4 14.4-63.6 8-114.2-20.2-130.4-6.5-3.8-14.1-5.6-22.4-5.6v22.3c4.6 0 8.3.9 11.4 2.6 13.6 7.8 19.5 37.5 14.9 75.7-1.1 9.4-2.9 19.3-5.1 29.4-19.6-4.8-41-8.5-63.5-10.9-13.5-18.5-27.5-35.3-41.6-50 32.6-30.3 63.2-46.9 84-46.9V78c-27.5 0-63.5 19.6-99.9 53.6-36.4-33.8-72.4-53.2-99.9-53.2v22.3c20.7 0 51.4 16.5 84 46.6-14 14.7-28 31.4-41.3 49.9-22.6 2.4-44 6.1-63.6 11-2.3-10-4-19.7-5.2-29-4.7-38.2 1.1-67.9 14.6-75.8 3-1.8 6.9-2.6 11.5-2.6V78.5c-8.4 0-16 1.8-22.6 5.6-28.1 16.2-34.4 66.7-19.9 130.1-62.2 19.2-102.7 49.9-102.7 82.3 0 32.5 40.7 63.3 103.1 82.4-14.4 63.6-8 114.2 20.2 130.4 6.5 3.8 14.1 5.6 22.5 5.6 27.5 0 63.5-19.6 99.9-53.6 36.4 33.8 72.4 53.2 99.9 53.2 8.4 0 16-1.8 22.6-5.6 28.1-16.2 34.4-66.7 19.9-130.1 62-19.1 102.5-49.9 102.5-82.3zm-130.2-66.7c-3.7 12.9-8.3 26.2-13.5 39.5-4.1-8-8.4-16-13.1-24-4.6-8-9.5-15.8-14.4-23.4 14.2 2.1 27.9 4.7 41 7.9zm-45.8 106.5c-7.8 13.5-15.8 26.3-24.1 38.2-14.9 1.3-30 2-45.2 2-15.1 0-30.2-.7-45-1.9-8.3-11.9-16.4-24.6-24.2-38-7.6-13.1-14.5-26.4-20.8-39.8 6.2-13.4 13.2-26.8 20.7-39.9 7.8-13.5 15.8-26.3 24.1-38.2 14.9-1.3 30-2 45.2-2 15.1 0 30.2.7 45 1.9 8.3 11.9 16.4 24.6 24.2 38 7.6 13.1 14.5 26.4 20.8 39.8-6.3 13.4-13.2 26.8-20.7 39.9zm32.3-13c5.4 13.4 10 26.8 13.8 39.8-13.1 3.2-26.9 5.9-41.2 8 4.9-7.7 9.8-15.6 14.4-23.7 4.6-8 8.9-16.1 13-24.1zM421.2 430c-9.3-9.6-18.6-20.3-27.8-32 9 .4 18.2.7 27.5.7 9.4 0 18.7-.2 27.8-.7-9 11.7-18.3 22.4-27.5 32zm-74.4-58.9c-14.2-2.1-27.9-4.7-41-7.9 3.7-12.9 8.3-26.2 13.5-39.5 4.1 8 8.4 16 13.1 24 4.7 8 9.5 15.8 14.4 23.4zM420.7 163c9.3 9.6 18.6 20.3 27.8 32-9-.4-18.2-.7-27.5-.7-9.4 0-18.7.2-27.8.7 9-11.7 18.3-22.4 27.5-32zm-74 58.9c-4.9 7.7-9.8 15.6-14.4 23.7-4.6 8-8.9 16-13 24-5.4-13.4-10-26.8-13.8-39.8 13.1-3.1 26.9-5.8 41.2-7.9zm-90.5 125.2c-35.4-15.1-58.3-34.9-58.3-50.6 0-15.7 22.9-35.6 58.3-50.6 8.6-3.7 18-7 27.7-10.1 5.7 19.6 13.2 40 22.5 60.9-9.2 20.8-16.6 41.1-22.2 60.6-9.9-3.1-19.3-6.5-28-10.2zM310 490c-13.6-7.8-19.5-37.5-14.9-75.7 1.1-9.4 2.9-19.3 5.1-29.4 19.6 4.8 41 8.5 63.5 10.9 13.5 18.5 27.5 35.3 41.6 50-32.6 30.3-63.2 46.9-84 46.9-4.5-.1-8.3-1-11.3-2.7zm237.2-76.2c4.7 38.2-1.1 67.9-14.6 75.8-3 1.8-6.9 2.6-11.5 2.6-20.7 0-51.4-16.5-84-46.6 14-14.7 28-31.4 41.3-49.9 22.6-2.4 44-6.1 63.6-11 2.3 10.1 4.1 19.8 5.2 29.1zm38.5-66.7c-8.6 3.7-18 7-27.7 10.1-5.7-19.6-13.2-40-22.5-60.9 9.2-20.8 16.6-41.1 22.2-60.6 9.9 3.1 19.3 6.5 28.1 10.2 35.4 15.1 58.3 34.9 58.3 50.6-.1 15.7-23 35.6-58.4 50.6zM320.8 78.4z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 420.9,\n cy: 296.5,\n r: 45.7\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M520.5 78.1z\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogo);\nexport default __webpack_public_path__ + \"static/media/logo.6ce24c58023cc2f8fd88fe9d219db6c6.svg\";\nexport { ForwardRef as ReactComponent };","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: any;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. May be either a URL or the pieces of a\n * URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n };\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) keys.push(key);\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\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}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _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, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import type { Location, Path, To } from \"./history\";\nimport { warning, invariant, parsePath } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\nexport type MutationFormMethod = \"post\" | \"put\" | \"patch\" | \"delete\";\nexport type FormMethod = \"get\" | MutationFormMethod;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\";\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport interface Submission {\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n}\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: any;\n}\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Route loader function signature\n */\nexport interface LoaderFunction {\n (args: LoaderFunctionArgs): Promise | Response | Promise | any;\n}\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs): Promise | Response | Promise | any;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n formData?: Submission[\"formData\"];\n actionResult?: DataResult;\n defaultShouldRevalidate: boolean;\n }): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\ntype PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n detectErrorBoundary: DetectErrorBoundaryFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n hasErrorBoundary: detectErrorBoundary(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n id,\n hasErrorBoundary: detectErrorBoundary(route),\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n detectErrorBoundary,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(\n branches[i],\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n safelyDecodeURI(pathname)\n );\n }\n\n return matches;\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explodes _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n const starParam = params[star];\n\n // Apply the splat\n return starParam;\n }\n\n const keyMatch = segment.match(/^:(\\w+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n\n if (optional === \"?\") {\n return param == null ? \"\" : param;\n }\n\n if (param == null) {\n invariant(false, `Missing \":${key}\" param`);\n }\n\n return param;\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, paramNames] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = paramNames.reduce>(\n (memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let paramNames: string[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"/([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURI(value: string) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (isPathRelative || toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, null, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n if (error) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n */\nexport class ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n error?: Error;\n internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n DataResult,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DeferredResult,\n ErrorResult,\n FormEncType,\n FormMethod,\n DetectErrorBoundaryFunction,\n RedirectResult,\n RouteData,\n AgnosticRouteObject,\n Submission,\n SuccessResult,\n AgnosticRouteMatch,\n MutationFormMethod,\n ShouldRevalidateFunction,\n RouteManifest,\n ImmutableRouteKey,\n ActionFunction,\n LoaderFunction,\n} from \"./utils\";\nimport {\n DeferredData,\n ErrorResponse,\n ResultType,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string,\n opts?: RouterNavigateOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key?: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key?: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n basename?: string;\n routes: AgnosticRouteObject[];\n history: History;\n hydrationData?: HydrationState;\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: { requestContext?: unknown }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise;\n}\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (state: RouterState): void;\n}\n\ninterface UseMatchesMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: unknown;\n handle: unknown;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UseMatchesMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\n/**\n * Options for a navigate() call for a Link navigation\n */\ntype LinkNavigateOptions = {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n};\n\n/**\n * Options for a navigate() call for a Form navigation\n */\ntype SubmissionNavigateOptions = {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n formMethod?: FormMethod;\n formEncType?: FormEncType;\n formData: FormData;\n};\n\n/**\n * Options to pass to navigate() for either a Link or Form navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions =\n | Omit\n | Omit;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Loading: {\n state: \"loading\";\n formMethod: FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n}\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst isBrowser =\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\";\nconst isServer = !isBrowser;\n\nconst defaultDetectErrorBoundary = (route: AgnosticRouteObject) =>\n Boolean(route.hasErrorBoundary);\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let detectErrorBoundary =\n init.detectErrorBoundary || defaultDetectErrorBoundary;\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n detectErrorBoundary,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(\n dataRoutes,\n init.history.location,\n init.basename\n );\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized =\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n !initialMatches.some((m) => m.route.lazy) &&\n // And we have to either have no loaders or have been provided hydrationData\n (!initialMatches.some((m) => m.route.loader) || init.hydrationData != null);\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidate()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations from their actions\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n deleteBlocker(blockerKey!);\n updateState({ blockers: new Map(router.state.blockers) });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (state.initialized) {\n return router;\n }\n\n let lazyMatches = state.matches.filter((m) => m.route.lazy);\n\n if (lazyMatches.length === 0) {\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n startNavigation(HistoryAction.Pop, state.location);\n return router;\n }\n\n // Load lazy modules, then kick off initial data load if needed\n let lazyPromises = lazyMatches.map((m) =>\n loadLazyRouteModule(m.route, detectErrorBoundary, manifest)\n );\n Promise.all(lazyPromises).then(() => {\n let initialized =\n !state.matches.some((m) => m.route.loader) ||\n init.hydrationData != null;\n if (initialized) {\n // We already have required loaderData so we can just set initialized\n updateState({ initialized: true });\n } else {\n // We still need to kick off initial data loads\n startNavigation(HistoryAction.Pop, state.location);\n }\n });\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(newState: Partial): void {\n state = {\n ...state,\n ...newState,\n };\n subscribers.forEach((subscriber) => subscriber(state));\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n for (let [key] of blockerFunctions) {\n deleteBlocker(key);\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n updateState({\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers: new Map(state.blockers),\n });\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(to, opts);\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n deleteBlocker(blockerKey!);\n updateState({ blockers: new Map(state.blockers) });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n submission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponse;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, init.basename);\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n });\n return;\n }\n\n // Short circuit if it's only a hash change and not a mutation submission\n // For example, on /page#hash and submit a
which will\n // default to a navigation to /page\n if (\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError,\n };\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n ...opts.submission,\n };\n loadingNavigation = navigation;\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.replace,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts?: { replace?: boolean }\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n ...submission,\n };\n updateState({ navigation });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n detectErrorBoundary,\n router.basename\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\n return { shortCircuited: true };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n replace?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation;\n if (!loadingNavigation) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n ...submission,\n };\n loadingNavigation = navigation;\n }\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission = submission\n ? submission\n : loadingNavigation.formMethod &&\n loadingNavigation.formAction &&\n loadingNavigation.formData &&\n loadingNavigation.formEncType\n ? {\n formMethod: loadingNavigation.formMethod,\n formAction: loadingNavigation.formAction,\n formData: loadingNavigation.formData,\n formEncType: loadingNavigation.formEncType,\n }\n : undefined;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n fetchLoadMatches,\n routesToUse,\n init.basename,\n pendingActionData,\n pendingError\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n completeNavigation(location, {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n });\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n if (!isUninterruptedRevalidation) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: fetcher && fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState({\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n });\n }\n\n pendingNavigationLoadId = ++incrementingLoadId;\n revalidatingFetchers.forEach((rf) =>\n fetchControllers.set(rf.key, pendingNavigationController!)\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n await startRedirectNavigation(state, redirect, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n\n return {\n loaderData,\n errors,\n ...(didAbortFetchLoads || revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n };\n }\n\n function getFetcher(key: string): Fetcher {\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches = matchRoutes(routesToUse, href, init.basename);\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: href })\n );\n return;\n }\n\n let { path, submission } = normalizeNavigateOptions(href, opts, true);\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, submission);\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(key, routeId, path, match, matches, submission);\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error);\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n ...submission,\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, fetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n manifest,\n detectErrorBoundary,\n router.basename\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n fetchRedirectIds.add(key);\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n ...submission,\n data: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n return startRedirectNavigation(state, actionResult, {\n isFetchActionRedirect: true,\n });\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, init.basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: actionResult.data,\n ...submission,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n fetchLoadMatches,\n routesToUse,\n init.basename,\n { [match.route.id]: actionResult.data },\n undefined // No need to send through errors since we short circuit above\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: existingFetcher && existingFetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(staleKey, revalidatingFetcher);\n fetchControllers.set(staleKey, abortController);\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(results);\n if (redirect) {\n return startRedirectNavigation(state, redirect);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: actionResult.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n\n let didAbortFetchLoads = abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n ...(didAbortFetchLoads ? { fetchers: new Map(state.fetchers) } : {}),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n // Put this fetcher into it's loading state\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n ...submission,\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n manifest,\n detectErrorBoundary,\n router.basename\n );\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n await startRedirectNavigation(state, result);\n return;\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n state.fetchers.delete(key);\n // TODO: In remix, this would reset to IDLE_NAVIGATION if it was a catch -\n // do we need to behave any differently with our non-redirect errors?\n // What if it was a non-redirect Response?\n updateState({\n fetchers: new Map(state.fetchers),\n errors: {\n [boundaryMatch.route.id]: result.error,\n },\n });\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n replace,\n isFetchActionRedirect,\n }: {\n submission?: Submission;\n replace?: boolean;\n isFetchActionRedirect?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(\n state.location,\n redirect.location,\n // TODO: This can be removed once we get rid of useTransition in Remix v2\n {\n _isRedirect: true,\n ...(isFetchActionRedirect ? { _isFetchActionRedirect: true } : {}),\n }\n );\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n // Check if this an absolute external redirect that goes to a new origin\n if (\n ABSOLUTE_URL_REGEX.test(redirect.location) &&\n isBrowser &&\n typeof window?.location !== \"undefined\"\n ) {\n let url = init.history.createURL(redirect.location);\n let isDifferentBasename =\n stripBasename(url.pathname, init.basename || \"/\") == null;\n\n if (window.location.origin !== url.origin || isDifferentBasename) {\n if (replace) {\n window.location.replace(redirect.location);\n } else {\n window.location.assign(redirect.location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType, formData } = state.navigation;\n if (!submission && formMethod && formAction && formData && formEncType) {\n submission = {\n formMethod,\n formAction,\n formEncType,\n formData,\n };\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n submission &&\n isMutationMethod(submission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...submission,\n formAction: redirect.location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // Otherwise, we kick off a new loading navigation, preserving the\n // submission info for the duration of this navigation\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation: {\n state: \"loading\",\n location: redirectLocation,\n formMethod: submission ? submission.formMethod : undefined,\n formAction: submission ? submission.formAction : undefined,\n formEncType: submission ? submission.formEncType : undefined,\n formData: submission ? submission.formData : undefined,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n detectErrorBoundary,\n router.basename\n )\n ),\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match) {\n return callLoaderOrAction(\n \"loader\",\n createClientSideRequest(init.history, f.path, request.signal),\n f.match,\n f.matches,\n manifest,\n detectErrorBoundary,\n router.basename\n );\n } else {\n let error: ErrorResult = {\n type: ResultType.error,\n error: getInternalRouterError(404, { pathname: f.path }),\n };\n return error;\n }\n }),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n request.signal,\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n request.signal,\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function setFetcherError(key: string, routeId: string, error: any) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n });\n }\n\n function deleteFetcher(key: string): void {\n if (fetchControllers.has(key)) abortFetcher(key);\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n state.fetchers.delete(key);\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): void {\n let doneKeys = [];\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n }\n }\n markFetchersDone(doneKeys);\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n state.blockers.set(key, newBlocker);\n updateState({ blockers: new Map(state.blockers) });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || ((location) => location.key);\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n inFlightDataRoutes = newRoutes;\n }\n\n router = {\n get basename() {\n return init.basename;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let detectErrorBoundary =\n opts?.detectErrorBoundary || defaultDetectErrorBoundary;\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n detectErrorBoundary,\n undefined,\n manifest\n );\n let basename = (opts ? opts.basename : null) || \"/\";\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method.toLowerCase();\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"head\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method.toLowerCase();\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"head\" && method !== \"options\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n match\n );\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error && !isRedirectResponse(e.response)) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n detectErrorBoundary,\n basename,\n true,\n isRouteRequest,\n requestContext\n );\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n detectErrorBoundary,\n basename,\n true,\n isRouteRequest,\n requestContext\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError,\n activeDeferreds\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction isSubmissionNavigation(\n opts: RouterNavigateOptions\n): opts is SubmissionNavigateOptions {\n return opts != null && \"formData\" in opts;\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n to: To,\n opts?: RouterNavigateOptions,\n isFetcher = false\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponse;\n} {\n let path = typeof to === \"string\" ? to : createPath(to);\n\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n // Create a Submission on non-GET navigations\n let submission: Submission | undefined;\n if (opts.formData) {\n submission = {\n formMethod: opts.formMethod || \"get\",\n formAction: stripHashFromPath(path),\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData: opts.formData,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n let searchParams = convertFormDataToSearchParams(opts.formData);\n // Since fetcher GET submissions only run a single loader (as opposed to\n // navigation GET submissions which run all loaders), we need to preserve\n // any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n fetchLoadMatches: Map,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n let defaultShouldRevalidate =\n // Forced revalidation due to submission, useRevalidate, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.toString() === nextUrl.toString() ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search;\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n if (match.route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n if (match.route.loader == null) {\n return false;\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n defaultShouldRevalidate:\n defaultShouldRevalidate ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate if fetcher won't be present in the subsequent render\n if (!matches.some((m) => m.route.id === f.routeId)) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData\n if (!fetcherMatches) {\n revalidatingFetchers.push({ key, ...f, matches: null, match: null });\n return;\n }\n\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n if (cancelledFetcherLoads.includes(key)) {\n revalidatingFetchers.push({\n key,\n matches: fetcherMatches,\n match: fetcherMatch,\n ...f,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // hit a static href, so they _always_ check shouldRevalidate and the\n // default is strictly if a revalidation is explicitly required (action\n // submissions, useRevalidator, X-Remix-Revalidate).\n let shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n defaultShouldRevalidate,\n });\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n matches: fetcherMatches,\n match: fetcherMatch,\n ...f,\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: Parameters[0]\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n detectErrorBoundary: DetectErrorBoundaryFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to detectErrorBoundary\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `detectErrorBoundary` function to set the `hasErrorBoundary` route\n // property since the logic will differ between frameworks.\n hasErrorBoundary: detectErrorBoundary({ ...routeToUpdate }),\n lazy: undefined,\n });\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n detectErrorBoundary: DetectErrorBoundaryFunction,\n basename = \"/\",\n isStaticRequest: boolean = false,\n isRouteRequest: boolean = false,\n requestContext?: unknown\n): Promise {\n let resultType;\n let result;\n let onReject: (() => void) | undefined;\n\n let runHandler = (handler: ActionFunction | LoaderFunction) => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([\n handler({ request, params: match.params, context: requestContext }),\n abortPromise,\n ]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let values = await Promise.all([\n runHandler(handler),\n loadLazyRouteModule(match.route, detectErrorBoundary, manifest),\n ]);\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, detectErrorBoundary, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n throw getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, data: undefined };\n }\n }\n } else {\n invariant(\n handler,\n `Could not find the ${type} to run on the \"${match.route.id}\" route`\n );\n\n result = await runHandler(handler);\n }\n\n invariant(\n result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let activeMatches = matches.slice(0, matches.indexOf(match) + 1);\n let routePathnames = getPathContributingMatches(activeMatches).map(\n (match) => match.pathnameBase\n );\n let resolvedLocation = resolveTo(\n location,\n routePathnames,\n new URL(request.url).pathname\n );\n invariant(\n createPath(resolvedLocation),\n `Unable to resolve redirect location: ${location}`\n );\n\n // Prepend the basename to the redirect location if we have one\n if (basename) {\n let path = resolvedLocation.pathname;\n resolvedLocation.pathname =\n path === \"/\" ? basename : joinPaths([basename, path]);\n }\n\n location = createPath(resolvedLocation);\n } else if (!isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\")\n ? new URL(currentUrl.protocol + location)\n : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (isRouteRequest) {\n // eslint-disable-next-line no-throw-literal\n throw {\n type: resultType || ResultType.data,\n response: result,\n };\n }\n\n let data: any;\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n data = await result.json();\n } else {\n data = await result.text();\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponse(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (result instanceof DeferredData) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType, formData } = submission;\n init.method = formMethod.toUpperCase();\n init.body =\n formEncType === \"application/x-www-form-urlencoded\"\n ? convertFormDataToSearchParams(formData)\n : formData;\n }\n\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, value instanceof File ? value.name : value);\n }\n\n return searchParams;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponse(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(results: DataResult[]): RedirectResult | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return result;\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n return (\n a.pathname === b.pathname && a.search === b.search && a.hash !== b.hash\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod {\n return validRequestMethods.has(method as FormMethod);\n}\n\nfunction isMutationMethod(method?: string): method is MutationFormMethod {\n return validMutationMethods.has(method as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signal: AbortSignal,\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\n// Note: This should match the format exported by useMatches, so if you change\n// this please also change that :) Eventually we'll DRY this up\nfunction createUseMatchesMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UseMatchesMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id] as unknown,\n handle: route.handle as unknown,\n };\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n//#endregion\n","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\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\nimport * as React from \"react\";\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction isPolyfill(x: any, y: any) {\n return (\n (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y) // eslint-disable-line no-self-compare\n );\n}\n\nconst is: (x: any, y: any) => boolean =\n typeof Object.is === \"function\" ? Object.is : isPolyfill;\n\n// Intentionally not using named imports because Rollup uses dynamic\n// dispatch for CommonJS interop named imports.\nconst { useState, useEffect, useLayoutEffect, useDebugValue } = React;\n\nlet didWarnOld18Alpha = false;\nlet didWarnUncachedGetSnapshot = false;\n\n// Disclaimer: This shim breaks many of the rules of React, and only works\n// because of a very particular set of implementation details and assumptions\n// -- change any one of them and it will break. The most important assumption\n// is that updates are always synchronous, because concurrent rendering is\n// only available in versions of React that also have a built-in\n// useSyncExternalStore API. And we only use this shim when the built-in API\n// does not exist.\n//\n// Do not assume that the clever hacks used by this hook also work in general.\n// The point of this shim is to replace the need for hacks by other libraries.\nexport function useSyncExternalStore(\n subscribe: (fn: () => void) => () => void,\n getSnapshot: () => T,\n // Note: The shim does not use getServerSnapshot, because pre-18 versions of\n // React do not expose a way to check if we're hydrating. So users of the shim\n // will need to track that themselves and return the correct value\n // from `getSnapshot`.\n getServerSnapshot?: () => T\n): T {\n if (__DEV__) {\n if (!didWarnOld18Alpha) {\n if (\"startTransition\" in React) {\n didWarnOld18Alpha = true;\n console.error(\n \"You are using an outdated, pre-release alpha of React 18 that \" +\n \"does not support useSyncExternalStore. The \" +\n \"use-sync-external-store shim will not work correctly. Upgrade \" +\n \"to a newer pre-release.\"\n );\n }\n }\n }\n\n // Read the current snapshot from the store on every render. Again, this\n // breaks the rules of React, and only works here because of specific\n // implementation details, most importantly that updates are\n // always synchronous.\n const value = getSnapshot();\n if (__DEV__) {\n if (!didWarnUncachedGetSnapshot) {\n const cachedValue = getSnapshot();\n if (!is(value, cachedValue)) {\n console.error(\n \"The result of getSnapshot should be cached to avoid an infinite loop\"\n );\n didWarnUncachedGetSnapshot = true;\n }\n }\n }\n\n // Because updates are synchronous, we don't queue them. Instead we force a\n // re-render whenever the subscribed state changes by updating an some\n // arbitrary useState hook. Then, during render, we call getSnapshot to read\n // the current value.\n //\n // Because we don't actually use the state returned by the useState hook, we\n // can save a bit of memory by storing other stuff in that slot.\n //\n // To implement the early bailout, we need to track some things on a mutable\n // object. Usually, we would put that in a useRef hook, but we can stash it in\n // our useState hook instead.\n //\n // To force a re-render, we call forceUpdate({inst}). That works because the\n // new object always fails an equality check.\n const [{ inst }, forceUpdate] = useState({ inst: { value, getSnapshot } });\n\n // Track the latest getSnapshot function with a ref. This needs to be updated\n // in the layout phase so we can access it during the tearing check that\n // happens on subscribe.\n useLayoutEffect(() => {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n\n // Whenever getSnapshot or subscribe changes, we need to check in the\n // commit phase if there was an interleaved mutation. In concurrent mode\n // this can happen all the time, but even in synchronous mode, an earlier\n // effect may have mutated the store.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribe, value, getSnapshot]);\n\n useEffect(() => {\n // Check for changes right before subscribing. Subsequent changes will be\n // detected in the subscription handler.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst });\n }\n const handleStoreChange = () => {\n // TODO: Because there is no cross-renderer API for batching updates, it's\n // up to the consumer of this library to wrap their subscription event\n // with unstable_batchedUpdates. Should we try to detect when this isn't\n // the case and print a warning in development?\n\n // The store changed. Check if the snapshot changed since the last time we\n // read from the store.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst });\n }\n };\n // Subscribe to the store and return a clean-up function.\n return subscribe(handleStoreChange);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribe]);\n\n useDebugValue(value);\n return value;\n}\n\nfunction checkIfSnapshotChanged(inst: any) {\n const latestGetSnapshot = inst.getSnapshot;\n const prevValue = inst.value;\n try {\n const nextValue = latestGetSnapshot();\n return !is(prevValue, nextValue);\n } catch (error) {\n return true;\n }\n}\n","/**\n * Inlined into the react-router repo since use-sync-external-store does not\n * provide a UMD-compatible package, so we need this to be able to distribute\n * UMD react-router bundles\n */\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\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 * @flow\n */\n\nimport * as React from \"react\";\n\nimport { useSyncExternalStore as client } from \"./useSyncExternalStoreShimClient\";\nimport { useSyncExternalStore as server } from \"./useSyncExternalStoreShimServer\";\n\nconst canUseDOM: boolean = !!(\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\"\n);\nconst isServerEnvironment = !canUseDOM;\nconst shim = isServerEnvironment ? server : client;\n\nexport const useSyncExternalStore =\n \"useSyncExternalStore\" in React\n ? ((module) => module.useSyncExternalStore)(React)\n : shim;\n","import * as React from \"react\";\nimport type {\n AgnosticRouteMatch,\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n History,\n Location,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n LazyRouteFunction,\n} from \"@remix-run/router\";\nimport type { Action as NavigationType } from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject extends NavigationContextObject {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n Router as RemixRouter,\n To,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n UNSAFE_getPathContributingMatches as getPathContributingMatches,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n DataRouteMatch,\n RelativeRoutingType,\n} from \"./context\";\nimport {\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n AwaitContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a .\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * .\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\n/**\n * Returns an imperative method for changing the location. Used by s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n React.useEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(\n activeRef.current,\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`\n );\n\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history. If this is a root navigation, then we\n // navigate to the raw basename which allows the basename to have full\n // control over the presence of a trailing slash on root links\n if (basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [basename, navigator, routePathnamesJson, locationPathname]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let dataRouterStateContext = React.useContext(DataRouterStateContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterStateContext || undefined\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own \n ErrorBoundary prop on \n <Route>\n

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

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (state.location !== props.location) {\n return {\n error: props.error,\n location: props.location,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error || state.error,\n location: state.location,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState?: RemixRouter[\"state\"]\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id]\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for the current errors: ${errors}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n let error = match.route.id ? errors?.[match.route.id] : null;\n // Only data routers handle errors\n let errorElement: React.ReactNode | null = null;\n if (dataRouterState) {\n if (match.route.ErrorBoundary) {\n errorElement = ;\n } else if (match.route.errorElement) {\n errorElement = match.route.errorElement;\n } else {\n errorElement = ;\n }\n }\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode = outlet;\n if (error) {\n children = errorElement;\n } else if (match.route.Component) {\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return {\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n };\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches() {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () =>\n matches.map((match) => {\n let { pathname, params } = match;\n // Note: This structure matches that created by createUseMatchesMatch\n // in the @remix-run/router , so if you change this please also change\n // that :) Eventually we'll DRY this up\n return {\n id: match.route.id,\n pathname,\n params,\n data: loaderData[match.route.id] as unknown,\n handle: match.route.handle as unknown,\n };\n }),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n\n let route = React.useContext(RouteContext);\n invariant(route, `useActionData must be used inside a RouteContext`);\n\n return Object.values(state?.actionData || {})[0];\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n let [blockerKey] = React.useState(() => String(++blockerId));\n\n let blockerFunction = React.useCallback(\n (args) => {\n return typeof shouldBlock === \"function\"\n ? !!shouldBlock(args)\n : !!shouldBlock;\n },\n [shouldBlock]\n );\n\n let blocker = router.getBlocker(blockerKey, blockerFunction);\n\n // Cleanup on unmount\n React.useEffect(\n () => () => router.deleteBlocker(blockerKey),\n [router, blockerKey]\n );\n\n // Prefer the blocker from state since DataRouterContext is memoized so this\n // ensures we update on blocker state updates\n return state.blockers.get(blockerKey) || blocker;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import * as React from \"react\";\nimport type {\n TrackedPromise,\n InitialEntry,\n Location,\n MemoryHistory,\n Router as RemixRouter,\n RouterState,\n To,\n LazyRouteFunction,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n AbortedDeferredError,\n createMemoryHistory,\n UNSAFE_invariant as invariant,\n parsePath,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport { useSyncExternalStore as useSyncExternalStoreShim } from \"./use-sync-external-store-shim\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n RouteMatch,\n RouteObject,\n Navigator,\n NonIndexRouteObject,\n RelativeRoutingType,\n} from \"./context\";\nimport {\n LocationContext,\n NavigationContext,\n DataRouterContext,\n DataRouterStateContext,\n AwaitContext,\n} from \"./context\";\nimport {\n useAsyncValue,\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n} from \"./hooks\";\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n}\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n}: RouterProviderProps): React.ReactElement {\n let getState = React.useCallback(() => router.state, [router]);\n\n // Sync router state to our component state to force re-renders\n let state: RouterState = useSyncExternalStoreShim(\n router.subscribe,\n getState,\n // We have to provide this so React@18 doesn't complain during hydration,\n // but we pass our serialized hydration data into the router so state here\n // is already synced with what the server saw\n getState\n );\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a