ó
    Ú°›jûÕ  ã                   óà  • S SK r S SKJrJrJr  S SKJr  S SKJrJ	r	J
r
  S SKJr  S SKJr  S SKJr  S SKJr  S S	KJr  S S
KJrJrJr  S SKJrJr  S SKJrJrJrJ r J!r!J"r"  S SK#J$r$  S SK%J&r&  S SK'J(r(J)r)  S SK*J+r+  S SK,J-r-  S SK.J/r/J0r0  S SK1J2r2J3r3  S SK4J5r5J6r6J7r7J8r8J9r9J:r:J;r;J<r<J=r=J>r>J?r?J@r@  \ R‚                  " \B5      rC\$" 5       rD " S S5      rE " S S5      rF " S S5      rG " S S5      rHS rIg)é    N)ÚUNSIGNEDÚwaiterÚ
xform_name)ÚClientArgsCreator)ÚAUTH_TYPE_MAPSÚresolve_auth_scheme_preferenceÚresolve_auth_type)Úprepare_request_dict)Úmaybe_compress_request)ÚConfig)Úwith_current_context)ÚRefreshableCredentials)ÚEndpointDiscoveryHandlerÚEndpointDiscoveryManagerÚ,block_endpoint_discovery_required_operations)ÚClientMethodDocstringÚPaginatorDocstring)ÚClientErrorÚDataNotFoundErrorÚ*InvalidEndpointDiscoveryConfigurationErrorÚOperationNotPageableErrorÚUnknownServiceErrorÚUnknownSignatureVersionError)Úget_global_history_recorder)Úfirst_non_none_response)Úapply_request_checksumÚresolve_checksum_context)ÚServiceModel)Ú	Paginator)ÚadaptiveÚstandard)ÚUserAgentStringÚregister_feature_id)ÚCachedPropertyÚEventbridgeSignerSetterÚS3ArnParamHandlerÚS3ControlArnParamHandlerÚS3ControlArnParamHandlerv2ÚS3ControlEndpointSetterÚS3EndpointSetterÚS3ExpressIdentityResolverÚS3RegionRedirectorÚS3RegionRedirectorv2Úensure_booleanÚget_service_module_namec                   ó$  • \ rS rSrSr     S$S jr        S%S jrS&S jrS rS r	S&S	 jr
S&S
 jrS rS rS rS rS rS rS rS rS rS r    S'S jrS r    S'S jrS rS rS r    S'S jrS rS rS rS r S  r!S! r"S" r#S#r$g)(ÚClientCreatoréJ   z%Creates client objects for a service.Nc                 óˆ   • Xl         X l        X0l        X@l        XPl        X`l        Xpl        X€l        X�l        X l	        X°l
        g ©N)Ú_loaderÚ_endpoint_resolverÚ_user_agentÚ_event_emitterÚ_retry_handler_factoryÚ_retry_config_translatorÚ_response_parser_factoryÚ_exceptions_factoryÚ_config_storeÚ_user_agent_creatorÚ_auth_token_resolver)ÚselfÚloaderÚendpoint_resolverÚ
user_agentÚevent_emitterÚretry_handler_factoryÚretry_config_translatorÚresponse_parser_factoryÚexceptions_factoryÚconfig_storeÚuser_agent_creatorÚauth_token_resolvers               ÚL/home/mande/repo/quber/.venv/lib/python3.13/site-packages/botocore/client.pyÚ__init__ÚClientCreator.__init__M   sG   € ð ŒØ"3ÔØ%ÔØ+ÔØ&;Ô#Ø(?Ô%Ø(?Ô%Ø#5Ô ð
 *ÔØ#5Ô Ø$7Õ!ó    c                 óÄ  • U R                   R                  SUS9n[        X±S9nU R                  X5      n U R	                  X5      nU R
                  R                  S5      nU R                  X5      nU R                  X)5      u  p)UR                  R                  S5      =n(       a  [        U5      nOUR                  R                  S5      n[        U R                   UU	UR                  R                  S5      U R"                  US	9nU R%                  UR&                  5      =n(       a  Un
U R)                  UUUUUUUU	UU
UU5      nU" S0 UD6nU R+                  U5        U R-                  US S U	US
9  U R/                  US9  U R1                  US9  U R3                  US9  U R5                  UXI5        U$ ! [         a    S nS n[        R                  SU5         GN|f = f)Nzchoose-service-name©Úservice_name©ÚdefaultÚ
partitionszSNo endpoints ruleset found for service %s, falling back to legacy endpoint routing.ÚauthÚsignatureVersionÚsigningName)Úservice_signing_namerI   Úservice_signature_version)ÚclientÚendpoint_bridgeÚendpoint_urlÚclient_configÚscoped_config©r[   © )r8   Úemitr   Ú_load_service_modelÚ_load_service_endpoints_rulesetr5   Ú	load_datar   ÚloggerÚinfoÚ_create_client_classÚ_normalize_fips_regionÚmetadataÚgetr	   ÚClientEndpointBridger6   r=   Ú_evaluate_client_specific_tokenÚsigning_nameÚ_get_client_argsÚ_register_retriesÚ_register_s3_eventsÚ_register_s3express_eventsÚ_register_s3_control_eventsÚ_register_importexport_eventsÚ_register_endpoint_discovery)r@   rR   Úregion_nameÚ	is_securer]   ÚverifyÚcredentialsr_   Úapi_versionr^   Ú
auth_tokenÚ	responsesÚservice_modelÚendpoints_ruleset_dataÚpartition_dataÚclsrV   rZ   r\   ÚtokenÚclient_argsÚservice_clients                         rL   Úcreate_clientÚClientCreator.create_clientk   s5  € ð ×'Ñ'×,Ñ,Ø!°ð -ð 
ˆ	ô /¨yÑOˆØ×0Ñ0°ÓKˆð	Ø%)×%IÑ%IØó&Ð"ð "Ÿ\™\×3Ñ3°LÓAˆNð ×'Ñ'¨ÓDˆØ%)×%@Ñ%@Øó&
Ñ"ˆð !×)Ñ)×-Ñ-¨fÓ5Ð5ˆ4Õ5Ü(9¸$Ó(?Ñ%à(5×(>Ñ(>×(BÑ(BØ"ó)Ð%ô /Ø×#Ñ#ØØØ!.×!7Ñ!7×!;Ñ!;¸MÓ!JØ×+Ñ+Ø&?ñ
ˆð ×8Ñ8Ø×&Ñ&ó
ð 
ˆ5õ 
ð ˆJØ×+Ñ+ØØØØØØØØØØØ"Øó
ˆñ Ñ+˜{Ñ+ˆØ×Ñ˜~Ô.Ø× Ñ Ø!Ø ØØ'Ø'ð 	!ñ 	
ð 	×'Ñ'¨~Ð'Ñ>Ø×(Ñ(°Ð(Ñ?Ø×*Ñ*°.Ð*ÑAØ×)Ñ)Ø˜Lô	
ð Ðøôy #ó 	Ø%)Ð"Ø!ˆNÜ�K‰Kð+à÷ð	ús   ¶,F7 Æ7$GÇGc                 óF   • U R                  X5      nU R                  X5      $ r4   )rc   rh   )r@   rR   rz   r}   s       rL   Úcreate_client_classÚ!ClientCreator.create_client_classÀ   s#   € Ø×0Ñ0°ÓKˆØ×(Ñ(¨ÓEÐErO   c                 ó$  • U R                  U5      nU R                  U5      nXCS'   [        /nUR                  R	                  5       nU R
                  R                  SU 3UUS9  [        U5      n[        [        U5      [        U5      U5      nU$ )NÚ_PY_TO_OP_NAMEzcreating-client-class.)Úclass_attributesÚbase_classes)Ú_create_methodsÚ_create_name_mappingÚ
BaseClientÚ
service_idÚ	hyphenizer8   rb   r/   ÚtypeÚstrÚtuple)	r@   rR   r}   r‹   Úpy_name_to_operation_nameÚbasesr�   Ú
class_namer€   s	            rL   rh   Ú"ClientCreator._create_client_classÄ   s™   € Ø×/Ñ/°Ó>ÐØ$(×$=Ñ$=¸mÓ$LÐ!Ø-FÐ)Ñ*Ü�ˆØ"×-Ñ-×7Ñ7Ó9ˆ
Ø×Ñ× Ñ Ø$ Z LÐ1Ø-Øð 	!ñ 	
ô
 -¨]Ó;ˆ
Ü”3�z“?¤E¨%£LÐ2BÓCˆØˆ
rO   c                 óÖ   • Ubd  UR                  SS5      R                  SS5      nX1:w  a=  [        SS9nU(       a  UR                  U5      nOUn[        R	                  SUU5        UnX4$ )Nzfips-Ú z-fipsT)Úuse_fips_endpointzƒtransforming region from %s to %s and setting use_fips_endpoint to true. client should not be configured with a fips psuedo region.)Úreplacer   Úmergerf   Úwarning)r@   rv   r^   Únormalized_region_nameÚconfig_use_fips_endpoints        rL   ri   Ú$ClientCreator._normalize_fips_regionÓ   s„   € ØÑ"Ø%0×%8Ñ%8¸À"Ó%E×%MÑ%MØ˜ó&Ð"ð &Ó4Ü+1ÀDÑ+IÐ(Þ à$1×$7Ñ$7Ø0ó%‘Mð %=�MÜ—‘ð?ð  Ø*ôð 5�ØÐ)Ð)rO   c                 óN   • U R                   R                  USUS9n[        X1S9nU$ )Nz	service-2©rz   rQ   )r5   Úload_service_modelr   )r@   rR   rz   Ú
json_modelr}   s        rL   rc   Ú!ClientCreator._load_service_modelì   s4   € Ø—\‘\×4Ñ4Ø˜+°;ð 5ð 
ˆ
ô % ZÑKˆØÐrO   c                 ó8   • U R                   R                  USUS9$ )Nzendpoint-rule-set-1r£   )r5   r¤   )r@   rR   rz   s      rL   rd   Ú-ClientCreator._load_service_endpoints_rulesetó   s&   € Ø�|‰|×.Ñ.ØÐ/¸[ð /ð 
ð 	
rO   c                 ó6  • UR                   R                  R                  S   nUS:X  a  U R                  U5        OBUS:X  a#  U R                  U5        U R	                  U5        OUS:X  a  U R                  U5        Og [        SUR                  5        35        g )NÚmoder!   r    ÚlegacyÚRETRY_MODE_)ÚmetaÚconfigÚretriesÚ_register_v2_standard_retriesÚ_register_v2_adaptive_retriesÚ_register_legacy_retriesr#   Úupper)r@   r[   Ú
retry_modes      rL   rp   ÚClientCreator._register_retriesø   sˆ   € Ø—[‘[×'Ñ'×/Ñ/°Ñ7ˆ
Ø˜Ó#Ø×.Ñ.¨vÕ6Ø˜:Ó%Ø×.Ñ.¨vÔ6Ø×.Ñ.¨vÕ6Ø˜8Ó#Ø×)Ñ)¨&Õ1àÜ˜k¨*×*:Ñ*:Ó*<Ð)=Ð>Õ?rO   c                 ó¤   • UR                   R                  R                  R                  S5      nSU0nUb  X#S'   [        R
                  " S0 UD6  g )NÚtotal_max_attemptsr[   Úmax_attemptsra   )r­   r®   r¯   rk   r!   Úregister_retry_handler)r@   r[   r¸   Úkwargss       rL   r°   Ú+ClientCreator._register_v2_standard_retries  sL   € Ø—{‘{×)Ñ)×1Ñ1×5Ñ5Ð6JÓKˆØ˜FÐ#ˆØÑ#Ø%1�>Ñ"Ü×'Ò'Ñ1¨&Ó1rO   c                 ó0   • [         R                  " U5        g r4   )r    r¹   )r@   r[   s     rL   r±   Ú+ClientCreator._register_v2_adaptive_retries  s   € Ü×'Ò'¨Õ/rO   c                 óº  • UR                   R                  R                  nUR                   R                  R                  nUR	                  5       nU R
                  R                  S5      nU(       d  g U R                  UR                   R                  R                  5      nU R                  R                  UUR                  S0 5      UR                  S0 5      U5      n[        R                  SUR                   R                  R                  5        U R                   R#                  Xr5      nSU 3n	UR                   R$                  R'                  SU 3X‰S9  g )NÚ_retryÚretryÚdefinitionsz*Registering retry handlers for service: %szretry-config-zneeds-retry.)Ú	unique_id)r­   r}   Úendpoint_prefixr�   r‘   r5   re   Ú_transform_legacy_retriesr®   r¯   r:   Úbuild_retry_configrk   rf   ÚdebugrR   r9   Úcreate_retry_handlerÚeventsÚregister)
r@   r[   rÃ   r�   Úservice_event_nameÚoriginal_configr¯   Úretry_configÚhandlerrÂ   s
             rL   r²   Ú&ClientCreator._register_legacy_retries  s-  € Ø Ÿ+™+×3Ñ3×CÑCˆØ—[‘[×.Ñ.×9Ñ9ˆ
Ø'×1Ñ1Ó3Ðð Ÿ,™,×0Ñ0°Ó:ˆÞØà×0Ñ0°·±×1CÑ1C×1KÑ1KÓLˆØ×4Ñ4×GÑGØØ×Ñ ¨Ó,Ø×Ñ ¨rÓ2Øó	
ˆô 	�‰Ø8Ø�K‰K×%Ñ%×2Ñ2ô	
ð ×-Ñ-×BÑBØó
ˆð $Ð$6Ð#7Ð8ˆ	Ø�‰×Ñ×#Ñ#ØÐ-Ð.Ð/°ð 	$ò 	
rO   c                 óˆ   • Uc  g UR                  5       nSU;   a'  UR                  5       nUR                  S5      S-
  US'   U$ )Nr·   é   r¸   )ÚcopyÚpop)r@   r¯   Úcopied_argss      rL   rÄ   Ú'ClientCreator._transform_legacy_retries.  sL   € Ø‰?ØØ—l‘l“nˆØ 7Ó*Ø!Ÿ,™,›.ˆKà—‘Ð 4Ó5¸Ñ9ð ˜Ñ'ð ÐrO   c                 óª   • UR                   R                  R                  nUb  UR                  S5      b  US   $ UR	                  S5      =(       d    S$ )Nrª   r´   r«   )r­   r®   r¯   rk   Úget_config_variable)r@   r[   rI   Úclient_retriess       rL   Ú_get_retry_modeÚClientCreator._get_retry_mode9  sO   € ØŸ™×+Ñ+×3Ñ3ˆàÑ&Ø×"Ñ" 6Ó*Ñ6à! &Ñ)Ð)Ø×/Ñ/°Ó=×IÀÐIrO   c                 óR  • Ub  g UR                   R                  R                  c  g UR                   R                  nUR                   R                  R                  R                  5       nSnU(       a  UR                  b  UR                  nO,U R                  (       a  U R                  R                  S5      nU R                  U5      nU(       a@  U R                  X5      (       a*  USL n[        XS9n[        U5      n	U	R                  XE5        g UR                  S[        5        g )NFÚendpoint_discovery_enabledT)Úalways_discoverzbefore-parameter-build)r­   r}   Úendpoint_discovery_operationrÈ   r�   r‘   rÛ   r=   rÖ   Ú$_normalize_endpoint_discovery_configÚ_requires_endpoint_discoveryr   r   rÉ   r   )
r@   r[   r]   r®   rÈ   r�   ÚenabledÚdiscoverÚmanagerrÍ   s
             rL   ru   Ú*ClientCreator._register_endpoint_discoveryB  sø   € ØÑ#àà�;‰;×$Ñ$×AÑAÑIØØ—‘×#Ñ#ˆØ—[‘[×.Ñ.×9Ñ9×CÑCÓEˆ
ØˆÞ�f×7Ñ7ÑCØ×7Ñ7‰GØ××Ø×(Ñ(×<Ñ<Ø,óˆGð ×;Ñ;¸GÓDˆÞ�t×8Ñ8¸×IÑIØ $�ˆHÜ.ØñˆGô /¨wÓ7ˆGØ×Ñ˜VÕ0à�O‰OØ(Ü<õrO   c                 óÜ   • [        U[        5      (       a8  UR                  5       R                  5       nUS:X  a  U$ US;   a  [	        U5      $ O[        U[
        5      (       a  U$ [        US9e)z?Config must either be a boolean-string or string-literal 'auto'Úauto)ÚtrueÚfalse)Úconfig_value)Ú
isinstancer“   ÚlowerÚstripr.   Úboolr   )r@   rà   s     rL   rÞ   Ú2ClientCreator._normalize_endpoint_discovery_configa  sf   € ä�gœs×#Ñ#Ø—m‘m“o×+Ñ+Ó-ˆGØ˜&Ó Ø�ØÐ-Ó-Ü% gÓ.Ð.ð .ä˜¤×&Ñ&ØˆNä8ÀgÑNÐNrO   c                 óR   • US:X  a   UR                   R                  R                  $ U$ )Nrå   )r­   r}   Úendpoint_discovery_required)r@   r[   rà   s      rL   rß   Ú*ClientCreator._requires_endpoint_discoveryn  s%   € Ø�fÓØ—;‘;×,Ñ,×HÑHÐHØˆrO   c                 óæ   • UR                   R                  R                  S:w  a  g [        U R                  UR                   R
                  US9R                  UR                   R                  5        g )NrÈ   )rB   Úregionr]   )r­   r}   rR   r%   r6   rv   rÉ   rÈ   )r@   r[   r\   r]   s       rL   Ú_register_eventbridge_eventsÚ*ClientCreator._register_eventbridge_eventss  sV   € ð �;‰;×$Ñ$×1Ñ1°XÓ=ØÜØ"×5Ñ5Ø—;‘;×*Ñ*Ø%ñ	
÷ ‰(�6—;‘;×%Ñ%Õ
&rO   c                 óŠ   • UR                   R                  R                  S:w  a  g [        U[        5      R                  5         g )NÚs3)r­   r}   rR   r+   r   rÉ   ©r@   r[   r\   r]   r^   r_   s         rL   rr   Ú(ClientCreator._register_s3express_events~  s3   € ð �;‰;×$Ñ$×1Ñ1°TÓ9ØÜ! &Ô*@ÓA×JÑJÕLrO   c                 ó  • UR                   R                  R                  S:w  a  g [        S U5      R	                  5         U R                  UR                   XE5        UR                   R                  R	                  SU R                  5        g )Nrö   zbefore-parameter-build.s3)r­   r}   rR   r-   rÉ   Ú!_set_s3_presign_signature_versionrÈ   Ú_inject_s3_input_parametersr÷   s         rL   rq   Ú!ClientCreator._register_s3_eventsŠ  sn   € ð �;‰;×$Ñ$×1Ñ1°TÓ9ØÜ˜T 6Ó*×3Ñ3Ô5Ø×.Ñ.Ø�K‰K˜ô	
ð 	�‰×Ñ×#Ñ#Ø'¨×)IÑ)Iõ	
rO   c                 ó¨   • UR                   R                  R                  S:w  a  g [        5       R	                  UR                   R
                  5        g )NÚ	s3control)r­   r}   rR   r(   rÉ   rÈ   r÷   s         rL   rs   Ú)ClientCreator._register_s3_control_eventsœ  s:   € ð �;‰;×$Ñ$×1Ñ1°[Ó@ØÜ"Ó$×-Ñ-¨f¯k©k×.@Ñ.@ÕArO   c                 ób  • [        SX#5      nUb  g U R                  R                  SUR                  5      nUR                  S:w  a  UR                  U;  a  g U R                  R                  SUR                  5      nUS   nSU;  a  g UR                  R                  SU R                  5        g )Nrö   z
aws-globalÚsignatureVersionszchoose-signer.s3)	Ú!_get_configured_signature_versionr6   Úget_available_endpointsÚ	partitionrv   Úconstruct_endpointrÈ   rÉ   Ú_default_s3_presign_to_sigv2)r@   Úclient_metar^   r_   Úprovided_signature_versionÚregionsÚendpointÚsignature_versionss           rL   rú   Ú/ClientCreator._set_s3_presign_signature_version¨  sÂ   € ô &GØ�-ó&
Ð"ð &Ñ1Øð ×)Ñ)×AÑAØ�+×'Ñ'ó
ˆð ×#Ñ# |Ó3Ø×'Ñ'¨wÓ6àð ×*Ñ*×=Ñ=Ø�+×)Ñ)ó
ˆð &Ð&9Ñ:ÐØÐ)Ó)Øð
 	×Ñ×#Ñ#Ø × AÑ Aõ	
rO   c                 óH   • 0 US'   SnU H  nXQ;   d  M
  UU   US   U'   M     g )NÚinput_params)ÚBucketÚDeleteÚKeyÚPrefixra   )r@   ÚparamsÚcontextrº   Úinject_parametersÚinject_parameters         rL   rû   Ú)ClientCreator._inject_s3_input_parametersÓ  s;   € Ø"$ˆ�ÑØAÐÛ 1ÐØÕ)Ø<BØ$ñ=�˜Ñ'Ð(8Ó9ò !2rO   c                 ó®   • UR                  S5      (       a  gUR                  S5      (       a  U$ S H   nUR                  U5      (       d  M  SU 3s  $    g)að  
Returns the 's3' (sigv2) signer if presigning an s3 request. This is
intended to be used to set the default signature version for the signer
to sigv2. Situations where an asymmetric signature is required are the
exception, for example MRAP needs v4a.

:type signature_version: str
:param signature_version: The current client signature version.

:type signing_name: str
:param signing_name: The signing name of the service.

:return: 's3' if the request is an s3 presign request, None otherwise
Úv4aNzv4-s3express)z-queryz-presign-poströ   )Ú
startswithÚendswith)r@   Úsignature_versionrº   Úsuffixs       rL   r  Ú*ClientCreator._default_s3_presign_to_sigv2Ü  sV   € ð ×'Ñ'¨×.Ñ.Øà×'Ñ'¨×7Ñ7Ø$Ð$ã1ˆFØ ×)Ñ)¨&×1Ó1Ø˜F˜8�}Ò$ò 2rO   c                 ó†   • UR                   R                  R                  S:w  a  g U R                  UR                   XE5        g )NÚimportexport)r­   r}   rR   Ú#_set_importexport_signature_versionr÷   s         rL   rt   Ú+ClientCreator._register_importexport_eventsõ  s6   € ð �;‰;×$Ñ$×1Ñ1°^ÓCØØ×0Ñ0Ø�K‰K˜õ	
rO   c                 óp   • [        SX#5      nUb  g UR                  R                  SU R                  5        g )Nr   zchoose-signer.importexport)r  rÈ   rÉ   Ú_default_signer_to_sigv4)r@   r  r^   r_   Úconfigured_signature_versions        rL   r!  Ú1ClientCreator._set_importexport_signature_version  sA   € ô (IØ˜Mó(
Ð$ð (Ñ3Øð
 	×Ñ×#Ñ#Ø(¨$×*GÑ*Gõ	
rO   c                 ó   • g)NÚv4ra   )r@   r  rº   s      rL   r$  Ú&ClientCreator._default_signer_to_sigv4  s   € ØrO   c                 óä   • [        U R                  U R                  U R                  U R                  U R
                  U R                  U R                  S9nUR                  UUUUUUUUU	U
UU5      $ )N)rI   rJ   )	r   r8   r7   r;   r5   r<   r=   r>   Úget_client_args)r@   r}   rv   rw   r]   rx   ry   r_   r^   r\   r{   r~   r   Úargs_creators                 rL   ro   ÚClientCreator._get_client_args  s„   € ô )Ø×ÑØ×ÑØ×)Ñ)Ø�L‰LØ×$Ñ$Ø×+Ñ+Ø#×7Ñ7ñ
ˆð ×+Ñ+ØØØØØØØØØØØ"Øó
ð 	
rO   c                 ón   • 0 nUR                    H"  n[        U5      nU R                  XCU5      X$'   M$     U$ r4   )Úoperation_namesr   Ú_create_api_method)r@   r}   Úop_dictÚoperation_nameÚpy_operation_names        rL   r�   ÚClientCreator._create_methods@  sA   € ØˆØ+×;Ô;ˆNÜ *¨>Ó :ÐØ)-×)@Ñ)@Ø!°=ó*ˆGÓ&ñ <ð
 ˆrO   c                 óN   • 0 nUR                    H  n[        U5      nX2U'   M     U$ r4   )r/  r   )r@   r}   Úmappingr2  r3  s        rL   rŽ   Ú"ClientCreator._create_name_mappingI  s4   € ð ˆØ+×;Ô;ˆNÜ *¨>Ó :ÐØ)7Ð%Ó&ñ <ð ˆrO   c           	      ó°   ^^• UU4S jn[        T5      Ul        UR                  T5      n[        UTU R                  UR
                  ST 3SS9nXdl        U$ )Nc                 óR   >• U(       a  [        T S35      eU R                  TU5      $ )Nz"() only accepts keyword arguments.)Ú	TypeErrorÚ_make_api_call)r@   Úargsrº   r2  r3  s      €€rL   Ú	_api_callÚ3ClientCreator._create_api_method.<locals>._api_callU  s6   ø€ ö ÜØ(Ð)Ð)KÐLóð ð ×&Ñ& ~°vÓ>Ð>rO   zresponse = client.F)Úoperation_modelÚmethod_namerD   Úmethod_descriptionÚexample_prefixÚinclude_signature)r“   Ú__name__r?  r   r8   ÚdocumentationÚ__doc__)r@   r3  r2  r}   r=  r?  Ú	docstrings    ``    rL   r0  Ú ClientCreator._create_api_methodR  si   ù€ ö		?ô !Ð!2Ó3ˆ	Ôð (×7Ñ7¸ÓGˆÜ)Ø+Ø&Ø×-Ñ-Ø.×<Ñ<Ø/Ð0AÐ/BÐCØ#ñ
ˆ	ð &ÔØÐrO   c                 óD   • U R                   nU(       a  U(       d  g U" US9$ )N)rn   )r?   )r@   rn   Úresolvers      rL   rm   Ú-ClientCreator._evaluate_client_specific_tokeno  s"   € ð ×,Ñ,ˆÞž|Øá \Ñ2Ð2rO   )r?   r=   r6   r8   r<   r5   r;   r:   r9   r7   r>   )NNNNN)TNNNNNNNr4   )NNNN)%rD  Ú
__module__Ú__qualname__Ú__firstlineno__rF  rM   r„   r‡   rh   ri   rc   rd   rp   r°   r±   r²   rÄ   rØ   ru   rÞ   rß   ró   rr   rq   rs   rú   rû   r  rt   r!  r$  ro   r�   rŽ   r0  rm   Ú__static_attributes__ra   rO   rL   r1   r1   J   s   † Ù/ð !%ØØØØ ô8ðD ØØØØØØØôSôjFòò*ô2ô
ò
@ò2ò0ò
ò>	òJòò>Oòò
	'ð ØØØô
Mò
ð* ØØØô
Bò)
òVò%ð8 ØØØô
ò
ò&ò%
òNòòõ:3rO   r1   c                   óŽ   • \ rS rSrSrSrSS/r      SS jr SS jrS	 r	S
 r
S rS rS rS rS rS rS rS rS rS rSrg)rl   iy  aÁ  Bridges endpoint data and client creation

This class handles taking out the relevant arguments from the endpoint
resolver and determining which values to use, taking into account any
client configuration options and scope configuration options.

This class also handles determining what, if any, region to use if no
explicit region setting is provided. For example, Amazon S3 client will
utilize "us-east-1" by default if no region can be resolved.z {service}.{region}.amazonaws.comrö   ú
s3-controlNc                 ó€   • XPl         Xl        X l        X0l        U=(       d    U R                  U l        X`l        Xpl        g r4   )rY   rB   r_   r^   ÚDEFAULT_ENDPOINTÚdefault_endpointrI   rZ   )r@   rB   r_   r^   rT  rY   rI   rZ   s           rL   rM   ÚClientEndpointBridge.__init__‡  s;   € ð %9Ô!Ø!2ÔØ*ÔØ*ÔØ 0× I°D×4IÑ4IˆÔØ(ÔØ)BÕ&rO   c                 ó@  • U R                  X5      nU R                  U5      nU R                  S5      nU R                  R	                  UUUUS9nU(       d  U R                  R	                  UUSUUS9nU(       a  U R                  XqX#U5      $ U R                  XX45      $ )Nr›   )Úuse_dualstack_endpointr›   Úaws)Úpartition_namerW  r›   )Ú_check_default_regionÚ_resolve_use_dualstack_endpointÚ$_resolve_endpoint_variant_config_varrB   r  Ú_create_endpointÚ_assume_endpoint)r@   rR   rv   r]   rw   rW  r›   Úresolveds           rL   ÚresolveÚClientEndpointBridge.resolve™  sÒ   € ð ×0Ñ0°ÓKˆØ!%×!EÑ!EØó"
Ðð !×EÑEØó
Ðð ×)Ñ)×<Ñ<ØØØ#9Ø/ð	 =ð 
ˆö ð ×-Ñ-×@Ñ@ØØØ$Ø'=Ø"3ð Að ˆHö Ø×(Ñ(Ø¨À9óð ð ×(Ñ(Ø¨<óð rO   c                 ó.   • U R                   R                  $ r4   )rB   Úuses_builtin_data©r@   s    rL   Úresolver_uses_builtin_dataÚ/ClientEndpointBridge.resolver_uses_builtin_dataÀ  s   € Ø×%Ñ%×7Ñ7Ð7rO   c                 óŒ   • Ub  U$ U R                   (       a.  U R                   R                  b  U R                   R                  $ g g r4   )r^   rv   )r@   rR   rv   s      rL   rZ  Ú*ClientEndpointBridge._check_default_regionÃ  sC   € ØÑ"ØÐà×× $×"4Ñ"4×"@Ñ"@Ñ"LØ×%Ñ%×1Ñ1Ð1ð #MÐrO   c           
      ó  • U R                  XU5      u  p6Uc2  U R                  UR                  S5      UUR                  S/ 5      5      nU R                  X!5      nU R	                  X!5      nU R                  UUUUUUUS9$ )NÚhostnameÚ	protocols)rR   rv   Úsigning_regionrn   r]   rj   r  )Ú_pick_region_valuesÚ	_make_urlrk   Ú_resolve_signature_versionÚ_resolve_signing_nameÚ_create_result)	r@   r_  rR   rv   r]   rw   rl  r  rn   s	            rL   r]  Ú%ClientEndpointBridge._create_endpointÊ  s¤   € ð '+×&>Ñ&>Ø <ó'
Ñ#ˆð ÑØŸ>™>Ø—‘˜ZÓ(ØØ—‘˜[¨"Ó-óˆLð
 !×;Ñ;Øó
Ðð ×1Ñ1°,ÓIˆØ×"Ñ"Ø%Ø#Ø)Ø%Ø%ØØ/ð #ð 
ð 	
rO   c                 ó®   • U R                   nSnU(       a  [        X!5      b  [        X!5      $ U R                  b  U R                  R                  U5      nU$ )NF)r^   ÚgetattrrI   rÖ   )r@   Ú
config_varr^   Ú
config_vals       rL   r\  Ú9ClientEndpointBridge._resolve_endpoint_variant_config_varä  sT   € Ø×*Ñ*ˆØˆ
ö œW ]Ó?ÑKÜ˜=Ó5Ð5Ø×ÑÑ*à×*Ñ*×>Ñ>¸zÓJˆJØÐrO   c                 óP   • U R                  U5      nUb  U$ U R                  S5      $ )NrW  )Ú_is_s3_dualstack_moder\  )r@   rR   Ús3_dualstack_modes      rL   r[  Ú4ClientEndpointBridge._resolve_use_dualstack_endpointð  s5   € Ø ×6Ñ6°|ÓDÐØÑ(Ø$Ð$Ø×8Ñ8Ø$ó
ð 	
rO   c                 ó  • XR                   ;  a  g U R                  nUb,  UR                  b  SUR                  ;   a  UR                  S   $ U R                  b3  U R                  R	                  S0 5      R	                  S5      nUS;   a  gg g )NrW  rö   )TÚTrueræ   T)Ú_DUALSTACK_CUSTOMIZED_SERVICESr^   rö   r_   rk   )r@   rR   r^   rà   s       rL   ry  Ú*ClientEndpointBridge._is_s3_dualstack_modeø  sœ   € Ø×BÑBÓBØð
 ×*Ñ*ˆàÑ%Ø× Ñ Ñ,Ø(¨M×,<Ñ,<Ó<ð !×#Ñ#Ð$<Ñ=Ð=Ø×ÑÑ)Ø×(Ñ(×,Ñ,¨T°2Ó6×:Ñ:Ø(óˆGð Ð0Ó0Øð 1ð	 *rO   c           
      ó  • Uc-  U R                   R                  XS9nU R                  XTSS/5      n[        R	                  SUUU5        U R                  USS/05      nU R                  U0 S9nU R                  UUUUUU0 S9$ )	N)Úservicerò   ÚhttpÚhttpsz#Assuming an endpoint for %s, %s: %sr  r(  )r_  )rR   rv   rl  rn   r  r]   rj   )rT  Úformatrn  rf   rÆ   ro  rp  rq  )r@   rR   rv   r]   rw   rj  r  rn   s           rL   r^  Ú%ClientEndpointBridge._assume_endpoint  sÀ   € ð Ñà×,Ñ,×3Ñ3Ø$ð 4ð ˆHð  Ÿ>™>Ø f¨gÐ%6óˆLô 	�‰Ø1ØØØô		
ð !×;Ñ;ØÐ.°°Ð7ó
Ðð ×1Ñ1°,ÈÐ1ÐLˆØ×"Ñ"Ø%Ø#Ø&Ø%Ø/Ø%Øð #ð 
ð 	
rO   c                 ó   • UUUUUUUS.$ )N)rR   rv   rl  rn   r]   r  rj   ra   )r@   rR   rv   rl  rn   r]   r  rj   s           rL   rq  Ú#ClientEndpointBridge._create_result.  s#   € ð )Ø&Ø,Ø(Ø(Ø!2Ø ñ
ð 	
rO   c                 ó4   • U(       a	  SU;   a  SnOSnU SU 3$ )Nrƒ  r‚  z://ra   )r@   rj  rw   Úsupported_protocolsÚschemes        rL   rn  ÚClientEndpointBridge._make_urlB  s(   € Þ˜Ð$7Ó7Ø‰FàˆFØ�˜˜X˜JÐ'Ð'rO   c                 ón   • SU;   a  SUS   ;   a  US   S   $ U R                   (       a  U R                   $ U$ )NÚcredentialScoper�  )rY   )r@   rR   r_  s      rL   rp  Ú*ClientEndpointBridge._resolve_signing_nameI  sF   € ð  Ó)Ø˜XÐ&7Ñ8Ó8àÐ-Ñ.¨yÑ9Ð9à×$×$Ø×,Ñ,Ð,àÐrO   c                 óN   • UnUc  US   nUnSU;   a  SUS   ;   a  US   S   nX$4$ )NÚendpointNamer�  rò   ra   )r@   r_  rv   r]   rl  s        rL   rm  Ú(ClientEndpointBridge._pick_region_valuesV  sM   € Ø$ˆØÑð # >Ñ2ˆKØ(ˆNà! XÓ-Ø Ð):Ñ ;Ó;à!)Ð*;Ñ!<¸XÑ!F�ØÐ*Ð*rO   c                 ó  • [        XR                  U R                  5      nUb  U$ US;   a  gU R                  b  U R                  /nOUR	                  S/ 5      nSU;   a  gU H  nU[
        ;   d  M  Us  $    [        US9e)N)rö   rQ  Ús3v4r  r(  )r  )r  r^   r_   rZ   rk   r   r   )r@   rR   r_  Úconfigured_versionÚpotential_versionsÚknowns         rL   ro  Ú/ClientEndpointBridge._resolve_signature_versionl  s¢   € Ü>Ø×,Ñ,¨d×.@Ñ.@ó
Ðð Ñ)Ø%Ð%ð
 Ð/Ó/Øà×)Ñ)Ñ5à"&×"@Ñ"@Ð!AÑð "*§¡Ð.AÀ2Ó!FÐð Ð)Ó)Øó (ˆEØœÕ&Ø’ñ (ô +Ø0ñ
ð 	
rO   )r^   rI   rT  rB   r_   rZ   rY   )NNNNNN©NNT)rD  rL  rM  rN  rF  rS  r~  rM   r`  re  rZ  r]  r\  r[  ry  r^  rq  rn  rp  rm  ro  rO  ra   rO   rL   rl   rl   y  s   † ñDð :ÐØ&*¨LÐ%9Ð"ð
 ØØØ!ØØ"&ôCð& LPô%òN8ò2ò
ò4
ò
òò,
ò@
ò((òò+õ, 
rO   rl   c                   óÎ   • \ rS rSr0 r  SS jrS rS rS r\	S 5       r
\" 5       S 5       rS	 r   SS
 jrS r SS jrS rS rS rS r\S 5       r\	S 5       rS rS rSrg)r�   i�  Nc                 ó’  • Xl         X l        X°l        X0l        XPl        0 U l        Xpl        X€l        [        UU R                  UR                  UU R                  U	5      U l        X l        S U l        XÀl        U R                  c3  [        R                   " 5       R#                  U R                  5      U l        U R%                  5         g r4   )Ú_serializerÚ	_endpointÚ_ruleset_resolverÚ_response_parserÚ_request_signerÚ_cacher5   Ú_client_configÚ
ClientMetaÚhostrŠ   r­   r<   Ú_exceptionsr>   r"   Úfrom_environmentÚwith_client_configÚ_register_handlers)r@   Ú
serializerr
  Úresponse_parserrD   Úrequest_signerr}   rA   r^   r  rH   Úendpoint_ruleset_resolverrJ   s                rL   rM   ÚBaseClient.__init__˜  s¹   € ð &ÔØ!ŒØ!:ÔØ /ÔØ-ÔØˆŒØŒØ+ÔÜØØ×ÑØ�M‰MØØ×ÑØó
ˆŒ	ð $6Ô ØˆÔØ#5Ô Ø×#Ñ#Ñ+ä×0Ò0Ó2×EÑEØ×'Ñ'óð Ô$ð
 	×ÑÕ!rO   c                 óú   • U R                   R                  R                  5       nSU SU 3nU R                  R                  R                  X0S9u  pEUb  U$ [        SU R                  R                   SU S35      e)Nzgetattr.Ú.r`   Ú'z' object has no attribute ')	Ú_service_modelr�   r‘   r­   rÈ   Úemit_until_responseÚAttributeErrorÚ	__class__rD  )r@   Úitemr�   Ú
event_namerÍ   Úevent_responses         rL   Ú__getattr__ÚBaseClient.__getattr__Â  s�   € Ø×(Ñ(×3Ñ3×=Ñ=Ó?ˆ
Ø 
˜|¨1¨T¨FÐ3ˆ
à"&§)¡)×"2Ñ"2×"FÑ"FØð #Gð #
Ñˆð Ñ%Ø!Ð!äØ�—‘×'Ñ'Ð(Ð(CÀDÀ6ÈÐKó
ð 	
rO   c                 ó8   • U R                   R                  5         g)z'Closes underlying endpoint connections.N)rœ  Úcloserd  s    rL   rº  ÚBaseClient.closeÑ  s   € à�‰×ÑÕrO   c                 óT  • U R                   R                  R                  R                  5       nU R                   R                  R                  SU 3U R                  R                  5        U R                   R                  R                  SU 3U R                  R                  5        g )Nzrequest-created.)r­   r}   r�   r‘   rÈ   rÉ   rŸ  rÍ   Úregister_lastr>   Ú&rebuild_and_replace_user_agent_handler)r@   r�   s     rL   r§  ÚBaseClient._register_handlersÕ  sƒ   € à—Y‘Y×,Ñ,×7Ñ7×AÑAÓCˆ
Ø�	‰	×Ñ×!Ñ!Ø˜z˜lÐ+¨T×-AÑ-A×-IÑ-Iô	
ð
 	�	‰	×Ñ×&Ñ&Ø˜z˜lÐ+Ø×$Ñ$×KÑKõ	
rO   c                 ó.   • U R                   R                  $ r4   )r­   r}   rd  s    rL   r°  ÚBaseClient._service_modelâ  s   € à�y‰y×&Ñ&Ð&rO   c                 óî  • U R                   R                  U5      nU R                   R                  n[        R	                  SUUUS.5        UR
                  (       a  [        R                  SXA5        UR                  (       aj  U R                  R                  R                  (       aE  U R                  R                  R                  R                  S5      n[        XSR                  5      nOUR                  nU R                  R                  U R                  R                  UR                   UUR"                  U R                   R$                  R'                  S5      S.nU R)                  UUUS9nU R+                  X2U5      u  nn	n
U
(       a  X§S'   U R-                  UUUUU	S	9n[/        X³U5        U R                   R0                  R3                  5       nU R                  R4                  R7                  S
U SU 3UUU R8                  US9u  pÞUb  Uu  nnO@[;        U R                  R                  X³5        [=        U5        U R?                  X;U5      u  nnU R                  R4                  RA                  SU SU 3UUUUS9  URB                  S:¼  a_  UR'                  S0 5      nUR'                  S5      =(       d    UR'                  S5      nU RD                  RG                  U5      nU" UU5      eU$ )NÚAPI_CALL)r�  Ú	operationr  zWarning: %s.%s() is deprecatedÚ,rV   )Úclient_regionr^   Úhas_streaming_inputÚ	auth_typeÚunsigned_payloadÚauth_options)Ú
api_paramsr?  r  Úendpoint_properties)rË  r?  r]   r  Úheaderszbefore-call.r®  )Úmodelr  rª  r  zafter-call.)Úhttp_responseÚparsedrÎ  r  i,  ÚErrorÚerror_code_overrideÚCode)$r°  r?  rR   Úhistory_recorderÚrecordÚ
deprecatedrf   rÆ   rV   r­   r®   Úauth_scheme_preferenceÚsplitr   Úresolved_auth_typerv   rÇ  rÉ  rj   rk   Ú_emit_api_paramsÚ_resolve_endpoint_rulesetÚ_convert_to_request_dictr   r�   r‘   rÈ   r±  rŸ  r   r   Ú_make_requestrb   Ústatus_codeÚ
exceptionsÚ	from_code)r@   r2  rË  r?  rR   Úpreferred_schemesrÈ  Úrequest_contextr]   Úadditional_headersÚ
propertiesÚrequest_dictr�   rÍ   r¶  r‚  Úparsed_responseÚ
error_infoÚ
error_codeÚerror_classs                       rL   r;  ÚBaseClient._make_api_callæ  sö  € à×-Ñ-×=Ñ=¸nÓMˆØ×*Ñ*×7Ñ7ˆÜ×ÑØà'Ø+Ø$ñô	
ð ×%×%Ü�L‰LØ0°,ôð ×× D§I¡I×$4Ñ$4×$K×$KØ $§	¡	× 0Ñ 0× GÑ G× MÑ MØó!Ðô 7Ø!×#7Ñ#7ó‰Ið (×:Ñ:ˆIà!ŸY™Y×2Ñ2Ø!ŸY™Y×-Ñ-Ø#2×#FÑ#FØ"Ø /× @Ñ @Ø ×/Ñ/×8Ñ8×<Ñ<¸VÓDñ
ˆð ×*Ñ*Ø!Ø+Ø#ð +ð 
ˆ
ð ×*Ñ*Ø¨ó
ñ		
ØØØö ð 6@Ð1Ñ2Ø×4Ñ4Ø!Ø+Ø%Ø#Ø&ð 5ð 
ˆô 	! À
ÔKà×(Ñ(×3Ñ3×=Ñ=Ó?ˆ
Ø"&§)¡)×"2Ñ"2×"FÑ"FØ˜:˜, a¨Ð'7Ð8Ø!ØØ×/Ñ/Ø#ð #Gð #
Ñˆð Ñ%Ø$2Ñ!ˆD‘/ä"Ø—	‘	× Ñ  ,ôô # <Ô0Ø$(×$6Ñ$6Ø¨ó%Ñ!ˆD�/ð 	�	‰	×Ñ×ÑØ˜*˜ Q ~Ð&6Ð7ØØ"Ø!Ø#ð 	ñ 	
ð ×Ñ˜sÓ"Ø(×,Ñ,¨W°bÓ9ˆJØ(×,Ñ,Ø%ó÷ (à—‘ Ó'ð ð Ÿ/™/×3Ñ3°JÓ?ˆKÙ˜o¨~Ó>Ð>à"Ð"rO   c                 ó  •  U R                   R                  X5      $ ! [         a]  nU R                  R                  R                  SU R                  R                  R                  5        SUR                   3UUS9  e S nAff = f)Nzafter-call-error.r®  )Ú	exceptionr  )
rœ  Úmake_requestÚ	Exceptionr­   rÈ   rb   r°  r�   r‘   Úname)r@   r?  rå  râ  Úes        rL   rÝ  ÚBaseClient._make_requestJ  s‚   € ð	Ø—>‘>×.Ñ.¨ÓMÐMøÜó 	Ø�I‰I×Ñ×!Ñ!Ø# D×$7Ñ$7×$BÑ$B×$LÑ$LÓ$NÐ#OÈqÐQ`×QeÑQeÐPfÐgØØ'ð "ñ ð
 ûð	ús   ‚ �
B§AA?Á?Bc                 ó$  • U R                   R                  X5      nU R                  R                  (       d  UR	                  SS 5        Ub  US   R                  U5        U(       a  U R                  R                  5       nOS n[        UUUUS9  U$ )NÚhost_prefixrÍ  )r]   rC   r  )	r›  Úserialize_to_requestr¡  Úinject_host_prefixrÒ   Úupdater>   Ú	to_stringr
   )	r@   rË  r?  r]   r  rÍ  Úset_user_agent_headerrå  rC   s	            rL   rÜ  Ú#BaseClient._convert_to_request_dictU  s�   € ð ×'Ñ'×<Ñ<Øó
ˆð ×"Ñ"×5×5Ø×Ñ˜]¨DÔ1ØÑØ˜Ñ#×*Ñ*¨7Ô3Þ Ø×1Ñ1×;Ñ;Ó=‰JàˆJÜØØ%Ø!Øò		
ð ÐrO   c                 ó(  • UR                   nU R                  R                  R                  5       nU R                  R
                  R                  SU SU 3UUUS9n[        XaS9nU R                  R
                  R                  SU SU 3UUUS9  U$ )Nzprovide-client-params.r®  )r  rÎ  r  rS   zbefore-parameter-build.)rï  r°  r�   r‘   r­   rÈ   rb   r   )r@   rË  r?  r  r2  r�   r|   s          rL   rÚ  ÚBaseClient._emit_api_paramsq  s¯   € ð )×-Ñ-ˆð
 ×(Ñ(×3Ñ3×=Ñ=Ó?ˆ
Ø—I‘I×$Ñ$×)Ñ)Ø$ Z L°°.Ð1AÐBØØ!Øð	 *ð 
ˆ	ô -¨YÑKˆ
à�	‰	×Ñ×ÑØ% j \°°>Ð2BÐCØØ!Øð	 	ñ 	
ð ÐrO   c                 ó¸  • U R                   c  U R                  R                  n0 n0 nO¯U R                   R                  UUUS9nUR                  nUR
                  nUR                  nUR                  R                  S5      n	U	bR  U R                   R                  U	5      n
U
u  p¼X³S'   SU;   a
  U(       a  US	 SU;   a  US   R                  U5        OXÃS'   XVU4$ )af  Returns endpoint URL and list of additional headers returned from
EndpointRulesetResolver for the given operation and params. If the
ruleset resolver is not available, for example because the service has
no endpoints ruleset file, the legacy endpoint resolver's value is
returned.

Use ignore_signing_region for generating presigned URLs or any other
situation where the signing region information from the ruleset
resolver should be ignored.

Returns tuple of URL and headers dictionary. Additionally, the
request_context dict is modified in place with any signing information
returned from the ruleset resolver.
)r?  Ú	call_argsrâ  ÚauthSchemesrÈ  rò   Úsigning)
r�  r­   r]   r  ÚurlrÍ  rä  rk   Úauth_schemes_to_signing_ctxrö  )r@   r?  r  râ  Úignore_signing_regionr]   rã  rÌ  Úendpoint_infoÚauth_schemesÚ	auth_inforÈ  Úsigning_contexts                rL   rÛ  Ú$BaseClient._resolve_endpoint_rulesetŠ  s   € ð* ×!Ñ!Ñ)ØŸ9™9×1Ñ1ˆLØ!#ÐØ"$Ñà ×2Ñ2×EÑEØ /Ø Ø /ð Fð ˆMð
 )×,Ñ,ˆLØ!.×!6Ñ!6ÐØ"/×":Ñ":Ðð )×3Ñ3×7Ñ7¸ÓFˆLØÑ'Ø ×2Ñ2×NÑNØ ó�	ð .7Ñ*�	Ø/8 Ñ,Ø˜Ó.Ö3HØ'¨Ð1Ø Ó/Ø# IÑ.×5Ñ5°oÕFà1@ IÑ.àÐ1DÐDÐDrO   c                 óÐ  • U R                  U5      (       d	  [        US9eU R                  U   nS nU R                  S   U   n[	        UU R
                  R                  U R
                  R                  USS9Ul        [        U R
                  R                  5      nU SU 3n[        U[        4SU05      nU R                  R                  U5      nU" [        X5      UU5      n	U	$ )a›  Create a paginator for an operation.

:type operation_name: string
:param operation_name: The operation name.  This is the same name
    as the method name on the client.  For example, if the
    method name is ``create_foo``, and you'd normally invoke the
    operation as ``client.create_foo(**kwargs)``, if the
    ``create_foo`` operation can be paginated, you can use the
    call ``client.get_paginator("create_foo")``.

:raise OperationNotPageableError: Raised if the operation is not
    pageable.  You can use the ``client.can_paginate`` method to
    check if an operation is pageable.

:rtype: ``botocore.paginate.Paginator``
:return: A paginator object.

)r2  c                 ó0   • [         R                  " U 40 UD6$ r4   )r   Úpaginate)r@   rº   s     rL   r
  Ú*BaseClient.get_paginator.<locals>.paginateÙ  s   € Ü ×)Ò)¨$Ñ9°&Ñ9Ð9rO   Úpage_configF)Úpaginator_namerD   r}   Úpaginator_configrC  z.Paginator.r
  )Úcan_paginater   rŠ   r   r   r­   rÈ   r}   rF  r/   r’   r   r°  r?  rt  )
r@   r2  Úactual_operation_namer
  r  Úservice_module_nameÚpaginator_class_nameÚdocumented_paginator_clsr?  Ú	paginators
             rL   Úget_paginatorÚBaseClient.get_paginator¾  s  € ð& × Ñ  ×0Ñ0Ü+¸>ÑJÐJà$(×$7Ñ$7¸Ñ$GÐ!ò
:ð  $Ÿ{™{¨=Ñ9Ø%ñ Ðô  2Ø4Ø"Ÿi™i×.Ñ.Ø"Ÿi™i×5Ñ5Ø!1Ø"'ñ ˆHÔô #:Ø—	‘	×'Ñ'ó#Ðð 'Ð' {Ð3HÐ2IÐJð !ô
 (,Ø$¤y l°ZÀÐ4Jó(Ð$ð #×1Ñ1×AÑAØ%óˆOñ 1Ü˜Ó-Ø ØóˆIð
 ÐrO   c                 óN  • SU R                   ;  aW   U R                  R                  U R                  R                  SU R                  R
                  5      S   nX R                   S'   U R                  U   nX0R                   S   ;   $ ! [         a    0 U R                   S'    N;f = f)aý  Check if an operation can be paginated.

:type operation_name: string
:param operation_name: The operation name.  This is the same name
    as the method name on the client.  For example, if the
    method name is ``create_foo``, and you'd normally invoke the
    operation as ``client.create_foo(**kwargs)``, if the
    ``create_foo`` operation can be paginated, you can use the
    call ``client.get_paginator("create_foo")``.

:return: ``True`` if the operation can be paginated,
    ``False`` otherwise.

r  zpaginators-1Ú
pagination)r   r5   r¤   r°  rR   rz   r   rŠ   )r@   r2  r  r  s       rL   r  ÚBaseClient.can_paginateÿ  s¦   € ð  §¡Ó+ð0Ø"Ÿl™l×=Ñ=Ø×'Ñ'×4Ñ4Ø"Ø×'Ñ'×3Ñ3óð ñ	 �ð
 .9—‘˜MÑ*ð !%× 3Ñ 3°NÑ CÐØ$¯©°MÑ(BÑBÐBøô %ó 0Ø-/�—‘˜MÓ*ð0ús   ’AB ÂB$Â#B$c                 ó&  • SU R                   ;  aT   U R                  R                  U R                  R                  SU R                  R
                  5      nXR                   S'   U R                   S   $ ! [         a    0 U R                   S'    N*f = f)NÚwaiter_configz	waiters-2)r   r5   r¤   r°  rR   rz   r   )r@   r  s     rL   Ú_get_waiter_configÚBaseClient._get_waiter_config  s†   € Ø $§+¡+Ó-ð2Ø $§¡× ?Ñ ?Ø×'Ñ'×4Ñ4ØØ×'Ñ'×3Ñ3ó!�ð
 0=—‘˜OÑ,ð �{‰{˜?Ñ+Ð+øô %ó 2Ø/1�—‘˜OÓ,ð2ús   ’AA4 Á4BÂBc                 ó  • U R                  5       nU(       d  [        SU 35      e[        R                  " U5      n0 nUR                   H  nXT[        U5      '   M     X;  a  [        SU 35      e[        R                  " XA   X05      $ )a  Returns an object that can wait for some condition.

:type waiter_name: str
:param waiter_name: The name of the waiter to get. See the waiters
    section of the service docs for a list of available waiters.

:returns: The specified waiter object.
:rtype: ``botocore.waiter.Waiter``
zWaiter does not exist: )r  Ú
ValueErrorr   ÚWaiterModelÚwaiter_namesr   Úcreate_waiter_with_client)r@   Úwaiter_namer®   rÎ  r6  rï  s         rL   Ú
get_waiterÚBaseClient.get_waiter(  sŽ   € ð ×(Ñ(Ó*ˆÞÜÐ6°{°mÐDÓEÐEÜ×"Ò" 6Ó*ˆØˆØ×&Ô&ˆDØ(,”J˜tÓ$Ó%ñ 'àÓ%ÜÐ6°{°mÐDÓEÐEä×/Ò/ØÑ  %ó
ð 	
rO   c                 ó¶   • U R                  5       nU(       d  / $ [        R                  " U5      nUR                   Vs/ s H  n[	        U5      PM     sn$ s  snf )z(Returns a list of all available waiters.)r  r   r   r!  r   )r@   r®   rÎ  rï  s       rL   r!  ÚBaseClient.waiter_names@  sQ   € ð ×(Ñ(Ó*ˆÞØˆIÜ×"Ò" 6Ó*ˆð .3×-?Ò-?Ó@Ò-? T”
˜4Ö Ñ-?Ñ@Ð@ùÒ@s   ¾Ac                 ó^   • U R                   c  U R                  5       U l         U R                   $ r4   )r¤  Ú_load_exceptionsrd  s    rL   rß  ÚBaseClient.exceptionsK  s+   € à×ÑÑ#Ø#×4Ñ4Ó6ˆDÔØ×ÑÐrO   c                 óL   • U R                   R                  U R                  5      $ r4   )r<   Úcreate_client_exceptionsr°  rd  s    rL   r)  ÚBaseClient._load_exceptionsQ  s$   € Ø×'Ñ'×@Ñ@Ø×Ñó
ð 	
rO   c                 ó.   • U R                   R                  $ )zk
This private interface is subject to abrupt breaking changes, including
removal, in any botocore release.
)rŸ  Ú_credentialsrd  s    rL   Ú_get_credentialsÚBaseClient._get_credentialsV  s   € ð
 ×#Ñ#×0Ñ0Ð0rO   )r   r¡  rœ  r¤  r<   r5   rŸ  rž  r�  r›  r>   r­   )NNr˜  )F)rD  rL  rM  rN  rŠ   rM   r·  rº  r§  Úpropertyr°  r   r;  rÝ  rÜ  rÚ  rÛ  r  r  r  r$  r$   r!  rß  r)  r0  rO  ra   rO   rL   r�   r�   �  sÄ   † ð €Nð #'Øô("òT
òò
ð ñ'ó ð'ñ Óña#ó ða#òF	ð  ØØ"ôò8ð< $ô2Eòh?òBCò8,ò
ð0 ñAó ðAð ñ ó ð ò

õ
1rO   r�   c                   ó~   • \ rS rSrSrS r\S 5       r\S 5       r\S 5       r	\S 5       r
\S 5       r\S	 5       rS
rg)r¢  i^  ab  Holds additional client methods.

This class holds additional information for clients.  It exists for
two reasons:

    * To give advanced functionality to clients
    * To namespace additional client attributes from the operation
      names which are mapped to methods at runtime.  This avoids
      ever running into collisions with operation names.

c                 óL   • Xl         X l        X0l        X@l        XPl        X`l        g r4   )rÈ   r¡  Ú_endpoint_urlr°  Ú_method_to_api_mappingÚ
_partition)r@   rÈ   r^   r]   r}   Úmethod_to_api_mappingr  s          rL   rM   ÚClientMeta.__init__k  s&   € ð ŒØ+ÔØ)ÔØ+ÔØ&;Ô#Ø#�rO   c                 ó   • U R                   $ r4   )r°  rd  s    rL   r}   ÚClientMeta.service_model{  ó   € à×"Ñ"Ð"rO   c                 ó.   • U R                   R                  $ r4   )r¡  rv   rd  s    rL   rv   ÚClientMeta.region_name  s   € à×"Ñ"×.Ñ.Ð.rO   c                 ó   • U R                   $ r4   )r5  rd  s    rL   r]   ÚClientMeta.endpoint_urlƒ  s   € à×!Ñ!Ð!rO   c                 ó   • U R                   $ r4   )r¡  rd  s    rL   r®   ÚClientMeta.config‡  r<  rO   c                 ó   • U R                   $ r4   )r6  rd  s    rL   r8  Ú ClientMeta.method_to_api_mapping‹  s   € à×*Ñ*Ð*rO   c                 ó   • U R                   $ r4   )r7  rd  s    rL   r  ÚClientMeta.partition�  s   € à�‰ÐrO   )r¡  r5  r6  r7  r°  rÈ   N)rD  rL  rM  rN  rF  rM   r2  r}   rv   r]   r®   r8  r  rO  ra   rO   rL   r¢  r¢  ^  s„   † ñ
ò$ð  ñ#ó ð#ð ñ/ó ð/ð ñ"ó ð"ð ñ#ó ð#ð ñ+ó ð+ð ñó órO   r¢  c                 óþ   • U(       a  UR                   b  UR                   $ UbZ  UR                  U 5      nUbF  [        U[        5      (       a1  UR                  S5      nU(       a  [        R                  SU U5        U$ g)z›
Gets the manually configured signature version.

:returns: the customer configured signature version, or None if no
    signature version was configured.
Nr  zWSwitching signature version for service %s to version %s based on config file override.)r  rk   ré   Údictrf   rÆ   )rR   r^   r_   Úservice_configÚversions        rL   r  r  ”  s€   € ö ˜×8Ñ8ÑDØ×.Ñ.Ð.ð Ñ ð '×*Ñ*¨<Ó8ˆØÑ%¬*°^ÄT×*JÑ*JØ$×(Ñ(Ð)<Ó=ˆGÞÜ—‘ðCà Øô	ð �ØrO   )JÚloggingÚbotocorer   r   r   Úbotocore.argsr   Úbotocore.authr   r   r	   Úbotocore.awsrequestr
   Úbotocore.compressr   Úbotocore.configr   Úbotocore.contextr   Úbotocore.credentialsr   Úbotocore.discoveryr   r   r   Úbotocore.docs.docstringr   r   Úbotocore.exceptionsr   r   r   r   r   r   Úbotocore.historyr   Úbotocore.hooksr   Úbotocore.httpchecksumr   r   Úbotocore.modelr   Úbotocore.paginater   Úbotocore.retriesr    r!   Úbotocore.useragentr"   r#   Úbotocore.utilsr$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   Ú	getLoggerrD  rf   rÔ  r1   rl   r�   r¢  r  ra   rO   rL   Ú<module>r`     sÏ   ðó ÷ñ õ
 ,÷ñ õ
 5Ý 4Ý "Ý 1Ý 7÷ñ ÷
 N÷÷ õ 9Ý 2÷õ (Ý 'ß /ß C÷÷ ÷ ó ð 
×	Ò	˜8Ó	$€Ù.Ó0Ð ÷l3ñ l3÷^S
ñ S
÷lL1ñ L1÷^3ñ 3ólrO   