
    g                        S SK Jr  S SKrS SKrS SKJrJr  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JrJrJr   " S S	5      rg)
    )annotationsN)	b64decode	b64encode)BadSignature)MutableHeadersSecret)HTTPConnection)ASGIAppMessageReceiveScopeSendc                  Z    \ rS rSr      S                 SS jjrSS jrSrg)	SessionMiddleware   Nc	                    Xl         [        R                  " [        U5      5      U l        X0l        X@l        XPl        SU-   U l        U(       a  U =R                  S-  sl        Ub  U =R                  SU 3-  sl        g g )Nzhttponly; samesite=z; securez	; domain=)	appitsdangerousTimestampSignerstrsignersession_cookiemax_agepathsecurity_flags)	selfr   
secret_keyr   r   r   	same_site
https_onlydomains	            V/home/matz/Project1/venv/lib/python3.13/site-packages/starlette/middleware/sessions.py__init__SessionMiddleware.__init__   ss     "223z?C,	3i?:-Yvh#77     c                  ^ ^^^#    TS   S;  a  T R                  TUT5      I S h  vN   g [        T5      nSmT R                  UR                  ;   ar  UR                  T R                     R	                  S5      n T R
                  R                  UT R                  S9n[        R                  " [        U5      5      TS'   SmO0 TS'   S	UUU U4S jjnT R                  TX&5      I S h  vN   g  N! [         a    0 TS'    N9f = f N7f)
Ntype)http	websocketTutf-8)r   sessionFc                  >#    U S   S:X  Ga&  TS   (       a  [        [        R                  " TS   5      R                  S5      5      nTR                  R                  U5      n[        U S9nSR                  TR                  UR                  S5      TR                  TR                  (       a  STR                   S3OS	TR                  S
9nUR                  SU5        OST(       dL  [        U S9nSR                  TR                  STR                  STR                  S9nUR                  SU5        T" U 5      I S h  vN   g  N7f)Nr&   zhttp.response.startr*   r)   )scopez?{session_cookie}={data}; path={path}; {max_age}{security_flags}zMax-Age=z;  )r   datar   r   r   z
Set-Cookiez?{session_cookie}={data}; path={path}; {expires}{security_flags}nullz'expires=Thu, 01 Jan 1970 00:00:00 GMT; )r   r.   r   expiresr   )r   jsondumpsencoder   signr   formatr   decoder   r   r   append)messager.   headersheader_valueinitial_session_was_emptyr,   r   sends       r!   send_wrapper0SessionMiddleware.__call__.<locals>.send_wrapper9   s    v"77#$TZZi0@%A%H%H%QRD;;++D1D,7;G#d#k#k'+':':![[1!YY?C||(4<<. ;QS'+':': $l $L NN<>2,7;G#d#k#k'+':':#!YY I'+':': $l $L NN<>w-s   D<E?E E)r8   r   returnNone)r   r	   r   cookiesr3   r   unsignr   r1   loadsr   r   )r   r,   receiver<   
connectionr.   r=   r;   s   `` `   @r!   __call__SessionMiddleware.__call__&   s    = 55((5'4000#E*
$(!*"4"44%%d&9&9:AA'JD&{{))$)E#'::io#>i ,1)  "E)	  	 8 hhug444[ 1   &#%i &B 	5sA    D	C0AD	<AC2 &D	*D+D	2DD	DD	)r   r   r   r   r   r   )r*   i u /laxFN)r   r
   r   zstr | Secretr   r   r   z
int | Noner   r   r   z'typing.Literal['lax', 'strict', 'none']r   boolr    z
str | Noner?   r@   )r,   r   rD   r   r<   r   r?   r@   )__name__
__module____qualname____firstlineno__r"   rF   __static_attributes__ r$   r!   r   r      sx    
 (/=B !88 !8 	8
 8 8 ;8 8 8 
8,/5r$   r   )
__future__r   r1   typingbase64r   r   r   itsdangerous.excr   starlette.datastructuresr   r   starlette.requestsr	   starlette.typesr
   r   r   r   r   r   rP   r$   r!   <module>rX      s/    "   '  ) ; - B BF5 F5r$   