HEX
Server: LiteSpeed
System: Linux server.nevid-deploma.com 4.18.0-553.111.1.lve.el8.x86_64 #1 SMP Fri Mar 13 13:42:17 UTC 2026 x86_64
User: smilepac (1037)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/cppython/lib/python3.8/site-packages/botocore/__pycache__/compat.cpython-38.pyc
U

KD�g-�	@s`ddlZddlZddlZddlZddlZddlZddlmZddlZddl	Z	ddl
Z
ddlZddlm
Z
ddlmZddlmZddlmZddlmZddlmZdd	lmZe�e�ZGd
d�de�ZddlmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(dd
lm)Z)ddl*m+Z,ddl-m.Z.ddl/m0Z0ddl1m2Z2e,Z3e4Z4e"Z5dd�Z6dd�Z7dPdd�Z8dQdd�Z9zddl:m;m<Z=Wn(e>k
�r�ddl?m;m@Z=YnXe=jAZBddlCZCdd�ZDeEdd��ZFeEd d!��ZGeFe_FeGe_Gd"d#�ZHd$d%�ZIze�J�d&ZKWneLeMfk
�rd'ZKYnXd(d)�ZNdRd*d+�ZOd,d-�ZPd.d/�ZQz(ddlRZSejT�Ud0d1�ZVeV�W�d2kZXWne>k
�r�d'ZXYnXd3d4�ZYd5ZZe
�[d6eZd7�Z\d8Z]d9j^e]eZd:�Z_e]e_d;�Z`d<d=d>d?d@dAdBdCdDg	ZadEZbdFdG�cdHdI�eaD��dJZddKebdLZedMeddFeedNZfe
�[d6efd7�ZgehdO�ZizddljZjd&ZkWne>k
�rZd'ZkYnXdS)S�N)�HTTPMessage)�OrderedDict)�MutableMapping)�floor)�six)�MD5UnavailableError)�tzlocal)�
exceptionsc@seZdZdS)�HTTPHeadersN)�__name__�
__module__�__qualname__�rr�</opt/cppython/lib/python3.8/site-packages/botocore/compat.pyr
%sr
)
�quote�	urlencode�unquote�unquote_plus�urlparse�urlsplit�
urlunsplit�urljoin�	parse_qsl�parse_qs)�HTTPResponse)�IOBase)�encodebytes)�
formatdate)�zip_longestcCs|jjjj�|�dS)z|Set the timeout of the socket from an HTTPResponse.

    :param http_response: An instance of ``httplib.HTTPResponse``

    N)�_fp�fp�raw�_sock�
settimeout)�
http_response�timeoutrrr�set_socket_timeout@sr&cCst�|�dS)N�)�inspect�getfullargspec)�funcrrr�accepts_kwargsHsr+cCs|S�Nr��s�encoding�errorsrrr�ensure_unicodeMsr1�utf-8�strictcCs<t|t�r|�||�St|t�r$|Stdt|��d���dS)Nz Expected str or bytes, received �.)�
isinstance�str�encode�bytes�
ValueError�typer-rrr�ensure_bytesQs


r;cCstjddtjdd�dS)N�ignorez+A true SSLContext object is not available.*z.*urllib3\.util\.ssl_)�message�category�module)�warnings�filterwarningsr	�InsecurePlatformWarningrrrr�filter_ssl_warningsbs�rCcCs$|�}|��D]\}}|||<q|Sr,)�items)�cls�d�new_instance�key�valuerrr�	from_dictls
rJcCs |�}|D]\}}|||<q
|Sr,r)rE�pairsrGrHrIrrr�
from_pairsts
rLcCst�|�}|S)zI
    This used to be a compat shim for 2.6 but is now just an alias.
    )�copy)�kwargs�copy_kwargsrrrrO�s
rOcCs|��S)z�
    Returns the total seconds in a ``datetime.timedelta``.

    This used to be a compat shim for 2.6 but is now just an alias.

    :param delta: The timedelta object
    :type delta: ``datetime.timedelta``
    )�
total_seconds)�deltarrrrP�s	rPTFcOstrtj||�St��dS)a:
    Attempts to get an md5 hashing object.

    :param args: Args to pass to the MD5 constructor
    :param kwargs: Key word arguments to pass to the MD5 constructor
    :return: An MD5 hashing object if available. If it is unavailable, None
        is returned if raise_error_if_unavailable is set to False.
    N)�
MD5_AVAILABLE�hashlib�md5r)�argsrNrrr�get_md5�s	rVcCs,|dkrtj}|dkrt|�St�|�SdS)N�win32)�sys�platform�_windows_shell_split�shlex�split)r.rYrrr�compat_shell_split�s
r]cCs:|sgSg}g}d}d}|D]�}|dkr2|d7}q|dkr�|dkr||�dtt|d���|d}d}|dkr||�d�q|}|�d�q|dkr�|s�|dkr�|�d|�d}|r�|�d�|��g}q|dkr�|�d|�d}|�|�q|�rtd	|����|dk�r |�d|�|�r6|�d�|��|S)
aSplits up a windows command as the built-in command parser would.

    Windows has potentially bizarre rules depending on where you look. When
    spawning a process via the Windows C runtime (which is what python does
    when you call popen) the rules are as follows:

    https://docs.microsoft.com/en-us/cpp/cpp/parsing-cpp-command-line-arguments

    To summarize:

    * Only space and tab are valid delimiters
    * Double quotes are the only valid quotes
    * Backslash is interpreted literally unless it is part of a chain that
      leads up to a double quote. Then the backslashes escape the backslashes,
      and if there is an odd number the final backslash escapes the quote.

    :param s: The command string to split up into parts.
    :return: A list of command components.
    Fr�\��"r'�)� �	z No closing quotation in string: )�append�intr�joinr9)r.�
componentsZbuffZ	is_quotedZnum_backslashes�	character�	remainderrrrrZ�sJ


rZcCs(tjdkrddlm}t|fStfSdS)NrWr��
tzwinlocal)rXrY�dateutil.tzrkrrjrrr�get_tzinfo_optionss
rmZBOTO_DISABLE_CRT�false�truec	CsNtsdStj}ztt|�d��}t|�}Wnttfk
rDYdSX||kS)z&Not intended for use outside botocore.Fr4)	�HAS_CRT�awscrt�__version__�maprer\�tuple�	TypeErrorr9)�minimum_versionZcrt_version_strZcrt_version_intsZcrt_version_tuplerrr�has_minimum_crt_version+srwz(?:[0-9]{1,3}\.){3}[0-9]{1,3}�^�$z[0-9A-Fa-f]{1,4}z(?:{hex}:{hex}|{ipv4}))�hexZipv4)rz�ls32z(?:%(hex)s:){6}%(ls32)sz::(?:%(hex)s:){5}%(ls32)sz%(?:%(hex)s)?::(?:%(hex)s:){4}%(ls32)sz2(?:(?:%(hex)s:)?%(hex)s)?::(?:%(hex)s:){3}%(ls32)sz6(?:(?:%(hex)s:){0,2}%(hex)s)?::(?:%(hex)s:){2}%(ls32)sz/(?:(?:%(hex)s:){0,3}%(hex)s)?::%(hex)s:%(ls32)sz'(?:(?:%(hex)s:){0,4}%(hex)s)?::%(ls32)sz&(?:(?:%(hex)s:){0,5}%(hex)s)?::%(hex)sz(?:(?:%(hex)s:){0,6}%(hex)s)?::zDABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._!\-~z(?:�|cCsg|]}|t�qSr)�_subs)�.0�xrrr�
<listcomp>]sr��)z
(?:%25|%)(?:[z]|%[a-fA-F0-9]{2})+z\[z)?\]z	
)NN)r2r3)N)lrM�datetimerXr(r@rS�http.clientr�loggingr[�re�os�collectionsr�collections.abcr�mathrZbotocore.vendoredrZbotocore.exceptionsrrlr�urllib3r	�	getLoggerr�loggerr
�urllib.parserrrrrrrrrrr�ior�_IOBase�base64r�email.utilsr�	itertoolsr�	file_type�zipZunquote_strr&r+r1r;Zxml.etree.cElementTree�etreeZcElementTreeZETree�ImportErrorZxml.etree.ElementTreeZElementTreeZ
ParseErrorZ
XMLParseError�jsonrC�classmethodrJrLrOrPrTrR�AttributeErrorr9rVr]rZrmZawscrt.authrq�environ�get�disabled�lowerrprw�IPV4_PAT�compile�IPV4_RE�HEX_PAT�format�LS32_PATr}�_variations�UNRESERVED_PATrf�IPV6_PAT�ZONE_ID_PAT�IPV6_ADDRZ_PAT�
IPV6_ADDRZ_RE�	frozensetZUNSAFE_URL_CHARS�gzipZHAS_GZIPrrrr�<module>s�
0







^


��