ó
    F\h£6  ã                   ól  • S SK r S SKrS SKrS SKrS SKrS SKrS SKJr  SSKJ	r	  / SQr
S rSrSrSrS	rS
rSrSqSqS rS rS rS rS rS*S jrS rS r\" 5       rS rS r\R>                  " 5       r \RB                  " 5       r"S r#S r$0 r%\RB                  " 5       r& " S S\'5      r(S*S jr)S r*Sq+\\\)\	RX                  \	RZ                  4S jr.\R^                  " \.5         " S S\'5      r0 " S  S!\Rb                  5      r2 \ Rf                  " S"5      r4S$ r6S% r7S& r8S' r9S( r:S) r;g! \5 a    S#r4 Nf = f)+é    N)Ú_args_from_interpreter_flagsé   )Úprocess)Ú	sub_debugÚdebugÚinfoÚsub_warningÚ
get_loggerÚlog_to_stderrÚget_temp_dirÚregister_after_forkÚ
is_exitingÚFinalizeÚForkAwareThreadLockÚForkAwareLocalÚclose_all_fds_exceptÚSUBDEBUGÚ
SUBWARNINGé   é
   é   é   Úmultiprocessingz+[%(levelname)s/%(processName)s] %(message)sFc                 óZ   • [         (       a   [         R                  " [        U /UQ7SS06  g g ©NÚ
stacklevelé   )Ú_loggerÚlogr   ©ÚmsgÚargss     Ú+/usr/lib/python3.13/multiprocessing/util.pyr   r   ,   s$   € ß‚wÜ�Š”H˜cÐ7 DÒ7°QÓ7ð ó    c                 óZ   • [         (       a   [         R                  " [        U /UQ7SS06  g g r   )r   r   ÚDEBUGr    s     r#   r   r   0   s$   € ß‚wÜ�Š”E˜3Ð4 Ò4°!Ó4ð r$   c                 óZ   • [         (       a   [         R                  " [        U /UQ7SS06  g g r   )r   r   ÚINFOr    s     r#   r   r   4   s$   € ß‚wÜ�Š”D˜#Ð3 Ò3°Ó3ð r$   c                 óZ   • [         (       a   [         R                  " [        U /UQ7SS06  g g r   )r   r   r   r    s     r#   r	   r	   8   s$   € ß‚wÜ�Š”J Ð9 dÒ9°qÓ9ð r$   c                  óî  • SSK n U R                     [        (       d¶  U R                  [        5      qS[        l        [        [        S5      (       a5  [        R                  " [        5        [        R                  " [        5        OL[        R                  R                  [        S0 45        [        R                  R                  [        S0 45        SSS5        [        $ ! , (       d  f       [        $ = f)z(
Returns logger used by multiprocessing
r   NÚ
unregister© )ÚloggingÚ_lockr   Ú	getLoggerÚLOGGER_NAMEÚ	propagateÚhasattrÚatexitr+   Ú_exit_functionÚregisterÚ_exithandlersÚremoveÚappend)r-   s    r#   r
   r
   <   s¥   € ó
 à	�‹ßŠwà×'Ñ'¬Ó4ˆGØ !ŒGÔô ”v˜|×,Ñ,Ü×!Ò!¤.Ô1Ü—’¤Õ/ä×$Ñ$×+Ñ+¬^¸RÀÐ,DÔEÜ×$Ñ$×+Ñ+¬^¸RÀÐ,DÔE÷ 
ô €N÷ 
Œô €Nús   ‘CC!Ã!
C4c                 óì   • SSK n[        5       nUR                  [        5      nUR	                  5       nUR                  U5        UR                  U5        U (       a  UR                  U 5        Sq[        $ )z:
Turn on logging and add a handler which prints to stderr
r   NT)
r-   r
   Ú	FormatterÚDEFAULT_LOGGING_FORMATÚStreamHandlerÚsetFormatterÚ
addHandlerÚsetLevelÚ_log_to_stderrr   )Úlevelr-   ÚloggerÚ	formatterÚhandlers        r#   r   r   S   sb   € ó
 ä‹\€FØ×!Ñ!Ô"8Ó9€IØ×#Ñ#Ó%€GØ×Ñ˜Ô#Ø
×Ñ�gÔæØ�‰˜ÔØ€NÜ€Nr$   c                  ó(   • [         R                  S;   $ )N)ÚlinuxÚandroid)ÚsysÚplatformr,   r$   r#   Ú#_platform_supports_abstract_socketsrJ   h   s   € Ü�<‰<Ð/Ñ/Ð/r$   c                 ó¦   • U (       d  g[        U [        5      (       a  U S   S:H  $ [        U [        5      (       a  U S   S:H  $ [        SU < S35      e)NFr   Ú zaddress type of z unrecognized)Ú
isinstanceÚbytesÚstrÚ	TypeError)Úaddresss    r#   Úis_abstract_socket_namespacerR   l   sT   € ÞØÜ�'œ5×!Ñ!Ø�q‰z˜Q‰ÐÜ	�GœS×	!Ñ	!Ø�q‰z˜TÑ!Ð!Ü
Ð& w¡k°Ð?Ó
@Ð@r$   c                 ód   • U " U5        [         R                  " 5       nUb  S UR                  S'   g g )NÚtempdir)r   Úcurrent_processÚ_config)ÚrmtreerT   rU   s      r#   Ú_remove_temp_dirrX   |   s4   € Ù
ˆ7„Oä×-Ò-Ó/€Oð Ñ"Ø-1ˆ×Ñ 	Ò*ð #r$   c                  ó*  • [         R                  " 5       R                  R                  S5      n U ca  SS KnSS KnUR                  SS9n [        SU 5        [        S [        UR                  U 4SS9  U [         R                  " 5       R                  S'   U $ )NrT   r   zpymp-)Úprefixzcreated temp directory %siœÿÿÿ)r"   Úexitpriority)r   rU   rV   ÚgetÚshutilÚtempfileÚmkdtempr   r   rX   rW   )rT   r]   r^   s      r#   r   r   …   s‚   € ä×%Ò%Ó'×/Ñ/×3Ñ3°IÓ>€GØ�ßØ×"Ñ"¨'Ð"Ð2ˆÜÐ(¨'Ô2ô 	�Ô'¨v¯}©}¸gÐ.FØ"ò	$à7>Œ×ÒÓ!×)Ñ)¨)Ñ4Ø€Nr$   c                  óÔ   • [        [        R                  5       5      n U R                  5         U  H  u  u  pp4 U" U5        M     g ! [         a  n[        SU5         S nAM2  S nAff = f)Nz after forker raised exception %s)ÚlistÚ_afterfork_registryÚitemsÚsortÚ	Exceptionr   )rc   ÚindexÚidentÚfuncÚobjÚes         r#   Ú_run_after_forkersrk   š   s]   € ÜÔ$×*Ñ*Ó,Ó-€EØ	‡J�J„LÛ%*Ñ!Ñˆ�tð	8Ù�ŽIò &+øô ó 	8ÜÐ3°Q×7Ò7ûð	8ús   ¹AÁ
A'ÁA"Á"A'c                 óH   • U [         [        [        5      [        U 5      U4'   g ©N)rb   ÚnextÚ_afterfork_counterÚid)ri   rh   s     r#   r   r   £   s   € ØEHÔœÔ0Ó1´2°c³7¸DÐAÒBr$   c                   óZ   • \ rS rSrSrS
S jrS\\\R                  4S jr
S rS rS rS	rg)r   é®   z9
Class which supports object finalization using weakrefs
Nc                 ó”  • Ub9  [        U[        5      (       d$  [        SR                  U[	        U5      5      5      eUb  [
        R                  " X5      U l        OUc  [        S5      eX l	        X0l
        U=(       d    0 U l        U[        [        5      4U l        [        R                   " 5       U l        U [$        U R                  '   g )Nz3Exitpriority ({0!r}) must be None or int, not {1!s}z+Without object, exitpriority cannot be None)rM   ÚintrP   ÚformatÚtypeÚweakrefÚrefÚ_weakrefÚ
ValueErrorÚ	_callbackÚ_argsÚ_kwargsrn   Ú_finalizer_counterÚ_keyÚosÚgetpidÚ_pidÚ_finalizer_registry)Úselfri   Úcallbackr"   Úkwargsr[   s         r#   Ú__init__ÚFinalize.__init__²   s¥   € ØÑ$¬j¸Äc×.JÑ.JÜØE×LÑLØ ¤$ |Ó"4ó6ó7ð 7ð ‰?Ü#ŸKšK¨Ó2ˆD�MØÑ!ÜÐJÓKÐKà!ŒØŒ
Ø—| ˆŒØ!¤4Ô(:Ó#;Ð<ˆŒ	Ü—I’I“KˆŒ	à)-Ô˜DŸI™IÒ&r$   c                 ót  •  X R                   	 U R                  U" 5       :w  a  U" S5        SnOOU" SU R                  U R                  U R                  5        U R                  " U R                  0 U R                  D6nS=U l        =U l        =U l        =U l        U l         U$ ! [         a    U" S5         gf = f)zA
Run the callback unless it has already been called or cancelled
z+finalizer ignored because different processNz/finalizer calling %s with args %s and kwargs %szfinalizer no longer registered)r   r‚   r{   r|   r}   ry   ÚKeyError)r„   Úwrrƒ   r   r�   Úress         r#   Ú__call__ÚFinalize.__call__Å   s´   € ð	Ø#§I¡IÐ.ð �y‰y™F›HÓ$ÙÐGÔHØ‘áÐKØŸ.™.¨$¯*©*°d·l±lôDà—n’n d§j¡jÐA°D·L±LÑA�à7;ð<ˆDŒMð <˜DœNð <¨T¬Zð <Ø œL¨4¬9ØˆJøô ó 	8ÙÐ6Ö7ð	8ús   ‚B" Â"B7Â6B7c                 óŽ   •  [         U R                  	 S=U l        =U l        =U l        =U l        U l        g! [         a     gf = f)z#
Cancel finalization of the object
N)rƒ   r   ry   r{   r|   r}   rŠ   ©r„   s    r#   ÚcancelÚFinalize.cancelÝ   sU   € ð	<Ü# D§I¡IÐ.ð
 8<ð<ˆDŒMð <˜DœNð <¨T¬Zð <Ø œL¨4­9øô	 ó 	Ùð	ús   ‚7 ·
AÁAc                 ó(   • U R                   [        ;   $ )zC
Return whether this finalizer is still waiting to invoke callback
)r   rƒ   r�   s    r#   Ústill_activeÚFinalize.still_activeé   s   € ð �y‰yÔ/Ñ/Ð/r$   c                 ó  •  U R                  5       nUc  SU R                  R                  -  $ SU R                  R                  < S[        U R                  SU R                  5      < 3nU R                  (       a  US[        U R                  5      -   -  nU R                  (       a  US[        U R                  5      -   -  nU R                  S   b  US[        U R                  S   5      -   -  nUS	-   $ ! [        [        4 a    S n Nøf = f)
Nz<%s object, dead>Ú<z object, callback=Ú__name__z, args=z	, kwargs=r   z, exitpriority=Ú>)ry   ÚAttributeErrorrP   Ú	__class__r˜   Úgetattrr{   r|   rO   r}   r   )r„   ri   Úxs      r#   Ú__repr__ÚFinalize.__repr__ï   sì   € ð	Ø—-‘-“/ˆCð ‰;Ø&¨¯©×)@Ñ)@Ñ@Ð@ð ð —‘×'Ô'Ü˜Ÿ™¨
°D·N±NÕCðEˆð �:�:Ø�œS §¡›_Ñ,Ñ,ˆAØ�<�<Ø�œs 4§<¡<Ó0Ñ0Ñ0ˆAØ�9‰9�Q‰<Ñ#ØÐ"¤S¨¯©°1©Ó%6Ñ6Ñ6ˆAØ�3‰wˆøô ¤	Ð*ó 	ØŠCð	ús   ‚C6 Ã6DÄ
D)r|   r{   r   r}   r‚   ry   )r,   NN)r˜   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r‡   rƒ   r   r€   r�   r�   r‘   r”   rž   Ú__static_attributes__r,   r$   r#   r   r   ®   s3   † ñô.ð& ð &9Ø$¨R¯Y©Yô	ò0
<ò0õr$   r   c                 óš  ^ • [         c  gT c  S nOU 4S jn[        [         5       Vs/ s H  o!" U5      (       d  M  UPM     nnUR                  SS9  U H1  n[         R                  U5      nUc  M  [	        SU5         U" 5         M3     T c  [         R                  5         ggs  snf ! [
         a    SSKnUR                  5          Mt  f = f)zÐ
Run all finalizers whose exit priority is not None and at least minpriority

Finalizers with highest priority are called first; finalizers with
the same priority will be called in reverse order of creation.
Nc                 ó   • U S   S L$ ©Nr   r,   )Úps    r#   Ú<lambda>Ú!_run_finalizers.<locals>.<lambda>  s   € �q˜‘t 4Ñ'r$   c                 ó0   >• U S   S L=(       a    U S   T:¬  $ r§   r,   )r¨   Úminprioritys    €r#   r©   rª     s   ø€ �q˜‘t 4Ð'×?¨A¨a©D°KÑ,?Ð?r$   T)Úreversez
calling %sr   )	rƒ   ra   rd   r\   r   re   Ú	tracebackÚ	print_excÚclear)r¬   ÚfÚkeyÚkeysÚ	finalizerr®   s   `     r#   Ú_run_finalizersrµ     sÅ   ø€ ô Ñ"ð 	àÑÙ'‰ä?ˆô  Ô 3Ô4Ó?Ò4�C¸¸#¿�CÑ4€DÐ?Ø‡I�I�d€IÑãˆÜ'×+Ñ+¨CÓ0ˆ	àÓ Ü�l IÔ.ð&Ù–ñ ð ÑÜ×!Ñ!Õ#ð ùò @øô ó &Û Ø×#Ñ#×%ð&ús   ¨B#¼B#Á?B(Â(C
Ã	C
c                  ó,   • [         =(       d    [         SL $ )z.
Returns true if the process is shutting down
N)Ú_exitingr,   r$   r#   r   r   0  s   € ô ×'”x 4Ð'Ð'r$   c                 ó|  • [         (       d±  Sq U " S5        U" S5        U" S5        U" 5       b  U" 5        HC  nUR                  (       d  M  U " SUR                  5        UR                  R	                  5         ME     U" 5        H&  nU " SUR                  5        UR                  5         M(     U" S5        U" 5         g g )NTzprocess shutting downz2running all "atexit" finalizers with priority >= 0r   z!calling terminate() for daemon %szcalling join() for process %sz)running the remaining "atexit" finalizers)r·   ÚdaemonÚnameÚ_popenÚ	terminateÚjoin)r   r   rµ   Úactive_childrenrU   r¨   s         r#   r4   r4   8  s¥   € ÷ Š8ØˆáÐ$Ô%ÙÐBÔCÙ˜ÔáÓÑ(ñ %Ö&�Ø—8—8‘8ÙÐ<¸a¿f¹fÔEØ—H‘H×&Ñ&Ö(ñ 'ñ
 %Ö&�ÙÐ4°a·f±fÔ=Ø—‘–ñ 'ñ 	Ð9Ô:ÙÕð? r$   c                   ó,   • \ rS rSrS rS rS rS rSrg)r   ih  c                 óØ   • [         R                  " 5       U l        U R                  R                  U l        U R                  R                  U l        [        U [        R                  5        g rm   )Ú	threadingÚLockr.   ÚacquireÚreleaser   r   Ú_at_fork_reinitr�   s    r#   r‡   ÚForkAwareThreadLock.__init__i  sC   € Ü—^’^Ó%ˆŒ
Ø—z‘z×)Ñ)ˆŒØ—z‘z×)Ñ)ˆŒÜ˜DÔ"5×"EÑ"EÕFr$   c                 ó8   • U R                   R                  5         g rm   )r.   rÅ   r�   s    r#   rÅ   Ú#ForkAwareThreadLock._at_fork_reinito  s   € Ø�
‰
×"Ñ"Õ$r$   c                 ó6   • U R                   R                  5       $ rm   )r.   Ú	__enter__r�   s    r#   rÊ   ÚForkAwareThreadLock.__enter__r  s   € Ø�z‰z×#Ñ#Ó%Ð%r$   c                 ó4   • U R                   R                  " U6 $ rm   )r.   Ú__exit__)r„   r"   s     r#   rÍ   ÚForkAwareThreadLock.__exit__u  s   € Ø�z‰z×"Ò" DÐ)Ð)r$   )r.   rÃ   rÄ   N)	r˜   r    r¡   r¢   r‡   rÅ   rÊ   rÍ   r¤   r,   r$   r#   r   r   h  s   † òGò%ò&õ*r$   r   c                   ó    • \ rS rSrS rS rSrg)r   iy  c                 ó   • [        U S 5        g )Nc                 ó6   • U R                   R                  5       $ rm   )Ú__dict__r°   )ri   s    r#   r©   Ú)ForkAwareLocal.__init__.<locals>.<lambda>{  s   € ¨s¯|©|×/AÑ/AÔ/Cr$   )r   r�   s    r#   r‡   ÚForkAwareLocal.__init__z  s   € Ü˜DÑ"CÕDr$   c                 ó   • [        U 5      S4$ )Nr,   )rv   r�   s    r#   Ú
__reduce__ÚForkAwareLocal.__reduce__|  s   € Ü�D‹z˜2ˆ~Ðr$   r,   N)r˜   r    r¡   r¢   r‡   rÖ   r¤   r,   r$   r#   r   r   y  s   † òEõr$   r   ÚSC_OPEN_MAXé   c                 óò   • [        U 5      S[        /-   n U R                  5         U S   [        :X  d   S5       e[        [	        U 5      S-
  5       H$  n[
        R                  " X   S-   XS-      5        M&     g )Néÿÿÿÿzfd too larger   )ra   ÚMAXFDrd   ÚrangeÚlenr€   Ú
closerange)ÚfdsÚis     r#   r   r   ˆ  se   € Ü
ˆs‹)�rœ5�kÑ
!€CØ‡H�H„JØˆr‰7”eÓÐ+˜^Ó+ÐÜ”3�s“8˜a‘<Ö ˆÜ
�Š�c‘f˜Q‘h  a¡C¡Ö)ò !r$   c                  óˆ  • [         R                  c  g  [         R                  R                  5          [
        R                  " [
        R                  [
        R                  5      n  [        U SSS9[         l        g ! [        [        4 a     N\f = f!   [
        R                  " U 5        e = f! [        [        4 a     g f = f)Nzutf-8F)ÚencodingÚclosefd)	rH   ÚstdinÚcloseÚOSErrorrz   r€   ÚopenÚdevnullÚO_RDONLY)Úfds    r#   Ú_close_stdinrì   ’  s—   € Ü
‡y�yÑØðÜ�	‰	�‰ÔðÜ�WŠW”R—Z‘Z¤§¡Ó-ˆð	Ü˜R¨'¸5ÑAŒC�Iøô ”ZÐ ó Ùðûð	Ü�HŠH�RŒLØûÜ”ZÐ ó Ùðús4   ”A< ³3B. Á'B Á<BÂBÂB+Â+B. Â.CÃ Cc                  óØ   •  [         R                  R                  5          [         R
                  R                  5         g ! [        [        4 a     N2f = f! [        [        4 a     g f = frm   )rH   ÚstdoutÚflushrš   rz   Ústderrr,   r$   r#   Ú_flush_std_streamsrñ   ©  s]   € ðÜ�
‰
×ÑÔðÜ�
‰
×ÑÕøô œJÐ'ó Ùðûô œJÐ'ó Ùðús"   ‚A  ¡A Á AÁAÁA)Á(A)c                 ó   • SS K nSS Kn[        [        [	        [
        U5      5      5      n[        R                  " 5       u  pV UR                  X/SUS S SSSSSSXVSSSS S S SS UR                  5      [        R                  " U5        [        R                  " U5        $ ! [        R                  " U5        [        R                  " U5        f = f)Nr   TrÛ   F)Ú_posixsubprocessÚ
subprocessÚtupleÚsortedÚmaprt   r€   ÚpipeÚ	fork_execÚ
_USE_VFORKræ   )Úpathr"   Úpassfdsró   rô   Úerrpipe_readÚerrpipe_writes          r#   Úspawnv_passfdsrÿ   ·  s«   € ÛÛÜ”Fœ3œs GÓ,Ó-Ó.€GÜ"$§'¢'£)Ñ€Lð Ø×)Ñ)Ø�&˜$ ¨¨tØ��B˜˜B  LØ�5˜"˜d D¨$°°DØ×!Ñ!ó	#ô 	�Š�ÔÜ
�Š�Õøô 	�Š�ÔÜ
�Š�Õús   Á/B Â.Cc                  óB   • U  H  n[         R                  " U5        M     g)z/Close each file descriptor given as an argumentN)r€   ræ   )rà   rë   s     r#   Ú	close_fdsr  Ç  s   € ãˆÜ
�Š�Žò r$   c                  ó  • SSK Jn   [        R                  " 5         SSKJn  UR                  R                  5         SSKJn  UR                  R                  5         [        5         U R                  5         U R                  5         g)zGCleanup multiprocessing resources when multiprocessing tests
completed.r   )Úsupport)Ú
forkserver)Úresource_trackerN)Útestr  r   Ú_cleanupr   r  Ú_forkserverÚ_stopr  Ú_resource_trackerrµ   Ú
gc_collectÚreap_children)r  r  r  s      r#   Ú_cleanup_testsr  Í  sc   € õ ô ×ÒÔõ +Ø×Ñ× Ñ Ô"õ 1Ø×&Ñ&×,Ñ,Ô.ô ÔØ×ÑÔà×ÑÕr$   rm   )<r€   Ú	itertoolsrH   rw   r3   rÁ   rô   r   Ú r   Ú__all__ÚNOTSETr   r&   r(   r   r0   r;   r   r@   r   r   r   r	   r
   r   rJ   rR   Úabstract_sockets_supportedrX   r   ÚWeakValueDictionaryrb   Úcountro   rk   r   rƒ   r~   Úobjectr   rµ   r   r·   r¾   rU   r4   r5   r   Úlocalr   ÚsysconfrÜ   re   r   rì   rñ   rÿ   r  r  r,   r$   r#   Ú<module>r     s…  ðó 
Û Û 
Û Û Û å 3å ò€ð 
€Ø€Ø
€Ø	€Ø€
à€ØFÐ à
€Ø€ò8ò5ò4ò:òô.ò*0òAñ AÓBÐ ò2òð$ ×1Ò1Ó3Ð Ø—_’_Ó&Ð ò8òIð Ð Ø—_’_Ó&Ð ôSˆvô Sôl&$òX(ð €à E¸?Ø#*×#:Ñ#:Ø#*×#:Ñ#:ô(ðT ‡‚�Ô ô*˜&ô *ô"�Y—_‘_ô ðØ�JŠJ�}Ó%€Eò*òò.ò ò óøðQ ó Ø‚Eðús   ÄD( Ä(D3Ä2D3