HEX
Server: Apache
System: Linux aura.ambarhosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User: chicagos (1295)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //lib/python2.7/site-packages/botocore/httpsession.pyc
�
N$�_c@sJddlZddlZddlZddlmZddlmZmZm	Z	m
Z
ddlmZddl
mZmZmZmZmZddlmZddlmZddlmZdd	lmZmZmZydd
lmZWn!e k
rddl
mZnXddl!Z"ddl#m$Z$dd
l%m&Z&ddl'm(Z(m)Z)ddl*m+Z+m,Z,m-Z-mZm.Z.mZmZe(�ej/e0�Z1dZ2dZ3ej4j5ej4j6e7�d�Z8yddl9m:Z:Wne k
r�d�Z:nXd�Z;ddddd�Z=de>fd��YZ?de>fd��YZ@dS(i����N(t	b64encode(tPoolManagertProxyManagertproxy_from_urltTimeout(tRetry(tssltOP_NO_SSLv2tOP_NO_SSLv3tOP_NO_COMPRESSIONtDEFAULT_CIPHERS(tSSLError(tReadTimeoutError(tConnectTimeoutError(tNewConnectionErrort
ProtocolErrort
ProxyError(torig_util_SSLContext(t
SSLContext(tsix(tunquote(tfilter_ssl_warningsturlparse(tConnectionClosedErrortEndpointConnectionErrortHTTPClientErrorRtProxyConnectionErrorR
Ri<i
s
cacert.pem(twherecCstS(N(tDEFAULT_CA_BUNDLE(((s8/usr/lib/python2.7/site-packages/botocore/httpsession.pyR'scCs|tk	r|St�S(N(tTrueR(tverify((s8/usr/lib/python2.7/site-packages/botocore/httpsession.pyt
get_cert_path+scCs�t|ptj�}|dkr*tjn|}|dkrcd}|tO}|tO}|tO}n|j|O_t	|dt
�r�|j|p�t�n||_
t	|dd�dk	r�t|_n|S(s� This function is a vendored version of the same function in urllib3

        We vendor this function to ensure that the SSL contexts we construct
        always use the std lib SSLContext instead of pyopenssl.
    itsupports_set_cipherstcheck_hostnameN(RRtPROTOCOL_SSLv23tNonet
CERT_REQUIREDRRR	toptionstgetattrRtset_ciphersR
tverify_modetFalseR!(tssl_versiont	cert_reqsR%tcipherstcontext((s8/usr/lib/python2.7/site-packages/botocore/httpsession.pytcreate_urllib3_context2s


	tProxyConfigurationcBsGeZdZdd�Zd�Zd�Zd�Zd�Zd�Z	RS(s�Represents a proxy configuration dictionary.

    This class represents a proxy configuration dictionary and provides utility
    functions to retreive well structured proxy urls and proxy headers from the
    proxy configuration dictionary.
    cCs"|dkri}n||_dS(N(R#t_proxies(tselftproxies((s8/usr/lib/python2.7/site-packages/botocore/httpsession.pyt__init__^s	cCs=t|�}|jj|j�}|r9|j|�}n|S(s7Retrieves the corresponding proxy url for a given url. (RR0tgettschemet_fix_proxy_url(R1turlt
parsed_urltproxy((s8/usr/lib/python2.7/site-packages/botocore/httpsession.pyt
proxy_url_forcs
cCsJi}|j|�\}}|rF|rF|j||�}||d<n|S(sARetrieves the corresponding proxy headers for a given proxy url. sProxy-Authorization(t_get_auth_from_urlt_construct_basic_auth(R1t	proxy_urltheaderstusernametpasswordt
basic_auth((s8/usr/lib/python2.7/site-packages/botocore/httpsession.pytproxy_headers_forks
cCsE|jd�s|jd�r"|S|jd�r9d|Sd|SdS(Nshttp:shttps:s//shttp://(t
startswith(R1R=((s8/usr/lib/python2.7/site-packages/botocore/httpsession.pyR6ts
cCs@dj||�}t|jd��j�j�}dj|�S(Ns{0}:{1}tasciis	Basic {0}(tformatRtencodetstriptdecode(R1R?R@tauth_strtencoded_str((s8/usr/lib/python2.7/site-packages/botocore/httpsession.pyR<|s!cCsKt|�}y t|j�t|j�fSWnttfk
rFdSXdS(N(NN(RRR?R@tAttributeErrort	TypeErrorR#(R1R7R8((s8/usr/lib/python2.7/site-packages/botocore/httpsession.pyR;�s
 N(
t__name__t
__module__t__doc__R#R3R:RBR6R<R;(((s8/usr/lib/python2.7/site-packages/botocore/httpsession.pyR/Ws					tURLLib3SessioncBs}eZdZeddeddd�Zd�Zd�Zd�Z	d�Z
d�Zdd�Zd�Z
d	�Zd
�ZRS(s_A basic HTTP client that supports connection pooling and proxies.

    This class is inspired by requests.adapters.HTTPAdapter, but has been
    boiled down to meet the use cases needed by botocore. For the most part
    this classes matches the functionality of HTTPAdapter in requests v2.7.0
    (the same as our vendored version). The only major difference of note is
    that we currently do not support sending chunked requests. While requests
    v2.7.0 implemented this themselves, later version urllib3 support this
    directly via a flag to urlopen so enabling it if needed should be trivial.
    cCs=||_td|�|_itjjd6tjjd6|_|dkrSt	}nt
|ttf�s�t
d|dd|d�}nd|_d|_t
|t�r�||_n$t
|t�r�|\|_|_n||_||_||_|dkrg|_ni|_t|j��|_|j|j_dS(NR2thttpthttpstconnectitreadi(t_verifyR/t
_proxy_configtbotocoret
awsrequesttAWSHTTPConnectionPooltAWSHTTPSConnectionPoolt_pool_classes_by_schemeR#tDEFAULT_TIMEOUTt
isinstancetinttfloatRt
_cert_filet	_key_filetstrttuplet_timeoutt_max_pool_connectionst_socket_optionst_proxy_managersRt_get_pool_manager_kwargst_managertpool_classes_by_scheme(R1RR2ttimeouttmax_pool_connectionstsocket_optionstclient_cert((s8/usr/lib/python2.7/site-packages/botocore/httpsession.pyR3�s.	
	 						cKs]itd6|jd6|jd6|j�d6|jd6|jd6|jd6}|j|�|S(NtstrictRktmaxsizetssl_contextRmt	cert_filetkey_file(RRdRet_get_ssl_contextRfR`Ratupdate(R1textra_kwargstpool_manager_kwargs((s8/usr/lib/python2.7/site-packages/botocore/httpsession.pyRh�s






cCst�S(N(R.(R1((s8/usr/lib/python2.7/site-packages/botocore/httpsession.pyRt�scCsi||jkr^|jj|�}|jd|�}t||�}|j|_||j|<n|j|S(Nt
proxy_headers(RgRVRBRhRR[Rj(R1R=Rxtproxy_manager_kwargst
proxy_manager((s8/usr/lib/python2.7/site-packages/botocore/httpsession.pyt_get_proxy_manager�s		cCsEt|�}|j}|s$d}n|jrA|d|j}n|S(Nt/t?(Rtpathtquery(R1R7R8R~((s8/usr/lib/python2.7/site-packages/botocore/httpsession.pyt	_path_url�s			cCsL|j�jd�r6|r6d|_t|�|_nd|_d|_dS(NRRR$t	CERT_NONE(tlowerRCR+Rtca_certsR#(R1tconnR7R((s8/usr/lib/python2.7/site-packages/botocore/httpsession.pyt_setup_ssl_cert�s
		cCs%|r|j|�}n	|j}|S(N(R{Ri(R1R7R=tmanager((s8/usr/lib/python2.7/site-packages/botocore/httpsession.pyt_get_connection_manager�s	cCs*|r|jd�r|S|j|�SdS(Nshttp:(RCR�(R1R7R=((s8/usr/lib/python2.7/site-packages/botocore/httpsession.pyt_get_request_target�scCs|jdd�dkS(NsTransfer-Encodingttchunked(R4(R1R>((s8/usr/lib/python2.7/site-packages/botocore/httpsession.pyt_chunked�sc
CsPy|jj|j�}|j|j|�}|j|j�}|j||j|j�|j|j|�}|jd|j	d|d|j
d|jdtt
�dt
dt
dt
d	|j|j��	}tjj|j|j|j|�}|js|jn|SWnCtk
r3}td
|jd|��nttjfk
rf}td
|jd|��n�tk
r�}td|d|��n�tk
r�}td
|jd|��n�tk
r�}t d
|jd|��nkt!k
r}t"d|d
|d
|j��n;t#k
rK}d}	t$j%|	dt&�t'd|��nXdS(NtmethodR7tbodyR>tretriestassert_same_hosttpreload_contenttdecode_contentR�tendpoint_urlterrorR=trequests4Exception received when sending urllib3 HTTP requesttexc_info((RVR:R7R�tconnection_from_urlR�RUR�turlopenR�R�R>RR)R�RWRXtAWSResponsetstatust
stream_outputtcontenttURLLib3SSLErrorRRtsockettgaierrorRRRtURLLib3ConnectTimeoutErrorR
tURLLib3ReadTimeoutErrorRRRt	ExceptiontloggertdebugRR(
R1R�R=R�R�trequest_targetturllib_responset
http_responsetetmessage((s8/usr/lib/python2.7/site-packages/botocore/httpsession.pytsend�sV							
N(RMRNRORR#tMAX_POOL_CONNECTIONSR3RhRtR{R�R�R�R�R�R�(((s8/usr/lib/python2.7/site-packages/botocore/httpsession.pyRP�s 
	
								(Atos.pathtostloggingR�tbase64Rturllib3RRRRturllib3.util.retryRturllib3.util.ssl_RRRR	R
turllib3.exceptionsRR�RR�R
R�RRRturllib3.contrib.pyopensslRRtImportErrortbotocore.awsrequestRWtbotocore.vendoredRt(botocore.vendored.six.moves.urllib_parseRtbotocore.compatRRtbotocore.exceptionsRRRRt	getLoggerRMR�R\R�R~tjointdirnamet__file__RtcertifiRRR#R.tobjectR/RP(((s8/usr/lib/python2.7/site-packages/botocore/httpsession.pyt<module>sB"(
4!

	$2