§
    dŠtj+<  ã                   óÜ  — 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 ej        dk    rd dlZd dlZd dlmZ g d¢Z eed	¦  «        Zej        ej        fZd
„ Zeej        e j        dœZe j        dk    r,d dlZ eed¦  «        re                     dej        i¦  «         dZ G d„ de	¦  «        Z e¦   «         Z e j!        Z!e j"        Z"e j#        Z#e j$        Z$e j%        Z%dd„Z&d„ Z'dS )é    N)Úutil)ÚResourceTrackeré   )ÚspawnÚwin32)Ú	duplicate)Úensure_runningÚregisterÚ
unregisterÚpthread_sigmaskc                 ó    — t          d¦  «        ‚)Nz-noop should never be registered or cleaned up)ÚRuntimeError)Únames    úl/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/joblib/externals/loky/backend/resource_tracker.pyÚcleanup_noopr   A   s   € Ý
ÐFÑ
GÔ
GÐGó    )ÚnoopÚfolderÚfileÚposixÚ
sem_unlinkÚsemlockFc                   óH   ‡ — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd
d„Zd„ Z	ˆ fd	„Z
ˆ xZS )r   a  Resource tracker with refcounting scheme.

    This class is an extension of the multiprocessing ResourceTracker class
    which implements a reference counting scheme to avoid unlinking shared
    resources still in use in other processes.

    This feature is notably used by `joblib.Parallel` to share temporary
    folders and memory mapped files between the main process and the worker
    processes.

    The actual implementation of the refcounting scheme is in the main
    function, which is run in a dedicated process.
    c                 ó4   — |                       d||¦  «         dS )z@Decrement the refcount of a resource, and delete it if it hits 0ÚMAYBE_UNLINKN)Ú_send)Úselfr   Úrtypes      r   Úmaybe_unlinkzResourceTracker.maybe_unlinkm   s   € à�
Š
�> 4¨Ñ/Ô/Ð/Ð/Ð/r   c                 ó*   — |                       ¦   «         S )a   Make sure that resource tracker process is running.

        This can be run from any process.  Usually a child process will use
        the resource created by its parent.

        This function is necessary for backward compatibility with python
        versions before 3.13.7.
        )Ú_ensure_running_and_write©r   s    r   r	   zResourceTracker.ensure_runningq   s   € ð ×-Ò-Ñ/Ô/Ð/r   c                 ó  — t          j        | j        ¦  «         t           j        dk    r3	 | j        �t          j        | j        d¦  «         n# t          $ r Y nw xY wd | _        d | _        t          j        d¦  «         d S )Nr   r   z]resource_tracker: process died unexpectedly, relaunching. Some folders/semaphores might leak.)	ÚosÚcloseÚ_fdr   Ú_pidÚwaitpidÚOSErrorÚwarningsÚwarnr"   s    r   Ú_teardown_dead_processz&ResourceTracker._teardown_dead_process|   sœ   € õ 	Œ�”ÑÔÐõ Œ7�gÒÐðð ”9Ð(Ý”J˜tœy¨!Ñ,Ô,Ð,øøÝð ð ð à�ðøøøð ˆŒØˆŒ	åŒð2ñ	
ô 	
ð 	
ð 	
ð 	
s   «!A Á
AÁAc                 óÂ  — g }	 |                      t          j                             ¦   «         ¦  «         n# t          $ r Y nw xY wt          j        ¦   «         \  }}t          j        dk    r9t          t          j
        |¦  «        d¬¦  «        }t          j        |¦  «         |}dt          j        › d|› dt          › d�}	 |                      |¦  «         t          j        ¦   «         }|gt#          j        ¦   «         ¢d‘|‘}t#          j        d	|› �¦  «         	 t(          r$t+          j        t*          j        t0          ¦  «         t3          |||¦  «        }t(          r$t+          j        t*          j        t0          ¦  «         n1# t(          r%t+          j        t*          j        t0          ¦  «         w w xY w|| _        || _        n## t:          $ r t          j        |¦  «         ‚ w xY w	 t          j        dk    rt=          j        |¦  «         d S t          j        |¦  «         d S # t          j        dk    rt=          j        |¦  «         w t          j        |¦  «         w xY w)
Nr   T)Úinheritablezfrom z import main; main(z, ú)z-czlaunching resource tracker: ) ÚappendÚsysÚstderrÚfilenoÚ	Exceptionr$   ÚpipeÚplatformr   ÚmsvcrtÚget_osfhandler%   ÚmainÚ
__module__ÚVERBOSEr   Úget_executabler   Ú_args_from_interpreter_flagsÚdebugÚ_HAVE_SIGMASKÚsignalr   Ú	SIG_BLOCKÚ_IGNORED_SIGNALSÚspawnv_passfdsÚSIG_UNBLOCKr&   r'   ÚBaseExceptionÚ_winapiÚCloseHandle)	r   Úfds_to_passÚrÚwÚ_rÚcmdÚexeÚargsÚpids	            r   Ú_launchzResourceTracker._launch—   sd  € ð
 ˆð	Ø×Ò�sœz×0Ò0Ñ2Ô2Ñ3Ô3Ð3Ð3øÝð 	ð 	ð 	ØˆDð	øøøõ Œw‰yŒy‰ˆˆ1ÝŒ<˜7Ò"Ð"Ý�6Ô/°Ñ2Ô2ÀÐEÑEÔEˆBÝŒH�Q‰KŒKˆKØˆAàI•d”oÐIÐI¸!ÐIÐI½wÐIÐIÐIˆð	Ø×Ò˜qÑ!Ô!Ð!åÔ&Ñ(Ô(ˆCØÐI�$Ô;Ñ=Ô=ÐI¸tÐIÀSÐIˆDÝŒJÐ<°dÐ<Ð<Ñ=Ô=Ð=ðÝ ð OÝÔ*­6Ô+;Õ=MÑNÔNÐNÝ$ S¨$°Ñ<Ô<�å ð ÝÔ*ÝÔ*Õ,<ñô ð øøõ !ð ÝÔ*ÝÔ*Õ,<ñô ð ð ðøøøð ˆDŒHØˆDŒIˆIøõ ð 	ð 	ð 	ÝŒH�Q‰KŒKˆKØð	øøøð
 åŒ|˜wÒ&Ð&ÝÔ# AÑ&Ô&Ð&Ð&Ð&å”˜‘”���øõ Œ|˜wÒ&Ð&ÝÔ# AÑ&Ô&Ð&Ð&å”˜‘”��øøøsF   „16 ¶
AÁAÃAG Ä<F Å,G Æ.F1Æ1G Æ4H# Ç G#Ç#H# È#;INc                 ó^  — | j         5  | j        �Y|€d}n|}	 |                      |¦  «         n8# t          $ r+ |                      ¦   «          |                      ¦   «          Y nw xY wd}n|                      ¦   «          ddd¦  «         n# 1 swxY w Y   |�|                      |¦  «         dS dS )a  Make sure that resource tracker process is running.

        This can be run from any process.  Usually a child process will use
        the resource created by its parent.


        This function is added for compatibility with python version before 3.13.7.
        Ns   PROBE:0:noop
)Ú_lockr&   Ú_writer)   r,   rP   )r   ÚmsgÚto_sends      r   r!   z)ResourceTracker._ensure_running_and_writeË   s  € ð ŒZð 	ð 	à”Ð$à�;Ø/�G�Gà!�Gð#Ø—K’K Ñ(Ô(Ð(Ð(øÝð #ð #ð #Ø×/Ò/Ñ1Ô1Ð1Ø—L’L‘N”N�N�N�Nð#øøøð ��à—’‘”�ð!	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð$ ˆ?Ø�KŠK˜ÑÔÐÐÐð ˆ?s1   ˆB	˜.­B	®2A#Á B	Á"A#Á#B	Â	BÂBc                 óš   — t          j        | j        |¦  «        }|t          |¦  «        k    sJ d|›dt          |¦  «        ›�¦   «         ‚d S )Nznbytes=z != len(msg)=)r$   Úwriter&   Úlen)r   rT   Únbytess      r   rS   zResourceTracker._writeé   sQ   € Ý”˜$œ( CÑ(Ô(ˆØ�˜S™œÒ!Ð!Ð!Ð#> fÐ#>Ð#>µ3°s±8´8Ð#>Ð#>Ñ!Ô!Ð!Ð!Ð!r   c                 óš   •— t          t          d¦  «        sd S 	 t          ¦   «                              ¦   «          d S # t          $ r Y d S w xY w)NÚ__del__)ÚhasattrÚ_ResourceTrackerÚsuperr[   ÚChildProcessError)r   Ú	__class__s    €r   r[   zResourceTracker.__del__í   s^   ø€ õ Õ'¨Ñ3Ô3ð 	ØˆFð	Ý‰GŒG�OŠOÑÔÐÐÐøÝ ð 	ð 	ð 	ØˆDˆDð	øøøs   š < ¼
A
Á	A
)N)Ú__name__r:   Ú__qualname__Ú__doc__r   r	   r,   rP   r!   rS   r[   Ú__classcell__)r`   s   @r   r   r   ^   s¢   ø€ € € € € ðð ð0ð 0ð 0ð	0ð 	0ð 	0ð
ð 
ð 
ð62ð 2ð 2ðhð ð ð ð<?ð ?ð ?ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	r   r   c                 ó*	  ‡— ‰rt          j        t           j        ¬¦  «         t          j        t          j        t          j        ¦  «         t          j        t          j        t          j        ¦  «         t          r$t          j        t          j	        t          ¦  «         t          j        t          j        fD ]'}	 |                     ¦   «          Œ# t          $ r Y Œ$w xY w‰rt          j        d¦  «         d„ t"                               ¦   «         D ¦   «         }	 t          j        dk    rt)          j        | t,          j        ¦  «        } t1          | d¦  «        5 }|D �]n}	 |                     ¦   «                              d¦  «                             d¦  «        }|d         d                     |d	d
…         ¦  «        |d
         }}}|t"          vr<t;          d|› d|› dt=          t"                               ¦   «         ¦  «        › �¦  «        ‚|dk    r�nt|dk    rZ|||         vrd	||         |<   n||         |xx         d	z  cc<   ‰r*t          j        d|› d|› d||         |         › d�¦  «         �n|dk    r7||         |= ‰r+t          j        d|› d|› dt?          |¦  «        › d�¦  «         n×|dk    r¿||         |xx         d	z  cc<   ‰r*t          j        d|› d|› d||         |         › d�¦  «         ||         |         dk    rj||         |= 	 ‰rt          j        d|› �¦  «         t#          |         |¦  «         nD# t          $ r$}	tA          j!        d|› d|	›�¦  «         Y d}	~	nd}	~	ww xY wntE          d|›�¦  «        ‚�Œ.# tF          $ r5 	 t          j$        t          j%        ¦   «         Ž  n# tF          $ r Y nw xY wY �Œlw xY w	 ddd¦  «         n# 1 swxY w Y   ˆfd„}
| &                    ¦   «         D ]\  }}|dk    rŒ |
||¦  «         Œd|v r |
|d         d¦  «         nN# ˆfd„}
| &                    ¦   «         D ]\  }}|dk    rŒ |
||¦  «         Œd|v r |
|d         d¦  «         w w xY w‰rt          j        d ¦  «         dS dS )!zRun resource tracker.)Úlevelz Main resource tracker is runningc                 ó   — i | ]}|i “ŒS © rh   )Ú.0r   s     r   ú
<dictcomp>zmain.<locals>.<dictcomp>  s   € Ð=Ð=Ð=˜e��rÐ=Ð=Ð=r   r   ÚrbÚasciiú:r   r   éÿÿÿÿzCannot register z/ for automatic cleanup: unknown resource type (z1). Resource type should be one of the following: ÚPROBEÚREGISTERz*[ResourceTracker] incremented refcount of ú z
 (current r/   Ú
UNREGISTERz[ResourceTracker] unregister z: registry(r   z*[ResourceTracker] decremented refcount of ú[ResourceTracker] unlink úresource_tracker: ú: Nzunrecognized command c                 óJ  •— | r:	 t          j        dt          | ¦  «        › d|› d�¦  «         n# t          $ r Y nw xY w| D ]b}	 t	          |         |¦  «         ‰rt          j        d|› �¦  «         Œ2# t          $ r$}t          j        d|› d|›�¦  «         Y d }~Œ[d }~ww xY wd S )Nz%resource_tracker: There appear to be z leaked z  objects to clean up at shutdownrs   rt   ru   )r*   r+   rX   r4   Ú_CLEANUP_FUNCSr   r>   )Úrtype_registryr   r   ÚeÚverboses       €r   Ú_unlink_resourceszmain.<locals>._unlink_resourcesd  s#  ø€ Øð ðÝ”Mð/Ý˜~Ñ.Ô.ð/ð /Ø8=ð/ð /ð /ñô ð ð øõ
 !ð ð ð Ø�Dðøøøà&ð 	Fð 	F�ðFÝ" 5Ô)¨$Ñ/Ô/Ð/Øð GÝœ
Ð#E¸tÐ#EÐ#EÑFÔFÐFøøÝ ð Fð Fð FÝ”MÐ"D°tÐ"DÐ"D¸qÐ"DÐ"DÑEÔEÐEÐEÐEÐEÐEÐEøøøøðFøøøð	Fð 	Fs$   …(. ®
;º;Á.A2Á2
B Á<BÂB r   zresource tracker shut down)'r   Úlog_to_stderrÚDEBUGr@   ÚSIGINTÚSIG_IGNÚSIGTERMr?   r   rD   rB   r1   ÚstdinÚstdoutr%   r4   r>   rw   Úkeysr6   r7   Úopen_osfhandler$   ÚO_RDONLYÚopenÚstripÚdecodeÚsplitÚjoinÚ
ValueErrorÚlistrX   r*   r+   r   rE   Ú
excepthookÚexc_infoÚitems)Úfdrz   ÚfÚregistryÚlineÚsplittedrL   r   r   ry   r{   rx   s    `          r   r9   r9     s•  ø€ àð -ÝÔ¥¤Ð,Ñ,Ô,Ð,õ „M•&”-¥¤Ñ0Ô0Ð0Ý
„M•&”.¥&¤.Ñ1Ô1Ð1åð EÝÔ�vÔ1Õ3CÑDÔDÐDåŒi�œÐ$ð ð ˆð	Ø�GŠG‰IŒIˆIˆIøÝð 	ð 	ð 	ØˆDð	øøøð ð 7ÝŒ
Ð5Ñ6Ô6Ð6à=Ð=¥~×':Ò':Ñ'<Ô'<Ð=Ñ=Ô=€Hðn<ÝŒ<˜7Ò"Ð"ÝÔ& r­2¬;Ñ7Ô7ˆBå�"�d‰^Œ^ð E	˜qØð Dñ D�ðCØ#Ÿzšz™|œ|×2Ò2°7Ñ;Ô;×AÒAÀ#ÑFÔF�Hð ! œØŸš ¨!¨B¨$¤Ñ0Ô0Ø  œð  %˜�Cð ¥NÐ2Ð2Ý(ð=¨tð =ð =Ø6;ð=ð =õ  $¥N×$7Ò$7Ñ$9Ô$9Ñ:Ô:ð=ð =ñô ð ð ˜g’~�~ÙØ 
Ò*Ð*Ø x°¤Ð6Ð6Ø45˜H UœO¨DÑ1Ð1à$ UœO¨DÐ1Ð1Ô1°QÑ6Ð1Ð1Ñ1à"ð Ý œJð!EØ#(ð!Eð !EØ+/ð!Eð !Eà,4°U¬O¸DÔ,Að!Eð !Eð !Eñô ð ùð
  Ò,Ð,Ø$ UœO¨DÐ1Ø"ð Ý œJð!=Àð !=ð !=Àuð !=ð !=Ý,/°©M¬Mð!=ð !=ð !=ñô ð øð  Ò.Ð.Ø  œ¨Ð-Ð-Ô-°Ñ2Ð-Ð-Ñ-Ø"ð Ý œJð!EØ#(ð!Eð !EØ+/ð!Eð !Eà,4°U¬O¸DÔ,Að!Eð !Eð !Eñô ð ð $ Eœ?¨4Ô0°AÒ5Ð5Ø (¨¤°Ð 5ð	"Ø#*ð !&Ý$(¤JØ(JÀDÐ(JÐ(Jñ%&ô %&ð %&õ !/¨uÔ 5°dÑ ;Ô ;Ð ;Ð ;øÝ#,ð "ð "ð "Ý (¤Ø$F¸Ð$FÐ$FÀÐ$FÐ$Fñ!"ô !"ð !"ð !"ð !"ð !"ð !"ð !"øøøøð"øøøð 6õ +Ð+JÀ3Ð+JÐ+JÑKÔKÐKùøÝ$ð ð ð ðÝœ­¬©¬Ð7Ð7Ð7øÝ(ð ð ð Ø˜ðøøøøùðøøøðADðE	ð E	ð E	ñ E	ô E	ð E	ð E	ð E	ð E	ð E	ð E	øøøð E	ð E	ð E	ð E	ðP	Fð 	Fð 	Fð 	Fð 	Fð* &.§^¢^Ñ%5Ô%5ð 	9ð 	9Ñ!ˆE�>Ø˜Ò Ð Øà!Ð! .°%Ñ8Ô8Ð8Ð8ð �xÐÐØÐ˜h xÔ0°(Ñ;Ô;Ð;øøðE	Fð 	Fð 	Fð 	Fð 	Fð* &.§^¢^Ñ%5Ô%5ð 	9ð 	9Ñ!ˆE�>Ø˜Ò Ð Øà!Ð! .°%Ñ8Ô8Ð8Ð8ð �xÐÐØÐ˜h xÔ0°(Ñ;Ô;Ð;Ð;ð  øøøð ð 1ÝŒ
Ð/Ñ0Ô0Ð0Ð0Ð0ð1ð 1s¶   Â;CÃ
CÃCÄ?P- ÅOÅ F4N
Ì.MÍN
Í
M2ÍM-Í(N
Í-M2Í2N
ÎOÎ

O	ÎN5Î4O	Î5
O	Î?O	ÏO	ÏO	ÏOÏO	Ï	OÏP- ÏOÏP- Ï OÏ!P- Ð-AQ8c                 ó~  — t           j        dk    r7d„ |D ¦   «         }|                      d¦  «        } t          j        | ||¦  «        S t          |¦  «        }d                     d„ |D ¦   «         ¦  «        }	 t          j        | |d d ddd d d ¦	  «	        \  }}}}t          j	        |¦  «         n# t          $ r Y nw xY w|S )Nr   c                 ó8   — g | ]}|                      d ¦  «        ‘ŒS )úutf-8)Úencode)ri   Úargs     r   ú
<listcomp>z"spawnv_passfds.<locals>.<listcomp>Ž  s$   € Ð4Ð4Ð4¨�—
’
˜7Ñ#Ô#Ð4Ð4Ð4r   r—   rq   c              3   ó"   K  — | ]
}d |› d �V — ŒdS )ú"Nrh   )ri   Úxs     r   ú	<genexpr>z!spawnv_passfds.<locals>.<genexpr>“  s*   è è € Ð.Ð. A�x˜1�x�x�xÐ.Ð.Ð.Ð.Ð.Ð.r   Tr   )r1   r6   r˜   r   rC   ÚsortedrŠ   rF   ÚCreateProcessrG   rE   )ÚpathrN   ÚpassfdsrL   Ú_ÚhtrO   s          r   rC   rC   Œ  sà   € Ý
„|�wÒÐØ4Ð4¨tÐ4Ñ4Ô4ˆØ�{Š{˜7Ñ#Ô#ˆÝÔ" 4¨¨wÑ7Ô7Ð7å˜‘/”/ˆØ�hŠhÐ.Ð.¨Ð.Ñ.Ô.Ñ.Ô.ˆð	Ý#Ô1Ø�c˜4  t¨Q°°d¸Dñô ‰MˆAˆr�3˜õ Ô Ñ#Ô#Ð#Ð#øÝð 	ð 	ð 	ØˆDð	øøøàˆ
s   Á75B- Â-
B:Â9B:)r   )(r$   Úshutilr1   r@   r*   Úmultiprocessingr   Ú multiprocessing.resource_trackerr   r]   Ú r   r6   rF   r7   Úmultiprocessing.reductionr   Ú__all__r\   r?   r~   r€   rB   r   ÚrmtreeÚunlinkrw   r   Ú_multiprocessingÚupdater   r;   Ú_resource_trackerr	   r
   r   r   Úgetfdr9   rC   rh   r   r   ú<module>r±      s  ððR 
€	€	€	Ø €€€Ø 
€
€
€
Ø €€€Ø €€€Ø  Ð  Ð  Ð  Ð  Ð  ðð ð ð ð ð ð Ð Ð Ð Ð Ð à„<�7ÒÐØ€N€N€NØ€M€M€MØ3Ð3Ð3Ð3Ð3Ð3ð 7Ð
6Ð
6€à�˜Ð 1Ñ2Ô2€Ø”M 6¤>Ð2Ð ðHð Hð Hð
 ØŒmØŒIðð €ð „7ˆgÒÐØÐÐÐð €wÐ Ñ.Ô.ð 
Ø×ÒàÐ+Ô6ðñ	
ô 	
ð 	
ð €ðXð Xð Xð Xð XÐ&ñ Xô Xð Xðv $�OÑ%Ô%Ð Ø"Ô1€ØÔ%€Ø Ô-€ØÔ)€
ØÔ€ðH1ð H1ð H1ð H1ðVð ð ð ð r   