File: //lib/python3/dist-packages/botocore/__pycache__/utils.cpython-310.pyc
o
YZ�a�y � @ s� d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl Z d dl
Z
d dlZd dlZd dl
Zd dlmZ d dlZd dlZd dlZd dlmZmZmZmZmZmZmZmZmZmZmZm Z d dl!m"Z"m#Z# d dl$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z: d dl;m<Z< e�=e>�Z?dZ@dZAd ZBd
ZCdZDe�Ed�ZFe+e*e,e-fZGd
gZHi dd�dd�dd�dd�dd�dd�dd�dd�dd�dd �d!d"�d#d$�d%d&�d'd(�d)d*�d+d,�d-d.�i d/d0�d1d2�d3d4�d5d6�d7d8�d9d:�d;d<�d=d>�d?d@�dAdB�dCdD�dEdF�dGdH�dIdJ�dKdL�dMdH�dNdO��i dPdQ�dRdS�dTdU�dVdW�dXdW�dYd.�dZd0�d[d8�d\d]�d^d_�d`da�dbdc�ddde�dfdg�dhdi�djdS�dkdl��i dmdn�dodn�dpdq�drdc�dsdt�dudv�dwdx�dyd]�dzd{�d|d}�d~d�d�de�d�d��d�d��d�d��d�d��d�d���d�d�d�dBd{d���ZId�ZJd�ZKd�jLeKeJd��ZMeKeMd��ZNg d��ZOd�ZPd�d��Qd�d�� eOD �� d� ZRd�eP d� ZSd�eR d� eS d� ZTe�Ed�eT d� �ZUeVd��ZWd�d�� ZXd�d�� ZYd�d�� ZZd�d�� Z[d�d�� Z\d�d�� Z]d�d�� Z^d�d�� Z_d�d�� Z`�d d�d��Zad�d�� ZbG d�d�� d�ec�ZdG d�d�� d�ec�ZeG d�d�� d�ef�ZgG d�d�� d�eg�Zh�d!d�dZid�dĄ Zjekfd�dƄZld�dȄ ZmeDfd�dʄZneDfd�d̄Zod�d΄ Zpd�dЄ Zqd�d҄ Zr�d"d�dԄZs�d!d�dքZtd�d Zud�dڄ ZvG d�d܄ d�ef�ZwG d�dބ d�ef�Zxd�d� Zyd�d� Zzd�d� Z{d�d� Z|d�d� Z} �d"d�d�Z~ �d"d�d�Zd�d� Z�d�d� Z�d�d� Z�d�d� Z��d d�d��Z��d d�d��Z�d�d�� Z�d�d�� Z�G d�d�� d�ef�Z�G d��d � �d e��Z�G �d�d� �def�Z�G �d�d� �def�Z�G �d�d� �def�Z�G �d�d� �def�Z�G �d �d
� �d
ef�Z�G �d�d� �def�Z��d
�d� Z��d�d� Z��d#�d�d�Z��d�d� Z��d�d� Z��d�d� Z��d�d� Z�G �d�d� �def�Z�G �d�d� �def�Z�dS ($ � N)�tzutc)�json�quote�zip_longest�urlsplit�
urlunsplit�OrderedDict�six�urlparse�get_tzinfo_options�get_md5�
MD5_AVAILABLE�HAS_CRT)�
getproxies�proxy_bypass)�InvalidExpressionError�ConfigNotFound�InvalidDNSNameError�ClientError�MetadataRetrievalError�EndpointConnectionError�ReadTimeoutError�ConnectionClosedError�ConnectTimeoutError�UnsupportedS3ArnError�*UnsupportedS3AccesspointConfigurationError�SSOTokenLoadError�InvalidRegionError�InvalidIMDSEndpointError�InvalidIMDSEndpointModeError�UnsupportedOutpostResourceError�&UnsupportedS3ControlConfigurationError�UnsupportedS3ControlArnError�InvalidHostLabelError�HTTPClientError�UnsupportedS3ConfigurationError�MissingDependencyException)�LocationParseError� zhttp://169.254.169.254/zhttp://[fd00:ec2::254]/)�ipv4�ipv6z-._~z[a-z0-9][a-z0-9\-]*[a-z0-9]� dualstack�a4bzalexa-for-business�alexaforbusinesszapi.mediatailor�mediatailorzapi.pricing�pricingz
api.sagemaker� sagemaker�
apigatewayzapi-gatewayzapplication-autoscalingzapplication-auto-scaling�
appstream2� appstream�autoscalingzauto-scalingzautoscaling-planszauto-scaling-plans�cez
cost-explorer�
cloudhsmv2zcloudhsm-v2�cloudsearchdomainzcloudsearch-domainzcognito-idpzcognito-identity-provider�configzconfig-service�curzcost-and-usage-report-servicezdata.iotziot-data-planez
data.jobs.iotziot-jobs-data-planezdata.mediastorezmediastore-data�datapipelinez
data-pipeline�
devicefarmzdevice-farmzdevices.iot1clickziot-1click-devices-service�
directconnectzdirect-connect� discoveryzapplication-discovery-service�dmszdatabase-migration-service�dszdirectory-service�dynamodbstreamszdynamodb-streams�elasticbeanstalkzelastic-beanstalk�elasticfilesystem�efs�elasticloadbalancingzelastic-load-balancing�elasticmapreduce�emr�elastictranscoderzelastic-transcoder�elb�elbv2zelastic-load-balancing-v2�email�seszentitlement.marketplacezmarketplace-entitlement-service�eszelasticsearch-service�events�eventbridgezcloudwatch-eventsziot-dataz
iot-jobs-dataziot1click-devicesziot1click-projectsziot-1click-projects�kinesisanalyticszkinesis-analytics�kinesisvideoz
kinesis-videoz
lex-modelszlex-model-building-servicezlex-runtimezlex-runtime-service�logszcloudwatch-logs�machinelearningzmachine-learningzmarketplace-entitlement�marketplacecommerceanalyticszmarketplace-commerce-analyticszmetering.marketplacezmarketplace-metering�meteringmarketplace�mghz
migration-hubz
models.lex�
monitoring�
cloudwatchzmturk-requester�mturkzopsworks-cm�
opsworkscmzprojects.iot1click�resourcegroupstaggingapizresource-groups-tagging-api�route53zroute-53�route53domainszroute-53-domainszruntime.lexzruntime.sagemakerzsagemaker-runtime�sdb�simpledb�secretsmanagerzsecrets-manager�serverlessrepo�serverlessapplicationrepository�servicecatalogzservice-catalog�sfnzstorage-gateway)�states�
stepfunctions�storagegatewayzstreams.dynamodb�taggingz(?:[0-9]{1,3}\.){3}[0-9]{1,3}z[0-9A-Fa-f]{1,4}z(?:{hex}:{hex}|{ipv4}))�hexr) )rh �ls32) z(?:%(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(?:�|c C s g | ]}|t �qS � )�_subs)�.0�xrk rk �0/usr/lib/python3/dist-packages/botocore/utils.py�
<listcomp>� s rp �)z
(?:%25|%)(?:[z]|%[a-fA-F0-9]{2})+z\[z)?\]�^�$z
c C s( t | t�r| S t | t�r| �� dkS dS )z~Ensures a boolean value if a string or boolean is provided
For strings, the value for True/False is case insensitive
�trueF)�
isinstance�bool�str�lower��valrk rk ro �ensure_boolean� s
r{ c C sP | � d�}|dur|�� }|tvr|td�}tdi |���|S | � d�r&dS dS )z�Resolving IMDS endpoint mode to either IPv6 or IPv4.
ec2_metadata_service_endpoint_mode takes precedence over imds_use_ipv6.
�"ec2_metadata_service_endpoint_modeN)�mode�valid_modes�
imds_use_ipv6r* r) rk )�get_config_variablerx �METADATA_ENDPOINT_MODESr )�session�
endpoint_mode�lendpoint_mode�error_msg_kwargsrk rk ro �resolve_imds_endpoint_mode� s ��
r� c C s2 t | d�o| j�dd�o| j�d�dko| jdkS )z�Determines if the provided shape is the special header type jsonvalue.
:type shape: botocore.shape
:param shape: Shape to be inspected for the jsonvalue trait.
:return: True if this type is a jsonvalue, False otherwise
:rtype: Bool
�
serialization� jsonvalueF�location�header�string)�hasattrr� �get� type_name)�shaperk rk ro �is_json_value_header� s
���r� c C s<