+
    )j+                     6   ^ RI HtHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIH	t	H
t
Ht ^RIHtHt ^RIHt ^RIHt ^RIHtHt ]P*                  P,                  P.                  t]P2                  .]n         ! R R	]P6                  4      t]P:                  ! R
4      t]P?                  ]P@                  4       ]PB                  ! 4       t"]"P?                  ]PF                  4       ]! 4       t$]$P?                  ]P@                  4       ]PK                  ]$4       ]PK                  ]"4       R t&RR lt']PP                  ! 4       3R lt)]PP                  ! 4       3R lt*])! ]4      t+R]+9   d   ]PY                  R]+4       R t- ! R R].4      t/R t0R t1 ! R R].4      t2R# )    )absolute_importunicode_literalsN)existsisdirjoin)dirs_srcfolder_path)create_shortcut)DEFAULT_BASE_PREFIX)rm_empty_dirrm_rfc                   &   a  ] tR t^t o R tRtV tR# )DbgViewHandlerc                :    \        V P                  V4      4       R # N)OutputDebugStringformat)selfrecords   &&6lib/python3.14/site-packages/menuinst/_legacy/win32.pyemitDbgViewHandler.emit   s    $++f-.     N)__name__
__module____qualname____firstlineno__r   __static_attributes____classdictcell____classdict__s   @r   r   r      s     / /r   r   menuinst_win32c                v    V P                  R4      p V ^ ,          R9   d   V # RV 9   g   RV 9   d
   RV ,          # V # )z
quotes a string if necessary.
" /"%s")-r&   )strip)ss   &r   quotedr,   '   s>    
 	
At|qyDAI{r   c                p    V '       d#   V ^ ,          V R,          u;8X  d
   V8X  d    V #  MV # V: V : V: 2# )z7

Examples:
    >>> ensure_pad('conda')
    '_conda_'

r   )namepads   &&r   
ensure_padr1   6   s7     47d2h-#- .c**r   c                 `    V'       g   R p\        V R4      '       d   V P                  V4      p V # )utf-8decode)hasattrr4   varcodecs   &&r   
to_unicoder9   D   s*    sHjjJr   c                     \        V \        4      '       d   V # V'       g   R p\        V R4      '       d   V P                  V4      p V # )r3   encode)
isinstancebytesr5   r;   r6   s   &&r   to_bytesr>   L   s<    #u
sHjjJr   z\envs\z$menuinst called from non-root env %sc                 n   \         P                  ^ ,          p^\        P                  ,          p\	        VR,          4      p\	        VR,          4      p\	        V 4      p \	        VR,          4      pRV3RV3R\
        P                  P                  V4      R,          3R\
        P                  P                  \        VR4      4      P                  R	R
4      3R\        VR4      3RVR,          3RVR,          3RV3RRV,          3RRV,          33
 F   w  rxV'       g   K  V P                  Wx4      p K"  	  V # )r   prefixroot_prefixenv_namez	${PREFIX}z${ROOT_PREFIX}z${DISTRIBUTION_NAME}z${PYTHON_SCRIPTS}Scripts\r'   z${MENU_DIR}Menuz${PERSONALDIR}	documentsz${USERPROFILE}profilez${ENV_NAME}z	${PY_VER}z%dz${PLATFORM}z(%s-bit)r.   )sysversion_infotuple__itemsize__r9   ospathsplitnormpathr   replace)	textdirpy_major_ver
py_bitness
env_prefixrA   rB   abs	   &&       r   substitute_env_variablesrX   [   s)    ##A&LU'''JCM*JS/0KdD#j/*H 
z"	K(	 "''--"<R"@A GGT*j9:BB5$O	
 
j'23	C,-	C	N+	"	u-.	z12 1<<%D!" Kr   c                   D   a  ] tR t^{t o ]RR]3R ltR tR tR tRt	V t
R# )rE    Nc                H   \        V4      V n        \        V4      V n        V'       d   TM(\        \	        V P                  R4      4      '       d   RMRp\
        P                  RV: RV P                  : RV: RV: RV: R	V: R
24        V P                  WP                  W6V4       R#   \         dk    R\        9   dG   TR8X  d@   \
        P                  R4        T P                  YP                  TR4        R#      R# ; i\
        P                  R4        R# i ; i)z
Prefix is the system prefix to be used -- this is needed since
there is the possibility of a different Python's packages being managed.
z	.nonadminusersystemzMenu: name: 'z', prefix: 'z', env_name: 'z
', mode: 'z', used_mode: 'z', root_prefix: ''zMInsufficient permissions to write menu folder.  Falling back to user locationz%Unable to create AllUsers menu folderN)r9   r@   rA   r   r   loggerdebugset_dirWindowsErrorr   warningfatal)r   r/   r@   rB   moderA   	used_modes   &&&&&& r   __init__Menu.__init__|   s     !(%k2DT[[,0O)P)PvV^ 	 	T[[(D)[J	
	FLL{{HM 	F
 !i8&;4LL{{HfEDE	Fs*   B, ,2D!C??DD!D! D!c                   W@n         \        4       V n        R p\        V,          P	                  4        F  w  rx\        WFV4      V P                  V&   K   	  W P                  R&   WPP                  R&   W0P                  R&   \        WP                  4      p	\        V P                  R,          V	4      V n        V P                  4        R# )Fr@   rA   rB   startN)
re   dictrR   r   itemsr	   rX   r   rM   create)
r   r/   r@   rB   re   rA   check_other_modekvfolder_names
   &&&&&&    r   ra   Menu.set_dir   s    	6 !TN((*DA &da@DHHQK + $"-'.tXX>'*K8	r   c                    \        V P                  4      '       g#   \        P                  ! V P                  4       R # R # r   )r   rM   rL   mkdirr   s   &r   rm   Menu.create   s&    TYYHHTYY  r   c                0    \        V P                  4       R # r   )r   rM   ru   s   &r   removeMenu.remove   s    TYYr   )rR   re   rM   r@   rA   )r   r   r   r   unicode_root_prefixrg   ra   rm   rx   r   r    r!   s   @r   rE   rE   {   s.      #'(FT*    r   rE   c                      V P                  VR ,          4        V P                  VR,          4       R#   \         d     L(i ; i  \         d     R# i ; i)scriptargumentscriptargumentsN)appendKeyErrorextend)argsshortcuts   &&r   extend_script_argsr      sW    H-./H./0    s    5 A AAAAc                 Z   \        V 4      ^8  d   RV ^ ,          P                  4       9   g   RV ^ ,          P                  4       9   d   V ^,          P                  4       R8X  g   V ^,          P                  4       R8X  d   \        ;QJ d#    R V R,           4       F  '       g   K   RM	  RM! R V R,           4       4      '       dD   \        V ^ ,          R	4      V ^,          R
RP	                  R V R,           4       4      ,          .p V # V  Uu. uF  p\        V4      NK  	  p pV # u upi )   zCMD.EXEz	%COMSPEC%z/Kz/Cc              3   ,   "   T F
  pR V9   x  K  	  R# 5i)r&   Nr   .0args   & r   	<genexpr>quote_args.<locals>.<genexpr>   s     /hss
hs   :r   NNTFr%   r(   r&   c              3   :   "   T F  p\        VR 4      x  K  	  R# 5i)r%   N)r1   r   s   & r   r   r      s     Hxz#s33xs   )lenupperanyr1   r   r,   )r   r   s   & r   
quote_argsr      s    
 	D	A$q'--/)[DGMMO-K!W]]_$Q4(?C/d2h/CCC/d2h/// tAw$GchhHtBxHHI
 K (,,tst,K -s   D(c                   6   a  ] tR t^t o R tR tRR ltRtV tR# )ShortCutc                    Wn         W n        R # r   menur   )r   r   r   s   &&&r   rg   ShortCut.__init__   s    	 r   c                *    V P                  R R7       R# )T)rx   N)rm   ru   s   &r   rx   ShortCut.remove   s    4 r   c           
     
   . p^ .pV P                   P                  P                  RR4      pV P                   P                  P                  RR4      p\	        VR4      p\	        VR4      p\	        VR4      p\	        VR4      p	V\	        VR4      WH.p
V\	        VR4      WI.pRV P
                  9   d8   Tp\        V4      .pW P
                  R,          P                  4       ,          pEM>RV P
                  9   d7   T
p\        V4      .pW P
                  R,          P                  4       ,          pMRV P
                  9   d   VR	RR
V P
                  R,          .pMRV P
                  9   dY   V\	        VR4      V.p\        V4      .pW P
                  R,          P                  4       ,          p\        W P
                  4       MdRV P
                  9   d8   V P
                  R,          P                  4       p\        W P
                  4       M\        RV P
                  ,          4      hV Uu. uF"  p\        WP                   P                  4      NK$  	  ppV F  pW-,          P                  RR4      W-&   K  	  \        V4      pV^ ,          pVR,          p\        P                  RV: RV: 24       V P
                  P                  RR4      pV P
                  P                  RR4      p\        WP                   P                  4      p\        VV P                   P                  4      pVP                  RR4      pVP                  RR4      pV'       d)   \!        V4      '       g   \"        P$                  ! V4       MRpV P                   P&                  .pV P
                  P                  R4      '       d-   VP)                  V P                   P                  R,          4       V P
                  P                  R4      '       dH   RV P                   P                  9   d-   VP)                  V P                   P                  R,          4       V P                   P                  R,          '       d-   RP+                  V P                   P                  R,          4      MRpV F  p\        V P
                  R,          V P                   P                  4      p\	        VVV,           R,           4      pV'       d   \-        V4       Kc  \/        RV,           RV,           V,           RV,           RP	                  R V 4       4      RV,           RV,           4       K  	  R# u upi )r   r'   rD   z
python.exezpythonw.exezcwp.py	pywscriptpyscript
webbrowserz-mz-tscriptr]   zNothing to do: %r:   NNzShortcut cmd is z, args are workdirrZ   iconz
%HOMEPATH%desktopquicklaunchrB   z ({})r/   z.lnkr&   c              3   $   "   T F  qx  K  	  R # 5ir   r   r   s   & r   r   "ShortCut.create.<locals>.<genexpr>B  s     2TccTs   N)r   r@   rP   rA   r   r   r   rN   r   	ExceptionrX   rR   r   r_   r`   getr   rL   makedirsrM   r~   r   r   r
   )r   rx   r   fix_win_slashesr@   rz   root_pyroot_pywenv_pyenv_pywcwp_pycwp_pywr   fwscmdr   r   dst_dirsname_suffixdst_dirr/   dsts   &&                    r   rm   ShortCut.create   s   #!!))#t4"ii33;;CF*M:+^<fm,v~.4 3Y?PT"5yA6S$--'D"4ykOMM+.4466D4==(D"4ykOMM*-3355DT]]*dL$l8STD& T"5yA6JD"4ykOMM(+1133Dt]]3&==*002Dt]]3/$--?@@HLM(iimm<M"C	))#t4DI # $1gBx#tDE--##Ir2}}  ,*7IIMMB'diimm< //#t,||C& >>G$"G IINN# ==Y''OODIIMM)45 ==]++0NOODIIMM-89 :>z9R9RGNN499==45XZ 	  G+DMM&,A499==QDw{ 2V ;<Cc
  #I$J,#III2T22'M$J  Q Ns   *(Ur   N)F)	r   r   r   r   rg   rx   rm   r   r    r!   s   @r   r   r      s     !![ [r   r   )_)3
__future__r   r   ctypeslocaleloggingrL   rH   os.pathr   r   r    platforms.win_utils.knownfoldersr   r	   platforms.win_utils.winshortcutr
   utilsr   r   r   windllkernel32OutputDebugStringWr   	c_wchar_pargtypesHandlerr   	getLoggerr_   setLevelDEBUGStreamHandlerstream_handlerWARNINGdbgview
addHandlerr,   r1   getpreferredencodingr9   r>   rz   rc   rX   objectrE   r   r   r   r   r   r   <module>r      sb  
 9    	 
 ' ' D = ' & MM**== $../  /W__ /
 
		+	,  &&(    (

       '    . !+ !557  335  !!45 %%
NN9;NO@E 6 E P(cv cr   