+
    iC0  c                   s    R t . ROt^ RItRtRtRt]],           tRt]R,           R	,           tR
t	Rt
]],           ]
,           ],           tRR lt/ t ! R R4      t]! 4       t ! R R4      t ! R R4      tR# )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TemplateNz 	
ZabcdefghijklmnopqrstuvwxyzZABCDEFGHIJKLMNOPQRSTUVWXYZZ
0123456789ZabcdefZABCDEFZ01234567z !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~c                s    T;'       g    RP                  \        \        P                  V P	                  V4      4      4      # )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.

Z )joinZmapstrZ
capitalizeZsplit)sZsep   &&(/usr/lib64/python3.14/string/__init__.pycapwordsr   %   s.     JJ3S>??    c                   s*   a  ] tR t^7t o RR ltRtV tR# )_TemplatePatternNc                s.    Vf   V # VP                  4       # N)_compile_pattern)selfZinstancecls   &&&r   __get__Z_TemplatePattern.__get__9   s    ;K##%%r    r
   )__name__
__module____qualname____firstlineno__r   __static_attributes____classdictcell____classdict__   @r   r	   r	   7   s     & &r   r	   c                   s   a a ] tR t^@t oRtRtRtRtRt]	t
V 3R lt]R 4       tR tR t]3R	 lt]3R
 ltR tR tRtVtV ;t# )r   z.A string class for supporting $-substitutions.Z$z(?a:[_a-z][_a-z0-9]*)Nc                sD   < \         SV `  4        V P                  4        R # r
   )Zsuper__init_subclass__r   )r   	__class__s   &r   r   ZTemplate.__init_subclass__N   s    !#r   c           	     s   ^ RI pV P                  P                  R\        4      pV\        J dW   VP	                  V P
                  4      pV P                  pV P                  ;'       g    V P                  pRV RV RV RV R2	pV P                  f   VP                  V n        VP                  W P                  VP                  ,          4      ;q`n        V# )    N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
            )
            )reZ__dict__Zgetr	   Zescape	delimiter	idpatternbraceidpatternflagsZ
IGNORECASEZcompileZVERBOSEr   )r   r   r   ZdelimZidZbidZpats   &      r   r   ZTemplate._compile_patternR   s    ,,""9.>?&&IIcmm,EB$$55CG  ' " 5 !	G 99CIJJw		BJJ0FGGk
r   c                s    Wn         R # r
   template)r   r$   r   r   __init__ZTemplate.__init__h   s     r   c                s    VP                  R 4      pV P                  RV P                  RR7      pV'       g   ^p^pM/V\        RP	                  VRR 4      4      ,
          p\        V4      p\        RWT3,          4      h)invalidNT)Zkeepends z.Invalid placeholder in string: line %d, col %di)Zstartr$   Z
splitlinesZlenr   
ValueError)r   moiZlinesZcolnoZlinenos   &&    r   _invalidZTemplate._invalidm   s|    HHYbq!,,d,;EFBGGE#2J/00EZFI ) * 	*r   c                  a a S\         J d   VoMV'       d   ^ RIHp V! VS4      oVV 3R lpS P                  P	                  VS P
                  4      # )r   ChainMapc                 s6  < V P                  R 4      ;'       g    V P                  R4      pVe   \        SV,          4      # V P                  R4      e   SP                  # V P                  R4      e   SP                  V 4       \	        RSP
                  4      hnamedbracedescapedr&   #Unrecognized named group in pattern)groupr   r   r+   r(   r   r)   r0   mappingr      & r   convertZ$Template.substitute.<locals>.convert   s    HHW%;;();E 75>**xx	".~~%xx	".b!B!\\+ +r   _sentinel_dictZcollectionsr.   r   Zsubr$   r   r6   Zkwsr.   r8      bb,  r   
substituteZTemplate.substitutey   sD    n$G,sG,G
	+ ||77r   c               r,   )r   r-   c                 sx  < V P                  R 4      ;'       g    V P                  R4      pVe    \        SV,          4      # V P                  R4      e   SP                  # V P                  R4      e   V P                  4       # \	        RSP
                  4      h  \         d    T P                  4       u # i ; ir/   )r4   r   ZKeyErrorr   r(   r   r5   r7   r   r8   Z)Template.safe_substitute.<locals>.convert   s    HHW%;;();E &wu~.. xx	".~~%xx	".xxz!B!\\+ +   &88:%&s   B B98B9r9   r;   r<   r   safe_substituteZTemplate.safe_substitute   sD    n$G,sG,G	+ ||77r   c                s0   V P                   P                  V P                  4       Fl  pVP                  R 4      e    R# VP                  R4      e   K.  VP                  R4      e   KC  VP                  R4      e   KX  \	        RV P                   4      h	  R# )r&   Fr0   r1   r2   r3   T)r   finditerr$   r4   r(   )r   r)   s   & r   is_validZTemplate.is_valid   s|    ,,''6Bxx	".!)HHX&.HHY'/ !!FLL" " 7 r   c                sx   . pV P                   P                  V P                  4       F  pVP                  R 4      ;'       g    VP                  R4      pVe   W19  d   VP	                  V4       KJ  Ve   KP  VP                  R4      e   Ke  VP                  R4      e   Kz  \        RV P                   4      h	  V# )r0   r1   r&   r2   r3   )r   r?   r$   r4   appendr(   )r   Zidsr)   r0   s   &   r   get_identifiersZTemplate.get_identifiers   s    ,,''6BHHW%;;();E U%5

5!-HHY'/HHY'/ !!FLL" " 7 
r   r#   )r   r   r   r   __doc__r   r    r!   r"   r	   r   r   Zclassmethodr   r%   r+   r:   r=   r>   r@   rB   r   r   Z__classcell__)r   r   s   @@r   r   r   @   si     8I
 )INEG  *!

* "0 8( '5 8, r   c                   sZ   a  ] tR t^t o R tR tRR ltR tR tR t	R t
R tR	 tR
tV tR# )r    c               s&    V P                  WV4      # r
   )vformat)r   format_stringargskwargss   ""*,r   formatZFormatter.format   s    ||M88r   c                sh    \        4       pV P                  WW4^4      w  rVV P                  WBV4       V# )i   )Zset_vformatcheck_unused_args)r   rE   rF   rG   	used_argsresult_s   &&&&   r   rD   ZFormatter.vformat   s2    E	MM-v!L	y7r   c           
     s   V^ 8  d   \        R4      h. pV P                  V4       EF  w  rrV'       d   VP                  V4       V	f   K&  \        P                  ! V	4      w  rVR8X  d.   VRJ d   \        R4      h\        V4      V	,           p	V^,          pM+\        V\        4      '       d   V'       d   \        R4      hRpV P                  WV4      w  rVP                  V4       V P                  W4      pV P                  WVWE^,
          VR7      w  rVP                  V P                  W4      4       EK  	  RP                  V4      V3# )r   zMax string recursion exceededr'   FzJcannot switch from manual field specification to automatic field numberingzJcannot switch from automatic field numbering to manual field specification)auto_arg_index)r(   parserA   _stringformatter_field_name_splitr   
isinstanceint	get_fieldZaddconvert_fieldrI   format_fieldr   )r   rE   rF   rG   rK   Zrecursion_depthrN   rL   Zliteral_text
field_nameformat_spec
conversionZfield_firstrM   objZarg_useds   &&&&&&&         r   rI   ZFormatter._vformat   sR   Q<==

=) >Lk l+ %
 ")!C!CJ!O"$%.( *5 6 6 "%^!4z!AJ"a'NS11%( *9 : :
 &+N !%z Hh' ((9 /3mmvq0#1 /< /3+ d//ABY *\ wwv..r   c                sN    \        V\        4      '       d	   W!,          # W1,          # r
   )rR   rS   )r   ZkeyrF   rG      &&&&r   	get_valueZFormatter.get_value  s    c39;r   c                s    R # r
   r   )r   rK   rF   rG   r[   r   rJ   ZFormatter.check_unused_args  s    r   c                s    \        W4      # r
   )rH   )r   valuerX   r   r   rV   ZFormatter.format_field  s    e))r   c                s    Vf   V# VR8X  d   \        V4      # VR8X  d   \        V4      # VR8X  d   \        V4      # \        RP	                  V4      4      h)Nr   ZrZaz"Unknown conversion specifier {0!s})r   ZreprZasciir(   rH   )r   r]   rY   r   r   rU   ZFormatter.convert_field  sZ    L3u:3;3<=DDZPQQr   c                s.    \         P                  ! V4      # r
   )rP   Zformatter_parser)r   rE   r   r   rO   ZFormatter.parse/  s    ''66r   c                s    \         P                  ! V4      w  rEV P                  WBV4      pV F"  w  rxV'       d   \        Wh4      pK  Wh,          pK$  	  Wd3# r
   )rP   rQ   r\   Zgetattr)	r   rW   rF   rG   ZfirstZrestrZ   Zis_attrr*   s	   &&&&     r   rT   ZFormatter.get_field8  sO    88DnnU&1 JGcof	  zr   r   N)r   )r   r   r   r   rH   rD   rI   r\   rJ   rV   rU   rO   rT   r   r   r   r   r   r    r       s9     94/n*
R(7 r   )ascii_lettersascii_lowercaseascii_uppercaser   digits	hexdigits	octdigits	printablepunctuation
whitespacer    r   r
   )rC   Z__all__rP   rf   r_   r`   r^   ra   rb   rc   re   rd   r   r:   r	   r   r    r   r   r   <module>rg      s    2  
../1	X(		5]"[0:=	
@ & & $% ~ ~Vz zr   