Ë
    $V.j›  ã                  ól   — d dl mZ d dlZd dlmZmZ d dlmZmZm	Z	 d dl
mZmZmZmZ dZ G d„ d«      Zy)	é    )ÚannotationsN)ÚURLÚHeaders)ÚPlainTextResponseÚRedirectResponseÚResponse)ÚASGIAppÚReceiveÚScopeÚSendz6Domain wildcard patterns must be like '*.example.com'.c                  ó0   — e Zd Z	 	 d	 	 	 	 	 	 	 dd„Zdd„Zy)ÚTrustedHostMiddlewareNc                óö   — |€dg}|D ]H  }d|dd  vsJ t         «       ‚|j                  d«      sŒ'|dk7  sŒ-|j                  d«      rŒ?J t         «       ‚ || _        t        |«      | _        d|v | _        || _        y )NÚ*é   z*.)ÚENFORCE_DOMAIN_WILDCARDÚ
startswithÚappÚlistÚallowed_hostsÚ	allow_anyÚwww_redirect)Úselfr   r   r   Úpatterns        úbC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\starlette/middleware/trustedhost.pyÚ__init__zTrustedHostMiddleware.__init__   s�   € ð Ð Ø ˜EˆMã$ˆGØ˜g a b˜kÑ)ÐBÔ+BÓBÐ)Ø×!Ñ! #Õ&¨7°c«>Ø×)Ñ)¨$Õ/ÐHÔ1HÓHÐ/ð %ð ˆŒÜ! -Ó0ˆÔØ Ð-ˆŒØ(ˆÕó    c              ƒ  óŒ  K  — | j                   s|d   dvr| j                  |||«      ƒ d {  –—†  y t        |¬«      }|j                  dd«      j	                  d«      d   }d}d}| j
                  D ];  }||k(  s%|j                  d	«      r|j                  |d
d  «      rd} nd|z   |k(  sŒ:d}Œ= |r| j                  |||«      ƒ d {  –—†  y |rM| j                  rAt        |¬«      }	|	j                  d|	j                  z   ¬«      }
t        t        |
«      ¬«      }nt        dd¬«      } ||||«      ƒ d {  –—†  y 7 �Œ7 Œw7 Œ
­w)NÚtype)ÚhttpÚ	websocket)ÚscopeÚhostÚ Ú:r   Fr   r   Tzwww.)Únetloc)ÚurlzInvalid host headeri�  )Ústatus_code)r   r   r   ÚgetÚsplitr   r   Úendswithr   r   Úreplacer&   r   Ústrr   )r   r"   ÚreceiveÚsendÚheadersr#   Úis_valid_hostÚfound_www_redirectr   r'   Úredirect_urlÚresponses               r   Ú__call__zTrustedHostMiddleware.__call__   sI  è ø€ Ø�>Š>˜U 6™]ð 3
ñ 
ð —(‘(˜5 '¨4Ó0×0Ð0Øä Ô&ˆØ�{‰{˜6 2Ó&×,Ñ,¨SÓ1°!Ñ4ˆØˆØ"ÐØ×)Ô)ˆGØ�wŠ 7×#5Ñ#5°cÔ#:¸t¿}¹}ÈWÐUVÐUWÈ[Ô?YØ $�ÙØ˜$‘ 'Ó)Ø%)Ñ"ð *ñ Ø—(‘(˜5 '¨4Ó0×0Ñ0ñ " d×&7Ò&7Ü Ô&�Ø"Ÿ{™{°&¸3¿:¹:Ñ2E˜{ÓF�Ü+´°LÓ0AÔB‘ä,Ð-BÐPSÔT�Ù˜5 '¨4Ó0×0Ñ0ð1 1ùð 1øð 1ús;   ‚*E¬D=­A>EÂ,EÃE Ã	A.EÄ7EÄ8EÅ EÅE)NT)r   r	   r   ztyping.Sequence[str] | Noner   ÚboolÚreturnÚNone)r"   r   r.   r
   r/   r   r7   r8   )Ú__name__Ú
__module__Ú__qualname__r   r5   © r   r   r   r      s:   „ ð 6:Ø!ð	)àð)ð 3ð)ð ð	)ð
 
ó)ô$1r   r   )Ú
__future__r   ÚtypingÚstarlette.datastructuresr   r   Ústarlette.responsesr   r   r   Ústarlette.typesr	   r
   r   r   r   r   r<   r   r   Ú<module>rB      s*   ðÝ "ã ç 1ß MÑ Mß 9Ó 9àRÐ ÷01ò 01r   