§
    K" h00  ã                   ó¨   — d dl mZ ddlmZmZmZ  eh d£¦  «        Z edg d¢¦  «        Z G d„ de	¦  «        Z
d	dd	d
defd„Zefd„Zd„ Zdefd„Zd	S )é    )Ú
namedtupleé   )Ú
BadRequestÚloggerÚundquote>   Ú	FORWARDEDÚX_FORWARDED_BYÚX_FORWARDED_FORÚX_FORWARDED_HOSTÚX_FORWARDED_PORTÚX_FORWARDED_PROTOÚ	Forwarded)ÚbyÚfor_ÚhostÚprotoc                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚMalformedProxyHeaderc                 óx   •— || _         || _        || _        t          ¦   «                              |||¦  «         d S ©N)ÚheaderÚreasonÚvalueÚsuperÚ__init__)Úselfr   r   r   Ú	__class__s       €úPc:\xampp_lite_8_4\www\timesheet\venv\Lib\site-packages\waitress/proxy_headers.pyr   zMalformedProxyHeader.__init__   s:   ø€ ØˆŒØˆŒØˆŒ
Ý‰Œ×Ò˜ ¨Ñ/Ô/Ð/Ð/Ð/ó    )Ú__name__Ú
__module__Ú__qualname__r   Ú__classcell__)r   s   @r   r   r      s8   ø€ € € € € ð0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0r   r   NTFc                 ó*   ‡ ‡‡‡‡‡‡— ˆ ˆˆˆˆˆˆfd„}|S )Nc                 óv  •— t           }| d         }‰
dk    s|‰
k    r}	 t          | ‰‰‰	¬¦  «        }nh# t          $ r[} ‰	j        d|j        ||j        |j        ¦  «         t          d|j        › d�¦  «        }|                     | |¦  «        cY d }~S d }~ww xY w‰rt          | |‰‰	¬¦  «          ‰| |¦  «        S )NÚREMOTE_ADDRÚ*)Útrusted_proxy_countÚtrusted_proxy_headersr   z3Malformed proxy header "%s" from "%s": %s value: %szHeader "z" malformed.)Úlog_warningr   )
ÚPROXY_HEADERSÚparse_proxy_headersr   Úwarningr   r   r   r   Úwsgi_responseÚclear_untrusted_headers)ÚenvironÚstart_responseÚuntrusted_headersÚremote_peerÚexÚerrorÚappÚclear_untrustedÚlog_untrustedr   Útrusted_proxyr(   r)   s         €€€€€€€r   Útranslate_proxy_headersz9proxy_headers_middleware.<locals>.translate_proxy_headers$   s#  ø€ Ý)ÐØ˜mÔ,ˆØ˜CÒÐ ;°-Ò#?Ð#?ðDÝ$7ØØ(;Ø*?Ø!ð	%ñ %ô %Ð!Ð!øõ (ð 	Dð 	Dð 	DØ�”ØIØ”IØØ”IØ”Hñô ð õ #Ð#E¨b¬iÐ#EÐ#EÐ#EÑFÔF�Ø×*Ò*¨7°NÑCÔCÐCÐCÐCÐCÐCÐCøøøøð	Døøøð ð 	Ý#ØÐ*¸Èfðñ ô ð ð ˆs�7˜NÑ+Ô+Ð+s   ž2 ²
B¼ABÂBÂB© )r6   r9   r(   r)   r7   r8   r   r:   s   ``````` r   Úproxy_headers_middlewarer<      sH   øøøøøøø€ ð,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð< #Ð"r   c           	      óþ  — |€t          ¦   «         }g }dx}x}x}}d }	t          t          ¦  «        }
d„ }d|v �r d| v �r	 g }| d                              d¦  «        }|D ]h}|                     ¦   «         }t	          |¦  «        }d|vr*d|v r&|d         d	k    r|                     d
|› d	�¦  «         ŒS|                     |¦  «         Œi|| d …         }|d         }	|
                     d¦  «         d                     || d …         ¦  «                             ¦   «         | d<   n6# t          $ r)}t          dt          |¦  «        | d         ¦  «        ‚d }~ww xY wd|v rñd| v rí	 g }| d                              d¦  «        }|D ]:}|                     ¦   «         }t	          |¦  «        }|                     |¦  «         Œ;|| d …         }|d         }|
                     d¦  «         d                     || d …         ¦  «                             ¦   «         | d<   n6# t          $ r)}t          dt          |¦  «        | d         ¦  «        ‚d }~ww xY wd|v r~	 t	          |                      dd¦  «        ¦  «        }d|v r
 |¦   «          |
                     d¦  «         n6# t          $ r)}t          dt          |¦  «        | d         ¦  «        ‚d }~ww xY wd|v r~	 t	          |                      dd¦  «        ¦  «        }d|v r
 |¦   «          |
                     d¦  «         n6# t          $ r)}t          dt          |¦  «        | d         ¦  «        ‚d }~ww xY wd|v r|
                     d¦  «         d|v r!|                      dd ¦  «        }t          dhz
  }
|�rg }|                     d¦  «        }	 |D �]^}|                     ¦   «         }dx}x}}dx}}|                     d¦  «        D �]}|                     ¦   «         }|sŒ|                     d ¦  «        \  }}}|d k    rt          d!¦  «        ‚|                     ¦   «         |k    rt          d"¦  «        ‚|                     ¦   «         |k    rt          d#¦  «        ‚|d$k    rt	          |¦  «        }Œ¬|d%k    rt	          |¦  «        }ŒÂ|d&k    rt	          |¦  «        }ŒØ|d'k    rt	          |¦  «        }Œî |j        d(|z  ¦  «         �Œ|                     t!          ||||¦  «        ¦  «         �Œ`n6# t          $ r)}t          d)t          |¦  «        | d         ¦  «        ‚d }~ww xY w|| d …         }d                     || d …         ¦  «                             ¦   «         | d<   |d d d…         D ]}|j        p|	}	|j        p|}|j        p|}Œ|rD|                     ¦   «         }|d*vrt          |rd+ndd,|¦  «        ‚|| d-<   |s|d.k    rd/}|d0k    rd1}|ràd|v r[|d         d	k    rO|                     dd2¦  «        \  }}|                     ¦   «         t          |¦  «        }}||k    r|}|| d3<   || d4<   n�|| d3<   || d4<   |ru|d5vrd6                     ||¦  «        | d4<   nW|d/k    r&| d-         d.k    rd6                     ||¦  «        | d4<   n+|d1k    r%| d-         d0k    rd6                     ||¦  «        | d4<   |rt          |¦  «        | d7<   |	r”d|	v ra|	d         d	k    rU|	                     dd2¦  «        \  }}t-          |                     ¦   «         ¦  «        | d8<   |                     ¦   «         | d9<   n$t-          |	                     ¦   «         ¦  «        | d8<   | d8         | d:<   |
S );NÚ c                  ó    — t          d¦  «        ‚)Nz8Unspecified behavior for multiple values found in header)Ú
ValueErrorr;   r   r   Úraise_for_multiple_valuesz6parse_proxy_headers.<locals>.raise_for_multiple_valuesP   s   € ÝÐSÑTÔTÐTr   zx-forwarded-forÚHTTP_X_FORWARDED_FORú,ú.ú:éÿÿÿÿú]ú[r   r
   zX-Forwarded-Forzx-forwarded-hostÚHTTP_X_FORWARDED_HOSTr   zX-Forwarded-Hostzx-forwarded-protoÚHTTP_X_FORWARDED_PROTOr   zX-Forwarded-Protozx-forwarded-portÚHTTP_X_FORWARDED_PORTr   zX-Forwarded-Portzx-forwarded-byr	   Ú	forwardedÚHTTP_FORWARDEDr   ú;ú=z"Invalid forwarded-pair missing "="z)Token may not be surrounded by whitespacez)Value may not be surrounded by whitespacer   Úforr   r   zUnknown Forwarded token: %sr   >   ÚhttpÚhttpszForwarded Proto=zunsupported proto valuezwsgi.url_schemerQ   Ú80rR   Ú443r   ÚSERVER_NAMEÚ	HTTP_HOST>   rS   rT   z{}:{}ÚSERVER_PORTr&   ÚREMOTE_PORTÚREMOTE_HOST)Úsetr+   ÚsplitÚstripr   ÚappendÚremoveÚjoinÚ	Exceptionr   ÚstrÚgetÚlowerÚ	partitionr@   r-   r   r   r   r   ÚrsplitÚformatÚstrip_brackets)r0   r(   r)   r   Úforwarded_forÚforwarded_hostÚforwarded_protoÚforwarded_portrL   Úclient_addrr2   rA   Úraw_forwarded_forÚforward_hopr4   Úforwarded_host_multipleÚraw_forwarded_hostÚforward_hostÚproxiesÚraw_forwardedÚforwarded_elementÚforwarded_byÚpairÚtokenÚequalsr   Úproxyr   ÚportÚaddrs                                 r   r,   r,   E   s§	  € ð Ð$Ý #¡¤Ðà€MØDFÐF€NÐF�_ÐF ~¸	Ø€KÝ�MÑ*Ô*ÐðUð Uð Uð Ð1Ð1Ñ1Ð6LÐPWÐ6WÑ6Wð	ØˆMà 'Ð(>Ô ?× EÒ EÀcÑ JÔ JÐØ0ð 6ð 6�Ø)×/Ò/Ñ1Ô1�Ý& {Ñ3Ô3�ð ˜kÐ)Ð)Ø˜;Ð&Ð&¨;°r¬?¸cÒ+AÐ+Aà!×(Ò(Ð);¨[Ð);Ð);Ð);Ñ<Ô<Ð<Ð<à!×(Ò(¨Ñ5Ô5Ð5Ð5à)Ð+>Ð*>Ð*?Ð*?Ô@ˆMØ'¨Ô*ˆKà×$Ò$Ð%6Ñ7Ô7Ð7Ø.1¯hªhØ!Ð#6Ð"6Ð"7Ð"7Ô8ñ/ô /çŠe‰gŒgð Ð*Ñ+Ð+øõ ð 	ð 	ð 	Ý&Ø!¥3 r¡7¤7¨GÐ4JÔ,Kñô ð øøøøð	øøøð 	Ð3Ð3Ð3Ø# wÐ.Ð.ð	Ø&(Ð#à!(Ð)@Ô!A×!GÒ!GÈÑ!LÔ!LÐØ 2ð =ð =�Ø+×1Ò1Ñ3Ô3�Ý'¨Ñ5Ô5�Ø'×.Ò.¨|Ñ<Ô<Ð<Ð<à&=Ð?RÐ>RÐ>SÐ>SÔ&TÐ#Ø4°QÔ7ˆNà×$Ò$Ð%7Ñ8Ô8Ð8Ø/2¯xªxØ"Ð$7Ð#7Ð#8Ð#8Ô9ñ0ô 0çŠe‰gŒgð Ð+Ñ,Ð,øõ ð 	ð 	ð 	Ý&Ø"¥C¨¡G¤G¨WÐ5LÔ-Mñô ð øøøøð	øøøð
 Ð3Ð3Ð3ð	Ý& w§{¢{Ð3KÈRÑ'PÔ'PÑQÔQˆOØ�oÐ%Ð%Ø)Ð)Ñ+Ô+Ð+Ø×$Ò$Ð%8Ñ9Ô9Ð9Ð9øÝð 	ð 	ð 	Ý&Ø#¥S¨¡W¤W¨gÐ6NÔ.Oñô ð øøøøð	øøøð
 Ð2Ð2Ð2ð	Ý% g§k¢kÐ2IÈ2Ñ&NÔ&NÑOÔOˆNØ�nÐ$Ð$Ø)Ð)Ñ+Ô+Ð+Ø×$Ò$Ð%7Ñ8Ô8Ð8Ð8øÝð 	ð 	ð 	Ý&Ø"¥C¨¡G¤G¨WÐ5LÔ-Mñô ð øøøøð	øøøð
 Ð0Ð0Ð0ð 	× Ò Ð!1Ñ2Ô2Ð2àÐ+Ð+Ð+Ø—K’KÐ 0°$Ñ7Ô7ˆ	Ý)¨[¨MÑ9Ðð ñ K=ØˆØ!Ÿš¨Ñ,Ô,ˆð/	XØ%2ð ,ñ ,Ð!ð %6×$;Ò$;Ñ$=Ô$=Ð!àCEÐE�ÐE °Ø02Ð2� à-×3Ò3°CÑ8Ô8ð Nñ N�DØŸ:š:™<œ<�Dàð !Ø à+/¯>ª>¸#Ñ+>Ô+>Ñ(�E˜6 5à ’}�}Ý(Ð)MÑNÔNÐNà—{’{‘}”}¨Ò-Ð-Ý(Ð)TÑUÔUÐUà—{’{‘}”}¨Ò-Ð-Ý(Ð)TÑUÔUÐUà ’}�}Ý'/°¡¤˜˜à %š˜Ý(0°©¬˜˜à &š˜Ý)1°%©¬˜˜à 'Ò)Ð)Ý*2°5©/¬/˜˜ð '˜œÐ'DÀuÑ'LÑMÔMÐMÑMà—’ÝØ$ m°^À_ñô ñô ð ñ ðQ,øõZ ð 	Xð 	Xð 	XÝ& {µC¸±G´G¸WÐEUÔ=VÑWÔWÐWøøøøð	Xøøøð Ð.Ð.Ð/Ð/Ô0ˆØ$'§H¢HØÐ.Ð.Ð/Ð/Ô0ñ%
ô %
ç
Š%‰'Œ'ð 	Ð Ñ!ð& ˜T˜T˜r˜T”]ð 	=ð 	=ˆEØœ*Ð3¨ˆKØ"œZÐ9¨>ˆNØ#œkÐ<¨_ˆOˆOàð 'Ø)×/Ò/Ñ1Ô1ˆàÐ"3Ð3Ð3Ý&Ø&/ÐHÐ"Ð"Ð5HØ)Øñô ð ð &5ˆÐ!Ñ"àð 	'Ø &Ò(Ð(Ø!%�à 'Ò)Ð)Ø!&�àð  Ø�.Ð Ð  ^°BÔ%7¸3Ò%>Ð%>Ø'×.Ò.¨s°AÑ6Ô6‰JˆD�$ØŸš™œ¥s¨4¡y¤y�$ˆDð  Ò%Ð%Ø!%�ð &*ˆG�MÑ"Ø#1ˆG�KÑ Ð ð &4ˆG�MÑ"Ø#1ˆG�KÑ àð Ø!¨Ð6Ð6Ø+2¯>ª>Ø&¨ñ,ô ,�G˜KÑ(Ð(ð $ tÒ+Ð+°Ð8IÔ0JÈfÒ0TÐ0TØ+2¯>ª>Ø&¨ñ,ô ,�G˜KÑ(Ð(ð $ uÒ,Ð,°Ð9JÔ1KÈwÒ1VÐ1VØ+2¯>ª>Ø&¨ñ,ô ,�G˜KÑ(ð ð 5Ý!$ ^Ñ!4Ô!4ˆ�Ñàð 8Ø�+ÐÐ +¨b¤/°SÒ"8Ð"8Ø$×+Ò+¨C°Ñ3Ô3‰JˆD�$Ý%3°D·J²J±L´LÑ%AÔ%AˆG�MÑ"Ø%)§Z¢Z¡\¤\ˆG�MÑ"Ð"å%3°K×4EÒ4EÑ4GÔ4GÑ%HÔ%HˆG�MÑ"Ø!(¨Ô!7ˆ�ÑàÐs|   ¿C#D# Ä#
EÄ-$EÅEÅ"B5H È
IÈ"$IÉIÉAJ Ê
KÊ$$KËKËAL Ì
MÌ&$M
Í
MÎ+E"T Ô
UÔ$T<Ô<Uc                 óJ   — | d         dk    r| d         dk    r
| dd…         S | S )Nr   rH   rF   rG   r   r;   )r{   s    r   rg   rg   >  s.   € ØˆA„w�#‚~€~˜$˜rœ( cš/˜/Ø�A�b�DŒzÐØ€Kr   c                 ó”   ‡ — ˆ fd„|D ¦   «         }|r4|r4d„ |D ¦   «         } |j         dd                     |¦  «        ¦  «         d S d S d S )Nc                 óJ   •— g | ]}‰                      d |z   d¦  «        du¯|‘Œ S )ÚHTTP_F)Úpop)Ú.0r   r0   s     €r   ú
<listcomp>z+clear_untrusted_headers.<locals>.<listcomp>G  sA   ø€ ð !ð !ð !àØ�;Š;�w Ñ'¨Ñ/Ô/°uÐ<Ð<ð 	à<Ð<Ð<r   c                 ór   — g | ]4}d                       d„ |                     d¦  «        D ¦   «         ¦  «        ‘Œ5S )ú-c              3   ó>   K  — | ]}|                      ¦   «         V — Œd S r   )Ú
capitalize)r�   Úxs     r   ú	<genexpr>z5clear_untrusted_headers.<locals>.<listcomp>.<genexpr>O  s*   è è € Ð?Ð?¨�Q—\’\‘^”^Ð?Ð?Ð?Ð?Ð?Ð?r   Ú_)r_   r[   )r�   r   s     r   r‚   z+clear_untrusted_headers.<locals>.<listcomp>N  sO   € ð %
ð %
ð %
àð �HŠHÐ?Ð?¨V¯\ª\¸#Ñ->Ô->Ð?Ñ?Ô?Ñ?Ô?ð%
ð %
ð %
r   zNRemoved untrusted headers (%s). Waitress recommends these be removed upstream.z, )r-   r_   )r0   r2   r*   r   Úuntrusted_headers_removeds   `    r   r/   r/   D  s¨   ø€ ð!ð !ð !ð !à'ð!ñ !ô !Ðð ð 	
Ð0ð 	
ð%
ð %
à3ð%
ñ %
ô %
Ð!ð 	ˆŒð à�IŠIÐ/Ñ0Ô0ñ	
ô 	
ð 	
ð 	
ð 	
ð	
ð 	
ð 	
ð 	
r   )Úcollectionsr   Ú	utilitiesr   r   r   Ú	frozensetr+   r   r`   r   r<   r,   rg   r/   r;   r   r   ú<module>rŽ      s  ðØ "Ð "Ð "Ð "Ð "Ð "à 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3à�	ðð ð ñ	ô 	€ð ˆJ�{Ð$CÐ$CÐ$CÑDÔD€	ð0ð 0ð 0ð 0ð 0˜9ñ 0ô 0ð 0ð ØØØØØð'#ð '#ð '#ð '#ðV AGðvð vð vð vðrð ð ð -2¸&ð
ð 
ð 
ð 
ð 
ð 
r   