U
    m–hRÍ  ã                   @   s  U d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
 ddlmZ ddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z  ddl!Z!ddl"m#Z#m$Z$m%Z%m&Z& ddl'm(Z( dd	l)m*Z*m+Z+m,Z, dd
l-m.Z. ddl/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZK ddlLmMZMmNZNmOZOmPZPmQZQ ddlRmSZS ddlTmUZUmVZVmWZWmXZXmYZY ddlZm[Z[ ddl\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZd ddl+meZemfZfmgZgmhZh ddlimjZjmkZkmlZlmmZm ddlnmoZo ddlpmqZqmrZr ddlsmtZtmuZumvZvmwZwmxZx dZyernddlzm{Z{ ndZ{ej|dkrerddlm}Z} G dd„ deddZ~e!jddddG d d!„ d!ƒƒZ€e€d"d#d$Zee€ e‚d%< eƒd&d'd(d)d*d+hƒZ„ed,eNeSƒZ…eeNe†ge‡f ZˆG d-d.„ d.ƒZ‰G d/d0„ d0eeee…f ee… ƒZŠeŠeN Z‹eŠeS ZŒG d1d2„ d2ƒZdddddddd3dddddddecde+jŽdddd4d4d5œe‡exeweeeev eee‡  ee_ eeee‡ ee eee eeex ee_ e e€e‘f eeu efeeV ee eej’ eeed6œd7d8„Z“dS )9zHTTP Client for asyncio.é    N)Úsuppress)ÚTracebackType)ÚTYPE_CHECKINGÚAnyÚ	AwaitableÚCallableÚ	CoroutineÚFinalÚ	FrozenSetÚ	GeneratorÚGenericÚIterableÚListÚMappingÚOptionalÚSetÚTupleÚTypeÚ	TypedDictÚTypeVarÚUnion)ÚCIMultiDictÚ	MultiDictÚMultiDictProxyÚistr)ÚURLé   )ÚhdrsÚhttpÚpayload)ÚAbstractCookieJar)ÚClientConnectionErrorÚClientConnectionResetErrorÚClientConnectorCertificateErrorÚClientConnectorDNSErrorÚClientConnectorErrorÚClientConnectorSSLErrorÚClientErrorÚClientHttpProxyErrorÚClientOSErrorÚClientPayloadErrorÚClientProxyConnectionErrorÚClientResponseErrorÚClientSSLErrorÚConnectionTimeoutErrorÚContentTypeErrorÚ
InvalidURLÚInvalidUrlClientErrorÚInvalidUrlRedirectClientErrorÚNonHttpUrlClientErrorÚNonHttpUrlRedirectClientErrorÚRedirectClientErrorÚServerConnectionErrorÚServerDisconnectedErrorÚServerFingerprintMismatchÚServerTimeoutErrorÚSocketTimeoutErrorÚTooManyRedirectsÚWSServerHandshakeError)ÚClientRequestÚClientResponseÚFingerprintÚRequestInfoÚ_merge_ssl_params)ÚClientWebSocketResponse)ÚHTTP_AND_EMPTY_SCHEMA_SETÚBaseConnectorÚNamedPipeConnectorÚTCPConnectorÚUnixConnector)Ú	CookieJar)Ú	_SENTINELÚDEBUGÚ	BasicAuthÚTimeoutHandleÚget_env_proxy_for_urlÚmethod_must_be_empty_bodyÚsentinelÚstrip_auth_from_url)ÚWS_KEYÚHttpVersionÚWebSocketReaderÚWebSocketWriter)ÚWSHandshakeErrorÚ	WSMessageÚ
ws_ext_genÚws_ext_parse)ÚFlowControlDataQueue)ÚTraceÚTraceConfig)ÚJSONEncoderÚLooseCookiesÚLooseHeadersÚQueryÚStrOrURL)(r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r5   r3   r2   r4   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rD   rF   rG   rE   rB   ÚClientSessionÚClientTimeoutÚrequest)Ú
SSLContext©é   é   )ÚUnpackc                   @   s~  e Zd ZU eed< eed< eed< eedf ed< eedf ed< ee	e
 df ed< eedf ed< eed	< eed
< ee
edf ed< eedf ed< eed< edeeeged f f ed< eed< eedf ed< eedf ed< ded< eeeef ed< ee
df ed< eedf ed< eee
ef df ed< eedf ed< eedf ed< eedf ed< eedf ed< dS )Ú_RequestOptionsÚparamsÚdataÚjsonNÚcookiesÚheadersÚskip_auto_headersÚauthÚallow_redirectsÚmax_redirectsÚcompressÚchunkedÚ	expect100Úraise_for_statusÚread_until_eofÚproxyÚ
proxy_authz%Union[ClientTimeout, _SENTINEL, None]ÚtimeoutÚsslÚserver_hostnameÚproxy_headersÚtrace_request_ctxÚread_bufsizeÚauto_decompressÚmax_line_sizeÚmax_field_size)Ú__name__Ú
__module__Ú__qualname__r_   Ú__annotations__r   r   r]   r^   r   ÚstrrK   ÚboolÚintr   r>   r   r`   rd   r?   r   © rŠ   rŠ   úV/var/www/html/peyman_registration/venvv2/lib/python3.8/site-packages/aiohttp/client.pyri   ¡   s2   
 ri   F©ÚtotalT)Zauto_attribsÚfrozenÚslotsc                   @   sZ   e Zd ZU dZee ed< dZee ed< dZee ed< dZ	ee ed< dZ
eed< dS )rb   Nr   ÚconnectÚ	sock_readÚsock_connecté   Úceil_threshold)rƒ   r„   r…   r   r   Úfloatr†   r   r‘   r’   r”   rŠ   rŠ   rŠ   r‹   rb   ½   s
   
rb   i,  é   )r   r’   ÚDEFAULT_TIMEOUTÚGETÚHEADÚOPTIONSÚTRACEÚPUTÚDELETEÚ_RetTypec                !       sŒ  e Zd ZU dZedddddddd	d
ddddddddddddddddgƒZdZeej	 e
d< dZee e
d< d–ddddddejeeeejdddededddddddd d!„ d"œee ee eej ee ee eee  ee eee ee ee eee  e!e"e!e#ege$d f f e"e%e&f ee% e"e'e(f e!e!e!ee)e*  e+e+e+e,dd#œd$d%„Z-ed  dd&œd'd(„Z.e/r€ee0dd)œ‡ fd*d+„Z1e2fe0dd,œd-d.„Z3e4j5d/krÀe6rÀeee7e8 d0d1œd2d3„Z9neee0d0d1œd4d3„Z9ee:d5œd6d7„Z;ddddddddd8dddddddedddddddddddd9œeee<e0e0ee ee eee  ee e!e+e"ee!df ee! e!e"de!e#ege$d f f e!ee ee e"e(e&f ee! ee= ee> e"e>e!e?f ee ee ee@ee0f  ee+ ee! ee+ ee+ ed:œd;d<„ZAeBjCd=d>dddddddddddddddd?d@dAœeeee e%ee% e!e!ee% ee ee e<ee ee ee e"e>e!e?f ee! ee= ee> ee e+e+dBdCœdDdE„ZDeBjCd=d>dddddddddddddddd?d@dAœeeee e%ee% e!e!ee% ee ee e<ee ee ee e"e>e!e?f ee! ee= ee> ee e+e+edCœdFdG„ZEee dHdIœdJdK„ZFe4j5d/krðe6rðee7e8 d0dLœdMdN„ZGee7e8 d0dLœdOdP„ZHee7e8 d0dLœdQdR„ZIee7e8 d0dLœdSdT„ZJee7e8 d0dLœdUdV„ZKee7e8 d0dLœdWdX„ZLee7e8 d0dLœdYdZ„ZMn®dd[œee!e0d0d\œd]dN„ZGdd[œee!e0d0d\œd^dP„ZHdd[œee!e0d0d\œd_dR„ZIdd`œee0e0d0daœdbdT„ZJdd`œee0e0d0daœdcdV„ZKdd`œee0e0d0daœdddX„ZLee0d0dLœdedZ„ZMddfœdgdh„ZNeOe!dfœdidj„ƒZPeOee dfœdkdl„ƒZQeOe dfœdmdn„ƒZReOeSe+e+f dfœdodp„ƒZTeOe!dfœdqdr„ƒZUeUjVe!ddsœdtdr„ƒZUeOejdfœdudv„ƒZWeOe(dfœdwdx„ƒZXeOdHdfœdydz„ƒZYeOeZe[ dfœd{d|„ƒZ\eOee dfœd}d~„ƒZ]eOedfœdd€„ƒZ^eOe!dfœdd‚„ƒZ_eOe"e!e#ege$d f f dfœdƒd„„ƒZ`eOe!dfœd…d†„ƒZaeOe!dfœd‡dˆ„ƒZbeOe)e* dfœd‰dŠ„ƒZcddfœd‹dŒ„ZdddfœddŽ„Zeeeef  eef eeg ddœdd‘„Zhd dfœd’d“„Zieeef  eef eeg ddœd”d•„Zj‡  ZkS )—ra   z/First-class interface for making HTTP requests.Ú	_base_urlÚ_source_tracebackÚ
_connectorÚrequote_redirect_urlÚ_loopÚ_cookie_jarÚ_connector_ownerÚ_default_authÚ_versionÚ_json_serializeÚ_requote_redirect_urlÚ_timeoutÚ_raise_for_statusÚ_auto_decompressÚ
_trust_envÚ_default_headersÚ_skip_auto_headersÚ_request_classÚ_response_classÚ_ws_response_classÚ_trace_configsÚ_read_bufsizeÚ_max_line_sizeÚ_max_field_sizeÚ_resolve_charsetNTFé   éþ  c                 C   s   dS )Nzutf-8rŠ   )ÚrÚbrŠ   rŠ   r‹   Ú<lambda>  ó    zClientSession.<lambda>)Ú	connectorÚlooprm   rn   ro   rp   Újson_serializeÚrequest_classÚresponse_classÚws_response_classÚversionÚ
cookie_jarÚconnector_ownerrv   Úread_timeoutÚconn_timeoutrz   r€   Ú	trust_envr¢   Útrace_configsr   r   r‚   Úfallback_charset_resolver)Úbase_urlr¾   r¿   rm   rn   ro   rp   rÀ   rÁ   rÂ   rÃ   rÄ   rÅ   rÆ   rv   rÇ   rÈ   rz   r€   rÉ   r¢   rÊ   r   r   r‚   rË   Úreturnc                C   sX  d | _ |d kr|d k	r|j}|p&t ¡ }|d ks:t|tƒrB|| _n"t|ƒ| _| j ¡ | jksdtdƒ‚|t	kst|d krÐt
| _|t	k	r¤tjdtdd tj| j|d| _|d k	rÎtj| j|d| _tjdtdd nHt|tƒsîtdt|ƒ› d	ƒ‚|| _|t	k	rtd
ƒ‚|d k	rtdƒ‚|d kr,t|d}|j|k	r@tdƒ‚|| _| ¡ rbt t d¡¡| _|d krvt|d}|| _|rŽ| j |¡ || _ || _|| _ || _!|| _"|| _#|| _$|| _%|| _&|| _'|| _(|| _)|ræt*|ƒ}nt*ƒ }|| _+|d k	rt,dd„ |D ƒƒ| _-nt,ƒ | _-|	| _.|
| _/|| _0|p4g | _1| j1D ]}| 2¡  q>|| _3d S )Nz2Only absolute URLs without path part are supportedz8read_timeout is deprecated, use timeout argument insteadé   ©Ú
stacklevelrŒ   )r   z8conn_timeout is deprecated, use timeout argument insteadztimeout parameter cannot be of z. type, please use 'timeout=ClientTimeout(...)'zGread_timeout and timeout parameters conflict, please setup timeout.readzJconn_timeout and timeout parameters conflict, please setup timeout.connect©r¿   z0Session and connector has to use same event loopr   c                 s   s   | ]}t |ƒV  qd S ©N)r   )Ú.0ÚirŠ   rŠ   r‹   Ú	<genexpr>}  s     z)ClientSession.__init__.<locals>.<genexpr>)4r¡   r£   ÚasyncioÚget_running_loopÚ
isinstancer   rŸ   ÚoriginÚAssertionErrorrO   r—   rª   ÚwarningsÚwarnÚDeprecationWarningÚattrZevolverb   Ú
ValueErrorÚtyperF   ÚRuntimeErrorÚ	get_debugÚ	tracebackÚextract_stackÚsysÚ	_getframer    rH   r¤   Úupdate_cookiesr¥   r¦   r§   r¨   r«   r¬   r­   r©   r´   rµ   r¶   r   r®   Ú	frozensetr¯   r°   r±   r²   r³   Zfreezer·   )ÚselfrÌ   r¾   r¿   rm   rn   ro   rp   rÀ   rÁ   rÂ   rÃ   rÄ   rÅ   rÆ   rv   rÇ   rÈ   rz   r€   rÉ   r¢   rÊ   r   r   r‚   rË   Úreal_headersÚtrace_configrŠ   rŠ   r‹   Ú__init__  sž    "
ÿþýý
ÿ
ÿ
ÿ







zClientSession.__init__)ÚclsrÍ   c                 C   s   t jd | j¡tdd d S )Nz6Inheritance class {} from ClientSession is discouragedrÎ   rÏ   )rÛ   rÜ   Úformatrƒ   rÝ   )rí   rŠ   rŠ   r‹   Ú__init_subclass__‹  s    ÿüzClientSession.__init_subclass__)ÚnameÚvalrÍ   c                    s2   || j kr tjd |¡tdd tƒ  ||¡ d S )Nz8Setting custom ClientSession.{} attribute is discouragedrÎ   rÏ   )ÚATTRSrÛ   rÜ   rî   rÝ   ÚsuperÚ__setattr__)ré   rð   rñ   ©Ú	__class__rŠ   r‹   rô   •  s    
ÿüzClientSession.__setattr__)Ú	_warningsrÍ   c                 C   sR   | j sNd| i}|jd| ›tf|Ž | ddœ}| jd k	rB| j|d< | j |¡ d S )NÚsourcezUnclosed client session zUnclosed client session)Zclient_sessionÚmessageÚsource_traceback)ÚclosedrÜ   ÚResourceWarningr    r£   Úcall_exception_handler)ré   r÷   ÚkwargsÚcontextrŠ   rŠ   r‹   Ú__del__Ÿ  s     ÿÿ


zClientSession.__del__re   Ú_RequestContextManager)ÚmethodÚurlrþ   rÍ   c                 K   s   d S rÒ   rŠ   ©ré   r  r  rþ   rŠ   rŠ   r‹   rc   ¬  s    zClientSession.requestc                 K   s   t | j||f|ŽƒS )zPerform HTTP request.)r  Ú_requestr  rŠ   rŠ   r‹   rc   µ  s    )Ú
str_or_urlrÍ   c                 C   s<   t |ƒ}| jd kr|S |js(|j d¡s,t‚| j |¡S d S )Nú/)r   rŸ   ÚabsoluteÚpathÚ
startswithrÚ   Újoin)ré   r  r  rŠ   rŠ   r‹   Ú
_build_url»  s
    
zClientSession._build_urlé
   )rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   Ú
verify_sslÚfingerprintÚssl_contextr{   r|   r}   r~   r   r€   r   r‚   )r  r  rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r  r  r  r{   r|   r}   r~   r   r€   r   r‚   rÍ   c          ;      ƒ   sŒ  ˆ j rtdƒ‚t||||ƒ}|d k	r6|d k	r6tdƒ‚n|d k	rNtj|ˆ jd}t|tƒsl|d k	rlt	 
dt¡ d}g } ˆ j}!|p€i }ˆ  |¡}zˆ  |¡}"W n, tk
rÆ }# zt|ƒ|#‚W 5 d }#~#X Y nX ˆ jd k	sÖt‚|"jˆ jjkrìt|"ƒ‚tˆ jƒ}$|d k	r|D ]}%|$ t|%ƒ¡ q|d kr*d }nFˆ  |¡}zt|ƒ}W n. tk
rn }# zt|ƒ|#‚W 5 d }#~#X Y nX |tkr‚ˆ j}&nt|tƒsšt|d}&n|}&tˆ j|&j |&j!d}'|' "¡ }(|d krÊˆ j#}|d krÚˆ j$}|d krêˆ j%}|d krúˆ j&}‡ ‡fdd	„ˆ j'D ƒ})|)D ] }*|* (||" )|¡|¡I d H  q|' *¡ }+zÞ|+( |t+k},t,|"ƒ\}"}-|"j-s||rpt.nt}.|.|"ƒ‚| s–|	r–|-r–td
ƒ‚|	d ks°| r´|-d k	r´|-}	|	d krÄˆ j/}	|d k	rì|	d k	rìt0j1|krìtdƒ‚ˆ j2 3|"¡}/|d k	r,t4ƒ }0|0 5|¡ |0 3|"¡}1|1r,|/ 6|1¡ |d k	r@t|ƒ}n(ˆ j7rht8t9ƒ t:|"ƒ\}}W 5 Q R X ˆ j;||"|||$r~|$nd ||/|	|!|||ˆ jˆ j<|||+ˆ |d k	r¬|nd|||)ˆ j=d}2zˆ jj>|2|)|&dI d H }3W n6 t?j@k
r }4 ztAd|"› ƒ|4‚W 5 d }4~4X Y nX |3jBd k	s"t‚|3jCd k	s2t‚|3jCjD|+tE|ƒ|||&jF|ˆ jjG||d	 zpzJ|2 H|3¡I d H }5z|5 "|3¡I d H  W n  tIk
r¢   |5 J¡  ‚ Y nX W n  tIk
rÆ   |3 J¡  ‚ Y nX W nŒ tKtLfk
rö   |,rðd},Y qR‚ Y nb tMk
r   ‚ Y nL tNk
rV }4 z,|4jOd kr:t|4t?j@ƒr:‚ tK|4jPŽ |4‚W 5 d }4~4X Y nX |5jQ }rtˆ j2 5||5jR¡ |5jSdkrl|
rl|)D ]"}*|* T||" )|¡||5¡I d H  qŠ|d7 }|  U|5¡ |rì||krì|5 J¡  tV| d jWtX| ƒƒ‚|5jSdkr|5jYt0jZks |5jSdkrD|5jYt0j[krDt0j\}d }| ]t0j^¡rD| _t0j^¡ |5j` ]t0ja¡p`|5j` ]t0jb¡}6|6d krrqln|5 c¡  zt|6ˆ jd d}7W n0 tk
r¾ }# zt.|6dƒ|#‚W 5 d }#~#X Y nX |7j}8|8tekrâ|5 J¡  tf|6ƒ‚n|8sò|" g|7¡}7z|7 h¡ }9W n0 tk
r. }: zt.|7dƒ|:‚W 5 d }:~:X Y nX |" h¡ |9krPd }	| _t0j1d ¡ |7}"i }|5 c¡  qRqlqRW 5 Q R X |d kr†ˆ ji}|d kr’n(tj|ƒr¬||5ƒI d H  n|rº|5 k¡  |(d k	rè|5jld k	rà|5jl m|(jn¡ n|( n¡  tX| ƒ|5_o|)D ]"}*|* p||" )|¡||5¡I d H  qö|5W S  tIk
r† }# zH|' J¡  |(rL|( n¡  d }(|)D ]"}*|* q||" )|¡||#¡I d H  qP‚ W 5 d }#~#X Y nX d S )NzSession is closedz9data and json parameters can not be used at the same time)ÚdumpszChunk size is deprecated #1615r   rŒ   )r”   c                    s    g | ]}t ˆ ||jˆd ƒ‘qS ))r~   )rZ   Ztrace_config_ctx)rÓ   rë   ©ré   r~   rŠ   r‹   Ú
<listcomp>4  s   û
ýz*ClientSession._request.<locals>.<listcomp>z<Cannot combine AUTH argument with credentials encoded in URLzTCannot combine AUTHORIZATION header with AUTH argument or credentials encoded in URLT)rj   rn   ro   rk   rm   rp   rÄ   rs   rt   ru   r¿   rÂ   rx   ry   ÚtimerÚsessionr{   r|   r}   ÚtracesrÉ   )r  rz   zConnection timeout to host )	r  Zskip_payloadrw   r€   rÇ   r   Ztimeout_ceil_thresholdr   r‚   F)é-  é.  é/  i3  i4  r   r  )r  r  )ÚencodedzHServer attempted redirecting to a location that does not look like a URLzInvalid redirect URL origin)rrû   rá   rA   rß   r   ÚJsonPayloadr¨   rØ   rˆ   rÛ   rÜ   rÝ   r§   Ú_prepare_headersr  r1   r¡   rÚ   ÚschemeZallowed_protocol_schema_setr3   Úsetr¯   Úaddr   r   r0   rO   rª   rb   rL   r£   r   r”   Ústartr´   r¬   rµ   r¶   r³   Zsend_request_startZupdate_queryr  ÚIDEMPOTENT_METHODSrP   Zraw_hostr2   r¦   r   ÚAUTHORIZATIONr¤   Zfilter_cookiesrH   rç   Úloadr­   r   ÚLookupErrorrM   r°   r±   rÉ   r   rÖ   ÚTimeoutErrorr.   Ú	transportÚprotocolZset_response_paramsrN   r‘   Z_timeout_ceil_thresholdÚsendÚBaseExceptionÚcloser)   r7   r'   ÚOSErrorÚerrnoÚargsrm   r  ÚstatusZsend_request_redirectÚappendr;   Úrequest_infoÚtupler  Ú	METH_HEADÚ	METH_POSTÚMETH_GETÚgetÚCONTENT_LENGTHÚpoprn   ÚLOCATIONÚURIÚreleaser©   rC   r4   r  rÙ   r«   Úcallablerv   Ú
connectionZadd_callbackÚcancelÚ_historyZsend_request_endZsend_request_exception);ré   r  r  rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r  r  r  r{   r|   r}   r~   r   r€   r   r‚   Z	redirectsÚhistoryrÄ   r  ÚeZskip_headersrÔ   Zreal_timeoutZtmÚhandler  Útracer  Zretry_persistent_connectionZauth_from_urlZerr_exc_clsZall_cookiesZtmp_cookie_jarZreq_cookiesÚreqÚconnÚexcÚrespZr_urlZparsed_redirect_urlr  Zredirect_originZorigin_val_errrŠ   r  r‹   r  Ã  s    )ÿ





  ÿ



ú	ÿýÿ
ÿþýÿ






é  ÿÿþ÷   ÿ
 ÿÿ
ÿÿ
 ÿ
þý


þý




   ÿ   ÿzClientSession._requestrŠ   g      $@r   i  @ ©r  Ú	protocolsrz   Úreceive_timeoutÚ	autocloseÚautopingÚ	heartbeatrp   rÙ   rj   rn   rx   ry   r{   r  r  r  r}   rs   Úmax_msg_sizeÚ_WSRequestContextManager)r  r  rH  rz   rI  rJ  rK  rL  rp   rÙ   rj   rn   rx   ry   r{   r  r  r  r}   rs   rM  rÍ   c                C   s8   t | j|||||||||	|
|||||||||||dƒS )zInitiate websocket connection.rG  )rN  Ú_ws_connect)ré   r  r  rH  rz   rI  rJ  rK  rL  rp   rÙ   rj   rn   rx   ry   r{   r  r  r  r}   rs   rM  rŠ   rŠ   r‹   Ú
ws_connect8  s2    ëÿzClientSession.ws_connectc          *      Ã   s”  |d krt ƒ }nt |ƒ}tjdtjdtjdi}| ¡ D ]\}}| ||¡ q6t t	 
d¡¡}| ¡ |tj< |r~d |¡|tj< |
d k	r|
|tj< |r¨t|d}||tj< |d krÄtjdtdd	 d
}t||||ƒ}| j||||d|	||||d
I d H }zR|jdkr t|j|jd|j|jd‚|j tjd¡ ¡ dkrTt|j|jd|j|jd‚|j tjd¡ ¡ dkrˆt|j|jd|j|jd‚|j tjd¡}t t  |t! ¡ "¡ ¡ ¡ }||krØt|j|jd|j|jd‚d }|r,tj|jkr,dd„ |jtj  #d¡D ƒ} | D ]}!|!|kr|!} q,qd}"|r¬|j tj¡}#|#r¤zt$|#ƒ\}}"W nF t%k
r  }$ z&t|j|j|$j&d |j|jd|$‚W 5 d }$~$X Y nX nd}d}"|j'}%|%d k	sÀt(‚|%j)}&|&d k	sÔt(‚|d kræ||&_*n|&j*d k	r t+||&j*ƒ|&_*|%j,}'|'d k	st(‚t-|&d| j.d}(|& /t0|(|ƒ|(¡ t1|&|'d
||"d})W n  t2k
rj   | 3¡  ‚ Y n&X | j4|(|)|||||| j.||||"dS d S )NZ	websocketZUpgradeZ13é   ú,)rs   z+ssl=None is deprecated, please use ssl=TruerÎ   rÏ   TF)rj   rn   rw   rp   rx   ry   r{   r}   ée   zInvalid response status)rù   r.  rn   Ú zInvalid upgrade headerÚupgradezInvalid connection headerzInvalid challenge responsec                 S   s   g | ]}|  ¡ ‘qS rŠ   )Ústrip)rÓ   ÚprotorŠ   rŠ   r‹   r  ã  s   ÿz-ClientSession._ws_connect.<locals>.<listcomp>r   r¸   rÑ   )Zuse_maskrs   Ú
notakeover)rI  rL  rs   Zclient_notakeover)5r   r   ÚUPGRADEÚ
CONNECTIONÚSEC_WEBSOCKET_VERSIONÚitemsÚ
setdefaultÚbase64Ú	b64encodeÚosÚurandomÚdecodeÚSEC_WEBSOCKET_KEYr  ÚSEC_WEBSOCKET_PROTOCOLÚORIGINrW   ÚSEC_WEBSOCKET_EXTENSIONSrÛ   rÜ   rÝ   rA   rc   r.  r<   r0  r?  rn   r5  ÚlowerÚSEC_WEBSOCKET_ACCEPTÚhashlibÚsha1rQ   ÚdigestÚsplitrX   rU   r-  r<  rÚ   r'  rÇ   Úmaxr&  rY   r£   Z
set_parserrS   rT   r)  r*  r²   )*ré   r  r  rH  rz   rI  rJ  rK  rL  rp   rÙ   rj   rn   rx   ry   r{   r  r  r  r}   rs   rM  rê   Zdefault_headersÚkeyÚvalueZsec_keyZextstrrF  Zr_keyÚmatchr'  Zresp_protocolsrW  rX  Zcompress_hdrsrE  rD  Z
conn_protor&  ÚreaderÚwriterrŠ   rŠ   r‹   rO  l  s      ý


ýöûûû	
û	þ

ûú
  ÿû
ôzClientSession._ws_connectzCIMultiDict[str])rn   rÍ   c                 C   sh   t | jƒ}|rdt|ttfƒs$t |ƒ}tƒ }| ¡ D ]0\}}||krP| ||¡ q2|||< | |¡ q2|S )z3Add default headers and transform it to CIMultiDict)r   r®   rØ   r   r   r  r\  r  )ré   rn   ÚresultZadded_namesrn  ro  rŠ   rŠ   r‹   r  .  s    
zClientSession._prepare_headers)r  rþ   rÍ   c                 K   s   d S rÒ   rŠ   ©ré   r  rþ   rŠ   rŠ   r‹   r5  @  s    zClientSession.getc                 K   s   d S rÒ   rŠ   rt  rŠ   rŠ   r‹   ÚoptionsF  s    zClientSession.optionsc                 K   s   d S rÒ   rŠ   rt  rŠ   rŠ   r‹   ÚheadL  s    zClientSession.headc                 K   s   d S rÒ   rŠ   rt  rŠ   rŠ   r‹   ÚpostR  s    zClientSession.postc                 K   s   d S rÒ   rŠ   rt  rŠ   rŠ   r‹   ÚputX  s    zClientSession.putc                 K   s   d S rÒ   rŠ   rt  rŠ   rŠ   r‹   Úpatch^  s    zClientSession.patchc                 K   s   d S rÒ   rŠ   rt  rŠ   rŠ   r‹   Údeleted  s    zClientSession.delete)rq   )r  rq   rþ   rÍ   c                K   s   t | jtj|fd|i|—ŽƒS )zPerform HTTP GET request.rq   )r  r  r   r4  ©ré   r  rq   rþ   rŠ   rŠ   r‹   r5  l  s     ÿÿÿÿc                K   s   t | jtj|fd|i|—ŽƒS )zPerform HTTP OPTIONS request.rq   )r  r  r   ÚMETH_OPTIONSr{  rŠ   rŠ   r‹   ru  v  s     ÿÿÿÿc                K   s   t | jtj|fd|i|—ŽƒS )zPerform HTTP HEAD request.rq   )r  r  r   r2  r{  rŠ   rŠ   r‹   rv  €  s     ÿÿÿÿ)rk   )r  rk   rþ   rÍ   c                K   s   t | jtj|fd|i|—ŽƒS )zPerform HTTP POST request.rk   )r  r  r   r3  ©ré   r  rk   rþ   rŠ   rŠ   r‹   rw  Š  s    ÿc                K   s   t | jtj|fd|i|—ŽƒS )zPerform HTTP PUT request.rk   )r  r  r   ÚMETH_PUTr}  rŠ   rŠ   r‹   rx  ’  s    ÿc                K   s   t | jtj|fd|i|—ŽƒS )zPerform HTTP PATCH request.rk   )r  r  r   Ú
METH_PATCHr}  rŠ   rŠ   r‹   ry  š  s    ÿc                 K   s   t | jtj|f|ŽƒS )zPerform HTTP DELETE request.)r  r  r   ÚMETH_DELETErt  rŠ   rŠ   r‹   rz  ¢  s    ÿ©rÍ   c                 Ã   s0   | j s,| jdk	r&| jr&| j ¡ I dH  d| _dS )zMClose underlying connector.

        Release all acquired resources.
        N)rû   r¡   r¥   r*  ©ré   rŠ   rŠ   r‹   r*  ¨  s    zClientSession.closec                 C   s   | j dkp| j jS )z@Is client session closed.

        A readonly property.
        N)r¡   rû   r‚  rŠ   rŠ   r‹   rû   ²  s    zClientSession.closedc                 C   s   | j S )z(Connector instance used for the session.©r¡   r‚  rŠ   rŠ   r‹   r¾   º  s    zClientSession.connectorc                 C   s   | j S )zThe session cookies.)r¤   r‚  rŠ   rŠ   r‹   rÅ   ¿  s    zClientSession.cookie_jarc                 C   s   | j S )z"The session HTTP protocol version.)r§   r‚  rŠ   rŠ   r‹   rÄ   Ä  s    zClientSession.versionc                 C   s   | j S )ú)Do URL requoting on redirection handling.)r©   r‚  rŠ   rŠ   r‹   r¢   É  s    z"ClientSession.requote_redirect_url)rñ   rÍ   c                 C   s   t jdtdd || _dS )r„  z=session.requote_redirect_url modification is deprecated #2778rÎ   rÏ   N)rÛ   rÜ   rÝ   r©   )ré   rñ   rŠ   rŠ   r‹   r¢   Î  s    ýc                 C   s   t jdtdd | jS )zSession's loop.z"client.loop property is deprecatedrÎ   rÏ   )rÛ   rÜ   rÝ   r£   r‚  rŠ   rŠ   r‹   r¿   Ø  s      ÿzClientSession.loopc                 C   s   | j S )zTimeout for the session.)rª   r‚  rŠ   rŠ   r‹   rz   à  s    zClientSession.timeoutc                 C   s   | j S )z*The default headers of the client session.)r®   r‚  rŠ   rŠ   r‹   rn   å  s    zClientSession.headersc                 C   s   | j S )z2Headers for which autogeneration should be skipped)r¯   r‚  rŠ   rŠ   r‹   ro   ê  s    zClientSession.skip_auto_headersc                 C   s   | j S )z2An object that represents HTTP Basic Authorization)r¦   r‚  rŠ   rŠ   r‹   rp   ï  s    zClientSession.authc                 C   s   | j S )zJson serializer callable)r¨   r‚  rŠ   rŠ   r‹   rÀ   ô  s    zClientSession.json_serializec                 C   s   | j S )z-Should connector be closed on session closing)r¥   r‚  rŠ   rŠ   r‹   rÆ   ù  s    zClientSession.connector_ownerc                 C   s   | j S )zGShould `ClientResponse.raise_for_status()` be called for each response.)r«   r‚  rŠ   rŠ   r‹   rv   þ  s    zClientSession.raise_for_statusc                 C   s   | j S )z7Should the body response be automatically decompressed.)r¬   r‚  rŠ   rŠ   r‹   r€     s    zClientSession.auto_decompressc                 C   s   | j S )zÃ
        Should proxies information from environment or netrc be trusted.

        Information is from HTTP_PROXY / HTTPS_PROXY environment variables
        or ~/.netrc file if present.
        )r­   r‚  rŠ   rŠ   r‹   rÉ   
  s    zClientSession.trust_envc                 C   s   | j S )z7A list of TraceConfig instances used for client tracing)r³   r‚  rŠ   rŠ   r‹   rÊ     s    zClientSession.trace_configsc                 C   s
   d| _ dS )zwDetach connector from session without closing the former.

        Session is switched to closed state anyway.
        Nrƒ  r‚  rŠ   rŠ   r‹   Údetach  s    zClientSession.detachc                 C   s   t dƒ‚d S )NzUse async with instead)Ú	TypeErrorr‚  rŠ   rŠ   r‹   Ú	__enter__   s    zClientSession.__enter__)Úexc_typeÚexc_valÚexc_tbrÍ   c                 C   s   d S rÒ   rŠ   ©ré   rˆ  r‰  rŠ  rŠ   rŠ   r‹   Ú__exit__#  s    zClientSession.__exit__c                 Ã   s   | S rÒ   rŠ   r‚  rŠ   rŠ   r‹   Ú
__aenter__,  s    zClientSession.__aenter__c                 Ã   s   |   ¡ I d H  d S rÒ   )r*  r‹  rŠ   rŠ   r‹   Ú	__aexit__/  s    zClientSession.__aexit__)N)lrƒ   r„   r…   Ú__doc__rè   rò   r    r   rã   ÚStackSummaryr†   r¡   rD   rl   r  r=   r>   rB   r   ÚHttpVersion11rO   r`   rÖ   ÚAbstractEventLoopr]   r^   r   r‡   rK   r\   r   rR   r    rˆ   r   r   r   r•   rI   Úobjectrb   r   r[   r‰   Ú_CharsetResolverrì   rï   rJ   r   rô   rÛ   r   rå   Úversion_infor   rh   ri   rc   r   r  r_   Úbytesrd   r?   r   r  r   r4  rP  rO  r  r5  ru  rv  rw  rx  ry  rz  r*  Úpropertyrû   r¾   rÅ   r   rÄ   r¢   Úsetterr¿   rz   rn   r
   r   ro   rp   rÀ   rÆ   rv   r€   rÉ   rÊ   r…  r‡  r)  r   rŒ  r  rŽ  Ú__classcell__rŠ   rŠ   rõ   r‹   ra   Ý   sü  
çÿ þâ
ÿ


á 
û
  þÞ
ÿ
Ý  {éè8éè Cüüüüüüü	ÿ  þÿ  þÿ  þÿ  þ	ÿ  þ	ÿ  þ
	þ	
û	
ûra   c                   @   s¼   e Zd ZdZeddef ddœdd„Zdddœdd	„Zeedd
œdd„Z	ddœdd„Z
eedef dœdd„Zeedef dœdd„Zedœdd„Zeee  ee ee ddœdd„ZdS )Ú_BaseRequestContextManager)Ú_coroÚ_respúasyncio.Future[Any]N)ÚcororÍ   c                 C   s
   || _ d S rÒ   )r›  )ré   rž  rŠ   rŠ   r‹   rì   <  s    z#_BaseRequestContextManager.__init__)ÚargrÍ   c                 C   s   | j  |¡S rÒ   )r›  r(  )ré   rŸ  rŠ   rŠ   r‹   r(  ?  s    z_BaseRequestContextManager.send)r-  rþ   rÍ   c                 O   s   | j j||ŽS rÒ   )r›  Úthrow)ré   r-  rþ   rŠ   rŠ   r‹   r   B  s    z _BaseRequestContextManager.throwr  c                 C   s
   | j  ¡ S rÒ   )r›  r*  r‚  rŠ   rŠ   r‹   r*  E  s    z _BaseRequestContextManager.closec                 C   s   | j  ¡ }|S rÒ   )r›  Ú	__await__)ré   ÚretrŠ   rŠ   r‹   r¡  H  s    
z$_BaseRequestContextManager.__await__c                 C   s   |   ¡ S rÒ   )r¡  r‚  rŠ   rŠ   r‹   Ú__iter__L  s    z#_BaseRequestContextManager.__iter__c                 Ã   s   | j I d H | _| j ¡ I d H S rÒ   )r›  rœ  r  r‚  rŠ   rŠ   r‹   r  O  s    z%_BaseRequestContextManager.__aenter__©rˆ  rE  ÚtbrÍ   c                 Ã   s   | j  |||¡I d H  d S rÒ   )rœ  rŽ  ©ré   rˆ  rE  r¥  rŠ   rŠ   r‹   rŽ  S  s    z$_BaseRequestContextManager.__aexit__)rƒ   r„   r…   Ú	__slots__r   rž   rì   r(  r   r   r*  r   r¡  r£  r  r   r   r)  r   rŽ  rŠ   rŠ   rŠ   r‹   rš  8  s   
ûrš  c                   @   s^   e Zd ZdZeddef eddœdd„Zedœdd	„Ze	e
e  e	e e	e dd
œdd„ZdS )Ú_SessionRequestContextManager©r›  rœ  Ú_sessionr  N)rž  r  rÍ   c                 C   s   || _ d | _|| _d S rÒ   r©  )ré   rž  r  rŠ   rŠ   r‹   rì   d  s    z&_SessionRequestContextManager.__init__r  c                 Ã   sD   z| j I d H | _W n& tk
r8   | j ¡ I d H  ‚ Y nX | jS d S rÒ   )r›  rœ  r)  rª  r*  r‚  rŠ   rŠ   r‹   r  m  s    z(_SessionRequestContextManager.__aenter__r¤  c                 Ã   s,   | j d k	st‚| j  ¡  | j ¡ I d H  d S rÒ   )rœ  rÚ   r*  rª  r¦  rŠ   rŠ   r‹   rŽ  v  s    
z'_SessionRequestContextManager.__aexit__)rƒ   r„   r…   r§  r   r>   ra   rì   r  r   r   r)  r   rŽ  rŠ   rŠ   rŠ   r‹   r¨  `  s   ü	
ûr¨  r  r¹   )rj   rk   rl   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   rm   rÄ   r¾   r   r¿   r   r‚   )r  r  rj   rk   rl   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   rm   rÄ   r¾   r   r¿   r   r‚   rÍ   c                C   sh   d}|dkrd}t |dd}t||||||d}t|j| |||||||||	|
|||||||||d|ƒS )aµ  Constructs and sends a request.

    Returns response object.
    method - HTTP method
    url - request url
    params - (optional) Dictionary or bytes to be sent in the query
      string of the new request
    data - (optional) Dictionary, bytes, or file-like object to
      send in the body of the request
    json - (optional) Any json compatible python object
    headers - (optional) Dictionary of HTTP Headers to send with
      the request
    cookies - (optional) Dict object to send with the request
    auth - (optional) BasicAuth named tuple represent HTTP Basic Auth
    auth - aiohttp.helpers.BasicAuth
    allow_redirects - (optional) If set to False, do not follow
      redirects
    version - Request HTTP version.
    compress - Set to True if request has to be compressed
       with deflate encoding.
    chunked - Set to chunk size for chunked transfer encoding.
    expect100 - Expect 100-continue response from server.
    connector - BaseConnector sub-class instance to support
       connection pooling.
    read_until_eof - Read response until eof if response
       does not have Content-Length header.
    loop - Optional event loop.
    timeout - Optional ClientTimeout settings structure, 5min
       total timeout by default.
    Usage::
      >>> import aiohttp
      >>> resp = await aiohttp.request('GET', 'http://python.org/')
      >>> resp
      <ClientResponse(python.org/) [200]>
      >>> data = await resp.read()
    FNT)r¿   Zforce_close)r¿   rm   rÄ   rz   r¾   rÆ   )rj   rk   rl   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   r   r   r‚   )rF   ra   r¨  r  )r  r  rj   rk   rl   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   rm   rÄ   r¾   r   r¿   r   r‚   rÆ   r  rŠ   rŠ   r‹   rc     sJ    @ú	ìérc   )”r  rÖ   r^  ri  rl   r`  rå   rã   rÛ   Ú
contextlibr   Útypesr   Útypingr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   rÞ   Ú	multidictr   r   r   r   Zyarlr   rT  r   r   r   Úabcr    Zclient_exceptionsr!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   Zclient_reqrepr=   r>   r?   r@   rA   Z	client_wsrB   r¾   rC   rD   rE   rF   rG   Ú	cookiejarrH   ÚhelpersrI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   Zhttp_websocketrU   rV   rW   rX   ÚstreamsrY   ÚtracingrZ   r[   Ztypedefsr\   r]   r^   r_   r`   Ú__all__r{   rd   r•  rh   ri   Úsrb   r—   r†   rè   r!  rž   r–  r‡   r”  ra   rš  r  rN  r¨  r‘  rˆ   r‰   r“  r’  rc   rŠ   rŠ   rŠ   r‹   Ú<module>   sÐ   Tx(
1        c $%æ

å