§
    7xÅjð   ã                   ó,  — 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m	Z	 ddl
mZ ddlmZ ddlmZ ddlmZ ddlmZmZ dd	lmZmZmZ  ej        e¦  «        Zd
dgZg d¢ZdZdZdZ dZ! G d„ d¦  «        Z" G d„ d¦  «        Z# G d„ de$e#¦  «        Z%dS )z²Internal module to help with normalizing botocore client args.

This module (and all function/classes within this module) should be
considered internal, and *not* a public API.

é    N)ÚConfig)ÚEndpointCreator)ÚEndpointResolverBuiltins)ÚEndpointRulesetResolver)ÚRequestSigner)ÚUserAgentStringÚregister_feature_id)Ú$PRIORITY_ORDERED_SUPPORTED_PROTOCOLSÚensure_booleanÚis_s3_accelerate_urlÚlegacyÚregional)zap-northeast-1z
ap-south-1zap-southeast-1zap-southeast-2ú
aws-globalzca-central-1zeu-central-1z
eu-north-1z	eu-west-1z	eu-west-2z	eu-west-3z	sa-east-1ú	us-east-1z	us-east-2z	us-west-1z	us-west-2é2   )Úwhen_supportedÚwhen_required)Ú	preferredÚdisabledÚrequiredc                   ó   — e Zd Z	 d(d„Z	 	 	 d)d„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd(d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d „ Z!d!„ Z"d"„ Z#d#„ Z$d$„ Z%d%„ Z&d&„ Z'd'„ Z(dS )*ÚClientArgsCreatorNc                 ó’   — || _         || _        || _        || _        || _        |€t          j        ¦   «         | _        d S || _        d S ©N)Ú_event_emitterÚ_response_parser_factoryÚ_loaderÚ_exceptions_factoryÚ_config_storer   Úfrom_environmentÚ_session_ua_creator)ÚselfÚevent_emitterÚ
user_agentÚresponse_parser_factoryÚloaderÚexceptions_factoryÚconfig_storeÚuser_agent_creators           ú>C:\Projects\Historical\venv\Lib\site-packages\botocore/args.pyÚ__init__zClientArgsCreator.__init__V   sV   € ð ,ˆÔØ(?ˆÔ%ØˆŒØ#5ˆÔ Ø)ˆÔØÐ%Ý'6Ô'GÑ'IÔ'IˆDÔ$Ð$Ð$à'9ˆDÔ$Ð$Ð$ó    c                 óT  — |                       |||	||||¦  «        }|d         }|d         }|d         }|d         }|d         }|d         }|d                              dd ¦  «        }|d	         }|d
         }|d         }|d         }|d         }|d         }|d         }t          j        | j        ¦  «        }t	          |j        ||d         |d         |||
¦  «        }||d<   t          di |¤Ž}t          |¦  «        }|                     |||d         || j	        |j
        |j        |j        |j        f||j        |j        ¬¦  «        } d|› �}!dt           j        j        i}"|                     |!|||"¬¦  «         t           j                             |||"d         ¬¦  «        }#t           j                             |¦  «        }$|                      |||||||| ||	|||||¦  «        }%| j                             |¦  «        }&|r|j        nd }'|'|_        |#| |$|||| j        ||| j        |%|&dœS )NÚservice_nameÚparameter_validationÚendpoint_configÚprotocolÚconfig_kwargsÚ	s3_configÚmetadataÚ	partitionÚsocket_optionsÚconfigured_endpoint_urlÚsigning_regionÚregion_nameÚaccount_id_endpoint_modeÚs3_disable_express_session_authÚauth_scheme_preferenceÚsigning_nameÚsignature_versionÚs3Úendpoint_url)
r9   r@   Úverifyr%   Úmax_pool_connectionsÚproxiesÚtimeoutr6   Úclient_certÚproxies_configzcreating-serializer.Útimestamp_precision)Úprotocol_nameÚservice_modelÚserializer_kwargs)rG   )Ú
serializerÚendpointÚresponse_parserr#   Úrequest_signerrI   r&   Úclient_configr5   r'   Úendpoint_ruleset_resolverr)   © )Úcompute_client_argsÚgetÚcopyr   r   Ú
service_idr   r   Úcreate_endpointr   rB   rC   Úconnect_timeoutÚread_timeoutrE   rF   ÚbotocoreÚ	serializeÚTIMESTAMP_PRECISION_DEFAULTÚemitÚcreate_serializerÚparsersÚcreate_parserÚ_build_endpoint_resolverr!   Úwith_client_configr$   Ú_supplied_user_agentr   r   )(r"   rI   r9   Ú	is_securer@   rA   ÚcredentialsÚscoped_configrO   Úendpoint_bridgeÚ
auth_tokenÚendpoints_ruleset_dataÚpartition_dataÚ
final_argsr.   r/   r0   r1   r2   r3   r5   r6   r7   r8   Úendpoint_region_namer:   r;   r<   r#   ÚsignerÚ
new_configÚendpoint_creatorrL   Ú
event_namerJ   rK   rM   Úruleset_resolverÚclient_ua_creatorÚsupplied_uas(                                           r*   Úget_client_argsz!ClientArgsCreator.get_client_argsj   sô  € ð ×-Ò-ØØØØØØØñ
ô 
ˆ
ð " .Ô1ˆØ)Ð*@ÔAÐØ$Ð%6Ô7ˆØ˜jÔ)ˆØ" ?Ô3ˆØ˜{Ô+ˆ	Ø# JÔ/×3Ò3°KÀÑFÔFˆ	Ø#Ð$4Ô5ˆØ",Ð-FÔ"GÐØ(Ð)9Ô:ˆØ.¨}Ô=ÐØ#0Ð1KÔ#LÐ Ø*7Ø-ô+
Ð'ð "/Ð/GÔ!HÐåœ	 $Ô"5Ñ6Ô6ˆÝØÔ$ØØ˜NÔ+ØÐ/Ô0ØØØñ
ô 
ˆð (ˆ�dÑÝÐ,Ð,˜mÐ,Ð,ˆ
Ý*¨=Ñ9Ô9Ðà#×3Ò3ØØ,Ø(¨Ô8ØØ$(Ô$AØ!+Ô!@ØÔ&ØÔ/°Ô1HÐIØ)Ø"Ô.Ø%Ô4ð 4ñ 
ô 
ˆð ;¨LÐ:Ð:ˆ
à!¥8Ô#5Ô#Qð
Ðð 	×ÒØØ"Ø'Ø/ð	 	ñ 	
ô 	
ð 	
õ Ô'×9Ò9ØØ Ø 1Ð2GÔ Hð :ñ 
ô 
ˆ
õ
 #Ô*×8Ò8¸ÑBÔBˆà×8Ò8Ø"ØØØØ ØØ#ØØØØØØ$Ø+Ø"ñ
ô 
Ðð& !Ô4×GÒGØñ
ô 
Ðð 3@ÐI�mÔ.Ð.ÀTˆØ*5ˆ
Ô'ð %Ø Ø.Ø*Ø$Ø*Ø”lØ'Ø"Ø"&Ô":Ø)9Ø"3ð
ð 
ð 	
r,   c                 óH  — |j         }|j        }	d}
|r
|j        sd}
n(|r&|                     d¦  «        }|�t	          |¦  «        }
|                      |¦  «        }|                      ||¬¦  «        }|�t          d¦  «         |                      ||||||¬¦  «        }|d                              dg ¦  «        }| j	         
                    |¦  «                             ¦   «         }t          |d	         |d
         |¬¦  «        }d|v r|                     d¬¦  «         d|v r|                     d¬¦  «         |�©|                     |j        |j        |j        |j        |j        |j        |j        |j        |j        |j        |j        |j        |j        |j        |j        |j        |j        |j        |j         |j!        �|j!                             d¦  «        nd ¬¦  «         |  "                    |¦  «         |  #                    |¦  «         |  $                    |¦  «         |  %                    |¦  «         |  &                    |¦  «         |  '                    |¦  «         |  (                    |¦  «         |  )                    ||¦  «         |  *                    ||¦  «         |  +                    ||¦  «         |  ,                    |¦  «         |                      |¦  «        }|  -                    |¦  «        }|rd|v r	|€i }d|d<   ||
|||	|||  .                    ||¦  «        dœS )NTFr/   )rO   r@   ÚENDPOINT_OVERRIDE)r.   r9   r@   rc   rf   r3   r4   Útagsr9   r>   )r9   r>   r$   Ú	dualstack)Úuse_dualstack_endpointÚfips)Úuse_fips_endpointÚdisable_s3_express_session_auth)rW   rX   rB   rC   rF   ÚretriesrE   Úinject_host_prefixÚtcp_keepaliveÚuser_agent_extraÚuser_agent_appidÚ"request_min_compression_size_bytesÚdisable_request_compressionÚclient_context_paramsÚsigv4a_signing_region_setÚrequest_checksum_calculationÚresponse_checksum_validationr:   r<   r;   rx   )r.   r/   r7   r0   r1   r2   r3   r6   )/Úendpoint_prefixÚresolved_protocolr/   rS   r   Úcompute_s3_configÚ _compute_configured_endpoint_urlr	   Ú_compute_endpoint_configr!   ra   Ú	to_stringÚdictÚupdaterW   rX   rB   rC   rF   r|   rE   r}   r~   r   r€   r�   r‚   rƒ   r„   r…   r†   r:   r<   r?   Ú_compute_retry_configÚ_compute_connect_timeoutÚ _compute_user_agent_appid_configÚ#_compute_request_compression_configÚ)_compute_sigv4a_signing_region_set_configÚ_compute_checksum_configÚ(_compute_account_id_endpoint_mode_configÚ_compute_inject_host_prefixÚ&_compute_auth_scheme_preference_configÚ!_compute_signature_version_configÚ(_compute_s3_disable_express_session_authÚ_is_s3_serviceÚ_compute_socket_options)r"   rI   rO   rf   r9   r@   rc   re   r.   r1   r/   Ú	raw_valuer3   r7   r0   Úendpoint_variant_tagsÚpreliminary_ua_stringr2   Úis_s3_services                      r*   rR   z%ClientArgsCreator.compute_client_argsì   s×  € ð %Ô4ˆØ Ô2ˆØ#ÐØð 	A Ô!Cð 	AØ#(Ð Ð Øð 	AØ%×)Ò)Ð*@ÑAÔAˆIØÐ$Ý'5°iÑ'@Ô'@Ð$à×*Ò*¨=Ñ9Ô9ˆ	à"&×"GÒ"GØ'Ø%ð #Hñ #
ô #
Ðð #Ð.ÝÐ 3Ñ4Ô4Ð4à×7Ò7Ø%Ø#Ø0ØØ+Øð 8ñ 
ô 
ˆð !0°
Ô ;× ?Ò ?ÀÈÑ KÔ KÐð !%Ô 8× KÒ KØñ!
ô !
ç
Š)‰+Œ+ð 	õ Ø'¨Ô6Ø-Ð.AÔBØ,ð
ñ 
ô 
ˆð
 Ð/Ð/Ð/Ø× Ò ¸Ð Ñ=Ô=Ð=ØÐ*Ð*Ð*Ø× Ò °4Ð Ñ8Ô8Ð8ØÐ$Ø× Ò Ø -Ô =Ø*Ô7Ø%2Ô%GØ%Ô-Ø,Ô;Ø%Ô-Ø)Ô5Ø#0Ô#CØ+Ô9Ø!.Ô!?Ø!.Ô!?à!ÔDð "Ô=à&3Ô&Ià!Ô;ð "Ô>ð "Ô>à)6Ô)OØ'4Ô'Kð %Ô'Ð3ð "Ô$×(Ò(Ð)JÑKÔKÐKàðC !ñ #ô #ð #ðH 	×"Ò" =Ñ1Ô1Ð1Ø×%Ò% mÑ4Ô4Ð4Ø×-Ò-¨mÑ<Ô<Ð<Ø×0Ò0°Ñ?Ô?Ð?Ø×6Ò6°}ÑEÔEÐEØ×%Ò% mÑ4Ô4Ð4Ø×5Ò5°mÑDÔDÐDØ×(Ò(¨¸ÑFÔFÐFØ×3Ò3Ø˜=ñ	
ô 	
ð 	
ð 	×.Ò.¨}¸mÑLÔLÐLØ×5Ò5°mÑDÔDÐDØ×*Ò*¨=Ñ9Ô9ˆ	à×+Ò+¨LÑ9Ô9ˆàð 	7˜[Ð,AÐAÐAØÐ Ø�	Ø26ˆIÐ.Ñ/ð )Ø$8Ø'>Ø.Ø Ø*Ø"Ø"×:Ò:Ø˜}ñô ð
ð 
ð 	
r,   c                 óv   — |�|j         dk    r+| j                             d¦  «        }|�| |d<   d S d|d<   d S d S )NÚUNSETÚdisable_host_prefix_injectionr}   T)Ú_inject_host_prefixr   Úget_config_variable)r"   rO   r2   Ú(configured_disable_host_prefix_injections       r*   r–   z-ClientArgsCreator._compute_inject_host_prefixp  s{   € ð Ð!ØÔ0°GÒ;Ð;ð Ô"×6Ò6Ø3ñô ð 5ð
 8ÐCð AÐ@ð Ø(ñð ð ð 7;�Ð2Ñ3Ð3Ð3ð <Ð;r,   c                 ó    — |�|S |                       |¦  «        rt                               d¦  «         |S | j                             d¦  «        S )Nz"Ignoring configured endpoint URLs.r@   )Ú _ignore_configured_endpoint_urlsÚloggerÚdebugr   r¤   )r"   rO   r@   s      r*   rŠ   z2ClientArgsCreator._compute_configured_endpoint_urlƒ  sT   € ØÐ#ØÐà×0Ò0°Ñ?Ô?ð 	 Ý�LŠLÐ=Ñ>Ô>Ð>ØÐàÔ!×5Ò5°nÑEÔEÐEr,   c                 óV   — |r|j         �|j         S | j                             d¦  «        S )NÚignore_configured_endpoint_urls)r«   r   r¤   )r"   rO   s     r*   r§   z2ClientArgsCreator._ignore_configured_endpoint_urls�  s;   € àð	AàÔ=ÐIà Ô@Ð@àÔ!×5Ò5Ø-ñ
ô 
ð 	
r,   c                 ó¼   — | j                              d¦  «        }|�?|j        �8|€|j        }n.|                     ¦   «         }|                     |j        ¦  «         |S )Nr?   )r   r¤   r?   rT   rŽ   )r"   rO   Ús3_configurations      r*   r‰   z#ClientArgsCreator.compute_s3_config˜  sm   € ØÔ-×AÒAÀ$ÑGÔGÐð Ð$ØÔÐ+Ø#Ð+Ø'4Ô'7Ð$Ð$ð (8×'<Ò'<Ñ'>Ô'>Ð$Ø$×+Ò+¨MÔ,<Ñ=Ô=Ð=àÐr,   c                 ó
   — |dv S )a,  Whether the service is S3 or S3 Control.

        Note that throughout this class, service_name refers to the endpoint
        prefix, not the folder name of the service in botocore/data. For
        S3 Control, the folder name is 's3control' but the endpoint prefix is
        's3-control'.
        )r?   z
s3-controlrQ   )r"   r.   s     r*   rš   z ClientArgsCreator._is_s3_service«  s   € ð Ð3Ð3Ð3r,   c                 ó|   — |||||dœ}|dk    r | j         dd|i|¤ŽS |dk    r | j        di |¤ŽS  | j        di |¤ŽS )N)r.   r9   r@   rc   rf   r?   r3   ÚstsrQ   )Ú_compute_s3_endpoint_configÚ_compute_sts_endpoint_configÚ_resolve_endpoint)r"   r.   r9   r@   rc   rf   r3   Úresolve_endpoint_kwargss           r*   r‹   z*ClientArgsCreator._compute_endpoint_configµ  sš   € ð )Ø&Ø(Ø"Ø.ð#
ð #
Ðð ˜4ÒÐØ3�4Ô3ð ð Ø#ðØ'>ðð ð ð ˜5Ò Ð Ø4�4Ô4ÐOÐOÐ7NÐOÐOÐOØ%ˆtÔ%Ð@Ð@Ð(?Ð@Ð@Ð@r,   c                 óÄ   — |                       |d         |¦  «        }|rd |d<    | j        di |¤Ž}|                      ||d         ¦  «         |r|d         dk    rd|d<   |S )Nr9   rf   r   r   rQ   )Ú_should_force_s3_globalr³   Ú!_set_region_if_custom_s3_endpoint)r"   r3   r´   Úforce_s3_globalr0   s        r*   r±   z-ClientArgsCreator._compute_s3_endpoint_configÍ  sž   € ð ×6Ò6Ø# MÔ2°Iñ
ô 
ˆð ð 	:Ø59Ð# MÑ2Ø0˜$Ô0ÐKÐKÐ3JÐKÐKˆØ×.Ò.ØÐ4Ð5FÔGñ	
ô 	
ð 	
ð ð 	9˜¨}Ô=ÀÒMÐMØ-8ˆO˜MÑ*ØÐr,   c                 ód   — d}|r!d|v r|d         }|                       |¦  «         |dv }|dk    o|S )Nr   Úus_east_1_regional_endpoint)r   N)Ú_validate_s3_regional_config)r"   r9   r3   Ús3_regional_configÚis_global_regions        r*   r¶   z)ClientArgsCreator._should_force_s3_globalâ  sZ   € Ø%ÐØð 	BÐ6¸)ÐCÐCØ!*Ð+HÔ!IÐØ×-Ò-Ð.@ÑAÔAÐAà&Ð*=Ð=ÐØ! XÒ-ÐBÐ2BÐBr,   c                 óX   — |t           vr t          j                             |¬¦  «        ‚d S )N)Ú%s3_us_east_1_regional_endpoint_config)ÚVALID_REGIONAL_ENDPOINTS_CONFIGrY   Ú
exceptionsÚ+InvalidS3UsEast1RegionalEndpointConfigError)r"   Ú
config_vals     r*   r»   z.ClientArgsCreator._validate_s3_regional_configë  s:   € ØÕ<Ð<Ð<ÝÔ%×QÒQØ6@ð Rñ ô ð ð =Ð<r,   c                 óÖ   — t          |t          ¦  «        o|                     ¦   «         dv }t          |t          ¦  «        s&|s&t          j                             d|› d�¬¦  «        ‚d S d S )N)ÚtrueÚfalseúInvalid value "z>" for s3_disable_express_session_auth. Value must be a boolean©Ú	error_msg)Ú
isinstanceÚstrÚlowerÚboolrY   rÁ   ÚInvalidConfigError)r"   rÃ   Ústring_bools      r*   Ú)_validate_s3_disable_express_session_authz;ClientArgsCreator._validate_s3_disable_express_session_authñ  s˜   € Ý  ­SÑ1Ô1ð 
°j×6FÒ6FÑ6HÔ6Hð M
ð 7
ˆõ ˜*¥dÑ+Ô+ð 	°Kð 	ÝÔ%×8Ò8ðO jð Oð Oð Oð 9ñ ô ð ð	ð 	ð 	ð 	r,   c                 ó„   — |d         €5|d         €/|                      d¦  «        }|d         |d<   |d         |d<   d S d S d S )Nr8   r9   r?   ©Úresolve)r"   r0   rf   rL   s       r*   r·   z3ClientArgsCreator._set_region_if_custom_s3_endpointþ  sb   € ð Ð,Ô-Ð5Ø Ô.Ð6à&×.Ò.¨tÑ4Ô4ˆHØ08Ð9IÔ0JˆOÐ,Ñ-Ø-5°mÔ-DˆO˜MÑ*Ð*Ð*ð 6Ð5Ø6Ð6r,   c                 óž   —  | j         di |¤Ž}|                      |d         |d         |¦  «        r|                      ||d         ¦  «         |S )Nr9   r@   rc   rQ   )r³   Ú_should_set_global_sts_endpointÚ_set_global_sts_endpoint)r"   r´   r0   s      r*   r²   z.ClientArgsCreator._compute_sts_endpoint_config  ss   € Ø0˜$Ô0ÐKÐKÐ3JÐKÐKˆØ×/Ò/Ø# MÔ2Ø# NÔ3Øñ
ô 
ð 	ð
 ×)Ò)ØÐ!8¸Ô!Eñô ð ð Ðr,   c                 ó¦   — |o(|                      di ¦  «                              d¦  «        }|s|rdS |                      ¦   «         dk    o|t          v S )Nr4   rv   Fr   )rS   Ú"_get_sts_regional_endpoints_configÚLEGACY_GLOBAL_STS_REGIONS)r"   r9   r@   r0   Úhas_variant_tagss        r*   rÕ   z1ClientArgsCreator._should_set_global_sts_endpoint  sq   € ð +ð ¨×/BÒ/BØ˜ñ0
ô 0
ç
Š#ˆf‰+Œ+ð 	ð ð 	Ð+ð 	Ø�5à×3Ò3Ñ5Ô5¸ÒAð 9ØÕ8Ð8ð	
r,   c                 ó”   — | j                              d¦  «        }|sd}|t          vr t          j                             |¬¦  «        ‚|S )NÚsts_regional_endpointsr   )Ústs_regional_endpoints_config)r   r¤   rÀ   rY   rÁ   Ú&InvalidSTSRegionalEndpointsConfigError)r"   rÝ   s     r*   rØ   z4ClientArgsCreator._get_sts_regional_endpoints_config%  sl   € Ø(,Ô(:×(NÒ(NØ$ñ)
ô )
Ð%ð -ð 	7Ø,6Ð)à)Ý2ð3ð 3õ Ô%×LÒLØ.Kð Mñ ô ð ð -Ð,r,   c                 ó,   — |rdnd}|› d�|d<   d|d<   d S )NÚhttpsÚhttpz://sts.amazonaws.comr@   r   r8   rQ   )r"   r0   rc   Úschemes       r*   rÖ   z*ClientArgsCreator._set_global_sts_endpoint4  s4   € Ø%Ð1��¨6ˆØ-3Ð*IÐ*IÐ*Iˆ˜Ñ'Ø,7ˆÐ(Ñ)Ð)Ð)r,   c                 ó2   — |                      ||||¦  «        S r   rÒ   )r"   r.   r9   r@   rc   rf   s         r*   r³   z#ClientArgsCreator._resolve_endpoint9  s%   € ð ×&Ò&Ø˜+ |°Yñ
ô 
ð 	
r,   c                 óà   — t           j        t           j        dfg}|o|j        }|€| j                             d¦  «        }|r,|                     t           j        t           j        df¦  «         |S )Né   r~   )	ÚsocketÚIPPROTO_TCPÚTCP_NODELAYr~   r   r¤   ÚappendÚ
SOL_SOCKETÚSO_KEEPALIVE)r"   re   rO   r6   Úclient_keepalives        r*   r›   z)ClientArgsCreator._compute_socket_optionsE  s{   € õ "Ô-­vÔ/AÀ1ÐEÐFˆØ(ÐH¨]Ô-HÐØÐ#Ø#Ô1×EÒEØñ ô  Ðð ð 	OØ×!Ò!¥6Ô#4µfÔ6IÈ1Ð"MÑNÔNÐNØÐr,   c                 óZ   — |                       |¦  «         |                      |¦  «         d S r   )Ú_compute_retry_max_attemptsÚ_compute_retry_mode©r"   r2   s     r*   r�   z'ClientArgsCreator._compute_retry_configT  s0   € Ø×(Ò(¨Ñ7Ô7Ð7Ø× Ò  Ñ/Ô/Ð/Ð/Ð/r,   c                 ó
  — |                      d¦  «        }|�?d|v r|                     dd ¦  «         d S d|v r|                     d¦  «        }|dz   |d<   d S | j                             d¦  «        }|�|€i }||d<   ||d<   d S d S )Nr|   Útotal_max_attemptsÚmax_attemptsrå   )rS   Úpopr   r¤   )r"   r2   r|   Úvalueró   s        r*   rî   z-ClientArgsCreator._compute_retry_max_attemptsX  s¾   € ð  ×#Ò# IÑ.Ô.ˆØÐØ# wÐ.Ð.Ø—’˜N¨DÑ1Ô1Ð1Ø�Ø Ð(Ð(ØŸš NÑ3Ô3�ð 16¸±	�Ð,Ñ-Ø�ð Ô)×=Ò=¸nÑMÔMˆØÐ#ØˆØ�Ø+2�˜iÑ(Ø,8ˆGÐ(Ñ)Ð)Ð)ð	 $Ð#r,   c                 ó–   — |                      d¦  «        }|€i }||d<   nd|v rd S | j                             d¦  «        }|€d}||d<   d S )Nr|   ÚmodeÚ
retry_moder   ©rS   r   r¤   )r"   r2   r|   rø   s       r*   rï   z%ClientArgsCreator._compute_retry_modex  sl   € Ø×#Ò# IÑ.Ô.ˆØˆ?ØˆGØ'.ˆM˜)Ñ$Ð$Ø�wÐÐð ˆFØÔ'×;Ò;¸LÑIÔIˆ
ØÐØ!ˆJØ$ˆ�‰ˆˆr,   c                 ó~   — |                      d¦  «        }|�d S | j                             d¦  «        }|r||d<   d S d S )NrW   rù   )r"   r2   rW   s      r*   r�   z*ClientArgsCreator._compute_connect_timeout†  sc   € ð (×+Ò+Ð,=Ñ>Ô>ˆØÐ&ØˆFØÔ,×@Ò@Øñ
ô 
ˆð ð 	?Ø/>ˆMÐ+Ñ,Ð,Ð,ð	?ð 	?r,   c                 ó(  — |                      d¦  «        }|                      d¦  «        }|€| j                             d¦  «        }|                      |¦  «        }||d<   |€| j                             d¦  «        }nt	          |¦  «        }||d<   d S )Nr�   r‚   )rS   r   r¤   Ú_validate_min_compression_sizer   )r"   r2   Úmin_sizer   s       r*   r’   z5ClientArgsCreator._compute_request_compression_config“  s®   € Ø ×$Ò$Ð%IÑJÔJˆØ ×$Ò$Ð%BÑCÔCˆØÐØÔ)×=Ò=Ø4ñô ˆHð ×6Ò6°xÑ@Ô@ˆØ>FˆÐ:Ñ;àÐØÔ)×=Ò=Ø-ñô ˆHˆHõ
 & hÑ/Ô/ˆHØ7?ˆÐ3Ñ4Ð4Ð4r,   c                 óº   — |                      d¦  «        }|€| j                             d¦  «        }|�|                      |¦  «         t	          |¦  «        |d<   d S )Nr;   )rS   r   r¤   rÐ   r   )r"   r2   Údisable_expresss      r*   r™   z:ClientArgsCreator._compute_s3_disable_express_session_auth©  sq   € Ø'×+Ò+Ð,MÑNÔNˆØÐ"Ø"Ô0×DÒDØ1ñô ˆOð
 Ð&Ø×:Ò:¸?ÑKÔKÐKÝ;IØñ<
ô <
ˆÐ7Ñ8Ð8Ð8r,   c                 óD  — d}d}d|› d�}	 t          |¦  «        }nJ# t          t          f$ r6 |› dt          |¦  «        › d�}t          j                             |¬¦  «        ‚w xY w||cxk    r|k    s-n |› d|› d	|› d
�}t          j                             |¬¦  «        ‚|S )Nrå   i   rÇ   z)" for request_min_compression_size_bytes.z$ Value must be an integer. Received z	 instead.rÈ   z Value must be between z and ú.)ÚintÚ
ValueErrorÚ	TypeErrorÚtyperY   rÁ   rÎ   )r"   rý   Úmin_allowed_min_sizeÚmax_allowed_min_sizeÚerror_msg_baseÚmsgs         r*   rü   z0ClientArgsCreator._validate_min_compression_size·  s!  € Ø ÐØ&Ðð2˜hð 2ð 2ð 2ð 	ð	HÝ˜8‘}”}ˆHˆHøÝ�IÐ&ð 	Hð 	Hð 	Hà!ð 6ð 6Ý  ™NœNð6ð 6ð 6ð õ Ô%×8Ò8À3Ð8ÑGÔGÐGð	Høøøð $ xÐGÐGÒGÐGÐ3GÒGÐGÐGÐGà!ð Fð FØ'ðFð FØ.BðFð Fð Fð õ Ô%×8Ò8À3Ð8ÑGÔGÐGàˆs
   Œ œAA#c                 ó`   — t          |t          ¦  «        r|S |                     ¦   «         dk    S )NrÅ   )rÊ   rÍ   rÌ   )r"   Úvals     r*   Ú_ensure_booleanz!ClientArgsCreator._ensure_booleanÏ  s,   € Ý�c�4Ñ Ô ð 	)ØˆJà—9’9‘;”; &Ò(Ð(r,   c                 óf  — |€d S |                       |¦  «        pi }|j        }|dv s|€|}n|}|                      ||||
||j        |||¬¦	  «	        }|�
|j        pi }ni }|                      |¦  «        r|                     |¦  «         |�||d<   |�|j        nd }t          |||||||	||¬¦	  «	        S )N)r?   r°   )	r9   r.   r3   rf   Úclient_endpoint_urlÚlegacy_endpoint_urlrd   r:   r;   r{   )	Úendpoint_ruleset_datari   rI   ÚbuiltinsÚclient_contextr#   Úuse_sslÚrequested_auth_schemer<   )	r‰   r‡   Ú*compute_endpoint_resolver_builtin_defaultsÚhostrƒ   rš   rŽ   r>   r   )r"   rh   ri   rO   rI   rk   r9   r@   rL   rc   rf   r#   rd   r:   r;   r<   Ús3_config_rawÚservice_name_rawÚeprv2_region_nameÚresolver_builtinsr  Úsig_versions                         r*   r`   z*ClientArgsCreator._build_endpoint_resolverÕ  s6  € ð$ "Ð)Ø�4ð ×.Ò.¨}Ñ=Ô=ÐCÀˆØ(Ô8Ðð ˜}Ð,Ð,°Ð0CØ 4ÐÐà +ÐØ ×KÒKØ)Ø)Ø#Ø+Ø ,Ø (¤Ø#Ø%=Ø,Kð Lñ 

ô 

Ðð Ð$Ø*Ô@ÐFÀBˆNˆNàˆNØ×ÒÐ/Ñ0Ô0ð 	Ø×!Ò! -Ñ0Ô0Ð0Ø.Ð:à3ð Ð@ÑAð Ð(ð Ô+Ð+àð 	õ
 'Ø"8Ø)Ø'Ø&Ø)Ø'ØØ"-Ø#9ð

ñ 

ô 

ð 
	
r,   c
                 óÒ  — |r|}
n|                      ¦   «         s|}
nd }
|                     dd¦  «        rd}nD|�)t          |¦  «        s|                     d¦  «        dk    }n|                     d¦  «        dk    }t          j        |t          j        |
d u r|                     d¦  «        pdt          j        |
d u r|                     |¦  «        pdt          j	        |  
                    |d d ¬¦  «        t          j        |                      ||¦  «        t          j        |                     dd¦  «        t          j        |t          j        |                     dd	¦  «        t          j        |                     dd¦  «        t          j        |                     d
d¦  «        t          j        |	t          j        |
t          j        |r|                     d¦  «        nd t          j        |iS )NÚuse_accelerate_endpointFÚaddressing_styleÚvirtualÚpathrz   )r9   r@   r0   Úuse_arn_regionTÚ$s3_disable_multiregion_access_pointsÚ
account_id)Úresolver_uses_builtin_datarS   r   ÚEPRBuiltinsÚ
AWS_REGIONÚAWS_USE_FIPSÚ$_resolve_endpoint_variant_config_varÚAWS_USE_DUALSTACKÚ_resolve_use_dualstack_endpointÚAWS_STS_USE_GLOBAL_ENDPOINTrÕ   ÚAWS_S3_USE_GLOBAL_ENDPOINTr¶   ÚAWS_S3_ACCELERATEÚAWS_S3_FORCE_PATH_STYLEÚAWS_S3_USE_ARN_REGIONÚAWS_S3CONTROL_USE_ARN_REGIONÚAWS_S3_DISABLE_MRAPÚ#AWS_S3_DISABLE_EXPRESS_SESSION_AUTHÚSDK_ENDPOINTÚ
ACCOUNT_IDÚget_deferred_propertyÚACCOUNT_ID_ENDPOINT_MODE)r"   r9   r.   r3   rf   r  r  rd   r:   r;   Úgiven_endpointÚforce_path_styles               r*   r  z<ClientArgsCreator.compute_endpoint_resolver_builtin_defaults!  s-  € ð ð 	"Ø0ˆNˆNð !×;Ò;Ñ=Ô=ð 	"Ø0ˆNˆNà!ˆNð �=Š=Ð2°EÑ:Ô:ð 	KØ$ÐÐØ Ð,Õ5IØñ6
ô 6
Ð,ð  )Ÿ}š}Ð-?Ñ@Ô@ÀIÒMÐÐà(Ÿ}š}Ð-?Ñ@Ô@ÀFÒJÐõ Ô" KÝÔ$à $Ð&ð ð $×HÒHØ'ñô ðð åÔ)à $Ð&ð ð $×CÒCØ ñô ðð åÔ3Ø×4Ò4Ø +Ø!%Ø$(ð 5ñ ô õ Ô2Ø×,Ò,¨[¸)ÑDÔDåÔ)¨9¯=ª=Ø)¨5ñ,ô ,õ Ô/Ð1AÝÔ-¨y¯}ª}Ø  $ñ0ô 0õ Ô4°i·m²mØ  %ñ7ô 7õ Ô+¨Y¯]ª]Ø6¸ñ.ô .õ Ô;Ø/åÔ$ nÝÔ"ð ð% K×$EÒ$EØñ%ô %ð %ð ÝÔ0Ð2Jðm7
ð 7	
r,   c                 óæ   — |                      d¦  «        }|€| j                             d¦  «        }|�8t          |¦  «        t          k    r t
                               dt          ¦  «         ||d<   d S )Nr€   zVThe configured value for user_agent_appid exceeds the maximum length of %d characters.)rS   r   r¤   ÚlenÚUSERAGENT_APPID_MAXLENr¨   Úwarning)r"   r2   r€   s      r*   r‘   z2ClientArgsCreator._compute_user_agent_appid_config�  s‡   € Ø(×,Ò,Ð-?Ñ@Ô@ÐØÐ#Ø#Ô1×EÒEØ"ñ ô  Ðð Ð(ÝÐ$Ñ%Ô%Õ(>Ò>Ð>å�NŠNð3å&ñô ð ð
 -=ˆÐ(Ñ)Ð)Ð)r,   c                 ór   — |                      d¦  «        }|€| j                             d¦  «        }||d<   d S )Nr„   rù   )r"   r2   r„   s      r*   r“   z;ClientArgsCreator._compute_sigv4a_signing_region_set_config’  sS   € Ø$1×$5Ò$5Ø'ñ%
ô %
Ð!ð %Ð,Ø(,Ô(:×(NÒ(NØ+ñ)ô )Ð%ð 6OˆÐ1Ñ2Ð2Ð2r,   c                 óz   — |                       |dt          ¬¦  «         |                       |dt          ¬¦  «         d S )Nr…   )Ú
config_keyÚvalid_optionsr†   )Ú_handle_checksum_configÚ)VALID_REQUEST_CHECKSUM_CALCULATION_CONFIGÚ)VALID_RESPONSE_CHECKSUM_VALIDATION_CONFIGrð   s     r*   r”   z*ClientArgsCreator._compute_checksum_configœ  sZ   € Ø×$Ò$ØØ5ÝCð 	%ñ 	
ô 	
ð 	
ð
 	×$Ò$ØØ5ÝCð 	%ñ 	
ô 	
ð 	
ð 	
ð 	
r,   c                 ó<  — |                      |¦  «        }|€| j                             |¦  «        }t          |t          ¦  «        r|                     ¦   «         }||vr"t          j                             |||¬¦  «        ‚|  	                    ||¦  «         |||<   d S )N)r?  Úconfig_valuer@  )
rS   r   r¤   rÊ   rË   rÌ   rY   rÁ   ÚInvalidChecksumConfigErrorÚ%_register_checksum_config_feature_ids)r"   r2   r?  r@  rõ   s        r*   rA  z)ClientArgsCreator._handle_checksum_config¨  s®   € ð ×!Ò! *Ñ-Ô-ˆØˆ=ØÔ&×:Ò:¸:ÑFÔFˆEå�e�SÑ!Ô!ð 	"Ø—K’K‘M”MˆEà˜Ð%Ð%ÝÔ%×@Ò@Ø%Ø"Ø+ð Añ ô ð ð
 	×2Ò2°5¸*ÑEÔEÐEØ$)ˆ�jÑ!Ð!Ð!r,   c                 ó¦   — d }|dk    rd|                      ¦   «         › �}n|dk    rd|                      ¦   «         › �}|�t          |¦  «         d S d S )Nr…   ÚFLEXIBLE_CHECKSUMS_REQ_r†   ÚFLEXIBLE_CHECKSUMS_RES_)Úupperr	   )r"   rõ   r?  Úchecksum_config_feature_ids       r*   rG  z7ClientArgsCreator._register_checksum_config_feature_ids¾  sz   € Ø%)Ð"ØÐ7Ò7Ð7à9¨%¯+ª+©-¬-Ð9Ð9ð 'Ð&ð Ð9Ò9Ð9à9¨%¯+ª+©-¬-Ð9Ð9ð 'ð &Ð1ÝÐ :Ñ;Ô;Ð;Ð;Ð;ð 2Ð1r,   c           	      óŒ  — d}|                      d¦  «        }|t          j        u rd||<   d S |                      |¦  «        }|€| j                             |¦  «        }t          |t          ¦  «        r|                     ¦   «         }|t          vr/t          j	         
                    d|› d|› dt          › d�¬¦  «        ‚|||<   d S )	Nr:   r>   r   zThe configured value 'z' for 'z ' is invalid. Valid values are: r  rÈ   )rS   rY   ÚUNSIGNEDr   r¤   rÊ   rË   rÌ   Ú%VALID_ACCOUNT_ID_ENDPOINT_MODE_CONFIGrÁ   rÎ   )r"   r2   r?  r>   r:   s        r*   r•   z:ClientArgsCreator._compute_account_id_endpoint_mode_configË  s  € Ø/ˆ
ð *×-Ò-Ð.AÑBÔBÐØ¥Ô 1Ð1Ð1Ø(2ˆM˜*Ñ%ØˆFà#0×#4Ò#4°ZÑ#@Ô#@Ð Ø#Ð+Ø'+Ô'9×'MÒ'MØñ(ô (Ð$õ Ð.µÑ4Ô4ð 	HØ'?×'EÒ'EÑ'GÔ'GÐ$ð %Ý8ð9ð 9õ Ô%×8Ò8ðWÐ3Kð Wð WÐT^ð Wð WÝ.SðWð Wð Wð 9ñ ô ð ð
 %=ˆ�jÑ!Ð!Ð!r,   c                 ó   — d}d}|r|j         r
|j         }d}n| j                             |¦  «        }|€d ||<   d S t          |t          ¦  «        s6t
          j                             |› dt          |¦  «        › d|› d�¬¦  «        ‚d 	                    d	„ | 
                    d¦  «        D ¦   «         ¦  «        }|rt          |¦  «        }|||<   d S )
Nr<   FTz, must be a comma-delimited string. Received z
 instead: r  rÈ   ú,c              3   ó’   K  — | ]B}|                      ¦   «         ¯|                     d d¦  «                             dd¦  «        V — ŒCdS )ú Ú ú	N)ÚstripÚreplace)Ú.0Úitems     r*   ú	<genexpr>zKClientArgsCreator._compute_auth_scheme_preference_config.<locals>.<genexpr>  sb   è è € ð 
ð 
àØ�zŠz‰|Œ|ð
Ø�LŠL˜˜bÑ!Ô!×)Ò)¨$°Ñ3Ô3ð
ð 
ð 
ð 
ð 
ð 
r,   )r<   r   r¤   rÊ   rË   rY   rÁ   rÎ   r  ÚjoinÚsplitÚClientConfigString)r"   rO   r2   r?  Úset_in_config_objectrõ   s         r*   r—   z8ClientArgsCreator._compute_auth_scheme_preference_configé  s-  € ð .ˆ
Ø$Ðàð 	G˜]ÔAð 	GØ!Ô8ˆEØ#'Ð Ð àÔ&×:Ò:¸:ÑFÔFˆEàˆ=Ø(,ˆM˜*Ñ%ØˆFå˜%¥Ñ%Ô%ð 	ÝÔ%×8Ò8à!ð @ð @Ý $ U¡¤ð@ð @Ø7<ð@ð @ð @ð 9ñ ô ð ð —’ð 
ð 
àŸš CÑ(Ô(ð
ñ 
ô 
ñ 
ô 
ˆð  ð 	.Ý& uÑ-Ô-ˆEà$)ˆ�jÑ!Ð!Ð!r,   c                 ó€   — |r7|j         r2|j         }t          |t          ¦  «        rt          |¦  «        |d<   d S d S d S d S )Nr>   )r>   rÊ   rË   r]  )r"   rO   r2   rõ   s       r*   r˜   z3ClientArgsCreator._compute_signature_version_config  sn   € Øð 	O˜]Ô<ð 	OØ!Ô3ˆEÝ˜%¥Ñ%Ô%ð OÝ5GÈÑ5NÔ5N�Ð1Ñ2Ð2Ð2ð	Oð 	Oð 	Oð 	OðOð Or,   r   )NNN))Ú__name__Ú
__module__Ú__qualname__r+   rs   rR   r–   rŠ   r§   r‰   rš   r‹   r±   r¶   r»   rÐ   r·   r²   rÕ   rØ   rÖ   r³   r›   r�   rî   rï   r�   r’   r™   rü   r  r`   r  r‘   r“   r”   rA  rG  r•   r—   r˜   rQ   r,   r*   r   r   U   s—  € € € € € ð  ð:ð :ð :ð :ð> Ø#Øð@
ð @
ð @
ð @
ðDB
ð B
ð B
ðH;ð ;ð ;ð&Fð Fð Fð	
ð 	
ð 	
ð ð  ð  ð&4ð 4ð 4ðAð Að Að0ð ð ð*Cð Cð Cðð ð ðð ð ðEð Eð Eð
ð 
ð 
ð
ð 
ð 
ð-ð -ð -ð8ð 8ð 8ð


ð 

ð 

ðð ð ð ð0ð 0ð 0ð9ð 9ð 9ð@%ð %ð %ð?ð ?ð ?ð@ð @ð @ð,
ð 
ð 
ðð ð ð0)ð )ð )ðJ
ð J
ð J
ðX^
ð ^
ð ^
ð@=ð =ð =ð"Oð Oð Oð

ð 

ð 

ð*ð *ð *ð,<ð <ð <ð=ð =ð =ð<!*ð !*ð !*ðFOð Oð Oð Oð Or,   r   c                   ó   — e Zd ZdZdS )ÚConfigObjectWrapperz8Base class to mark values set via in-code Config object.N)r`  ra  rb  Ú__doc__rQ   r,   r*   rd  rd    s   € € € € € ØBÐBà€Dr,   rd  c                   ó    ‡ — e Zd Zdˆ fd„	Zˆ xZS )r]  Nc                 óH   •— t          ¦   «                              | |¦  «        S r   )ÚsuperÚ__new__)Úclsrõ   Ú	__class__s     €r*   ri  zClientConfigString.__new__  s   ø€ Ý‰wŒw�Š˜s EÑ*Ô*Ð*r,   r   )r`  ra  rb  ri  Ú__classcell__)rk  s   @r*   r]  r]    s=   ø€ € € € € ð+ð +ð +ð +ð +ð +ð +ð +ð +ð +r,   r]  )&re  rT   Úloggingræ   Úbotocore.exceptionsrY   Úbotocore.parsersÚbotocore.serializeÚbotocore.configr   Úbotocore.endpointr   Úbotocore.regionsr   r%  r   Úbotocore.signersr   Úbotocore.useragentr   r	   Úbotocore.utilsr
   r   r   Ú	getLoggerr`  r¨   rÀ   rÙ   r;  rB  rC  rO  r   rd  rË   r]  rQ   r,   r*   ú<module>rx     sâ  ððð ð €€€Ø €€€Ø €€€à Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ø -Ð -Ð -Ð -Ð -Ð -Ø DÐ DÐ DÐ DÐ DÐ DØ 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø *Ð *Ð *Ð *Ð *Ð *Ø CÐ CÐ CÐ CÐ CÐ CÐ CÐ Cðð ð ð ð ð ð ð ð ð ð 
ˆÔ	˜8Ñ	$Ô	$€ð Øð#Ð ðð ð Ð ð( Ð ð-Ð )ð-Ð )ð)Ð %ð{Oð {Oð {Oð {Oð {Oñ {Oô {Oð {Oð|	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð+ð +ð +ð +ð +˜Ð1ñ +ô +ð +ð +ð +r,   