Ë
    	V.j/+  ã                   óê  — 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
 	 e j                  j                   e j                  «       «      Zg d¢Zd„ Zd„ Zd„ Zd„ Zefd	„Z G d
„ d«      Z G d„ de«      Z G d„ de«      Z e«       a ej6                  d«      a e«       a[eZi Z ejB                  jE                  «       D ]  \  Z#Z$e#dd dk(  sŒde#vsŒe#e e$ <   Œ  e«       Z%y# e$ r dZY Œ¡w xY w)é    N)ÚWeakSet©Úprocess)ÚBaseProcessÚProcessÚcurrent_processÚactive_childrenc                  ó   — t         S )z@
    Return process object representing the current process
    )Ú_current_process© ó    úRC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\billiard/process.pyr   r   #   s
   € ô Ðr   c                 ó   — | xa t        _         y ©N)r   Ú_mprocr   s    r   Ú_set_current_processr   *   s   € à18Ð8Ð”vÕ.r   c                  óŒ   — t        t        «      D ]2  } | j                  j                  «       €Œt        j	                  | «       Œ4 y r   )ÚlistÚ	_childrenÚ_popenÚpollÚdiscard)Úps    r   Ú_cleanupr   /   s.   € ä”)Ž_ˆØ�8‰8�=‰=‹?Ñ&Ü×Ñ˜aÕ ñ r   c                 óZ   — 	 | j                  «        y # t        t        t        f$ r Y y w xY wr   )ÚflushÚAttributeErrorÚEnvironmentErrorÚNotImplementedError)Úfs    r   Ú_maybe_flushr!   6   s+   € ðØ	�‰�	øÜÔ,Ô.AÐBò Ùðús   ‚ “*©*c                 óR   — 	  | «        t        t        «      S # t         $ r g cY S w xY w)zN
    Return list of process objects corresponding to live child processes
    )Ú	TypeErrorr   r   )r   s    r   r	   r	   =   s.   € ðÙŒ
ô ”	‹?Ðøô ò àŠ	ðús   ‚ ˜&¥&c                   óˆ  — e Zd ZdZd„ Zddddi dfd„Zd„ Zd„ Zd„ Zd	„ Z	d
„ Z
dd„Zd„ Zd„ Zed„ «       Zej                   d„ «       Zed„ «       Zej                   d„ «       Zed„ «       Zej                   d„ «       Zed„ «       Zed„ «       ZeZed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zd„ Zd„ Zy)r   z€
    Process objects represent activity that is run in a separate process

    The class is analogous to `threading.Thread`
    c                 ó   — t        «       ‚r   )r   ©Úselfs    r   Ú_PopenzBaseProcess._PopenP   s   € Ü!Ó#Ð#r   Nr   c                 ó  — |�J d«       ‚t        t        «      }t        j                  |fz   | _        t        j                  j                  «       | _        t        j                  «       | _        d | _	        || _
        t        |«      | _        t        |«      | _        |xs; t        | «      j                   dz   dj#                  d„ | j                  D «       «      z   | _        |�|| _        t(        �t(        j+                  | «       d| _        y )Nz#group argument must be None for nowÚ-Ú:c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr   )Ústr)Ú.0Úis     r   Ú	<genexpr>z'BaseProcess.__init__.<locals>.<genexpr>`   s   è ø€ Ð4¡^ ”S˜—V¡^ùs   ‚F)ÚnextÚ_process_counterr   Ú	_identityÚ_configÚcopyÚosÚgetpidÚ_parent_pidr   Ú_targetÚtupleÚ_argsÚdictÚ_kwargsÚtypeÚ__name__ÚjoinÚ_nameÚdaemonÚ	_danglingÚaddÚ_controlled_termination)	r'   ÚgroupÚtargetÚnameÚargsÚkwargsrB   Ú_kwÚcounts	            r   Ú__init__zBaseProcess.__init__S   sÝ   € àˆ}ÐCÐCÓCˆ}ÜÔ%Ó&ˆÜ)×3Ñ3°u°iÑ?ˆŒÜ'×/Ñ/×4Ñ4Ó6ˆŒÜŸ9™9›;ˆÔØˆŒØˆŒÜ˜4“[ˆŒ
Ü˜F“|ˆŒàò 5”D˜“J×'Ñ'¨#Ñ-Ø�H‰HÑ4 T§^¢^Ó4Ó4ñ5ð 	Œ
ð ÐØ ˆDŒKÜÐ Ü�M‰M˜$Ôà',ˆÕ$r   c                 ój   — | j                   r' | j                   | j                  i | j                  ¤Ž yy)zQ
        Method to be run in sub-process; can be overridden in sub-class
        N)r9   r;   r=   r&   s    r   ÚrunzBaseProcess.runi   s+   € ð �<Š<ØˆD�L‰L˜$Ÿ*™*Ð5¨¯©Ó5ð r   c                 ó  — | j                   �J d«       ‚| j                  t        j                  «       k(  sJ d«       ‚t	        «        | j                  | «      | _         | j                   j                  | _        t        j                  | «       y)z%
        Start child process
        Nzcannot start a process twicez:can only start a process object created by current process)
r   r8   r6   r7   r   r(   ÚsentinelÚ	_sentinelr   rD   r&   s    r   ÚstartzBaseProcess.startp   sr   € ð �{‰{Ð"ÐBÐ$BÓBÐ"Ø×Ñ¤2§9¡9£;Ò.ð 	IØHó	IÐ.äŒ
Ø—k‘k $Ó'ˆŒØŸ™×-Ñ-ˆŒÜ�‰�dÕr   c                 óR   — | j                   �| j                   j                  «        y y r   )r   Úcloser&   s    r   rU   zBaseProcess.close|   s!   € Ø�;‰;Ð"Ø�K‰K×ÑÕð #r   c                 ó8   — | j                   j                  «        y)zT
        Terminate process; sends SIGTERM signal or uses TerminateProcess()
        N)r   Ú	terminater&   s    r   rW   zBaseProcess.terminate€   s   € ð 	�‰×ÑÕr   c                 ó2   — d| _         | j                  «        y )NT)rE   rW   r&   s    r   Úterminate_controlledz BaseProcess.terminate_controlled†   s   € Ø'+ˆÔ$Ø�‰Õr   c                 ó   — | j                   t        j                  «       k(  sJ d«       ‚| j                  €J d«       ‚| j                  j	                  |«      }|�&t
        j                  | «       | j                  «        yy)z5
        Wait until child process terminates
        zcan only join a child processNzcan only join a started process)r8   r6   r7   r   Úwaitr   r   rU   )r'   ÚtimeoutÚress      r   r@   zBaseProcess.joinŠ   so   € ð ×Ñ¤2§9¡9£;Ò.ÐOÐ0OÓOÐ.Ø�{‰{Ð&ÐIÐ(IÓIÐ&Ø�k‰k×Ñ˜wÓ'ˆØˆ?Ü×Ñ˜dÔ#Ø�J‰J�Lð r   c                 óâ   — | t         u ry| j                  t        j                  «       k(  sJ d«       ‚| j                  €y| j                  j                  «        | j                  j                  du S )z1
        Return whether process is alive
        Tzcan only test a child processNF)r   r8   r6   r7   r   r   Ú
returncoder&   s    r   Úis_alivezBaseProcess.is_alive•   sb   € ð Ô#Ñ#ØØ×Ñ¤2§9¡9£;Ò.ÐOÐ0OÓOÐ.Ø�;‰;ÐØØ�‰×ÑÔØ�{‰{×%Ñ%¨Ð-Ð-r   c                 óT   — | j                   €y| j                   j                  «       d u S )NF©r   r   r&   s    r   Ú	_is_alivezBaseProcess._is_alive¡   s'   € Ø�;‰;ÐØØ�{‰{×ÑÓ! TÐ)Ð)r   c                 ó   — | j                   S r   )rA   r&   s    r   rH   zBaseProcess.name¦   s   € à�z‰zÐr   c                 ó@   — t        |t        «      sJ d«       ‚|| _        y )Nzname must be a string)Ú
isinstancer-   rA   )r'   rH   s     r   rH   zBaseProcess.nameª   s   € ä˜$¤Ô$Ð=Ð&=Ó=Ð$Øˆ�
r   c                 ó:   — | j                   j                  dd«      S )z4
        Return whether process is a daemon
        rB   F©r4   Úgetr&   s    r   rB   zBaseProcess.daemon¯   s   € ð
 �|‰|×Ñ ¨%Ó0Ð0r   c                 óH   — | j                   �J d«       ‚|| j                  d<   y)z1
        Set whether process is a daemon
        Nzprocess has already startedrB   )r   r4   )r'   Údaemonics     r   rB   zBaseProcess.daemon¶   s(   € ð
 �{‰{Ð"ÐAÐ$AÓAÐ"Ø!)ˆ�‰�XÒr   c                 ó    — | j                   d   S )NÚauthkey)r4   r&   s    r   rm   zBaseProcess.authkey¾   s   € à�|‰|˜IÑ&Ð&r   c                 ó4   — t        |«      | j                  d<   y)z2
        Set authorization key of process
        rm   N)ÚAuthenticationStringr4   )r'   rm   s     r   rm   zBaseProcess.authkeyÂ   s   € ô
 #7°wÓ"?ˆ�‰�YÒr   c                 óf   — | j                   €| j                   S | j                   j                  «       S )zM
        Return exit code of process or `None` if it has yet to stop
        rb   r&   s    r   ÚexitcodezBaseProcess.exitcodeÉ   s+   € ð
 �;‰;ÐØ—;‘;ÐØ�{‰{×ÑÓ!Ð!r   c                 ó‚   — | t         u rt        j                  «       S | j                  xr | j                  j                  S )zU
        Return identifier (PID) of process or `None` if it has yet to start
        )r   r6   r7   r   Úpidr&   s    r   ÚidentzBaseProcess.identÒ   s0   € ð
 Ô#Ñ#Ü—9‘9“;Ðà—;‘;Ò2 4§;¡;§?¡?Ð2r   c                 óL   — 	 | j                   S # t        $ r t        d«      ‚w xY w)z{
        Return a file descriptor (Unix) or handle (Windows) suitable for
        waiting for process termination.
        zprocess not started)rR   r   Ú
ValueErrorr&   s    r   rQ   zBaseProcess.sentinelÞ   s,   € ð	4Ø—>‘>Ð!øÜò 	4ÜÐ2Ó3Ð3ð	4ús   ‚ Ž#c                 ó   — t         S r   )r2   r&   s    r   Ú_counterzBaseProcess._counteré   s
   € ô  Ðr   c                 ó   — t         S r   )r   r&   s    r   r   zBaseProcess._childrenî   s
   € ô Ðr   c                 ó   — | j                   S r   )rm   r&   s    r   Ú_authkeyzBaseProcess._authkeyó   s   € ð �|‰|Ðr   c                 ó   — | j                   S r   )rB   r&   s    r   Ú	_daemoniczBaseProcess._daemonicø   s   € ð �{‰{Ðr   c                 ó8   — | j                   j                  d«      S )NÚtempdirrh   r&   s    r   Ú_tempdirzBaseProcess._tempdirý   s   € ð �|‰|×Ñ 	Ó*Ð*r   c                 ó®  — | t         u rd}n\| j                  t        j                  «       k7  rd}n8| j                  €d}n)| j                  j                  «       �| j                  }nd}t        |«      t        u r!|dk(  rd}ndt        j                  ||«      z  }dt        | «      j                  ›d| j                  ›d	|›| j                  xr d
xs d›d�S )NÚstartedÚunknownÚinitialr   Ústoppedzstopped[%s]Ú<Ú(z, z daemonÚ z)>)r   r8   r6   r7   r   r   rq   r>   ÚintÚ_exitcode_to_nameri   r?   rA   rB   )r'   Ústatuss     r   Ú__repr__zBaseProcess.__repr__  s¿   € ØÔ#Ñ#Ø‰FØ×Ñ¤§¡£Ò,Ø‰FØ�[‰[Ð Ø‰Fà�{‰{×ÑÓ!Ð-ØŸ™‘à"�ä�‹<œ3ÑØ˜Š{Ø"‘à&Ô):×)>Ñ)>¸vÀvÓ)NÑN�øä#'¨£:×#6Ó#6¸¿
»
Ù#)¨4¯;©;Ò+D¸9Ò+JÈÑ+JðLð 	Lr   c                 óÎ  — ddl m}m} 	 | j                  �|j	                  | j                  «       t        j                  d«      at        «       a	t        j                  �A	 t        j                  j                  «        t        t        j                  «      t        _        t&        }t)        | «       t*        j,                  j.                  j0                  }t3        |j5                  «       «      }|j7                  d «       |D ]V  }|rt9        ||   t*        j:                  «      rŒ#t+        j<                  |«      j>                  D ]  }|jA                  «        Œ ŒX tC        jD                  «       t*        _#        	 |jH                  jK                  «        |jM                  «        ~|jO                  d| jP                  «       	 | jS                  «        d}|jU                  «        	 |jO                  d
| jP                  |«       tc        t        jl                  «       tc        t        j\                  «       |S # t         t"        t$        f$ r Y �Œ«w xY w# ~w xY w# |jU                  «        w xY w# tV        $ r¹}	|	jX                  sd}nŸt9        |	jX                  d   tZ        «      r|	jX                  d   }nrt        j\                  j_                  ta        |	jX                  d   «      dz   «       tc        t        j\                  «       t9        |	jX                  d   t`        «      rdnd}Y d }	~	�ŒDd }	~	w d}|je                  d| jf                  d¬«      s@dd l4}
t        j\                  j_                  d	| jf                  z  «       |
jk                  «        Y �Œ¬xY w# |jO                  d
| jP                  «       tc        t        jl                  «       tc        t        j\                  «       w xY w)Né   )ÚutilÚcontextz#child process %s calling self.run()r   Ú
z
Process %sT)Úexc_infozProcess %s:
z#process %s exiting with exitcode %d)7rˆ   r�   r�   Ú_start_methodÚ_force_start_methodÚ	itertoolsrL   r2   Úsetr   ÚsysÚstdinrU   Úopenr6   Údevnullr   ÚOSErrorrv   r   r   ÚloggingÚLoggerÚmanagerÚ
loggerDictr   ÚkeysÚappendrf   ÚPlaceHolderÚ	getLoggerÚhandlersÚ
createLockÚ	threadingÚRLockÚ_lockÚ_finalizer_registryÚclearÚ_run_after_forkersÚinfors   rO   Ú_exit_functionÚ
SystemExitrI   r‰   ÚstderrÚwriter-   r!   ÚerrorrH   Ú	tracebackÚ	print_excÚstdout)r'   r�   r�   Úold_processrŸ   Úlogger_namesrH   Úhandlerrq   Úexcr²   s              r   Ú
_bootstrapzBaseProcess._bootstrap  sË  € ß#ð<	%Ø×!Ñ!Ð-Ø×+Ñ+¨D×,>Ñ,>Ô?Ü(Ÿ™¨qÓ1ÐÜ›ˆIÜ�y‰yÐ$ðÜ—I‘I—O‘OÔ%Ü $¤R§Z¡ZÓ 0”C”Iô +ˆKÜ  Ô&ô !Ÿ™×/Ñ/×:Ñ:ˆJÜ 
§¡Ó 1Ó2ˆLØ×Ñ Ô%Û$�Ù¤:¨j¸Ñ.>Ü.5×.AÑ.Aõ$Cä#*×#4Ñ#4°TÓ#:×#CÔ#C˜Ø×*Ñ*Õ,ñ $Dð %ô
 &ŸO™OÓ-ŒGŒMð Ø×(Ñ(×.Ñ.Ô0Ø×'Ñ'Ô)ð  Ø�I‰IÐ;¸T¿X¹XÔFð&Ø—‘”
Ø�à×#Ñ#Õ%ð" �I‰IÐ;Ø—h‘h ô*äœŸ™Ô$ÜœŸ™Ô$àˆøôk )¬'´:Ð>ò Úðûñ2  ûð ×#Ñ#Õ%ûÜò 	DØ—8’8Ø‘Ü˜CŸH™H Q™K¬Ô-ØŸ8™8 A™;‘ä—
‘
× Ñ ¤ S§X¡X¨a¡[Ó!1°DÑ!8Ô9ÜœSŸZ™ZÔ(Ü *¨3¯8©8°A©;¼Ô <™1À!�ÿùð	&ØˆHØ—:‘:˜l¨D¯I©IÀ�:ÔEÛ Ü—
‘
× Ñ  °4·9±9Ñ!<Ô=Ø×#Ñ#Ô%þà�I‰IÐ;Ø—h‘h ô*äœŸ™Ô$ÜœŸ™Õ$ús�   ŠAI+ Á!A H5 Â!BI+ Ä%AI+ Å9*I Æ#I+ ÇI ÇI+ Ç#N È5IÉ	I+ ÉIÉI+ ÉIÉI+ ÉI(É(I+ É+	NÉ4B.L(Ì"N Ì(A%NÎN ÎAO$r   )r?   Ú
__module__Ú__qualname__Ú__doc__r(   rM   rO   rS   rU   rW   rY   r@   r`   rc   ÚpropertyrH   ÚsetterrB   rm   rq   rt   rs   rQ   rx   r   r{   r}   r€   rŒ   r¹   r   r   r   r   r   I   s€  „ ñò$ð "¨$°TØ ¨Dó-ò,6ò
ò ò òó	ò
.ò*ð
 ñó ðð 
‡[�[ñó ðð ñ1ó ð1ð ‡]�]ñ*ó ð*ð ñ'ó ð'ð ‡^�^ñ@ó ð@ð ñ"ó ð"ð ñ3ó ð3ð €Càñ4ó ð4ð ñ ó ð ð ñó ðð ñó ðð ñó ðð ñ+ó ð+òLó0Br   r   c                   ó   — e Zd Zd„ Zy)ro   c                 óV   — ddl m}  |«       €t        d«      ‚t        t	        | «      ffS )NrŽ   )Úget_spawning_popenzJPickling an AuthenticationString object is disallowed for security reasons)r�   rÁ   r#   ro   Úbytes)r'   rÁ   s     r   Ú
__reduce__zAuthenticationString.__reduce__e  s3   € Ý/áÓÐ'Üð2ó3ð 3ô $¤e¨D£k ^Ð3Ð3r   N)r?   rº   r»   rÃ   r   r   r   ro   ro   c  s   „ ó4r   ro   c                   ó   — e Zd Zd„ Zy)Ú_MainProcessc                 óˆ   — d| _         d| _        d | _        d | _        t	        t        j                  d«      «      ddœ| _        y )Nr   ÚMainProcessé    z/mp)rm   Ú	semprefix)r3   rA   r8   r   ro   r6   Úurandomr4   r&   s    r   rM   z_MainProcess.__init__u  s;   € ØˆŒØ"ˆŒ
ØˆÔØˆŒÜ#7¼¿
¹
À2»Ó#GØ%*ñ,ˆ�r   N)r?   rº   r»   rM   r   r   r   rÅ   rÅ   s  s   „ ó,r   rÅ   rŽ   é   ÚSIGÚ_)&r6   r—   Úsignalr•   rœ   r¦   Ú_weakrefsetr   Úmultiprocessingr   r   ÚpathÚabspathÚgetcwdÚORIGINAL_DIRr›   Ú__all__r   r   r   r!   r	   r   rÂ   ro   rÅ   r   rL   r2   r–   r   r   rŠ   Ú__dict__ÚitemsrH   ÚsignumrC   r   r   r   Ú<module>rÙ      s  ðó 
Û 
Û Û Û Û Ý å -ðØ—7‘7—?‘? 9 2§9¡9£;Ó/€Lò K€òò9ò
!òð &ó 	÷Sñ Sôt	4˜5ô 	4ô ,�;ô ,ñ  “>Ð Ø"�9—?‘? 1Ó%Ð Ù‹E€	Øð €ð Ð à—O‘O×)Ñ)Ö+�L€Dˆ&ØˆBˆQ€x�5Ó˜S¨š_Ø%)Ð˜6˜'Ò"ð ,ñ
 ‹I�	øðo ò Ø‚Lðús   ¦*C( Ã(C2Ã1C2