݁[cf@sadZddlZddlZddlZddlZddlZddlZddlZddl m Z m Z m Z m Z mZmZmZmZddlmZddlmZddlmZddlmZddlmZdd lmZdd lmZdd lmZdd lmZdd lmZm Z ddlm!Z!ddlm"Z"ddl#m$Z$ddl#m%Z%ddl#m&Z&ddl#Z#ddl'Z#ej(e)Z*e+Z,e+Z-ej.dZ/ej.dZ0idd6Z1dZ2dZ3dZ4dZ5dZ6dZ7dZ8dZ9dZ:d Z;d!Z<d"Z=d#Z>d$Z?d%Z@d&d'ZAd(ZBd)ZCd*ZDd+ZEd,ZFd-ZGd.ZHd/ZId0ZJd1ZKd2ZLd3ZMd4ZNd5ZOd6ZPd7ZQd8ZRd9ZSd:ZTd;ZUd<ZVd=ZWd>ZXd?ZYd@ZZdAZ[dBZ\dCZ]dDZ^dEZ_dFZ`dGZadHZbdIZcdJZddKZedLe+fdMYZfdNe+fdOYZgdPZhdQe2fdRegdSfdTede-fdUede-fdVehfdWefdXefdYe^fdZePfd[e6fd\e9fd]eRfd^e7fd_e>fd`e`fdae`fdbe:fdce:fdde:fdee:fdfe:fdge:fdhe=fdie=fdje=fdke=fdle=fdme=fdne=fdoe=fdpe=fdqe=fdreIfdseIfdreUfdUeUfdteUfdueHfdveHfdweGfdxeXfdyeYfdzeZfd{eZfd|eNfd}e]fd~e3e,fde3e,fde3e,fdeCfdeFfdeFfdeFfdeFfdeFfdeFfde5fde?fde?fdUe?fdre?fdre@fdte?fdTe?fdse?fdse@fdeSfdeSfdeVfdeWfdeafdebfde_fdeddjifdedjifdedjifde[fde\fdeTdfdeTdfdedjifdedjifdedjifdedjifdeTdfdedddddddddddddddg jjfdefdeOfdeOfdeOfdeOfdedjifdedjifdedjifdedjifdeOfdeOfdedjifdedjifgcZkeeekdS(s_Builtin event handlers. This module contains builtin handlers for events emitted by botocore. iN(tunquotetjsontsixt unquote_strt ensure_bytestget_md5t MD5_AVAILABLEt OrderedDict(tAutoPopulatedParam(tHideParamFromOperations(tAppendParamDocumentation(tadd_generate_presigned_url(tadd_generate_presigned_post(tadd_generate_db_auth_token(tParamValidationError(tAliasConflictParameterError(tUnsupportedTLSVersionWarning(tpercent_encodet SAFE_CHARS(tswitch_host_with_param(thyphenize_service_id(t retryhandler(tutils(t translates^[a-zA-Z0-9.\-_]{1,255}$s\?versionId=[^\s]+$ssagemaker-runtimesruntime.sagemakercKstj||S(N(tSERVICE_NAME_ALIASEStget(t service_nametkwargs((si/private/var/folders/71/gccz42bs2nl23mxwq3vp1qmhw5xjlw/T/pip-install-k836tR/botocore/botocore/handlers.pythandle_service_name_aliasBscKsH|dkrdS|\}}t|rDtjd|d|_ndS(NsWError found for response with 200 status code, errors: %s, changing status code to 500.i(tNonet_looks_like_special_case_errortloggertdebugt status_code(tresponseRt http_responsetparsed((si/private/var/folders/71/gccz42bs2nl23mxwq3vp1qmhw5xjlw/T/pip-install-k836tR/botocore/botocore/handlers.pytcheck_for_200_errorFs    cCso|jdkrktjjjdtjjjdd}|j|j|j}|j dkrkt Snt S(Nittargettencodingsutf-8tError( R!txmltetreet cElementTreet XMLParsert TreeBuildertfeedtcontenttclosettagtTruetFalse(R#tparsertroot((si/private/var/folders/71/gccz42bs2nl23mxwq3vp1qmhw5xjlw/T/pip-install-k836tR/botocore/botocore/handlers.pyRbs  cKsw|jd}|sdS|dkr,tjS|jdrsd}|dkrVd}n|dkrot|dst(ttellRtitertupdatetseekRi(Rmtstart_positionRktchunk((Rmsi/private/var/folders/71/gccz42bs2nl23mxwq3vp1qmhw5xjlw/T/pip-install-k836tR/botocore/botocore/handlers.pyRcs    cKstrt||ndS(s1Only add a Content-MD5 if the system supports it.N(RRh(RSR?trequest_signerR((si/private/var/folders/71/gccz42bs2nl23mxwq3vp1qmhw5xjlw/T/pip-install-k836tR/botocore/botocore/handlers.pytconditionally_calculate_md5scKsXd|krdS|d}tj|dkrTd|tjf}td|ndS(NtBuckets?Invalid bucket name "%s": Bucket name must match the regex "%s"treport(t VALID_BUCKETtsearchRtpatternR(RSRtbuckett error_msg((si/private/var/folders/71/gccz42bs2nl23mxwq3vp1qmhw5xjlw/T/pip-install-k836tR/botocore/botocore/handlers.pytvalidate_bucket_names  cKst|ddS(s S3 server-side encryption requires the encryption key to be sent to the server base64 encoded, as well as a base64-encoded MD5 hash of the encryption key. This handler does both if the MD5 has not been set by the caller. t SSECustomerN(t_sse_md5(RSR((si/private/var/folders/71/gccz42bs2nl23mxwq3vp1qmhw5xjlw/T/pip-install-k836tR/botocore/botocore/handlers.pytsse_md5scKst|ddS(s1 S3 server-side encryption requires the encryption key to be sent to the server base64 encoded, as well as a base64-encoded MD5 hash of the encryption key. This handler does both if the MD5 has not been set by the caller specifically if the parameter is for the copy-source sse-c key. tCopySourceSSECustomerN(R(RSR((si/private/var/folders/71/gccz42bs2nl23mxwq3vp1qmhw5xjlw/T/pip-install-k836tR/botocore/botocore/handlers.pytcopy_source_sse_md5sRcCst||sdS|d}|d}||}t|tjrU|jd}ntjt|jj d}tj|j d}|||<|||scKsi|jjddd krdSd|kre|d}t|dretjdd|d d %s(RR (t input_shapeRRRRUtsplitRR (RSRTRR RURRt orig_value((si/private/var/folders/71/gccz42bs2nl23mxwq3vp1qmhw5xjlw/T/pip-install-k836tR/botocore/botocore/handlers.pytfix_route53_idsDs    cKs&|jddkr"d|dtj|}n|j}d|krrtj|dt|d`_. But if you prefer, you can also use botocore.utils.calculate_tree_hash() to compute it from raw file by:: checksum = calculate_tree_hash(open('your_file.txt', 'rb')) tchecksum(R R(tdoc((si/private/var/folders/71/gccz42bs2nl23mxwq3vp1qmhw5xjlw/T/pip-install-k836tR/botocore/botocore/handlers.pyt#document_glacier_tree_hash_checksums cKsd|krD|jd}|jd}|j|jdnSd|kr|jd}|jd}|jd}|j|jdndS( Nsresponse-paramsRYs param-types (*dict*) --sresponse-examplesstructure-values member-values{}(RRR(RRRttemplate_body_sectionRRRR((si/private/var/folders/71/gccz42bs2nl23mxwq3vp1qmhw5xjlw/T/pip-install-k836tR/botocore/botocore/handlers.pyt0document_cloudformation_get_template_return_types    cKst|ddS(NtPredictEndpoint(R(trequestR((si/private/var/folders/71/gccz42bs2nl23mxwq3vp1qmhw5xjlw/T/pip-install-k836tR/botocore/botocore/handlers.pytswitch_host_machinelearningscKsWddl}y3|j}|dkr>tjd|jtnWntk rRnXdS(NiiisCurrently installed openssl version: %s does not support TLS 1.2, which is required for use of iot-data. Please use python installed with openssl version 1.0.1 or higher.(iii(tssltOPENSSL_VERSION_INFOtwarningstwarntOPENSSL_VERSIONRRL(RR$topenssl_version_tuple((si/private/var/folders/71/gccz42bs2nl23mxwq3vp1qmhw5xjlw/T/pip-install-k836tR/botocore/botocore/handlers.pyt&check_openssl_supports_tls_version_1_2s    cKs\|jdkrXd|jkrXd|jdRTtavailable_sectionsRt_replace_content(RVRRRRtparam_type_sectiontparam_name_section((si/private/var/folders/71/gccz42bs2nl23mxwq3vp1qmhw5xjlw/T/pip-install-k836tR/botocore/botocore/handlers.pyRI:s cCsH|jjd}|j|j|j}|j|j|dS(Nsutf-8(tgetvalueRIRDRTRURR(RVRR/tupdated_content((si/private/var/folders/71/gccz42bs2nl23mxwq3vp1qmhw5xjlw/T/pip-install-k836tR/botocore/botocore/handlers.pyR]Ns  (t__name__t __module__RXRGRIR](((si/private/var/folders/71/gccz42bs2nl23mxwq3vp1qmhw5xjlw/T/pip-install-k836tR/botocore/botocore/handlers.pyRF%s   tClientMethodAliascBseZdZdZRS(cCs ||_dS(s Aliases a non-extant method to an existing method. :param actual_name: The name of the method that actually exists on the client. N(t_actual(RVt actual_name((si/private/var/folders/71/gccz42bs2nl23mxwq3vp1qmhw5xjlw/T/pip-install-k836tR/botocore/botocore/handlers.pyRXWscKst||jS(N(tgetattrRe(RVtclientR((si/private/var/folders/71/gccz42bs2nl23mxwq3vp1qmhw5xjlw/T/pip-install-k836tR/botocore/botocore/handlers.pyt__call___s(RbRcRXRi(((si/private/var/folders/71/gccz42bs2nl23mxwq3vp1qmhw5xjlw/T/pip-install-k836tR/botocore/botocore/handlers.pyRdVs cKsd|kr|d=ndS(Ntsubscribe_to_shard((tclass_attributesR((si/private/var/folders/71/gccz42bs2nl23mxwq3vp1qmhw5xjlw/T/pip-install-k836tR/botocore/botocore/handlers.pytremove_subscribe_to_shardcs schoose-service-names/getattr.mturk.list_hi_ts_for_qualification_typet list_hits_for_qualification_types$before-parameter-build.s3.UploadParts#before-parameter-build.s3.PutObjectscreating-client-class.kinesisscreating-client-classscreating-client-class.s3screating-client-class.iot-datasafter-call.iamsafter-call.ec2.GetConsoleOutputs%after-call.cloudformation.GetTemplatesafter-call.s3.GetBucketLocationsbefore-parameter-buildsbefore-parameter-build.s3s%before-parameter-build.s3.ListObjectss'before-parameter-build.s3.ListObjectsV2sbefore-call.s3.PutBucketTaggings!before-call.s3.PutBucketLifecycles.before-call.s3.PutBucketLifecycleConfigurationsbefore-call.s3.PutBucketCorssbefore-call.s3.DeleteObjectss#before-call.s3.PutBucketReplicationsbefore-call.s3.PutObjectsbefore-call.s3.UploadPartsbefore-call.s3.PutBucketAclsbefore-call.s3.PutBucketLoggings$before-call.s3.PutBucketNotificationsbefore-call.s3.PutBucketPolicys&before-call.s3.PutBucketRequestPayments"before-call.s3.PutBucketVersioningsbefore-call.s3.PutBucketWebsitesbefore-call.s3.PutObjectAcls$before-parameter-build.s3.CopyObjects(before-parameter-build.s3.UploadPartCopys/before-parameter-build.s3.CreateMultipartUploads%docs.*.s3.CopyObject.complete-sections)docs.*.s3.UploadPartCopy.complete-sectionsbefore-call.s3sbefore-call.glaciersbefore-call.apigateways!before-call.glacier.UploadArchives'before-call.glacier.UploadMultipartPartsbefore-call.ec2.CopySnapshots'request-created.machinelearning.Predictsneeds-retry.s3.UploadPartCopysneeds-retry.s3.CopyObjects&needs-retry.s3.CompleteMultipartUploadsservice-data-loadeds$choose-signer.cognito-identity.GetIds-choose-signer.cognito-identity.GetOpenIdTokens-choose-signer.cognito-identity.UnlinkIdentitys8choose-signer.cognito-identity.GetCredentialsForIdentitys$choose-signer.sts.AssumeRoleWithSAMLs+choose-signer.sts.AssumeRoleWithWebIdentitys choose-signers$before-parameter-build.s3.HeadObjects#before-parameter-build.s3.GetObjects'before-parameter-build.ec2.RunInstancess<before-parameter-build.autoscaling.CreateLaunchConfigurationsbefore-parameter-build.route53sbefore-parameter-build.glaciersafter-call.s3.ListObjectssafter-call.s3.ListObjectsV2s(request-created.cloudsearchdomain.Searchs!docs.*.glacier.*.complete-sectionRsJNote: this parameter is set to "-" bydefault if no value is not specified.s-docs.*.glacier.UploadArchive.complete-sectionRs3docs.*.glacier.UploadMultipartPart.complete-sectionsDdocs.request-params.glacier.CompleteMultipartUpload.complete-sections2docs.*.cloudformation.GetTemplate.complete-sections(docs.*.ec2.RunInstances.complete-sectionRs=docs.*.autoscaling.CreateLaunchConfiguration.complete-sections(docs.*.ec2.CopySnapshot.complete-sectionRRsdocs.*.s3.*.complete-sectiontSSECustomerKeyMD5tCopySourceSSECustomerKeyMD5s1docs.*.lambda.UpdateFunctionCode.complete-sectiontZipFileR9t ContentMD5t DeleteObjectst PutBucketAclt PutBucketCorstPutBucketLifecycletPutBucketLoggingtPutBucketNotificationtPutBucketPolicytPutBucketReplicationtPutBucketRequestPaymenttPutBucketTaggingtPutBucketVersioningtPutBucketWebsitet PutObjectAclscreating-client-class.rdss%before-call.rds.CopyDBClusterSnapshotsbefore-call.rds.CreateDBClustersbefore-call.rds.CopyDBSnapshots+before-call.rds.CreateDBInstanceReadReplicas1docs.*.rds.CopyDBClusterSnapshot.complete-sectionRs+docs.*.rds.CreateDBCluster.complete-sections*docs.*.rds.CopyDBSnapshot.complete-sections7docs.*.rds.CreateDBInstanceReadReplica.complete-sections)before-call.neptune.CopyDBClusterSnapshots#before-call.neptune.CreateDBClusters5docs.*.neptune.CopyDBClusterSnapshot.complete-sections/docs.*.neptune.CreateDBCluster.complete-section(lt__doc__RFtloggingtxml.etree.cElementTreeR)RtreR&RQtbotocore.compatRRRRRRRRtbotocore.docs.utilsRR R tbotocore.signersR R R tbotocore.exceptionsRRRtbotocore.utilsRRRRR<RRRt botocore.autht getLoggerRbRtobjectRHt REGISTER_LASTtcompileRzRRRR%RRBRNRVRXR[RhRbRcRwRRRRRRRRRRRRRRRRRRRRRRRRR RRRRRR R#R*R-R0R:R<R9R@RSRFRdRltdocument_auto_populated_paramt hide_paramtBUILTIN_HANDLERS(((si/private/var/folders/71/gccz42bs2nl23mxwq3vp1qmhw5xjlw/T/pip-install-k836tR/botocore/botocore/handlers.pyts       :        !                              1