
    Dh                     r    d dl Z d dlmZmZmZmZmZmZmZm	Z	m
Z
 d dlmZ  G d de      Zd Zd Zd Zd	 Zy)
    N)	_CHECKSUM_CLSAwsChunkedWrapperFlexibleChecksumError_apply_request_header_checksum_handle_streaming_responsebase64conditionally_calculate_md5determine_content_lengthlogger)resolve_awaitablec                       e Zd Zd Zd Zd Zy)AioAwsChunkedWrapperc                   K   t        | j                  j                  | j                               d {   }t	        t        |            dd  j                  d      }| | _        | j                  r| j                  j                  |       | j                  rW| j                  rK| j                  j                  d      }| j                  j                         j                  d      }d||fz  S d||fz  S 7 íw)N   asciis   0
%s:%s

s   %s
%s
)r   _rawread_chunk_sizehexlenencode	_complete	_checksumupdate_checksum_name	b64digest)self	raw_chunkhex_lennamechecksums        z/var/www/fastuser/data/www/generator.snapmosaic.io/flask_app/venv/lib/python3.12/site-packages/aiobotocore/httpchecksum.py_make_chunkz AioAwsChunkedWrapper._make_chunk   s     
 ,DIINN4;K;K,LMM	c)n%ab)009&>>NN!!),>>dnn&&--g6D~~//188AH(D(+;;;'9!555 Ns   2C:C8CC:c                     | S N r   s    r"   	__aiter__zAioAwsChunkedWrapper.__aiter__&   s        c                 j   K   | j                   s| j                          d {   S t               7 wr%   )r   r#   StopAsyncIterationr'   s    r"   	__anext__zAioAwsChunkedWrapper.__anext__)   s-     ..))+++ "" ,s    313N)__name__
__module____qualname__r#   r(   r,   r&   r)   r"   r   r      s    6&#r)   r   c                 z  K   |d   }|j                  di       }|j                  d      }|sy |D ]l  }d|z  }||vrd||   v r|j                  rt        | ||      |d<   nt        | ||       d {   |d<   |d   j                  di       }||d<   ||d   d<    y  t	        j
                  d	| d
       y 7 Fw)Nheadersr!   response_algorithmsx-amz-checksum-%s-bodycontextresponse_algorithmzXSkipping checksum validation. Response did not contain one of the following algorithms: .)gethas_streaming_outputr   _handle_bytes_responser   info)	http_responseresponser6   operation_modelr1   checksum_context
algorithms	algorithmheader_names	            r"   handle_checksum_bodyrD   /   s     y!G{{:r2!%%&;<J 	)I5g%
 '+&&//9x HV &<x&  HV
 $I.22:rB1:-.*:J'36 KK!!+A	/ s   A0B;2B93AB;c                 >  K   | j                    d {   }d|z  }t        j                  |      } |       }|j                  |       |d   |   }|j	                         t        j                  |      k7  r"d|d|j                         }t        |      |S 7 w)Nr3   r1   zExpected checksum z$ did not match calculated checksum: 	error_msg)	contentr   r9   r   digestr   	b64decoder   r   )	r=   r>   rB   r5   rC   checksum_clsr!   expectedrG   s	            r"   r;   r;   Z   s     &&&D%	1K $$Y/L~HOOD	";/HF,,X66 ""$ 	 $i88K 's   BBB	Bc                    | j                  di       j                  di       }|j                  d      }|sy |dk(  rt        |        y |d   dk(  rt        |        y |d   dk(  rt        |        y t	        d|d   z  	      )
Nr6   r!   request_algorithmzconditional-md5inheadertrailerzUnknown checksum variant: %srF   )r9   r	   r   _apply_request_trailer_checksumr   )requestr@   rB   s      r"   apply_request_checksumrT   m   s    {{9b155j"E $$%89I%%#G,	4H	$&w/	4I	%'0#4yF
 	
r)   c                    | j                  di       j                  di       }|j                  d      }|d   }t        j                   |d         }| d   }| d   }||v ry d|d	<   d
|v r|d
xx   dz  cc<   nd|d
<   ||d<   t        |      }|t        |      |d<   t	        |t
        t        f      rt        j                  |      }t        |||      | d<   y )Nr6   r!   rN   r    rB   r1   r5   chunkedzTransfer-EncodingzContent-Encodingz,aws-chunkedzaws-chunkedzX-Amz-TrailerzX-Amz-Decoded-Content-Length)rK   checksum_name)
r9   r   r
   str
isinstancebytes	bytearrayioBytesIOr   )rS   r@   rB   location_namerK   r1   r5   content_lengths           r"   rR   rR      s   {{9b155j"E $$%89If%M $$Y{%;<Li G6?D $-G W$ 	"#~5#&3"#,GO-d3N! 36n2E./$	*+zz$*!#GFOr)   )r\   botocore.httpchecksumr   r   r   r   r   r   r	   r
   r   aiobotocore._helpersr   r   rD   r;   rT   rR   r&   r)   r"   <module>rb      s>    	
 
 
 3#, #:(V&
($r)   