+
    Ki  c                   s    R t ^ RIt^ RIHt ^ RIHtHt ^ RIHt ]P                  P                  R4      ]P                  P                  R4      .t. ROt. ROtR R lt]! ^R	7      R
 R l4       tR R ltR# )zCValve Sniper runtime (Steam Linux Runtime 3.0) discovery utilities.N)	lru_cache)ListOptional)loggerz ~/.local/share/umu/run-in-sniperzL~/.local/share/Steam/steamapps/common/SteamLinuxRuntime_sniper/run-in-sniperc                :    V ^8  d   QhR\         \        ,          /# i   Zreturn)r   strZformat   "7/usr/lib/python3.14/site-packages/lutris/util/sniper.py__annotate__r
      s           c                 s&   \          Fp  p \        P                  P                  V 4      '       g   K*  \        P                  ! V \        P
                  4      '       g   KW  \        P                  ! RV 4       V u # 	  \        P                  ! R4       R# )zReturn the path to the run-in-sniper script, or None if not found.

Searches in order:
  1. umu-launcher installation (~/.local/share/umu/)
  2. Steam installation (~/.local/share/Steam/)
zFound Sniper runtime at %szSniper runtime not foundN)_SNIPER_SEARCH_PATHSospathZisfileZaccessZX_OKr   Zdebug)r   s    r	   get_sniper_run_commandr      s[     %77>>$BIIdBGG$<$<LL5t<K %
 LL+,r   )Zmaxsizec                r   r   )r   r   r   r   r	   r
   r
   /   s     $ $49 $r   c            	     sv   \        4       p . p\         EF{  p\        P                  P	                  V4      pW09   g&   \        P                  P                  V4      '       g   KP  V P                  V4       RV,           pVP                  V4        \        P                  ! V4      pT F  p\        P                  P                  Y64      p\        P                  P                  T4      '       g   KI   \        ;QJ d0    R \        P                  ! T4       4       F  '       g   K   RM%	  RM!! R \        P                  ! T4       4       4      '       d8   TP                  R\        P                  P                  Y&4      ,           4       K  K  	  EK~  	  V#   \         d     EK  i ; i  \         d     EK  i ; i)a  Discover host library directories and return them as /run/host/ paths
for use inside the Sniper container.

Scans base library dirs and their immediate subdirectories for directories
that contain shared libraries (.so files). This catches private library
directories like /usr/lib64/pulseaudio/ that use RUNPATH and would otherwise
resolve to the Sniper runtime's version instead of the host's.
z	/run/hostc              3   s\   "   T F"  qP                  R 4      ;'       g    RV9   x  K$  	  R# 5i)z.soz.so.N)Zendswith)Z.0Zfs   & r	   Z	<genexpr>Z,get_sniper_host_lib_paths.<locals>.<genexpr>N   s(     TASAzz%(77FaK7ASs   ,,TF)Zset_HOST_LIB_DIRSr   r   ZrealpathZisdirZaddZappendZlistdirZOSErrorjoinZany)ZseenZpathsZhost_dirZreal_dirZcontainer_dirZentriesZentryZsubdirs           r	   get_sniper_host_lib_pathsr   .   s>    5DE"N77##H-277==#:#:#h.]#	jj*G EWW\\(2F77==((3TFAST333TFASTTTLLrww||H/L!LM U  #0 L  		  s6   F1
F(<%F($.F(5F(F%$F%(F87F8c                s$    V ^8  d   QhR\         /# r   )r   r   r   r	   r
   r
   V   s     S SC Sr   c                 sf    \         P                  P                  \        \	        4       ,           4      # )u  Build the LD_LIBRARY_PATH for use inside the Sniper container.

The order ensures:
  1. Sniper runtime libs (preferred — modules like gdk-pixbuf loaders work correctly)
  2. Host libs via /run/host/ (fallback — for libraries missing from Sniper like libgtkmm)
)r   Zpathsepr   _SNIPER_RUNTIME_LIB_DIRSr    r   r	   get_sniper_ld_library_pathr   V   s!     ::??36O6QQRRr   )z
/usr/lib64z/usr/libz/lib64z/lib)z/usr/lib/x86_64-linux-gnuz/lib/x86_64-linux-gnuz/usr/lib/i386-linux-gnuz/lib/i386-linux-gnu)Z__doc__r   Z	functoolsr    Ztypingr   r   Zlutris.util.logr   r   Z
expanduserr   r   r   r   r   r   r   r   r	   <module>r      sx    I 	  ! " GG9:GGef  >   1$ $NSr   