{"version":3,"file":"js/page.ebaba0b9.js","mappings":"iLAAA,IAAIA,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,yBAAyB,CAACF,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,MAAQL,EAAIM,OAAO,WAAaN,EAAIO,WAAW,SAAW,UAAU,KAAO,eAAe,CAACL,EAAG,WAAW,CAACE,YAAY,cAAcC,MAAM,CAAC,QAAU,GAAG,KAAO,cAAcG,GAAG,CAAC,MAAQR,EAAIS,cAAc,CAACP,EAAG,OAAO,CAACE,YAAY,gCAAgC,CAACF,EAAG,IAAI,CAACE,YAAY,sBAAsB,GAAGF,EAAG,eAAe,CAACG,MAAM,CAAC,OAASL,EAAIU,cAAc,MAAQ,IAAIF,GAAG,CAAC,MAAQ,SAASG,GAAQX,EAAIU,eAAgB,IAAQE,YAAYZ,EAAIa,GAAG,CAAC,CAACC,IAAI,SAASC,GAAG,WAAW,MAAO,CAACf,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAIM,QAAQ,OAAOY,OAAM,GAAM,CAACJ,IAAI,SAASC,GAAG,WAAW,MAAO,CAACf,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAImB,QAAQ,OAAOD,OAAM,MAAS,CAAChB,EAAG,IAAI,CAACE,YAAY,aAAagB,SAAS,CAAC,UAAYpB,EAAIiB,GAAGjB,EAAIqB,SAAUrB,EAAIsB,WAAYpB,EAAG,UAAU,CAACG,MAAM,CAAC,IAAML,EAAIuB,MAAM,YAAa,EAAK,IAAMvB,EAAIwB,iBAAiBxB,EAAIyB,MAAM,IAAI,IAE37BC,EAAkB,GCFlB3B,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,UAAU,CAACG,MAAM,CAAC,OAASL,EAAI2B,OAAO,aAAa,GAAG,YAAY,SAAS,iBAAiB,IAAInB,GAAG,CAAC,MAAQ,SAASG,GAAQ,OAAOX,EAAI4B,MAAM,YAAY,CAAC1B,EAAG,MAAM,CAACE,YAAY,cAAc,CAACF,EAAG,SAAS,CAACE,YAAY,mBAAmB,CAACF,EAAG,IAAI,CAACE,YAAY,0CAA0C,CAACJ,EAAI6B,GAAG,WAAW,GAAG3B,EAAG,SAAS,CAACE,YAAY,SAASC,MAAM,CAAC,KAAO,UAAUG,GAAG,CAAC,MAAQ,SAASG,GAAQ,OAAOX,EAAI4B,MAAM,eAAe1B,EAAG,UAAU,CAACE,YAAY,mBAAmB,CAACJ,EAAI6B,GAAG,YAAY,GAAG3B,EAAG,SAAS,CAACE,YAAY,mBAAmB,CAACJ,EAAI6B,GAAG,WAAW,QAE7nBH,EAAkB,GCwBtB,GACAI,KAAAA,cACAC,MAAAA,CACAJ,OAAAA,CACAK,KAAAA,QACAC,UAAAA,GAEAC,MAAAA,CACAF,KAAAA,OACAC,UAAAA,KCnC2P,I,UCQvPE,GAAY,OACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIF,EAAeA,EAAiB,QC0BhC,GACAL,KAAAA,cACAM,WAAAA,CAAAC,YAAAA,GACAN,MAAAA,CACAzB,OAAAA,OACAe,KAAAA,OACAF,OAAAA,OACAI,MAAAA,OACAhB,WAAAA,CACAyB,KAAAA,QACAM,SAAAA,IAGAC,OACA,OACA7B,eAAAA,IAGA8B,QAAAA,CACA/B,cACA,wCAEAa,WACA,oBAEAE,cACA,kBACAiB,EAAAA,KAAAA,CAAAA,KAAAA,KAAAA,aACA,QCzE0P,ICQtP,GAAY,OACd,EACA1C,EACA2B,GACA,EACA,KACA,WACA,MAIF,EAAe,EAAiB,S,kECnBhC,IAAI3B,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACF,EAAG,aAAa,CAACG,MAAM,CAAC,mBAAmBL,EAAI0C,eAAe,mBAAmB1C,EAAI2C,gBAAgBnC,GAAG,CAAC,aAAa,SAASG,GAAQ,OAAOX,EAAI4B,MAAM,eAAe,UAAU,SAASjB,GAAQ,OAAOX,EAAI4B,MAAM,eAAe1B,EAAG,cAAc,CAACG,MAAM,CAAC,kBAAkBL,EAAI4C,iBAAiB,CAAC5C,EAAI6B,GAAG,YAAY,IAAI,IAEnaH,EAAkB,G,oBCgBtB,GACAI,KAAAA,kBACAC,MAAAA,CACAa,eAAAA,CACAZ,KAAAA,QACAM,SAAAA,GAEAI,eAAAA,CACAV,KAAAA,QACAM,SAAAA,GAEAK,eAAAA,CACAX,KAAAA,QACAM,SAAAA,IAGAF,WAAAA,CAAAS,YAAAA,EAAAA,EAAAC,WAAAA,EAAAA,IClCwQ,I,UCQpQX,GAAY,OACd,EACApC,EACA2B,GACA,EACA,KACA,WACA,MAIF,EAAeS,EAAiB,S,+ECnBhC,IAAIpC,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,sBAAsB,CAACF,EAAG,MAAM,CAACE,YAAY,WAAW,CAACF,EAAG,MAAM,CAACE,YAAY,yCAAyC,CAACF,EAAG,MAAM,CAACE,YAAY,4BAA4B,CAACF,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,YAAY,CAACL,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI+C,GAAG,4DAA4D,OAAO7C,EAAG,KAAK,CAACE,YAAY,cAAc,CAACJ,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI+C,GAAG,qCAAqC7C,EAAG,MAAM,CAACE,YAAY,6BAA6B,CAAEJ,EAAIgD,mBAAoB,CAAC9C,EAAG,eAAe,CAACG,MAAM,CAAC,MAAS,GAAEL,EAAI+C,GAAG,kCAAkC,UAAY/C,EAAIiD,8BAA8B,oBAAoBjD,EAAIkD,uBAAuB,MAAQlD,EAAImD,iBAAiB,KAAO,oBAAoB3C,GAAG,CAAC,MAAQR,EAAIoD,uBAAuBlD,EAAG,eAAe,CAACG,MAAM,CAAC,MAAS,GAAEL,EAAI+C,GAAG,iCAAiC,UAAY/C,EAAIqD,6BAA6B,oBAAoBrD,EAAIsD,sBAAsB,MAAQtD,EAAIuD,gBAAgB,KAAO,mBAAmB/C,GAAG,CAAC,MAAQR,EAAIwD,uBAAuB,CAACtD,EAAG,eAAe,CAACG,MAAM,CAAC,MAAS,GAAEL,EAAI+C,GAAG,mCAAmC,UAAY/C,EAAIyD,+BAA+B,oBAAoBzD,EAAI0D,wBAAwB,MAAQ1D,EAAI2D,kBAAkB,KAAO,qBAAqBnD,GAAG,CAAC,MAAQR,EAAI4D,0BAA0B,IAAI,GAAG1D,EAAG,MAAM,CAACE,YAAY,6BAA6B,CAACF,EAAG,KAAK,CAACE,YAAY,cAAc,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,+BAA+B,OAAO7C,EAAG,MAAM,CAACE,YAAY,QAAQC,MAAM,CAAC,QAAQ,0CAA0C,CAACH,EAAG,WAAW,CAACG,MAAM,CAAC,MAAQL,EAAI6D,+BAA+B,KAAO,kCAAkCrD,GAAG,CAAC,MAAQR,EAAI8D,oCAAoC,CAAC9D,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,+CAA+C,QAAQ,GAAK/C,EAAI6D,+BAA0oC7D,EAAIyB,KAA9mC,CAACvB,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,eAAe,CAACG,MAAM,CAAC,MAAS,GAAEL,EAAI+C,GAAG,8BAA8B,UAAY/C,EAAI+D,yBAAyB,UAAW,EAAM,oBAAoB/D,EAAIgE,mBAAmB,MAAQhE,EAAIiE,aAAa,KAAO,gBAAgBzD,GAAG,CAAC,MAAQR,EAAIkE,mBAAmBhE,EAAG,gBAAgB,CAACG,MAAM,CAAC,gBAAe,EAAK,MAAS,GAAEL,EAAI+C,GAAG,oCAAoC,QAAU/C,EAAImE,6BAA6B,oBAAoB,GAAG,MAAQnE,EAAIoE,mBAAmB,KAAO,sBAAsB5D,GAAG,CAAC,MAAQR,EAAIqE,yBAAyBnE,EAAG,eAAe,CAACG,MAAM,CAAC,MAAS,GAAEL,EAAI+C,GAAG,wBAAwB,oBAAoB/C,EAAIsE,aAAa,MAAQtE,EAAIuE,OAAO,KAAO,UAAU/D,GAAG,CAAC,MAAQR,EAAIwE,aAAatE,EAAG,eAAe,CAACG,MAAM,CAAC,eAAc,EAAK,MAAS,GAAEL,EAAI+C,GAAG,0BAA0B,UAAY/C,EAAIyE,qBAAqB,oBAAoBzE,EAAI0E,eAAe,MAAQ1E,EAAI2E,SAAS,KAAO,YAAYnE,GAAG,CAAC,MAAQR,EAAI4E,eAAe1E,EAAG,eAAe,CAACG,MAAM,CAAC,MAAS,GAAEL,EAAI+C,GAAG,sBAAsB,oBAAoB/C,EAAI6E,WAAW,MAAQ7E,EAAI8E,KAAK,KAAO,QAAQtE,GAAG,CAAC,MAAQR,EAAI+E,YAAY,KAAc,GAAG7E,EAAG,MAAM,CAACE,YAAY,6BAA6B,CAACF,EAAG,KAAK,CAACE,YAAY,oBAAoB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,mCAAmC,OAAO7C,EAAG,eAAe,CAAC8E,WAAW,CAAC,CAAClD,KAAK,OAAOmD,QAAQ,SAASC,MAAO,oCAAqCC,WAAW,wCAAwC9E,MAAM,CAAC,eAAc,EAAK,UAAYL,EAAIoF,gBAAgB,oBAAoBpF,EAAIqF,WAAW,MAAQrF,EAAIsF,KAAK,KAAO,QAAQ9E,GAAG,CAAC,MAAQR,EAAIuF,UAAU,CAACrF,EAAG,WAAW,CAACsF,KAAK,SAAS,CAACtF,EAAG,MAAM,CAACE,YAAY,2BAA2B,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,qBAAqB,OAAO7C,EAAG,cAAc,CAACG,MAAM,CAAC,KAAOL,EAAIyF,SAASpE,KAAK,OAASrB,EAAIyF,SAASnF,OAAO,QAAQ,4BAA4B,MAAQ,WAAW,MAAM,GAAGJ,EAAG,eAAe,CAACG,MAAM,CAAC,eAAc,EAAK,MAAS,GAAEL,EAAI+C,GAAG,qBAAqB,UAAY/C,EAAI0F,eAAe,oBAAoB1F,EAAI2F,UAAU,MAAQ3F,EAAI4F,IAAI,KAAO,OAAOpF,GAAG,CAAC,MAAQR,EAAI6F,WAAW,GAAK7F,EAAI8F,uBAAsD9F,EAAIyB,KAAlCvB,EAAG,2BAAoCA,EAAG,qBAAqB,CAACG,MAAM,CAAC,aAAaL,EAAI+F,SAAS,iBAAiB/F,EAAIgG,aAAa,gBAAkBhG,EAAI8F,2BAA2B,QAEnmIpE,EAAkB,G,2DCFlB3B,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,YAAY,CAACG,MAAM,CAAC,QAAQ,wBAAwB,KAAO,eAAe,CAACL,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,iDAAiD,QAAQ,IAE/PrB,EAAkB,GCOtB,GACAI,KAAAA,2BCVqQ,I,UCOjQK,GAAY,OACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIF,EAAeA,EAAiB,Q,oBCmJhC,GACAL,KAAAA,kBACAM,WAAAA,CACA6D,sBADA,EAEAC,kBAFA,IAGAC,YAHA,IAIAC,aAJA,IAKAC,WAAAA,EAAAA,GAEA9D,OACA,OACAc,6BADA,KAEAJ,8BAFA,IAGAQ,+BAHA,KAIA2B,gBAJA,KAKAM,eALA,KAMA3B,yBANA,KAOAU,qBAPA,KAQAuB,aAAAA,EAAAA,EAAAA,QACAD,SAAAA,EAAAA,EAAAA,SACAN,SAAAA,CACAnF,OAAAA,KAAAA,GAAAA,+BACAe,KAAAA,KAAAA,GAAAA,gCAIAiF,SAAAA,KACA,2CACAtD,mBAAAA,2BAEA,oCACA8C,uBAAAA,yBAEAvC,gBAAAA,qBACAD,sBAAAA,2BAEAH,iBAAAA,sBACAD,uBAAAA,4BAEAW,+BAAAA,oCAEAI,aAAAA,kBACAD,mBAAAA,wBAEAI,mBAAAA,wBACAmC,qBAAAA,0BAEAhC,OAAAA,YACAD,aAAAA,kBAEAK,SAAAA,cACAD,eAAAA,oBAEAI,KAAAA,UACAD,WAAAA,gBAEAlB,kBAAAA,uBAEAD,wBAAAA,6BACA4B,KAAAA,UACAD,WAAAA,gBAEAO,IAAAA,SACAD,UAAAA,iBAEAxB,+BACA,2CACArC,KAAAA,KAAAA,GAAAA,sBAAAA,KACAoD,MAAAA,QAIA1C,QAAAA,KACA,oCACA,qBACA,sBACA,uBACA,kBACA,wBACA,YACA,cACA,UACA,UACA,eAEA,oCACA,wCC3PwQ,ICQpQ,GAAY,OACd,EACAzC,EACA2B,GACA,EACA,KACA,WACA,MAIF,EAAe,EAAiB,S,+ECnBhC,IAAI3B,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,8CAA8C,CAACF,EAAG,wBAAwB,CAACG,MAAM,CAAC,SAAWL,EAAIwG,YAAY,MAAQxG,EAAIyG,cAAcjG,GAAG,CAAC,OAASR,EAAI0G,qBAAqBxG,EAAG,qBAAqB,CAACG,MAAM,CAAC,UAAYL,EAAI+F,SAAS,cAAgB/F,EAAIgG,aAAa,gBAAkBhG,EAAI2G,uBAAuB,IAEzYjF,EAAkB,G,oBCFlB3B,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,yBAAyBJ,EAAI4G,GAAI5G,EAAI6G,OAAO,SAAS7E,GAAM,OAAO9B,EAAG,MAAM,CAACY,IAAIkB,EAAK8E,MAAM,CAC9K,yBACA,CACEC,SAAU/G,EAAIgH,2BAA2BhF,KAE3C3B,MAAM,CAAC,QAAS,eAAc2B,KAAQxB,GAAG,CAAC,MAAQ,SAASG,GAAgC,OAAxBA,EAAOsG,iBAAwBjH,EAAI4B,MAAM,SAAUI,MAAS,CAAC9B,EAAG,KAAK,CAACE,YAAY,cAAc,CAACJ,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAIkH,oBAAoBlF,OAAU9B,EAAG,MAAM,CAACE,YAAY,8CAA8C,CAACF,EAAG,MAAM,CAACE,YAAY,qBAAqB,CAACF,EAAG,UAAU,CAACG,MAAM,CAAC,eAAe2B,GAAMmF,MAAM,CAACjC,MAAOlF,EAAIoH,uBAAwBC,SAAS,SAAUC,GAAMtH,EAAIoH,uBAAuBE,GAAKnC,WAAW,2BAA2B,CAACjF,EAAG,MAAM,CAACE,YAAY,QAAQ,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAIuH,mBAAmBvF,IAAO,SAAS9B,EAAG,MAAM,CAACE,YAAY,eAAe,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAIwH,0BAA0BxF,IAAO,QAAQ,GAAG9B,EAAG,MAAM,CAACE,YAAY,gCAAgC,CAACF,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,UAAU,CAACG,MAAM,CAAC,IAAML,EAAIuH,mBAAmBvF,GAAM,YAAa,EAAK,IAAMhC,EAAIyH,uBAAuBzF,GAAM,MAAQ,YAAYxB,GAAG,CAAC,KAAO,SAASG,GAAQX,EAAI0H,eAAgB,OAAU,GAAGxH,EAAG,MAAM,CAAC4G,MAAM,CAAC,mBAAoB,CAAE,aAAc9G,EAAI0H,iBAAkB,CAACxH,EAAG,MAAM,CAACE,YAAY,uBAAuB,CAACF,EAAG,MAAM,CAACE,YAAY,sBAAsBF,EAAG,MAAM,CAACE,YAAY,oBAAoB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,gCAAgC,SAAS7C,EAAG,MAAM,CAACE,YAAY,0BAA0B,CAACF,EAAG,MAAM,CAACE,YAAY,sBAAsBF,EAAG,MAAM,CAACE,YAAY,oBAAoB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,mCAAmC,oBAAmB,IAE97CrB,EAAkB,GCkDtB,GACAI,KAAAA,wBACAC,MAAAA,CAAAA,QAAAA,YACAQ,OACA,OACAmF,eAAAA,IAGApB,SAAAA,CACAY,sBACA,UACA,2CAEAK,qBACA,UACA,0CAEAE,yBACA,UACAhF,EAAAA,GAAAA,CAAAA,KAAAA,UAEA+E,4BACA,UACA,iDAEAR,6BACA,6BAEAI,yBACA,wBCtF4Q,I,UCQxQjF,GAAY,OACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIF,EAAeA,EAAiB,Q,UCEhC,GACAL,KAAAA,cACAM,WAAAA,CAAA8D,kBAAAA,EAAAA,EAAAyB,oBAAAA,GACApF,OACA,OACAyD,aAAAA,EAAAA,EAAAA,QACAD,SAAAA,EAAAA,EAAAA,cAGAO,SAAAA,KACA,gCACAE,YAAAA,iBACAC,aAAAA,kBACAE,mBAAAA,wBAGAnE,QAAAA,KACA,gCACAkE,kBAAAA,qBCvCoQ,ICQhQ,GAAY,OACd,EACA3G,EACA2B,GACA,EACA,KACA,WACA,MAIF,EAAe,EAAiB,S,+ECnBhC,IAAI3B,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,UAAU,CAACA,EAAG,MAAM,CAACE,YAAY,+CAA+C,CAACF,EAAG,MAAM,CAACE,YAAY,wBAAwB,CAACF,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACF,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,qBAAqB,GAAKF,EAAI4H,iBAE3B,CAAC1H,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,YAAY,CAACE,YAAY,wBAAwBC,MAAM,CAAC,WAAW,GAAG,KAAO,QAAQ,YAAY,WAAW,KAAO,eAAe,CAACL,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,mCAAmC,QAAQ,GAAG7C,EAAG,MAAM,CAACE,YAAY,iBAAiB,CAACF,EAAG,IAAI,CAACF,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,wDAAwD,KAAK7C,EAAG,IAAI,CAACG,MAAM,CAAC,KAAOL,EAAI6H,sBAAsB,OAAS,WAAW,CAAC7H,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI+C,GAAG,2CAA2C7C,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,aAAa,CAACG,MAAM,CAAC,MAAQL,EAAI8H,mBAAmB,QAAQ,2BAA2BtH,GAAG,CAAC,MAAQR,EAAI+H,wBAAwB,CAAC/H,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI+C,GAAG,4DAA4D,QAAQ,GAAG7C,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,aAAa,CAACG,MAAM,CAAC,MAAQL,EAAIgI,qBAAqB,QAAQ,gCAAgCxH,GAAG,CAAC,MAAQR,EAAIiI,0BAA0B,CAACjI,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI+C,GAAK,mBAAkB/C,EAAIkI,2CAA4C,QAAQ,GAAGhI,EAAG,MAAM,CAACE,YAAY,wBAAwB,CAACF,EAAG,WAAW,CAACG,MAAM,CAAC,UAAYL,EAAImI,2BAA2B,QAAQ,aAAa,KAAO,cAAc3H,GAAG,CAAC,MAAQR,EAAIoI,4BAA4B,CAACpI,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI+C,GAAG,+BAA+B,QAAQ,IAF9tC7C,EAAG,MAAM,CAACE,YAAY,6BAA6B,CAACF,EAAG,IAAI,CAACF,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI+C,GAAG,4CAA4C7C,EAAG,WAAW,CAACG,MAAM,CAAC,UAAYL,EAAIqI,4BACvdrI,EAAIsI,2BACJtI,EAAIuI,6BAA6B,QAAUvI,EAAIsI,2BAA6BtI,EAAIuI,6BAA6B,QAAQ,oBAAoB,KAAO,cAAc/H,GAAG,CAAC,MAAQR,EAAIwI,gCAAgC,CAACxI,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI+C,GAAG,wBAAwB,QAAQ,IAAmxC,UAEjiDrB,EAAkB,G,oBCJlB3B,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,kCAAkC,CAACF,EAAG,KAAK,CAACE,YAAY,cAAc,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,sCAAsC,OAAO7C,EAAG,MAAM,CAACE,YAAY,yCAAyC,CAACF,EAAG,MAAM,CAACE,YAAY,sEAAsE,CAACF,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACF,EAAG,MAAM,CAACE,YAAY,UAAU,CAACF,EAAG,MAAM,CAACE,YAAY,0BAA0B,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,+BAA+B,SAAS7C,EAAG,MAAM,CAACE,YAAY,QAAQ,CAACF,EAAG,MAAM,CAACE,YAAY,gBAAgB,CAAEJ,EAAIyI,qBAAsBvI,EAAG,MAAM,CAACE,YAAY,YAAYC,MAAM,CAAC,QAAQ,uBAAuB,CAACH,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,yBAAyB,OAAO7C,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI0I,gBAAgBC,kBAAkBC,aAAa,SAAS5I,EAAIyB,KAAKvB,EAAG,MAAM,CAACE,YAAY,aAAa,CAACF,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,wBAAwB,OAAO7C,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI0I,gBAAgBC,kBAAkBE,YAAY,SAAS3I,EAAG,MAAM,CAACE,YAAY,aAAa,CAACF,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,uBAAuB,OAAO7C,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI0I,gBAAgBC,kBAAkBG,WAAW,SAAS5I,EAAG,MAAM,CAACE,YAAY,aAAa,CAACF,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,mBAAmB,OAAO7C,EAAG,MAAM,CAACE,YAAY,kBAAkBC,MAAM,CAAC,QAAQ,iBAAiB,CAACL,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI0I,gBAAgBC,kBAAkBI,OAAO,WAAW7I,EAAG,MAAM,CAACE,YAAY,gBAAgB,CAACF,EAAG,MAAM,CAACE,YAAY,uBAAuB,CAACF,EAAG,MAAM,CAACE,YAAY,uCAAuC,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,4BAA4B,OAAO7C,EAAG,MAAM,CAACE,YAAY,kBAAkBC,MAAM,CAAC,QAAQ,mBAAmB,CAACL,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI0I,gBAAgBC,kBAAkBK,gBAAgB,WAAW9I,EAAG,MAAM,CAACE,YAAY,gBAAgB,CAACF,EAAG,MAAM,CAACE,YAAY,uBAAuB,CAACF,EAAG,MAAM,CAACE,YAAY,uCAAuC,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,6BAA6B,OAAO7C,EAAG,MAAM,CAACE,YAAY,kBAAkBC,MAAM,CAAC,QAAQ,oBAAoB,CAACL,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI0I,gBAAgBC,kBAAkBM,iBAAiB,SAAS/I,EAAG,MAAM,CAACE,YAAY,aAAa,CAACF,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,uBAAuB,OAAO7C,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI0I,gBAAgBC,kBAAkBO,WAAW,SAAShJ,EAAG,MAAM,CAACE,YAAY,aAAa,CAACF,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,0BAA0B,OAAO7C,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI0I,gBAAgBC,kBAAkBQ,cAAc,iBAAiBjJ,EAAG,MAAM,CAACE,YAAY,qEAAqE,CAACF,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACF,EAAG,MAAM,CAACE,YAAY,UAAU,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,8BAA8B,OAAO7C,EAAG,MAAM,CAACE,YAAY,QAAQ,CAACF,EAAG,MAAM,CAACE,YAAY,gBAAgB,CAACF,EAAG,MAAM,CAACE,YAAY,aAAa,CAACF,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,mBAAmB,OAAO7C,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI0I,gBAAgBU,iBAAiBC,WAAW,SAASnJ,EAAG,MAAM,CAACE,YAAY,aAAa,CAACF,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,wBAAwB,OAAO7C,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI0I,gBAAgBU,iBAAiBE,YAAY,SAASpJ,EAAG,MAAM,CAACE,YAAY,aAAa,CAACF,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,6BAA6B,OAAO7C,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI0I,gBAAgBU,iBAAiBG,iBAAiB,SAASrJ,EAAG,MAAM,CAACE,YAAY,aAAa,CAACF,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAI,YAAW/C,EAAIkI,2BAA2B,OAAOhI,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI0I,gBAAgBU,iBAAiBI,iBAAiB,WAAWtJ,EAAG,MAAM,CAACE,YAAY,sFAAsF,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,oCAAoC,aAAa7C,EAAG,MAAM,CAACE,YAAY,gDAAgD,CAACF,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACF,EAAG,MAAM,CAACE,YAAY,UAAU,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,gCAAgC,OAAO7C,EAAG,MAAM,CAACE,YAAY,QAAQ,CAACF,EAAG,MAAM,CAACE,YAAY,gBAAgB,CAACF,EAAG,MAAM,CAACE,YAAY,aAAa,CAACF,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,yBAAyB,OAAO7C,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI0I,gBAAgBe,mBAAmBC,aAAa,SAASxJ,EAAG,MAAM,CAACE,YAAY,aAAa,CAACF,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,yBAAyB,OAAO7C,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI0I,gBAAgBe,mBAAmBjD,aAAa,SAAStG,EAAG,MAAM,CAACE,YAAY,aAAa,CAACF,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,kCAAkC,OAAO7C,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI0I,gBAAgBe,mBAAmBE,sBAAsB,mBAAqB3J,EAAI4J,oBAAod5J,EAAIyB,KAAncvB,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,YAAY,CAACG,MAAM,CAAC,QAAQ,8BAA8B,KAAO,eAAe,CAACL,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,+BAA+B,KAAK7C,EAAG,MAAM,CAACE,YAAY,WAAW,CAACF,EAAG,KAAKF,EAAI4G,GAAI5G,EAAI6J,oBAAoB,SAASC,EAAeC,GAAO,OAAO7J,EAAG,KAAK,CAACY,IAAIiJ,EAAM1J,MAAM,CAAC,QAAS,GAAEyJ,gBAA6B,CAAC9J,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAI,2BAA0B+G,MAAmB,UAAS,QAAQ,MAEn6LpI,EAAkB,G,UCyMtB,GACAI,KAAAA,mBACAS,OACA,OACAyH,WADA,KAEA9B,OAAAA,QAGA5B,SAAAA,KACA,wBACAsD,oBAAAA,mCAEA,iCACAlB,gBAAAA,2BAEA,2CACAuB,8BAAAA,gCACAxB,qBAAAA,uBACAyB,WAAAA,sBAEA,gCACAC,mBAAAA,2BAEA,8BACAC,iBAAAA,yBAEA,gCACAzD,mBAAAA,2BAEA,oCACAb,uBAAAA,2BAEA+D,qBACA,WAgBA,OAfA,uBACAQ,EAAAA,KAAAA,SAEA,oCACAA,EAAAA,KAAAA,sBAEA,yBACAA,EAAAA,KAAAA,WAEA,yBACAA,EAAAA,KAAAA,WAEA,6BACAA,EAAAA,KAAAA,eAEA,KC5PwQ,I,UCQpQlI,GAAY,OACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIF,EAAeA,EAAiB,QCqEhC,GACAL,KAAAA,eACAS,OACA,OACA2F,OAAAA,MACAoC,oBAAAA,6CAGAlI,WAAAA,CAAAmI,gBAAAA,GACAjE,SAAAA,KACA,wBACA+B,2BAAAA,6BACAF,2BAAAA,6BACAG,0BAAAA,kCAEA,wCACAV,iBAAAA,mBACAW,6BAAAA,qCAEA,iCACAT,mBAAAA,8BAEA,iCACAE,qBAAAA,gCAEA,2CACAS,qBAAAA,yBAGAZ,wBACA,0BACA,kEAEA,0BACA,6GACA,uGAIArF,QAAAA,KACA,+DACA,iEACA,iDACA,gEACA4F,4BACA,mBAAAtG,KAAAA,EAAAA,EAAAA,mBAEA0G,gCACA,wBACAgC,MAAAC,IACA,4BACAD,MAAA,KACA,mBAAA1I,KAAAA,EAAAA,EAAAA,yBAEA4I,OAAAC,IACAC,QAAAA,MAAAA,SAGAF,OAAAC,IACAC,QAAAA,MAAAA,SCnJqQ,ICQjQ,GAAY,OACd,EACA7K,EACA2B,GACA,EACA,KACA,WACA,MAIF,EAAe,EAAiB,S,+ECnBhC,IAAI3B,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,2BAA2B,CAACH,EAAG,aAAa,CAACU,YAAYZ,EAAIa,GAAG,CAAC,CAACC,IAAI,UAAUC,GAAG,WAAW,MAAO,CAACb,EAAG,kBAAkB,CAACG,MAAM,CAAC,iBAAmBL,EAAI6K,iCAAiC3J,OAAM,GAAM,CAACJ,IAAI,UAAUC,GAAG,WAAW,MAAO,CAACb,EAAG,UAAU,CAACA,EAAG,MAAM,CAACE,YAAY,0DAA0D,CAACF,EAAG,MAAM,CAACE,YAAY,WAAW,CAACF,EAAG,MAAM,CAACE,YAAY,yCAAyC,CAACF,EAAG,MAAM,CAACE,YAAY,0BAA0B,CAACF,EAAG,MAAM,CAACE,YAAY,sBAAsB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,+BAA+B,OAAO7C,EAAG,MAAM,CAACE,YAAY,aAAa,CAACF,EAAG,OAAO,CAACE,YAAY,aAAa,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,qCAAqC7C,EAAG,OAAO,CAACE,YAAY,cAAc,CAACJ,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI0I,gBAAgBC,kBAAkBE,iBAAiB3I,EAAG,MAAM,CAACE,YAAY,aAAa,CAACF,EAAG,OAAO,CAACE,YAAY,aAAa,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,oCAAoC7C,EAAG,OAAO,CAACE,YAAY,cAAc,CAACJ,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI0I,gBAAgBC,kBAAkBG,gBAAgB5I,EAAG,MAAM,CAACE,YAAY,aAAa,CAACF,EAAG,OAAO,CAACE,YAAY,aAAa,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,kCAAkC7C,EAAG,OAAO,CAACE,YAAY,cAAc,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI0I,gBAAgBC,kBAAkBM,iBAAiB,SAAS/I,EAAG,MAAM,CAACE,YAAY,aAAa,CAACF,EAAG,OAAO,CAACE,YAAY,aAAa,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,oCAAoC7C,EAAG,OAAO,CAACE,YAAY,cAAc,CAACJ,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI0I,gBAAgBC,kBAAkBO,kBAAkBhJ,EAAG,MAAM,CAACE,YAAY,2BAA2B,CAACF,EAAG,MAAM,CAACE,YAAY,sBAAsB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,gCAAgC,OAAO7C,EAAG,MAAM,CAACE,YAAY,aAAa,CAAEJ,EAAI8K,0BAA2B5K,EAAG,OAAO,CAACA,EAAG,OAAO,CAACE,YAAY,oCAAoC,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,gDAAgD7C,EAAG,OAAO,CAACE,YAAY,2BAA2BC,MAAM,CAAC,QAAQ,uCAAuCG,GAAG,CAAC,MAAQR,EAAI+K,mBAAmB,CAAC/K,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,kCAAmC,CAAEiI,aAAchL,EAAI0I,gBAAgBuC,2BAA4BD,uBAAyB9K,EAAG,MAAM,CAACE,YAAY,wBAAwBC,MAAM,CAAC,QAAS,iCAAgCL,EAAI6K,gCAAgC,CAAC3K,EAAG,MAAM,CAACE,YAAY,sBAAsB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,8BAA8B,OAAO7C,EAAG,MAAM,CAACE,YAAY,yBAAyB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAIkL,kCAAkC,OAAOhL,EAAG,MAAM,CAACE,YAAY,qBAAqB,CAAEJ,EAAImL,4CAA6CjL,EAAG,IAAI,CAACE,YAAY,sBAAsB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAImL,6CAA6C,OAAOnL,EAAIyB,KAAMzB,EAAIoL,oBAAqBlL,EAAG,IAAI,CAACE,YAAY,wDAAwD,CAACF,EAAG,WAAW,CAACG,MAAM,CAAC,SAAWL,EAAIqL,0BAA0B,QAAUrL,EAAIqL,0BAA0B,QAAQ,sCAAsC,KAAO,cAAc7K,GAAG,CAAC,MAAQR,EAAIsL,mBAAmB,CAACtL,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI+C,GAAG,8CAA8C,QAAQ,GAAG/C,EAAIyB,KAAMzB,EAAIuL,0CAA2CrL,EAAG,IAAI,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,eAAe,CAACL,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAIuL,2CAA2C,QAAQ,GAAGvL,EAAIyB,OAAQzB,EAAIoL,oBAAqBlL,EAAG,MAAM,CAACE,YAAY,iDAAiDJ,EAAIyB,OAAuB,QAAfzB,EAAIkI,OAAkBhI,EAAG,MAAM,CAACE,YAAY,6BAA6B,CAACF,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,YAAY,CAACH,EAAG,OAAO,CAACG,MAAM,CAAC,KAAO,+BAA+B,IAAM,KAAKO,YAAYZ,EAAIa,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAACb,EAAG,IAAI,CAACG,MAAM,CAAC,KAAO,qEAAqE,OAAS,WAAW,CAACL,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,2BAA2B,SAAS7B,OAAM,IAAO,MAAK,EAAM,cAAc,IAAI,GAAGlB,EAAIyB,eAAeP,OAAM,QAAW,IAE99HQ,EAAkB,G,uCCFf,MAAM8J,EAAoB,G,cCA7BzL,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,UAAU,CAACG,MAAM,CAAC,kBAAiB,EAAM,MAAQL,EAAIyL,iBAAiB,SAAW,GAAG,SAAW,KAAK,CAACvL,EAAG,cAAc,CAACG,MAAM,CAAC,WAAY,EAAM,MAAQ,SAAS,MAAQ,QAAQ,KAAO,OAAOH,EAAG,cAAc,CAACG,MAAM,CAAC,WAAY,EAAM,MAAQ,qBAAqB,MAAQ,YAAY,KAAO,OAAOH,EAAG,cAAc,CAACG,MAAM,CAAC,WAAY,EAAM,MAAQ,uBAAuB,MAAQ,WAAW,KAAO,OAAOH,EAAG,cAAc,CAACG,MAAM,CAAC,WAAY,EAAM,MAAQ,4BAA4B,KAAO,aAAa,MAAQ,aAAa,KAAO,QAAQ,IAE7lBqB,EAAkB,GCwBtB,GACAI,KAAAA,kBACAC,MAAAA,CACA0J,iBAAAA,SC7BwQ,I,UCQpQtJ,GAAY,OACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIF,EAAeA,EAAiB,QC+HhC,GACAL,KAAAA,2BACAM,WAAAA,CACAsJ,WADA,IAEAC,gBAAAA,GAEApJ,OACA,OACA2F,OAAAA,QAGA5B,SAAAA,KACA,iCACAoC,gBAAAA,2BAEA,2CACA2C,0BAAAA,6BACAP,0BAAAA,6BACAc,+BAAAA,mCAEAf,8BACA,uDACAgB,uBAEAC,WACA,yCACA,yCACA,4CACA,mCACA,gBACA,SACA,QACA,WAGAC,wBACA,OACA,mCACAC,EAAAA,EAAAA,sBAGAZ,sBACA,OACA,mCACAY,EAAAA,EAAAA,oBAGAC,4BACA,OACA,mCACAD,EAAAA,EAAAA,2BAGAE,2BACA,WACA,+DAEAC,IAAAX,EAAA,QACAY,OAAA,MAEAC,oBACA,WACA,gEACAD,OAAA,MAEAlB,mCACA,qBACA,iDAEA,QACA,0EAGAC,8CACA,iBACA,8DACAmB,sBAAAA,KAAAA,2BAGA,4BACA,eACA,gEAGA,8BACA,eACA,4DACA,CACAC,eAAAA,KAAAA,kBACApD,aAAAA,KAAAA,gBAAAA,kBAAAA,eAIA,mCACA,QAGA,0BAEA,eACA,iEACA,CAAAjB,WAGA,aAEAqD,4CACA,gCACA,QACA,8DAGA,OAGA/I,QAAAA,KACA,2CACA,mBACA,uBCxQ+Q,ICQ3Q,GAAY,OACd,EACAzC,EACA2B,GACA,EACA,KACA,WACA,MAIF,EAAe,EAAiB,S,+ECnBhC,IAAI3B,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,kBAAkB,CAACG,MAAM,CAAC,oBAAmB,EAAK,mBAAkB,EAAK,UAAU,uBAAuBG,GAAG,CAAC,aAAaR,EAAIwM,uBAAuB,UAAUxM,EAAIyM,gBAAgB,CAAEzM,EAAI0M,iBAAkBxM,EAAG,MAAM,CAACE,YAAY,iEAAiE,CAACF,EAAG,IAAI,CAACE,YAAY,0BAA0B,CAACJ,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI2M,iCAAiCzM,EAAG,YAAY,CAACG,MAAM,CAAC,OAASL,EAAI4M,yBAAyB,gBAAe,MAAU,GAAG5M,EAAIyB,KAAKvB,EAAG,MAAM,CAAC8E,WAAW,CAAC,CAAClD,KAAK,OAAOmD,QAAQ,SAASC,OAAQlF,EAAI0M,iBAAkBvH,WAAW,sBAAsB9E,MAAM,CAAC,GAAK,yBAEzqBqB,EAAkB,G,8BCuBtB,GACAI,KAAAA,sBACAS,OACA,OACAsK,eAAAA,EACAH,kBAAAA,EACAI,QAAAA,OAGA,gBACA,wBACAtC,MAAA,UACA,wBACA,uCAEAE,OAAAC,IACAC,QAAAA,MAAAA,GACA,0CACA,kCAGAxI,WAAAA,CAAA2K,gBAAAA,EAAAA,GACAzG,SAAAA,KACA,wCACAqG,6BAAAA,kCAEAK,8BAAAA,mCACAC,+BAAAA,oCAEAC,2BAAAA,6BACAC,oBAAAA,4BAEA,wBACA1C,eAAAA,sBAEAmC,2BACA,OACA,oCACA,sCAIApK,QAAAA,KACA,wCACA,8BACA,2CAEA,6CACAgK,yBACA,mBAAA1K,KAAAA,EAAAA,EAAAA,YAEA2K,gBACA,wBAGAW,MAAAA,CACAD,oBAAAA,SAAAA,GACA,KACA,IACA,QAEA,SADAE,OAAAA,0BAAAA,cAEA,0BACAC,cAAAA,EACA,sCACAC,EACAC,kBAAAA,mBACAC,YAAAA,IAEA,yBAEA,kDACA,IACAC,EAAAA,MAAAA,MAAAA,OACAA,EAAAA,MAAAA,OAAAA,QAGA,6BACA,mBACA5L,KAAAA,EAAAA,EAAAA,mBACA6L,MAAAA,CAAAC,YAAAA,YAEA,KACA,SACA,6BC7G4Q,I,UCQxQzL,GAAY,OACd,EACApC,EACA2B,GACA,EACA,KACA,WACA,MAIF,EAAeS,EAAiB,S,+ECnBhC,IAAIpC,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,kBAAkB,CAACA,EAAG,UAAU,CAACA,EAAG,MAAM,CAACE,YAAY,sBAAsB,CAACF,EAAG,MAAM,CAACE,YAAY,uBAAuB,CAACF,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACF,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,eAAe,CAACG,MAAM,CAAC,SAAWL,EAAI6N,6BAA6B,MAAQ7N,EAAI+C,GAAG,yBAAyB,MAAQ/C,EAAI+I,MAAM,KAAO,qBAAqB7I,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQL,EAAI+C,GAAG,yBAAyB,oBAAoB/C,EAAI8N,sBAAsB,KAAO,mBAAmB3G,MAAM,CAACjC,MAAOlF,EAAI+N,gBAAiB1G,SAAS,SAAUC,GAAMtH,EAAI+N,gBAAgBzG,GAAKnC,WAAW,qBAAqBjF,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQL,EAAI+C,GAAG,gCAAgC,oBAAoB/C,EAAIgO,6BAA6B,KAAO,0BAA0B7G,MAAM,CAACjC,MAAOlF,EAAIiO,uBAAwB5G,SAAS,SAAUC,GAAMtH,EAAIiO,uBAAuB3G,GAAKnC,WAAW,6BAA6B,GAAGjF,EAAG,MAAM,CAACE,YAAY,2BAA2B,CAACF,EAAG,WAAW,CAACG,MAAM,CAAC,UAAYL,EAAIkO,qBAAqB,QAAUlO,EAAImO,kCAC9jCnO,EAAIoO,2CAA2C,QAAQ,oCAAoC,KAAO,YAAY,KAAO,cAAc5N,GAAG,CAAC,MAAQR,EAAIqO,oCAAoC,CAACrO,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI+C,GAAG,4CAA4C,QAAQ,GAAI/C,EAAIsO,6BAA8BpO,EAAG,YAAY,CAACG,MAAM,CAAC,QAAQ,+BAA+B,KAAO,cAAc,CAACL,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAIuO,uBAAuB,OAAOvO,EAAIyB,KAAMzB,EAAIwO,uCAAwCtO,EAAG,YAAY,CAACG,MAAM,CAAC,QAAQ,oBAAoB,KAAO,cAAc,CAACL,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,8BAA8B,OAAO/C,EAAIyB,MAAM,YAEloBC,EAAkB,G,4DCkEtB,GACAI,KAAAA,gBACAM,WAAAA,CAAA+D,YAAAA,EAAAA,EAAA4G,gBAAAA,EAAAA,GACAxK,OACA,OACAsL,8BAAAA,EACAE,gBAAAA,GACAE,uBAAAA,KAGA3H,SAAAA,KACA,wBACAmE,eAAAA,oBACA6D,6BAAAA,kCACAH,iCAAAA,yCAEA,2CACApF,MAAAA,iBAEA,wCACAyF,uCACA,4CACAJ,2CACA,+CAEAK,kBACA,0CAEAC,sBACA,0CAEAC,kBACA,wDAEAb,wBACA,WAMA,OALA,qBACAc,EAAAA,KAAAA,EAAAA,EAAAA,EAAAA,yCACA,0BACAA,EAAAA,KAAAA,EAAAA,EAAAA,EAAAA,uCAEA,GAEAC,yBACA,iDAEAC,6BACA,2DAEAC,yBACA,sEAEAf,+BACA,WAMA,OALA,4BACAY,EAAAA,KAAAA,EAAAA,EAAAA,EAAAA,yCACA,iCACAA,EAAAA,KAAAA,EAAAA,EAAAA,EAAAA,uCAEA,GAEAV,uBACA,0DAEAc,0BACA,iDAIA,2CACA,sCAGAT,wBACA,oCACA,8CAEA,uCAGA/L,QAAAA,KACA,wDACA,wCACA,sCAEA6L,oCACA,mDACA7D,MAAA,KACA,yCACAA,MAAA,KACA,mBAAA1I,KAAAA,EAAAA,EAAAA,yBAEA4I,OAAAC,IACAC,QAAAA,MAAAA,SAGAF,OAAAC,IACAC,QAAAA,MAAAA,SCtKsQ,I,UCOlQzI,GAAY,OACd,EACApC,EACA2B,GACA,EACA,KACA,WACA,MAIF,EAAeS,EAAiB,S,gFClBhC,IAAIpC,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,kBAAkB,CAACA,EAAG,UAAU,CAACA,EAAG,MAAM,CAACE,YAAY,wCAAwC,CAACF,EAAG,MAAM,CAACE,YAAY,uBAAuB,CAACF,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACF,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,IAAI,CAACF,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,kCAAmC,CAAEgG,MAAO/I,EAAI+I,SAAU,SAAS7I,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,WAAW,CAACG,MAAM,CAAC,QAAQ,qBAAqB,KAAO,YAAY,KAAO,cAAcG,GAAG,CAAC,MAAQR,EAAIiP,wBAAwB,CAACjP,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI+C,GAAG,sBAAsB,QAAQ,GAAI/C,EAAIkP,6BAA8BhP,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,YAAY,CAACG,MAAM,CAAC,QAAQ,+BAA+B,KAAO,eAAe,CAACL,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,mCAAmC,QAAQ,GAAG/C,EAAIyB,KAAMzB,EAAImP,2BAA4BjP,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,YAAY,CAACG,MAAM,CAAC,QAAQ,6BAA6B,KAAO,cAAc,CAACL,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAIoP,uBAAuB,QAAQ,GAAGpP,EAAIyB,KAAKvB,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,WAAW,CAACG,MAAM,CAAC,QAAQ,qBAAqB,KAAO,YAAY,KAAO,cAAcG,GAAG,CAAC,MAAQR,EAAIqP,cAAc,CAACrP,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI+C,GAAG,sBAAsB,QAAQ,cAEhuCrB,EAAkB,G,gDCItB,MAAM4N,EAAuC,CAAC,EAAG,IAAM,IAAO,IAAO,MAG/D,MAAOC,EAGTC,YAAYC,GACRxP,KAAKyP,kBAA+BC,IAAhBF,EAA4B,IAAIA,EAAa,MAAQH,EAGtEM,6BAA6BC,GAChC,OAAO5P,KAAKyP,aAAaG,EAAaC,qB,ICTlCC,E,gCCFN,MAAOC,UAAkBC,MAa3BT,YAAYU,EAAsBC,GAC9B,MAAMC,aAAuBC,UAC7BC,MAAM,GAAGJ,mBAA8BC,MACvClQ,KAAKkQ,WAAaA,EAIlBlQ,KAAKsQ,UAAYH,GAKnB,MAAOI,UAAqBP,MAS9BT,YAAYU,EAAuB,uBAC/B,MAAME,aAAuBC,UAC7BC,MAAMJ,GAINjQ,KAAKsQ,UAAYH,GAKnB,MAAOK,UAAmBR,MAS5BT,YAAYU,EAAuB,sBAC/B,MAAME,aAAuBC,UAC7BC,MAAMJ,GAINjQ,KAAKsQ,UAAYH,GAMnB,MAAOM,UAAkCT,MAgB3CT,YAAYmB,EAAiBC,GACzB,MAAMR,aAAuBC,UAC7BC,MAAMK,GACN1Q,KAAK2Q,UAAYA,EACjB3Q,KAAK4Q,UAAY,4BAIjB5Q,KAAKsQ,UAAYH,GAMnB,MAAOU,UAA+Bb,MAgBxCT,YAAYmB,EAAiBC,GACzB,MAAMR,aAAuBC,UAC7BC,MAAMK,GACN1Q,KAAK2Q,UAAYA,EACjB3Q,KAAK4Q,UAAY,yBAIjB5Q,KAAKsQ,UAAYH,GAMnB,MAAOW,UAAoCd,MAgB7CT,YAAYmB,EAAiBC,GACzB,MAAMR,aAAuBC,UAC7BC,MAAMK,GACN1Q,KAAK2Q,UAAYA,EACjB3Q,KAAK4Q,UAAY,8BAIjB5Q,KAAKsQ,UAAYH,GAMnB,MAAOY,UAAyCf,MAYlDT,YAAYmB,GACR,MAAMP,aAAuBC,UAC7BC,MAAMK,GACN1Q,KAAK4Q,UAAY,mCAIjB5Q,KAAKsQ,UAAYH,GAMnB,MAAOa,UAAwBhB,MAajCT,YAAYmB,EAAiBO,GACzB,MAAMd,aAAuBC,UAC7BC,MAAMK,GAEN1Q,KAAKiR,YAAcA,EAInBjR,KAAKsQ,UAAYH,GC9KnB,MAAOe,EAqCT3B,YACoBW,EACAiB,EACAC,GAFA,KAAAlB,WAAAA,EACA,KAAAiB,WAAAA,EACA,KAAAC,QAAAA,GAQlB,MAAgBC,EAeXC,IAAIC,EAAaC,GACpB,OAAOxR,KAAKyR,KAAK,IACVD,EACHE,OAAQ,MACRH,QAkBDI,KAAKJ,EAAaC,GACrB,OAAOxR,KAAKyR,KAAK,IACVD,EACHE,OAAQ,OACRH,QAkBDK,OAAOL,EAAaC,GACvB,OAAOxR,KAAKyR,KAAK,IACVD,EACHE,OAAQ,SACRH,QAiBDM,gBAAgBN,GACnB,MAAO,KF3Jf,SAAYzB,GAERA,EAAAA,EAAAA,SAAAA,GAAAA,QAEAA,EAAAA,EAAAA,SAAAA,GAAAA,QAEAA,EAAAA,EAAAA,eAAAA,GAAAA,cAEAA,EAAAA,EAAAA,WAAAA,GAAAA,UAEAA,EAAAA,EAAAA,SAAAA,GAAAA,QAEAA,EAAAA,EAAAA,YAAAA,GAAAA,WAEAA,EAAAA,EAAAA,QAAAA,GAAAA,QAdJ,CAAYA,IAAAA,EAAQ,KGFd,MAAOgC,EAITvC,eAIOwC,IAAIC,EAAqBC,KANlBH,EAAAA,SAAoB,IAAIA,ECKnC,MAAMI,EAAkB,QAEzB,MAAOC,EACe,kBAACC,EAAUvQ,GAC/B,GAAY,OAARuQ,QAAwB1C,IAAR0C,EAChB,MAAM,IAAIpC,MAAM,QAAQnO,4BAGR,kBAACuQ,EAAavQ,GAClC,IAAKuQ,GAAOA,EAAIC,MAAM,SAClB,MAAM,IAAIrC,MAAM,QAAQnO,oCAId,YAACuQ,EAAUE,EAAazQ,GAEtC,KAAMuQ,KAAOE,GACT,MAAM,IAAItC,MAAM,WAAWnO,YAAeuQ,OAMhD,MAAOG,EAESC,uBACd,MAAyB,kBAAXC,QAAkD,kBAApBA,OAAOC,SAIrCC,yBACd,MAAuB,kBAATC,MAAqB,kBAAmBA,KAI/CC,2BACP,MAAyB,kBAAXJ,QAAkD,qBAApBA,OAAOC,SAKrCI,oBACd,OAAQ9S,KAAKwS,YAAcxS,KAAK2S,cAAgB3S,KAAK6S,eAKvD,SAAUE,EAAczQ,EAAW0Q,GACrC,IAAIC,EAAS,GAYb,OAXIC,EAAc5Q,IACd2Q,EAAS,yBAAyB3Q,EAAK6Q,aACnCH,IACAC,GAAU,eAAeG,EAAkB9Q,QAExB,kBAATA,IACd2Q,EAAS,yBAAyB3Q,EAAK+Q,SACnCL,IACAC,GAAU,eAAe3Q,OAG1B2Q,EAIL,SAAUG,EAAkB9Q,GAC9B,MAAMgR,EAAO,IAAIC,WAAWjR,GAG5B,IAAIkR,EAAM,GAOV,OANAF,EAAKG,SAASC,IACV,MAAMC,EAAMD,EAAM,GAAK,IAAM,GAC7BF,GAAO,KAAKG,IAAMD,EAAIE,SAAS,UAI5BJ,EAAIK,OAAO,EAAGL,EAAIH,OAAS,GAKhC,SAAUH,EAAcd,GAC1B,OAAOA,GAA8B,qBAAhB0B,cAChB1B,aAAe0B,aAEX1B,EAAI7C,aAAwC,gBAAzB6C,EAAI7C,YAAY1N,MAIzCkS,eAAeC,EAAYC,EAAiBC,EAAuBC,EAAwB5C,EAAa6C,EAC7EhD,EAA+BI,GAC7D,IAAI6C,EAAiC,GACrC,GAAID,EAAoB,CACpB,MAAME,QAAcF,IAChBE,IACAD,EAAU,CACN,CAAC,iBAAkB,UAAUC,MAKzC,MAAOzS,EAAMoD,GAASsP,IACtBF,EAAQxS,GAAQoD,EAEhBgP,EAAOlC,IAAIjC,EAAS0E,MAAO,IAAIN,8BAA0CnB,EAAc3B,EAASI,EAAQiD,uBAExG,MAAMC,EAAexB,EAAc9B,GAAW,cAAgB,OACxDuD,QAAiBR,EAAWxC,KAAKJ,EAAK,CACxCH,UACAiD,QAAS,IAAKA,KAAY7C,EAAQ6C,SAClCK,eACAE,QAASpD,EAAQoD,QACjBC,gBAAiBrD,EAAQqD,kBAG7BZ,EAAOlC,IAAIjC,EAAS0E,MAAO,IAAIN,mDAA+DS,EAASzE,eAIrG,SAAU4E,EAAab,GACzB,YAAevE,IAAXuE,EACO,IAAIc,EAAcjF,EAASkF,aAGvB,OAAXf,EACOnC,EAAWmD,cAGUvF,IAA3BuE,EAAmBlC,IACbkC,EAGJ,IAAIc,EAAcd,GAIvB,MAAOiB,EAIT3F,YAAY4F,EAAqBC,GAC7BpV,KAAKqV,SAAWF,EAChBnV,KAAKsV,UAAYF,EAGdG,UACH,MAAMzL,EAAgB9J,KAAKqV,SAASG,UAAUC,QAAQzV,KAAKsV,WACvDxL,GAAS,GACT9J,KAAKqV,SAASG,UAAUE,OAAO5L,EAAO,GAGH,IAAnC9J,KAAKqV,SAASG,UAAUnC,QAAgBrT,KAAKqV,SAASM,gBACtD3V,KAAKqV,SAASM,iBAAiBlL,OAAOmL,SAM5C,MAAOb,EAWTxF,YAAYsG,GACR7V,KAAK8V,UAAYD,EACjB7V,KAAK+V,IAAMpL,QAGRoH,IAAIiE,EAAoBtF,GAC3B,GAAIsF,GAAYhW,KAAK8V,UAAW,CAC5B,MAAMG,EAAM,KAAI,IAAIC,MAAOC,kBAAkBrG,EAASkG,OAActF,IACpE,OAAQsF,GACJ,KAAKlG,EAASsG,SACd,KAAKtG,EAASE,MACVhQ,KAAK+V,IAAIrL,MAAMuL,GACf,MACJ,KAAKnG,EAASuG,QACVrW,KAAK+V,IAAIO,KAAKL,GACd,MACJ,KAAKnG,EAASkF,YACVhV,KAAK+V,IAAIQ,KAAKN,GACd,MACJ,QAEIjW,KAAK+V,IAAIhE,IAAIkE,GACb,SAOd,SAAU1B,IACZ,IAAIiC,EAAsB,uBAI1B,OAHIjE,EAASO,SACT0D,EAAsB,cAEnB,CAAEA,EAAqBC,EAAmBvE,EAASwE,IAAaC,IAAcC,MAInF,SAAUH,EAAmBI,EAAiBC,EAAYC,EAAiBC,GAE7E,IAAIC,EAAoB,qBAExB,MAAMC,EAAgBL,EAAQM,MAAM,KAmBpC,OAlBAF,GAAa,GAAGC,EAAc,MAAMA,EAAc,KAClDD,GAAa,KAAKJ,MAGdI,GADAH,GAAa,KAAPA,EACO,GAAGA,MAEH,eAGjBG,GAAa,GAAGF,IAGZE,GADAD,EACa,KAAKA,IAEL,4BAGjBC,GAAa,IACNA,EAIG,SAASP,IACnB,IAAInE,EAASO,OAYT,MAAO,GAXP,OAAQsE,QAAQC,UACZ,IAAK,QACD,MAAO,aACX,IAAK,SACD,MAAO,QACX,IAAK,QACD,MAAO,QACX,QACI,OAAOD,QAAQC,UAQjB,SAAST,IACnB,GAAIrE,EAASO,OACT,OAAOsE,QAAQE,SAASC,KAKhC,SAASZ,IACL,OAAIpE,EAASO,OACF,SAEA,UAKT,SAAU0E,EAAeC,GAC3B,OAAIA,EAAEC,MACKD,EAAEC,MACFD,EAAE/G,QACF+G,EAAE/G,QAEN,GAAG+G,IAIR,SAAUE,IAEZ,GAA0B,qBAAfC,WACP,OAAOA,WAEX,GAAoB,qBAAThF,KACP,OAAOA,KAEX,GAAsB,qBAAXH,OACP,OAAOA,OAEX,GAAsB,qBAAXoF,EAAAA,EACP,OAAOA,EAAAA,EAEX,MAAM,IAAI7H,MAAM,yBCrSd,MAAO8H,UAAwBzG,EAOjC9B,YAAmB0E,GAIf,GAHA5D,QACArQ,KAAK+X,QAAU9D,EAEM,qBAAV+D,MAAuB,CAG9B,MAAMC,EAA0DC,QAGhElY,KAAKmY,KAAO,IAAKF,EAAY,gBAAjB,WACZjY,KAAKoY,WAAaH,EAAY,cAI9BjY,KAAKoY,WAAaH,EAAY,eAAZA,CAA4BjY,KAAKoY,WAAYpY,KAAKmY,WAEpEnY,KAAKoY,WAAaJ,MAAMK,KAAKV,KAEjC,GAA+B,qBAApBW,gBAAiC,CAGxC,MAAML,EAA0DC,QAGhElY,KAAKuY,qBAAuBN,EAAY,yBAExCjY,KAAKuY,qBAAuBD,gBAKnB,WAACE,GAEd,GAAIA,EAAQC,aAAeD,EAAQC,YAAYC,QAC3C,MAAM,IAAIlI,EAGd,IAAKgI,EAAQ9G,OACT,MAAM,IAAI1B,MAAM,sBAEpB,IAAKwI,EAAQjH,IACT,MAAM,IAAIvB,MAAM,mBAGpB,MAAM2I,EAAkB,IAAI3Y,KAAKuY,qBAEjC,IAAI7N,EAEA8N,EAAQC,cACRD,EAAQC,YAAYG,QAAU,KAC1BD,EAAgBE,QAChBnO,EAAQ,IAAI8F,IAMpB,IAUImE,EAVAmE,EAAiB,KACrB,GAAIN,EAAQ5D,QAAS,CACjB,MAAMmE,EAAYP,EAAQ5D,QAC1BkE,EAAYE,YAAW,KACnBL,EAAgBE,QAChB7Y,KAAK+X,QAAQhG,IAAIjC,EAASuG,QAAS,8BACnC3L,EAAQ,IAAI6F,IACbwI,GAIP,IACIpE,QAAiB3U,KAAKoY,WAAWI,EAAQjH,IAAM,CAC3CnQ,KAAMoX,EAAQpH,QACd6H,MAAO,WACPC,aAAyC,IAA5BV,EAAQ3D,gBAA2B,UAAY,cAC5DR,QAAS,CACL,eAAgB,2BAChB,mBAAoB,oBACjBmE,EAAQnE,SAEf3C,OAAQ8G,EAAQ9G,OAChByH,KAAM,OACNC,SAAU,SACVC,OAAQV,EAAgBU,SAE9B,MAAO5B,GACL,GAAI/M,EACA,MAAMA,EAMV,MAJA1K,KAAK+X,QAAQhG,IACTjC,EAASuG,QACT,4BAA4BoB,MAE1BA,EAvBV,QAyBQqB,GACAQ,aAAaR,GAEbN,EAAQC,cACRD,EAAQC,YAAYG,QAAU,MAItC,IAAKjE,EAAS4E,GAAI,CACd,MAAMtJ,QAAqBuJ,EAAmB7E,EAAU,QACxD,MAAM,IAAI5E,EAAUE,GAAgB0E,EAASxD,WAAYwD,EAAS8E,QAGtE,MAAMrI,EAAUoI,EAAmB7E,EAAU6D,EAAQ9D,cAC/CgF,QAAgBtI,EAEtB,OAAO,IAAIF,EACPyD,EAAS8E,OACT9E,EAASxD,WACTuI,GAID7H,gBAAgBN,GACnB,IAAIoI,EAAkB,GAKtB,OAJIpH,EAASO,QAAU9S,KAAKmY,MAExBnY,KAAKmY,KAAKyB,WAAWrI,GAAK,CAACkG,EAAGoC,IAAMF,EAAUE,EAAEC,KAAK,QAElDH,GAIf,SAASH,EAAmB7E,EAAoBD,GAC5C,IAAItD,EACJ,OAAQsD,GACJ,IAAK,cACDtD,EAAUuD,EAASoF,cACnB,MACJ,IAAK,OACD3I,EAAUuD,EAASqF,OACnB,MACJ,IAAK,OACL,IAAK,WACL,IAAK,OACD,MAAM,IAAIhK,MAAM,GAAG0E,uBACvB,QACItD,EAAUuD,EAASqF,OACnB,MAGR,OAAO5I,EC5JL,MAAO6I,UAAsB5I,EAG/B9B,YAAmB0E,GACf5D,QACArQ,KAAK+X,QAAU9D,EAIZxC,KAAK+G,GAER,OAAIA,EAAQC,aAAeD,EAAQC,YAAYC,QACpCwB,QAAQC,OAAO,IAAI3J,GAGzBgI,EAAQ9G,OAGR8G,EAAQjH,IAIN,IAAI2I,SAAsB,CAACE,EAASD,KACvC,MAAME,EAAM,IAAIC,eAEhBD,EAAIE,KAAK/B,EAAQ9G,OAAS8G,EAAQjH,KAAM,GACxC8I,EAAIxF,qBAA8CnF,IAA5B8I,EAAQ3D,iBAAuC2D,EAAQ3D,gBAC7EwF,EAAIG,iBAAiB,mBAAoB,kBAEzCH,EAAIG,iBAAiB,eAAgB,4BAErC,MAAMnG,EAAUmE,EAAQnE,QACpBA,GACAoG,OAAOC,KAAKrG,GACPZ,SAASpT,IACNga,EAAIG,iBAAiBna,EAAQgU,EAAQhU,OAI7CmY,EAAQ9D,eACR2F,EAAI3F,aAAe8D,EAAQ9D,cAG3B8D,EAAQC,cACRD,EAAQC,YAAYG,QAAU,KAC1ByB,EAAIxB,QACJsB,EAAO,IAAI3J,KAIfgI,EAAQ5D,UACRyF,EAAIzF,QAAU4D,EAAQ5D,SAG1ByF,EAAIM,OAAS,KACLnC,EAAQC,cACRD,EAAQC,YAAYG,QAAU,MAG9ByB,EAAIZ,QAAU,KAAOY,EAAIZ,OAAS,IAClCW,EAAQ,IAAIlJ,EAAamJ,EAAIZ,OAAQY,EAAIlJ,WAAYkJ,EAAI1F,UAAY0F,EAAIO,eAEzET,EAAO,IAAIpK,EAAUsK,EAAI1F,UAAY0F,EAAIO,cAAgBP,EAAIlJ,WAAYkJ,EAAIZ,UAIrFY,EAAIQ,QAAU,KACV7a,KAAK+X,QAAQhG,IAAIjC,EAASuG,QAAS,4BAA4BgE,EAAIZ,WAAWY,EAAIlJ,eAClFgJ,EAAO,IAAIpK,EAAUsK,EAAIlJ,WAAYkJ,EAAIZ,UAG7CY,EAAIS,UAAY,KACZ9a,KAAK+X,QAAQhG,IAAIjC,EAASuG,QAAS,8BACnC8D,EAAO,IAAI5J,IAGf8J,EAAI5I,KAAK+G,EAAQpH,SAAW,OAzDrB8I,QAAQC,OAAO,IAAInK,MAAM,oBAHzBkK,QAAQC,OAAO,IAAInK,MAAM,wBCZtC,MAAO+K,UAA0B1J,EAInC9B,YAAmB0E,GAGf,GAFA5D,QAEqB,qBAAV2H,OAAyBzF,EAASO,OACzC9S,KAAKgb,YAAc,IAAIlD,EAAgB7D,OACpC,IAA8B,qBAAnBqG,eAGd,MAAM,IAAItK,MAAM,+BAFhBhQ,KAAKgb,YAAc,IAAIf,EAAchG,IAOtCxC,KAAK+G,GAER,OAAIA,EAAQC,aAAeD,EAAQC,YAAYC,QACpCwB,QAAQC,OAAO,IAAI3J,GAGzBgI,EAAQ9G,OAGR8G,EAAQjH,IAINvR,KAAKgb,YAAYvJ,KAAK+G,GAHlB0B,QAAQC,OAAO,IAAInK,MAAM,oBAHzBkK,QAAQC,OAAO,IAAInK,MAAM,uBASjC6B,gBAAgBN,GACnB,OAAOvR,KAAKgb,YAAYnJ,gBAAgBN,IC1C1C,MAAgB0J,GCEf,IAAKC,EAYAC,EDbQF,EAAAA,cAAgB,gBAChBA,EAAAA,OAAS,SCA7B,SAAYC,GAERA,EAAAA,EAAAA,QAAAA,GAAAA,OAEAA,EAAAA,EAAAA,cAAAA,GAAAA,aAEAA,EAAAA,EAAAA,oBAAAA,GAAAA,mBAEAA,EAAAA,EAAAA,eAAAA,GAAAA,cARJ,CAAYA,IAAAA,EAAiB,KAY7B,SAAYC,GAERA,EAAAA,EAAAA,QAAAA,GAAAA,OAEAA,EAAAA,EAAAA,UAAAA,GAAAA,SAJJ,CAAYA,IAAAA,EAAc,KCRpB,MAAO7C,EAAb/I,cACY,KAAA6L,YAAsB,EACvB,KAAAxC,QAA+B,KAE/BC,QACE7Y,KAAKob,aACNpb,KAAKob,YAAa,EACdpb,KAAK4Y,SACL5Y,KAAK4Y,WAKbS,aACA,OAAOrZ,KAGP0Y,cACA,OAAO1Y,KAAKob,YCbd,MAAOC,EAoBT9L,YAAY4E,EAAwBC,EAAkEH,EAAiBzC,GACnHxR,KAAKgb,YAAc7G,EACnBnU,KAAKsb,oBAAsBlH,EAC3BpU,KAAK+X,QAAU9D,EACfjU,KAAKub,WAAa,IAAIjD,EACtBtY,KAAKwb,SAAWhK,EAEhBxR,KAAKyb,UAAW,EAEhBzb,KAAK0b,UAAY,KACjB1b,KAAK2b,QAAU,KAdRC,kBACP,OAAO5b,KAAKub,WAAW7C,QAgBP,cAACnH,EAAasK,GAU9B,GATA1J,EAAI2J,WAAWvK,EAAK,OACpBY,EAAI2J,WAAWD,EAAgB,kBAC/B1J,EAAI4J,KAAKF,EAAgBV,EAAgB,kBAEzCnb,KAAKgc,KAAOzK,EAEZvR,KAAK+X,QAAQhG,IAAIjC,EAAS0E,MAAO,uCAG7BqH,IAAmBV,EAAec,QACP,qBAAnB3B,gBAA+E,kBAAtC,IAAIA,gBAAiB5F,aACtE,MAAM,IAAI1E,MAAM,8FAGpB,MAAOnO,EAAMoD,GAASsP,IAChBF,EAAU,CAAE,CAACxS,GAAOoD,KAAUjF,KAAKwb,SAASnH,SAE5C6H,EAA2B,CAC7BzD,YAAazY,KAAKub,WAAWlC,OAC7BhF,UACAO,QAAS,IACTC,gBAAiB7U,KAAKwb,SAAS3G,iBAG/BgH,IAAmBV,EAAec,SAClCC,EAAYxH,aAAe,eAG/B,MAAMJ,QAActU,KAAKmc,kBACzBnc,KAAKoc,mBAAmBF,EAAa5H,GAIrC,MAAM+H,EAAU,GAAG9K,OAAS2E,KAAKoG,QACjCtc,KAAK+X,QAAQhG,IAAIjC,EAAS0E,MAAO,oCAAoC6H,MACrE,MAAM1H,QAAiB3U,KAAKgb,YAAY1J,IAAI+K,EAASH,GACzB,MAAxBvH,EAASzE,YACTlQ,KAAK+X,QAAQhG,IAAIjC,EAASE,MAAO,qDAAqD2E,EAASzE,eAG/FlQ,KAAKuc,YAAc,IAAIxM,EAAU4E,EAASxD,YAAc,GAAIwD,EAASzE,YACrElQ,KAAKyb,UAAW,GAEhBzb,KAAKyb,UAAW,EAGpBzb,KAAKwc,WAAaxc,KAAKyc,MAAMzc,KAAKgc,KAAME,GAGf,wBACzB,OAAIlc,KAAKsb,0BACQtb,KAAKsb,sBAGf,KAGHc,mBAAmB5D,EAAsBlE,GACxCkE,EAAQnE,UACTmE,EAAQnE,QAAU,IAElBC,EACAkE,EAAQnE,QAAQ4G,EAAYyB,eAAiB,UAAUpI,IAGvDkE,EAAQnE,QAAQ4G,EAAYyB,uBACrBlE,EAAQnE,QAAQ4G,EAAYyB,eAIxB,YAACnL,EAAa2K,GAC7B,IACI,MAAOlc,KAAKyb,SAAU,CAElB,MAAMnH,QAActU,KAAKmc,kBACzBnc,KAAKoc,mBAAmBF,EAAa5H,GAErC,IACI,MAAM+H,EAAU,GAAG9K,OAAS2E,KAAKoG,QACjCtc,KAAK+X,QAAQhG,IAAIjC,EAAS0E,MAAO,oCAAoC6H,MACrE,MAAM1H,QAAiB3U,KAAKgb,YAAY1J,IAAI+K,EAASH,GAEzB,MAAxBvH,EAASzE,YACTlQ,KAAK+X,QAAQhG,IAAIjC,EAASkF,YAAa,sDAEvChV,KAAKyb,UAAW,GACe,MAAxB9G,EAASzE,YAChBlQ,KAAK+X,QAAQhG,IAAIjC,EAASE,MAAO,qDAAqD2E,EAASzE,eAG/FlQ,KAAKuc,YAAc,IAAIxM,EAAU4E,EAASxD,YAAc,GAAIwD,EAASzE,YACrElQ,KAAKyb,UAAW,GAGZ9G,EAASvD,SACTpR,KAAK+X,QAAQhG,IAAIjC,EAAS0E,MAAO,0CAA0CzB,EAAc4B,EAASvD,QAASpR,KAAKwb,SAAS/G,uBACrHzU,KAAK0b,WACL1b,KAAK0b,UAAU/G,EAASvD,UAI5BpR,KAAK+X,QAAQhG,IAAIjC,EAAS0E,MAAO,sDAG3C,MAAOiD,GACAzX,KAAKyb,SAIFhE,aAAalH,EAEbvQ,KAAK+X,QAAQhG,IAAIjC,EAAS0E,MAAO,uDAGjCxU,KAAKuc,YAAc9E,EACnBzX,KAAKyb,UAAW,GARpBzb,KAAK+X,QAAQhG,IAAIjC,EAAS0E,MAAO,wDAAwDiD,EAAE/G,aApC3G,QAkDI1Q,KAAK+X,QAAQhG,IAAIjC,EAAS0E,MAAO,6CAI5BxU,KAAK4b,aACN5b,KAAK2c,iBAKA,WAACra,GACd,OAAKtC,KAAKyb,SAGHzH,EAAYhU,KAAK+X,QAAS,cAAe/X,KAAKgb,YAAahb,KAAKgc,KAAOhc,KAAKsb,oBAAqBhZ,EAAMtC,KAAKwb,UAFxGtB,QAAQC,OAAO,IAAInK,MAAM,iDAKvB,aACbhQ,KAAK+X,QAAQhG,IAAIjC,EAAS0E,MAAO,6CAGjCxU,KAAKyb,UAAW,EAChBzb,KAAKub,WAAW1C,QAEhB,UACU7Y,KAAKwc,WAGXxc,KAAK+X,QAAQhG,IAAIjC,EAAS0E,MAAO,qDAAqDxU,KAAKgc,SAE3F,MAAM3H,EAAiC,IAChCxS,EAAMoD,GAASsP,IACtBF,EAAQxS,GAAQoD,EAEhB,MAAM2X,EAA6B,CAC/BvI,QAAS,IAAKA,KAAYrU,KAAKwb,SAASnH,SACxCO,QAAS5U,KAAKwb,SAAS5G,QACvBC,gBAAiB7U,KAAKwb,SAAS3G,iBAE7BP,QAActU,KAAKmc,kBACzBnc,KAAKoc,mBAAmBQ,EAAetI,SACjCtU,KAAKgb,YAAYpJ,OAAO5R,KAAKgc,KAAOY,GAE1C5c,KAAK+X,QAAQhG,IAAIjC,EAAS0E,MAAO,gDAnBrC,QAqBIxU,KAAK+X,QAAQhG,IAAIjC,EAAS0E,MAAO,0CAIjCxU,KAAK2c,iBAILA,gBACJ,GAAI3c,KAAK2b,QAAS,CACd,IAAIkB,EAAa,gDACb7c,KAAKuc,cACLM,GAAc,WAAa7c,KAAKuc,aAEpCvc,KAAK+X,QAAQhG,IAAIjC,EAAS0E,MAAOqI,GACjC7c,KAAK2b,QAAQ3b,KAAKuc,eC1NxB,MAAOO,EAWTvN,YAAY4E,EAAwBC,EAAkEH,EAC1FzC,GACRxR,KAAKgb,YAAc7G,EACnBnU,KAAKsb,oBAAsBlH,EAC3BpU,KAAK+X,QAAU9D,EACfjU,KAAKwb,SAAWhK,EAEhBxR,KAAK0b,UAAY,KACjB1b,KAAK2b,QAAU,KAGC,cAACpK,EAAasK,GAU9B,GATA1J,EAAI2J,WAAWvK,EAAK,OACpBY,EAAI2J,WAAWD,EAAgB,kBAC/B1J,EAAI4J,KAAKF,EAAgBV,EAAgB,kBAEzCnb,KAAK+X,QAAQhG,IAAIjC,EAAS0E,MAAO,+BAGjCxU,KAAKgc,KAAOzK,EAERvR,KAAKsb,oBAAqB,CAC1B,MAAMhH,QAActU,KAAKsb,sBACrBhH,IACA/C,IAAQA,EAAIkE,QAAQ,KAAO,EAAI,IAAM,KAAO,gBAAgBsH,mBAAmBzI,MAIvF,OAAO,IAAI4F,SAAc,CAACE,EAASD,KAC/B,IAMI6C,EANAC,GAAS,EACb,GAAIpB,IAAmBV,EAAe+B,KAAtC,CAMA,GAAI3K,EAASC,WAAaD,EAASI,YAC/BqK,EAAc,IAAIhd,KAAKwb,SAAS2B,YAAa5L,EAAK,CAAEsD,gBAAiB7U,KAAKwb,SAAS3G,sBAChF,CAEH,MAAM8E,EAAU3Z,KAAKgb,YAAYnJ,gBAAgBN,GAC3C8C,EAA0B,GAChCA,EAAQ+I,OAASzD,EACjB,MAAO9X,EAAMoD,GAASsP,IACtBF,EAAQxS,GAAQoD,EAEhB+X,EAAc,IAAIhd,KAAKwb,SAAS2B,YAAa5L,EAAK,CAAEsD,gBAAiB7U,KAAKwb,SAAS3G,gBAAiBR,QAAS,IAAKA,KAAYrU,KAAKwb,SAASnH,WAGhJ,IACI2I,EAAYK,UAAa5F,IACrB,GAAIzX,KAAK0b,UACL,IACI1b,KAAK+X,QAAQhG,IAAIjC,EAAS0E,MAAO,kCAAkCzB,EAAc0E,EAAEnV,KAAMtC,KAAKwb,SAAS/G,uBACvGzU,KAAK0b,UAAUjE,EAAEnV,MACnB,MAAOoI,GAEL,YADA1K,KAAKsd,OAAO5S,KAOxBsS,EAAYnC,QAAWpD,IAEfwF,EACAjd,KAAKsd,SAELnD,EAAO,IAAInK,MAAM,kQAMzBgN,EAAYO,OAAS,KACjBvd,KAAK+X,QAAQhG,IAAIjC,EAASkF,YAAa,oBAAoBhV,KAAKgc,QAChEhc,KAAKwd,aAAeR,EACpBC,GAAS,EACT7C,KAEN,MAAO3C,GAEL,YADA0C,EAAO1C,SAlDP0C,EAAO,IAAInK,MAAM,iFAwDZ,WAAC1N,GACd,OAAKtC,KAAKwd,aAGHxJ,EAAYhU,KAAK+X,QAAS,MAAO/X,KAAKgb,YAAahb,KAAKgc,KAAOhc,KAAKsb,oBAAqBhZ,EAAMtC,KAAKwb,UAFhGtB,QAAQC,OAAO,IAAInK,MAAM,iDAKjCyN,OAEH,OADAzd,KAAKsd,SACEpD,QAAQE,UAGXkD,OAAO7F,GACPzX,KAAKwd,eACLxd,KAAKwd,aAAaE,QAClB1d,KAAKwd,kBAAe9N,EAEhB1P,KAAK2b,SACL3b,KAAK2b,QAAQlE,KCnHvB,MAAOkG,EAYTpO,YAAY4E,EAAwBC,EAAkEH,EAC1FQ,EAA4BmJ,EAA4CvJ,GAChFrU,KAAK+X,QAAU9D,EACfjU,KAAKsb,oBAAsBlH,EAC3BpU,KAAK6d,mBAAqBpJ,EAC1BzU,KAAK8d,sBAAwBF,EAC7B5d,KAAKgb,YAAc7G,EAEnBnU,KAAK0b,UAAY,KACjB1b,KAAK2b,QAAU,KACf3b,KAAK+d,SAAW1J,EAGA,cAAC9C,EAAasK,GAM9B,GALA1J,EAAI2J,WAAWvK,EAAK,OACpBY,EAAI2J,WAAWD,EAAgB,kBAC/B1J,EAAI4J,KAAKF,EAAgBV,EAAgB,kBACzCnb,KAAK+X,QAAQhG,IAAIjC,EAAS0E,MAAO,sCAE7BxU,KAAKsb,oBAAqB,CAC1B,MAAMhH,QAActU,KAAKsb,sBACrBhH,IACA/C,IAAQA,EAAIkE,QAAQ,KAAO,EAAI,IAAM,KAAO,gBAAgBsH,mBAAmBzI,MAIvF,OAAO,IAAI4F,SAAc,CAACE,EAASD,KAE/B,IAAI6D,EADJzM,EAAMA,EAAI0M,QAAQ,QAAS,MAE3B,MAAMtE,EAAU3Z,KAAKgb,YAAYnJ,gBAAgBN,GACjD,IAAI0L,GAAS,EAEb,GAAI1K,EAASO,OAAQ,CACjB,MAAMuB,EAAiC,IAChCxS,EAAMoD,GAASsP,IACtBF,EAAQxS,GAAQoD,EAEZ0U,IACAtF,EAAQ4G,EAAYmC,QAAU,GAAGzD,KAIrCqE,EAAY,IAAIhe,KAAK8d,sBAAsBvM,OAAK7B,EAAW,CACvD2E,QAAS,IAAKA,KAAYrU,KAAK+d,YAIlCC,IAEDA,EAAY,IAAIhe,KAAK8d,sBAAsBvM,IAG3CsK,IAAmBV,EAAec,SAClC+B,EAAUE,WAAa,eAG3BF,EAAUT,OAAUY,IAChBne,KAAK+X,QAAQhG,IAAIjC,EAASkF,YAAa,0BAA0BzD,MACjEvR,KAAKoe,WAAaJ,EAClBf,GAAS,EACT7C,KAGJ4D,EAAUnD,QAAWwD,IACjB,IAAI3T,EAAa,KAGbA,EADsB,qBAAf4T,YAA8BD,aAAiBC,WAC9CD,EAAM3T,MAEN,wCAGZ1K,KAAK+X,QAAQhG,IAAIjC,EAASkF,YAAa,0BAA0BtK,OAGrEsT,EAAUX,UAAa3M,IAEnB,GADA1Q,KAAK+X,QAAQhG,IAAIjC,EAAS0E,MAAO,yCAAyCzB,EAAcrC,EAAQpO,KAAMtC,KAAK6d,wBACvG7d,KAAK0b,UACL,IACI1b,KAAK0b,UAAUhL,EAAQpO,MACzB,MAAOoI,GAEL,YADA1K,KAAKsd,OAAO5S,KAMxBsT,EAAUrC,QAAW0C,IAGjB,GAAIpB,EACAjd,KAAKsd,OAAOe,OACT,CACH,IAAI3T,EAAa,KAGbA,EADsB,qBAAf4T,YAA8BD,aAAiBC,WAC9CD,EAAM3T,MAEN,iSAMZyP,EAAO,IAAInK,MAAMtF,SAM1B+G,KAAKnP,GACR,OAAItC,KAAKoe,YAAcpe,KAAKoe,WAAWG,aAAeve,KAAK8d,sBAAsBU,MAC7Exe,KAAK+X,QAAQhG,IAAIjC,EAAS0E,MAAO,wCAAwCzB,EAAczQ,EAAMtC,KAAK6d,wBAClG7d,KAAKoe,WAAW3M,KAAKnP,GACd4X,QAAQE,WAGZF,QAAQC,OAAO,sCAGnBsD,OAOH,OANIzd,KAAKoe,YAGLpe,KAAKsd,YAAO5N,GAGTwK,QAAQE,UAGXkD,OAAOe,GAEPre,KAAKoe,aAELpe,KAAKoe,WAAWzC,QAAU,OAC1B3b,KAAKoe,WAAWf,UAAY,OAC5Brd,KAAKoe,WAAWvD,QAAU,OAC1B7a,KAAKoe,WAAWV,QAChB1d,KAAKoe,gBAAa1O,GAGtB1P,KAAK+X,QAAQhG,IAAIjC,EAAS0E,MAAO,yCAC7BxU,KAAK2b,WACD3b,KAAKye,cAAcJ,KAA8B,IAAnBA,EAAMK,UAAqC,MAAfL,EAAMM,KAEzDN,aAAiBrO,MACxBhQ,KAAK2b,QAAQ0C,GAEbre,KAAK2b,UAJL3b,KAAK2b,QAAQ,IAAI3L,MAAM,sCAAsCqO,EAAMM,SAASN,EAAMO,QAAU,yBAShGH,cAAcJ,GAClB,OAAOA,GAAmC,mBAAnBA,EAAMK,UAAgD,kBAAfL,EAAMM,MCzI5E,MAAME,EAAgB,IAGhB,MAAOC,EA0BTvP,YAAYgC,EAAaC,EAAkC,IAQvD,GArBI,KAAAuN,qBAA4D,OAKpD,KAAAC,SAAgB,GAMf,KAAAC,kBAA4B,EAGzC9M,EAAI2J,WAAWvK,EAAK,OAEpBvR,KAAK+X,QAAUjD,EAAatD,EAAQyC,QACpCjU,KAAKkf,QAAUlf,KAAKmf,YAAY5N,GAEhCC,EAAUA,GAAW,GACrBA,EAAQiD,uBAAkD/E,IAA9B8B,EAAQiD,mBAA0CjD,EAAQiD,kBAC/C,mBAA5BjD,EAAQqD,sBAA6DnF,IAA5B8B,EAAQqD,gBAGxD,MAAM,IAAI7E,MAAM,mEAFhBwB,EAAQqD,qBAA8CnF,IAA5B8B,EAAQqD,iBAAuCrD,EAAQqD,gBAIrFrD,EAAQoD,aAA8BlF,IAApB8B,EAAQoD,QAAwB,IAAapD,EAAQoD,QAEvE,IAAIwK,EAAuB,KACvBC,EAAyB,KAE7B,GAAI9M,EAASO,OAA0C,CAGnD,MAAMmF,EAA0DC,QAChEkH,EAAkBnH,EAAY,MAC9BoH,EAAoBpH,EAAY,eAG/B1F,EAASO,QAA+B,qBAAdwM,WAA8B9N,EAAQ8N,UAE1D/M,EAASO,SAAWtB,EAAQ8N,WAC/BF,IACA5N,EAAQ8N,UAAYF,GAHxB5N,EAAQ8N,UAAYA,UAOnB/M,EAASO,QAAiC,qBAAhBqK,aAAgC3L,EAAQ2L,YAE5D5K,EAASO,SAAWtB,EAAQ2L,aACF,qBAAtBkC,IACP7N,EAAQ2L,YAAckC,GAH1B7N,EAAQ2L,YAAcA,YAO1Bnd,KAAKgb,YAAcxJ,EAAQ2C,YAAc,IAAI4G,EAAkB/a,KAAK+X,SACpE/X,KAAKuf,iBAAgB,eACrBvf,KAAKwf,oBAAqB,EAC1Bxf,KAAKwb,SAAWhK,EAEhBxR,KAAK0b,UAAY,KACjB1b,KAAK2b,QAAU,KAKD,YAACE,GAOf,GANAA,EAAiBA,GAAkBV,EAAec,OAElD9J,EAAI4J,KAAKF,EAAgBV,EAAgB,kBAEzCnb,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO,6CAA6CtE,EAAeU,QAEpE,iBAArB7b,KAAKuf,iBACL,OAAOrF,QAAQC,OAAO,IAAInK,MAAM,4EASpC,GANAhQ,KAAKuf,iBAAgB,aAErBvf,KAAK0f,sBAAwB1f,KAAK2f,eAAe9D,SAC3C7b,KAAK0f,sBAGqB,kBAA5B1f,KAAKuf,iBAA2D,CAEhE,MAAM7O,EAAU,+DAMhB,OALA1Q,KAAK+X,QAAQhG,IAAIjC,EAASE,MAAOU,SAG3B1Q,KAAK4f,aAEJ1F,QAAQC,OAAO,IAAInK,MAAMU,IAC7B,GAAgC,cAA5B1Q,KAAKuf,iBAAuD,CAEnE,MAAM7O,EAAU,8GAEhB,OADA1Q,KAAK+X,QAAQhG,IAAIjC,EAASE,MAAOU,GAC1BwJ,QAAQC,OAAO,IAAInK,MAAMU,IAGpC1Q,KAAKwf,oBAAqB,EAGvB/N,KAAKnP,GACR,MAAyB,cAArBtC,KAAKuf,iBACErF,QAAQC,OAAO,IAAInK,MAAM,yEAG/BhQ,KAAK6f,aACN7f,KAAK6f,WAAa,IAAIC,GAAmB9f,KAAK2Q,YAI3C3Q,KAAK6f,WAAWpO,KAAKnP,IAGf,WAACoI,GACd,MAAyB,iBAArB1K,KAAKuf,kBACLvf,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO,+BAA+B/U,2EACzDwP,QAAQE,WAGM,kBAArBpa,KAAKuf,kBACLvf,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO,+BAA+B/U,4EACzD1K,KAAK4f,eAGhB5f,KAAKuf,iBAAgB,gBAErBvf,KAAK4f,aAAe,IAAI1F,SAASE,IAE7Bpa,KAAK+e,qBAAuB3E,WAI1Bpa,KAAK+f,cAAcrV,cACnB1K,KAAK4f,cAGY,oBAAClV,GAIxB1K,KAAKggB,WAAatV,EAElB,UACU1K,KAAK0f,sBACb,MAAOjI,IAOT,GAAIzX,KAAK2Q,UAAW,CAChB,UACU3Q,KAAK2Q,UAAU8M,OACvB,MAAOhG,GACLzX,KAAK+X,QAAQhG,IAAIjC,EAASE,MAAO,gDAAgDyH,OACjFzX,KAAKigB,kBAGTjgB,KAAK2Q,eAAYjB,OAEjB1P,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO,0FAIb,qBAAC5D,GAGzB,IAAItK,EAAMvR,KAAKkf,QACflf,KAAKsb,oBAAsBtb,KAAKwb,SAASpH,mBAEzC,IACI,GAAIpU,KAAKwb,SAAS0E,gBAAiB,CAC/B,GAAIlgB,KAAKwb,SAAS7K,YAAcuK,EAAkBiF,WAO9C,MAAM,IAAInQ,MAAM,gFALhBhQ,KAAK2Q,UAAY3Q,KAAKogB,oBAAoBlF,EAAkBiF,kBAGtDngB,KAAKqgB,gBAAgB9O,EAAKsK,OAIjC,CACH,IAAIyE,EAA+C,KAC/CC,EAAY,EAEhB,EAAG,CAGC,GAFAD,QAA0BtgB,KAAKwgB,wBAAwBjP,GAE9B,kBAArBvR,KAAKuf,kBAA2E,iBAArBvf,KAAKuf,iBAChE,MAAM,IAAIvP,MAAM,kDAGpB,GAAIsQ,EAAkB5V,MAClB,MAAM,IAAIsF,MAAMsQ,EAAkB5V,OAGtC,GAAK4V,EAA0BG,gBAC3B,MAAM,IAAIzQ,MAAM,gMAOpB,GAJIsQ,EAAkB/O,MAClBA,EAAM+O,EAAkB/O,KAGxB+O,EAAkBI,YAAa,CAG/B,MAAMA,EAAcJ,EAAkBI,YACtC1gB,KAAKsb,oBAAsB,IAAMoF,EAGrCH,UAEGD,EAAkB/O,KAAOgP,EAAY1B,GAE5C,GAAI0B,IAAc1B,GAAiByB,EAAkB/O,IACjD,MAAM,IAAIvB,MAAM,+CAGdhQ,KAAK2gB,iBAAiBpP,EAAKvR,KAAKwb,SAAS7K,UAAW2P,EAAmBzE,GAG7E7b,KAAK2Q,qBAAqB0K,IAC1Brb,KAAKgf,SAAS4B,mBAAoB,GAGb,eAArB5gB,KAAKuf,mBAGLvf,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO,8CACjCzf,KAAKuf,iBAAgB,aAM3B,MAAO9H,GAOL,OANAzX,KAAK+X,QAAQhG,IAAIjC,EAASE,MAAO,mCAAqCyH,GACtEzX,KAAKuf,iBAAgB,eACrBvf,KAAK2Q,eAAYjB,EAGjB1P,KAAK+e,uBACE7E,QAAQC,OAAO1C,IAIO,8BAAClG,GAClC,MAAM8C,EAAiC,GACvC,GAAIrU,KAAKsb,oBAAqB,CAC1B,MAAMhH,QAActU,KAAKsb,sBACrBhH,IACAD,EAAQ4G,EAAYyB,eAAiB,UAAUpI,KAIvD,MAAOzS,EAAMoD,GAASsP,IACtBF,EAAQxS,GAAQoD,EAEhB,MAAM4b,EAAe7gB,KAAK8gB,qBAAqBvP,GAC/CvR,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO,gCAAgCoB,MACjE,IACI,MAAMlM,QAAiB3U,KAAKgb,YAAYrJ,KAAKkP,EAAc,CACvDzP,QAAS,GACTiD,QAAS,IAAKA,KAAYrU,KAAKwb,SAASnH,SACxCO,QAAS5U,KAAKwb,SAAS5G,QACvBC,gBAAiB7U,KAAKwb,SAAS3G,kBAGnC,GAA4B,MAAxBF,EAASzE,WACT,OAAOgK,QAAQC,OAAO,IAAInK,MAAM,mDAAmD2E,EAASzE,gBAGhG,MAAMoQ,EAAoBS,KAAKC,MAAMrM,EAASvD,SAM9C,QALKkP,EAAkBW,kBAAoBX,EAAkBW,iBAAmB,KAG5EX,EAAkBY,gBAAkBZ,EAAkBa,cAEnDb,EACT,MAAO7I,GACL,IAAIxH,EAAe,mDAAqDwH,EAQxE,OAPIA,aAAa1H,GACQ,MAAjB0H,EAAEvH,aACFD,GAA8B,uFAGtCjQ,KAAK+X,QAAQhG,IAAIjC,EAASE,MAAOC,GAE1BiK,QAAQC,OAAO,IAAIpJ,EAAiCd,KAI3DmR,kBAAkB7P,EAAa2P,GACnC,OAAKA,EAIE3P,IAA6B,IAAtBA,EAAIkE,QAAQ,KAAc,IAAM,KAAO,MAAMyL,IAHhD3P,EAMe,uBAACA,EAAa8P,EAAgEf,EAAuCgB,GAC/I,IAAIC,EAAavhB,KAAKohB,kBAAkB7P,EAAK+O,EAAkBY,iBAC/D,GAAIlhB,KAAKwhB,cAAcH,GAMnB,OALArhB,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO,2EACjCzf,KAAK2Q,UAAY0Q,QACXrhB,KAAKqgB,gBAAgBkB,EAAYD,QAEvCthB,KAAKmhB,aAAeb,EAAkBa,cAI1C,MAAMM,EAA6B,GAC7BC,EAAapB,EAAkBqB,qBAAuB,GAC5D,IAAIC,EAA4CtB,EAChD,IAAK,MAAMuB,KAAYH,EAAY,CAC/B,MAAMI,EAAmB9hB,KAAK+hB,yBAAyBF,EAAUR,EAAoBC,GACrF,GAAIQ,aAA4B9R,MAE5ByR,EAAoBO,KAAK,GAAGH,EAASlR,qBACrC8Q,EAAoBO,KAAKF,QACtB,GAAI9hB,KAAKwhB,cAAcM,GAAmB,CAE7C,GADA9hB,KAAK2Q,UAAYmR,GACZF,EAAW,CACZ,IACIA,QAAkB5hB,KAAKwgB,wBAAwBjP,GACjD,MAAO0Q,GACL,OAAO/H,QAAQC,OAAO8H,GAE1BV,EAAavhB,KAAKohB,kBAAkB7P,EAAKqQ,EAAUV,iBAEvD,IAGI,aAFMlhB,KAAKqgB,gBAAgBkB,EAAYD,QACvCthB,KAAKmhB,aAAeS,EAAUT,cAEhC,MAAOc,GAKL,GAJAjiB,KAAK+X,QAAQhG,IAAIjC,EAASE,MAAO,kCAAkC6R,EAASlR,eAAesR,KAC3FL,OAAYlS,EACZ+R,EAAoBO,KAAK,IAAIlR,EAA4B,GAAG+Q,EAASlR,qBAAqBsR,IAAM/G,EAAkB2G,EAASlR,aAElG,eAArB3Q,KAAKuf,iBAAiD,CACtD,MAAM7O,EAAU,uDAEhB,OADA1Q,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO/O,GAC1BwJ,QAAQC,OAAO,IAAInK,MAAMU,OAMhD,OAAI+Q,EAAoBpO,OAAS,EACtB6G,QAAQC,OAAO,IAAInJ,EAAgB,yEAAyEyQ,EAAoB3H,KAAK,OAAQ2H,IAEjJvH,QAAQC,OAAO,IAAInK,MAAM,gFAG5BoQ,oBAAoBzP,GACxB,OAAQA,GACJ,KAAKuK,EAAkBiF,WACnB,IAAKngB,KAAKwb,SAAS8D,UACf,MAAM,IAAItP,MAAM,qDAEpB,OAAO,IAAI2N,EAAmB3d,KAAKgb,YAAahb,KAAKsb,oBAAqBtb,KAAK+X,QAAS/X,KAAKwb,SAAS/G,kBAAoBzU,KAAKwb,SAAS8D,UAAWtf,KAAKwb,SAASnH,SAAW,IAChL,KAAK6G,EAAkBgH,iBACnB,IAAKliB,KAAKwb,SAAS2B,YACf,MAAM,IAAInN,MAAM,uDAEpB,OAAO,IAAI8M,EAA0B9c,KAAKgb,YAAahb,KAAKsb,oBAAqBtb,KAAK+X,QAAS/X,KAAKwb,UACxG,KAAKN,EAAkBiH,YACnB,OAAO,IAAI9G,EAAqBrb,KAAKgb,YAAahb,KAAKsb,oBAAqBtb,KAAK+X,QAAS/X,KAAKwb,UACnG,QACI,MAAM,IAAIxL,MAAM,sBAAsBW,OAI1C0P,gBAAgB9O,EAAasK,GAGjC,OAFA7b,KAAK2Q,UAAW+K,UAAY1b,KAAK0b,UACjC1b,KAAK2Q,UAAWgL,QAAWlE,GAAMzX,KAAKigB,gBAAgBxI,GAC/CzX,KAAK2Q,UAAWyR,QAAQ7Q,EAAKsK,GAGhCkG,yBAAyBF,EAA+BR,EAAmDC,GAC/G,MAAM3Q,EAAYuK,EAAkB2G,EAASlR,WAC7C,GAAkB,OAAdA,QAAoCjB,IAAdiB,EAEtB,OADA3Q,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO,uBAAuBoC,EAASlR,0DAC1D,IAAIX,MAAM,uBAAuB6R,EAASlR,0DAEjD,IAAI0R,EAAiBhB,EAAoB1Q,GAqBrC,OADA3Q,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO,uBAAuBvE,EAAkBvK,8CACnE,IAAIE,EAAuB,IAAIqK,EAAkBvK,iCAA0CA,GArBjD,CACjD,MAAM2R,EAAkBT,EAASS,gBAAgBC,KAAKC,GAAMrH,EAAeqH,KAC3E,KAAIF,EAAgB7M,QAAQ6L,IAA4B,GAepD,OADAthB,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO,uBAAuBvE,EAAkBvK,kEAA0EwK,EAAemG,QAC5J,IAAItR,MAAM,IAAIkL,EAAkBvK,wBAAgCwK,EAAemG,OAdtF,GAAK3Q,IAAcuK,EAAkBiF,aAAengB,KAAKwb,SAAS8D,WAC7D3O,IAAcuK,EAAkBgH,mBAAqBliB,KAAKwb,SAAS2B,YAEpE,OADAnd,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO,uBAAuBvE,EAAkBvK,yDACnE,IAAIF,EAA0B,IAAIyK,EAAkBvK,4CAAqDA,GAEhH3Q,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO,wBAAwBvE,EAAkBvK,QAC3E,IACI,OAAO3Q,KAAKogB,oBAAoBzP,GAClC,MAAOsR,GACL,OAAOA,IAcvBT,cAAc7Q,GAClB,OAAOA,GAAoC,kBAAfA,GAA2B,YAAaA,EAGhEsP,gBAAgBvV,GASpB,GARA1K,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO,iCAAiC/U,4BAAgC1K,KAAKuf,qBAEvGvf,KAAK2Q,eAAYjB,EAGjBhF,EAAQ1K,KAAKggB,YAActV,EAC3B1K,KAAKggB,gBAAatQ,EAEO,iBAArB1P,KAAKuf,iBAAT,CAKA,GAAyB,eAArBvf,KAAKuf,iBAEL,MADAvf,KAAK+X,QAAQhG,IAAIjC,EAASuG,QAAS,yCAAyC3L,2EACtE,IAAIsF,MAAM,iCAAiCtF,wEAyBrD,GAtByB,kBAArB1K,KAAKuf,kBAGLvf,KAAK+e,uBAGLrU,EACA1K,KAAK+X,QAAQhG,IAAIjC,EAASE,MAAO,uCAAuCtF,OAExE1K,KAAK+X,QAAQhG,IAAIjC,EAASkF,YAAa,4BAGvChV,KAAK6f,aACL7f,KAAK6f,WAAWpC,OAAOhT,OAAOgN,IAC1BzX,KAAK+X,QAAQhG,IAAIjC,EAASE,MAAO,0CAA0CyH,UAE/EzX,KAAK6f,gBAAanQ,GAGtB1P,KAAKmhB,kBAAezR,EACpB1P,KAAKuf,iBAAgB,eAEjBvf,KAAKwf,mBAAoB,CACzBxf,KAAKwf,oBAAqB,EAC1B,IACQxf,KAAK2b,SACL3b,KAAK2b,QAAQjR,GAEnB,MAAO+M,GACLzX,KAAK+X,QAAQhG,IAAIjC,EAASE,MAAO,0BAA0BtF,mBAAuB+M,cAtCtFzX,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO,yCAAyC/U,+EA2C1EyU,YAAY5N,GAEhB,GAAuC,IAAnCA,EAAIkR,YAAY,WAAY,IAA8C,IAAlClR,EAAIkR,YAAY,UAAW,GACnE,OAAOlR,EAGX,IAAKgB,EAASC,UACV,MAAM,IAAIxC,MAAM,mBAAmBuB,OAQvC,MAAMmR,EAAOjQ,OAAOC,SAASiQ,cAAc,KAI3C,OAHAD,EAAKE,KAAOrR,EAEZvR,KAAK+X,QAAQhG,IAAIjC,EAASkF,YAAa,gBAAgBzD,UAAYmR,EAAKE,UACjEF,EAAKE,KAGR9B,qBAAqBvP,GACzB,MAAMzH,EAAQyH,EAAIkE,QAAQ,KAC1B,IAAIoL,EAAetP,EAAIsR,UAAU,GAAc,IAAX/Y,EAAeyH,EAAI8B,OAASvJ,GAWhE,MAV8C,MAA1C+W,EAAaA,EAAaxN,OAAS,KACnCwN,GAAgB,KAEpBA,GAAgB,YAChBA,IAA2B,IAAX/W,EAAe,GAAKyH,EAAIsR,UAAU/Y,IAEA,IAA9C+W,EAAapL,QAAQ,sBACrBoL,IAA2B,IAAX/W,EAAe,IAAM,IACrC+W,GAAgB,oBAAsB7gB,KAAKif,mBAExC4B,GAIf,SAASwB,EAAiBhB,EAAmDyB,GACzE,OAAQzB,GAAkE,KAA1CyB,EAAkBzB,GAIhD,MAAOvB,GAOTvQ,YAA6BwT,GAAA,KAAAA,WAAAA,EANrB,KAAAC,QAAiB,GAEjB,KAAAC,YAAsB,EAK1BjjB,KAAKkjB,kBAAoB,IAAIC,GAC7BnjB,KAAKojB,iBAAmB,IAAID,GAE5BnjB,KAAKqjB,iBAAmBrjB,KAAKsjB,YAG1B7R,KAAKnP,GAKR,OAJAtC,KAAKujB,YAAYjhB,GACZtC,KAAKojB,mBACNpjB,KAAKojB,iBAAmB,IAAID,IAEzBnjB,KAAKojB,iBAAiBI,QAG1B/F,OAGH,OAFAzd,KAAKijB,YAAa,EAClBjjB,KAAKkjB,kBAAkB9I,UAChBpa,KAAKqjB,iBAGRE,YAAYjhB,GAChB,GAAItC,KAAKgjB,QAAQ3P,eAAiBrT,KAAKgjB,QAAQ,YAAe1gB,EAC1D,MAAM,IAAI0N,MAAM,sCAAsChQ,KAAKgjB,kCAAmC1gB,KAGlGtC,KAAKgjB,QAAQhB,KAAK1f,GAClBtC,KAAKkjB,kBAAkB9I,UAGJ,kBACnB,MAAO,EAAM,CAGT,SAFMpa,KAAKkjB,kBAAkBM,SAExBxjB,KAAKijB,WAAY,CACdjjB,KAAKojB,kBACLpjB,KAAKojB,iBAAiBjJ,OAAO,uBAGjC,MAGJna,KAAKkjB,kBAAoB,IAAIC,GAE7B,MAAMM,EAAkBzjB,KAAKojB,iBAC7BpjB,KAAKojB,sBAAmB1T,EAExB,MAAMpN,EAAmC,kBAArBtC,KAAKgjB,QAAQ,GAC7BhjB,KAAKgjB,QAAQlJ,KAAK,IAClBgG,GAAmB4D,eAAe1jB,KAAKgjB,SAE3ChjB,KAAKgjB,QAAQ3P,OAAS,EAEtB,UACUrT,KAAK+iB,WAAWtR,KAAKnP,GAC3BmhB,EAAgBrJ,UAClB,MAAO1P,GACL+Y,EAAgBtJ,OAAOzP,KAKN,sBAACiZ,GAC1B,MAAMC,EAAcD,EAAapB,KAAKsB,GAAMA,EAAE1Q,aAAY2Q,QAAO,CAACC,EAAGF,IAAME,EAAIF,IACzEG,EAAS,IAAIzQ,WAAWqQ,GAC9B,IAAIK,EAAS,EACb,IAAK,MAAMC,KAAQP,EACfK,EAAOG,IAAI,IAAI5Q,WAAW2Q,GAAOD,GACjCA,GAAUC,EAAK/Q,WAGnB,OAAO6Q,EAAOI,QAItB,MAAMjB,GAKF5T,cACIvP,KAAKwjB,QAAU,IAAItJ,SAAQ,CAACE,EAASD,KAAYna,KAAKqkB,UAAWrkB,KAAKskB,WAAa,CAAClK,EAASD,KAG1FC,UACHpa,KAAKqkB,YAGFlK,OAAOyE,GACV5e,KAAKskB,UAAW1F,ICxpBlB,MAAO2F,GAIU,aAACC,GAChB,MAAO,GAAGA,IAASD,GAAkBE,kBAGtB,aAACC,GAChB,GAAIA,EAAMA,EAAMrR,OAAS,KAAOkR,GAAkBE,gBAC9C,MAAM,IAAIzU,MAAM,0BAGpB,MAAM2U,EAAWD,EAAMvN,MAAMoN,GAAkBE,iBAE/C,OADAE,EAASC,MACFD,GAdGJ,GAAAA,oBAAsB,GACtBA,GAAAA,gBAAkBnX,OAAOyX,aAAaN,GAAkBO,qBCYpE,MAAOC,GAEFC,sBAAsBC,GACzB,OAAOV,GAAkBW,MAAMnE,KAAKoE,UAAUF,IAG3CG,uBAAuB9iB,GAC1B,IAAI+iB,EACAC,EAEJ,GAAIpS,EAAc5Q,GAAO,CAErB,MAAMijB,EAAa,IAAIhS,WAAWjR,GAC5BkjB,EAAiBD,EAAW9P,QAAQ8O,GAAkBO,qBAC5D,IAAwB,IAApBU,EACA,MAAM,IAAIxV,MAAM,0BAKpB,MAAMyV,EAAiBD,EAAiB,EACxCH,EAAcjY,OAAOyX,aAAaa,MAAM,KAAMC,MAAMvV,UAAUwV,MAAMC,KAAKN,EAAWK,MAAM,EAAGH,KAC7FH,EAAiBC,EAAWpS,WAAasS,EAAkBF,EAAWK,MAAMH,GAAgBrB,OAAS,SAClG,CACH,MAAM0B,EAAmBxjB,EACnBkjB,EAAiBM,EAASrQ,QAAQ8O,GAAkBE,iBAC1D,IAAwB,IAApBe,EACA,MAAM,IAAIxV,MAAM,0BAKpB,MAAMyV,EAAiBD,EAAiB,EACxCH,EAAcS,EAASjD,UAAU,EAAG4C,GACpCH,EAAiBQ,EAASzS,OAASoS,EAAkBK,EAASjD,UAAU4C,GAAkB,KAI9F,MAAMd,EAAWJ,GAAkBvD,MAAMqE,GACnC1Q,EAAWoM,KAAKC,MAAM2D,EAAS,IACrC,GAAIhQ,EAAS5S,KACT,MAAM,IAAIiO,MAAM,kDAEpB,MAAM+V,EAA4CpR,EAIlD,MAAO,CAAC2Q,EAAeS,IC3DxB,IAAKC,IAAZ,SAAYA,GAERA,EAAAA,EAAAA,cAAAA,GAAAA,aAEAA,EAAAA,EAAAA,cAAAA,GAAAA,aAEAA,EAAAA,EAAAA,cAAAA,GAAAA,aAEAA,EAAAA,EAAAA,oBAAAA,GAAAA,mBAEAA,EAAAA,EAAAA,oBAAAA,GAAAA,mBAEAA,EAAAA,EAAAA,QAAAA,GAAAA,OAEAA,EAAAA,EAAAA,SAAAA,GAAAA,SAdJ,CAAYA,KAAAA,GAAW,KCAjB,MAAOC,GAOT1W,cACIvP,KAAKwV,UAAY,GAGd0Q,KAAKhC,GACR,IAAK,MAAM9O,KAAYpV,KAAKwV,UACxBJ,EAAS8Q,KAAKhC,GAIfxZ,MAAMyb,GACT,IAAK,MAAM/Q,KAAYpV,KAAKwV,UACpBJ,EAAS1K,OACT0K,EAAS1K,MAAMyb,GAKpBC,WACH,IAAK,MAAMhR,KAAYpV,KAAKwV,UACpBJ,EAASgR,UACThR,EAASgR,WAKdC,UAAUjR,GAEb,OADApV,KAAKwV,UAAUwM,KAAK5M,GACb,IAAIF,EAAoBlV,KAAMoV,IC9B7C,MAAMkR,GAAgC,IAChCC,GAAsC,KAGrC,IAAKC,IAAZ,SAAYA,GAERA,EAAAA,gBAAAA,eAEAA,EAAAA,cAAAA,aAEAA,EAAAA,aAAAA,YAEAA,EAAAA,iBAAAA,gBAEAA,EAAAA,gBAAAA,gBAVJ,CAAYA,KAAAA,GAAkB,KAcxB,MAAOC,GAmETlX,YAAoBmX,EAAyBzS,EAAiB0S,EAAwBC,GAvC9E,KAAAC,eAAyB,EASzB,KAAAC,qBAAuB,KAE3B9mB,KAAK+X,QAAQhG,IAAIjC,EAASuG,QAAS,yNA6BnClE,EAAI2J,WAAW4K,EAAY,cAC3BvU,EAAI2J,WAAW7H,EAAQ,UACvB9B,EAAI2J,WAAW6K,EAAU,YAEzB3mB,KAAK+mB,4BAA8BT,GACnCtmB,KAAKgnB,gCAAkCT,GAEvCvmB,KAAK+X,QAAU9D,EACfjU,KAAKinB,UAAYN,EACjB3mB,KAAK0mB,WAAaA,EAClB1mB,KAAKknB,iBAAmBN,EACxB5mB,KAAKmnB,mBAAqB,IAAIpC,GAE9B/kB,KAAK0mB,WAAWhL,UAAapZ,GAActC,KAAKonB,qBAAqB9kB,GACrEtC,KAAK0mB,WAAW/K,QAAWjR,GAAkB1K,KAAKqnB,kBAAkB3c,GAEpE1K,KAAKsnB,WAAa,GAClBtnB,KAAKunB,SAAW,GAChBvnB,KAAKwnB,iBAAmB,GACxBxnB,KAAKynB,uBAAyB,GAC9BznB,KAAK0nB,sBAAwB,GAC7B1nB,KAAK2nB,cAAgB,EACrB3nB,KAAK4nB,4BAA6B,EAClC5nB,KAAKuf,iBAAmBiH,GAAmBqB,aAC3C7nB,KAAKwf,oBAAqB,EAE1Bxf,KAAK8nB,mBAAqB9nB,KAAKinB,UAAUc,aAAa,CAAEhmB,KAAMikB,GAAYgC,OA/B1D,cAACtB,EAAyBzS,EAAiB0S,EAAwBC,GACnF,OAAO,IAAIH,GAAcC,EAAYzS,EAAQ0S,EAAUC,GAkCvDqB,YACA,OAAOjoB,KAAKuf,iBAMZ4B,mBACA,OAAOnhB,KAAK0mB,YAAc1mB,KAAK0mB,WAAWvF,cAAwB,KAIlEjC,cACA,OAAOlf,KAAK0mB,WAAWxH,SAAW,GAQlCA,YAAQ3N,GACR,GAAIvR,KAAKuf,mBAAqBiH,GAAmBqB,cAAgB7nB,KAAKuf,mBAAqBiH,GAAmB0B,aAC1G,MAAM,IAAIlY,MAAM,0FAGpB,IAAKuB,EACD,MAAM,IAAIvB,MAAM,8CAGpBhQ,KAAK0mB,WAAWxH,QAAU3N,EAOvB4W,QAEH,OADAnoB,KAAKooB,cAAgBpoB,KAAKqoB,6BACnBroB,KAAKooB,cAGwB,mCACpC,GAAIpoB,KAAKuf,mBAAqBiH,GAAmBqB,aAC7C,OAAO3N,QAAQC,OAAO,IAAInK,MAAM,0EAGpChQ,KAAKuf,iBAAmBiH,GAAmB8B,WAC3CtoB,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO,2BAEjC,UACUzf,KAAK2f,iBAEPpN,EAASC,WAETC,OAAOC,SAAS6V,iBAAiB,SAAUvoB,KAAK8mB,sBAGpD9mB,KAAKuf,iBAAmBiH,GAAmBgC,UAC3CxoB,KAAKwf,oBAAqB,EAC1Bxf,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO,yCACnC,MAAOhI,GAGL,OAFAzX,KAAKuf,iBAAmBiH,GAAmBqB,aAC3C7nB,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO,gEAAgEhI,OAC1FyC,QAAQC,OAAO1C,IAIF,uBACxBzX,KAAKyoB,2BAAwB/Y,EAC7B1P,KAAK4nB,4BAA6B,EAElC,MAAMc,EAAmB,IAAIxO,SAAQ,CAACE,EAASD,KAC3Cna,KAAK2oB,mBAAqBvO,EAC1Bpa,KAAK4oB,mBAAqBzO,WAGxBna,KAAK0mB,WAAWyB,MAAMnoB,KAAKinB,UAAUpL,gBAE3C,IACI,MAAMoJ,EAA4C,CAC9C0B,SAAU3mB,KAAKinB,UAAUplB,KACzBgV,QAAS7W,KAAKinB,UAAUpQ,SAmB5B,GAhBA7W,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO,oCAE3Bzf,KAAK6oB,aAAa7oB,KAAKmnB,mBAAmBnC,sBAAsBC,IAEtEjlB,KAAK+X,QAAQhG,IAAIjC,EAASkF,YAAa,sBAAsBhV,KAAKinB,UAAUplB,UAG5E7B,KAAK8oB,kBACL9oB,KAAK+oB,sBACL/oB,KAAKgpB,gCAECN,EAKF1oB,KAAKyoB,sBAKL,MAAMzoB,KAAKyoB,sBAEjB,MAAOhR,GASL,MARAzX,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO,oCAAoChI,8CAErEzX,KAAK8oB,kBACL9oB,KAAKipB,0BAICjpB,KAAK0mB,WAAWjJ,KAAKhG,GACrBA,GAQG,aAEb,MAAMyR,EAAelpB,KAAKooB,cAE1BpoB,KAAK4f,aAAe5f,KAAK+f,sBACnB/f,KAAK4f,aAEX,UAEUsJ,EACR,MAAOzR,KAKLsI,cAAcrV,GAClB,OAAI1K,KAAKuf,mBAAqBiH,GAAmBqB,cAC7C7nB,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO,8BAA8B/U,+DACxDwP,QAAQE,WAGfpa,KAAKuf,mBAAqBiH,GAAmB2C,eAC7CnpB,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO,+BAA+B/U,4EACzD1K,KAAK4f,eAGhB5f,KAAKuf,iBAAmBiH,GAAmB2C,cAE3CnpB,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO,2BAE7Bzf,KAAKopB,uBAILppB,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO,iEAEjCnG,aAAatZ,KAAKopB,uBAClBppB,KAAKopB,2BAAwB1Z,EAE7B1P,KAAKqpB,iBACEnP,QAAQE,YAGnBpa,KAAK8oB,kBACL9oB,KAAKipB,oBACLjpB,KAAKyoB,sBAAwB/d,GAAS,IAAIsF,MAAM,uEAKzChQ,KAAK0mB,WAAWjJ,KAAK/S,KAUzB4e,OAAgBC,KAAuBC,GAC1C,MAAOC,EAASC,GAAa1pB,KAAK2pB,wBAAwBH,GACpDI,EAAuB5pB,KAAK6pB,wBAAwBN,EAAYC,EAAME,GAG5E,IAAII,EAEJ,MAAM3U,EAAU,IAAI8Q,GAqCpB,OApCA9Q,EAAQQ,eAAiB,KACrB,MAAMoU,EAA4C/pB,KAAKgqB,wBAAwBJ,EAAqBK,cAIpG,cAFOjqB,KAAKsnB,WAAWsC,EAAqBK,cAErCH,EAAavf,MAAK,IACdvK,KAAKkqB,kBAAkBH,MAItC/pB,KAAKsnB,WAAWsC,EAAqBK,cAAgB,CAACE,EAA+Dzf,KAC7GA,EACAyK,EAAQzK,MAAMA,GAEPyf,IAEHA,EAAgBpoB,OAASikB,GAAYoE,WACjCD,EAAgBzf,MAChByK,EAAQzK,MAAM,IAAIsF,MAAMma,EAAgBzf,QAExCyK,EAAQiR,WAGZjR,EAAQ+Q,KAAMiE,EAAgBjG,QAK1C4F,EAAe9pB,KAAKkqB,kBAAkBN,GACjCnf,OAAOgN,IACJtC,EAAQzK,MAAM+M,UACPzX,KAAKsnB,WAAWsC,EAAqBK,iBAGpDjqB,KAAKqqB,eAAeZ,EAASK,GAEtB3U,EAGH0T,aAAanY,GAEjB,OADA1Q,KAAKgpB,0BACEhpB,KAAK0mB,WAAWjV,KAAKf,GAOxBwZ,kBAAkBxZ,GACtB,OAAO1Q,KAAK6oB,aAAa7oB,KAAKinB,UAAUc,aAAarX,IAYlDe,KAAK8X,KAAuBC,GAC/B,MAAOC,EAASC,GAAa1pB,KAAK2pB,wBAAwBH,GACpDc,EAActqB,KAAKkqB,kBAAkBlqB,KAAKuqB,kBAAkBhB,EAAYC,GAAM,EAAME,IAI1F,OAFA1pB,KAAKqqB,eAAeZ,EAASa,GAEtBA,EAcJE,OAAgBjB,KAAuBC,GAC1C,MAAOC,EAASC,GAAa1pB,KAAK2pB,wBAAwBH,GACpDI,EAAuB5pB,KAAKuqB,kBAAkBhB,EAAYC,GAAM,EAAOE,GAEvEe,EAAI,IAAIvQ,SAAa,CAACE,EAASD,KAEjCna,KAAKsnB,WAAWsC,EAAqBK,cAAiB,CAACE,EAA+Dzf,KAC9GA,EACAyP,EAAOzP,GAEAyf,IAEHA,EAAgBpoB,OAASikB,GAAYoE,WACjCD,EAAgBzf,MAChByP,EAAO,IAAInK,MAAMma,EAAgBzf,QAEjC0P,EAAQ+P,EAAgBnG,QAG5B7J,EAAO,IAAInK,MAAM,4BAA4Bma,EAAgBpoB,WAKzE,MAAM+nB,EAAe9pB,KAAKkqB,kBAAkBN,GACvCnf,OAAOgN,IACJ0C,EAAO1C,UAEAzX,KAAKsnB,WAAWsC,EAAqBK,iBAGpDjqB,KAAKqqB,eAAeZ,EAASK,MAGjC,OAAOW,EAQJlqB,GAAGgpB,EAAoBmB,GACrBnB,GAAemB,IAIpBnB,EAAaA,EAAWoB,cACnB3qB,KAAKunB,SAASgC,KACfvpB,KAAKunB,SAASgC,GAAc,KAIsB,IAAlDvpB,KAAKunB,SAASgC,GAAY9T,QAAQiV,IAItC1qB,KAAKunB,SAASgC,GAAYvH,KAAK0I,IAkB5BE,IAAIrB,EAAoB7X,GAC3B,IAAK6X,EACD,OAGJA,EAAaA,EAAWoB,cACxB,MAAME,EAAW7qB,KAAKunB,SAASgC,GAC/B,GAAKsB,EAGL,GAAInZ,EAAQ,CACR,MAAMoZ,EAAYD,EAASpV,QAAQ/D,IAChB,IAAfoZ,IACAD,EAASnV,OAAOoV,EAAW,GACH,IAApBD,EAASxX,eACFrT,KAAKunB,SAASgC,gBAItBvpB,KAAKunB,SAASgC,GAStB5N,QAAQvU,GACPA,GACApH,KAAKwnB,iBAAiBxF,KAAK5a,GAQ5B2jB,eAAe3jB,GACdA,GACApH,KAAKynB,uBAAuBzF,KAAK5a,GAQlC4jB,cAAc5jB,GACbA,GACApH,KAAK0nB,sBAAsB1F,KAAK5a,GAIhCggB,qBAAqB9kB,GASzB,GARAtC,KAAK8oB,kBAEA9oB,KAAK4nB,6BACNtlB,EAAOtC,KAAKirB,0BAA0B3oB,GACtCtC,KAAK4nB,4BAA6B,GAIlCtlB,EAAM,CAEN,MAAMqiB,EAAW3kB,KAAKinB,UAAUiE,cAAc5oB,EAAMtC,KAAK+X,SAEzD,IAAK,MAAMrH,KAAWiU,EAClB,OAAQjU,EAAQ3O,MACZ,KAAKikB,GAAYmF,WACbnrB,KAAKorB,oBAAoB1a,GACzB,MACJ,KAAKsV,GAAYqF,WACjB,KAAKrF,GAAYoE,WAAY,CACzB,MAAMhjB,EAAWpH,KAAKsnB,WAAW5W,EAAQuZ,cACzC,GAAI7iB,EAAU,CACNsJ,EAAQ3O,OAASikB,GAAYoE,mBACtBpqB,KAAKsnB,WAAW5W,EAAQuZ,cAEnC,IACI7iB,EAASsJ,GACX,MAAO+G,GACLzX,KAAK+X,QAAQhG,IAAIjC,EAASE,MAAO,gCAAgCwH,EAAeC,OAGxF,MAEJ,KAAKuO,GAAYgC,KAEb,MACJ,KAAKhC,GAAYsF,MAAO,CACpBtrB,KAAK+X,QAAQhG,IAAIjC,EAASkF,YAAa,uCAEvC,MAAMtK,EAAQgG,EAAQhG,MAAQ,IAAIsF,MAAM,sCAAwCU,EAAQhG,YAASgF,GAElE,IAA3BgB,EAAQ6a,eAKRvrB,KAAK0mB,WAAWjJ,KAAK/S,GAGrB1K,KAAK4f,aAAe5f,KAAK+f,cAAcrV,GAG3C,MAEJ,QACI1K,KAAK+X,QAAQhG,IAAIjC,EAASuG,QAAS,yBAAyB3F,EAAQ3O,SACpE,OAKhB/B,KAAK+oB,sBAGDkC,0BAA0B3oB,GAC9B,IAAIyjB,EACAT,EAEJ,KACKA,EAAeS,GAAmB/lB,KAAKmnB,mBAAmB/B,uBAAuB9iB,GACpF,MAAOmV,GACL,MAAM/G,EAAU,qCAAuC+G,EACvDzX,KAAK+X,QAAQhG,IAAIjC,EAASE,MAAOU,GAEjC,MAAMhG,EAAQ,IAAIsF,MAAMU,GAExB,MADA1Q,KAAK4oB,mBAAmBle,GAClBA,EAEV,GAAIqb,EAAgBrb,MAAO,CACvB,MAAMgG,EAAU,oCAAsCqV,EAAgBrb,MACtE1K,KAAK+X,QAAQhG,IAAIjC,EAASE,MAAOU,GAEjC,MAAMhG,EAAQ,IAAIsF,MAAMU,GAExB,MADA1Q,KAAK4oB,mBAAmBle,GAClBA,EAMV,OAJI1K,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO,8BAGrCzf,KAAK2oB,qBACErD,EAGH0D,0BACAhpB,KAAK0mB,WAAW1H,SAAS4B,oBAM7B5gB,KAAK6mB,gBAAiB,IAAI3Q,MAAOsV,UAAYxrB,KAAKgnB,gCAElDhnB,KAAKipB,qBAGDF,sBACJ,KAAK/oB,KAAK0mB,WAAW1H,WAAahf,KAAK0mB,WAAW1H,SAAS4B,qBAEvD5gB,KAAKyrB,eAAiBzS,YAAW,IAAMhZ,KAAK0rB,iBAAiB1rB,KAAK+mB,kCAGnCrX,IAA3B1P,KAAK2rB,mBACT,CACI,IAAIC,EAAW5rB,KAAK6mB,gBAAiB,IAAI3Q,MAAOsV,UAC5CI,EAAW,IACXA,EAAW,GAIf5rB,KAAK2rB,kBAAoB3S,YAAWjF,UAChC,GAAI/T,KAAKuf,mBAAqBiH,GAAmBgC,UAC7C,UACUxoB,KAAK6oB,aAAa7oB,KAAK8nB,oBAC/B,MAGE9nB,KAAKipB,uBAGd2C,IAMPF,gBAIJ1rB,KAAK0mB,WAAWjJ,KAAK,IAAIzN,MAAM,wEAG3Bob,oBAAoBS,GACxB,MAAMtpB,EAAUvC,KAAKunB,SAASsE,EAAkBC,OAAOnB,eACvD,GAAIpoB,EAAS,CACT,IACIA,EAAQkR,SAASsY,GAAMA,EAAErG,MAAM1lB,KAAM6rB,EAAkBG,aACzD,MAAOvU,GACLzX,KAAK+X,QAAQhG,IAAIjC,EAASE,MAAO,6BAA6B6b,EAAkBC,OAAOnB,8BAA8BlT,OAGzH,GAAIoU,EAAkB5B,aAAc,CAEhC,MAAMvZ,EAAU,qFAChB1Q,KAAK+X,QAAQhG,IAAIjC,EAASE,MAAOU,GAGjC1Q,KAAK4f,aAAe5f,KAAK+f,cAAc,IAAI/P,MAAMU,UAGrD1Q,KAAK+X,QAAQhG,IAAIjC,EAASuG,QAAS,mCAAmCwV,EAAkBC,kBAIxFzE,kBAAkB3c,GACtB1K,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO,kCAAkC/U,4BAAgC1K,KAAKuf,qBAGxGvf,KAAKyoB,sBAAwBzoB,KAAKyoB,uBAAyB/d,GAAS,IAAIsF,MAAM,iFAI1EhQ,KAAK2oB,oBACL3oB,KAAK2oB,qBAGT3oB,KAAKisB,0BAA0BvhB,GAAS,IAAIsF,MAAM,uEAElDhQ,KAAK8oB,kBACL9oB,KAAKipB,oBAEDjpB,KAAKuf,mBAAqBiH,GAAmB2C,cAC7CnpB,KAAKqpB,eAAe3e,GACb1K,KAAKuf,mBAAqBiH,GAAmBgC,WAAaxoB,KAAKknB,iBAEtElnB,KAAKksB,WAAWxhB,GACT1K,KAAKuf,mBAAqBiH,GAAmBgC,WACpDxoB,KAAKqpB,eAAe3e,GAUpB2e,eAAe3e,GACnB,GAAI1K,KAAKwf,mBAAoB,CACzBxf,KAAKuf,iBAAmBiH,GAAmBqB,aAC3C7nB,KAAKwf,oBAAqB,EAEtBjN,EAASC,WACTC,OAAOC,SAASyZ,oBAAoB,SAAUnsB,KAAK8mB,sBAGvD,IACI9mB,KAAKwnB,iBAAiB/T,SAASoG,GAAMA,EAAE6L,MAAM1lB,KAAM,CAAC0K,MACtD,MAAO+M,GACLzX,KAAK+X,QAAQhG,IAAIjC,EAASE,MAAO,0CAA0CtF,mBAAuB+M,SAKtF,iBAAC/M,GACrB,MAAM0hB,EAAqBlW,KAAKoG,MAChC,IAAI+P,EAA4B,EAC5BC,OAAuB5c,IAAVhF,EAAsBA,EAAQ,IAAIsF,MAAM,mDAErDuc,EAAiBvsB,KAAKwsB,mBAAmBH,IAA6B,EAAGC,GAE7E,GAAuB,OAAnBC,EAGA,OAFAvsB,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO,2GACjCzf,KAAKqpB,eAAe3e,GAYxB,GARA1K,KAAKuf,iBAAmBiH,GAAmB0B,aAEvCxd,EACA1K,KAAK+X,QAAQhG,IAAIjC,EAASkF,YAAa,6CAA6CtK,OAEpF1K,KAAK+X,QAAQhG,IAAIjC,EAASkF,YAAa,4BAGA,IAAvChV,KAAKynB,uBAAuBpU,OAAc,CAC1C,IACIrT,KAAKynB,uBAAuBhU,SAASoG,GAAMA,EAAE6L,MAAM1lB,KAAM,CAAC0K,MAC5D,MAAO+M,GACLzX,KAAK+X,QAAQhG,IAAIjC,EAASE,MAAO,iDAAiDtF,mBAAuB+M,OAI7G,GAAIzX,KAAKuf,mBAAqBiH,GAAmB0B,aAE7C,YADAloB,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO,yFAKzC,MAA0B,OAAnB8M,EAAyB,CAQ5B,GAPAvsB,KAAK+X,QAAQhG,IAAIjC,EAASkF,YAAa,4BAA4BqX,mBAA2CE,eAExG,IAAIrS,SAASE,IACfpa,KAAKopB,sBAAwBpQ,WAAWoB,EAASmS,MAErDvsB,KAAKopB,2BAAwB1Z,EAEzB1P,KAAKuf,mBAAqBiH,GAAmB0B,aAE7C,YADAloB,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO,qFAIrC,IAMI,SALMzf,KAAK2f,iBAEX3f,KAAKuf,iBAAmBiH,GAAmBgC,UAC3CxoB,KAAK+X,QAAQhG,IAAIjC,EAASkF,YAAa,2CAEG,IAAtChV,KAAK0nB,sBAAsBrU,OAC3B,IACIrT,KAAK0nB,sBAAsBjU,SAASoG,GAAMA,EAAE6L,MAAM1lB,KAAM,CAACA,KAAK0mB,WAAWvF,iBAC3E,MAAO1J,GACLzX,KAAK+X,QAAQhG,IAAIjC,EAASE,MAAO,uDAAuDhQ,KAAK0mB,WAAWvF,8BAA8B1J,OAI9I,OACF,MAAOA,GAGL,GAFAzX,KAAK+X,QAAQhG,IAAIjC,EAASkF,YAAa,8CAA8CyC,OAEjFzX,KAAKuf,mBAAqBiH,GAAmB0B,aAM7C,OALAloB,KAAK+X,QAAQhG,IAAIjC,EAAS2P,MAAO,4BAA4Bzf,KAAKuf,mGAE9Dvf,KAAKuf,mBAA4BiH,GAAmB2C,eACpDnpB,KAAKqpB,kBAKbiD,EAAa7U,aAAazH,MAAQyH,EAAI,IAAIzH,MAAMyH,EAAE7D,YAClD2Y,EAAiBvsB,KAAKwsB,mBAAmBH,IAA6BnW,KAAKoG,MAAQ8P,EAAoBE,IAI/GtsB,KAAK+X,QAAQhG,IAAIjC,EAASkF,YAAa,+CAA+CkB,KAAKoG,MAAQ8P,YAA6BC,gDAEhIrsB,KAAKqpB,iBAGDmD,mBAAmB3c,EAA4B4c,EAA6BC,GAChF,IACI,OAAO1sB,KAAKknB,iBAAkBvX,6BAA6B,CACvD8c,sBACA5c,qBACA6c,gBAEN,MAAOjV,GAEL,OADAzX,KAAK+X,QAAQhG,IAAIjC,EAASE,MAAO,6CAA6CH,MAAuB4c,mBAAqChV,OACnI,MAIPwU,0BAA0BvhB,GAC9B,MAAMiiB,EAAY3sB,KAAKsnB,WACvBtnB,KAAKsnB,WAAa,GAElB7M,OAAOC,KAAKiS,GACPlZ,SAAS5S,IACN,MAAMuG,EAAWulB,EAAU9rB,GAC3B,IACIuG,EAAS,KAAMsD,GACjB,MAAO+M,GACLzX,KAAK+X,QAAQhG,IAAIjC,EAASE,MAAO,wCAAwCtF,mBAAuB8M,EAAeC,UAKvHwR,oBACAjpB,KAAK2rB,oBACLrS,aAAatZ,KAAK2rB,mBAClB3rB,KAAK2rB,uBAAoBjc,GAIzBoZ,kBACA9oB,KAAKyrB,gBACLnS,aAAatZ,KAAKyrB,gBAIlBlB,kBAAkBhB,EAAoBC,EAAaoD,EAAsBlD,GAC7E,GAAIkD,EACA,OAAyB,IAArBlD,EAAUrW,OACH,CACH2Y,UAAWxC,EACXE,YACAoC,OAAQvC,EACRxnB,KAAMikB,GAAYmF,YAGf,CACHa,UAAWxC,EACXsC,OAAQvC,EACRxnB,KAAMikB,GAAYmF,YAGvB,CACH,MAAMlB,EAAejqB,KAAK2nB,cAG1B,OAFA3nB,KAAK2nB,gBAEoB,IAArB+B,EAAUrW,OACH,CACH2Y,UAAWxC,EACXS,aAAcA,EAAarW,WAC3B8V,YACAoC,OAAQvC,EACRxnB,KAAMikB,GAAYmF,YAGf,CACHa,UAAWxC,EACXS,aAAcA,EAAarW,WAC3BkY,OAAQvC,EACRxnB,KAAMikB,GAAYmF,aAM1Bd,eAAeZ,EAA+BK,GAClD,GAAuB,IAAnBL,EAAQpW,OAAZ,CAKKyW,IACDA,EAAe5P,QAAQE,WAK3B,IAAK,MAAMyS,KAAYpD,EACnBA,EAAQoD,GAAUxG,UAAU,CACxBD,SAAU,KACN0D,EAAeA,EAAavf,MAAK,IAAMvK,KAAKkqB,kBAAkBlqB,KAAK8sB,yBAAyBD,OAEhGniB,MAAQyb,IACJ,IAAIzV,EAEAA,EADAyV,aAAenW,MACLmW,EAAIzV,QACPyV,GAAOA,EAAIvS,SACRuS,EAAIvS,WAEJ,gBAGdkW,EAAeA,EAAavf,MAAK,IAAMvK,KAAKkqB,kBAAkBlqB,KAAK8sB,yBAAyBD,EAAUnc,OAE1GwV,KAAOhC,IACH4F,EAAeA,EAAavf,MAAK,IAAMvK,KAAKkqB,kBAAkBlqB,KAAK+sB,yBAAyBF,EAAU3I,UAM9GyF,wBAAwBH,GAC5B,MAAMC,EAAgC,GAChCC,EAAsB,GAC5B,IAAK,IAAIsD,EAAI,EAAGA,EAAIxD,EAAKnW,OAAQ2Z,IAAK,CAClC,MAAMC,EAAWzD,EAAKwD,GACtB,GAAIhtB,KAAKktB,cAAcD,GAAW,CAC9B,MAAMJ,EAAW7sB,KAAK2nB,cACtB3nB,KAAK2nB,gBAEL8B,EAAQoD,GAAYI,EACpBvD,EAAU1H,KAAK6K,EAASjZ,YAGxB4V,EAAK9T,OAAOsX,EAAG,IAIvB,MAAO,CAACvD,EAASC,GAGbwD,cAAcC,GAElB,OAAOA,GAAOA,EAAI9G,WAAsC,oBAAlB8G,EAAI9G,UAGtCwD,wBAAwBN,EAAoBC,EAAaE,GAC7D,MAAMO,EAAejqB,KAAK2nB,cAG1B,OAFA3nB,KAAK2nB,gBAEoB,IAArB+B,EAAUrW,OACH,CACH2Y,UAAWxC,EACXS,aAAcA,EAAarW,WAC3B8V,YACAoC,OAAQvC,EACRxnB,KAAMikB,GAAYoH,kBAGf,CACHpB,UAAWxC,EACXS,aAAcA,EAAarW,WAC3BkY,OAAQvC,EACRxnB,KAAMikB,GAAYoH,kBAKtBpD,wBAAwBqD,GAC5B,MAAO,CACHpD,aAAcoD,EACdtrB,KAAMikB,GAAYsH,kBAIlBP,yBAAyBM,EAAYnJ,GACzC,MAAO,CACH+F,aAAcoD,EACdnJ,OACAniB,KAAMikB,GAAYqF,YAIlByB,yBAAyBO,EAAY3iB,EAAasZ,GACtD,OAAItZ,EACO,CACHA,QACAuf,aAAcoD,EACdtrB,KAAMikB,GAAYoE,YAInB,CACHH,aAAcoD,EACdrJ,SACAjiB,KAAMikB,GAAYoE,aCn/B9B,MAAMmD,GAAiC,OAGjC,MAAOC,GAAbje,cAGoB,KAAA1N,KAAe0rB,GAEf,KAAA1W,QAAkB,EAGlB,KAAAgF,eAAiCV,EAAe+B,KAOzDgO,cAAcxG,EAAezQ,GAEhC,GAAqB,kBAAVyQ,EACP,MAAM,IAAI1U,MAAM,2DAGpB,IAAK0U,EACD,MAAO,GAGI,OAAXzQ,IACAA,EAASnC,EAAWmD,UAIxB,MAAM0P,EAAWJ,GAAkBvD,MAAM0D,GAEnC+I,EAAc,GACpB,IAAK,MAAM/c,KAAWiU,EAAU,CAC5B,MAAM+I,EAAgB3M,KAAKC,MAAMtQ,GACjC,GAAkC,kBAAvBgd,EAAc3rB,KACrB,MAAM,IAAIiO,MAAM,oBAEpB,OAAQ0d,EAAc3rB,MAClB,KAAKikB,GAAYmF,WACbnrB,KAAK2tB,qBAAqBD,GAC1B,MACJ,KAAK1H,GAAYqF,WACbrrB,KAAK4tB,qBAAqBF,GAC1B,MACJ,KAAK1H,GAAYoE,WACbpqB,KAAK6tB,qBAAqBH,GAC1B,MACJ,KAAK1H,GAAYgC,KAEb,MACJ,KAAKhC,GAAYsF,MAEb,MACJ,QAEIrX,EAAOlC,IAAIjC,EAASkF,YAAa,yBAA2B0Y,EAAc3rB,KAAO,cACjF,SAER0rB,EAAYzL,KAAK0L,GAGrB,OAAOD,EAQJ1F,aAAarX,GAChB,OAAO6T,GAAkBW,MAAMnE,KAAKoE,UAAUzU,IAG1Cid,qBAAqBjd,GACzB1Q,KAAK8tB,sBAAsBpd,EAAQob,OAAQ,gDAEdpc,IAAzBgB,EAAQuZ,cACRjqB,KAAK8tB,sBAAsBpd,EAAQuZ,aAAc,2CAIjD2D,qBAAqBld,GAGzB,GAFA1Q,KAAK8tB,sBAAsBpd,EAAQuZ,aAAc,gDAE5Bva,IAAjBgB,EAAQwT,KACR,MAAM,IAAIlU,MAAM,2CAIhB6d,qBAAqBnd,GACzB,GAAIA,EAAQsT,QAAUtT,EAAQhG,MAC1B,MAAM,IAAIsF,MAAM,4CAGfU,EAAQsT,QAAUtT,EAAQhG,OAC3B1K,KAAK8tB,sBAAsBpd,EAAQhG,MAAO,2CAG9C1K,KAAK8tB,sBAAsBpd,EAAQuZ,aAAc,2CAG7C6D,sBAAsB7oB,EAAYgL,GACtC,GAAqB,kBAAVhL,GAAgC,KAAVA,EAC7B,MAAM,IAAI+K,MAAMC,ICrG5B,MAAM8d,GAA+C,CACjDC,MAAOle,EAAS0E,MAChByZ,MAAOne,EAAS2P,MAChBlJ,KAAMzG,EAASkF,YACfkZ,YAAape,EAASkF,YACtBsB,KAAMxG,EAASuG,QACf8X,QAASre,EAASuG,QAClB3L,MAAOoF,EAASE,MAChBoe,SAAUte,EAASsG,SACnBiY,KAAMve,EAASwe,MAGnB,SAASC,GAAc1sB,GAInB,MAAM2sB,EAAUT,GAAoBlsB,EAAK8oB,eACzC,GAAuB,qBAAZ6D,EACP,OAAOA,EAEP,MAAM,IAAIxe,MAAM,sBAAsBnO,KAKxC,MAAO4sB,GA0CFC,iBAAiBC,GAGpB,GAFAxc,EAAI2J,WAAW6S,EAAS,WAEpBC,GAASD,GACT3uB,KAAKiU,OAAS0a,OACX,GAAuB,kBAAZA,EAAsB,CACpC,MAAM3Y,EAAWuY,GAAcI,GAC/B3uB,KAAKiU,OAAS,IAAIc,EAAciB,QAEhChW,KAAKiU,OAAS,IAAIc,EAAc4Z,GAGpC,OAAO3uB,KA2BJ6uB,QAAQtd,EAAaud,GAiBxB,OAhBA3c,EAAI2J,WAAWvK,EAAK,OACpBY,EAAI4c,WAAWxd,EAAK,OAEpBvR,KAAKuR,IAAMA,EAKPvR,KAAKgvB,sBAD6B,kBAA3BF,EACsB,IAAK9uB,KAAKgvB,yBAA0BF,GAEpC,IACtB9uB,KAAKgvB,sBACRre,UAAWme,GAIZ9uB,KAOJivB,gBAAgBtI,GAInB,OAHAxU,EAAI2J,WAAW6K,EAAU,YAEzB3mB,KAAK2mB,SAAWA,EACT3mB,KAoBJkvB,uBAAuBC,GAC1B,GAAInvB,KAAK4mB,gBACL,MAAM,IAAI5W,MAAM,2CAWpB,OARKmf,EAEMxJ,MAAMyJ,QAAQD,GACrBnvB,KAAK4mB,gBAAkB,IAAItX,EAAuB6f,GAElDnvB,KAAK4mB,gBAAkBuI,EAJvBnvB,KAAK4mB,gBAAkB,IAAItX,EAOxBtP,KAOJqvB,QAGH,MAAML,EAAwBhvB,KAAKgvB,uBAAyB,GAS5D,QANqCtf,IAAjCsf,EAAsB/a,SAEtB+a,EAAsB/a,OAASjU,KAAKiU,SAInCjU,KAAKuR,IACN,MAAM,IAAIvB,MAAM,4FAEpB,MAAM0W,EAAa,IAAI5H,EAAe9e,KAAKuR,IAAKyd,GAEhD,OAAOvI,GAAc6I,OACjB5I,EACA1mB,KAAKiU,QAAUnC,EAAWmD,SAC1BjV,KAAK2mB,UAAY,IAAI6G,GACrBxtB,KAAK4mB,kBAIjB,SAASgI,GAAS3a,GACd,YAAsBvE,IAAfuE,EAAOlC,IClKlB,IAAI2U,GAAa,KAEjB,QACA7kB,KAAAA,0BACAM,WAAAA,CAAA2K,gBAAAA,EAAAA,GACAzG,SAAAA,KACA,wBACAmE,eAAAA,0BAEA,2CACA1B,MAAAA,iBAEA,wCACAoG,2BAAAA,gCACAD,6BAAAA,oCAEAF,0BACA,+CAIA,yCACA,sCAGAI,wBACA,oCACA,8CAEA,uCAGA5M,QAAAA,KACA,sEACA,wCACA,4BAEA6M,cACA,mBAAAvN,KAAAA,EAAAA,EAAAA,cAGA0tB,UACA7I,IAAAA,IAAAA,IACAmI,QAAA,mDACAQ,QAEA3I,GAAAA,GAAAA,kBAAAA,KACA,+BACA,mBAAA7kB,KAAAA,EAAAA,EAAAA,cAGA6kB,GACAyB,QACA5d,MAAA,KACAmc,GAAAA,KAAAA,yBAAAA,KAAAA,mBAEAjc,OAAAC,IACAC,QAAAA,MAAAA,OAGA6kB,YACA9I,GAAAA,SClHgR,M,WCO5QxkB,IAAY,QACd,GACApC,EACA2B,GACA,EACA,KACA,WACA,MAIF,GAAeS,GAAiB,S,+EClBhC,IAAIpC,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,UAAU,CAACA,EAAG,MAAM,CAACE,YAAY,sBAAsB,CAACF,EAAG,MAAM,CAACE,YAAY,WAAW,CAACF,EAAG,MAAM,CAACE,YAAY,yCAAyC,CAACF,EAAG,KAAK,CAACE,YAAY,cAAc,CAACJ,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI+C,GAAG,sCAAsC7C,EAAG,0BAA2BF,EAAI0vB,oBAAqB,CAACxvB,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,kBAAkBA,EAAG,gBAAgB,CAACG,MAAM,CAAC,WAAWL,EAAI2vB,uBAAuB,WAAW3vB,EAAI4vB,uBAAuB,MAAS,GAAE5vB,EAAI+C,GAAG,+BAA+B,QAAU/C,EAAI6vB,0BAA0B,oBAAoB7vB,EAAI8vB,sBAAsB,MAAQ9vB,EAAIuJ,gBAAgB,KAAO,mBAAmB/I,GAAG,CAAC,MAAQR,EAAI+vB,uBAAuB,GAAG7vB,EAAG,KAAK,CAACE,YAAY,cAAc,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,wBAAwB,OAAO7C,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,eAAe,CAACG,MAAM,CAAC,MAAS,GAAEL,EAAI+C,GAAG,0BAA0B,UAAY/C,EAAI+D,yBAAyB,UAAW,EAAM,oBAAoB/D,EAAIgE,mBAAmB,MAAQhE,EAAIiE,aAAa,KAAO,gBAAgBzD,GAAG,CAAC,MAAQR,EAAIkE,mBAAmBhE,EAAG,gBAAgB,CAACG,MAAM,CAAC,gBAAe,EAAK,MAAS,GAAEL,EAAI+C,GAAG,gCAAgC,QAAU/C,EAAImE,6BAA6B,MAAQnE,EAAIoE,mBAAmB,KAAO,sBAAsB5D,GAAG,CAAC,MAAQR,EAAIqE,yBAAyBnE,EAAG,eAAe,CAACG,MAAM,CAAC,MAAS,GAAEL,EAAI+C,GAAG,oBAAoB,oBAAoB/C,EAAIsE,aAAa,MAAQtE,EAAIuE,OAAO,KAAO,UAAU/D,GAAG,CAAC,MAAQR,EAAIwE,aAAatE,EAAG,eAAe,CAACG,MAAM,CAAC,eAAc,EAAK,MAAS,GAAEL,EAAI+C,GAAG,sBAAsB,UAAY/C,EAAIyE,qBAAqB,oBAAoBzE,EAAI0E,eAAe,MAAQ1E,EAAI2E,SAAS,KAAO,YAAYnE,GAAG,CAAC,MAAQR,EAAI4E,eAAe1E,EAAG,eAAe,CAACG,MAAM,CAAC,MAAS,GAAEL,EAAI+C,GAAG,kBAAkB,oBAAoB/C,EAAI6E,WAAW,MAAQ7E,EAAI8E,KAAK,KAAO,QAAQtE,GAAG,CAAC,MAAQR,EAAI+E,YAAY,GAAG7E,EAAG,KAAK,CAACE,YAAY,cAAc,CAACJ,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI+C,GAAG,4BAA4B,QAAQ7C,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,UAAU,CAACE,YAAY,+BAA+BC,MAAM,CAAC,QAAU,KAAK,CAACH,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,UAAU,CAACG,MAAM,CAAC,eAAeL,EAAIgwB,2BAA2BC,KAAK,MAAQjwB,EAAIkwB,2BAA2B,KAAO,8BAA8B1vB,GAAG,CAAC,MAAQR,EAAImwB,gCAAgC,CAACnwB,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,2BAA2B,QAAQ,GAAG7C,EAAG,eAAe,CAACG,MAAM,CAAC,SAAWL,EAAIowB,sCAAsC,UAAW,EAAM,oBAAoBpwB,EAAIqwB,kCAAkC,MAAQrwB,EAAIswB,4BAA4B,IAAM,IAAI,KAAO,8BAA8B,KAAO,KAAK9vB,GAAG,CAAC,MAAQR,EAAIuwB,kCAAkCrwB,EAAG,IAAI,CAACE,YAAY,WAAW,CAACF,EAAG,OAAO,CAACE,YAAY,oBAAoB,CAACJ,EAAIgB,GAAG,UAAU,GAAGd,EAAG,UAAU,CAACE,YAAY,+BAA+BC,MAAM,CAAC,QAAU,KAAK,CAACH,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,UAAU,CAACG,MAAM,CAAC,eAAeL,EAAIgwB,2BAA2BQ,KAAK,MAAQxwB,EAAIkwB,2BAA2B,KAAO,8BAA8B1vB,GAAG,CAAC,MAAQR,EAAImwB,gCAAgC,CAACnwB,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,kCAAkC,QAAQ,GAAG7C,EAAG,eAAe,CAACG,MAAM,CAAC,SAAWL,EAAIywB,oCAAoC,UAAW,EAAM,oBAAoBzwB,EAAI0wB,gCAAgC,MAAQ1wB,EAAI2wB,0BAA0B,IAAM,IAAI,KAAO,4BAA4B,KAAO,KAAKnwB,GAAG,CAAC,MAAQR,EAAI4wB,gCAAgC1wB,EAAG,IAAI,CAACE,YAAY,WAAW,CAACF,EAAG,OAAO,CAACE,YAAY,oBAAoB,CAACJ,EAAIgB,GAAG,YAAY,IAAI,GAAKhB,EAAImK,mBAAuLnK,EAAIyB,KAAvKvB,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,eAAe,CAACL,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,iDAAiD,QAAQ,IAAa/C,EAAIyB,KAAKvB,EAAG,qBAAqB,CAACG,MAAM,CAAC,aAAaL,EAAI+F,SAAS,iBAAiB/F,EAAIgG,aAAa,gBAAkBhG,EAAImK,uBAAuB,UAE92HzI,EAAkB,G,2DCFlB3B,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,UAAU,CAACG,MAAM,CAAC,QAAUL,EAAI6wB,cAAc,KAAO7wB,EAAI8wB,eAAe,CAAC5wB,EAAG,WAAW,CAACsF,KAAK,SAAS,CAACtF,EAAG,MAAM,CAACE,YAAY,gCAAgC,CAACF,EAAG,MAAM,CAACF,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,+BAA+B,OAAO7C,EAAG,IAAI,CAACE,YAAY,+BAA+B,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,qCAAqC,KAAK7C,EAAG,IAAI,CAACG,MAAM,CAAC,KAAOL,EAAI+wB,UAAU,OAAS,WAAW,CAAC/wB,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI+C,GAAG,uBAAuB7C,EAAG,cAAc,CAACG,MAAM,CAAC,KAAOL,EAAIgxB,0BAA0B3vB,KAAK,OAASrB,EAAIgxB,0BAA0B1wB,OAAO,QAAQ,6BAA6B,KAAKJ,EAAG,WAAW,CAACG,MAAM,CAAC,SAAW,GAAG,SAAWL,EAAIixB,mBAAmB,QAAUjxB,EAAIkxB,qBAAqB,YAAclxB,EAAI+C,GAAG,oCAAoC,QAAQ,6BAA6B,MAAQ,OAAO,KAAO,gBAAgBvC,GAAG,CAAC,KAAOR,EAAImxB,OAAO,MAAQnxB,EAAIoxB,SAASjqB,MAAM,CAACjC,MAAOlF,EAAIqxB,qBAAsBhqB,SAAS,SAAUC,GAAMtH,EAAIqxB,qBAAqB/pB,GAAKnC,WAAW,yBAAyBnF,EAAI4G,GAAI5G,EAAIsxB,eAAe,SAASnoB,GAAc,OAAOjJ,EAAG,SAAS,CAACY,IAAIqI,EAAamkB,GAAGlsB,SAAS,CAAC,MAAQ+H,EAAarH,OAAO,CAAC9B,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGkI,EAAarH,MAAM,UAAS,IAAI,GAAI9B,EAAIixB,mBAAoB/wB,EAAG,YAAY,CAACG,MAAM,CAAC,QAAQ,+BAA+B,KAAO,cAAc,CAACL,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI+C,GAAI,8CAA6C,QAAS/C,EAAI0vB,qBAAuB1vB,EAAIuxB,oBAAqBrxB,EAAG,YAAY,CAACG,MAAM,CAAC,QAAQ,+BAA+B,KAAO,eAAe,CAACL,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI+C,GAAI,kCAAiC9C,KAAKuxB,yBAAyB,OAAOxxB,EAAIyB,MAAM,IAEzrDC,EAAkB,G,UC0DtB,GACAI,KAAAA,yBACAM,WAAAA,CAAAiE,WAAAA,EAAAA,GACA9D,OACA,OACA2F,OAAAA,MACAmpB,qBAAAA,GACAI,WAAAA,IAGAC,UACA,0BACA,sCAEAprB,SAAAA,KACA,qCACAgrB,cAAAA,mBACAJ,qBAAAA,0BACAD,mBAAAA,8BAEA,gCACA9nB,aAAAA,kBACAumB,oBAAAA,sBACA8B,mBAAAA,0BAEAT,YACA,0BACA,uCACA,sEAEAQ,sBACA,iCAEAT,eACA,gCACA,aAEA,yBACA,aAEA,eACA,YAEA,IAEAD,gBACA,iDACA,gDAEA,IAEAG,4BACA,OACA1wB,OAAAA,KAAAA,GAAAA,oCACAe,KAAAA,KAAAA,GAAAA,iCAAAA,CACAmQ,IACA,oBACA,4GACA,0EAKAhP,QAAAA,KACA,sDACA4uB,QAAAA,GACA,iDACA,qCAEAD,SACA,qBClI6Q,I,UCQzQhvB,GAAY,OACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIF,EAAeA,EAAiB,Q,UCnB5BpC,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,UAAU,CAACE,YAAY,eAAeC,MAAM,CAAC,SAAWL,EAAI2xB,SAAS,MAAQ3xB,EAAI4xB,SAAS,QAAU5xB,EAAI6xB,WAAW,KAAO7xB,EAAI8xB,UAAU,CAAE9xB,EAAI+xB,OAAOC,MAAO9xB,EAAG,WAAW,CAACsF,KAAK,SAAS,CAACxF,EAAI6B,GAAG,UAAU,GAAG7B,EAAIyB,KAAKvB,EAAG,UAAU,CAACG,MAAM,CAAC,QAAS,eAAcL,EAAI8B,OAAO,SAAW9B,EAAIiyB,SAAS,cAAcjyB,EAAIkyB,WAAW,UAAYlyB,EAAImyB,UAAU,IAAMnyB,EAAIoyB,IAAI,KAAOpyB,EAAI8B,KAAK,KAAO9B,EAAIqyB,KAAK,MAAQryB,EAAIkF,MAAM,KAAO,UAAU1E,GAAG,CAAC,KAAO,SAASG,GAAQX,EAAIsyB,UAAW,GAAM,MAAQ,SAAS3xB,GAAQ,OAAOX,EAAI4B,MAAM,QAASjB,KAAU4xB,SAAS,CAAC,SAAW,SAAS5xB,GAAQ,OAAOX,EAAIwyB,YAAY7M,MAAM,KAAMsG,gBAAgB,IAEvrBvqB,EAAkB,G,UC6BtB,GACAI,KAAAA,eACA2wB,OAAAA,CAAAA,EAAAA,GACA1wB,MAAAA,CACAqwB,IAAAA,OACAC,KAAAA,QAEA7vB,QAAAA,CACAgwB,YAAAA,GACA,kCACA,iCACAE,EAAAA,kBACA,MC3C2P,ICOvP,GAAY,OACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIF,EAAe,EAAiB,QClB5B3yB,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,eAAe,CAACG,MAAM,CAAC,iBAAgB,EAAK,SAAWL,EAAI2yB,yBAAyB,QAAU3yB,EAAI2yB,yBAAyB,UAAY3yB,EAAI4yB,iBAAiB,oBAAoB5yB,EAAI6yB,oBAAoB,MAAQ7yB,EAAI8yB,cAAc,KAAO,iBAAiBtyB,GAAG,CAAC,SAAWR,EAAI+yB,sBAAsB,MAAQ/yB,EAAIgzB,mBAAmB,CAAC9yB,EAAG,WAAW,CAACsF,KAAK,SAAS,CAACtF,EAAG,MAAM,CAACE,YAAY,yBAAyB,CAACF,EAAG,MAAM,CAACF,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,0BAA0B,OAAO7C,EAAG,IAAI,CAACE,YAAY,wBAAwB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAI,6BAA4B/C,EAAIizB,qBAAqB,SAAS/yB,EAAG,cAAc,CAACG,MAAM,CAAC,KAAOL,EAAIkzB,SAAS7xB,KAAK,OAASrB,EAAIkzB,SAAS5yB,OAAO,QAAQ,wBAAwB,MAAQ,WAAW,MAAM,IAEpyBoB,EAAkB,GCuCtB,GACAI,KAAAA,eACAM,WAAAA,CACA+D,YADA,IAEAE,WAAAA,EAAAA,GAEA9D,OACA,OACAqwB,iBAAAA,EAAAA,GACAO,kCAFA,KAGAC,8BAHA,KAIAF,SAAAA,CACA5yB,OAAAA,KAAAA,GAAAA,2BACAe,KAAAA,KAAAA,GAAAA,4BAIAiF,SAAAA,KACA,gCACAwsB,cAAAA,mBACA3pB,aAAAA,kBACA8pB,iBAAAA,sBACAJ,oBAAAA,yBACAF,yBAAAA,8BACAU,qBAAAA,uBACAC,yBAAAA,2BACAC,qBAAAA,0BAGA/wB,QAAAA,KACA,gCACA,mBACA,8BACA,oCAEA,iDACAuwB,sBAAAA,SAAAA,GACA,0DACA,uBAIA3lB,MAAAA,CACA0lB,cAAAA,WACA,qCACA,oCAEA3pB,aAAAA,WACA,+CACA,sBACA,oCACAgqB,EAAAA,GACAC,EAAAA,MC7FqQ,ICQjQ,GAAY,OACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIF,EAAe,EAAiB,QCuIhC,GACAtxB,KAAAA,cACAM,WAAAA,CACAoxB,aADA,EAEAC,YAFA,EAGAC,qBAHA,EAIAttB,aAJA,IAKAD,YALA,IAMAD,kBAAAA,EAAAA,GAEA3D,OACA,OACA6wB,8BADA,KAEAD,kCAFA,KAGApvB,yBAHA,KAIAU,qBAJA,KAKAurB,2BAAAA,EAAAA,GACAhqB,aAAAA,EAAAA,EAAAA,mBACAD,SAAAA,EAAAA,EAAAA,QACAmtB,SAAAA,CACA5yB,OAAAA,KAAAA,GAAAA,2BACAe,KAAAA,KAAAA,GAAAA,4BAIAiF,SAAAA,KACA,gCACAopB,oBAAAA,sBAEAnmB,gBAAAA,qBACAumB,sBAAAA,2BACA6D,iBAAAA,sBACAhE,uBAAAA,yBACAC,uBAAAA,yBAEA3rB,aAAAA,kBACA2vB,wBAAAA,0BACAC,oBAAAA,sBACAzvB,mBAAAA,wBACAmC,qBAAAA,0BACAvC,mBAAAA,wBAEAO,OAAAA,YACAuvB,cAAAA,gBACAC,cAAAA,gBACAzvB,aAAAA,kBAEAK,SAAAA,cACAqvB,gBAAAA,kBACAC,oBAAAA,sBACAC,gBAAAA,kBACAxvB,eAAAA,oBAEAI,KAAAA,UACAqvB,YAAAA,cACAC,YAAAA,cACAvvB,WAAAA,gBAEAqrB,2BAAAA,gCAEAS,0BAAAA,+BACA0D,iCAAAA,mCACAC,iCAAAA,mCACA5D,gCAAAA,qCAEAJ,4BAAAA,iCACAiE,mCAAAA,qCACAC,mCAAAA,qCACAnE,kCAAAA,uCAEAlmB,mBAAAA,uBAEAimB,wCACA,OACA,6CAGAK,sCACA,OACA,6CAGAZ,4BACA,uCACA/tB,KAAAA,EAAAA,OACAoD,MAAAA,OAGAf,+BACA,2CACArC,KAAAA,KAAAA,GAAAA,sBAAAA,KACAoD,MAAAA,QAIA1C,QAAAA,KACA,gCACA,qBACA,mBACA,kBACA,wBACA,YACA,cACA,UACA,gCACA,iCACA,mCCpQoQ,ICQhQ,GAAY,OACd,EACAzC,EACA2B,GACA,EACA,KACA,WACA,MAIF,EAAe,EAAiB,S,gFCnBhC,IAAI3B,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,UAAU,CAACA,EAAG,MAAM,CAACE,YAAY,4CAA4C,CAACF,EAAG,yBAAyBA,EAAG,qBAAqBA,EAAG,yBAAyBA,EAAG,YAAY,CAACA,EAAG,MAAM,CAACE,YAAY,qBAAqB,CAAiB,QAAfJ,EAAIkI,OAAkBhI,EAAG,IAAI,CAACA,EAAG,SAAS,CAACA,EAAG,OAAO,CAACF,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI+C,GAAI,qBAAoB/C,EAAIkI,oBAAoBhI,EAAG,IAAI,CAACE,YAAY,UAAUC,MAAM,CAAC,KAAO,yDAAyD,OAAS,WAAW,CAACL,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI+C,GAAI,qBAAoB/C,EAAIkI,4BAA4BlI,EAAIyB,KAAqB,QAAfzB,EAAIkI,OAAkBhI,EAAG,IAAI,CAACA,EAAG,SAAS,CAACA,EAAG,OAAO,CAACF,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI+C,GAAI,qBAAoB/C,EAAIkI,oBAAoBhI,EAAG,IAAI,CAACE,YAAY,UAAUC,MAAM,CAAC,KAAO,gGAAgG,OAAS,WAAW,CAACL,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI+C,GAAI,qBAAoB/C,EAAIkI,wBAAwBhI,EAAG,OAAO,CAACF,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI+C,GAAI,qBAAoB/C,EAAIkI,uBAAuBhI,EAAG,IAAI,CAACE,YAAY,UAAUC,MAAM,CAAC,KAAO,wGAAwG,OAAS,WAAW,CAACL,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI+C,GAAI,qBAAoB/C,EAAIkI,0BAA0BlI,EAAIyB,KAAKvB,EAAG,IAAI,CAACA,EAAG,OAAO,CAACF,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI+C,GAAI,qBAAoB/C,EAAIkI,6BAA6BhI,EAAG,IAAI,CAACE,YAAY,UAAUC,MAAM,CAAC,KAAQ,UAASL,EAAIy0B,2BAA2B,CAACz0B,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAIy0B,2BAA2Bv0B,EAAG,SAAS,CAACF,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI+C,GAAI,qBAAoB/C,EAAIkI,kCAAkChI,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,YAAY,CAACH,EAAG,MAAM,CAACE,YAAY,qBAAqB,CAACF,EAAG,IAAI,CAACA,EAAG,SAAS,CAACF,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI+C,GAAI,6BAA4B/C,EAAIkI,sBAAsBhI,EAAG,KAAK,CAACA,EAAG,KAAK,CAACF,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAK,6BAA4B/C,EAAIkI,yCAA0C,OAAOhI,EAAG,KAAK,CAACF,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAI,6BAA4B/C,EAAIkI,6BAA6B,aAAahI,EAAG,qBAAqB,CAACG,MAAM,CAAC,UAAYL,EAAI+F,SAAS,gBAAkB/F,EAAIoK,qBAAqB,MAEjlE1I,EAAkB,G,8BCFlB3B,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,yCAAyC,CAACF,EAAG,KAAK,CAACE,YAAY,0CAA0C,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI00B,kBAAkB,KAAKx0B,EAAG,cAAc,CAACG,MAAM,CAAC,KAAOL,EAAI20B,gBAAgBtzB,KAAK,OAASrB,EAAI20B,gBAAgBr0B,OAAO,QAAQ,6BAA6B,GAAGJ,EAAG,MAAM,CAACE,YAAY,yCAAyCJ,EAAI4G,GAAI5G,EAAI40B,cAAc,SAASC,EAAY9qB,GAAO,OAAO7J,EAAG,MAAM,CAACY,IAAIiJ,EAAM3J,YAAY,eAAeC,MAAM,CAAC,QAAS,eAAcw0B,MAAgB,CAAC30B,EAAG,MAAM,CAACE,YAAY,+BAA+B,CAACF,EAAG,MAAM,CAACE,YAAY,qCAAqC,CAACF,EAAG,sBAAsB,KAAKA,EAAG,MAAM,CAACE,YAAY,qBAAqB,CAACF,EAAG,KAAK,CAACE,YAAY,2BAA2B,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI80B,oBAAoBD,IAAc,OAAO30B,EAAG,KAAK,CAACE,YAAY,iCAAiCJ,EAAI4G,GAAI5G,EAAI+0B,+BAC/6BF,IACC,SAASG,EAAgBjrB,GAAO,OAAO7J,EAAG,KAAK,CAACY,IAAIiJ,EAAM3J,YAAY,sCAAsC,CAACF,EAAG,MAAM,CAACE,YAAY,yBAAyB,CAACF,EAAG,SAAS,CAACG,MAAM,CAAC,KAAO,aAAa,KAAO,iBAAiB,GAAGH,EAAG,IAAI,CAACE,YAAY,yBAAyB,CAACJ,EAAIgB,GAAGhB,EAAIiB,GAAG+zB,WAAwB,GAAmB,QAAfh1B,EAAIkI,OAAkBhI,EAAG,IAAI,CAACE,YAAY,2BAA2BC,MAAM,CAAC,KAAO,yDAAyD,OAAS,WAAW,CAACL,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAI,sBAAqB8xB,iBAA2B,OAAO30B,EAAG,IAAI,CAACF,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAI,sBAAqB8xB,iBAA2B,KAAK30B,EAAG,IAAI,CAACE,YAAY,+BAA+BC,MAAM,CAAC,KAAO,gGAAgG,OAAS,WAAW,CAACL,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAI,sBAAqB8xB,gBAA0B,OAAO70B,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAI,sBAAqB8xB,uBAAiC,KAAK30B,EAAG,IAAI,CAACE,YAAY,+BAA+BC,MAAM,CAAC,KAAO,wGAAwG,OAAS,WAAW,CAACL,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAI,sBAAqB8xB,eAAyB,gBAAe,MAE5vCnzB,EAAkB,G,UCJlB3B,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,WAAW,YAAY,WAAW,OAAS,QAAQ,QAAU,mBAAmB,MAAQ,SAAS,MAAQ,+BAA+B,CAACH,EAAG,IAAI,CAACA,EAAG,OAAO,CAACE,YAAY,aAAaC,MAAM,CAAC,EAAI,4XAA4XH,EAAG,OAAO,CAACE,YAAY,aAAaC,MAAM,CAAC,EAAI,6cAA6cH,EAAG,OAAO,CAACE,YAAY,aAAaC,MAAM,CAAC,EAAI,idAAidH,EAAG,OAAO,CAACE,YAAY,aAAaC,MAAM,CAAC,EAAI,09BAA09BH,EAAG,OAAO,CAACE,YAAY,aAAaC,MAAM,CAAC,EAAI,2cAA2cH,EAAG,OAAO,CAACE,YAAY,aAAaC,MAAM,CAAC,EAAI,0dAA0dH,EAAG,OAAO,CAACE,YAAY,aAAaC,MAAM,CAAC,EAAI,oVAAoVH,EAAG,OAAO,CAACE,YAAY,aAAaC,MAAM,CAAC,EAAI,oZAAoZH,EAAG,OAAO,CAACE,YAAY,aAAaC,MAAM,CAAC,EAAI,0dAA0dH,EAAG,IAAI,CAACA,EAAG,OAAO,CAACE,YAAY,gBAAgBC,MAAM,CAAC,EAAI,2QAA2QH,EAAG,OAAO,CAACE,YAAY,gBAAgBC,MAAM,CAAC,EAAI,qPAAqPH,EAAG,OAAO,CAACE,YAAY,gBAAgBC,MAAM,CAAC,EAAI,yPAAyPH,EAAG,OAAO,CAACE,YAAY,gBAAgBC,MAAM,CAAC,EAAI,oTAAoTH,EAAG,OAAO,CAACE,YAAY,gBAAgBC,MAAM,CAAC,EAAI,6XAA6XH,EAAG,OAAO,CAACE,YAAY,gBAAgBC,MAAM,CAAC,EAAI,iSAAiSH,EAAG,OAAO,CAACE,YAAY,gBAAgBC,MAAM,CAAC,EAAI,kUAAkUH,EAAG,OAAO,CAACE,YAAY,gBAAgBC,MAAM,CAAC,EAAI,kqBAAkqBH,EAAG,OAAO,CAACE,YAAY,gBAAgBC,MAAM,CAAC,EAAI,2XAA2XH,EAAG,OAAO,CAACE,YAAY,gBAAgBC,MAAM,CAAC,EAAI,wVAAwVH,EAAG,OAAO,CAACE,YAAY,gBAAgBC,MAAM,CAAC,EAAI,mXAAmXH,EAAG,OAAO,CAACE,YAAY,gBAAgBC,MAAM,CAAC,EAAI,6QAA6QH,EAAG,OAAO,CAACE,YAAY,gBAAgBC,MAAM,CAAC,EAAI,gMAAgMH,EAAG,OAAO,CAACE,YAAY,gBAAgBC,MAAM,CAAC,EAAI,0GAA0GH,EAAG,OAAO,CAACE,YAAY,gBAAgBC,MAAM,CAAC,EAAI,yVAAyVH,EAAG,OAAO,CAACE,YAAY,gBAAgBC,MAAM,CAAC,EAAI,sUAAsUH,EAAG,IAAI,CAACA,EAAG,OAAO,CAACE,YAAY,aAAaC,MAAM,CAAC,EAAI,0OAA0OH,EAAG,OAAO,CAACE,YAAY,aAAaC,MAAM,CAAC,EAAI,mmBAE3iWqB,EAAkB,GC6HtB,GACAI,KAAAA,qBChIwQ,I,UCQpQK,GAAY,OACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIF,EAAeA,EAAiB,QC0DhC,GACAL,KAAAA,wBACAM,WAAAA,CAAA6yB,gBAAAA,EAAA5uB,WAAAA,EAAAA,GACA9D,OACA,OACA2F,OAAAA,MACAwsB,iBAAAA,KAAAA,GAAAA,yBACAC,gBAAAA,CACAr0B,OAAAA,KAAAA,GAAAA,kCACAe,KAAAA,KAAAA,GAAAA,mCAIAiF,SAAAA,KACA,8BACAsuB,aAAAA,kBACAC,YAAAA,mBAEAC,sBACA,UACA,0CAEAC,iCACA,WACA,gBACA,uCAEA,gBACA,aCzG4Q,ICQxQ,GAAY,OACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIF,EAAe,EAAiB,QCnB5Bh1B,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,UAAU,CAACE,YAAY,+BAA+B,CAACF,EAAG,KAAK,CAACE,YAAY,sCAAsC,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,gCAAgC,OAAO7C,EAAG,MAAM,CAACE,YAAY,yCAAyC,CAACF,EAAG,MAAM,CAACE,YAAY,yCAAyC,CAAEJ,EAAIk1B,uBAA2Bl1B,EAAIm1B,kBAAmBn1B,EAAI4G,GAAI,GAAG,SAASwuB,GAAG,OAAOl1B,EAAG,6BAA6B,CAACY,IAAIs0B,EAAE/0B,MAAM,CAAC,WAAaL,EAAIm1B,kBAAkB,QAAUn1B,EAAIk1B,4BAA2Bl1B,EAAIyB,KAAKzB,EAAI4G,GAAI5G,EAAIq1B,cAAc,SAASC,EAAYvrB,GAAO,OAAO7J,EAAG,6BAA6B,CAACY,IAAIiJ,EAAM1J,MAAM,CAAC,SAAWi1B,EAAYC,SAAS,MAAQD,EAAYE,MAAM,SAAWx1B,EAAIy1B,2BAA2BH,IAAc90B,GAAG,CAAC,MAAQ,SAASG,GAAQ,OAAOX,EAAI01B,sBAAsBJ,EAAYC,kBAAiB,GAAIv1B,EAAIm1B,kBAAmBj1B,EAAG,MAAM,CAACE,YAAY,+BAA+B,CAACF,EAAG,YAAY,CAACG,MAAM,CAAC,QAAQ,oBAAoB,KAAO,cAAc,CAACL,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAIm1B,mBAAmB,QAAQ,GAAGn1B,EAAIyB,UAE3lCC,EAAkB,GCFlB3B,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAAC4G,MAAM,CAC/E,yBACA,CACEC,SAAU/G,EAAI+G,SACd4uB,QAAS31B,EAAI21B,QACb1D,SAAUjyB,EAAIiyB,WAEhB5xB,MAAM,CAAC,QAAS,mBAAkBL,EAAIu1B,YAAY/0B,GAAG,CAAC,MAAQ,SAASG,IAASX,EAAI21B,UAAY31B,EAAIiyB,UAAYjyB,EAAI4B,MAAM,YAAY,CAAC1B,EAAG,MAAM,CAACE,YAAY,gCAAgC,CAAEJ,EAAI21B,QAASz1B,EAAG,MAAM,CAACE,YAAY,kCAAkC,CAACF,EAAG,YAAY,CAACG,MAAM,CAAC,OAASL,EAAI21B,QAAQ,gBAAe,MAAU,GAAI31B,EAAIiyB,SAAU/xB,EAAG,MAAM,CAACE,YAAY,mCAAmC,CAACF,EAAG,SAAS,CAACG,MAAM,CAAC,KAAO,uBAAuB,KAAO,gBAAgB,GAAG,CAACH,EAAG,MAAM,CAACE,YAAY,uBAAuB,CAACF,EAAG,OAAO,CAACF,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAI+C,GAAG,6BAA6B7C,EAAG,MAAM,CAACE,YAAY,qBAAqB,CAACF,EAAG,OAAO,CAACE,YAAY,yBAAyB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAIu1B,UAAU,OAAOr1B,EAAG,OAAO,CAACE,YAAY,8BAA8B,CAACJ,EAAIgB,GAAG,WAAWd,EAAG,MAAM,CAACE,YAAY,uBAAuB,CAACF,EAAG,OAAO,CAACF,EAAIgB,GAAGhB,EAAIiB,GAAGjB,EAAIw1B,OAAO,QAAQx1B,EAAIiB,GAAGjB,EAAI+C,GAAG,iBAAiB,cAAc,MAEj6BrB,EAAkB,GC8BtB,GACAI,KAAAA,6BACAC,MAAAA,CACA4zB,QAAAA,CACA3zB,KAAAA,QACAM,SAAAA,GAEA2vB,SAAAA,CACAjwB,KAAAA,QACAM,SAAAA,GAEAyE,SAAAA,CACA/E,KAAAA,QACAM,SAAAA,GAEAkzB,MAAAA,CACAxzB,KAAAA,OACAM,aAAAA,GAEAizB,SAAAA,CACAvzB,KAAAA,OACAM,aAAAA,KC5DgR,ICQ5Q,GAAY,OACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIF,EAAe,EAAiB,QCkBhC,GACAR,KAAAA,wBACAM,WAAAA,CAAAwzB,wBAAAA,GACArzB,OACA,OACAoyB,gBAAAA,CACAr0B,OAAAA,2BACAe,KAAAA,4BACAF,OAAAA,+BAEA+G,OAAAA,QAGA5B,SAAAA,KACA,8BACA4uB,sBAAAA,yBACAC,kBAAAA,uBACAE,aAAAA,kBACA7rB,gBAAAA,uBAEAisB,6BACA,8CAGAjzB,QAAAA,KACA,8BACAkzB,sBAAAA,yBC/D4Q,ICQxQ,GAAY,OACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIF,EAAe,EAAiB,QCnB5B31B,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,gCAAgC,CAACF,EAAG,KAAK,CAACE,YAAY,iCAAiC,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAG,sBAAsB,KAAK7C,EAAG,cAAc,CAACG,MAAM,CAAC,KAAOL,EAAI61B,mBAAmBx0B,KAAK,OAASrB,EAAI61B,mBAAmBv1B,OAAO,YAAa,EAAK,QAAQ,6BAA6B,GAAGJ,EAAG,MAAM,CAACE,YAAY,gCAAgC,CAACF,EAAG,MAAM,CAACE,YAAY,qBAAqB,CAACF,EAAG,MAAM,CAACE,YAAY,+BAA+B,CAACF,EAAG,gBAAgB,GAAGA,EAAG,MAAM,CAACE,YAAY,qBAAqB,CAACF,EAAG,MAAM,CAACE,YAAY,2BAA2B,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAI,wBAAuB,OAAO/C,EAAI4G,GAAI5G,EAAI81B,iCAAiC,SAASd,EAAgBjrB,GAAO,OAAO7J,EAAG,MAAM,CAACY,IAAIiJ,EAAM3J,YAAY,sCAAsC,CAACF,EAAG,MAAM,CAACE,YAAY,yBAAyB,CAACF,EAAG,SAAS,CAACG,MAAM,CAAC,KAAO,aAAa,KAAO,iBAAiB,GAAGH,EAAG,MAAM,CAACE,YAAY,yBAAyB,CAACJ,EAAIgB,GAAGhB,EAAIiB,GAAG+zB,YAAyB,KAAK90B,EAAG,MAAM,CAACE,YAAY,uBAAuB,CAACJ,EAAIgB,GAAG,IAAIhB,EAAIiB,GAAGjB,EAAI+C,GAAI,iBAAgB/C,EAAIkI,kBAAkB,YAE3pCxG,EAAkB,GCFlB3B,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAAC4G,MAAM,CAC/E,oCACe,QAAf9G,EAAIkI,OACA,yCACA,2CACH,CAAiB,QAAflI,EAAIkI,OAAkB,CAAChI,EAAG,MAAM,CAACE,YAAY,YAAY,CAACF,EAAG,YAAY,GAAGA,EAAG,MAAM,CAACE,YAAY,YAAY,CAACF,EAAG,YAAY,IAAIA,EAAG,MAAM,CAACE,YAAY,YAAY,CAACF,EAAG,YAAY,IAAI,IAE3LwB,EAAkB,GCPlB3B,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAAC61B,YAAY,CAAC,oBAAoB,qBAAqB11B,MAAM,CAAC,GAAK,WAAW,QAAU,MAAM,QAAU,gBAAgB,EAAI,MAAM,YAAY,WAAW,MAAQ,6BAA6B,cAAc,+BAA+B,EAAI,QAAQ,CAACH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,2IAA2IH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,+SAA+SH,EAAG,IAAI,CAACA,EAAG,OAAO,CAACA,EAAG,OAAO,CAACG,MAAM,CAAC,GAAK,WAAW,EAAI,wIAAwIH,EAAG,WAAW,CAACG,MAAM,CAAC,GAAK,aAAa,CAACH,EAAG,MAAM,CAAC61B,YAAY,CAAC,SAAW,WAAW11B,MAAM,CAAC,aAAa,iBAAiBH,EAAG,IAAI,CAACE,YAAY,OAAO,CAACF,EAAG,iBAAiB,CAACG,MAAM,CAAC,GAAK,WAAW,kBAAoB,4DAA4D,cAAgB,iBAAiB,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,GAAK,YAAY,CAACH,EAAG,OAAO,CAAC61B,YAAY,CAAC,aAAa,WAAW11B,MAAM,CAAC,OAAS,OAAOH,EAAG,OAAO,CAAC61B,YAAY,CAAC,aAAa,UAAU,eAAe,KAAK11B,MAAM,CAAC,OAAS,UAAU,GAAGH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,wIAAwI,KAAKH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,yIAAyIH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,qjCAAqjCH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,mhBAAmhBH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,mwBAAmwBH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,0uBAA0uBH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,+fAA+fH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,k8BAAk8BH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,gjCAAgjCH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,k1BAAk1BH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,4PAA4PH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,6TAA6TH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,44BAA44BH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,iRAAiRH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,swBAAswBH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,o7BAAo7BH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,iJAAiJH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,gTAAgTH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,4HAA4HH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,iQAAiQH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,8XAA8XH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,8uBAA8uBH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,0KAA0KH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,06BAA06BH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,82DAA82DH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,+yBAA+yBH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,6xBAA6xBH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,+gBAA+gBH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,qbAAqbH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,mTAAmTH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,g6BAAg6BH,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,EAAI,2yBAEr5qBqB,EAAkB,GC4UtB,GACAI,KAAAA,WC/UgQ,ICQ5P,GAAY,OACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIF,EAAe,EAAiB,QCnB5B/B,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACG,MAAM,CAAC,QAAU,MAAM,QAAU,0BAA0B,EAAI,MAAM,YAAY,WAAW,MAAQ,6BAA6B,cAAc,+BAA+B,EAAI,QAAQ,CAACH,EAAG,IAAI,CAACG,MAAM,CAAC,GAAK,MAAM,UAAY,4BAA4B,CAACH,EAAG,OAAO,CAACE,YAAY,aAAaC,MAAM,CAAC,GAAK,SAAS,EAAI,uxFAAuxFH,EAAG,OAAO,CAACE,YAAY,UAAUC,MAAM,CAAC,GAAK,SAAS,EAAI,mLAAmLH,EAAG,OAAO,CAACE,YAAY,UAAUC,MAAM,CAAC,GAAK,SAAS,EAAI,kLAAkLH,EAAG,OAAO,CAACE,YAAY,UAAUC,MAAM,CAAC,GAAK,SAAS,EAAI,mLAAmLH,EAAG,OAAO,CAACE,YAAY,UAAUC,MAAM,CAAC,GAAK,SAAS,EAAI,4aAA4aH,EAAG,OAAO,CAACE,YAAY,UAAUC,MAAM,CAAC,GAAK,SAAS,EAAI,mLAAmLH,EAAG,OAAO,CAACE,YAAY,UAAUC,MAAM,CAAC,GAAK,SAAS,EAAI,+qCAE9mJqB,EAAkB,GCiDtB,GACAI,KAAAA,oBACAS,OACA,OACA2F,OAAAA,SCvDgQ,ICQ5P,GAAY,OACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIF,EAAe,EAAiB,QCnB5BnI,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,OAAO,OAAS,YAAY,QAAU,MAAM,QAAU,0BAA0B,MAAQ,YAAY,YAAY,WAAW,MAAQ,6BAA6B,WAAW,iCAAiC,WAAW,mCAAmC,YAAY,8CAA8C,YAAY,+BAA+B,CAACH,EAAG,WAAW,CAACG,MAAM,CAAC,GAAK,cAAc,CAACH,EAAG,UAAU,CAACA,EAAG,UAAU,CAACG,MAAM,CAAC,YAAY,KAAK,CAACH,EAAG,YAAY,CAACF,EAAIgB,GAAG,mBAAmBd,EAAG,UAAU,CAACG,MAAM,CAAC,eAAe,6CAA6C,IAAI,IAAI,GAAGH,EAAG,OAAO,CAACG,MAAM,CAAC,GAAK,WAAWH,EAAG,IAAI,CAACG,MAAM,CAAC,GAAK,MAAM,UAAY,iDAAiD,CAACH,EAAG,OAAO,CAACE,YAAY,gBAAgB21B,YAAY,CAAC,eAAe,SAAS,cAAc,OAAO,eAAe,SAAS,YAAY,gBAAgB,cAAc,cAAc,+BAA+B,wBAAwB,eAAe,QAAQ,eAAe,IAAI,YAAY,UAAU,OAAS,QAAQ11B,MAAM,CAAC,GAAK,SAAS,UAAY,mCAAmC,CAACH,EAAG,QAAQ,CAACG,MAAM,CAAC,GAAK,UAAU,EAAI,IAAI,EAAI,MAAM,CAACL,EAAIgB,GAAG,SAASd,EAAG,OAAO,CAACE,YAAY,gBAAgB21B,YAAY,CAAC,eAAe,SAAS,cAAc,OAAO,eAAe,SAAS,YAAY,gBAAgB,cAAc,cAAc,+BAA+B,wBAAwB,eAAe,QAAQ,eAAe,IAAI,YAAY,UAAU,OAAS,QAAQ11B,MAAM,CAAC,GAAK,SAAS,UAAY,oCAAoC,CAACH,EAAG,QAAQ,CAACG,MAAM,CAAC,GAAK,UAAU,EAAI,IAAI,EAAI,MAAM,CAACL,EAAIgB,GAAG,SAASd,EAAG,OAAO,CAAC61B,YAAY,CAAC,eAAe,SAAS,cAAc,OAAO,eAAe,SAAS,YAAY,gBAAgB,cAAc,cAAc,+BAA+B,wBAAwB,eAAe,QAAQ,KAAO,UAAU,eAAe,IAAI,YAAY,UAAU,OAAS,QAAQ11B,MAAM,CAAC,GAAK,SAAS,UAAY,+BAA+B,CAACH,EAAG,QAAQ,CAACG,MAAM,CAAC,GAAK,UAAU,EAAI,IAAI,EAAI,MAAM,CAACL,EAAIgB,GAAG,SAASd,EAAG,OAAO,CAAC61B,YAAY,CAAC,eAAe,SAAS,cAAc,OAAO,eAAe,SAAS,YAAY,gBAAgB,cAAc,cAAc,+BAA+B,wBAAwB,eAAe,QAAQ,KAAO,UAAU,eAAe,IAAI,YAAY,UAAU,OAAS,QAAQ11B,MAAM,CAAC,GAAK,SAAS,UAAY,oCAAoC,CAACH,EAAG,QAAQ,CAACG,MAAM,CAAC,GAAK,UAAU,EAAI,iCAAiC,EAAI,MAAM,CAACL,EAAIgB,GAAG,cAAcd,EAAG,OAAO,CAAC61B,YAAY,CAAC,eAAe,SAAS,cAAc,OAAO,eAAe,SAAS,YAAY,gBAAgB,cAAc,cAAc,+BAA+B,wBAAwB,eAAe,QAAQ,KAAO,UAAU,eAAe,IAAI,YAAY,UAAU,OAAS,QAAQ11B,MAAM,CAAC,GAAK,SAAS,UAAY,qCAAqC,CAACH,EAAG,QAAQ,CAACG,MAAM,CAAC,GAAK,UAAU,EAAI,IAAI,EAAI,MAAM,CAACL,EAAIgB,GAAG,SAASd,EAAG,OAAO,CAAC61B,YAAY,CAAC,eAAe,SAAS,cAAc,OAAO,eAAe,SAAS,YAAY,gBAAgB,cAAc,cAAc,+BAA+B,wBAAwB,eAAe,QAAQ,KAAO,UAAU,eAAe,IAAI,YAAY,UAAU,OAAS,QAAQ11B,MAAM,CAAC,GAAK,SAAS,UAAY,qCAAqC,CAACH,EAAG,QAAQ,CAACG,MAAM,CAAC,GAAK,UAAU,EAAI,sDAAsD,EAAI,MAAM,CAACL,EAAIgB,GAAG,mBAAmB,IAE19GU,EAAkB,GCqJtB,GACAI,KAAAA,qBCxJgQ,ICQ5P,IAAY,OACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCShC,IACAA,KAAAA,aACAM,WAAAA,CAAA4zB,QAAAA,EAAAC,QAAAA,EAAAC,QAAAA,IACA3zB,OACA,OACA2F,OAAAA,SCjCmQ,MCQ/P,IAAY,OACd,GACA,EACA,GACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCwBhC,IACApG,KAAAA,oBACAM,WAAAA,CAAA+zB,WAAAA,GAAA9vB,WAAAA,EAAAA,GACA9D,OACA,OACA2F,OAAAA,QAGA1F,QAAAA,CACA4zB,iBACA,qDAEAP,mBACA,OACAv1B,OAAAA,KAAAA,GAAAA,4BAAAA,CACA+1B,YAAAA,KAAAA,mBAEAh1B,KAAAA,KAAAA,GAAAA,0BAAAA,CACAg1B,YAAAA,KAAAA,sBAKA/vB,SAAAA,CACAwvB,kCACA,6CACA,gBACA,YCtEwQ,MCQpQ,IAAY,OACd,GACA,EACA,GACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCiEhC,IACAh0B,KAAAA,YACAM,WAAAA,CACAk0B,gBADA,GAEAC,oBAFA,EAGAC,oBAHA,EAIAtwB,kBAAAA,EAAAA,GAEA3D,OACA,OACAwD,SAAAA,EAAAA,EAAAA,mBACAmC,OAAAA,QAIA5B,SAAAA,KACA,mDACAmwB,kCACA,0BACA,2GACA,sEAEAhC,yBACA,0BACA,yBACA,uCC7GkQ,MCQ9P,IAAY,OACd,GACA10B,EACA2B,GACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,S,mBCnBhC,IAAI8gB,EAAM,CACT,gBAAiB,KACjB,kBAAmB,IAIpB,SAASkU,EAAeC,GACvB,IAAIrJ,EAAKsJ,EAAsBD,GAC/B,OAAOE,EAAoBvJ,GAE5B,SAASsJ,EAAsBD,GAC9B,IAAIE,EAAoBC,EAAEtU,EAAKmU,GAAM,CACpC,IAAIjf,EAAI,IAAIzH,MAAM,uBAAyB0mB,EAAM,KAEjD,MADAjf,EAAEkH,KAAO,mBACHlH,EAEP,OAAO8K,EAAImU,GAEZD,EAAe/b,KAAO,WACrB,OAAOD,OAAOC,KAAK6H,IAEpBkU,EAAerc,QAAUuc,EACzBG,EAAOC,QAAUN,EACjBA,EAAepJ,GAAK,I,qBCvBpB,IAAI9K,EAAM,CACT,aAAc,IACd,aAAc,KAIf,SAASkU,EAAeC,GACvB,IAAIrJ,EAAKsJ,EAAsBD,GAC/B,OAAOE,EAAoBvJ,GAE5B,SAASsJ,EAAsBD,GAC9B,IAAIE,EAAoBC,EAAEtU,EAAKmU,GAAM,CACpC,IAAIjf,EAAI,IAAIzH,MAAM,uBAAyB0mB,EAAM,KAEjD,MADAjf,EAAEkH,KAAO,mBACHlH,EAEP,OAAO8K,EAAImU,GAEZD,EAAe/b,KAAO,WACrB,OAAOD,OAAOC,KAAK6H,IAEpBkU,EAAerc,QAAUuc,EACzBG,EAAOC,QAAUN,EACjBA,EAAepJ,GAAK,M","sources":["webpack://energy-subscription-front/./src/components/HelpButton.vue","webpack://energy-subscription-front/./src/components/CustomModal.vue","webpack://energy-subscription-front/src/components/CustomModal.vue","webpack://energy-subscription-front/./src/components/CustomModal.vue?6685","webpack://energy-subscription-front/./src/components/CustomModal.vue?f787","webpack://energy-subscription-front/src/components/HelpButton.vue","webpack://energy-subscription-front/./src/components/HelpButton.vue?5cba","webpack://energy-subscription-front/./src/components/HelpButton.vue?a033","webpack://energy-subscription-front/./src/components/layout/FullWidthLayout.vue","webpack://energy-subscription-front/src/components/layout/FullWidthLayout.vue","webpack://energy-subscription-front/./src/components/layout/FullWidthLayout.vue?fa77","webpack://energy-subscription-front/./src/components/layout/FullWidthLayout.vue?4b37","webpack://energy-subscription-front/./src/views/bankDetails/bankDetailsPage.vue","webpack://energy-subscription-front/./src/components/RequiredFieldsWarning.vue","webpack://energy-subscription-front/src/components/RequiredFieldsWarning.vue","webpack://energy-subscription-front/./src/components/RequiredFieldsWarning.vue?ee90","webpack://energy-subscription-front/./src/components/RequiredFieldsWarning.vue?fbbd","webpack://energy-subscription-front/src/views/bankDetails/bankDetailsPage.vue","webpack://energy-subscription-front/./src/views/bankDetails/bankDetailsPage.vue?3ba3","webpack://energy-subscription-front/./src/views/bankDetails/bankDetailsPage.vue?75df","webpack://energy-subscription-front/./src/views/billing/billingPage.vue","webpack://energy-subscription-front/./src/views/billing/PaymentTypeSelector.vue","webpack://energy-subscription-front/src/views/billing/PaymentTypeSelector.vue","webpack://energy-subscription-front/./src/views/billing/PaymentTypeSelector.vue?388c","webpack://energy-subscription-front/./src/views/billing/PaymentTypeSelector.vue?10f5","webpack://energy-subscription-front/src/views/billing/billingPage.vue","webpack://energy-subscription-front/./src/views/billing/billingPage.vue?a412","webpack://energy-subscription-front/./src/views/billing/billingPage.vue?c664","webpack://energy-subscription-front/./src/views/contract/contractPage.vue","webpack://energy-subscription-front/./src/views/contract/ContractSummary.vue","webpack://energy-subscription-front/src/views/contract/ContractSummary.vue","webpack://energy-subscription-front/./src/views/contract/ContractSummary.vue?406b","webpack://energy-subscription-front/./src/views/contract/ContractSummary.vue?41b0","webpack://energy-subscription-front/src/views/contract/contractPage.vue","webpack://energy-subscription-front/./src/views/contract/contractPage.vue?0e44","webpack://energy-subscription-front/./src/views/contract/contractPage.vue?7758","webpack://energy-subscription-front/./src/views/contractActivation/contractActivationPage.vue","webpack://energy-subscription-front/./src/store/subscription/contractActivation/constant.ts","webpack://energy-subscription-front/./src/views/contractActivation/activationSteps.vue","webpack://energy-subscription-front/src/views/contractActivation/activationSteps.vue","webpack://energy-subscription-front/./src/views/contractActivation/activationSteps.vue?57af","webpack://energy-subscription-front/./src/views/contractActivation/activationSteps.vue?4c36","webpack://energy-subscription-front/src/views/contractActivation/contractActivationPage.vue","webpack://energy-subscription-front/./src/views/contractActivation/contractActivationPage.vue?febc","webpack://energy-subscription-front/./src/views/contractActivation/contractActivationPage.vue?f383","webpack://energy-subscription-front/./src/views/contractSigning/contractSigningPage.vue","webpack://energy-subscription-front/src/views/contractSigning/contractSigningPage.vue","webpack://energy-subscription-front/./src/views/contractSigning/contractSigningPage.vue?1c02","webpack://energy-subscription-front/./src/views/contractSigning/contractSigningPage.vue?da32","webpack://energy-subscription-front/./src/views/email/editEmailPage.vue","webpack://energy-subscription-front/src/views/email/editEmailPage.vue","webpack://energy-subscription-front/./src/views/email/editEmailPage.vue?ee00","webpack://energy-subscription-front/./src/views/email/editEmailPage.vue?05b8","webpack://energy-subscription-front/./src/views/email/emailValidationSentPage.vue","webpack://energy-subscription-front/../../src/DefaultReconnectPolicy.ts","webpack://energy-subscription-front/../../src/ILogger.ts","webpack://energy-subscription-front/../../src/Errors.ts","webpack://energy-subscription-front/../../src/HttpClient.ts","webpack://energy-subscription-front/../../src/Loggers.ts","webpack://energy-subscription-front/../../src/Utils.ts","webpack://energy-subscription-front/../../src/FetchHttpClient.ts","webpack://energy-subscription-front/../../src/XhrHttpClient.ts","webpack://energy-subscription-front/../../src/DefaultHttpClient.ts","webpack://energy-subscription-front/../../src/HeaderNames.ts","webpack://energy-subscription-front/../../src/ITransport.ts","webpack://energy-subscription-front/../../src/AbortController.ts","webpack://energy-subscription-front/../../src/LongPollingTransport.ts","webpack://energy-subscription-front/../../src/ServerSentEventsTransport.ts","webpack://energy-subscription-front/../../src/WebSocketTransport.ts","webpack://energy-subscription-front/../../src/HttpConnection.ts","webpack://energy-subscription-front/../../src/TextMessageFormat.ts","webpack://energy-subscription-front/../../src/HandshakeProtocol.ts","webpack://energy-subscription-front/../../src/IHubProtocol.ts","webpack://energy-subscription-front/../../src/Subject.ts","webpack://energy-subscription-front/../../src/HubConnection.ts","webpack://energy-subscription-front/../../src/JsonHubProtocol.ts","webpack://energy-subscription-front/../../src/HubConnectionBuilder.ts","webpack://energy-subscription-front/src/views/email/emailValidationSentPage.vue","webpack://energy-subscription-front/./src/views/email/emailValidationSentPage.vue?0d2b","webpack://energy-subscription-front/./src/views/email/emailValidationSentPage.vue?929f","webpack://energy-subscription-front/./src/views/housing/housingPage.vue","webpack://energy-subscription-front/./src/views/housing/GridOperatorSelector.vue","webpack://energy-subscription-front/src/views/housing/GridOperatorSelector.vue","webpack://energy-subscription-front/./src/views/housing/GridOperatorSelector.vue?53fc","webpack://energy-subscription-front/./src/views/housing/GridOperatorSelector.vue?c5ad","webpack://energy-subscription-front/./src/components/NumberInput.vue","webpack://energy-subscription-front/src/components/NumberInput.vue","webpack://energy-subscription-front/./src/components/NumberInput.vue?e57c","webpack://energy-subscription-front/./src/components/NumberInput.vue?4037","webpack://energy-subscription-front/./src/views/housing/GsrnEanInput.vue","webpack://energy-subscription-front/src/views/housing/GsrnEanInput.vue","webpack://energy-subscription-front/./src/views/housing/GsrnEanInput.vue?f788","webpack://energy-subscription-front/./src/views/housing/GsrnEanInput.vue?7529","webpack://energy-subscription-front/src/views/housing/housingPage.vue","webpack://energy-subscription-front/./src/views/housing/housingPage.vue?edc9","webpack://energy-subscription-front/./src/views/housing/housingPage.vue?b141","webpack://energy-subscription-front/./src/views/offer/offerPage.vue","webpack://energy-subscription-front/./src/views/offer/ProductTypeSelector.vue","webpack://energy-subscription-front/./src/views/offer/ProductTypeIcon.vue","webpack://energy-subscription-front/src/views/offer/ProductTypeIcon.vue","webpack://energy-subscription-front/./src/views/offer/ProductTypeIcon.vue?6f48","webpack://energy-subscription-front/./src/views/offer/ProductTypeIcon.vue?2b24","webpack://energy-subscription-front/src/views/offer/ProductTypeSelector.vue","webpack://energy-subscription-front/./src/views/offer/ProductTypeSelector.vue?594e","webpack://energy-subscription-front/./src/views/offer/ProductTypeSelector.vue?5ca5","webpack://energy-subscription-front/./src/views/offer/BatteryPlanSelector.vue","webpack://energy-subscription-front/./src/views/offer/BatteryPlanSelectorItem.vue","webpack://energy-subscription-front/src/views/offer/BatteryPlanSelectorItem.vue","webpack://energy-subscription-front/./src/views/offer/BatteryPlanSelectorItem.vue?c14a","webpack://energy-subscription-front/./src/views/offer/BatteryPlanSelectorItem.vue?04fa","webpack://energy-subscription-front/src/views/offer/BatteryPlanSelector.vue","webpack://energy-subscription-front/./src/views/offer/BatteryPlanSelector.vue?65c1","webpack://energy-subscription-front/./src/views/offer/BatteryPlanSelector.vue?e1ee","webpack://energy-subscription-front/./src/views/offer/BatteryPlanInfo.vue","webpack://energy-subscription-front/./src/views/offer/TenantLogo.vue","webpack://energy-subscription-front/./src/views/offer/DSILogo.vue","webpack://energy-subscription-front/src/views/offer/DSILogo.vue","webpack://energy-subscription-front/./src/views/offer/DSILogo.vue?56b8","webpack://energy-subscription-front/./src/views/offer/DSILogo.vue?314e","webpack://energy-subscription-front/./src/views/offer/MSBLogo.vue","webpack://energy-subscription-front/src/views/offer/MSBLogo.vue","webpack://energy-subscription-front/./src/views/offer/MSBLogo.vue?2f7d","webpack://energy-subscription-front/./src/views/offer/MSBLogo.vue?a017","webpack://energy-subscription-front/./src/views/offer/MSBText.vue","webpack://energy-subscription-front/src/views/offer/MSBText.vue","webpack://energy-subscription-front/./src/views/offer/MSBText.vue?b1a5","webpack://energy-subscription-front/./src/views/offer/MSBText.vue?55e8","webpack://energy-subscription-front/src/views/offer/TenantLogo.vue","webpack://energy-subscription-front/./src/views/offer/TenantLogo.vue?b3e4","webpack://energy-subscription-front/./src/views/offer/TenantLogo.vue?2f7f","webpack://energy-subscription-front/src/views/offer/BatteryPlanInfo.vue","webpack://energy-subscription-front/./src/views/offer/BatteryPlanInfo.vue?d342","webpack://energy-subscription-front/./src/views/offer/BatteryPlanInfo.vue?fed1","webpack://energy-subscription-front/src/views/offer/offerPage.vue","webpack://energy-subscription-front/./src/views/offer/offerPage.vue?2204","webpack://energy-subscription-front/./src/views/offer/offerPage.vue?359f","webpack://energy-subscription-front/./src/assets/images/billingTypes/ sync ^\\.\\/.*\\.png$","webpack://energy-subscription-front/./src/assets/images/helpModals/ sync ^\\.\\/.*\\.png$"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"help-button-container\"},[_c('b-tooltip',{attrs:{\"delay\":500,\"label\":_vm.header,\"multilined\":_vm.multilined,\"position\":\"is-left\",\"type\":\"is-primary\"}},[_c('b-button',{staticClass:\"help-button\",attrs:{\"rounded\":\"\",\"type\":\"is-primary\"},on:{\"click\":_vm.toggleModal}},[_c('span',{staticClass:\"icon is-small has-text-white\"},[_c('i',{staticClass:\"mdi mdi-help\"})])])],1),_c('custom-modal',{attrs:{\"isOpen\":_vm.isModalOpened,\"title\":\"\"},on:{\"close\":function($event){_vm.isModalOpened = false}},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.header)+\" \")]},proxy:true},{key:\"footer\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.footer)+\" \")]},proxy:true}])},[_c('p',{staticClass:\"modal-body\",domProps:{\"innerHTML\":_vm._s(_vm.body)}}),(_vm.hasImage())?_c('b-image',{attrs:{\"alt\":_vm.image,\"responsive\":true,\"src\":_vm.getImageUrl()}}):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-modal',{attrs:{\"active\":_vm.isOpen,\"aria-modal\":\"\",\"aria-role\":\"dialog\",\"has-modal-card\":\"\"},on:{\"close\":function($event){return _vm.$emit('close')}}},[_c('div',{staticClass:\"modal-card\"},[_c('header',{staticClass:\"modal-card-head\"},[_c('p',{staticClass:\"modal-card-title modal-card-long-title\"},[_vm._t(\"header\")],2),_c('button',{staticClass:\"delete\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('close')}}})]),_c('section',{staticClass:\"modal-card-body\"},[_vm._t(\"default\")],2),_c('footer',{staticClass:\"modal-card-foot\"},[_vm._t(\"footer\")],2)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <b-modal\n    :active=\"isOpen\"\n    aria-modal\n    aria-role=\"dialog\"\n    has-modal-card\n    @close=\"$emit('close')\"\n  >\n    <div class=\"modal-card\">\n      <header class=\"modal-card-head\">\n        <p class=\"modal-card-title modal-card-long-title\">\n          <slot name=\"header\"></slot>\n        </p>\n        <button class=\"delete\" type=\"button\" @click=\"$emit('close')\" />\n      </header>\n      <section class=\"modal-card-body\">\n        <slot></slot>\n      </section>\n      <footer class=\"modal-card-foot\">\n        <slot name=\"footer\"></slot>\n      </footer>\n    </div>\n  </b-modal>\n</template>\n\n<script>\nexport default {\n  name: \"CustomModal\",\n  props: {\n    isOpen: {\n      type: Boolean,\n      required: true,\n    },\n    title: {\n      type: String,\n      required: false,\n    },\n  },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.modal-card-long-title {\n  flex-shrink: 1;\n}\n</style>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomModal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomModal.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CustomModal.vue?vue&type=template&id=00038a94&scoped=true&\"\nimport script from \"./CustomModal.vue?vue&type=script&lang=js&\"\nexport * from \"./CustomModal.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CustomModal.vue?vue&type=style&index=0&id=00038a94&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"00038a94\",\n  null\n  \n)\n\nexport default component.exports","<template>\n  <div class=\"help-button-container\">\n    <b-tooltip\n      :delay=\"500\"\n      :label=\"header\"\n      :multilined=\"multilined\"\n      position=\"is-left\"\n      type=\"is-primary\"\n    >\n      <b-button\n        class=\"help-button\"\n        rounded\n        type=\"is-primary\"\n        @click=\"toggleModal\"\n      >\n        <span class=\"icon is-small has-text-white\">\n          <i class=\"mdi mdi-help\" />\n        </span>\n      </b-button>\n    </b-tooltip>\n    <custom-modal\n      :isOpen=\"isModalOpened\"\n      title=\"\"\n      @close=\"isModalOpened = false\"\n    >\n      <template v-slot:header>\n        {{ header }}\n      </template>\n      <p class=\"modal-body\" v-html=\"body\"></p>\n      <b-image\n        v-if=\"hasImage()\"\n        :alt=\"image\"\n        :responsive=\"true\"\n        :src=\"getImageUrl()\"\n      ></b-image>\n      <template v-slot:footer>\n        {{ footer }}\n      </template>\n    </custom-modal>\n  </div>\n</template>\n\n<script>\nimport CustomModal from \"@/components/CustomModal\";\n\nexport default {\n  name: \"help-button\",\n  components: { CustomModal },\n  props: {\n    header: String,\n    body: String,\n    footer: String,\n    image: String,\n    multilined: {\n      type: Boolean,\n      default: false,\n    },\n  },\n  data() {\n    return {\n      isModalOpened: false,\n    };\n  },\n  methods: {\n    toggleModal() {\n      this.isModalOpened = !this.isModalOpened;\n    },\n    hasImage() {\n      return !!this.image;\n    },\n    getImageUrl() {\n      return this.image\n        ? require(`@/assets/images/helpModals/${this.image}.png`)\n        : null;\n    },\n  },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.help-button-container {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n\n  .help-button {\n    height: 1.5rem !important;\n    width: 1.5rem !important;\n    font-size: 1rem !important;\n    padding: 0;\n  }\n}\n\n.modal-body {\n  font-weight: normal;\n  line-height: 1.5;\n  font-size: 1rem;\n}\n\n.b-image-wrapper {\n  padding-top: 20px;\n}\n</style>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HelpButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HelpButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HelpButton.vue?vue&type=template&id=bc2eee4a&scoped=true&\"\nimport script from \"./HelpButton.vue?vue&type=script&lang=js&\"\nexport * from \"./HelpButton.vue?vue&type=script&lang=js&\"\nimport style0 from \"./HelpButton.vue?vue&type=style&index=0&id=bc2eee4a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"bc2eee4a\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"fullWidthLayout\"},[_c('MainHeader',{attrs:{\"with-back-button\":_vm.withBackButton,\"with-help-button\":_vm.withHelpButton},on:{\"on-go-back\":function($event){return _vm.$emit('on-go-back')},\"on-help\":function($event){return _vm.$emit('on-help')}}}),_c('MainContent',{attrs:{\"without-padding\":_vm.withoutPadding}},[_vm._t(\"default\")],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div class=\"fullWidthLayout\">\n    <MainHeader\n      :with-back-button=\"withBackButton\"\n      :with-help-button=\"withHelpButton\"\n      @on-go-back=\"$emit('on-go-back')\"\n      @on-help=\"$emit('on-help')\"\n    />\n    <MainContent :without-padding=\"withoutPadding\">\n      <slot />\n    </MainContent>\n  </div>\n</template>\n\n<script>\nimport MainHeader from \"@/components/layout/MainHeader\";\nimport MainContent from \"@/components/layout/MainContent\";\n\nexport default {\n  name: \"FullWidthLayout\",\n  props: {\n    withoutPadding: {\n      type: Boolean,\n      default: false,\n    },\n    withBackButton: {\n      type: Boolean,\n      default: false,\n    },\n    withHelpButton: {\n      type: Boolean,\n      default: false,\n    },\n  },\n  components: { MainContent, MainHeader },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.fullWidthLayout {\n  display: grid;\n  width: 100vw;\n  height: 100vh;\n  height: calc(var(--vh, 1vh) * 100);\n  grid-template-columns: 0 1fr;\n  grid-template-rows: $desktop-height-main-header 0 1fr;\n}\n\n@include media(\"<tablet\") {\n  .fullWidthLayout {\n    grid-template-rows: $mobile-height-main-header 0 1fr;\n  }\n}\n\n.content {\n  overflow-y: auto;\n  overflow-x: hidden;\n  background: #fff;\n  z-index: 4;\n  padding: 2rem 0;\n  grid-column-start: 2;\n  grid-column-end: 2;\n  grid-row-start: 3;\n  grid-row-end: 3;\n}\n</style>\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FullWidthLayout.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FullWidthLayout.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FullWidthLayout.vue?vue&type=template&id=020b81f3&scoped=true&\"\nimport script from \"./FullWidthLayout.vue?vue&type=script&lang=js&\"\nexport * from \"./FullWidthLayout.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FullWidthLayout.vue?vue&type=style&index=0&id=020b81f3&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"020b81f3\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"container is-fluid\"},[_c('div',{staticClass:\"columns\"},[_c('div',{staticClass:\"column is-half-desktop is-full-tablet\"},[_c('div',{staticClass:\"block holder-information\"},[_c('b-message',{attrs:{\"type\":\"is-info\"}},[_vm._v(_vm._s(_vm.$t(\"bankDetails.paymentInformationUsedForMonthlyInstallment\"))+\" \")]),_c('h5',{staticClass:\"title is-5\"},[_vm._v(_vm._s(_vm.$t(\"bankDetails.holderInformation\")))]),_c('div',{staticClass:\"holder-information-inputs\"},[(_vm.isIndividualClient)?[_c('custom-input',{attrs:{\"label\":`${_vm.$t('bankDetails.holderFamilyName')}`,\"maxlength\":_vm.MAX_LENGTH_HOLDER_FAMILY_NAME,\"validation-errors\":_vm.holderFamilyNameErrors,\"value\":_vm.holderFamilyName,\"name\":\"holderFamilyName\"},on:{\"input\":_vm.setHolderFamilyName}}),_c('custom-input',{attrs:{\"label\":`${_vm.$t('bankDetails.holderFirstName')}`,\"maxlength\":_vm.MAX_LENGTH_HOLDER_FIRST_NAME,\"validation-errors\":_vm.holderFirstNameErrors,\"value\":_vm.holderFirstName,\"name\":\"holderFirstName\"},on:{\"input\":_vm.setHolderFirstName}})]:[_c('custom-input',{attrs:{\"label\":`${_vm.$t('bankDetails.holderCompanyName')}`,\"maxlength\":_vm.MAX_LENGTH_HOLDER_COMPANY_NAME,\"validation-errors\":_vm.holderCompanyNameErrors,\"value\":_vm.holderCompanyName,\"name\":\"holderCompanyName\"},on:{\"input\":_vm.setHolderCompanyName}})]],2)],1),_c('div',{staticClass:\"block address-information\"},[_c('h2',{staticClass:\"title is-5\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"bankDetails.billingAddress\"))+\" \")]),_c('div',{staticClass:\"block\",attrs:{\"cy-id\":\"switch-isBillingAddressSameAsPhysical\"}},[_c('b-switch',{attrs:{\"value\":_vm.isBillingAddressSameAsPhysical,\"name\":\"isBillingAddressSameAsPhysical\"},on:{\"input\":_vm.setIsBillingAddressSameAsPhysical}},[_vm._v(\" \"+_vm._s(_vm.$t(\"bankDetails.isBillingAddressSameAsPhysical\"))+\" \")])],1),(!_vm.isBillingAddressSameAsPhysical)?[_c('div',{staticClass:\"block\"},[_c('custom-input',{attrs:{\"label\":`${_vm.$t('bankDetails.streetNumber')}`,\"maxlength\":_vm.MAX_LENGTH_STREET_NUMBER,\"required\":false,\"validation-errors\":_vm.streetNumberErrors,\"value\":_vm.streetNumber,\"name\":\"streetNumber\"},on:{\"input\":_vm.setStreetNumber}}),_c('custom-select',{attrs:{\"can-be-empty\":true,\"label\":`${_vm.$t('bankDetails.streetNumberSuffix')}`,\"options\":_vm.getStreetNumberSuffixOptions,\"validation-errors\":[],\"value\":_vm.streetNumberSuffix,\"name\":\"streetNumberSuffix\"},on:{\"input\":_vm.setStreetNumberSuffix}}),_c('custom-input',{attrs:{\"label\":`${_vm.$t('bankDetails.street')}`,\"validation-errors\":_vm.streetErrors,\"value\":_vm.street,\"name\":\"street\"},on:{\"input\":_vm.setStreet}}),_c('custom-input',{attrs:{\"has-counter\":true,\"label\":`${_vm.$t('bankDetails.postCode')}`,\"maxlength\":_vm.MAX_LENGTH_POST_CODE,\"validation-errors\":_vm.postCodeErrors,\"value\":_vm.postCode,\"name\":\"postCode\"},on:{\"input\":_vm.setPostCode}}),_c('custom-input',{attrs:{\"label\":`${_vm.$t('bankDetails.city')}`,\"validation-errors\":_vm.cityErrors,\"value\":_vm.city,\"name\":\"city\"},on:{\"input\":_vm.setCity}})],1)]:_vm._e()],2),_c('div',{staticClass:\"block account-information\"},[_c('h5',{staticClass:\"title is-5 block\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"bankDetails.accountInformation\"))+\" \")]),_c('custom-input',{directives:[{name:\"mask\",rawName:\"v-mask\",value:('AA## XXXX XXXX XXXX XXXX XXXX XXX'),expression:\"'AA## XXXX XXXX XXXX XXXX XXXX XXX'\"}],attrs:{\"has-counter\":true,\"maxlength\":_vm.MAX_LENGTH_IBAN,\"validation-errors\":_vm.ibanErrors,\"value\":_vm.iban,\"name\":\"iban\"},on:{\"input\":_vm.setIban}},[_c('template',{slot:\"label\"},[_c('div',{staticClass:\"field-label-with-helper\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"bankDetails.iban\"))+\" * \"),_c('help-button',{attrs:{\"body\":_vm.ibanHelp.body,\"header\":_vm.ibanHelp.header,\"cy-id\":\"bankDetailsIban-helpModal\",\"image\":\"iban\"}})],1)])],2),_c('custom-input',{attrs:{\"has-counter\":true,\"label\":`${_vm.$t('bankDetails.bic')}`,\"maxlength\":_vm.MAX_LENGTH_BIC,\"validation-errors\":_vm.bicErrors,\"value\":_vm.bic,\"name\":\"bic\"},on:{\"input\":_vm.setBic}})],1),(!_vm.isBankDetailsStepValid)?_c('required-fields-warning'):_vm._e(),_c('navigation-buttons',{attrs:{\"next-route\":_vm.nextStep,\"previous-route\":_vm.previousStep,\"isStepValidated\":_vm.isBankDetailsStepValid}})],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"block\"},[_c('b-message',{attrs:{\"cy-id\":\"requiredFieldsWarning\",\"type\":\"is-warning\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"common.forValidThisStepPleaseInquireAllField\"))+\" \")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div class=\"block\">\n    <b-message cy-id=\"requiredFieldsWarning\" type=\"is-warning\">\n      {{ $t(\"common.forValidThisStepPleaseInquireAllField\") }}\n    </b-message>\n  </div>\n</template>\n\n<script>\nexport default {\n  name: \"required-fields-warning\",\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RequiredFieldsWarning.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RequiredFieldsWarning.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RequiredFieldsWarning.vue?vue&type=template&id=3edf3bf9&scoped=true&\"\nimport script from \"./RequiredFieldsWarning.vue?vue&type=script&lang=js&\"\nexport * from \"./RequiredFieldsWarning.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"3edf3bf9\",\n  null\n  \n)\n\nexport default component.exports","<template>\n  <div class=\"container is-fluid\">\n    <div class=\"columns\">\n      <div class=\"column is-half-desktop is-full-tablet\">\n        <div class=\"block holder-information\">\n          <b-message type=\"is-info\"\n            >{{ $t(\"bankDetails.paymentInformationUsedForMonthlyInstallment\") }}\n          </b-message>\n          <h5 class=\"title is-5\">{{ $t(\"bankDetails.holderInformation\") }}</h5>\n          <div class=\"holder-information-inputs\">\n            <template v-if=\"isIndividualClient\">\n              <custom-input\n                :label=\"`${$t('bankDetails.holderFamilyName')}`\"\n                :maxlength=\"MAX_LENGTH_HOLDER_FAMILY_NAME\"\n                :validation-errors=\"holderFamilyNameErrors\"\n                :value=\"holderFamilyName\"\n                name=\"holderFamilyName\"\n                @input=\"setHolderFamilyName\"\n              />\n              <custom-input\n                :label=\"`${$t('bankDetails.holderFirstName')}`\"\n                :maxlength=\"MAX_LENGTH_HOLDER_FIRST_NAME\"\n                :validation-errors=\"holderFirstNameErrors\"\n                :value=\"holderFirstName\"\n                name=\"holderFirstName\"\n                @input=\"setHolderFirstName\"\n              />\n            </template>\n            <template v-else>\n              <custom-input\n                :label=\"`${$t('bankDetails.holderCompanyName')}`\"\n                :maxlength=\"MAX_LENGTH_HOLDER_COMPANY_NAME\"\n                :validation-errors=\"holderCompanyNameErrors\"\n                :value=\"holderCompanyName\"\n                name=\"holderCompanyName\"\n                @input=\"setHolderCompanyName\"\n              />\n            </template>\n          </div>\n        </div>\n        <div class=\"block address-information\">\n          <h2 class=\"title is-5\">\n            {{ $t(\"bankDetails.billingAddress\") }}\n          </h2>\n          <div class=\"block\" cy-id=\"switch-isBillingAddressSameAsPhysical\">\n            <b-switch\n              :value=\"isBillingAddressSameAsPhysical\"\n              name=\"isBillingAddressSameAsPhysical\"\n              @input=\"setIsBillingAddressSameAsPhysical\"\n            >\n              {{ $t(\"bankDetails.isBillingAddressSameAsPhysical\") }}\n            </b-switch>\n          </div>\n          <template v-if=\"!isBillingAddressSameAsPhysical\">\n            <div class=\"block\">\n              <custom-input\n                :label=\"`${$t('bankDetails.streetNumber')}`\"\n                :maxlength=\"MAX_LENGTH_STREET_NUMBER\"\n                :required=\"false\"\n                :validation-errors=\"streetNumberErrors\"\n                :value=\"streetNumber\"\n                name=\"streetNumber\"\n                @input=\"setStreetNumber\"\n              />\n              <custom-select\n                :can-be-empty=\"true\"\n                :label=\"`${$t('bankDetails.streetNumberSuffix')}`\"\n                :options=\"getStreetNumberSuffixOptions\"\n                :validation-errors=\"[]\"\n                :value=\"streetNumberSuffix\"\n                name=\"streetNumberSuffix\"\n                @input=\"setStreetNumberSuffix\"\n              />\n              <custom-input\n                :label=\"`${$t('bankDetails.street')}`\"\n                :validation-errors=\"streetErrors\"\n                :value=\"street\"\n                name=\"street\"\n                @input=\"setStreet\"\n              />\n              <custom-input\n                :has-counter=\"true\"\n                :label=\"`${$t('bankDetails.postCode')}`\"\n                :maxlength=\"MAX_LENGTH_POST_CODE\"\n                :validation-errors=\"postCodeErrors\"\n                :value=\"postCode\"\n                name=\"postCode\"\n                @input=\"setPostCode\"\n              />\n              <custom-input\n                :label=\"`${$t('bankDetails.city')}`\"\n                :validation-errors=\"cityErrors\"\n                :value=\"city\"\n                name=\"city\"\n                @input=\"setCity\"\n              />\n            </div>\n          </template>\n        </div>\n        <div class=\"block account-information\">\n          <h5 class=\"title is-5 block\">\n            {{ $t(\"bankDetails.accountInformation\") }}\n          </h5>\n          <custom-input\n            :has-counter=\"true\"\n            :maxlength=\"MAX_LENGTH_IBAN\"\n            :validation-errors=\"ibanErrors\"\n            :value=\"iban\"\n            name=\"iban\"\n            v-mask=\"'AA## XXXX XXXX XXXX XXXX XXXX XXX'\"\n            @input=\"setIban\"\n          >\n            <template slot=\"label\">\n              <div class=\"field-label-with-helper\">\n                {{ $t(\"bankDetails.iban\") }} *\n                <help-button\n                  :body=\"ibanHelp.body\"\n                  :header=\"ibanHelp.header\"\n                  cy-id=\"bankDetailsIban-helpModal\"\n                  image=\"iban\"\n                />\n              </div>\n            </template>\n          </custom-input>\n          <custom-input\n            :has-counter=\"true\"\n            :label=\"`${$t('bankDetails.bic')}`\"\n            :maxlength=\"MAX_LENGTH_BIC\"\n            :validation-errors=\"bicErrors\"\n            :value=\"bic\"\n            name=\"bic\"\n            @input=\"setBic\"\n          />\n        </div>\n        <required-fields-warning v-if=\"!isBankDetailsStepValid\" />\n        <navigation-buttons\n          :next-route=\"nextStep\"\n          :previous-route=\"previousStep\"\n          :isStepValidated=\"isBankDetailsStepValid\"\n        ></navigation-buttons>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script>\nimport { mapActions, mapGetters, mapMutations } from \"vuex\";\nimport {\n  MAX_LENGTH_BIC,\n  MAX_LENGTH_HOLDER_COMPANY_NAME,\n  MAX_LENGTH_HOLDER_FAMILY_NAME,\n  MAX_LENGTH_HOLDER_FIRST_NAME,\n  MAX_LENGTH_IBAN,\n} from \"@/store/subscription/bankDetails/constant\";\nimport {\n  MAX_LENGTH_POST_CODE,\n  MAX_LENGTH_STREET_NUMBER,\n} from \"@/store/subscription/housing/constants\";\nimport CustomInput from \"@/components/CustomInput\";\nimport CustomSelect from \"@/components/CustomSelect\";\nimport NavigationButtons from \"@/components/NavigationButtons\";\nimport RequiredFieldsWarning from \"@/components/RequiredFieldsWarning\";\nimport HelpButton from \"@/components/HelpButton\";\nimport { RouteName } from \"@/store/navigation/type\";\n\nexport default {\n  name: \"bankDetailsPage\",\n  components: {\n    RequiredFieldsWarning,\n    NavigationButtons,\n    CustomInput,\n    CustomSelect,\n    HelpButton,\n  },\n  data() {\n    return {\n      MAX_LENGTH_HOLDER_FIRST_NAME,\n      MAX_LENGTH_HOLDER_FAMILY_NAME,\n      MAX_LENGTH_HOLDER_COMPANY_NAME,\n      MAX_LENGTH_IBAN,\n      MAX_LENGTH_BIC,\n      MAX_LENGTH_STREET_NUMBER,\n      MAX_LENGTH_POST_CODE,\n      previousStep: RouteName.Billing,\n      nextStep: RouteName.Contract,\n      ibanHelp: {\n        header: this.$t(\"bankDetails.ibanHelp.header\"),\n        body: this.$t(\"bankDetails.ibanHelp.body\"),\n      },\n    };\n  },\n  computed: {\n    ...mapGetters(\"subscription/contactInformation\", {\n      isIndividualClient: \"isIndividualClient\",\n    }),\n    ...mapGetters(\"subscription/bankDetails\", {\n      isBankDetailsStepValid: \"isBankDetailsStepValid\",\n\n      holderFirstName: \"getHolderFirstName\",\n      holderFirstNameErrors: \"getHolderFirstNameErrors\",\n\n      holderFamilyName: \"getHolderFamilyName\",\n      holderFamilyNameErrors: \"getHolderFamilyNameErrors\",\n\n      isBillingAddressSameAsPhysical: \"getIsBillingAddressSameAsPhysical\",\n\n      streetNumber: \"getStreetNumber\",\n      streetNumberErrors: \"getStreetNumberErrors\",\n\n      streetNumberSuffix: \"getStreetNumberSuffix\",\n      streetNumberSuffixes: \"getStreetNumberSuffixes\",\n\n      street: \"getStreet\",\n      streetErrors: \"getStreetErrors\",\n\n      postCode: \"getPostCode\",\n      postCodeErrors: \"getPostCodeErrors\",\n\n      city: \"getCity\",\n      cityErrors: \"getCityErrors\",\n\n      holderCompanyName: \"getHolderCompanyName\",\n\n      holderCompanyNameErrors: \"getHolderCompanyNameErrors\",\n      iban: \"getIban\",\n      ibanErrors: \"getIbanErrors\",\n\n      bic: \"getBic\",\n      bicErrors: \"getBicErrors\",\n    }),\n    getStreetNumberSuffixOptions() {\n      return this.streetNumberSuffixes.map((streetNumberSuffix) => ({\n        name: this.$t(`streetNumberSuffix.${streetNumberSuffix}`),\n        value: streetNumberSuffix,\n      }));\n    },\n  },\n  methods: {\n    ...mapMutations(\"subscription/bankDetails\", [\n      \"setHolderFirstName\",\n      \"setHolderFamilyName\",\n      \"setHolderCompanyName\",\n      \"setStreetNumber\",\n      \"setStreetNumberSuffix\",\n      \"setStreet\",\n      \"setPostCode\",\n      \"setCity\",\n      \"setIban\",\n      \"setBic\",\n    ]),\n    ...mapActions(\"subscription/bankDetails\", [\n      \"setIsBillingAddressSameAsPhysical\",\n    ]),\n  },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.field-label-with-helper {\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n  align-items: center;\n}\n</style>\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./bankDetailsPage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./bankDetailsPage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./bankDetailsPage.vue?vue&type=template&id=226f3749&scoped=true&\"\nimport script from \"./bankDetailsPage.vue?vue&type=script&lang=js&\"\nexport * from \"./bankDetailsPage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./bankDetailsPage.vue?vue&type=style&index=0&id=226f3749&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"226f3749\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"container is-fullhd billing-page-container\"},[_c('payment-type-selector',{attrs:{\"selected\":_vm.paymentType,\"types\":_vm.paymentTypes},on:{\"select\":_vm.selectPaymentType}}),_c('navigation-buttons',{attrs:{\"nextRoute\":_vm.nextStep,\"previousRoute\":_vm.previousStep,\"isStepValidated\":_vm.isBillingStepValid}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"payment-type-selector\"},_vm._l((_vm.types),function(type){return _c('div',{key:type,class:[\n      'payment-type-container',\n      {\n        selected: _vm.checkIfPaymentTypeSelected(type),\n      },\n    ],attrs:{\"cy-id\":`paymentType-${type}`},on:{\"click\":function($event){$event.preventDefault();return _vm.$emit('select', type)}}},[_c('h2',{staticClass:\"title is-5\"},[_vm._v(_vm._s(_vm.getPaymentTypeTitle(type)))]),_c('div',{staticClass:\"payment-type-inner-container b-radio radio\"},[_c('div',{staticClass:\"payment-type-info\"},[_c('b-radio',{attrs:{\"native-value\":type},model:{value:(_vm.getSelectedPaymentType),callback:function ($$v) {_vm.getSelectedPaymentType=$$v},expression:\"getSelectedPaymentType\"}},[_c('div',{staticClass:\"name\"},[_vm._v(\" \"+_vm._s(_vm.getPaymentTypeName(type))+\" \")])]),_c('div',{staticClass:\"description\"},[_vm._v(\" \"+_vm._s(_vm.getPaymentTypeDescription(type))+\" \")])],1),_c('div',{staticClass:\"payment-type-image-container\"},[_c('div',{staticClass:\"image\"},[_c('b-image',{attrs:{\"alt\":_vm.getPaymentTypeName(type),\"responsive\":true,\"src\":_vm.getPaymentTypeImageUrl(type),\"ratio\":\"721by281\"},on:{\"load\":function($event){_vm.isImageLoaded = true}}})],1),_c('div',{class:['legend-container', { 'is-visible': _vm.isImageLoaded }]},[_c('div',{staticClass:\"legend-item billing\"},[_c('div',{staticClass:\"legend-item-color\"}),_c('div',{staticClass:\"legend-item-name\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"billing.legendItems.billing\"))+\" \")])]),_c('div',{staticClass:\"legend-item production\"},[_c('div',{staticClass:\"legend-item-color\"}),_c('div',{staticClass:\"legend-item-name\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"billing.legendItems.production\"))+\" \")])])])])])])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div class=\"payment-type-selector\">\n    <div\n      v-for=\"type in types\"\n      :key=\"type\"\n      :class=\"[\n        'payment-type-container',\n        {\n          selected: checkIfPaymentTypeSelected(type),\n        },\n      ]\"\n      :cy-id=\"`paymentType-${type}`\"\n      @click.prevent=\"$emit('select', type)\"\n    >\n      <h2 class=\"title is-5\">{{ getPaymentTypeTitle(type) }}</h2>\n      <div class=\"payment-type-inner-container b-radio radio\">\n        <div class=\"payment-type-info\">\n          <b-radio v-model=\"getSelectedPaymentType\" :native-value=\"type\">\n            <div class=\"name\">\n              {{ getPaymentTypeName(type) }}\n            </div>\n          </b-radio>\n          <div class=\"description\">\n            {{ getPaymentTypeDescription(type) }}\n          </div>\n        </div>\n        <div class=\"payment-type-image-container\">\n          <div class=\"image\">\n            <b-image\n              :alt=\"getPaymentTypeName(type)\"\n              :responsive=\"true\"\n              :src=\"getPaymentTypeImageUrl(type)\"\n              ratio=\"721by281\"\n              @load=\"isImageLoaded = true\"\n            ></b-image>\n          </div>\n          <div :class=\"['legend-container', { 'is-visible': isImageLoaded }]\">\n            <div class=\"legend-item billing\">\n              <div class=\"legend-item-color\"></div>\n              <div class=\"legend-item-name\">\n                {{ $t(\"billing.legendItems.billing\") }}\n              </div>\n            </div>\n            <div class=\"legend-item production\">\n              <div class=\"legend-item-color\"></div>\n              <div class=\"legend-item-name\">\n                {{ $t(\"billing.legendItems.production\") }}\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script>\nexport default {\n  name: \"payment-type-selector\",\n  props: [\"types\", \"selected\"],\n  data() {\n    return {\n      isImageLoaded: false,\n    };\n  },\n  computed: {\n    getPaymentTypeTitle() {\n      return (paymentType) =>\n        this.$t(`billing.paymentType.${paymentType}.title`);\n    },\n    getPaymentTypeName() {\n      return (paymentType) =>\n        this.$t(`billing.paymentType.${paymentType}.name`);\n    },\n    getPaymentTypeImageUrl() {\n      return (paymentType) =>\n        require(`@/assets/images/billingTypes/${paymentType}.png`);\n    },\n    getPaymentTypeDescription() {\n      return (paymentType) =>\n        this.$t(`billing.paymentType.${paymentType}.description`);\n    },\n    checkIfPaymentTypeSelected() {\n      return (paymentType) => this.selected === paymentType;\n    },\n    getSelectedPaymentType() {\n      return this.selected;\n    },\n  },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.title.is-5 {\n  margin-bottom: 0;\n}\n\n.payment-type-selector {\n  .payment-type-container {\n    &:last-child {\n      border-bottom: 2px solid whitesmoke;\n    }\n\n    .payment-type-inner-container {\n      display: flex;\n      align-items: flex-start;\n      justify-content: space-between;\n      cursor: pointer;\n      padding: 2rem 0;\n      margin-right: 0 !important;\n\n      .payment-type-info,\n      .payment-type-image-container {\n        width: 50%;\n      }\n\n      .payment-type-info {\n        padding-right: 1.5rem;\n\n        .name {\n          font-family: Quicksand;\n          font-size: 1.75rem;\n          color: $primary;\n          font-weight: bold;\n          letter-spacing: 2px;\n          padding-left: 0.5rem;\n        }\n\n        .description {\n          font-size: 0.9rem;\n          margin-top: 0.75rem;\n          padding-left: 2.5rem;\n        }\n      }\n\n      .payment-type-image-container {\n        display: flex;\n        flex-direction: column;\n        height: 100%;\n        max-width: 550px;\n\n        .legend-container {\n          display: flex;\n          align-items: center;\n          justify-content: center;\n          margin-top: 1.75rem;\n          opacity: 0;\n\n          &.is-visible {\n            opacity: 1;\n          }\n\n          .legend-item {\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            padding: 0 5%;\n            font-size: 0.95rem;\n\n            &.billing {\n              .legend-item-color {\n                background-color: #009dbf;\n              }\n            }\n\n            &.production {\n              .legend-item-color {\n                background-color: #ffdb95;\n              }\n            }\n\n            .legend-item-color {\n              height: 0.9rem;\n              width: 0.9rem;\n              border-radius: 100%;\n              margin: 0 0.5rem;\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n@include media(\"<tablet\") {\n  .payment-type-selector {\n    .payment-type-container {\n      margin: 0 -2rem;\n      padding: 0 2rem;\n      border-bottom: none !important;\n\n      .payment-type-inner-container {\n        flex-direction: column;\n\n        .payment-type-info,\n        .payment-type-image-container {\n          width: 100%;\n        }\n\n        .payment-type-info {\n          padding: 0;\n          margin-bottom: 1rem;\n        }\n\n        .payment-type-image-container {\n          max-width: none;\n          padding: 5%;\n\n          .legend-container {\n            .legend-item {\n              padding: 0 9%;\n            }\n          }\n        }\n      }\n    }\n  }\n}\n</style>\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PaymentTypeSelector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PaymentTypeSelector.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PaymentTypeSelector.vue?vue&type=template&id=18e56648&scoped=true&\"\nimport script from \"./PaymentTypeSelector.vue?vue&type=script&lang=js&\"\nexport * from \"./PaymentTypeSelector.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PaymentTypeSelector.vue?vue&type=style&index=0&id=18e56648&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"18e56648\",\n  null\n  \n)\n\nexport default component.exports","<template>\n  <div class=\"container is-fullhd billing-page-container\">\n    <payment-type-selector\n      :selected=\"paymentType\"\n      :types=\"paymentTypes\"\n      @select=\"selectPaymentType\"\n    ></payment-type-selector>\n    <navigation-buttons\n      :nextRoute=\"nextStep\"\n      :previousRoute=\"previousStep\"\n      :isStepValidated=\"isBillingStepValid\"\n    ></navigation-buttons>\n  </div>\n</template>\n\n<script>\nimport { RouteName } from \"../../store/navigation/type\";\nimport { mapGetters, mapMutations } from \"vuex\";\nimport PaymentTypeSelector from \"./PaymentTypeSelector\";\nimport NavigationButtons from \"../../components/NavigationButtons\";\n\nexport default {\n  name: \"billingPage\",\n  components: { NavigationButtons, PaymentTypeSelector },\n  data() {\n    return {\n      previousStep: RouteName.Housing,\n      nextStep: RouteName.BankDetails,\n    };\n  },\n  computed: {\n    ...mapGetters(\"subscription/billing\", {\n      paymentType: \"getPaymentType\",\n      paymentTypes: \"getPaymentTypes\",\n      isBillingStepValid: \"isBillingStepValid\",\n    }),\n  },\n  methods: {\n    ...mapMutations(\"subscription/billing\", {\n      selectPaymentType: \"setPaymentType\",\n    }),\n  },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.billing-page-container {\n  display: flex;\n  flex-direction: column;\n  height: 100%;\n  padding: 0 2rem;\n  margin-left: 0;\n}\n</style>\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./billingPage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./billingPage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./billingPage.vue?vue&type=template&id=58e4bdea&scoped=true&\"\nimport script from \"./billingPage.vue?vue&type=script&lang=js&\"\nexport * from \"./billingPage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./billingPage.vue?vue&type=style&index=0&id=58e4bdea&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"58e4bdea\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',[_c('div',{staticClass:\"container is-fullhd contract-page-container\"},[_c('div',{staticClass:\"columns is-multiline\"},[_c('div',{staticClass:\"column is-full\"},[_c('div',{staticClass:\"block\"},[_c('contract-summary')],1),(!_vm.isValidatedEmail)?_c('div',{staticClass:\"content has-text-centered\"},[_c('p',[_vm._v(_vm._s(_vm.$t(\"contract.forFinishContractValidEmail\")))]),_c('b-button',{attrs:{\"disabled\":!_vm.isSubscriptionValidForSave ||\n              _vm.isSaveSubscriptionLoading ||\n              _vm.isSendEmailValidationLoading,\"loading\":_vm.isSaveSubscriptionLoading || _vm.isSendEmailValidationLoading,\"cy-id\":\"button-validEmail\",\"type\":\"is-primary\"},on:{\"click\":_vm.saveFormAndSendMailValidation}},[_vm._v(_vm._s(_vm.$t(\"contract.validEmail\"))+\" \")])],1):[_c('div',{staticClass:\"block\"},[_c('b-message',{staticClass:\"validateEmail-message\",attrs:{\"has-icon\":\"\",\"icon\":\"check\",\"icon-size\":\"is-small\",\"type\":\"is-success\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"contract.validatedEmailAddress\"))+\" \")])],1),_c('div',{staticClass:\"block content\"},[_c('p',[_vm._v(\" \"+_vm._s(_vm.$t(\"contractSigning.pleaseConfirmReadingConditionOfSale\"))+\" \"),_c('a',{attrs:{\"href\":_vm.getUrlConditionOfSale,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$t(\"contractSigning.conditionOfSale\")))])])]),_c('div',{staticClass:\"field\"},[_c('b-checkbox',{attrs:{\"value\":_vm.termsAndConditions,\"cy-id\":\"checkboxConditionOfSale\"},on:{\"input\":_vm.setTermsAndConditions}},[_vm._v(_vm._s(_vm.$t(\"contractSigning.declareHaveReadConditionOfSaleAndAccept\"))+\" \")])],1),_c('div',{staticClass:\"field\"},[_c('b-checkbox',{attrs:{\"value\":_vm.solarPanelsInstalled,\"cy-id\":\"checkboxSolarPanelsInstalled\"},on:{\"input\":_vm.setSolarPanelsInstalled}},[_vm._v(_vm._s(_vm.$t( `contractSigning.${_vm.tenant}.declareHaveInstalledSolarPanels` ))+\" \")])],1),_c('div',{staticClass:\"block has-text-right\"},[_c('b-button',{attrs:{\"disabled\":!_vm.isSubscriptionValidForSign,\"cy-id\":\"signButton\",\"type\":\"is-primary\"},on:{\"click\":_vm.redirectToContractSigning}},[_vm._v(_vm._s(_vm.$t(\"contractSigning.signButton\"))+\" \")])],1)]],2)])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"subscription-summary-container\"},[_c('h2',{staticClass:\"title is-5\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"contract.pleaseCheckBeforeSigning\"))+\" \")]),_c('div',{staticClass:\"columns is-multiline is-variable is-4\"},[_c('div',{staticClass:\"column is-half-desktop is-full-tablet client-information-container\"},[_c('div',{staticClass:\"inner-container\"},[_c('div',{staticClass:\"header\"},[_c('div',{staticClass:\"header-inner-container\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"contract.clientInformation\"))+\" \")])]),_c('div',{staticClass:\"body\"},[_c('div',{staticClass:\"info-section\"},[(_vm.isProfessionalClient)?_c('div',{staticClass:\"info-item\",attrs:{\"cy-id\":\"companyNameContent\"}},[_c('div',{staticClass:\"info-item-name\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"contract.companyName\"))+\" \")]),_c('div',{staticClass:\"info-item-value\"},[_vm._v(\" \"+_vm._s(_vm.contractSummary.clientInformation.companyName)+\" \")])]):_vm._e(),_c('div',{staticClass:\"info-item\"},[_c('div',{staticClass:\"info-item-name\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"contract.familyName\"))+\" \")]),_c('div',{staticClass:\"info-item-value\"},[_vm._v(\" \"+_vm._s(_vm.contractSummary.clientInformation.familyName)+\" \")])]),_c('div',{staticClass:\"info-item\"},[_c('div',{staticClass:\"info-item-name\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"contract.firstName\"))+\" \")]),_c('div',{staticClass:\"info-item-value\"},[_vm._v(\" \"+_vm._s(_vm.contractSummary.clientInformation.firstName)+\" \")])]),_c('div',{staticClass:\"info-item\"},[_c('div',{staticClass:\"info-item-name\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"contract.email\"))+\" \")]),_c('div',{staticClass:\"info-item-value\",attrs:{\"cy-id\":\"emailAddress\"}},[_vm._v(\" \"+_vm._s(_vm.contractSummary.clientInformation.email)+\" \")])])]),_c('div',{staticClass:\"info-section\"},[_c('div',{staticClass:\"info-item is-column\"},[_c('div',{staticClass:\"info-item-name has-text-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"contract.billingAddress\"))+\" \")]),_c('div',{staticClass:\"info-item-value\",attrs:{\"cy-id\":\"billingAddress\"}},[_vm._v(\" \"+_vm._s(_vm.contractSummary.clientInformation.billingAddress)+\" \")])])]),_c('div',{staticClass:\"info-section\"},[_c('div',{staticClass:\"info-item is-column\"},[_c('div',{staticClass:\"info-item-name has-text-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"contract.physicalAddress\"))+\" \")]),_c('div',{staticClass:\"info-item-value\",attrs:{\"cy-id\":\"physicalAddress\"}},[_vm._v(\" \"+_vm._s(_vm.contractSummary.clientInformation.physicalAddress)+\" \")])]),_c('div',{staticClass:\"info-item\"},[_c('div',{staticClass:\"info-item-name\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"contract.pdlNumber\"))+\" \")]),_c('div',{staticClass:\"info-item-value\"},[_vm._v(\" \"+_vm._s(_vm.contractSummary.clientInformation.pdlNumber)+\" \")])]),_c('div',{staticClass:\"info-item\"},[_c('div',{staticClass:\"info-item-name\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"contract.gridOperator\"))+\" \")]),_c('div',{staticClass:\"info-item-value\"},[_vm._v(\" \"+_vm._s(_vm.contractSummary.clientInformation.gridOperator)+\" \")])])])])])]),_c('div',{staticClass:\"column is-half-desktop is-full-tablet offer-information-container\"},[_c('div',{staticClass:\"inner-container\"},[_c('div',{staticClass:\"header\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"contract.offerInformation\"))+\" \")]),_c('div',{staticClass:\"body\"},[_c('div',{staticClass:\"info-section\"},[_c('div',{staticClass:\"info-item\"},[_c('div',{staticClass:\"info-item-name\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"contract.offer\"))+\" \")]),_c('div',{staticClass:\"info-item-value\"},[_vm._v(\" \"+_vm._s(_vm.contractSummary.offerInformation.offerType)+\" \")])]),_c('div',{staticClass:\"info-item\"},[_c('div',{staticClass:\"info-item-name\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"contract.tariffType\"))+\" \")]),_c('div',{staticClass:\"info-item-value\"},[_vm._v(\" \"+_vm._s(_vm.contractSummary.offerInformation.tariffType)+\" \")])]),_c('div',{staticClass:\"info-item\"},[_c('div',{staticClass:\"info-item-name\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"contract.contractedPower\"))+\" \")]),_c('div',{staticClass:\"info-item-value\"},[_vm._v(\" \"+_vm._s(_vm.contractSummary.offerInformation.contractedPower)+\" \")])]),_c('div',{staticClass:\"info-item\"},[_c('div',{staticClass:\"info-item-name\"},[_vm._v(\" \"+_vm._s(_vm.$t(`contract.${_vm.tenant}.batteryCapacity`))+\" \")]),_c('div',{staticClass:\"info-item-value\"},[_vm._v(\" \"+_vm._s(_vm.contractSummary.offerInformation.batteryCapacity)+\" \")])])]),_c('div',{staticClass:\"info-section has-text-justified is-flex is-flex-grow-1 is-justify-content-flex-end\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"contract.contractAdditionalInfo\"))+\" \")])])])]),_c('div',{staticClass:\"column is-full payment-information-container\"},[_c('div',{staticClass:\"inner-container\"},[_c('div',{staticClass:\"header\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"contract.paymentInformation\"))+\" \")]),_c('div',{staticClass:\"body\"},[_c('div',{staticClass:\"info-section\"},[_c('div',{staticClass:\"info-item\"},[_c('div',{staticClass:\"info-item-name\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"contract.billingType\"))+\" \")]),_c('div',{staticClass:\"info-item-value\"},[_vm._v(\" \"+_vm._s(_vm.contractSummary.paymentInformation.billingType)+\" \")])]),_c('div',{staticClass:\"info-item\"},[_c('div',{staticClass:\"info-item-name\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"contract.paymentType\"))+\" \")]),_c('div',{staticClass:\"info-item-value\"},[_vm._v(\" \"+_vm._s(_vm.contractSummary.paymentInformation.paymentType)+\" \")])]),_c('div',{staticClass:\"info-item\"},[_c('div',{staticClass:\"info-item-name\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"contract.contractDeliveryType\"))+\" \")]),_c('div',{staticClass:\"info-item-value\"},[_vm._v(\" \"+_vm._s(_vm.contractSummary.paymentInformation.contractDeliveryType)+\" \")])])])])])])]),(!_vm.isSubscriptionValid)?_c('div',{staticClass:\"block\"},[_c('b-message',{attrs:{\"cy-id\":\"message-invalidSubscription\",\"type\":\"is-warning\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"contract.pleaseFillAllInfo\"))+\" \"),_c('div',{staticClass:\"content\"},[_c('ul',_vm._l((_vm.getIncompleteSteps),function(incompleteStep,index){return _c('li',{key:index,attrs:{\"cy-id\":`${incompleteStep}Incomplete`}},[_vm._v(\" \"+_vm._s(_vm.$t(`contract.incompleteStep.${incompleteStep}`))+\" \")])}),0)])])],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div class=\"subscription-summary-container\">\n    <h2 class=\"title is-5\">\n      {{ $t(\"contract.pleaseCheckBeforeSigning\") }}\n    </h2>\n    <div class=\"columns is-multiline is-variable is-4\">\n      <div\n        class=\"column is-half-desktop is-full-tablet client-information-container\"\n      >\n        <div class=\"inner-container\">\n          <div class=\"header\">\n            <div class=\"header-inner-container\">\n              {{ $t(\"contract.clientInformation\") }}\n            </div>\n          </div>\n          <div class=\"body\">\n            <div class=\"info-section\">\n              <div\n                v-if=\"isProfessionalClient\"\n                class=\"info-item\"\n                cy-id=\"companyNameContent\"\n              >\n                <div class=\"info-item-name\">\n                  {{ $t(\"contract.companyName\") }}\n                </div>\n                <div class=\"info-item-value\">\n                  {{ contractSummary.clientInformation.companyName }}\n                </div>\n              </div>\n              <div class=\"info-item\">\n                <div class=\"info-item-name\">\n                  {{ $t(\"contract.familyName\") }}\n                </div>\n                <div class=\"info-item-value\">\n                  {{ contractSummary.clientInformation.familyName }}\n                </div>\n              </div>\n              <div class=\"info-item\">\n                <div class=\"info-item-name\">\n                  {{ $t(\"contract.firstName\") }}\n                </div>\n                <div class=\"info-item-value\">\n                  {{ contractSummary.clientInformation.firstName }}\n                </div>\n              </div>\n              <div class=\"info-item\">\n                <div class=\"info-item-name\">\n                  {{ $t(\"contract.email\") }}\n                </div>\n                <div class=\"info-item-value\" cy-id=\"emailAddress\">\n                  {{ contractSummary.clientInformation.email }}\n                </div>\n              </div>\n            </div>\n            <div class=\"info-section\">\n              <div class=\"info-item is-column\">\n                <div class=\"info-item-name has-text-weight-bold\">\n                  {{ $t(\"contract.billingAddress\") }}\n                </div>\n                <div class=\"info-item-value\" cy-id=\"billingAddress\">\n                  {{ contractSummary.clientInformation.billingAddress }}\n                </div>\n              </div>\n            </div>\n            <div class=\"info-section\">\n              <div class=\"info-item is-column\">\n                <div class=\"info-item-name has-text-weight-bold\">\n                  {{ $t(\"contract.physicalAddress\") }}\n                </div>\n                <div class=\"info-item-value\" cy-id=\"physicalAddress\">\n                  {{ contractSummary.clientInformation.physicalAddress }}\n                </div>\n              </div>\n\n              <div class=\"info-item\">\n                <div class=\"info-item-name\">\n                  {{ $t(\"contract.pdlNumber\") }}\n                </div>\n                <div class=\"info-item-value\">\n                  {{ contractSummary.clientInformation.pdlNumber }}\n                </div>\n              </div>\n              <div class=\"info-item\">\n                <div class=\"info-item-name\">\n                  {{ $t(\"contract.gridOperator\") }}\n                </div>\n                <div class=\"info-item-value\">\n                  {{ contractSummary.clientInformation.gridOperator }}\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div\n        class=\"column is-half-desktop is-full-tablet offer-information-container\"\n      >\n        <div class=\"inner-container\">\n          <div class=\"header\">\n            {{ $t(\"contract.offerInformation\") }}\n          </div>\n          <div class=\"body\">\n            <div class=\"info-section\">\n              <div class=\"info-item\">\n                <div class=\"info-item-name\">\n                  {{ $t(\"contract.offer\") }}\n                </div>\n                <div class=\"info-item-value\">\n                  {{ contractSummary.offerInformation.offerType }}\n                </div>\n              </div>\n              <div class=\"info-item\">\n                <div class=\"info-item-name\">\n                  {{ $t(\"contract.tariffType\") }}\n                </div>\n                <div class=\"info-item-value\">\n                  {{ contractSummary.offerInformation.tariffType }}\n                </div>\n              </div>\n              <div class=\"info-item\">\n                <div class=\"info-item-name\">\n                  {{ $t(\"contract.contractedPower\") }}\n                </div>\n                <div class=\"info-item-value\">\n                  {{ contractSummary.offerInformation.contractedPower }}\n                </div>\n              </div>\n              <div class=\"info-item\">\n                <div class=\"info-item-name\">\n                  {{ $t(`contract.${tenant}.batteryCapacity`) }}\n                </div>\n                <div class=\"info-item-value\">\n                  {{ contractSummary.offerInformation.batteryCapacity }}\n                </div>\n              </div>\n            </div>\n            <div\n              class=\"info-section has-text-justified is-flex is-flex-grow-1 is-justify-content-flex-end\"\n            >\n              {{ $t(\"contract.contractAdditionalInfo\") }}\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class=\"column is-full payment-information-container\">\n        <div class=\"inner-container\">\n          <div class=\"header\">\n            {{ $t(\"contract.paymentInformation\") }}\n          </div>\n          <div class=\"body\">\n            <div class=\"info-section\">\n              <div class=\"info-item\">\n                <div class=\"info-item-name\">\n                  {{ $t(\"contract.billingType\") }}\n                </div>\n                <div class=\"info-item-value\">\n                  {{ contractSummary.paymentInformation.billingType }}\n                </div>\n              </div>\n              <div class=\"info-item\">\n                <div class=\"info-item-name\">\n                  {{ $t(\"contract.paymentType\") }}\n                </div>\n                <div class=\"info-item-value\">\n                  {{ contractSummary.paymentInformation.paymentType }}\n                </div>\n              </div>\n              <div class=\"info-item\">\n                <div class=\"info-item-name\">\n                  {{ $t(\"contract.contractDeliveryType\") }}\n                </div>\n                <div class=\"info-item-value\">\n                  {{ contractSummary.paymentInformation.contractDeliveryType }}\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div v-if=\"!isSubscriptionValid\" class=\"block\">\n      <b-message cy-id=\"message-invalidSubscription\" type=\"is-warning\">\n        {{ $t(\"contract.pleaseFillAllInfo\") }}\n        <div class=\"content\">\n          <ul>\n            <li\n              v-for=\"(incompleteStep, index) in getIncompleteSteps\"\n              :key=\"index\"\n              :cy-id=\"`${incompleteStep}Incomplete`\"\n            >\n              {{ $t(`contract.incompleteStep.${incompleteStep}`) }}\n            </li>\n          </ul>\n        </div>\n      </b-message>\n    </div>\n  </div>\n</template>\n\n<script>\nimport { mapGetters } from \"vuex\";\nimport { ClientType } from \"@/store/subscription/contactInformation/type\";\n\nexport default {\n  name: \"contract-summary\",\n  data() {\n    return {\n      ClientType,\n      tenant: process.env.VUE_APP_TENANT,\n    };\n  },\n  computed: {\n    ...mapGetters(\"subscription\", {\n      isSubscriptionValid: \"isSubscriptionValidForSave\",\n    }),\n    ...mapGetters(\"subscription/contract\", {\n      contractSummary: \"getContractSummary\",\n    }),\n    ...mapGetters(\"subscription/contactInformation\", {\n      isContactInformationStepValid: \"isContactInformationStepValid\",\n      isProfessionalClient: \"isProfessionalClient\",\n      clientType: \"getClientType\",\n    }),\n    ...mapGetters(\"subscription/housing\", {\n      isHousingStepValid: \"isHousingStepValid\",\n    }),\n    ...mapGetters(\"subscription/offer\", {\n      isOfferStepValid: \"isOfferStepValid\",\n    }),\n    ...mapGetters(\"subscription/billing\", {\n      isBillingStepValid: \"isBillingStepValid\",\n    }),\n    ...mapGetters(\"subscription/bankDetails\", {\n      isBankDetailsStepValid: \"isBankDetailsStepValid\",\n    }),\n    getIncompleteSteps() {\n      const incompleteSteps = [];\n      if (!this.isOfferStepValid) {\n        incompleteSteps.push(\"offer\");\n      }\n      if (!this.isContactInformationStepValid) {\n        incompleteSteps.push(\"contactInformation\");\n      }\n      if (!this.isHousingStepValid) {\n        incompleteSteps.push(\"housing\");\n      }\n      if (!this.isBillingStepValid) {\n        incompleteSteps.push(\"billing\");\n      }\n      if (!this.isBankDetailsStepValid) {\n        incompleteSteps.push(\"bankDetails\");\n      }\n      return incompleteSteps;\n    },\n  },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.subscription-summary-container {\n  .client-information-container,\n  .offer-information-container,\n  .payment-information-container {\n    height: auto;\n\n    .inner-container {\n      position: relative;\n      height: 100%;\n      display: flex;\n      flex-direction: column;\n      padding-top: 2.5rem;\n      overflow: hidden;\n\n      .header {\n        position: absolute;\n        top: 0;\n        width: 100%;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        text-align: center;\n        color: $white;\n        background-color: $primary;\n        font-size: 1.3rem;\n        height: 3.5rem;\n        padding: 0 0.75rem;\n        font-weight: 600;\n        border-radius: 1rem;\n      }\n\n      .body {\n        flex-grow: 1;\n        display: flex;\n        flex-direction: column;\n        padding: 0.5rem 1rem;\n        padding-top: 1.25rem;\n        border: 2px solid $primary;\n        border-bottom-right-radius: 1rem;\n        border-bottom-left-radius: 1rem;\n\n        .info-section {\n          flex-grow: 1;\n          display: flex;\n          flex-direction: column;\n          padding: 0.5rem 0;\n        }\n\n        .info-item {\n          display: flex;\n\n          &.is-column {\n            flex-direction: column;\n\n            .info-item-value {\n              margin-left: 0;\n            }\n          }\n\n          .info-item-name {\n            font-style: italic;\n            font-weight: 400;\n          }\n\n          .info-item-value {\n            margin-left: 0.3rem;\n            font-weight: 500;\n          }\n        }\n      }\n    }\n  }\n\n  .offer-information-container {\n    .inner-container {\n      .header {\n        background-color: $grey;\n      }\n\n      .body {\n        border-color: $grey;\n\n        .info-item {\n          flex-grow: 1;\n        }\n      }\n    }\n  }\n}\n\n@include media(\"<tablet\") {\n  .subscription-summary-container {\n    .info-item {\n      flex-direction: column;\n      padding: 0.25rem 0;\n\n      .info-item-value {\n        margin: 0 !important;\n      }\n    }\n  }\n}\n</style>\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ContractSummary.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ContractSummary.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ContractSummary.vue?vue&type=template&id=5383f42d&scoped=true&\"\nimport script from \"./ContractSummary.vue?vue&type=script&lang=js&\"\nexport * from \"./ContractSummary.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ContractSummary.vue?vue&type=style&index=0&id=5383f42d&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"5383f42d\",\n  null\n  \n)\n\nexport default component.exports","<template>\n  <section>\n    <div class=\"container is-fullhd contract-page-container\">\n      <div class=\"columns is-multiline\">\n        <div class=\"column is-full\">\n          <div class=\"block\">\n            <contract-summary />\n          </div>\n          <div v-if=\"!isValidatedEmail\" class=\"content has-text-centered\">\n            <p>{{ $t(\"contract.forFinishContractValidEmail\") }}</p>\n            <b-button\n              :disabled=\"\n                !isSubscriptionValidForSave ||\n                isSaveSubscriptionLoading ||\n                isSendEmailValidationLoading\n              \"\n              :loading=\"\n                isSaveSubscriptionLoading || isSendEmailValidationLoading\n              \"\n              cy-id=\"button-validEmail\"\n              type=\"is-primary\"\n              @click=\"saveFormAndSendMailValidation\"\n              >{{ $t(\"contract.validEmail\") }}\n            </b-button>\n          </div>\n          <template v-else>\n            <div class=\"block\">\n              <b-message\n                class=\"validateEmail-message\"\n                has-icon\n                icon=\"check\"\n                icon-size=\"is-small\"\n                type=\"is-success\"\n              >\n                {{ $t(\"contract.validatedEmailAddress\") }}\n              </b-message>\n            </div>\n            <div class=\"block content\">\n              <p>\n                {{ $t(\"contractSigning.pleaseConfirmReadingConditionOfSale\") }}\n                <a :href=\"getUrlConditionOfSale\" target=\"_blank\">{{\n                  $t(\"contractSigning.conditionOfSale\")\n                }}</a>\n              </p>\n            </div>\n            <div class=\"field\">\n              <b-checkbox\n                :value=\"termsAndConditions\"\n                cy-id=\"checkboxConditionOfSale\"\n                @input=\"setTermsAndConditions\"\n                >{{\n                  $t(\"contractSigning.declareHaveReadConditionOfSaleAndAccept\")\n                }}\n              </b-checkbox>\n            </div>\n            <div class=\"field\">\n              <b-checkbox\n                :value=\"solarPanelsInstalled\"\n                cy-id=\"checkboxSolarPanelsInstalled\"\n                @input=\"setSolarPanelsInstalled\"\n                >{{\n                  $t(\n                    `contractSigning.${tenant}.declareHaveInstalledSolarPanels`\n                  )\n                }}\n              </b-checkbox>\n            </div>\n            <div class=\"block has-text-right\">\n              <b-button\n                :disabled=\"!isSubscriptionValidForSign\"\n                cy-id=\"signButton\"\n                type=\"is-primary\"\n                @click=\"redirectToContractSigning\"\n                >{{ $t(\"contractSigning.signButton\") }}\n              </b-button>\n            </div>\n          </template>\n        </div>\n      </div>\n    </div>\n  </section>\n</template>\n\n<script>\nimport { mapActions, mapGetters, mapMutations } from \"vuex\";\nimport { RouteName } from \"@/store/navigation/type\";\nimport ContractSummary from \"./ContractSummary\";\n\nexport default {\n  name: \"contractPage\",\n  data() {\n    return {\n      tenant: process.env.VUE_APP_TENANT,\n      legalStorageBaseUrl: `${process.env.VUE_APP_AZURE_STORAGE_BASE_URL}/legal`,\n    };\n  },\n  components: { ContractSummary },\n  computed: {\n    ...mapGetters(\"subscription\", {\n      isSubscriptionValidForSave: \"isSubscriptionValidForSave\",\n      isSubscriptionValidForSign: \"isSubscriptionValidForSign\",\n      isSaveSubscriptionLoading: \"isSaveSubscriptionLoading\",\n    }),\n    ...mapGetters(\"subscription/emailValidation\", {\n      isValidatedEmail: \"isValidatedEmail\",\n      isSendEmailValidationLoading: \"isSendEmailValidationLoading\",\n    }),\n    ...mapGetters(\"subscription/contract\", {\n      termsAndConditions: \"getTermsAndConditions\",\n    }),\n    ...mapGetters(\"subscription/contract\", {\n      solarPanelsInstalled: \"getSolarPanelsInstalled\",\n    }),\n    ...mapGetters(\"subscription/contactInformation\", {\n      isProfessionalClient: \"isProfessionalClient\",\n    }),\n\n    getUrlConditionOfSale() {\n      if (this.tenant === \"MYL\") {\n        return \"https://www.mylight-systems.com/fournisseur-producteur-denergie\";\n      } else {\n        return this.isProfessionalClient\n          ? \"https://domuneo.com/energie-stockage/fournisseur-delectricite-verte-pro/conditions-generales-de-vente-pro/\"\n          : \"https://domuneo.com/energie-stockage/fournisseur-delectricite-verte/conditions-generales-de-vente/\";\n      }\n    },\n  },\n  methods: {\n    ...mapMutations(\"subscription/contract\", [\"setTermsAndConditions\"]),\n    ...mapMutations(\"subscription/contract\", [\"setSolarPanelsInstalled\"]),\n    ...mapActions(\"subscription\", [\"saveSubscription\"]),\n    ...mapActions(\"subscription/emailValidation\", [\"sendValidationEmail\"]),\n    redirectToContractSigning() {\n      this.$router.push({ name: RouteName.ContractSigning });\n    },\n    saveFormAndSendMailValidation() {\n      this.saveSubscription()\n        .then((subscriptionId) => {\n          this.sendValidationEmail(subscriptionId)\n            .then(() => {\n              this.$router.push({ name: RouteName.EmailValidationSent });\n            })\n            .catch((error) => {\n              console.error(error);\n            });\n        })\n        .catch((error) => {\n          console.error(error);\n        });\n    },\n  },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.contract-page-container {\n  padding: 0 2rem;\n  margin: auto;\n}\n\n.validateEmail-message :deep(.media-left) {\n  .icon {\n    height: 1.5rem;\n    width: 1.5rem;\n  }\n\n  .mdi:before {\n    font-size: 24px !important;\n  }\n}\n</style>\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./contractPage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./contractPage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./contractPage.vue?vue&type=template&id=6ea0803f&scoped=true&\"\nimport script from \"./contractPage.vue?vue&type=script&lang=js&\"\nexport * from \"./contractPage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./contractPage.vue?vue&type=style&index=0&id=6ea0803f&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"6ea0803f\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"contractActivationPage\"}},[_c('MainLayout',{scopedSlots:_vm._u([{key:\"sidebar\",fn:function(){return [_c('ActivationSteps',{attrs:{\"activationStatus\":_vm.getContractActivationStatus}})]},proxy:true},{key:\"content\",fn:function(){return [_c('section',[_c('div',{staticClass:\"container is-fullhd contract-activation-page-container\"},[_c('div',{staticClass:\"columns\"},[_c('div',{staticClass:\"column is-half-desktop is-full-tablet\"},[_c('div',{staticClass:\"details-info-container\"},[_c('div',{staticClass:\"info-item as-title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"contractActivation.details\"))+\" \")]),_c('div',{staticClass:\"info-item\"},[_c('span',{staticClass:\"info-name\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"contractActivation.familyName\")))]),_c('span',{staticClass:\"info-value\"},[_vm._v(_vm._s(_vm.contractSummary.clientInformation.familyName))])]),_c('div',{staticClass:\"info-item\"},[_c('span',{staticClass:\"info-name\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"contractActivation.firstName\")))]),_c('span',{staticClass:\"info-value\"},[_vm._v(_vm._s(_vm.contractSummary.clientInformation.firstName))])]),_c('div',{staticClass:\"info-item\"},[_c('span',{staticClass:\"info-name\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"contractActivation.address\")))]),_c('span',{staticClass:\"info-value\"},[_vm._v(\" \"+_vm._s(_vm.contractSummary.clientInformation.physicalAddress)+\" \")])]),_c('div',{staticClass:\"info-item\"},[_c('span',{staticClass:\"info-name\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"contractActivation.pdlNumber\")))]),_c('span',{staticClass:\"info-value\"},[_vm._v(_vm._s(_vm.contractSummary.clientInformation.pdlNumber))])])]),_c('div',{staticClass:\"contract-info-container\"},[_c('div',{staticClass:\"info-item as-title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"contractActivation.contract\"))+\" \")]),_c('div',{staticClass:\"info-item\"},[(_vm.isDownloadContractLoading)?_c('span',[_c('span',{staticClass:\"download-contract-button loading\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"contractActivation.contractDownloading\")))])]):_c('span',{staticClass:\"download-contract-button\",attrs:{\"cy-id\":\"contractActivation-downloadContract\"},on:{\"click\":_vm.downloadContract}},[_vm._v(\" \"+_vm._s(_vm.$t(\"contractActivation.contractName\", { contractName: _vm.contractSummary.contractSigningInformation .contractName, })))])])]),_c('div',{staticClass:\"status-info-container\",attrs:{\"cy-id\":`contractActivation-statusInfo-${_vm.getContractActivationStatus}`}},[_c('div',{staticClass:\"info-item as-title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"contractActivation.status\"))+\" \")]),_c('div',{staticClass:\"info-item as-subtitle\"},[_vm._v(\" \"+_vm._s(_vm.getContractActivationStatusTitle)+\" \")]),_c('div',{staticClass:\"info-item content\"},[(_vm.getContractActivationStatusDescriptionBegin)?_c('p',{staticClass:\"has-text-justified\"},[_vm._v(\" \"+_vm._s(_vm.getContractActivationStatusDescriptionBegin)+\" \")]):_vm._e(),(_vm.isPendingActivation)?_c('p',{staticClass:\"activate-contract-button-container has-text-centered\"},[_c('b-button',{attrs:{\"disabled\":_vm.isActivateContractLoading,\"loading\":_vm.isActivateContractLoading,\"cy-id\":\"contractActivation-activateContract\",\"type\":\"is-primary\"},on:{\"click\":_vm.activateContract}},[_vm._v(_vm._s(_vm.$t(\"contractActivation.activateContractButton\"))+\" \")])],1):_vm._e(),(_vm.getContractActivationStatusDescriptionEnd)?_c('p',[_c('b-message',{attrs:{\"type\":\"is-warning\"}},[_vm._v(\" \"+_vm._s(_vm.getContractActivationStatusDescriptionEnd)+\" \")])],1):_vm._e()]),(_vm.isPendingActivation)?_c('div',{staticClass:\"info-item activate-contract-button-container\"}):_vm._e()]),(_vm.tenant === 'DOM')?_c('div',{staticClass:\"additional-info-container\"},[_c('b-message',{attrs:{\"type\":\"is-info\"}},[_c('i18n',{attrs:{\"path\":\"contractActivation.linkToFaq\",\"tag\":\"p\"},scopedSlots:_vm._u([{key:\"link\",fn:function(){return [_c('a',{attrs:{\"href\":\"https://www.domuneo.com/energie-stockage/comprendr-ma-facture-faq/\",\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"contractActivation.faq\"))+\" \")])]},proxy:true}],null,false,904046835)})],1)],1):_vm._e()])])])])]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export const RETRACTION_PERIOD = 14;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-steps',{attrs:{\"has-navigation\":false,\"value\":_vm.activationStatus,\"animated\":\"\",\"vertical\":\"\"}},[_c('b-step-item',{attrs:{\"clickable\":false,\"value\":'SIGNED',\"label\":\"Signé\",\"step\":\"1\"}}),_c('b-step-item',{attrs:{\"clickable\":false,\"value\":'PENDING_ACTIVATION',\"label\":\"Activable\",\"step\":\"2\"}}),_c('b-step-item',{attrs:{\"clickable\":false,\"value\":'ACTIVATION_REQUESTED',\"label\":\"En cours\",\"step\":\"3\"}}),_c('b-step-item',{attrs:{\"clickable\":false,\"value\":'GRID_EXTRACTION_ACTIVATED',\"icon\":\"check-bold\",\"label\":\"En service\",\"step\":\"4\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <b-steps :has-navigation=\"false\" :value=\"activationStatus\" animated vertical>\n    <b-step-item :clickable=\"false\" :value=\"'SIGNED'\" label=\"Signé\" step=\"1\" />\n    <b-step-item\n      :clickable=\"false\"\n      :value=\"'PENDING_ACTIVATION'\"\n      label=\"Activable\"\n      step=\"2\"\n    />\n    <b-step-item\n      :clickable=\"false\"\n      :value=\"'ACTIVATION_REQUESTED'\"\n      label=\"En cours\"\n      step=\"3\"\n    />\n    <b-step-item\n      :clickable=\"false\"\n      :value=\"'GRID_EXTRACTION_ACTIVATED'\"\n      icon=\"check-bold\"\n      label=\"En service\"\n      step=\"4\"\n    />\n  </b-steps>\n</template>\n\n<script>\nexport default {\n  name: \"activationSteps\",\n  props: {\n    activationStatus: String,\n  },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.b-steps :deep(.steps) {\n  margin: 0 auto;\n  width: 100%;\n}\n</style>\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./activationSteps.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./activationSteps.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./activationSteps.vue?vue&type=template&id=7f966734&scoped=true&\"\nimport script from \"./activationSteps.vue?vue&type=script&lang=js&\"\nexport * from \"./activationSteps.vue?vue&type=script&lang=js&\"\nimport style0 from \"./activationSteps.vue?vue&type=style&index=0&id=7f966734&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"7f966734\",\n  null\n  \n)\n\nexport default component.exports","<template>\n  <div id=\"contractActivationPage\">\n    <MainLayout>\n      <template v-slot:sidebar>\n        <ActivationSteps :activationStatus=\"getContractActivationStatus\" />\n      </template>\n      <template v-slot:content>\n        <section>\n          <div class=\"container is-fullhd contract-activation-page-container\">\n            <div class=\"columns\">\n              <div class=\"column is-half-desktop is-full-tablet\">\n                <div class=\"details-info-container\">\n                  <div class=\"info-item as-title\">\n                    {{ $t(\"contractActivation.details\") }}\n                  </div>\n                  <div class=\"info-item\">\n                    <span class=\"info-name\">\n                      {{ $t(\"contractActivation.familyName\") }}</span\n                    >\n                    <span class=\"info-value\">{{\n                      contractSummary.clientInformation.familyName\n                    }}</span>\n                  </div>\n                  <div class=\"info-item\">\n                    <span class=\"info-name\">\n                      {{ $t(\"contractActivation.firstName\") }}</span\n                    >\n                    <span class=\"info-value\">{{\n                      contractSummary.clientInformation.firstName\n                    }}</span>\n                  </div>\n                  <div class=\"info-item\">\n                    <span class=\"info-name\">\n                      {{ $t(\"contractActivation.address\") }}</span\n                    >\n                    <span class=\"info-value\">\n                      {{ contractSummary.clientInformation.physicalAddress }}\n                    </span>\n                  </div>\n                  <div class=\"info-item\">\n                    <span class=\"info-name\">\n                      {{ $t(\"contractActivation.pdlNumber\") }}</span\n                    >\n                    <span class=\"info-value\">{{\n                      contractSummary.clientInformation.pdlNumber\n                    }}</span>\n                  </div>\n                </div>\n                <div class=\"contract-info-container\">\n                  <div class=\"info-item as-title\">\n                    {{ $t(\"contractActivation.contract\") }}\n                  </div>\n                  <div class=\"info-item\">\n                    <span v-if=\"isDownloadContractLoading\">\n                      <span class=\"download-contract-button loading\">\n                        {{ $t(\"contractActivation.contractDownloading\") }}</span\n                      >\n                    </span>\n                    <span\n                      v-else\n                      class=\"download-contract-button\"\n                      cy-id=\"contractActivation-downloadContract\"\n                      @click=\"downloadContract\"\n                    >\n                      {{\n                        $t(\"contractActivation.contractName\", {\n                          contractName:\n                            contractSummary.contractSigningInformation\n                              .contractName,\n                        })\n                      }}</span\n                    >\n                  </div>\n                </div>\n                <div\n                  :cy-id=\"`contractActivation-statusInfo-${getContractActivationStatus}`\"\n                  class=\"status-info-container\"\n                >\n                  <div class=\"info-item as-title\">\n                    {{ $t(\"contractActivation.status\") }}\n                  </div>\n                  <div class=\"info-item as-subtitle\">\n                    {{ getContractActivationStatusTitle }}\n                  </div>\n                  <div class=\"info-item content\">\n                    <p\n                      v-if=\"getContractActivationStatusDescriptionBegin\"\n                      class=\"has-text-justified\"\n                    >\n                      {{ getContractActivationStatusDescriptionBegin }}\n                    </p>\n                    <p\n                      v-if=\"isPendingActivation\"\n                      class=\"activate-contract-button-container has-text-centered\"\n                    >\n                      <b-button\n                        :disabled=\"isActivateContractLoading\"\n                        :loading=\"isActivateContractLoading\"\n                        cy-id=\"contractActivation-activateContract\"\n                        type=\"is-primary\"\n                        @click=\"activateContract\"\n                        >{{ $t(\"contractActivation.activateContractButton\") }}\n                      </b-button>\n                    </p>\n                    <p v-if=\"getContractActivationStatusDescriptionEnd\">\n                      <b-message type=\"is-warning\">\n                        {{ getContractActivationStatusDescriptionEnd }}\n                      </b-message>\n                    </p>\n                  </div>\n                  <div\n                    v-if=\"isPendingActivation\"\n                    class=\"info-item activate-contract-button-container\"\n                  ></div>\n                </div>\n                <div v-if=\"tenant === 'DOM'\" class=\"additional-info-container\">\n                  <b-message type=\"is-info\">\n                    <i18n path=\"contractActivation.linkToFaq\" tag=\"p\">\n                      <template v-slot:link>\n                        <a\n                          href=\"https://www.domuneo.com/energie-stockage/comprendr-ma-facture-faq/\"\n                          target=\"_blank\"\n                        >\n                          {{ $t(\"contractActivation.faq\") }}\n                        </a>\n                      </template>\n                    </i18n>\n                  </b-message>\n                </div>\n              </div>\n            </div>\n          </div>\n        </section>\n      </template>\n    </MainLayout>\n  </div>\n</template>\n\n<script>\nimport { mapActions, mapGetters } from \"vuex\";\nimport { ContractSigningStatus } from \"@/store/subscription/contractSigning/type\";\nimport moment from \"moment\";\nimport { RETRACTION_PERIOD } from \"@/store/subscription/contractActivation/constant\";\nimport MainLayout from \"@/components/layout/MainLayout\";\nimport ActivationSteps from \"@/views/contractActivation/activationSteps\";\n\nexport default {\n  name: \"contract-activation-page\",\n  components: {\n    MainLayout,\n    ActivationSteps,\n  },\n  data() {\n    return {\n      tenant: process.env.VUE_APP_TENANT,\n    };\n  },\n  computed: {\n    ...mapGetters(\"subscription/contract\", {\n      contractSummary: \"getContractSummary\",\n    }),\n    ...mapGetters(\"subscription/contractActivation\", {\n      isActivateContractLoading: \"getActivateContractLoading\",\n      isDownloadContractLoading: \"getDownloadContractLoading\",\n      canReachContractActivationPage: \"canReachContractActivationPage\",\n    }),\n    getContractActivationStatus() {\n      return this.contractSummary.contractSigningInformation\n        .contractSigningStatus;\n    },\n    isSigned() {\n      switch (this.getContractActivationStatus) {\n        case ContractSigningStatus.SIGNED_CONTRACT_DOWNLOAD_FAILED:\n        case ContractSigningStatus.SIGNED_CONTRACT_PERSISTENCE_FAILED:\n        case ContractSigningStatus.CONFIRMATION_EMAIL_FAILED:\n        case ContractSigningStatus.SIGNED:\n          return true;\n        default:\n          return false;\n      }\n    },\n    isActivationRequested() {\n      return (\n        this.getContractActivationStatus ===\n        ContractSigningStatus.ACTIVATION_REQUESTED\n      );\n    },\n    isPendingActivation() {\n      return (\n        this.getContractActivationStatus ===\n        ContractSigningStatus.PENDING_ACTIVATION\n      );\n    },\n    isGridExtractionActivated() {\n      return (\n        this.getContractActivationStatus ===\n        ContractSigningStatus.GRID_EXTRACTION_ACTIVATED\n      );\n    },\n    getOpeningActivationDate() {\n      return moment(\n        this.contractSummary.contractSigningInformation.signatureDate\n      )\n        .add(RETRACTION_PERIOD, \"days\")\n        .format(\"L\");\n    },\n    getActivationDate() {\n      return moment(\n        this.contractSummary.contractSigningInformation.activationDate\n      ).format(\"L\");\n    },\n    getContractActivationStatusTitle() {\n      if (this.isSigned) {\n        return this.$t(`contractActivation.steps.SIGNED.title`);\n      }\n      return this.$t(\n        `contractActivation.steps['${this.getContractActivationStatus}'].title`\n      );\n    },\n    getContractActivationStatusDescriptionBegin() {\n      if (this.isSigned) {\n        return this.$t(\"contractActivation.steps.SIGNED.description\", {\n          openingActivationDate: this.getOpeningActivationDate,\n        });\n      }\n      if (this.isPendingActivation) {\n        return this.$t(\n          \"contractActivation.steps.PENDING_ACTIVATION.beginDescription\"\n        );\n      }\n      if (this.isActivationRequested) {\n        return this.$t(\n          \"contractActivation.steps.ACTIVATION_REQUESTED.description\",\n          {\n            activationDate: this.getActivationDate,\n            gridOperator: this.contractSummary.clientInformation.gridOperator,\n          }\n        );\n      }\n      if (this.isGridExtractionActivated) {\n        const tenant =\n          process.env.VUE_APP_TENANT === \"MYL\"\n            ? this.$t(\"common.mylight150\")\n            : this.$t(\"common.Domuneo\");\n\n        return this.$t(\n          \"contractActivation.steps.GRID_EXTRACTION_ACTIVATED.description\",\n          { tenant }\n        );\n      }\n      return null;\n    },\n    getContractActivationStatusDescriptionEnd() {\n      if (this.isPendingActivation) {\n        return this.$t(\n          \"contractActivation.steps.PENDING_ACTIVATION.endDescription\"\n        );\n      }\n      return null;\n    },\n  },\n  methods: {\n    ...mapActions(\"subscription/contractActivation\", [\n      \"activateContract\",\n      \"downloadContract\",\n    ]),\n  },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n#contractActivationPage {\n  display: grid;\n  width: 100vw;\n  height: 100vh;\n  height: calc(var(--vh, 1vh) * 100);\n  grid-template-columns: 200px 1fr;\n  grid-template-rows: $desktop-height-main-header 0 1fr;\n}\n\n@include media(\"<tablet\") {\n  #contractActivationPage {\n    grid-template-rows: $mobile-height-main-header 60px 1fr;\n  }\n}\n\n.contract-activation-page-container {\n  padding: 0 2rem;\n  margin-left: 0;\n\n  .info-item {\n    font-weight: 400;\n    font-size: 1rem;\n    line-height: 1.75rem;\n    padding-left: 0.5rem;\n\n    &.as-title {\n      font-weight: 500;\n      font-size: 1.25rem;\n      margin-bottom: 0.5rem;\n      padding-left: 0;\n    }\n\n    &.as-subtitle {\n      font-size: 1.15rem;\n      text-decoration: underline;\n      padding: 0.5rem;\n    }\n\n    .info-name {\n      padding-right: 0.25rem;\n    }\n  }\n\n  .details-info-container {\n    margin-bottom: 2rem;\n  }\n\n  .contract-info-container {\n    margin-bottom: 2rem;\n\n    .download-contract-button {\n      text-decoration: underline;\n      cursor: pointer;\n      color: $primary;\n\n      &:hover {\n        color: $black;\n      }\n\n      &.loading {\n        cursor: pointer;\n        text-decoration: none;\n        color: $grey;\n      }\n    }\n  }\n\n  .status-info-container {\n    margin-bottom: 1.5rem;\n\n    .activate-contract-button-container {\n      margin: 1.5rem 0;\n    }\n  }\n}\n</style>\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./contractActivationPage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./contractActivationPage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./contractActivationPage.vue?vue&type=template&id=62739023&scoped=true&\"\nimport script from \"./contractActivationPage.vue?vue&type=script&lang=js&\"\nexport * from \"./contractActivationPage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./contractActivationPage.vue?vue&type=style&index=0&id=62739023&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"62739023\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('FullWidthLayout',{attrs:{\"with-back-button\":true,\"without-padding\":true,\"data-cy\":\"contractSigningPage\"},on:{\"on-go-back\":_vm.redirectToContractPage,\"on-help\":_vm.openHelpModal}},[(_vm.isLoadingYousign)?_c('div',{staticClass:\"container is-fluid contract-signing-process has-text-centered\"},[_c('p',{staticClass:\"contract-signing-title\"},[_vm._v(_vm._s(_vm.contractSigningStatusMessage))]),_c('b-loading',{attrs:{\"active\":_vm.isContractSigningLoading,\"is-full-page\":false}})],1):_vm._e(),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLoadingYousign),expression:\"!isLoadingYousign\"}],attrs:{\"id\":\"iframe-container\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <FullWidthLayout\n    :with-back-button=\"true\"\n    :without-padding=\"true\"\n    data-cy=\"contractSigningPage\"\n    @on-go-back=\"redirectToContractPage\"\n    @on-help=\"openHelpModal\"\n  >\n    <div\n      v-if=\"isLoadingYousign\"\n      class=\"container is-fluid contract-signing-process has-text-centered\"\n    >\n      <p class=\"contract-signing-title\">{{ contractSigningStatusMessage }}</p>\n      <b-loading :active=\"isContractSigningLoading\" :is-full-page=\"false\">\n      </b-loading>\n    </div>\n    <div v-show=\"!isLoadingYousign\" id=\"iframe-container\"></div>\n  </FullWidthLayout>\n</template>\n\n<script>\nimport FullWidthLayout from \"@/components/layout/FullWidthLayout\";\nimport { mapActions, mapGetters } from \"vuex\";\nimport { RouteName } from \"../../store/navigation/type\";\n\nexport default {\n  name: \"ContractSigningPage\",\n  data() {\n    return {\n      helpModalOpen: false,\n      isLoadingYousign: true,\n      yousign: null,\n    };\n  },\n  async created() {\n    this.saveSubscription()\n      .then(async () => {\n        const requestId = this._uid;\n        await this.startContractSigningProcess(requestId);\n      })\n      .catch((error) => {\n        console.error(error);\n        this.stopContractSigningProgressPolling();\n        this.redirectToContractPage();\n      });\n  },\n  components: { FullWidthLayout },\n  computed: {\n    ...mapGetters(\"subscription/contractSigning\", {\n      contractSigningStatusMessage: \"getContractSigningStatusMessage\",\n\n      contractSigningProcessLoading: \"getContractSigningProcessLoading\",\n      contractSigningProgressLoading: \"getContractSigningProgressLoading\",\n\n      isYousignSignatureUrlValid: \"isYousignSignatureUrlValid\",\n      getYousignIframeUrl: \"getYousignIframeUrl\",\n    }),\n    ...mapGetters(\"subscription\", {\n      subscriptionId: \"getSubscriptionId\",\n    }),\n    isContractSigningLoading() {\n      return (\n        this.contractSigningProcessLoading ||\n        this.contractSigningProgressLoading\n      );\n    },\n  },\n  methods: {\n    ...mapActions(\"subscription/contractSigning\", [\n      \"startContractSigningProcess\",\n      \"stopContractSigningProgressPolling\",\n    ]),\n    ...mapActions(\"subscription\", [\"saveSubscription\"]),\n    redirectToContractPage() {\n      this.$router.push({ name: RouteName.Contract });\n    },\n    openHelpModal() {\n      this.helpModalOpen = true;\n    },\n  },\n  watch: {\n    getYousignIframeUrl: function (signatureUrl) {\n      if (!signatureUrl) return;\n      try {\n        const isYousignSandbox =\n          String(process.env.VUE_APP_YOUSIGN_IS_SANDBOX).toLowerCase() ===\n          \"true\";\n        this.yousign = new Yousign({\n          signatureLink: isYousignSandbox\n            ? `${signatureUrl}&disable_domain_validation=true`\n            : signatureUrl,\n          iframeContainerId: \"iframe-container\",\n          isSandbox: isYousignSandbox ? true : false,\n        });\n        this.isLoadingYousign = false;\n\n        const iframe = document.getElementById(\"yousign-iframe\");\n        if (iframe) {\n          iframe.style.width = \"100%\";\n          iframe.style.height = \"100%\";\n        }\n\n        this.yousign.onSuccess(() => {\n          this.$router.push({\n            name: RouteName.ContractActivation,\n            query: { fromYousign: \"true\" },\n          });\n        }, 5000);\n      } catch (err) {\n        this.isLoadingYousign = false;\n      }\n    },\n  },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.contract-signing-process {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  height: 100%;\n  width: 100%;\n\n  .contract-signing-title {\n    font-size: 1.1rem;\n    margin-bottom: 8rem;\n  }\n}\n\n#yousign-iframe {\n  width: 100% !important;\n  height: 100% !important;\n}\n\n#iframe-container {\n  width: 100%;\n  height: 100%; /* Hauteur de la fenêtre visible */\n  position: relative;\n  overflow: hidden;\n}\n\n.example-arrow-icon {\n  vertical-align: top;\n}\n</style>\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./contractSigningPage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./contractSigningPage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./contractSigningPage.vue?vue&type=template&id=321175c6&scoped=true&\"\nimport script from \"./contractSigningPage.vue?vue&type=script&lang=js&\"\nexport * from \"./contractSigningPage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./contractSigningPage.vue?vue&type=style&index=0&id=321175c6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"321175c6\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('FullWidthLayout',[_c('section',[_c('div',{staticClass:\"container is-fluid\"},[_c('div',{staticClass:\"columns is-centered\"},[_c('div',{staticClass:\"column is-half\"},[_c('div',{staticClass:\"block\"},[_c('custom-input',{attrs:{\"disabled\":_vm.oldEmailaddressFieldDisabled,\"label\":_vm.$t('email.oldEmailAddress'),\"value\":_vm.email,\"name\":\"oldEmailAddress\"}}),_c('custom-input',{attrs:{\"label\":_vm.$t('email.newEmailAddress'),\"validation-errors\":_vm.newEmailAddressErrors,\"name\":\"newEmailAddress\"},model:{value:(_vm.newEmailAddress),callback:function ($$v) {_vm.newEmailAddress=$$v},expression:\"newEmailAddress\"}}),_c('custom-input',{attrs:{\"label\":_vm.$t('email.confirmNewEmailAddress'),\"validation-errors\":_vm.confirmNewEmailAddressErrors,\"name\":\"confirmNewEmailAddress\"},model:{value:(_vm.confirmNewEmailAddress),callback:function ($$v) {_vm.confirmNewEmailAddress=$$v},expression:\"confirmNewEmailAddress\"}})],1),_c('div',{staticClass:\"block has-text-centered\"},[_c('b-button',{attrs:{\"disabled\":!_vm.isUpdateEmailIsValid,\"loading\":_vm.isUpdateSubscriptionEmailLoading ||\n                _vm.isSendEmailValidationForUpdateEmailLoading,\"cy-id\":\"modifyEmailAndSendEmailValidation\",\"size\":\"is-medium\",\"type\":\"is-primary\"},on:{\"click\":_vm.modifyEmailAndSendEmailValidation}},[_vm._v(_vm._s(_vm.$t(\"email.modifyEmailAndSendEmailValidation\"))+\" \")])],1),(_vm.updateSubscriptionEmailError)?_c('b-message',{attrs:{\"cy-id\":\"updateSubscriptionEmailError\",\"type\":\"is-danger\"}},[_vm._v(\" \"+_vm._s(_vm.getUpdateErrorMessage)+\" \")]):_vm._e(),(_vm.sendEmailValidationForUpdateEmailError)?_c('b-message',{attrs:{\"cy-id\":\"sendingEmailError\",\"type\":\"is-danger\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"email.errors.sendingEmail\"))+\" \")]):_vm._e()],1)])])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <FullWidthLayout>\n    <section>\n      <div class=\"container is-fluid\">\n        <div class=\"columns is-centered\">\n          <div class=\"column is-half\">\n            <div class=\"block\">\n              <custom-input\n                :disabled=\"oldEmailaddressFieldDisabled\"\n                :label=\"$t('email.oldEmailAddress')\"\n                :value=\"email\"\n                name=\"oldEmailAddress\"\n              />\n              <custom-input\n                v-model=\"newEmailAddress\"\n                :label=\"$t('email.newEmailAddress')\"\n                :validation-errors=\"newEmailAddressErrors\"\n                name=\"newEmailAddress\"\n              />\n              <custom-input\n                v-model=\"confirmNewEmailAddress\"\n                :label=\"$t('email.confirmNewEmailAddress')\"\n                :validation-errors=\"confirmNewEmailAddressErrors\"\n                name=\"confirmNewEmailAddress\"\n              />\n            </div>\n            <div class=\"block has-text-centered\">\n              <b-button\n                :disabled=\"!isUpdateEmailIsValid\"\n                :loading=\"\n                  isUpdateSubscriptionEmailLoading ||\n                  isSendEmailValidationForUpdateEmailLoading\n                \"\n                cy-id=\"modifyEmailAndSendEmailValidation\"\n                size=\"is-medium\"\n                type=\"is-primary\"\n                @click=\"modifyEmailAndSendEmailValidation\"\n                >{{ $t(\"email.modifyEmailAndSendEmailValidation\") }}\n              </b-button>\n            </div>\n            <b-message\n              v-if=\"updateSubscriptionEmailError\"\n              cy-id=\"updateSubscriptionEmailError\"\n              type=\"is-danger\"\n            >\n              {{ getUpdateErrorMessage }}\n            </b-message>\n            <b-message\n              v-if=\"sendEmailValidationForUpdateEmailError\"\n              cy-id=\"sendingEmailError\"\n              type=\"is-danger\"\n            >\n              {{ $t(\"email.errors.sendingEmail\") }}\n            </b-message>\n          </div>\n        </div>\n      </div>\n    </section>\n  </FullWidthLayout>\n</template>\n\n<script>\nimport { RouteName } from \"@/store/navigation/type\";\nimport FullWidthLayout from \"@/components/layout/FullWidthLayout\";\nimport { mapActions, mapGetters } from \"vuex\";\nimport CustomInput from \"@/components/CustomInput\";\nimport { stringValidators } from \"@/store/subscription/validators\";\nimport i18n from \"@/i18n\";\n\nexport default {\n  name: \"EditEmailPage\",\n  components: { CustomInput, FullWidthLayout },\n  data() {\n    return {\n      oldEmailaddressFieldDisabled: true,\n      newEmailAddress: \"\",\n      confirmNewEmailAddress: \"\",\n    };\n  },\n  computed: {\n    ...mapGetters(\"subscription\", {\n      subscriptionId: \"getSubscriptionId\",\n      updateSubscriptionEmailError: \"getUpdateSubscriptionEmailError\",\n      isUpdateSubscriptionEmailLoading: \"isUpdateSubscriptionEmailLoading\",\n    }),\n    ...mapGetters(\"subscription/contactInformation\", {\n      email: \"getEmail\",\n    }),\n    ...mapGetters(\"subscription/emailValidation\", {\n      sendEmailValidationForUpdateEmailError:\n        \"getSendEmailValidationForUpdateEmailError\",\n      isSendEmailValidationForUpdateEmailLoading:\n        \"isSendEmailValidationForUpdateEmailLoading\",\n    }),\n    isNewEmailEmpty() {\n      return stringValidators.isEmpty(this.newEmailAddress);\n    },\n    isNewEmailBadFormat() {\n      return !stringValidators.isEmail(this.newEmailAddress);\n    },\n    isNewEmailValid() {\n      return !this.isNewEmailBadFormat && !this.isNewEmailEmpty;\n    },\n    newEmailAddressErrors() {\n      const errors = [];\n      if (this.isNewEmailEmpty) {\n        errors.push(i18n.t(\"common.formError.fieldMustBeInquired\"));\n      } else if (this.isNewEmailBadFormat) {\n        errors.push(i18n.t(\"common.formError.fieldHasBadFormat\"));\n      }\n      return errors;\n    },\n    isConfirmNewEmailEmpty() {\n      return stringValidators.isEmpty(this.confirmNewEmailAddress);\n    },\n    isConfirmNewEmailBadFormat() {\n      return this.newEmailAddress !== this.confirmNewEmailAddress;\n    },\n    isConfirmNewEmailValid() {\n      return !this.isConfirmNewEmailEmpty && !this.isConfirmNewEmailBadFormat;\n    },\n    confirmNewEmailAddressErrors() {\n      const errors = [];\n      if (this.isConfirmNewEmailEmpty) {\n        errors.push(i18n.t(\"common.formError.fieldMustBeInquired\"));\n      } else if (this.isConfirmNewEmailBadFormat) {\n        errors.push(i18n.t(\"common.formError.fieldHasBadFormat\"));\n      }\n      return errors;\n    },\n    isUpdateEmailIsValid() {\n      return this.isNewEmailValid && this.isConfirmNewEmailValid;\n    },\n    isEmailAlreadyValidated() {\n      if (this.updateSubscriptionEmailError === null) {\n        return false;\n      }\n\n      return this.updateSubscriptionEmailError.some((error) => {\n        return error.code === \"EMAIL_ALREADY_VALIDATED\";\n      });\n    },\n    getUpdateErrorMessage() {\n      if (this.isEmailAlreadyValidated) {\n        return i18n.t(\"email.errors.EMAIL_ALREADY_VALIDATED\");\n      }\n      return i18n.t(\"email.errors.reSendingEmail\");\n    },\n  },\n  methods: {\n    ...mapActions(\"subscription\", [\"updateSubscriptionEmail\"]),\n    ...mapActions(\"subscription/emailValidation\", [\n      \"sendValidationEmailForUpdateEmail\",\n    ]),\n    modifyEmailAndSendEmailValidation() {\n      this.updateSubscriptionEmail(this.newEmailAddress)\n        .then(() => {\n          this.sendValidationEmailForUpdateEmail()\n            .then(() => {\n              this.$router.push({ name: RouteName.EmailValidationSent });\n            })\n            .catch((error) => {\n              console.error(error);\n            });\n        })\n        .catch((error) => {\n          console.error(error);\n        });\n    },\n  },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./editEmailPage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./editEmailPage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./editEmailPage.vue?vue&type=template&id=6bb049f4&scoped=true&\"\nimport script from \"./editEmailPage.vue?vue&type=script&lang=js&\"\nexport * from \"./editEmailPage.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"6bb049f4\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('FullWidthLayout',[_c('section',[_c('div',{staticClass:\"container is-fluid has-text-centered\"},[_c('div',{staticClass:\"columns is-centered\"},[_c('div',{staticClass:\"column is-half\"},[_c('div',{staticClass:\"block\"},[_c('p',[_vm._v(\" \"+_vm._s(_vm.$t(\"email.validationEmailWillBeSend\", { email: _vm.email }))+\" \")])]),_c('div',{staticClass:\"block\"},[_c('b-button',{attrs:{\"cy-id\":\"button-resendEmail\",\"size\":\"is-medium\",\"type\":\"is-primary\"},on:{\"click\":_vm.reSendValidationEmail}},[_vm._v(_vm._s(_vm.$t(\"email.resendEmail\"))+\" \")])],1),(_vm.reSendEmailValidationSuccess)?_c('div',{staticClass:\"block\"},[_c('b-message',{attrs:{\"cy-id\":\"success-resend-email-message\",\"type\":\"is-success\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"email.successes.reSendingEmail\"))+\" \")])],1):_vm._e(),(_vm.reSendEmailValidationError)?_c('div',{staticClass:\"block\"},[_c('b-message',{attrs:{\"cy-id\":\"error-resend-email-message\",\"type\":\"is-danger\"}},[_vm._v(\" \"+_vm._s(_vm.getReSendErrorMessage)+\" \")])],1):_vm._e(),_c('div',{staticClass:\"block\"},[_c('b-button',{attrs:{\"cy-id\":\"button-modifyEmail\",\"size\":\"is-medium\",\"type\":\"is-primary\"},on:{\"click\":_vm.modifyEmail}},[_vm._v(_vm._s(_vm.$t(\"email.modifyEmail\"))+\" \")])],1)])])])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { IRetryPolicy, RetryContext } from \"./IRetryPolicy\";\r\n\r\n// 0, 2, 10, 30 second delays before reconnect attempts.\r\nconst DEFAULT_RETRY_DELAYS_IN_MILLISECONDS = [0, 2000, 10000, 30000, null];\r\n\r\n/** @private */\r\nexport class DefaultReconnectPolicy implements IRetryPolicy {\r\n    private readonly _retryDelays: (number | null)[];\r\n\r\n    constructor(retryDelays?: number[]) {\r\n        this._retryDelays = retryDelays !== undefined ? [...retryDelays, null] : DEFAULT_RETRY_DELAYS_IN_MILLISECONDS;\r\n    }\r\n\r\n    public nextRetryDelayInMilliseconds(retryContext: RetryContext): number | null {\r\n        return this._retryDelays[retryContext.previousRetryCount];\r\n    }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// These values are designed to match the ASP.NET Log Levels since that's the pattern we're emulating here.\r\n/** Indicates the severity of a log message.\r\n *\r\n * Log Levels are ordered in increasing severity. So `Debug` is more severe than `Trace`, etc.\r\n */\r\nexport enum LogLevel {\r\n    /** Log level for very low severity diagnostic messages. */\r\n    Trace = 0,\r\n    /** Log level for low severity diagnostic messages. */\r\n    Debug = 1,\r\n    /** Log level for informational diagnostic messages. */\r\n    Information = 2,\r\n    /** Log level for diagnostic messages that indicate a non-fatal problem. */\r\n    Warning = 3,\r\n    /** Log level for diagnostic messages that indicate a failure in the current operation. */\r\n    Error = 4,\r\n    /** Log level for diagnostic messages that indicate a failure that will terminate the entire application. */\r\n    Critical = 5,\r\n    /** The highest possible log level. Used when configuring logging to indicate that no log messages should be emitted. */\r\n    None = 6,\r\n}\r\n\r\n/** An abstraction that provides a sink for diagnostic messages. */\r\nexport interface ILogger {\r\n    /** Called by the framework to emit a diagnostic message.\r\n     *\r\n     * @param {LogLevel} logLevel The severity level of the message.\r\n     * @param {string} message The message.\r\n     */\r\n    log(logLevel: LogLevel, message: string): void;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HttpTransportType } from \"./ITransport\";\r\n\r\n/** Error thrown when an HTTP request fails. */\r\nexport class HttpError extends Error {\r\n    // @ts-ignore: Intentionally unused.\r\n    // eslint-disable-next-line @typescript-eslint/naming-convention\r\n    private __proto__: Error;\r\n\r\n    /** The HTTP status code represented by this error. */\r\n    public statusCode: number;\r\n\r\n    /** Constructs a new instance of {@link @microsoft/signalr.HttpError}.\r\n     *\r\n     * @param {string} errorMessage A descriptive error message.\r\n     * @param {number} statusCode The HTTP status code represented by this error.\r\n     */\r\n    constructor(errorMessage: string, statusCode: number) {\r\n        const trueProto = new.target.prototype;\r\n        super(`${errorMessage}: Status code '${statusCode}'`);\r\n        this.statusCode = statusCode;\r\n\r\n        // Workaround issue in Typescript compiler\r\n        // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n        this.__proto__ = trueProto;\r\n    }\r\n}\r\n\r\n/** Error thrown when a timeout elapses. */\r\nexport class TimeoutError extends Error {\r\n    // @ts-ignore: Intentionally unused.\r\n    // eslint-disable-next-line @typescript-eslint/naming-convention\r\n    private __proto__: Error;\r\n\r\n    /** Constructs a new instance of {@link @microsoft/signalr.TimeoutError}.\r\n     *\r\n     * @param {string} errorMessage A descriptive error message.\r\n     */\r\n    constructor(errorMessage: string = \"A timeout occurred.\") {\r\n        const trueProto = new.target.prototype;\r\n        super(errorMessage);\r\n\r\n        // Workaround issue in Typescript compiler\r\n        // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n        this.__proto__ = trueProto;\r\n    }\r\n}\r\n\r\n/** Error thrown when an action is aborted. */\r\nexport class AbortError extends Error {\r\n    // @ts-ignore: Intentionally unused.\r\n    // eslint-disable-next-line @typescript-eslint/naming-convention\r\n    private __proto__: Error;\r\n\r\n    /** Constructs a new instance of {@link AbortError}.\r\n     *\r\n     * @param {string} errorMessage A descriptive error message.\r\n     */\r\n    constructor(errorMessage: string = \"An abort occurred.\") {\r\n        const trueProto = new.target.prototype;\r\n        super(errorMessage);\r\n\r\n        // Workaround issue in Typescript compiler\r\n        // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n        this.__proto__ = trueProto;\r\n    }\r\n}\r\n\r\n/** Error thrown when the selected transport is unsupported by the browser. */\r\n/** @private */\r\nexport class UnsupportedTransportError extends Error {\r\n    // @ts-ignore: Intentionally unused.\r\n    // eslint-disable-next-line @typescript-eslint/naming-convention\r\n    private __proto__: Error;\r\n\r\n    /** The {@link @microsoft/signalr.HttpTransportType} this error occured on. */\r\n    public transport: HttpTransportType;\r\n\r\n    /** The type name of this error. */\r\n    public errorType: string;\r\n\r\n    /** Constructs a new instance of {@link @microsoft/signalr.UnsupportedTransportError}.\r\n     *\r\n     * @param {string} message A descriptive error message.\r\n     * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occured on.\r\n     */\r\n    constructor(message: string, transport: HttpTransportType) {\r\n        const trueProto = new.target.prototype;\r\n        super(message);\r\n        this.transport = transport;\r\n        this.errorType = 'UnsupportedTransportError';\r\n\r\n        // Workaround issue in Typescript compiler\r\n        // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n        this.__proto__ = trueProto;\r\n    }\r\n}\r\n\r\n/** Error thrown when the selected transport is disabled by the browser. */\r\n/** @private */\r\nexport class DisabledTransportError extends Error {\r\n    // @ts-ignore: Intentionally unused.\r\n    // eslint-disable-next-line @typescript-eslint/naming-convention\r\n    private __proto__: Error;\r\n\r\n    /** The {@link @microsoft/signalr.HttpTransportType} this error occured on. */\r\n    public transport: HttpTransportType;\r\n\r\n    /** The type name of this error. */\r\n    public errorType: string;\r\n\r\n    /** Constructs a new instance of {@link @microsoft/signalr.DisabledTransportError}.\r\n     *\r\n     * @param {string} message A descriptive error message.\r\n     * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occured on.\r\n     */\r\n    constructor(message: string, transport: HttpTransportType) {\r\n        const trueProto = new.target.prototype;\r\n        super(message);\r\n        this.transport = transport;\r\n        this.errorType = 'DisabledTransportError';\r\n\r\n        // Workaround issue in Typescript compiler\r\n        // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n        this.__proto__ = trueProto;\r\n    }\r\n}\r\n\r\n/** Error thrown when the selected transport cannot be started. */\r\n/** @private */\r\nexport class FailedToStartTransportError extends Error {\r\n    // @ts-ignore: Intentionally unused.\r\n    // eslint-disable-next-line @typescript-eslint/naming-convention\r\n    private __proto__: Error;\r\n\r\n    /** The {@link @microsoft/signalr.HttpTransportType} this error occured on. */\r\n    public transport: HttpTransportType;\r\n\r\n    /** The type name of this error. */\r\n    public errorType: string;\r\n\r\n    /** Constructs a new instance of {@link @microsoft/signalr.FailedToStartTransportError}.\r\n     *\r\n     * @param {string} message A descriptive error message.\r\n     * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occured on.\r\n     */\r\n    constructor(message: string, transport: HttpTransportType) {\r\n        const trueProto = new.target.prototype;\r\n        super(message);\r\n        this.transport = transport;\r\n        this.errorType = 'FailedToStartTransportError';\r\n\r\n        // Workaround issue in Typescript compiler\r\n        // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n        this.__proto__ = trueProto;\r\n    }\r\n}\r\n\r\n/** Error thrown when the negotiation with the server failed to complete. */\r\n/** @private */\r\nexport class FailedToNegotiateWithServerError extends Error {\r\n    // @ts-ignore: Intentionally unused.\r\n    // eslint-disable-next-line @typescript-eslint/naming-convention\r\n    private __proto__: Error;\r\n\r\n    /** The type name of this error. */\r\n    public errorType: string;\r\n\r\n    /** Constructs a new instance of {@link @microsoft/signalr.FailedToNegotiateWithServerError}.\r\n     *\r\n     * @param {string} message A descriptive error message.\r\n     */\r\n    constructor(message: string) {\r\n        const trueProto = new.target.prototype;\r\n        super(message);\r\n        this.errorType = 'FailedToNegotiateWithServerError';\r\n\r\n        // Workaround issue in Typescript compiler\r\n        // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n        this.__proto__ = trueProto;\r\n    }\r\n}\r\n\r\n/** Error thrown when multiple errors have occured. */\r\n/** @private */\r\nexport class AggregateErrors extends Error {\r\n    // @ts-ignore: Intentionally unused.\r\n    // eslint-disable-next-line @typescript-eslint/naming-convention\r\n    private __proto__: Error;\r\n\r\n    /** The collection of errors this error is aggregating. */\r\n    public innerErrors: Error[];\r\n\r\n    /** Constructs a new instance of {@link @microsoft/signalr.AggregateErrors}.\r\n     *\r\n     * @param {string} message A descriptive error message.\r\n     * @param {Error[]} innerErrors The collection of errors this error is aggregating.\r\n     */\r\n    constructor(message: string, innerErrors: Error[]) {\r\n        const trueProto = new.target.prototype;\r\n        super(message);\r\n\r\n        this.innerErrors = innerErrors;\r\n\r\n        // Workaround issue in Typescript compiler\r\n        // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n        this.__proto__ = trueProto;\r\n    }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { AbortSignal } from \"./AbortController\";\r\nimport { MessageHeaders } from \"./IHubProtocol\";\r\n\r\n/** Represents an HTTP request. */\r\nexport interface HttpRequest {\r\n    /** The HTTP method to use for the request. */\r\n    method?: string;\r\n\r\n    /** The URL for the request. */\r\n    url?: string;\r\n\r\n    /** The body content for the request. May be a string or an ArrayBuffer (for binary data). */\r\n    content?: string | ArrayBuffer;\r\n\r\n    /** An object describing headers to apply to the request. */\r\n    headers?: MessageHeaders;\r\n\r\n    /** The XMLHttpRequestResponseType to apply to the request. */\r\n    responseType?: XMLHttpRequestResponseType;\r\n\r\n    /** An AbortSignal that can be monitored for cancellation. */\r\n    abortSignal?: AbortSignal;\r\n\r\n    /** The time to wait for the request to complete before throwing a TimeoutError. Measured in milliseconds. */\r\n    timeout?: number;\r\n\r\n    /** This controls whether credentials such as cookies are sent in cross-site requests. */\r\n    withCredentials?: boolean;\r\n}\r\n\r\n/** Represents an HTTP response. */\r\nexport class HttpResponse {\r\n    /** Constructs a new instance of {@link @microsoft/signalr.HttpResponse} with the specified status code.\r\n     *\r\n     * @param {number} statusCode The status code of the response.\r\n     */\r\n    constructor(statusCode: number);\r\n\r\n    /** Constructs a new instance of {@link @microsoft/signalr.HttpResponse} with the specified status code and message.\r\n     *\r\n     * @param {number} statusCode The status code of the response.\r\n     * @param {string} statusText The status message of the response.\r\n     */\r\n    constructor(statusCode: number, statusText: string);\r\n\r\n    /** Constructs a new instance of {@link @microsoft/signalr.HttpResponse} with the specified status code, message and string content.\r\n     *\r\n     * @param {number} statusCode The status code of the response.\r\n     * @param {string} statusText The status message of the response.\r\n     * @param {string} content The content of the response.\r\n     */\r\n    constructor(statusCode: number, statusText: string, content: string);\r\n\r\n    /** Constructs a new instance of {@link @microsoft/signalr.HttpResponse} with the specified status code, message and binary content.\r\n     *\r\n     * @param {number} statusCode The status code of the response.\r\n     * @param {string} statusText The status message of the response.\r\n     * @param {ArrayBuffer} content The content of the response.\r\n     */\r\n    constructor(statusCode: number, statusText: string, content: ArrayBuffer);\r\n\r\n    /** Constructs a new instance of {@link @microsoft/signalr.HttpResponse} with the specified status code, message and binary content.\r\n     *\r\n     * @param {number} statusCode The status code of the response.\r\n     * @param {string} statusText The status message of the response.\r\n     * @param {string | ArrayBuffer} content The content of the response.\r\n     */\r\n    constructor(statusCode: number, statusText: string, content: string | ArrayBuffer);\r\n    constructor(\r\n        public readonly statusCode: number,\r\n        public readonly statusText?: string,\r\n        public readonly content?: string | ArrayBuffer) {\r\n    }\r\n}\r\n\r\n/** Abstraction over an HTTP client.\r\n *\r\n * This class provides an abstraction over an HTTP client so that a different implementation can be provided on different platforms.\r\n */\r\nexport abstract class HttpClient {\r\n    /** Issues an HTTP GET request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n     *\r\n     * @param {string} url The URL for the request.\r\n     * @returns {Promise<HttpResponse>} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n     */\r\n    public get(url: string): Promise<HttpResponse>;\r\n\r\n    /** Issues an HTTP GET request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n     *\r\n     * @param {string} url The URL for the request.\r\n     * @param {HttpRequest} options Additional options to configure the request. The 'url' field in this object will be overridden by the url parameter.\r\n     * @returns {Promise<HttpResponse>} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n     */\r\n    public get(url: string, options: HttpRequest): Promise<HttpResponse>;\r\n    public get(url: string, options?: HttpRequest): Promise<HttpResponse> {\r\n        return this.send({\r\n            ...options,\r\n            method: \"GET\",\r\n            url,\r\n        });\r\n    }\r\n\r\n    /** Issues an HTTP POST request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n     *\r\n     * @param {string} url The URL for the request.\r\n     * @returns {Promise<HttpResponse>} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n     */\r\n    public post(url: string): Promise<HttpResponse>;\r\n\r\n    /** Issues an HTTP POST request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n     *\r\n     * @param {string} url The URL for the request.\r\n     * @param {HttpRequest} options Additional options to configure the request. The 'url' field in this object will be overridden by the url parameter.\r\n     * @returns {Promise<HttpResponse>} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n     */\r\n    public post(url: string, options: HttpRequest): Promise<HttpResponse>;\r\n    public post(url: string, options?: HttpRequest): Promise<HttpResponse> {\r\n        return this.send({\r\n            ...options,\r\n            method: \"POST\",\r\n            url,\r\n        });\r\n    }\r\n\r\n    /** Issues an HTTP DELETE request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n     *\r\n     * @param {string} url The URL for the request.\r\n     * @returns {Promise<HttpResponse>} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n     */\r\n    public delete(url: string): Promise<HttpResponse>;\r\n\r\n    /** Issues an HTTP DELETE request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n     *\r\n     * @param {string} url The URL for the request.\r\n     * @param {HttpRequest} options Additional options to configure the request. The 'url' field in this object will be overridden by the url parameter.\r\n     * @returns {Promise<HttpResponse>} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n     */\r\n    public delete(url: string, options: HttpRequest): Promise<HttpResponse>;\r\n    public delete(url: string, options?: HttpRequest): Promise<HttpResponse> {\r\n        return this.send({\r\n            ...options,\r\n            method: \"DELETE\",\r\n            url,\r\n        });\r\n    }\r\n\r\n    /** Issues an HTTP request to the specified URL, returning a {@link Promise} that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n     *\r\n     * @param {HttpRequest} request An {@link @microsoft/signalr.HttpRequest} describing the request to send.\r\n     * @returns {Promise<HttpResponse>} A Promise that resolves with an HttpResponse describing the response, or rejects with an Error indicating a failure.\r\n     */\r\n    public abstract send(request: HttpRequest): Promise<HttpResponse>;\r\n\r\n    /** Gets all cookies that apply to the specified URL.\r\n     *\r\n     * @param url The URL that the cookies are valid for.\r\n     * @returns {string} A string containing all the key-value cookie pairs for the specified URL.\r\n     */\r\n    // @ts-ignore\r\n    public getCookieString(url: string): string {\r\n        return \"\";\r\n    }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\n\r\n/** A logger that does nothing when log messages are sent to it. */\r\nexport class NullLogger implements ILogger {\r\n    /** The singleton instance of the {@link @microsoft/signalr.NullLogger}. */\r\n    public static instance: ILogger = new NullLogger();\r\n\r\n    private constructor() {}\r\n\r\n    /** @inheritDoc */\r\n    // eslint-disable-next-line\r\n    public log(_logLevel: LogLevel, _message: string): void {\r\n    }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { IStreamSubscriber, ISubscription } from \"./Stream\";\r\nimport { Subject } from \"./Subject\";\r\nimport { IHttpConnectionOptions } from \"./IHttpConnectionOptions\";\r\n\r\n// Version token that will be replaced by the prepack command\r\n/** The version of the SignalR client. */\r\n\r\nexport const VERSION: string = \"0.0.0-DEV_BUILD\";\r\n/** @private */\r\nexport class Arg {\r\n    public static isRequired(val: any, name: string): void {\r\n        if (val === null || val === undefined) {\r\n            throw new Error(`The '${name}' argument is required.`);\r\n        }\r\n    }\r\n    public static isNotEmpty(val: string, name: string): void {\r\n        if (!val || val.match(/^\\s*$/)) {\r\n            throw new Error(`The '${name}' argument should not be empty.`);\r\n        }\r\n    }\r\n\r\n    public static isIn(val: any, values: any, name: string): void {\r\n        // TypeScript enums have keys for **both** the name and the value of each enum member on the type itself.\r\n        if (!(val in values)) {\r\n            throw new Error(`Unknown ${name} value: ${val}.`);\r\n        }\r\n    }\r\n}\r\n\r\n/** @private */\r\nexport class Platform {\r\n    // react-native has a window but no document so we should check both\r\n    public static get isBrowser(): boolean {\r\n        return typeof window === \"object\" && typeof window.document === \"object\";\r\n    }\r\n\r\n    // WebWorkers don't have a window object so the isBrowser check would fail\r\n    public static get isWebWorker(): boolean {\r\n        return typeof self === \"object\" && \"importScripts\" in self;\r\n    }\r\n\r\n    // react-native has a window but no document\r\n    static get isReactNative(): boolean {\r\n        return typeof window === \"object\" && typeof window.document === \"undefined\";\r\n    }\r\n\r\n    // Node apps shouldn't have a window object, but WebWorkers don't either\r\n    // so we need to check for both WebWorker and window\r\n    public static get isNode(): boolean {\r\n        return !this.isBrowser && !this.isWebWorker && !this.isReactNative;\r\n    }\r\n}\r\n\r\n/** @private */\r\nexport function getDataDetail(data: any, includeContent: boolean): string {\r\n    let detail = \"\";\r\n    if (isArrayBuffer(data)) {\r\n        detail = `Binary data of length ${data.byteLength}`;\r\n        if (includeContent) {\r\n            detail += `. Content: '${formatArrayBuffer(data)}'`;\r\n        }\r\n    } else if (typeof data === \"string\") {\r\n        detail = `String data of length ${data.length}`;\r\n        if (includeContent) {\r\n            detail += `. Content: '${data}'`;\r\n        }\r\n    }\r\n    return detail;\r\n}\r\n\r\n/** @private */\r\nexport function formatArrayBuffer(data: ArrayBuffer): string {\r\n    const view = new Uint8Array(data);\r\n\r\n    // Uint8Array.map only supports returning another Uint8Array?\r\n    let str = \"\";\r\n    view.forEach((num) => {\r\n        const pad = num < 16 ? \"0\" : \"\";\r\n        str += `0x${pad}${num.toString(16)} `;\r\n    });\r\n\r\n    // Trim of trailing space.\r\n    return str.substr(0, str.length - 1);\r\n}\r\n\r\n// Also in signalr-protocol-msgpack/Utils.ts\r\n/** @private */\r\nexport function isArrayBuffer(val: any): val is ArrayBuffer {\r\n    return val && typeof ArrayBuffer !== \"undefined\" &&\r\n        (val instanceof ArrayBuffer ||\r\n            // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof\r\n            (val.constructor && val.constructor.name === \"ArrayBuffer\"));\r\n}\r\n\r\n/** @private */\r\nexport async function sendMessage(logger: ILogger, transportName: string, httpClient: HttpClient, url: string, accessTokenFactory: (() => string | Promise<string>) | undefined,\r\n                                  content: string | ArrayBuffer, options: IHttpConnectionOptions): Promise<void> {\r\n    let headers: {[k: string]: string} = {};\r\n    if (accessTokenFactory) {\r\n        const token = await accessTokenFactory();\r\n        if (token) {\r\n            headers = {\r\n                [\"Authorization\"]: `Bearer ${token}`,\r\n            };\r\n        }\r\n    }\r\n\r\n    const [name, value] = getUserAgentHeader();\r\n    headers[name] = value;\r\n\r\n    logger.log(LogLevel.Trace, `(${transportName} transport) sending data. ${getDataDetail(content, options.logMessageContent!)}.`);\r\n\r\n    const responseType = isArrayBuffer(content) ? \"arraybuffer\" : \"text\";\r\n    const response = await httpClient.post(url, {\r\n        content,\r\n        headers: { ...headers, ...options.headers},\r\n        responseType,\r\n        timeout: options.timeout,\r\n        withCredentials: options.withCredentials,\r\n    });\r\n\r\n    logger.log(LogLevel.Trace, `(${transportName} transport) request complete. Response status: ${response.statusCode}.`);\r\n}\r\n\r\n/** @private */\r\nexport function createLogger(logger?: ILogger | LogLevel): ILogger {\r\n    if (logger === undefined) {\r\n        return new ConsoleLogger(LogLevel.Information);\r\n    }\r\n\r\n    if (logger === null) {\r\n        return NullLogger.instance;\r\n    }\r\n\r\n    if ((logger as ILogger).log !== undefined) {\r\n        return logger as ILogger;\r\n    }\r\n\r\n    return new ConsoleLogger(logger as LogLevel);\r\n}\r\n\r\n/** @private */\r\nexport class SubjectSubscription<T> implements ISubscription<T> {\r\n    private _subject: Subject<T>;\r\n    private _observer: IStreamSubscriber<T>;\r\n\r\n    constructor(subject: Subject<T>, observer: IStreamSubscriber<T>) {\r\n        this._subject = subject;\r\n        this._observer = observer;\r\n    }\r\n\r\n    public dispose(): void {\r\n        const index: number = this._subject.observers.indexOf(this._observer);\r\n        if (index > -1) {\r\n            this._subject.observers.splice(index, 1);\r\n        }\r\n\r\n        if (this._subject.observers.length === 0 && this._subject.cancelCallback) {\r\n            this._subject.cancelCallback().catch((_) => { });\r\n        }\r\n    }\r\n}\r\n\r\n/** @private */\r\nexport class ConsoleLogger implements ILogger {\r\n    private readonly _minLevel: LogLevel;\r\n\r\n    // Public for testing purposes.\r\n    public out: {\r\n        error(message: any): void,\r\n        warn(message: any): void,\r\n        info(message: any): void,\r\n        log(message: any): void,\r\n    };\r\n\r\n    constructor(minimumLogLevel: LogLevel) {\r\n        this._minLevel = minimumLogLevel;\r\n        this.out = console;\r\n    }\r\n\r\n    public log(logLevel: LogLevel, message: string): void {\r\n        if (logLevel >= this._minLevel) {\r\n            const msg = `[${new Date().toISOString()}] ${LogLevel[logLevel]}: ${message}`;\r\n            switch (logLevel) {\r\n                case LogLevel.Critical:\r\n                case LogLevel.Error:\r\n                    this.out.error(msg);\r\n                    break;\r\n                case LogLevel.Warning:\r\n                    this.out.warn(msg);\r\n                    break;\r\n                case LogLevel.Information:\r\n                    this.out.info(msg);\r\n                    break;\r\n                default:\r\n                    // console.debug only goes to attached debuggers in Node, so we use console.log for Trace and Debug\r\n                    this.out.log(msg);\r\n                    break;\r\n            }\r\n        }\r\n    }\r\n}\r\n\r\n/** @private */\r\nexport function getUserAgentHeader(): [string, string] {\r\n    let userAgentHeaderName = \"X-SignalR-User-Agent\";\r\n    if (Platform.isNode) {\r\n        userAgentHeaderName = \"User-Agent\";\r\n    }\r\n    return [ userAgentHeaderName, constructUserAgent(VERSION, getOsName(), getRuntime(), getRuntimeVersion()) ];\r\n}\r\n\r\n/** @private */\r\nexport function constructUserAgent(version: string, os: string, runtime: string, runtimeVersion: string | undefined): string {\r\n    // Microsoft SignalR/[Version] ([Detailed Version]; [Operating System]; [Runtime]; [Runtime Version])\r\n    let userAgent: string = \"Microsoft SignalR/\";\r\n\r\n    const majorAndMinor = version.split(\".\");\r\n    userAgent += `${majorAndMinor[0]}.${majorAndMinor[1]}`;\r\n    userAgent += ` (${version}; `;\r\n\r\n    if (os && os !== \"\") {\r\n        userAgent += `${os}; `;\r\n    } else {\r\n        userAgent += \"Unknown OS; \";\r\n    }\r\n\r\n    userAgent += `${runtime}`;\r\n\r\n    if (runtimeVersion) {\r\n        userAgent += `; ${runtimeVersion}`;\r\n    } else {\r\n        userAgent += \"; Unknown Runtime Version\";\r\n    }\r\n\r\n    userAgent += \")\";\r\n    return userAgent;\r\n}\r\n\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getOsName(): string {\r\n    if (Platform.isNode) {\r\n        switch (process.platform) {\r\n            case \"win32\":\r\n                return \"Windows NT\";\r\n            case \"darwin\":\r\n                return \"macOS\";\r\n            case \"linux\":\r\n                return \"Linux\";\r\n            default:\r\n                return process.platform;\r\n        }\r\n    } else {\r\n        return \"\";\r\n    }\r\n}\r\n\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getRuntimeVersion(): string | undefined {\r\n    if (Platform.isNode) {\r\n        return process.versions.node;\r\n    }\r\n    return undefined;\r\n}\r\n\r\nfunction getRuntime(): string {\r\n    if (Platform.isNode) {\r\n        return \"NodeJS\";\r\n    } else {\r\n        return \"Browser\";\r\n    }\r\n}\r\n\r\n/** @private */\r\nexport function getErrorString(e: any): string {\r\n    if (e.stack) {\r\n        return e.stack;\r\n    } else if (e.message) {\r\n        return e.message;\r\n    }\r\n    return `${e}`;\r\n}\r\n\r\n/** @private */\r\nexport function getGlobalThis(): unknown {\r\n    // globalThis is semi-new and not available in Node until v12\r\n    if (typeof globalThis !== \"undefined\") {\r\n        return globalThis;\r\n    }\r\n    if (typeof self !== \"undefined\") {\r\n        return self;\r\n    }\r\n    if (typeof window !== \"undefined\") {\r\n        return window;\r\n    }\r\n    if (typeof global !== \"undefined\") {\r\n        return global;\r\n    }\r\n    throw new Error(\"could not find global\");\r\n}","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// @ts-ignore: This will be removed from built files and is here to make the types available during dev work\r\nimport { CookieJar } from \"@types/tough-cookie\";\r\n\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpRequest, HttpResponse } from \"./HttpClient\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { Platform, getGlobalThis } from \"./Utils\";\r\n\r\nexport class FetchHttpClient extends HttpClient {\r\n    private readonly _abortControllerType: { prototype: AbortController, new(): AbortController };\r\n    private readonly _fetchType: (input: RequestInfo, init?: RequestInit) => Promise<Response>;\r\n    private readonly _jar?: CookieJar;\r\n\r\n    private readonly _logger: ILogger;\r\n\r\n    public constructor(logger: ILogger) {\r\n        super();\r\n        this._logger = logger;\r\n\r\n        if (typeof fetch === \"undefined\") {\r\n            // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n            // @ts-ignore: TS doesn't know about these names\r\n            const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n\r\n            // Cookies aren't automatically handled in Node so we need to add a CookieJar to preserve cookies across requests\r\n            this._jar = new (requireFunc(\"tough-cookie\")).CookieJar();\r\n            this._fetchType = requireFunc(\"node-fetch\");\r\n\r\n            // node-fetch doesn't have a nice API for getting and setting cookies\r\n            // fetch-cookie will wrap a fetch implementation with a default CookieJar or a provided one\r\n            this._fetchType = requireFunc(\"fetch-cookie\")(this._fetchType, this._jar);\r\n        } else {\r\n            this._fetchType = fetch.bind(getGlobalThis());\r\n        }\r\n        if (typeof AbortController === \"undefined\") {\r\n            // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n            // @ts-ignore: TS doesn't know about these names\r\n            const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n\r\n            // Node needs EventListener methods on AbortController which our custom polyfill doesn't provide\r\n            this._abortControllerType = requireFunc(\"abort-controller\");\r\n        } else {\r\n            this._abortControllerType = AbortController;\r\n        }\r\n    }\r\n\r\n    /** @inheritDoc */\r\n    public async send(request: HttpRequest): Promise<HttpResponse> {\r\n        // Check that abort was not signaled before calling send\r\n        if (request.abortSignal && request.abortSignal.aborted) {\r\n            throw new AbortError();\r\n        }\r\n\r\n        if (!request.method) {\r\n            throw new Error(\"No method defined.\");\r\n        }\r\n        if (!request.url) {\r\n            throw new Error(\"No url defined.\");\r\n        }\r\n\r\n        const abortController = new this._abortControllerType();\r\n\r\n        let error: any;\r\n        // Hook our abortSignal into the abort controller\r\n        if (request.abortSignal) {\r\n            request.abortSignal.onabort = () => {\r\n                abortController.abort();\r\n                error = new AbortError();\r\n            };\r\n        }\r\n\r\n        // If a timeout has been passed in, setup a timeout to call abort\r\n        // Type needs to be any to fit window.setTimeout and NodeJS.setTimeout\r\n        let timeoutId: any = null;\r\n        if (request.timeout) {\r\n            const msTimeout = request.timeout!;\r\n            timeoutId = setTimeout(() => {\r\n                abortController.abort();\r\n                this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n                error = new TimeoutError();\r\n            }, msTimeout);\r\n        }\r\n\r\n        let response: Response;\r\n        try {\r\n            response = await this._fetchType(request.url!, {\r\n                body: request.content!,\r\n                cache: \"no-cache\",\r\n                credentials: request.withCredentials === true ? \"include\" : \"same-origin\",\r\n                headers: {\r\n                    \"Content-Type\": \"text/plain;charset=UTF-8\",\r\n                    \"X-Requested-With\": \"XMLHttpRequest\",\r\n                    ...request.headers,\r\n                },\r\n                method: request.method!,\r\n                mode: \"cors\",\r\n                redirect: \"follow\",\r\n                signal: abortController.signal,\r\n            });\r\n        } catch (e) {\r\n            if (error) {\r\n                throw error;\r\n            }\r\n            this._logger.log(\r\n                LogLevel.Warning,\r\n                `Error from HTTP request. ${e}.`,\r\n            );\r\n            throw e;\r\n        } finally {\r\n            if (timeoutId) {\r\n                clearTimeout(timeoutId);\r\n            }\r\n            if (request.abortSignal) {\r\n                request.abortSignal.onabort = null;\r\n            }\r\n        }\r\n\r\n        if (!response.ok) {\r\n            const errorMessage = await deserializeContent(response, \"text\") as string;\r\n            throw new HttpError(errorMessage || response.statusText, response.status);\r\n        }\r\n\r\n        const content = deserializeContent(response, request.responseType);\r\n        const payload = await content;\r\n\r\n        return new HttpResponse(\r\n            response.status,\r\n            response.statusText,\r\n            payload,\r\n        );\r\n    }\r\n\r\n    public getCookieString(url: string): string {\r\n        let cookies: string = \"\";\r\n        if (Platform.isNode && this._jar) {\r\n            // @ts-ignore: unused variable\r\n            this._jar.getCookies(url, (e, c) => cookies = c.join(\"; \"));\r\n        }\r\n        return cookies;\r\n    }\r\n}\r\n\r\nfunction deserializeContent(response: Response, responseType?: XMLHttpRequestResponseType): Promise<string | ArrayBuffer> {\r\n    let content;\r\n    switch (responseType) {\r\n        case \"arraybuffer\":\r\n            content = response.arrayBuffer();\r\n            break;\r\n        case \"text\":\r\n            content = response.text();\r\n            break;\r\n        case \"blob\":\r\n        case \"document\":\r\n        case \"json\":\r\n            throw new Error(`${responseType} is not supported.`);\r\n        default:\r\n            content = response.text();\r\n            break;\r\n    }\r\n\r\n    return content;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpRequest, HttpResponse } from \"./HttpClient\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\n\r\nexport class XhrHttpClient extends HttpClient {\r\n    private readonly _logger: ILogger;\r\n\r\n    public constructor(logger: ILogger) {\r\n        super();\r\n        this._logger = logger;\r\n    }\r\n\r\n    /** @inheritDoc */\r\n    public send(request: HttpRequest): Promise<HttpResponse> {\r\n        // Check that abort was not signaled before calling send\r\n        if (request.abortSignal && request.abortSignal.aborted) {\r\n            return Promise.reject(new AbortError());\r\n        }\r\n\r\n        if (!request.method) {\r\n            return Promise.reject(new Error(\"No method defined.\"));\r\n        }\r\n        if (!request.url) {\r\n            return Promise.reject(new Error(\"No url defined.\"));\r\n        }\r\n\r\n        return new Promise<HttpResponse>((resolve, reject) => {\r\n            const xhr = new XMLHttpRequest();\r\n\r\n            xhr.open(request.method!, request.url!, true);\r\n            xhr.withCredentials = request.withCredentials === undefined ? true : request.withCredentials;\r\n            xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\r\n            // Explicitly setting the Content-Type header for React Native on Android platform.\r\n            xhr.setRequestHeader(\"Content-Type\", \"text/plain;charset=UTF-8\");\r\n\r\n            const headers = request.headers;\r\n            if (headers) {\r\n                Object.keys(headers)\r\n                    .forEach((header) => {\r\n                        xhr.setRequestHeader(header, headers[header]);\r\n                    });\r\n            }\r\n\r\n            if (request.responseType) {\r\n                xhr.responseType = request.responseType;\r\n            }\r\n\r\n            if (request.abortSignal) {\r\n                request.abortSignal.onabort = () => {\r\n                    xhr.abort();\r\n                    reject(new AbortError());\r\n                };\r\n            }\r\n\r\n            if (request.timeout) {\r\n                xhr.timeout = request.timeout;\r\n            }\r\n\r\n            xhr.onload = () => {\r\n                if (request.abortSignal) {\r\n                    request.abortSignal.onabort = null;\r\n                }\r\n\r\n                if (xhr.status >= 200 && xhr.status < 300) {\r\n                    resolve(new HttpResponse(xhr.status, xhr.statusText, xhr.response || xhr.responseText));\r\n                } else {\r\n                    reject(new HttpError(xhr.response || xhr.responseText || xhr.statusText, xhr.status));\r\n                }\r\n            };\r\n\r\n            xhr.onerror = () => {\r\n                this._logger.log(LogLevel.Warning, `Error from HTTP request. ${xhr.status}: ${xhr.statusText}.`);\r\n                reject(new HttpError(xhr.statusText, xhr.status));\r\n            };\r\n\r\n            xhr.ontimeout = () => {\r\n                this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n                reject(new TimeoutError());\r\n            };\r\n\r\n            xhr.send(request.content || \"\");\r\n        });\r\n    }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { AbortError } from \"./Errors\";\r\nimport { FetchHttpClient } from \"./FetchHttpClient\";\r\nimport { HttpClient, HttpRequest, HttpResponse } from \"./HttpClient\";\r\nimport { ILogger } from \"./ILogger\";\r\nimport { Platform } from \"./Utils\";\r\nimport { XhrHttpClient } from \"./XhrHttpClient\";\r\n\r\n/** Default implementation of {@link @microsoft/signalr.HttpClient}. */\r\nexport class DefaultHttpClient extends HttpClient {\r\n    private readonly _httpClient: HttpClient;\r\n\r\n    /** Creates a new instance of the {@link @microsoft/signalr.DefaultHttpClient}, using the provided {@link @microsoft/signalr.ILogger} to log messages. */\r\n    public constructor(logger: ILogger) {\r\n        super();\r\n\r\n        if (typeof fetch !== \"undefined\" || Platform.isNode) {\r\n            this._httpClient = new FetchHttpClient(logger);\r\n        } else if (typeof XMLHttpRequest !== \"undefined\") {\r\n            this._httpClient = new XhrHttpClient(logger);\r\n        } else {\r\n            throw new Error(\"No usable HttpClient found.\");\r\n        }\r\n    }\r\n\r\n    /** @inheritDoc */\r\n    public send(request: HttpRequest): Promise<HttpResponse> {\r\n        // Check that abort was not signaled before calling send\r\n        if (request.abortSignal && request.abortSignal.aborted) {\r\n            return Promise.reject(new AbortError());\r\n        }\r\n\r\n        if (!request.method) {\r\n            return Promise.reject(new Error(\"No method defined.\"));\r\n        }\r\n        if (!request.url) {\r\n            return Promise.reject(new Error(\"No url defined.\"));\r\n        }\r\n\r\n        return this._httpClient.send(request);\r\n    }\r\n\r\n    public getCookieString(url: string): string {\r\n        return this._httpClient.getCookieString(url);\r\n    }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nexport abstract class HeaderNames {\r\n    static readonly Authorization = \"Authorization\";\r\n    static readonly Cookie = \"Cookie\";\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// This will be treated as a bit flag in the future, so we keep it using power-of-two values.\r\n/** Specifies a specific HTTP transport type. */\r\nexport enum HttpTransportType {\r\n    /** Specifies no transport preference. */\r\n    None = 0,\r\n    /** Specifies the WebSockets transport. */\r\n    WebSockets = 1,\r\n    /** Specifies the Server-Sent Events transport. */\r\n    ServerSentEvents = 2,\r\n    /** Specifies the Long Polling transport. */\r\n    LongPolling = 4,\r\n}\r\n\r\n/** Specifies the transfer format for a connection. */\r\nexport enum TransferFormat {\r\n    /** Specifies that only text data will be transmitted over the connection. */\r\n    Text = 1,\r\n    /** Specifies that binary data will be transmitted over the connection. */\r\n    Binary = 2,\r\n}\r\n\r\n/** An abstraction over the behavior of transports. This is designed to support the framework and not intended for use by applications. */\r\nexport interface ITransport {\r\n    connect(url: string, transferFormat: TransferFormat): Promise<void>;\r\n    send(data: any): Promise<void>;\r\n    stop(): Promise<void>;\r\n    onreceive: ((data: string | ArrayBuffer) => void) | null;\r\n    onclose: ((error?: Error) => void) | null;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// Rough polyfill of https://developer.mozilla.org/en-US/docs/Web/API/AbortController\r\n// We don't actually ever use the API being polyfilled, we always use the polyfill because\r\n// it's a very new API right now.\r\n\r\n// Not exported from index.\r\n/** @private */\r\nexport class AbortController implements AbortSignal {\r\n    private _isAborted: boolean = false;\r\n    public onabort: (() => void) | null = null;\r\n\r\n    public abort(): void {\r\n        if (!this._isAborted) {\r\n            this._isAborted = true;\r\n            if (this.onabort) {\r\n                this.onabort();\r\n            }\r\n        }\r\n    }\r\n\r\n    get signal(): AbortSignal {\r\n        return this;\r\n    }\r\n\r\n    get aborted(): boolean {\r\n        return this._isAborted;\r\n    }\r\n}\r\n\r\n/** Represents a signal that can be monitored to determine if a request has been aborted. */\r\nexport interface AbortSignal {\r\n    /** Indicates if the request has been aborted. */\r\n    aborted: boolean;\r\n    /** Set this to a handler that will be invoked when the request is aborted. */\r\n    onabort: (() => void) | null;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { AbortController } from \"./AbortController\";\r\nimport { HttpError, TimeoutError } from \"./Errors\";\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { HttpClient, HttpRequest } from \"./HttpClient\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { ITransport, TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, sendMessage } from \"./Utils\";\r\nimport { IHttpConnectionOptions } from \"./IHttpConnectionOptions\";\r\n\r\n// Not exported from 'index', this type is internal.\r\n/** @private */\r\nexport class LongPollingTransport implements ITransport {\r\n    private readonly _httpClient: HttpClient;\r\n    private readonly _accessTokenFactory: (() => string | Promise<string>) | undefined;\r\n    private readonly _logger: ILogger;\r\n    private readonly _options: IHttpConnectionOptions;\r\n    private readonly _pollAbort: AbortController;\r\n\r\n    private _url?: string;\r\n    private _running: boolean;\r\n    private _receiving?: Promise<void>;\r\n    private _closeError?: Error;\r\n\r\n    public onreceive: ((data: string | ArrayBuffer) => void) | null;\r\n    public onclose: ((error?: Error) => void) | null;\r\n\r\n    // This is an internal type, not exported from 'index' so this is really just internal.\r\n    public get pollAborted(): boolean {\r\n        return this._pollAbort.aborted;\r\n    }\r\n\r\n    constructor(httpClient: HttpClient, accessTokenFactory: (() => string | Promise<string>) | undefined, logger: ILogger, options: IHttpConnectionOptions) {\r\n        this._httpClient = httpClient;\r\n        this._accessTokenFactory = accessTokenFactory;\r\n        this._logger = logger;\r\n        this._pollAbort = new AbortController();\r\n        this._options = options;\r\n\r\n        this._running = false;\r\n\r\n        this.onreceive = null;\r\n        this.onclose = null;\r\n    }\r\n\r\n    public async connect(url: string, transferFormat: TransferFormat): Promise<void> {\r\n        Arg.isRequired(url, \"url\");\r\n        Arg.isRequired(transferFormat, \"transferFormat\");\r\n        Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n\r\n        this._url = url;\r\n\r\n        this._logger.log(LogLevel.Trace, \"(LongPolling transport) Connecting.\");\r\n\r\n        // Allow binary format on Node and Browsers that support binary content (indicated by the presence of responseType property)\r\n        if (transferFormat === TransferFormat.Binary &&\r\n            (typeof XMLHttpRequest !== \"undefined\" && typeof new XMLHttpRequest().responseType !== \"string\")) {\r\n            throw new Error(\"Binary protocols over XmlHttpRequest not implementing advanced features are not supported.\");\r\n        }\r\n\r\n        const [name, value] = getUserAgentHeader();\r\n        const headers = { [name]: value, ...this._options.headers };\r\n\r\n        const pollOptions: HttpRequest = {\r\n            abortSignal: this._pollAbort.signal,\r\n            headers,\r\n            timeout: 100000,\r\n            withCredentials: this._options.withCredentials,\r\n        };\r\n\r\n        if (transferFormat === TransferFormat.Binary) {\r\n            pollOptions.responseType = \"arraybuffer\";\r\n        }\r\n\r\n        const token = await this._getAccessToken();\r\n        this._updateHeaderToken(pollOptions, token);\r\n\r\n        // Make initial long polling request\r\n        // Server uses first long polling request to finish initializing connection and it returns without data\r\n        const pollUrl = `${url}&_=${Date.now()}`;\r\n        this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n        const response = await this._httpClient.get(pollUrl, pollOptions);\r\n        if (response.statusCode !== 200) {\r\n            this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n\r\n            // Mark running as false so that the poll immediately ends and runs the close logic\r\n            this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n            this._running = false;\r\n        } else {\r\n            this._running = true;\r\n        }\r\n\r\n        this._receiving = this._poll(this._url, pollOptions);\r\n    }\r\n\r\n    private async _getAccessToken(): Promise<string | null> {\r\n        if (this._accessTokenFactory) {\r\n            return await this._accessTokenFactory();\r\n        }\r\n\r\n        return null;\r\n    }\r\n\r\n    private _updateHeaderToken(request: HttpRequest, token: string | null) {\r\n        if (!request.headers) {\r\n            request.headers = {};\r\n        }\r\n        if (token) {\r\n            request.headers[HeaderNames.Authorization] = `Bearer ${token}`;\r\n            return;\r\n        }\r\n        if (request.headers[HeaderNames.Authorization]) {\r\n            delete request.headers[HeaderNames.Authorization];\r\n        }\r\n    }\r\n\r\n    private async _poll(url: string, pollOptions: HttpRequest): Promise<void> {\r\n        try {\r\n            while (this._running) {\r\n                // We have to get the access token on each poll, in case it changes\r\n                const token = await this._getAccessToken();\r\n                this._updateHeaderToken(pollOptions, token);\r\n\r\n                try {\r\n                    const pollUrl = `${url}&_=${Date.now()}`;\r\n                    this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n                    const response = await this._httpClient.get(pollUrl, pollOptions);\r\n\r\n                    if (response.statusCode === 204) {\r\n                        this._logger.log(LogLevel.Information, \"(LongPolling transport) Poll terminated by server.\");\r\n\r\n                        this._running = false;\r\n                    } else if (response.statusCode !== 200) {\r\n                        this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n\r\n                        // Unexpected status code\r\n                        this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n                        this._running = false;\r\n                    } else {\r\n                        // Process the response\r\n                        if (response.content) {\r\n                            this._logger.log(LogLevel.Trace, `(LongPolling transport) data received. ${getDataDetail(response.content, this._options.logMessageContent!)}.`);\r\n                            if (this.onreceive) {\r\n                                this.onreceive(response.content);\r\n                            }\r\n                        } else {\r\n                            // This is another way timeout manifest.\r\n                            this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n                        }\r\n                    }\r\n                } catch (e) {\r\n                    if (!this._running) {\r\n                        // Log but disregard errors that occur after stopping\r\n                        this._logger.log(LogLevel.Trace, `(LongPolling transport) Poll errored after shutdown: ${e.message}`);\r\n                    } else {\r\n                        if (e instanceof TimeoutError) {\r\n                            // Ignore timeouts and reissue the poll.\r\n                            this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n                        } else {\r\n                            // Close the connection with the error as the result.\r\n                            this._closeError = e;\r\n                            this._running = false;\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n        } finally {\r\n            this._logger.log(LogLevel.Trace, \"(LongPolling transport) Polling complete.\");\r\n\r\n            // We will reach here with pollAborted==false when the server returned a response causing the transport to stop.\r\n            // If pollAborted==true then client initiated the stop and the stop method will raise the close event after DELETE is sent.\r\n            if (!this.pollAborted) {\r\n                this._raiseOnClose();\r\n            }\r\n        }\r\n    }\r\n\r\n    public async send(data: any): Promise<void> {\r\n        if (!this._running) {\r\n            return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n        }\r\n        return sendMessage(this._logger, \"LongPolling\", this._httpClient, this._url!, this._accessTokenFactory, data, this._options);\r\n    }\r\n\r\n    public async stop(): Promise<void> {\r\n        this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stopping polling.\");\r\n\r\n        // Tell receiving loop to stop, abort any current request, and then wait for it to finish\r\n        this._running = false;\r\n        this._pollAbort.abort();\r\n\r\n        try {\r\n            await this._receiving;\r\n\r\n            // Send DELETE to clean up long polling on the server\r\n            this._logger.log(LogLevel.Trace, `(LongPolling transport) sending DELETE request to ${this._url}.`);\r\n\r\n            const headers: {[k: string]: string} = {};\r\n            const [name, value] = getUserAgentHeader();\r\n            headers[name] = value;\r\n\r\n            const deleteOptions: HttpRequest = {\r\n                headers: { ...headers, ...this._options.headers },\r\n                timeout: this._options.timeout,\r\n                withCredentials: this._options.withCredentials,\r\n            };\r\n            const token = await this._getAccessToken();\r\n            this._updateHeaderToken(deleteOptions, token);\r\n            await this._httpClient.delete(this._url!, deleteOptions);\r\n\r\n            this._logger.log(LogLevel.Trace, \"(LongPolling transport) DELETE request sent.\");\r\n        } finally {\r\n            this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stop finished.\");\r\n\r\n            // Raise close event here instead of in polling\r\n            // It needs to happen after the DELETE request is sent\r\n            this._raiseOnClose();\r\n        }\r\n    }\r\n\r\n    private _raiseOnClose() {\r\n        if (this.onclose) {\r\n            let logMessage = \"(LongPolling transport) Firing onclose event.\";\r\n            if (this._closeError) {\r\n                logMessage += \" Error: \" + this._closeError;\r\n            }\r\n            this._logger.log(LogLevel.Trace, logMessage);\r\n            this.onclose(this._closeError);\r\n        }\r\n    }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { MessageHeaders } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { ITransport, TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform, sendMessage } from \"./Utils\";\r\nimport { IHttpConnectionOptions } from \"./IHttpConnectionOptions\";\r\n\r\n/** @private */\r\nexport class ServerSentEventsTransport implements ITransport {\r\n    private readonly _httpClient: HttpClient;\r\n    private readonly _accessTokenFactory: (() => string | Promise<string>) | undefined;\r\n    private readonly _logger: ILogger;\r\n    private readonly _options: IHttpConnectionOptions;\r\n    private _eventSource?: EventSource;\r\n    private _url?: string;\r\n\r\n    public onreceive: ((data: string | ArrayBuffer) => void) | null;\r\n    public onclose: ((error?: Error) => void) | null;\r\n\r\n    constructor(httpClient: HttpClient, accessTokenFactory: (() => string | Promise<string>) | undefined, logger: ILogger,\r\n                options: IHttpConnectionOptions) {\r\n        this._httpClient = httpClient;\r\n        this._accessTokenFactory = accessTokenFactory;\r\n        this._logger = logger;\r\n        this._options = options;\r\n\r\n        this.onreceive = null;\r\n        this.onclose = null;\r\n    }\r\n\r\n    public async connect(url: string, transferFormat: TransferFormat): Promise<void> {\r\n        Arg.isRequired(url, \"url\");\r\n        Arg.isRequired(transferFormat, \"transferFormat\");\r\n        Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n\r\n        this._logger.log(LogLevel.Trace, \"(SSE transport) Connecting.\");\r\n\r\n        // set url before accessTokenFactory because this.url is only for send and we set the auth header instead of the query string for send\r\n        this._url = url;\r\n\r\n        if (this._accessTokenFactory) {\r\n            const token = await this._accessTokenFactory();\r\n            if (token) {\r\n                url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(token)}`;\r\n            }\r\n        }\r\n\r\n        return new Promise<void>((resolve, reject) => {\r\n            let opened = false;\r\n            if (transferFormat !== TransferFormat.Text) {\r\n                reject(new Error(\"The Server-Sent Events transport only supports the 'Text' transfer format\"));\r\n                return;\r\n            }\r\n\r\n            let eventSource: EventSource;\r\n            if (Platform.isBrowser || Platform.isWebWorker) {\r\n                eventSource = new this._options.EventSource!(url, { withCredentials: this._options.withCredentials });\r\n            } else {\r\n                // Non-browser passes cookies via the dictionary\r\n                const cookies = this._httpClient.getCookieString(url);\r\n                const headers: MessageHeaders = {};\r\n                headers.Cookie = cookies;\r\n                const [name, value] = getUserAgentHeader();\r\n                headers[name] = value;\r\n\r\n                eventSource = new this._options.EventSource!(url, { withCredentials: this._options.withCredentials, headers: { ...headers, ...this._options.headers} } as EventSourceInit);\r\n            }\r\n\r\n            try {\r\n                eventSource.onmessage = (e: MessageEvent) => {\r\n                    if (this.onreceive) {\r\n                        try {\r\n                            this._logger.log(LogLevel.Trace, `(SSE transport) data received. ${getDataDetail(e.data, this._options.logMessageContent!)}.`);\r\n                            this.onreceive(e.data);\r\n                        } catch (error) {\r\n                            this._close(error);\r\n                            return;\r\n                        }\r\n                    }\r\n                };\r\n\r\n                // @ts-ignore: not using event on purpose\r\n                eventSource.onerror = (e: Event) => {\r\n                    // EventSource doesn't give any useful information about server side closes.\r\n                    if (opened) {\r\n                        this._close();\r\n                    } else {\r\n                        reject(new Error(\"EventSource failed to connect. The connection could not be found on the server,\"\r\n                        + \" either the connection ID is not present on the server, or a proxy is refusing/buffering the connection.\"\r\n                        + \" If you have multiple servers check that sticky sessions are enabled.\"));\r\n                    }\r\n                };\r\n\r\n                eventSource.onopen = () => {\r\n                    this._logger.log(LogLevel.Information, `SSE connected to ${this._url}`);\r\n                    this._eventSource = eventSource;\r\n                    opened = true;\r\n                    resolve();\r\n                };\r\n            } catch (e) {\r\n                reject(e);\r\n                return;\r\n            }\r\n        });\r\n    }\r\n\r\n    public async send(data: any): Promise<void> {\r\n        if (!this._eventSource) {\r\n            return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n        }\r\n        return sendMessage(this._logger, \"SSE\", this._httpClient, this._url!, this._accessTokenFactory, data, this._options);\r\n    }\r\n\r\n    public stop(): Promise<void> {\r\n        this._close();\r\n        return Promise.resolve();\r\n    }\r\n\r\n    private _close(e?: Error) {\r\n        if (this._eventSource) {\r\n            this._eventSource.close();\r\n            this._eventSource = undefined;\r\n\r\n            if (this.onclose) {\r\n                this.onclose(e);\r\n            }\r\n        }\r\n    }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { MessageHeaders } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { ITransport, TransferFormat } from \"./ITransport\";\r\nimport { WebSocketConstructor } from \"./Polyfills\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform } from \"./Utils\";\r\n\r\n/** @private */\r\nexport class WebSocketTransport implements ITransport {\r\n    private readonly _logger: ILogger;\r\n    private readonly _accessTokenFactory: (() => string | Promise<string>) | undefined;\r\n    private readonly _logMessageContent: boolean;\r\n    private readonly _webSocketConstructor: WebSocketConstructor;\r\n    private readonly _httpClient: HttpClient;\r\n    private _webSocket?: WebSocket;\r\n    private _headers: MessageHeaders;\r\n\r\n    public onreceive: ((data: string | ArrayBuffer) => void) | null;\r\n    public onclose: ((error?: Error) => void) | null;\r\n\r\n    constructor(httpClient: HttpClient, accessTokenFactory: (() => string | Promise<string>) | undefined, logger: ILogger,\r\n                logMessageContent: boolean, webSocketConstructor: WebSocketConstructor, headers: MessageHeaders) {\r\n        this._logger = logger;\r\n        this._accessTokenFactory = accessTokenFactory;\r\n        this._logMessageContent = logMessageContent;\r\n        this._webSocketConstructor = webSocketConstructor;\r\n        this._httpClient = httpClient;\r\n\r\n        this.onreceive = null;\r\n        this.onclose = null;\r\n        this._headers = headers;\r\n    }\r\n\r\n    public async connect(url: string, transferFormat: TransferFormat): Promise<void> {\r\n        Arg.isRequired(url, \"url\");\r\n        Arg.isRequired(transferFormat, \"transferFormat\");\r\n        Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n        this._logger.log(LogLevel.Trace, \"(WebSockets transport) Connecting.\");\r\n\r\n        if (this._accessTokenFactory) {\r\n            const token = await this._accessTokenFactory();\r\n            if (token) {\r\n                url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(token)}`;\r\n            }\r\n        }\r\n\r\n        return new Promise<void>((resolve, reject) => {\r\n            url = url.replace(/^http/, \"ws\");\r\n            let webSocket: WebSocket | undefined;\r\n            const cookies = this._httpClient.getCookieString(url);\r\n            let opened = false;\r\n\r\n            if (Platform.isNode) {\r\n                const headers: {[k: string]: string} = {};\r\n                const [name, value] = getUserAgentHeader();\r\n                headers[name] = value;\r\n\r\n                if (cookies) {\r\n                    headers[HeaderNames.Cookie] = `${cookies}`;\r\n                }\r\n\r\n                // Only pass headers when in non-browser environments\r\n                webSocket = new this._webSocketConstructor(url, undefined, {\r\n                    headers: { ...headers, ...this._headers },\r\n                });\r\n            }\r\n\r\n            if (!webSocket) {\r\n                // Chrome is not happy with passing 'undefined' as protocol\r\n                webSocket = new this._webSocketConstructor(url);\r\n            }\r\n\r\n            if (transferFormat === TransferFormat.Binary) {\r\n                webSocket.binaryType = \"arraybuffer\";\r\n            }\r\n\r\n            webSocket.onopen = (_event: Event) => {\r\n                this._logger.log(LogLevel.Information, `WebSocket connected to ${url}.`);\r\n                this._webSocket = webSocket;\r\n                opened = true;\r\n                resolve();\r\n            };\r\n\r\n            webSocket.onerror = (event: Event) => {\r\n                let error: any = null;\r\n                // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n                if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n                    error = event.error;\r\n                } else {\r\n                    error = \"There was an error with the transport\";\r\n                }\r\n\r\n                this._logger.log(LogLevel.Information, `(WebSockets transport) ${error}.`);\r\n            };\r\n\r\n            webSocket.onmessage = (message: MessageEvent) => {\r\n                this._logger.log(LogLevel.Trace, `(WebSockets transport) data received. ${getDataDetail(message.data, this._logMessageContent)}.`);\r\n                if (this.onreceive) {\r\n                    try {\r\n                        this.onreceive(message.data);\r\n                    } catch (error) {\r\n                        this._close(error);\r\n                        return;\r\n                    }\r\n                }\r\n            };\r\n\r\n            webSocket.onclose = (event: CloseEvent) => {\r\n                // Don't call close handler if connection was never established\r\n                // We'll reject the connect call instead\r\n                if (opened) {\r\n                    this._close(event);\r\n                } else {\r\n                    let error: any = null;\r\n                    // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n                    if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n                        error = event.error;\r\n                    } else {\r\n                        error = \"WebSocket failed to connect. The connection could not be found on the server,\"\r\n                        + \" either the endpoint may not be a SignalR endpoint,\"\r\n                        + \" the connection ID is not present on the server, or there is a proxy blocking WebSockets.\"\r\n                        + \" If you have multiple servers check that sticky sessions are enabled.\";\r\n                    }\r\n\r\n                    reject(new Error(error));\r\n                }\r\n            };\r\n        });\r\n    }\r\n\r\n    public send(data: any): Promise<void> {\r\n        if (this._webSocket && this._webSocket.readyState === this._webSocketConstructor.OPEN) {\r\n            this._logger.log(LogLevel.Trace, `(WebSockets transport) sending data. ${getDataDetail(data, this._logMessageContent)}.`);\r\n            this._webSocket.send(data);\r\n            return Promise.resolve();\r\n        }\r\n\r\n        return Promise.reject(\"WebSocket is not in the OPEN state\");\r\n    }\r\n\r\n    public stop(): Promise<void> {\r\n        if (this._webSocket) {\r\n            // Manually invoke onclose callback inline so we know the HttpConnection was closed properly before returning\r\n            // This also solves an issue where websocket.onclose could take 18+ seconds to trigger during network disconnects\r\n            this._close(undefined);\r\n        }\r\n\r\n        return Promise.resolve();\r\n    }\r\n\r\n    private _close(event?: CloseEvent | Error): void {\r\n        // webSocket will be null if the transport did not start successfully\r\n        if (this._webSocket) {\r\n            // Clear websocket handlers because we are considering the socket closed now\r\n            this._webSocket.onclose = () => {};\r\n            this._webSocket.onmessage = () => {};\r\n            this._webSocket.onerror = () => {};\r\n            this._webSocket.close();\r\n            this._webSocket = undefined;\r\n        }\r\n\r\n        this._logger.log(LogLevel.Trace, \"(WebSockets transport) socket closed.\");\r\n        if (this.onclose) {\r\n            if (this._isCloseEvent(event) && (event.wasClean === false || event.code !== 1000)) {\r\n                this.onclose(new Error(`WebSocket closed with status code: ${event.code} (${event.reason || \"no reason given\"}).`));\r\n            } else if (event instanceof Error) {\r\n                this.onclose(event);\r\n            } else {\r\n                this.onclose();\r\n            }\r\n        }\r\n    }\r\n\r\n    private _isCloseEvent(event?: any): event is CloseEvent {\r\n        return event && typeof event.wasClean === \"boolean\" && typeof event.code === \"number\";\r\n    }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { DefaultHttpClient } from \"./DefaultHttpClient\";\r\nimport { AggregateErrors, DisabledTransportError, FailedToNegotiateWithServerError, FailedToStartTransportError, HttpError, UnsupportedTransportError } from \"./Errors\";\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { IConnection } from \"./IConnection\";\r\nimport { IHttpConnectionOptions } from \"./IHttpConnectionOptions\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { HttpTransportType, ITransport, TransferFormat } from \"./ITransport\";\r\nimport { LongPollingTransport } from \"./LongPollingTransport\";\r\nimport { ServerSentEventsTransport } from \"./ServerSentEventsTransport\";\r\nimport { Arg, createLogger, getUserAgentHeader, Platform } from \"./Utils\";\r\nimport { WebSocketTransport } from \"./WebSocketTransport\";\r\n\r\n/** @private */\r\nconst enum ConnectionState {\r\n    Connecting = \"Connecting\",\r\n    Connected = \"Connected\",\r\n    Disconnected = \"Disconnected\",\r\n    Disconnecting = \"Disconnecting\",\r\n}\r\n\r\n/** @private */\r\nexport interface INegotiateResponse {\r\n    connectionId?: string;\r\n    connectionToken?: string;\r\n    negotiateVersion?: number;\r\n    availableTransports?: IAvailableTransport[];\r\n    url?: string;\r\n    accessToken?: string;\r\n    error?: string;\r\n}\r\n\r\n/** @private */\r\nexport interface IAvailableTransport {\r\n    transport: keyof typeof HttpTransportType;\r\n    transferFormats: (keyof typeof TransferFormat)[];\r\n}\r\n\r\nconst MAX_REDIRECTS = 100;\r\n\r\n/** @private */\r\nexport class HttpConnection implements IConnection {\r\n    private _connectionState: ConnectionState;\r\n    // connectionStarted is tracked independently from connectionState, so we can check if the\r\n    // connection ever did successfully transition from connecting to connected before disconnecting.\r\n    private _connectionStarted: boolean;\r\n    private readonly _httpClient: HttpClient;\r\n    private readonly _logger: ILogger;\r\n    private readonly _options: IHttpConnectionOptions;\r\n    // Needs to not start with _ to be available for tests\r\n    // eslint-disable-next-line @typescript-eslint/naming-convention\r\n    private transport?: ITransport;\r\n    private _startInternalPromise?: Promise<void>;\r\n    private _stopPromise?: Promise<void>;\r\n    private _stopPromiseResolver: (value?: PromiseLike<void>) => void = () => {};\r\n    private _stopError?: Error;\r\n    private _accessTokenFactory?: () => string | Promise<string>;\r\n    private _sendQueue?: TransportSendQueue;\r\n\r\n    public readonly features: any = {};\r\n    public baseUrl: string;\r\n    public connectionId?: string;\r\n    public onreceive: ((data: string | ArrayBuffer) => void) | null;\r\n    public onclose: ((e?: Error) => void) | null;\r\n\r\n    private readonly _negotiateVersion: number = 1;\r\n\r\n    constructor(url: string, options: IHttpConnectionOptions = {}) {\r\n        Arg.isRequired(url, \"url\");\r\n\r\n        this._logger = createLogger(options.logger);\r\n        this.baseUrl = this._resolveUrl(url);\r\n\r\n        options = options || {};\r\n        options.logMessageContent = options.logMessageContent === undefined ? false : options.logMessageContent;\r\n        if (typeof options.withCredentials === \"boolean\" || options.withCredentials === undefined) {\r\n            options.withCredentials = options.withCredentials === undefined ? true : options.withCredentials;\r\n        } else {\r\n            throw new Error(\"withCredentials option was not a 'boolean' or 'undefined' value\");\r\n        }\r\n        options.timeout = options.timeout === undefined ? 100 * 1000 : options.timeout;\r\n\r\n        let webSocketModule: any = null;\r\n        let eventSourceModule: any = null;\r\n\r\n        if (Platform.isNode && typeof require !== \"undefined\") {\r\n            // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n            // @ts-ignore: TS doesn't know about these names\r\n            const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n            webSocketModule = requireFunc(\"ws\");\r\n            eventSourceModule = requireFunc(\"eventsource\");\r\n        }\r\n\r\n        if (!Platform.isNode && typeof WebSocket !== \"undefined\" && !options.WebSocket) {\r\n            options.WebSocket = WebSocket;\r\n        } else if (Platform.isNode && !options.WebSocket) {\r\n            if (webSocketModule) {\r\n                options.WebSocket = webSocketModule;\r\n            }\r\n        }\r\n\r\n        if (!Platform.isNode && typeof EventSource !== \"undefined\" && !options.EventSource) {\r\n            options.EventSource = EventSource;\r\n        } else if (Platform.isNode && !options.EventSource) {\r\n            if (typeof eventSourceModule !== \"undefined\") {\r\n                options.EventSource = eventSourceModule;\r\n            }\r\n        }\r\n\r\n        this._httpClient = options.httpClient || new DefaultHttpClient(this._logger);\r\n        this._connectionState = ConnectionState.Disconnected;\r\n        this._connectionStarted = false;\r\n        this._options = options;\r\n\r\n        this.onreceive = null;\r\n        this.onclose = null;\r\n    }\r\n\r\n    public start(): Promise<void>;\r\n    public start(transferFormat: TransferFormat): Promise<void>;\r\n    public async start(transferFormat?: TransferFormat): Promise<void> {\r\n        transferFormat = transferFormat || TransferFormat.Binary;\r\n\r\n        Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n\r\n        this._logger.log(LogLevel.Debug, `Starting connection with transfer format '${TransferFormat[transferFormat]}'.`);\r\n\r\n        if (this._connectionState !== ConnectionState.Disconnected) {\r\n            return Promise.reject(new Error(\"Cannot start an HttpConnection that is not in the 'Disconnected' state.\"));\r\n        }\r\n\r\n        this._connectionState = ConnectionState.Connecting;\r\n\r\n        this._startInternalPromise = this._startInternal(transferFormat);\r\n        await this._startInternalPromise;\r\n\r\n        // The TypeScript compiler thinks that connectionState must be Connecting here. The TypeScript compiler is wrong.\r\n        if (this._connectionState as any === ConnectionState.Disconnecting) {\r\n            // stop() was called and transitioned the client into the Disconnecting state.\r\n            const message = \"Failed to start the HttpConnection before stop() was called.\";\r\n            this._logger.log(LogLevel.Error, message);\r\n\r\n            // We cannot await stopPromise inside startInternal since stopInternal awaits the startInternalPromise.\r\n            await this._stopPromise;\r\n\r\n            return Promise.reject(new Error(message));\r\n        } else if (this._connectionState as any !== ConnectionState.Connected) {\r\n            // stop() was called and transitioned the client into the Disconnecting state.\r\n            const message = \"HttpConnection.startInternal completed gracefully but didn't enter the connection into the connected state!\";\r\n            this._logger.log(LogLevel.Error, message);\r\n            return Promise.reject(new Error(message));\r\n        }\r\n\r\n        this._connectionStarted = true;\r\n    }\r\n\r\n    public send(data: string | ArrayBuffer): Promise<void> {\r\n        if (this._connectionState !== ConnectionState.Connected) {\r\n            return Promise.reject(new Error(\"Cannot send data if the connection is not in the 'Connected' State.\"));\r\n        }\r\n\r\n        if (!this._sendQueue) {\r\n            this._sendQueue = new TransportSendQueue(this.transport!);\r\n        }\r\n\r\n        // Transport will not be null if state is connected\r\n        return this._sendQueue.send(data);\r\n    }\r\n\r\n    public async stop(error?: Error): Promise<void> {\r\n        if (this._connectionState === ConnectionState.Disconnected) {\r\n            this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnected state.`);\r\n            return Promise.resolve();\r\n        }\r\n\r\n        if (this._connectionState === ConnectionState.Disconnecting) {\r\n            this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n            return this._stopPromise;\r\n        }\r\n\r\n        this._connectionState = ConnectionState.Disconnecting;\r\n\r\n        this._stopPromise = new Promise((resolve) => {\r\n            // Don't complete stop() until stopConnection() completes.\r\n            this._stopPromiseResolver = resolve;\r\n        });\r\n\r\n        // stopInternal should never throw so just observe it.\r\n        await this._stopInternal(error);\r\n        await this._stopPromise;\r\n    }\r\n\r\n    private async _stopInternal(error?: Error): Promise<void> {\r\n        // Set error as soon as possible otherwise there is a race between\r\n        // the transport closing and providing an error and the error from a close message\r\n        // We would prefer the close message error.\r\n        this._stopError = error;\r\n\r\n        try {\r\n            await this._startInternalPromise;\r\n        } catch (e) {\r\n            // This exception is returned to the user as a rejected Promise from the start method.\r\n        }\r\n\r\n        // The transport's onclose will trigger stopConnection which will run our onclose event.\r\n        // The transport should always be set if currently connected. If it wasn't set, it's likely because\r\n        // stop was called during start() and start() failed.\r\n        if (this.transport) {\r\n            try {\r\n                await this.transport.stop();\r\n            } catch (e) {\r\n                this._logger.log(LogLevel.Error, `HttpConnection.transport.stop() threw error '${e}'.`);\r\n                this._stopConnection();\r\n            }\r\n\r\n            this.transport = undefined;\r\n        } else {\r\n            this._logger.log(LogLevel.Debug, \"HttpConnection.transport is undefined in HttpConnection.stop() because start() failed.\");\r\n        }\r\n    }\r\n\r\n    private async _startInternal(transferFormat: TransferFormat): Promise<void> {\r\n        // Store the original base url and the access token factory since they may change\r\n        // as part of negotiating\r\n        let url = this.baseUrl;\r\n        this._accessTokenFactory = this._options.accessTokenFactory;\r\n\r\n        try {\r\n            if (this._options.skipNegotiation) {\r\n                if (this._options.transport === HttpTransportType.WebSockets) {\r\n                    // No need to add a connection ID in this case\r\n                    this.transport = this._constructTransport(HttpTransportType.WebSockets);\r\n                    // We should just call connect directly in this case.\r\n                    // No fallback or negotiate in this case.\r\n                    await this._startTransport(url, transferFormat);\r\n                } else {\r\n                    throw new Error(\"Negotiation can only be skipped when using the WebSocket transport directly.\");\r\n                }\r\n            } else {\r\n                let negotiateResponse: INegotiateResponse | null = null;\r\n                let redirects = 0;\r\n\r\n                do {\r\n                    negotiateResponse = await this._getNegotiationResponse(url);\r\n                    // the user tries to stop the connection when it is being started\r\n                    if (this._connectionState === ConnectionState.Disconnecting || this._connectionState === ConnectionState.Disconnected) {\r\n                        throw new Error(\"The connection was stopped during negotiation.\");\r\n                    }\r\n\r\n                    if (negotiateResponse.error) {\r\n                        throw new Error(negotiateResponse.error);\r\n                    }\r\n\r\n                    if ((negotiateResponse as any).ProtocolVersion) {\r\n                        throw new Error(\"Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.\");\r\n                    }\r\n\r\n                    if (negotiateResponse.url) {\r\n                        url = negotiateResponse.url;\r\n                    }\r\n\r\n                    if (negotiateResponse.accessToken) {\r\n                        // Replace the current access token factory with one that uses\r\n                        // the returned access token\r\n                        const accessToken = negotiateResponse.accessToken;\r\n                        this._accessTokenFactory = () => accessToken;\r\n                    }\r\n\r\n                    redirects++;\r\n                }\r\n                while (negotiateResponse.url && redirects < MAX_REDIRECTS);\r\n\r\n                if (redirects === MAX_REDIRECTS && negotiateResponse.url) {\r\n                    throw new Error(\"Negotiate redirection limit exceeded.\");\r\n                }\r\n\r\n                await this._createTransport(url, this._options.transport, negotiateResponse, transferFormat);\r\n            }\r\n\r\n            if (this.transport instanceof LongPollingTransport) {\r\n                this.features.inherentKeepAlive = true;\r\n            }\r\n\r\n            if (this._connectionState === ConnectionState.Connecting) {\r\n                // Ensure the connection transitions to the connected state prior to completing this.startInternalPromise.\r\n                // start() will handle the case when stop was called and startInternal exits still in the disconnecting state.\r\n                this._logger.log(LogLevel.Debug, \"The HttpConnection connected successfully.\");\r\n                this._connectionState = ConnectionState.Connected;\r\n            }\r\n\r\n            // stop() is waiting on us via this.startInternalPromise so keep this.transport around so it can clean up.\r\n            // This is the only case startInternal can exit in neither the connected nor disconnected state because stopConnection()\r\n            // will transition to the disconnected state. start() will wait for the transition using the stopPromise.\r\n        } catch (e) {\r\n            this._logger.log(LogLevel.Error, \"Failed to start the connection: \" + e);\r\n            this._connectionState = ConnectionState.Disconnected;\r\n            this.transport = undefined;\r\n\r\n            // if start fails, any active calls to stop assume that start will complete the stop promise\r\n            this._stopPromiseResolver();\r\n            return Promise.reject(e);\r\n        }\r\n    }\r\n\r\n    private async _getNegotiationResponse(url: string): Promise<INegotiateResponse> {\r\n        const headers: {[k: string]: string} = {};\r\n        if (this._accessTokenFactory) {\r\n            const token = await this._accessTokenFactory();\r\n            if (token) {\r\n                headers[HeaderNames.Authorization] = `Bearer ${token}`;\r\n            }\r\n        }\r\n\r\n        const [name, value] = getUserAgentHeader();\r\n        headers[name] = value;\r\n\r\n        const negotiateUrl = this._resolveNegotiateUrl(url);\r\n        this._logger.log(LogLevel.Debug, `Sending negotiation request: ${negotiateUrl}.`);\r\n        try {\r\n            const response = await this._httpClient.post(negotiateUrl, {\r\n                content: \"\",\r\n                headers: { ...headers, ...this._options.headers },\r\n                timeout: this._options.timeout,\r\n                withCredentials: this._options.withCredentials,\r\n            });\r\n\r\n            if (response.statusCode !== 200) {\r\n                return Promise.reject(new Error(`Unexpected status code returned from negotiate '${response.statusCode}'`));\r\n            }\r\n\r\n            const negotiateResponse = JSON.parse(response.content as string) as INegotiateResponse;\r\n            if (!negotiateResponse.negotiateVersion || negotiateResponse.negotiateVersion < 1) {\r\n                // Negotiate version 0 doesn't use connectionToken\r\n                // So we set it equal to connectionId so all our logic can use connectionToken without being aware of the negotiate version\r\n                negotiateResponse.connectionToken = negotiateResponse.connectionId;\r\n            }\r\n            return negotiateResponse;\r\n        } catch (e) {\r\n            let errorMessage = \"Failed to complete negotiation with the server: \" + e;\r\n            if (e instanceof HttpError) {\r\n                if (e.statusCode === 404) {\r\n                    errorMessage = errorMessage + \" Either this is not a SignalR endpoint or there is a proxy blocking the connection.\";\r\n                }\r\n            }\r\n            this._logger.log(LogLevel.Error, errorMessage);\r\n\r\n            return Promise.reject(new FailedToNegotiateWithServerError(errorMessage));\r\n        }\r\n    }\r\n\r\n    private _createConnectUrl(url: string, connectionToken: string | null | undefined) {\r\n        if (!connectionToken) {\r\n            return url;\r\n        }\r\n\r\n        return url + (url.indexOf(\"?\") === -1 ? \"?\" : \"&\") + `id=${connectionToken}`;\r\n    }\r\n\r\n    private async _createTransport(url: string, requestedTransport: HttpTransportType | ITransport | undefined, negotiateResponse: INegotiateResponse, requestedTransferFormat: TransferFormat): Promise<void> {\r\n        let connectUrl = this._createConnectUrl(url, negotiateResponse.connectionToken);\r\n        if (this._isITransport(requestedTransport)) {\r\n            this._logger.log(LogLevel.Debug, \"Connection was provided an instance of ITransport, using that directly.\");\r\n            this.transport = requestedTransport;\r\n            await this._startTransport(connectUrl, requestedTransferFormat);\r\n\r\n            this.connectionId = negotiateResponse.connectionId;\r\n            return;\r\n        }\r\n\r\n        const transportExceptions: any[] = [];\r\n        const transports = negotiateResponse.availableTransports || [];\r\n        let negotiate: INegotiateResponse | undefined = negotiateResponse;\r\n        for (const endpoint of transports) {\r\n            const transportOrError = this._resolveTransportOrError(endpoint, requestedTransport, requestedTransferFormat);\r\n            if (transportOrError instanceof Error) {\r\n                // Store the error and continue, we don't want to cause a re-negotiate in these cases\r\n                transportExceptions.push(`${endpoint.transport} failed:`);\r\n                transportExceptions.push(transportOrError);\r\n            } else if (this._isITransport(transportOrError)) {\r\n                this.transport = transportOrError;\r\n                if (!negotiate) {\r\n                    try {\r\n                        negotiate = await this._getNegotiationResponse(url);\r\n                    } catch (ex) {\r\n                        return Promise.reject(ex);\r\n                    }\r\n                    connectUrl = this._createConnectUrl(url, negotiate.connectionToken);\r\n                }\r\n                try {\r\n                    await this._startTransport(connectUrl, requestedTransferFormat);\r\n                    this.connectionId = negotiate.connectionId;\r\n                    return;\r\n                } catch (ex) {\r\n                    this._logger.log(LogLevel.Error, `Failed to start the transport '${endpoint.transport}': ${ex}`);\r\n                    negotiate = undefined;\r\n                    transportExceptions.push(new FailedToStartTransportError(`${endpoint.transport} failed: ${ex}`, HttpTransportType[endpoint.transport]));\r\n\r\n                    if (this._connectionState !== ConnectionState.Connecting) {\r\n                        const message = \"Failed to select transport before stop() was called.\";\r\n                        this._logger.log(LogLevel.Debug, message);\r\n                        return Promise.reject(new Error(message));\r\n                    }\r\n                }\r\n            }\r\n        }\r\n\r\n        if (transportExceptions.length > 0) {\r\n            return Promise.reject(new AggregateErrors(`Unable to connect to the server with any of the available transports. ${transportExceptions.join(\" \")}`, transportExceptions));\r\n        }\r\n        return Promise.reject(new Error(\"None of the transports supported by the client are supported by the server.\"));\r\n    }\r\n\r\n    private _constructTransport(transport: HttpTransportType): ITransport {\r\n        switch (transport) {\r\n            case HttpTransportType.WebSockets:\r\n                if (!this._options.WebSocket) {\r\n                    throw new Error(\"'WebSocket' is not supported in your environment.\");\r\n                }\r\n                return new WebSocketTransport(this._httpClient, this._accessTokenFactory, this._logger, this._options.logMessageContent!, this._options.WebSocket, this._options.headers || {});\r\n            case HttpTransportType.ServerSentEvents:\r\n                if (!this._options.EventSource) {\r\n                    throw new Error(\"'EventSource' is not supported in your environment.\");\r\n                }\r\n                return new ServerSentEventsTransport(this._httpClient, this._accessTokenFactory, this._logger, this._options);\r\n            case HttpTransportType.LongPolling:\r\n                return new LongPollingTransport(this._httpClient, this._accessTokenFactory, this._logger, this._options);\r\n            default:\r\n                throw new Error(`Unknown transport: ${transport}.`);\r\n        }\r\n    }\r\n\r\n    private _startTransport(url: string, transferFormat: TransferFormat): Promise<void> {\r\n        this.transport!.onreceive = this.onreceive;\r\n        this.transport!.onclose = (e) => this._stopConnection(e);\r\n        return this.transport!.connect(url, transferFormat);\r\n    }\r\n\r\n    private _resolveTransportOrError(endpoint: IAvailableTransport, requestedTransport: HttpTransportType | undefined, requestedTransferFormat: TransferFormat): ITransport | Error {\r\n        const transport = HttpTransportType[endpoint.transport];\r\n        if (transport === null || transport === undefined) {\r\n            this._logger.log(LogLevel.Debug, `Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n            return new Error(`Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n        } else {\r\n            if (transportMatches(requestedTransport, transport)) {\r\n                const transferFormats = endpoint.transferFormats.map((s) => TransferFormat[s]);\r\n                if (transferFormats.indexOf(requestedTransferFormat) >= 0) {\r\n                    if ((transport === HttpTransportType.WebSockets && !this._options.WebSocket) ||\r\n                        (transport === HttpTransportType.ServerSentEvents && !this._options.EventSource)) {\r\n                        this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it is not supported in your environment.'`);\r\n                        return new UnsupportedTransportError(`'${HttpTransportType[transport]}' is not supported in your environment.`, transport);\r\n                    } else {\r\n                        this._logger.log(LogLevel.Debug, `Selecting transport '${HttpTransportType[transport]}'.`);\r\n                        try {\r\n                            return this._constructTransport(transport);\r\n                        } catch (ex) {\r\n                            return ex;\r\n                        }\r\n                    }\r\n                } else {\r\n                    this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it does not support the requested transfer format '${TransferFormat[requestedTransferFormat]}'.`);\r\n                    return new Error(`'${HttpTransportType[transport]}' does not support ${TransferFormat[requestedTransferFormat]}.`);\r\n                }\r\n            } else {\r\n                this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it was disabled by the client.`);\r\n                return new DisabledTransportError(`'${HttpTransportType[transport]}' is disabled by the client.`, transport);\r\n            }\r\n        }\r\n    }\r\n\r\n    private _isITransport(transport: any): transport is ITransport {\r\n        return transport && typeof (transport) === \"object\" && \"connect\" in transport;\r\n    }\r\n\r\n    private _stopConnection(error?: Error): void {\r\n        this._logger.log(LogLevel.Debug, `HttpConnection.stopConnection(${error}) called while in state ${this._connectionState}.`);\r\n\r\n        this.transport = undefined;\r\n\r\n        // If we have a stopError, it takes precedence over the error from the transport\r\n        error = this._stopError || error;\r\n        this._stopError = undefined;\r\n\r\n        if (this._connectionState === ConnectionState.Disconnected) {\r\n            this._logger.log(LogLevel.Debug, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is already in the disconnected state.`);\r\n            return;\r\n        }\r\n\r\n        if (this._connectionState === ConnectionState.Connecting) {\r\n            this._logger.log(LogLevel.Warning, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is still in the connecting state.`);\r\n            throw new Error(`HttpConnection.stopConnection(${error}) was called while the connection is still in the connecting state.`);\r\n        }\r\n\r\n        if (this._connectionState === ConnectionState.Disconnecting) {\r\n            // A call to stop() induced this call to stopConnection and needs to be completed.\r\n            // Any stop() awaiters will be scheduled to continue after the onclose callback fires.\r\n            this._stopPromiseResolver();\r\n        }\r\n\r\n        if (error) {\r\n            this._logger.log(LogLevel.Error, `Connection disconnected with error '${error}'.`);\r\n        } else {\r\n            this._logger.log(LogLevel.Information, \"Connection disconnected.\");\r\n        }\r\n\r\n        if (this._sendQueue) {\r\n            this._sendQueue.stop().catch((e) => {\r\n                this._logger.log(LogLevel.Error, `TransportSendQueue.stop() threw error '${e}'.`);\r\n            });\r\n            this._sendQueue = undefined;\r\n        }\r\n\r\n        this.connectionId = undefined;\r\n        this._connectionState = ConnectionState.Disconnected;\r\n\r\n        if (this._connectionStarted) {\r\n            this._connectionStarted = false;\r\n            try {\r\n                if (this.onclose) {\r\n                    this.onclose(error);\r\n                }\r\n            } catch (e) {\r\n                this._logger.log(LogLevel.Error, `HttpConnection.onclose(${error}) threw error '${e}'.`);\r\n            }\r\n        }\r\n    }\r\n\r\n    private _resolveUrl(url: string): string {\r\n        // startsWith is not supported in IE\r\n        if (url.lastIndexOf(\"https://\", 0) === 0 || url.lastIndexOf(\"http://\", 0) === 0) {\r\n            return url;\r\n        }\r\n\r\n        if (!Platform.isBrowser) {\r\n            throw new Error(`Cannot resolve '${url}'.`);\r\n        }\r\n\r\n        // Setting the url to the href propery of an anchor tag handles normalization\r\n        // for us. There are 3 main cases.\r\n        // 1. Relative path normalization e.g \"b\" -> \"http://localhost:5000/a/b\"\r\n        // 2. Absolute path normalization e.g \"/a/b\" -> \"http://localhost:5000/a/b\"\r\n        // 3. Networkpath reference normalization e.g \"//localhost:5000/a/b\" -> \"http://localhost:5000/a/b\"\r\n        const aTag = window.document.createElement(\"a\");\r\n        aTag.href = url;\r\n\r\n        this._logger.log(LogLevel.Information, `Normalizing '${url}' to '${aTag.href}'.`);\r\n        return aTag.href;\r\n    }\r\n\r\n    private _resolveNegotiateUrl(url: string): string {\r\n        const index = url.indexOf(\"?\");\r\n        let negotiateUrl = url.substring(0, index === -1 ? url.length : index);\r\n        if (negotiateUrl[negotiateUrl.length - 1] !== \"/\") {\r\n            negotiateUrl += \"/\";\r\n        }\r\n        negotiateUrl += \"negotiate\";\r\n        negotiateUrl += index === -1 ? \"\" : url.substring(index);\r\n\r\n        if (negotiateUrl.indexOf(\"negotiateVersion\") === -1) {\r\n            negotiateUrl += index === -1 ? \"?\" : \"&\";\r\n            negotiateUrl += \"negotiateVersion=\" + this._negotiateVersion;\r\n        }\r\n        return negotiateUrl;\r\n    }\r\n}\r\n\r\nfunction transportMatches(requestedTransport: HttpTransportType | undefined, actualTransport: HttpTransportType) {\r\n    return !requestedTransport || ((actualTransport & requestedTransport) !== 0);\r\n}\r\n\r\n/** @private */\r\nexport class TransportSendQueue {\r\n    private _buffer: any[] = [];\r\n    private _sendBufferedData: PromiseSource;\r\n    private _executing: boolean = true;\r\n    private _transportResult?: PromiseSource;\r\n    private _sendLoopPromise: Promise<void>;\r\n\r\n    constructor(private readonly _transport: ITransport) {\r\n        this._sendBufferedData = new PromiseSource();\r\n        this._transportResult = new PromiseSource();\r\n\r\n        this._sendLoopPromise = this._sendLoop();\r\n    }\r\n\r\n    public send(data: string | ArrayBuffer): Promise<void> {\r\n        this._bufferData(data);\r\n        if (!this._transportResult) {\r\n            this._transportResult = new PromiseSource();\r\n        }\r\n        return this._transportResult.promise;\r\n    }\r\n\r\n    public stop(): Promise<void> {\r\n        this._executing = false;\r\n        this._sendBufferedData.resolve();\r\n        return this._sendLoopPromise;\r\n    }\r\n\r\n    private _bufferData(data: string | ArrayBuffer): void {\r\n        if (this._buffer.length && typeof(this._buffer[0]) !== typeof(data)) {\r\n            throw new Error(`Expected data to be of type ${typeof(this._buffer)} but was of type ${typeof(data)}`);\r\n        }\r\n\r\n        this._buffer.push(data);\r\n        this._sendBufferedData.resolve();\r\n    }\r\n\r\n    private async _sendLoop(): Promise<void> {\r\n        while (true) {\r\n            await this._sendBufferedData.promise;\r\n\r\n            if (!this._executing) {\r\n                if (this._transportResult) {\r\n                    this._transportResult.reject(\"Connection stopped.\");\r\n                }\r\n\r\n                break;\r\n            }\r\n\r\n            this._sendBufferedData = new PromiseSource();\r\n\r\n            const transportResult = this._transportResult!;\r\n            this._transportResult = undefined;\r\n\r\n            const data = typeof(this._buffer[0]) === \"string\" ?\r\n                this._buffer.join(\"\") :\r\n                TransportSendQueue._concatBuffers(this._buffer);\r\n\r\n            this._buffer.length = 0;\r\n\r\n            try {\r\n                await this._transport.send(data);\r\n                transportResult.resolve();\r\n            } catch (error) {\r\n                transportResult.reject(error);\r\n            }\r\n        }\r\n    }\r\n\r\n    private static _concatBuffers(arrayBuffers: ArrayBuffer[]): ArrayBuffer {\r\n        const totalLength = arrayBuffers.map((b) => b.byteLength).reduce((a, b) => a + b);\r\n        const result = new Uint8Array(totalLength);\r\n        let offset = 0;\r\n        for (const item of arrayBuffers) {\r\n            result.set(new Uint8Array(item), offset);\r\n            offset += item.byteLength;\r\n        }\r\n\r\n        return result.buffer;\r\n    }\r\n}\r\n\r\nclass PromiseSource {\r\n    private _resolver?: () => void;\r\n    private _rejecter!: (reason?: any) => void;\r\n    public promise: Promise<void>;\r\n\r\n    constructor() {\r\n        this.promise = new Promise((resolve, reject) => [this._resolver, this._rejecter] = [resolve, reject]);\r\n    }\r\n\r\n    public resolve(): void {\r\n        this._resolver!();\r\n    }\r\n\r\n    public reject(reason?: any): void {\r\n        this._rejecter!(reason);\r\n    }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// Not exported from index\r\n/** @private */\r\nexport class TextMessageFormat {\r\n    public static RecordSeparatorCode = 0x1e;\r\n    public static RecordSeparator = String.fromCharCode(TextMessageFormat.RecordSeparatorCode);\r\n\r\n    public static write(output: string): string {\r\n        return `${output}${TextMessageFormat.RecordSeparator}`;\r\n    }\r\n\r\n    public static parse(input: string): string[] {\r\n        if (input[input.length - 1] !== TextMessageFormat.RecordSeparator) {\r\n            throw new Error(\"Message is incomplete.\");\r\n        }\r\n\r\n        const messages = input.split(TextMessageFormat.RecordSeparator);\r\n        messages.pop();\r\n        return messages;\r\n    }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n\r\n/** @private */\r\nexport interface HandshakeRequestMessage {\r\n    readonly protocol: string;\r\n    readonly version: number;\r\n}\r\n\r\n/** @private */\r\nexport interface HandshakeResponseMessage {\r\n    readonly error: string;\r\n    readonly minorVersion: number;\r\n}\r\n\r\n/** @private */\r\nexport class HandshakeProtocol {\r\n    // Handshake request is always JSON\r\n    public writeHandshakeRequest(handshakeRequest: HandshakeRequestMessage): string {\r\n        return TextMessageFormat.write(JSON.stringify(handshakeRequest));\r\n    }\r\n\r\n    public parseHandshakeResponse(data: any): [any, HandshakeResponseMessage] {\r\n        let messageData: string;\r\n        let remainingData: any;\r\n\r\n        if (isArrayBuffer(data)) {\r\n            // Format is binary but still need to read JSON text from handshake response\r\n            const binaryData = new Uint8Array(data);\r\n            const separatorIndex = binaryData.indexOf(TextMessageFormat.RecordSeparatorCode);\r\n            if (separatorIndex === -1) {\r\n                throw new Error(\"Message is incomplete.\");\r\n            }\r\n\r\n            // content before separator is handshake response\r\n            // optional content after is additional messages\r\n            const responseLength = separatorIndex + 1;\r\n            messageData = String.fromCharCode.apply(null, Array.prototype.slice.call(binaryData.slice(0, responseLength)));\r\n            remainingData = (binaryData.byteLength > responseLength) ? binaryData.slice(responseLength).buffer : null;\r\n        } else {\r\n            const textData: string = data;\r\n            const separatorIndex = textData.indexOf(TextMessageFormat.RecordSeparator);\r\n            if (separatorIndex === -1) {\r\n                throw new Error(\"Message is incomplete.\");\r\n            }\r\n\r\n            // content before separator is handshake response\r\n            // optional content after is additional messages\r\n            const responseLength = separatorIndex + 1;\r\n            messageData = textData.substring(0, responseLength);\r\n            remainingData = (textData.length > responseLength) ? textData.substring(responseLength) : null;\r\n        }\r\n\r\n        // At this point we should have just the single handshake message\r\n        const messages = TextMessageFormat.parse(messageData);\r\n        const response = JSON.parse(messages[0]);\r\n        if (response.type) {\r\n            throw new Error(\"Expected a handshake response from the server.\");\r\n        }\r\n        const responseMessage: HandshakeResponseMessage = response;\r\n\r\n        // multiple messages could have arrived with handshake\r\n        // return additional data to be parsed as usual, or null if all parsed\r\n        return [remainingData, responseMessage];\r\n    }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { ILogger } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\n\r\n/** Defines the type of a Hub Message. */\r\nexport enum MessageType {\r\n    /** Indicates the message is an Invocation message and implements the {@link @microsoft/signalr.InvocationMessage} interface. */\r\n    Invocation = 1,\r\n    /** Indicates the message is a StreamItem message and implements the {@link @microsoft/signalr.StreamItemMessage} interface. */\r\n    StreamItem = 2,\r\n    /** Indicates the message is a Completion message and implements the {@link @microsoft/signalr.CompletionMessage} interface. */\r\n    Completion = 3,\r\n    /** Indicates the message is a Stream Invocation message and implements the {@link @microsoft/signalr.StreamInvocationMessage} interface. */\r\n    StreamInvocation = 4,\r\n    /** Indicates the message is a Cancel Invocation message and implements the {@link @microsoft/signalr.CancelInvocationMessage} interface. */\r\n    CancelInvocation = 5,\r\n    /** Indicates the message is a Ping message and implements the {@link @microsoft/signalr.PingMessage} interface. */\r\n    Ping = 6,\r\n    /** Indicates the message is a Close message and implements the {@link @microsoft/signalr.CloseMessage} interface. */\r\n    Close = 7,\r\n}\r\n\r\n/** Defines a dictionary of string keys and string values representing headers attached to a Hub message. */\r\nexport interface MessageHeaders {\r\n    /** Gets or sets the header with the specified key. */\r\n    [key: string]: string;\r\n}\r\n\r\n/** Union type of all known Hub messages. */\r\nexport type HubMessage =\r\n    InvocationMessage |\r\n    StreamInvocationMessage |\r\n    StreamItemMessage |\r\n    CompletionMessage |\r\n    CancelInvocationMessage |\r\n    PingMessage |\r\n    CloseMessage;\r\n\r\n/** Defines properties common to all Hub messages. */\r\nexport interface HubMessageBase {\r\n    /** A {@link @microsoft/signalr.MessageType} value indicating the type of this message. */\r\n    readonly type: MessageType;\r\n}\r\n\r\n/** Defines properties common to all Hub messages relating to a specific invocation. */\r\nexport interface HubInvocationMessage extends HubMessageBase {\r\n    /** A {@link @microsoft/signalr.MessageHeaders} dictionary containing headers attached to the message. */\r\n    readonly headers?: MessageHeaders;\r\n    /** The ID of the invocation relating to this message.\r\n     *\r\n     * This is expected to be present for {@link @microsoft/signalr.StreamInvocationMessage} and {@link @microsoft/signalr.CompletionMessage}. It may\r\n     * be 'undefined' for an {@link @microsoft/signalr.InvocationMessage} if the sender does not expect a response.\r\n     */\r\n    readonly invocationId?: string;\r\n}\r\n\r\n/** A hub message representing a non-streaming invocation. */\r\nexport interface InvocationMessage extends HubInvocationMessage {\r\n    /** @inheritDoc */\r\n    readonly type: MessageType.Invocation;\r\n    /** The target method name. */\r\n    readonly target: string;\r\n    /** The target method arguments. */\r\n    readonly arguments: any[];\r\n    /** The target methods stream IDs. */\r\n    readonly streamIds?: string[];\r\n}\r\n\r\n/** A hub message representing a streaming invocation. */\r\nexport interface StreamInvocationMessage extends HubInvocationMessage {\r\n    /** @inheritDoc */\r\n    readonly type: MessageType.StreamInvocation;\r\n\r\n    /** The invocation ID. */\r\n    readonly invocationId: string;\r\n    /** The target method name. */\r\n    readonly target: string;\r\n    /** The target method arguments. */\r\n    readonly arguments: any[];\r\n    /** The target methods stream IDs. */\r\n    readonly streamIds?: string[];\r\n}\r\n\r\n/** A hub message representing a single item produced as part of a result stream. */\r\nexport interface StreamItemMessage extends HubInvocationMessage {\r\n    /** @inheritDoc */\r\n    readonly type: MessageType.StreamItem;\r\n\r\n    /** The invocation ID. */\r\n    readonly invocationId: string;\r\n\r\n    /** The item produced by the server. */\r\n    readonly item?: any;\r\n}\r\n\r\n/** A hub message representing the result of an invocation. */\r\nexport interface CompletionMessage extends HubInvocationMessage {\r\n    /** @inheritDoc */\r\n    readonly type: MessageType.Completion;\r\n    /** The invocation ID. */\r\n    readonly invocationId: string;\r\n    /** The error produced by the invocation, if any.\r\n     *\r\n     * Either {@link @microsoft/signalr.CompletionMessage.error} or {@link @microsoft/signalr.CompletionMessage.result} must be defined, but not both.\r\n     */\r\n    readonly error?: string;\r\n    /** The result produced by the invocation, if any.\r\n     *\r\n     * Either {@link @microsoft/signalr.CompletionMessage.error} or {@link @microsoft/signalr.CompletionMessage.result} must be defined, but not both.\r\n     */\r\n    readonly result?: any;\r\n}\r\n\r\n/** A hub message indicating that the sender is still active. */\r\nexport interface PingMessage extends HubMessageBase {\r\n    /** @inheritDoc */\r\n    readonly type: MessageType.Ping;\r\n}\r\n\r\n/** A hub message indicating that the sender is closing the connection.\r\n *\r\n * If {@link @microsoft/signalr.CloseMessage.error} is defined, the sender is closing the connection due to an error.\r\n */\r\nexport interface CloseMessage extends HubMessageBase {\r\n    /** @inheritDoc */\r\n    readonly type: MessageType.Close;\r\n    /** The error that triggered the close, if any.\r\n     *\r\n     * If this property is undefined, the connection was closed normally and without error.\r\n     */\r\n    readonly error?: string;\r\n\r\n    /** If true, clients with automatic reconnects enabled should attempt to reconnect after receiving the CloseMessage. Otherwise, they should not. */\r\n    readonly allowReconnect?: boolean;\r\n}\r\n\r\n/** A hub message sent to request that a streaming invocation be canceled. */\r\nexport interface CancelInvocationMessage extends HubInvocationMessage {\r\n    /** @inheritDoc */\r\n    readonly type: MessageType.CancelInvocation;\r\n    /** The invocation ID. */\r\n    readonly invocationId: string;\r\n}\r\n\r\n/** A protocol abstraction for communicating with SignalR Hubs.  */\r\nexport interface IHubProtocol {\r\n    /** The name of the protocol. This is used by SignalR to resolve the protocol between the client and server. */\r\n    readonly name: string;\r\n    /** The version of the protocol. */\r\n    readonly version: number;\r\n    /** The {@link @microsoft/signalr.TransferFormat} of the protocol. */\r\n    readonly transferFormat: TransferFormat;\r\n\r\n    /** Creates an array of {@link @microsoft/signalr.HubMessage} objects from the specified serialized representation.\r\n     *\r\n     * If {@link @microsoft/signalr.IHubProtocol.transferFormat} is 'Text', the `input` parameter must be a string, otherwise it must be an ArrayBuffer.\r\n     *\r\n     * @param {string | ArrayBuffer} input A string or ArrayBuffer containing the serialized representation.\r\n     * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n     */\r\n    parseMessages(input: string | ArrayBuffer, logger: ILogger): HubMessage[];\r\n\r\n    /** Writes the specified {@link @microsoft/signalr.HubMessage} to a string or ArrayBuffer and returns it.\r\n     *\r\n     * If {@link @microsoft/signalr.IHubProtocol.transferFormat} is 'Text', the result of this method will be a string, otherwise it will be an ArrayBuffer.\r\n     *\r\n     * @param {HubMessage} message The message to write.\r\n     * @returns {string | ArrayBuffer} A string or ArrayBuffer containing the serialized representation of the message.\r\n     */\r\n    writeMessage(message: HubMessage): string | ArrayBuffer;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { IStreamResult, IStreamSubscriber, ISubscription } from \"./Stream\";\r\nimport { SubjectSubscription } from \"./Utils\";\r\n\r\n/** Stream implementation to stream items to the server. */\r\nexport class Subject<T> implements IStreamResult<T> {\r\n    /** @internal */\r\n    public observers: IStreamSubscriber<T>[];\r\n\r\n    /** @internal */\r\n    public cancelCallback?: () => Promise<void>;\r\n\r\n    constructor() {\r\n        this.observers = [];\r\n    }\r\n\r\n    public next(item: T): void {\r\n        for (const observer of this.observers) {\r\n            observer.next(item);\r\n        }\r\n    }\r\n\r\n    public error(err: any): void {\r\n        for (const observer of this.observers) {\r\n            if (observer.error) {\r\n                observer.error(err);\r\n            }\r\n        }\r\n    }\r\n\r\n    public complete(): void {\r\n        for (const observer of this.observers) {\r\n            if (observer.complete) {\r\n                observer.complete();\r\n            }\r\n        }\r\n    }\r\n\r\n    public subscribe(observer: IStreamSubscriber<T>): ISubscription<T> {\r\n        this.observers.push(observer);\r\n        return new SubjectSubscription(this, observer);\r\n    }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HandshakeProtocol, HandshakeRequestMessage, HandshakeResponseMessage } from \"./HandshakeProtocol\";\r\nimport { IConnection } from \"./IConnection\";\r\nimport { CancelInvocationMessage, CompletionMessage, IHubProtocol, InvocationMessage, MessageType, StreamInvocationMessage, StreamItemMessage } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { IRetryPolicy } from \"./IRetryPolicy\";\r\nimport { IStreamResult } from \"./Stream\";\r\nimport { Subject } from \"./Subject\";\r\nimport { Arg, getErrorString, Platform } from \"./Utils\";\r\n\r\nconst DEFAULT_TIMEOUT_IN_MS: number = 30 * 1000;\r\nconst DEFAULT_PING_INTERVAL_IN_MS: number = 15 * 1000;\r\n\r\n/** Describes the current state of the {@link HubConnection} to the server. */\r\nexport enum HubConnectionState {\r\n    /** The hub connection is disconnected. */\r\n    Disconnected = \"Disconnected\",\r\n    /** The hub connection is connecting. */\r\n    Connecting = \"Connecting\",\r\n    /** The hub connection is connected. */\r\n    Connected = \"Connected\",\r\n    /** The hub connection is disconnecting. */\r\n    Disconnecting = \"Disconnecting\",\r\n    /** The hub connection is reconnecting. */\r\n    Reconnecting = \"Reconnecting\",\r\n}\r\n\r\n/** Represents a connection to a SignalR Hub. */\r\nexport class HubConnection {\r\n    private readonly _cachedPingMessage: string | ArrayBuffer;\r\n    // Needs to not start with _ for tests\r\n    // eslint-disable-next-line @typescript-eslint/naming-convention\r\n    private readonly connection: IConnection;\r\n    private readonly _logger: ILogger;\r\n    private readonly _reconnectPolicy?: IRetryPolicy;\r\n    private _protocol: IHubProtocol;\r\n    private _handshakeProtocol: HandshakeProtocol;\r\n    private _callbacks: { [invocationId: string]: (invocationEvent: StreamItemMessage | CompletionMessage | null, error?: Error) => void };\r\n    private _methods: { [name: string]: ((...args: any[]) => void)[] };\r\n    private _invocationId: number;\r\n\r\n    private _closedCallbacks: ((error?: Error) => void)[];\r\n    private _reconnectingCallbacks: ((error?: Error) => void)[];\r\n    private _reconnectedCallbacks: ((connectionId?: string) => void)[];\r\n\r\n    private _receivedHandshakeResponse: boolean;\r\n    private _handshakeResolver!: (value?: PromiseLike<{}>) => void;\r\n    private _handshakeRejecter!: (reason?: any) => void;\r\n    private _stopDuringStartError?: Error;\r\n\r\n    private _connectionState: HubConnectionState;\r\n    // connectionStarted is tracked independently from connectionState, so we can check if the\r\n    // connection ever did successfully transition from connecting to connected before disconnecting.\r\n    private _connectionStarted: boolean;\r\n    private _startPromise?: Promise<void>;\r\n    private _stopPromise?: Promise<void>;\r\n    private _nextKeepAlive: number = 0;\r\n\r\n    // The type of these a) doesn't matter and b) varies when building in browser and node contexts\r\n    // Since we're building the WebPack bundle directly from the TypeScript, this matters (previously\r\n    // we built the bundle from the compiled JavaScript).\r\n    private _reconnectDelayHandle?: any;\r\n    private _timeoutHandle?: any;\r\n    private _pingServerHandle?: any;\r\n\r\n    private _freezeEventListener = () =>\r\n    {\r\n        this._logger.log(LogLevel.Warning, \"The page is being frozen, this will likely lead to the connection being closed and messages being lost. For more information see the docs at https://docs.microsoft.com/aspnet/core/signalr/javascript-client#bsleep\");\r\n    };\r\n\r\n    /** The server timeout in milliseconds.\r\n     *\r\n     * If this timeout elapses without receiving any messages from the server, the connection will be terminated with an error.\r\n     * The default timeout value is 30,000 milliseconds (30 seconds).\r\n     */\r\n    public serverTimeoutInMilliseconds: number;\r\n\r\n    /** Default interval at which to ping the server.\r\n     *\r\n     * The default value is 15,000 milliseconds (15 seconds).\r\n     * Allows the server to detect hard disconnects (like when a client unplugs their computer).\r\n     * The ping will happen at most as often as the server pings.\r\n     * If the server pings every 5 seconds, a value lower than 5 will ping every 5 seconds.\r\n     */\r\n    public keepAliveIntervalInMilliseconds: number;\r\n\r\n    /** @internal */\r\n    // Using a public static factory method means we can have a private constructor and an _internal_\r\n    // create method that can be used by HubConnectionBuilder. An \"internal\" constructor would just\r\n    // be stripped away and the '.d.ts' file would have no constructor, which is interpreted as a\r\n    // public parameter-less constructor.\r\n    public static create(connection: IConnection, logger: ILogger, protocol: IHubProtocol, reconnectPolicy?: IRetryPolicy): HubConnection {\r\n        return new HubConnection(connection, logger, protocol, reconnectPolicy);\r\n    }\r\n\r\n    private constructor(connection: IConnection, logger: ILogger, protocol: IHubProtocol, reconnectPolicy?: IRetryPolicy) {\r\n        Arg.isRequired(connection, \"connection\");\r\n        Arg.isRequired(logger, \"logger\");\r\n        Arg.isRequired(protocol, \"protocol\");\r\n\r\n        this.serverTimeoutInMilliseconds = DEFAULT_TIMEOUT_IN_MS;\r\n        this.keepAliveIntervalInMilliseconds = DEFAULT_PING_INTERVAL_IN_MS;\r\n\r\n        this._logger = logger;\r\n        this._protocol = protocol;\r\n        this.connection = connection;\r\n        this._reconnectPolicy = reconnectPolicy;\r\n        this._handshakeProtocol = new HandshakeProtocol();\r\n\r\n        this.connection.onreceive = (data: any) => this._processIncomingData(data);\r\n        this.connection.onclose = (error?: Error) => this._connectionClosed(error);\r\n\r\n        this._callbacks = {};\r\n        this._methods = {};\r\n        this._closedCallbacks = [];\r\n        this._reconnectingCallbacks = [];\r\n        this._reconnectedCallbacks = [];\r\n        this._invocationId = 0;\r\n        this._receivedHandshakeResponse = false;\r\n        this._connectionState = HubConnectionState.Disconnected;\r\n        this._connectionStarted = false;\r\n\r\n        this._cachedPingMessage = this._protocol.writeMessage({ type: MessageType.Ping });\r\n    }\r\n\r\n    /** Indicates the state of the {@link HubConnection} to the server. */\r\n    get state(): HubConnectionState {\r\n        return this._connectionState;\r\n    }\r\n\r\n    /** Represents the connection id of the {@link HubConnection} on the server. The connection id will be null when the connection is either\r\n     *  in the disconnected state or if the negotiation step was skipped.\r\n     */\r\n    get connectionId(): string | null {\r\n        return this.connection ? (this.connection.connectionId || null) : null;\r\n    }\r\n\r\n    /** Indicates the url of the {@link HubConnection} to the server. */\r\n    get baseUrl(): string {\r\n        return this.connection.baseUrl || \"\";\r\n    }\r\n\r\n    /**\r\n     * Sets a new url for the HubConnection. Note that the url can only be changed when the connection is in either the Disconnected or\r\n     * Reconnecting states.\r\n     * @param {string} url The url to connect to.\r\n     */\r\n    set baseUrl(url: string) {\r\n        if (this._connectionState !== HubConnectionState.Disconnected && this._connectionState !== HubConnectionState.Reconnecting) {\r\n            throw new Error(\"The HubConnection must be in the Disconnected or Reconnecting state to change the url.\");\r\n        }\r\n\r\n        if (!url) {\r\n            throw new Error(\"The HubConnection url must be a valid url.\");\r\n        }\r\n\r\n        this.connection.baseUrl = url;\r\n    }\r\n\r\n    /** Starts the connection.\r\n     *\r\n     * @returns {Promise<void>} A Promise that resolves when the connection has been successfully established, or rejects with an error.\r\n     */\r\n    public start(): Promise<void> {\r\n        this._startPromise = this._startWithStateTransitions();\r\n        return this._startPromise;\r\n    }\r\n\r\n    private async _startWithStateTransitions(): Promise<void> {\r\n        if (this._connectionState !== HubConnectionState.Disconnected) {\r\n            return Promise.reject(new Error(\"Cannot start a HubConnection that is not in the 'Disconnected' state.\"));\r\n        }\r\n\r\n        this._connectionState = HubConnectionState.Connecting;\r\n        this._logger.log(LogLevel.Debug, \"Starting HubConnection.\");\r\n\r\n        try {\r\n            await this._startInternal();\r\n\r\n            if (Platform.isBrowser) {\r\n                // Log when the browser freezes the tab so users know why their connection unexpectedly stopped working\r\n                window.document.addEventListener(\"freeze\", this._freezeEventListener);\r\n            }\r\n\r\n            this._connectionState = HubConnectionState.Connected;\r\n            this._connectionStarted = true;\r\n            this._logger.log(LogLevel.Debug, \"HubConnection connected successfully.\");\r\n        } catch (e) {\r\n            this._connectionState = HubConnectionState.Disconnected;\r\n            this._logger.log(LogLevel.Debug, `HubConnection failed to start successfully because of error '${e}'.`);\r\n            return Promise.reject(e);\r\n        }\r\n    }\r\n\r\n    private async _startInternal() {\r\n        this._stopDuringStartError = undefined;\r\n        this._receivedHandshakeResponse = false;\r\n        // Set up the promise before any connection is (re)started otherwise it could race with received messages\r\n        const handshakePromise = new Promise((resolve, reject) => {\r\n            this._handshakeResolver = resolve;\r\n            this._handshakeRejecter = reject;\r\n        });\r\n\r\n        await this.connection.start(this._protocol.transferFormat);\r\n\r\n        try {\r\n            const handshakeRequest: HandshakeRequestMessage = {\r\n                protocol: this._protocol.name,\r\n                version: this._protocol.version,\r\n            };\r\n\r\n            this._logger.log(LogLevel.Debug, \"Sending handshake request.\");\r\n\r\n            await this._sendMessage(this._handshakeProtocol.writeHandshakeRequest(handshakeRequest));\r\n\r\n            this._logger.log(LogLevel.Information, `Using HubProtocol '${this._protocol.name}'.`);\r\n\r\n            // defensively cleanup timeout in case we receive a message from the server before we finish start\r\n            this._cleanupTimeout();\r\n            this._resetTimeoutPeriod();\r\n            this._resetKeepAliveInterval();\r\n\r\n            await handshakePromise;\r\n\r\n            // It's important to check the stopDuringStartError instead of just relying on the handshakePromise\r\n            // being rejected on close, because this continuation can run after both the handshake completed successfully\r\n            // and the connection was closed.\r\n            if (this._stopDuringStartError) {\r\n                // It's important to throw instead of returning a rejected promise, because we don't want to allow any state\r\n                // transitions to occur between now and the calling code observing the exceptions. Returning a rejected promise\r\n                // will cause the calling continuation to get scheduled to run later.\r\n                // eslint-disable-next-line @typescript-eslint/no-throw-literal\r\n                throw this._stopDuringStartError;\r\n            }\r\n        } catch (e) {\r\n            this._logger.log(LogLevel.Debug, `Hub handshake failed with error '${e}' during start(). Stopping HubConnection.`);\r\n\r\n            this._cleanupTimeout();\r\n            this._cleanupPingTimer();\r\n\r\n            // HttpConnection.stop() should not complete until after the onclose callback is invoked.\r\n            // This will transition the HubConnection to the disconnected state before HttpConnection.stop() completes.\r\n            await this.connection.stop(e);\r\n            throw e;\r\n        }\r\n    }\r\n\r\n    /** Stops the connection.\r\n     *\r\n     * @returns {Promise<void>} A Promise that resolves when the connection has been successfully terminated, or rejects with an error.\r\n     */\r\n    public async stop(): Promise<void> {\r\n        // Capture the start promise before the connection might be restarted in an onclose callback.\r\n        const startPromise = this._startPromise;\r\n\r\n        this._stopPromise = this._stopInternal();\r\n        await this._stopPromise;\r\n\r\n        try {\r\n            // Awaiting undefined continues immediately\r\n            await startPromise;\r\n        } catch (e) {\r\n            // This exception is returned to the user as a rejected Promise from the start method.\r\n        }\r\n    }\r\n\r\n    private _stopInternal(error?: Error): Promise<void> {\r\n        if (this._connectionState === HubConnectionState.Disconnected) {\r\n            this._logger.log(LogLevel.Debug, `Call to HubConnection.stop(${error}) ignored because it is already in the disconnected state.`);\r\n            return Promise.resolve();\r\n        }\r\n\r\n        if (this._connectionState === HubConnectionState.Disconnecting) {\r\n            this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n            return this._stopPromise!;\r\n        }\r\n\r\n        this._connectionState = HubConnectionState.Disconnecting;\r\n\r\n        this._logger.log(LogLevel.Debug, \"Stopping HubConnection.\");\r\n\r\n        if (this._reconnectDelayHandle) {\r\n            // We're in a reconnect delay which means the underlying connection is currently already stopped.\r\n            // Just clear the handle to stop the reconnect loop (which no one is waiting on thankfully) and\r\n            // fire the onclose callbacks.\r\n            this._logger.log(LogLevel.Debug, \"Connection stopped during reconnect delay. Done reconnecting.\");\r\n\r\n            clearTimeout(this._reconnectDelayHandle);\r\n            this._reconnectDelayHandle = undefined;\r\n\r\n            this._completeClose();\r\n            return Promise.resolve();\r\n        }\r\n\r\n        this._cleanupTimeout();\r\n        this._cleanupPingTimer();\r\n        this._stopDuringStartError = error || new Error(\"The connection was stopped before the hub handshake could complete.\");\r\n\r\n        // HttpConnection.stop() should not complete until after either HttpConnection.start() fails\r\n        // or the onclose callback is invoked. The onclose callback will transition the HubConnection\r\n        // to the disconnected state if need be before HttpConnection.stop() completes.\r\n        return this.connection.stop(error);\r\n    }\r\n\r\n    /** Invokes a streaming hub method on the server using the specified name and arguments.\r\n     *\r\n     * @typeparam T The type of the items returned by the server.\r\n     * @param {string} methodName The name of the server method to invoke.\r\n     * @param {any[]} args The arguments used to invoke the server method.\r\n     * @returns {IStreamResult<T>} An object that yields results from the server as they are received.\r\n     */\r\n    public stream<T = any>(methodName: string, ...args: any[]): IStreamResult<T> {\r\n        const [streams, streamIds] = this._replaceStreamingParams(args);\r\n        const invocationDescriptor = this._createStreamInvocation(methodName, args, streamIds);\r\n\r\n        // eslint-disable-next-line prefer-const\r\n        let promiseQueue: Promise<void>;\r\n\r\n        const subject = new Subject<T>();\r\n        subject.cancelCallback = () => {\r\n            const cancelInvocation: CancelInvocationMessage = this._createCancelInvocation(invocationDescriptor.invocationId);\r\n\r\n            delete this._callbacks[invocationDescriptor.invocationId];\r\n\r\n            return promiseQueue.then(() => {\r\n                return this._sendWithProtocol(cancelInvocation);\r\n            });\r\n        };\r\n\r\n        this._callbacks[invocationDescriptor.invocationId] = (invocationEvent: CompletionMessage | StreamItemMessage | null, error?: Error) => {\r\n            if (error) {\r\n                subject.error(error);\r\n                return;\r\n            } else if (invocationEvent) {\r\n                // invocationEvent will not be null when an error is not passed to the callback\r\n                if (invocationEvent.type === MessageType.Completion) {\r\n                    if (invocationEvent.error) {\r\n                        subject.error(new Error(invocationEvent.error));\r\n                    } else {\r\n                        subject.complete();\r\n                    }\r\n                } else {\r\n                    subject.next((invocationEvent.item) as T);\r\n                }\r\n            }\r\n        };\r\n\r\n        promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n            .catch((e) => {\r\n                subject.error(e);\r\n                delete this._callbacks[invocationDescriptor.invocationId];\r\n            });\r\n\r\n        this._launchStreams(streams, promiseQueue);\r\n\r\n        return subject;\r\n    }\r\n\r\n    private _sendMessage(message: any) {\r\n        this._resetKeepAliveInterval();\r\n        return this.connection.send(message);\r\n    }\r\n\r\n    /**\r\n     * Sends a js object to the server.\r\n     * @param message The js object to serialize and send.\r\n     */\r\n    private _sendWithProtocol(message: any) {\r\n        return this._sendMessage(this._protocol.writeMessage(message));\r\n    }\r\n\r\n    /** Invokes a hub method on the server using the specified name and arguments. Does not wait for a response from the receiver.\r\n     *\r\n     * The Promise returned by this method resolves when the client has sent the invocation to the server. The server may still\r\n     * be processing the invocation.\r\n     *\r\n     * @param {string} methodName The name of the server method to invoke.\r\n     * @param {any[]} args The arguments used to invoke the server method.\r\n     * @returns {Promise<void>} A Promise that resolves when the invocation has been successfully sent, or rejects with an error.\r\n     */\r\n    public send(methodName: string, ...args: any[]): Promise<void> {\r\n        const [streams, streamIds] = this._replaceStreamingParams(args);\r\n        const sendPromise = this._sendWithProtocol(this._createInvocation(methodName, args, true, streamIds));\r\n\r\n        this._launchStreams(streams, sendPromise);\r\n\r\n        return sendPromise;\r\n    }\r\n\r\n    /** Invokes a hub method on the server using the specified name and arguments.\r\n     *\r\n     * The Promise returned by this method resolves when the server indicates it has finished invoking the method. When the promise\r\n     * resolves, the server has finished invoking the method. If the server method returns a result, it is produced as the result of\r\n     * resolving the Promise.\r\n     *\r\n     * @typeparam T The expected return type.\r\n     * @param {string} methodName The name of the server method to invoke.\r\n     * @param {any[]} args The arguments used to invoke the server method.\r\n     * @returns {Promise<T>} A Promise that resolves with the result of the server method (if any), or rejects with an error.\r\n     */\r\n    public invoke<T = any>(methodName: string, ...args: any[]): Promise<T> {\r\n        const [streams, streamIds] = this._replaceStreamingParams(args);\r\n        const invocationDescriptor = this._createInvocation(methodName, args, false, streamIds);\r\n\r\n        const p = new Promise<any>((resolve, reject) => {\r\n            // invocationId will always have a value for a non-blocking invocation\r\n            this._callbacks[invocationDescriptor.invocationId!] = (invocationEvent: StreamItemMessage | CompletionMessage | null, error?: Error) => {\r\n                if (error) {\r\n                    reject(error);\r\n                    return;\r\n                } else if (invocationEvent) {\r\n                    // invocationEvent will not be null when an error is not passed to the callback\r\n                    if (invocationEvent.type === MessageType.Completion) {\r\n                        if (invocationEvent.error) {\r\n                            reject(new Error(invocationEvent.error));\r\n                        } else {\r\n                            resolve(invocationEvent.result);\r\n                        }\r\n                    } else {\r\n                        reject(new Error(`Unexpected message type: ${invocationEvent.type}`));\r\n                    }\r\n                }\r\n            };\r\n\r\n            const promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n                .catch((e) => {\r\n                    reject(e);\r\n                    // invocationId will always have a value for a non-blocking invocation\r\n                    delete this._callbacks[invocationDescriptor.invocationId!];\r\n                });\r\n\r\n            this._launchStreams(streams, promiseQueue);\r\n        });\r\n\r\n        return p;\r\n    }\r\n\r\n    /** Registers a handler that will be invoked when the hub method with the specified method name is invoked.\r\n     *\r\n     * @param {string} methodName The name of the hub method to define.\r\n     * @param {Function} newMethod The handler that will be raised when the hub method is invoked.\r\n     */\r\n    public on(methodName: string, newMethod: (...args: any[]) => void): void {\r\n        if (!methodName || !newMethod) {\r\n            return;\r\n        }\r\n\r\n        methodName = methodName.toLowerCase();\r\n        if (!this._methods[methodName]) {\r\n            this._methods[methodName] = [];\r\n        }\r\n\r\n        // Preventing adding the same handler multiple times.\r\n        if (this._methods[methodName].indexOf(newMethod) !== -1) {\r\n            return;\r\n        }\r\n\r\n        this._methods[methodName].push(newMethod);\r\n    }\r\n\r\n    /** Removes all handlers for the specified hub method.\r\n     *\r\n     * @param {string} methodName The name of the method to remove handlers for.\r\n     */\r\n    public off(methodName: string): void;\r\n\r\n    /** Removes the specified handler for the specified hub method.\r\n     *\r\n     * You must pass the exact same Function instance as was previously passed to {@link @microsoft/signalr.HubConnection.on}. Passing a different instance (even if the function\r\n     * body is the same) will not remove the handler.\r\n     *\r\n     * @param {string} methodName The name of the method to remove handlers for.\r\n     * @param {Function} method The handler to remove. This must be the same Function instance as the one passed to {@link @microsoft/signalr.HubConnection.on}.\r\n     */\r\n    public off(methodName: string, method: (...args: any[]) => void): void;\r\n    public off(methodName: string, method?: (...args: any[]) => void): void {\r\n        if (!methodName) {\r\n            return;\r\n        }\r\n\r\n        methodName = methodName.toLowerCase();\r\n        const handlers = this._methods[methodName];\r\n        if (!handlers) {\r\n            return;\r\n        }\r\n        if (method) {\r\n            const removeIdx = handlers.indexOf(method);\r\n            if (removeIdx !== -1) {\r\n                handlers.splice(removeIdx, 1);\r\n                if (handlers.length === 0) {\r\n                    delete this._methods[methodName];\r\n                }\r\n            }\r\n        } else {\r\n            delete this._methods[methodName];\r\n        }\r\n\r\n    }\r\n\r\n    /** Registers a handler that will be invoked when the connection is closed.\r\n     *\r\n     * @param {Function} callback The handler that will be invoked when the connection is closed. Optionally receives a single argument containing the error that caused the connection to close (if any).\r\n     */\r\n    public onclose(callback: (error?: Error) => void): void {\r\n        if (callback) {\r\n            this._closedCallbacks.push(callback);\r\n        }\r\n    }\r\n\r\n    /** Registers a handler that will be invoked when the connection starts reconnecting.\r\n     *\r\n     * @param {Function} callback The handler that will be invoked when the connection starts reconnecting. Optionally receives a single argument containing the error that caused the connection to start reconnecting (if any).\r\n     */\r\n    public onreconnecting(callback: (error?: Error) => void): void {\r\n        if (callback) {\r\n            this._reconnectingCallbacks.push(callback);\r\n        }\r\n    }\r\n\r\n    /** Registers a handler that will be invoked when the connection successfully reconnects.\r\n     *\r\n     * @param {Function} callback The handler that will be invoked when the connection successfully reconnects.\r\n     */\r\n    public onreconnected(callback: (connectionId?: string) => void): void {\r\n        if (callback) {\r\n            this._reconnectedCallbacks.push(callback);\r\n        }\r\n    }\r\n\r\n    private _processIncomingData(data: any) {\r\n        this._cleanupTimeout();\r\n\r\n        if (!this._receivedHandshakeResponse) {\r\n            data = this._processHandshakeResponse(data);\r\n            this._receivedHandshakeResponse = true;\r\n        }\r\n\r\n        // Data may have all been read when processing handshake response\r\n        if (data) {\r\n            // Parse the messages\r\n            const messages = this._protocol.parseMessages(data, this._logger);\r\n\r\n            for (const message of messages) {\r\n                switch (message.type) {\r\n                    case MessageType.Invocation:\r\n                        this._invokeClientMethod(message);\r\n                        break;\r\n                    case MessageType.StreamItem:\r\n                    case MessageType.Completion: {\r\n                        const callback = this._callbacks[message.invocationId];\r\n                        if (callback) {\r\n                            if (message.type === MessageType.Completion) {\r\n                                delete this._callbacks[message.invocationId];\r\n                            }\r\n                            try {\r\n                                callback(message);\r\n                            } catch (e) {\r\n                                this._logger.log(LogLevel.Error, `Stream callback threw error: ${getErrorString(e)}`);\r\n                            }\r\n                        }\r\n                        break;\r\n                    }\r\n                    case MessageType.Ping:\r\n                        // Don't care about pings\r\n                        break;\r\n                    case MessageType.Close: {\r\n                        this._logger.log(LogLevel.Information, \"Close message received from server.\");\r\n\r\n                        const error = message.error ? new Error(\"Server returned an error on close: \" + message.error) : undefined;\r\n\r\n                        if (message.allowReconnect === true) {\r\n                            // It feels wrong not to await connection.stop() here, but processIncomingData is called as part of an onreceive callback which is not async,\r\n                            // this is already the behavior for serverTimeout(), and HttpConnection.Stop() should catch and log all possible exceptions.\r\n\r\n                            // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n                            this.connection.stop(error);\r\n                        } else {\r\n                            // We cannot await stopInternal() here, but subsequent calls to stop() will await this if stopInternal() is still ongoing.\r\n                            this._stopPromise = this._stopInternal(error);\r\n                        }\r\n\r\n                        break;\r\n                    }\r\n                    default:\r\n                        this._logger.log(LogLevel.Warning, `Invalid message type: ${message.type}.`);\r\n                        break;\r\n                }\r\n            }\r\n        }\r\n\r\n        this._resetTimeoutPeriod();\r\n    }\r\n\r\n    private _processHandshakeResponse(data: any): any {\r\n        let responseMessage: HandshakeResponseMessage;\r\n        let remainingData: any;\r\n\r\n        try {\r\n            [remainingData, responseMessage] = this._handshakeProtocol.parseHandshakeResponse(data);\r\n        } catch (e) {\r\n            const message = \"Error parsing handshake response: \" + e;\r\n            this._logger.log(LogLevel.Error, message);\r\n\r\n            const error = new Error(message);\r\n            this._handshakeRejecter(error);\r\n            throw error;\r\n        }\r\n        if (responseMessage.error) {\r\n            const message = \"Server returned handshake error: \" + responseMessage.error;\r\n            this._logger.log(LogLevel.Error, message);\r\n\r\n            const error = new Error(message);\r\n            this._handshakeRejecter(error);\r\n            throw error;\r\n        } else {\r\n            this._logger.log(LogLevel.Debug, \"Server handshake complete.\");\r\n        }\r\n\r\n        this._handshakeResolver();\r\n        return remainingData;\r\n    }\r\n\r\n    private _resetKeepAliveInterval() {\r\n        if (this.connection.features.inherentKeepAlive) {\r\n            return;\r\n        }\r\n\r\n        // Set the time we want the next keep alive to be sent\r\n        // Timer will be setup on next message receive\r\n        this._nextKeepAlive = new Date().getTime() + this.keepAliveIntervalInMilliseconds;\r\n\r\n        this._cleanupPingTimer();\r\n    }\r\n\r\n    private _resetTimeoutPeriod() {\r\n        if (!this.connection.features || !this.connection.features.inherentKeepAlive) {\r\n            // Set the timeout timer\r\n            this._timeoutHandle = setTimeout(() => this.serverTimeout(), this.serverTimeoutInMilliseconds);\r\n\r\n            // Set keepAlive timer if there isn't one\r\n            if (this._pingServerHandle === undefined)\r\n            {\r\n                let nextPing = this._nextKeepAlive - new Date().getTime();\r\n                if (nextPing < 0) {\r\n                    nextPing = 0;\r\n                }\r\n\r\n                // The timer needs to be set from a networking callback to avoid Chrome timer throttling from causing timers to run once a minute\r\n                this._pingServerHandle = setTimeout(async () => {\r\n                    if (this._connectionState === HubConnectionState.Connected) {\r\n                        try {\r\n                            await this._sendMessage(this._cachedPingMessage);\r\n                        } catch {\r\n                            // We don't care about the error. It should be seen elsewhere in the client.\r\n                            // The connection is probably in a bad or closed state now, cleanup the timer so it stops triggering\r\n                            this._cleanupPingTimer();\r\n                        }\r\n                    }\r\n                }, nextPing);\r\n            }\r\n        }\r\n    }\r\n\r\n    // eslint-disable-next-line @typescript-eslint/naming-convention\r\n    private serverTimeout() {\r\n        // The server hasn't talked to us in a while. It doesn't like us anymore ... :(\r\n        // Terminate the connection, but we don't need to wait on the promise. This could trigger reconnecting.\r\n        // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n        this.connection.stop(new Error(\"Server timeout elapsed without receiving a message from the server.\"));\r\n    }\r\n\r\n    private _invokeClientMethod(invocationMessage: InvocationMessage) {\r\n        const methods = this._methods[invocationMessage.target.toLowerCase()];\r\n        if (methods) {\r\n            try {\r\n                methods.forEach((m) => m.apply(this, invocationMessage.arguments));\r\n            } catch (e) {\r\n                this._logger.log(LogLevel.Error, `A callback for the method ${invocationMessage.target.toLowerCase()} threw error '${e}'.`);\r\n            }\r\n\r\n            if (invocationMessage.invocationId) {\r\n                // This is not supported in v1. So we return an error to avoid blocking the server waiting for the response.\r\n                const message = \"Server requested a response, which is not supported in this version of the client.\";\r\n                this._logger.log(LogLevel.Error, message);\r\n\r\n                // We don't want to wait on the stop itself.\r\n                this._stopPromise = this._stopInternal(new Error(message));\r\n            }\r\n        } else {\r\n            this._logger.log(LogLevel.Warning, `No client method with the name '${invocationMessage.target}' found.`);\r\n        }\r\n    }\r\n\r\n    private _connectionClosed(error?: Error) {\r\n        this._logger.log(LogLevel.Debug, `HubConnection.connectionClosed(${error}) called while in state ${this._connectionState}.`);\r\n\r\n        // Triggering this.handshakeRejecter is insufficient because it could already be resolved without the continuation having run yet.\r\n        this._stopDuringStartError = this._stopDuringStartError || error || new Error(\"The underlying connection was closed before the hub handshake could complete.\");\r\n\r\n        // If the handshake is in progress, start will be waiting for the handshake promise, so we complete it.\r\n        // If it has already completed, this should just noop.\r\n        if (this._handshakeResolver) {\r\n            this._handshakeResolver();\r\n        }\r\n\r\n        this._cancelCallbacksWithError(error || new Error(\"Invocation canceled due to the underlying connection being closed.\"));\r\n\r\n        this._cleanupTimeout();\r\n        this._cleanupPingTimer();\r\n\r\n        if (this._connectionState === HubConnectionState.Disconnecting) {\r\n            this._completeClose(error);\r\n        } else if (this._connectionState === HubConnectionState.Connected && this._reconnectPolicy) {\r\n            // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n            this._reconnect(error);\r\n        } else if (this._connectionState === HubConnectionState.Connected) {\r\n            this._completeClose(error);\r\n        }\r\n\r\n        // If none of the above if conditions were true were called the HubConnection must be in either:\r\n        // 1. The Connecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail it.\r\n        // 2. The Reconnecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail the current reconnect attempt\r\n        //    and potentially continue the reconnect() loop.\r\n        // 3. The Disconnected state in which case we're already done.\r\n    }\r\n\r\n    private _completeClose(error?: Error) {\r\n        if (this._connectionStarted) {\r\n            this._connectionState = HubConnectionState.Disconnected;\r\n            this._connectionStarted = false;\r\n\r\n            if (Platform.isBrowser) {\r\n                window.document.removeEventListener(\"freeze\", this._freezeEventListener);\r\n            }\r\n\r\n            try {\r\n                this._closedCallbacks.forEach((c) => c.apply(this, [error]));\r\n            } catch (e) {\r\n                this._logger.log(LogLevel.Error, `An onclose callback called with error '${error}' threw error '${e}'.`);\r\n            }\r\n        }\r\n    }\r\n\r\n    private async _reconnect(error?: Error) {\r\n        const reconnectStartTime = Date.now();\r\n        let previousReconnectAttempts = 0;\r\n        let retryError = error !== undefined ? error : new Error(\"Attempting to reconnect due to a unknown error.\");\r\n\r\n        let nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, 0, retryError);\r\n\r\n        if (nextRetryDelay === null) {\r\n            this._logger.log(LogLevel.Debug, \"Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt.\");\r\n            this._completeClose(error);\r\n            return;\r\n        }\r\n\r\n        this._connectionState = HubConnectionState.Reconnecting;\r\n\r\n        if (error) {\r\n            this._logger.log(LogLevel.Information, `Connection reconnecting because of error '${error}'.`);\r\n        } else {\r\n            this._logger.log(LogLevel.Information, \"Connection reconnecting.\");\r\n        }\r\n\r\n        if (this._reconnectingCallbacks.length !== 0) {\r\n            try {\r\n                this._reconnectingCallbacks.forEach((c) => c.apply(this, [error]));\r\n            } catch (e) {\r\n                this._logger.log(LogLevel.Error, `An onreconnecting callback called with error '${error}' threw error '${e}'.`);\r\n            }\r\n\r\n            // Exit early if an onreconnecting callback called connection.stop().\r\n            if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n                this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state in onreconnecting callback. Done reconnecting.\");\r\n                return;\r\n            }\r\n        }\r\n\r\n        while (nextRetryDelay !== null) {\r\n            this._logger.log(LogLevel.Information, `Reconnect attempt number ${previousReconnectAttempts} will start in ${nextRetryDelay} ms.`);\r\n\r\n            await new Promise((resolve) => {\r\n                this._reconnectDelayHandle = setTimeout(resolve, nextRetryDelay!);\r\n            });\r\n            this._reconnectDelayHandle = undefined;\r\n\r\n            if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n                this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state during reconnect delay. Done reconnecting.\");\r\n                return;\r\n            }\r\n\r\n            try {\r\n                await this._startInternal();\r\n\r\n                this._connectionState = HubConnectionState.Connected;\r\n                this._logger.log(LogLevel.Information, \"HubConnection reconnected successfully.\");\r\n\r\n                if (this._reconnectedCallbacks.length !== 0) {\r\n                    try {\r\n                        this._reconnectedCallbacks.forEach((c) => c.apply(this, [this.connection.connectionId]));\r\n                    } catch (e) {\r\n                        this._logger.log(LogLevel.Error, `An onreconnected callback called with connectionId '${this.connection.connectionId}; threw error '${e}'.`);\r\n                    }\r\n                }\r\n\r\n                return;\r\n            } catch (e) {\r\n                this._logger.log(LogLevel.Information, `Reconnect attempt failed because of error '${e}'.`);\r\n\r\n                if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n                    this._logger.log(LogLevel.Debug, `Connection moved to the '${this._connectionState}' from the reconnecting state during reconnect attempt. Done reconnecting.`);\r\n                    // The TypeScript compiler thinks that connectionState must be Connected here. The TypeScript compiler is wrong.\r\n                    if (this._connectionState as any === HubConnectionState.Disconnecting) {\r\n                        this._completeClose();\r\n                    }\r\n                    return;\r\n                }\r\n\r\n                retryError = e instanceof Error ? e : new Error(e.toString());\r\n                nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, Date.now() - reconnectStartTime, retryError);\r\n            }\r\n        }\r\n\r\n        this._logger.log(LogLevel.Information, `Reconnect retries have been exhausted after ${Date.now() - reconnectStartTime} ms and ${previousReconnectAttempts} failed attempts. Connection disconnecting.`);\r\n\r\n        this._completeClose();\r\n    }\r\n\r\n    private _getNextRetryDelay(previousRetryCount: number, elapsedMilliseconds: number, retryReason: Error) {\r\n        try {\r\n            return this._reconnectPolicy!.nextRetryDelayInMilliseconds({\r\n                elapsedMilliseconds,\r\n                previousRetryCount,\r\n                retryReason,\r\n            });\r\n        } catch (e) {\r\n            this._logger.log(LogLevel.Error, `IRetryPolicy.nextRetryDelayInMilliseconds(${previousRetryCount}, ${elapsedMilliseconds}) threw error '${e}'.`);\r\n            return null;\r\n        }\r\n    }\r\n\r\n    private _cancelCallbacksWithError(error: Error) {\r\n        const callbacks = this._callbacks;\r\n        this._callbacks = {};\r\n\r\n        Object.keys(callbacks)\r\n            .forEach((key) => {\r\n                const callback = callbacks[key];\r\n                try {\r\n                    callback(null, error);\r\n                } catch (e) {\r\n                    this._logger.log(LogLevel.Error, `Stream 'error' callback called with '${error}' threw error: ${getErrorString(e)}`);\r\n                }\r\n            });\r\n    }\r\n\r\n    private _cleanupPingTimer(): void {\r\n        if (this._pingServerHandle) {\r\n            clearTimeout(this._pingServerHandle);\r\n            this._pingServerHandle = undefined;\r\n        }\r\n    }\r\n\r\n    private _cleanupTimeout(): void {\r\n        if (this._timeoutHandle) {\r\n            clearTimeout(this._timeoutHandle);\r\n        }\r\n    }\r\n\r\n    private _createInvocation(methodName: string, args: any[], nonblocking: boolean, streamIds: string[]): InvocationMessage {\r\n        if (nonblocking) {\r\n            if (streamIds.length !== 0) {\r\n                return {\r\n                    arguments: args,\r\n                    streamIds,\r\n                    target: methodName,\r\n                    type: MessageType.Invocation,\r\n                };\r\n            } else {\r\n                return {\r\n                    arguments: args,\r\n                    target: methodName,\r\n                    type: MessageType.Invocation,\r\n                };\r\n            }\r\n        } else {\r\n            const invocationId = this._invocationId;\r\n            this._invocationId++;\r\n\r\n            if (streamIds.length !== 0) {\r\n                return {\r\n                    arguments: args,\r\n                    invocationId: invocationId.toString(),\r\n                    streamIds,\r\n                    target: methodName,\r\n                    type: MessageType.Invocation,\r\n                };\r\n            } else {\r\n                return {\r\n                    arguments: args,\r\n                    invocationId: invocationId.toString(),\r\n                    target: methodName,\r\n                    type: MessageType.Invocation,\r\n                };\r\n            }\r\n        }\r\n    }\r\n\r\n    private _launchStreams(streams: IStreamResult<any>[], promiseQueue: Promise<void>): void {\r\n        if (streams.length === 0) {\r\n            return;\r\n        }\r\n\r\n        // Synchronize stream data so they arrive in-order on the server\r\n        if (!promiseQueue) {\r\n            promiseQueue = Promise.resolve();\r\n        }\r\n\r\n        // We want to iterate over the keys, since the keys are the stream ids\r\n        // eslint-disable-next-line guard-for-in\r\n        for (const streamId in streams) {\r\n            streams[streamId].subscribe({\r\n                complete: () => {\r\n                    promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId)));\r\n                },\r\n                error: (err) => {\r\n                    let message: string;\r\n                    if (err instanceof Error) {\r\n                        message = err.message;\r\n                    } else if (err && err.toString) {\r\n                        message = err.toString();\r\n                    } else {\r\n                        message = \"Unknown error\";\r\n                    }\r\n\r\n                    promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId, message)));\r\n                },\r\n                next: (item) => {\r\n                    promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createStreamItemMessage(streamId, item)));\r\n                },\r\n            });\r\n        }\r\n    }\r\n\r\n    private _replaceStreamingParams(args: any[]): [IStreamResult<any>[], string[]] {\r\n        const streams: IStreamResult<any>[] = [];\r\n        const streamIds: string[] = [];\r\n        for (let i = 0; i < args.length; i++) {\r\n            const argument = args[i];\r\n            if (this._isObservable(argument)) {\r\n                const streamId = this._invocationId;\r\n                this._invocationId++;\r\n                // Store the stream for later use\r\n                streams[streamId] = argument;\r\n                streamIds.push(streamId.toString());\r\n\r\n                // remove stream from args\r\n                args.splice(i, 1);\r\n            }\r\n        }\r\n\r\n        return [streams, streamIds];\r\n    }\r\n\r\n    private _isObservable(arg: any): arg is IStreamResult<any> {\r\n        // This allows other stream implementations to just work (like rxjs)\r\n        return arg && arg.subscribe && typeof arg.subscribe === \"function\";\r\n    }\r\n\r\n    private _createStreamInvocation(methodName: string, args: any[], streamIds: string[]): StreamInvocationMessage {\r\n        const invocationId = this._invocationId;\r\n        this._invocationId++;\r\n\r\n        if (streamIds.length !== 0) {\r\n            return {\r\n                arguments: args,\r\n                invocationId: invocationId.toString(),\r\n                streamIds,\r\n                target: methodName,\r\n                type: MessageType.StreamInvocation,\r\n            };\r\n        } else {\r\n            return {\r\n                arguments: args,\r\n                invocationId: invocationId.toString(),\r\n                target: methodName,\r\n                type: MessageType.StreamInvocation,\r\n            };\r\n        }\r\n    }\r\n\r\n    private _createCancelInvocation(id: string): CancelInvocationMessage {\r\n        return {\r\n            invocationId: id,\r\n            type: MessageType.CancelInvocation,\r\n        };\r\n    }\r\n\r\n    private _createStreamItemMessage(id: string, item: any): StreamItemMessage {\r\n        return {\r\n            invocationId: id,\r\n            item,\r\n            type: MessageType.StreamItem,\r\n        };\r\n    }\r\n\r\n    private _createCompletionMessage(id: string, error?: any, result?: any): CompletionMessage {\r\n        if (error) {\r\n            return {\r\n                error,\r\n                invocationId: id,\r\n                type: MessageType.Completion,\r\n            };\r\n        }\r\n\r\n        return {\r\n            invocationId: id,\r\n            result,\r\n            type: MessageType.Completion,\r\n        };\r\n    }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { CompletionMessage, HubMessage, IHubProtocol, InvocationMessage, MessageType, StreamItemMessage } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\n\r\nconst JSON_HUB_PROTOCOL_NAME: string = \"json\";\r\n\r\n/** Implements the JSON Hub Protocol. */\r\nexport class JsonHubProtocol implements IHubProtocol {\r\n\r\n    /** @inheritDoc */\r\n    public readonly name: string = JSON_HUB_PROTOCOL_NAME;\r\n    /** @inheritDoc */\r\n    public readonly version: number = 1;\r\n\r\n    /** @inheritDoc */\r\n    public readonly transferFormat: TransferFormat = TransferFormat.Text;\r\n\r\n    /** Creates an array of {@link @microsoft/signalr.HubMessage} objects from the specified serialized representation.\r\n     *\r\n     * @param {string} input A string containing the serialized representation.\r\n     * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n     */\r\n    public parseMessages(input: string, logger: ILogger): HubMessage[] {\r\n        // The interface does allow \"ArrayBuffer\" to be passed in, but this implementation does not. So let's throw a useful error.\r\n        if (typeof input !== \"string\") {\r\n            throw new Error(\"Invalid input for JSON hub protocol. Expected a string.\");\r\n        }\r\n\r\n        if (!input) {\r\n            return [];\r\n        }\r\n\r\n        if (logger === null) {\r\n            logger = NullLogger.instance;\r\n        }\r\n\r\n        // Parse the messages\r\n        const messages = TextMessageFormat.parse(input);\r\n\r\n        const hubMessages = [];\r\n        for (const message of messages) {\r\n            const parsedMessage = JSON.parse(message) as HubMessage;\r\n            if (typeof parsedMessage.type !== \"number\") {\r\n                throw new Error(\"Invalid payload.\");\r\n            }\r\n            switch (parsedMessage.type) {\r\n                case MessageType.Invocation:\r\n                    this._isInvocationMessage(parsedMessage);\r\n                    break;\r\n                case MessageType.StreamItem:\r\n                    this._isStreamItemMessage(parsedMessage);\r\n                    break;\r\n                case MessageType.Completion:\r\n                    this._isCompletionMessage(parsedMessage);\r\n                    break;\r\n                case MessageType.Ping:\r\n                    // Single value, no need to validate\r\n                    break;\r\n                case MessageType.Close:\r\n                    // All optional values, no need to validate\r\n                    break;\r\n                default:\r\n                    // Future protocol changes can add message types, old clients can ignore them\r\n                    logger.log(LogLevel.Information, \"Unknown message type '\" + parsedMessage.type + \"' ignored.\");\r\n                    continue;\r\n            }\r\n            hubMessages.push(parsedMessage);\r\n        }\r\n\r\n        return hubMessages;\r\n    }\r\n\r\n    /** Writes the specified {@link @microsoft/signalr.HubMessage} to a string and returns it.\r\n     *\r\n     * @param {HubMessage} message The message to write.\r\n     * @returns {string} A string containing the serialized representation of the message.\r\n     */\r\n    public writeMessage(message: HubMessage): string {\r\n        return TextMessageFormat.write(JSON.stringify(message));\r\n    }\r\n\r\n    private _isInvocationMessage(message: InvocationMessage): void {\r\n        this._assertNotEmptyString(message.target, \"Invalid payload for Invocation message.\");\r\n\r\n        if (message.invocationId !== undefined) {\r\n            this._assertNotEmptyString(message.invocationId, \"Invalid payload for Invocation message.\");\r\n        }\r\n    }\r\n\r\n    private _isStreamItemMessage(message: StreamItemMessage): void {\r\n        this._assertNotEmptyString(message.invocationId, \"Invalid payload for StreamItem message.\");\r\n\r\n        if (message.item === undefined) {\r\n            throw new Error(\"Invalid payload for StreamItem message.\");\r\n        }\r\n    }\r\n\r\n    private _isCompletionMessage(message: CompletionMessage): void {\r\n        if (message.result && message.error) {\r\n            throw new Error(\"Invalid payload for Completion message.\");\r\n        }\r\n\r\n        if (!message.result && message.error) {\r\n            this._assertNotEmptyString(message.error, \"Invalid payload for Completion message.\");\r\n        }\r\n\r\n        this._assertNotEmptyString(message.invocationId, \"Invalid payload for Completion message.\");\r\n    }\r\n\r\n    private _assertNotEmptyString(value: any, errorMessage: string): void {\r\n        if (typeof value !== \"string\" || value === \"\") {\r\n            throw new Error(errorMessage);\r\n        }\r\n    }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { DefaultReconnectPolicy } from \"./DefaultReconnectPolicy\";\r\nimport { HttpConnection } from \"./HttpConnection\";\r\nimport { HubConnection } from \"./HubConnection\";\r\nimport { IHttpConnectionOptions } from \"./IHttpConnectionOptions\";\r\nimport { IHubProtocol } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { IRetryPolicy } from \"./IRetryPolicy\";\r\nimport { HttpTransportType } from \"./ITransport\";\r\nimport { JsonHubProtocol } from \"./JsonHubProtocol\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { Arg, ConsoleLogger } from \"./Utils\";\r\n\r\nconst LogLevelNameMapping: {[k: string]: LogLevel} = {\r\n    trace: LogLevel.Trace,\r\n    debug: LogLevel.Debug,\r\n    info: LogLevel.Information,\r\n    information: LogLevel.Information,\r\n    warn: LogLevel.Warning,\r\n    warning: LogLevel.Warning,\r\n    error: LogLevel.Error,\r\n    critical: LogLevel.Critical,\r\n    none: LogLevel.None,\r\n};\r\n\r\nfunction parseLogLevel(name: string): LogLevel {\r\n    // Case-insensitive matching via lower-casing\r\n    // Yes, I know case-folding is a complicated problem in Unicode, but we only support\r\n    // the ASCII strings defined in LogLevelNameMapping anyway, so it's fine -anurse.\r\n    const mapping = LogLevelNameMapping[name.toLowerCase()];\r\n    if (typeof mapping !== \"undefined\") {\r\n        return mapping;\r\n    } else {\r\n        throw new Error(`Unknown log level: ${name}`);\r\n    }\r\n}\r\n\r\n/** A builder for configuring {@link @microsoft/signalr.HubConnection} instances. */\r\nexport class HubConnectionBuilder {\r\n    /** @internal */\r\n    public protocol?: IHubProtocol;\r\n    /** @internal */\r\n    public httpConnectionOptions?: IHttpConnectionOptions;\r\n    /** @internal */\r\n    public url?: string;\r\n    /** @internal */\r\n    public logger?: ILogger;\r\n\r\n    /** If defined, this indicates the client should automatically attempt to reconnect if the connection is lost. */\r\n    /** @internal */\r\n    public reconnectPolicy?: IRetryPolicy;\r\n\r\n    /** Configures console logging for the {@link @microsoft/signalr.HubConnection}.\r\n     *\r\n     * @param {LogLevel} logLevel The minimum level of messages to log. Anything at this level, or a more severe level, will be logged.\r\n     * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n     */\r\n    public configureLogging(logLevel: LogLevel): HubConnectionBuilder;\r\n\r\n    /** Configures custom logging for the {@link @microsoft/signalr.HubConnection}.\r\n     *\r\n     * @param {ILogger} logger An object implementing the {@link @microsoft/signalr.ILogger} interface, which will be used to write all log messages.\r\n     * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n     */\r\n    public configureLogging(logger: ILogger): HubConnectionBuilder;\r\n\r\n    /** Configures custom logging for the {@link @microsoft/signalr.HubConnection}.\r\n     *\r\n     * @param {string} logLevel A string representing a LogLevel setting a minimum level of messages to log.\r\n     *    See {@link https://docs.microsoft.com/aspnet/core/signalr/configuration#configure-logging|the documentation for client logging configuration} for more details.\r\n     */\r\n    public configureLogging(logLevel: string): HubConnectionBuilder;\r\n\r\n    /** Configures custom logging for the {@link @microsoft/signalr.HubConnection}.\r\n     *\r\n     * @param {LogLevel | string | ILogger} logging A {@link @microsoft/signalr.LogLevel}, a string representing a LogLevel, or an object implementing the {@link @microsoft/signalr.ILogger} interface.\r\n     *    See {@link https://docs.microsoft.com/aspnet/core/signalr/configuration#configure-logging|the documentation for client logging configuration} for more details.\r\n     * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n     */\r\n    public configureLogging(logging: LogLevel | string | ILogger): HubConnectionBuilder;\r\n    public configureLogging(logging: LogLevel | string | ILogger): HubConnectionBuilder {\r\n        Arg.isRequired(logging, \"logging\");\r\n\r\n        if (isLogger(logging)) {\r\n            this.logger = logging;\r\n        } else if (typeof logging === \"string\") {\r\n            const logLevel = parseLogLevel(logging);\r\n            this.logger = new ConsoleLogger(logLevel);\r\n        } else {\r\n            this.logger = new ConsoleLogger(logging);\r\n        }\r\n\r\n        return this;\r\n    }\r\n\r\n    /** Configures the {@link @microsoft/signalr.HubConnection} to use HTTP-based transports to connect to the specified URL.\r\n     *\r\n     * The transport will be selected automatically based on what the server and client support.\r\n     *\r\n     * @param {string} url The URL the connection will use.\r\n     * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n     */\r\n    public withUrl(url: string): HubConnectionBuilder;\r\n\r\n    /** Configures the {@link @microsoft/signalr.HubConnection} to use the specified HTTP-based transport to connect to the specified URL.\r\n     *\r\n     * @param {string} url The URL the connection will use.\r\n     * @param {HttpTransportType} transportType The specific transport to use.\r\n     * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n     */\r\n    public withUrl(url: string, transportType: HttpTransportType): HubConnectionBuilder;\r\n\r\n    /** Configures the {@link @microsoft/signalr.HubConnection} to use HTTP-based transports to connect to the specified URL.\r\n     *\r\n     * @param {string} url The URL the connection will use.\r\n     * @param {IHttpConnectionOptions} options An options object used to configure the connection.\r\n     * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n     */\r\n    public withUrl(url: string, options: IHttpConnectionOptions): HubConnectionBuilder;\r\n    public withUrl(url: string, transportTypeOrOptions?: IHttpConnectionOptions | HttpTransportType): HubConnectionBuilder {\r\n        Arg.isRequired(url, \"url\");\r\n        Arg.isNotEmpty(url, \"url\");\r\n\r\n        this.url = url;\r\n\r\n        // Flow-typing knows where it's at. Since HttpTransportType is a number and IHttpConnectionOptions is guaranteed\r\n        // to be an object, we know (as does TypeScript) this comparison is all we need to figure out which overload was called.\r\n        if (typeof transportTypeOrOptions === \"object\") {\r\n            this.httpConnectionOptions = { ...this.httpConnectionOptions, ...transportTypeOrOptions };\r\n        } else {\r\n            this.httpConnectionOptions = {\r\n                ...this.httpConnectionOptions,\r\n                transport: transportTypeOrOptions,\r\n            };\r\n        }\r\n\r\n        return this;\r\n    }\r\n\r\n    /** Configures the {@link @microsoft/signalr.HubConnection} to use the specified Hub Protocol.\r\n     *\r\n     * @param {IHubProtocol} protocol The {@link @microsoft/signalr.IHubProtocol} implementation to use.\r\n     */\r\n    public withHubProtocol(protocol: IHubProtocol): HubConnectionBuilder {\r\n        Arg.isRequired(protocol, \"protocol\");\r\n\r\n        this.protocol = protocol;\r\n        return this;\r\n    }\r\n\r\n    /** Configures the {@link @microsoft/signalr.HubConnection} to automatically attempt to reconnect if the connection is lost.\r\n     * By default, the client will wait 0, 2, 10 and 30 seconds respectively before trying up to 4 reconnect attempts.\r\n     */\r\n    public withAutomaticReconnect(): HubConnectionBuilder;\r\n\r\n    /** Configures the {@link @microsoft/signalr.HubConnection} to automatically attempt to reconnect if the connection is lost.\r\n     *\r\n     * @param {number[]} retryDelays An array containing the delays in milliseconds before trying each reconnect attempt.\r\n     * The length of the array represents how many failed reconnect attempts it takes before the client will stop attempting to reconnect.\r\n     */\r\n    public withAutomaticReconnect(retryDelays: number[]): HubConnectionBuilder;\r\n\r\n    /** Configures the {@link @microsoft/signalr.HubConnection} to automatically attempt to reconnect if the connection is lost.\r\n     *\r\n     * @param {IRetryPolicy} reconnectPolicy An {@link @microsoft/signalR.IRetryPolicy} that controls the timing and number of reconnect attempts.\r\n     */\r\n    public withAutomaticReconnect(reconnectPolicy: IRetryPolicy): HubConnectionBuilder;\r\n    public withAutomaticReconnect(retryDelaysOrReconnectPolicy?: number[] | IRetryPolicy): HubConnectionBuilder {\r\n        if (this.reconnectPolicy) {\r\n            throw new Error(\"A reconnectPolicy has already been set.\");\r\n        }\r\n\r\n        if (!retryDelaysOrReconnectPolicy) {\r\n            this.reconnectPolicy = new DefaultReconnectPolicy();\r\n        } else if (Array.isArray(retryDelaysOrReconnectPolicy)) {\r\n            this.reconnectPolicy = new DefaultReconnectPolicy(retryDelaysOrReconnectPolicy);\r\n        } else {\r\n            this.reconnectPolicy = retryDelaysOrReconnectPolicy;\r\n        }\r\n\r\n        return this;\r\n    }\r\n\r\n    /** Creates a {@link @microsoft/signalr.HubConnection} from the configuration options specified in this builder.\r\n     *\r\n     * @returns {HubConnection} The configured {@link @microsoft/signalr.HubConnection}.\r\n     */\r\n    public build(): HubConnection {\r\n        // If httpConnectionOptions has a logger, use it. Otherwise, override it with the one\r\n        // provided to configureLogger\r\n        const httpConnectionOptions = this.httpConnectionOptions || {};\r\n\r\n        // If it's 'null', the user **explicitly** asked for null, don't mess with it.\r\n        if (httpConnectionOptions.logger === undefined) {\r\n            // If our logger is undefined or null, that's OK, the HttpConnection constructor will handle it.\r\n            httpConnectionOptions.logger = this.logger;\r\n        }\r\n\r\n        // Now create the connection\r\n        if (!this.url) {\r\n            throw new Error(\"The 'HubConnectionBuilder.withUrl' method must be called before building the connection.\");\r\n        }\r\n        const connection = new HttpConnection(this.url, httpConnectionOptions);\r\n\r\n        return HubConnection.create(\r\n            connection,\r\n            this.logger || NullLogger.instance,\r\n            this.protocol || new JsonHubProtocol(),\r\n            this.reconnectPolicy);\r\n    }\r\n}\r\n\r\nfunction isLogger(logger: any): logger is ILogger {\r\n    return logger.log !== undefined;\r\n}\r\n","<template>\n  <FullWidthLayout>\n    <section>\n      <div class=\"container is-fluid has-text-centered\">\n        <div class=\"columns is-centered\">\n          <div class=\"column is-half\">\n            <div class=\"block\">\n              <p>\n                {{ $t(\"email.validationEmailWillBeSend\", { email }) }}\n              </p>\n            </div>\n            <div class=\"block\">\n              <b-button\n                cy-id=\"button-resendEmail\"\n                size=\"is-medium\"\n                type=\"is-primary\"\n                @click=\"reSendValidationEmail\"\n                >{{ $t(\"email.resendEmail\") }}\n              </b-button>\n            </div>\n            <div v-if=\"reSendEmailValidationSuccess\" class=\"block\">\n              <b-message cy-id=\"success-resend-email-message\" type=\"is-success\">\n                {{ $t(\"email.successes.reSendingEmail\") }}\n              </b-message>\n            </div>\n            <div v-if=\"reSendEmailValidationError\" class=\"block\">\n              <b-message cy-id=\"error-resend-email-message\" type=\"is-danger\">\n                {{ getReSendErrorMessage }}\n              </b-message>\n            </div>\n            <div class=\"block\">\n              <b-button\n                cy-id=\"button-modifyEmail\"\n                size=\"is-medium\"\n                type=\"is-primary\"\n                @click=\"modifyEmail\"\n                >{{ $t(\"email.modifyEmail\") }}\n              </b-button>\n            </div>\n          </div>\n        </div>\n      </div>\n    </section>\n  </FullWidthLayout>\n</template>\n\n<script>\nimport FullWidthLayout from \"@/components/layout/FullWidthLayout\";\nimport { mapActions, mapGetters, mapMutations } from \"vuex\";\nimport { RouteName } from \"@/store/navigation/type\";\nimport i18n from \"@/i18n\";\nimport { HubConnectionBuilder } from \"@microsoft/signalr\";\n\nlet connection = null;\n\nexport default {\n  name: \"EmailValidationSentPage\",\n  components: { FullWidthLayout },\n  computed: {\n    ...mapGetters(\"subscription\", {\n      subscriptionId: \"getSubscriptionId\",\n    }),\n    ...mapGetters(\"subscription/contactInformation\", {\n      email: \"getEmail\",\n    }),\n    ...mapGetters(\"subscription/emailValidation\", {\n      reSendEmailValidationError: \"getReSendEmailValidationError\",\n      reSendEmailValidationSuccess: \"getReSendEmailValidationSuccess\",\n    }),\n    isEmailAlreadyValidated() {\n      if (this.reSendEmailValidationError === null) {\n        return false;\n      }\n\n      return this.reSendEmailValidationError.some((error) => {\n        return error.code === \"EMAIL_ALREADY_VALIDATED\";\n      });\n    },\n    getReSendErrorMessage() {\n      if (this.isEmailAlreadyValidated) {\n        return i18n.t(\"email.errors.EMAIL_ALREADY_VALIDATED\");\n      }\n      return i18n.t(\"email.errors.reSendingEmail\");\n    },\n  },\n  methods: {\n    ...mapActions(\"subscription/emailValidation\", [\"reSendValidationEmail\"]),\n    ...mapMutations(\"subscription/emailValidation\", [\n      \"setValidateEmailSuccess\",\n    ]),\n    modifyEmail() {\n      this.$router.push({ name: RouteName.EmailEdit });\n    },\n  },\n  created() {\n    connection = new HubConnectionBuilder()\n      .withUrl(`${process.env.VUE_APP_API_ENERGY_SUBSCRIPTION}/subscriptionHub`)\n      .build();\n\n    connection.on(\"EmailValidated\", () => {\n      this.setValidateEmailSuccess();\n      this.$router.push({ name: RouteName.Contract });\n    });\n\n    connection\n      .start()\n      .then(() => {\n        connection.send(\"WaitingEmailValidation\", this.subscriptionId);\n      })\n      .catch((error) => {\n        console.error(error);\n      });\n  },\n  destroyed() {\n    connection.stop();\n  },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./emailValidationSentPage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./emailValidationSentPage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./emailValidationSentPage.vue?vue&type=template&id=ec7b605c&scoped=true&\"\nimport script from \"./emailValidationSentPage.vue?vue&type=script&lang=js&\"\nexport * from \"./emailValidationSentPage.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"ec7b605c\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',[_c('div',{staticClass:\"container is-fluid\"},[_c('div',{staticClass:\"columns\"},[_c('div',{staticClass:\"column is-half-desktop is-full-tablet\"},[_c('h2',{staticClass:\"title is-5\"},[_vm._v(_vm._s(_vm.$t(\"housing.yourPointOfConsumption\")))]),_c('grid-operator-selector'),(_vm.isGridOperatorValid)?[_c('div',{staticClass:\"block\"},[_c('gsrn-ean-input'),_c('custom-select',{attrs:{\"is-empty\":_vm.isContractedPowerEmpty,\"is-valid\":_vm.isContractedPowerValid,\"label\":`${_vm.$t('housing.contractedPower')} *`,\"options\":_vm.getContractedPowerOptions,\"validation-errors\":_vm.contractedPowerErrors,\"value\":_vm.contractedPower,\"name\":\"contractedPower\"},on:{\"input\":_vm.setContractedPower}})],1),_c('h2',{staticClass:\"title is-5\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"housing.yourAddress\"))+\" \")]),_c('div',{staticClass:\"block\"},[_c('custom-input',{attrs:{\"label\":`${_vm.$t('housing.streetNumber')}`,\"maxlength\":_vm.MAX_LENGTH_STREET_NUMBER,\"required\":false,\"validation-errors\":_vm.streetNumberErrors,\"value\":_vm.streetNumber,\"name\":\"streetNumber\"},on:{\"input\":_vm.setStreetNumber}}),_c('custom-select',{attrs:{\"can-be-empty\":true,\"label\":`${_vm.$t('housing.streetNumberSuffix')}`,\"options\":_vm.getStreetNumberSuffixOptions,\"value\":_vm.streetNumberSuffix,\"name\":\"streetNumberSuffix\"},on:{\"input\":_vm.setStreetNumberSuffix}}),_c('custom-input',{attrs:{\"label\":`${_vm.$t('housing.street')}`,\"validation-errors\":_vm.streetErrors,\"value\":_vm.street,\"name\":\"street\"},on:{\"input\":_vm.setStreet}}),_c('custom-input',{attrs:{\"has-counter\":true,\"label\":`${_vm.$t('housing.postCode')}`,\"maxlength\":_vm.MAX_LENGTH_POST_CODE,\"validation-errors\":_vm.postCodeErrors,\"value\":_vm.postCode,\"name\":\"postCode\"},on:{\"input\":_vm.setPostCode}}),_c('custom-input',{attrs:{\"label\":`${_vm.$t('housing.city')}`,\"validation-errors\":_vm.cityErrors,\"value\":_vm.city,\"name\":\"city\"},on:{\"input\":_vm.setCity}})],1),_c('h2',{staticClass:\"title is-5\"},[_vm._v(_vm._s(_vm.$t(\"housing.yourConsumption\"))+\" *\")]),_c('div',{staticClass:\"block\"},[_c('b-field',{staticClass:\"container__radio-consumption\",attrs:{\"grouped\":\"\"}},[_c('div',{staticClass:\"field\"},[_c('b-radio',{attrs:{\"native-value\":_vm.ConsumptionInformationType.EURO,\"value\":_vm.consumptionInformationType,\"name\":\"consumptionInformationType\"},on:{\"input\":_vm.setConsumptionInformationType}},[_vm._v(\" \"+_vm._s(_vm.$t(\"housing.knowAnnualBill\"))+\" \")])],1),_c('number-input',{attrs:{\"disabled\":_vm.isConsumptionInformationEurosDisabled,\"expanded\":false,\"validation-errors\":_vm.consumptionInformationEurosErrors,\"value\":_vm.consumptionInformationEuros,\"min\":\"0\",\"name\":\"consumptionInformationEuros\",\"step\":\"1\"},on:{\"input\":_vm.setConsumptionInformationEuros}}),_c('p',{staticClass:\"control\"},[_c('span',{staticClass:\"button is-static\"},[_vm._v(\"€\")])])],1),_c('b-field',{staticClass:\"container__radio-consumption\",attrs:{\"grouped\":\"\"}},[_c('div',{staticClass:\"field\"},[_c('b-radio',{attrs:{\"native-value\":_vm.ConsumptionInformationType.WATT,\"value\":_vm.consumptionInformationType,\"name\":\"consumptionInformationType\"},on:{\"input\":_vm.setConsumptionInformationType}},[_vm._v(\" \"+_vm._s(_vm.$t(\"housing.knowAnnualConsumption\"))+\" \")])],1),_c('number-input',{attrs:{\"disabled\":_vm.isConsumptionInformationKwhDisabled,\"expanded\":false,\"validation-errors\":_vm.consumptionInformationKwhErrors,\"value\":_vm.consumptionInformationKwh,\"min\":\"0\",\"name\":\"consumptionInformationKwh\",\"step\":\"1\"},on:{\"input\":_vm.setConsumptionInformationKwh}}),_c('p',{staticClass:\"control\"},[_c('span',{staticClass:\"button is-static\"},[_vm._v(\"kWh\")])])],1)],1),(!_vm.isHousingStepValid)?_c('div',{staticClass:\"block\"},[_c('b-message',{attrs:{\"type\":\"is-warning\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"common.forValidThisStepPleaseInquireAllField\"))+\" \")])],1):_vm._e()]:_vm._e(),_c('navigation-buttons',{attrs:{\"next-route\":_vm.nextStep,\"previous-route\":_vm.previousStep,\"isStepValidated\":_vm.isHousingStepValid}})],2)])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"block\"},[_c('b-field',{attrs:{\"message\":_vm.getFieldError,\"type\":_vm.getFieldType}},[_c('template',{slot:\"label\"},[_c('div',{staticClass:\"grid-operators-select__label\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"housing.gridOperator.title\"))+\" * \"),_c('p',{staticClass:\"grid-operators-select__info\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"housing.gsrnEANNumberInformation\"))+\" \"),_c('a',{attrs:{\"href\":_vm.getFaqUrl,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$t(\"housing.FAQ\")))])])]),_c('help-button',{attrs:{\"body\":_vm.getGridOperatorHelperText.body,\"header\":_vm.getGridOperatorHelperText.header,\"cy-id\":\"gridOperator-helpModal\"}})],1)]),_c('b-select',{attrs:{\"expanded\":\"\",\"disabled\":_vm.gridOperatorsError,\"loading\":_vm.gridOperatorsLoading,\"placeholder\":_vm.$t('housing.gridOperator.placeholder'),\"cy-id\":\"gridOperatorSelector-input\",\"field\":\"name\",\"name\":\"gridOperator\"},on:{\"blur\":_vm.onBlur,\"input\":_vm.onInput},model:{value:(_vm.gridOperatorSelected),callback:function ($$v) {_vm.gridOperatorSelected=$$v},expression:\"gridOperatorSelected\"}},_vm._l((_vm.gridOperators),function(gridOperator){return _c('option',{key:gridOperator.id,domProps:{\"value\":gridOperator.name}},[_vm._v(\" \"+_vm._s(gridOperator.name)+\" \")])}),0)],2),(_vm.gridOperatorsError)?_c('b-message',{attrs:{\"cy-id\":\"gridOperatorSelector-warning\",\"type\":\"is-danger\"}},[_vm._v(_vm._s(_vm.$t(`housing.gridOperator.errors.UNKNOWN_ERROR`))+\" \")]):(!_vm.isGridOperatorValid && _vm.isGridOperatorExist)?_c('b-message',{attrs:{\"cy-id\":\"gridOperatorSelector-warning\",\"type\":\"is-warning\"}},[_vm._v(_vm._s(_vm.$t(`housing.gridOperator.statuses['${this.gridOperatorStatus}']`))+\" \")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div class=\"block\">\n    <b-field :message=\"getFieldError\" :type=\"getFieldType\">\n      <template slot=\"label\">\n        <div class=\"grid-operators-select__label\">\n          <div>\n            {{ $t(\"housing.gridOperator.title\") }} *\n            <p class=\"grid-operators-select__info\">\n              {{ $t(\"housing.gsrnEANNumberInformation\") }}\n              <a :href=\"getFaqUrl\" target=\"_blank\">{{ $t(\"housing.FAQ\") }}</a>\n            </p>\n          </div>\n          <help-button\n            :body=\"getGridOperatorHelperText.body\"\n            :header=\"getGridOperatorHelperText.header\"\n            cy-id=\"gridOperator-helpModal\"\n          />\n        </div>\n      </template>\n      <b-select\n        expanded\n        v-model=\"gridOperatorSelected\"\n        :disabled=\"gridOperatorsError\"\n        :loading=\"gridOperatorsLoading\"\n        :placeholder=\"$t('housing.gridOperator.placeholder')\"\n        cy-id=\"gridOperatorSelector-input\"\n        field=\"name\"\n        name=\"gridOperator\"\n        @blur=\"onBlur\"\n        @input=\"onInput\"\n      >\n        <option\n          v-for=\"gridOperator in gridOperators\"\n          :key=\"gridOperator.id\"\n          :value=\"gridOperator.name\"\n        >\n          {{ gridOperator.name }}\n        </option>\n      </b-select>\n    </b-field>\n    <b-message\n      v-if=\"gridOperatorsError\"\n      cy-id=\"gridOperatorSelector-warning\"\n      type=\"is-danger\"\n      >{{ $t(`housing.gridOperator.errors.UNKNOWN_ERROR`) }}\n    </b-message>\n    <b-message\n      v-else-if=\"!isGridOperatorValid && isGridOperatorExist\"\n      cy-id=\"gridOperatorSelector-warning\"\n      type=\"is-warning\"\n      >{{ $t(`housing.gridOperator.statuses['${this.gridOperatorStatus}']`) }}\n    </b-message>\n  </div>\n</template>\n\n<script>\nimport { mapGetters, mapMutations } from \"vuex\";\nimport HelpButton from \"@/components/HelpButton\";\nimport { GridOperatorEnum } from \"@/store/subscription/housing/type\";\n\nexport default {\n  name: \"grid-operator-selector\",\n  components: { HelpButton },\n  data() {\n    return {\n      tenant: process.env.VUE_APP_TENANT,\n      gridOperatorSelected: \"\",\n      isVisited: false,\n    };\n  },\n  mounted() {\n    this.gridOperatorSelected =\n      this.gridOperator?.name ?? GridOperatorEnum.ENEDIS;\n  },\n  computed: {\n    ...mapGetters(\"subscription/gridOperator\", {\n      gridOperators: \"getGridOperators\",\n      gridOperatorsLoading: \"getGridOperatorsLoading\",\n      gridOperatorsError: \"getGridOperatorsError\",\n    }),\n    ...mapGetters(\"subscription/housing\", {\n      gridOperator: \"getGridOperator\",\n      isGridOperatorValid: \"isGridOperatorValid\",\n      gridOperatorStatus: \"getGridOperatorStatus\",\n    }),\n    getFaqUrl() {\n      return this.tenant === \"MYL\"\n        ? \"https://www.mylight-systems.com/faqs\"\n        : \"https://www.domuneo.com/energie-stockage/comprendr-ma-facture-faq/\";\n    },\n    isGridOperatorExist() {\n      return this.gridOperator !== null;\n    },\n    getFieldType() {\n      if (this.isGridOperatorValid) {\n        return \"is-success\";\n      }\n      if (this.isGridOperatorExist) {\n        return \"is-warning\";\n      }\n      if (this.isVisited) {\n        return \"is-danger\";\n      }\n      return \"\";\n    },\n    getFieldError() {\n      if (this.isVisited && !this.isGridOperatorExist) {\n        return this.$t(\"common.formError.fieldMustBeInquired\");\n      }\n      return \"\";\n    },\n    getGridOperatorHelperText() {\n      return {\n        header: this.$t(\"housing.gridOperator.help.header\"),\n        body: this.$t(\"housing.gridOperator.help.body\", {\n          url:\n            this.tenant === \"MYL\"\n              ? \"https://www.mylight-systems.com/faqs/puis-je-souscrire-a-votre-offre-quel-que-soit-mon-lieu-de-residence/\"\n              : \"https://www.domuneo.com/energie-stockage/comprendr-ma-facture-faq/\",\n        }),\n      };\n    },\n  },\n  methods: {\n    ...mapMutations(\"subscription/housing\", [\"setGridOperatorId\"]),\n    onInput(value) {\n      const gridOperator = this.gridOperators.find((obj) => obj.name === value);\n      this.setGridOperatorId(gridOperator ? gridOperator.id : null);\n    },\n    onBlur() {\n      this.isVisited = true;\n    },\n  },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.grid-operators-select {\n  &__label {\n    display: flex;\n    flex-direction: row;\n    justify-content: space-between;\n    align-items: center;\n  }\n\n  &__info {\n    font-size: 0.75rem;\n    font-weight: normal;\n    margin-bottom: 0.5em;\n  }\n}\n</style>\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GridOperatorSelector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GridOperatorSelector.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./GridOperatorSelector.vue?vue&type=template&id=095e716b&scoped=true&\"\nimport script from \"./GridOperatorSelector.vue?vue&type=script&lang=js&\"\nexport * from \"./GridOperatorSelector.vue?vue&type=script&lang=js&\"\nimport style0 from \"./GridOperatorSelector.vue?vue&type=style&index=0&id=095e716b&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"095e716b\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-field',{staticClass:\"custom-input\",attrs:{\"expanded\":_vm.expanded,\"label\":_vm.getLabel,\"message\":_vm.getMessage,\"type\":_vm.getType}},[(_vm.$slots.label)?_c('template',{slot:\"label\"},[_vm._t(\"label\")],2):_vm._e(),_c('b-input',{attrs:{\"cy-id\":`numberInput-${_vm.name}`,\"disabled\":_vm.disabled,\"has-counter\":_vm.hasCounter,\"maxlength\":_vm.maxlength,\"min\":_vm.min,\"name\":_vm.name,\"step\":_vm.step,\"value\":_vm.value,\"type\":\"number\"},on:{\"blur\":function($event){_vm.isActive = true},\"input\":function($event){return _vm.$emit('input', $event)}},nativeOn:{\"keypress\":function($event){return _vm.lockDecimal.apply(null, arguments)}}})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <b-field\n    :expanded=\"expanded\"\n    :label=\"getLabel\"\n    :message=\"getMessage\"\n    :type=\"getType\"\n    class=\"custom-input\"\n  >\n    <template v-if=\"$slots.label\" slot=\"label\">\n      <slot name=\"label\" />\n    </template>\n    <b-input\n      :cy-id=\"`numberInput-${name}`\"\n      :disabled=\"disabled\"\n      :has-counter=\"hasCounter\"\n      :maxlength=\"maxlength\"\n      :min=\"min\"\n      :name=\"name\"\n      :step=\"step\"\n      :value=\"value\"\n      type=\"number\"\n      @blur=\"isActive = true\"\n      @input=\"$emit('input', $event)\"\n      @keypress.native=\"lockDecimal\"\n    ></b-input>\n  </b-field>\n</template>\n\n<script>\nimport commonInput from \"@/mixins/commonInput\";\n\nexport default {\n  name: \"number-input\",\n  mixins: [commonInput],\n  props: {\n    min: String,\n    step: String,\n  },\n  methods: {\n    lockDecimal(evt) {\n      const charCode = evt.which ? evt.which : evt.keyCode;\n      if ((charCode >= 43 && charCode <= 46) || charCode === 101) {\n        evt.preventDefault();\n        return false;\n      }\n      return true;\n    },\n  },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NumberInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NumberInput.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NumberInput.vue?vue&type=template&id=460af29c&scoped=true&\"\nimport script from \"./NumberInput.vue?vue&type=script&lang=js&\"\nexport * from \"./NumberInput.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"460af29c\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('custom-input',{attrs:{\"debounce-mode\":true,\"disabled\":_vm.loadingValidationGsrnEan,\"loading\":_vm.loadingValidationGsrnEan,\"maxlength\":_vm.maxLengthGsrnEan,\"validation-errors\":_vm.gsrnEANNumberErrors,\"value\":_vm.gsrnEANNumber,\"name\":\"gsrnEANNumber\"},on:{\"debounce\":_vm.debounceGsrnEANNumber,\"input\":_vm.setGsrnEANNumber}},[_c('template',{slot:\"label\"},[_c('div',{staticClass:\"gsrn-ean-input__label\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"housing.gsrnEANNumber\"))+\" * \"),_c('p',{staticClass:\"gsrn-ean-input__info\"},[_vm._v(\" \"+_vm._s(_vm.$t(`housing.gsrnEANNumberInfo.${_vm.gridOperatorEnum}`))+\" \")])]),_c('help-button',{attrs:{\"body\":_vm.gsrnHelp.body,\"header\":_vm.gsrnHelp.header,\"cy-id\":\"housingGsrn-helpModal\",\"image\":\"gsrn\"}})],1)])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <custom-input\n    :debounce-mode=\"true\"\n    :disabled=\"loadingValidationGsrnEan\"\n    :loading=\"loadingValidationGsrnEan\"\n    :maxlength=\"maxLengthGsrnEan\"\n    :validation-errors=\"gsrnEANNumberErrors\"\n    :value=\"gsrnEANNumber\"\n    name=\"gsrnEANNumber\"\n    @debounce=\"debounceGsrnEANNumber\"\n    @input=\"setGsrnEANNumber\"\n  >\n    <template slot=\"label\">\n      <div class=\"gsrn-ean-input__label\">\n        <div>\n          {{ $t(\"housing.gsrnEANNumber\") }} *\n          <p class=\"gsrn-ean-input__info\">\n            {{ $t(`housing.gsrnEANNumberInfo.${gridOperatorEnum}`) }}\n          </p>\n        </div>\n        <help-button\n          :body=\"gsrnHelp.body\"\n          :header=\"gsrnHelp.header\"\n          cy-id=\"housingGsrn-helpModal\"\n          image=\"gsrn\"\n        />\n      </div>\n    </template>\n  </custom-input>\n</template>\n\n<script>\nimport {\n  MAX_LENGTH_GSRN_EAN_NUMBER_ENEDIS,\n  MAX_LENGTH_GSRN_EAN_NUMBER_ES,\n} from \"@/store/subscription/housing/constants\";\nimport { mapActions, mapGetters, mapMutations } from \"vuex\";\nimport CustomInput from \"@/components/CustomInput\";\nimport HelpButton from \"@/components/HelpButton\";\nimport { GridOperatorEnum } from \"@/store/subscription/housing/type\";\n\nexport default {\n  name: \"GsrnEanInput\",\n  components: {\n    CustomInput,\n    HelpButton,\n  },\n  data() {\n    return {\n      maxLengthGsrnEan: MAX_LENGTH_GSRN_EAN_NUMBER_ENEDIS,\n      MAX_LENGTH_GSRN_EAN_NUMBER_ENEDIS,\n      MAX_LENGTH_GSRN_EAN_NUMBER_ES,\n      gsrnHelp: {\n        header: this.$t(\"housing.gsrnHelp.header\"),\n        body: this.$t(\"housing.gsrnHelp.body\"),\n      },\n    };\n  },\n  computed: {\n    ...mapGetters(\"subscription/housing\", {\n      gsrnEANNumber: \"getGsrnEANNumber\",\n      gridOperator: \"getGridOperator\",\n      gridOperatorEnum: \"getGridOperatorEnum\",\n      gsrnEANNumberErrors: \"getGsrnEANNumberErrors\",\n      loadingValidationGsrnEan: \"getLoadingValidationGsrnEan\",\n      isGsrnEANNumberEmpty: \"isGsrnEANNumberEmpty\",\n      isGsrnEANNumberBadFormat: \"isGsrnEANNumberBadFormat\",\n      isGsrnEANNumberValid: \"isGsrnEANNumberValid\",\n    }),\n  },\n  methods: {\n    ...mapMutations(\"subscription/housing\", [\n      \"setGsrnEANNumber\",\n      \"clearErrorValidationGsrnEan\",\n      \"setSuccessValidationGsrnEan\",\n    ]),\n    ...mapActions(\"subscription/housing\", [\"checkGsrnEan\"]),\n    debounceGsrnEANNumber: function (val) {\n      if (!this.isGsrnEANNumberEmpty && !this.isGsrnEANNumberBadFormat) {\n        this.checkGsrnEan(val);\n      }\n    },\n  },\n  watch: {\n    gsrnEANNumber: function () {\n      this.setSuccessValidationGsrnEan(false);\n      this.clearErrorValidationGsrnEan();\n    },\n    gridOperator: function () {\n      this.debounceGsrnEANNumber(this.gsrnEANNumber);\n      this.maxLengthGsrnEan =\n        this.gridOperatorEnum === GridOperatorEnum.ENEDIS\n          ? MAX_LENGTH_GSRN_EAN_NUMBER_ENEDIS\n          : MAX_LENGTH_GSRN_EAN_NUMBER_ES;\n    },\n  },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.gsrn-ean-input {\n  &__label {\n    display: flex;\n    flex-direction: row;\n    justify-content: space-between;\n    align-items: center;\n  }\n\n  &__info {\n    font-size: 0.75rem;\n    font-weight: normal;\n    margin-bottom: 0.5em;\n  }\n}\n</style>\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GsrnEanInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GsrnEanInput.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./GsrnEanInput.vue?vue&type=template&id=637d86c4&scoped=true&\"\nimport script from \"./GsrnEanInput.vue?vue&type=script&lang=js&\"\nexport * from \"./GsrnEanInput.vue?vue&type=script&lang=js&\"\nimport style0 from \"./GsrnEanInput.vue?vue&type=style&index=0&id=637d86c4&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"637d86c4\",\n  null\n  \n)\n\nexport default component.exports","<template>\n  <section>\n    <div class=\"container is-fluid\">\n      <div class=\"columns\">\n        <div class=\"column is-half-desktop is-full-tablet\">\n          <h2 class=\"title is-5\">{{ $t(\"housing.yourPointOfConsumption\") }}</h2>\n          <grid-operator-selector />\n          <template v-if=\"isGridOperatorValid\">\n            <div class=\"block\">\n              <gsrn-ean-input />\n              <custom-select\n                :is-empty=\"isContractedPowerEmpty\"\n                :is-valid=\"isContractedPowerValid\"\n                :label=\"`${$t('housing.contractedPower')} *`\"\n                :options=\"getContractedPowerOptions\"\n                :validation-errors=\"contractedPowerErrors\"\n                :value=\"contractedPower\"\n                name=\"contractedPower\"\n                @input=\"setContractedPower\"\n              />\n            </div>\n            <h2 class=\"title is-5\">\n              {{ $t(\"housing.yourAddress\") }}\n            </h2>\n            <div class=\"block\">\n              <custom-input\n                :label=\"`${$t('housing.streetNumber')}`\"\n                :maxlength=\"MAX_LENGTH_STREET_NUMBER\"\n                :required=\"false\"\n                :validation-errors=\"streetNumberErrors\"\n                :value=\"streetNumber\"\n                name=\"streetNumber\"\n                @input=\"setStreetNumber\"\n              />\n              <custom-select\n                :can-be-empty=\"true\"\n                :label=\"`${$t('housing.streetNumberSuffix')}`\"\n                :options=\"getStreetNumberSuffixOptions\"\n                :value=\"streetNumberSuffix\"\n                name=\"streetNumberSuffix\"\n                @input=\"setStreetNumberSuffix\"\n              />\n              <custom-input\n                :label=\"`${$t('housing.street')}`\"\n                :validation-errors=\"streetErrors\"\n                :value=\"street\"\n                name=\"street\"\n                @input=\"setStreet\"\n              />\n              <custom-input\n                :has-counter=\"true\"\n                :label=\"`${$t('housing.postCode')}`\"\n                :maxlength=\"MAX_LENGTH_POST_CODE\"\n                :validation-errors=\"postCodeErrors\"\n                :value=\"postCode\"\n                name=\"postCode\"\n                @input=\"setPostCode\"\n              />\n              <custom-input\n                :label=\"`${$t('housing.city')}`\"\n                :validation-errors=\"cityErrors\"\n                :value=\"city\"\n                name=\"city\"\n                @input=\"setCity\"\n              />\n            </div>\n            <h2 class=\"title is-5\">{{ $t(\"housing.yourConsumption\") }} *</h2>\n            <div class=\"block\">\n              <b-field class=\"container__radio-consumption\" grouped>\n                <div class=\"field\">\n                  <b-radio\n                    :native-value=\"ConsumptionInformationType.EURO\"\n                    :value=\"consumptionInformationType\"\n                    name=\"consumptionInformationType\"\n                    @input=\"setConsumptionInformationType\"\n                  >\n                    {{ $t(\"housing.knowAnnualBill\") }}\n                  </b-radio>\n                </div>\n                <number-input\n                  :disabled=\"isConsumptionInformationEurosDisabled\"\n                  :expanded=\"false\"\n                  :validation-errors=\"consumptionInformationEurosErrors\"\n                  :value=\"consumptionInformationEuros\"\n                  min=\"0\"\n                  name=\"consumptionInformationEuros\"\n                  step=\"1\"\n                  @input=\"setConsumptionInformationEuros\"\n                />\n                <p class=\"control\">\n                  <span class=\"button is-static\">€</span>\n                </p>\n              </b-field>\n              <b-field class=\"container__radio-consumption\" grouped>\n                <div class=\"field\">\n                  <b-radio\n                    :native-value=\"ConsumptionInformationType.WATT\"\n                    :value=\"consumptionInformationType\"\n                    name=\"consumptionInformationType\"\n                    @input=\"setConsumptionInformationType\"\n                  >\n                    {{ $t(\"housing.knowAnnualConsumption\") }}\n                  </b-radio>\n                </div>\n                <number-input\n                  :disabled=\"isConsumptionInformationKwhDisabled\"\n                  :expanded=\"false\"\n                  :validation-errors=\"consumptionInformationKwhErrors\"\n                  :value=\"consumptionInformationKwh\"\n                  min=\"0\"\n                  name=\"consumptionInformationKwh\"\n                  step=\"1\"\n                  @input=\"setConsumptionInformationKwh\"\n                />\n                <p class=\"control\">\n                  <span class=\"button is-static\">kWh</span>\n                </p>\n              </b-field>\n            </div>\n\n            <div v-if=\"!isHousingStepValid\" class=\"block\">\n              <b-message type=\"is-warning\">\n                {{ $t(\"common.forValidThisStepPleaseInquireAllField\") }}\n              </b-message>\n            </div>\n          </template>\n          <navigation-buttons\n            :next-route=\"nextStep\"\n            :previous-route=\"previousStep\"\n            :isStepValidated=\"isHousingStepValid\"\n          ></navigation-buttons>\n        </div>\n      </div>\n    </div>\n  </section>\n</template>\n\n<script>\nimport { mapGetters, mapMutations } from \"vuex\";\nimport {\n  MAX_LENGTH_GSRN_EAN_NUMBER_ES,\n  MAX_LENGTH_GSRN_EAN_NUMBER_ENEDIS,\n  MAX_LENGTH_POST_CODE,\n  MAX_LENGTH_STREET_NUMBER,\n} from \"@/store/subscription/housing/constants\";\nimport { RouteName } from \"@/store/navigation/type\";\nimport { ConsumptionInformationType } from \"@/store/subscription/housing/type\";\nimport CustomInput from \"../../components/CustomInput\";\nimport CustomSelect from \"../../components/CustomSelect\";\nimport GridOperatorSelector from \"./GridOperatorSelector\";\nimport NavigationButtons from \"../../components/NavigationButtons\";\nimport NumberInput from \"@/components/NumberInput\";\nimport GsrnEanInput from \"./GsrnEanInput\";\n\nexport default {\n  name: \"housingPage\",\n  components: {\n    GsrnEanInput,\n    NumberInput,\n    GridOperatorSelector,\n    CustomSelect,\n    CustomInput,\n    NavigationButtons,\n  },\n  data() {\n    return {\n      MAX_LENGTH_GSRN_EAN_NUMBER_ES,\n      MAX_LENGTH_GSRN_EAN_NUMBER_ENEDIS,\n      MAX_LENGTH_STREET_NUMBER,\n      MAX_LENGTH_POST_CODE,\n      ConsumptionInformationType: ConsumptionInformationType,\n      previousStep: RouteName.ContactInformation,\n      nextStep: RouteName.Billing,\n      gsrnHelp: {\n        header: this.$t(\"housing.gsrnHelp.header\"),\n        body: this.$t(\"housing.gsrnHelp.body\"),\n      },\n    };\n  },\n  computed: {\n    ...mapGetters(\"subscription/housing\", {\n      isGridOperatorValid: \"isGridOperatorValid\",\n\n      contractedPower: \"getContractedPower\",\n      contractedPowerErrors: \"getContractedPowerErrors\",\n      contractedPowers: \"getContractedPowers\",\n      isContractedPowerEmpty: \"isContractedPowerEmpty\",\n      isContractedPowerValid: \"isContractedPowerValid\",\n\n      streetNumber: \"getStreetNumber\",\n      isStreetNumberBadFormat: \"isStreetNumberBadFormat\",\n      isStreetNumberValid: \"isStreetNumberValid\",\n      streetNumberSuffix: \"getStreetNumberSuffix\",\n      streetNumberSuffixes: \"getStreetNumberSuffixes\",\n      streetNumberErrors: \"getStreetNumberErrors\",\n\n      street: \"getStreet\",\n      isStreetEmpty: \"isStreetEmpty\",\n      isStreetValid: \"isStreetValid\",\n      streetErrors: \"getStreetErrors\",\n\n      postCode: \"getPostCode\",\n      isPostCodeEmpty: \"isPostCodeEmpty\",\n      isPostCodeBadFormat: \"isPostCodeBadFormat\",\n      isPostCodeValid: \"isPostCodeValid\",\n      postCodeErrors: \"getPostCodeErrors\",\n\n      city: \"getCity\",\n      isCityEmpty: \"isCityEmpty\",\n      isCityValid: \"isCityValid\",\n      cityErrors: \"getCityErrors\",\n\n      consumptionInformationType: \"getConsumptionInformationType\",\n\n      consumptionInformationKwh: \"getConsumptionInformationKwh\",\n      isConsumptionInformationKwhEmpty: \"isConsumptionInformationKwhEmpty\",\n      isConsumptionInformationKwhValid: \"isConsumptionInformationKwhValid\",\n      consumptionInformationKwhErrors: \"getConsumptionInformationKwhErrors\",\n\n      consumptionInformationEuros: \"getConsumptionInformationEuros\",\n      isConsumptionInformationEurosEmpty: \"isConsumptionInformationEurosEmpty\",\n      isConsumptionInformationEurosValid: \"isConsumptionInformationEurosValid\",\n      consumptionInformationEurosErrors: \"getConsumptionInformationEurosErrors\",\n\n      isHousingStepValid: \"isHousingStepValid\",\n    }),\n    isConsumptionInformationEurosDisabled() {\n      return (\n        this.consumptionInformationType !== ConsumptionInformationType.EURO\n      );\n    },\n    isConsumptionInformationKwhDisabled() {\n      return (\n        this.consumptionInformationType !== ConsumptionInformationType.WATT\n      );\n    },\n    getContractedPowerOptions() {\n      return this.contractedPowers.map((contractedPower) => ({\n        name: contractedPower + \" kVa\",\n        value: contractedPower,\n      }));\n    },\n    getStreetNumberSuffixOptions() {\n      return this.streetNumberSuffixes.map((streetNumberSuffix) => ({\n        name: this.$t(`streetNumberSuffix.${streetNumberSuffix}`),\n        value: streetNumberSuffix,\n      }));\n    },\n  },\n  methods: {\n    ...mapMutations(\"subscription/housing\", [\n      \"setContractedPower\",\n      \"setGsrnEANNumber\",\n      \"setStreetNumber\",\n      \"setStreetNumberSuffix\",\n      \"setStreet\",\n      \"setPostCode\",\n      \"setCity\",\n      \"setConsumptionInformationType\",\n      \"setConsumptionInformationEuros\",\n      \"setConsumptionInformationKwh\",\n    ]),\n  },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.container__radio-consumption :deep(.is-grouped) {\n  align-items: start;\n\n  input {\n    width: 170px;\n  }\n\n  .control-label {\n    width: 250px;\n  }\n}\n\n@include media(\"<tablet\") {\n  .container__radio-consumption :deep(.is-grouped) {\n    & > .field:first-child {\n      margin-bottom: 0.5rem;\n    }\n\n    flex-wrap: wrap;\n  }\n}\n</style>\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./housingPage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./housingPage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./housingPage.vue?vue&type=template&id=fa97cfb6&scoped=true&\"\nimport script from \"./housingPage.vue?vue&type=script&lang=js&\"\nexport * from \"./housingPage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./housingPage.vue?vue&type=style&index=0&id=fa97cfb6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"fa97cfb6\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',[_c('div',{staticClass:\"container is-fullhd offer-page-container\"},[_c('product-type-selector'),_c('battery-plan-info'),_c('battery-plan-selector'),_c('b-message',[_c('div',{staticClass:\"content is-normal\"},[(_vm.tenant === 'MYL')?_c('p',[_c('strong',[_c('span',[_vm._v(_vm._s(_vm.$t(`offer.infoSizeMSB.${_vm.tenant}.title`)))]),_c('a',{staticClass:\"link-to\",attrs:{\"href\":\"https://www.mylight-systems.com/tarifs-mysmartbattery/\",\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$t(`offer.infoSizeMSB.${_vm.tenant}.titleLink`)))])])]):_vm._e(),(_vm.tenant === 'DOM')?_c('p',[_c('strong',[_c('span',[_vm._v(_vm._s(_vm.$t(`offer.infoSizeMSB.${_vm.tenant}.title`)))]),_c('a',{staticClass:\"link-to\",attrs:{\"href\":\"https://domuneo.com/energie-stockage/fournisseur-delectricite-verte/grille-tarifaire-domuneo/\",\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$t(`offer.infoSizeMSB.${_vm.tenant}.persoLink`)))]),_c('span',[_vm._v(_vm._s(_vm.$t(`offer.infoSizeMSB.${_vm.tenant}.subtitle`)))]),_c('a',{staticClass:\"link-to\",attrs:{\"href\":\"https://domuneo.com/energie-stockage/fournisseur-delectricite-verte-pro/grille-tarifaire-domuneo-pro/\",\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$t(`offer.infoSizeMSB.${_vm.tenant}.proLink`)))])])]):_vm._e(),_c('p',[_c('span',[_vm._v(_vm._s(_vm.$t(`offer.infoSizeMSB.${_vm.tenant}.regularContent`)))]),_c('a',{staticClass:\"link-to\",attrs:{\"href\":`mailto:${_vm.getContactMailByTenant}`}},[_vm._v(_vm._s(_vm.getContactMailByTenant))]),_c('strong',[_vm._v(_vm._s(_vm.$t(`offer.infoSizeMSB.${_vm.tenant}.strongContent`)))])])])]),_c('b-message',{attrs:{\"type\":\"is-info\"}},[_c('div',{staticClass:\"content is-normal\"},[_c('p',[_c('strong',[_vm._v(_vm._s(_vm.$t(`offer.infoSubscriptionMSB.${_vm.tenant}.title`)))])]),_c('ul',[_c('li',[_vm._v(\" \"+_vm._s(_vm.$t( `offer.infoSubscriptionMSB.${_vm.tenant}.haveAlreadySolutionMylight150` ))+\" \")]),_c('li',[_vm._v(\" \"+_vm._s(_vm.$t(`offer.infoSubscriptionMSB.${_vm.tenant}.areFreeCommitment`))+\" \")])])])]),_c('navigation-buttons',{attrs:{\"nextRoute\":_vm.nextStep,\"isStepValidated\":_vm.isOfferStepValid}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"product-type-selector-container block\"},[_c('h2',{staticClass:\"title is-5 product-type-selector-title\"},[_vm._v(\" \"+_vm._s(_vm.productTypeTitle)+\" \"),_c('help-button',{attrs:{\"body\":_vm.productTypeHelp.body,\"header\":_vm.productTypeHelp.header,\"cy-id\":\"productType-helpButton\"}})],1),_c('div',{staticClass:\"product-type-selector-inner-container\"},_vm._l((_vm.productTypes),function(productType,index){return _c('div',{key:index,staticClass:\"product-type\",attrs:{\"cy-id\":`productType-${productType}`}},[_c('div',{staticClass:\"product-type-icon-container\"},[_c('div',{staticClass:\"product-type-icon-inner-container\"},[_c('product-type-icon')],1)]),_c('div',{staticClass:\"product-type-info\"},[_c('h3',{staticClass:\"product-type-info-title\"},[_vm._v(\" \"+_vm._s(_vm.getProductTypeTitle(productType))+\" \")]),_c('ul',{staticClass:\"product-type-info-description\"},_vm._l((_vm.getProductTypeDescriptionItems(\n              productType\n            )),function(descriptionItem,index){return _c('li',{key:index,staticClass:\"product-type-info-description-item\"},[_c('div',{staticClass:\"description-item-icon\"},[_c('b-icon',{attrs:{\"icon\":\"check-bold\",\"type\":\"is-primary\"}})],1),_c('p',{staticClass:\"description-item-text\"},[_vm._v(_vm._s(descriptionItem))])])}),0),(_vm.tenant === 'MYL')?_c('a',{staticClass:\"product-type-info-button\",attrs:{\"href\":\"https://www.mylight-systems.com/tarifs-mysmartbattery/\",\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.$t(`offer.productTypes.${productType}.link.label`))+\" \")]):_c('p',[_vm._v(\" \"+_vm._s(_vm.$t(`offer.productTypes.${productType}.link.label`))+\" \"),_c('a',{staticClass:\"product-type-info-button-dom\",attrs:{\"href\":\"https://domuneo.com/energie-stockage/fournisseur-delectricite-verte/grille-tarifaire-domuneo/\",\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.$t(`offer.productTypes.${productType}.link.part`))+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t(`offer.productTypes.${productType}.link.linkingWord`))+\" \"),_c('a',{staticClass:\"product-type-info-button-dom\",attrs:{\"href\":\"https://domuneo.com/energie-stockage/fournisseur-delectricite-verte-pro/grille-tarifaire-domuneo-pro/\",\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.$t(`offer.productTypes.${productType}.link.pro`))+\" \")])])])])}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('svg',{attrs:{\"id\":\"Calque_1\",\"data-name\":\"Calque 1\",\"height\":\"63.65\",\"viewBox\":\"0 0 269.16 63.65\",\"width\":\"269.16\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('g',[_c('path',{staticClass:\"grey-color\",attrs:{\"d\":\"M89,4.22l.51.2.47.37c.48.44.72.76.72,1a.84.84,0,0,0,0,.36.8.8,0,0,1,.08.32.56.56,0,0,0,.13.33V37.42a2.68,2.68,0,0,1-.85,2,2.84,2.84,0,0,1-2,.83,2.83,2.83,0,0,1-2.85-2.84V12l-2.07,1.19a2.49,2.49,0,0,1-1.44.42,2.65,2.65,0,0,1-2.43-1.45A2.57,2.57,0,0,1,78.89,10a2.61,2.61,0,0,1,1.32-1.73l6.36-3.77.2-.11L87,4.22l.31,0a.93.93,0,0,1,.57-.11h.57s.09.05.18.05A.82.82,0,0,1,89,4.22Z\"}}),_c('path',{staticClass:\"grey-color\",attrs:{\"d\":\"M97.53,22.16A22.11,22.11,0,0,1,101,9.8q3.78-5.73,9.62-5.74A9.85,9.85,0,0,1,116,5.64a14,14,0,0,1,4.19,4.16,21.69,21.69,0,0,1,3.46,12.36,21.69,21.69,0,0,1-3.46,12.36A13.83,13.83,0,0,1,116,38.68a9.87,9.87,0,0,1-5.35,1.58q-5.79,0-9.62-5.74A22.06,22.06,0,0,1,97.53,22.16Zm17.94,9.15A16,16,0,0,0,118,22.19,16.53,16.53,0,0,0,115.47,13q-2.22-3.27-4.81-3.16-2.58-.11-4.91,3.16a16.61,16.61,0,0,0-2.48,9.23,16.1,16.1,0,0,0,2.48,9.12q2.22,3.21,4.89,3.21T115.47,31.31Z\"}}),_c('path',{staticClass:\"grey-color\",attrs:{\"d\":\"M128,22.16A22.11,22.11,0,0,1,131.55,9.8q3.78-5.73,9.62-5.74a9.88,9.88,0,0,1,5.38,1.58,14.07,14.07,0,0,1,4.19,4.16,21.69,21.69,0,0,1,3.46,12.36,21.69,21.69,0,0,1-3.46,12.36,13.83,13.83,0,0,1-4.22,4.16,9.87,9.87,0,0,1-5.35,1.58q-5.79,0-9.62-5.74A22.06,22.06,0,0,1,128,22.16ZM146,31.31a16,16,0,0,0,2.48-9.12A16.53,16.53,0,0,0,146,13c-1.48-2.18-3.09-3.23-4.81-3.16s-3.36,1-4.91,3.16a16.53,16.53,0,0,0-2.48,9.23,16,16,0,0,0,2.48,9.12q2.22,3.21,4.89,3.21T146,31.31Z\"}}),_c('path',{staticClass:\"grey-color\",attrs:{\"d\":\"M173,29.39a4.16,4.16,0,0,1-3.22,1.4,4.1,4.1,0,0,1-3.21-1.39,4.91,4.91,0,0,1-1.24-3.4V26a5,5,0,0,1,1.25-3.43,4.15,4.15,0,0,1,3.24-1.41A4.07,4.07,0,0,1,173,22.5a5,5,0,0,1,1.23,3.4V26A5,5,0,0,1,173,29.39Zm-4.67-1.48a1.82,1.82,0,0,0,1.5.8,1.7,1.7,0,0,0,1.46-.78,3.28,3.28,0,0,0,.56-1.93V26a3.17,3.17,0,0,0-.6-2,1.82,1.82,0,0,0-1.5-.8,1.7,1.7,0,0,0-1.46.79,3.23,3.23,0,0,0-.56,1.92V26A3.15,3.15,0,0,0,168.33,27.91Zm1,12.48a1.09,1.09,0,0,1-.83-.31,1,1,0,0,1-.32-.7,1.29,1.29,0,0,1,.25-.74l12.41-17a.93.93,0,0,1,.84-.49,1.13,1.13,0,0,1,.85.31,1,1,0,0,1,.32.7,1.32,1.32,0,0,1-.25.75l-12.41,17A1,1,0,0,1,169.34,40.39Zm15.1-1.33a4.37,4.37,0,0,1-6.43,0,4.91,4.91,0,0,1-1.24-3.39v-.06A5,5,0,0,1,178,32.2a4.37,4.37,0,0,1,6.42,0,4.9,4.9,0,0,1,1.25,3.39v.05A5,5,0,0,1,184.44,39.06Zm-4.67-1.46a1.81,1.81,0,0,0,1.5.79,1.7,1.7,0,0,0,1.46-.78,3.23,3.23,0,0,0,.56-1.92v-.06a3.19,3.19,0,0,0-.6-2,1.78,1.78,0,0,0-1.5-.79,1.72,1.72,0,0,0-1.46.78,3.22,3.22,0,0,0-.55,1.92v.05A3.26,3.26,0,0,0,179.77,37.6Z\"}}),_c('path',{staticClass:\"grey-color\",attrs:{\"d\":\"M202.22,40.15a1.21,1.21,0,0,1-.53-.36.69.69,0,0,0-.09-.18s-.1-.09-.14-.22L197.08,28.9a1.29,1.29,0,0,1,0-1.07,1.44,1.44,0,0,1,.8-.77,1.14,1.14,0,0,1,1,0,1.51,1.51,0,0,1,.79.78l3.11,7.36,3.14-7.36a1.38,1.38,0,0,1,.74-.78,1.27,1.27,0,0,1,1.08,0,1.49,1.49,0,0,1,.79.77,1.25,1.25,0,0,1,0,1.07l-4.43,10.49a.52.52,0,0,1-.11.19l-.11.13s-.09.1-.17.17a1,1,0,0,0-.18.18.34.34,0,0,1-.14.09h0v0a.63.63,0,0,0-.22,0h-.05a1,1,0,0,1-.26,0,.9.9,0,0,1-.25,0h-.06l-.21,0v0Z\"}}),_c('path',{staticClass:\"grey-color\",attrs:{\"d\":\"M226.29,33.15a1.27,1.27,0,0,1-.39,1,1.48,1.48,0,0,1-1,.36h-8.6a3.26,3.26,0,0,0,.92,1.79,3.82,3.82,0,0,0,2.53,1.2,3.93,3.93,0,0,0,2.88-.66,1.4,1.4,0,0,1,1.08-.43,1.12,1.12,0,0,1,1,.35,1.21,1.21,0,0,1,0,1.75,6.72,6.72,0,0,1-4.78,1.78,6.39,6.39,0,0,1-4.73-2,6.86,6.86,0,0,1,0-9.54,6.17,6.17,0,0,1,4.61-2,6.35,6.35,0,0,1,4.56,1.77,6.5,6.5,0,0,1,2,4.5Zm-6.51-3.84a3.77,3.77,0,0,0-2.52,1,3.57,3.57,0,0,0-1.14,1.89h7.66a3.71,3.71,0,0,0-1.31-1.84A4.74,4.74,0,0,0,219.78,29.31Z\"}}),_c('path',{staticClass:\"grey-color\",attrs:{\"d\":\"M234.06,28.36a4.34,4.34,0,0,1,1.7-1.18,5,5,0,0,1,2-.43,1.88,1.88,0,0,1,1.31.42,1.32,1.32,0,0,1,.42,1,1.42,1.42,0,0,1-.42,1,1.36,1.36,0,0,1-1,.43c-1.67,0-3,1.36-4,4.09v5.14a1.36,1.36,0,0,1-.44,1,1.42,1.42,0,0,1-1,.42,1.43,1.43,0,0,1-1.44-1.43V28.17a1.33,1.33,0,0,1,.42-1,1.4,1.4,0,0,1,1-.41,1.45,1.45,0,0,1,1,.41,1.31,1.31,0,0,1,.44,1Z\"}}),_c('path',{staticClass:\"grey-color\",attrs:{\"d\":\"M248.12,26.74a1.47,1.47,0,0,1,1.07.43,1.39,1.39,0,0,1,.45,1,1.41,1.41,0,0,1-.45,1.05,1.45,1.45,0,0,1-1.07.45h-.67v7.55a1.44,1.44,0,0,1,1.05.44,1.49,1.49,0,0,1,.43,1.07,1.47,1.47,0,0,1-1.48,1.49,3,3,0,0,1-3-3V29.71h-.78a1.45,1.45,0,0,1-1.06-.43,1.51,1.51,0,0,1,0-2.11,1.45,1.45,0,0,1,1.06-.43h.78V22.81a1.41,1.41,0,0,1,.45-1,1.47,1.47,0,0,1,1.07-.43,1.41,1.41,0,0,1,1,.43,1.44,1.44,0,0,1,.44,1v3.93Z\"}}),_c('path',{staticClass:\"grey-color\",attrs:{\"d\":\"M267.08,33.15a1.27,1.27,0,0,1-.39,1,1.48,1.48,0,0,1-1,.36h-8.6a3.26,3.26,0,0,0,.92,1.79,3.8,3.8,0,0,0,2.53,1.2,3.93,3.93,0,0,0,2.88-.66,1.4,1.4,0,0,1,1.08-.43,1.12,1.12,0,0,1,1,.35,1.21,1.21,0,0,1,0,1.75,6.72,6.72,0,0,1-4.78,1.78,6.39,6.39,0,0,1-4.73-2,6.83,6.83,0,0,1,0-9.54,6.17,6.17,0,0,1,4.61-2,6.37,6.37,0,0,1,4.56,1.77,6.5,6.5,0,0,1,2,4.5Zm-6.51-3.84a3.77,3.77,0,0,0-2.52,1,3.57,3.57,0,0,0-1.14,1.89h7.66a3.71,3.71,0,0,0-1.31-1.84A4.74,4.74,0,0,0,260.57,29.31Z\"}})]),_c('g',[_c('path',{staticClass:\"primary-color\",attrs:{\"d\":\"M91.43,62.22l-.78-2.07H86.78L86,62.22a.78.78,0,0,1-.77.56.86.86,0,0,1-.79-.39.93.93,0,0,1-.09-.81l3.52-9.37a.85.85,0,0,1,.34-.41.76.76,0,0,1,.5-.15.81.81,0,0,1,.84.56l3.52,9.37a.93.93,0,0,1-.1.81.85.85,0,0,1-.79.39A.76.76,0,0,1,91.43,62.22Zm-4-3.82H90L88.71,55Z\"}}),_c('path',{staticClass:\"primary-color\",attrs:{\"d\":\"M104.46,58.18a4.6,4.6,0,0,1-9.2,0V52.51a.85.85,0,0,1,.26-.62.83.83,0,0,1,.62-.25.88.88,0,0,1,.63.25.85.85,0,0,1,.26.62v5.67A2.85,2.85,0,0,0,99.86,61a2.76,2.76,0,0,0,2-.83,2.72,2.72,0,0,0,.82-2V52.51a.83.83,0,0,1,.27-.62.88.88,0,0,1,1.5.62Z\"}}),_c('path',{staticClass:\"primary-color\",attrs:{\"d\":\"M115.63,51.89a.84.84,0,0,1,.25.62.82.82,0,0,1-.26.63.81.81,0,0,1-.61.26h-2.53v8.5a.85.85,0,0,1-.26.62.84.84,0,0,1-.62.26.85.85,0,0,1-.62-.26.84.84,0,0,1-.25-.62V53.4h-2.52a.82.82,0,0,1-.62-.26.88.88,0,0,1,.62-1.5H115A.84.84,0,0,1,115.63,51.89Z\"}}),_c('path',{staticClass:\"primary-color\",attrs:{\"d\":\"M119.6,61.09a6,6,0,0,1,0-8.08,5.23,5.23,0,0,1,7.72,0,5.75,5.75,0,0,1,1.58,4,5.61,5.61,0,0,1-1.61,4,5.12,5.12,0,0,1-1.72,1.25,5,5,0,0,1-2.08.46A5.13,5.13,0,0,1,119.6,61.09Zm.23-4a3.94,3.94,0,0,0,1.07,2.76,3.42,3.42,0,0,0,5.13,0,4.13,4.13,0,0,0,0-5.49,3.43,3.43,0,0,0-5.15,0A3.93,3.93,0,0,0,119.83,57.05Z\"}}),_c('path',{staticClass:\"primary-color\",attrs:{\"d\":\"M134.52,54.28a3.86,3.86,0,0,0-1.17,2.8,3.65,3.65,0,0,0,1.19,2.74A3.83,3.83,0,0,0,137.28,61a4.15,4.15,0,0,0,2.66-.87.85.85,0,0,1,.65-.16.91.91,0,0,1,.62.33.92.92,0,0,1,.18.68.8.8,0,0,1-.34.59,5.78,5.78,0,0,1-3.67,1.25,5.69,5.69,0,0,1-4.11-1.68,5.59,5.59,0,0,1,0-8.09,5.94,5.94,0,0,1,7.78-.45.91.91,0,0,1,.16,1.27.86.86,0,0,1-.62.35.82.82,0,0,1-.65-.17,4.14,4.14,0,0,0-5.42.27Z\"}}),_c('path',{staticClass:\"primary-color\",attrs:{\"d\":\"M145.39,61.09a6,6,0,0,1,0-8.08,5.23,5.23,0,0,1,7.72,0,5.75,5.75,0,0,1,1.58,4,5.57,5.57,0,0,1-1.61,4,5.17,5.17,0,0,1-3.8,1.71A5.15,5.15,0,0,1,145.39,61.09Zm.23-4a3.94,3.94,0,0,0,1.07,2.76,3.42,3.42,0,0,0,5.13,0,4.1,4.1,0,0,0,0-5.49,3.43,3.43,0,0,0-5.15,0A3.93,3.93,0,0,0,145.62,57.05Z\"}}),_c('path',{staticClass:\"primary-color\",attrs:{\"d\":\"M159.58,55.3v6.6a.85.85,0,0,1-.26.61.8.8,0,0,1-.61.27.85.85,0,0,1-.62-.26.89.89,0,0,1-.25-.62V52.64a.73.73,0,0,1,.31-.7.91.91,0,0,1,.69-.18.79.79,0,0,1,.56.34l5.14,7.11V52.66a.82.82,0,0,1,.25-.61.87.87,0,0,1,1.22,0,.8.8,0,0,1,.26.61V61.9a.82.82,0,0,1-.26.62.86.86,0,0,1-.63.26.82.82,0,0,1-.63-.32.28.28,0,0,1-.08-.1Z\"}}),_c('path',{staticClass:\"primary-color\",attrs:{\"d\":\"M176.62,59.39c0-.81-.94-1.39-2.8-1.74h0a8.84,8.84,0,0,1-2.14-.67,3,3,0,0,1-1.33-1.1,2.62,2.62,0,0,1-.42-1.39,2.7,2.7,0,0,1,1.21-2.28,4.66,4.66,0,0,1,2.81-.89,4.56,4.56,0,0,1,1.43.24,6.85,6.85,0,0,1,1.09.44l.95.59a.84.84,0,0,1,.34.53.8.8,0,0,1-.63,1,.76.76,0,0,1-.62-.12,8.36,8.36,0,0,0-1.33-.76,3,3,0,0,0-1.23-.26,2.83,2.83,0,0,0-1.72.5,1.34,1.34,0,0,0-.67,1.05.86.86,0,0,0,.13.46c.3.49,1.1.85,2.4,1.09h0a10.82,10.82,0,0,1,2.19.67,3,3,0,0,1,2,2.68,2.87,2.87,0,0,1-1.3,2.42,5,5,0,0,1-3,.95,6.59,6.59,0,0,1-4.07-1.59.79.79,0,0,1-.29-.56.75.75,0,0,1,.16-.6.84.84,0,0,1,.56-.3.77.77,0,0,1,.6.19,4.79,4.79,0,0,0,3,1.22,3.16,3.16,0,0,0,1.94-.55A1.51,1.51,0,0,0,176.62,59.39Z\"}}),_c('path',{staticClass:\"primary-color\",attrs:{\"d\":\"M181.79,61.09a6,6,0,0,1,0-8.08,5.23,5.23,0,0,1,7.72,0,5.71,5.71,0,0,1,1.58,4,5.6,5.6,0,0,1-1.6,4,5.12,5.12,0,0,1-1.72,1.25,5,5,0,0,1-2.09.46A5.16,5.16,0,0,1,181.79,61.09Zm.24-4a3.93,3.93,0,0,0,1.06,2.76A3.37,3.37,0,0,0,185.66,61a3.32,3.32,0,0,0,2.56-1.17,3.93,3.93,0,0,0,1.06-2.74,4,4,0,0,0-1.05-2.75,3.33,3.33,0,0,0-2.57-1.17,3.39,3.39,0,0,0-2.58,1.16A4,4,0,0,0,182,57.05Z\"}}),_c('path',{staticClass:\"primary-color\",attrs:{\"d\":\"M199,58.75h0a.85.85,0,0,1-.73-.37L196,55.2v6.7a.83.83,0,0,1-.27.62.88.88,0,0,1-1.25,0,.84.84,0,0,1-.25-.62V52.51a.85.85,0,0,1,.87-.87h.05a.78.78,0,0,1,.7.36L199,56.4l3.16-4.4a.86.86,0,0,1,.72-.36h0a.91.91,0,0,1,.62.27.8.8,0,0,1,.27.6V61.9a.92.92,0,0,1-.89.88.84.84,0,0,1-.62-.26.85.85,0,0,1-.26-.62V55.2l-2.29,3.18A.84.84,0,0,1,199,58.75Z\"}}),_c('path',{staticClass:\"primary-color\",attrs:{\"d\":\"M212.46,58.75h0a.85.85,0,0,1-.73-.37l-2.28-3.18v6.7a.82.82,0,0,1-.26.62.88.88,0,0,1-1.25,0,.84.84,0,0,1-.25-.62V52.51a.85.85,0,0,1,.87-.87h.05a.78.78,0,0,1,.7.36l3.17,4.4,3.16-4.4a.86.86,0,0,1,.72-.36h0a.91.91,0,0,1,.63.27.8.8,0,0,1,.27.6V61.9a.82.82,0,0,1-.27.61.83.83,0,0,1-.63.27.85.85,0,0,1-.62-.26.84.84,0,0,1-.25-.62V55.2l-2.29,3.18A.84.84,0,0,1,212.46,58.75Z\"}}),_c('path',{staticClass:\"primary-color\",attrs:{\"d\":\"M227.55,62.22l-.78-2.07H222.9l-.78,2.07a.79.79,0,0,1-.77.56.85.85,0,0,1-.79-.39.9.9,0,0,1-.09-.81L224,52.21a1,1,0,0,1,.34-.41.79.79,0,0,1,.51-.15.81.81,0,0,1,.84.56l3.52,9.37a.93.93,0,0,1-.1.81.85.85,0,0,1-.79.39A.75.75,0,0,1,227.55,62.22Zm-4-3.82h2.57L224.83,55Z\"}}),_c('path',{staticClass:\"primary-color\",attrs:{\"d\":\"M238.79,51.89a.88.88,0,0,1,0,1.25.83.83,0,0,1-.62.26h-2.53v8.5a.84.84,0,0,1-.25.62.88.88,0,0,1-1.5-.62V53.4h-2.51a.82.82,0,0,1-.62-.26.88.88,0,0,1,.62-1.5h6.79A.83.83,0,0,1,238.79,51.89Z\"}}),_c('path',{staticClass:\"primary-color\",attrs:{\"d\":\"M241.79,52.51a.88.88,0,0,1,1.5-.62.85.85,0,0,1,.26.62V61.9a.88.88,0,0,1-1.51.62.84.84,0,0,1-.25-.62Z\"}}),_c('path',{staticClass:\"primary-color\",attrs:{\"d\":\"M247.62,61.09a5.93,5.93,0,0,1,0-8.08,5.22,5.22,0,0,1,7.71,0,5.72,5.72,0,0,1,1.59,4,5.61,5.61,0,0,1-1.61,4,5.12,5.12,0,0,1-1.72,1.25,5,5,0,0,1-2.08.46A5.13,5.13,0,0,1,247.62,61.09Zm.23-4a3.93,3.93,0,0,0,1.06,2.76,3.43,3.43,0,0,0,5.14,0,4.11,4.11,0,0,0,0-5.49,3.31,3.31,0,0,0-2.57-1.17,3.35,3.35,0,0,0-2.57,1.16A3.93,3.93,0,0,0,247.85,57.05Z\"}}),_c('path',{staticClass:\"primary-color\",attrs:{\"d\":\"M261.8,55.3v6.6a.84.84,0,0,1-.25.61.82.82,0,0,1-.61.27.85.85,0,0,1-.62-.26.84.84,0,0,1-.25-.62V52.64a.73.73,0,0,1,.31-.7.91.91,0,0,1,.69-.18.81.81,0,0,1,.56.34l5.14,7.11V52.66a.85.85,0,0,1,.86-.86.85.85,0,0,1,.61.25.83.83,0,0,1,.26.61V61.9a.85.85,0,0,1-.26.62.89.89,0,0,1-.63.26.83.83,0,0,1-.64-.32.48.48,0,0,1-.08-.1Z\"}})]),_c('g',[_c('path',{staticClass:\"grey-color\",attrs:{\"d\":\"M60.36,9.64H53.52a18.29,18.29,0,0,0-15.18,8.08,1.48,1.48,0,0,0,2.45,1.66,15.35,15.35,0,0,1,12.73-6.77h5.36V18A15.37,15.37,0,0,1,43.53,33.32H40a1.48,1.48,0,1,0,0,3h3.54A18.33,18.33,0,0,0,61.84,18V11.13A1.49,1.49,0,0,0,60.36,9.64Z\"}}),_c('path',{staticClass:\"grey-color\",attrs:{\"d\":\"M56.75,55.23a1.48,1.48,0,0,0,0-3H53.41v-.9a1.49,1.49,0,0,0-1.48-1.49H45.67a5.88,5.88,0,0,0-5.83,5.21H23.77a2.43,2.43,0,1,1,0-4.85h6.66A5.59,5.59,0,0,0,36,44.66V25.18A24.56,24.56,0,0,0,11.49.65H1.87A1.48,1.48,0,0,0,.39,2.13v9.62A24.55,24.55,0,0,0,24.92,36.28h8.14v8.38a2.63,2.63,0,0,1-2.63,2.62H23.77a5.39,5.39,0,1,0,0,10.77H39.82a5.88,5.88,0,0,0,5.85,5.45h6.26A1.48,1.48,0,0,0,53.41,62V60.86h3.34a1.48,1.48,0,0,0,0-3H53.41V55.23ZM3.35,11.75V3.61h8.14A21.6,21.6,0,0,1,33.06,25.18v8.14H24.92A21.59,21.59,0,0,1,3.35,11.75Zm47.1,48.79H45.67a2.92,2.92,0,0,1-2.91-2.92V55.76a2.91,2.91,0,0,1,2.91-2.91h4.78Z\"}})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <svg\n    id=\"Calque_1\"\n    data-name=\"Calque 1\"\n    height=\"63.65\"\n    viewBox=\"0 0 269.16 63.65\"\n    width=\"269.16\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n  >\n    <g>\n      <path\n        class=\"grey-color\"\n        d=\"M89,4.22l.51.2.47.37c.48.44.72.76.72,1a.84.84,0,0,0,0,.36.8.8,0,0,1,.08.32.56.56,0,0,0,.13.33V37.42a2.68,2.68,0,0,1-.85,2,2.84,2.84,0,0,1-2,.83,2.83,2.83,0,0,1-2.85-2.84V12l-2.07,1.19a2.49,2.49,0,0,1-1.44.42,2.65,2.65,0,0,1-2.43-1.45A2.57,2.57,0,0,1,78.89,10a2.61,2.61,0,0,1,1.32-1.73l6.36-3.77.2-.11L87,4.22l.31,0a.93.93,0,0,1,.57-.11h.57s.09.05.18.05A.82.82,0,0,1,89,4.22Z\"\n      />\n      <path\n        class=\"grey-color\"\n        d=\"M97.53,22.16A22.11,22.11,0,0,1,101,9.8q3.78-5.73,9.62-5.74A9.85,9.85,0,0,1,116,5.64a14,14,0,0,1,4.19,4.16,21.69,21.69,0,0,1,3.46,12.36,21.69,21.69,0,0,1-3.46,12.36A13.83,13.83,0,0,1,116,38.68a9.87,9.87,0,0,1-5.35,1.58q-5.79,0-9.62-5.74A22.06,22.06,0,0,1,97.53,22.16Zm17.94,9.15A16,16,0,0,0,118,22.19,16.53,16.53,0,0,0,115.47,13q-2.22-3.27-4.81-3.16-2.58-.11-4.91,3.16a16.61,16.61,0,0,0-2.48,9.23,16.1,16.1,0,0,0,2.48,9.12q2.22,3.21,4.89,3.21T115.47,31.31Z\"\n      />\n      <path\n        class=\"grey-color\"\n        d=\"M128,22.16A22.11,22.11,0,0,1,131.55,9.8q3.78-5.73,9.62-5.74a9.88,9.88,0,0,1,5.38,1.58,14.07,14.07,0,0,1,4.19,4.16,21.69,21.69,0,0,1,3.46,12.36,21.69,21.69,0,0,1-3.46,12.36,13.83,13.83,0,0,1-4.22,4.16,9.87,9.87,0,0,1-5.35,1.58q-5.79,0-9.62-5.74A22.06,22.06,0,0,1,128,22.16ZM146,31.31a16,16,0,0,0,2.48-9.12A16.53,16.53,0,0,0,146,13c-1.48-2.18-3.09-3.23-4.81-3.16s-3.36,1-4.91,3.16a16.53,16.53,0,0,0-2.48,9.23,16,16,0,0,0,2.48,9.12q2.22,3.21,4.89,3.21T146,31.31Z\"\n      />\n      <path\n        class=\"grey-color\"\n        d=\"M173,29.39a4.16,4.16,0,0,1-3.22,1.4,4.1,4.1,0,0,1-3.21-1.39,4.91,4.91,0,0,1-1.24-3.4V26a5,5,0,0,1,1.25-3.43,4.15,4.15,0,0,1,3.24-1.41A4.07,4.07,0,0,1,173,22.5a5,5,0,0,1,1.23,3.4V26A5,5,0,0,1,173,29.39Zm-4.67-1.48a1.82,1.82,0,0,0,1.5.8,1.7,1.7,0,0,0,1.46-.78,3.28,3.28,0,0,0,.56-1.93V26a3.17,3.17,0,0,0-.6-2,1.82,1.82,0,0,0-1.5-.8,1.7,1.7,0,0,0-1.46.79,3.23,3.23,0,0,0-.56,1.92V26A3.15,3.15,0,0,0,168.33,27.91Zm1,12.48a1.09,1.09,0,0,1-.83-.31,1,1,0,0,1-.32-.7,1.29,1.29,0,0,1,.25-.74l12.41-17a.93.93,0,0,1,.84-.49,1.13,1.13,0,0,1,.85.31,1,1,0,0,1,.32.7,1.32,1.32,0,0,1-.25.75l-12.41,17A1,1,0,0,1,169.34,40.39Zm15.1-1.33a4.37,4.37,0,0,1-6.43,0,4.91,4.91,0,0,1-1.24-3.39v-.06A5,5,0,0,1,178,32.2a4.37,4.37,0,0,1,6.42,0,4.9,4.9,0,0,1,1.25,3.39v.05A5,5,0,0,1,184.44,39.06Zm-4.67-1.46a1.81,1.81,0,0,0,1.5.79,1.7,1.7,0,0,0,1.46-.78,3.23,3.23,0,0,0,.56-1.92v-.06a3.19,3.19,0,0,0-.6-2,1.78,1.78,0,0,0-1.5-.79,1.72,1.72,0,0,0-1.46.78,3.22,3.22,0,0,0-.55,1.92v.05A3.26,3.26,0,0,0,179.77,37.6Z\"\n      />\n      <path\n        class=\"grey-color\"\n        d=\"M202.22,40.15a1.21,1.21,0,0,1-.53-.36.69.69,0,0,0-.09-.18s-.1-.09-.14-.22L197.08,28.9a1.29,1.29,0,0,1,0-1.07,1.44,1.44,0,0,1,.8-.77,1.14,1.14,0,0,1,1,0,1.51,1.51,0,0,1,.79.78l3.11,7.36,3.14-7.36a1.38,1.38,0,0,1,.74-.78,1.27,1.27,0,0,1,1.08,0,1.49,1.49,0,0,1,.79.77,1.25,1.25,0,0,1,0,1.07l-4.43,10.49a.52.52,0,0,1-.11.19l-.11.13s-.09.1-.17.17a1,1,0,0,0-.18.18.34.34,0,0,1-.14.09h0v0a.63.63,0,0,0-.22,0h-.05a1,1,0,0,1-.26,0,.9.9,0,0,1-.25,0h-.06l-.21,0v0Z\"\n      />\n      <path\n        class=\"grey-color\"\n        d=\"M226.29,33.15a1.27,1.27,0,0,1-.39,1,1.48,1.48,0,0,1-1,.36h-8.6a3.26,3.26,0,0,0,.92,1.79,3.82,3.82,0,0,0,2.53,1.2,3.93,3.93,0,0,0,2.88-.66,1.4,1.4,0,0,1,1.08-.43,1.12,1.12,0,0,1,1,.35,1.21,1.21,0,0,1,0,1.75,6.72,6.72,0,0,1-4.78,1.78,6.39,6.39,0,0,1-4.73-2,6.86,6.86,0,0,1,0-9.54,6.17,6.17,0,0,1,4.61-2,6.35,6.35,0,0,1,4.56,1.77,6.5,6.5,0,0,1,2,4.5Zm-6.51-3.84a3.77,3.77,0,0,0-2.52,1,3.57,3.57,0,0,0-1.14,1.89h7.66a3.71,3.71,0,0,0-1.31-1.84A4.74,4.74,0,0,0,219.78,29.31Z\"\n      />\n      <path\n        class=\"grey-color\"\n        d=\"M234.06,28.36a4.34,4.34,0,0,1,1.7-1.18,5,5,0,0,1,2-.43,1.88,1.88,0,0,1,1.31.42,1.32,1.32,0,0,1,.42,1,1.42,1.42,0,0,1-.42,1,1.36,1.36,0,0,1-1,.43c-1.67,0-3,1.36-4,4.09v5.14a1.36,1.36,0,0,1-.44,1,1.42,1.42,0,0,1-1,.42,1.43,1.43,0,0,1-1.44-1.43V28.17a1.33,1.33,0,0,1,.42-1,1.4,1.4,0,0,1,1-.41,1.45,1.45,0,0,1,1,.41,1.31,1.31,0,0,1,.44,1Z\"\n      />\n      <path\n        class=\"grey-color\"\n        d=\"M248.12,26.74a1.47,1.47,0,0,1,1.07.43,1.39,1.39,0,0,1,.45,1,1.41,1.41,0,0,1-.45,1.05,1.45,1.45,0,0,1-1.07.45h-.67v7.55a1.44,1.44,0,0,1,1.05.44,1.49,1.49,0,0,1,.43,1.07,1.47,1.47,0,0,1-1.48,1.49,3,3,0,0,1-3-3V29.71h-.78a1.45,1.45,0,0,1-1.06-.43,1.51,1.51,0,0,1,0-2.11,1.45,1.45,0,0,1,1.06-.43h.78V22.81a1.41,1.41,0,0,1,.45-1,1.47,1.47,0,0,1,1.07-.43,1.41,1.41,0,0,1,1,.43,1.44,1.44,0,0,1,.44,1v3.93Z\"\n      />\n      <path\n        class=\"grey-color\"\n        d=\"M267.08,33.15a1.27,1.27,0,0,1-.39,1,1.48,1.48,0,0,1-1,.36h-8.6a3.26,3.26,0,0,0,.92,1.79,3.8,3.8,0,0,0,2.53,1.2,3.93,3.93,0,0,0,2.88-.66,1.4,1.4,0,0,1,1.08-.43,1.12,1.12,0,0,1,1,.35,1.21,1.21,0,0,1,0,1.75,6.72,6.72,0,0,1-4.78,1.78,6.39,6.39,0,0,1-4.73-2,6.83,6.83,0,0,1,0-9.54,6.17,6.17,0,0,1,4.61-2,6.37,6.37,0,0,1,4.56,1.77,6.5,6.5,0,0,1,2,4.5Zm-6.51-3.84a3.77,3.77,0,0,0-2.52,1,3.57,3.57,0,0,0-1.14,1.89h7.66a3.71,3.71,0,0,0-1.31-1.84A4.74,4.74,0,0,0,260.57,29.31Z\"\n      />\n    </g>\n    <g>\n      <path\n        class=\"primary-color\"\n        d=\"M91.43,62.22l-.78-2.07H86.78L86,62.22a.78.78,0,0,1-.77.56.86.86,0,0,1-.79-.39.93.93,0,0,1-.09-.81l3.52-9.37a.85.85,0,0,1,.34-.41.76.76,0,0,1,.5-.15.81.81,0,0,1,.84.56l3.52,9.37a.93.93,0,0,1-.1.81.85.85,0,0,1-.79.39A.76.76,0,0,1,91.43,62.22Zm-4-3.82H90L88.71,55Z\"\n      />\n      <path\n        class=\"primary-color\"\n        d=\"M104.46,58.18a4.6,4.6,0,0,1-9.2,0V52.51a.85.85,0,0,1,.26-.62.83.83,0,0,1,.62-.25.88.88,0,0,1,.63.25.85.85,0,0,1,.26.62v5.67A2.85,2.85,0,0,0,99.86,61a2.76,2.76,0,0,0,2-.83,2.72,2.72,0,0,0,.82-2V52.51a.83.83,0,0,1,.27-.62.88.88,0,0,1,1.5.62Z\"\n      />\n      <path\n        class=\"primary-color\"\n        d=\"M115.63,51.89a.84.84,0,0,1,.25.62.82.82,0,0,1-.26.63.81.81,0,0,1-.61.26h-2.53v8.5a.85.85,0,0,1-.26.62.84.84,0,0,1-.62.26.85.85,0,0,1-.62-.26.84.84,0,0,1-.25-.62V53.4h-2.52a.82.82,0,0,1-.62-.26.88.88,0,0,1,.62-1.5H115A.84.84,0,0,1,115.63,51.89Z\"\n      />\n      <path\n        class=\"primary-color\"\n        d=\"M119.6,61.09a6,6,0,0,1,0-8.08,5.23,5.23,0,0,1,7.72,0,5.75,5.75,0,0,1,1.58,4,5.61,5.61,0,0,1-1.61,4,5.12,5.12,0,0,1-1.72,1.25,5,5,0,0,1-2.08.46A5.13,5.13,0,0,1,119.6,61.09Zm.23-4a3.94,3.94,0,0,0,1.07,2.76,3.42,3.42,0,0,0,5.13,0,4.13,4.13,0,0,0,0-5.49,3.43,3.43,0,0,0-5.15,0A3.93,3.93,0,0,0,119.83,57.05Z\"\n      />\n      <path\n        class=\"primary-color\"\n        d=\"M134.52,54.28a3.86,3.86,0,0,0-1.17,2.8,3.65,3.65,0,0,0,1.19,2.74A3.83,3.83,0,0,0,137.28,61a4.15,4.15,0,0,0,2.66-.87.85.85,0,0,1,.65-.16.91.91,0,0,1,.62.33.92.92,0,0,1,.18.68.8.8,0,0,1-.34.59,5.78,5.78,0,0,1-3.67,1.25,5.69,5.69,0,0,1-4.11-1.68,5.59,5.59,0,0,1,0-8.09,5.94,5.94,0,0,1,7.78-.45.91.91,0,0,1,.16,1.27.86.86,0,0,1-.62.35.82.82,0,0,1-.65-.17,4.14,4.14,0,0,0-5.42.27Z\"\n      />\n      <path\n        class=\"primary-color\"\n        d=\"M145.39,61.09a6,6,0,0,1,0-8.08,5.23,5.23,0,0,1,7.72,0,5.75,5.75,0,0,1,1.58,4,5.57,5.57,0,0,1-1.61,4,5.17,5.17,0,0,1-3.8,1.71A5.15,5.15,0,0,1,145.39,61.09Zm.23-4a3.94,3.94,0,0,0,1.07,2.76,3.42,3.42,0,0,0,5.13,0,4.1,4.1,0,0,0,0-5.49,3.43,3.43,0,0,0-5.15,0A3.93,3.93,0,0,0,145.62,57.05Z\"\n      />\n      <path\n        class=\"primary-color\"\n        d=\"M159.58,55.3v6.6a.85.85,0,0,1-.26.61.8.8,0,0,1-.61.27.85.85,0,0,1-.62-.26.89.89,0,0,1-.25-.62V52.64a.73.73,0,0,1,.31-.7.91.91,0,0,1,.69-.18.79.79,0,0,1,.56.34l5.14,7.11V52.66a.82.82,0,0,1,.25-.61.87.87,0,0,1,1.22,0,.8.8,0,0,1,.26.61V61.9a.82.82,0,0,1-.26.62.86.86,0,0,1-.63.26.82.82,0,0,1-.63-.32.28.28,0,0,1-.08-.1Z\"\n      />\n      <path\n        class=\"primary-color\"\n        d=\"M176.62,59.39c0-.81-.94-1.39-2.8-1.74h0a8.84,8.84,0,0,1-2.14-.67,3,3,0,0,1-1.33-1.1,2.62,2.62,0,0,1-.42-1.39,2.7,2.7,0,0,1,1.21-2.28,4.66,4.66,0,0,1,2.81-.89,4.56,4.56,0,0,1,1.43.24,6.85,6.85,0,0,1,1.09.44l.95.59a.84.84,0,0,1,.34.53.8.8,0,0,1-.63,1,.76.76,0,0,1-.62-.12,8.36,8.36,0,0,0-1.33-.76,3,3,0,0,0-1.23-.26,2.83,2.83,0,0,0-1.72.5,1.34,1.34,0,0,0-.67,1.05.86.86,0,0,0,.13.46c.3.49,1.1.85,2.4,1.09h0a10.82,10.82,0,0,1,2.19.67,3,3,0,0,1,2,2.68,2.87,2.87,0,0,1-1.3,2.42,5,5,0,0,1-3,.95,6.59,6.59,0,0,1-4.07-1.59.79.79,0,0,1-.29-.56.75.75,0,0,1,.16-.6.84.84,0,0,1,.56-.3.77.77,0,0,1,.6.19,4.79,4.79,0,0,0,3,1.22,3.16,3.16,0,0,0,1.94-.55A1.51,1.51,0,0,0,176.62,59.39Z\"\n      />\n      <path\n        class=\"primary-color\"\n        d=\"M181.79,61.09a6,6,0,0,1,0-8.08,5.23,5.23,0,0,1,7.72,0,5.71,5.71,0,0,1,1.58,4,5.6,5.6,0,0,1-1.6,4,5.12,5.12,0,0,1-1.72,1.25,5,5,0,0,1-2.09.46A5.16,5.16,0,0,1,181.79,61.09Zm.24-4a3.93,3.93,0,0,0,1.06,2.76A3.37,3.37,0,0,0,185.66,61a3.32,3.32,0,0,0,2.56-1.17,3.93,3.93,0,0,0,1.06-2.74,4,4,0,0,0-1.05-2.75,3.33,3.33,0,0,0-2.57-1.17,3.39,3.39,0,0,0-2.58,1.16A4,4,0,0,0,182,57.05Z\"\n      />\n      <path\n        class=\"primary-color\"\n        d=\"M199,58.75h0a.85.85,0,0,1-.73-.37L196,55.2v6.7a.83.83,0,0,1-.27.62.88.88,0,0,1-1.25,0,.84.84,0,0,1-.25-.62V52.51a.85.85,0,0,1,.87-.87h.05a.78.78,0,0,1,.7.36L199,56.4l3.16-4.4a.86.86,0,0,1,.72-.36h0a.91.91,0,0,1,.62.27.8.8,0,0,1,.27.6V61.9a.92.92,0,0,1-.89.88.84.84,0,0,1-.62-.26.85.85,0,0,1-.26-.62V55.2l-2.29,3.18A.84.84,0,0,1,199,58.75Z\"\n      />\n      <path\n        class=\"primary-color\"\n        d=\"M212.46,58.75h0a.85.85,0,0,1-.73-.37l-2.28-3.18v6.7a.82.82,0,0,1-.26.62.88.88,0,0,1-1.25,0,.84.84,0,0,1-.25-.62V52.51a.85.85,0,0,1,.87-.87h.05a.78.78,0,0,1,.7.36l3.17,4.4,3.16-4.4a.86.86,0,0,1,.72-.36h0a.91.91,0,0,1,.63.27.8.8,0,0,1,.27.6V61.9a.82.82,0,0,1-.27.61.83.83,0,0,1-.63.27.85.85,0,0,1-.62-.26.84.84,0,0,1-.25-.62V55.2l-2.29,3.18A.84.84,0,0,1,212.46,58.75Z\"\n      />\n      <path\n        class=\"primary-color\"\n        d=\"M227.55,62.22l-.78-2.07H222.9l-.78,2.07a.79.79,0,0,1-.77.56.85.85,0,0,1-.79-.39.9.9,0,0,1-.09-.81L224,52.21a1,1,0,0,1,.34-.41.79.79,0,0,1,.51-.15.81.81,0,0,1,.84.56l3.52,9.37a.93.93,0,0,1-.1.81.85.85,0,0,1-.79.39A.75.75,0,0,1,227.55,62.22Zm-4-3.82h2.57L224.83,55Z\"\n      />\n      <path\n        class=\"primary-color\"\n        d=\"M238.79,51.89a.88.88,0,0,1,0,1.25.83.83,0,0,1-.62.26h-2.53v8.5a.84.84,0,0,1-.25.62.88.88,0,0,1-1.5-.62V53.4h-2.51a.82.82,0,0,1-.62-.26.88.88,0,0,1,.62-1.5h6.79A.83.83,0,0,1,238.79,51.89Z\"\n      />\n      <path\n        class=\"primary-color\"\n        d=\"M241.79,52.51a.88.88,0,0,1,1.5-.62.85.85,0,0,1,.26.62V61.9a.88.88,0,0,1-1.51.62.84.84,0,0,1-.25-.62Z\"\n      />\n      <path\n        class=\"primary-color\"\n        d=\"M247.62,61.09a5.93,5.93,0,0,1,0-8.08,5.22,5.22,0,0,1,7.71,0,5.72,5.72,0,0,1,1.59,4,5.61,5.61,0,0,1-1.61,4,5.12,5.12,0,0,1-1.72,1.25,5,5,0,0,1-2.08.46A5.13,5.13,0,0,1,247.62,61.09Zm.23-4a3.93,3.93,0,0,0,1.06,2.76,3.43,3.43,0,0,0,5.14,0,4.11,4.11,0,0,0,0-5.49,3.31,3.31,0,0,0-2.57-1.17,3.35,3.35,0,0,0-2.57,1.16A3.93,3.93,0,0,0,247.85,57.05Z\"\n      />\n      <path\n        class=\"primary-color\"\n        d=\"M261.8,55.3v6.6a.84.84,0,0,1-.25.61.82.82,0,0,1-.61.27.85.85,0,0,1-.62-.26.84.84,0,0,1-.25-.62V52.64a.73.73,0,0,1,.31-.7.91.91,0,0,1,.69-.18.81.81,0,0,1,.56.34l5.14,7.11V52.66a.85.85,0,0,1,.86-.86.85.85,0,0,1,.61.25.83.83,0,0,1,.26.61V61.9a.85.85,0,0,1-.26.62.89.89,0,0,1-.63.26.83.83,0,0,1-.64-.32.48.48,0,0,1-.08-.1Z\"\n      />\n    </g>\n    <g>\n      <path\n        class=\"grey-color\"\n        d=\"M60.36,9.64H53.52a18.29,18.29,0,0,0-15.18,8.08,1.48,1.48,0,0,0,2.45,1.66,15.35,15.35,0,0,1,12.73-6.77h5.36V18A15.37,15.37,0,0,1,43.53,33.32H40a1.48,1.48,0,1,0,0,3h3.54A18.33,18.33,0,0,0,61.84,18V11.13A1.49,1.49,0,0,0,60.36,9.64Z\"\n      />\n      <path\n        class=\"grey-color\"\n        d=\"M56.75,55.23a1.48,1.48,0,0,0,0-3H53.41v-.9a1.49,1.49,0,0,0-1.48-1.49H45.67a5.88,5.88,0,0,0-5.83,5.21H23.77a2.43,2.43,0,1,1,0-4.85h6.66A5.59,5.59,0,0,0,36,44.66V25.18A24.56,24.56,0,0,0,11.49.65H1.87A1.48,1.48,0,0,0,.39,2.13v9.62A24.55,24.55,0,0,0,24.92,36.28h8.14v8.38a2.63,2.63,0,0,1-2.63,2.62H23.77a5.39,5.39,0,1,0,0,10.77H39.82a5.88,5.88,0,0,0,5.85,5.45h6.26A1.48,1.48,0,0,0,53.41,62V60.86h3.34a1.48,1.48,0,0,0,0-3H53.41V55.23ZM3.35,11.75V3.61h8.14A21.6,21.6,0,0,1,33.06,25.18v8.14H24.92A21.59,21.59,0,0,1,3.35,11.75Zm47.1,48.79H45.67a2.92,2.92,0,0,1-2.91-2.92V55.76a2.91,2.91,0,0,1,2.91-2.91h4.78Z\"\n      />\n    </g>\n  </svg>\n</template>\n\n<script>\nexport default {\n  name: \"product-type-icon\",\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.primary-color {\n  fill: $primary;\n}\n\n.grey-color {\n  fill: $grey;\n}\n</style>\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProductTypeIcon.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProductTypeIcon.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProductTypeIcon.vue?vue&type=template&id=12eef10a&scoped=true&\"\nimport script from \"./ProductTypeIcon.vue?vue&type=script&lang=js&\"\nexport * from \"./ProductTypeIcon.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProductTypeIcon.vue?vue&type=style&index=0&id=12eef10a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"12eef10a\",\n  null\n  \n)\n\nexport default component.exports","<template>\n  <div class=\"product-type-selector-container block\">\n    <h2 class=\"title is-5 product-type-selector-title\">\n      {{ productTypeTitle }}\n      <help-button\n        :body=\"productTypeHelp.body\"\n        :header=\"productTypeHelp.header\"\n        cy-id=\"productType-helpButton\"\n      />\n    </h2>\n    <div class=\"product-type-selector-inner-container\">\n      <div\n        v-for=\"(productType, index) in productTypes\"\n        :key=\"index\"\n        :cy-id=\"`productType-${productType}`\"\n        class=\"product-type\"\n      >\n        <div class=\"product-type-icon-container\">\n          <div class=\"product-type-icon-inner-container\">\n            <product-type-icon />\n          </div>\n        </div>\n        <div class=\"product-type-info\">\n          <h3 class=\"product-type-info-title\">\n            {{ getProductTypeTitle(productType) }}\n          </h3>\n          <ul class=\"product-type-info-description\">\n            <li\n              v-for=\"(descriptionItem, index) in getProductTypeDescriptionItems(\n                productType\n              )\"\n              :key=\"index\"\n              class=\"product-type-info-description-item\"\n            >\n              <div class=\"description-item-icon\">\n                <b-icon icon=\"check-bold\" type=\"is-primary\"></b-icon>\n              </div>\n              <p class=\"description-item-text\">{{ descriptionItem }}</p>\n            </li>\n          </ul>\n          <a\n            v-if=\"tenant === 'MYL'\"\n            href=\"https://www.mylight-systems.com/tarifs-mysmartbattery/\"\n            target=\"_blank\"\n            class=\"product-type-info-button\"\n          >\n            {{ $t(`offer.productTypes.${productType}.link.label`) }}\n          </a>\n          <p v-else>\n            {{ $t(`offer.productTypes.${productType}.link.label`) }}\n            <a\n              href=\"https://domuneo.com/energie-stockage/fournisseur-delectricite-verte/grille-tarifaire-domuneo/\"\n              target=\"_blank\"\n              class=\"product-type-info-button-dom\"\n            >\n              {{ $t(`offer.productTypes.${productType}.link.part`) }}\n            </a>\n            {{ $t(`offer.productTypes.${productType}.link.linkingWord`) }}\n            <a\n              href=\"https://domuneo.com/energie-stockage/fournisseur-delectricite-verte-pro/grille-tarifaire-domuneo-pro/\"\n              target=\"_blank\"\n              class=\"product-type-info-button-dom\"\n            >\n              {{ $t(`offer.productTypes.${productType}.link.pro`) }}\n            </a>\n          </p>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script>\nimport { mapGetters } from \"vuex\";\nimport HelpButton from \"../../components/HelpButton\";\nimport ProductTypeIcon from \"@/views/offer/ProductTypeIcon\";\n\nexport default {\n  name: \"product-type-selector\",\n  components: { ProductTypeIcon, HelpButton },\n  data() {\n    return {\n      tenant: process.env.VUE_APP_TENANT,\n      productTypeTitle: this.$t(\"offer.yourElectricity\"),\n      productTypeHelp: {\n        header: this.$t(\"offer.productTypes.help.header\"),\n        body: this.$t(\"offer.productTypes.help.body\"),\n      },\n    };\n  },\n  computed: {\n    ...mapGetters(\"subscription/offer\", {\n      productTypes: \"getProductTypes\",\n      productType: \"getProductType\",\n    }),\n    getProductTypeTitle() {\n      return (productType) =>\n        this.$t(`offer.productTypes.${productType}.title`);\n    },\n    getProductTypeDescriptionItems() {\n      return (productType) => {\n        const description = this.$t(\n          `offer.productTypes.${productType}.description`\n        );\n        const descriptionItems = description.split(\"&&\");\n        return descriptionItems;\n      };\n    },\n  },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.product-type-selector-container {\n  display: flex;\n  flex-direction: column;\n  margin-bottom: 4rem;\n\n  .product-type-selector-title {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n  }\n\n  .product-type-selector-inner-container {\n    background-color: $lightGrey;\n    padding: 2.25rem 4rem;\n\n    @include media(\">tablet\", \"<desktop\") {\n      padding: 2.25rem 2rem;\n    }\n\n    .product-type {\n      display: flex;\n\n      .product-type-icon-container,\n      .product-type-info {\n        flex-basis: 0;\n        flex-grow: 1;\n      }\n\n      .product-type-icon-container {\n        display: flex;\n        align-items: center;\n\n        .product-type-icon-inner-container {\n          display: flex;\n          width: 100%;\n          margin-right: 4vw;\n          max-height: 100px;\n          height: 100%;\n\n          & :deep(svg) {\n            width: 100%;\n            height: 100%;\n          }\n        }\n      }\n\n      .product-type-info {\n        &-title {\n          color: $primary;\n          font-size: 1.15rem;\n          font-weight: bold;\n          margin-bottom: 0.75rem;\n        }\n\n        &-description {\n          margin-bottom: 0.625rem;\n          &-item {\n            display: flex;\n            margin: 0.25rem 0;\n          }\n          .description-item-text {\n            padding-left: 0.75rem;\n            font-size: 0.95rem;\n            line-height: 1.25rem;\n          }\n        }\n\n        &-button {\n          text-decoration: underline;\n          color: $black;\n          padding: 0.438rem 0.625rem;\n          border-radius: 0.375rem;\n          &:hover {\n            background-color: $greyBackground;\n          }\n        }\n        &-button-dom {\n          @extend .product-type-info-button;\n          padding: 0.2rem 0.2rem;\n        }\n      }\n    }\n  }\n}\n\n.product-type-footer {\n  color: $grey;\n  font-size: 0.95rem;\n  padding-top: 1rem;\n}\n\n@include media(\"<tablet\") {\n  .product-type-selector-container {\n    .product-type-selector-inner-container {\n      padding: 2.5%;\n\n      .product-type {\n        flex-direction: column;\n\n        .product-type-icon-container,\n        .product-type-info {\n          width: 100%;\n          justify-content: center;\n          padding: 1.5rem;\n        }\n\n        .product-type-icon-container {\n          border-bottom: 2px solid $white;\n\n          .product-type-icon-inner-container {\n            margin: 0;\n            max-width: 350px;\n          }\n        }\n      }\n    }\n  }\n}\n</style>\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProductTypeSelector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProductTypeSelector.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProductTypeSelector.vue?vue&type=template&id=3710c1a8&scoped=true&\"\nimport script from \"./ProductTypeSelector.vue?vue&type=script&lang=js&\"\nexport * from \"./ProductTypeSelector.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProductTypeSelector.vue?vue&type=style&index=0&id=3710c1a8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"3710c1a8\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{staticClass:\"battery-plan-selector block\"},[_c('h2',{staticClass:\"title battery-plan-selector__title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"offer.selectBatteryCapacity\"))+\" \")]),_c('div',{staticClass:\"battery-plan-selector-container block\"},[_c('div',{staticClass:\"battery-plan-selector-inner-container\"},[(_vm.isBatteryPlansLoading || !!_vm.batteryPlansError)?_vm._l((6),function(n){return _c('battery-plan-selector-item',{key:n,attrs:{\"disabled\":!!_vm.batteryPlansError,\"loading\":_vm.isBatteryPlansLoading}})}):_vm._e(),_vm._l((_vm.batteryPlans),function(batteryPlan,index){return _c('battery-plan-selector-item',{key:index,attrs:{\"capacity\":batteryPlan.capacity,\"price\":batteryPlan.price,\"selected\":_vm.checkIfBatteryPlanSelected(batteryPlan)},on:{\"click\":function($event){return _vm.selectBatteryCapacity(batteryPlan.capacity)}}})})],2),(_vm.batteryPlansError)?_c('div',{staticClass:\"battery-plan-selector-error\"},[_c('b-message',{attrs:{\"cy-id\":\"batteryPlansError\",\"type\":\"is-danger\"}},[_vm._v(\" \"+_vm._s(_vm.batteryPlansError)+\" \")])],1):_vm._e()])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:[\n    'battery-plan-container',\n    {\n      selected: _vm.selected,\n      loading: _vm.loading,\n      disabled: _vm.disabled,\n    },\n  ],attrs:{\"cy-id\":`batteryCapacity-${_vm.capacity}`},on:{\"click\":function($event){!_vm.loading && !_vm.disabled && _vm.$emit('click')}}},[_c('div',{staticClass:\"battery-plan-inner-container\"},[(_vm.loading)?_c('div',{staticClass:\"battery-plan-loading-container\"},[_c('b-loading',{attrs:{\"active\":_vm.loading,\"is-full-page\":false}})],1):(_vm.disabled)?_c('div',{staticClass:\"battery-plan-disabled-container\"},[_c('b-icon',{attrs:{\"icon\":\"close-circle-outline\",\"size\":\"is-medium\"}})],1):[_c('div',{staticClass:\"battery-plan-header\"},[_c('span',[_vm._v(_vm._s(_vm.$t(\"offer.selectedOffer\")))])]),_c('div',{staticClass:\"battery-plan-body\"},[_c('span',{staticClass:\"battery-plan-capacity\"},[_vm._v(\" \"+_vm._s(_vm.capacity)+\" \")]),_c('span',{staticClass:\"battery-plan-capacity-unit\"},[_vm._v(\"kWh\")])]),_c('div',{staticClass:\"battery-plan-footer\"},[_c('span',[_vm._v(_vm._s(_vm.price)+\" € / \"+_vm._s(_vm.$t(\"common.month\"))+\" TTC\")])])]],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div\n    :class=\"[\n      'battery-plan-container',\n      {\n        selected,\n        loading,\n        disabled,\n      },\n    ]\"\n    :cy-id=\"`batteryCapacity-${capacity}`\"\n    @click=\"!loading && !disabled && $emit('click')\"\n  >\n    <div class=\"battery-plan-inner-container\">\n      <div v-if=\"loading\" class=\"battery-plan-loading-container\">\n        <b-loading :active=\"loading\" :is-full-page=\"false\" />\n      </div>\n      <div v-else-if=\"disabled\" class=\"battery-plan-disabled-container\">\n        <b-icon icon=\"close-circle-outline\" size=\"is-medium\"></b-icon>\n      </div>\n      <template v-else>\n        <div class=\"battery-plan-header\">\n          <span>{{ $t(\"offer.selectedOffer\") }}</span>\n        </div>\n        <div class=\"battery-plan-body\">\n          <span class=\"battery-plan-capacity\">\n            {{ capacity }}\n          </span>\n          <span class=\"battery-plan-capacity-unit\">kWh</span>\n        </div>\n        <div class=\"battery-plan-footer\">\n          <span>{{ price }} € / {{ $t(\"common.month\") }} TTC</span>\n        </div>\n      </template>\n    </div>\n  </div>\n</template>\n\n<script>\nexport default {\n  name: \"battery-plan-selector-item\",\n  props: {\n    loading: {\n      type: Boolean,\n      default: false,\n    },\n    disabled: {\n      type: Boolean,\n      default: false,\n    },\n    selected: {\n      type: Boolean,\n      default: false,\n    },\n    price: {\n      type: Number,\n      default: undefined,\n    },\n    capacity: {\n      type: Number,\n      default: undefined,\n    },\n  },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n$lightBackgroundBattery: if($tenant == \"DOM\", #ffebd7, #ccebf2);\n\n.battery-plan-container {\n  user-select: none;\n  text-align: center;\n  margin: 1.5vw;\n  padding: 1px;\n  border-radius: 0.5rem;\n  cursor: pointer;\n\n  // Background color animation\n  background: linear-gradient(\n    to top,\n    $primary,\n    $primary 50%,\n    $lightBackgroundBattery 50%\n  );\n  background-size: 100% 200%;\n  background-position: unset;\n  background-clip: content-box;\n  transition: transform 0.2s 0s ease, background-position 500ms ease-out;\n\n  &:hover {\n    transform: scale(1.05);\n  }\n\n  &.loading {\n    cursor: not-allowed;\n\n    .battery-plan-inner-container {\n      padding: 0;\n    }\n  }\n\n  &.disabled {\n    background: $lightGrey;\n    cursor: not-allowed;\n\n    .battery-plan-inner-container {\n      -webkit-text-fill-color: unset;\n    }\n  }\n\n  &.selected {\n    // Background color animation\n    background-position: bottom;\n\n    .battery-plan-inner-container {\n      // Text color animation\n      background-position: bottom;\n\n      .battery-plan-header {\n        opacity: 1;\n      }\n\n      .battery-plan-footer {\n        // Footer text color animation\n        background-position: bottom;\n        transition-delay: 0ms;\n      }\n    }\n  }\n\n  .battery-plan-inner-container {\n    position: relative;\n    display: block;\n    height: 100%;\n    width: 100%;\n    border-radius: 0.5rem;\n    padding: 1rem;\n    max-width: 200px;\n    margin: auto;\n\n    // Text color animation\n    background: linear-gradient(to top, white, white 50%, $primary 50%);\n    background-size: 100% 200%;\n    background-position: unset;\n    -webkit-background-clip: text;\n    -webkit-text-fill-color: transparent;\n    transition: box-shadow 0.2s 0s ease, background-position 500ms ease-out;\n\n    &:hover {\n      box-shadow: 0px -1px 10px -1px rgba(0, 0, 0, 0.2);\n    }\n\n    .battery-plan {\n      &-header,\n      &-body,\n      &-footer {\n        display: block;\n        font-family: Quicksand;\n        font-weight: bold;\n      }\n\n      &-header {\n        height: 15%;\n        opacity: 0;\n        text-transform: uppercase;\n        font-size: 0.775rem;\n      }\n\n      &-body {\n        height: 70%;\n\n        .battery-plan-capacity {\n          font-size: 3.5rem;\n          line-height: 3.25rem;\n          letter-spacing: 2px;\n\n          &-unit {\n            font-size: 2rem;\n            line-height: 2.25rem;\n          }\n        }\n      }\n\n      &-footer {\n        height: 15%;\n        font-weight: bold;\n        font-size: 1.05rem;\n        // Footer text color animation\n        background: linear-gradient(to top, white, white 50%, black 50%);\n        background-size: 100% 200%;\n        background-position: unset;\n        -webkit-background-clip: text;\n        -webkit-text-fill-color: transparent;\n        transition: background-position 200ms ease;\n        transition-delay: 300ms;\n      }\n\n      &-loading-container {\n        height: 100%;\n        width: 100%;\n\n        & :deep(.loading-overlay) {\n          position: relative;\n          height: 100%;\n          width: 100%;\n\n          .loading-background {\n            background: transparent;\n          }\n\n          .loading-icon {\n            &::after {\n              border-bottom-color: $primary;\n              border-left-color: $primary;\n            }\n          }\n        }\n      }\n\n      &-disabled-container :deep() {\n        i {\n          color: $grey;\n        }\n      }\n    }\n  }\n}\n\n@include media(\"<tablet\") {\n  .battery-plan-container {\n    .battery-plan-inner-container {\n      padding: 1rem 0;\n\n      .battery-plan-header {\n        height: auto;\n      }\n\n      .battery-plan-body {\n        height: 65%;\n        padding-top: 0.25rem;\n      }\n\n      .battery-plan-footer {\n        height: 20%;\n      }\n    }\n  }\n}\n</style>\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BatteryPlanSelectorItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BatteryPlanSelectorItem.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BatteryPlanSelectorItem.vue?vue&type=template&id=5cc1dfc2&scoped=true&\"\nimport script from \"./BatteryPlanSelectorItem.vue?vue&type=script&lang=js&\"\nexport * from \"./BatteryPlanSelectorItem.vue?vue&type=script&lang=js&\"\nimport style0 from \"./BatteryPlanSelectorItem.vue?vue&type=style&index=0&id=5cc1dfc2&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"5cc1dfc2\",\n  null\n  \n)\n\nexport default component.exports","<template>\n  <section class=\"battery-plan-selector block\">\n    <h2 class=\"title battery-plan-selector__title\">\n      {{ $t(\"offer.selectBatteryCapacity\") }}\n    </h2>\n    <div class=\"battery-plan-selector-container block\">\n      <div class=\"battery-plan-selector-inner-container\">\n        <template v-if=\"isBatteryPlansLoading || !!batteryPlansError\">\n          <battery-plan-selector-item\n            v-for=\"n in 6\"\n            :key=\"n\"\n            :disabled=\"!!batteryPlansError\"\n            :loading=\"isBatteryPlansLoading\"\n          ></battery-plan-selector-item>\n        </template>\n        <battery-plan-selector-item\n          v-for=\"(batteryPlan, index) in batteryPlans\"\n          :key=\"index\"\n          :capacity=\"batteryPlan.capacity\"\n          :price=\"batteryPlan.price\"\n          :selected=\"checkIfBatteryPlanSelected(batteryPlan)\"\n          @click=\"selectBatteryCapacity(batteryPlan.capacity)\"\n        ></battery-plan-selector-item>\n      </div>\n      <div v-if=\"batteryPlansError\" class=\"battery-plan-selector-error\">\n        <b-message cy-id=\"batteryPlansError\" type=\"is-danger\">\n          {{ batteryPlansError }}\n        </b-message>\n      </div>\n    </div>\n  </section>\n</template>\n\n<script>\nimport { mapGetters, mapMutations } from \"vuex\";\nimport BatteryPlanSelectorItem from \"./BatteryPlanSelectorItem\";\n\nexport default {\n  name: \"battery-plan-selector\",\n  components: { BatteryPlanSelectorItem },\n  data() {\n    return {\n      productTypeHelp: {\n        header: \"Product type help header\",\n        body: \"Text is not provided yet!\",\n        footer: \"Maybe footer is unnecessary\",\n      },\n      tenant: process.env.VUE_APP_TENANT,\n    };\n  },\n  computed: {\n    ...mapGetters(\"subscription/offer\", {\n      isBatteryPlansLoading: \"getBatteryPlansLoading\",\n      batteryPlansError: \"getBatteryPlansError\",\n      batteryPlans: \"getBatteryPlans\",\n      batteryCapacity: \"getBatteryCapacity\",\n    }),\n    checkIfBatteryPlanSelected() {\n      return (batteryPlan) => this.batteryCapacity === batteryPlan.capacity;\n    },\n  },\n  methods: {\n    ...mapMutations(\"subscription/offer\", {\n      selectBatteryCapacity: \"setBatteryCapacity\",\n    }),\n  },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n$fontTitleBattery: if($tenant == \"DOM\", #f39104, #018fa7);\n.battery-plan-selector {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  flex-direction: column;\n\n  &__title {\n    color: $fontTitleBattery;\n    font-size: 1.8rem;\n    font-family: Quicksand;\n    font-weight: bold;\n    letter-spacing: -0.5px;\n    -webkit-text-stroke-width: 0.5px;\n    margin-bottom: 2rem;\n    text-align: center;\n  }\n\n  &-container {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    height: 30rem;\n    width: 100%;\n  }\n\n  &-inner-container {\n    width: 100%;\n    height: 100%;\n    max-width: 750px;\n    display: grid;\n    grid-template: repeat(2, 50%) / repeat(3, 33.33%);\n  }\n\n  &-error {\n    width: 100%;\n    max-width: 750px;\n    padding: 0 1.5vw;\n  }\n}\n\n@include media(\"<tablet\") {\n  .battery-plan-selector-container {\n    height: 40rem;\n\n    .battery-plan-selector-inner-container {\n      min-width: 320px;\n      grid-template: repeat(3, 33.33%) / repeat(2, 50%);\n    }\n  }\n}\n</style>\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BatteryPlanSelector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BatteryPlanSelector.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BatteryPlanSelector.vue?vue&type=template&id=53eb4b35&scoped=true&\"\nimport script from \"./BatteryPlanSelector.vue?vue&type=script&lang=js&\"\nexport * from \"./BatteryPlanSelector.vue?vue&type=script&lang=js&\"\nimport style0 from \"./BatteryPlanSelector.vue?vue&type=style&index=0&id=53eb4b35&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"53eb4b35\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"battery-info-container block\"},[_c('h2',{staticClass:\"title is-5 battery-info-title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"offer.yourBattery\"))+\" \"),_c('help-button',{attrs:{\"body\":_vm.batteryOfferHelp().body,\"header\":_vm.batteryOfferHelp().header,\"multilined\":true,\"cy-id\":\"batteryOffer-helpModal\"}})],1),_c('div',{staticClass:\"battery-info-inner-container\"},[_c('div',{staticClass:\"battery-info-body\"},[_c('div',{staticClass:\"battery-info-icon-container\"},[_c('tenant-logo')],1),_c('div',{staticClass:\"battery-info-info\"},[_c('div',{staticClass:\"battery-info-info-title\"},[_vm._v(\" \"+_vm._s(_vm.$t(`offer.battery.title`))+\" \")]),_vm._l((_vm.getBatteryOfferDescriptionItems),function(descriptionItem,index){return _c('div',{key:index,staticClass:\"battery-info-info-description-item\"},[_c('div',{staticClass:\"description-item-icon\"},[_c('b-icon',{attrs:{\"icon\":\"check-bold\",\"type\":\"is-primary\"}})],1),_c('div',{staticClass:\"description-item-text\"},[_vm._v(_vm._s(descriptionItem))])])})],2)]),_c('div',{staticClass:\"battery-info-footer\"},[_vm._v(\" \"+_vm._s(_vm.$t(`offer.battery.${_vm.tenant}.footer`))+\" \")])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:[\n    'battery-info-icon-inner-container',\n    _vm.tenant === 'MYL'\n      ? 'battery-info-icon-inner-container--myl'\n      : 'battery-info-icon-inner-container--dom',\n  ]},[(_vm.tenant === 'MYL')?[_c('div',{staticClass:\"MSB-logo\"},[_c('MSBLogo')],1),_c('div',{staticClass:\"MSB-text\"},[_c('MSBText')],1)]:_c('div',{staticClass:\"DSI-logo\"},[_c('DSILogo')],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('svg',{staticStyle:{\"enable-background\":\"new 0 0 244 320.3\"},attrs:{\"id\":\"Calque_1\",\"version\":\"1.1\",\"viewBox\":\"0 0 244 320.3\",\"x\":\"0px\",\"xml:space\":\"preserve\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"y\":\"0px\"}},[_c('path',{staticClass:\"st0\",attrs:{\"d\":\"M25.2,0h187.4c8.1,0,14.6,6.5,14.6,14.6v183.1c0,8.1-6.5,14.6-14.6,14.6H25.2c-8.1,0-14.6-6.5-14.6-14.6V14.6\\n\\tC10.6,6.5,17.1,0,25.2,0z\"}}),_c('path',{staticClass:\"st1\",attrs:{\"d\":\"M212.6,1c7.5,0,13.6,6.1,13.6,13.6v183.1c0,7.5-6.1,13.6-13.6,13.6c0,0,0,0,0,0H25.2c-7.5,0-13.6-6.1-13.6-13.6\\n\\tl0,0V14.6C11.6,7.1,17.7,1,25.2,1c0,0,0,0,0,0H212.6 M212.6-1H25.2C16.6-1,9.6,6,9.6,14.6v183.1c0,8.6,7,15.6,15.6,15.6h187.4\\n\\tc8.6,0,15.6-7,15.6-15.6V14.6C228.2,6,221.2-1,212.6-1L212.6-1z\"}}),_c('g',[_c('defs',[_c('path',{attrs:{\"id\":\"SVGID_1_\",\"d\":\"M23.8,5.9H214c4.3,0,7.8,3.5,7.8,7.8V193c0,4.3-3.5,7.8-7.8,7.8H23.8c-4.3,0-7.8-3.5-7.8-7.8V13.7\\n\\t\\t\\tC16,9.4,19.5,5.9,23.8,5.9z\"}})]),_c('clipPath',{attrs:{\"id\":\"SVGID_2_\"}},[_c('use',{staticStyle:{\"overflow\":\"visible\"},attrs:{\"xlink:href\":\"#SVGID_1_\"}})]),_c('g',{staticClass:\"st2\"},[_c('linearGradient',{attrs:{\"id\":\"SVGID_3_\",\"gradientTransform\":\"matrix(2.1912 -0.2873 -0.1677 -1.2791 -247.4959 119.4816)\",\"gradientUnits\":\"userSpaceOnUse\",\"x1\":\"166.2501\",\"x2\":\"153.9301\",\"y1\":\"-17.3414\",\"y2\":\"47.1886\"}},[_c('stop',{staticStyle:{\"stop-color\":\"#ffffff\"},attrs:{\"offset\":\"0\"}}),_c('stop',{staticStyle:{\"stop-color\":\"#ffffff\",\"stop-opacity\":\"0\"},attrs:{\"offset\":\"0.3\"}})],1),_c('path',{staticClass:\"st3\",attrs:{\"d\":\"M81.5-36.9C195-51.8,291.2-32.4,296.3,6.4c5.1,38.8-82.8,82.3-196.3,97.2s-209.7-4.5-214.8-43.3\\n\\t\\t\\tC-119.9,21.5-32-22,81.5-36.9z\"}})],1)]),_c('path',{staticClass:\"st4\",attrs:{\"d\":\"M26.5,9.8h184.8c4.2,0,7.7,3.4,7.7,7.7v177.4c0,4.2-3.4,7.7-7.7,7.7H26.5c-4.2,0-7.7-3.4-7.7-7.7V17.5\\n\\tC18.8,13.2,22.3,9.8,26.5,9.8z\"}}),_c('path',{staticClass:\"st5\",attrs:{\"d\":\"M2.8,258.7c0.6,0.4,1.2,0.8,1.8,1.1c1,0.5,2,0.9,3,1.3c1.3,0.5,2.7,0.8,4.1,1.1c1.6,0.3,3.3,0.5,5,0.4\\n\\tc3.2,0,5.5-0.5,6.9-1.4c1.9-1.4,2.6-4,1.6-6.1c-0.3-0.6-0.8-1.1-1.4-1.5c-0.7-0.4-1.4-0.8-2.2-1c-1-0.3-2-0.5-3-0.7l-6-1.1\\n\\tc-1.5-0.3-3-0.7-4.5-1.2c-1.4-0.5-2.6-1.1-3.8-2c-1.1-0.8-2-1.9-2.6-3.1c-0.7-1.4-1-2.9-1-4.4c0-1.5,0.3-3,0.8-4.4\\n\\tc0.6-1.4,1.5-2.7,2.8-3.7c1.4-1.1,3-1.9,4.7-2.4c2.3-0.7,4.6-1,6.9-0.9c1.7,0,3.5,0.1,5.2,0.3c1.3,0.2,2.5,0.4,3.7,0.8\\n\\tc0.9,0.3,1.7,0.6,2.5,1c0.6,0.3,1.1,0.6,1.4,0.8c0.5,0.4,1,0.8,1.4,1.3c0.4,0.5,0.6,1.1,0.6,1.6c0,0.8-0.3,1.7-0.8,2.3\\n\\tc-0.4,0.6-0.9,1.1-1.4,1.5c-0.5-0.5-1-0.9-1.6-1.2c-0.8-0.5-1.7-1-2.6-1.4c-2.6-1-5.4-1.5-8.2-1.5c-1.4,0-2.8,0.1-4.2,0.4\\n\\tc-1,0.2-1.9,0.5-2.7,1.1c-0.6,0.4-1.1,1-1.4,1.6c-0.3,0.7-0.5,1.4-0.4,2.2c-0.1,1.3,0.6,2.5,1.6,3.3c1.7,1,3.5,1.6,5.4,1.9l6.2,1.2\\n\\tc4,0.7,7,1.9,9,3.6c2.1,1.8,3.2,4.5,3,7.2c0,1.6-0.3,3.3-1,4.8c-0.7,1.4-1.8,2.7-3.1,3.7c-1.5,1.1-3.2,1.9-5,2.4\\n\\tc-2.3,0.6-4.6,0.9-6.9,0.8c-2,0-4.1-0.2-6.1-0.5c-1.7-0.3-3.3-0.7-4.9-1.3c-1.2-0.4-2.4-0.9-3.6-1.5c-1-0.5-1.7-0.9-2.1-1.2\\n\\tL2.8,258.7z\"}}),_c('path',{staticClass:\"st5\",attrs:{\"d\":\"M38.1,234.8c-0.1-0.8,0.2-1.7,0.9-2.2c0.7-0.5,1.6-0.7,2.4-0.7c0.6,0,1.2,0.1,1.8,0.2c0.6,0.2,1,0.3,1.1,0.4\\n\\tv7.2h8c0.9-0.1,1.8,0.2,2.6,0.7c0.5,0.6,0.8,1.4,0.8,2.2c0,0.6-0.1,1.2-0.3,1.7c-0.1,0.4-0.3,0.8-0.4,1.1H44.4v12.3\\n\\tc0,0.8,0.1,1.6,0.4,2.3c0.2,0.6,0.6,1.1,1.1,1.4c0.5,0.4,1,0.6,1.6,0.8c0.6,0.1,1.3,0.2,1.9,0.2c1,0,2-0.2,3-0.5\\n\\tc0.7-0.2,1.4-0.5,2-0.9l2.5,4.2c-0.3,0.2-0.7,0.5-1.2,0.8c-0.6,0.4-1.3,0.7-2,0.9c-0.8,0.3-1.7,0.6-2.6,0.7c-1,0.2-2.1,0.3-3.1,0.3\\n\\tc-3.2,0-5.7-0.8-7.3-2.5c-1.7-1.8-2.6-4.1-2.5-6.6L38.1,234.8z\"}}),_c('path',{staticClass:\"st5\",attrs:{\"d\":\"M74.1,238.9c2.1,0,4.1,0.4,6,1.1c1.8,0.7,3.4,1.7,4.8,3.1c1.4,1.3,2.4,2.9,3.2,4.6c0.8,1.8,1.2,3.8,1.2,5.8\\n\\tc0,2-0.4,3.9-1.2,5.8c-0.7,1.7-1.8,3.3-3.2,4.6c-1.4,1.3-3,2.4-4.8,3.1c-3.8,1.5-8.1,1.5-11.9,0c-1.8-0.7-3.4-1.8-4.8-3.1\\n\\tc-1.4-1.3-2.4-2.9-3.2-4.6c-0.8-1.8-1.2-3.8-1.2-5.7c0-2,0.4-4,1.2-5.8c0.7-1.7,1.8-3.3,3.2-4.6c1.4-1.3,3-2.4,4.8-3.1\\n\\tC70,239.3,72,238.9,74.1,238.9z M74.1,262.6c1.2,0,2.4-0.2,3.5-0.7c1-0.4,2-1.1,2.7-1.9c0.8-0.8,1.4-1.8,1.8-2.9\\n\\tc0.4-1.1,0.6-2.3,0.6-3.5c0-1.2-0.2-2.5-0.6-3.6c-0.4-1.1-1-2.1-1.8-2.9c-0.8-0.8-1.7-1.5-2.7-1.9c-2.2-0.9-4.8-0.9-7,0\\n\\tc-1,0.4-1.9,1.1-2.7,1.9c-0.8,0.8-1.4,1.8-1.8,2.9c-0.4,1.2-0.6,2.4-0.6,3.6c0,1.2,0.2,2.4,0.6,3.5c0.4,1.1,1,2,1.8,2.9\\n\\tc0.7,0.8,1.7,1.5,2.7,1.9C71.7,262.3,72.9,262.6,74.1,262.6L74.1,262.6z\"}}),_c('path',{staticClass:\"st5\",attrs:{\"d\":\"M118.5,265.4c-0.5,0.3-1.1,0.6-1.6,0.9c-0.7,0.3-1.4,0.6-2.2,0.9c-0.9,0.3-1.9,0.5-2.8,0.7\\n\\tc-1.2,0.2-2.4,0.3-3.6,0.3c-2,0-3.9-0.3-5.8-0.9c-1.8-0.6-3.4-1.5-4.7-2.8c-1.4-1.3-2.5-2.8-3.2-4.5c-0.8-2-1.2-4.1-1.2-6.2\\n\\tc0-2.1,0.4-4.3,1.2-6.3c0.7-1.8,1.8-3.3,3.2-4.6c1.4-1.3,3-2.2,4.8-2.8c1.9-0.7,4-1,6-1c1.5,0,3.1,0.1,4.6,0.4\\n\\tc1.1,0.2,2.1,0.6,3.1,1.1c0.7,0.3,1.3,0.9,1.7,1.5c0.3,0.5,0.5,1.1,0.5,1.6c0,0.7-0.3,1.4-0.7,2c-0.4,0.5-0.9,1-1.4,1.4\\n\\tc-0.8-0.7-1.8-1.4-2.9-1.8c-1.5-0.6-3-0.9-4.6-0.9c-1.2,0-2.4,0.2-3.5,0.6c-1,0.3-2,0.9-2.8,1.7c-0.8,0.8-1.5,1.8-1.9,2.8\\n\\tc-0.5,1.3-0.7,2.6-0.7,4c0,1.4,0.2,2.8,0.7,4.1c0.4,1.1,1.1,2,2,2.8c0.9,0.7,1.8,1.3,2.9,1.6c1.2,0.4,2.4,0.5,3.6,0.5\\n\\tc1.5,0.1,3-0.2,4.4-0.8c0.8-0.3,1.5-0.7,2.3-1.1L118.5,265.4z\"}}),_c('path',{staticClass:\"st5\",attrs:{\"d\":\"M122.1,229.7c-0.1-0.8,0.3-1.6,0.9-2.2c0.7-0.5,1.6-0.8,2.5-0.7c0.6,0,1.2,0.1,1.8,0.2c0.6,0.2,0.9,0.3,1.1,0.4\\n\\tv22.5c0.5-0.3,1.1-0.8,2-1.5s1.8-1.3,2.9-2.1s2.2-1.6,3.3-2.4s2.2-1.6,3.2-2.4c0.7-0.5,1.4-1,2.2-1.4c0.8-0.3,1.7-0.5,2.6-0.5\\n\\tc0.9,0,1.8,0.3,2.5,0.8c0.5,0.4,1,0.8,1.3,1.4c-0.8,0.7-1.8,1.5-3.2,2.5s-2.7,2-4.1,3s-2.7,1.9-4,2.8s-2.1,1.5-2.7,1.9\\n\\tc3.1,2.3,5.9,4.8,8.5,7.5c2.3,2.4,4.5,5,6.5,7.7h-7.8c-0.8-1-1.8-2.1-2.8-3.2s-2.2-2.2-3.4-3.3s-2.4-2.1-3.6-3.1s-2.4-1.9-3.6-2.8\\n\\tv12.5H122L122.1,229.7z\"}}),_c('path',{staticClass:\"st5\",attrs:{\"d\":\"M177.5,267.2c-0.4,0.1-0.9,0.2-1.7,0.2s-1.7,0.2-2.8,0.3s-2.2,0.2-3.6,0.2s-2.7,0.1-4.1,0.1\\n\\tc-2.4,0.1-4.7-0.2-7-0.7c-1.6-0.4-3-1.1-4.3-2c-1-0.7-1.7-1.7-2.1-2.9c-0.4-1.1-0.6-2.2-0.6-3.3c0-1.4,0.2-2.7,0.7-4\\n\\tc0.5-1.1,1.2-2.1,2.2-2.9c1.2-0.8,2.6-1.4,4.1-1.7c2-0.4,4.1-0.6,6.2-0.6c1.4,0,2.7,0,4,0.1s2.2,0.2,2.8,0.2c0-1.1-0.2-2.2-0.6-3.2\\n\\tc-0.4-0.8-1-1.5-1.7-2c-0.8-0.5-1.7-0.9-2.6-1c-1.1-0.2-2.3-0.3-3.4-0.3c-1.7-0.1-3.4,0.2-5,0.7c-0.9,0.3-1.7,0.7-2.5,1.2\\n\\tc-0.3-0.3-0.6-0.7-0.9-1c-0.4-0.5-0.6-1.2-0.6-1.9c0-0.5,0.1-1,0.4-1.5c0.4-0.6,0.9-1,1.5-1.3c0.9-0.5,1.8-0.8,2.8-0.9\\n\\tc1.5-0.2,3-0.4,4.5-0.3c2,0,4,0.2,5.9,0.6c1.6,0.4,3.2,1,4.6,2c1.3,0.9,2.3,2.2,3,3.6c0.8,1.7,1.1,3.6,1.1,5.5L177.5,267.2z\\n\\t M171.3,255c-0.4-0.1-1.1-0.2-2.1-0.3c-1.5-0.2-3-0.2-4.5-0.2c-1.9-0.1-3.8,0.3-5.4,1.1c-1.2,0.8-1.8,2.1-1.7,3.5\\n\\tc0,0.6,0.1,1.2,0.4,1.8c0.3,0.6,0.7,1.1,1.2,1.4c0.7,0.4,1.5,0.7,2.4,0.9c1.2,0.2,2.5,0.3,3.8,0.3c1.3,0,2.7-0.1,4-0.2\\n\\tc1-0.1,1.7-0.2,2-0.3V255z\"}}),_c('path',{staticClass:\"st5\",attrs:{\"d\":\"M187.4,272.1c0.1,0.1,0.5,0.2,1,0.4c0.6,0.2,1.2,0.4,1.9,0.6c0.9,0.2,1.8,0.4,2.6,0.5c1.1,0.2,2.2,0.2,3.3,0.2\\n\\tc1.2,0,2.5-0.1,3.7-0.4c1.2-0.3,2.3-0.8,3.2-1.5c1-0.8,1.8-1.8,2.4-3c0.7-1.6,1-3.3,0.9-5v-0.7c-1,1.1-2.3,2.1-3.7,2.8\\n\\tc-1.8,0.9-3.8,1.4-5.8,1.3c-1.9,0-3.9-0.3-5.7-1c-1.7-0.6-3.2-1.6-4.5-2.9c-1.3-1.3-2.3-2.8-2.9-4.4c-0.7-1.8-1-3.8-1-5.7\\n\\tc0-2,0.4-4,1.1-5.8c0.7-1.7,1.8-3.3,3.1-4.6c1.4-1.3,3-2.3,4.8-3c1.9-0.8,4-1.1,6.1-1.1c2,0,3.9,0.3,5.8,0.9\\n\\tc1.7,0.6,3.3,1.6,4.6,2.9c1.4,1.4,2.4,3.1,3.1,4.9c0.8,2.2,1.2,4.6,1.1,7v7.9c0.1,2.5-0.3,5.1-1.2,7.5c-0.7,1.9-1.8,3.7-3.3,5.1\\n\\tc-1.4,1.3-3.1,2.3-5,2.9c-2,0.6-4.2,0.9-6.3,0.9c-1.4,0-2.7-0.1-4.1-0.2c-1.1-0.1-2.2-0.3-3.3-0.6c-0.8-0.2-1.6-0.4-2.4-0.7\\n\\tc-0.5-0.2-0.9-0.4-1.4-0.6L187.4,272.1z M197.9,262.2c1.2,0,2.3-0.2,3.4-0.6c1-0.4,1.9-1,2.6-1.8c0.8-0.8,1.3-1.7,1.7-2.8\\n\\tc0.8-2.3,0.8-4.7,0-7c-0.4-1-1-2-1.7-2.8c-0.7-0.8-1.6-1.4-2.6-1.8c-2.2-0.9-4.7-0.9-6.9,0c-1,0.4-1.9,1.1-2.7,1.9\\n\\tc-0.7,0.8-1.3,1.8-1.7,2.8c-0.4,1.1-0.6,2.3-0.6,3.4c-0.1,2.3,0.7,4.6,2.3,6.4C193.4,261.4,195.6,262.3,197.9,262.2L197.9,262.2z\"}}),_c('path',{staticClass:\"st5\",attrs:{\"d\":\"M243,265.3c-0.3,0.2-0.8,0.4-1.4,0.8c-0.8,0.4-1.5,0.7-2.3,0.9c-1.1,0.3-2.2,0.6-3.2,0.8\\n\\tc-1.3,0.2-2.7,0.3-4,0.3c-2,0-3.9-0.3-5.8-0.9c-3.5-1.2-6.4-3.8-7.9-7.3c-1.5-3.9-1.5-8.3,0-12.2c0.7-1.8,1.8-3.4,3.1-4.7\\n\\tc1.4-1.3,3-2.3,4.7-3c1.9-0.7,4-1.1,6-1.1c1.7,0,3.4,0.2,5.1,0.7c1.3,0.4,2.6,1.1,3.7,2c2.8,2.4,3.8,6.4,2.2,9.8\\n\\tc-0.6,1.1-1.4,2.1-2.5,2.7c-1.5,0.9-3.2,1.5-4.9,1.8c-2.6,0.5-5.2,0.7-7.8,0.6c-0.7,0-1.4,0-2.1,0l-2.1-0.1c0.3,1.8,1.2,3.5,2.7,4.5\\n\\tc1.9,1.3,4.2,1.9,6.5,1.7c0.9,0,1.8-0.1,2.6-0.2c1.3-0.2,2.6-0.6,3.8-1.2l1-0.5L243,265.3z M223.7,252.3c0.8,0,1.6,0.1,2.4,0.1h2.3\\n\\tc1.6,0,3.3-0.1,4.9-0.4c1-0.2,2-0.5,2.9-1c0.6-0.3,1.1-0.8,1.4-1.4c0.2-0.5,0.3-1,0.3-1.6c0.1-1.3-0.6-2.5-1.7-3.1\\n\\tc-1.3-0.7-2.7-1.1-4.2-1c-1.2,0-2.5,0.2-3.6,0.7c-1,0.4-1.9,1.1-2.6,1.9c-0.7,0.8-1.3,1.7-1.6,2.7\\n\\tC223.9,250.1,223.7,251.2,223.7,252.3L223.7,252.3z\"}}),_c('path',{staticClass:\"st0\",attrs:{\"d\":\"M57.9,283.6c1.9,0,3.4,1.5,3.4,3.4c0,1.9-1.5,3.4-3.4,3.4s-3.4-1.5-3.4-3.4c0-0.9,0.4-1.7,1-2.4\\n\\tC56.1,284,57,283.6,57.9,283.6z M55,297.4c-0.1-0.8,0.2-1.5,0.8-2c0.7-0.5,1.4-0.7,2.2-0.6c0.6,0,1.1,0.1,1.6,0.2\\n\\tc0.5,0.1,0.8,0.3,1,0.3v24.3H55V297.4z\"}}),_c('path',{staticClass:\"st0\",attrs:{\"d\":\"M66.7,304.6c0-1.5,0.3-3,0.9-4.4c0.6-1.3,1.5-2.4,2.5-3.3c1.1-0.9,2.4-1.6,3.8-2.1c1.6-0.5,3.2-0.7,4.8-0.7\\n\\tc1.6,0,3.3,0.2,4.8,0.7c1.4,0.4,2.7,1.1,3.8,2.1c1.1,0.9,1.9,2,2.5,3.3c0.6,1.4,0.9,2.9,0.9,4.4v15h-5.6v-13.6\\n\\tc0.1-1.9-0.5-3.7-1.6-5.1c-2.8-2.3-6.8-2.3-9.6,0c-1.2,1.4-1.7,3.3-1.6,5.1v13.6h-5.7L66.7,304.6z\"}}),_c('path',{staticClass:\"st0\",attrs:{\"d\":\"M97.3,313.4c0.4,0.3,0.8,0.5,1.2,0.6c0.7,0.3,1.5,0.6,2.2,0.8c1,0.3,2,0.5,3,0.7c1.2,0.2,2.4,0.3,3.7,0.3\\n\\tc1.4,0,2.9-0.2,4.2-0.7c1-0.3,1.7-1.3,1.6-2.3c0.1-0.8-0.3-1.6-1-2.1c-1.1-0.6-2.4-1-3.7-1l-3.9-0.4c-1.2-0.1-2.5-0.4-3.6-0.7\\n\\tc-1-0.3-2-0.8-2.9-1.4c-0.8-0.6-1.4-1.4-1.9-2.2c-0.5-1-0.7-2.1-0.7-3.1c0-1,0.2-2.1,0.6-3c0.5-1,1.1-1.8,2-2.5\\n\\tc1-0.8,2.2-1.4,3.5-1.7c1.7-0.4,3.5-0.7,5.2-0.6c2.7-0.1,5.4,0.3,8,1.1c1.9,0.8,2.9,1.8,2.9,3c0,0.3-0.1,0.7-0.2,1\\n\\tc-0.1,0.3-0.3,0.5-0.5,0.8c-0.2,0.2-0.4,0.4-0.6,0.6c-0.1,0.1-0.3,0.2-0.4,0.3c-0.3-0.2-0.6-0.4-0.9-0.6c-0.6-0.3-1.2-0.6-1.8-0.8\\n\\tc-0.9-0.3-1.8-0.6-2.7-0.8c-1.2-0.2-2.4-0.3-3.7-0.3c-3.8,0-5.7,1-5.8,3c0,0.8,0.4,1.6,1.1,2c1,0.5,2,0.8,3.1,0.9l5.1,0.6\\n\\tc2.3,0.2,4.5,1,6.4,2.2c1.5,1.2,2.4,3.1,2.3,5c0,2.4-1.1,4.6-3,6c-2,1.5-4.8,2.2-8.5,2.2c-1.6,0-3.2-0.1-4.9-0.4\\n\\tc-1.3-0.2-2.5-0.5-3.8-0.9c-0.9-0.3-1.8-0.6-2.6-1c-0.4-0.2-0.9-0.5-1.3-0.7L97.3,313.4z\"}}),_c('path',{staticClass:\"st0\",attrs:{\"d\":\"M126.9,283.6c1.9,0,3.4,1.5,3.4,3.4c0,1.9-1.5,3.4-3.4,3.4c-1.9,0-3.4-1.5-3.4-3.4c0-0.9,0.4-1.8,1-2.4\\n\\tC125.1,284,126,283.6,126.9,283.6z M124.1,297.4c-0.1-0.8,0.2-1.5,0.8-2c0.7-0.4,1.4-0.7,2.2-0.6c0.6,0,1.1,0.1,1.6,0.2\\n\\tc0.5,0.1,0.8,0.3,1,0.3v24.3h-5.6L124.1,297.4z\"}}),_c('path',{staticClass:\"st0\",attrs:{\"d\":\"M156,285.7c-0.1-0.7,0.2-1.5,0.8-2c0.6-0.5,1.4-0.7,2.2-0.6c0.6,0,1.1,0.1,1.6,0.2l1,0.3V306\\n\\tc0.1,2.1-0.3,4.3-1,6.3c-0.6,1.7-1.6,3.2-2.8,4.5c-1.2,1.2-2.6,2.1-4.2,2.7c-1.7,0.6-3.5,0.9-5.3,0.9c-1.8,0-3.7-0.3-5.4-1\\n\\tc-1.6-0.6-3-1.6-4.2-2.7c-1.2-1.2-2.2-2.6-2.8-4.2c-0.7-1.7-1-3.5-1-5.2c0-1.8,0.3-3.6,1-5.3c0.6-1.5,1.5-3,2.7-4.2\\n\\tc1.1-1.2,2.5-2.1,4-2.7c1.6-0.7,3.3-1,5-1c1.7,0,3.5,0.3,5.1,1.1c1.3,0.6,2.5,1.6,3.4,2.7L156,285.7z M156,307.2\\n\\tc0-1.1-0.2-2.2-0.6-3.2c-0.4-0.9-0.9-1.8-1.6-2.6c-0.7-0.7-1.5-1.3-2.4-1.7c-2.9-1.3-6.4-0.6-8.6,1.7c-0.7,0.7-1.2,1.6-1.6,2.5\\n\\tc-0.4,1-0.6,2.1-0.5,3.2c0,1.1,0.2,2.2,0.5,3.2c0.3,0.9,0.9,1.8,1.6,2.5c1.4,1.5,3.4,2.4,5.5,2.3c1.1,0,2.1-0.2,3.1-0.6\\n\\tc0.9-0.4,1.7-0.9,2.4-1.6c0.7-0.7,1.2-1.6,1.6-2.5C155.8,309.4,156,308.3,156,307.2z\"}}),_c('path',{staticClass:\"st0\",attrs:{\"d\":\"M188.9,317.8c-0.3,0.2-0.7,0.4-1.2,0.7c-0.7,0.3-1.4,0.6-2.1,0.8c-1,0.3-1.9,0.5-2.9,0.7\\n\\tc-1.2,0.2-2.4,0.3-3.6,0.3c-1.8,0-3.5-0.3-5.2-0.8c-1.6-0.5-3-1.4-4.2-2.5c-1.2-1.1-2.2-2.5-2.9-4.1c-0.7-1.8-1.1-3.6-1-5.5\\n\\tc0-1.9,0.3-3.7,1-5.4c0.6-1.6,1.6-3,2.8-4.2c1.2-1.2,2.7-2.1,4.3-2.7c1.7-0.7,3.5-1,5.4-1c1.5,0,3.1,0.2,4.6,0.7\\n\\tc1.2,0.4,2.3,1,3.4,1.8c1.7,1.4,2.8,3.5,2.8,5.8c0,1.1-0.2,2.2-0.6,3.1c-0.5,1-1.3,1.9-2.3,2.4c-1.4,0.8-2.9,1.3-4.4,1.6\\n\\tc-2.3,0.4-4.7,0.6-7,0.6c-0.7,0-1.3,0-1.9,0s-1.2,0-1.9-0.1c0.2,1.6,1.1,3.1,2.5,4.1c1.7,1.1,3.8,1.7,5.8,1.5c0.8,0,1.6-0.1,2.4-0.2\\n\\tc0.7-0.1,1.3-0.3,1.9-0.5c0.5-0.2,1-0.4,1.5-0.6l0.9-0.4L188.9,317.8z M171.5,306.1c0.8,0,1.5,0,2.2,0h2.1c1.5,0,3-0.1,4.4-0.4\\n\\tc0.9-0.2,1.8-0.5,2.6-0.9c0.5-0.3,1-0.7,1.2-1.2c0.2-0.5,0.3-0.9,0.3-1.4c0.1-1.1-0.5-2.2-1.5-2.8c-1.1-0.7-2.4-1-3.8-0.9\\n\\tc-1.1,0-2.2,0.2-3.2,0.6c-0.9,0.4-1.7,1-2.3,1.7c-0.6,0.7-1.1,1.6-1.5,2.5C171.8,304.1,171.6,305.1,171.5,306.1L171.5,306.1z\"}}),_c('path',{staticClass:\"st1\",attrs:{\"d\":\"M192.3,64.5c-2.8,0.1-5.4-1-7.4-3c-4.1-4.1-4.1-10.6,0-14.7c4.1-4,10.7-4,14.8,0c4.1,4.1,4.1,10.6,0,14.7\\n\\tC197.7,63.5,195.1,64.6,192.3,64.5z\"}}),_c('path',{staticClass:\"st0\",attrs:{\"d\":\"M192.3,45.5c2.3-0.1,4.6,0.9,6.2,2.5c3.4,3.4,3.4,8.9,0,12.3c-3.5,3.3-9,3.3-12.5,0c-3.4-3.4-3.4-8.9,0-12.3\\n\\tC187.7,46.4,190,45.5,192.3,45.5 M192.3,42.2c-3.2-0.1-6.3,1.2-8.6,3.5c-4.7,4.7-4.7,12.3,0,17.1c4.8,4.6,12.4,4.6,17.1,0\\n\\tc4.7-4.7,4.7-12.3,0-17.1C198.6,43.4,195.5,42.1,192.3,42.2L192.3,42.2z\"}}),_c('path',{staticClass:\"st1\",attrs:{\"d\":\"M192.3,138.1c-4.9,0-8.9-4-8.9-8.9V79.4c0-4.9,4-8.9,8.9-8.9s8.9,4,8.9,8.9v49.8\\n\\tC201.2,134.1,197.2,138.1,192.3,138.1z\"}}),_c('path',{staticClass:\"st0\",attrs:{\"d\":\"M192.3,72.1c4,0,7.2,3.2,7.2,7.2v49.8c0,4-3.2,7.2-7.2,7.2s-7.2-3.2-7.2-7.2V79.4\\n\\tC185.1,75.4,188.3,72.1,192.3,72.1 M192.3,68.8c-5.8,0-10.6,4.7-10.6,10.6v49.8c0,5.8,4.7,10.6,10.6,10.6c5.8,0,10.6-4.7,10.6-10.6\\n\\tV79.4C202.9,73.6,198.1,68.8,192.3,68.8z\"}}),_c('path',{staticClass:\"st5\",attrs:{\"d\":\"M62.8,137.5c-19.3,0-34.9-15.6-34.9-34.9c0-4.6,3.7-8.3,8.3-8.3s8.3,3.7,8.3,8.3c0,10.2,8.2,18.4,18.4,18.4\\n\\tc10.2,0,18.4-8.2,18.4-18.4c0-10.2-8.2-18.4-18.4-18.4c0,0,0,0,0,0c-4.6,0-8.3-3.7-8.3-8.3c0-4.6,3.7-8.3,8.3-8.3\\n\\tc6.3,0,12.5,1.7,17.9,5V43.5c0-4.6,3.7-8.3,8.3-8.3c4.6,0,8.3,3.7,8.3,8.3v52.8c0,0.2,0,0.4,0,0.6c0.3,1.9,0.5,3.8,0.5,5.7\\n\\tC97.7,121.9,82.1,137.5,62.8,137.5z\"}}),_c('path',{staticClass:\"st0\",attrs:{\"d\":\"M89,36.7c3.8,0,6.8,3,6.8,6.8v52.8c0,0.2,0,0.4,0,0.6c2.9,18.2-9.6,35.4-27.8,38.2s-35.4-9.6-38.2-27.8\\n\\tc-0.2-1.6-0.4-3.2-0.4-4.7c0-3.8,3.1-6.8,6.8-6.8c3.8,0,6.8,3.1,6.8,6.8c0,10.9,8.9,19.8,19.8,19.8s19.8-8.9,19.8-19.8\\n\\ts-8.9-19.8-19.8-19.8c0,0,0,0,0,0c-3.8,0-6.8-3.1-6.8-6.8c0-3.8,3.1-6.8,6.8-6.8c6.9,0,13.7,2.2,19.4,6.2V43.5\\n\\tC82.1,39.8,85.2,36.7,89,36.7 M88.9,33.9c-5.3,0-9.6,4.4-9.6,9.7v26.8c-5.1-2.6-10.7-4-16.5-4c-5.4-0.2-9.8,4-10,9.4\\n\\tc-0.2,5.4,4,9.8,9.4,10c0.2,0,0.4,0,0.6,0c9.4,0,16.9,7.6,16.9,16.9c0,9.4-7.6,16.9-16.9,16.9s-16.9-7.6-16.9-16.9l0,0\\n\\tc0-5.4-4.3-9.7-9.7-9.7c-5.4,0-9.7,4.3-9.7,9.7c-0.1,20.1,16.2,36.4,36.2,36.5s36.4-16.2,36.5-36.2c0-2-0.2-4-0.5-6\\n\\tc0-0.2,0-0.3,0-0.5V43.5C98.7,38.2,94.3,33.9,88.9,33.9L88.9,33.9z\"}}),_c('path',{staticClass:\"st1\",attrs:{\"d\":\"M35.8,91.4c-2.8,0-5.1-2.3-5.1-5.1v-6.2c0-5.5,4.4-9.9,9.9-9.9h6.5c2.8,0,5.1,2.3,5.1,5.1\\n\\tc0,2.8-2.3,5.1-5.1,5.1c0,0,0,0,0,0h-6.2v5.9C40.9,89.1,38.6,91.4,35.8,91.4z\"}}),_c('path',{staticClass:\"st1\",attrs:{\"d\":\"M141.6,137.8c-4.2,0-8.4-0.3-12.6-1c-3.3-0.6-6.6-1.4-9.8-2.4c-2.3-0.7-4.6-1.6-6.8-2.6\\n\\tc-1.1-0.5-2.1-1.1-3.1-1.7c-3.5-1.8-4.9-6.1-3.1-9.7c1.2-2.4,3.7-3.9,6.4-3.9c1,0,2.1,0.2,3,0.7c0.2,0,0.4,0.1,0.5,0.2\\n\\tc0.9,0.6,1.9,1.1,2.9,1.4c1.8,0.8,3.6,1.4,5.4,2c2.4,0.7,4.9,1.3,7.4,1.8c3,0.5,6,0.7,9,0.7c3.4,0.1,6.8-0.4,10.1-1.6\\n\\tc2.1-0.9,3.1-2.2,3.1-4.2c0.1-1.6-0.6-3-1.9-3.9c-1-0.7-3.4-1.7-8.7-2.3l-9.8-1.1c-3.2-0.3-6.4-0.9-9.5-1.9\\n\\tc-2.8-0.8-5.4-2.1-7.7-3.8c-2.2-1.6-4-3.7-5.2-6.1c-1.3-2.7-2-5.7-1.9-8.7c0-2.8,0.6-5.6,1.7-8.2c1.2-2.7,3.1-5.1,5.4-6.9\\n\\tc2.8-2.1,6-3.7,9.4-4.6c4.5-1.2,9.1-1.7,13.7-1.6c8.9,0,15.9,1,20.9,3c1,0.4,2,0.9,3,1.4c3.6,1.6,5.3,5.9,3.6,9.5\\n\\tc-1.6,3.6-5.9,5.3-9.5,3.7c-0.7-0.3-1.5-0.6-2.3-0.9c-5-1.8-10.3-2.7-15.7-2.6c-8.6,0-12.9,2-12.9,5.9c-0.1,1.5,0.7,2.8,2,3.5\\n\\tc2.3,1.2,4.7,1.9,7.2,2.1l12.8,1.6c7.2,0.9,12.9,3,17,6c4.3,3.2,6.4,7.9,6.4,14c0.2,6.4-2.9,12.5-8.1,16.3\\n\\tC158.9,135.8,151.3,137.8,141.6,137.8z\"}}),_c('path',{staticClass:\"st0\",attrs:{\"d\":\"M139.6,70.2c8.7,0,15.5,1,20.3,2.9c1,0.4,1.9,0.8,2.8,1.3c2.9,1,4.4,4.2,3.3,7.1c-1,2.9-4.2,4.4-7.1,3.3\\n\\tc-0.2-0.1-0.4-0.2-0.6-0.3c-0.7-0.3-1.5-0.7-2.4-1c-2.3-0.8-4.6-1.4-6.9-1.9c-3.1-0.6-6.2-0.8-9.3-0.8c-9.7,0-14.6,2.5-14.6,7.6\\n\\tc-0.1,2,1,3.9,2.8,4.9c2.5,1.3,5.1,2.1,7.9,2.3l12.8,1.6c6.9,0.9,12.3,2.8,16.2,5.7s5.8,7.1,5.8,12.6c0.2,5.9-2.7,11.6-7.5,15\\n\\tc-5,3.7-12.2,5.6-21.6,5.6c-4.1,0-8.2-0.3-12.3-1c-3.3-0.6-6.5-1.3-9.6-2.3c-2.3-0.7-4.5-1.5-6.6-2.6c-1-0.5-2-1-3-1.6\\n\\tc-2.7-1.4-3.7-4.7-2.3-7.4c1.4-2.7,4.7-3.7,7.4-2.3l0,0c1,0.6,2,1.2,3.1,1.6c1.8,0.8,3.7,1.5,5.6,2.1c2.5,0.8,5,1.4,7.6,1.8\\n\\tc3.1,0.5,6.2,0.8,9.3,0.8c3.6,0.1,7.3-0.5,10.7-1.7c2.8-1.1,4.1-3,4.1-5.8c0.1-2.1-0.9-4.1-2.6-5.3c-1.8-1.2-4.9-2.1-9.4-2.6\\n\\tl-9.8-1.1c-3.1-0.3-6.2-0.9-9.2-1.8c-2.6-0.8-5-2-7.2-3.5c-2-1.5-3.6-3.4-4.7-5.5c-1.2-2.5-1.8-5.2-1.7-7.9c0-2.6,0.5-5.2,1.6-7.5\\n\\tc1.1-2.5,2.9-4.6,5-6.3c2.6-2,5.6-3.5,8.9-4.3C130.6,70.7,135.1,70.1,139.6,70.2 M139.5,66.9c-4.8-0.1-9.5,0.4-14.1,1.6\\n\\tc-3.6,1-7,2.6-10,4.9c-2.5,2-4.6,4.6-5.9,7.5c-1.2,2.8-1.9,5.8-1.9,8.9c-0.1,3.3,0.6,6.5,2.1,9.4c1.4,2.6,3.3,4.9,5.7,6.7\\n\\tc2.5,1.8,5.3,3.1,8.2,4c3.2,1,6.5,1.6,9.9,1.9l9.8,1.1c5.2,0.6,7.2,1.5,7.9,2c0.8,0.6,1.3,1.5,1.2,2.5c0,1.1-0.3,2-2.1,2.7\\n\\tc-3,1.1-6.2,1.5-9.4,1.4c-2.9,0-5.8-0.2-8.7-0.7c-2.4-0.4-4.8-1-7.2-1.7c-1.8-0.5-3.5-1.2-5.3-1.9c-0.9-0.4-1.7-0.8-2.6-1.3\\n\\tc-0.3-0.2-0.6-0.4-1-0.5c-1.1-0.5-2.3-0.8-3.6-0.8c-4.9-0.1-8.9,3.7-9.1,8.6c-0.1,3.4,1.8,6.6,4.8,8.1c1,0.7,2.1,1.3,3.2,1.8\\n\\tc2.3,1.1,4.6,2,7.1,2.7c3.3,1,6.6,1.8,10,2.4c4.3,0.7,8.6,1,12.9,1c10.1,0,18-2.1,23.5-6.3c5.7-4,9-10.6,8.8-17.6\\n\\tc0-6.6-2.4-11.8-7.1-15.3c-4.3-3.2-10.3-5.3-17.8-6.3l-12.8-1.6c-2.3-0.2-4.5-0.8-6.6-1.8c-0.8-0.4-1.2-1.2-1.2-2.1\\n\\tc0-3.5,6.1-4.3,11.2-4.3c2.9,0,5.8,0.2,8.6,0.7c2.2,0.4,4.3,1,6.4,1.7c0.8,0.3,1.5,0.6,2.1,0.9c4.5,1.9,9.7-0.3,11.6-4.8\\n\\tc1.8-4.3-0.1-9.3-4.3-11.4c-1-0.6-2-1-3.1-1.5C155.8,67.9,148.7,66.9,139.5,66.9L139.5,66.9z\"}}),_c('path',{staticClass:\"st1\",attrs:{\"d\":\"M38.3,166.3c-0.1-0.7,0.2-1.3,0.7-1.8c0.6-0.4,1.3-0.6,2-0.6c0.5,0,1,0.1,1.5,0.2c0.4,0.1,0.7,0.2,0.9,0.3v20.2\\n\\tc0,1.9-0.3,3.9-0.9,5.7c-0.5,1.5-1.4,2.9-2.5,4c-1.1,1.1-2.4,1.9-3.8,2.4c-1.5,0.6-3.2,0.9-4.8,0.9c-1.7,0-3.3-0.3-4.8-0.9\\n\\tc-1.4-0.6-2.7-1.4-3.8-2.5c-1.1-1.1-1.9-2.3-2.5-3.8c-0.6-1.5-0.9-3.1-0.9-4.7c0-1.6,0.3-3.3,0.9-4.8c0.6-1.4,1.4-2.7,2.4-3.8\\n\\tc1-1.1,2.3-1.9,3.6-2.5c1.4-0.6,3-0.9,4.5-0.9c1.6,0,3.1,0.3,4.6,1c1.2,0.6,2.3,1.4,3.1,2.4V166.3z M38.3,185.6c0-1-0.2-2-0.5-2.9\\n\\tc-0.3-0.9-0.8-1.6-1.4-2.3c-0.6-0.7-1.3-1.2-2.2-1.5c-1.8-0.7-3.8-0.7-5.6,0c-0.8,0.4-1.6,0.9-2.2,1.5c-0.6,0.7-1.1,1.5-1.4,2.3\\n\\tc-0.3,0.9-0.5,1.9-0.5,2.9c0,1,0.2,2,0.5,2.9c0.3,0.8,0.8,1.6,1.4,2.3c1.3,1.4,3.1,2.1,5,2.1c1,0,1.9-0.2,2.8-0.5\\n\\tc0.8-0.3,1.6-0.8,2.2-1.5c0.6-0.7,1.1-1.4,1.4-2.3C38.1,187.6,38.3,186.6,38.3,185.6z\"}}),_c('path',{staticClass:\"st1\",attrs:{\"d\":\"M59.5,173.8c1.7,0,3.3,0.3,4.9,0.9c1.5,0.6,2.8,1.4,3.9,2.5c1.1,1.1,2,2.3,2.6,3.8c0.6,1.5,1,3.1,0.9,4.7\\n\\tc0,1.6-0.3,3.2-0.9,4.7c-0.6,1.4-1.5,2.7-2.6,3.8c-1.1,1.1-2.5,1.9-3.9,2.5c-3.1,1.2-6.6,1.2-9.7,0c-1.5-0.6-2.8-1.4-3.9-2.5\\n\\tc-1.1-1.1-2-2.3-2.6-3.8c-0.6-1.5-0.9-3.1-0.9-4.7c0-1.6,0.3-3.2,0.9-4.7c0.6-1.4,1.5-2.7,2.6-3.8c1.1-1.1,2.5-1.9,3.9-2.5\\n\\tC56.1,174,57.8,173.7,59.5,173.8z M59.5,193c1,0,1.9-0.2,2.8-0.6c0.8-0.4,1.6-0.9,2.2-1.6c0.6-0.7,1.1-1.5,1.4-2.3\\n\\tc0.3-0.9,0.5-1.9,0.5-2.9c0-1-0.2-2-0.5-2.9c-0.3-0.9-0.8-1.7-1.4-2.4c-0.6-0.7-1.4-1.2-2.2-1.5c-0.9-0.4-1.9-0.6-2.8-0.6\\n\\tc-1,0-1.9,0.2-2.8,0.6c-0.8,0.4-1.6,0.9-2.2,1.5c-0.6,0.7-1.1,1.5-1.4,2.4c-0.3,0.9-0.5,1.9-0.5,2.9c0,1,0.2,2,0.5,2.9\\n\\tc0.3,0.9,0.8,1.6,1.4,2.3c0.6,0.7,1.4,1.2,2.2,1.6C57.5,192.8,58.5,193,59.5,193L59.5,193z\"}}),_c('path',{staticClass:\"st1\",attrs:{\"d\":\"M76.1,182.4c0-1.3,0.2-2.6,0.8-3.8c0.5-1,1.2-2,2.1-2.7c0.9-0.7,2-1.3,3.1-1.6c1.3-0.4,2.6-0.6,3.9-0.6\\n\\tc1.7,0,3.4,0.3,5,1c1.4,0.6,2.6,1.7,3.5,3c0.8-1.3,2-2.3,3.4-3c1.5-0.7,3.2-1,4.9-1c1.3,0,2.6,0.2,3.8,0.5c1.1,0.3,2.2,0.9,3.1,1.6\\n\\tc0.9,0.7,1.6,1.7,2.1,2.7c0.5,1.2,0.8,2.5,0.8,3.8v14.5h-5.1v-12.8c0-2-0.5-3.5-1.4-4.4c-1-0.9-2.4-1.4-3.8-1.3\\n\\tc-1.4,0-2.8,0.5-3.8,1.5c-1,1-1.6,2.6-1.6,4.8v12.2h-5.1v-12.2c0-2.2-0.5-3.8-1.5-4.8c-1-1-2.4-1.5-3.8-1.5\\n\\tc-1.4-0.1-2.7,0.4-3.8,1.3c-1,0.9-1.4,2.4-1.4,4.4v12.7h-5.1L76.1,182.4z\"}}),_c('path',{staticClass:\"st1\",attrs:{\"d\":\"M117.6,176.8c-0.1-0.7,0.2-1.4,0.7-1.8c0.6-0.4,1.3-0.6,2-0.6c0.5,0,1,0.1,1.5,0.2l0.9,0.3v11.8\\n\\tc-0.1,1.7,0.4,3.3,1.4,4.6c2.5,2.1,6.2,2.1,8.8,0c1-1.3,1.5-3,1.4-4.6v-9.9c-0.1-0.7,0.2-1.4,0.7-1.8c0.6-0.4,1.3-0.6,2-0.6\\n\\tc0.5,0,1,0.1,1.5,0.2l0.9,0.3v12.9c0,1.4-0.2,2.8-0.8,4.1c-0.5,1.2-1.3,2.2-2.2,3.1c-1,0.9-2.2,1.5-3.5,1.9c-2.9,0.9-6,0.9-8.9,0\\n\\tc-1.3-0.4-2.4-1-3.4-1.9c-1-0.8-1.7-1.9-2.2-3.1c-0.6-1.3-0.8-2.7-0.8-4.1L117.6,176.8z\"}}),_c('path',{staticClass:\"st5\",attrs:{\"d\":\"M144.7,183.3c0-1.4,0.3-2.7,0.8-4c0.5-1.2,1.3-2.2,2.3-3c1-0.9,2.2-1.5,3.4-1.9c1.4-0.4,2.9-0.7,4.4-0.6\\n\\tc1.5,0,3,0.2,4.4,0.6c1.3,0.4,2.5,1,3.5,1.9c1,0.8,1.7,1.8,2.3,3c0.5,1.3,0.8,2.6,0.8,4v13.6h-5.1v-12.3c0.1-1.7-0.4-3.3-1.5-4.6\\n\\tc-2.5-2.1-6.2-2.1-8.7,0c-1.1,1.3-1.6,3-1.5,4.6v12.3h-5.1L144.7,183.3z\"}}),_c('path',{staticClass:\"st5\",attrs:{\"d\":\"M191.7,195.2c-0.2,0.1-0.6,0.4-1.1,0.6c-0.6,0.3-1.3,0.6-1.9,0.8c-0.9,0.3-1.7,0.5-2.6,0.6\\n\\tc-1.1,0.2-2.2,0.3-3.3,0.3c-1.6,0-3.2-0.2-4.7-0.8c-1.4-0.5-2.7-1.3-3.8-2.3c-1.1-1-2-2.3-2.6-3.7c-0.7-1.6-1-3.3-0.9-5\\n\\tc0-1.7,0.3-3.3,0.9-4.9c0.6-1.4,1.4-2.7,2.6-3.8c1.1-1.1,2.4-1.9,3.9-2.5c1.5-0.6,3.2-0.9,4.9-0.9c1.4,0,2.8,0.2,4.1,0.6\\n\\tc1.1,0.4,2.1,0.9,3,1.6c0.8,0.6,1.4,1.4,1.9,2.4c0.4,0.9,0.6,1.9,0.6,2.9c0,1-0.2,2-0.6,2.9c-0.5,0.9-1.2,1.7-2.1,2.2\\n\\tc-1.2,0.7-2.6,1.2-4,1.4c-2.1,0.4-4.2,0.6-6.4,0.5c-0.6,0-1.2,0-1.7,0l-1.7-0.1c0.2,1.5,1,2.8,2.2,3.7c1.6,1,3.4,1.5,5.3,1.4\\n\\tc1.3,0,2.7-0.2,3.9-0.6c0.5-0.2,0.9-0.3,1.4-0.5l0.8-0.4L191.7,195.2z M176,184.6c0.7,0,1.3,0,2,0h1.9c1.3,0,2.7-0.1,4-0.3\\n\\tc0.8-0.1,1.6-0.4,2.4-0.8c0.5-0.2,0.9-0.6,1.1-1.1c0.2-0.4,0.3-0.8,0.3-1.3c0-1-0.5-2-1.4-2.5c-1-0.6-2.2-0.9-3.4-0.9\\n\\tc-1,0-2,0.2-2.9,0.6c-0.8,0.4-1.5,0.9-2.1,1.5c-0.6,0.7-1,1.4-1.3,2.2C176.3,182.9,176.1,183.7,176,184.6L176,184.6z\"}}),_c('path',{staticClass:\"st5\",attrs:{\"d\":\"M207.8,173.8c1.7,0,3.3,0.3,4.9,0.9c1.5,0.6,2.8,1.4,3.9,2.5c1.1,1.1,2,2.3,2.6,3.8c0.6,1.5,1,3.1,0.9,4.7\\n\\tc0,1.6-0.3,3.2-0.9,4.7c-0.6,1.4-1.5,2.7-2.6,3.8c-1.1,1.1-2.5,1.9-3.9,2.5c-3.1,1.2-6.6,1.2-9.7,0c-1.5-0.6-2.8-1.4-3.9-2.5\\n\\tc-1.1-1.1-2-2.3-2.6-3.8c-0.6-1.5-0.9-3.1-0.9-4.7c0-1.6,0.3-3.2,0.9-4.7c0.6-1.4,1.5-2.7,2.6-3.8c1.1-1.1,2.5-1.9,3.9-2.5\\n\\tC204.5,174.1,206.1,173.8,207.8,173.8z M207.8,193c1,0,1.9-0.2,2.8-0.6c0.8-0.4,1.6-0.9,2.2-1.6c0.6-0.7,1.1-1.5,1.5-2.3\\n\\tc0.4-0.9,0.5-1.9,0.5-2.9c0-1-0.2-2-0.5-2.9c-0.3-0.9-0.8-1.7-1.4-2.4c-0.6-0.7-1.4-1.2-2.2-1.5c-0.9-0.4-1.9-0.6-2.8-0.6\\n\\tc-1,0-1.9,0.2-2.8,0.6c-0.8,0.4-1.6,0.9-2.2,1.5c-0.6,0.7-1.1,1.5-1.4,2.4c-0.3,0.9-0.5,1.9-0.5,2.9c0,1,0.1,2,0.4,2.9\\n\\tc0.3,0.9,0.8,1.6,1.4,2.3c0.6,0.7,1.4,1.2,2.2,1.6C205.8,192.8,206.8,193,207.8,193L207.8,193z\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <svg\n    id=\"Calque_1\"\n    style=\"enable-background: new 0 0 244 320.3\"\n    version=\"1.1\"\n    viewBox=\"0 0 244 320.3\"\n    x=\"0px\"\n    xml:space=\"preserve\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    y=\"0px\"\n  >\n    <path\n      class=\"st0\"\n      d=\"M25.2,0h187.4c8.1,0,14.6,6.5,14.6,14.6v183.1c0,8.1-6.5,14.6-14.6,14.6H25.2c-8.1,0-14.6-6.5-14.6-14.6V14.6\n\tC10.6,6.5,17.1,0,25.2,0z\"\n    />\n    <path\n      class=\"st1\"\n      d=\"M212.6,1c7.5,0,13.6,6.1,13.6,13.6v183.1c0,7.5-6.1,13.6-13.6,13.6c0,0,0,0,0,0H25.2c-7.5,0-13.6-6.1-13.6-13.6\n\tl0,0V14.6C11.6,7.1,17.7,1,25.2,1c0,0,0,0,0,0H212.6 M212.6-1H25.2C16.6-1,9.6,6,9.6,14.6v183.1c0,8.6,7,15.6,15.6,15.6h187.4\n\tc8.6,0,15.6-7,15.6-15.6V14.6C228.2,6,221.2-1,212.6-1L212.6-1z\"\n    />\n    <g>\n      <defs>\n        <path\n          id=\"SVGID_1_\"\n          d=\"M23.8,5.9H214c4.3,0,7.8,3.5,7.8,7.8V193c0,4.3-3.5,7.8-7.8,7.8H23.8c-4.3,0-7.8-3.5-7.8-7.8V13.7\n\t\t\tC16,9.4,19.5,5.9,23.8,5.9z\"\n        />\n      </defs>\n      <clipPath id=\"SVGID_2_\">\n        <use style=\"overflow: visible\" xlink:href=\"#SVGID_1_\" />\n      </clipPath>\n      <g class=\"st2\">\n        <linearGradient\n          id=\"SVGID_3_\"\n          gradientTransform=\"matrix(2.1912 -0.2873 -0.1677 -1.2791 -247.4959 119.4816)\"\n          gradientUnits=\"userSpaceOnUse\"\n          x1=\"166.2501\"\n          x2=\"153.9301\"\n          y1=\"-17.3414\"\n          y2=\"47.1886\"\n        >\n          <stop offset=\"0\" style=\"stop-color: #ffffff\" />\n          <stop offset=\"0.3\" style=\"stop-color: #ffffff; stop-opacity: 0\" />\n        </linearGradient>\n        <path\n          class=\"st3\"\n          d=\"M81.5-36.9C195-51.8,291.2-32.4,296.3,6.4c5.1,38.8-82.8,82.3-196.3,97.2s-209.7-4.5-214.8-43.3\n\t\t\tC-119.9,21.5-32-22,81.5-36.9z\"\n        />\n      </g>\n    </g>\n    <path\n      class=\"st4\"\n      d=\"M26.5,9.8h184.8c4.2,0,7.7,3.4,7.7,7.7v177.4c0,4.2-3.4,7.7-7.7,7.7H26.5c-4.2,0-7.7-3.4-7.7-7.7V17.5\n\tC18.8,13.2,22.3,9.8,26.5,9.8z\"\n    />\n    <path\n      class=\"st5\"\n      d=\"M2.8,258.7c0.6,0.4,1.2,0.8,1.8,1.1c1,0.5,2,0.9,3,1.3c1.3,0.5,2.7,0.8,4.1,1.1c1.6,0.3,3.3,0.5,5,0.4\n\tc3.2,0,5.5-0.5,6.9-1.4c1.9-1.4,2.6-4,1.6-6.1c-0.3-0.6-0.8-1.1-1.4-1.5c-0.7-0.4-1.4-0.8-2.2-1c-1-0.3-2-0.5-3-0.7l-6-1.1\n\tc-1.5-0.3-3-0.7-4.5-1.2c-1.4-0.5-2.6-1.1-3.8-2c-1.1-0.8-2-1.9-2.6-3.1c-0.7-1.4-1-2.9-1-4.4c0-1.5,0.3-3,0.8-4.4\n\tc0.6-1.4,1.5-2.7,2.8-3.7c1.4-1.1,3-1.9,4.7-2.4c2.3-0.7,4.6-1,6.9-0.9c1.7,0,3.5,0.1,5.2,0.3c1.3,0.2,2.5,0.4,3.7,0.8\n\tc0.9,0.3,1.7,0.6,2.5,1c0.6,0.3,1.1,0.6,1.4,0.8c0.5,0.4,1,0.8,1.4,1.3c0.4,0.5,0.6,1.1,0.6,1.6c0,0.8-0.3,1.7-0.8,2.3\n\tc-0.4,0.6-0.9,1.1-1.4,1.5c-0.5-0.5-1-0.9-1.6-1.2c-0.8-0.5-1.7-1-2.6-1.4c-2.6-1-5.4-1.5-8.2-1.5c-1.4,0-2.8,0.1-4.2,0.4\n\tc-1,0.2-1.9,0.5-2.7,1.1c-0.6,0.4-1.1,1-1.4,1.6c-0.3,0.7-0.5,1.4-0.4,2.2c-0.1,1.3,0.6,2.5,1.6,3.3c1.7,1,3.5,1.6,5.4,1.9l6.2,1.2\n\tc4,0.7,7,1.9,9,3.6c2.1,1.8,3.2,4.5,3,7.2c0,1.6-0.3,3.3-1,4.8c-0.7,1.4-1.8,2.7-3.1,3.7c-1.5,1.1-3.2,1.9-5,2.4\n\tc-2.3,0.6-4.6,0.9-6.9,0.8c-2,0-4.1-0.2-6.1-0.5c-1.7-0.3-3.3-0.7-4.9-1.3c-1.2-0.4-2.4-0.9-3.6-1.5c-1-0.5-1.7-0.9-2.1-1.2\n\tL2.8,258.7z\"\n    />\n    <path\n      class=\"st5\"\n      d=\"M38.1,234.8c-0.1-0.8,0.2-1.7,0.9-2.2c0.7-0.5,1.6-0.7,2.4-0.7c0.6,0,1.2,0.1,1.8,0.2c0.6,0.2,1,0.3,1.1,0.4\n\tv7.2h8c0.9-0.1,1.8,0.2,2.6,0.7c0.5,0.6,0.8,1.4,0.8,2.2c0,0.6-0.1,1.2-0.3,1.7c-0.1,0.4-0.3,0.8-0.4,1.1H44.4v12.3\n\tc0,0.8,0.1,1.6,0.4,2.3c0.2,0.6,0.6,1.1,1.1,1.4c0.5,0.4,1,0.6,1.6,0.8c0.6,0.1,1.3,0.2,1.9,0.2c1,0,2-0.2,3-0.5\n\tc0.7-0.2,1.4-0.5,2-0.9l2.5,4.2c-0.3,0.2-0.7,0.5-1.2,0.8c-0.6,0.4-1.3,0.7-2,0.9c-0.8,0.3-1.7,0.6-2.6,0.7c-1,0.2-2.1,0.3-3.1,0.3\n\tc-3.2,0-5.7-0.8-7.3-2.5c-1.7-1.8-2.6-4.1-2.5-6.6L38.1,234.8z\"\n    />\n    <path\n      class=\"st5\"\n      d=\"M74.1,238.9c2.1,0,4.1,0.4,6,1.1c1.8,0.7,3.4,1.7,4.8,3.1c1.4,1.3,2.4,2.9,3.2,4.6c0.8,1.8,1.2,3.8,1.2,5.8\n\tc0,2-0.4,3.9-1.2,5.8c-0.7,1.7-1.8,3.3-3.2,4.6c-1.4,1.3-3,2.4-4.8,3.1c-3.8,1.5-8.1,1.5-11.9,0c-1.8-0.7-3.4-1.8-4.8-3.1\n\tc-1.4-1.3-2.4-2.9-3.2-4.6c-0.8-1.8-1.2-3.8-1.2-5.7c0-2,0.4-4,1.2-5.8c0.7-1.7,1.8-3.3,3.2-4.6c1.4-1.3,3-2.4,4.8-3.1\n\tC70,239.3,72,238.9,74.1,238.9z M74.1,262.6c1.2,0,2.4-0.2,3.5-0.7c1-0.4,2-1.1,2.7-1.9c0.8-0.8,1.4-1.8,1.8-2.9\n\tc0.4-1.1,0.6-2.3,0.6-3.5c0-1.2-0.2-2.5-0.6-3.6c-0.4-1.1-1-2.1-1.8-2.9c-0.8-0.8-1.7-1.5-2.7-1.9c-2.2-0.9-4.8-0.9-7,0\n\tc-1,0.4-1.9,1.1-2.7,1.9c-0.8,0.8-1.4,1.8-1.8,2.9c-0.4,1.2-0.6,2.4-0.6,3.6c0,1.2,0.2,2.4,0.6,3.5c0.4,1.1,1,2,1.8,2.9\n\tc0.7,0.8,1.7,1.5,2.7,1.9C71.7,262.3,72.9,262.6,74.1,262.6L74.1,262.6z\"\n    />\n    <path\n      class=\"st5\"\n      d=\"M118.5,265.4c-0.5,0.3-1.1,0.6-1.6,0.9c-0.7,0.3-1.4,0.6-2.2,0.9c-0.9,0.3-1.9,0.5-2.8,0.7\n\tc-1.2,0.2-2.4,0.3-3.6,0.3c-2,0-3.9-0.3-5.8-0.9c-1.8-0.6-3.4-1.5-4.7-2.8c-1.4-1.3-2.5-2.8-3.2-4.5c-0.8-2-1.2-4.1-1.2-6.2\n\tc0-2.1,0.4-4.3,1.2-6.3c0.7-1.8,1.8-3.3,3.2-4.6c1.4-1.3,3-2.2,4.8-2.8c1.9-0.7,4-1,6-1c1.5,0,3.1,0.1,4.6,0.4\n\tc1.1,0.2,2.1,0.6,3.1,1.1c0.7,0.3,1.3,0.9,1.7,1.5c0.3,0.5,0.5,1.1,0.5,1.6c0,0.7-0.3,1.4-0.7,2c-0.4,0.5-0.9,1-1.4,1.4\n\tc-0.8-0.7-1.8-1.4-2.9-1.8c-1.5-0.6-3-0.9-4.6-0.9c-1.2,0-2.4,0.2-3.5,0.6c-1,0.3-2,0.9-2.8,1.7c-0.8,0.8-1.5,1.8-1.9,2.8\n\tc-0.5,1.3-0.7,2.6-0.7,4c0,1.4,0.2,2.8,0.7,4.1c0.4,1.1,1.1,2,2,2.8c0.9,0.7,1.8,1.3,2.9,1.6c1.2,0.4,2.4,0.5,3.6,0.5\n\tc1.5,0.1,3-0.2,4.4-0.8c0.8-0.3,1.5-0.7,2.3-1.1L118.5,265.4z\"\n    />\n    <path\n      class=\"st5\"\n      d=\"M122.1,229.7c-0.1-0.8,0.3-1.6,0.9-2.2c0.7-0.5,1.6-0.8,2.5-0.7c0.6,0,1.2,0.1,1.8,0.2c0.6,0.2,0.9,0.3,1.1,0.4\n\tv22.5c0.5-0.3,1.1-0.8,2-1.5s1.8-1.3,2.9-2.1s2.2-1.6,3.3-2.4s2.2-1.6,3.2-2.4c0.7-0.5,1.4-1,2.2-1.4c0.8-0.3,1.7-0.5,2.6-0.5\n\tc0.9,0,1.8,0.3,2.5,0.8c0.5,0.4,1,0.8,1.3,1.4c-0.8,0.7-1.8,1.5-3.2,2.5s-2.7,2-4.1,3s-2.7,1.9-4,2.8s-2.1,1.5-2.7,1.9\n\tc3.1,2.3,5.9,4.8,8.5,7.5c2.3,2.4,4.5,5,6.5,7.7h-7.8c-0.8-1-1.8-2.1-2.8-3.2s-2.2-2.2-3.4-3.3s-2.4-2.1-3.6-3.1s-2.4-1.9-3.6-2.8\n\tv12.5H122L122.1,229.7z\"\n    />\n    <path\n      class=\"st5\"\n      d=\"M177.5,267.2c-0.4,0.1-0.9,0.2-1.7,0.2s-1.7,0.2-2.8,0.3s-2.2,0.2-3.6,0.2s-2.7,0.1-4.1,0.1\n\tc-2.4,0.1-4.7-0.2-7-0.7c-1.6-0.4-3-1.1-4.3-2c-1-0.7-1.7-1.7-2.1-2.9c-0.4-1.1-0.6-2.2-0.6-3.3c0-1.4,0.2-2.7,0.7-4\n\tc0.5-1.1,1.2-2.1,2.2-2.9c1.2-0.8,2.6-1.4,4.1-1.7c2-0.4,4.1-0.6,6.2-0.6c1.4,0,2.7,0,4,0.1s2.2,0.2,2.8,0.2c0-1.1-0.2-2.2-0.6-3.2\n\tc-0.4-0.8-1-1.5-1.7-2c-0.8-0.5-1.7-0.9-2.6-1c-1.1-0.2-2.3-0.3-3.4-0.3c-1.7-0.1-3.4,0.2-5,0.7c-0.9,0.3-1.7,0.7-2.5,1.2\n\tc-0.3-0.3-0.6-0.7-0.9-1c-0.4-0.5-0.6-1.2-0.6-1.9c0-0.5,0.1-1,0.4-1.5c0.4-0.6,0.9-1,1.5-1.3c0.9-0.5,1.8-0.8,2.8-0.9\n\tc1.5-0.2,3-0.4,4.5-0.3c2,0,4,0.2,5.9,0.6c1.6,0.4,3.2,1,4.6,2c1.3,0.9,2.3,2.2,3,3.6c0.8,1.7,1.1,3.6,1.1,5.5L177.5,267.2z\n\t M171.3,255c-0.4-0.1-1.1-0.2-2.1-0.3c-1.5-0.2-3-0.2-4.5-0.2c-1.9-0.1-3.8,0.3-5.4,1.1c-1.2,0.8-1.8,2.1-1.7,3.5\n\tc0,0.6,0.1,1.2,0.4,1.8c0.3,0.6,0.7,1.1,1.2,1.4c0.7,0.4,1.5,0.7,2.4,0.9c1.2,0.2,2.5,0.3,3.8,0.3c1.3,0,2.7-0.1,4-0.2\n\tc1-0.1,1.7-0.2,2-0.3V255z\"\n    />\n    <path\n      class=\"st5\"\n      d=\"M187.4,272.1c0.1,0.1,0.5,0.2,1,0.4c0.6,0.2,1.2,0.4,1.9,0.6c0.9,0.2,1.8,0.4,2.6,0.5c1.1,0.2,2.2,0.2,3.3,0.2\n\tc1.2,0,2.5-0.1,3.7-0.4c1.2-0.3,2.3-0.8,3.2-1.5c1-0.8,1.8-1.8,2.4-3c0.7-1.6,1-3.3,0.9-5v-0.7c-1,1.1-2.3,2.1-3.7,2.8\n\tc-1.8,0.9-3.8,1.4-5.8,1.3c-1.9,0-3.9-0.3-5.7-1c-1.7-0.6-3.2-1.6-4.5-2.9c-1.3-1.3-2.3-2.8-2.9-4.4c-0.7-1.8-1-3.8-1-5.7\n\tc0-2,0.4-4,1.1-5.8c0.7-1.7,1.8-3.3,3.1-4.6c1.4-1.3,3-2.3,4.8-3c1.9-0.8,4-1.1,6.1-1.1c2,0,3.9,0.3,5.8,0.9\n\tc1.7,0.6,3.3,1.6,4.6,2.9c1.4,1.4,2.4,3.1,3.1,4.9c0.8,2.2,1.2,4.6,1.1,7v7.9c0.1,2.5-0.3,5.1-1.2,7.5c-0.7,1.9-1.8,3.7-3.3,5.1\n\tc-1.4,1.3-3.1,2.3-5,2.9c-2,0.6-4.2,0.9-6.3,0.9c-1.4,0-2.7-0.1-4.1-0.2c-1.1-0.1-2.2-0.3-3.3-0.6c-0.8-0.2-1.6-0.4-2.4-0.7\n\tc-0.5-0.2-0.9-0.4-1.4-0.6L187.4,272.1z M197.9,262.2c1.2,0,2.3-0.2,3.4-0.6c1-0.4,1.9-1,2.6-1.8c0.8-0.8,1.3-1.7,1.7-2.8\n\tc0.8-2.3,0.8-4.7,0-7c-0.4-1-1-2-1.7-2.8c-0.7-0.8-1.6-1.4-2.6-1.8c-2.2-0.9-4.7-0.9-6.9,0c-1,0.4-1.9,1.1-2.7,1.9\n\tc-0.7,0.8-1.3,1.8-1.7,2.8c-0.4,1.1-0.6,2.3-0.6,3.4c-0.1,2.3,0.7,4.6,2.3,6.4C193.4,261.4,195.6,262.3,197.9,262.2L197.9,262.2z\"\n    />\n    <path\n      class=\"st5\"\n      d=\"M243,265.3c-0.3,0.2-0.8,0.4-1.4,0.8c-0.8,0.4-1.5,0.7-2.3,0.9c-1.1,0.3-2.2,0.6-3.2,0.8\n\tc-1.3,0.2-2.7,0.3-4,0.3c-2,0-3.9-0.3-5.8-0.9c-3.5-1.2-6.4-3.8-7.9-7.3c-1.5-3.9-1.5-8.3,0-12.2c0.7-1.8,1.8-3.4,3.1-4.7\n\tc1.4-1.3,3-2.3,4.7-3c1.9-0.7,4-1.1,6-1.1c1.7,0,3.4,0.2,5.1,0.7c1.3,0.4,2.6,1.1,3.7,2c2.8,2.4,3.8,6.4,2.2,9.8\n\tc-0.6,1.1-1.4,2.1-2.5,2.7c-1.5,0.9-3.2,1.5-4.9,1.8c-2.6,0.5-5.2,0.7-7.8,0.6c-0.7,0-1.4,0-2.1,0l-2.1-0.1c0.3,1.8,1.2,3.5,2.7,4.5\n\tc1.9,1.3,4.2,1.9,6.5,1.7c0.9,0,1.8-0.1,2.6-0.2c1.3-0.2,2.6-0.6,3.8-1.2l1-0.5L243,265.3z M223.7,252.3c0.8,0,1.6,0.1,2.4,0.1h2.3\n\tc1.6,0,3.3-0.1,4.9-0.4c1-0.2,2-0.5,2.9-1c0.6-0.3,1.1-0.8,1.4-1.4c0.2-0.5,0.3-1,0.3-1.6c0.1-1.3-0.6-2.5-1.7-3.1\n\tc-1.3-0.7-2.7-1.1-4.2-1c-1.2,0-2.5,0.2-3.6,0.7c-1,0.4-1.9,1.1-2.6,1.9c-0.7,0.8-1.3,1.7-1.6,2.7\n\tC223.9,250.1,223.7,251.2,223.7,252.3L223.7,252.3z\"\n    />\n    <path\n      class=\"st0\"\n      d=\"M57.9,283.6c1.9,0,3.4,1.5,3.4,3.4c0,1.9-1.5,3.4-3.4,3.4s-3.4-1.5-3.4-3.4c0-0.9,0.4-1.7,1-2.4\n\tC56.1,284,57,283.6,57.9,283.6z M55,297.4c-0.1-0.8,0.2-1.5,0.8-2c0.7-0.5,1.4-0.7,2.2-0.6c0.6,0,1.1,0.1,1.6,0.2\n\tc0.5,0.1,0.8,0.3,1,0.3v24.3H55V297.4z\"\n    />\n    <path\n      class=\"st0\"\n      d=\"M66.7,304.6c0-1.5,0.3-3,0.9-4.4c0.6-1.3,1.5-2.4,2.5-3.3c1.1-0.9,2.4-1.6,3.8-2.1c1.6-0.5,3.2-0.7,4.8-0.7\n\tc1.6,0,3.3,0.2,4.8,0.7c1.4,0.4,2.7,1.1,3.8,2.1c1.1,0.9,1.9,2,2.5,3.3c0.6,1.4,0.9,2.9,0.9,4.4v15h-5.6v-13.6\n\tc0.1-1.9-0.5-3.7-1.6-5.1c-2.8-2.3-6.8-2.3-9.6,0c-1.2,1.4-1.7,3.3-1.6,5.1v13.6h-5.7L66.7,304.6z\"\n    />\n    <path\n      class=\"st0\"\n      d=\"M97.3,313.4c0.4,0.3,0.8,0.5,1.2,0.6c0.7,0.3,1.5,0.6,2.2,0.8c1,0.3,2,0.5,3,0.7c1.2,0.2,2.4,0.3,3.7,0.3\n\tc1.4,0,2.9-0.2,4.2-0.7c1-0.3,1.7-1.3,1.6-2.3c0.1-0.8-0.3-1.6-1-2.1c-1.1-0.6-2.4-1-3.7-1l-3.9-0.4c-1.2-0.1-2.5-0.4-3.6-0.7\n\tc-1-0.3-2-0.8-2.9-1.4c-0.8-0.6-1.4-1.4-1.9-2.2c-0.5-1-0.7-2.1-0.7-3.1c0-1,0.2-2.1,0.6-3c0.5-1,1.1-1.8,2-2.5\n\tc1-0.8,2.2-1.4,3.5-1.7c1.7-0.4,3.5-0.7,5.2-0.6c2.7-0.1,5.4,0.3,8,1.1c1.9,0.8,2.9,1.8,2.9,3c0,0.3-0.1,0.7-0.2,1\n\tc-0.1,0.3-0.3,0.5-0.5,0.8c-0.2,0.2-0.4,0.4-0.6,0.6c-0.1,0.1-0.3,0.2-0.4,0.3c-0.3-0.2-0.6-0.4-0.9-0.6c-0.6-0.3-1.2-0.6-1.8-0.8\n\tc-0.9-0.3-1.8-0.6-2.7-0.8c-1.2-0.2-2.4-0.3-3.7-0.3c-3.8,0-5.7,1-5.8,3c0,0.8,0.4,1.6,1.1,2c1,0.5,2,0.8,3.1,0.9l5.1,0.6\n\tc2.3,0.2,4.5,1,6.4,2.2c1.5,1.2,2.4,3.1,2.3,5c0,2.4-1.1,4.6-3,6c-2,1.5-4.8,2.2-8.5,2.2c-1.6,0-3.2-0.1-4.9-0.4\n\tc-1.3-0.2-2.5-0.5-3.8-0.9c-0.9-0.3-1.8-0.6-2.6-1c-0.4-0.2-0.9-0.5-1.3-0.7L97.3,313.4z\"\n    />\n    <path\n      class=\"st0\"\n      d=\"M126.9,283.6c1.9,0,3.4,1.5,3.4,3.4c0,1.9-1.5,3.4-3.4,3.4c-1.9,0-3.4-1.5-3.4-3.4c0-0.9,0.4-1.8,1-2.4\n\tC125.1,284,126,283.6,126.9,283.6z M124.1,297.4c-0.1-0.8,0.2-1.5,0.8-2c0.7-0.4,1.4-0.7,2.2-0.6c0.6,0,1.1,0.1,1.6,0.2\n\tc0.5,0.1,0.8,0.3,1,0.3v24.3h-5.6L124.1,297.4z\"\n    />\n    <path\n      class=\"st0\"\n      d=\"M156,285.7c-0.1-0.7,0.2-1.5,0.8-2c0.6-0.5,1.4-0.7,2.2-0.6c0.6,0,1.1,0.1,1.6,0.2l1,0.3V306\n\tc0.1,2.1-0.3,4.3-1,6.3c-0.6,1.7-1.6,3.2-2.8,4.5c-1.2,1.2-2.6,2.1-4.2,2.7c-1.7,0.6-3.5,0.9-5.3,0.9c-1.8,0-3.7-0.3-5.4-1\n\tc-1.6-0.6-3-1.6-4.2-2.7c-1.2-1.2-2.2-2.6-2.8-4.2c-0.7-1.7-1-3.5-1-5.2c0-1.8,0.3-3.6,1-5.3c0.6-1.5,1.5-3,2.7-4.2\n\tc1.1-1.2,2.5-2.1,4-2.7c1.6-0.7,3.3-1,5-1c1.7,0,3.5,0.3,5.1,1.1c1.3,0.6,2.5,1.6,3.4,2.7L156,285.7z M156,307.2\n\tc0-1.1-0.2-2.2-0.6-3.2c-0.4-0.9-0.9-1.8-1.6-2.6c-0.7-0.7-1.5-1.3-2.4-1.7c-2.9-1.3-6.4-0.6-8.6,1.7c-0.7,0.7-1.2,1.6-1.6,2.5\n\tc-0.4,1-0.6,2.1-0.5,3.2c0,1.1,0.2,2.2,0.5,3.2c0.3,0.9,0.9,1.8,1.6,2.5c1.4,1.5,3.4,2.4,5.5,2.3c1.1,0,2.1-0.2,3.1-0.6\n\tc0.9-0.4,1.7-0.9,2.4-1.6c0.7-0.7,1.2-1.6,1.6-2.5C155.8,309.4,156,308.3,156,307.2z\"\n    />\n    <path\n      class=\"st0\"\n      d=\"M188.9,317.8c-0.3,0.2-0.7,0.4-1.2,0.7c-0.7,0.3-1.4,0.6-2.1,0.8c-1,0.3-1.9,0.5-2.9,0.7\n\tc-1.2,0.2-2.4,0.3-3.6,0.3c-1.8,0-3.5-0.3-5.2-0.8c-1.6-0.5-3-1.4-4.2-2.5c-1.2-1.1-2.2-2.5-2.9-4.1c-0.7-1.8-1.1-3.6-1-5.5\n\tc0-1.9,0.3-3.7,1-5.4c0.6-1.6,1.6-3,2.8-4.2c1.2-1.2,2.7-2.1,4.3-2.7c1.7-0.7,3.5-1,5.4-1c1.5,0,3.1,0.2,4.6,0.7\n\tc1.2,0.4,2.3,1,3.4,1.8c1.7,1.4,2.8,3.5,2.8,5.8c0,1.1-0.2,2.2-0.6,3.1c-0.5,1-1.3,1.9-2.3,2.4c-1.4,0.8-2.9,1.3-4.4,1.6\n\tc-2.3,0.4-4.7,0.6-7,0.6c-0.7,0-1.3,0-1.9,0s-1.2,0-1.9-0.1c0.2,1.6,1.1,3.1,2.5,4.1c1.7,1.1,3.8,1.7,5.8,1.5c0.8,0,1.6-0.1,2.4-0.2\n\tc0.7-0.1,1.3-0.3,1.9-0.5c0.5-0.2,1-0.4,1.5-0.6l0.9-0.4L188.9,317.8z M171.5,306.1c0.8,0,1.5,0,2.2,0h2.1c1.5,0,3-0.1,4.4-0.4\n\tc0.9-0.2,1.8-0.5,2.6-0.9c0.5-0.3,1-0.7,1.2-1.2c0.2-0.5,0.3-0.9,0.3-1.4c0.1-1.1-0.5-2.2-1.5-2.8c-1.1-0.7-2.4-1-3.8-0.9\n\tc-1.1,0-2.2,0.2-3.2,0.6c-0.9,0.4-1.7,1-2.3,1.7c-0.6,0.7-1.1,1.6-1.5,2.5C171.8,304.1,171.6,305.1,171.5,306.1L171.5,306.1z\"\n    />\n    <path\n      class=\"st1\"\n      d=\"M192.3,64.5c-2.8,0.1-5.4-1-7.4-3c-4.1-4.1-4.1-10.6,0-14.7c4.1-4,10.7-4,14.8,0c4.1,4.1,4.1,10.6,0,14.7\n\tC197.7,63.5,195.1,64.6,192.3,64.5z\"\n    />\n    <path\n      class=\"st0\"\n      d=\"M192.3,45.5c2.3-0.1,4.6,0.9,6.2,2.5c3.4,3.4,3.4,8.9,0,12.3c-3.5,3.3-9,3.3-12.5,0c-3.4-3.4-3.4-8.9,0-12.3\n\tC187.7,46.4,190,45.5,192.3,45.5 M192.3,42.2c-3.2-0.1-6.3,1.2-8.6,3.5c-4.7,4.7-4.7,12.3,0,17.1c4.8,4.6,12.4,4.6,17.1,0\n\tc4.7-4.7,4.7-12.3,0-17.1C198.6,43.4,195.5,42.1,192.3,42.2L192.3,42.2z\"\n    />\n    <path\n      class=\"st1\"\n      d=\"M192.3,138.1c-4.9,0-8.9-4-8.9-8.9V79.4c0-4.9,4-8.9,8.9-8.9s8.9,4,8.9,8.9v49.8\n\tC201.2,134.1,197.2,138.1,192.3,138.1z\"\n    />\n    <path\n      class=\"st0\"\n      d=\"M192.3,72.1c4,0,7.2,3.2,7.2,7.2v49.8c0,4-3.2,7.2-7.2,7.2s-7.2-3.2-7.2-7.2V79.4\n\tC185.1,75.4,188.3,72.1,192.3,72.1 M192.3,68.8c-5.8,0-10.6,4.7-10.6,10.6v49.8c0,5.8,4.7,10.6,10.6,10.6c5.8,0,10.6-4.7,10.6-10.6\n\tV79.4C202.9,73.6,198.1,68.8,192.3,68.8z\"\n    />\n    <path\n      class=\"st5\"\n      d=\"M62.8,137.5c-19.3,0-34.9-15.6-34.9-34.9c0-4.6,3.7-8.3,8.3-8.3s8.3,3.7,8.3,8.3c0,10.2,8.2,18.4,18.4,18.4\n\tc10.2,0,18.4-8.2,18.4-18.4c0-10.2-8.2-18.4-18.4-18.4c0,0,0,0,0,0c-4.6,0-8.3-3.7-8.3-8.3c0-4.6,3.7-8.3,8.3-8.3\n\tc6.3,0,12.5,1.7,17.9,5V43.5c0-4.6,3.7-8.3,8.3-8.3c4.6,0,8.3,3.7,8.3,8.3v52.8c0,0.2,0,0.4,0,0.6c0.3,1.9,0.5,3.8,0.5,5.7\n\tC97.7,121.9,82.1,137.5,62.8,137.5z\"\n    />\n    <path\n      class=\"st0\"\n      d=\"M89,36.7c3.8,0,6.8,3,6.8,6.8v52.8c0,0.2,0,0.4,0,0.6c2.9,18.2-9.6,35.4-27.8,38.2s-35.4-9.6-38.2-27.8\n\tc-0.2-1.6-0.4-3.2-0.4-4.7c0-3.8,3.1-6.8,6.8-6.8c3.8,0,6.8,3.1,6.8,6.8c0,10.9,8.9,19.8,19.8,19.8s19.8-8.9,19.8-19.8\n\ts-8.9-19.8-19.8-19.8c0,0,0,0,0,0c-3.8,0-6.8-3.1-6.8-6.8c0-3.8,3.1-6.8,6.8-6.8c6.9,0,13.7,2.2,19.4,6.2V43.5\n\tC82.1,39.8,85.2,36.7,89,36.7 M88.9,33.9c-5.3,0-9.6,4.4-9.6,9.7v26.8c-5.1-2.6-10.7-4-16.5-4c-5.4-0.2-9.8,4-10,9.4\n\tc-0.2,5.4,4,9.8,9.4,10c0.2,0,0.4,0,0.6,0c9.4,0,16.9,7.6,16.9,16.9c0,9.4-7.6,16.9-16.9,16.9s-16.9-7.6-16.9-16.9l0,0\n\tc0-5.4-4.3-9.7-9.7-9.7c-5.4,0-9.7,4.3-9.7,9.7c-0.1,20.1,16.2,36.4,36.2,36.5s36.4-16.2,36.5-36.2c0-2-0.2-4-0.5-6\n\tc0-0.2,0-0.3,0-0.5V43.5C98.7,38.2,94.3,33.9,88.9,33.9L88.9,33.9z\"\n    />\n    <path\n      class=\"st1\"\n      d=\"M35.8,91.4c-2.8,0-5.1-2.3-5.1-5.1v-6.2c0-5.5,4.4-9.9,9.9-9.9h6.5c2.8,0,5.1,2.3,5.1,5.1\n\tc0,2.8-2.3,5.1-5.1,5.1c0,0,0,0,0,0h-6.2v5.9C40.9,89.1,38.6,91.4,35.8,91.4z\"\n    />\n    <path\n      class=\"st1\"\n      d=\"M141.6,137.8c-4.2,0-8.4-0.3-12.6-1c-3.3-0.6-6.6-1.4-9.8-2.4c-2.3-0.7-4.6-1.6-6.8-2.6\n\tc-1.1-0.5-2.1-1.1-3.1-1.7c-3.5-1.8-4.9-6.1-3.1-9.7c1.2-2.4,3.7-3.9,6.4-3.9c1,0,2.1,0.2,3,0.7c0.2,0,0.4,0.1,0.5,0.2\n\tc0.9,0.6,1.9,1.1,2.9,1.4c1.8,0.8,3.6,1.4,5.4,2c2.4,0.7,4.9,1.3,7.4,1.8c3,0.5,6,0.7,9,0.7c3.4,0.1,6.8-0.4,10.1-1.6\n\tc2.1-0.9,3.1-2.2,3.1-4.2c0.1-1.6-0.6-3-1.9-3.9c-1-0.7-3.4-1.7-8.7-2.3l-9.8-1.1c-3.2-0.3-6.4-0.9-9.5-1.9\n\tc-2.8-0.8-5.4-2.1-7.7-3.8c-2.2-1.6-4-3.7-5.2-6.1c-1.3-2.7-2-5.7-1.9-8.7c0-2.8,0.6-5.6,1.7-8.2c1.2-2.7,3.1-5.1,5.4-6.9\n\tc2.8-2.1,6-3.7,9.4-4.6c4.5-1.2,9.1-1.7,13.7-1.6c8.9,0,15.9,1,20.9,3c1,0.4,2,0.9,3,1.4c3.6,1.6,5.3,5.9,3.6,9.5\n\tc-1.6,3.6-5.9,5.3-9.5,3.7c-0.7-0.3-1.5-0.6-2.3-0.9c-5-1.8-10.3-2.7-15.7-2.6c-8.6,0-12.9,2-12.9,5.9c-0.1,1.5,0.7,2.8,2,3.5\n\tc2.3,1.2,4.7,1.9,7.2,2.1l12.8,1.6c7.2,0.9,12.9,3,17,6c4.3,3.2,6.4,7.9,6.4,14c0.2,6.4-2.9,12.5-8.1,16.3\n\tC158.9,135.8,151.3,137.8,141.6,137.8z\"\n    />\n    <path\n      class=\"st0\"\n      d=\"M139.6,70.2c8.7,0,15.5,1,20.3,2.9c1,0.4,1.9,0.8,2.8,1.3c2.9,1,4.4,4.2,3.3,7.1c-1,2.9-4.2,4.4-7.1,3.3\n\tc-0.2-0.1-0.4-0.2-0.6-0.3c-0.7-0.3-1.5-0.7-2.4-1c-2.3-0.8-4.6-1.4-6.9-1.9c-3.1-0.6-6.2-0.8-9.3-0.8c-9.7,0-14.6,2.5-14.6,7.6\n\tc-0.1,2,1,3.9,2.8,4.9c2.5,1.3,5.1,2.1,7.9,2.3l12.8,1.6c6.9,0.9,12.3,2.8,16.2,5.7s5.8,7.1,5.8,12.6c0.2,5.9-2.7,11.6-7.5,15\n\tc-5,3.7-12.2,5.6-21.6,5.6c-4.1,0-8.2-0.3-12.3-1c-3.3-0.6-6.5-1.3-9.6-2.3c-2.3-0.7-4.5-1.5-6.6-2.6c-1-0.5-2-1-3-1.6\n\tc-2.7-1.4-3.7-4.7-2.3-7.4c1.4-2.7,4.7-3.7,7.4-2.3l0,0c1,0.6,2,1.2,3.1,1.6c1.8,0.8,3.7,1.5,5.6,2.1c2.5,0.8,5,1.4,7.6,1.8\n\tc3.1,0.5,6.2,0.8,9.3,0.8c3.6,0.1,7.3-0.5,10.7-1.7c2.8-1.1,4.1-3,4.1-5.8c0.1-2.1-0.9-4.1-2.6-5.3c-1.8-1.2-4.9-2.1-9.4-2.6\n\tl-9.8-1.1c-3.1-0.3-6.2-0.9-9.2-1.8c-2.6-0.8-5-2-7.2-3.5c-2-1.5-3.6-3.4-4.7-5.5c-1.2-2.5-1.8-5.2-1.7-7.9c0-2.6,0.5-5.2,1.6-7.5\n\tc1.1-2.5,2.9-4.6,5-6.3c2.6-2,5.6-3.5,8.9-4.3C130.6,70.7,135.1,70.1,139.6,70.2 M139.5,66.9c-4.8-0.1-9.5,0.4-14.1,1.6\n\tc-3.6,1-7,2.6-10,4.9c-2.5,2-4.6,4.6-5.9,7.5c-1.2,2.8-1.9,5.8-1.9,8.9c-0.1,3.3,0.6,6.5,2.1,9.4c1.4,2.6,3.3,4.9,5.7,6.7\n\tc2.5,1.8,5.3,3.1,8.2,4c3.2,1,6.5,1.6,9.9,1.9l9.8,1.1c5.2,0.6,7.2,1.5,7.9,2c0.8,0.6,1.3,1.5,1.2,2.5c0,1.1-0.3,2-2.1,2.7\n\tc-3,1.1-6.2,1.5-9.4,1.4c-2.9,0-5.8-0.2-8.7-0.7c-2.4-0.4-4.8-1-7.2-1.7c-1.8-0.5-3.5-1.2-5.3-1.9c-0.9-0.4-1.7-0.8-2.6-1.3\n\tc-0.3-0.2-0.6-0.4-1-0.5c-1.1-0.5-2.3-0.8-3.6-0.8c-4.9-0.1-8.9,3.7-9.1,8.6c-0.1,3.4,1.8,6.6,4.8,8.1c1,0.7,2.1,1.3,3.2,1.8\n\tc2.3,1.1,4.6,2,7.1,2.7c3.3,1,6.6,1.8,10,2.4c4.3,0.7,8.6,1,12.9,1c10.1,0,18-2.1,23.5-6.3c5.7-4,9-10.6,8.8-17.6\n\tc0-6.6-2.4-11.8-7.1-15.3c-4.3-3.2-10.3-5.3-17.8-6.3l-12.8-1.6c-2.3-0.2-4.5-0.8-6.6-1.8c-0.8-0.4-1.2-1.2-1.2-2.1\n\tc0-3.5,6.1-4.3,11.2-4.3c2.9,0,5.8,0.2,8.6,0.7c2.2,0.4,4.3,1,6.4,1.7c0.8,0.3,1.5,0.6,2.1,0.9c4.5,1.9,9.7-0.3,11.6-4.8\n\tc1.8-4.3-0.1-9.3-4.3-11.4c-1-0.6-2-1-3.1-1.5C155.8,67.9,148.7,66.9,139.5,66.9L139.5,66.9z\"\n    />\n    <path\n      class=\"st1\"\n      d=\"M38.3,166.3c-0.1-0.7,0.2-1.3,0.7-1.8c0.6-0.4,1.3-0.6,2-0.6c0.5,0,1,0.1,1.5,0.2c0.4,0.1,0.7,0.2,0.9,0.3v20.2\n\tc0,1.9-0.3,3.9-0.9,5.7c-0.5,1.5-1.4,2.9-2.5,4c-1.1,1.1-2.4,1.9-3.8,2.4c-1.5,0.6-3.2,0.9-4.8,0.9c-1.7,0-3.3-0.3-4.8-0.9\n\tc-1.4-0.6-2.7-1.4-3.8-2.5c-1.1-1.1-1.9-2.3-2.5-3.8c-0.6-1.5-0.9-3.1-0.9-4.7c0-1.6,0.3-3.3,0.9-4.8c0.6-1.4,1.4-2.7,2.4-3.8\n\tc1-1.1,2.3-1.9,3.6-2.5c1.4-0.6,3-0.9,4.5-0.9c1.6,0,3.1,0.3,4.6,1c1.2,0.6,2.3,1.4,3.1,2.4V166.3z M38.3,185.6c0-1-0.2-2-0.5-2.9\n\tc-0.3-0.9-0.8-1.6-1.4-2.3c-0.6-0.7-1.3-1.2-2.2-1.5c-1.8-0.7-3.8-0.7-5.6,0c-0.8,0.4-1.6,0.9-2.2,1.5c-0.6,0.7-1.1,1.5-1.4,2.3\n\tc-0.3,0.9-0.5,1.9-0.5,2.9c0,1,0.2,2,0.5,2.9c0.3,0.8,0.8,1.6,1.4,2.3c1.3,1.4,3.1,2.1,5,2.1c1,0,1.9-0.2,2.8-0.5\n\tc0.8-0.3,1.6-0.8,2.2-1.5c0.6-0.7,1.1-1.4,1.4-2.3C38.1,187.6,38.3,186.6,38.3,185.6z\"\n    />\n    <path\n      class=\"st1\"\n      d=\"M59.5,173.8c1.7,0,3.3,0.3,4.9,0.9c1.5,0.6,2.8,1.4,3.9,2.5c1.1,1.1,2,2.3,2.6,3.8c0.6,1.5,1,3.1,0.9,4.7\n\tc0,1.6-0.3,3.2-0.9,4.7c-0.6,1.4-1.5,2.7-2.6,3.8c-1.1,1.1-2.5,1.9-3.9,2.5c-3.1,1.2-6.6,1.2-9.7,0c-1.5-0.6-2.8-1.4-3.9-2.5\n\tc-1.1-1.1-2-2.3-2.6-3.8c-0.6-1.5-0.9-3.1-0.9-4.7c0-1.6,0.3-3.2,0.9-4.7c0.6-1.4,1.5-2.7,2.6-3.8c1.1-1.1,2.5-1.9,3.9-2.5\n\tC56.1,174,57.8,173.7,59.5,173.8z M59.5,193c1,0,1.9-0.2,2.8-0.6c0.8-0.4,1.6-0.9,2.2-1.6c0.6-0.7,1.1-1.5,1.4-2.3\n\tc0.3-0.9,0.5-1.9,0.5-2.9c0-1-0.2-2-0.5-2.9c-0.3-0.9-0.8-1.7-1.4-2.4c-0.6-0.7-1.4-1.2-2.2-1.5c-0.9-0.4-1.9-0.6-2.8-0.6\n\tc-1,0-1.9,0.2-2.8,0.6c-0.8,0.4-1.6,0.9-2.2,1.5c-0.6,0.7-1.1,1.5-1.4,2.4c-0.3,0.9-0.5,1.9-0.5,2.9c0,1,0.2,2,0.5,2.9\n\tc0.3,0.9,0.8,1.6,1.4,2.3c0.6,0.7,1.4,1.2,2.2,1.6C57.5,192.8,58.5,193,59.5,193L59.5,193z\"\n    />\n    <path\n      class=\"st1\"\n      d=\"M76.1,182.4c0-1.3,0.2-2.6,0.8-3.8c0.5-1,1.2-2,2.1-2.7c0.9-0.7,2-1.3,3.1-1.6c1.3-0.4,2.6-0.6,3.9-0.6\n\tc1.7,0,3.4,0.3,5,1c1.4,0.6,2.6,1.7,3.5,3c0.8-1.3,2-2.3,3.4-3c1.5-0.7,3.2-1,4.9-1c1.3,0,2.6,0.2,3.8,0.5c1.1,0.3,2.2,0.9,3.1,1.6\n\tc0.9,0.7,1.6,1.7,2.1,2.7c0.5,1.2,0.8,2.5,0.8,3.8v14.5h-5.1v-12.8c0-2-0.5-3.5-1.4-4.4c-1-0.9-2.4-1.4-3.8-1.3\n\tc-1.4,0-2.8,0.5-3.8,1.5c-1,1-1.6,2.6-1.6,4.8v12.2h-5.1v-12.2c0-2.2-0.5-3.8-1.5-4.8c-1-1-2.4-1.5-3.8-1.5\n\tc-1.4-0.1-2.7,0.4-3.8,1.3c-1,0.9-1.4,2.4-1.4,4.4v12.7h-5.1L76.1,182.4z\"\n    />\n    <path\n      class=\"st1\"\n      d=\"M117.6,176.8c-0.1-0.7,0.2-1.4,0.7-1.8c0.6-0.4,1.3-0.6,2-0.6c0.5,0,1,0.1,1.5,0.2l0.9,0.3v11.8\n\tc-0.1,1.7,0.4,3.3,1.4,4.6c2.5,2.1,6.2,2.1,8.8,0c1-1.3,1.5-3,1.4-4.6v-9.9c-0.1-0.7,0.2-1.4,0.7-1.8c0.6-0.4,1.3-0.6,2-0.6\n\tc0.5,0,1,0.1,1.5,0.2l0.9,0.3v12.9c0,1.4-0.2,2.8-0.8,4.1c-0.5,1.2-1.3,2.2-2.2,3.1c-1,0.9-2.2,1.5-3.5,1.9c-2.9,0.9-6,0.9-8.9,0\n\tc-1.3-0.4-2.4-1-3.4-1.9c-1-0.8-1.7-1.9-2.2-3.1c-0.6-1.3-0.8-2.7-0.8-4.1L117.6,176.8z\"\n    />\n    <path\n      class=\"st5\"\n      d=\"M144.7,183.3c0-1.4,0.3-2.7,0.8-4c0.5-1.2,1.3-2.2,2.3-3c1-0.9,2.2-1.5,3.4-1.9c1.4-0.4,2.9-0.7,4.4-0.6\n\tc1.5,0,3,0.2,4.4,0.6c1.3,0.4,2.5,1,3.5,1.9c1,0.8,1.7,1.8,2.3,3c0.5,1.3,0.8,2.6,0.8,4v13.6h-5.1v-12.3c0.1-1.7-0.4-3.3-1.5-4.6\n\tc-2.5-2.1-6.2-2.1-8.7,0c-1.1,1.3-1.6,3-1.5,4.6v12.3h-5.1L144.7,183.3z\"\n    />\n    <path\n      class=\"st5\"\n      d=\"M191.7,195.2c-0.2,0.1-0.6,0.4-1.1,0.6c-0.6,0.3-1.3,0.6-1.9,0.8c-0.9,0.3-1.7,0.5-2.6,0.6\n\tc-1.1,0.2-2.2,0.3-3.3,0.3c-1.6,0-3.2-0.2-4.7-0.8c-1.4-0.5-2.7-1.3-3.8-2.3c-1.1-1-2-2.3-2.6-3.7c-0.7-1.6-1-3.3-0.9-5\n\tc0-1.7,0.3-3.3,0.9-4.9c0.6-1.4,1.4-2.7,2.6-3.8c1.1-1.1,2.4-1.9,3.9-2.5c1.5-0.6,3.2-0.9,4.9-0.9c1.4,0,2.8,0.2,4.1,0.6\n\tc1.1,0.4,2.1,0.9,3,1.6c0.8,0.6,1.4,1.4,1.9,2.4c0.4,0.9,0.6,1.9,0.6,2.9c0,1-0.2,2-0.6,2.9c-0.5,0.9-1.2,1.7-2.1,2.2\n\tc-1.2,0.7-2.6,1.2-4,1.4c-2.1,0.4-4.2,0.6-6.4,0.5c-0.6,0-1.2,0-1.7,0l-1.7-0.1c0.2,1.5,1,2.8,2.2,3.7c1.6,1,3.4,1.5,5.3,1.4\n\tc1.3,0,2.7-0.2,3.9-0.6c0.5-0.2,0.9-0.3,1.4-0.5l0.8-0.4L191.7,195.2z M176,184.6c0.7,0,1.3,0,2,0h1.9c1.3,0,2.7-0.1,4-0.3\n\tc0.8-0.1,1.6-0.4,2.4-0.8c0.5-0.2,0.9-0.6,1.1-1.1c0.2-0.4,0.3-0.8,0.3-1.3c0-1-0.5-2-1.4-2.5c-1-0.6-2.2-0.9-3.4-0.9\n\tc-1,0-2,0.2-2.9,0.6c-0.8,0.4-1.5,0.9-2.1,1.5c-0.6,0.7-1,1.4-1.3,2.2C176.3,182.9,176.1,183.7,176,184.6L176,184.6z\"\n    />\n    <path\n      class=\"st5\"\n      d=\"M207.8,173.8c1.7,0,3.3,0.3,4.9,0.9c1.5,0.6,2.8,1.4,3.9,2.5c1.1,1.1,2,2.3,2.6,3.8c0.6,1.5,1,3.1,0.9,4.7\n\tc0,1.6-0.3,3.2-0.9,4.7c-0.6,1.4-1.5,2.7-2.6,3.8c-1.1,1.1-2.5,1.9-3.9,2.5c-3.1,1.2-6.6,1.2-9.7,0c-1.5-0.6-2.8-1.4-3.9-2.5\n\tc-1.1-1.1-2-2.3-2.6-3.8c-0.6-1.5-0.9-3.1-0.9-4.7c0-1.6,0.3-3.2,0.9-4.7c0.6-1.4,1.5-2.7,2.6-3.8c1.1-1.1,2.5-1.9,3.9-2.5\n\tC204.5,174.1,206.1,173.8,207.8,173.8z M207.8,193c1,0,1.9-0.2,2.8-0.6c0.8-0.4,1.6-0.9,2.2-1.6c0.6-0.7,1.1-1.5,1.5-2.3\n\tc0.4-0.9,0.5-1.9,0.5-2.9c0-1-0.2-2-0.5-2.9c-0.3-0.9-0.8-1.7-1.4-2.4c-0.6-0.7-1.4-1.2-2.2-1.5c-0.9-0.4-1.9-0.6-2.8-0.6\n\tc-1,0-1.9,0.2-2.8,0.6c-0.8,0.4-1.6,0.9-2.2,1.5c-0.6,0.7-1.1,1.5-1.4,2.4c-0.3,0.9-0.5,1.9-0.5,2.9c0,1,0.1,2,0.4,2.9\n\tc0.3,0.9,0.8,1.6,1.4,2.3c0.6,0.7,1.4,1.2,2.2,1.6C205.8,192.8,206.8,193,207.8,193L207.8,193z\"\n    />\n  </svg>\n</template>\n\n<script>\nexport default {\n  name: \"DsiLogo\",\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.st0 {\n  fill: #2e2d2c;\n}\n\n.st1 {\n  fill: #ffffff;\n}\n\n.st2 {\n  clip-path: url(#SVGID_2_);\n}\n\n.st3 {\n  opacity: 0.33;\n  fill: url(#SVGID_3_);\n  enable-background: new;\n}\n\n.st4 {\n  fill: none;\n}\n\n.st5 {\n  fill: #f39205;\n}\n</style>\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DSILogo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DSILogo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DSILogo.vue?vue&type=template&id=4891b081&scoped=true&\"\nimport script from \"./DSILogo.vue?vue&type=script&lang=js&\"\nexport * from \"./DSILogo.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DSILogo.vue?vue&type=style&index=0&id=4891b081&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"4891b081\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('svg',{attrs:{\"version\":\"1.1\",\"viewBox\":\"0 0 81.940002 79.639999\",\"x\":\"0px\",\"xml:space\":\"preserve\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"y\":\"0px\"}},[_c('g',{attrs:{\"id\":\"g67\",\"transform\":\"translate(-68.91,-32.3)\"}},[_c('path',{staticClass:\"background\",attrs:{\"id\":\"path53\",\"d\":\"m 103.03,103.77 c -1.04,0 -1.88,-0.84 -1.88,-1.88 v -3.1 c 0,-1.04 0.84,-1.88 1.88,-1.88 h 15.04 c 1.04,0 1.88,0.84 1.88,1.88 v 3.1 c 0,1.04 -0.84,1.88 -1.88,1.88 h -15.04 m 0,-9.92 c -1.04,0 -1.88,-0.84 -1.88,-1.88 v -3.1 c 0,-1.04 0.84,-1.88 1.88,-1.88 h 15.04 c 1.04,0 1.88,0.84 1.88,1.88 v 3.1 c 0,1.04 -0.84,1.88 -1.88,1.88 h -15.04 m 0,-9.93 c -1.04,0 -1.88,-0.84 -1.88,-1.88 v -3.1 c 0,-1.04 0.84,-1.88 1.88,-1.88 h 15.04 c 1.04,0 1.88,0.84 1.88,1.88 v 3.1 c 0,1.04 -0.84,1.88 -1.88,1.88 h -15.04 m 0,-9.92 c -1.04,0 -1.88,-0.84 -1.88,-1.88 v -3.1 c 0,-1.04 0.84,-1.88 1.88,-1.88 h 15.04 c 1.04,0 1.88,0.84 1.88,1.88 v 3.1 c 0,1.04 -0.84,1.88 -1.88,1.88 H 103.03 M 121.21,63.99 H 99.9 c -0.43,0 -0.78,0.35 -0.78,0.78 V 106 c 0,0.43 0.35,0.78 0.78,0.78 h 21.31 c 0.43,0 0.78,-0.35 0.78,-0.78 V 64.78 c 0,-0.44 -0.35,-0.79 -0.78,-0.79 m -21.58,44.69 c -1.33,0 -2.42,-1.08 -2.42,-2.42 V 63.99 c 0,-1.34 1.08,-2.41 2.42,-2.41 h 5.86 c 0,0 0.17,-3.78 2.24,-3.78 h 5.67 c 0,0 2,0.36 2,3.78 h 6.09 c 1.33,0 2.42,1.07 2.42,2.41 v 42.26 c 0,1.34 -1.08,2.42 -2.42,2.42 H 99.63 m -5.45,-17.5 c -3.64,0 -5.71,-2.93 -6.56,-5.1 -8.6,-0.46 -15.45,-7.59 -15.45,-16.29 0,-3.72 1.29,-7.37 3.65,-10.27 2.1,-2.59 4.96,-4.48 8.14,-5.4 v -0.18 c 0,-9.81 7.99,-17.8 17.81,-17.8 5.61,0 10.82,2.61 14.19,7.04 1.93,-0.98 4.07,-1.49 6.27,-1.49 3.64,0 7.09,1.41 9.7,3.96 2.35,2.29 3.78,5.28 4.11,8.5 6.34,1.35 11,7.01 11,13.58 0,7.23 -5.56,13.19 -12.64,13.83 -0.13,1.09 -0.53,2.64 -1.65,3.93 -1.17,1.34 -2.82,2.08 -4.91,2.22 -0.03,0 -0.06,0 -0.08,0 -0.25,0 -0.48,-0.07 -0.68,-0.19 v -2.23 c 0.17,-0.11 0.38,-0.17 0.59,-0.19 4.33,-0.28 4.2,-4.25 4.17,-4.71 l -0.08,-1.38 1.39,-0.01 c 6.22,0 11.27,-5.06 11.27,-11.27 0,-5.63 -4.21,-10.44 -9.8,-11.18 l -1.1,-0.15 -0.03,-1.11 c -0.07,-2.95 -1.28,-5.71 -3.4,-7.78 -2.12,-2.07 -4.92,-3.21 -7.87,-3.21 -2.12,0 -4.19,0.59 -5.96,1.7 l -1.08,0.68 -0.7,-1.07 c -2.82,-4.3 -7.57,-6.86 -12.71,-6.86 -8.38,0 -15.2,6.81 -15.2,15.19 0,0.35 0.01,0.7 0.05,1.08 l 0.09,1.14 -1.12,0.24 c -6.26,1.35 -10.81,6.98 -10.81,13.39 0,7.56 6.16,13.71 13.72,13.71 h 1.1 l 0.25,0.99 c 0.04,0.17 1.1,4.09 4.35,4.09 0.07,0 0.15,0 0.22,-0.01 0.02,0 0.05,0 0.07,0 0.12,0 0.25,0.02 0.36,0.05 v 2.51 c -0.09,0.03 -0.19,0.04 -0.29,0.05 -0.13,0 -0.26,0 -0.38,0 m 7.87,-58.87 c -10.99,0 -20.06,8.33 -21.23,19 -2.89,1.27 -5.49,3.24 -7.47,5.69 -2.86,3.53 -4.44,7.97 -4.44,12.5 0,9.84 7.18,18.08 16.69,19.61 1.64,2.72 4.44,5.12 8.35,5.31 v 11.56 c 0,3.29 2.67,5.97 5.96,5.97 h 21.85 c 3.29,0 5.96,-2.68 5.96,-5.97 V 90.94 c 0.11,0.01 0.21,0.02 0.32,0.02 h 0.2 l 0.11,-0.01 c 3.03,-0.19 5.57,-1.38 7.35,-3.43 0.88,-1.02 1.47,-2.12 1.85,-3.16 7.64,-1.88 13.3,-8.87 13.3,-16.93 0,-7.34 -4.69,-13.88 -11.44,-16.37 -0.78,-3.11 -2.41,-5.98 -4.74,-8.25 -3.28,-3.2 -7.6,-4.97 -12.17,-4.97 -1.78,0 -3.56,0.28 -5.25,0.81 -3.98,-4.06 -9.39,-6.35 -15.2,-6.35\"}}),_c('path',{staticClass:\"primary\",attrs:{\"id\":\"path55\",\"d\":\"m 118.06,86.98 h -15.04 c -1.04,0 -1.88,0.84 -1.88,1.88 v 3.1 c 0,1.04 0.84,1.88 1.88,1.88 h 15.04 c 1.04,0 1.88,-0.84 1.88,-1.88 v -3.1 c 0.01,-1.04 -0.84,-1.88 -1.88,-1.88\"}}),_c('path',{staticClass:\"primary\",attrs:{\"id\":\"path57\",\"d\":\"m 118.06,96.9 h -15.04 c -1.04,0 -1.88,0.84 -1.88,1.88 v 3.1 c 0,1.04 0.84,1.88 1.88,1.88 h 15.04 c 1.04,0 1.88,-0.84 1.88,-1.88 v -3.1 c 0.01,-1.04 -0.84,-1.88 -1.88,-1.88\"}}),_c('path',{staticClass:\"primary\",attrs:{\"id\":\"path59\",\"d\":\"m 118.06,77.05 h -15.04 c -1.04,0 -1.88,0.84 -1.88,1.88 v 3.1 c 0,1.04 0.84,1.88 1.88,1.88 h 15.04 c 1.04,0 1.88,-0.84 1.88,-1.88 v -3.1 c 0.01,-1.03 -0.84,-1.88 -1.88,-1.88\"}}),_c('path',{staticClass:\"primary\",attrs:{\"id\":\"path61\",\"d\":\"m 99.9,106.78 c -0.43,0 -0.78,-0.35 -0.78,-0.78 V 64.78 C 99.12,64.35 99.47,64 99.9,64 h 21.31 c 0.43,0 0.78,0.35 0.78,0.78 V 106 c 0,0.43 -0.35,0.78 -0.78,0.78 H 99.9 M 113.4,57.8 h -5.67 c -2.07,0 -2.24,3.78 -2.24,3.78 h -5.86 c -1.33,0 -2.42,1.07 -2.42,2.41 v 42.26 c 0,1.34 1.08,2.42 2.42,2.42 h 21.85 c 1.33,0 2.42,-1.08 2.42,-2.42 V 63.99 c 0,-1.34 -1.08,-2.41 -2.42,-2.41 h -6.09 C 115.4,58.16 113.4,57.8 113.4,57.8\"}}),_c('path',{staticClass:\"primary\",attrs:{\"id\":\"path63\",\"d\":\"m 118.06,67.13 h -15.04 c -1.04,0 -1.88,0.84 -1.88,1.88 v 3.1 c 0,1.04 0.84,1.88 1.88,1.88 h 15.04 c 1.04,0 1.88,-0.84 1.88,-1.88 v -3.1 c 0.01,-1.04 -0.84,-1.88 -1.88,-1.88\"}}),_c('path',{staticClass:\"primary\",attrs:{\"id\":\"path65\",\"d\":\"m 101.77,36.12 c -9.82,0 -17.81,7.98 -17.81,17.8 v 0.18 c -3.18,0.92 -6.04,2.81 -8.14,5.4 -2.35,2.9 -3.65,6.55 -3.65,10.27 0,8.7 6.85,15.83 15.45,16.29 0.84,2.18 2.92,5.1 6.56,5.1 0.12,0 0.25,0 0.38,-0.01 0.1,-0.01 0.2,-0.02 0.29,-0.05 v -2.5 c -0.12,-0.03 -0.24,-0.05 -0.36,-0.05 -0.02,0 -0.05,0 -0.07,0 -0.08,0 -0.15,0.01 -0.22,0.01 -3.25,0 -4.3,-3.92 -4.35,-4.09 L 89.6,83.48 h -1.1 c -7.57,0 -13.72,-6.15 -13.72,-13.71 0,-6.41 4.54,-12.04 10.81,-13.39 L 86.71,56.14 86.61,55 c -0.03,-0.38 -0.05,-0.73 -0.05,-1.08 0,-8.37 6.82,-15.19 15.2,-15.19 5.14,0 9.89,2.56 12.71,6.86 l 0.7,1.07 1.08,-0.68 c 1.78,-1.11 3.84,-1.7 5.96,-1.7 2.96,0 5.75,1.14 7.87,3.21 2.12,2.07 3.32,4.83 3.4,7.78 l 0.03,1.11 1.1,0.15 c 5.59,0.74 9.8,5.55 9.8,11.18 0,6.22 -5.06,11.27 -11.27,11.27 l -1.38,0.02 0.09,1.39 c 0.03,0.45 0.16,4.43 -4.17,4.71 -0.22,0.01 -0.42,0.08 -0.59,0.19 v 2.23 c 0.2,0.12 0.43,0.19 0.68,0.19 0.03,0 0.06,0 0.08,0 2.09,-0.13 3.74,-0.88 4.91,-2.22 1.12,-1.29 1.52,-2.85 1.65,-3.93 7.07,-0.63 12.64,-6.59 12.64,-13.83 0,-6.57 -4.66,-12.23 -11,-13.58 -0.33,-3.22 -1.77,-6.21 -4.11,-8.5 -2.61,-2.55 -6.06,-3.96 -9.7,-3.96 -2.2,0 -4.34,0.51 -6.27,1.49 -3.38,-4.45 -8.59,-7.06 -14.2,-7.06\"}})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <svg\n    version=\"1.1\"\n    viewBox=\"0 0 81.940002 79.639999\"\n    x=\"0px\"\n    xml:space=\"preserve\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    y=\"0px\"\n  >\n    <g id=\"g67\" transform=\"translate(-68.91,-32.3)\">\n      <path\n        id=\"path53\"\n        class=\"background\"\n        d=\"m 103.03,103.77 c -1.04,0 -1.88,-0.84 -1.88,-1.88 v -3.1 c 0,-1.04 0.84,-1.88 1.88,-1.88 h 15.04 c 1.04,0 1.88,0.84 1.88,1.88 v 3.1 c 0,1.04 -0.84,1.88 -1.88,1.88 h -15.04 m 0,-9.92 c -1.04,0 -1.88,-0.84 -1.88,-1.88 v -3.1 c 0,-1.04 0.84,-1.88 1.88,-1.88 h 15.04 c 1.04,0 1.88,0.84 1.88,1.88 v 3.1 c 0,1.04 -0.84,1.88 -1.88,1.88 h -15.04 m 0,-9.93 c -1.04,0 -1.88,-0.84 -1.88,-1.88 v -3.1 c 0,-1.04 0.84,-1.88 1.88,-1.88 h 15.04 c 1.04,0 1.88,0.84 1.88,1.88 v 3.1 c 0,1.04 -0.84,1.88 -1.88,1.88 h -15.04 m 0,-9.92 c -1.04,0 -1.88,-0.84 -1.88,-1.88 v -3.1 c 0,-1.04 0.84,-1.88 1.88,-1.88 h 15.04 c 1.04,0 1.88,0.84 1.88,1.88 v 3.1 c 0,1.04 -0.84,1.88 -1.88,1.88 H 103.03 M 121.21,63.99 H 99.9 c -0.43,0 -0.78,0.35 -0.78,0.78 V 106 c 0,0.43 0.35,0.78 0.78,0.78 h 21.31 c 0.43,0 0.78,-0.35 0.78,-0.78 V 64.78 c 0,-0.44 -0.35,-0.79 -0.78,-0.79 m -21.58,44.69 c -1.33,0 -2.42,-1.08 -2.42,-2.42 V 63.99 c 0,-1.34 1.08,-2.41 2.42,-2.41 h 5.86 c 0,0 0.17,-3.78 2.24,-3.78 h 5.67 c 0,0 2,0.36 2,3.78 h 6.09 c 1.33,0 2.42,1.07 2.42,2.41 v 42.26 c 0,1.34 -1.08,2.42 -2.42,2.42 H 99.63 m -5.45,-17.5 c -3.64,0 -5.71,-2.93 -6.56,-5.1 -8.6,-0.46 -15.45,-7.59 -15.45,-16.29 0,-3.72 1.29,-7.37 3.65,-10.27 2.1,-2.59 4.96,-4.48 8.14,-5.4 v -0.18 c 0,-9.81 7.99,-17.8 17.81,-17.8 5.61,0 10.82,2.61 14.19,7.04 1.93,-0.98 4.07,-1.49 6.27,-1.49 3.64,0 7.09,1.41 9.7,3.96 2.35,2.29 3.78,5.28 4.11,8.5 6.34,1.35 11,7.01 11,13.58 0,7.23 -5.56,13.19 -12.64,13.83 -0.13,1.09 -0.53,2.64 -1.65,3.93 -1.17,1.34 -2.82,2.08 -4.91,2.22 -0.03,0 -0.06,0 -0.08,0 -0.25,0 -0.48,-0.07 -0.68,-0.19 v -2.23 c 0.17,-0.11 0.38,-0.17 0.59,-0.19 4.33,-0.28 4.2,-4.25 4.17,-4.71 l -0.08,-1.38 1.39,-0.01 c 6.22,0 11.27,-5.06 11.27,-11.27 0,-5.63 -4.21,-10.44 -9.8,-11.18 l -1.1,-0.15 -0.03,-1.11 c -0.07,-2.95 -1.28,-5.71 -3.4,-7.78 -2.12,-2.07 -4.92,-3.21 -7.87,-3.21 -2.12,0 -4.19,0.59 -5.96,1.7 l -1.08,0.68 -0.7,-1.07 c -2.82,-4.3 -7.57,-6.86 -12.71,-6.86 -8.38,0 -15.2,6.81 -15.2,15.19 0,0.35 0.01,0.7 0.05,1.08 l 0.09,1.14 -1.12,0.24 c -6.26,1.35 -10.81,6.98 -10.81,13.39 0,7.56 6.16,13.71 13.72,13.71 h 1.1 l 0.25,0.99 c 0.04,0.17 1.1,4.09 4.35,4.09 0.07,0 0.15,0 0.22,-0.01 0.02,0 0.05,0 0.07,0 0.12,0 0.25,0.02 0.36,0.05 v 2.51 c -0.09,0.03 -0.19,0.04 -0.29,0.05 -0.13,0 -0.26,0 -0.38,0 m 7.87,-58.87 c -10.99,0 -20.06,8.33 -21.23,19 -2.89,1.27 -5.49,3.24 -7.47,5.69 -2.86,3.53 -4.44,7.97 -4.44,12.5 0,9.84 7.18,18.08 16.69,19.61 1.64,2.72 4.44,5.12 8.35,5.31 v 11.56 c 0,3.29 2.67,5.97 5.96,5.97 h 21.85 c 3.29,0 5.96,-2.68 5.96,-5.97 V 90.94 c 0.11,0.01 0.21,0.02 0.32,0.02 h 0.2 l 0.11,-0.01 c 3.03,-0.19 5.57,-1.38 7.35,-3.43 0.88,-1.02 1.47,-2.12 1.85,-3.16 7.64,-1.88 13.3,-8.87 13.3,-16.93 0,-7.34 -4.69,-13.88 -11.44,-16.37 -0.78,-3.11 -2.41,-5.98 -4.74,-8.25 -3.28,-3.2 -7.6,-4.97 -12.17,-4.97 -1.78,0 -3.56,0.28 -5.25,0.81 -3.98,-4.06 -9.39,-6.35 -15.2,-6.35\"\n      />\n      <path\n        id=\"path55\"\n        class=\"primary\"\n        d=\"m 118.06,86.98 h -15.04 c -1.04,0 -1.88,0.84 -1.88,1.88 v 3.1 c 0,1.04 0.84,1.88 1.88,1.88 h 15.04 c 1.04,0 1.88,-0.84 1.88,-1.88 v -3.1 c 0.01,-1.04 -0.84,-1.88 -1.88,-1.88\"\n      />\n      <path\n        id=\"path57\"\n        class=\"primary\"\n        d=\"m 118.06,96.9 h -15.04 c -1.04,0 -1.88,0.84 -1.88,1.88 v 3.1 c 0,1.04 0.84,1.88 1.88,1.88 h 15.04 c 1.04,0 1.88,-0.84 1.88,-1.88 v -3.1 c 0.01,-1.04 -0.84,-1.88 -1.88,-1.88\"\n      />\n      <path\n        id=\"path59\"\n        class=\"primary\"\n        d=\"m 118.06,77.05 h -15.04 c -1.04,0 -1.88,0.84 -1.88,1.88 v 3.1 c 0,1.04 0.84,1.88 1.88,1.88 h 15.04 c 1.04,0 1.88,-0.84 1.88,-1.88 v -3.1 c 0.01,-1.03 -0.84,-1.88 -1.88,-1.88\"\n      />\n      <path\n        id=\"path61\"\n        class=\"primary\"\n        d=\"m 99.9,106.78 c -0.43,0 -0.78,-0.35 -0.78,-0.78 V 64.78 C 99.12,64.35 99.47,64 99.9,64 h 21.31 c 0.43,0 0.78,0.35 0.78,0.78 V 106 c 0,0.43 -0.35,0.78 -0.78,0.78 H 99.9 M 113.4,57.8 h -5.67 c -2.07,0 -2.24,3.78 -2.24,3.78 h -5.86 c -1.33,0 -2.42,1.07 -2.42,2.41 v 42.26 c 0,1.34 1.08,2.42 2.42,2.42 h 21.85 c 1.33,0 2.42,-1.08 2.42,-2.42 V 63.99 c 0,-1.34 -1.08,-2.41 -2.42,-2.41 h -6.09 C 115.4,58.16 113.4,57.8 113.4,57.8\"\n      />\n      <path\n        id=\"path63\"\n        class=\"primary\"\n        d=\"m 118.06,67.13 h -15.04 c -1.04,0 -1.88,0.84 -1.88,1.88 v 3.1 c 0,1.04 0.84,1.88 1.88,1.88 h 15.04 c 1.04,0 1.88,-0.84 1.88,-1.88 v -3.1 c 0.01,-1.04 -0.84,-1.88 -1.88,-1.88\"\n      />\n      <path\n        id=\"path65\"\n        class=\"primary\"\n        d=\"m 101.77,36.12 c -9.82,0 -17.81,7.98 -17.81,17.8 v 0.18 c -3.18,0.92 -6.04,2.81 -8.14,5.4 -2.35,2.9 -3.65,6.55 -3.65,10.27 0,8.7 6.85,15.83 15.45,16.29 0.84,2.18 2.92,5.1 6.56,5.1 0.12,0 0.25,0 0.38,-0.01 0.1,-0.01 0.2,-0.02 0.29,-0.05 v -2.5 c -0.12,-0.03 -0.24,-0.05 -0.36,-0.05 -0.02,0 -0.05,0 -0.07,0 -0.08,0 -0.15,0.01 -0.22,0.01 -3.25,0 -4.3,-3.92 -4.35,-4.09 L 89.6,83.48 h -1.1 c -7.57,0 -13.72,-6.15 -13.72,-13.71 0,-6.41 4.54,-12.04 10.81,-13.39 L 86.71,56.14 86.61,55 c -0.03,-0.38 -0.05,-0.73 -0.05,-1.08 0,-8.37 6.82,-15.19 15.2,-15.19 5.14,0 9.89,2.56 12.71,6.86 l 0.7,1.07 1.08,-0.68 c 1.78,-1.11 3.84,-1.7 5.96,-1.7 2.96,0 5.75,1.14 7.87,3.21 2.12,2.07 3.32,4.83 3.4,7.78 l 0.03,1.11 1.1,0.15 c 5.59,0.74 9.8,5.55 9.8,11.18 0,6.22 -5.06,11.27 -11.27,11.27 l -1.38,0.02 0.09,1.39 c 0.03,0.45 0.16,4.43 -4.17,4.71 -0.22,0.01 -0.42,0.08 -0.59,0.19 v 2.23 c 0.2,0.12 0.43,0.19 0.68,0.19 0.03,0 0.06,0 0.08,0 2.09,-0.13 3.74,-0.88 4.91,-2.22 1.12,-1.29 1.52,-2.85 1.65,-3.93 7.07,-0.63 12.64,-6.59 12.64,-13.83 0,-6.57 -4.66,-12.23 -11,-13.58 -0.33,-3.22 -1.77,-6.21 -4.11,-8.5 -2.61,-2.55 -6.06,-3.96 -9.7,-3.96 -2.2,0 -4.34,0.51 -6.27,1.49 -3.38,-4.45 -8.59,-7.06 -14.2,-7.06\"\n      />\n    </g>\n  </svg>\n</template>\n\n<script>\nexport default {\n  name: \"battery-logo-icon\",\n  data() {\n    return {\n      tenant: process.env.VUE_APP_TENANT,\n    };\n  },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.background {\n  fill: transparent;\n}\n\n.primary {\n  fill: $primary;\n}\n</style>\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MSBLogo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MSBLogo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MSBLogo.vue?vue&type=template&id=37820d9c&scoped=true&\"\nimport script from \"./MSBLogo.vue?vue&type=script&lang=js&\"\nexport * from \"./MSBLogo.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MSBLogo.vue?vue&type=style&index=0&id=37820d9c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"37820d9c\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('svg',{attrs:{\"id\":\"svg2\",\"height\":\"53.333332\",\"version\":\"1.1\",\"viewBox\":\"0 0 266.66666 53.333332\",\"width\":\"266.66666\",\"xml:space\":\"preserve\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:cc\":\"http://creativecommons.org/ns#\",\"xmlns:dc\":\"http://purl.org/dc/elements/1.1/\",\"xmlns:rdf\":\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\"xmlns:svg\":\"http://www.w3.org/2000/svg\"}},[_c('metadata',{attrs:{\"id\":\"metadata8\"}},[_c('rdf:RDF',[_c('cc:Work',{attrs:{\"rdf:about\":\"\"}},[_c('dc:format',[_vm._v(\"image/svg+xml\")]),_c('dc:type',{attrs:{\"rdf:resource\":\"http://purl.org/dc/dcmitype/StillImage\"}})],1)],1)],1),_c('defs',{attrs:{\"id\":\"defs6\"}}),_c('g',{attrs:{\"id\":\"g10\",\"transform\":\"matrix(1.3333333,0,0,-1.3333333,0,53.333333)\"}},[_c('text',{staticClass:\"primary-color\",staticStyle:{\"font-variant\":\"normal\",\"font-weight\":\"bold\",\"font-stretch\":\"normal\",\"font-size\":\"25.51180077px\",\"font-family\":\"'Quicksand'\",\"-inkscape-font-specification\":\"QuicksandBold-Regular\",\"writing-mode\":\"lr-tb\",\"fill-opacity\":\"1\",\"fill-rule\":\"nonzero\",\"stroke\":\"none\"},attrs:{\"id\":\"text14\",\"transform\":\"matrix(1,0,0,-1,6.9014,12.127)\"}},[_c('tspan',{attrs:{\"id\":\"tspan12\",\"x\":\"0\",\"y\":\"0\"}},[_vm._v(\"M\")])]),_c('text',{staticClass:\"primary-color\",staticStyle:{\"font-variant\":\"normal\",\"font-weight\":\"bold\",\"font-stretch\":\"normal\",\"font-size\":\"17.85829926px\",\"font-family\":\"'Quicksand'\",\"-inkscape-font-specification\":\"QuicksandBold-Regular\",\"writing-mode\":\"lr-tb\",\"fill-opacity\":\"1\",\"fill-rule\":\"nonzero\",\"stroke\":\"none\"},attrs:{\"id\":\"text18\",\"transform\":\"matrix(1,0,0,-1,28.4331,12.127)\"}},[_c('tspan',{attrs:{\"id\":\"tspan16\",\"x\":\"0\",\"y\":\"0\"}},[_vm._v(\"Y\")])]),_c('text',{staticStyle:{\"font-variant\":\"normal\",\"font-weight\":\"bold\",\"font-stretch\":\"normal\",\"font-size\":\"25.51180077px\",\"font-family\":\"'Quicksand'\",\"-inkscape-font-specification\":\"QuicksandBold-Regular\",\"writing-mode\":\"lr-tb\",\"fill\":\"#b5b7b9\",\"fill-opacity\":\"1\",\"fill-rule\":\"nonzero\",\"stroke\":\"none\"},attrs:{\"id\":\"text22\",\"transform\":\"matrix(1,0,0,-1,41,12.127)\"}},[_c('tspan',{attrs:{\"id\":\"tspan20\",\"x\":\"0\",\"y\":\"0\"}},[_vm._v(\"S\")])]),_c('text',{staticStyle:{\"font-variant\":\"normal\",\"font-weight\":\"bold\",\"font-stretch\":\"normal\",\"font-size\":\"17.85829926px\",\"font-family\":\"'Quicksand'\",\"-inkscape-font-specification\":\"QuicksandBold-Regular\",\"writing-mode\":\"lr-tb\",\"fill\":\"#b5b7b9\",\"fill-opacity\":\"1\",\"fill-rule\":\"nonzero\",\"stroke\":\"none\"},attrs:{\"id\":\"text26\",\"transform\":\"matrix(1,0,0,-1,56.2354,12.127)\"}},[_c('tspan',{attrs:{\"id\":\"tspan24\",\"x\":\"0 13.911615 25.448078 36.25235\",\"y\":\"0\"}},[_vm._v(\" MART \")])]),_c('text',{staticStyle:{\"font-variant\":\"normal\",\"font-weight\":\"bold\",\"font-stretch\":\"normal\",\"font-size\":\"25.51180077px\",\"font-family\":\"'Quicksand'\",\"-inkscape-font-specification\":\"QuicksandBold-Regular\",\"writing-mode\":\"lr-tb\",\"fill\":\"#b5b7b9\",\"fill-opacity\":\"1\",\"fill-rule\":\"nonzero\",\"stroke\":\"none\"},attrs:{\"id\":\"text30\",\"transform\":\"matrix(1,0,0,-1,103.0601,12.127)\"}},[_c('tspan',{attrs:{\"id\":\"tspan28\",\"x\":\"0\",\"y\":\"0\"}},[_vm._v(\"B\")])]),_c('text',{staticStyle:{\"font-variant\":\"normal\",\"font-weight\":\"bold\",\"font-stretch\":\"normal\",\"font-size\":\"17.85829926px\",\"font-family\":\"'Quicksand'\",\"-inkscape-font-specification\":\"QuicksandBold-Regular\",\"writing-mode\":\"lr-tb\",\"fill\":\"#b5b7b9\",\"fill-opacity\":\"1\",\"fill-rule\":\"nonzero\",\"stroke\":\"none\"},attrs:{\"id\":\"text34\",\"transform\":\"matrix(1,0,0,-1,119.2144,12.127)\"}},[_c('tspan',{attrs:{\"id\":\"tspan32\",\"x\":\"0 9.7506313 21.322811 32.894989 43.842125 54.557106\",\"y\":\"0\"}},[_vm._v(\" ATTERY \")])])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <svg\n    id=\"svg2\"\n    height=\"53.333332\"\n    version=\"1.1\"\n    viewBox=\"0 0 266.66666 53.333332\"\n    width=\"266.66666\"\n    xml:space=\"preserve\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    xmlns:cc=\"http://creativecommons.org/ns#\"\n    xmlns:dc=\"http://purl.org/dc/elements/1.1/\"\n    xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"\n    xmlns:svg=\"http://www.w3.org/2000/svg\"\n  >\n    <metadata id=\"metadata8\">\n      <rdf:RDF\n        ><cc:Work rdf:about=\"\"\n          ><dc:format>image/svg+xml</dc:format\n          ><dc:type\n            rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" /></cc:Work\n      ></rdf:RDF>\n    </metadata>\n    <defs id=\"defs6\" />\n    <g id=\"g10\" transform=\"matrix(1.3333333,0,0,-1.3333333,0,53.333333)\">\n      <text\n        id=\"text14\"\n        class=\"primary-color\"\n        style=\"\n          font-variant: normal;\n          font-weight: bold;\n          font-stretch: normal;\n          font-size: 25.51180077px;\n          font-family: 'Quicksand';\n          -inkscape-font-specification: QuicksandBold-Regular;\n          writing-mode: lr-tb;\n          fill-opacity: 1;\n          fill-rule: nonzero;\n          stroke: none;\n        \"\n        transform=\"matrix(1,0,0,-1,6.9014,12.127)\"\n      >\n        <tspan id=\"tspan12\" x=\"0\" y=\"0\">M</tspan>\n      </text>\n      <text\n        id=\"text18\"\n        class=\"primary-color\"\n        style=\"\n          font-variant: normal;\n          font-weight: bold;\n          font-stretch: normal;\n          font-size: 17.85829926px;\n          font-family: 'Quicksand';\n          -inkscape-font-specification: QuicksandBold-Regular;\n          writing-mode: lr-tb;\n          fill-opacity: 1;\n          fill-rule: nonzero;\n          stroke: none;\n        \"\n        transform=\"matrix(1,0,0,-1,28.4331,12.127)\"\n      >\n        <tspan id=\"tspan16\" x=\"0\" y=\"0\">Y</tspan>\n      </text>\n      <text\n        id=\"text22\"\n        style=\"\n          font-variant: normal;\n          font-weight: bold;\n          font-stretch: normal;\n          font-size: 25.51180077px;\n          font-family: 'Quicksand';\n          -inkscape-font-specification: QuicksandBold-Regular;\n          writing-mode: lr-tb;\n          fill: #b5b7b9;\n          fill-opacity: 1;\n          fill-rule: nonzero;\n          stroke: none;\n        \"\n        transform=\"matrix(1,0,0,-1,41,12.127)\"\n      >\n        <tspan id=\"tspan20\" x=\"0\" y=\"0\">S</tspan>\n      </text>\n      <text\n        id=\"text26\"\n        style=\"\n          font-variant: normal;\n          font-weight: bold;\n          font-stretch: normal;\n          font-size: 17.85829926px;\n          font-family: 'Quicksand';\n          -inkscape-font-specification: QuicksandBold-Regular;\n          writing-mode: lr-tb;\n          fill: #b5b7b9;\n          fill-opacity: 1;\n          fill-rule: nonzero;\n          stroke: none;\n        \"\n        transform=\"matrix(1,0,0,-1,56.2354,12.127)\"\n      >\n        <tspan id=\"tspan24\" x=\"0 13.911615 25.448078 36.25235\" y=\"0\">\n          MART\n        </tspan>\n      </text>\n      <text\n        id=\"text30\"\n        style=\"\n          font-variant: normal;\n          font-weight: bold;\n          font-stretch: normal;\n          font-size: 25.51180077px;\n          font-family: 'Quicksand';\n          -inkscape-font-specification: QuicksandBold-Regular;\n          writing-mode: lr-tb;\n          fill: #b5b7b9;\n          fill-opacity: 1;\n          fill-rule: nonzero;\n          stroke: none;\n        \"\n        transform=\"matrix(1,0,0,-1,103.0601,12.127)\"\n      >\n        <tspan id=\"tspan28\" x=\"0\" y=\"0\">B</tspan>\n      </text>\n      <text\n        id=\"text34\"\n        style=\"\n          font-variant: normal;\n          font-weight: bold;\n          font-stretch: normal;\n          font-size: 17.85829926px;\n          font-family: 'Quicksand';\n          -inkscape-font-specification: QuicksandBold-Regular;\n          writing-mode: lr-tb;\n          fill: #b5b7b9;\n          fill-opacity: 1;\n          fill-rule: nonzero;\n          stroke: none;\n        \"\n        transform=\"matrix(1,0,0,-1,119.2144,12.127)\"\n      >\n        <tspan\n          id=\"tspan32\"\n          x=\"0 9.7506313 21.322811 32.894989 43.842125 54.557106\"\n          y=\"0\"\n        >\n          ATTERY\n        </tspan>\n      </text>\n    </g>\n  </svg>\n</template>\n\n<script>\nexport default {\n  name: \"battery-text-icon\",\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.primary-color {\n  fill: $primary;\n}\n</style>\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MSBText.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MSBText.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MSBText.vue?vue&type=template&id=13e05c69&scoped=true&\"\nimport script from \"./MSBText.vue?vue&type=script&lang=js&\"\nexport * from \"./MSBText.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MSBText.vue?vue&type=style&index=0&id=13e05c69&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"13e05c69\",\n  null\n  \n)\n\nexport default component.exports","<template>\n  <div\n    :class=\"[\n      'battery-info-icon-inner-container',\n      tenant === 'MYL'\n        ? 'battery-info-icon-inner-container--myl'\n        : 'battery-info-icon-inner-container--dom',\n    ]\"\n  >\n    <template v-if=\"tenant === 'MYL'\">\n      <div class=\"MSB-logo\">\n        <MSBLogo />\n      </div>\n      <div class=\"MSB-text\">\n        <MSBText />\n      </div>\n    </template>\n    <div v-else class=\"DSI-logo\">\n      <DSILogo />\n    </div>\n  </div>\n</template>\n\n<script>\nimport DSILogo from \"./DSILogo\";\nimport MSBLogo from \"./MSBLogo\";\nimport MSBText from \"./MSBText\";\n\nexport default {\n  name: \"TenantLogo\",\n  components: { DSILogo, MSBLogo, MSBText },\n  data() {\n    return {\n      tenant: process.env.VUE_APP_TENANT,\n    };\n  },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.battery-info-icon-inner-container {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  margin-right: 4vw;\n\n  &.battery-info-icon-inner-container--myl {\n    width: 100%;\n    max-width: 430px;\n  }\n\n  &.battery-info-icon-inner-container--dom {\n    height: 100%;\n    max-height: 200px;\n  }\n\n  .MSB-logo,\n  .MSB-text,\n  .DSI-logo {\n    height: 100%;\n    width: 100%;\n    display: flex;\n\n    svg {\n      height: 100%;\n      width: 100%;\n    }\n  }\n\n  .MSB-logo {\n    width: 30%;\n    max-width: 150px;\n    margin-bottom: -6px;\n  }\n\n  .MSB-text {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    visibility: visible;\n  }\n}\n\n@include media(\"<tablet\") {\n  .battery-info-icon-inner-container {\n    margin: 0;\n    max-width: 200px;\n    height: inherit;\n\n    &.battery-info-icon-inner-container--dom {\n      height: 200px;\n    }\n  }\n}\n</style>\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TenantLogo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TenantLogo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TenantLogo.vue?vue&type=template&id=3ad95cf7&scoped=true&\"\nimport script from \"./TenantLogo.vue?vue&type=script&lang=js&\"\nexport * from \"./TenantLogo.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TenantLogo.vue?vue&type=style&index=0&id=3ad95cf7&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"3ad95cf7\",\n  null\n  \n)\n\nexport default component.exports","<template>\n  <div class=\"battery-info-container block\">\n    <h2 class=\"title is-5 battery-info-title\">\n      {{ $t(\"offer.yourBattery\") }}\n      <help-button\n        :body=\"batteryOfferHelp().body\"\n        :header=\"batteryOfferHelp().header\"\n        :multilined=\"true\"\n        cy-id=\"batteryOffer-helpModal\"\n      />\n    </h2>\n    <div class=\"battery-info-inner-container\">\n      <div class=\"battery-info-body\">\n        <div class=\"battery-info-icon-container\">\n          <tenant-logo />\n        </div>\n        <div class=\"battery-info-info\">\n          <div class=\"battery-info-info-title\">\n            {{ $t(`offer.battery.title`) }}\n          </div>\n          <div\n            v-for=\"(descriptionItem, index) in getBatteryOfferDescriptionItems\"\n            :key=\"index\"\n            class=\"battery-info-info-description-item\"\n          >\n            <div class=\"description-item-icon\">\n              <b-icon icon=\"check-bold\" type=\"is-primary\"></b-icon>\n            </div>\n            <div class=\"description-item-text\">{{ descriptionItem }}</div>\n          </div>\n        </div>\n      </div>\n      <div class=\"battery-info-footer\">\n        {{ $t(`offer.battery.${tenant}.footer`) }}\n      </div>\n    </div>\n  </div>\n</template>\n\n<script>\nimport HelpButton from \"../../components/HelpButton\";\nimport TenantLogo from \"./TenantLogo\";\n\nexport default {\n  name: \"battery-plan-info\",\n  components: { TenantLogo, HelpButton },\n  data() {\n    return {\n      tenant: process.env.VUE_APP_TENANT,\n    };\n  },\n  methods: {\n    getBatteryName() {\n      return this.$t(`offer.battery.${this.tenant}.name`);\n    },\n    batteryOfferHelp() {\n      return {\n        header: this.$t(\"offer.battery.help.header\", {\n          batteryName: this.getBatteryName(),\n        }),\n        body: this.$t(\"offer.battery.help.body\", {\n          batteryName: this.getBatteryName(),\n        }),\n      };\n    },\n  },\n  computed: {\n    getBatteryOfferDescriptionItems() {\n      const description = this.$t(`offer.battery.description`);\n      const descriptionItems = description.split(\"&&\");\n      return descriptionItems;\n    },\n  },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.battery-info-container {\n  display: flex;\n  flex-direction: column;\n  margin-bottom: 4rem;\n\n  .battery-info-title {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n  }\n\n  .battery-info-inner-container {\n    background-color: $lightGrey;\n    padding: 2.25rem 4rem;\n\n    @include media(\">tablet\", \"<desktop\") {\n      padding: 2.25rem 2rem;\n    }\n\n    .battery-info-body {\n      display: flex;\n\n      .battery-info-icon-container,\n      .battery-info-info {\n        flex-grow: 1;\n        flex-basis: 0;\n      }\n\n      .battery-info-icon-container {\n        display: flex;\n        justify-content: center;\n        align-items: center;\n      }\n\n      .battery-info-info {\n        .battery-info-info-title {\n          color: $primary;\n          font-size: 1.15rem;\n          font-weight: bold;\n          padding-bottom: 0.75rem;\n        }\n\n        .battery-info-info-description-item {\n          display: flex;\n          margin: 0.25rem 0;\n\n          .description-item-text {\n            padding-left: 0.75rem;\n            font-size: 0.95rem;\n            line-height: 1.25rem;\n          }\n        }\n      }\n    }\n\n    .battery-info-footer {\n      color: $grey;\n      font-size: 0.95rem;\n      padding-top: 1rem;\n    }\n  }\n}\n\n@include media(\"<tablet\") {\n  .battery-info-container {\n    .battery-info-inner-container {\n      padding: 2.5%;\n\n      .battery-info-body {\n        flex-direction: column;\n\n        .battery-info-icon-container,\n        .battery-info-info {\n          width: 100%;\n          justify-content: center;\n          padding: 1.5rem;\n        }\n\n        .battery-info-icon-container {\n          padding-top: 1rem;\n          border-bottom: 2px solid $white;\n        }\n      }\n\n      .battery-info-footer {\n        padding: 0;\n        text-align: center;\n      }\n    }\n  }\n}\n</style>\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BatteryPlanInfo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BatteryPlanInfo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BatteryPlanInfo.vue?vue&type=template&id=62579fd9&scoped=true&\"\nimport script from \"./BatteryPlanInfo.vue?vue&type=script&lang=js&\"\nexport * from \"./BatteryPlanInfo.vue?vue&type=script&lang=js&\"\nimport style0 from \"./BatteryPlanInfo.vue?vue&type=style&index=0&id=62579fd9&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"62579fd9\",\n  null\n  \n)\n\nexport default component.exports","<template>\n  <section>\n    <div class=\"container is-fullhd offer-page-container\">\n      <product-type-selector />\n      <battery-plan-info />\n      <battery-plan-selector />\n      <b-message>\n        <div class=\"content is-normal\">\n          <p v-if=\"tenant === 'MYL'\">\n            <strong\n              ><span>{{ $t(`offer.infoSizeMSB.${tenant}.title`) }}</span>\n              <a\n                href=\"https://www.mylight-systems.com/tarifs-mysmartbattery/\"\n                target=\"_blank\"\n                class=\"link-to\"\n                >{{ $t(`offer.infoSizeMSB.${tenant}.titleLink`) }}</a\n              >\n            </strong>\n          </p>\n          <p v-if=\"tenant === 'DOM'\">\n            <strong\n              ><span>{{ $t(`offer.infoSizeMSB.${tenant}.title`) }}</span>\n              <a\n                href=\"https://domuneo.com/energie-stockage/fournisseur-delectricite-verte/grille-tarifaire-domuneo/\"\n                target=\"_blank\"\n                class=\"link-to\"\n                >{{ $t(`offer.infoSizeMSB.${tenant}.persoLink`) }}</a\n              ><span>{{ $t(`offer.infoSizeMSB.${tenant}.subtitle`) }}</span>\n              <a\n                href=\"https://domuneo.com/energie-stockage/fournisseur-delectricite-verte-pro/grille-tarifaire-domuneo-pro/\"\n                target=\"_blank\"\n                class=\"link-to\"\n                >{{ $t(`offer.infoSizeMSB.${tenant}.proLink`) }}</a\n              >\n            </strong>\n          </p>\n          <p>\n            <span>{{ $t(`offer.infoSizeMSB.${tenant}.regularContent`) }}</span\n            ><a :href=\"`mailto:${getContactMailByTenant}`\" class=\"link-to\">{{\n              getContactMailByTenant\n            }}</a\n            ><strong>{{\n              $t(`offer.infoSizeMSB.${tenant}.strongContent`)\n            }}</strong>\n          </p>\n        </div>\n      </b-message>\n      <b-message type=\"is-info\">\n        <div class=\"content is-normal\">\n          <p>\n            <strong>{{\n              $t(`offer.infoSubscriptionMSB.${tenant}.title`)\n            }}</strong>\n          </p>\n          <ul>\n            <li>\n              {{\n                $t(\n                  `offer.infoSubscriptionMSB.${tenant}.haveAlreadySolutionMylight150`\n                )\n              }}\n            </li>\n            <li>\n              {{ $t(`offer.infoSubscriptionMSB.${tenant}.areFreeCommitment`) }}\n            </li>\n          </ul>\n        </div>\n      </b-message>\n      <navigation-buttons\n        :nextRoute=\"nextStep\"\n        :isStepValidated=\"isOfferStepValid\"\n      ></navigation-buttons>\n    </div>\n  </section>\n</template>\n\n<script>\nimport { RouteName } from \"@/store/navigation/type\";\nimport { mapGetters } from \"vuex\";\nimport NavigationButtons from \"../../components/NavigationButtons\";\nimport ProductTypeSelector from \"./ProductTypeSelector\";\nimport BatteryPlanSelector from \"./BatteryPlanSelector\";\nimport BatteryPlanInfo from \"./BatteryPlanInfo\";\n\nexport default {\n  name: \"offerPage\",\n  components: {\n    BatteryPlanInfo,\n    BatteryPlanSelector,\n    ProductTypeSelector,\n    NavigationButtons,\n  },\n  data() {\n    return {\n      nextStep: RouteName.ContactInformation,\n      tenant: process.env.VUE_APP_TENANT,\n    };\n  },\n\n  computed: {\n    ...mapGetters(\"subscription/offer\", [\"isOfferStepValid\"]),\n    getUrlFaqCompatibleInstallation() {\n      return this.tenant === \"MYL\"\n        ? \"https://www.mylight-systems.com/faqs/quels-sont-les-systemes-de-gestion-compatibles-avec-mysmartbattery/\"\n        : \"https://www.domuneo.com/energie-stockage/comprendr-ma-facture-faq/\";\n    },\n    getContactMailByTenant() {\n      return this.tenant === \"MYL\"\n        ? \"energie@mylight150.com\"\n        : \"serviceclient@domuneo-energie.com\";\n    },\n  },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.offer-page-container {\n  padding: 0 2rem;\n  margin: auto;\n}\n\n.link-to {\n  color: $primary !important;\n}\n</style>\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./offerPage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./offerPage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./offerPage.vue?vue&type=template&id=7cfca915&scoped=true&\"\nimport script from \"./offerPage.vue?vue&type=script&lang=js&\"\nexport * from \"./offerPage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./offerPage.vue?vue&type=style&index=0&id=7cfca915&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"7cfca915\",\n  null\n  \n)\n\nexport default component.exports","var map = {\n\t\"./CLASSIC.png\": 1633,\n\t\"./REAL_TIME.png\": 25\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 60;","var map = {\n\t\"./gsrn.png\": 540,\n\t\"./iban.png\": 790\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 4923;"],"names":["render","_vm","this","_c","_self","staticClass","attrs","header","multilined","on","toggleModal","isModalOpened","$event","scopedSlots","_u","key","fn","_v","_s","proxy","footer","domProps","body","hasImage","image","getImageUrl","_e","staticRenderFns","isOpen","$emit","_t","name","props","type","required","title","component","components","CustomModal","default","data","methods","require","withBackButton","withHelpButton","withoutPadding","MainContent","MainHeader","$t","isIndividualClient","MAX_LENGTH_HOLDER_FAMILY_NAME","holderFamilyNameErrors","holderFamilyName","setHolderFamilyName","MAX_LENGTH_HOLDER_FIRST_NAME","holderFirstNameErrors","holderFirstName","setHolderFirstName","MAX_LENGTH_HOLDER_COMPANY_NAME","holderCompanyNameErrors","holderCompanyName","setHolderCompanyName","isBillingAddressSameAsPhysical","setIsBillingAddressSameAsPhysical","MAX_LENGTH_STREET_NUMBER","streetNumberErrors","streetNumber","setStreetNumber","getStreetNumberSuffixOptions","streetNumberSuffix","setStreetNumberSuffix","streetErrors","street","setStreet","MAX_LENGTH_POST_CODE","postCodeErrors","postCode","setPostCode","cityErrors","city","setCity","directives","rawName","value","expression","MAX_LENGTH_IBAN","ibanErrors","iban","setIban","slot","ibanHelp","MAX_LENGTH_BIC","bicErrors","bic","setBic","isBankDetailsStepValid","nextStep","previousStep","RequiredFieldsWarning","NavigationButtons","CustomInput","CustomSelect","HelpButton","computed","streetNumberSuffixes","paymentType","paymentTypes","selectPaymentType","isBillingStepValid","_l","types","class","selected","checkIfPaymentTypeSelected","preventDefault","getPaymentTypeTitle","model","getSelectedPaymentType","callback","$$v","getPaymentTypeName","getPaymentTypeDescription","getPaymentTypeImageUrl","isImageLoaded","PaymentTypeSelector","isValidatedEmail","getUrlConditionOfSale","termsAndConditions","setTermsAndConditions","solarPanelsInstalled","setSolarPanelsInstalled","tenant","isSubscriptionValidForSign","redirectToContractSigning","isSubscriptionValidForSave","isSaveSubscriptionLoading","isSendEmailValidationLoading","saveFormAndSendMailValidation","isProfessionalClient","contractSummary","clientInformation","companyName","familyName","firstName","email","billingAddress","physicalAddress","pdlNumber","gridOperator","offerInformation","offerType","tariffType","contractedPower","batteryCapacity","paymentInformation","billingType","contractDeliveryType","isSubscriptionValid","getIncompleteSteps","incompleteStep","index","ClientType","isContactInformationStepValid","clientType","isHousingStepValid","isOfferStepValid","incompleteSteps","legalStorageBaseUrl","ContractSummary","then","subscriptionId","catch","error","console","getContractActivationStatus","isDownloadContractLoading","downloadContract","contractName","contractSigningInformation","getContractActivationStatusTitle","getContractActivationStatusDescriptionBegin","isPendingActivation","isActivateContractLoading","activateContract","getContractActivationStatusDescriptionEnd","RETRACTION_PERIOD","activationStatus","MainLayout","ActivationSteps","canReachContractActivationPage","contractSigningStatus","isSigned","isActivationRequested","ContractSigningStatus","isGridExtractionActivated","getOpeningActivationDate","add","format","getActivationDate","openingActivationDate","activationDate","redirectToContractPage","openHelpModal","isLoadingYousign","contractSigningStatusMessage","isContractSigningLoading","helpModalOpen","yousign","FullWidthLayout","contractSigningProcessLoading","contractSigningProgressLoading","isYousignSignatureUrlValid","getYousignIframeUrl","watch","String","signatureLink","signatureUrl","iframeContainerId","isSandbox","iframe","query","fromYousign","oldEmailaddressFieldDisabled","newEmailAddressErrors","newEmailAddress","confirmNewEmailAddressErrors","confirmNewEmailAddress","isUpdateEmailIsValid","isUpdateSubscriptionEmailLoading","isSendEmailValidationForUpdateEmailLoading","modifyEmailAndSendEmailValidation","updateSubscriptionEmailError","getUpdateErrorMessage","sendEmailValidationForUpdateEmailError","isNewEmailEmpty","isNewEmailBadFormat","isNewEmailValid","errors","isConfirmNewEmailEmpty","isConfirmNewEmailBadFormat","isConfirmNewEmailValid","isEmailAlreadyValidated","reSendValidationEmail","reSendEmailValidationSuccess","reSendEmailValidationError","getReSendErrorMessage","modifyEmail","DEFAULT_RETRY_DELAYS_IN_MILLISECONDS","DefaultReconnectPolicy","constructor","retryDelays","_retryDelays","undefined","nextRetryDelayInMilliseconds","retryContext","previousRetryCount","LogLevel","HttpError","Error","errorMessage","statusCode","trueProto","prototype","super","__proto__","TimeoutError","AbortError","UnsupportedTransportError","message","transport","errorType","DisabledTransportError","FailedToStartTransportError","FailedToNegotiateWithServerError","AggregateErrors","innerErrors","HttpResponse","statusText","content","HttpClient","get","url","options","send","method","post","delete","getCookieString","NullLogger","log","_logLevel","_message","VERSION","Arg","val","match","values","Platform","isBrowser","window","document","isWebWorker","self","isReactNative","isNode","getDataDetail","includeContent","detail","isArrayBuffer","byteLength","formatArrayBuffer","length","view","Uint8Array","str","forEach","num","pad","toString","substr","ArrayBuffer","async","sendMessage","logger","transportName","httpClient","accessTokenFactory","headers","token","getUserAgentHeader","Trace","logMessageContent","responseType","response","timeout","withCredentials","createLogger","ConsoleLogger","Information","instance","SubjectSubscription","subject","observer","_subject","_observer","dispose","observers","indexOf","splice","cancelCallback","_","minimumLogLevel","_minLevel","out","logLevel","msg","Date","toISOString","Critical","Warning","warn","info","userAgentHeaderName","constructUserAgent","getOsName","getRuntime","getRuntimeVersion","version","os","runtime","runtimeVersion","userAgent","majorAndMinor","split","process","platform","versions","node","getErrorString","e","stack","getGlobalThis","globalThis","global","FetchHttpClient","_logger","fetch","requireFunc","__non_webpack_require__","_jar","_fetchType","bind","AbortController","_abortControllerType","request","abortSignal","aborted","abortController","onabort","abort","timeoutId","msTimeout","setTimeout","cache","credentials","mode","redirect","signal","clearTimeout","ok","deserializeContent","status","payload","cookies","getCookies","c","join","arrayBuffer","text","XhrHttpClient","Promise","reject","resolve","xhr","XMLHttpRequest","open","setRequestHeader","Object","keys","onload","responseText","onerror","ontimeout","DefaultHttpClient","_httpClient","HeaderNames","HttpTransportType","TransferFormat","_isAborted","LongPollingTransport","_accessTokenFactory","_pollAbort","_options","_running","onreceive","onclose","pollAborted","transferFormat","isRequired","isIn","_url","Binary","pollOptions","_getAccessToken","_updateHeaderToken","pollUrl","now","_closeError","_receiving","_poll","Authorization","_raiseOnClose","deleteOptions","logMessage","ServerSentEventsTransport","encodeURIComponent","eventSource","opened","Text","EventSource","Cookie","onmessage","_close","onopen","_eventSource","stop","close","WebSocketTransport","webSocketConstructor","_logMessageContent","_webSocketConstructor","_headers","webSocket","replace","binaryType","_event","_webSocket","event","ErrorEvent","readyState","OPEN","_isCloseEvent","wasClean","code","reason","MAX_REDIRECTS","HttpConnection","_stopPromiseResolver","features","_negotiateVersion","baseUrl","_resolveUrl","webSocketModule","eventSourceModule","WebSocket","_connectionState","_connectionStarted","Debug","_startInternalPromise","_startInternal","_stopPromise","_sendQueue","TransportSendQueue","_stopInternal","_stopError","_stopConnection","skipNegotiation","WebSockets","_constructTransport","_startTransport","negotiateResponse","redirects","_getNegotiationResponse","ProtocolVersion","accessToken","_createTransport","inherentKeepAlive","negotiateUrl","_resolveNegotiateUrl","JSON","parse","negotiateVersion","connectionToken","connectionId","_createConnectUrl","requestedTransport","requestedTransferFormat","connectUrl","_isITransport","transportExceptions","transports","availableTransports","negotiate","endpoint","transportOrError","_resolveTransportOrError","push","ex","ServerSentEvents","LongPolling","connect","transportMatches","transferFormats","map","s","lastIndexOf","aTag","createElement","href","substring","actualTransport","_transport","_buffer","_executing","_sendBufferedData","PromiseSource","_transportResult","_sendLoopPromise","_sendLoop","_bufferData","promise","transportResult","_concatBuffers","arrayBuffers","totalLength","b","reduce","a","result","offset","item","set","buffer","_resolver","_rejecter","TextMessageFormat","output","RecordSeparator","input","messages","pop","fromCharCode","RecordSeparatorCode","HandshakeProtocol","writeHandshakeRequest","handshakeRequest","write","stringify","parseHandshakeResponse","messageData","remainingData","binaryData","separatorIndex","responseLength","apply","Array","slice","call","textData","responseMessage","MessageType","Subject","next","err","complete","subscribe","DEFAULT_TIMEOUT_IN_MS","DEFAULT_PING_INTERVAL_IN_MS","HubConnectionState","HubConnection","connection","protocol","reconnectPolicy","_nextKeepAlive","_freezeEventListener","serverTimeoutInMilliseconds","keepAliveIntervalInMilliseconds","_protocol","_reconnectPolicy","_handshakeProtocol","_processIncomingData","_connectionClosed","_callbacks","_methods","_closedCallbacks","_reconnectingCallbacks","_reconnectedCallbacks","_invocationId","_receivedHandshakeResponse","Disconnected","_cachedPingMessage","writeMessage","Ping","state","Reconnecting","start","_startPromise","_startWithStateTransitions","Connecting","addEventListener","Connected","_stopDuringStartError","handshakePromise","_handshakeResolver","_handshakeRejecter","_sendMessage","_cleanupTimeout","_resetTimeoutPeriod","_resetKeepAliveInterval","_cleanupPingTimer","startPromise","Disconnecting","_reconnectDelayHandle","_completeClose","stream","methodName","args","streams","streamIds","_replaceStreamingParams","invocationDescriptor","_createStreamInvocation","promiseQueue","cancelInvocation","_createCancelInvocation","invocationId","_sendWithProtocol","invocationEvent","Completion","_launchStreams","sendPromise","_createInvocation","invoke","p","newMethod","toLowerCase","off","handlers","removeIdx","onreconnecting","onreconnected","_processHandshakeResponse","parseMessages","Invocation","_invokeClientMethod","StreamItem","Close","allowReconnect","getTime","_timeoutHandle","serverTimeout","_pingServerHandle","nextPing","invocationMessage","target","m","arguments","_cancelCallbacksWithError","_reconnect","removeEventListener","reconnectStartTime","previousReconnectAttempts","retryError","nextRetryDelay","_getNextRetryDelay","elapsedMilliseconds","retryReason","callbacks","nonblocking","streamId","_createCompletionMessage","_createStreamItemMessage","i","argument","_isObservable","arg","StreamInvocation","id","CancelInvocation","JSON_HUB_PROTOCOL_NAME","JsonHubProtocol","hubMessages","parsedMessage","_isInvocationMessage","_isStreamItemMessage","_isCompletionMessage","_assertNotEmptyString","LogLevelNameMapping","trace","debug","information","warning","critical","none","None","parseLogLevel","mapping","HubConnectionBuilder","configureLogging","logging","isLogger","withUrl","transportTypeOrOptions","isNotEmpty","httpConnectionOptions","withHubProtocol","withAutomaticReconnect","retryDelaysOrReconnectPolicy","isArray","build","create","created","destroyed","isGridOperatorValid","isContractedPowerEmpty","isContractedPowerValid","getContractedPowerOptions","contractedPowerErrors","setContractedPower","ConsumptionInformationType","EURO","consumptionInformationType","setConsumptionInformationType","isConsumptionInformationEurosDisabled","consumptionInformationEurosErrors","consumptionInformationEuros","setConsumptionInformationEuros","WATT","isConsumptionInformationKwhDisabled","consumptionInformationKwhErrors","consumptionInformationKwh","setConsumptionInformationKwh","getFieldError","getFieldType","getFaqUrl","getGridOperatorHelperText","gridOperatorsError","gridOperatorsLoading","onBlur","onInput","gridOperatorSelected","gridOperators","isGridOperatorExist","gridOperatorStatus","isVisited","mounted","expanded","getLabel","getMessage","getType","$slots","label","disabled","hasCounter","maxlength","min","step","isActive","nativeOn","lockDecimal","mixins","evt","loadingValidationGsrnEan","maxLengthGsrnEan","gsrnEANNumberErrors","gsrnEANNumber","debounceGsrnEANNumber","setGsrnEANNumber","gridOperatorEnum","gsrnHelp","MAX_LENGTH_GSRN_EAN_NUMBER_ENEDIS","MAX_LENGTH_GSRN_EAN_NUMBER_ES","isGsrnEANNumberEmpty","isGsrnEANNumberBadFormat","isGsrnEANNumberValid","GsrnEanInput","NumberInput","GridOperatorSelector","contractedPowers","isStreetNumberBadFormat","isStreetNumberValid","isStreetEmpty","isStreetValid","isPostCodeEmpty","isPostCodeBadFormat","isPostCodeValid","isCityEmpty","isCityValid","isConsumptionInformationKwhEmpty","isConsumptionInformationKwhValid","isConsumptionInformationEurosEmpty","isConsumptionInformationEurosValid","getContactMailByTenant","productTypeTitle","productTypeHelp","productTypes","productType","getProductTypeTitle","getProductTypeDescriptionItems","descriptionItem","ProductTypeIcon","isBatteryPlansLoading","batteryPlansError","n","batteryPlans","batteryPlan","capacity","price","checkIfBatteryPlanSelected","selectBatteryCapacity","loading","BatteryPlanSelectorItem","batteryOfferHelp","getBatteryOfferDescriptionItems","staticStyle","DSILogo","MSBLogo","MSBText","TenantLogo","getBatteryName","batteryName","BatteryPlanInfo","BatteryPlanSelector","ProductTypeSelector","getUrlFaqCompatibleInstallation","webpackContext","req","webpackContextResolve","__webpack_require__","o","module","exports"],"sourceRoot":""}