
    i                        S SK Jr  S SKrS SKrS SKJr  S SKJrJr  S SK	J
r
Jr  S SKJrJrJrJrJr  Sr1 Skr " S	 S
5      rg)    )annotationsN)Sequence)HeadersMutableHeaders)PlainTextResponseResponse)ASGIAppMessageReceiveScopeSend)DELETEGETHEADOPTIONSPATCHPOSTPUT>   AcceptContent-TypeAccept-LanguageContent-Languagec                      \ rS rSr       S                 SS jjrSS jrSS jrSS jrSS jrSS jr	\
SS	 j5       rS
rg)CORSMiddleware   Nc	                   SU;   a  [         nS n	Ub  [        R                  " U5      n	SU;   n
SU;   nU
(       + =(       d    Un0 nU
(       a  SUS'   U(       a  SUS'   U(       a  SR                  U5      US'   0 nU(       a  SUS'   OSUS'   UR	                  SR                  U5      [        U5      S	.5        [        [        [        U5      -  5      nU(       a  U(       d  SR                  U5      US
'   U(       a  SUS'   Xl	        X l
        X0l        U Vs/ s H  oR                  5       PM     snU l        Xl        Xl        Xl        Xl        Xl        Xl        g s  snf )N*Access-Control-Allow-Origintruez Access-Control-Allow-Credentials, zAccess-Control-Expose-HeadersOriginVary)zAccess-Control-Allow-MethodszAccess-Control-Max-AgeAccess-Control-Allow-Headers)ALL_METHODSrecompilejoinupdatestrsortedSAFELISTED_HEADERSsetappallow_originsallow_methodslowerallow_headersallow_all_originsallow_all_headerspreflight_explicit_allow_originallow_origin_regexsimple_headerspreflight_headers)selfr-   r.   r/   r1   allow_credentialsr5   expose_headersmax_agecompiled_allow_origin_regexr2   r3   r4   r6   r7   hs                   T/var/www/html/trading/venv/lib/python3.13/site-packages/starlette/middleware/cors.py__init__CORSMiddleware.__init__   sg    -'M&*#)*,**5G*H'=0=0.?*?*TCT'<?N89AGN=>>Bii>WN:;*(0f%?B;<  04		-0H*-g,	
 1C4FFG!2@D		-@X<=DJ@A**1>?Aggi?!2!2/N,"=,!2 @s   Ec                h  #    US   S:w  a  U R                  XU5      I S h  vN   g US   n[        US9nUR                  S5      nUc  U R                  XU5      I S h  vN   g US:X  a'  SU;   a!  U R                  US9nU" XU5      I S h  vN   g U R	                  XX5S9I S h  vN   g  N NM N" N7f)	Ntypehttpmethodscopeoriginr   access-control-request-method)request_headers)r-   r   getpreflight_responsesimple_response)r8   rF   receivesendrD   headersrG   responses           r>   __call__CORSMiddleware.__call__K   s     =F"((54000x&X&>((54000Y#Bg#M..w.GH54000""54"QQQ! 1 1
 1 	RsE   B2B*<B2B,,B2B.B2$B0%B2,B2.B20B2c                    U R                   (       a  gU R                  b!  U R                  R                  U5      (       a  gXR                  ;   $ )NT)r2   r5   	fullmatchr.   )r8   rG   s     r>   is_allowed_origin CORSMiddleware.is_allowed_origin_   sC    !!"".43J3J3T3TU[3\3\++++    c                   US   nUS   nUR                  S5      n[        U R                  5      n/ nU R                  US9(       a  U R                  (       a  X%S'   OUR                  S5        X0R                  ;  a  UR                  S5        U R                  (       a  Ub  XES'   OjUbg  UR                  S5       Vs/ s H  owR                  5       PM     sn H4  nUR                  5       U R                  ;  d  M#  UR                  S	5          O   U(       a  S
SR                  U5      -   n	[        U	SUS9$ [        SSUS9$ s  snf )NrG   rH   zaccess-control-request-headersrG   r   rD   r#   ,rO   zDisallowed CORS r    i  )status_coderO   OK   )rJ   dictr7   rU   r4   appendr/   r3   splitr0   stripr1   r'   r   )
r8   rI   requested_originrequested_methodrequested_headersrO   failuresr=   headerfailure_texts
             r>   rK   !CORSMiddleware.preflight_responseh   s6   *84*+JK+//0PQt--.!!)9!:33 :J56OOH%#5#55OOH% !!&7&C6G23*.?.E.Ec.JK.J779.JK<<>););;OOI. L -		(0CCL$\sGTT 3HH Ls   =Ec                   #    [         R                  " U R                  X4S9nU R                  XU5      I S h  vN   g  N7f)N)rN   rI   )	functoolspartialrN   r-   )r8   rF   rM   rN   rI   s        r>   rL   CORSMiddleware.simple_response   s/       Whhut,,,s   5?=?c                  #    US   S:w  a  U" U5      I S h  vN   g UR                  S/ 5        [        US9nUR                  U R                  5        US   nSU;   nU R                  (       a  U(       a  U R                  XE5        O6U R                  (       d%  U R                  US9(       a  U R                  XE5        U" U5      I S h  vN   g  N N7f)NrB   zhttp.response.startrO   rE   r!   cookierY   )
setdefaultr   r(   r6   r2   allow_explicit_originrU   )r8   messagerN   rI   rO   rG   
has_cookies          r>   rN   CORSMiddleware.send   s     6?33w-9b) w/t**+ *0
 !!j&&w7 ''D,B,B&,B,Q&&w77m'  & 	s"   CCB0CC	CCc                .    XS'   U R                  S5        g )Nr   r!   )add_vary_header)rO   rG   s     r>   rp   $CORSMiddleware.allow_explicit_origin   s    17-.)rW   )
r3   r2   r1   r/   r5   r.   r-   r4   r7   r6   ) )r   rw   FNrw   iX  )r-   r	   r.   Sequence[str]r/   rx   r1   rx   r9   boolr5   z
str | Noner:   rx   r;   intreturnNone)rF   r   rM   r   rN   r   r{   r|   )rG   r)   r{   ry   )rI   r   r{   r   )
rF   r   rM   r   rN   r   rI   r   r{   r|   )rq   r
   rN   r   rI   r   r{   r|   )rO   r   rG   r)   r{   r|   )__name__
__module____qualname____firstlineno__r?   rQ   rU   rK   rL   rN   staticmethodrp   __static_attributes__rw   rW   r>   r   r      s     (*'/')"')-(*9393 %93 %	93
 %93  93 '93 &93 93 
93vR(,$IL-. * *rW   r   )
__future__r   rj   r%   collections.abcr   starlette.datastructuresr   r   starlette.responsesr   r   starlette.typesr	   r
   r   r   r   r$   r+   r   rw   rW   r>   <module>r      s4    "  	 $ < ; B BJV ]* ]*rW   