+
    …rœiP  ã                   ó\   € R t ^ RIt^ RIHt ^ RIHt Rt  ! R R]4      t ! R R]4      t	R# )	zA
This module provides common classes for the gitignore patterns.
N)ÚRegexPattern©ÚAnyStrÚlatin1c                   ó`   a € ] tR t^t o RtRt]V 3R lR l4       t]V 3R lR l4       tRt	V t
R# )Ú_GitIgnoreBasePatternzÀ
.. warning:: This class is not part of the public API. It is subject to
        change.

The :class:`_GitIgnoreBasePattern` class is the base implementation for a
compiled gitignore pattern.
c                ó&   <€ V ^8„  d   QhRS[ RS[ /# )é   ÚsÚreturnr   )ÚformatÚ__classdict__s   "€ÚB/usr/lib/python3/dist-packages/pathspec/patterns/gitignore/base.pyÚ__annotate__Ú"_GitIgnoreBasePattern.__annotate__   s   ø€ ÷ ñ ‰vð ™&ñ ó    c                ó6  € \        V \        4      '       d
   \        pT pMB\        V \        4      '       d   \        pV P                  \        4      pM\        RV : R24      hRP                  R V 4       4      pV\        J d   VP                  \        4      # V# )zð
Escape special characters in the given string.

*s* (:class:`str` or :class:`bytes`) a filename or a string that you want to
escape, usually before adding it to a ".gitignore".

Returns the escaped string (:class:`str` or :class:`bytes`).
zs:z! is not a unicode or byte string.Ú c              3   ó<   "  € T F  qR 9   d   RV 2MTx € K  	  R# 5i)z[]!*#?Ú\N© )Ú.0Úxs   & r   Ú	<genexpr>Ú/_GitIgnoreBasePattern.escape.<locals>.<genexpr>2   s   é € ÐJÁ6¸a¨¤M˜"˜Q˜C™°qÔ8Ã6ùs   ‚)Ú
isinstanceÚstrÚbytesÚdecodeÚ_BYTES_ENCODINGÚ	TypeErrorÚjoinÚencode)r
   Úreturn_typeÚstringÚ
out_strings   &   r   ÚescapeÚ_GitIgnoreBasePattern.escape   s…   € ô �”3×ÒÜ€;Ø�6Ü�!”U×ÒÜ€;Ø�H‰H”_Ó%�6ä	�R˜‘uÐ=Ð>Ó	?Ð?ð �w‰wÑJÁ6ÓJÓJ€*à”EÓØ
×
Ñ
œOÓ
,Ð,à
Ðr   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# )r	   Úpatternr   )r   )r   r   s   "€r   r   r   :   s   ø€ ÷ nñ n¡cð n©cñ nr   c                óR  € RpRp^ \        V 4      rCW48  Edy   W,          pV^,          pV'       d"   RpV\        P                  ! V4      ,          pKA  VR8X  d   RpKL  VR8X  d   VR,          pK^  VR8X  d   VR,          pKp  VR	8X  dé   TpWd8  d$   W,          R
8X  g   W,          R8X  d
   V^,          pWd8  d   W,          R8X  d
   V^,          pWd8  d   W,          R8w  d   V^,          pK  Wd8  dr   V^,          pR	pW,          R
8X  d   VR,          pV^,          pMW,          R8X  d   VR,          pV^,          pWpW6 P                  RR4      ,          pW',          pTpEKS  VR,          pEK_  V\        P                  ! V4      ,          pEK  V'       d   \	        RV : 24      hV# )a  
Translates the glob pattern to a regular expression. This is used in the
constructor to translate a path segment glob pattern to its corresponding
regular expression.

*pattern* (:class:`str`) is the glob pattern.

Returns the regular expression (:class:`str`).
Fr   r   TÚ*z[^/]*Ú?z[^/]Ú[Ú!Ú^Ú]z\\z\[z9Escape character found with no next character to escape: )ÚlenÚrer&   ÚreplaceÚ
ValueError)r)   r&   ÚregexÚiÚendÚcharÚjÚexprs   &       r   Ú_translate_segment_globÚ-_GitIgnoreBasePattern._translate_segment_glob9   s•  € ð €&Ø
€%ØŒc�'‹l€SØ	�à
�*€4Øˆ…6€1çà€FØ	ŒR�YŠY�t‹_Õ‚Eà�Œà‚Fà�Œð 
ˆWÕ‚Eà�Œð 
ˆV…O‚Eà�Œð 	
€Að 	„w�G•J #Ô%¨­°sÔ):Øˆ!…V€Qð 	„w�7•: Ô$Øˆ!…V€Qð Œ'�g•j CÔ'Øˆ!…V‚Qà„wð ˆ!…V€QØ€Tà�
�cÔà
ˆc…k€dØˆ1…f�aØ
�*˜Ô
ð ˆc…k€dØˆ1…f€að 
�Qˆ\×!Ñ! $¨Ó/Õ/€Tð …]€Uð 
ƒQð
 ˆe…^ƒUð 
ŒR�YŠY�t‹_ÕƒEçÜ	Ø?À¹{ÐKó
ð ð 
€,r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú	__slots__Ústaticmethodr&   r;   Ú__static_attributes__Ú__classdictcell__)r   s   @r   r   r      s9   ø‡ € ñð €à÷ó ðð4 ÷nó önr   r   c                   ó   € ] tR t^«tRtRtR# )ÚGitIgnorePatternErrorzR
The :class:`GitIgnorePatternError` class indicates an invalid gitignore
pattern.
r   N)r=   r>   r?   r@   rA   rD   r   r   r   rG   rG   «   s   † ñó r   rG   )
rA   r2   Úpathspec.patternr   Úpathspec._typingr   r   r   r4   rG   r   r   r   Ú<module>rJ      s@   ðñó 
õõ	ð €ðô
V˜Lô Vôr˜Jö r   