From 1e0bc687836ba9dfc0e5232320e3cad2482f39a5 Mon Sep 17 00:00:00 2001
From: Ludovic Fauvet
YVyJ*zpd$U_a?e0J0eP#Fy z*!3P|D4_Lvp{=;>YNRQO%d(jy*S4q}!SJ ui_UhMHC54 z$S|*1xYLhKz%4{}sqf@?)Y;!D(`I@9aS#@DX s)D5^cx5y^Q%@-bJO<2)o@p z*ugXQn2bAaF9UF4X2xmz*Oo4$|6#kti_&tKsVkpi&OE|?P?A?Kk39TH4MNHbpU_8I zB
;pB2Y_Fl|0uN%bYQJh&vry{?FuqQI~j|@sUtGcBB%#J?ul|i7qq=2?py&lE`M<6 z-L*Ke29ig)v eH^soSHXYiZ)1&Iq9;(1oGR(%czHCG(N5vIAoUp5 z4C$spF$oCCFVWHcoE`m}=YEVF%Uq2zr2UX;*U9947Ju^!fC1JTrZebeJuZh|py;@c zM?icW)V-yd`|PBL1GJJ7kjP=!3 F t*Cit4)1_> zt>bGY@0F=PlF82A9A_}&+o_4W!FRhTMe+YJIUpUsh=RiWD6{jHA_Nc^o{@v`M~cXB zgIqv#N>{A@` zDi8=Cm*tXu}#Cl;{{psl(3 z$%3Knu^)+XXq`Cj_U1d#LTU%S`x*b2HMvUz8KTxe1LPS0T|_84&I&1cpbL$!U5w#n zKIPp8eq~1%`!X`LfLKE?0Q}~LVLAIBUYxc@8>Xy`9s@(U0T&tYe(>HfrC7uItQ|J% zS5l_H2#_+>`U%BMvL=*lT#m(v@`K3|tv}Btx?ToL!pkcXT{=LHLKqP!^z&KjA9)Bt zyK7at*5@`>#2YaKg1?(Ad((HJ+jt)TcdM@*Wr@17lIT5|HSmiaUV6zu3IlJN7IZ$k zltb8zDIswZIo3n%2AGVuPiQ3-ieMUJQk!!UAha=tgO2uqIn56 f_8} z?njBW^y}w50xg0O6nQ#_OIxy|zbj9n3m5`ey<6fEj1~291KB!~h7_3f%E;=V v=+ X2aEo6fYa7X?x;cX4wuRyyTY7HuKCZRxN@ z_h(6`qPytWJPui5I1xP &mZ8&mfap)0%;Z}ot@s1=t8j!P7=8BncSjqi zM>XPz&LyhU=^5*i;msD^^TomJ-O2aaer;I6d4v+&l@U|tOm(2R0!k_jr2=avG?2tl zts;c}?~R#HJY>ey-qjKAISH3mxfp)pl;r>hva>I8qHECrVfi5O_kjLEk-i)85*I%R zoNbkfb~E#i244Wzzb3?7yeLZeSB9g4a8l0Bgw*C6#f-F^nrKcqOo|6)BD2^4hHwBt zvt_f{Y-`{8{?5I$QZ=@POd?`d+Z(&k^jBL4y@17(7lukB17P|=;6V0!?i@t!h#6P? z;}0)`Ubq7)Q}ha^&JB<#}x^JXG zvVaPg0)`Aj0+0W3YsY64(d6d)xhjFEf4!1b4=@Zx_S9*HMJqGw+at(-rY|*H0h6GP zhny=J`zw3+-!a4`@WZy+)+EMZ24@djmI<8y+E`LwJ|vX+HW5N_mEnR|yNix6VxQ$i zZcO%-Amua`L-q859~*l~F_V^^9W@n8LY3uNwjddZLLcOtDA1HWv$b~VrQEv0RijrB zD?%yEqW^n;gvyex&SY>o+m49{oFT-GhPq^Jf~TY>8r923x^ULEh{djTiRRBD((XpN z{XBrfxc0V4%Pj<394Pm#$l~>c41i;sO9%o2;?F7piRn!|{X0=sh&yS1D?ZI{ABjaE zC4pwZx_^>J(JyI7e`?rczImytq|`296xF378V40zTo@ozAfv3uX$%zF7;<|!eJa+a zIThR&Z>Vw!94}P@Z!);s@$D`QRHCAMAwL9};wZ&n;{?*BTw=J;L7M>!BEdqD~>W zV1FL0n9xa>Sxaq(quSvf8?BJc7|CFOxZZT!<;K%!lLpvc6by_eplL=}X4 >DEvtn{A$C6!MD+PxF2(%ycpXSgY7i?H^&W*jIxguMuH-D$^Z-f>PtZtwD}Y ziQQGlWYJQQVN(-F?u^Mz4-K5qCA!ly56;Oc&QhbgZ~a$c^+c~2qk9; z^c2p7a;9uHJbD`y{hze&BadK#ZJuUi0 a2Zo7EXu2jb`r_P1Udpk)E!*k^LDMJ?S2&+bIBk@ C*zNtqMuHROu_c>`7?@b`-S5!)iK2#^TeqA;MFU$m~$7k|*+B6(BfVfWa%ntU@!T z^7%e7r4=l+hwrI<>*57L16ED^ey2UuP`1;>rfCLHIMb?Jk-%;Ac?+_rtuuG^v>h81 z?amW_FG89zNe?yt7 nTw3H2Yx%w##5!Nvu }&lQ3uqGpkKcReUt|_+4u}xxr(~cm~Q*V zoJ$+2Ay1AZ10Xatp-DprzAR_{Cu{}cS2zr=f`NBRU`OZ^QF_|ul`K(NL!tEZRlFsy zI Z{!)`sP_#TxUVizE3?2OY?wUoL~? zAT9yu1(~LYl{waia4tvO4hK=C{L sxi@b(=o zC;;a@0zK8J3i}u9Y9JbFNf1maCp@>|fjWHkcb59 xeWdqG@=F@QO*VW6K|9?fX<>_;TR69hZ7g?l`kRA+M^6QW@&feI#$l_ za^57|&U9{Ok7h~DxX=%8Ms1a4@}iS)T86@G*3X3(V0Kk)fK?{@0u=pj@nrN7Szu3D zQnACqNeFHs;}8V{L6IIy*v@Im!@mCDhfgpy={IkhC~=rU;UyrMHTIXvOa?=mQEZ7w ziBq;k!K|kata9gaLaYUaf$^3&qwW*Xpa*~;d^Q`>pWBvR-cH5uS1A&ksh>; pCBqq7@`Bu5N_yb2i^tSA$NP0Z>8kMQmbJfJ}doKqvr^S^LbAsSNT(lh6wyOlxC_ zn3SVXuaK|Y54i|$paAYS^!Vv_wbKjelo_w6D4 4jes4KDQyeFLXz(%rcDeQ zf@)w2J~FFZ0Pr4Yv2|(y(g%Rj*m^DHMEOuh&c+bEUeMjya@}`EA1JT>?+~RFx_jj` zDp?T0Whp(1@8)z+^yOnC{*vBn$x5@@kh(y)hI=VS|9?IS$^ixCa`67MNrjP}N8S>V zOi5VDHZJh}?gEn~AvnOkknm3Cc^(r$e~UrPsG#}4S4wVn{1)BL88;{FGSl$IB1BO% zBoIuvIR)pT=Ki^T3FFkTP6Mg(0T8(7Kb_>Mf_8IM1Kdp8lceV+e4+4>eu#UG)-^pd z(ZSpv(S^x)TO#b{KUN?G!srYl!jy0W2%%i5d53uH* 80j75kSyE)|M_P3Zref9?nmP9_i`dC3xU6*%JAT(*9(xMB7q| z4$8THg+!_ewP;X28F*`)46de;`mqnykNlsJ3PwoZ>T{FU7A)emrw=c6=h^q^$|^QR z`x`lw&NjZplXu1Pky^&d ~AF}X= zRGW!HN<{RBFon6eF)h`%JTINA8*{uF4I!J-*|Y^ga+j}6piw;fvKP@XjJ7cv9ZjDY zjwX+EET}NQCKqRQ<$XSIdenYAAg*IV&hO_Pai0v-BJy)`fpX+m=6+g%jk%uXrN+Qu zs4_+!I=!^rWBzbaE&q!AF{>OIm<2U#?8jC(9&ar-zv=F=RTZ7(I2yj<9oUfbEaFDj z?m5aUU1!^?fex>^Y|i&=ehc{eg_hsc_+z5*>_Q|Z#o>Lv{~_%dC+F3KGSqc% jAOxRi6UZPWZ#Wp;1zj9lIbuj{DKmxmAQ5GXB?KzI2; z&jF+?>c$yAz4fnIJ-TZ@b5!=LI&%#^nj1Lc@ixYpSa>J15p2_a#B%gI{?b=@?!0&k z?TzU*hSOl!%d)}H!vJ#~^IO(yzdvf*CH6L})A`9w5$y$g>;9wTODSDr*5)U}_A4mf zMOTO36jWyOUgZRbxuyGLg<(r?R4w)lZL#oyb9bV(vcsl_qc^DHj5%u=dDMmo?Popg zM$Uviqq4tnRI*lUb~Cl0$I*t|}O|J00fu+)8VjTmv{{x!w-e!oRftd#esi+=RV z#jUSJS;LYA?mUaDX6E!GCVfae?And%3=;~q*WqaCcs}oa E&@5 zhwAhBtSx8ABpk=P_ZTLR8+5Qg81V7VdPQDzH_MN%_Aehjxgg=~V37YFhpjyFY6^?K zxpcpb^4Ia>5WX(&WE0nT`QQ_s%Hd)sS KKg9_bu?;xJ>S}DD|Y$Ejm0LO5l?30dEeV}e!m->r)1n~?xjSC8KXF{ zWmUb5y(ni;xLLqJ?IR;@u I+8oCN@|ExB8N3MYIa6x>jO{~9 zN(;sGw^`rq|FUTg{_1rj=P&>4xhDR)U_Qa;82PURj%L2uNH)RCG!YwpMxRlNHJ9Wm z(N{S;5jgj#QZwCPzcRJAV%3XFV`b?l(|4KwY3(v6n&`}^k&q*Q&py%0jc|eZa-CD& zoOxktuNDnCa&t7av~pd3Iz(4|+!%~?*uKB6I{mdJ(rY{@I?Xw7WP}-&<>V_X?cdKe zmz&kUqH%RJaClr|#8oFSEM9-#cPZb0*!gH@`H=EtDQej<-%UB>L%_ hnu z;mO Lwi4g)LbQAHj z1<}I}c#3y7<*z+18|m!jzi~(#-%Qj@cJHNaZMjQ}%->&$3TGb1*KW?V7d~jXdNcEP zaD ig>M%GWX}T&&h!aQbDtO zYVf=e-C3r;psZGyt@g-s#e-HE7*N?x-rcWb1gjoxjxo!^4jIvYb2MdI&-(QyX3mzP z_5M>lWq0=6#`2q}xq<&C#w yz(G;o}?h)oEBsu+7O(Bu${4w+Km7ZwF1 zJFx)$O(Emp%5!|TwpsFaG9fSa! N{&p~I)<#T1Pf!OZaeYvwPta?g5Pi-`UDuO_&^kn6E zTZdbW f#oDMkR+dre%Dc8b zhRhIi@Njn+_1$j>zPU)c+9PMJ-(5i#2mEBhP8EF{H$63d?p1f?c+gml#NY8d{HOi8 zMuto7{m}9xYtXwFJ0+Aa`3a_G <WACMB (#*d<#T3goZTbi zO~Fitz}->Z`>h#I?>qS8-`WILT>Y?k_@JtHk!mKC7-k-r0!h$p*iy=4dX@WlBWdwr zJq}-!8BDj(KhaGe!o!P&DoArmKenyGk4Y+|&VtN^?2~n~6JM7LIV$=}7^p`&1DkV& zudgLWQ+ubMZ}gGX)bP79)5@f o8Wz&N;-g>PN-;ZXRCw+s!sGD*c$ zYr-tHJQFT=&iGZ+IrCSYDvJcqZuY|f<(cyHSR})V@9UEH)Pw7evzdi;!cO0p7VD>d zPWPqHy{#)8yjshKI9CFi@r)v=P?-e`k-<-U$HK(euegZoH<+0AUVKS9A(kT%$dH#I zpJo>~>nci7{3u>4c4M9y97T$zQ0c##x<8(K#C_)U4|Dtniubj_*R@}c4?+8zoJOgY zFAkR?y(9FR8s}R3D}SU8{Rldd@1qoFO8PH;@Y9_C+Y`}&i+8LM8Y|0wu?5FU1A10h zAE=5k|1EJas>F`ZVTs*&&aUI?L~OpcHNU>@4@c?Im2KMWdVxd}L9;=f;*-CVFVDam zu u5YiDx=k4Hau% z+_QKre>`UXS}vIs9YSv+g=`%rj?ww_N()qSSXE~yrmw}DV64@$H=M4g8@ZE7GG{y= zp=X M3KdB;JGt2S_;>N8Y{@_=dhepSPk41|fk(ua z kvx8L)F1xp$-=;O`-ReqNPlQ>qc1^R47(RV*q|K(IM=-8+-rv~=* zP@+S^!V5bk&{+~zxhPiOL 92%q>+U?r>>aF2AE`7K{MQpH zX1+c#9i!Y=OLyi56ja0%>D0}0u1^d0eCkORMY<%`bLzrD&*BiNvXvG1p l{glw}B5#?yZTN8(cm)F0rMVKngABeuSQ14wNhRbeJy7 zar;x$^h3P}+NawFt=_F;j)vgWP8fzTLYN`cn+u!|ZPdk!$Ry%xb**ICdzj+9rh`l5 zqL@(5=e1ubeyB%tzY1=P^M9wkAZhk2;|iYpvrI(vs__%Ecbz^82I%`L4f#d;RFg`c zXrktJ%(&g;Nt?WqF`}hD;JoW&(1p4lgkavdyG&4KxlckoZ~yniSL%kC{HHq&j6c=W zqqR66_0{yqkUd{~X)ww6%d(BoK=%)qUb7Ga@e;W^QC_PfA+_?34XMZD(VvG7*2iaH zGP62|p=n+>^W!i+xE5~@j>^IQtAb4tP0mjO^cYTQ$T{xCuAJzT-P|gk;*u&LE(R%& zn(S3&XU6kA P2)RkyDqM^WoWkAHNeF4dmC;=aP&Q?Vj(^UUTQ z;?=CA^-un&<%_b ~9S2XD(-=@24E_Ctwq;pQg@66kEY0ApLtV9d>uqe^ zICg}&uM*DiMZopkleHaNi8#-d9==xl#X`$d8@A1V%`M@}X8oH3GV9{UM6h%6fg9VI zsFi2YelG;Cf9yP1xTdCih B>Jw~Dm`dVY>GM|MB6_6qC+m9ErGEsl|fI|{WWPvcK=g0V01 z3iBR+CF8Smx1q_~xVdI~nnl+5a^QJpW0%vixlRtNBEN`Rj(sss#dm!8)^z65?HTKk zqNkoWssloF{B_JN5R3E91&fB$j&qW@Kh_tkj#Yeg_*vgoy-_eyKVyi<*;dfxNjJT5 z`F`fhSCwHhqUL5^a;4V6;`_a)WA0z1)yyZY9>*wMPQ(y9o~Xn);i~^$LziWUX?*rB zHpmL93{-Z`rBO-I8_%?!E`0xG#MW%ScYm5T&nha->Pz)4ka$vd)gYhjoQpThH=} Z$ zm;ab_6&+{y<7~M&zj*@Ts{72)!*xILR}C_?_W@{ni+W0vROVb5`FlblZXg#arj=U1 zJ6mb-qt!8Ppl8C*#40$i*6SJTtvZF}5%`0J8T)qiw8c!`nQOw{mLA&^<5wBJ``qgp zq< BB9Dl}Y!w1~`uqENGgE^y+L5FIEufeKVd2tO=`75nW zwW3#SIJx5RzDuE>$l4^*+L9%`h}!vZ`|;IG&MXW0$MWUL)#D9?H^R%lD-JEZGA}TZ zC-1M5b9VzKB*^Zl&Uvx--_2 ^nd%Fi8FZxC&kM4<^ropMX3gU#Qj-v zSFN18&cb6SDl6p-e!8;D+d8i+1lG jqyw6kQB9SjPh?-=T($pxtP0Fo`8()y(^|dmw~^BpKGKu+`4VHnePYJQ z=hh4D7h{ 9b6#mnYH?i;GABa#t$zCyL9mMJv7A-_9}ra`^}gOpg&VpdoB4ZN;iba`E45!l z FqCi9Z*J2ro*SC+xEY|5m*zj_?wRjCci2b@ z^V+M@n#EkXHvH+8Za6b4=Uo=1qHbgGr02#JrZA57Auy1pp)4_Q D^QADe1YDmY~$f-Mph^v~% zYtcgfekO13hXpdgDoSFE`vE41`fj%>n}Mc^Gv+=Udt;>DzQ5yvIoCDJ*Z+zMp1It2 zxLrB0@I7#GVy9q#B&YJ?q0jJ?uDxbYwO#PfadwJzzqJFlfO~|r5U` a7Lht2XYAbyp8DsT1|BB<3Y(m9 zMFu0AY^xpKRc~nlJlc9sz6V9DE6pziV4tDIox(_ Akd>mVg3U1~yUh z Y>(Hr}?>OF^bSCEJ8WwM&XI(!?0W;(tYHgfB zcDf`0N0bhfx#nNA)(7F+Q_rbx3B33F)(&rJuii~L8de|CF>NN2#tT?cv9$h;PF!(j z6B(N75HN8884ytuj64Tb-FB*C0Fx(!3gl@wU9}W2m=pxyexFY)$#ea%p+_9_#*Z+_ zVB&q7&eDfZ=$#4A+fVufxGRNNzUTPHEN~q?V%XkqE+V13&*JXGGJoK|t-_J;DEG7` zM1%J>3&1g=!*N;4Y9c%ydV4GA(Ur>{r)32RtDOOm$>gNql*;-_9mTd7*TU~Xc#k4m zQ0Th9Ka%MPkIdO}D#khf`0KLRia^CZKr#R&C&=R-$2(#mVZ$GfU=X$V@#UM)+?J&g zH>v_U>{4(Ae_gq;{Yt}Mz+q8OwwDi2q@6lgl54r0Y^A7%cK;+y1t;caEZdf;V?(Lu zr_vrjri=4v039WBvFA2b{=D3!IoUjU_b^ zZ{Ib%b|s`OSa|@QXtH~lKs`g62S=cvg`+Z}ynb~x@DxpVe!`5s+}`ij|3jBUX8C)0 z1ySw<)xE75b{!oQd#3@U0f3lzPLn2MFzL6KvGR3@`25%+ZXcN ZFCeb+)RXAu5(&0Qjfj!8d(wWw4lC^Bu0i!KUdyC`rKP2X!sWnG<= zHe;Azq$-d;d4mR35Bj>1=+>8xS?+$_gY%KzU^?tQrlg-We}F@0mr&t^pi;F+dvc^i zhtu|p!0KuHr_I_jV>V~{Dq2Eqqw@iEas!B;*Av2yHxhHTBblc?C+$mnQL(NCuzs~k zP7X4Mn$haIsCZsP>`c^imnTgoEw}C* Sd~Jv>~fy8<+ }<*B5KInErGS>o 9SSgkJJA?J34>0^T$33{aRr zgNWTZ<=VF#cWPFl%?tH0N6Yo=7sP?i7?)Hk^RDQ^&TP(?SpM3x_R^4gQzP;#Jv)=1 zo(@-0W-Pc8m=;?bN~{7_@lVO?b&Lx~Et`e|FMzI;NL63s$m#E$eHKNq0anVbM>%et zN z4e0J+7YiModj;Q&$XCK+r2DqKAe#sW7 zk)j>2Pp!5 ~_B7tsR z3rh*#R!)aI8lurK23Bqjfc7417NBa(1XqmM85HEOLNzRX(TpRy+=bw~7^fmc2TPPm zeN#a#YGkn4b!7-T$MkmD$9i8xm;ZV~pT)*g(OVog58W?J;PJm*_K)oYk=|_>o$egJ zbBQ^eEN5)!5rKT3@UP;q>5q_clZEn*r^+`I-V!K DK7TH-XxCF#n0D8vU~dV+1 L|g 00&)SZr2}~H6^3hjTNBP!8Jt$X(yQ^_%{e~?RYsCRB zK7Kw ?@~oU&6qyAk4*`-L^}ft2z~0# zRblI%A50u%J>)vQ=!=Cl45#+VQ`v$4&C8aHM-r#j)EwWEtX!VmoE?a>8SeOZ><`{X z`G$K|J|;2VuQS8V3tc6 )%CTxJ}ViF4^2O@!g zz`7>>N5vxx+-s^-d9m}7rPxpd_eH|nE@~vXSC=iw+Np)EI>Sn;4dFzm>zf@cIeC56 zbwO6&OXJNf`5ImRhC&P>3wdbM*@;~y5bAE0 SkiR_3cIWJfaN`_k7lk7wTz^!iu@kA9 z&>^WO^YWijgE39D!ucjid8Yff->2wYz!*+TL0RadP5+cKiXrbwBd(Y+@p8JPGiG@S z-r&``(WjH$(f+X&EWhKgD4U$dnL;@j_+(F;Jvom~4u6TLGSAB9y8vB6wFC`0ACOGT zF0V#as7i_Pvsuy*Y*n&OLy5}BsbTE*pN$6U8C|kecTZOIh(4(jLZQv9wD;XpX*q%u zK|Pm&x9@PcuroFZdgyKttEa7h0tXg(;8{wQUku=u;ua%)=OEpEc%9J`#H=IvG@NJ& zIaG@00*VQBA$w?dT@5ckmP_-E5V3t e)rHyhwD*{aW1`Ag+&Q4>K$Ix-@nn@v3COd)Q_cA{gF=o{;Xb|zsYllC z0qd0g%g7|Jr+)vnMvV%jTK+UcD&l5xEO(nahsX-{wU1{l0n~xb7it9yvJRcHr8P@) z (hLFbVJRbB~xQs-UzVae@_ zI(+~uQlRCuL3ibclef{+pE4T%1duTy0R76J`z_2|_4|pzKqff^*WM;*#VklvLd|13 z &A27UEDQ w{LUXsW; j<16sHkA*$~#_nyr2j|<)awXc0LdU?P4{#&T$c(MTt z;%NM(g4IUu8HY0o*Sxxj!dsX@p06O&UqO#lwi>wWkx%awn?Jk4^QR+j zyX$YP+l06<`1Zfw{#{d!LpeD #l3`yd1OKW_Ro_*}7)fSWlA(oJnuOuYsN} z_MgDAP9Q7b0pwvg5eMCw*qoo4>p~3R>PGWXr|I}`w!RhI $T(GqBEuubZ)_Y7FPM1n(y!DR~TZ>PU|A!`GS_ zR`osKyD3A#wX;-^Ve@xx+6#05>v{XUHtZ6}#}DVG*&XGVooBLdpfn^(pbo*}LnzF9 z)9FAUsUbRryC>x$GAdt!p=x^RCG+VtvT=+|rHyeTHH;vJm#QMqlaqI&nRW7I!*#Yb zSM46 HV!Q;CRpu=> zAdh|&rLyV8_U@tNK)TU^F`mz*Zdo`5Q7;%ND0~`g<|QB0g8;S;bi9wLfTMr#4QnOR z;km9sx8U+Nw6J~}Pjk?k#r%v>pIGHysY|?nAL*J@@E;Y&Vc2GL4#VHQogO)MlIU#h z7S-7K_m_I%n5L=7z)TS swXPR-P5 zum-{Um5|ifFSaUuhguKsCw}k72YL5}-8kpNw5#SS%-@KAIv5JmE{T=CwKBfXbs2v~ zBDW{INDn+pyLm1|GUJ|k2jOpi)(K((;9VDhFLx3AaVF=1`VVw7$+ZyAr`P+BnvUUj znLz=l6@KqS{vR2R589p!6_#yK%Ev?1{@hoFbn)rBzrd4NhS6y9&>Q!x0w!3`z}t-9 zw?umz6Qh-;;>*T;QKdrK=ia(RqLkB_>9o9(fcj07SbOQ087Ak-oTJ~O$hYQJmcCQA zv3?kua6PvYycr#piph~jf}6^xD>+v~Hyb@Dwi?}TZ6o|KA c3Q0bjC_!HDoWC %F_cDP-j@>hAx5Mj7 zPVwMSNq97f?ccAAL3L#8X9)+J-gO^6Hd-W2L$4%fL~C;us%0BRdzSG_NTr!R5VL|r zK7>e%GI|8#Aa=}E4z;7L8ebSYE1&RCE#Ug$blQU1ETCmmHvr5}1nwnNb?cCpKO675 zZ|H0(qdzCHkbu|7ub!wgu>U>|3RZV3YO(wqQiv*25?m4M<@Kwqtoj417&PaVmseEn zHR_`LyIdyvfm2UMr; wP{4(a vgMRq+)mI&F_iTX9pVK4-l8_ z)eGHMEe&^}YFh$~R6l8OFZ9l#JqOrH!TmXW)t*5;x>?XhsSQdkwPcM09ELw`@7Xa} z&^!-bww}0F$4A8rL^NHXqNAts00`59Sm%Gc%_&=PEq-6CIY9XYcsmr=R{|mqh%{hI zu>1O>n`@x`IgNC2=bwSVDN7||5P*;#m^nKwU1B4cF+?)2*wJPe{jduDlDFhrfpRV- zUOEou!cvK>JHd7j&!K|7Uze@&=lQE&mf}-aG4%5JRaQAW_ZoW3YV_*uk=2zY9nP0u zn&Ca#(*<^WgTFF(Cb@Yl#FGI&>kejrs`*=18ncP3=JLA47qCTzok&>m_HrlpdspTL zL@8&PO=78#NaL6klLHfw@rzs=+eGp28;;-`;DmE;%RB+escXZ03fhH;X4UBYv!tkD z=E3qHzDRss^>X UXE#4p^M`lTeN94n!qqk-q{GBs|K0o4^5wN1amQ@(&*8q(a4;! z`jQP#-uyoKPPQ~b&o~v~%Q;g1O5JSu0~$RFH%3NTo1&mGvlUx PxSRP@t8 z>)jyxz4BK})&j)^a(SRHkjB;Uq|cd6F_-Uw-kH)0+thPp@%uE&OLuHrN2d_>)T-WZ zXGd^M)8LVv9}G&n>;xbuH(~r?#;LZV(sCk`4~`^H9=iDnUZ0I6(U_7?wvsClQRLg7 z_&!Q5J&3rDEh`s0W270X) HsQ21UTAJgQ5HM~5M&Ed6Be#@~N7QGukML)8 zRp%t19J1t2einfdj$Y@md*t#`GAUlp!$%5&j=QLdS!5xi2sUqXrQ9_#c~qrbg37ti zAeK axjKWf=ahi!0iiL^q6Js^Wl9-Ck0X!a{RoCs8pCHvtF1-F(i;vbA?-qS1=O zx0RLrzU5T%;p6Nn9}d9IZl58ow%CC*)mh4mFSI6<8t1FN=pasA9$hCx_kt%!*-UKm zHn&JWAk0$G=F#7N_RjWk=lD COWM%pdAUyLEvXm%^WeQl&4PN_ZitBYbJjrPlY%Nc6xkKU z6YoM>vk|$& C}| XaM5JagM3D5QFSf9u~4p9}@3 zCCx-Df*?qc?+QLsnn~wZtKY(!(xFLJtGTDH{qfp!`=9o_hf6E#wKr|Dd|nm<9&TDI z-~RSd=DB;XMYykZ&G$E& + \ No newline at end of file diff --git a/vlc-android/res/layout/video_grid.xml b/vlc-android/res/layout/video_grid.xml index c617eec6b..147110267 100644 --- a/vlc-android/res/layout/video_grid.xml +++ b/vlc-android/res/layout/video_grid.xml @@ -8,11 +8,16 @@ android:id="@id/android:list" android:layout_width="fill_parent" android:layout_height="fill_parent" + android:paddingLeft="20dip" + android:paddingRight="20dip" + android:scrollbarStyle="outsideInset" android:numColumns="auto_fit" android:fastScrollEnabled="true" android:horizontalSpacing="20dp" android:verticalSpacing="20dp" - android:stretchMode="spacingWidthUniform" /> + android:stretchMode="spacingWidth" + android:background="@drawable/background_pattern_dark_repeat" + android:gravity="center" /> + android:gravity="center_vertical"> \ No newline at end of file diff --git a/vlc-android/res/layout/video_list_item.xml b/vlc-android/res/layout/video_list_item.xml index 5a6fc36fc..bb8e36e6a 100644 --- a/vlc-android/res/layout/video_list_item.xml +++ b/vlc-android/res/layout/video_list_item.xml @@ -10,11 +10,11 @@ android:id="@+id/ml_item_thumbnail" android:layout_width="120dip" android:layout_height="80dip" - android:scaleType="centerCrop" /> + android:scaleType="centerCrop" + android:background="@android:color/black" />+ android:layout_gravity="center_horizontal" + android:background="@android:color/black" /> + android:textColor="@color/list_title" /> + android:textColor="@color/list_subtitle" /> = 11) columns = gv.getNumColumns(); + float density = getResources().getDisplayMetrics().density; if (columns == 1) { gv.setNumColumns(1); gv.setStretchMode(GridView.STRETCH_COLUMN_WIDTH); gv.setHorizontalSpacing(0); - gv.setVerticalSpacing(0); + gv.setVerticalSpacing((int) (10 * density + 0.5f)); mVideoAdapter.setListMode(true); } else { - float density = getResources().getDisplayMetrics().density; gv.setColumnWidth((int) (150 * density + 0.5f)); } diff --git a/vlc-android/src/org/videolan/vlc/gui/video/VideoListAdapter.java b/vlc-android/src/org/videolan/vlc/gui/video/VideoListAdapter.java index bcfcad9e8..1e775295c 100644 --- a/vlc-android/src/org/videolan/vlc/gui/video/VideoListAdapter.java +++ b/vlc-android/src/org/videolan/vlc/gui/video/VideoListAdapter.java @@ -145,11 +145,11 @@ public class VideoListAdapter extends ArrayAdapter holder = (ViewHolder) v.getTag(); Media media = getItem(position); - //Util.setItemBackground(holder.layout, position); holder.title.setText(media.getTitle()); Bitmap thumbnail; if (media.getPicture() != null) { + //FIXME Warning: the thumbnails are upscaled in the grid view! thumbnail = media.getPicture(); holder.thumbnail.setImageBitmap(thumbnail); } else { @@ -161,7 +161,7 @@ public class VideoListAdapter extends ArrayAdapter ColorStateList titleColor = v.getResources().getColorStateList(media.getLocation().equals(mLastMRL) ? R.color.list_title_last : R.color.list_title); - //holder.title.setTextColor(titleColor); + holder.title.setTextColor(titleColor); long lastTime = media.getTime(); String text; -- GitLab