+
    i  c                   sl   ^ RI t^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t
^ RIHt . R8Ot^PtRtRtRtRtRt]! 4       P+                  ]P,                  P.                  4       ]P,                  P.                  P1                  4        U u/ uF  q V P2                  bK  	  up tRt^dtR9t]P<                  ! R4      P>                  t ]P<                  ! R4      PB                  t"]P<                  ! R4      t#]P<                  ! R4      t$0 R:mt%R;R lt&R R lt' ! R  R!]PP                  PR                  4      t*R" t+]*3R# lt,]*3R$ lt- ! R% R]P\                  4      t/R& t0 ! R' R4      t1 ^ RI2t2 ! R( R)]14      t3]Pi                  R)4        ! R* R]64      t7 ! R+ R]74      t8 ! R, R]74      t9 ! R- R]74      t: ! R. R]74      t; ! R/ R	]74      t< ! R0 R
]74      t= ! R1 R]74      t> ! R2 R]>4      t? ! R3 R]>4      t@ ! R4 R]>4      tA ! R5 R]74      tB ! R6 R]74      tC ! R7 R]D]B4      tE]7tFR# u up i   ]5 d     Li ; i)<    N)urlsplitHTTPResponseHTTPConnectionHTTPExceptionNotConnectedUnknownProtocolUnknownTransferEncodingUnimplementedFileModeIncompleteRead
InvalidURLImproperConnectionStateCannotSendRequestCannotSendHeaderResponseNotReadyBadStatusLineLineTooLongRemoteDisconnectedi  ZUNKNOWNZIdlezRequest-startedzRequest-senti   s   [^:\s][^:\r\n]*s   \n(?![ \t])|\r(?![ \t\n])z[ - ]z[ -]c                 s    V P                  R 4      #   \         do   p\        TP                  TP                  TP                  TP
                  TP                  4       : RYP                  TP
                   :R RT: R24      RhRp?ii ; i)latin-1z (z.20z) is not valid Latin-1. Use z9.encode('utf-8') if you want to send it encoded in UTF-8.N)encodeUnicodeEncodeErrorZencodingobjectZstartZendZtitle)datanameZerr   && $/usr/lib64/python3.14/http/client.py_encoder      s{    
E{{9%% E LLJJIIGG ZZ\4		#''2D:; AE	EEs    BA)BBc                s0    V ^8  d   QhR\         R\         /# )i   enc_nameZreturn)bytes)Zformats   "r   __annotate__r      s       %     c                 sP    V P                  R 4      w  rpV'       d
   V R,          p V # )s   %   ])Z	partition)r   ZpercentZ_   &  r   _strip_ipv6_ifacer!      s)    #--d3HqDOr   c                   s&   a  ] tR t^t o R tRtV tR# )HTTPMessagec                s*   VP                  4       R ,           p\        V4      p. p^ pV P                  4        FX  pVRV P                  4       V8X  d   ^pMVR,          P                  4       '       g   ^ pV'       g   KG  VP	                  V4       KZ  	  V# ):N:N   N)lowerlenZkeysZisspaceappend)selfr   nZlstZhitlines   &&    r   getallmatchingheadersZ!HTTPMessage.getallmatchingheaders   s     zz|c!IIIKDBQx~~4'"X%%''s

4    
r    N)__name__
__module____qualname____firstlineno__r+   __static_attributes____classdictcell____classdict__   @r   r"   r"      s      r   r"   c                 s   . p V P                  \        ^,           4      p\        V4      \        8  d   \        R4      hVP	                  V4       \        V4      \
        8  d   \        R\
        ,          4      hVR9   g   K   V# )Tzheader linezgot more than %d headers   
s   
r   )readline_MAXLINEr&   r   r'   _MAXHEADERSr   )fpheadersr*   r    r   _read_headersr=      so     G
{{8a<(t9xm,,tw<+% :[ HII((Nr   c                 s    R P                  V 4      P                  R4      p\        P                  P	                  VR7      P                  V4      # )r   
iso-8859-1)_class)joindecodeemailZparserZParserZparsestr)Zheader_linesr?   Zhstringr   r   _parse_header_linesrC      s@     hh|$++L9G<<f-66w??r   c                 s.    \        V 4      p\        W!4      # N)r=   rC   )r;   r?   r<   r   r   parse_headersrE      s     BGw//r   c                   s  a a ] tR tRt oR!R ltR tR tR tR tV 3R lt	V 3R lt
R	 tR
 tR"R ltR tR tR tR tR"R ltR tR tR tR#R ltR#R ltR#V 3R lltR tR tR tR"R ltR tR tR tR t R t!R t"Vt#V ;t$# )$r   i  c                s    VP                  R 4      V n        W n        W0n        R;V n        V n        \        V n        \        V n        \        V n	        \        V n
        \        V n        \        V n        \        V n        R# )ZrbN)Zmakefiler;   
debuglevel_methodr<   msg_UNKNOWNversionstatusreasonchunked
chunk_leftlength
will_close)r(   sockrF   methodurls   &&&&&r   __init__ZHTTPResponse.__init__
  sa     --%$ #'&tx  ""r   c                s   \        V P                  P                  \        ^,           4      R4      p\	        V4      \        8  d   \        R4      hV P                  ^ 8  d   \        R\        V4      4       V'       g   \        R4      h VP                  R^4      w  r#pTP                  R4      '       g   T P                  4        \        T4      h \        X4      pT^d8  g   TR8  d   \        T4      h Y#X3#   \         d/     TP                  R^4      w  r#Rp L  \         d    Rp  Li ; ii ; i  \         d    \        T4      hi ; i)	r$   r>   zstatus linezreply:z-Remote end closed connection without responseN zHTTP/i  )strr;   r8   r9   r&   r   rF   printreprr   Zsplit
ValueError
startswith_close_connr   int)r(   r*   rJ   rK   rL   s   &    r   _read_statusZHTTPResponse._read_status(  sA   477##HqL1<@t9xm,,??Q(DJ' % &1 2 2	&*jjq&9#GV !!'**%%	&[F|v|#D))  , &&%  	"&**T1"5 		   	&%%	&s6   
C; $D7 ;D4DD0,D4/D00D47Ec                s&   V P                   e   R #  V P                  4       w  rpV\        8w  d   M5\        V P                  4      pV P
                  ^ 8  d   \        RV4       ?KU  V;V n        V n        VP                  4       V n
        VR9   d	   ^
V n        M*VP                  R4      '       d	   ^V n        M\        V4      h\        V P                  4      ;V n         V n        V P
                  ^ 8  d8   V P                   P!                  4        F  w  rV\        RVR,           V4       K  	  V P                   P#                  R4      pV'       d%   VP%                  4       R8X  d   RV n        R V n        MRV n        V P+                  4       V n        R V n        V P                   P#                  R	4      pV'       d=   V P&                  '       g+    \1        V4      V n        V P.                  ^ 8  d   R V n        MR V n        V\4        8X  g.   V\6        8X  g#   ^dTu;8:  d   ^8  g   M V P8                  R
8X  d   ^ V n        V P,                  '       g.   V P&                  '       g   V P.                  f
   RV n        R # R # R # R #   \2         d    R T n         Li ; i)NTzheaders:zHTTP/1.header:r#   transfer-encodingrM   Fcontent-lengthHEAD)zHTTP/1.0zHTTP/0.9)r<   r]   ZCONTINUEr=   r;   rF   rW   coderK   striprL   rJ   rZ   r   rE   rH   itemsgetr%   rM   rN   _check_closerP   rO   r\   rY   Z
NO_CONTENTZNOT_MODIFIEDrG   )	r(   rJ   rK   rL   Zskipped_headershdrZvalZtr_encrO   	   &        r   beginZHTTPResponse.beginI  s   <<# &*&7&7&9#GV!+DGG4O"j/2"((	DKlln..DL	**DL!'**"/"88tx??Q LL..0isC0 1 !!"56flln	1DL"DO DL ++- !!"23$,,,'!&k ;;?"&DKDK j Fl$:6CLLF"DK
 KK"DO     #  #"#s   I; ;JJc                s   V P                   P                  R 4      pV P                  ^8X  d"   V'       d   RVP                  4       9   d   R# R# V P                   P                  R4      '       d   R# V'       d   RVP                  4       9   d   R# V P                   P                  R4      pV'       d   RVP                  4       9   d   R# R# )Z
connectioncloseTFz
keep-alivezproxy-connection)r<   re   rJ   r%   )r(   ZconnZpconnr    r   rf   ZHTTPResponse._check_close  s    ||-<<2 4::</ <<L)) LDJJL0   !34\U[[]2 r   c                sL    V P                   pR V n         VP                  4        R # rD   )r;   rj   )r(   r;      & r   r[   ZHTTPResponse._close_conn  s    WW

r   c                s   <  \         SV `  4        V P                  '       d   V P                  4        R # R #   T P                  '       d   T P                  4        i i ; irD   )superrj   r;   r[   r(   	__class__   &r   rj   ZHTTPResponse.close  sF    	#GMOwww  " twww  " s	   7 %Ac                s   < \         SV `  4        V P                  '       d   V P                  P                  4        R # R # rD   )rl   flushr;   rm   ro   r   rp   ZHTTPResponse.flush  s'    777GGMMO r   c                s    R # )Tr,   r(      &r   readableZHTTPResponse.readable  s    r   c                s    V P                   R J # rD   )r;   rq   rr   r   isclosedZHTTPResponse.isclosed  s     ww$r   c                s6   V P                   f   R# V P                  R8X  d   V P                  4        R# V P                  '       d   V P	                  V4      # Ve   V^ 8  d   V P
                  e   WP
                  8  d   V P
                  pV P                   P                  V4      pV'       g   V'       d   V P                  4        V# V P
                  eE   V ;P
                  \        V4      ,          un        V P
                  '       g   V P                  4        V# V P
                  f   V P                   P                  4       pM# V P                  V P
                  4      p^ T n        V P                  4        V#   \         d    T P                  4        h i ; i)Nr   ra   )
r;   rG   r[   rM   _read_chunkedrO   readr&   
_safe_readr	   )r(   amtsr   r   rv   ZHTTPResponse.read  s:   77?<<6!<<<%%c**?sax{{&3+<kkS!A   "
 H	 (s1v%{{{$$&H {{"GGLLN4A  H & $$&s   E; ;Fc                s>   V P                   f   ^ # V P                  R8X  d   V P                  4        ^ # V P                  '       d   V P	                  V4      # V P
                  e3   \        V4      V P
                  8  d   \        V4      ^ V P
                   pV P                   P                  V4      pV'       g   V'       d   V P                  4        V# V P
                  e<   V ;P
                  V,          un        V P
                  '       g   V P                  4        V# )Nra   )	r;   rG   r[   rM   _readinto_chunkedrO   r&   
memoryviewreadinto)r(   br)   r   r   r|   ZHTTPResponse.readinto  s    
 77?<<6!<<<))!,,;;"1v#qM!DKK0
 GGQQ 
 	 [[$KK1K;;;  "r   c                s    V P                   P                  \        ^,           4      p\        V4      \        8  d   \	        R4      hVP                  R4      pV^ 8  d   VRV p \        V^4      #   \         d    T P                  4        h i ; i)r$   z
chunk sizes   ;N)	r;   r8   r9   r&   r   Zfindr\   rY   r[   )r(   r*   ir    r   _read_next_chunk_sizeZ"HTTPResponse._read_next_chunk_size  s    ww1-t9xl++IIdO68D	tR=  	 		s   $A0 0Bc                s     V P                   P                  \        ^,           4      p\        V4      \        8  d   \	        R4      hV'       g   R# VR9   g   KY  R# )Tztrailer lineNr6   )r;   r8   r9   r&   r   r(   r*   rk   r   _read_and_discard_trailerZ&HTTPResponse._read_and_discard_trailer.  sJ     77##HqL1D4y8#!.11 ,,r   c                s   V P                   pV'       gV   Ve   V P                  ^4        V P                  4       pT^ 8X  d#   T P                  4        T P                  4        R pYn         V#   \         d    \	        R4      hi ; iNr   )rN   rw   r   rY   r	   r   r[   )r(   rN   rk   r   _get_chunk_leftZHTTPResponse._get_chunk_left<  s     __
%"*!779
 Q..0  "!
(O  *$S))*s   A, ,Bc                s   Ve
   V^ 8  d   R p. p V P                  4       ;pen   Ve5   W8:  d/   VP                  V P                  V4      4       W1,
          V n        M5VP                  V P                  V4      4       Ve	   W,          p^ V n        K  RP	                  V4      #   \
         d!   p\        RP	                  T4      4      ThR p?ii ; ir   )r   r'   rw   rN   r@   r	   )r(   rx   valuerN   Zexc   &&   r   ru   ZHTTPResponse._read_chunkedT  s    ?sQwC	;!%!5!5!77:D?s'8LL!56&0&6DOT__Z89?%C"#88E?" 	; %1s:	;s   BB# #C.C		Cc                sZ   ^ p\        V4      p  V P                  4       pVf   V# \        V4      V8:  d'   V P                  V4      pWE,
          V n        W%,           # VRV pV P                  V4      pW5R pW%,          p^ V n        Kx    \
         d    \        \        T^ T 4      4      hi ; i)r    N)r{   r   r&   _safe_readintorN   r	   r   )r(   r}   Ztotal_bytesZmvbrN   r)   Ztemp_mvbs   &&     r   rz   ZHTTPResponse._readinto_chunkedh  s    m	:!113
%&&s8z)++C0A&0nDO&?*{
+''1"g "# 	: q;'7!899	:s   B 5B +B #B*c                s   \        V\        4      pV P                  P                  V4      p\	        V4      V8  d   V# \	        V4      V8  d   \        W1\	        V4      ,
          4      h\        P                  ! V4      pVP                  ^ ^4        \        W!V,
          4      pVP                  V P                  P                  V4      4       VP                  4       V8  d   VP                  4       # W$,          pVP                  4       V8  g   K  \        VP                  4       WP                  4       ,
          4      h)r    )Zmin_MIN_READ_BUF_SIZEr;   rv   r&   r	   ioZBytesIOZseekZwriteZtellZgetvalue)r(   rx   Zcursizer   Zdeltar   r   rw   ZHTTPResponse._safe_read  s     c-.ww||G$t9Kt9w SY77zz$		!Q w/EJJtww||E*+yy{c!}}&Gyy{W$$T]]_cIIK6GHHr   c                s    \        V4      pV P                  P                  V4      pW28  d   \        \	        VR V 4      W#,
          4      hV# rD   )r&   r;   r|   r	   r   )r(   r}   rx   r)      &&  r   r   ZHTTPResponse._safe_readinto  sB    !fGGQ7 q!usu55r   c                s   V P                   e   V P                  R8X  d   R# V P                  '       d   V P                  V4      # V P                  e$   V^ 8  g   WP                  8  d   V P                  pV P                   P                  V4      pV'       g   V'       d   V P                  4        V# V P                  eE   V ;P                  \        V4      ,          un        V P                  '       g   V P                  4        V# Nra   r   )r;   rG   rM   _read1_chunkedrO   read1r[   r&   )r(   r)   resultr   r   r   ZHTTPResponse.read1  s     77?dllf4<<<&&q));;"A[[Aq!!
 	 [[$KK3v;&K;;;  "r   c                s    V P                   e   V P                  R8X  d   R# V P                  '       d   V P                  V4      # V P                   P	                  V4      # r   )r;   rG   rM   _peek_chunkedpeek)r(   r)      &&r   r   ZHTTPResponse.peek  sG     77?dllf4<<<%%a((ww||Ar   c                s  < V P                   e   V P                  R8X  d   R# V P                  '       d   \        SV `  V4      # V P
                  e$   V^ 8  g   WP
                  8  d   V P
                  pV P                   P	                  V4      pV'       g   V'       d   V P                  4        V# V P
                  eE   V ;P
                  \        V4      ,          un        V P
                  '       g   V P                  4        V# r   )r;   rG   rM   rl   r8   rO   r[   r&   )r(   Zlimitr   rn   s   && r   r8   ZHTTPResponse.readline  s    77?dllf4<<<7#E**;;"	U[[5HKKE!!%(%
 	 [[$KK3v;&K;;;  "r   c                s   V P                  4       pVe   V^ 8X  d   R# ^ Tu;8:  d   V8:  g   M TpV P                  P                  V4      pV ;P                  \	        V4      ,          un        V'       g   \        R4      hV# r   )r   r;   r   rN   r&   r	   )r(   r)   rN   rv   r   r   r   ZHTTPResponse._read1_chunked  sj     ))+
aQ$*$Aww}}Q3t9$ %%r   c                s     V P                  4       pTf   R # T P                  P                  T4      RT #   \         d     R # i ; i)r   N)r   r	   r;   r   )r(   r)   rN   r   r   r   ZHTTPResponse._peek_chunked  sP    	--/J  ww||J'44  		s   6 AAc                s6    V P                   P                  4       # rD   )r;   filenorq   rr   r   r   ZHTTPResponse.fileno  s    ww~~r   c                s    V P                   f   \        4       hV P                   P                  V4      ;'       g    Tp\        V\        4      '       g   \        VR4      '       g   V# RP                  V4      # )N__iter__z, )r<   r   Zget_all
isinstancerV   hasattrr@   )r(   r   Zdefaultr<   s   &&& r   	getheaderZHTTPResponse.getheader  s`     <<"$$,,&&t,77gs##77J+G+GN99W%%r   c                sx    V P                   f   \        4       h\        V P                   P                  4       4      # rD   )r<   r   listrd   rq   rr   r   
getheadersZHTTPResponse.getheaders  s-    <<"$$DLL&&())r   c                s    V # rD   r,   rq   rr   r   r   ZHTTPResponse.__iter__
  s    r   c                    V P                   # rD   )r<   rq   rr   r   infoZHTTPResponse.info  s    * ||r   c                r   rD   )rS   rq   rr   r   geturlZHTTPResponse.geturl&  s     xxr   c                r   rD   )rK   rq   rr   r   getcodeZHTTPResponse.getcode2  s    
 {{r   )rG   rN   rM   rb   rF   r;   r<   rO   rH   rL   rK   rJ   rP   )r    NNrD   ))%r-   r.   r/   r0   rT   r]   ri   rf   r[   rj   rp   rs   rt   rv   r|   r   r   r   ru   rz   rw   r   r   r   r8   r   r   r   r   r   r   r   r   r   r1   r2   __classcell__rn   r4      @@r   r   r     s     #<'BF#P:
#
&P D 0;(:0I6&"5 &(*
.
 r   c                 s    \         P                  ! 4       pV ^8X  d   VP                  R.4       VP                  e   RVn        V# )i   zhttp/1.1T)sslZ_create_default_https_contextZset_alpn_protocolsZpost_handshake_auth)Zhttp_versioncontextrk   r   _create_https_contextr   :  sC     //1Gr""J<0"".&*#Nr   c                   s*  a  ] tR tRt o ^tRt]t]t	^t
^ t]R 4       t]R 4       tR]P                   RR3R ltR!R ltR	 tR
 tR tR tR tR tR tR tR tR tR"R ltR#R ltR tR t R t!R t"R t#R$RR/R llt$R/ 3RR/R llt%R t&R t'R t(V t)R# )%r   iG  zHTTP/1.1c                s6    \        V \        P                  4      # rD   )r   r   Z
TextIOBase)Zstreamrr   r   
_is_textIOZHTTPConnection._is_textIOQ  s     &"--00r   c                s   V f   VP                  4       \        9   d   ^ # R # \        V R4      '       d   R #  \        V 4      pVP                  #   \
         d     Mi ; i\        T \        4      '       d   \        T 4      # R # )Nrv   )	Zupper_METHODS_EXPECTING_BODYr   r{   Znbytes	TypeErrorr   rV   r&   )bodyrR   Zmvr   r   _get_content_lengthZ"HTTPConnection._get_content_lengthW  sw     < ||~!884  	D!B99 		 dC  t9s   A AAN    c                sL   W0n         W@n        WPn        R V n        . V n        R V n        \        V n        R V n        R V n	        R V n
        / V n        R V n        V P                  W4      w  V n        V n        V P!                  V P                  4       \"        P$                  V n        R # rD   )timeoutsource_address	blocksizerQ   _buffer_HTTPConnection__response_CS_IDLE_HTTPConnection__staterG   _tunnel_host_tunnel_port_tunnel_headers_raw_proxy_headers_get_hostporthostport_validate_hostsocketZcreate_connection_create_connection)r(   r   r   r   r   r   s   &&&&&&r   rT   ZHTTPConnection.__init__w  s    ,"	  !"&!%!3!3D!?DIDII& #)":":r   c                s"   V P                   '       d   \        R 4      hV P                  W4      w  V n        V n        V'       d   VP                  4       V n        MV P                  P                  4        \        ;QJ d&    R V P                   4       F  '       g   K   RM	  RM! R V P                   4       4      '       gN   V P                  P                  R4      P                  R4      pRW@P                  3,          V P                  R&   R# R# )	z.Can't set up tunnel for established connectionc              3   sF   "   T F  qP                  4       R 8H  x  K  	  R# 5i)r   Nr%   ).0headerrk   r   	<genexpr>Z,HTTPConnection.set_tunnel.<locals>.<genexpr>  s     O:N<<>V+:Ns   !TFidnaasciiz%s:%dHostN)rQ   ZRuntimeErrorr   r   r   Zcopyr   ZclearZanyr   rA   )r(   r   r   r<   Zencoded_hosts   &&&& r   
set_tunnelZHTTPConnection.set_tunnel  s    , 999OPP/3/A/A$/M,4,#*<<>D   &&(sO$:N:NOsssO$:N:NOOO,,33F;BB7KL+2//61 ,1D  ( Pr   c                s   VfP   VP                  R4      pVP                  R4      pW48  d    \        W^,           R  4      pTR T pMV P                  pV'       d"   V^ ,          R8X  d   VR,          R8X  d   V^R pW3#   \         d;    Y^,           R  R8X  d   T P                  p Lg\	        RY^,           R  ,          4      hi ; i)Nr#   Z]rU   znonnumeric port: '%s'Z[r   )Zrfindr\   rY   default_portr
   )r(   r   r   r~   Zjs   &&&  r   r   ZHTTPConnection._get_hostport  s    <

3A

3AuOtaCDz?D BQx((DGsNtBx3":D| " OaCDzR'#00()@4!:)MNN	Os   B   'C)Cc                s    Wn         R # rD   )rF   )r(   Zlevelr   r   set_debuglevelZHTTPConnection.set_debuglevel  s    r   c                sP    R V9   d   V^ ,          ^[8w  d   RV,           R,           # V# )s   :s   [r   r,   )r(   Zipr   r   
_wrap_ipv6ZHTTPConnection._wrap_ipv6  s(    2:"Q%7*"9t##	r   c                s   R V P                  V P                  P                  R4      4      V P                  V P                  P                  R4      3,          pV.pV P
                  P                  4        F+  w  r4VP                  V RV R2P                  R4      4       K-  	  VP                  R4       V P                  RP                  V4      4       ?V P                  V P                  V P                  R7      p VP                  4       w  rgp\        VP                  4      V n        V P"                  ^ 8  d.   V P                    F  p\%        R	VP'                  4       4       K  	  V\(        P*                  P,                  8w  d0   V P/                  4        \1        R
V RVP3                  4        24      h VP/                  4        R#   TP/                  4        i ; i)s   CONNECT %s:%d %s
r   r   z: 
r   r7   r   rR   r^   zTunnel connection failed:  N)r   r   r   r   _http_vsn_strr   rd   r'   sendr@   response_classrQ   rG   r]   r=   r;   r   rF   rW   rA   http
HTTPStatusZOKrj   OSErrorrc   )	r(   connectr<   r   r   responserJ   rb   messagerh   r   _tunnelZHTTPConnection._tunnel  s   )OOD--44V<=%%g.-0 0 )!11779MFNNfXRwd3::9EF :w 			#((7#$&&tyy&F	'/'<'<'>$WG&3HKK&@D#""55F)V]]_5 6 t)))

 :4&'--/ARSTT *
 NNHNNs   >B9G
 
Gc                sL    V P                   e   \        V P                   4      # R # rD   )r   rC   rq   rr   r   get_proxy_response_headersZ)HTTPConnection.get_proxy_response_headers  s/     &&2   7 78	
 	
r   c                s   \         P                  ! R W P                  V P                  4       V P	                  V P                  V P                  3V P
                  V P                  4      V n         V P                  P                  \        P                  \        P                  ^4       V P                  '       d   V P!                  4        R# R#   \         d+   pTP                  \        P                  8w  d   h  Rp?LVRp?ii ; i)zhttp.client.connectN)sysauditr   r   r   r   r   rQ   Z
setsockoptr   ZIPPROTO_TCPZTCP_NODELAYr   errnoZENOPROTOOPTr   r   r(   Zerk   r   r   ZHTTPConnection.connect  s    		'yy$))D++YYtyy!4<<1D1DF		II  !3!3V5G5GK
 LLN 	  	ww%+++ ,	s   09C D C??Dc                s0   \         V n         V P                  pV'       d   R V n        VP                  4        V P                  pV'       d   R V n        VP                  4        R # R #   T P                  pT'       d   R T n        TP                  4        i i ; irD   )r   r   rQ   rj   r   )r(   rQ   r   r    r   rj   ZHTTPConnection.close  sr    		!99D 	

H"&   H"&  s   A' A' '.Bc                s   V P                   f.   V P                  '       d   V P                  4        M
\        4       hV P                  ^ 8  d   \        R\        V4      4       \        VR4      '       d   V P                  ^ 8  d   \        R4       V P                  V4      pV'       d   V P                  ^ 8  d   \        R4       VP                  V P                  4      ;p'       dN   V'       d   VP                  R4      p\        P                  ! RW4       V P                   P                  V4       Kp  R # \        P                  ! RW4        V P                   P                  V4       R #   \         dn    \!        T\"        P$                  P&                  4      '       d(   T F  pT P                   P                  T4       K   	   R # \        R\)        T4      ,          4      hi ; i)Nzsend:rv   zsending a readableencoding file using iso-8859-1r>   zhttp.client.sendz9data should be a bytes-like object or an iterable, got %r)rQ   	auto_openr   r   rF   rW   rX   r   r   rv   r   r   r   r   Zsendallr   r   collectionsZabcZIterabletype)r(   r   r   	datablockZdr   r   r   ZHTTPConnection.send  sf    99~~~"n$??Q'4:&4  "*+__T*F$//A-67#yy88)8 ) 0 0 >I		,d>		!!),		$d1	GIId# 	G$ 8 899AII%%a(    !9;?:!F G G	Gs   E, ,AG$G$c                s<    V P                   P                  V4       R # rD   )r   r'   )r(   ry   r   r   _outputZHTTPConnection._output>  s    
 	Ar   c              #  s4  "   V P                   ^ 8  d   \        R4       V P                  V4      pV'       d   V P                   ^ 8  d   \        R4       VP                  V P                  4      ;p'       d    V'       d   VP                  R4      pVx  KB  R# 5i)r    zreading a readabler   r>   N)rF   rW   r   rv   r   r   )r(   rs   r   r   r   r   _read_readableZHTTPConnection._read_readableE  st     ??Q&'*doo)23#==88i8%,,\:	O 9s   5B>B7B?BFc                s   V P                   P                  R4       RP                  V P                   4      pV P                   R V P                  V4       Ve   \	        VR4      '       d   V P                  V4      pM \        V4       V3pV F  pV'       g   V P                  ^ 8  d   \        R4       K)  V'       d>   V P                  ^8X  d-   \        V4      R R2P                  R	4      V,           R,           pV P                  V4       K  	  V'       d'   V P                  ^8X  d   V P                  R
4       R# R# R# R#   \         d:     \        T4      p L  \         d    \        R\        T4      ,          4      hi ; ii ; i)r   r7   :NNNNrv   zAmessage_body should be a bytes-like object or an iterable, got %rzZero length chunk ignoredZXr   r   s   0

)r   r   )r   Zextendr@   r   r   r   r{   r   Ziterr   rF   rW   	_http_vsnr&   r   )r(   message_bodyencode_chunkedrH   ZchunksZchunks   &&&   r   _send_outputZHTTPConnection._send_outputP  s^    	J'll4<<(LLO		## |V,, ,,\:-
 |, +_F*9:!dnn&:"5z!nD188AEI!"E		%    $..B"6		,' #7~O $ ! >>!%l!3$ >' )H*.|*<)= > >>>s   >E FE'FFc                s   V P                   '       d(   V P                   P                  4       '       d   R V n         V P                  \        8X  d   \        V n        M\        V P                  4      hV P                  V4       Wn        T;'       g    RpV P                  V4       V: RV: RV P                  : 2pV P                  V P                  V4      4       V P                  ^8X  EdL   V'       Eg%   RpVP                  R4      '       d   \        V4      w  rv  pV'       d/    VP                  R4      pV P#                  R\%        V4      4       MV P&                  '       d   V P&                  p	V P(                  p
MV P*                  p	V P,                  p
 V	P                  R4      pV P/                  V4      pRV	9   d   \%        V4      pWP0                  8X  d   V P#                  RV4       M*VP3                  R4      pV P#                  RV: RV
: 24       V'       g   V P#                  R	R
4       R # R # R #   \          d    TP                  R4      p EL i ; i  \          d    T	P                  R4      p Li ; i)NZ/r   rU   r   r   r   r   r#   zAccept-EncodingZidentity)r   rt   r   r   _CS_REQ_STARTEDr   _validate_methodrG   _validate_pathr   r   _encode_requestr   rZ   r   r   r   	putheaderr!   r   r   r   r   r   r   rA   )r(   rR   rS   	skip_hostskip_accept_encodingrequestZnetlocZnilZ
netloc_encr   r   Zhost_encs   &&&&&       r   
putrequestZHTTPConnection.putrequest  s    ???t7799"DO* <<8#*DL#DLL11f% jjSC  &T-?-?@T))'23>>R 9 >>&))19#.Cc3;%+]]7%;
 NN6+<Z+HI(((#00#00#yy#yy7#';;w#7  $x8Hd{#4X#>000vx8#+??7#;v(D/IJ (0*= ( c . ;%+]]6%:
; . 7#';;v#67s$   (H: I :III<;I<c                s$    VP                  R 4      # )r   )r   )r(   r   r   r   r   ZHTTPConnection._encode_request  s    ~~g&&r   c                    \         P                  V4      pV'       d#   \        R V: RVP                  4       : R24      hR# )z)method can't contain control characters.  (found at least )N)$_contains_disallowed_method_pchar_researchrY   group)r(   rR   matchr   r   r   ZHTTPConnection._validate_method	  sI     5;;FC?z J'',{{}&7q:; ; r   c                r   z&URL can't contain control characters. r   r   N!_contains_disallowed_url_pchar_rer   r
   r   )r(   rS   r   r   r   r   ZHTTPConnection._validate_path  sL     288=EcW M005/@C D D r   c                r   r   r   )r(   r   r   r   r   r   ZHTTPConnection._validate_host  sL     288>EdX N005/@C D D r   c                st   V P                   \        8w  d   \        4       h\        VR 4      '       d   VP	                  R4      p\        V4      '       g   \        RV: 24      h\        V4      p\        V4       F  w  r4\        VR 4      '       d   VP	                  R4      W#&   M2\        V\        4      '       d   \        V4      P	                  R4      W#&   \        W#,          4      '       g   Kv  \        RW#,          : 24      h	  RP                  V4      pVR,           V,           pV P                  V4       R# )r   r   zInvalid header name r   zInvalid header value s   
	s   : N)r   r   r   r   r   _is_legal_header_namerY   r   Z	enumerater   r\   rV   _is_illegal_header_valuer@   r   )r(   r   valuesr~   Z	one_valuer   s   &&*   r   r   ZHTTPConnection.putheader"  s    
 <<?*"$$68$$]]7+F$V,,ABBf%f-LAy(++%,,Y7	Is++	N11':	'	22 fi!IJJ . v&%%'Vr   r   c               s    V P                   \        8X  d   \        V n         M
\        4       hV P	                  WR 7       R# )r   N)r   r   _CS_REQ_SENTr   r   )r(   r   r   s   &&$r   
endheadersZHTTPConnection.endheaders>  s1     <<?*'DL"$$,Fr   c               s,    V P                  WW4V4       R # rD   )_send_request)r(   rR   rS   r   r<   r   s   &&&&&$r   r   ZHTTPConnection.requestK  s     	6~Fr   c                s>   \        R  V 4       4      p/ pRV9   d   ^VR&   RV9   d   ^VR&   V P                  ! W3/ VB  RV9  dw   RV9  do   RpV P                  W14      pVf=   Ve8   V P                  ^ 8  d   \	        R	V,          4       R
pV P                  RR4       MV P                  R\        V4      4       MRpVP                  4        F  w  rV P                  W4       K  	  \        V\        4      '       d   \        VR4      pV P                  W5R7       R# )c              3   s@   "   T F  qP                  4       x  K  	  R # 5irD   r   )r   Zkrk   r   r   Z/HTTPConnection._send_request.<locals>.<genexpr>R  s      <GqGs   r   r   zaccept-encodingr   r`   r_   FNzUnable to determine size of %rTzTransfer-EncodingrM   zContent-Lengthr   r   )Z	frozensetr   r   rF   rW   r   rV   rd   r   r   r   )r(   rR   rS   r   r<   r   Zheader_namesZskipsZcontent_lengthrg   r   s   &&&&&&     r   r   ZHTTPConnection._send_requestP  s     <G <<\!!"E+,,-E()-u- </ #,6 "'!%!9!9$!G!)'??Q.!"BT"IJ)-':IFNN#3S5HI"N!--/JCNN3& *dC   4(D<r   c                s   V P                   '       d(   V P                   P                  4       '       d   R V n         V P                  \        8w  g   V P                   '       d   \	        V P                  4      hV P
                  ^ 8  d4   V P                  V P                  V P
                  V P                  R7      pM'V P                  V P                  V P                  R7      p  VP                  4        \        T n        TP                  '       d   T P                  4        T# Yn         T#   \         d    T P                  4        h i ; i   TP                  4        h ; i)Nr   )r   rt   r   r   r   rF   r   rQ   rG   ri   ZConnectionErrorrj   r   rP   )r(   r   rk   r   getresponseZHTTPConnection.getresponse~  s    ???t7799"DO" <<<'4???"4<<00??Q**499doo26,, + @H **499T\\*JH	 
 $DL"""


 O #+O # 

	NNs*   #D* 3E
 E
 "E
 *EE
 
E)Z
__responseZ__stater   r   rG   r   r   r   r   r   rF   r   r   rQ   r   r   )NN)NF)FFrD   )*r-   r.   r/   r0   r   r   r   r   	HTTP_PORTr   r   rF   Zstaticmethodr   r   r   _GLOBAL_DEFAULT_TIMEOUTrT   r   r   r   r   r   r   r   rj   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r1   r2   r3   r5   r   r   r   G  s     IM!NLIJ1 1
  > #'0N0N $;."1H( 
@
!#GJ	4(l}~';DD8Ge G )-b G$G
,=\= =r   c            	       sn   a a ] tR tRt o]tRR]P                  RRRRRR/V 3R llltV 3R	 lt	R
t
VtV ;t# )HTTPSConnectioni  Nr   r   r   r   r   c               st   < \         \        V `  WVVVR 7       Vf   \        V P                  4      pWPn        R# ))r   N)rl   r   rT   r   r   _context)r(   r   r   r   r   r   r   rn   s   &&&$$$$r   rT   ZHTTPSConnection.__init__  s>     /41$g2@<E 2 G /?#Mr   c                s   < \         SV `  4        V P                  '       d   V P                  pMV P                  pV P                  P                  V P                  VR 7      V n        R# ))server_hostnameN)rl   r   r   r   r   Zwrap_socketrQ   )r(   r  rn   s   & r   r   ZHTTPSConnection.connect  sT     GO   "&"3"3"&))11$))BQ 2 SDIr   )r   rQ   rD   )r-   r.   r/   r0   
HTTPS_PORTr   r   r   rT   r   r1   r2   r   r   r   r   r   r     sH      "	$ & > >	$$(	$26	$BF	$ 	$	S 	Sr   r   c                       ] tR tRtRtR# )r   i  r,   Nr-   r.   r/   r0   r1   r,   r   r   r   r     s     	r   c                   r  )r   i  r,   Nr  r,   r   r   r   r         r   c                   r  )r
   i  r,   Nr  r,   r   r   r
   r
     r  r   c                   &   a  ] tR tRt o R tRtV tR# )r   i  c                s"    V3V n         Wn        R # rD   argsrJ   )r(   rJ   r   r   rT   ZUnknownProtocol.__init__  s    H	r   r  Nr-   r.   r/   r0   rT   r1   r2   r3   r5   r   r   r     s      r   c                   r  )r   i  r,   Nr  r,   r   r   r   r     r  r   c                   r  )r   i  r,   Nr  r,   r   r   r   r     r  r   c                   sH   a  ] tR tRt o RR ltR t]P                  tRtV t	R# )r	   i  Nc                s.    V3V n         Wn        W n        R # rD   )r  partialexpected)r(   r
  r  s   &&&r   rT   ZIncompleteRead.__init__  s    H	 r   c                s    V P                   e   RV P                   ,          pMRpRV P                  P                  \        V P                  4      V3,          # )Nz, %i more expectedrU   z%s(%i bytes read%s))r  rn   r-   r&   r
  r   rk   r   __repr__ZIncompleteRead.__repr__  sK    ==$$t}}4AA$(?(?(+DLL(91(> > 	>r   )r  r  r
  rD   )
r-   r.   r/   r0   rT   r  r   Z__str__r1   r2   r3   r5   r   r	   r	     s     !> nnGr   c                   r  )r   i  r,   Nr  r,   r   r   r   r     r  r   c                   r  )r   i  r,   Nr  r,   r   r   r   r     r  r   c                   r  )r   i
  r,   Nr  r,   r   r   r   r   
  r  r   c                   r  )r   i  r,   Nr  r,   r   r   r   r     r  r   c                   r  )r   i  c                sH    V'       g   \        V4      pV3V n        Wn        R # rD   )rX   r  r*   r   r   r   rT   ZBadStatusLine.__init__  s    :DE		r   )r  r*   Nr	  r3   r5   r   r   r     s      r   c                   r  )r   i  c                sL    \         P                  V R \        V3,          4       R# )z&got more than %d bytes when reading %sN)r   rT   r9   )r(   Z	line_typer   r   rT   ZLineTooLong.__init__  s"    t%M(0)'<&= 	>r   r,   Nr	  r3   r5   r   r   r     s     > >r   c                   r  )r   i  c                sf    \         P                  V R 4       \        P                  ! V .VO5/ VB  R# )rU   N)r   rT   ConnectionResetError)r(   ZposZkws   &*,r   rT   ZRemoteDisconnected.__init__  s*    tR(%%d7S7B7r   r,   Nr	  r3   r5   r   r   r     s     8 8r   )r   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   error	responsesi   >   ZPUTZPOSTZPATCH)r   )GZemail.parserrB   Zemail.messager   r   r   Zrer   r   Zcollections.abcr   Zurllib.parser   Z__all__r   r  rI   r   r   r   ZglobalsZupdater   Z__members__r   Zphraser  r9   r:   r   ZcompileZ	fullmatchr   r   r   r   r   r   r   r!   r   ZMessager"   r=   rC   rE   ZBufferedIOBaser   r   r   r   r   r'   ZImportErrorZ	Exceptionr   r   r
   r   r   r   r	   r   r   r   r   r   r   r  r   r  )Zvs   0r   <module>r     sa  N     	 	  
  ! 	
 # 	  ,, - #'//"="="D"D"FG"FQ["FG	   8 

#67AA ::&CDKK  %'JJ/@$A ! (*zz-'@ $ 3 E%--'' <$ .9 @ ) 0v2$$ vr
t	 t	l!&S. S8 NN$%	I 	
	= 		 	m 
	m 		M 	] 	m 		/ 		. 		. 	M >- >
8-} 8 	m- Hf*  		s   H$%H) )H32H3