+
    šÜiüK  ã                   óL  € R t ^ RIt^ RIt^ RIt^ RIHt ^ RIHtHt ^ RI	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HtHt ]
'       d   ^ R
IHt MRt]P<                  ! ]4      t R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      t( ! R R4      t) ! R R]4      t*R t+R1R lt,R  t-R! t.R" t/R# t0R$ t1R1R% lt2R& t3R' t4R( t5R)]#R*]'R+](/t6. R2Ot7]
'       d   R)]$R,]%/t8]! R34      '       d   ]&]8R-&   ]6Ps                  ]84       ]:;QJ d*    R. ]8Pw                  4        4       F  '       d   K   R/M	  R0M! R. ]8Pw                  4        4       4      '       g   Q h]<! ]6Pw                  4       4      t=. R4Ot>R# )5aB  The interfaces in this module are not intended for public use.

This module defines interfaces for applying checksums to HTTP requests within
the context of botocore. This involves both resolving the checksum to be used
based on client configuration and environment, as well as application of the
checksum to the request.
N)Úcrc32)Úsha1Úsha256)ÚHAS_CRTÚhas_minimum_crt_versionÚurlparse)ÚAwsChunkedWrapperErrorÚFlexibleChecksumErrorÚMissingDependencyException)ÚStructureShape)ÚStreamingBody)Úregister_feature_id)Úconditionally_calculate_md5Údetermine_content_lengthÚhas_checksum_header)Ú	checksumsÚCRC32c                   óB   a € ] tR t^5t o RtR tR tR tR tR t	Rt
V tR# )	ÚBaseChecksumc                ó   € R # ©N© ©ÚselfÚchunks   &&Ú7/usr/lib/python3/dist-packages/botocore/httpchecksum.pyÚupdateÚBaseChecksum.update8   ó   € Ùó    c                ó   € R # r   r   ©r   s   &r   ÚdigestÚBaseChecksum.digest;   r   r   c                ól   € V P                  4       p\        P                  ! V4      P                  R 4      # )Úascii)r"   Úbase64Ú	b64encodeÚdecode)r   Úbss   & r   Ú	b64digestÚBaseChecksum.b64digest>   s)   € Ø�[‰[‹]ˆÜ×Ò Ó#×*Ñ*¨7Ó3Ð3r   c                óž   a a€ SP                  4       p\        VV 3R  lR4       F  pS P                  V4       K  	  SP                  V4       R# )c                  ó:   <€ S P                  SP                  4      # r   )ÚreadÚ_CHUNK_SIZE)Úfileobjr   s   €€r   Ú<lambda>Ú.BaseChecksum._handle_fileobj.<locals>.<lambda>D   s   ø€  '§,¡,¨t×/?Ñ/?Ô"@r   r   N)ÚtellÚiterr   Úseek)r   r0   Ústart_positionr   s   ff  r   Ú_handle_fileobjÚBaseChecksum._handle_fileobjB   s9   ù€ Ø Ÿ™›ˆÜÕ@À#ÖFˆEØ�K‰K˜Öñ Gà�‰�^Ö$r   c                ó¾   € \        V\        \        34      '       d"   V P                  V4       V P                  4       # V P	                  V4       V P                  4       # r   )Ú
isinstanceÚbytesÚ	bytearrayr   r7   r*   )r   Úbodys   &&r   ÚhandleÚBaseChecksum.handleH   sL   € Ü�dœU¤IÐ.×/Ò/Ø�K‰K˜Ôð �~‰~ÓÐð × Ñ  Ô&Ø�~‰~ÓÐr   r   Né   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r/   r   r"   r*   r7   r>   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r   r   5   s(   ø‡ € Ø€Kòòò4ò%÷ ð  r   r   c                   ó2   a € ] tR t^Pt o R tR tR tRtV tR# )ÚCrc32Checksumc                ó   € ^ V n         R# ©é    N©Ú
_int_crc32r!   s   &r   Ú__init__ÚCrc32Checksum.__init__Q   ó	   € ØˆŽr   c                óH   € \        WP                  4      R ,          V n        R# ©l   ÿÿ N)r   rO   r   s   &&r   r   ÚCrc32Checksum.updateT   s   € Ü §¡Ó7¸*ÕDˆŽr   c                ó<   € V P                   P                  ^RR7      # ©é   Úbig©Ú	byteorder©rO   Úto_bytesr!   s   &r   r"   ÚCrc32Checksum.digestW   ó   € Ø�‰×'Ñ'¨°UÐ'Ó;Ð;r   rN   N©	rA   rB   rC   rD   rP   r   r"   rE   rF   rG   s   @r   rJ   rJ   P   s   ø‡ € òòE÷<ð <r   rJ   c                   ó2   a € ] tR t^[t o R tR tR tRtV tR# )ÚCrtCrc32Checksumc                ó   € ^ V n         R# rL   rN   r!   s   &r   rP   ÚCrtCrc32Checksum.__init__]   rR   r   c                ób   € \         P                  ! WP                  4      pVR ,          V n        R# rT   )Úcrt_checksumsr   rO   ©r   r   Únew_checksums   && r   r   ÚCrtCrc32Checksum.update`   s"   € Ü$×*Ò*¨5·/±/ÓBˆØ&¨Õ3ˆŽr   c                ó<   € V P                   P                  ^RR7      # rW   r\   r!   s   &r   r"   ÚCrtCrc32Checksum.digestd   r_   r   rN   Nr`   rG   s   @r   rb   rb   [   s   ø‡ € òò4÷<ð <r   rb   c                   ó2   a € ] tR t^ht o R tR tR tRtV tR# )ÚCrtCrc32cChecksumc                ó   € ^ V n         R# rL   ©Ú_int_crc32cr!   s   &r   rP   ÚCrtCrc32cChecksum.__init__j   s
   € ØˆÖr   c                ób   € \         P                  ! WP                  4      pVR ,          V n        R# rT   )rf   Úcrc32crp   rg   s   && r   r   ÚCrtCrc32cChecksum.updatem   s%   € Ü$×+Ò+¨E×3CÑ3CÓDˆØ'¨*Õ4ˆÖr   c                ó<   € V P                   P                  ^RR7      # rW   )rp   r]   r!   s   &r   r"   ÚCrtCrc32cChecksum.digestq   s   € Ø×Ñ×(Ñ(¨°eÐ(Ó<Ð<r   ro   Nr`   rG   s   @r   rm   rm   h   s   ø‡ € òò5÷=ð =r   rm   c                   ó2   a € ] tR t^ut o R tR tR tRtV tR# )ÚCrtCrc64NvmeChecksumc                ó   € ^ V n         R# rL   ©Ú_int_crc64nvmer!   s   &r   rP   ÚCrtCrc64NvmeChecksum.__init__w   s
   € ØˆÖr   c                ób   € \         P                  ! WP                  4      pVR ,          V n        R# )l   ÿÿÿÿ N)rf   Ú	crc64nvmer{   rg   s   && r   r   ÚCrtCrc64NvmeChecksum.updatez   s&   € Ü$×.Ò.¨u×6IÑ6IÓJˆØ*Ð-?Õ?ˆÖr   c                ó<   € V P                   P                  ^RR7      # )é   rY   rZ   )r{   r]   r!   s   &r   r"   ÚCrtCrc64NvmeChecksum.digest~   s   € Ø×"Ñ"×+Ñ+¨A¸Ð+Ó?Ð?r   rz   Nr`   rG   s   @r   rx   rx   u   s   ø‡ € ò ò@÷@ð @r   rx   c                   ó2   a € ] tR t^‚t o R tR tR tRtV tR# )ÚSha1Checksumc                ó$   € \        4       V n        R # r   )r   Ú	_checksumr!   s   &r   rP   ÚSha1Checksum.__init__ƒ   s   € Ü›ˆŽr   c                ó<   € V P                   P                  V4       R # r   ©r†   r   r   s   &&r   r   ÚSha1Checksum.update†   ó   € Ø�‰×Ñ˜eÖ$r   c                ó6   € V P                   P                  4       # r   ©r†   r"   r!   s   &r   r"   ÚSha1Checksum.digest‰   ó   € Ø�~‰~×$Ñ$Ó&Ð&r   ©r†   Nr`   rG   s   @r   r„   r„   ‚   s   ø‡ € ò ò%÷'ð 'r   r„   c                   ó2   a € ] tR t^�t o R tR tR tRtV tR# )ÚSha256Checksumc                ó$   € \        4       V n        R # r   )r   r†   r!   s   &r   rP   ÚSha256Checksum.__init__Ž   s   € Ü›ˆŽr   c                ó<   € V P                   P                  V4       R # r   r‰   r   s   &&r   r   ÚSha256Checksum.update‘   r‹   r   c                ó6   € V P                   P                  4       # r   r�   r!   s   &r   r"   ÚSha256Checksum.digest”   r�   r   r�   Nr`   rG   s   @r   r’   r’   �   s   ø‡ € ò"ò%÷'ð 'r   r’   c                   óT   a € ] tR t^˜t o R	tR
R ltR tRR ltRR ltR t	R t
RtV tR# )ÚAwsChunkedWrapperNc                óv   € Wn         W0n        W n        V P                  4        Vf   V P                  pW@n        R # r   )Ú_rawÚ_checksum_nameÚ_checksum_clsÚ_resetÚ_DEFAULT_CHUNK_SIZEÚ_chunk_size)r   ÚrawÚchecksum_clsÚchecksum_nameÚ
chunk_sizes   &&&&&r   rP   ÚAwsChunkedWrapper.__init__›   s5   € ð Œ	Ø+ÔØ)ÔØ�‰ŒàÒØ×1Ñ1ˆJØ%Ör   c                ó‚   € R V n         RV n        RV n        V P                  '       d   V P                  4       V n        R# R# )r   FN)Ú
_remainingÚ	_completer†   rž   r!   s   &r   rŸ   ÚAwsChunkedWrapper._reset«   s8   € ØˆŒØˆŒØˆŒØ××ÐØ!×/Ñ/Ó1ˆDŽNñ r   c                ó�   € V^ 8w  g   V^ 8w  d   \        RR7      hV P                  4        V P                  P                  ^ 4       R# )rM   z Can only seek to start of stream©Ú	error_msgN)r   rŸ   rœ   r5   )r   ÚoffsetÚwhences   &&&r   r5   ÚAwsChunkedWrapper.seek²   s:   € Ø�QŒ;˜& Aœ+Ü(Ø<ôð ð 	�‰ŒØ�	‰	�‰�qÖr   c                óú  € Ve
   V^ 8:  d   R pV P                   '       d   V P                  '       g   R# VR J ;'       g    V\        V P                  4      8„  pV P                   '       gV   V'       dN   V ;P                  V P                  4       ,          un        VR J ;'       g    V\        V P                  4      8„  pKg  Vf   \        V P                  4      pV P                  R V pV P                  VR  V n        V# )Nr   )r©   r¨   ÚlenÚ_make_chunk)r   ÚsizeÚwant_more_bytesÚ	to_returns   &&  r   r.   ÚAwsChunkedWrapper.readº   sÊ   € àÒ ¨¤	ØˆDð �>�>ˆ> $§/§/ /Ùð  $˜,×EÐE¨$´°T·_±_Ó1EÑ*EˆØ—.—.�.§_Ø�OŠO˜t×/Ñ/Ó1Õ1�OØ" d˜l×IÐI¨d´S¸¿¹Ó5IÑ.IŠOð Š<Ü�t—‘Ó'ˆDð —O‘O E TÐ*ˆ	ØŸ/™/¨$¨%Ð0ˆŒØÐr   c                ó
  € V P                   P                  V P                  4      p\        \	        V4      4      R ,          P                  R4      pV'       * V n        V P                  '       d   V P                  P                  V4       V P                  '       da   V P                  '       dO   V P                  P                  R4      pV P                  P                  4       P                  R4      pRW43,          # RW!3,          # ):é   NNr%   s   0
%s:%s

s   %s
%s
)rœ   r.   r¡   Úhexr²   Úencoder©   r†   r   r�   r*   )r   Ú	raw_chunkÚhex_lenÚnameÚchecksums   &    r   r³   ÚAwsChunkedWrapper._make_chunkÓ   s¾   € ð —I‘I—N‘N 4×#3Ñ#3Ó4ˆ	Ü”c˜)“nÓ% bÕ)×0Ñ0°Ó9ˆØ&œˆŒà�>�>ˆ>Ø�N‰N×!Ñ! )Ô,à�>�>ˆ>˜dŸnŸn˜nØ×&Ñ&×-Ñ-¨gÓ6ˆDØ—~‘~×/Ñ/Ó1×8Ñ8¸ÓAˆHØ(¨DÐ+;Õ;Ð;à 'Ð!5Õ5Ð5r   c              #  óZ   "  € V P                   '       g   V P                  4       x € K&  R # 5ir   )r©   r³   r!   s   &r   Ú__iter__ÚAwsChunkedWrapper.__iter__å   s"   é € Ø—.—.�.Ø×"Ñ"Ó$Ô$ñ !ùs   ‚+•+)r†   rž   r�   r¡   r©   rœ   r¨   r@   )Nzx-amz-checksumN)rM   r   )rA   rB   rC   rD   r    rP   rŸ   r5   r.   r³   rÂ   rE   rF   rG   s   @r   rš   rš   ˜   s.   ø‡ € Ø%Ðô&ò 2ôôò26÷$%ð %r   rš   c                   óT   a a€ ] tR t^êt oV 3R ltRV 3R lltV 3R ltR tRtVt	V ;t
# )ÚStreamingChecksumBodyc                ó>   <€ \         SV `  W4       W0n        W@n        R # r   )ÚsuperrP   r†   Ú	_expected)r   Ú
raw_streamÚcontent_lengthr¿   ÚexpectedÚ	__class__s   &&&&&€r   rP   ÚStreamingChecksumBody.__init__ë   s   ø€ Ü‰Ñ˜Ô4Ø!ŒØ!Žr   c                ó¤   <€ \         SV `  VR 7      pV P                  P                  V4       Ve   V'       g   V^ 8”  d   V P	                  4        V# ))Úamt)rÇ   r.   r†   r   Ú_validate_checksum)r   rÏ   r   rÌ   s   && €r   r.   ÚStreamingChecksumBody.readð   sC   ø€ Ü‘‘ �Ó%ˆØ�‰×Ñ˜eÔ$ØŠ;Ÿu¨¨q¬Ø×#Ñ#Ô%Øˆr   c                óì   <€ \         SV `  V4      pV\        V4      8X  d   TpM\        V4      R V pV P                  P                  V4       V^ 8X  d!   \        V4      ^ 8”  d   V P                  4        V# r   )rÇ   Úreadintor²   Ú
memoryviewr†   r   rÐ   )r   ÚbÚamount_readÚviewrÌ   s   &&  €r   rÓ   ÚStreamingChecksumBody.readinto÷   si   ø€ Ü‘gÑ& qÓ)ˆØœ#˜a›&Ô Ø‰Dä˜a“=  +Ð.ˆDØ�‰×Ñ˜dÔ#Ø˜!Ô¤ A£¨¤
Ø×#Ñ#Ô%ØÐr   c                óì   € V P                   P                  4       \        P                  ! V P                  4      8w  d7   R V P                   RV P                   P                  4        2p\        VR7      hR# )úExpected checksum ú$ did not match calculated checksum: r¬   N)r†   r"   r&   Ú	b64decoderÈ   r*   r	   )r   r­   s   & r   rÐ   Ú(StreamingChecksumBody._validate_checksum  sg   € Ø�>‰>× Ñ Ó"¤f×&6Ò&6°t·~±~Ó&FÔFà$ T§^¡^Ð$4ð 5Ø!Ÿ^™^×5Ñ5Ó7Ð8ð:ð ô (°)Ô<Ð<ñ Gr   )r†   rÈ   r   )rA   rB   rC   rD   rP   r.   rÓ   rÐ   rE   rF   Ú__classcell__)rÌ   rH   s   @@r   rÅ   rÅ   ê   s   ù‡ € õ"÷
õ	÷=ò =r   rÅ   c                 ó6   € \        WV4       \        WV4       R # r   )Ú"resolve_request_checksum_algorithmÚ$resolve_response_checksum_algorithms)ÚrequestÚoperation_modelÚparamss   &&&r   Úresolve_checksum_contextrå     s   € Ü& wÀÔHÜ(¨À6ÖJr   c                 ó¾  € \        V 4      '       d   R # V R,          P                  R/ 4      pV R,          R,          P                  pVP                  pVP                  ;'       g    VP                  R4      pVP                  R4      pV'       dr   W‚9   dl   Vf   \
        pW(,          P                  4       p	W“9  dE   \        '       g*   V	\        9   d   \        RV	P                  4        R2R7      h\        R	V	 2R
7      hMkV'       g   V'       dZ   VR8X  dS   V R,          P                  R4      '       d   R # \        P                  4       p	\        WV4      p
V
e   RV
R\        /VR&   MR # RpVP                  '       dC   \        V R,          4      P                   R8X  d"   V R,          R,          P"                  R8w  d   RpRV	RVRRV	 2/pWÄR&   W@R,          R&   R # )NÚcontextr¿   Úclient_configÚrequestChecksumRequiredÚrequestAlgorithmMemberzUsing za requires an additional dependency. You will need to pip install botocore[crt] before proceeding.)Úmsgz Unsupported checksum algorithm: r¬   Úwhen_supportedÚis_presign_requestr¾   ÚvalueÚrequest_algorithm_headerÚheaderÚurlÚhttpsÚs3ÚtrailerÚ	algorithmÚinúx-amz-checksum-Úrequest_algorithm)r   ÚgetÚrequest_checksum_calculationÚhttp_checksumÚhttp_checksum_requiredÚ_SUPPORTED_CHECKSUM_ALGORITHMSÚlowerr   Ú_CRT_CHECKSUM_ALGORITHMSr
   Úupperr	   ÚDEFAULT_CHECKSUM_ALGORITHMÚ$_get_request_algorithm_member_headerÚhas_streaming_inputr   ÚschemeÚsignature_version)râ   rã   rä   Úsupported_algorithmsÚchecksum_contextrú   rû   Úrequest_checksum_requiredÚalgorithm_memberÚalgorithm_nameÚalgorithm_member_headerÚlocation_typerõ   s   &&&&         r   rà   rà     s  € ô ˜7×#Ò#Ùà˜yÕ)×-Ñ-¨j¸"Ó=ÐØ#*¨9Õ#5Øõ$ç"Ñ"ð !ð $×1Ñ1€Mà×.Ñ.÷ 	8ð 	8Ø×ÑÐ6Ó7ð ð %×(Ñ(Ð)AÓBÐßÐ,Ô6ð  Ò'Ü#AÐ àÕ1×7Ñ7Ó9ˆØÔ5ß“7˜~Ô1IÔIÜ0à  ×!5Ñ!5Ó!7Ð 8ð 9;ð ;ôð ô (Ø<¸^Ð<LÐMôð ð 6÷ 
#ßÐ9Ð=MÔMð �9Õ×!Ñ!Ð"6×7Ò7ÙÜ3×9Ñ9Ó;ˆÜ"FØÐ&6ó#
Ðð #Ò.àÐ/ØÔ3ð<ÐÐ7Ñ8øñ
 	à€Mà×+×+Ð+Ü�W˜U•^Ó$×+Ñ+¨wÔ6à�9Õ˜oÕ.×@Ñ@ÀDÔHð &ˆMð 	�^ØˆmØ�/ .Ð!1Ð2ð€Ið -6Ð(Ñ)Ø%5ˆIÕ�zÓ"r   c                óÊ   € V P                   p\        V\        4      '       g   R# VP                  P	                  V4      pV'       d   VP
                  P	                  R4      # R# )zDGet the name of the header targeted by the "requestAlgorithmMember".Nr¾   )Úinput_shaper:   r   Úmembersrù   Úserialization)rã   râ   r	  Úoperation_input_shapeÚalgorithm_member_shapes   &&&  r   r  r  ^  s\   € ð ,×7Ñ7ÐÜÐ+¬^×<Ò<Ùà2×:Ñ:×>Ñ>ØóÐ÷ Ø%×3Ñ3×7Ñ7¸Ó?Ð?ñ r   c                 óª  € V P                  R / 4      P                  R/ 4      pVP                  R4      pV'       g   R# VR8X  d   \        V 4       MVVR,          R8X  d   \        V 4       M<VR,          R8X  d   \        V 4       M"\	        RP                  VR,          4      R	7      hR
V9   d&   VR
,          pVR,          V R,          VR,          &   R# R# )rç   r¿   rø   Nzconditional-md5rö   rð   rô   zUnknown checksum variant: {}r¬   rï   rî   Úheadersr¾   )rù   r   Ú_apply_request_header_checksumÚ_apply_request_trailer_checksumr	   Úformat)râ   r  rõ   rï   s   &   r   Úapply_request_checksumr  n  sÈ   € Ø—{‘{ 9¨bÓ1×5Ñ5°jÀ"ÓEÐØ ×$Ñ$Ð%8Ó9€IçÙàÐ%Ô%ä# GÕ,Ø	�4�˜HÔ	$Ü& wÕ/Ø	�4�˜IÔ	%Ü'¨Õ0ä#Ø4×;Ñ;¸IÀd½OÓLô
ð 	
ð "Ð%5Ô5Ø#3Ð4NÕ#OÐ à$ WÕ-ð 	�	ÕÐ3°FÕ;Ó<ñ 6r   c                 ó:  € V P                  R / 4      P                  R/ 4      pVP                  R4      pVR,          pW0R,          9   d   R# \        P                  VR,          4      pV! 4       P                  V R,          4      pWPR,          V&   \        V4       R# )rç   r¿   rø   r¾   r  Nrõ   r=   )rù   Ú_CHECKSUM_CLSr>   Ú'_register_checksum_algorithm_feature_id)râ   r  rõ   Úlocation_namer£   r"   s   &     r   r  r  ‡  s‰   € Ø—{‘{ 9¨bÓ1×5Ñ5°jÀ"ÓEÐØ ×$Ñ$Ð%8Ó9€IØ˜fÕ%€MØ 	Õ*Ô*áÜ ×$Ñ$ Y¨{Õ%;Ó<€LÙ‹^×"Ñ" 7¨6¥?Ó3€FØ(.ˆIÕ�}Ñ%Ü+¨IÖ6r   c                 óT  € V P                  R / 4      P                  R/ 4      pVP                  R4      pVR,          p\        P                  VR,          4      pV R,          pV R,          pW59   d   R# RVR	&   R
V9   d   VR
;;,          R,          uu&   MRVR
&   W5R&   \        V4       \        V4      pVe.   \	        V4      VR&   RV9   d   VR \
        P                  R4       \        V\        \        34      '       d   \        P                  ! V4      p\        VVVR7      V R&   R# )rç   r¿   rø   r¾   rõ   r  r=   NÚchunkedzTransfer-EncodingzContent-Encodingz,aws-chunkedzaws-chunkedzX-Amz-TrailerzX-Amz-Decoded-Content-LengthzContent-LengthzVRemoving the Content-Length header since 'chunked' is specified for Transfer-Encoding.)r£   r¤   )rù   r  r  r   ÚstrÚloggerÚdebugr:   r;   r<   ÚioÚBytesIOrš   )râ   r  rõ   r  r£   r  r=   rÊ   s   &       r   r  r  ”  s(  € Ø—{‘{ 9¨bÓ1×5Ñ5°jÀ"ÓEÐØ ×$Ñ$Ð%8Ó9€IØ˜fÕ%€MÜ ×$Ñ$ Y¨{Õ%;Ó<€Là�iÕ €GØ�6�?€DàÔáà#,€GÐÑ Ø˜WÔ$ð 	Ð"×# ~Õ5Ô#à&3ˆÐ"Ñ#Ø,ˆOÑÜ+¨IÔ6ä-¨dÓ3€NØÒ!ô 36°nÓ2EˆÐ.Ñ/à˜wÔ&ØÐ(Ð)Ü�L‰LØhôô �$œ¤	Ð*×+Ò+Ü�zŠz˜$Óˆä'ØØ!Ø#ô€GˆFƒOr   c                 óf   € V R ,          P                  4       pVR8X  d   RpRV 2p\        V4       R# )rõ   Ú	CRC64NVMEÚCRC64ÚFLEXIBLE_CHECKSUMS_REQ_N)r   r   )rõ   Úchecksum_algorithm_nameÚ"checksum_algorithm_name_feature_ids   &  r   r  r  Á  s@   € Ø'¨Õ4×:Ñ:Ó<ÐØ +Ô-Ø")Ðà
!Ð"9Ð!:Ð;ð 'ô Ð:Ö;r   c                 óŽ  € VP                   pVP                  R 4      pV'       d›   WR9   d“   Vf   \        pVP                  R. 4       Uu0 uF  qfP                  4       kK  	  pp. p\         F$  p	W—9  d   K  W“9   g   K  VP                  V	4       K&  	  V R,          P                  R/ 4      p
WŠR&   W R,          R&   R# R# R# u upi )ÚrequestValidationModeMemberNÚresponseAlgorithmsrç   r¿   Úresponse_algorithms)rû   rù   rý   rþ   Ú_ALGORITHMS_PRIORITY_LISTÚappend)râ   rã   rä   r  rû   Úmode_memberÚar-  Úusable_algorithmsrõ   r  s   &&&&       r   rá   rá   Ë  sÎ   € ð $×1Ñ1€MØ×#Ñ#Ð$AÓB€Kß�{Ô,ØÒ'Ü#AÐ à,×0Ñ0Ð1EÀrÔJó
ÙJ˜!�G‰GŽIÑJð 	ð 
ð Ðß2ˆIØÔ3ÙØÖ0Ø!×(Ñ(¨Ö3ñ	 3ð # 9Õ-×1Ñ1°*¸bÓAÐØ2CÐ.Ñ/Ø)9�	Õ˜:Ó&ñ! -�{ùò
s   Á
Cc                 óœ  € VR ,          pVP                  R/ 4      pVP                  R4      pV'       g   R# V Fy  pRV 2pW„9  d   K  RWH,          9   d   K  VP                  '       d   \        WV4      VR&   M\        WV4      VR&   VR,          P                  R/ 4      pWuR&   WQR,          R&    R# 	  \        P                  R	V4       R# )
r  r¿   r-  Nr÷   Ú-r=   rç   Úresponse_algorithmz[Skipping checksum validation. Response did not contain one of the following algorithms: %s.)rù   Úhas_streaming_outputÚ_handle_streaming_responseÚ_handle_bytes_responser   r!  )	Úhttp_responseÚresponserç   rã   r  r  Ú
algorithmsrõ   Úheader_names	   &&&&     r   Úhandle_checksum_bodyr=  ã  sà   € Ø�yÕ!€GØ—{‘{ :¨rÓ2ÐØ!×%Ñ%Ð&;Ó<€JçÙãˆ	Ø'¨	 {Ð3ˆàÔ%Ùð
 �'Õ&Ô&Ùà×/×/Ð/Ü9Ø¨ó ˆH�VÒô  6Ø¨ó ˆH�VÑð
 $ IÕ.×2Ñ2°:¸rÓBÐØ1:Ð-Ñ.Ø*:�Õ˜JÑ'Úñ3  ô6 ‡L�LØeØör   c                 ó¸   € \         P                  V4      pR V 2p\        V P                  VR,          P                  R4      V! 4       VR,          V,          4      # )r÷   r  zcontent-length)r  rù   rÅ   r¢   )r9  r:  rõ   r£   r<  s   &&&  r   r7  r7    sZ   € Ü ×$Ñ$ YÓ/€LØ# I ;Ð/€KÜ Ø×ÑØ�Õ×ÑÐ 0Ó1Ù‹Ø�Õ˜KÕ(ó	ð r   c                 ó8  € V P                   pR V 2p\        P                  V4      pV! 4       pVP                  V4       VR,          V,          pVP	                  4       \
        P                  ! V4      8w  d#   RV RVP                  4        2p\        VR7      hV# )r÷   r  rÚ   rÛ   r¬   )	Úcontentr  rù   r   r"   r&   rÜ   r*   r	   )	r9  r:  rõ   r=   r<  r£   r¿   rË   r­   s	   &&&      r   r8  r8    sœ   € Ø× Ñ €DØ# I ;Ð/€KÜ ×$Ñ$ YÓ/€LÙ‹~€HØ‡O�O�DÔØ˜	Õ" ;Õ/€HØ‡�ÓœF×,Ò,¨XÓ6Ô6à   
ð +Ø!×+Ñ+Ó-Ð.ð0ð 	ô $¨iÔ8Ð8Ø€Kr   r   r   r   rs   r~   c              #   ó2   "  € T F  q\         9   x € K  	  R # 5ir   )rÿ   )Ú.0r¾   s   & r   Ú	<genexpr>rC  :  s   é € ð Ù5M¨TÔ(Ö(Ó5Mùs   ‚FTr   )r   rs   r~   )rM   é   rX   )r~   rs   r   r   r   )?Ú__doc__r&   r"  ÚloggingÚbinasciir   Úhashlibr   r   Úbotocore.compatr   r   r   Úbotocore.exceptionsr   r	   r
   Úbotocore.modelr   Úbotocore.responser   Úbotocore.useragentr   Úbotocore.utilsr   r   r   Úawscrtr   rf   Ú	getLoggerrA   r   r  r   rJ   rb   rm   rx   r„   r’   rš   rÅ   rå   rà   r  r  r  r  r  rá   r=  r7  r8  r  rÿ   Ú_CRT_CHECKSUM_CLSr   ÚallÚkeysÚlistrý   r.  r   r   r   Ú<module>rU     sÓ  ðñó Û 	Û Ý ß  ç FÑ F÷ñ õ
 *Ý +Ý 2÷ñ ÷ Þ1à€Mà	×	Ò	˜8Ó	$€à$Ð ÷ ñ  ô6<�Lô <ô
<�|ô 
<ô
=˜ô 
=ô
@˜<ô 
@ô'�<ô 'ô'�\ô '÷O%ñ O%ôd=˜Mô =òBKô
K6ò\@ò 
ò2
7ò*òZ<ô:ò0&òRòð" ˆ]Ø
ˆLØˆnð€ò
 <Ð ß
ð 	Ð!ØÐ#ðÐñ
 ˜z×*Ò*à)=Ð˜+Ñ&à×ÑÐ*Ô+çñ Ø5F×5KÑ5KÔ5Mó�3�3Š3ñ Ø5F×5KÑ5KÔ5Mó÷ ò ð ð ñ "& m×&8Ñ&8Ó&:Ó!;Ð ÚNÒ r   