From aaffce2f49894841e1aa0e8f8b0e400185541135 Mon Sep 17 00:00:00 2001 From: Laurent Mazet Date: Sat, 14 Sep 2024 09:44:41 +0200 Subject: [PATCH] reimplement PNM reading (ascii) --- display.c | 20 ++ image/bogus.ppm | Bin 0 -> 6926 bytes image/dillo.ppm | Bin 6925 -> 0 bytes image/laurent-80x80.jpg | Bin 2256 -> 0 bytes image/laurent.ppm | 421 ---------------------------------------- image/laurent2.jpg | Bin 13905 -> 0 bytes image/laurent2.pbm | Bin 969 -> 0 bytes image/laurent2.pgm | 4 - image/laurent2.png | Bin 6127 -> 0 bytes image/laurent2.ppm | 4 - pnm.c | 70 +++++-- 11 files changed, 77 insertions(+), 442 deletions(-) create mode 100644 image/bogus.ppm delete mode 100644 image/dillo.ppm delete mode 100644 image/laurent-80x80.jpg delete mode 100644 image/laurent.ppm delete mode 100644 image/laurent2.jpg delete mode 100644 image/laurent2.pbm delete mode 100644 image/laurent2.pgm delete mode 100644 image/laurent2.png delete mode 100644 image/laurent2.ppm diff --git a/display.c b/display.c index 2ed3d9a..ee38d30 100644 --- a/display.c +++ b/display.c @@ -116,6 +116,10 @@ int main (int argc, char *argv[]) /* main process */ image_t *image = readpnm (filename); + if (!image) { + VERBOSE (ERROR, fprintf (stderr, "can't read PNM file '%s'\n", filename)); + return 1; + } int k, l; for (l = 0; l < image->height; l++) { @@ -127,13 +131,29 @@ int main (int argc, char *argv[]) printf ("\n"); } + freeimage (image); + return 0; } /* test: display.exe 2>&1 | grep 'no file specified' */ /* test: display.exe -g 2>&1 | grep 'no gamma specified' */ /* test: display.exe -g -1.0 2>&1 | grep 'incorrect gamma' */ +/* test: display.exe -g 1.1:0:1.1 2>&1 | grep 'incorrect gamma' */ +/* test: display.exe -g 1.1:1.2 2>&1 | grep 'incorrect gamma' */ +/* test: display.exe -g 1.1,1.2,1.0 2>&1 | grep 'incorrect gamma' */ /* test: display.exe -h | grep usage */ /* test: display.exe -v 2>&1 | grep missing */ +/* test: display.exe image/bogus.ppm 2>&1 | grep "can't read PNM file" */ +/* test: display.exe image/laurent4p.pbm */ +/* test: display.exe image/laurent4p.pgm */ +/* test: display.exe image/laurent4p.ppm */ +/* test: display.exe image/laurent4.pbm */ +/* test: display.exe image/laurent4.pgm */ +/* test: display.exe image/laurent4.ppm -g 1.2:3:1 */ +/* test: display.exe image/debian.ppm -v 3 */ +/* test: display.exe image/debian.ppm -g 4 */ +/* test: display.exe image/python3.ppm -t */ +/* test: display.exe image/python3.ppm -w */ /* vim: set ts=4 sw=4 et: */ diff --git a/image/bogus.ppm b/image/bogus.ppm new file mode 100644 index 0000000000000000000000000000000000000000..a638cc52cfeb57702a19215b0d04b57466768998 GIT binary patch literal 6926 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 diff --git a/image/laurent-80x80.jpg b/image/laurent-80x80.jpg deleted file mode 100644 index 803e2031d219de999f7be85efb703d63e3336e1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2256 zcmbW!c{tSj9tZH>_{~@g6J^pEG1kb*7Sd5Dq(W#WG=qj25?LdXtu*#6WR4{v2_wfo zmXfhFaw<(Ulx4;c;#kWTcRJ@j_dd`4>)!kRKHtwj-_Q5^d|uCY=i|;8AZ}@P#teY) z0RV)zfSqB$6o7$HC=`V83JeD07uY2zz>Ao$h|n&$*q%LbF}S$IKBSa{r1V~KI6@8~ zjg*m;)c>5F7XVxkumNm9h&;dthk$U% z4jqu?%?X4272uzN@PSa?l!8LSBD{t=aexm3f_%LBc>rE_IPV;Q!eM*lG>!QsF1QNF z`$=j=r4na<&gM*TC#Swl&nzx2udIIizP7&c(**&*zgfKc zH|#%LaGr~g_bpI?pDqYrFmHo!C`?Y1e~d95fxNt3j~>UJTtw(Y{+EB^0< z_bKR%D=z+|{U!VFVA21V>|d~dyM};WAcXgMARIUWOs(L&%okztpCexC@wqb!lny54 zx)o$hPY=}w_C~<2!EvWXJd|^Upx`i4dVEXfn_~ayD_XkY^|}+OUk%Vm5{gyU5?tmu zjYnyBt7JJi_nKh@K5b{d<{B0!84w6{i=qi*z2O>R?V-;ORS^|3R+L&~>3B57K-hD> zch7UEuk~@_vtL$!OStFV-y@zc*>ru%A>;D7b(^vBASl*^=JJp+pUSivRl-296{Ot6j zfG{_4bhnfQ&icxNr_du5Ec` zuGug3h13tUzkZ}eP~rc|NhBo>KGS%pp?knf;xV4}*}^q0ryUY?+d>91wrscGL5rAd znSqC3S{0Pb=cuE%gZqz6EUE>yELZUO8k$w)o-K`78>{c;P=E^1^ zHbna1C1u`uLdYF^VVbX~ei+ z`xq55SHR_PwZgTy@t9KlbdAHwmm;&enI-wk=n1=ZOg5#d>naI_eQJ1Q z+2?2zI*-NCukf}S58%R69GMy-zSfqVOc#nn&Rm`;`2Dh*bf;mnc4c2lp(A5nU-Q7Q z9&$YaA4j_7b9g1mXmU6(&3f`Aog`=`xMd-m=|_{P{LHDO4Ji-h)l-+C4sS4ow^$M% z&N#?-@V3>gN=q?ZEc+&cv;ICapPcV$j6cn(dN@dRhZB{XNMoFXyD)v*<<}LX_l;C4 zM5?Hz#ZT0(aYV_Cv*N(YYUK}~Pv*bY(W*8Y8{qR^$CA7A!s`EM`}WS&#&z9tWw_II zwC}|IF#~n&!7?g!M(ah)@Cr4|u0byDLhP)w6~zhVe?HfmT=9CtK1xz2HA?+<;|{P& zY~K@^0pl!-?(0N8DJ&eMVg-LBaon;P1vH2k`%dcoI?s&V{nqr=p|P=qRLsYa38 zqY%n8HC)qIDqh+F!Xx#699qqy4BDw*y_37()oYhx*Jcw;)4e5B*ctppr$IWNe#Kdn zFg4YEb#@hJU<>nzG9qYKuj-C$Nv=gaG$m=2hM@kmKkbTI-fScTiN7qO%$*s{n&T0o zYuOe~WX?XRuzG`g2(eL>koMUwH4j_=%RLj74h@Vq`Ey^%jftsdNa0U|Y*`--F@8mG wiP}L&fy}_VFmfvX#huAZ_ql?zO`$2=OB*ExxoKyUh3B4>TQ}w6Qg&GX06cLTY5)KL diff --git a/image/laurent.ppm b/image/laurent.ppm deleted file mode 100644 index a81b0dd..0000000 --- a/image/laurent.ppm +++ /dev/null @@ -1,421 +0,0 @@ -P6 -80 80 -255 -V^SELDAF@X\[CDFSTXQQSYYYOOOOOMVXSPRM>BAHLKSX[HNNRVULRNHNLHQNKUTJVTDPPDBAGEFLJKQOOUSPYVWfa^oiduoevpfvsjzwm|yl{xm{{`nn[ggcoony{s~€s}r~~w„}o~w˜¤ ” žƒˆ’” ª«—¡ ¢«ªš£ ’›˜™˜€Š‹s|y‚‰w€‰°¶¬£©Ÿ™ž˜’”‘wxzqqseeg^^^VVTSTOab]jlgac`^babfgY]^Y^ZW\XQWSLURMVSMWVHTTBNN@LLAKLJSRJNOCED777/-.;9:.21&,*$"!#!$"$"" &$%# &$$*(,207=;BHFGPMR^ZYjdduoiztl|ym}zl{xgvsm{{kyylxxmyylwyjuwkuwlvwp}vn}v‡“‘‚ŽŽ†’Š”–“ž’œ›š£¢š£ ™¢ŸŸ¨¥Œ–—~ˆŠŒ•œˆ‘šˆ‹€’•Œ ¢žžœ   š˜™—•–Љ‡qpkhh`xxpˆ’“‘“Ž™›˜šœ™‘Œ”ŽŠ‰}ƒs|ykvr]gfNXWGQP>HGDML?CD./1##%$$$! !%$+/..748E>@OHM\WYhcbqlhwrkwshtpfrpjvtlvujtsgqrgqrhrshrqhtprx‚ŽŒƒ˜¢¤œ¦¨—¡¢ž¨§–Ÿž™¢Ÿ–Ÿšœ¥¢…z‚…›¤«›¤«wyn€‚w€z|{w…„‚‰…„—“’›˜“Œ…Ї~š˜Œ­­¡¬¬¢¡¢šž˜›œ—›œ– ™š–”Ž‹‘†Œx~dnmU_^;DC5;;,22 !#   '!.'*624C>DPLR^Z\hdamicmldnmblk`jidnmlvunvxisrkwst€|‚ŽŽŒŽˆ’”—™™››¥¦¦¥¡ª§š£žž§¤‚‹Šx€‚¡ª¯¢«°MMA]]Scc[}zu|wwrnwrn|wq‡ƒx‰…y“œš‹ ž‘¡¡•§§««£««£««£¥¦ž £œ£¨¢¦¬¨™ŸƒŒ‰Xa`7@?+11 &&   !*#*5/8C=GRLP[Uenkhqnirogpmjspoxurxxluru~p|z‹‹q|~LW[LW[^gljtvƒŒŒ—“˜’• œ„Œ}…‡¥¨¥¨&$1/#:7.fa[lgag`Zrkc|uk‚zm„~n†nƒ€m†ƒr‹|•“†š˜Œ¥¢™¦£š¤¤œ¥¦ž¨«¤Ÿ¤ž…Іhnl@FF+11%++!"      %"+&,509B=DMHU^Yajgousrxvpvtouspvtoxur|{kwwƒŽtƒ-8>!,2/8?2<>)344>=ALHU`\dmju~}˜šš¢¥)%1-"HD9sldzsk`WPkbYbZMZQBb[HjdNpkUyt`zwdyvezvj…v‰‡{‘Ž…˜˜˜™“‡‰„egdEJF'+*#"!   - - - - - - - - - - - - #&$+$070C=KPL_d`mrnqvrrwstzxr{zpz|ƒŒ‘ˆDNX7AK2EB;<;6/0*$$"   - - - - - -     #.3-9>8FKEINHNSM`e_mrliokqzyrz}ƒŒ‘ˆNXbQ[eO\eDQYEPT3=<6?>DML',/%*--'.(H?6of]pf]WMCf\Pg^MmePkcLphQmgOlfPkfS[UEIE9.*!(%$!#"#"!    - - -  -  - $)#5:4CHB>C=493AF@^c]rxtsyyltvzƒˆy‚‹GQ[AKWER[FS[KVZKVXJTUDNMFONR[Z6;>49<:6+&">7/le]i`W`XMe[Og^MjbOh`KrlVqkUun\lfVHB695,<92/.)#"     -  - - - - - -   -$&!6;5>C=9>89>8FKEU[Wekiiqsu~ƒpy€OYcV`lUam>KT:GMDOSMWXKUVT\^chkJMRLOTmi^:6+?80le]kb[qh_jbUg`PumZqjW|ubzub~xhkg[<8/30)21,&'"  -   - - -  - - - - - -  &&$')&%'$&(%')&"$"$#("+0*.3-/4.=B5@;5lgapic}vnysgwqczsato\{vc{uewqeXTK-($&%! -    -  -  -  - - -  - -  """"$#%'&)+(&(%"'#&+'',&',&!&  3:3]d]msot}zƒŽ‡•blvIUafr€uƒŽBPY5BH3>B9CEX_eW\b8;BAAIMJA0-$=:3je_ojdrkc|uk€znyi{ueztd{wkgcZ;83    -  -       - - - -  - +-,352$&#$)%.3-382-2, #*#GNGdjft}z…Œ[eo5AMN\iYgr7CGHOUELRQ[]^hiEONFQM][\:97EDBed_roha_Sok`qmanj_}ynwui=:1        -  - -  - %&(*,+**(01,FGASTNTWNqtmsxrptsnsv]bf`gmMTZJTVYcbHSOKVPecd:97BA?ed_€}v|yp„€w~zoyuj„€wyvm30) -  -  - - - - - -  - - - - - -         !#%$++)./*893HICILCpsl|{‚†…~ƒ†|…|ƒ‰X`cS]^oyxalh]hbEEE**(DCAfe`|yryvm„€wƒvƒv‰…|{xq/,'    - - -   -  -   -&&$*)%34.?@8CF=^aZ{€z„‰…€††…Š†Ž‘cknhprˆ‘Žy„~vy'''"" NMIfeaeb]WTMfa[plcyul|wqolg"    - - - - - -    -  - - - %$671?@8IJBTWN|„‰…ˆŒ…Š…ŠŽhprr{z‰’xƒ}~‰ ##!A@@5Z\Qwzsmojrwsƒ‡†|‚€pvt€†‚}„|`j_ž©›z}tuxoyzr}~v}}uwˆ…~Ї€‡„†ƒ~rqm'&"  - -       ! -  '&!+*%00(<>3Z\QileRTOUZV[_^V\ZIOKkrkmtl^h]š¥—svkqtiuwlsujttjzzp~{t|uЇ‚ˆ…€xws)($   - - -   - - - - - - - - -  ($#($#'#""     )&!$#$$79.^`U€{€‚}jokbfe^baBGC\c\T\Q^i[«¶¦jmbloduwlsuhvvj~~r‚v…‚y€}v€}vwvq,+' - - -  -    - - -   --)(6003--/&'& "#"   - $#%%-.&=>6WXPƒ„~Ÿ¡œ ¥¡šž—›šciet{tfmeq{p®¹«KM@PREPREUWIGH:VWIdeWqrdtthzznwtk:70 -   - -  -  -  - -   - - - -    -%!;31@449--5'', $  - !#)+ -.&<=5WZS{}x¡¦¢¡¥¤™Ÿ¡§£bhd”›”\f^€Š©³ªacVbdW[]OUWI@A1DE5FG7IJ:MN@PPDWTK+(!   -  -  - - - -  -      - - - - -     $ 91/@44=//7)), #  - +.#-/")+ 45-ILEfhc~ƒ¥ª¦²¸¶°¶´ ¦¢~„€…‡fphz„|µ¿·gi\jl_ik]egYUXGZ]L[\LXYIJK=GG;RRH22*  -     -  -  -     - -    -    - - - - -  -   -''5,-5+,3)*(   *-$/1&#&:=4UXQlniotp‡Œˆ˜œ›«¯®¬²®²¸´¦¬¨…‹‡€Š‚°º²fh[oqduwjoqcceWhkZhiY_`P^_QYYMhh^LLD  !       - - - - - -    - - - - - - -  -    "%)## $'>?77:1ILETVQ_a\Y^Zjok€„ƒ…„…tzvx~ziok“š“ÂÌÄbeZptf|~qprdegYfhZgjYZ]LYZLZZNooe\\T 7,*1# )  -       - - - -          - -  @CIKFEGBFKG384+/.-2.2738=9@EAW\Xœ¡›±¸±Z]Tjmbx{pei[cgYim^oqcZ\NSUH[]Pnogjke34/%G32C)(C)(9!!)+& -  -   +.++&# - - -   -    -   -     - - $!& &+%162(-)BDA02/352130685EGBBD?XZU ¢¯´®Y\ShkbvypbeZfi^ptfvxk^`RPREWYNgh`jke<=8$G//I++S55R65B**?+,4&%   - -   '6,+@655-+!   -     -  -  - -  - -   -  -   $!_a^uwtY[XFHCGIDGIDDFALNI¢¤Ÿ´¶±W\U`f\ioeci]_bWnrdswibfXQTIUXMjkcef`JKFM55I++X::aEDM328#"- -  -&);--@21@44:...$#   - - -  - - -   -  -    - -  -  - - - $)% % ’”§©¤§©¤ ™‡ˆ‚noiZ[UWXR𛕱²¬INHPUNW\USYOSVMcf[gj_VZLPSHTWLgh`de_NOJ B-,S55\>>V:9H,+:" -  '0$&6'*9),C02E55F67?112&&'   -   - - -   - - - - - - -  - +-,687 -  -  - " ŒŽ‰‘”ˆ‹„”—Žœ——˜|}wgh`›œ–µ¶®CHDEJDGLEEKAHNDU[OU[OFL@GJ?LODY\SY\UJLG!  4 !Y?@[>@D')@$#A'&9!20!,!-$3)'=20F88H89I68I56K78K78E33<,,3##'    - - - - - - - - EA@^ZY*&%     270‡Šƒ„‡~‰Š‚‰‹€ŠŠ‚†††~wwm•±±§KPLHMIDICCHAHNDPVLKQE=C7>A6FI@LOHMPICEB!#  'XCBU==7?#"I-,F,+N64H51F40D50F85L>;QAAR@@P<=M79M79L68H45F23@..4$%*  - -  -   -  -   -.$%MCDuklULM   - - CI?ƒ†}‰Œ‚„y~€s{{oˆˆ|ŽŽ‚……yŒƒŒŠ~SYUNTPGNGFMEMUJOWLFL@=C7>D:IOEGLEEJC?A>%'$  M==O;<:""C'&I++G+(U96YA=WB=TA;Q?;R@dg\hl^y{n…‡yˆ‰{Ž€€‹~Œˆ}‡ƒwRXTOUQHNJIPIQXPNVKEKABHX>?Y<>W:;aEA_HBWCVA>\?A]?A[=?W:GODFLBTZP@E>@E>EJD=eFDZ86\:8bEAeIE]D?W?;YA=YD?YA=[?>]?A\>@Z<>Y:?Y<@W:>S6:R8;O58I04F-1C*.>(+<&)9''1#"/$ 0!4" >)(J01P37O13\=B†ikµ˜š|dd,-:+&?61KJFIKFPUNbh^ouihn`y€pvzkx{jƒ„r‚o„ƒq~{lyvgb_PheVJTLHRJJTLNXOMTLFMEDKCIPHKPIOTMEJCDIBKNGGID/1, -$PA@[;>Z:=\9=Y99aHDY=9S41[<9aB?aB?^@>\@=ZA=YA=]CB]CD^AC]@B^>A\  -  @.,XCBP86O32X<9`DC`DC[A@X@>WBAWBA\BA^BA^BA]A@_?@^>?`>?_=>];<];<\:9Y76T20M.+J(&F'$;A%$L0/U98W:=iMJz\Z›~x~y^@8nMDph¦“|oi[RKnjaprebfXv}m…Œ|…ˆw‚r~l…‚q‡„syvemlXoq\OUSOUSRXVX\[W[ZRWSOSROTPNPMKMJLNKOQNKMJUWTMOJ    *N<>^FF^EH[BEWACVBDXBD\BC]A@\@?\@?]??^>?]=>]=>[9:Y9:X97T53O0.I,(G)'F*'7<$"D,,K33O77Q99R::T:;X>=aEBgIGˆkgš{v\>6mLE…jaž‹…pc]TKDeaXegZ]aSqxh„ˆy„s}~n€nŠyŽ‹zxwefhSkmXRVWSWXVZ[[\^Z[]WYXSTVQSROQPKMLNNLSSQNNLXXVUUS(*' - "K==VFFL89UAB]GI\HJYEGVCEVCGWCE\BC]A>[?<[?<]?=\><[=;Y;9V75U75S55M10H,+E)&C)(C+)5! 4" 5!"5!":$&@*,G13N66S98V=9[??VCE\HJ\HJXEIWDHUDJVCE\BA\@;Z>:\><\><[=;Y;9U75Q52M10F,+B('?'%@(&>*)5%%1#"+((08$%<'&O77W=<`DAgKGX=6V93nQIf_„slWLFIB:QNEJL?JN@U\LY]NcfUghVro^}zgzyehgS`bMmoZ[[]\\^\\^\\^]]_[[[XXXTTRTTRTUPQRMWXSWXSWXRXYTGID    H>=RDCQAAUEEYFHYFHXEIWDHTDGTAC[B>[@9Y=9Z?8\@<]A=[?;Y=9V:7O62H.-A)'<'&:&%:&%:((5''2&&/ #**04 !4R::`HFpWS[B=K2+T92iNE‚kcpaZNE>KG>OOEGI7Z?8]B;_D=]B;Y@;V=8O73F.,=(%9%$8&$7%%5%&1%'3)*5)+3''7'(9)):&'5! T?bdN``^^^\__]ab]ab]]^Y[\WZ[UYZTWXPVWQWXPXYQXZOYZRZ]T%  -  A75SEBSDAUCAVBAVBAWACVBCVBCWBAZA<[B;ZA:X?8Y>5[@7ZB8Y@9U<7L40C.+@-)=+)9))7'(6((=134*+8,,8,,>./B22>*+@,+R=:lWT{fanYTU>8\E?zc]zg`MC:OKBYVMLNCNRDU[MPTEY\K_`NhgUyvcxub_^IUU=[]E]aHcd_ab\ab]cd^bc]_`Z\]W\]WabZ\]UYZRYZR[]R\^S\^SZ]T.3- -   ?61RDARC>UB>WB?WB?WB?WB?X@@X@>W@:Y@9X?8V=6W<3Y>5X@6V>4R;3I5.A,';($9'%8((>./D66=136**@22D65H88N<:O;:[FCkVSlgt_ZfQLVCUBX@4W?5U=3U>6L81B-(9&"1-1!"7'(>./@01J79D22B.-J52N96ZB>cKGzf_aMFWD=VE>gVO…vobUMPIAROHVVLPRGUYK\cS\`QdgVjkYzygƒ€msq\[[CY[CbeJaeJijbgh`gh`hiaef``a[]`Y^aZ]`Y\_X\_X]`Yad]bg`_d][`Z[_`IMP@ACFFF&"!% @64MB>RC>UB4W?5X@6V>4XA9Q:2G3,>+%5"*$#,7#$G13H32S;9^FBO62>% A*$^GAQ=6K:2VG@naY|riXOHMHBSSKWYNWZO\bT`gW_cTcfUop^ƒ€mˆƒoomV[YB\_DcgL`dIilehkdhkdhkdegbac^_a\ac^bgcbgc_cb\`_\`__ec`fd_ee\ae_djUX]]^b($%<34I?>QC@RC>TA=U@=W?;W?;X@6V>4X@6X@4W?3U?4O80H4-F3-C0,:(&/*&)>"!O30_C@_C?B&". P70W@8T@9K:2_RJ{pjpg`SNHNKDUUMUWLWZO[aS[bR^bSbeTtsaˆ…r‡‚nkiR\ZC_bGbfK]dEjlgjlgkmhkmjhjgdfcdfeeiheijeijaehZ_bZ_bchkjoriqtW^fcjt^bkadk&$'=79JABNBBOA>Q?=R?;S>;U=9V>:W?;U=9V>:U=9S<6T;4V>4W?3V>2R<1K5*G0(H4-L72I62C/.@+*<"!2=G(%F'$C$Q2-sVP‰ngmVN\HAQ@8k^Xvo`[UPMFPPHWXPPSHOUIRXJRYI]aRdgTyxfŠˆs„kgeN^\CbeJchJ^eFmolmoloqnoqpjnmgkjhlmlpqmqtnswkpvglrjnwqx€t{ƒqx‚X`m[cp`hs`gq#&/'&,C>DGACJ@AJ>>L<3V>2U=1S;/K5*F/'F2+J50J73J65J54O1/D%"K)'L*(G%#Q0+{ZU´–Ž …~y`YXE>YKBrgasldYTNROJQQIZ[SORGNTHOUGMTD^bSgjW€n‹v|hdbKa_FfiNejLcjKlqumrvotxpuykrxhoujqynu|ƒ}…~„’{ƒ~…•ˆ—y€mv‡XcwP[qbj}ahx47F&&0DAJA:AH=AH<5S?4R>3N:/I5*F2)F2+H4-I4/K63P86S53P.,V42Z86a@;lKFsRKbZ’wps\TQ@8dWOypifa[XUPWVQOPJZ]TRULSYMSYMMSE_cThkZ‡†tzzfb`Ib`GjjPilOinPfr€my‡st€Žr~Žt‘|‡›„£„¥{‡Ÿyƒœwƒs~šqšq|˜gu’N[}Zd‡\e„Z`zRTi-,<;5AF;O:7N96N;7N=6J;4I;2J<3G90D6-B4+D3+G4-K70M83O73M/-R31N/-O0-Z;6]@:fICy^W‰rjfTJ`RIqh_ojda`[\]WZ\WUWRY\UX[TVYPVYPVXM\^Plm]ƒ‚p{{ydfdMhfMmkRqmRihLu„™x‡šz‰žv…šo~•l{’n|–r€›qœn|™q~žs€ m|kz›gu˜`n‘N\ƒTb‰[eˆah…[]v>=O;5CD8BJ;@I9:J88L89L68I43M47P88T<:O:7M:6M;7K<7H;5E;2F<3D:1B8/A4,B3,E4-H5.J50L40H,+I++E'%E'%J-)K0)\A:xaY‚pfkZRi\Tvmfmjc_`Z]^Y[]XTYSX]WX[TWZSWXPVXM]]Qkl^…ƒt‘~{xefdOkfPplSrlTkeK~¤Ž£~¤z‰ tƒšo}—l|–l|–fu’fu’l{šn}œhw˜cr“`oYgŠRaˆQ_„Xb…bkˆ_c|QPb84B?5>C7;F67H66J65J54K31M34O75T<:O:7L95L:6J;6G:4D93D93B92B71B5/B3.E3/F3-F3/G2/I/.H,+D(%F*'J.*L3.bKCmd€ogtf]xne}vnmjc_`X_`Z]`YX]WZ_YZ]VZ]V[\TXZO__Smn`ˆ†w’‘{xegePlgQqlVqlVjfM€Ž¨€¦§}‹¥zˆ¢v„Ÿq›o™kz—gv“ix—ix—cr“`o\kŒUd…YiP`„R_]fƒ]c{\]q75B:3;?4:C34G55J54K31K3/M40N51S98O75L74L95K95G83D71B71A81@70@5/B41C41E31E31E10D,*B*(A)%H0,V>:fOIvb[‚qiƒul€sj…|sƒ|rnkbbc[de_^aZ\a[\a[]`Y^aZ`aY\^SccYrrfŠˆ{“‘‚|yhjgTojVrmYrmYkfP†–°„”­‚’¬€ª|Œ¦w†£q€m|™pœix•gv•hw–et“cr‘]l‹Ra‚\lTd†S`‚Yd€\d{cfy<;I5/9=28B36G55J52K3/M4/P40N50Q84M53K63K84J84F72C52A62@72@72A62C54C54D44D44G55G32J52M85XC>r_Y‘~x—†‰zsˆ{s…|sŠƒy‚~snkbfh]hia_bY`c\`c\^aZad]de]`bWff\uuiŒŠ}•“„|mnkZqn]ro\sn[niUŠ™¶ˆ˜²„“°­~ªyˆ¥ržn}šn}šfu’fu”ix—ix—gv•_nQb€Wg‰[kXgˆXcah‚fkHJY52=;19@46H66J52L40N5.P5.O4-O62L21K31K63K84G51B41@51A62@72A64A64C55C55E77H88Q?=VD@\JFfTPrm¨™’ª—ƒz†}v…~t‰…|‚vnndjlakldad[cf_ad]`c\dg`gh`bc[gg]wwkŠˆ|•“†‚~rro`sparo^sm]ojW†—µ…–²ƒ”²€‘¯~­z‹©v‡¥s„¢m~šfw“fu’ix•hw”gv“bqŽWh†Rb„aq“\kŒR`}`jƒelZ]n>24?35C79F::L>;LA;QF@MD=RIDohb|xzwrzyt~}xŠ‹…Š‹…xysrsktumnogorkknghkdmpiopjgh`ijby{pw„ƒuusguqfpl`pl`nk\‚•³„—µ‡˜¶ƒ”²~­yЍwˆ¤x‰¥tƒ m|™hw”fu’ftdrdrgv“TeƒUf„`oŽWe‚Xd~`k[bughz75B=6>D8:H64H4-L4*O4)N2'K0)I0+J1,J3-H3.G4.F40D50E63E74E76D65?11<..@22F87E:4OE7B=7KHCsrn££¡ÌÎÍÒÖÕµ»¹–š™‹Ž…Š†€‚}‚}‚ƒ~|~{npmnpmz|yyywlmhmni{|vˆ‡‚ˆŒŒ„||rtqhwuiwuipnb†—³„•±’®€‘­‚‘®€¬{Чxˆ¢y‡¢uƒžp~™p{—lw“grŽdo‹aoŠesŽUc~\j…iw’[f‚V`{el†]bxkl~A?J:3:L@BL:6I5.Q9/Q6+T92Q6/K2+H/(G0(H4-L81M:4J71I73K95N<8M;9I:7K97L=8K>6J@7OF?`[U•”ÔÔÒÙÝÞ®´´¶»¾ÞæèÚßâÍÒÕµ¹º„ˆ‡wyxxzyqsr€~€sutwww€€~€{yztˆ‰ƒˆŽŽ†€€vwwmxxnxxltth†—³ƒ”®’®’¬‚‘®€ª}§zФy‡¢w… u€œr}™oz–iten‹bnˆfrŒXf€Q_ydralˆT_{_i„X`wruˆVUcD>HG<@K<9L92R:0V;2S8/Q6-M4-L3,J3+K4,M6.L81O;4N:3O;4Q>7R?9R?9S@:UD=ZLCRH>|sj¾¹³ãâÞäæå×ÛÞ°¸»§®´ÏÖÜÑØÞÓÛÞåêîØÜßµ¶¸‘’”€„|}vw{z{}……‡wwutupˆ‰„Šˆ……}{{qzzn{{oyym†–°…•®…•¯ƒ“¬ƒ‘¬©€Ž¨§{‡¡z† x‚t~™q{–mw’jqdn‰fp‰dpˆP\v]h„iw’]h„Ze[e~diij|UR]C:?I;:N=6O80W?5Q9/P8,N6,L4*K3)M5+N6,O80T=5R;3Q:2P<3S?6UA8ZF=^LB^PE„wn¶¬£ÔÍÇÍÌÊØÙÛáæê½Ä̗ ©´½ÆÓÜåÑØàÒÖßßâéÝÞãÛÜàÀÁƪ«°Ž”€„€€‚€€€}}}}}{‡ˆƒŽ‰‘‰‰Š‚€‚w|~q|~q}q‡—°‡—®†–¯…•®„’¬‚ª©©|ˆ¢|ˆ¢z„Ÿušt{—ry•nu‘jqfn…lwWazUa{ju“cqŽYd‚^hƒX^xor…ecqJCJH<>N<8N:3T>3U=1Q9-M5)I1%I1%L4(Q9/T<0V>4T<0R:.S=0W?3[E8dNAjVK‰ylŒv›‘ˆÊýÊÉÇÖ×ÙÝâèÃÌՖ ª—¡«ÇÏÜÜäïÕÜæÔØáÍÐ×ÚÚâÚÚâÙÙáËËÓ§¨­‡†‹ƒƒ…†††}}{††„Žˆ’“‘††ˆ}€‚usƒu‹›²ˆ™­†•¬…”«†•¬…”«…‘©ƒ§‹¦€Š¥~…¡x›v{˜v{˜sx–ot‘ekƒlt‹cm†S_y^i‡hs‘]h†^g„[b~gi~ol}d]ePDHL=:R?9Q:2U=3R:.N6*K3'M2'P6)U:/X>1Y>3X>1Y?2YB4_E8cL>oXJycU†th˜Š–‰¿¸²½¼ºßàäÞåí¼ÅΘ¢®‹—£«´ÃÖÞëÞäðÐÔßÏÒÛÝàéÍÍ×ÀÀÈÔÔÜâãèÂÁǛšŸ‰‰‹}}{††„Žˆ”••—ŒŒŽƒƒ…xƒu„†xŽŸ³‰š®…”©…”©ˆ—®ˆ—®†’ª¥„Ž©ƒ¨€‡£x›v{˜w|™uz˜qv“hn†jr‰qx’Yc~T_}it’do^g†gnŠ[`vspzt~XLPM==XE?N:1Q9/Q9-P8,P8,R8+S9,T:-U;.Z@3[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

3bfTlS&6ZsSWA|o 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 diff --git a/image/laurent2.pbm b/image/laurent2.pbm deleted file mode 100644 index f1f06d96e979801e8189321a0385404560c21bcd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 969 zcmX}qO>9h26bJD0W_(mt%&Nj>hD?z(j71R03YLYLv zt6U1kwv1+#YX+Os2Yw|Sy^Yel!j$Tv%@F<;kk zDMrp*aiJqA@pp4hExA`%kVWg>F>0T0UzWJr^xdq#=+#K%YQBn9Lmw(fp~9AkEj-i- z>=}iq+cpsZ`nc!yp=ct5;S|*Q>$E7tEr(k3DKHGIV=a$RJ9j_J+ZCmNQ!do0QiF?p z_oWoFCzSfYVd(cS}R zu>?1%GmGLt7(6c>2{`dEXK7~w)~z0`+j&eJY}AUUf&MF6P4%$eJ<>{MuOrj;}fmE{_6+AE-4*&Y@B{>_s6W@WtM%K;z`^P)HM=T@p@Ocq8S<&SKjal!g xNi;9@VnDiYSw`opRMz^!*~q^B1V5MH3T~kbc*&}+`IVMli%CS+WCGqB@ei9WK7s%M diff --git a/image/laurent2.pgm b/image/laurent2.pgm deleted file mode 100644 index ff10d8d..0000000 --- a/image/laurent2.pgm +++ /dev/null @@ -1,4 +0,0 @@ -P5 -74 96 -255 -ûš†‚‡œÐÜÚǪŸ¡«µ­£’|ZKJMJK4# "VŒ‹wZ'!"Fm|xiXPPOVbdieqopzƒˆt`Xû¢—¼ÈÄ¿±š¨¬¨¦“}aWNMII2O‰ŽsV!Ji}ynh]UOOLH9! 0ITF6û­žž›š£µ¾»®Ÿ§£«ª£peUMLKJ2NŠ’pQ!>]g_dgaYNE<1$!"#% $:JJBû²¨¥¢ ¤­¼µ¯­² žŸ–‚zYRLJJ2E|R<  !.QROBERNMSUF;88:3,.421<û´ª¨¦£©±´¶»±¬£ž˜Ÿ¦¨•eXOJJ4:B+!%#".MOF('4CUdrlaXXURHFJM@Bü³¬­§ ¥±°´³¶·½¬½Ï×̼~jUII3#"'!#"&+( $( =SN>&$-DWftxumkldWYYYYXûº´¯¨¨©¬ªµµÁ½¹¿ÍÖÚ̳„wVGF- ! "*'(($+$(OhaWA8>T\gpzyuqaVV[\[`ûø°ª¬°©¦±·«¶ÀÉËÁ¸´˜‚qTG,''" "#! $%$)Otwpaex‡Š€|ƒ‡|l[PL]vj_kû¿²ª¬¨§£¸ÑÔ°ÇÖÖ²·«–lhP:"',+! &-Wnjhw‘¡¢—”‘y[C<5Tr{wxû¼¬¦ª­´µ××Õ³Ç×ÕÄ»º¤‡]E3$#'$"2SV^t‰””Š‘’ˆaH<-5I`rnúº§¡©³º¸Äʵ«²¾ÉÁ«€X@32* 1Nhrskjjlx…€gNB4**CSXû³£œ¢®¼º±œ˜–›«Áµ‹^G=2$+?jk^TUa^RX`TL;5-6]^pú­ž–ž¶ËǶœ”˜£²´›yS?/$ISYEAHOMKHTZaE;?Xoouú±¤š§ÁÈÀ¤‘£­¡ª¨š]<+@UKCEC=:XŠÀ·°¿²›¢¿Ç½²·ù¨¡¬®®µ¸¸¶³­¦1 # ,Z˜°±«¡¦‘²Äº¯¥¢§ù¥Ÿ¥•›®¸¹´­'&"$&''#!WŸ™ •‹zV®ÃŸ§¨—™øž•š“ˆ›¸Çɹ¡%$*23/.$)_‘¡‰…kQ¤¹„Ž£‰”ù˜—œ¡°¾ÉÉ¿µ¤0&)(+(&353471$()'+&+e«°¡–g<–ngv|ˆ÷Ž•¨²¶¹·¯¦œ˜—:!,7=BBFED?E41897><7750(=~§¯¯®m,Wpxtzuy÷‚Š¢µÇÍÎÆ±Ž‘ŸT$%!.@IGDCBABKRSUC4:@C=4122452 6n‚¥«œa)Xs|{wø…†œµÌÚáØÇ—ž±DWMkiTA:3.38?GS\U9BD:/("!#&-<8!(Q{†¶¹¢F3v‹{q€÷Ž…“¬ËÜáÝǨ°Æ¬/qw}aK\O4'%&1’‰€‚÷Š„”§¼ÍÓÐÁ½ÂÔ¸JЉ~w\bH$*>RjtVG9"(:LC2qš®·²Ži7* ,,ANU0_´­Åȵ¡±À @G~€u€ŒŽ÷yr}—¦´¹¾¹´»¾­T5=" f‘‘’‘ˆiN<205Bet†‡`ID7%%$(+6HPSV3'˜ÊÉÊɼ§¡­{0Hof\|…÷zp}¯³µ´®¸¼·š}EP+! l•”›š“„pZKGEJex}‡dKKE6++08@FKTX95µÃ»·µ˜§‘U+Lq`^€ot÷vi‚š¤ž–§¹» ‚ŠUob+"q•—¡ ”qh_YVdtx€…”nPKND:239?CLRZ:>ÆÉ½©«…ƒ¤ŒS)FcSMp{rp÷j_w”™Š„‹«¶¬™x{x9*|™šœ›–‡vofcgokx‚‰•pQHPE>;6:=@KVZ=3OÌzp‰€V*H`NEfZFO÷^\€‘€œº¹¡“¨«œgN}™ž›—’‹smghkdey‚‰mRGJC9;=;=@MX\HFuÉ»˜¢’…„ouR)E_]YR<5Oöno˜–‡‹ª¼¶§£´²¦†MY¤¡Ÿ˜”‹ƒsqsrne\]szƒkPGG?68EHKRY_RTXOUZ_q ŽcE)Oou{|ofnõ„twvqm}Š—›’–š•žs£ šŸ—†{xuqnbYNj~wlXIDLL4;AHLNTX`Oddabrty”†aB0Zvwla_myõuelojiqƒ“˜•›££œš°¤œŸ—Š‡ƒ€wtqf][SO2?NHF<;6@EINPUYa`†zmfsА™“v_B7NZpahlyõoajmjnt‡’—Ÿ®²­›}Š‚pž˜“‘‰…xslfhUB3+;@-'+EJuÍΨ’…†õvljafp{ˆ’š¨±¦‰oYUI%E“–‘“•”’}xvwxmeUH/.%'10($%):B>>JTbol…Uf€echrj]Y[W_ZK?JUHLRóhZX^grz‚ˆ‘Š„Œ¥©¢z§Õ‹–•Œ‰„vj[^gcXWH8100:B?CDHVcgeyji{v~n_\UQPTiiOA8AJFIRókYZ]hlnry~xsƒ²ÂËÚÞל’Š„~spkdd^\QPKB:578==B@IVfgbnsk†yƒs[IGJJLQA0*2@B@CQójZ]deddjorv’¶ÑÔÖÝÆÑѧˆ{unhki]RHB@<1+).6;:9@N[njZUbqypgfnQ;>RCD9.-5NLAALófZ_a_\]go–ÐàÞÜÅØØ¬À͹†‹…{khafe`H785.&#"&,100>R]eVajkhfqUGcSBK\OD918?QK;@Qó]T]YZZa~ÄáÝÙÕËÂÓ̘ Ä¸Š‚|th`VXb^KB<583-,))*,2>O08=VgktX3*H`VF@:<359@MJ:8FòWS[\_f’ÛáÝÛ×ÑÂÀÀ¾™…¶°‘yne_VQZZWH=FM<5531./2QE\gSUsx‹Žb78IQgL2226::AC=7=\óUV\bo­ääáÚÓÌŸ«¶À¤}¢ª{th_\WMJRRF@GK9/463/3?¢¸¾»«†Œ}ZhjICDFk^A@B@7<=9:?>jôXXap»çåß×ÏÇÀ­˜– ®¯ƒ ªpf`XRJCBFDAA?6-.43477'/7;:NVgöcgÂëçÔ¯’†}~‹“““”‹”†ng­€b\VMHFE<:9873239FNYwŽ“—§«º½©ˆ‹dKGUdiV,1>/399?V\dø…ÊëèÜÎÃý©’ƒus‡ŠŒ…‹•em˜¥fYTLGDD><88=:8:@HQYk‰‡‘…•¡«­®½žs``^`kV01:501:H[V_ùíîëäÝÎÃÀÆÅ¼°Ÿvm~ww‘Œk{˜•WQKGC?<1789:;<@HTYft‡…~•›¡›©­†}pRTR>13;635?O_`pûïíéãÜÕÚÚ×ϵ•”˜t€kz‚“”k|ŒRIDB?;9758:9>ENS^tf}€x{”“’“£Ÿ}YKJ80$#+1:;=@d„–üïíéâããÛÚÛÖÍÀ°—{„m]bl|Œ…bu‹JC?;984666:?HNS[z_vu{l‡ŠŠ’Å~_I+*%&E?89frûîìçåãÜ×ÔÑÍÍÊÉ¿šzuc_myzjXr„zO?<975447:>EMPalghr‰oq‹‡r’‰¬°a>,+,&,6J=63:AJûíéåãßÙ×ÕÖÓË嫐…sagu|€UXp{}O;9753367=DLN]`p\r~€tf}†n…†–¯‹6//8OûëåäáÞÙÔÒ̹°²ª›…rytchqz€kNXnz{V5778579=CKD`]oZmq„vhnntƒ…£žl:<:GTMRP>00:LûéåãáÝ×ÔÎÈÆÀ¸¶­¢‰€lvrbgn|}XO\nuv^2469=>AEK5qbg_el‡wic{qfs™Ÿ’R;:RZEEL9-1AMûèåãàÜÕÐÉþ¹¸¹´¨‘€itpcgr}pTR_jmog;17:=ADF%xo^h^nƒtlbps\{h…•‘w41HWB>B1/UkúæàÝÙÔÏËÈÅÅÂÀ³µ¨‡‹’†ywprfdnqha[X[]^]^dhO7Gƒu_j^ir}mabqOsfsu‰€“TSIC?53=>ISúãßÚ×ÓÍÉÅÀ¿À½¹µ°ŽŒ|yvq^ckmea]ZZ[\]agnw„}`dddpm`bnQncir„y…ŠEC>FJXuja\úàÝÙÖÕÏÉÅÁ¾¿º¼º°«Ÿ”•Ž|wyc]ckjcb^][[_`gnw‚|‚aak`myv``h[gb^tyq~¢k^p…ƒ{kc[|ûÞÙØÖÕÓÏÊÈÂþº»¼¸¤¢˜”“‹ywwZ]ekha`^`^agow~‚u‚c]h\mkya^dcabXtqk{•³£¬š`HROi˜úÞØÕÓÑÎÌËÌÊÈÄÄÁÀ¬‰“šŒ‰tykX`hhd`_`dhltt€|o€ƒa]p^m_yc]ag\[Zrpg{Œ¡¨˜sTQb\šúÛØÖÖÔÑÎÍÍĽ®¨¦®ntƒ‹Ž’Œ„qy\[ddp_]dgkosvxp‚b]p\l^ud^_iWOhhd_}‡’›}i^]v“šúÛÙØ×ÖÕÏÆÂ¨¢«›‰†udS_zŒ‘rqX^hmi`ebjptv}rs€b\q]hhoh]^fTKh_a\‚‹–›w†XnŒ’˜ûÚØØÖÕÑÁ­­«ª¨©§‰~eXp|~…}ubZhhudnlmsswxpw}`[ndcwnk]\aNC_XR`€“Žzn‘“™úÛØ×ÕѾ°¹À»¸²¬¤¤§£š‚wgrus{|vX_mtjpwttvxtqw~{^Zjj`pqn^\]Kclffpˆu†Ž–—øÂÃÉÌÏÐËÇÁ¼¹¶²¯®§££šœ“Œ‰ƒzazToYi`r~z~|txxxxmXYikTe^OdUHL6?Zhgft}rdfŠŽ’“’øÐÌÊÈÆÇËËÆÁ¼¶°®®©¤©›–…|z‚‹„t`pc`cchsy{|uxvwwkVYikTaeNWXGB3N`chrnd_]t‘’šš•úÕÎÍËÉÿÀÅÇÆ¿µ­ª§¥¨¥¢”†}y|†…cilg[i_jtwzwwuwueVXhmS`gSLV;3?Ufllb[Y\^…“——“ŠúÑÎÍÍÉÇž»¸¹¿Á¼±¦¥¦žŸŸœ˜’‰…‡ƒWtoXi__lrvvwsvtaTWjoS^dTLK+2JMST`XVX^kŒŽ‘”•…ùÎËËÌËÊÆÃ¾»³±®²·´ª¡•Œ„‚…{eyYbg^bimswqus^SWkpQ\`QKD*BIECIWTTZb|Žˆ“„}ùÑËÉÉÉÊÆÂ½¼¶²¨©¬¯±¨˜Š‰Š‹ƒ}{{€zw]Yi`]ahmtqtnZRWmqQX]MK<:D;:DPRR\gj‹ŠŒ‰|tùÒÏËÈÅÆÃ¿½»¸²¬ª¥©¬°¢š£ž™›’ƒ~„}hVja^]chpqrlWRXmqQWZKK>@58>KQQVWRvŽ‰†tk \ No newline at end of file diff --git a/image/laurent2.png b/image/laurent2.png deleted file mode 100644 index 043c17b2a88526b8599f1ba2162754c4b4ef0507..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6127 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 diff --git a/image/laurent2.ppm b/image/laurent2.ppm deleted file mode 100644 index c4e0341..0000000 --- a/image/laurent2.ppm +++ /dev/null @@ -1,4 +0,0 @@ -P6 -74 96 -255 -ìððz•z•z•z•z•ÅËÌÅËÌÅËÌÅË̤°©¤°©z•‡œt‡œt‡œt‡œtz•z•MhZMhZMhZeTOeTOeTO    eTOz•z•{mieTO                 7<.MhZz•z•MhZMhZMhZMhZMhZMhZMhZMhZMhZ{mi{mi{mi{mi{miz•z•MhZMhZeTOìð𤰩z•z•z•z•¤°©ÅËÌÅË̤°©‡œt‡œt‡œt‡œt‡œt¤°©¤°©z•z•MhZMhZMhZeTOeTOeTO    7<.z•z•{mieTO                 MhZMhZz•z•MhZMhZMhZMhZMhZMhZMhZMhZ7<.     7<.MhZMhZ7<.7<.ìð𤰩z•z•z•z•‡œt¤°©¤°©¤°©‡œt‡œt¤°©‡œt¤°©¤°©z•z•MhZMhZMhZMhZeTOeTOeTOT+"   7<.z•z•{mieTO                 7<.MhZMhZMhZMhZMhZMhZMhZMhZ7<.7<.7<.       7<.MhZMhZ7<.ìð𤰩¤°©¤°©¤°©z•¤°©¤°©¤°©¤°©¤°©¤°©¤°©¤°©‡œt‡œt‡œtz•z•MhZMhZMhZeTOeTOeTO    7<.z•z•eTOeTO                 7<.MhZMhZMhZ7<.7<.MhZMhZMhZMhZMhZ7<.7<.7<.7<.7<.7<.7<.7<.7<.7<.7<.7<.ìð𤰩¤°©¤°©¤°©¤°©¤°©¤°©¤°©¤°©¤°©¤°©¤°©¤°©‡œt‡œtz•¤°©¤°©z•MhZMhZeTOeTOeTO7<.   7<.7<.                    7<.MhZMhZ7<.7<.7<.7<.7<.MhZMhZMhZMhZMhZMhZMhZMhZMhZMhZ7<.MhZMhZ7<.7<.ìð𤰩¤°©¤°©¤°©z•‡œt¤°©¤°©¤°©¤°©¤°©¤°©¤°©¤°©¤°©ÅËÌÅËÌÅË̤°©z•MhZeTOeTOeTO7<.                         7<.MhZMhZ7<.  7<.7<.MhZMhZMhZz•MhZMhZMhZMhZMhZMhZMhZMhZMhZMhZMhZìð𤰩¤°©¤°©¤°©¤°©¤°©¤°©¤°©¤°©¤°©¤°©¤°©¤°©¤°©ÅËÌÅËÌÅËÌÅË̤°©z•MhZeTOeTOeTO                          MhZMhZMhZMhZ7<.7<.7<.MhZMhZMhZMhZz•z•z•MhZMhZMhZMhZMhZMhZMhZMhZMhZìð𤰩¤°©‡œt‡œt‡œt‡œt¤°©¤°©¤°©¤°©¤°©¤°©ÅËÌÅËÌÅËÌÅË̤°©¤°©¤°©z•MhZeTOeTO                           7<.MhZMhZMhZMhZMhZMhZz•z•z•z•z•z•z•MhZMhZMhZMhZMhZMhZMhZMhZMhZìðð‡œt‡œt‡œt‡œt‡œt‡œt‡œt¤°©ÅËÌÅË̤°©ÅËÌÅËÌÅËÌÅË̤°©¤°©¤°©z•MhZMhZeTOeTO                            MhZMhZMhZMhZMhZz•¤°©¤°©z•z•z•z•z•MhZ7<.7<.7<.MhZMhZz•MhZz•ìðð‡œt‡œt‡œt‡œt‡œt‡œt¤°©ÅËÌÅËÌÅË̤°©ÅËÌÅËÌÅËÌÅË̤°©¤°©¤°©z•MhZ7<.7<.                             7<.MhZMhZMhZMhZz•z•z•z•z•z•z•z•MhZMhZ7<.7<.7<.MhZMhZXhDXhDìðð‡œt‡œt‡œt‡œt‡œt‡œt¤°©ÅËÌÅË̤°©z•¤°©¤°©¤°©ÅË̤°©¤°©z•MhZ7<.7<.7<.                              7<.MhZMhZMhZMhZMhZMhZMhZMhZz•z•z•MhZMhZ7<.7<.7<.7<.7<.XhDMhZìðð‡œt‡œt‡œt‡œt‡œt¤°©¤°©¤°©z•z•z•z•¤°©¤°©¤°©¤°©z•MhZ7<.7<.T+"                                7<.MhZMhZMhZMhZMhZMhZMhZMhZMhZMhZMhZMhZ7<.7<.7<.7<.XhDXhDXhDìðð‡œt‡œt‡œt‡œt‡œtÅËÌÅË̤°©‡œtz•z•z•z•¤°©¤°©z•z•eTO7<.T+"                                 7<.MhZMhZ7<.7<.7<.MhZMhZMhZMhZMhZMhZMhZ7<.7<.7<.MhZXhDXhDXhDìðð‡œt‡œt‡œt‡œt¤°©¤°©¤°©¤°©z•¤°©¤°©z•‡œt‡œt‡œtz•eTO7<.                                    7<.MhZMhZ7<.7<.7<.7<.7<.7<.MhZMhZMhZ7<.MhZMhZMhZ‡œt‡œtXhDìð𤰩‡œt‡œt‡œt¤°©¤°©‡œtz•¤°©¤°©¤°©¤°©‡œt‡œt‡œtXhDeTO                                      XhD‡œtMhZMhZ7<.7<.7<.7<.7<.7<.MhZ7<.MhZMhZMhZz•‡œt‡œtìðð‡œt‡œt‡œt‡œt¤°©¤°©z•z•¤°©¤°©¤°©z•‡œt‡œtXhD7<.7<.                                      7<.XhDMhZMhZMhZMhZMhZMhZ7<.7<.eTO7<.MhZMhZMhZMhZMhZMhZìðð‡œt‡œt‡œt‡œt¤°©¤°©z•z•XhDz•XhDXhDXhDXhDeTO7<.                                        7<.7<.MhZMhZMhZMhZMhZ7<.7<.eTO7<.MhZMhZMhZMhZMhZMhZìðð‡œt‡œt‡œt‡œt‡œt‡œtz•z•XhDXhDXhDXhDXhDXhD7<.                                          7<.MhZ7<.7<.7<.MhZ7<.7<.eTO7<.MhZMhZMhZz•z•XhDìð𤰩‡œt‡œt‡œt‡œt‡œtz•z•XhDXhDXhDXhDXhDeTO7<.7<.                                         7<.7<.7<.7<.7<.MhZMhZMhZXhD7<.MhZMhZMhZz•z•z•ìð𤰩¤°©‡œt‡œt‡œt‡œtz•z•z•‡œtz•z•XhD7<.7<.                                          7<.7<.7<.7<.7<.MhZMhZMhZMhZ7<.MhZMhZMhZz•z•MhZìð𤰩¤°©‡œt‡œt‡œt‡œtz•‡œt‡œtz•‡œtz•{mi7<.                                            7<.7<.MhZMhZMhZMhZMhZXhD7<.MhZMhZMhZMhZMhZMhZìð𤰩‡œt‡œt‡œt‡œt‡œt‡œt¤°©¤°©z•z•z•eTO                                             7<.MhZMhZMhZMhZMhZMhZXhDXhDMhZMhZMhZMhZMhZMhZìð𤰩‡œt¤°©¤°©z•‡œt‡œt¤°©z•z•z•z•7<.                                             MhZXhDXhDz•XhDXhDXhD‡œtXhDMhZMhZ7<.{mi¤°©¤°©ìð𤰩¤°©¤°©¤°©¤°©¤°©¤°©¤°©‡œtz•z•z•7<.                                            7<.MhZMhZz•¤°©‡œt‡œt‡œt‡œtXhDMhZ{mi²‹wÅËÌÅËÌÅËÌìðð‡œt‡œt¤°©¤°©¤°©¤°©ÅË̤°©¤°©¤°©¤°©¤°©eTO                                            7<.XhDz•¤°©ÅË̤°©ÅËÌÅË̪“vXhDXhD²‹wÅËÌÅËÌÅËÌÅËÌìðð‡œt‡œt‡œt¤°©¤°©¤°©ÅËÌÅË̤°©¤°©¤°©¤°©7<.                                            7<.XhDª“vÅËÌÅË̲‹w²‹wÅË̲‹wª“vª“v²‹wÅË̲‹w²‹w²‹wìðð‡œt‡œt‡œt¤°©¤°©¤°©¤°©¤°©¤°©¤°©¤°©¤°©                                             7<.eTOª“v²‹w²‹w²‹w²‹w²‹w²‹w¤°©ÅË̲‹wª“v²‹w²‹w²‹wìðð‡œt‡œt‡œt‡œt‡œtz•¤°©¤°©¤°©¤°©¤°©z•                         T+"T+"T+"T+"                 eTO²‹w²‹w²‹w²‹w²‹w²‹weTOª“v¤°©‡œtª“vª“vª“vª“vìðð‡œt‡œt‡œt‡œt‡œtz•¤°©ÅËÌÅËÌÅË̤°©¤°©                      T+"T+"T+"T+"T+"T+"T+"                  eTO²‹w²‹w²‹wª“v€N>eTOª“v¤°©z•z•ª“vª“vª“vìðð‡œt‡œt‡œt‡œt‡œt¤°©¤°©ÅËÌÅË̤°©¤°©¤°©7<.                T+"T+"T+"  T+"T+"T+"T+"T+"T+"T+"T+"T+"T+"T+"T+"             eTO²‹w²‹wª“vª“v€N>7<.z•z•MhZMhZXhD‡œt‡œtìðð‡œtz•‡œt¤°©¤°©¤°©¤°©¤°©‡œtz•z•z•7<.             T+"T+"T+"T+"T+"€N>T+"T+"T+"€N>T+"T+"T+"T+"T+"T+"T+"T+"T+"T+"T+"T+"          7<.ª“v²‹wª“vª“vª“v{mi MhZMhZz•MhZ‡œtXhDXhDìðð‡œtz•z•¤°©ÅËÌÅËÌÅËÌÅË̤°©‡œt‡œtz•eTO           T+"€N>€N>€N>€N>T+"T+"T+"€N>€N>€N>€N>€N>T+"T+"€N>€N>T+"T+"T+"T+"T+"T+"T+"T+"        7<.XhD‡œtª“vª“vª“v‡œtXhD7<.MhZMhZz•z•‡œt‡œtXhDìðð‡œt‡œtz•¤°©ÅËÌÅËÌìððÅËÌÅËÌz•z•¤°©z•       T+"€N>eTO€N>€N>€N>€N>T+"T+"T+"T+"T+"T+"€N>€N>€N>€N>T+"€N>€N>T+"T+"T+"T+"T+"T+"T+"T+"T+"T+"       XhDª“v‡œtª“vª“vª“vz•7<.7<.MhZz•z•‡œtXhDz•z•ìðð‡œt‡œt‡œt‡œtÅËÌÅËÌìððÅËÌÅË̤°©¤°©ÅË̤°©      T+"ª“vª“vª“v²‹w€N>€N>€N>€N>T+"T+"T+"T+"T+"T+"€N>€N>€N>€N>€N>T+"T+"T+"    T+"T+"T+"€N>T+"     7<.XhDª“vª“vª“v²‹wª“vz•7<.7<.z•z•z•z•‡œt‡œt‡œtìðð‡œt‡œt‡œtz•¤°©ÅËÌÅËÌÅËÌÅË̤°©ÅËÌÅË̤°©      eTOª“vª“vª“v²‹w€N>€N>T+"     T+"T+"€N>€N>€N>€N>€N>T+"T+"      T+"T+"€N>T+"    7<.XhD‡œtª“vª“vÅË̲‹wª“vXhD7<.7<.z•z•z•‡œt‡œt‡œtXhDìððz•z•‡œtz•¤°©¤°©¤°©¤°©ÅË̤°©ÅËÌÅËÌÅËÌ      eTOª“vª“vª“v²‹w€N>T+"eTO     T+"€N>€N>²‹w²‹w€N>€N>T+"T+"     T+"T+"T+"€N>€N>    XhDª“v¤°©ÅËÌÅË̲‹wÅË̪“vª“v7<.7<.‡œt‡œt‡œt‡œt‡œt‡œt‡œtìððz•XhDz•z•¤°©¤°©¤°©ÅËÌÅË̤°©¤°©ÅËÌÅËÌeTOT+"T+"   eTOª“v²‹w²‹w²‹w²‹w€N>€N>T+"  T+"T+"T+"T+"€N>²‹w²‹w€N>€N>T+"T+"     T+"T+"T+"€N>€N>T+"  eTO¤°©ª“vÅËÌÅË̲‹w²‹w²‹wÅË̤°©7<.7<.‡œt‡œtXhD‡œt‡œt‡œt‡œtìððz•XhDz•z•¤°©¤°©¤°©¤°©¤°©¤°©¤°©¤°©¤°©eTOT+"T+"   €N>ª“vª“v²‹wª“v²‹wª“v€N>€N>T+"T+"T+"T+"T+"€N>€N>²‹w²‹w€N>€N>€N>T+"T+"T+"T+"T+"T+"T+"€N>€N>€N>€N>T+" T+"²‹wÅËÌÅËÌÅËÌÅË̲‹w²‹w²‹wª“vXhD7<.7<.XhDXhDMhZ‡œt‡œt‡œt‡œtìððz•MhZz•z•¤°©¤°©¤°©¤°©¤°©¤°©¤°©¤°©¤°©{mi€N>€N>T+"  {miª“vª“vª“vª“v²‹w²‹w€N>€N>€N>€N>€N>€N>€N>²‹w²‹w²‹w²‹w€N>€N>€N>€N>T+"T+"T+"T+"T+"€N>€N>€N>€N>€N>T+" T+"²‹wÅË̲‹w²‹w²‹w²‹wª“vª“vª“vXhD7<.7<.XhDXhDMhZ‡œt‡œtXhDXhDìððz•MhZz•z•z•z•z•z•¤°©¤°©¤°©¤°©z•z•€N>€N>€N>  ª“vª“v²‹wª“vª“v²‹w²‹w€N>€N>€N>€N>€N>€N>²‹w²‹w²‹w²‹w²‹w€N>€N>€N>€N>€N>T+"T+"T+"T+"€N>€N>€N>€N>€N>T+" T+"ÅËÌÅË̲‹w²‹w²‹w²‹wª“v¤°©ŠeTO 7<.XhDXhDXhDXhDXhDXhDXhDìððXhDMhZz•z•z•z•z•z•¤°©¤°©¤°©z•z•z•€N>²‹w²‹wT+" ª“vª“v²‹w²‹w²‹w²‹w²‹w²‹w€N>€N>€N>€N>€N>€N>²‹w²‹w²‹w²‹w€N>€N>€N>€N>€N>T+"T+"T+"T+"T+"€N>€N>€N>€N>T+"T+"€N>ÅËÌÅË̲‹w²‹w²‹w²‹wª“vŠ{mieTO 7<.XhDXhD7<.XhDXhD7<.XhDìððMhZXhDz•z•z•‡œtz•z•¤°©¤°©¤°©z•¤°©¤°©ª“v²‹w€N>€N>ª“vª“vª“vª“v²‹w²‹w²‹w²‹w€N>€N>€N>€N>€N>€N>€N>²‹w²‹w²‹w²‹w€N>€N>€N>€N>€N>T+"T+"T+"T+"T+"€N>€N>€N>€N>€N>€N>²‹wÅË̤°©ª“vª“vŠª“vª“v{mi{mieTO 7<.XhDXhDXhDXhD7<.7<.MhZìððMhZXhD‡œt‡œt‡œtz•z•¤°©¤°©¤°©¤°©z•¤°©¤°©¤°©²‹w€N>€N>ª“vª“vª“vª“v²‹w²‹w²‹w€N>€N>€N>€N>€N>€N>€N>€N>€N>²‹w²‹w²‹w€N>€N>€N>€N>€N>T+"T+"T+"€N>€N>€N>€N>€N>€N>€N>€N>ª“vª“vŠeTOMhZMhZ‡œt‡œtXhDXhDXhD XhDXhDXhDXhDXhDXhDXhDXhDìððz•z•‡œt‡œt‡œtz•z•¤°©¤°©¤°©¤°©¤°©¤°©z•z•²‹w€N>€N>ª“vª“vª“vª“vª“v²‹w²‹w€N>€N>€N>€N>€N>€N>€N>€N>€N>²‹w²‹w²‹w€N>€N>€N>€N>T+"T+"T+"T+"€N>€N>€N>€N>€N>€N>€N>€N>XhD{mi{mi7<.MhZMhZ¤°©ª“vª“vXhDXhD 7<.XhDXhDXhDXhDXhDXhD‡œtìðð‡œt‡œt‡œt‡œtz•z•z•z•¤°©z•¤°©z•z•z•z•²‹w²‹w€N>²‹wª“vª“vª“vª“v²‹w²‹w²‹w²‹w€N>€N>€N>€N>€N>€N>€N>²‹w²‹w²‹w€N>€N>€N>€N>T+"T+"T+"€N>€N>€N>€N>€N>€N>€N>€N>€N>MhZ7<.MhZMhZMhZMhZŠª“vª“vXhDeTO XhDXhDXhDXhD‡œtXhDXhDXhDìðð‡œtMhZz•z•MhZMhZz•z•z•z•z•z•z•z•z•ª“v€N>ª“vª“vª“vª“vª“vª“v²‹w²‹w²‹w²‹w€N>€N>€N>€N>€N>€N>€N>²‹w€N>€N>€N>€N>€N>€N>€N>T+"€N>€N>€N>€N>€N>€N>€N>€N>€N>€N>XhDXhDXhDXhDXhDz•Š²‹wª“vXhD7<.7<.eTO²‹w{miXhDXhDXhDXhDXhDìððXhDMhZMhZMhZMhZMhZMhZz•z•z•z•z•¤°©¤°©z•¤°©ª“vª“v²‹w²‹wª“vª“vª“v²‹w²‹w²‹w²‹w²‹w€N>€N>€N>€N>€N>€N>€N>T+"T+"€N>€N>€N>T+"T+"T+"€N>€N>€N>€N>€N>€N>€N>€N>€N>ª“v{mi{miXhDXhD‡œtª“vª“vª“vª“vXhD7<.7<.€N>€N>€N>eTOXhDXhDXhD‡œtìððMhZMhZMhZMhZMhZMhZMhZz•z•z•z•¤°©¤°©¤°©z•z•ª“v²‹w²‹w€N>ª“vª“vª“v²‹w²‹w²‹w²‹w²‹w²‹w€N>€N>€N>€N>€N>€N>T+"T+"T+"€N>T+"T+"T+"T+"€N>€N>€N>€N>€N>€N>€N>€N>€N>²‹wŠŠz•z•¤°©²‹wª“vª“v‡œtXhD7<.T+"T+"€N>²‹w¤°©ª“vª“v‡œt‡œtìððXhDMhZXhDMhZMhZMhZz•z•z•z•¤°©¤°©¤°©z•‡œtXhDXhD7<.T+"eTOª“vª“vª“v²‹wª“v²‹w²‹w²‹w€N>²‹w€N>€N>²‹w€N>€N>€N>T+"T+"T+"  T+"€N>€N>€N>€N>€N>€N>€N>€N>€N>ª“v²‹wŠŠz•z•ŠŠª“v‡œtXhDXhD7<.eTOeTO{miÅËÌÅË̪“v‡œt‡œtª“vìððz•XhDXhDMhZMhZMhZz•z•z•z•¤°©¤°©z•z•XhDXhDXhD7<. eTOª“vª“vª“v²‹w²‹w²‹w²‹w²‹w²‹w²‹w€N>²‹w²‹w€N>€N>€N>T+"T+"T+"T+"T+"T+"T+"€N>€N>€N>€N>€N>€N>€N>€N>ª“v²‹w²‹w²‹wz•MhZMhZz•z•XhDXhDXhDXhDXhDeTOŠÅË̤°©XhDXhD‡œt‡œtìððz•XhDMhZMhZMhZMhZz•z•z•z•z•z•z•z•XhDXhDMhZeTO 7<.ª“vª“v²‹w²‹w²‹wª“v²‹w²‹w²‹w²‹w²‹w²‹w€N>€N>eTOeTOT+"T+"T+"T+"T+"T+"T+"T+"€N>€N>€N>€N>€N>€N>ª“v‡œt‡œtª“v²‹wª“v‡œtXhD‡œt‡œtz•XhDXhD7<.7<.7<.Š¤°©XhDXhDXhD‡œt‡œtìððXhDXhDMhZMhZMhZMhZz•z•z•z•z•z•z•XhDXhDXhDMhZMhZ7<.7<.ª“vª“vª“vª“vª“vª“vª“v²‹w²‹w²‹wª“v²‹weTOeTOeTOeTO€N>T+"T+"T+"T+"T+"T+"T+"T+"€N>€N>€N>€N>€N>ª“v‡œt¤°©ÅË̤°©ª“vª“v‡œtXhDXhDXhDXhDXhD7<. 7<.¤°©¤°©XhDXhDXhDXhDXhDìððMhZMhZMhZMhZXhDXhDz•z•z•z•z•z•z•XhDXhDXhDMhZMhZMhZ7<.ª“vª“vª“vª“vª“vª“vª“v²‹w²‹w²‹w²‹w€N>€N>€N>€N>eTO€N>€N>T+"€N>T+"T+"T+"T+"T+"€N>€N>€N>€N>€N>‡œt‡œt¤°©ÅË̪“vª“v²‹wª“vXhDXhDXhDXhD7<. 7<.7<.XhD‡œtXhDXhDXhDª“v‡œtìððMhZMhZMhZMhZXhDXhDz•z•z•z•z•‡œt‡œtz•XhDMhZMhZMhZz•MhZª“vª“vª“vª“vª“vª“vª“v²‹w²‹w²‹w{mi€N>€N>€N>€N>€N>€N>€N>€N>T+"T+"T+"T+"T+"T+"€N>€N>€N>€N>²‹w‡œt‡œtª“v‡œtXhDXhDXhDXhDXhDXhDXhD7<.7<.7<.XhDXhD7<.XhDXhDXhDXhDXhDXhDìððMhZMhZMhZXhDXhDz•z•z•z•z•‡œt‡œt‡œtz•z•MhZMhZMhZz•z•ª“vª“vª“vª“vª“vª“vª“v²‹w²‹w€N>€N>€N>€N>€N>€N>T+"T+"T+"T+"T+"T+"T+"T+"T+"T+"€N>€N>€N>€N>ª“v¤°©‡œtXhDXhDXhDXhDª“vXhDXhDXhDXhDXhDMhZMhZXhDXhD7<.7<.XhDXhDXhDXhDXhDìðð{miMhZXhDXhDXhDz•z•z•z•z•z•z•‡œtz•Š¤°©z•MhZz•¤°©ª“vª“vª“vª“vª“vª“v²‹w²‹w²‹w€N>€N>€N>€N>€N>€N>T+"T+"T+"T+"T+"T+"T+"€N>T+"T+"€N>€N>€N>€N>XhD‡œt‡œtXhDXhD‡œtXhDXhDXhDXhDXhDXhDXhDXhDXhDXhDXhDXhD7<.XhDXhDXhDXhDXhDìððMhZXhDXhDXhDXhDMhZz•z•z•z•z•‡œtz•z•¤°©¤°©¤°©MhZ¤°©ÅË̪“vª“vª“vª“vª“vª“v²‹w²‹w€N>€N>€N>€N>€N>€N>€N>€N>T+"T+"T+"T+"T+"€N>T+"€N>T+"€N>€N>€N>XhDXhDXhDXhDXhD‡œtXhD‡œtXhDXhDXhDXhDXhDXhDXhDXhDXhDXhD7<.7<.7<.XhDXhDXhDXhDìððMhZXhDXhDXhDXhDMhZMhZMhZz•z•z•XhDMhZŠ¤°©ÅËÌÅËÌÅËÌìððÅË̪“vª“vª“vª“vª“vª“v²‹w€N>€N>€N>€N>€N>€N>€N>€N>€N>€N>T+"T+"T+"T+"T+"T+"T+"T+"€N>€N>€N>XhDXhDXhDXhDXhD‡œtXhD‡œtXhDXhDXhD7<.XhDXhDXhDXhD7<.7<.7<.7<.7<.7<.7<.7<.XhDìððMhZXhDXhDXhDXhDMhZMhZMhZMhZXhDz•z•¤°©ÅËÌÅËÌÅËÌìððÅËÌÅËÌÅË̤°©ª“vª“v²‹wª“vª“v€N>€N>{mi{mieTO€N>€N>€N>T+"T+"T+"T+"T+"T+"T+"T+"T+"T+"T+"€N>€N>XhDXhDXhDXhDXhDXhDXhDXhDXhDXhDXhDXhD7<.7<.XhD7<.7<.7<.7<.7<.7<.XhDXhD7<.7<.XhDìððMhZXhDXhDXhDXhDMhZMhZXhDMhZz•ÅËÌìððìððìððÅËÌÅËÌÅË̤°©ÅËÌÅËÌÅË̲‹w²‹w²‹w²‹w€N>€N>€N>€N>€N>eTOT+"T+"T+"T+"T+"T+"T+"T+"T+"T+"T+"T+"T+"T+"€N>eTOXhDXhDXhDXhDXhDXhDXhDXhDXhD7<.XhDXhD7<.XhDXhDXhD7<.7<.7<.7<.7<.XhDXhD7<.7<.XhDìððMhZXhDXhDXhDMhZMhZMhZz•ÅËÌìððìððÅËÌÅËÌÅËÌÅËÌÅËÌÅË̏ŠŠÅËÌÅË̲‹w²‹w²‹w²‹w€N>€N>€N>€N>eTO€N>€N>T+"T+"T+"T+"T+"T+"T+"T+"T+"T+"T+"T+"T+"eTO7<.7<.7<.XhDXhDXhD‡œtXhDXhD7<.7<.7<.XhDXhD7<.7<.7<.7<.7<.7<.7<.7<.XhDXhD7<.7<.7<.ìððMhZXhDXhDMhZMhZMhZz•ÅËÌìððìððÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅË̏ŠŠÅË̤°©Š²‹w²‹w€N>€N>€N>€N>€N>€N>€N>€N>T+"T+"T+"€N>T+"T+"T+"T+"T+"T+"T+"T+"eTO7<.MhZMhZXhDXhDXhDXhD‡œt‡œtXhD7<.7<.XhDXhDXhDXhD7<.7<.7<.7<.7<.7<.7<.7<.7<.7<.7<.XhDìððMhZXhDXhDXhDXhD¤°©ìððìððìððÅËÌÅËÌÅËÌÅË̤°©¤°©¤°©ÅË̤°©{mi¤°©¤°©Š²‹w²‹w€N>€N>€N>€N>€N>€N>eTOeTOT+"T+"T+"€N>T+"T+"T+"T+"T+"T+"T+"T+"¤°©¤°©ÅË̤°©¤°©‡œt‡œt‡œtXhDXhDXhDXhD7<.7<.XhDXhDXhD7<.7<.7<.7<.7<.7<.7<.7<.7<.7<.7<.XhDìððMhZMhZXhDXhD¤°©ìððìððìððÅËÌÅËÌÅËÌÅË̤°©ŠŠŠ¤°©¤°©ŠŠŠ¤°©²‹w€N>€N>€N>€N>€N>€N>T+"T+"T+"T+"T+"T+"T+"T+"T+"T+"T+"T+"T+"T+"eTO¤°©¤°©¤°©ÅËÌÅËÌÅË̇œtXhDXhDXhD‡œtXhD7<.7<.XhDXhDXhDXhDXhDXhD7<.7<.7<.7<.7<.7<.XhD7<.XhDìððXhDMhZMhZ¤°©ìððìððìððÅËÌÅËÌÅËÌÅË̤°©¤°©ŠŠŠŠ¤°©Š{miŠ¤°©Š€N>€N>€N>€N>€N>€N>€N>T+"T+"T+"T+"T+"T+"T+"T+"T+"T+"T+"T+"€N>{miŠŠŠ¤°©¤°©ÅËÌÅËÌz•XhDXhD‡œtXhDXhDXhDXhDXhDXhDXhD7<.7<.7<. 7<.7<.7<.7<.XhDXhDXhDìððXhDMhZÅËÌìððìððÅË̤°©ŠŠŠŠŠŠŠŠŠŠŠŠ{mi{miŠ¤°©{mi€N>€N>€N>€N>€N>€N>€N>T+"T+"T+"T+"T+"T+"T+"T+"T+"€N>€N>€N>{miŠŠŠŠ¤°©¤°©ÅËÌÅË̤°©‡œt‡œtXhDXhD7<.XhDXhDXhDXhD7<.7<.7<.7<.7<.7<.7<.7<.XhDXhDXhDìððz•ÅËÌìððìððìððÅËÌÅËÌÅËÌÅË̤°©ŠŠ{mi{miŠŠŠŠŠŠ{mi{miŠŠ€N>€N>€N>€N>€N>€N>€N>T+"T+"T+"T+"T+"T+"T+"T+"T+"€N>€N>€N>{miŠŠŠŠŠ¤°©¤°©¤°©¤°©¤°©‡œtXhDXhDXhDXhDeTO{mieTO7<.7<.7<.7<.7<.7<.7<.7<.XhDXhDXhDìððìððìððìððìððìððÅËÌÅËÌÅËÌÅËÌÅËÌÅË̤°©Š{mi{miŠ{mi{miŠŠŠ{miŠŠŠ€N>€N>€N>€N>€N>T+"T+"T+"T+"T+"T+"T+"T+"T+"€N>€N>€N>€N>{mi{miŠŠŠŠŠŠ¤°©Š¤°©¤°©²‹wª“vXhDXhD€N>eTO7<.7<.7<.7<.7<.7<.7<.7<.XhDXhDXhDXhDìððìððìððìððìððìððÅËÌÅËÌÅËÌÅËÌÅËÌÅË̏ŠŠŠŠ{miŠ{mi{miŠŠŠ{miŠŠŠ€N>€N>€N>€N>T+"T+"T+"T+"T+"T+"T+"T+"T+"€N>€N>€N>€N>{mi{miŠŠŠ{mi{miŠŠŠŠ¤°©Š{miXhDXhD7<.7<.7<.  7<.7<.7<.7<.7<.7<.XhDz•z•ìððìððìððìððìððìððìððÅËÌÅËÌÅËÌÅËÌÅËÌÅË̤°©ŠŠŠ{mieTOeTO{miŠŠŠ{miŠŠŠT+"€N>T+"T+"T+"T+"T+"T+"T+"T+"T+"T+"€N>€N>€N>€N>{mieTO{mi{miŠ{mi{miŠŠŠŠ¤°©ŠÅËÌz•XhD7<.7<.7<.   7<.7<.7<.7<.7<.XhDz•XhDìððìððìððìððìððìððÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅË̏Š{mi{mi{mieTO{miŠ{miŠ{mieTO{miŠŠ€N>T+"T+"T+"T+"T+"T+"T+"T+"T+"T+"€N>€N>€N>eTO{mi{mi{mi{miŠŠ{mi{miŠŠ{miŠŠ¤°©¤°©XhD7<.7<.7<.7<. 7<.7<.7<.7<.7<.7<.7<.7<.7<.ìððìððìððìððìððìððÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅË̤°©ŠŠ{mieTO{mi{miŠŠŠeTOeTO{miŠŠeTOT+"T+"T+"T+"T+"T+"T+"T+"T+"€N>€N>€N>eTOeTO{mieTO{mi{miŠ{mi{miŠŠ{miŠŠŠ¤°©z•7<.7<.7<.7<.7<.7<.7<.7<.7<.7<.7<.7<.7<.XhDìððìððìððìððìððìððÅËÌÅËÌÅËÌÅËÌÅËÌÅË̤°©¤°©¤°©ŠŠ{mi{mi{mieTO{mi{miŠŠ{mieTOeTO{miŠŠeTOT+"T+"T+"T+"T+"T+"T+"T+"€N>€N>T+"eTOeTO{mieTO{mi{miŠ{mi{mi{miŠ{mi{miŠŠ¤°©ŠMhZ7<.7<.7<.XhDXhDXhDXhDXhD7<.7<.7<.7<.7<.ìððìððìððìððìððìððÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅË̤°©¤°©ŠŠ{mi{mi{mieTO{mi{miŠŠeTOeTOeTO{miŠ{mieTOT+"T+"T+"T+"T+"T+"€N>€N>€N>T+"{mieTO{mieTO{mi{miŠ{mi{mi{mi{mi{mi{miŠ{miŠ¤°©ŠMhZ7<.7<.XhDXhD7<.7<.XhD7<.7<.7<.7<.XhDìððìððìððìððìððÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅË̤°©ŠŠŠ{mi{mi{mi{mi{mi{miŠ{mieTOeTOeTO{mi{mi{mi{miT+"T+"T+"T+"T+"T+"€N>T+" {mi{mieTO{mieTO{miŠ{mi{mieTO{mi{mieTO{mi{miŠŠŠ{mi7<.7<.7<.XhD7<.7<.7<.7<.7<.7<.XhDXhDìððìððìððìððìððÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅË̤°©¤°©¤°©ŠŠŠ{mi{mi{mi{mi{mi{mi{mi{miŠeTOeTOeTOeTO{mi{mi{mi{mieTOT+"T+"T+"T+"T+"T+" {mi{mieTO{mieTO{mi{mi{mi{mi{mi{mi{mieTO{mi{mi{miŠŠŠ7<.7<.7<.XhDXhD7<.7<.7<.7<.XhDXhD‡œtìððìððìððìððÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅË̤°©ÅË̤°©ŠŠŠ{mi{mi{mi{mi{mi{mi{mi{mi{mieTOeTOeTOeTOeTOeTOeTOeTOeTOeTOT+"T+"  eTO{mi{mieTO{mieTO{mi{mi{mi{mieTO{mi{mieTO{mi{mi{miŠŠŠ{mi7<.7<.7<.7<.7<.7<.7<.7<.7<.XhDXhDìððìððìððìððÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅË̤°©ÅË̤°©ŠŠŠŠ{mi{mi{mi{mi{mi{mi{mi{mi{mieTOeTOeTOeTOeTOeTOeTOeTOeTO{mieTO7<.eTOŠ{mi{mieTO{mieTO{mi{mi{mi{mieTOeTO{mieTO{mi{mi{mi{miŠŠŠeTOeTO7<.7<.7<.7<.7<.7<.7<.7<.XhDìððìððìððÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅË̤°©ŠŠŠŠŠ{mi{mi{mi{mieTO{mi{mi{mi{mieTOeTOeTOeTOeTOeTOeTOeTO{mi{mi{mi{miŠ{mi{mieTOeTO{mi{mi{miŠ{mieTOeTO{mieTO{mi{mi{mi{miŠ{miŠŠ7<.7<.7<.7<.7<.XhDXhDXhDMhZMhZìððìððìððÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅË̤°©¤°©ŠŠŠŠŠ{mi{mi{mieTOeTO{mi{mi{mieTOeTOeTOeTOeTOeTOeTOeTO{mi{mi{mi{mi{miŠ{mieTOeTO{mieTO{mi{mi{mieTOeTO{mieTO{mieTOeTO{mi{mi{miŠ¤°©MhZXhDXhDz•z•‡œtXhDXhDMhZ{miìððìððÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅË̤°©¤°©ŠŠŠŠ{mi{mi{mieTOeTO{mi{mi{mieTOeTOeTOeTOeTOeTO{mi{mi{mi{miŠ{mi{mi{mieTOeTO{mieTO{mi{mi{mieTOeTOeTO{mieTOeTOeTO{mi{mi{mi{miŠ¤°©¤°©¤°©z•MhZ7<.XhDXhD{miª“vìððìððÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅË̤°©ŠŠŠŠŠŠŠ{mi{mi{mieTOeTO{mi{mieTOeTOeTOeTOeTO{mi{mi{mi{mi{mi{mi{mi{miŠeTOeTO{mieTO{mieTO{mieTOeTOeTO{mieTOeTOeTO{mi{mi{mi{miŠ¤°©¤°©z•XhDMhZMhZMhZXhD²‹wª“vìððÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅË̤°©¤°©¤°©¤°©Š{mi{miŠŠŠŠŠŠ{mi{mieTOeTOeTOeTO{mieTOeTOeTO{mi{mi{mi{mi{mi{mi{mi{mi{mi{mieTOeTO{mieTO{mieTO{mi{mieTOeTO{mieTOeTO{mi{mi{mieTO{miŠŠŠŠXhDz•XhDXhDª“v²‹wª“vìððÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅË̤°©Š¤°©ŠŠŠŠ{mi{mieTOeTO{miŠŠŠŠ{mi{mieTOeTO{mi{mi{mieTOeTOeTO{mi{mi{mi{mi{mi{mi{mi{mi{mieTOeTO{mieTO{mi{mi{mi{mieTOeTO{mieTOeTO{mieTOeTOeTOŠŠŠŠŠXhDz•XhDXhD²‹w²‹wª“vìððÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅË̤°©¤°©¤°©¤°©¤°©¤°©¤°©ŠŠŠŠŠ{mieTO{mi{mi{miŠ{mi{mieTOeTO{mi{mi{mieTO{mi{mi{mi{mi{mi{mi{mi{mi{mi{mi{mieTOeTO{mi{mieTO{mi{mi{mieTOeTOeTOeTOeTOeTOeTOeTOeTOŠŠŠŠŠz•z•XhDª“vª“vª“vª“vìððÅËÌÅËÌÅËÌÅËÌÅËÌÅË̤°©ÅËÌÅËÌÅËÌÅËÌÅË̤°©ŠŠ¤°©ŠŠŠŠ{mi{mi{mi{mi{mi{mi{mi{mieTOeTO{mi{mi{mi{mi{mi{mi{mi{mi{mi{mi{mi{mi{mi{mieTOeTO{mi{mieTO{mi{mi{mieTOeTOeTOeTOeTOeTOeTOeTO{mi{mi{miŠŠŠŠMhZ{mi²‹wª“vª“vª“vìððìððÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅË̤°©¤°©¤°©¤°©¤°©ŠŠŠŠŠŠŠ{mi{mi{mi{mi{mi{mi{mieTO{mi{mi{mi{mi{mi{mi{mi{mi{mi{mi{mi{mi{mi{mieTOeTO{mi{mieTOeTO{mi{mieTOeTOeTO eTOeTOeTOeTO{mi{mi{mi{miŠŠŠ7<.²‹w²‹wª“vª“vª“vìððìððÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅË̤°©¤°©¤°©ŠŠŠŠŠŠŠ{mi{mi{mi{mi{mi{mieTOeTO{mi{mi{mi{mi{mi{mi{mi{mi{mi{mi{mi{mi{mieTOeTO{mi{mieTOeTOeTO{mieTOeTOeTOeTOeTOeTOeTOeTO{mi{mi{mi{miŠŠŠ{mi²‹w²‹wª“vª“vª“vìððÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅË̤°©¤°©¤°©¤°©ŠŠŠŠŠŠŠŠ{mi{mi{mieTO{mi{mieTO{mi{mi{mi{mi{mi{mi{mi{mi{mi{mi{mi{mi{mieTOeTO{mi{mieTO{mieTOeTO{mieTOeTOeTOeTOeTOeTOeTO{mi{mi{mi{miŠŠ{mi²‹w²‹w²‹w²‹w²‹wª“vìððÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅË̤°©¤°©¤°©¤°©ŠŠŠŠŠŠŠŠŠ{mieTO{mieTO{mieTO{mieTO{mi{mi{mi{mi{mi{mi{mi{mi{mi{mi{mieTOeTO{mi{mieTO{mieTOeTO{mieTOeTOeTOT+"eTOeTO{mi{mi{mi{miŠ{mi{mi{mi²‹w²‹w²‹w²‹wª“v²‹wìððÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅË̤°©¤°©¤°©¤°©Š¤°©ŠŠŠ{mi{miŠŠŠ{mieTO{mieTOeTOeTOeTO{mi{mi{mi{mi{mi{mi{mi{mi{mi{mi{mieTOeTO{mi{mieTOeTOeTOeTOeTOeTOeTOeTO eTOeTOeTO{mi{mi{mi{mieTOeTO{mi²‹w²‹wª“vª“vª“v²‹wìððÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅË̤°©¤°©ŠŠ¤°©ŠŠŠŠŠ{mi{miŠŠeTO{mi{mi{mieTO{mieTO{mi{mi{mi{mi{mi{mi{mi{mi{mi{mieTOeTO{mi{mieTOeTO{mieTOeTOeTOeTO eTOeTO{mi{mi{mieTOeTOeTOeTOeTO²‹w²‹w²‹wª“vª“v²‹w²‹wìððÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅË̏ŠŠŠŠŠŠŠŠŠŠŠŠŠeTO{mi{mieTO{mieTOeTO{mi{mi{mi{mi{mi{mi{mi{mieTOeTOeTO{mi{mieTOeTOeTOeTOeTOeTO  eTOeTOeTOeTOeTOeTOeTOeTOeTO{mi²‹w²‹w²‹wª“vª“v²‹w²‹wìððÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅË̤°©¤°©¤°©ÅËÌÅËÌÅË̤°©ŠŠŠŠŠŠŠŠŠŠŠ{mi{mi{mieTOeTO{mieTOeTO{mi{mi{mi{mi{mi{mi{mieTOeTOeTO{mi{mieTOeTOeTOeTOeTOeTO eTOeTOeTOeTOeTOeTOeTOeTOeTOeTO²‹w²‹w²‹w²‹w²‹w²‹w²‹w²‹wìððÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅË̤°©¤°©¤°©¤°©¤°©¤°©ŠŠŠŠŠŠŠ{mi{mi{miŠ{mi{mieTOeTO{mieTOeTOeTO{mi{mi{mi{mi{mi{mieTOeTOeTO{mi{mieTOeTOeTOeTOeTOeTOeTOeTOT+"T+"eTOeTOeTOeTOeTO{mi{mi²‹w²‹w²‹w²‹w²‹w²‹w²‹w{miìððÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅËÌÅË̤°©¤°©¤°©Š¤°©¤°©ÅË̏ŠŠ¤°©ŠŠŠŠŠŠ{miŠŠ{mieTO{mieTOeTOeTOeTO{mi{mi{mi{mi{mieTOeTOeTO{mi{mieTOeTOeTOeTOeTOeTOeTO7<.7<.eTOeTOeTOeTOeTOeTOeTO²‹w²‹w²‹w²‹w²‹w²‹w²‹w{mi{mi \ No newline at end of file diff --git a/pnm.c b/pnm.c index 6c90bf4..8604e27 100644 --- a/pnm.c +++ b/pnm.c @@ -43,7 +43,7 @@ int getparam (FILE *fd, int *value) return 0; } -int getvalue (FILE *fd, int nbbytes) +int getrawvalue (FILE *fd, int nbbytes) { int value = fgetc (fd); if (value != EOF) { @@ -55,7 +55,45 @@ int getvalue (FILE *fd, int nbbytes) return value; } -int readpbm (FILE *fd, image_t *image) +int getvalue (FILE *fd, int mode) +{ + int value; + if (mode) { + value = getrawvalue (fd, mode); + } else { + if (!getparam (fd, &value)) { + value = EOF; + } + } + return value; +} + +int readpbma (FILE *fd, image_t *image) +{ + int i = 0; + while (i < image->width * image->height) { + if (feof (fd)) { + return 0; + } + int c = fgetc (fd); + if (contain ("#", c)) { + while (!feof (fd)) { + c = fgetc (fd); + if (contain ("\n\r", c)) { + break; + } + } + } else if (contain ("01", c)) { + image->red[i] = image->green[i] = image->blue[i] = '1' - c; + i++; + } else if (!contain (" \n\r\t", c)) { + return 0; + } + } + return 1; +} + +int readpbmr (FILE *fd, image_t *image) { int i = 0; int k = 0; @@ -74,30 +112,30 @@ int readpbm (FILE *fd, image_t *image) return (value != EOF); } -int readpgm (FILE *fd, image_t *image) +int readpgm (FILE *fd, image_t *image, int mode) { int i = 0; - int nbbytes = (image->maxvalue > 255) ? 2 : 1; + mode = (mode) ? ((image->maxvalue > 255) ? 2 : 1) : 0; int value = EOF; while (i < image->width * image->height) { - value = getvalue (fd, nbbytes); + value = getvalue (fd, mode); image->red[i] = image->green[i] = image->blue[i] = value / (float)image->maxvalue; i++; } return (value != EOF); } -int readppm (FILE *fd, image_t *image) +int readppm (FILE *fd, image_t *image, int mode) { int i = 0; - int nbbytes = (image->maxvalue > 255) ? 2 : 1; + mode = (mode) ? ((image->maxvalue > 255) ? 2 : 1) : 0; int value = EOF; while (i < image->width * image->height) { - value = getvalue (fd, nbbytes); + value = getvalue (fd, mode); image->red[i] = value / (float)image->maxvalue; - value = getvalue (fd, nbbytes); + value = getvalue (fd, mode); image->green[i] = value / (float)image->maxvalue; - value = getvalue (fd, nbbytes); + value = getvalue (fd, mode); image->blue[i] = value / (float)image->maxvalue; i++; } @@ -147,16 +185,22 @@ image_t *readpnm (char *filename) int rc = 0; switch (mode) { case 1: // PBM ascii + rc = readpbma (fd, image); + break; case 2: // PGM ascii + rc = readpgm (fd, image, 0); + break; case 3: // PPM ascii + rc = readppm (fd, image, 0); + break; case 4: // PBM raw - rc = readpbm (fd, image); + rc = readpbmr (fd, image); break; case 5: // PGM raw - rc = readpgm (fd, image); + rc = readpgm (fd, image, 1); break; case 6: // PPM raw - rc = readppm (fd, image); + rc = readppm (fd, image, 1); break; } if (rc == 0) { -- 2.30.2