
    h                    :    S SK Jr  SSKJr  S r " S S\\5      rg)    )annotations   )UpdateDictMixinc                @   ^  [        U 4S jU 4S jU 4S jST < 35      $ )zReturn a new property object for a content security policy header.
Useful if you want to add support for a csp extension in a
subclass.
c                &   > U R                  T5      $ N)
_get_valuexkeys    pC:\Users\ROHAN GUPTA\OneDrive\Desktop\mathbuddy-assessment\venv\Lib\site-packages\werkzeug/datastructures/csp.py<lambda>csp_property.<locals>.<lambda>       !,,s#    c                (   > U R                  TU5      $ r   )
_set_value)r   vr   s     r   r   r      s    Q\\#q)r   c                &   > U R                  T5      $ r   )
_del_valuer
   s    r   r   r      r   r   zaccessor for )property)r   s   `r   csp_propertyr      s%    
 #)#
w	 r   c                     \ rS rSrSr\" S5      r\" S5      r\" S5      r\" S5      r	\" S5      r
\" S5      r\" S	5      r\" S
5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      rS%S jrS r S r!S  r"S! r#S" r$S# r%S$r&g)&ContentSecurityPolicy   a.  Subclass of a dict that stores values for a Content Security Policy
header. It has accessors for all the level 3 policies.

Because the csp directives in the HTTP header use dashes the
python descriptors use underscores for that.

To get a header of the :class:`ContentSecuirtyPolicy` object again
you can convert the object into a string or call the
:meth:`to_header` method.  If you plan to subclass it and add your
own items have a look at the sourcecode for that class.

.. versionadded:: 1.0.0
   Support for Content Security Policy headers was added.

zbase-uriz	child-srczconnect-srczdefault-srczfont-srczform-actionzframe-ancestorsz	frame-srczimg-srczmanifest-srcz	media-srcznavigate-toz
object-srczprefetch-srczplugin-typesz	report-toz
report-urisandboxz
script-srczscript-src-attrzscript-src-elemz	style-srczstyle-src-attrzstyle-src-elemz
worker-srcNc                ^    [         R                  X=(       d    S5        X l        US LU l        g )N )dict__init__	on_updateprovided)selfvaluesr!   s      r   r    ContentSecurityPolicy.__init__>   s#    dLb)"d*r   c                $    U R                  U5      $ )+Used internally by the accessor properties.)getr#   r   s     r   r	    ContentSecurityPolicy._get_valueC   s    xx}r   c                8    Uc  U R                  US5        gX U'   gr'   N)pop)r#   r   values      r   r    ContentSecurityPolicy._set_valueG   s    =HHS$Ir   c                    X;   a  X	 ggr,   r   r)   s     r   r    ContentSecurityPolicy._del_valueN   s    ;	 r   c                    SSK Jn  U" U 5      $ )z6Convert the stored values into a cache control header.   )dump_csp_header)httpr4   )r#   r4   s     r   	to_headerContentSecurityPolicy.to_headerS   s    *t$$r   c                "    U R                  5       $ r   )r6   )r#   s    r   __str__ContentSecurityPolicy.__str__Y   s    ~~r   c                    SR                  S [        U R                  5       5       5       5      nS[        U 5      R                   SU S3$ )N c              3  6   #    U  H  u  pU S U< 3v   M     g7f)=Nr   ).0kr   s      r   	<genexpr>1ContentSecurityPolicy.__repr__.<locals>.<genexpr>]   s     H3G41QCq,3Gs   <>)joinsorteditemstype__name__)r#   kv_strs     r   __repr__ContentSecurityPolicy.__repr__\   sA    H6$**,3GHH4:&&'q22r   )r!   r"   )r   N)'rI   
__module____qualname____firstlineno____doc__r   base_uri	child_srcconnect_srcdefault_srcfont_srcform_actionframe_ancestors	frame_srcimg_srcmanifest_src	media_srcnavigate_to
object_srcprefetch_srcplugin_types	report_to
report_urir   
script_srcscript_src_attrscript_src_elem	style_srcstyle_src_attrstyle_src_elem
worker_srcr    r	   r   r   r6   r9   rK   __static_attributes__r   r   r   r   r      s+     J'H[)I}-K}-KJ'H}-K"#45O[)I9%G/L[)I}-Kl+J/L/L[)Il+J9%Gl+J"#45O"#45O[)I!"23N!"23Nl+J+

% 3r   r   N)
__future__r   mixinsr   r   r   r   r   r   r   <module>rl      s     " #
K3OT K3r   