From fca7661ad8c0ea6358001b36e0fa18423d720824 Mon Sep 17 00:00:00 2001 From: Tykayn Date: Fri, 2 May 2025 11:29:40 +0200 Subject: [PATCH] add stats page --- .gitignore | 2 + img/avere_repartition_puissance_nominale.png | Bin 0 -> 76207 bytes index.html | 6 +- js/lcm_stats.js | 41 ++ make_stats.js | 201 ++++++++++ package-lock.json | 391 ++++++++++++++++++- package.json | 3 + stats.html | 83 ++++ styles/_stats.scss | 23 ++ styles/main.scss | 2 +- styles/style.css | 19 + styles/style.css.map | 2 +- 12 files changed, 767 insertions(+), 6 deletions(-) create mode 100644 img/avere_repartition_puissance_nominale.png create mode 100644 js/lcm_stats.js create mode 100644 make_stats.js create mode 100644 stats.html create mode 100644 styles/_stats.scss diff --git a/.gitignore b/.gitignore index 1b0d809..c0f9810 100644 --- a/.gitignore +++ b/.gitignore @@ -133,3 +133,5 @@ dist #ide .idea + +js/*.json diff --git a/img/avere_repartition_puissance_nominale.png b/img/avere_repartition_puissance_nominale.png new file mode 100644 index 0000000000000000000000000000000000000000..967d5c1994306ed2b135c67b1df3b11fe054c665 GIT binary patch literal 76207 zcmd43by!qg7dDQBf=CMpgLLRaDM*JXEdnMC(jXx; z)X>e)&3Aa8diDM1_q)D-zUvw<@i1rav)5khUiVu2K88NgP$s*|coh#1k4#lX;Tawt z0R#^Z-<)b;Sr}ciAg6r>H6bu zN$N$(ABjVJfBnd*(1gUek}e%ST~LrC{N>X?^WL@pA>}2iUp{_!SXps&m*c()g#9*@ zFDhl|_e;b9moA0E?<8?LKmB!ZIYQ2f^2@)>2Tad;jaUU4*vOd|&d!Se>j#%D^7|!x zV>vl2|21w^{p-IyZPuT}k~_pV2G+ zW*0fEy7lju2%CI;QMxxC$5!9^?YV(DUlIJe6nu8d%fRxRjA92Ae>LtUD!}B7zt|gC z#{X}V`<2i_BqXXT&3D~(t4s=QN8Z2DNghpDl1&k{y-Kk9y8-0fs6&dWEkZ*{)}Ier z4Sh2wV;q7l561Cvb7xCKbc=?`rEm%9b-mo0sn$;Bf)zyDi8@xxR%(XuUQzScuUcDe zI(m8pwT-F~zZzCzgjt#{9Zsr3VLypDYS7 z%t4W^9bH{z4yG0(5cxLrs*ak?+>eTcxHOPU!=Ul6Hu4MO@onKB)tUHsuh7E7#nxK+ zW=*t+%?mhI>RFIfP@t~Yy(q>k$tmrRUv}oHI-a%OmsaPs zuW=OR98nV;CZ?v%@08oa;iF}AX!PlovGUv7k>X+^zs`P%iukhMtBSZa#QL#Lk3q2R zOL`XiW&W=%==(GaBcNh0h|>ZeiF4F)#&5Q`LCq?<-fp^Axh*K!UGp-?kyI6@)Y^Wy z{cJ5w%%>bD(5beO#4B?}%MP7oTm8a&2$Du&KeA>(kTy8kn~dSvT;q=A?FoaY61tgo>=^1 z8&*jYjN1lLB?LbH&}tL-qJZ=7p?iz(`R;>XjRK$@R$bHYw^1*^F%E!7vv0qr0TrYw za_RPO5cVJF1;DrD@!;=>7b+GiCPVbw6I}qiIsokndH;i_IBr~a&TsJhpR}P0Bo3jM zzoRwh1n0!g_1|oFk(9)Mv;@xn9SVUQhDu4t|25|SgTLHB((8Efd#1UtLjUvM64RgP z4n~Str<*u050z)BX^sA%ePdjL`H>S|h`tB2QhjOr9UEV1-gUH9rTRI)wY3%erFFNU z$h6+F_o`aHug7K6Col)t(8z9$S$z~0lpl=Nf&NMR0%C2y8 zae+IAB5mc}gM7Fhd0lPLD;AF*N3^uH>1b%Icatl(h5nP08?=C=^Nw?3Bz3S*yZ=>% z-K^M~d!o4v3_7CFy=Q2|UE#%!jiVF~9kffA4T>dhwHfMj^=P+w?p?IBTNPJzW z^vo-!T_9YE_tMzLC|6rJm+0nL{p%x77=f(%fEuFOz2)>U+RkO`&6O0`^Qvh$RcM~11R12KwR^@OKdW<&HPO}N8aE&OQYCbs4Lx@+Z)k~a9zWfiUzt3X z!ajM7FO3Mi}N~W<>=xmoTs*5OvEfpDj`6yxuZgbQ}b~^Ilhc2`U}; zURqjFVoaiT&nEkZA>{)v7To6}9;F(Nle~~c_?nxWA6r}0%!t{v?<{a~zJLMgy7u^1 z!mZXayS4N6r%YC@!J92vf~}{~xI$>c4>{yBJ-yW92?xhX({avh+pgu^ge7qzJ=$;@ z2rA3LvukWnW@dF&PwwVnZVv~^ z&=r2H_~sVgU$mBj-kjtaMcb|Q?&ERH69titGn!;39amWQkMBC&A*U~h`J;%!ju}kg zP;|f3i&Y@9Zgb&A+XwFf#{}h}ry3gR8!PT&vPHDu;ZB~@0PEAEikorYMA213rAi2I zJG(kvVTP3AjHw}J45R2bYZ#1Z#<1gH{Gf6!>W9Of`KpG@3KU6`O!caX*tq+iR)SdF zp*zYbDYdC5+{*N|~0 z&!G0>-0b|A(!Natxw*ZW?ewEArI%fY*MZeKFv4A_bWtSNq=U&ogANYw4~e`E z_a~DZlBBPQDc`+o7o}At;dpu*8I-wjKZP;xuYC1_87My-=^!?x20k^#lfGok2RXH8 zTVmc{FlIfKF0G@=V6=Y9kva>zSszMb?~tc{EMke2|9p~cQZ`T*L_66<$hkuO}EtvZ-15r(aMnK;`)>3%M!g|l()x5^wRsbpGYlz zAmAIaC0@D$>e!!PoYh-4KTx-a6G)9EpG)-Frmq~434qYO962M}-R|Y>To@xK!xzZL z(o?&x+IWj%uQ9g=4N6kB>eXZn_gcMAyvyn3Je4s zb|5F{c))z=ZhK+NgZmMCkHHidBtLCzo08{;mAIcas|~?$_2F2e^omQ7pv8_PMiOef zQm-7*xS$NZdGziH8^e#6!|ChAejc;3$IhG5cD2*Af?DftC2;i=p~(r?HK~n>P)nKl z1Fy9Y{p2`@@D$96xw*udf9n{9K!SZmN={~El}&$TUUbIF7R1mIn^PK#)wO(s_Hn4X%>}N~s4U=twnxpGt>DN-`=QpOBC65&ZQ}4g&V>-8C zQ=&qP?X8*BNQ5r{{$N!vna>kxv5<{EGku=ZS$1As6+FIOtY@MAacCbF#8P`772X}E zDb-Fcm6>mta<|AZKaJIWaROS4SVdZZ>eqEEt!7)mv|`Hk-YfO@4-yI5GDfs@{-D7R}7(UX%IzQT^^8AOVjhzd7}NhuI{dit+2BHuaDhX=d*z62yJ&T!$BI6q$5Y?=U3(gC(@qtpD9k~}GjU^~w%eHs2J7VdA$Jd^V_w%9 zm2Ms_y=e#IB{TLKSGPDKJ9tf>AE+2|2wFg`K%@AvUV=P7RM-6$Ro*;lQ|WBP^;C%~ zA9+q^jh~ul$g-MHhM8hyg3m>JHN+3`R^}A&5&qrnEyr6( zK3`$39niH5l7K3q_PsTH2V9zr-syG-%IsHd9N*ke-6)k1-E!(wBP>w5qbOH5&G%!6 zey;$Y-K|LJpxO7{hNsoQ8^>$GQ1k{m=@Ua=4i2;Ed9_L;${yiB;be040b=8IPj@>QKz^qcFOIbU1Cw<8$(-``!<6v*mCrPo3(PE zDSV>Rmx)ZLgN|?Cjl4}}?Xfa|l*ltESe?jgAY$y@H-y?1z8YK$s2)$7wSIT6< z2C1515`1RpwZz-@Lq>T6vz+X6-bE~UMrpX9|F!^b6WtU)MwYq?D^TaluGO#KcU)l+ zvu+)3=<+Di{Q_P$_N+XH`&B*Gul{jg42keN{7T}q+UPO4M|Uuhm^RfGCD*cijRGY? z*InQG7=BjlY2AU@a8Cy~+mZouNw-8sA}5mXa4yGTLU(GwXTdVVpNZ~@gvp5pj%L)`=2verSpiA6u8M=%#?3&BIaRX(iWg zqBbxE{C0+fSB#A3q?EU5259jLJ55!KyU_heXhP9~!TOAX);q7Q zUP13voE?oa?f13>dJ6`rQQcBmcSuOt!?QOPY0eub6Kx((sVE@`YZIccn$X?TVz`O} zQx8kecjfNtP$GdTe5RyNzOL5u-7{vSn4#j15>f%#i71x>bIA^I6aMk4TM0@?uPLEs zlg3%Iwi|G|`)>uEDKUuq*ggzKr=2PqXye_B%Ax>?y>?4{&6fpk`zWdoi|?+zj{DI; zVUYgwe)_(LolkQqW}BH3LYnHTK)k)m>~fGU%dzkBIHXSn3}q@PwSstw)%#?F%uS|%Q-}2q2QFVRb2b2 zaT#?;fjLc>XGs3eO;E)E(Nj_ z!@7;l&RMd!N11CgTIs?X!3iNG1ed`(BfO!v&T+$=01|)RGF34GY-)- z#fY{pmnI@VRSs@j__*$&hjDMSVtI+H=@+l{z&6R=x1Zo9CL&Fe!HSnfG0{$ED+S~g zdIexPEyQIfydf3-`n8{ z*C41z3pKs{1BK4jAy`%cX^?yT5spq(~U`8)9eH`N2+_e3TMttW=@ArL=HMAWmF6dV6{873=09!7MyiaAd zw^wI}`%I=or>JgkD61*b4Q0|1PLAR>33C~V(O(PFb+@I1*f&4CvcT3&7DrEy!@(wK zW2iykAC$*Pz1tXkESdH07YgKtzAKeV$P4ObR-?)F^I8vY?GKNTwQB|_CU-D>&CeXx0^AidC`4~&|LFA*64aTZ4>uZ?z~UOM&-IgbD@RKJExB3H3~51;i@G4=_q;1o!Yt#v>bg%VpAc)CJu$xTSbAi=nJff zQRk^X<S?FOs`UMO_@6c%} z2D}y`P2>5wyF_A7MJGJ9!AP$KK1n zr+W{3ZQ_tjpO{(pAF$GTcZYC*=1m5IB;dW734^|_Gg*Z1xZmH5J$Mm7QS_-~p)L!C zG~S)#dL*_FX>hRf)|o-vH1V3r!XKW?YJ&-MUxU9o>LLC7v^nR%BF=kyKBT0nDO@B& zfsnjeftPgT5nFU( z%05!KR>s%0`Tz6;Kimh(2rosc(k;f8gU^?d-7yei3IF6 zB%#?&fwA9F!QjP#s$KIA^m9A^qhKc)zA+aiB-_`c(|x7HJfWUCdsW#Ge-qP?hDLlC z2d=dhcbHhb4f5!#F@0*{f3S~8HXt;9*%+8_cn&%>XC!^rdmt*>*1{EJB#j_9apMrB zS47%x(sOMMyAna{+nxps3brROc~S;g8YkL;eEe;{c4 z;Wf_PNiYQ`!q_hKbJM#Ylc9sCM0QFr7mDnVndX~ z(3o8FSmai(Wk79FNP=Wnz-#;5JIMT3R@JQ7t%W(!s$7S@HnIyw2zA zm5RVsubG9V=IQjlkaLW0ZfwY+$;0=Y^yNrEqw(tW^bcqxM=_TV*~d+r;RDiM(tuUvkEfUI*Vz%|G^b&mc;S&enXo9UzxJs_VdKH;yK-%|= zNlXq?x1(`Ql)XZIv`Tifq8VaRiK+!WuTN)>5Db^qkh`nS0c9gMXZW8BA{2O%HC#*B zcv_>hQe9{E5mK?(bVNy8>J#uCX!6a)0{&2eBFp93LznHfa~#M5MFtBYj_oLxY-v-W zt3-~w4_9gYblwv1MucI9z=JxX8$Pop^iqQ(Eo2%_){7j1S|#rs)X!eoWJUh11&9#Y z)k-w`0EXdw)S>HvK8J_c{Z6${gm~Bw>ar_%jdD!fbYDPvdK@t0FUlHw0zrNOTvDcP z@|Kj_%AKI0LgjTIsMC4LH4b8jEWTF)c(Avl@jM=M2*T0{N`%;?cO||2B^+I@Z5yM) z0oMFSg)3F#u0suNyHSx)B>e3*g2NFpRoyK29>p+lw8)k|LpMRVp>ZP$^WNV*4j zAdu8;>h#PJo>-R1t=vhTIO66sWl@@0wk9LtG`n!OZuQdWc&9O zUN)MqTi5HD5@=Ossxx6D%VaSPxW} zdFQ8;(BO-nE$p^+40ZDN7}aS}vDUciDC%y5flV15-eTMiat=y@`=U9EBBSqn#D^zZ zFN*bZ_BB+?H9H=(T2H#KkgXfi8(_wHhUMM^eQ+I&{|)}u$Bq%1Yo65Z;)$xUIq_%@h4*Sto9f8%qw5sIjy$cX^;PNkF#g{mP~chQP)&G3B3c^&+i(pz7j zkKT--Ju`&XKggOf#ey&RSZZZZ?Cbp zZ)(Azt}LJ-;hG{PfXgc_slK(UH#ZRAcL$>Hw)p#wJ{ zYx^A5v9n*FBo;f+5O-|y(!}eU{p}?Rnapstt4<$$?#hwfRgl)X{k^)q^_(Yh)s$ty zz%866G&T4}HVZ0j(44kM0Cpp!?2JPKOpyc6#3 z50p!96#Tr0n0gmXNem>S)~Ey3M{Fe;_DlNfgpy9aay(hGc5!~<#SKS|BHND>7lRP3 za;gML)78Pptl#xjZZ!$Njp-P39k_e!3N<6VL2^I$sdB-nwE)d5q~6Z9mplYMud#Et zTkg%Z)-ckAM1i8%XSDaIXWkh8^dd}S@o0Y)K$dqfXi9#pDg-0wRNy`gSpnjxgd zIWdJVnw=C^-$2Dj9lz|B)O4dVNVw-@5-GvKy*(i{u_<`72uk;I=-%CLcjQ!HLzEa4 z@@d(ri-p{8qz63{D4rH=N zg<;z{8xPuA;$zZJQOx7W-ONXx$jLj?VXaEZ@C}4Usl>dkBupAiH3E+7^e5v7^>-9W zj&hY+&UfIyr;SmfCeYhenLOJfHFSrynn!m=T|en^8D{n1xP9o5f)bLGzRpfbFHY@G z>Cpo6WK7xgzyyKlizmGg(TVq2*{)>zleyH>*Og>kj>6%b5H3`@ZAz(;0!1HR*K<%^ zp$p24j3vpDpqE=tagZL~n}LFseN(s`WbRBQffEOXCT*i&3GdBtf{FJ2WVe&)MiH^` z6!|yFNQsw5RByb)Q*>qT&b19P3u--8t?K5!u`g~y$#BKN9QBgS`R-G_vc=Zxe!eT% zbdQQ%_V5qOHlGLr#l-X}z9;HP;%59;@6GSG)!=TfFK19$DEgU&)y8#w zP?y2I5~eABW|wd8ARJkl<^u{Jo*pWDAyc z%<1w`l7h)Cg2;*^AG@wt+THvfpM7hBeL23yf#feEh>Z-j(4M0&*N756XXc#{>^F)e zpm;g^8`XEE+WgD+c9IwT5_!Ou(JOWJ;dj>-18+u-2*yrrGO?9}RW{v)7*@k#Bxv>( z`OLr$s&A=7SQK77{Zd?3mY(^90S(^wbawu(exofh<8+;9kRP5gqsCQ|4X*L*A;tGr zzQe3@Gx!?wjF9Zvn(&ur$5F0N=JC4$g^!ECclpyK%FN*Ef*5<#anm{OW?qMM!~?8% zM?K5tbQTpXqu@&VB|i6I#O%G-KTh^Kre&XAeRz66Lt#I>iWOGH#zx?orvgeCoD=Gl z@||vHjM|T#E^VKK0MVANr%%pEv%>%JZkq=e^$)2DK$Q|7_)f*rx;p6}^x3$Kz9{qi z12a;ht*NnfyJ=Vo*VLM4X-W`G8&1YC6zCgHo$?1E^TKr(-9Jj|u3xt%zlS19fkv5e zL~#+4KKgY3%rjTc-kg^Rg7<<*vqfTRFiaj_vWiQe&}PLv#TY*b9ISk-y)56 zou%Fs*~ukP7`PC#fsjp5;gbjHU9u|RWt!aB1=SL>GPD};pcv@2*b3xr=8G3kKfq@X zMAnbq&GC*F>J<1zl-YN3x7o{jwOoDax_-*&gzp)5%<}H5{TCl_HaO>c8@EJ96gF49 z&B?**>etSNiGh!|+`Z4%KB^XlD9*cKHY$EgBs*knh!h$7Qv##zR+0HGpiz4F*Z>TG87h%AW1gBa9 zdoUMC_>B~+f(O?T-6KhB%W$t%eVM_gIK0d?TuyOGcDD!xF9V4xr7KFun6`C|YQ?7a zmF2X=SlY^NWvTi)W>oUgzcQ5{(HF7}vIe*$;#9MdR?7I)!z{O5c z*YYM>Z5;VuxWDc7VXiDM-+8hWb;S0!MgA1jP-YPptvY?X32i!K6FGWM4H4UQ`)=Oz zis_l}0K?zHgg?jkTja1GKBXT6PWy=S{DMEYdYpXTw*?N0*oaip{_(^=RY@VT_&xQG zX%#kux4vFxeuiBG5V;I~OmXeD-2bYlsB(3LM-6;(in+MC0|px8A0hd5kbOlpTW%fS zzmwfo`JX#>D8&zcc3+TxlB!F` zNXs?=LX+YF|Gv;)yall4lV|vMVKA4`c$wA3nLXGaFR^Ow?o})-j#z#{!AYePT(r#j z08c_niuO9*TY_J0dx^?dZb86yb<0`<1{}aWq*iGU6}$B`_jrcFyRwns{2nUxe?){I zc>FGOK)_)_=_$p?xJeq3z;#`fFflp)r25VY59{}UJ|>9I{xiaHfajOlLMZV?thsan zWhENNvkrNguSGKYG_b&xV|(^~-251z%o+ReeVdO*caGqp3vHh1FAJp%A~Z2Exi+m7 zf&LDh-d9*@Q!G6VC~);>#J8K@QQSKfy%b@O&`1`k@oaT{qkQec=UPAP zbsUy+e$nT>VDn>DZ*qNC>O6VJ_UXFyq8%l1o$=yUC zkX-JKqNVvUVU$UWfw;=c;lM=y!#>+;?EC_|)X?-{gsueph(_ zb<=dav;40ta6iNUJn%Gt&3`ae+5L~;o9kjMM{`N}UtL6w@Q+kLBOb^x zO!m8?{L?Hj)}!vn7XOf-|JC7>Bj_p|=`@4}yu1CROR(l>$I_%RQS#;cu0otIzemYH|a z$$!&@7p=i3y%W;XY@OyiVWVXh#~b@2rWDq_nJx3C^nwO99LiDUmA2?tIT~qvva+(z zep)j9*U}Jv?^2Q4jGsJIv8{U&?Z6xO4@0ji6^BKj)tr*i?X51qgW*^{M@yu-)-K z0TKkRt@Z{QI_brK`}TKep=unr%POpGOl;EAl*Mz?kKRJqyt4$Dw{OC8TOHzcJeO#A zk`aCX%vEZ;Q>j}_IdORA}=<|UD@2>kQh?39gw z(b-)cMeb4E;`IYg>M#gcnkzOGh;AqA!Ef;|ffMhot*uowq`pGi&}*=$?#L=d+O3p~ z@m{;^@v5-Ll;0Jb!>zfAK*wQyXhl*|QmKpLLij(bP`LrX#lnxcSn=3PZ1H{0PvJ6$ zvvH!_8a z=0^k8*CJ$(!Q&#RhHk9WBpI32OuZu&rHG5Y1RZxy94yf3x2xUNg1D{x{Om7C<;xXi zswpvd-KXfkv(~@R;Frth`!W*6Ir#16wkdbiT6w?5w!nK-)$a0O$9cNYCBfRASi#$J zsi3wDVCT;I3w6ajmh*BvD}PMXdO+&52IL0h{ta+e6=3_`5k5<#@>AiED;P_OJ{EIi4@9?m;?eE$4R?B)`xwura2;;1YD@g^BKcl3#R5HHK z0!~<>ZQ#~IF1;yNvzQs~`H&{c1J^?D6~W}w7Qgk;x(MfBALbSwHuvShKj8U+0DwS8 z-*0MRa$hOIaJ#gwjQf)b{JQfraRd3wa^LZS$eEhB#K!6YzPjFn$sO_V49o=ke!+O(A%5mncn7BErMbKOBPs z?Q|z`9v=&Ajqgn_fBPH!7FC>Liuz~nLV(>t%0QMY_nRUXXQtiKdzkI0E z(C2i{dY@=Mc>*AiN7deIV-;mUARN3~RZA48nD0tKtaaE^;Z@{z zciB*(E@a}4_fD_!9smiWGW(br>-TxK8F(qHRZa_I07hE_h`ptV&@Hz#mhsrz2`mq{ zW;#Dy$Up;d>s4DRvp3S*LxwzD&o8dq0v%@-0*K|(M8X4p^eF7yYIOvbB6dCy_64!8 z%9HjQSpHCXAf8{Mq4((hXvG$EA$-EBjmaqj7{yf71Vt zy~EvM!?k3Kbl8_D$sa|?tw)2qq<)7l=>J?SdpMBUUUyl5qk_Z^pcsc>dUHh((Pv2A zq4@=90H*2;uLNLwSkh(HlH&eJiQx590R7S1J@+BO%^)HnQ#9b`rU z%N>BVqwQ8Wr`$|VV@49H`q*RQxm8{U1T4@Tj}0MZ#*^|uh@>2zuB9O(>$7? zA`2lAjlHy@u^1`z)}0U%a3}L%@k?~2)CRI&SlLMZb9b+%e?xGEyxgfx>qLE>8JisF)!llK}3C=Q&~Yc^yz zu8eh;E!;fDh6}C&fA+Rt zf_>SRDKW%W)Y_}19Rhnlt`Z;03#L12a}6h{$#C}kUrUL7OPpod6+m2RBGZq2pXh@wgawz z=$~@$4c3%`%1IHVB`mu8`sQl``*@IydpVVq^0n*ONHVF5wF+}Se6XnRGHP}vH6Qy` z2>hgqUMp2GobK=-4`hdEl!UGqydk}WUuMxGDhpO{n+UqbU^3GhxlK0=AktV3x2fBl zzptr&Nl*!v+J`Yod#G1kZ2YyVsw&%^Kb-%5dx_ou0!2DaQ4#pzKNacqXT^@eqa$}N zGlCTPWRasjOIe9F-($IC?W|_oW6oUlb|_uIOYItYmA3e(oZ77)yt2J208>3tN+pw| zD*=$y%ZaJvfJRU@^+bm{7_@ z=>kcVs`1m7rZ8)+cMtgA5*x*EaooNe*2xj7imzj!b7iA;KmBy8L(rgsCg)M5Dqj&2 z%r*}*toJ@s4F89j$k_uKk|_8~5j7`1>SqZXCmTKxEj;0sXQ#(#0Q{zCcnb8Y`gmGc z>#njjLSGA`^fe1z@xe+{gcg0ZGvq)s-t}R@8vuao=(`m`O$?2X-%;r;m$XJQ2)D9? zul&I;CN``)eRjCOl95ZO#%xApi7+);Yu=5eSa-dk!O{Nmc#eiTZ~lM|ZkYr~kbgjr zARN9#n|bUGYS*gqXCigV%&B^uPI>+LH({!r@6HO8YpFP+(w@Uf3?k7s^c za3v>lT*oLOIDRB^)HPG9g%Sra>F~IH-vUDLXqTo038S;mL*f5d$S_@m%ye!(p&uSd zM)bgjP&GtOD7=Xbt`czhouAMp#JU$i*CxVH8+kOr@0+RVOUMa7>rz2U3V6X??R2WE z3?#-SNw86F7m`X86`h?u*B%M{MO4cm6)Dq@5TTe3N0nWJNbHy$*z9V}1CvOOFJ`Y^ zeXQphl8QB)(h7D(YdLI&r1)NCrrdtE!_{6{Eyu@cSBB&?_NH7L*u5xIyq>WNX$YMo zs<7_I04F?3Qe?D?d;N_wib_qOsJwuTWb10W{kX<|QW0w=z%dkec7l4QR2&K)Va@ z*U4`j;3a&JQ=I~eE$KTG1EnRR&?J)WJJFD)2|7#^!+l78DOg;tWZI=_qwZJ>GxcRw zLz;p!!Ppy?8LyxKleN!4&BZ^v6e#R>86`E!MbKl6cYFWqh}7MjFvE!0z-;3`ndysL z7gc^sVTx@uUdqFX6MFi61uP+-HS$oFoKM(hlK}UoMW4t| z-9=S&5xg3PPBo4EV!I*PDQpJ~5i7{&qN3#j>F+RiG2tHHffL&n4E#&7r-3qt|776_ z$3@@3kDu5`f+MKhWo_&%F!qXv|i$W0E&fxvG767Qx zh{a4WxB7kUIkKPpQ);o60yiiQd0O2AZg{HVJ8%NVjBeTy!4RV}jb(!kp<+4L+GVLT1)=H#xTE-#ji zJ!-$yVLdi#7s8#2^=pRc=d%s4qZS#p>c+B=326@iggqNw9(k5SCMVVrGvq)jORJ|P z8p&%E_d0r;Z%|u(6R3?`05){AMR|`9J&^Z&ZBW~=qW=609sT)vj>g`UKZTuaHa2uQ z>cUXKhjI)k1Ri>LHx)r`uou+`r2e!r^2XgJ_ub_=F&n=lYnzc0YEPi%*#r6&V`s-3 z5N$n&K%hR!9f4uVm5djnWslnFH(Q&W0N6Ri@4Zf9Q2jPfQ1o=z(8t!n8+e0$6}V}C zw-7N2psJn!WwJ57{?$+Z10ThboLFx5nqcdx=pb_61`lcetWL-jPs?GW7hL3H7@1>wmGhJs948k@| z0VFOcD&>(h=){unc3ylco>Nm$np^Agb1i6X>^`e|&lFetM-gk}t#>l2j~=0wqM2<0 zW9LGvkN`t2a9$ZY+nDs+j!g61`tAa-Du}}yLNu`5w$dFJ`Ah$8ucCn~E;Dc;x~EHQ z(xy3>0^YA7)pdW8Se}smVcY`jO@Fov;8KiDH~_LMg}cR@>0K5)inzouecjpJe->~d zZvoJbk!_}xmYo>breh|>T(p+rU7HoH<~x%UVq;AJGCba+}8a|Z(LUlv%Mu|-Z zn`48suF&&iY5+xGDA0{KsPCr?#}MSB<1}U80Mw|$`}Ank`*>}E-_;_`Il*~tY!Dz} zcC~YY&5RFxIoMTVpVD1=8YG}Fo_A@w(r#Sxoaw{vTrlhXDO!(6ZCxb0en;Lt>`EMSgR~ zG0Mz1Em_okd}^wke@NXE>5KmeBjOWvlDI>rPkz)C`$Sgm99cdC*6!@&(EAHQrUPA| zQ??4!Vt2huaTk473-E~+Svo3&)5Su>;>^?F9UehxQFb<=IG-x{X((&p3 zq}OCfW20?;LCWMO{A*?5F?{|>ynLyM+#f_0o;;Kf0>JbBE&MmE6B9WzypQsrX7ho{ zaop-B!hK(qDK?JUH?G2sn}gi)MfZWqVWxH$G#yAOH61{MJdnhpXlj!dB${dCM7B^g zng@xuqGk4ypzzriRe%ZBB4)Tq7aaKZ=NPp9Da%Jb0*8QFia$x-x8sYo09s8kQvylz z&ZL`RaGY_ZXd1^X-3=|Bf zRZQW|(WWkFTe0(p!Qv7aZlJhP62z}aVE0kC4)_z&{%-G>ULge3P4){|ewh?CEL!sI z;?#!cTE#FUovdgGa{3&glD3WSh$i&I$ygKc6d3J3Tr^^`va{XULP0!`lQ%XuVAVtg zZXXBwXjs1!!nDDb_;fvehUyk};drT34??&CbV~|SiAAwLU3DD$RC(O;hk>$gdYsK6 znG>ct?LmYB(Mj^nARYm`6)mgF_5G1}dcZ?sVeCt{Ar%{c*XFI(4!U$z6sTv(Ykz#9 z&@RJsD-?cq6DU4i0J8hT>sj=>zdAYB<$?G6JJ=U5R;0qx9TcrV47k=NU4j^PUZ850 zy1t6j_;M3jOk#Tax>yv7fND6XVP&$u-s^OC*aawqk7q6lqzyWt*&%kGP!ALj4=gCv z>91W6;Wo(2jpzO-{$T-3Fv>`!g~++g`}s-_nT{dMeg;1@D-!WksBEi=5dK<0i#6fH z-OCtmsugK%aJvd$fQOLXd%(@3eYz>Pq~YKOg1Znf#_g=+9ZlJfT{qdP%S9>R_RuQ% z>woMON^5^8;{P+_TpZFiInO^tOg2(O5K3DK%pG_j73zqe?Y_Z8k(}J9LR#BlJ*P;` zN_zmHk0N4wWRDBzUBQ=B9%wKzHAQ?L{TyMtRCcSK+kKy$9qc zkLf{xOG6kInn~$mV>eT=0-=az#x~7#!=lFR5D-^UJh*L%biqhOQ1$a>`$vaJrN7z{ zmB7n<>iHbGg!XF>Z{d{E#g;jV*+j|0A3S>&8~tY5|K-|{E@T%n7aGTQnJiy@I`Vdr z*6RzMkSC*nKCy&o5T`P0nnW87jq){0A9GVx_UqKQ?DhN7x9M2an1+ZR5mQ2%=P6?v zD}at<`zN80*6^p0Yotsfwb%2nBWdxTn_PuGjMsiV-5$enTGr?la%oOy4%*4lBPb{y zCR$)lEFGJ0X92;_F>epW0K}p;T*#RYwrU(Xb2wAAATj@u*b9?TMPWi^&2C0;ApFoV zQQw7xSwUa*ujR3a02GK&-Tc9;WZ(g*JQy7FUGawqh^Qw`_g;5-j(X8@)g2vynl{ zmlu-%C0ce&Lt^fOiM}zFDH5D4WESSr+V1%sCf(+TP)^@&^uKcKLyDOA9L&62IDd(k zc}StanNw<7M|t+?1{sbgU)O%)F<4#yhNUu7ri}QruHOa2yZBm}s zW&UD8V9-0Y=A-ZtAK$!9*$LBk4(gPM%V4NR5I*jAt`GR?1q=bgRQ~QpngMuI@g9j! z%IMHSuL(ZFs*mf9nM0MIl?MquU@6ljgptjz`C$>`UY64!3iqwVqWD51i}yJ)qi_c3 zbixD#c4TzBD*l%M(4YYXHX#Iz46HvCHg=J47b84NzKAR*4h7D~y7qTyd{pb$6d1Xd z|7&dX!vQc`NIcdMh9JZVt+8sY4QZ~G&y0!^d8zh(gTq@7aKMezMy#zspT7MUUH)%z zS>L|Odk@pa6{#X9rX$VI%Z z!O{`_bFM&H0r*z>0UUk~6uuw4gmK)FA9Q@=ku_m3B~sa~QW){lG6vJRWcK6#>(<{u zs)g1MAp>tnmmqur{Rbe08JZG^1KlTw{i)Lu@Bc5czyh}ehY9T0;SJ(&Xng|%7331J z&a?gSsQ7*4r7%C^uCNE=7};UjSy%tRpaDqN7i1E8j@J$`NN<0{$D2%{cNS!R#l?bc z#;lzO9oyRInlIxWfc2KJflL1Pi$FG0HX34ACN%eo*hkFNw4gLdF;gV0?7-{2{ZG2! zKy%odZ7O^t4gLQ})I0>RW>_CpuMudVP4y$j(GFg~FfcJO<;~7^4@i5X1goqBN_BNB z7Nfu}xf&0jmrLCqKRuv4{8>%aNcrut>GTj<{*&f-K9Cxd2*1+`xw>ujR`u7Y;cmI~ ze-argO7M&=Sfx06Z5S0tr6QGe_9|*>>H&V$mO2S{hiyYZ9<&(n0}K_dV?+SU{vjgq zx8Ae!rEjUX^~a<0aD2~NNA1c}J{$`R*WCXy7p+aQzupOhl^0GAt z_88&kF)VpqqyEzWJ9|DAfQzA}{g|w60vqTBp=1~Bl`dJ=qJ1hRax&%!fT+&dN3+%Q zPhRQhx3+=#-L5zc4LE_JAjWGJvt`afadrK8v&p5=_t$nut$erlYJ*y>BSH0ta#H3R zmv>5=Q^w{V8jEttM89clfwV#;2G)*<@;K=gV?KT=?vt1#%}w|wnwP@K+V3R4I{E*i z00J+Bone{Aq78(aA=IE$F4a2PEC4iXwm>gdm#49%V2xOpI!I6?$rbt&mg|6eC27W;*8eh%qa=_u_J-OEAz&cX?W|{fvJC}f>Njhv z%tEuS=2wZL5e^$GdZ(QsWdXt#n*&&}Ee7S;jGFs=1RC+MjB`mGf?2ws2OX69&d^O3 z1=LnHEZpRS;9ii#?ZRp*Qf{DGPbZ~Gl)TyGV>QKj5P~ZBuSb0dK!0traW<)7G(SI? zjz5GjcFI&hMuj;@QYR+bKquAJ3j8eL6fZqHl%Q*7G*VUdq0*u=cq_Kqve_{ATg?<01N;WMjR|URBy=F_5|Q!)Oa2;*OGRzfmXZ0zTl(30QA=Ah zMj#6cs?~$ib?A(VbpEihZCzUwhpvA~a28bk3!iz=f1^Pz^`DBCCJyB8t+Ux>KT#-X zcCSbGxOXJ&32YYo8WmNy$ZuEVG=o2+8}Jk7OR5Y7g?yAq_c}Mu> z4mQxEbHUHKP_;4#R)btdwE;uKgu&!F`7?p^G)|@Wau-p5Y%W9hw2HFB?+2MRY-2=C zBi^nAk07ej$>aB`WagB|PEgGlve5TAilK7;>s}qB;CFz=CCp~(%^|$I=ZZ-6YC$+^t-?y`IL=ffE%XO=--)2aD^y?{~ zDGRbIE+W#O)=Wx5PZin^o~iq1cYrHojssc*Y+&_UDV`2!XdJ}&7o@fs12(d^i5mI7 z4km0S>yr0wD++^ZWqk>#g!(SXINzj})KpJ|{G5?bNSb0`DeDwwB!a3J7(_}OHI>8L z$Uidqx5OIa?P>h8P-vteLFi#*9K(L+ud(|s*rw|s*w$SrZhf*Aa1vvCZfmjeu*c?p z=S;xmRw3mG%DW0-rB1!0hAl)TCx?bEb%arE)kcxm8kY%7N`pbQu9wM*B_^TM4t)Jz z{v)i`Az5z8SoY5Wy&uYeL%<-qQksu(uyt8vTS`|8Gx6;wPcAKsfDAB zTS!1XsG$NQ71cE}wgc{!+;ObT9qR8@S87;e5ZJ!HzWjyH{=J&wI7)%OgHo&We~pMQ z;Ap+#X~utjYSpDqvIc`FDMW6I@T0-YXy2XSoqHPU-Th1TD%1R8Y3-dV)zj+P7p2on zuF|5_&Ox<(s<2#4=tVY&ikjR>v?$Uu1DXrHc-aX5rbgl=NdIs#G{2Rc!rL22biyJk zQeakMV%}$V5zZnmlKt2bTD+;3Kiv9Ah@Wn+s4 zjN%*QUv>DN1QpEYeOVD#3v19|L_|`WHm-Z$Tg$_f>-(97bEW<#>iLuMa5ZrRW%>OBZRKk;L7(gxGy8 zPWKJj3^qjF>~?Y39L5jn0o-vNm!6g{8jZe;{mmR9VjJbWcsoyzX2Ud-BbdZ$ihU5` ztDK)yfX%gPLP-4&Y>ok7G{bfw(`hXFg-Vlixr~kgyf|Xrm?vh1wUxL?L8W^kY>8NxHx{)IMZG~j~;3@N6* zBawO^{0hdREdmU%Qlq1VVOr6?Kn@44AH2`SS6~3FlHJ8(-qpv%Kv8n2}sbQ|B#F`1F}Eq zv#kJB0y=W??#9mriZ6VI4(SNikxaebKe!R>2`y?U%W|zE9-f(tG1*+n3aA&d87jG~ zZUFiJGt2x{|9b!K_;VjRQLK2NPiqu;K)7Ek9L11 zSyK>5)1$;y?h`vVo-^a~&})5US%}RkE<0Qb7JG|MgkiQ^I8}?0Q&KSZQF(0{sBc~p zw8!o)Q4(;xs#V|NpxjiJjT!?qO;D6_0W$>E;wVO8k)#*{fEl|Xk%BblkZVxGFzb;;XEq# zUETVmru@&IP>F+r+U)H<;u>d=ccF4=3eY3TpIU8Iy`?H@9?$;cRPeQ0WCPCdDOw1lYZ7~Q4bEr~l%#bqB}UDMcoI~0wST8w+#5CXX(LbPDV zza+baxgo=lF{)OZ#z2%dkx@~?l!35l7KM|O=D#jlkMgZnD#|OL%B7CIVwTbMHV?;^ zOdWeN%on4h)aREG@BWal_=ejj;s}*ZTdfIc#5tSIWu-NF3u$zp&L%_RJ8=SpUzjvE z12ahc@ZuY*Go{+Uk)0_iD1w#n5HY7r)vdgStaZNq(M61Q!Bsk9B?PE6@ zs8Tu5Qh5NEVWb{(&8|kdn(#|8seSfPn|SJ&?iwK|hqAx7z3m0qj3cy&7lGI?25DU$ zksNhBVFa{3Vt5q1?2NOIDeS|@HKmWQ^(s9Uo(5`bun6U%z8Y|u3073Aqqzi00BvHK z_n@;Wt8tT6wOJA)qim~gQFnLDsV}GI|3KLzImlAk#4!E{KYW;3S*Ix(OvciDfLmgS z3?gEYw6+=1<72W1(;X!NyHl{?mO4$RthYk<)5yjRv~@Wg-6Kix8N7fTn_R4M+gCqkd97+ZuuHu@#FrQigwN zEnGu6H*jg@c-$qJV1wnTMZcyT8aez9pQBss*ubB?$W zwCY@ogDV+mS%wA1sw=CA$ydZB7;bhx`;bw8=uxW zNVyheQKV^Rke=mT%Pfn{w^d)#c01Oec@)8@Re5Tct5#zdfzsSpbHu1zGj80=UeOt6 zpz?Tk5vaO|Zk5g+!_b~TU4Wr~|3;x3pDo54xfxIH```0)0ruMe@pb;U7$M?OL<|5M zMZ_Km{F|nc5Qr_~8U=u9>_vGq_b#b=EmM>5Xgh17%6B+CB|F8fnH1#hyGUnbis3b_ z5M~&{tH4U0s~{&lYAHiF-w!r7|d`D!S{ZRxb}|eS)4P z#7Auvo2x7aNWNB8>LRi6l+(a!q@y2qv@3~9)Hu{4dmmIgmfFpEsb6&Pc*;vrA}+9d zt<3XJEtuyH@^%d0^Zk#37=3+xWm|)B>VR1(wp?yFrgyP#;97rCZ@ndVue)S*^=sB@ zE|PUn(0yBcrg^2m*gQ3!mX58nyG58En5TXhlPtj2KjQ3GGgDSeb468NTI}xqS8LK% z1L2ZMvHitEl=!gRrFWs0H0Srg$JoDo+UV6%e#*Ul74`IY%@ZfcKvP zz3)76oydfm3F8QNtGQV=mvy?qF#h!(@uCgMH%`CUDnyW#ehPaZWYJlzpZ`YY=}yzm z)e5b)Br>*G$~Dz*eJ%!LOz{%7vyT+a0Q%D zdl-b;?hqVx0RdlD;Mb%#Zz8Nh@b2Mx<7TI^MLg|u?`|eFe8+I(LZ^xXjGTZ!Kgd@) zJdx;`sC(it=bFuu2Av5WH^&kFfyM(6q52_;gFh7+q(=b}{s9_HL=t{Ls-)>EU$|E%{#NDCtU`wduQ zv7_38l&ywe@7I?=*V^T(=8(%b%skrdkkINg%!wFRA%) zU6Mb|UFxDTGWnd!vxv3fnw!P>7`8O~nlxWI|F&a0Qb3fMlSzk{jfb_hwFQpfFZ(KgD6^Z?{PQ-AjPB$e-5@^G=$ZWFpeT8hj7)e?Wo~8SLJnL=rz0_NFXnRKI^+Gs=+~Bli#c4qT%_Y8=%t%i0pv0qj)ES13fuKp*7G8e;uyo)7ox1aBwVV$7br*B% zui{5ls8^B`5=_JJSu23R;On9LsQqySyOhi9qj;iz{B3t5+%}_znX1=NrPO>q30L^p zA+Gwmw9@b$U05YIFT{WgA~T6F;+!9BFv{3Qh2B0M5->p-XQj_Io!DN{dI)SbHN4E~_gpJk)L;o7Bm zT6*Kdw~NuO$(sTe-X9NTChN!=d0KxzZnSxxzvtu)nlV_+(Hqvuo8{R>u zU`~XdR8EAv#J~_AG?<$8PZfyf15UwPYdJv^QNE{#%I1>}Xd{0NXvbb5baRS5*;dqY1v1PX!+MDDxGgB|+Mbz&Pz zb1fcjiM$>SPVuj~9E)UXpMbJNZ8ArydAcAgNLnCBo7e}D$=V?8m;5+6Y~K3S`UYRo zldm>g91Il}=??SW<|;+bLQdFxc7sq|%GU#f??VP$_NO9?zc!dU^TAb`G>5A#wHZ-& zyJoPNNw-TPrx0s{i!1r3mX47Ck=FM1)8VoW;a^q8)5AGr65=<7%W?e<@coYrBjQ^D zwChVE?@Rsi3#)0092(~OHC{PLaL7qoRrI2 zsZW*7wY%(bNo2)CDC~wis>gi!u`CYtgEUdv+Xw!Wa4)_W>NhKOs}2=J)+Z@l;gYY= zxWUt0KN@6Y{kT5X+@z~-fYsO<2{`_HJli2X81C2xIT9FT9EOY7n)S|ai?2St)&&ai zdKooe=XM(ZEqdS#EE4{DkKT^#LqEVs5EVuEhi%+@pwae_e7!^B+EGm+t6Z#Rs6rw( zBS7-|%yQ2q{;F??@hFNsQ^PiL4Qp|wimA7vm#(VGWu07aV4zV`&w_C!AtzQ7Hm;hH z{DbyJFIK%3D{IT>X*2OQ;cYrI1#pSRML=g_!KewQC!{*)rUu9iZVku~ z-svp|H=yc8bTWU6_a0N;|=7Ub;aih2wQHVb$7!8ypxQVsTGXm8)>w3=kQ}FxSpawChU~1Y=s{=Zvx*}%Wu!HN zI8|mRd9C^-zmUi}GP5z1#po@)whS^KvG2c(91kTOW3{6U!~_1?Yo8!|bJ zrA%Cq91Mf|&gXx|_aJbS5H<#i`t0v;jFf4TV!oW=`Q`PpleSevCffB{yI-?t^jpWX5h<0ovTg?-1-RX))| zuf!)6Y0q24TK?2?>@3x*-*)EmDe_jIiPzM~W-9Ekchm-}hIFLW>$M~{iZxCHwz?Oq zoM0@UoC|Ys>&lY&9Mm9?1oE3PzS24nr0{i}Mx{zuvk^#4ExLoT9D50!Zp@>m?2rR1 z^W}3F^uO~M0Xf+v9wj5t6KD$%N8&SN*U3WWn!c2~cUAN7+;h1(jsG4|tkCP~riiN| z>m`5J|HnAKkQ|K=QL?0>XXf^4o(uV=Vc`7xQ%Se{wH(fVK$Yz4;Fm<5YzBT7@8JE? zpVjca!##c$fEv&^s3V&dEtl7ri*CkUA5r+Ua~+Vlk|SmprO`S%NJ%uYWT$o8Oi8)p z_GVFy8oRg4I$6P4B8ThK%?z`v?{GAFUv$RGf&#Q6Kb9;Ux(sx66ZuLC`9o-Y(N}D$ z9xv8fex`UaMa38!#!v^F15rdN=S-|{Z}9^I;{`|Mn0}hup;$(;4?&eIn$`Cjt&@iP ztuAL|K8W%QmKJBi~~0E~M-6Kw^49clX#w|HFTV9=cBuD^&p}eGYYj~rQXb5>68}2=Lhyle z0Y5Hg-q{r17dO50C)p{qPBMJCwnf^KugCt2YlWCj9c0hzXe&kZx(0^JoZk{D&&>}C ztru4!QC#0jL9q{qhlc*rDlCx(OQqmrAO}7)-cf!w5*^9;4=;Dao;-KtHDa(nq9tGc z@D2O#g(GW5df!%QW?2dw_^3a2_nSC_;y+@c{0FdBd{BNHm25OcY8Xp%a+i z(YO29B)YoKjk&Vn8M2}0yQk-{XqQ2_nLDSm8u6NgVLK-Zye?#e=M6) z&La)$bWZj2uxtCB%^qD}YG_+}*S_;iV@Aib{Xr%hi zgor>SyjpBNHcP93;h#15stnd(y;c_I2MrQk$v`I_@|!?p<^GxX#_$7o*UG-caYbRQ zt0mg1$gN~4K|47o*rSaYUUq|fdhIJLM|1jlSlChmcwPiqEOL-nT%&};T)B`#P=(I9 zDJ>}x@tdmG6MsSpvNi4zdThf5)T+~-%H<>mG7bZo4y+RtFP859#_^!jF|er>)SOzFuO;J#IMH+IO{8fJCl8CwfG zk9T}Pa^(54;)AG1fYyvT0u11O(87UMMj~O;M*%2S2F3AyC^!b2R70aj{9;fAsc)l~r-Zool zER$qAK+OSkj}h_lh}aiKUJxNZwT6_l{^#S>$E(^LZ}xWZ^E!$--@&|8MokU&a-&l( zB4v^{%P9Axw@wAS?}DrGt4A5VCEn#0OiQl^;}5@5oRzR7;0N5_VKd+@!tq>n@t)6i zUrvCt;Oe&FX!{Iay?pl3(f%NPyS8qbEcqumVOdo$NLJL%f6^IS^70Vam#m+;ULS|O z;c?XgsN)8Vc)fEz(a`{K3BJLX0Q&a`*Y7USoqPv$v34Us4jDc%A-4n)*3S=i6e}Lr znh)oxPhDf_f=nPJ7iqV?Io}@c1ftBLdMqrg?Q_T&>&1AXG9yIz+Joc-QAr|5Ue#om zU|w6^K$YUSe^V>X+K~CN?Zo0E=0o;wo`DQ!_1K>l0eD?#1w~J@@_neU!j3LN4t2`FWKx9Uq?$ zafALqO!n&AYg^IDp}iMkW{X(L8a^OWZvfpIySF2lO9v189(%=lfE`!wna-4B##7c4R5C;DZ*Zu&jah(?Vi!Obe_rtZBS zvbL(-YF^VKEct6YVkrp(vbOL&OhphAV?Y>?$XsuQK-`SVHw{30GhrX54*evl1j$7xE zKbz%p>rj`)9a#U&C$dhzA4$3FjTetC8E@H{XH%1^M^Lod5^2WoSgEA((UEWr-&_a%>di5GaHw5Kguet?;cIcT(I!56IWQ zi%HM1f2V9>dbUOSo!i%Llm`bQX%!0=@HVJG?;u!ym-wCFnQ8~`FGuPYkNt_R1#Q$ADkdBx8dqJ|V@=#=H!*=1P66?ek8sUtm>#FNv%(SbcW1%Px!D zwl@t)dIkL4RB0#JFB^a8*rgeUmYYIG8vD6j#)Wb44ph!B{umk>-s~5amKhD>N11;u z`{dMry4kx4RPwCYH9!Ni1{pVEh>D_=VQW)XRSg3FTv54pegOZ$g3fA)LCl-14}^^c zcQBQh3M+4QJ$V^axXy^Z^b&hhx`0AVLc@-|voas$g#6ommej^dPUD1)Wy?!mms2z= zsdf4lM>3n8Nw1gnGcRjMYYQpfi7jbP#TSCtt^ltcOUH$`?l4BvBShu{OJZ-6rFaMi z2irzHuUIr}`^n+QfOT4`&J~bbvZgur(}lBtZQwv+WU|wqQG3;&LtKuo0z4}DGo&$L$YJ^S zj6>NGS23}LAquLHCC)H+Olr9u8Pe$uFXOmyPu?+Vw=8+%vj{Wigk8@6Z2HP%c^DGQ zCV<}_+W!eMksdWhHiqD_>Um#WeldO-Dcqr|aM8giZqdgOS~`@5WYzyvh#7))g{RXV>PNV{pt($`pWYgt z54nuq9f?}cj^w>A7pt9<&2y;cZ)|}0JywSZ-`Lc>H$>?`TC-VM!X`}(24FpmckVabLJ3cQ1h$8e& z=|$|<#X<>y+k7}6C~$;bG&imZiLQ7hls1m<8(d5x*$6#ig;SMNVHfiOZGn&3qtea5 z2CY_6vqXH#Bo3v834d+H{#6Qo`6kxNTZ&>wI;5=ZXP;7b`LDJ5Hxbhb3je5NPOFwuVB{~}o9%iYlH)40))Lv%y!0eRT)gDYabIvie7_=7mb#&RXKghMd zdy~+i&V49gJDUECd(-E4FXI^8;8PSt zWhZ7iix4^2Ee!fZoH?a^&4%V+rgGM?Yu&$xMXil-)uml>W+9(wENY zJ;yLFv+vffMSo*LvMm34F~-JTegXd{OcjQC@=>iD;+iQji+2_x&|bv^$3(RqmH7g` z>+Xp8178odINaoU8Wg9yyC1MtHuMN0J<(O?u@6}%!`nNn-T5c1Y8Yfe3fd3=uUt15 zFclA5saV0JZb-vs6xU?1Cx269U_!&-Rcm$?Guv^wjD1r(OJ)FVMZr)%vPk4tBML8N zbqKAnF6Gsokq%WUb9HRh&ikBWEHf_lWnjQIX8;5e)&NMD-~9Aho5!r7T>3S#9i{rh zQ%zS^$S=Z!)$ZnlRjY%s=s!!1#YiRfE^;Rgug)-vlcz0Uue6)s*klfu`LI^dkM_lu zZke~k;wdR5D@k|+p&4wPcc{NTltUjbPfv%Qo}QNSZ$Y#v!ihr)o2ikA z;|bdcC{R$b?46;)qv9bLT+4xDfZkla%Qf6wuyD-k{@4%Y54!liu1dX_eV}rv`eTmE zJp>;@k#_hq&^7k&nv+0Mov)~?s56#M`O(6Hnu3y22W|WsMVrrid63pb_L5&Gaj2-HwTFqqos%Kap zhN!h}vtHic*gZmNWZcOr1Fr`sSJ!+b(0@A5QfSG=ZMvfLo}QoUF_d?x57iQHQM4^y z|MEDRv-6c2e4e#*eBcW~focHT3QL#}<|@K{@u#Jsi6rymMS0DEhKGkImOaxHTwQ0> z9isEu(juL9tAbN#qxNT9I)V zN(br#TCfe)pezi`1H1n!Mw#oSB6NdHY;<&5Mn*^7=d0cEPL*}Ki*B(srR|dTVY8LC zki{10gGLjxZ!jB7d-OkGDbCqC8HwXWk7`on$N$`uGbLAas7r3i?6p5ft<>9o^@5|y z*-2dcd4n_LF`?iw5#x$(M`I{z(sqz?qr@f{2 z#NS+Ih^a%_SPq{tTVU{6?{GpHhB}{UUc|{in<@0@Y~;U7jP(8@Qii zWIrMz%dI89L?$LCzEi3*mEn0ac#nB)bpv(TGN-EDQAtq#yIY(7)C#$#y|Er9vV`Rd z!&D#Mu|MYVzDO6h)^ygBcX*azgq1M#;R5;Ttcv^L=S8{LSTZF=5@ zP9=RA?#_l&a{jdtCM@q9;=j*nR0gvb>1O&QNH`~`xAt!+{0a$$C%bvgLbA|mD=JHg zCDE6cmlW9H-Oa@_H}1q~*+-+akA88r!>>XovDx6d@DGMd0}c+t`2Cct!mJ$b=b5dG zt)M1myK~IJHJ>ZtKFae$dbg_3%2UL_9~oz0;8=#i^S^D<`CH)oisHikjEKbMpm?8t zS?u(C#m2-Rg4IV=~B=zM5Uk_T6;7iVz-i)Kr;+(w*|EvbBLmsbY%cU zCg4C=Sr4;^hb_6V7{C-YwpVzEuf}Kr_|Vd(Od(0w3E8q8=^E`$}sQL$;-CL)}BxsuIi* zu6PC-4&j2`k!IqaakF(YuC54Q!_f$r^sia)jzjcKJSq# z*YD6`lhVpi4*DmND1bx~1+%|buIN3(4)Yo#5tR8{Tm+81)Lm&0;Lc(s|kCBIebP zSxjj4gv93p{w7HHWaLUe-z|d)_0PmADJU4|Y6G1=BO@b)Vr$D*9H&yZmoF{v5E!)W zi6*${G%`}DPOVmoW2~R*P+JP_>NJOau8uh>r(Q^i*=tgQM0OP^+8-o#i4vM<-uczU zF)KSa3%23QKYNq`_DIEGN_yiXwAwli4b7S@_?;t;o{sV+{`U*t(Kj9YCvwYXRMEoL z?L$*BPa2y~is*sfRQP1J+nA^M6`tnlIWs{3rhMg2aFohoqzi8AbxfABH8$?z+^a3p|x1b#;3z;;Q;M z>^53e!atVU_RnAHR=qDo<#Tdq|0v9GlQkt=1<*uQ^o)&wqIVmcQjrzLwcLSvUc#Qu zUqJC5JW8rGC`-PL5s^*>Cmc#yUEOSB4Z$WN*gsLT^+m1a6IwTUH`SaLY%1R))Z0C_ z`gz}n4Ys|6TC5e{8%Z5og&C;Vjm2+F496>5sGG>|6;pp63=Y(+{m?($o&Ti2if;GZ zVFuFdFasw~ulX6LXBVc9hl& z-fuqIBnXlw4Sr8;5i-{{DemXrE5trfN(x$KdGju#iNrL4x=C2dlrS$D>F`6l zQDj`;XSKw?hp>R33-o5qa&=stH>lehtmzJizfu7Ep7(}u9a|!|zzS$d;gm$Ffq+Hw z4i5KEB;2^N+_P3?dh78PwWdVcv6D-9m8K$MG;P>xu0?*yc{!4DmvI}=gbuly&fWAc z@RmwDs?*L&H)BV2M^B>13I42bOd(8ylvd@saaXpa^(3s}*>T zTr_Mo7ivbcVo}j>^ftfDueBX@hBQ-x9CjCTBg1+fv8ujh*v~k#Zm{Q7+t%FVY3`8; zt}FvT5nN$fhdO2nD`7?_652vIZ?}(@2kTXF=iB`tu#rC^LCVVhRg-&_fhb$mQC`Fk zG?O-&zn&H+3%d8OR4&=;YF%q|GzhTY;Eih2qERYwcoj={OS|7KaOUzvjq5vY8I3Qp zQodYy*d<3mG$ddc#S0oAtZhU0_gzM^Nuw?W~j~;zzQH~|mq^pRq1esn*<^FdO4Bd>! zT=|QO*aoYANd^H($^1U~f=V$>47zqTgwk|-V`f0cF~|W~jH0J)97dVmq1ALhn+=cN zW}&0Rd-pH`mg3m|7XIgEdbaveU2{4gGyBdbcTNCW;#8jRX2B@w)~vfNNUmFYmi{l# z{1={O;T+}ChLl61f>YZPu2h!QCdNq7lx3U-?s_h+5|Wt@l@qj!5>phrPv{t7TEBn0 z>ebq0a$G40lo4L1-#|Zr(v?jMF-YQGL-;o3F*!u8`$N7FBmf^wfbr?!*i_?iwcxaD z9|LIzSC4;A7vC!EviG0CT)qK~yC(iHTAF^kjzUrQ>+Mpz&So6~Zh{R`pZ+&^AL?w1 z4M-jOwLX=BQz@%)#A%Ks+Cp{sVLZU(zMuWym0Ezrf2p7gC`FxbFm#C4*6V&Mi>ig{ z5*gxp7^(7fHr^n!7 z4Vq<-E}S>*&`ogD*2BXgAvd+>u3_C5zh_0J1^|3%4-sp8Q3zwQhb_4@7*HN%p>|DQ zG!Rf)*>uV4eksBl)(i>opwmQ9aAfo~z`! z@l0~~@GUq5+edgGjhEX|o5c)%uN&M>MgUBdzXv`L9X|5HtHmMq=rT zg5m?J3kr|`Qa_^Uoa&c&pDnHIERlaS)9t7L-A<_?|Hz=_$l(2{<-2g^<7QJtmZ4a-PxQ^*2=uC8(~G${6G!)rP98jTwW)v5x14v z4bg1rh-!c^eQ)BfrwDZIbcm%bmlhUsy-N$AEnzf1{#wFbOc>{v;Iy>A`r4Y7S1ibN zQQx8d&0sQ0FAoYM_RuNsS@RuDQ@1sN+H20plb+}IfLPf8o%F6C%9Oy(?|g4weA0Jc z@_M@09!lXM5DY+J(uqt-35WO|wn;U;_nic^3_FDE0Pc~Wa&xMIi3Oy$_>Xd*0{UU%mtJUKYz@uP?uxe82H!1u5c&2USQrBU(VLG-bpCjIyOZFuk6x? zk}0uMu$+cql`v5pQz}bu)s5Bo$McY%8+1CUuf^4Ms8k)-*gwp0LJ2Bag!i3*uo|Jr z6_y5bfwp)L#RVw8enEZM=MyE1#r&Wt$>3NuMW<0W#@&@_(}TCW+R7Ik5^{RK`t+vt zcGxQP@>^N^^M@9X`;4qCSj`4|ChQL>GPGDedcc!pTcd-p-EZgQCvg6K26vdc*57oZYXg zfzU^PSWml(4j4=@(1#@r0)v)ejrpC8?hq*=4XfWP&4MtvanZ>xU~E5ZI#|ty`|-Zv zpo9f#uE~bJ%K6ol=XK*Ms}J+6NSu_XH0>Ptox6ZPSBo!OZ@L*B_x#dC*R*QP@kV&A zHC{W;=@xeo>8d)RpVs;;Y9XC7YtaFu*sPQ2ySu6 zgR!8J-LTvEZfK?B_-El{$`Ltt<15Ft43o`PwYR&~M0GxEiA4-Kbf~fZhb2C77>pit zk@|Uq)T>K_^#>TfCR9{iBF%OB!${L_pJjE{e)Lp8tD-;4rT4@PBx^cde+1{Z&FA@> zK%j4V(fh`Y4oJutn}B(pGjI$%9by?hMCZCJ_4O?C9ya%MQ9_?y@oJy4cr%Ff^~QM zg{aQ(_&%XCRlpY)!@s8Yp59v7eW2{WssPp0vk z#^J6&$N%}`MJ^xS*p}x6{wJP%c9JmSzDI0&wXcA98rxk)x9=IX58N=(U zhasAx?;VaIA{~`~)5?U@sw+a<0oGGY-JO|v7tYc7%a=k zIGk7B0ldUYO<7_33AUqHbte^-4pzuw5ytD?Nj@eFR-um>KT%#$JCn+y1%hP{`}D@8 zOQl4b_ttW7 zZU;xd3Beq!aVKzSF`-kbsv74M{qmL$oda)Hr10&>@KZNfhAWvk0hpKfz~{Co-b`Ig z7QqVmr{N=Lz|u4%Fkgj3^*_$j(9)g)OXQ!ptPS$$DG2h#hu z7pEn;YEG~0k=~mQu%cm_xMWR#KlP*c zSqF1ZDBQL$^Ng+aCEsWgyyRGeVi~EP)iRqAl+9uD>G{b{A)C%tB@K^0WF2lVmR+Oq z3995f#|DBv5BU;0L-mmsg!BfJxAIeg{vznj76M$QYkEyum^}bM3|}z^Jw_v`t`kzLEEfB zT14??83h}1{F&C_==I%yQU<;Y4?b0Ucm%Fd%wr#AGpj?ei3EBfnUJ8OB0bZ?KbmK_8!YqTwe_6 z?`7SQu=b_DY+xBWu%dj%Tt)iyE5h84>wA-)yq>PTdK{uoO`!(~ia*2hG{B>4?9%jK z+$Qm*$CQbuWe$?`x&iA(sZjjM2aMRCXxT1EkFi(ZPehbOdYT{(n--Q#I}+ZRg%s_~ zb9y4kB%6qcjt~ikJd#&QBC!OaFTv)Snr&j!dH{j-)aOrlJax};H0>jxSw|w2MsCk{ z5>qFcdp*))zL&(x-nu$H5nxPd~@}deLZp#z&lVN`?Z9Air{?aj74t231*b z%f2 z;cIhBo7{-Xp|hm+{tF0c_R6R=O-#r;V3JdE=ncK8c~u?L9&&rU(!`pG8JYefO!Xp6 z>bPR`ojmP+d;NHGq}^64VyOmEFQxlLatv`V&+H6@=dm!$`a~88gTk3Z0OK+2f?<^T zn{yTW)Z)#bPM33o%|yzTq`lGQg<+crGlG&5=jRd{w}=`12$Kdz18Vsg*Yf37W65&r zQ7~WGt~X$ul`ua|dz=ZWTfNq#!ecDNKREcBN!{cxD11b!gjA-`X45JvIBO|xRleZ2 zW ze*BP>jrnEXz#U(guCBVu>!ImZ!!cK8?MCMh7xT3O=cjf07)LI#*?~luKiMw&*`=IP zH};Ba1dYH|y|;~kBs~9H{B$6@h!OWjB9D=qX+M2CeUSJ{k$R}vz^Y&~-<`=X(iX+9 z9MmUAQTWF8g+kF74npo8$+&IWzkSR~Fi%!qHy>umSGsQga%XpqqiJ%`JGhu4lh+xr z=b|{yE{QrVD+VXdSw)@7j@Wzr?I#5NoE`;J`*j0btXSSJwC9F2d+3AJpm34%AmpM$ zdY3uQ_jLPzRGkG|RnelZX^`&j6lsu@MnGDSPHB+tkZz>ALmFwNI~O3`-5_1k=^gB| z&wcLw1>%}>%{As1@29i{5p_ekZ<{*J;3awX0!syuNeHFIecqIwzwn&AwA`FuvdUz# zXJ+HCOD@5~Y>H%lh$(~o7izn^N2BnInpVHw-a#~~bG`RHlsqg6Xuo*FSSJ|QvsmvY ze7A=CdX4-oJ(@71i;^3%)C%Z|HAI*^Z)|F}apk<*HUp%FoIFF|y%9Ah)Z%|N^_8V! z{BWuBy1=+RvXP7t#!s}l$#-sPr1-bJAn>KtYp>z+@wc<4<`CnxgwhyWAr`*p%eO9B zk%0;dF7Eks;ZWu$1S9394%I>e!MHDKP#=#VQHq?wmjDu~lOJW3oU`2BB;HeL(JA`@ z`zlTL8{#;qayd3dYlSGHR(0>|tr;N|ZXz*1Hn1tZt8epem?i4yn!}m%>NUVc30yZ< zNjT;{Yq>N`gga!aAG%FL_kmVZ)QT%E6s7k`ztsDIoMbK8H zJ>yu+;X6gbb-m#>;a%j_@y=WGItq%m4RO~>_y>wVqBcY5UJdNF0S26PAM`KM z+ecX5dV(K^4h1J_@zxlj|AzfnVOAE6%0z$k=vdFpO{n>20cCNDiP{o3_mDP13}HPA z{A$FQP;zyc+a!p_a&qZlE$?ZNpMA$b65|~{ZP)XE_wQLefydIDE7rq=%{prna^PG# zxKrI}eicZ>nD8U~p`byxT*MT{!IqIV{dY27IO3)C>%gzivn3!r$5qBKx}X}WZ}{7_ z^sN5Ejvm@iYUCRy1w=7fz-TkR!M2Vd;*aNq9R`Z-U)zwJu~_C%y%wFboqk(b4;qMO z%_U+LbO)N_<2AJiy2vOMJ}*Tw8*)t2+tL#%LtRvsoUNjH4wsN-#SmrnV_D$5Ve10( z2yRU@>lqzBy@y2PyJYl20wLTmswy+oJ$Nlx#2qO(6{v6o$KP#5TTC=GTfwK>huiJ^ zQ=LR!D^*sn&~2kBC7ER<=_T3_<}}gh1;!yO1$k1qP5GKrT=uo99*16gA|(@oHzVfR7Rhk(U2E+Sx*Ob-8LgiT(PUS?pVU$G z8vi4F1My9vDzHE~m(G1_6Up|43SDYpnP&W3rwG;Ti%!vw>Cw{J#wNwxr?MZ;o9RsC zl49+e^R83YT08|x1Cn)uNcfkPfpV)ybK9QER+g6$O1DyOvMDA-<(O`=$wU^hq06{I zdbYL?jp z!2A`U6(LP}?i<1M7qnaqZQv~#VNY{DAxbNW$9ACKpwd$%m(5u&B40zmdh2IRTL%g^ zY@z-FL5qkoI!-<=ty98l@UKCnE;dkHM()_Bbi9ryeOXrQ!l}KSp zbT9Km@$UM8*E`NP0y!=!8#cRSMvv3EhU(7ywn?I^)xt}8%(MYVapmgd<*}~;QqJQRnF2nGKhq9t&jqYbPcwL!De1jiufH+mG zcWpELK4XF8f8$%=WgU&yAI3St>ra|FYC(;vC~)uPH->=@wubBXf;E-bC0U`B^UXj;;xGFUDk$*ns zc;6+!;Z-)$d*{!8(UbAdWE^pPC9wT0OXft3p)Y=KVEbLX(-O$@o_k-?bJnQy6OubO zS$E7|*awma+9|Q?u9+qr1v5ueZo2eK+r4dcvkG58o$aWrsBV*o^zx*r#Y8BxF@?;O zPIzlVHud&WkJpUcmN&NHz0qc^7o)fD-qP^sTW z{OFqt)=$!5mTP~r=r!X44plekS}4TFZ*CfW;_-&wgQ=4vJ|MB5J03G0s9qfy z9C^Q5WW=nO82VF1W_?02B7$4toBOqlv>rxHFPc+lhXy{+O_^9zp>U1bzgL?U;WWKn zNz|AO9CjyaefDf`f+Vw#K+G$sd0*O@Eby?CecT9 zJ1|Jb%y{fKC>Yn7pA&j%d5pz|)|kV;Y{yqt{>}fuDQ9M;CI1s!`y`q5%&3!+iC+HK z#!8AF-;ri$P49$fF^eNIX7>K5Y>LMJT_k%~(&M;iAc66#_TpT=$)IC89h{=wn+9*yT7UDdqEH6Jjsk_f6y|?ZK8U2{qYw4%@N5!b` zXY~@o%_7lpaCAX$Ar%}ECZ}%F;|gV6=Zo2DfkNc??O_Luk253C=E%&g!OKua$Z$%p^#oG#FcFm~SCrszFF)oGWB)+T6`oT2ZM;S`zRJgIt4;Ku$(Ks2=9IGo++9IWa2E)Mc> zgQd9xBA{)8x5t(|(bgxvSP=?olT_bN{;H(zo^Osmgb9b^O6Ff(%9%3svp)R?|BAu5jqs_vv1*neabFxMduTHDr*?5&pSa zFzlisgkHOk`aWFLXNYa&BkOJq`DintK{_hKEly z_Ae=@eP`m=zeh%rszZ)=HUc@$fR?s5RXk?f=Ly77hh>NUf{=;;26j=)IgTyTB7&j6U?#QCm;Iz~87#G0Sf*>Rv7}THN0GnXiOk z{opFLvF@2D_eZwDWS~r*U`Rc$QA749c2HJ}j>7>i6N#WH`r7BN(49ZR?Q1gL+u2SO z<6p?FPpsx}^sMUcDEZ}!YA{Tq4YQ0>$As?|>LVhoVAz-pi^yf%^ZU#I&(s~f*g6bz z^sfWjvCU6?tT5sGJsMcPAiU%&{=M8ldFFTD&A=E9%NIVk6J2J5cG4H!+qI0N-{@Gw zEaya?iJ7?<#MUDLFUSyZ9jV-|fJ&NvGzSE5u5ljI-?%S1aRhgmk{q7IRCz$>6U!$B)a5~VXTrLZ(9={k%dykg7qQ+m~;YR11eNuMx zPR0v#;_F~p$>N^AlOy5=h{6^S49&COLqq34NzLfB584nlcD4KR_3t1+-9iB zHprr@AW9wf(trRB22`yERS|IG&s0I_btwCBFtG{#B0QY4mR3IZv|iJPikZW!i3~W7 zTQO>&_SVGLHJ*%JlQ@Ws`XKE>LGjxLMskDauGZX$ihPKc!kO#xmttn4+WnHU2wN|e zkt^Zcmc9zom?z^Nxfvgs@laRJUz@YRjD_g8b*(P%xrG?A@d(?CXQsazuL#*ps8PnB zNtG?OoVG_`2;V|Y6)W`vT@FOdX=_rTdS7_lP*K%lpJ`~($OLe~vVstpX$S?a1=O~$ zH?}Y&?e28eGPz!>VO4>ORFP!Ws)5jlSpJf_f)vdV9>HT?pA$*sIC)a?IL2>Cd^8+A0L}FI4E{6s$HgKAJbY*~vT^&7 zFOQ77F003S`u;Zy5J*-u&|JUw22%zof7R*$(*)1}FBPWGx)`sh{?n`p2K`eWmeezG zCNjBaQt!(N&?74H4}R$hK}mG}?Q5=r6C;;qFF>Iai?eqFFzB@OYD5Yz_EEkqRO2h^ z^@)3lLjuG2MWe ztpPvM*!zXr>&Bn6eh1WS!U&>W3MdBh0hfut(xTdcUNk{VxQgTh7KONovG}w&_s@DT zc)1;PzD?xg!-;k~o#`U|f~x>xFKls+k7q(KJK@VZOaQ;rpHvr2^aYGvg^&4_KqZ0& zOGQY=ZCgHTfUTYD!m%zz6mQSy6Wgux%>e4W@i7>MAf4B?wG?ixnqT8yX{wF7@tnX1 z0PGd)AnvGZ%;$f)dFA{eB>Z;KUJt#zGUey9mkZ5~t=HX-s_I82U4L#ObTT#91Z`_7 z-4D=uXJ#}8HMm>J{bMyZ;{{vh9ede){9x;Z`kr~HP(~eitcUS)F5O+raO*iRHFo2% zVe`0I9Kz8ZhU>L7(dHg2C*F&w%M*r9>5BtByu3vi9=QXf5l@etWU#bQ_c4KVD@Ar&#P zk|?8(cNbB0dqD8*K3e#NcJ%TNfv}8(TuXcmW)vWQrR+B^5V}I5Dg&SiX}ko%_8-Cl zADecRJ97?&1sOQ@0#h_%KhV1a_*#S_K98*GRkPO-XHq3pkrRb+pKr?yp1u&25swwW z2%_T>H^ZV^Yad}qL})&?0app(bB509o>@AuWSOmkv?`D1I-ajsIb4r!z{VZB`cLr9 zJAK!rG0FLXrAY)Z{|#_%;n$-oGailP$)KasbphT05|wcFvaUo@#vqm`lCNL;=6M6d zH|&}&YkUhNv@Wmd=C<#K9)YTwLBgU(@cg(dk|7SB(YzYze*;O@B3HaFM&_-m+J;9S zN{h2OW2HL|Uuu4TJ~k5zg6b8-AcI$@-C+wYxX8D@$-t)TpRhg~Z`>@h;t*`}W8Ast z%Gtdj1ber%R#n;mD5IYr6}YX3X|JPG~NxFw#riv~uXIrNbd^Ump&C7gD!! zuzuBoKvcBj%HWmT;Y$egB#13 zNMaNch#dk$bao1(DLf9{5^p{~HMGN)|E;EmZ!deAXU=h<*0OM1S?*~}_eQTap1y^6 zdN1Y`i-P-T{V%Z2(}GETAI~A4?;{9|XDouLnSl%c)WV!t-Mo}VZvp8m>Tn^z9Ircn zTF)SDkJ}_E2h(1l!srm(RC6&xxVG+qdhGzx0vWlxpy#M;EAQHR^%t4>z9zR+)J{jP zaHfLexKeX>84bp9r=*mH>)(xs4s2(==ken%9DkTqp#i!66uqneZWw9#iH5&QS?}*Y zW14cAazdPpQ~?KU3Wk{3bCj%>sgJt!D-nM;^r_AQ?l? zePk+&*3c8}lq+{bX6pj4V*QXYwyjXDS=6soHwde?Wp3+Vb+_hTZFxL;g_j0(EXvre zfa%m?qEtxSyNIV>u6rbT`m8RWP(UQqYg3iC9228&$BZXNnOUDhCIpZE%Ev3^mq$K< zlW@dJTkZ;hd_X3GurEDg^eL6INB*jLJ!DlkfVSo73WsVNR=pPA1kQo_tCUqknfGWc9p)L_3 z!p1fhDU+I~V`jf4X9>fw3)y9e?)x{j69>|}OjK#<6HejhE_4gS`3t!hw1IVno?Z5r&Ij+bUjt1{c2i*(kM zoysuI@Ne12)Y=#_2`SAQ(|imApH?SJOfxPM^&WU9x~m%%k2K0i(K52JEUI($>ie4h z&m=#3v2UK4qRwX9iX}T0jEoCT^}XTG;I^$DN3F)*rk>XYD?tbR_1_d2oP_@G(??Xy zN(W3^Wpi8>d_Sbpdo>2~9IzjQNSe1MkfqM3hsV8N+E+HF6ct@0dRIuak1a}8SY46T z5_96(V?g4pFo3HE&vfuskt0cXBe|EG6afVp{^m6(|Ka;P`W!kW!64FZEvI>Fn_^%B zYrhNmP9CJx%sHtd)gZwGgQG_WI)2MVpGx6#B7hr-9dGdUnA?d|kIB+z`$A=X;q^F$ z@2EMA_ADQI$1Xuds8`dA`=0^F`l!Wj0VX3XpYnraFo$jVQbC7KX-X*zF!$ z6n-!HgXP{kr;Y}cRc{+SWE6qqnJR7>cN~|N!;NyL6cSJV1ClSa>e03-@keWH7|9&= zSi_{5X#M3U^X&8C-PR0V@pTnqpINhiW8CU-W=y6-juMC031PDYoYH=Ydi0oEZLlS9 zzB07W$=u)b|20HbjaxV7!kM&Tqmzwc1-EJeXJ-+c?lpq?xwezTY6CJOJbdSc*orlc zF0yL)`DlxG1=AIONZ^nre5v;FcM(xp76n6QT8IFL8R9z2t>-=!olrEN*tHzG_ZB~7 z*!9nsNv8~^bQn*X!jgOLQC-*t;8rNs zBEjpo|21Xl^6TuRC4F2PgJ2?Sry*fFYZc6)ZG7|V7bd)r;@cpsJ(&oOC4Wa63LX$- z%^w{}n^ifZqeW%pupV+vBh-b>+G(f91wITBeLn^PoVRRA5|%-P*%G;5D$YGZZ9{+& zfB3%PW5A-0U0WSaD~D9fM_kebNHvDA#(7gXJK;bs5$Od)KB1O+^6Blkrmf#0t;ysJ z=UHaotw?hT0;l(1{s<@qQ5rt%WPU_#p_w1oxiY4$?>s-o`y)Kx|^mS&9q0Y=SwG{ zRHm>%+AKsCy7_$opEjnRflW|Vx>?F-UkBRIUceO7B>USA?{GO4tW{1r)a_gvvJW^7 zhE;PgDSk^3ZsBl+3m!3CJthoc?d25O?BgXi!TC3{4Wjuj$0eU8W3y=Rn~yi2X_Ez0 zmhshD&W$b*JW44;1!yfHGUg4acANfDucnR&8D?8tnA#vLpLA~V_&z6-0qG2t(kdbv zSi8L1i+i&KM*;mE=Z_hL_JvzFwT|a&T}1eIPU0j~^sl3`Aw>QEc zu_<$j`!OPMmJvJ5*Pt7^MAzUbU}!3=x+;Ah`F96$8W^mMI%$gOGzQnRc3J~}i94=F z;?a&{nPpH6J!>B%IPH$zk>ZwX@KsWeal|@}i+9xjsqIOdVEQ(r&5D@R_?I%ze8e}O_%cULVp*pHj^`>oSytnf+^z`9)6B-549i zjJkH{n3AT)Xmc4!cg=T)u1osi|Vu*e@WaY>?Zdfw$YNnh-)>YSG`;xDxNLC^B4qp{+W zkkLKj66Urc2cOR@$GYsZTfr{&=rhr?m>hu|-CHF->`{l>s#{>iun6DK(V0tXz#;TZ z3i%~-2M~=sUw%jT*?P~5Oi#U`kOtl4&n)Q`(KD=c6zbq4e=KKUFHZbGcX?icX}2kV zGc*?c?wYps-z+h+-n^zW7k*Twi*vDw9{&X$<}NmhUfXo4(@+OVh2w;!rFX9h2PbTy z5b-)u5<+qBD?IaA@yw1qF8^7nICnnr*qF*hIDQ#x?9(WxOJ=qJb4iEd-LLNIBBVK| zQc|UwYvR_WNOoP5XI(z0X|AwNC><9cNHYy`6*_GK&@yH{fXg;Wyfi$osQK=|BpeIx za5>{&oKeT$fBT3iv|*CRp;baEvIVB@C?-vr%r(weE+Fn~SZ{(Nr*YkxUX zM8U)2dR2$+MR}Ioz;PM6`N1xC@bkVUCR3(YxD_3X)77S#*4jrh?y}52GygU_0b<(9 z0-s#L3B?idja-Dp`2tN3R0RWigvxA8h6P4C2|6w{h*N&uc$?WCSvD3D zbGrs3)zZee5JK40Z)cDKsufSosJ@6wkgzFux%+rTa%y8nOk#99elx}Pnb7;-esD}! zZ>)VnclkX3nyH;Y(>Rl4%&-(xd^OSi45ly~2~*_BCCW(q^ZKG{9D(Wg8ZSl8ER&ga zS=lHzP^YT6E>|@F@Jq8vrm9C?p(u5aPVL)C2UULyKzPAtDRjx?0ev8j2W5L>EO~KV zry-D?UXuUJJT-$r%wi`mi)~$+=PUS&4C_dJ82{tjd~9FlxKZs*q9#A*(gq?!t?E!A6J6v44-PRU=S zSRm|LISCcb=nx~XWP+n7Dw}`B{%x;)==%0|FSOb+gE#yPSu{f;SttB8^!!(+LQP7E z7WGe9tM|u-eX4`FX;d|KwILHf>%II5ba*_(%H|0j8jSy9$ApR{iAGKP858-7qVejZ zz_G*V*3&vCu;X7WY@W6`#+>P9fKiQ41D7%*c- zP$cA8pme}U%UK(p`Ve2@`Y^U7Icwx|ui_O3;mlPo`s57wThpy1@l zW-NozVB_vk9rfYf>g)8)zI$dyRdSjJ*`hzZ91i7J4C<^?c~G^-lWFI6I%RO{^|CO@ zBSQw0Nbne+nl4sxPU98CTu8r2@Yt7Vd1}r7*VV7LE6?AH%zMGt+qk$w9rV*;LLJ`8`7EuH7R6~e?1CO#1>%TqD*e@?-q8H&j z1GnUdH9H*)zE@6;^N+V-a)nb`=*811#!_<4x;)JWQkAsO6^>00SMQG_oy+&MzlG@5 zpqqWDco)IzNl8bKX;9dxk{tdOBO%>A4V_+?eU#0~VQdZNv{|K;Wu8N$S>#VNBo!~i z(4j7?OJ##)->1SwObof2@SdaiWPr1L^FRGnfP(^m&Tqv-0XOB`l4=MolU7F&bLouX zKJ;u-Sy>flxRPeH-vW!4ar8+_oJBn=y2;TRSs%^v>jTCe3{NfP1S%qK`0cz2BT$|3;1dY^Gsr6s%O`KaDzXEJ+ttYW_0H}a-% zu~h*qTEb*ap%wQRmJKrVVt%gDS5%5WRVMEx2_UK5X1TgL$SEedmknG~`?;68%e6At zxzi`Bj>TvAzgA}a^9wp}OI=H=ihU9$Vjq^OQZ`4I^pDOyPTi1%9@^fU{`U`jNoV-u zYUFb{Md1~AYq`xfPn4R7t2YdxaNWl`Y)*9=;=j)-p&Vw!Cpq=E|0H*-f*esvjzto8>F@)Y3n5#Z>K2W=(487#ZgDHHT#PDKnxU?u{CWS02H0q`d;UffXvnL zDMMLT*ZL2?lxb`M5e0si!x)14 zB1OLRY1AuqEoU`A0j2F`m4qSNof-_@Hhmfc9zut*hDPX%nV=xz3$*UxOg@T?k&wJR z>Q<0@=L2l8m&TM6=`LVDo&U;tV(v{lFx+@~@aW2Z5qVYEd2Pg?@9z1ko*?+SGxH-# zWS5C$ma!M9)zHkds=?@V@&&JtOLD{HgDLgX_{lscB)GL)ma-o?MbGFDrf@`Bhx+D* zY~gt0<60s?7()Lb;i`hEJ=<_f&>QB;Ro7qQKNbH(O3(FGv?zi~T17s2+&uDppQhuH zrRClaA_kiFxVWH(kPrkf@E+_Ayg)SPM*uZ@uc#Oe9jIg51P?s07c3oGd4)m8YUdK5 zd9$03k}li#paIT2`(g1_7^TGgYeq&6N-mcJRVVTXYRo2GRwu8{Nh$Z281Mu*`)F3E zUl7G?@xu{c_vc`lz!+n`UI2ZNVgAP@Ft&w@13 z&}18?E(12A?(Ky@M*rVgAAtek)6~=y8q&WVHs3D(-Av^{-(J?}Dpihzuo zAlJ|8LIai`p6=@h2-AxzNOJu4{){=FI6r-3Dr96^-xqYRXRP(h`zl!z?w^lWT>)|X z8ESsnH>RP{$$-Jk!X4aDuR1-3qX(U#xs1*a@rMq4yJb>v!wKBZ0cugK*e_qcpt?tr z3lYmDGk2+J=)reOR-0Ob6DKfC2!?kVGVNiClyYoGb=tj}{8^e=up5z)k=X$Y&3du+ z)k`wjpF%r!k9@!h=^cnzBUQGX2*8HHkv@Bk=Za}I+EW2cGlOr-0q|@vz%AO(ffOxx z4Q8Xo*V?_KW+I%Z&W-_+I#tkv)6vOEViADIb|uRQDokFQATOP?BVfoX?5=^z69Q|o ze40_Y<6}Gb5GmDF^t%&wE7~)J&g7F!plW5NZBaa*A#(i_Md@66F>YUC+*gjM0q5ZB zWc932M$KYl+#lTsE)=sNj-oE`qZ-D^7Zlg36K{f87xp|{={s$*_m z3ks+B?%bP`gmR320f*WF4q?{#5rb2XS>CaGY>vJz#hjk(!D<+|bKKifa6{U9CxE0OCE)g;Lg2XO&bcQXs3aj*k z6AV})GSBo^629w&B8*{p4XD~_5MrrAJm{BMYeF9DROl4oR#nXdPXz7E3%FAV2f+OG z%YrJcd!lN^Dwr3k(3uVx@8gEo*3u$szdvBI2F$TG&nwR4x1%Y^9e-HZ*f2mapwVA_ zG*JBm52S7anHTUGGr_?1yDTa9d>uMH;Zl;T^_!PUT@4bs`?`PQOQ}Z`$45zEpB5IP zdk8Fs3AnJhc7(crWZ=^5&%`<+-)?{RTG%vd{kuGwsPnazdHy&qV5OX`f6?);WVMw= z?7ib(r)Q4S4^Efzp)T(cWD7$wts2SDR04AOTJQtH$@VMvN$EMyBj`riSfk2^{-p4x z#C>tjaQ1B=T79ffsCBL>+z>y6iqx$u?Ar&m~&6~NPLVUDrC0!YS9FkYU}L5AiIEa#}hP16)Tv(KAg z>$DpzpRU2#IS;j7&FUyn$AR`M*;aoHFKapwZP8i01w+-j#cBVcS7_J$9*$rQstv+I zv(~mC zlFx`9Tj?N(Cq&U_PSK_4{`@3zR0W#AU=p4ObZN!3;TPuFSj?UI+dz`QHT?7iT0YYH zDsMS39ETyjZk$+Ffgc|_3ICn;8j|012$UQe4kN!@fv-~DOvnFprZ%OZs{|u`dCi%G zy}l|e4>Kk)Y+i)-g|jA|Abet8*4&l%<_{N27!#PByf^DySqn*D#ctr?M=9)SeXWQy zH=@|vPc)R#sO(u*&P5GJA1P^@RGcVCzL1436bWO{x|6rkuD11%M55qLN(0aPGGM%>o36&5~&k1Ezim z_)VYfB-^SC&~b9lpNX2K3_#FfZ^im6{BXntYiI4uRA3s8Uz8s$@PpCtRYE8x#6pW2 z6?Y9@ zwnQ@yz&aTBs)*dtX?89RKc`WRCgOrX837DXI_>wb3{(mI9E>uQqfv-2nT^*wT~TU^R#WAXq2W*(o28FUdZ4#W7em`F%Lm0-t~BeU9e=qps5kw?eo$`PUX!)`kY2{YDae6oHPN71l=NXQSue7z>1s z^qsTdr`d*Uhk3vwy_j7j2T7@X$Rfl8YniWjeG(xPCm{=SwFC#6k6 zIliY*Ju>e3QCV1W<F!H))i$!$8lIDtbBdPbbL&3?&;3FKYQhew#_uz%ppf;ILW~yk;u@sN(i|+Z z@@KwP#zj)(Gtu_vM^J4UNWFX6H7j~Iy;f9}{5ioq+RM)*%^PWH<{lT}1Ju%jpDbfqI} zV9<=XJ)Zab=Bw+kh_yJf^U&8qV8~@0H=UF7v=4@An4y1Z{*CdlxNgi5NC})mFr#|9 z&7NnkM9<)Qvr&T-Tc_bo&r_P1IH|%gdWviyNc!N&77s^X_RY=8L~tM_&>&f0Jd72Bd_om}Q;b~VOy?%7Fk4Gn$ zh`{;3zv+JLJ_T3{N!TX?h4acIf&-vk-e?8W3w-njWU`Y z+|M3<4CK$y!FSw@4c8{R>|9zr)$N(TmZwv#?B{+{Sd_9b7}PEYPcplr{4913eeh#u zKK&H3NXphqrE$3k?yqrNqi2 z1*WdfR?vCZt>g!41*Kz)z+9klxgS(YFJwk0QdiHrP{y~95 zG3wk+|pV{geRhsJz^S!lv1Y!AJ?T` zmfi{J-x%_vQWJg%e27qJu;s56suGOWZ4BPgmxecfO6P=SZe39hOPCiJgE%%45PT>N zNH*XjwL6V6MiHu3J$YfJUZ-8w$=5AB?7KfW%AdGSRN)uld5d zLYZ+HPJQ!HUputLE(>Rhe{X$4!%w{da_?Bq)PL{j@^|O$+LS=UJD_XZN-nO;H-;=I zFXxljpD&c`?RL3lG=4Z4C1>dTQ{~31y`ia}D;A$$`>sS$G47TZzyxvr{YeRWH}Wp+ zb!9>^zWaECb0|}Fx6Wl12N}mbvWbay^%%4(Dp?^Q**Cl|bPKn%jxqIfU(QaHxq&I3F;_mgl* zMzHi@e~8Rp^U84a(5jqGL&w1M%h1e>8d0NFjf@YRRWjM0VPILY$!dCX#BUk(@-bGc zHbTB3lrX%g@DGpj*3|!Ol`dp9Z0C4MHkMA7cWS4c5Vkte@TxU&~ z-75WwY5#30vR!y{sDK^#Lo9N@Q|fq1E=Cas9-r-XZ`r^7#s_Ka54my{63{@AD%TMX zPb(vslbua*5*U(y)Rj9)!Y@V2GEo0W*OaCkj z-DH+ryP^;iE=Me^56jLWJMJII)x6%Sz+ zVM1v|N2RzvqHz$U^m(+KuxZ6Glk`+S9pfgRx|FWE=jw0m361^uq>cRtudHsJ;(84w zMNIetgkQ8wHHLpSknLXmG!;+)7YcBhz~Te$Mlr7sbw zFm%EU>PQW{YRz$#F$7vP0>RyS~bUyih-Gw$Vb$LE#Xu6?qTF8LIMgrLm6QsPbMvaxS=;k`@ zrTe)>b(^xf3Y!WY`|q1jsvnCezYgg8S7XDZnVg=9bl}*bQVl4a47A-mk%`;|ZMUED z@7`q-w01m{XRGs*tJBk|{iyJ(kk&25c8Mzc^hQZf!R))Ljli2a57XbB37o=$GL;Kn z@{bZmsTZ>X(xYlC@|6621`wq}cPBd6Z@e0lJIl1=f-tytBU^oC-hQ1&7_I{thg{yB z*y-!uaEbHczWnZ+iu-IDC2-k)YZ+rQ7=KgykipQ2h+nxJ+9pqu(+{Gn>bGKF3237x zs%EPc!s$1qKQ+BUJW2H#`SNpMs4!gRYhJ+S$OAd%Nh3U5yuj;oSO5F3J;Ez2x#nvu zxOUeLUk-jmMxusCMkdC_#wIIuzmv&@hW^GYj2=Sc#{+Fa&?yE}p^#hIp_?=sRi=*C zGxYnLYD`meYg2l{%qD?hETqk-HdCo1Yk zOGh^tOC>=|PhWJh#)F6Mvo}tq_0uFA7Z>+Kv0|19s2gCDk=dkFIPH!mU0ym1xdDu! z36OWNiHX0=wbe&}$o~$IX%e0uZVnCL5fNW_ICR3o`cEx-ESj)Yb#`m|kQfR!o5jrZ zrJG4Pwn4y^xLhQ>jXeQr*m05Kf&vQ?3<_c93?7?!@CqvX{(Vq8x-J4LAtjlBv&F2B zN6jftuKUFkaI>P2hSO^l>TPU2Ho5)d{j88mR_zXa4_t))sQU6Jv4zSe)BT7yHI4e) z3}1RrcTiUQDj!096*waJa~;^wF%}C_?E2I;E6U5|Um`n1{Eh{^5Xf&ZpH=sv=ae!8om}v> zlF(HmzB6DA#Q~0q#RM$0c}=E}>NOA-lY!mP;uG^#nUMFcZ47}^$;7fhw$Ji;0 z9zVX??FYyvwwIB(_mYw_j*dTpirGdHRz7Fot9O08!~iM?DQacv`*XG+oAC+*qpIT{ zZ^vDfd-R#5jP+P zgZAoU>$wLzssGK|>YH~BW<;a5#77ly2XD0SleT3Y94hZ~?q99M=Ptg97t!3Fk40u= z$1C&Vn<>gI5r0Ea^jqfY$v`ZS)^(i**KXDGXt`kp4m$~KaS8r{gHvf;K&wb2XqIgi zD-e7<>v06KhupvCr^38E@t5WUOZ`dX7Pq6Ihdsxymqrj7}S*o1@HBJ?o1cztWtEr^oJwh3GFq#OggZv z%3GMdd>%;P^Kby4huhjRbxVUe$;;X^A)njM+=0`d*f1EDkK5RrGdy(#M zrOepBrVl%r-(EL4uj3e@k$L|v9%vWySC8#fg2RpH77@=843ReA&g(&4qzQm0XsM{gl+^NtFMor^6d-i%kADcOmSbyE z#m2!oObICY3Q8SULPDOG%?+cXyfz+)zBPcRkil1Eq?WMExQPy#Ew{p3y7( z+Uf238m#*^>`f5sB7}QRmxe|va@@lLQv*07NrMRtWxg1P*tArgn91P}ln2#{J+U&n zftd}aL&^Kg?{ssLlIS`fci3FWS3rJ|1}urrI29Ha4uWLAiw~$l_Z;4w?d8WD1kj}- z>UV&S$AKVk*xT~(N8$MwCY2Sm#~@vbMHNZA1RT$5OxbAag(n8I=W6S2dE+MrEcctJ zk)K}?`!W*j9f>ih{UGb6Ns^9l-^l%>lepJFOa2i4$xvKr&2xP2OIc-M?1+#< zKu?jX15Hu{SUaUcI$&W(giZrp9F-~#X(VV4ZBA?;i&3@a=T8-V_YL@CZxZe=iKBLb z?kK3JiGX=J&b|HSb;5fhPb)mrT^VoxL4SP8GQQBRh!_%IhoS%M0IE_m8rjY>O^*7f;GX`IwF}XEC+b%LL+aPB)0XYmft-bk zgsM!=<0*NaKBX5&coK(3DYfaha zFBq1X%tH=946p&9i^(d3j{EWc94=xQBy#2;#ph*F!mU?HY^czP&|yCkk$QRuMn+}= zunpre9SAXX&bHfty0<777XR;cJE!$Ld)8WrmCY8Y$Hk(sHj1Kf;J){F!_0mkCLShN zegQN-r6t5Mvf1Y2`lW5~t!^mGD;h%2!uiS!E?JBavF)%L97stPTWh;bt4%rSW1k_z zU|QqL#cHYv>%Mmsz^z z$lS*%e~fPv8^$4N1r11qdn1v3b?jR2>%KyhyU9`L6;l*us=V=X}n7rSEdMuIW06BtsgJqGkpXcVu*~%`#jG;e_jP< z>&;+k%XyZD!*#YTwFFx{qTvl{m`ZHBYg+7$*tY&r0+IgN$9bHehk5?-PyQzvzpILb_hYfXW=pVSWQrlW6e3xbpO zsG?eK`i?|f_;N6lY;)jAT(IS?uj|XuiP|xuUEhFvy(;*BsQT`BD#JH!j)Q}2+2hzN zBV=V$A+v0<63P}i2*=(sL-xuH85!9lJ1cw3h-_u1-uv$?7+>!mlz4Fm;r^=?V5{Rx*~#XBSMmrEj`BA?Nt61#n#hrnodk#TF1d8X>x zBYF5`MG}ORqf$<1?9GWxo&4?6)Bk*D3_H#qA4oTebhD66Qkeo7Ng5pRo{(qVd307{?N7#~5p+&JsCDX~yT{seE^at}8OqJy( z!eV0<)P!EJWGMri6;(RRXX)rOy&<`8?CaHBYkZ3P2ZfcqP9 z3Q_-9;nIjCU@{zGCApv7_MXSDY-%+%q)AV)Vv^Z1fED`CnNj+Q#sA4%^?I{dUCk;{ zy$IeJ4kl`K@IAUQwts|r;@4dx&sDC~*WcZmJMpW%=DmL1>1!he;f9OlJUe)pJa8lQ z?7f%GF>N_m*hjOilimw04HjevI;bVI7sa1zi1c*xA7{G%_aLuBMhw@67` zN`^3S@#-Vw%ww}|&^yMLH*+tVbf+B0W8k4E!O0w!B;NZ%2#<*5SwAm)JJ6TlXb|-< z7VVE`Fz8QK?A6VjKUVfv%_-fV35P1xk?!q*;{etHcVKKg|F+^bIS1W&Ij1^V*iW`6vz-J1TG7Zeim;;BZ-ADpnFjJqDH&z~1}_4GUhh-2GKHmw^Jsf@n_{XlVl zdOx+atRaDllL3tRdFS%?PmkI3e`h_iYk&Y9gArk!?ku&MnPtVsX8VO+p6<-B=G~7T zVZ{s0){x(+&ycrlhi6!mXrs=p5Qe=(|e=jsN)z+5&K7KN8m zuXa*)W@{h*qsarI#~2uyd-c-Gt8r(s+4$bQlzi{gy)odByhe?TjZ60*s;ehGyojd;kr#s%UHm)fQR%Vn7uv>UVI2ZD)w$*|b`RuBy`x~#T9*R1NZ_we4;*%Y? z!hR4^k(f`cB=$xt#?a&9O)DaKzG%KTrO968ntgev;yE|ivtp=m2nz151Qek?Y@tv) z{Rt?NIRc~1w#EK=EVw5J1qVMr4B0 z29hFBx$pZ}z@V*ny3A>HDnJi#d ze(FGX5Z|5;)zIT<7QK zUPGW2joFtNhSGb6PY*+m(LcVJI<=fzdxA>H8l>q*%V4R0e~yK~$mRwx=&wf52ar2f z+uw@c5r!TEgeCEY-R6i4HlbTvb(SV#*m9PgypuA=hKWTo(!Bb|eSCjp#5NpXQ^)6f z8IE8&hol0spG34Mb3Vd|{$`i@Rm=bcF z7x(_;IeQ0j9Eg@fA>laip7-i$HCh)7`@V(EE(bwSC9aX0yvS^bdJ}WL^Vf6LI`1RjH|Z_~*}d#CO3 zyOm53*>7F7SqHhbfMMT909K{1S_H+;HoBJrT?6MVB_gjq5I4(Gtm7`T&c_}I_Z5bT zA#@Q&mFW783#cb)t#e2n`Ee_lB`ldw#&RQ|HV1XtE#RATDq-1$*v0IgX%9rWoB$yA z^JU;PHWf;Pc@+pd0=?p9a~0Rr3rVw4-xV#yVR!D-R#~Wr3}!U)p!HwYuF)RG4 zv1%g^id71Fs<6}c80TY%VA}&GA04V?sEY?sIvIkel%fF`lzWwM#rNP=`{!o_w}XlT zMgogGL5b`-Xa$`BNkxu;IK|L=pi)0bcQ%M-^1)wv1+o?SpaHYg5C#o!2gfL=HFA{wl{5zo|RpDYg?!XdxneJd&l3P-UDxxh~Mfa&Y zkWZgJt=%Nelt@FR-SsG6yc@&>N1_yZ+s98qA@6hf@Tu4=ggoy465#pYcOyez0{1SF z%sDd^S@J(EfXy)sc4p-?{FUDGG@8$}(%3N$9;KRHK8jYkb52AM8P^-8v|ydhuM=^u ze&2_Ob~gG!&Z%7W4K4LX36qCy8LNaj!DgVR$4OLsAeO~5-iXm@RRlb&7&Ly^Hn|-H zXL^<+G1r3f5xlM0{QK5P&MVmZ6(ccXtMIDjIAol58 zo0c2sL~LUz!?{eyMgl{dEN~8S+9M9SO`E-*Ti_5gz~dc| z4~SO@B|Lh$14Bz!envYuaxK!fo`9SWUKh3N1&IRwXoRzRlWf39kPm2PsolIucp0)_ z?(aMf@bHV#FhR9HQQlB95k8GWhRp6jT;lD0l4bg@>;O2KWTp>2MC3E^Cr+6zBJWJp znpQn^On^tJw=G%eIpE~FYnWsob*1WjB$tg4SCpkF;=8>=U+uO9g4b=_c7|0#Y)O0q z0{2WhDa*P=uhJ8IW*dSA-2<3BTwVm}F|^^LAVZ}@9}z9`OKHV}gq7=7z~%Ccf(CWh z1i(LFbZ21wbe&VyA5eolAz?Eg$7u21WOFNJ}Ho#i(2ZFTmmB@on%u*y4 zDWIpZV4!}#UUb!ALz^8ADXsu@lWsj#p3C%F>R0lqcDt~7Nu94jdrMXo_PM>Q@e$}*A6{$&YgewYS011gJ_Hn?$I5(tJO09obBk; zq?Nih|S1O!7IvS8Y#aohZBz^~j7E1?JIUg{5aoeLv)F|$+IP-%jX7gyx-c$i8R;VN6 z>+!h_t4AKj1`_MY)qoGA+vI1;R}72dvbqOBo#ODp?dHpS`lT?jl^c2Pzl%Qus5+h9 zi>pM_q+pAS;et&}-DGk=&5TRrsasFU$fqM8bRceQOo|FXHZG@j&U5wqH;}#v^R*(8 z<=Vq+hcl1W3(zUCc8IPFDL(fLGEq>nWa2UpSYrJ~f@O)vcxRAU)1uS=P9lW=kLoP+@-Gm3#7McxTuGVR* zI{rlaeL79|%FX#tm5&$sTR*R=eBDFd7~X%W+?E1g4p;OOx6`T*D&^-tgtc1~PYb!C*z_xDUvul~N`<}N>y|7lAGfMhg=QrZM9|7hH9 zP0F#pr|YjTp8t;hH|8@MZ?6npYQ|H>V&I8{Vssn7v^_M+VsT#6@*h06s`8L63^W zq=`G_AeBKT$d4H&9@!rV(v(S+u?BdA(eJ~KM|%9bRi%EJ*YknrNCx!HO9@N<ojk#-*@m)q`xH0*HW)}^%i&l($V__62D@;AJD_bD+pu5xF~sDrowN{ellY8 zJME?v5NkQr@;rRs^ZzGD6v=zV9~E`awbzh`Y{-2FC|ZLvy8u&x2dj*%fYvuO_=|Rz zXIr2p;bFqo6kJ&@8`u5|()i4NSD|4qtJU!%NTa4AnPmSwirn9fW|IRu=QWP9961+% zNuq%466>6=xCRUOHQPZod|S!H7?0pFi-vBY)%gCTr#ac&<-i#?ZILDTjmZT4wt&+efNL|_G{0nqslJ^rIt6zZ06Wlztg>mT|4J8*>ZGY~3^tiKx zozcf&o*oZ{z^rCh&g~#~(*T&fe*$bOW6k$d7zsD19rc{Z78=WPs9q+aI@7LpcI-j$ z{>_q0P*4jXa^2n|&HkpQCKE8?H@~sb=;qBTRV%AC?ux8kbAZ|MD=W2@LeFo5l8get zjQpcfxCKz{l@HNPL@YU{hB5?AH32lelK$jAS!T%UF!w2GZOzI@z`pJGw3&`hV#|$_ zwY4>6OUqU6DRbYli7{;*9X4!i?2A{^0lx<~HiF%rwx-~!A(h(cj;D7jhu+*dxQvY@ z8S4Hd+GXhGR#WnoF5jWEP3rP=KN-w#rx7%lYxXqAD=AU6w6y%S4@R*4k}{9JyzNXR z{&emR-?OLrmt2ccZnHJDDloc9tKQu6=Z|y@I$xd*fKEUQF;@(?*`_Nn@WqoTQ=p3t7H$B>Lcv^&mA3 z6tf{CDfz}$iC|@#Su$W6baHytBqa2w0m^B$baCx{x?Bg)ldcNldBDsSofLPp{bG}$ zsn2iS^G>F}$iu@!qjYoAu=K6*!l}qi;S4zZ8-V5cX05)z?Y=Kov|Ol8mOm*CCW7BQ zk+SFr%E}$)X|w+pL_J*!FtGkZEX##mv`QwGFK&}qMr&pI zBYxu~UiG}g{zyY*OflOx&PPVBxjuQrp2%#Q=MYD82;w7yb$enMo(*S8AA#mG{g475 z$exn{F|?gk(fZeGw_6efMSmA-?esr)9D~sytf9nAles%ot!KfMPpIEWpQKPq1A=w* zSnh^=R}&aNV-%$hNYEHYX&z14E6{TO3*8t9a=k(byXl(TNQA+lXd&+tdjK}P^L;K) zE*Q&v0ATG01sx^bePxE#H9sKOI*ejG(Ak}Dc?eajmz$*Y9O|KqK3!`eDkKgz1Xj=ti?vp|GXaF<_%ihHGzEK$xdL!2n zG}<#tS0L%so5%8{j_#%lx*bH*MPGgi_^F!E{Q-g2M4)=V=LiN}4^a<7<3oHXsZ3Eh zox{c29N8%0ewFdB!enxba}R{;RAyUVKVpHbBqb@jm5@2{$IZ}?rJR1c&@74che(Y( zn~cJJEIBK`oF$WYhKDy)4^KejumR9`=7aQY5+Y%nuipZ`gU(a6pv@u!M1tC4ev8M< z!F0iCcLsCVGguapwqCz}Fn|2`(I{K4OdiqxQ|#4_0mFU7D2N}sZk(8tI{{gLJc#KZ z4ijijT<*6DY^J}AY551H7=6nLPB{ikI>xdMilHW1Zorhp8a6;{H%Y zrMUGQ$KtY2)5bfy8uI|c6fth@;=hvf#G33){s`?Ikh3~r6unc~3YJid(eIDTuEiyI zg5S?lr~)WWD!+o&DhsClifK`FkPkJjF*<0+n$>EO4{A>fnQB8Y)&iA@{@gLxQ9pbv zK0rkHFtIUGft-xY$h9k^DRgxxwnrn6j!fLp`;pA0ZL%U7`zWIYMEg;=@ z;!qP_N^*1x5^t9jhbN#kOF#4m%P*2e*)lBVLr{Ivm#>mwb+Fv-^&XUmDHBwMtdg!0 zDp-SKaB(+?G>Gve3Xo2+s9vPwvU`BJzn~(5xk;^e&Q2=!6xWHNLy6fM$wRkswc?eA z3LFV6#8=n{WZw8|`-az`BCX229kzQIpbQra6EpTrb$Aja#1ci$LZd(mqy4$E2#&_q zdD}WT?&FzVvR7N0vvXn~RU+NJ?|XW82)hg!;{ecnaWA=2CcP3pdtLrca=x^hV2qJg@9KdMf7lkx9%bS62+cZyf!&V{H;a8le27NImHgG{*CDc~~g zT`LeSU3C9yYHGZQ$-7iLM-x%i>ov@4E-M|uv%;@B3B`U0s;{{cg3>J0CgwWA#XECo zRG_l_C|Qs$%RT`M$s$KsyheuP7RxP2S1}I?gl3Q7aRIfJ_a9?bwBxMhGDxAcy!T`0 zYzDaPxEA#)Oh4SCaos{@k~qGgqZ4yX1RTAw_oqskuE&qDR#K-~rQ8tDoBkXPJOc?V zBPoS%9p1R3;nG(?Lh)^ta8W!Bmn>7vIUuaYbCHB2qH-LJiRuTsh5TWxoCK28gV%pS zDM;4lSR|V|Cz|30n`2oI4+guGpkK*jM``*Tr11pP(r-imkQWUhTPTpDBjg zYr|Un_+?Qdj6W#C7w9);g%SHqN>iy#MkE;|J-z;y17?3+`#&Lb|D6x}y^ucvtqpCR zkN}nvtrEfrlh_aU(}s?54#R4-FmQgZ-a_Iq&)mrg`cSE$zkJIJCG`XpdTOhw*+E7=)z-O6cVIW>Ze~NlFyzG zjC`~XkFxH~zxtN`vY-^0S_}meQXxEIBG-H^71G69YdO-Ocyl%nTOP(7#1l(mXG7OJ ztiZJb48?n1&KT<33ZYCL$01U8(op`k0m_~3Btaz7MJH$TFNdEqf74={aa}}GXseUy zvadYrklb%Nj*Cl0_$QFh~y+bN# zTO6ukElQ%cmK~}I!-P?AhYr$XMJ0KWj?!mN!aGq>QIAWWu?!RHvNNxO{u1(GpmnmF z#Xkdrl@zW^;<(7|xC0nV6NS%qY%*?|y?0wPB0Q+)SJeRj_&ptDy7mhBE94R}uxc+m zXP7zn!Su0G%4mDikw2|NK=EhupTb3*K7OoG$TrB(>(?{Cx=B>X69B_&u~#tyV8LQLqz*P|Q z{y(bjs5wnD5t%GobV{pxO1lWOI6HO9&TVur(&1|i+Eie;2c-%uK0MrrEL2T1QbKZ; z>ioSNlPu<{a2&mA3WtN-fsrZ(VaupBQt5XjfWoC>I_jbNwQjynt;8QNL!v|HiF(A0BFywV&$-44=MBeR-MLrgRbu< z34)NYfFvq@waqW`BQ&-3ct`NhCqjM8+Sap;l#3o;!jf zk+Lsmr;&w`k7lJkC!TDooW1Ud5d=t}L~ij+8M-w@#_N^Tq(@p>8vNJB<2D>Q{pU)p zMC?)i_RT4c%^sR(NJd6bB$*!rQoagU6+8I1jg5D^R$4segmEZx!9rj)ZL#vvb!V=ec6E^JWjZs zFhrKzMv2+toLS=!fVv9+urb1GH)QT-mz3zW{I#qoGfvuj`gW8a;BYezpdFx~;K})M zvrx*lNNa0?MI%`4lgh8;a4I8%XJg4sCbRcpY$Lb8mkf1uM@Gvn=kpj<**%B>s!QD$ zFR1T64-zhnW?Oy;C()pxCdpOc>D2X4Xneo)gK5)2@#bveB9^+4dHw0`!kj^tL#t=8 z_p^WcW|_NH!Yzz54b^VVKUV)gs@os_4jG%E%TsObm@pW{a>NXRUCatL3{snq@U0V= zMb2%qTprzvOYb)%3Yv8<3$c}7vy`fRI>ACYAF>#p%=H*IMW1~CGSJo9GQE1~$qGy$ zc#S|fVF-Ixpj)*zhXrA5wtLVkGF8V|Njzx6#ttb8SvoZ8Jum)*l_`^J`DZPF7xryY z+NZDuOq0BJLqDY9KRk~!t5-D^l)(zzX?SY)cF@+}Xm3+1*v#Pmfsc2R79Q4!md0yz-Z1IkdsQ~}@#zB^Kvc1Da`L_@RawuN>IF5|>p)r?`{&Q=t(odV zwJez@fbq7W3IXxzlIz)lg>EmWG9*a_aFEm_2BvS8#FUZut{7|^bGc2;K(RMe z`McdY&yy{MK+@yh=8q0m+AeK+tu`=d=&NwS17$sPg*#V&>!1P^b|zkaWp{=GlQwfQo|< zyfUcP0#ZZ1G0;kYM&@-rrHKt4=y@FtiARlYe9e+IBO@bQ1L$ya6_=Hl_aW3Ug72-M ztdxcIaj|DkaB%R&BFG@CfDzi1n#9t-V*j3l2HJ1W&QMUoV3Bw-JR*V&A^eBYPBFHf z;}1U@TfXlA0IP78plvWT^mnb;ymR2jM=)3P91L2$1tQbWCf>WXk4#K%L2s-UMSu6z z4h{C^O#OlTJ_jId7B+hpKBu&85T+jePS=s&7b61ahV0-8%$YLxD>#k!X%wOqV@von`w zv&qmD1zG5(G&wYxOHTVJQ0#bh2Xku%c`H`4TF~v|hkGV!6_1bl-~PY9nxCAO$}776I`f6z2COB`@%;1J z40uVY-LoyR=T)xfq{SsxD`a;+9twe%%Y-!l2;a6|YMP`FZa|Am`VUv7i)?Ic^gH<;(`}V`tyn;X?p{M+^$v35uR|uW#!831yZS;#@lSIAR+)^*xtPK`;O((60iNKCw6~EXr+>uJi`1)jq8Sh# z_|bk@p@GLzku&6#B)Esa9gA0$sQednkyX{|wnbSmkTZAR;lstZU(Puc>0HTs(ofl? zShOB_Y^rL!DsF+xo^DeKgc7HZsLyzIWxBM?2Zxes`K_q+-=s9xV@|TTO-4HTg?%M) zSMqEi?9f_QDp;38dJE4v6cy+ka0ZF9iI|lp`e=l$e>mSmz1O+{w}|B88UrI4y!^3O zg8qrI3Y58I8g-`Ey+?H%*E%jp^35Xm-jysOH0gNsa`r1Pt_~ zsq|V?PW(FP1Z-&LIhK$~y4MX+Qu96Ucs+0X*De(fFu3l*N8hSvhL;D^q1m z{GS$}EaBaDf{>+sJRAE1kXOEBzZ7Nt1B4=9rU{dlb`6T~B-g@ zk0a|->dk-Sl@(dyTGL3~(r)}6kyN2OU8=t3u;6C0=jB{9h;pblfc<&)XDz1c=yPY) z<2%nbfq$udgZ`kO-nW$7F#)1sWi1I8d7|GDkukr=P3uxnA!@T8_36`%E zuvJmzwD=#Y7v5BMeku4j{7Un2MIKLqdcM4l=uUW;9*p`R`wo3kdbqO&>estjVX2T5 zTr-kjgU(M=Uu2(}HpPt6Um9ET?t`(G6i%6b_vdp$Nm5Q{903QW7>OM-$xcE>i%d3~ zdl>m?Y>a1Xg^6x)*Sa#*p0_P;trnpn)NwEo{1UYyH{8hZd?lC-dI0S3<7#Rku=- zOB9(uyG6>}Yf4q~6>_tRC$rD6n(4smuYRTEbsCxA8%QQ1nQq}}m~=As;Ylk0vx137 z23q9`JiOdrqyIXO`i3G>)F|-?!{eMM1c;hfwRZAzl2_FdLhqgR#g1C5SUQP?o_*f7 z2FlO4^(M9vXr&;qdqWk2vF>znp2a(HGbHaf0&Y0uI)$aEi?Ay$JO3MYgLY9b{%+8K z*zrl9qr2#xl4h)<700Hh=x>whi4s{mZwK>iU3tiEIsh#kcmHECbK8KO#W+5fLuQ`W zV{GT1>-|_BS`m@cvCY3Vl6f!jF)76G@U+!Kbz1>jT*Sj~A)Oc2xipkm&OswG)}_GC zc!2@d>PNe?aR`vq@D!GiBYlQZ>)P5;hhg zWp=kTckI4~ti4fe6`UgH-YxxKv4o|&^gCQ?V26%;0HY59?W|SI^eq)kwGhAW-Gy zO-Qkf$Lw!SHeJp7VA1EL@TLEqgfwA+Iv+`UlTSnOI9(H~c z$pXgKyqdIdF`QXkll&$Z(m4O4!_RZ>i*!fpu~bwfw(&JS=T%nnw4EFoo?7XVa9R?y z$noQqM9L&w8(kKD{!e*4p5-!8TQ>2&ibKB|51(ISv%6r|&tQfp$I2NzCX60ghQ$6z1z{{5r$@86KV`r{$8o1G^ZU&K9)R6yE~3#2U`;2rsPlFF^b577y^ zhh@AN>bS<#Y$HI@CHHLbOhf3rBaw1`$QTM1fMfyihMs#hv+}S8iDyDTGd{SA}^?#UWm*9J!3wX^;;C^kP@w^HB_DlxcAC$EG!2;U~CD0}Q_{3G`X5TVIYXe)E zg@KT1Xo-XW%h5Vz9 zJ;v|xeS$H1Xx^#$juraR9iCRa#7oyDzRF0~YP_9ojvy$Uys zc-n|Penq7dfk!x!TmBh8@6TB?gHh4UeP98b6g{UV%hi&D&GwV`nxC$(@_O|)>e5uL zrPW;g^g4Yr#cTq$_1eJjiLEx`@MNgTrwXJ&`0qb1SKznXa({W$=PH>;3i;ZB@-6m0 z29_vm$z676142sGm$a%HR#vcs7I~7_b!W@m68iV8S8vVb&7_pm&NWx`c-JKor5v!>-}R{U7D8p6jP z7>HivIDAaWU&!#AE%4i(sQbwS~+T z@>WBf7*2D+$*=OJKAitRUFY)C6@U{WhU1CHT?75C(7Qi7FVe+pnF|#x;#3~reQ2|8 zacMuPq4IF3g31=pL2-SX?&3vz@GC;mHztZ&lHj&YjciQzO?w}iDl+2hMT^?!Z_5AtwKeUow-{X&-4S>GXbf2!E*}>?yn@bERRS`t zAnOcjx<0J$pg8f;?_(5f$bvHLn~lB947hm6TU8+5ZdfbHRIORxYO3uBXslG$iJ`x( zx87d-B9ZqkV|>y8QE}{-$Gq~nvuv~Qv*LdNihM%$I`MFBr}?NUzgVp#UJu|ZyGs^z z9IsaDDIF(Dy5+X_OcpYcEG)|S1Ov5&j`bx5slN4E>um)uav*V`xh&=%X^k!Vf@5`U zrLgO4t#aFK5CO#;eqUg7rp2tef%=)G{>b#pc2JBI<5|sLdiJk4gbt;Oly#1hdi$e6 zoI59GgxUe6_dUB#L}uPIin2BPFX?N)z_(B=wMD77*EV zVWWt)he7eb2y|4uP(D!MnR1&gd?eueqlqa(Pp4~Q4vMkBF`|!24~A>7 z#%Ac|mLT7k(3hrYUHeEOOdZeWtHpLQnwx6_)?=dA4(%>5v~{eT0r#2FtCVwM zOvz3yvxRi`US4}hQbaaG+b>@4-Ztj&`+~`$AR3EB8-oz2;iedsFfAs zRBK89<7>@0(Hy6?hyH&f{&!dG|Isu@gS$dAS{%zPxY4CM#yrs8`rB#x7y{}%!p=WjkHr0Q!bl(4z zH#I~>oFWS4A>rUb-iYHkc1&H%9y#|NlBMsye7B>r@$+O{20ZH$=Lj$k>3-V!;W4!r zEgx%Qua6Qa>oex{->mw=3T3oRy*&dHlg2Kso5l;f*_P+vma75JW(yVyjEAY0L=z{W zAViKAGWY9P%ST^WDlNB|&rb$?eznm2oPN%ScP4@<@}2SS$H1u65qT2HzW+o>%m249 zaajarJAJj7W~{ScXEOGm6g#K6(D}n*nUAjR-3!y>Lq9bWaKP%Lu)qU3iL>vG79!{Y z!X{pt;jmpDy8gmN)wW?xHW_A}(1)+KY1cnkJ1;?-XjvD;Tus~c^@e6hEo1LTpX{YL z%!X$Mwi8;MvjHPSg!_xVHGrYC+(Y3V$pX3LO$%bo}38dFU=dwSfVvL;_ zcq8~Pniv6IxIP)Rh=?}7j%gjTbcXkISRE)HW6@#|d-Ub;_sr(Zw!Q?Go;NoK0vd`3 z{f;lj^D&{|$@YuScm@_5&pQXqD36Pp6p%o=1GY{rhfleKEew%0-@s?wlA6o|is3@6 zf-B7xvlA7PshcVFXp+yg({%R$)tpQ22+*n#uB|?&G&u%&q51SuTuZR z3T3o4YzM$9M2O`y|oa07z3E=2Re?RfOlpj5}_qkaqnAK6-`%k_CEBn@*S zXBn^f!OWe(+D)t)^IuE13*|{-(g`41&etG|n?UEUv5Pi4DYRSA4@kqJ@Z-ZDORBWW zJ9Jsz_WZV3PXk>|kPHfPGDIDI+rog(zY1(6!$0cpzDBXE&7@QNC`_oUBmgWPrZZ)*VI}+4_qi1@DP-@vH#~IcVNACKS#J9@#}dy0&w%;6EXia3CMOp z4(?EfkZsu?4oJ%W9&o1ScODVXGt?;on-7Osl;p0t*ZoS!KOrrV3n#tx9ujS`EuVws zkop%@uZTrfq%Glex6WpOifNZ3=#lI7Dt^W@@iX?@n&JGqFyJZ;-89la3mC62J%Mnk zM7ewSqRXCmD!t{C;<~v`;mqizHcyFnMvqxNW2XO>UW~hY(>_oB`a00EH(kLS{IWRE zpD>sBB)RA&t(6PNt|2GevMP*&eIDnAMr>ro4l_qWD{u1ZJoGs^7#|X>Ak4NY7(TB8 zspKgIloK+HtMf}rCNmzsgjBLvqz9*`3FXq3Zmf=aZ$(Dh$92GOD?m-?hHg*y5N(p2 z_5HZlc}9qxr8Lgk+8s=rZ=2{>3FuNpHc~~kkSkT_Lu8E|6FvMM-DUCT zz@wKjKmsWrB?5|o0jl8eUn3%IOg1j$*A5s_`Oj;{9EQT8)Xk13ac$4x8a$zM08}51 z4mv!_cU}3951@h1vW4`o6=xLKol@T}eLw$SoBMx@uvz`bvD5KW=L;1$ZMZReC}FSV zfb*bdCn3GbMy0l2VhqdfXZz0-dbVTU!-*cn$sI-vBcp zH-G?e``PTXg=fpLN}?-{GzyE?34`{f|FRST4#FM}R zCm;u5aEn92$;gIA;*)f6T8>8M7vM=ykn3@hmET*cgpbsFcfQN3dfg{4FDrii{FR|{ zu@kqRa=K}$*WZ0qKZ6xDb-j6Tfp0j@?p)SW1~uNGG}mgO#LcjI6@hK?a^=vAOc04_ zS9$M#lnQjFP5ZNH9 z$KgjWo5bck5sVZHX`qb^tZzCw3PDzC1YZOE&hMLHUh(S9*5YDH}6ZWeg|Ke zr{im$YmXiYjHBn_ipx*7kra%GlrpmnW`d2~JoNYP;BJue{oh61tnShP*Af&24?82p z{||^2gI?Rl`1eJXY&=kn#+ihEm|P*V#9LcZEC${z`ZgYL;YBWejpBH8&UD8#*%RQl zTcFK&`ZbX<4*k`8uI8lZR(fle&+?g6EE*FJ4o}gsh^L^DmADtIGPYpd_5ckn;Te+=AEO?i@c+SRmDd-TIC&FeL#EAhJbf;U_JYjPeCKYk$UcMU)*^XNE*z! zfJqIJbfmQtf%W>&H65nBZrzDp+f-=NZl~F$$!`9_LPAGX_RguW7pa>a^k0K|3Q`;A zi>YHQWa7bc1xIZTORgp@W?lwWG09qOhv$HTVUL~WR|{1=*{18E2e5U$Ja^E2o<;q}Kr_#Ul^jYl0TXZSqn zmcA~Rc5hJg@{Kc$5vweupsj7LT64{316@`}(WR4c)&f#!Gdk;mr?a`&MWEa!hL>2X znrNs0ejtK9G{31V;sgBkamw=~Vlo6mq%Y`LvTqu1ccya)cQ}~?azSmw;LvALFf9)~tpVMs+K{PlTo(?sS*ix2Y z#zRqI2C45YWbl?IGrh&S)KrcxQG=qJWkWa&rZ$%IG(Re9UVGLfisZjW4T@{1mi+5Qf2cGj>pQE-^u;UJA z!1cjNcZh!R!>2}BKX?A)oycIdv#3~f8lKx8CEw%s?%EddIhLZ;ho908UrIp6`@jIa z7e;T9d1|~Ge*Xl{d#Vq4-0%8N@WvF$>eudt)Jx(~qcMVLXECB^r%YkDRBJx+hhu7F za9jt|SHQyT*mU!%w8et*tXKQJZ=n>x&Uf}-9W+PW*`wtg%T7n2$XnrA|1bWr20M{b zl}1|eO-=~O2tc8A0d9{&0{S!F+D2kO(B?}rm6s)&ihCSydbOyuX?jk^4o_BVroU)h zkhlD<_k5|>VFdec%IN>?CN@yXhkLp?K$}ER=jX)ua^;=+8?jh)ShwX^^IS-jEhh+) zXgK;p1E8Ix+{O>C_{w7S9(YrPct~O*pJlCZGWF&+#W+i~wcE*%@3LVhA*Z_4d7oV+ z>+c~MP4}XM4fYoT=+kKUHk5g_01Iw=+rPh`woj+SVf;dErscdoFvEW^OH`O*E{Ds9TZm5R~NB9K9@hhop;6Lep&9Y5y< zsXL^e=iL30qkqy#D1tW#3RxYV6=*j?!HG2#J#h${Y5+No2sj3BDfG7^55I$b2<^!Xig()~D>$0HVIdg}a&X|$ouQTpVjUZg z*vxfcMG6g0n&pmsv5j{%`}<3xA_87rA~8!R%9M=r`LC7~*Xuscd?IEPQioLX;CzG4 z$&B0X5Q_#VQf$6O+OtZ%_NMZ~Asd-=Qlf=W2a)2je|@{11^TV1tx4hgmX?7t_H&`b zY45M2W=<&T4|=@JsN5z8A2C82*ODtgwn#MA3EX$Psn>_IgyV(ry6aoLD6^22lJV9U zpONLNLRW5y>UE3>#oeXQ0)P@9a8_*N<=k~YtZgRuwJbE0RH}rKxv}TEfpiH<1e1c5 zMy4_27fmcOF3#T)Ptfz1Z^QM$28a;~_l!4H?3CMnBC?a@T(k@RRLVTo^Yu`=^QZim zBwfA55~n$#=)-^Q;SkB>hzU5~g#QL%Py-fF1IO_d;?BP+W3V`Oj|Em){MH85LKfoe zSxI{AXj6wt^T=P@betd-NEV;4O1sHs{9CzR95PANnIMK(VZwv~YsMOz_s+Y*&_zl2 z{ou`Ck)>s2Ak5ulNEqHjoZIE_NL4+YvZWD~RGH-nJ}>(qa;?QsZu<;On&*_KOC6gz zHH^zLJ`X?59{ACd(*DGmo`-JA?8mD&juG_>TBw=ar)6XENmopQZ1UlsoV{k}eepp& z2OYfSO~^0;k4tu73$xwMNHf--W^?dsp_ec~24ml3Y_@Uy>Wx6&5MmRNBdCpe!ct)T z#^8BE*n#q^>66UIYZ}*jDsf=uqFzqcB*L5CVMsatAonl`ufw`Lvii698srEIIKP%^ z*8UbHcA#V=&4(K&y6w>xq}e~XXWVU-Yirm1c%>gY#=t-T=<`Zc;WaoEZQl_TRQjrV z*5ULLCP;6O4dwe@aXQ5?PI@+HQP@Ed`zL|~kV-9hTBsZzO-z~i?}5wzJU-ch8+bLD zz6$e9Ag)aSwUwnMC8G{F0P4j981QT=#-3ZCl;bw!3(R8;CAkHRTjhJ75hPSrVzlpH z$KH@ZOM}*T{JBd7xG{AyIhTa(Z6j`N1;?Ko-=UrWYwL+|Z`<*v6<9BcUa(%_e2SZ{ zH~(m$_N$8KPeby0*g&d-iv z|7RQ9KDgJEzLQgKZr?g}o$aEn3E(Yzpqv&DtS+B%FZYlJM%OHrh6|?-H5J{}&%6FD z=VZ`Zwo_iKmc(@KoczY}fv`Vs(G4b`Q&UV|8~wMfI_fo_F;~S%>xBB7#o#6eFo-XJ z7wxeFjdd1ih-j|xzCBw#^S7TzUEIo5agmCtTJC&rIV|>cI}~)dhIaE@5mlOO?c$*x zYG|Zr=%d5pc*{=)P>Z;0d zjDdlZ%hSa%L{{VS-^UZ|k3Xyg4iIpz=?z9Z%DydzFQCrpRhfe0;o1)%|ZwZ0KuQw;wO`E*1k< z7BT7CDY`s*jY^9Cy7bpZ*W)bS6)6k!-sW>AJQTb>pCKGl zV|+*fC9fK*JJP`9wOY_YE~e6T>y+tXulHEAgv$BqPw7!^jk+*(TG-ZG_i8c|MWj7F zc%}mT&{jM`^Gt!=m!=SYGZDqa&pGi{xwpVuy$};{;FxjHlZg^IU>&~nkY;gc$5Y^T z%U|40>q0^|KC!TF6bQ{wG1QFd+`3DjW4nUtwKG~Smr}khkFd6Oii7lP5)y#!W3#K7 z1+35>$S?_%s(-5I+3XX(aGKVgPd6?m-JQm;aN3HJ%-`?kh}ss5O?m6S9%z`oVf3HS zcpUi6aUi(;)l`j!NlUe&7Wpzd z>34^|i|Jie*4Z`P%smJq`lb8W{oquF1|Hw$G6 zB&2;U4w&HS6#8(&h7N_!0NZO9(sg<6A7&2y>OT3~Ht^sNBDzkJ^Q0>&~9JeGwRxQ%}acKV6@XD?CE-*nMco%65O zmoDt_n)6rU)QbABa|XJXrf6)A@OkB38$MO$Yx&pW1zJi?HYOsx8&@q-)R1Yq^annC z0QBuzV5e>E*BiyDAiIH+iB%87^zXf5k%=iTO?vD8aoN7xpDyLZnJ>?2m<;KifU-&} z(7n+H#eyI`$f%$PD3Sc9!W`WC1^W%6X;jB(Siuv@Xet@aAERXnol4OI|C#T&e$Qzmvv4FO#lQIECB!j literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 6758d65..8d10978 100644 --- a/index.html +++ b/index.html @@ -220,8 +220,10 @@

-

- À propos de ce plan

+ +

+ 📊 Statistiques

+

La carte thématique proposant des points de charge pour véhicule électrique, basée sur les données d'OpenStreetMap. Voir la documentation OSM concernant response.json()) + .then(stats => { + + // import * as stats from './stats.json' assert { type: 'json' }; + + console.log(stats); + + document.getElementById('countStationsOSM').textContent = formatSpaceSeparator(stats.countStationsOSM); + document.getElementById('countStationsOpenData').textContent = formatSpaceSeparator(stats.countStationsOpenData); + document.getElementById('countStationsAVERE').textContent = formatSpaceSeparator(40000); + document.getElementById('countPointsDeChargeAVERE').textContent = formatSpaceSeparator(stats.countStationsAVERE); + document.getElementById('countPointsDeChargeOSM').textContent = formatSpaceSeparator(stats.countPointsDeChargeOSM); + document.getElementById('countPointsDeChargeOpenData').textContent = formatSpaceSeparator(stats.countPointsDeChargeOpenData); + document.getElementById('dateGeneration').textContent = stats.dateGeneration; + + france_twh = 500 + irve_monthly_consumption_gwh = 69 + + annual_consumption_gwh = compute_annual_consumption_gwh(irve_monthly_consumption_gwh, france_twh) + proportion_annual_consumption_gwh = compute_proportion_annual_consumption_gwh(annual_consumption_gwh, stats.countStationsAVERE) + + console.log('estimation de la consommation annuelle des stations de recharge en France', annual_consumption_gwh, 'GWh sur ', france_twh * 1000, 'GWh') + console.log('proportion de la consommation annuelle par borne', proportion_annual_consumption_gwh) + }) + .catch(error => { + console.error('Erreur lors du chargement du fichier stats.json:', error); + }); + +function compute_annual_consumption_gwh(irve_monthly_consumption_gwh, france_twh) { + return irve_monthly_consumption_gwh * 12 * france_twh; +} + +function compute_proportion_annual_consumption_gwh(annual_consumption_gwh, countStationsAVERE) { + return (annual_consumption_gwh / countStationsAVERE).toFixed(2); +} + + +function formatSpaceSeparator(number) { + return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, " "); +} \ No newline at end of file diff --git a/make_stats.js b/make_stats.js new file mode 100644 index 0000000..187b883 --- /dev/null +++ b/make_stats.js @@ -0,0 +1,201 @@ + +import fs from 'fs'; +import fetch from 'node-fetch'; +import * as cheerio from 'cheerio'; + +let stats = {}; + +// Fonction pour télécharger un fichier + +async function downloadOpenDataEtalab(url, outputPath) { + + console.log('Téléchargement des fichiers...'); + + try { + // Télécharger le fichier Etalab + const response = await fetch(url); + const arrayBuffer = await response.arrayBuffer(); + const buffer = Buffer.from(arrayBuffer); + fs.writeFileSync(outputPath, buffer); + console.log('Fichier Etalab téléchargé avec succès'); + } catch (error) { + console.error('Erreur lors du téléchargement:', error); + process.exit(1); + } +} + +// Fonction pour compter les features dans un fichier GeoJSON +async function compterFeaturesInOpenDataEtalab() { + + + try { + // Lire le fichier GeoJSON + const donnees = fs.readFileSync('js/opendata.json', 'utf8'); + const geojson = JSON.parse(donnees); + + // Vérifier que c'est bien un GeoJSON avec des features + if (!geojson.features) { + throw new Error('Le fichier ne contient pas de features GeoJSON valides'); + } + + // Compter le nombre de features + const nombreFeatures = geojson.features.length; + + let count_capacity = 0; + let count_nb_pdc_fuckedup = 0; + let count_nb_pdc_ok = 0; + let unique_id_station_itinerance = [] + let count_id_station_itinerance_duplicate = 0; + geojson.features.forEach(feature => { + if (feature.properties.id_station_itinerance) { + if (!unique_id_station_itinerance.includes(feature.properties.id_station_itinerance)) { + unique_id_station_itinerance.push(feature.properties.id_station_itinerance) + } else { + count_id_station_itinerance_duplicate++ + } + } + if (feature.properties.nbre_pdc) { + let nbre_pdc = parseInt(feature.properties.nbre_pdc); + if (isNaN(nbre_pdc)) { + nbre_pdc = 1; + count_nb_pdc_fuckedup++ + } else { + count_nb_pdc_ok++ + } + count_capacity += nbre_pdc; + } + }); + // Créer l'objet de statistiques + stats = { + ...stats, + countStationsOpenData: nombreFeatures, + countPointsDeChargeOpenData: count_capacity, + count_nb_pdc_fuckedupOpenData: count_nb_pdc_fuckedup, + count_nb_pdc_okOpenData: count_nb_pdc_ok, + count_id_station_itinerance_duplicate: count_id_station_itinerance_duplicate, + count_unique_id_station_itinerance: unique_id_station_itinerance.length, + dateGeneration: new Date().toISOString() + }; + + + } catch (erreur) { + console.error('Erreur lors du traitement du fichier js/opendata.json:', erreur.message); + process.exit(1); + } +} + +// Nouvelle fonction pour télécharger les données Overpass et les sauvegarder +async function downloadOverpassData(outputPath) { + const overpassUrl = 'https://overpass-api.de/api/interpreter'; + const query = ` + [out:json][timeout:200]; + area["ISO3166-1"="FR"][admin_level=2]->.france; + ( + nwr(area.france)["amenity"="charging_station"]; + ); + out center; + `; + const response = await fetch(overpassUrl, { + method: 'POST', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + }, + body: 'data=' + encodeURIComponent(query) + }); + if (!response.ok) { + throw new Error(`Erreur lors de la requête Overpass : ${response.status} ${response.statusText}`); + } + const data = await response.json(); + fs.writeFileSync(outputPath, JSON.stringify(data, null, 2)); + console.log('Fichier Overpass téléchargé avec succès'); +} + +async function getAvereData() { + const url = 'https://www.avere-france.org/publications/?publication-type%5B%5D=barometres-recharge'; + + try { + const response = await fetch(url); + if (!response.ok) { + throw new Error(`Erreur lors du téléchargement de la page AVERE : ${response.status} ${response.statusText}`); + } + const html = await response.text(); + const $ = cheerio.load(html); + + // Chercher le texte du type "[Baromètre] 163 656 points de recharge ouverts au public fin mars 2025" + let count = 0; + $('.posts-list .card .card-title').each((i, el) => { + const text = $(el).text(); + const match = text.match(/(\d[\d\s]+) points de recharge/); + if (match) { + // On prend le premier nombre trouvé (le plus récent) + count = parseInt(match[1].replace(/\s/g, ''), 10); + return false; // break + } + }); + + stats = { + ...stats, + countStationsAVERE: count + }; + console.log(`Nombre de points de recharge AVERE : ${count}`); + } catch (error) { + console.error('Erreur lors de la récupération des données AVERE:', error.message); + stats = { + ...stats, + countStationsAVERE: 0 + }; + } +} + +// Nouvelle fonction pour compter les features dans un fichier OSM téléchargé +function compterFeaturesInOpenStreetMapFromFile() { + const inputPath = 'js/openstreetmap.json'; + try { + const donnees = fs.readFileSync(inputPath, 'utf8'); + const data = JSON.parse(donnees); + const nombreFeaturesInOSM = data.elements.length; + + let countPointsDeChargeOSM = 0; + data.elements.forEach(element => { + if (element.type === 'node' && element.tags.capacity) { + let capa = parseInt(element.tags.capacity) + if (isNaN(capa)) { + capa = 1; + } + countPointsDeChargeOSM += capa; + } + }); + + stats = { + ...stats, + countStationsOSM: nombreFeaturesInOSM, + countPointsDeChargeOSM: countPointsDeChargeOSM + }; + } catch (erreur) { + console.error('Erreur lors du traitement du fichier OSM:', erreur.message); + process.exit(1); + } +} + +function saveStatsFile() { + // Écrire les stats dans un fichier JSON + fs.writeFileSync('js/stats.json', JSON.stringify(stats, null, 2)); + + console.log(`Statistiques générées avec succès:`, stats); +} + +(async () => { + const shouldDownload = process.argv.includes('--wget'); + + if (shouldDownload) { + console.log('on télécharge l\'open data etalab') + await downloadOpenDataEtalab('https://www.data.gouv.fr/fr/datasets/r/7eee8f09-5d1b-4f48-a304-5e99e8da1e26', 'js/opendata.json'); + await downloadOverpassData('js/openstreetmap.json'); + } + + compterFeaturesInOpenStreetMapFromFile(); + await compterFeaturesInOpenDataEtalab(); + await getAvereData(); + + saveStatsFile(); +})(); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 45af491..fe431c3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,8 @@ "name": "libre-charge-map", "version": "0.5.0", "dependencies": { + "cheerio": "^1.0.0", + "node-fetch": "^3.3.2", "sass": "^1.87.0" }, "devDependencies": { @@ -3178,6 +3180,11 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, "node_modules/boxen": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.0.0.tgz", @@ -3477,6 +3484,76 @@ "node": ">=10" } }, + "node_modules/cheerio": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz", + "integrity": "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "encoding-sniffer": "^0.2.0", + "htmlparser2": "^9.1.0", + "parse5": "^7.1.2", + "parse5-htmlparser2-tree-adapter": "^7.0.0", + "parse5-parser-stream": "^7.1.2", + "undici": "^6.19.5", + "whatwg-mimetype": "^4.0.0" + }, + "engines": { + "node": ">=18.17" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cheerio/node_modules/entities": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.0.tgz", + "integrity": "sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/cheerio/node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/cheerio/node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "engines": { + "node": ">=18" + } + }, "node_modules/chokidar": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", @@ -3703,6 +3780,32 @@ "node": ">= 8" } }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, "node_modules/css.escape": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", @@ -3733,6 +3836,14 @@ "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", "dev": true }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "engines": { + "node": ">= 12" + } + }, "node_modules/data-urls": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", @@ -3849,6 +3960,30 @@ "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", "dev": true }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, "node_modules/domexception": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", @@ -3871,6 +4006,33 @@ "node": ">=8" } }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -3901,6 +4063,51 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, + "node_modules/encoding-sniffer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz", + "integrity": "sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==", + "dependencies": { + "iconv-lite": "^0.6.3", + "whatwg-encoding": "^3.1.1" + }, + "funding": { + "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" + } + }, + "node_modules/encoding-sniffer/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/encoding-sniffer/node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -4092,6 +4299,28 @@ "bser": "2.1.1" } }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -4131,6 +4360,17 @@ "node": ">= 6" } }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -4274,6 +4514,24 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, + "node_modules/htmlparser2": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "entities": "^4.5.0" + } + }, "node_modules/http-proxy-agent": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", @@ -6318,6 +6576,42 @@ "license": "MIT", "optional": true }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "deprecated": "Use your platform's native DOMException instead", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -6351,6 +6645,17 @@ "node": ">=8" } }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, "node_modules/nwsapi": { "version": "2.2.16", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.16.tgz", @@ -6450,6 +6755,73 @@ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", "dev": true }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", + "dependencies": { + "domhandler": "^5.0.3", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter/node_modules/entities": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.0.tgz", + "integrity": "sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-parser-stream": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", + "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", + "dependencies": { + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-parser-stream/node_modules/entities": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.0.tgz", + "integrity": "sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/parse5-parser-stream/node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -6877,8 +7249,7 @@ "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/sass": { "version": "1.87.0", @@ -7344,6 +7715,14 @@ "node": ">=14.17" } }, + "node_modules/undici": { + "version": "6.21.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.2.tgz", + "integrity": "sha512-uROZWze0R0itiAKVPsYhFov9LxrPMHLMEQFszeI2gCN6bnIIZ8twzBCJcN2LJrBBLfrP0t1FW0g+JmKVl8Vk1g==", + "engines": { + "node": ">=18.17" + } + }, "node_modules/undici-types": { "version": "6.20.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", @@ -7527,6 +7906,14 @@ "makeerror": "1.0.12" } }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "engines": { + "node": ">= 8" + } + }, "node_modules/webidl-conversions": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", diff --git a/package.json b/package.json index e157fa4..77fe0f7 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "0.5.0", "description": "Un visualisateur coloré de stations de recharge pour véhicules électriques selon les données OSM.", "main": "index.js", + "type": "module", "devDependencies": { "@babel/preset-env": "^7.14.4", "@testing-library/dom": "^7.31.0", @@ -36,6 +37,8 @@ ] }, "dependencies": { + "cheerio": "^1.0.0", + "node-fetch": "^3.3.2", "sass": "^1.87.0" } } \ No newline at end of file diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..e66e5ec --- /dev/null +++ b/stats.html @@ -0,0 +1,83 @@ + + + + + LibreChargeMap - OSM Bliss + + + + + + + + + + + + + + + + +

+ prise Statistiques de + Libre Charge Map 📊 +

+

+ Mise Ă  jour le +

+ +
+
+

Nombre de bornes de recharges en France

+

Dans OSM:

+
+ +

+ Stations de recharge +

+

+
+
+

Points de charge

+ +

+
+

Dans L'OpenData de DataGouv:

+
+ +

+ Stations de recharge +

+

+
+
+

Points de recharge

+ +

+
+

Sur le site de l'AVERE:

+

Nombre de stations

+

+

Nombre de points de charge

+

+ +
+
+

Répartition par type de borne

+ répartition des bornes de recharge par puissance nominale +

+
+
+

Issues Osmose

+

+ graphique issues charging station +

+
+
+ + + \ No newline at end of file diff --git a/styles/_stats.scss b/styles/_stats.scss new file mode 100644 index 0000000..a3d7293 --- /dev/null +++ b/styles/_stats.scss @@ -0,0 +1,23 @@ +#statsPage { + background: #fff; + padding: 2rem; + margin: 0 auto; + + body { + background: #fff; + } + + .counter { + font-size: 2rem; + font-weight: bold; + } + + .text-right { + text-align: right; + } + + .pair { + display: flex; + justify-content: space-between; + } +} \ No newline at end of file diff --git a/styles/main.scss b/styles/main.scss index 27fd176..b0bd61e 100644 --- a/styles/main.scss +++ b/styles/main.scss @@ -708,7 +708,7 @@ header { @include meta.load-css('_overrides.scss'); @include meta.load-css('_responsive.scss'); @include meta.load-css('_animations.scss'); - +@include meta.load-css('_stats.scss'); .recharge-time { margin: 0.5rem 0; font-size: 0.85rem; diff --git a/styles/style.css b/styles/style.css index c84ea32..0fcdb49 100644 --- a/styles/style.css +++ b/styles/style.css @@ -1121,6 +1121,25 @@ overrides leaflet transform: rotate(-45deg) translateY(-5px); } } +#statsPage { + background: #fff; + padding: 2rem; + margin: 0 auto; +} + +#statsPage body { + background: #fff; +} + +.counter { + font-size: 2rem; + font-weight: bold; +} + +.text-right { + text-align: right; +} + .recharge-time { margin: 0.5rem 0; font-size: 0.85rem; diff --git a/styles/style.css.map b/styles/style.css.map index fe2a404..6c1bf9c 100644 --- a/styles/style.css.map +++ b/styles/style.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["main.scss","_osmose.scss","_recherche.scss","_filters.scss","_mobile.scss","_overrides.scss","_animations.scss"],"names":[],"mappings":";AAIA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAKA;EACE;;AAGE;EACE;EACA;;AAKJ;EACE;;;AAMN;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AAIJ;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;EAIE;EACA;EACA;EACA;EACA;;;AAKA;EACE;EACA;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;;AAGA;EACE;EACA;;;AAIJ;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EAOE;;AANA;EACE;EACA;EACA;;;AAMJ;EACE;;;AAGF;EACE;IACE;;EAGF;IACE;;;AAIJ;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIF;EACE;EACA;EACA;;AAEA;EACE;;;AAIJ;AAAA;AAAA;AAIA;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;AAAA;EAEE;;;AAGF;AAAA;EAEE;;;AAGF;AAAA;EAEE;;;AAGF;AAAA;EAEE;;;AAGF;AAAA;EAEE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;;AAIJ;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAIF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAIA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAIJ;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;;;AAIJ;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;;AAOF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAIA;EACE;EACA;;;AAKN;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAMA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAIA;EACE;;;AAIJ;EACE;;AAUE;EACE;EACA;EACA;;AAcJ;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAIA;EACE;EACA;;;AC1rBN;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAEA;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;AAKJ;EACE;EACA;EACA;EACA;;;AAEA;EACE;EACA;EACA;EACA;;;AAEA;EACE;;;AAIJ;EACE;EACA;;;AC3DJ;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAEA;EACE;EACA;;;AAEA;EACE;;;AAKN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAEA;EACE;EACA;EACA;;;AAGF;EACE;;;AASJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;ACpEF;EACE;;;AAEA;EACE;EACA;EACA;;;AAGF;EACE;;;AAIJ;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAcF;AAAA;EAEE;EACA;EACA;EACA;EACA;;;AAEA;AAAA;EACE;EACA,OApDS;EAqDT;;;AAGF;AAAA;EAvBA;EACA;EAwBE;EACA;EArBF;EAuBE;EACA;;;AAEA;AAAA;EACE,YA/DK;;;AAmET;AAAA;EACE;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EA/CF;;;AAkDE;AAAA;EACE;;;AAIJ;AAAA;EACE,YA/FY;EAgGZ,cAhGY;EAiGZ;;;AAEA;AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;AAAA;EACE;EACA;EACA;EACA;;;AAGF;AAAA;EACE;EACA,OAxHS;EAsCX;;;AAsFA;AAAA;EACE;;;AAIA;AAAA;EACE,YAhIK;EAiIL,cAhIW;EAiIX;;;AAGF;AAAA;EACE,OArIW;EAsIX;;;AAMN;EACE;IACE;;EAGF;IACE;;EAGF;IACE;;;AC9JJ;AACA;EACE;IACE;IACA;;EAKA;AAAA;IAEE;IACA;;EAIJ;IACE;;EAGF;IAEE;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;AACE;;EAGF;IACE;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;AAAA;IAEE;IACA;IACA;IACA;IACA;IACA;;EAIF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;;EAIF;IAEE;;;ACrGJ;AAAA;AAAA;AAKA;EACE;;;AAIA;EACE;;;AAGF;EACE;;;AAKF;EACE;;;AAEA;EACE;EACA;;;AAKN;EACE;EACA;;;AAGF;AAEE;EACE;EACA;EACA;EACA;EACA;;;AAEA;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;;AAEA;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAMN;EAyBE;EACA;EACA;EACA;;;AA1BE;EACE;EACA;EACA;EACA;EACA;EACA;;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;ACnGN;EACE;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;;AAIJ;EAEE;IAEE;;EAGF;IACE;;;ANiqBJ;EACE;EACA","file":"style.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["main.scss","_osmose.scss","_recherche.scss","_filters.scss","_mobile.scss","_overrides.scss","_animations.scss","_stats.scss"],"names":[],"mappings":";AAIA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAKA;EACE;;AAGE;EACE;EACA;;AAKJ;EACE;;;AAMN;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AAIJ;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;EAIE;EACA;EACA;EACA;EACA;;;AAKA;EACE;EACA;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;;AAGA;EACE;EACA;;;AAIJ;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EAOE;;AANA;EACE;EACA;EACA;;;AAMJ;EACE;;;AAGF;EACE;IACE;;EAGF;IACE;;;AAIJ;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIF;EACE;EACA;EACA;;AAEA;EACE;;;AAIJ;AAAA;AAAA;AAIA;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;AAAA;EAEE;;;AAGF;AAAA;EAEE;;;AAGF;AAAA;EAEE;;;AAGF;AAAA;EAEE;;;AAGF;AAAA;EAEE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;;AAIJ;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAIF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAIA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAIJ;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;;;AAIJ;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;;AAOF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAIA;EACE;EACA;;;AAKN;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAMA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAIA;EACE;;;AAIJ;EACE;;AAUE;EACE;EACA;EACA;;AAcJ;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAIA;EACE;EACA;;;AC1rBN;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAEA;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;AAKJ;EACE;EACA;EACA;EACA;;;AAEA;EACE;EACA;EACA;EACA;;;AAEA;EACE;;;AAIJ;EACE;EACA;;;AC3DJ;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAEA;EACE;EACA;;;AAEA;EACE;;;AAKN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAEA;EACE;EACA;EACA;;;AAGF;EACE;;;AASJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;ACpEF;EACE;;;AAEA;EACE;EACA;EACA;;;AAGF;EACE;;;AAIJ;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAcF;AAAA;EAEE;EACA;EACA;EACA;EACA;;;AAEA;AAAA;EACE;EACA,OApDS;EAqDT;;;AAGF;AAAA;EAvBA;EACA;EAwBE;EACA;EArBF;EAuBE;EACA;;;AAEA;AAAA;EACE,YA/DK;;;AAmET;AAAA;EACE;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EA/CF;;;AAkDE;AAAA;EACE;;;AAIJ;AAAA;EACE,YA/FY;EAgGZ,cAhGY;EAiGZ;;;AAEA;AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;AAAA;EACE;EACA;EACA;EACA;;;AAGF;AAAA;EACE;EACA,OAxHS;EAsCX;;;AAsFA;AAAA;EACE;;;AAIA;AAAA;EACE,YAhIK;EAiIL,cAhIW;EAiIX;;;AAGF;AAAA;EACE,OArIW;EAsIX;;;AAMN;EACE;IACE;;EAGF;IACE;;EAGF;IACE;;;AC9JJ;AACA;EACE;IACE;IACA;;EAKA;AAAA;IAEE;IACA;;EAIJ;IACE;;EAGF;IAEE;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;AACE;;EAGF;IACE;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;AAAA;IAEE;IACA;IACA;IACA;IACA;IACA;;EAIF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;;EAIF;IAEE;;;ACrGJ;AAAA;AAAA;AAKA;EACE;;;AAIA;EACE;;;AAGF;EACE;;;AAKF;EACE;;;AAEA;EACE;EACA;;;AAKN;EACE;EACA;;;AAGF;AAEE;EACE;EACA;EACA;EACA;EACA;;;AAEA;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;;AAEA;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAMN;EAyBE;EACA;EACA;EACA;;;AA1BE;EACE;EACA;EACA;EACA;EACA;EACA;;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;ACnGN;EACE;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;;AAIJ;EAEE;IAEE;;EAGF;IACE;;;ACtCJ;EACE;EACA;EACA;;;AAEA;EACE;;;AAIJ;EACE;EACA;;;AAGF;EACE;;;APurBF;EACE;EACA","file":"style.css"} \ No newline at end of file