§
    <«e6O  ć                   ó   d dl mZmZmZmZ d dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ 	 d dlZdZn# e $ r dZY nw xY w G d deej!        ¦  «        Z" G d deej!        ¦  «        Z# G d deej!        ¦  «        Z$ G d deeeej!        ¦  «        Z% G d de&¦  «        Z' G d dee'ej!        ¦  «        Z( G d dee'ej!        ¦  «        Z) G d d eej!        ¦  «        Z* G d! d"eej!        ¦  «        Z+ G d# d$eej!        ¦  «        Z, G d% d&eej!        ¦  «        Z-erŲ G d' d(eej!        ¦  «        Z. G d) d*e#¦  «        Z/ G d+ d,e$¦  «        Z0 G d- d.e(¦  «        Z1 G d/ d0e)¦  «        Z2 G d1 d2e$¦  «        Z3 G d3 d4e$¦  «        Z4 G d5 d6eej!        ¦  «        Z5 G d7 d8eej!        ¦  «        Z6 G d9 d:eej!        ¦  «        Z7 G d; d<eej!        ¦  «        Z8ej9         G d= d>ej!        ¦  «        ¦   «         Z:h d?£Z;h d@£Z<dA Z=dB Z>dC Z?dD Z@dE ZA G dF dGej!        ¦  «        ZBdH ZCeDdIk    r ejE        ¦   «          dS dS )Jé    )ŚIMPORT_MAPPINGŚREVERSE_IMPORT_MAPPINGŚNAME_MAPPINGŚREVERSE_NAME_MAPPINGN)Śsupport)Śimport_helper)ŚAbstractHookTests)ŚAbstractUnpickleTests)ŚAbstractPickleTests)ŚAbstractPickleModuleTests)ŚAbstractPersistentPicklerTests)Ś&AbstractIdentityPersistentPicklerTests)Ś#AbstractPicklerUnpicklerObjectTests)ŚAbstractDispatchTableTests)ŚAbstractCustomPicklerClass)ŚBigmemPickleTestsTFc                   óŖ    e Zd Z eej        ¦  «        Z eej        ¦  «        Z eej	        ¦  «        Z
 eej        ¦  «        Zej        Zej        ZdS )ŚPyPickleTestsN)Ś__name__Ś
__module__Ś__qualname__ŚstaticmethodŚpickleŚ_dumpŚdumpŚ_dumpsŚdumpsŚ_loadŚloadŚ_loadsŚloadsŚ_PicklerŚPicklerŚ
_UnpicklerŚ	Unpickler© ó    ś'/usr/lib/python3.11/test/test_pickle.pyr   r   #   sa        Ų<Ń%Ō%DŲLŃ'Ō'EŲ<Ń%Ō%DŲLŃ'Ō'EŲoGŲŌ!IIIr'   r   c                   óN    e Zd Zej        ZefZej        e	e
eej        eefZd ZdS )ŚPyUnpicklerTestsc                 ón    t          j        |¦  «        } | j        |fi |¤}|                     ¦   «         S ©N©ŚioŚBytesIOŚ	unpicklerr   ©ŚselfŚbufŚkwdsŚfŚus        r(   r!   zPyUnpicklerTests.loads4   ó5    ŻJsOOŲDN1Š%Š% Š%Š%Ųvvxxr'   N)r   r   r   r   r$   r0   Ś
IndexErrorŚbad_stack_errorsŚUnpicklingErrorŚEOFErrorŚAttributeErrorŚ
ValueErrorŚstructŚerrorŚImportErrorŚtruncated_errorsr!   r&   r'   r(   r*   r*   ,   sQ        ąŌ!IŲ"}ŠŲŌ.°Ų&Ø
Ų j°+š?Ššš š š š r'   r*   c                   ó8    e Zd Zej        Zej        ZddZd Z	dS )ŚPyPicklerTestsNc                 óÜ    t          j        ¦   «         } | j        ||fi |¤}|                     |¦  «         |                     d¦  «         t          |                     ¦   «         ¦  «        S ©Nr   )r.   r/   Śpicklerr   ŚseekŚbytesŚread)r2   ŚargŚprotoŚkwargsr5   Śps         r(   r   zPyPicklerTests.dumps?   sZ    ŻJLLŲDLEŠ,Š, VŠ,Š,Ų	sŲ	q			ŻQVVXXŠr'   c                 ón    t          j        |¦  «        } | j        |fi |¤}|                     ¦   «         S r,   r-   r1   s        r(   r!   zPyPicklerTests.loadsF   r7   r'   r,   )
r   r   r   r   r"   rF   r$   r0   r   r!   r&   r'   r(   rC   rC   :   sF        ąoGŲŌ!Išš š š šš š š š r'   rC   c                   óX    e Zd Zej        efZej        eee	e
j        eefZddZd ZdZdS )ŚInMemoryPickleTestsNc                 ó(    t          j        ||fi |¤S r,   )r   r   )r2   rJ   ŚprotocolrL   s       r(   r   zInMemoryPickleTests.dumpsT   s    Ż|C Š4Š4ØVŠ4Š4Š4r'   c                 ó&    t          j        |fi |¤S r,   )r   r!   )r2   r3   r4   s      r(   r!   zInMemoryPickleTests.loadsW   s    Ż|CŠ(Š( 4Š(Š(Š(r'   r,   )r   r   r   r   r:   r8   r9   r;   r<   r=   r>   r?   r@   rA   r   r!   Ś+test_framed_write_sizes_with_delayed_writerr&   r'   r(   rP   rP   L   si        š Ō.°
Š;ŠŲŌ.°Ų&Ø
Ų j°+š?Šš5š 5š 5š 5š)š )š )š 37Š/Š/Š/r'   rP   c                   ó    e Zd ZddZd ZdS )ŚPersistentPicklerUnpicklerMixinNc                 ó¾      G  fdd j         ¦  «        }t          j        ¦   «         } |||¦  «        }|                     |¦  «         |                     ¦   «         S )Nc                   ó    e Zd Z fdZdS )ś:PersistentPicklerUnpicklerMixin.dumps.<locals>.PersPicklerc                 ó.                          |¦  «        S r,   )Śpersistent_id©ŚsubselfŚobjr2   s     r(   r[   zHPersistentPicklerUnpicklerMixin.dumps.<locals>.PersPickler.persistent_ida   s   ų Ų×)Ņ)Ø#Ń.Ō.Š.r'   N©r   r   r   r[   ©r2   s   r(   ŚPersPicklerrY   `   s.   ų     š/š /š /š /š /š /š /r'   ra   )rF   r.   r/   r   Śgetvalue)r2   rJ   rK   ra   r5   rM   s   `     r(   r   z%PersistentPicklerUnpicklerMixin.dumps_   st   ų š	/š 	/š 	/š 	/š 	/š 	/š 	/$,ń 	/ō 	/š 	/õ JLLŲK5Ń!Ō!Ų	sŲzz||Šr'   c                 ó      G  fdd j         ¦  «        }t          j        |¦  «        } ||fi |¤}|                     ¦   «         S )Nc                   ó    e Zd Z fdZdS )ś<PersistentPicklerUnpicklerMixin.loads.<locals>.PersUnpicklerc                 ó.                          |¦  «        S r,   )Śpersistent_loadr\   s     r(   rg   zLPersistentPicklerUnpicklerMixin.loads.<locals>.PersUnpickler.persistent_loadj   s   ų Ų×+Ņ+ØCŃ0Ō0Š0r'   N©r   r   r   rg   r`   s   r(   ŚPersUnpicklerre   i   s.   ų     š1š 1š 1š 1š 1š 1š 1r'   ri   )r0   r.   r/   r   )r2   r3   r4   ri   r5   r6   s   `     r(   r!   z%PersistentPicklerUnpicklerMixin.loadsh   sl   ų š	1š 	1š 	1š 	1š 	1š 	1š 	1DNń 	1ō 	1š 	1õ JsOOŲM!Š$Š$tŠ$Š$Ųvvxxr'   r,   )r   r   r   r   r!   r&   r'   r(   rV   rV   ]   s7        šš š š šš š š š r'   rV   c                   ó*    e Zd Zej        Zej        ZdS )ŚPyPersPicklerTestsN)r   r   r   r   r"   rF   r$   r0   r&   r'   r(   rk   rk   q   s        š oGŲŌ!IIIr'   rk   c                   ó    e Zd Zej        Zej        Zej	        d ¦   «         Z
ej	        d ¦   «         Zej	        d ¦   «         ZdS )ŚPyIdPersPicklerTestsc                 óĘ      fd} G d d j         ¦  «        } ||¦  «          G d d j         ¦  «        } ||¦  «          G d d j         ¦  «        } ||¦  «         d S )Nc                 ó   t          t          j        dz   ¦  «        D ]q}t          j        ¦   «         } | ||¦  «        }|                     d¦  «                                                   |                     ¦   «         ¦  «        d¦  «         r | t          j        ¦   «         ¦  «        }                     | 	                    d¦  «        d¦  «         t          j        |¦  «        }~                      |¦   «         ¦  «         d S ©Né   ŚabcŚdef)Śranger   ŚHIGHEST_PROTOCOLr.   r/   r   ŚassertEqualr!   rb   r[   ŚweakrefŚrefŚassertIsNone)r#   rK   r5   rF   Śrr2   s        r(   Ścheckz@PyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.check   sź   ų ŻvŌ6øŃ:Ń;Ō;š Bš BŻJLLŲ!' ! UŃ+Ō+ŲUŃ#Ō#Š#Ų× Ņ  §¢ØAÆJŖJ©L¬LŃ!9Ō!9ø5ŃAŌAŠAŠAŲgbjllŃ+Ō+GŲ×ŅW×2Ņ2°5Ń9Ō9ø5ŃAŌAŠAŻGŃ$Ō$AŲŲ×ŅaaccŃ"Ō"Š"Š"Š"r'   c                   ó    e Zd Zd ZdS )śFPyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.PersPicklerc                 ó    |S r,   r&   )r]   r^   s     r(   r[   zTPyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.PersPickler.persistent_id   ó    Ų
r'   Nr_   r&   r'   r(   ra   r}      ó#        šš š š š r'   ra   c                   ó$    e Zd Zed ¦   «         ZdS )r}   c                 ó    |S r,   r&   )Śclsr^   s     r(   r[   zTPyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.PersPickler.persistent_id   ó    ą
r'   N)r   r   r   Śclassmethodr[   r&   r'   r(   ra   zFPyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.PersPickler   ó-        Ųšš ń [šš š r'   c                   ó$    e Zd Zed ¦   «         ZdS )r}   c                 ó    | S r,   r&   )r^   s    r(   r[   zTPyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.PersPickler.persistent_id   r   r'   N)r   r   r   r   r[   r&   r'   r(   ra   zFPyIdPersPicklerTests.test_pickler_reference_cycle.<locals>.PersPickler   ó-        Ųšš ń \šš š r'   )rF   )r2   r{   ra   s   `  r(   Śtest_pickler_reference_cyclez1PyIdPersPicklerTests.test_pickler_reference_cycle~   sÜ   ų š
	#š 
	#š 
	#š 
	#š 
	#š	š 	š 	š 	š 	$,ń 	ō 	š 	š 	kŃŌŠš	š 	š 	š 	š 	$,ń 	ō 	š 	š 	kŃŌŠš	š 	š 	š 	š 	$,ń 	ō 	š 	š 	kŃŌŠŠŠr'   c                 ó    G fdd| j         ¦  «        } G d d¦  «        } |¦   «          |t          j        ¦   «         ¦  «        }|                      |j        ¦  «         t          j        ¦  «        }|                       |¦   «         ¦  «         ~t          j	        ¦   «          |  
                     |¦   «         ¦  «         d S )Nc                   ó"     e Zd Z fdZ xZS )śPPyIdPersPicklerTests.test_custom_pickler_dispatch_table_memleak.<locals>.Picklerc                 óH    | _          t          ¦   «         j        |i |¤ d S r,   )Śdispatch_tableŚsuperŚ__init__)r2   ŚargsrL   Ś	__class__Śtables      r(   r   zYPyIdPersPicklerTests.test_custom_pickler_dispatch_table_memleak.<locals>.Pickler.__init__¢   s-   ų Ų&+Ō#Ų Ō  $Š1Ø&Š1Š1Š1Š1Š1r'   )r   r   r   r   Ś__classcell__)r   r   s   @r(   r#   r   ”   s>   ųų     š2š 2š 2š 2š 2š 2š 2š 2š 2š 2r'   r#   c                   ó    e Zd ZdS )śVPyIdPersPicklerTests.test_custom_pickler_dispatch_table_memleak.<locals>.DispatchTableN©r   r   r   r&   r'   r(   ŚDispatchTabler   ¦   ó        ŲDr'   r   )rF   r.   r/   ŚassertIsr   rw   rx   ŚassertIsNotNoner   Ś
gc_collectry   )r2   r#   r   rF   Ś	table_refr   s        @r(   Ś*test_custom_pickler_dispatch_table_memleakz?PyIdPersPicklerTests.test_custom_pickler_dispatch_table_memleak   sų   ų š	2š 	2š 	2š 	2š 	2š 	2š 	2dlń 	2ō 	2š 	2š
	š 	š 	š 	š 	ń 	ō 	š 	š Ų'"*,,Ń'Ō'ŲgŌ,ØeŃ4Ō4Š4ŻK Ń&Ō&	Ų×ŅYY[[Ń)Ō)Š)ŲŲŻŌŃŌŠŲ×Ņ))++Ń&Ō&Š&Š&Š&r'   c                 óĘ      fd} G d d j         ¦  «        } ||¦  «          G d d j         ¦  «        } ||¦  «          G d d j         ¦  «        } ||¦  «         d S )Nc           	      óę   t          t          j        dz   ¦  «        D ][} | t          j                             d|¦  «        ¦  «        ¦  «        }                     |                     ¦   «         d¦  «         \ | t          j        ¦   «         ¦  «        }                     |                     d¦  «        d¦  «         t          j
        |¦  «        }~                      |¦   «         ¦  «         d S rp   )rt   r   ru   r.   r/   r   rv   r   rg   rw   rx   ry   )r%   rK   r0   rz   r2   s       r(   r{   zBPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.check¶   s×   ų ŻvŌ6øŃ:Ń;Ō;š :š :Ų%I„b¤j°·²øEĄ5Ń1IŌ1IŃ&JŌ&JŃKŌK	Ų× Ņ  §¢Ń!1Ō!1°5Ń9Ō9Š9Š9Ų!	„"¤*”,¤,Ń/Ō/IŲ×ŅY×6Ņ6°uŃ=Ō=øuŃEŌEŠEŻIŃ&Ō&AŲŲ×ŅaaccŃ"Ō"Š"Š"Š"r'   c                   ó    e Zd Zd ZdS )śJPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.PersUnpicklerc                 ó    |S r,   r&   )r]   Śpids     r(   rg   zZPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.PersUnpickler.persistent_loadĮ   r   r'   Nrh   r&   r'   r(   ri   r£   Ą   r   r'   ri   c                   ó$    e Zd Zed ¦   «         ZdS )r£   c                 ó    |S r,   r&   )r   r„   s     r(   rg   zZPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.PersUnpickler.persistent_loadĘ   r   r'   N)r   r   r   r   rg   r&   r'   r(   ri   zJPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.PersUnpicklerÅ   r   r'   c                   ó$    e Zd Zed ¦   «         ZdS )r£   c                 ó    | S r,   r&   )r„   s    r(   rg   zZPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.PersUnpickler.persistent_loadĢ   r   r'   N)r   r   r   r   rg   r&   r'   r(   ri   zJPyIdPersPicklerTests.test_unpickler_reference_cycle.<locals>.PersUnpicklerĖ   r   r'   )r0   )r2   r{   ri   s   `  r(   Śtest_unpickler_reference_cyclez3PyIdPersPicklerTests.test_unpickler_reference_cycle“   sÜ   ų š	#š 	#š 	#š 	#š 	#š	š 	š 	š 	š 	DNń 	ō 	š 	š 	mŃŌŠš	š 	š 	š 	š 	DNń 	ō 	š 	š 	mŃŌŠš	š 	š 	š 	š 	DNń 	ō 	š 	š 	mŃŌŠŠŠr'   N)r   r   r   r   r"   rF   r$   r0   r   Ścpython_onlyr   r   rŖ   r&   r'   r(   rm   rm   x   s        š oGŲŌ!IąŌšš ń Ōšš< Ōš'š 'ń Ōš'š, Ōšš ń Ōšš š r'   rm   c                   ó*    e Zd Zej        Zej        ZdS )ŚPyPicklerUnpicklerObjectTestsN)r   r   r   r   r"   Śpickler_classr$   Śunpickler_classr&   r'   r(   r­   r­   Ņ   s        ąOMŲŌ'OOOr'   r­   c                   ó"    e Zd Zej        Zd ZdS )ŚPyDispatchTableTestsc                 ó>    t           j                             ¦   «         S r,   ©r   r   Ścopyr`   s    r(   Śget_dispatch_tablez'PyDispatchTableTests.get_dispatch_tableÜ   s    ŻŌ$×)Ņ)Ń+Ō+Š+r'   N©r   r   r   r   r"   r®   rµ   r&   r'   r(   r±   r±   Ų   s*        ąOMš,š ,š ,š ,š ,r'   r±   c                   ó"    e Zd Zej        Zd ZdS )ŚPyChainDispatchTableTestsc                 ó@    t          j        i t          j        ¦  «        S r,   ©ŚcollectionsŚChainMapr   r   r`   s    r(   rµ   z,PyChainDispatchTableTests.get_dispatch_tableä   s    ŻŌ# B­Ō(=Ń>Ō>Š>r'   Nr¶   r&   r'   r(   rø   rø   ą   s*        ąOMš?š ?š ?š ?š ?r'   rø   c                   ó:    e Zd Z G d dej        e¦  «        ZeZdS )ŚPyPicklerHookTestsc                   ó    e Zd ZdS )ś'PyPicklerHookTests.CustomPyPicklerClassNr   r&   r'   r(   ŚCustomPyPicklerClassrĄ   é   s        ąr'   rĮ   N)r   r   r   r   r"   r   rĮ   r®   r&   r'   r(   r¾   r¾   č   sD        šš š š š vŲ9ńō š š )MMMr'   r¾   c                   ó.    e Zd ZddlmZmZmZmZmZm	Z	 dS )ŚCPickleTestsr   )r   r   r   r!   r#   r%   N)
r   r   r   Ś_pickler   r   r   r!   r#   r%   r&   r'   r(   rĆ   rĆ   š   s@        ŲHŠHŠHŠHŠHŠHŠHŠHŠHŠHŠHŠHŠHŠHŠHŠHŠHŠHr'   rĆ   c                   ó<    e Zd Zej        Zej        fZej        fZ	dS )ŚCUnpicklerTestsN)
r   r   r   rÄ   r%   r0   r   r:   r9   rA   r&   r'   r(   rĘ   rĘ   ó   s0        ŲŌ%	Ų"Ō2Š4ŠŲ"Ō2Š4ŠŠŠr'   rĘ   c                   ó*    e Zd Zej        Zej        ZdS )ŚCPicklerTestsN©r   r   r   rÄ   r#   rF   r%   r0   r&   r'   r(   rČ   rČ   ų   ó        Ų/ŲŌ%			r'   rČ   c                   ó*    e Zd Zej        Zej        ZdS )ŚCPersPicklerTestsNrÉ   r&   r'   r(   rĢ   rĢ   ü   rŹ   r'   rĢ   c                   ó*    e Zd Zej        Zej        ZdS )ŚCIdPersPicklerTestsNrÉ   r&   r'   r(   rĪ   rĪ      rŹ   r'   rĪ   c                   ó*    e Zd Zej        Zej        ZdS )ŚCDumpPickle_LoadPickleN)	r   r   r   rÄ   r#   rF   r   r$   r0   r&   r'   r(   rŠ   rŠ     s        Ų/ŲŌ%			r'   rŠ   c                   ó*    e Zd Zej        Zej        ZdS )ŚDumpPickle_CLoadPickleN)	r   r   r   r   r"   rF   rÄ   r%   r0   r&   r'   r(   rŅ   rŅ     s        Ų/ŲŌ%			r'   rŅ   c                   ó0    e Zd Zej        Zej        Zd ZdS )ŚCPicklerUnpicklerObjectTestsc                 óV   |                       t          j        ¦   «         ¦  «        }|                      t          ¦  «        5  t
          |_        d d d ¦  «         n# 1 swxY w Y   |                      t          ¦  «        5  dd i|_        d d d ¦  «         n# 1 swxY w Y   dd i|_        d S )Né’’’’rq   )rÆ   r.   r/   ŚassertRaisesŚ	TypeErrorŚobjectŚmemor=   )r2   r0   s     r(   Śtest_issue18339z,CPicklerUnpicklerObjectTests.test_issue18339  s   Ų×,Ņ,­R¬Z©\¬\Ń:Ō:IŲ×"Ņ"„9Ń-Ō-š (š (Ż!'	š(š (š (ń (ō (š (š (š (š (š (š (ųųųš (š (š (š (š ×"Ņ"„:Ń.Ō.š ,š ,Ų"$ d 	š,š ,š ,ń ,ō ,š ,š ,š ,š ,š ,š ,ųųųš ,š ,š ,š ,ą YINNNs$   ĮAĮAĮ!AĮ?
BĀBĀBN)	r   r   r   rÄ   r#   r®   r%   rÆ   rŪ   r&   r'   r(   rŌ   rŌ     s2        ŲŲ!Ō+š	'š 	'š 	'š 	'š 	'r'   rŌ   c                   ó"    e Zd Zej        Zd ZdS )ŚCDispatchTableTestsc                 ó>    t           j                             ¦   «         S r,   r³   r`   s    r(   rµ   z&CDispatchTableTests.get_dispatch_table  s    ŻŌ(×-Ņ-Ń/Ō/Š/r'   N©r   r   r   r   r#   r®   rµ   r&   r'   r(   rŻ   rŻ     s*        Ųš	0š 	0š 	0š 	0š 	0r'   rŻ   c                   ó"    e Zd Zej        Zd ZdS )ŚCChainDispatchTableTestsc                 ó@    t          j        i t          j        ¦  «        S r,   rŗ   r`   s    r(   rµ   z+CChainDispatchTableTests.get_dispatch_table   s    ŻŌ'Ø­FŌ,AŃBŌBŠBr'   Nrß   r&   r'   r(   rį   rį     s/        Ųš	Cš 	Cš 	Cš 	Cš 	Cr'   rį   c                   ó:    e Zd Z G d dej        e¦  «        ZeZdS )ŚCPicklerHookTestsc                   ó    e Zd ZdS )ś%CPicklerHookTests.CustomCPicklerClassNr   r&   r'   r(   ŚCustomCPicklerClassrę   $  r   r'   rē   N)r   r   r   rÄ   r#   r   rē   r®   r&   r'   r(   rä   rä   #  sB        š	š 	š 	š 	š 	 '¤/Š3Mń 	ō 	š 	ą+r'   rä   c                   ó(    e Zd Zej        Zd Zd ZdS )ŚSizeofTestsc                 ó   t          j        d¦  «        }t          j        t	          j        ¦   «         ¦  «        }|                      t                               |¦  «        |¦  «         t          j
        d¦  «        }t          j
        d¦  «        }| j        } ||||z   d|z  z   t          j        d¦  «        z   ¦  «         t          d¦  «        D ]$}|                     t!          |¦  «        ¦  «         % ||||z   d|z  z   dz   ¦  «         d S )	NŚ7P2n3i2n3i2PŚ3nP0nŚPn0Pé   s   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxé   é    r   )r   ŚcalcobjsizerÄ   r#   r.   r/   rv   rŁ   Ś
__sizeof__r>   ŚcalcsizeŚcheck_sizeofŚsysŚ	getsizeofrt   r   Śchr)r2   ŚbasesizerM   ŚMT_sizeŚME_sizer{   Śis          r(   Śtest_picklerzSizeofTests.test_pickler,  s   ŻŌ*Ø>Ń:Ō:HŻ„¤
”¤Ń-Ō-AŲ×ŅV×.Ņ.ØqŃ1Ō1°8Ń<Ō<Š<Żo gŃ.Ō.GŻo fŃ-Ō-GŲŌ%EŲE!XŲńŲg+ń&åiŃ(Ō(ń)ń *ō *š *õ 1XXš š Ųs1vvŲE!XŲńŲw,ń'š ńń ō š š š r'   c           	      óR  	
 t          j        d¦  «        }t          j        t	          j        d¦  «        t	          j        d¦  «        	| j        dD ]}dD ]} t          j        ¦   «         ||¬¦  «        }|  	                    t                               |¦  «        |¦  «          ||dz  z   t          |¦  «        z   dz   t          |¦  «        z   dz   ¦  «         |t          d	¦  «        z   dz   t          d
¦  «        z   dz   
	
fd} |ddd¦  «          |dgdz  dd¦  «          |d t          d¦  «        D ¦   «         dd¦  «         d } | |d¦  «        dd¦  «          | |d¦  «        dd¦  «          | |d¦  «        dd¦  «          | |d¦  «        dd¦  «          | |d¦  «        dd¦  «          t          j        t          j        dd¦  «        ¦  «        d	d
¬¦  «        }|                     ¦   «           |
dz  z   dz   dz   ¦  «         d S )Nz2P2n2P 2P2n2i5P 2P3n8P2n2iŚPŚn)ŚASCIIzUTF-16zlatin-1)ŚstrictŚreplace©ŚencodingŚerrorsrš   rq   r   r  c                 óČ    t          j        | ¦  «        } 	t          j        |¦  «        dd¬¦  «        }|                     ¦   «           ||z  z   |z  z   ¦  «         d S )Nr   r  r  )r   r   r.   r/   r   )
ŚdataŚ	memo_sizeŚ
marks_sizer   r6   rž   r{   r’   Śstdsizer0   s
        r(   Ścheck_unpicklerz3SizeofTests.test_unpickler.<locals>.check_unpicklerM  ss   ų Ż| DŃ)Ō)ŲIbjØŃ.Ō.Ų'.°xšAń Aō AąŲa 9Øq”=Ń0°:Ą±>ŃAŃBŌBŠBŠBŠBr'   r   éd   é   c                 ó,    g | ]}t          |¦  «        S r&   )r÷   )Ś.0rū   s     r(   ś
<listcomp>z.SizeofTests.test_unpickler.<locals>.<listcomp>X  s    Š8Š8Š8ØS VVŠ8Š8Š8r'   é   c                 ó6    d}t          | ¦  «        D ]}||g}|S rE   )rt   )Śdeepr  rū   s      r(   Śrecursez+SizeofTests.test_unpickler.<locals>.recurseY  s,    ŲŻtš (š (AŲ  $<DDŲr'   é2   é@   é<   é   Śaé   )r   rń   rÄ   r%   r>   ró   rō   r.   r/   rv   rŁ   rņ   Ślenrt   r   r   r   )r2   rų   r  r  r6   r  r  rž   r{   r’   r
  r0   s          @@@@@r(   Śtest_unpicklerzSizeofTests.test_unpickler=  sŠ  ųųųųų ŻŌ*Š+GŃHŌHHŻŌ)IŻ Ń$Ō$AŻ Ń$Ō$AŲŌ%EŲ8š Bš BŲ1š Bš BFŲ!	„"¤*”,¤,Ų+3øFšDń Dō DAą×$Ņ$„V×%6Ņ%6°qŃ%9Ō%9ø8ŃDŌDŠDŲE!XŲ !Vń$å  ]]ń+ą-.ń/å14°V±“ń=ą?@ńAń Bō Bš Bš Bš	Bš „ W”¤Ń-°Ń1µCø±M“MŃAĄAŃEGšCš Cš Cš Cš Cš Cš Cš Cš Cš OAr 1Ń%Ō%Š%ąOQC #I rØ2Ń.Ō.Š.ąOŠ8Š8­U°3©Z¬ZŠ8Ń8Ō8ø#ørŃBŌBŠBšš š š
 OGG AJJØØAŃ.Ō.Š.ŲOGG AJJØØBŃ/Ō/Š/ŲOGG BKKØØRŃ0Ō0Š0ŲOGG BKKØØRŃ0Ō0Š0ŲOGG CLLØ#ØsŃ3Ō3Š3ą	"*„V¤\°#°qŃ%9Ō%9Ń:Ō:Ų#*°8š=ń =ō =AąFFHHHŲE!Wr AvŃ%ØŃ)ØAŃ-Ń.Ō.Š.Š.Š.r'   N)r   r   r   r   rō   rü   r  r&   r'   r(   ré   ré   (  s:        ąŌ+š	š 	š 	š"*	/š *	/š *	/š *	/š *	/r'   ré   >   ©ŚcPickler   ©ŚStringIOr.   ©Ś	cStringIOr.   ©Ś_elementtreezxml.etree.ElementTree>   ©ŚsocketŚ_socketobjectr&  Ś
SocketType©ŚUserDictr*  r»   r*  ©Ś
exceptionsŚStandardErrorŚbuiltinsŚ	Exception©Ś__builtin__Ś
basestringr.  Śstrc                 ór    | |ft           v rt           | |f         \  } }n| t          v rt          |          } | |fS r,   )r   r   ©ŚmoduleŚnames     r(   Śmappingr8  x  sD    Ų~Š%Š%Ż# VØT NŌ3Ų	>Š	!Š	!Ż Ō'Ų4<Šr'   c                 ór    | |ft           v rt           | |f         \  } }n| t          v rt          |          } | |fS r,   )r   r   r5  s     r(   Śreverse_mappingr:    sF    Ų~Õ-Š-Š-Ż+ØV°TØNŌ;Ų	Õ)Š	)Š	)Ż'ØŌ/Ų4<Šr'   c                 óž   	 t           j        |          S # t          $ rŽ 	 t          j        ¦   «         5  t
          j        rdnd}t          j        |t          ¦  «         t          | ¦  «         d d d ¦  «         n# 1 swxY w Y   nc# t          $ r-}t
          j        rt          d| d|¦  «         t          d }~wt          $ r!}t
          j        rt          |¦  «          d }~ww xY wt           j        |          cY S w xY w)NŚalwaysŚignorezCan't import module z: )rõ   ŚmodulesŚKeyErrorŚwarningsŚcatch_warningsr   ŚverboseŚsimplefilterŚDeprecationWarningŚ
__import__r<   Śprintr@   )r6  ŚactionŚexcs      r(   Ś	getmodulerI    s[   š#Ż{6Ō"Š"ųŻš #š #š #š	ŻŌ(Ń*Ō*š #š #Ż%,¤_ŠBø(ŻŌ% fÕ.@ŃAŌAŠAŻ6Ń"Ō"Š"š#š #š #ń #ō #š #š #š #š #š #š #ųųųš #š #š #š #ųųõ š 	š 	š 	Żš DŻ°f°f°føcøcŠBŃCŌCŠCŻŠųųųųŻš 	š 	š 	Żš Żc


Ųųųųųš	ųųųõ {6Ō"Š"Š"Š"š#ųųųsa    
C<B²:A8Į,BĮ8A<	Į<BĮ?A<	Ā BĀC<Ā
C$Ā(B6Ā6C$ĆCĆC$Ć$C<Ć;C<c                 ót    t          | ¦  «        }|                     d¦  «        D ]}t          ||¦  «        }|S )Nś.)rI  ŚsplitŚgetattr)r6  r7  r^   r’   s       r(   ŚgetattributerN    s<    Ż
FŃ
Ō
CŲZZ__š š Żc1ooŲJr'   c              #   ó®   K   t          | ¦  «        D ]B}t          | |¦  «        }t          |t          ¦  «        rt	          |t
          ¦  «        r||fV  Cd S r,   )ŚdirrM  Ś
isinstanceŚtypeŚ
issubclassŚBaseException)Śmodr7  Śattrs      r(   Śget_exceptionsrW    sh   č č  ŻCš š ŻsDŃ!Ō!ŻdDŃ!Ō!š 	„j°µ}Ń&EŌ&Eš 	Ų*ŠŠŠųšš r'   c                   ó8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	ŚCompatPickleTestsc                 ó&   t          t          j        ¦   «         ¦  «        }|t          t          ¦  «        z  }|d t          D ¦   «         z  }|d t          j        ¦   «         D ¦   «         z  }|D ]"}	 t          |¦  «         # t          $ r Y w xY wd S )Nc                 ó    h | ]\  }}|S r&   r&   ©r  r6  r7  s      r(   ś	<setcomp>z0CompatPickleTests.test_import.<locals>.<setcomp>©  s    ŠDŠDŠD|v tFŠDŠDŠDr'   c                 ó    h | ]\  }}|S r&   r&   r\  s      r(   r]  z0CompatPickleTests.test_import.<locals>.<setcomp>Ŗ  s    ŠEŠEŠE|v tFŠEŠEŠEr'   )Śsetr   Śvaluesr   r   r   rI  r@   )r2   r>  r6  s      r(   Śtest_importzCompatPickleTests.test_import¦  s¶    ŻnŌ+Ń-Ō-Ń.Ō.Ų3Õ-Ń.Ō.Ń.ŲŠDŠDÕ/CŠDŃDŌDŃDŲŠEŠE­|Ō/BŃ/DŌ/DŠEŃEŌEŃEŲš 	š 	FšŻ&Ń!Ō!Š!Š!ųŻš š š Ųšųųųš	š 	s   Į1BĀ
BĀBc                 ól   t          j        ¦   «         D ]\  }}|                      ||f¦  «        5  	 t          |¦  «         n# t          $ r Y nw xY w|d d         dk    r<|                      |t          ¦  «         |                      t          |         |¦  «         d d d ¦  «         n# 1 swxY w Y    d S )Nrq   Ś_)r   ŚitemsŚsubTestrI  r@   ŚassertInr   rv   )r2   Śmodule3Śmodule2s      r(   Śtest_import_mappingz%CompatPickleTests.test_import_mapping±  s#   Ż 6Ō <Ń >Ō >š 	Gš 	GŃGWŲwØŠ0Ń1Ō1š Gš GšŻgŃ&Ō&Š&Š&ųŻ"š š š ŲDšųųųą2A2; #Ņ%Š%ŲMM '­>Ń:Ō:Š:Ų×$Ņ$„^°GŌ%<øgŃFŌFŠFšGš Gš Gń Gō Gš Gš Gš Gš Gš Gš Gųųųš Gš Gš Gš Gųš	Gš 	Gs5   °B(²AĮB(Į
AĮB(ĮAĮAB(Ā(B,	Ā/B,	c                 ó“   t          j        ¦   «         D ]B\  \  }}\  }}|                      ||f||ff¦  «        5  ||fdk    r9t          ||¦  «        }|                      t          |t          ¦  «        ¦  «         nĀ||fdk    r9t          ||¦  «        }|                      t          |t          ¦  «        ¦  «         nt          ||¦  «        \  }}|d d         dk    r|  	                    ||f||f¦  «         	 t          ||¦  «        }|  	                    t          ||¦  «        |¦  «         n# t          $ r Y nw xY wd d d ¦  «         n# 1 swxY w Y   Dd S )N©r,  ŚOSError©r,  r@   rq   rc  )
r   rd  re  rN  Ś
assertTruerS  rl  r@   r8  rv   )r2   rg  Śname3rh  Śname2rV  r6  r7  s           r(   Śtest_name_mappingz#CompatPickleTests.test_name_mapping¼  sŽ   Ż2FŌ2LŃ2NŌ2Nš 	Kń 	KŃ.ŃWeŃ.wØŲ ØŠ/°'ø5Š1AŠBŃCŌCš Kš KŲUŠ#Š'@Ņ@Š@Ż'Ø°Ń7Ō7DŲOO„JØtµWŃ$=Ō$=Ń>Ō>Š>Š>ŲuŠ%Š)FŅFŠFŻ'Ø°Ń7Ō7DŲOO„JØtµ[Ń$AŌ$AŃBŌBŠBŠBå#*Ø7°EŃ#:Ō#:LFDŲr r{ cŅ)Š)Ų×(Ņ(Ø&°$Øø'Ą5Š9IŃJŌJŠJšKŻ+ØG°UŃ;Ō;š ×(Ņ(­°fødŃ)CŌ)CĄTŃJŌJŠJŠJųõ 'š š š ŲšųųųšKš Kš Kń Kō Kš Kš Kš Kš Kš Kš Kųųųš Kš Kš Kš Kłš	Kš 	Ks6   »B>EĆ:D/Ä
%EÄ/
D<Ä9EÄ;D<Ä<EÅE	ÅE	c                 ót   t          j        ¦   «         D ]"\  }}|                      ||f¦  «        5  	 t          |¦  «         n2# t          $ r%}t
          j        rt          |¦  «         Y d }~nd }~ww xY w||ft          vr_t          j
        |d ¦  «        |k    rFt          j        ¦   «         D ]\  \  }}\  }}||f||fk    r n|                      d|d|¦  «         t          j
        ||¦  «        }t          j
        ||¦  «        }|                      ||¦  «         d d d ¦  «         n# 1 swxY w Y   $d S )NzNo reverse mapping from z to )r   rd  re  rI  r@   r   rB  rF  ŚALT_IMPORT_MAPPINGr   Śgetr   Śfailrv   )	r2   rh  rg  rH  Śm3Śn3Śm2Śn2r6  s	            r(   Śtest_reverse_import_mappingz-CompatPickleTests.test_reverse_import_mappingŠ  s·   Ż .Ō 4Ń 6Ō 6š 	2ń 	2ŃGWŲwØŠ0Ń1Ō1š 2š 2š#ŻgŃ&Ō&Š&Š&ųŻ"š #š #š #Żš #Żc


ųųųųųųųųųš#ųųųš gŠ&Õ.@Š@Š@Ż*Ō.ØwøŃ=Ō=ĄŅHŠHŻ.BŌ.HŃ.JŌ.Jš 6š 6Ń*R”( 2 rŲ# WŠ-°"°b°Ņ9Š9Ų!Eš :š 			Ų#* 7 7ØGØGš#5ń 6ō 6š 6å/Ō3°GøWŃEŌEŻ'Ō+ØF°FŃ;Ō;Ų× Ņ  ØŃ1Ō1Š1š!2š 2š 2ń 2ō 2š 2š 2š 2š 2š 2š 2ųųųš 2š 2š 2š 2łš	2š 	2s;   ±D+³AĮD+Į
A2ĮA-Į(D+Į-A2Į2B-D+Ä+D/	Ä2D/	c                 ó¼   t          j        ¦   «         D ]Ē\  \  }}\  }}|                      ||f||ff¦  «        5  	 t          ||¦  «        }n# t          $ r Y nw xY wt          ||¦  «        \  }}||||ft          vr|                      ||f||f¦  «         t          ||¦  «        \  }}|                      ||f||f¦  «         d d d ¦  «         n# 1 swxY w Y   Čd S r,   )	r   rd  re  rN  r@   r:  ŚALT_NAME_MAPPINGrv   r8  )r2   rh  rp  rg  ro  rV  r6  r7  s           r(   Śtest_reverse_name_mappingz+CompatPickleTests.test_reverse_name_mappingä  sn   Ż2>Ō2DŃ2FŌ2Fš 
	Cš 
	CŃ.ŃWeŃ.wØŲ ØŠ/°'ø5Š1AŠBŃCŌCš 	Cš 	CšŻ'Ø°Ń7Ō7DDųŻ"š š š ŲDšųųųå.ØwøŃ>Ō>ŲU GØUŠ3Õ;KŠKŠKŲ×$Ņ$ fØd ^°gøuŠ5EŃFŌFŠFŻ& vØtŃ4Ō4Ų× Ņ  &Ø$ °'ø5Š1AŃBŌBŠBš	Cš 	Cš 	Cń 	Cō 	Cš 	Cš 	Cš 	Cš 	Cš 	Cš 	Cųųųš 	Cš 	Cš 	Cš 	Cųš
	Cš 
	Cs5   ŗC¼AĮCĮ
AĮCĮAĮA*CĆC	ĆC	c           
      óf   |                       t          dd¦  «        d¦  «         |                       t          dd¦  «        d¦  «         |                       t          dd¦  «        d¦  «         |                       t          dd¦  «        d¦  «         |                       t          dd¦  «        d	¦  «         t          t          ¦  «        D ]f\  }}|                      |¦  «        5  |t          t          t          t          t          t          t          fv r	 d d d ¦  «         W|t          ur:t          |t          ¦  «        r%|                       t          d|¦  «        d	¦  «         nµ|t          ur`t          |t          ¦  «        rK|                       t          d|¦  «        d
¦  «         |                       t          d|¦  «        d|f¦  «         nL|                       t          d|¦  «        d|f¦  «         |                       t          d|¦  «        d|f¦  «         d d d ¦  «         n# 1 swxY w Y   hd S )Nr,  r-  )r.  r/  r/  r.  )r,  r/  rl  )r.  rl  rk  rm  )rv   r8  r:  rW  r.  re  ŚBlockingIOErrorŚResourceWarningŚStopAsyncIterationŚRecursionErrorŚEncodingWarningŚBaseExceptionGroupŚExceptionGrouprl  rS  r@   )r2   r7  rH  s      r(   Śtest_exceptionsz!CompatPickleTests.test_exceptionsń  s½   Ų×Ņ ØŃ?Ō?Ų2ń	4ō 	4š 	4ą×Ņ Ø{Ń;Ō;Ų2ń	4ō 	4š 	4ą×ŅØ°[ŃAŌAŲ4ń	6ō 	6š 	6ą×Ņ ØyŃ9Ō9Ų0ń	2ō 	2š 	2ą×ŅØ°YŃ?Ō?Ų2ń	4ō 	4š 	4õ (­Ń1Ō1š 	9ń 	9ID#ŲdŃ#Ō#š 9š 9Ų?Ż*Ż-Ż)Ż*Ż-Ż)š+š +š +š š9š 9š 9ń 9ō 9š 9š 9š gŠ%Š%­*°S½'Ń*BŌ*BŠ%Ų×$Ņ$„_°ZĄŃ%FŌ%FŲ%>ń@ō @š @š @ą„Š+Š+µ
ø3ÅŃ0LŌ0LŠ+Ų×$Ņ$„_°ZĄŃ%FŌ%FŲ%BńDō Dš Dą×$Ņ$„WØ\ø4Ń%@Ō%@Ų&2°DŠ%9ń;ō ;š ;š ;š ×$Ņ$„_°ZĄŃ%FŌ%FŲ&2°DŠ%9ń;ō ;š ;ą×$Ņ$„WØ\ø4Ń%@Ō%@Ų&0°$Š%7ń9ō 9š 9š)9š 9š 9ń 9ō 9š 9š 9š 9š 9š 9š 9ųųųš 9š 9š 9š 9łš	9š 	9s   Ć$0H$Ä C8H$Č$H(	Č+H(	c                 óJ   t          j        d¦  «        }t          |¦  «        D ]~\  }}|                      |¦  «        5  |                      t          d|¦  «        d|f¦  «         |                      t          d|¦  «        d|f¦  «         d d d ¦  «         n# 1 swxY w Y   d S )Nzmultiprocessing.contextŚmultiprocessing)r   Śimport_modulerW  re  rv   r:  r8  )r2   r6  r7  rH  s       r(   Śtest_multiprocessing_exceptionsz1CompatPickleTests.test_multiprocessing_exceptions  s   ŻŌ,Š-FŃGŌGŻ'ØŃ/Ō/š 	Dš 	DID#ŲdŃ#Ō#š Dš DŲ× Ņ „Š1JČDŃ!QŌ!QŲ"3°TŠ!:ń<ō <š <ą× Ņ „Š):øDŃ!AŌ!AŲ";øTŠ!BńDō Dš DšDš Dš Dń Dō Dš Dš Dš Dš Dš Dš Dųųųš Dš Dš Dš Dųš	Dš 	Ds   ¾ABĀB	ĀB	N)
r   r   r   ra  ri  rq  rz  r}  r  r  r&   r'   r(   rY  rY  „  s        š	š 	š 	š	Gš 	Gš 	GšKš Kš Kš(2š 2š 2š(Cš Cš Cš"9š "9š "9šHDš Dš Dš Dš Dr'   rY  c                 óR    |                      t          j        ¦   «         ¦  «         |S r,   )ŚaddTestŚdoctestŚDocTestSuite)ŚloaderŚtestsŚpatterns      r(   Ś
load_testsr    s"    Ų	MM'Ō&Ń(Ō(Ń)Ō)Š)ŲLr'   Ś__main__)FŚ_compat_pickler   r   r   r   r.  r   r.   r»   r>   rõ   r@  rw   r  ŚunittestŚtestr   Śtest.supportr   Śtest.pickletesterr	   r
   r   r   r   r   r   r   r   r   rÄ   Śhas_c_implementationr@   ŚTestCaser   r*   rC   rP   rŁ   rV   rk   rm   r­   r±   rø   r¾   rĆ   rĘ   rČ   rĢ   rĪ   rŠ   rŅ   rŌ   rŻ   rį   rä   r«   ré   rs  r|  r8  r:  rI  rN  rW  rY  r  r   Śmainr&   r'   r(   ś<module>r     s	  šš@š @š @š @š @š @š @š @š @š @š @š @ą Ų Ų 				Ų Š Š Š Ų Ų 



Ų Ų ą Ų Ų Š Š Š Š Š Ų &Š &Š &Š &Š &Š &ą /Š /Š /Š /Š /Š /Ų 3Š 3Š 3Š 3Š 3Š 3Ų 1Š 1Š 1Š 1Š 1Š 1Ų 7Š 7Š 7Š 7Š 7Š 7Ų <Š <Š <Š <Š <Š <Ų DŠ DŠ DŠ DŠ DŠ DŲ AŠ AŠ AŠ AŠ AŠ AŲ 8Š 8Š 8Š 8Š 8Š 8Ų 8Š 8Š 8Š 8Š 8Š 8Ų /Š /Š /Š /Š /Š /š!ŲNNNŲŠŠųŲš !š !š !Ų ŠŠŠš!ųųųš"š "š "š "š "Š-ØxŌ/@ń "ō "š "šš š š š Š,ØhŌ.?ń ō š šš š š š Š(Ø(Ō*;ń ō š š$7š 7š 7š 7š 7Š-Š/DŲ+ØXŌ->ń7ō 7š 7š"š š š š  fń ō š š("š "š "š "š "Š7Ų8ø(Ō:Kń"ō "š "šWš Wš Wš Wš WŠAŲ:øHŌ<MńWō Wš Wšt(š (š (š (š (Š$GČŌIZń (ō (š (š,š ,š ,š ,š ,Š5°xŌ7Hń ,ō ,š ,š?š ?š ?š ?š ?Š :øHŌ<Mń ?ō ?š ?š)š )š )š )š )Š*ØHŌ,=ń )ō )š )š š x/šIš Iš Iš Iš IŠ0°(Ō2Cń Iō Iš Iš5š 5š 5š 5š 5Š*ń 5ō 5š 5š
&š &š &š &š &ń &ō &š &š&š &š &š &š &Š.ń &ō &š &š&š &š &š &š &Š2ń &ō &š &š&š &š &š &š & ń &ō &š &š&š &š &š &š & ń &ō &š &š'š 'š 'š 'š 'Š'JČHŌL]ń 'ō 'š 'š0š 0š 0š 0š 0Š8ø(Ō:Kń 0ō 0š 0š
Cš Cš Cš Cš CŠ#=øxŌ?Pń Cō Cš Cš
,š ,š ,š ,š ,Š-ØxŌ/@ń ,ō ,š ,š
 Ōš>/š >/š >/š >/š >/hŌ'ń >/ō >/ń Ōš>/šBš š Š šš š Š šš š šš š š#š #š #š&š š šš š šwDš wDš wDš wDš wDŌ)ń wDō wDš wDštš š š
 zŅŠŲHMOOOOOš Šs   Į>B ĀBĀB