ó øłbc@sVddlmZdZddlZddlmZmZmZmZddl Z ej Z ej Z ej ZejdƒjZdZid>d?6d@dA6dBdC6dDdE6dFdG6dHdI6dJdK6dLdM6dNdO6dPdQ6dRdS6dTdU6dVdW6dXdY6dZd[6ZejdƒZd d\d!„ƒYZd"d]d#„ƒYZd$efd%„ƒYZd&„Zd'ejfd(„ƒYZejZejZejZi d^d6d_d*6d`d 6dad 6dbd 6dcd6ddd6ded6dfd6dgd6dhd6did6djd6Zd6„Z d7dkd8„ƒYZ!e d d9„Z"d:„Z#ej$d;eeƒej%d;e"ƒej&d;d<ƒej'd;d=ƒdS(li’’’’(tprint_functions0.9N(tImaget ImageFilet ImagePalettet_binarys\w\w\w\ws‰PNG  t1iitLsL;2isL;4iitIsI;16BitRGBsRGB;16BtPsP;1isP;2sP;4tLAtRGBAsLA;16BisRGBA;16Bs^’+’*$t ChunkStreamcBsSeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zdd„Z RS( cCs7||_g|_ttjdƒs3|j|_ndS(Ntcrc32(tfptqueuethasattrRtcoretcrc_skiptcrc(tselfR((s8/usr/lib64/python2.7/site-packages/PIL/PngImagePlugin.pyt__init__Ps  cCs„|jr<|jd\}}}|jd=|jj|ƒn7|jjdƒ}|d}|jjƒ}t|ƒ}t|ƒs˜tdt|ƒƒ‚n|||fS(s.Fetch a new chunk. Returns header information.i’’’’iisbroken PNG file (chunk %s)( RRtseektreadttellti32tis_cidt SyntaxErrortrepr(Rtcidtpostlents((s8/usr/lib64/python2.7/site-packages/PIL/PngImagePlugin.pyRXs     cCsd|_|_|_dS(N(tNoneRRR(R((s8/usr/lib64/python2.7/site-packages/PIL/PngImagePlugin.pytclosejscCs|jj|||fƒdS(N(Rtappend(RRRR((s8/usr/lib64/python2.7/site-packages/PIL/PngImagePlugin.pytpushmscCsBtjrtd|||ƒnt|d|jdƒƒ||ƒS(s"Call the appropriate chunk handlertSTREAMtchunk_tascii(RtDEBUGtprinttgetattrtdecode(RRRR((s8/usr/lib64/python2.7/site-packages/PIL/PngImagePlugin.pytcallqs cCsttjj|tjj|ƒƒ}t|jjdƒƒt|jjdƒƒf}||krptd|ƒ‚ndS(sRead and verify checksumis*broken PNG file(bad header checksum in %s)N(RRR ti16RRR(RRtdatatcrc1tcrc2((s8/usr/lib64/python2.7/site-packages/PIL/PngImagePlugin.pyRxs !0 cCs|jjdƒdS(s3Read checksum. Used if the C module is not presentiN(RR(RRR.((s8/usr/lib64/python2.7/site-packages/PIL/PngImagePlugin.pyRstIENDcCshg}x[trc|jƒ\}}}||kr4Pn|j|tj|j|ƒƒ|j|ƒq W|S(N(tTrueRRRt _safe_readRR#(RtendchunktcidsRRR((s8/usr/lib64/python2.7/site-packages/PIL/PngImagePlugin.pytverify†s  ( t__name__t __module__RRR"R$R,RRR6(((s8/usr/lib64/python2.7/site-packages/PIL/PngImagePlugin.pyR Ns      tPngInfocBs&eZd„Zd„Zdd„ZRS(cCs g|_dS(N(tchunks(R((s8/usr/lib64/python2.7/site-packages/PIL/PngImagePlugin.pyRœscCs|jj||fƒdS(N(R:R#(RRR.((s8/usr/lib64/python2.7/site-packages/PIL/PngImagePlugin.pytaddŸsicCsšt|tƒs$|jddƒ}nt|tƒsH|jddƒ}n|r~ddl}|jd|d|j|ƒƒn|jd|d|ƒdS( Nslatin-1tstricttreplacei’’’’tzTXttttEXtt(t isinstancetbytestencodetzlibR;tcompress(RtkeytvaluetzipRE((s8/usr/lib64/python2.7/site-packages/PIL/PngImagePlugin.pytadd_text¢s $(R7R8RR;RJ(((s8/usr/lib64/python2.7/site-packages/PIL/PngImagePlugin.pyR9šs  t PngStreamcBskeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z RS( cCsJtj||ƒi|_i|_d|_d|_d|_d|_dS(Ni(ii( R Rtim_infotim_texttim_sizeR!tim_modetim_tilet im_palette(RR((s8/usr/lib64/python2.7/site-packages/PIL/PngImagePlugin.pyRµs     cCsŠtj|j|ƒ}|jdƒ}tjrXtd|| ƒtdt||ƒƒnt||ƒ}|dkr‡td|ƒ‚nyt j ||dƒ}Wnt j k r¾d}nX||j d<|S(NRAsiCCP profile namesCompression methodis+Unknown compression method %s in iCCP chunkit icc_profile(RR3RtfindRR(R)ti8RREt decompressterrorR!RL(RRRR tit comp_methodRR((s8/usr/lib64/python2.7/site-packages/PIL/PngImagePlugin.pyt chunk_iCCPĮs    cCsµtj|j|ƒ}t|ƒt|dƒf|_y4tt|dƒt|dƒf\|_|_WnnXt|dƒr’d|j d}nd}|dkrSd}n0|dkrhd}n|dkr}d}nd}|dkr„d ||f}q„nd |jkrÄ|jd }nd }d |jk|jjd dƒ|jjddƒ|f|_yt|\} }Wn!tk r=td|ƒ‚nX|rH|S|jtƒ||dt |j dƒt |j dƒ|dddƒ|jdkrĪd|d} ||d|j j dƒ| ƒnd|jkr|jdkrnd|} t |jdtƒr*||d|jd| ƒqtdtd|jdƒƒ} d| d} ||d| | ƒqp|jdkrµtdtd|jdƒƒ} ||dt| ƒƒqp|jdkr|jd\}}}||dt|ƒt|ƒt|ƒƒqptdƒ‚nZ|jdkrp|j jƒdkrp|j j ddƒ} d|} ||d| | ƒn|jjd ƒ}|rŃ||d!t t|dd"d#ƒƒt t|dd"d#ƒƒd$ƒn|jjd%ƒ}|rx*|jD]\}}||||ƒqóWnd&|jkryddl}|j|jd&ƒ}|jjjd'|jjjd(|jjjd)|jjjd*iƒjd+d,ƒƒƒƒjd-d.ƒd/ }Wntk rĪd,}nX|d0tj|jd&ƒ}||d1|ƒntj|t||ƒd2d4|j d| fgƒ||d3d ƒy|j ƒWnnXdS(5NR tbitsiiiiiis%s;%dt dictionaryRptoptimizetcompress_leveli’’’’t compress_typescannot write mode %s as PNGtIHDRiRAitPLTERRcttRNSi’s’Ri’’s%cannot use transparency for this modeR tARitpHYsg¦ F%uš?gą?stpnginfoRRtASCIItUnicodet MacintoshtentUSs ICC Profiletlatin1R=iOR?tiCCPRIR1(ii(!Rt encoderinfoRŠt encoderconfigt _OUTMODEStKeyErrortIOErrorR•RxR–R€timt getpaletteRBRCtmaxRR—tgetpalettemodeRkR:Rt ICCProfilettagstdescRDt ImportErrorRERFRt_saveR›tflush(R“RtfilenameRœtcheckRtnRRžR‡t palette_bytest alpha_bytesRctalphatredtgreentblueRiRRR.Røtptname((s8/usr/lib64/python2.7/site-packages/PIL/PngImagePlugin.pyR¼ćs¢               # -$    n  2cKsVddd„ƒY}d„}|ƒ}z ||_t||d|ƒWd|`X|jS(s4Return a list of PNG chunks representing this image.t collectorcBs eZgZd„Zd„ZRS(cSsdS(N((RR.((s8/usr/lib64/python2.7/site-packages/PIL/PngImagePlugin.pyR•rscSs|jj|ƒdS(N(R.R#(RRœ((s8/usr/lib64/python2.7/site-packages/PIL/PngImagePlugin.pyR#ts(R7R8R.R•R#(((s8/usr/lib64/python2.7/site-packages/PIL/PngImagePlugin.pyRÉps cWsfdj|ƒ}tjj|tjj|ƒƒ\}}t|ƒt|ƒ}|j|||fƒdS(NRp(R”RRR R—R#(RRR.R˜R™R((s8/usr/lib64/python2.7/site-packages/PIL/PngImagePlugin.pyR#ws'N((RÆR¼R!R.(R“tparamsRÉR#R((s8/usr/lib64/python2.7/site-packages/PIL/PngImagePlugin.pyt getchunksms   R|s.pngs image/png(RR(ii(RsL;2(ii(RsL;4(ii(RR(ii(RsI;16B(ii(sRGBsRGB(ii(sRGBsRGB;16B(ii(R sP;1(ii(R sP;2(ii(R sP;4(ii(R R (ii(R R (ii(sRGBAsLA;16B(ii(sRGBAsRGBA(ii(sRGBAsRGBA;16B(ii(((Rs(sL;1s(sL;2s(sL;4s(Rs(R s(sI;16Bs(sP;1s(sP;2s(sP;4s(R s(sRGBs(sRGBAs(((t __future__Rt __version__tretPILRRRRRERTti16beR-ti32beRtcompileReRRxR[RdR R9RKRzR{to8to16beR—to32beR–R±RšR›R¼RĖt register_opent register_savetregister_extensiont register_mime(((s8/usr/lib64/python2.7/site-packages/PIL/PngImagePlugin.pyt"sp "     L’ p      Š