1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
Ë
³òúhÙÍãó–—ddlmZddlZddlZddlZddlZddlZddlZddlm    Z    ddl
m Z m Z m Z ddlmZmZmZmZmZddlmZddlmZdd    lmZdd
lmZdd lmZdd lmZdd l m!Z!dZ"e"rddl#m$Z$ddl
m%Z%m&Z&ddlm'Z'ejPe)«Z*ejVd«jXZ-dZ.ddddddddddddd d!d"d#œZ/ejVd$«Z0ejbZ2    d%e2zZ3    Gd&„d'e    «Z4Gd(„d)e    «Z5dUd*„Z6dVdWd+„Z7Gd,„d-«Z8Gd.„d/e9«Z:Gd0„d1«Z;Gd2„d3e «Z<Gd4„d5e8«Z=dXd6„Z>Gd7„d8ej"«Z?d9d:d;d<d=d>d?d?d?d@dAdBdCdDdEdFœZ@dYdG„ZAGdH„dI«ZBGdJ„dK«ZCGdL„dMe «ZD                                                                dZdN„ZEd[dO„ZFeAdf                                            d\dP„ZGd]dQ„ZHej’e?j”e?e>«ej–e?j”eG«ej˜e?j”eF«ejše?j”dRdSg«ejœe?j”dT«y)^é)Ú annotationsN)ÚIntEnum)ÚIOÚ
NamedTupleÚcasté)ÚImageÚ
ImageChopsÚ    ImageFileÚ ImagePaletteÚ ImageSequence)Úi16be)Úi32be)Úo8)Úo16be)Úo32be)Ú    deprecate)Ú DeferredErrorF)ÚCallable)ÚAnyÚNoReturn)Ú_imagings\w\w\w\ws‰PNG
 
)Ú1r)ÚLúL;2)rúL;4)rr)úI;16úI;16B)ÚRGBr)rzRGB;16B)ÚPúP;1)r úP;2)r úP;4)r r )ÚLAr$)ÚRGBAzLA;16B)r%r%)r%zRGBA;16B))rr)ér)ér)ér)ér)r(r&)r)r&)ré)r&r*)r'r*)r(r*)r(r')r)r')r(é)r)r+s^ÿ*ÿ*$é@có—eZdZdZ    dZ    dZy)ÚDisposalrrr&N)Ú__name__Ú
__module__Ú __qualname__ÚOP_NONEÚ OP_BACKGROUNDÚ OP_PREVIOUS©óúEH:\Change_password\venv_build\Lib\site-packages\PIL/PngImagePlugin.pyr.r.ms$„Ø€Gðð€Mðð
€Kðr6r.có—eZdZdZ    dZy)ÚBlendrrN)r/r0r1Ú    OP_SOURCEÚOP_OVERr5r6r7r9r9‚s„Ø€Iðð
€Gðr6r9cóŒ—tj«}|j|t«}|jr d}t |«‚|S)Nz=Decompressed data too large for PngImagePlugin.MAX_TEXT_CHUNK)ÚzlibÚ decompressobjÚ
decompressÚMAX_TEXT_CHUNKÚunconsumed_tailÚ
ValueError)ÚsÚdobjÚ    plaintextÚmsgs    r7Ú_safe_zlib_decompressrGs>€Ü × Ñ Ó €DØ—‘ ¤>Ó2€IØ ×ÒØMˆÜ˜‹oÐØ Ðr6có4—tj||«dzS)Nlÿÿ)r=Úcrc32)ÚdataÚseeds  r7Ú_crc32rL™s€Ü :‰:d˜DÓ ! JÑ .Ð.r6có^—eZdZd d„Zd d„Zdd„Zdd„Zdd„Zdd„Zdd„Z    dd„Z
dd    „Z ddd
„Z y )Ú ChunkStreamcó —||_g|_y©N)ÚfpÚqueue)ÚselfrQs  r7Ú__init__zChunkStream.__init__¢s€Ø$&ˆŒØ:<ˆ
r6có¬—d}|j€J‚|jr:|jj«\}}}|jj|«nE|jj    d«}|dd}|jj «}t |«}t|«s*tjsdt|«›d}t|«‚|||fS)z.Fetch a new chunk. Returns header information.Nr(r'zbroken PNG file (chunk ú)) rQrRÚpopÚseekÚreadÚtellÚi32Úis_cidr ÚLOAD_TRUNCATED_IMAGESÚreprÚ SyntaxError)rSÚcidÚposÚlengthrCrFs      r7rYzChunkStream.read¦s³€àˆàw‰wÐ"Ð"Ð"Ø :Š:Ø#Ÿz™zŸ~™~Ó/Ñ ˆCfØ G‰GL‰L˜Õ à—‘— ‘ ˜Q“ˆAؐAB%ˆCØ—'‘'—,‘,“.ˆCܘ“VˆFäcŒ{Ü×2Ò2Ø/´°S³    ¨{¸!Ð<Ü! #Ó&Ð&àC˜ÐÐr6có—|SrPr5©rSs r7Ú    __enter__zChunkStream.__enter__»s€Øˆ r6có$—|j«yrP)Úclose)rSÚargss  r7Ú__exit__zChunkStream.__exit__¾s €Ø 
‰
 r6có —dx|_|_yrP)rRrQrds r7rgzChunkStream.closeÁs€Ø#Ð#ˆŒ
T•Wr6có\—|j€J‚|jj|||f«yrP)rRÚappend©rSr`rarbs    r7ÚpushzChunkStream.pushÄs+€Øz‰zÐ%Ð%Ð%Ø 
‰
×ј3  VÐ,Õ-r6có|—tjd|||«t|d|jd«›«||«S)z"Call the appropriate chunk handlerzSTREAM %r %s %sÚchunk_Úascii)ÚloggerÚdebugÚgetattrÚdecoderms    r7ÚcallzChunkStream.callÈs>€ô     ‰ Ð&¨¨S°&Ô9Ø<Œwt˜v c§j¡j°Ó&9Ð%:Ð;Ó<¸SÀ&ÓIÐIr6cóš—tjr|ddz    dzr|j||«y|j€J‚    t    |t    |««}t |jj d««}||k7rdt|«›d}t|«‚y#tj$r }dt|«›d}t|«|‚d}~wwxYw)    zRead and verify checksumrérNr'z(broken PNG file (bad header checksum in rVz(broken PNG file (incomplete checksum in ) r r]Úcrc_skiprQrLr[rYr^r_ÚstructÚerror)rSr`rJÚcrc1Úcrc2rFÚes       r7ÚcrczChunkStream.crcÎsŀô × *Ò *°°A±¸!± ¸a²Ø M‰M˜#˜tÔ $Ø àw‰wÐ"Ð"Ð"ð    *ܘ$¤ s£ Ó,ˆDܐt—w‘w—|‘| A“Ó'ˆDؐtŠ|Ø@ÄÀcÃÀ È1ÐMÜ! #Ó&Ð&ðøô|‰|ò    *Ø<¼TÀ#»Y¸KÀqÐIˆCܘcÓ"¨Ð )ûð    *ús¾ABÂC
Â*CÃC
cóV—|j€J‚|jjd«y)z Read checksumNr')rQrY)rSr`rJs   r7ryzChunkStream.crc_skipãs#€ðw‰wÐ"Ð"Ð"Ø ‰ ‰ Qr6có4—g}|j€J‚        |j«\}}}||k(r    |S|j |t j|j|««|j|«Œ_#tj$r}d}t    |«|‚d}~wwxYw)Nztruncated PNG file)    rQrYrzr{ÚOSErrorrr Ú
_safe_readrl)rSÚendchunkÚcidsr`rarbr~rFs        r7ÚverifyzChunkStream.verifyésŸ€ðˆàw‰wÐ"Ð"Ð"Øð *Ø#'§9¡9£;Ñ S˜&ð
hŠØðˆ ð H‰HSœ)×.Ñ.¨t¯w©w¸Ó?Ô @Ø K‰K˜Ô ðøô—<‘<ò *Ø*Ü˜c“l¨Ð)ûð *ús“A1Á1BÂBÂBN©rQú    IO[bytes]ÚreturnÚNone)r‰ztuple[bytes, int, int])r‰rN)rhÚobjectr‰rŠ©r‰rŠ)r`ÚbytesraÚintrbrŽr‰rŠ)r`rrarŽrbrŽr‰r)r`rrJrr‰rŠ)óIEND)r„rr‰z list[bytes]) r/r0r1rTrYrerirgrnrvrryr†r5r6r7rNrN¡s5„ó=ó ó*óó$ó.óJó *ó*õ r6rNcóJ—eZdZUdZded<ded<e    d                            dd„«Zy)    ÚiTXtzq
    Subclass of string to allow iTXt chunks to look like strings while
    keeping their extra information
 
    zstr | bytes | NoneÚlangÚtkeyNcóN—tj||«}||_||_|S)zÇ
        :param cls: the class to use when creating the instance
        :param text: value for this key
        :param lang: language code
        :param tkey: UTF-8 version of the key name
        )ÚstrÚ__new__r’r“)ÚclsÚtextr’r“rSs     r7r–z iTXt.__new__    s'€ô{‰{˜3 Ó%ˆØˆŒ    ØˆŒ    Øˆ r6)NN)r˜r•r’ú
str | Noner“r™r‰r‘)r/r0r1Ú__doc__Ú__annotations__Ú staticmethodr–r5r6r7r‘r‘ÿsJ…ñð ÓØ
ÓààDHð Øð Ø(ð Ø7Að à     ò óñ r6r‘cób—eZdZdZdd„Zdd    d„Z            d
                                            d d„Z    d                            d d„Zy) ÚPngInfoz<
    PNG chunk container (for use with save(pnginfo=))
 
    có—g|_yrP)Úchunksrds r7rTzPngInfo.__init__ s    €Ø79ˆ r6có@—|jj|||f«y)a"Appends an arbitrary chunk. Use with caution.
 
        :param cid: a byte string, 4 bytes long.
        :param data: a byte string of the encoded data
        :param after_idat: for use with private chunks. Whether the chunk
                           should be written after IDAT
 
        N)r rl)rSr`rJÚ
after_idats    r7Úaddz PngInfo.add#s€ð      ‰ ×јC  zÐ2Õ3r6cóЗt|t«s|jdd«}t|t«s|jdd«}t|t«s|jdd«}t|t«s|jdd«}|r8|jd|dz|zdz|zdzt    j
|«z«y|jd|dz|zdz|zdz|z«y)    zùAppends an iTXt chunk.
 
        :param key: latin-1 encodable text key name
        :param value: value for this key
        :param lang: language code
        :param tkey: UTF-8 version of the key name
        :param zip: compression flag
 
        úlatin-1Ústrictúutf-8óiTXtsósN)Ú
isinstancerÚencoder£r=Úcompress)rSÚkeyÚvaluer’r“Úzips      r7Úadd_itxtzPngInfo.add_itxt/sրô$˜#œuÔ%Ø—*‘*˜Y¨Ó1ˆCܘ%¤Ô'Ø—L‘L ¨(Ó3ˆEܘ$¤Ô&Ø—;‘;˜w¨Ó1ˆDܘ$¤Ô&Ø—;‘;˜w¨Ó1ˆDá Ø H‰HØØkÑ! DÑ(¨5Ñ0°4Ñ7¸%Ñ?Ä$Ç-Á-ÐPUÓBVÑVõ ð
H‰HW˜c I™o°Ñ4°uÑ<¸tÑCÀeÑKÈeÑSÕ Tr6có—t|t«rL|j|||j |jnd|j|j|¬«Sd|¬«St|t
«s    |j dd«}t|t
«s|j dd«}|r,|jd|dztj|«z«y|jd|d    z|z«y#t$r|j|||¬«cYSwxYw)
zæAppends a text chunk.
 
        :param key: latin-1 encodable text key name
        :param value: value for this key, text or an
           :py:class:`PIL.PngImagePlugin.iTXt` instance
        :param zip: compression flag
 
        Nr6)r¯r¥r¦ózTXtóótEXtr©) rªr‘r°r’r“rr«Ú UnicodeErrorr£r=r¬)rSr­r®r¯s    r7Úadd_textzPngInfo.add_textRs€ô eœTÔ "Ø—=‘=ØØØ#Ÿj™jÐ4—
’
¸#Ø#Ÿj™jÐ4—
‘
Øð !óð ð;>Øð !óð ô˜%¤Ô'ð :ØŸ ™  Y°Ó9ô˜#œuÔ%Ø—*‘*˜Y¨Ó1ˆCá Ø H‰HW˜c G™m¬d¯m©m¸EÓ.BÑBÕ Cà H‰HW˜c E™k¨EÑ1Õ 2øô ò :Ø—}‘} S¨%°S}Ó9Ò9ð :úsÁ.C)Ã)D    ÄD    NrŒ©F)r`rrJrr¢Úboolr‰rŠ)Úr¹F) r­ú str | bytesr®rºr’rºr“rºr¯r¸r‰rŠ)r­rºr®zstr | bytes | iTXtr¯r¸r‰rŠ)r/r0r1ršrTr£r°r¶r5r6r7ržržs„ñó
:ô
4ð ØØð !Uà ð!Uðð!Uðð    !Uð
ð !Uð ð !Uð
ó!UðHHMð!3Øð!3Ø'9ð!3Ø@Dð!3à     ô!3r6ržcó,—eZdZUded<ded<ded<y)Ú _RewindStatez dict[str | tuple[int, int], Any]Úinfozlist[ImageFile._Tile]Útilez
int | NoneÚseq_numN©r/r0r1r›r5r6r7r¼r¼zs…Ø
*Ó*Ø
ÓØ Ôr6r¼cóÀ‡—eZdZdˆfd„ Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z    dd„Z
dd    „Z dd
„Z dd „Z dd „Zdd „Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„ZˆxZS)Ú    PngStreamcóԕ—t‰||«i|_i|_d|_d|_g|_d|_d|_d|_    d|_
tigd«|_ d|_ y)N©rrr¹r)ÚsuperrTÚim_infoÚim_textÚim_sizeÚim_modeÚim_tileÚ
im_paletteÚim_custom_mimetypeÚ im_n_framesÚ_seq_numr¼Ú rewind_stateÚ text_memory)rSrQÚ    __class__s  €r7rTzPngStream.__init__slø€Ü ‰Ñ˜Ôð:<ˆŒ Ø.0ˆŒ ؈Œ ؈Œ Ø.0ˆŒ Ø48ˆŒØ.2ˆÔØ'+ˆÔØ$(ˆŒ Ü(¨¨R°Ó6ˆÔàˆÕr6cóŠ—|xj|z c_|jtkDrd|j›d}t|«‚y)Nz%Too much memory used in text chunks: z>MAX_TEXT_MEMORY)rÐÚMAX_TEXT_MEMORYrB)rSÚchunklenrFs   r7Úcheck_text_memoryzPngStream.check_text_memory’sN€Ø ×Ò˜HÑ$ÕØ × Ñ œoÒ -à7Ø×#Ñ#Ð$Ð$4ð6ð ô˜S“/Ð !ð .r6có€—t|jj«|j|j«|_yrP)r¼rÆÚcopyrÊrÎrÏrds r7Ú save_rewindzPngStream.save_rewind›s-€Ü(Ø L‰L× Ñ Ó Ø L‰LØ M‰Mó
ˆÕr6có—|jjj«|_|jj|_|jj |_yrP)rÏr½r×rÆr¾rÊr¿rÎrds r7ÚrewindzPngStream.rewind¢sD€Ø×(Ñ(×-Ñ-×2Ñ2Ó4ˆŒ Ø×(Ñ(×-Ñ-ˆŒ Ø×)Ñ)×1Ñ1ˆ r6cóÒ—|j€J‚tj|j|«}|jd«}tj d|d|«||dz}tj d|«|dk7rd|›d}t |«‚    t||dzd«}||jd    <|S#t$rtjrd}n‚YŒ0tj$rd}YŒFwxYw)
Nr©ziCCP profile name %rrzCompression method %srúUnknown compression method z in iCCP chunkr&Ú icc_profile) rQr rƒÚfindrrrsr_rGrBr]r=r{rÆ)rSrarbrCÚiÚ comp_methodrFrÝs        r7Ú
chunk_iCCPzPngStream.chunk_iCCP§sñ€àw‰wÐ"Ð"Ð"Ü ×  Ñ   §¡¨&Ó 1ˆð F‰F5‹MˆÜ ‰ Ð+¨Q¨r°¨UÔ3ؘ˜A™‘hˆ ܏ ‰ Ð,¨kÔ:Ø ˜!Ò Ø/° ¨}¸NÐKˆCܘcÓ"Ð "ð    Ü/°°!°a±%°'°
Ó;ˆKð'2ˆ ‰ ]Ñ#؈øôò    Ü×.Ò.Ø"‘ àñôz‰zò    ØŠKð    úsÂB0Â0C&ÃC&Ã%C&cóŒ—|j€J‚tj|j|«}|dkrtjr|Sd}t    |«‚t |d«t |d«f|_    t|d|df\|_|_    |drd|jd    <|d
r d }t|«‚|S#t$rYŒ3wxYw) Né zTruncated IHDR chunkrr'r(é    é rÚ    interlaceé zunknown filter category) rQr rƒr]rBr[rÈÚ_MODESrÉÚ
im_rawmodeÚ    ExceptionrÆr_©rSrarbrCrFs     r7Ú
chunk_IHDRzPngStream.chunk_IHDRÃsπàw‰wÐ"Ð"Ð"Ü ×  Ñ   §¡¨&Ó 1ˆØ BŠ;Ü×.Ò.ؐØ(ˆCܘS“/Ð !ܘ1˜a“y¤# a¨£)Ð+ˆŒ ð    Ü,2°A°a±D¸!¸A¹$°<Ñ,@Ñ )ˆDŒL˜$œ/ð ˆRŠ5Ø()ˆDL‰L˜Ñ %Ø ˆRŠ5Ø+ˆCܘcÓ"Ð "؈øôò    Ù ð    úsÁ1B7Â7    CÃCcóL—d|jvr1tjd|jd||j«g}nK|jd|jd<tjdd|j
z||j«g}||_||_d}t|«‚)NÚbboxr¯TÚ default_imagerÄzimage data found)    rÆr Ú_TilerérÍrÈrÊÚim_idatÚEOFError)rSrarbr¾rFs     r7Ú
chunk_IDATzPngStream.chunk_IDATØs€à T—\‘\Ñ !Ü—O‘O E¨4¯<©<¸Ñ+?ÀÀdÇoÁoÓVÐW‰Dà×ÑÐ+Ø04— ‘ ˜_Ñ-Ü—O‘O E¨6°D·L±LÑ+@À#ÀtÇÁÓWÐXˆD؈Œ ؈Œ Ø ˆÜs‹mÐr6có—d}t|«‚)Nzend of PNG image)rò)rSrarbrFs    r7Ú
chunk_IENDzPngStream.chunk_IENDås€Ø ˆÜs‹mÐr6có’—|j€J‚tj|j|«}|jdk(r    d|f|_|S)Nr r)rQr rƒrÉrË©rSrarbrCs    r7Ú
chunk_PLTEzPngStream.chunk_PLTEésD€àw‰wÐ"Ð"Ð"Ü ×  Ñ   §¡¨&Ó 1ˆØ <‰<˜3Ò Ø# Q˜hˆDŒO؈r6cóæ—|j€J‚tj|j|«}|jdk(rMtj |«r'|j d«}|dk\r ||jd<|S||jd<|S|jdvrt|«|jd<|S|jdk(r/t|«t|d«t|d«f|jd<|S)    Nr r©rÚ transparency)rrrrr&r')    rQr rƒrÉÚ_simple_paletteÚmatchrÞrÆÚi16)rSrarbrCrßs     r7Ú
chunk_tRNSzPngStream.chunk_tRNSñsä€àw‰wÐ"Ð"Ð"Ü ×  Ñ   §¡¨&Ó 1ˆØ <‰<˜3Ò Ü×$Ñ$ QÔ'ð—F‘F˜5“MØ˜’6Ø34D—L‘L Ñ0ðˆð 01— ‘ ˜^Ñ,ð
ˆð    \‰\Ð/Ñ /Ü+.¨q«6ˆDL‰L˜Ñ (ðˆð\‰\˜UÒ "Ü+.¨q«6´3°q¸!³9¼cÀ!ÀQ»iÐ+GˆDL‰L˜Ñ (؈r6có˜—|j€J‚tj|j|«}t|«dz |jd<|S)Nçjø@Úgamma)rQr rƒr[rÆr÷s    r7Ú
chunk_gAMAzPngStream.chunk_gAMAsD€àw‰wÐ"Ð"Ð"Ü ×  Ñ   §¡¨&Ó 1ˆÜ # A£¨Ñ 1ˆ ‰ WÑØˆr6cóì—|j€J‚tj|j|«}tjdt |«dz›d|«}t d„|D««|jd<|S)Nú>r'ÚIc3ó&K—|]    }|dz –—Œ y­w)rNr5)Ú.0Úelts  r7ú    <genexpr>z'PngStream.chunk_cHRM.<locals>.<genexpr>sèø€Ò,PÀ¨S°8­^Ñ,Pùs‚Ú chromaticity)rQr rƒrzÚunpackÚlenÚtuplerÆ)rSrarbrCÚraw_valss     r7Ú
chunk_cHRMzPngStream.chunk_cHRM si€ðw‰wÐ"Ð"Ð"Ü ×  Ñ   §¡¨&Ó 1ˆÜ—=‘= 1¤S¨£V¨q¡[ M°Ð!3°QÓ7ˆÜ',Ñ,PÀxÔ,PÓ'Pˆ ‰ ^Ñ$؈r6cóΗ|j€J‚tj|j|«}|dkrtjr|Sd}t    |«‚|d|j
d<|S)NrzTruncated sRGB chunkrÚsrgb)rQr rƒr]rBrÆrës     r7Ú
chunk_sRGBzPngStream.chunk_sRGBse€ðw‰wÐ"Ð"Ð"Ü ×  Ñ   §¡¨&Ó 1ˆØ AŠ:Ü×.Ò.ؐØ(ˆCܘS“/Ð !Ø  ™tˆ ‰ VÑØˆr6cóP—|j€J‚tj|j|«}|dkrtjr|Sd}t    |«‚t |d«t |d«}}|d}|dk(r|dz|dzf}||j d<|S|dk(r||f|j d    <|S)
NräzTruncated pHYs chunkrr'r(rç¦
F%uš?ÚdpiÚaspect)rQr rƒr]rBr[rÆ)    rSrarbrCrFÚpxÚpyÚunitrs             r7Ú
chunk_pHYszPngStream.chunk_pHYs(s¸€àw‰wÐ"Ð"Ð"Ü ×  Ñ   §¡¨&Ó 1ˆØ AŠ:Ü×.Ò.ؐØ(ˆCܘS“/Ð !ܐQ˜“œC  1›IˆBˆØ‰tˆØ 1Š9ؐv‘+˜r F™{Ð*ˆCØ"%ˆDL‰L˜Ñ ðˆðQŠYØ%'¨ VˆDL‰L˜Ñ "؈r6có~—|j€J‚tj|j|«}    |jdd«\}}|rc|j dd«}|j dd«}|dk(r|n||j |<||j|<|jt|««|S#t$r|}d}YŒvwxYw)Nr©rr6r¥r¦Úreplacesexif)
rQr rƒÚsplitrBrurÆrÇrÕr )rSrarbrCÚkÚvÚk_strÚv_strs        r7Ú
chunk_tEXtzPngStream.chunk_tEXt:s¼€àw‰wÐ"Ð"Ð"Ü ×  Ñ   §¡¨&Ó 1ˆð    Ø—7‘7˜5 !Ó$‰DˆAˆqñ
Ø—H‘H˜Y¨Ó1ˆEØ—H‘H˜Y¨    Ó2ˆEà'(¨G¢|¡!¸ˆDL‰L˜Ñ Ø"'ˆDL‰L˜Ñ Ø × "Ñ "¤3 u£:Ô .àˆøôò    àˆAØŠAð    ús°B,Â, B<Â;B<có@—|j€J‚tj|j|«}    |jdd«\}}|r|d}nd}|dk7rd|›d}t |«‚    t |dd«}|r\|jdd«}|jdd    «}    |    x|j|<|j|<|jt|    ««|S#t$r|}d}YŒžwxYw#t$rtjrd}n‚YŒ’tj$rd}YŒ¨wxYw)
Nr©rr6rrÜz in zTXt chunkr¥r¦r)rQr rƒrrBr_rGr]r=r{rurÆrÇrÕr )
rSrarbrCrrràrFr r!s
          r7Ú
chunk_zTXtzPngStream.chunk_zTXtNs6€àw‰wÐ"Ð"Ð"Ü ×  Ñ   §¡¨&Ó 1ˆð    Ø—7‘7˜5 !Ó$‰DˆAˆqñ ؘA™$‰KàˆKØ ˜!Ò Ø/° ¨}¸NÐKˆCܘcÓ"Ð "ð    Ü% a¨¨ eÓ,ˆAñ Ø—H‘H˜Y¨Ó1ˆEØ—H‘H˜Y¨    Ó2ˆEà8=Ð =ˆDL‰L˜Ñ  $§,¡,¨uÑ"5Ø × "Ñ "¤3 u£:Ô .àˆøô7ò    ØˆAØŠAð    ûôò    Ü×.Ò.Ø‘àñôz‰zò    ØŠAð    ús)°CÁ&C'à C$Ã#C$Ã'DÄDÄDcóF—|j€J‚tj|j|«x}}    |jdd«\}}t |«dkr|S|d|d|dd}}}    |jdd«\}}    }
|dk7r|dk(r     t |
«}
n|S|dk(r|
|jd<    |jdd«} |jd    d«} |    jd    d«} |
jd    d«}t|| | «x|j| <|j| <|jt |««|S#t$r|cYSwxYw#t$r|cYSwxYw#t$rtjr|cYS‚tj$r|cYSwxYw#t$r|cYSwxYw)
Nr©rr&rsXML:com.adobe.xmpÚxmpr¥r¦r§)rQr rƒrrBr rGr]r=r{rÆrurµr‘rÇrÕ)rSrarbÚrrCrÚcfÚcmr’Útkrr Úlang_strÚtk_strr!s               r7Ú
chunk_iTXtzPngStream.chunk_iTXtqsÁ€àw‰wÐ"Ð"Ð"Ü×$Ñ$ T§W¡W¨fÓ5Ð5ˆˆAð    Ø—7‘7˜5 !Ó$‰DˆAˆqô ˆq‹6AŠ:؈Hؐa‘D˜!˜A™$  ! " ˆBˆð    ØŸ'™' %¨Ó+‰KˆD"a𠐊7ؐQŠwðÜ-¨aÓ0‘AðØ Ð$Ò $Ø"#ˆDL‰L˜Ñ ð    Ø—H‘H˜Y¨Ó1ˆEØ—{‘{ 7¨HÓ5ˆHØ—Y‘Y˜w¨Ó1ˆFØ—H‘H˜W hÓ/ˆEô59¸ÀÈ&Ó4QÐQˆ ‰ UјdŸl™l¨5Ñ1Ø ×Ñœs 5›zÔ*àˆøôGò    ØŠHð    ûôò    ØŠHð    ûô "òÜ ×6Ò6Ø šàÜ—z‘zòØ’Hðûôò    ØŠHð    úsN²D8Á'E    Â EÂ+AFÄ8 EÅEÅ     EÅEÅFÅ7FÆFÆ F ÆF có†—|j€J‚tj|j|«}d|z|jd<|S)NóExifÚexif)rQr rƒrÆr÷s    r7Ú
chunk_eXIfzPngStream.chunk_eXIfœs@€Øw‰wÐ"Ð"Ð"Ü ×  Ñ   §¡¨&Ó 1ˆØ.°Ñ2ˆ ‰ VÑØˆr6có¤—|j€J‚tj|j|«}|dkrtjr|Sd}t    |«‚|j
d|_t jd«|St|«}|dk(s|dkDrt jd«|S||_t|d«|jd<d|_
|S)    Nr(z"APNG contains truncated acTL chunkz4Invalid APNG, will use default PNG image if possiblerlr'Úloopz
image/apng) rQr rƒr]rBrÍÚwarningsÚwarnr[rÆrÌ)rSrarbrCrFÚn_framess      r7Ú
chunk_acTLzPngStream.chunk_acTL£sĀØw‰wÐ"Ð"Ð"Ü ×  Ñ   §¡¨&Ó 1ˆØ AŠ:Ü×.Ò.ؐØ6ˆCܘS“/Ð !Ø × Ñ Ð 'Ø#ˆDÔ Ü M‰MÐPÔ Q؈Hܐq“6ˆØ qŠ=˜H zÒ1Ü M‰MÐPÔ Q؈HØ#ˆÔÜ" 1 a›yˆ ‰ VÑØ".ˆÔ؈r6có—|j€J‚tj|j|«}|dkrtjr|Sd}t    |«‚t |«}|j €|dk7s|j |j |dz
k7r d}t|«‚||_t |d«t |d«}}t |d«t |d    «}    }|j\}
} ||z|
kDs|    |z| kDr d
}t|«‚||    ||z|    |zf|jd <t|d «t|d «} } | dk(rd} t| «t| «z dz|jd<|d|jd<|d|jd<|S)Néz"APNG contains truncated fcTL chunkrrú#APNG contains frame sequence errorsr'r(rår)zAPNG contains invalid framesrîééédéèÚdurationéÚdisposaléÚblend) rQr rƒr]rBr[rÎr_rÈrÆrýÚfloat)rSrarbrCrFÚseqÚwidthÚheightrrÚim_wÚim_hÚ    delay_numÚ    delay_dens              r7Ú
chunk_fcTLzPngStream.chunk_fcTL¸s~€Øw‰wÐ"Ð"Ð"Ü ×  Ñ   §¡¨&Ó 1ˆØ BŠ;Ü×.Ò.ؐØ6ˆCܘS“/Ð !ܐ!‹fˆØ M‰MÐ ! c¨Q¢hØ M‰MÐ %¨$¯-©-¸3À¹7Ò*Bà7ˆCܘcÓ"Ð "؈Œ ܘA˜q›    ¤3 q¨!£9ˆvˆÜQ˜“œS  B›ZˆBˆØ—\‘\‰
ˆˆdØ ‰:˜Ò   V¡ ¨dÒ 2Ø0ˆCܘcÓ"Ð "Ø " B¨¨U©
°B¸±KÐ@ˆ ‰ VÑÜ" 1 b›z¬3¨q°"«:9ˆ    Ø ˜Š>؈IÜ#(¨Ó#3´e¸IÓ6FÑ#FÈÑ#Mˆ ‰ ZÑ Ø#$ R¡5ˆ ‰ ZÑ Ø ! "¡ˆ ‰ WÑØˆr6cóx—|j€J‚|dkr?tjr"tj|j|«}|Sd}t    |«‚tj|jd«}t |«}|j |dz
k7r d}t|«‚||_|j|dz|dz
«S)Nr'z"APNG contains truncated fDAT chunkrr:)    rQr r]rƒrBr[rÎr_ró)rSrarbrCrFrEs      r7Ú
chunk_fdATzPngStream.chunk_fdATÖs«€Øw‰wÐ"Ð"Ð"Ø AŠ:Ü×.Ò.Ü×(Ñ(¨¯©°&Ó9ØØ6ˆCܘS“/Ð !Ü ×  Ñ   §¡¨!Ó ,ˆÜ!‹fˆØ =‰=˜C !™GÒ #Ø7ˆCܘcÓ"Ð "؈Œ ؏‰˜s Q™w¨°©
Ó3Ð3r6r‡)rÔrŽr‰rŠrŒ)rarŽrbrŽr‰r)rarŽrbrŽr‰r)r/r0r1rTrÕrØrÚrárìrórõrørþrrrrr"r$r-r1r7rLrNÚ __classcell__©rÑs@r7rÂr€snø„õó""ó
ó2ó
ó8ó* óóóó*óóó"ó$ó(!óF)óVóó*÷<4r6rÂcó,—|jt«SrP)Ú
startswithÚ_MAGIC)Úprefixs r7Ú_acceptrUës€Ø × Ñ œVÓ $Ð$r6c󄇗eZdZdZdZdd„Zedd„«Zdd„Zdd„Z    ddd„Z
dd„Z dd    „Z dd
„Z dd „Zdd „Zdˆfd „ ZˆxZS)Ú PngImageFileÚPNGzPortable network graphicscóF—t|jjd««s d}t|«‚|j|_d|_g|_t|j«|_    |jj«\}}}    |jj|||«}|jj%||«ŒY#t$rYnvt$rktjd|||«tj|j|«}|ddj!«r|j j#||f«YŒšwxYw|jj&|_|jj*|_|jj.|_d|_|jj4|_|jj8|_|jj<xsd|_|j0jAdd«|_!|jjDr4|jjD\}}tGjH||«|_%|d    k(r |d
z
|_&n||_&|jj<ƒd|_'|jjQ«|jL|_)|jjU«|_+|jBr|xj>dz c_|jYd«|j>dkD|_-y) Nr(znot a PNG filerú%r %s %s (unknown)rr&rïFófdATr').rUrQrYr_Ú_fpÚ_PngImageFile__frameÚprivate_chunksrÂÚpngrvròÚAttributeErrorrrrsr rƒÚislowerrlrrÉÚ_moderÈÚ_sizerÆr½Ú_textrÊr¾rÌÚcustom_mimetyperÍr6ÚgetrïrËr ÚrawÚpaletteÚ_PngImageFile__prepare_idatÚ!_close_exclusive_fp_after_loadingrØÚ_PngImageFile__rewind_idatrZÚ_PngImageFile__rewindÚ_seekÚ is_animated)rSrFr`rarbrCÚrawmoderJs        r7Ú_openzPngImageFile._open÷sh€Üt—w‘w—|‘| A“Ô'Ø"ˆCܘcÓ"Ð "Ø—7‘7ˆŒØˆŒ ð
VXˆÔÜ%.¨t¯w©wÓ%7ˆŒàð $Ÿx™xŸ}™}›Ñ ˆCfð 9Ø—H‘H—M‘M # s¨FÓ3ð H‰HL‰L˜˜aÔ  ð!øôò ÙÜ!ò 9Ü— ‘ Ð1°3¸¸VÔDÜ×(Ñ(¨¯©°&Ó9Øq˜8×#Ñ#Ô%Ø×'Ñ'×.Ñ.°°Q¨xÔ8ùð     9úð—X‘X×%Ñ%ˆŒ
Ø—X‘X×%Ñ%ˆŒ
Ø—H‘H×$Ñ$ˆŒ    Ø37ˆŒ
Ø—H‘H×$Ñ$ˆŒ    Ø#Ÿx™x×:Ñ:ˆÔØŸ™×,Ñ,Ò1°ˆŒ Ø!ŸY™YŸ]™]¨?¸EÓBˆÔà 8‰8× Ò Ø ŸH™H×/Ñ/‰MˆGTÜ'×+Ñ+¨G°TÓ:ˆDŒLà 'Š>Ø"(¨1¡*ˆDÕ à"(ˆDÔ à 8‰8× Ñ Ð +Ø5:ˆDÔ 2Ø H‰H×  Ñ  Ô "Ø!%×!4Ñ!4ˆDÔ Ø ŸH™HŸM™M›OˆDŒMØ×!Ò!à— ’  Ñ"• Ø J‰JqŒMØŸ=™=¨1Ñ,ˆÕs Cà   EÃA0EÅEcó—|j€c|jr*|j}|j|jdz
«|j «|jr|j«|j€J‚|jS)Nr)rdrnr]rXr6Úload)rSÚframes  r7r˜zPngImageFile.text:so€ð :‰:Ð ð×ÒØŸ ™ à—    ‘    ˜$Ÿ-™-¨!Ñ+Ô,Ø I‰IŒKØ×ÒØ—    ‘    ˜%Ԡ؏z‰zÐ%Ð%Ð%؏z‰zÐr6cóp—|j€ d}t|«‚|jj|jdddz
«|j€J‚|jj «|jj «|jr|jj «d|_y)zVerify PNG fileNz)verify must be called directly after openrr&r()rQÚ RuntimeErrorrXr¾r_r†rgÚ _exclusive_fp)rSrFs  r7r†zPngImageFile.verifyJs‰€ð 7‰7ˆ?Ø=ˆCܘsÓ#Ð #ð     ‰ ‰ T—Y‘Y˜q‘\ !‘_ qÑ(Ô)àx‰xÐ#Ð#Ð#Ø ‰‰ÔØ ‰‰Ôà × Ò Ø G‰GM‰MŒO؈r6cóH—|j|«sy||jkr|jdd«|j}t|jdz|dz«D]}    |j|«Œy#t$r$}|j |«d}t    |«|‚d}~wwxYw)NrTrzno more images in APNG file)Ú _seek_checkr]rmÚrangeròrX)rSrsÚ
last_frameÚfr~rFs      r7rXzPngImageFile.seek\s˜€Ø×Ñ Ô&Ø Ø 4—<‘<Ò Ø J‰Jq˜$Ô à—\‘\ˆ
ܐt—|‘| aÑ'¨°©Ó3ò    +ˆAð +Ø—
‘
˜1• ñ    +øôò +Ø—    ‘    ˜*Ô%Ø3Ü˜s“m¨Ð*ûð +úsÁ A4Á4    B!Á=BÂB!cóÔ
—|j€J‚t|jt«r|jj‚|d}|dk(r3|rž|jj |j «|jj«|j|_    d|_
|jj|_ |jj|_|j|_d|_d|_|jj%dd«|_|jj%d«|_|jj%d«|_|jj%d«}d|_n_||j,dzk7rd|›}t/|«‚|j1«|j"r0|j2j5|j"|j6«|j2j9«|_|j|_|jr1t;j<|j|j«d|_    d}    |jj?d
«    |jj?«\}}}|d k(r d }tG|«‚|d k(r|r d}tE|«‚d    }    |jjI|||«Œ|r||_|j €2|j(tRjTk(rtRjV|_d|_|j(tRjTk(rX|j rK|j j9«|_|jY|j"|j6«|_yy|j(tRjVk(retZj\j_|j`|jb«|_|jY|j"|j6«|_yy#t@jBtDf$rYn–wxYw#tJ$rYn‡tF$r9|dk(r|d
z}|r    ||_    Ynjt;j<|j|«YŒ±tL$r<tNjQd|||«t;j<|j|«YŒôwxYw||_|jj|_|jj%d«|_|jj%d«|_|jj%d«}|jrŒ‚d}tG|«‚)NrrïFrArCrîrzcannot seek to frame Tr'rzNo more images in APNG fileófcTLzAPNG missing frame datar[rZzimage not found in APNG frame)2r_rªr\rÚexrXrlrÚrkriÚ_imrÆr½rÊr¾rQÚ_prev_imÚdisposerfrïÚ
dispose_opÚblend_opr]rBrrÚimÚpasteÚdispose_extentr×r rƒrYrzr{r_ròrvÚUnicodeDecodeErrorr`rrrsr.r4r3Ú_cropr    ÚcoreÚfillÚmodeÚsize)    rSrsrÚr†rFÚ frame_startr`rarbs             r7rmzPngImageFile._seekks€Øx‰xÐ#Ð#Ð#Ü d—h‘h¤ Ô .Ø—(‘(—+‘+Ð á ØˆØ A‹:ÙØ—‘— ‘ ˜dŸm™mÔ,Ø—‘—‘Ô!Ø&*×&8Ñ&8Ô#ؐ”Ø ŸH™H×,Ñ,”    Ø ŸH™H×,Ñ,”    ØŸ(™(”Ø ˆDŒM؈DŒLØ!%§¡§¡¨ÀÓ!FˆDÔ Ø"Ÿi™iŸm™m¨JÓ7ˆDŒOØ ŸI™IŸM™M¨'Ó2ˆDŒMØ!ŸY™YŸ]™]¨6Ó2ˆN؈DŽLà˜Ÿ ™  qÑ(Ò(Ø-¨e¨WÐ5Ü  “oÐ%ð I‰IŒKà|Š|Ø—‘— ‘ ˜dŸl™l¨D×,?Ñ,?Ô@Ø ŸG™GŸL™L›NˆDŒMà—h‘hˆDŒGð×"Ò"Ü×$Ñ$ T§W¡W¨d×.AÑ.AÔBØ&'Ô#؈KØØ—‘— ‘ ˜Q”ðØ'+§x¡x§}¡}£Ñ$C˜˜fð˜'’>Ø7CÜ" 3›-Ð'ؘ'’>Ù"à7˜Ü)¨#Ó.Ð.Ø"&Kð :Ø—H‘H—M‘M # s¨FÔ3ð'ñT ØESˆDÔ ð =‰=Ð   T§_¡_¼×8LÑ8LÒ%LÜ&×4Ñ4ˆDŒOàˆŒ Ø ?‰?œh×2Ñ2Ò 2؏}Š}Ø#Ÿ}™}×1Ñ1Ó3” Ø#Ÿz™z¨$¯,©,¸×8KÑ8KÓL• ðð_‰_¤× 6Ñ 6Ò 6Ü Ÿ:™:Ÿ?™?¨4¯9©9°d·i±iÓ@ˆDŒLØŸ:™: d§l¡l°D×4GÑ4GÓHˆDLð7øôcŸ ™ ¤kÐ2òÙðûô*òÙÜò:ؘg’~Ø !™ ˜Ù&Ø28˜DÔ/Ù!Ü×(Ñ(¨¯©°&×9Ü%ò:Ü—L‘LÐ!5°s¸CÀÔHÜ×(Ñ(¨¯©°&×9ð:úð!ˆDŒLØŸ™×(Ñ(ˆDŒIØ"Ÿi™iŸm™m¨JÓ7ˆDŒOØ ŸI™IŸM™M¨'Ó2ˆDŒMØ!ŸY™YŸ]™]¨6Ó2ˆNà—9”9Ø5Ü˜s“mÐ#s7É6P!Ê=QÐ!P=Ð<P=Ñ    SÑ SÑ( SÒ ASÓScó—|jSrP)r]rds r7rZzPngImageFile.tellÏs €Ø|‰|Ðr6có—|jjd«r|jdz|_|j|_t
j
j |«y)z"internal: prepare to read PNG fileræ)rN)r½rfÚ decoderconfigriÚ_PngImageFile__idatr Ú load_preparerds r7r’zPngImageFile.load_prepareÒsH€ð 9‰9=‰=˜Ô %Ø!%×!3Ñ!3°dÑ!:ˆDÔ à×)Ñ)ˆŒ Ü×Ñ×(Ñ(¨Õ.r6cóH—|j€J‚|jdk(r |jjd«|jj«\}}}|dvr|jj    |||«y|dk(r)    |jj |||«|dz
|_n||_|jdk(rŒ |dkr |j}nt||j«}|j|z
|_|jj|«S#t $rYŒ„wxYw)zinternal: read more image datarr')óIDATsDDATr[r6r[)r_r‘rQrYrnrvròÚmin)rSÚ
read_bytesr`rarbs     r7Ú    load_readzPngImageFile.load_readÛs€ðx‰xÐ#Ð#Ð#؏k‰k˜QÒð G‰GL‰L˜ŒOà#Ÿx™xŸ}™}›Ñ ˆCfàÐ5Ñ5Ø—‘— ‘ ˜c 3¨Ô/ØàgŠ~ðØ—H‘H—M‘M # s¨FÔ3ð% q™j• à$” ð%k‰k˜QÓð* ˜Š?ØŸ™‰Jä˜Z¨¯©Ó5ˆJà—k‘k JÑ.ˆŒ àw‰w|‰|˜JÓ'Ð'øô òÙðúsÁ?DÄ    D!Ä D!có—|j€J‚|jdk7r%|jj|j«    |jjd«    |jj«\}}}|dk(rnU|dk(r1|jr%d|_|jj|||«n    |jj|||«Œ•|jj.|_|js"|jj3«d|_y|j4rO|j6t8j:k(r0|j=|j>|j@«}|j>jBd k(r.d |jDvr |jGd |jDd «}nŠ|j>jBdk(r`d |jDvrR|jDd }tI|tJ«r|jM|«n!tI|tN«r|jQ|«|jSd «}|j4jU||j@|«|j4|_yyy#tj
t f$rYŒÂwxYw#t$rYŒÒt$rZ|dk(r|dz}    tj|j|«n*#t$r}tj rYd}~YŒ&|‚d}~wwxYwYŒ4t"$rmt$j'd|||«tj|j|«}|d    d
j)«r|j*j-||df«YŒ¨wxYw)z%internal: finished reading image dataNrTr'rr}r[rZrr&rrúr%r )+r_r‘rQrYrzr{r_rnrirnrvr‡ròr rƒr‚r]r`rrrsrar^rlrÇrdrgr€rƒr9r;rˆr„r†r‹r½Úconvert_transparentrªrÚputpalettealphasrŽÚputpalettealphaÚconvertr…)    rSr`rarbr~rCÚupdatedÚmaskÚts             r7Úload_endzPngImageFile.load_endýsÒ€àx‰xÐ#Ð#Ð#Ø ;‰;˜!Ò Ø G‰GL‰L˜Ÿ™Ô %ØØ G‰GL‰L˜ŒOð Ø#'§8¡8§=¡=£?Ñ S˜&ðgŠ~ØØ˜’ D×$4Ò$4à&'Ô#Ø—‘— ‘ ˜c 3¨Ô/Øð ?Ø—‘— ‘ ˜c 3¨Ô/ð#ðF—X‘X×%Ñ%ˆŒ
Ø×ÒØ H‰HN‰NÔ ØˆDHà}‹} §¡´%·-±-Ó!?ØŸ*™* T§W¡W¨d×.AÑ.AÓBØ—7‘7—<‘< 5Ò(¨^¸t¿y¹yÑ-HØ"×6Ñ6Ø §    ¡    ¨.Ñ 9ó‘Dð—w‘w—|‘| sÒ*¨~ÀÇÁÑ/JØ ŸI™I nÑ5˜Ü% a¬Ô/Ø#×4Ñ4°QÕ7Ü'¨¬3Ô/Ø#×3Ñ3°AÔ6Ø"Ÿ?™?¨6Ó2DØ— ‘ ×#Ñ# G¨T×-@Ñ-@À$ÔGØŸ-™-•ð"@ˆ}øôG—L‘L¤+Ð.ò Úð ûô&ò ÚÜò      Ø˜'’>ؘa‘KFð Ü×(Ñ(¨¯©°&Õ9øÜò Ü ×6Ò6Þà˜ûð     úò:ô "ò ?Ü— ‘ Ð1°3¸¸VÔDÜ×(Ñ(¨¯©°&Ó9Øq˜8×#Ñ#Ô%Ø×'Ñ'×.Ñ.°°Q¸¨~Ô>úð     ?úsaÁ I?Â;JÉ?JÊJÊ    NÊ+NÊ> KËNË    LË(LË8NË?LÌLÌNÌ A1NÎNcó´—d|jvr|j«d|jvrd|jvry|j«j«S)Nr0zRaw profile type exif)r½rrÚgetexifÚ_get_merged_dictrds r7Ú_getexifzPngImageFile._getexif;sG€Ø ˜Ÿ™Ñ "Ø I‰IŒKØ ˜Ÿ™Ñ "Ð'>ÀdÇiÁiÑ'OØØ|‰|‹~×.Ñ.Ó0Ð0r6có\•—d|jvr|j«t‰| «S)Nr0)r½rrrÅr¢)rSrÑs €r7r¢zPngImageFile.getexifBs%ø€Ø ˜Ÿ™Ñ "Ø I‰IŒKä‰w‰Ó Ð r6rŒ)r‰zdict[str, str | iTXt])rsrŽr‰rŠr·)rsrŽrÚr¸r‰rŠ)r‰rŽ)r–rŽr‰r)r‰zdict[int, Any] | None)r‰z
Image.Exif)r/r0r1ÚformatÚformat_descriptionrpÚpropertyr˜r†rXrmrZr’r—r r¤r¢rOrPs@r7rWrWós`ø„Ø €FØ4ÐóA-ðFò óð óó$ +ôbIóHó/ó (óD<(ó|1÷!ñ!r6rW)rór©)úL;1r©r©)rór©)rór©)rór©)r$r­r¬)rór©)r!r©ó)r"r«r¯)r#r¬r¯)r r­r¯)rr­r«)r%r­ó)rrªrrrr$rrrr!r"r#r rr%cóò—dj|«}|jtt|««|z«|j|«t    |t    |««}|jt|««y)z'Write a PNG chunk (including CRC field)r6N)ÚjoinÚwriteÚo32r rL)rQr`rJÚ    byte_datars     r7Úputchunkr¶`sW€ð—‘˜“€Ià‡HHŒS”Y“Ó   3Ñ &Ô'؇HHˆYÔÜ
œF 3›KÓ
(€C؇HHŒS‹XÕr6có—eZdZdd„Zdd„Zy)Ú_idatcó —||_||_yrP)rQÚchunk)rSrQrºs   r7rTz_idat.__init__ns€ØˆŒØˆ
r6có>—|j|jd|«y)Nr”)rºrQ©rSrJs  r7r³z _idat.writers€Ø 
‰
4—7‘7˜G TÕ*r6N)rQrˆrºúCallable[..., None]r‰rŠ©rJrr‰rŠ©r/r0r1rTr³r5r6r7r¸r¸ks „óô+r6r¸có—eZdZdd„Zdd„Zy)Ú_fdatcó.—||_||_||_yrP)rQrºr¿)rSrQrºr¿s    r7rTz_fdat.__init__ys€ØˆŒØˆŒ
؈ r6có—|j|jdt|j«|«|xjdz c_y)Nr[r)rºrQr´r¿r¼s  r7r³z _fdat.write~s/€Ø 
‰
4—7‘7˜G¤S¨¯©Ó%6¸Ô=Ø  Š ˜ÑŽ r6N)rQrˆrºr½r¿rŽr‰rŠr¾r¿r5r6r7rÁrÁvs „óô
r6rÁcó,—eZdZUded<ded<ded<y)Ú_Frameú Image.Imager„z tuple[int, int, int, int] | Nonerîzdict[str, Any]Ú encoderinfoNrÀr5r6r7rÅrŃs…؃OØ
*Ó*ØÔr6rÅcóF —|jjd«}|jjd|jjdd««}|jjd|jjdtj««}    |jjd|jjdt
j ««}
|rtj|«} ntj|g|«} g} d} | D]Ò}tj|«D]¶}|j|k(r|j«}n|j|«}|jj«}t|tt f«r    || |d<n"|€ d|jvr|jd|d<t|    tt f«r|    | |d<t|
tt f«r|
| |d<| dz } | rÅ| d}|jjd«}|jjd«}|tj"k(rt%| «dkrtj&}|tj&k(r‡|j(j«}t*j,j/d    |j0d
«}|j2}|r|j5|«}nd |j0z}|j7||«n/|tj"k(r| d j(}n |j(}t9j:|jd    «|jd    ««}|j=d ¬«}|sJ||jd«k(r6||jd«k(r"d|vr|jdxx|dz cc<Œ™d}| j?tA|||««Œ¹ŒÕt%| «dk(r|s| dj(S||dtCt%| ««tC|««|rz|j|k7r|j|«}tEjF|tItJtLtO||««tEjPdd |j0zd|«g«d}tS| «D]ë\}}|j(}|j2sd |j0z}n|j2}|j5|«}|j0}|j}tUtW|jdd«««}|jd|    «}|jd|
«}||dtC|«tC|d«tC|d«tC|d«tC|d«tY|«tYd«t[|«t[|«« |dz }|dk(r^|s\tEjF|tItJtLtO||««tEjPdd |j0zd|«g«Œƒt]|||«}tEjF|tItJtL|«tEjPdd |j0zd|«g«|j^}Œîy)Nr?r3rrArCréÿÿÿÿr&r%)rrrrrÄéþÿÿÿF)Ú
alpha_onlysacTLr¯r}r>)0rÇrfr½r.r2r9r:Ú    itertoolsÚchainr ÚIteratorr‹r×rœrªÚlistr r4r r3r„r    r‰rŠrŒrîÚcropr…r
Úsubtract_moduloÚgetbboxrlrÅr´r Ú_saverrrr¸rðÚ    enumeraterŽÚroundÚo16rrÁr¿) r„rQrºr‹rorïÚ append_imagesr?r3rArCrÍÚ    im_framesÚ frame_countÚim_seqÚim_framerÇÚpreviousÚ prev_disposalÚ
prev_blendÚbase_imrrîÚdeltar¿rsÚ
frame_datarŒÚframe_durationÚframe_disposalÚ frame_blendÚ fdat_chunkss                                 r7Ú_write_multiple_framesræ‰s—€ð~‰~×!Ñ! *Ó-€HØ >‰>× Ñ ˜f b§g¡g§k¡k°&¸!Ó&<Ó =€D؏~‰~×!Ñ! *¨b¯g©g¯k©k¸*Äh×FVÑFVÓ.WÓX€HØ N‰N× Ñ ˜w¨¯©¯ © °G¼U¿_¹_Ó(MÓ N€EáÜ—‘  Ó.‰ä—‘   mÓ4ˆà €IØ€KØó3BˆÜ%×.Ñ.¨vÓ6ó2    BˆH؏}‰} Ò$Ø#Ÿ=™=›?‘à#×+Ñ+¨DÓ1ØŸ.™.×-Ñ-Ó/ˆKܘ(¤T¬5 MÔ2Ø*2°;Ñ*? ˜JÒ'ØÐ! j°H·M±MÑ&AØ*2¯-©-¸
Ñ*C ˜JÑ'ܘ(¤T¬5 MÔ2Ø*2°;Ñ*? ˜JÑ'ܘ%¤$¬ Ô/Ø',¨[Ñ'9 ˜GÑ$Ø ˜1Ñ ˆKâØ$ R™=Ø (× 4Ñ 4× 8Ñ 8¸Ó D Ø%×1Ñ1×5Ñ5°gÓ>
Ø ¤H×$8Ñ$8Ò8¼SÀ»^ÈaÒ=OÜ$,×$:Ñ$:Mà ¤H×$:Ñ$:Ò:Ø&Ÿk™k×.Ñ.Ó0GÜ#Ÿj™jŸo™o¨f°b·g±g¸|ÓLGØ#Ÿ=™=DÙØ")§,¡,¨tÓ"4™à%¨¯©Ñ/˜Ø—M‘M '¨4Õ0Ø"¤h×&:Ñ&:Ò:Ø'¨™m×.Ñ.‘Gà&Ÿk™kGÜ"×2Ñ2Ø×$Ñ$ VÓ,¨g¯o©o¸fÓ.Eóð—}‘}°}Ó6áØ%¨¯©¸Ó)DÒDØ" k§o¡o°gÓ&>Ò>Ø" kÑ1à×(Ñ(¨Ó4¸ ÀJÑ8OÑOÓ4ÙàØ × Ñ œV H¨d°KÓ@Ö Aòe2    Bð3Bôj ˆ9ƒ~˜Ò¡=ؘ‰|‰Ðñ
Ø
ØÜ ŒC    ‹NÓÜ ˆD‹    ô    ñØ 7‰7dŠ?Ø—‘˜DÓ!ˆB܏‰Ø Ü ””E‘œE " eÓ,Ó -Ü _‰_˜U F¨R¯W©WÑ$4°a¸Ó AÐ Bô    
ð €GÜ& yÓ1ó**шˆzØ—=‘=ˆØŠØ˜HŸM™MÑ)‰Dà—?‘?ˆDØ—}‘} TÓ*ˆH؏}‰}ˆØ ×,Ñ,ˆ ÜœU ;§?¡?°:¸qÓ#AÓBÓCˆØ$Ÿ™¨°XÓ>ˆØ!—o‘o g¨uÓ5ˆ á Ø Ø Ü ‹LÜ Q‘‹LÜ Q‘‹LÜ Q‘‹LÜ Q‘‹LÜ Ó Ü ‹IÜ ˆ~Ó Ü ˆ{‹Oô     
ð    1‰ ˆà AŠ:™mä O‰OØÜ”Rœ‘Y¤ b¨%Ó 0Ó1Ü—‘ ¨°·±Ñ(>ÀÀ7ÓKÐLö ô    E¨7Ó3ˆKÜ O‰OØÜ”Rœ‘Y  Ó,Ü—‘ ¨°·±Ñ(>ÀÀ7ÓKÐLô ð
"×)Ñ)ŠGðU**ðV r6có"—t|||d¬«y)NT)Úsave_all)rÓ)r„rQÚfilenames   r7Ú    _save_allrês€Ü    ˆ"ˆb( TÖ*r6c ó<‡(—|r |jjd|jjd««}t«}t«Š(|jjdg«}t    j
|g|«D]R}t j|«D]8}    |j|    j«‰(j|    j«Œ:ŒTdD]}
|
|vsŒn|j«}
tˆ(fd„td«D««} n|j} |j}
|
} |
dk(r–d|jvrtd|jdzd    «} nL|jr>t!tt#|jj%«d«d
zd    «d«} nd    } | d kr| dkrd}n
| d krd}nd }| d |›z } |jjdd«|jjdd«|jjdd«|jjdd«f|_    t(| \}}}| dk(rt/ddd ¬«|j1t2«||dt5| d«t5| d«||ddd«    gd¢}|jjd|jjd««}|r8d }|d!zt7j8|«z}||d"|«|j;d#«|jjd$«}|r‚gd%¢}|j<D]o}|dd\}}||vr|j;|«||||«Œ+||vr ||||«Œ:|ddj?«sŒNt#|«d
k(xr|d}|rŒf||||«Œq|jdk(rO d
z}|j@jCd&«d|}t#|«|kr|dz }t#|«|krŒ||d'|«|jjd(|jjd(d««}|s|dk(rð|jdk(rM } tE|tF«r||d)|d| «nt!dtd*|««}d+|zdz}!||d)|!d| «në|jd,vr*t!dtd-|««}||d)tI|««n³|jd&k(r2|\}"}#}$||d)tI|"«tI|#«ztI|$«z«nrd(|jvrdd.}t-|«‚|jdk(rH|j@jK«d/k(r+|j@jCd/d0«}! } ||d)|!d| «|jjd1«}%|%rB||d2t5tM|%dd3z d4z««t5tM|%dd3z d4z««d5«|r=d6d7g}|j<D]*}|dd\}}||vsŒ|j;|«||||«Œ,|jjd8«}&|&rKtE|&tNjP«r|&jSd9«}&|&jUd:«r|&d;d}&||d<|&«|}'|rtW||||
|«}'|'rZtYjZ|'t]t^tFta||««tYjbd=d>|'jzd|«g«|rO|j<D]@}|dd\}}|ddj?«sŒt#|«d
k(xr|d}|sŒ7||||«ŒB||d?d«te|d@«r|jg«yy#t*$r}d|
›d}t-|«|‚d}~wwxYw)ANrïr×)r%rr c3óH•‡K—|]Štˆfd„‰D««–—Œy­w)c3ó(•K—|]    }|‰–—Œ y­wrPr5)rÚ
frame_sizerßs  €r7r    z"_save.<locals>.<genexpr>.<genexpr>4søèø€Ò?¨:˜ AÑ?ùsƒN)Úmax)rrßÚsizess @€r7r    z_save.<locals>.<genexpr>4sùèø€ÒRÀA”SÓ?¸Ô?×?ÑRùs„"r&r Úbitsrér*r)r'ú;ÚoptimizeFÚcompress_levelrÉÚ compress_typeÚ
dictionaryr6zcannot write mode z as PNGrzSaving I mode images as PNGrã)Ú
stacklevelsIHDRrr©)scHRMscICPsgAMAssBITósRGBstIMErÝs ICC Profiler³siCCPrùÚpnginfo)ssPLTr¨r´r²rsPLTErústRNSéÿóÿ)rrrriÿÿz%cannot use transparency for this moder%ÚArspHYsrgà?r©sbKGDshISTr0r(r/r+seXIfr¯rÄrÚflush)4rÇrfr½ÚsetrÌrÍr rÎr£r‹rŒrWr ryr•rhrïr ÚgetdataÚ encoderconfigÚ    _OUTMODESÚKeyErrorr‚rr³rSr´r=r¬Úremover rar„Ú
getpaletterªrrÖÚgetpalettemoderŽr    ÚExifÚtobytesrRrær rÓrrr¸rðÚhasattrrþ))r„rQrérºrèrïÚmodesr×rÚrÛr‹rŒÚoutmodeÚcolorsrñroÚ    bit_depthÚ
color_typer~rFr ÚiccÚnamerJr½Úchunks_multiple_allowedÚ
info_chunkr`r¢Úpalette_byte_numberÚ palette_bytesrúÚ alpha_bytesÚalphaÚredÚgreenÚbluerr0Ú    single_imrðs)                                        @r7rÓrÓsdø€òØŸ™×*Ñ*Ø ˜RŸW™WŸ[™[¨Ó9ó
ˆ ô“ˆÜ“ˆØŸ™×*Ñ*¨?¸BÓ?ˆ Ü—o‘o r d¨MÓ:ò    )ˆFÜ)×2Ñ2°6Ó:ò )Ø—    ‘    ˜(Ÿ-™-Ô(Ø—    ‘    ˜(Ÿ-™-Õ(ñ )ð    )ð)ò    ˆDؐuŠ}Ùð    ð—9‘9“;ˆDÜÓRÌÈqËÔRÓR‰àw‰wˆØw‰wˆà€GØ ˆs‚{ð R—^‘^Ñ #䘘bŸn™n¨VÑ4Ñ4°cÓ:‰FðzŠzÜœS¤ R§Z¡Z×%7Ñ%7Ó%9¸!Ñ%<Ó!=ÀÑ!BÀCÓHÈ!ÓL‘àà RŠ<ؘŠ{ؘؑ1’Ø‘àØ ˜˜4˜&zÑ !ˆGð     ‰×ј: uÓ-Ø
‰×ÑÐ+¨RÓ0Ø
‰×ј?¨BÓ/Ø
‰×ј<¨Ó-ð    €BÔð"Ü)2°7Ñ);Ñ&ˆ˜Jð#‚~ÜÐ/°ÀÕBð
‡HHŒVÔá    Ø
ØÜ ˆD‰G‹ Ü ˆD‰G‹ ØØØ Ø Ø ô
òD€Fà
.‰.×
˜]¨B¯G©G¯K©K¸ Ó,FÓ
G€CÙ
ðˆØg‰~¤§ ¡ ¨cÓ 2Ñ2ˆÙ ˆb'˜4Ô ð     ‰ gÔà >‰>× Ñ ˜iÓ (€DÙ Ú"FÐØŸ+™+ò     )ˆJØ" 2 A˜‰IˆCØf‰}Ø— ‘ ˜cÔ"ِb˜#˜tÕ$ØÐ/Ñ/ِb˜#˜tÕ$ؐQq×!Ñ!Õ#ä  ›_°Ñ1ÒC°jÀ±m
Ú!Ù˜"˜c 4Õ(ð     )ð
‡ww#‚~Ø$ q™jÐØŸ™×(Ñ(¨Ó/Ð0DÐ1DÐEˆ ܐ-Ó Ð#6Ò6Ø ˜UÑ "ˆMô-Ó Ð#6Ó6á ˆb'˜=Ô)à—>‘>×%Ñ% n°b·g±g·k±kÀ.ÐRVÓ6WÓX€Lá| qÒ(Ø 7‰7cŠ>à ˆKܘ,¬Ô.ِb˜' <° °Ð#=Ö>ä" 1¤c¨#¨|Ó&<Ó= Ø ,Ñ.°Ñ6Ùb˜' 5¨¨+Ð#6Õ7Ø W‰WÐ/Ñ /ܘq¤# e¨\Ó":Ó;ˆLÙ "gœs <Ó0Õ 1Ø W‰W˜Ò Ø+Ñ ˆC˜Ù "gœs 3›x¬#¨e«*Ñ4´s¸4³yÑ@Õ Aà §¡Ñ/ð>Ü˜c“lÐ"à 7‰7cŠ>˜bŸe™e×2Ñ2Ó4¸Ò>Ø—E‘E×$Ñ$ V¨SÓ1ˆEØ ˆKÙ "g˜u \ kÐ2Ô 3à
.‰.×
˜UÓ
#€CÙ
Ù Ø Ø Ü ”C˜‘F˜V‘O cÑ)Ó*Ó +Ü ”C˜‘F˜V‘O cÑ)Ó*Ó +Ø ô     
ñ ؘ7Ð#ˆØŸ+™+ò    %ˆJØ" 2 A˜‰IˆCØfŠ}Ø— ‘ ˜cÔ"ِb˜#˜tÕ$ð        %ð >‰>× Ñ ˜fÓ %€DÙ Ü dœEŸJ™JÔ 'Ø—<‘< “?ˆDØ ?‰?˜?Ô +ؘ˜8ˆDÙ ˆb'˜4Ô à$&€IÙÜ*Ø E˜4 ¨-¸ó
ˆ    ñ܏‰Ø Ü ””E‘œE " eÓ,Ó -Ü _‰_˜U F¨Y¯^©^Ñ$;¸QÀÓ HÐ Iô    
ñ  ØŸ+™+ò    )ˆJØ" 2 A˜‰IˆCØ1Qˆx×ÑÕ!ä  ›_°Ñ1ÒC°jÀ±m
ÚÙ˜"˜c 4Õ(ð     )ñ
ˆ"ˆgsÔäˆr7ÔØ
‰
ðøô_ ò"Ø" 4 &¨Ð0ˆÜc‹l Ð!ûð"úsÈ: ];Ý;    ^Þ^Þ^c óp‡—ddlm}gŠdˆfd„ }|«}    ||_t||d|«|`‰S#|`wxYw)z4Return a list of PNG chunks representing this image.r)ÚBytesIOc󌕗dj|«}tt|t|«««}‰j|||f«y)Nr6)r²r´rLrl)rQr`rJrµrr s     €r7rlzgetchunks.<locals>.appendøs8ø€Ø—H‘H˜T“Nˆ    Ü”&˜¤F¨3£KÓ0Ó1ˆØ ‰ s˜I sÐ+Õ,r6r¹©rQrˆr`rrJrr‰rŠ)ÚiorrÇrÓ)r„ÚparamsrrlrQr s     @r7Ú    getchunksr!òsFø€åà €Fõ-ñ
 
‹€BðØˆŒÜ ˆb"b˜&Ô!à ˆNà €Møð ‰Nús˜1±5z.pngz.apngz    image/png)rCrr‰r)r)rJrrKrŽr‰rŽ)rTrr‰r¸r)r„rÆrQrˆrºr½r‹r•ror•rïúImage.Image | Noner×zlist[Image.Image]r‰r")r„rÆrQrˆrérºr‰rŠ) r„rÆrQrˆrérºrºr½rèr¸r‰rŠ)r„rÆr rr‰z list[tuple[bytes, bytes, bytes]])OÚ
__future__rrÌÚloggingÚrerzr4r=ÚenumrÚtypingrrrr¹r    r
r r r Ú_binaryrrýrr[rrrÖrr´Ú
_deprecaterÚ_utilrÚ TYPE_CHECKINGÚcollections.abcrrrrÚ    getLoggerr/rrÚcompilerür\rSrèrûÚ    SAFEBLOCKr@rÓr.r9rGrLrNr•r‘ržr¼rÂrUrWrr¶r¸rÁrÅrærêrÓr!Ú register_openr¦Ú register_saveÚregister_save_allÚregister_extensionsÚ register_mimer5r6r7ú<module>r5söðõB#ãÛÛ    Û ÛÛ Ýß'Ñ'çGÕGÝ!Ý!ÝÝ!Ý!Ý!Ý à€ ÙÝ(ß$åà    ˆ×    Ñ    ˜8Ó    $€à    ˆ‰LÓ    !×    'Ñ    '€ð
€ð Ø Ø Ø Ø à Ø à Ø Ø Ø à Ø à Ø !ñ+
€ð2"—*‘*Ð0Ó1€à×$Ñ$€ðð
~Ñ%€ðôˆwôô* ˆGô óô/÷[ñ[ô|ˆ3ô÷6Y3ñY3ô@:ôô d4 ôd4óV %ôS!9×&Ñ&ôS!ðv
 
!Ø $Ø $Ø $Ø     Ø
"Ø    $Ø 'Ø (Ø $Ø $Ø $Ø     Ø $Ø &ñ! €    ó(÷+ñ+÷
ñ
ô ˆZô ð KØðKàðKð ðKð ð    Kð
ð Kð &ð Kð%ðKðóKó\+ð"*Øð PØðPàðPððPð ð    Pð
ð Pð 
ó Pónð2€×ѐL×'Ñ'¨°wÔ?Ø€×ѐL×'Ñ'¨Ô/Ø€×ј ×+Ñ+¨YÔ7à€×ј,×-Ñ-°¸Ð/@ÔAà€×ѐL×'Ñ'¨Õ5r6