3 }\ @sddlZddlmZmZmZddlmZmZdZej dZ ddZ Gd d d ejZ ej e je e eje jd eje jd dS) N)Image ImageFile ImagePalette)i8o8z0.2s$"([0-9]*) ([0-9]*) ([0-9]*) ([0-9]*)cCs|dddkS)N s /* XPM */)prefixr r j/private/var/folders/pf/wv4htv3x0qs2c2mp0dnn0kchsvlck3/T/pip-install-i584jbuk/Pillow/PIL/XpmImagePlugin.py_acceptsr c@s$eZdZdZdZddZddZdS) XpmImageFileZXPMz X11 Pixel Mapc Cst|jjdstdx*|jj}|s0tdtj|}|rPqWt|jdt|jdf|_ t|jd}t|jd}|dks|dkrt d d gd}x(t |D]}|jj}|ddd kr|dd}n|ddd kr|dd}t |d}|ddj }xt d t|dD]}||d kr&||d}|dkrZ||jd<n^|d ddkrt|ddd}t|d?d@t|d?d@t|d@||<nt d Pq&Wt d qWd|_tjddj||_dd|j|jjdfg|_dS)Nrznot an XPM filezbroken XPM filerzcannot read this XPM filess rcsNoneZ transparency#PZRGBrawrrr)rr)rrr)r fpread SyntaxErrorreadlinexpm_headmatchintgroup_size ValueErrorrangersplitleninformoderrjoinpalettesizetellZtile) selfsmZpalZbppr,icZrgbr r r _open*sL          zXpmImageFile._opencCsP|j\}}dg|}x0t|D]$}|jjd|dj|||<qWdj|S)Nrr)r-r&rrljustr+)r/bytesZxsizeZysizer0r2r r r load_readms   $zXpmImageFile.load_readN)__name__ __module__ __qualname__formatformat_descriptionr4r7r r r r r %sCr z.xpmz image/xpm)rerrr_binaryrr __version__compiler r r Z register_openr;Zregister_extensionZ register_mimer r r r s Z