Files
old-parkingkoncept/parkingkonceptvenv/lib/python3.7/site-packages/PIL/__pycache__/TiffImagePlugin.cpython-37.pyc

361 lines
46 KiB
Plaintext
Raw Normal View History

2019-11-17 12:44:16 +01:00
B
(U<>]<5D> <00><00>@s ddlmZmZddlZddlZddlZddlZddlZddl Z ddl
Z
ddl m Z ddl mZmZddlmZmZmZmZddlmZmZddlmZdd lmZydd
lmZWn ek
r<EFBFBD>dd
lmZYnXd Zd Z d Z!d Z"d Z#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5d Z6d!Z7d"Z8d#Z9d$Z:d%Z;d&Z<d'Z=d(Z>d)Z?d*Z@d+ZAd,ZBd-ZCd.ZDd/ZEd0ZFd1ZGd2ZHd3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdD<64>ZIdEdF<64>eI<65>J<EFBFBD>D<00>ZKe$ddGddGdHfdIe%ddGddGdHfdIe$ddGdJdGdHfdKe%ddGdJdGdHfdKe$ddGddGdHfdLe%ddGddGdHfdLe$ddGdJdGdHfdMe%ddGdJdGdHfdMe$ddGddNdHfdOe%ddGddNdHfdOe$ddGdJdNdHfdPe%ddGdJdNdHfdPe$ddGddNdHfdQe%ddGddNdHfdQe$ddGdJdNdHfdRe%ddGdJdNdHfdRe$ddGddSdHfdTe%ddGddSdHfdTe$ddGdJdSdHfdUe%ddGdJdSdHfdUe$ddGddSdHfdVe%ddGddSdHfdVe$ddGdJdSdHfdWe%ddGdJdSdHfdWe$ddGddXdHfdYe%ddGddXdHfdYe$ddGdJdXdHfdZe%ddGdJdXdHfdZe$ddGddXdHfd[e%ddGddXdHfd[e$ddGdJdXdHfd\e%ddGdJdXdHfd\e$ddGdd]dHfd^e$ddGdd_dHfd`e%ddGdd_dHfdae$ddNdd_dHfdbe%ddNdd_dHfdce$dddddedHfdfe%dddddedHfdge$ddGddedHfdhe$ddNddedHfdie%ddNddedHfdje$dddddedHfdfe%dddddedHfdge$ddGddkdNfdle%ddGddkdNfdle$dJdGddmdHfdne%dJdGddmdHfdne$dJdGdJdmdHfdoe%dJdGdJdmdHfdoe$dJdGddpdHfdqe%dJdGddpdHfdqe$dJdGddpdrfdse%dJdGddpdrfdse$dJdGddtdufdve%dJdGddtdufdve$dJdGddwdxfdye%dJdGddwdxfdye$dJdGddpdGfdze%dJdGddpdGfdze$dJdGddtd{fd|e%dJdGddtd{fd|e$dJdGddwd}fd~e%dJdGddwd}fd~e$dJdGddpdNfdqe%dJdGddpdNfdqe$dJdGddtdfd<>e%dJdGddtdfd<>e$dJdGddwd<77>fd<>e%dJdGddwd<77>fd<>e$dJdGddpd<70>fdqe%dJdGddpd<70>fdqe$dJdGdd<>dHfd<>e%dJdGdd<>dHfd<>e$dJdGdd<>dHfd<>e%dJdGdd<>dHfd<>e$dJdGdd<>drfd<>e%dJdGdd<>drfd<>e$dJdGdd<>dGfd<>e%dJdGdd<>dGfd<>e$dJdGdd<>dNfd<>e%dJdGdd<>dNfd<>e$d<>dGddGdHfd<>e%d<>dGddGdHfd<>e$d<>dGdJdGdHfd<>e%d<>dGdJdGdHfd<>e$d<>dGddNdHfd<>e%d<>dGddNdHfd<>e$d<>dGdJdNdHfd<>e%d<>dGdJdNdHfd<>e$d<>dGddSdHfd<>e%d<>dGddSdHfd<>e$d<>dGdJdSdHfd<>e%d<>dGdJdSdHfd<>e$d<>dGddXdHfd<>e%d<>dGddXdHfd<>e$d<>dGddkdNfd<>e%d<>dGddkdNfd<>e$d<>dGdJdXdHfd<>e%d<>dGdJdXdHfd<>e$d<>dGddpdHfd<>e%d<>dGddpdHfd<>e$d<>dGddtdrfd<>e%d<>dGddtdrfd<>e$d<>dGddwdufd<>e%d<>dGddwdufd<>e$d<>dGdd<>dHfd<>e$d<>dGddmdHfd<>e%d<>dGddmdHfd<>e$d<>dGddmdHfd<>e%d<>dGddmdHfd<>ioZLd<4C>d<EFBFBD>d<EFBFBD>d<EFBFBD>gZMd<4D>d<EFBFBD><64>ZNd<4E>d<EFBFBD><64>ZOd<4F>d<EFBFBD><64>ZPiZQiZRGd<>d<EFBFBD><64>d<>e<0F>ZSGd<>d<EFBFBD><64>d<>e<1C>ZTeQeT_QeReT_RxNe<1A>J<EFBFBD>D]B\ZUZVeV<65>Wd<57>d<EFBFBD><64>ZVeXeTd<54>eVeQeUd<00>eXeTd<54>eVeReU<00><00> qW[Q[R[U[VGd<>d<EFBFBD><64>d<>eT<65>ZYeYZZGd<>d<EFBFBD><64>d<>ej<12>Z[d<>e$dddGdfd<>e$dddXdfd<>e$dddkdJfd<>e$d<>ddXdfd<>e$d<>ddkdJfd<>e$ddJdedfd<>e$ddd_dfd<>e$ddJd_dfd<>e$dd<>dedfd<>e$dJddmdfd<>e$dJddpdfd<>e$dJddpdJfd<>e$d<>ddpdfd<>e$d<>ddmdfd<>e$d<>ddmdfd<>e%ddJdedfd<>e%ddd_dfd<>e%ddJd_dfd<>e%dd<>dedfZ\d<>Z]Gd<>d΄Z^d<>Z_e<11>`e[jae[eN<65>e<11>be[jae]<5D>e<11>ce[jae_<65>e<11>de[jad<61>d<EFBFBD>g<02>e<11>ee[jadӡdS)<29><>)<02>division<6F>print_functionN)<01>Fraction)<02>Number<65>Rational<61>)<04>Image<67> ImageFile<6C> ImagePalette<74>TiffTags)<02>i8<69>o8)<01>py3)<01>TYPES)<01>MutableMappingz1.3.5FTsIIsMM<4D>iiiii
iiiiiiiii(i-i1i2i;i=i@iDiRiSi[ii<><69>i<><69>iI<69>is<69>ii<69>i<>ii<><69>i<><69><00>rawZ
tiff_ccittZgroup3Zgroup4Ztiff_lzw<7A> tiff_jpeg<65>jpegZtiff_adobe_deflateZ tiff_raw_16ZpackbitsZtiff_thunderscanZ tiff_deflateZ tiff_sgilogZ tiff_sgilog24<32>lzmaZzstdZwebp)r<00><00><00><00><00><00><00>i<03>i<05>i)<29>i<><69>it<69>iu<69>im<69>iP<69>iQ<69>cCsi|]\}}||<02>qS<00>r)<03>.0<EFBFBD>k<>vrr<00>7/tmp/pip-install-pc7tm5jb/Pillow/PIL/TiffImagePlugin.py<70>
<dictcomp><3E>sr")rr)<02>1z1;Ir)r#z1;IR)r#r#)r#z1;R)r)<02>LzL;2I)r$zL;2IR)r$zL;2)r$zL;2R)r)r$zL;4I)r$zL;4IR)r$zL;4)r$zL;4R)r)r$zL;I)r$zL;IR)r$r$)r$zL;R)<01> )zI;16zI;12)<01>)zI;16zI;16)zI;16BzI;16B)<02>IzI;16S)r'zI;16BS)r)<01> )<02>FzF;32F)r)zF;32BF)r'zI;32N)r'zI;32S)r'zI;32BS)rr)<02>LAr*)rrr)<02>RGBr+)r+zRGB;R)rrrr)<02>RGBAr,)r)<02>RGBXr-)rrrrr)rr)r-ZRGBXX)rrrrrr)rrr)r-ZRGBXXX)r,ZRGBa)rr)r,ZRGBaX)rrr)r,ZRGBaXX)rr)r,ZRGBAX)rrr)r,ZRGBAXX)i<>)r&r&r&)r+zRGB;16L)r+zRGB;16B)r&r&r&r&)r,zRGBA;16L)r,zRGBA;16B)r-zRGBX;16L)r-zRGBX;16B)r,zRGBa;16L)r,zRGBa;16Br)<02>PzP;1)r.zP;1R)r.zP;2)r.zP;2R)r.zP;4)r.zP;4R)r.r.)<02>PAr/)r.zP;Rr)<02>CMYKr0)r0ZCMYKX)r0ZCMYKXX)r0zCMYK;16Lr)r+r-r)<02>LABr1sMM*sII*sMM*sII*cCs|dd<01>tkS)Nr)<01>PREFIXES)<01>prefixrrr!<00>_acceptsr4cCs<t|<00>dk}t|rd|n|<00><01>|<01>}|r8|ddd<02>S|S)Nr<00><><EFBFBD><EFBFBD><EFBFBD>)<03>abs<62> IFDRational<61>limit_rational)<04>valZmax_val<61>invZn_drrr!<00>_limit_rationals r;cCstjj<02>d<01>d<00>d<03>dS)N<>
rzVersion r)r<00>coreZlibtiff_version<6F>splitrrrr!<00>_libtiff_versionsr?c@s>eZdZdZdZd1dd<05>Zedd<07><00>Zedd <09><00>Zd
d <0B>Z d d <0A>Z
dd<0F>Z dd<11>Z dd<13>Z e d<14>Ze d<15>Ze d<16>Ze d<17>Ze d<18>Ze d<19>Ze d<1A>Ze d<1B>Ze d<1C>Ze d<1D>Ze d<1E>Ze d<1F>Ze d <20>Ze d!<21>Ze d"<22>Ze d#<23>Ze d$<24>Ze d%<25>Ze d&<26>Z e d'<27>Z!e d(<28>Z"e d)<29>Z#e d*<2A>Z$e d+<2B>Z%e d,<2C>Z&e d-<2D>Z'e d.<2E>Z(e d/<2F>Z)d0S)2r7z<> Implements a rational class where 0/0 is a legal value to match
the in the wild use of exif rationals.
e.g., DigitalZoomRatio - 0.00/0.00 indicates that no digital zoom was used
)<03>
_numerator<EFBFBD> _denominator<6F>_valrcCs<>||_||_td<01>|_t|t<05>r6|j|_|j|_||_t|t<08>r\|j|_|j|_|j|_dS|dkrrtd<04>|_dS|dkr<>t|<01>|_n t||<02>|_dS)z<>
:param value: either an integer numerator, a
float/rational/other number, or an IFDRational
:param denominator: Optional integer denominator
rNr<00>nan) rAr@<00>floatrB<00>
isinstancer<00> numerator<6F> denominatorr7)<03>self<6C>valuerGrrr!<00>__init__3s$



 zIFDRational.__init__cCs|jS)N)r@)<01>arrr!rFQszIFDRational.numeratorcCs|jS)N)rA)rKrrr!rGUszIFDRational.denominatorcCs.|jdkr|j|jfS|j<02>|<01>}|j|jfS)z<>
:param max_denominator: Integer, the maximum denominator value
:returns: Tuple of (numerator, denominator)
r)rGrFrBZlimit_denominator)rHZmax_denominator<6F>frrr!r8Ys
  zIFDRational.limit_rationalcCstt|j<02><01>S)N)<03>strrDrB)rHrrr!<00>__repr__fszIFDRational.__repr__cCs
|j<00><01>S)N)rB<00>__hash__)rHrrr!rOiszIFDRational.__hash__cCs
|j|kS)N)rB)rH<00>otherrrr!<00>__eq__lszIFDRational.__eq__cs<00>fdd<02>}|S)Ncst|j<01><00>|<01>S)N)<02>getattrrB)rH<00>args)<01>oprr!<00>delegatepsz'IFDRational._delegate.<locals>.delegater)rTrUr)rTr!<00> _delegateos zIFDRational._delegate<74>__add__<5F>__radd__<5F>__sub__<5F>__rsub__<5F>__div__<5F>__rdiv__<5F>__mul__<5F>__rmul__<5F> __truediv__<5F> __rtruediv__<5F> __floordiv__<5F> __rfloordiv__<5F>__mod__<5F>__rmod__<5F>__pow__<5F>__rpow__<5F>__pos__<5F>__neg__<5F>__abs__<5F> __trunc__<5F>__lt__<5F>__gt__<5F>__le__<5F>__ge__<5F> __nonzero__<5F>__ceil__<5F> __floor__<5F> __round__N)r)*<2A>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__<5F> __slots__rJ<00>propertyrFrGr8rNrOrQrVrWrXrYrZr[r\r]r^r_r`rarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrrrr!r7%sL
   r7c @s<>eZdZdZd^dd<05>Zedd<07><00>Zedd<07><00>Zed d<07><00>Zej d
d <0B><00>Zd d <0A>Z
dd<0F>Z dd<11>Z dd<13>Z dd<15>Zdd<17>Zes<>dd<19>Zdd<1B>Zdd<1D>Zdd<1F>Zd d!<21>Zd"d#<23>Zd$d%<25>Zd&d'<27>Zd(d)<29>Zd*d+<2B>Zeeeejd,d-fejd.d/fej d0d1fej!d2d3fej"d4d5fej#d6d7fej$d8d9fg<07><02>ed:d:<3A>d_d<d=<3D><01>Z%ed:<3A>d>d?<3F><00>Z&ed@d:<3A>d`dAdB<64><01>Z'ed@<40>dCdD<64><00>Z(edEdF<64>dadGdH<64><01>Z)edE<64>dIdJ<64><00>Z*edKd:<3A>dbdLdM<64><01>Z+edK<64>dNdO<64><00>Z,edPdF<64>dcdQdR<64><01>Z-edP<64>dSdT<64><00>Z.dUdV<64>Z/dWdX<64>Z0dddZd[<5B>Z1d\d]<5D>Z2dS)e<>ImageFileDirectory_v2a<32>This class represents a TIFF tag directory. To speed things up, we
don't decode tags unless they're asked for.
Exposes a dictionary interface of the tags in the directory::
ifd = ImageFileDirectory_v2()
ifd[key] = 'Some Data'
ifd.tagtype[key] = TiffTags.ASCII
print(ifd[key])
'Some Data'
Individual values are returned as the strings or numbers, sequences are
returned as tuples of the values.
The tiff metadata type of each item is stored in a dictionary of
tag types in
`~PIL.TiffImagePlugin.ImageFileDirectory_v2.tagtype`. The types
are read from a tiff file, guessed from the type added, or added
manually.
Data Structures:
* self.tagtype = {}
* Key: numerical tiff tag number
* Value: integer corresponding to the data type from
~PIL.TiffTags.TYPES`
.. versionadded:: 3.0.0
<20>II*NcCs<>|dd<02>tkrtd|<00><01>|dk r(|n
|dd<04>|_|jtkrHd|_n|jtkrZd|_ntd<07><01>|<00><06>|<00>d|dd<01><00>\|_d |_ dS)
a<EFBFBD>Initialize an ImageFileDirectory.
To construct an ImageFileDirectory from a real file, pass the 8-byte
magic header to the constructor. To only set the endianness, pass it
as the 'prefix' keyword argument.
:param ifh: One of the accepted magic headers (cf. PREFIXES); also sets
endianness.
:param prefix: Override the endianness of the file.
Nrz%not a TIFF file (header %r not valid)r<00>><3E><znot a TIFF IFDr$F)
r2<00> SyntaxError<6F>_prefix<69>MM<4D>_endian<61>II<49>reset<65>_unpack<63>next<78> _legacy_api)rH<00>ifhr3rrr!rJ<00>s  

zImageFileDirectory_v2.__init__cCs|jS)N)r~)rHrrr!<00><lambda><3E><00>zImageFileDirectory_v2.<lambda>cCs|jS)N)<01>_offset)rHrrr!r<><00>r<>cCs|jS)N)r<>)rHrrr!r<><00>r<>cCs td<01><01>dS)Nz"Not allowing setting of legacy api)<01> Exception)rHrIrrr!<00>
legacy_api<EFBFBD>sz ImageFileDirectory_v2.legacy_apicCs(i|_i|_i|_i|_d|_d|_dS)N)<06>_tags_v1<76>_tags_v2<76>_tagdata<74>tagtype<70>_nextr<74>)rHrrr!r<><00>s zImageFileDirectory_v2.resetcCs tt|<00><01>S)N)rM<00>dict)rHrrr!<00>__str__<5F>szImageFileDirectory_v2.__str__cCsdd<02>|<00><00>D<00>S)z<>
:returns: dict of name|key: value
Returns the complete tag dictionary, with named tags where possible.
cSsi|]\}}|t<00>|<01>j<02>qSr)r <00>lookup<75>name)r<00>coderIrrr!r"sz/ImageFileDirectory_v2.named.<locals>.<dictcomp>)<01>items)rHrrr!<00>named<65>szImageFileDirectory_v2.namedcCstt|j<02>t|j<03>B<00>S)N)<04>len<65>setr<74>r<>)rHrrr!<00>__len__szImageFileDirectory_v2.__len__cCsf||jkr>|j|}|j|}|j|\}}||||j<04>||<|j|}|jrbt|ttf<02>sb|f}|S)N)r<>r<>r<><00>_load_dispatchr<68>rE<00>tuple<6C>bytes)rH<00>tag<61>data<74>typ<79>size<7A>handlerr9rrr!<00> __getitem__s



z!ImageFileDirectory_v2.__getitem__cCs||jkp||jkS)N)r<>r<>)rHr<>rrr!<00> __contains__sz"ImageFileDirectory_v2.__contains__cCs||kS)Nr)rHr<>rrr!<00>has_keyszImageFileDirectory_v2.has_keycCs|<00>|||j<01>dS)N)<02>_setitemr<6D>)rHr<>rIrrr!<00> __setitem__sz!ImageFileDirectory_v2.__setitem__c s<tttf}ts|tf7}t<05>|<01><01>t||<04>r2|gn|}||jk<07>r<16>j rV<72>j |j|<n<>tj
|j|<t dd<02>|D<00><01>r<>tj |j|<n<>t dd<02>|D<00><01>r<>t dd<02>|D<00><01>r<>tj |j|<n tj|j|<nTt dd<02>|D<00><01>r<>tj|j|<n4t<03>r
t dd<02>|D<00><01><01>rtj|j|<n tj|j|<|j|tj
k<02>rNt<03>rNt|t<02><02>rF|<02>dd<08>n|g}n |j|tj k<02>rnd d
<EFBFBD>|D<00>}t<12>fd d<02>|D<00><01>}|<03>r<>|jn|j}<06>jd k<02>sˆjdk<08>r0t|<05>d k<02>r0|<03>s0|<03>r<>|j|tj tjgk<06>r<>|f}y|\||<Wn8tk
<EFBFBD>r,t<19>d |t|<05>f<00>|d||<YnXn|||<dS)Ncss|]}t|t<01>VqdS)N)rEr7)rr rrr!<00> <genexpr>+sz1ImageFileDirectory_v2._setitem.<locals>.<genexpr>css|]}t|t<01>VqdS)N)rE<00>int)rr rrr!r<>-scss|]}|dkVqdS)iNr)rr rrr!r<>.scss|]}t|t<01>VqdS)N)rErD)rr rrr!r<>2scss|]}t|t<01>VqdS)N)rErM)rr rrr!r<>6s<00>ascii<69>replacecSs"g|]}t|t<01>rt|<01>n|<01>qSr)rEr<>rD)rr rrr!<00>
<listcomp>Asz2ImageFileDirectory_v2._setitem.<locals>.<listcomp>c3s|]}<01><00>|<01>VqdS)N)Zcvt_enum)rrI)<01>inforr!r<>Csrz=Metadata Warning, tag %s had too many entries: %s, expected 1r)rr<>rMr<00>unicoder r<>rEr<><00>type<70> UNDEFINED<45>allZRATIONAL<41>SHORT<52>LONG<4E>DOUBLE<4C>ASCII<49>encoder<65>r<>r<><00>lengthr<68>ZSIGNED_RATIONAL<41>
ValueError<EFBFBD>warnings<67>warn)rHr<>rIr<>Z basetypes<65>values<65>destr)r<>r!r<>sR


       zImageFileDirectory_v2._setitemcCs.|j<00>|d<00>|j<02>|d<00>|j<03>|d<00>dS)N)r<><00>popr<70>r<>)rHr<>rrr!<00> __delitem__dsz!ImageFileDirectory_v2.__delitem__cCstt|j<02>t|j<03>B<00>S)N)<04>iterr<72>r<>r<>)rHrrr!<00>__iter__iszImageFileDirectory_v2.__iter__cCst<00>|j||<02>S)N)<03>struct<63>unpackr<6B>)rH<00>fmtr<74>rrr!r<>lszImageFileDirectory_v2._unpackcGstj|j|f|<02><02>S)N)r<><00>packr<6B>)rHr<>r<>rrr!<00>_packoszImageFileDirectory_v2._packcs<00><00>fdd<02>}|S)NcsBddlm}|j<02>d<03>r2|jdd<00><00>dd<06>|<01><<00>|ft<05><|S)Nr)r<00>load_r<00>_<> )r rrs<00>
startswithr<EFBFBD>r<>)<02>funcr)<02>idxr<78>rr!<00> decoratorss
   z9ImageFileDirectory_v2._register_loader.<locals>.decoratorr)r<>r<>r<>r)r<>r<>r!<00>_register_loaderrsz&ImageFileDirectory_v2._register_loadercs<00>fdd<02>}|S)Ncs |t<00><|S)N)<01>_write_dispatch)r<>)r<>rr!r<>~sz9ImageFileDirectory_v2._register_writer.<locals>.decoratorr)r<>r<>r)r<>r!<00>_register_writer}s z&ImageFileDirectory_v2._register_writercsXddlm}|\}<02>}|||<t<02>d<03><00><01><01>d<08><00>fdd<06> ft|<<00>fdd<06>t|<dS) Nr)r<00>=Tcs|<00>d<01>t|<01><01><00><00>|<01>S)Nz{}{})r<><00>formatr<74>)rHr<>r<>)r<>r<>rr!r<><00>sz7ImageFileDirectory_v2._register_basic.<locals>.<lambda>csd<01><00><01>fdd<03>|D<00><01>S)Nr<4E>c3s|]}<01><01><00>|<01>VqdS)N)r<>)rrI)r<>rHrr!r<><00>szJImageFileDirectory_v2._register_basic.<locals>.<lambda>.<locals>.<genexpr>)<01>join)rHr<>)r<>)rHr!r<><00>s)T)r rr<><00>calcsizer<65>r<>)Z idx_fmt_namerr<>r<>r)r<>r<>r!<00>_register_basic<69>s 
z%ImageFileDirectory_v2._register_basic<69>H<>shortr$<00>long<6E>bz signed byte<74>hz signed short<72>lz signed longrLrD<00>d<>doublerTcCs|S)Nr)rHr<>r<>rrr!<00> load_byte<74>szImageFileDirectory_v2.load_bytecCs|S)Nr)rHr<>rrr!<00>
write_byte<EFBFBD>sz ImageFileDirectory_v2.write_bytercCs"|<01>d<01>r|dd<02>}|<01>dd<04>S)N<>r5zlatin-1r<31>)<02>endswith<74>decode)rHr<>r<>rrr!<00> load_string<6E>s
 z!ImageFileDirectory_v2.load_stringcCs,tjjdkr|<01>dd<03>}d|<01>dd<03>dS)Nrr<>r<>r<>r<>)<05>sys<79> version_info<66>majorr<72>r<>)rHrIrrr!<00> write_string<6E>s  z"ImageFileDirectory_v2.write_stringrrcsV|<00>d<01>t|<01>d<00>|<01>}<03>fdd<04><08>t<03>fdd<06>t|ddd<07>|ddd<07><00>D<00><01>S) Nz{}Lrcs<00>r ||fSt||<01>S)N)r7)rKr<>)r<>rr!<00>combine<6E>sz4ImageFileDirectory_v2.load_rational.<locals>.combinec3s|]\}}<02>||<02>VqdS)Nr)r<00>num<75>denom)r<>rr!r<><00>sz6ImageFileDirectory_v2.load_rational.<locals>.<genexpr>rr)r<>r<>r<>r<><00>zip)rHr<>r<><00>valsr)r<>r<>r!<00> load_rational<61>s z#ImageFileDirectory_v2.load_rationalcsd<01><00>fdd<03>|D<00><01>S)Nr<4E>c3s"|]}<01>jdt|d<01><02><02>VqdS)<04>2LlN)r<>)r<>r;)r<00>frac)rHrr!r<><00>sz7ImageFileDirectory_v2.write_rational.<locals>.<genexpr>)r<>)rHr<>r)rHr!<00>write_rational<61>sz$ImageFileDirectory_v2.write_rationalrcCs|S)Nr)rHr<>r<>rrr!<00>load_undefined<65>sz$ImageFileDirectory_v2.load_undefinedcCs|S)Nr)rHrIrrr!<00>write_undefined<65>sz%ImageFileDirectory_v2.write_undefined<65>
csV|<00>d<01>t|<01>d<00>|<01>}<03>fdd<04><08>t<03>fdd<06>t|ddd<07>|ddd<07><00>D<00><01>S) Nz{}lrcs<00>r ||fSt||<01>S)N)r7)rKr<>)r<>rr!r<><00>sz;ImageFileDirectory_v2.load_signed_rational.<locals>.combinec3s|]\}}<02>||<02>VqdS)Nr)rr<>r<>)r<>rr!r<><00>sz=ImageFileDirectory_v2.load_signed_rational.<locals>.<genexpr>rr)r<>r<>r<>r<>r<>)rHr<>r<>r<>r)r<>r<>r!<00>load_signed_rational<61>s z*ImageFileDirectory_v2.load_signed_rationalcsd<01><00>fdd<03>|D<00><01>S)Nr<4E>c3s"|]}<01>jdt|d<01><02><02>VqdS)r<>i@N)r<>)r<>r;)rr<>)rHrr!r<><00>sz>ImageFileDirectory_v2.write_signed_rational.<locals>.<genexpr>)r<>)rHr<>r)rHr!<00>write_signed_rational<61>sz+ImageFileDirectory_v2.write_signed_rationalcCs2|<01>|<02>}t|<03>|kr.tdd|t|<03>f<00><01>|S)NzCorrupt EXIF data. z,Expecting to read %d bytes but only got %d. )<03>readr<64><00>IOError)rH<00>fpr<70><00>retrrr!<00> _ensure_read<61>s 
 z"ImageFileDirectory_v2._ensure_readc
Cs<>|<00><00>|<01><01>|_<02>y<><79>x<>t|<00>d|<00>|d<02><02>d<00>D<00>]j}|<00>d|<00>|d<05><02>\}}}}tr<>t<07>|<03>j }t
<EFBFBD> |d<06>}t d||||fdd <09>y|j |\} }
Wn$tk
r<EFBFBD>tr<>t d
|<04>w6YnX|| } | d k<04>r(|<01><01>} |<00>d |<06>\} t<06>rt d | | fdd <09>|<01>| <0A>t<10>|| <0B>}|<01>| <0C>n |d| <0B>}t|<06>| k<03>r\t<13>d| t|<06>|f<00>q6|<06>sdq6||j|<||j|<tr6| dk<04>r<>t d| <00>q6t d||<00>q6W|<00>d |<00>|d <0B><02>\|_Wn2tk
<EFBFBD>r<>}zt<13>t|<0E><01>dSd}~XYnXdS)Nr<4E>rr<00>HHL4sr%<00>unknownztag: %s (%d) - type: %s (%d)r<>)<01>endz- unsupported typerr$z$Tag Location: %s - Data Location: %szXPossibly corrupt EXIF data. Expecting to read %d bytes but only got %d. Skipping tag %sr(z- value: <table: %d bytes>z- value:)r<><00>tellr<6C><00>ranger<65>r<><00>DEBUGr r<>r<>r<00>get<65>printr<74><00>KeyError<6F>seekr <00>
_safe_readr<EFBFBD>r<>r<>r<>r<>r<>r<>rM)rHr<><00>ir<69>r<><00>countr<74><00>tagname<6D>typnameZ unit_sizer<65>r<><00>here<72>offset<65>msgrrr!<00>load<61>s\
&  



   


zImageFileDirectory_v2.loadrc
Cs<>|<00>dt|j<02><01>}g}|t|<02>t|j<02>dd}d}<04>x^t|j<02><04><00>D<00>]J\}}|tkrdt|<03>}|j<06>|<05>}tr<>t d|||f<00>t
|t <0B>r<>|n|f}|j ||f|<08><02>} t<08>rt <0A>|<05>j}
t<10>|d<05>} t d|
|| |fdd<08>t| <09>d k<05>rt d
t| <09><00>n
t d |<08>|t jt jt jgk<06>r.t| <09>} nt|<08>} t| <09>dk<01>rb|<03>||| | <09>dd <0C>d f<05>qJ|<03>||| |<00>d|<01>| f<05>|t| <09>ddd7}qJW|dk <09>r<>||\}}} }} | <09>r<>td<11><01>|<00>d|<00>d|<06>d|<00>}||| || f||<xP|D]H\}}} }} tdk<04>r(t ||| t|<06>t| <09><01>||<00>d||| |<06>7}<02>q<>W|d7}x6|D].\}}} }} || 7}t| <09>d@<00>rR|d 7}<02>qRW|S)Nr<4E>r%rzTag %s, Type: %s, Value: %sr<73>zsave: %s (%d) - type: %s (%d)r<>)r<>r&z- value: <table: %d bytes>z- value:r<>r<>r$rrz&multistrip support not yet implementedrr<>s)r<>r<>r<><00>sortedr<64><00> STRIPOFFSETSr<53>rr<>rrEr<>r<>r r<>r<>rZBYTEr<45>r<><00>append<6E>ljust<73>NotImplementedErrorr<72><00>repr) rHr
<00>result<6C>entriesZ stripoffsetsr<73>rIr<>r<>r<>rrrrrr!<00>tobytes%sX   



zImageFileDirectory_v2.tobytescCsN|<01><00>dkr&|<01>|j|<00>ddd<04><00>|<01><00>}|<00>|<02>}|<01>|<03>|t|<03>S)NrZHL<48>*r)r<><00>writer~r<>rr<>)rHr<>r
rrrr!<00>savehs  

zImageFileDirectory_v2.save)rzN)T)T)T)T)T)r)3rsrtrurvrJrxr3r
r<><00>setterr<72>r<>r<>r<>r<>r<>rr<>r<>r<>r<>r<>r<>r<>r<>r<>r<><00>list<73>mapr r<>r<>Z SIGNED_BYTEZ SIGNED_SHORTZ SIGNED_LONG<4E>FLOATr<54>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r rrrrrr!ry<00>sh
    F 





      >
Cryr<>r<>r<>Zwrite_c@sleZdZdZdd<03>Zedd<05><00>Zedd<05><00>Zedd<08><00>Z d d
<EFBFBD>Z
d d <0C>Z d d<0E>Z dd<10>Z dd<12>Zdd<14>ZdS)<16>ImageFileDirectory_v1a<31>This class represents the **legacy** interface to a TIFF tag directory.
Exposes a dictionary interface of the tags in the directory::
ifd = ImageFileDirectory_v1()
ifd[key] = 'Some Data'
ifd.tagtype[key] = TiffTags.ASCII
print(ifd[key])
('Some Data',)
Also contains a dictionary of tag types as read from the tiff image file,
`~PIL.TiffImagePlugin.ImageFileDirectory_v1.tagtype`.
Values are returned as a tuple.
.. deprecated:: 3.0.0
cOstj|f|<01>|<02>d|_dS)NT)ryrJr<>)rHrS<00>kwargsrrr!rJ<00>szImageFileDirectory_v1.__init__cCs|jS)N)r<>)rHrrr!r<><00>r<>zImageFileDirectory_v1.<lambda>cCs|jS)N)r<>)rHrrr!r<><00>r<>cCs(||jd<01>}|j|_|j|_|j|_|S)a3 Returns an
:py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v1`
instance with the same data as is contained in the original
:py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v2`
instance.
:returns: :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v1`
)r3)r3r<>r<>r<>)<03>cls<6C>original<61>ifdrrr!<00>from_v2<76>s
zImageFileDirectory_v1.from_v2cCs4t|jd<01>}t|j<03>|_t|j<04>|_t|j<05>|_|S)a3 Returns an
:py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v2`
instance with the same data as is contained in the original
:py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v1`
instance.
:returns: :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v2`
)r3)ryr3r<>r<>r<>r<>)rHr!rrr!<00>to_v2<76>s
   zImageFileDirectory_v1.to_v2cCs||jkp||jkS)N)r<>r<>)rHr<>rrr!r<><00>sz"ImageFileDirectory_v1.__contains__cCstt|j<02>t|j<03>B<00>S)N)r<>r<>r<>r<>)rHrrr!r<><00>szImageFileDirectory_v1.__len__cCstt|j<02>t|j<03>B<00>S)N)r<>r<>r<>r<>)rHrrr!r<><00>szImageFileDirectory_v1.__iter__cCs xdD]}|<00>|||<03>qWdS)N)FT)r<>)rHr<>rIr<>rrr!r<><00>s
z!ImageFileDirectory_v1.__setitem__cCsr||jkrP|j|}|j|}|j|\}}x"dD]}|<00>|||||<06>|<06>q2W|j|}t|ttf<02>sn|f}|S)N)FT)r<>r<>r<>r<>r<>rEr<>r<>)rHr<>r<>r<>r<>r<><00>legacyr9rrr!r<><00>s




z!ImageFileDirectory_v1.__getitem__N)rsrtrurvrJrx<00>tagsZtagdata<74> classmethodr"r#r<>r<>r<>r<>r<>rrrr!r~s   rcs<>eZdZdZdZdZdd<05>Zedd<07><00>Zedd <09><00>Z d
d <0B>Z
d d <0A>Z dd<0F>Z edd<11><00>Z e jdd<11><00>Z <0A>fdd<14>Zdd<16>Zdd<18>Zdd<1A>Zdd<1C>Z<13>ZS)<1D> TiffImageFileZTIFFz
Adobe TIFFFcCs||j<00>d<01>}t|<01>|_d|_|_|jj|_|_d|_ |j|_
g|_ d|_ t rntd<04>td|j<07>td|<01>|<00>d<07>dS)z#Open the first image in a TIFF filerNr5z*** TiffImageFile._open ***z
- __first:z- ifh: r)r<>r<>ry<00>tag_v2r<32>r!r<>Z_TiffImageFile__first<73>_TiffImageFile__next<78>_TiffImageFile__frame<6D>_TiffImageFile__fp<66>
_frame_pos<EFBFBD> _n_framesr<73>r<00>_seek)rHr<>rrr!<00>_open<65>s 
  
zTiffImageFile._opencCsT|jdkrN|<00><01>}|<00>t|j<04><01>x |jdkrB|<00>|<00><01>d<00>q$W|<00>|<01>|jS)Nr)r-r<>r.r<>r,r)rH<00>currentrrr!<00>n_frames<65>s
 
zTiffImageFile.n_framescCs|jS)N)<01> _is_animated)rHrrr!<00> is_animatedszTiffImageFile.is_animatedcCs<|<00>|<01>sdS|<00>|<01>t<02>|j<04>tj<05>|j|j<04>|_dS)z%Select a given frame as current imageN) Z _seek_checkr.rZ_decompression_bomb_checkr<6B>r=<00>new<65>mode<64>im)rH<00>framerrr!r s


 zTiffImageFile.seekcCs"|j|_x<>t|j<03>|kr<>|js&td<01><01>trHtd||j|j|j<01> <09>f<00>|j<01> <09>|j<01>
|j<04>|j<03> |j<04>tr<>td|j<01> <09><00>|j <0C> |j<01>|j j|_|jdkr<>|d|_t|j<03>dkr<>|jdk|_|jd7_q
W|j<01>
|j|<00>|j <0C> |j<01>t<11>|j <0C>|_|_||_|<00><15>dS)Nzno more images in TIFF filez9Seeking to frame %s, on frame %s, __next %s, location: %szLoading tags, location: %srr)r+r<>r<>r,r)<00>EOFErrorr<72>rr*r<>rrr(r r<>r-r2rr"r<>r!<00>_setup)rHr7rrr!r.s2



 zTiffImageFile._seekcCs|jS)zReturn the current frame number)r*)rHrrr!r<>6szTiffImageFile.tellcCs|jS)N)<01>_size)rHrrr!r<>:szTiffImageFile.sizecCst<00>dt<02>||_dS)Nz<4E>Setting the size of a TIFF image directly is deprecated, and will be removed in a future version. Use the resize method instead.)r<>r<><00>DeprecationWarningr:)rHrIrrr!r<>>scs|jr|<00><01>Stt|<00><02><04>S)N)<05>use_load_libtiff<66> _load_libtiff<66>superr'r )rH)<01> __class__rr!r GszTiffImageFile.loadcCs`|jrPtjtjtjtjtjtjtjd<01><07> |j<00>}|dk rP|j
<EFBFBD> |<01>|_
|j
j |_ |js\d|_dS)N)rrrrrrrT)<10>_tile_orientationrZFLIP_LEFT_RIGHTZ
ROTATE_180ZFLIP_TOP_BOTTOMZ TRANSPOSEZ
ROTATE_270Z
TRANSVERSEZ ROTATE_90rr6Z transposer<65>r:r2<00>!_close_exclusive_fp_after_loading)rH<00>methodrrr!<00>load_endLs

zTiffImageFile.load_endc Cs<>tj<00>|<00>}|jdkrtd<02><01>|js(|S|<00><04>t|j<02>dksFtd<04><01>|jdd}t|jdd<00>}y6t|jd<07>o<>t <09>
|j<08> <0B><00>}t|jd<08>r<>|j<08> <0C>Wntk
r<EFBFBD>d }YnX|r<>||d
<t<00> |jd t|<03>|j<10>}y|<05>|j|<02>Wntk
<EFBFBD>r
td <0C><01>YnX|j<14>o|j }t|jd <0A><02>rNt<16>r8td<0E>|<05>|j<08><19><00>\}}nd|<04>r<>t<16>rbtd<0F>|<06>st|j<08>d<05>|<05>d<10>\}}n.t<16>r<>td<11>|j<08>d<05>|<05>|j<08><1B><00>\}}g|_d|_|<00><1D>|<06>r<>|j<08><1E>d|_|dk<00>r<>t|<08><01>tj<00>|<00>S)z] Overload method triggered when we detect a compressed tiff
Calls out to libtiff Nzcannot load this imagerzNot exactly one tilerr<00>fileno<6E>flushFr<00>libtiffzCouldn't set the image<67>getvaluez5have getvalue. just sending in a string from getvaluez3have fileno, calling fileno version of the decoder.sfpfpz+don't have fileno or getvalue. just reading)rr <00>tiler<65>Z load_preparer<65>r<00>hasattrr<72><00>os<6F>duprDrEZ _getdecoderr5r<>Z decoderconfig<69>setimager6r<>Z _exclusive_fpr2r<>rr<>rGrr<><00>readonlyrC<00>close) rHZpixelZextentsrSr<><00>decoderZ close_self_fp<66>n<>errrrr!r=`s` 
 

  

zTiffImageFile._load_libtiffc
Cs<>d|jkrtd<02><01>t|j<00>td<03>|_|j<00>td<03>|_|j<00>td<04>}|jdkrRd}|j<00>t d<03>}t
r<EFBFBD>t d<07>t d|j<05>t d |<01>t d
|j<07>t d |<02>t d |j <0C>d <0A><01>t |j<00>t<0E><01>}t |j<00>t<0F><01>}||f|_t
r<EFBFBD>t d|j<11>|j<00>td<0F>}t|<05>dk<04>r(t|<05>t|<05>k<02>r dk<02>r(nnd}|j<00>td<0F>}|j<00>td<10>}|dk<06>rTd}n|dk<02>rdd}nd}|t|<07>7}|t|<06>k<04>r<>t|<06>dk<02>r<>||}|jj|||||f} t
<EFBFBD>r<>t d| <09>yt| \|_}
Wn,tk
<EFBFBD>r<>t
<EFBFBD>r<>t d<16>td<17><01>YnXt
<EFBFBD>rt d|
<EFBFBD>t d|j<1A>|j|jd<|j<00>td<03>} |j<00>td<03>} | <0B>r<>| <0C>r<>|j<00>t <20>} | dk<02>r<>t | d<00>t | d<00>f|jd<nx| dk<02>r<>t | dd<00>t | dd<00>f|jd<nF| dk<08>r<>t | d<00>t | d<00>f|jd<| | f|jd <n| | f|jd <d}}}g|_!t"<22>p|jd!k|_#|j#<23>r<>|dk<02>rj| dd<12>d| dd<1F>} t
<EFBFBD>r\t d| <09>t| \|_}
|
d"k<02>rxd#}
d$|
k<06>r<>|
<EFBFBD>$d$d%<25>}
d&|
k<06>r<>|
<EFBFBD>$d&d%<25>}
|
|jd'|jj%f}|j!<21>&d(dd||fd|f<04><00>n\t'|jk<06>s<>t(|jk<06>rt'|jk<06>r|jt'}|j<00>t)|<04>}|jd}n"|jt(}|j<00>d)<29>}|j<00>d*<2A>}x<>|D]<5D>}|||k<04>rj|t*|<06>d+}nd}|
}|jdk<02>r<>|
|}||}|t |<16>df}|j!<21>&|j||t|||<03>t|||<04>f||f<04>||}||jdk<05>rFd||}}||jdk<05>rFd}}|d7}<10>qFWnt
<EFBFBD>r*t d,<2C>td-<2D><01>t+|jk<06>rN|jt+|jd.<|jd/k<06>r<>d0d1<64>|jt,D<00>}t-<2D>.d2d3<64>/|<18><01>|_0|j<00>d4<64>|_1dS)5z-Setup this image object based on current tagsi<01>z+Windows Media Photo files not yet supportedrrrrz*** Summary ***z- compression:z- photometric_interpretation:z- planar_configuration:z - fill_order:z- YCbCr subsampling:iz- size:)rr)rrrrrrz format key:z- unsupported formatzunknown pixel modez - raw mode:z - pil mode:<3A> compressionrg<00>?<3F>dpigR<67><1E><>Q@N<>
resolutionrzI;16zI;16Nz;16Bz;16Nz;16LFrFiBiCrz- unsupported data organizationzunknown data organization<6F> icc_profile)r.r/cSsg|]}t|d<00><01>qS)r)r )rr<>rrr!r<>sz(TiffImageFile._setup.<locals>.<listcomp>zRGB;Lr<4C>i)2r(r<><00>COMPRESSION_INFOr<00> COMPRESSION<4F> _compression<6F>PLANAR_CONFIGURATION<4F>_planar_configuration<6F>PHOTOMETRIC_INTERPRETATION<4F> FILLORDERr<52>rr<>r<><00>
IMAGEWIDTH<EFBFBD> IMAGELENGTHr:r<><00> SAMPLEFORMATr<54><00>max<61>min<69> BITSPERSAMPLE<4C> EXTRASAMPLESr3<00> OPEN_INFOr5rr}r<><00> X_RESOLUTION<4F> Y_RESOLUTION<4F>RESOLUTION_UNITrH<00> READ_LIBTIFFr<r<>r
rr<00> TILEOFFSETS<54> ROWSPERSTRIP<49>sum<75>
ICCPROFILE<EFBFBD>COLORMAPr
rr<><00>paletter@)rH<00>photoZ fillorderZxsizeZysizeZ sampleFormatZ bps_tupleZ extra_tupleZ bps_count<6E>key<65>rawmodeZxresZyresZresunit<69>x<>yZlayerrK<00>offsetsr<73><00>wr
<00>strideZ tile_rawmodernrrr!r9<00>s<>

 
 

 2

 

    
 
(
 



 
   
 
  
   zTiffImageFile._setupcCsBz4y|j|jkr|j<00><02>Wntk
r0YnXWdd|_XdS)N)r+r<>rN<00>AttributeError)rHrrr!<00>
_close__fp<EFBFBD>s  
zTiffImageFile._close__fp)rsrtrur<><00>format_descriptionrAr/rxr1r3rr.r<>r<>rr rCr=r9rx<00> __classcell__rr)r?r!r'<00>s"
   ]Hr'r#r$r*r.r/zI;32SzI;16zI;16SzF;32Fr+r-r,r0<00>YCbCrr1zI;32BSzI;16BzI;16BSzF;32BF)r#r$r*r.r/r'zI;16zI;16Sr)r+r-r,r0r{r1zI;32BSzI;16BzI;16BSzF;32BFc! Cs@yt|j\}}}}}}Wn"tk
r<td|j<00><01>YnXt|d<02>} |j<05>d|j<07>d<03><01>}
|
dkrjd}
tpt|
dk} t |dd<06>| t
<|j d| t <|j d| t <|j<05>di<00>} tr<>td t| <0C><00>t| t<12>r<>| <0C><13>} xF| D]>} | <0C>| <0A>| | <y| j| | j| <Wq<>tk
<EFBFBD>rYq<>Xq<>Wt|d
<EFBFBD><02>rrxFttttttfD]2} | |jk<06>r<|j| | | <|jj| | j| <<00>q<Wd |jk<06>r<>|jd | t<xhtd ftd ftd ftdftdftdft dft!dft"dft#dfg
D]$\} }||jk<06>r<>|j|| | <<00>q<>W|j<05>d<15>}|<0F>r8d| t<t$|dd<00>| t<t$|dd<00>| t<|dk<03>rd|| t%<t&|<07>dk<03>rdt&|<07>| t'<|dk <09>rv|| t(<|dk<03>r<>|| t)<|| t*<|jdk<06>r<>|j+<2B>,dd<1B>}t-dd<1D>|D<00><01>| t.<t&|<07>|j d|ddd}|j d| t/<||j d| t0<d| t1<t2<74>|
d<06>| t3<| <0B>r<>d |jk<06>rx|jd }t|t$<24><02>rV|dk<00>sV|d!k<04>r^t4d"<22><01>|
d#k<03>rpt4d$<24><01>|| t5<t<0E>r<>td%<25>td&t6| <09>7<EFBFBD><00><00>d}t|d'<27><02>r<>y|<01>8d<07>t9<74>:|<01>;<3B><00>}Wnt<j=k
<EFBFBD>r<>YnXi}t.t>t)t0t1t?g}i}|d|t%<i}t|d(<28><02>r|j@<40><13>}<17>xtA<74>B| <09>7<EFBFBD>t |d
i<00><03>7<EFBFBD>|<17>7<EFBFBD><00>D]<5D>\}}|tCjDk<07>r<>tC<74>E|<18>jFtCjGk<02>rp<72>qDtHjI<6A>JtK<74><00>tHjI<6A>Jd)<29>k<00>r<><72>qD|| jk<06>r<>| j|||<n*t|t$tLtMtNf<04><02>s<>tO<74>sDt|tP<74><02>qD||k<07>rD||k<07>rDt|tO<74>r<>tMntP<74><02>r|<19>Qd*d+<2B>d,||<n"t|tR<74><02>r0tL|<19>||<n|||<<00>qDWt<0E>rXtd-t6|<16>7<EFBFBD><00><00>|jd.k<06>rhd/}t|<16>7<EFBFBD><00>}|<1A>S<EFBFBD>||
||||f}tT<74>U|jd0||jV<6A>}|<1C>W|j+d1|j <00>x.|<1C>Qd2<64>\}}}|<13>s<>|<01>X|<1F>|<1E>r<>P<00>q<>W|dk<00>r*td3|<00><01>n.| <09>Y|<01>} tZ<74>[||dd1|j | ||dffg<01>d4|jk<06>r<| |_\dS)5Nzcannot write mode %s as TIFF)r3rRrrZrrZtiffinfozTiffinfo Keys: %sr(rU<00> descriptionrTZ x_resolutionZ y_resolutionZresolution_unitZsoftware<72> date_timeZartist<73> copyrightrSrg<00>?)r)r.r/r+zRGB;Lcss|]}t|<01>dVqdS)rN)r )rr rrr!r<>sz_save.<locals>.<genexpr>rr<00>quality<74>dzInvalid quality settingrz5quality setting only supported for 'jpeg' compressionzSaving using libtiff encoderz Items: %srDr<>z4.0r<EFBFBD>r<>r<>zConverted items: %s)zI;16BzI;16zI;16NrF)rri@z(encoder error %d when writing image file<6C>_debug_multipage)]<5D> SAVE_INFOr5rr<>ry<00> encoderinforr<><00> WRITE_LIBTIFFrRrYr<>r]r^r<>rrrErr#r<>r<>rIrgrerf<00>IPTC_NAA_CHUNK<4E>PHOTOSHOP_CHUNK<4E>XMPr(rl<00>IMAGEDESCRIPTION<4F>SOFTWARE<52> DATE_TIME<4D>ARTIST<53> COPYRIGHTr<54>rbr<><00>SAMPLESPERPIXELrcr_r[r6Z
getpaletter<EFBFBD>rmrj<00>STRIPBYTECOUNTSr<00>COMPRESSION_INFO_REVrWr<><00> JPEGQUALITYr r<>rrJrKrD<00>io<69>UnsupportedOperation<6F>REFERENCEBLACKWHITE<54>TRANSFERFUNCTIONr<4E><00> itertools<6C>chainr Z LIBTIFF_COREr<45>r<>r<><00> distutils<6C>versionZ StrictVersionr?rDrMr<>rr<>r<>r7<00>sortrZ _getencoder<65> encoderconfigrLrrr <00>_saver<65>)!r6r<><00>filenamerqr3ror<><00>bits<74>extrar!rRrFr<>rpr<>rSZlutrvr<00>_fp<66>typesZ blocklistZattsZ
legacy_ifdr<EFBFBD>rIr%rK<00>er<65><00>sr<73>r
rrr!r<><00>s 
 


 
    
 

 " 
 
 
   
&     


  r<>c @s<>eZdZdddddddddddddg Zdddd d
d hZd:d d<0E>Zdd<10>Zdd<12>Zdd<14>Zdd<16>Z dd<18>Z
dd<1A>Z e j fdd<1C>Zdd<1E>Zdd <20>Zd!d"<22>Zd#d$<24>Zd%d&<26>Zd'd(<28>Zd)d*<2A>Zd+d,<2C>Zd-d.<2E>Zd/d0<64>Zd1d2<64>Zd3d4<64>Zd5d6<64>Zd;d7d8<64>Zd9S)<<3C>AppendingTiffWriterrrrrrii iDiii FcCszt|d<01>r||_d|_nJ||_d|_yt<04>||r4dnd<05>|_Wn"tk
r`t<04>|d<04>|_YnX|j<01><07>|_|<00> <09>dS)Nr<4E>FTzw+bzr+b)
rIrL<00>close_fpr<70>r<><00>openr<6E>r<><00> beginning<6E>setup)rH<00>fnr4rrr!rJ<00>s
 zAppendingTiffWriter.__init__cCs<>|j<00>|jtj<04>d|_d|_|j<00>d<02>|_}|s>d|_ dSd|_ |dkrX|<00>
d<06>n|dkrl|<00>
d<08>nt d <09><01>|<00> <0C>|<00> <0A>dS)
NrrTFsII*r|sMM*r{zInvalid TIFF file header)rLrr<>rJ<00>SEEK_SET<45>whereToWriteNewIFDOffset<65>offsetOfNewPager<65><00>IIMM<4D>isFirst<73> setEndian<61> RuntimeError<6F>skipIFDs<44>goToEnd)rHr<>rrr!r<><00>s  zAppendingTiffWriter.setupcCs<>|jr
dS|j<01>|j<03>|j<01>d<01>}|s,dS||jkr>td<02><01>|<00><07>}||j7}|j<01>|j<08>|<00> |<02>|j<01>|<02>|<00>
<EFBFBD>dS)Nrz1IIMM of new page doesn't match IIMM of first page) r<>rLrr<>r<>r<>r<><00>readLongr<67><00> writeLong<6E>fixIFD)rHr<><00> IFDoffsetrrr!<00>finalize<7A>s 


 zAppendingTiffWriter.finalizecCs|<00><00>|<00><01>dS)N)r<>r<>)rHrrr!<00>newFrame<6D>szAppendingTiffWriter.newFramecCs|S)Nr)rHrrr!<00> __enter__<5F>szAppendingTiffWriter.__enter__cCs|jr|<00><01>dS)NF)r<>rN)rH<00>exc_type<70> exc_value<75> tracebackrrr!<00>__exit__<5F>szAppendingTiffWriter.__exit__cCs|j<00><01>|jS)N)rLr<>r<>)rHrrr!r<><00>szAppendingTiffWriter.tellcCs*|tjkr||j7}|j<03>||<02>|<00><05>S)N)rJr<>r<>rLrr<>)rHr
<00>whencerrr!r<00>s

zAppendingTiffWriter.seekcCsb|j<00>dtj<03>|j<00><04>}d|d}d|kr:dkrRnn|j<00>tt|<02><01><01>|j<00><04>|_dS)Nrr&) rLrrJ<00>SEEK_ENDr<44>rr<><00> bytearrayr<79>)rH<00>posZpadBytesrrr!r<><00>s 
 zAppendingTiffWriter.goToEndcCs.||_|jd|_|jd|_|jd|_dS)Nr$r<>ZHHL)<04>endian<61>longFmt<6D>shortFmt<6D> tagFormat)rHr<>rrr!r<><00>s  zAppendingTiffWriter.setEndiancCsTxN|<00><00>}|dkr$|j<01><02>d|_P|j<01>|<01>|<00><05>}|j<01>|dtj<07>qWdS)Nrrr%)r<>rLr<>r<>r<00> readShortrJ<00>SEEK_CUR)rHr<><00>numTagsrrr!r<>s zAppendingTiffWriter.skipIFDscCs |j<00>|<01>S)N)rLr)rHr<>rrr!rszAppendingTiffWriter.writecCst<00>|j|j<03>d<01><01>\}|S)Nr)r<>r<>r<>rLr<>)rHrIrrr!r<>szAppendingTiffWriter.readShortcCst<00>|j|j<03>d<01><01>\}|S)Nr)r<>r<>r<>rLr<>)rHrIrrr!r<>szAppendingTiffWriter.readLongcCsF|j<00>dtj<03>|j<00>t<05>|j|<01><02>}|dk rB|dkrBtd|<00><01>dS)N<><4E><EFBFBD><EFBFBD><EFBFBD>rz wrote only %u bytes but wanted 4) rLrrJr<>rr<>r<>r<>r<>)rHrI<00> bytesWrittenrrr!<00>rewriteLastShortToLongsz*AppendingTiffWriter.rewriteLastShortToLongcCsF|j<00>dtj<03>|j<00>t<05>|j|<01><02>}|dk rB|dkrBtd|<00><01>dS)Nr<4E>rz wrote only %u bytes but wanted 2) rLrrJr<>rr<>r<>r<>r<>)rHrIr<>rrr!<00>rewriteLastShort!sz$AppendingTiffWriter.rewriteLastShortcCsF|j<00>dtj<03>|j<00>t<05>|j|<01><02>}|dk rB|dkrBtd|<00><01>dS)N<><4E><EFBFBD><EFBFBD><EFBFBD>rz wrote only %u bytes but wanted 4) rLrrJr<>rr<>r<>r<>r<>)rHrIr<>rrr!<00>rewriteLastLong'sz#AppendingTiffWriter.rewriteLastLongcCs6|j<00>t<02>|j|<01><02>}|dk r2|dkr2td|<00><01>dS)Nrz wrote only %u bytes but wanted 2)rLrr<>r<>r<>r<>)rHrIr<>rrr!<00>
writeShort-szAppendingTiffWriter.writeShortcCs6|j<00>t<02>|j|<01><02>}|dk r2|dkr2td|<00><01>dS)Nrz wrote only %u bytes but wanted 4)rLrr<>r<>r<>r<>)rHrIr<>rrr!r<>2szAppendingTiffWriter.writeLongcCs|<00><00>|j<01><02>dS)N)r<>rLrN)rHrrr!rN7szAppendingTiffWriter.closec Cs|<00><00>}x<>t|<01>D]<5D>}t<02>|j|j<05>d<01><01>\}}}|j|}||}|dk}|sl|<00><08>} | |j 7} |<00>
| <09>||j kr<>|j<05> <0C>}
|r<>|j ||dk|dkd<04>|j<05>|
d<00>n0|j<05>| <09>|j ||dk|dkd<04>|j<05>|
<EFBFBD>d} }
q|r|j<05>dtj<10>qWdS)Nrrr)<02>isShort<72>isLong)r<>r<>r<>r<>r<>rLr<><00>
fieldSizesr<EFBFBD>r<>r<><00>Tagsr<73><00>
fixOffsetsrrJr<>) rHr<>rr<>Z fieldTyperZ fieldSizeZ totalSizeZisLocalr
ZcurPosrrr!r<>;s.




  
zAppendingTiffWriter.fixIFDcCs<>|s|std<01><01>x<>t|<01>D]<5D>}|r*|<00><02>n|<00><03>}||j7}|r<>|dkr<>|dkrXtd<04><01>|<00>|<05>|j<06>dtj <09>|<00>
t j <0C>|j<06>dtj <09>q|r<>|<00> |<05>q|<00>|<05>qWdS)Nz offset is neither short nor longirznot implementedi<64><69><EFBFBD><EFBFBD>r)r<>r<>r<>r<>r<>r<>rLrrJr<>r<>r r<>r<>r<>)rHrr<>r<>rr
rrr!r<>^s
 
  zAppendingTiffWriter.fixOffsetsN)F)FF)rsrtrur<>r<>rJr<>r<>r<>r<>r<>r<>r<>r<>rr<>r<>r<>rr<>r<>r<>r<>r<>r<>r<>rNr<>r<>rrrr!r<><00>sH 

 #r<>c Cs<>|j<00><01>}|j}t|<03>dg<00><02>}t|d<02>s:|s:t|||<02>S|<00><07>}z<>t|<01><01>t}xl|g|D]^}||_||_t|d<02>szd} n|j } x6t
| <09>D]*}
|<08> |
<EFBFBD>|<08> <0C>t|||<02>|<07> <0A>q<>WqZWWdQRXWd|<00> |<06>XdS)N<> append_imagesr1r)r<><00>copyr<79>rrrIr<>r<>r<>r1r<>rr r<>) r6r<>r<>r<>r<>r<>Zcur_idx<64>tfZimsZnfrr<72>rrr!<00> _save_allvs(
 


 r<>z.tifz.tiffz
image/tiff)f<>
__future__rrZdistutils.versionr<6E>r<>r<>rJr<>r<>r<>Z fractionsr<00>numbersrr<00>rr r
r <00>_binaryr r Z_utilrr<00>collections.abcr<00> ImportError<6F> collections<6E> __version__r<5F>rhr<>ZIFD_LEGACY_APIr<49>rr]r^rbrWr[r\r<>rr<>rjr<>rerfrYrgr<>r<>r<>r<>Z PREDICTORrmrircr_Z
JPEGTABLESr<EFBFBD>r<>r<>r<>rlZEXIFIFDr<44>r<>ZIMAGEJ_META_DATA_BYTE_COUNTSZIMAGEJ_META_DATArVr<>r<>rdr2r4r;r?r<>r<>r7ryr<>r<>r<><00>setattrrZImageFileDirectoryr'r<>r<>r<>r<>Z register_openr<6E>Z register_saveZregister_save_allZregister_extensionsZ register_mimerrrr!<00><module>*s<>   v\ X>[o