+
    jHàjÅ  ã                  ó–   a € 0 t $ R t^ RIHt ^ RItR R ltRsR]R&   R R ltRs	R]R	&   R
 R lt
R R ltR R ltR R ltR R ltR# )zFCached runtime-environment predicates for WSL, containers, and Termux.)ÚannotationsNc               ó   € V ^8„  d   QhRR/# ©é   ÚreturnÚbool© )Úformats   "ÚA/home/ubuntu/.hermes/hermes-agent/hermes_platform/host/runtime.pyÚ__annotate__r      s   € ÷ Qñ Q�4ñ Qó    c                 óˆ   € \         P                  ! RR4      p \        \         P                  ! R4      ;'       g    RV 9   4      # )z/Return whether this process runs inside Termux.ÚPREFIXÚ ÚTERMUX_VERSIONzcom.termux/files/usr)ÚosÚgetenvr   )Úprefixs    r
   Ú	is_termuxr      s5   € ä�YŠY�x Ó$€FÜ”—	’	Ð*Ó+×OÐOÐ/EÈÑ/OÓPÐPr   zbool | NoneÚ_wsl_detectedc               ó   € V ^8„  d   QhRR/# r   r   )r	   s   "r
   r   r      s   € ÷ 	ñ 	�ñ 	r   c                 ó  € \         fH    \        RRRR7      ;_uu_ 4       p RV P                  4       P                  4       9   s RRR4       \         # \         #   + '       g   i     \         # ; i  \         d    Rs  \         # i ; i)z,Return whether this process runs inside WSL.Nz/proc/versionÚrúutf-8©ÚencodingÚ	microsoftF)r   ÚopenÚreadÚlowerÚ	Exception)Úfs    r
   Úis_wslr"      su   € ô Òð	"Ü�o s°W×=Õ=ÀØ +¨q¯v©v«x¯~©~Ó/?Ñ ?�÷ >ô ÐŒ=Ð÷	 >Ö=ô Ðûô ô 	"Ø!‰MÜÐð	"ús.   ŠA.  "AÁA. ÁA+	Á!A. Á+A. Á.BÂBÚ_container_detectedc               ó   € V ^8„  d   QhRR/# r   r   )r	   s   "r
   r   r       s   € ÷ ñ �dñ r   c                 ó2   € \         f   \        4       s \         # )z4Return whether this process runs inside a container.)r#   Ú_detect_containerr   r   r
   Úis_containerr'       s   € ô Ò"Ü/Ó1ÐÜÐr   c               ó    € V ^8„  d   QhRRRR/# )r   ÚpathÚstrr   r   )r	   s   "r
   r   r   (   s   € ÷ ñ �Sð ˜Sñ r   c                ó²   €  \        V R RR7      ;_uu_ 4       pVP                  4       uuRRR4       #   + '       g   i     R# ; i  \         d     R# i ; i)r   r   r   Nr   )r   r   ÚOSError)r)   r!   s   & r
   Ú
_read_procr-   (   sA   € ðÜ�$˜ g×.Õ.°!Ø—6‘6“8÷ /×.×.Ó.ûäô Úðús*   ‚A ˜3¨
A ³A	¾A ÁA ÁAÁAc               ó$   € V ^8„  d   QhRRRRRR/# ©r   r)   r*   Úmarkersztuple[str, ...]r   r   r   )r	   s   "r
   r   r   0   s!   € ÷ 8ñ 8 ð 8¨oð 8À$ñ 8r   c                óŽ   a€ \        V 4      o\        ;QJ d    V3R  lV 4       F  '       g   K   R# 	  R# ! V3R  lV 4       4      # )c              3  ó,   <"  € T F	  qS9   x € K  	  R # 5i©Nr   )Ú.0ÚmarkerÚcontents   & €r
   Ú	<genexpr>Ú(_proc_file_has_marker.<locals>.<genexpr>2   s   øé € Ð7©w V˜Ö «wùs   ƒTF)r-   Úany)r)   r0   r6   s   &&@r
   Ú_proc_file_has_markerr:   0   s6   ø€ Ü˜Ó€Gß‹3Ô7©wÓ7�3Œ3Ð7Š3Ð7ˆ3Ô7©wÓ7Ó7Ð7r   c               ó   € V ^8„  d   QhRR/# r   r   )r	   s   "r
   r   r   5   s   € ÷ 
^ñ 
^˜4ñ 
^r   c                 ó   € \         P                  P                  R 4      '       g]   \         P                  P                  R4      '       g8   \         P                  P	                  R4      '       g   \        RR4      '       d   R# \        RR4      # )z/.dockerenvz/run/.containerenvÚKUBERNETES_SERVICE_HOSTz/proc/1/cgroupTz/proc/self/mountinfo)ÚdockerÚpodmanz/lxc/ÚkubepodsÚ
containerdÚcrio)r@   rA   rB   )r   r)   ÚexistsÚenvironÚgetr:   Ú_root_mount_has_markerr   r   r
   r&   r&   5   s`   € ä
�‰�‰�}×%Ò%Ü�7‰7�>‰>Ð.×/Ò/Ü�:‰:�>‰>Ð3×4Ò4Ü Ð!1Ð3r×sÒsáô "Ð"8Ð:\Ó]Ð]r   c               ó$   € V ^8„  d   QhRRRRRR/# r/   r   )r	   s   "r
   r   r   B   s&   € ÷ Lñ L ð L¨ð LÀ4ñ Lr   c                ó6  a€ \        V 4      P                  4        Uu. uF7  p\        VP                  4       ;p4      ^8¼  g   K%  V^,          R8X  g   K5  VNK9  	  pp\        ;QJ d    V3R lV 4       F  '       g   K   R# 	  R# ! V3R lV 4       4      # u upi )z2Return whether the root mount contains any marker.Ú/c              3  ó>   <"  € T F  pS F	  q"V9   x € K  	  K  	  R # 5ir3   r   )r4   Úliner5   r0   s   &  €r
   r7   Ú)_root_mount_has_marker.<locals>.<genexpr>E   s   øé € ÐK©* $Ã7¸˜Ž~Á7‰~«*ùs   ƒTF)r-   Ú
splitlinesÚlenÚsplitr9   )r)   r0   rK   r!   Ú
root_liness   &f   r
   rF   rF   B   s�   ø€ ä#-¨dÓ#3×#>Ñ#>Ô#@ÓpÑ#@˜4ÄCÈTÏZÉZË\ÐHYÈÓDZÐ^_ÑD_”$ÐdeÐfgÕdhÐloÑdo—$�$Ñ#@€JÐpß‹3ÔK©*ÓK�3Œ3ÐKŠ3ÐKˆ3ÔK©*ÓKÓKÐKùò qs   �"BÁBÁB)Ú__conditional_annotations__Ú__doc__Ú
__future__r   r   r   r   Ú__annotations__r"   r#   r'   r-   r:   r&   rF   )rQ   s   @r
   Ú<module>rU      sN   øðÜ Lå "ã 	õQð "€ˆ{Ó !õ	ð $(Ð �[Ó 'õõõ8õ

^÷Lr   