From 8b71b839fab65fe5f6cb5c8afc0fbe3b05f72f98 Mon Sep 17 00:00:00 2001 From: Devashish Date: Mon, 18 May 2020 13:28:27 +0530 Subject: [PATCH] LibGfx+LibWeb: Add JPEG decoder and integrate with LibWeb This patch adds support for JPEG decoding. The JPEG decoder is capable of handling standard 2x1 horizontal, 2x1 vertical and quartered chroma subsampling. The implemented Inverse DCT performs with a decent speed. As of interchange formats, since we tend to ignore the metadata in APPn markers, the decoder can handle any format compatible with JFIF, which includes EXIFs and sometimes WebMs too. The decoder does not support progressive JPEGs yet. --- Base/res/html/misc/jpg.html | 23 + .../jpgsuite_files/chroma-quartered-lena.jpg | Bin 0 -> 25019 bytes .../horizontally-halved-lena.jpg | Bin 0 -> 29282 bytes .../jpgsuite_files/non-subsampled-lena.jpg | Bin 0 -> 35193 bytes Base/res/html/misc/jpgsuite_files/oh-lena.jpg | Bin 0 -> 155145 bytes .../jpgsuite_files/vertically-halved-lena.jpg | Bin 0 -> 28566 bytes Base/res/html/misc/welcome.html | 1 + Libraries/LibGfx/CMakeLists.txt | 1 + Libraries/LibGfx/ImageDecoder.cpp | 6 + Libraries/LibGfx/JPGLoader.cpp | 1055 +++++++++++++++++ Libraries/LibGfx/JPGLoader.h | 204 ++++ Libraries/LibWeb/Loader/Resource.cpp | 19 +- 12 files changed, 1301 insertions(+), 8 deletions(-) create mode 100644 Base/res/html/misc/jpg.html create mode 100644 Base/res/html/misc/jpgsuite_files/chroma-quartered-lena.jpg create mode 100644 Base/res/html/misc/jpgsuite_files/horizontally-halved-lena.jpg create mode 100644 Base/res/html/misc/jpgsuite_files/non-subsampled-lena.jpg create mode 100644 Base/res/html/misc/jpgsuite_files/oh-lena.jpg create mode 100644 Base/res/html/misc/jpgsuite_files/vertically-halved-lena.jpg create mode 100644 Libraries/LibGfx/JPGLoader.cpp create mode 100644 Libraries/LibGfx/JPGLoader.h diff --git a/Base/res/html/misc/jpg.html b/Base/res/html/misc/jpg.html new file mode 100644 index 0000000000..11f199eabc --- /dev/null +++ b/Base/res/html/misc/jpg.html @@ -0,0 +1,23 @@ + + + + + Pretty JPEG Pictures + + +
+

Non-subsampled Lena


+ lena
+

Chroma Horizontally Halved Lena


+ lena
+

Chroma Vertically Halved Lena


+ lena
+

Chroma Quartered Lena


+ lena
+
+
+

Oh Lena!


+ lena +
+ + diff --git a/Base/res/html/misc/jpgsuite_files/chroma-quartered-lena.jpg b/Base/res/html/misc/jpgsuite_files/chroma-quartered-lena.jpg new file mode 100644 index 0000000000000000000000000000000000000000..08b6a82c7156fdad2201b28a8244f2da86c6c5dd GIT binary patch literal 25019 zcmex=9G120;!c1||k(MkNL&K}Kdl#{WkcWEmKkm>EHU0SZ`H8Q9o47&)1l{vTm* z7hqswWM*V#VP|D!V`E}sW?*1pWo8p$7Zz19G~rNIbzu}UHVsKkadZwYED;n}GfQSt zG;%F&Q4b8AvSf>SD(97hhd=y3!XVAafNBlMAT~yJuq|4Gj38@Rn3$NDm>I$DU}R@Fx{~4ontcr@henR$W0~^@6qp1Wx$9#Xi(XAzy*^6ULOY&q_a8UQ&R2P> z19~1Pt^UZyaysA-go@!?8{az+TS<~GAB^gF96Rw}p7xpaE)+&KdfbY0rF^6URgqd~8Q-5+bPyN}_ zJb%}pqX#B56fp=m6fp=m2`~w?ul~f$&*4zOWVFvk{Ao=G!vPtYhL{I`BtT)#c!PtT zp+%8Fk;8#;#xwQwHW|Y+@ybW0bgw=$T|3NY)y5NBqZ_1R%5PX`UpUL>QGR?<6Gt6S zk&PG!p8y|&B@^Svx`Y=+pO=-J8B2(sGJJIAvEg=h{l($oYtDK4UX6BYJ0quX&tND{kgaLxk^uJg=L$-I-#Ar%4S^lsTW)5aA5IF(~|f*&f)#_g>rly zPO>3&uRn9fCKmlUuKnTk_Xifv(pO`{UI}!uUwxbTN-3$ww{7*N{dLg?5B{sZY+M|? z>iz4l?DG<2OWm|*g@j++#3Hx;#3#27r`K}xjLsR%uKeYC_rlX@u1BJ~6r`$-Z!p^Z zd6}u3ZR5oIT^}BsNGxu1pL~Qb>{KD)Y^A zpExN?-S5CzHjSjXgrfaMd!HZI-jr=CW~pGwdPZXHl^*dYYVk9k);TSBT9*<(^9Kv} z3;~CN1||+Z!TVc|9cmY1h*2uY%$ovm|)0 zFE!qFzTWxBbj{UU$~axF_=-C{i?@~MoygYDzV_GNR=tyq&k~ld`DP}x#c&4Oy@X4F zb&EWBr~Z`dnptt&u$qylSlsYL27B^^XX3Y~K9kfj*msBNOS`^DfR@Z&Wu?sWcN;wR z{JoySFe$aB@!+QYiVo`9Pk5*Ply77`W0O4d2Mco#i~P;)`m2lnGi<)3U_Xsv%kjT+ z8}m*+S!Xe+ccDt#;Wq|*C3pX*k$U!{fAP2f3@OgH&wpMyr}}F<|7*QjRf~(CRHpG2 zU5)j*+x@^*_V#VJBCVU3B-JF=zW8@qzMy7q>Z~^#x39~sQWdVc{^PmNdPzB@(#5%#_suQ3`z0qpI;GrCh?o0vi$OZ~^b=p6 zx!0BaYmS-t@=SlART*2xle0YB=ch^hXV|j7^3!4YZ?ipgin~86TBUL5vG9aHQIlDJ zBIe)(2g^r~797_8#3|mw*vQP0c}lG5lj-lj4-WldR`_`8y(Q}l?)8#ZLP2lB7dy+@ zzY`Z17kAG6`1{vS9iEn*mWtX1NA*3Q@f6GIUhba$s7d@$!-CdtKN&48mc*`8n0r9n zGIpNAhU0~CZ9m&0RZV`)>bdC`{}N5!5%}u#Im`(BR$^lf<*% z$ml#DEBCV8DSBVO32o6ZDxS9N#h$Ib#}^+tENipx?)*fDqAjA8rr-E;43F^!&aJa< zEPwyRFn03NynRP68uxhY7x`x_dd_23Pu;Oy5=~Pd&WJIS&XHT~=HA*9!9VqrTKI_{ zx_eWK^F^;k>Vz#1D024hduEWBQ1S32hxVCbweTl`O56DY)0TW}JM?9@!<%Bw4VULQ zR=t|eefWbS|J}Z%#vcML3@scs@iQ0&c2^uT`@;LmKQd`ew|=$PM%Vl||IWE_9S%`e zzOg>$ac%z9tnX(JZde$9cm?m{2j9OhEaj=PKRr=)nd#fVmAmYuBv{PnkOxiK) zj`xEAQ@b;_r1z(Z&z<_8f%E6SfA^o8z06)$ELuD-Z|B{g3Q=2yo}GHfrS-bt89Q75 zw_ErBs+pg-Y4Uz~%&{9!va8Ar=V;_^IH+_ZaN^WSPdC|T_TI1Qos@Cx{XS=rqO>;k z?nlg1kKC)-=w56#A>u$we5=9^0mJwSJL?j)xo23}m;P*CC$QfzK&8dz)X^9om7aNT zV%C?sylN7E!g^$#VE0eKx`dzhhKrs_#!vA2U071IGwx1t_h+UiBByD~QeL>}-~VuE&D}3+v>$Kb-=Cp% z?C{D2U#`{P+n3h1w;dN>k)6t6xa84~7n+&&%VIXHXKC7ZzmwzSx{I%6+JxhGz6*b* zcj_cZY}T8`(k?5X=ku;tNxyEfUpq1Gr^DUq#;)IN;WwD4#NWQZ?`N>A`ghUemhsBL zZ_5{Meaqc^En=0N%+E$$D}yh8YJQwpn3y~>Yis3{nE5k{wpMoETkf6GD$%{rO)cX@ zT2->nm3xx4JJ%VWIQ3OHarX`B<4+8C2mSom+j!yHn|VRcg*~=*m&nR4FE{ggJxk`6 zjoRhnP_T)2tlIfYUVMjlx_+_5@ z)28EhVRB;E`+$=P-MUBQ`upAU-PVMDe}AugjetX$q%`BMX-rkAhr~Y|{r2F2V8y9V zsi#D9Z|u9{%d>Lj&1t5U$L!`jIoHa)<-J$-J#n_`yOvkKz1pI%@kN06?Tu3urr%)E zTlaaw?VrV}bL;*yv|7nrIxlqa<)h~dF6~KPVQOn_bUA3FC3m{y!c9&+EgSDAyf`~e zcj9lKyx&i9HrZNEe5LMZ?5>uP=u>cswY4s_a(+b>yY{RT4>q1;Jj8mSVQTAP(bh9E z>o2!7&oer)!m=+~wbA6te1YSKr_bd0&)~Xsafs~tE2pj-x&D}Xs9hqvMKbhk64oI@oOf`4MXgDJ_kXk&&+M_IF!K#0oZtb=D>vTMP-HD^AMbmFEZ;7|~ z^ixn)EwfC*J!>xS`laDVTDEdYTsVLI;gMTqCr|&V+Q;TzEGPX&!VIPBtl6UXdZI)&GAbeLC@0&VTp5@}Z+s@266|-~B z`lV6r-$l>$ZB2Q7uA23ePgtpxY3va${`i?H3HN*6zg`%ddScfeOLNCH%DMqf{YiU^ zJGWK`yuNSle))pwxl2~75C7WMTRf{b-}~UdO4qX|{&7_7I@-RBJvK=y#NkY_ZC~{J z*YiqsST_G)cu{7tpegCGo?w<+`0i(B?Dw0xr?%%@-?>EGYTn)Eg)FZ~6?0rU`0}=jVv~eR zU*1H0HZeO9&{(7K;_NiNi7(Ie{dxJ9ZM*Wf8P67#yy3Zca+XA}ZpDFTmXmfJ-@`3p zxTcR=M*qxr?N160I~%z_bH+|AIGR|HJoz*K#)qr#PTyh^D;K)@-+hlA*R8b=rN(?V z+WM!L|Ayv&hNYYI-@d54Rpfv9<*F^A@`>)h|Efu3&0V1KCpjTC`?GySy!RBh2}S#r z4`2O}_iv~2%#-nXMj0mxcGwi%?{ic6&%oTq^qhUCiDdE);pFhly8jGqeG>V0@;hE0 z;7px+^Q(^N-QRJ(z3o9q>vi}i{dq0Tl2OXGGb!^ahw8V#J{@ZDbq7snE{)X5eQwp? zX6Es9g|7VlzXx{CwBq{BSaiEI;`a4*9MjMJI=ts~%hP~w9ABBamZ|d;6mxegJ>ACDvgTTVxM25Z zj@XG6P7i)?NUS@tf4iISRi!(X-B09ge|a;ac+W9|O_fR)IX6z6@T0nN)vxU>r-b%> zTyV^q;q+&-dv`9BDD3v|d1G^2Akq7?*~Kp=CGmG;E1S>EiId;K{^`J@S4o^QD|Y5- zBpqOS_je|50F&N1g=N9IV>Rsvo#?lT%;IhQ(8V&b)HF`$<)? z^c6q1mrC3DlBznt^?*{du&u{4`?tcCpAPLePJgkp!@-gz$0;n2G7_R-aDwuFrj81)Sz_aq z^Z2%N?XMG@96Ntm3}fHtg>S4Tnt6XWX=4fZeFdq))?Y3j zX1#grokjrDZ#KizN$WrA@FdR^PEGp$g>!2B^3M!$Ve4N{@Y-!-FMC)pdtbZ1b0^bo zcAd?R5r6mAN%-GD zvua_PUx3x6Wd4?H;nmW+zI@v^&nHKt(D3T7g5up8QCokj-M(*5}qO87Ui5 zK4)C}&%p2ZvhriCyk$wZTg9=dF}wB~Zs=Ng_>Z@`d-Seg$Gm@!*H8X(^kt{jUnUd7 z=|4)lLIQ6udtT}vV(hE+=3!b!e*K2~<@`rx#l5Ne@O?e6?1zJf7b5olKFqUzqJL!4 zvr^&1$MiQW;5n@D#Nt8gHQm5Fnz4PqxrP25{Lp@C-u<`vdY6Rk{dPSQ*>CiH{pWex zU+;aY`{VtT;Ar;?7n48q=~Ryh6HYMIKkHOb#=FYM)Fl-{)4-RT9}%nLn_Uth2{ zuFq#&7g2VW+v$2-V`5*lYLnqnzVL9#V)5EvE1j5Im?t|4G(2WJr^2r2nd4Zsndi%e zHGVFquSlzCCJ8&Ou{2&Wy=~$*HuV+rGq-vCW){BUH@9&XZ_t66-`f`y?U*^gqKcdA z&)M|lK4H(C1Y!=c=%0~MU?{7Y$@)U}ZLzjvhDfr;-?Pju$@^y|)(4c={yG2V-`#xo z6P;IW6w~X@|JXU{bI&Q`W66fTo6?Nh@8q7+xsuMmVL`Fn*AszZ61p3{F_lH$?I~yO zc-y{R&#Jh0(n0H=mONat7JEzQ&zjoT8{PowC(deeQv2@iRlk({ip$5%T57nTzzFMNCP72~y@M`oY)m^mshHcyv*#w3xh z60)WfA8u}vd?qM!m4Cl*YWRuwKPJ?y;^q~*5jFGC^j}3Kr#q*o z?N(-;wSaYt<*|io!jnG>S8tH)w3*oSn_cH*_w{tmhSXW7#7~@jcZ~7u)Yh4X#l|x( zF}&9Ld$xbW%YQ1x+!8HPfA~8MKPv8f*;963K0m%KX2NccV-j~m?C(r2d~ctBq_4WQ z^{4ilwkTuG-W|tx^t{tx&bN1bAuc%e6T5=bV?L!vFD0!crI})aXZP9XrA<6@ee#6c zKMRXZF6wTweq+1uJ(pN*zp-`vaz~zK_}IhnZGx~8{%y5=VB@Z(91 zE6;r8shl+H)D|O&&nl<%LKl@L6&bd)Mc0*!Sfu__DXu;EqwP?`GwDQ0xxHL$eLQp4 zZRODT`XWHw=-Qk2ubZD-=!wsdU;gRA$5YqmBKN_e>mL}9@QAvxBF4bjT-^e7EbVe9vk}mi*3X9e8tSzNe1TyLZ|H!m>gSY zv+i!x+E-O?!Vj!FcX-7yiMQ`-Y@B`W@1Ob1&zRLr>}TiBh2OWx)=WKa_C~bw+`s+2 zvL6-gWIm{tt=@9X%ETx_NBdwv`2MMnB7Y=wJX=xl!tuhfUz3i?vhEgtfAn%b&!+V! z|IL3mO=it1!Iso{@`(=dy`MyV4DZjhJ0QJM=`~BzKWEpArA|&91_BD*Yr?k*J-a*M zjiS?j!5H}!y{WFdp4X=Bu>bY+)SJuEA8S}DGV%@1ACY|feDz0z7$!TF2S$G<-vtJf00?=#0ck)E}agr|Pu=u7XoJ)MXB=+D_{9g)A! zIh=Sr?Osj}--%1oX|0>{*J;l!JIeMVYR1FxxK_rVq6Mc5b@+Vd?OLhG!KW4CV9CMA z;lxnv$z)iU@aD6o$s+NH3vV{t#LrxKGsWksRMZoLC%)X5`#e_6lv!+R*!wEq@8sHz zXHJ@$FHcG9^SShFn(c>(7`?vcVD_kA|TwWj{O+1twX^^^9r7YnVPCpf)Y%Qii&m0vHl zJZ#m4=!FX>AE}&Jbvj`4!yD%wmC66)5q%MTNbT7U+sk{}$`s8{^heI$BYuAB4JYRs z5Bv9grIBnJuHH6VivHSpv&=d^x&J}!<7X;+c0DzdoW<)A8(sDFW>kwa;}Xl2rAJrx zpImp8>+9?0L+4^P6-#qieZ4tx-Okvp3QM&KQ0+f24R=6)k!YF+MJXJOhlX-<{l&D7Ny_Ev|!Xy}!(^}L+R zZCkthpjhfc*7U<~U%wHHYY#ZBE?l#x^l>xmpM{GxWh>^}pW?Y6J) z+E(3_TkE)Ya=y!F%cG?gMS3foWzMFGSE_MAmOLkgX>#HMAeD^wTJIv>DVXwuLj?RiSt77FVesd?MrY|$Hb@^V+ zY*Lgp-C*PUro-~zrarU%VA1y^=dV?X0MCBoi^5DCd*1H*fak!yB~gre6rR>U-4BcXML&w{^$vU+(|U@I~Uu z)y>Yz)yju!EO(qvKIafn*1r7Ph4s!mG z7EBXcXS_jh+K$@246RdZQ@{P@;@Q9}yWwy9Cgb&M_SZLUdS1q*Qu^6hIZ@kbPp0pl z_p`)mj`UW^_&NQt^qm#8&sp?^--kDxi>IzvfBPcYJ;0>mhvxNrl5MNcZQMS!zWrCC z$<;Hzy&t#++}(JeXT!cn`|2LGGF?tQmUr6j;m+*qClgD56g_e4==ql3n#{a1;mViy ziOJ3)}pPBxEy z#l0j-=}+TLWgDaC+#RR>oY)&WR|8PmNg)6PCsoiD2BIdfz**)_t_J{tm zkvcS&FFgE%hS-YNY3>kzCAC8r? zb1N$x{jM9kX17n>hu6QBXT80)b^0sGAI)=;r?SW9DHQG8v#9URCT8O+JdxR=g%)>y zmN?zf`g^eG((1ImXG`?AYwfsSP@>lnZN0Hf-m?CnL+h% z1rEfk2}t%iDlB?>K}JC);Xn}!bAv;fB@1&yg2F?FH^ow!-ZP%XeEG2K#NVZ-{aN)5 z?&m%{8N0nwOxbE?mGNasxrJZeNIkYSocKz8_pyv8SM?Gmen0TcdcrLC`>b8o%grXd z>}2B5ORzXtm++ALvpAbwjIYtk#P|vOTmu7M`<*(Qe^xrQeBYz(ORJbqe=@8OeG;%f zURq&knc3t8XQyk6et*63@AI#>mc2jPAIH@ma8T+$!`=y9^>&F}9-H_4?$>v2kMY@e zcO~!My14}z&njvgj_=Q`ZDn?K_Deb(X?v7OS2F(g-WbW;*3I(UReGNCAAfjk;ej`v z3$7evzM_%*_^Vpxipf)NB_}%mdb2KkYt^&$k|h3p8+_13USz&c%*v!*eYY%Q%`0kagv%0_2%Xxn% ze9hu-Yl~lz67}Y7XL)MeiYipUhVJ>vmw~RpYIGKC2#FGD?;dTcNYlH+9W2o)?zyKc4U}bAS7~d-2p$$$4y= z3y$V3PITC+D|z_)gA1pV#YA@{NVC3PBXH=ZcFVdA&VubK?wy5ZyKny3EM3K>E?e`T zVWQXd^8Vmn9uOab4rNvUBg(f6wa5KD@ub?&K`}GaK#(Ri8_8?fTCk zpcX&VUEWKh_T7V{sfA94b?K`=alA7;fBAv0^0!IWZ`e{7OyK67DY@qv-}1hmJ7vGV zXh_PZ|90*;Zypo-TycZqvwLFFyfJZqc22#z$FR2HV5YHYg%PVFe}j`iGpHgmkdaZ4 z?Q@X%hYio1H058OaP7vklv$nc zzVTf=xhm$e()J#{xdhJ(gkJh8f3oj_gR~iYH z#=gIES;#~q{8(JmPae)So;EXnx9vOJ5nCraIl8r}bM}Pw9_LaGwsQUElPO-gC-mZm zg_j?%3oTF6di}?>=*pJa;x$%ZH1r>9fB4U^B4+8bj?}w{R)3d^k*yQ0-9JO(Zq|jS z*oygv&lnd@yI0Oq#K5xYYEA1ug$qk^r>H!>@#(VZ_2b8kJ>`Yt?b?O!Z-|(l`SV6~ z>)-tXdwCicY}m}IYrXJIz=5sC*_v_o{t=(s{<$~%rp3#=cx$wA zMdll;3jsAgr~f*u?0Nl7ewF6^h@9JUEjdo#QrG@{{j<$?lNeWvj2%n3pITeb!u0hU z7G9}r`p$JN=$TP^u=tNaJ&kip()k}*PhE-Da_suT^=+A3c$$4)XJX_mfx!O^fid;R zPMIq{tH|VSnAvH?&AjPq*$lSWpsI6r0#mnr%E^5_ZAPf;>s1zgzga`_TDz?OIJ5rj zzW&Vc)K4ar8S78{J$OAuwa#I_&icp&pAv7_6=l6i7pV2!uUtOGn*Drie$yirw}QHF zm$^R~lq80w%=4Cz7by3e>Un+6#jmfg|EMYBpTD|b6MMn8v~;!mGdn-sbzFP)OV3m8 zb;eQ;CN5Bm+3;%B)vLQCZhz%oryf7y3?uidN|WmDpWRC$AMrJu{%rdyMSP)y^0Jtn z8D}@|&+Fa)KxV#xtn9LY=)UtYdm|^#uTx829@kji7A|IUG`@T?Hv$rn&8x*Q=eJR>&adn0V?xipP zPJLZvpTESPYip&MnFueRozdP+hu*8kcZfVZ`KTm)*6E7qs7zi%;kdoreeU^}Mc*1< zKP7(Z-^vSHe)Ss(uK(p|T@fpA_0gh=$}CyW(2Lx5<^KAdb6-14Cqy4QwCGo9dfvWh zl{3oMntoS$iC(+?QG{o5pebKViXD^P$ArW+*UxM=5;8QNbjLnm=d9?}Rrd|{7am?0 za`5=Q>Cb+DOW5a{AC^-&cfYW*?%|e9p0qcc->uC0Yi40{CHec=1H0s(p8oK9+U&AY zwsoAdjaq9mUcE4s%leU?epG!W2gx@zmxq6x5)tgJVr&K&U^Sxl-qub|Vr1|x{&j&mzS!SOY-#PKqYsTvR z$`1_pJWtB`QS&qE$LTqrjn@TTo+Nw3x8g=ZoBrINhVw1snstQSgB8MN^f~Q2Ecmq$xPv$F?Yk}o)X<@l@Ygiro_`a*Q&c2MF*7PJx{&q5l>lm;#@%U``0sK zzuyvjdg2CXJY<^Vx#P7Lw$DA&l2R>Q_5A#~3*xnG%OnoU`ud&r^Ql;SBQ$S?cD7>Q zzul@<8W*#<=G~L|`iyV;n@;sVg^eEt*$qw{OO{@qa;$J`lJqO_gsXSIDEq72dM~+K zzf*pN#+o8CzpLIA$L>Eolbg23w)mm@1;Ke@HtYG+S|2MI%bc6`=08KuW9PT$s$#)w zRmxabO72)&`hx4(UxsIrF)N$Cgs(ZeqjqOf^2E+PhYzLJB|H&lv$QuTvt$;W=gfNe z(Vv4eB2*fj^ep_Y5riqT9{t<{HLM5*B~v6F;Nnr{RIJD3i64mzJ-e`h9D?fBV~yXC}SQ zY7sAt+b{Ux*z%kEBkx6fKP%&YuPHJ8lX=0Bi*?5j&752RE3=$O#&>6NmD0rD{dsPY z$NFzye|g%+ZFbo1f5qJ>Y1aFiBQM{#oO=7oPBKYX;`@_0jT4KLJ?Cq# z+_mrT!rj}$?#^Fkc|3A!?e9a0Sud`y<6pIF-_g$n6`?#CZ)$3ioE;T2oS*M?R!d(I zn_S;~>E&^keLn>D&fl^2&+k?HJN92*6E$h=$z ztsj>Kyu7KgIUxVGPWcy$`c85EGu`K|-~A!N>QM1CZtjd&j&-VS7R5VC&ilO3*;Crl z@3&u2?_^^}i!O)0`?}Cad#&r{@;lxXQ%PTKwvX-5Ze#tA{F~B#E&VlX@$Z=FH%vf7 zMWw%ro?dqEUYKn6Z!b?`-Lh9nVkUO?S58b`9?{iXwp09#Q|Fpn``RYBf0t&sH=bUza{&IoVbA-+&6@X)fhb3JwUm^T;O zo%;K?Amh!?o2=iY%OXs6cb#9b&So2%Pi^VP8@~!_wJu+Om&y8I?b-c;@yeAomRWPT zpTsXLTb9ZCJbm4s&8M$(URoP}Y(}i)In}y(jbARg-E{K1f1tWEUS8&5cDGl+w*1a1 z8UY`k|0>G;9uU9uex1wuh$|LVPftlM*6GXIXZ5>&hkn4BCo@mxe94)XZtRqplO7&u^UP?RF?z=orbSl<;Ft@x1MCZ>|X9zHs~c z`x_E>qJnp;NG$k%|0DONm@R2Hr+sa*V$<%7S1gk^EeUj+)%(`QaCH|~)UgRSygnRX z?KxNX);UAwiJ!99)UEt^w#su_`TV+^xwCH_yV7m`_h6sYy`B%ZHZE_~{3RSUKXdAe z{7xx$Tirv4|1&H&c=_&<(4%|A|LuBi>GLD$_2dk$HQhFj;_NE@w}QE+^&AYJyid&P z?$oL(HuIaixZ6`dm-anc!gH?lKZ9MHW^0>ePU?yCN`mv;%A5pb8dwBmni)Cxr+!kX zW-{96^ejqQmvd&yl9=P#pTrGM#7>S~c&2pTpP6U94EMy(*ysM1BXOchw|aEb%SBh0 z*gCq-%9bp;yjbT)L;M#@=QX- zWog{3Nz-o7ET9jFP|B z7LUF-ocksDY~~9!uTT1SLthx>Zc8@1y7@qWQ`70|F{|!YwF^s5jMHi}zcNFZ>$K;F zBU_%`P5q}j+1*wA{=6*{Z9WGZY5uQ`)sdGpLg5sS8H0%avuMb zmOA4^>@=^p&n@?-h~FrAJR{bozNWy|>GiY^8&)2FD(umlCMFSW$8~;(ndpV7vv<@< ztk23l8-I<5B_lcctHiNe=N9Ja-gOG)eOj3ORa;VS-MRJq#GP8XxJBl31ziajv%B}% zlE-jD)Y?e<$E+{HUkM~EikkU0`Zt$|Rh`16x1lSt$~o;|;^kqR7+-e~Z>% zS$F7Dyy2()M!whDkT{pZ08y+!4L7>bor0>lhvV%R0yX ziat8)y#HkOSZ4hM%SV4s?pf<)cxavQ^0Lk1(rcb_@h5Em8NNWw5Pac?QiilhPN)iHZR<;ZqtvaX0Mu^<=5+a z9}I|yHCfBL_}uixAOE#Q_D(r)$a+PLYH8tgajva3hnH_jowWLv)3JpW9{SspcHL&Y z*0Uw5)XZ45arvD4AJTU^&M*<{Pik3P`(!V}jJH0W8`pj_5AmP=>GX8%F1|KLmzh1U z*vxNPEb3_!U$yEVaHkVowZWNuG@H1q+(|t z&T5_g<;Sy3nUz&rCI2&YimiVoZc;b%Wy$x^7`LJq9-r?XSjU9 zV&AJrOT_Aw@;1+Z$a#X zS7H~|tG_)xb>{N<^)VN&_bk}3_UFAWjSbsOS-rh3P7#$9=-wx9^QofHn5TKu3Cpe7 z&c5QhlHVKWd2EXN;=G>wUwcOB-j(0Pm;Rg*9sEYmds9+=(PuHxP^*7JR?eoB>G%B( z?3I~$sMx1}AG^Wn@a!9+H|1-pyhX~na%-hB0xx9fz7PM=-xg7H=-RA(_gc%sW0oB^ z(x2EoZTB;Y8wD4yh`;iR)f2Q@@FUT%&>Yg35+|DnwEHK=#zE`F_;I!H<8>6aK7cR~W;=X>P;PqFYS$B8OyY{iJ zm1oYcKbEs%!%f+ezxzo2lYb`pquG0_UKVfWuCI@F-3~6j{NN65zWcpzfLc$x!dSN-OUN_tcpYWCU4th_P!!p^v1)R zhK5Zy|E=G+;d{|v$Fm<#$IQB}qLbMs;HK7c=ltJ{mCv?xQoR#tIY3JIe%{)0)g_TRoIxe5gw)>E@@9^Q( zGwyjai}-JsitD*?e~}j?ns>ceBH8a?_b|nO4rSjtdnK! z)!%Nm<*DKCZC&dRuYX@WFUPcS8PhB~-cNt^&$&z%$lZL@x(^@!Bd@9+NZY|RXg*u*{i?einIeitsEUFv^7u{g%lb>b`TGyO_) zjkK;k_^{0I%u&<&6%lt;>MqYIE%QId6=7f5^VCc<{!bg5WyG$={90@7?uAvYCrh_> z*VOMY-E?yI>)^2ayYddn`_=qSTrUxy|KZ2;3){?i-EUw0vztTSR^Q_6(F%`+@$V$m z9*XOIdUpHfE^gH}c_Yid1ux$UG~X$!dS1N#hkTV(jM2?t)|K-dzAZ@$dK1o(K5=4+ zg@uC!3%la8@Fym6-4R@3n@))HWKC0@-+lkO)~@oL_m;eSi%TP8LQl@z-V)uWEOXu? z?Wcy!-;ec*T^}2nO{U+k*_1rNSXoR=+^DKMYQ4|&wH(<;crIn^eZjtmwYWa^mfiP^ zsQHOmTHDh7Vx~PySo(dhb?zRavcMJ?C&-Y_+NY+JDX;p)Zl z%OBn__7q*cwID|$z{KKp`qin|*L|)3c6`yrgW1pZ8C1TO_BE=xJ{K?$v)at5R3y!}&8+7Eu*?rMMrVD6UV8Vjg5OntjGnxnmZ27%cba=vY-dJ5+VzR= z|1;c{d~Bo5{axbp#%I2huJo+8O^eo2MO1tk*g9%-wipiSCLrfzGK@zns``y#D^**H1}tCcphPyY-(eYuC1kp8Iodf3oJ7 zlgafjb>7_K&fNj`P2aDLNZR-9Uc?`(C$}`;>Fdw_eCMoK+McHuCw#4$CXuYz?A;eF z^&;WC?$!Mr%KHPdCut|g@rZ5Se~rMT%&k<;PJb-iaSyPMUQvSHmx-@gA0 zoQbg$v}<&|y;xHIoZ9rKO)`GQF13T*I#Z&%XC_X3*`@pJn%0A*E^McMa_>2COfpVB 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 C0^{ib literal 0 HcmV?d00001 diff --git a/Base/res/html/misc/jpgsuite_files/horizontally-halved-lena.jpg b/Base/res/html/misc/jpgsuite_files/horizontally-halved-lena.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0f12c6af3e4d4f66e69b8a574a6a4f544b747f2b GIT binary patch literal 29282 zcmex=9G120;!c1||k(MnwiDK}Kdl#{WkcWEmKkm>EHU0SZ`H8Q9o47&)1l{vTm* z7hqswWM*V#VP|D!V`E}sW?*1pWo8p$7Zz19G~rNIbzu}UHVsKkadZwYED;n}GfQSt zG;%F&Q4b8AvSf>SD(97hhd=y3!XVAafNBlMAT~y3c91Rlf{YAIj4Vt{j4X^SOw5c7 z3=E9SEKGtzhKi1?!p0&>%7G?qM$U<%Dus<3Km5PNz{AYQz$C~l$Y9TK<-}?C^Y?4{ z91E1J-^i>#6Qk0EcIxkO@N z%+`-p51rZLTRZC#RXwAfxTFOtjvMfMFc`g>wt9V(u7!3y+wMPZmcRbmJe#^d>WNcu z2cI5a@-&I=rkB%p6f5uLim;uvbW&ww)19;7%Y7J+q^Qr7S%2cs3Cs8yo)!lh8bGc_ z#*8Nn1RA(!JX1@aaIxUyna2iMWv?T>=XZZ`h?@4qCw}JK88;U6#Gje5e+I)7=EM`M zEbgA~PV(;DcWd(ObGC)mzg*6(FKwN=ebT>K>f*2W%?sa_X8fY$4bPvrz01!mfAISA zW}DcF6PIND+HGu@aL4m-=^Nm{}~J=)?SwK_nX1oJ;U+TpH|0He-63A zJ!R0sFf(3>!J$Aep^m4B;e#yLvkj7cNo5sD(-%ECGhI8(N5y2v`waz7`!{ts7Rbmj z6fy9{m7IHaESYIX?#}Gj_oP>yc{1g0=oXEb3p~P$($u#Fb^dx^@TDiU!m>?ZozTwB z&(BHw1+F>L-njkUeuJsk*poN1nXlTl_KKp2d9%-x`)8leEiu@)djI+>a+S@Q+s>>x z_kM9B`^l&)66-dIxUn93_*(A3srQ$9WoIqz{m(F?FYH;StyKcwal>Mc{e~bPUHrZN zObn+2ivlAHL;LDa%>0Z8*iZcwU=rZ&;9zKYAkZMt_=YWc#yO~;}%OR?1j%ua0? zMK1d{^+!CZ&=QbgVt(}J;DzVi#y!XG$bHXjce+t-_P0N7XVKr8-jmC3Hl65S_ub&z zjLSatVhbG(ES_mH!|Laj3aNi5?!0I=+V!z6dFqeU-yi-nEHvIMeD!VSE2X3!-?r78 z_Sa<_Wc)Rixq0UHvMQcki$zbh#=D)UnYhR>Hu++~$7!wya=~6ZHzTcCq~zGAipEoS z&Zd;aII^Bmcv|Pc6aGwKzhQuiLX4s~Glv5c;{j!c2h1%p5B2_f99Fm)Kk=T>bB<=w z69zHfGK~!i7Ay)o+k1+|Hy`N{S4*ClxV^HM^_}(1#MntW(*^i60y*>q8gi^N%;=#GIzL{P)%JtVUn?3y6 z^P`cn;_FTvtV=z%=lJQjuV>s__3EE~%TYF7U{zp%(dKIE%>di8O=&+$&5^%ETIJ$5oEvYrt)Jj0N% zBg~Q~v90M#yS~TMGS8())}3%z=EXXnRbeb#C- zCu{9KW8rn~;-;(IZ`c^zoKO5+7Fk#FrsqOZo9Z)m?a!tYFD46d&k))kWDq}Lg=PFq z@n?Doo(vocED8nF^RCNHP|P^>DcMGT_PW+CE2BoS8`ZpxZc38bU;V#rIJDMTdB0BJ zor8QYC-=X;p!Rv4-rPN%@1(wcF)I7dAQYZf(!^DMqu>lN^KAOOb7SkZ}=%zEVKSZh$IX542K2|!TVc|9cmYnJJ9js6tCW~yMNMbb{!To z_esAp#X|k=x^lINlh<81X1VIeV;e=Q-{}{6pMPf-y|r-S2CJ|acb?WcPu*4Eyysw9 zVQs_H)E)IJ#QhCp1E&5e(5_o~@nWaT6<=|uXYsc3yc3x#EUPvyZS*qqfMcwO7j4#Z>pJ>T9vi2xg z9B}@b@MQY!vXhI=>-n2w?hAgYyZ@#mf6IpZx-l8M56}Odan3c`%30;G=wA7o$?y0l zuh|?s&Ft&h{|vvXc3gjY>+MyEk3x#2ZfYB@l*mro=&{{)$LWX6q~+TPS*Y;%_N>7+n282+kA($JbcQM;ik?2z@U7UM)-`t{Wc^wz~ADEqpo1@sQ5wp*Ixsk2Q%Nvr5H=7vf+eIY* zyPV0|SCz)0Cr|_mQ}^z!Mn#5%Lzc1674|ZgK2~?~itYN6k$n8`p+}GYo!nI96!x$y zZt}VCM@{078WwiFEo6Deu(Ro=BzIr5+`sDfz+YQGhDhlVy8tq=cvBc-Gkp5Boo}B! z)6UnQ&fJpTpC&$c>VF1~ zb!Ge4%}e`s_tN#4XIjr~?iTO<4!u%N$kH4^%L7wrBnSS`)Bv~kfg z!wW%|>V0-5#&NRN?iVtct;W7Heuns+XI4JX=UuOoe%)ffc4FL52e}(k|MuLg-m%Zh z|DASU(LQJXwXPS}^)t?R7PU4m>H6U<=iU~HB&D5cOJ8Pm*7xD`+r1YgWmnexICkJg zcA39s(Yeyp%xfDqp80Zi7M}x$+{PPkEMITwTb=YnNZsUVo!fr~rv2;MyshJ{|46Lc z;OJl3*FC*dhvm!Z2G_^hC#P$KZcqAMpt0rUy(!oC=<$5tRlNG`)eOhv3k%Zrg`KNY z^lMXJG2JY@ATT_-T`e)ABRhXe^2D_-Z{B(6oYE>O>8TfOk_-#X&riFoXKraa#{FT5 zIFtA@p$$8mrydf2ro}QZHEA82=(`n)bq+B{>k@w28!mdJJoVJK$8+Lmh*-wPgdQ^7 z=fJXYL&(hd3F1?iiEK4icQUN|&(J37yx&DdYyCaBso&(JW#SgDouY7TVqa1Ama5~5 zEeCE!Dsr!louHR|hbR1o(Y^!RpC8&hJhXS+7qh(!3#v|wIv<{Ipt{^m-tEAN-x_a@ zt3Qib8<+Hb%am;%ft|CAdWwwpy4=Y7#`f_ypU1>(u@_d>e(!RoUN?>0WutU){ppmx zY|Y}!;@WW&+L^z{&kVhm>$GtBwEb6PFH4`vK3#aDwUcj~_FiYzCY|j9wRR>2 zi_8+9$GkrANkO*F|6(KekEGuP#S5NE1_y7}$@<(=Yx#3#N8hQRUtYW}Ginj~&Cq)F zUXgUYUeYJi&u_ijO*S9dP-VQu-Pib-Rdev=jXsY>%sc`o&e4fh{x;+8_Y+BdXD%GM z@o)(@*PpXFB@suO9yoX%dd3(2@{p@zOVLdo&Sgt}wAsmMFz(qY{=|fpg|WEx>aqC! z9I;t%8l7eGCj>C8*(9)AAvURR&arq|IW^a&r&*bA>#P03Pfq-ikoL)Ri|Wmz@eikS z#?F$jei~# zU#$)2c;~2}o}|3wtlnYEdjBr9Wg-Q+SfPMdJ*tN7hFeaYWsCKeW4<`I*%-u-&b zu><$wWnO$ZRoVT=YTlVSr($-_(77vZ7V}__ZC%p5c^s!h6c*oDAM+?T?uym-vlqX7 z;hrz^b57OLwi*g12?c!gfy5KeDc@{kh+Y zt8#qdPb!T5avfd&pTV%{Rb%mt_ZyNIC3x6dVgo|aXMXRTX=q&gx>t$jCL{1XJ*NNRtrDD zJ!9R8qp3yHZ!lI|w^B2!x&1bH;npv!eoUCQ&{<0I*B^`7emA-AhyUodyYY6{p)ZFg zo9uim@g#Lt=j9FNeKPYaS3l+veK)nax_{d)Nq@r$w@p?D{Cl+X;D7lPu}hBY8ozBUn|L)&{_2+OIal)Q^yaR3zS(;A`sy7r zdKq^PE_cLzDeKr&bKfgRB^KP%xg?5?mpK@|EB=+>y{0>@J z)E6yU&=h;{go@^tg)^RHRh6CR)2*B(ouc75Tj!5TRk8AZt9pm4vNIPp8eQ+pE%Pq_MIk@$vYT&Ht)7u+O&Ir_Q{PK zUPY{b+OXW>;;rv#nPJ}2mFE^e?44wp#qIw6KSKe}yRwznFQ0uLqpsDy!F>hG*~#LM zS3l_se|ccXgw~r98aGDOWx5ef~ZPtuveQH-5Y5tUNczWmoj3 z?rwLp$qOe96Iu&h4ttvwCZduirI%oA|}y`keTqw(=Vbs?Ynp z@Vos+al>D0ZQ*S#FV4;VcK74F&!J!QIj5-BK6dOWW1Rjh_wi9#6Z`ZVsn7V03M=X! z#M~%y*OEI}UU#PLz^lK4m#qW}e|~+zm3C9$`y%CYZv*G4@6a*0IOCYscNc;9+QX9! z_c^LAn_|p1eR zW8SRioLYS5)b&p$_6bYQoxFMLN5J}T4U<3iHcnlC=AHOMLw|Se4|o3-xf@T~cPHc2 zQJL+JCwAH&c-XKjIXn|oV^gXo}Cja-vDCZ0E&G zU(U>Bt!>zuyK7DE>+39ge;%JaZ}sg9cUMnd`c9DLr-l8R`7^`>j?CrXuXH**{bd`M zgzknA)wE3wyIA!28QJ$9U~YZ#qqeoU^S4JP`@8Q!;yaaARG4f$8TljHZp}UE8Bu#q z2hN@^^sA%HQc`Z&=EJ>@zdbqMuHf-*k&-<3!^Q3w9&(sUN*x|T-!-Djk=eF$L`Yv(LF@sH&in7aV^{3eG zT=2rNY{JYNm3<0_ra#L~s&A6=ku6@oSzd=vZ<}PEM$&;?;|p0;g3D)rbGF;dC-bVl zOn<`y=X2MRI&Qd_q~GuJxq5krlN{q|i~SQEJ(u#ut?_f3z9RVTHmAOxSEWZU*;@9# zQdb1E&biW8${hc@?EJ;z35}8l-Jd07m}a~@*ZJn4^sX=0LhpAZUw)~cmj7kxpO&|R z{~690*2Yb~ze)aui0e(;jsF?A=9H*roKw#G@HA~jN)FpygOewdcPPF3C|$s2eXf1O zE0>%4cP>c?#@f$F;ofQ;#>wqi-x+^~FLLf9GmbBhR&3rf<7eOF&WSR|3(l1P@mBVn ze(adVPL8aqelEbseo z((fMrnCyMGKThuJ!^Qg~wx3GEUDX8v$&IllxEUZOrO>==k7g@a?~ApWbqE ze|bIT(DY~78FOD`6h2b2u}w@UUe&~zbB83Q3nG%I zolH3TBy!)YfFeHEnRgV~m}hyIY@3&`H?nE^ic2>Y-L*d(uiUQEb;q*vmHI7X_q2?J zxS9>?&)oc_m*gmE&@9@=a7pLG^SH>st#9|TcPxCSt-Jj{!%wwm|5(=i?2AhNcjtBG z+AAVgryjNa_@9AkP01WLhofbM;qNqfo2Tvw{r#b5)|O~l^6v-)Z86E|b>`U}d=lJ)Hoix0ObJ%4g8e52uoh`qlL^Q@n6Nur3s zpzk-g(4T`3W%rrC{_}k8ulJSSb=FTsu3h{grBiXs%uSLle&$tU*_*M87nU&lyl^Z0 z`hx38_FN|AvR}tRt;`sLbiy{jX9n zrz?-8Nkp^L zgc_LFTfY5~@$|IN*<}6gpB}^@iZcz1 zjb~h9mbv%a>8R}X;~+a#^bQ%enTPU!SNZuVe#&t-Znsp!?GoPw=N@Iy0k!+uS@iTK zPF^^1gN=FFT%ireYumTqedu(4j&C!{rpY*4Fx_(Dhfv+2CKh6+1dI2b10KWngm zh4sFF>EG(}wl99-^3z4<#easI{r?&EFOxQwbbe>{R4mK5{YHS;@$1?Xtv6qbyxUXG z-0`-3yUE1Mi^3y+-t2q4T;F@GlVNQuLy?QoRh}~W^_MRQ>rN~-+`j&>du3^BaM-%( zU!Ei%Ik2Pk*4?@MLYDWZ{^FAHI3v2>MdG+y-Z|?tEC%O1HdUo2>)-$KP{;Gb1LoB5 z6Yqaas9D9$Yj2})v@Cm*LF6ii`CEPozdMko^2tr+LAU7?{fU$B_At*;zR^0h?%DAh zCI1ude=_lqQoOBrxN7YVcb{D4 zr4sxfMUNX?oci4LoYj06o%|5RZ(q;)uS_`k?5388tp14)Gh#Uy84p;t$Sk?Ezx3y< z)E1w;PSZ~ESQ@X`Dcd&j8=Lvcy%uL>XD&VO^ZW3Hi124Qf31@El+{=S9vEDXlIvU> zx^>c*PwRgDo4iAx-_3dJe+DJ>Q}r2<_n*8unO62wnqMzCC2W1)QARJ*LraZ!n@sFc zF}nSE$HK$p_6APpcBI~o6HxMnZI zkoxV-#`_;m_k>3^?3Zj%Eb};Q<8b^|bVl|5dgC*5(%2lU-iBxPlw_oAhzM_5u)bdV z$mS1+UT$Bbt@UUA%YTxIr%o-D(3|?SqF`tqCi1q23#ZFh322PQja6|d>`e%M(Z&$7eG3Aa^DU-EvZ(kSmW3T+J z+>ht}Gw^s>w<>F=%yMQbtV_GONUZMj1bgwJFP$k^z22$em}RiE@ve!DtX%M% z(Gfj!;mtWGX9{oX)tw|!lpbhg&2!vX=F0iy8PqwP?`GwDQ0xxHL$tCTBDW|}CA-@g9x&kmcStlXN->GeG$JVR!-!Y6$tesg=wV8icp6$Mmv3<*BoL|om zc=lnZd+bM}oE#1BfD>w;*RA^dOYT7QtNAbTIkrA%nf3bP)3R4r^MkJ^?PDz~lXWvV z{^Fjny217{zGwOOE_nT9o#pm~)#u8;{>XUWDK=w9aYfAHSql#@WOtT+x zJ6LKw``fg(y_tJ@*L#hr1rDDn`@JNdik=H7iHBKI%i(r)x|wurD*lZ6NYj7 z@6VF&y2$g^SnB;fzoLDPf@eNT7cH3~D6{QzazdHggxe;%vulg;Ph~%JyO1wi6y2Fn zl=je*@u=5A21N$TC9P^xoL)=GPIEaMxOAN}pT~-svWsmEdtc@Iod9LXvpUreHXQ%E z?DFMhigF3_5;@Kr82tTm%e5jmbnD&q-}%?SuxmM4-~U_1f9iam-aGBBJo(h8T*Pp?cxu4$^Xs3U&1IWptyJWkAG5P$^&1UY z)-#)rmmK=t^{i=&`0Z2s9TVH%&B+Zj zv_8M}6W4dKr#zFH_Ix#Zx<}&u>&MLL&8>%bsBO(Q{ z=B}S5kN@4S`tBT>*B`dv-pTEYD(5`fwa0Sl!HZTli!LsTYbiP1TWxUZ3)9W}lclSk zM}JxUMnhmeR$niaB+WbT4QP1!H4F4IMLO>B)VobDCGB@CC{Za|$g_3wod5>a((MT|r>#DB#!&d_^;c{e8q-By2?YMT zFLBrGoZ+W6Vk$^vygG;^JHh;_QPd5fOAco?plzgoXx`rMgPtb*say-d6% z`lB;@b>~DqZ_j^>-OtaSG(7dE@l##GT+PX!IoVm{eEk-(%WtpR%R1e9^C3yqqqpqq zj-R-&wPyd!l&9UDD>E(Gv`<}McUoCky6ncEIJ>#EOLTj6Ee`!=;q|+F;eMaJ^%1RC z+qCnxr7mPmKm7Lf8?m_dfYa*2WeeZR#s}+_DXhKzdTq8|-G}6_b2sl<9`iH7dzHX( z<8&!ycmJvq=Ns=-8`_kOHXc2FdhHjt^Iy}hM_hV5?c@Zb@SErUGiZhAsHinOVUTHH zp1{nMBH5ShtEGSD!kbOGuXu|jidw_o*SUz(&uwM2qcphEm zx^u7atdt{R_d7e2zi~Y~66utF>iW6fTT8m`Z!I(XH>dtT!-C^#YiCJH-;|Snc;>0# z#+ceVv()L2?G*O-@~Kw+ad6!&*|l@c;-vwfgG#Tx6MPh*Qgq|=+=q&i+3mM4a72b* zi_hP%;56eQFZRBD87Voc8R5N}+vk3EIzMCLdgsm)@$GuamsQta=ULmf`rO9tQ|sG* zC7N74^V|D@Yrx%&_jxw1?&$b(&TFmlp^c4KHe^+mZ`io-NnZGjM>e~TJDOfEwy!y( z*UG!kvZ#HFhU4u|9F7|&8^^Do$i;eL(V0zOp1E#if0ts>{>0siIsJ6(hfk&tE_{2x zZog2q-#S6-<*~n?Ufflle&l7)>m#?em`^=)JWwfbo7}vBZPnj*%oKiBwJfdLzHCQ_ z<;0BcPxdOp+Mku)rZgCFF#S=F7P@lpYC+hU?CzT%?HipH?1D2EADSn!Mtk)S5$=%E&Ca*?#!FVQnRT0H z+t=-XdF1Yz-9B|6UjJI2_4eA<>8~VzG|x$%YS-Sl__cqtKw4GPl3ic(MC%^x%naQe z_iUH=?K$&rx=(o1`XluELWd2vS10Qw=+95%Yn<^!FZO}O!G)_Ia#a{G6^wXKI(;`E=v+1QFSVFaK`QzVMEV*>HB3ZO^Me zR(~AluCAEoFCD+!;<&bRg`xG+`^oK`6Vt`_FUVT)a%o?))7tKdaXY-Z!!HjduyhN$G6LPr%ijcGno7O`j4!q{!BgvN8;Pm7)x+f#m1 z?ELk^OJ3QR=gr&jnY3SkJZHMnWfy%)H*IWewnLM^l$c* zuB{)xz4*7VIA*iir;11N+QKH*En8!PH$luZEbx9A7pYB{1D#~~C&6;a}E^ZC4ey3d(zQAU`viR3HSFW!gH*st~ z;`&cw#%25UGm3e-t&5ta~=8t1@pJow*}-Xt(yd#tXa3S>rhCnkCz`pBS7pf11~+b>Y+MW{;CI4jS&L z`_CZLpn0LYRGN!*WyU%A{fviP^fowir>ql7_wVeTlfUj;ozAg)jh)Bi?Vki~ef^hN zRlj@Y%uiQq=D6*6&a3aUJo|~q!SLIEoSvQJRy!hNEqYNS{il1!&11j*GZfofSCqfM zo^n?FS>^WSry;4lsYG#%3Wl6b3)qB$V z&IUc>l&=xfcsJ*k^Kun&gGTPp;_TX=#80f!k~P0^%dgoiW=;70b;rNYzn(RFznE=> zmaH>N^?v)dI1~SWPUXc@if!x;B;Vh%?@;5yMN)#?Il43c?o>(FsI%uYA>q{+m+}>1a@Ix+P$F%A3orl+d6yZ2Cw>s@Z zUtRkFy#uW8Lz5Mj>;A5Kx<0;a!_Ur`XpUosFKnGW>pLStbfQ9+72R50kfTw(t3BZ4 z7W)o_w>q}z9Q1y)tus6K?+?SZRh#wxGYGUzTOZ$X;t}8ayE8U?GCdV}cad{*-b&l& zhDt~4JB0PmES2BX&!+d{Wu2q!F$){fYf+q5(&_2HojcB($HYEY++bXJ>xrIsMbdA^ zrb{W>4NY>490tr2c-YyKC$QU0$Xu$IJhS-n;m?(AFY`X>xD^_G?$ty*NW{$6||)-2F$ywF7fjvT0wC`)E?>%5QwwBZuXT=Y@!Q*>Wo< zyv}`cHy#9dr;1MfeQ&_5%%V%TX(FG*}~YqI@A6A z!Qh;eHq#936yD9%n!Mg}@$2jBKm2$jb?3gvI{jUb4cBo>F{K_$Ubyd>_Nq#g5@G!_ z-&anEYh~a&aalw6c>21yH7CyRH!^?S%&w!u=c^~L{X}pt14o>Xvi4`|Lr%;+GaSk+ zx!P@-drg*}Db|ZBEBe=Ce!F~Pmhq&S6={|;)fQFnZCJcHWal#X`*M>G?KjTko6*8O z!?CBF>%b1fmz`6c|2ZvVao3(YF@9NG`;q?lyg^^$KYsZ7SN`tCg&V$X(%%2M{-Wo_ zWu>n39{xD&77$wZpJBykhEGN%%F6%d>}+m7)0el;*7Dh_-S>AcQ^^Qe-?NwXlZ0@@ zq)Nl@ytVBDyZ%_KUFYiPd&q5e{&#SBn%3(-u0>b2%oeY)`l6x#So_0&h7~bymbLG? zx{zhpN4w-R%+9)d-f=u(Q0ebnKi|3Y{S6)OEq~tF9{P8`Bd*Qi!k5^^=JkTcxwhNW ztRicQ7jHRrY~k_^uN@sf8tZ@MneZ>{99zMb&v_FrPSN@LO~k6-Answ*shE@dBZUQT ztzJ2C>dpS!iz33(T14uvglpvg(b)KWY2>ukTMih#ntW@OW@~4uyWstV)!Wy2f0lS! z)5zx|o}yakFyDC7?mD;k8fEzQI(jlzb{l^cYoezNi5P*`)M z-C{!KTAt%ZSC_{+#Q$Kf-M%a7%64PZs?-dn0V?xipPPJLZvpT8tL_s+~-Lu2Cy^CR=QvwanpDP><@Sa{;? zucW=ps(w2CjK69nHb3y0+lzy9OWt*t_Hv~OzILqLvy|&~?vE}u&lR)Uos8rewCE9)L^$>agGl2&H@HM88@(eJb7+^6%(JJ$W%Tc3BZ zI_kr**e;HRSM=|1s<6G{CYj{hyEC!%_NpV@S2QZwSRH1E#^l=Xs8fhHR(CSH-`{!S zSDRS$`x~~;;~8#zN%zl)xb~l6&896jY0(QJUj8+@d_F|++t>dLGvW;@uNBW{Tm0kN z%%$5?DxRJBUa)=9&HMZ234HrJw{!Eu&rh=->lL3lx6|9tqg>GRabn-Q_eYcc=AB92 zx{$SYXVvz+A2aVK#ypNbSQWiYVeQGyi)!Z_Hv;v^#NHaeI9le$y@@q%S?QPcapgvW z6W`>%o^NmM5c@@HMlwsbytC)WDz&|KF;}1QZGY3L{-?0Ub@@Nb@ zYW;CoveVkf$hQ6x=j}r;+SZE-A3h!M%4=OmZu^1oqWZjZk}Rt$o6Ere>)rJ*8Db{ZMZnMbDi#O@`Uvpj@SGxoOY_G*7S$k6%TFSWd_=R z>>Q_6&HIyPTe0fvwcBmSejEnLdN8#q7%Zpm|{AXQTUApizLwj8Zud<~R z|NeD}<@Yn9rzv!7Er(*4m(7YAe*@}JtcB}5vzUejBaFN8E zo;1T-NSEB3(NHQK4TV$QIvdQ5M#-}A#SkYf_`eEu}m9xaY|*pLe2UU z(n&AHyu+rN=+{3mbl>hCwdb_wq@8A8(w7<8x_qx@w)i{qP%+PCI|GBhCpmwuHtL;Z zQ8~k&y4dUDT&=2~@zvp9e$?HUQM-A3@kyWCO14|9+xXP(?A$Bp@%Q+4Wu3?FZ(o0T zV!5mI{^lKD^WENj4=%0!?OdL>cDKDxao^^w-``sfUA?$I=EfiY*)E>4jo4;)1fy55!L-oOoD2Mtr5(;es}L$t<|^;k+Gg;$V*GNwSd+>*w``Tu z&b*$-(;vCDmRF(wof*&F&|jr}V!O5)MfoMR-%D0=?OQl;j*joGHBvvyxjvg4zgd6( zI$PiQxf9|Ox2HC{`Z&)1`etWV+Jv~Ws@JD&_7=?5y80)x_2QgI;V)lsJqcv}u-Wo= ziJmE++|Hu5j8msWAE!-ED>hLRJGOB9y5cl*<$ZkmZy9g3vZhFMHa{vnS9O1T+CmR~ z=luBn2^TN6zkM(Dt+nh?)3l9C%!KwBzPgkg|NiCgnN!PB=RUtbTRrXD#;r z{by)2T>5QhRNIe<3yLq@(Xs!oF?^M4hobUA;0cS*t-+iS%P7?jq z@ysVU_Wg{xwjXB3?sGq^<96`S^ZMx;=lYkGynlMuYW36aJf630!sV_2NF#&JF9TmRu{dvMso*Ur+b&lIxzXs!ON^m*&|I#$Mj>n2WOE#ix> zYkiEHyWg*U!JBR&(1= zvGMX6zc1a(?C#t%l#|IXjW)Vo=d!ixr;+}Qkh2Tp_#VWytW4*6JNurDV%3f{zqlTs zPDnX^JzlndIs2uxwsp@Y#BtrZ{ZaIj`Sin6vaSkrPh3~CZ<@z#4bR&@_zSfkKc1so znCT^U_M=fNmz>Oh20!-`XYM}yFy-^)8P8TfUcdc!(^sBzp1gZ*?s_>TEto0pYItdd zwqwPTinMrZ9zXXv_w?9yY*}9BVd(gN|0D5~of&60>%L|w;RzSo=k&%d=jAT5iqA7* zc1IplD6;b{?U&JfzVDUYyjk~pKHS>4yjAiK=i1F%x^`@D`p@%-DjGd($<$Q(pKSSfG+Ff;5pT&efOUly*bw1S==^mcH%G$W) z*-ZHwF^TsZZdI8S1a6(VGDA)Gl|Xf!El*=swd6jHsFL%JM&T3dUafbWoV!_a+uC_d zO(J4(yPodfReJ2g$@radtG}HtI@$R(-|sK?e}>F{_wBR3e6rM&&R?}j*hF3afpSre;X2%ou%bh95ac|`LyKN zm2fe;d!H?N3@1dbjkJHv`Xc<5K!VJ!D52B(?60TREiDs&c!oPrmp?50_VtIGv_Ejm z>SHn-$I zL%_jp(Hmz5@r3^=<}^08i=T5h+P&p!tdFzL!+&b7eRGrNOiTSe%ds;v>Zg(E`IGm* zd^5T3uN$!8xLdM;+O9V#>UNJitarO_`xLV$wK}!8J!o%zr(T%a!aR+?dpYJL-+rSx zxA*+AcG>A@ z&6(SJBiN1GE#I>B!tE(btRDM4*c-X^`htwGS9k3098D=pI3g3G^ruPUM%@L*gEJXq zr?sBhWENxaO6mDT6X&HoIEhtC+PO-#9D&h_PT#OY~s zCDV^E{bxAvRMzUy)t9Hc{+tPYnlE(RFQuyU@&*ZT{n)>co2UFnZmpDsURkn7@_MJR zcK^$p`ziv3?dF`D@k{9S6^j{Xx;};&?ptzTMp%?@o9c42*ZLoIX6=!&i`^7{+Gfvl z^EXYu`Q{XJFYkZf$G#%A*xhgaTCw!BTjv($>E3k;<$YS1{8d|0Zr!={`^24ExwvKT z7k&Ayx7GO8_HQB@C4U^3-dY`S#isqyj_lUbk2e@gbPTVzJ(_UW^qWvL>z|F&vdy_m z^y3~cjLmLs{gpc7<+*rkF3FXT{+wKGB~qe%|6av;^VW}` zcOu1auU?a#zhmu>CmMANn-16BH?-1C-)OCUrLuIN!pR9|u3IfrQamAjE;=BOO)v7C zYS*(?F8-y-k29CcDJd4kCiXr0(=grf=C0%| zdu7fGZr8C2mE51-ddk>PK(?{_@&$eGg3~irpJ8Vg<#6EOW7yhI_jj3@2-~vcn`P6} zGN0eSZesdaL&s&`r+yFL=Zc@ttG5dqoZOr3xvYCy&+h~JfA}uE`W^g6-}|$n`Ob=I zR>jI!{1YlJ-khUuaN_raVxFyKdmFcW$z15}xM2I<_(yhI-i$5kKYIMH zQq7Wcr*xmM3o$=*B6`|YKKU~zC6_JA64`q1*ulr~f}7R%{0?8Z*l3CP`V9}SzmhcF zU2ePf(O)h}%dbBQo34xB%T-)H0yf;7-u&%Md*S6- zOG@T$ow&XFaKyUfd?(+ZV>$NHbe%`UWgdkdU(TKLe_c5Kz0&E~*6TY{v!9&Vc*Nke zO3dA)xjb6g32P2Z^UaAX>oj~>cyYG$_tqMHr~SL9Ka#Lk_Iqrbw$FU~&mvh%?x#7= z%PwT~-*m2hpgW^Xb!qlvcf}(HCqG{gHeLF+`bzJ9U!MJZO-Fu}_}w}EC#LAcXI`$m z(UPU7r)ZkR2YlIkytcKqxMRA^qdzCRKeGh<*s*$QbpHg6La$SQewJubAv_BiXzRQ-N=gT8xO!JLE2@B2NI`X2f& zpWEy6Gb(we_=$t3V?XocSY*87{;KNV-Rb<(Gdv}9;U04@{r8&k2B+@D_$sGgn6pFT zM)gnnSf^2&41&Q6W=}k)tFcGxAIGTVUEf>)_I@4o?E|F0vCy1lX`gSo4)|BF0a4WtfLcR z?&sU7UBBIHm;Y(^v9eExmQ;$ooEWy5HFV-{zrw3G?Iko5>WU>VbLHpzOtRa$_$-z zw<;S=Puk&Z({q83kHPX;_!ATPhON^ab{$?`cJA|p+tQ^5zzATvvih9|Z zhl-9|-+RN<^s#Nh_J^w%$1i_)!>-fC?dbcNQHy6aH76(ZatQ^=3!UtJ_2tdmvo-p{ zj(;*9y|Zyrb9uK_zcD%b-`apjDG{$Ee-vx)xmCO3>!QGi3-|20FA(iwc_&0{^Nmlp zm)0$RBw^}p#MN|d*M|^|LeUE+5)!3;emeFwG)_+H>FtmF>-&zs64#idTks}_^Lp7v zr#;*5P7^oTEp%bQ+4aiz|1)e;kGIymDEPc&t1f@!GOIfI({ufmmv{KRs207re$t^Q z)}JhA-p))2{aV-Ztoh85bA>uHAtm$4o_hom9hq z{)eY$&CisrS-4=D-Tjq2;vZg!=scFQXZtCC>qUy6PNrp_iBe)}1^w{otufjgt0;W#tWJks8~@4I&qb-dR6k z_Zc276I<)_4y*anb&+p)4dh?RE)MarTsqIS%6-Oa*WN3dn|&VZ6}5g>-}A1GyIy?p z&H5?Vl*GG^uT$G=KgX7JReJSP!Fyqgt-l@Lnms3X-RtD6V+ZED_cXowqILV*gT4i2 zJzBRn$yTvHe`@+Bsr8k0TYpT?C!+=nivxUoCNUOTuk$T=8{b;}aLC)1BKM|W$Njuo zTFT<1*JRdh_-nYc`iXa7Ji8UZF2uhXwiy}s^i{kP*6SIk|o^+U0&`d=)XP&uU*Acx96&kKhISj zuKx@S`z#Kbetg<{ub|TK`xXBgo%I!Z>D|W)epmf5dh+_3hF*GWV%=lOGMkf|q9#s# zuK4ZuEzQ&m&X25`a{qKaZ~ON6$ZRv_{+SkTWI5M+VXpIr7N0fim$|lC z|NGA%Tcj&-=eMD;>}HRr+2=Ow@v{3^+q^;NEK9x5;~R-`YHqv!I2=Fa6YO^(s7vEm9S%bBs9}?|HS9|U43~v=$Ynr%f9~%oQbg$v@53mNmWvJ<<_np zQVUFs_SoH-WKd&qXwuOn(?{&#H+%jw@Z_+~(ErLeb7ntZ=FIeCDs}RTO}kAltak3d zVszGb?%ip>MbAZ?IyK?;to_{=-%39rC!60*-sy`1;^{mNQpW5h5Zue%xINM zU!1r_!hX(Q5b&zHG$!dvQoi_%%4D5=KUrmGEj?=-JoV~~8%oCv4q4}&uaCKPc=N5J zlVc;wcrKQ1%wv81v!|x%{n2;rbGF6=Z?s#!{z#!}xJ$zKIY)YLYC9jC{_>Nrw0WiJ z_3b+s-rKg1wv892zC5|*XW*_hX=Sb>FT*Ck{r2PfC-#|76{Hj>}duhi|># zqFbTKAFO-oi`~M>y&tomq=aiecrjOYM)U0QpNp)&vfVV5{1Z@DeC>n1jegjBr7Jso zrv0+AjGyqdE?rK%Q-ViL*`_P^s^p{{)=sMnjdiZ>-_ZPUiPsnXb%hiEX~#7yEG{+V z=G|=>uY4ofpyZ3~$=Gb?i!Wc!Tqpge`O~({?LThj^z$4HotPoNqnK^`o!jS; zZhZAu8}By0&Wp~bbJv;Pf0!AW6H&CcQ2Viv(!aZ<_Q{quv*ld*4`}XPG4-E(Urm_$ ze};H1@8osgDetN@7-0zFIW}o$PwddKrOx8C;cPtl}v&%sDY}4s4 zuV=~rthw;!@sc-{vtLy&P;>tjmu&9OH-~$-(e7VgKSk*H%tm8ppPd;OWAgpYt;3aju& zlb%$jqj@jq{q0X+{W-fjX3M$rj;S|pFLYK&uKcjNS+n%=dh`Be;Yt_h#ZR8M=Jp%= zn0GT~&YPwA;R&16y35i99jQhAi#~R}NZNUBPwUJ4;={F$z7wO>m3GQm2j=eWTJmun z=ZuNxcCU?{QNw?Q^ZkE@-8(DdwyfeWyz%i0FQ4`DgwyfsO7B1QzQjE5X@Cq9_p$EQ zzDLW%t)%WoOWBdZFZ}J(qsJylJDnqi)0Ua*f!y{|vfeGID>CU%n{inZ4u1m32YJv(MS~ zw)4s~{joZxp5>Nr$-B4e$L(V8k3Q!Ldee5UUahc4B(x^u757Jpqoy;oc+0=o{aLNi zuAO`H#D9hzF&l19-eP{d{`>Qt#dEFaF5IV*l$!n6BU~^1?xw$=4*lkna%<*p*)6-t zH*NO|$9N$_gVG-o1Acw?1B!5pXQF=<3?*XSt=W z-|_hU^y`oQJ{t1-#;fYcghkUB_Z*-#}D7WXczs6uX4Zs%-oE9D(P{W2`?W0 zJ`-=B`s(|PckBkMp6Z?SdTG2xxMVZ;TyB%|{M-Mqu^RC{{zvsV>1B&_r#p@qrU7es`;?3usWyyS~a!iFMVaXzkt z7u3!?%41%byti@Y&-imsj~kxqVVyXkS>=d8!tTdyVZn^tTMy5kJKy7eN#COx=5G~+ zPrNwxdzYBRhIJde_V~O}J}tR!QOO%QtK`aZ-qS*cQ=jMeaEVxSJw25jSlu&uupMU#gxKX=jX|po9TdD zx87Lq$fwvhH+h=kf~8xHe!PGEWMgbko22oSx_@U9>t0o!)_JSEa^B_`?ptL~>mO#w z|7qjW?Nr~bCK>&-jrEa_-Mv`rEb#|(VLtT8{_5LXEHS@Z#7b#zhC0l zmkz04hc~bOahM}Etp1($b%|T?{eSA_*3P&a^;v6~Ex-GsJsrE;gVoa$uP=0J50I-} z_MhSL7I)7=&kLL1d`q2YF)zz+&zr;i*I!AP&KF&Ld|JJA{E~l-iG2^JCpIm8F~#k5 z_>8#L`W;$pe$4y0z$aR80dL;ffHtc~k9rbUADs1{Az(Mt&A+0HH_wSbv0)*b4ko97KLc$_}gx!yR9IbP|WOj4^ zl4n;Q%`m@f^xI?Ru@!k6jxITRPtUC?*<|0f^}CN5B&pTxeUVfy^2TrGx}z)=vseCS zF#hl;*SP8acD8#vxAiriTNHEqoNVuYzvS#F(I;;!XZ>+pzY@JG9$5;Y7sNG#^0ZfKVyx5-OG*p zmHy~Qb=veNuYdilD6o4Mzg+v)?(!oq^5*|qo)>;{*V60nZ$_W)e(+*$=J$%lEzXm~ zBf3p{6}Ow#ZPOLre6052c3J%sp)RIZ-?zS=CH1M&$3VAwqqWS9ptNbb)q<^^tDD!U z+00mX;%QlH{N{N}e2pa?UPio)y^~SL;C1T4?_Z2>)2HYeTx;ES>h$wsUBhp!b0y>V zeW|j~KeJJ4%i<@Q*QGz|?+e>57Fi`Y#a4d%lkjQbqQ%FO)R)|t8(sPKtnHFg{>l@1 zTC%o$3r<{rmTh3-*CjdUZOr=*vh{fp)6=yaOPIcAbi~b!KB7{;;9%VLu#ar^>-_u9 z3P;rFK9v2{yeB2>BmdXy_VSt+qw1}ytlHSr0^($35_S~vvIw2{&(Okjc!`ZqU1 zK0M2|{yg>E+usueE;I=IG1_my-+eD-X1ww%-mSuN*R^?bmPweMHOfB1G4t4q{B5sY zPaM7X^ij>uS@Dxful6S=#-y_)sh{kU$uIrSU?Q#lskNV{m2XjOO`D|I#S5ubt1TT< zA1|sosHe~L=H33kuHR3W)Ug$tr&TBE?s?boO7vHijKkCH**_Nc?)Q)FX+0fMGV8@n ziQ{kQ^7q{+_T(G zUBfd^9{*>EEv&x#ZQ7c7nycJBCw$)G9NoO;ndPKIyH#?x1zW~WXk%Dt%+35b{C9)t zS+U8rd5;qe?-gCDJIFY%=-WQ!ymR5vlC^uQ{y4f^jedT0#@Fkgc?|mlVCUW>xy1VcpIjKjXSC|Ga#rMbfdNh)0}{=eXg5KP;Pd8De(Ze+*_1UVnM! zp8My5trHfe3o>myAv>*sO-=s{^P_*^C)%$qUDkPX?aN6ww*6ccIX`pq`HYRXRac+B z5Z5#H(MP$6v-;=eUl24F(kOC${^vkO&dCdN+uLq`<^J&e;>O1n`qd_>sZXAniT+4E za{Y1W$Hx=?u%6Dj^Uil!tjpQ@|+u)Dx0q6-IH-Uv_HsgzsuSO zuX}mpC-5UT4?-B%xRMP$|6Ul!QKO&jGRBQAhTOGUVRuDhl2{Q+?uZ zKeH>|`}Uq)C1m<%lZ@3<|L%)>e%2LlJ$6rW`3#xkx`$^+&$Oy`tLp#4Zk4hv^r4LJ zPS31kk5pVQ-sXL{U0o`4W8pIK^*`R|9sHu1*JS8xqohc&G`)vS{`*cn8|$C{>O}ec|Qn@iN=r&I(_9wLDqK{(6kBtom-l*Z-JVHFWj*_Pm|@ zeEI9^?*AsF%}TZUlPq1kpFjSz5$7GnUHaBezOCPWvv%&-8#!U-dPjb~+M0qLd!?4C zpQ!b1{>R?8e#6N&$G+tc&s=)7b9w024;ta?UwwYPexB>DeZ@}~?^ge+)8{((x#D(v zwyKH$1Q&51Y$@9Mz3xD)?Db8GT85YO`1of0EI#PWRCA=XD8@THw5N;d`io|p9}>~q z&zA1)dUi7Fo`~V^Ur(aHm`sV->+W|UW23w01+}+o<`K!WbiIuyaeRL@C1H}zh2!iG zXT?w6z3KYI8>Q_0?j@h>uba#lU1)6`vrPX?vds2?Og)z+yZ1k`Ul+4w_0NSxxu>+b zWqmsKOSh{_ho^--eAxHv%kO>C;3(r-ecJOvNb+Roe<>C(_C7pe7RY+0m?27irUdWi z%_iyX8)IIiSBE3t|UG=`iN(9aOA`DSEba8 zEut2?RHl}twd<=-tc~Z%^NwUF%gdNO>%+|TJ65E?#b%wQj0+W=OlN(>`mtlx0tATGPr+y`F44eD&}C%TuF+ zS0w*s%DQ^+yyPpkyRJX`HtjdyRJ!m;a_)0E-#tf#jnxBgRqnZ=A9zdG`Tgtbs`pnZ zmYH~6m0jwg{rzd1)y<>7KgI>5X0=BDdfHki{{G~rC&wOHx7GdWam=@S)cj!fbEmzv zFLK_V&EDuJ^+ht_@$d7_d1q~sk0xb5o~7Tl&7|zi^R(h%kIk`;OCEm{TO3ihw70S7 z^0qxm7W1o?3h#PyJWxR`enG;VCBD6rj+ip<$Wtp!{?BkBwlL<>n%vG?|L!F1J?Cd? zD0ikd?F*my&J{drAA~16E=Y@Hy2E|rN%)ewi|tRZ{W50Vty_Bfvd)Y(y>;Ggwx|9a zy>nw$R(Y9T@wv@qeP1Q(9{dgLU3JpDeQ|r9{=Tp8-t3Ebe}CPkr(#x|KTW?qzx45= z$)oxm$2qf#qtgBeJ*zZkjg8NDD4%i1$GlB1BPz5w=?qtTMrZ3D_3)cLPu9hqpL0G< zzhb|k&6yM*Ip^>4cPjHcG?HJow_9GkJk2yX=y|Euha2JFjpPnl=FMvi-L>FF=Df)p z_twu^zGwU4b$Nz=7T!7bF!JtX?(6!+(Uq30uNOP3Ry|#`^xB%YZ0lNI|8+R_YV-G$ zW@)}T8N0qNjcR|)eRI;%Rew_15^r?w+V;AJrQ=ZUe};`F-Tn!SRm?cfT}aQ{VfwxN z*V%#u*Xo)4e;V|+%(%U&^y4?t*VogecI*J*}0R9}3%@RjOW z;n(b|%EJ!MNV6!D{82nb|FqP;dG~l+u0N`iotRw0aq6FVLVQ|b^zkoGj;`*k+4<^D z(Br%XhpgW)eC>1YHeQj`X!Kdcxpd3ldr_M<`8@sgbWN|E4M*(61KTYtB=t@j?N@Ga z`g8i~t`%zO?i?R3Jl=oAFfoc}{f6~U&DwJp{ao8QYv)E?-#5*f_ig`#H+js-U$u8m zzOCl_*9#}he$GCbGP@dHE#RcuS@)Fem?#6=Leg=i=Q>^+4)}1?Ofrt zzco(B;uGUL6CP%t`!MZ_W$(@{Kh|VieHOOZCBq{+tJ166#+1$;49CTNgZI+L*cK6$RZ{xxlGJQ|Z9^=lvW_;EqUA2r^ zF7;HBSz33*6`f3u=TGa;-v7^V+;VyByI;TBSBZ;kpPtw!^Q(^EXX)R~ch&^gUe-?k z5!-v^FQ-oHucVo&W@j!|Z;b41KK<_M^>1&cuU=K8I{WaWZ_h!Q8j~6`h`Z`l%52P&jy_Rn?xp!<{n|YwDy=Pkn9V*OK&uzj|lC@rTEJ zxx9K(M*G(Y-sV#+vnUhO(Q$ltrng=A!$ZSeC1t1ePg+T><~y=Qw*Ju)i}q{BUomc+ zaP_Z#GFyAkfsfpiQ@tdWb?f=xXb7E&zHh%=>_0A>-!{Aq?|gN1uk$OuY`ycvu(|S>o*+lD&JpFl=v%OW)~g z?GxYg_I$Coo$tRZiM_8&=f5&r;B(|>-NHiCng5dS|17Nk;d5;5VdKNKKdgT9G~bi^ z?NgSle6pY;w_TvZT5#9b#A7MPHw4xmt;pe=yyeU8?QOrawEx)cEjm0kc78(I`?rf0 zFYU6-Nof7a&FKDKW&`WWI_K7#;x2ohmbq(h(&)5O;tS6x*{`_era}C~Q?l!R>s{D6 z{p-1_3mKjt3&^ZH%X@Fd}v(@*l8V)Y`;q~+Go;4R2@g*-dPx{T!@#4%%W`C<|k6m<( zw3F7UMdmCs`_23z*7xFE=cCDqF>j@fyV~P+=KV-A?%Zl-tXjsW*Y@G8M^dBNx~0L7 zzL%YwTfH|q*dS8&ba=Vv(=MIM(VHBrzW#gISn($CGUHo*Nhd!i$6ux&7rtJvaFi|L zGrP+A%kvWs{^6PX+IOX-<4o3X|K7!SB*<4j^)N7ruqnD3%>BpCapkM@wpg*R{CXym z$+~&gi}SxqvMzfS)^wTs&c?WR>khE4N>42IF=(w@)GpAh($}=^O8u1p3B9dRn@YbQ zDdmila%Fbfo}RsB-?w$F`mJ4`dmMA^`=%ZLD8g5HNqXPjhuL?da<$t0+&dJ%yb-S7 z{%YpE*6wX7>dh}z-p{DJX|URGenq$cgMfpdpSbkz;P{Fet8_89YU z)#qK@TzYxy#@v7Z8O}(`Eh@Oxuv47Ba{p=9vWxC*x6=v(p0#Y}mEWNBq+EN(e}>1M z@e@u&9^sFlA#U0Cn@#%@%jt9B8AThE?iKBLSeLZ%mg1#9?b?N^8vicmz5T4cU9aum z`}M8QlR#%OHKtbY-fy-g>$$UQ^ZJUMxf3mBFM2rbSMkEdJ7=DGeASDJJ_l3EbyM#uy6(41V|~2Q-LLR1 z!@4(@|F*2HdUN8!!wZ(nrQh*yc<`U0@8tcP-Mq==OizFIOpDm^j=S!@;E4cT+eK2x zuC#uWi!EHR>~7Y3>&Dvl`z^OOl|K01KQsP}4#VNP3v*|*t>19$)3f$8)9?S1@4n#? z_wLT$XZH0)HM93cvHJGk|K=+zaK$CB+Bik;uX=jo_Q*Dg2Yi)p{xewjt`W=UKa&2D zH=o(KUGzUgt2fKBM`3O6+q74I<`Q{txMR-- z-(A~2PlyQ*-tkfQlJ)YqCbh`bs~+7IJmO>dudMI=ftxyh^AqAawy#b8&(N3PSkBu1 zw9X;sXq~g@Po~u8phI@g22%cB*vJh z`&xLF!CvNj=@}wrFQWNS_ESg%H& zk6hQLJ@x6elka%9%5Q4BW}+K-s&iS?DakJnDxSJAtG+L4G2bI**ZHD5GVIs0e#OrH zOIHVqekkLg*Yn}lg7dF9rk1MJ>E4S!Q z<;f2=jXJV(&F@vJQv9B=L1#*JX52Avy!|HNPZ{T??akZzj-1#$Y5y;#H+hP+4O=u9 zE_``+^JK;QUC*;ST6JW3FP3hcZfNU!!}Ar3DYIp(u2@d)=Ag}1ML+f{)&8Bi@b`p= zTO=DDU-N`L;k-U)on`b4rMM02Pn61jW0HNY{YgUqMDi`28SBsdWW4Qn?C<^TGshR7 zK2g#1bdA2a)S|NN+L_aiUHb8UMZ!&+T}N{I&t1KH`GZaJ%p;#J6fW>NZuE4q;p|iI z|9#APIb-qRTl41TZMq`n@U_m(RjT}(V*k4@GLP4PuhTlC@1Xqs{ua%exZbCyjI>&u zwQ~2G9yii?v@W!28C%ASwZ~(P9=(*b;?@gVX70Q9wBWxFc8z8A>00+=woW)1f7xfx z)sy`RKYv!%f7;FBwQI7y`0Z^a-FLZX&1^dHcI)otbAS5n`gh^-jm66~vi}{-WPK6v zN+U%gJm}!pIrSeOPT9RBe#SE^zord;kMawyGx{^*W^Z`U9`W^Y`vtt;C!FSf!?3gH z&AT%t^)fz(b{ycTnq6DpenQuL){fJMU4Hg3E+}0jZv6Z4{`H6Fa_`sBR#c8__iGO@ zm|dQ8>33Qbzfu`ro3}Ji{}nxc?ptk<(YEFHIv1RJy|M4mp-;&z!XB^0W_xbjyZUzM zLzVc4FY+$r-+j7V?MR7F=*`|=lQP$TD~UHw&NF?I{q{x795?&6De(pxOFrF=)^fOC z^3GVKckbFH2QPBpZ1k;|w?f$9%I2DFr$h7kbya@E0%fP{ zb1^s>mzXnYs^)d?c~!|?u9-ceCPw z>)Mxeo@`(jUoB+ZZXR746MCktZ2#LO2QR7{=_VcD7;|XNdEp%@@m$Hrjm7KAesgWp zsrtgsQW+>#ufy4Jgdt_WVbkH%^;Yo{4wgBJeQmQ`bY!A9?Rcv;lP`xj!1uI!o1HeGbN&*{v3e}BVz#VOw(=q67P z;n{U`)tNb8(;Q~by>yrNoN<8o#N&VGXV&z+Jo7Yu`xc+GhRcr_`=(7k+Me*FQ_O9j zzWcQ8kM^g^g+_`MRX3DH-JSUC^5v!1UR`~1VmwP=hUQ^OZZfs+9Gwew^|o^F83OBoFg(6aUD*W}^!}C8=e7K65(e`))eaW9spK!-417pKc{)1e%sTyF2aQ z;WOcEmn8ILi+T;W@f&^j@%<;Q^{34xRFL6OgSJdRgQWhMB(u050{azD{b>~XJoT2Y z;h84g=h~lT^-m-URKC;mdK0kDB+R;C+q#qg-bW;HoK@b+-5$T+_Qgfswfm9}J>^}I zy2|S3f{Twga&{Wr-y+5F$~jXbSyn=CVpgNJRbpQ2X^&*1Wqi|KCZBowpJAi8`F4}n zd(VDnH#l?dLde#SRkmBF)XU0oPybVBtP5J=wX`rRHuuJkUG6I+^py$=!?m`@JTv;u zxaAsa_s_ZhHwD)VBy6;LoZ|h(|H7L#+xsspc5h)xGrcGqbMEq+{YUG{ZZEcb9&zLP zv!qSd`FSsn)}@;Ld6;}-eN0^6>5G@AefxslKoHS-9Y~O2VU3qw9&B@mKWDAKs8!WEHBj^}tc~T_xhL+=Mg#?p>ziH}iyk z(FNz)b?M#r^*8e!@t?lVcdu7RzxC=%T7M5pW_O5xORx{hC`(CLmOGJaMwEHpv{zR| z`(sq6Ww_}bt$N1YavS<1XP=Y;M}xu`SOe`VS2a6f$6zTUJY zX{TUT{6*FnuH(uF%v1}z{v24)+OEBYWBQzRClmXAvt7)OSiJv8#PlZyXYbgk7A{&R z_jYB@yR!jp(>}dlmzZ-fRd2^xS+g5fk1{^R?$%zj!`iriP4%0V-KEjl8n69*s?6IO ztEiH6fAgf@RnKniSIl{BA6(8H5qkXM`Sf>UI*EVQiD)r5F>c|E;gVQ);fY{=GsipE z&N8=)`K>GY>Lwogb4+sggO_!V+@GX0j{HuFlK$-def`YNWQE5+@-z#(q;h17zjP!S ztoAq2`+Dri8LjK##wMw83JI%&x0(re&wARvAj+4NS)#l*{hp1ydw z#jDR2+x8bEco$kczqawO@$@pq)T%0Z0b$w09z6RMpH#J(J)RxJt-gQZuL3>A)J=J9 z8nq6)KKI<6%u_CLdV>j1?u}Ez({@YVF*`8v)b%vm7OR<}KUxn+9M6$#k88VstY+uZ zL&w5&PeI60#+k1;x!)c=bLqOS zcgo(Xhr${9_xGf{zi6zRDk*L3y*^mIl>1P^g>{>rw)=fqT~_|}*W^pD7fbc&U*|lz ze|BzPv_#Q5y>{mQe&STbHqZ4>m zY{s)TjkNX6OMkNWDxEC7&hGSVn~GBQ-(Szqx_adDr)D=XQvGi!Uo>P^S)?Ob~I>M7S* zf)k&LPAi(hw3>INC$?WN z>+^<>SGbh^GrW+GT4ZCqy)0Swik_S3BZ(V4`_;^6?byzC_~j>dGxViWFN zsII*m+tYf@^sM#d&Yta`Utc)cR$FJoedn~P(9Ju=(zmqs`R@76=CC`R~>#!&ysA=Q|k|UD~yU zXYF@C-#a3U-Cw?Z&Zgb6{zRbng-?uui3}{v4O|ERGSt2PETO~t-Y|N?Gs}rvyswG= zoThrdN^Jh$}z zXO4n5VzS0P>#puEwcq}YyH`9k=ji?(<^2Kq+un;-_}mWtRet>h!;xz}e{a5WJG8e> zX2a{ME9wz_)7)1aV0x5ewjxe!-^;3f#ypktS8!~2_x-_*B(<=1f!z$>y+5X3O)gpN z)b=d-;hvqn>(7Kef7QtCR>!z1YTEh76F#rIB^9G36=NdG+ODnJlUzPCYrzu*?|)~@ z+q+jhILEXwpY@-z!d9P?*TaMKBoD%FdFlKgtijQ(aN_^x^!^axvU1x2>7W)20!=uy=xBp~VT?pvgzp6p3lg-^*u21bxpC%)4!|Y&uuM=XKLB8f5lP zTY61mGM_i-;KhXtSwMG6G_bHX2smgcC~z-)bb!YVG&*=DdFM2a_Z#wWTUTCsJoTn# zmCKH&b#9Tj+HQV5?EWO9vi0C8d+XNlussRSEaxdK)b0)`j&z=;Y*A$T>*=C{7g=v_ zDB2=tE}(nXyQMlfZ&_Ei@a_#;`({@boeiIy(6cJq)pE1KkLHkL3syaPIQ4$HnP%@< lzw4=ef6|&BC5EoMEPHV2?QQ3@9__sK+}+E<%5wkzn*e6t!9@T7 literal 0 HcmV?d00001 diff --git a/Base/res/html/misc/jpgsuite_files/non-subsampled-lena.jpg b/Base/res/html/misc/jpgsuite_files/non-subsampled-lena.jpg new file mode 100644 index 0000000000000000000000000000000000000000..45928b3351909ee5e4b7b74be9d582889fdd0dd6 GIT binary patch literal 35193 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 literal 0 HcmV?d00001 diff --git a/Base/res/html/misc/jpgsuite_files/oh-lena.jpg b/Base/res/html/misc/jpgsuite_files/oh-lena.jpg new file mode 100644 index 0000000000000000000000000000000000000000..053887a9f7565bd3abf9ca282a0b59932ffdbd5c GIT binary patch literal 155145 zcmex=9G120;#HGnNg^jEW3Qf{e_9jQ@`?$T2W5vND1I0~D|_F|)9-GjK3+a{WKT z5Fo(7$jr>l#KO$V!p_FR%D~OUz|6ubq{Jp{8LvnOK=wm_X_n7?}i_4TV?~9hHm%g$r4o5*s%v8-EZ9ns{*GMU^Dy zqKBJ4{=db*!_3IQB*-ktV9)UJ+OxZVIr%Jd=Qf_L@Y?*s@Z#<1OYb+S3H0Bp?X0a_ z$f_-q!>ha9*h^mMqVrb<-gu45FFJpYuE{$q)&EM{C63#2dO(1<<*XP7C;m-G4$t|= zF|Ut#m5o8D*Xo-0XB~Pz?R@!7i*14N`>2YpnKn~y=0E?s#C+D(D5J{@9~9c}oO!R! zak)?3-y`4t-M=vH>a@Px)6A^b7b-liV4W6ORiXcPZ`~Ia`P>7CSv9v?L|$l6%8+AN z&OD8^Q#T;_z@sU*+cG3>^fAu;_r+;0>#bhTjyIo6Uo&dH&_7lEZT6DIKT;p=(df0} z-NSS5g`D`TPt$v@2CO*wS@6IO_S!#Z)05iQHaB0Jb0+lL`|6L9^OF*POWTJVzhPZ5 zcZd-QM)3 z%-LPE;agf3t3r?L%JQvp3apL)8OoQ~i>_$k+a-SU;)SKAcYpFs6)WDV{D6V+z?%)i zrJ5IC9*}Hq|Ibh(BKp8NJ$Tg&>0>#rcAK9qH8^09aM_nh{q_dUfUaIQQOmd2W6xMy zXkC8ieI?(ndbyZD-JhTHFZ8g-7V$DgmMe$nU32Y3z zu5RNh6%M%YPtIxCdCt;pO_}pq*KPFTEU?+xI4Al|T0n97jrkm9?>DV;_t9Lk;6H== ztA(<+B?`_RHh!>$>-2{e&r`aYME1{-|DC@3>Y7lAZGY`d#bm@qa(8`OaHi zh>-lxP|YIzUcAh4<%0YT5{&;D-tOC%T7Qe(J-ir`OcG z;j78FzR%rfe&77wzELD;sqBVZB@H+1c8hlG(mZ{|)oS&wq>ay%x72z4R^6N?R=()d zBF38vXXM$P8wyMccdGZrnST4ARX6M8zo;8_s`WWcihtS)GC#cdCKY+KO!;1t^=|&p zhZ~nU-deuJ)4BO~+smzOs~i|!FdOaf|D<7hs;BJS@e~Fxo||@Gv*$10cQn+atE$Ph zNP>Bz<=pB28Sb;V^*Vgcxo_rtX?{90^9!f>nvp6yjy1i%JgatcmIZ^njr|-!soeb9 z$;;1fc*;=!>w()|Awm17-%Q#f$pwFo`1^kNXL46-)$8_@h8t6_$-bU<@?W#%QWWP3D-c#?~e}<>a zavAR(d|sb4_4$$-=>yDX>;Hyii0!Ouy0G-;kL?9^>)W$jJ)0)7URx`?M@Ka+{!05@ z(Z7@I)$A_S$(;D`{ixJpm#Y&~Z1E|Bo< TPm%zu& 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

yM6N+M@;mcXv2$+zngRl_6Ulp=FWYPz*!_6 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

  • many buggies
  • BMP test suite
  • +
  • JPG Images
  • system palette color css extension
  • link inside display: inline-block
  • setInterval() test
  • diff --git a/Libraries/LibGfx/CMakeLists.txt b/Libraries/LibGfx/CMakeLists.txt index efe351e677..2562336f68 100644 --- a/Libraries/LibGfx/CMakeLists.txt +++ b/Libraries/LibGfx/CMakeLists.txt @@ -11,6 +11,7 @@ set(SOURCES GIFLoader.cpp ICOLoader.cpp ImageDecoder.cpp + JPGLoader.cpp Painter.cpp Palette.cpp Path.cpp diff --git a/Libraries/LibGfx/ImageDecoder.cpp b/Libraries/LibGfx/ImageDecoder.cpp index 7e96c9e527..e932e38269 100644 --- a/Libraries/LibGfx/ImageDecoder.cpp +++ b/Libraries/LibGfx/ImageDecoder.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include #include #include @@ -60,7 +61,12 @@ ImageDecoder::ImageDecoder(const u8* data, size_t size) if (m_plugin->sniff()) return; + m_plugin = make(data, size); + if (m_plugin->sniff()) + return; + m_plugin = nullptr; + return; } ImageDecoder::~ImageDecoder() diff --git a/Libraries/LibGfx/JPGLoader.cpp b/Libraries/LibGfx/JPGLoader.cpp new file mode 100644 index 0000000000..3d091e8fbb --- /dev/null +++ b/Libraries/LibGfx/JPGLoader.cpp @@ -0,0 +1,1055 @@ +/* + * Copyright (c) 2020, The SerenityOS developers. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define JPG_DBG 0 +#define jpg_dbg(x) \ + if (JPG_DBG) \ + dbg() << x + +namespace Gfx { + +constexpr static u8 zigzag_map[64] { + 0, 1, 8, 16, 9, 2, 3, 10, + 17, 24, 32, 25, 18, 11, 4, 5, + 12, 19, 26, 33, 40, 48, 41, 34, + 27, 20, 13, 6, 7, 14, 21, 28, + 35, 42, 49, 56, 57, 50, 43, 36, + 29, 22, 15, 23, 30, 37, 44, 51, + 58, 59, 52, 45, 38, 31, 39, 46, + 53, 60, 61, 54, 47, 55, 62, 63 +}; + +using Marker = u16; + +void generate_huffman_codes(HuffmanTableSpec& table) +{ + unsigned code = 0; + for (auto number_of_codes : table.code_counts) { + for (int i = 0; i < number_of_codes; i++) + table.codes.append(code++); + code <<= 1; + } +} + +Optional read_huffman_bits(HuffmanStreamState& hstream, size_t count = 1) +{ + if (count > (8 * sizeof(size_t))) { + dbg() << String::format("Can't read %i bits at once!", count); + return {}; + } + size_t value = 0; + while (count--) { + if (hstream.byte_offset >= hstream.stream.size()) { + dbg() << String::format("Huffman stream exhausted. This could be an error!"); + return {}; + } + u8 current_byte = hstream.stream[hstream.byte_offset]; + u8 current_bit = 1u & (u32)(current_byte >> (7 - hstream.bit_offset)); // MSB first. + hstream.bit_offset++; + value = (value << 1) | (size_t)current_bit; + if (hstream.bit_offset == 8) { + hstream.byte_offset++; + hstream.bit_offset = 0; + } + } + return value; +} + +Optional get_next_symbol(HuffmanStreamState& hstream, const HuffmanTableSpec& table) +{ + unsigned code = 0; + size_t code_cursor = 0; + for (int i = 0; i < 16; i++) { // Codes can't be longer than 16 bits. + auto result = read_huffman_bits(hstream); + if (!result.has_value()) + return {}; + code = (code << 1) | (i32)result.release_value(); + for (int j = 0; j < table.code_counts[i]; j++) { + if (code == table.codes[code_cursor]) + return table.symbols[code_cursor]; + code_cursor++; + } + } + + dbg() << "If you're seeing this...the jpeg decoder needs to support more kinds of JPEGs!"; + return {}; +} + +/** + * Build the macroblocks possible by reading single (MCU) subsampled pair of CbCr. + * Depending on the sampling factors, we may not see triples of y, cb, cr in that + * order. If sample factors differ from one, we'll read more than one block of y- + * coefficients before we get to read a cb-cr block. + + * In the function below, `hcursor` and `vcursor` denote the location of the block + * we're building in the macroblock matrix. `vfactor_i` and `hfactor_i` are cursors + * that iterate over the vertical and horizontal subsampling factors, respectively. + * When we finish one iteration of the innermost loop, we'll have the coefficients + * of one of the components of block at position `mb_index`. When the outermost loop + * finishes first iteration, we'll have all the luminance coefficients for all the + * macroblocks that share the chrominance data. Next two iterations (assuming that + * we are dealing with three components) will fill up the blocks with chroma data. + */ +bool build_macroblocks(JPGLoadingContext& context, Vector& macroblocks, u8 hcursor, u8 vcursor) +{ + for (u32 cindex = 0; cindex < context.component_count; cindex++) { + auto& component = context.components[cindex]; + for (u8 vfactor_i = 0; vfactor_i < component.vsample_factor; vfactor_i++) { + for (u8 hfactor_i = 0; hfactor_i < component.hsample_factor; hfactor_i++) { + u32 mb_index = (vcursor + vfactor_i) * context.mblock_meta.hpadded_count + (hfactor_i + hcursor); + Macroblock& block = macroblocks[mb_index]; + + auto& dc_table = context.dc_tables[component.dc_destination_id]; + auto& ac_table = context.ac_tables[component.ac_destination_id]; + + auto symbol_or_error = get_next_symbol(context.huffman_stream, dc_table); + if (!symbol_or_error.has_value()) + return false; + + // For DC coefficients, symbol encodes the length of the coefficient. + auto dc_length = symbol_or_error.release_value(); + if (dc_length > 11) { + dbg() << String::format("DC coefficient too long: %i!", dc_length); + return false; + } + + auto coeff_or_error = read_huffman_bits(context.huffman_stream, dc_length); + if (!coeff_or_error.has_value()) + return false; + + // DC coefficients are encoded as the difference between previous and current DC values. + i32 dc_diff = coeff_or_error.release_value(); + + // If MSB in diff is 0, the difference is -ve. Otherwise +ve. + if (dc_length != 0 && dc_diff < (1 << (dc_length - 1))) + dc_diff -= (1 << dc_length) - 1; + + i32* select_component = component.id == 1 ? block.y : (component.id == 2 ? block.cb : block.cr); + auto& previous_dc = context.previous_dc_values[cindex]; + select_component[0] = previous_dc += dc_diff; + + // Compute the AC coefficients. + for (int j = 1; j < 64;) { + symbol_or_error = get_next_symbol(context.huffman_stream, ac_table); + if (!symbol_or_error.has_value()) + return false; + + // AC symbols encode 2 pieces of information, the high 4 bits represent + // number of zeroes to be stuffed before reading the coefficient. Low 4 + // bits represent the magnitude of the coefficient. + auto ac_symbol = symbol_or_error.release_value(); + if (ac_symbol == 0) + break; + + // ac_symbol = 0xF0 means we need to skip 16 zeroes. + u8 run_length = ac_symbol == 0xF0 ? 16 : ac_symbol >> 4; + j += run_length; + + if (j >= 64) { + dbg() << String::format("Run-length exceeded boundaries. Cursor: %i, Skipping: %i!", j, run_length); + return false; + } + + u8 coeff_length = ac_symbol & 0x0F; + if (coeff_length > 10) { + dbg() << String::format("AC coefficient too long: %i!", coeff_length); + return false; + } + + if (coeff_length != 0) { + coeff_or_error = read_huffman_bits(context.huffman_stream, coeff_length); + if (!coeff_or_error.has_value()) + return false; + i32 ac_coefficient = coeff_or_error.release_value(); + if (ac_coefficient < (1 << (coeff_length - 1))) + ac_coefficient -= (1 << coeff_length) - 1; + + select_component[zigzag_map[j++]] = ac_coefficient; + } + } + } + } + } + + return true; +} + +Optional> decode_huffman_stream(JPGLoadingContext& context) +{ + Vector macroblocks; + macroblocks.resize(context.mblock_meta.padded_total); + + jpg_dbg("Image width: " << context.frame.width); + jpg_dbg("Image height: " << context.frame.height); + jpg_dbg("Macroblocks in a row: " << context.mblock_meta.hpadded_count); + jpg_dbg("Macroblocks in a column: " << context.mblock_meta.vpadded_count); + + // Compute huffman codes for DC and AC tables. + for (auto& dc_table : context.dc_tables) + generate_huffman_codes(dc_table); + + for (auto& ac_table : context.ac_tables) + generate_huffman_codes(ac_table); + + for (u32 vcursor = 0; vcursor < context.mblock_meta.vcount; vcursor += context.vsample_factor) { + for (u32 hcursor = 0; hcursor < context.mblock_meta.hcount; hcursor += context.hsample_factor) { + u32 i = vcursor * context.mblock_meta.hpadded_count + hcursor; + if (context.dc_reset_interval > 0) { + if (i % context.dc_reset_interval == 0) { + context.previous_dc_values[0] = 0; + context.previous_dc_values[1] = 0; + context.previous_dc_values[2] = 0; + + // Restart markers are stored in byte boundaries. Advance the huffman stream cursor to + // the 0th bit of the next byte. + if (context.huffman_stream.byte_offset < context.huffman_stream.stream.size()) { + if (context.huffman_stream.bit_offset > 0) { + context.huffman_stream.bit_offset = 0; + context.huffman_stream.byte_offset++; + } + + // Skip the restart marker (RSTn). + context.huffman_stream.byte_offset++; + } + } + } + + if (!build_macroblocks(context, macroblocks, hcursor, vcursor)) { + dbg() << "Failed to build Macroblock " << i; + dbg() << "Huffman stream byte offset " << context.huffman_stream.byte_offset; + dbg() << "Huffman stream bit offset " << context.huffman_stream.bit_offset; + return {}; + } + } + } + + return macroblocks; +} + +static inline bool bounds_okay(const size_t cursor, const size_t delta, const size_t bound) +{ + return (delta + cursor) < bound; +} + +static inline bool is_valid_marker(const Marker marker) +{ + if (marker >= JPG_APPN0 && marker <= JPG_APPNF) { + if (marker != JPG_APPN0) + dbg() << String::format("%04x not supported yet. The decoder may fail!", marker); + return true; + } + if (marker >= JPG_RESERVED1 && marker <= JPG_RESERVEDD) + return true; + if (marker >= JPG_RST0 && marker <= JPG_RST7) + return true; + switch (marker) { + case JPG_COM: + case JPG_DHP: + case JPG_EXP: + case JPG_DHT: + case JPG_DQT: + case JPG_RST: + case JPG_SOF0: + case JPG_SOI: + case JPG_SOS: + return true; + default: + return false; + } +} + +static inline u16 read_be_word(BufferStream& stream) +{ + u8 tmp1, tmp2; + stream >> tmp1 >> tmp2; + return ((u16)tmp1 << 8) | ((u16)tmp2); +} + +static inline Marker read_marker_at_cursor(BufferStream& stream) +{ + u16 marker = read_be_word(stream); + if (stream.handle_read_failure()) + return JPG_INVALID; + if (is_valid_marker(marker)) + return marker; + if (marker != 0xFFFF) + return JPG_INVALID; + u8 next; + do { + stream >> next; + if (stream.handle_read_failure() || next == 0x00) + return JPG_INVALID; + } while (next == 0xFF); + marker = 0xFF00 | (u16)next; + return is_valid_marker(marker) ? marker : JPG_INVALID; +} + +static bool read_start_of_scan(BufferStream& stream, JPGLoadingContext& context) +{ + if (context.state < JPGLoadingContext::State::FrameDecoded) { + dbg() << stream.offset() << ": SOS found before reading a SOF!"; + return false; + } + + u16 bytes_to_read = read_be_word(stream); + if (stream.handle_read_failure()) + return false; + bytes_to_read -= 2; + if (!bounds_okay(stream.offset(), bytes_to_read, context.compressed_size)) + return false; + u8 component_count; + stream >> component_count; + if (component_count != context.component_count) { + dbg() << stream.offset() + << String::format(": Unsupported number of components: %i!", component_count); + return false; + } + + for (int i = 0; i < component_count; i++) { + ComponentSpec* component = nullptr; + u8 component_id; + stream >> component_id; + component_id += context.has_zero_based_ids ? 1 : 0; + + if (component_id == context.components[0].id) + component = &context.components[0]; + else if (component_id == context.components[1].id) + component = &context.components[1]; + else if (component_id == context.components[2].id) + component = &context.components[2]; + else { + dbg() << stream.offset() << String::format(": Unsupported component id: %i!", component_id); + return false; + } + + u8 table_ids; + stream >> table_ids; + component->dc_destination_id = table_ids >> 4; + component->ac_destination_id = table_ids & 0x0F; + } + + u8 spectral_selection_start; + stream >> spectral_selection_start; + u8 spectral_selection_end; + stream >> spectral_selection_end; + u8 successive_approximation; + stream >> successive_approximation; + // The three values should be fixed for baseline JPEGs utilizing sequential DCT. + if (spectral_selection_start != 0 || spectral_selection_end != 63 || successive_approximation != 0) { + dbg() << stream.offset() << ": ERROR! Start of Selection: " << spectral_selection_start + << ", End of Selection: " << spectral_selection_end + << ", Successive Approximation: " << successive_approximation << "!"; + return false; + } + return true; +} + +static bool read_reset_marker(BufferStream& stream, JPGLoadingContext& context) +{ + u16 bytes_to_read = read_be_word(stream); + if (stream.handle_read_failure()) + return false; + bytes_to_read -= 2; + if (bytes_to_read != 2) { + dbg() << stream.offset() << ": Malformed reset marker found!"; + return false; + } + context.dc_reset_interval = read_be_word(stream); + return true; +} + +static bool read_huffman_table(BufferStream& stream, JPGLoadingContext& context) +{ + i32 bytes_to_read = read_be_word(stream); + if (!bounds_okay(stream.offset(), bytes_to_read, context.compressed_size)) + return false; + bytes_to_read -= 2; + while (bytes_to_read > 0) { + HuffmanTableSpec table; + u8 table_info; + stream >> table_info; + u8 table_type = table_info >> 4; + u8 table_destination_id = table_info & 0x0F; + if (table_type > 1) { + dbg() << stream.offset() << String::format(": Unrecognized huffman table: %i!", table_type); + return false; + } + if (table_destination_id > 3) { + dbg() << stream.offset() + << String::format(": Invalid huffman table destination id: %i!", table_destination_id); + return false; + } + table.type = table_type; + table.destination_id = table_destination_id; + u32 total_codes = 0; + + // Read code counts. At each index K, the value represents the number of K+1 bit codes in this header. + for (int i = 0; i < 16; i++) { + u8 count; + stream >> count; + total_codes += count; + table.code_counts[i] = count; + } + + table.codes.ensure_capacity(total_codes); + + // Read symbols. Read X bytes, where X is the sum of the counts of codes read in the previous step. + for (u32 i = 0; i < total_codes; i++) { + u8 symbol; + stream >> symbol; + table.symbols.append(symbol); + } + + if (table_type == 0) + context.dc_tables.append(move(table)); + else + context.ac_tables.append(move(table)); + + bytes_to_read -= 1 + 16 + total_codes; + } + if (bytes_to_read != 0) { + dbg() << stream.offset() << ": Extra bytes detected in huffman header!"; + return false; + } + return true; +} + +static inline bool validate_luma_and_modify_context(const ComponentSpec& luma, JPGLoadingContext& context) +{ + if ((luma.hsample_factor == 1 || luma.hsample_factor == 2) && (luma.vsample_factor == 1 || luma.vsample_factor == 2)) { + context.mblock_meta.hpadded_count += luma.hsample_factor == 1 ? 0 : context.mblock_meta.hcount % 2; + context.mblock_meta.vpadded_count += luma.vsample_factor == 1 ? 0 : context.mblock_meta.vcount % 2; + context.mblock_meta.padded_total = context.mblock_meta.hpadded_count * context.mblock_meta.vpadded_count; + // For easy reference to relevant sample factors. + context.hsample_factor = luma.hsample_factor; + context.vsample_factor = luma.vsample_factor; + jpg_dbg(String::format("Horizontal Subsampling Factor: %i", luma.hsample_factor)); + jpg_dbg(String::format("Vertical Subsampling Factor: %i", luma.vsample_factor)); + return true; + } + return false; +} + +static inline void set_macroblock_metadata(JPGLoadingContext& context) +{ + context.mblock_meta.hcount = (context.frame.width + 7) / 8; + context.mblock_meta.vcount = (context.frame.height + 7) / 8; + context.mblock_meta.hpadded_count = context.mblock_meta.hcount; + context.mblock_meta.vpadded_count = context.mblock_meta.vcount; + context.mblock_meta.total = context.mblock_meta.hcount * context.mblock_meta.vcount; +} + +static bool read_start_of_frame(BufferStream& stream, JPGLoadingContext& context) +{ + if (context.state == JPGLoadingContext::FrameDecoded) { + dbg() << stream.offset() << ": SOF repeated!"; + return false; + } + + i32 bytes_to_read = read_be_word(stream); + if (stream.handle_read_failure()) + return false; + + bytes_to_read -= 2; + if (!bounds_okay(stream.offset(), bytes_to_read, context.compressed_size)) + return false; + + stream >> context.frame.precision; + if (context.frame.precision != 8) { + dbg() << stream.offset() << ": SOF precision != 8!"; + return false; + } + + context.frame.height = read_be_word(stream); + context.frame.width = read_be_word(stream); + if (!context.frame.width || !context.frame.height) { + dbg() << stream.offset() << ": ERROR! Image height: " << context.frame.height << ", Image width: " + << context.frame.width << "!"; + return false; + } + set_macroblock_metadata(context); + + stream >> context.component_count; + if (context.component_count != 1 && context.component_count != 3) { + dbg() << stream.offset() << ": Unsupported number of components in SOF: " + << context.component_count << "!"; + return false; + } + + for (int i = 0; i < context.component_count; i++) { + ComponentSpec& component = context.components[i]; + + stream >> component.id; + if (i == 0) + context.has_zero_based_ids = component.id == 0; + component.id += context.has_zero_based_ids ? 1 : 0; + + u8 subsample_factors; + stream >> subsample_factors; + component.hsample_factor = subsample_factors >> 4; + component.vsample_factor = subsample_factors & 0x0F; + + if (component.id == 1) { + // By convention, downsampling is applied only on chroma components. So we should + // hope to see the maximum sampling factor in the luma component. + if (!validate_luma_and_modify_context(component, context)) { + dbg() << stream.offset() << ": Unsupported luma subsampling factors: " + << "horizontal: " << component.hsample_factor << ", vertical: " << component.vsample_factor; + return false; + } + } else { + if (component.hsample_factor != 1 || component.vsample_factor != 1) { + dbg() << stream.offset() << ": Unsupported chroma subsampling factors: " + << "horizontal: " << component.hsample_factor << ", vertical: " << component.vsample_factor; + return false; + } + } + + stream >> component.qtable_id; + if (component.qtable_id > 1) { + dbg() << stream.offset() << ": Unsupported quantization table id: " + << component.qtable_id << "!"; + return false; + } + } + return true; +} + +static bool read_quantization_table(BufferStream& stream, JPGLoadingContext& context) +{ + i32 bytes_to_read = read_be_word(stream); + if (stream.handle_read_failure()) + return false; + bytes_to_read -= 2; + if (!bounds_okay(stream.offset(), bytes_to_read, context.compressed_size)) + return false; + while (bytes_to_read > 0) { + u8 info_byte; + stream >> info_byte; + u8 element_unit_hint = info_byte >> 4; + if (element_unit_hint > 1) { + dbg() << stream.offset() + << String::format(": Unsupported unit hint in quantization table: %i!", element_unit_hint); + return false; + } + u8 table_id = info_byte & 0x0F; + if (table_id > 1) { + dbg() << stream.offset() << String::format(": Unsupported quantization table id: %i!", table_id); + return false; + } + u32* table = table_id == 0 ? context.luma_table : context.chroma_table; + for (int i = 0; i < 64; i++) { + if (element_unit_hint == 0) { + u8 tmp; + stream >> tmp; + table[zigzag_map[i]] = tmp; + } else + table[zigzag_map[i]] = read_be_word(stream); + } + bytes_to_read -= 1 + (element_unit_hint == 0 ? 64 : 128); + } + if (bytes_to_read != 0) { + dbg() << stream.offset() << ": Invalid length for one or more quantization tables!"; + return false; + } + + return true; +} + +static bool skip_marker_with_length(BufferStream& stream) +{ + u16 bytes_to_skip = read_be_word(stream); + bytes_to_skip -= 2; + if (stream.handle_read_failure()) + return false; + stream.advance(bytes_to_skip); + return !stream.handle_read_failure(); +} + +void dequantize(JPGLoadingContext& context, Vector& macroblocks) +{ + for (u32 vcursor = 0; vcursor < context.mblock_meta.vcount; vcursor += context.vsample_factor) { + for (u32 hcursor = 0; hcursor < context.mblock_meta.hcount; hcursor += context.hsample_factor) { + for (u8 cindex = 0; cindex < context.component_count; cindex++) { + auto& component = context.components[cindex]; + const u32* table = component.qtable_id == 0 ? context.luma_table : context.chroma_table; + for (u32 vfactor_i = 0; vfactor_i < component.vsample_factor; vfactor_i++) { + for (u32 hfactor_i = 0; hfactor_i < component.hsample_factor; hfactor_i++) { + u32 mb_index = (vcursor + vfactor_i) * context.mblock_meta.hpadded_count + (hfactor_i + hcursor); + Macroblock& block = macroblocks[mb_index]; + int* block_component = cindex == 0 ? block.y : (cindex == 1 ? block.cb : block.cr); + for (u32 k = 0; k < 64; k++) + block_component[k] *= table[k]; + } + } + } + } + } +} + +void inverse_dct(const JPGLoadingContext& context, Vector& macroblocks) +{ + static const float m0 = 2.0 * cos(1.0 / 16.0 * 2.0 * M_PI); + static const float m1 = 2.0 * cos(2.0 / 16.0 * 2.0 * M_PI); + static const float m3 = 2.0 * cos(2.0 / 16.0 * 2.0 * M_PI); + static const float m5 = 2.0 * cos(3.0 / 16.0 * 2.0 * M_PI); + static const float m2 = m0 - m5; + static const float m4 = m0 + m5; + static const float s0 = cos(0.0 / 16.0 * M_PI) / sqrt(8); + static const float s1 = cos(1.0 / 16.0 * M_PI) / 2.0; + static const float s2 = cos(2.0 / 16.0 * M_PI) / 2.0; + static const float s3 = cos(3.0 / 16.0 * M_PI) / 2.0; + static const float s4 = cos(4.0 / 16.0 * M_PI) / 2.0; + static const float s5 = cos(5.0 / 16.0 * M_PI) / 2.0; + static const float s6 = cos(6.0 / 16.0 * M_PI) / 2.0; + static const float s7 = cos(7.0 / 16.0 * M_PI) / 2.0; + + for (u32 vcursor = 0; vcursor < context.mblock_meta.vcount; vcursor += context.vsample_factor) { + for (u32 hcursor = 0; hcursor < context.mblock_meta.hcount; hcursor += context.hsample_factor) { + for (u8 cindex = 0; cindex < context.component_count; cindex++) { + auto& component = context.components[cindex]; + for (u8 vfactor_i = 0; vfactor_i < component.vsample_factor; vfactor_i++) { + for (u8 hfactor_i = 0; hfactor_i < component.hsample_factor; hfactor_i++) { + u32 mb_index = (vcursor + vfactor_i) * context.mblock_meta.hpadded_count + (hfactor_i + hcursor); + Macroblock& block = macroblocks[mb_index]; + i32* block_component = cindex == 0 ? block.y : (cindex == 1 ? block.cb : block.cr); + for (u32 k = 0; k < 8; ++k) { + const float g0 = block_component[0 * 8 + k] * s0; + const float g1 = block_component[4 * 8 + k] * s4; + const float g2 = block_component[2 * 8 + k] * s2; + const float g3 = block_component[6 * 8 + k] * s6; + const float g4 = block_component[5 * 8 + k] * s5; + const float g5 = block_component[1 * 8 + k] * s1; + const float g6 = block_component[7 * 8 + k] * s7; + const float g7 = block_component[3 * 8 + k] * s3; + + const float f0 = g0; + const float f1 = g1; + const float f2 = g2; + const float f3 = g3; + const float f4 = g4 - g7; + const float f5 = g5 + g6; + const float f6 = g5 - g6; + const float f7 = g4 + g7; + + const float e0 = f0; + const float e1 = f1; + const float e2 = f2 - f3; + const float e3 = f2 + f3; + const float e4 = f4; + const float e5 = f5 - f7; + const float e6 = f6; + const float e7 = f5 + f7; + const float e8 = f4 + f6; + + const float d0 = e0; + const float d1 = e1; + const float d2 = e2 * m1; + const float d3 = e3; + const float d4 = e4 * m2; + const float d5 = e5 * m3; + const float d6 = e6 * m4; + const float d7 = e7; + const float d8 = e8 * m5; + + const float c0 = d0 + d1; + const float c1 = d0 - d1; + const float c2 = d2 - d3; + const float c3 = d3; + const float c4 = d4 + d8; + const float c5 = d5 + d7; + const float c6 = d6 - d8; + const float c7 = d7; + const float c8 = c5 - c6; + + const float b0 = c0 + c3; + const float b1 = c1 + c2; + const float b2 = c1 - c2; + const float b3 = c0 - c3; + const float b4 = c4 - c8; + const float b5 = c8; + const float b6 = c6 - c7; + const float b7 = c7; + + block_component[0 * 8 + k] = b0 + b7; + block_component[1 * 8 + k] = b1 + b6; + block_component[2 * 8 + k] = b2 + b5; + block_component[3 * 8 + k] = b3 + b4; + block_component[4 * 8 + k] = b3 - b4; + block_component[5 * 8 + k] = b2 - b5; + block_component[6 * 8 + k] = b1 - b6; + block_component[7 * 8 + k] = b0 - b7; + } + for (u32 l = 0; l < 8; ++l) { + const float g0 = block_component[l * 8 + 0] * s0; + const float g1 = block_component[l * 8 + 4] * s4; + const float g2 = block_component[l * 8 + 2] * s2; + const float g3 = block_component[l * 8 + 6] * s6; + const float g4 = block_component[l * 8 + 5] * s5; + const float g5 = block_component[l * 8 + 1] * s1; + const float g6 = block_component[l * 8 + 7] * s7; + const float g7 = block_component[l * 8 + 3] * s3; + + const float f0 = g0; + const float f1 = g1; + const float f2 = g2; + const float f3 = g3; + const float f4 = g4 - g7; + const float f5 = g5 + g6; + const float f6 = g5 - g6; + const float f7 = g4 + g7; + + const float e0 = f0; + const float e1 = f1; + const float e2 = f2 - f3; + const float e3 = f2 + f3; + const float e4 = f4; + const float e5 = f5 - f7; + const float e6 = f6; + const float e7 = f5 + f7; + const float e8 = f4 + f6; + + const float d0 = e0; + const float d1 = e1; + const float d2 = e2 * m1; + const float d3 = e3; + const float d4 = e4 * m2; + const float d5 = e5 * m3; + const float d6 = e6 * m4; + const float d7 = e7; + const float d8 = e8 * m5; + + const float c0 = d0 + d1; + const float c1 = d0 - d1; + const float c2 = d2 - d3; + const float c3 = d3; + const float c4 = d4 + d8; + const float c5 = d5 + d7; + const float c6 = d6 - d8; + const float c7 = d7; + const float c8 = c5 - c6; + + const float b0 = c0 + c3; + const float b1 = c1 + c2; + const float b2 = c1 - c2; + const float b3 = c0 - c3; + const float b4 = c4 - c8; + const float b5 = c8; + const float b6 = c6 - c7; + const float b7 = c7; + + block_component[l * 8 + 0] = b0 + b7; + block_component[l * 8 + 1] = b1 + b6; + block_component[l * 8 + 2] = b2 + b5; + block_component[l * 8 + 3] = b3 + b4; + block_component[l * 8 + 4] = b3 - b4; + block_component[l * 8 + 5] = b2 - b5; + block_component[l * 8 + 6] = b1 - b6; + block_component[l * 8 + 7] = b0 - b7; + } + } + } + } + } + } +} + +void ycbcr_to_rgb(const JPGLoadingContext& context, Vector& macroblocks) +{ + for (u32 vcursor = 0; vcursor < context.mblock_meta.vcount; vcursor += context.vsample_factor) { + for (u32 hcursor = 0; hcursor < context.mblock_meta.hcount; hcursor += context.hsample_factor) { + const u32 chroma_block_index = vcursor * context.mblock_meta.hpadded_count + hcursor; + const Macroblock& chroma = macroblocks[chroma_block_index]; + // Overflows are intentional. + for (u8 vfactor_i = context.vsample_factor - 1; vfactor_i < context.vsample_factor; --vfactor_i) { + for (u8 hfactor_i = context.hsample_factor - 1; hfactor_i < context.hsample_factor; --hfactor_i) { + u32 mb_index = (vcursor + vfactor_i) * context.mblock_meta.hpadded_count + (hcursor + hfactor_i); + i32* y = macroblocks[mb_index].y; + i32* cb = macroblocks[mb_index].cb; + i32* cr = macroblocks[mb_index].cr; + for (u8 i = 7; i < 8; --i) { + for (u8 j = 7; j < 8; --j) { + const u8 pixel = i * 8 + j; + const u32 chroma_pxrow = (i / context.vsample_factor) + 4 * vfactor_i; + const u32 chroma_pxcol = (j / context.hsample_factor) + 4 * hfactor_i; + const u32 chroma_pixel = chroma_pxrow * 8 + chroma_pxcol; + int r = y[pixel] + 1.402f * chroma.cr[chroma_pixel] + 128; + int g = y[pixel] - 0.344f * chroma.cb[chroma_pixel] - 0.714f * chroma.cr[chroma_pixel] + 128; + int b = y[pixel] + 1.772f * chroma.cb[chroma_pixel] + 128; + y[pixel] = r < 0 ? 0 : (r > 255 ? 255 : r); + cb[pixel] = g < 0 ? 0 : (g > 255 ? 255 : g); + cr[pixel] = b < 0 ? 0 : (b > 255 ? 255 : b); + } + } + } + } + } + } +} + +static void compose_bitmap(JPGLoadingContext& context, const Vector& macroblocks) +{ + context.bitmap = Bitmap::create_purgeable(BitmapFormat::RGB32, { context.frame.width, context.frame.height }); + + for (u32 y = context.frame.height - 1; y < context.frame.height; y--) { + const u32 block_row = y / 8; + const u32 pixel_row = y % 8; + for (u32 x = 0; x < context.frame.width; x++) { + const u32 block_column = x / 8; + auto& block = macroblocks[block_row * context.mblock_meta.hpadded_count + block_column]; + const u32 pixel_column = x % 8; + const u32 pixel_index = pixel_row * 8 + pixel_column; + const Color color { (u8)block.y[pixel_index], (u8)block.cb[pixel_index], (u8)block.cr[pixel_index] }; + context.bitmap->set_pixel(x, y, color); + } + } +} + +static bool parse_header(BufferStream& stream, JPGLoadingContext& context) +{ + auto marker = read_marker_at_cursor(stream); + if (stream.handle_read_failure()) + return false; + if (marker != JPG_SOI) { + dbg() << stream.offset() << String::format(": SOI not found: %x!", marker); + return false; + } + for (;;) { + marker = read_marker_at_cursor(stream); + switch (marker) { + case JPG_INVALID: + case JPG_RST0: + case JPG_RST1: + case JPG_RST2: + case JPG_RST3: + case JPG_RST4: + case JPG_RST5: + case JPG_RST6: + case JPG_RST7: + case JPG_SOI: + case JPG_EOI: + dbg() << stream.offset() << String::format(": Unexpected marker %x!", marker); + return false; + case JPG_SOF0: + if (!read_start_of_frame(stream, context)) + return false; + context.state = JPGLoadingContext::FrameDecoded; + break; + case JPG_DQT: + if (!read_quantization_table(stream, context)) + return false; + break; + case JPG_RST: + if (!read_reset_marker(stream, context)) + return false; + break; + case JPG_DHT: + if (!read_huffman_table(stream, context)) + return false; + break; + case JPG_SOS: + return read_start_of_scan(stream, context); + default: + if (!skip_marker_with_length(stream)) { + dbg() << stream.offset() << String::format(": Error skipping marker: %x!", marker); + return false; + } + break; + } + } + + ASSERT_NOT_REACHED(); +} + +static bool scan_huffman_stream(BufferStream& stream, JPGLoadingContext& context) +{ + u8 last_byte; + u8 current_byte; + stream >> current_byte; + + for (;;) { + last_byte = current_byte; + stream >> current_byte; + if (stream.handle_read_failure()) { + dbg() << stream.offset() << ": EOI not found!"; + return false; + } + + if (last_byte == 0xFF) { + if (current_byte == 0xFF) + continue; + if (current_byte == 0x00) { + stream >> current_byte; + context.huffman_stream.stream.append(last_byte); + continue; + } + Marker marker = 0xFF00 | current_byte; + if (marker == JPG_EOI) + return true; + if (marker >= JPG_RST0 && marker <= JPG_RST7) { + context.huffman_stream.stream.append(marker); + stream >> current_byte; + continue; + } + dbg() << stream.offset() << String::format(": Invalid marker: %x!", marker); + return false; + } else { + context.huffman_stream.stream.append(last_byte); + } + } + + ASSERT_NOT_REACHED(); +} + +static bool load_jpg_impl(JPGLoadingContext& context) +{ + ByteBuffer buffer = ByteBuffer::wrap(context.compressed_data, context.compressed_size); + BufferStream stream(buffer); + if (!parse_header(stream, context)) + return false; + if (!scan_huffman_stream(stream, context)) + return false; + + auto result = decode_huffman_stream(context); + if (!result.has_value()) { + dbg() << stream.offset() << ": Failed to decode Macroblocks!"; + return false; + } + + auto macroblocks = result.release_value(); + dbg() << String::format("%i macroblocks decoded successfully :^)", macroblocks.size()); + dequantize(context, macroblocks); + inverse_dct(context, macroblocks); + ycbcr_to_rgb(context, macroblocks); + compose_bitmap(context, macroblocks); + return true; +} + +JPGImageDecoderPlugin::JPGImageDecoderPlugin(const u8* data, size_t size) +{ + m_context = make(); + m_context->compressed_data = data; + m_context->compressed_size = size; + m_context->huffman_stream.stream.ensure_capacity(50 * KB); +} + +JPGImageDecoderPlugin::~JPGImageDecoderPlugin() +{ +} + +IntSize JPGImageDecoderPlugin::size() +{ + if (m_context->state == JPGLoadingContext::State::Error) + return {}; + if (m_context->state >= JPGLoadingContext::State::FrameDecoded) + return { m_context->frame.width, m_context->frame.height }; + + return {}; +} + +RefPtr JPGImageDecoderPlugin::bitmap() +{ + if (m_context->state == JPGLoadingContext::State::Error) + return nullptr; + if (m_context->state < JPGLoadingContext::State::BitmapDecoded) { + if (!load_jpg_impl(*m_context)) { + m_context->state = JPGLoadingContext::State::Error; + return nullptr; + } + m_context->state = JPGLoadingContext::State::BitmapDecoded; + } + + return m_context->bitmap; +} + +void JPGImageDecoderPlugin::set_volatile() +{ + if (m_context->bitmap) + m_context->bitmap->set_volatile(); +} + +bool JPGImageDecoderPlugin::set_nonvolatile() +{ + if (!m_context->bitmap) + return false; + return m_context->bitmap->set_nonvolatile(); +} + +bool JPGImageDecoderPlugin::sniff() +{ + return m_context->compressed_size > 3 + && m_context->compressed_data[0] == 0xFF + && m_context->compressed_data[1] == 0xD8 + && m_context->compressed_data[2] == 0xFF; +} + +bool JPGImageDecoderPlugin::is_animated() +{ + return false; +} + +size_t JPGImageDecoderPlugin::loop_count() +{ + return 0; +} + +size_t JPGImageDecoderPlugin::frame_count() +{ + return 1; +} + +ImageFrameDescriptor JPGImageDecoderPlugin::frame(size_t i) +{ + if (i > 0) { + return { bitmap(), 0 }; + } + return {}; +} + +RefPtr load_jpg(const StringView& path) +{ + MappedFile mapped_file(path); + if (!mapped_file.is_valid()) + return nullptr; + JPGImageDecoderPlugin jpg_decoder((const u8*)mapped_file.data(), mapped_file.size()); + auto bitmap = jpg_decoder.bitmap(); + if (bitmap) + bitmap->set_mmap_name(String::format("Gfx::Bitmap [%dx%d] - Decoded JPG: %s", + bitmap->width(), bitmap->height(), LexicalPath::canonicalized_path(path).characters())); + return bitmap; +} +} diff --git a/Libraries/LibGfx/JPGLoader.h b/Libraries/LibGfx/JPGLoader.h new file mode 100644 index 0000000000..023ea2a110 --- /dev/null +++ b/Libraries/LibGfx/JPGLoader.h @@ -0,0 +1,204 @@ +/* + * Copyright (c) 2020, The SerenityOS developers. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#pragma once + +#include +#include +#include +#include + +#define JPG_INVALID 0X0000 + +#define JPG_APPN0 0XFFE0 +#define JPG_APPN1 0XFFE1 +#define JPG_APPN2 0XFFE2 +#define JPG_APPN3 0XFFE3 +#define JPG_APPN4 0XFFE4 +#define JPG_APPN5 0XFFE5 +#define JPG_APPN6 0XFFE6 +#define JPG_APPN7 0XFFE7 +#define JPG_APPN8 0XFFE8 +#define JPG_APPN9 0XFFE9 +#define JPG_APPNA 0XFFEA +#define JPG_APPNB 0XFFEB +#define JPG_APPNC 0XFFEC +#define JPG_APPND 0XFFED +#define JPG_APPNE 0xFFEE +#define JPG_APPNF 0xFFEF + +#define JPG_RESERVED1 0xFFF1 +#define JPG_RESERVED2 0xFFF2 +#define JPG_RESERVED3 0xFFF3 +#define JPG_RESERVED4 0xFFF4 +#define JPG_RESERVED5 0xFFF5 +#define JPG_RESERVED6 0xFFF6 +#define JPG_RESERVED7 0xFFF7 +#define JPG_RESERVED8 0xFFF8 +#define JPG_RESERVED9 0xFFF9 +#define JPG_RESERVEDA 0xFFFA +#define JPG_RESERVEDB 0xFFFB +#define JPG_RESERVEDC 0xFFFC +#define JPG_RESERVEDD 0xFFFD + +#define JPG_RST0 0xFFD0 +#define JPG_RST1 0xFFD1 +#define JPG_RST2 0xFFD2 +#define JPG_RST3 0xFFD3 +#define JPG_RST4 0xFFD4 +#define JPG_RST5 0xFFD5 +#define JPG_RST6 0xFFD6 +#define JPG_RST7 0xFFD7 + +#define JPG_DHP 0xFFDE +#define JPG_EXP 0xFFDF + +#define JPG_DHT 0XFFC4 +#define JPG_DQT 0XFFDB +#define JPG_EOI 0xFFD9 +#define JPG_RST 0XFFDD +#define JPG_SOF0 0XFFC0 +#define JPG_SOI 0XFFD8 +#define JPG_SOS 0XFFDA +#define JPG_COM 0xFFFE + +namespace Gfx { + +/** + * MCU means group of data units that are coded together. A data unit is an 8x8 + * block of component data. In interleaved scans, number of non-interleaved data + * units of a component C is Ch * Cv, where Ch and Cv represent the horizontal & + * vertical subsampling factors of the component, respectively. A MacroBlock is + * an 8x8 block of RGB values before encoding, and 8x8 block of YCbCr values when + * we're done decoding the huffman stream. + */ +struct Macroblock { + union { + i32 y[64] = { 0 }; + i32 r[64]; + }; + + union { + i32 cb[64] = { 0 }; + i32 g[64]; + }; + + union { + i32 cr[64] = { 0 }; + i32 b[64]; + }; +}; + +struct MacroblockMeta { + u32 total; + u32 padded_total; + u32 hcount; + u32 vcount; + u32 hpadded_count; + u32 vpadded_count; +}; + +struct ComponentSpec { + i8 id { -1 }; + u8 hsample_factor { 1 }; // Horizontal sampling factor. + u8 vsample_factor { 1 }; // Vertical sampling factor. + u8 ac_destination_id; + u8 dc_destination_id; + u8 qtable_id; // Quantization table id. +}; + +struct StartOfFrame { + enum class FrameType { + Baseline = 0 + // Progressive = 1 + }; + + FrameType type { FrameType::Baseline }; + u8 precision; + u16 height; + u16 width; +}; + +struct HuffmanTableSpec { + u8 type; + u8 destination_id; + u8 code_counts[16] = { 0 }; + Vector symbols; + Vector codes; +}; + +struct HuffmanStreamState { + Vector stream; + u8 bit_offset { 0 }; + size_t byte_offset { 0 }; +}; + +struct JPGLoadingContext { + enum State { + NotDecoded = 0, + Error, + FrameDecoded, + BitmapDecoded + }; + + State state { State::NotDecoded }; + const u8* compressed_data { nullptr }; + size_t compressed_size { 0 }; + u32 luma_table[64]; + u32 chroma_table[64]; + StartOfFrame frame; + u8 hsample_factor; + u8 vsample_factor; + bool has_zero_based_ids; + u8 component_count; + ComponentSpec components[3]; + RefPtr bitmap; + u16 dc_reset_interval; + Vector dc_tables; + Vector ac_tables; + HuffmanStreamState huffman_stream; + i32 previous_dc_values[3] = { 0 }; + MacroblockMeta mblock_meta; +}; + +class JPGImageDecoderPlugin : public ImageDecoderPlugin { +public: + virtual ~JPGImageDecoderPlugin() override; + JPGImageDecoderPlugin(const u8*, size_t); + virtual IntSize size() override; + virtual RefPtr bitmap() override; + virtual void set_volatile() override; + [[nodiscard]] virtual bool set_nonvolatile() override; + virtual bool sniff() override; + virtual bool is_animated() override; + virtual size_t loop_count() override; + virtual size_t frame_count() override; + virtual ImageFrameDescriptor frame(size_t i) override; + +private: + OwnPtr m_context; +}; +} diff --git a/Libraries/LibWeb/Loader/Resource.cpp b/Libraries/LibWeb/Loader/Resource.cpp index 493a783d39..7b02f87be8 100644 --- a/Libraries/LibWeb/Loader/Resource.cpp +++ b/Libraries/LibWeb/Loader/Resource.cpp @@ -79,21 +79,24 @@ String mime_type_from_content_type(const String& content_type) static String guess_mime_type_based_on_filename(const URL& url) { - if (url.path().ends_with(".pbm")) + String lowercase_url = url.path().to_lowercase(); + if (lowercase_url.ends_with(".pbm")) return "image/x‑portable‑bitmap"; - if (url.path().ends_with(".png")) + if (lowercase_url.ends_with(".png")) return "image/png"; - if (url.path().ends_with(".ppm")) + if (lowercase_url.ends_with(".ppm")) return "image/x‑portable‑pixmap"; - if (url.path().ends_with(".gif")) + if (lowercase_url.ends_with(".gif")) return "image/gif"; - if (url.path().ends_with(".bmp")) + if (lowercase_url.ends_with(".bmp")) return "image/bmp"; - if (url.path().ends_with(".md")) + if (lowercase_url.ends_with(".jpg") || lowercase_url.ends_with(".jpeg")) + return "image/jpeg"; + if (lowercase_url.ends_with(".md")) return "text/markdown"; - if (url.path().ends_with(".html") || url.path().ends_with(".htm")) + if (lowercase_url.ends_with(".html") || lowercase_url.ends_with(".htm")) return "text/html"; - if (url.path().ends_with("/")) + if (lowercase_url.ends_with("/")) return "text/html"; return "text/plain"; }

    YGgaB# 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 literal 0 HcmV?d00001 diff --git a/Base/res/html/misc/jpgsuite_files/vertically-halved-lena.jpg b/Base/res/html/misc/jpgsuite_files/vertically-halved-lena.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4c11be1352fe2344ade0dd9d533525b8fa8a0e26 GIT binary patch literal 28566 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