\ddZddlmZddlmZddlmZmZmZddlm Z ddl m Z ddl Z ddl m Z dd lmZmZddlZddlZddlZddlZgd Z dd lmZed d Zn #e$rdZYnwxYweefZdZgdZdZ dZ!Gdde"Z#Gdde#Z$Gdde#Z%Gdde"Z& ddl'm(Z(n #e$rdZ(YnwxYwdZ)dZ*dZ+dZ,d Z-d!Z.d"Z/d#Z0d$Z1d%Z2d&Z3d'Z4d(Z5d)Z6d*Z7d+Z8d,Z9d-Z:d.Z;d/Zd2Z?d3Z@d4ZAd5ZBd6ZCd7ZDd8ZEd9ZFd:ZGd;ZHdZKd?ZLd@ZMdAZNdBZOdCZPdDZQdEZRdFZSdGZTdHZUdIZVdJZWdKZXdLZYdMZZdNZ[dOZ\dPZ]dQZ^dRZ_eOeYeZe[gZ`dSZadTZbdUZcdVZddWZedXZfdYZgdZZhd[Zid\Zjd]Zkd^Zld_Zmd`ZndaZoepdbeqDGdcddZrGdedfZsdgZtdhZudiZvdjZwGdkdlZxGdmdnZydd ddodpZzdd ddodqZ{d drdsddtduZ|d drdsddtdvZ} dd lm#Z#m$Z$m%Z%m~Z~mZmZmZmZmZn#e$rexeycZ~Zeze{e|e}f\ZZZZYnwxYwdwZedxkrddlZejdyzZed{ejd|d}d~eddddedddeZejr edSejsedSddlZejD]ZeeZejedSdS)aCreate portable serialized representations of Python objects. See module copyreg for a mechanism for registering custom picklers. See module pickletools source for extensive comments. Classes: Pickler Unpickler Functions: dump(object, file) dumps(object) -> string load(file) -> object loads(bytes) -> object Misc variables: __version__ format_version compatible_formats ) FunctionType)dispatch_table)_extension_registry_inverted_registry_extension_cache)islice)partialN)maxsize)packunpack) PickleError PicklingErrorUnpicklingErrorPickler Unpicklerdumpdumpsloadloads) PickleBufferrTF4.0)z1.0z1.1z1.2z1.3z2.0z3.0rz5.0ceZdZdZdS)r z6A common base class for the other pickling exceptions.N__name__ __module__ __qualname____doc__..\python\lib\pickle.pyr r Is@@Dr!r ceZdZdZdS)rz]This exception is raised when an unpicklable object is passed to the dump() method. Nrr r!r"rrMs Dr!rceZdZdZdS)raThis exception is raised when there is a problem unpickling an object, such as a security violation. Note that other exceptions may also be raised during unpickling, including (but not necessarily limited to) AttributeError, EOFError, ImportError, and IndexError. Nrr r!r"rrTs Dr!rceZdZdZdS)_Stopc||_dSN)valueselfr)s r"__init__z_Stop.__init__bs  r!N)rrrr,r r!r"r&r&as#r!r&) PyStringMap(.012FIJKLMNPQRSTUVXabcd}eghijl]opqrst)uGsI01 sI00 BCc<g|]}tjd||S)z[A-Z][A-Z0-9_]+$)rematch).0xs r" rws*DDDaBH-?$C$CDDDDr!c<eZdZdZdZdZdZdZd dZdZ d Z d S) _Framerric"||_d|_dSr() file_write current_frame)r+r{s r"r,z_Framer.__init__s$!r!c6tj|_dSr()ioBytesIOr|r+s r" start_framingz_Framer.start_framingsZ\\r!c|jr<|jdkr!|dd|_dSdSdS)NrTforce)r|tell commit_framers r" end_framingz_Framer.end_framings[   &$"4"9"9";";a"?"?   D  ) ) )!%D    & &"?"?r!Fc p|jr|j}||jks|r|}|j}t ||jkr.|ttdt |z||tj |_dSdSdS)N>!$$ $r!c|jrS|j}|sd|_|S|ddkrtd|S|S)N r)r|readlinerrrs r"rz_Unframer.readline,s~   (%..00D ,%)"))+++Bx8##%:<<<K%%'' 'r!c|jr,|jdkrtdtj|||_dS)Nr!z4beginning of a new frame before end of current frame)r|rrr~rrr+ frame_sizes r" load_framez_Unframer.load_frame9sc   H$"4"9"9";";s"B"B!FHH HZz(B(BCCr!r()rrrr,rrrrr r!r"rrsi"""" " % % % ( ( (DDDDDr!rc|dD]p}|dkr#td|| |}t||}?#t$r%td||dwxYw||fS)N.zz&Can't get local attribute {!r} on {!r}z Can't get attribute {!r} on {!r})splitAttributeErrorformatgetattr)objnamesubpathparents r" _getattributerBs::c?? ? ? j  !I"(&s"3"355 5 ?F#w''CC ? ? ? !C"(&s"3"355:> ? ? ;s A/Bct|dd}||StjD]A\}}|dks|dks| t ||d|ur|cS2#t $rY>wxYwdS)z$Find the module an object belong to.rN__main__ __mp_main__r)rsysmodulescopyitemsrr)rr module_namemodules r" whichmodulerOs#|T22K #{//117799   V : % %m++~  VT**1-44""""5    D  :sA88 BBc|dkrdS|dz dz}||dd}|dkr+|dkr%|dd kr|d d zdkr |d d}|S) aEncode a long to a two's complement little-endian binary string. Note that 0 is a special case, returning an empty string, to save a byte in the LONG1 pickling context. >>> encode_long(0) b'' >>> encode_long(255) b'\xff\x00' >>> encode_long(32767) b'\xff\x7f' >>> encode_long(-256) b'\x00\xff' >>> encode_long(-32768) b'\x00\x80' >>> encode_long(-128) b'\x80' >>> encode_long(127) b'\x7f' >>> rr!littleT byteordersignedrN) bit_lengthto_bytes)rvnbytesresults r" encode_longrbs* Avvsllnn!Q &F ZZ(4Z @ @F1uu! ":  6":#4":":CRC[F Mr!c<t|ddS)a\Decode a long from a two's complement little-endian binary string. >>> decode_long(b'') 0 >>> decode_long(b"\xff\x00") 255 >>> decode_long(b"\xff\x7f") 32767 >>> decode_long(b"\x00\xff") -256 >>> decode_long(b"\x00\x80") -32768 >>> decode_long(b"\x80") -128 >>> decode_long(b"\x7f") 127 rTr)int from_bytes)rs r" decode_longrs$ >>$(4> @ @@r!ceZdZd!ddddZdZdZdZdZd Zd"d Z d Z d Z d#dd dZ iZ dZee ed<dZee e<dZee e<dZee e<dZee e<dZee e<erdZee e<dZee e<dZee e <dZ!e!e e"<dZ#dZ$dZ%e%e e&<e'e%e e'<dZ(dZ)e)e e*<dZ+e+e e,<d!dZ-d Z.e-e e/<e.e e<dS)$_PicklerNT fix_importsbuffer_callbackc|t}|dkrt}n+d|cxkr tksntdtz||dkrtd||_ |j|_n#t $rtdwxYwt|j|_ |j j|_|j j |_ i|_ t||_|dk|_d|_|o|dk|_dS) a!This takes a binary file for writing a pickle data stream. The optional *protocol* argument tells the pickler to use the given protocol; supported protocols are 0, 1, 2, 3, 4 and 5. The default protocol is 4. It was introduced in Python 3.4, and is incompatible with previous versions. Specifying a negative protocol version selects the highest protocol version supported. The higher the protocol used, the more recent the version of Python needed to read the pickle produced. The *file* argument must have a write() method that accepts a single bytes argument. It can thus be a file object opened for binary writing, an io.BytesIO instance, or any other custom object that meets this interface. If *fix_imports* is True and *protocol* is less than 3, pickle will try to map the new Python 3 names to the old module names used in Python 2, so that the pickle data stream is readable with Python 2. If *buffer_callback* is None (the default), buffer views are serialized into *file* as part of the pickle stream. If *buffer_callback* is not None, then it can be called any number of times with a buffer view. If the callback returns a false value (such as None), the given buffer is out-of-band; otherwise the buffer is serialized in-band, i.e. inside the pickle stream. It is an error if *buffer_callback* is not None and *protocol* is None or smaller than 5. Nrzpickle protocol must be <= %drz#buffer_callback needs protocol >= 5z"file must have a 'write' attributerr)DEFAULT_PROTOCOLHIGHEST_PROTOCOL ValueError_buffer_callbackr _file_writer TypeErrorryframerr_write_large_bytesmemorprotobinfastr)r+fileprotocolrrs r"r,z_Pickler.__init__s#F  'H a<<'HHh2222"222223J3J3J!MNN N :?? JJutD$*555 6 6 6 :?? K % % ' ' ' # 4 !!!!!r!c|jrdSt||jvsJt|j}|||||f|jt|<dS)zStore an object in the memo.N)ridrrrput)r+ridxs r"memoizez_Pickler.memoizesq 9  F#wwdi''''$)nn 488C==!!! #X "S''r!c|jdkrtS|jr6|dkrtt d|zSt t d|zSt t|dzdzS)Nrr??? b#      S" % % % F"e$$ K @6 IJJ J GGQ ! !68>!?@@ @ 2&S&&&&&r!cdSr(r rs r"rz_Pickler.persistent_id]str!c6|jr3||d|tdS |tt |dzdzdS#t$rtdwxYw)NF)r rr2persistent IDs in protocol 0 must be ASCII strings) rrr BINPERSIDPERSIDrrUnicodeEncodeErrorrr+r!s r"rz_Pickler.save_persas 8 J IIceI 4 4 4 JJy ! ! ! ! ! J 6CHHOOG$<$<>Brc "t|tstdt|std|j}|j} t |dd} |jdkr| dkr|\} }} t| ds"td | |+| |j ur"td | |jd kr2|| |||| | tnt| j | g|Ri| }|||d | tn|jdkrx| d krr|d } t| dstd|| |j urtd|dd}|| ||| tn&||||| t|pt!||jvrE| t$||jt!|d zn|||||||||r|||| t.dS||||||| t0| t| t$dSdS)Nz'args from save_reduce() must be a tuplez(func from save_reduce() must be callablerr __newobj_ex____new__z#args[0] from {} args has no __new__z(args[0] from {} args has the wrong classrr __newobj__rz+args[0] from __newobj__ args has no __new__z0args[0] from __newobj__ args has the wrong classr)rrrcallablerrrrrrr NEWOBJ_EXr r1REDUCENEWOBJrrPOPrr_batch_appends_batch_setitemsBUILDTUPLE2) r+funcargsstate listitems dictitems state_setterrrr func_nameclskwargss r"rz_Pickler.save_reducemsn$&& K IJJ J~~ L JKK Ky D*b11 :??yO;; $ Cv3 ** 8#$I%+VI%6%68883cm#;#;#$N%+VI%6%6888zQS T V i    s{CA$AAA&AAT Rf Z1__l!:!:6q'C3 ** C#ACCC3cm#;#;#FHHH8D DIII DJJJ E&MMMM DJJJ DJJJ E&MMM ?#ww$)##cDHHTYr#ww%7%:;;;<<<< S!!!     * * *    + + +  #U e \"""S U f f c '  r!c:|tdSr()rNONErs r" save_nonez_Pickler.save_nones 4r!c|jdkr%||rtntdS||rtnt dS)Nr)rrNEWTRUENEWFALSETRUEFALSErs r" save_boolz_Pickler.save_boolsO :?? JJ#3ww8 4 4 4 4 4 JJs-tt . . . . .r!c|jr|dkrf|dkr-|ttd|zdS|dkr-|ttd|zdSd|cxkrdkr0nn-|t td|zdS|jd krt|}t|}|d kr/|ttd|z|zn.|ttd|z|zdSd|cxkrdkrEnnB|tt| d zd zdS|tt| d zd zdS)Nrrr ? ? ? ? ? JJtd3ii..w777&@ A A A A Ar!c|jr-|ttd|zdS|tt |dzdzdS)N>drr)rrBINFLOATr FLOATrrrs r" save_floatz_Pickler.save_floatsh 8 B JJx$tS//1 2 2 2 2 2 JJutCyy//8885@ A A A A Ar!c|jdkrT|s|td|n2|tjt |ddf|dSt |}|dkr/|ttd|z|zn|dkr8|jdkr-| ttd |z|nk||j j kr-| ttd |z|n.|ttd |z|z||dS) Nrr r-latin1rrrrr)rrbytescodecsrrrrSHORT_BINBYTESr r BINBYTES8rrBINBYTESrr+rrs r" save_bytesz_Pickler.save_bytessW :>> J   4444  "%c8"4"4h!?S!JJJ F HH 99 JJ~T1 5; < < < < ^^ a  # #IT1 $=s C C C C $+0 0 0  # #HtD!}}$> D  BC 8888  U3ZZMs CCC F HH  . . .  # #JdA$> D D D D JJzDqMM1C7 8 8 8 Sr!c>|jdkrtd|5}|jstdd}|j"t ||}|rW|jr(||nc| |n;| t|jr| tddddS#1swxYwYdS)Nrz0PickleBuffer can only pickled with protocol >= 5zHPickleBuffer can not be pickled when pointing to a non-contiguous bufferT) rrraw contiguousrboolreadonlyrjtobytesrnr NEXT_BUFFERREADONLY_BUFFER)r+rmin_bands r"save_picklebufferz_Pickler.save_picklebuffer9sbzA~~#%4555 4a|O')NOOO(4"4#8#8#=#=>>G 4z9 4444++AIIKK8888JJ{+++z4 ?333% 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4sCDDDc|jr|dd}t|}|dkr;|jdkr0|t t d|z|znL|dkr9|jdkr.|tt d|z|n ||j j kr-|tt d|z|n|tt d|z|zn| d d }| d d }| d d}| dd}| dd}|t|dzdz||dS)Nutf-8 surrogatepassrrrrcrr\z\u005cz\u0000 z\u000a z\u000dz\u001araw-unicode-escaper)rrrrrSHORT_BINUNICODEr r BINUNICODE8rr BINUNICODEreplaceUNICODErrYs r"save_strz_Pickler.save_strSs 8 jj/::GG ADyyTZ1__ +d4mm;gEFFFFZDJ!OO'' d4mm(CWMMMMdk444'' T$]](BGLLLL :T1 5?@@@@++dI..C++dI..C++dI..C++dI..C++fi00C JJw,@!A!AA    Sr!c|sF|jr|tn"|ttzdSt |}|j}|j}|dkr|jdkr|D] }||t||vrO| |t|d}|t|z|zn5|t|| |dS|j}|t|D] }||t||vrd| |t|d}|jr|t|zn|t|dzz|zdS|t| |dS)Nrrrr)rr EMPTY_TUPLEMARKTUPLErrrrrrr7_tuplesize2coderPOP_MARK)r+rrrrelementrrs r" save_tuplez_Pickler.save_tuplejs x ) ;'''' 4%<((( F HHyy 66djAoo  W #ww$hhtBsGG}Q/00 37S=)))) ?1-... S!!! F  d   G DMMMM c77d??((43=+,,Cx )hn%%%%cQqSkC'((( F e  Sr!c|jr|tn"|ttz||||dSr()rr EMPTY_LISTrLISTrr8rs r" save_listz_Pickler.save_listsc 8 $ JJz " " " " JJtd{ # # # S C     r!ic|j}|j}|js"|D]}|||tdSt |} t t ||j}t|}|dkr1|t|D] }|||tn#|r!||d|t||jkrdSNTrr) rrrAPPENDiterlistr _BATCHSIZErrAPPENDS)r+rrrrvittmprs r"r8z_Pickler._batch_appendssy x   Qf F %[[ vb$/2233CCA1uud ADGGGGg SV f 4?"" r!c|jr|tn"|ttz||||dSr()rr EMPTY_DICTrDICTrr9rrs r" save_dictz_Pickler.save_dictsk 8 $ JJz " " " " JJtd{ # # # S SYY[[)))))r!c|j}|j}|js0|D]+\}}|||||t,dSt |} t t ||j}t|}|dkr?|t|D]\}}|||||tn3|r1|d\}}|||||t||jkrdSr) rrrSETITEMrrrrrrSETITEMS) r+rrrkvrrrs r"r9z_Pickler._batch_setitemss6y x   1QQg F %[[ vb$/2233CCA1uud DAqDGGGDGGGGh 1v1QQg4?""! r!c|j}|j}|jdkr-|tt |f|dS|t ||t|} t t||j }t|}|dkr0|t|D] }|||t||j krdSu)Nrr-Tr)rrrrsetr EMPTY_SETrrrrrrADDITEMS)r+rrrrbatchritems r"save_setz_Pickler.save_setsy  :>>   S499,C  8 8 8 F i S #YY DO4455EE A1uud !DDJJJJh4?"" r!c |j}|j}|jdkr-|tt |f|dS|t |D] }||t||jvrF|t| |jt|dzdS|t| |dS)Nrr-r) rrrr frozensetrrrrrr FROZENSETr)r+rrrrs r"save_frozensetz_Pickler.save_frozenset sy  :>>   Yc #  > > > F d   D DJJJJ c77di   E(TXXdi3&8&;<<< = = = F i Sr!c |j}|j}|t|dd}||j}t ||} t |dt j|}t||\}}||urtd|d|d|n4#tttf$rtd|d|d|dwxYw|j dkrtj||f} | r{| dksJ| d kr"|t t#d | znI| d kr"|t$t#d | zn!|t&t#d | zdS|dd} ||ur| }|j dkr<|||||t,n||ur|t|| fn|j dkr9|t0t3|dzdzt3|dzdzn|jr8t6j} t6j} ||f| vr| ||f\}}n || vr| |} |t0t3|dzdzt3|dzdzn)#t<$rtd|||j fzdwxYw||dS)Nrrlevelrz: it's not the same object as rz: it's not found as rrrrOrPrQrrr{rrz?can't pickle global identifier '%s.%s' using pickle protocol %i) rrrrr __import__rrrr ImportErrorKeyErrorrrrrEXT1r EXT2EXT4 rpartitionr STACK_GLOBALrGLOBALrdr_compat_pickleREVERSE_NAME_MAPPINGREVERSE_IMPORT_MAPPINGr+r) r+rrrrrrobj2rcodelastnamer_name_mappingr_import_mappings r"rz_Pickler.save_global s y <355D <??D axxxx4<<E$dD!1!112222V^^E$dD!1!112222E$dD!1!11222??3''* V  D :?? IIk " " " IIdOOO E,     6 ! !   Wvx&8 9 9 9 9 Z1__ E&5g666>g&&')./ 0 0 0 0 @!/!D#1#H &.88(6 T7J(K%K $444"2;"?K Qfu[':::UBD'**+-234444% Q Q Q#),2D$*+EFGGLPQ Q Ss6B1C/8J((&KcV|tdur|td|S|ttur#|ttf|S|tdur|td|S||S)Nr(r-.).)rrrrrs r" save_typez_Pickler.save_typebs $t**  ##D's#;; ; D(( ( (##D>*;#EE E DII  ##D&c#:: :$$$r!r()T)NNNN)0rrrr,rrrrrrrrrrrGrrMrrr[rr`floatrjrdrnrl_HAVE_PICKLE_BUFFERryrrrrrrrrr8rdictr-r9rrrrrrrr r!r"rrs784!%7878787878r " " "&&&. ; ; ;555D'D'D'D'L J J J=A15q>BqqqqqjH$HTT$ZZ/// HTNBBB:HSMBBB !HUO$!HUO   )HY3 4 4 40"3*HSM///b!HUO!!!HTNJ6***HTN )>,HSM*)HY@@@@D%%%)H\HTNNNr!rceZdZddddddZdZdZd ZiZd Zeee d <d Z e ee d <d Z e ee d <dZeeed <dZeeed <dZeeed <dZeeed <dZeeed <dZeeed <dZeeed <dZeeed <dZeeed <dZ e ee!d <dZ"e"ee#d <dZ$e$ee%d <dZ&e&ee'd <dZ(dZ)e)ee*d <dZ+e+ee,d <dZ-e-ee.d <dZ/e/ee0d <d Z1e1ee2d <d!Z3e3ee4d <d"Z5e5ee6d <d#Z7e7ee8d <d$Z9e9ee:d <d%Z;e;eed <d'Z?e?ee@d <d(ZAeAeeBd <d)ZCeCeeDd <d*ZEeEeeFd <d+ZGeGeeHd <d,ZIeIeeJd <d-ZKeKeeLd <d.ZMeMeeNd <d/ZOeOeePd <d0ZQeQeeRd <d1ZSeSeeTd <d2ZUeUeeVd <d3ZWeWeeXd <d4ZYd5ZZeZee[d <d6Z\e\ee]d <d7Z^e^ee_d <d8Z`e`eead <d9Zbebeecd <d:Zdedeeed <d;Zfefeegd <d<Zheheeid <d=Zjejeekd <d>Zld?Zmd@Zneneeod <dAZpepeeqd <dBZrereesd <dCZteteeud <dDZveveewd <dEZxexeeyd <dFZzezee{d <dGZ|e|ee}d <dHZ~e~eed <dIZeeed <dJZeeed <dKZeeed <dLZeeed <dMZeeed <dNZeeed <dOZeeed <dPZeeed <dQZeeed <dRZeeed <dS)S _UnpicklerTASCIIstrictNrencodingerrorsbuffersc|t|nd|_|j|_|j|_i|_||_||_d|_ ||_ dS)aThis takes a binary file for reading a pickle data stream. The protocol version of the pickle is detected automatically, so no proto argument is needed. The argument *file* must have two methods, a read() method that takes an integer argument, and a readline() method that requires no arguments. Both methods should return bytes. Thus *file* can be a binary file object opened for reading, an io.BytesIO object, or any other custom object that meets this interface. The file-like object must have two methods, a read() method that takes an integer argument, and a readline() method that requires no arguments. Both methods should return bytes. Thus file-like object can be a binary file object opened for reading, a BytesIO object, or any other custom object that meets this interface. If *buffers* is not None, it should be an iterable of buffer-enabled objects that is consumed each time the pickle stream references an out-of-band buffer view. Such buffers have been given in order to the *buffer_callback* of a Pickler object. If *buffers* is None (the default), then the buffers are taken from the pickle stream, assuming they are serialized there. It is an error for *buffers* to be None if the pickle stream was produced with a non-None *buffer_callback*. Other optional arguments are *fix_imports*, *encoding* and *errors*, which are used to control compatibility support for pickle stream generated by Python 2. If *fix_imports* is True, pickle will try to map the old Python 2 names to the new names used in Python 3. The *encoding* and *errors* tell pickle how to decode 8-bit string instances pickled by Python 2; these default to 'ASCII' and 'strict', respectively. *encoding* can be 'bytes' to read these 8-bit string instances as bytes objects. Nr) r_buffersr_file_readliner _file_readrrrrr)r+rrrrrs r"r,z_Unpickler.__init__ssXN*1)<W $ "m)     &r!c.t|dstd|jjdt |j|j|_|jj|_|jj |_ |jj |_ g|_ g|_ |j j |_ d|_|j}|j} |d}|st t#|t$sJ||d|C#t&$r}|jcYd}~Sd}~wwxYw)zRead a pickled object representation from the open file. Return the reconstituted object hierarchy specified in the file. rz'Unpickler.__init__() was not called by rrTrN)rrrrrrr _unframerrrr metastackstackappendrrEOFErrorr bytes_typesr&r))r+rrkeystopinsts r"rz_Unpickler.loads;t\** P!/59^5L5L5L#OPP P"4?D4GHHN' / /  j'  y= " 'd1gg#"N!#{33333 Q &&&  '  " " "> ! ! ! ! ! ! "s5AC99 DD DDcr|j}|j|_|jj|_|Sr()rrpoprr+rs r"pop_markz_Unpickler.pop_marks/ ^'')) j'  r!c td)Nz%unsupported persistent id encountered)rr,s r"persistent_loadz_Unpickler.persistent_loadsEFFFr!c|dd}d|cxkr tksntd|z||_dS)Nrrzunsupported pickle protocol: %d)rrrr)r+rs r" load_protoz_Unpickler.load_protosT ! QE--------->FGG G r!rctd|d\}|tjkrt d|z|j|dS)Nrzframe size > sys.maxsize: %d)r rrr rrrrs r"rz_Unpickler.load_framesZT499Q<<00  # #;jHII I !!*-----r!c |ddd}n#t$rtdwxYw|||dS)Nrrr()rdecodeUnicodeDecodeErrorrrrr,s r" load_persidz_Unpickler.load_persids F--//#2#&--g66CC! F F F!DFF F F D((--.....s /2A c|j}|||dSr()rrrrr,s r"load_binpersidz_Unpickler.load_binpersids9jnn D((--.....r!c0|ddSr(rrs r" load_nonez_Unpickler.load_none Dr!c0|ddS)NFrrs r" load_falsez_Unpickler.load_falses Er!c0|ddS)NTrrs r" load_truez_Unpickler.load_truerr!c|}|tddkrd}n&|tddkrd}nt|d}||dS)NrFTr)rrLrKrr)r+rvals r"load_intz_Unpickler.load_intsh}} 59  CC T!""X  CCdA,,C Cr!c~|td|dddS)NrQrrrr rrs r" load_binintz_Unpickler.load_binint3 F41..q122222r!cb||dddSNrr)rrrs r" load_binint1z_Unpickler.load_binint1s( DIIaLLO$$$$$r!c~|td|dddS)NrPrrrrs r" load_binint2z_Unpickler.load_binint2rr!c|dd}|r|ddkr |dd}|t|ddS)NrLr)rrr)r+rs r" load_longz_Unpickler.load_long s[mmoocrc"  3r7g%%crc(C CQKK     r!c|dd}||}|t|dSr)rrrrs r" load_long1z_Unpickler.load_long1sD IIaLLOyy|| K%%&&&&&r!ctd|d\}|dkrtd||}|t |dS)NrQrrz#LONG pickle has negative byte count)r rrrrrs r" load_long4z_Unpickler.load_long4sd D$))A,, ' ' q55!"GHH Hyy|| K%%&&&&&r!c~|t|dddSNr)rrrrs r" load_floatz_Unpickler.load_float"s3 E$--//#2#.//00000r!c~|td|dddS)Nr]rrrrs r" load_binfloatz_Unpickler.load_binfloat&rr!c\|jdkr|S||j|jS)Nrd)rrrr*s r"_decode_stringz_Unpickler._decode_string*s. =G # #L<< t{;; ;r!cP|dd}t|dkr'|d|dkr|ddvr |dd}ntd||t j|ddS)Nrrrs"'rz)the STRING opcode argument must be quoted)rrrrrre escape_decoders r" load_stringz_Unpickler.load_string3s}}ss# t99>>d1gb11d1g6G6G":DD!"MNN N D''(rs r" load_tuple2z_Unpickler.load_tuple2s) JrNDJrN;< 233r!ch|jd|jd|jdfg|jdd<dS)Nrrr>rs r" load_tuple3z_Unpickler.load_tuple3s1 JrNDJrNDJrNKL 233r!c0|gdSr(rrs r"load_empty_listz_Unpickler.load_empty_listr<r!c0|idSr(rrs r"load_empty_dictionaryz _Unpickler.load_empty_dictionaryr<r!cH|tdSr()rrrs r"load_empty_setz_Unpickler.load_empty_sets CEEr!cr|}|t|dSr()rrrrs r"load_frozensetz_Unpickler.load_frozensets/  Ie$$%%%%%r!cX|}||dSr()rrrs r" load_listz_Unpickler.load_lists'  Er!c|fdtdtdD}||dS)Nc4i|]}||dzS)rr )rur rs r" z(_Unpickler.load_dict..s7 / / /1XuQqSz / / /r!rr)rrangerr)r+drs @r" load_dictz_Unpickler.load_dicts]  / / / /As5zz1-- / / / Ar!c X|s%t|trt|drX ||}nf#t$rD}td|jdt |t jdd}~wwxYw||}| |dS)N__getinitargs__zin constructor for z: r) rrrrrrrexc_infor1r)r+klassr=r)errs r" _instantiatez_Unpickler._instantiates  ) 5$// ) E, - - ) Ot  O O Oi!&S!;|ddd}|ddd}|||}|||dS)Nrr)rr find_classrZrr+rrrXs r" load_instz_Unpickler.load_insts"%,,W55}}ss#**733-- %11111r!c|}|d}|||dSNr)rrrZ)r+r=rCs r"load_objz_Unpickler.load_objs:}}hhqkk #t$$$$$r!c|j}|j}|j|g|R}||dSr(rrr1r)r+r=rCrs r" load_newobjz_Unpickler.load_newobjsUz~~jnnck#%%%% Cr!c|j}|j}|j}|j|g|Ri|}||dSr(rc)r+rDr=rCrs r"load_newobj_exz_Unpickler.load_newobj_exsn!!z~~jnnck#////// Cr!c|ddd}|ddd}|||}||dS)Nrr{)rrr\rr]s r" load_globalz_Unpickler.load_globalsu"%,,W55}}ss#**733-- Er!c2|j}|j}t|tust|turt d||||dS)NzSTACK_GLOBAL requires str)rrrrrrr\)r+rrs r"load_stack_globalz_Unpickler.load_stack_globalszz~~!! ::S DLL$;$;!"=>> > DOOFD1122222r!cf|dd}||dSr)r get_extensionr+rs r" load_ext1z_Unpickler.load_ext1s/yy||A 4     r!cztd|d\}||dS)NrPrr rrlrms r" load_ext2z_Unpickler.load_ext2 7tTYYq\\** 4     r!cztd|d\}||dS)NrQrrprms r" load_ext4z_Unpickler.load_ext4rrr!c6g}tj||}||ur||dStj|}|s'|dkrt dt d|z|j|}|t|<||dS)NrzEXT specifies code <= 0zunregistered extension code %d)rrrrrrr\)r+rnilrrs r"rlz_Unpickler.get_extensions"4-- c>> KK    F $T** Fqyy%&?@@@=DEE Edos#!$ Cr!ctjd|||jdkrO|jrH||ftjvrtj||f\}}n |tjvrtj|}t|d|jdkr&ttj ||dSttj ||S)Nzpickle.find_classrrrr) rauditrrr NAME_MAPPINGIMPORT_MAPPINGrrrr)r+rrs r"r\z_Unpickler.find_class$s %vt444 :>>d.>~!<<<-:FD>J >888'6v>6#### :?? V!4d;;A> >3;v.55 5r!c\|j}|}|d}|||d<dSr rr)r+rr=r<s r" load_reducez_Unpickler.load_reduce2s2 yy{{RyD$Kb r!cP|jr |jd=dS|dSr )rrrs r"load_popz_Unpickler.load_pop9s* :  2 MMOOOOOr!c.|dSr()rrs r" load_pop_markz_Unpickler.load_pop_mark@s r!cF||jddSr )rrrs r"load_dupz_Unpickler.load_dupDs  DJrN#####r!ct|dd} ||j|dS#t$rd|}t |dwxYw)NrMemo value not found at index )rrrrrr)r+r msgs r"load_getz_Unpickler.load_getHs{  $ % % 1 KK ! % % % % % 1 1 16166C!#&&D 0 1s A A-c|dd} ||j|dS#t$r}d|}t |dd}~wwxYw)Nrrr)rrrrrr+r excrs r" load_bingetz_Unpickler.load_bingetQst IIaLLO 1 KK ! % % % % % 1 1 16166C!#&&D 0 1s ? A# AA#ctd|d\} ||j|dS#t$r}d|}t |dd}~wwxYw)Nrrr)r rrrrrrs r"load_long_bingetz_Unpickler.load_long_bingetZs| D$))A,, ' ' 1 KK ! % % % % % 1 1 16166C!#&&D 0 1s A A-A((A-ct|dd}|dkrtd|jd|j|<dS)Nrrznegative PUT argument)rrrrrr s r"load_putz_Unpickler.load_putcsM  $ % % q55455 5z"~ ! r!c|dd}|dkrtd|jd|j|<dS)Nrrznegative BINPUT argumentr)rrrrr s r" load_binputz_Unpickler.load_binputjsB IIaLLO q55788 8z"~ ! r!ctd|d\}|tkrtd|jd|j|<dS)Nrrznegative LONG_BINPUT argumentr)r rr rrrr s r"load_long_binputz_Unpickler.load_long_binputqsJ D$))A,, ' ' w;;<== =z"~ ! r!cN|j}|jd|t|<dSr )rrr)r+rs r" load_memoizez_Unpickler.load_memoizexs"y*R.SYYr!cv|j}|}|d}||dSr )rrr)r+rr)rs r" load_appendz_Unpickler.load_append}s7  Ry Er!c|}|jd} |j}||dS#t$rYnwxYw|j}|D] }||dSr )rrextendrr)r+rlist_objrrrs r" load_appendsz_Unpickler.load_appendss :b> _F F5MMM F     D   D F4LLLL  s7 AAc~|j}|}|}|d}|||<dSr r|)r+rr)rrs r" load_setitemz_Unpickler.load_setitems9  iikkRyS r!c|}|jd}tdt|dD]}||dz|||<dS)Nrrrr)rrrRr)r+rrr s r" load_setitemsz_Unpickler.load_setitemss\ z"~q#e**a(( * *A"1q5\DqNN * *r!c|}|jd}t|tr||dS|j}|D] }||dSr )rrrrupdateadd)r+rset_objrrs r" load_additemsz_Unpickler.load_additemsss *R. gs # #  NN5 ! ! ! ! !+C  D   r!c|j}|}|d}t|dd}| ||dSd}t|trt |dkr|\}}|rW|j}tj}| D]/\}} t|tur| |||<*| ||<0|r+| D]\}} t||| dSdS)Nr __setstate__r) rrrrrr__dict__rinternrrrsetattr) r+rr>instsetstate slotstate inst_dictrrrs r" load_buildz_Unpickler.load_builds%  Ry466   HUOOO F eU # # %E a$ E9  % IZF  % %177c>>+,IffQii((#$IaLL  $!)) $ $1a#### $ $ $ $r!ct|j|jg|_|jj|_dSr()rrrrs r" load_markz_Unpickler.load_marks1 dj))) j' r!cR|j}t|r()rrr&r*s r" load_stopz_Unpickler.load_stops   Ellr!)rrrr,rrrrrrrrrr*rr)rrFrrJrrIrrWrrTrrRrrSrrXrrUr rVr r_rr^rrSTRINGr BINSTRINGrrhrrr!rr$rr&rgr)rmr-rur1rvr3SHORT_BINSTRINGr5rfr7rr9rr;rr?TUPLE1rAr;rDTUPLE3rFrrHrrJrrLrrNrrTrrZr^INSTraOBJrdr6rfr4rhrrjrrnrrqrrtrrlr\r}r5rr7rrrDUPrr rr rr rrrrrrrrrrrrrrrrrrrr:rrrrr r!r"rrqs,0!(D.'.'.'.'.'`"""> GGGH $HU1X... $HU1X///&HVAY///,HYq\!HT!W&HXa[$HWQZ HSV333%HVAY%%%'HWQZ333'HWQZ!!! "HT!W'''$HU1X'''$HU1X111#HU1X333)HXa[<<<HHH&HVAY///,HYq\$$$ *HXa[EEE'HWQZCCC .HZ]CCC 0H[^$$$ ,HYq\.HZ] 0H[^000 $8H_Q  ///$8H_Q  $$$#6H^A CCC%:H a !"""$HU1X/H[^+++%HVAY===%HVAYMMM%HVAY-HZ]3HZ]+HYq\&&&,HYq\"HT!W "HT!W   222 "HT!W%%%  HSV &HVAY ,HYq\ &HVAY333 !2H\!_!!!"HT!W!!!"HT!W!!!"HT!W 6 6 6   &HVAY  HSV)HXa[$$$HSV111 HSV111&HVAY111 0H[^&&&  HSV&&& &HVAY&&& 0H[^)))(HWQZ &HVAY (HWQZ (HWQZ*** *HXa[*HXa[$$$,$HU1X((("HT!W"HT!Wr!rrcRt|||||dSNr)rr)rrrrrs r"_dumprs. T8,....2d3iiiiir!ctj}t||||||}t |t sJ|Sr)r~rrrgetvaluerr)rrrrrress r"_dumpsrs] A Qk,....2d3iii **,,C c; ' '''' Jr!rrrcNt|||||S)Nrrrr)rr)rrrrrs r"_loadrs- d W&v 7 7 77;tvv>r!ct|trtdtj|}t |||||S)Nz%Can't load pickle from unicode stringr)rrrr~rrr)srrrrrs r"_loadsrs\!SA?@@@ :a==D d W' 8 8 88<?r!c2ddl}|Sr`)doctesttestmod)rs r"_testrsNNN ??  r!rz$display contents of the pickle files) description pickle_filebr*zthe pickle file)rnargshelpz-tz--test store_truezrun self-test suite)actionrz-vz)run verbosely; only affects self-test runr()rtypesrcopyregrrrr itertoolsr functoolsr rr structr r rsr~rer__all___picklerrrrrdrlrformat_versioncompatible_formatsrr Exceptionr rrr&org.python.corer-rrr7rrr_rWrTrRrXrSrFr*r)r5rrrrrrr:rrrrr r rr rrrrrrrrrrr^rKrLrr6rrrrr;rrIrJrUrVrrhrfrrrgrrrr4rrrrmrurvrdirryrrrrrrrrrrrrrrrrrrrargparseArgumentParserparser add_argumentFileType parse_argsr=testr print_helppprintrrr r!r"rs2""""""MMMMMMMMMM   : : : $$$$$$ NN>"""    i       )        K         k    I +++++++KKK        7        DD3355DDDEEE<<<<<<<<~6D6D6D6D6D6D6D6Dv   &<AAA.U U U U U U U U t` "` "` "` "` "` "` "` "J8488888dD $gh>>>>> !%wx?????<                       <<<!:GY$feV;D%uuu<  zOOO $X $:<<CCC.HHH