+
    BV-jè8  ã                  óö  € R t ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RI	H
t
Ht ^ RIHtHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHtHt ]P0                  t]! R
]4      t]'       d   RMRtRt]! RRRRRR7      t]P<                  ]P>                  ]P@                  ]PB                  ]PD                  3t#]P>                  ]P<                  ]P@                  3t$]! ]%4      t&R R lt'R R lt(R R lt) ! R R4      t*R# )a  Configuration management setup

Some terminology:
- name
  As written in config files.
- value
  Value associated with a name
- key
  Name combined with it's section (section.name)
- variant
  A single word describing where the configuration key-value pair came from
)ÚannotationsN)ÚIterable)ÚAnyÚNewType)ÚConfigurationErrorÚ!ConfigurationFileCouldNotBeLoaded)Úappdirs)ÚWINDOWS)Ú	getLogger)Ú
ensure_dirÚenumÚKindzpip.inizpip.confÚuserÚglobalÚsiteÚenvzenv-var)ÚUSERÚGLOBALÚSITEÚENVÚENV_VARc               ó    € V ^8„  d   QhRRRR/# )é   ÚnameÚstrÚreturn© )Úformats   "Úl/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/pip/_internal/configuration.pyÚ__annotate__r   5   s   € ÷ ñ ˜#ð  #ñ ó    c                óh   € V P                  4       P                  RR4      p V P                  R4      p V # )zAMake a name consistent regardless of source (environment or file)Ú_Ú-z--)ÚlowerÚreplaceÚremoveprefix)r   s   &r   Ú_normalize_namer'   5   s/   € à�:‰:‹<×Ñ  SÓ)€DØ×Ñ˜TÓ"€DØ€Kr    c               ó    € V ^8„  d   QhRRRR/# )r   r   r   r   z	list[str]r   )r   s   "r   r   r   <   s   € ÷ ñ ˜3ð  9ñ r    c                óV   € R V 9  d   RV  R2p\        V4      hV P                  R ^4      # )Ú.zVKey does not contain dot separated section and key. Perhaps you wanted to use 'global.z
' instead?)r   Úsplit)r   Úerror_messages   & r   Ú_disassemble_keyr-   <   s>   € Ø
�$„ð1Ø15°°jðBð 	ô ! Ó/Ð/Ø�:‰:�c˜1ÓÐr    c               ó   € V ^8„  d   QhRR/# )r   r   zdict[Kind, list[str]]r   )r   s   "r   r   r   F   s   € ÷ ñ Ð!6ñ r    c                 óv  € \         P                  ! R 4       U u. uF'  p \        P                  P	                  V \
        4      NK)  	  pp \        P                  P	                  \        P                  \
        4      p\        P                  P	                  \        P                  P                  R4      \        '       d   R MR\
        4      p\        P                  P	                  \         P                  ! R 4      \
        4      p\        P                  V\        P                  V.\        P                  W4./# u up i )ÚpipÚ~z.pip)r   Úsite_config_dirsÚosÚpathÚjoinÚCONFIG_BASENAMEÚsysÚprefixÚ
expanduserr	   Úuser_config_dirÚkindsr   r   r   )r4   Úglobal_config_filesÚsite_config_fileÚlegacy_config_fileÚnew_config_files        r   Úget_configuration_filesr@   F   sÚ   € ä8?×8PÒ8PÐQVÔ8WóÙ8W°Œ�‰�‰�Tœ?Ö+Ñ8Wð ð ô —w‘w—|‘|¤C§J¡J´Ó@ÐÜŸ™Ÿ™Ü
�‰×Ñ˜3Óß“‰˜fÜóÐô
 —g‘g—l‘l¤7×#:Ò#:¸5Ó#AÄ?ÓS€Oä�‰Ð)Ü�
‰
Ð%Ð&Ü�
‰
Ð'Ð9ðð ùòs   ™-D6c                  ó0  a € ] tR t^YtRtR-R V 3R llltR R ltR R ltR R	 ltR
 R lt	R R lt
R R ltR R ltR R lt]R R l4       tR R ltR R ltR R ltR R ltR R ltR  R! ltR" R# ltR$ R% ltR& R' ltR( R) ltR* R+ ltR,tV ;t# ).ÚConfigurationaÂ  Handles management of configuration.

Provides an interface to accessing and managing configuration files.

This class converts provides an API that takes "section.key-name" style
keys and stores the value associated with it as "key-name" under the
section "section".

This allows for a clean interface wherein the both the section and the
key-name are preserved in an easy to manage form in the configuration files
and the data stored is also nice.
c               ó$   € V ^8„  d   QhRRRRRR/# )r   ÚisolatedÚboolÚ	load_onlyzKind | Noner   ÚNoner   )r   s   "r   r   ÚConfiguration.__annotate__g   s&   € ÷ Gñ G ð G°+ð GÈñ Gr    c           
     	ó^  <€ \         SV `  4        VeG   V\        9  d<   \        RP	                  RP                  \        \        \        4      4      4      4      hWn        W n	        \         Uu/ uF  q3. bK  	  upV n        \         Uu/ uF  q3/ bK  	  upV n        . V n        R # u upi u upi )Nz5Got invalid value for load_only - should be one of {}z, )ÚsuperÚ__init__ÚVALID_LOAD_ONLYr   r   r5   ÚmapÚreprrD   rF   ÚOVERRIDE_ORDERÚ_parsersÚ_configÚ_modified_parsers)ÚselfrD   rF   ÚvariantÚ	__class__s   &&& €r   rK   ÚConfiguration.__init__g   s¬   ø€ Ü‰ÑÔàÒ  Y´oÔ%EÜ$ØG×NÑNØ—I‘Iœc¤$¬Ó8Ó9óóð ð
 !ŒØ"Œõ (6óH
Ù'5˜G�RŠK¡~ñH
ˆŒõ (6ó?
Ù'5˜G�RŠK¡~ñ?
ˆŒð EGˆÖùòH
ùò?
s   Á.B%Â	B*c               ó   € V ^8„  d   QhRR/# ©r   r   rG   r   )r   s   "r   r   rH   |   s   € ÷ *ñ *�dñ *r    c                ón   € V P                  4        V P                  '       g   V P                  4        R# R# )z<Loads configuration from configuration files and environmentN)Ú_load_config_filesrD   Ú_load_environment_vars©rS   s   &r   ÚloadÚConfiguration.load|   s(   € à×ÑÔ!Ø�}�}ˆ}Ø×'Ñ'Ö)ñ r    c               ó   € V ^8„  d   QhRR/# )r   r   z
str | Noner   )r   s   "r   r   rH   ‚   s   € ÷ ñ  *ñ r    c                ó€   € V P                   f   Q R4       h V P                  4       ^ ,          #   \         d     R# i ; i)z7Returns the file with highest priority in configurationNz)Need to be specified a file to be editing)rF   Ú_get_parser_to_modifyÚ
IndexErrorr\   s   &r   Úget_file_to_editÚConfiguration.get_file_to_edit‚   sC   € à�~‰~Ò)ÐVÐ+VÓVÐ)ð	Ø×-Ñ-Ó/°Õ2Ð2øÜô 	Úð	ús   —. ®=¼=c               ó   € V ^8„  d   QhRR/# )r   r   úIterable[tuple[str, Any]]r   )r   s   "r   r   rH   ‹   s   € ÷ (ñ (Ð0ñ (r    c                ó6   € V P                   P                  4       # )zPReturns key-value pairs like dict.items() representing the loaded
configuration
)Ú_dictionaryÚitemsr\   s   &r   ri   ÚConfiguration.items‹   s   € ð ×Ñ×%Ñ%Ó'Ð'r    c               ó    € V ^8„  d   QhRRRR/# )r   Úkeyr   r   r   r   )r   s   "r   r   rH   ‘   s   € ÷ Bñ B˜Sð B Sñ Br    c                óæ   € Tp\        V4      p / pV P                  P                  4        F  pVP                  V4       K  	  W1,          #   \         d    \        T4       \        RT 24      hi ; i)z#Get a value from the configuration.úNo such key - )r'   rh   ÚvaluesÚupdateÚKeyErrorr-   r   )rS   rl   Úorig_keyÚclean_configÚfile_valuess   &&   r   Ú	get_valueÚConfiguration.get_value‘   sy   € àˆÜ˜cÓ"ˆð		BØ+-ˆLØ#×/Ñ/×6Ñ6Ö8�Ø×#Ñ# KÖ0ñ  9àÕ$Ð$øÜô 	Bô ˜SÔ!Ü$ ~°h°ZÐ%@ÓAÐAð		Bús   �;A Á%A0c               ó$   € V ^8„  d   QhRRRRRR/# )r   rl   r   Úvaluer   r   rG   r   )r   s   "r   r   rH       s!   € ÷ .ñ .˜Sð .¨ð .°ñ .r    c                óæ  € \        V4      pV P                  4        V P                  '       g   Q hV P                  4       w  r4VeH   \	        V4      w  rVVP                  V4      '       g   VP                  V4       VP                  WVV4       V P                  V P                  ,          P                  V/ 4       W P                  V P                  ,          V,          V&   V P                  W44       R# )z$Modify a value in the configuration.N)r'   Ú_ensure_have_load_onlyrF   ra   r-   Úhas_sectionÚadd_sectionÚsetrQ   Ú
setdefaultÚ_mark_as_modified)rS   rl   rx   ÚfnameÚparserÚsectionr   s   &&&    r   Ú	set_valueÚConfiguration.set_value    s¼   € ä˜cÓ"ˆØ×#Ñ#Ô%à�~�~ˆ~Ðˆ~Ø×2Ñ2Ó4‰ˆàÒÜ,¨SÓ1‰MˆGð ×%Ñ% g×.Ò.Ø×"Ñ" 7Ô+Ø�J‰J�w eÔ,à�‰�T—^‘^Õ$×/Ñ/°°rÔ:Ø38�‰�T—^‘^Õ$ UÕ+¨CÑ0Ø×Ñ˜uÖ-r    c               ó    € V ^8„  d   QhRRRR/# )r   rl   r   r   rG   r   )r   s   "r   r   rH   ´   s   € ÷  2ñ  2˜sð  2 tñ  2r    c                óì  € Tp\        V4      pV P                  4        V P                  '       g   Q hV P                  4       w  r4WP                  V P                  ,          V,          9  d0   WP                  V P                  ,          9  d   \        RV 24      hVe€   \        V4      w  rVVP                  V4      '       d   VP                  WV4      '       g   \        R4      hVP                  V4      '       g   VP                  V4       V P                  W44        V P                  V P                  ,          V,          V R#   \         d#    T P                  T P                  ,          T  R# i ; i)z#Unset a value in the configuration.rn   Nz4Fatal Internal error [id=1]. Please report as a bug.)r'   rz   rF   ra   rQ   r   r-   r{   Úremove_optionri   Úremove_sectionr   rq   )rS   rl   rr   r€   r�   r‚   r   s   &&     r   Úunset_valueÚConfiguration.unset_value´   s/  € àˆÜ˜cÓ"ˆØ×#Ñ#Ô%à�~�~ˆ~Ðˆ~Ø×2Ñ2Ó4‰ˆð —|‘| D§N¡NÕ3°EÕ:Ô:ØŸ<™<¨¯©Õ7Ô7ä$ ~°h°ZÐ%@ÓAÐAàÒÜ,¨SÓ1‰MˆGà×"Ñ" 7×+Ò+°×0DÑ0DÀW×0SÒ0Sô )ØJóð ð
 —<‘< ×(Ò(Ø×%Ñ% gÔ.Ø×"Ñ" 5Ô1ð	2Ø—‘˜TŸ^™^Õ,¨UÕ3°CÒ8øÜô 	2Ø—‘˜TŸ^™^Õ,¨SÓ1ð	2ús   Ä%E Å)E3Å2E3c               ó   € V ^8„  d   QhRR/# rX   r   )r   s   "r   r   rH   Ö   s   € ÷ ñ �dñ r    c                óš  € V P                  4        V P                   Fr  w  r\        P                  RV4       \	        \
        P                  P                  V4      4        \        VR4      ;_uu_ 4       pVP                  V4       RRR4       Kt  	  R#   + '       g   i     K‰  ; i  \         d   p\        RT RT 24      hRp?ii ; i)z!Save the current in-memory state.zWriting to %sÚwNz:An error occurred while writing to the configuration file z: )rz   rR   ÚloggerÚinfor   r3   r4   ÚdirnameÚopenÚwriteÚOSErrorr   )rS   r€   r�   ÚfÚerrors   &    r   ÚsaveÚConfiguration.saveÖ   s§   € à×#Ñ#Ô%à!×3Ô3‰MˆEÜ�K‰K˜¨Ô/ô ”r—w‘w—‘ uÓ-Ô.ðÜ˜% ×%Ô%¨Ø—L‘L ”O÷ &Ñ%ó 4÷ &×%Ð%ûäô Ü(ØPØ�g˜R ˜wð(óð ûðús6   Á!B)Á5BÂB)ÂB&Â B)Â&B)Â)C
Â4CÃC
c               ó   € V ^8„  d   QhRR/# rX   r   )r   s   "r   r   rH   î   s   € ÷ Mñ M¨ñ Mr    c                	óx   € V P                   f   \        R4      h\        P                  RV P                   4       R # )Nz'Needed a specific file to be modifying.z$Will be working with %s variant only)rF   r   rŽ   Údebugr\   s   &r   rz   Ú$Configuration._ensure_have_load_onlyî   s+   € Ø�>‰>Ò!Ü$Ð%NÓOÐOÜ�‰Ð;¸T¿^¹^ÖLr    c               ó   € V ^8„  d   QhRR/# )r   r   zdict[str, dict[str, Any]]r   )r   s   "r   r   rH   ô   s   € ÷ 	ñ 	Ð6ñ 	r    c                óh   € / p\          F%  pVP                  V P                  V,          4       K'  	  V# )z3A dictionary representing the loaded configuration.)rO   rp   rQ   )rS   ÚretvalrT   s   &  r   rh   ÚConfiguration._dictionaryó   s/   € ð
 ˆç%ˆGØ�M‰M˜$Ÿ,™, wÕ/Ö0ñ &ð ˆr    c               ó   € V ^8„  d   QhRR/# rX   r   )r   s   "r   r   rH   ÿ   s   € ÷ ?ñ ? Dñ ?r    c                óâ  € \        V P                  4       4      pV\        P                  ,          R,          \        P
                  .8X  d   \        P                  R4       R# VP                  4        Fx  w  r#V Fm  pV P                  e)   W P                  8w  d   \        P                  RWB4       K9  V P                  W$4      pV P                  V,          P                  WE34       Ko  	  Kz  	  R# )z,Loads configuration from configuration files:é    é   NzZSkipping loading configuration files due to environment's PIP_CONFIG_FILE being os.devnullNz Skipping file '%s' (variant: %s))ÚdictÚiter_config_filesr;   r   r3   ÚdevnullrŽ   rš   ri   rF   Ú
_load_filerP   Úappend)rS   Úconfig_filesrT   Úfilesr€   r�   s   &     r   rZ   Ú Configuration._load_config_filesÿ   s·   € ä˜D×2Ñ2Ó4Ó5ˆØœŸ	™	Õ" 3Õ'¬B¯J©J¨<Ô7Ü�L‰LðAôñ à*×0Ñ0Ö2‰NˆGÛ�ð —>‘>Ò-°'¿^¹^Ô2KÜ—L‘LÐ!CÀUÔTÙàŸ™¨Ó8�ð —‘˜gÕ&×-Ñ-¨u¨oÖ>ó ó 3r    c               ó$   € V ^8„  d   QhRRRRRR/# )r   rT   r   r€   r   r   ÚRawConfigParserr   )r   s   "r   r   rH     s!   € ÷ 	ñ 	 $ð 	¨sð 	°ñ 	r    c                	óZ  € \         P                  R W4       V P                  V4      pVP                  4        Fo  pVP	                  V4      pV P
                  V,          P                  V/ 4       V P
                  V,          V,          P                  V P                  WE4      4       Kq  	  V# )z'For variant '%s', will try loading '%s')	rŽ   ÚverboseÚ_construct_parserÚsectionsri   rQ   r~   rp   Ú_normalized_keys)rS   rT   r€   r�   r‚   ri   s   &&&   r   r§   ÚConfiguration._load_file  s‡   € Ü�‰Ð@À'ÔQØ×'Ñ'¨Ó.ˆà—‘Ö(ˆGØ—L‘L Ó)ˆEØ�L‰L˜Õ!×,Ñ,¨U°BÔ7Ø�L‰L˜Õ! %Õ(×/Ñ/°×0EÑ0EÀgÓ0UÖVñ )ð
 ˆr    c               ó    € V ^8„  d   QhRRRR/# )r   r€   r   r   r­   r   )r   s   "r   r   rH   !  s   € ÷ ñ  sð ¨ñ r    c                	óX  € \         P                  ! 4       p\        P                  P	                  V4      '       d,   \
        P                  ! R 4      p VP                  WR7       V# V#   \         d    \        RT R2TR7      h\         P                   d   p\        TR7      hRp?ii ; i)F)Úencodingzcontains invalid z characters)Úreasonr€   )r•   N)Úconfigparserr­   r3   r4   ÚexistsÚlocaleÚgetpreferredencodingÚreadÚUnicodeDecodeErrorr   ÚError)rS   r€   r�   Úlocale_encodingr•   s   &&   r   r°   ÚConfiguration._construct_parser!  s    € Ü×-Ò-Ó/ˆô
 �7‰7�>‰>˜%× Ò Ü$×9Ò9¸%Ó@ˆOð
EØ—‘˜E�Ô<ð ˆˆvˆøô &ô ä7Ø.¨Ð.?¸{ÐKØôð ô  ×%Ñ%ô Eä7¸eÔDÐDûðEús   ÁA( Á(.B)ÂB)ÂB$Â$B)c               ó   € V ^8„  d   QhRR/# rX   r   )r   s   "r   r   rH   6  s   € ÷ 
ñ 
¨ñ 
r    c                ó  € V P                   \        P                  ,          P                  R/ 4       V P                   \        P                  ,          R,          P	                  V P                  RV P                  4       4      4       R# )z.Loads configuration from environment variablesz:env:N)rQ   r;   r   r~   rp   r²   Úget_environ_varsr\   s   &r   r[   Ú$Configuration._load_environment_vars6  sX   € à�‰”U—]‘]Õ#×.Ñ.¨w¸Ô;Ø�‰”U—]‘]Õ# GÕ,×3Ñ3Ø×!Ñ! '¨4×+@Ñ+@Ó+BÓCö	
r    c               ó$   € V ^8„  d   QhRRRRRR/# )r   r‚   r   ri   rf   r   údict[str, Any]r   )r   s   "r   r   rH   =  s$   € ÷ ñ ØðØ#<ðà	ñr    c                óZ   € / pV F"  w  rEVR,           \        V4      ,           pWSV&   K$  	  V# )z¿Normalizes items to construct a dictionary with normalized keys.

This routine is where the names become keys and are made the same
regardless of source - configuration files or environment.
r*   )r'   )rS   r‚   ri   Ú
normalizedr   Úvalrl   s   &&&    r   r²   ÚConfiguration._normalized_keys=  s7   € ð ˆ
Û‰IˆDØ˜C•-¤/°$Ó"7Õ7ˆCØ!�s‹Oñ ð Ðr    c               ó   € V ^8„  d   QhRR/# )r   r   zIterable[tuple[str, str]]r   )r   s   "r   r   rH   K  s   € ÷ $ñ $Ð";ñ $r    c              #  óà   "  € \         P                  P                  4        FG  w  rVP                  R4      '       g   K  VR,          P	                  4       pV\
        9  g   KB  W23x € KI  	  R# 5i)z@Returns a generator with all environmental vars with prefix PIP_ÚPIP_:é   NNN)r3   Úenvironri   Ú
startswithr$   ÚENV_NAMES_IGNORED)rS   rl   rÉ   r   s   &   r   rÃ   ÚConfiguration.get_environ_varsK  sL   é € äŸ
™
×(Ñ(Ö*‰HˆCØ�~‰~˜f×%Ô%Ø˜2•w—}‘}“�ØÔ0Ö0Ø˜)”Oó	 +ùs   ‚8A.¿A.Á#A.c               ó   € V ^8„  d   QhRR/# )r   r   z Iterable[tuple[Kind, list[str]]]r   )r   s   "r   r   rH   T  s   € ÷  ñ  Ð#Cñ  r    c              #  óT  "  € \         P                  P                  RR4      p\        4       p\        P
                  V\        P
                  ,          3x € V P                  '       * ;'       d/    T;'       d     \         P                  P                  V4      '       * pV'       d*   \        P                  V\        P                  ,          3x € \        P                  V\        P                  ,          3x € Ve   \        P                  V.3x € R# \        P                  . 3x € R# 5i)a`  Yields variant and configuration files associated with it.

This should be treated like items of a dictionary. The order
here doesn't affect what gets overridden. That is controlled
by OVERRIDE_ORDER. However this does control the order they are
displayed to the user. It's probably most ergonomic to display
things in the same order as OVERRIDE_ORDER
ÚPIP_CONFIG_FILEN)r3   rÏ   Úgetr@   r;   r   rD   r4   r¹   r   r   r   )rS   Úenv_config_filer©   Úshould_load_user_configs   &   r   r¥   ÚConfiguration.iter_config_filesT  sÏ   é € ô Ÿ*™*Ÿ.™.Ð):¸DÓAˆÜ.Ó0ˆä�l‰l˜L¬¯©Õ6Ð6Ò6ð '+§m¡mÔ"3÷ #
ð #
Ø×?Ð?¤§¡§¡¨Ó ?ô9
Ð÷ #ä—*‘*˜l¬5¯:©:Õ6Ð6Ò6ô �j‰j˜,¤u§z¡zÕ2Ð2Ò2àÒ&Ü—)‘)˜oÐ.Ð.Ô.ä—)‘)˜R�-Ôùs   ‚A5D(Á8,D(Â%BD(c               ó    € V ^8„  d   QhRRRR/# )r   rT   r   r   rÆ   r   )r   s   "r   r   rH   t  s   € ÷ %ñ %¨Dð %°^ñ %r    c                ó(   € V P                   V,          # )z#Get values present in a config file)rQ   )rS   rT   s   &&r   Úget_values_in_configÚ"Configuration.get_values_in_configt  s   € à�|‰|˜GÕ$Ð$r    c               ó   € V ^8„  d   QhRR/# )r   r   ztuple[str, RawConfigParser]r   )r   s   "r   r   rH   x  s   € ÷ ñ Ð'Bñ r    c                	óœ   € V P                   '       g   Q hV P                  V P                   ,          pV'       g   \        R 4      hVR,          # )z4Fatal Internal error [id=2]. Please report as a bug.éÿÿÿÿ)rF   rP   r   )rS   Úparserss   & r   ra   Ú#Configuration._get_parser_to_modifyx  sA   € à�~�~ˆ~Ðˆ~Ø—-‘- §¡Õ/ˆßä$ØFóð ð
 �r�{Ðr    c               ó$   € V ^8„  d   QhRRRRRR/# )r   r€   r   r�   r­   r   rG   r   )r   s   "r   r   rH   †  s!   € ÷ =ñ = sð =°Oð =Èñ =r    c                	óf   € W3pW0P                   9  d   V P                   P                  V4       R # R # ©N)rR   r¨   )rS   r€   r�   Úfile_parser_tuples   &&& r   r   ÚConfiguration._mark_as_modified†  s0   € Ø"˜OÐØ×$:Ñ$:Ô:Ø×"Ñ"×)Ñ)Ð*;Ö<ñ ;r    c               ó   € V ^8„  d   QhRR/# )r   r   r   r   )r   s   "r   r   rH   ‹  s   € ÷ Bñ B˜#ñ Br    c                	óP   € V P                   P                   R V P                  : R2# )Ú(Ú))rU   Ú__name__rh   r\   s   &r   Ú__repr__ÚConfiguration.__repr__‹  s'   € Ø—.‘.×)Ñ)Ð*¨!¨D×,<Ñ,<Ñ+?¸qÐAÐAr    )rQ   rR   rP   rD   rF   rå   )rì   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rK   r]   rc   ri   ru   rƒ   r‰   r–   rz   Úpropertyrh   rZ   r§   r°   r[   r²   rÃ   r¥   rÜ   ra   r   rí   Ú__static_attributes__Ú__classcell__)rU   s   @r   rB   rB   Y   s’   ø† ñ÷Gò Gõ**õõ(õBõ.õ( 2õDõ0Mð
 ô	ó ð	õ?õ.	õõ*
õõ$õ õ@%õõ=÷
Bó Br    rB   )ÚversionÚhelp)+rò   Ú
__future__r   r¸   rº   r3   r7   Úcollections.abcr   Útypingr   r   Úpip._internal.exceptionsr   r   Úpip._internal.utilsr   Úpip._internal.utils.compatr	   Úpip._internal.utils.loggingr
   Úpip._internal.utils.miscr   r   r­   r   r   r6   rÑ   r;   r   r   r   r   r   rO   rL   rì   rŽ   r'   r-   r@   rB   r   r    r   Ú<module>r      sÚ   ðñõ #ã Û Û 	Û 
Ý $ß ÷õ (Ý .Ý 1ß 5à×.Ñ.€Ùˆv�sÓ€ç&‘)¨J€Ø%Ð ñ 	Ø	ØØ	ØØô	€ð —‘˜uŸz™z¨5¯:©:°u·y±yÀ%Ç-Á-ÐO€Ø—*‘*˜eŸl™l¨E¯J©JÐ6€á	�8Ó	€õõõ÷&sBó sBr    