+
    oÆFj1	  ã                   óD   € R t ^ RIt^ RIt ! R R]P                  4      tR# )zIEnhanced Thread with support for return values and exception propagation.Nc                   óF   a € ] tR t^t o RtR	R ltR tR tR tR t	Rt
V tR# )
ÚREThreadz¨Thread with return values and exception propagation.

The thread is marked as daemon thread. The entire Python program exits
when no alive non-daemon threads are left.
Nc           
     ó˜   € Vf   / p\         P                  P                  WW#WERR7       W n        W@n        WPn        RV n        RV n        R# )z<Initialize Thread, identical to threading.Thread.__init__().NT)Údaemon)Ú	threadingÚThreadÚ__init__Ú_REThread__targetÚ_REThread__argsÚ_REThread__kwargsÚ_retvalÚ
_exception)ÚselfÚgroupÚtargetÚnameÚargsÚkwargss   &&&&&&Ú1/usr/lib/python3/dist-packages/apport/REThread.pyr   ÚREThread.__init__   sG   € àŠ>ØˆFä×Ñ×!Ñ! $¨v¸TÐRVÐ!ÔWØŒØŒØŒØˆŒØˆŽó    c                óü   € V P                   '       d/    V P                   ! V P                  / V P                  B V n        R# R#   \         d.    \
        '       d   \
        P                  ! 4       T n         R#  R# i ; i)z9Run target function, identical to threading.Thread.run().N)r	   r
   r   r   ÚBaseExceptionÚsysÚexc_infor   ©r   s   &r   ÚrunÚREThread.run&   sZ   € à�=�=ˆ=ð5Ø#Ÿ}š}¨d¯k©kÐK¸T¿]¹]ÑK�–ñ øô !ô 5ß“3Ü&)§l¢l£n�D—Oò ð5ús   ”+A ÁA;ÁA;Á:A;c                ór   € V P                  4       '       d   Q hV P                  '       d   Q hV P                  # )z£Return value from target function.

This can only be called after the thread has finished, i. e. when
is_alive() is False and did not terminate with an exception.
)Úis_aliver   r   r   s   &r   Úreturn_valueÚREThread.return_value/   s.   € ð —=‘=—?’?Ð"Ð"Ø—?—?�?Ð"Ð"Ø�|‰|Ðr   c                ó   € V P                   # )zAReturn (type, value, traceback) of the exception caught in run().)r   r   s   &r   r   ÚREThread.exc_info9   s   € à�‰Ðr   c                ó�   € V P                   '       d4   V P                   ^,          P                  V P                   ^,          4      hR# )zRRaise the exception caught in the thread.

Do nothing if no exception was caught.
N)r   Úwith_tracebackr   s   &r   Ú	exc_raiseÚREThread.exc_raise=   s5   € ð
 �?�?ˆ?Ø—/‘/ !Õ$×3Ñ3°D·O±OÀAÕ4FÓGÐGñ r   )Ú__argsÚ__kwargsÚ__targetr   r   )NNN© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r    r   r&   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r   r      s*   ø‡ € ñô
ò5òò÷Hð Hr   r   )r0   r   r   r   r   r+   r   r   Ú<module>r4      s$   ðÙ Oó Û ô0Hˆy×Ñö 0Hr   