+
    ®¾jŸH  ã                   óò  € ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIH	t	 ^ RI
HtHtHtHt ^ RIHtHt ^ RIHtHtHt ^ RIHt ^ RIHtHtHtHtHtHtHt ]P@                  PB                  t!]P@                  PD                  t"] PF                  ! ]$4      t%]PL                  ! R4      t']PL                  ! R	4      t(]PL                  ! R
]PR                  4      t*R R lt+ ! R R]4      t,]PZ                  ! ],4       R# )é    N)Úreplace)ÚAnyÚListÚOptionalÚTuple)Ú
BadCommandÚInstallationError)Ú
HiddenTextÚdisplay_pathÚhide_url)Úmake_command)ÚAuthInfoÚRemoteNotFoundErrorÚRemoteNotValidErrorÚ
RevOptionsÚVersionControlÚ(find_path_to_project_root_from_repo_rootÚvcsz(^git version (\d+)\.(\d+)(?:\.(\d+))?.*$z^[a-fA-F0-9]{40}$a/  ^
    # Optional user, e.g. 'git@'
    (\w+@)?
    # Server, e.g. 'github.com'.
    ([^/:]+):
    # The server-side path. e.g. 'user/project.git'. Must start with an
    # alphanumeric character so as not to be confusable with a Windows paths
    # like 'C:/foo/bar' or 'C:\foo\bar'.
    (\w[^:]*)
    $c                ó0   € V ^8„  d   QhR\         R\        /# )é   ÚshaÚreturn©ÚstrÚbool)Úformats   "ÚT/home/ralf/ical-fahrzeuge/venv/lib/python3.14/site-packages/pip/_internal/vcs/git.pyÚ__annotate__r   8   s   € ÷ 'ñ 'œð '¤ñ 'ó    c                 ó>   € \        \        P                  V 4      4      # ©N)r   Ú
HASH_REGEXÚmatch)r   s   &r   Úlooks_like_hashr$   8   s   € Ü”
× Ñ  Ó%Ó&Ð&r   c                   ón  a a€ ] tR t^<t oRtRtRtR0tR1tRt	]
V3R lR l4       t]V3R lV 3R ll4       tV3R	 lR
 ltV3R lR lt]V3R lR l4       t]V3R lR l4       t]V3R lR l4       t]V3R lR l4       t]V3R lR l4       tV3R lR ltV3R lR ltV3R lR lt]V3R lR l4       t]
V3R lR  l4       t]V3R! lR" l4       t]R2V3R# lR$ ll4       t]V3R% lR& l4       t]V3R' lV 3R( ll4       t]V3R) lR* l4       t]V3R+ lV 3R, ll4       t]
V3R- lR. l4       t R/t!Vt"V ;t## )3ÚGitÚgitz.gitÚcloneÚHEADc                ó6   <€ V ^8„  d   QhRS[ RS[S[ ,          /# )r   Úrevr   )r   r   )r   Ú__classdict__s   "€r   r   ÚGit.__annotate__M   s   ø€ ÷ ñ ™sð ¡t©C¥yñ r   c                ó   € V .# r!   © ©r+   s   &r   Úget_base_rev_argsÚGit.get_base_rev_argsL   s	   € àˆuˆr   c                ó,   <€ V ^8„  d   QhRS[ RS[ RS[/# )r   ÚargsÚkwargsr   )r   r   )r   r,   s   "€r   r   r-   Q   s"   ø€ ÷ 4ñ 4¡ð 4©sð 4±sñ 4r   c                ó®   <€ \         P                  P                  R 4      '       d!   VP                  R/ 4      pRVR&   RVR&   W2R&   \        SV `  ! V/ VB # )ÚPIP_NO_INPUTÚextra_environÚ0ÚGIT_TERMINAL_PROMPTzssh -oBatchMode=yesÚGIT_SSH_COMMAND)ÚosÚenvironÚgetÚsuperÚrun_command)Úclsr4   r5   r8   Ú	__class__s   &*, €r   r@   ÚGit.run_commandP   sY   ø€ ä�:‰:�>‰>˜.×)Ò)Ø"ŸJ™J ¸Ó;ˆMØ36ˆMÐ/Ñ0Ø/DˆMÐ+Ñ,Ø&3�?Ñ#Ü‰wÒ" DÐ3¨FÑ3Ð3r   c                ó,   <€ V ^8„  d   QhRS[ RS[ RS[/# )r   ÚurlÚdestr   r   )r   r,   s   "€r   r   r-   Y   s"   ø€ ÷ $ñ $©Sð $¹ð $Áñ $r   c                ó  € V P                  \        V4      4      w  r4VP                  '       g   R # V P                  W$P                  4      '       g   R # \	        V P                  W$P                  4      ^ ,          4      pV'       * # )F)Úget_url_rev_optionsr   r+   Úis_commit_id_equalr   Úget_revision_sha)ÚselfrE   rF   Ú_Úrev_optionsÚis_tag_or_branchs   &&&   r   Úis_immutable_rev_checkoutÚGit.is_immutable_rev_checkoutY   sh   € Ø×1Ñ1´(¸3³-Ó@‰ˆØ��ˆÙØ×&Ñ& t¯_©_×=Ò=ñ ô   × 5Ñ 5°d¿O¹OÓ LÈQÕ OÓPÐØ#Ô#Ð#r   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# )r   r   .)r   Úint)r   r,   s   "€r   r   r-   g   s   ø€ ÷ :ñ :¡¡s¨C x¥ñ :r   c                ó   € V P                  R .RRRR7      p\        P                  V4      pV'       g   \        P	                  RV4       R# \        VP                  ^4      4      \        VP                  ^4      4      3# )Úversionzgit versionFT)Úcommand_descÚshow_stdoutÚstdout_onlyzCan't parse git version: %sr/   )r@   ÚGIT_VERSION_REGEXr#   ÚloggerÚwarningrR   Úgroup)rK   rT   r#   s   &  r   Úget_git_versionÚGit.get_git_versiong   ss   € Ø×"Ñ"ØˆKØ&ØØð	 #ó 
ˆô "×'Ñ'¨Ó0ˆßÜ�N‰NÐ8¸'ÔBØˆIÜ�E—K‘K “NÓ#¤S¨¯©°Q«Ó%8Ð9Ð9r   c                ó6   <€ V ^8„  d   QhRS[ RS[S[ ,          /# ©r   Úlocationr   ©r   r   )r   r,   s   "€r   r   r-   u   s   ø€ ÷ ñ ©#ð ±(¹3µ-ñ r   c                ó¤   € . ROpV P                  VRRRVR7      pVP                  4       pVP                  R4      '       d   V\        R4      R # R# )zT
Return the current branch, or None if HEAD isn't at a branch
(e.g. detached HEAD).
FT©Úextra_ok_returncodesrV   rW   Úcwdzrefs/heads/N)zsymbolic-refú-qr)   ©é   )r@   ÚstripÚ
startswithÚlen)rA   r`   r4   ÚoutputÚrefs   &&   r   Úget_current_branchÚGit.get_current_brancht   s]   € ò .ˆØ—‘ØØ!%ØØØð !ó 
ˆð �l‰l‹nˆà�>‰>˜-×(Ò(Ø”s˜=Ó)Ð+Ð,Ð,ár   c                óR   <€ V ^8„  d   QhRS[ RS[ RS[S[S[ ,          S[3,          /# ©r   rF   r+   r   )r   r   r   r   )r   r,   s   "€r   r   r-   Ž   s0   ø€ ÷ +ñ +¡Cð +©cð +±e¹HÁS½MÉ4Ð<OÕ6Pñ +r   c                ó˜  € V P                  RV.VRRRR7      p/ pVP                  4       P                  R4       F8  pVP                  R4      pV'       g   K   VP                  R^R	7      w  rgYdT&   K:  	  RV 2pRV 2p	VP                  V4      p
V
e   V
R3# VP                  V	4      p
V
R3#   \         d    \	        R
T: 24      hi ; i)zÆ
Return (sha_or_none, is_branch), where sha_or_none is a commit hash
if the revision names a remote branch or tag, otherwise None.

Args:
  dest: the repository directory.
  rev: the revision name.
zshow-refFTÚignore)re   rV   rW   Úon_returncodeÚ
ÚÚ )Úmaxsplitzunexpected show-ref line: zrefs/remotes/origin/z
refs/tags/)r@   ri   ÚsplitÚrstripÚ
ValueErrorr>   )rA   rF   r+   rl   ÚrefsÚlineÚref_shaÚref_nameÚ
branch_refÚtag_refr   s   &&&        r   rJ   ÚGit.get_revision_sha�   sþ   € ð —‘Ø˜ÐØØØØ"ð !ó 
ˆð ˆð —L‘L“N×(Ñ(¨Ö.ˆDØ—;‘;˜tÓ$ˆDßÙðHØ$(§J¡J¨s¸Q JÓ$?Ñ!�ð %�‹Nñ /ð ,¨C¨5Ð1ˆ
Ø˜s˜eÐ$ˆà�h‰h�zÓ"ˆØŠ?Ø˜�;Ðà�h‰h�wÓˆà�Uˆ|Ðøô! ô Hô !Ð#=¸d¹XÐ!FÓGÐGðHús   ÁB.Â.C	c                ó,   <€ V ^8„  d   QhRS[ RS[ RS[/# rq   r   )r   r,   s   "€r   r   r-   ¼   s"   ø€ ÷ ñ ¡ð ©3ð ±4ñ r   c                ó�   € VP                  R4      '       d   R# \        V4      '       g   R# V P                  W4      '       d   R# R# )zü
Return true if rev is a ref or is a commit that we don't have locally.

Branches and tags are not considered in this method because they are
assumed to be always available locally (which is a normal outcome of
``git clone`` and ``git fetch --tags``).
zrefs/TF)rj   r$   Ú
has_commit)rA   rF   r+   s   &&&r   Ú_should_fetchÚGit._should_fetch»   s9   € ð �>‰>˜'×"Ò"áä˜s×#Ò#áà�>‰>˜$×$Ò$áár   c                ó2   <€ V ^8„  d   QhRS[ RS[RS[RS[/# )r   rF   rE   rM   r   ©r   r
   r   )r   r,   s   "€r   r   r-   Ó   s-   ø€ ÷ +ñ +Ùð+Ù'ð+Ù6@ð+á	ñ+r   c           	     óÊ  € VP                   pVf   Q hV P                  W4      w  rVVe*   VP                  V4      p\        Y6'       d   TMRR7      pV# \	        V4      '       g   \
        P                  RV4       V P                  W4      '       g   V# V P                  \        RRW#P                  4       4      VR7       V P                  VRR7      pVP                  V4      pV# )	z�
Resolve a revision to a new RevOptions object with the SHA1 of the
branch, tag, or ref if found.

Args:
  rev_options: a RevOptions object.
N)Úbranch_namez:Did not find branch or tag '%s', assuming revision or ref.Úfetchrf   ©re   Ú
FETCH_HEADr0   )Úarg_revrJ   Úmake_newr   r$   rY   rZ   r†   r@   r   Úto_argsÚget_revision)rA   rF   rE   rM   r+   r   Ú	is_branchs   &&&&   r   Úresolve_revisionÚGit.resolve_revisionÒ   sé   € ð ×!Ñ!ˆð ŠÐˆà×-Ñ-¨dÓ8‰ˆàŠ?Ø%×.Ñ.¨sÓ3ˆKÜ! +Æ9¹CÐRVÔXˆKàÐô ˜s×#Ò#Ü�N‰NØLØôð
 × Ñ  ×+Ò+ØÐð 	�‰Ü˜ $¨×-@Ñ-@Ó-BÓCØð 	ô 	
ð
 ×Ñ˜t¨ÐÓ6ˆØ!×*Ñ*¨3Ó/ˆàÐr   c                ó<   <€ V ^8„  d   QhRS[ RS[S[ ,          RS[/# )r   rF   Únamer   )r   r   r   )r   r,   s   "€r   r   r-     s&   ø€ ÷ .ñ .¡cð .±¹#µð .Á4ñ .r   c                ó>   € V'       g   R# V P                  V4      V8H  # )z
Return whether the current commit hash equals the given name.

Args:
  dest: the repository directory.
  name: a string name.
F)r’   )rA   rF   r—   s   &&&r   rI   ÚGit.is_commit_id_equal   s    € ÷ áà×Ñ Ó%¨Ñ-Ð-r   c          
      ó6   <€ V ^8„  d   QhRS[ RS[RS[RS[RR/# )r   rF   rE   rM   Ú	verbosityr   N)r   r
   r   rR   )r   r,   s   "€r   r   r-     s5   ø€ ÷ =%ñ =%Ùð=%Ù(ð=%Ù7Að=%ÙNQð=%à	ñ=%r   c                ó„  € VP                  4       p\        P                  R W%\        V4      4       V^ 8:  d   RpMV^8X  d   RpMRpV P	                  4       R8¼  d#   V P                  \        RR.VOVNVN5!  4       M V P                  \        R.VOVNVN5!  4       VP                  '       d¾   V P                  WV4      p\        VRR4      p\        P                  RW74       VfP   V P                  WP                  4      '       g.   \        RRVP                  4       4      pV P                  W�R7       MWV P                  V4      V8w  d   R	V 2p	RR
VRV	.pV P                  W�R7       M"V P                  V4      p
VP                  V
4      p\        P                  RW#P                  4       V P!                  V4       R# )zCloning %s%s to %sr(   z--filter=blob:noner‹   NzRev options %s, branch_name %sÚcheckoutrf   r�   zorigin/z-bz--trackzResolved %s to commit %s)z--quietr/   )z	--verbosez
--progress)r   é   )Ú
to_displayrY   Úinfor   r\   r@   r   r+   r”   ÚgetattrÚdebugrI   r‘   rn   r’   r�   Úupdate_submodules)rK   rF   rE   rM   r›   Úrev_displayÚflagsr‹   Úcmd_argsÚtrack_branchr   s   &&&&&      r   Ú	fetch_newÚGit.fetch_new  sÉ  € ð "×,Ñ,Ó.ˆÜ�‰Ð(¨#¼LÈÓ<NÔOØ˜Œ>Ø%1‰EØ˜!Œ^Ø‰Eà/ˆEØ×ÑÓ! WÔ,ð ×ÑÜØØ(ðð ðð ð	ð
 óõð ×Ñœ\¨'ÐE°EÐE¸3ÐEÀÓEÔFà�?�?ˆ?à×/Ñ/°¸;ÓGˆKÜ! +¨}¸dÓCˆKÜ�L‰LÐ9¸;ÔTØÒ"ð ×.Ñ.¨t·_±_×EÒEÜ+Ø"ØØ#×+Ñ+Ó-ó �Hð
 ×$Ñ$ XÐ$Ô8øØ×(Ñ(¨Ó.°+Ô=ð ")¨¨Ð6�àØØØØ ð�ð × Ñ  Ð Ô4øà×#Ñ# DÓ)ˆCØ%×.Ñ.¨sÓ3ˆKä�‰Ð.°·_±_ÔEð 	×Ñ˜tÖ$r   c                ó0   <€ V ^8„  d   QhRS[ RS[RS[RR/# ©r   rF   rE   rM   r   Nr‰   )r   r,   s   "€r   r   r-   N  s)   ø€ ÷ %ñ %™3ð %¡Zð %¹jð %ÈTñ %r   c                ó¾   € V P                  \        R RV4      VR7       \        RRVP                  4       4      pV P                  WAR7       V P                  V4       R# )Úconfigzremote.origin.urlr�   r�   rf   N)r@   r   r‘   r£   ©rK   rF   rE   rM   r¦   s   &&&& r   ÚswitchÚ
Git.switchN  s]   € Ø×ÑÜ˜Ð#6¸Ó<Øð 	ô 	
ô   
¨D°+×2EÑ2EÓ2GÓHˆØ×Ñ˜ÐÔ,à×Ñ˜tÖ$r   c                ó0   <€ V ^8„  d   QhRS[ RS[RS[RR/# r«   r‰   )r   r,   s   "€r   r   r-   X  s)   ø€ ÷ %ñ %™3ð %¡Zð %¹jð %ÈTñ %r   c                ó(  € V P                  4       R8¼  d   V P                  . ROVR7       MV P                  RR.VR7       V P                  WV4      p\        RRRVP	                  4       4      pV P                  WAR7       V P                  V4       R# )	rh   rŒ   rf   r�   Úresetz--hardN)rh   é	   )rŒ   rf   z--tags)r\   r@   r”   r   r‘   r£   r®   s   &&&& r   ÚupdateÚ
Git.updateX  sˆ   € à×ÑÓ! VÔ+à×ÑÒ6¸DÐÕAà×Ñ˜g t˜_°$ÐÔ7à×+Ñ+¨D°{ÓCˆÜ ¨°4¸×9LÑ9LÓ9NÓOˆØ×Ñ˜ÐÔ,à×Ñ˜tÖ$r   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# r_   ©r   )r   r,   s   "€r   r   r-   g  s   ø€ ÷ 7ñ 7¡cð 7©cñ 7r   c                óF  € V P                  . RORRRVR7      pVP                  4       p V^ ,          pT F  pTP	                  R4      '       g   K  Tp M	  TP                  R4      ^,          pT P                  TP                  4       4      #   \         d    \        hi ; i)z‚
Return URL of the first remote encountered.

Raises RemoteNotFoundError if the repository does not have a remote
url configured.
FTrc   zremote.origin.url rw   )r­   z--get-regexpzremote\..*\.urlrg   )r@   Ú
splitlinesÚ
IndexErrorr   rj   ry   Ú_git_remote_to_pip_urlri   )rA   r`   ÚstdoutÚremotesÚfound_remoteÚremoterE   s   &&     r   Úget_remote_urlÚGit.get_remote_urlf  s¯   € ð —‘Ú:Ø!%ØØØð !ó 
ˆð ×#Ñ#Ó%ˆð	&Ø" 1�:ˆLó ˆFØ× Ñ Ð!5×6Ô6Ø%�Ùñ ð × Ñ  Ó% aÕ(ˆØ×)Ñ)¨#¯)©)«+Ó6Ð6øô ô 	&Ü%Ð%ð	&ús   ª	B ÂB c                ó&   <€ V ^8„  d   QhRS[ RS[ /# ©r   rE   r   r¸   )r   r,   s   "€r   r   r-   …  s   ø€ ÷ 'ñ '¡Cð '©Cñ 'r   c                óD  € \         P                  ! RV 4      '       d   V # \        P                  P	                  V 4      '       d%   \
        P                  ! V 4      P                  4       # \        P                  V 4      pV'       d   VP                  R4      # \        V 4      h)aè  
Convert a remote url from what git uses to what pip accepts.

There are 3 legal forms **url** may take:

    1. A fully qualified url: ssh://git@example.com/foo/bar.git
    2. A local project.git folder: /path/to/bare/repository.git
    3. SCP shorthand for form 1: git@example.com:foo/bar.git

Form 1 is output as-is. Form 2 must be converted to URI and form 3 must
be converted to form 1.

See the corresponding test test_git_remote_url_to_pip() for examples of
sample inputs/outputs.
z\w+://zssh://\1\2/\3)Úrer#   r<   ÚpathÚexistsÚpathlibÚPurePathÚas_uriÚ	SCP_REGEXÚexpandr   )rE   Ú	scp_matchs   & r   r¼   ÚGit._git_remote_to_pip_url„  sw   € ô" �8Š8�I˜s×#Ò#àˆJÜ�7‰7�>‰>˜#×Òô ×#Ò# CÓ(×/Ñ/Ó1Ð1Ü—O‘O CÓ(ˆ	ßà×#Ñ#Ð$4Ó5Ð5ä! #Ó&Ð&r   c                ó,   <€ V ^8„  d   QhRS[ RS[ RS[/# ©r   r`   r+   r   r   )r   r,   s   "€r   r   r-   ¤  s"   ø€ ÷ ñ ¡#ð ©Cð ±Dñ r   c                ój   €  V P                  RRRRV,           .VRR7       R#   \         d     R# i ; i)zE
Check if rev is a commit that is available in the local repository.
ú	rev-parserf   z--verifyzsha^F)re   Úlog_failed_cmdT)r@   r	   )rA   r`   r+   s   &&&r   r…   ÚGit.has_commit£  sG   € ð
		Ø�O‰OØ˜d J°¸µÐ=ØØ$ð ô ñ øô !ô 	Úð	ús   ‚# £2±2c                ó<   <€ V ^8„  d   QhRS[ RS[S[ ,          RS[ /# rÑ   ra   )r   r,   s   "€r   r   r-   ´  s&   ø€ ÷ 	#ñ 	#¡Cð 	#©h±s­mð 	#Ásñ 	#r   c                ó\   € Vf   RpV P                  RV.RRVR7      pVP                  4       # )Nr)   rÓ   FT©rV   rW   re   )r@   ri   )rA   r`   r+   Úcurrent_revs   &&& r   r’   ÚGit.get_revision³  sA   € àŠ;ØˆCØ—o‘oØ˜#ÐØØØð	 &ó 
ˆð × Ñ Ó"Ð"r   c                ó6   <€ V ^8„  d   QhRS[ RS[S[ ,          /# r_   ra   )r   r,   s   "€r   r   r-   À  s#   ø€ ÷ Mñ M©ð M±¹µñ Mr   c                ód  € V P                  RR.RRVR7      P                  4       p\        P                  P	                  V4      '       g    \        P                  P                  W4      p\        P                  P                  \        P                  P                  VR4      4      p\        W4      # )zy
Return the path to Python project root, relative to the repo root.
Return None if the project root is in the repo root.
rÓ   z	--git-dirFTrØ   z..)r@   ri   r<   rÇ   ÚisabsÚjoinÚabspathr   )rA   r`   Úgit_dirÚ	repo_roots   &&  r   Úget_subdirectoryÚGit.get_subdirectory¿  s‡   € ð —/‘/Ø˜+Ð&ØØØð	 "ó 
÷
 ‰%‹'ð 	ô �w‰w�}‰}˜W×%Ò%Ü—g‘g—l‘l 8Ó5ˆGÜ—G‘G—O‘O¤B§G¡G§L¡L°¸$Ó$?Ó@ˆ	Ü7¸ÓLÐLr   c                óP   <€ V ^8„  d   QhRS[ RS[S[ S[S[ ,          S[3,          /# rÄ   )r   r   r   r   )r   r,   s   "€r   r   r-   Ò  s+   ø€ ÷ #ñ #¡sð #©u±S¹(Á3½-ÉÐ5QÕ/Rñ #r   c                ó4  <€ \        V4      w  r#rEpVP                  R4      '       d–   VR\        VP                  R4      4      )  pV\        P
                  P                  V4      P                  RR4      P                  R4      ,           pVP                  R4      ^,           p	VRV	 \        W)R W8WV34      ,           pRV9  dA   RV9  g   Q hVP                  RR	4      p\        SV `-  V4      w  rpVP                  R
R4      pM\        SV `-  V4      w  rpWV3# )a  
Prefixes stub URLs like 'user@hostname:user/repo.git' with 'ssh://'.
That's required because although they use SSH they sometimes don't
work with a ssh:// scheme (e.g. GitHub). But we need a scheme for
parsing. Hence we remove it again afterwards and return it as a stub.
ÚfileNÚ/Ú\Ú+z://zfile:zgit+z
git+ssh://zssh://Ú )ÚurlsplitÚendswithrk   ÚlstripÚurllibÚrequestÚurl2pathnamer   ÚfindÚ
urlunsplitr?   Úget_url_rev_and_auth)rA   rE   ÚschemeÚnetlocrÇ   ÚqueryÚfragmentÚinitial_slashesÚnewpathÚ
after_plusr+   Ú	user_passrB   s   &&          €r   ró   ÚGit.get_url_rev_and_authÑ  s  ø€ ô 19¸³Ñ-ˆ˜ XØ�?‰?˜6×"Ò"Ø"Ð#;¤c¨$¯+©+°cÓ*:Ó&;Ð%;Ð<ˆOØ%¬¯©×(CÑ(CÀDÓ(I×(QÑ(QØ�có)ç‰f�S‹kõˆGð  Ÿ™ SÓ)¨AÕ-ˆJØ˜˜*Ð%¬
Ø˜Ð$ f°uÐGó)õ ˆCð ˜ÔØ #Ô%Ð%Ð%Ø—+‘+˜f lÓ3ˆCÜ"'¡'Ñ">¸sÓ"CÑˆC�iØ—+‘+˜h¨Ó+‰Cä"'¡'Ñ">¸sÓ"CÑˆC�ià˜Ð"Ð"r   c                ó$   <€ V ^8„  d   QhRS[ RR/# )r   r`   r   Nr¸   )r   r,   s   "€r   r   r-   ñ  s   ø€ ÷ 
ñ 
©ð 
°ñ 
r   c                óº   € \         P                  P                  \         P                  P                  VR 4      4      '       g   R# V P	                  . ROVR7       R# )z.gitmodulesNr�   )Ú	submodulerµ   z--initz--recursiverf   )r<   rÇ   rÈ   rÞ   r@   )rA   r`   s   &&r   r£   ÚGit.update_submodulesð  s>   € ä�w‰w�~‰~œbŸg™gŸl™l¨8°]ÓC×DÒDÙØ�‰ÚBØð 	ö 	
r   c                ó6   <€ V ^8„  d   QhRS[ RS[S[ ,          /# r_   ra   )r   r,   s   "€r   r   r-   ú  s   ø€ ÷ 2ñ 2©3ð 2±8¹Cµ=ñ 2r   c           	     ó0  <€ \         SV `  V4      pV'       d   V#  V P                  R R.VRRRRR7      p\        P                  P                  TP                  R4      4      #   \         d    \        P                  RT4        R# \         d     R# i ; i)	rÓ   z--show-toplevelFTÚraise)re   rV   rW   rt   rÔ   zKcould not determine if %s is under git control because git is not availableNz
)r?   Úget_repository_rootr@   r   rY   r¢   r	   r<   rÇ   Únormpathrz   )rA   r`   ÚlocÚrrB   s   &&  €r   r  ÚGit.get_repository_rootù  sŸ   ø€ ä‰gÑ)¨(Ó3ˆßØˆJð	Ø—‘ØÐ/Ð0ØØ!Ø Ø%Ø$ð  ó ˆAô" �w‰w×Ñ §¡¨Ó 0Ó1Ð1øô ô 	Ü�L‰Lð/àôò
 Ü ô 	Úð	ús   œA# Á#!BÂBÂBÂBc                ó&   <€ V ^8„  d   QhRS[ RS[/# )r   Úrepo_urlr   r   )r   r,   s   "€r   r   r-     s   ø€ ÷ ñ ©Cð ±Dñ r   c                ó   € R# )zEIn either https or ssh form, requirements must be prefixed with git+.Tr/   )r
  s   &r   Úshould_add_vcs_url_prefixÚGit.should_add_vcs_url_prefix  s   € ñ r   r/   )zgit+httpz	git+httpszgit+sshzgit+gitzgit+file)ÚGIT_DIRÚGIT_WORK_TREEr!   )$Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r—   ÚdirnameÚ	repo_nameÚschemesÚunset_environÚdefault_arg_revÚstaticmethodr1   Úclassmethodr@   rO   r\   rn   rJ   r†   r”   rI   r¨   r¯   rµ   rÁ   r¼   r…   r’   râ   ró   r£   r  r  Ú__static_attributes__Ú__classdictcell__Ú__classcell__)rB   r,   s   @@r   r&   r&   <   sµ  ù‡ € Ø€DØ€GØ€Ið€Gð 1€MØ€Oà÷ó ðð ÷4ò 4ó ð4÷$ð $÷:ð :ð ÷ó ðð0 ÷+ó ð+ðZ ÷ó ðð, ÷+ó ð+ðZ ÷.ó ð.÷=%ð =%÷~%ð %÷%ð %ð ÷7ó ð7ð: ÷'ó ð'ð< ÷ó ðð ÷	#ñ 	#ó ð	#ð ÷Mó ðMð" ÷#ò #ó ð#ð< ÷
ó ð
ð ÷2ò 2ó ð2ð0 ÷ó ÷ð r   r&   ).ÚloggingÚos.pathr<   rÉ   rÆ   Úurllib.parserî   Úurllib.requestÚdataclassesr   Útypingr   r   r   r   Úpip._internal.exceptionsr   r	   Úpip._internal.utils.miscr
   r   r   Úpip._internal.utils.subprocessr   Ú pip._internal.vcs.versioncontrolr   r   r   r   r   r   r   Úparserë   rò   Ú	getLoggerr  rY   ÚcompilerX   r"   ÚVERBOSErÌ   r$   r&   Úregisterr/   r   r   Ú<module>r-     sÔ   ðÛ Û Û Û 	Û Û Ý ß -Ó -ç Bß GÑ GÝ 7÷÷ ñ ð �<‰<× Ñ €Ø�\‰\×$Ñ$€
ð 
×	Ò	˜8Ó	$€ð —J’JðóÐ ð �ZŠZÐ+Ó,€
ð �JŠJð		ð ‡J�Jó€	õ'ôYˆ.ô Yðx ‡‚ˆSÖ r   