+
    [mÀhŠ�  ã                   óŽ  € ^ RI t ^ RIt^ RIt^ RIHt ^ RIt^ RIt^ RIt	^ RI
t	^ RIHtHtHtHt ^ RIHtHtHtHtHt ^ RIHtHtHt ^ RI	Ht ^ RIHt ^ RIHt ^ R	IHt ^ R
I H!t!H"t" ^ RI#H$t$H%t% ^ RI&H't' ^ RI(H)t)H*t* ^ RI+H,t, ^ RI-H.t.H/t/H0t0H1t1H2t2 ] Pf                  ! ]44      t5Rs6R t7RRR^]%,          RR3R lt8R.R lt9 ! R R4      t: ! R R]*4      t; ! R R])4      t< ! R R4      t= ! R R]=4      t> ! R R]4      t? ! R  R!4      t@ ! R" R#4      tA ! R$ R%4      tB ! R& R'4      tC ! R( R)4      tD ! R* R+4      tE ! R, R-4      tFR# )/é    N)ÚBytesIO)ÚAwsCredentialsÚAwsCredentialsProviderÚAwsSigningAlgorithmÚAwsSigningConfig)ÚClientBootstrapÚClientTlsContextÚDefaultHostResolverÚEventLoopGroupÚTlsContextOptions)ÚS3ClientÚS3RequestTlsModeÚS3RequestType)ÚUNSIGNED)Úurlsplit)ÚConfig)ÚNoCredentialsError)Ú	ArnParserÚInvalidArnException)ÚFULL_OBJECT_CHECKSUM_ARGSÚMB)ÚTransferNotDoneError)ÚBaseTransferFutureÚBaseTransferMeta)ÚTransferManager)ÚCallArgsÚOSUtilsÚcreate_nested_clientÚget_callbacksÚis_s3express_bucketc                 ó¦   € \         f3   \        P                  P                  V 4      p VP	                  4        Ts \         #   \
         d     R # i ; i©N)ÚCRT_S3_PROCESS_LOCKÚawscrtÚs3ÚCrossProcessLockÚacquireÚRuntimeError)ÚnameÚcrt_locks   & Ú0/usr/lib/python3/dist-packages/s3transfer/crt.pyÚacquire_crt_s3_process_lockr,   ;   sS   € ô Ò"Ü—9‘9×-Ñ-¨dÓ3ˆð	Ø×ÑÔð 'ÐÜÐøô ô 	ò ð		ús   ©A ÁAÁATc                ól  € \        V4      p\        V4      p\        Wx4      p	Rp
V'       d   \        P                  M\        P
                  pVeH   \        4       pV'       d   VP                  VR7       MRVn        \        V4      pVP                  4       p
\        VR7      p\        V	V VVVV
VRR7      # )a  
:type region: str
:param region: The region used for signing

:type crt_credentials_provider:
    Optional[awscrt.auth.AwsCredentialsProvider]
:param crt_credentials_provider: CRT AWS credentials provider
    to use to sign requests. If not set, requests will not be signed.

:type num_threads: Optional[int]
:param num_threads: Number of worker threads generated. Default
    is the number of processors in the machine.

:type target_throughput: Optional[int]
:param target_throughput: Throughput target in bytes per second.
    By default, CRT will automatically attempt to choose a target
    throughput that matches the system's maximum network throughput.
    Currently, if CRT is unable to determine the maximum network
    throughput, a fallback target throughput of ``1_250_000_000`` bytes
    per second (which translates to 10 gigabits per second, or 1.16
    gibibytes per second) is used. To set a specific target
    throughput, set a value for this parameter.

:type part_size: Optional[int]
:param part_size: Size, in Bytes, of parts that files will be downloaded
    or uploaded in.

:type use_ssl: boolean
:param use_ssl: Whether or not to use SSL.  By default, SSL is used.
    Note that not all services support non-ssl connections.

:type verify: Optional[boolean/string]
:param verify: Whether or not to verify SSL certificates.
    By default SSL certificates are verified.  You can provide the
    following values:

    * False - do not validate SSL certificates.  SSL will still be
        used (unless use_ssl is False), but SSL certificates
        will not be verified.
    * path/to/cert/bundle.pem - A filename of the CA cert bundle to
        use. Specify this argument if you want to use a custom CA cert
        bundle instead of the default one on your system.
N)Úca_filepathF)Ú provided_throughput_target_bytesT)Ú	bootstrapÚregionÚcredential_providerÚ	part_sizeÚtls_modeÚtls_connection_optionsÚthroughput_target_gbpsÚenable_s3express)r   r
   r   r   ÚENABLEDÚDISABLEDr   Ú&override_default_trust_store_from_pathÚverify_peerr	   Únew_connection_optionsÚ_get_crt_throughput_target_gbpsr   )r1   Úcrt_credentials_providerÚnum_threadsÚtarget_throughputr3   Úuse_sslÚverifyÚevent_loop_groupÚhost_resolverr0   r5   r4   Útls_ctx_optionsÚclient_tls_optionÚtarget_gbpss   &&&&&&&        r+   Úcreate_s3_crt_clientrH   T   sÊ   € ôh & kÓ2ÐÜ'Ð(8Ó9€MÜÐ 0Ó@€IØ!Ð÷ %,Ô× Ò Ô1A×1JÑ1Jð ð ÒÜ+Ó-ˆßØ×BÑBØ"ð Cõ ð +0ˆOÔ'Ü,¨_Ó=ÐØ!2×!IÑ!IÓ!KÐÜ1Ø):ô€Kô ØØØ4ØØØ5Ø*Øô	ð 	ó    c                 óÐ   € V f<   \         P                  P                  4       p\        P	                  RV4       Vf   RpMV ^,          R,          p\        P	                  RV4       V# )Nz-Recommended CRT throughput target in gbps: %sg      $@i Êš;z'Using CRT throughput target in gbps: %s)r$   r%   Ú&get_recommended_throughput_target_gbpsÚloggerÚdebug)r/   rG   s   & r+   r=   r=   ©   s_   € Ø'Ò/Ü—i‘i×FÑFÓHˆÜ�‰Ø;¸[ô	
ð ÒØˆKøð 7¸Õ:¸]ÕJˆÜ
‡L�LÐ:¸KÔHØÐrI   c                   óü   a € ] tR t^»t o ]P
                  t]P                  t]P                  tRt]P                  t	RR lt
R tR tRR ltRR ltRR ltRR	 ltR
 tR tR tR tR tR tRR ltR tR tRtV tR# )ÚCRTTransferManagerTNc                óà   € Vf   \        4       V n        Wn        \        W P                  4      V n        VP
                  V n        . V n        \        P                  ! ^€4      V n
        ^ V n        R# )aö  A transfer manager interface for Amazon S3 on CRT s3 client.

:type crt_s3_client: awscrt.s3.S3Client
:param crt_s3_client: The CRT s3 client, handling all the
    HTTP requests and functions under then hood

:type crt_request_serializer: s3transfer.crt.BaseCRTRequestSerializer
:param crt_request_serializer: Serializer, generates unsigned crt HTTP
    request.

:type osutil: s3transfer.utils.OSUtils
:param osutil: OSUtils object to use for os-related behavior when
    using with transfer manager.
N)r   Ú_osutilÚ_crt_s3_clientÚS3ClientArgsCreatorÚ_s3_args_creatorÚtranslate_crt_exceptionÚ_crt_exception_translatorÚ_future_coordinatorsÚ	threadingÚ	SemaphoreÚ
_semaphoreÚ_id_counter)ÚselfÚcrt_s3_clientÚcrt_request_serializerÚosutils   &&&&r+   Ú__init__ÚCRTTransferManager.__init__Ä   sc   € ð Š>Ü"›9ˆDŒLØ+ÔÜ 3Ø"§L¡Ló!
ˆÔð #×:Ñ:ð 	Ô&ð %'ˆÔ!Ü#×-Ò-¨cÓ2ˆŒàˆÖrI   c                ó   € V # r"   © ©r\   s   &r+   Ú	__enter__ÚCRTTransferManager.__enter__á   s   € ØˆrI   c                ó@   € R pV'       d   RpV P                  V4       R# )FTN©Ú	_shutdown)r\   Úexc_typeÚ	exc_valueÚargsÚcancels   &&&* r+   Ú__exit__ÚCRTTransferManager.__exit__ä   s   € ØˆßØˆFØ�‰�vÖrI   c                ó¶   € Vf   / pVf   / pV P                  W@P                  4       V P                  V4       \        VVVVVR7      pV P	                  RV4      # )N©ÚbucketÚkeyÚfileobjÚ
extra_argsÚsubscribersÚ
get_object)Ú_validate_all_known_argsÚALLOWED_DOWNLOAD_ARGSÚ_validate_if_bucket_supportedr   Ú_submit_transfer)r\   rr   rs   rt   ru   rv   Úcallargss   &&&&&& r+   ÚdownloadÚCRTTransferManager.downloadê   sj   € ð ÒØˆJØÒØˆKØ×%Ñ% j×2LÑ2LÔMØ×*Ñ*¨6Ô2ÜØØØØ!Ø#ô
ˆð ×$Ñ$ \°8Ó<Ð<rI   c                óØ   € Vf   / pVf   / pV P                  W@P                  4       V P                  V4       V P                  V4       \	        VVVVVR7      pV P                  RV4      # )Nrq   Ú
put_object)rx   ÚALLOWED_UPLOAD_ARGSrz   Ú&_validate_checksum_algorithm_supportedr   r{   )r\   rt   rr   rs   ru   rv   r|   s   &&&&&& r+   ÚuploadÚCRTTransferManager.uploadü   sv   € ØÒØˆJØÒØˆKØ×%Ñ% j×2JÑ2JÔKØ×*Ñ*¨6Ô2Ø×3Ñ3°JÔ?ÜØØØØ!Ø#ô
ˆð ×$Ñ$ \°8Ó<Ð<rI   c                ó´   € Vf   / pVf   / pV P                  W0P                  4       V P                  V4       \        VVVVR7      pV P	                  RV4      # )N)rr   rs   ru   rv   Údelete_object)rx   ÚALLOWED_DELETE_ARGSrz   r   r{   )r\   rr   rs   ru   rv   r|   s   &&&&& r+   ÚdeleteÚCRTTransferManager.delete  se   € ØÒØˆJØÒØˆKØ×%Ñ% j×2JÑ2JÔKØ×*Ñ*¨6Ô2ÜØØØ!Ø#ô	
ˆð ×$Ñ$ _°hÓ?Ð?rI   c                ó(   € V P                  V4       R # r"   rh   ©r\   rm   s   &&r+   ÚshutdownÚCRTTransferManager.shutdown  s   € Ø�‰�vÖrI   c                óÄ   € V P                   '       dN   V P                  P                  4        F-  w  r#VP                  V4      pV'       g   K   \	        R V R24      h	  R# R# )z'TransferManager methods do not support z+ resource. Use direct client calls instead.N)Ú VALIDATE_SUPPORTED_BUCKET_VALUESÚ_UNSUPPORTED_BUCKET_PATTERNSÚitemsÚmatchÚ
ValueError)r\   rr   ÚresourceÚpatternr’   s   &&   r+   rz   Ú0CRTTransferManager._validate_if_bucket_supported  sf   € ð ×0×0Ð0Ø%)×%FÑ%F×%LÑ%LÖ%NÑ!�ØŸ™ fÓ-�ß‘5Ü$ØAÀ(Àð LEð Eóð ó &Oñ 1rI   c           	     ód   € V F)  pW29  g   K  \        R V RRP                  V4       24      h	  R# )zInvalid extra_args key 'z', must be one of: z, N)r“   Újoin)r\   ÚactualÚallowedÚkwargs   &&& r+   rx   Ú+CRTTransferManager._validate_all_known_args,  s?   € ÛˆEØÖ#Ü Ø.¨u¨gð 6'Ø'+§y¡y°Ó'9Ð&:ð<óð ó rI   c                óÚ   € VP                  R 4      pVf   R# \        \        P                  P                  P
                  4      pVP                  4       V9  d   \        RV RV 24      hR# )ÚChecksumAlgorithmNzChecksumAlgorithm: z* not supported. Supported algorithms are: )ÚgetÚlistr$   r%   ÚS3ChecksumAlgorithmÚ__members__Úupperr“   )r\   ru   Úchecksum_algorithmÚsupported_algorithmss   &&  r+   r‚   Ú9CRTTransferManager._validate_checksum_algorithm_supported4  su   € Ø'Ÿ^™^Ð,?Ó@ÐØÒ%ÙÜ#¤F§I¡I×$AÑ$A×$MÑ$MÓNÐØ×#Ñ#Ó%Ð-AÔAÜØ%Ð&8Ð%9ð :-Ø-AÐ,BðDóð ñ BrI   c                ó|   € V P                    F+  pVP                  4       '       d   K  VP                  4        K-  	  R # r"   )rW   Údonerm   ©r\   Úcoordinators   & r+   Ú_cancel_transfersÚ$CRTTransferManager._cancel_transfers?  s-   € Ø×4Ô4ˆKØ×#Ñ#×%Ô%Ø×"Ñ"Ö$ó 5rI   c                óL   € V P                    F  pVP                  4        K  	  R # r"   )rW   Úresultr©   s   & r+   Ú_finish_transfersÚ$CRTTransferManager._finish_transfersD  s   € Ø×4Ô4ˆKØ×ÑÖ ó 5rI   c                óL   € V P                    F  pVP                  4        K  	  R # r"   )rW   Ú%wait_until_on_done_callbacks_completer©   s   & r+   Ú_wait_transfers_doneÚ'CRTTransferManager._wait_transfers_doneH  s   € Ø×4Ô4ˆKØ×=Ñ=Ö?ó 5rI   c                óü   € V'       d   V P                  4         V P                  4        V P	                  4        R #   \         d    T P                  4         L/\         d     L;i ; i  T P	                  4        i ; ir"   )r«   r¯   ÚKeyboardInterruptÚ	Exceptionr³   r‹   s   &&r+   ri   ÚCRTTransferManager._shutdownL  sg   € ßØ×"Ñ"Ô$ð	(Ø×"Ñ"Ô$ð ×%Ñ%Ö'øô !ô 	%Ø×"Ñ"Ö$Üô 	Ùð	ûð ×%Ñ%Õ'ús3   š< ¼A&ÁA) ÁA&Á"A&Á#A) Á%A&Á&A) Á)A;c                ó:   € V P                   P                  4        R # r"   )rZ   Úrelease©r\   Úkwargss   &,r+   Ú_release_semaphoreÚ%CRTTransferManager._release_semaphoreY  s   € Ø�‰×ÑÖ!rI   c                ó  € V P                   .p\        V P                  V P                  R 7      pR\	        V P                  V4      RV/p\        R	/ VB p\        V4      pVP                  V4        V P                  P                  4        V P                  P                  VR4      pV! 4        V P                  P                  VVVVV4      p	V P                  P                  ! R	/ V	B p
VP                  V
4       V P$                  P                  V4       V ;P                  ^,          un        V#   \          dD   pTP#                  TR4       T P                  P                  TRTR7      pT! TR7        Rp?LRp?ii ; i)
)Útransfer_idÚexception_translatorÚmetarª   ÚqueuedTr¨   )Úafter_subscribers)ÚerrorNrc   )r½   ÚCRTTransferCoordinatorr[   rV   ÚCRTTransferMetaÚCRTTransferFutureÚAfterDoneHandlerÚappendrZ   r'   rT   Úget_crt_callbackÚget_make_request_argsrR   Úmake_requestÚset_s3_requestr·   Úset_exceptionrW   )r\   Úrequest_typeÚ	call_argsÚon_done_after_callsrª   Ú
componentsÚfutureÚ	afterdoneÚ	on_queuedÚcrt_callargsÚcrt_s3_requestÚeÚon_dones   &&&          r+   r{   Ú#CRTTransferManager._submit_transfer\  sw  € Ø#×6Ñ6Ð7ÐÜ,Ø×(Ñ(Ø!%×!?Ñ!?ô
ˆð
 ”O D×$4Ñ$4°iÓ@Ø˜;ð
ˆ
ô #Ñ0 ZÑ0ˆÜ$ [Ó1ˆ	Ø×"Ñ" 9Ô-ð	7Ø�O‰O×#Ñ#Ô%Ø×-Ñ-×>Ñ>Ø˜óˆIñ ŒKØ×0Ñ0×FÑFØØØØØ#óˆLð "×0Ñ0×=Ò=ÑMÀÑMˆNð ×&Ñ& ~Ô6Ø×!Ñ!×(Ñ(¨Ô5à×Ò˜AÕÕØˆøô ô 	Ø×%Ñ% a¨Ô.Ø×+Ñ+×<Ñ<Ø˜Ð2Eð =ó ˆGñ ˜!×Òûð	ús   Á1A8D0 Ä0E>Ä;9E9Å9E>)rV   rR   rW   r[   rQ   rT   rZ   r"   ©NN©F)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   ry   r�   r‡   r�   r�   r`   re   rn   r}   rƒ   rˆ   rŒ   rz   rx   r‚   r«   r¯   r³   ri   r½   r{   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r+   rO   rO   »   s’   ø‡ € Ø+×AÑAÐØ)×=Ñ=ÐØ)×=Ñ=Ðà'+Ð$à#2×#OÑ#OÐ ôò:òô=ô$=ô"@ôòòò	ò%ò
!ò@ô(ò"÷'ð 'rI   rO   c                   ó^   a € ] tR tRt o RtR	R lt]R 4       t]R 4       t]R 4       t	Rt
V tR# )
rÇ   i†  z*Holds metadata about the CRTTransferFutureNc                ó,   € Wn         W n        / V n        R # r"   )Ú_transfer_idÚ
_call_argsÚ_user_context)r\   rÀ   rÑ   s   &&&r+   r`   ÚCRTTransferMeta.__init__‰  s   € Ø'ÔØ#ŒØˆÖrI   c                ó   € V P                   # r"   )ré   rd   s   &r+   rÑ   ÚCRTTransferMeta.call_argsŽ  s   € à�‰ÐrI   c                ó   € V P                   # r"   )rè   rd   s   &r+   rÀ   ÚCRTTransferMeta.transfer_id’  s   € à× Ñ Ð rI   c                ó   € V P                   # r"   )rê   rd   s   &r+   Úuser_contextÚCRTTransferMeta.user_context–  s   € à×!Ñ!Ð!rI   )ré   rè   rê   rÜ   )rÞ   rß   rà   rá   Ú__doc__r`   ÚpropertyrÑ   rÀ   rñ   râ   rã   rä   s   @r+   rÇ   rÇ   †  sI   ø‡ € Ù4ô ð
 ñó ðð ñ!ó ð!ð ñ"ó ö"rI   rÇ   c                   óV   a € ] tR tRt o R
R lt]R 4       tR tRR ltR t	R t
R	tV tR# )rÈ   i›  Nc                óD   € Wn         Vf   \        4       V n         W n        R# )a2  The future associated to a submitted transfer request via CRT S3 client

:type meta: s3transfer.crt.CRTTransferMeta
:param meta: The metadata associated to the transfer future.

:type coordinator: s3transfer.crt.CRTTransferCoordinator
:param coordinator: The coordinator associated to the transfer future.
N)Ú_metarÇ   Ú_coordinator)r\   rÂ   rª   s   &&&r+   r`   ÚCRTTransferFuture.__init__œ  s   € ð Œ
ØŠ<Ü(Ó*ˆDŒJØ'ÖrI   c                ó   € V P                   # r"   )r÷   rd   s   &r+   rÂ   ÚCRTTransferFuture.metaª  s   € à�z‰zÐrI   c                ó6   € V P                   P                  4       # r"   )rø   r¨   rd   s   &r+   r¨   ÚCRTTransferFuture.done®  s   € Ø× Ñ ×%Ñ%Ó'Ð'rI   c                ó<   € V P                   P                  V4       R # r"   )rø   r®   ©r\   Útimeouts   &&r+   r®   ÚCRTTransferFuture.result±  s   € Ø×Ñ× Ñ  Ö)rI   c                ó:   € V P                   P                  4        R # r"   )rø   rm   rd   s   &r+   rm   ÚCRTTransferFuture.cancel´  s   € Ø×Ñ× Ñ Ö"rI   c                ó‚   € V P                  4       '       g   \        R4      hV P                  P                  VRR7       R# )z!Sets the exception on the future.z?set_exception can only be called once the transfer is complete.T)ÚoverrideN)r¨   r   rø   rÏ   ©r\   Ú	exceptions   &&r+   rÏ   ÚCRTTransferFuture.set_exception·  s:   € à�y‰y�{Š{Ü&ðóð ð 	×Ñ×'Ñ'¨	¸DÐ'ÖArI   )rø   r÷   rÜ   r"   )rÞ   rß   rà   rá   r`   rô   rÂ   r¨   r®   rm   rÏ   râ   rã   rä   s   @r+   rÈ   rÈ   ›  s9   ø‡ € ô(ð ñó ðò(ô*ò#÷Bð BrI   rÈ   c                   ó,   a € ] tR tRt o R tR tRtV tR# )ÚBaseCRTRequestSerializeriÁ  c                ó   € \        R4      h)a4  Serialize CRT HTTP requests.

:type transfer_type: string
:param transfer_type: the type of transfer made,
    e.g 'put_object', 'get_object', 'delete_object'

:type future: s3transfer.crt.CRTTransferFuture

:rtype: awscrt.http.HttpRequest
:returns: An unsigned HTTP request to be used for the CRT S3 client
zserialize_http_request()©ÚNotImplementedError)r\   Útransfer_typerÔ   s   &&&r+   Úserialize_http_requestÚ/BaseCRTRequestSerializer.serialize_http_requestÂ  s   € ô "Ð"<Ó=Ð=rI   c                ó   € \        R 4      h)ztranslate_crt_exception()r  r  s   &&r+   rU   Ú0BaseCRTRequestSerializer.translate_crt_exceptionÐ  s   € Ü!Ð"=Ó>Ð>rI   rc   N)rÞ   rß   rà   rá   r  rU   râ   rã   rä   s   @r+   r
  r
  Á  s   ø‡ € ò>÷?ð ?rI   r
  c                   ól   a € ] tR tRt o RR ltR tR tR tR tR t	R	 t
R
 tR tR tR tR tRtV tR# )ÚBotocoreCRTRequestSerializeriÔ  Nc                ó2  € Wn         Vf   / pV P                  W4       \        V3/ VB V n        V P                  P                  P
                  P                  RV P                  4       V P                  P                  P
                  P                  RV P                  4       V P                  P                  P
                  P                  RV P                  4       V P                  P                  P
                  P                  RV P                  4       R# )a‚  Serialize CRT HTTP request using botocore logic
It also takes into account configuration from both the session
and any keyword arguments that could be passed to
`Session.create_client()` when serializing the request.

:type session: botocore.session.Session

:type client_kwargs: Optional[Dict[str, str]])
:param client_kwargs: The kwargs for the botocore
    s3 client initialization.
Nzrequest-created.s3.*zafter-call.s3.*zbefore-send.s3.*zbefore-call.s3.*)Ú_sessionÚ_resolve_client_configr   Ú_clientrÂ   ÚeventsÚregisterÚ_capture_http_requestÚ+_change_response_to_serialized_http_requestÚ_make_fake_http_responseÚ_remove_checksum_context)r\   ÚsessionÚclient_kwargss   &&&r+   r`   Ú%BotocoreCRTRequestSerializer.__init__Õ  sÝ   € ð  ŒØÒ ØˆMØ×#Ñ# GÔ;Ü+¨GÑE°}ÑEˆŒØ�‰×Ñ× Ñ ×)Ñ)Ø" D×$>Ñ$>ô	
ð 	�‰×Ñ× Ñ ×)Ñ)Ø˜t×OÑOô	
ð 	�‰×Ñ× Ñ ×)Ñ)Ø × =Ñ =ô	
ð 	�‰×Ñ× Ñ ×)Ñ)Ø × =Ñ =ö	
rI   c                óÚ   € R pVP                  4       '       d   VP                  4       pRV9   d
   VR,          p\        \        R7      pV'       d   VP                  V4      pWBR&   RVR&   R # )NÚconfig)Úsignature_versionr%   Úservice_name)Úget_default_client_configr   r   Úmerge)r\   r  r   Úuser_provided_configÚclient_configs   &&&  r+   r  Ú3BotocoreCRTRequestSerializer._resolve_client_configó  sh   € Ø#ÐØ×,Ñ,×.Ò.Ø#*×#DÑ#DÓ#FÐ Ø�}Ô$Ø#0°Õ#:Ð ä´Ô:ˆßØ0×6Ñ6°}ÓEˆMØ"/�hÑØ(,ˆ�nÓ%rI   c                ó  € \        VP                  4      pVP                  pVP                  '       d   V R VP                   2p. pVP                  P                  4        FL  w  rV\        V\        4      '       d   VP                  WV34       K/  VP                  V\        VR4      34       KN  	  \        P                  P                  V4      p\        P                  P                  VP                  VVVP                  R7      pV# )Ú?zutf-8)ÚmethodÚpathÚheadersÚbody_stream)r   Úurlr.  Úqueryr/  r‘   Ú
isinstanceÚstrrÊ   r$   ÚhttpÚHttpHeadersÚHttpRequestr-  Úbody)	r\   Úaws_requestÚ	url_partsÚcrt_pathÚheaders_listr)   ÚvalueÚcrt_headersÚcrt_requests	   &&       r+   Ú_crt_request_from_aws_requestÚ:BotocoreCRTRequestSerializer._crt_request_from_aws_request   sÝ   € Ü˜[Ÿ_™_Ó-ˆ	Ø—>‘>ˆØ�?�?ˆ?Ø"˜ 1 Y§_¡_Ð$5Ð6ˆHØˆØ&×.Ñ.×4Ñ4Ö6‰KˆDÜ˜%¤×%Ò%Ø×#Ñ# T MÖ2à×#Ñ# T¬3¨u°gÓ+>Ð$?Ö@ñ	 7ô —k‘k×-Ñ-¨lÓ;ˆä—k‘k×-Ñ-Ø×%Ñ%ØØØ#×(Ñ(ð	 .ó 
ˆð ÐrI   c                óF  € V P                  V4      pVP                  P                  R 4      f<   \        VP                  4      pVP                  P                  R VP                  4       VP                  P                  R4      e   VP                  P                  R4       VP                  P                  R4      f+   VP                  f   VP                  P                  RR4       VP                  P                  R4      e   VP                  P                  R4       V# )ÚhostzContent-MD5zContent-LengthÚ0zTransfer-Encoding)
r@  r/  rŸ   r   r1  ÚsetÚnetlocÚremover8  Úadd)r\   Úbotocore_http_requestr?  r:  s   &&  r+   Ú_convert_to_crt_http_requestÚ9BotocoreCRTRequestSerializer._convert_to_crt_http_request  sô   € à×8Ñ8Ð9NÓOˆØ×Ñ×"Ñ" 6Ó*Ò2ä Ð!6×!:Ñ!:Ó;ˆIØ×Ñ×#Ñ# F¨I×,<Ñ,<Ô=Ø×Ñ×"Ñ" =Ó1Ò=Ø×Ñ×&Ñ& }Ô5ð ×Ñ×"Ñ"Ð#3Ó4Ò<Ø$×)Ñ)Ò1Ø×#Ñ#×'Ñ'Ð(8¸#Ô>ð ×Ñ×"Ñ"Ð#6Ó7ÒCØ×Ñ×&Ñ&Ð':Ô;àÐrI   c                ó"   € WP                   R &   R# )Úhttp_requestN)Úcontext©r\   Úrequestr¼   s   &&,r+   r  Ú2BotocoreCRTRequestSerializer._capture_http_request4  s   € Ø*1�‰˜Ó'rI   c                ó>   € VR ,          pVP                  4       VR&   R# )rM  ÚHTTPRequestN)Úprepare)r\   rN  Úparsedr¼   rP  s   &&&, r+   r  ÚHBotocoreCRTRequestSerializer._change_response_to_serialized_http_request7  s   € ð ˜.Õ)ˆØ '§¡Ó 1ˆˆ}ÓrI   c                óX   € \         P                  P                  R ^È/ \        R4      4      # )NrI   )ÚbotocoreÚ
awsrequestÚAWSResponseÚFakeRawResponserO  s   &&,r+   r  Ú5BotocoreCRTRequestSerializer._make_fake_http_response=  s,   € Ü×"Ñ"×.Ñ.ØØØÜ˜CÓ ó	
ð 	
rI   c                óŒ   € \        V P                  V4      ! RR VP                  RVP                  /VP                  B R,          # )ÚBucketÚKeyrS  rc   )Úgetattrr  rr   rs   ru   )r\   Úclient_methodrÑ   s   &&&r+   Ú_get_botocore_http_requestÚ7BotocoreCRTRequestSerializer._get_botocore_http_requestE  sJ   € Ü�t—|‘| ]Ô3ñ 
Ø×#Ñ#ð
Ø)2¯©ð
Ø:C×:NÑ:Nñ
à
õð 	rI   c                ór   € V P                  WP                  P                  4      pV P                  V4      pV# r"   )rb  rÂ   rÑ   rJ  )r\   r  rÔ   rI  r?  s   &&&  r+   r  Ú3BotocoreCRTRequestSerializer.serialize_http_requestJ  s9   € Ø $× ?Ñ ?ØŸ;™;×0Ñ0ó!
Ðð ×7Ñ7Ð8MÓNˆØÐrI   c                ó|   € \        V\        P                  P                  4      '       d   V P	                  V4      # R # r"   )r3  r$   r%   ÚS3ResponseErrorÚ _translate_crt_s3_response_errorr  s   &&r+   rU   Ú4BotocoreCRTRequestSerializer.translate_crt_exceptionQ  s-   € Ü�i¤§¡×!:Ñ!:×;Ò;Ø×8Ñ8¸ÓCÐCárI   c                óZ  € VP                   pVR 8  d   R# VP                   UUu/ uF  w  r4W4bK	  	  pppVP                  pVe=   V P                  P                  P
                  pVP                  V4      P                  pMRpR\        P                  P                  V4      RVRVP                  /p	V P                  P                  P                  W˜R7      p
V
P                  R/ 4      P                  R4      pV P                  P                  P!                  V4      pV! W¦R7      # u uppi )	i-  Nr/  Ústatus_coder8  )ÚshapeÚErrorÚCode)Úoperation_name)rk  r/  ro  r  rÂ   Úservice_modelÚoperation_modelÚoutput_shaperX  rY  ÚHeadersDictr8  Ú_response_parserÚparserŸ   Ú
exceptionsÚ	from_code)r\   Ús3_response_errorrk  ÚkÚvr/  ro  rp  rl  Úresponse_dictÚparsed_responseÚ
error_codeÚerror_classs   &&           r+   rh  Ú=BotocoreCRTRequestSerializer._translate_crt_s3_response_errorW  s  € Ø'×3Ñ3ˆØ˜Ôñ à$5×$=Ò$=Ô>Ñ$=™D˜A�1’4Ñ$=ˆÑ>Ø*×9Ñ9ˆØÒ%Ø ŸL™L×-Ñ-×;Ñ;ˆMØ!×1Ñ1°.ÓA×NÑN‰EàˆEð ”x×*Ñ*×6Ñ6°wÓ?Ø˜;ØÐ%×*Ñ*ð
ˆð
 Ÿ,™,×7Ñ7×=Ñ=Øð >ó 
ˆð %×(Ñ(¨°"Ó5×9Ñ9¸&ÓAˆ
Ø—l‘l×-Ñ-×7Ñ7¸
ÓCˆÙ˜?ÔJÐJùó' ?s   ¥D'c                óB   € VP                  R / 4      pRV9   d   VR R# R# )rN  ÚchecksumN)rŸ   )r\   Úparamsr¼   Úrequest_contexts   &&, r+   r  Ú5BotocoreCRTRequestSerializer._remove_checksum_contexts  s'   € Ø Ÿ*™* Y°Ó3ˆØ˜Ô(Ø 
Ò+ñ )rI   )r  r  r"   )rÞ   rß   rà   rá   r`   r  r@  rJ  r  r  r  rb  r  rU   rh  r  râ   rã   rä   s   @r+   r  r  Ô  sG   ø‡ € ô
ò<-òò,ò<2ò2ò
òò
òòK÷8,ð ,rI   r  c                   ó*   a € ] tR tRt o RR ltRtV tR# )r[  iy  Nc              #  óN   "  €  V P                  V4      pV'       g   R# Vx € K"  5i)TN)Úread)r\   ÚamtÚdecode_contentÚchunks   &&& r+   ÚstreamÚFakeRawResponse.streamz  s    é € ØØ—I‘I˜c“NˆEßÙØŒKùs   ‚%�%rc   )i   N)rÞ   rß   rà   rá   r‹  râ   rã   rä   s   @r+   r[  r[  y  s   ø‡ € ÷ò rI   r[  c                   ó8   a € ] tR tRt o R tR tR tR tRtV t	R# )ÚBotocoreCRTCredentialsWrapperi‚  c                ó   € Wn         R # r"   ©Ú_resolved_credentials)r\   Úresolved_botocore_credentialss   &&r+   r`   Ú&BotocoreCRTCredentialsWrapper.__init__ƒ  s   € Ø%BÖ"rI   c                ó”   € V P                  4       P                  4       p\        VP                  VP                  VP
                  4      # r"   )Ú_get_credentialsÚget_frozen_credentialsr   Ú
access_keyÚ
secret_keyÚtoken)r\   Úcredentialss   & r+   Ú__call__Ú&BotocoreCRTCredentialsWrapper.__call__†  s?   € Ø×+Ñ+Ó-×DÑDÓFˆÜØ×"Ñ" K×$:Ñ$:¸K×<MÑ<Mó
ð 	
rI   c                ó.   € \         P                  ! V 4      # r"   )r   Únew_delegaterd   s   &r+   Úto_crt_credentials_providerÚ9BotocoreCRTCredentialsWrapper.to_crt_credentials_providerŒ  s   € Ü%×2Ò2°4Ó8Ð8rI   c                óJ   € V P                   f   \        4       hV P                   # r"   )r‘  r   rd   s   &r+   r•  Ú.BotocoreCRTCredentialsWrapper._get_credentials�  s#   € Ø×%Ñ%Ò-Ü$Ó&Ð&Ø×)Ñ)Ð)rI   r�  N)
rÞ   rß   rà   rá   r`   r›  rŸ  r•  râ   rã   rä   s   @r+   rŽ  rŽ  ‚  s   ø‡ € òCò
ò9÷*ð *rI   rŽ  c                   óz   a € ] tR tRt o RtRR lt]R 4       tR tRR lt	RR lt
R	 tRR
 ltR tR tR tRtV tR# )rÆ   i•  z-A helper class for managing CRTTransferFutureNc                ó®   € Wn         W0n        W n        \        P                  ! 4       V n        R V n        R V n        \        P                  ! 4       V n	        R # r"   )
rÀ   Ú_exception_translatorÚ_s3_requestrX   ÚLockÚ_lockÚ
_exceptionÚ_crt_futureÚEventÚ_done_event)r\   rÀ   Ú
s3_requestrÁ   s   &&&&r+   r`   ÚCRTTransferCoordinator.__init__˜  sB   € ð 'ÔØ%9Ô"Ø%ÔÜ—^’^Ó%ˆŒ
ØˆŒØˆÔÜ$Ÿ?š?Ó,ˆÖrI   c                ó   € V P                   # r"   )r¦  rd   s   &r+   r­  Ú!CRTTransferCoordinator.s3_request£  s   € à×ÑÐrI   c                ó:   € V P                   P                  4        R # r"   )r¬  rE  rd   s   &r+   Úset_done_callbacks_completeÚ2CRTTransferCoordinator.set_done_callbacks_complete§  s   € Ø×Ñ×ÑÖrI   c                ó<   € V P                   P                  V4       R # r"   )r¬  Úwaitrÿ   s   &&r+   r²   Ú<CRTTransferCoordinator.wait_until_on_done_callbacks_completeª  s   € Ø×Ñ×Ñ˜gÖ&rI   c                ó°   € V P                   ;_uu_ 4        V P                  4       '       d	   V'       d   Wn        R R R 4       R #   + '       g   i     R # ; ir"   )r¨  r¨   r©  )r\   r  r  s   &&&r+   rÏ   Ú$CRTTransferCoordinator.set_exception­  s)   € Ø�Z�Z‹ZØ—9‘9—;’;§(Ø"+”÷ �Z�ZŠZús   •A´AÁA	c                ób   € V P                   '       d   V P                   P                  4        R # R # r"   )r¦  rm   rd   s   &r+   rm   ÚCRTTransferCoordinator.cancel²  s%   € Ø××ÐØ×Ñ×#Ñ#Ö%ñ rI   c                ó¬  € V P                   '       d   V P                   h V P                  P                  V4       T P                  '       d
   R T n        R # R #   \         d.    T P	                  4        T P                  P                  T4       h \
         d   pT P                  T4        R p?LtR p?ii ; i  T P                  '       d	   R T n        i i ; ir"   )r©  rª  r®   r¶   rm   r·   Úhandle_exceptionr¦  )r\   r   rÙ   s   && r+   r®   ÚCRTTransferCoordinator.result¶  s°   € Ø�?�?ˆ?Ø—/‘/Ð!ð
	(Ø×Ñ×#Ñ# GÔ,ð ××ÐØ#'�Ö ñ  øô !ô 	Ø�K‰KŒMØ×Ñ×#Ñ# GÔ,ØÜô 	%Ø×!Ñ! !×$Ñ$ûð	%ûð ××ÐØ#'�Õ ð  ús/    A Á?B4ÂB4ÂB/Â*B7 Â/B4Â4B7 Â7Cc                ó¼   € R pV P                   '       d    V P                  V4      pVe   W!hVh  \         d"   p\        P                  RTR7        R p?L/R p?ii ; i)NzUnable to translate exception.)Úexc_info)r¥  r·   rL   rM   )r\   ÚexcÚtranslated_excrÙ   s   &&  r+   r¼  Ú'CRTTransferCoordinator.handle_exceptionÅ  sc   € ØˆØ×%×%Ð%ðØ!%×!;Ñ!;¸CÓ!@�ð Ò%Ø Ð)àˆIøô ô ô —‘Ð=È�ÔJÜûð	ús   –/ ¯AºAÁAc                óV   € V P                   f   R# V P                   P                  4       # )NF)rª  r¨   rd   s   &r+   r¨   ÚCRTTransferCoordinator.doneÔ  s&   € Ø×ÑÒ#ÙØ×Ñ×$Ñ$Ó&Ð&rI   c                óH   € Wn         V P                   P                  V n        R # r"   )r¦  Úfinished_futurerª  )r\   r­  s   &&r+   rÎ   Ú%CRTTransferCoordinator.set_s3_requestÙ  s   € Ø%ÔØ×+Ñ+×;Ñ;ˆÖrI   )rª  r¬  r©  r¥  r¨  r¦  rÀ   )NNNr"   rÝ   )rÞ   rß   rà   rá   ró   r`   rô   r­  r²  r²   rÏ   rm   r®   r¼  r¨   rÎ   râ   rã   rä   s   @r+   rÆ   rÆ   •  sN   ø‡ € Ù7ô	-ð ñ ó ð òô'ô,ò
&ô(òò'÷
<ð <rI   rÆ   c                   óH   a € ] tR tRt o R tR tR
R ltR tR tR t	R	t
V tR# )rS   iÞ  c                ó   € Wn         W n        R # r"   )Ú_request_serializerÚ	_os_utils)r\   r^   Úos_utilss   &&&r+   r`   ÚS3ClientArgsCreator.__init__ß  s   € Ø#9Ô Ø!ŽrI   c           	     óR   € \        V R V 2V P                  4      pV! VVVV. VR7      # )Ú_get_make_request_args_©rÐ   rÑ   rª   rÔ   Úon_done_before_callsrÒ   )r`  Ú_default_get_make_request_args)r\   rÐ   rÑ   rª   rÔ   rÒ   Úrequest_args_handlers   &&&&&& r+   rÌ   Ú)S3ClientArgsCreator.get_make_request_argsã  sF   € ô  'ØØ% l ^Ð4Ø×/Ñ/ó 
Ðñ
 $Ø%ØØ#ØØ!#Ø 3ô
ð 	
rI   Nc                ó    aaaa€ VVVV3R  lpV# )c                  óº   <€ . pSe
   VS,          pV\        SS4      ,          pSe
   VS,          pV F$  pSR8X  d   V! V ^ ,          R7       K  V! V / VB  K&  	  R # )NÚprogress)Úbytes_transferred)r   )rl   r¼   Úcallbacks_listÚcallbackrÄ   Úbefore_subscribersÚcallback_typerÔ   s   *,  €€€€r+   Úinvoke_all_callbacksÚBS3ClientArgsCreator.get_crt_callback.<locals>.invoke_all_callbacksû  sh   ø€ ØˆNØ!Ò-ØÐ"4Õ4�Øœm¨F°MÓBÕBˆNØ Ò,ØÐ"3Õ3�Û*�ð ! JÔ.Ù¨t°A­w×7á˜dÐ- fÔ-ó +rI   rc   )r\   rÔ   rÜ  rÛ  rÄ   rÝ  s   &ffff r+   rË   Ú$S3ClientArgsCreator.get_crt_callbackô  s   û€ ÷	.ð 	.ð  $Ð#rI   c           	     óô  a€ R p\        SP                  \        4      '       d8   SP                  pV P                  P	                  V4      pVSP
                  R&   MSP                  SP
                  R&   R p	\        ;QJ d#    V3R l\         4       F  '       g   K   RM	  RM! V3R l\         4       4      '       g�   SP
                  P                  RR4      P                  4       p
\        P                  P                  \        P                  P                  V
,          \        P                  P                  P                  R7      p	R	SP
                  R
&   V P!                  VSVVVVR7      pW{R&   W›R&   V# )NÚContentLengthÚBodyc              3   óB   <"  € T F  pVSP                   9   x € K  	  R # 5ir"   )ru   )Ú.0Úchecksum_argrÑ   s   & €r+   Ú	<genexpr>ÚHS3ClientArgsCreator._get_make_request_args_put_object.<locals>.<genexpr>  s#   øé € ð 
á 9�ð ˜I×0Ñ0Ö0Û 9ùs   ƒTFrž   ÚCRC32)Ú	algorithmÚlocationzoverride-to-be-removedÚ
ContentMD5rÐ  Úsend_filepathÚchecksum_config)r3  rt   r4  rË  Úget_file_sizeru   Úanyr   Úpopr£   r$   r%   ÚS3ChecksumConfigr¡   ÚS3ChecksumLocationÚTRAILERrÒ  )r\   rÐ   rÑ   rª   rÔ   rÑ  rÒ   rì  Údata_lenrí  r¤   Úmake_request_argss   &&f&&&&     r+   Ú!_get_make_request_args_put_objectÚ5S3ClientArgsCreator._get_make_request_args_put_object  sS  ø€ ð ˆÜ�i×'Ñ'¬×-Ò-Ø%×-Ñ-ˆMØ—~‘~×3Ñ3°MÓBˆHØ4<ˆI× Ñ  Ò1à+4×+<Ñ+<ˆI× Ñ  Ñ(àˆß‹sô 
å 9ó
�s�sŠsô 
å 9ó
÷ 
ò 
ð "+×!5Ñ!5×!9Ñ!9Ø# Wó"ç‰e‹gð ô %Ÿi™i×8Ñ8Ü Ÿ)™)×7Ñ7Ð8JÕKÜŸ™×5Ñ5×=Ñ=ð 9ó ˆOð .Fˆ	×Ñ˜\Ñ*à ×?Ñ?Ø%ØØ#ØØ!5Ø 3ð @ó 
Ðð .;˜/Ñ*Ø/>Ð+Ñ,Ø Ð rI   c           	     ó˜  € R pR p\         P                  P                  RR7      p	\        VP                  \
        4      '       dN   VP                  p
V P                  P                  V
4      pVP                  \        W:WpP                  4      4       M\        VP                  4      pV P                  VVVVVVR7      pW{R&   W‹R&   W›R&   V# )NT)Úvalidate_responserÐ  Úrecv_filepathÚon_bodyrí  )r$   r%   rñ  r3  rt   r4  rË  Úget_temp_filenamerÊ   ÚRenameTempFileHandlerÚOnBodyFileObjWriterrÒ  )r\   rÐ   rÑ   rª   rÔ   rÑ  rÒ   rú  rû  rí  Úfinal_filepathrõ  s   &&&&&&&     r+   Ú!_get_make_request_args_get_objectÚ5S3ClientArgsCreator._get_make_request_args_get_object<  sÒ   € ð ˆØˆÜ Ÿ)™)×4Ñ4ÀtÐ4ÓLˆÜ�i×'Ñ'¬×-Ò-Ø&×.Ñ.ˆNØ ŸN™N×<Ñ<¸^ÓLˆMØ ×'Ñ'Ü%Ø°ÇÁóõô *¨)×*;Ñ*;Ó<ˆGà ×?Ñ?Ø%ØØ#ØØ!5Ø 3ð @ó 
Ðð .;˜/Ñ*Ø'.˜)Ñ$Ø/>Ð+Ñ,Ø Ð rI   c                óº  € R V P                   P                  W4      R\        \        VP	                  4       \        P
                  4      RV P                  VRWV4      RV P                  VR4      /pVR,          \        P
                  8X  d+   RP                  R VP                  R4       4       4      VR	&   \        4       pVP                  VP                  4      ;p	'       d?   V	R
,          R8X  d1   \        \        P                  RRRR7      VR&   V	R,          Vn        V# \        VP                  4      '       d    \        \        P                   RRR7      VR&   V# )rP  ÚtyperÚ   r¨   Úon_progressr×  Ú c              3   ó@   "  € T F  qP                  4       x € K  	  R # 5ir"   )Útitle)rä  Úxs   & r+   ræ  ÚES3ClientArgsCreator._default_get_make_request_args.<locals>.<genexpr>y  s   é € ð :Ù#:˜a—‘—	�	Ó#:ùs   ‚Ú_ro  r1   Ú*F)ré  r1   Úuse_double_uri_encodeÚshould_normalize_uri_pathÚsigning_configÚresource_name)ré  r  r  )rÊ  r  r`  r   r£   ÚDEFAULTrË   r˜   ÚsplitÚ_S3ArnParamHandlerÚ
handle_arnrr   r   r   ÚV4_ASYMMETRICr    ÚV4_S3EXPRESS)
r\   rÐ   rÑ   rª   rÔ   rÑ  rÒ   rõ  Úarn_handlerÚaccesspoint_arn_detailss
   &&&&&&&   r+   rÒ  Ú2S3ClientArgsCreator._default_get_make_request_args`  sf  € ð �t×/Ñ/×FÑFØóð ”GÜ˜|×1Ñ1Ó3´]×5JÑ5Jóð �t×,Ñ,Ø˜Ð 4óð ˜4×0Ñ0°¸ÓDð
Ðð ˜VÕ$¬×(=Ñ(=Ô=Ø24·'±'ñ :Ø#/×#5Ñ#5°cÔ#:ó:ó 3ÐÐ.Ñ/ô )Ó*ˆà'2×'=Ñ'=¸i×>NÑ>NÓ'OÐOÐ#ÖOØ% hÕ/°2Ô5ô
 3CÜ-×;Ñ;ØØ&+Ø*/ô	3ÐÐ.Ñ/ð  7°ÕGˆIÔð !Ð ô ! ×!1Ñ!1×2Ò2ô 3CÜ-×:Ñ:Ø&+Ø*/ô3ÐÐ.Ñ/ð
 !Ð rI   )rË  rÊ  rÜ   )rÞ   rß   rà   rá   r`   rÌ   rË   rö  r   rÒ  râ   rã   rä   s   @r+   rS   rS   Þ  s*   ø‡ € ò"ò
ô"$ò2-!ò^"!÷H4!ð 4!rI   rS   c                   ó,   a € ] tR tRt o R tR tRtV tR# )rý  i—  c                ó6   € Wn         W n        W0n        W@n        R # r"   )rø   Ú_final_filenameÚ_temp_filenamerQ   )r\   rª   Úfinal_filenameÚtemp_filenamer_   s   &&&&&r+   r`   ÚRenameTempFileHandler.__init__˜  s   € Ø'ÔØ-ÔØ+ÔØŽrI   c                óŠ  € VR ,          pV'       d(   V P                   P                  V P                  4       R#  V P                   P                  V P                  V P                  4       R#   \
         dL   pT P                   P                  T P                  4       T P                  P                  T4        Rp?R# Rp?ii ; i)rÅ   N)rQ   Úremove_filer  Úrename_filer  r·   rø   rÏ   )r\   r¼   rÅ   rÙ   s   &,  r+   r›  ÚRenameTempFileHandler.__call__ž  s�   € Ø�w•ˆßØ�L‰L×$Ñ$ T×%8Ñ%8Ö9ð3Ø—‘×(Ñ(Ø×'Ñ'¨×)=Ñ)=öøô ô 3Ø—‘×(Ñ(¨×)<Ñ)<Ô=à×!Ñ!×/Ñ/°×2Ò2ûð3ús   º0A, Á,CÁ7A B=Â=C)rø   r  rQ   r  N©rÞ   rß   rà   rá   r`   r›  râ   rã   rä   s   @r+   rý  rý  —  s   ø‡ € ò÷3ð 3rI   rý  c                   ó,   a € ] tR tRt o R tR tRtV tR# )rÉ   i­  c                ó   € Wn         R # r"   ©rø   r©   s   &&r+   r`   ÚAfterDoneHandler.__init__®  s   € Ø'ÖrI   c                ó:   € V P                   P                  4        R # r"   )rø   r²  r»   s   &,r+   r›  ÚAfterDoneHandler.__call__±  s   € Ø×Ñ×5Ñ5Ö7rI   r'  Nr$  rä   s   @r+   rÉ   rÉ   ­  s   ø‡ € ò(÷8ð 8rI   rÉ   c                   ó,   a € ] tR tRt o R tR tRtV tR# )rþ  iµ  c                ó   € Wn         R # r"   ©Ú_fileobj)r\   rt   s   &&r+   r`   ÚOnBodyFileObjWriter.__init__¶  s   € ØŽrI   c                ó<   € V P                   P                  V4       R # r"   )r.  Úwrite)r\   rŠ  r¼   s   &&,r+   r›  ÚOnBodyFileObjWriter.__call__¹  s   € Ø�‰×Ñ˜EÖ"rI   r-  Nr$  rä   s   @r+   rþ  rþ  µ  s   ø‡ € ò ÷#ð #rI   rþ  c                   ó`   a € ] tR tRt o Rt]P                  ! R4      tR tR t	R t
R tRtV tR	# )
r  i½  züPartial port of S3ArnParamHandler from botocore.

This is used to make a determination on MRAP accesspoints for signing
purposes. This should be safe to remove once we properly integrate auth
resolution from Botocore into the CRT transfer integration.
zA^(?P<resource_type>accesspoint|outpost)[/:](?P<resource_name>.+)$c                ó$   € \        4       V n        R # r"   )r   Ú_arn_parserrd   s   &r+   r`   Ú_S3ArnParamHandler.__init__É  s   € Ü$›;ˆÖrI   c                óT   € V P                  V4      pVf   R # VR,          R8X  d   V# R # )NÚresource_typeÚaccesspoint)Ú_get_arn_details_from_bucket©r\   rr   Úarn_detailss   && r+   r  Ú_S3ArnParamHandler.handle_arnÌ  s3   € Ø×7Ñ7¸Ó?ˆØÒÙØ�Õ'¨=Ô8ØÐñ 9rI   c                ó„   €  V P                   P                  V4      pV P                  V4       V#   \         d     R # i ; ir"   )r5  Ú	parse_arnÚ_add_resource_type_and_namer   r;  s   && r+   r:  Ú/_S3ArnParamHandler._get_arn_details_from_bucketÓ  sF   € ð	Ø×*Ñ*×4Ñ4°VÓ<ˆKØ×,Ñ,¨[Ô9ØÐøÜ"ô 	ØÙð	ús   ‚-0 °?¾?c                ó®   € V P                   P                  VR ,          4      pV'       d+   VP                  R4      VR&   VP                  R4      VR&   R# R# )r”   r8  r  N)Ú_RESOURCE_REGEXr’   Úgroup)r\   r<  r’   s   && r+   r@  Ú._S3ArnParamHandler._add_resource_type_and_nameÜ  sK   € Ø×$Ñ$×*Ñ*¨;°zÕ+BÓCˆßØ+0¯;©;°Ó+GˆK˜Ñ(Ø+0¯;©;°Ó+GˆK˜Ó(ñ rI   )r5  N)rÞ   rß   rà   rá   ró   ÚreÚcompilerC  r`   r  r:  r@  râ   rã   rä   s   @r+   r  r  ½  s8   ø‡ € ñð —j’jØLó€Oò'òò÷Hð HrI   r  r"   )GÚloggingrF  rX   Úior   Úawscrt.httpr$   Ú	awscrt.s3Úbotocore.awsrequestrX  Úbotocore.sessionÚawscrt.authr   r   r   r   Ú	awscrt.ior   r	   r
   r   r   r   r   r   r   Úbotocore.compatr   Úbotocore.configr   Úbotocore.exceptionsr   Úbotocore.utilsr   r   Ús3transfer.constantsr   r   Ús3transfer.exceptionsr   Ús3transfer.futuresr   r   Ús3transfer.managerr   Ús3transfer.utilsr   r   r   r   r    Ú	getLoggerrÞ   rL   r#   r,   rH   r=   rO   rÇ   rÈ   r
  r  r[  rŽ  rÆ   rS   rý  rÉ   rþ  r  rc   rI   r+   Ú<module>rZ     s@  ðó Û 	Û Ý ã Û Û Û ÷ó ÷õ ÷ @Ñ ?Ý Ý $Ý "Ý 2ß 9ç >Ý 6ß CÝ .÷õ ð 
×	Ò	˜8Ó	$€àÐ òð6 "ØØØ�"�fØØôRôj÷$Hñ HôV"Ð&ô "ô*#BÐ*ô #B÷L?ñ ?ô&b,Ð#;ô b,ôJ�gô ÷*ñ *÷&F<ñ F<÷Rv!ñ v!÷r3ñ 3÷,8ñ 8÷#ñ #÷#Hó #HrI   