R
    £¤Òjs1  ã                   óì   €   Q s , QNs] PHsQsQsQs\\*           sQs\Q*           Q*           sQ	s	Q
s
\\*           \
*           \*           sQQ ks- s  Q Q2      s\ 2       s  Q Q2      s  Q Q2      sP! )an  A collection of string constants.

Public module variables:

whitespace -- a string containing all ASCII whitespace
ascii_lowercase -- a string containing all ASCII lowercase letters
ascii_uppercase -- a string containing all ASCII uppercase letters
ascii_letters -- a string containing all ASCII letters
digits -- a string containing all ASCII decimal digits
hexdigits -- a string containing all ASCII hexadecimal digits
octdigits -- a string containing all ASCII octal digits
punctuation -- a string containing all ASCII punctuation characters
printable -- a string containing all ASCII characters considered printable

Ú	FormatterÚTemplatez 	
ÚabcdefghijklmnopqrstuvwxyzÚABCDEFGHIJKLMNOPQRSTUVWXYZÚ
0123456789ÚabcdefÚABCDEFÚ01234567z !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~c                óˆ   €   S9%       f    QO                  [        [        O                  U O	                  U2      2      2      ! )au  capwords(s [,sep]) -> string

Split the argument into words using split, capitalize each
word using capitalize, and join the capitalized words using
join.  If the optional second argument sep is absent or None,
runs of whitespace characters are replaced by a single space
and leading and trailing whitespace are removed, otherwise
sep is used to split and join the words.

Ú )ÚjoinÚmapÚstrÚ
capitalizeÚsplit)ÚsÚseps   &&Ú,/usr/local/lib/python3.15/string/__init__.pyÚcapwordsr   %   s.   � ð �JˆJ�3×ÑœS¤§¡°·±¸³Ó>Ó?Ð?ó    c                   ó,   ` €   \ sQ s]7s n QQ ksQsU sP! )Ú_TemplatePatternc                ó0   €   Ue   U ! UO                  2       ! ©N)Ú_compile_pattern)ÚselfÚinstanceÚclss   &&&r   Ú__get__Ú_TemplatePattern.__get__9   s   � ØŠ;ØˆKØ×#Ñ#Ó%Ð%r   © r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r   r   7   s   ø‡ � ÷&ò &r   r   c                   óŒ   ` `€   \ sQ s]@s nQsQsQsPsPs\	s
U 1Q ks\Q 2       sQ sQ s\1Q ks\1Q	 ksQ
 sQ sQsUsU 9s! )r   z.A string class for supporting $-substitutions.Ú$z(?a:[_a-z][_a-z0-9]*)c                óF   :€   [         RU _  2        U O                  2        P! r   )ÚsuperÚ__init_subclass__r   )r   Ú	__class__s   &€r   r-   ÚTemplate.__init_subclass__N   s   ø� Ü‰Ñ!Ô#Ø×ÑÖr   c           	     óì  €   ] PHoU O                  O                  Q[        2      o[	        V!O
                  2      %       c   U! U[        I cW   UO                  U O                  2      oU O                  oU O                  9%       f    U O                  oQU QU QU QU Q0	oU O                  e   UO                  U m
        UO                  V O                  UO                  *          2      9p`m        U! )é    Úpatternz
            z(?:
              (?P<escaped>zC)  |   # Escape sequence of two delimiters
              (?P<named>zJ)       |   # delimiter and a Python identifier
              {(?P<braced>z�)} |   # delimiter and a braced identifier
              (?P<invalid>)             # Other ill-formed delimiter exprs
            )
            )ÚreÚ__dict__Úgetr   Ú
isinstanceÚPatternÚescapeÚ	delimiterÚ	idpatternÚbraceidpatternÚflagsÚ
IGNORECASEÚcompileÚVERBOSEr2   )r   r3   r2   ÚdelimÚidÚbidÚpats   &      r   r   ÚTemplate._compile_patternR   sÝ   � ãð —,‘,×"Ñ" 9Ô.>Ó?ˆÜ�gŸz™z×*Ò*àˆNØÔ&Ó&Ø—I‘I˜cŸm™mÓ,ˆEØ—‘ˆBØ×$Ñ$×5Ð5¨¯©ˆCðØˆGð Ø ˜'ð "Ø˜ð Ø˜5ð !ð	ˆGð �9‰9ÒØŸ™ˆCŒIØŸJ™J w·	±	¸B¿J¹JÕ0FÓGÐGˆŒkØˆ
r   c                ó   €   Vm         P! r   ©Útemplate)r   rG   s   &&r   Ú__init__ÚTemplate.__init__o   s   � Ø Žr   c                ó  €   UO                  Q 2      oU O                  PU O                  P	Q5      oU%       f   ]o]oL/U[        PO	                  UPP 2      2      *
          o[        U2      o[        QVT1*          2      g)Úinvalid)Úkeependsz.Invalid placeholder in string: line %d, col %d)ÚstartrG   Ú
splitlinesÚlenr   Ú
ValueError)r   ÚmoÚiÚlinesÚcolnoÚlinenos   &&    r   Ú_invalidÚTemplate._invalidt   s|   � Ø�H‰H�YÓˆØ—‘˜b˜qÐ!×,Ñ,°dÐ,Ó;ˆßØˆEØ‰Fàœ˜BŸG™G E¨#¨2 JÓ/Ó0Õ0ˆEÜ˜“ZˆFÜÐIØ ˜õ)ó *ð 	*r   c               óª   ` `€   R[         I c   UnLU%       c   ] QHGo U UR2      nUU 1Q koR O                  O	                  UR O
                  2      ! )r1   ©ÚChainMapc                 ó8  :€   U O                  Q 2      9%       f    U O                  Q2      oUd   [        RU*          2      ! U O                  Q2      d   RO                  ! U O                  Q2      d   RO                  U 2       [	        QRO
                  2      g©ÚnamedÚbracedÚescapedrK   ú#Unrecognized named group in pattern)Úgroupr   r9   rV   rP   r2   ©rQ   r]   Úmappingr   s   & €€r   ÚconvertÚ$Template.substitute.<locals>.convert‡   s‚   ø� à—H‘H˜WÓ%×;Ð;¨¯©°(Ó);ˆEØÒ Ü˜7 5�>Ó*Ð*Ø�x‰x˜	Ó"Ò.Ø—~‘~Ð%Ø�x‰x˜	Ó"Ò.Ø—‘˜bÔ!ÜÐBØ!Ÿ\™\ó+ð +r   ©Ú_sentinel_dictÚcollectionsrZ   r2   ÚsubrG   ©r   rc   ÚkwsrZ   rd   s   bb,  r   Ú
substituteÚTemplate.substitute€   sD   ù� Ø”nÓ$Ø‰GßÝ,Ù˜s GÓ,ˆGö
	+ð �|‰|×Ñ ¨¯©Ó7Ð7r   c               óª   ` `€   R[         I c   UnLU%       c   ] QHGo U UR2      nUU 1Q koR O                  O	                  UR O
                  2      ! )r1   rY   c                 óz  :€   U O                  Q 2      9%       f    U O                  Q2      oUd    [        RU*          2      ! U O                  Q2      d   RO                  ! U O                  Q2      d   U O                  2       ! [	        QRO
                  2      g [         c    S O                  2       t ! h 9 hr\   )ra   r   ÚKeyErrorr9   rP   r2   rb   s   & €€r   rd   Ú)Template.safe_substitute.<locals>.convert›   s¦   ø� Ø—H‘H˜WÓ%×;Ð;¨¯©°(Ó);ˆEØÒ ð&Ü˜w u�~Ó.Ð.ð �x‰x˜	Ó"Ò.Ø—~‘~Ð%Ø�x‰x˜	Ó"Ò.Ø—x‘x“zÐ!ÜÐBØ!Ÿ\™\ó+ð +øô  ô &ØŸ8™8›:Ò%ð&ús   ²B Â	B:Â&B:Â9B:rf   rj   s   bb,  r   Úsafe_substituteÚTemplate.safe_substitute”   sD   ù� Ø”nÓ$Ø‰GßÝ,Ù˜s GÓ,ˆGö	+ð �|‰|×Ñ ¨¯©Ó7Ð7r   c                ó6  €   U O                   O                  U O                  2      F   Dm  oUO                  Q 2      d     P
! UO                  Q2      d   J/  UO                  Q2      d   JD  UO                  Q2      d   JY  [	        QU O                   2      g	  P	! )rK   r]   r^   r_   r`   )r2   ÚfinditerrG   ra   rP   )r   rQ   s   & r   Úis_validÚTemplate.is_validª   s|   � Ø—,‘,×'Ñ'¨¯©×6ˆBØ�x‰x˜	Ó"Ò.ÛØ—‘˜Ó!Ô)Ø—H‘H˜XÓ&Ô.Ø—H‘H˜YÓ'Ô/ô !Ð!FØ—L‘Ló"ð "ñ 7ñ r   c                ó|  €   , oU O                   O                  U O                  2      F   DŽ  oUO                  Q 2      9%       f    UO                  Q2      oUd   V17  c   UO	                  U2       JJ  Ud   JP  UO                  Q2      d   Je  UO                  Q2      d   Jz  [        QU O                   2      g	  U! )r]   r^   rK   r_   r`   )r2   ru   rG   ra   ÚappendrP   )r   ÚidsrQ   r]   s   &   r   Úget_identifiersÚTemplate.get_identifiers·   s�   � ØˆØ—,‘,×'Ñ'¨¯©×6ˆBØ—H‘H˜WÓ%×;Ð;¨¯©°(Ó);ˆEØÒ  UÔ%5à—
‘
˜5Ö!Ø”-Ø—H‘H˜YÓ'Ô/Ø—H‘H˜YÓ'Ô/ô !Ð!FØ—L‘Ló"ð "ñ 7ð ˆ
r   rF   )r!   r"   r#   r$   Ú__doc__r9   r:   r;   r<   r   r2   r-   Úclassmethodr   rH   rV   rg   rl   rr   rv   r{   r%   r&   Ú__classcell__)r.   r(   s   @@r   r   r   @   si   ù‡ � Ù8à€Ið
 )€IØ€NØ€Eà€Gõð ñó ðò8!ò

*ð "0ô 8ð( '5ô 8ò,÷ò r   c                   ó`   ` €   \ sQ s]Îs n QsQ sQ sQQ ksQ sQ s	Q s
Q sQ	 sQ
 sQsU sP! )r   z3See PEP 3101 for details and purpose of this class.c               ó(   €   U O                  VU2      ! r   )Úvformat)r   Úformat_stringÚargsÚkwargss   ""*,r   ÚformatÚFormatter.formatÑ   s   � Ø�|‰|˜M°Ó8Ð8r   c                ój   €   [        2       oU O                  VV4]2      v  qVU O                  VBU2       U! )é   )ÚsetÚ_vformatÚcheck_unused_args)r   rƒ   r„   r…   Ú	used_argsÚresultÚ_s   &&&&   r   r‚   ÚFormatter.vformatÔ   s2   � Ü“Eˆ	Ø—M‘M -°vÈ!ÓL‰	ˆØ×Ñ˜y°Ô7Øˆr   c                ó¢  €   U] 6  c   [        Q2      g, oU O                  U2      F   CD  v  q‰q«U%       c   UO                  U2       U	e   J&  [        O                   U	2      v  qÍUP6X  c.   UP
I c   [        Q2      g[        U2      U	*           o	U]*          oL+[        U[        2      %       c   U%       c   [        Q2      gP
oU O                  V’U2      v  qïUO                  U2       U O                  Vë2      oU O                  V¢UVE]*
          UQ5      v  q¦UO                  U O                  Vê2      2       CJ  	  PO                  U2      U1! )r1   zMax string recursion exceededzJcannot switch from manual field specification to automatic field numberingzJcannot switch from automatic field numbering to manual field specification)Úauto_arg_index)rP   Úparsery   Ú_stringÚformatter_field_name_splitr   r6   ÚintÚ	get_fieldÚaddÚconvert_fieldr‹   Úformat_fieldr   )r   rƒ   r„   r…   r�   Úrecursion_depthr’   rŽ   Úliteral_textÚ
field_nameÚformat_specÚ
conversionÚfield_firstr�   ÚobjÚarg_useds   &&&&&&&         r   r‹   ÚFormatter._vformatÚ   sU  � à˜QÔÜÐ<Ó=Ð=Øˆà—
‘
˜=×)Ð)ñ >ˆL k÷ Ø—‘˜lÔ+ð Ô%ô
 ")×!CÒ!CÀJÓ!O‘�Ø "Ô$Ø%¨Ó.Ü(ð *5ó 6ð 6ô "% ^Ó!4°zÕ!A�JØ" aÕ'‘NÜ ¬S×1Ò1ß%Ü(ð *9ó :ð :ð
 &+�Nð !%§¡¨zÀÓ H‘�Ø—‘˜hÔ'ð ×(Ñ(¨Ó9�ð /3¯m©mØ vØ¨qÕ0Ø#1ð /<ó /3Ñ+�ð —‘˜d×/Ñ/°ÓA×BñY *ð\ �w‰w�v‹ Ð.Ð.r   c                óP   €   [        U[        2      %       c	   V!*          ! V1*          ! r   )r6   r–   )r   Úkeyr„   r…   s   &&&&r   Ú	get_valueÚFormatter.get_value  s   � Ü�cœ3×ÒØ•9Ðà•;Ðr   c                ó   €   P! r   r    )r   r�   r„   r…   s   &&&&r   rŒ   ÚFormatter.check_unused_args  s   � Ùr   c                ó   €   [        V2      ! r   )r†   )r   Úvaluerž   s   &&&r   rš   ÚFormatter.format_field  s   � Ü�eÓ)Ð)r   c                ó°   €   Ue   U! UQ6X  c   [        U2      ! UQ6X  c   [        U2      ! UQ6X  c   [        U2      ! [        QO	                  U2      2      g)Nr   ÚrÚaz"Unknown conversion specifier {0!s})r   ÚreprÚasciirP   r†   )r   r«   rŸ   s   &&&r   r™   ÚFormatter.convert_field  sZ   � àÒØˆLØ˜3ÔÜ�u“:ÐØ˜3ÔÜ˜“;ÐØ˜3ÔÜ˜“<ÐÜÐ=×DÑDÀZÓPÓQÐQr   c                ó0   €   [         O                   U2      ! )a	  
Return an iterable that contains tuples of the form
(literal_text, field_name, format_spec, conversion).

*field_name* can be None, in which case there's no object
to format and output; otherwise, it is looked up and
formatted with *format_spec* and *conversion*.
)r”   Úformatter_parser)r   rƒ   s   &&r   r“   ÚFormatter.parse(  s   � ô ×'Ò'¨Ó6Ð6r   c                ó°   €   [         O                   U2      v  qEU O                  VBU2      oSF   D"  v  qxU%       c   [        Vh2      oJ  Vh*          oJ$  	  Vd1! )z¹Find the object referenced by a given field name.

The field name *field_name* can be for instance "0.name"
or "lookup[3]". The *args* and *kwargs* arguments are
passed to get_value().
)r”   r•   r¦   Úgetattr)	r   r�   r„   r…   ÚfirstÚrestr¡   Úis_attrrR   s	   &&&&     r   r—   ÚFormatter.get_field3  sQ   � ô ×8Ò8¸ÓD‰ˆØ�n‰n˜U¨&Ó1ˆô ‰JˆGßÜ˜c“o’à•f’ñ	 ð
 ˆzÐr   r    )r1   )r!   r"   r#   r$   r}   r†   r‚   r‹   r¦   rŒ   rš   r™   r“   r—   r%   r&   r'   s   @r   r   r   Î   s<   ø‡ � Ù=ò9òô4/òlòò*ò
Rò	7÷ð r   )Úascii_lettersÚascii_lowercaseÚascii_uppercaser   ÚdigitsÚ	hexdigitsÚ	octdigitsÚ	printableÚpunctuationÚ
whitespacer   r   r   )r}   Ú__all__r”   rÄ   r½   r¾   r¼   r¿   rÀ   rÁ   rÃ   rÂ   r   rg   r   r   r   r    r   r   Ú<module>rÆ      sž   ññò 2€ó ð €
Ø.€Ø.€Ø /Õ1€Ø	€Ø�XÕ Õ(€	Ø€	Ø5€Ø�]Õ" [Õ0°:Õ=€	ô
@ð €÷&ñ &ñ $Ó%Ð ÷Eñ E÷\uó ur   