
    h5)                         S SK r S SKJr  S SKJrJr  S SKJr  SSKJ	r	J
r
  Sr\" S5      rS	 r\" S
5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      rSS jrg)    N)StringIO)Lexer	TokenType)_lazy_re_compile   )TranslatorCommentWarningtrim_whitespaceTranslatorsz\Sc                 ,    [         R                  X5      $ )z[
Change every non-whitespace character to the given char.
Used in the templatize function.
)dot_resub)srcchars     S/var/www/html/env/lib/python3.13/site-packages/django/utils/translation/template.pyblankoutr      s    
 ::d      z.^\s+.*context\s+((?:"[^"]*?")|(?:'[^']*?'))\s*z^\s*trans(?:late)?\s+((?:"[^"]*?")|(?:'[^']*?'))(?:\s*\|\s*[^\s:]+(?::(?:[^\s'":]+|(?:"[^"]*?")|(?:'[^']*?')))?)*(\s+.*context\s+((?:"[^"]*?")|(?:'[^']*?')))?\s*zM^\s*blocktrans(?:late)?(\s+.*context\s+((?:"[^"]*?")|(?:'[^']*?')))?(?:\s+|$)z^\s*endblocktrans(?:late)?$z^\s*plural$z_\(((?:".*?")|(?:'.*?'))\)c                    [        S5      nSnSnSnSn/ n/ nSn	/ n
0 nSnSnS)S jn[        U 5      R                  5        GH  nU	(       Ga	  UR                  [        R
                  :X  a  UR                  S:X  a  SR                  U
5      nSn[        UR                  S5      5       H2  u  nnUR                  5       R                  [        5      (       d  M0  UnM4     [        UR                  S5      5       H6  u  nnUb  UU:  a  UR                  SU-  5        M%  UR                  S	5        M8     Sn	/ n
M  U
R                  UR                  5        GM  U(       Ga  UR                  [        R
                  :X  Ga  [        R!                  UR                  5      n["        R!                  UR                  5      nU(       Ga5  U(       a  U(       a.  UR                  S
R%                  UU" Xv5      U" X5      US95        O,UR                  SR%                  U" Xv5      U" X5      US95        U H  nUR                  ['        US5      5        M      U H  nUR                  ['        US5      5        M      OwU(       a'  UR                  SR%                  UU" Xv5      US95        O%UR                  SR%                  U" Xv5      US95        U H  nUR                  ['        US5      5        M      SnSnSn/ n/ nGM  U(       a  SnGM  SnU(       a  SU-  n[)        SUR                  UUR*                  4-  5      eUR                  [        R,                  :X  aI  U(       a!  UR                  SUR                  -  5        GM<  UR                  SUR                  -  5        GM]  UR                  [        R.                  :X  aK  UR                  R1                  SS5      nU(       a  UR                  U5        GM  UR                  U5        GM  GM  Ub  UR*                  UR                  R3                  S5      -   nUU:X  a_  UR                  [        R4                  :w  a@  X    H4  nSnU(       a  SU-  nSUUU4-  n[6        R8                  " U[:        5        M6     / X'   O%UR                  SSR                  X   5      -  5        SnUR                  [        R
                  :X  Gar  [<        R!                  UR                  5      n[>        R!                  UR                  5      n[@        RC                  UR                  5      nU(       a  US   nUS   S:X  a  URE                  S5      nOUS   S:X  a  URE                  S5      nUR1                  SS5      nUS   (       aw  [F        R!                  US   5      n U S   nUS   S:X  a  URE                  S5      nOUS   S:X  a  URE                  S5      nUR                  SR%                  UUUS95        SnGM  UR                  SR%                  UUS95        GM  U(       a  [@        RC                  UR                  5       H  n!UR                  SU!-  5        M     US   (       aR  [F        R!                  US   5      n U S   nUS   S:X  a  URE                  S5      nOUS   S:X  a  URE                  S5      nSnSnS URI                  5       ;   n/ n/ nGM  U(       a   U H  n"UR                  SU"-  5        M     GM  UR                  S!:X  a  Sn	GM  UR                  ['        UR                  S"5      5        GM  UR                  [        R,                  :X  a  UR                  RK                  S#5      n#[@        R!                  U#S   5      n"U"(       a  UR                  SU"S   -  5        U#SS  H\  n$U$RM                  S$5      S:  a)  UR                  S%U$RK                  S&S5      S   -  5        MA  UR                  ['        U$S'5      5        M^     GM  UR                  [        R4                  :X  ay  UR                  R                  5       R                  [        5      (       aD  URO                  UR*                  / 5      R                  UR                  5        UR*                  nGM|  GM  UR                  ['        UR                  S(5      5        GM     URQ                  5       $ )*z
Turn a Django template into something that is understood by xgettext. It
does so by translating the Django translation tags into standard gettext
function invocations.
 NFuc                 L    SR                  U 5      nU(       a  [        U5      nU$ )Nr   )joinr	   )tokenstrimmessages      r   join_tokenstemplatize.<locals>.join_tokens;   s!    ''&/%g.Gr   
endcommentTz # %sz #
z, npgettext({p}{!r}, {p}{!r}, {p}{!r},count) )pz# ngettext({p}{!r}, {p}{!r}, count) SPz pgettext({p}{!r}, {p}{!r}) z gettext({p}{!r}) z	file %s, zDTranslation blocks must not include other block tags: %s (%sline %d)z%%(%s)s%z%%
zjThe translator-targeted comment '%s' (%sline %d) was ignored, because it wasn't the last item on the line.z# %sz | r   r   "'   z _(%s) trimmedcommentB|z:_(z %s :FX)F))r   r   tokenize
token_typer   BLOCKcontentsr   	enumerate
splitlineslstrip
startswithTRANSLATOR_COMMENT_MARKwriteappendendblock_rematch	plural_reformatr   SyntaxErrorlinenoVARTEXTreplacecountCOMMENTwarningswarnr   	inline_reblock_reconstant_refindallstrip
context_resplit_contentssplitfind
setdefaultgetvalue)%r   originoutmessage_contextintransinpluralr&   singularplural	incommentr'   lineno_comment_mapcomment_lineno_cache
raw_prefixr   tcontenttranslators_comment_startr=   line	endbmatchpluralmatchpartfilemsgr0   
cur_linenocwarn_msgimatchbmatchcmatchesgcontext_matchfmatchcmatchpartsr   s%                                        r   
templatizern   '   s    2,COGHGHFIGJ 3Z  "||y.1::3M'''*,0)$-g.@.@.F$GLFD{{}//0GHH4:1 %H %.g.@.@.F$GLFD1="&??		'D.1		&) %H "	qzz*||y.'--ajj9	'ooajj9*II N U U$3$/$B$/$@&0	 !V !"  II E L L$/$B$/$@&0 !M !" %-DIIhtS&9: %-$*DIIhtS&9: %+ +II > E E$3$/$B&0 !F !"  II 4 ; ;$/$B&0 !< !" %-DIIhtS&9: %-&*O#G$H!HF #H G"-"6%),-JJ+JK  .MM)ajj"89OOI

$:;/::--c48MM(+OOH- 0 $/XX

(8(8(>>
':5||y'8'88!3!IA&(G%*5*>!= "#G-A B	(CH
 %MM(4LM "J DF*@II,>,T!UU (,$||y."4!

3&..qzz:q	Ats{GGCL1GGCL		#t,Aay(2(8(8(C*7*:*1-4.=.C.CC.HO,Q/36.=.C.CC.HO		:AA /j B 
 +/		"6"="=a:"="NO"-"5"5ajj"A		)f"45 #Bay(2(8(8(C*7*:*1-4.=.C.CC.HO,Q/36.=.C.CC.HO"G$H'1+;+;+==G!HF"*		)f"45 #+ZZ9, $IIIhqzz378.

((-$**584IIi&)34qrAvve})		&1773?1+="=>		(1c"23	 #
 !2!22::$$&112IJJ&11!((B?FFqzzR+,88( K 		(1::s34i #j <<>r   )N)rC   ior   django.template.baser   r   django.utils.regex_helperr   r   r   r	   r5   r   r   rJ   rE   rF   r8   r:   rG   rn    r   r   <module>rs      s}      1 6 7' 	%	 ! ST
<	 X AB/0	@AOr   