Files
sirh/venv/lib/python3.12/site-packages/PIL/__pycache__/GifImagePlugin.cpython-312.pyc

281 lines
45 KiB
Plaintext
Raw Normal View History

2026-04-29 11:52:03 +02:00
<EFBFBD>
<00><><EFBFBD>i<EFBFBD><69><00><01><><00>ddlmZddlZddlZddlZddlZddlmZddlm Z ddl
m Z m Z m Z ddlmZmZmZmZmZmZmZddlmZdd lmZdd
lmZdd lmZd Zerdd l
mZm Z ddlm!Z!ddl"m#Z#Gd<10>de<07>Z$e$jJZ&d/d<12>Z'Gd<13>dej"<00>Z(dddd<17>Z)d0d<18>Z*e+e,ze-e.zej(zZ/ d1d<19>Z0 d2d<1A>Z1 d3d<1B>Z2Gd<1C>de <0C>Z3 d4d<1E>Z4d5d<1F>Z5 d6 d7d <20>Z6d8d!<21>Z7 d9d"<22>Z8d5d#<23>Z9d Z:d:d$<24>Z;d;d%<25>Z<d<d&<26>Z=d=d'<27>Z> d>d(<28>Z?d?d)<29>Z@ d@d*<2A>ZA dA dBd+<2B>ZB dC dDd,<2C>ZCej<>e(j<>e(e'<27>ej<>e(j<>e6<65>ej<>e(j<>e5<65>ej<>e(j<>d-<2D>ej<>e(j<>d.<2E>y)E<>)<01> annotationsN)<01>IntEnum)<01>cached_property)<03>Any<6E>
NamedTuple<EFBFBD>cast<73>)<07>Image<67>
ImageChops<EFBFBD> ImageFile<6C> ImageMath<74>ImageOps<70> ImagePalette<74> ImageSequence)<01>i16le)<01>o8)<01>o16le)<01> DeferredErrorF)<02>IO<49>Literal)<01>_imaging)<01>Bufferc<01><00>eZdZdZdZdZdZy)<06>LoadingStrategyz.. versionadded:: 9.1.0rr <00>N)<07>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__<5F>RGB_AFTER_FIRST<53> RGB_AFTER_DIFFERENT_PALETTE_ONLY<4C>
RGB_ALWAYS<EFBFBD><00><00>O/home/fatima/modif/sirh/venv/lib/python3.12/site-packages/PIL/GifImagePlugin.pyrr:s<00><00>!<21><17>O<EFBFBD>'(<28>$<24><12>Jr$rc<01>$<00>|jd<01>S)N)sGIF87asGIF89a)<01>
startswith)<01>prefixs r%<00>_acceptr)Is<00><00> <11> <1C> <1C>3<> 4<>4r$c<01><><00><00>eZdZdZdZdZdZdd<05>Zdd<06>Zdd<07>Z e
dd<08><04>Z e dd <09><04>Z dd
<EFBFBD>Zddd <0B>Zd<11>fd <0C> Zdd <0A>Zdd<0E>Z<12>xZS)<17> GifImageFile<6C>GIFzCompuserve GIFFNc<01><><00>|j<00>J<00>|jjd<01>}|r#|dr|jj|d<00>Sy)Nr r)<02>fp<66>read)<02>self<6C>ss r%<00>datazGifImageFile.dataYsF<00><00><13>w<EFBFBD>w<EFBFBD>"<22>"<22>"<22> <10>G<EFBFBD>G<EFBFBD>L<EFBFBD>L<EFBFBD><11>O<EFBFBD><01> <0C><11>1<EFBFBD><14><17>7<EFBFBD>7<EFBFBD><<3C><<3C><01>!<21><04>%<25> %<25>r$c<01><><00>tdt|<01>d<02>D]*}|dz||cxk(r||dzcxk(r ||dzk(r<01>'yyy)Nr<00>r rTF)<02>range<67>len)r0<00>p<>is r%<00>_is_palette_neededzGifImageFile._is_palette_needed`sX<00><00><16>q<EFBFBD>#<23>a<EFBFBD>&<26>!<21>$<24> <1C>A<EFBFBD><15><11>F<EFBFBD>a<EFBFBD><01>d<EFBFBD>:<3A>a<EFBFBD><01>A<EFBFBD><05>h<EFBFBD>:<3A>!<21>A<EFBFBD><01>E<EFBFBD>(<28>:<3A><1B>;<3B><1B> <1C>r$c<01>b<00>|j<00>J<00>|jjd<01>}t|<01>s d}t|<02><00>|dd|jd<t |d<03>t |d<05>f|_|d}|dzdz}|d zre|d
|jd <|jjd |z<00>}|j|<05>r$tjd |<05>}|x|_
|_ |j|_ |jj<00>|_d|_|j!d<0E>y)N<> znot a GIF file<6C><00>version<6F><00>
<00>r <00><><00> <00>
backgroundr4<00>RGBr)r.r/r)<00> SyntaxError<6F>info<66>i16<31>_sizer9r<00>raw<61>global_palette<74>palette<74>_fp<66>tell<6C>_GifImageFile__rewind<6E> _n_frames<65>_seek)r0r1<00>msg<73>flags<67>bitsr7rKs r%<00>_openzGifImageFile._openfs <00><00><13>w<EFBFBD>w<EFBFBD>"<22>"<22>"<22> <10>G<EFBFBD>G<EFBFBD>L<EFBFBD>L<EFBFBD><12> <1C><01><16>q<EFBFBD>z<EFBFBD>"<22>C<EFBFBD><1D>c<EFBFBD>"<22> "<22> <20><12>!<21>u<EFBFBD><04> <09> <09>)<29><1C><18><11>A<EFBFBD>Y<EFBFBD><03>A<EFBFBD>q<EFBFBD> <09>)<29><04>
<EFBFBD><11>"<22><05><05><15><01> <09>Q<EFBFBD><EFBFBD><04> <10>3<EFBFBD>;<3B>&'<27><02>e<EFBFBD>D<EFBFBD>I<EFBFBD>I<EFBFBD>l<EFBFBD> #<23><14><07><07> <0C> <0C>Q<EFBFBD>$<24>Y<EFBFBD>'<27>A<EFBFBD><13>&<26>&<26>q<EFBFBD>)<29>&<26>*<2A>*<2A>5<EFBFBD>!<21>4<><07>5<<3C><<3C><04>#<23>d<EFBFBD>l<EFBFBD><17>7<EFBFBD>7<EFBFBD><04><08><1C><07><07> <0C> <0C><0E><04> <0A>%)<29><04><0E> <0C>
<EFBFBD>
<EFBFBD>1<EFBFBD> r$c<01><00>|j<00>6|j<00>} |j|j<00>dzd<02><00>$|jS#t$r|j<00>dz|_YnwxYw|j |<01><00>E)Nr F<>rOrMrP<00>EOFError<6F>seek)r0<00>currents r%<00>n_frameszGifImageFile.n_frames<65>sw<00><00> <0F>><3E>><3E> !<21><1A>i<EFBFBD>i<EFBFBD>k<EFBFBD>G<EFBFBD> 1<><1A><18>J<EFBFBD>J<EFBFBD>t<EFBFBD>y<EFBFBD>y<EFBFBD>{<7B>Q<EFBFBD><EFBFBD><05>6<><1B>
<14>~<7E>~<7E><1D><><1C> 1<>!%<25><19><19><1B>q<EFBFBD><1F><04><0E> 1<><31> <10>I<EFBFBD>I<EFBFBD>g<EFBFBD> <1E>s<00>%A<00>!A3<03>2A3c<01><><00>|j<00>|jdk7S|j<00>}|ry |jdd<03>d}|j |<01>|S#t$rd}Y<00> wxYw)Nr TFrV)r0rY<00> is_animateds r%r\zGifImageFile.is_animated<65>sn<00><00> <0F>><3E>><3E> %<25><17>><3E>><3E>Q<EFBFBD>&<26> &<26><16>)<29>)<29>+<2B><07> <12><17> <20> <10>J<EFBFBD>J<EFBFBD>q<EFBFBD>%<25> <20><1E>K<EFBFBD> <0A> <09> <09>'<27><1A><1A><1A><> <18> <20><1F>K<EFBFBD> <20>s<00>A<00> A%<03>$A%c<01>T<00>|j|<01>sy||jkrd|_|jd<01>|j} t |jdz|dz<00>D]}|j|<03><00>y#t
$r$}|j |<02>d}t |<05>|<04>d}~wwxYw)Nrr <00>no more images in GIF file)<07> _seek_check<63>_GifImageFile__frame<6D>_imrPr5rWrX)r0<00>frame<6D>
last_frame<EFBFBD>f<>erQs r%rXzGifImageFile.seek<65>s<><00><00><13><1F><1F><05>&<26> <12> <10>4<EFBFBD><<3C><<3C> <1F><1B>D<EFBFBD>H<EFBFBD> <10>J<EFBFBD>J<EFBFBD>q<EFBFBD>M<EFBFBD><19>\<5C>\<5C>
<EFBFBD> '<27><1A>4<EFBFBD><<3C><<3C>!<21>+<2B>U<EFBFBD>Q<EFBFBD>Y<EFBFBD>7<> <1E><01><14>
<EFBFBD>
<EFBFBD>1<EFBFBD> <0A> <1E><><17> '<27> <10>I<EFBFBD>I<EFBFBD>j<EFBFBD> !<21>.<2E>C<EFBFBD><1A>3<EFBFBD>-<2D>Q<EFBFBD> &<26><> '<27>s<00>2A:<00>: B'<03>B"<03>"B'c<01><><00><00>t<00>jt<00>r<16>jj<00>|dk(r]d<01>_d<00>_d<02>_<00>jj<00>j<00>d<01>_ d<03>jvr,<2C>jd=n<1E>jr|r<10>j<00>|<01>j dzk7rd|<01><00>}t|<03><00><01>j<00>_<00>jrN<72>jj<00>j<00><00>j<00>r <00>j<00>r<01>d<01>_<00>jj!d<04>}|r|dk(r d}t#|<03><00>d}i}d}d}d} |s<1B>jj!d<04>}|r|dk(r<02>n<>|dk(<00>rP<72>jj!d<04>}<04>j<00>}
|dd k(r7|
<EFBFBD>5|
d} | dzr|
d
}t%|
d<04>d z|d <d | z} | dz } | r<>| <0C>_ n<>|ddk(r9d} |
r| |
z } <0A>j<00>}
|
r<01>d|vr|dxxd| zz cc<n| |d<d}<04><>|ddk(rx|dk(rs|
<EFBFBD>q|
<EFBFBD>jj'<00>f|d<|
j)d<14>rA<72>j<00>}
|
r/t+|
<EFBFBD>d
k\r!|
ddk(rt%|
d<04><00>jd<<00>j<00><00>r<> <00>j<00>r<01><12>ny|dk(<00>rs<72>jj!d<17>}t%|d<01>t%|d<0E>}}|t%|d<18>z|t%|d<19>z}}|<10>j,dkDs|<11>j,dkDrX|rVt/|<10>j,d<00>t/|<11>j,d<00>f<02>_t3j4<00>j0<00>||||f} |d} | dzdk7}| dzrP| dzdz}<12>jj!d
|z<00>}<13>j7|<13>rt9j:d|<13>}nd}<05>jj!d<04>d}<12>jj'<00><00>_nd}<04><02><>|<08> d }t#|<03><00>|<01>_|syg<00>_ <00>j
r0<72>j<j?<00>j
<00>j@<00>|<05>|n <0B>jB<00>_"|<07>_#|dk(r{<7B>jDr+tHtJjLk(r |<07>d!nd<1E>_'nd"<22>_'nd#<23>_'|r |<05>_(<00>n<1F>jBrdd$l)m)}|<14>jB<00><00>_(n<>d<00>_(n<><6E>jTd"k(r<>tHtJjVk7s|r<>d%<25>jvrw<72>j<jY<00>jd%d<01><00>j<j[d!t2j\j^<00><00>_d!<21>_'<00>jd%=n@d<1E>_'<00>j<j[dt2j\j^<00><00>_d,<2C>fd&<26> }d<00>_| <09>_ <00>j@<00>r<><72>jdk\<00>r<> <00>jdk(j@\}}}}||z
||z
f}t3j4|<16>d"}<17>jjad%|<07>}|<18><1C>jTd'vrBd!}||<18>d(z}n4<6E>jjad)d<01>}<18>jTd'vr
d}||<18>}t2jbje|||<18><00>_n<><6E>jf<00>,<2C>ji<00>j<<00>j@<00><00>_nw|<07>u<EFBFBD>j@\}}}}||z
||z
f}t3j4|<16>d"}|}<18>jTd'vr d!}||<07>d(z}t2jbje|||<18><00>_|<08>od}|<07><|dk(r'tHtJjLk7r |<07>jd%<n<10>jTd'vr|}tmjnd*f<04>j||f<03>g<01>_ |jad<03>r|d<00>jd<d+D]5}||vr||<00>j|<<00>|<1A>jvs<01>)<29>j|=<00>7y#tj$rY<00><>wxYw)-Nr<00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>commentr zcannot seek to frame <20>;r^<00>!<21><>r4r?<00>duration<6F>r<00><>r$<00>
<EFBFBD><EFBFBD><00> extension<6F> NETSCAPE2.0<EFBFBD>loop<6F>,<2C> <00>r<r><00>@rAr@rDFzimage not found in GIF frame<6D>RGBA<42>P<>L)<01>copy<70> transparencyc <01><00><01><00>jru|dzdzt<00>jj<00>kDrd}ttt
t
t
ft <00>jj|dz|dzdz<00><00>S|||fS)Nr4r)<06>_frame_paletter6rKr<00>tuple<6C>int)<02>colorr0s <20>r%<00>_rgbz GifImageFile._seek.<locals>._rgbas<><00><><00><13>"<22>"<22><18>1<EFBFBD>9<EFBFBD>q<EFBFBD>=<3D>3<EFBFBD>t<EFBFBD>':<3A>':<3A>'B<>'B<>#C<>C<><1D>E<EFBFBD><1B><19>#<23>s<EFBFBD>C<EFBFBD>-<2D>(<28><19>$<24>-<2D>-<2D>5<>5<>e<EFBFBD>a<EFBFBD>i<EFBFBD>%<25>!<21>)<29>a<EFBFBD>-<2D>P<>Q<><12><12>
<1E>u<EFBFBD>e<EFBFBD>,<2C>,r$<00>rDrx)rrC<00>gif)rlrq)r<>r<><00>returnztuple[int, int, int])8<>
isinstancerLr<00>ex<65>_GifImageFile__offset<65>disposer`rXrN<00>disposal_methodrF<00>tile<6C>load<61>
ValueErrorr.r2r/rWrGrMr'r6<00>size<7A>maxrHr
<00>_decompression_bomb_checkr9rrI<00>im<69>paste<74>dispose_extentrJr~<00>_frame_transparency<63>LOADING_STRATEGYrr"<00>_moderKr{<00>moder!<00>putpalettealpha<68>convert<72>Dither<65>FLOYDSTEINBERG<52>get<65>core<72>fillra<00>_crop<6F>AttributeErrorr <00>_Tile)r0rb<00> update_imagerQr1rKrF<00>frame_transparency<63> interlace<63>frame_dispose_extent<6E>blockrR<00> dispose_bitsrh<00>x0<78>y0<79>x1<78>y1rSr7r{r<><00> dispose_size<7A> dispose_moder<65>r|<00>ks` r%rPzGifImageFile._seek<65>s$<00><><00> <15>d<EFBFBD>h<EFBFBD>h<EFBFBD> <0A> .<2E><16>(<28>(<28>+<2B>+<2B> <1D> <10>A<EFBFBD>:<3A><1D>D<EFBFBD>M<EFBFBD>8<<3C>D<EFBFBD>L<EFBFBD><1D>D<EFBFBD>L<EFBFBD> <10>H<EFBFBD>H<EFBFBD>M<EFBFBD>M<EFBFBD>$<24>-<2D>-<2D> (<28>#$<24>D<EFBFBD> <20><18>D<EFBFBD>I<EFBFBD>I<EFBFBD>%<25><18>I<EFBFBD>I<EFBFBD>i<EFBFBD>(<28><14>y<EFBFBD>y<EFBFBD>\<5C><14> <09> <09> <0B> <10>D<EFBFBD>L<EFBFBD>L<EFBFBD>1<EFBFBD>$<24> $<24>)<29>%<25><17>1<>C<EFBFBD><1C>S<EFBFBD>/<2F> !<21><16>(<28>(<28><04><07> <0F>=<3D>=<3D> <10>G<EFBFBD>G<EFBFBD>L<EFBFBD>L<EFBFBD><14><1D><1D> '<27><16>)<29>)<29>+<2B><14><17>)<29>)<29>+<2B><1D>D<EFBFBD>M<EFBFBD> <10>G<EFBFBD>G<EFBFBD>L<EFBFBD>L<EFBFBD><11>O<EFBFBD><01><10>A<EFBFBD><14>I<EFBFBD>.<2E>C<EFBFBD><1A>3<EFBFBD>-<2D> <1F>EI<45><07>!<21><04>!<21><1A><18> <09>#<23><1C><12><14><18>G<EFBFBD>G<EFBFBD>L<EFBFBD>L<EFBFBD><11>O<EFBFBD><01><14><01>T<EFBFBD> <09><15><12>d<EFBFBD><19><19>G<EFBFBD>G<EFBFBD>L<EFBFBD>L<EFBFBD><11>O<EFBFBD><01><1C> <09> <09> <0B><05><14>Q<EFBFBD>4<EFBFBD>3<EFBFBD>;<3B>5<EFBFBD>#4<>"<22>!<21>H<EFBFBD>E<EFBFBD><1C>q<EFBFBD>y<EFBFBD>-2<>1<EFBFBD>X<EFBFBD>*<2A>'*<2A>5<EFBFBD>!<21>}<7D>r<EFBFBD>'9<>D<EFBFBD><1A>$<24>$.<2E><05>#5<>L<EFBFBD>#/<2F>1<EFBFBD>#4<>L<EFBFBD>#<23>
0<<3C><04>,<2C><16>q<EFBFBD>T<EFBFBD>S<EFBFBD>[<5B>"<22>G<EFBFBD> <20><1F>5<EFBFBD>(<28><07> $<24> <09> <09> <0B><05> <20>!<21>D<EFBFBD>(<28><1C>Y<EFBFBD><0F>5<EFBFBD>7<EFBFBD>?<3F>:<3A><0F>*1<><04>Y<EFBFBD><0F><1B>A<EFBFBD><1C><16>q<EFBFBD>T<EFBFBD>S<EFBFBD>[<5B>U<EFBFBD>a<EFBFBD>Z<EFBFBD>E<EFBFBD>4E<34>).<2E>t<EFBFBD>w<EFBFBD>w<EFBFBD>|<7C>|<7C>~<7E>(=<3D>D<EFBFBD><1B>%<25><1C>'<27>'<27><0E>7<> $<24> <09> <09> <0B><05> <20>S<EFBFBD><15>Z<EFBFBD>1<EFBFBD>_<EFBFBD><15>q<EFBFBD><18>Q<EFBFBD><1D>03<30>E<EFBFBD>1<EFBFBD> <0A>D<EFBFBD>I<EFBFBD>I<EFBFBD>f<EFBFBD>-<2D><1A>i<EFBFBD>i<EFBFBD>k<EFBFBD><18><1B>i<EFBFBD>i<EFBFBD>k<EFBFBD><13>d<EFBFBD><19><19>G<EFBFBD>G<EFBFBD>L<EFBFBD>L<EFBFBD><11>O<EFBFBD><01><1D>Q<EFBFBD><01><19>C<EFBFBD><01>1<EFBFBD>I<EFBFBD>B<EFBFBD><02><1B>c<EFBFBD>!<21>Q<EFBFBD>i<EFBFBD><1E><12>c<EFBFBD>!<21>Q<EFBFBD>i<EFBFBD><1E>B<EFBFBD><02><16><14><19><19>1<EFBFBD><1C>%<25><12>d<EFBFBD>i<EFBFBD>i<EFBFBD><01>l<EFBFBD>):<3A> <0C>!$<24>R<EFBFBD><14><19><19>1<EFBFBD><1C>!6<><03>B<EFBFBD><04> <09> <09>!<21> <0C>8M<38>!M<>D<EFBFBD>J<EFBFBD><19>3<>3<>D<EFBFBD>J<EFBFBD>J<EFBFBD>?<3F>')<29>2<EFBFBD>r<EFBFBD>2<EFBFBD>~<7E>$<24><19>!<21><04><05>"<22>R<EFBFBD>Z<EFBFBD>A<EFBFBD>-<2D> <09><18>3<EFBFBD>;<3B>!<21>A<EFBFBD>I<EFBFBD><11>?<3F>D<EFBFBD><1C><07><07> <0C> <0C>Q<EFBFBD>$<24>Y<EFBFBD>/<2F>A<EFBFBD><1B>.<2E>.<2E>q<EFBFBD>1<>".<2E>"2<>"2<>5<EFBFBD>!<21>"<<3C><07>"'<27><07><1C>w<EFBFBD>w<EFBFBD>|<7C>|<7C>A<EFBFBD><EFBFBD>q<EFBFBD>)<29><04> $<24><07><07> <0C> <0C><0E><04> <0A><15><13>A<EFBFBD>s<13>v <15> <1C>0<>C<EFBFBD><1A>3<EFBFBD>-<2D> <1F><1C><04> <0C><1B> <12><16><04> <09> <0F><<3C><<3C> <10>G<EFBFBD>G<EFBFBD>M<EFBFBD>M<EFBFBD>$<24>,<2C>,<2C><04>(;<3B>(;<3B> <<3C>)0<>)<<3C>g<EFBFBD>$<24>BU<42>BU<42><04><1B>#5<><04> <20> <10>A<EFBFBD>:<3A><13>"<22>"<22>#<23><EFBFBD>'A<>'A<>A<>+=<3D>+I<><16>u<EFBFBD>D<EFBFBD>J<EFBFBD>!$<24>D<EFBFBD>J<EFBFBD> <20><04>
<EFBFBD><16>&<26><04> <0C><15>$<24>$<24>%<25>#<23>D<EFBFBD>$7<>$7<>8<><04> <0C>#<23><04> <0C><13>y<EFBFBD>y<EFBFBD>C<EFBFBD><1F>$<24><0F>(X<>(X<>X<><1E>%<25><14><19><19>2<><1C><07><07>/<2F>/<2F><04> <09> <09>.<2E>0I<30>1<EFBFBD>M<>"&<26>'<27>'<27>/<2F>/<2F>&<26>%<25>,<2C>,<2C>:U<>:U<>"V<><04><07>%+<2B><04>
<EFBFBD> <20>I<EFBFBD>I<EFBFBD>n<EFBFBD>5<>%*<2A><04>
<EFBFBD>"&<26>'<27>'<27>/<2F>/<2F>%<25><15><1C><1C>9T<39>9T<39>"U<><04><07> -<2D><1C><04> <0C>@T<><04><1B> <0F> <1E> <1E>4<EFBFBD>#7<>#7<>1<EFBFBD>#<<3C>* <15><17>'<27>'<27>1<EFBFBD>,<2C>&*<2A>%8<>%8<>N<EFBFBD>B<EFBFBD><02>B<EFBFBD><02>$&<26><12>G<EFBFBD>R<EFBFBD>"<22>W<EFBFBD>#5<>L<EFBFBD><19>3<>3<>L<EFBFBD>A<>$'<27>L<EFBFBD> <20>I<EFBFBD>I<EFBFBD>M<EFBFBD>M<EFBFBD>.<2E>:L<>M<>E<EFBFBD><1C>(<28><1F>9<EFBFBD>9<EFBFBD><0F>7<>+1<>L<EFBFBD>$(<28><15>K<EFBFBD>$<24>$6<>E<EFBFBD> $<24> <09> <09> <0A> <0A>l<EFBFBD>A<EFBFBD> ><3E><05><1F>9<EFBFBD>9<EFBFBD><0F>7<>+0<>L<EFBFBD>$(<28><15>K<EFBFBD>E<EFBFBD>#(<28>:<3A>:<3A>?<3F>?<3F><<3C><1C>u<EFBFBD>#U<>D<EFBFBD>L<EFBFBD><1C>x<EFBFBD>x<EFBFBD>+<2B>'+<2B>z<EFBFBD>z<EFBFBD>$<24>'<27>'<27>4<EFBFBD>;N<>;N<>'O<><04> <0C>+<2B>7<>)-<2D>)<<3C>)<<3C><0E><02>B<EFBFBD><02>B<EFBFBD>(*<2A>R<EFBFBD><07><12>b<EFBFBD><17>'9<> <0C><1D>7<>7<> <0C>E<>'*<2A> <0C> 2<><05><1F>9<EFBFBD>9<EFBFBD><0F>7<>+1<>L<EFBFBD>$(<28>);<3B>$<<3C>t<EFBFBD>$C<>E<EFBFBD>',<2C>z<EFBFBD>z<EFBFBD><EFBFBD><EFBFBD>(<28>,<2C><05>(<1A><04> <0C> <15> <20><1D>L<EFBFBD>!<21>-<2D><18>A<EFBFBD>:<3A>'<27>?<3F>+E<>+E<>E<>4F<34><04> <09> <09>.<2E>1<><19>Y<EFBFBD>Y<EFBFBD>o<EFBFBD>5<>#5<>L<EFBFBD><19><0F><0F><19><17><12>R<EFBFBD><12>$<24><18>M<EFBFBD>M<EFBFBD><19>9<EFBFBD>l<EFBFBD>3<> <12><0E>D<EFBFBD>I<EFBFBD> <10>8<EFBFBD>8<EFBFBD>I<EFBFBD> <1E>#'<27> <09>?<3F>D<EFBFBD>I<EFBFBD>I<EFBFBD>i<EFBFBD> <20>*<2A> !<21>A<EFBFBD><10>D<EFBFBD>y<EFBFBD>#<23>A<EFBFBD>w<EFBFBD><04> <09> <09>!<21> <0C><12>d<EFBFBD>i<EFBFBD>i<EFBFBD><1E><18>I<EFBFBD>I<EFBFBD>a<EFBFBD>L<EFBFBD>  !<21><>-"<22> <15><14> <15>s<00> Fc<00> c)<03>(c)c<01>8<00><01>|jrdnd}d|_|jdk(rG|j<00><>tj
j ||j|j<00>|_n<>|jdvr<>|j|_|jrttj
j d|j|jxsd<03>|_|jjdg|jj<00><00><01><06>nd|_ |js<>|j<00><>|j|jjk7r<>tj
j |jj|j<00>}|jr+|jdg|jj<00><00><01><06>|j|jd|jjz<00>||_||_d|_t<00>|<00>A<00>y)Nryrzrr<>rD<00>rr)r~<00>_prev_imr`r<>r
r<>r<>r<>r<>r<><00>
putpalette<EFBFBD>getdatarar<>r<><00>super<65> load_prepare)r0<00> temp_mode<64> expanded_im<69> __class__s <20>r%r<>zGifImageFile.load_prepare<72>s<><00><><00><1F>.<2E>.<2E>C<EFBFBD>C<EFBFBD> <09><1C><04> <0A> <0F><<3C><<3C>1<EFBFBD> <1C><13>'<27>'<27>3<><1F>*<2A>*<2A>/<2F>/<2F><1D>t<EFBFBD>y<EFBFBD>y<EFBFBD>$<24>*B<>*B<><12><04><07><12>Y<EFBFBD>Y<EFBFBD>/<2F> )<29> <20>G<EFBFBD>G<EFBFBD>D<EFBFBD>M<EFBFBD><13>"<22>"<22><1F>*<2A>*<2A>/<2F>/<2F>#<23>t<EFBFBD>y<EFBFBD>y<EFBFBD>$<24>:R<>:R<>:W<>VW<56>X<><04><07>"<22><04><07><07>"<22>"<22>5<EFBFBD>I<>4<EFBFBD>+><3E>+><3E>+F<>+F<>+H<>I<><1F><04><08><13>}<7D>}<7D><14><18><18>!5<>$<24>)<29>)<29>t<EFBFBD>w<EFBFBD>w<EFBFBD>|<7C>|<7C>:S<><1F>*<2A>*<2A>/<2F>/<2F>$<24>'<27>'<27>,<2C>,<2C><04> <09> <09>B<>K<EFBFBD><13>"<22>"<22>&<26> <0B>&<26>&<26>u<EFBFBD>M<>t<EFBFBD>/B<>/B<>/J<>/J<>/L<>M<> <17> <1D> <1D>d<EFBFBD>g<EFBFBD>g<EFBFBD>v<EFBFBD><04><07><07> <0C> <0C>'<<3C> =<3D>!<21>D<EFBFBD>G<EFBFBD><1E><04>
<EFBFBD>"<22><04><1B> <0A><07><1C>r$c<01>D<00>|jdk(r<>|jdk(r<>ttjk(r<>|j
<00>.|j j|j
d<01>d|_nd|_|j j|jtjj<00>|_y|jsy|j|jjk7r<>|j
<00>+tjj!d|j<00>}nftjj!d|j<00>}|j#dd|j j%<00><00>|jd<04>}|j'|jd|jjz<00>||_ |j<00>J<00>|j
<00>x|jdk(r'|j j)d|j
<00>}n]|j j|j
d<01>|j jd<03>}n|j jd<04>}|j*<00>J<00>|j-||j*<00>}|j|_|j j|_|jdvr(|j j'||j*|<02>y|j j'||j*<00>y) NrryrxrDr<>rz<00>LA)r<>rx)r`r<>r<>rr"r<>r<>r<>r<>r<>r
r<>r<>r<>r<>r<>r<>r<><00>
getpaletter<EFBFBD><00>convert_transparentr<74>r<>)r0r<><00>frame_ims r%<00>load_endzGifImageFile.load_end<6E>s:<00><00> <0F><<3C><<3C>1<EFBFBD> <1C><13>y<EFBFBD>y<EFBFBD>C<EFBFBD><1F>$4<><0F>8R<38>8R<38>$R<><17>+<2B>+<2B>7<><18>G<EFBFBD>G<EFBFBD>+<2B>+<2B>D<EFBFBD>,D<>,D<>a<EFBFBD>H<>!'<27>D<EFBFBD>J<EFBFBD>!&<26>D<EFBFBD>J<EFBFBD><1E>'<27>'<27>/<2F>/<2F>$<24>)<29>)<29>U<EFBFBD>\<5C>\<5C>5P<35>5P<35>Q<><04><07> <12><13>}<7D>}<7D> <12> <0F>9<EFBFBD>9<EFBFBD><04> <0A> <0A>*<2A>*<2A> *<2A><13>'<27>'<27>3<>#<23>j<EFBFBD>j<EFBFBD>o<EFBFBD>o<EFBFBD>f<EFBFBD>d<EFBFBD>i<EFBFBD>i<EFBFBD>@<40> <0B>#<23>j<EFBFBD>j<EFBFBD>o<EFBFBD>o<EFBFBD>c<EFBFBD>4<EFBFBD>9<EFBFBD>9<EFBFBD>=<3D> <0B><1B>&<26>&<26>u<EFBFBD>e<EFBFBD>T<EFBFBD>W<EFBFBD>W<EFBFBD>5G<35>5G<35>5I<35>J<>)<29>1<>1<>%<25>8<> <0B> <17> <1D> <1D>d<EFBFBD>m<EFBFBD>m<EFBFBD>V<EFBFBD>d<EFBFBD>m<EFBFBD>m<EFBFBD>6H<36>6H<36>-H<> I<>'<27>D<EFBFBD>M<EFBFBD><17>=<3D>=<3D>,<2C> ,<2C>,<2C> <0F> #<23> #<23> /<2F><13>y<EFBFBD>y<EFBFBD>C<EFBFBD><1F><1F>7<EFBFBD>7<EFBFBD>6<>6<>t<EFBFBD>T<EFBFBD>=U<>=U<>V<><08><14><07><07>'<27>'<27><04>(@<40>(@<40>!<21>D<><1F>7<EFBFBD>7<EFBFBD>?<3F>?<3F>6<EFBFBD>2<><08><1B>w<EFBFBD>w<EFBFBD><EFBFBD><EFBFBD>u<EFBFBD>-<2D>H<EFBFBD><13>"<22>"<22>.<2E>.<2E>.<2E><17>:<3A>:<3A>h<EFBFBD><04>(;<3B>(;<3B><<3C><08><16>-<2D>-<2D><04><07><19>W<EFBFBD>W<EFBFBD>\<5C>\<5C><04>
<EFBFBD> <13>=<3D>=<3D>N<EFBFBD> *<2A> <10>G<EFBFBD>G<EFBFBD>M<EFBFBD>M<EFBFBD>(<28>D<EFBFBD>$7<>$7<><18> B<> <10>G<EFBFBD>G<EFBFBD>M<EFBFBD>M<EFBFBD>(<28>D<EFBFBD>$7<>$7<> 8r$c<01><00>|jS<00>N)r`)r0s r%rMzGifImageFile.tell<6C>s <00><00><13>|<7C>|<7C>r$)r<>z bytes | None)r7<00>bytesr<73><00>bool)r<><00>None)r<>r<>)r<>r<>)rbr<>r<>r<>)T)rbr<>r<>r<>r<>r<>)rrr<00>format<61>format_description<6F>!_close_exclusive_fp_after_loadingrJr2r9rT<00>propertyrZrr\rXrPr<>r<>rM<00> __classcell__)r<>s@r%r+r+Rsl<00><><00> <12>F<EFBFBD>)<29><16>(-<2D>%<25><19>N<EFBFBD><14><15> <16>6<0E> <1E><0E> <1E><15><1B><15><1B>"'<27> C!<21>J<1F>6(9<>Tr$r+rzry)<03>1rzryc<01><><00>|jtvr|j<00>|Stj|j<00>dk(r<>|j dtj j<00><03>}|j<00>J<00>|jjdk(rL|jjD]3}|ddk(s<01> |jj||jd<|S|S|j d<08>S) a 
Takes an image (or frame), returns an image in a mode that is appropriate
for saving in a Gif.
It may return the original image, or it may return an image converted to
palette or 'L' mode.
:param im: Image object
:returns: Image object
rDry<00>rKrxr4rr|rz) r<><00>RAWMODEr<45>r
<00> getmodebaser<65><00>Palette<74>ADAPTIVErK<00>colorsrF)r<><00>rgbas r%<00>_normalize_moder<65>s<><00><00>
<EFBFBD>w<EFBFBD>w<EFBFBD>'<27><19>
<EFBFBD><07><07> <09><11> <09> <0C><18><18><12><17><17>!<21>U<EFBFBD>*<2A> <0F>Z<EFBFBD>Z<EFBFBD><03>U<EFBFBD>]<5D>]<5D>%;<3B>%;<3B>Z<EFBFBD> <<3C><02><11>z<EFBFBD>z<EFBFBD>%<25>%<25>%<25> <0A>:<3A>:<3A>?<3F>?<3F>f<EFBFBD> $<24><1A>
<EFBFBD>
<EFBFBD>)<29>)<29> <1A><04><17><01>7<EFBFBD>a<EFBFBD><<3C>.0<EFBFBD>j<EFBFBD>j<EFBFBD>.?<3F>.?<3F><04>.E<>B<EFBFBD>G<EFBFBD>G<EFBFBD>N<EFBFBD>+<2B><19><11> <09>  <1A><12> <09> <0A>:<3A>:<3A>c<EFBFBD>?<3F>r$c<01>H<00>d}|rXt|tttf<03>rt|dd<00>}t|tj<00>rt|j
<00>}|j dk(r#|sZ|jd<01>}|<04>J<00>t|<04>}n9|std<04>td<02>D<00><00>}t jd|<03><06>|_|<03>J<00>|r<>g}|j
<00>J<00>tdt|<03>d<08>D]O}t|||dz<00>}|j
jj|<07>}||vrd}|j|<08><00>Qt|<05>D],\}}|<08><01> tt|<05><00>D] } | |vs<01>| ||<<00>,<00>.g}
|D]}|<08>J<00>|
j|<08><00>|j|
<EFBFBD>}n@t!||<02>} | <0B>2|j| |<03>}d |vr | j#|d <00>|d <|S|S|j
<00>J<00>||j
_|S#t$$r|d =Y|SwxYw)
at
Normalizes the palette for image.
- Sets the palette to the incoming palette, if provided.
- Ensures that there's a palette for L mode images
- Optimizes the palette if necessary/desired.
:param im: Image object
:param palette: bytes object containing the source palette, or ....
:param info: encoderinfo
:returns: Image object
Niryc3<01>&K<00>|] }|dz<00><01><00> y<01>w)r4Nr#)<02>.0r8s r%<00> <genexpr>z%_normalize_palette.<locals>.<genexpr>>s<00><00><><00>&B<>!<21>q<EFBFBD>A<EFBFBD>v<EFBFBD>&B<>s<00>rDr<>rr4r|)r<>r<><00> bytearray<61>listrrKr<>r<>r5r6rr<>r<><00>append<6E> enumerate<74> remap_palette<74> _get_optimize<7A>indexr<78>) r<>rKrF<00>source_palette<74>
im_palette<EFBFBD>used_palette_colorsr8<00> source_colorr<72><00>j<>dest_map<61>optimized_palette_colorss r%<00>_normalize_paletter<65>!s`<00><00><1A>N<EFBFBD><0E> <15>g<EFBFBD><05>y<EFBFBD>$<24>7<> 8<>&<26>w<EFBFBD>t<EFBFBD><03>}<7D>5<>N<EFBFBD> <15>g<EFBFBD>|<7C>8<>8<> 9<>&<26>w<EFBFBD><EFBFBD><EFBFBD>7<>N<EFBFBD> <09>w<EFBFBD>w<EFBFBD>#<23>~<7E><1D><1B><1D><1D>t<EFBFBD>,<2C>J<EFBFBD><1D>)<29> )<29>)<29>&<26>z<EFBFBD>2<>N<EFBFBD><1D>&<26>&B<>u<EFBFBD>S<EFBFBD>z<EFBFBD>&B<>B<>N<EFBFBD>!<21>.<2E>.<2E>u<EFBFBD>n<EFBFBD>M<><02>
<EFBFBD> <19> %<25>%<25> %<25><0E>02<30><1B><11>z<EFBFBD>z<EFBFBD>%<25>%<25>%<25><16>q<EFBFBD>#<23>n<EFBFBD>-<2D>q<EFBFBD>1<> .<2E>A<EFBFBD> <20><1E><01>A<EFBFBD><01>E<EFBFBD>!:<3A>;<3B>L<EFBFBD><16>J<EFBFBD>J<EFBFBD>%<25>%<25>)<29>)<29>,<2C>7<>E<EFBFBD><14>+<2B>+<2B><1C><05> <1F> &<26> &<26>u<EFBFBD> -<2D>  .<2E> "<22>"5<>6<> <1E>H<EFBFBD>A<EFBFBD>u<EFBFBD><14>}<7D><1E>s<EFBFBD>#6<>7<>8<><1E>A<EFBFBD><18> 3<>3<>12<31>+<2B>A<EFBFBD>.<2E><1D><1E> <1E> !<21><08>(<28> #<23>E<EFBFBD><18>$<24> $<24>$<24> <14>O<EFBFBD>O<EFBFBD>E<EFBFBD> "<22> #<23><10> <1D> <1D>h<EFBFBD> '<27><02>#0<><12>T<EFBFBD>#:<3A> <20> #<23> /<2F><13>!<21>!<21>":<3A>N<EFBFBD>K<>B<EFBFBD><1D><14>%<25>-<2D>+C<>+I<>+I<><1C>^<5E>,<2C>,<16>D<EFBFBD><1E>(<28>
<16>I<EFBFBD>2<EFBFBD>I<EFBFBD> <0A>:<3A>:<3A> !<21>!<21> !<21>'<27>B<EFBFBD>J<EFBFBD>J<EFBFBD><16> <0A>I<EFBFBD><49> "<22>-<2D><1C>^<5E>,<2C><15>I<EFBFBD>-<2D>s<00>H<00> H!<03> H!c <01>\<00>t|<00>}|jj<00>D]2\}}t|t<00>s<01>|j
j ||<05><00>4t|||j
<00>}t||j
<00>D]}|j|<06><00>d}t|<00>r|dz}t||d|<07>dt|<00>f|_ tj||tjdd|j zdt"|j$<00>g<01>|jd<06>y)Nrrwr<>r>r<><00>)r<>rF<00>itemsr<73><00>str<74> encoderinfo<66>
setdefaultr<EFBFBD><00>_get_global_header<65>write<74> get_interlace<63>_write_local_header<65> encoderconfigr <00>_saver<65>r<>r<>r<>)r<>r.rK<00>im_outr<74><00>vr1rRs r%<00>_write_single_framer<65>hs<00><00>
<1D>R<EFBFBD> <20>F<EFBFBD><16> <0B> <0B>!<21>!<21>#<23>,<2C><04><01>1<EFBFBD> <15>a<EFBFBD><13> <1D> <0E>N<EFBFBD>N<EFBFBD> %<25> %<25>a<EFBFBD><11> +<2B>,<2C> <20><06><07><12><1E><1E> @<40>F<EFBFBD> <1F><06><02><0E><0E> 7<><14><01>
<EFBFBD><08><08><11> <0B><14> <0E>E<EFBFBD><14>R<EFBFBD><18><15><02>
<EFBFBD><05><17><02>B<EFBFBD><06><05>.<2E><1D>}<7D>R<EFBFBD>0<>1<>F<EFBFBD><18> <0A>O<EFBFBD>O<EFBFBD><0E><02>Y<EFBFBD>_<EFBFBD>_<EFBFBD>U<EFBFBD>F<EFBFBD>R<EFBFBD>W<EFBFBD>W<EFBFBD>,<<3C>a<EFBFBD><17><16><1B><1B>AU<41>V<>W<><06><07>H<EFBFBD>H<EFBFBD>U<EFBFBD>Or$c<01>2<00>||fD<00>cgc]/}|jrt|jj<00>nd<01><02>1}}|d|dk7r"|jd<04>}|jd<04>}tj||<00>}||j d<05><06>fScc}w)Nr$rr rxF)<01>
alpha_only)rKr<>r<>r <00>subtract_modulo<6C>getbbox)<05>base_im<69>im_framer<65><00> palette_bytes<65>deltas r%<00>_getbboxr<78><00>s<><00><00>EL<01>X<EFBFBD>CV<43><06>=?<3F>R<EFBFBD>Z<EFBFBD>Z<EFBFBD><05>b<EFBFBD>j<EFBFBD>j<EFBFBD> <20> <20>!<21>S<EFBFBD>8<><06>M<EFBFBD><06><15>Q<EFBFBD><17>=<3D><11>+<2B>+<2B><1B>#<23>#<23>F<EFBFBD>+<2B><08><19>/<2F>/<2F>&<26>)<29><07> <16> &<26> &<26>x<EFBFBD><17> 9<>E<EFBFBD> <10>%<25>-<2D>-<2D>5<EFBFBD>-<2D>1<> 1<>1<><31>s<00>4Bc<01>,<00>eZdZUded<ded<ded<y)<08>_Frame<6D> Image.Imager<65>z tuple[int, int, int, int] | None<6E>bbox<6F>dict[str, Any]r<>N)rrr<00>__annotations__r#r$r%r<>r<><00>s<00><00><13>O<EFBFBD>
*<2A>*<2A><1F>r$r<>c <01> <00>|jjd<01>}|jjd|jjd<02><00>}g}d}d}d}tj|g|jjdg<00><00>D<00>]<5D>} t j | <09>D<00>]<5D>}
t|
j<00><00>}
|dk(rU|
jj<00>D]8\} } | dk(r<01> t| t<00>s<01>|jj| | <0C><00>:|jj<00>} d|
jvr| jd|
jd<00>t|
|| <0A>}
t|ttf<02>r ||| d<n"|<03> d|
jvr|
jd| d<t|ttf<02>r||| d<|dz }d}|<05>r<>|<06>r~t!||
<EFBFBD>\}}|s0| jd<01>r|djdxx| dz cc<<00><01>x|djjd<02>dk(r<>|jjd|jjd<05><00>}|<11>y|<08>ft#|
|<11>}t%j&d |
j(|<12>}|dj*j,}|<13>J<00>|j/||j0<00>t!||
<EFBFBD>d}<10>nnd
|
j(z}<10>n]| jd <0B><00>rK|
j0d k7<00>r;d| vr-|
j,<00>J<00> |
j,j3|
<EFBFBD>| d<d| v<00>r|
j<00>}t%j&d |j(| d<00>}|j0d k(r1|j7<00>\}}}}t9j:d<0E>||||<18><0F>}nh|j0d k(rAt%j&d|j(<00>}|j=|j?<00><00>|}t9j:d<11>|<0F><12>}|jA|tCjD|<19><00><13>nd}|
}|jGtI|xs|
|| <0A><00><00><03><><00><03><>tK|<05>dk(r.d|jvr|djd|jd<y|D]<5D>}|j*}
|jLs/tO|
|j<00>D]}|jQ|<1C><00>d
}nW|sd|jd<|jLd
|
j(zk7r|
jS|jL<00>}
|jLdd}tU||
||j<00><00><>y#t4$rY<00><02>8wxYw)Nrl<00>disposalr<00> append_imagesr|r rgrryr<><00>optimizer<65>rxc <01>t<00>|d|d|d|d|d|d<00>|d<00>|d<00>dzd<08>S) Nr<4E>r<><00>r<>g<>b<>arpr<>r#<00><01>argss r%<00><lambda>z(_write_multiple_frames.<locals>.<lambda><3E>sd<00><00>_<EFBFBD>T<EFBFBD>)<29>_<EFBFBD>$/<2F>D<EFBFBD><15>K<EFBFBD>(3<><04>U<EFBFBD> <0B>,7<>D<EFBFBD><15>K<EFBFBD><04>S<EFBFBD> <09>4<EFBFBD><03>9<EFBFBD>,M<>t<EFBFBD>TW<54>y<EFBFBD>)*<2A>)-<2D>S<EFBFBD> <09> %&<26> '*<2A> %*<2A>%(<28> ."<22>r$)r r
r r rzc<01>&<00>|d|ddzd<04>S)Nr<4E>r<>rpr<>r#r s r%rz(_write_multiple_frames.<locals>.<lambda><3E>s<00><00>_<EFBFBD>T<EFBFBD>)<29>_<EFBFBD>T<EFBFBD>$<24>Z<EFBFBD>#<23>=M<>s<EFBFBD>-S<>r$)r<>)<01>maskFT<46>include_color_table)+r<>r<>rF<00> itertools<6C>chainr<00>Iteratorr<72>r{r<>r<>r<>r<>r<>r<>rr<><00>_get_backgroundr
<00>newr<77>r<>rKr<>r<><00>_new_color_indexr<78><00>splitr <00> lambda_eval<61>putdata<74>get_flattened_datar<61>r<00>invertr<74>r<>r6rr<>r<><00>crop<6F>_write_frame_data)r<>r.rKrlr<00> im_frames<65> previous_im<69> frame_count<6E> background_im<69>
imSequencer<EFBFBD>r<>r<>r<><00>
diff_framer<EFBFBD>rr<>rC<00> first_paletter<65>r r
r r r<00>delta_l<5F>
frame_datar1<00>offsets r%<00>_write_multiple_framesr*<00>s#<00><00><12>~<7E>~<7E>!<21>!<21>*<2A>-<2D>H<EFBFBD><11>~<7E>~<7E>!<21>!<21>*<2A>b<EFBFBD>g<EFBFBD>g<EFBFBD>k<EFBFBD>k<EFBFBD>*<2A>.E<>F<>H<EFBFBD> <20>I<EFBFBD>&*<2A>K<EFBFBD><13>K<EFBFBD><18>M<EFBFBD><1F>o<EFBFBD>o<EFBFBD>r<EFBFBD>d<EFBFBD>B<EFBFBD>N<EFBFBD>N<EFBFBD>,><3E>,><3E><EFBFBD>PR<50>,S<>T<>]P<01>
<EFBFBD>%<25>.<2E>.<2E>z<EFBFBD>:<3A>\ P<01>H<EFBFBD>&<26>x<EFBFBD>}<7D>}<7D><EFBFBD>7<>H<EFBFBD><1A>a<EFBFBD><1F>$<24>M<EFBFBD>M<EFBFBD>/<2F>/<2F>1<>8<>D<EFBFBD>A<EFBFBD>q<EFBFBD><18>N<EFBFBD>*<2A> <20>!<21>!<21>S<EFBFBD>)<29><1A><0E><0E>1<>1<>!<21>Q<EFBFBD>7<> 8<> <1D>.<2E>.<2E>-<2D>-<2D>/<2F>K<EFBFBD><1D><18><1D><1D>.<2E><1B>&<26>&<26>~<7E>x<EFBFBD>}<7D>}<7D>^<5E>7T<37>U<>)<29>(<28>G<EFBFBD>[<5B>I<>H<EFBFBD><19>(<28>T<EFBFBD>5<EFBFBD>M<EFBFBD>2<>*2<>;<3B>*?<3F> <0B>J<EFBFBD>'<27><19>!<21>j<EFBFBD>H<EFBFBD>M<EFBFBD>M<EFBFBD>&A<>*2<>-<2D>-<2D>
<EFBFBD>*C<> <0B>J<EFBFBD>'<27><19>(<28>T<EFBFBD>5<EFBFBD>M<EFBFBD>2<>*2<>;<3B>*?<3F> <0B>J<EFBFBD>'<27> <17>1<EFBFBD> <1C>K<EFBFBD><1D>J<EFBFBD><18>[<5B>&<26>{<7B>H<EFBFBD>=<3D> <0B><05>t<EFBFBD><1B>"<22><EFBFBD><EFBFBD>z<EFBFBD>2<>!<21>"<22> <0A>1<>1<>*<2A>=<3D><1B>Z<EFBFBD>AX<41>X<>=<3D><1C><1C>R<EFBFBD>=<3D>,<2C>,<2C>0<>0<><1A><<3C><01>A<><1F>N<EFBFBD>N<EFBFBD>.<2E>.<2E>&<26><02><07><07> <0B> <0B>N<EFBFBD>(C<><16>E<EFBFBD><1D>(<28>(<28>0<>)8<><18>5<EFBFBD>)I<>J<EFBFBD>,1<>I<EFBFBD>I<EFBFBD>c<EFBFBD>8<EFBFBD>=<3D>=<3D>*<2A>,U<>M<EFBFBD>,5<>a<EFBFBD>L<EFBFBD>O<EFBFBD>O<EFBFBD>,C<>,C<>M<EFBFBD>#0<>#<<3C><<3C>#<<3C>)<29>4<>4<>]<5D>M<EFBFBD>DV<44>DV<44>W<>'<27> <0A>x<EFBFBD>@<40><11>C<><04>%<25><08> <0A> <0A>5<><04> <20>_<EFBFBD>_<EFBFBD>Z<EFBFBD>0<>X<EFBFBD>]<5D>]<5D>c<EFBFBD>5I<35>%<25>[<5B>8<>'<27>/<2F>/<2F>;<3B>;<3B>;<3B>!<21> (<28> 0<> 0<> A<> A<>(<28> K<>(<28><0E>7<>
&<26><1B>4<>%-<2D>]<5D>]<5D>_<EFBFBD>
<EFBFBD>$<24>y<EFBFBD>y<EFBFBD><13>e<EFBFBD>j<EFBFBD>j<EFBFBD>+<2B>n<EFBFBD>:U<>V<><04> <20>:<3A>:<3A><16>/<2F>).<2E><1B><1B><1D>J<EFBFBD>A<EFBFBD>q<EFBFBD>!<21>Q<EFBFBD>#,<2C>#8<>#8<> !"<22>#$<24>"#<23>"#<23>"#<23>$<1E>D<EFBFBD>" %<25>z<EFBFBD>z<EFBFBD>S<EFBFBD>0<>*/<2F>)<29>)<29>C<EFBFBD><15><1A><1A>*D<><07> '<27><0F><0F><05>0H<30>0H<30>0J<30> K<>(/<2F><05>#,<2C>#8<>#8<> S<>#(<28>$<1E>D<EFBFBD>#<23>(<28>(<28><14>H<EFBFBD>O<EFBFBD>O<EFBFBD>D<EFBFBD>4I<34>(<28>J<><1B><04>"<22>K<EFBFBD> <15> <1C> <1C>V<EFBFBD>J<EFBFBD>$:<3A>(<28>D<EFBFBD>+<2B>N<> O<>y\ P<01>]P<01>~ <0B>9<EFBFBD>~<7E><11><1A> <15><12><1E><1E> '<27>)2<>1<EFBFBD><1C>)A<>)A<>*<2A>)M<>B<EFBFBD>N<EFBFBD>N<EFBFBD>:<3A> &<26><14><1F>H<01>
<EFBFBD><1D>=<3D>=<3D><08><19><EFBFBD><EFBFBD>'<27><08>*<2A>2H<32>2H<32>I<> <1C><01><12><08><08><11> <0B> <1C><1B>F<EFBFBD><1B>@D<>
<EFBFBD>&<26>&<26>'<<3C>=<3D><19><EFBFBD><EFBFBD>&<26>8<EFBFBD>=<3D>=<3D>"8<>8<>#<23>=<3D>=<3D><1A><1F><1F>9<><08><1F>_<EFBFBD>_<EFBFBD>R<EFBFBD>a<EFBFBD>(<28>F<EFBFBD><19>"<22>h<EFBFBD><06>
<EFBFBD>0F<EFBFBD>0F<EFBFBD>G<>H<01> <10><>} *<2A>!<21> <20>!<21>s<00>2U<<04>< V <07>V c<01>"<00>t|||d<01><02>y)NT)<01>save_all)r<>)r<>r.<00>filenames r%<00> _save_allr.s<00><00> <09>"<22>b<EFBFBD>(<28>T<EFBFBD>*r$c<01>x<00>d|jvsd|jvr6|jjd|jjd<01><00>}nd}|jjdd<03>|r t |||<04>s t |||<04>|j d<04>t|d<05>r|j<00>yy)NrKrTri<00>flush) r<>rFr<>r<>r*r<>r<><00>hasattrr0)r<>r.r-r,rKs r%r<>r<>s<><00><00><11>B<EFBFBD>N<EFBFBD>N<EFBFBD>"<22>i<EFBFBD>2<EFBFBD>7<EFBFBD>7<EFBFBD>&:<3A><14>.<2E>.<2E>$<24>$<24>Y<EFBFBD><02><07><07> <0B> <0B>I<EFBFBD>0F<30>G<><07><16><07>
<EFBFBD><0E><0E>!<21>!<21>*<2A>d<EFBFBD>3<> <13>1<>"<22>b<EFBFBD>'<27>B<><1B>B<EFBFBD><02>G<EFBFBD>,<2C><06>H<EFBFBD>H<EFBFBD>T<EFBFBD>N<EFBFBD><0E>r<EFBFBD>7<EFBFBD><1B>
<EFBFBD><08><08>
<EFBFBD>r$c<01>r<00>|jjdd<02>}t|j<00>dkrd}|S)Nr<4E>r <00>r)r<>r<><00>minr<6E>)r<>r<>s r%r<>r<>0s5<00><00><12><0E><0E>"<22>"<22>;<3B><01>2<>I<EFBFBD> <0B>2<EFBFBD>7<EFBFBD>7<EFBFBD>|<7C>b<EFBFBD><18><15> <09> <14>r$c<01><><00> |jd}d|jvrt|jddz <00>}nd}t|jjdd<04><00>}|<04>|dk7s|rk|<04>dnd}||dzz}|j dt d <09>zt d
<EFBFBD>zt |<07>zt |<05>zt |xsd<04>zt d<04>z<00>|jjd <0B>}|r"t|<01>} t| <09>}
|
r
|d z}||
z}|j d t |d<00>zt |d<00>zt |jd<00>zt |jd<00>zt |<03>z<00>|r
r|j t <09><00>|j t d<0E><00>y#t$rd}Y<00><01><>wxYw)Nr|rlr?rrr rrjrkrvrrArtr>) r<><00>KeyErrorr<72>r<>r<>r<00>o16<31>_get_palette_bytes<65>_get_color_table_sizer<65><00>_get_header_palette) r.r<>r)rRr|rlr<00> packed_flagrr<><00>color_table_sizes r%r<>r<>:s<><00><00><1C><19>~<7E>~<7E>n<EFBFBD>5<> <0C><12>R<EFBFBD>^<5E>^<5E>#<23><16>r<EFBFBD>~<7E>~<7E>j<EFBFBD>1<>B<EFBFBD>6<>7<><08><14><08><12>2<EFBFBD>><3E>><3E>%<25>%<25>j<EFBFBD>!<21>4<>5<>H<EFBFBD><13><1F>8<EFBFBD>q<EFBFBD>=<3D>H<EFBFBD>'<27>3<>a<EFBFBD><11> <0B><13>x<EFBFBD>1<EFBFBD>}<7D>$<24> <0B>
<EFBFBD><08><08> <10><10><13>g<EFBFBD> <16><10><11>e<EFBFBD> <14><11><1B>o<EFBFBD> <1E><12>(<28>m<EFBFBD>  <1C>
<11><1C>"<22><11>#<23>  $<24> <11><11>e<EFBFBD>  <14>
<EFBFBD><1D>.<2E>.<2E>,<2C>,<2C>-B<>C<><17><1A>*<2A>2<EFBFBD>.<2E> <0A>0<><1D>?<3F><18> <1B><19>C<EFBFBD>K<EFBFBD>E<EFBFBD><19>,<2C>,<2C>E<EFBFBD><06>H<EFBFBD>H<EFBFBD> <0C>
<0A>f<EFBFBD>Q<EFBFBD>i<EFBFBD>.<2E> <19>
<0A>f<EFBFBD>Q<EFBFBD>i<EFBFBD>.<2E> <19> <0E>b<EFBFBD>g<EFBFBD>g<EFBFBD>a<EFBFBD>j<EFBFBD>/<2F> <1A> <0E>b<EFBFBD>g<EFBFBD>g<EFBFBD>a<EFBFBD>j<EFBFBD>/<2F>  <1A>
<0A>U<EFBFBD>)<29>  <14><06><1B>/<2F>
<EFBFBD><08><08>$<24>]<5D>3<>4<><06>H<EFBFBD>H<EFBFBD>R<EFBFBD><01>U<EFBFBD>O<EFBFBD><4F>U <14><1C><1B> <0C><1C>s<00>F;<00>; G
<03> G
c<01>@<00>|j<00>} t|d<01>5}|jdk7r)tjd|g|tj
<00><04>n<>dd|g}dg}tj |tjtj
<00><04>}tj ||j|tj
<00><07>}|j<00>J<00>|jj<00>|j<00>} | rtj| |<05><00>|j<00>} | rtj| |<06><00>ddd<00> tj|<03>y#1swY<00> xYw#t$rYywxYw# tj|<03>w#t$rYwwxYwxYw)N<>wbrD<00>ppmtogif)<02>stdout<75>stderr<72>ppmquant<6E>256)<03>stdinr@rA)<0F>_dump<6D>openr<6E><00>
subprocess<EFBFBD>
check_call<EFBFBD>DEVNULL<4C>Popen<65>PIPEr@<00>close<73>wait<69>CalledProcessError<6F>os<6F>unlink<6E>OSError)
r<EFBFBD>r.r-<00>tempfilerd<00> quant_cmd<6D> togif_cmd<6D>
quant_proc<EFBFBD>
togif_proc<EFBFBD>retcodes
r%<00> _save_netpbmrXlsy<00><00><12>x<EFBFBD>x<EFBFBD>z<EFBFBD>H<EFBFBD>$<11> <11>(<28>D<EFBFBD> !<21> L<01>Q<EFBFBD><11>w<EFBFBD>w<EFBFBD>%<25><1F><1A>%<25>%<25><1F><18>*<2A>1<EFBFBD>Z<EFBFBD>=O<>=O<><12> (<28><15><08>9<> <09>'<27>L<EFBFBD> <09>'<27>-<2D>-<2D><1D>j<EFBFBD>o<EFBFBD>o<EFBFBD>j<EFBFBD>>P<>>P<><12>
<EFBFBD>(<28>-<2D>-<2D><1D>$<24>+<2B>+<2B><1C>%<25>-<2D>-<2D> <12>
<EFBFBD>"<22>(<28>(<28>4<>4<>4<><1A>!<21>!<21>'<27>'<27>)<29>$<24>/<2F>/<2F>+<2B><07><1A>$<24>7<>7<><07><19>K<>K<>$<24>/<2F>/<2F>+<2B><07><1A>$<24>7<>7<><07><19>K<>K<>= L<01>@ <11> <0E>I<EFBFBD>I<EFBFBD>h<EFBFBD> <1F>C L<01> L<01><>D<17> <11> <10> <11><> <11> <0E>I<EFBFBD>I<EFBFBD>h<EFBFBD> <1F><><16> <11> <10> <11>sY<00> E6<00>DE<03><E6<00>E'<00>E$<07> E6<00>' E3<03>2E3<03>6F<03>8F<04> F<03> F<07>F<03>F<07>Fc<01><><00>|jdv<00>rA|<01>r>|jd<02><00>r,|jdk7<00>r|jdk7<00>r txs|jdk(}|s|j|jzdkr<>g}t |j <00><00>D]\}}|s<01> |j|<04><00>|st|<03>t|<03>k\r|S|j<00>J<00>t|jj<00>tj|jj<00>z}d|dz
j<00>z}t|<03>|dzkr|dkDr|Sy) aL
Palette optimization is a potentially expensive operation.
This function determines if the palette should be optimized using
some heuristics, then returns the list of palette entries in use.
:param im: Image object
:param info: encoderinfo
:returns: list of indexes of palette entries in use, or None
)ryrzrrrziNr r)r<>r<><00>width<74>height<68>_FORCE_OPTIMIZEr<45><00> histogramr<6D>r<>r6rKr
<00> getmodebands<64>
bit_length)r<>rF<00>optimiser<65>r8<00>count<6E>num_palette_colors<72>current_palette_sizes r%r<>r<><00>s8<00><00> <0B><07><07>:<3A><1D> <10> <10>H<EFBFBD>H<EFBFBD>Z<EFBFBD> <20> <0E>H<EFBFBD>H<EFBFBD><01>M<EFBFBD> <0E>I<EFBFBD>I<EFBFBD><11>N<EFBFBD>#<23>4<>b<EFBFBD>g<EFBFBD>g<EFBFBD><13>n<EFBFBD><08> <13>r<EFBFBD>x<EFBFBD>x<EFBFBD>"<22>)<29>)<29>+<2B>i<EFBFBD>7<>"$<24> <1F>%<25>b<EFBFBD>l<EFBFBD>l<EFBFBD>n<EFBFBD>5<> 2<><08><01>5<EFBFBD><18>'<27>.<2E>.<2E>q<EFBFBD>1<> 2<><18>3<EFBFBD>2<>3<>s<EFBFBD>;N<>7O<37>O<>*<2A>*<2A><15>:<3A>:<3A>)<29> )<29>)<29>!$<24>R<EFBFBD>Z<EFBFBD>Z<EFBFBD>%7<>%7<>!8<>E<EFBFBD><N<><N<><12>
<EFBFBD>
<EFBFBD><0F><0F>=<0E>"<0E> <1E>$%<25>);<3B>a<EFBFBD>)?<3F>(K<>(K<>(M<>#M<> <20><14>'<27>(<28>,@<40>A<EFBFBD>,E<>E<>(<28>1<EFBFBD>,<2C>*<2A>*<2A> r$c<01><><00>|syt|<00>dkrytjtjt|<00>dzd<05><00>dz
S)Nrrur r4r)r6<00>math<74>ceil<69>log)r<>s r%r9r9<00>sA<00><00> <18><10> <0C>]<5D> <1B>a<EFBFBD> <1F><10><13>y<EFBFBD>y<EFBFBD><14><18><18>#<23>m<EFBFBD>"4<><01>"9<>1<EFBFBD>=<3D>><3E><11>B<>Br$c<01>v<00>t|<00>}d|zt|<00>dzz
}|dkDr|td<03>dz|zz }|S)z<>
Returns the palette, null padded to the next power of 2 (*3) bytes
suitable for direct inclusion in the GIF header
:param palette_bytes: Unpadded palette bytes, in RGBRGB form
:returns: Null padded palette
rr4r)r9r6r)r<>r<<00>actual_target_size_diffs r%r:r:<00>sR<00><00>-<2D>]<5D>;<3B><14> !<21>$4<>4<><03>M<EFBFBD>8J<38>a<EFBFBD>8O<38>O<><1B><1E><11>"<22><15><12>A<EFBFBD><15><11><19>%<<3C><<3C><<3C> <0A> <18>r$c<01><><00><01>|jsyt|jj<00><00>|jjdk(r/dj<00>fd<03>t t <00><01>dz<00>D<00><00><00><01>S)z<>
Gets the palette for inclusion in the gif header
:param im: Image object
:returns: Bytes, len<=768 suitable for inclusion in gif header
r$rxc3<01>:<00>K<00>|]}<01>|dz|dzdz<00><01><00>y<02>w)rvr4Nr#)r<>r8rKs <20>r%r<>z%_get_palette_bytes.<locals>.<genexpr><3E>s$<00><><00><><00>X<>!<21>7<EFBFBD>1<EFBFBD>q<EFBFBD>5<EFBFBD>1<EFBFBD>q<EFBFBD>5<EFBFBD>1<EFBFBD>9<EFBFBD>5<>X<>s<00>r4)rKr<>r<><00>joinr5r6)r<>rKs @r%r8r8<00>s[<00><><00> <0E>:<3A>:<3A><12><13>B<EFBFBD>J<EFBFBD>J<EFBFBD>&<26>&<26>'<27>G<EFBFBD> <09>z<EFBFBD>z<EFBFBD><EFBFBD><EFBFBD>&<26> <20><15>(<28>(<28>X<>u<EFBFBD>S<EFBFBD><17>\<5C>UV<55>EV<45>?W<>X<>X<><07> <12>Nr$c<01><><00>d}|r?t|t<00>r-|j<00>J<00> |jj||<00>}|S|}|S#t$r}t |<03>dvr<01>Yd}~|Sd}~wwxYw)Nr)z$cannot allocate more than 256 colorsz/cannot add non-opaque RGBA color to RGB palette)r<>rrK<00>getcolorr<72>r<>)r<><00>info_backgroundrCres r%rrs<><00><00><13>J<EFBFBD><16> <15>o<EFBFBD>u<EFBFBD> -<2D><16>:<3A>:<3A>)<29> )<29>)<29>
<1A><1F>Z<EFBFBD>Z<EFBFBD>0<>0<><1F>"<22>E<>
<EFBFBD> <16><15>)<29>J<EFBFBD> <15><15><><1E> <1A><16>q<EFBFBD>6<EFBFBD>"<12><12><1A><12> <16><15><> <1A>s<00>A<00> A(<03>A#<03>#A(c<01><00>d}|jjd<02>dk(s9|r9d|vs3|jd<05><00>"|jd<06>s|jd<07>rd}t||jd<08><00>}t|<00>}t |<04>}d |zt |j d
<00>zt |j d <00>zt|d z<00>t|<03>td
<EFBFBD>zt|<04>g}|jd<05><00>_|jd td<0E>ztd<0F>zdztd<11>ztd <0B>zt |d<00>ztd
<EFBFBD>z<00>|jd<07>r<>d td<12>z}|d}t|t<00>r|j<00>}td
t|<08>d<0E>D]$} || | dz}
|tt|
<EFBFBD><00>|
zz }<07>&|td
<EFBFBD>z }|j|<07>|S)z2Return a list of strings representing a GIF headers87ar=s89ar|rsrlrhrCsGIFrr rArjrprBrrr4rn)rFr<>rr8r9r7r<>rr:r<>r<>r<><00>encoder5r6) r<>rFr=rCr<>r<<00>header<65> comment_blockrhr8<00>subblocks r%r<>r<>s<00><00> <15>G<EFBFBD> <09>w<EFBFBD>w<EFBFBD>{<7B>{<7B>9<EFBFBD><1D><16>'<27> <0C> <1A>d<EFBFBD> "<22><13>x<EFBFBD>x<EFBFBD><06><1F>+<2B><13>x<EFBFBD>x<EFBFBD>
<EFBFBD>#<23><13>x<EFBFBD>x<EFBFBD> <09>"<22><19><07> <20><12>T<EFBFBD>X<EFBFBD>X<EFBFBD>l<EFBFBD>%;<3B><<3C>J<EFBFBD>&<26>r<EFBFBD>*<2A>M<EFBFBD>,<2C>]<5D>;<3B><14> <0F>
<11> <12>
<0A>b<EFBFBD>g<EFBFBD>g<EFBFBD>a<EFBFBD>j<EFBFBD>/<2F> <1A> <0E>b<EFBFBD>g<EFBFBD>g<EFBFBD>a<EFBFBD>j<EFBFBD>/<2F> <1A> <0B> <1B>c<EFBFBD> !<21>"<22>
<EFBFBD>:<3A><0E><12>A<EFBFBD><15><1E><1B>M<EFBFBD>*<2A> <06>F<EFBFBD> <0C>x<EFBFBD>x<EFBFBD><06><17>#<23><0E> <0A> <0A> <10><10><13>g<EFBFBD> <16><10><12>f<EFBFBD> <15><1D> <1D><11><11>e<EFBFBD>  <14>
<11><11>e<EFBFBD>  <14> <12>$<24>v<EFBFBD>,<2C><1F>  <20><11><11>e<EFBFBD> <14>
<EFBFBD> <0C>x<EFBFBD>x<EFBFBD> <09><1A><1C>r<EFBFBD>#<23>w<EFBFBD><0E> <0A><16>y<EFBFBD>/<2F><07> <15>g<EFBFBD>s<EFBFBD> #<23><1D>n<EFBFBD>n<EFBFBD>&<26>G<EFBFBD><16>q<EFBFBD>#<23>g<EFBFBD>,<2C><03>,<2C> :<3A>A<EFBFBD><1E>q<EFBFBD>1<EFBFBD>s<EFBFBD>7<EFBFBD>+<2B>H<EFBFBD> <19>R<EFBFBD><03>H<EFBFBD> <0A>.<2E><18>9<> 9<>M<EFBFBD> :<3A> <16><12>A<EFBFBD><15><1E> <0A><0E> <0A> <0A>m<EFBFBD>$<24> <11>Mr$c <01><><00> ||_t|||d<01>tj||tjdd|j
zdt |j<00>g<01>|jd<04>|`y#|`wxYw)Nrr<>r<>r<>) r<>r<>r r<>r<>r<>r<>r<>r<>)r.r<>r)<00>paramss r%rr\sr<00><00> !<21>%<25><08><1C> <1C>B<EFBFBD><08>&<26>!<21>4<><11><0F><0F> <14> <0E> <16>_<EFBFBD>_<EFBFBD>U<EFBFBD>F<EFBFBD>X<EFBFBD>]<5D>]<5D>$:<3A>A<EFBFBD>w<EFBFBD>x<EFBFBD>}<7D>}<7D>?U<> V<> W<>
<EFBFBD> <0B><08><08><15><0F> <14> <20><>H<EFBFBD> <20>s <00>A2A7<00>7A;c<01><><00>|<02>i}t||<02>}d|vr d|jvr|jd|d<t|||<02>}|j|_|j|_t ||<02>}||fS)a
Legacy Method to get Gif data from image.
Warning:: May modify image data.
:param im: Image object
:param palette: bytes object containing the source palette, or ....
:param info: encoderinfo
:returns: tuple of(list of header items, optimized palette)
rC)r<>rFr<>rKr<>r<>)r<>rKrFr<><00>im_modrrs r%<00> getheaderryws}<00><00> <0C>|<7C><11><04>'<27><02>D<EFBFBD>1<><17><13>4<EFBFBD><1F>L<EFBFBD>B<EFBFBD>G<EFBFBD>G<EFBFBD>$;<3B><1F>W<EFBFBD>W<EFBFBD>\<5C>2<><04>\<5C><1A> <1F><02>G<EFBFBD>T<EFBFBD> 2<>F<EFBFBD><17><1E><1E>B<EFBFBD>J<EFBFBD> <12>I<EFBFBD>I<EFBFBD>B<EFBFBD>E<EFBFBD> <1F><02>D<EFBFBD> )<29>F<EFBFBD> <11>&<26> &<26>&r$c <01><><00>ddlm}Gd<03>d|<03>}|j<00>|<04>}t||||<02>|jS)a<>
Legacy Method
Return a list of strings representing this image.
The first string is a local image header, the rest contains
encoded image data.
To specify duration, add the time in milliseconds,
e.g. ``getdata(im_frame, duration=1000)``
:param im: Image object
:param offset: Tuple of (x, y) pixels. Defaults to (0, 0)
:param \**params: e.g. duration or other encoder info parameters
:returns: List of bytes containing GIF encoded frame data
r)<01>BytesIOc<01><00>eZdZgZdd<01>Zy)<04>getdata.<locals>.Collectorc<01>N<00>|jj|<01>t|<01>Sr<>)r2r<>r6)r0r2s r%r<>z getdata.<locals>.Collector.write<74>s<00><00> <10>I<EFBFBD>I<EFBFBD> <1C> <1C>T<EFBFBD> "<22><16>t<EFBFBD>9<EFBFBD> r$N)r2rr<>r<>)rrrr2r<>r#r$r%<00> Collectorr}<00>s <00><00><11><04> r$r)<05>ior{r<>rr2)r<>r)rvr{rr.s r%r<>r<><00>s<<00><00>&<1B><1D>G<EFBFBD><1D><07>G<EFBFBD>G<EFBFBD>I<EFBFBD> <12><1B>B<EFBFBD><15>b<EFBFBD>"<22>f<EFBFBD>f<EFBFBD>-<2D> <0A>7<EFBFBD>7<EFBFBD>Nr$z.gifz image/gif)r(r<>r<>r<>)r<>rr<>r)r<>rrK<00>_Palette | NonerFrr<>r)r<>rr.<00> IO[bytes]rKr<>r<>r<>)r<>rr<>rr<>z4tuple[Image.Image, tuple[int, int, int, int] | None])r<>rr.r<>rKr<>r<>r<>)r<>rr.r<>r-<00> str | bytesr<73>r<>)F)
r<EFBFBD>rr.r<>r-r<>r,r<>r<>r<>)r<>rr<>r<>)
r.r<>r<>rr)<00>tuple[int, int]rRr<>r<>r<>)r<>rrFrr<>zlist[int] | None)r<>r<>r<>r<>)r<>r<>r<>r<>)r<>rr<>r<>)r<>rroz=int | tuple[int, int, int] | tuple[int, int, int, int] | Noner<65>r<>)r<>rrFrr<><00> list[bytes])
r.r<>r<>rr)r<>rvrr<>r<>)NN)r<>rrKr<>rFzdict[str, Any] | Noner<65>z$tuple[list[bytes], list[int] | None])r<>)r<>rr)r<>rvrr<>r<>)J<>
__future__rrrerOrG<00>enumr<00> functoolsr<00>typingrrr<00>r
r r r rrr<00>_binaryrrGrrr7<00>_utilr<00> TYPE_CHECKINGrrr<00>_typingrrr r<>r)r+r<>r<>r<>r<>r<>r<><00>_Paletter<65>r<>r<>r<>r*r.r<>r<>r<>rXr\r<>r9r:r8rr<>rryr<><00> register_openr<6E><00> register_save<76>register_save_all<6C>register_extension<6F> register_mimer#r$r%<00><module>r<>s<00><01>4#<23><10> <0B> <09><11><18>%<25>(<28>(<28><02><02><02>"<22><17>!<21> <20><15> <0A><10>"<22><1A><1F><13>g<EFBFBD><13>#<23>2<>2<><10> 5<>h<1C>9<EFBFBD>&<26>&<26>h<1C>^ <14>#<23>C<EFBFBD>
(<28><07><1B>4 <11>9<EFBFBD> <1C>t<EFBFBD>C<EFBFBD>y<EFBFBD> (<28><<3C>+D<>+D<> D<><08>D<0E><13>D<0E>-<2D>D<0E>5C<35>D<0E><10>D<0E>N<14><13><14><11><14><1D><14>
<EFBFBD> <14>8
2<> <18>
2<>$/<2F>
2<>9<>
2<> <20>Z<EFBFBD> <20> <10><13><10>"<22><10>-<<3C><10> <09><10>D+<2B>
MR<01><13><13><13>"<22><13>.9<EFBFBD><13>EI<45><13> <09><13>&<15>/<14><11>/<14>"<22>/<14>,;<3B>/<14>DG<44>/<14> <09>/<14>d-<11>d<18><0F>3<10>lC<01><19>$ <13> <16><13><16>R<><16> <09><16>6;<12>|!<21><11>!<21><19>!<21> <1C>!<21> <1B> !<21>

<EFBFBD> !<21>8UY<01>'<27><13>'<27>-<2D>'<27><Q<>'<27>)<29>'<27>>06<30>"<13><13>"<13>,<2C>"<13>AD<41>"<13><10>"<13>P<14><05><13><13>L<EFBFBD>'<27>'<27><1C>w<EFBFBD>?<3F><13><05><13><13>L<EFBFBD>'<27>'<27><15>/<2F><17><05><17><17> <0C>+<2B>+<2B>Y<EFBFBD>7<><18><05><18><18><1C>,<2C>,<2C>f<EFBFBD>5<><13><05><13><13>L<EFBFBD>'<27>'<27><1B>5r$