File: //opt/cppython/lib/python3.8/site-packages/botocore/__pycache__/auth.cpython-38.pyc
U
KD�g_� � @ s| d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlm Z d dl
mZ d dlm
Z
mZ d dlmZ d dlmZmZmZmZmZmZmZmZmZ d dlmZmZmZmZ d dl m!Z!m"Z"m#Z# d d lm$Z$ e�%e&�Z'd
Z(dZ)dZ*d
Z+ddddgZ,dZ-dZ.dd� Z/dd� Z0G dd� d�Z1G dd� de1�Z2G dd� de1�Z3G dd� de1�Z4G d d!� d!e1�Z5G d"d#� d#e5�Z6G d$d%� d%e6�Z7G d&d'� d'e7�Z8G d(d)� d)e7�Z9G d*d+� d+e5�Z:G d,d-� d-e:�Z;G d.d/� d/e5�Z<G d0d1� d1e1�Z=G d2d3� d3e=�Z>G d4d5� d5e=�Z?G d6d7� d7e2�Z@d8d9� ZAe3e4e4e=e>e?e<e7e9e8e@d:�ZBe�rVd d;lCmDZD eB�EeD� neB�Ee5e:e6e;d<�� d=d>d?d@dA�ZFdS )B� N)�Mapping��
formatdate)�sha1�sha256)�
itemgetter) �HAS_CRT�HTTPHeaders�encodebytes�ensure_unicode�parse_qs�quote�unquote�urlsplit�
urlunsplit)�NoAuthTokenError�NoCredentialsError�UnknownSignatureVersionError� UnsupportedSignatureVersionError)�is_valid_ipv6_endpoint_url�normalize_url_path�percent_encode_sequence)�
MD5_AVAILABLEZ@e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855i z%Y-%m-%dT%H:%M:%SZz%Y%m%dT%H%M%SZ�expectztransfer-encodingz
user-agentzx-amzn-trace-idzUNSIGNED-PAYLOADz"STREAMING-UNSIGNED-PAYLOAD-TRAILERc C sZ t | �}|j}t| �r"d|� d�}ddd�}|jd k rV|j|�|j�krVd||jf }|S )N�[�]�P i� )�http�httpsz%s:%d)r �hostnamer �port�get�scheme)�url� url_parts�hostZ
default_ports� r&