+
    êh“)  ã                  óÊ   € R t ^ RIHt ^ RIt^ RIt^ RIHt ^ RIHt ^ RI	H
t
Ht ^RIHt ]P                  R8X  d   R R	 ltM^ R
IHt  ! R R]4      tR R ltR R ltR.tR# )zUnix.)ÚannotationsN)ÚConfigParser)ÚPath)ÚIteratorÚNoReturn)ÚPlatformDirsABCÚwin32c               ó   € V ^8„  d   QhRR/# )é   Úreturnr   © )Úformats   "ÚF/usr/lib/python3/dist-packages/setuptools/_vendor/platformdirs/unix.pyÚ__annotate__r      s   € ÷  ñ  �Hñ  ó    c                 ó   € R p \        V 4      h)zshould only be used on Unix)ÚRuntimeError)Úmsgs    r   Úgetuidr      s   € Ø+ˆÜ˜3ÓÐr   )r   c                  ó  € ] tR t^tRt]R R l4       t]R R l4       t]R R l4       t]R R	 l4       t	]R
 R l4       t
]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R  R! l4       t]R" R# l4       t]R$ R% l4       t]R& R' l4       t]R( R) l4       t]R* R+ l4       tR, R- ltR. R/ ltR0 R1 ltR2tR3# )4ÚUnixaf  
On Unix/Linux, we follow the `XDG Basedir Spec <https://specifications.freedesktop.org/basedir-spec/basedir-spec-
latest.html>`_.

The spec allows overriding directories with environment variables. The examples shown are the default values,
alongside the name of the environment variable that overrides them. Makes use of the `appname
<platformdirs.api.PlatformDirsABC.appname>`, `version <platformdirs.api.PlatformDirsABC.version>`, `multipath
<platformdirs.api.PlatformDirsABC.multipath>`, `opinion <platformdirs.api.PlatformDirsABC.opinion>`, `ensure_exists
<platformdirs.api.PlatformDirsABC.ensure_exists>`.

c               ó   € V ^8„  d   QhRR/# ©r
   r   Ústrr   )r   s   "r   r   ÚUnix.__annotate__%   s   € ÷ 7ñ 7˜sñ 7r   c                óÎ   € \         P                  P                  RR4      pVP                  4       '       g    \         P                  P                  R4      pV P                  V4      # )z~
:return: data directory tied to the user, e.g. ``~/.local/share/$appname/$version`` or
 ``$XDG_DATA_HOME/$appname/$version``
ÚXDG_DATA_HOMEÚ z~/.local/share©ÚosÚenvironÚgetÚstripÚpathÚ
expanduserÚ_append_app_name_and_version©Úselfr#   s   & r   Úuser_data_dirÚUnix.user_data_dir$   sI   € ô �z‰z�~‰~˜o¨rÓ2ˆØ�z‰z�|Š|Ü—7‘7×%Ñ%Ð&6Ó7ˆDØ×0Ñ0°Ó6Ð6r   c               ó   € V ^8„  d   QhRR/# ©r
   r   z	list[str]r   )r   s   "r   r   r   0   s   € ÷ Vñ V ñ Vr   c                	ó  € \         P                  P                  R R4      pVP                  4       '       g   R\         P                   R2pVP                  \         P                  4       Uu. uF  q P                  V4      NK  	  up# u upi )ÚXDG_DATA_DIRSr   z/usr/local/sharez
/usr/share)r   r    r!   r"   ÚpathsepÚsplitr%   ©r'   r#   Úps   &  r   Ú_site_data_dirsÚUnix._site_data_dirs/   sc   € ä�z‰z�~‰~˜o¨rÓ2ˆØ�z‰z�|Š|Ø%¤b§j¡j \°Ð<ˆDØ>B¿j¹jÌÏÉÔ>TÓUÑ>T¸×1Ñ1°!Ö4Ñ>TÑUÐUùÒUs   Á,Bc               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r   7   s   € ÷ 
%ñ 
%˜sñ 
%r   c                óŽ   € V P                   pV P                  '       g
   V^ ,          # \        P                  P	                  V4      # )a:  
:return: data directories shared by users (if `multipath <platformdirs.api.PlatformDirsABC.multipath>` is
 enabled and ``XDG_DATA_DIRS`` is set and a multi path the response is also a multi path separated by the
 OS path separator), e.g. ``/usr/local/share/$appname/$version`` or ``/usr/share/$appname/$version``
)r2   Ú	multipathr   r.   Újoin©r'   Údirss   & r   Úsite_data_dirÚUnix.site_data_dir6   s4   € ð ×#Ñ#ˆØ�~�~ˆ~Ø˜•7ˆNÜ�z‰z�‰˜tÓ$Ð$r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r   D   s   € ÷ 7ñ 7 ñ 7r   c                óÎ   € \         P                  P                  RR4      pVP                  4       '       g    \         P                  P                  R4      pV P                  V4      # )z}
:return: config directory tied to the user, e.g. ``~/.config/$appname/$version`` or
 ``$XDG_CONFIG_HOME/$appname/$version``
ÚXDG_CONFIG_HOMEr   z	~/.configr   r&   s   & r   Úuser_config_dirÚUnix.user_config_dirC   sI   € ô �z‰z�~‰~Ð/°Ó4ˆØ�z‰z�|Š|Ü—7‘7×%Ñ% kÓ2ˆDØ×0Ñ0°Ó6Ð6r   c               ó   € V ^8„  d   QhRR/# r+   r   )r   s   "r   r   r   O   s   € ÷ Vñ V 9ñ Vr   c                	óö   € \         P                  P                  R R4      pVP                  4       '       g   RpVP	                  \         P
                  4       Uu. uF  q P                  V4      NK  	  up# u upi )ÚXDG_CONFIG_DIRSr   z/etc/xdg)r   r    r!   r"   r/   r.   r%   r0   s   &  r   Ú_site_config_dirsÚUnix._site_config_dirsN   sW   € ä�z‰z�~‰~Ð/°Ó4ˆØ�z‰z�|Š|ØˆDØ>B¿j¹jÌÏÉÔ>TÓUÑ>T¸×1Ñ1°!Ö4Ñ>TÑUÐUùÒUs   ÁA6c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r   V   s   € ÷ 
%ñ 
% ñ 
%r   c                óŽ   € V P                   pV P                  '       g
   V^ ,          # \        P                  P	                  V4      # )a  
:return: config directories shared by users (if `multipath <platformdirs.api.PlatformDirsABC.multipath>`
 is enabled and ``XDG_CONFIG_DIRS`` is set and a multi path the response is also a multi path separated by
 the OS path separator), e.g. ``/etc/xdg/$appname/$version``
)rD   r6   r   r.   r7   r8   s   & r   Úsite_config_dirÚUnix.site_config_dirU   s4   € ð ×%Ñ%ˆØ�~�~ˆ~Ø˜•7ˆNÜ�z‰z�‰˜tÓ$Ð$r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r   c   ó   € ÷ 7ñ 7 ñ 7r   c                óÎ   € \         P                  P                  RR4      pVP                  4       '       g    \         P                  P                  R4      pV P                  V4      # )z|
:return: cache directory tied to the user, e.g. ``~/.cache/$appname/$version`` or
 ``~/$XDG_CACHE_HOME/$appname/$version``
ÚXDG_CACHE_HOMEr   z~/.cacher   r&   s   & r   Úuser_cache_dirÚUnix.user_cache_dirb   sI   € ô �z‰z�~‰~Ð.°Ó3ˆØ�z‰z�|Š|Ü—7‘7×%Ñ% jÓ1ˆDØ×0Ñ0°Ó6Ð6r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r   n   ó   € ÷ ?ñ ? ñ ?r   c                ó$   € V P                  R4      # )zO:return: cache directory shared by users, e.g. ``/var/cache/$appname/$version``z
/var/cache)r%   ©r'   s   &r   Úsite_cache_dirÚUnix.site_cache_dirm   s   € ð ×0Ñ0°Ó>Ð>r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r   s   rK   r   c                óÎ   € \         P                  P                  RR4      pVP                  4       '       g    \         P                  P                  R4      pV P                  V4      # )z€
:return: state directory tied to the user, e.g. ``~/.local/state/$appname/$version`` or
 ``$XDG_STATE_HOME/$appname/$version``
ÚXDG_STATE_HOMEr   z~/.local/stater   r&   s   & r   Úuser_state_dirÚUnix.user_state_dirr   sJ   € ô �z‰z�~‰~Ð.°Ó3ˆØ�z‰z�|Š|Ü—7‘7×%Ñ%Ð&6Ó7ˆDØ×0Ñ0°Ó6Ð6r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r   ~   s   € ÷ ñ ˜cñ r   c                ó¤   € V P                   pV P                  '       d2   \        P                  P	                  VR4      pV P                  V4       V# )zg:return: log directory tied to the user, same as `user_state_dir` if not opinionated else ``log`` in itÚlog)rY   Úopinionr   r#   r7   Ú_optionally_create_directoryr&   s   & r   Úuser_log_dirÚUnix.user_log_dir}   s?   € ð ×"Ñ"ˆØ�<�<ˆ<Ü—7‘7—<‘<  eÓ,ˆDØ×-Ñ-¨dÔ3Øˆr   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r   ‡   s   € ÷ Gñ G Cñ Gr   c                ó   € \        RR4      # )zC:return: documents directory tied to the user, e.g. ``~/Documents``ÚXDG_DOCUMENTS_DIRz~/Documents©Ú_get_user_media_dirrS   s   &r   Úuser_documents_dirÚUnix.user_documents_dir†   s   € ô #Ð#6¸ÓFÐFr   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r   Œ   s   € ÷ Fñ F Cñ Fr   c                ó   € \        RR4      # )zC:return: downloads directory tied to the user, e.g. ``~/Downloads``ÚXDG_DOWNLOAD_DIRz~/Downloadsre   rS   s   &r   Úuser_downloads_dirÚUnix.user_downloads_dir‹   s   € ô #Ð#5°}ÓEÐEr   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r   ‘   s   € ÷ Eñ E 3ñ Er   c                ó   € \        RR4      # )zA:return: pictures directory tied to the user, e.g. ``~/Pictures``ÚXDG_PICTURES_DIRz
~/Picturesre   rS   s   &r   Úuser_pictures_dirÚUnix.user_pictures_dir�   s   € ô #Ð#5°|ÓDÐDr   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r   –   s   € ÷ Añ A ñ Ar   c                ó   € \        RR4      # )z=:return: videos directory tied to the user, e.g. ``~/Videos``ÚXDG_VIDEOS_DIRz~/Videosre   rS   s   &r   Úuser_videos_dirÚUnix.user_videos_dir•   s   € ô #Ð#3°ZÓ@Ð@r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r   ›   rQ   r   c                ó   € \        RR4      # )z;:return: music directory tied to the user, e.g. ``~/Music``ÚXDG_MUSIC_DIRz~/Musicre   rS   s   &r   Úuser_music_dirÚUnix.user_music_dirš   s   € ô # ?°IÓ>Ð>r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r       s   € ÷ Cñ C #ñ Cr   c                ó   € \        RR4      # )z?:return: desktop directory tied to the user, e.g. ``~/Desktop``ÚXDG_DESKTOP_DIRz	~/Desktopre   rS   s   &r   Úuser_desktop_dirÚUnix.user_desktop_dirŸ   s   € ô #Ð#4°kÓBÐBr   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r   ¥   s   € ÷ 7ñ 7 #ñ 7r   c                óh  € \         P                  P                  RR4      pVP                  4       '       gm   \        P
                  P                  R4      '       d;   R\        4        2p\        V4      P                  4       '       g   R\        4        2pMR\        4        2pV P                  V4      # )aJ  
:return: runtime directory tied to the user, e.g. ``/run/user/$(id -u)/$appname/$version`` or
 ``$XDG_RUNTIME_DIR/$appname/$version``.

 For FreeBSD/OpenBSD/NetBSD, it would return ``/var/run/user/$(id -u)/$appname/$version`` if
 exists, otherwise ``/tmp/runtime-$(id -u)/$appname/$version``, if``$XDG_RUNTIME_DIR``
 is not set.
ÚXDG_RUNTIME_DIRr   z/var/run/user/z/tmp/runtime-z
/run/user/©ÚfreebsdÚopenbsdÚnetbsd)r   r    r!   r"   ÚsysÚplatformÚ
startswithr   r   Úexistsr%   r&   s   & r   Úuser_runtime_dirÚUnix.user_runtime_dir¤   s‰   € ô �z‰z�~‰~Ð/°Ó4ˆØ�z‰z�|Š|Ü�|‰|×&Ñ&Ð'G×HÒHØ'¬« zÐ2�Ü˜D“z×(Ñ(×*Ò*Ø*¬6«8¨*Ð5�Døà#¤F£H :Ð.�Ø×0Ñ0°Ó6Ð6r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r   ¹   s   € ÷ 7ñ 7 #ñ 7r   c                óä   € \         P                  P                  RR4      pVP                  4       '       g+   \        P
                  P                  R4      '       d   RpMRpV P                  V4      # )a5  
:return: runtime directory shared by users, e.g. ``/run/$appname/$version`` or         ``$XDG_RUNTIME_DIR/$appname/$version``.

Note that this behaves almost exactly like `user_runtime_dir` if ``$XDG_RUNTIME_DIR`` is set, but will
fall back to paths associated to the root user instead of a regular logged-in user if it's not set.

If you wish to ensure that a logged-in root user path is returned e.g. ``/run/user/0``, use `user_runtime_dir`
instead.

For FreeBSD/OpenBSD/NetBSD, it would return ``/var/run/$appname/$version`` if ``$XDG_RUNTIME_DIR`` is not set.
r„   r   z/var/runz/runr…   )r   r    r!   r"   r‰   rŠ   r‹   r%   r&   s   & r   Úsite_runtime_dirÚUnix.site_runtime_dir¸   sU   € ô �z‰z�~‰~Ð/°Ó4ˆØ�z‰z�|Š|Ü�|‰|×&Ñ&Ð'G×HÒHØ!‘à�Ø×0Ñ0°Ó6Ð6r   c               ó   € V ^8„  d   QhRR/# ©r
   r   r   r   )r   s   "r   r   r   Ï   s   € ÷ Iñ I ñ Ir   c                ó8   € V P                  V P                  4      # )zh:return: data path shared by users. Only return the first item, even if ``multipath`` is set to ``True``)Ú _first_item_as_path_if_multipathr:   rS   s   &r   Úsite_data_pathÚUnix.site_data_pathÎ   s   € ð ×4Ñ4°T×5GÑ5GÓHÐHr   c               ó   € V ^8„  d   QhRR/# r”   r   )r   s   "r   r   r   Ô   s   € ÷ Kñ K $ñ Kr   c                ó8   € V P                  V P                  4      # )zj:return: config path shared by the users, returns the first item, even if ``multipath`` is set to ``True``)r–   rH   rS   s   &r   Úsite_config_pathÚUnix.site_config_pathÓ   s   € ð ×4Ñ4°T×5IÑ5IÓJÐJr   c               ó   € V ^8„  d   QhRR/# r”   r   )r   s   "r   r   r   Ù   s   € ÷ Jñ J ñ Jr   c                ó8   € V P                  V P                  4      # )zi:return: cache path shared by users. Only return the first item, even if ``multipath`` is set to ``True``)r–   rT   rS   s   &r   Úsite_cache_pathÚUnix.site_cache_pathØ   s   € ð ×4Ñ4°T×5HÑ5HÓIÐIr   c               ó    € V ^8„  d   QhRRRR/# )r
   Ú	directoryr   r   r   r   )r   s   "r   r   r   Ý   s   € ÷ ñ ¸#ð À$ñ r   c                	óˆ   € V P                   '       d'   VP                  \        P                  4      ^ ,          p\	        V4      # )é    )r6   r/   r   r.   r   )r'   r¢   s   &&r   r–   Ú%Unix._first_item_as_path_if_multipathÝ   s,   € Ø�>�>ˆ>à!Ÿ™¬¯
©
Ó3°AÕ6ˆIÜ�I‹Ðr   c               ó   € V ^8„  d   QhRR/# ©r
   r   zIterator[str]r   )r   s   "r   r   r   ã   s   € ÷ *ñ * -ñ *r   c              #  óV   "  € V P                   x € V P                   Rj  x€L
  R#  L5i)z4:yield: all user and site configuration directories.N)r?   rD   rS   s   &r   Úiter_config_dirsÚUnix.iter_config_dirsã   s    é € à×"Ñ"Ò"Ø×)Ñ)×)Ô)ùó   ‚) '¡)c               ó   € V ^8„  d   QhRR/# r§   r   )r   s   "r   r   r   è   s   € ÷ (ñ ( ñ (r   c              #  óV   "  € V P                   x € V P                   Rj  x€L
  R#  L5i)z+:yield: all user and site data directories.N)r(   r2   rS   s   &r   Úiter_data_dirsÚUnix.iter_data_dirsè   s    é € à× Ñ Ò Ø×'Ñ'×'Ô'ùr«   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Úpropertyr(   r2   r:   r?   rD   rH   rN   rT   rY   r`   rg   rl   rq   rv   r{   r€   r�   r‘   r—   r›   rŸ   r–   r©   r®   Ú__static_attributes__r   r   r   r   r      sÓ  † ñ
ð ô7ó ð7ð ôVó ðVð ô
%ó ð
%ð ô7ó ð7ð ôVó ðVð ô
%ó ð
%ð ô7ó ð7ð ô?ó ð?ð ô7ó ð7ð ôó ðð ôGó ðGð ôFó ðFð ôEó ðEð ôAó ðAð ô?ó ð?ð ôCó ðCð ô7ó ð7ð& ô7ó ð7ð* ôIó ðIð ôKó ðKð ôJó ðJõõ*÷
(ñ (r   r   c               ó$   € V ^8„  d   QhRRRRRR/# )r
   Úenv_varr   Úfallback_tilde_pathr   r   )r   s   "r   r   r   î   s!   € ÷ ñ  ð ¸3ð À3ñ r   c                óÎ   € \        V 4      pVfV   \        P                  P                  V R4      P	                  4       pV'       g    \        P
                  P                  V4      pV# )Nr   )Ú_get_user_dirs_folderr   r    r!   r"   r#   r$   )r¸   r¹   Ú	media_dirs   && r   rf   rf   î   sM   € Ü% gÓ.€IØÒÜ—J‘J—N‘N 7¨BÓ/×5Ñ5Ó7ˆ	ßÜŸ™×*Ñ*Ð+>Ó?ˆIàÐr   c               ó    € V ^8„  d   QhRRRR/# )r
   Úkeyr   r   z
str | Noner   )r   s   "r   r   r   ø   s   € ÷ ñ ˜sð  zñ r   c                óô  € \        \        4       P                  4      R,          pVP                  4       '       d«   \	        4       pVP                  4       ;_uu_ 4       pVP                  RVP                  4        24       RRR4       WR,          9  d   R# VR,          V ,          P                  R4      pVP                  R\        P                  P                  R4      4      # R#   + '       g   i     Lo; i)zo
Return directory from user-dirs.dirs config file.

See https://freedesktop.org/wiki/Software/xdg-user-dirs/.

zuser-dirs.dirsz[top]
NÚtopÚ"z$HOMEÚ~)r   r   r?   rŒ   r   ÚopenÚread_stringÚreadr"   Úreplacer   r#   r$   )r¾   Úuser_dirs_config_pathÚparserÚstreamr#   s   &    r   r»   r»   ø   s¸   € ô !¤£×!7Ñ!7Ó8Ð;KÕKÐØ×#Ñ#×%Ò%Ü“ˆà"×'Ñ'×)Ô)¨Và×Ñ ¨¯©«¨Ð8Ô9÷ *ð ˜U•mÔ#Ùà�e�}˜SÕ!×'Ñ'¨Ó,ˆà�|‰|˜G¤R§W¡W×%7Ñ%7¸Ó%<Ó=Ð=á÷ *×)ús   Á#C'Ã'C7	)r´   Ú
__future__r   r   r‰   Úconfigparserr   Úpathlibr   Útypingr   r   Úapir   rŠ   r   r   rf   r»   Ú__all__r   r   r   Ú<module>rÐ      sX   ðÙ å "ã 	Û 
Ý %Ý ß %å  à‡<�<�7Ôö õ
 ôT(ˆ?ô T(õnõð4 ð‚r   