Ë
    ý¶„jU  ã                  óˆ   — d dl mZ d dlZd dlZd dlmZ d dlmZmZ d dl	m
Z
mZ d dlmZmZmZmZmZ dZh d£Z G d	„ d
«      Zy)é    )ÚannotationsN)ÚSequence)ÚHeadersÚMutableHeaders)ÚPlainTextResponseÚResponse)ÚASGIAppÚMessageÚReceiveÚScopeÚSend)ÚDELETEÚGETÚHEADÚOPTIONSÚPATCHÚPOSTÚPUT>   úContent-TypeúAccept-LanguageúContent-LanguageÚAcceptc                  ó†   — e Zd Z	 	 	 	 	 	 	 	 d		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d
d„Zdd„Zdd„Zdd„Zdd„Zdd„Ze	dd„«       Z
y)ÚCORSMiddlewareNc
                óˆ  — d|v rt         }d }
|�t        j                  |«      }
d|v }d|v }| xs |}i }|rd|d<   |rd|d<   |rdj                  |«      |d<   i }|rd|d<   nd|d<   |j	                  dj                  |«      t        |	«      d	œ«       t        t        t        |«      z  «      }|r|sdj                  |«      |d
<   |rd|d<   || _	        || _
        || _        |D �cg c]  }|j                  «       ‘Œ c}| _        || _        || _        || _        || _        |
| _        || _        || _        || _        y c c}w )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Úallow_credentialsÚpreflight_explicit_allow_originÚallow_origin_regexÚallow_private_networkÚsimple_headersÚpreflight_headers)Úselfr,   r-   r.   r0   r3   r5   r6   Úexpose_headersÚmax_ageÚcompiled_allow_origin_regexr1   r2   r4   r7   r8   Úhs                    úP/var/www/html/GAP/venv/lib/python3.12/site-packages/starlette/middleware/cors.pyÚ__init__zCORSMiddleware.__init__   s‡  € ð �-ÑÜ'ˆMà&*Ð#ØÐ)Ü*,¯*©*Ð5GÓ*HÐ'à =Ð0ÐØ =Ð0ÐØ.?Ð*?Ò*TÐCTÐ'à)+ˆÙØ<?ˆNÐ8Ñ9ÙØAGˆNÐ=Ñ>ÙØ>B¿i¹iÈÓ>WˆNÐ:Ñ;à,.ÐÙ*à(0Ð˜fÒ%à?BÐÐ;Ñ<Ø× Ñ à04·	±	¸-Ó0HÜ*-¨g«,ñô	
ô Ô1´C¸Ó4FÑFÓGˆÙÑ!2Ø@DÇ	Á	È-Ó@XÐÐ<Ñ=ÙØDJÐÐ@ÑAàˆŒØ*ˆÔØ*ˆÔØ1>Ö?¨A˜aŸg™g�iÒ?ˆÔØ!2ˆÔØ!2ˆÔØ!2ˆÔØ/NˆÔ,Ø"=ˆÔØ%:ˆÔ"Ø,ˆÔØ!2ˆÕùò @s   Ã'D?c              ƒ  óz  K  — |d   dk7  r| j                  |||«      ƒ d {  –—†  y |d   }t        |¬«      }|j                  d«      }|€| j                  |||«      ƒ d {  –—†  y |dk(  r)d|v r%| j                  |¬«      } ||||«      ƒ d {  –—†  y | j	                  ||||¬«      ƒ d {  –—†  y 7 Œ‘7 ŒS7 Œ'7 Œ­w)	NÚtypeÚhttpÚmethod©ÚscopeÚoriginr   úaccess-control-request-method)Úrequest_headers)r,   r   ÚgetÚpreflight_responseÚsimple_response)r9   rE   ÚreceiveÚsendrC   ÚheadersrF   Úresponses           r>   Ú__call__zCORSMiddleware.__call__N   s×   è ø€ Ø�‰=˜FÒ"Ø—(‘(˜5 '¨4Ó0×0Ð0Øà�x‘ˆÜ Ô&ˆØ—‘˜XÓ&ˆàˆ>Ø—(‘(˜5 '¨4Ó0×0Ð0Øà�YÒÐ#BÀgÑ#MØ×.Ñ.¸wÐ.ÓGˆHÙ˜5 '¨4Ó0×0Ð0Øà×"Ñ" 5¨'°4ÈÐ"ÓQ×QÑQð! 1øð 1øð
 1øð 	RúsE   ‚B;¡B3¢?B;Á!B5Á"-B;ÂB7ÂB;Â-B9Â.B;Â5B;Â7B;Â9B;c                óˆ   — | j                   ry| j                  �| j                  j                  |«      ry|| j                  v S )NT)r1   r5   Ú	fullmatchr-   )r9   rF   s     r>   Úis_allowed_originz CORSMiddleware.is_allowed_originb   sB   € Ø×!Ò!Øà×"Ñ"Ð.°4×3JÑ3J×3TÑ3TÐU[Ô3\Øà˜×+Ñ+Ð+Ð+ó    c                óÖ  — |d   }|d   }|j                  d«      }|j                  d«      }t        | j                  «      }g }| j                  |¬«      r| j                  r||d<   n|j                  d«       || j                  vr|j                  d«       | j                  r|�||d<   nc|�a|j                  d	«      D �cg c]  }|j                  «       ‘Œ c}D ]1  }	|	j                  «       | j                  vsŒ |j                  d
«        n |�#| j                  rd|d<   n|j                  d«       |r"ddj                  |«      z   }
t        |
d|¬«      S t        dd|¬«      S c c}w )NrF   rG   zaccess-control-request-headersz&access-control-request-private-network©rF   r   rC   r"   ú,rN   r   z$Access-Control-Allow-Private-Networkzprivate-networkzDisallowed CORS r   i�  )Ústatus_coderN   ÚOKéÈ   )rI   Údictr8   rS   r4   Úappendr.   r2   Úsplitr/   Ústripr0   r6   r&   r   )r9   rH   Úrequested_originÚrequested_methodÚrequested_headersÚrequested_private_networkrN   Úfailuresr=   ÚheaderÚfailure_texts              r>   rJ   z!CORSMiddleware.preflight_responsek   sv  € Ø*¨8Ñ4ÐØ*Ð+JÑKÐØ+×/Ñ/Ð0PÓQÐØ$3×$7Ñ$7Ð8`Ó$aÐ!ä�t×-Ñ-Ó.ˆØ ˆà×!Ñ!Ð)9Ð!Ô:Ø×3Ò3ð :J�Ð5Ò6à�O‰O˜HÔ%à 4×#5Ñ#5Ñ5Ø�O‰O˜HÔ%ð ×!Ò!Ð&7Ð&CØ6GˆGÐ2Ò3ØÐ*Ø.?×.EÑ.EÀcÓ.JÖK¨˜1Ÿ7™7�9ÒKò �Ø—<‘<“>¨×);Ñ);Ò;Ø—O‘O IÔ.Ùðð
 %Ð0Ø×)Ò)ØBH�Ð>Ò?à—‘Ð 1Ô2ñ
 Ø-°·	±	¸(Ó0CÑCˆLÜ$ \¸sÈGÔTÐTä  °3ÀÔHÐHùò% Ls   ÃE&c              ƒ  óŠ   K  — t        j                  | j                  ||¬«      }| j                  |||«      ƒ d {  –—†  y 7 Œ­w)N)rM   rH   )Ú	functoolsÚpartialrM   r,   )r9   rE   rL   rM   rH   s        r>   rK   zCORSMiddleware.simple_response˜   s4   è ø€ Ü× Ñ  §¡°ÀÔWˆØ�h‰h�u˜g tÓ,×,Ò,ús   ‚9A»A¼Ac              ƒ  ó˜  K  — |d   dk7  r ||«      ƒ d {  –—†  y |j                  dg «       t        |¬«      }|j                  | j                  «       |d   }| j                  r| j
                  r| j                  ||«       n0| j                  s$| j                  |¬«      r| j                  ||«        ||«      ƒ d {  –—†  y 7 Œ¯7 Œ­w)NrA   zhttp.response.startrN   rD   r    rV   )Ú
setdefaultr   r'   r7   r1   r3   Úallow_explicit_originrS   )r9   ÚmessagerM   rH   rN   rF   s         r>   rM   zCORSMiddleware.sendœ   s¿   è ø€ Ø�6‰?Ð3Ò3Ù�w“-×ÐØà×Ñ˜9 bÔ)Ü  wÔ/ˆØ�‰�t×*Ñ*Ô+Ø  Ñ*ˆð ×!Ò! d×&<Ò&<Ø×&Ñ& w°Õ7ð ×'Ò'¨D×,BÑ,BÈ&Ð,BÔ,QØ×&Ñ& w°Ô7á�7‹m×Ñð!  øð  	ús"   ‚C
–C—B)C
Ã CÃC
ÃC
c                ó0   — || d<   | j                  d«       y )Nr   r    )Úadd_vary_header)rN   rF   s     r>   rk   z$CORSMiddleware.allow_explicit_origin°   s   € à17ˆÐ-Ñ.Ø×Ñ Õ)rT   )© )r   ro   FNFro   iX  )r,   r	   r-   úSequence[str]r.   rp   r0   rp   r3   Úboolr5   z
str | Noner6   rq   r:   rp   r;   ÚintÚreturnÚNone)rE   r   rL   r   rM   r   rs   rt   )rF   r(   rs   rq   )rH   r   rs   r   )
rE   r   rL   r   rM   r   rH   r   rs   rt   )rl   r
   rM   r   rH   r   rs   rt   )rN   r   rF   r(   rs   rt   )Ú__name__Ú
__module__Ú__qualname__r?   rP   rS   rJ   rK   rM   Ústaticmethodrk   ro   rT   r>   r   r      s´   „ ð (*Ø'/Ø')Ø"'Ø)-Ø&+Ø(*Øð<3àð<3ð %ð<3ð %ð	<3ð
 %ð<3ð  ð<3ð 'ð<3ð  $ð<3ð &ð<3ð ð<3ð 
ó<3ó|Ró(,ó+IóZ-óð( ò*ó ñ*rT   r   )Ú
__future__r   rg   r$   Úcollections.abcr   Ústarlette.datastructuresr   r   Ústarlette.responsesr   r   Ústarlette.typesr	   r
   r   r   r   r#   r*   r   ro   rT   r>   ú<module>r~      s4   ðÝ "ã Û 	Ý $ç <ß ;ß BÕ BàJ€ÚVÐ ÷d*ò d*rT   