
    gh]                         S SK r S SKJr  S SKJr  S SKJr  S SKrS SK	J
r
  S SKJr  S SKJr  \(       a  S SKJr  S S	KJr  S S
KJr  S SKJr  S SKJr   S SKJr  S rS rS rS rS rS rg! \ a	    S SKJr   N!f = f)    N)TemplateSyntaxError)	mark_safe)VERSION)OP)ensure_integration_enabled)TYPE_CHECKING)Any)Dict)Optional)Iterator)Tuple)Origin)LoaderOriginc                 |   [        U S5      (       a  [        U R                  5      $ [        U S5      (       a  [        U R                  5      $ [        U [        5      (       a[  [        U S5      (       aJ  U R                  n[        U[        [        45      (       a#  [        US   [        5      (       a  [        U5      $ g )Ntemplate_debugdjango_template_sourcesourcer   )hasattr_get_template_frame_from_debugr   _get_template_frame_from_sourcer   
isinstancer   r   tuplelistr   )	exc_valuer   s     k/home/kali/devsecops-assessor/venv/lib/python3.13/site-packages/sentry_sdk/integrations/django/templates.py!get_template_frame_from_exceptionr      s     y*++-i.F.FGG
 y233.,,
 	
 )011gi6R6R!!fudm,,F1Iv1N1N26::    c                 t    [        U [        [        45      (       a  U (       a  SR                  U S   5      $ g U $ )Nz	[{}, ...]r   )r   r   r   format)template_names    r   _get_template_name_descriptionr!   3   s9    -$//%%mA&677  r   c                  d  ^^^ SSK Jn   SSKJm  U R                  m[
        [        TTR                  5      UU4S j5       5       nXl        [        S:  a  g SS K	nUR                  R                  m[        R                  " T5      [        TT5      SUU4S jj5       5       nX2R                  l        g )Nr   )SimpleTemplateResponse)DjangoIntegrationc                   > [         R                  " [        R                  [	        U R
                  5      TR                  S9 nUR                  SU R                  5        TR                  U 5      sS S S 5        $ ! , (       d  f       g = f)Nopnameorigincontext)

sentry_sdk
start_spanr   TEMPLATE_RENDERr!   r    r)   set_datacontext_datafget)selfspanr$   real_rendered_contents     r   rendered_content)patch_templates.<locals>.rendered_contentC   sj     ""!!/0B0BC$++
 MM)T%6%67(--d3
 
 
s   -A::
B)      c                 f  > U=(       d    0 nSU;  a/  [        [        R                  " 5       R                  5       5      US'   [        R                  " [
        R                  [        U5      TR                  S9 nUR                  SU5        T" XU/UQ70 UD6sS S S 5        $ ! , (       d  f       g = f)Nsentry_trace_metar&   r*   )
r   r+   get_current_scopetrace_propagation_metar,   r   r-   r!   r)   r.   )requestr    r*   argskwargsr2   r$   real_renders         r   renderpatch_templates.<locals>.renderW   s     -Rg-+4,,.EEG,G'( ""!!/>$++
 MM)W-wwPPP
 
 
s   9B""
B0)N)django.template.responser#   sentry_sdk.integrations.djangor$   r4   propertyr   r0   DJANGO_VERSIONdjango.shortcuts	shortcutsr@   	functoolswraps)r#   r4   djangor@   r$   r?   r3   s       @@@r   patch_templatesrK   <   s    ?@2CC 13H3M3MN4 O 4 /?+""))K__[! 1;?Q @ "Q$ %r   c                     U c  g U S   nU S   nUc  Sn/ n/ nS nU S    H7  u  pgXa:  a  UR                  U5        M  Xa:  a  UR                  U5        M5  UnM9     UUUSS  US S USS.$ )	Nliner(   <django template>source_lines   T)filenamelinenopre_contextpost_contextcontext_linein_app)append)debugrS   rR   rT   rU   rV   irM   s           r   r   r   n   s    }6]FV}H&KLL(:t$Z%L ) "23'$Ra($ r   c              #      #    Sv   U R                  S5      nUS:  a%  US-   v   U R                  SUS-   5      nUS:  a  M$  g g 7f)Nr   
r6   )find)template_sourceps     r   _linebreak_iterr`      sI     
GT"A
q&!e  q1u- q&s   >AAc                 R   U (       d  g U u  nu  p#[        USS 5      nUc  SnUR                  5       nS nSn/ n/ n	S n
[        [        U5      5       H@  u  pXWU nX':  a
  X<::  a  UnUn
O&Uc  UR	                  U5        OU	R	                  U5        UnMB     U
b  Uc  g UUUSS  U	S S U
S.$ )NloadnamerN   r   rP   rQ   )rR   rS   rT   rU   rV   )getattrreload	enumerater`   rX   )r   r)   startendrR   r^   rS   uptorT   rU   rV   numnextrM   s                 r   r   r      s    !FLUvz40H&mmoOFDKLL?@	D)=S[FL^t$% A v~ "23'$Ra($ r   )rH   django.templater   django.utils.safestringr   rJ   r   rE   r+   sentry_sdk.constsr   sentry_sdk.utilsr   typingr   r	   r
   r   r   r   django.template.baser   ImportErrordjango.template.loaderr   r   r!   rK   r   r`   r    r   r   <module>rt      sl     / - ,    7  >+./%d@.%A  >=>s   A, ,A;:A;