3 }\@spddlmZmZmZddlmZmZmZ m Z dZ ddZ GdddejZ eje je e eje jdd gd S) )Image ImageFile ImagePalette)i8i16lei32leo8z0.2cCs t|dkot|dddkS)N)r r )leni16)prefixrj/private/var/folders/pf/wv4htv3x0qs2c2mp0dnn0kchsvlck3/T/pip-install-i584jbuk/Pillow/PIL/FliImagePlugin.py_acceptsrc@s`eZdZdZdZdZddZddZedd Z ed d Z d d Z ddZ ddZ ddZdS) FliImageFileZFLIzAutodesk FLI/FLC AnimationFcCs|jjd}t|dd}|d koFt|ddd!koF|d d d ksPtd t|dd|_d|_t|ddt|ddf|_t|dd }|dkr|dd}||jd<ddt dD}|jjd}d|_ t|dddkr|j t||_ |jjd}t|dddkrv|jjd}t|dddkrT|j |dn"t|dddkrv|j |ddd|D}t j ddj||_d"|_|j|_|jj|_|jddS)#Nr r sznot an FLI/FLC fileP iFdurationcSsg|]}|||fqSrr).0arrr Dsz&FliImageFile._open..ii cSs*g|]"\}}}t|t|t|qSr)r)r#rgbrrrr%WsZRGBr)rr)rr)fpreadr SyntaxError_FliImageFile__framecountmode_sizei32inforange_FliImageFile__offset_paletterrawjoinpalette_FliImageFile__frame_FliImageFile__fptell_FliImageFile__rewindseek)selfsmagicr"r;rrr_open,s> "       zFliImageFile._openc Csd}xtt|jjdD]}|jjd}|t|d}t|d}|dkrRd}|jj|d}xftdt|dD]R}t|||>}t||d|>}t||d|>} ||| f||<|d7}qtWqWdS)Nrr(rr&r)r6rr.r/rr ) rAr;shiftierBnr)r*r+rrrr8`s  zFliImageFile._palettecCs|jS)N)r1)rArrrn_framesrszFliImageFile.n_framescCs |jdkS)Nr)r1)rArrr is_animatedvszFliImageFile.is_animatedcCsN|j|sdS||jkr"|jdx&t|jd|dD]}|j|q8WdS)Nrr)Z _seek_checkr<_seekr6)rAframefrrrr@zs    zFliImageFile.seekcCs|dkr$d|_|jj|jd|_n|j||jdkrFtd|||_|j|_|jj|j|jjd}|svt t |}||_ dd|j |jdfg|_ |j|7_dS) Nrrrzcannot seek to frame %dr Zflir-)rr)r<r=r@r?r7load ValueErrorr.r/EOFErrorr4ZdecodermaxblocksizeZtile)rArLrBZ framesizerrrrKs"  zFliImageFile._seekcCs|jS)N)r<)rArrrr>szFliImageFile.tellcCsBz4y|j|jkr|jjWntk r0YnXWdd|_XdS)N)r=r.closeAttributeError)rArrr _close__fps   zFliImageFile._close__fpN)__name__ __module__ __qualname__formatformat_descriptionZ!_close_exclusive_fp_after_loadingrDr8propertyrIrJr@rKr>rTrrrrr&s4   rz.fliz.flcN)rrr_binaryrrrrr4r __version__rrZ register_openrXZregister_extensionsrrrrs