{"version":3,"file":"cb3e0f6f-620b6fda79254b446cc0.js","mappings":"4fAcA,SAASA,EAAqBC,EAAIC,GACjC,OAAiCD,EAA1BC,EAAS,CAAEC,QAAS,IAAiBD,EAAOC,SAAUD,EAAOC,QAOrE,IA+GIC,EA/GAC,EAAaL,GAAqB,SAAUE,EAAQC,GAC3CD,EAAOC,QAAkB,SAASG,EAAEC,GAAG,IAAIC,EAAE,QAAQC,EAAE,YAAYC,EAAE,OAAOC,EAAE,UAAUC,EAAE,sBAAsBC,EAAE,qBAAqBC,EAAE,qBAAqBC,EAAE,YAAYC,EAAE,SAASC,EAAE,oBAAoBC,EAAE,sDAAsDC,EAAE,OAAOC,EAAE,qBAAqBC,EAAE,aAAaC,EAAE,gBAAgBC,EAAE,oBAAoBC,EAAE,gBAAgBC,EAAE,qBAAqBC,EAAE,UAAUC,EAAE,iBAAiBC,EAAE,qBAAqBC,EAAE,kBAAkBC,EAAE,eAAeC,EAAE,eAAeC,EAAE,8BAA8BC,EAAE,mCAAmCC,EAAE,sBAAsBC,EAAE,WAAWC,EAAE,QAAQC,EAAE,OAAOC,EAAE,GAAGC,EAAE,IAAIC,EAAE,IAAIC,EAAE,GAAGC,EAAE,GAAGC,EAAE,GAAGC,EAAE,GAAGC,EAAE,GAAGC,EAAE,GAAGC,EAAE,EAAEC,EAAE,GAAGC,EAAE,GAAGC,EAAE,GAAGC,EAAE,GAAGC,EAAE,GAAGC,EAAE,GAAGC,EAAE,GAAGC,EAAE,GAAGC,EAAE,GAAGC,EAAE,GAAGC,EAAE,GAAGC,EAAE,GAAGC,GAAG,GAAGC,GAAG,IAAIC,GAAG,EAAEC,GAAG,GAAGC,GAAG,GAAGC,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIC,GAAG,GAAGC,GAAG,IAAIC,GAAG,IAAIC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,GAAGC,GAAG,GAAGC,GAAG,EAAEC,GAAG,KAAKC,IAAI,EAAEC,IAAI,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,GAAGC,GAAG,GAAGC,GAAG,GAAG,SAASC,GAAG5F,EAAEC,EAAEG,EAAEC,EAAEC,GAAG,IAAI,IAAIC,EAAEC,EAAEE,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEI,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEE,EAAE,EAAEE,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEkB,EAAE,EAAE4B,GAAG,EAAEI,GAAG,EAAEE,GAAG,EAAEC,GAAG,EAAEC,GAAG9E,EAAEyF,OAAOC,GAAGZ,GAAG,EAAEa,GAAG,GAAGC,GAAG,GAAGC,GAAG,GAAGC,GAAG,GAAGC,GAAG,GAAGC,GAAG,GAAGtD,EAAEoC,IAAI,CAAqF,GAAjF/D,EAAEf,EAAEiG,WAAWvD,GAAGA,IAAIgD,IAAMnF,EAAEE,EAAED,EAAEF,IAAI,IAAM,IAAIC,IAAEQ,EAAER,IAAIyC,EAAEb,EAAEa,GAAEvC,EAAED,EAAEF,EAAE,EAAEwE,KAAKY,MAASnF,EAAEE,EAAED,EAAEF,IAAI,EAAE,CAAC,GAAGoC,IAAIgD,KAAOpB,GAAG,IAAEsB,GAAGA,GAAGM,QAAQnG,EAAE,KAAO6F,GAAGO,OAAOV,OAAO,GAAE,CAAC,OAAO1E,GAAG,KAAKwB,EAAE,KAAKF,EAAE,KAAKT,EAAE,KAAKQ,EAAE,KAAKD,EAAE,MAAM,QAAQyD,IAAI5F,EAAEoG,OAAO1D,GAAI3B,EAAEa,EAAI,GAAG,IAAI8C,GAAG,OAAO3D,GAAG,KAAKe,EAAE,KAAKD,EAAE,KAAKD,EAAE,KAAKmB,EAAE,KAAKD,EAAE,KAAKf,EAAE,KAAKC,EAAE,KAAKY,EAAE8B,GAAG,EAAE,KAAKrC,EAAE,KAAKD,EAAE,KAAKD,EAAE,KAAKI,EAAE,MAAM,QAAQ,IAAImC,GAAG,EAAEG,GAAGnC,EAAE7B,EAAEE,EAAE2B,IAAI3B,EAAEa,EAAEiD,GAAGC,IAAI,OAAO9E,EAAEiG,WAAWpB,OAAO,KAAK1C,EAAE,KAAKC,EAAE,KAAKR,IAAIc,EAAE3B,EAAEF,EAAEgE,GAAGC,GAAG,MAAM,KAAKjC,EAAKyB,GAAG,MAAI5B,EAAE3B,EAAEF,GAAE,KAAKiB,EAAE+C,GAAGC,IAAK,OAAO/D,GAAG,KAAKe,EAAE,IAAIjB,GAAG+E,GAAGA,GAAGO,QAAQF,WAAW,GAAG5E,EAAE,EAAEwD,KAAKnC,EAAEA,EAAEoC,IAAI,CAAC,OAAO/D,EAAEf,EAAEiG,WAAWvD,IAAI,KAAKZ,EAAET,IAAI,MAAM,KAAKQ,EAAER,IAAI,MAAM,KAAK2B,EAAE,OAAOlC,EAAEd,EAAEiG,WAAWvD,EAAE,IAAI,KAAKC,EAAE,KAAKK,EAAEN,EAAE2D,GAAGvF,EAAE4B,EAAEgD,GAAG1F,GAAI,MAAM,KAAKiC,EAAElB,IAAI,KAAKgB,EAAEhB,IAAI,KAAKgC,EAAE,KAAKD,EAAE,KAAKJ,IAAIgD,IAAI1F,EAAEiG,WAAWvD,KAAK3B,KAAK,GAAG,IAAIM,EAAE,MAAMqB,IAAiF,GAAzEmD,GAAG7F,EAAEsG,UAAUzB,GAAGnC,GAAG7B,IAAIuC,KAAGvC,GAAG+E,GAAGA,GAAGM,QAAQpG,EAAE,IAAIqG,QAAQF,WAAW,IAAUpF,IAAQyB,EAAL,CAAmC,OAAzBgC,GAAG,IAAEsB,GAAGA,GAAGM,QAAQnG,EAAE,KAAWe,EAAE8E,GAAGK,WAAW,IAAI,KAAKnC,GAAG,KAAKN,GAAG,KAAKC,GAAG,KAAKhB,EAAEtC,EAAEN,EAAE,MAAM,QAAQM,EAAEsE,GAA8L,GAAvLI,IAAIgB,GAAGL,GAAG3F,EAAEM,EAAE0F,GAAG/E,EAAEZ,EAAE,IAAIuF,OAAOjB,GAAG,GAAG,IAAIK,KAAGA,GAAGe,GAAGH,QAAUd,GAAG,IAAKxE,EAAEoG,GAAG9B,GAAGmB,GAAGhB,IAAIxE,EAAEoG,GAAGtB,GAAGW,GAAG1F,EAAEN,EAAEoE,GAAGD,GAAGa,GAAG/D,EAAEZ,EAAED,GAAG2F,GAAGzF,EAAEsG,KAAK,SAAI,IAASrG,GAAK,KAAKyE,IAAIgB,GAAGzF,EAAE+F,QAAQV,UAAQ3E,EAAE,EAAE+E,GAAG,KAAMhB,GAAG,EAAE,OAAO/D,GAAG,KAAK2C,GAAGmC,GAAGA,GAAGM,QAAQ/E,EAAEuF,IAAI,KAAK5C,GAAG,KAAKN,GAAG,KAAKf,EAAEoD,GAAGD,GAAG,IAAIC,GAAG,IAAI,MAAM,KAAKtC,GAAMsC,IAAID,GAAGA,GAAGM,QAAQxF,EAAE,SAAS0E,GAAG,EAAEC,GAAG,MAAM,IAAIQ,GAAG,IAAiCA,GAA7B,IAAIzB,IAAI,IAAIA,IAAIuC,GAAG,IAAId,GAAG,GAAM,IAAIpE,EAAEoE,GAAG,IAAIA,GAAW,IAAIA,GAAG,MAAM,QAAWA,GAAGD,GAAGC,GAAG5F,IAAI8D,KAAG+B,IAAID,GAAGA,GAAG,SAASA,GAAG,QAAiBA,GAAGL,GAAG3F,EAAE0G,GAAG1G,EAAE+F,GAAGhB,IAAIiB,GAAG5F,EAAEC,EAAE,GAAI6F,IAAIF,GAAGvE,EAAE,EAAEoD,GAAG,EAAElD,EAAE,EAAE8C,GAAG,EAAEM,GAAG,EAAErD,EAAE,EAAEqE,GAAG,GAAGC,GAAG,GAAG9E,EAAEf,EAAEiG,aAAavD,GAAG,MAAM,KAAKb,EAAE,KAAKD,EAAE,IAAIiD,IAAIe,IAAItB,GAAG,EAAEsB,GAAGM,QAAQnG,EAAE,IAAI6F,IAAIO,QAAQV,QAAQ,EAA+L,OAAzL,IAAIjE,KAAMX,EAAE+E,GAAGK,WAAW,MAAMxD,GAAG5B,EAAE,IAAIA,EAAE,OAAIgE,IAAIe,GAAGA,GAAGM,QAAQ,IAAI,MAAMT,QAAUd,GAAG,QAAK,KAAUvE,EAAEoG,GAAGxB,GAAGY,GAAG/F,EAAED,EAAEqE,GAAGD,GAAG8B,GAAGL,OAAOxF,EAAEC,EAAED,KAAO,KAAK4E,IAAIe,GAAGxF,EAAE+F,QAAQV,UAAQG,GAAG,QAAc/E,EAAE+E,GAAGK,WAAW,GAAGnF,EAAE8E,GAAGK,WAAW,GAAGpF,GAAG,KAAKuC,GAAG,MAAM,KAAKd,EAAE,GAAGxB,IAAI8C,IAAI9C,IAAI+C,GAAG,CAACmC,IAAIJ,GAAG5F,EAAEoG,OAAO1D,GAAG,MAAM,QAAQ,GAAGkD,GAAGK,WAAWpB,GAAG,KAAKhC,EAAE,MAAMiD,IAAIc,GAAGhB,GAAG/E,EAAEC,EAAE8E,GAAGK,WAAW,IAAM3E,EAAE,EAAEoD,GAAG,EAAElD,EAAE,EAAE8C,GAAG,EAAEM,GAAG,EAAEgB,GAAG,GAAG7E,EAAEf,EAAEiG,aAAavD,IAAK,OAAO3B,GAAG,KAAKqB,EAAE,KAAKD,EAAE,GAAG5B,EAAEE,EAAED,EAAEF,EAAEiE,KAAK,EAAE,OAAOnD,GAAG,KAAKY,EAAE,KAAKc,EAAE,KAAKC,EAAE,KAAKT,EAAE,KAAKa,GAAG,KAAKF,EAAE,KAAKN,EAAE,KAAKO,GAAG,KAAKF,EAAE,KAAKP,EAAE,KAAKI,EAAE,KAAKD,EAAE,KAAKhB,EAAE,KAAKE,EAAE,KAAKD,EAAE,MAAM,QAAWL,EAAE,IAAEkD,GAAG,GAAMnE,IAAIyC,EAAEzC,EAAE,EAAU4D,GAAG7C,IAAI,GAAGrB,IAAIsD,IAAIqC,GAAGH,OAAO,IAAEnB,GAAG,EAAEsB,IAAI,MAAQjB,GAAGQ,GAAG,GAAEqB,GAAGzB,GAAGa,GAAG/F,EAAED,EAAEqE,GAAGD,GAAG8B,GAAGL,OAAOxF,EAAEC,EAAED,GAAG+D,GAAG,EAAEC,KAAK,MAAM,KAAKrC,EAAE,KAAKC,EAAE,GAAGtB,EAAEE,EAAED,EAAEF,IAAI,EAAE,CAAC0D,KAAK,MAAM,QAAQ,OAAOA,KAAK2B,GAAG3F,EAAEoG,OAAO1D,GAAG3B,GAAG,KAAKsB,EAAE,KAAKE,EAAE,GAAG9B,EAAEH,EAAEC,IAAI,EAAE,OAAOS,GAAG,KAAK4B,EAAE,KAAKC,EAAE,KAAKR,EAAE,KAAKE,EAAEoD,GAAG,GAAG,MAAM,QAAW5E,IAAIwB,IAAEoD,GAAG,KAAK,MAAM,KAAKvC,GAAGuC,GAAG,MAAM,MAAM,KAAKtC,GAAGsC,GAAG,MAAM,MAAM,KAAKrC,GAAGqC,GAAG,MAAM,MAAM,KAAKnD,EAAK/B,EAAEF,EAAED,IAAI,GAAG6D,GAAG,IAAES,GAAG,EAAEN,GAAG,EAAEqB,GAAG,KAAKA,IAAG,MAAM,KAAK,IAAI,GAAGlF,EAAEF,EAAED,EAAE4D,KAAK,GAAG1C,EAAE,EAAE,OAAOkB,EAAElB,GAAG,KAAK,EAAKR,IAAI0C,IAAI1D,EAAEiG,WAAWvD,EAAE,KAAKG,IAAEqB,GAAGlD,GAAE,KAAK,EAAKE,IAAIyC,KAAGO,GAAGhD,GAAG,MAAM,KAAK2B,EAAKpC,EAAEF,EAAED,IAAI,IAAEkB,EAAEkB,GAAE,MAAM,KAAKE,EAAKrC,EAAEC,EAAEC,EAAEH,IAAI,IAAEgE,GAAG,EAAEqB,IAAI,MAAK,MAAM,KAAK5C,EAAE,KAAKD,EAAK,IAAIvC,IAAEE,EAAEA,IAAIM,EAAE,EAAE,IAAIN,EAAEM,EAAEN,GAAE,MAAM,KAAKwB,EAAKxB,EAAEF,EAAEC,IAAI,GAAEF,IAAI,MAAM,KAAK4B,EAAKzB,EAAEF,EAAEC,IAAI,GAAEF,IAAI,MAAM,KAAK0B,EAAKvB,EAAEF,EAAED,IAAI,GAAEE,IAAI,MAAM,KAAKuB,EAAKtB,EAAEF,EAAED,IAAI,IAAM,IAAIgB,IAAS,EAAEN,EAAE,EAAEE,GAAQ,MAAkBG,EAAE,EAAEC,EAAE,IAAGd,KAAK,MAAM,KAAK8B,EAAK/B,EAAEC,EAAEC,EAAEH,EAAEkB,EAAED,IAAI,IAAEA,EAAE,GAAE,MAAM,KAAKoB,EAAE,KAAKK,EAAE,GAAGvC,EAAEH,EAAEE,EAAE,EAAE,MAAM,OAAOD,GAAG,KAAK,EAAE,OAAO,EAAEQ,EAAE,EAAEf,EAAEiG,WAAWvD,EAAE,IAAI,KAAK,IAAInC,EAAEyC,EAAE,MAAM,KAAK,IAAI6B,GAAGnC,EAAEnC,EAAEoC,EAAG,MAAM,KAAKA,EAAK5B,IAAIiC,GAAGhC,IAAI2B,GAAGkC,GAAG,IAAInC,IAAM,KAAK1C,EAAEiG,WAAWpB,GAAG,KAAGiB,IAAI9F,EAAEsG,UAAUzB,GAAGnC,EAAE,IAAGiD,GAAG,GAAGpF,EAAE,IAAK,GAAG,IAAIA,EAAE,CAAC,GAAG4D,GAAG1D,EAAEH,EAAEiB,IAAI,GAAGtB,IAAIsD,IAAIxC,IAAIa,EAAE,OAAOb,GAAG,KAAK6B,EAAE,KAAKO,GAAG,KAAKF,EAAE,KAAKC,GAAG,KAAKlB,EAAE,KAAKD,EAAE,GAAG,IAAIT,EAAE,CAAC,OAAON,GAAG,KAAKqB,EAAE,KAAKE,EAAE,KAAKJ,EAAE,KAAKC,EAAEuD,IAAI,KAAK,MAAM,QAAQA,GAAG,KAAKA,IAAI5E,IAAI6B,EAAE,GAAG,MAAO0B,GAAG,OAAQ,OAAOvD,GAAG,KAAKgB,EAAKP,EAAE,IAAIkB,GAAG,MAAM1B,IAAEQ,EAAE,GAAEF,IAAID,EAAE,MAAM,KAAKW,EAAK,IAAIV,IAAID,KAAGiD,GAAG,EAAEqB,IAAI,MAAM,MAAM,KAAKtD,EAAE,KAAKE,EAAE,OAAOvB,GAAG,KAAKoC,GAAG,KAAKtB,EAAE,KAAKD,EAAE,KAAKD,EAAE,KAAKgB,EAAE,KAAKS,GAAG,KAAKhB,EAAE,KAAKE,EAAE,KAAKJ,EAAE,KAAKC,EAAE,MAAM,QAAW,IAAId,IAAEgD,GAAG,EAAEqB,IAAI,OAAUC,IAAID,GAAG5E,IAAIwB,GAAGxB,IAAIsB,IAAEjB,EAAEL,IAAIG,EAAEF,EAAEA,EAAED,EAAE2B,IAAgJ,GAAxImC,GAAGiB,GAAGL,OAAOjB,GAAG,GAAK,IAAIK,IAAI,IAAIkB,GAAGN,QAAQ,IAAI5F,EAAE,GAAG4F,QAAQ,IAASxF,IAAIuD,IAAI,IAAI3D,EAAE4F,SAAStB,GAAG,EAAEmB,GAAGC,MAAM1F,EAAE,MAAGgF,GAAGhF,EAAE4G,KAAK,KAAKhB,OAAO,GAAKZ,GAAG,EAAE,CAAC,GAAG1E,EAAE,IAAIgE,IAAIlE,IAAIsD,GAAG,SAAS3D,GAAG,IAAI,IAAIC,EAAEC,EAAEE,EAAE,EAAEC,EAAEL,EAAE6F,OAAOvF,EAAE2G,MAAM5G,GAAGD,EAAEC,IAAID,EAAE,CAAC,IAAI,IAAIG,EAAEP,EAAEI,GAAG8G,MAAMzG,GAAGD,EAAE,GAAGE,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAEP,EAAEsF,OAAOnF,EAAEI,IAAIJ,EAAG,KAAG,KAAKC,GAAGT,EAAEK,EAAEG,IAAImF,SAAS/E,EAAE,GAA9B,CAAyC,GAAGF,EAAEJ,EAAE6F,WAAW7F,EAAEqF,OAAO,GAAGhF,EAAEX,EAAEmG,WAAW,GAAGpG,EAAE,GAAG,IAAIS,EAAE,OAAOE,GAAG,KAAKmC,EAAE,KAAKQ,GAAG,KAAKF,EAAE,KAAKC,GAAG,KAAKX,EAAE,KAAKR,EAAE,MAAM,QAAQlC,EAAE,IAAK,OAAOY,GAAG,KAAK+B,EAAE1C,EAAED,EAAEyF,GAAG,KAAKnC,GAAG,KAAKF,EAAE,KAAKC,GAAG,KAAKX,EAAE,KAAKP,EAAE,KAAKD,EAAE,MAAM,KAAKE,EAAEnC,EAAED,EAAEC,EAAEwF,GAAG,MAAM,KAAKzC,EAAE,OAAO,EAAE/C,EAAEmG,WAAW,GAAG,EAAEnG,EAAEmG,WAAW,IAAI,KAAK,IAAI,GAAG5B,GAAG,EAAE,CAACvE,EAAED,EAAEC,EAAEwG,UAAU,EAAE/F,EAAE,GAAG,MAAM,SAAWD,EAAE,GAAGH,EAAEG,EAAE,GAAGmF,OAAO,KAAE3F,EAAED,EAAEyF,GAAGxF,GAAG,MAAM,KAAK8C,EAAE/C,EAAE,GAAG,QAAiCC,EAAtBS,EAAE,GAAGT,EAAEiH,QAAQ,KAAK,EAAIlH,EAAEC,EAAEoG,QAAQjF,EAAE,KAAKqE,GAAG,MAAazF,EAAEC,EAAEwF,GAAIlF,GAAGN,EAAGI,EAAEF,GAAGI,EAAE8F,QAAQnG,EAAE,IAAIoG,OAAQ,OAAOjG,EAAjqB,CAAoqBL,GAAGA,EAAE8E,GAAG,QAAK,KAAUvE,EAAEoG,GAAGvB,GAAGa,GAAG3F,EAAEP,EAAEqE,GAAGD,GAAGa,GAAG5E,EAAEC,EAAED,KAAK,KAAK6F,GAAG1F,GAAGqF,OAAO,OAAOO,GAAGF,GAAGC,GAAG,GAAGD,GAAG3F,EAAEsG,KAAK,KAAK,IAAIX,GAAG,IAAI1B,GAAGF,IAAI,EAAE,CAA2B,OAAvB,IAAIE,IAAKuC,GAAGb,GAAG,KAAG5B,GAAG,GAASA,IAAI,KAAKP,GAAGmC,GAAGA,GAAGI,QAAQtF,EAAE,IAAIc,EAAE,MAAMoE,GAAG,MAAM,KAAKpC,GAAGoC,GAAGA,GAAGI,QAAQvF,EAAE,KAAKc,EAAE,YAAYqE,GAAGI,QAAQvF,EAAE,KAAKe,EAAE,MAAMoE,GAAGI,QAAQvF,EAAE,IAAIgB,EAAE,YAAYmE,GAAI5B,GAAG,GAAI,OAAO8B,GAAGF,GAAGC,GAAG,SAASQ,GAAG3G,EAAEC,EAAEC,GAAG,IAAIC,EAAEF,EAAEsG,OAAOW,MAAMxG,GAAGN,EAAED,EAAEE,EAAEF,EAAE0F,OAAOvF,EAAEN,EAAE6F,OAAO,OAAOvF,GAAG,KAAK,EAAE,KAAK,EAAE,IAAI,IAAIC,EAAE,EAAEC,EAAE,IAAIF,EAAE,GAAGN,EAAE,GAAG,IAAIO,EAAEF,IAAIE,EAAEH,EAAEG,GAAGuF,GAAGtF,EAAEJ,EAAEG,GAAGL,EAAEI,GAAGiG,OAAO,MAAM,QAAQhG,EAAE,EAAE,IAAIE,EAAE,EAAE,IAAIL,EAAE,GAAGG,EAAEF,IAAIE,EAAE,IAAI,IAAII,EAAE,EAAEA,EAAEL,IAAIK,EAAEP,EAAEK,KAAKqF,GAAG9F,EAAEW,GAAG,IAAIR,EAAEI,GAAGL,EAAEI,GAAGiG,OAAQ,OAAOnG,EAAE,SAAS0F,GAAG9F,EAAEC,EAAEC,EAAEC,GAAG,IAAIC,EAAEH,EAAEI,EAAED,EAAEiG,WAAW,GAAwC,OAAlChG,EAAE,KAAGA,GAAGD,EAAEA,EAAEmG,QAAQF,WAAW,IAAUhG,GAAG,KAAKuC,EAAE,OAAO2B,GAAGpE,GAAG,KAAK,EAAE,KAAK,EAAE,GAAG,IAAIH,EAAEuG,OAAOV,OAAO,MAAM,QAAQ,OAAOzF,EAAEkG,QAAQ3F,EAAE,KAAKX,EAAEuG,QAAQ,MAAM,KAAKtD,EAAE,GAA6B,MAAtB7C,EAAEiG,WAAW,GAAqF,OAAOrG,EAAEuG,OAAOnG,EAAEkG,QAAQ3F,EAAE,KAAKX,EAAEuG,QAA3G,GAAG9B,GAAG,GAAGF,GAAG,EAAE,OAAOnE,EAAEkG,QAAQ1F,EAAE,MAAM0F,QAAQ3F,EAAE,KAAKgF,IAA6D,QAAQ,GAAGzF,EAAEqE,GAAG,GAAGnE,EAAE+G,QAAQ,MAAM,EAAE,OAAO/G,EAAEkG,QAAQ3F,GAAGX,EAAEqG,WAAW,KAAKpD,EAAE,GAAG,MAAMjD,EAAEuG,QAAQ,OAAOvG,EAAEI,EAAE,SAAS4G,GAAGhH,EAAEC,EAAEC,EAAEC,GAAG,IAAIM,EAAEC,EAAE,EAAEC,EAAEX,EAAE,IAAIY,EAAE,EAAEX,EAAE,EAAEC,EAAE,EAAEC,EAAE,GAAG,MAAMS,EAAE,OAAO,SAASZ,GAAG,IAAIC,EAAED,EAAE6F,OAAO3F,EAAEF,EAAEmH,QAAQ,IAAI,GAAG,EAAEhH,EAAEH,EAAE0G,UAAU,EAAExG,GAAGqG,OAAOnG,EAAEJ,EAAE0G,UAAUxG,EAAED,EAAE,GAAGsG,OAAO,OAAOvG,EAAEqG,WAAW,GAAGb,IAAI,KAAK,EAAE,MAAM,KAAK3C,EAAE,GAAG,MAAM7C,EAAEqG,WAAW,IAAI,MAAM,QAAY,IAAIhG,EAAED,EAAE8G,OAAO9G,EAAE,GAAGG,IAAID,EAAE,EAA9B,IAAgCJ,EAAE,EAAED,EAAEI,EAAEwF,OAAOvF,EAAEL,EAAEC,EAAE,IAAII,EAAE,CAAC,IAAI,IAAIG,EAAEJ,EAAEC,GAAGI,EAAED,EAAEyG,MAAM1G,GAAGC,EAAEC,EAAER,IAAI,CAAC,IAAIS,EAAEF,EAAE4F,WAAW,GAAG,GAAG,IAAIb,KAAK7E,EAAE+B,GAAG/B,EAAE,IAAIA,EAAE,IAAIA,EAAE,KAAKA,IAAImC,GAAGnC,IAAIkC,GAAGpC,EAAE4F,WAAW,KAAKxD,IAAUuE,MAAMC,WAAW5G,MAAM,IAAIA,EAAE0G,QAAQ,QAAY,EAAE,OAAO1G,GAAG,IAAI,WAAW,IAAI,YAAY,IAAI,YAAY,IAAI,UAAU,IAAI,SAAS,IAAI,WAAW,IAAI,OAAO,IAAI,OAAO,IAAI,SAAS,IAAI,OAAO,IAAI,UAAU,IAAI,WAAW,IAAI,cAAc,IAAI,SAAS,IAAI,UAAU,IAAI,oBAAoB,IAAI,UAAU,IAAI,UAAU,IAAI,QAAQ,IAAI,aAAa,IAAI,WAAW,MAAM,QAAQA,GAAGgF,GAAK/E,EAAER,KAAKO,EAAGL,IAAI,IAAIE,EAAE,GAAG,KAAKI,EAAEmG,KAAK,MAAO,OAAGzG,EAAED,EAAEC,EAAE,IAAI,IAAIoE,IAAI,IAAIA,IAAIuC,GAAG3G,EAAE,GAAUyB,EAAEzB,EAAEA,EAASA,EAAz2B,CAA42BO,GAAQ,GAAG,IAAI6D,IAAI,IAAIA,KAAKuC,GAAGpG,EAAE,GAAG,OAAOA,EAAE,OAAOC,GAAG,KAAK,KAAK,OAAO,KAAKD,EAAE0F,WAAW,IAAIxE,EAAElB,EAAEA,EAAEA,EAAE,KAAK,IAAI,OAAO,MAAMA,EAAE0F,WAAW,GAAGxE,EAAElB,EAAEA,EAAEA,EAAE,KAAK,IAAI,OAAO,MAAMA,EAAE0F,WAAW,GAAGxE,EAAElB,EAAEA,EAAEA,EAAE,KAAK,KAAK,GAAG,MAAMA,EAAE0F,WAAW,GAAG,MAAM,KAAK,IAAI,KAAK,IAAI,OAAOxE,EAAElB,EAAEA,EAAE,KAAK,IAAI,OAAOkB,EAAElB,EAAEmB,EAAEnB,EAAEA,EAAE,KAAK,KAAK,KAAK,IAAI,OAAOkB,EAAElB,EAAEmB,EAAEnB,EAAEoB,EAAEpB,EAAEA,EAAE,KAAK,IAAI,OAAGA,EAAE0F,WAAW,KAAKxD,EAAShB,EAAElB,EAAEA,EAAKA,EAAEwG,QAAQ,aAAa,IAAI,EAASxG,EAAE2F,QAAQ1E,EAAE,KAAKC,EAAE,MAAMlB,EAASA,EAAE,KAAK,IAAI,GAAGA,EAAE0F,WAAW,KAAKxD,EAAE,OAAOlC,EAAE0F,WAAW,IAAI,KAAK,IAAI,OAAOxE,EAAE,OAAOlB,EAAE2F,QAAQ,QAAQ,IAAIzE,EAAElB,EAAEoB,EAAEpB,EAAE2F,QAAQ,OAAO,YAAY3F,EAAE,KAAK,IAAI,OAAOkB,EAAElB,EAAEoB,EAAEpB,EAAE2F,QAAQ,SAAS,YAAY3F,EAAE,KAAK,GAAG,OAAOkB,EAAElB,EAAEoB,EAAEpB,EAAE2F,QAAQ,QAAQ,kBAAkB3F,EAAE,OAAOkB,EAAElB,EAAEoB,EAAEpB,EAAEA,EAAE,KAAK,IAAI,OAAOkB,EAAElB,EAAEoB,EAAE,QAAQpB,EAAEA,EAAE,KAAK,KAAK,GAAG,KAAKA,EAAE0F,WAAW,GAAG,MAAM,OAAO5F,EAAEE,EAAE+F,UAAU/F,EAAEwG,QAAQ,IAAI,KAAKb,QAAQ,QAAQ,IAAIA,QAAQ,gBAAgB,WAAWzE,EAAE,WAAWpB,EAAEoB,EAAElB,EAAEoB,EAAE,YAAYtB,EAAEE,EAAE,KAAK,KAAK,OAAON,EAAEiH,KAAK3G,GAAGA,EAAE2F,QAAQlG,EAAE,IAAIyB,GAAGlB,EAAE2F,QAAQlG,EAAE,IAAI0B,GAAGnB,EAAEA,EAAE,KAAK,IAAI,OAAOD,GAAGD,EAAEE,EAAE+F,UAAU,IAAIH,QAAQY,QAAQ,KAAK,EAAE1G,EAAE4F,WAAW,GAAG5F,EAAE4F,WAAW3F,IAAI,KAAK,IAAID,EAAEE,EAAE2F,QAAQhF,EAAE,MAAM,MAAM,KAAK,IAAIb,EAAEE,EAAE2F,QAAQhF,EAAE,SAAS,MAAM,KAAK,IAAIb,EAAEE,EAAE2F,QAAQhF,EAAE,MAAM,MAAM,QAAQ,OAAOX,EAAE,OAAOkB,EAAElB,EAAEoB,EAAEtB,EAAEE,EAAE,KAAK,KAAK,IAAI,IAAIA,EAAEwG,QAAQ,SAAS,GAAG,OAAOxG,EAAE,KAAK,IAAI,OAAOD,GAAGC,EAAEX,GAAG6F,OAAO,GAAGjF,GAAGH,GAAG,KAAKE,EAAE0F,WAAW3F,GAAGC,EAAE+F,UAAU,EAAEhG,GAAGC,GAAG+F,UAAU1G,EAAEmH,QAAQ,IAAI,GAAG,GAAGZ,QAAQF,WAAW,IAAI,EAAE5F,EAAE4F,WAAW,KAAK,KAAK,IAAI,GAAG5F,EAAE4F,WAAW,GAAG,IAAI,MAAM,KAAK,IAAI1F,EAAEA,EAAE2F,QAAQ7F,EAAEoB,EAAEpB,GAAG,IAAIE,EAAE,MAAM,KAAK,IAAI,KAAK,IAAIA,EAAEA,EAAE2F,QAAQ7F,EAAEoB,GAAGjB,EAAE,IAAI,UAAU,IAAI,OAAO,IAAID,EAAE2F,QAAQ7F,EAAEoB,EAAEpB,GAAG,IAAIE,EAAE2F,QAAQ7F,EAAEsB,EAAEtB,EAAE,OAAO,IAAIE,EAAG,OAAOA,EAAE,IAAI,KAAK,IAAI,GAAGA,EAAE0F,WAAW,KAAKxD,EAAE,OAAOlC,EAAE0F,WAAW,IAAI,KAAK,IAAI,OAAO5F,EAAEE,EAAE2F,QAAQ,SAAS,IAAIzE,EAAElB,EAAEkB,EAAE,OAAOpB,EAAEsB,EAAE,QAAQtB,EAAEE,EAAE,KAAK,IAAI,OAAOkB,EAAElB,EAAEoB,EAAE,aAAapB,EAAE2F,QAAQ7E,EAAE,IAAId,EAAE,QAAQ,OAAOkB,EAAElB,EAAEoB,EAAE,iBAAiBpB,EAAE2F,QAAQ,gBAAgB,IAAIA,QAAQ7E,EAAE,IAAId,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,GAAGA,EAAE0F,WAAW,KAAKxD,GAAG,MAAMlC,EAAE0F,WAAW,GAAG,MAAM,KAAK,IAAI,KAAK,IAAI,IAAG,IAAO1E,EAAE2F,KAAKtH,GAAG,OAAG,OAAOS,EAAET,EAAE0G,UAAU1G,EAAEmH,QAAQ,KAAK,IAAId,WAAW,GAAUW,GAAGhH,EAAEsG,QAAQ,UAAU,kBAAkBrG,EAAEC,EAAEC,GAAGmG,QAAQ,kBAAkB,YAAwB3F,EAAE2F,QAAQ7F,EAAEoB,EAAEpB,GAAGE,EAAE2F,QAAQ7F,EAAEqB,EAAErB,EAAE6F,QAAQ,QAAQ,KAAK3F,EAAE,MAAM,KAAK,IAAI,GAAGA,EAAEkB,EAAElB,GAAG,MAAMA,EAAE0F,WAAW,GAAGtE,EAAEpB,EAAE,IAAIA,EAAET,EAAEC,IAAI,KAAK,MAAMQ,EAAE0F,WAAW,KAAK1F,EAAEwG,QAAQ,YAAY,IAAI,EAAE,OAAOxG,EAAE+F,UAAU,EAAE/F,EAAEwG,QAAQ,IAAI,IAAI,GAAGb,QAAQhG,EAAE,KAAKuB,EAAE,MAAMlB,EAAE,OAAOA,EAAE,SAASoG,GAAG/G,EAAEC,GAAG,IAAIC,EAAEF,EAAEmH,QAAQ,IAAIlH,EAAE,IAAI,KAAKE,EAAEH,EAAE0G,UAAU,EAAE,IAAIzG,EAAEC,EAAE,IAAIE,EAAEJ,EAAE0G,UAAUxG,EAAE,EAAEF,EAAE6F,OAAO,GAAG,OAAOb,GAAG,IAAI/E,EAAEE,EAAEA,EAAEmG,QAAQ5E,EAAE,MAAMtB,EAAEH,GAAG,SAAS6G,GAAG9G,EAAEC,GAAG,IAAIC,EAAE8G,GAAG/G,EAAEA,EAAEoG,WAAW,GAAGpG,EAAEoG,WAAW,GAAGpG,EAAEoG,WAAW,IAAI,OAAOnG,IAAID,EAAE,IAAIC,EAAEoG,QAAQ9E,EAAE,YAAYkF,UAAU,GAAG,IAAIzG,EAAE,IAAI,SAAS2G,GAAG5G,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,GAAG,IAAI,IAAIC,EAAEC,EAAE,EAAEC,EAAEX,EAAEU,EAAEoE,KAAKpE,EAAE,OAAOD,EAAEoE,GAAGnE,GAAG4G,KAAKvB,GAAGhG,EAAEY,EAAEV,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,IAAI,UAAK,EAAO,KAAK,EAAM,KAAK,EAAK,KAAK,KAAK,MAAM,QAAQG,EAAEF,EAAG,GAAGE,IAAIX,EAAE,OAAOW,EAAE,SAAS6F,GAAGzG,EAAEC,EAAEC,EAAEC,GAAG,IAAI,IAAIC,EAAEH,EAAE,EAAEG,EAAEF,IAAIE,EAAE,OAAOD,EAAEkG,WAAWjG,IAAI,KAAKgD,EAAE,GAAGpD,IAAI+C,GAAK5C,EAAEkG,WAAWjG,EAAE,KAAK2C,GAAG9C,EAAE,IAAIG,EAAE,OAAOA,EAAE,EAAE,MAAM,KAAKmC,EAAE,GAAGvC,IAAIoD,EAAE,OAAOhD,EAAE,EAAE,OAAOA,EAAE,SAAS2F,GAAG/F,GAAG,IAAI,IAAIC,KAAKD,EAAE,CAAC,IAAIE,EAAEF,EAAEC,GAAG,OAAOA,GAAG,IAAI,WAAWuF,GAAG,EAAEtF,EAAE,MAAM,IAAI,SAASuE,GAAG,EAAEvE,EAAE,MAAM,IAAI,UAAUqE,GAAG,EAAErE,EAAE,MAAM,IAAI,WAAWwE,GAAG,EAAExE,EAAE,MAAM,IAAI,YAAYyE,GAAG,EAAEzE,EAAE,MAAM,IAAI,WAAW0E,GAAG,EAAE1E,EAAE,MAAM,IAAI,SAAY8E,GAAG,KAAM9E,EAAe,mBAAmBA,EAAEsE,GAAG,GAAOA,GAAG,EAAEQ,GAAG9E,GAApDsE,GAAG,GAAqD,OAAOuB,GAAG,SAASC,GAAG/F,EAAEC,GAAG,QAAG,IAASsH,MAAMA,KAAKC,cAAczB,GAAG,OAAOhG,EAAEC,GAAG,IAAIG,EAAEH,EAAEI,EAAED,EAAEiG,WAAW,GAAMhG,EAAE,KAAGA,GAAGD,EAAEA,EAAEmG,QAAQF,WAAW,IAAMb,GAAG,IAAEC,GAAGrF,EAAEkG,QAAQzF,EAAER,IAAIgC,EAAE,GAAG,MAAQhC,EAAE,EAAE,IAAIkE,GAAGoB,GAAGvF,EAAOsF,GAAGtF,EAAE,IAAIE,EAAEC,EAAE,CAACoF,IAAOZ,GAAG,QAAK,KAAUzE,EAAEsG,GAAG1B,GAAGhF,EAAEK,EAAEA,EAAE8D,GAAGD,GAAG,EAAE,EAAE,EAAE,KAAK,iBAAiB9D,IAAEJ,EAAEI,GAAE,IAAIE,EAAEoF,GAAGf,GAAGtE,EAAEL,EAAE,EAAE,GAAwF,OAAlF6E,GAAG,QAAK,KAAUzE,EAAEsG,GAAG3B,GAAGzE,EAAED,EAAEA,EAAE8D,GAAGD,GAAG5D,EAAEqF,OAAO,EAAE,EAAE,KAAK,iBAAiBrF,EAAEF,KAAGD,EAAE,GAASoF,GAAG,GAAGE,GAAG,GAAGD,GAAG,GAAGpB,GAAG,EAAED,GAAG,EAAED,GAAG,EAAEM,GAAGrE,GAAG,EAAEG,EAAEA,EAAE8F,QAAQnG,EAAE,IAAImG,QAAQrF,EAAE,IAAIqF,QAAQpF,EAAE,MAAMoF,QAAQnF,EAAE,MAAMmF,QAAQlF,EAAE,KAAmP,OAA3O4E,GAAG0B,IAAI,SAAS1H,EAAEC,GAAG,OAAOA,GAAG,UAAK,EAAO,KAAK,KAAK8E,GAAGD,GAAGe,OAAO,EAAE,MAAM,QAAQ,GAAG,mBAAmB5F,EAAE6E,GAAGC,MAAM9E,OAAO,GAAG,iBAAiBA,EAAE,IAAI,IAAIC,EAAE,EAAEC,EAAEF,EAAE4F,OAAO3F,EAAEC,IAAID,EAAEF,EAAEC,EAAEC,SAASqF,GAAG,IAAItF,EAAG,OAAOD,GAAGgG,GAAG2B,IAAI5B,QAAG,IAAS9F,GAAE8F,GAAG9F,GAAU+F,GAAvtXhG,CAAE,SAI1B4H,EAAkBlI,GAAqB,SAAUE,EAAQC,GAE1DD,EAAM,QAGD,SAAUiI,GAChB,IAAIC,EAAY,QACZC,EAASD,EAAU,IAEvB,SAASE,EAASC,GACjB,GAAIA,EACH,IACCJ,EAAWI,EAAQ,KAClB,MAAOjI,KAGX,OAAO,SAAoBkI,EAASC,EAASC,EAAWC,EAASC,EAAMC,EAAQ1C,EAAQ2C,EAAIC,EAAOC,GACjG,OAAQR,GAEP,KAAK,EAEJ,GAAc,IAAVO,GAAyC,KAA1BN,EAAQ9B,WAAW,GACrC,OAAOwB,EAAWM,EAAQ,KAAM,GACjC,MAED,KAAK,EACJ,GAAW,IAAPK,EACH,OAAOL,EAAUL,EAClB,MAED,KAAK,EACJ,OAAQU,GAEP,KAAK,IACL,KAAK,IACJ,OAAOX,EAAWO,EAAU,GAAGD,GAAU,GAC1C,QACC,OAAOA,GAAkB,IAAPO,EAAWZ,EAAY,IAE5C,KAAM,EACLK,EAAQjB,MAAMa,GAAQY,QAAQX,SAO/BY,EAAe,CACjBC,wBAAyB,EACzBC,kBAAmB,EACnBC,iBAAkB,EAClBC,iBAAkB,EAClBC,QAAS,EACTC,aAAc,EACdC,gBAAiB,EACjBC,YAAa,EACbC,QAAS,EACTC,KAAM,EACNC,SAAU,EACVC,aAAc,EACdC,WAAY,EACZC,aAAc,EACdC,UAAW,EACXC,QAAS,EACTC,WAAY,EACZC,YAAa,EACbC,aAAc,EACdC,WAAY,EACZC,cAAe,EACfC,eAAgB,EAChBC,gBAAiB,EACjBC,UAAW,EACXC,cAAe,EACfC,aAAc,EACdC,iBAAkB,EAClBC,WAAY,EACZC,WAAY,EACZC,QAAS,EACTC,MAAO,EACPC,QAAS,EACTC,QAAS,EACTC,OAAQ,EACRC,OAAQ,EACRC,KAAM,EACNC,gBAAiB,EAEjBC,YAAa,EACbC,aAAc,EACdC,YAAa,EACbC,gBAAiB,EACjBC,iBAAkB,EAClBC,iBAAkB,EAClBC,cAAe,EACfC,YAAa,GAGXC,EAAU,SAACC,EAAMC,GACpBA,EAAOA,GAAQC,EAAQD,KACvB,IAAME,EAASH,EAAKI,WAAW,KAAO,GAAsB,IAAhBJ,EAAK9F,OAAe,IAAM,KAChEmG,EAAMJ,EAAKzE,QAAQ2E,EAASH,GAC5BM,EAAgBL,EAAKzE,QAAQ,MACnC,OAAgB,IAAT6E,KAAkC,IAAnBC,GAA8BD,EAAMC,IAGrDC,EAAML,GAqHZ,SAASM,EAAgBC,GACxB,IAAMC,EAxFP,SAAuBD,GACtB,IAAmB,IAAftM,EACH,OAAO,EAGR,GAAI4L,EAAQ,cACXA,EAAQ,eACRA,EAAQ,mBACR,OAAO,EAGR,GAAIA,EAAQ,aACX,OAAO,EAGR,GAAIU,IAAWA,EAAOE,QAAwB,IAAfxM,EAC9B,OAAO,EAGR,IAAMyM,EAAMzM,EAAa,EAAI,EAE7B,GAAyB,UAArB+L,EAAQW,SAAsB,CAOjC,IAAMC,EAAYC,IAAAA,UAAaxF,MAAM,KACrC,OACCyF,OAAOd,EAAQe,SAASC,KAAK3F,MAAM,KAAK,KAAO,GAC/CyF,OAAOF,EAAU,KAAO,IACxBE,OAAOF,EAAU,KAAO,MAEjBE,OAAOF,EAAU,KAAO,MAAQ,EAAI,EAGrC,EAGR,GAAI,OAAQP,EACX,MAAI,CAAC,SAAU,WAAY,WAAY,aAAaY,MAAK,SAAAC,GAAI,OAAIA,KAAQb,MAAwB,aAAhBA,EAAIc,QAC7E,EAGDT,EAGR,GAAI,qBAAsBL,EACzB,MAAO,gCAAgC5E,KAAK4E,EAAIe,kBAAoB,EAAI,EAGzE,GAAsB,cAAlBf,EAAIgB,UACP,OAAO,EAGR,GAAI,iBAAkBhB,EAAK,CAC1B,IAAMiB,EAAUC,UAAUlB,EAAImB,sBAAwB,IAAInG,MAAM,KAAK,GAAI,IAEzE,OAAQgF,EAAIoB,cACX,IAAK,YACJ,OAAOH,GAAW,EAAI,EAAI,EAC3B,IAAK,iBACJ,OAAO,GAKV,MAAI,iBAAiB7F,KAAK4E,EAAIqB,MACtB,EAGJ,8DAA8DjG,KAAK4E,EAAIqB,OAIvE,cAAerB,EAHX,EAQAK,EAOMiB,CAAcpB,GAC5B,OAtGD,SAAwBC,GACvB,OAAc,IAAVA,GAIG,CACNA,MAAAA,EACAoB,UAAU,EACVC,OAAQrB,GAAS,EACjBsB,OAAQtB,GAAS,GA6FXuB,CAAevB,GApHnBX,EAAQ,aACXA,EAAQ,cACRA,EAAQ,eACR5L,GAAa,GACH4L,EAAQ,UAClBA,EAAQ,WACRA,EAAQ,eACRA,EAAQ,mBACR5L,GAAa,GAEV,gBAAiBoM,IACpBpM,EAAwC,IAA3BoM,EAAI2B,YAAYhI,QAAkD,IAAlCuH,SAASlB,EAAI2B,YAAa,KA4GxE,IAAIC,EAAkB,CACrBN,cAAerB,EACf4B,OAAQ5B,EAAgBN,EAAQkC,QAChCC,OAAQ7B,EAAgBN,EAAQmC,SAG7BC,EAAkB,IAAI5H,WAAW,GACjC6H,EAAmB,IAAI7H,WAAW,GAClC8H,EAAc,IAAI9H,WAAW,GAC7B+H,EAAc,IAAI/H,WAAW,GAC7BgI,EAAY,KAAKhI,WAAW,GAC5BiI,EAAQ,IAAIjI,WAAW,GACvBkI,EAAQ,IAAIlI,WAAW,GACvBmI,EAAQ,IAAInI,WAAW,GACvBoI,EAAO,IAAIpI,WAAW,GAoPtBqI,EAAO,SAASA,EAAKC,EAAOC,EAAIC,GAClC,IAAIvO,EAAGwO,EAAKjC,EAAMkC,EAElB,IAAKzO,EAAI,EAAGwO,EAAMH,EAAM9I,OAAQvF,EAAIwO,EAAKxO,GAAK,EAC5CuM,EAAO8B,EAAMrO,GACRuO,IACHE,EAASH,EAAG/B,EAAMvM,EAAGqO,KAIV,IAAXI,GACc,aAAdlC,EAAKmC,MACL/H,MAAMgI,QAAQpC,EAAK8B,QAEnBD,EAAK7B,EAAK8B,MAAOC,EAAIC,GAGnBA,GACFD,EAAG/B,EAAMvM,EAAGqO,IAKlB,SAASO,EAAcrC,EAAMsC,GAC3B,IAEIC,EACAC,EAHAL,EAAOnC,EAAKmC,KACZM,EAAQzC,EAAKyC,MAIjB,OAAIH,QAA4CI,KAAjCF,EAAeF,EAAOtC,IAC5BwC,EACW,SAATL,GAA4B,UAATA,EACrBM,EACW,WAATN,GACTI,EAAMvC,EAAK2C,OAAS,IACPF,GAASzC,EAAK4C,SAAW,GAAKL,GACzB,YAATJ,EACF,KAAOM,GAASzC,EAAK4C,SAAW,GAAK,MAC1B,QAATT,GACDnC,EAAK6C,QAAU,IAAMJ,GAASzC,EAAK8C,OAAS,IAC3C1I,MAAMgI,QAAQpC,EAAK8B,QAC5BS,EAAMQ,EAAU/C,EAAK8B,OACR,aAATK,EACKI,EAGPE,EACA,KACCzC,EAAK6C,QAAU,IAChBN,GACCvC,EAAK8C,OAAS,KACd9C,EAAK4C,SAAW,GAAK,MAGnBH,EAGT,SAASM,EAAUjB,EAAOQ,GACxB,IAAIJ,EAAQzO,EAEZ,GAAI2G,MAAMgI,QAAQN,GAAQ,CAExB,IADAI,EAAS,GACJzO,EAAIqO,EAAM9I,OAAS,GAAIvF,EAAGA,GAAK,EAClCyO,EAASG,EAAcP,EAAMrO,GAAI6O,GAAUJ,EAE7C,OAAOA,EAET,OAAOG,EAAcP,EAAOQ,GAG9B,IAAIU,EAAcD,EAEdE,EAAQ,IAAIzJ,WAAW,GACvB0J,EAAO,IAAI1J,WAAW,GACtB2J,EAAM,IAAI3J,WAAW,GACrB4J,EAAM,IAAI5J,WAAW,GACrB6J,EAAM,IAAI7J,WAAW,GA8CzB,SAAS8J,EAAYb,GACnB,OAAI9H,gBAAgB2I,GAClB3I,KAAKmH,MA9WG,SAASyB,GAgBnB,IAfA,IAGIC,EAAMb,EAAOc,EAAMC,EAAOC,EAAQC,EAAWC,EAM7CC,EATAC,EAAS,GACTtB,EAAQc,EAGRpE,EAAM,EACN6E,EAAOvB,EAAMjJ,WAAW2F,GACxB8C,EAAMQ,EAAMzJ,OACZiL,EAAQ,CAAC,CAAEnC,MAAOiC,IAClBG,EAAW,EAGXC,EAAO,GACPtB,EAAS,GACTC,EAAQ,GAEL3D,EAAM8C,GAEX,GAAI+B,GAAQ,GAAI,CACdR,EAAOrE,EACP,GACEqE,GAAQ,EACRQ,EAAOvB,EAAMjJ,WAAWgK,SACjBQ,GAAQ,IACjBN,EAAQjB,EAAM2B,MAAMjF,EAAKqE,GAEzBC,EAAOM,EAAOA,EAAO/K,OAAS,GAC1BgL,IAAS3C,GAAoB6C,EAC/BpB,EAAQY,EACCD,GAAsB,QAAdA,EAAKtB,KACtBsB,EAAKX,MAAQY,EAEbM,IAAStC,GACTsC,IAASrC,GACRqC,IAASvC,GAASgB,EAAMjJ,WAAWgK,EAAO,KAAO5B,EAElDiB,EAASa,EAETK,EAAOM,KAAK,CACVlC,KAAM,QACNmC,YAAanF,EACbsD,MAAOiB,IAIXvE,EAAMqE,OAGD,GAAIQ,IAAS1C,GAAe0C,IAASzC,EAAa,CACvDiC,EAAOrE,EAEPuE,EAAQ,CACNvB,KAAM,SACNmC,YAAanF,EACbwD,MAJFA,EAAQqB,IAAS1C,EAAc,IAAM,KAMrC,GAGE,GAFAqC,GAAS,IACTH,EAAOf,EAAMnI,QAAQqI,EAAOa,EAAO,IAGjC,IADAI,EAAYJ,EACLf,EAAMjJ,WAAWoK,EAAY,KAAOpC,GACzCoC,GAAa,EACbD,GAAUA,OAIZH,GADAf,GAASE,GACI3J,OAAS,EACtB0K,EAAMd,UAAW,QAEZe,GACTD,EAAMjB,MAAQA,EAAM2B,MAAMjF,EAAM,EAAGqE,GAEnCO,EAAOM,KAAKX,GACZvE,EAAMqE,EAAO,EACbQ,EAAOvB,EAAMjJ,WAAW2F,QAGnB,GAAI6E,IAASvC,GAASgB,EAAMjJ,WAAW2F,EAAM,KAAOyC,EACzD8B,EAAQ,CACNvB,KAAM,UACNmC,YAAanF,IAID,KADdqE,EAAOf,EAAMnI,QAAQ,KAAM6E,MAEzBuE,EAAMd,UAAW,EACjBY,EAAOf,EAAMzJ,QAGf0K,EAAMjB,MAAQA,EAAM2B,MAAMjF,EAAM,EAAGqE,GACnCO,EAAOM,KAAKX,GAEZvE,EAAMqE,EAAO,EACbQ,EAAOvB,EAAMjJ,WAAW2F,QAGnB,GAAI6E,IAASvC,GAASuC,IAAStC,GAASsC,IAASrC,EACtD+B,EAAQjB,EAAMtD,GAEd4E,EAAOM,KAAK,CACVlC,KAAM,MACNmC,YAAanF,EAAM0D,EAAO7J,OAC1ByJ,MAAOiB,EACPb,OAAQA,EACRC,MAAO,KAETD,EAAS,GAET1D,GAAO,EACP6E,EAAOvB,EAAMjJ,WAAW2F,QAGnB,GAAIiC,IAAoB4C,EAAM,CAEnCR,EAAOrE,EACP,GACEqE,GAAQ,EACRQ,EAAOvB,EAAMjJ,WAAWgK,SACjBQ,GAAQ,IASjB,GARAN,EAAQ,CACNvB,KAAM,WACNmC,YAAanF,EAAMgF,EAAKnL,OACxByJ,MAAO0B,EACPtB,OAAQJ,EAAM2B,MAAMjF,EAAM,EAAGqE,IAE/BrE,EAAMqE,EAEO,QAATW,GAAkBH,IAAS1C,GAAe0C,IAASzC,EAAa,CAClEiC,GAAQ,EACR,GAGE,GAFAG,GAAS,IACTH,EAAOf,EAAMnI,QAAQ,IAAKkJ,EAAO,IAG/B,IADAI,EAAYJ,EACLf,EAAMjJ,WAAWoK,EAAY,KAAOpC,GACzCoC,GAAa,EACbD,GAAUA,OAIZH,GADAf,GAAS,KACIzJ,OAAS,EACtB0K,EAAMd,UAAW,QAEZe,GAETE,EAAgBL,EAChB,GACEK,GAAiB,EACjBG,EAAOvB,EAAMjJ,WAAWqK,SACjBG,GAAQ,IAEfN,EAAM5B,MADJ3C,IAAQ0E,EAAgB,EACZ,CACZ,CACE1B,KAAM,OACNmC,YAAanF,EACbsD,MAAOA,EAAM2B,MAAMjF,EAAK0E,EAAgB,KAI9B,GAEZH,EAAMd,UAAYiB,EAAgB,IAAML,GAC1CE,EAAMZ,MAAQ,GACdY,EAAM5B,MAAMuC,KAAK,CACflC,KAAM,QACNmC,YAAaT,EAAgB,EAC7BpB,MAAOA,EAAM2B,MAAMP,EAAgB,EAAGL,MAGxCE,EAAMZ,MAAQL,EAAM2B,MAAMP,EAAgB,EAAGL,GAE/CrE,EAAMqE,EAAO,EACbQ,EAAOvB,EAAMjJ,WAAW2F,GACxB4E,EAAOM,KAAKX,QAEZQ,GAAY,EACZR,EAAMZ,MAAQ,GACdiB,EAAOM,KAAKX,GACZO,EAAMI,KAAKX,GACXK,EAASL,EAAM5B,MAAQ,GACvBgC,EAASJ,EAEXS,EAAO,QAGF,GAAI9C,IAAqB2C,GAAQE,EACtC/E,GAAO,EACP6E,EAAOvB,EAAMjJ,WAAW2F,GAExB2E,EAAOhB,MAAQA,EACfA,EAAQ,GACRoB,GAAY,EACZD,EAAMM,MAENR,GADAD,EAASG,EAAMC,IACCpC,UAGX,CACL0B,EAAOrE,EACP,GACM6E,IAASxC,IACXgC,GAAQ,GAEVA,GAAQ,EACRQ,EAAOvB,EAAMjJ,WAAWgK,SAExBA,EAAOvB,KAEL+B,GAAQ,IACRA,IAAS1C,GACT0C,IAASzC,GACTyC,IAAStC,GACTsC,IAASrC,GACTqC,IAASvC,GACTuC,IAAS5C,GACR4C,IAAS3C,GAAoB6C,IAGlCR,EAAQjB,EAAM2B,MAAMjF,EAAKqE,GAErBpC,IAAoB4C,EACtBG,EAAOT,EAEPK,EAAOM,KAAK,CACVlC,KAAM,OACNmC,YAAanF,EACbsD,MAAOiB,IAIXvE,EAAMqE,EAIV,IAAKrE,EAAM8E,EAAMjL,OAAS,EAAGmG,EAAKA,GAAO,EACvC8E,EAAM9E,GAAKyD,UAAW,EAGxB,OAAOqB,EAAM,GAAGnC,MA+HD0C,CAAM/B,GACZ9H,MAEF,IAAI2I,EAAYb,GAGzBa,EAAYmB,UAAUC,SAAW,WAC/B,OAAOtK,MAAMgI,QAAQzH,KAAKmH,OAASkB,EAAYrI,KAAKmH,OAAS,IAG/DwB,EAAYmB,UAAU5C,KAAO,SAASE,EAAIC,GAExC,OADAH,EAAKlH,KAAKmH,MAAOC,EAAIC,GACdrH,MAGT2I,EAAYqB,KA7DD,SAASlC,GAQlB,IAPA,IAKIuB,EALA7E,EAAM,EACNnG,EAASyJ,EAAMzJ,OACf4L,GAAS,EACTC,GAAU,EACVC,GAAiB,EAGd3F,EAAMnG,GAAQ,CAGnB,IAFAgL,EAAOvB,EAAMjJ,WAAW2F,KAEZ,IAAM6E,GAAQ,GACxBc,GAAiB,OACZ,GAAId,IAASZ,GAAOY,IAASX,EAAK,CACvC,GAAIwB,GAAU,EACZ,MAEFA,EAAS1F,OACJ,GAAI6E,IAASb,EAAK,CACvB,GAAIyB,EACF,MAEFA,GAAS,MACJ,IAAIZ,IAASd,GAAQc,IAASf,EAKnC,MAJA,GAAY,IAAR9D,EACF,MAMJA,GAAO,EAKT,OAFI0F,EAAS,IAAM1F,GAAKA,MAEjB2F,GACH,CACEC,OAAQtC,EAAM2B,MAAM,EAAGjF,GACvBwF,KAAMlC,EAAM2B,MAAMjF,KAwB1BmE,EAAYzB,KAAOA,EAEnByB,EAAYP,UAAYC,EAExB,IA9nBoCrP,EA8nBhCqR,EAAM1B,EAEN2B,EAAQ,UACRC,EAAS,UACTC,EAAO,UACPC,EAAQ,UACRC,EAAS,UACTC,EAAM,UACNC,EAAS,UACTC,EAAU,UACVC,EAAQ,UACRC,EAAO,UACPC,GAAQ,UACRC,GAAS,UACTC,GAAO,UACPC,GAAO,UACPC,GAAO,UACPC,GAAO,UACPC,GAAS,UACTC,GAAY,UACZC,GAAe,UACfC,GAAa,UACbC,GAAQ,UACRC,GAAQ,UACRC,GAAS,UACTC,GAAiB,UACjBC,GAAa,UACbC,GAAQ,UACRC,GAAY,UACZC,GAAY,UACZC,GAAa,UACbC,GAAY,UACZC,GAAQ,UACRC,GAAiB,UACjBC,GAAW,UACXC,GAAU,UACVC,GAAW,UACXC,GAAW,UACXC,GAAgB,UAChBC,GAAW,UACXC,GAAY,UACZC,GAAW,UACXC,GAAY,UACZC,GAAc,UACdC,GAAiB,UACjBC,GAAa,UACbC,GAAa,UACbC,GAAU,UACVC,GAAa,UACbC,GAAe,UACfC,GAAgB,UAChBC,GAAgB,UAChBC,GAAgB,UAChBC,GAAgB,UAChBC,GAAa,UACbC,GAAW,UACXC,GAAc,UACdC,GAAU,UACVC,GAAU,UACVC,GAAa,UACbC,GAAY,UACZC,GAAc,UACdC,GAAc,UACdC,GAAY,UACZC,GAAa,UACbC,GAAO,UACPC,GAAY,UACZC,GAAc,UACdC,GAAO,UACPC,GAAW,UACXC,GAAU,UACVC,GAAY,UACZC,GAAS,UACTC,GAAQ,UACRC,GAAQ,UACRC,GAAW,UACXC,GAAgB,UAChBC,GAAY,UACZC,GAAe,UACfC,GAAY,UACZC,GAAa,UACbC,GAAY,UACZC,GAAuB,UACvBC,GAAY,UACZC,GAAa,UACbC,GAAY,UACZC,GAAY,UACZC,GAAc,UACdC,GAAgB,UAChBC,GAAe,UACfC,GAAiB,UACjBC,GAAiB,UACjBC,GAAiB,UACjBC,GAAc,UACdC,GAAY,UACZC,GAAQ,UACRC,GAAmB,UACnBC,GAAa,UACbC,GAAe,UACfC,GAAe,UACfC,GAAiB,UACjBC,GAAkB,UAClBC,GAAoB,UACpBC,GAAkB,UAClBC,GAAkB,UAClBC,GAAe,UACfC,GAAY,UACZC,GAAY,UACZC,GAAW,UACXC,GAAc,UACdC,GAAU,UACVC,GAAY,UACZC,GAAY,UACZC,GAAS,UACTC,GAAgB,UAChBC,GAAY,UACZC,GAAgB,UAChBC,GAAgB,UAChBC,GAAa,UACbC,GAAY,UACZC,GAAO,UACPC,GAAO,UACPC,GAAO,UACPC,GAAa,UACbC,GAAY,UACZC,GAAY,UACZC,GAAc,UACdC,GAAS,UACTC,GAAa,UACbC,GAAW,UACXC,GAAW,UACXC,GAAS,UACTC,GAAU,UACVC,GAAY,UACZC,GAAY,UACZC,GAAY,UACZC,GAAO,UACPC,GAAc,UACdC,GAAY,UACZC,GAAM,UACNC,GAAU,UACVC,GAAS,UACTC,GAAY,UACZC,GAAS,UACTC,GAAQ,UACRC,GAAa,UACbC,GAAc,UACdC,GAAgB,UAChBC,GAAS,CACZlJ,MAAOA,EACPC,OAAQA,EACRC,KAAMA,EACNC,MAAOA,EACPC,OAAQA,EACRC,IAAKA,EACLC,OAAQA,EACRC,QAASA,EACTC,MAAOA,EACPC,KAAMA,EACNC,MAAOA,GACPC,OAAQA,GACRC,KAAMA,GACNC,KAAMA,GACNC,KAAMA,GACNC,KAAMA,GACNC,OAAQA,GACRC,UAAWA,GACXC,aAAcA,GACdC,WAAYA,GACZC,MAAOA,GACPC,MAAOA,GACPC,OAAQA,GACRC,eAAgBA,GAChBC,WAAYA,GACZC,MAAOA,GACPC,UAAWA,GACXC,UAAWA,GACXC,WAAYA,GACZC,UAAWA,GACXC,MAAOA,GACPC,eAAgBA,GAChBC,SAAUA,GACVC,QAASA,GACTC,SAAUA,GACVC,SAAUA,GACVC,cAAeA,GACfC,SAAUA,GACVC,UAAWA,GACXC,SAAUA,GACVC,UAAWA,GACXC,YAAaA,GACbC,eAAgBA,GAChBC,WAAYA,GACZC,WAAYA,GACZC,QAASA,GACTC,WAAYA,GACZC,aAAcA,GACdC,cAAeA,GACfC,cAAeA,GACfC,cAAeA,GACfC,cAAeA,GACfC,WAAYA,GACZC,SAAUA,GACVC,YAAaA,GACbC,QAASA,GACTC,QAASA,GACTC,WAAYA,GACZC,UAAWA,GACXC,YAAaA,GACbC,YAAaA,GACbC,UAAWA,GACXC,WAAYA,GACZC,KAAMA,GACNC,UAAWA,GACXC,YAAaA,GACbC,KAAMA,GACNC,SAAUA,GACVC,QAASA,GACTC,UAAWA,GACXC,OAAQA,GACRC,MAAOA,GACPC,MAAOA,GACPC,SAAUA,GACVC,cAAeA,GACfC,UAAWA,GACXC,aAAcA,GACdC,UAAWA,GACXC,WAAYA,GACZC,UAAWA,GACXC,qBAAsBA,GACtBC,UAAWA,GACXC,WAAYA,GACZC,UAAWA,GACXC,UAAWA,GACXC,YAAaA,GACbC,cAAeA,GACfC,aAAcA,GACdC,eAAgBA,GAChBC,eAAgBA,GAChBC,eAAgBA,GAChBC,YAAaA,GACbC,UAAWA,GACXC,MAAOA,GACPC,iBAAkBA,GAClBC,WAAYA,GACZC,aAAcA,GACdC,aAAcA,GACdC,eAAgBA,GAChBC,gBAAiBA,GACjBC,kBAAmBA,GACnBC,gBAAiBA,GACjBC,gBAAiBA,GACjBC,aAAcA,GACdC,UAAWA,GACXC,UAAWA,GACXC,SAAUA,GACVC,YAAaA,GACbC,QAASA,GACTC,UAAWA,GACXC,UAAWA,GACXC,OAAQA,GACRC,cAAeA,GACfC,UAAWA,GACXC,cAAeA,GACfC,cAAeA,GACfC,WAAYA,GACZC,UAAWA,GACXC,KAAMA,GACNC,KAAMA,GACNC,KAAMA,GACNC,WAAYA,GACZC,UAAWA,GACXC,UAAWA,GACXC,YAAaA,GACbC,OAAQA,GACRC,WAAYA,GACZC,SAAUA,GACVC,SAAUA,GACVC,OAAQA,GACRC,QAASA,GACTC,UAAWA,GACXC,UAAWA,GACXC,UAAWA,GACXC,KAAMA,GACNC,YAAaA,GACbC,UAAWA,GACXC,IAAKA,GACLC,QAASA,GACTC,OAAQA,GACRC,UAAWA,GACXC,OAAQA,GACRC,MAAOA,GACPC,WAAYA,GACZC,YAAaA,GACbC,cAAeA,IA4JZE,IAhkCgCza,EAu6BR0a,OAAOC,OAAO,CACzCC,UAAW,KACXtJ,MAAOA,EACPC,OAAQA,EACRC,KAAMA,EACNC,MAAOA,EACPC,OAAQA,EACRC,IAAKA,EACLC,OAAQA,EACRC,QAASA,EACTC,MAAOA,EACPC,KAAMA,EACNC,MAAOA,GACPC,OAAQA,GACRC,KAAMA,GACNC,KAAMA,GACNC,KAAMA,GACNC,KAAMA,GACNC,OAAQA,GACRC,UAAWA,GACXC,aAAcA,GACdC,WAAYA,GACZC,MAAOA,GACPC,MAAOA,GACPC,OAAQA,GACRC,eAAgBA,GAChBC,WAAYA,GACZC,MAAOA,GACPC,UAAWA,GACXC,UAAWA,GACXC,WAAYA,GACZC,UAAWA,GACXC,MAAOA,GACPC,eAAgBA,GAChBC,SAAUA,GACVC,QAASA,GACTC,SAAUA,GACVC,SAAUA,GACVC,cAAeA,GACfC,SAAUA,GACVC,UAAWA,GACXC,SAAUA,GACVC,UAAWA,GACXC,YAAaA,GACbC,eAAgBA,GAChBC,WAAYA,GACZC,WAAYA,GACZC,QAASA,GACTC,WAAYA,GACZC,aAAcA,GACdC,cAAeA,GACfC,cAAeA,GACfC,cAAeA,GACfC,cAAeA,GACfC,WAAYA,GACZC,SAAUA,GACVC,YAAaA,GACbC,QAASA,GACTC,QAASA,GACTC,WAAYA,GACZC,UAAWA,GACXC,YAAaA,GACbC,YAAaA,GACbC,UAAWA,GACXC,WAAYA,GACZC,KAAMA,GACNC,UAAWA,GACXC,YAAaA,GACbC,KAAMA,GACNC,SAAUA,GACVC,QAASA,GACTC,UAAWA,GACXC,OAAQA,GACRC,MAAOA,GACPC,MAAOA,GACPC,SAAUA,GACVC,cAAeA,GACfC,UAAWA,GACXC,aAAcA,GACdC,UAAWA,GACXC,WAAYA,GACZC,UAAWA,GACXC,qBAAsBA,GACtBC,UAAWA,GACXC,WAAYA,GACZC,UAAWA,GACXC,UAAWA,GACXC,YAAaA,GACbC,cAAeA,GACfC,aAAcA,GACdC,eAAgBA,GAChBC,eAAgBA,GAChBC,eAAgBA,GAChBC,YAAaA,GACbC,UAAWA,GACXC,MAAOA,GACPC,iBAAkBA,GAClBC,WAAYA,GACZC,aAAcA,GACdC,aAAcA,GACdC,eAAgBA,GAChBC,gBAAiBA,GACjBC,kBAAmBA,GACnBC,gBAAiBA,GACjBC,gBAAiBA,GACjBC,aAAcA,GACdC,UAAWA,GACXC,UAAWA,GACXC,SAAUA,GACVC,YAAaA,GACbC,QAASA,GACTC,UAAWA,GACXC,UAAWA,GACXC,OAAQA,GACRC,cAAeA,GACfC,UAAWA,GACXC,cAAeA,GACfC,cAAeA,GACfC,WAAYA,GACZC,UAAWA,GACXC,KAAMA,GACNC,KAAMA,GACNC,KAAMA,GACNC,WAAYA,GACZC,UAAWA,GACXC,UAAWA,GACXC,YAAaA,GACbC,OAAQA,GACRC,WAAYA,GACZC,SAAUA,GACVC,SAAUA,GACVC,OAAQA,GACRC,QAASA,GACTC,UAAWA,GACXC,UAAWA,GACXC,UAAWA,GACXC,KAAMA,GACNC,YAAaA,GACbC,UAAWA,GACXC,IAAKA,GACLC,QAASA,GACTC,OAAQA,GACRC,UAAWA,GACXC,OAAQA,GACRC,MAAOA,GACPC,WAAYA,GACZC,YAAaA,GACbC,cAAeA,GACf,QAAWC,OA1jCCxa,EAAC,SAAeA,EAikCzB6a,GAAW,SAASC,GACpB,MAAmB,iBAARA,EAAyBC,GAAUD,GACvCE,GAAOF,IAGlB,SAASE,GAAQF,GACb,OAAKA,GAAsB,iBAARA,EACfG,GAAOH,IAAQI,GAAQJ,GAAaA,EACpCrM,GAAQqM,GAmChB,SAAcK,EAAIpb,GACd,GAAIob,EAAGC,IAAK,OAAOD,EAAGC,IAAIrb,GAE1B,IADA,IAAIsb,EAAM,GACDvb,EAAI,EAAGA,EAAIqb,EAAG9V,OAAQvF,IAC3Bub,EAAI3K,KAAK3Q,EAAEob,EAAGrb,GAAIA,IAEtB,OAAOub,EAzCkBD,CAAIN,EAAKE,IA4CtC,SAAiBG,EAAIpb,EAAGub,GACpB,GAAIH,EAAGI,OAAQ,OAAOJ,EAAGI,OAAOxb,EAAGub,GACnC,IAAK,IAAIxb,EAAI,EAAGA,EAAIqb,EAAG9V,OAAQvF,IAC3Bwb,EAAMvb,EAAEub,EAAKH,EAAGrb,GAAIA,GAExB,OAAOwb,EAhDAC,CAAOC,GAAWV,IAAM,SAAUQ,EAAKG,GAG1C,OADAH,EADYP,GAAUU,IACTT,GAAOF,EAAIW,IACjBH,IACR,IAPyCR,EAUhD,SAASC,GAAUW,GACf,OAAOA,EAAI5V,QAAQ,gBAAgB,SAAUjD,EAAE9B,GAC3C,OAAOA,EAAE4a,iBAIjB,IAAIlN,GAAUhI,MAAMgI,SAAW,SAAUqM,GACrC,MAA+C,mBAAxCJ,OAAO5J,UAAUC,SAAShK,KAAK+T,IAGtCG,GAAS,SAAUH,GACnB,MAA+C,kBAAxCJ,OAAO5J,UAAUC,SAAShK,KAAK+T,IAGtCI,GAAU,SAAUJ,GACpB,MAA+C,oBAAxCJ,OAAO5J,UAAUC,SAAShK,KAAK+T,IAGtCc,GAAMlB,OAAO5J,UAAU+K,eACvBL,GAAad,OAAOoB,MAAQ,SAAUhB,GACtC,IAAIgB,EAAO,GACX,IAAK,IAAIL,KAAOX,EACRc,GAAI7U,KAAK+T,EAAKW,IAAMK,EAAKpL,KAAK+K,GAEtC,OAAOK,GAoBX,IAtoCwB/a,GAsoCpBgb,GAAmB7c,GAAqB,SAAUE,EAAQC,GAE9D,IAAI2c,EAAe,WAAc,SAASC,EAAiBC,EAAQC,GAAS,IAAK,IAAIrc,EAAI,EAAGA,EAAIqc,EAAM9W,OAAQvF,IAAK,CAAE,IAAIsc,EAAaD,EAAMrc,GAAIsc,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAM7B,OAAO8B,eAAeN,EAAQE,EAAWX,IAAKW,IAAiB,OAAO,SAAUK,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYT,EAAiBQ,EAAY3L,UAAW4L,GAAiBC,GAAaV,EAAiBQ,EAAaE,GAAqBF,GAA7gB,GAEfG,EAA4B,mBAAXC,QAAoD,iBAApBA,OAAOC,SAAwB,SAAUhC,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAyB,mBAAX+B,QAAyB/B,EAAI7T,cAAgB4V,QAAU/B,IAAQ+B,OAAO/L,UAAY,gBAAkBgK,GAItQ,SAASiC,EAAgBjC,EAAKW,EAAK3M,GAAiK,OAApJ2M,KAAOX,EAAOJ,OAAO8B,eAAe1B,EAAKW,EAAK,CAAE3M,MAAOA,EAAOuN,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBzB,EAAIW,GAAO3M,EAAgBgM,EAE3M,SAASkC,EAAmBC,GAAO,GAAIxW,MAAMgI,QAAQwO,GAAM,CAAE,IAAK,IAAInd,EAAI,EAAGod,EAAOzW,MAAMwW,EAAI5X,QAASvF,EAAImd,EAAI5X,OAAQvF,IAAOod,EAAKpd,GAAKmd,EAAInd,GAAM,OAAOod,EAAe,OAAOzW,MAAM0W,KAAKF,GAI1L,SAASG,EAAgBC,GACvB,OAAOA,GAAkE,iBAA7C,IAAPA,EAAqB,YAAcT,EAAQS,KAAqB,YAAaA,EAAKA,EAAE,QAAcA,EAHzH3C,OAAO8B,eAAend,EAAS,aAAc,CAAEyP,OAAO,IAOtD,IAwCmDN,EAxC/C8O,EAAiBF,EAAgB/L,GACjCkM,EAAqBH,EAAgB3C,IACrC+C,EAAoBJ,EAAgBvC,IASpC4C,EAAa,+BACbC,EAAoB,yCAsBpBC,EAAY,SAAmBC,GACjC,OAAO,SAAUvR,GACf,OAAOuR,EAAUvR,GAAQ,UAAY,OAUrCwR,EAAc,SAAqBC,GACrC,IAAIC,EAAYC,UAAU3Y,OAAS,QAAsB0J,IAAjBiP,UAAU,GAAmBA,UAAU,GAAKC,OACpF,OAAO,SAAU5R,GACf,GAAkB,SAAdA,EAAKmC,KAAiB,OAAO,KAEjC,IAAI0P,EAAQ7R,EAAKyC,MAAMoP,MAAMJ,GAC7B,OAAc,OAAVI,EAAuB,KAEfH,EAAUG,EAAM,MAM5B9N,EAAS,CACX+N,MAAOR,GAAU,SAAUtR,GACzB,MAAqB,UAAdA,EAAKmC,QAEd4P,MAAOT,GAAU,SAAUtR,GACzB,MAAqB,QAAdA,EAAKmC,MAAiC,MAAfnC,EAAKyC,SAErCuP,MAAOV,GAAU,SAAUtR,GACzB,MAAqB,QAAdA,EAAKmC,MAAiC,MAAfnC,EAAKyC,SAErCwP,MA9BiD9P,EA8BzB,OA7BjB,SAAUnC,GACf,OAAOA,EAAKmC,OAASA,EAAOnC,EAAKyC,MAAQ,OA6B3CyP,KAAMV,EAhDK,aAiDXW,KAAMX,EAhDK,aAiDXY,OAAQZ,EA9CK,0CA8CiB1R,QAC9BuS,OAAQb,EA7CK,uDA6CiB1R,QAC9BwS,wBAAyBd,EA7CH,wFA8CtBe,MAAOf,EA7CK,sDA8CZgB,QAAShB,EA7CK,4CA8CdiB,MAAOjB,EArDK,4BAsDZkB,OA3EgB,SAAqB1S,GACrC,MAAkB,WAAdA,EAAKmC,KAA0B,KAC5BnC,EAAKyC,MAAMhJ,QAAQ,+BAA+B,SAAUoY,EAAOc,GACxE,OAAOf,OAAOgB,aAAarS,SAASoS,EAAU,QAC7ClZ,QAAQ,MAAO,KAwElBoZ,MAlEe,SAAoB7S,GACnC,MAAkB,SAAdA,EAAKmC,OAAoBiP,EAAW3W,KAAKuF,EAAKyC,QAAUzC,EAAKyC,SAASyO,GAAqC,gBAAflR,EAAKyC,OAC5FzC,EAAKyC,MACW,aAAdzC,EAAKmC,MAAuBkP,EAAkB5W,KAAKuF,EAAKyC,OAC1DuC,EAAIjC,UAAU/C,GAEhB,MA6DP8S,KAAMtB,EAAY,qCAGhBa,EAAStO,EAAOsO,OAChBC,EAA0BvO,EAAOuO,wBACjCE,EAAUzO,EAAOyO,QACjBK,EAAQ9O,EAAO8O,MACff,EAAQ/N,EAAO+N,MACfI,EAAOnO,EAAOmO,KAGda,EAAmB,SAA0BC,GAC/C,IAAIC,EAAaD,EAAKE,MAClBA,OAAuBxQ,IAAfuQ,EAA2B,CAACZ,EAAQC,EAAyBE,GAAWS,EAChFE,EAAkBH,EAAKI,WACvBA,OAAiC1Q,IAApByQ,EAAgC,CAAC,MAAO,QAAS,SAAU,QAAUA,EAClFE,EAAcL,EAAK/T,OACnBA,OAAyByD,IAAhB2Q,EAA4B,GAAKA,EAC1CC,EAAcN,EAAKO,OACnBA,OAAyB7Q,IAAhB4Q,EAA4B,GAAKA,EAC9C,OAAO,SAAUE,GACf,IAAIC,EAEAC,EAAS,GAKb,IAFAA,EAAOrP,KAAKmP,EAAYG,OAAOC,MAAMJ,EAAa7C,EAAmBuC,KAE9DQ,EAAO1a,OAAS,GAAKwa,EAAYK,aACtCL,EAAYG,OAAO7B,GACnB4B,EAAOrP,KAAKmP,EAAYG,OAAOC,MAAMJ,EAAa7C,EAAmBuC,KAGvEM,EAAYM,cAEZ,IAAIC,EAAML,EAAO,GACbM,EAAWN,EAAO,GAClBO,OAAqBvR,IAAbsR,EAAyBD,EAAMC,EACvCE,EAAYR,EAAO,GACnBS,OAAuBzR,IAAdwR,EAA0BH,EAAMG,EACzCE,EAAYV,EAAO,GACnBW,OAAqB3R,IAAd0R,EAA0BH,EAAQG,EAGzCE,EAAS,SAAgB3gB,GAC3B,MAAO,GAAKsL,EAASmU,EAAWzf,GAAK4f,GAKvC,MAAO,CAAEgB,QAFmB7D,EAAd+C,EAAU,GAA6Ba,EAAO,GAAIP,GAAMrD,EAAgB+C,EAASa,EAAO,GAAIL,GAAQvD,EAAgB+C,EAASa,EAAO,GAAIH,GAASzD,EAAgB+C,EAASa,EAAO,GAAID,GAAOZ,MAM1Me,EAAkB,SAAyBC,GAC7C,IAAIC,EAAQ/C,UAAU3Y,OAAS,QAAsB0J,IAAjBiP,UAAU,GAAmBA,UAAU,GAAKG,EAChF,OAAO,SAAU0B,GAQf,IAPA,IAAImB,EAAgBtG,OAAOoB,KAAKgF,GAC5Bf,EAASiB,EAAczF,QAAO,SAAU0F,EAAOC,GAEjD,OADAD,EAAMC,GACCD,IACN,IAECE,EAAY,EACTA,EAAYH,EAAc3b,QAAUwa,EAAYK,aAAa,CAC9DiB,GAAWtB,EAAYG,OAAOe,GAElC,IAAIK,EAAsBJ,EAAcK,MAAK,SAAUH,GACrD,YAAgCnS,IAAzBgR,EAAOmB,IAA+BJ,EAAWI,GAAc9Q,OAAO9D,MAAK,SAAUyD,GAC1F,OAAO8P,EAAYyB,QAAQvR,SAI1BqR,EAGHrB,EAAOqB,GAAuBvB,EAAY0B,UAF1C1B,EAAY2B,QAKdL,GAAa,EASf,OANAtB,EAAYM,cAEZa,EAAc7Y,SAAQ,SAAU+Y,QACDnS,IAAzBgR,EAAOmB,KAA6BnB,EAAOmB,GAAgBJ,EAAWI,GAAcO,YAGnF,CAAEb,OAAQb,KAIjB2B,EAAsB,WACxB,OAAO,SAAU7B,GACf,IAAI8B,EAAQ9B,EAAYG,OAAOtB,GAC3BkD,EAAS/B,EAAYyB,QAAQnD,GAAS0B,EAAYG,OAAOtB,GAAUiD,EAEvE,OADA9B,EAAYM,cACL,CAAEwB,MAAOA,EAAOC,OAAQA,KAI/BC,EAAc,SAAqBhC,GACrC,IAAIiC,OAAU,EACVC,OAAU,EACVC,OAAS,EACTC,OAAQ,EAEZ,GAAIpC,EAAYyB,QAAQ/C,GAEtB,OADAsB,EAAYM,cACL,CACL+B,OAAQ,CAAEP,MAAO,EAAGC,OAAQ,GAC5BI,OAAQ,EACRC,MAAO,SAKX,IADA,IAAIE,GAAgB,EACbtC,EAAYK,aACbiC,GAAetC,EAAYG,OAAO7B,QAEtBpP,IAAZ+S,GAAyBjC,EAAYyB,QAAQ5C,EAAQC,IACvDmD,EAAUjC,EAAY0B,UACtB1B,EAAYG,OAAO7B,GACnB4D,EAAUlC,EAAYG,OAAOtB,EAAQC,GAErCkB,EAAYuC,kBACRvC,EAAYyB,QAAQnD,IAAU0B,EAAYyB,QAAQ5C,EAAQC,GAC5DqD,EAASnC,EAAY0B,UAErB1B,EAAYwC,eAEKtT,IAAVkT,GAAuBpC,EAAYyB,QAAQpC,GACpD+C,EAAQpC,EAAY0B,UAEpB1B,EAAY2B,QAGdW,GAAgB,EAKlB,YAFgBpT,IAAZ+S,GAAuBjC,EAAY2B,QAEhC,CACLU,OAAQ,CAAEP,MAAOG,EAASF,OAAQG,GAClCC,YAAmBjT,IAAXiT,EAAuBA,EAAS,EACxCC,WAAiBlT,IAAVkT,EAAsBA,EAAQ,UAoBrCK,EAASlS,EAAOmO,KAChBC,EAAOpO,EAAOoO,KACdC,EAASrO,EAAOqO,OAChB8D,EAAWnS,EAAOsO,OAClB8D,EAAUpS,EAAO+N,MAwDjBsE,EAAUrS,EAAO+N,MACjBW,EAAQ1O,EAAO0O,MACfC,EAAS3O,EAAO2O,OAGhB2D,EAAkB,SAAyB7C,GAC7C,IAAI8C,OAAa,EAEjB,GAAI9C,EAAYyB,QAAQvC,GACtB4D,EAAa9C,EAAY0B,eAGzB,IADAoB,EAAa9C,EAAYG,OAAOlB,GACzBe,EAAYK,aAAa,CAC9BL,EAAYG,OAAOyC,GAEnBE,GAAc,IADE9C,EAAYG,OAAOlB,GAOvC,OAFAe,EAAYM,cAELwC,GAGLC,EAAUxS,EAAO+N,MACjB0E,EAAWzS,EAAOsO,OAClBoE,EAA4B1S,EAAOuO,wBACnCoE,EAAW3S,EAAOqO,OAClBL,EAAQhO,EAAOgO,MAEf4E,EAASnF,EAAY,cACrBoF,EAAQpF,EAAY,cACpBqF,EAASrF,EAAY,oBACrBsF,EAAUtF,EAAY,kBAItBuF,EAAqB,GAiErBC,EAAUjT,EAAO+N,MACjBgB,EAAO/O,EAAO+O,KACdmE,EAAUlT,EAAO8O,MAGjBqE,EAAU1F,EAAY,kCA+CtB2F,EAAUpT,EAAO+N,MACjBsF,EAASrT,EAAO+O,KAoBhBuE,EAAUtT,EAAO+N,MACjBE,EAAQjO,EAAOiO,MACfsF,GAAWvT,EAAOsO,OAClBkF,GAAWxT,EAAOqO,OAClBG,GAAQxO,EAAOwO,MAGfiF,GAAY,SAAmBC,GACjC,OAAO,SAAUC,GACf,IAAIjV,EAAQiV,EAAe/D,OAAO8D,GAElC,OADAC,EAAe5D,cACRrR,IAIPkV,GAAeH,GAAUD,IACzBK,GAAeJ,GAAUF,IACzBO,GAAcL,GAAUjF,IACxBuF,GAAqB,SAA4BL,GACnD,OAAO,SAAUrI,EAAK2I,GACpB,OAAO,SAAUL,GACf,IAAIhjB,EAAIgjB,EAAe/D,OAAO8D,GAE1B7iB,OAAI,EACR,GAAI8iB,EAAe7D,YACjB6D,EAAe/D,OAAO3B,GACtBpd,EAAI8iB,EAAe/D,OAAO8D,OACrB,SAAuB/U,IAAnBqV,EAKT,OAAOrjB,EAJPE,EAAImjB,EASN,OAFAL,EAAe5D,cAER,CAACpD,EAAgB,GAAItB,EAAM,IAAKxa,GAAI8b,EAAgB,GAAItB,EAAM,IAAK1a,OAI5EsjB,GAAWF,GAAmBP,IAC9BU,GAAWH,GAAmBR,IAC9BY,GAAUJ,GAAmBvF,IAE7B4F,GAAiB,CACnBC,YAAaT,GACbU,MAAOL,GAAS,SAChBM,OAAQX,GACRY,OAAQZ,GACRa,UAAWP,GAAS,YAAa,GACjCQ,WAAYb,GACZc,WAAYd,GACZe,OAAQd,GACRe,QAASf,GACTgB,QAAShB,GACTiB,QAASjB,GACTkB,MAAOlB,GACPmB,MAAOnB,GACPoB,KAAMf,GAAQ,OAAQ,SAyBpBgB,GAAUnV,EAAO0O,MACjBR,GAAOlO,EAAOkO,KACdkH,GAAUpV,EAAO8O,MACjBuG,GAAWrV,EAAOsO,OAClBgH,GAA4BtV,EAAOuO,wBACnCgH,GAAYvV,EAAOyO,QACnB+G,GAASxV,EAAOoO,KAQhBqH,GAAShF,EAAgB,CAC3BiF,YAAa,CACX1V,OAAQ,CAACqV,GAAUC,IACnBjE,QAAS,GAEXsE,YAAa,CACX3V,OAAQ,CAACoV,IACT/D,QAAS,SAEXuE,YAAa,CACX5V,OAAQ,CAACyN,EAAY,4BACrB4D,QAAS,WAGTsE,GAAc3G,EAAiB,CACjCG,MAAO,CAACjB,IACRhT,OAAQ,SACRsU,OAAQ,UAENqG,GAAe7G,EAAiB,CAClCK,WAAY,CAAC,UAAW,WAAY,cAAe,cACnDnU,OAAQ,SACRsU,OAAQ,WAENkG,GAAc1G,EAAiB,CAAE9T,OAAQ,SAAUsU,OAAQ,UAC3DsG,GAAS9G,EAAiB,CAC5BG,MAAO,CAACkG,GAAUC,GAA2BC,GAAWC,IACxDta,OAAQ,WAEN6a,GAAU/G,EAAiB,CAAE9T,OAAQ,YACrC8a,GAAWvF,EAAgB,CAC7BwF,SAAU,CACRjW,OAAQ,CAACyN,EAAY,+BACrB4D,QAAS,UAEX6E,cAAe,CACblW,OAAQ,CAACyN,EAAY,4CACrB4D,QAAS,SAST8E,GAAe7E,IACf8E,GAAmB9E,IAEnB+E,GAAa,CACfC,WAvDe,SAAoB7G,GACnC,MAAO,CACLe,OAAQ,CAAE+F,gBAAiB9G,EAAYG,OAAOwF,OAsDhDK,OAAQA,GACRE,YAAaA,GACbE,aAAcA,GACdH,YAAaA,GACbc,UApZc,SAAmB/G,GACjC,IAAIgH,EAAehF,EAAYhC,GAK/B,MAAO,CACLe,OAAQ,CACN2F,aANSM,EAAa3E,OAOtB4E,aANSD,EAAa7E,OAOtB+E,YANQF,EAAa5E,MAOrB+E,cAAe,KA0YnBle,KA1XS,SAAc+W,GACvB,IAAI9W,OAAW,EACXE,OAAa,EACbge,OAAY,EAEhB,GAAIpH,EAAYyB,QAAQgB,GAEtB,OADAzC,EAAYM,cACL,CAAES,OAAQ,CAAE7X,SAAU,EAAGE,WAAY,EAAGge,UAAW,SAI5D,GADApH,EAAYuC,kBACRvC,EAAYyB,QAAQ9C,KAAUqB,EAAYK,YAC5C,MAAO,CAAEU,OAAQ,CAAE7X,SAAU,EAAGE,WAAY,EAAGge,UAAW,SAE5DpH,EAAYwC,SAGZ,IADA,IAAI6E,EAAc,EACXA,EAAc,GAAKrH,EAAYK,aAChB,IAAhBgH,GAAmBrH,EAAYG,OAAOwC,QAEzBzT,IAAbhG,GAA0B8W,EAAYyB,QAAQ7C,IAChD1V,EAAW8W,EAAY0B,UAEvB1B,EAAYuC,kBACRvC,EAAYyB,QAAQkB,IAAY3C,EAAYyB,QAAQ7C,GACtDxV,EAAa4W,EAAY0B,UAEzB1B,EAAYwC,eAEStT,IAAdkY,GAA2BpH,EAAYyB,QAAQiB,GACxD0E,EAAYpH,EAAY0B,eACDxS,IAAdkY,GAA2BpH,EAAYyB,QAAQ9C,GACxDyI,EAAY,OAEZpH,EAAY2B,QAGd0F,GAAe,EASjB,OANArH,EAAYM,mBAEKpR,IAAbhG,IAAwBA,EA9CR,QA+CDgG,IAAf9F,IAA0BA,EA9CR,QA+CJ8F,IAAdkY,IAAyBA,EA9CR,GAgDd,CAAErG,OAAQ,CAAE7X,SAAUA,EAAUE,WAAYA,EAAYge,UAAWA,KA6U1Eb,SAAUA,GACVe,KApSS,SAActH,GASvB,IARA,IAAIuH,OAAY,EACZpd,OAAa,EACbqd,OAAc,EAEdpd,OAAa,EAGbqd,EAA+B,EAC5BA,EAA+B,GAAKzH,EAAYK,aAAa,CAClE,GAAIL,EAAYyB,QAAQ0B,SAAgB,QAAkBjU,IAAdqY,GAA2BvH,EAAYyB,QAAQ2B,GACzFmE,EAAYvH,EAAY0B,eACnB,QAAmBxS,IAAf/E,GAA4B6V,EAAYyB,QAAQ4B,GACzDlZ,EAAa6V,EAAY0B,cACpB,SAAoBxS,IAAhBsY,IAA6BxH,EAAYyB,QAAQ6B,GAG1D,MAFAkE,EAAc,CAACxH,EAAY0B,WAK7B1B,EAAYG,OAAO4C,GACnB0E,GAAgC,EAGlC,IAAIC,EAAW1H,EAAYG,OAAO6C,EAAUC,GAExCjD,EAAYyB,QAAQlD,KAEpBnU,EADE4V,EAAYyB,QAAQyB,GACTwE,EAAW1H,EAAY0B,UAEvB1B,EAAYG,OAAO6C,EAAUC,IAI9CjD,EAAYG,OAAO4C,GAEnB,IAAID,EAAaD,EAAgB7C,QAEf9Q,IAAdqY,IAAyBA,EA1CR,eA2CFrY,IAAf/E,IAA0BA,EA1CR,eA2CF+E,IAAhBsY,IAA2BA,EAAcjE,GAE7C,IAAIoE,EAAM,CAAEJ,UAAWA,EAAWpd,WAAYA,EAAYqd,YAAaA,EAAaE,SAAUA,EAAU5E,WAAYA,GAGpH,YAFmB5T,IAAf9E,IAA0Bud,EAAIvd,WAAaA,GAExC,CAAE2W,OAAQ4G,IAwPjB7E,WAAYD,EACZ2E,YApBgB,SAAqBxH,GACrC,MAAO,CAACA,EAAYG,OAAOuF,MAoB3Bvb,WAlBe,SAAoB6V,GACnC,OAAOA,EAAYG,OAAO1B,KAkB1B4H,OAAQA,GACRC,QAASA,GACTI,aAAcA,GACdkB,WA3Pe,SAAoB5H,GACnC,IAAI6H,EAAgB7F,EAAYhC,GAKhC,MAAO,CACLe,OAAQ,CACN4F,iBANSkB,EAAcxF,OAOvByF,iBANSD,EAAc1F,OAOvB4F,gBANQF,EAAczF,SAwP1BuE,iBAAkBA,GAClBqB,eAnOmB,SAAwBhI,GAM3C,IALA,IAAI/X,OAAO,EACPggB,OAAQ,EACR7F,OAAQ,EAERE,GAAgB,EACbtC,EAAYK,aAAa,CAG9B,GAFIiC,GAAetC,EAAYG,OAAOqD,QAEzBtU,IAATjH,GAAsB+X,EAAYyB,QAAQnC,GAAO,CACnD,IAAI4I,EAAQ,CAAClI,EAAY0B,UAAUyG,eAEnCnI,EAAYuC,kBACK,SAAb2F,EAAM,IAAiBlI,EAAYyB,QAAQ+B,IAAYxD,EAAYyB,QAAQnC,IAC7E4I,EAAMrX,KAAKmP,EAAY0B,UAAUyG,eAEjCD,EAAME,OAAOC,WAEbrI,EAAYwC,SAGdva,EAAOigB,EAAM1hB,KAAK,eACC0I,IAAV+Y,GAAuBjI,EAAYyB,QAAQiC,GACpDuE,EAAQjI,EAAY0B,eACDxS,IAAVkT,GAAuBpC,EAAYyB,QAAQgC,GACpDrB,EAAQpC,EAAY0B,UAEpB1B,EAAY2B,QAGdW,GAAgB,EAQlB,MAAO,CAAEvB,OALI,CACXuH,wBAA6BpZ,IAATjH,EAAqBA,EAtCb,OAuC5BsgB,yBAA+BrZ,IAAVkT,EAAsBA,EArCd,QAsC7BoG,yBAA+BtZ,IAAV+Y,EAAsBA,EAvCd,WAuO/BK,mBAvLuB,SAA4BtI,GAInD,IAHA,IAAIkI,EAAQ,GAER5F,GAAgB,EACbtC,EAAYK,aACbiC,GAAetC,EAAYG,OAAOwD,GAEtCuE,EAAMrX,KAAKmP,EAAYG,OAAOyD,GAAQuE,eAEtC7F,GAAgB,EAKlB,OAFA4F,EAAME,OAAOC,UAENH,EAAM1hB,KAAK,MA0KlB0X,UAzGc,SAAmB8B,GAIjC,IAHA,IAAI4G,EAAa,GAEbtE,GAAgB,EACbtC,EAAYK,aAAa,CAC1BiC,GAAetC,EAAYG,OAAO0D,GAEtC,IAAIK,EAAiBlE,EAAYyI,iBAC7BC,EAAexE,EAAewE,aAE9BC,EAAoBhE,GAAe+D,GAAcxE,GAChDtd,MAAMgI,QAAQ+Z,KACjBA,EAAoB,CAACzL,EAAgB,GAAIwL,EAAcC,KAEzD/B,EAAa+B,EAAkBC,OAAOhC,GAEtCtE,GAAgB,EAGlB,OAAOsE,IAyFLiC,GAAe,eAEfC,GAAc,WAChB,SAASA,EAAYxa,EAAOgC,IA3pB9B,SAAyByY,EAAUnM,GAAe,KAAMmM,aAAoBnM,GAAgB,MAAM,IAAIoM,UAAU,qCA4pB5GC,CAAgB9hB,KAAM2hB,GAEtB3hB,KAAK+hB,MAAQ,EACb/hB,KAAKmH,MAAQA,EACbnH,KAAKuhB,aAAyB,MAAVpY,EAAiBA,EAAOrB,MAAQ,KACpD9H,KAAKua,UAAY,KACjBva,KAAKgiB,aAAe,EA8EtB,OA3EAhN,EAAa2M,EAAa,CAAC,CACzBlN,IAAK,YACL3M,MAAO,WACL,OAAO9H,KAAK+hB,OAAS/hB,KAAKmH,MAAM9I,OAAS,IAE1C,CACDoW,IAAKiN,GACL5Z,MAAO,WACL,IAAK9H,KAAKkZ,YAAa,OAAO,KAI9B,IAFA,IAAI7T,EAAOrF,KAAKmH,MAAMnH,KAAK+hB,OAElBjpB,EAAI,EAAGA,EAAIke,UAAU3Y,OAAQvF,GAAK,EAAG,CAC5C,IAAImpB,EAAkBjL,UAAU3Y,QAAUvF,OAAIiP,EAAYiP,UAAUle,GAChEgP,EAAQma,EAAgB5c,GAC5B,GAAc,OAAVyC,EAGF,OAFA9H,KAAK+hB,OAAS,EACd/hB,KAAKua,UAAYzS,EACVA,EAIX,OAAO,OAER,CACD2M,IAAK,UACL3M,MAAO,WACL,OAAqD,OAA9C9H,KAAA,aAAmBiZ,MAAMjZ,KAAMgX,aAEvC,CACDvC,IAAK,SACL3M,MAAO,WACL,IAAIA,EAAQ9H,KAAA,aAAmBiZ,MAAMjZ,KAAMgX,WAC3C,OAAiB,OAAVlP,EAAiBA,EAAQ9H,KAAKwa,UAEtC,CACD/F,IAAK,kBACL3M,MAAO,WACL,IAAIzC,EAAOrF,KAAKmH,MAAMnH,KAAK+hB,OAC3B,GAAkB,aAAd1c,EAAKmC,KAAqB,OAAO,KACrC,IAAIM,EAAQ,IAAI6Z,EAAYtc,EAAK8B,MAAO9B,GAGxC,OAFArF,KAAK+hB,OAAS,EACd/hB,KAAKua,UAAY,KACVzS,IAER,CACD2M,IAAK,iBACL3M,MAAO,WACL,IAAIA,EAAQ9H,KAAKkiB,kBACjB,OAAiB,OAAVpa,EAAiBA,EAAQ9H,KAAKwa,UAEtC,CACD/F,IAAK,cACL3M,MAAO,WACD9H,KAAKkZ,aAAalZ,KAAKwa,UAE5B,CACD/F,IAAK,QACL3M,MAAO,WACL,MAAM,IAAIqa,MAAM,0BAA4BniB,KAAKmH,MAAMnH,KAAK+hB,OAAOva,QAEpE,CACDiN,IAAK,kBACL3M,MAAO,WACL9H,KAAKgiB,YAAchiB,KAAK+hB,QAEzB,CACDtN,IAAK,SACL3M,MAAO,WACL,IAA0B,IAAtB9H,KAAKgiB,YAAoB,MAAM,IAAIG,MAAM,kBAC7CniB,KAAK+hB,MAAQ/hB,KAAKgiB,YAClBhiB,KAAKua,UAAY,SAIdoH,EAtFS,GA6FdS,GAAmB,kDACnBC,GAAS,gBACTC,GAAS,UACTC,GAAc,eAGdC,GAAoB,SAA2B5Z,GACjD,IAAId,EAAQc,EAAM7J,OAEd0jB,EAAc3a,EAAMoP,MAAMkL,IAC9B,GAAoB,OAAhBK,EAAsB,OAAOtd,OAAOsd,EAAY,IAEpD,IAAIC,EAAY9Z,EAAMsO,MAAMmL,IAC5B,OAAkB,OAAdK,EAA0D,SAA/BA,EAAU,GAAG1B,cAG1B,OADFpY,EAAMsO,MAAMoL,IACG,KAGR,OADF1Z,EAAMsO,MAAMqL,IAG1Bza,OAFP,GAWE6a,GAN8B,SAAqCC,EAAUC,GAC/E,IAAIC,EAAMxM,EAAeuM,EAAW9jB,QAChC8Z,EAAc,IAAI8I,GAAYmB,EAAI3b,OACtC,OAAOsY,GAAWmD,GAAU/J,IAW1BkK,GAAuB,SAA8BH,EAAUC,EAAYG,GAC7E,IACIC,GADgC,IAAnBD,KAA8BJ,KAAYnD,IAC9B+C,GAAkBK,GAAcF,GAAwBC,EAAUC,EAAW9jB,QAE1G,OAAOkkB,GAAaA,EAAUrJ,OAASqJ,EAAUrJ,OAAS7D,EAAgB,GAAI6M,EAAUK,IAGtFC,GAAkB,SAAyBN,GAE7C,MADmB,SAAS9iB,KAAK8iB,GAExBA,EAEFpM,EAAkBoM,IAa3BvqB,EAAQmqB,kBAAoBA,GAC5BnqB,EAAQ0qB,qBAAuBA,GAC/B1qB,EAAQ6qB,gBAAkBA,GAC1B7qB,EAAQoiB,QAbI,SAAe0I,GACzB,IAAIC,EAAqBpM,UAAU3Y,OAAS,QAAsB0J,IAAjBiP,UAAU,GAAmBA,UAAU,GAAK,GAC7F,OAAOmM,EAAM5O,QAAO,SAAU0F,EAAOoJ,GACnC,IAAInJ,EAAegJ,GAAgBG,EAAK,IACpCvb,EAAQub,EAAK,GACbL,GAA+D,IAA9CI,EAAmBzjB,QAAQua,GAChD,OAAOxG,OAAO4P,OAAOrJ,EAAO8I,GAAqB7I,EAAcpS,EAAOkb,MACrE,QASDO,IAx8DoBxpB,GAw8Degb,KAv8D1Bhb,GAAEypB,YAAc9P,OAAO5J,UAAU+K,eAAe9U,KAAKhG,GAAG,WAAaA,GAAC,QAAcA,GAg9D7F0pB,IARqB1O,GAAiByN,kBACjBzN,GAAiBgO,qBACjBhO,GAAiBmO,gBAMtB,SAAuBQ,EAASC,GAClD,OAAOD,EAAQrlB,SAAWslB,EAAStlB,QAAUqlB,EAAQE,OAAM,SAAUC,EAAQ9B,GAC3E,OANqC+B,EAMjBD,EAN2BE,EAMnBJ,EAAS5B,GALhC+B,IAAaC,EADH,IAAsBD,EAAUC,OA4DnD,SAASC,GAAiB9O,GACxB,OAAiGA,EAAO+O,aAAe/O,EAAO1L,MAAQ,YAIxI,SAAS0a,GAAWpkB,GAClB,MAAuB,mBAATA,EAQhB,IAAI8V,GAA4B,mBAAXC,QAAoD,iBAApBA,OAAOC,SAAwB,SAAUhC,GAC5F,cAAcA,GACZ,SAAUA,GACZ,OAAOA,GAAyB,mBAAX+B,QAAyB/B,EAAI7T,cAAgB4V,QAAU/B,IAAQ+B,OAAO/L,UAAY,gBAAkBgK,GAGvHqQ,GAAiB,SAAUvC,EAAUnM,GACvC,KAAMmM,aAAoBnM,GACxB,MAAM,IAAIoM,UAAU,sCAIpBuC,GAAc,WAChB,SAASnP,EAAiBC,EAAQC,GAChC,IAAK,IAAIrc,EAAI,EAAGA,EAAIqc,EAAM9W,OAAQvF,IAAK,CACrC,IAAIsc,EAAaD,EAAMrc,GACvBsc,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjD7B,OAAO8B,eAAeN,EAAQE,EAAWX,IAAKW,IAIlD,OAAO,SAAUK,EAAaC,EAAYC,GAGxC,OAFID,GAAYT,EAAiBQ,EAAY3L,UAAW4L,GACpDC,GAAaV,EAAiBQ,EAAaE,GACxCF,GAdO,GAkBd4O,GAAW3Q,OAAO4P,QAAU,SAAUpO,GACxC,IAAK,IAAIpc,EAAI,EAAGA,EAAIke,UAAU3Y,OAAQvF,IAAK,CACzC,IAAIwrB,EAAStN,UAAUle,GAEvB,IAAK,IAAI2b,KAAO6P,EACV5Q,OAAO5J,UAAU+K,eAAe9U,KAAKukB,EAAQ7P,KAC/CS,EAAOT,GAAO6P,EAAO7P,IAK3B,OAAOS,GAGLqP,GAAW,SAAUC,EAAUC,GACjC,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI5C,UAAU,kEAAoE4C,GAG1FD,EAAS1a,UAAY4J,OAAOgR,OAAOD,GAAcA,EAAW3a,UAAW,CACrE7J,YAAa,CACX6H,MAAO0c,EACPnP,YAAY,EACZE,UAAU,EACVD,cAAc,KAGdmP,IAAY/Q,OAAOiR,eAAiBjR,OAAOiR,eAAeH,EAAUC,GAAcD,EAAS5Q,UAAY6Q,IAGzGG,GAA0B,SAAU9Q,EAAKgB,GAC3C,IAAII,EAAS,GAEb,IAAK,IAAIpc,KAAKgb,EACRgB,EAAKnV,QAAQ7G,IAAM,GAClB4a,OAAO5J,UAAU+K,eAAe9U,KAAK+T,EAAKhb,KAC/Coc,EAAOpc,GAAKgb,EAAIhb,IAGlB,OAAOoc,GAGL2P,GAA4B,SAAUC,EAAM/kB,GAC9C,IAAK+kB,EACH,MAAM,IAAIC,eAAe,6DAG3B,OAAOhlB,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B+kB,EAAP/kB,GAIxEilB,GAAiB,SAAUjrB,GAC7B,MAAiE,iBAA5C,IAANA,EAAoB,YAAc6b,GAAQ7b,KAAoBA,EAAEkG,cAAgByT,QAIjG,SAASuR,GAAkB/P,GACzB,OAAOA,GAA8C,iBAA7BA,EAAOgQ,kBAKjC,IAAIC,QAA6B,IAAZ9gB,GAA2BA,GAAY8gB,SAAW,cAEnEC,GAAkB,sBAIlBC,GAA+B,oBAAXC,QAA0B,gBAAiBA,OAE/DC,GAA8C,kBAAtBC,mBAAmCA,oBAAqBnhB,EA+CpF,IAAIohB,GAAwB,SAAUC,GAGpC,SAASD,EAAsBpc,GAC7B8a,GAAenkB,KAAMylB,GAErB,IAAK,IAAIE,EAAO3O,UAAU3Y,OAAQunB,EAAiBnmB,MAAMkmB,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IACxGD,EAAeC,EAAO,GAAK7O,UAAU6O,GAIrC,IAAIC,EAAQjB,GAA0B7kB,KAAM0lB,EAAO3lB,KAAKC,KAAM,4IAA8IqJ,EAAO,2BAA6Buc,EAAiB,yBAA2BA,EAAevmB,KAAK,MAAQ,MAI1T,OAAOwlB,GAA0BiB,GAGnC,OAjBAvB,GAASkB,EAAuBC,GAiBzBD,EAlBmB,CAmB1BtD,OAGE4D,GAAkB,mDAElBC,GAAgB,SAAUC,GAC5B,IAAIC,EAAM,IAAMD,GAAY,IACxBE,EAAqB,GAKzB,OAJAD,EAAIpnB,QAAQinB,IAAiB,SAAU7O,EAAOkP,EAAaC,GAEzD,OADAF,EAAmBzc,KAAK,CAAE0c,YAAaA,EAAaC,WAAYA,IACzDnP,KAEFiP,EAAmB/R,KAAI,SAAUiE,EAAMvf,GAC5C,IAAIstB,EAAc/N,EAAK+N,YACnBC,EAAahO,EAAKgO,WAElBC,EAAWH,EAAmBrtB,EAAI,GAEtC,MAAO,CAAEstB,YAAaA,EAAaG,WADlBD,EAAWJ,EAAIzc,MAAM4c,EAAYC,EAASD,YAAcH,EAAIzc,MAAM4c,QAQnFG,GAAiB,IAAIjuB,EAAW,CAClCkuB,QAAQ,EACRC,SAAS,EACTC,UAAU,EACVriB,QAAQ,EACRsiB,UAAU,EACVC,WAAW,IAGTC,GAAS,IAAIvuB,EAAW,CAC1BkuB,QAAQ,EACRC,SAAS,EACTC,UAAU,EACVriB,QAAQ,EACRsiB,UAAU,EACVC,WAAW,IAOTE,GAAe,GAGfC,GAAoB,SAA2BtmB,GACjD,IAAiB,IAAbA,EAAgB,CAClB,IAAIumB,EAAcF,GAElB,OADAA,GAAe,GACRE,IAIPC,GAAmB9mB,GAAgB,SAAUijB,GAC/C0D,GAAard,KAAK2Z,MAIhB8D,QAAY,EAGZC,GAAwB,SAA+BlQ,EAAOgE,EAAQmM,GACxE,OAEAnM,EAAS,IAEuC,IAAhDmM,EAAO5d,MAAM,EAAGyR,GAAQvb,QAAQwnB,KAEhCE,EAAO5d,MAAMyR,EAASiM,GAAU9oB,OAAQ6c,KAAYiM,GAC3C,IAZQ,UAeVjQ,GAoBT4P,GAAO5mB,IAAI,CAP0B,SAAwCQ,EAAS7E,EAAG+E,GACvE,IAAZF,GAAiBE,EAAUvC,QAAUuC,EAAU,GAAG0mB,YAAYH,IAAa,IAE7EvmB,EAAU,GAAKA,EAAU,GAAG9B,QA7BV,UA6BmCsoB,MAIbF,GAAkBF,KAC9DR,GAAetmB,IAAI,CAACgnB,GAAkBF,KAEtC,IAAIO,GAAe,SAAsBrB,GACvC,OAAOM,GAAe,GAAIN,IAMxBsB,GAAY,WACd,OAAkDC,EAAAA,IAWhDC,GAAe,SAAsBC,EAAOC,EAAIpe,GAC9CA,KAEeme,EAAMC,KAAQD,EAAMC,GAAMlU,OAAOgR,OAAO,QAC9Clb,IAAQ,IAKnBqe,GAAe,SAAsBF,EAAOC,GAE9CD,EAAMC,GAAMlU,OAAOgR,OAAO,OAIxBoD,GAAe,SAAsBH,GACvC,OAAO,SAAUC,EAAIpe,GACnB,YAAqBzB,IAAd4f,EAAMC,IAAqBD,EAAMC,GAAIpe,KAK5Cue,GAAiB,SAAwBJ,GAC3C,IAAIjT,EAAM,GAEV,IAAK,IAAIkT,KAAMD,EACbjT,GAAOhB,OAAOoB,KAAK6S,EAAMC,IAAKvoB,KAAK,KAAO,IAE5C,OAAOqV,EAAI3V,QAoBTipB,GAAc,SAAqBC,GAErC,GAAIA,EAAIC,MAAO,OAAOD,EAAIC,MAI1B,IADA,IAAIC,EAAOC,SAASC,YAAYhqB,OACvBvF,EAAI,EAAGA,EAAIqvB,EAAMrvB,GAAK,EAAG,CAChC,IAAIovB,EAAQE,SAASC,YAAYvvB,GAEjC,GAAIovB,EAAMI,YAAcL,EAAK,OAAOC,EAItC,MAAM,IAAIzC,GAAsB,KAI9B8C,GAAiB,SAAwBL,EAAOM,EAASzG,GAE3D,IAAKyG,EAAS,OAAO,EAErB,IAAIC,EAAWP,EAAMQ,SAASrqB,OAE9B,IAEE6pB,EAAM7nB,WAAWmoB,EAASzG,GAAS0G,EAAW1G,EAAQ0G,GACtD,MAAOE,GAEP,OAAO,EAGT,OAAO,GAcLC,GAAiB,SAAwBhB,GAC3C,MAAO,yBAA2BA,EAAK,SAIrCiB,GAAkB,SAAyBC,EAAO/G,GAEpD,IADA,IAAIgH,EAAiB,EACZjwB,EAAI,EAAGA,GAAKipB,EAAOjpB,GAAK,EAC/BiwB,GAAkBD,EAAMhwB,GAG1B,OAAOiwB,GAiCLC,GAAgB,SAAuB9C,EAAKyB,GAC9C,OAAO,SAAUsB,GACf,IAAIC,EAAQ1B,KAIZ,MAAO,UAHK,CAAC0B,GAAS,UAAYA,EAAQ,IAAK/D,GAAU,KAAO4C,GAAeJ,GAAS,IAAKvC,GAAAA,WAAwC6D,GAEhHE,OAAOC,SAAS/pB,KAAK,KACZ,IAAM6mB,IAAQ,aAK5CmD,GAAgB,SAAuBnD,EAAKyB,GAC9C,OAAO,WACL,IAAI2B,EAEAnU,IAASmU,EAAS,IAAWnE,IAAW4C,GAAeJ,GAAQ2B,EAAOlE,IAAmB,QAASkE,GAElGJ,EAAQ1B,KAOZ,OANI0B,IAEF/T,EAAM+T,MAAQA,GAITK,EAAAA,cAAoB,QAASlF,GAAS,GAAIlP,EAAO,CAAEqU,wBAAyB,CAAEC,OAAQvD,UAI7FwD,GAA2B,SAAkCC,GAC/D,OAAO,WACL,OAAOjW,OAAOoB,KAAK6U,KAmHnBC,GAAe,SAAsBhC,GACvC,OAAOQ,SAASyB,eAAejB,GAAehB,KAgG5CkC,GAAgB,SAASA,EAAcC,EAAUC,GACnD,IAAIrC,OAAqB5f,IAAbgiB,EAAyBrW,OAAOgR,OAAO,MAAQqF,EACvDJ,OAAyB5hB,IAAfiiB,EAA2BtW,OAAOgR,OAAO,MAAQsF,EAE3DC,EAAe,SAAsBrC,GACvC,IAAI9e,EAAO6gB,EAAQ/B,GACnB,YAAa7f,IAATe,EACKA,EAGF6gB,EAAQ/B,GAAM,CAAC,KAgBpB1B,EAAM,WACR,IAAIxR,EAAM,GAEV,IAAK,IAAIkT,KAAM+B,EAAS,CACtB,IAAIO,EAAWP,EAAQ/B,GAAI,GACvBsC,IACFxV,GAAOkU,GAAehB,GAAMsC,GAGhC,OAAOxV,GAeLuT,EAAM,CACRkC,MAbU,WACV,IAAIC,EAlYS,SAAoBzC,GACnC,IAAIwC,EAAQzW,OAAOgR,OAAO,MAE1B,IAAK,IAAIkD,KAAMD,EACbwC,EAAMvC,GAAMvD,GAAS,GAAIsD,EAAMC,IAEjC,OAAOuC,EA4XYE,CAAW1C,GACxB2C,EAAe5W,OAAOgR,OAAO,MAGjC,IAAK,IAAIkD,KAAM+B,EACbW,EAAa1C,GAAM,CAAC+B,EAAQ/B,GAAI,IAGlC,OAAOkC,EAAcM,EAAYE,IAKjCpE,IAAKA,EACLqE,OAAQb,GAAyBC,GACjC7B,aAAcA,GAAaH,GAC3BsC,aAAcA,EACdO,YA3CgB,SAAqB5C,EAAIc,EAAUlf,GACtCygB,EAAarC,GACnB,IAAMc,EAASrpB,KAAK,KAC3BqoB,GAAaC,EAAOC,EAAIpe,IAyCxBihB,YAtCgB,SAAqB7C,GACrC,IAAI8C,EAASf,EAAQ/B,QACN7f,IAAX2iB,IACJA,EAAO,GAAK,GACZ7C,GAAaF,EAAOC,KAmCpB+C,QAAQ,EACRC,SAAU,KACVC,UAAWxB,GAAcnD,EAAKyB,GAC9BmD,OAAQ9B,GAAc9C,EAAKyB,IAG7B,OAAOM,GAGL8C,GAAU,SAAiB7V,EAAQ8V,EAAOC,EAAaC,EAAcC,GACvE,GAAI9F,KAAe4F,EAAa,CAC9B,IAAIG,EApVW,SAAsBlW,EAAQ8V,EAAOE,GACtD,IAAIE,EAAKhD,SAASiD,cAAc,SAChCD,EAAGE,aAAanG,GAAS,IACzBiG,EAAGE,aAAalG,GAAiB,SAEjC,IAAI8D,EAAQ1B,KAQZ,GAPI0B,GACFkC,EAAGE,aAAa,QAASpC,GAI3BkC,EAAGG,YAAYnD,SAASyB,eAAe,KAEnC3U,IAAW8V,EAEb9V,EAAOqW,YAAYH,OACd,CACL,IAAKJ,IAAU9V,IAAW8V,EAAMQ,WAC9B,MAAM,IAAI/F,GAAsB,GAIlCuF,EAAMQ,WAAWN,aAAaE,EAAIF,EAAeF,EAAQA,EAAMS,aAGjE,OAAOL,EA2TIM,CAAaxW,EAAQ8V,EAAOE,GAErC,OAAI3F,GApKa,SAAwB6F,EAAID,GAC/C,IAAIxD,EAAQjU,OAAOgR,OAAO,MACtBiF,EAAUjW,OAAOgR,OAAO,MAExBiH,OAAqC5jB,IAArBojB,EAGhBS,GAAoB,EAEpB3B,EAAe,SAAsBrC,GACvC,IAAI9e,EAAO6gB,EAAQ/B,GACnB,YAAa7f,IAATe,EACKA,GAGT6gB,EAAQ/B,GAAMgC,GAAahC,GAC3BwD,EAAGG,YAAY5B,EAAQ/B,IACvBD,EAAMC,GAAMlU,OAAOgR,OAAO,MAEnBiF,EAAQ/B,KA6Cb1B,EAAM,WACR,IAAIxR,EAAM,GAGV,IAAK,IAAIkT,KAAM+B,EACbjV,GAAOiV,EAAQ/B,GAAIiE,KAGrB,OAAOnX,GAGT,MAAO,CACLyV,MAAO,WACL,MAAM,IAAI1E,GAAsB,IAGlCS,IAAKA,EACLqE,OAAQb,GAAyBC,GACjC7B,aAAcA,GAAaH,GAC3BsC,aAAcA,EACdO,YA9DgB,SAAqB5C,EAAIc,EAAUlf,GAKnD,IAJA,IAAIkhB,EAAST,EAAarC,GACtBkE,EAAc,GACdC,EAAerD,EAASrqB,OAEnBvF,EAAI,EAAGA,EAAIizB,EAAcjzB,GAAK,EAAG,CACxC,IAAIuqB,EAAOqF,EAAS5vB,GAChBkzB,EAAgBL,EACpB,GAAIK,IAA8C,IAA7B3I,EAAK1jB,QAAQ,WAChCmsB,EAAYpiB,KAAK2Z,OACZ,CACL2I,GAAgB,EAChB,IAAIC,EAAYnzB,IAAMizB,EAAe,EAAI,GAAK,IAC9CrB,EAAOwB,WAAW,GAAK7I,EAAO4I,IAIlCvE,GAAaC,EAAOC,EAAIpe,GAEpBmiB,GAAiBG,EAAYztB,OAAS,IACxCutB,GAAoB,EAEpBT,IAAmBX,YAAY5C,EAAK,UAAWkE,KAyCjDrB,YArCgB,SAAqB7C,GACrC,IAAI8C,EAASf,EAAQ/B,GACrB,QAAe7f,IAAX2iB,EAAJ,CAGA,IAAIyB,EAAYvC,GAAahC,GAC7BwD,EAAGgB,aAAaD,EAAWzB,GAC3Bf,EAAQ/B,GAAMuE,EACdtE,GAAaF,EAAOC,GAEhB+D,GAAiBC,GAEnBT,IAAmBV,YAAY7C,EAAK,aA0BtC+C,QAAQ,EACRC,SAAUQ,EACVP,UAAWxB,GAAcnD,EAAKyB,GAC9BmD,OAAQ9B,GAAc9C,EAAKyB,IA4ElB0E,CAAejB,EAAID,GAvRZ,SAAuBC,EAAID,GAC7C,IAAIxD,EAAQjU,OAAOgR,OAAO,MACtBiF,EAAUjW,OAAOgR,OAAO,MACxBoE,EAAQ,GAER6C,OAAqC5jB,IAArBojB,EAEhBS,GAAoB,EAEpB3B,EAAe,SAAsBrC,GACvC,IAAI9e,EAAO6gB,EAAQ/B,GACnB,YAAa7f,IAATe,EACKA,GAGT6gB,EAAQ/B,GAAMkB,EAAMzqB,OACpByqB,EAAMpf,KAAK,GACXme,GAAaF,EAAOC,GAEb+B,EAAQ/B,KAkDb1B,EAAM,WACR,IACIwC,EADeV,GAAYoD,GACH1C,SAExBhU,EAAM,GAGV,IAAK,IAAIkT,KAAM+B,EAAS,CACtBjV,GAAOkU,GAAehB,GAItB,IAHA,IAAI8C,EAASf,EAAQ/B,GACjB0E,EAAMzD,GAAgBC,EAAO4B,GAExB5xB,EAAIwzB,EADFxD,EAAM4B,GACQ5xB,EAAIwzB,EAAKxzB,GAAK,EAAG,CACxC,IAAIuqB,EAAOqF,EAAS5vB,QACPiP,IAATsb,IACF3O,GAAO2O,EAAKkJ,UAKlB,OAAO7X,GAGT,MAAO,CACLyV,MAAO,WACL,MAAM,IAAI1E,GAAsB,IAGlCS,IAAKA,EACLqE,OAAQb,GAAyBC,GACjC7B,aAAcA,GAAaH,GAC3BsC,aAAcA,EACdO,YA/EgB,SAAqB5C,EAAIc,EAAUlf,GASnD,IARA,IAAIkhB,EAAST,EAAarC,GACtBM,EAAQF,GAAYoD,GACpBoB,EAAc3D,GAAgBC,EAAO4B,GAErC+B,EAAgB,EAChBX,EAAc,GACdC,EAAerD,EAASrqB,OAEnBvF,EAAI,EAAGA,EAAIizB,EAAcjzB,GAAK,EAAG,CACxC,IAAI0vB,EAAUE,EAAS5vB,GACnBkzB,EAAgBL,EAChBK,IAAiD,IAAhCxD,EAAQ7oB,QAAQ,WACnCmsB,EAAYpiB,KAAK8e,GACRD,GAAeL,EAAOM,EAASgE,EAAcC,KACtDT,GAAgB,EAChBS,GAAiB,GAIjBd,GAAiBG,EAAYztB,OAAS,IACxCutB,GAAoB,EAEpBT,IAAmBX,YAAY5C,EAAK,UAAWkE,IAGjDhD,EAAM4B,IAAW+B,EACjB/E,GAAaC,EAAOC,EAAIpe,IAqDxBihB,YAlDgB,SAAqB7C,GACrC,IAAI8C,EAASf,EAAQ/B,GACrB,QAAe7f,IAAX2iB,EAAJ,CAEA,IAAIvC,EAAOW,EAAM4B,IAjJH,SAAqBxC,EAAOwE,EAAcvE,GAE1D,IADA,IAAIwE,EAAaD,EAAevE,EACvBrvB,EAAI4zB,EAAc5zB,EAAI6zB,EAAY7zB,GAAK,EAC9CovB,EAAM0E,WAAW9zB,GAiJjB+zB,CAFY7E,GAAYoD,GACLvC,GAAgBC,EAAO4B,GAAU,EACnBvC,GACjCW,EAAM4B,GAAU,EAChB7C,GAAaF,EAAOC,GAEhB+D,GAAiBC,GAEnBT,IAAmBV,YAAY7C,EAAK,aAsCtC+C,QAAQ,EACRC,SAAUQ,EACVP,UAAWxB,GAAcnD,EAAKyB,GAC9BmD,OAAQ9B,GAAc9C,EAAKyB,IA+KlBmF,CAAc1B,EAAID,GAI7B,OAAOrB,MAyBLiD,GAAc,MAGdC,QAAW,EAGbA,GAFE3H,GAESE,GAAiB,GAAK,KAGrB,EAGd,IAAI0H,GAAiB,EACjBC,QAAS,EA+TTC,IA7Ta,WAkBf,SAASC,IACP,IAAItH,EAAQ9lB,KAERkV,EAAS8B,UAAU3Y,OAAS,QAAsB0J,IAAjBiP,UAAU,GAAmBA,UAAU,GAAKqO,GAAa+C,SAASiF,KAAO,KAC1GpC,EAAcjU,UAAU3Y,OAAS,QAAsB0J,IAAjBiP,UAAU,IAAmBA,UAAU,GACjFmN,GAAenkB,KAAMotB,GAErBptB,KAAKmrB,iBAAmB,WACtB,IAAImC,EAAgBxH,EAAMwH,cAE1B,QAAsBvlB,IAAlBulB,EACF,OAAOA,EAGT,IAAIC,EAAWzH,EAAM0H,KAAK,GAG1B,OAAO1H,EAAMwH,cAAgBvC,GAAQjF,EAAM5Q,OAAQqY,EAAWA,EAAS3C,SAAW,KAAM9E,EAAMmF,aAF3E,IAKrBgC,IAAkB,EAClBjtB,KAAK4nB,GAAKqF,GACVjtB,KAAKirB,YAAcA,EACnBjrB,KAAKkV,OAAS+V,EAAc,KAAO/V,EACnClV,KAAKytB,OAAS,GACdztB,KAAK0tB,SAAW,GAChB1tB,KAAK2tB,gBAAkB,GACvB3tB,KAAK4tB,sBAAwB,GAC7B5tB,KAAKwtB,KAAO,GACZxtB,KAAK6tB,SAAW,EAChB7tB,KAAK8tB,OAAS,GAMhBV,EAAWtjB,UAAUikB,UAAY,WAC/B,IAAK1I,IAAcrlB,KAAKirB,YAAa,OAAOjrB,KAE5C,IAAIguB,EAAM,GACNC,EAAY,GACZC,GAAa,EAGb/mB,EAAQihB,SAAS+F,iBAAiB,SAAWhJ,GAAU,KAAOC,GAA5B,aAElCgJ,EAAYjnB,EAAM9I,OAGtB,IAAK+vB,EAAW,OAAOpuB,KAEvB,IAAK,IAAIlH,EAAI,EAAGA,EAAIs1B,EAAWt1B,GAAK,EAAG,CACrC,IAAIsyB,EAAKjkB,EAAMrO,GAGVo1B,IAAYA,IAAe9C,EAAGiD,aAvvBpB,yBA4vBf,IAFA,IAEgB7kB,EAFZ8kB,GAAWlD,EAAGiD,aAAalJ,KAAY,IAAIpmB,OAAOW,MAAMqtB,IACxDwB,EAAcD,EAAQjwB,OACjBlE,EAAI,EAASA,EAAIo0B,EAAap0B,GAAK,EAC1CqP,EAAO8kB,EAAQn0B,GAEf6F,KAAK2tB,gBAAgBnkB,IAAQ,EAI/BykB,EAAUvkB,KAAKuP,MAAMgV,EAAWjI,GAAaoF,EAAGoD,cAGhDR,EAAItkB,KAAK0hB,GAIX,IAAIqD,EAAgBR,EAAU5vB,OAC9B,IAAKowB,EAAe,OAAOzuB,KAG3B,IAAIioB,EAAMjoB,KAAK+qB,QAAQ,OArIX,SAAmB9C,EAAK+F,EAAKC,GAE3C,IAAK,IAAIn1B,EAAI,EAAG41B,EAAMT,EAAU5vB,OAAQvF,EAAI41B,EAAK51B,GAAK,EAAG,CACvD,IAAI61B,EAAeV,EAAUn1B,GACzBstB,EAAcuI,EAAavI,YAC3BG,EAAaoI,EAAapI,WAE1BmC,EAAWnB,GAAahB,GAC5B0B,EAAIuC,YAAYpE,EAAasC,GAI/B,IAAK,IAAIkG,EAAK,EAAGjJ,EAAOqI,EAAI3vB,OAAQuwB,EAAKjJ,EAAMiJ,GAAM,EAAG,CACtD,IAAIxD,EAAK4C,EAAIY,GACTxD,EAAGI,YACLJ,EAAGI,WAAWqD,YAAYzD,IAwH5B2C,CAAU9F,EAAK+F,EAAKC,GAGpBjuB,KAAK6tB,SAAWiB,KAAKxnB,IAAI,EAAG0lB,GAAWyB,GACvCzuB,KAAKwtB,KAAK9jB,KAAKue,GAGf,IAAK,IAAI8G,EAAK,EAAGA,EAAKN,EAAeM,GAAM,EACzC/uB,KAAKytB,OAAOQ,EAAUc,GAAI3I,aAAe6B,EAG3C,OAAOjoB,MASTotB,EAAW4B,MAAQ,WACjB,IAAI/D,EAAcjU,UAAU3Y,OAAS,QAAsB0J,IAAjBiP,UAAU,IAAmBA,UAAU,GAEjFkW,GAAS,IAAIE,OAAWrlB,EAAWkjB,GAAa8C,aAOlDX,EAAWtjB,UAAUqgB,MAAQ,WAC3B,IAAIjC,EAAQ,IAAIkF,EAAWptB,KAAKkV,OAAQlV,KAAKirB,aAsB7C,OAnBAjrB,KAAK8tB,OAAOpkB,KAAKwe,GAGjBA,EAAMsF,KAAOxtB,KAAKwtB,KAAKpZ,KAAI,SAAU6T,GAKnC,IAJA,IAAIgH,EAAMhH,EAAIsC,SACV2E,EAASjH,EAAIkC,QAGRrxB,EAAI,EAAGA,EAAIm2B,EAAI5wB,OAAQvF,GAAK,EACnCovB,EAAMuF,OAAOwB,EAAIn2B,IAAMo2B,EAGzB,OAAOA,KAIThH,EAAMyF,gBAAkBtJ,GAAS,GAAIrkB,KAAK2tB,iBAC1CzF,EAAMwF,SAAWrJ,GAAS,GAAIrkB,KAAK0tB,UAE5BxF,GAMTkF,EAAWtjB,UAAUqlB,YAAc,WACjCnvB,KAAK6tB,SAAW,EAEhB7tB,KAAKwtB,KAAKrsB,SAAQ,SAAU8mB,GAE1BA,EAAI0C,QAAS,MAIjByC,EAAWtjB,UAAUihB,QAAU,SAAoB9C,GACjD,IAAImH,EAASnH,EAAMA,EAAI2C,SAAW,KAGlC,OAAOG,GAAQ/qB,KAAKkV,OAAQka,EAAQpvB,KAAKirB,aAFtB,EAEiDjrB,KAAKmrB,mBAI3EiC,EAAWtjB,UAAUulB,YAAc,SAAqBzH,GAEtD,IAAI9e,EAAO9I,KAAKytB,OAAO7F,GACvB,QAAa7f,IAATe,IAAuBA,EAAK6hB,OAC9B,OAAO7hB,EAGT,IAAImf,EAAMjoB,KAAKwtB,KAAKxtB,KAAKwtB,KAAKnvB,OAAS,GAWvC,OARA2B,KAAK6tB,UAAY,EAEK,IAAlB7tB,KAAK6tB,WACP7tB,KAAK6tB,SAAWb,GAChB/E,EAAMjoB,KAAK+qB,QAAQ9C,GACnBjoB,KAAKwtB,KAAK9jB,KAAKue,IAGVjoB,KAAKytB,OAAO7F,GAAMK,GAM3BmF,EAAWtjB,UAAUwlB,MAAQ,SAAe1H,GAC1C,YAA2B7f,IAApB/H,KAAKytB,OAAO7F,IAMrBwF,EAAWtjB,UAAUge,aAAe,SAAsBF,EAAIpe,GAE5D,QAAuCzB,IAAnC/H,KAAK4tB,sBAAsBhG,IAAqB5nB,KAAK2tB,gBAAgBnkB,GACvE,OAAO,EAGT,IAAIye,EAAMjoB,KAAKytB,OAAO7F,GACtB,YAAe7f,IAARkgB,GAAqBA,EAAIH,aAAaF,EAAIpe,IAMnD4jB,EAAWtjB,UAAUylB,eAAiB,SAAwB3H,EAAIc,GAEhE,QAAwB3gB,IAApB/H,KAAKytB,OAAO7F,GAAhB,CAIA,IAFA,IAAIkG,EAAS9tB,KAAK8tB,OAETh1B,EAAI,EAAGA,EAAIg1B,EAAOzvB,OAAQvF,GAAK,EACtCg1B,EAAOh1B,GAAGy2B,eAAe3H,EAAIc,GAG/B1oB,KAAKqvB,YAAYzH,GAAIqC,aAAarC,GAClC5nB,KAAK0tB,SAAS9F,GAAMc,IAMtB0E,EAAWtjB,UAAU0lB,OAAS,SAAgB5H,EAAIc,EAAUlf,GAI1D,IAHA,IAAIskB,EAAS9tB,KAAK8tB,OAGTh1B,EAAI,EAAGA,EAAIg1B,EAAOzvB,OAAQvF,GAAK,EACtCg1B,EAAOh1B,GAAG02B,OAAO5H,EAAIc,EAAUlf,GAGjC,IAAIye,EAAMjoB,KAAKqvB,YAAYzH,GAG3B,QAA0B7f,IAAtB/H,KAAK0tB,SAAS9F,GAAmB,CAInC,IAAIzE,EAAQnjB,KAAK0tB,SAAS9F,GAAInG,OAAOiH,GACrCT,EAAIuC,YAAY5C,EAAIzE,EAAO3Z,GAE3BxJ,KAAK0tB,SAAS9F,QAAM7f,OAEpBkgB,EAAIuC,YAAY5C,EAAIc,EAAUlf,IAOlC4jB,EAAWtjB,UAAU2lB,OAAS,SAAgB7H,GAC5C,IAAIK,EAAMjoB,KAAKytB,OAAO7F,GACtB,QAAY7f,IAARkgB,EAAJ,CAIA,IAFA,IAAI6F,EAAS9tB,KAAK8tB,OAETh1B,EAAI,EAAGA,EAAIg1B,EAAOzvB,OAAQvF,GAAK,EACtCg1B,EAAOh1B,GAAG22B,OAAO7H,GAInBK,EAAIwC,YAAY7C,GAGhB5nB,KAAK4tB,sBAAsBhG,IAAM,EAGjC5nB,KAAK0tB,SAAS9F,QAAM7f,IAGtBqlB,EAAWtjB,UAAUghB,OAAS,WAC5B,OAAO9qB,KAAKwtB,KAAKpZ,KAAI,SAAU6T,GAC7B,OAAOA,EAAI6C,YACVzrB,KAAK,KAGV+tB,EAAWtjB,UAAU4lB,gBAAkB,WACrC,IAAI9H,EAAK5nB,KAAK4nB,GAGd,OAAO5nB,KAAKwtB,KAAKpZ,KAAI,SAAU6T,EAAKnvB,GAClC,IAAI2b,EAAM,MAAQmT,EAAK,IAAM9uB,EAC7B,OAAO62B,EAAAA,EAAAA,cAAa1H,EAAI4C,YAAa,CAAEpW,IAAKA,QAIhD2P,GAAYgJ,EAAY,KAAM,CAAC,CAC7B3Y,IAAK,SACLmb,IAAK,WACH,OAAO1C,KAAWA,IAAS,IAAIE,GAAaW,eAK7C,CACDtZ,IAAK,WACLmb,IAAK,WACH,OAAOxC,EAAWF,WArTP,GA6TD,WACd,SAASC,EAAU3jB,EAAM2Z,GACvB,IAAI2C,EAAQ9lB,KAEZmkB,GAAenkB,KAAMmtB,GAErBntB,KAAKwvB,OAAS,SAAUK,GACjBA,EAAW/H,aAAahC,EAAM8B,GAAI9B,EAAMtc,OAC3CqmB,EAAWL,OAAO1J,EAAM8B,GAAI9B,EAAM3C,MAAO2C,EAAMtc,OAInDxJ,KAAK+J,SAAW,WACd,MAAM,IAAI0b,GAAsB,GAAIxO,OAAO6O,EAAMtc,QAGnDxJ,KAAKwJ,KAAOA,EACZxJ,KAAKmjB,MAAQA,EAEbnjB,KAAK4nB,GAAK,gBAAkBpe,EAO9B,OAJA2jB,EAAUrjB,UAAUgmB,QAAU,WAC5B,OAAO9vB,KAAKwJ,MAGP2jB,EA1BO,IAoCZ4C,GAAmB,WACnBC,GAAY,OA4ChB,IAAIC,GAAY,SAAmBC,GACjC,OAAOA,MAAAA,IAAmD,IAAVA,GAA6B,KAAVA,GAGjEC,GAAW,SAASA,EAASrc,EAAKsc,GACpC,IAAIlK,EAAMxS,OAAOoB,KAAKhB,GAAKqV,QAAO,SAAU1U,GAC1C,OAAQwb,GAAUnc,EAAIW,OACrBL,KAAI,SAAUK,GACf,OAAIuQ,GAAclR,EAAIW,IAAc0b,EAASrc,EAAIW,GAAMA,GAC7BA,EAlCd3V,QAAQixB,GAAkB,OAAO/O,cAAcliB,QAAQkxB,GAAW,QAkC7C,MA5BZxmB,EA4BmCiL,GAzB7C,OAHgB3M,EA4BkCgM,EAAIW,KAzB7B,kBAAV3M,GAAiC,KAAVA,EAC1C,GAGY,iBAAVA,GAAgC,IAAVA,GAAiB0B,KAAQpI,EAInD6V,OAAOnP,GAAO/I,OAHZ+I,EAAQ,MAoB0D,KA5B7E,IAAyB0B,EAAM1B,KA6B1BzI,KAAK,KACR,OAAO+wB,EAAUA,EAAU,SAAWlK,EAAM,MAAQA,GAGtD,SAASmK,GAAQH,EAAOI,EAAkBT,GACxC,GAAIpwB,MAAMgI,QAAQyoB,GAAQ,CAGxB,IAFA,IAEoC3oB,EAFhCgpB,EAAU,GAELz3B,EAAI,EAAG41B,EAAMwB,EAAM7xB,OAAgBvF,EAAI41B,EAAK51B,GAAK,EAGzC,QAFfyO,EAAS8oB,GAAQH,EAAMp3B,GAAIw3B,EAAkBT,MAENpwB,MAAMgI,QAAQF,GAASgpB,EAAQ7mB,KAAKuP,MAAMsX,EAAShpB,GAAagpB,EAAQ7mB,KAAKnC,IAGtH,OAAOgpB,EAGT,OAAIN,GAAUC,GACL,KAILjL,GAAkBiL,GACb,IAAMA,EAAMhL,kBAIjBhB,GAAWgM,GApsCQ,mBADIpwB,EAssCDowB,IArsCapwB,EAAKgK,WAAahK,EAAKgK,UAAU0mB,mBAqsCpCF,EASpBJ,EADLG,GAPOH,EAAMI,GAOIA,EAAkBT,GAI1CK,aAAiB/C,GACf0C,GACFK,EAAMV,OAAOK,GACNK,EAAMJ,WACDI,EAITlL,GAAckL,GAASC,GAASD,GAASA,EAAMnmB,WAnBlD,IAvsCuBjK,EA8tC7B,IAAI2wB,GAAU,GAEd,SAASC,GAASC,GACZF,GAAQE,KACZF,GAAQE,IAAW,EAEI,oBAAZC,SAA2BA,QAAQC,MAAMD,QAAQC,KAAKF,IAInE,IAAIG,GAAe,IAAIjyB,WAAW,GAC9BkyB,GAAe,IAAIlyB,WAAW,GAC9BmyB,GAAY,KAAKnyB,WAAW,GAC5BuY,GAAQ,IAAIvY,WAAW,GACvBoyB,GAAU,KAAKpyB,WAAW,GAC1BsY,GAAQ,IAAItY,WAAW,GACvBqyB,GAAO,KAAKryB,WAAW,GACvBsyB,GAAM,KAAKtyB,WAAW,GACtBuyB,GAAK,KAAKvyB,WAAW,GACrBwyB,GAAc,IAAIxyB,WAAW,GAC7ByyB,GAAe,IAAIzyB,WAAW,GAC9B0yB,GAAmB,IAAI1yB,WAAW,GAClC2yB,GAAoB,IAAI3yB,WAAW,GACnC4yB,GAAa,IAAI5yB,WAAW,GAC5B6yB,GAAc,IAAI7yB,WAAW,GAC7B8yB,GAAY,IAAI9yB,WAAW,GAC3B+yB,GAAW,IAAI/yB,WAAW,GAC1BgzB,GAAQ,IAAIhzB,WAAW,GACvBizB,GAAK,IAAIjzB,WAAW,GAEpBkzB,GAAY,gCACZC,GAAc,6CACdC,GAAiB,gBAErB,SAASC,GAAStpB,GAChB,IAAIupB,EAAUnb,UAAU3Y,OAAS,QAAsB0J,IAAjBiP,UAAU,GAAmBA,UAAU,GAAK,GAE9E5N,EAAS,GACT8c,EAAMtd,EAAMsd,IAAIkM,UAEhBC,EAASF,EAAQG,aAEjBjpB,OAAO,EACPR,OAAO,EACPb,OAAQ,EACR+Y,OAAQ,EACRwR,OAAO,EACP5xB,OAAU,EACVqI,OAAS,EACTwpB,OAAW,EACXC,OAAa,EACbC,OAAU,EACVzpB,OAAY,EACZH,OAAO,EACP9P,OAAI,EAEJqF,EAAS6nB,EAAI7nB,OACb6c,GAAU,EACVpa,EAAO,EACP0D,EAAM,EAEV,SAASyD,EAAS0qB,GAChB,MAAM/pB,EAAMgqB,MAAM,YAAcD,EAAM7xB,EAAM0D,EAAM0W,GAGpD,KAAO1W,EAAMnG,GAAQ,CAQnB,SAPAgL,EAAO6c,EAAIrnB,WAAW2F,MAETysB,IAAW5nB,IAAS6nB,IAAQ7nB,IAAS+nB,IAAMlL,EAAIrnB,WAAW2F,EAAM,KAAOysB,MAClF/V,EAAS1W,EACT1D,GAAQ,GAGFuI,GACN,KAAK4nB,GACL,KAAK9Z,GACL,KAAKga,GACL,KAAKC,GACL,KAAKF,GACHroB,EAAOrE,EACP,GACEqE,GAAQ,GACRQ,EAAO6c,EAAIrnB,WAAWgK,MACTooB,KACX/V,EAASrS,EACT/H,GAAQ,SAEHuI,IAAS8N,IAAS9N,IAAS4nB,IAAW5nB,IAAS8nB,IAAO9nB,IAAS+nB,IAAM/nB,IAAS6nB,IAEvF9nB,EAAOM,KAAK,CAAC,QAASwc,EAAIzc,MAAMjF,EAAKqE,KACrCrE,EAAMqE,EAAO,EACb,MAEF,KAAKwoB,GACHjoB,EAAOM,KAAK,CAAC,IAAK,IAAK5I,EAAM0D,EAAM0W,IACnC,MAEF,KAAKoW,GACHloB,EAAOM,KAAK,CAAC,IAAK,IAAK5I,EAAM0D,EAAM0W,IACnC,MAEF,KAAKuW,GACHroB,EAAOM,KAAK,CAAC,IAAK,IAAK5I,EAAM0D,EAAM0W,IACnC,MAEF,KAAKwW,GACHtoB,EAAOM,KAAK,CAAC,IAAK,IAAK5I,EAAM0D,EAAM0W,IACnC,MAEF,KAAK2W,GACHzoB,EAAOM,KAAK,CAAC,IAAK,IAAK5I,EAAM0D,EAAM0W,IACnC,MAEF,KAAKyW,GACHvoB,EAAOM,KAAK,CAAC,IAAK,IAAK5I,EAAM0D,EAAM0W,IACnC,MAEF,KAAKqW,GAGH,GAFAzoB,EAAOM,EAAO/K,OAAS+K,EAAOA,EAAO/K,OAAS,GAAG,GAAK,GACtDrF,EAAIktB,EAAIrnB,WAAW2F,EAAM,GACZ,QAATsE,GAAkB9P,IAAM83B,IAAgB93B,IAAM+3B,IAAgB/3B,IAAMme,IAASne,IAAMi4B,IAAWj4B,IAAMm4B,IAAOn4B,IAAMk4B,IAAQl4B,IAAMo4B,GAAI,CACrIvoB,EAAOrE,EACP,EAAG,CAGD,GAFAkuB,GAAU,GAEI,KADd7pB,EAAOqd,EAAIvmB,QAAQ,IAAKkJ,EAAO,IACd,CACf,GAAIwpB,EAAQ,CACVxpB,EAAOrE,EACP,MAEAyD,EAAS,WAIb,IADAgB,EAAYJ,EACLqd,EAAIrnB,WAAWoK,EAAY,KAAO+nB,IACvC/nB,GAAa,EACbypB,GAAWA,QAENA,GAETtpB,EAAOM,KAAK,CAAC,WAAYwc,EAAIzc,MAAMjF,EAAKqE,EAAO,GAAI/H,EAAM0D,EAAM0W,EAAQpa,EAAM+H,EAAOqS,IACpF1W,EAAMqE,OAENA,EAAOqd,EAAIvmB,QAAQ,IAAK6E,EAAM,GAC9B7D,EAAUulB,EAAIzc,MAAMjF,EAAKqE,EAAO,IAElB,IAAVA,GAAeopB,GAAenyB,KAAKa,GACrCyI,EAAOM,KAAK,CAAC,IAAK,IAAK5I,EAAM0D,EAAM0W,KAEnC9R,EAAOM,KAAK,CAAC,WAAY/I,EAASG,EAAM0D,EAAM0W,EAAQpa,EAAM+H,EAAOqS,IACnE1W,EAAMqE,GAIV,MAEF,KAAK2oB,GACHpoB,EAAOM,KAAK,CAAC,IAAK,IAAK5I,EAAM0D,EAAM0W,IACnC,MAEF,KAAK4V,GACL,KAAKC,GACH/oB,EAAQqB,IAASynB,GAAe,IAAM,IACtCjoB,EAAOrE,EACP,EAAG,CAGD,GAFAkuB,GAAU,GAEI,KADd7pB,EAAOqd,EAAIvmB,QAAQqI,EAAOa,EAAO,IAChB,CACf,GAAIwpB,EAAQ,CACVxpB,EAAOrE,EAAM,EACb,MAEAyD,EAAS,SAIb,IADAgB,EAAYJ,EACLqd,EAAIrnB,WAAWoK,EAAY,KAAO+nB,IACvC/nB,GAAa,EACbypB,GAAWA,QAENA,IAITH,GADAxR,GADApgB,EAAUulB,EAAIzc,MAAMjF,EAAKqE,EAAO,IAChBnJ,MAAM,OACTrB,OAAS,GAEX,GACTm0B,EAAW1xB,EAAOyxB,EAClBE,EAAa5pB,EAAOkY,EAAMwR,GAAMl0B,SAEhCm0B,EAAW1xB,EACX2xB,EAAavX,GAGf9R,EAAOM,KAAK,CAAC,SAAUwc,EAAIzc,MAAMjF,EAAKqE,EAAO,GAAI/H,EAAM0D,EAAM0W,EAAQsX,EAAU3pB,EAAO4pB,IAEtFvX,EAASuX,EACT3xB,EAAO0xB,EACPhuB,EAAMqE,EACN,MAEF,KAAKipB,GACHC,GAAUc,UAAYruB,EAAM,EAC5ButB,GAAUjyB,KAAKomB,GAEbrd,EAD0B,IAAxBkpB,GAAUc,UACL3M,EAAI7nB,OAAS,EAEb0zB,GAAUc,UAAY,EAE/BzpB,EAAOM,KAAK,CAAC,UAAWwc,EAAIzc,MAAMjF,EAAKqE,EAAO,GAAI/H,EAAM0D,EAAM0W,EAAQpa,EAAM+H,EAAOqS,IACnF1W,EAAMqE,EACN,MAEF,KAAKmoB,GAGH,IAFAnoB,EAAOrE,EACPwE,GAAS,EACFkd,EAAIrnB,WAAWgK,EAAO,KAAOmoB,IAClCnoB,GAAQ,EACRG,GAAUA,EAEZK,EAAO6c,EAAIrnB,WAAWgK,EAAO,GACzBG,GAAUK,IAAS+N,IAAS/N,IAAS8N,IAAS9N,IAAS4nB,IAAW5nB,IAAS8nB,IAAO9nB,IAAS+nB,IAAM/nB,IAAS6nB,KAC5GroB,GAAQ,GAEVO,EAAOM,KAAK,CAAC,OAAQwc,EAAIzc,MAAMjF,EAAKqE,EAAO,GAAI/H,EAAM0D,EAAM0W,EAAQpa,EAAM+H,EAAOqS,IAChF1W,EAAMqE,EACN,MAEF,QACMQ,IAAS+N,IAAS8O,EAAIrnB,WAAW2F,EAAM,KAAOotB,IAEnC,KADb/oB,EAAOqd,EAAIvmB,QAAQ,KAAM6E,EAAM,GAAK,KAE9B6tB,EACFxpB,EAAOqd,EAAI7nB,OAEX4J,EAAS,aAMbsqB,GADAxR,GADApgB,EAAUulB,EAAIzc,MAAMjF,EAAKqE,EAAO,IAChBnJ,MAAM,OACTrB,OAAS,GAEX,GACTm0B,EAAW1xB,EAAOyxB,EAClBE,EAAa5pB,EAAOkY,EAAMwR,GAAMl0B,SAEhCm0B,EAAW1xB,EACX2xB,EAAavX,GAGf9R,EAAOM,KAAK,CAAC,UAAW/I,EAASG,EAAM0D,EAAM0W,EAAQsX,EAAU3pB,EAAO4pB,IAEtEvX,EAASuX,EACT3xB,EAAO0xB,EACPhuB,EAAMqE,IAENmpB,GAAYa,UAAYruB,EAAM,EAC9BwtB,GAAYlyB,KAAKomB,GAEfrd,EAD4B,IAA1BmpB,GAAYa,UACP3M,EAAI7nB,OAAS,EAEb2zB,GAAYa,UAAY,EAGjCzpB,EAAOM,KAAK,CAAC,OAAQwc,EAAIzc,MAAMjF,EAAKqE,EAAO,GAAI/H,EAAM0D,EAAM0W,EAAQpa,EAAM+H,EAAOqS,IAChF1W,EAAMqE,GAMZrE,IAGF,OAAO4E,EAKT,IAAI0pB,GAAkB,CACpBC,SAAU,CAAC,GAAI,IACf1L,OAAQ,CAAC,GAAI,IACb,UAAW,CAAC,GAAI,IAChB2L,QAAS,CAAC,GAAI,IACd,IAAK,CAAC,GAAI,IACV,IAAK,CAAC,GAAI,IACV,IAAK,CAAC,EAAG,IACT,IAAK,CAAC,EAAG,IACT,IAAK,CAAC,EAAG,IACT,IAAK,CAAC,EAAG,KAGX,SAAS3pB,GAAK4R,GACZ,MAAO,KAAUA,EAAQ,IAiD3B,IAAIgY,GAAiB,WASnB,SAASA,EAAetC,EAAS7vB,EAAMC,EAAQujB,EAAQ4O,EAAMC,GAC3DhP,GAAenkB,KAAMizB,GAcrBjzB,KAAKwJ,KAAO,iBAOZxJ,KAAKozB,OAASzC,EAEVuC,IAQFlzB,KAAKkzB,KAAOA,GAEV5O,IAQFtkB,KAAKskB,OAASA,GAEZ6O,IAOFnzB,KAAKmzB,OAASA,QAEI,IAATryB,QAA0C,IAAXC,IAQxCf,KAAKc,KAAOA,EAQZd,KAAKe,OAASA,GAGhBf,KAAKqzB,aAEDlR,MAAMmR,mBACRnR,MAAMmR,kBAAkBtzB,KAAMizB,GAgHlC,OA5GAA,EAAenpB,UAAUupB,WAAa,WAQpCrzB,KAAK2wB,QAAU3wB,KAAKmzB,OAASnzB,KAAKmzB,OAAS,KAAO,GAClDnzB,KAAK2wB,SAAW3wB,KAAKkzB,KAAOlzB,KAAKkzB,KAAO,mBACf,IAAdlzB,KAAKc,OACdd,KAAK2wB,SAAW,IAAM3wB,KAAKc,KAAO,IAAMd,KAAKe,QAE/Cf,KAAK2wB,SAAW,KAAO3wB,KAAKozB,QA0B9BH,EAAenpB,UAAUypB,eAAiB,SAAwBtY,GAChE,IAAI6K,EAAQ9lB,KAEZ,IAAKA,KAAKskB,OAAQ,MAAO,GAEzB,IAAI4B,EAAMlmB,KAAKskB,YACM,IAAVrJ,IAAuBA,EAAQ3U,GACtC2U,IAAOiL,EApLf,SAA2BA,GACzB,IAAI9c,EAAS8oB,GAAS,IAAIsB,GAAMtN,GAAM,CAAEoM,cAAc,IAClD/qB,EAAS,GAWb,OAVA6B,EAAOjI,SAAQ,SAAU4H,GACvB,IAAIkS,EAAQ6X,GAAgB/pB,EAAM,IAC9BkS,EACF1T,EAAOmC,KAAKX,EAAM,GAAGrJ,MAAM,SAAS0U,KAAI,SAAUtb,GAChD,OAAOuQ,GAAK4R,EAAM,IAAMniB,EAAIuQ,GAAK4R,EAAM,OACtC5b,KAAK,OAERkI,EAAOmC,KAAKX,EAAM,OAGfxB,EAAOlI,KAAK,IAuKAo0B,CAAkBvN,IAEnC,IAAInF,EAAQmF,EAAIxmB,MAAM,SAClBg0B,EAAQ5E,KAAKxnB,IAAItH,KAAKc,KAAO,EAAG,GAChCwrB,EAAMwC,KAAK/pB,IAAI/E,KAAKc,KAAO,EAAGigB,EAAM1iB,QAEpCs1B,EAAW1c,OAAOqV,GAAKjuB,OAE3B,OAAO0iB,EAAMtX,MAAMiqB,EAAOpH,GAAKlY,KAAI,SAAUtT,EAAMihB,GACjD,IAAI3X,EAASspB,EAAQ,EAAI3R,EAErB6R,EAAS,KADC,IAAMxpB,GAAQX,OAAOkqB,GACP,MAC5B,GAAIvpB,IAAW0b,EAAMhlB,KAAM,CACzB,IAAI+yB,EAAUD,EAAO90B,QAAQ,MAAO,KAAOgC,EAAK2I,MAAM,EAAGqc,EAAM/kB,OAAS,GAAGjC,QAAQ,SAAU,KAC7F,MAAO,IAAM80B,EAAS9yB,EAAO,MAAQ+yB,EAAU,IAE/C,MAAO,IAAMD,EAAS9yB,KAEvBzB,KAAK,OAeV4zB,EAAenpB,UAAUC,SAAW,WAClC,IAAIV,EAAOrJ,KAAKuzB,iBAIhB,OAHIlqB,IACFA,EAAO,OAASA,EAAO,MAElBrJ,KAAKwJ,KAAO,KAAOxJ,KAAK2wB,QAAUtnB,GAG3C+a,GAAY6O,EAAgB,CAAC,CAC3Bxe,IAAK,YACLmb,IAAK,WAEH,OADAc,GAAS,8DACF1wB,KAAK4I,UAiBTqqB,EApMY,GA0MjBa,GAAa,CACf9sB,MAAO,KACP+sB,OAAQ,OACRC,WAAY,KACZC,WAAY,KACZC,WAAY,IACZC,YAAa,KACbC,cAAe,KACfjsB,MAAO,KACPksB,UAAW,GACXC,YAAa,IACbC,aAAc,KAOhB,IAAIC,GAAc,WAChB,SAASA,EAAYC,GACnBtQ,GAAenkB,KAAMw0B,GAErBx0B,KAAKy0B,QAAUA,EA6SjB,OA1SAD,EAAY1qB,UAAU1B,UAAY,SAAmB/C,EAAMwhB,GACzD7mB,KAAKqF,EAAKmC,MAAMnC,EAAMwhB,IAGxB2N,EAAY1qB,UAAU4qB,KAAO,SAAcrvB,GACzCrF,KAAK20B,KAAKtvB,GACNA,EAAKuvB,KAAKzsB,OAAOnI,KAAKy0B,QAAQpvB,EAAKuvB,KAAKzsB,QAG9CqsB,EAAY1qB,UAAUkpB,QAAU,SAAiB3tB,GAC/C,IAAIqU,EAAO1Z,KAAK60B,IAAIxvB,EAAM,OAAQ,eAC9BiU,EAAQtZ,KAAK60B,IAAIxvB,EAAM,QAAS,gBACpCrF,KAAKy0B,QAAQ,KAAO/a,EAAOrU,EAAKyvB,KAAOxb,EAAQ,KAAMjU,IAGvDmvB,EAAY1qB,UAAUirB,KAAO,SAAc1vB,EAAMwhB,GAC/C,IAAImO,EAAUh1B,KAAK60B,IAAIxvB,EAAM,UAAW,SACpCgiB,EAAShiB,EAAK4vB,KAAOD,EAAUh1B,KAAKk1B,SAAS7vB,EAAM,SAEnDA,EAAK8vB,YACP9N,GAAUhiB,EAAKuvB,KAAKO,WAAa,eAG/BtO,IAAWQ,GAAU,KACzBrnB,KAAKy0B,QAAQpN,EAAQhiB,IAGvBmvB,EAAY1qB,UAAUuZ,KAAO,SAAche,GACzCrF,KAAKS,MAAM4E,EAAMrF,KAAKk1B,SAAS7vB,EAAM,cAGvCmvB,EAAY1qB,UAAUsrB,OAAS,SAAgB/vB,EAAMwhB,GACnD,IAAIrd,EAAO,IAAMnE,EAAKmE,KAClB6rB,EAAShwB,EAAKgwB,OAASr1B,KAAKk1B,SAAS7vB,EAAM,UAAY,GAQ3D,QANmC,IAAxBA,EAAKuvB,KAAKU,UACnB9rB,GAAQnE,EAAKuvB,KAAKU,UACTD,IACT7rB,GAAQ,KAGNnE,EAAK8B,MACPnH,KAAKS,MAAM4E,EAAMmE,EAAO6rB,OACnB,CACL,IAAI/I,GAAOjnB,EAAKuvB,KAAKI,SAAW,KAAOnO,EAAY,IAAM,IACzD7mB,KAAKy0B,QAAQjrB,EAAO6rB,EAAS/I,EAAKjnB,KAItCmvB,EAAY1qB,UAAU6qB,KAAO,SAActvB,GAEzC,IADA,IAAIktB,EAAOltB,EAAK8B,MAAM9I,OAAS,EACxBk0B,EAAO,GACkB,YAA1BltB,EAAK8B,MAAMorB,GAAM/qB,MACrB+qB,GAAQ,EAIV,IADA,IAAI1L,EAAY7mB,KAAK60B,IAAIxvB,EAAM,aACtBvM,EAAI,EAAGA,EAAIuM,EAAK8B,MAAM9I,OAAQvF,IAAK,CAC1C,IAAIy8B,EAAQlwB,EAAK8B,MAAMrO,GACnBoP,EAASlI,KAAK60B,IAAIU,EAAO,UACzBrtB,GAAQlI,KAAKy0B,QAAQvsB,GACzBlI,KAAKoI,UAAUmtB,EAAOhD,IAASz5B,GAAK+tB,KAIxC2N,EAAY1qB,UAAUrJ,MAAQ,SAAe4E,EAAMquB,GACjD,IAAIsB,EAAUh1B,KAAK60B,IAAIxvB,EAAM,UAAW,cACxCrF,KAAKy0B,QAAQf,EAAQsB,EAAU,IAAK3vB,EAAM,SAE1C,IAAI8C,OAAQ,EACR9C,EAAK8B,OAAS9B,EAAK8B,MAAM9I,QAC3B2B,KAAK20B,KAAKtvB,GACV8C,EAAQnI,KAAK60B,IAAIxvB,EAAM,UAEvB8C,EAAQnI,KAAK60B,IAAIxvB,EAAM,QAAS,aAG9B8C,GAAOnI,KAAKy0B,QAAQtsB,GACxBnI,KAAKy0B,QAAQ,IAAKpvB,EAAM,QAG1BmvB,EAAY1qB,UAAU+qB,IAAM,SAAaxvB,EAAMmwB,EAAKC,GAClD,IAAI3tB,OAAQ,EAIZ,GAHK2tB,IAAQA,EAASD,GAGlBA,QAEmB,KADrB1tB,EAAQzC,EAAKuvB,KAAKY,IACgB,OAAO1tB,EAG3C,IAAIqB,EAAS9D,EAAK8D,OAGlB,GAAe,WAAXssB,KACGtsB,GAA0B,SAAhBA,EAAO3B,MAAmB2B,EAAOusB,QAAUrwB,GACxD,MAAO,GAKX,IAAK8D,EAAQ,OAAO2qB,GAAW2B,GAG/B,IAAIf,EAAOrvB,EAAKqvB,OAEhB,GADKA,EAAKiB,WAAUjB,EAAKiB,SAAW,SACC,IAA1BjB,EAAKiB,SAASF,GACvB,OAAOf,EAAKiB,SAASF,GAGvB,GAAe,WAAXA,GAAkC,UAAXA,EACzB,OAAOz1B,KAAK41B,YAAYvwB,EAAMowB,GAE9B,IA5Hc/gB,EA4HVmhB,EAAS,QA5HCnhB,EA4HkB+gB,GA3HzB,GAAG9gB,cAAgBD,EAAIjL,MAAM,IAyItC,OAbMzJ,KAAK61B,GACP/tB,EAAQ9H,KAAK61B,GAAQnB,EAAMrvB,GAE3BqvB,EAAKxtB,MAAK,SAAUpO,GAElB,QAAqB,KADrBgP,EAAQhP,EAAE87B,KAAKY,IACmB,OAAO,UAK1B,IAAV1tB,IAAuBA,EAAQgsB,GAAW2B,IAErDf,EAAKiB,SAASF,GAAU3tB,EACjBA,GAGT0sB,EAAY1qB,UAAUgsB,aAAe,SAAsBpB,GACzD,IAAI5sB,OAAQ,EAOZ,OANA4sB,EAAKxtB,MAAK,SAAUpO,GAClB,GAAIA,EAAEqO,OAASrO,EAAEqO,MAAM9I,QAA0B,SAAhBvF,EAAEy5B,KAAK/qB,WAEjB,KADrBM,EAAQhP,EAAE87B,KAAK/N,WACmB,OAAO,KAGtC/e,GAGT0sB,EAAY1qB,UAAUisB,aAAe,SAAsBrB,GACzD,IAAI5sB,OAAQ,EAOZ,OANA4sB,EAAKxtB,MAAK,SAAUpO,GAClB,GAAIA,EAAEqO,OAA4B,IAAnBrO,EAAEqO,MAAM9I,aAEA,KADrByJ,EAAQhP,EAAE87B,KAAKzsB,OACmB,OAAO,KAGtCL,GAGT0sB,EAAY1qB,UAAUksB,UAAY,SAAmBtB,GACnD,GAAIA,EAAKE,KAAKb,OAAQ,OAAOW,EAAKE,KAAKb,OACvC,IAAIjsB,OAAQ,EAYZ,OAXA4sB,EAAKxtB,MAAK,SAAUpO,GAClB,IAAIS,EAAIT,EAAEqQ,OACV,GAAI5P,GAAKA,IAAMm7B,GAAQn7B,EAAE4P,QAAU5P,EAAE4P,SAAWurB,QACjB,IAAlB57B,EAAE87B,KAAK1sB,OAAwB,CACxC,IAAI+tB,EAAQn9B,EAAE87B,KAAK1sB,OAAOxI,MAAM,MAGhC,OADAoI,GADAA,EAAQmuB,EAAMA,EAAM53B,OAAS,IACfS,QAAQ,SAAU,KACzB,MAINgJ,GAGT0sB,EAAY1qB,UAAUosB,iBAAmB,SAA0BxB,EAAMrvB,GACvE,IAAIyC,OAAQ,EAaZ,OAZA4sB,EAAKyB,cAAa,SAAUr9B,GAC1B,QAA6B,IAAlBA,EAAE87B,KAAK1sB,OAKhB,OAH6B,KAD7BJ,EAAQhP,EAAE87B,KAAK1sB,QACLvI,QAAQ,QAChBmI,EAAQA,EAAMhJ,QAAQ,UAAW,MAE5B,UAGU,IAAVgJ,IACTA,EAAQ9H,KAAK60B,IAAIxvB,EAAM,KAAM,eAExByC,GAGT0sB,EAAY1qB,UAAUssB,cAAgB,SAAuB1B,EAAMrvB,GACjE,IAAIyC,OAAQ,EAaZ,OAZA4sB,EAAK2B,WAAU,SAAUv9B,GACvB,QAA6B,IAAlBA,EAAE87B,KAAK1sB,OAKhB,OAH6B,KAD7BJ,EAAQhP,EAAE87B,KAAK1sB,QACLvI,QAAQ,QAChBmI,EAAQA,EAAMhJ,QAAQ,UAAW,MAE5B,UAGU,IAAVgJ,IACTA,EAAQ9H,KAAK60B,IAAIxvB,EAAM,KAAM,eAExByC,GAGT0sB,EAAY1qB,UAAUwsB,cAAgB,SAAuB5B,GAC3D,IAAI5sB,OAAQ,EAYZ,OAXA4sB,EAAKxtB,MAAK,SAAUpO,GAClB,GAAIA,EAAEqO,QAAUrO,EAAEqQ,SAAWurB,GAAQA,EAAKgB,QAAU58B,SACrB,IAAlBA,EAAE87B,KAAK1sB,OAKhB,OAH6B,KAD7BJ,EAAQhP,EAAE87B,KAAK1sB,QACLvI,QAAQ,QAChBmI,EAAQA,EAAMhJ,QAAQ,UAAW,MAE5B,KAINgJ,GAGT0sB,EAAY1qB,UAAUysB,eAAiB,SAAwB7B,GAC7D,IAAI5sB,OAAQ,EAYZ,OAXA4sB,EAAKxtB,MAAK,SAAUpO,GAClB,GAAIA,EAAEqO,OAASrO,EAAEqO,MAAM9I,OAAS,QACF,IAAjBvF,EAAE87B,KAAKzsB,MAKhB,OAH6B,KAD7BL,EAAQhP,EAAE87B,KAAKzsB,OACLxI,QAAQ,QAChBmI,EAAQA,EAAMhJ,QAAQ,UAAW,MAE5B,KAINgJ,GAGT0sB,EAAY1qB,UAAU0sB,cAAgB,SAAuB9B,GAC3D,IAAI5sB,OAAQ,EAOZ,OANA4sB,EAAKxtB,MAAK,SAAUpO,GAClB,GAAe,SAAXA,EAAE0O,WAEiB,KADrBM,EAAQhP,EAAE87B,KAAKI,SACmB,OAAO,KAGtCltB,GAGT0sB,EAAY1qB,UAAU2sB,SAAW,SAAkB/B,GACjD,IAAI5sB,OAAQ,EAOZ,OANA4sB,EAAK2B,WAAU,SAAUv9B,GACvB,QAA8B,IAAnBA,EAAE87B,KAAKI,QAEhB,OADAltB,EAAQhP,EAAE87B,KAAKI,QAAQl2B,QAAQ,UAAW,KACnC,KAGJgJ,GAGT0sB,EAAY1qB,UAAU8rB,YAAc,SAAqBvwB,EAAMowB,GAC7D,IAAI3tB,OAAQ,EAEVA,EADgB,SAAdzC,EAAKmC,KACCxH,KAAK60B,IAAIxvB,EAAM,KAAM,cACN,YAAdA,EAAKmC,KACNxH,KAAK60B,IAAIxvB,EAAM,KAAM,iBACT,WAAXowB,EACDz1B,KAAK60B,IAAIxvB,EAAM,KAAM,cAErBrF,KAAK60B,IAAIxvB,EAAM,KAAM,eAK/B,IAFA,IAAIuC,EAAMvC,EAAK8D,OACXlI,EAAQ,EACL2G,GAAoB,SAAbA,EAAIJ,MAChBvG,GAAS,EACT2G,EAAMA,EAAIuB,OAGZ,IAA6B,IAAzBrB,EAAMnI,QAAQ,MAAc,CAC9B,IAAIo0B,EAAS/zB,KAAK60B,IAAIxvB,EAAM,KAAM,UAClC,GAAI0uB,EAAO11B,OACT,IAAK,IAAIq4B,EAAO,EAAGA,EAAOz1B,EAAOy1B,IAC/B5uB,GAASisB,EAKf,OAAOjsB,GAGT0sB,EAAY1qB,UAAUorB,SAAW,SAAkB7vB,EAAM4vB,GACvD,IAAIntB,EAAQzC,EAAK4vB,GACbJ,EAAMxvB,EAAKuvB,KAAKK,GACpB,OAAIJ,GAAOA,EAAI/sB,QAAUA,EAChB+sB,EAAIA,IAEJ/sB,GAIJ0sB,EAjTS,GAsTlB,SAASmC,GAAYtxB,EAAMovB,GACf,IAAID,GAAYC,GACtBrsB,UAAU/C,GAkBhB,IAAIuxB,GAAY,SAASA,EAAU9iB,EAAK3K,GACtC,IAAI0tB,EAAS,IAAI/iB,EAAI7T,YAErB,IAAK,IAAInH,KAAKgb,EACZ,GAAKA,EAAIe,eAAe/b,GAAxB,CACA,IAAIgP,EAAQgM,EAAIhb,GACZ0O,OAAwB,IAAVM,EAAwB,YAAc8N,GAAQ9N,GAEtD,WAANhP,GAA2B,WAAT0O,EAChB2B,IAAQ0tB,EAAO/9B,GAAKqQ,GACT,WAANrQ,EACT+9B,EAAO/9B,GAAKgP,EACHA,aAAiBrI,MAC1Bo3B,EAAO/9B,GAAKgP,EAAMsM,KAAI,SAAUja,GAC9B,OAAOy8B,EAAUz8B,EAAG08B,MAEP,WAAN/9B,GAAwB,UAANA,GAAuB,YAANA,GAAyB,cAANA,IAClD,WAAT0O,GAA+B,OAAVM,IAAgBA,EAAQ8uB,EAAU9uB,IAC3D+uB,EAAO/9B,GAAKgP,GAIhB,OAAO+uB,GASLC,GAAO,WAIT,SAASA,IACP,IAAIC,EAAc/f,UAAU3Y,OAAS,QAAsB0J,IAAjBiP,UAAU,GAAmBA,UAAU,GAAK,GAItF,IAAK,IAAIxN,KAHT2a,GAAenkB,KAAM82B,GAErB92B,KAAK40B,KAAO,GACKmC,EACf/2B,KAAKwJ,GAAQutB,EAAYvtB,GAsjB7B,OAhhBAstB,EAAKhtB,UAAU8oB,MAAQ,SAAejC,GACpC,IAAIqG,EAAOhgB,UAAU3Y,OAAS,QAAsB0J,IAAjBiP,UAAU,GAAmBA,UAAU,GAAK,GAE/E,GAAIhX,KAAKskB,OAAQ,CACf,IAAI9f,EAAMxE,KAAKi3B,WAAWD,GAC1B,OAAOh3B,KAAKskB,OAAO1b,MAAMgqB,MAAMjC,EAASnsB,EAAI1D,KAAM0D,EAAIzD,OAAQi2B,GAE9D,OAAO,IAAI/D,GAAetC,IA+B9BmG,EAAKhtB,UAAU+mB,KAAO,SAActpB,EAAQutB,EAAMkC,GAChD,IAAInL,EAAO,CAAExmB,KAAMrF,MACnB,IAAK,IAAIlH,KAAKk+B,EACZnL,EAAK/yB,GAAKk+B,EAAKl+B,GAChB,OAAOyO,EAAOspB,KAAKiE,EAAMjJ,IAgB5BiL,EAAKhtB,UAAU2lB,OAAS,WAKtB,OAJIzvB,KAAKmJ,QACPnJ,KAAKmJ,OAAO0lB,YAAY7uB,MAE1BA,KAAKmJ,YAASpB,EACP/H,MAgBT82B,EAAKhtB,UAAUC,SAAW,WACxB,IAAImtB,EAAclgB,UAAU3Y,OAAS,QAAsB0J,IAAjBiP,UAAU,GAAmBA,UAAU,GAAK2f,GAElFO,EAAY9uB,YAAW8uB,EAAcA,EAAY9uB,WACrD,IAAIb,EAAS,GAIb,OAHA2vB,EAAYl3B,MAAM,SAAUlH,GAC1ByO,GAAUzO,KAELyO,GAqBTuvB,EAAKhtB,UAAUqgB,MAAQ,WACrB,IAAIgN,EAAYngB,UAAU3Y,OAAS,QAAsB0J,IAAjBiP,UAAU,GAAmBA,UAAU,GAAK,GAEhF6f,EAASD,GAAU52B,MACvB,IAAK,IAAIwJ,KAAQ2tB,EACfN,EAAOrtB,GAAQ2tB,EAAU3tB,GAE3B,OAAOqtB,GAgBTC,EAAKhtB,UAAUstB,YAAc,WAC3B,IAAID,EAAYngB,UAAU3Y,OAAS,QAAsB0J,IAAjBiP,UAAU,GAAmBA,UAAU,GAAK,GAEhF6f,EAAS72B,KAAKmqB,MAAMgN,GAExB,OADAn3B,KAAKmJ,OAAO+hB,aAAalrB,KAAM62B,GACxBA,GAaTC,EAAKhtB,UAAUutB,WAAa,WAC1B,IAAIF,EAAYngB,UAAU3Y,OAAS,QAAsB0J,IAAjBiP,UAAU,GAAmBA,UAAU,GAAK,GAEhF6f,EAAS72B,KAAKmqB,MAAMgN,GAExB,OADAn3B,KAAKmJ,OAAOmuB,YAAYt3B,KAAM62B,GACvBA,GAiBTC,EAAKhtB,UAAUytB,YAAc,WAC3B,IAAIzR,EAAQ9lB,KAEZ,GAAIA,KAAKmJ,OAAQ,CACf,IAAK,IAAIwc,EAAO3O,UAAU3Y,OAAQ8I,EAAQ1H,MAAMkmB,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC5E1e,EAAM0e,GAAQ7O,UAAU6O,GAG1B1e,EAAMhG,SAAQ,SAAUkE,GACtBygB,EAAM3c,OAAO+hB,aAAapF,EAAOzgB,MAGnCrF,KAAKyvB,SAGP,OAAOzvB,MAsBT82B,EAAKhtB,UAAU0tB,OAAS,SAAgBC,GAItC,OAHAz3B,KAAK03B,UAAU13B,KAAK00B,SAAW+C,EAAU/C,QACzC10B,KAAKyvB,SACLgI,EAAUE,OAAO33B,MACVA,MAgBT82B,EAAKhtB,UAAU8tB,WAAa,SAAoBC,GAI9C,OAHA73B,KAAK03B,UAAU13B,KAAK00B,SAAWmD,EAAUnD,QACzC10B,KAAKyvB,SACLoI,EAAU1uB,OAAO+hB,aAAa2M,EAAW73B,MAClCA,MAgBT82B,EAAKhtB,UAAUguB,UAAY,SAAmBD,GAI5C,OAHA73B,KAAK03B,UAAU13B,KAAK00B,SAAWmD,EAAUnD,QACzC10B,KAAKyvB,SACLoI,EAAU1uB,OAAOmuB,YAAYO,EAAW73B,MACjCA,MAmBT82B,EAAKhtB,UAAUjB,KAAO,WACpB,IAAIkZ,EAAQ/hB,KAAKmJ,OAAO4Y,MAAM/hB,MAC9B,OAAOA,KAAKmJ,OAAOhC,MAAM4a,EAAQ,IAiBnC+U,EAAKhtB,UAAUhB,KAAO,WACpB,IAAIiZ,EAAQ/hB,KAAKmJ,OAAO4Y,MAAM/hB,MAC9B,OAAOA,KAAKmJ,OAAOhC,MAAM4a,EAAQ,IAGnC+U,EAAKhtB,UAAUiuB,OAAS,WACtB,IAAIC,EAAQ,GAEZ,IAAK,IAAIxuB,KAAQxJ,KACf,GAAKA,KAAK6U,eAAerL,IACZ,WAATA,EAAJ,CACA,IAAI1B,EAAQ9H,KAAKwJ,GAEb1B,aAAiBrI,MACnBu4B,EAAMxuB,GAAQ1B,EAAMsM,KAAI,SAAUtb,GAChC,MAA8D,iBAA5C,IAANA,EAAoB,YAAc8c,GAAQ9c,KAAoBA,EAAEi/B,OACnEj/B,EAAEi/B,SAEFj/B,KAGgE,iBAAhD,IAAVgP,EAAwB,YAAc8N,GAAQ9N,KAAwBA,EAAMiwB,OAC7FC,EAAMxuB,GAAQ1B,EAAMiwB,SAEpBC,EAAMxuB,GAAQ1B,EAIlB,OAAOkwB,GAuBTlB,EAAKhtB,UAAU+qB,IAAM,SAAaI,EAAMgD,GAEtC,OADU,IAAIzD,IACHK,IAAI70B,KAAMi1B,EAAMgD,IAa7BnB,EAAKhtB,UAAU4qB,KAAO,WAEpB,IADA,IAAIntB,EAASvH,KACNuH,EAAO4B,QACZ5B,EAASA,EAAO4B,OACjB,OAAO5B,GAGVuvB,EAAKhtB,UAAU4tB,UAAY,SAAmBQ,UACrCl4B,KAAK40B,KAAK1sB,cACVlI,KAAK40B,KAAKzsB,MACZ+vB,UAAoBl4B,KAAK40B,KAAKI,SAGrC8B,EAAKhtB,UAAUquB,eAAiB,SAAwBpW,GAKtD,IAJA,IAAIsF,EAASrnB,KAAK+J,WACdhJ,EAASf,KAAKskB,OAAOoP,MAAM3yB,OAC3BD,EAAOd,KAAKskB,OAAOoP,MAAM5yB,KAEpBhI,EAAI,EAAGA,EAAIipB,EAAOjpB,IACP,OAAduuB,EAAOvuB,IACTiI,EAAS,EACTD,GAAQ,GAERC,GAAU,EAId,MAAO,CAAED,KAAMA,EAAMC,OAAQA,IAG/B+1B,EAAKhtB,UAAUmtB,WAAa,SAAoBD,GAC9C,IAAIxyB,EAAMxE,KAAKskB,OAAOoP,MACtB,GAAIsD,EAAKjV,MACPvd,EAAMxE,KAAKm4B,eAAenB,EAAKjV,YAC1B,GAAIiV,EAAKoB,KAAM,CACpB,IAAIrW,EAAQ/hB,KAAK+J,WAAWpK,QAAQq3B,EAAKoB,OAC1B,IAAXrW,IAAcvd,EAAMxE,KAAKm4B,eAAepW,IAE9C,OAAOvd,GAGTsyB,EAAKhtB,UAAUuuB,WAAa,WAE1B,OADA3H,GAAS,mDACF1wB,KAAKyvB,UAGdqH,EAAKhtB,UAAUhL,QAAU,SAAiBqI,GAExC,OADAupB,GAAS,oDACF1wB,KAAKu3B,YAAYpwB,IAG1B2vB,EAAKhtB,UAAUgX,MAAQ,SAAe0U,EAAKC,GAEzC,OADA/E,GAAS,8CACF1wB,KAAK60B,IAAIW,EAAKC,IAGvBqB,EAAKhtB,UAAUwuB,YAAc,SAAqBJ,GAEhD,OADAxH,GAAS,0DACF1wB,KAAK03B,UAAUQ,IAGxB9T,GAAY0S,EAAM,CAAC,CACjBriB,IAAK,SACLmb,IAAK,WAEH,OADAc,GAAS,mDACF1wB,KAAK40B,KAAK1sB,QAEnB/H,IAAK,SAAgBo4B,GACnB7H,GAAS,mDACT1wB,KAAK40B,KAAK1sB,OAASqwB,IAEpB,CACD9jB,IAAK,UACLmb,IAAK,WAEH,OADAc,GAAS,qDACF1wB,KAAK40B,KAAKI,SAEnB70B,IAAK,SAAgBo4B,GACnB7H,GAAS,qDACT1wB,KAAK40B,KAAKI,QAAUuD,MA6FjBzB,EAhkBE,GAilBP0B,GAAc,SAAUC,GAG1B,SAASD,EAAYzB,GACnB5S,GAAenkB,KAAMw4B,GAErB,IAAI1S,EAAQjB,GAA0B7kB,KAAMy4B,EAAM14B,KAAKC,KAAM+2B,IAG7D,OADAjR,EAAMte,KAAO,OACNse,EAkFT,OA1FAvB,GAASiU,EAAaC,GAWtBrU,GAAYoU,EAAa,CAAC,CACxB/jB,IAAK,SACLmb,IAAK,WAEH,OADAc,GAAS,mDACF1wB,KAAK40B,KAAK9sB,OAEnB3H,IAAK,SAAgBo4B,GACnB7H,GAAS,mDACT1wB,KAAK40B,KAAK9sB,MAAQywB,IAEnB,CACD9jB,IAAK,aACLmb,IAAK,WAEH,OADAc,GAAS,2DACF1wB,KAAK40B,KAAKO,WAEnBh1B,IAAK,SAAgBo4B,GACnB7H,GAAS,2DACT1wB,KAAK40B,KAAKO,UAAYoD,MA6DnBC,EA3FS,CA4FhB1B,IAaE4B,GAAU,SAAUD,GAGtB,SAASC,EAAQ3B,GACf5S,GAAenkB,KAAM04B,GAErB,IAAI5S,EAAQjB,GAA0B7kB,KAAMy4B,EAAM14B,KAAKC,KAAM+2B,IAG7D,OADAjR,EAAMte,KAAO,UACNse,EA2CT,OAnDAvB,GAASmU,EAASD,GAWlBrU,GAAYsU,EAAS,CAAC,CACpBjkB,IAAK,OACLmb,IAAK,WAEH,OADAc,GAAS,sDACF1wB,KAAK40B,KAAKlb,MAEnBvZ,IAAK,SAAgBo4B,GACnB7H,GAAS,sDACT1wB,KAAK40B,KAAKlb,KAAO6e,IAElB,CACD9jB,IAAK,QACLmb,IAAK,WAEH,OADAc,GAAS,wDACF1wB,KAAK40B,KAAKtb,OAEnBnZ,IAAK,SAAgBo4B,GACnB7H,GAAS,wDACT1wB,KAAK40B,KAAKtb,MAAQif,MAsBfG,EApDK,CAqDZ5B,IAIE6B,GAAS,WACX,SAASA,EAAO/vB,GACdub,GAAenkB,KAAM24B,GAErB34B,KAAK4I,MAAQA,EAEb5I,KAAKwE,IAAM,EACXxE,KAAK00B,KAAO,IAAIkE,GAChB54B,KAAK64B,QAAU74B,KAAK00B,KACpB10B,KAAK84B,OAAS,GACd94B,KAAK6mB,WAAY,EAEjB7mB,KAAK00B,KAAKpQ,OAAS,CAAE1b,MAAOA,EAAO8qB,MAAO,CAAE5yB,KAAM,EAAGC,OAAQ,IAkc/D,OA/bA43B,EAAO7uB,UAAUooB,SAAW,WAC1BlyB,KAAKoJ,OAAS8oB,GAASlyB,KAAK4I,QAG9B+vB,EAAO7uB,UAAUivB,KAAO,WAEtB,IADA,IAAIhwB,OAAQ,EACL/I,KAAKwE,IAAMxE,KAAKoJ,OAAO/K,QAAQ,CAGpC,QAFA0K,EAAQ/I,KAAKoJ,OAAOpJ,KAAKwE,MAEX,IACZ,IAAK,QACL,IAAK,IACHxE,KAAK84B,QAAU/vB,EAAM,GACrB,MAEF,IAAK,IACH/I,KAAKssB,IAAIvjB,GACT,MAEF,IAAK,UACH/I,KAAKgzB,QAAQjqB,GACb,MAEF,IAAK,UACH/I,KAAKo1B,OAAOrsB,GACZ,MAEF,IAAK,IACH/I,KAAKg5B,UAAUjwB,GACf,MAEF,QACE/I,KAAKi5B,QAITj5B,KAAKwE,KAAO,EAEdxE,KAAKk5B,WAGPP,EAAO7uB,UAAUkpB,QAAU,SAAiBjqB,GAC1C,IAAI1D,EAAO,IAAIqzB,GACf14B,KAAKm5B,KAAK9zB,EAAM0D,EAAM,GAAIA,EAAM,IAChC1D,EAAKif,OAAOgI,IAAM,CAAExrB,KAAMiI,EAAM,GAAIhI,OAAQgI,EAAM,IAElD,IAAI+rB,EAAO/rB,EAAM,GAAGU,MAAM,GAAI,GAC9B,GAAI,QAAQ3J,KAAKg1B,GACfzvB,EAAKyvB,KAAO,GACZzvB,EAAKuvB,KAAKlb,KAAOob,EACjBzvB,EAAKuvB,KAAKtb,MAAQ,OACb,CACL,IAAIpC,EAAQ4d,EAAK5d,MAAM,2BACvB7R,EAAKyvB,KAAO5d,EAAM,GAClB7R,EAAKuvB,KAAKlb,KAAOxC,EAAM,GACvB7R,EAAKuvB,KAAKtb,MAAQpC,EAAM,KAI5ByhB,EAAO7uB,UAAUkvB,UAAY,SAAmBjwB,GAC9C,IAAI1D,EAAO,IAAI+zB,GACfp5B,KAAKm5B,KAAK9zB,EAAM0D,EAAM,GAAIA,EAAM,IAChC1D,EAAKg0B,SAAW,GAChBh0B,EAAKuvB,KAAKI,QAAU,GACpBh1B,KAAK64B,QAAUxzB,GAGjBszB,EAAO7uB,UAAUmvB,MAAQ,WASvB,IARA,IAAIlwB,OAAQ,EACRujB,GAAM,EACN9kB,EAAO,KACPR,GAAQ,EACRsyB,EAAU,KACVvG,EAAW,GAEXW,EAAQ1zB,KAAKwE,IACVxE,KAAKwE,IAAMxE,KAAKoJ,OAAO/K,QAAQ,CAIpC,GAAa,OAFbmJ,GADAuB,EAAQ/I,KAAKoJ,OAAOpJ,KAAKwE,MACZ,KAEgB,MAATgD,EACb8xB,IAASA,EAAUvwB,GACxBgqB,EAASrpB,KAAc,MAATlC,EAAe,IAAM,UAC9B,GAAwB,IAApBurB,EAAS10B,OAAc,CAChC,GAAa,MAATmJ,EAAc,CAChB,GAAIR,EAEF,YADAhH,KAAK+0B,KAAK/0B,KAAKoJ,OAAOK,MAAMiqB,EAAO1zB,KAAKwE,IAAM,IAG9C,MAEG,GAAa,MAATgD,EAET,YADAxH,KAAKqjB,KAAKrjB,KAAKoJ,OAAOK,MAAMiqB,EAAO1zB,KAAKwE,IAAM,IAEzC,GAAa,MAATgD,EAAc,CACvBxH,KAAKwE,KAAO,EACZ8nB,GAAM,EACN,MACkB,MAAT9kB,IACTR,GAAQ,QAEDQ,IAASurB,EAASA,EAAS10B,OAAS,KAC7C00B,EAASnpB,MACe,IAApBmpB,EAAS10B,SAAci7B,EAAU,OAGvCt5B,KAAKwE,KAAO,EASd,GAPIxE,KAAKwE,MAAQxE,KAAKoJ,OAAO/K,SAC3B2B,KAAKwE,KAAO,EACZ8nB,GAAM,GAGJyG,EAAS10B,OAAS,GAAG2B,KAAKu5B,gBAAgBD,GAE1ChN,GAAOtlB,EAAX,CACE,KAAOhH,KAAKwE,IAAMkvB,IAEF,WADd3qB,EAAQ/I,KAAKoJ,OAAOpJ,KAAKwE,KAAK,KACK,YAAVuE,IACzB/I,KAAKwE,KAAO,EAEdxE,KAAK+0B,KAAK/0B,KAAKoJ,OAAOK,MAAMiqB,EAAO1zB,KAAKwE,IAAM,SAIhDxE,KAAKw5B,YAAY9F,IAGnBiF,EAAO7uB,UAAUuZ,KAAO,SAAcja,GACpCA,EAAOQ,MAEP,IAAIvE,EAAO,IAAI+zB,GACfp5B,KAAKm5B,KAAK9zB,EAAM+D,EAAO,GAAG,GAAIA,EAAO,GAAG,IAExC/D,EAAKuvB,KAAKI,QAAUh1B,KAAKy5B,cAAcrwB,GACvCpJ,KAAK60B,IAAIxvB,EAAM,WAAY+D,GAC3BpJ,KAAK64B,QAAUxzB,GAGjBszB,EAAO7uB,UAAUirB,KAAO,SAAc3rB,GACpC,IAAI/D,EAAO,IAAImzB,GACfx4B,KAAKm5B,KAAK9zB,GAEV,IAAIktB,EAAOnpB,EAAOA,EAAO/K,OAAS,GAWlC,IAVgB,MAAZk0B,EAAK,KACPvyB,KAAK6mB,WAAY,EACjBzd,EAAOQ,OAEL2oB,EAAK,GACPltB,EAAKif,OAAOgI,IAAM,CAAExrB,KAAMyxB,EAAK,GAAIxxB,OAAQwxB,EAAK,IAEhDltB,EAAKif,OAAOgI,IAAM,CAAExrB,KAAMyxB,EAAK,GAAIxxB,OAAQwxB,EAAK,IAG1B,SAAjBnpB,EAAO,GAAG,IACf/D,EAAKuvB,KAAK1sB,QAAUkB,EAAOswB,QAAQ,GAKrC,IAHAr0B,EAAKif,OAAOoP,MAAQ,CAAE5yB,KAAMsI,EAAO,GAAG,GAAIrI,OAAQqI,EAAO,GAAG,IAE5D/D,EAAK4vB,KAAO,GACL7rB,EAAO/K,QAAQ,CACpB,IAAImJ,EAAO4B,EAAO,GAAG,GACrB,GAAa,MAAT5B,GAAyB,UAATA,GAA6B,YAATA,EACtC,MAEFnC,EAAK4vB,MAAQ7rB,EAAOswB,QAAQ,GAG9Br0B,EAAKuvB,KAAKI,QAAU,GAGpB,IADA,IAAIjsB,OAAQ,EACLK,EAAO/K,QAAQ,CAGpB,GAAiB,OAFjB0K,EAAQK,EAAOswB,SAEL,GAAY,CACpBr0B,EAAKuvB,KAAKI,SAAWjsB,EAAM,GAC3B,MAEA1D,EAAKuvB,KAAKI,SAAWjsB,EAAM,GAIV,MAAjB1D,EAAK4vB,KAAK,IAA+B,MAAjB5vB,EAAK4vB,KAAK,KACpC5vB,EAAKuvB,KAAK1sB,QAAU7C,EAAK4vB,KAAK,GAC9B5vB,EAAK4vB,KAAO5vB,EAAK4vB,KAAKxrB,MAAM,IAE9BpE,EAAKuvB,KAAKI,SAAWh1B,KAAK25B,gBAAgBvwB,GAC1CpJ,KAAK45B,wBAAwBxwB,GAE7B,IAAK,IAAItQ,EAAIsQ,EAAO/K,OAAS,EAAGvF,EAAI,EAAGA,IAAK,CAE1C,GAAiB,gBADjBiQ,EAAQK,EAAOtQ,IACL,GAAqB,CAC7BuM,EAAK8vB,WAAY,EACjB,IAAI9N,EAASrnB,KAAK65B,WAAWzwB,EAAQtQ,GAEtB,iBADfuuB,EAASrnB,KAAKy5B,cAAcrwB,GAAUie,KACRhiB,EAAKuvB,KAAKO,UAAY9N,GACpD,MACK,GAAiB,cAAbte,EAAM,GAAoB,CAGnC,IAFA,IAAI+wB,EAAQ1wB,EAAOK,MAAM,GACrBiL,EAAM,GACDva,EAAIrB,EAAGqB,EAAI,EAAGA,IAAK,CAC1B,IAAI4/B,EAAQD,EAAM3/B,GAAG,GACrB,GAAgC,IAA5Bua,EAAI3V,OAAOY,QAAQ,MAAwB,UAAVo6B,EACnC,MAEFrlB,EAAMolB,EAAMlwB,MAAM,GAAK8K,EAEO,IAA5BA,EAAI3V,OAAOY,QAAQ,OACrB0F,EAAK8vB,WAAY,EACjB9vB,EAAKuvB,KAAKO,UAAYzgB,EACtBtL,EAAS0wB,GAIb,GAAiB,UAAb/wB,EAAM,IAA+B,YAAbA,EAAM,GAChC,MAIJ/I,KAAK60B,IAAIxvB,EAAM,QAAS+D,IAES,IAA7B/D,EAAKyC,MAAMnI,QAAQ,MAAaK,KAAKg6B,qBAAqB5wB,IAGhEuvB,EAAO7uB,UAAUsrB,OAAS,SAAgBrsB,GACxC,IAAI1D,EAAO,IAAI40B,GACf50B,EAAKmE,KAAOT,EAAM,GAAGU,MAAM,GACT,KAAdpE,EAAKmE,MACPxJ,KAAKk6B,cAAc70B,EAAM0D,GAE3B/I,KAAKm5B,KAAK9zB,EAAM0D,EAAM,GAAIA,EAAM,IAEhC,IAAIwpB,GAAO,EACP4H,GAAO,EACP9E,EAAS,GAGb,IADAr1B,KAAKwE,KAAO,EACLxE,KAAKwE,IAAMxE,KAAKoJ,OAAO/K,QAAQ,CAGpC,GAAiB,OAFjB0K,EAAQ/I,KAAKoJ,OAAOpJ,KAAKwE,MAEf,GAAY,CACpBa,EAAKif,OAAOgI,IAAM,CAAExrB,KAAMiI,EAAM,GAAIhI,OAAQgI,EAAM,IAClD/I,KAAK6mB,WAAY,EACjB,MACK,GAAiB,MAAb9d,EAAM,GAAY,CAC3BoxB,GAAO,EACP,MACK,GAAiB,MAAbpxB,EAAM,GAAY,CAC3B/I,KAAKssB,IAAIvjB,GACT,MAEAssB,EAAO3rB,KAAKX,GAGd/I,KAAKwE,KAAO,EAEVxE,KAAKwE,MAAQxE,KAAKoJ,OAAO/K,SAC3Bk0B,GAAO,GAGTltB,EAAKuvB,KAAKI,QAAUh1B,KAAKy5B,cAAcpE,GACnCA,EAAOh3B,QACTgH,EAAKuvB,KAAKU,UAAYt1B,KAAK25B,gBAAgBtE,GAC3Cr1B,KAAK60B,IAAIxvB,EAAM,SAAUgwB,GACrB9C,IACFxpB,EAAQssB,EAAOA,EAAOh3B,OAAS,GAC/BgH,EAAKif,OAAOgI,IAAM,CAAExrB,KAAMiI,EAAM,GAAIhI,OAAQgI,EAAM,IAClD/I,KAAK84B,OAASzzB,EAAKuvB,KAAKI,QACxB3vB,EAAKuvB,KAAKI,QAAU,MAGtB3vB,EAAKuvB,KAAKU,UAAY,GACtBjwB,EAAKgwB,OAAS,IAGZ8E,IACF90B,EAAK8B,MAAQ,GACbnH,KAAK64B,QAAUxzB,IAInBszB,EAAO7uB,UAAUwiB,IAAM,SAAavjB,GAC9B/I,KAAK64B,QAAQ1xB,OAASnH,KAAK64B,QAAQ1xB,MAAM9I,SAC3C2B,KAAK64B,QAAQjE,KAAK/N,UAAY7mB,KAAK6mB,WAErC7mB,KAAK6mB,WAAY,EAEjB7mB,KAAK64B,QAAQjE,KAAKzsB,OAASnI,KAAK64B,QAAQjE,KAAKzsB,OAAS,IAAMnI,KAAK84B,OACjE94B,KAAK84B,OAAS,GAEV94B,KAAK64B,QAAQ1vB,QACfnJ,KAAK64B,QAAQvU,OAAOgI,IAAM,CAAExrB,KAAMiI,EAAM,GAAIhI,OAAQgI,EAAM,IAC1D/I,KAAK64B,QAAU74B,KAAK64B,QAAQ1vB,QAE5BnJ,KAAKo6B,gBAAgBrxB,IAIzB4vB,EAAO7uB,UAAUovB,QAAU,WACrBl5B,KAAK64B,QAAQ1vB,QAAQnJ,KAAKq6B,gBAC1Br6B,KAAK64B,QAAQ1xB,OAASnH,KAAK64B,QAAQ1xB,MAAM9I,SAC3C2B,KAAK64B,QAAQjE,KAAK/N,UAAY7mB,KAAK6mB,WAErC7mB,KAAK64B,QAAQjE,KAAKzsB,OAASnI,KAAK64B,QAAQjE,KAAKzsB,OAAS,IAAMnI,KAAK84B,QAKnEH,EAAO7uB,UAAUqvB,KAAO,SAAc9zB,EAAMvE,EAAMC,GAChDf,KAAK64B,QAAQnvB,KAAKrE,GAElBA,EAAKif,OAAS,CAAEoP,MAAO,CAAE5yB,KAAMA,EAAMC,OAAQA,GAAU6H,MAAO5I,KAAK4I,OACnEvD,EAAKuvB,KAAK1sB,OAASlI,KAAK84B,OACxB94B,KAAK84B,OAAS,GACI,YAAdzzB,EAAKmC,OAAoBxH,KAAK6mB,WAAY,IAGhD8R,EAAO7uB,UAAU+qB,IAAM,SAAaxvB,EAAM4vB,EAAM7rB,GAM9C,IALA,IAAIL,OAAQ,EACRvB,OAAO,EACPnJ,EAAS+K,EAAO/K,OAChByJ,EAAQ,GACRwyB,GAAQ,EACHxhC,EAAI,EAAGA,EAAIuF,EAAQvF,GAAK,EAGlB,aADb0O,GADAuB,EAAQK,EAAOtQ,IACF,KACsB,UAAT0O,GAAoB1O,IAAMuF,EAAS,EAC3Di8B,GAAQ,EAERxyB,GAASiB,EAAM,GAGnB,IAAKuxB,EAAO,CACV,IAAIzF,EAAMzrB,EAAOmL,QAAO,SAAUgmB,EAAKzhC,GACrC,OAAOyhC,EAAMzhC,EAAE,KACd,IACHuM,EAAKuvB,KAAKK,GAAQ,CAAEntB,MAAOA,EAAO+sB,IAAKA,GAEzCxvB,EAAK4vB,GAAQntB,GAGf6wB,EAAO7uB,UAAU2vB,cAAgB,SAAuBrwB,GAGtD,IAFA,IAAIoxB,OAAgB,EAChB1B,EAAS,GACN1vB,EAAO/K,SAEU,WADtBm8B,EAAgBpxB,EAAOA,EAAO/K,OAAS,GAAG,KACS,YAAlBm8B,IACjC1B,EAAS1vB,EAAOQ,MAAM,GAAKkvB,EAE7B,OAAOA,GAGTH,EAAO7uB,UAAU6vB,gBAAkB,SAAyBvwB,GAG1D,IAFA,IAAIP,OAAO,EACPiwB,EAAS,GACN1vB,EAAO/K,SAEC,WADbwK,EAAOO,EAAO,GAAG,KACgB,YAATP,IACxBiwB,GAAU1vB,EAAOswB,QAAQ,GAE3B,OAAOZ,GAGTH,EAAO7uB,UAAU+vB,WAAa,SAAoBzwB,EAAQ+M,GAExD,IADA,IAAI5O,EAAS,GACJzO,EAAIqd,EAAMrd,EAAIsQ,EAAO/K,OAAQvF,IACpCyO,GAAU6B,EAAOtQ,GAAG,GAGtB,OADAsQ,EAAOqxB,OAAOtkB,EAAM/M,EAAO/K,OAAS8X,GAC7B5O,GAGToxB,EAAO7uB,UAAU9C,MAAQ,SAAeoC,GAKtC,IAJA,IAAI2pB,EAAW,EACXhqB,OAAQ,EACRvB,OAAO,EACPsB,OAAO,EACFhQ,EAAI,EAAGA,EAAIsQ,EAAO/K,OAAQvF,IAAK,CAItC,GAAa,OAFb0O,GADAuB,EAAQK,EAAOtQ,IACF,IAGXi6B,GAAY,OACP,GAAa,MAATvrB,EACTurB,GAAY,OACP,GAAiB,IAAbA,GAA2B,MAATvrB,EAAc,CACzC,GAAKsB,EAEE,IAAgB,SAAZA,EAAK,IAA6B,WAAZA,EAAK,GACpC,SAEA,OAAOhQ,EAJPkH,KAAK06B,YAAY3xB,GAQrBD,EAAOC,EAET,OAAO,GAKT4vB,EAAO7uB,UAAUyvB,gBAAkB,SAAyBD,GAC1D,MAAMt5B,KAAK4I,MAAMgqB,MAAM,mBAAoB0G,EAAQ,GAAIA,EAAQ,KAGjEX,EAAO7uB,UAAU0vB,YAAc,SAAqB9F,GAClD,IAAI3qB,EAAQ/I,KAAKoJ,OAAOsqB,GACxB,MAAM1zB,KAAK4I,MAAMgqB,MAAM,eAAgB7pB,EAAM,GAAIA,EAAM,KAGzD4vB,EAAO7uB,UAAUswB,gBAAkB,SAAyBrxB,GAC1D,MAAM/I,KAAK4I,MAAMgqB,MAAM,eAAgB7pB,EAAM,GAAIA,EAAM,KAGzD4vB,EAAO7uB,UAAUuwB,cAAgB,WAC/B,IAAI71B,EAAMxE,KAAK64B,QAAQvU,OAAOoP,MAC9B,MAAM1zB,KAAK4I,MAAMgqB,MAAM,iBAAkBpuB,EAAI1D,KAAM0D,EAAIzD,SAGzD43B,EAAO7uB,UAAU4wB,YAAc,SAAqB3xB,GAClD,MAAM/I,KAAK4I,MAAMgqB,MAAM,eAAgB7pB,EAAM,GAAIA,EAAM,KAGzD4vB,EAAO7uB,UAAUowB,cAAgB,SAAuB70B,EAAM0D,GAC5D,MAAM/I,KAAK4I,MAAMgqB,MAAM,uBAAwB7pB,EAAM,GAAIA,EAAM,KAGjE4vB,EAAO7uB,UAAU8vB,wBAA0B,SAAiCxwB,KAG5EuvB,EAAO7uB,UAAUkwB,qBAAuB,SAA8B5wB,GACpE,IAAIpC,EAAQhH,KAAKgH,MAAMoC,GACvB,IAAc,IAAVpC,EAAJ,CAIA,IAFA,IAAI2zB,EAAU,EACV5xB,OAAQ,EACH5O,EAAI6M,EAAQ,EAAG7M,GAAK,IAEV,WADjB4O,EAAQK,EAAOjP,IACL,IAEQ,KADhBwgC,GAAW,IAHiBxgC,KAOhC,MAAM6F,KAAK4I,MAAMgqB,MAAM,mBAAoB7pB,EAAM,GAAIA,EAAM,MAGtD4vB,EA9cI,GAmdb,SAASiC,GAAQ1U,EAAK8Q,GACpB,GAAIA,GAAQA,EAAK6D,KACf,MAAM,IAAI1Y,MAAM,uEAGlB,IAAIvZ,EAAQ,IAAI4qB,GAAMtN,EAAK8Q,GAEvB8D,EAAS,IAAInC,GAAO/vB,GACxB,IACEkyB,EAAO5I,WACP4I,EAAO/B,OACP,MAAOvgC,GAQP,KAPe,mBAAXA,EAAEgR,MAA6BwtB,GAAQA,EAAK7gB,OAC1C,WAAWrW,KAAKk3B,EAAK7gB,MACvB3d,EAAEm4B,SAAW,iGACJ,WAAW7wB,KAAKk3B,EAAK7gB,QAC9B3d,EAAEm4B,SAAW,mGAGXn4B,EAGR,OAAOsiC,EAAOpG,KAKhB,SAASqG,GAAY5zB,GACnB,OAAOA,EAAMiN,KAAI,SAAUtb,GAGzB,OAFIA,EAAEqO,QAAOrO,EAAEqO,MAAQ4zB,GAAYjiC,EAAEqO,eAC9BrO,EAAEwrB,OACFxrB,KA8BX,IAAIkiC,GAAY,SAAUvC,GAGxB,SAASuC,IAEP,OADA7W,GAAenkB,KAAMg7B,GACdnW,GAA0B7kB,KAAMy4B,EAAMxf,MAAMjZ,KAAMgX,YA+vB3D,OAnwBAuN,GAASyW,EAAWvC,GAOpBuC,EAAUlxB,UAAUJ,KAAO,SAAc6rB,GAGvC,OAFAA,EAAMpsB,OAASnJ,KACfA,KAAKmH,MAAMuC,KAAK6rB,GACTv1B,MAsCTg7B,EAAUlxB,UAAUmxB,KAAO,SAAcC,GAClCl7B,KAAKm7B,WAAUn7B,KAAKm7B,SAAW,GAC/Bn7B,KAAKo7B,UAASp7B,KAAKo7B,QAAU,IAElCp7B,KAAKm7B,UAAY,EACjB,IAAIvT,EAAK5nB,KAAKm7B,SAGd,GAFAn7B,KAAKo7B,QAAQxT,GAAM,EAEd5nB,KAAKmH,MAAV,CAIA,IAFA,IAAI4a,OAAQ,EACRxa,OAAS,EACNvH,KAAKo7B,QAAQxT,GAAM5nB,KAAKmH,MAAM9I,SACnC0jB,EAAQ/hB,KAAKo7B,QAAQxT,IAEN,KADfrgB,EAAS2zB,EAASl7B,KAAKmH,MAAM4a,GAAQA,MAGrC/hB,KAAKo7B,QAAQxT,IAAO,EAKtB,cAFO5nB,KAAKo7B,QAAQxT,GAEbrgB,IAwBTyzB,EAAUlxB,UAAU5C,KAAO,SAAcg0B,GACvC,OAAOl7B,KAAKi7B,MAAK,SAAU1F,EAAOz8B,GAChC,IAAIyO,EAAS2zB,EAAS3F,EAAOz8B,GAI7B,OAHe,IAAXyO,GAAoBguB,EAAMruB,OAC5BK,EAASguB,EAAMruB,KAAKg0B,IAEf3zB,MAmCXyzB,EAAUlxB,UAAUusB,UAAY,SAAmBpB,EAAMiG,GACvD,OAAKA,EAOMjG,aAAgBoG,OAClBr7B,KAAKkH,MAAK,SAAUquB,EAAOz8B,GAChC,GAAmB,SAAfy8B,EAAM/tB,MAAmBytB,EAAKn1B,KAAKy1B,EAAMN,MAC3C,OAAOiG,EAAS3F,EAAOz8B,MAIpBkH,KAAKkH,MAAK,SAAUquB,EAAOz8B,GAChC,GAAmB,SAAfy8B,EAAM/tB,MAAmB+tB,EAAMN,OAASA,EAC1C,OAAOiG,EAAS3F,EAAOz8B,OAf3BoiC,EAAWjG,EACJj1B,KAAKkH,MAAK,SAAUquB,EAAOz8B,GAChC,GAAmB,SAAfy8B,EAAM/tB,KACR,OAAO0zB,EAAS3F,EAAOz8B,QA2C/BkiC,EAAUlxB,UAAUwxB,UAAY,SAAmBjC,EAAU6B,GAC3D,OAAKA,EAQM7B,aAAoBgC,OACtBr7B,KAAKkH,MAAK,SAAUquB,EAAOz8B,GAChC,GAAmB,SAAfy8B,EAAM/tB,MAAmB6xB,EAASv5B,KAAKy1B,EAAM8D,UAC/C,OAAO6B,EAAS3F,EAAOz8B,MAIpBkH,KAAKkH,MAAK,SAAUquB,EAAOz8B,GAChC,GAAmB,SAAfy8B,EAAM/tB,MAAmB+tB,EAAM8D,WAAaA,EAC9C,OAAO6B,EAAS3F,EAAOz8B,OAhB3BoiC,EAAW7B,EAEJr5B,KAAKkH,MAAK,SAAUquB,EAAOz8B,GAChC,GAAmB,SAAfy8B,EAAM/tB,KACR,OAAO0zB,EAAS3F,EAAOz8B,QAkD/BkiC,EAAUlxB,UAAUyxB,YAAc,SAAqB/xB,EAAM0xB,GAC3D,OAAKA,EAOM1xB,aAAgB6xB,OAClBr7B,KAAKkH,MAAK,SAAUquB,EAAOz8B,GAChC,GAAmB,WAAfy8B,EAAM/tB,MAAqBgC,EAAK1J,KAAKy1B,EAAM/rB,MAC7C,OAAO0xB,EAAS3F,EAAOz8B,MAIpBkH,KAAKkH,MAAK,SAAUquB,EAAOz8B,GAChC,GAAmB,WAAfy8B,EAAM/tB,MAAqB+tB,EAAM/rB,OAASA,EAC5C,OAAO0xB,EAAS3F,EAAOz8B,OAf3BoiC,EAAW1xB,EACJxJ,KAAKkH,MAAK,SAAUquB,EAAOz8B,GAChC,GAAmB,WAAfy8B,EAAM/tB,KACR,OAAO0zB,EAAS3F,EAAOz8B,QAoC/BkiC,EAAUlxB,UAAUqsB,aAAe,SAAsB+E,GACvD,OAAOl7B,KAAKkH,MAAK,SAAUquB,EAAOz8B,GAChC,GAAmB,YAAfy8B,EAAM/tB,KACR,OAAO0zB,EAAS3F,EAAOz8B,OA2B7BkiC,EAAUlxB,UAAU6tB,OAAS,WAG3B,IAFA,IAAI6D,EAASx7B,KAEJ2lB,EAAO3O,UAAU3Y,OAAQo9B,EAAWh8B,MAAMkmB,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/E4V,EAAS5V,GAAQ7O,UAAU6O,GAS7B,OANA4V,EAASt6B,SAAQ,SAAUo0B,GACbiG,EAAOE,UAAUnG,EAAOiG,EAAOjJ,MACrCpxB,SAAQ,SAAUkE,GACtB,OAAOm2B,EAAOr0B,MAAMuC,KAAKrE,SAGtBrF,MAyBTg7B,EAAUlxB,UAAU6xB,QAAU,WAG5B,IAFA,IAAIC,EAAS57B,KAEJ67B,EAAQ7kB,UAAU3Y,OAAQo9B,EAAWh8B,MAAMo8B,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFL,EAASK,GAAS9kB,UAAU8kB,GAa9B,OAVAL,EAAWA,EAASva,WACX/f,SAAQ,SAAUo0B,GACzB,IAAIpuB,EAAQy0B,EAAOF,UAAUnG,EAAOqG,EAAOlG,MAAO,WAAWxU,UAI7D,IAAK,IAAI0G,KAHTzgB,EAAMhG,SAAQ,SAAUkE,GACtB,OAAOu2B,EAAOz0B,MAAM40B,QAAQ12B,MAEfu2B,EAAOR,QACpBQ,EAAOR,QAAQxT,GAAMgU,EAAOR,QAAQxT,GAAMzgB,EAAM9I,UAG7C2B,MAGTg7B,EAAUlxB,UAAU4tB,UAAY,SAAmBQ,GACjDO,EAAM3uB,UAAU4tB,UAAU33B,KAAKC,KAAMk4B,GACjCl4B,KAAKmH,OACPnH,KAAKmH,MAAMhG,SAAQ,SAAUkE,GAC3B,OAAOA,EAAKqyB,UAAUQ,OAkB5B8C,EAAUlxB,UAAUohB,aAAe,SAAsB8Q,EAAOC,GAC9D,IAAIC,EAASl8B,KAITwH,EAAiB,KAFrBw0B,EAAQh8B,KAAK+hB,MAAMia,KAEM,UACrB70B,EAAQnH,KAAK07B,UAAUO,EAAKj8B,KAAKmH,MAAM60B,GAAQx0B,GAAM0Z,UACzD/Z,EAAMhG,SAAQ,SAAUkE,GACtB,OAAO62B,EAAO/0B,MAAMszB,OAAOuB,EAAO,EAAG32B,MAGvC,IAAI0c,OAAQ,EACZ,IAAK,IAAI6F,KAAM5nB,KAAKo7B,QAClBrZ,EAAQ/hB,KAAKo7B,QAAQxT,GACjBoU,GAASja,IACX/hB,KAAKo7B,QAAQxT,GAAM7F,EAAQ5a,EAAM9I,QAIrC,OAAO2B,MAaTg7B,EAAUlxB,UAAUwtB,YAAc,SAAqB0E,EAAOC,GAC5D,IAAIE,EAASn8B,KAEbg8B,EAAQh8B,KAAK+hB,MAAMia,GAEnB,IAAI70B,EAAQnH,KAAK07B,UAAUO,EAAKj8B,KAAKmH,MAAM60B,IAAQ9a,UACnD/Z,EAAMhG,SAAQ,SAAUkE,GACtB,OAAO82B,EAAOh1B,MAAMszB,OAAOuB,EAAQ,EAAG,EAAG32B,MAG3C,IAAI0c,OAAQ,EACZ,IAAK,IAAI6F,KAAM5nB,KAAKo7B,QAClBrZ,EAAQ/hB,KAAKo7B,QAAQxT,GACjBoU,EAAQja,IACV/hB,KAAKo7B,QAAQxT,GAAM7F,EAAQ5a,EAAM9I,QAIrC,OAAO2B,MAGTg7B,EAAUlxB,UAAU2lB,OAAS,SAAgB8F,GAO3C,YANqB,IAAVA,GACT7E,GAAS,6DACT1wB,KAAK6uB,YAAY0G,IAEjBkD,EAAM3uB,UAAU2lB,OAAO1vB,KAAKC,MAEvBA,MAmBTg7B,EAAUlxB,UAAU+kB,YAAc,SAAqB0G,GACrDA,EAAQv1B,KAAK+hB,MAAMwT,GACnBv1B,KAAKmH,MAAMouB,GAAOpsB,YAASpB,EAC3B/H,KAAKmH,MAAMszB,OAAOlF,EAAO,GAEzB,IAAIxT,OAAQ,EACZ,IAAK,IAAI6F,KAAM5nB,KAAKo7B,SAClBrZ,EAAQ/hB,KAAKo7B,QAAQxT,KACR2N,IACXv1B,KAAKo7B,QAAQxT,GAAM7F,EAAQ,GAI/B,OAAO/hB,MAeTg7B,EAAUlxB,UAAUsyB,UAAY,WAK9B,OAJAp8B,KAAKmH,MAAMhG,SAAQ,SAAUkE,GAC3B,OAAOA,EAAK8D,YAASpB,KAEvB/H,KAAKmH,MAAQ,GACNnH,MAkCTg7B,EAAUlxB,UAAUuyB,cAAgB,SAAuBC,EAAStF,EAAMkE,GAaxE,OAZKA,IACHA,EAAWlE,EACXA,EAAO,IAGTh3B,KAAKq2B,WAAU,SAAUtB,GACnBiC,EAAK7hB,QAA4C,IAAnC6hB,EAAK7hB,MAAMxV,QAAQo1B,EAAKE,OACtC+B,EAAKuF,OAA2C,IAAnCxH,EAAKjtB,MAAMnI,QAAQq3B,EAAKuF,QAEzCxH,EAAKjtB,MAAQitB,EAAKjtB,MAAMhJ,QAAQw9B,EAASpB,OAGpCl7B,MAgBTg7B,EAAUlxB,UAAU8Z,MAAQ,SAAe4Y,GACzC,OAAOx8B,KAAKmH,MAAMyc,MAAM4Y,IAgB1BxB,EAAUlxB,UAAUxE,KAAO,SAAck3B,GACvC,OAAOx8B,KAAKmH,MAAM7B,KAAKk3B,IAezBxB,EAAUlxB,UAAUiY,MAAQ,SAAewT,GACzC,MAAqB,iBAAVA,EACFA,EAEAv1B,KAAKmH,MAAMxH,QAAQ41B,IAc9ByF,EAAUlxB,UAAU4xB,UAAY,SAAmBv0B,EAAOs1B,GACxD,IAAIC,EAAS18B,KAEb,GAAqB,iBAAVmH,EACTA,EAAQ4zB,GAAYH,GAAQzzB,GAAOA,YAC9B,IAAK1H,MAAMgI,QAAQN,GACxB,GAAmB,SAAfA,EAAMK,KACRL,EAAQA,EAAMA,WACT,GAAIA,EAAMK,KACfL,EAAQ,CAACA,QACJ,GAAIA,EAAM8tB,KAAM,CACrB,QAA2B,IAAhB9tB,EAAMW,MACf,MAAM,IAAIqa,MAAM,0CACgB,iBAAhBhb,EAAMW,QACtBX,EAAMW,MAAQmP,OAAO9P,EAAMW,QAE7BX,EAAQ,CAAC,IAAIqxB,GAAYrxB,SACpB,GAAIA,EAAMkyB,SACflyB,EAAQ,CAAC,IAAIiyB,GAAKjyB,SACb,GAAIA,EAAMqC,KACfrC,EAAQ,CAAC,IAAI8yB,GAAO9yB,QACf,KAAIA,EAAM2tB,KAGf,MAAM,IAAI3S,MAAM,sCAFhBhb,EAAQ,CAAC,IAAIuxB,GAAQvxB,IAmBzB,OAbgBA,EAAMiN,KAAI,SAAUtb,GAUlC,YATsB,IAAXA,EAAE87B,OAAsB97B,EAAI4jC,EAAOC,QAAQ7jC,IAElDA,EAAEqQ,SAAQrQ,EAAIA,EAAEqxB,cACS,IAAlBrxB,EAAE87B,KAAK1sB,QACZu0B,QAAwC,IAAvBA,EAAO7H,KAAK1sB,SAC/BpP,EAAE87B,KAAK1sB,OAASu0B,EAAO7H,KAAK1sB,OAAOpJ,QAAQ,SAAU,KAGzDhG,EAAEqQ,OAASuzB,EACJ5jC,MAMXkiC,EAAUlxB,UAAU6yB,QAAU,SAAiBt3B,EAAM8D,GACnD,IAAIyzB,EAAS58B,KAET68B,OAAM,EAaV,IAAK,IAAI/jC,IAZS,SAAduM,EAAKmC,KACPq1B,EAAM,IAAIjE,GACa,WAAdvzB,EAAKmC,KACdq1B,EAAM,IAAI5C,GACa,SAAd50B,EAAKmC,KACdq1B,EAAM,IAAIzD,GACa,SAAd/zB,EAAKmC,KACdq1B,EAAM,IAAIrE,GACa,YAAdnzB,EAAKmC,OACdq1B,EAAM,IAAInE,IAGErzB,EACF,UAANvM,EACF+jC,EAAI11B,MAAQ9B,EAAK8B,MAAMiN,KAAI,SAAUja,GACnC,OAAOyiC,EAAOD,QAAQxiC,EAAG0iC,MAEZ,WAAN/jC,GAAkBqQ,EAC3B0zB,EAAI1zB,OAASA,EACJ9D,EAAKwP,eAAe/b,KAC7B+jC,EAAI/jC,GAAKuM,EAAKvM,IAIlB,OAAO+jC,GAGT7B,EAAUlxB,UAAUgzB,WAAa,SAAoB5B,GAEnD,OADAxK,GAAS,mEACF1wB,KAAKkH,KAAKg0B,IAGnBF,EAAUlxB,UAAUizB,SAAW,SAAkB9H,EAAMiG,GAErD,OADAxK,GAAS,sEACF1wB,KAAKq2B,UAAUpB,EAAMiG,IAG9BF,EAAUlxB,UAAUkzB,SAAW,SAAkB3D,EAAU6B,GAEzD,OADAxK,GAAS,sEACF1wB,KAAKs7B,UAAUjC,EAAU6B,IAGlCF,EAAUlxB,UAAUmzB,WAAa,SAAoBzzB,EAAM0xB,GAEzD,OADAxK,GAAS,0EACF1wB,KAAKu7B,YAAY/xB,EAAM0xB,IAGhCF,EAAUlxB,UAAUozB,YAAc,SAAqBhC,GAErD,OADAxK,GAAS,4EACF1wB,KAAKm2B,aAAa+E,IAG3B9W,GAAY4W,EAAW,CAAC,CACtBvmB,IAAK,QACLmb,IAAK,WACH,GAAK5vB,KAAKmH,MACV,OAAOnH,KAAKmH,MAAM,KAYnB,CACDsN,IAAK,OACLmb,IAAK,WACH,GAAK5vB,KAAKmH,MACV,OAAOnH,KAAKmH,MAAMnH,KAAKmH,MAAM9I,OAAS,KAEvC,CACDoW,IAAK,YACLmb,IAAK,WAEH,OADAc,GAAS,yDACF1wB,KAAK40B,KAAK/N,WAEnB1mB,IAAK,SAAgBo4B,GACnB7H,GAAS,yDACT1wB,KAAK40B,KAAK/N,UAAY0R,IAEvB,CACD9jB,IAAK,QACLmb,IAAK,WAEH,OADAc,GAAS,iDACF1wB,KAAK40B,KAAKzsB,OAEnBhI,IAAK,SAAgBo4B,GACnB7H,GAAS,iDACT1wB,KAAK40B,KAAKzsB,MAAQowB,MAefyC,EApwBO,CAqwBdlE,IAuBEmD,GAAS,SAAUkD,GAGrB,SAASlD,EAAOlD,GACd5S,GAAenkB,KAAMi6B,GAErB,IAAInU,EAAQjB,GAA0B7kB,KAAMm9B,EAAWp9B,KAAKC,KAAM+2B,IAGlE,OADAjR,EAAMte,KAAO,SACNse,EAuGT,OA/GAvB,GAAS0V,EAAQkD,GAWjBlD,EAAOnwB,UAAU6tB,OAAS,WACxB,IAAIyF,EAECp9B,KAAKmH,QAAOnH,KAAKmH,MAAQ,IAE9B,IAAK,IAAIwe,EAAO3O,UAAU3Y,OAAQo9B,EAAWh8B,MAAMkmB,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/E4V,EAAS5V,GAAQ7O,UAAU6O,GAG7B,OAAQuX,EAAwBD,EAAWrzB,UAAU6tB,QAAQ53B,KAAKkZ,MAAMmkB,EAAuB,CAACp9B,MAAMyhB,OAAOga,KAG/GxB,EAAOnwB,UAAU6xB,QAAU,WACzB,IAAI0B,EAECr9B,KAAKmH,QAAOnH,KAAKmH,MAAQ,IAE9B,IAAK,IAAI00B,EAAQ7kB,UAAU3Y,OAAQo9B,EAAWh8B,MAAMo8B,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFL,EAASK,GAAS9kB,UAAU8kB,GAG9B,OAAQuB,EAAyBF,EAAWrzB,UAAU6xB,SAAS57B,KAAKkZ,MAAMokB,EAAwB,CAACr9B,MAAMyhB,OAAOga,KAGlHrX,GAAY6V,EAAQ,CAAC,CACnBxlB,IAAK,YACLmb,IAAK,WAEH,OADAc,GAAS,8DACF1wB,KAAK40B,KAAKU,WAEnBn1B,IAAK,SAAgBo4B,GACnB7H,GAAS,8DACT1wB,KAAK40B,KAAKU,UAAYiD,IAEvB,CACD9jB,IAAK,UACLmb,IAAK,WAEH,OADAc,GAAS,yDACF1wB,KAAK40B,KAAKS,QAEnBl1B,IAAK,SAAgBo4B,GACnB7H,GAAS,yDACT1wB,KAAK40B,KAAKS,OAASkD,MA0DhB0B,EAhHI,CAiHXe,IAYEsC,GAAO,CACT59B,MAAO,SAAe2nB,EAAQkW,EAAYhL,GASxC,IARA,IAAIiL,EAAQ,GACR3E,EAAU,GACVn5B,GAAQ,EAER+9B,EAAO,EACPz1B,GAAQ,EACRgB,GAAS,EAEJlQ,EAAI,EAAGA,EAAIuuB,EAAOhpB,OAAQvF,IAAK,CACtC,IAAI4kC,EAASrW,EAAOvuB,GAEhBkP,EACEgB,EACFA,GAAS,EACW,OAAX00B,EACT10B,GAAS,EACA00B,IAAW11B,IACpBA,GAAQ,GAEU,MAAX01B,GAA6B,MAAXA,EAC3B11B,EAAQ01B,EACY,MAAXA,EACTD,GAAQ,EACY,MAAXC,EACLD,EAAO,IAAGA,GAAQ,GACJ,IAATA,IAC2B,IAAhCF,EAAW59B,QAAQ+9B,KAAgBh+B,GAAQ,GAG7CA,GACc,KAAZm5B,GAAgB2E,EAAM9zB,KAAKmvB,EAAQ95B,QACvC85B,EAAU,GACVn5B,GAAQ,GAERm5B,GAAW6E,EAKf,OADInL,GAAoB,KAAZsG,IAAgB2E,EAAM9zB,KAAKmvB,EAAQ95B,QACxCy+B,GAeTG,MAAO,SAAetW,GAEpB,OAAOiW,GAAK59B,MAAM2nB,EADL,CAAC,IAAK,KAAM,QAiB3BtgB,MAAO,SAAesgB,GAEpB,OAAOiW,GAAK59B,MAAM2nB,EAAQ,CADd,MACuB,KAkBnC+R,GAAO,SAAU+D,GAGnB,SAAS/D,EAAKrC,GACZ5S,GAAenkB,KAAMo5B,GAErB,IAAItT,EAAQjB,GAA0B7kB,KAAMm9B,EAAWp9B,KAAKC,KAAM+2B,IAIlE,OAFAjR,EAAMte,KAAO,OACRse,EAAM3e,QAAO2e,EAAM3e,MAAQ,IACzB2e,EAkFT,OA3FAvB,GAAS6U,EAAM+D,GA8Bf/Y,GAAYgV,EAAM,CAAC,CACjB3kB,IAAK,YACLmb,IAAK,WACH,OAAO0N,GAAKv2B,MAAM/G,KAAKq5B,WAEzBl5B,IAAK,SAAgB4Y,GACnB,IAAI7B,EAAQlX,KAAKq5B,SAAWr5B,KAAKq5B,SAASniB,MAAM,QAAU,KACtD0mB,EAAM1mB,EAAQA,EAAM,GAAK,IAAMlX,KAAK60B,IAAI,UAAW,cACvD70B,KAAKq5B,SAAWtgB,EAAO1Z,KAAKu+B,KAE7B,CACDnpB,IAAK,YACLmb,IAAK,WAEH,OADAc,GAAS,wDACF1wB,KAAK40B,KAAKyE,UAEnBl5B,IAAK,SAAgBo4B,GACnB7H,GAAS,wDACT1wB,KAAK40B,KAAKyE,SAAWd,MA2ClBa,EA5FE,CA6FT4B,IAWE6C,GAAU,WAYZ,SAASA,EAAQ/I,GACf,IAAIkC,EAAOhgB,UAAU3Y,OAAS,QAAsB0J,IAAjBiP,UAAU,GAAmBA,UAAU,GAAK,GAoB/E,GAnBAmN,GAAenkB,KAAM69B,GAUrB79B,KAAKwH,KAAO,UAOZxH,KAAK80B,KAAOA,EAERkC,EAAK3xB,MAAQ2xB,EAAK3xB,KAAKif,OAAQ,CACjC,IAAI9f,EAAMwyB,EAAK3xB,KAAK4xB,WAAWD,GAQ/Bh3B,KAAKc,KAAO0D,EAAI1D,KAQhBd,KAAKe,OAASyD,EAAIzD,OAGpB,IAAK,IAAI+8B,KAAO9G,EACdh3B,KAAK89B,GAAO9G,EAAK8G,GA+CrB,OAjCAD,EAAQ/zB,UAAUC,SAAW,WAC3B,OAAI/J,KAAKqF,KACArF,KAAKqF,KAAKutB,MAAM5yB,KAAK80B,KAAM,CAChC3B,OAAQnzB,KAAKmzB,OACbpR,MAAO/hB,KAAK+hB,MACZqW,KAAMp4B,KAAKo4B,OACVzH,QACM3wB,KAAKmzB,OACPnzB,KAAKmzB,OAAS,KAAOnzB,KAAK80B,KAE1B90B,KAAK80B,MAuBT+I,EArGK,GA+HVE,GAAS,WAOX,SAASA,EAAOC,EAAWtJ,EAAMsC,GAC/B7S,GAAenkB,KAAM+9B,GAarB/9B,KAAKg+B,UAAYA,EAmBjBh+B,KAAKi+B,SAAW,GAOhBj+B,KAAK00B,KAAOA,EASZ10B,KAAKg3B,KAAOA,EAOZh3B,KAAKkmB,SAAMne,EAeX/H,KAAKoU,SAAMrM,EAqFb,OAxEAg2B,EAAOj0B,UAAUC,SAAW,WAC1B,OAAO/J,KAAKkmB,KAqBd6X,EAAOj0B,UAAU+mB,KAAO,SAAciE,GACpC,IAAIkC,EAAOhgB,UAAU3Y,OAAS,QAAsB0J,IAAjBiP,UAAU,GAAmBA,UAAU,GAAK,GAE1EggB,EAAK7D,QACJnzB,KAAKk+B,YAAcl+B,KAAKk+B,WAAWC,gBACrCnH,EAAK7D,OAASnzB,KAAKk+B,WAAWC,eAIlC,IAAIC,EAAU,IAAIP,GAAQ/I,EAAMkC,GAGhC,OAFAh3B,KAAKi+B,SAASv0B,KAAK00B,GAEZA,GAgBTL,EAAOj0B,UAAUu0B,SAAW,WAC1B,OAAOr+B,KAAKi+B,SAAS9U,QAAO,SAAUrwB,GACpC,MAAkB,YAAXA,EAAE0O,SAcb4c,GAAY2Z,EAAQ,CAAC,CACnBtpB,IAAK,UACLmb,IAAK,WACH,OAAO5vB,KAAKkmB,QAGT6X,EAnKI,GAwKb,SAASO,GAAUxqB,GACjB,MAAqE,iBAA9C,IAARA,EAAsB,YAAc8B,GAAQ9B,KAA0C,mBAAbA,EAAIyqB,KAsB9F,IAAIC,GAAa,WACf,SAASA,EAAWR,EAAW9X,EAAK8Q,GAClC7S,GAAenkB,KAAMw+B,GAErBx+B,KAAKy+B,aAAc,EACnBz+B,KAAK0+B,WAAY,EAEjB,IAAIhK,OAAO,EACX,GAAkE,iBAA9C,IAARxO,EAAsB,YAActQ,GAAQsQ,KAAmC,SAAbA,EAAI1e,KAChFktB,EAAOxO,OACF,GAAIA,aAAesY,GAActY,aAAe6X,GACrDrJ,EAAOxO,EAAIwO,KACPxO,EAAI9R,WACkB,IAAb4iB,EAAK5iB,MAAqB4iB,EAAK5iB,IAAM,IAC3C4iB,EAAK5iB,IAAIuqB,SAAQ3H,EAAK5iB,IAAIuqB,QAAS,GACxC3H,EAAK5iB,IAAItL,KAAOod,EAAI9R,SAEjB,CACL,IAAI0mB,EAASF,GACT5D,EAAK4H,SAAQ9D,EAAS9D,EAAK4H,OAAO/0B,OAClCmtB,EAAK8D,SAAQA,EAAS9D,EAAK8D,QAC3BA,EAAOjxB,QAAOixB,EAASA,EAAOjxB,OAElC,IACE6qB,EAAOoG,EAAO5U,EAAK8Q,GACnB,MAAOpE,GACP5yB,KAAK4yB,MAAQA,GAIjB5yB,KAAKuH,OAAS,IAAIw2B,GAAOC,EAAWtJ,EAAMsC,GAyU5C,OAzTAwH,EAAW10B,UAAUu0B,SAAW,WAC9B,OAAOr+B,KAAK6+B,OAAOR,YAarBG,EAAW10B,UAAUC,SAAW,WAC9B,OAAO/J,KAAKkmB,KAuBdsY,EAAW10B,UAAUy0B,KAAO,SAAcO,EAAaC,GACrD,OAAO/+B,KAAKg/B,QAAQT,KAAKO,EAAaC,IAsBxCP,EAAW10B,UAAUm1B,MAAQ,SAAgBF,GAC3C,OAAO/+B,KAAKg/B,QAAQC,MAAMF,IAG5BP,EAAW10B,UAAUo1B,YAAc,SAAqBtM,EAAOO,GAC7D,IAEE,GADAnzB,KAAK4yB,MAAQA,EACM,mBAAfA,EAAMppB,MAA8BopB,EAAMO,QAGvC,GAAIA,EAAOgM,eAAgB,CAChC,IAAIC,EAAajM,EAAOgL,cACpBkB,EAAYlM,EAAOgM,eACnBG,EAAat/B,KAAKuH,OAAOy2B,UAAUr4B,QACnClN,EAAI4mC,EAAU3/B,MAAM,KACpBpG,EAAIgmC,EAAW5/B,MAAM,MAErBjH,EAAE,KAAOa,EAAE,IAAMsM,SAASnN,EAAE,IAAMmN,SAAStM,EAAE,MAC/Co3B,GAAS,mCAAiD4O,EAAa,SAAWF,EAAzE,SAAuGC,EAAvG,0DAVXzM,EAAMO,OAASA,EAAOgL,cACtBvL,EAAMS,aAYR,MAAO1K,GACHiI,SAAWA,QAAQgC,OAAOhC,QAAQgC,MAAMjK,KAIhD6V,EAAW10B,UAAUy1B,UAAY,SAAmBC,EAASC,GAC3D,IAAI3Z,EAAQ9lB,KAEZ,GAAIA,KAAKmzB,QAAUnzB,KAAKg+B,UAAU0B,QAAQrhC,OAExC,OADA2B,KAAK0+B,WAAY,EACVc,IAGT,IACE,IAAIrM,EAASnzB,KAAKg+B,UAAU0B,QAAQ1/B,KAAKmzB,QACrCwM,EAAU3/B,KAAK4/B,IAAIzM,GACvBnzB,KAAKmzB,QAAU,EAEXmL,GAAUqB,GACZA,EAAQpB,MAAK,WACXzY,EAAMyZ,UAAUC,EAASC,MACxBR,OAAM,SAAUrM,GACjB9M,EAAMoZ,YAAYtM,EAAOO,GACzBrN,EAAM4Y,WAAY,EAClBe,EAAO7M,MAGT5yB,KAAKu/B,UAAUC,EAASC,GAE1B,MAAO7M,GACP5yB,KAAK0+B,WAAY,EACjBe,EAAO7M,KAIX4L,EAAW10B,UAAUk1B,MAAQ,WAC3B,IAAIxD,EAASx7B,KAEb,OAAIA,KAAK0+B,UACA,IAAImB,SAAQ,SAAUL,EAASC,GAChCjE,EAAO5I,MACT6M,EAAOjE,EAAO5I,OAEd4M,EAAQhE,EAAOpzB,iBAIjBpI,KAAK8/B,aAIT9/B,KAAK8/B,WAAa,IAAID,SAAQ,SAAUL,EAASC,GAC/C,GAAIjE,EAAO5I,MAAO,OAAO6M,EAAOjE,EAAO5I,OACvC4I,EAAOrI,OAAS,EAChBqI,EAAO+D,UAAUC,EAASC,MACzBlB,MAAK,WAEN,OADA/C,EAAOkD,WAAY,EACZlD,EAAOpzB,gBATPpI,KAAK8/B,aAehBtB,EAAW10B,UAAU+0B,KAAO,WAC1B,IAAIjD,EAAS57B,KAEb,GAAIA,KAAK0+B,UAAW,OAAO1+B,KAAKuH,OAGhC,GAFAvH,KAAK0+B,WAAY,EAEb1+B,KAAK8/B,WACP,MAAM,IAAI3d,MAAM,wDAGlB,GAAIniB,KAAK4yB,MAAO,MAAM5yB,KAAK4yB,MAS3B,OAPA5yB,KAAKuH,OAAOy2B,UAAU0B,QAAQv+B,SAAQ,SAAUgyB,GAE9C,GAAImL,GADU1C,EAAOgE,IAAIzM,IAEvB,MAAM,IAAIhR,MAAM,2DAIbniB,KAAKuH,QAGdi3B,EAAW10B,UAAU81B,IAAM,SAAazM,GACtCnzB,KAAKuH,OAAO22B,WAAa/K,EAEzB,IACE,OAAOA,EAAOnzB,KAAKuH,OAAOmtB,KAAM10B,KAAKuH,QACrC,MAAOqrB,GAEP,MADA5yB,KAAKk/B,YAAYtM,EAAOO,GAClBP,IAIV4L,EAAW10B,UAAU1B,UAAY,WAC/B,GAAIpI,KAAKy+B,YAAa,OAAOz+B,KAAKuH,OAClCvH,KAAKy+B,aAAc,EAEnBz+B,KAAK6+B,OAEL,IAAI7H,EAAOh3B,KAAKuH,OAAOyvB,KACnBtiB,EAAMiiB,GACNK,EAAK4H,SAAQlqB,EAAMsiB,EAAK4H,OAAOx2B,WAC/B4uB,EAAKE,cAAaxiB,EAAMsiB,EAAKE,aAC7BxiB,EAAItM,YAAWsM,EAAMA,EAAItM,WAE7B,IAAIb,EAAS,GAMb,OALAmN,EAAI1U,KAAK00B,MAAM,SAAU57B,GACvByO,GAAUzO,KAEZkH,KAAKuH,OAAO2e,IAAM3e,EAEXvH,KAAKuH,QAGd6c,GAAYoa,EAAY,CAAC,CACvB/pB,IAAK,YACLmb,IAAK,WACH,OAAO5vB,KAAKuH,OAAOy2B,YAQpB,CACDvpB,IAAK,OACLmb,IAAK,WACH,OAAO5vB,KAAKuH,OAAOyvB,OAgBpB,CACDviB,IAAK,MACLmb,IAAK,WACH,OAAO5vB,KAAKoI,YAAY8d,MAgBzB,CACDzR,IAAK,UACLmb,IAAK,WACH,OAAO5vB,KAAKoI,YAAYzH,UAgBzB,CACD8T,IAAK,MACLmb,IAAK,WACH,OAAO5vB,KAAKoI,YAAYgM,MAiBzB,CACDK,IAAK,OACLmb,IAAK,WACH,OAAO5vB,KAAK6+B,OAAOnK,OAiBpB,CACDjgB,IAAK,WACLmb,IAAK,WACH,OAAO5vB,KAAK6+B,OAAOZ,aAGhBO,EAvWQ,GAycbuB,GAAY,WAKd,SAASA,IACP,IAAIL,EAAU1oB,UAAU3Y,OAAS,QAAsB0J,IAAjBiP,UAAU,GAAmBA,UAAU,GAAK,GAClFmN,GAAenkB,KAAM+/B,GAUrB//B,KAAK2F,QAAU,QAQf3F,KAAK0/B,QAAU1/B,KAAK07B,UAAUgE,GAqFhC,OAnDAK,EAAUj2B,UAAU5J,IAAM,SAAaizB,GAErC,OADAnzB,KAAK0/B,QAAU1/B,KAAK0/B,QAAQje,OAAOzhB,KAAK07B,UAAU,CAACvI,KAC5CnzB,MA2BT+/B,EAAUj2B,UAAUzF,QAAU,SAAiB6hB,GAC7C,IAAI8Q,EAAOhgB,UAAU3Y,OAAS,QAAsB0J,IAAjBiP,UAAU,GAAmBA,UAAU,GAAK,GAE/E,OAAO,IAAIwnB,GAAWx+B,KAAMkmB,EAAK8Q,IAGnC+I,EAAUj2B,UAAU4xB,UAAY,SAAmBgE,GACjD,IAAIM,EAAa,GAYjB,OAXAN,EAAQv+B,SAAQ,SAAUrI,GAGxB,GAFIA,EAAEmnC,UAASnnC,EAAIA,EAAEmnC,SAEyC,iBAA5C,IAANnnC,EAAoB,YAAc8c,GAAQ9c,KAAoB2G,MAAMgI,QAAQ3O,EAAE4mC,SACxFM,EAAaA,EAAWve,OAAO3oB,EAAE4mC,aAC5B,IAAiB,mBAAN5mC,EAGhB,MAAM,IAAIqpB,MAAMrpB,EAAI,4BAFpBknC,EAAWt2B,KAAK5Q,OAKbknC,GAGFD,EA9GO,GA8HZnH,GAAO,SAAUuE,GAGnB,SAASvE,EAAK7B,GACZ5S,GAAenkB,KAAM44B,GAErB,IAAI9S,EAAQjB,GAA0B7kB,KAAMm9B,EAAWp9B,KAAKC,KAAM+2B,IAIlE,OAFAjR,EAAMte,KAAO,OACRse,EAAM3e,QAAO2e,EAAM3e,MAAQ,IACzB2e,EAkFT,OA3FAvB,GAASqU,EAAMuE,GAYfvE,EAAK9uB,UAAU+kB,YAAc,SAAqB0G,GAOhD,OAJc,KAFdA,EAAQv1B,KAAK+hB,MAAMwT,KAEAv1B,KAAKmH,MAAM9I,OAAS,IACrC2B,KAAKmH,MAAM,GAAGytB,KAAK1sB,OAASlI,KAAKmH,MAAMouB,GAAOX,KAAK1sB,QAG9Ci1B,EAAWrzB,UAAU+kB,YAAY9uB,KAAKC,KAAMu1B,IAGrDqD,EAAK9uB,UAAU4xB,UAAY,SAAmBnG,EAAOkH,EAAQj1B,GAC3D,IAAIL,EAAQg2B,EAAWrzB,UAAU4xB,UAAU37B,KAAKC,KAAMu1B,GAgBtD,OAdIkH,IACW,YAATj1B,EACExH,KAAKmH,MAAM9I,OAAS,EACtBo+B,EAAO7H,KAAK1sB,OAASlI,KAAKmH,MAAM,GAAGytB,KAAK1sB,cAEjCu0B,EAAO7H,KAAK1sB,OAEZlI,KAAK01B,QAAU+G,GACxBt1B,EAAMhG,SAAQ,SAAUkE,GACtBA,EAAKuvB,KAAK1sB,OAASu0B,EAAO7H,KAAK1sB,WAK9Bf,GAkBTyxB,EAAK9uB,UAAUo2B,SAAW,WACxB,IAAIlJ,EAAOhgB,UAAU3Y,OAAS,QAAsB0J,IAAjBiP,UAAU,GAAmBA,UAAU,GAAK,GAE3EmpB,EAAO,IAAI3B,GAAW,IAAIuB,GAAa//B,KAAMg3B,GACjD,OAAOmJ,EAAK/3B,aAGdwwB,EAAK9uB,UAAU2lB,OAAS,SAAgB8F,GACtC7E,GAAS,mDACT1wB,KAAK6uB,YAAY0G,IAGnBqD,EAAK9uB,UAAUs2B,QAAU,WAEvB,OADA1P,GAAS,yDACF1wB,KAAKskB,OAAO1b,MAAMwL,KAoBpBwkB,EA5FE,CA6FToC,IAKEqF,GAAW,EAiBX7M,GAAQ,WAKV,SAASA,EAAMtN,GACb,IAAI8Q,EAAOhgB,UAAU3Y,OAAS,QAAsB0J,IAAjBiP,UAAU,GAAmBA,UAAU,GAAK,GAC/EmN,GAAenkB,KAAMwzB,GASrBxzB,KAAKkmB,IAAMA,EAAInc,WAEK,WAAhB/J,KAAKkmB,IAAI,IAAmC,MAAhBlmB,KAAKkmB,IAAI,KACvClmB,KAAKkmB,IAAMlmB,KAAKkmB,IAAIzc,MAAM,IAGxButB,EAAK7gB,OACH,YAAYrW,KAAKk3B,EAAK7gB,MASxBnW,KAAKkzB,KAAO8D,EAAK7gB,KAEjBnW,KAAKkzB,KAAOoN,KAAKd,QAAQxI,EAAK7gB,OAqB7BnW,KAAKkzB,OACRmN,IAAY,EAWZrgC,KAAK4nB,GAAK,cAAgByY,GAAW,KAEnCrgC,KAAKoU,MAAKpU,KAAKoU,IAAI8e,KAAOlzB,KAAKmW,MAkFrC,OA/EAqd,EAAM1pB,UAAU8oB,MAAQ,SAAejC,EAAS7vB,EAAMC,GACpD,IAAIi2B,EAAOhgB,UAAU3Y,OAAS,QAAsB0J,IAAjBiP,UAAU,GAAmBA,UAAU,GAAK,GAE3EzP,OAAS,EACTg5B,EAASvgC,KAAKugC,OAAOz/B,EAAMC,GAU/B,OAREwG,EADEg5B,EACO,IAAItN,GAAetC,EAAS4P,EAAOz/B,KAAMy/B,EAAOx/B,OAAQw/B,EAAOjc,OAAQic,EAAOrN,KAAM8D,EAAK7D,QAEzF,IAAIF,GAAetC,EAAS7vB,EAAMC,EAAQf,KAAKkmB,IAAKlmB,KAAKkzB,KAAM8D,EAAK7D,SAGxEvqB,MAAQ,CAAE9H,KAAMA,EAAMC,OAAQA,EAAQujB,OAAQtkB,KAAKkmB,KACtDlmB,KAAKkzB,OAAM3rB,EAAOqB,MAAMsqB,KAAOlzB,KAAKkzB,MAEjC3rB,GAkBTisB,EAAM1pB,UAAUy2B,OAAS,SAAgBz/B,EAAMC,GAC7C,IAAKf,KAAKoU,IAAK,OAAO,EACtB,IAAIosB,EAAWxgC,KAAKoU,IAAIosB,WAEpBrqB,EAAOqqB,EAASC,oBAAoB,CAAE3/B,KAAMA,EAAMC,OAAQA,IAC9D,IAAKoV,EAAKmO,OAAQ,OAAO,EAEzB,IAAI/c,EAAS,CACX2rB,KAAMlzB,KAAK0gC,WAAWvqB,EAAKmO,QAC3BxjB,KAAMqV,EAAKrV,KACXC,OAAQoV,EAAKpV,QAGXujB,EAASkc,EAASG,iBAAiBxqB,EAAKmO,QAG5C,OAFIA,IAAQ/c,EAAO+c,OAASA,GAErB/c,GAGTisB,EAAM1pB,UAAU42B,WAAa,SAAoBxN,GAC/C,MAAI,YAAYpzB,KAAKozB,GACZA,EAEAoN,KAAKd,QAAQx/B,KAAKoU,IAAIosB,WAAWI,YAAc,IAAK1N,IAkB/D9O,GAAYoP,EAAO,CAAC,CAClB/e,IAAK,OACLmb,IAAK,WACH,OAAO5vB,KAAKkzB,MAAQlzB,KAAK4nB,OAGtB4L,EAvJG,GA4JRqN,GAAa,SAAUC,GAGzB,SAASD,IAEP,OADA1c,GAAenkB,KAAM6gC,GACdhc,GAA0B7kB,KAAM8gC,EAAQ7nB,MAAMjZ,KAAMgX,YA8E7D,OAlFAuN,GAASsc,EAAYC,GAOrBD,EAAW/2B,UAAUooB,SAAW,WAC9BlyB,KAAKoJ,OAAS8oB,GAASlyB,KAAK4I,MAAO,CAAE0pB,cAAc,KAGrDuO,EAAW/2B,UAAUkpB,QAAU,SAAiBjqB,GAC9C,IAAI1D,EAAO,IAAIqzB,GACf14B,KAAKm5B,KAAK9zB,EAAM0D,EAAM,GAAIA,EAAM,IAChC1D,EAAKif,OAAOgI,IAAM,CAAExrB,KAAMiI,EAAM,GAAIhI,OAAQgI,EAAM,IAElD,IAAI+rB,EAAO/rB,EAAM,GAAGU,MAAM,GAG1B,GAFuB,OAAnBqrB,EAAKrrB,OAAO,KAAaqrB,EAAOA,EAAKrrB,MAAM,GAAI,IAE/C,QAAQ3J,KAAKg1B,GACfzvB,EAAKyvB,KAAO,GACZzvB,EAAKuvB,KAAKlb,KAAOob,EACjBzvB,EAAKuvB,KAAKtb,MAAQ,OACb,CACL,IAAIpC,EAAQ4d,EAAK5d,MAAM,2BACvB7R,EAAKyvB,KAAO5d,EAAM,GAClB7R,EAAKuvB,KAAKlb,KAAOxC,EAAM,GACvB7R,EAAKuvB,KAAKtb,MAAQpC,EAAM,KAI5B2pB,EAAW/2B,UAAUyvB,gBAAkB,aAEvCsH,EAAW/2B,UAAU0vB,YAAc,SAAqB9F,GACtD,IAAIqN,EAAS/gC,KAAKoJ,OAAOK,MAAMiqB,EAAO1zB,KAAKwE,IAAM,GACjDxE,KAAK84B,QAAUiI,EAAO3sB,KAAI,SAAUtb,GAClC,OAAOA,EAAE,MACRuG,KAAK,KAGVwhC,EAAW/2B,UAAUswB,gBAAkB,WACrCp6B,KAAK64B,QAAQjE,KAAKzsB,OAAS,KAG7B04B,EAAW/2B,UAAU4wB,YAAc,aAEnCmG,EAAW/2B,UAAUowB,cAAgB,SAAuB70B,GAC1DA,EAAKmE,KAAO,IAGdq3B,EAAW/2B,UAAU8vB,wBAA0B,SAAiCxwB,GAC9E,IAAIpC,EAAQhH,KAAKgH,MAAMoC,GACvB,IAAc,IAAVpC,EAAJ,CAEA,IAAItH,OAAQ,EACZ,IAAKA,EAAQsH,EAAQ,EAAGtH,GAAS,GACN,SAArB0J,EAAO1J,GAAO,GADgBA,KAGpC,IAAKA,GAAS,EAAGA,GAAS,EAAGA,IAC3B,GAAyB,UAArB0J,EAAO1J,GAAO,GAAgB,CAChCA,GAAS,EACT,MAGJ,IAAIu5B,EAAQ7vB,EAAOqxB,OAAO/6B,EAAO0J,EAAO/K,OAASqB,GACjDM,KAAK+0B,KAAKkE,KAGZ4H,EAAW/2B,UAAUkwB,qBAAuB,aAE5C6G,EAAW/2B,UAAUovB,QAAU,WAM7B,IALIl5B,KAAK64B,QAAQ1xB,OAASnH,KAAK64B,QAAQ1xB,MAAM9I,SAC3C2B,KAAK64B,QAAQjE,KAAK/N,UAAY7mB,KAAK6mB,WAErC7mB,KAAK64B,QAAQjE,KAAKzsB,OAASnI,KAAK64B,QAAQjE,KAAKzsB,OAAS,IAAMnI,KAAK84B,OAE1D94B,KAAK64B,QAAQ1vB,QAClBnJ,KAAK64B,QAAU74B,KAAK64B,QAAQ1vB,OAC5BnJ,KAAK64B,QAAQjE,KAAKzsB,MAAQ,IAIvB04B,EAnFQ,CAoFflI,IAgBF,IAgFIqI,GAhFAC,GAAY,GAgDZC,GAAcxtB,OAAOC,OAAO,IAC5BwtB,GAAeztB,OAAOC,OAAO,IAI7BytB,GAAkB,SAAUjsB,EAAOksB,GACrC,IAAIC,EAAetqB,UAAU3Y,OAAS,QAAsB0J,IAAjBiP,UAAU,GAAmBA,UAAU,GAAKmqB,GAMnFI,IAAiBD,GAAensB,EAAMqsB,QAAUF,EAAaE,MAC7DA,EAAQrsB,EAAMqsB,QAAUD,EAAiBpsB,EAAMqsB,MAAQH,GAAiBC,EAAaE,MAGzF,OAAOA,GAKT,SAASC,GAAMvsB,GACb,MAAyB,iBAAXA,IAAsH,EAYtI,IAAIwsB,GAAgB,CAClBC,mBAAmB,EACnBC,cAAc,EACdN,cAAc,EACdrd,aAAa,EACb4d,0BAA0B,EAC1BC,WAAW,EACXt6B,MAAM,GAGJu6B,GAAgB,CAClBv4B,MAAM,EACNnL,QAAQ,EACRyL,WAAW,EACXk4B,QAAQ,EACRC,QAAQ,EACRjrB,WAAW,EACXkrB,OAAO,GAGLC,KAAgBnB,GAAgB,IAAkBoB,EAAAA,YAAc,CAClEC,UAAU,EACVC,QAAQ,GACPtB,IAECuB,GAAmB7uB,OAAO8B,eAC1BgtB,GAAsB9uB,OAAO8uB,oBAC7BC,GAAwB/uB,OAAOgvB,sBAC/BA,QAAkD36B,IAA1B06B,GAAsC,WAChE,MAAO,IACLA,GACAE,GAA2BjvB,OAAOivB,yBAClCC,GAAiBlvB,OAAOkvB,eACxBC,GAAkBnvB,OAAO5J,UACzBg5B,GAAiBrjC,MAAMqK,UAG3B,SAASi5B,GAAqBC,EAAiBC,EAAiBC,GAC9D,GAA+B,iBAApBD,EAA8B,CAGvC,IAAIE,EAAqBP,GAAeK,GAEpCE,GAAsBA,IAAuBN,IAC/CE,GAAqBC,EAAiBG,EAAoBD,GAgB5D,IAbA,IAAIpuB,EAAOguB,GAAerhB,OAAO+gB,GAAoBS,GAErDP,GAAsBO,IAElBG,EAAgBjB,GAAaa,EAAgBX,WAAaX,GAE1D2B,EAAgBlB,GAAac,EAAgBZ,WAAaX,GAE1D5oC,EAAIgc,EAAKzW,OACT+W,OAAa,EACbX,OAAM,EAGH3b,KAGL,GAFA2b,EAAMK,EAAKhc,KAIVipC,GAActtB,IAAUyuB,GAAaA,EAAUzuB,IAAW4uB,GAAiBA,EAAc5uB,IAExF2uB,GAAiBA,EAAc3uB,MAC/BW,EAAautB,GAAyBM,EAAiBxuB,IAGrD,IAEE8tB,GAAiBS,EAAiBvuB,EAAKW,GACvC,MAAO5c,IAOf,OAAOwqC,EAGT,OAAOA,EAUT,IAaIM,IAAeC,EAAAA,EAAAA,iBAEfC,GAAgBF,GAAaG,SAM7BC,GAAgB,SAAUC,GAG5B,SAASD,EAAcvuB,GACrBgP,GAAenkB,KAAM0jC,GAErB,IAAI5d,EAAQjB,GAA0B7kB,KAAM2jC,EAAW5jC,KAAKC,KAAMmV,IAIlE,OAFA2Q,EAAM8d,WA79LV,SAAgBC,EAAUC,GAKxB,IAAIC,OAJY,IAAZD,IACFA,EAAUrgB,IAIZ,IACIugB,EADArgB,EAAW,GAEXsgB,GAAa,EAkBjB,OAhBa,WACX,IAAK,IAAIte,EAAO3O,UAAU3Y,OAAQqlB,EAAU,IAAIjkB,MAAMkmB,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAClFnC,EAAQmC,GAAQ7O,UAAU6O,GAG5B,OAAIoe,GAAcF,IAAa/jC,MAAQ8jC,EAAQpgB,EAASC,KAIxDqgB,EAAaH,EAAS5qB,MAAMjZ,KAAM0jB,GAClCugB,GAAa,EACbF,EAAW/jC,KACX2jB,EAAWD,GANFsgB,GA68LUjiB,CAAM+D,EAAM8d,WAAWM,KAAKpe,IAC/CA,EAAMqe,YAAcre,EAAMqe,YAAYD,KAAKpe,GACpCA,EAmDT,OA5DAvB,GAASmf,EAAeC,GAYxBD,EAAc55B,UAAUw4B,OAAS,WAC/B,OAAKtiC,KAAKmV,MAAMsmB,SAETlS,EAAAA,cACL+Z,GAAaG,SACb,KACAzjC,KAAKmkC,aAL0B,MASnCT,EAAc55B,UAAUq6B,YAAc,SAAqBC,GACzD,IAAI1jC,EAAUV,KAAK4jC,WAAW5jC,KAAKmV,MAAMqsB,MAAO4C,GAEhD,OAAO7a,EAAAA,cACL+Z,GAAae,SACb,CAAEv8B,MAAOpH,GACT6oB,EAAAA,SAAAA,KAAoBvpB,KAAKmV,MAAMsmB,YAUnCiI,EAAc55B,UAAUw6B,SAAW,SAAkB9C,EAAO4C,GAC1D,GAAIlgB,GAAWsd,GAOb,OANkBA,EAAM4C,GAS1B,GAAc,OAAV5C,GAAkB/hC,MAAMgI,QAAQ+5B,IAA4E,iBAAhD,IAAVA,EAAwB,YAAc5rB,GAAQ4rB,IAClG,MAAM,IAAI/b,GAAsB,GAGlC,OAAOpB,GAAS,GAAI+f,EAAY5C,IAGlCkC,EAAc55B,UAAU85B,WAAa,SAAoBpC,EAAO4C,GAC9D,OAAOpkC,KAAKskC,SAAS9C,EAAO4C,IAGvBV,EA7DW,CA8DlBa,EAAAA,WAMEC,GAAwB,SAAUb,GAGpC,SAASa,EAAsBrvB,GAC7BgP,GAAenkB,KAAMwkC,GAErB,IAAI1e,EAAQjB,GAA0B7kB,KAAM2jC,EAAW5jC,KAAKC,KAAMmV,IA2BlE,OAzBA2Q,EAAM2e,MAAQ,GAyBP3e,EAkHT,OAlJAvB,GAASigB,EAAuBb,GAmChCa,EAAsB16B,UAAUw4B,OAAS,WACvC,IAAI9G,EAASx7B,KAEb,OAAOupB,EAAAA,cACLia,GACA,MACA,SAAUhC,GACR,IAAIlY,EAASkS,EAAOrmB,MAChBuvB,EAAWpb,EAAOqb,GAClBC,EAAqBtb,EAAOsb,mBAC5BC,EAAevb,EAAOub,aAEtBC,GADWxb,EAAOyb,SACHzb,EAAOxI,OACtBA,OAAyB/Y,IAAjB+8B,EAA6B,GAAKA,EAC1C3vB,EAAQyP,GAAwB0E,EAAQ,CAAC,KAAM,qBAAsB,eAAgB,WAAY,UACjGgY,EAAesD,EAAmBtD,aAElCpsB,GADc0vB,EAAmB3gB,YACxB2gB,EAAmB1vB,QAG5B8vB,OAAkB,EACtB,QAAcj9B,IAAVy5B,EAAqB,CACvB,IAAIyD,EAAY7D,GAAe5F,EAAOrmB,MAAOqsB,EAAOF,GACpD0D,EAAkBxJ,EAAO0J,wBAAwBD,EAAWzJ,EAAOrmB,YAEnE6vB,EAAkBxJ,EAAO0J,wBAAwB1D,GAASL,GAAc3F,EAAOrmB,OAGjF,IAAIgwB,EAAkB9gB,GAAS,GAAImX,EAAOiJ,MAAOtvB,EAAO,CACtD2L,MAAO,CAACkkB,GAAiBvjB,OAAOX,KASlC,OANI+jB,IAAcM,EAAgBC,IAAMP,IAMjCxZ,EAAAA,EAAAA,eAAcqZ,GAAYxvB,EAAQiwB,OAK/CX,EAAsB16B,UAAUu7B,sBAAwB,SAA+B7D,EAAOrsB,EAAOsvB,GACnG,IAAI7I,EAAS57B,KAETU,EAAU2jB,GAAS,GAAIlP,EAAO,CAAEqsB,MAAOA,IAE3C,OAAKiD,EAAMpmC,QAEX2B,KAAKykC,MAAQ,GAEbA,EAAMtjC,SAAQ,SAAUmkC,GACtB,IAxL2BntC,EAwLvBotC,EAAkBD,EAClBE,GAAe,EACfC,OAAO,EACPhxB,OAAM,EAUV,IAAKA,KARDyP,GAAWqhB,KAEbA,EAAkBA,EAAgB7kC,GAClC8kC,GAAe,GAKLD,EACVE,EAAOF,EAAgB9wB,GAElB+wB,IACCthB,GAAWuhB,KAzMQttC,EAyM0BstC,IAxMzCttC,EAAG2R,WAAa3R,EAAG2R,UAAU0mB,kBAwMsBvL,GAAkBwgB,KAK3EA,EAAOA,EAAK/kC,IAQhBk7B,EAAO6I,MAAMhwB,GAAOgxB,EACpB/kC,EAAQ+T,GAAOgxB,KAKZ/kC,GAzCmBA,GA4C5B8jC,EAAsB16B,UAAUo7B,wBAA0B,SAAiC1D,EAAOrsB,GAChG,IAAIuwB,EAAcvwB,EAAMyvB,mBAAmBc,YAGvCpV,EAAmBtwB,KAAKqlC,sBAAsB7D,EAAOrsB,EAAOA,EAAMyvB,mBAAmBH,OAEzF,OAAOiB,EAAYC,oBAAoBrV,IAGzCkU,EAAsB16B,UAAU87B,eAAiB,SAAwBC,QACrD99B,IAAd/H,KAAK00B,MAEP10B,KAAK00B,KAAKkR,eAAeC,IAOtBrB,EAnJmB,CAoJ1BD,EAAAA,WAiFEuB,GAAc,SAAUC,EAASngB,GAGnC,IAFA,IAAIre,EAAS,CAACw+B,EAAQ,IAEbjtC,EAAI,EAAG41B,EAAM9I,EAAevnB,OAAQvF,EAAI41B,EAAK51B,GAAK,EACzDyO,EAAOmC,KAAKkc,EAAe9sB,GAAIitC,EAAQjtC,EAAI,IAG7C,OAAOyO,GAKT,SAAS2e,GAAI8f,GACX,IAAK,IAAIrgB,EAAO3O,UAAU3Y,OAAQunB,EAAiBnmB,MAAMkmB,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IACxGD,EAAeC,EAAO,GAAK7O,UAAU6O,GAGvC,OAAI3B,GAAW8hB,IAAWhhB,GAAcghB,GAE/B3V,GAAQyV,GAAW5E,GAAa,CAAC8E,GAAQvkB,OAAOmE,KAIlDyK,GAAQyV,GAAWE,EAAQpgB,IAKpC,SAASqgB,GAAqBC,EAAsBje,GAClD,IAAIkK,EAAUnb,UAAU3Y,OAAS,QAAsB0J,IAAjBiP,UAAU,GAAmBA,UAAU,GAAKmqB,GAElF,KAAKgF,EAAAA,EAAAA,oBAAmBle,GACtB,MAAM,IAAIxC,GAAsB,EAAGxO,OAAOgR,IAK5C,IAAIme,EAAmB,WACrB,OAAOF,EAAqBje,EAAKkK,EAASjM,GAAIjN,WAAMlR,EAAWiP,aAejE,OAXAovB,EAAiBC,WAAa,SAAUC,GACtC,OAAOL,GAAqBC,EAAsBje,EAAK5D,GAAS,GAAI8N,EAASmU,KAI/EF,EAAiB3B,MAAQ,SAAUA,GACjC,OAAOwB,GAAqBC,EAAsBje,EAAK5D,GAAS,GAAI8N,EAAS,CAC3EsS,MAAOhlC,MAAMqK,UAAU2X,OAAO0Q,EAAQsS,MAAOA,GAAOtb,OAAOC,aAIxDgd,EAKT,IA8BIG,GAjkBgB,SAAU1W,GAC5B,IAAI0W,EAAc,WAChB,SAASA,EAAYpjB,GACnBgB,GAAenkB,KAAMumC,GAErBvmC,KAAKmjB,MAAQA,EA+Bf,OA5BAojB,EAAYz8B,UAAU67B,oBAAsB,SAA6BrV,GACvE,IAAIkW,EAAUnW,GAAQrwB,KAAKmjB,MAAOmN,GAAkBjxB,KAAK,IAErDonC,EAjwLV,SAAoB9tC,GAClB,IAAK,IAAwCW,EAApCd,EAAe,EAAXG,EAAE0F,OAAY5F,EAAQ,EAAJD,EAAOa,EAAI,EAAMb,GAAK,GAC6Ec,EAAI,YAAkB,OAAtJA,EAAsB,IAAlBX,EAAEkG,WAAWxF,IAAgC,IAApBV,EAAEkG,aAAaxF,KAAa,GAAyB,IAApBV,EAAEkG,aAAaxF,KAAa,IAA0B,IAApBV,EAAEkG,aAAaxF,KAAa,OAAqC,YAAcC,IAAM,IAAM,QAAU,IAA8Fb,EAAI,YAAkB,MAAJA,KAAe,YAAcA,IAAM,IAAM,QAAU,KAA/Ia,EAAI,YAAkB,OAArCA,GAAKA,IAAM,OAAqC,YAAcA,IAAM,IAAM,QAAU,KAAmFd,GAAK,IAAKa,EAE7X,OAAQb,GACN,KAAK,EACHC,IAA4B,IAAtBE,EAAEkG,WAAWxF,EAAI,KAAa,GACtC,KAAK,EACHZ,IAA4B,IAAtBE,EAAEkG,WAAWxF,EAAI,KAAa,EACtC,KAAK,EACyBZ,EAAI,YAAkB,OAAlDA,GAAuB,IAAlBE,EAAEkG,WAAWxF,OAA2C,YAAcZ,IAAM,IAAM,QAAU,IAIrG,QADAA,EAAI,YAAkB,OADtBA,GAAKA,IAAM,OACsB,YAAcA,IAAM,IAAM,QAAU,KACzDA,IAAM,MAAQ,EAmvLXiuC,CAAWF,GACtB,IAAKvF,GAAUwF,GAAO,CACpB,IAAI/R,EA9BZ,SAAmBxO,EAAK8Q,GACtB,IAAIpuB,EAAQ,IAAI4qB,GAAMtN,EAAK8Q,GAEvB8D,EAAS,IAAI+F,GAAWj4B,GAI5B,OAHAkyB,EAAO5I,WACP4I,EAAO/B,OAEA+B,EAAOpG,KAuBGiS,CAAUH,GACjBI,EAAY,GAChBlS,EAAKuG,MAAK,SAAU51B,GACA,SAAdA,EAAKmC,MACPo/B,EAAUl9B,KAAK,CAACrE,EAAK4vB,KAAM5vB,EAAKyC,WAUpC,IAAI++B,EAActjB,GAAmBqjB,EAAW,CAAC,eAAgB,cAAe,cAAe,gBAC3FZ,EAASnW,EAAWnL,OAAO,CAC7Buc,UAAW4F,IAEb5F,GAAUwF,GAAQT,EAAO/E,UAE3B,OAAOA,GAAUwF,IAGZF,EAnCS,GAsClB,OAAOA,EA0hBSO,CAAaC,IAAAA,YAC3BC,GAxK0B,SAAUT,GA0EtC,OAzEkC,SAASU,EAA4B/xB,EAAQid,EAAShP,GACtF,IAAI+jB,EAAiB/U,EAAQsS,MACzBA,OAA2B18B,IAAnBm/B,EAA+BhG,GAAcgG,EACrDC,EAAuBhV,EAAQlO,YAC/BA,OAAuClc,IAAzBo/B,EAzVtB,SAA6BjyB,GAE3B,OAAOusB,GAAMvsB,GAAU,UAAYA,EAAS,UAAY8O,GAAiB9O,GAAU,IAuV1BkyB,CAAoBlyB,GAAUiyB,EACjFE,EAAwBlV,EAAQmV,gBAChCA,OAA4Cv/B,IAA1Bs/B,EAAsC7C,GAAwB6C,EAGhFE,GAAW9F,GAAMvsB,GACjBsyB,EAAqBviB,GAAkB/P,GAEvCuyB,EAA+Ble,EAAAA,YAAiB,SAAUpU,EAAOiwB,GACnE,OAAO7b,EAAAA,cAAoB+d,EAAiBjjB,GAAS,GAAIlP,EAAO,CAC9DyvB,mBAAoB6C,EACpB5C,aAAcO,QAIdsC,EAEJF,GAAsBtyB,EAAOuvB,MAAQhlC,MAAMqK,UAAU2X,OAAOvM,EAAOuvB,MAAOA,GAAOtb,OAAOC,SAAWqb,EAiDnG,OAzCAgD,EAA6BhD,MAAQiD,EAErCD,EAA6BxjB,YAAcA,EAG3CwjB,EAA6B/B,YAAc,IAAIa,EAE/CiB,EAAqBtyB,EAAOwwB,YAAYviB,MAAM1B,OAAO0B,GAASA,GAG9DskB,EAA6BviB,kBAAoB,wBAEjDuiB,EAA6BvyB,OAASsyB,EACtCtyB,EAAOA,OAASA,EAEhBuyB,EAA6BE,cAAgB,SAAuB1f,GAC1DkK,EAAQlO,YACPkO,EAAQ/L,YADjB,IAEIwhB,EAAgBhjB,GAAwBuN,EAAS,CAAC,cAAe,gBAEjE0V,EAAaxjB,GAAS,GAAIujB,EAAe,CAC3CnD,MAAOiD,EACPJ,gBAAiBA,IAGnB,OAAOL,EAA4Bhf,EAAK4f,EAAY1kB,IAGlDokB,GAEFxE,GAAqB0E,EAA8BvyB,EAAQ,CAEzDuvB,OAAO,EACPxgB,aAAa,EACbyhB,aAAa,EACbxgB,mBAAmB,EACnBhQ,QAAQ,EACRyyB,eAAe,IAIZF,GAiGmBK,CAAuBvB,IACjDwB,GAAS,SAAgB9f,GAC3B,OAAOge,GAAqBe,GAAyB/e,IAKzC,6BAINvoB,MAAM,QAAQyB,SAAQ,SAAU6mC,GACtC,OAAOt0B,OAAO8B,eAAeuyB,GAAQC,EAAO,CAC1C3yB,YAAY,EACZC,cAAc,EACdsa,IAAK,WACH,OAAOmY,GAAOhB,IAAgBiB,UAMpC,IAAIC,GAAwB,QAAhBC,EAAAA,SAAAA,GACRC,GAAWF,GAAQG,EAAAA,QAAUL,GAC7BM,GAAkBJ,GAAQK,EAAAA,cAAkB5E,GAC5C6E,GAAQN,GAAQO,EAAAA,IAAQtiB,GACxBuiB,GAAcR,GAAQS,EAAAA,UAzDT,SAAUC,GACzB,IAAIC,EAAYrf,EAAAA,YAAiB,SAAUpU,EAAOiwB,GAChD,OAAO7b,EAAAA,cACLia,GACA,MACA,SAAUhC,GAER,IAAIF,EAAeqH,EAAarH,aAE5B2D,EAAY7D,GAAejsB,EAAOqsB,EAAOF,GAO7C,OAAO/X,EAAAA,cAAoBof,EAActkB,GAAS,GAAIlP,EAAO,CAAEqsB,MAAOyD,EAAWG,IAAKA,WAS5F,OAJArC,GAAqB6F,EAAWD,GAEhCC,EAAU3kB,YAAc,aAAeD,GAAiB2kB,GAAgB,IAEjEC,GAyCT,SAASC,GAAU/0B,GAWjB,OATE+0B,GADoB,mBAAXhzB,QAAoD,iBAApBA,OAAOC,SACpC,SAAUhC,GACpB,cAAcA,GAGJ,SAAUA,GACpB,OAAOA,GAAyB,mBAAX+B,QAAyB/B,EAAI7T,cAAgB4V,QAAU/B,IAAQ+B,OAAO/L,UAAY,gBAAkBgK,GAItH+0B,GAAU/0B,GAGnB,SAASiC,GAAgBjC,EAAKW,EAAK3M,GAYjC,OAXI2M,KAAOX,EACTJ,OAAO8B,eAAe1B,EAAKW,EAAK,CAC9B3M,MAAOA,EACPuN,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZzB,EAAIW,GAAO3M,EAGNgM,EAGT,SAASg1B,KAeP,OAdAA,GAAap1B,OAAO4P,QAAU,SAAUpO,GACtC,IAAK,IAAIpc,EAAI,EAAGA,EAAIke,UAAU3Y,OAAQvF,IAAK,CACzC,IAAIwrB,EAAStN,UAAUle,GAEvB,IAAK,IAAI2b,KAAO6P,EACV5Q,OAAO5J,UAAU+K,eAAe9U,KAAKukB,EAAQ7P,KAC/CS,EAAOT,GAAO6P,EAAO7P,IAK3B,OAAOS,GAGF4zB,GAAW7vB,MAAMjZ,KAAMgX,WAGhC,SAAS+xB,GAAc7zB,GACrB,IAAK,IAAIpc,EAAI,EAAGA,EAAIke,UAAU3Y,OAAQvF,IAAK,CACzC,IAAIwrB,EAAyB,MAAhBtN,UAAUle,GAAake,UAAUle,GAAK,GAC/CkwC,EAAUt1B,OAAOoB,KAAKwP,GAEkB,mBAAjC5Q,OAAOgvB,wBAChBsG,EAAUA,EAAQvnB,OAAO/N,OAAOgvB,sBAAsBpe,GAAQ6E,QAAO,SAAU8f,GAC7E,OAAOv1B,OAAOivB,yBAAyBre,EAAQ2kB,GAAK5zB,gBAIxD2zB,EAAQ7nC,SAAQ,SAAUsT,GACxBsB,GAAgBb,EAAQT,EAAK6P,EAAO7P,OAIxC,OAAOS,EAkBT,SAASg0B,GAAyB5kB,EAAQ6kB,GACxC,GAAc,MAAV7kB,EAAgB,MAAO,GAE3B,IAEI7P,EAAK3b,EAFLoc,EAlBN,SAAuCoP,EAAQ6kB,GAC7C,GAAc,MAAV7kB,EAAgB,MAAO,GAC3B,IAEI7P,EAAK3b,EAFLoc,EAAS,GACTk0B,EAAa11B,OAAOoB,KAAKwP,GAG7B,IAAKxrB,EAAI,EAAGA,EAAIswC,EAAW/qC,OAAQvF,IACjC2b,EAAM20B,EAAWtwC,GACbqwC,EAASxpC,QAAQ8U,IAAQ,IAC7BS,EAAOT,GAAO6P,EAAO7P,IAGvB,OAAOS,EAMMm0B,CAA8B/kB,EAAQ6kB,GAInD,GAAIz1B,OAAOgvB,sBAAuB,CAChC,IAAI4G,EAAmB51B,OAAOgvB,sBAAsBpe,GAEpD,IAAKxrB,EAAI,EAAGA,EAAIwwC,EAAiBjrC,OAAQvF,IACvC2b,EAAM60B,EAAiBxwC,GACnBqwC,EAASxpC,QAAQ8U,IAAQ,GACxBf,OAAO5J,UAAUy/B,qBAAqBxpC,KAAKukB,EAAQ7P,KACxDS,EAAOT,GAAO6P,EAAO7P,IAIzB,OAAOS,EAGT,SAASs0B,GAAuBzD,EAASlR,GAKvC,OAJKA,IACHA,EAAMkR,EAAQt8B,MAAM,IAGfiK,OAAOC,OAAOD,OAAOuB,iBAAiB8wB,EAAS,CACpDlR,IAAK,CACH/sB,MAAO4L,OAAOC,OAAOkhB,OAK3B,SAAS4U,GAAexzB,EAAKnd,GAC3B,OAGF,SAAyBmd,GACvB,GAAIxW,MAAMgI,QAAQwO,GAAM,OAAOA,EAJxByzB,CAAgBzzB,IAOzB,SAA+BA,EAAKnd,GAClC,IAAI6wC,EAAO,GACPC,GAAK,EACLC,GAAK,EACLC,OAAK/hC,EAET,IACE,IAAK,IAAiCgiC,EAA7Bnb,EAAK3Y,EAAIJ,OAAOC,cAAmB8zB,GAAMG,EAAKnb,EAAG/lB,QAAQmhC,QAChEL,EAAKjgC,KAAKqgC,EAAGjiC,QAEThP,GAAK6wC,EAAKtrC,SAAWvF,GAH8C8wC,GAAK,IAK9E,MAAOjhB,GACPkhB,GAAK,EACLC,EAAKnhB,EARP,QAUE,IACOihB,GAAsB,MAAhBhb,EAAE,QAAoBA,EAAE,SADrC,QAGE,GAAIib,EAAI,MAAMC,GAIlB,OAAOH,EA9BwBM,CAAsBh0B,EAAKnd,IAiC5D,WACE,MAAM,IAAI+oB,UAAU,wDAlC4CqoB,GA1H9DjC,KACFE,GAASgC,KAAOhC,GAASiC,IACzBjC,GAASkC,KAAOlC,GAAS5uC,EAEzB4uC,GAASmC,MAAQnC,GAASoC,KA2J5B,IAAIC,GAAoB,SAA2B1iC,GAClD,OAID,SAAyBA,GACxB,QAASA,GAA0B,iBAAVA,EALlB2iC,CAAgB3iC,KAQxB,SAAmBA,GAClB,IAAI4iC,EAAch3B,OAAO5J,UAAUC,SAAShK,KAAK+H,GAEjD,MAAuB,oBAAhB4iC,GACa,kBAAhBA,GAQL,SAAwB5iC,GACvB,OAAOA,EAAMu6B,WAAasI,GARtBC,CAAe9iC,GAZd+iC,CAAU/iC,IAgBhB,IACI6iC,GADiC,mBAAX90B,QAAyBA,OAAOi1B,IAClBj1B,OAAOi1B,IAAI,iBAAmB,MAUtE,SAASC,GAA8BjjC,EAAOqqB,GAC7C,OAA0B,IAAlBA,EAAQhI,OAAmBgI,EAAQqY,kBAAkB1iC,GAC1DkjC,IANiBzS,EAMKzwB,EALlBrI,MAAMgI,QAAQ8wB,GAAO,GAAK,IAKAzwB,EAAOqqB,GACrCrqB,EAPJ,IAAqBywB,EAUrB,SAAS0S,GAAkB/1B,EAAQoP,EAAQ6N,GAC1C,OAAOjd,EAAOuM,OAAO6C,GAAQlQ,KAAI,SAAS82B,GACzC,OAAOH,GAA8BG,EAAS/Y,MAoBhD,SAASgZ,GAAQj2B,GAChB,OAAOxB,OAAOoB,KAAKI,GAAQuM,OAT5B,SAAyCvM,GACxC,OAAOxB,OAAOgvB,sBACXhvB,OAAOgvB,sBAAsBxtB,GAAQiU,QAAO,SAASiiB,GACtD,OAAOl2B,EAAOq0B,qBAAqB6B,MAElC,GAI+BC,CAAgCn2B,IAGnE,SAASo2B,GAAmBC,EAAQC,GACnC,IACC,OAAOA,KAAYD,EAClB,MAAM1vC,GACP,OAAO,GAWT,SAAS4vC,GAAYv2B,EAAQoP,EAAQ6N,GACpC,IAAIuZ,EAAc,GAiBlB,OAhBIvZ,EAAQqY,kBAAkBt1B,IAC7Bi2B,GAAQj2B,GAAQ/T,SAAQ,SAASsT,GAChCi3B,EAAYj3B,GAAOs2B,GAA8B71B,EAAOT,GAAM0d,MAGhEgZ,GAAQ7mB,GAAQnjB,SAAQ,SAASsT,IAblC,SAA0BS,EAAQT,GACjC,OAAO62B,GAAmBp2B,EAAQT,MAC5Bf,OAAOmB,eAAe9U,KAAKmV,EAAQT,IACpCf,OAAO61B,qBAAqBxpC,KAAKmV,EAAQT,KAWzCk3B,CAAiBz2B,EAAQT,KAIzB62B,GAAmBp2B,EAAQT,IAAQ0d,EAAQqY,kBAAkBlmB,EAAO7P,IACvEi3B,EAAYj3B,GAhDf,SAA0BA,EAAK0d,GAC9B,IAAKA,EAAQyZ,YACZ,OAAOZ,GAER,IAAIY,EAAczZ,EAAQyZ,YAAYn3B,GACtC,MAA8B,mBAAhBm3B,EAA6BA,EAAcZ,GA2CpCa,CAAiBp3B,EAAK0d,EAAtB0Z,CAA+B32B,EAAOT,GAAM6P,EAAO7P,GAAM0d,GAE5EuZ,EAAYj3B,GAAOs2B,GAA8BzmB,EAAO7P,GAAM0d,OAGzDuZ,EAGR,SAASV,GAAU91B,EAAQoP,EAAQ6N,IAClCA,EAAUA,GAAW,IACb2Z,WAAa3Z,EAAQ2Z,YAAcb,GAC3C9Y,EAAQqY,kBAAoBrY,EAAQqY,mBAAqBA,GAGzDrY,EAAQ4Y,8BAAgCA,GAExC,IAAIgB,EAAgBtsC,MAAMgI,QAAQ6c,GAIlC,OAFgCynB,IADZtsC,MAAMgI,QAAQyN,GAKvB62B,EACH5Z,EAAQ2Z,WAAW52B,EAAQoP,EAAQ6N,GAEnCsZ,GAAYv2B,EAAQoP,EAAQ6N,GAJ5B4Y,GAA8BzmB,EAAQ6N,GAQ/C6Y,GAAUzQ,IAAM,SAAsBiD,EAAOrL,GAC5C,IAAK1yB,MAAMgI,QAAQ+1B,GAClB,MAAM,IAAIrb,MAAM,qCAGjB,OAAOqb,EAAMjpB,QAAO,SAASzL,EAAMD,GAClC,OAAOmiC,GAAUliC,EAAMD,EAAMspB,KAC3B,KAGJ,IAEI6Z,GAFchB,GAIlB,SAASiB,KAEP,MAAsB,oBAAX3mB,QAA0BA,OAAO4mB,YAAc5mB,OAAO4mB,WAAW,gCAAgC5xB,QACnG,OAGF,QAwCT,IAAI6xB,GAAY,CACdC,MAAO,GACPzO,MAAO,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,KACvCnqB,OAAQ,CACNlJ,MAAO,UACPG,MAAO,WAET4hC,UAAW,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACxCC,WAAY,GACZC,YAAa,CAAC,QAAS,QAAS,UAChCC,YAAa,GACbC,aAAc,IAEZC,GAAmB,MACnBC,GAAmB,QACnBC,GAAqB,OACrBC,GAAiBtjB,EAAAA,cAAoB,CACvCujB,aAAc,WACZ,OAAO,MAETC,aAAc,WACZ,OAAO,MAETC,eAAgB,WACd,OAAO,QAwBX,IAGIC,IAAgB1J,EAAAA,EAAAA,eAAc,CAChC2J,MAAO,KAgBT,SAASC,GAAW5I,GAClB,OAAO,SAAUpvB,GACf,OAAOoU,EAAAA,cAAoB0jB,GAAcxJ,SAAU,MAAM,SAAU37B,GACjE,IAGIslC,GAHQtlC,EAAMolC,OAEG,IACIG,OACrBA,OAA0B,IAAjBD,EAA0B,GAAKA,EAE5C,OAAO7jB,EAAAA,cAAoBgb,EAAWuE,GAAW,GAAIuE,EAAO9I,EAAUtgB,aAAeopB,EAAO9I,EAAUtgB,aAAe,GAAI9O,QAK/H,IAAIm4B,GAAiB,SAAwBC,GAC3C,IAAIF,EAASE,EAAMF,OACf5R,EAAW8R,EAAM9R,SAOjB3zB,EAAQ,CACVolC,MAPU,CACVG,OAAQA,GAORG,SAJa,cAMf,OAAOjkB,EAAAA,cAAoB0jB,GAAc5I,SAAU,CACjDv8B,MAAOA,GACN2zB,IAGDgS,GAAqB,WACvB,IAxIIC,EACAC,EACAC,EAsIAC,GAxIAH,EAAajE,IADDqE,EAAAA,EAAAA,UAAS7B,IACkB,GACvC0B,EAAkBD,EAAW,GAC7BE,EAAqBF,EAAW,IAEpCK,EAAAA,EAAAA,YAAU,WAER,IAAIC,EAA0B,oBAAX1oB,QAA0BA,OAAO4mB,YAAc5mB,OAAO4mB,WAAW,gCAEpF,SAAS+B,EAAaC,GACpB,IAAIC,EAAUD,EAAM5zB,QACpBszB,EAAmBO,EAAU,OAAS,SAIxC,GAAIH,EAAO,CAET,QAA+BjmC,IAA3BimC,EAAMI,iBAER,OADAJ,EAAMI,iBAAiB,SAAUH,GAC1B,WACLD,EAAMK,oBAAoB,SAAUJ,IAGnC,QAA0BlmC,IAAtBimC,EAAMM,YAEX,OADAN,EAAMM,YAAYL,GACX,WACLD,EAAMO,eAAeN,OAI5B,IACIN,GA4GP,MAA0B,UAAtBE,EACK,MAGiB,SAAtBA,EACK,QAGFnB,IA4BT,IAAI8B,GAA4B,SAAmCC,GACjE,IAAIC,EAAeD,EAAMpB,OACrBA,OAA0B,IAAjBqB,EAA0B,GAAKA,EACxCjT,EAAWgT,EAAMhT,SACjBtmB,EAAQ+zB,GAAyBuF,EAAO,CAAC,SAAU,aAEnDE,EAhGGplB,EAAAA,WAAiBsjB,IAiGpBxL,EAAgBsN,EAAUnN,MAC1BoN,EAAoBD,EAAUE,UAC9BC,EAAoBH,EAAUI,UAC9BC,EAAsBL,EAAUM,YAEhCzN,EAAQrsB,EAAMqsB,OAASH,GAAiB8K,GAGxC+C,EAAmBzF,GADDlgB,EAAAA,SAAepU,EAAM05B,WAAaD,GAAqBlC,IACtB,GACnDmC,EAAYK,EAAiB,GAC7BpC,EAAeoC,EAAiB,GAGhCC,EAAmB1F,GADAlgB,EAAAA,SAAepU,EAAM45B,WAAaD,GAAqBnC,IACtB,GACpDoC,EAAYI,EAAiB,GAC7BpC,EAAeoC,EAAiB,GAGhCC,EAAmB3F,GADAlgB,EAAAA,SAAepU,EAAM85B,aAAeD,GAAuBpC,IAC1B,GACpDqC,EAAcG,EAAiB,GAC/BpC,EAAiBoC,EAAiB,GAGlCC,EA7IN,SAA0BR,EAAWlB,GACnC,MACO,SADCkB,EAEGlB,EAGAkB,EAuIaS,CAAiBT,EADnBpB,MAElB8B,EApIN,SAA2BV,EAAWE,EAAWE,GAC/C,OAAQJ,GACN,IAAK,MACH,OAAOE,EAET,IAAK,QACH,OAAOE,GA8HOO,CAAkBH,EAAmBN,EAAWE,GAE9DQ,EAAiBlmB,EAAAA,SAAc,WACjC,OA3DJ,SAA0BiY,EAAO+N,GAC/B,IAAK/N,EAAMiL,aACT,MAAO,CACLiD,cAAelO,EACfmO,yBAAqB5nC,GAIzB,IAAKy5B,EAAMiL,aAAa8C,GAAc,CAEpC3e,QAAQgC,MAAM,IAAInR,OAAO8tB,EAAa,iDAEtC,IAAIK,EAAqBl8B,OAAOoB,KAAK0sB,EAAMiL,cAAc,GACzD,MAAO,CACLiD,cAAe1D,GAAIxK,EAAOA,EAAMiL,aAAamD,IAC7CD,oBAAqBC,GAIzB,MAAO,CACLF,cAAe1D,GAAIxK,EAAOA,EAAMiL,aAAa8C,IAC7CI,oBAAqBJ,GAsCdM,CAAiBrO,EAAO+N,KAC9B,CAAC/N,EAAO+N,IACPG,EAAgBD,EAAeC,cAC/BC,EAAsBF,EAAeE,oBAYzC,OATApmB,EAAAA,WAAgB,WACdujB,EAAa33B,EAAM05B,WAAaD,GAAqBlC,MACpD,CAACv3B,EAAM05B,UAAWD,IACrBrlB,EAAAA,WAAgB,WACdwjB,EAAa53B,EAAM45B,WAAaD,GAAqBnC,MACpD,CAACx3B,EAAM45B,UAAWD,IACrBvlB,EAAAA,WAAgB,WACdyjB,EAAe73B,EAAM85B,aAAeD,GAAuBpC,MAC1D,CAACz3B,EAAM85B,YAAaD,IAChBzlB,EAAAA,cAAoBsjB,GAAexI,SAAU,CAClDv8B,MAAO,CACL05B,MAAOkO,EACPH,YAAaA,EACbV,UAAWA,EACXQ,kBAAmBA,EACnBM,oBAAqBA,EACrBZ,UAAWA,EACXE,YAAaA,EACbnC,aAAcA,EACdC,aAAcA,EACdC,eAAgBA,IAEjBzjB,EAAAA,cAAoB8e,GAAiB,CACtC7G,MAAOkO,GACNnmB,EAAAA,cAAoB+jB,GAAgB,CACrCD,OAAQA,GACP5R,MAGDqU,GAAU,SAAUvL,EAAWpsC,GACjC,OAAO,SAAUgd,GACf,IAAI6wB,EAAuB,mBAAP7tC,EAAoBA,EAAGgd,GAAShd,EAChD43C,EAAa,GACbC,EAAe,GAEnB,IAAK,IAAIC,KAAOjK,EACd,GAAIA,EAAOiK,GAAM,CACf,IAAInoC,EAAQk+B,EAAOiK,GAEfA,EAAI1rC,WAAW,KACjByrC,EAAaC,EAAIxmC,MAAM,IAAM3B,EAE7BioC,EAAWE,GAAOnoC,EAKxB,OAAOyhB,EAAAA,cAAoBgb,EAAWuE,GAAW,GAAIiH,EAAY,CAC/D/J,OAAQgK,GACP76B,MAUH+6B,GAA0Bx8B,OAAOgvB,sBACjC7tB,GAAiBnB,OAAO5J,UAAU+K,eAClCs7B,GAAmBz8B,OAAO5J,UAAUy/B,qBAExC,SAAS6G,GAAS7X,GACjB,GAAIA,MAAAA,EACH,MAAM,IAAI1W,UAAU,yDAGrB,OAAOnO,OAAO6kB,GA+Cf,IAAI8X,GA5CJ,WACC,IACC,IAAK38B,OAAO4P,OACX,OAAO,EAMR,IAAIgtB,EAAQ,IAAIr5B,OAAO,OAEvB,GADAq5B,EAAM,GAAK,KACkC,MAAzC58B,OAAO8uB,oBAAoB8N,GAAO,GACrC,OAAO,EAKR,IADA,IAAIC,EAAQ,GACHz3C,EAAI,EAAGA,EAAI,GAAIA,IACvBy3C,EAAM,IAAMt5B,OAAOgB,aAAanf,IAAMA,EAEvC,IAAI03C,EAAS98B,OAAO8uB,oBAAoB+N,GAAOn8B,KAAI,SAAUpb,GAC5D,OAAOu3C,EAAMv3C,MAEd,GAAwB,eAApBw3C,EAAOnxC,KAAK,IACf,OAAO,EAIR,IAAIoxC,EAAQ,GAIZ,MAHA,uBAAuB/wC,MAAM,IAAIyB,SAAQ,SAAUu8B,GAClD+S,EAAM/S,GAAUA,KAGf,yBADEhqB,OAAOoB,KAAKpB,OAAO4P,OAAO,GAAImtB,IAAQpxC,KAAK,IAM9C,MAAOspB,GAER,OAAO,GAIU+nB,GAAoBh9B,OAAO4P,OAAS,SAAUpO,EAAQoP,GAKxE,IAJA,IAAInO,EAEAw6B,EADAC,EAAKR,GAASl7B,GAGTtc,EAAI,EAAGA,EAAIoe,UAAU3Y,OAAQzF,IAAK,CAG1C,IAAK,IAAI6b,KAFT0B,EAAOzC,OAAOsD,UAAUpe,IAGnBic,GAAe9U,KAAKoW,EAAM1B,KAC7Bm8B,EAAGn8B,GAAO0B,EAAK1B,IAIjB,GAAIy7B,GAAyB,CAC5BS,EAAUT,GAAwB/5B,GAClC,IAAK,IAAIrd,EAAI,EAAGA,EAAI63C,EAAQtyC,OAAQvF,IAC/Bq3C,GAAiBpwC,KAAKoW,EAAMw6B,EAAQ73C,MACvC83C,EAAGD,EAAQ73C,IAAMqd,EAAKw6B,EAAQ73C,MAMlC,OAAO83C,GAGJC,GAAQ,SAAep4C,EAAGa,GAC5B,IAAIiO,EAAS8oC,GAAa,GAAI53C,EAAGa,GAEjC,IAAK,IAAImb,KAAOhc,EAAG,CACjB,IAAIq4C,EAECr4C,EAAEgc,IAA0B,iBAAXnb,EAAEmb,IACxB47B,GAAa9oC,IAASupC,EAAU,IAAYr8B,GAAO47B,GAAa53C,EAAEgc,GAAMnb,EAAEmb,IAAOq8B,IAGnF,OAAOvpC,GAWLwpC,GAAW,CACbxE,YAAa,CAAC,GAAI,GAAI,IAAIn4B,KAAI,SAAUpb,GACtC,OAAOA,EAAI,SAIXg4C,GAAmB,SAA0Bh4C,GAC/C,MAAO,iCAAmCA,EAAI,KAG5Ci4C,GAAW,SAAkBj4C,EAAG0kB,GAClC,OAAOkS,GAAIlS,EAAO1kB,EAAGA,IAGnB42B,GAAM,SAAa9b,EAAKW,EAAKy8B,EAAK33C,EAAG43C,GAGvC,IAFA18B,EAAMA,GAAOA,EAAI/U,MAAQ+U,EAAI/U,MAAM,KAAO,CAAC+U,GAEtClb,EAAI,EAAGA,EAAIkb,EAAIpW,OAAQ9E,IAC1Bua,EAAMA,EAAMA,EAAIW,EAAIlb,IAAM43C,EAG5B,OAAOr9B,IAAQq9B,EAAQD,EAAMp9B,GAE3Bs9B,GAAe,SAASA,EAAa9K,GACvC,IAAIxM,EAAQ,GAERjwB,EAAQ,SAAesL,GACzB,IAnCqBrB,EACnBjL,EAkCEm9B,EAAS,GACTqL,GAAa,EACbC,EAAkBn8B,EAAMqsB,OAASrsB,EAAMqsB,MAAM+P,yBAEjD,IAAK,IAAI98B,KAAOU,EACd,GAAKmxB,EAAO7xB,GAAZ,CACA,IAAI+8B,EAAKlL,EAAO7xB,GACZogB,EAAM1f,EAAMV,GACZiJ,EAAQkS,GAAIza,EAAMqsB,MAAOgQ,EAAG9zB,MAAO8zB,EAAGT,UAE1C,GAAmB,iBAARlc,EAiBXwb,GAAarK,EAAQwL,EAAG3c,EAAKnX,QAjB7B,CAGE,GAFAoc,EAAMyS,aAAe+E,GAAmBxX,EAAMyS,aAAe3c,GAAIza,EAAMqsB,MAAO,cAAeuP,GAASxE,aAElG9sC,MAAMgI,QAAQotB,GAAM,CACtBiF,EAAMkU,OAASsD,GAAmBxX,EAAMkU,OAAS,CAAC,MAAMvsB,OAAOqY,EAAMyS,YAAYn4B,IAAI48B,KACrFhL,EAAS6K,GAAM7K,EAAQyL,GAAqB3X,EAAMkU,MAAOwD,EAAI9zB,EAAOmX,IACpE,SAGU,OAARA,IACFmR,EAAS6K,GAAM7K,EAAQ0L,GAAsB5X,EAAMyS,YAAaiF,EAAI9zB,EAAOmX,IAC3Ewc,GAAa,IAcnB,OAJIA,IAlEiBv9B,EAmELkyB,EAlEdn9B,EAAO,GACX6K,OAAOoB,KAAKhB,GAAKmN,OAAO9f,SAAQ,SAAUsT,GACxC5L,EAAK4L,GAAOX,EAAIW,MAgEduxB,EA9DGn9B,GAiEEm9B,GAGTn8B,EAAMy8B,OAASA,EACfz8B,EAAM8nC,UAAYj+B,OAAOoB,KAAKwxB,GAC9Bz8B,EAAMiwB,MAAQA,EACd,IAAIhlB,EAAOpB,OAAOoB,KAAKwxB,GAAQnd,QAAO,SAAU3vB,GAC9C,MAAa,WAANA,KAWT,OARIsb,EAAKzW,OAAS,GAChByW,EAAK3T,SAAQ,SAAUsT,GACrB,IAAIm9B,EAEJ/nC,EAAM4K,GAAO28B,IAAcQ,EAAgB,IAAkBn9B,GAAO6xB,EAAO7xB,GAAMm9B,OAI9E/nC,GAGL4nC,GAAuB,SAA8BI,EAAcL,EAAI9zB,EAAOmX,GAChF,IAAImR,EAAS,GAab,OAZAnR,EAAIprB,MAAM,EAAGooC,EAAaxzC,QAAQ8C,SAAQ,SAAU2G,EAAOhP,GACzD,IAMMg5C,EANF9D,EAAQ6D,EAAa/4C,GACrBgoB,EAAQ0wB,EAAG1pC,EAAO4V,GAEjBswB,EAKHqC,GAAarK,IAAS8L,EAAW,IAAa9D,GAASqC,GAAa,GAAIrK,EAAOgI,GAAQltB,GAAQgxB,IAJ/FzB,GAAarK,EAAQllB,MAOlBklB,GAGL0L,GAAwB,SAA+BnF,EAAaiF,EAAI9zB,EAAOmX,GACjF,IAAImR,EAAS,GAEb,IAAK,IAAIvxB,KAAOogB,EAAK,CACnB,IAAIkd,EAAaxF,EAAY93B,GAEzBqM,EAAQ0wB,EADA3c,EAAIpgB,GACMiJ,GAEtB,GAAKq0B,EAEE,CACL,IAAIC,EAEAhE,EAAQgD,GAAiBe,GAC7B1B,GAAarK,IAASgM,EAAW,IAAahE,GAASqC,GAAa,GAAIrK,EAAOgI,GAAQltB,GAAQkxB,SAL/F3B,GAAarK,EAAQllB,GASzB,OAAOklB,GAGLiM,GAAsB,SAA6B55B,GACrD,IAAIyB,EAAazB,EAAKyB,WAClB0xB,EAAWnzB,EAAKmzB,SAChB9tB,EAAQrF,EAAKqF,MACbw0B,EAAiB75B,EAAKtB,UACtBA,OAA+B,IAAnBm7B,EAA4BjB,GAAWiB,EACnDC,EAAe95B,EAAK85B,aACxBr4B,EAAaA,GAAc,CAAC0xB,GAE5B,IAAIgG,EAAK,SAAY1pC,EAAO4V,GAC1B,IAAInW,EAAS,GACTvO,EAAI+d,EAAUjP,EAAO4V,GACzB,GAAU,OAAN1kB,EAIJ,OAHA8gB,EAAW3Y,SAAQ,SAAU8zB,GAC3B1tB,EAAO0tB,GAAQj8B,KAEVuO,GAKT,OAFAiqC,EAAG9zB,MAAQA,EACX8zB,EAAGT,SAAWoB,EACPX,GAGLY,GAAS,SAAgBC,QACd,IAATA,IACFA,EAAO,IAGT,IAAI/L,EAAS,GAqBb,OApBA5yB,OAAOoB,KAAKu9B,GAAMlxC,SAAQ,SAAUsT,GAClC,IAAI69B,EAAOD,EAAK59B,GAgBhB6xB,EAAO7xB,IAdM,IAAT69B,EASgB,mBAATA,EAKGL,GAAoBK,GAJlBA,EARAL,GAAoB,CAChCzG,SAAU/2B,EACViJ,MAAOjJ,OAYA28B,GAAa9K,IAexBiM,GAASH,GAAO,CAClBr7B,UAAW,CACTy0B,SAAU,SACV9tB,MAAO,aAGP3G,GAAYq7B,GAAO,CACrBr7B,UAAW,CACTy0B,SAAU,YACV9tB,MAAO,gBAGPqC,GAAcqyB,GAAO,CACvBryB,YAAa,CACXyrB,SAAU,cACV9tB,MAAO,kBAGP6B,GAAe6yB,GAAO,CACxB7yB,aAAc,CACZisB,SAAU,eACV9tB,MAAO,mBAGPsC,GAAgBoyB,GAAO,CACzBpyB,cAAe,CACbwrB,SAAU,gBACV9tB,MAAO,qBAGPoC,GAAesyB,GAAO,CACxBtyB,aAAc,CACZ0rB,SAAU,eACV9tB,MAAO,iBAGP80B,GAAeJ,GAAO,CACxBI,aAAc,CACZhH,SAAU,eACV9tB,MAAO,mBAIP+0B,GAAcL,GAAO,CACvBI,aAAc,CACZhH,SAAU,cACV9tB,MAAO,kBAGPg1B,GAAYN,GAAO,CACrBM,UAAW,CACTlH,SAAU,YACV9tB,MAAO,gBAIX,SAASi1B,KACP,IAAI9mB,EAAO2d,GAAuB,CAAC,OAAQ,OAM3C,OAJAmJ,GAAmB,WACjB,OAAO9mB,GAGFA,EAGT,SAAS+mB,KACP,IAAI/mB,EAAO2d,GAAuB,CAAC,yGAA0G,OAAQ,OAAQ,OAM7J,OAJAoJ,GAAkB,WAChB,OAAO/mB,GAGFA,EAET,IAAIgnB,GAAQtK,GAAMqK,KAAmC,WAAhB1K,EAAAA,SAAAA,GAA2BnxB,GAAY,IAAI+7B,EAAAA,EAAAA,IAAQnV,EAAAA,GAAO1iB,EAAAA,GAAO4D,EAAAA,GAAQk0B,EAAAA,GAAQC,EAAAA,GAASC,EAAAA,IAAW/K,EAAAA,SAAAA,OAAgB,CACxJgL,QAAQJ,EAAAA,EAAAA,IAAQ/yB,GAAaR,GAAcS,GAAeF,GAAc0yB,GAAcC,IACtFU,OAAOL,EAAAA,EAAAA,IAAQ/yB,GAAaR,GAAcS,GAAeF,IACzDszB,KAAKN,EAAAA,EAAAA,IAAQ/yB,GAAaR,GAAcS,GAAeF,IACvDuzB,SAASP,EAAAA,EAAAA,IAAQJ,IACjBY,KAAKR,EAAAA,EAAAA,IAAQlzB,EAAAA,GAAW2yB,OAQtBgB,GAAiB,GAAG9xB,OANF,CAAC,SAAU,cAAe,cAAe,cAAe,eAAgB,YAAa,iBAAkB,iBAAkB,iBAAkB,sBAAuB,uBAAwB,cAAe,mBAAoB,mBAAoB,mBAAoB,eAAgB,oBAAqB,oBAAqB,oBAAqB,yBAA0B,0BAA2B,aAAc,kBAAmB,kBAAmB,kBAAmB,UAAW,WAC3d,CAAC,QAAS,SAAU,UAAW,WAAY,YAAa,WAAY,YAAa,OAAQ,gBAAiB,WAAY,YAAa,YAAa,YACjJ,CAAC,QAAS,KAAM,mBACjB,CAAC,aAAc,eAAgB,eAAgB,iBAAkB,WAAY,gBAAiB,OAAQ,WAAY,aAAc,YAAa,cAAe,YAAa,SACxK,CAAC,IAAK,SAAU,YAAa,KAAM,cAAe,KAAM,eAAgB,KAAM,aAAc,KAAM,UAAW,KAAM,UAAW,KAAM,UAAW,IAAK,aAAc,KAAM,eAAgB,KAAM,gBAAiB,KAAM,cAAe,KAAM,WAAY,KAAM,WAAY,MACxQ,CAAC,YAAa,cAAe,eAAgB,gBAAiB,eAAgB,eAAgB,cAAe,YAAa,UAAW,OAAQ,SAAU,gBAExK+xB,GAAYrL,GAASgC,KAAK9D,WAAW,CACvCoN,kBAAmB,SAA2B7wB,GAC5C,OAAQ2wB,GAAeG,SAAS9wB,KAFpBulB,CAIbwK,KAAoBE,IAqBvB,SAASc,KAGP,IAFA,IAAI7/B,EAAM,GAED6R,EAAO3O,UAAU3Y,OAAQu1C,EAAQ,IAAIn0C,MAAMkmB,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAChF+tB,EAAM/tB,GAAQ7O,UAAU6O,GAU1B,OAPA+tB,EAAMzqB,QAAO,SAAUrwB,GACrB,OAAOA,KACNqI,SAAQ,SAAUrB,GACK,WAApB+oC,GAAU/oC,KACZgU,EAAMi1B,GAAc,GAAIj1B,EAAKhU,OAG1BgU,EAGT,SAAS+/B,GAASn7C,EAAGe,EAAGH,GACtB,MAAO,IAAImoB,SAAS,GAAK,KAAO/oB,GAAK,KAAOe,GAAK,GAAKH,GAAGyQ,SAAS,IAAIN,MAAM,IAxB9E+pC,GAAUlS,aAAe,CACvBviB,YAAa,QACbD,YAAa,EACbE,YAAa,SAyBf,IAAI80B,GAAa,eACbC,GAAY,gBAEZC,GAAa,SAAoBt/B,GACnC,IAAIuhB,EAAQvhB,EAAIhV,MAAMq0C,IAClBE,EAAQhe,EAAMyd,SAAS,SAGvBz4B,GAFOgb,EAAMxsB,OAAO,GAAG,GAEfiL,EAAIwC,MAAM,qIAAkInP,GACxJkT,EAAQxb,MAAMgI,QAAQwT,IAA2B,IAAjBA,EAAM5c,OAAe4c,EAAM,QAAKlT,EAChE,IAAImsC,EAAOje,EAAM9M,QAAO,SAAUnwB,GAChC,MAAa,UAANA,KAERmwB,QAAO,SAAUnwB,GAChB,OAAOA,IAAMiiB,KACZ7G,IAAI+/B,IAEHC,EAAQ3K,GAAeyK,EAAM,GAMjC,MAAO,CACLD,MAAOA,EACPn5B,QAPYs5B,EAAM,GAQlBr5B,QAPYq5B,EAAM,GAQlBC,WAPeD,EAAM,GAQrBE,aAPiBF,EAAM,GAQvBn5B,MAAOA,IAIPk5B,GAAQ,SAAet6C,GACzB,IAAK,MAAMiG,KAAKjG,IAAY,MAANA,EAAW,OAAOA,EACxC,IAAIb,EAAI6G,WAAWhG,GACnB,OAAQ+F,MAAM5G,GAASa,EAAJb,GAGjBu7C,GAAU,SAAe7/B,GAC3B,OAAOA,EAAIhV,MAAMo0C,IAAY1/B,KAAI,SAAUxb,GACzC,OAAOA,EAAEmG,UACRqV,IAAI4/B,KAGLQ,GAAY,SAAmBv5B,GACjC,IAAIw5B,EAAwBx5B,EAAMnc,QAAQ,OAAQ,IAAI2K,MAAM,GAAI,GAAG/J,MAAM,KAAK0U,KAAI,SAAUpb,GAC1F,OAAOmM,OAAOnM,EAAE+F,WAEd21C,EAAyBjL,GAAegL,EAAuB,GAC/D/7C,EAAIg8C,EAAuB,GAC3Bj7C,EAAIi7C,EAAuB,GAC3Bp7C,EAAIo7C,EAAuB,GAC3BC,EAAyBD,EAAuB,GAGpD,MAAO,CACLh8C,EAAGA,EACHe,EAAGA,EACHH,EAAGA,EACHb,OANiC,IAA3Bk8C,EAAoC,EAAIA,IAoB9CC,GAAa,SAAoBC,GACnC,IAAInC,EAAY17B,UAAU3Y,OAAS,QAAsB0J,IAAjBiP,UAAU,GAAmBA,UAAU,GAAK,EAChFvP,EAAUuP,UAAU3Y,OAAS,EAAI2Y,UAAU,QAAKjP,EAEpD,OAAQmgC,EAAAA,SAAAA,IACN,IAAK,MAED,MAAO,CACLtoB,UAAWi1B,GAIjB,IAAK,MACL,IAAK,SACL,IAAK,QAED,IAAIC,EAA6B,mBAAZD,EAAyBA,EAAQ,IAAMA,EAC5DC,EAA6B,iBAAZA,EAAuBP,GAAQO,GAAWA,EAE3D,IAAIzgC,GAAO5U,MAAMgI,QAAQqtC,IAAYA,GAAW,IAAI1gC,KAAI,SAAU2gC,GAChE,IAAId,EAAQc,EAAOd,MACfn5B,EAAUi6B,EAAOj6B,QACjBC,EAAUg6B,EAAOh6B,QACjBs5B,EAAaU,EAAOV,WACpBC,EAAeS,EAAOT,aACtBr5B,EAAQ85B,EAAO95B,MACf+5B,EAAO/5B,EAAMy4B,SAAS,QAAUc,GAAUv5B,GAAS,KAEnD5C,EAAO28B,GAAQ,GACft8C,EAAI2f,EAAK3f,EACTe,EAAI4e,EAAK5e,EACTH,EAAI+e,EAAK/e,EACT27C,EAAS58B,EAAK5f,EACdyK,OAAqB,IAAX+xC,EAAoB,EAAIA,EAEtC,MAAO,CACLl1B,YAAai1B,EAAOnB,GAASn7C,EAAGe,EAAGH,GAAK2hB,EACxCw3B,YAAawB,EAEb10B,aAAc9X,EAAU,CACtBkT,MAAOG,EACPF,OAAQG,GACN,GAAG0G,OAAO3G,EAAS,OAAO2G,OAAO1G,EAAS,MAC9CiF,cAAe9c,EACf4c,aAAcu0B,EACd7B,aAA8B,WAAhBtK,EAAAA,SAAAA,GAA2BoM,GAAgB,OAAIvsC,MAK7DmtC,EAAQ7gC,GAAO,GACfk5B,EAAQ9D,GAAeyL,EAAO,GAC9BH,EAASxH,EAAM,GAEnB,OAAO9lC,EAAU4M,EAAM0gC,EAG3B,IAAK,UAED,MAAO,CACLrC,UAAWA,GAIjB,QAEI,MAAO,KAKXyC,GAAe,CACjBjI,MAAO,CACL6E,WAAY,GAGdvE,SAAU,cAER4H,IAAgB7R,EAAAA,EAAAA,eAAc4R,IAc9BE,GAAiB,SAAwBh9B,GAC3C,IAAI05B,EAAa15B,EAAK05B,WAClBtW,EAAWpjB,EAAKojB,SAWhB3zB,EAAQ,CACVolC,MAPU,CACV6E,WAAYA,GAOZvE,SAJa,cAMf,OAAOjkB,EAAAA,cAAoB6rB,GAAc/Q,SAAU,CACjDv8B,MAAOA,GACN2zB,IAcuB2Z,GAAc3R,SAE1C,SAAS6R,KACP,IAAIzpB,EAAO2d,GAAuB,CAAC,KAMnC,OAJA8L,GAAoB,WAClB,OAAOzpB,GAGFA,EAET,IAAI0pB,GAAKrN,EAAAA,SAAAA,OAAgB,CACvBkL,IAAK,WACH,OAAOoC,EAAQ,OAEjBnC,QAAS,WACP,OAAOmC,EAAQ,OAEjB/6B,QAAS,WACP,MAAO,KARFytB,GAWLuN,GAAmBF,GAAGE,iBACtBC,GAAqBH,GAAGG,mBACxBC,GAA0BJ,GAAGI,wBAE7BC,GAAMzN,GAASqL,GAATrL,CAAoBmN,MAC9BM,GAAItU,aAAeyH,GAAc,CAC/B8M,QAAS,OACTv2B,cAAe,WACG,QAAhB4oB,EAAAA,SAAAA,IAAyC,WAAhBA,EAAAA,SAAAA,KAA6B,CACxDnpB,YAAa,QACZ,CAEDC,YAAa,QACbF,YAAa,IAGf,IAqEIg3B,GAAe,SAAsBz9B,GACvC,IA4CI09B,EA5CAx8C,EAAI8e,EAAK9e,EACTy8C,EAAK39B,EAAK29B,GACVC,EAAK59B,EAAK49B,GACVC,EAAK79B,EAAK69B,GACVC,EAAK99B,EAAK89B,GACVtR,EAAexsB,EAAKwsB,aACpB/qC,EAAIue,EAAKve,EACTs8C,EAAK/9B,EAAK+9B,GACVC,EAAKh+B,EAAKg+B,GACVC,EAAKj+B,EAAKi+B,GACVC,EAAKl+B,EAAKk+B,GACV32B,EAAYvH,EAAKuH,UACjB42B,EAAiBn+B,EAAKo+B,UACtBA,OAA+B,IAAnBD,EAA4B,UAAYA,EACpDE,EAAUr+B,EAAKq+B,QACfvuB,EAAO9P,EAAK8P,KACZxN,EAAQtC,EAAKsC,MACb7Y,EAAOuW,EAAKvW,KACZkkC,EAAS3tB,EAAK2tB,OACdprB,EAASvC,EAAKuC,OACd+7B,EAASt+B,EAAKs+B,OACdC,EAAYv+B,EAAKssB,GAEjB78B,GADWuQ,EAAKw+B,SACRx+B,EAAKvQ,OACbqN,EAAQ+zB,GAAyB7wB,EAAM,CAAC,IAAK,KAAM,KAAM,KAAM,KAAM,eAAgB,IAAK,KAAM,KAAM,KAAM,KAAM,YAAa,YAAa,UAAW,OAAQ,QAAS,OAAQ,SAAU,SAAU,SAAU,KAAM,WAAY,UAEhOy+B,EA5EmB,SAA4BC,GACnD,IACIrJ,EAAajE,IADDqE,EAAAA,EAAAA,WAAS,GACkB,GACvCkJ,EAAQtJ,EAAW,GACnBuJ,EAAWvJ,EAAW,GAGtBwJ,EAAazN,IADAqE,EAAAA,EAAAA,UAAS,QACkB,GACxCqJ,EAAcD,EAAW,GACzBE,EAAiBF,EAAW,GAEhC,MAAoB,WAAhBhP,EAAAA,SAAAA,GACK,CACLmP,OAAQ,GACRF,YAAaJ,GAAsB,QAuBhC,CACLM,OAAQ,CACNC,aAde,WACjBL,GAAS,GACTG,EAAe,UAabG,aAVe,WACbP,IACFC,GAAS,GACTG,EAAeL,GAAsB,UAQrCL,QAvBU,WACZU,EAAe,SACfI,YAAW,WACTJ,EAAeL,GAAsB,UACpC,OAqBHI,YAAaJ,GAAsBI,GAiCXM,CAAmBtiC,EAAMgiC,aAC/CO,EAAcZ,EAAoBO,OAClCF,EAAcL,EAAoBK,YAElCQ,EAAUjB,GAAWvhC,EAAMwiC,QAE3B3H,EAAejH,GAAc,GAAI/C,GAEjCiK,EAAM0D,GAAgC,QAAhBzL,EAAAA,SAAAA,IAAyB0O,GAAa,CAC9DjS,GAAIiS,GACHO,GAA+B,SAAhBA,GAA0BpO,GAAc,GAAIiH,EAAamH,IAAev3B,GAA6B,WAAhBsoB,EAAAA,SAAAA,GAA2B0M,GAAWh1B,GAAa,CACxJk1B,QAASF,GAAWh1B,EAAW,MAAM,KAInCg4B,GADQ9vC,GAASA,EAAMolC,OAAS,IACP6E,WACzBA,OAAkC,IAArB6F,EAA8B,EAAIA,EAG/CC,EAAgBC,EAAAA,UAEpB,GAAuB,mBAAZH,GACL,CAAC,MAAO,WAAWjE,SAASxL,EAAAA,SAAAA,IAC9B,OAAQuO,GACN,IAAK,UAEDV,EAAgBN,GAChB,MAGJ,IAAK,YAEDM,EAAgBL,GAChB,MAGJ,IAAK,SACL,IAAK,WAEmB,YAAhBxN,EAAAA,SAAAA,KACF2P,EAAgBlC,IAO5B,IAAIoC,EAAiB,SAAwB7J,GACpB,mBAAZyJ,GACTA,EAAQzJ,GAGVwJ,EAAYhB,WAGVsB,EAAMzuB,EAAAA,cAAoBqsB,GAAK9M,GAAW,CAC5CnE,GAAuB,mBAAZgT,GAA0B5B,EACrC3Q,IAAKP,GAzJK,SAAiBwN,EAAMN,GACnC,IAAI5pB,EAAOkqB,EAAKlqB,KACZ6d,EAASkD,GAAyBmJ,EAAM,CAAC,SAe7C,OAbIlqB,IACF6d,EAAOrrB,MAAQwN,EACf6d,EAAOprB,OAASuN,GAGRzU,OAAOoB,KAAKkxB,GAAQzxB,QAAO,SAAUD,EAAK2jC,GAClD,GAAIjS,EAAOiS,GAAM,CACf,IAAInwC,EAAQk+B,EAAOiS,GACnB3jC,EAAI2jC,GAAOx4C,MAAMgI,QAAQK,GAASiqC,EAAajqC,EAAMzJ,OAAS,EAAIyJ,EAAMA,EAAMzJ,OAAS,GAAKyJ,EAAMiqC,GAAcjqC,EAGlH,OAAOwM,IACN,IA0IA4jC,CAAQ,CACT/vB,KAAMA,EACNxN,MAAOA,EACPC,OAAQA,EACRrhB,EAAGA,EACHy8C,GAAIA,EACJC,GAAIA,EACJC,GAAIA,EACJC,GAAIA,EACJr8C,EAAGA,EACHs8C,GAAIA,EACJC,GAAIA,EACJC,GAAIA,EACJC,GAAIA,EACJz0C,KAAMA,GACLiwC,GAAa,CACduF,aAAcI,EAAYJ,aAC1BC,aAAcG,EAAYH,cACzBZ,EAAS,CACVwB,WAAY,UACV,GAAIhjC,EAAO86B,EAAK,CAAC,MAAO,WAAWyD,SAASxL,EAAAA,SAAAA,KAAgB,CAC9DwO,QAASqB,GACR,QAAU7P,EAAAA,SAAAA,IAAe,CAC1ByP,QAASI,KAGX,MAAuB,mBAAZJ,GAA2B5B,GAAiC,QAAhB7N,EAAAA,SAAAA,IAAyC,UAAhBA,EAAAA,SAAAA,GAQzE8P,EAPEzuB,EAAAA,cAAoBsuB,EAAe,CACxCnB,QAAS,WACP,OAAOiB,MAERK,IAMPlC,GAAaxU,aAAe,CAC1BqW,aAAS5vC,EACTogB,UAAMpgB,EACNyB,KAAM,OAER,IArPqB+6B,GAqPjB6T,IArPiB7T,GAqPGuR,GApPfvsB,EAAAA,YAAiB,SAAUpU,EAAOiwB,GACvC,OAAO7b,EAAAA,cAAoB6rB,GAAc3R,SAAU,MAAM,SAAU37B,GACjE,OAAOyhB,EAAAA,cAAoBgb,GAAWuE,GAAW,CAC/CjE,aAAcO,GACbjwB,EAAO,CACRrN,MAAOA,YAiPXuwC,GAAS,SAAgBljC,GAC3B,GAAoB,WAAhB+yB,EAAAA,SAAAA,GAA0B,CAC5B,IAAIoQ,EAAQnjC,EAAMgT,KACdowB,EAAepjC,EAAM4J,YACrBy5B,EAAgBrjC,EAAM8J,aACtBw5B,EAAetjC,EAAM2J,YACrB45B,EAAMvjC,EAAMwjC,GACZC,EAAW1P,GAAyB/zB,EAAO,CAAC,OAAQ,cAAe,eAAgB,cAAe,OAElG0jC,EA/kBO,SAAkBvY,EAAMwY,GAKrC,YAJiB,IAAbA,IACFA,EAAW,MAGN,SAAU3jC,GACf,OAAOya,GAAIza,EAAMqsB,MAAOlB,EAAMwY,IAykBnBC,CAAS,UAAUt3B,OAAOi3B,GAAM,QAAhCK,CAAyC5jC,GACpD,OAAOoU,EAAAA,cAAoB6uB,GAAOQ,EAAUrvB,EAAAA,cAAoByvB,EAAAA,IAAK,CACnEp+B,OAAQ09B,EACR39B,MAAO29B,GACN/uB,EAAAA,cAAoB0vB,EAAAA,OAAU,CAC/BC,GAAIV,EACJW,GAAIX,EACJ9/C,EAAG8/C,EACHK,KAAMA,EACNO,OAAQb,EACRt0C,YAAaw0C,MAIjB,OAAOlvB,EAAAA,cAAoB6uB,GAAOjjC,IAGpCkjC,GAAO/W,aAAe,CACpBnZ,KAAM,GACNlJ,aAAc,MAEdH,YAAa,GAEA2pB,GAAY4P,IAE3B,SAASgB,KACP,IAAIxtB,EAAO2d,GAAuB,CAAC,KAMnC,OAJA6P,GAAoB,WAClB,OAAOxtB,GAGFA,EAET,IAAIytB,GAAOnR,GAASqL,GAATrL,CAAoBkR,MAQ/B,SAASE,KACP,IAAI1tB,EAAO2d,GAAuB,CAAC,GAAI,KAMvC,OAJA+P,GAAqB,WACnB,OAAO1tB,GAGFA,EAGT,SAAS2tB,KACP,IAAI3tB,EAAO2d,GAAuB,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAMnG,OAJAgQ,GAAoB,WAClB,OAAO3tB,GAGFA,EAxBTytB,GAAKhY,aAAe,CAClB3mB,MAAO,GACPC,OAAQ,EACR+9B,GAAI,QACJ75B,YAAa,GAuBf,IAII26B,GAAS,SAAgBzgD,GAC3B,OALa,SAAkBA,GAC/B,MAAoB,iBAANA,IAAmBmM,OAAOvF,MAAM5G,GAIvC0gD,CAASv0C,OAAOnM,IAAM,GAAGyoB,OAAOxK,OAAOje,GAAI,MAAQA,GAQxDiK,GAAamvC,GAAO,CACtBnvC,WAAY,CACVuoC,SAAU,aACV9tB,MAAO,cACP3G,UATgB,SAAuB/d,EAAG0kB,GAC5C,IAAI6a,EAAM3I,GAAIlS,EAAO1kB,EAAGygD,GAAOzgD,IAC/B,OAAOygD,GAAOlhB,OAUZohB,IAAgB74B,EAAAA,EAAAA,IAAM,CACxBmU,KAAM,gBACN2kB,YAAa,kBAEXC,GAAUtR,GAAMiR,KAAqBM,EAAAA,GAAY7+B,EAAAA,GAAO8+B,EAAAA,GAAWpc,EAAAA,GAAOoV,EAAAA,GAAQ4G,GAAe12C,GAAY+vC,EAAAA,IAM7GgH,GAAmB,GAAGv4B,OAHJ,CAAC,aAAc,WAAY,aAAc,QAC9C,CAAC,UAGd4oB,GAAOlC,GAASkC,KAAKhE,WAAW,CAClCoN,kBAAmB,SAA2B7wB,GAC5C,OAAQo3B,GAAiBtG,SAAS9wB,MAEnC6hB,OAAM,SAAUpsB,GACjB,IAAI4hC,EAAO5hC,EAAK4hC,KACZtD,EAASt+B,EAAKs+B,OACdp2B,EAAWlI,EAAKkI,SAChBtd,EAAaoV,EAAKpV,WACtB,OAAO8lC,GAAc,GAAIkR,GAAQ,CAC/Bj3C,WAAY,OACZ2hC,GAAoB,QAAhBuD,EAAAA,SAAAA,GAAwB,cAAWngC,GACtC4uC,GAAU,CACXuD,UAAW,UACV35B,IAAatd,GAAc,CAC5BA,WAAYsd,MAfL4nB,CAiBRoR,KAAsBM,IAsCzB,SAASM,KACP,IAAItuB,EAAO2d,GAAuB,CAAC,OAAQ,OAM3C,OAJA2Q,GAAoB,WAClB,OAAOtuB,GAGFA,EAdTwe,GAAK/I,aAAe,CAClB/gB,SAAU,GACV5E,WAAY,UACZs+B,UAAMlyC,EACN4uC,YAAQ5uC,GAYV,IAAIuiC,GAAQnC,GAASmC,MAAM6P,KAAqBtH,IAEhDvI,GAAMhJ,aAAe,CACnB3N,SAAU,OACV/Y,OAAQ,QAGV,IAwBIw/B,GAAM,SAAa/hC,GACrB,IAAIs+B,EAASt+B,EAAKs+B,OACd0D,EAAOhiC,EAAKgiC,KACZllC,EAAQ+zB,GAAyB7wB,EAAM,CAAC,SAAU,SAEtD,OAAOkR,EAAAA,cAAoB6uB,GAAOtP,GAAW,GAAI6N,EAAS,CACxD2D,eAAgB,UACd,GAAID,EAAO,CACbh7B,SAAU,QACR,GAAIlK,KAGVilC,GAAI9Y,aAAe,CACjBhiB,cAAe,MACfq3B,QAAQ,EACR0D,MAAM,GAGR,IAAIE,GAluCJ,SAAoBhW,EAAWyB,GAC7B,OAAO,SAAU7wB,GACf,OAAOoU,EAAAA,cAAoBgb,EAAWuE,GAAW,GAAI9C,EAAQ7wB,KAguChDqlC,CAAWnQ,GAAM,CAChC1uB,WAAY,SACZ4E,SAAU,SACVg2B,GAAI,IAENgE,GAAWt2B,YAAc,aAEzB,IAAIw2B,GAAS,SAAgBC,GAC3B,IAnvCiClxC,EAmvC7B6jC,GAnvC6B7jC,EAmvCV,WAlvCLmxC,EAAAA,EAAAA,YAAW1N,IACLC,OAEJ,IACFG,OAEJ7jC,IAAS,IA8uCnB2L,EAAQ4zB,GAAc,GAAI2R,EAAUrN,GAEpCuN,EAAWzlC,EAAMylC,SACjBC,EAAe1lC,EAAMsmB,SACrBob,EAAW1hC,EAAM0hC,SACjB7G,EAAe76B,EAAM6wB,OACrB8U,EAAqB3lC,EAAM2J,YAC3BA,OAAqC,IAAvBg8B,EAAgC,EAAIA,EAClDC,EAAQ5lC,EAAM4lC,MACd/U,EAASkD,GAAyB/zB,EAAO,CAAC,WAAY,WAAY,WAAY,SAAU,cAAe,UAEvG6lC,EAAuB7lC,EAAMgiC,aAAqC,SAAtBhiC,EAAMgiC,aAA0BpO,GAAc,GAAIiH,EAAa76B,EAAMgiC,eAAiB,GAElI8D,EAAatH,IAAiBiH,GAAY97B,GAA+B,IAAhBA,IAAsB,CACjFA,YAAaA,GACZ+3B,GAAY9N,GAAc,GAAIiH,EAAa6G,WAE1CqE,EAAqBnS,GAAc,GAAI/C,EAAQiV,GAC/ChgC,EAAQigC,EAAmBjgC,MAC3BsF,EAAW26B,EAAmB36B,SAC9B5E,EAAau/B,EAAmBv/B,WAChC3Y,EAAak4C,EAAmBl4C,WAChCC,EAAai4C,EAAmBj4C,WAChCk4C,EAAgBD,EAAmBC,cAEnC1f,EAAWsf,GAAiC,iBAAjBF,EAA4BtxB,EAAAA,cAAoBgxB,GAAY,CACzFt/B,MAAO+/B,EAAqB//B,OAASA,EACrCsF,SAAUA,EACV5E,WAAYA,EACZ3Y,WAAYA,EACZm4C,cAAeA,EACfl4C,WAAYA,GACX83C,GAASF,GAAwC,mBAAjBA,EAA8BA,EAAa,CAC5ElC,GAAIxjC,EAAMwjC,KACPkC,EACL,OAAOtxB,EAAAA,cAAoB6wB,GAAKtR,GAAW,CACzCnE,GAAI,SACJkS,SAAUA,EACV7Q,OAAQgK,GACP3C,EAAQrH,EAAQiV,GAAaxf,IAGlCgf,GAAOnZ,aAAe,CACpBsZ,UAAU,EACVrhD,EAAG,EACHy8C,GAAI,EACJC,GAAI,EACJl3B,YAAa,QACbu7B,eAAgB,SAChBnC,WAAY,UAEdsC,GAAOx2B,YAAc,SACrBw2B,GAAOpQ,KAAO8C,GAAWoN,IAEzB,IAAIa,GAAoB,SAA2B/iC,GACjD,IAAIxT,EAAQwT,EAAKxT,MACb5D,EAAQoX,EAAKpX,MACbkU,EAAQ+zB,GAAyB7wB,EAAM,CAAC,QAAS,UAErD,OAAOkR,EAAAA,cAAoB8gB,GAAMvB,GAAW,CAC1CvoB,SAAU,IAAIkB,OAAO5c,GAAS5D,GAC9B84C,UAAW,IAAIt4B,OAAO5c,GAAS5D,GAC/BgC,WAAY,IAAIwe,OAAO5c,GAAS5D,IAC/BkU,KAGLimC,GAAkB9Z,aAAe,CAC/Bz8B,MAAO,EACP8W,WAAY,WAGd,IAAI0/B,GAAK,SAAYlmC,GACnB,OAAOoU,EAAAA,cAAoB6xB,GAAmBtS,GAAW,CACvDjkC,MAAO,GACNsQ,KAGLkmC,GAAGp3B,YAAc,KAEjB,IAAIq3B,GAAK,SAAYnmC,GACnB,OAAOoU,EAAAA,cAAoB6xB,GAAmBtS,GAAW,CACvDjkC,MAAO,GACNsQ,KAGLmmC,GAAGr3B,YAAc,KAEjB,IAAIs3B,GAAK,SAAYpmC,GACnB,OAAOoU,EAAAA,cAAoB6xB,GAAmBtS,GAAW,CACvDjkC,MAAO,GACNsQ,KAGLomC,GAAGt3B,YAAc,KAEjB,IAAIu3B,GAAK,SAAYrmC,GACnB,OAAOoU,EAAAA,cAAoB6xB,GAAmBtS,GAAW,CACvDjkC,MAAO,GACNsQ,KAGLqmC,GAAGv3B,YAAc,KAEjB,IAAIw3B,GAAK,SAAYtmC,GACnB,OAAOoU,EAAAA,cAAoB6xB,GAAmBtS,GAAW,CACvDjkC,MAAO,GACNsQ,KAGLsmC,GAAGx3B,YAAc,KAEjB,IAAIy3B,GAAK,SAAYvmC,GACnB,OAAOoU,EAAAA,cAAoB6xB,GAAmBtS,GAAW,CACvDjkC,MAAO,GACNsQ,KAGLumC,GAAGz3B,YAAc,KACjBm3B,GAAkBC,GAAKlO,GAAWkO,IAClCD,GAAkBE,GAAKnO,GAAWmO,IAClCF,GAAkBG,GAAKpO,GAAWoO,IAClCH,GAAkBI,GAAKrO,GAAWqO,IAClCJ,GAAkBK,GAAKtO,GAAWsO,IAClCL,GAAkBM,GAAKvO,GAAWuO","sources":["webpack://@elemental-zcash/react-web/../../../elemental-design/elemental-react/lib/main.web.esm.js"],"sourcesContent":["import styledW, { withTheme as withTheme$2, ThemeProvider as ThemeProvider$2, css as css$2 } from 'styled-components';\nexport { ServerStyleSheet, StyleSheetManager } from 'styled-components';\nimport React, { cloneElement, createContext, createElement, Component, useState, useEffect, useContext } from 'react';\nimport { ForwardRef, isValidElementType, isElement } from 'react-is';\nimport os from 'os';\nimport reactPrimitives, { Platform, Touchable } from 'react-primitives';\nimport { Svg, Circle as Circle$2 } from 'react-primitives-svg';\nimport { compose, space, color, border, layout, flexbox, position, boxShadow, style, typography, textStyle } from 'styled-system';\nexport { useWindowDimensions } from 'react-native-web';\n\nfunction unwrapExports (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nfunction getCjsExportFromNamespace (n) {\n\treturn n && n['default'] || n;\n}\n\nvar stylis_min = createCommonjsModule(function (module, exports) {\n!function(e){module.exports=e(null);}(function e(a){var r=/^\\0+/g,c=/[\\0\\r\\f]/g,s=/: */g,t=/zoo|gra/,i=/([,: ])(transform)/g,f=/,+\\s*(?![^(]*[)])/g,n=/ +\\s*(?![^(]*[)])/g,l=/ *[\\0] */g,o=/,\\r+?/g,h=/([\\t\\r\\n ])*\\f?&/g,u=/:global\\(((?:[^\\(\\)\\[\\]]*|\\[.*\\]|\\([^\\(\\)]*\\))*)\\)/g,d=/\\W+/g,b=/@(k\\w+)\\s*(\\S*)\\s*/,p=/::(place)/g,k=/:(read-only)/g,g=/\\s+(?=[{\\];=:>])/g,A=/([[}=:>])\\s+/g,C=/(\\{[^{]+?);(?=\\})/g,w=/\\s{2,}/g,v=/([^\\(])(:+) */g,m=/[svh]\\w+-[tblr]{2}/,x=/\\(\\s*(.*)\\s*\\)/g,$=/([\\s\\S]*?);/g,y=/-self|flex-/g,O=/[^]*?(:[rp][el]a[\\w-]+)[^]*/,j=/stretch|:\\s*\\w+\\-(?:conte|avail)/,z=/([^-])(image-set\\()/,N=\"-webkit-\",S=\"-moz-\",F=\"-ms-\",W=59,q=125,B=123,D=40,E=41,G=91,H=93,I=10,J=13,K=9,L=64,M=32,P=38,Q=45,R=95,T=42,U=44,V=58,X=39,Y=34,Z=47,_=62,ee=43,ae=126,re=0,ce=12,se=11,te=107,ie=109,fe=115,ne=112,le=111,oe=105,he=99,ue=100,de=112,be=1,pe=1,ke=0,ge=1,Ae=1,Ce=1,we=0,ve=0,me=0,xe=[],$e=[],ye=0,Oe=null,je=-2,ze=-1,Ne=0,Se=1,Fe=2,We=3,qe=0,Be=1,De=\"\",Ee=\"\",Ge=\"\";function He(e,a,s,t,i){for(var f,n,o=0,h=0,u=0,d=0,g=0,A=0,C=0,w=0,m=0,$=0,y=0,O=0,j=0,z=0,R=0,we=0,$e=0,Oe=0,je=0,ze=s.length,Je=ze-1,Re=\"\",Te=\"\",Ue=\"\",Ve=\"\",Xe=\"\",Ye=\"\";R0)Te=Te.replace(c,\"\");if(Te.trim().length>0){switch(C){case M:case K:case W:case J:case I:break;default:Te+=s.charAt(R);}C=W;}}if(1===$e)switch(C){case B:case q:case W:case Y:case X:case D:case E:case U:$e=0;case K:case J:case I:case M:break;default:for($e=0,je=R,g=C,R--,C=W;je0)++R,C=g;case B:je=ze;}}switch(C){case B:for(g=(Te=Te.trim()).charCodeAt(0),y=1,je=++R;R0)Te=Te.replace(c,\"\");switch(A=Te.charCodeAt(1)){case ue:case ie:case fe:case Q:f=a;break;default:f=xe;}if(je=(Ue=He(a,f,Ue,A,i+1)).length,me>0&&0===je)je=Te.length;if(ye>0)if(f=Ie(xe,Te,Oe),n=Pe(We,Ue,f,a,pe,be,je,A,i,t),Te=f.join(\"\"),void 0!==n)if(0===(je=(Ue=n.trim()).length))A=0,Ue=\"\";if(je>0)switch(A){case fe:Te=Te.replace(x,Me);case ue:case ie:case Q:Ue=Te+\"{\"+Ue+\"}\";break;case te:if(Ue=(Te=Te.replace(b,\"$1 $2\"+(Be>0?De:\"\")))+\"{\"+Ue+\"}\",1===Ae||2===Ae&&Le(\"@\"+Ue,3))Ue=\"@\"+N+Ue+\"@\"+Ue;else Ue=\"@\"+Ue;break;default:if(Ue=Te+Ue,t===de)Ve+=Ue,Ue=\"\";}else Ue=\"\";break;default:Ue=He(a,Ie(a,Te,Oe),Ue,t,i+1);}Xe+=Ue,O=0,$e=0,z=0,we=0,Oe=0,j=0,Te=\"\",Ue=\"\",C=s.charCodeAt(++R);break;case q:case W:if((je=(Te=(we>0?Te.replace(c,\"\"):Te).trim()).length)>1){if(0===z)if((g=Te.charCodeAt(0))===Q||g>96&&g<123)je=(Te=Te.replace(\" \",\":\")).length;if(ye>0)if(void 0!==(n=Pe(Se,Te,a,e,pe,be,Ve.length,t,i,t)))if(0===(je=(Te=n.trim()).length))Te=\"\\0\\0\";switch(g=Te.charCodeAt(0),A=Te.charCodeAt(1),g){case re:break;case L:if(A===oe||A===he){Ye+=Te+s.charAt(R);break}default:if(Te.charCodeAt(je-1)===V)break;Ve+=Ke(Te,g,A,Te.charCodeAt(2));}}O=0,$e=0,z=0,we=0,Oe=0,Te=\"\",C=s.charCodeAt(++R);}}switch(C){case J:case I:if(h+d+u+o+ve===0)switch($){case E:case X:case Y:case L:case ae:case _:case T:case ee:case Z:case Q:case V:case U:case W:case B:case q:break;default:if(z>0)$e=1;}if(h===Z)h=0;else if(ge+O===0&&t!==te&&Te.length>0)we=1,Te+=\"\\0\";if(ye*qe>0)Pe(Ne,Te,a,e,pe,be,Ve.length,t,i,t);be=1,pe++;break;case W:case q:if(h+d+u+o===0){be++;break}default:switch(be++,Re=s.charAt(R),C){case K:case M:if(d+o+h===0)switch(w){case U:case V:case K:case M:Re=\"\";break;default:if(C!==M)Re=\" \";}break;case re:Re=\"\\\\0\";break;case ce:Re=\"\\\\f\";break;case se:Re=\"\\\\v\";break;case P:if(d+h+o===0&&ge>0)Oe=1,we=1,Re=\"\\f\"+Re;break;case 108:if(d+h+o+ke===0&&z>0)switch(R-z){case 2:if(w===ne&&s.charCodeAt(R-3)===V)ke=w;case 8:if(m===le)ke=m;}break;case V:if(d+h+o===0)z=R;break;case U:if(h+u+d+o===0)we=1,Re+=\"\\r\";break;case Y:case X:if(0===h)d=d===C?0:0===d?C:d;break;case G:if(d+h+u===0)o++;break;case H:if(d+h+u===0)o--;break;case E:if(d+h+o===0)u--;break;case D:if(d+h+o===0){if(0===O)switch(2*w+3*m){case 533:break;default:y=0,O=1;}u++;}break;case L:if(h+u+d+o+z+j===0)j=1;break;case T:case Z:if(d+o+u>0)break;switch(h){case 0:switch(2*C+3*s.charCodeAt(R+1)){case 235:h=Z;break;case 220:je=R,h=T;}break;case T:if(C===Z&&w===T&&je+2!==R){if(33===s.charCodeAt(je+2))Ve+=s.substring(je,R+1);Re=\"\",h=0;}}}if(0===h){if(ge+d+o+j===0&&t!==te&&C!==W)switch(C){case U:case ae:case _:case ee:case E:case D:if(0===O){switch(w){case K:case M:case I:case J:Re+=\"\\0\";break;default:Re=\"\\0\"+Re+(C===U?\"\":\"\\0\");}we=1;}else switch(C){case D:if(z+7===R&&108===w)z=0;O=++y;break;case E:if(0==(O=--y))we=1,Re+=\"\\0\";}break;case K:case M:switch(w){case re:case B:case q:case W:case U:case ce:case K:case M:case I:case J:break;default:if(0===O)we=1,Re+=\"\\0\";}}if(Te+=Re,C!==M&&C!==K)$=C;}}m=w,w=C,R++;}if(je=Ve.length,me>0)if(0===je&&0===Xe.length&&0===a[0].length==false)if(t!==ie||1===a.length&&(ge>0?Ee:Ge)===a[0])je=a.join(\",\").length+2;if(je>0){if(f=0===ge&&t!==te?function(e){for(var a,r,s=0,t=e.length,i=Array(t);s1)continue;if(u=n.charCodeAt(n.length-1),d=r.charCodeAt(0),a=\"\",0!==o)switch(u){case T:case ae:case _:case ee:case M:case D:break;default:a=\" \";}switch(d){case P:r=a+Ee;case ae:case _:case ee:case M:case E:case D:break;case G:r=a+r+Ee;break;case V:switch(2*r.charCodeAt(1)+3*r.charCodeAt(2)){case 530:if(Ce>0){r=a+r.substring(8,h-1);break}default:if(o<1||f[o-1].length<1)r=a+Ee+r;}break;case U:a=\"\";default:if(h>1&&r.indexOf(\":\")>0)r=a+r.replace(v,\"$1\"+Ee+\"$2\");else r=a+r+Ee;}n+=r;}i[s]=n.replace(c,\"\").trim();}return i}(a):a,ye>0)if(void 0!==(n=Pe(Fe,Ve,f,e,pe,be,je,t,i,t))&&0===(Ve=n).length)return Ye+Ve+Xe;if(Ve=f.join(\",\")+\"{\"+Ve+\"}\",Ae*ke!=0){if(2===Ae&&!Le(Ve,2))ke=0;switch(ke){case le:Ve=Ve.replace(k,\":\"+S+\"$1\")+Ve;break;case ne:Ve=Ve.replace(p,\"::\"+N+\"input-$1\")+Ve.replace(p,\"::\"+S+\"$1\")+Ve.replace(p,\":\"+F+\"input-$1\")+Ve;}ke=0;}}return Ye+Ve+Xe}function Ie(e,a,r){var c=a.trim().split(o),s=c,t=c.length,i=e.length;switch(i){case 0:case 1:for(var f=0,n=0===i?\"\":e[0]+\" \";f0&&ge>0)return s.replace(u,\"$1\").replace(h,\"$1\"+Ge);break;default:return e.trim()+s.replace(h,\"$1\"+e.trim())}default:if(r*ge>0&&s.indexOf(\"\\f\")>0)return s.replace(h,(e.charCodeAt(0)===V?\"\":\"$1\")+e.trim())}return e+s}function Ke(e,a,r,c){var l,o=0,h=e+\";\",u=2*a+3*r+4*c;if(944===u)return function(e){var a=e.length,r=e.indexOf(\":\",9)+1,c=e.substring(0,r).trim(),s=e.substring(r,a-1).trim();switch(e.charCodeAt(9)*Be){case 0:break;case Q:if(110!==e.charCodeAt(10))break;default:for(var t=s.split((s=\"\",f)),i=0,r=0,a=t.length;iL&&h<90||h>96&&h<123||h===R||h===Q&&l.charCodeAt(1)!==Q))switch(isNaN(parseFloat(l))+(-1!==l.indexOf(\"(\"))){case 1:switch(l){case\"infinite\":case\"alternate\":case\"backwards\":case\"running\":case\"normal\":case\"forwards\":case\"both\":case\"none\":case\"linear\":case\"ease\":case\"ease-in\":case\"ease-out\":case\"ease-in-out\":case\"paused\":case\"reverse\":case\"alternate-reverse\":case\"inherit\":case\"initial\":case\"unset\":case\"step-start\":case\"step-end\":break;default:l+=De;}}o[r++]=l;}s+=(0===i?\"\":\",\")+o.join(\" \");}}if(s=c+s+\";\",1===Ae||2===Ae&&Le(s,1))return N+s+s;return s}(h);else if(0===Ae||2===Ae&&!Le(h,1))return h;switch(u){case 1015:return 97===h.charCodeAt(10)?N+h+h:h;case 951:return 116===h.charCodeAt(3)?N+h+h:h;case 963:return 110===h.charCodeAt(5)?N+h+h:h;case 1009:if(100!==h.charCodeAt(4))break;case 969:case 942:return N+h+h;case 978:return N+h+S+h+h;case 1019:case 983:return N+h+S+h+F+h+h;case 883:if(h.charCodeAt(8)===Q)return N+h+h;if(h.indexOf(\"image-set(\",11)>0)return h.replace(z,\"$1\"+N+\"$2\")+h;return h;case 932:if(h.charCodeAt(4)===Q)switch(h.charCodeAt(5)){case 103:return N+\"box-\"+h.replace(\"-grow\",\"\")+N+h+F+h.replace(\"grow\",\"positive\")+h;case 115:return N+h+F+h.replace(\"shrink\",\"negative\")+h;case 98:return N+h+F+h.replace(\"basis\",\"preferred-size\")+h}return N+h+F+h+h;case 964:return N+h+F+\"flex-\"+h+h;case 1023:if(99!==h.charCodeAt(8))break;return l=h.substring(h.indexOf(\":\",15)).replace(\"flex-\",\"\").replace(\"space-between\",\"justify\"),N+\"box-pack\"+l+N+h+F+\"flex-pack\"+l+h;case 1005:return t.test(h)?h.replace(s,\":\"+N)+h.replace(s,\":\"+S)+h:h;case 1e3:switch(o=(l=h.substring(13).trim()).indexOf(\"-\")+1,l.charCodeAt(0)+l.charCodeAt(o)){case 226:l=h.replace(m,\"tb\");break;case 232:l=h.replace(m,\"tb-rl\");break;case 220:l=h.replace(m,\"lr\");break;default:return h}return N+h+F+l+h;case 1017:if(-1===h.indexOf(\"sticky\",9))return h;case 975:switch(o=(h=e).length-10,u=(l=(33===h.charCodeAt(o)?h.substring(0,o):h).substring(e.indexOf(\":\",7)+1).trim()).charCodeAt(0)+(0|l.charCodeAt(7))){case 203:if(l.charCodeAt(8)<111)break;case 115:h=h.replace(l,N+l)+\";\"+h;break;case 207:case 102:h=h.replace(l,N+(u>102?\"inline-\":\"\")+\"box\")+\";\"+h.replace(l,N+l)+\";\"+h.replace(l,F+l+\"box\")+\";\"+h;}return h+\";\";case 938:if(h.charCodeAt(5)===Q)switch(h.charCodeAt(6)){case 105:return l=h.replace(\"-items\",\"\"),N+h+N+\"box-\"+l+F+\"flex-\"+l+h;case 115:return N+h+F+\"flex-item-\"+h.replace(y,\"\")+h;default:return N+h+F+\"flex-line-pack\"+h.replace(\"align-content\",\"\").replace(y,\"\")+h}break;case 973:case 989:if(h.charCodeAt(3)!==Q||122===h.charCodeAt(4))break;case 931:case 953:if(true===j.test(e))if(115===(l=e.substring(e.indexOf(\":\")+1)).charCodeAt(0))return Ke(e.replace(\"stretch\",\"fill-available\"),a,r,c).replace(\":fill-available\",\":stretch\");else return h.replace(l,N+l)+h.replace(l,S+l.replace(\"fill-\",\"\"))+h;break;case 962:if(h=N+h+(102===h.charCodeAt(5)?F+h:\"\")+h,r+c===211&&105===h.charCodeAt(13)&&h.indexOf(\"transform\",10)>0)return h.substring(0,h.indexOf(\";\",27)+1).replace(i,\"$1\"+N+\"$2\")+h}return h}function Le(e,a){var r=e.indexOf(1===a?\":\":\"{\"),c=e.substring(0,3!==a?r:10),s=e.substring(r+1,e.length-1);return Oe(2!==a?c:c.replace(O,\"$1\"),s,a)}function Me(e,a){var r=Ke(a,a.charCodeAt(0),a.charCodeAt(1),a.charCodeAt(2));return r!==a+\";\"?r.replace($,\" or ($1)\").substring(4):\"(\"+a+\")\"}function Pe(e,a,r,c,s,t,i,f,n,l){for(var o,h=0,u=a;h0)De=s.replace(d,t===G?\"\":\"-\");if(t=1,1===ge)Ge=s;else Ee=s;var i,f=[Ge];if(ye>0)if(void 0!==(i=Pe(ze,r,f,f,pe,be,0,0,0,0))&&\"string\"==typeof i)r=i;var n=He(xe,f,r,0,0);if(ye>0)if(void 0!==(i=Pe(je,n,f,f,pe,be,n.length,0,0,0))&&\"string\"!=typeof(n=i))t=0;return De=\"\",Ge=\"\",Ee=\"\",ke=0,pe=1,be=1,we*t==0?n:n.replace(c,\"\").replace(g,\"\").replace(A,\"$1\").replace(C,\"$1\").replace(w,\" \")}if(Te.use=function e(a){switch(a){case void 0:case null:ye=$e.length=0;break;default:if(\"function\"==typeof a)$e[ye++]=a;else if(\"object\"==typeof a)for(var r=0,c=a.length;r {\n\targv = argv || process.argv;\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst pos = argv.indexOf(prefix + flag);\n\tconst terminatorPos = argv.indexOf('--');\n\treturn pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);\n};\n\nconst env = process.env;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false')) {\n\tforceColor = false;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = true;\n}\nif ('FORCE_COLOR' in env) {\n\tforceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0;\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(stream) {\n\tif (forceColor === false) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (stream && !stream.isTTY && forceColor !== true) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor ? 1 : 0;\n\n\tif (process.platform === 'win32') {\n\t\t// Node.js 7.5.0 is the first version of Node.js to include a patch to\n\t\t// libuv that enables 256 color output on Windows. Anything earlier and it\n\t\t// won't work. However, here we target Node.js 8 at minimum as it is an LTS\n\t\t// release, and Node.js 7 is not. Windows 10 build 10586 is the first Windows\n\t\t// release that supports 256 colors. Windows 10 build 14931 is the first release\n\t\t// that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(process.versions.node.split('.')[0]) >= 8 &&\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream);\n\treturn translateLevel(level);\n}\n\nvar supportsColor_1 = {\n\tsupportsColor: getSupportLevel,\n\tstdout: getSupportLevel(process.stdout),\n\tstderr: getSupportLevel(process.stderr)\n};\n\nvar openParentheses = \"(\".charCodeAt(0);\nvar closeParentheses = \")\".charCodeAt(0);\nvar singleQuote = \"'\".charCodeAt(0);\nvar doubleQuote = '\"'.charCodeAt(0);\nvar backslash = \"\\\\\".charCodeAt(0);\nvar slash = \"/\".charCodeAt(0);\nvar comma = \",\".charCodeAt(0);\nvar colon = \":\".charCodeAt(0);\nvar star = \"*\".charCodeAt(0);\n\nvar parse = function(input) {\n var tokens = [];\n var value = input;\n\n var next, quote, prev, token, escape, escapePos, whitespacePos;\n var pos = 0;\n var code = value.charCodeAt(pos);\n var max = value.length;\n var stack = [{ nodes: tokens }];\n var balanced = 0;\n var parent;\n\n var name = \"\";\n var before = \"\";\n var after = \"\";\n\n while (pos < max) {\n // Whitespaces\n if (code <= 32) {\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n token = value.slice(pos, next);\n\n prev = tokens[tokens.length - 1];\n if (code === closeParentheses && balanced) {\n after = token;\n } else if (prev && prev.type === \"div\") {\n prev.after = token;\n } else if (\n code === comma ||\n code === colon ||\n (code === slash && value.charCodeAt(next + 1) !== star)\n ) {\n before = token;\n } else {\n tokens.push({\n type: \"space\",\n sourceIndex: pos,\n value: token\n });\n }\n\n pos = next;\n\n // Quotes\n } else if (code === singleQuote || code === doubleQuote) {\n next = pos;\n quote = code === singleQuote ? \"'\" : '\"';\n token = {\n type: \"string\",\n sourceIndex: pos,\n quote: quote\n };\n do {\n escape = false;\n next = value.indexOf(quote, next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += quote;\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n token.value = value.slice(pos + 1, next);\n\n tokens.push(token);\n pos = next + 1;\n code = value.charCodeAt(pos);\n\n // Comments\n } else if (code === slash && value.charCodeAt(pos + 1) === star) {\n token = {\n type: \"comment\",\n sourceIndex: pos\n };\n\n next = value.indexOf(\"*/\", pos);\n if (next === -1) {\n token.unclosed = true;\n next = value.length;\n }\n\n token.value = value.slice(pos + 2, next);\n tokens.push(token);\n\n pos = next + 2;\n code = value.charCodeAt(pos);\n\n // Dividers\n } else if (code === slash || code === comma || code === colon) {\n token = value[pos];\n\n tokens.push({\n type: \"div\",\n sourceIndex: pos - before.length,\n value: token,\n before: before,\n after: \"\"\n });\n before = \"\";\n\n pos += 1;\n code = value.charCodeAt(pos);\n\n // Open parentheses\n } else if (openParentheses === code) {\n // Whitespaces after open parentheses\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n token = {\n type: \"function\",\n sourceIndex: pos - name.length,\n value: name,\n before: value.slice(pos + 1, next)\n };\n pos = next;\n\n if (name === \"url\" && code !== singleQuote && code !== doubleQuote) {\n next -= 1;\n do {\n escape = false;\n next = value.indexOf(\")\", next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += \")\";\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n // Whitespaces before closed\n whitespacePos = next;\n do {\n whitespacePos -= 1;\n code = value.charCodeAt(whitespacePos);\n } while (code <= 32);\n if (pos !== whitespacePos + 1) {\n token.nodes = [\n {\n type: \"word\",\n sourceIndex: pos,\n value: value.slice(pos, whitespacePos + 1)\n }\n ];\n } else {\n token.nodes = [];\n }\n if (token.unclosed && whitespacePos + 1 !== next) {\n token.after = \"\";\n token.nodes.push({\n type: \"space\",\n sourceIndex: whitespacePos + 1,\n value: value.slice(whitespacePos + 1, next)\n });\n } else {\n token.after = value.slice(whitespacePos + 1, next);\n }\n pos = next + 1;\n code = value.charCodeAt(pos);\n tokens.push(token);\n } else {\n balanced += 1;\n token.after = \"\";\n tokens.push(token);\n stack.push(token);\n tokens = token.nodes = [];\n parent = token;\n }\n name = \"\";\n\n // Close parentheses\n } else if (closeParentheses === code && balanced) {\n pos += 1;\n code = value.charCodeAt(pos);\n\n parent.after = after;\n after = \"\";\n balanced -= 1;\n stack.pop();\n parent = stack[balanced];\n tokens = parent.nodes;\n\n // Words\n } else {\n next = pos;\n do {\n if (code === backslash) {\n next += 1;\n }\n next += 1;\n code = value.charCodeAt(next);\n } while (\n next < max &&\n !(\n code <= 32 ||\n code === singleQuote ||\n code === doubleQuote ||\n code === comma ||\n code === colon ||\n code === slash ||\n code === openParentheses ||\n (code === closeParentheses && balanced)\n )\n );\n token = value.slice(pos, next);\n\n if (openParentheses === code) {\n name = token;\n } else {\n tokens.push({\n type: \"word\",\n sourceIndex: pos,\n value: token\n });\n }\n\n pos = next;\n }\n }\n\n for (pos = stack.length - 1; pos; pos -= 1) {\n stack[pos].unclosed = true;\n }\n\n return stack[0].nodes;\n};\n\nvar walk = function walk(nodes, cb, bubble) {\n var i, max, node, result;\n\n for (i = 0, max = nodes.length; i < max; i += 1) {\n node = nodes[i];\n if (!bubble) {\n result = cb(node, i, nodes);\n }\n\n if (\n result !== false &&\n node.type === \"function\" &&\n Array.isArray(node.nodes)\n ) {\n walk(node.nodes, cb, bubble);\n }\n\n if (bubble) {\n cb(node, i, nodes);\n }\n }\n};\n\nfunction stringifyNode(node, custom) {\n var type = node.type;\n var value = node.value;\n var buf;\n var customResult;\n\n if (custom && (customResult = custom(node)) !== undefined) {\n return customResult;\n } else if (type === \"word\" || type === \"space\") {\n return value;\n } else if (type === \"string\") {\n buf = node.quote || \"\";\n return buf + value + (node.unclosed ? \"\" : buf);\n } else if (type === \"comment\") {\n return \"/*\" + value + (node.unclosed ? \"\" : \"*/\");\n } else if (type === \"div\") {\n return (node.before || \"\") + value + (node.after || \"\");\n } else if (Array.isArray(node.nodes)) {\n buf = stringify(node.nodes);\n if (type !== \"function\") {\n return buf;\n }\n return (\n value +\n \"(\" +\n (node.before || \"\") +\n buf +\n (node.after || \"\") +\n (node.unclosed ? \"\" : \")\")\n );\n }\n return value;\n}\n\nfunction stringify(nodes, custom) {\n var result, i;\n\n if (Array.isArray(nodes)) {\n result = \"\";\n for (i = nodes.length - 1; ~i; i -= 1) {\n result = stringifyNode(nodes[i], custom) + result;\n }\n return result;\n }\n return stringifyNode(nodes, custom);\n}\n\nvar stringify_1 = stringify;\n\nvar minus = \"-\".charCodeAt(0);\nvar plus = \"+\".charCodeAt(0);\nvar dot = \".\".charCodeAt(0);\nvar exp = \"e\".charCodeAt(0);\nvar EXP = \"E\".charCodeAt(0);\n\nvar unit = function(value) {\n var pos = 0;\n var length = value.length;\n var dotted = false;\n var sciPos = -1;\n var containsNumber = false;\n var code;\n\n while (pos < length) {\n code = value.charCodeAt(pos);\n\n if (code >= 48 && code <= 57) {\n containsNumber = true;\n } else if (code === exp || code === EXP) {\n if (sciPos > -1) {\n break;\n }\n sciPos = pos;\n } else if (code === dot) {\n if (dotted) {\n break;\n }\n dotted = true;\n } else if (code === plus || code === minus) {\n if (pos !== 0) {\n break;\n }\n } else {\n break;\n }\n\n pos += 1;\n }\n\n if (sciPos + 1 === pos) pos--;\n\n return containsNumber\n ? {\n number: value.slice(0, pos),\n unit: value.slice(pos)\n }\n : false;\n};\n\nfunction ValueParser(value) {\n if (this instanceof ValueParser) {\n this.nodes = parse(value);\n return this;\n }\n return new ValueParser(value);\n}\n\nValueParser.prototype.toString = function() {\n return Array.isArray(this.nodes) ? stringify_1(this.nodes) : \"\";\n};\n\nValueParser.prototype.walk = function(cb, bubble) {\n walk(this.nodes, cb, bubble);\n return this;\n};\n\nValueParser.unit = unit;\n\nValueParser.walk = walk;\n\nValueParser.stringify = stringify_1;\n\nvar lib = ValueParser;\n\nvar black = \"#000000\";\nvar silver = \"#c0c0c0\";\nvar gray = \"#808080\";\nvar white = \"#ffffff\";\nvar maroon = \"#800000\";\nvar red = \"#ff0000\";\nvar purple = \"#800080\";\nvar fuchsia = \"#ff00ff\";\nvar green = \"#008000\";\nvar lime = \"#00ff00\";\nvar olive = \"#808000\";\nvar yellow = \"#ffff00\";\nvar navy = \"#000080\";\nvar blue = \"#0000ff\";\nvar teal = \"#008080\";\nvar aqua = \"#00ffff\";\nvar orange = \"#ffa500\";\nvar aliceblue = \"#f0f8ff\";\nvar antiquewhite = \"#faebd7\";\nvar aquamarine = \"#7fffd4\";\nvar azure = \"#f0ffff\";\nvar beige = \"#f5f5dc\";\nvar bisque = \"#ffe4c4\";\nvar blanchedalmond = \"#ffebcd\";\nvar blueviolet = \"#8a2be2\";\nvar brown = \"#a52a2a\";\nvar burlywood = \"#deb887\";\nvar cadetblue = \"#5f9ea0\";\nvar chartreuse = \"#7fff00\";\nvar chocolate = \"#d2691e\";\nvar coral = \"#ff7f50\";\nvar cornflowerblue = \"#6495ed\";\nvar cornsilk = \"#fff8dc\";\nvar crimson = \"#dc143c\";\nvar darkblue = \"#00008b\";\nvar darkcyan = \"#008b8b\";\nvar darkgoldenrod = \"#b8860b\";\nvar darkgray = \"#a9a9a9\";\nvar darkgreen = \"#006400\";\nvar darkgrey = \"#a9a9a9\";\nvar darkkhaki = \"#bdb76b\";\nvar darkmagenta = \"#8b008b\";\nvar darkolivegreen = \"#556b2f\";\nvar darkorange = \"#ff8c00\";\nvar darkorchid = \"#9932cc\";\nvar darkred = \"#8b0000\";\nvar darksalmon = \"#e9967a\";\nvar darkseagreen = \"#8fbc8f\";\nvar darkslateblue = \"#483d8b\";\nvar darkslategray = \"#2f4f4f\";\nvar darkslategrey = \"#2f4f4f\";\nvar darkturquoise = \"#00ced1\";\nvar darkviolet = \"#9400d3\";\nvar deeppink = \"#ff1493\";\nvar deepskyblue = \"#00bfff\";\nvar dimgray = \"#696969\";\nvar dimgrey = \"#696969\";\nvar dodgerblue = \"#1e90ff\";\nvar firebrick = \"#b22222\";\nvar floralwhite = \"#fffaf0\";\nvar forestgreen = \"#228b22\";\nvar gainsboro = \"#dcdcdc\";\nvar ghostwhite = \"#f8f8ff\";\nvar gold = \"#ffd700\";\nvar goldenrod = \"#daa520\";\nvar greenyellow = \"#adff2f\";\nvar grey = \"#808080\";\nvar honeydew = \"#f0fff0\";\nvar hotpink = \"#ff69b4\";\nvar indianred = \"#cd5c5c\";\nvar indigo = \"#4b0082\";\nvar ivory = \"#fffff0\";\nvar khaki = \"#f0e68c\";\nvar lavender = \"#e6e6fa\";\nvar lavenderblush = \"#fff0f5\";\nvar lawngreen = \"#7cfc00\";\nvar lemonchiffon = \"#fffacd\";\nvar lightblue = \"#add8e6\";\nvar lightcoral = \"#f08080\";\nvar lightcyan = \"#e0ffff\";\nvar lightgoldenrodyellow = \"#fafad2\";\nvar lightgray = \"#d3d3d3\";\nvar lightgreen = \"#90ee90\";\nvar lightgrey = \"#d3d3d3\";\nvar lightpink = \"#ffb6c1\";\nvar lightsalmon = \"#ffa07a\";\nvar lightseagreen = \"#20b2aa\";\nvar lightskyblue = \"#87cefa\";\nvar lightslategray = \"#778899\";\nvar lightslategrey = \"#778899\";\nvar lightsteelblue = \"#b0c4de\";\nvar lightyellow = \"#ffffe0\";\nvar limegreen = \"#32cd32\";\nvar linen = \"#faf0e6\";\nvar mediumaquamarine = \"#66cdaa\";\nvar mediumblue = \"#0000cd\";\nvar mediumorchid = \"#ba55d3\";\nvar mediumpurple = \"#9370db\";\nvar mediumseagreen = \"#3cb371\";\nvar mediumslateblue = \"#7b68ee\";\nvar mediumspringgreen = \"#00fa9a\";\nvar mediumturquoise = \"#48d1cc\";\nvar mediumvioletred = \"#c71585\";\nvar midnightblue = \"#191970\";\nvar mintcream = \"#f5fffa\";\nvar mistyrose = \"#ffe4e1\";\nvar moccasin = \"#ffe4b5\";\nvar navajowhite = \"#ffdead\";\nvar oldlace = \"#fdf5e6\";\nvar olivedrab = \"#6b8e23\";\nvar orangered = \"#ff4500\";\nvar orchid = \"#da70d6\";\nvar palegoldenrod = \"#eee8aa\";\nvar palegreen = \"#98fb98\";\nvar paleturquoise = \"#afeeee\";\nvar palevioletred = \"#db7093\";\nvar papayawhip = \"#ffefd5\";\nvar peachpuff = \"#ffdab9\";\nvar peru = \"#cd853f\";\nvar pink = \"#ffc0cb\";\nvar plum = \"#dda0dd\";\nvar powderblue = \"#b0e0e6\";\nvar rosybrown = \"#bc8f8f\";\nvar royalblue = \"#4169e1\";\nvar saddlebrown = \"#8b4513\";\nvar salmon = \"#fa8072\";\nvar sandybrown = \"#f4a460\";\nvar seagreen = \"#2e8b57\";\nvar seashell = \"#fff5ee\";\nvar sienna = \"#a0522d\";\nvar skyblue = \"#87ceeb\";\nvar slateblue = \"#6a5acd\";\nvar slategray = \"#708090\";\nvar slategrey = \"#708090\";\nvar snow = \"#fffafa\";\nvar springgreen = \"#00ff7f\";\nvar steelblue = \"#4682b4\";\nvar tan = \"#d2b48c\";\nvar thistle = \"#d8bfd8\";\nvar tomato = \"#ff6347\";\nvar turquoise = \"#40e0d0\";\nvar violet = \"#ee82ee\";\nvar wheat = \"#f5deb3\";\nvar whitesmoke = \"#f5f5f5\";\nvar yellowgreen = \"#9acd32\";\nvar rebeccapurple = \"#663399\";\nvar colors = {\n\tblack: black,\n\tsilver: silver,\n\tgray: gray,\n\twhite: white,\n\tmaroon: maroon,\n\tred: red,\n\tpurple: purple,\n\tfuchsia: fuchsia,\n\tgreen: green,\n\tlime: lime,\n\tolive: olive,\n\tyellow: yellow,\n\tnavy: navy,\n\tblue: blue,\n\tteal: teal,\n\taqua: aqua,\n\torange: orange,\n\taliceblue: aliceblue,\n\tantiquewhite: antiquewhite,\n\taquamarine: aquamarine,\n\tazure: azure,\n\tbeige: beige,\n\tbisque: bisque,\n\tblanchedalmond: blanchedalmond,\n\tblueviolet: blueviolet,\n\tbrown: brown,\n\tburlywood: burlywood,\n\tcadetblue: cadetblue,\n\tchartreuse: chartreuse,\n\tchocolate: chocolate,\n\tcoral: coral,\n\tcornflowerblue: cornflowerblue,\n\tcornsilk: cornsilk,\n\tcrimson: crimson,\n\tdarkblue: darkblue,\n\tdarkcyan: darkcyan,\n\tdarkgoldenrod: darkgoldenrod,\n\tdarkgray: darkgray,\n\tdarkgreen: darkgreen,\n\tdarkgrey: darkgrey,\n\tdarkkhaki: darkkhaki,\n\tdarkmagenta: darkmagenta,\n\tdarkolivegreen: darkolivegreen,\n\tdarkorange: darkorange,\n\tdarkorchid: darkorchid,\n\tdarkred: darkred,\n\tdarksalmon: darksalmon,\n\tdarkseagreen: darkseagreen,\n\tdarkslateblue: darkslateblue,\n\tdarkslategray: darkslategray,\n\tdarkslategrey: darkslategrey,\n\tdarkturquoise: darkturquoise,\n\tdarkviolet: darkviolet,\n\tdeeppink: deeppink,\n\tdeepskyblue: deepskyblue,\n\tdimgray: dimgray,\n\tdimgrey: dimgrey,\n\tdodgerblue: dodgerblue,\n\tfirebrick: firebrick,\n\tfloralwhite: floralwhite,\n\tforestgreen: forestgreen,\n\tgainsboro: gainsboro,\n\tghostwhite: ghostwhite,\n\tgold: gold,\n\tgoldenrod: goldenrod,\n\tgreenyellow: greenyellow,\n\tgrey: grey,\n\thoneydew: honeydew,\n\thotpink: hotpink,\n\tindianred: indianred,\n\tindigo: indigo,\n\tivory: ivory,\n\tkhaki: khaki,\n\tlavender: lavender,\n\tlavenderblush: lavenderblush,\n\tlawngreen: lawngreen,\n\tlemonchiffon: lemonchiffon,\n\tlightblue: lightblue,\n\tlightcoral: lightcoral,\n\tlightcyan: lightcyan,\n\tlightgoldenrodyellow: lightgoldenrodyellow,\n\tlightgray: lightgray,\n\tlightgreen: lightgreen,\n\tlightgrey: lightgrey,\n\tlightpink: lightpink,\n\tlightsalmon: lightsalmon,\n\tlightseagreen: lightseagreen,\n\tlightskyblue: lightskyblue,\n\tlightslategray: lightslategray,\n\tlightslategrey: lightslategrey,\n\tlightsteelblue: lightsteelblue,\n\tlightyellow: lightyellow,\n\tlimegreen: limegreen,\n\tlinen: linen,\n\tmediumaquamarine: mediumaquamarine,\n\tmediumblue: mediumblue,\n\tmediumorchid: mediumorchid,\n\tmediumpurple: mediumpurple,\n\tmediumseagreen: mediumseagreen,\n\tmediumslateblue: mediumslateblue,\n\tmediumspringgreen: mediumspringgreen,\n\tmediumturquoise: mediumturquoise,\n\tmediumvioletred: mediumvioletred,\n\tmidnightblue: midnightblue,\n\tmintcream: mintcream,\n\tmistyrose: mistyrose,\n\tmoccasin: moccasin,\n\tnavajowhite: navajowhite,\n\toldlace: oldlace,\n\tolivedrab: olivedrab,\n\torangered: orangered,\n\torchid: orchid,\n\tpalegoldenrod: palegoldenrod,\n\tpalegreen: palegreen,\n\tpaleturquoise: paleturquoise,\n\tpalevioletred: palevioletred,\n\tpapayawhip: papayawhip,\n\tpeachpuff: peachpuff,\n\tperu: peru,\n\tpink: pink,\n\tplum: plum,\n\tpowderblue: powderblue,\n\trosybrown: rosybrown,\n\troyalblue: royalblue,\n\tsaddlebrown: saddlebrown,\n\tsalmon: salmon,\n\tsandybrown: sandybrown,\n\tseagreen: seagreen,\n\tseashell: seashell,\n\tsienna: sienna,\n\tskyblue: skyblue,\n\tslateblue: slateblue,\n\tslategray: slategray,\n\tslategrey: slategrey,\n\tsnow: snow,\n\tspringgreen: springgreen,\n\tsteelblue: steelblue,\n\ttan: tan,\n\tthistle: thistle,\n\ttomato: tomato,\n\tturquoise: turquoise,\n\tviolet: violet,\n\twheat: wheat,\n\twhitesmoke: whitesmoke,\n\tyellowgreen: yellowgreen,\n\trebeccapurple: rebeccapurple\n};\n\nvar colors$1 = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tblack: black,\n\tsilver: silver,\n\tgray: gray,\n\twhite: white,\n\tmaroon: maroon,\n\tred: red,\n\tpurple: purple,\n\tfuchsia: fuchsia,\n\tgreen: green,\n\tlime: lime,\n\tolive: olive,\n\tyellow: yellow,\n\tnavy: navy,\n\tblue: blue,\n\tteal: teal,\n\taqua: aqua,\n\torange: orange,\n\taliceblue: aliceblue,\n\tantiquewhite: antiquewhite,\n\taquamarine: aquamarine,\n\tazure: azure,\n\tbeige: beige,\n\tbisque: bisque,\n\tblanchedalmond: blanchedalmond,\n\tblueviolet: blueviolet,\n\tbrown: brown,\n\tburlywood: burlywood,\n\tcadetblue: cadetblue,\n\tchartreuse: chartreuse,\n\tchocolate: chocolate,\n\tcoral: coral,\n\tcornflowerblue: cornflowerblue,\n\tcornsilk: cornsilk,\n\tcrimson: crimson,\n\tdarkblue: darkblue,\n\tdarkcyan: darkcyan,\n\tdarkgoldenrod: darkgoldenrod,\n\tdarkgray: darkgray,\n\tdarkgreen: darkgreen,\n\tdarkgrey: darkgrey,\n\tdarkkhaki: darkkhaki,\n\tdarkmagenta: darkmagenta,\n\tdarkolivegreen: darkolivegreen,\n\tdarkorange: darkorange,\n\tdarkorchid: darkorchid,\n\tdarkred: darkred,\n\tdarksalmon: darksalmon,\n\tdarkseagreen: darkseagreen,\n\tdarkslateblue: darkslateblue,\n\tdarkslategray: darkslategray,\n\tdarkslategrey: darkslategrey,\n\tdarkturquoise: darkturquoise,\n\tdarkviolet: darkviolet,\n\tdeeppink: deeppink,\n\tdeepskyblue: deepskyblue,\n\tdimgray: dimgray,\n\tdimgrey: dimgrey,\n\tdodgerblue: dodgerblue,\n\tfirebrick: firebrick,\n\tfloralwhite: floralwhite,\n\tforestgreen: forestgreen,\n\tgainsboro: gainsboro,\n\tghostwhite: ghostwhite,\n\tgold: gold,\n\tgoldenrod: goldenrod,\n\tgreenyellow: greenyellow,\n\tgrey: grey,\n\thoneydew: honeydew,\n\thotpink: hotpink,\n\tindianred: indianred,\n\tindigo: indigo,\n\tivory: ivory,\n\tkhaki: khaki,\n\tlavender: lavender,\n\tlavenderblush: lavenderblush,\n\tlawngreen: lawngreen,\n\tlemonchiffon: lemonchiffon,\n\tlightblue: lightblue,\n\tlightcoral: lightcoral,\n\tlightcyan: lightcyan,\n\tlightgoldenrodyellow: lightgoldenrodyellow,\n\tlightgray: lightgray,\n\tlightgreen: lightgreen,\n\tlightgrey: lightgrey,\n\tlightpink: lightpink,\n\tlightsalmon: lightsalmon,\n\tlightseagreen: lightseagreen,\n\tlightskyblue: lightskyblue,\n\tlightslategray: lightslategray,\n\tlightslategrey: lightslategrey,\n\tlightsteelblue: lightsteelblue,\n\tlightyellow: lightyellow,\n\tlimegreen: limegreen,\n\tlinen: linen,\n\tmediumaquamarine: mediumaquamarine,\n\tmediumblue: mediumblue,\n\tmediumorchid: mediumorchid,\n\tmediumpurple: mediumpurple,\n\tmediumseagreen: mediumseagreen,\n\tmediumslateblue: mediumslateblue,\n\tmediumspringgreen: mediumspringgreen,\n\tmediumturquoise: mediumturquoise,\n\tmediumvioletred: mediumvioletred,\n\tmidnightblue: midnightblue,\n\tmintcream: mintcream,\n\tmistyrose: mistyrose,\n\tmoccasin: moccasin,\n\tnavajowhite: navajowhite,\n\toldlace: oldlace,\n\tolivedrab: olivedrab,\n\torangered: orangered,\n\torchid: orchid,\n\tpalegoldenrod: palegoldenrod,\n\tpalegreen: palegreen,\n\tpaleturquoise: paleturquoise,\n\tpalevioletred: palevioletred,\n\tpapayawhip: papayawhip,\n\tpeachpuff: peachpuff,\n\tperu: peru,\n\tpink: pink,\n\tplum: plum,\n\tpowderblue: powderblue,\n\trosybrown: rosybrown,\n\troyalblue: royalblue,\n\tsaddlebrown: saddlebrown,\n\tsalmon: salmon,\n\tsandybrown: sandybrown,\n\tseagreen: seagreen,\n\tseashell: seashell,\n\tsienna: sienna,\n\tskyblue: skyblue,\n\tslateblue: slateblue,\n\tslategray: slategray,\n\tslategrey: slategrey,\n\tsnow: snow,\n\tspringgreen: springgreen,\n\tsteelblue: steelblue,\n\ttan: tan,\n\tthistle: thistle,\n\ttomato: tomato,\n\tturquoise: turquoise,\n\tviolet: violet,\n\twheat: wheat,\n\twhitesmoke: whitesmoke,\n\tyellowgreen: yellowgreen,\n\trebeccapurple: rebeccapurple,\n\t'default': colors\n});\n\nvar require$$0 = getCjsExportFromNamespace(colors$1);\n\nvar cssColorKeywords = require$$0;\n\nvar camelize = function(obj) {\n if (typeof obj === 'string') return camelCase(obj);\n return walk$1(obj);\n};\n\nfunction walk$1 (obj) {\n if (!obj || typeof obj !== 'object') return obj;\n if (isDate(obj) || isRegex(obj)) return obj;\n if (isArray(obj)) return map(obj, walk$1);\n return reduce(objectKeys(obj), function (acc, key) {\n var camel = camelCase(key);\n acc[camel] = walk$1(obj[key]);\n return acc;\n }, {});\n}\n\nfunction camelCase(str) {\n return str.replace(/[_.-](\\w|$)/g, function (_,x) {\n return x.toUpperCase();\n });\n}\n\nvar isArray = Array.isArray || function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n};\n\nvar isDate = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Date]';\n};\n\nvar isRegex = function (obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar has = Object.prototype.hasOwnProperty;\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n if (has.call(obj, key)) keys.push(key);\n }\n return keys;\n};\n\nfunction map (xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n return res;\n}\n\nfunction reduce (xs, f, acc) {\n if (xs.reduce) return xs.reduce(f, acc);\n for (var i = 0; i < xs.length; i++) {\n acc = f(acc, xs[i], i);\n }\n return acc;\n}\n\nvar cssToReactNative = createCommonjsModule(function (module, exports) {\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault(ex) {\n return ex && (typeof ex === 'undefined' ? 'undefined' : _typeof(ex)) === 'object' && 'default' in ex ? ex['default'] : ex;\n}\n\n\nvar parse__default = _interopDefault(lib);\nvar cssColorKeywords$1 = _interopDefault(cssColorKeywords);\nvar camelizeStyleName = _interopDefault(camelize);\n\nvar matchString = function matchString(node) {\n if (node.type !== 'string') return null;\n return node.value.replace(/\\\\([0-9a-f]{1,6})(?:\\s|$)/gi, function (match, charCode) {\n return String.fromCharCode(parseInt(charCode, 16));\n }).replace(/\\\\/g, '');\n};\n\nvar hexColorRe = /^(#(?:[0-9a-f]{3,4}){1,2})$/i;\nvar cssFunctionNameRe = /^(rgba?|hsla?|hwb|lab|lch|gray|color)$/;\n\nvar matchColor = function matchColor(node) {\n if (node.type === 'word' && (hexColorRe.test(node.value) || node.value in cssColorKeywords$1 || node.value === 'transparent')) {\n return node.value;\n } else if (node.type === 'function' && cssFunctionNameRe.test(node.value)) {\n return lib.stringify(node);\n }\n return null;\n};\n\nvar noneRe = /^(none)$/i;\nvar autoRe = /^(auto)$/i;\nvar identRe = /(^-?[_a-z][_a-z0-9-]*$)/i;\n// Note if these are wrong, you'll need to change index.js too\nvar numberRe = /^([+-]?(?:\\d*\\.)?\\d+(?:[Ee][+-]?\\d+)?)$/;\n// Note lengthRe is sneaky: you can omit units for 0\nvar lengthRe = /^(0$|(?:[+-]?(?:\\d*\\.)?\\d+(?:[Ee][+-]?\\d+)?)(?=px$))/;\nvar unsupportedUnitRe = /^([+-]?(?:\\d*\\.)?\\d+(?:[Ee][+-]?\\d+)?(ch|em|ex|rem|vh|vw|vmin|vmax|cm|mm|in|pc|pt))$/;\nvar angleRe = /^([+-]?(?:\\d*\\.)?\\d+(?:[Ee][+-]?\\d+)?(?:deg|rad))$/;\nvar percentRe = /^([+-]?(?:\\d*\\.)?\\d+(?:[Ee][+-]?\\d+)?%)$/;\n\nvar noopToken = function noopToken(predicate) {\n return function (node) {\n return predicate(node) ? '' : null;\n };\n};\n\nvar valueForTypeToken = function valueForTypeToken(type) {\n return function (node) {\n return node.type === type ? node.value : null;\n };\n};\n\nvar regExpToken = function regExpToken(regExp) {\n var transform = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : String;\n return function (node) {\n if (node.type !== 'word') return null;\n\n var match = node.value.match(regExp);\n if (match === null) return null;\n\n var value = transform(match[1]);\n\n return value;\n };\n};\n\nvar tokens = {\n SPACE: noopToken(function (node) {\n return node.type === 'space';\n }),\n SLASH: noopToken(function (node) {\n return node.type === 'div' && node.value === '/';\n }),\n COMMA: noopToken(function (node) {\n return node.type === 'div' && node.value === ',';\n }),\n WORD: valueForTypeToken('word'),\n NONE: regExpToken(noneRe),\n AUTO: regExpToken(autoRe),\n NUMBER: regExpToken(numberRe, Number),\n LENGTH: regExpToken(lengthRe, Number),\n UNSUPPORTED_LENGTH_UNIT: regExpToken(unsupportedUnitRe),\n ANGLE: regExpToken(angleRe),\n PERCENT: regExpToken(percentRe),\n IDENT: regExpToken(identRe),\n STRING: matchString,\n COLOR: matchColor,\n LINE: regExpToken(/^(none|underline|line-through)$/i)\n};\n\nvar LENGTH = tokens.LENGTH,\n UNSUPPORTED_LENGTH_UNIT = tokens.UNSUPPORTED_LENGTH_UNIT,\n PERCENT = tokens.PERCENT,\n COLOR = tokens.COLOR,\n SPACE = tokens.SPACE,\n NONE = tokens.NONE;\n\n\nvar directionFactory = function directionFactory(_ref) {\n var _ref$types = _ref.types,\n types = _ref$types === undefined ? [LENGTH, UNSUPPORTED_LENGTH_UNIT, PERCENT] : _ref$types,\n _ref$directions = _ref.directions,\n directions = _ref$directions === undefined ? ['Top', 'Right', 'Bottom', 'Left'] : _ref$directions,\n _ref$prefix = _ref.prefix,\n prefix = _ref$prefix === undefined ? '' : _ref$prefix,\n _ref$suffix = _ref.suffix,\n suffix = _ref$suffix === undefined ? '' : _ref$suffix;\n return function (tokenStream) {\n var _output;\n\n var values = [];\n\n // borderWidth doesn't currently allow a percent value, but may do in the future\n values.push(tokenStream.expect.apply(tokenStream, _toConsumableArray(types)));\n\n while (values.length < 4 && tokenStream.hasTokens()) {\n tokenStream.expect(SPACE);\n values.push(tokenStream.expect.apply(tokenStream, _toConsumableArray(types)));\n }\n\n tokenStream.expectEmpty();\n\n var top = values[0],\n _values$ = values[1],\n right = _values$ === undefined ? top : _values$,\n _values$2 = values[2],\n bottom = _values$2 === undefined ? top : _values$2,\n _values$3 = values[3],\n left = _values$3 === undefined ? right : _values$3;\n\n\n var keyFor = function keyFor(n) {\n return '' + prefix + directions[n] + suffix;\n };\n\n var output = (_output = {}, _defineProperty(_output, keyFor(0), top), _defineProperty(_output, keyFor(1), right), _defineProperty(_output, keyFor(2), bottom), _defineProperty(_output, keyFor(3), left), _output);\n\n return { $merge: output };\n };\n};\n\nvar anyOrderFactory = function anyOrderFactory(properties) {\n var delim = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : SPACE;\n return function (tokenStream) {\n var propertyNames = Object.keys(properties);\n var values = propertyNames.reduce(function (accum, propertyName) {\n accum[propertyName] === undefined; // eslint-disable-line\n return accum;\n }, {});\n\n var numParsed = 0;\n while (numParsed < propertyNames.length && tokenStream.hasTokens()) {\n if (numParsed) tokenStream.expect(delim);\n\n var matchedPropertyName = propertyNames.find(function (propertyName) {\n return values[propertyName] === undefined && properties[propertyName].tokens.some(function (token) {\n return tokenStream.matches(token);\n });\n });\n\n if (!matchedPropertyName) {\n tokenStream.throw();\n } else {\n values[matchedPropertyName] = tokenStream.lastValue;\n }\n\n numParsed += 1;\n }\n\n tokenStream.expectEmpty();\n\n propertyNames.forEach(function (propertyName) {\n if (values[propertyName] === undefined) values[propertyName] = properties[propertyName].default;\n });\n\n return { $merge: values };\n };\n};\n\nvar shadowOffsetFactory = function shadowOffsetFactory() {\n return function (tokenStream) {\n var width = tokenStream.expect(LENGTH);\n var height = tokenStream.matches(SPACE) ? tokenStream.expect(LENGTH) : width;\n tokenStream.expectEmpty();\n return { width: width, height: height };\n };\n};\n\nvar parseShadow = function parseShadow(tokenStream) {\n var offsetX = void 0;\n var offsetY = void 0;\n var radius = void 0;\n var color = void 0;\n\n if (tokenStream.matches(NONE)) {\n tokenStream.expectEmpty();\n return {\n offset: { width: 0, height: 0 },\n radius: 0,\n color: 'black'\n };\n }\n\n var didParseFirst = false;\n while (tokenStream.hasTokens()) {\n if (didParseFirst) tokenStream.expect(SPACE);\n\n if (offsetX === undefined && tokenStream.matches(LENGTH, UNSUPPORTED_LENGTH_UNIT)) {\n offsetX = tokenStream.lastValue;\n tokenStream.expect(SPACE);\n offsetY = tokenStream.expect(LENGTH, UNSUPPORTED_LENGTH_UNIT);\n\n tokenStream.saveRewindPoint();\n if (tokenStream.matches(SPACE) && tokenStream.matches(LENGTH, UNSUPPORTED_LENGTH_UNIT)) {\n radius = tokenStream.lastValue;\n } else {\n tokenStream.rewind();\n }\n } else if (color === undefined && tokenStream.matches(COLOR)) {\n color = tokenStream.lastValue;\n } else {\n tokenStream.throw();\n }\n\n didParseFirst = true;\n }\n\n if (offsetX === undefined) tokenStream.throw();\n\n return {\n offset: { width: offsetX, height: offsetY },\n radius: radius !== undefined ? radius : 0,\n color: color !== undefined ? color : 'black'\n };\n};\n\nvar boxShadow = function boxShadow(tokenStream) {\n var _parseShadow = parseShadow(tokenStream),\n offset = _parseShadow.offset,\n radius = _parseShadow.radius,\n color = _parseShadow.color;\n\n return {\n $merge: {\n shadowOffset: offset,\n shadowRadius: radius,\n shadowColor: color,\n shadowOpacity: 1\n }\n };\n};\n\nvar NONE$1 = tokens.NONE,\n AUTO = tokens.AUTO,\n NUMBER = tokens.NUMBER,\n LENGTH$1 = tokens.LENGTH,\n SPACE$1 = tokens.SPACE;\n\n\nvar defaultFlexGrow = 1;\nvar defaultFlexShrink = 1;\nvar defaultFlexBasis = 0;\n\nvar flex = function flex(tokenStream) {\n var flexGrow = void 0;\n var flexShrink = void 0;\n var flexBasis = void 0;\n\n if (tokenStream.matches(NONE$1)) {\n tokenStream.expectEmpty();\n return { $merge: { flexGrow: 0, flexShrink: 0, flexBasis: 'auto' } };\n }\n\n tokenStream.saveRewindPoint();\n if (tokenStream.matches(AUTO) && !tokenStream.hasTokens()) {\n return { $merge: { flexGrow: 1, flexShrink: 1, flexBasis: 'auto' } };\n }\n tokenStream.rewind();\n\n var partsParsed = 0;\n while (partsParsed < 2 && tokenStream.hasTokens()) {\n if (partsParsed !== 0) tokenStream.expect(SPACE$1);\n\n if (flexGrow === undefined && tokenStream.matches(NUMBER)) {\n flexGrow = tokenStream.lastValue;\n\n tokenStream.saveRewindPoint();\n if (tokenStream.matches(SPACE$1) && tokenStream.matches(NUMBER)) {\n flexShrink = tokenStream.lastValue;\n } else {\n tokenStream.rewind();\n }\n } else if (flexBasis === undefined && tokenStream.matches(LENGTH$1)) {\n flexBasis = tokenStream.lastValue;\n } else if (flexBasis === undefined && tokenStream.matches(AUTO)) {\n flexBasis = 'auto';\n } else {\n tokenStream.throw();\n }\n\n partsParsed += 1;\n }\n\n tokenStream.expectEmpty();\n\n if (flexGrow === undefined) flexGrow = defaultFlexGrow;\n if (flexShrink === undefined) flexShrink = defaultFlexShrink;\n if (flexBasis === undefined) flexBasis = defaultFlexBasis;\n\n return { $merge: { flexGrow: flexGrow, flexShrink: flexShrink, flexBasis: flexBasis } };\n};\n\nvar SPACE$2 = tokens.SPACE,\n IDENT = tokens.IDENT,\n STRING = tokens.STRING;\n\n\nvar parseFontFamily = function parseFontFamily(tokenStream) {\n var fontFamily = void 0;\n\n if (tokenStream.matches(STRING)) {\n fontFamily = tokenStream.lastValue;\n } else {\n fontFamily = tokenStream.expect(IDENT);\n while (tokenStream.hasTokens()) {\n tokenStream.expect(SPACE$2);\n var nextIdent = tokenStream.expect(IDENT);\n fontFamily += ' ' + nextIdent;\n }\n }\n\n tokenStream.expectEmpty();\n\n return fontFamily;\n};\n\nvar SPACE$3 = tokens.SPACE,\n LENGTH$2 = tokens.LENGTH,\n UNSUPPORTED_LENGTH_UNIT$1 = tokens.UNSUPPORTED_LENGTH_UNIT,\n NUMBER$1 = tokens.NUMBER,\n SLASH = tokens.SLASH;\n\nvar NORMAL = regExpToken(/^(normal)$/);\nvar STYLE = regExpToken(/^(italic)$/);\nvar WEIGHT = regExpToken(/^([1-9]00|bold)$/);\nvar VARIANT = regExpToken(/^(small-caps)$/);\n\nvar defaultFontStyle = 'normal';\nvar defaultFontWeight = 'normal';\nvar defaultFontVariant = [];\n\nvar font = function font(tokenStream) {\n var fontStyle = void 0;\n var fontWeight = void 0;\n var fontVariant = void 0;\n // let fontSize;\n var lineHeight = void 0;\n // let fontFamily;\n\n var numStyleWeightVariantMatched = 0;\n while (numStyleWeightVariantMatched < 3 && tokenStream.hasTokens()) {\n if (tokenStream.matches(NORMAL)) ; else if (fontStyle === undefined && tokenStream.matches(STYLE)) {\n fontStyle = tokenStream.lastValue;\n } else if (fontWeight === undefined && tokenStream.matches(WEIGHT)) {\n fontWeight = tokenStream.lastValue;\n } else if (fontVariant === undefined && tokenStream.matches(VARIANT)) {\n fontVariant = [tokenStream.lastValue];\n } else {\n break;\n }\n\n tokenStream.expect(SPACE$3);\n numStyleWeightVariantMatched += 1;\n }\n\n var fontSize = tokenStream.expect(LENGTH$2, UNSUPPORTED_LENGTH_UNIT$1);\n\n if (tokenStream.matches(SLASH)) {\n if (tokenStream.matches(NUMBER$1)) {\n lineHeight = fontSize * tokenStream.lastValue;\n } else {\n lineHeight = tokenStream.expect(LENGTH$2, UNSUPPORTED_LENGTH_UNIT$1);\n }\n }\n\n tokenStream.expect(SPACE$3);\n\n var fontFamily = parseFontFamily(tokenStream);\n\n if (fontStyle === undefined) fontStyle = defaultFontStyle;\n if (fontWeight === undefined) fontWeight = defaultFontWeight;\n if (fontVariant === undefined) fontVariant = defaultFontVariant;\n\n var out = { fontStyle: fontStyle, fontWeight: fontWeight, fontVariant: fontVariant, fontSize: fontSize, fontFamily: fontFamily };\n if (lineHeight !== undefined) out.lineHeight = lineHeight;\n\n return { $merge: out };\n};\n\nvar textShadow = function textShadow(tokenStream) {\n var _parseShadow2 = parseShadow(tokenStream),\n offset = _parseShadow2.offset,\n radius = _parseShadow2.radius,\n color = _parseShadow2.color;\n\n return {\n $merge: {\n textShadowOffset: offset,\n textShadowRadius: radius,\n textShadowColor: color\n }\n };\n};\n\nvar SPACE$4 = tokens.SPACE,\n LINE = tokens.LINE,\n COLOR$1 = tokens.COLOR;\n\n\nvar STYLE$1 = regExpToken(/^(solid|double|dotted|dashed)$/);\n\nvar defaultTextDecorationLine = 'none';\nvar defaultTextDecorationStyle = 'solid';\nvar defaultTextDecorationColor = 'black';\n\nvar textDecoration = function textDecoration(tokenStream) {\n var line = void 0;\n var style = void 0;\n var color = void 0;\n\n var didParseFirst = false;\n while (tokenStream.hasTokens()) {\n if (didParseFirst) tokenStream.expect(SPACE$4);\n\n if (line === undefined && tokenStream.matches(LINE)) {\n var lines = [tokenStream.lastValue.toLowerCase()];\n\n tokenStream.saveRewindPoint();\n if (lines[0] !== 'none' && tokenStream.matches(SPACE$4) && tokenStream.matches(LINE)) {\n lines.push(tokenStream.lastValue.toLowerCase());\n // Underline comes before line-through\n lines.sort().reverse();\n } else {\n tokenStream.rewind();\n }\n\n line = lines.join(' ');\n } else if (style === undefined && tokenStream.matches(STYLE$1)) {\n style = tokenStream.lastValue;\n } else if (color === undefined && tokenStream.matches(COLOR$1)) {\n color = tokenStream.lastValue;\n } else {\n tokenStream.throw();\n }\n\n didParseFirst = true;\n }\n\n var $merge = {\n textDecorationLine: line !== undefined ? line : defaultTextDecorationLine,\n textDecorationColor: color !== undefined ? color : defaultTextDecorationColor,\n textDecorationStyle: style !== undefined ? style : defaultTextDecorationStyle\n };\n return { $merge: $merge };\n};\n\nvar SPACE$5 = tokens.SPACE,\n LINE$1 = tokens.LINE;\n\n\nvar textDecorationLine = function textDecorationLine(tokenStream) {\n var lines = [];\n\n var didParseFirst = false;\n while (tokenStream.hasTokens()) {\n if (didParseFirst) tokenStream.expect(SPACE$5);\n\n lines.push(tokenStream.expect(LINE$1).toLowerCase());\n\n didParseFirst = true;\n }\n\n lines.sort().reverse();\n\n return lines.join(' ');\n};\n\nvar SPACE$6 = tokens.SPACE,\n COMMA = tokens.COMMA,\n LENGTH$3 = tokens.LENGTH,\n NUMBER$2 = tokens.NUMBER,\n ANGLE = tokens.ANGLE;\n\n\nvar oneOfType = function oneOfType(tokenType) {\n return function (functionStream) {\n var value = functionStream.expect(tokenType);\n functionStream.expectEmpty();\n return value;\n };\n};\n\nvar singleNumber = oneOfType(NUMBER$2);\nvar singleLength = oneOfType(LENGTH$3);\nvar singleAngle = oneOfType(ANGLE);\nvar xyTransformFactory = function xyTransformFactory(tokenType) {\n return function (key, valueIfOmitted) {\n return function (functionStream) {\n var x = functionStream.expect(tokenType);\n\n var y = void 0;\n if (functionStream.hasTokens()) {\n functionStream.expect(COMMA);\n y = functionStream.expect(tokenType);\n } else if (valueIfOmitted !== undefined) {\n y = valueIfOmitted;\n } else {\n // Assumption, if x === y, then we can omit XY\n // I.e. scale(5) => [{ scale: 5 }] rather than [{ scaleX: 5 }, { scaleY: 5 }]\n return x;\n }\n\n functionStream.expectEmpty();\n\n return [_defineProperty({}, key + 'Y', y), _defineProperty({}, key + 'X', x)];\n };\n };\n};\nvar xyNumber = xyTransformFactory(NUMBER$2);\nvar xyLength = xyTransformFactory(LENGTH$3);\nvar xyAngle = xyTransformFactory(ANGLE);\n\nvar partTransforms = {\n perspective: singleNumber,\n scale: xyNumber('scale'),\n scaleX: singleNumber,\n scaleY: singleNumber,\n translate: xyLength('translate', 0),\n translateX: singleLength,\n translateY: singleLength,\n rotate: singleAngle,\n rotateX: singleAngle,\n rotateY: singleAngle,\n rotateZ: singleAngle,\n skewX: singleAngle,\n skewY: singleAngle,\n skew: xyAngle('skew', '0deg')\n};\n\nvar transform = function transform(tokenStream) {\n var transforms = [];\n\n var didParseFirst = false;\n while (tokenStream.hasTokens()) {\n if (didParseFirst) tokenStream.expect(SPACE$6);\n\n var functionStream = tokenStream.expectFunction();\n var functionName = functionStream.functionName;\n\n var transformedValues = partTransforms[functionName](functionStream);\n if (!Array.isArray(transformedValues)) {\n transformedValues = [_defineProperty({}, functionName, transformedValues)];\n }\n transforms = transformedValues.concat(transforms);\n\n didParseFirst = true;\n }\n\n return transforms;\n};\n\nvar IDENT$1 = tokens.IDENT,\n WORD = tokens.WORD,\n COLOR$2 = tokens.COLOR,\n LENGTH$4 = tokens.LENGTH,\n UNSUPPORTED_LENGTH_UNIT$2 = tokens.UNSUPPORTED_LENGTH_UNIT,\n PERCENT$1 = tokens.PERCENT,\n AUTO$1 = tokens.AUTO;\n\n\nvar background = function background(tokenStream) {\n return {\n $merge: { backgroundColor: tokenStream.expect(COLOR$2) }\n };\n};\nvar border = anyOrderFactory({\n borderWidth: {\n tokens: [LENGTH$4, UNSUPPORTED_LENGTH_UNIT$2],\n default: 1\n },\n borderColor: {\n tokens: [COLOR$2],\n default: 'black'\n },\n borderStyle: {\n tokens: [regExpToken(/^(solid|dashed|dotted)$/)],\n default: 'solid'\n }\n});\nvar borderColor = directionFactory({\n types: [WORD],\n prefix: 'border',\n suffix: 'Color'\n});\nvar borderRadius = directionFactory({\n directions: ['TopLeft', 'TopRight', 'BottomRight', 'BottomLeft'],\n prefix: 'border',\n suffix: 'Radius'\n});\nvar borderWidth = directionFactory({ prefix: 'border', suffix: 'Width' });\nvar margin = directionFactory({\n types: [LENGTH$4, UNSUPPORTED_LENGTH_UNIT$2, PERCENT$1, AUTO$1],\n prefix: 'margin'\n});\nvar padding = directionFactory({ prefix: 'padding' });\nvar flexFlow = anyOrderFactory({\n flexWrap: {\n tokens: [regExpToken(/(nowrap|wrap|wrap-reverse)/)],\n default: 'nowrap'\n },\n flexDirection: {\n tokens: [regExpToken(/(row|row-reverse|column|column-reverse)/)],\n default: 'row'\n }\n});\nvar fontVariant = function fontVariant(tokenStream) {\n return [tokenStream.expect(IDENT$1)];\n};\nvar fontWeight = function fontWeight(tokenStream) {\n return tokenStream.expect(WORD);\n}; // Also match numbers as strings\nvar shadowOffset = shadowOffsetFactory();\nvar textShadowOffset = shadowOffsetFactory();\n\nvar transforms = {\n background: background,\n border: border,\n borderColor: borderColor,\n borderRadius: borderRadius,\n borderWidth: borderWidth,\n boxShadow: boxShadow,\n flex: flex,\n flexFlow: flexFlow,\n font: font,\n fontFamily: parseFontFamily,\n fontVariant: fontVariant,\n fontWeight: fontWeight,\n margin: margin,\n padding: padding,\n shadowOffset: shadowOffset,\n textShadow: textShadow,\n textShadowOffset: textShadowOffset,\n textDecoration: textDecoration,\n textDecorationLine: textDecorationLine,\n transform: transform\n};\n\nvar SYMBOL_MATCH = 'SYMBOL_MATCH';\n\nvar TokenStream = function () {\n function TokenStream(nodes, parent) {\n _classCallCheck(this, TokenStream);\n\n this.index = 0;\n this.nodes = nodes;\n this.functionName = parent != null ? parent.value : null;\n this.lastValue = null;\n this.rewindIndex = -1;\n }\n\n _createClass(TokenStream, [{\n key: 'hasTokens',\n value: function hasTokens() {\n return this.index <= this.nodes.length - 1;\n }\n }, {\n key: SYMBOL_MATCH,\n value: function value() {\n if (!this.hasTokens()) return null;\n\n var node = this.nodes[this.index];\n\n for (var i = 0; i < arguments.length; i += 1) {\n var tokenDescriptor = arguments.length <= i ? undefined : arguments[i];\n var value = tokenDescriptor(node);\n if (value !== null) {\n this.index += 1;\n this.lastValue = value;\n return value;\n }\n }\n\n return null;\n }\n }, {\n key: 'matches',\n value: function matches() {\n return this[SYMBOL_MATCH].apply(this, arguments) !== null;\n }\n }, {\n key: 'expect',\n value: function expect() {\n var value = this[SYMBOL_MATCH].apply(this, arguments);\n return value !== null ? value : this.throw();\n }\n }, {\n key: 'matchesFunction',\n value: function matchesFunction() {\n var node = this.nodes[this.index];\n if (node.type !== 'function') return null;\n var value = new TokenStream(node.nodes, node);\n this.index += 1;\n this.lastValue = null;\n return value;\n }\n }, {\n key: 'expectFunction',\n value: function expectFunction() {\n var value = this.matchesFunction();\n return value !== null ? value : this.throw();\n }\n }, {\n key: 'expectEmpty',\n value: function expectEmpty() {\n if (this.hasTokens()) this.throw();\n }\n }, {\n key: 'throw',\n value: function _throw() {\n throw new Error('Unexpected token type: ' + this.nodes[this.index].type);\n }\n }, {\n key: 'saveRewindPoint',\n value: function saveRewindPoint() {\n this.rewindIndex = this.index;\n }\n }, {\n key: 'rewind',\n value: function rewind() {\n if (this.rewindIndex === -1) throw new Error('Internal error');\n this.index = this.rewindIndex;\n this.lastValue = null;\n }\n }]);\n\n return TokenStream;\n}();\n\n/* eslint-disable no-param-reassign */\n// Note if this is wrong, you'll need to change tokenTypes.js too\n\n\nvar numberOrLengthRe = /^([+-]?(?:\\d*\\.)?\\d+(?:[Ee][+-]?\\d+)?)(?:px)?$/i;\nvar boolRe = /^true|false$/i;\nvar nullRe = /^null$/i;\nvar undefinedRe = /^undefined$/i;\n\n// Undocumented export\nvar transformRawValue = function transformRawValue(input) {\n var value = input.trim();\n\n var numberMatch = value.match(numberOrLengthRe);\n if (numberMatch !== null) return Number(numberMatch[1]);\n\n var boolMatch = input.match(boolRe);\n if (boolMatch !== null) return boolMatch[0].toLowerCase() === 'true';\n\n var nullMatch = input.match(nullRe);\n if (nullMatch !== null) return null;\n\n var undefinedMatch = input.match(undefinedRe);\n if (undefinedMatch !== null) return undefined;\n\n return value;\n};\n\nvar baseTransformShorthandValue = function baseTransformShorthandValue(propName, inputValue) {\n var ast = parse__default(inputValue.trim());\n var tokenStream = new TokenStream(ast.nodes);\n return transforms[propName](tokenStream);\n};\n\nvar transformShorthandValue = process.env.NODE_ENV === 'production' ? baseTransformShorthandValue : function (propName, inputValue) {\n try {\n return baseTransformShorthandValue(propName, inputValue);\n } catch (e) {\n throw new Error('Failed to parse declaration \"' + propName + ': ' + inputValue + '\"');\n }\n};\n\nvar getStylesForProperty = function getStylesForProperty(propName, inputValue, allowShorthand) {\n var isRawValue = allowShorthand === false || !(propName in transforms);\n var propValue = isRawValue ? transformRawValue(inputValue) : transformShorthandValue(propName, inputValue.trim());\n\n return propValue && propValue.$merge ? propValue.$merge : _defineProperty({}, propName, propValue);\n};\n\nvar getPropertyName = function getPropertyName(propName) {\n var isCustomProp = /^--\\w+/.test(propName);\n if (isCustomProp) {\n return propName;\n }\n return camelizeStyleName(propName);\n};\n\nvar index = function index(rules) {\n var shorthandBlacklist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return rules.reduce(function (accum, rule) {\n var propertyName = getPropertyName(rule[0]);\n var value = rule[1];\n var allowShorthand = shorthandBlacklist.indexOf(propertyName) === -1;\n return Object.assign(accum, getStylesForProperty(propertyName, value, allowShorthand));\n }, {});\n};\n\nexports.transformRawValue = transformRawValue;\nexports.getStylesForProperty = getStylesForProperty;\nexports.getPropertyName = getPropertyName;\nexports.default = index;\n});\n\nvar transformDeclPairs = unwrapExports(cssToReactNative);\nvar cssToReactNative_1 = cssToReactNative.transformRawValue;\nvar cssToReactNative_2 = cssToReactNative.getStylesForProperty;\nvar cssToReactNative_3 = cssToReactNative.getPropertyName;\n\nvar shallowEqual = function shallowEqual(newValue, oldValue) {\n return newValue === oldValue;\n};\n\nvar simpleIsEqual = function simpleIsEqual(newArgs, lastArgs) {\n return newArgs.length === lastArgs.length && newArgs.every(function (newArg, index) {\n return shallowEqual(newArg, lastArgs[index]);\n });\n};\n\nfunction index (resultFn, isEqual) {\n if (isEqual === void 0) {\n isEqual = simpleIsEqual;\n }\n\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n\n var result = function result() {\n for (var _len = arguments.length, newArgs = new Array(_len), _key = 0; _key < _len; _key++) {\n newArgs[_key] = arguments[_key];\n }\n\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n };\n\n return result;\n}\n\n// \n// Source: https://github.com/garycourt/murmurhash-js/blob/master/murmurhash2_gc.js\nfunction murmurhash(c) {\n for (var e = c.length | 0, a = e | 0, d = 0, b; e >= 4;) {\n b = c.charCodeAt(d) & 255 | (c.charCodeAt(++d) & 255) << 8 | (c.charCodeAt(++d) & 255) << 16 | (c.charCodeAt(++d) & 255) << 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), b ^= b >>> 24, b = 1540483477 * (b & 65535) + ((1540483477 * (b >>> 16) & 65535) << 16), a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16) ^ b, e -= 4, ++d;\n }\n switch (e) {\n case 3:\n a ^= (c.charCodeAt(d + 2) & 255) << 16;\n case 2:\n a ^= (c.charCodeAt(d + 1) & 255) << 8;\n case 1:\n a ^= c.charCodeAt(d) & 255, a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n }\n a ^= a >>> 13;\n a = 1540483477 * (a & 65535) + ((1540483477 * (a >>> 16) & 65535) << 16);\n return (a ^ a >>> 15) >>> 0;\n}\n\n// \n\nfunction getComponentName(target) {\n return (process.env.NODE_ENV !== 'production' ? typeof target === 'string' && target : false) || target.displayName || target.name || 'Component';\n}\n\n// \nfunction isFunction(test) {\n return typeof test === 'function';\n}\n\n// \nfunction isStatelessFunction(test) {\n return typeof test === 'function' && !(test.prototype && test.prototype.isReactComponent);\n}\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n// \nvar isPlainObject = (function (x) {\n return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x.constructor === Object;\n});\n\n// \nfunction isStyledComponent(target) {\n return target && typeof target.styledComponentId === 'string';\n}\n\n// \n\nvar SC_ATTR = typeof process !== 'undefined' && process.env.SC_ATTR || 'data-styled';\n\nvar SC_VERSION_ATTR = 'data-styled-version';\n\nvar SC_STREAM_ATTR = 'data-styled-streamed';\n\nvar IS_BROWSER = typeof window !== 'undefined' && 'HTMLElement' in window;\n\nvar DISABLE_SPEEDY = typeof SC_DISABLE_SPEEDY === 'boolean' && SC_DISABLE_SPEEDY || process.env.NODE_ENV !== 'production';\n\n// \n\n\n/**\n * Parse errors.md and turn it into a simple hash of code: message\n */\nvar ERRORS = process.env.NODE_ENV !== 'production' ? {\n \"1\": \"Cannot create styled-component for component: %s.\\n\\n\",\n \"2\": \"Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\\n\\n- Are you trying to reuse it across renders?\\n- Are you accidentally calling collectStyles twice?\\n\\n\",\n \"3\": \"Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\\n\\n\",\n \"4\": \"The `StyleSheetManager` expects a valid target or sheet prop!\\n\\n- Does this error occur on the client and is your target falsy?\\n- Does this error occur on the server and is the sheet falsy?\\n\\n\",\n \"5\": \"The clone method cannot be used on the client!\\n\\n- Are you running in a client-like environment on the server?\\n- Are you trying to run SSR on the client?\\n\\n\",\n \"6\": \"Trying to insert a new style tag, but the given Node is unmounted!\\n\\n- Are you using a custom target that isn't mounted?\\n- Does your document not have a valid head element?\\n- Have you accidentally removed a style tag manually?\\n\\n\",\n \"7\": \"ThemeProvider: Please return an object from your \\\"theme\\\" prop function, e.g.\\n\\n```js\\ntheme={() => ({})}\\n```\\n\\n\",\n \"8\": \"ThemeProvider: Please make your \\\"theme\\\" prop an object.\\n\\n\",\n \"9\": \"Missing document ``\\n\\n\",\n \"10\": \"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",\n \"11\": \"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",\n \"12\": \"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper (see https://www.styled-components.com/docs/api#css), which ensures the styles are injected correctly.\\n\\n\",\n \"13\": \"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\"\n} : {};\n\n/**\n * super basic version of sprintf\n */\nfunction format() {\n var a = arguments.length <= 0 ? undefined : arguments[0];\n var b = [];\n\n for (var c = 1, len = arguments.length; c < len; c += 1) {\n b.push(arguments.length <= c ? undefined : arguments[c]);\n }\n\n b.forEach(function (d) {\n a = a.replace(/%[a-z]/, d);\n });\n\n return a;\n}\n\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n */\n\nvar StyledComponentsError = function (_Error) {\n inherits(StyledComponentsError, _Error);\n\n function StyledComponentsError(code) {\n classCallCheck(this, StyledComponentsError);\n\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n if (process.env.NODE_ENV === 'production') {\n var _this = possibleConstructorReturn(this, _Error.call(this, 'An error occurred. See https://github.com/styled-components/styled-components/blob/master/packages/styled-components/src/utils/errors.md#' + code + ' for more information. ' + (interpolations ? 'Additional arguments: ' + interpolations.join(', ') : '')));\n } else {\n var _this = possibleConstructorReturn(this, _Error.call(this, format.apply(undefined, [ERRORS[code]].concat(interpolations)).trim()));\n }\n return possibleConstructorReturn(_this);\n }\n\n return StyledComponentsError;\n}(Error);\n\n// \nvar SC_COMPONENT_ID = /^[^\\S\\n]*?\\/\\* sc-component-id:\\s*(\\S+)\\s+\\*\\//gm;\n\nvar extractComps = (function (maybeCSS) {\n var css = '' + (maybeCSS || ''); // Definitely a string, and a clone\n var existingComponents = [];\n css.replace(SC_COMPONENT_ID, function (match, componentId, matchIndex) {\n existingComponents.push({ componentId: componentId, matchIndex: matchIndex });\n return match;\n });\n return existingComponents.map(function (_ref, i) {\n var componentId = _ref.componentId,\n matchIndex = _ref.matchIndex;\n\n var nextComp = existingComponents[i + 1];\n var cssFromDOM = nextComp ? css.slice(matchIndex, nextComp.matchIndex) : css.slice(matchIndex);\n return { componentId: componentId, cssFromDOM: cssFromDOM };\n });\n});\n\n// \n\n// NOTE: This stylis instance is only used to split rules from SSR'd style tags\nvar stylisSplitter = new stylis_min({\n global: false,\n cascade: true,\n keyframe: false,\n prefix: false,\n compress: false,\n semicolon: true\n});\n\nvar stylis = new stylis_min({\n global: false,\n cascade: true,\n keyframe: false,\n prefix: true,\n compress: false,\n semicolon: false // NOTE: This means \"autocomplete missing semicolons\"\n});\n\n// Wrap `insertRulePlugin to build a list of rules,\n// and then make our own plugin to return the rules. This\n// makes it easier to hook into the existing SSR architecture\n\nvar parsingRules = [];\n\n// eslint-disable-next-line consistent-return\nvar returnRulesPlugin = function returnRulesPlugin(context) {\n if (context === -2) {\n var parsedRules = parsingRules;\n parsingRules = [];\n return parsedRules;\n }\n};\n\nvar parseRulesPlugin = stylisRuleSheet(function (rule) {\n parsingRules.push(rule);\n});\n\nvar _componentId = void 0;\nvar _selector = void 0;\nvar _selectorRegexp = void 0;\n\nvar selfReferenceReplacer = function selfReferenceReplacer(match, offset, string) {\n if (\n // the first self-ref is always untouched\n offset > 0 &&\n // there should be at least two self-refs to do a replacement (.b > .b)\n string.slice(0, offset).indexOf(_selector) !== -1 &&\n // no consecutive self refs (.b.b); that is a precedence boost and treated differently\n string.slice(offset - _selector.length, offset) !== _selector) {\n return '.' + _componentId;\n }\n\n return match;\n};\n\n/**\n * When writing a style like\n *\n * & + & {\n * color: red;\n * }\n *\n * The second ampersand should be a reference to the static component class. stylis\n * has no knowledge of static class so we have to intelligently replace the base selector.\n */\nvar selfReferenceReplacementPlugin = function selfReferenceReplacementPlugin(context, _, selectors) {\n if (context === 2 && selectors.length && selectors[0].lastIndexOf(_selector) > 0) {\n // eslint-disable-next-line no-param-reassign\n selectors[0] = selectors[0].replace(_selectorRegexp, selfReferenceReplacer);\n }\n};\n\nstylis.use([selfReferenceReplacementPlugin, parseRulesPlugin, returnRulesPlugin]);\nstylisSplitter.use([parseRulesPlugin, returnRulesPlugin]);\n\nvar splitByRules = function splitByRules(css) {\n return stylisSplitter('', css);\n};\n\n// \n/* eslint-disable camelcase, no-undef */\n\nvar getNonce = (function () {\n return typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n});\n\n// \n/* These are helpers for the StyleTags to keep track of the injected\n * rule names for each (component) ID that they're keeping track of.\n * They're crucial for detecting whether a name has already been\n * injected.\n * (This excludes rehydrated names) */\n\n/* adds a new ID:name pairing to a names dictionary */\nvar addNameForId = function addNameForId(names, id, name) {\n if (name) {\n // eslint-disable-next-line no-param-reassign\n var namesForId = names[id] || (names[id] = Object.create(null));\n namesForId[name] = true;\n }\n};\n\n/* resets an ID entirely by overwriting it in the dictionary */\nvar resetIdNames = function resetIdNames(names, id) {\n // eslint-disable-next-line no-param-reassign\n names[id] = Object.create(null);\n};\n\n/* factory for a names dictionary checking the existance of an ID:name pairing */\nvar hasNameForId = function hasNameForId(names) {\n return function (id, name) {\n return names[id] !== undefined && names[id][name];\n };\n};\n\n/* stringifies names for the html/element output */\nvar stringifyNames = function stringifyNames(names) {\n var str = '';\n // eslint-disable-next-line guard-for-in\n for (var id in names) {\n str += Object.keys(names[id]).join(' ') + ' ';\n }\n return str.trim();\n};\n\n/* clones the nested names dictionary */\nvar cloneNames = function cloneNames(names) {\n var clone = Object.create(null);\n // eslint-disable-next-line guard-for-in\n for (var id in names) {\n clone[id] = _extends({}, names[id]);\n }\n return clone;\n};\n\n// \n\n/* These are helpers that deal with the insertRule (aka speedy) API\n * They are used in the StyleTags and specifically the speedy tag\n */\n\n/* retrieve a sheet for a given style tag */\nvar sheetForTag = function sheetForTag(tag) {\n // $FlowFixMe\n if (tag.sheet) return tag.sheet;\n\n /* Firefox quirk requires us to step through all stylesheets to find one owned by the given tag */\n var size = document.styleSheets.length;\n for (var i = 0; i < size; i += 1) {\n var sheet = document.styleSheets[i];\n // $FlowFixMe\n if (sheet.ownerNode === tag) return sheet;\n }\n\n /* we should always be able to find a tag */\n throw new StyledComponentsError(10);\n};\n\n/* insert a rule safely and return whether it was actually injected */\nvar safeInsertRule = function safeInsertRule(sheet, cssRule, index) {\n /* abort early if cssRule string is falsy */\n if (!cssRule) return false;\n\n var maxIndex = sheet.cssRules.length;\n\n try {\n /* use insertRule and cap passed index with maxIndex (no of cssRules) */\n sheet.insertRule(cssRule, index <= maxIndex ? index : maxIndex);\n } catch (err) {\n /* any error indicates an invalid rule */\n return false;\n }\n\n return true;\n};\n\n/* deletes `size` rules starting from `removalIndex` */\nvar deleteRules = function deleteRules(sheet, removalIndex, size) {\n var lowerBound = removalIndex - size;\n for (var i = removalIndex; i > lowerBound; i -= 1) {\n sheet.deleteRule(i);\n }\n};\n\n// \n\n/* this marker separates component styles and is important for rehydration */\nvar makeTextMarker = function makeTextMarker(id) {\n return '\\n/* sc-component-id: ' + id + ' */\\n';\n};\n\n/* add up all numbers in array up until and including the index */\nvar addUpUntilIndex = function addUpUntilIndex(sizes, index) {\n var totalUpToIndex = 0;\n for (var i = 0; i <= index; i += 1) {\n totalUpToIndex += sizes[i];\n }\n\n return totalUpToIndex;\n};\n\n/* create a new style tag after lastEl */\nvar makeStyleTag = function makeStyleTag(target, tagEl, insertBefore) {\n var el = document.createElement('style');\n el.setAttribute(SC_ATTR, '');\n el.setAttribute(SC_VERSION_ATTR, \"4.2.0\");\n\n var nonce = getNonce();\n if (nonce) {\n el.setAttribute('nonce', nonce);\n }\n\n /* Work around insertRule quirk in EdgeHTML */\n el.appendChild(document.createTextNode(''));\n\n if (target && !tagEl) {\n /* Append to target when no previous element was passed */\n target.appendChild(el);\n } else {\n if (!tagEl || !target || !tagEl.parentNode) {\n throw new StyledComponentsError(6);\n }\n\n /* Insert new style tag after the previous one */\n tagEl.parentNode.insertBefore(el, insertBefore ? tagEl : tagEl.nextSibling);\n }\n\n return el;\n};\n\n/* takes a css factory function and outputs an html styled tag factory */\nvar wrapAsHtmlTag = function wrapAsHtmlTag(css, names) {\n return function (additionalAttrs) {\n var nonce = getNonce();\n var attrs = [nonce && 'nonce=\"' + nonce + '\"', SC_ATTR + '=\"' + stringifyNames(names) + '\"', SC_VERSION_ATTR + '=\"' + \"4.2.0\" + '\"', additionalAttrs];\n\n var htmlAttr = attrs.filter(Boolean).join(' ');\n return '';\n };\n};\n\n/* takes a css factory function and outputs an element factory */\nvar wrapAsElement = function wrapAsElement(css, names) {\n return function () {\n var _props;\n\n var props = (_props = {}, _props[SC_ATTR] = stringifyNames(names), _props[SC_VERSION_ATTR] = \"4.2.0\", _props);\n\n var nonce = getNonce();\n if (nonce) {\n // $FlowFixMe\n props.nonce = nonce;\n }\n\n // eslint-disable-next-line react/no-danger\n return React.createElement('style', _extends({}, props, { dangerouslySetInnerHTML: { __html: css() } }));\n };\n};\n\nvar getIdsFromMarkersFactory = function getIdsFromMarkersFactory(markers) {\n return function () {\n return Object.keys(markers);\n };\n};\n\n/* speedy tags utilise insertRule */\nvar makeSpeedyTag = function makeSpeedyTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n var sizes = [];\n\n var extractImport = getImportRuleTag !== undefined;\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = sizes.length;\n sizes.push(0);\n resetIdNames(names, id);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var sheet = sheetForTag(el);\n var insertIndex = addUpUntilIndex(sizes, marker);\n\n var injectedRules = 0;\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var cssRule = cssRules[i];\n var mayHaveImport = extractImport; /* @import rules are reordered to appear first */\n if (mayHaveImport && cssRule.indexOf('@import') !== -1) {\n importRules.push(cssRule);\n } else if (safeInsertRule(sheet, cssRule, insertIndex + injectedRules)) {\n mayHaveImport = false;\n injectedRules += 1;\n }\n }\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n\n sizes[marker] += injectedRules; /* add up no of injected rules */\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n\n var size = sizes[marker];\n var sheet = sheetForTag(el);\n var removalIndex = addUpUntilIndex(sizes, marker) - 1;\n deleteRules(sheet, removalIndex, size);\n sizes[marker] = 0;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var _sheetForTag = sheetForTag(el),\n cssRules = _sheetForTag.cssRules;\n\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += makeTextMarker(id);\n var marker = markers[id];\n var end = addUpUntilIndex(sizes, marker);\n var size = sizes[marker];\n for (var i = end - size; i < end; i += 1) {\n var rule = cssRules[i];\n if (rule !== undefined) {\n str += rule.cssText;\n }\n }\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeTextNode = function makeTextNode(id) {\n return document.createTextNode(makeTextMarker(id));\n};\n\nvar makeBrowserTag = function makeBrowserTag(el, getImportRuleTag) {\n var names = Object.create(null);\n var markers = Object.create(null);\n\n var extractImport = getImportRuleTag !== undefined;\n\n /* indicates whether getImportRuleTag was called */\n var usedImportRuleTag = false;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n markers[id] = makeTextNode(id);\n el.appendChild(markers[id]);\n names[id] = Object.create(null);\n\n return markers[id];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n var importRules = [];\n var cssRulesSize = cssRules.length;\n\n for (var i = 0; i < cssRulesSize; i += 1) {\n var rule = cssRules[i];\n var mayHaveImport = extractImport;\n if (mayHaveImport && rule.indexOf('@import') !== -1) {\n importRules.push(rule);\n } else {\n mayHaveImport = false;\n var separator = i === cssRulesSize - 1 ? '' : ' ';\n marker.appendData('' + rule + separator);\n }\n }\n\n addNameForId(names, id, name);\n\n if (extractImport && importRules.length > 0) {\n usedImportRuleTag = true;\n // $FlowFixMe\n getImportRuleTag().insertRules(id + '-import', importRules);\n }\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n\n /* create new empty text node and replace the current one */\n var newMarker = makeTextNode(id);\n el.replaceChild(newMarker, marker);\n markers[id] = newMarker;\n resetIdNames(names, id);\n\n if (extractImport && usedImportRuleTag) {\n // $FlowFixMe\n getImportRuleTag().removeRules(id + '-import');\n }\n };\n\n var css = function css() {\n var str = '';\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n str += markers[id].data;\n }\n\n return str;\n };\n\n return {\n clone: function clone() {\n throw new StyledComponentsError(5);\n },\n\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: el,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n};\n\nvar makeServerTag = function makeServerTag(namesArg, markersArg) {\n var names = namesArg === undefined ? Object.create(null) : namesArg;\n var markers = markersArg === undefined ? Object.create(null) : markersArg;\n\n var insertMarker = function insertMarker(id) {\n var prev = markers[id];\n if (prev !== undefined) {\n return prev;\n }\n\n return markers[id] = [''];\n };\n\n var insertRules = function insertRules(id, cssRules, name) {\n var marker = insertMarker(id);\n marker[0] += cssRules.join(' ');\n addNameForId(names, id, name);\n };\n\n var removeRules = function removeRules(id) {\n var marker = markers[id];\n if (marker === undefined) return;\n marker[0] = '';\n resetIdNames(names, id);\n };\n\n var css = function css() {\n var str = '';\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n var cssForId = markers[id][0];\n if (cssForId) {\n str += makeTextMarker(id) + cssForId;\n }\n }\n return str;\n };\n\n var clone = function clone() {\n var namesClone = cloneNames(names);\n var markersClone = Object.create(null);\n\n // eslint-disable-next-line guard-for-in\n for (var id in markers) {\n markersClone[id] = [markers[id][0]];\n }\n\n return makeServerTag(namesClone, markersClone);\n };\n\n var tag = {\n clone: clone,\n css: css,\n getIds: getIdsFromMarkersFactory(markers),\n hasNameForId: hasNameForId(names),\n insertMarker: insertMarker,\n insertRules: insertRules,\n removeRules: removeRules,\n sealed: false,\n styleTag: null,\n toElement: wrapAsElement(css, names),\n toHTML: wrapAsHtmlTag(css, names)\n };\n\n return tag;\n};\n\nvar makeTag = function makeTag(target, tagEl, forceServer, insertBefore, getImportRuleTag) {\n if (IS_BROWSER && !forceServer) {\n var el = makeStyleTag(target, tagEl, insertBefore);\n\n if (DISABLE_SPEEDY) {\n return makeBrowserTag(el, getImportRuleTag);\n } else {\n return makeSpeedyTag(el, getImportRuleTag);\n }\n }\n\n return makeServerTag();\n};\n\nvar rehydrate = function rehydrate(tag, els, extracted) {\n /* add all extracted components to the new tag */\n for (var i = 0, len = extracted.length; i < len; i += 1) {\n var _extracted$i = extracted[i],\n componentId = _extracted$i.componentId,\n cssFromDOM = _extracted$i.cssFromDOM;\n\n var cssRules = splitByRules(cssFromDOM);\n tag.insertRules(componentId, cssRules);\n }\n\n /* remove old HTMLStyleElements, since they have been rehydrated */\n for (var _i = 0, _len = els.length; _i < _len; _i += 1) {\n var el = els[_i];\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n }\n};\n\n// \n\nvar SPLIT_REGEX = /\\s+/;\n\n/* determine the maximum number of components before tags are sharded */\nvar MAX_SIZE = void 0;\nif (IS_BROWSER) {\n /* in speedy mode we can keep a lot more rules in a sheet before a slowdown can be expected */\n MAX_SIZE = DISABLE_SPEEDY ? 40 : 1000;\n} else {\n /* for servers we do not need to shard at all */\n MAX_SIZE = -1;\n}\n\nvar sheetRunningId = 0;\nvar master = void 0;\n\nvar StyleSheet = function () {\n\n /* a map from ids to tags */\n\n /* deferred rules for a given id */\n\n /* this is used for not reinjecting rules via hasNameForId() */\n\n /* when rules for an id are removed using remove() we have to ignore rehydratedNames for it */\n\n /* a list of tags belonging to this StyleSheet */\n\n /* a tag for import rules */\n\n /* current capacity until a new tag must be created */\n\n /* children (aka clones) of this StyleSheet inheriting all and future injections */\n\n function StyleSheet() {\n var _this = this;\n\n var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : IS_BROWSER ? document.head : null;\n var forceServer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n classCallCheck(this, StyleSheet);\n\n this.getImportRuleTag = function () {\n var importRuleTag = _this.importRuleTag;\n\n if (importRuleTag !== undefined) {\n return importRuleTag;\n }\n\n var firstTag = _this.tags[0];\n var insertBefore = true;\n\n return _this.importRuleTag = makeTag(_this.target, firstTag ? firstTag.styleTag : null, _this.forceServer, insertBefore);\n };\n\n sheetRunningId += 1;\n this.id = sheetRunningId;\n this.forceServer = forceServer;\n this.target = forceServer ? null : target;\n this.tagMap = {};\n this.deferred = {};\n this.rehydratedNames = {};\n this.ignoreRehydratedNames = {};\n this.tags = [];\n this.capacity = 1;\n this.clones = [];\n }\n\n /* rehydrate all SSR'd style tags */\n\n\n StyleSheet.prototype.rehydrate = function rehydrate$$1() {\n if (!IS_BROWSER || this.forceServer) return this;\n\n var els = [];\n var extracted = [];\n var isStreamed = false;\n\n /* retrieve all of our SSR style elements from the DOM */\n var nodes = document.querySelectorAll('style[' + SC_ATTR + '][' + SC_VERSION_ATTR + '=\"' + \"4.2.0\" + '\"]');\n\n var nodesSize = nodes.length;\n\n /* abort rehydration if no previous style tags were found */\n if (!nodesSize) return this;\n\n for (var i = 0; i < nodesSize; i += 1) {\n var el = nodes[i];\n\n /* check if style tag is a streamed tag */\n if (!isStreamed) isStreamed = !!el.getAttribute(SC_STREAM_ATTR);\n\n /* retrieve all component names */\n var elNames = (el.getAttribute(SC_ATTR) || '').trim().split(SPLIT_REGEX);\n var elNamesSize = elNames.length;\n for (var j = 0, name; j < elNamesSize; j += 1) {\n name = elNames[j];\n /* add rehydrated name to sheet to avoid re-adding styles */\n this.rehydratedNames[name] = true;\n }\n\n /* extract all components and their CSS */\n extracted.push.apply(extracted, extractComps(el.textContent));\n\n /* store original HTMLStyleElement */\n els.push(el);\n }\n\n /* abort rehydration if nothing was extracted */\n var extractedSize = extracted.length;\n if (!extractedSize) return this;\n\n /* create a tag to be used for rehydration */\n var tag = this.makeTag(null);\n\n rehydrate(tag, els, extracted);\n\n /* reset capacity and adjust MAX_SIZE by the initial size of the rehydration */\n this.capacity = Math.max(1, MAX_SIZE - extractedSize);\n this.tags.push(tag);\n\n /* retrieve all component ids */\n for (var _j = 0; _j < extractedSize; _j += 1) {\n this.tagMap[extracted[_j].componentId] = tag;\n }\n\n return this;\n };\n\n /* retrieve a \"master\" instance of StyleSheet which is typically used when no other is available\n * The master StyleSheet is targeted by createGlobalStyle, keyframes, and components outside of any\n * StyleSheetManager's context */\n\n\n /* reset the internal \"master\" instance */\n StyleSheet.reset = function reset() {\n var forceServer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n master = new StyleSheet(undefined, forceServer).rehydrate();\n };\n\n /* adds \"children\" to the StyleSheet that inherit all of the parents' rules\n * while their own rules do not affect the parent */\n\n\n StyleSheet.prototype.clone = function clone() {\n var sheet = new StyleSheet(this.target, this.forceServer);\n\n /* add to clone array */\n this.clones.push(sheet);\n\n /* clone all tags */\n sheet.tags = this.tags.map(function (tag) {\n var ids = tag.getIds();\n var newTag = tag.clone();\n\n /* reconstruct tagMap */\n for (var i = 0; i < ids.length; i += 1) {\n sheet.tagMap[ids[i]] = newTag;\n }\n\n return newTag;\n });\n\n /* clone other maps */\n sheet.rehydratedNames = _extends({}, this.rehydratedNames);\n sheet.deferred = _extends({}, this.deferred);\n\n return sheet;\n };\n\n /* force StyleSheet to create a new tag on the next injection */\n\n\n StyleSheet.prototype.sealAllTags = function sealAllTags() {\n this.capacity = 1;\n\n this.tags.forEach(function (tag) {\n // eslint-disable-next-line no-param-reassign\n tag.sealed = true;\n });\n };\n\n StyleSheet.prototype.makeTag = function makeTag$$1(tag) {\n var lastEl = tag ? tag.styleTag : null;\n var insertBefore = false;\n\n return makeTag(this.target, lastEl, this.forceServer, insertBefore, this.getImportRuleTag);\n };\n\n /* get a tag for a given componentId, assign the componentId to one, or shard */\n StyleSheet.prototype.getTagForId = function getTagForId(id) {\n /* simply return a tag, when the componentId was already assigned one */\n var prev = this.tagMap[id];\n if (prev !== undefined && !prev.sealed) {\n return prev;\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n /* shard (create a new tag) if the tag is exhausted (See MAX_SIZE) */\n this.capacity -= 1;\n\n if (this.capacity === 0) {\n this.capacity = MAX_SIZE;\n tag = this.makeTag(tag);\n this.tags.push(tag);\n }\n\n return this.tagMap[id] = tag;\n };\n\n /* mainly for createGlobalStyle to check for its id */\n\n\n StyleSheet.prototype.hasId = function hasId(id) {\n return this.tagMap[id] !== undefined;\n };\n\n /* caching layer checking id+name to already have a corresponding tag and injected rules */\n\n\n StyleSheet.prototype.hasNameForId = function hasNameForId(id, name) {\n /* exception for rehydrated names which are checked separately */\n if (this.ignoreRehydratedNames[id] === undefined && this.rehydratedNames[name]) {\n return true;\n }\n\n var tag = this.tagMap[id];\n return tag !== undefined && tag.hasNameForId(id, name);\n };\n\n /* registers a componentId and registers it on its tag */\n\n\n StyleSheet.prototype.deferredInject = function deferredInject(id, cssRules) {\n /* don't inject when the id is already registered */\n if (this.tagMap[id] !== undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].deferredInject(id, cssRules);\n }\n\n this.getTagForId(id).insertMarker(id);\n this.deferred[id] = cssRules;\n };\n\n /* injects rules for a given id with a name that will need to be cached */\n\n\n StyleSheet.prototype.inject = function inject(id, cssRules, name) {\n var clones = this.clones;\n\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].inject(id, cssRules, name);\n }\n\n var tag = this.getTagForId(id);\n\n /* add deferred rules for component */\n if (this.deferred[id] !== undefined) {\n // Combine passed cssRules with previously deferred CSS rules\n // NOTE: We cannot mutate the deferred array itself as all clones\n // do the same (see clones[i].inject)\n var rules = this.deferred[id].concat(cssRules);\n tag.insertRules(id, rules, name);\n\n this.deferred[id] = undefined;\n } else {\n tag.insertRules(id, cssRules, name);\n }\n };\n\n /* removes all rules for a given id, which doesn't remove its marker but resets it */\n\n\n StyleSheet.prototype.remove = function remove(id) {\n var tag = this.tagMap[id];\n if (tag === undefined) return;\n\n var clones = this.clones;\n\n for (var i = 0; i < clones.length; i += 1) {\n clones[i].remove(id);\n }\n\n /* remove all rules from the tag */\n tag.removeRules(id);\n\n /* ignore possible rehydrated names */\n this.ignoreRehydratedNames[id] = true;\n\n /* delete possible deferred rules */\n this.deferred[id] = undefined;\n };\n\n StyleSheet.prototype.toHTML = function toHTML() {\n return this.tags.map(function (tag) {\n return tag.toHTML();\n }).join('');\n };\n\n StyleSheet.prototype.toReactElements = function toReactElements() {\n var id = this.id;\n\n\n return this.tags.map(function (tag, i) {\n var key = 'sc-' + id + '-' + i;\n return cloneElement(tag.toElement(), { key: key });\n });\n };\n\n createClass(StyleSheet, null, [{\n key: 'master',\n get: function get$$1() {\n return master || (master = new StyleSheet().rehydrate());\n }\n\n /* NOTE: This is just for backwards-compatibility with jest-styled-components */\n\n }, {\n key: 'instance',\n get: function get$$1() {\n return StyleSheet.master;\n }\n }]);\n return StyleSheet;\n}();\n\n// \n\nvar Keyframes = function () {\n function Keyframes(name, rules) {\n var _this = this;\n\n classCallCheck(this, Keyframes);\n\n this.inject = function (styleSheet) {\n if (!styleSheet.hasNameForId(_this.id, _this.name)) {\n styleSheet.inject(_this.id, _this.rules, _this.name);\n }\n };\n\n this.toString = function () {\n throw new StyledComponentsError(12, String(_this.name));\n };\n\n this.name = name;\n this.rules = rules;\n\n this.id = 'sc-keyframes-' + name;\n }\n\n Keyframes.prototype.getName = function getName() {\n return this.name;\n };\n\n return Keyframes;\n}();\n\n// \n\n/**\n * inlined version of\n * https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/hyphenateStyleName.js\n */\n\nvar uppercasePattern = /([A-Z])/g;\nvar msPattern = /^ms-/;\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n return string.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern, '-ms-');\n}\n\n// \n\n// Taken from https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/shared/dangerousStyleValue.js\nfunction addUnitIfNeeded(name, value) {\n // https://github.com/amilajack/eslint-plugin-flowtype-errors/issues/133\n // $FlowFixMe\n if (value == null || typeof value === 'boolean' || value === '') {\n return '';\n }\n\n if (typeof value === 'number' && value !== 0 && !(name in unitlessKeys)) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return String(value).trim();\n}\n\n// \n\n/**\n * It's falsish not falsy because 0 is allowed.\n */\nvar isFalsish = function isFalsish(chunk) {\n return chunk === undefined || chunk === null || chunk === false || chunk === '';\n};\n\nvar objToCss = function objToCss(obj, prevKey) {\n var css = Object.keys(obj).filter(function (key) {\n return !isFalsish(obj[key]);\n }).map(function (key) {\n if (isPlainObject(obj[key])) return objToCss(obj[key], key);\n return hyphenateStyleName(key) + ': ' + addUnitIfNeeded(key, obj[key]) + ';';\n }).join(' ');\n return prevKey ? prevKey + ' {\\n ' + css + '\\n}' : css;\n};\n\nfunction flatten(chunk, executionContext, styleSheet) {\n if (Array.isArray(chunk)) {\n var ruleSet = [];\n\n for (var i = 0, len = chunk.length, result; i < len; i += 1) {\n result = flatten(chunk[i], executionContext, styleSheet);\n\n if (result === null) continue;else if (Array.isArray(result)) ruleSet.push.apply(ruleSet, result);else ruleSet.push(result);\n }\n\n return ruleSet;\n }\n\n if (isFalsish(chunk)) {\n return null;\n }\n\n /* Handle other components */\n if (isStyledComponent(chunk)) {\n return '.' + chunk.styledComponentId;\n }\n\n /* Either execute or defer the function */\n if (isFunction(chunk)) {\n if (isStatelessFunction(chunk) && executionContext) {\n var _result = chunk(executionContext);\n\n if (process.env.NODE_ENV !== 'production' && isElement(_result)) {\n // eslint-disable-next-line no-console\n console.warn(getComponentName(chunk) + ' is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.');\n }\n\n return flatten(_result, executionContext, styleSheet);\n } else return chunk;\n }\n\n if (chunk instanceof Keyframes) {\n if (styleSheet) {\n chunk.inject(styleSheet);\n return chunk.getName();\n } else return chunk;\n }\n\n /* Handle objects */\n return isPlainObject(chunk) ? objToCss(chunk) : chunk.toString();\n}\n\n// \nvar printed = {};\n\nfunction warnOnce(message) {\n if (printed[message]) return;\n printed[message] = true;\n\n if (typeof console !== 'undefined' && console.warn) console.warn(message);\n}\n\n// \nvar SINGLE_QUOTE = \"'\".charCodeAt(0);\nvar DOUBLE_QUOTE = '\"'.charCodeAt(0);\nvar BACKSLASH = '\\\\'.charCodeAt(0);\nvar SLASH = '/'.charCodeAt(0);\nvar NEWLINE = '\\n'.charCodeAt(0);\nvar SPACE = ' '.charCodeAt(0);\nvar FEED = '\\f'.charCodeAt(0);\nvar TAB = '\\t'.charCodeAt(0);\nvar CR = '\\r'.charCodeAt(0);\nvar OPEN_SQUARE = '['.charCodeAt(0);\nvar CLOSE_SQUARE = ']'.charCodeAt(0);\nvar OPEN_PARENTHESES = '('.charCodeAt(0);\nvar CLOSE_PARENTHESES = ')'.charCodeAt(0);\nvar OPEN_CURLY = '{'.charCodeAt(0);\nvar CLOSE_CURLY = '}'.charCodeAt(0);\nvar SEMICOLON = ';'.charCodeAt(0);\nvar ASTERISK = '*'.charCodeAt(0);\nvar COLON = ':'.charCodeAt(0);\nvar AT = '@'.charCodeAt(0);\n\nvar RE_AT_END = /[ \\n\\t\\r\\f\\{\\(\\)'\"\\\\;/\\[\\]#]/g;\nvar RE_WORD_END = /[ \\n\\t\\r\\f\\(\\)\\{\\}:;@!'\"\\\\\\]\\[#]|\\/(?=\\*)/g;\nvar RE_BAD_BRACKET = /.[\\\\\\/\\(\"'\\n]/;\n\nfunction tokenize(input) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var tokens = [];\n var css = input.css.valueOf();\n\n var ignore = options.ignoreErrors;\n\n var code = void 0,\n next = void 0,\n quote = void 0,\n lines = void 0,\n last = void 0,\n content = void 0,\n escape = void 0,\n nextLine = void 0,\n nextOffset = void 0,\n escaped = void 0,\n escapePos = void 0,\n prev = void 0,\n n = void 0;\n\n var length = css.length;\n var offset = -1;\n var line = 1;\n var pos = 0;\n\n function unclosed(what) {\n throw input.error('Unclosed ' + what, line, pos - offset);\n }\n\n while (pos < length) {\n code = css.charCodeAt(pos);\n\n if (code === NEWLINE || code === FEED || code === CR && css.charCodeAt(pos + 1) !== NEWLINE) {\n offset = pos;\n line += 1;\n }\n\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED:\n next = pos;\n do {\n next += 1;\n code = css.charCodeAt(next);\n if (code === NEWLINE) {\n offset = next;\n line += 1;\n }\n } while (code === SPACE || code === NEWLINE || code === TAB || code === CR || code === FEED);\n\n tokens.push(['space', css.slice(pos, next)]);\n pos = next - 1;\n break;\n\n case OPEN_SQUARE:\n tokens.push(['[', '[', line, pos - offset]);\n break;\n\n case CLOSE_SQUARE:\n tokens.push([']', ']', line, pos - offset]);\n break;\n\n case OPEN_CURLY:\n tokens.push(['{', '{', line, pos - offset]);\n break;\n\n case CLOSE_CURLY:\n tokens.push(['}', '}', line, pos - offset]);\n break;\n\n case COLON:\n tokens.push([':', ':', line, pos - offset]);\n break;\n\n case SEMICOLON:\n tokens.push([';', ';', line, pos - offset]);\n break;\n\n case OPEN_PARENTHESES:\n prev = tokens.length ? tokens[tokens.length - 1][1] : '';\n n = css.charCodeAt(pos + 1);\n if (prev === 'url' && n !== SINGLE_QUOTE && n !== DOUBLE_QUOTE && n !== SPACE && n !== NEWLINE && n !== TAB && n !== FEED && n !== CR) {\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(')', next + 1);\n if (next === -1) {\n if (ignore) {\n next = pos;\n break;\n } else {\n unclosed('bracket');\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n\n tokens.push(['brackets', css.slice(pos, next + 1), line, pos - offset, line, next - offset]);\n pos = next;\n } else {\n next = css.indexOf(')', pos + 1);\n content = css.slice(pos, next + 1);\n\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n tokens.push(['(', '(', line, pos - offset]);\n } else {\n tokens.push(['brackets', content, line, pos - offset, line, next - offset]);\n pos = next;\n }\n }\n\n break;\n\n case CLOSE_PARENTHESES:\n tokens.push([')', ')', line, pos - offset]);\n break;\n\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE:\n quote = code === SINGLE_QUOTE ? \"'\" : '\"';\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n if (next === -1) {\n if (ignore) {\n next = pos + 1;\n break;\n } else {\n unclosed('quote');\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n\n content = css.slice(pos, next + 1);\n lines = content.split('\\n');\n last = lines.length - 1;\n\n if (last > 0) {\n nextLine = line + last;\n nextOffset = next - lines[last].length;\n } else {\n nextLine = line;\n nextOffset = offset;\n }\n\n tokens.push(['string', css.slice(pos, next + 1), line, pos - offset, nextLine, next - nextOffset]);\n\n offset = nextOffset;\n line = nextLine;\n pos = next;\n break;\n\n case AT:\n RE_AT_END.lastIndex = pos + 1;\n RE_AT_END.test(css);\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_AT_END.lastIndex - 2;\n }\n tokens.push(['at-word', css.slice(pos, next + 1), line, pos - offset, line, next - offset]);\n pos = next;\n break;\n\n case BACKSLASH:\n next = pos;\n escape = true;\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1;\n escape = !escape;\n }\n code = css.charCodeAt(next + 1);\n if (escape && code !== SLASH && code !== SPACE && code !== NEWLINE && code !== TAB && code !== CR && code !== FEED) {\n next += 1;\n }\n tokens.push(['word', css.slice(pos, next + 1), line, pos - offset, line, next - offset]);\n pos = next;\n break;\n\n default:\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf('*/', pos + 2) + 1;\n if (next === 0) {\n if (ignore) {\n next = css.length;\n } else {\n unclosed('comment');\n }\n }\n\n content = css.slice(pos, next + 1);\n lines = content.split('\\n');\n last = lines.length - 1;\n\n if (last > 0) {\n nextLine = line + last;\n nextOffset = next - lines[last].length;\n } else {\n nextLine = line;\n nextOffset = offset;\n }\n\n tokens.push(['comment', content, line, pos - offset, nextLine, next - nextOffset]);\n\n offset = nextOffset;\n line = nextLine;\n pos = next;\n } else {\n RE_WORD_END.lastIndex = pos + 1;\n RE_WORD_END.test(css);\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_WORD_END.lastIndex - 2;\n }\n\n tokens.push(['word', css.slice(pos, next + 1), line, pos - offset, line, next - offset]);\n pos = next;\n }\n\n break;\n }\n\n pos++;\n }\n\n return tokens;\n}\n\n// \n\nvar HIGHLIGHT_THEME = {\n brackets: [36, 39], // cyan\n string: [31, 39], // red\n 'at-word': [31, 39], // red\n comment: [90, 39], // gray\n '{': [32, 39], // green\n '}': [32, 39], // green\n ':': [1, 22], // bold\n ';': [1, 22], // bold\n '(': [1, 22], // bold\n ')': [1, 22] // bold\n};\n\nfunction code(color) {\n return '\\x1B[' + color + 'm';\n}\n\nfunction terminalHighlight(css) {\n var tokens = tokenize(new Input(css), { ignoreErrors: true });\n var result = [];\n tokens.forEach(function (token) {\n var color = HIGHLIGHT_THEME[token[0]];\n if (color) {\n result.push(token[1].split(/\\r?\\n/).map(function (i) {\n return code(color[0]) + i + code(color[1]);\n }).join('\\n'));\n } else {\n result.push(token[1]);\n }\n });\n return result.join('');\n}\n\n// \n\n/**\n * The CSS parser throws this error for broken CSS.\n *\n * Custom parsers can throw this error for broken custom syntax using\n * the {@link Node#error} method.\n *\n * PostCSS will use the input source map to detect the original error location.\n * If you wrote a Sass file, compiled it to CSS and then parsed it with PostCSS,\n * PostCSS will show the original position in the Sass file.\n *\n * If you need the position in the PostCSS input\n * (e.g., to debug the previous compiler), use `error.input.file`.\n *\n * @example\n * // Catching and checking syntax error\n * try {\n * postcss.parse('a{')\n * } catch (error) {\n * if ( error.name === 'CssSyntaxError' ) {\n * error //=> CssSyntaxError\n * }\n * }\n *\n * @example\n * // Raising error from plugin\n * throw node.error('Unknown variable', { plugin: 'postcss-vars' });\n */\n\nvar CssSyntaxError = function () {\n /**\n * @param {string} message - error message\n * @param {number} [line] - source line of the error\n * @param {number} [column] - source column of the error\n * @param {string} [source] - source code of the broken file\n * @param {string} [file] - absolute path to the broken file\n * @param {string} [plugin] - PostCSS plugin name, if error came from plugin\n */\n function CssSyntaxError(message, line, column, source, file, plugin) {\n classCallCheck(this, CssSyntaxError);\n\n /**\n * @member {string} - Always equal to `'CssSyntaxError'`. You should\n * always check error type\n * by `error.name === 'CssSyntaxError'` instead of\n * `error instanceof CssSyntaxError`, because\n * npm could have several PostCSS versions.\n *\n * @example\n * if ( error.name === 'CssSyntaxError' ) {\n * error //=> CssSyntaxError\n * }\n */\n this.name = 'CssSyntaxError';\n /**\n * @member {string} - Error message.\n *\n * @example\n * error.message //=> 'Unclosed block'\n */\n this.reason = message;\n\n if (file) {\n /**\n * @member {string} - Absolute path to the broken file.\n *\n * @example\n * error.file //=> 'a.sass'\n * error.input.file //=> 'a.css'\n */\n this.file = file;\n }\n if (source) {\n /**\n * @member {string} - Source code of the broken file.\n *\n * @example\n * error.source //=> 'a { b {} }'\n * error.input.column //=> 'a b { }'\n */\n this.source = source;\n }\n if (plugin) {\n /**\n * @member {string} - Plugin name, if error came from plugin.\n *\n * @example\n * error.plugin //=> 'postcss-vars'\n */\n this.plugin = plugin;\n }\n if (typeof line !== 'undefined' && typeof column !== 'undefined') {\n /**\n * @member {number} - Source line of the error.\n *\n * @example\n * error.line //=> 2\n * error.input.line //=> 4\n */\n this.line = line;\n /**\n * @member {number} - Source column of the error.\n *\n * @example\n * error.column //=> 1\n * error.input.column //=> 4\n */\n this.column = column;\n }\n\n this.setMessage();\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError);\n }\n }\n\n CssSyntaxError.prototype.setMessage = function setMessage() {\n /**\n * @member {string} - Full error text in the GNU error format\n * with plugin, file, line and column.\n *\n * @example\n * error.message //=> 'a.css:1:1: Unclosed block'\n */\n this.message = this.plugin ? this.plugin + ': ' : '';\n this.message += this.file ? this.file : '';\n if (typeof this.line !== 'undefined') {\n this.message += ':' + this.line + ':' + this.column;\n }\n this.message += ': ' + this.reason;\n };\n\n /**\n * Returns a few lines of CSS source that caused the error.\n *\n * If the CSS has an input source map without `sourceContent`,\n * this method will return an empty string.\n *\n * @param {boolean} [color] whether arrow will be colored red by terminal\n * color codes. By default, PostCSS will detect\n * color support by `process.stdout.isTTY`\n * and `process.env.NODE_DISABLE_COLORS`.\n *\n * @example\n * error.showSourceCode() //=> \" 4 | }\n * // 5 | a {\n * // > 6 | bad\n * // | ^\n * // 7 | }\n * // 8 | b {\"\n *\n * @return {string} few lines of CSS source that caused the error\n */\n\n\n CssSyntaxError.prototype.showSourceCode = function showSourceCode(color) {\n var _this = this;\n\n if (!this.source) return '';\n\n var css = this.source;\n if (typeof color === 'undefined') color = supportsColor_1;\n if (color) css = terminalHighlight(css);\n\n var lines = css.split(/\\r?\\n/);\n var start = Math.max(this.line - 3, 0);\n var end = Math.min(this.line + 2, lines.length);\n\n var maxWidth = String(end).length;\n\n return lines.slice(start, end).map(function (line, index) {\n var number = start + 1 + index;\n var padded = (' ' + number).slice(-maxWidth);\n var gutter = ' ' + padded + ' | ';\n if (number === _this.line) {\n var spacing = gutter.replace(/\\d/g, ' ') + line.slice(0, _this.column - 1).replace(/[^\\t]/g, ' ');\n return '>' + gutter + line + '\\n ' + spacing + '^';\n } else {\n return ' ' + gutter + line;\n }\n }).join('\\n');\n };\n\n /**\n * Returns error position, message and source code of the broken part.\n *\n * @example\n * error.toString() //=> \"CssSyntaxError: app.css:1:1: Unclosed block\n * // > 1 | a {\n * // | ^\"\n *\n * @return {string} error position, message and source code\n */\n\n\n CssSyntaxError.prototype.toString = function toString() {\n var code = this.showSourceCode();\n if (code) {\n code = '\\n\\n' + code + '\\n';\n }\n return this.name + ': ' + this.message + code;\n };\n\n createClass(CssSyntaxError, [{\n key: 'generated',\n get: function get$$1() {\n warnOnce('CssSyntaxError#generated is deprecated. Use input instead.');\n return this.input;\n }\n\n /**\n * @memberof CssSyntaxError#\n * @member {Input} input - Input object with PostCSS internal information\n * about input file. If input has source map\n * from previous tool, PostCSS will use origin\n * (for example, Sass) source. You can use this\n * object to get PostCSS input source.\n *\n * @example\n * error.input.file //=> 'a.css'\n * error.file //=> 'a.sass'\n */\n\n }]);\n return CssSyntaxError;\n}();\n\n// \n/* eslint-disable valid-jsdoc */\n\nvar defaultRaw = {\n colon: ': ',\n indent: ' ',\n beforeDecl: '\\n',\n beforeRule: '\\n',\n beforeOpen: ' ',\n beforeClose: '\\n',\n beforeComment: '\\n',\n after: '\\n',\n emptyBody: '',\n commentLeft: ' ',\n commentRight: ' '\n};\n\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1);\n}\n\nvar Stringifier = function () {\n function Stringifier(builder) {\n classCallCheck(this, Stringifier);\n\n this.builder = builder;\n }\n\n Stringifier.prototype.stringify = function stringify(node, semicolon) {\n this[node.type](node, semicolon);\n };\n\n Stringifier.prototype.root = function root(node) {\n this.body(node);\n if (node.raws.after) this.builder(node.raws.after);\n };\n\n Stringifier.prototype.comment = function comment(node) {\n var left = this.raw(node, 'left', 'commentLeft');\n var right = this.raw(node, 'right', 'commentRight');\n this.builder('/*' + left + node.text + right + '*/', node);\n };\n\n Stringifier.prototype.decl = function decl(node, semicolon) {\n var between = this.raw(node, 'between', 'colon');\n var string = node.prop + between + this.rawValue(node, 'value');\n\n if (node.important) {\n string += node.raws.important || ' !important';\n }\n\n if (semicolon) string += ';';\n this.builder(string, node);\n };\n\n Stringifier.prototype.rule = function rule(node) {\n this.block(node, this.rawValue(node, 'selector'));\n };\n\n Stringifier.prototype.atrule = function atrule(node, semicolon) {\n var name = '@' + node.name;\n var params = node.params ? this.rawValue(node, 'params') : '';\n\n if (typeof node.raws.afterName !== 'undefined') {\n name += node.raws.afterName;\n } else if (params) {\n name += ' ';\n }\n\n if (node.nodes) {\n this.block(node, name + params);\n } else {\n var end = (node.raws.between || '') + (semicolon ? ';' : '');\n this.builder(name + params + end, node);\n }\n };\n\n Stringifier.prototype.body = function body(node) {\n var last = node.nodes.length - 1;\n while (last > 0) {\n if (node.nodes[last].type !== 'comment') break;\n last -= 1;\n }\n\n var semicolon = this.raw(node, 'semicolon');\n for (var i = 0; i < node.nodes.length; i++) {\n var child = node.nodes[i];\n var before = this.raw(child, 'before');\n if (before) this.builder(before);\n this.stringify(child, last !== i || semicolon);\n }\n };\n\n Stringifier.prototype.block = function block(node, start) {\n var between = this.raw(node, 'between', 'beforeOpen');\n this.builder(start + between + '{', node, 'start');\n\n var after = void 0;\n if (node.nodes && node.nodes.length) {\n this.body(node);\n after = this.raw(node, 'after');\n } else {\n after = this.raw(node, 'after', 'emptyBody');\n }\n\n if (after) this.builder(after);\n this.builder('}', node, 'end');\n };\n\n Stringifier.prototype.raw = function raw(node, own, detect) {\n var value = void 0;\n if (!detect) detect = own;\n\n // Already had\n if (own) {\n value = node.raws[own];\n if (typeof value !== 'undefined') return value;\n }\n\n var parent = node.parent;\n\n // Hack for first rule in CSS\n if (detect === 'before') {\n if (!parent || parent.type === 'root' && parent.first === node) {\n return '';\n }\n }\n\n // Floating child without parent\n if (!parent) return defaultRaw[detect];\n\n // Detect style by other nodes\n var root = node.root();\n if (!root.rawCache) root.rawCache = {};\n if (typeof root.rawCache[detect] !== 'undefined') {\n return root.rawCache[detect];\n }\n\n if (detect === 'before' || detect === 'after') {\n return this.beforeAfter(node, detect);\n } else {\n var method = 'raw' + capitalize(detect);\n if (this[method]) {\n value = this[method](root, node);\n } else {\n root.walk(function (i) {\n value = i.raws[own];\n if (typeof value !== 'undefined') return false;\n });\n }\n }\n\n if (typeof value === 'undefined') value = defaultRaw[detect];\n\n root.rawCache[detect] = value;\n return value;\n };\n\n Stringifier.prototype.rawSemicolon = function rawSemicolon(root) {\n var value = void 0;\n root.walk(function (i) {\n if (i.nodes && i.nodes.length && i.last.type === 'decl') {\n value = i.raws.semicolon;\n if (typeof value !== 'undefined') return false;\n }\n });\n return value;\n };\n\n Stringifier.prototype.rawEmptyBody = function rawEmptyBody(root) {\n var value = void 0;\n root.walk(function (i) {\n if (i.nodes && i.nodes.length === 0) {\n value = i.raws.after;\n if (typeof value !== 'undefined') return false;\n }\n });\n return value;\n };\n\n Stringifier.prototype.rawIndent = function rawIndent(root) {\n if (root.raws.indent) return root.raws.indent;\n var value = void 0;\n root.walk(function (i) {\n var p = i.parent;\n if (p && p !== root && p.parent && p.parent === root) {\n if (typeof i.raws.before !== 'undefined') {\n var parts = i.raws.before.split('\\n');\n value = parts[parts.length - 1];\n value = value.replace(/[^\\s]/g, '');\n return false;\n }\n }\n });\n return value;\n };\n\n Stringifier.prototype.rawBeforeComment = function rawBeforeComment(root, node) {\n var value = void 0;\n root.walkComments(function (i) {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before;\n if (value.indexOf('\\n') !== -1) {\n value = value.replace(/[^\\n]+$/, '');\n }\n return false;\n }\n });\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeDecl');\n }\n return value;\n };\n\n Stringifier.prototype.rawBeforeDecl = function rawBeforeDecl(root, node) {\n var value = void 0;\n root.walkDecls(function (i) {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before;\n if (value.indexOf('\\n') !== -1) {\n value = value.replace(/[^\\n]+$/, '');\n }\n return false;\n }\n });\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeRule');\n }\n return value;\n };\n\n Stringifier.prototype.rawBeforeRule = function rawBeforeRule(root) {\n var value = void 0;\n root.walk(function (i) {\n if (i.nodes && (i.parent !== root || root.first !== i)) {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before;\n if (value.indexOf('\\n') !== -1) {\n value = value.replace(/[^\\n]+$/, '');\n }\n return false;\n }\n }\n });\n return value;\n };\n\n Stringifier.prototype.rawBeforeClose = function rawBeforeClose(root) {\n var value = void 0;\n root.walk(function (i) {\n if (i.nodes && i.nodes.length > 0) {\n if (typeof i.raws.after !== 'undefined') {\n value = i.raws.after;\n if (value.indexOf('\\n') !== -1) {\n value = value.replace(/[^\\n]+$/, '');\n }\n return false;\n }\n }\n });\n return value;\n };\n\n Stringifier.prototype.rawBeforeOpen = function rawBeforeOpen(root) {\n var value = void 0;\n root.walk(function (i) {\n if (i.type !== 'decl') {\n value = i.raws.between;\n if (typeof value !== 'undefined') return false;\n }\n });\n return value;\n };\n\n Stringifier.prototype.rawColon = function rawColon(root) {\n var value = void 0;\n root.walkDecls(function (i) {\n if (typeof i.raws.between !== 'undefined') {\n value = i.raws.between.replace(/[^\\s:]/g, '');\n return false;\n }\n });\n return value;\n };\n\n Stringifier.prototype.beforeAfter = function beforeAfter(node, detect) {\n var value = void 0;\n if (node.type === 'decl') {\n value = this.raw(node, null, 'beforeDecl');\n } else if (node.type === 'comment') {\n value = this.raw(node, null, 'beforeComment');\n } else if (detect === 'before') {\n value = this.raw(node, null, 'beforeRule');\n } else {\n value = this.raw(node, null, 'beforeClose');\n }\n\n var buf = node.parent;\n var depth = 0;\n while (buf && buf.type !== 'root') {\n depth += 1;\n buf = buf.parent;\n }\n\n if (value.indexOf('\\n') !== -1) {\n var indent = this.raw(node, null, 'indent');\n if (indent.length) {\n for (var step = 0; step < depth; step++) {\n value += indent;\n }\n }\n }\n\n return value;\n };\n\n Stringifier.prototype.rawValue = function rawValue(node, prop) {\n var value = node[prop];\n var raw = node.raws[prop];\n if (raw && raw.value === value) {\n return raw.raw;\n } else {\n return value;\n }\n };\n\n return Stringifier;\n}();\n\n// \n\nfunction stringify$1(node, builder) {\n var str = new Stringifier(builder);\n str.stringify(node);\n}\n\n// \n\n/**\n * @typedef {object} position\n * @property {number} line - source line in file\n * @property {number} column - source column in file\n */\n\n/**\n * @typedef {object} source\n * @property {Input} input - {@link Input} with input file\n * @property {position} start - The starting position of the node’s source\n * @property {position} end - The ending position of the node’s source\n */\n\nvar cloneNode = function cloneNode(obj, parent) {\n var cloned = new obj.constructor();\n\n for (var i in obj) {\n if (!obj.hasOwnProperty(i)) continue;\n var value = obj[i];\n var type = typeof value === 'undefined' ? 'undefined' : _typeof(value);\n\n if (i === 'parent' && type === 'object') {\n if (parent) cloned[i] = parent;\n } else if (i === 'source') {\n cloned[i] = value;\n } else if (value instanceof Array) {\n cloned[i] = value.map(function (j) {\n return cloneNode(j, cloned);\n });\n } else if (i !== 'before' && i !== 'after' && i !== 'between' && i !== 'semicolon') {\n if (type === 'object' && value !== null) value = cloneNode(value);\n cloned[i] = value;\n }\n }\n\n return cloned;\n};\n\n/**\n * All node classes inherit the following common methods.\n *\n * @abstract\n */\n\nvar Node = function () {\n /**\n * @param {object} [defaults] - value for node properties\n */\n function Node() {\n var defaults$$1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n classCallCheck(this, Node);\n\n this.raws = {};\n for (var name in defaults$$1) {\n this[name] = defaults$$1[name];\n }\n }\n\n /**\n * Returns a CssSyntaxError instance containing the original position\n * of the node in the source, showing line and column numbers and also\n * a small excerpt to facilitate debugging.\n *\n * If present, an input source map will be used to get the original position\n * of the source, even from a previous compilation step\n * (e.g., from Sass compilation).\n *\n * This method produces very useful error messages.\n *\n * @param {string} message - error description\n * @param {object} [opts] - options\n * @param {string} opts.plugin - plugin name that created this error.\n * PostCSS will set it automatically.\n * @param {string} opts.word - a word inside a node’s string that should\n * be highlighted as the source of the error\n * @param {number} opts.index - an index inside a node’s string that should\n * be highlighted as the source of the error\n *\n * @return {CssSyntaxError} error object to throw it\n *\n * @example\n * if ( !variables[name] ) {\n * throw decl.error('Unknown variable ' + name, { word: name });\n * // CssSyntaxError: postcss-vars:a.sass:4:3: Unknown variable $black\n * // color: $black\n * // a\n * // ^\n * // background: white\n * }\n */\n\n\n Node.prototype.error = function error(message) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.source) {\n var pos = this.positionBy(opts);\n return this.source.input.error(message, pos.line, pos.column, opts);\n } else {\n return new CssSyntaxError(message);\n }\n };\n\n /**\n * This method is provided as a convenience wrapper for {@link Result#warn}.\n *\n * @param {Result} result - the {@link Result} instance\n * that will receive the warning\n * @param {string} text - warning message\n * @param {object} [opts] - options\n * @param {string} opts.plugin - plugin name that created this warning.\n * PostCSS will set it automatically.\n * @param {string} opts.word - a word inside a node’s string that should\n * be highlighted as the source of the warning\n * @param {number} opts.index - an index inside a node’s string that should\n * be highlighted as the source of the warning\n *\n * @return {Warning} created warning object\n *\n * @example\n * const plugin = postcss.plugin('postcss-deprecated', () => {\n * return (root, result) => {\n * root.walkDecls('bad', decl => {\n * decl.warn(result, 'Deprecated property bad');\n * });\n * };\n * });\n */\n\n\n Node.prototype.warn = function warn(result, text, opts) {\n var data = { node: this };\n for (var i in opts) {\n data[i] = opts[i];\n }return result.warn(text, data);\n };\n\n /**\n * Removes the node from its parent and cleans the parent properties\n * from the node and its children.\n *\n * @example\n * if ( decl.prop.match(/^-webkit-/) ) {\n * decl.remove();\n * }\n *\n * @return {Node} node to make calls chain\n */\n\n\n Node.prototype.remove = function remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n this.parent = undefined;\n return this;\n };\n\n /**\n * Returns a CSS string representing the node.\n *\n * @param {stringifier|syntax} [stringifier] - a syntax to use\n * in string generation\n *\n * @return {string} CSS string of this node\n *\n * @example\n * postcss.rule({ selector: 'a' }).toString() //=> \"a {}\"\n */\n\n\n Node.prototype.toString = function toString() {\n var stringifier = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : stringify$1;\n\n if (stringifier.stringify) stringifier = stringifier.stringify;\n var result = '';\n stringifier(this, function (i) {\n result += i;\n });\n return result;\n };\n\n /**\n * Returns a clone of the node.\n *\n * The resulting cloned node and its (cloned) children will have\n * a clean parent and code style properties.\n *\n * @param {object} [overrides] - new properties to override in the clone.\n *\n * @example\n * const cloned = decl.clone({ prop: '-moz-' + decl.prop });\n * cloned.raws.before //=> undefined\n * cloned.parent //=> undefined\n * cloned.toString() //=> -moz-transform: scale(0)\n *\n * @return {Node} clone of the node\n */\n\n\n Node.prototype.clone = function clone() {\n var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var cloned = cloneNode(this);\n for (var name in overrides) {\n cloned[name] = overrides[name];\n }\n return cloned;\n };\n\n /**\n * Shortcut to clone the node and insert the resulting cloned node\n * before the current node.\n *\n * @param {object} [overrides] - new properties to override in the clone.\n *\n * @example\n * decl.cloneBefore({ prop: '-moz-' + decl.prop });\n *\n * @return {Node} - new node\n */\n\n\n Node.prototype.cloneBefore = function cloneBefore() {\n var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var cloned = this.clone(overrides);\n this.parent.insertBefore(this, cloned);\n return cloned;\n };\n\n /**\n * Shortcut to clone the node and insert the resulting cloned node\n * after the current node.\n *\n * @param {object} [overrides] - new properties to override in the clone.\n *\n * @return {Node} - new node\n */\n\n\n Node.prototype.cloneAfter = function cloneAfter() {\n var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var cloned = this.clone(overrides);\n this.parent.insertAfter(this, cloned);\n return cloned;\n };\n\n /**\n * Inserts node(s) before the current node and removes the current node.\n *\n * @param {...Node} nodes - node(s) to replace current one\n *\n * @example\n * if ( atrule.name == 'mixin' ) {\n * atrule.replaceWith(mixinRules[atrule.params]);\n * }\n *\n * @return {Node} current node to methods chain\n */\n\n\n Node.prototype.replaceWith = function replaceWith() {\n var _this = this;\n\n if (this.parent) {\n for (var _len = arguments.length, nodes = Array(_len), _key = 0; _key < _len; _key++) {\n nodes[_key] = arguments[_key];\n }\n\n nodes.forEach(function (node) {\n _this.parent.insertBefore(_this, node);\n });\n\n this.remove();\n }\n\n return this;\n };\n\n /**\n * Removes the node from its current parent and inserts it\n * at the end of `newParent`.\n *\n * This will clean the `before` and `after` code {@link Node#raws} data\n * from the node and replace them with the indentation style of `newParent`.\n * It will also clean the `between` property\n * if `newParent` is in another {@link Root}.\n *\n * @param {Container} newParent - container node where the current node\n * will be moved\n *\n * @example\n * atrule.moveTo(atrule.root());\n *\n * @return {Node} current node to methods chain\n */\n\n\n Node.prototype.moveTo = function moveTo(newParent) {\n this.cleanRaws(this.root() === newParent.root());\n this.remove();\n newParent.append(this);\n return this;\n };\n\n /**\n * Removes the node from its current parent and inserts it into\n * a new parent before `otherNode`.\n *\n * This will also clean the node’s code style properties just as it would\n * in {@link Node#moveTo}.\n *\n * @param {Node} otherNode - node that will be before current node\n *\n * @return {Node} current node to methods chain\n */\n\n\n Node.prototype.moveBefore = function moveBefore(otherNode) {\n this.cleanRaws(this.root() === otherNode.root());\n this.remove();\n otherNode.parent.insertBefore(otherNode, this);\n return this;\n };\n\n /**\n * Removes the node from its current parent and inserts it into\n * a new parent after `otherNode`.\n *\n * This will also clean the node’s code style properties just as it would\n * in {@link Node#moveTo}.\n *\n * @param {Node} otherNode - node that will be after current node\n *\n * @return {Node} current node to methods chain\n */\n\n\n Node.prototype.moveAfter = function moveAfter(otherNode) {\n this.cleanRaws(this.root() === otherNode.root());\n this.remove();\n otherNode.parent.insertAfter(otherNode, this);\n return this;\n };\n\n /**\n * Returns the next child of the node’s parent.\n * Returns `undefined` if the current node is the last child.\n *\n * @return {Node|undefined} next node\n *\n * @example\n * if ( comment.text === 'delete next' ) {\n * const next = comment.next();\n * if ( next ) {\n * next.remove();\n * }\n * }\n */\n\n\n Node.prototype.next = function next() {\n var index = this.parent.index(this);\n return this.parent.nodes[index + 1];\n };\n\n /**\n * Returns the previous child of the node’s parent.\n * Returns `undefined` if the current node is the first child.\n *\n * @return {Node|undefined} previous node\n *\n * @example\n * const annotation = decl.prev();\n * if ( annotation.type == 'comment' ) {\n * readAnnotation(annotation.text);\n * }\n */\n\n\n Node.prototype.prev = function prev() {\n var index = this.parent.index(this);\n return this.parent.nodes[index - 1];\n };\n\n Node.prototype.toJSON = function toJSON() {\n var fixed = {};\n\n for (var name in this) {\n if (!this.hasOwnProperty(name)) continue;\n if (name === 'parent') continue;\n var value = this[name];\n\n if (value instanceof Array) {\n fixed[name] = value.map(function (i) {\n if ((typeof i === 'undefined' ? 'undefined' : _typeof(i)) === 'object' && i.toJSON) {\n return i.toJSON();\n } else {\n return i;\n }\n });\n } else if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.toJSON) {\n fixed[name] = value.toJSON();\n } else {\n fixed[name] = value;\n }\n }\n\n return fixed;\n };\n\n /**\n * Returns a {@link Node#raws} value. If the node is missing\n * the code style property (because the node was manually built or cloned),\n * PostCSS will try to autodetect the code style property by looking\n * at other nodes in the tree.\n *\n * @param {string} prop - name of code style property\n * @param {string} [defaultType] - name of default value, it can be missed\n * if the value is the same as prop\n *\n * @example\n * const root = postcss.parse('a { background: white }');\n * root.nodes[0].append({ prop: 'color', value: 'black' });\n * root.nodes[0].nodes[1].raws.before //=> undefined\n * root.nodes[0].nodes[1].raw('before') //=> ' '\n *\n * @return {string} code style value\n */\n\n\n Node.prototype.raw = function raw(prop, defaultType) {\n var str = new Stringifier();\n return str.raw(this, prop, defaultType);\n };\n\n /**\n * Finds the Root instance of the node’s tree.\n *\n * @example\n * root.nodes[0].nodes[0].root() === root\n *\n * @return {Root} root parent\n */\n\n\n Node.prototype.root = function root() {\n var result = this;\n while (result.parent) {\n result = result.parent;\n }return result;\n };\n\n Node.prototype.cleanRaws = function cleanRaws(keepBetween) {\n delete this.raws.before;\n delete this.raws.after;\n if (!keepBetween) delete this.raws.between;\n };\n\n Node.prototype.positionInside = function positionInside(index) {\n var string = this.toString();\n var column = this.source.start.column;\n var line = this.source.start.line;\n\n for (var i = 0; i < index; i++) {\n if (string[i] === '\\n') {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n\n return { line: line, column: column };\n };\n\n Node.prototype.positionBy = function positionBy(opts) {\n var pos = this.source.start;\n if (opts.index) {\n pos = this.positionInside(opts.index);\n } else if (opts.word) {\n var index = this.toString().indexOf(opts.word);\n if (index !== -1) pos = this.positionInside(index);\n }\n return pos;\n };\n\n Node.prototype.removeSelf = function removeSelf() {\n warnOnce('Node#removeSelf is deprecated. Use Node#remove.');\n return this.remove();\n };\n\n Node.prototype.replace = function replace(nodes) {\n warnOnce('Node#replace is deprecated. Use Node#replaceWith');\n return this.replaceWith(nodes);\n };\n\n Node.prototype.style = function style(own, detect) {\n warnOnce('Node#style() is deprecated. Use Node#raw()');\n return this.raw(own, detect);\n };\n\n Node.prototype.cleanStyles = function cleanStyles(keepBetween) {\n warnOnce('Node#cleanStyles() is deprecated. Use Node#cleanRaws()');\n return this.cleanRaws(keepBetween);\n };\n\n createClass(Node, [{\n key: 'before',\n get: function get$$1() {\n warnOnce('Node#before is deprecated. Use Node#raws.before');\n return this.raws.before;\n },\n set: function set$$1(val) {\n warnOnce('Node#before is deprecated. Use Node#raws.before');\n this.raws.before = val;\n }\n }, {\n key: 'between',\n get: function get$$1() {\n warnOnce('Node#between is deprecated. Use Node#raws.between');\n return this.raws.between;\n },\n set: function set$$1(val) {\n warnOnce('Node#between is deprecated. Use Node#raws.between');\n this.raws.between = val;\n }\n\n /**\n * @memberof Node#\n * @member {string} type - String representing the node’s type.\n * Possible values are `root`, `atrule`, `rule`,\n * `decl`, or `comment`.\n *\n * @example\n * postcss.decl({ prop: 'color', value: 'black' }).type //=> 'decl'\n */\n\n /**\n * @memberof Node#\n * @member {Container} parent - the node’s parent node.\n *\n * @example\n * root.nodes[0].parent == root;\n */\n\n /**\n * @memberof Node#\n * @member {source} source - the input source of the node\n *\n * The property is used in source map generation.\n *\n * If you create a node manually (e.g., with `postcss.decl()`),\n * that node will not have a `source` property and will be absent\n * from the source map. For this reason, the plugin developer should\n * consider cloning nodes to create new ones (in which case the new node’s\n * source will reference the original, cloned node) or setting\n * the `source` property manually.\n *\n * ```js\n * // Bad\n * const prefixed = postcss.decl({\n * prop: '-moz-' + decl.prop,\n * value: decl.value\n * });\n *\n * // Good\n * const prefixed = decl.clone({ prop: '-moz-' + decl.prop });\n * ```\n *\n * ```js\n * if ( atrule.name == 'add-link' ) {\n * const rule = postcss.rule({ selector: 'a', source: atrule.source });\n * atrule.parent.insertBefore(atrule, rule);\n * }\n * ```\n *\n * @example\n * decl.source.input.from //=> '/home/ai/a.sass'\n * decl.source.start //=> { line: 10, column: 2 }\n * decl.source.end //=> { line: 10, column: 12 }\n */\n\n /**\n * @memberof Node#\n * @member {object} raws - Information to generate byte-to-byte equal\n * node string as it was in the origin input.\n *\n * Every parser saves its own properties,\n * but the default CSS parser uses:\n *\n * * `before`: the space symbols before the node. It also stores `*`\n * and `_` symbols before the declaration (IE hack).\n * * `after`: the space symbols after the last child of the node\n * to the end of the node.\n * * `between`: the symbols between the property and value\n * for declarations, selector and `{` for rules, or last parameter\n * and `{` for at-rules.\n * * `semicolon`: contains true if the last child has\n * an (optional) semicolon.\n * * `afterName`: the space between the at-rule name and its parameters.\n * * `left`: the space symbols between `/*` and the comment’s text.\n * * `right`: the space symbols between the comment’s text\n * and */.\n * * `important`: the content of the important statement,\n * if it is not just `!important`.\n *\n * PostCSS cleans selectors, declaration values and at-rule parameters\n * from comments and extra spaces, but it stores origin content in raws\n * properties. As such, if you don’t change a declaration’s value,\n * PostCSS will use the raw value with comments.\n *\n * @example\n * const root = postcss.parse('a {\\n color:black\\n}')\n * root.first.first.raws //=> { before: '\\n ', between: ':' }\n */\n\n }]);\n return Node;\n}();\n\n// \n\n/**\n * Represents a CSS declaration.\n *\n * @extends Node\n *\n * @example\n * const root = postcss.parse('a { color: black }');\n * const decl = root.first.first;\n * decl.type //=> 'decl'\n * decl.toString() //=> ' color: black'\n */\n\nvar Declaration = function (_Node) {\n inherits(Declaration, _Node);\n\n function Declaration(defaults$$1) {\n classCallCheck(this, Declaration);\n\n var _this = possibleConstructorReturn(this, _Node.call(this, defaults$$1));\n\n _this.type = 'decl';\n return _this;\n }\n\n createClass(Declaration, [{\n key: '_value',\n get: function get$$1() {\n warnOnce('Node#_value was deprecated. Use Node#raws.value');\n return this.raws.value;\n },\n set: function set$$1(val) {\n warnOnce('Node#_value was deprecated. Use Node#raws.value');\n this.raws.value = val;\n }\n }, {\n key: '_important',\n get: function get$$1() {\n warnOnce('Node#_important was deprecated. Use Node#raws.important');\n return this.raws.important;\n },\n set: function set$$1(val) {\n warnOnce('Node#_important was deprecated. Use Node#raws.important');\n this.raws.important = val;\n }\n\n /**\n * @memberof Declaration#\n * @member {string} prop - the declaration’s property name\n *\n * @example\n * const root = postcss.parse('a { color: black }');\n * const decl = root.first.first;\n * decl.prop //=> 'color'\n */\n\n /**\n * @memberof Declaration#\n * @member {string} value - the declaration’s value\n *\n * @example\n * const root = postcss.parse('a { color: black }');\n * const decl = root.first.first;\n * decl.value //=> 'black'\n */\n\n /**\n * @memberof Declaration#\n * @member {boolean} important - `true` if the declaration\n * has an !important annotation.\n *\n * @example\n * const root = postcss.parse('a { color: black !important; color: red }');\n * root.first.first.important //=> true\n * root.first.last.important //=> undefined\n */\n\n /**\n * @memberof Declaration#\n * @member {object} raws - Information to generate byte-to-byte equal\n * node string as it was in the origin input.\n *\n * Every parser saves its own properties,\n * but the default CSS parser uses:\n *\n * * `before`: the space symbols before the node. It also stores `*`\n * and `_` symbols before the declaration (IE hack).\n * * `between`: the symbols between the property and value\n * for declarations, selector and `{` for rules, or last parameter\n * and `{` for at-rules.\n * * `important`: the content of the important statement,\n * if it is not just `!important`.\n *\n * PostCSS cleans declaration from comments and extra spaces,\n * but it stores origin content in raws properties.\n * As such, if you don’t change a declaration’s value,\n * PostCSS will use the raw value with comments.\n *\n * @example\n * const root = postcss.parse('a {\\n color:black\\n}')\n * root.first.first.raws //=> { before: '\\n ', between: ':' }\n */\n\n }]);\n return Declaration;\n}(Node);\n\n// \n\n/**\n * Represents a comment between declarations or statements (rule and at-rules).\n *\n * Comments inside selectors, at-rule parameters, or declaration values\n * will be stored in the `raws` properties explained above.\n *\n * @extends Node\n */\n\nvar Comment = function (_Node) {\n inherits(Comment, _Node);\n\n function Comment(defaults$$1) {\n classCallCheck(this, Comment);\n\n var _this = possibleConstructorReturn(this, _Node.call(this, defaults$$1));\n\n _this.type = 'comment';\n return _this;\n }\n\n createClass(Comment, [{\n key: 'left',\n get: function get$$1() {\n warnOnce('Comment#left was deprecated. Use Comment#raws.left');\n return this.raws.left;\n },\n set: function set$$1(val) {\n warnOnce('Comment#left was deprecated. Use Comment#raws.left');\n this.raws.left = val;\n }\n }, {\n key: 'right',\n get: function get$$1() {\n warnOnce('Comment#right was deprecated. Use Comment#raws.right');\n return this.raws.right;\n },\n set: function set$$1(val) {\n warnOnce('Comment#right was deprecated. Use Comment#raws.right');\n this.raws.right = val;\n }\n\n /**\n * @memberof Comment#\n * @member {string} text - the comment’s text\n */\n\n /**\n * @memberof Comment#\n * @member {object} raws - Information to generate byte-to-byte equal\n * node string as it was in the origin input.\n *\n * Every parser saves its own properties,\n * but the default CSS parser uses:\n *\n * * `before`: the space symbols before the node.\n * * `left`: the space symbols between `/*` and the comment’s text.\n * * `right`: the space symbols between the comment’s text.\n */\n\n }]);\n return Comment;\n}(Node);\n\n// \n\nvar Parser = function () {\n function Parser(input) {\n classCallCheck(this, Parser);\n\n this.input = input;\n\n this.pos = 0;\n this.root = new Root();\n this.current = this.root;\n this.spaces = '';\n this.semicolon = false;\n\n this.root.source = { input: input, start: { line: 1, column: 1 } };\n }\n\n Parser.prototype.tokenize = function tokenize$$1() {\n this.tokens = tokenize(this.input);\n };\n\n Parser.prototype.loop = function loop() {\n var token = void 0;\n while (this.pos < this.tokens.length) {\n token = this.tokens[this.pos];\n\n switch (token[0]) {\n case 'space':\n case ';':\n this.spaces += token[1];\n break;\n\n case '}':\n this.end(token);\n break;\n\n case 'comment':\n this.comment(token);\n break;\n\n case 'at-word':\n this.atrule(token);\n break;\n\n case '{':\n this.emptyRule(token);\n break;\n\n default:\n this.other();\n break;\n }\n\n this.pos += 1;\n }\n this.endFile();\n };\n\n Parser.prototype.comment = function comment(token) {\n var node = new Comment();\n this.init(node, token[2], token[3]);\n node.source.end = { line: token[4], column: token[5] };\n\n var text = token[1].slice(2, -2);\n if (/^\\s*$/.test(text)) {\n node.text = '';\n node.raws.left = text;\n node.raws.right = '';\n } else {\n var match = text.match(/^(\\s*)([^]*[^\\s])(\\s*)$/);\n node.text = match[2];\n node.raws.left = match[1];\n node.raws.right = match[3];\n }\n };\n\n Parser.prototype.emptyRule = function emptyRule(token) {\n var node = new Rule();\n this.init(node, token[2], token[3]);\n node.selector = '';\n node.raws.between = '';\n this.current = node;\n };\n\n Parser.prototype.other = function other() {\n var token = void 0;\n var end = false;\n var type = null;\n var colon = false;\n var bracket = null;\n var brackets = [];\n\n var start = this.pos;\n while (this.pos < this.tokens.length) {\n token = this.tokens[this.pos];\n type = token[0];\n\n if (type === '(' || type === '[') {\n if (!bracket) bracket = token;\n brackets.push(type === '(' ? ')' : ']');\n } else if (brackets.length === 0) {\n if (type === ';') {\n if (colon) {\n this.decl(this.tokens.slice(start, this.pos + 1));\n return;\n } else {\n break;\n }\n } else if (type === '{') {\n this.rule(this.tokens.slice(start, this.pos + 1));\n return;\n } else if (type === '}') {\n this.pos -= 1;\n end = true;\n break;\n } else if (type === ':') {\n colon = true;\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n if (brackets.length === 0) bracket = null;\n }\n\n this.pos += 1;\n }\n if (this.pos === this.tokens.length) {\n this.pos -= 1;\n end = true;\n }\n\n if (brackets.length > 0) this.unclosedBracket(bracket);\n\n if (end && colon) {\n while (this.pos > start) {\n token = this.tokens[this.pos][0];\n if (token !== 'space' && token !== 'comment') break;\n this.pos -= 1;\n }\n this.decl(this.tokens.slice(start, this.pos + 1));\n return;\n }\n\n this.unknownWord(start);\n };\n\n Parser.prototype.rule = function rule(tokens) {\n tokens.pop();\n\n var node = new Rule();\n this.init(node, tokens[0][2], tokens[0][3]);\n\n node.raws.between = this.spacesFromEnd(tokens);\n this.raw(node, 'selector', tokens);\n this.current = node;\n };\n\n Parser.prototype.decl = function decl(tokens) {\n var node = new Declaration();\n this.init(node);\n\n var last = tokens[tokens.length - 1];\n if (last[0] === ';') {\n this.semicolon = true;\n tokens.pop();\n }\n if (last[4]) {\n node.source.end = { line: last[4], column: last[5] };\n } else {\n node.source.end = { line: last[2], column: last[3] };\n }\n\n while (tokens[0][0] !== 'word') {\n node.raws.before += tokens.shift()[1];\n }\n node.source.start = { line: tokens[0][2], column: tokens[0][3] };\n\n node.prop = '';\n while (tokens.length) {\n var type = tokens[0][0];\n if (type === ':' || type === 'space' || type === 'comment') {\n break;\n }\n node.prop += tokens.shift()[1];\n }\n\n node.raws.between = '';\n\n var token = void 0;\n while (tokens.length) {\n token = tokens.shift();\n\n if (token[0] === ':') {\n node.raws.between += token[1];\n break;\n } else {\n node.raws.between += token[1];\n }\n }\n\n if (node.prop[0] === '_' || node.prop[0] === '*') {\n node.raws.before += node.prop[0];\n node.prop = node.prop.slice(1);\n }\n node.raws.between += this.spacesFromStart(tokens);\n this.precheckMissedSemicolon(tokens);\n\n for (var i = tokens.length - 1; i > 0; i--) {\n token = tokens[i];\n if (token[1] === '!important') {\n node.important = true;\n var string = this.stringFrom(tokens, i);\n string = this.spacesFromEnd(tokens) + string;\n if (string !== ' !important') node.raws.important = string;\n break;\n } else if (token[1] === 'important') {\n var cache = tokens.slice(0);\n var str = '';\n for (var j = i; j > 0; j--) {\n var _type = cache[j][0];\n if (str.trim().indexOf('!') === 0 && _type !== 'space') {\n break;\n }\n str = cache.pop()[1] + str;\n }\n if (str.trim().indexOf('!') === 0) {\n node.important = true;\n node.raws.important = str;\n tokens = cache;\n }\n }\n\n if (token[0] !== 'space' && token[0] !== 'comment') {\n break;\n }\n }\n\n this.raw(node, 'value', tokens);\n\n if (node.value.indexOf(':') !== -1) this.checkMissedSemicolon(tokens);\n };\n\n Parser.prototype.atrule = function atrule(token) {\n var node = new AtRule();\n node.name = token[1].slice(1);\n if (node.name === '') {\n this.unnamedAtrule(node, token);\n }\n this.init(node, token[2], token[3]);\n\n var last = false;\n var open = false;\n var params = [];\n\n this.pos += 1;\n while (this.pos < this.tokens.length) {\n token = this.tokens[this.pos];\n\n if (token[0] === ';') {\n node.source.end = { line: token[2], column: token[3] };\n this.semicolon = true;\n break;\n } else if (token[0] === '{') {\n open = true;\n break;\n } else if (token[0] === '}') {\n this.end(token);\n break;\n } else {\n params.push(token);\n }\n\n this.pos += 1;\n }\n if (this.pos === this.tokens.length) {\n last = true;\n }\n\n node.raws.between = this.spacesFromEnd(params);\n if (params.length) {\n node.raws.afterName = this.spacesFromStart(params);\n this.raw(node, 'params', params);\n if (last) {\n token = params[params.length - 1];\n node.source.end = { line: token[4], column: token[5] };\n this.spaces = node.raws.between;\n node.raws.between = '';\n }\n } else {\n node.raws.afterName = '';\n node.params = '';\n }\n\n if (open) {\n node.nodes = [];\n this.current = node;\n }\n };\n\n Parser.prototype.end = function end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.semicolon = false;\n\n this.current.raws.after = (this.current.raws.after || '') + this.spaces;\n this.spaces = '';\n\n if (this.current.parent) {\n this.current.source.end = { line: token[2], column: token[3] };\n this.current = this.current.parent;\n } else {\n this.unexpectedClose(token);\n }\n };\n\n Parser.prototype.endFile = function endFile() {\n if (this.current.parent) this.unclosedBlock();\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.current.raws.after = (this.current.raws.after || '') + this.spaces;\n };\n\n // Helpers\n\n Parser.prototype.init = function init(node, line, column) {\n this.current.push(node);\n\n node.source = { start: { line: line, column: column }, input: this.input };\n node.raws.before = this.spaces;\n this.spaces = '';\n if (node.type !== 'comment') this.semicolon = false;\n };\n\n Parser.prototype.raw = function raw(node, prop, tokens) {\n var token = void 0,\n type = void 0;\n var length = tokens.length;\n var value = '';\n var clean = true;\n for (var i = 0; i < length; i += 1) {\n token = tokens[i];\n type = token[0];\n if (type === 'comment' || type === 'space' && i === length - 1) {\n clean = false;\n } else {\n value += token[1];\n }\n }\n if (!clean) {\n var raw = tokens.reduce(function (all, i) {\n return all + i[1];\n }, '');\n node.raws[prop] = { value: value, raw: raw };\n }\n node[prop] = value;\n };\n\n Parser.prototype.spacesFromEnd = function spacesFromEnd(tokens) {\n var lastTokenType = void 0;\n var spaces = '';\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== 'space' && lastTokenType !== 'comment') break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n };\n\n Parser.prototype.spacesFromStart = function spacesFromStart(tokens) {\n var next = void 0;\n var spaces = '';\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== 'space' && next !== 'comment') break;\n spaces += tokens.shift()[1];\n }\n return spaces;\n };\n\n Parser.prototype.stringFrom = function stringFrom(tokens, from) {\n var result = '';\n for (var i = from; i < tokens.length; i++) {\n result += tokens[i][1];\n }\n tokens.splice(from, tokens.length - from);\n return result;\n };\n\n Parser.prototype.colon = function colon(tokens) {\n var brackets = 0;\n var token = void 0,\n type = void 0,\n prev = void 0;\n for (var i = 0; i < tokens.length; i++) {\n token = tokens[i];\n type = token[0];\n\n if (type === '(') {\n brackets += 1;\n } else if (type === ')') {\n brackets -= 1;\n } else if (brackets === 0 && type === ':') {\n if (!prev) {\n this.doubleColon(token);\n } else if (prev[0] === 'word' && prev[1] === 'progid') {\n continue;\n } else {\n return i;\n }\n }\n\n prev = token;\n }\n return false;\n };\n\n // Errors\n\n Parser.prototype.unclosedBracket = function unclosedBracket(bracket) {\n throw this.input.error('Unclosed bracket', bracket[2], bracket[3]);\n };\n\n Parser.prototype.unknownWord = function unknownWord(start) {\n var token = this.tokens[start];\n throw this.input.error('Unknown word', token[2], token[3]);\n };\n\n Parser.prototype.unexpectedClose = function unexpectedClose(token) {\n throw this.input.error('Unexpected }', token[2], token[3]);\n };\n\n Parser.prototype.unclosedBlock = function unclosedBlock() {\n var pos = this.current.source.start;\n throw this.input.error('Unclosed block', pos.line, pos.column);\n };\n\n Parser.prototype.doubleColon = function doubleColon(token) {\n throw this.input.error('Double colon', token[2], token[3]);\n };\n\n Parser.prototype.unnamedAtrule = function unnamedAtrule(node, token) {\n throw this.input.error('At-rule without name', token[2], token[3]);\n };\n\n Parser.prototype.precheckMissedSemicolon = function precheckMissedSemicolon(tokens) {\n };\n\n Parser.prototype.checkMissedSemicolon = function checkMissedSemicolon(tokens) {\n var colon = this.colon(tokens);\n if (colon === false) return;\n\n var founded = 0;\n var token = void 0;\n for (var j = colon - 1; j >= 0; j--) {\n token = tokens[j];\n if (token[0] !== 'space') {\n founded += 1;\n if (founded === 2) break;\n }\n }\n throw this.input.error('Missed semicolon', token[2], token[3]);\n };\n\n return Parser;\n}();\n\n// \n\nfunction parse$1(css, opts) {\n if (opts && opts.safe) {\n throw new Error('Option safe was removed. ' + 'Use parser: require(\"postcss-safe-parser\")');\n }\n\n var input = new Input(css, opts);\n\n var parser = new Parser(input);\n try {\n parser.tokenize();\n parser.loop();\n } catch (e) {\n if (e.name === 'CssSyntaxError' && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e.message += '\\nYou tried to parse SCSS with ' + 'the standard CSS parser; ' + 'try again with the postcss-scss parser';\n } else if (/\\.less$/i.test(opts.from)) {\n e.message += '\\nYou tried to parse Less with ' + 'the standard CSS parser; ' + 'try again with the postcss-less parser';\n }\n }\n throw e;\n }\n\n return parser.root;\n}\n\n// \n\nfunction cleanSource(nodes) {\n return nodes.map(function (i) {\n if (i.nodes) i.nodes = cleanSource(i.nodes);\n delete i.source;\n return i;\n });\n}\n\n/**\n * @callback childCondition\n * @param {Node} node - container child\n * @param {number} index - child index\n * @param {Node[]} nodes - all container children\n * @return {boolean}\n */\n\n/**\n * @callback childIterator\n * @param {Node} node - container child\n * @param {number} index - child index\n * @return {false|undefined} returning `false` will break iteration\n */\n\n/**\n * The {@link Root}, {@link AtRule}, and {@link Rule} container nodes\n * inherit some common methods to help work with their children.\n *\n * Note that all containers can store any content. If you write a rule inside\n * a rule, PostCSS will parse it.\n *\n * @extends Node\n * @abstract\n */\n\nvar Container = function (_Node) {\n inherits(Container, _Node);\n\n function Container() {\n classCallCheck(this, Container);\n return possibleConstructorReturn(this, _Node.apply(this, arguments));\n }\n\n Container.prototype.push = function push(child) {\n child.parent = this;\n this.nodes.push(child);\n return this;\n };\n\n /**\n * Iterates through the container’s immediate children,\n * calling `callback` for each child.\n *\n * Returning `false` in the callback will break iteration.\n *\n * This method only iterates through the container’s immediate children.\n * If you need to recursively iterate through all the container’s descendant\n * nodes, use {@link Container#walk}.\n *\n * Unlike the for `{}`-cycle or `Array#forEach` this iterator is safe\n * if you are mutating the array of child nodes during iteration.\n * PostCSS will adjust the current index to match the mutations.\n *\n * @param {childIterator} callback - iterator receives each node and index\n *\n * @return {false|undefined} returns `false` if iteration was broke\n *\n * @example\n * const root = postcss.parse('a { color: black; z-index: 1 }');\n * const rule = root.first;\n *\n * for ( let decl of rule.nodes ) {\n * decl.cloneBefore({ prop: '-webkit-' + decl.prop });\n * // Cycle will be infinite, because cloneBefore moves the current node\n * // to the next index\n * }\n *\n * rule.each(decl => {\n * decl.cloneBefore({ prop: '-webkit-' + decl.prop });\n * // Will be executed only for color and z-index\n * });\n */\n\n\n Container.prototype.each = function each(callback) {\n if (!this.lastEach) this.lastEach = 0;\n if (!this.indexes) this.indexes = {};\n\n this.lastEach += 1;\n var id = this.lastEach;\n this.indexes[id] = 0;\n\n if (!this.nodes) return undefined;\n\n var index = void 0,\n result = void 0;\n while (this.indexes[id] < this.nodes.length) {\n index = this.indexes[id];\n result = callback(this.nodes[index], index);\n if (result === false) break;\n\n this.indexes[id] += 1;\n }\n\n delete this.indexes[id];\n\n return result;\n };\n\n /**\n * Traverses the container’s descendant nodes, calling callback\n * for each node.\n *\n * Like container.each(), this method is safe to use\n * if you are mutating arrays during iteration.\n *\n * If you only need to iterate through the container’s immediate children,\n * use {@link Container#each}.\n *\n * @param {childIterator} callback - iterator receives each node and index\n *\n * @return {false|undefined} returns `false` if iteration was broke\n *\n * @example\n * root.walk(node => {\n * // Traverses all descendant nodes.\n * });\n */\n\n\n Container.prototype.walk = function walk(callback) {\n return this.each(function (child, i) {\n var result = callback(child, i);\n if (result !== false && child.walk) {\n result = child.walk(callback);\n }\n return result;\n });\n };\n\n /**\n * Traverses the container’s descendant nodes, calling callback\n * for each declaration node.\n *\n * If you pass a filter, iteration will only happen over declarations\n * with matching properties.\n *\n * Like {@link Container#each}, this method is safe\n * to use if you are mutating arrays during iteration.\n *\n * @param {string|RegExp} [prop] - string or regular expression\n * to filter declarations by property name\n * @param {childIterator} callback - iterator receives each node and index\n *\n * @return {false|undefined} returns `false` if iteration was broke\n *\n * @example\n * root.walkDecls(decl => {\n * checkPropertySupport(decl.prop);\n * });\n *\n * root.walkDecls('border-radius', decl => {\n * decl.remove();\n * });\n *\n * root.walkDecls(/^background/, decl => {\n * decl.value = takeFirstColorFromGradient(decl.value);\n * });\n */\n\n\n Container.prototype.walkDecls = function walkDecls(prop, callback) {\n if (!callback) {\n callback = prop;\n return this.walk(function (child, i) {\n if (child.type === 'decl') {\n return callback(child, i);\n }\n });\n } else if (prop instanceof RegExp) {\n return this.walk(function (child, i) {\n if (child.type === 'decl' && prop.test(child.prop)) {\n return callback(child, i);\n }\n });\n } else {\n return this.walk(function (child, i) {\n if (child.type === 'decl' && child.prop === prop) {\n return callback(child, i);\n }\n });\n }\n };\n\n /**\n * Traverses the container’s descendant nodes, calling callback\n * for each rule node.\n *\n * If you pass a filter, iteration will only happen over rules\n * with matching selectors.\n *\n * Like {@link Container#each}, this method is safe\n * to use if you are mutating arrays during iteration.\n *\n * @param {string|RegExp} [selector] - string or regular expression\n * to filter rules by selector\n * @param {childIterator} callback - iterator receives each node and index\n *\n * @return {false|undefined} returns `false` if iteration was broke\n *\n * @example\n * const selectors = [];\n * root.walkRules(rule => {\n * selectors.push(rule.selector);\n * });\n * console.log(`Your CSS uses ${selectors.length} selectors`);\n */\n\n\n Container.prototype.walkRules = function walkRules(selector, callback) {\n if (!callback) {\n callback = selector;\n\n return this.walk(function (child, i) {\n if (child.type === 'rule') {\n return callback(child, i);\n }\n });\n } else if (selector instanceof RegExp) {\n return this.walk(function (child, i) {\n if (child.type === 'rule' && selector.test(child.selector)) {\n return callback(child, i);\n }\n });\n } else {\n return this.walk(function (child, i) {\n if (child.type === 'rule' && child.selector === selector) {\n return callback(child, i);\n }\n });\n }\n };\n\n /**\n * Traverses the container’s descendant nodes, calling callback\n * for each at-rule node.\n *\n * If you pass a filter, iteration will only happen over at-rules\n * that have matching names.\n *\n * Like {@link Container#each}, this method is safe\n * to use if you are mutating arrays during iteration.\n *\n * @param {string|RegExp} [name] - string or regular expression\n * to filter at-rules by name\n * @param {childIterator} callback - iterator receives each node and index\n *\n * @return {false|undefined} returns `false` if iteration was broke\n *\n * @example\n * root.walkAtRules(rule => {\n * if ( isOld(rule.name) ) rule.remove();\n * });\n *\n * let first = false;\n * root.walkAtRules('charset', rule => {\n * if ( !first ) {\n * first = true;\n * } else {\n * rule.remove();\n * }\n * });\n */\n\n\n Container.prototype.walkAtRules = function walkAtRules(name, callback) {\n if (!callback) {\n callback = name;\n return this.walk(function (child, i) {\n if (child.type === 'atrule') {\n return callback(child, i);\n }\n });\n } else if (name instanceof RegExp) {\n return this.walk(function (child, i) {\n if (child.type === 'atrule' && name.test(child.name)) {\n return callback(child, i);\n }\n });\n } else {\n return this.walk(function (child, i) {\n if (child.type === 'atrule' && child.name === name) {\n return callback(child, i);\n }\n });\n }\n };\n\n /**\n * Traverses the container’s descendant nodes, calling callback\n * for each comment node.\n *\n * Like {@link Container#each}, this method is safe\n * to use if you are mutating arrays during iteration.\n *\n * @param {childIterator} callback - iterator receives each node and index\n *\n * @return {false|undefined} returns `false` if iteration was broke\n *\n * @example\n * root.walkComments(comment => {\n * comment.remove();\n * });\n */\n\n\n Container.prototype.walkComments = function walkComments(callback) {\n return this.walk(function (child, i) {\n if (child.type === 'comment') {\n return callback(child, i);\n }\n });\n };\n\n /**\n * Inserts new nodes to the start of the container.\n *\n * @param {...(Node|object|string|Node[])} children - new nodes\n *\n * @return {Node} this node for methods chain\n *\n * @example\n * const decl1 = postcss.decl({ prop: 'color', value: 'black' });\n * const decl2 = postcss.decl({ prop: 'background-color', value: 'white' });\n * rule.append(decl1, decl2);\n *\n * root.append({ name: 'charset', params: '\"UTF-8\"' }); // at-rule\n * root.append({ selector: 'a' }); // rule\n * rule.append({ prop: 'color', value: 'black' }); // declaration\n * rule.append({ text: 'Comment' }) // comment\n *\n * root.append('a {}');\n * root.first.append('color: black; z-index: 1');\n */\n\n\n Container.prototype.append = function append() {\n var _this2 = this;\n\n for (var _len = arguments.length, children = Array(_len), _key = 0; _key < _len; _key++) {\n children[_key] = arguments[_key];\n }\n\n children.forEach(function (child) {\n var nodes = _this2.normalize(child, _this2.last);\n nodes.forEach(function (node) {\n return _this2.nodes.push(node);\n });\n });\n return this;\n };\n\n /**\n * Inserts new nodes to the end of the container.\n *\n * @param {...(Node|object|string|Node[])} children - new nodes\n *\n * @return {Node} this node for methods chain\n *\n * @example\n * const decl1 = postcss.decl({ prop: 'color', value: 'black' });\n * const decl2 = postcss.decl({ prop: 'background-color', value: 'white' });\n * rule.prepend(decl1, decl2);\n *\n * root.append({ name: 'charset', params: '\"UTF-8\"' }); // at-rule\n * root.append({ selector: 'a' }); // rule\n * rule.append({ prop: 'color', value: 'black' }); // declaration\n * rule.append({ text: 'Comment' }) // comment\n *\n * root.append('a {}');\n * root.first.append('color: black; z-index: 1');\n */\n\n\n Container.prototype.prepend = function prepend() {\n var _this3 = this;\n\n for (var _len2 = arguments.length, children = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n children[_key2] = arguments[_key2];\n }\n\n children = children.reverse();\n children.forEach(function (child) {\n var nodes = _this3.normalize(child, _this3.first, 'prepend').reverse();\n nodes.forEach(function (node) {\n return _this3.nodes.unshift(node);\n });\n for (var id in _this3.indexes) {\n _this3.indexes[id] = _this3.indexes[id] + nodes.length;\n }\n });\n return this;\n };\n\n Container.prototype.cleanRaws = function cleanRaws(keepBetween) {\n _Node.prototype.cleanRaws.call(this, keepBetween);\n if (this.nodes) {\n this.nodes.forEach(function (node) {\n return node.cleanRaws(keepBetween);\n });\n }\n };\n\n /**\n * Insert new node before old node within the container.\n *\n * @param {Node|number} exist - child or child’s index.\n * @param {Node|object|string|Node[]} add - new node\n *\n * @return {Node} this node for methods chain\n *\n * @example\n * rule.insertBefore(decl, decl.clone({ prop: '-webkit-' + decl.prop }));\n */\n\n\n Container.prototype.insertBefore = function insertBefore(exist, add) {\n var _this4 = this;\n\n exist = this.index(exist);\n\n var type = exist === 0 ? 'prepend' : false;\n var nodes = this.normalize(add, this.nodes[exist], type).reverse();\n nodes.forEach(function (node) {\n return _this4.nodes.splice(exist, 0, node);\n });\n\n var index = void 0;\n for (var id in this.indexes) {\n index = this.indexes[id];\n if (exist <= index) {\n this.indexes[id] = index + nodes.length;\n }\n }\n\n return this;\n };\n\n /**\n * Insert new node after old node within the container.\n *\n * @param {Node|number} exist - child or child’s index\n * @param {Node|object|string|Node[]} add - new node\n *\n * @return {Node} this node for methods chain\n */\n\n\n Container.prototype.insertAfter = function insertAfter(exist, add) {\n var _this5 = this;\n\n exist = this.index(exist);\n\n var nodes = this.normalize(add, this.nodes[exist]).reverse();\n nodes.forEach(function (node) {\n return _this5.nodes.splice(exist + 1, 0, node);\n });\n\n var index = void 0;\n for (var id in this.indexes) {\n index = this.indexes[id];\n if (exist < index) {\n this.indexes[id] = index + nodes.length;\n }\n }\n\n return this;\n };\n\n Container.prototype.remove = function remove(child) {\n if (typeof child !== 'undefined') {\n warnOnce('Container#remove is deprecated. ' + 'Use Container#removeChild');\n this.removeChild(child);\n } else {\n _Node.prototype.remove.call(this);\n }\n return this;\n };\n\n /**\n * Removes node from the container and cleans the parent properties\n * from the node and its children.\n *\n * @param {Node|number} child - child or child’s index\n *\n * @return {Node} this node for methods chain\n *\n * @example\n * rule.nodes.length //=> 5\n * rule.removeChild(decl);\n * rule.nodes.length //=> 4\n * decl.parent //=> undefined\n */\n\n\n Container.prototype.removeChild = function removeChild(child) {\n child = this.index(child);\n this.nodes[child].parent = undefined;\n this.nodes.splice(child, 1);\n\n var index = void 0;\n for (var id in this.indexes) {\n index = this.indexes[id];\n if (index >= child) {\n this.indexes[id] = index - 1;\n }\n }\n\n return this;\n };\n\n /**\n * Removes all children from the container\n * and cleans their parent properties.\n *\n * @return {Node} this node for methods chain\n *\n * @example\n * rule.removeAll();\n * rule.nodes.length //=> 0\n */\n\n\n Container.prototype.removeAll = function removeAll() {\n this.nodes.forEach(function (node) {\n return node.parent = undefined;\n });\n this.nodes = [];\n return this;\n };\n\n /**\n * Passes all declaration values within the container that match pattern\n * through callback, replacing those values with the returned result\n * of callback.\n *\n * This method is useful if you are using a custom unit or function\n * and need to iterate through all values.\n *\n * @param {string|RegExp} pattern - replace pattern\n * @param {object} opts - options to speed up the search\n * @param {string|string[]} opts.props - an array of property names\n * @param {string} opts.fast - string that’s used\n * to narrow down values and speed up\n the regexp search\n * @param {function|string} callback - string to replace pattern\n * or callback that returns a new\n * value.\n * The callback will receive\n * the same arguments as those\n * passed to a function parameter\n * of `String#replace`.\n *\n * @return {Node} this node for methods chain\n *\n * @example\n * root.replaceValues(/\\d+rem/, { fast: 'rem' }, string => {\n * return 15 * parseInt(string) + 'px';\n * });\n */\n\n\n Container.prototype.replaceValues = function replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts;\n opts = {};\n }\n\n this.walkDecls(function (decl) {\n if (opts.props && opts.props.indexOf(decl.prop) === -1) return;\n if (opts.fast && decl.value.indexOf(opts.fast) === -1) return;\n\n decl.value = decl.value.replace(pattern, callback);\n });\n\n return this;\n };\n\n /**\n * Returns `true` if callback returns `true`\n * for all of the container’s children.\n *\n * @param {childCondition} condition - iterator returns true or false.\n *\n * @return {boolean} is every child pass condition\n *\n * @example\n * const noPrefixes = rule.every(i => i.prop[0] !== '-');\n */\n\n\n Container.prototype.every = function every(condition) {\n return this.nodes.every(condition);\n };\n\n /**\n * Returns `true` if callback returns `true` for (at least) one\n * of the container’s children.\n *\n * @param {childCondition} condition - iterator returns true or false.\n *\n * @return {boolean} is some child pass condition\n *\n * @example\n * const hasPrefix = rule.some(i => i.prop[0] === '-');\n */\n\n\n Container.prototype.some = function some(condition) {\n return this.nodes.some(condition);\n };\n\n /**\n * Returns a `child`’s index within the {@link Container#nodes} array.\n *\n * @param {Node} child - child of the current container.\n *\n * @return {number} child index\n *\n * @example\n * rule.index( rule.nodes[2] ) //=> 2\n */\n\n\n Container.prototype.index = function index(child) {\n if (typeof child === 'number') {\n return child;\n } else {\n return this.nodes.indexOf(child);\n }\n };\n\n /**\n * The container’s first child.\n *\n * @type {Node}\n *\n * @example\n * rule.first == rules.nodes[0];\n */\n\n\n Container.prototype.normalize = function normalize(nodes, sample) {\n var _this6 = this;\n\n if (typeof nodes === 'string') {\n nodes = cleanSource(parse$1(nodes).nodes);\n } else if (!Array.isArray(nodes)) {\n if (nodes.type === 'root') {\n nodes = nodes.nodes;\n } else if (nodes.type) {\n nodes = [nodes];\n } else if (nodes.prop) {\n if (typeof nodes.value === 'undefined') {\n throw new Error('Value field is missed in node creation');\n } else if (typeof nodes.value !== 'string') {\n nodes.value = String(nodes.value);\n }\n nodes = [new Declaration(nodes)];\n } else if (nodes.selector) {\n nodes = [new Rule(nodes)];\n } else if (nodes.name) {\n nodes = [new AtRule(nodes)];\n } else if (nodes.text) {\n nodes = [new Comment(nodes)];\n } else {\n throw new Error('Unknown node type in node creation');\n }\n }\n\n var processed = nodes.map(function (i) {\n if (typeof i.raws === 'undefined') i = _this6.rebuild(i);\n\n if (i.parent) i = i.clone();\n if (typeof i.raws.before === 'undefined') {\n if (sample && typeof sample.raws.before !== 'undefined') {\n i.raws.before = sample.raws.before.replace(/[^\\s]/g, '');\n }\n }\n i.parent = _this6;\n return i;\n });\n\n return processed;\n };\n\n Container.prototype.rebuild = function rebuild(node, parent) {\n var _this7 = this;\n\n var fix = void 0;\n if (node.type === 'root') {\n fix = new Root();\n } else if (node.type === 'atrule') {\n fix = new AtRule();\n } else if (node.type === 'rule') {\n fix = new Rule();\n } else if (node.type === 'decl') {\n fix = new Declaration();\n } else if (node.type === 'comment') {\n fix = new Comment();\n }\n\n for (var i in node) {\n if (i === 'nodes') {\n fix.nodes = node.nodes.map(function (j) {\n return _this7.rebuild(j, fix);\n });\n } else if (i === 'parent' && parent) {\n fix.parent = parent;\n } else if (node.hasOwnProperty(i)) {\n fix[i] = node[i];\n }\n }\n\n return fix;\n };\n\n Container.prototype.eachInside = function eachInside(callback) {\n warnOnce('Container#eachInside is deprecated. ' + 'Use Container#walk instead.');\n return this.walk(callback);\n };\n\n Container.prototype.eachDecl = function eachDecl(prop, callback) {\n warnOnce('Container#eachDecl is deprecated. ' + 'Use Container#walkDecls instead.');\n return this.walkDecls(prop, callback);\n };\n\n Container.prototype.eachRule = function eachRule(selector, callback) {\n warnOnce('Container#eachRule is deprecated. ' + 'Use Container#walkRules instead.');\n return this.walkRules(selector, callback);\n };\n\n Container.prototype.eachAtRule = function eachAtRule(name, callback) {\n warnOnce('Container#eachAtRule is deprecated. ' + 'Use Container#walkAtRules instead.');\n return this.walkAtRules(name, callback);\n };\n\n Container.prototype.eachComment = function eachComment(callback) {\n warnOnce('Container#eachComment is deprecated. ' + 'Use Container#walkComments instead.');\n return this.walkComments(callback);\n };\n\n createClass(Container, [{\n key: 'first',\n get: function get$$1() {\n if (!this.nodes) return undefined;\n return this.nodes[0];\n }\n\n /**\n * The container’s last child.\n *\n * @type {Node}\n *\n * @example\n * rule.last == rule.nodes[rule.nodes.length - 1];\n */\n\n }, {\n key: 'last',\n get: function get$$1() {\n if (!this.nodes) return undefined;\n return this.nodes[this.nodes.length - 1];\n }\n }, {\n key: 'semicolon',\n get: function get$$1() {\n warnOnce('Node#semicolon is deprecated. Use Node#raws.semicolon');\n return this.raws.semicolon;\n },\n set: function set$$1(val) {\n warnOnce('Node#semicolon is deprecated. Use Node#raws.semicolon');\n this.raws.semicolon = val;\n }\n }, {\n key: 'after',\n get: function get$$1() {\n warnOnce('Node#after is deprecated. Use Node#raws.after');\n return this.raws.after;\n },\n set: function set$$1(val) {\n warnOnce('Node#after is deprecated. Use Node#raws.after');\n this.raws.after = val;\n }\n\n /**\n * @memberof Container#\n * @member {Node[]} nodes - an array containing the container’s children\n *\n * @example\n * const root = postcss.parse('a { color: black }');\n * root.nodes.length //=> 1\n * root.nodes[0].selector //=> 'a'\n * root.nodes[0].nodes[0].prop //=> 'color'\n */\n\n }]);\n return Container;\n}(Node);\n\n// \n\n/**\n * Represents an at-rule.\n *\n * If it’s followed in the CSS by a {} block, this node will have\n * a nodes property representing its children.\n *\n * @extends Container\n *\n * @example\n * const root = postcss.parse('@charset \"UTF-8\"; @media print {}');\n *\n * const charset = root.first;\n * charset.type //=> 'atrule'\n * charset.nodes //=> undefined\n *\n * const media = root.last;\n * media.nodes //=> []\n */\n\nvar AtRule = function (_Container) {\n inherits(AtRule, _Container);\n\n function AtRule(defaults$$1) {\n classCallCheck(this, AtRule);\n\n var _this = possibleConstructorReturn(this, _Container.call(this, defaults$$1));\n\n _this.type = 'atrule';\n return _this;\n }\n\n AtRule.prototype.append = function append() {\n var _Container$prototype$;\n\n if (!this.nodes) this.nodes = [];\n\n for (var _len = arguments.length, children = Array(_len), _key = 0; _key < _len; _key++) {\n children[_key] = arguments[_key];\n }\n\n return (_Container$prototype$ = _Container.prototype.append).call.apply(_Container$prototype$, [this].concat(children));\n };\n\n AtRule.prototype.prepend = function prepend() {\n var _Container$prototype$2;\n\n if (!this.nodes) this.nodes = [];\n\n for (var _len2 = arguments.length, children = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n children[_key2] = arguments[_key2];\n }\n\n return (_Container$prototype$2 = _Container.prototype.prepend).call.apply(_Container$prototype$2, [this].concat(children));\n };\n\n createClass(AtRule, [{\n key: 'afterName',\n get: function get$$1() {\n warnOnce('AtRule#afterName was deprecated. Use AtRule#raws.afterName');\n return this.raws.afterName;\n },\n set: function set$$1(val) {\n warnOnce('AtRule#afterName was deprecated. Use AtRule#raws.afterName');\n this.raws.afterName = val;\n }\n }, {\n key: '_params',\n get: function get$$1() {\n warnOnce('AtRule#_params was deprecated. Use AtRule#raws.params');\n return this.raws.params;\n },\n set: function set$$1(val) {\n warnOnce('AtRule#_params was deprecated. Use AtRule#raws.params');\n this.raws.params = val;\n }\n\n /**\n * @memberof AtRule#\n * @member {string} name - the at-rule’s name immediately follows the `@`\n *\n * @example\n * const root = postcss.parse('@media print {}');\n * media.name //=> 'media'\n * const media = root.first;\n */\n\n /**\n * @memberof AtRule#\n * @member {string} params - the at-rule’s parameters, the values\n * that follow the at-rule’s name but precede\n * any {} block\n *\n * @example\n * const root = postcss.parse('@media print, screen {}');\n * const media = root.first;\n * media.params //=> 'print, screen'\n */\n\n /**\n * @memberof AtRule#\n * @member {object} raws - Information to generate byte-to-byte equal\n * node string as it was in the origin input.\n *\n * Every parser saves its own properties,\n * but the default CSS parser uses:\n *\n * * `before`: the space symbols before the node. It also stores `*`\n * and `_` symbols before the declaration (IE hack).\n * * `after`: the space symbols after the last child of the node\n * to the end of the node.\n * * `between`: the symbols between the property and value\n * for declarations, selector and `{` for rules, or last parameter\n * and `{` for at-rules.\n * * `semicolon`: contains true if the last child has\n * an (optional) semicolon.\n * * `afterName`: the space between the at-rule name and its parameters.\n *\n * PostCSS cleans at-rule parameters from comments and extra spaces,\n * but it stores origin content in raws properties.\n * As such, if you don’t change a declaration’s value,\n * PostCSS will use the raw value with comments.\n *\n * @example\n * const root = postcss.parse(' @media\\nprint {\\n}')\n * root.first.first.raws //=> { before: ' ',\n * // between: ' ',\n * // afterName: '\\n',\n * // after: '\\n' }\n */\n\n }]);\n return AtRule;\n}(Container);\n\n// \n/**\n * Contains helpers for safely splitting lists of CSS values,\n * preserving parentheses and quotes.\n *\n * @example\n * const list = postcss.list;\n *\n * @namespace list\n */\nvar list = {\n split: function split(string, separators, last) {\n var array = [];\n var current = '';\n var split = false;\n\n var func = 0;\n var quote = false;\n var escape = false;\n\n for (var i = 0; i < string.length; i++) {\n var letter = string[i];\n\n if (quote) {\n if (escape) {\n escape = false;\n } else if (letter === '\\\\') {\n escape = true;\n } else if (letter === quote) {\n quote = false;\n }\n } else if (letter === '\"' || letter === \"'\") {\n quote = letter;\n } else if (letter === '(') {\n func += 1;\n } else if (letter === ')') {\n if (func > 0) func -= 1;\n } else if (func === 0) {\n if (separators.indexOf(letter) !== -1) split = true;\n }\n\n if (split) {\n if (current !== '') array.push(current.trim());\n current = '';\n split = false;\n } else {\n current += letter;\n }\n }\n\n if (last || current !== '') array.push(current.trim());\n return array;\n },\n\n\n /**\n * Safely splits space-separated values (such as those for `background`,\n * `border-radius`, and other shorthand properties).\n *\n * @param {string} string - space-separated values\n *\n * @return {string[]} splitted values\n *\n * @example\n * postcss.list.space('1px calc(10% + 1px)') //=> ['1px', 'calc(10% + 1px)']\n */\n space: function space(string) {\n var spaces = [' ', '\\n', '\\t'];\n return list.split(string, spaces);\n },\n\n\n /**\n * Safely splits comma-separated values (such as those for `transition-*`\n * and `background` properties).\n *\n * @param {string} string - comma-separated values\n *\n * @return {string[]} splitted values\n *\n * @example\n * postcss.list.comma('black, linear-gradient(white, black)')\n * //=> ['black', 'linear-gradient(white, black)']\n */\n comma: function comma(string) {\n var comma = ',';\n return list.split(string, [comma], true);\n }\n};\n\n// \n\n/**\n * Represents a CSS rule: a selector followed by a declaration block.\n *\n * @extends Container\n *\n * @example\n * const root = postcss.parse('a{}');\n * const rule = root.first;\n * rule.type //=> 'rule'\n * rule.toString() //=> 'a{}'\n */\n\nvar Rule = function (_Container) {\n inherits(Rule, _Container);\n\n function Rule(defaults$$1) {\n classCallCheck(this, Rule);\n\n var _this = possibleConstructorReturn(this, _Container.call(this, defaults$$1));\n\n _this.type = 'rule';\n if (!_this.nodes) _this.nodes = [];\n return _this;\n }\n\n /**\n * An array containing the rule’s individual selectors.\n * Groups of selectors are split at commas.\n *\n * @type {string[]}\n *\n * @example\n * const root = postcss.parse('a, b { }');\n * const rule = root.first;\n *\n * rule.selector //=> 'a, b'\n * rule.selectors //=> ['a', 'b']\n *\n * rule.selectors = ['a', 'strong'];\n * rule.selector //=> 'a, strong'\n */\n\n\n createClass(Rule, [{\n key: 'selectors',\n get: function get$$1() {\n return list.comma(this.selector);\n },\n set: function set$$1(values) {\n var match = this.selector ? this.selector.match(/,\\s*/) : null;\n var sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen');\n this.selector = values.join(sep);\n }\n }, {\n key: '_selector',\n get: function get$$1() {\n warnOnce('Rule#_selector is deprecated. Use Rule#raws.selector');\n return this.raws.selector;\n },\n set: function set$$1(val) {\n warnOnce('Rule#_selector is deprecated. Use Rule#raws.selector');\n this.raws.selector = val;\n }\n\n /**\n * @memberof Rule#\n * @member {string} selector - the rule’s full selector represented\n * as a string\n *\n * @example\n * const root = postcss.parse('a, b { }');\n * const rule = root.first;\n * rule.selector //=> 'a, b'\n */\n\n /**\n * @memberof Rule#\n * @member {object} raws - Information to generate byte-to-byte equal\n * node string as it was in the origin input.\n *\n * Every parser saves its own properties,\n * but the default CSS parser uses:\n *\n * * `before`: the space symbols before the node. It also stores `*`\n * and `_` symbols before the declaration (IE hack).\n * * `after`: the space symbols after the last child of the node\n * to the end of the node.\n * * `between`: the symbols between the property and value\n * for declarations, selector and `{` for rules, or last parameter\n * and `{` for at-rules.\n * * `semicolon`: contains true if the last child has\n * an (optional) semicolon.\n *\n * PostCSS cleans selectors from comments and extra spaces,\n * but it stores origin content in raws properties.\n * As such, if you don’t change a declaration’s value,\n * PostCSS will use the raw value with comments.\n *\n * @example\n * const root = postcss.parse('a {\\n color:black\\n}')\n * root.first.first.raws //=> { before: '', between: ' ', after: '\\n' }\n */\n\n }]);\n return Rule;\n}(Container);\n\n// \n/**\n * Represents a plugin’s warning. It can be created using {@link Node#warn}.\n *\n * @example\n * if ( decl.important ) {\n * decl.warn(result, 'Avoid !important', { word: '!important' });\n * }\n */\nvar Warning = function () {\n /**\n * @param {string} text - warning message\n * @param {Object} [opts] - warning options\n * @param {Node} opts.node - CSS node that caused the warning\n * @param {string} opts.word - word in CSS source that caused the warning\n * @param {number} opts.index - index in CSS node string that caused\n * the warning\n * @param {string} opts.plugin - name of the plugin that created\n * this warning. {@link Result#warn} fills\n * this property automatically.\n */\n function Warning(text) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n classCallCheck(this, Warning);\n\n /**\n * @member {string} - Type to filter warnings from\n * {@link Result#messages}. Always equal\n * to `\"warning\"`.\n *\n * @example\n * const nonWarning = result.messages.filter(i => i.type !== 'warning')\n */\n this.type = 'warning';\n /**\n * @member {string} - The warning message.\n *\n * @example\n * warning.text //=> 'Try to avoid !important'\n */\n this.text = text;\n\n if (opts.node && opts.node.source) {\n var pos = opts.node.positionBy(opts);\n /**\n * @member {number} - Line in the input file\n * with this warning’s source\n *\n * @example\n * warning.line //=> 5\n */\n this.line = pos.line;\n /**\n * @member {number} - Column in the input file\n * with this warning’s source.\n *\n * @example\n * warning.column //=> 6\n */\n this.column = pos.column;\n }\n\n for (var opt in opts) {\n this[opt] = opts[opt];\n }\n }\n\n /**\n * Returns a warning position and message.\n *\n * @example\n * warning.toString() //=> 'postcss-lint:a.css:10:14: Avoid !important'\n *\n * @return {string} warning position and message\n */\n\n\n Warning.prototype.toString = function toString() {\n if (this.node) {\n return this.node.error(this.text, {\n plugin: this.plugin,\n index: this.index,\n word: this.word\n }).message;\n } else if (this.plugin) {\n return this.plugin + ': ' + this.text;\n } else {\n return this.text;\n }\n };\n\n /**\n * @memberof Warning#\n * @member {string} plugin - The name of the plugin that created\n * it will fill this property automatically.\n * this warning. When you call {@link Node#warn}\n *\n * @example\n * warning.plugin //=> 'postcss-important'\n */\n\n /**\n * @memberof Warning#\n * @member {Node} node - Contains the CSS node that caused the warning.\n *\n * @example\n * warning.node.toString() //=> 'color: white !important'\n */\n\n\n return Warning;\n}();\n\n// \n\n/**\n * @typedef {object} Message\n * @property {string} type - message type\n * @property {string} plugin - source PostCSS plugin name\n */\n\n/**\n * Provides the result of the PostCSS transformations.\n *\n * A Result instance is returned by {@link LazyResult#then}\n * or {@link Root#toResult} methods.\n *\n * @example\n * postcss([cssnext]).process(css).then(function (result) {\n * console.log(result.css);\n * });\n *\n * @example\n * var result2 = postcss.parse(css).toResult();\n */\n\nvar Result = function () {\n /**\n * @param {Processor} processor - processor used for this transformation.\n * @param {Root} root - Root node after all transformations.\n * @param {processOptions} opts - options from the {@link Processor#process}\n * or {@link Root#toResult}\n */\n function Result(processor, root, opts) {\n classCallCheck(this, Result);\n\n /**\n * @member {Processor} - The Processor instance used\n * for this transformation.\n *\n * @example\n * for ( let plugin of result.processor.plugins) {\n * if ( plugin.postcssPlugin === 'postcss-bad' ) {\n * throw 'postcss-good is incompatible with postcss-bad';\n * }\n * });\n */\n this.processor = processor;\n /**\n * @member {Message[]} - Contains messages from plugins\n * (e.g., warnings or custom messages).\n * Each message should have type\n * and plugin properties.\n *\n * @example\n * postcss.plugin('postcss-min-browser', () => {\n * return (root, result) => {\n * var browsers = detectMinBrowsersByCanIUse(root);\n * result.messages.push({\n * type: 'min-browser',\n * plugin: 'postcss-min-browser',\n * browsers: browsers\n * });\n * };\n * });\n */\n this.messages = [];\n /**\n * @member {Root} - Root node after all transformations.\n *\n * @example\n * root.toResult().root == root;\n */\n this.root = root;\n /**\n * @member {processOptions} - Options from the {@link Processor#process}\n * or {@link Root#toResult} call\n * that produced this Result instance.\n *\n * @example\n * root.toResult(opts).opts == opts;\n */\n this.opts = opts;\n /**\n * @member {string} - A CSS string representing of {@link Result#root}.\n *\n * @example\n * postcss.parse('a{}').toResult().css //=> \"a{}\"\n */\n this.css = undefined;\n /**\n * @member {SourceMapGenerator} - An instance of `SourceMapGenerator`\n * class from the `source-map` library,\n * representing changes\n * to the {@link Result#root} instance.\n *\n * @example\n * result.map.toJSON() //=> { version: 3, file: 'a.css', … }\n *\n * @example\n * if ( result.map ) {\n * fs.writeFileSync(result.opts.to + '.map', result.map.toString());\n * }\n */\n this.map = undefined;\n }\n\n /**\n * Returns for @{link Result#css} content.\n *\n * @example\n * result + '' === result.css\n *\n * @return {string} string representing of {@link Result#root}\n */\n\n\n Result.prototype.toString = function toString() {\n return this.css;\n };\n\n /**\n * Creates an instance of {@link Warning} and adds it\n * to {@link Result#messages}.\n *\n * @param {string} text - warning message\n * @param {Object} [opts] - warning options\n * @param {Node} opts.node - CSS node that caused the warning\n * @param {string} opts.word - word in CSS source that caused the warning\n * @param {number} opts.index - index in CSS node string that caused\n * the warning\n * @param {string} opts.plugin - name of the plugin that created\n * this warning. {@link Result#warn} fills\n * this property automatically.\n *\n * @return {Warning} created warning\n */\n\n\n Result.prototype.warn = function warn(text) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin;\n }\n }\n\n var warning = new Warning(text, opts);\n this.messages.push(warning);\n\n return warning;\n };\n\n /**\n * Returns warnings from plugins. Filters {@link Warning} instances\n * from {@link Result#messages}.\n *\n * @example\n * result.warnings().forEach(warn => {\n * console.warn(warn.toString());\n * });\n *\n * @return {Warning[]} warnings from plugins\n */\n\n\n Result.prototype.warnings = function warnings() {\n return this.messages.filter(function (i) {\n return i.type === 'warning';\n });\n };\n\n /**\n * An alias for the {@link Result#css} property.\n * Use it with syntaxes that generate non-CSS output.\n * @type {string}\n *\n * @example\n * result.css === result.content;\n */\n\n\n createClass(Result, [{\n key: 'content',\n get: function get$$1() {\n return this.css;\n }\n }]);\n return Result;\n}();\n\n// \n\nfunction isPromise(obj) {\n return (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && typeof obj.then === 'function';\n}\n\n/**\n * @callback onFulfilled\n * @param {Result} result\n */\n\n/**\n * @callback onRejected\n * @param {Error} error\n */\n\n/**\n * A Promise proxy for the result of PostCSS transformations.\n *\n * A `LazyResult` instance is returned by {@link Processor#process}.\n *\n * @example\n * const lazy = postcss([cssnext]).process(css);\n */\n\nvar LazyResult = function () {\n function LazyResult(processor, css, opts) {\n classCallCheck(this, LazyResult);\n\n this.stringified = false;\n this.processed = false;\n\n var root = void 0;\n if ((typeof css === 'undefined' ? 'undefined' : _typeof(css)) === 'object' && css.type === 'root') {\n root = css;\n } else if (css instanceof LazyResult || css instanceof Result) {\n root = css.root;\n if (css.map) {\n if (typeof opts.map === 'undefined') opts.map = {};\n if (!opts.map.inline) opts.map.inline = false;\n opts.map.prev = css.map;\n }\n } else {\n var parser = parse$1;\n if (opts.syntax) parser = opts.syntax.parse;\n if (opts.parser) parser = opts.parser;\n if (parser.parse) parser = parser.parse;\n\n try {\n root = parser(css, opts);\n } catch (error) {\n this.error = error;\n }\n }\n\n this.result = new Result(processor, root, opts);\n }\n\n /**\n * Returns a {@link Processor} instance, which will be used\n * for CSS transformations.\n * @type {Processor}\n */\n\n\n /**\n * Processes input CSS through synchronous plugins\n * and calls {@link Result#warnings()}.\n *\n * @return {Warning[]} warnings from plugins\n */\n LazyResult.prototype.warnings = function warnings() {\n return this.sync().warnings();\n };\n\n /**\n * Alias for the {@link LazyResult#css} property.\n *\n * @example\n * lazy + '' === lazy.css;\n *\n * @return {string} output CSS\n */\n\n\n LazyResult.prototype.toString = function toString() {\n return this.css;\n };\n\n /**\n * Processes input CSS through synchronous and asynchronous plugins\n * and calls `onFulfilled` with a Result instance. If a plugin throws\n * an error, the `onRejected` callback will be executed.\n *\n * It implements standard Promise API.\n *\n * @param {onFulfilled} onFulfilled - callback will be executed\n * when all plugins will finish work\n * @param {onRejected} onRejected - callback will be execited on any error\n *\n * @return {Promise} Promise API to make queue\n *\n * @example\n * postcss([cssnext]).process(css).then(result => {\n * console.log(result.css);\n * });\n */\n\n\n LazyResult.prototype.then = function then(onFulfilled, onRejected) {\n return this.async().then(onFulfilled, onRejected);\n };\n\n /**\n * Processes input CSS through synchronous and asynchronous plugins\n * and calls onRejected for each error thrown in any plugin.\n *\n * It implements standard Promise API.\n *\n * @param {onRejected} onRejected - callback will be execited on any error\n *\n * @return {Promise} Promise API to make queue\n *\n * @example\n * postcss([cssnext]).process(css).then(result => {\n * console.log(result.css);\n * }).catch(error => {\n * console.error(error);\n * });\n */\n\n\n LazyResult.prototype.catch = function _catch(onRejected) {\n return this.async().catch(onRejected);\n };\n\n LazyResult.prototype.handleError = function handleError(error, plugin) {\n try {\n this.error = error;\n if (error.name === 'CssSyntaxError' && !error.plugin) {\n error.plugin = plugin.postcssPlugin;\n error.setMessage();\n } else if (plugin.postcssVersion) {\n var pluginName = plugin.postcssPlugin;\n var pluginVer = plugin.postcssVersion;\n var runtimeVer = this.result.processor.version;\n var a = pluginVer.split('.');\n var b = runtimeVer.split('.');\n\n if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) {\n warnOnce('' + ('Your current PostCSS version ' + 'is ') + runtimeVer + ', but ' + pluginName + ' ' + ('uses ' + pluginVer + '. Perhaps this is ') + 'the source of the error below.');\n }\n }\n } catch (err) {\n if (console && console.error) console.error(err);\n }\n };\n\n LazyResult.prototype.asyncTick = function asyncTick(resolve, reject) {\n var _this = this;\n\n if (this.plugin >= this.processor.plugins.length) {\n this.processed = true;\n return resolve();\n }\n\n try {\n var plugin = this.processor.plugins[this.plugin];\n var promise = this.run(plugin);\n this.plugin += 1;\n\n if (isPromise(promise)) {\n promise.then(function () {\n _this.asyncTick(resolve, reject);\n }).catch(function (error) {\n _this.handleError(error, plugin);\n _this.processed = true;\n reject(error);\n });\n } else {\n this.asyncTick(resolve, reject);\n }\n } catch (error) {\n this.processed = true;\n reject(error);\n }\n };\n\n LazyResult.prototype.async = function async() {\n var _this2 = this;\n\n if (this.processed) {\n return new Promise(function (resolve, reject) {\n if (_this2.error) {\n reject(_this2.error);\n } else {\n resolve(_this2.stringify());\n }\n });\n }\n if (this.processing) {\n return this.processing;\n }\n\n this.processing = new Promise(function (resolve, reject) {\n if (_this2.error) return reject(_this2.error);\n _this2.plugin = 0;\n _this2.asyncTick(resolve, reject);\n }).then(function () {\n _this2.processed = true;\n return _this2.stringify();\n });\n\n return this.processing;\n };\n\n LazyResult.prototype.sync = function sync() {\n var _this3 = this;\n\n if (this.processed) return this.result;\n this.processed = true;\n\n if (this.processing) {\n throw new Error('Use process(css).then(cb) to work with async plugins');\n }\n\n if (this.error) throw this.error;\n\n this.result.processor.plugins.forEach(function (plugin) {\n var promise = _this3.run(plugin);\n if (isPromise(promise)) {\n throw new Error('Use process(css).then(cb) to work with async plugins');\n }\n });\n\n return this.result;\n };\n\n LazyResult.prototype.run = function run(plugin) {\n this.result.lastPlugin = plugin;\n\n try {\n return plugin(this.result.root, this.result);\n } catch (error) {\n this.handleError(error, plugin);\n throw error;\n }\n };\n\n LazyResult.prototype.stringify = function stringify$$1() {\n if (this.stringified) return this.result;\n this.stringified = true;\n\n this.sync();\n\n var opts = this.result.opts;\n var str = stringify$1;\n if (opts.syntax) str = opts.syntax.stringify;\n if (opts.stringifier) str = opts.stringifier;\n if (str.stringify) str = str.stringify;\n\n var result = '';\n str(this.root, function (i) {\n result += i;\n });\n this.result.css = result;\n\n return this.result;\n };\n\n createClass(LazyResult, [{\n key: 'processor',\n get: function get$$1() {\n return this.result.processor;\n }\n\n /**\n * Options from the {@link Processor#process} call.\n * @type {processOptions}\n */\n\n }, {\n key: 'opts',\n get: function get$$1() {\n return this.result.opts;\n }\n\n /**\n * Processes input CSS through synchronous plugins, converts `Root`\n * to a CSS string and returns {@link Result#css}.\n *\n * This property will only work with synchronous plugins.\n * If the processor contains any asynchronous plugins\n * it will throw an error. This is why this method is only\n * for debug purpose, you should always use {@link LazyResult#then}.\n *\n * @type {string}\n * @see Result#css\n */\n\n }, {\n key: 'css',\n get: function get$$1() {\n return this.stringify().css;\n }\n\n /**\n * An alias for the `css` property. Use it with syntaxes\n * that generate non-CSS output.\n *\n * This property will only work with synchronous plugins.\n * If the processor contains any asynchronous plugins\n * it will throw an error. This is why this method is only\n * for debug purpose, you should always use {@link LazyResult#then}.\n *\n * @type {string}\n * @see Result#content\n */\n\n }, {\n key: 'content',\n get: function get$$1() {\n return this.stringify().content;\n }\n\n /**\n * Processes input CSS through synchronous plugins\n * and returns {@link Result#map}.\n *\n * This property will only work with synchronous plugins.\n * If the processor contains any asynchronous plugins\n * it will throw an error. This is why this method is only\n * for debug purpose, you should always use {@link LazyResult#then}.\n *\n * @type {SourceMapGenerator}\n * @see Result#map\n */\n\n }, {\n key: 'map',\n get: function get$$1() {\n return this.stringify().map;\n }\n\n /**\n * Processes input CSS through synchronous plugins\n * and returns {@link Result#root}.\n *\n * This property will only work with synchronous plugins. If the processor\n * contains any asynchronous plugins it will throw an error.\n *\n * This is why this method is only for debug purpose,\n * you should always use {@link LazyResult#then}.\n *\n * @type {Root}\n * @see Result#root\n */\n\n }, {\n key: 'root',\n get: function get$$1() {\n return this.sync().root;\n }\n\n /**\n * Processes input CSS through synchronous plugins\n * and returns {@link Result#messages}.\n *\n * This property will only work with synchronous plugins. If the processor\n * contains any asynchronous plugins it will throw an error.\n *\n * This is why this method is only for debug purpose,\n * you should always use {@link LazyResult#then}.\n *\n * @type {Message[]}\n * @see Result#messages\n */\n\n }, {\n key: 'messages',\n get: function get$$1() {\n return this.sync().messages;\n }\n }]);\n return LazyResult;\n}();\n\n// \n\n/**\n * @callback builder\n * @param {string} part - part of generated CSS connected to this node\n * @param {Node} node - AST node\n * @param {\"start\"|\"end\"} [type] - node’s part type\n */\n\n/**\n * @callback parser\n *\n * @param {string|toString} css - string with input CSS or any object\n * with toString() method, like a Buffer\n * @param {processOptions} [opts] - options with only `from` and `map` keys\n *\n * @return {Root} PostCSS AST\n */\n\n/**\n * @callback stringifier\n *\n * @param {Node} node - start node for stringifing. Usually {@link Root}.\n * @param {builder} builder - function to concatenate CSS from node’s parts\n * or generate string and source map\n *\n * @return {void}\n */\n\n/**\n * @typedef {object} syntax\n * @property {parser} parse - function to generate AST by string\n * @property {stringifier} stringify - function to generate string by AST\n */\n\n/**\n * @typedef {object} toString\n * @property {function} toString\n */\n\n/**\n * @callback pluginFunction\n * @param {Root} root - parsed input CSS\n * @param {Result} result - result to set warnings or check other plugins\n */\n\n/**\n * @typedef {object} Plugin\n * @property {function} postcss - PostCSS plugin function\n */\n\n/**\n * @typedef {object} processOptions\n * @property {string} from - the path of the CSS source file.\n * You should always set `from`,\n * because it is used in source map\n * generation and syntax error messages.\n * @property {string} to - the path where you’ll put the output\n * CSS file. You should always set `to`\n * to generate correct source maps.\n * @property {parser} parser - function to generate AST by string\n * @property {stringifier} stringifier - class to generate string by AST\n * @property {syntax} syntax - object with `parse` and `stringify`\n * @property {object} map - source map options\n * @property {boolean} map.inline - does source map should\n * be embedded in the output\n * CSS as a base64-encoded\n * comment\n * @property {string|object|false|function} map.prev - source map content\n * from a previous\n * processing step\n * (for example, Sass).\n * PostCSS will try to find\n * previous map\n * automatically, so you\n * could disable it by\n * `false` value.\n * @property {boolean} map.sourcesContent - does PostCSS should set\n * the origin content to map\n * @property {string|false} map.annotation - does PostCSS should set\n * annotation comment to map\n * @property {string} map.from - override `from` in map’s\n * `sources`\n */\n\n/**\n * Contains plugins to process CSS. Create one `Processor` instance,\n * initialize its plugins, and then use that instance on numerous CSS files.\n *\n * @example\n * const processor = postcss([autoprefixer, precss]);\n * processor.process(css1).then(result => console.log(result.css));\n * processor.process(css2).then(result => console.log(result.css));\n */\n\nvar Processor = function () {\n /**\n * @param {Array.|Processor} plugins - PostCSS\n * plugins. See {@link Processor#use} for plugin format.\n */\n function Processor() {\n var plugins = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n classCallCheck(this, Processor);\n\n /**\n * @member {string} - Current PostCSS version.\n *\n * @example\n * if ( result.processor.version.split('.')[0] !== '5' ) {\n * throw new Error('This plugin works only with PostCSS 5');\n * }\n */\n this.version = '5.2.0';\n /**\n * @member {pluginFunction[]} - Plugins added to this processor.\n *\n * @example\n * const processor = postcss([autoprefixer, precss]);\n * processor.plugins.length //=> 2\n */\n this.plugins = this.normalize(plugins);\n }\n\n /**\n * Adds a plugin to be used as a CSS processor.\n *\n * PostCSS plugin can be in 4 formats:\n * * A plugin created by {@link postcss.plugin} method.\n * * A function. PostCSS will pass the function a @{link Root}\n * as the first argument and current {@link Result} instance\n * as the second.\n * * An object with a `postcss` method. PostCSS will use that method\n * as described in #2.\n * * Another {@link Processor} instance. PostCSS will copy plugins\n * from that instance into this one.\n *\n * Plugins can also be added by passing them as arguments when creating\n * a `postcss` instance (see [`postcss(plugins)`]).\n *\n * Asynchronous plugins should return a `Promise` instance.\n *\n * @param {Plugin|pluginFunction|Processor} plugin - PostCSS plugin\n * or {@link Processor}\n * with plugins\n *\n * @example\n * const processor = postcss()\n * .use(autoprefixer)\n * .use(precss);\n *\n * @return {Processes} current processor to make methods chain\n */\n\n\n Processor.prototype.use = function use(plugin) {\n this.plugins = this.plugins.concat(this.normalize([plugin]));\n return this;\n };\n\n /**\n * Parses source CSS and returns a {@link LazyResult} Promise proxy.\n * Because some plugins can be asynchronous it doesn’t make\n * any transformations. Transformations will be applied\n * in the {@link LazyResult} methods.\n *\n * @param {string|toString|Result} css - String with input CSS or\n * any object with a `toString()`\n * method, like a Buffer.\n * Optionally, send a {@link Result}\n * instance and the processor will\n * take the {@link Root} from it.\n * @param {processOptions} [opts] - options\n *\n * @return {LazyResult} Promise proxy\n *\n * @example\n * processor.process(css, { from: 'a.css', to: 'a.out.css' })\n * .then(result => {\n * console.log(result.css);\n * });\n */\n\n\n Processor.prototype.process = function process(css) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return new LazyResult(this, css, opts);\n };\n\n Processor.prototype.normalize = function normalize(plugins) {\n var normalized = [];\n plugins.forEach(function (i) {\n if (i.postcss) i = i.postcss;\n\n if ((typeof i === 'undefined' ? 'undefined' : _typeof(i)) === 'object' && Array.isArray(i.plugins)) {\n normalized = normalized.concat(i.plugins);\n } else if (typeof i === 'function') {\n normalized.push(i);\n } else {\n throw new Error(i + ' is not a PostCSS plugin');\n }\n });\n return normalized;\n };\n\n return Processor;\n}();\n\n// \n\n/**\n * Represents a CSS file and contains all its parsed nodes.\n *\n * @extends Container\n *\n * @example\n * const root = postcss.parse('a{color:black} b{z-index:2}');\n * root.type //=> 'root'\n * root.nodes.length //=> 2\n */\n\nvar Root = function (_Container) {\n inherits(Root, _Container);\n\n function Root(defaults$$1) {\n classCallCheck(this, Root);\n\n var _this = possibleConstructorReturn(this, _Container.call(this, defaults$$1));\n\n _this.type = 'root';\n if (!_this.nodes) _this.nodes = [];\n return _this;\n }\n\n Root.prototype.removeChild = function removeChild(child) {\n child = this.index(child);\n\n if (child === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[child].raws.before;\n }\n\n return _Container.prototype.removeChild.call(this, child);\n };\n\n Root.prototype.normalize = function normalize(child, sample, type) {\n var nodes = _Container.prototype.normalize.call(this, child);\n\n if (sample) {\n if (type === 'prepend') {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before;\n } else {\n delete sample.raws.before;\n }\n } else if (this.first !== sample) {\n nodes.forEach(function (node) {\n node.raws.before = sample.raws.before;\n });\n }\n }\n\n return nodes;\n };\n\n /**\n * Returns a {@link Result} instance representing the root’s CSS.\n *\n * @param {processOptions} [opts] - options with only `to` and `map` keys\n *\n * @return {Result} result with current root’s CSS\n *\n * @example\n * const root1 = postcss.parse(css1, { from: 'a.css' });\n * const root2 = postcss.parse(css2, { from: 'b.css' });\n * root1.append(root2);\n * const result = root1.toResult({ to: 'all.css', map: true });\n */\n\n\n Root.prototype.toResult = function toResult() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var lazy = new LazyResult(new Processor(), this, opts);\n return lazy.stringify();\n };\n\n Root.prototype.remove = function remove(child) {\n warnOnce('Root#remove is deprecated. Use Root#removeChild');\n this.removeChild(child);\n };\n\n Root.prototype.prevMap = function prevMap() {\n warnOnce('Root#prevMap is deprecated. Use Root#source.input.map');\n return this.source.input.map;\n };\n\n /**\n * @memberof Root#\n * @member {object} raws - Information to generate byte-to-byte equal\n * node string as it was in the origin input.\n *\n * Every parser saves its own properties,\n * but the default CSS parser uses:\n *\n * * `after`: the space symbols after the last child to the end of file.\n * * `semicolon`: is the last child has an (optional) semicolon.\n *\n * @example\n * postcss.parse('a {}\\n').raws //=> { after: '\\n' }\n * postcss.parse('a {}').raws //=> { after: '' }\n */\n\n\n return Root;\n}(Container);\n\n// \n// import PreviousMap from './previous-map';\n\nvar sequence = 0;\n\n/**\n * @typedef {object} filePosition\n * @property {string} file - path to file\n * @property {number} line - source line in file\n * @property {number} column - source column in file\n */\n\n/**\n * Represents the source CSS.\n *\n * @example\n * const root = postcss.parse(css, { from: file });\n * const input = root.source.input;\n */\n\nvar Input = function () {\n /**\n * @param {string} css - input CSS source\n * @param {object} [opts] - {@link Processor#process} options\n */\n function Input(css) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n classCallCheck(this, Input);\n\n /**\n * @member {string} - input CSS source\n *\n * @example\n * const input = postcss.parse('a{}', { from: file }).input;\n * input.css //=> \"a{}\";\n */\n this.css = css.toString();\n\n if (this.css[0] === '\\uFEFF' || this.css[0] === '\\uFFFE') {\n this.css = this.css.slice(1);\n }\n\n if (opts.from) {\n if (/^\\w+:\\/\\//.test(opts.from)) {\n /**\n * @member {string} - The absolute path to the CSS source file\n * defined with the `from` option.\n *\n * @example\n * const root = postcss.parse(css, { from: 'a.css' });\n * root.source.input.file //=> '/home/ai/a.css'\n */\n this.file = opts.from;\n } else {\n this.file = path.resolve(opts.from);\n }\n }\n\n /*\n let map = new PreviousMap(this.css, opts);\n if ( map.text ) {\n /!**\n * @member {PreviousMap} - The input source map passed from\n * a compilation step before PostCSS\n * (for example, from Sass compiler).\n *\n * @example\n * root.source.input.map.consumer().sources //=> ['a.sass']\n *!/\n this.map = map;\n let file = map.consumer().file;\n if ( !this.file && file ) this.file = this.mapResolve(file);\n }\n */\n\n if (!this.file) {\n sequence += 1;\n /**\n * @member {string} - The unique ID of the CSS source. It will be\n * created if `from` option is not provided\n * (because PostCSS does not know the file path).\n *\n * @example\n * const root = postcss.parse(css);\n * root.source.input.file //=> undefined\n * root.source.input.id //=> \"\"\n */\n this.id = '';\n }\n if (this.map) this.map.file = this.from;\n }\n\n Input.prototype.error = function error(message, line, column) {\n var opts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n var result = void 0;\n var origin = this.origin(line, column);\n if (origin) {\n result = new CssSyntaxError(message, origin.line, origin.column, origin.source, origin.file, opts.plugin);\n } else {\n result = new CssSyntaxError(message, line, column, this.css, this.file, opts.plugin);\n }\n\n result.input = { line: line, column: column, source: this.css };\n if (this.file) result.input.file = this.file;\n\n return result;\n };\n\n /**\n * Reads the input source map and returns a symbol position\n * in the input source (e.g., in a Sass file that was compiled\n * to CSS before being passed to PostCSS).\n *\n * @param {number} line - line in input CSS\n * @param {number} column - column in input CSS\n *\n * @return {filePosition} position in input source\n *\n * @example\n * root.source.input.origin(1, 1) //=> { file: 'a.css', line: 3, column: 1 }\n */\n\n\n Input.prototype.origin = function origin(line, column) {\n if (!this.map) return false;\n var consumer = this.map.consumer();\n\n var from = consumer.originalPositionFor({ line: line, column: column });\n if (!from.source) return false;\n\n var result = {\n file: this.mapResolve(from.source),\n line: from.line,\n column: from.column\n };\n\n var source = consumer.sourceContentFor(from.source);\n if (source) result.source = source;\n\n return result;\n };\n\n Input.prototype.mapResolve = function mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file;\n } else {\n return path.resolve(this.map.consumer().sourceRoot || '.', file);\n }\n };\n\n /**\n * The CSS source identifier. Contains {@link Input#file} if the user\n * set the `from` option, or {@link Input#id} if they did not.\n * @type {string}\n *\n * @example\n * const root = postcss.parse(css, { from: 'a.css' });\n * root.source.input.from //=> \"/home/ai/a.css\"\n *\n * const root = postcss.parse(css);\n * root.source.input.from //=> \"\"\n */\n\n\n createClass(Input, [{\n key: 'from',\n get: function get$$1() {\n return this.file || this.id;\n }\n }]);\n return Input;\n}();\n\n// \n\nvar SafeParser = function (_Parser) {\n inherits(SafeParser, _Parser);\n\n function SafeParser() {\n classCallCheck(this, SafeParser);\n return possibleConstructorReturn(this, _Parser.apply(this, arguments));\n }\n\n SafeParser.prototype.tokenize = function tokenize$$1() {\n this.tokens = tokenize(this.input, { ignoreErrors: true });\n };\n\n SafeParser.prototype.comment = function comment(token) {\n var node = new Comment();\n this.init(node, token[2], token[3]);\n node.source.end = { line: token[4], column: token[5] };\n\n var text = token[1].slice(2);\n if (text.slice(-2) === '*/') text = text.slice(0, -2);\n\n if (/^\\s*$/.test(text)) {\n node.text = '';\n node.raws.left = text;\n node.raws.right = '';\n } else {\n var match = text.match(/^(\\s*)([^]*[^\\s])(\\s*)$/);\n node.text = match[2];\n node.raws.left = match[1];\n node.raws.right = match[3];\n }\n };\n\n SafeParser.prototype.unclosedBracket = function unclosedBracket() {};\n\n SafeParser.prototype.unknownWord = function unknownWord(start) {\n var buffer = this.tokens.slice(start, this.pos + 1);\n this.spaces += buffer.map(function (i) {\n return i[1];\n }).join('');\n };\n\n SafeParser.prototype.unexpectedClose = function unexpectedClose() {\n this.current.raws.after += '}';\n };\n\n SafeParser.prototype.doubleColon = function doubleColon() {};\n\n SafeParser.prototype.unnamedAtrule = function unnamedAtrule(node) {\n node.name = '';\n };\n\n SafeParser.prototype.precheckMissedSemicolon = function precheckMissedSemicolon(tokens) {\n var colon = this.colon(tokens);\n if (colon === false) return;\n\n var split = void 0;\n for (split = colon - 1; split >= 0; split--) {\n if (tokens[split][0] === 'word') break;\n }\n for (split -= 1; split >= 0; split--) {\n if (tokens[split][0] !== 'space') {\n split += 1;\n break;\n }\n }\n var other = tokens.splice(split, tokens.length - split);\n this.decl(other);\n };\n\n SafeParser.prototype.checkMissedSemicolon = function checkMissedSemicolon() {};\n\n SafeParser.prototype.endFile = function endFile() {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.current.raws.after = (this.current.raws.after || '') + this.spaces;\n\n while (this.current.parent) {\n this.current = this.current.parent;\n this.current.raws.after = '';\n }\n };\n\n return SafeParser;\n}(Parser);\n\n// \n\nfunction safeParse(css, opts) {\n var input = new Input(css, opts);\n\n var parser = new SafeParser(input);\n parser.tokenize();\n parser.loop();\n\n return parser.root;\n}\n\n// \n\nvar generated = {};\n\n/*\n InlineStyle takes arbitrary CSS and generates a flat object\n */\nvar _InlineStyle = (function (styleSheet) {\n var InlineStyle = function () {\n function InlineStyle(rules) {\n classCallCheck(this, InlineStyle);\n\n this.rules = rules;\n }\n\n InlineStyle.prototype.generateStyleObject = function generateStyleObject(executionContext) {\n var flatCSS = flatten(this.rules, executionContext).join('');\n\n var hash = murmurhash(flatCSS);\n if (!generated[hash]) {\n var root = safeParse(flatCSS);\n var declPairs = [];\n root.each(function (node) {\n if (node.type === 'decl') {\n declPairs.push([node.prop, node.value]);\n } else if (process.env.NODE_ENV !== 'production' && node.type !== 'comment') {\n /* eslint-disable no-console */\n console.warn('Node of type ' + node.type + ' not supported as an inline style');\n }\n });\n // RN currently does not support differing values for the corner radii of Image\n // components (but does for View). It is almost impossible to tell whether we'll have\n // support, so we'll just disable multiple values here.\n // https://github.com/styled-components/css-to-react-native/issues/11\n var styleObject = transformDeclPairs(declPairs, ['borderRadius', 'borderWidth', 'borderColor', 'borderStyle']);\n var styles = styleSheet.create({\n generated: styleObject\n });\n generated[hash] = styles.generated;\n }\n return generated[hash];\n };\n\n return InlineStyle;\n }();\n\n return InlineStyle;\n});\n\n// \nvar EMPTY_ARRAY = Object.freeze([]);\nvar EMPTY_OBJECT = Object.freeze({});\n\n// \n\nvar determineTheme = (function (props, fallbackTheme) {\n var defaultProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n // Props should take precedence over ThemeProvider, which should take precedence over\n // defaultProps, but React automatically puts defaultProps on props.\n\n /* eslint-disable react/prop-types, flowtype-errors/show-errors */\n var isDefaultTheme = defaultProps ? props.theme === defaultProps.theme : false;\n var theme = props.theme && !isDefaultTheme ? props.theme : fallbackTheme || defaultProps.theme;\n /* eslint-enable */\n\n return theme;\n});\n\n// \n\nfunction isTag(target) {\n return typeof target === 'string' && (process.env.NODE_ENV !== 'production' ? target.charAt(0) === target.charAt(0).toLowerCase() : true);\n}\n\n// \n\nfunction generateDisplayName(target) {\n // $FlowFixMe\n return isTag(target) ? 'styled.' + target : 'Styled(' + getComponentName(target) + ')';\n}\n\nvar _TYPE_STATICS;\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDerivedStateFromProps: true,\n propTypes: true,\n type: true\n};\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};\n\nvar TYPE_STATICS = (_TYPE_STATICS = {}, _TYPE_STATICS[ForwardRef] = {\n $$typeof: true,\n render: true\n}, _TYPE_STATICS);\n\nvar defineProperty$1 = Object.defineProperty,\n getOwnPropertyNames = Object.getOwnPropertyNames,\n _Object$getOwnPropert = Object.getOwnPropertySymbols,\n getOwnPropertySymbols = _Object$getOwnPropert === undefined ? function () {\n return [];\n} : _Object$getOwnPropert,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor,\n getPrototypeOf = Object.getPrototypeOf,\n objectPrototype = Object.prototype;\nvar arrayPrototype = Array.prototype;\n\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n\n var keys = arrayPrototype.concat(getOwnPropertyNames(sourceComponent),\n // $FlowFixMe\n getOwnPropertySymbols(sourceComponent));\n\n var targetStatics = TYPE_STATICS[targetComponent.$$typeof] || REACT_STATICS;\n\n var sourceStatics = TYPE_STATICS[sourceComponent.$$typeof] || REACT_STATICS;\n\n var i = keys.length;\n var descriptor = void 0;\n var key = void 0;\n\n // eslint-disable-next-line no-plusplus\n while (i--) {\n key = keys[i];\n\n if (\n // $FlowFixMe\n !KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) &&\n // $FlowFixMe\n !(targetStatics && targetStatics[key])) {\n descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n if (descriptor) {\n try {\n // Avoid failures from read-only properties\n defineProperty$1(targetComponent, key, descriptor);\n } catch (e) {\n /* fail silently */\n }\n }\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\n// \nfunction isDerivedReactComponent(fn) {\n return !!(fn && fn.prototype && fn.prototype.isReactComponent);\n}\n\n// \n// Helper to call a given function, only once\nvar once = (function (cb) {\n var called = false;\n\n return function () {\n if (!called) {\n called = true;\n cb.apply(undefined, arguments);\n }\n };\n});\n\n// \n\nvar ThemeContext = createContext();\n\nvar ThemeConsumer = ThemeContext.Consumer;\n\n/**\n * Provide a theme to an entire react component tree via context\n */\n\nvar ThemeProvider = function (_Component) {\n inherits(ThemeProvider, _Component);\n\n function ThemeProvider(props) {\n classCallCheck(this, ThemeProvider);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getContext = index(_this.getContext.bind(_this));\n _this.renderInner = _this.renderInner.bind(_this);\n return _this;\n }\n\n ThemeProvider.prototype.render = function render() {\n if (!this.props.children) return null;\n\n return React.createElement(\n ThemeContext.Consumer,\n null,\n this.renderInner\n );\n };\n\n ThemeProvider.prototype.renderInner = function renderInner(outerTheme) {\n var context = this.getContext(this.props.theme, outerTheme);\n\n return React.createElement(\n ThemeContext.Provider,\n { value: context },\n React.Children.only(this.props.children)\n );\n };\n\n /**\n * Get the theme from the props, supporting both (outerTheme) => {}\n * as well as object notation\n */\n\n\n ThemeProvider.prototype.getTheme = function getTheme(theme, outerTheme) {\n if (isFunction(theme)) {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme === null || Array.isArray(mergedTheme) || (typeof mergedTheme === 'undefined' ? 'undefined' : _typeof(mergedTheme)) !== 'object')) {\n throw new StyledComponentsError(7);\n }\n\n return mergedTheme;\n }\n\n if (theme === null || Array.isArray(theme) || (typeof theme === 'undefined' ? 'undefined' : _typeof(theme)) !== 'object') {\n throw new StyledComponentsError(8);\n }\n\n return _extends({}, outerTheme, theme);\n };\n\n ThemeProvider.prototype.getContext = function getContext(theme, outerTheme) {\n return this.getTheme(theme, outerTheme);\n };\n\n return ThemeProvider;\n}(Component);\n\n// \n\n// $FlowFixMe\n\nvar StyledNativeComponent = function (_Component) {\n inherits(StyledNativeComponent, _Component);\n\n function StyledNativeComponent(props) {\n classCallCheck(this, StyledNativeComponent);\n\n var _this = possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.attrs = {};\n\n\n if (process.env.NODE_ENV !== 'production') {\n _this.warnInnerRef = once(function (displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('The \"innerRef\" API has been removed in styled-components v4 in favor of React 16 ref forwarding, use \"ref\" instead like a typical component. \"innerRef\" was detected on component \"' + displayName + '\".')\n );\n });\n\n _this.warnAttrsFnObjectKeyDeprecated = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('Functions as object-form attrs({}) keys are now deprecated and will be removed in a future version of styled-components. Switch to the new attrs(props => ({})) syntax instead for easier and more powerful composition. The attrs key in question is \"' + key + '\" on component \"' + displayName + '\".')\n );\n });\n\n _this.warnNonStyledComponentAttrsObjectKey = once(function (key, displayName) {\n return (\n // eslint-disable-next-line no-console\n console.warn('It looks like you\\'ve used a non styled-component as the value for the \"' + key + '\" prop in an object-form attrs constructor of \"' + displayName + '\".\\n' + 'You should use the new function-form attrs constructor which avoids this issue: attrs(props => ({ yourStuff }))\\n' + \"To continue using the deprecated object syntax, you'll need to wrap your component prop in a function to make it available inside the styled component (you'll still get the deprecation warning though.)\\n\" + ('For example, { ' + key + ': () => InnerComponent } instead of { ' + key + ': InnerComponent }'))\n );\n });\n }\n return _this;\n }\n\n StyledNativeComponent.prototype.render = function render() {\n var _this2 = this;\n\n return React.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n var _props = _this2.props,\n renderAs = _props.as,\n forwardedComponent = _props.forwardedComponent,\n forwardedRef = _props.forwardedRef,\n innerRef = _props.innerRef,\n _props$style = _props.style,\n style = _props$style === undefined ? [] : _props$style,\n props = objectWithoutProperties(_props, ['as', 'forwardedComponent', 'forwardedRef', 'innerRef', 'style']);\n var defaultProps = forwardedComponent.defaultProps,\n displayName = forwardedComponent.displayName,\n target = forwardedComponent.target;\n\n\n var generatedStyles = void 0;\n if (theme !== undefined) {\n var themeProp = determineTheme(_this2.props, theme, defaultProps);\n generatedStyles = _this2.generateAndInjectStyles(themeProp, _this2.props);\n } else {\n generatedStyles = _this2.generateAndInjectStyles(theme || EMPTY_OBJECT, _this2.props);\n }\n\n var propsForElement = _extends({}, _this2.attrs, props, {\n style: [generatedStyles].concat(style)\n });\n\n if (forwardedRef) propsForElement.ref = forwardedRef;\n\n if (process.env.NODE_ENV !== 'production' && innerRef) {\n _this2.warnInnerRef(displayName);\n }\n\n return createElement(renderAs || target, propsForElement);\n }\n );\n };\n\n StyledNativeComponent.prototype.buildExecutionContext = function buildExecutionContext(theme, props, attrs) {\n var _this3 = this;\n\n var context = _extends({}, props, { theme: theme });\n\n if (!attrs.length) return context;\n\n this.attrs = {};\n\n attrs.forEach(function (attrDef) {\n var resolvedAttrDef = attrDef;\n var attrDefWasFn = false;\n var attr = void 0;\n var key = void 0;\n\n if (isFunction(resolvedAttrDef)) {\n // $FlowFixMe\n resolvedAttrDef = resolvedAttrDef(context);\n attrDefWasFn = true;\n }\n\n /* eslint-disable guard-for-in */\n // $FlowFixMe\n for (key in resolvedAttrDef) {\n attr = resolvedAttrDef[key];\n\n if (!attrDefWasFn) {\n if (isFunction(attr) && !isDerivedReactComponent(attr) && !isStyledComponent(attr)) {\n if (process.env.NODE_ENV !== 'production') {\n _this3.warnAttrsFnObjectKeyDeprecated(key, _this3.props.forwardedComponent.displayName);\n }\n\n attr = attr(context);\n\n if (process.env.NODE_ENV !== 'production' && React.isValidElement(attr)) {\n _this3.warnNonStyledComponentAttrsObjectKey(key, _this3.props.forwardedComponent.displayName);\n }\n }\n }\n\n _this3.attrs[key] = attr;\n context[key] = attr;\n }\n /* eslint-enable */\n });\n\n return context;\n };\n\n StyledNativeComponent.prototype.generateAndInjectStyles = function generateAndInjectStyles(theme, props) {\n var inlineStyle = props.forwardedComponent.inlineStyle;\n\n\n var executionContext = this.buildExecutionContext(theme, props, props.forwardedComponent.attrs);\n\n return inlineStyle.generateStyleObject(executionContext);\n };\n\n StyledNativeComponent.prototype.setNativeProps = function setNativeProps(nativeProps) {\n if (this.root !== undefined) {\n // $FlowFixMe\n this.root.setNativeProps(nativeProps);\n } else if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn('setNativeProps was called on a Styled Component wrapping a stateless functional component.');\n }\n };\n\n return StyledNativeComponent;\n}(Component);\n\nvar _StyledNativeComponent = (function (InlineStyle) {\n var createStyledNativeComponent = function createStyledNativeComponent(target, options, rules) {\n var _options$attrs = options.attrs,\n attrs = _options$attrs === undefined ? EMPTY_ARRAY : _options$attrs,\n _options$displayName = options.displayName,\n displayName = _options$displayName === undefined ? generateDisplayName(target) : _options$displayName,\n _options$ParentCompon = options.ParentComponent,\n ParentComponent = _options$ParentCompon === undefined ? StyledNativeComponent : _options$ParentCompon;\n\n\n var isClass = !isTag(target);\n var isTargetStyledComp = isStyledComponent(target);\n\n var WrappedStyledNativeComponent = React.forwardRef(function (props, ref) {\n return React.createElement(ParentComponent, _extends({}, props, {\n forwardedComponent: WrappedStyledNativeComponent,\n forwardedRef: ref\n }));\n });\n\n var finalAttrs =\n // $FlowFixMe\n isTargetStyledComp && target.attrs ? Array.prototype.concat(target.attrs, attrs).filter(Boolean) : attrs;\n\n /**\n * forwardRef creates a new interim component, which we'll take advantage of\n * instead of extending ParentComponent to create _another_ interim class\n */\n\n // $FlowFixMe\n WrappedStyledNativeComponent.attrs = finalAttrs;\n\n WrappedStyledNativeComponent.displayName = displayName;\n\n // $FlowFixMe\n WrappedStyledNativeComponent.inlineStyle = new InlineStyle(\n // $FlowFixMe\n isTargetStyledComp ? target.inlineStyle.rules.concat(rules) : rules);\n\n // $FlowFixMe\n WrappedStyledNativeComponent.styledComponentId = 'StyledNativeComponent';\n // $FlowFixMe\n WrappedStyledNativeComponent.target = isTargetStyledComp ? // $FlowFixMe\n target.target : target;\n // $FlowFixMe\n WrappedStyledNativeComponent.withComponent = function withComponent(tag) {\n var _ = options.displayName,\n __ = options.componentId,\n optionsToCopy = objectWithoutProperties(options, ['displayName', 'componentId']);\n\n var newOptions = _extends({}, optionsToCopy, {\n attrs: finalAttrs,\n ParentComponent: ParentComponent\n });\n\n return createStyledNativeComponent(tag, newOptions, rules);\n };\n\n if (isClass) {\n // $FlowFixMe\n hoistNonReactStatics(WrappedStyledNativeComponent, target, {\n // all SC-specific things should not be hoisted\n attrs: true,\n displayName: true,\n inlineStyle: true,\n styledComponentId: true,\n target: true,\n withComponent: true\n });\n }\n\n return WrappedStyledNativeComponent;\n };\n\n return createStyledNativeComponent;\n});\n\n// \n\nvar interleave = (function (strings, interpolations) {\n var result = [strings[0]];\n\n for (var i = 0, len = interpolations.length; i < len; i += 1) {\n result.push(interpolations[i], strings[i + 1]);\n }\n\n return result;\n});\n\n// \n\nfunction css(styles) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n if (isFunction(styles) || isPlainObject(styles)) {\n // $FlowFixMe\n return flatten(interleave(EMPTY_ARRAY, [styles].concat(interpolations)));\n }\n\n // $FlowFixMe\n return flatten(interleave(styles, interpolations));\n}\n\n// \n\nfunction constructWithOptions(componentConstructor, tag) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_OBJECT;\n\n if (!isValidElementType(tag)) {\n throw new StyledComponentsError(1, String(tag));\n }\n\n /* This is callable directly as a template function */\n // $FlowFixMe: Not typed to avoid destructuring arguments\n var templateFunction = function templateFunction() {\n return componentConstructor(tag, options, css.apply(undefined, arguments));\n };\n\n /* If config methods are called, wrap up a new template function and merge options */\n templateFunction.withConfig = function (config) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, config));\n };\n\n /* Modify/inject new props at runtime */\n templateFunction.attrs = function (attrs) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, {\n attrs: Array.prototype.concat(options.attrs, attrs).filter(Boolean)\n }));\n };\n\n return templateFunction;\n}\n\n// \n\nvar withTheme = (function (Component$$1) {\n var WithTheme = React.forwardRef(function (props, ref) {\n return React.createElement(\n ThemeConsumer,\n null,\n function (theme) {\n // $FlowFixMe\n var defaultProps = Component$$1.defaultProps;\n\n var themeProp = determineTheme(props, theme, defaultProps);\n\n if (process.env.NODE_ENV !== 'production' && themeProp === undefined) {\n // eslint-disable-next-line no-console\n console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"' + getComponentName(Component$$1) + '\"');\n }\n\n return React.createElement(Component$$1, _extends({}, props, { theme: themeProp, ref: ref }));\n }\n );\n });\n\n hoistNonReactStatics(WithTheme, Component$$1);\n\n WithTheme.displayName = 'WithTheme(' + getComponentName(Component$$1) + ')';\n\n return WithTheme;\n});\n\n// \n\nvar InlineStyle = _InlineStyle(reactPrimitives.StyleSheet);\nvar StyledNativeComponent$1 = _StyledNativeComponent(InlineStyle);\nvar styled = function styled(tag) {\n return constructWithOptions(StyledNativeComponent$1, tag);\n};\n\n/* React native lazy-requires each of these modules for some reason, so let's\n * assume it's for a good reason and not eagerly load them all */\nvar aliases = 'Image Text Touchable View ';\n\n/* Define a getter for each alias which simply gets the reactNative component\n * and passes it to styled */\naliases.split(/\\s+/m).forEach(function (alias) {\n return Object.defineProperty(styled, alias, {\n enumerable: true,\n configurable: false,\n get: function get() {\n return styled(reactPrimitives[alias]);\n }\n });\n});\n\n/* eslint-disable prefer-destructuring */\nvar isWeb = Platform.OS === 'web';\nvar styled$1 = isWeb ? styledW : styled;\nvar ThemeProvider$1 = isWeb ? ThemeProvider$2 : ThemeProvider;\nvar css$1 = isWeb ? css$2 : css;\nvar withTheme$1 = isWeb ? withTheme$2 : withTheme;\n\nif (isWeb) {\n styled$1.View = styled$1.div;\n styled$1.Text = styled$1.p; // Should be styled.span (and create a text component with as=\"p\")\n\n styled$1.Image = styled$1.img;\n}\n\nfunction _typeof$1(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof$1 = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof$1 = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof$1(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends$1() {\n _extends$1 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends$1.apply(this, arguments);\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nvar cjs = deepmerge_1;\n\nfunction getSystemColorScheme() {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (typeof window !== 'undefined' && window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {\n return 'dark';\n }\n\n return 'light';\n}\n\nfunction useColorScheme() {\n var _useState = useState(getSystemColorScheme),\n _useState2 = _slicedToArray(_useState, 2),\n systemColorMode = _useState2[0],\n setSystemColorMode = _useState2[1];\n\n useEffect(function () {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n var media = typeof window !== 'undefined' && window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)');\n\n function handleChange(event) {\n var isNight = event.matches;\n setSystemColorMode(isNight ? 'dark' : 'light');\n } // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n\n\n if (media) {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (media.addEventListener !== undefined) {\n media.addEventListener('change', handleChange);\n return function cleanup() {\n media.removeEventListener('change', handleChange);\n };\n } // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n else if (media.addListener !== undefined) {\n media.addListener(handleChange);\n return function cleanup() {\n media.removeListener(handleChange);\n };\n }\n }\n }, []);\n return systemColorMode;\n}\n\n// const ThemeProvider = Platform.OS === 'web' ? ThemeProviderWeb : ThemeProviderPrimitives;\n\nvar baseTheme = {\n fonts: {},\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512],\n colors: {\n black: '#000000',\n white: '#ffffff'\n },\n fontSizes: [96, 60, 48, 34, 24, 20, 16, 14],\n textStyles: {},\n breakpoints: ['601px', '769px', '1025px'],\n lineHeights: {},\n colorSchemes: {}\n};\nvar defaultColorMode = 'day';\nvar defaultDayScheme = 'light';\nvar defaultNightScheme = 'dark';\nvar ThemeContext$1 = React.createContext({\n setColorMode: function setColorMode() {\n return null;\n },\n setDayScheme: function setDayScheme() {\n return null;\n },\n setNightScheme: function setNightScheme() {\n return null;\n }\n});\n\nfunction resolveColorMode(colorMode, systemColorMode) {\n switch (colorMode) {\n case 'auto':\n return systemColorMode;\n\n default:\n return colorMode;\n }\n}\n\nfunction chooseColorScheme(colorMode, dayScheme, nightScheme) {\n switch (colorMode) {\n case 'day':\n return dayScheme;\n\n case 'night':\n return nightScheme;\n }\n}\n\nvar useTheme = function useTheme() {\n return React.useContext(ThemeContext$1);\n};\nvar DesignContext = createContext({\n state: {}\n});\nvar useDesign = function useDesign(name) {\n var _useContext = useContext(DesignContext),\n state = _useContext.state;\n\n var _ref = state || {},\n design = _ref.design;\n\n return design[name] || {};\n};\nfunction withStyles(Component, styles) {\n return function (props) {\n return React.createElement(Component, _extends$1({}, styles, props));\n };\n}\nfunction withDesign(Component) {\n return function (props) {\n return React.createElement(DesignContext.Consumer, null, function (value) {\n var state = value.state;\n\n var _ref2 = state || {},\n _ref2$design = _ref2.design,\n design = _ref2$design === void 0 ? {} : _ref2$design;\n\n return React.createElement(Component, _extends$1({}, design[Component.displayName] ? design[Component.displayName] : {}, props));\n });\n };\n}\n\nvar DesignProvider = function DesignProvider(_ref3) {\n var design = _ref3.design,\n children = _ref3.children;\n var state = {\n design: design\n };\n\n var dispatch = function dispatch() {};\n\n var value = {\n state: state,\n dispatch: dispatch\n };\n return React.createElement(DesignContext.Provider, {\n value: value\n }, children);\n};\n\nvar useSystemColorMode = function useSystemColorMode() {\n var systemColorScheme = useColorScheme();\n\n if (systemColorScheme === 'light') {\n return 'day';\n }\n\n if (systemColorScheme === 'dark') {\n return 'night';\n }\n\n return defaultColorMode;\n};\n\nfunction applyColorScheme(theme, colorScheme) {\n if (!theme.colorSchemes) {\n return {\n resolvedTheme: theme,\n resolvedColorScheme: undefined\n };\n }\n\n if (!theme.colorSchemes[colorScheme]) {\n // eslint-disable-next-line no-console\n console.error(\"`\".concat(colorScheme, \"` scheme not defined in `theme.colorSchemes`\")); // Apply the first defined color scheme\n\n var defaultColorScheme = Object.keys(theme.colorSchemes)[0];\n return {\n resolvedTheme: cjs(theme, theme.colorSchemes[defaultColorScheme]),\n resolvedColorScheme: defaultColorScheme\n };\n }\n\n return {\n resolvedTheme: cjs(theme, theme.colorSchemes[colorScheme]),\n resolvedColorScheme: colorScheme\n };\n}\n\nvar ComponentLibThemeProvider = function ComponentLibThemeProvider(_ref4) {\n var _ref4$design = _ref4.design,\n design = _ref4$design === void 0 ? {} : _ref4$design,\n children = _ref4.children,\n props = _objectWithoutProperties(_ref4, [\"design\", \"children\"]);\n\n var _useTheme = useTheme(),\n fallbackTheme = _useTheme.theme,\n fallbackColorMode = _useTheme.colorMode,\n fallbackDayScheme = _useTheme.dayScheme,\n fallbackNightScheme = _useTheme.nightScheme;\n\n var theme = props.theme || fallbackTheme || baseTheme;\n\n var _React$useState = React.useState(props.colorMode || fallbackColorMode || defaultColorMode),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n colorMode = _React$useState2[0],\n setColorMode = _React$useState2[1];\n\n var _React$useState3 = React.useState(props.dayScheme || fallbackDayScheme || defaultDayScheme),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n dayScheme = _React$useState4[0],\n setDayScheme = _React$useState4[1];\n\n var _React$useState5 = React.useState(props.nightScheme || fallbackNightScheme || defaultNightScheme),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n nightScheme = _React$useState6[0],\n setNightScheme = _React$useState6[1];\n\n var systemColorMode = useSystemColorMode();\n var resolvedColorMode = resolveColorMode(colorMode, systemColorMode);\n var colorScheme = chooseColorScheme(resolvedColorMode, dayScheme, nightScheme);\n\n var _React$useMemo = React.useMemo(function () {\n return applyColorScheme(theme, colorScheme);\n }, [theme, colorScheme]),\n resolvedTheme = _React$useMemo.resolvedTheme,\n resolvedColorScheme = _React$useMemo.resolvedColorScheme; // Update state if props change\n\n\n React.useEffect(function () {\n setColorMode(props.colorMode || fallbackColorMode || defaultColorMode);\n }, [props.colorMode, fallbackColorMode]);\n React.useEffect(function () {\n setDayScheme(props.dayScheme || fallbackDayScheme || defaultDayScheme);\n }, [props.dayScheme, fallbackDayScheme]);\n React.useEffect(function () {\n setNightScheme(props.nightScheme || fallbackNightScheme || defaultNightScheme);\n }, [props.nightScheme, fallbackNightScheme]);\n return React.createElement(ThemeContext$1.Provider, {\n value: {\n theme: resolvedTheme,\n colorScheme: colorScheme,\n colorMode: colorMode,\n resolvedColorMode: resolvedColorMode,\n resolvedColorScheme: resolvedColorScheme,\n dayScheme: dayScheme,\n nightScheme: nightScheme,\n setColorMode: setColorMode,\n setDayScheme: setDayScheme,\n setNightScheme: setNightScheme\n }\n }, React.createElement(ThemeProvider$1, {\n theme: resolvedTheme\n }, React.createElement(DesignProvider, {\n design: design\n }, children)));\n};\n\nvar extend = (function (Component, fn) {\n return function (props) {\n var styles = typeof fn === 'function' ? fn(props) : fn;\n var baseStyles = {};\n var pseudoStyles = {};\n\n for (var att in styles) {\n if (styles[att]) {\n var value = styles[att];\n\n if (att.startsWith(':')) {\n pseudoStyles[att.slice(1)] = value;\n } else {\n baseStyles[att] = value;\n }\n }\n }\n\n return React.createElement(Component, _extends$1({}, baseStyles, {\n styles: pseudoStyles\n }, props));\n };\n});\n\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols$1 = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nvar objectAssign = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols$1) {\n\t\t\tsymbols = getOwnPropertySymbols$1(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\nvar merge = function merge(a, b) {\n var result = objectAssign({}, a, b);\n\n for (var key in a) {\n var _assign;\n\n if (!a[key] || typeof b[key] !== 'object') continue;\n objectAssign(result, (_assign = {}, _assign[key] = objectAssign(a[key], b[key]), _assign));\n }\n\n return result;\n}; // sort object-value responsive styles\n\nvar sort = function sort(obj) {\n var next = {};\n Object.keys(obj).sort().forEach(function (key) {\n next[key] = obj[key];\n });\n return next;\n};\n\nvar defaults = {\n breakpoints: [40, 52, 64].map(function (n) {\n return n + 'em';\n })\n};\n\nvar createMediaQuery = function createMediaQuery(n) {\n return \"@media screen and (min-width: \" + n + \")\";\n};\n\nvar getValue = function getValue(n, scale) {\n return get(scale, n, n);\n};\n\nvar get = function get(obj, key, def, p, undef) {\n key = key && key.split ? key.split('.') : [key];\n\n for (p = 0; p < key.length; p++) {\n obj = obj ? obj[key[p]] : undef;\n }\n\n return obj === undef ? def : obj;\n};\nvar createParser = function createParser(config) {\n var cache = {};\n\n var parse = function parse(props) {\n var styles = {};\n var shouldSort = false;\n var isCacheDisabled = props.theme && props.theme.disableStyledSystemCache;\n\n for (var key in props) {\n if (!config[key]) continue;\n var sx = config[key];\n var raw = props[key];\n var scale = get(props.theme, sx.scale, sx.defaults);\n\n if (typeof raw === 'object') {\n cache.breakpoints = !isCacheDisabled && cache.breakpoints || get(props.theme, 'breakpoints', defaults.breakpoints);\n\n if (Array.isArray(raw)) {\n cache.media = !isCacheDisabled && cache.media || [null].concat(cache.breakpoints.map(createMediaQuery));\n styles = merge(styles, parseResponsiveStyle(cache.media, sx, scale, raw));\n continue;\n }\n\n if (raw !== null) {\n styles = merge(styles, parseResponsiveObject(cache.breakpoints, sx, scale, raw));\n shouldSort = true;\n }\n\n continue;\n }\n\n objectAssign(styles, sx(raw, scale));\n } // sort object-based responsive styles\n\n\n if (shouldSort) {\n styles = sort(styles);\n }\n\n return styles;\n };\n\n parse.config = config;\n parse.propNames = Object.keys(config);\n parse.cache = cache;\n var keys = Object.keys(config).filter(function (k) {\n return k !== 'config';\n });\n\n if (keys.length > 1) {\n keys.forEach(function (key) {\n var _createParser;\n\n parse[key] = createParser((_createParser = {}, _createParser[key] = config[key], _createParser));\n });\n }\n\n return parse;\n};\n\nvar parseResponsiveStyle = function parseResponsiveStyle(mediaQueries, sx, scale, raw) {\n var styles = {};\n raw.slice(0, mediaQueries.length).forEach(function (value, i) {\n var media = mediaQueries[i];\n var style = sx(value, scale);\n\n if (!media) {\n objectAssign(styles, style);\n } else {\n var _assign2;\n\n objectAssign(styles, (_assign2 = {}, _assign2[media] = objectAssign({}, styles[media], style), _assign2));\n }\n });\n return styles;\n};\n\nvar parseResponsiveObject = function parseResponsiveObject(breakpoints, sx, scale, raw) {\n var styles = {};\n\n for (var key in raw) {\n var breakpoint = breakpoints[key];\n var value = raw[key];\n var style = sx(value, scale);\n\n if (!breakpoint) {\n objectAssign(styles, style);\n } else {\n var _assign3;\n\n var media = createMediaQuery(breakpoint);\n objectAssign(styles, (_assign3 = {}, _assign3[media] = objectAssign({}, styles[media], style), _assign3));\n }\n }\n\n return styles;\n};\n\nvar createStyleFunction = function createStyleFunction(_ref) {\n var properties = _ref.properties,\n property = _ref.property,\n scale = _ref.scale,\n _ref$transform = _ref.transform,\n transform = _ref$transform === void 0 ? getValue : _ref$transform,\n defaultScale = _ref.defaultScale;\n properties = properties || [property];\n\n var sx = function sx(value, scale) {\n var result = {};\n var n = transform(value, scale);\n if (n === null) return;\n properties.forEach(function (prop) {\n result[prop] = n;\n });\n return result;\n };\n\n sx.scale = scale;\n sx.defaults = defaultScale;\n return sx;\n}; // new v5 API\n\nvar system = function system(args) {\n if (args === void 0) {\n args = {};\n }\n\n var config = {};\n Object.keys(args).forEach(function (key) {\n var conf = args[key];\n\n if (conf === true) {\n // shortcut definition\n config[key] = createStyleFunction({\n property: key,\n scale: key\n });\n return;\n }\n\n if (typeof conf === 'function') {\n config[key] = conf;\n return;\n }\n\n config[key] = createStyleFunction(conf);\n });\n var parser = createParser(config);\n return parser;\n};\n\nvar themeGet = function themeGet(path, fallback) {\n if (fallback === void 0) {\n fallback = null;\n }\n\n return function (props) {\n return get(props.theme, path, fallback);\n };\n};\n\n// @ts-nocheck\nvar cursor = system({\n transform: {\n property: 'cursor',\n scale: 'cursors'\n }\n});\nvar transform = system({\n transform: {\n property: 'transform',\n scale: 'transforms'\n }\n});\nvar shadowColor = system({\n shadowColor: {\n property: 'shadowColor',\n scale: 'shadowColors'\n }\n});\nvar shadowOffset = system({\n shadowOffset: {\n property: 'shadowOffset',\n scale: 'shadowOffsets'\n }\n});\nvar shadowOpacity = system({\n shadowOpacity: {\n property: 'shadowOpacity',\n scale: 'shadowOpacities'\n }\n});\nvar shadowRadius = system({\n shadowRadius: {\n property: 'shadowRadius',\n scale: 'shadowRadii'\n }\n});\nvar shadowSpread = system({\n shadowSpread: {\n property: 'shadowSpread',\n scale: 'shadowSpreads'\n }\n}); // Sketch only\n\nvar shadowInner = system({\n shadowSpread: {\n property: 'shadowInner',\n scale: 'shadowInners'\n }\n});\nvar elevation = system({\n elevation: {\n property: 'elevation',\n scale: 'elevations'\n }\n});\n\nfunction _templateObject2() {\n var data = _taggedTemplateLiteral([\"\\n \", \"\\n\"]);\n\n _templateObject2 = function _templateObject2() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject() {\n var data = _taggedTemplateLiteral([\"\\n /* Sketch transforms seem a bit buggy with styled-components/primitives css-to-react-native */\\n \", \"\\n \", \"\\n \", \"\\n\"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\nvar mixin = css$1(_templateObject(), Platform.OS !== 'sketch' ? transform : '', compose(space, color, border, layout, flexbox, position), Platform.select({\n sketch: compose(shadowColor, shadowOffset, shadowOpacity, shadowRadius, shadowSpread, shadowInner),\n figma: compose(shadowColor, shadowOffset, shadowOpacity, shadowRadius),\n ios: compose(shadowColor, shadowOffset, shadowOpacity, shadowRadius),\n android: compose(elevation),\n web: compose(boxShadow, cursor)\n}));\nvar borderPropNames = ['border', 'borderWidth', 'borderStyle', 'borderColor', 'borderRadius', 'borderTop', 'borderTopWidth', 'borderTopStyle', 'borderTopColor', 'borderTopLeftRadius', 'borderTopRightRadius', 'borderRight', 'borderRightWidth', 'borderRightStyle', 'borderRightColor', 'borderBottom', 'borderBottomWidth', 'borderBottomStyle', 'borderBottomColor', 'borderBottomLeftRadius', 'borderBottomRightRadius', 'borderLeft', 'borderLeftWidth', 'borderLeftStyle', 'borderLeftColor', 'borderX', 'borderY'];\nvar layoutPropNames = ['width', 'height', 'display', 'minWidth', 'minHeight', 'maxWidth', 'maxHeight', 'size', 'verticalAlign', 'overflow', 'overflowX', 'overflowY', 'position'];\nvar colorPropNames = ['color', 'bg', 'backgroundColor'];\nvar flexPropNames = ['alignItems', 'alignContent', 'justifyItems', 'justifyContent', 'flexWrap', 'flexDirection', 'flex', 'flexGrow', 'flexShrink', 'flexBasis', 'justifySelf', 'alignSelf', 'order'];\nvar spacePropNames = ['m', 'margin', 'marginTop', 'mt', 'marginRight', 'mr', 'marginBottom', 'mb', 'marginLeft', 'ml', 'marginX', 'mx', 'marginY', 'my', 'padding', 'p', 'paddingTop', 'pt', 'paddingRight', 'pr', 'paddingBottom', 'pb', 'paddingLeft', 'pl', 'paddingX', 'px', 'paddingY', 'py'];\nvar extraPropNames = ['transform', 'shadowColor', 'shadowOffset', 'shadowOpacity', 'shadowRadius', 'shadowSpread', 'shadowInner', 'elevation', 'shadows', 'name', 'cursor', 'pseudoState'];\nvar filterOutProps = [].concat(borderPropNames, layoutPropNames, colorPropNames, flexPropNames, spacePropNames, extraPropNames);\nvar Rectangle = styled$1.View.withConfig({\n shouldForwardProp: function shouldForwardProp(propName) {\n return !filterOutProps.includes(propName);\n }\n})(_templateObject2(), mixin);\n/* ${(props) => {\n if (!isWeb) {\n return '';\n }\n return ['hover', 'focus'].map(selector => {\n if (props[selector]) {\n return `\n &:${selector} {\n ${mixin}\n }\\n`;\n }\n }).join('\\n');\n}} */\n\nRectangle.defaultProps = {\n borderColor: 'black',\n borderWidth: 1,\n borderStyle: 'solid'\n};\n\nfunction parseAttributes() {\n var obj = {};\n\n for (var _len = arguments.length, tests = new Array(_len), _key = 0; _key < _len; _key++) {\n tests[_key] = arguments[_key];\n }\n\n tests.filter(function (i) {\n return i;\n }).forEach(function (test) {\n if (_typeof$1(test) === 'object') {\n obj = _objectSpread({}, obj, test);\n }\n });\n return obj;\n}\n\nfunction rgbToHex(r, g, b) {\n return \"#\".concat(((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1));\n} // Shadow parsing functions adapted from https://github.com/jxnblk/css-box-shadow | MIT\n\n\nvar VALUES_REG = /,(?![^(]*\\))/;\nvar PARTS_REG = /\\s(?![^(]*\\))/;\n\nvar parseValue = function parseValue(str) {\n var parts = str.split(PARTS_REG);\n var inset = parts.includes('inset');\n var last = parts.slice(-1)[0]; // const color = !isLength(last) ? last : str.match(/rgba\\((\\d+),\\s*(\\d+),\\s*(\\d+),\\s*(\\d+)\\)/g) || undefined\n\n var color = str.match(/(#([0-9a-f]{3}){1,2}|(rgba|hsla)\\(\\d{1,3}%?(,\\s?\\d{1,3}%?){2},\\s?(1|0|0?\\.\\d+)\\)|(rgb|hsl)\\(\\d{1,3}%?(,\\s?\\d{1,3}%?){2}\\))/g) || undefined;\n color = Array.isArray(color) && color.length === 1 ? color[0] : undefined;\n var nums = parts.filter(function (n) {\n return n !== 'inset';\n }) // @ts-ignore\n .filter(function (n) {\n return n !== color;\n }).map(toNum);\n\n var _nums = _slicedToArray(nums, 4),\n offsetX = _nums[0],\n offsetY = _nums[1],\n blurRadius = _nums[2],\n spreadRadius = _nums[3];\n\n return {\n inset: inset,\n offsetX: offsetX,\n offsetY: offsetY,\n blurRadius: blurRadius,\n spreadRadius: spreadRadius,\n color: color\n };\n};\n\nvar toNum = function toNum(v) {\n if (!/px$/.test(v) && v !== '0') return v;\n var n = parseFloat(v);\n return !isNaN(n) ? n : v;\n};\n\nvar parse$2 = function parse(str) {\n return str.split(VALUES_REG).map(function (s) {\n return s.trim();\n }).map(parseValue);\n};\n\nvar parseRgba = function parseRgba(color) {\n var _color$replace$slice$ = color.replace('rgba', '').slice(1, -1).split(',').map(function (n) {\n return Number(n.trim());\n }),\n _color$replace$slice$2 = _slicedToArray(_color$replace$slice$, 4),\n r = _color$replace$slice$2[0],\n g = _color$replace$slice$2[1],\n b = _color$replace$slice$2[2],\n _color$replace$slice$3 = _color$replace$slice$2[3],\n a = _color$replace$slice$3 === void 0 ? 1 : _color$replace$slice$3;\n\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n};\n/*\nconst makeCss = ({shadowColor, shadowOffset, shadowOpacity, shadowRadius, shadowSpread}) => `\n shadow-color: ${shadowColor};\n shadow-offset: ${shadowOffset.width || 0}px ${shadowOffset.height || 0}px;\n shadow-opacity: ${shadowOpacity || 1};\n shadow-radius: ${shadowRadius || 0}px;\n ${shadowSpread ? `shadow-spread: ${shadowSpread};` : ''} \n`\n*/\n\n\nvar makeShadow = function makeShadow(_shadow) {\n var elevation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var isArray = arguments.length > 2 ? arguments[2] : undefined;\n\n switch (Platform.OS) {\n case 'web':\n {\n return {\n boxShadow: _shadow\n };\n }\n\n case 'ios':\n case 'sketch':\n case 'figma':\n {\n var shadows = typeof _shadow === 'function' ? _shadow({}) : _shadow;\n shadows = typeof shadows === 'string' ? parse$2(shadows) : shadows; // TODO: Need a non-hacky way to pass shadow arrays to Figma/React Native\n\n var res = (Array.isArray(shadows) && shadows || []).map(function (shadow) {\n var inset = shadow.inset,\n offsetX = shadow.offsetX,\n offsetY = shadow.offsetY,\n blurRadius = shadow.blurRadius,\n spreadRadius = shadow.spreadRadius,\n color = shadow.color;\n var rgba = color.includes('rgba') ? parseRgba(color) : null;\n\n var _ref = rgba || {},\n r = _ref.r,\n g = _ref.g,\n b = _ref.b,\n _ref$a = _ref.a,\n opacity = _ref$a === void 0 ? 1 : _ref$a;\n\n return {\n shadowColor: rgba ? rgbToHex(r, g, b) : color,\n shadowInner: inset,\n // shadowOffset: {width: offsetX, height: offsetY},\n shadowOffset: isArray ? {\n width: offsetX,\n height: offsetY\n } : \"\".concat(offsetX, \"px \").concat(offsetY, \"px\"),\n shadowOpacity: opacity,\n shadowRadius: blurRadius,\n shadowSpread: Platform.OS === 'sketch' ? spreadRadius || 0 : undefined // *shadowSpread* not supported in RN\n\n };\n });\n\n var _ref2 = res || [],\n _ref3 = _slicedToArray(_ref2, 1),\n shadow = _ref3[0];\n\n return isArray ? res : shadow;\n }\n\n case 'android':\n {\n return {\n elevation: elevation\n };\n }\n\n default:\n {\n return '';\n }\n }\n};\n\nvar initialState = {\n state: {\n breakpoint: 0 // 0 is mobile, 1 is tablet, 2 is desktop\n\n },\n dispatch: function dispatch() {}\n};\nvar LayoutContext = createContext(initialState); // const reducer = (state, action) => {\n// const { type, payload } = action;\n// switch (type) {\n// case 'resize': {\n// return {\n// ...state,\n// };\n// }\n// default: {\n// return state;\n// }\n// }\n// };\n\nvar LayoutProvider = function LayoutProvider(_ref) {\n var breakpoint = _ref.breakpoint,\n children = _ref.children;\n // const [state, dispatch] = Platform.OS === 'sketch' ? [{\n // ...initialState,\n // breakpoint,\n // }, () => {}] : useReducer(reducer, initialState);\n var state = {\n breakpoint: breakpoint\n };\n\n var dispatch = function dispatch() {};\n\n var value = {\n state: state,\n dispatch: dispatch\n };\n return React.createElement(LayoutContext.Provider, {\n value: value\n }, children);\n};\n\nfunction withContext(Component) {\n return React.forwardRef(function (props, ref) {\n return React.createElement(LayoutContext.Consumer, null, function (value) {\n return React.createElement(Component, _extends$1({\n forwardedRef: ref\n }, props, {\n value: value\n }));\n });\n });\n}\nvar LayoutContextConsumer = LayoutContext.Consumer;\n\nfunction _templateObject$1() {\n var data = _taggedTemplateLiteral([\"\"]);\n\n _templateObject$1 = function _templateObject() {\n return data;\n };\n\n return data;\n}\nvar RN = Platform.select({\n ios: function ios() {\n return require('react-native');\n },\n android: function android() {\n return require('react-native');\n },\n default: function _default() {\n return {};\n }\n})();\nvar TouchableOpacity = RN.TouchableOpacity,\n TouchableHighlight = RN.TouchableHighlight,\n TouchableNativeFeedback = RN.TouchableNativeFeedback;\n\nvar Box = styled$1(Rectangle)(_templateObject$1());\nBox.defaultProps = _objectSpread({\n display: 'flex',\n flexDirection: 'column'\n}, (Platform.OS === 'web' || Platform.OS === 'sketch') && {\n borderColor: 'none'\n}, {\n // FIXME: ...\n borderStyle: 'solid',\n borderWidth: 0\n});\n\nvar getSize = function getSize(args, breakpoint) {\n var size = args.size,\n styles = _objectWithoutProperties(args, [\"size\"]);\n\n if (size) {\n styles.width = size;\n styles.height = size;\n }\n\n var res = Object.keys(styles).reduce(function (acc, arg) {\n if (styles[arg]) {\n var value = styles[arg];\n acc[arg] = Array.isArray(value) ? breakpoint > value.length - 1 ? value[value.length - 1] : value[breakpoint] : value;\n }\n\n return acc;\n }, {});\n return res;\n};\n\nvar useMouseEventState = function useMouseEventState(initialPseudoState) {\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n hover = _useState2[0],\n setHover = _useState2[1];\n\n var _useState3 = useState('idle'),\n _useState4 = _slicedToArray(_useState3, 2),\n pseudoState = _useState4[0],\n setPseudoState = _useState4[1];\n\n if (Platform.OS === 'sketch') {\n return {\n events: {},\n pseudoState: initialPseudoState || 'idle'\n };\n }\n\n var onPress = function onPress() {\n setPseudoState('focus');\n setTimeout(function () {\n setPseudoState(initialPseudoState || 'idle');\n }, 200);\n };\n\n var onMouseEnter = function onMouseEnter() {\n setHover(true);\n setPseudoState('hover');\n };\n\n var onMouseLeave = function onMouseLeave() {\n if (hover) {\n setHover(false);\n setPseudoState(initialPseudoState || 'idle');\n }\n };\n\n return {\n events: {\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onPress: onPress\n },\n pseudoState: initialPseudoState || pseudoState\n };\n}; // FIXME: Move pseudoStyles into a hook and context that can be accessed by parent components like