Ë
    qPêjôa  ã                   ó8  — d dl mZ d dlmZmZmZmZmZmZ d dl	m
Z
mZmZmZmZmZ d dlmZ d dlmZ d dlmZ  G d„ de«      Z G d	„ d
e«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      ZeeeeeeedœZy)é    )ÚBytesIO)ÚSIGNED_HEADERS_BLACKLISTÚ"STREAMING_UNSIGNED_PAYLOAD_TRAILERÚUNSIGNED_PAYLOADÚ
BaseSignerÚ_get_body_as_dictÚ_host_from_url)ÚHTTPHeadersÚawscrtÚget_current_datetimeÚparse_qsÚurlsplitÚ
urlunsplit)ÚNoCredentialsError)Úregister_feature_id)Úpercent_encode_sequencec                   óœ   — e Zd ZdZg d¢Zej                  j                  j                  Z	dZ
dZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zy)ÚCrtSigV4AuthT©ÚAuthorizationz
X-Amz-DateúX-Amz-Content-SHA256zX-Amz-Security-Tokenc                 ó<   — || _         || _        || _        d | _        y ©N©ÚcredentialsÚ_service_nameÚ_region_nameÚ_expiration_in_seconds©Úselfr   Úservice_nameÚregion_names       úV/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/botocore/crt/auth.pyÚ__init__zCrtSigV4Auth.__init__1   ó"   € Ø&ˆÔØ)ˆÔØ'ˆÔØ&*ˆÕ#ó    c                 ó¨   — |j                   j                  di «      }|j                  d«      }t        |t        «      xr |j                  d«      dk(  S ©NÚchecksumÚrequest_algorithmÚinÚtrailer©ÚcontextÚgetÚ
isinstanceÚdict©r    ÚrequestÚchecksum_contextÚ	algorithms       r#   Ú_is_streaming_checksum_payloadz+CrtSigV4Auth._is_streaming_checksum_payload7   óJ   € Ø"Ÿ?™?×.Ñ.¨z¸2Ó>ÐØ$×(Ñ(Ð)<Ó=ˆ	Ü˜)¤TÓ*ÒO¨y¯}©}¸TÓ/BÀiÑ/OÐOr&   c                 óJ  — | j                   €
t        «       ‚t        d¬«      }| j                  |«      }| j	                  |«       t
        j                  j                  j                  | j                   j                  | j                   j                  | j                   j                  ¬«      }| j                  |«      rt        }n| j                  |«      r|r|}n	d }nt        }| j!                  |«      r%t
        j                  j"                  j$                  }n$t
        j                  j"                  j&                  }t
        j                  j)                  t
        j                  j*                  j,                  | j.                  || j0                  | j2                  || j4                  | j6                  | j8                  ||| j:                  ¬«      }| j=                  |«      }t
        j                  j?                  ||«      }	|	jA                  «        | jC                  ||«       y )NF©Úremove_tzinfo©Úaccess_key_idÚsecret_access_keyÚsession_token©r5   Úsignature_typeÚcredentials_providerÚregionÚserviceÚdateÚshould_sign_headerÚuse_double_uri_encodeÚshould_normalize_uri_pathÚsigned_body_valueÚsigned_body_header_typeÚexpiration_in_seconds)"r   r   r   Ú_get_existing_sha256Ú_modify_request_before_signingr   ÚauthÚAwsCredentialsProviderÚ
new_staticÚ
access_keyÚ
secret_keyÚtokenr6   r   Ú_should_sha256_sign_payloadr   Ú!_should_add_content_sha256_headerÚAwsSignedBodyHeaderTypeÚX_AMZ_CONTENT_SHA_256ÚNONEÚAwsSigningConfigÚAwsSigningAlgorithmÚV4Ú_SIGNATURE_TYPEr   r   Ú_should_sign_headerÚ_USE_DOUBLE_URI_ENCODEÚ_SHOULD_NORMALIZE_URI_PATHr   Ú_crt_request_from_aws_requestÚaws_sign_requestÚresultÚ_apply_signing_changes©
r    r3   Údatetime_nowÚexisting_sha256rA   Úexplicit_payloadÚbody_headerÚsigning_configÚcrt_requestÚfutures
             r#   Úadd_authzCrtSigV4Auth.add_auth<   s¾  € Ø×ÑÐ#Ü$Ó&Ð&ä+¸%Ô@ˆð ×3Ñ3°GÓ<ˆà×+Ñ+¨GÔ4ä%Ÿ{™{×AÑA×LÑLØ×*Ñ*×5Ñ5Ø"×.Ñ.×9Ñ9Ø×*Ñ*×0Ñ0ð  Mó  
Ðð ×.Ñ.¨wÔ7ÜAÑØ×-Ñ-¨gÔ6ÙØ#2Ñ à#'Ñ ä/Ðà×1Ñ1Ð2BÔCä—‘×3Ñ3×IÑIñ ô !Ÿ+™+×=Ñ=×BÑBˆKäŸ™×5Ñ5Ü—k‘k×5Ñ5×8Ñ8Ø×/Ñ/Ø!5Ø×$Ñ$Ø×&Ñ&ØØ#×7Ñ7Ø"&×"=Ñ"=Ø&*×&EÑ&EØ.Ø$/Ø"&×"=Ñ"=ð 6ó 
ˆð ×8Ñ8¸ÓAˆÜ—‘×-Ñ-¨k¸>ÓJˆØ�‰ŒØ×#Ñ# G¨[Õ9r&   c                 óÄ  — t        |j                  «      }|j                  r|j                  nd}|j                  r]g }|j                  j	                  «       D ]&  \  }}t        |«      }|j                  |› d|› �«       Œ( |dz   dj                  |«      z   }n|j                  r|› d|j                  › �}t        j                  j                  |j                  j	                  «       «      }d }|j                  r8t        |j                  d«      r|j                  }nt        |j                  «      }t        j                  j!                  |j"                  |||¬«      }	|	S ©Nú/ú=ú?ú&Úseek)ÚmethodÚpathÚheadersÚbody_stream©r   Úurlrt   ÚparamsÚitemsÚstrÚappendÚjoinÚqueryr   ÚhttpÚHttpHeadersru   ÚbodyÚhasattrr   ÚHttpRequestrs   ©
r    Úaws_requestÚ	url_partsÚcrt_pathÚarrayÚparamÚvalueÚcrt_headersÚcrt_body_streamri   s
             r#   r_   z*CrtSigV4Auth._crt_request_from_aws_requestq   ó6  € Ü˜[Ÿ_™_Ó-ˆ	Ø%.§^¢^�9—>’>¸ˆØ×ÒØˆEØ +× 2Ñ 2× 8Ñ 8Ó :ò 1‘��uÜ˜E›
�Ø—‘ ˜w a¨ wÐ/Õ0ð1ð   #‘~¨¯©°«Ñ7‰HØ�_Š_Ø"˜ 1 Y§_¡_Ð$5Ð6ˆHä—k‘k×-Ñ-¨k×.AÑ.A×.GÑ.GÓ.IÓJˆð ˆØ×ÒÜ�{×'Ñ'¨Ô0Ø"-×"2Ñ"2‘ä")¨+×*:Ñ*:Ó";�ä—k‘k×-Ñ-Ø×%Ñ%ØØØ'ð	 .ó 
ˆð Ðr&   c                 ó^   — t        j                  t        |j                  «      «      |_        y r   ©r
   Ú
from_pairsÚlistru   ©r    r…   Úsigned_crt_requests      r#   rb   z#CrtSigV4Auth._apply_signing_changes�   ó$   € ä)×4Ñ4ÜÐ#×+Ñ+Ó,ó
ˆÕr&   c                 ó.   — |j                  «       t        vS r   ©Úlowerr   ©r    ÚnameÚkwargss      r#   r\   z CrtSigV4Auth._should_sign_header•   ó   € Ø�z‰z‹|Ô#;Ð;Ð;r&   c                 óÀ   — | j                   D ]  }||j                  v sŒ|j                  |= Œ  d|j                  vr#t        |j                  «      |j                  d<   y y ©NÚhost©Ú_PRESIGNED_HEADERS_BLOCKLISTru   r	   rx   ©r    r3   Úhs      r#   rL   z+CrtSigV4Auth._modify_request_before_signing˜   ó[   € ð ×2Ñ2ò 	'ˆAØ�G—O‘OÒ#Ø—O‘O AÑ&ð	'ð ˜Ÿ™Ñ(Ü&4°W·[±[Ó&AˆG�O‰O˜FÒ#ð )r&   c                 ó8   — |j                   j                  d«      S ©Nr   ©ru   r/   ©r    r3   s     r#   rK   z!CrtSigV4Auth._get_existing_sha256¢   ó   € Ø�‰×"Ñ"Ð#9Ó:Ð:r&   c                 ór   — |j                   j                  d«      sy|j                  j                  dd«      S ©NÚhttpsTÚpayload_signing_enabled©rx   Ú
startswithr.   r/   r§   s     r#   rS   z(CrtSigV4Auth._should_sha256_sign_payload¥   ó1   € à�{‰{×%Ñ% gÔ.Øð
 �‰×"Ñ"Ð#<¸dÓCÐCr&   c                 ó
   — |d uS r   © ©r    rf   s     r#   rT   z.CrtSigV4Auth._should_add_content_sha256_header¯   ó   € à tÐ+Ð+r&   N)Ú__name__Ú
__module__Ú__qualname__ÚREQUIRES_REGIONr    r   rM   ÚAwsSignatureTypeÚHTTP_REQUEST_HEADERSr[   r]   r^   r$   r6   rk   r_   rb   r\   rL   rK   rS   rT   r±   r&   r#   r   r   %   sh   „ Ø€Oò$Ð ð —k‘k×2Ñ2×GÑG€OØ!ÐØ!%Ðò+òPò
3:òjò<
ò<òBò;òDó,r&   r   c                   ó2   ‡ — e Zd ZdZdZd„ Zˆ fd„Zd„ Zˆ xZS )ÚCrtS3SigV4AuthFc                  ó   — y r   r±   r§   s     r#   rK   z#CrtS3SigV4Auth._get_existing_sha256¹   ó   € àr&   c                 óä  •— |j                   j                  d«      }t        |dd «      }|€i }|j                  dd «      }|�|S d}|j                   j                  di «      }|j                  d«      }t        |t        «      r|j                  d«      dk(  r|d	   }|j
                  j                  d
«      r||j                  vry|j                   j                  dd«      ryt        ‰| �%  |«      S )NÚclient_configÚs3r¬   úContent-MD5r)   r*   r+   Úheaderr™   r«   TÚhas_streaming_inputF)
r.   r/   Úgetattrr0   r1   rx   r®   ru   ÚsuperrS   )	r    r3   r¿   Ú	s3_configÚsign_payloadÚchecksum_headerr4   r5   Ú	__class__s	           €r#   rS   z*CrtS3SigV4Auth._should_sha256_sign_payload½   só   ø€ ð  Ÿ™×+Ñ+¨OÓ<ˆÜ˜M¨4°Ó6ˆ	ð ÐØˆIð !—}‘}Ð%>ÀÓEˆØÐ#ØÐð (ˆØ"Ÿ?™?×.Ñ.¨z¸2Ó>ÐØ$×(Ñ(Ð)<Ó=ˆ	Ü�i¤Ô&¨9¯=©=¸Ó+>À(Ò+JØ'¨Ñ/ˆOà—‘×&Ñ& wÔ/Ø g§o¡oÑ5àð �?‰?×ÑÐ4°eÔ<Øô ‰wÑ2°7Ó;Ð;r&   c                  ó   — y©NTr±   r²   s     r#   rT   z0CrtS3SigV4Auth._should_add_content_sha256_headeræ   r½   r&   ©	r´   rµ   r¶   r]   r^   rK   rS   rT   Ú__classcell__©rÉ   s   @r#   r»   r»   ´   s   ø„ à"ÐØ!&Ðòô'<öRr&   r»   c                   óœ   — e Zd ZdZg d¢Zej                  j                  j                  Z	dZ
dZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zy)ÚCrtSigV4AsymAuthTr   c                 ó<   — || _         || _        || _        d | _        y r   r   r   s       r#   r$   zCrtSigV4AsymAuth.__init__÷   r%   r&   c                 ó`  — t        d«       | j                  €
t        «       ‚t        d¬«      }| j	                  |«      }| j                  |«       t        j                  j                  j                  | j                  j                  | j                  j                  | j                  j                  ¬«      }| j                  |«      rt        }n| j                  |«      r|r|}n	d }nt         }| j#                  |«      r%t        j                  j$                  j&                  }n$t        j                  j$                  j(                  }t        j                  j+                  t        j                  j,                  j.                  | j0                  || j2                  | j4                  || j6                  | j8                  | j:                  ||| j<                  ¬«      }| j?                  |«      }t        j                  jA                  ||«      }	|	jC                  «        | jE                  ||«       y )NÚSIGV4A_SIGNINGFr9   r;   r?   )#r   r   r   r   rK   rL   r   rM   rN   rO   rP   rQ   rR   r6   r   rS   r   rT   rU   rV   rW   rX   rY   ÚV4_ASYMMETRICr[   r   r   r\   r]   r^   r   r_   r`   ra   rb   rc   s
             r#   rk   zCrtSigV4AsymAuth.add_authý   sÇ  € ÜÐ,Ô-Ø×ÑÐ#Ü$Ó&Ð&ä+¸%Ô@ˆð ×3Ñ3°GÓ<ˆà×+Ñ+¨GÔ4ä%Ÿ{™{×AÑA×LÑLØ×*Ñ*×5Ñ5Ø"×.Ñ.×9Ñ9Ø×*Ñ*×0Ñ0ð  Mó  
Ðð ×.Ñ.¨wÔ7ÜAÑØ×-Ñ-¨gÔ6ÙØ#2Ñ à#'Ñ ä/Ðà×1Ñ1Ð2BÔCä—‘×3Ñ3×IÑIñ ô !Ÿ+™+×=Ñ=×BÑBˆKäŸ™×5Ñ5Ü—k‘k×5Ñ5×CÑCØ×/Ñ/Ø!5Ø×$Ñ$Ø×&Ñ&ØØ#×7Ñ7Ø"&×"=Ñ"=Ø&*×&EÑ&EØ.Ø$/Ø"&×"=Ñ"=ð 6ó 
ˆð ×8Ñ8¸ÓAˆÜ—‘×-Ñ-¨k¸>ÓJˆØ�‰ŒØ×#Ñ# G¨[Õ9r&   c                 óÄ  — t        |j                  «      }|j                  r|j                  nd}|j                  r]g }|j                  j	                  «       D ]&  \  }}t        |«      }|j                  |› d|› �«       Œ( |dz   dj                  |«      z   }n|j                  r|› d|j                  › �}t        j                  j                  |j                  j	                  «       «      }d }|j                  r8t        |j                  d«      r|j                  }nt        |j                  «      }t        j                  j!                  |j"                  |||¬«      }	|	S rm   rw   r„   s
             r#   r_   z.CrtSigV4AsymAuth._crt_request_from_aws_request3  r�   r&   c                 ó^   — t        j                  t        |j                  «      «      |_        y r   r�   r’   s      r#   rb   z'CrtSigV4AsymAuth._apply_signing_changesQ  r”   r&   c                 ó.   — |j                  «       t        vS r   r–   r˜   s      r#   r\   z$CrtSigV4AsymAuth._should_sign_headerW  r›   r&   c                 óÀ   — | j                   D ]  }||j                  v sŒ|j                  |= Œ  d|j                  vr#t        |j                  «      |j                  d<   y y r�   rŸ   r¡   s      r#   rL   z/CrtSigV4AsymAuth._modify_request_before_signingZ  r£   r&   c                 ó8   — |j                   j                  d«      S r¥   r¦   r§   s     r#   rK   z%CrtSigV4AsymAuth._get_existing_sha256d  r¨   r&   c                 ó¨   — |j                   j                  di «      }|j                  d«      }t        |t        «      xr |j                  d«      dk(  S r(   r-   r2   s       r#   r6   z/CrtSigV4AsymAuth._is_streaming_checksum_payloadg  r7   r&   c                 ór   — |j                   j                  d«      sy|j                  j                  dd«      S rª   r­   r§   s     r#   rS   z,CrtSigV4AsymAuth._should_sha256_sign_payloadl  r¯   r&   c                 ó
   — |d uS r   r±   r²   s     r#   rT   z2CrtSigV4AsymAuth._should_add_content_sha256_headerv  r³   r&   N)r´   rµ   r¶   r·   r    r   rM   r¸   r¹   r[   r]   r^   r$   rk   r_   rb   r\   rL   rK   r6   rS   rT   r±   r&   r#   rÐ   rÐ   ë   sh   „ Ø€Oò$Ð ð —k‘k×2Ñ2×GÑG€OØ!ÐØ!%Ðò+ò4:òlò<
ò<òBò;òPò
Dó,r&   rÐ   c                   ó2   ‡ — e Zd ZdZdZd„ Zˆ fd„Zd„ Zˆ xZS )ÚCrtS3SigV4AsymAuthFc                  ó   — y r   r±   r§   s     r#   rK   z'CrtS3SigV4AsymAuth._get_existing_sha256€  r½   r&   c                 ó4  •— |j                   j                  d«      }t        |dd «      }|€i }|j                  dd «      }|�|S |j                  j	                  d«      rd|j
                  vry|j                   j                  dd«      ryt        ‰| �  |«      S )	Nr¿   rÀ   r¬   r«   rÁ   TrÃ   F)r.   r/   rÄ   rx   r®   ru   rÅ   rS   )r    r3   r¿   rÆ   rÇ   rÉ   s        €r#   rS   z.CrtS3SigV4AsymAuth._should_sha256_sign_payload„  s¢   ø€ ð  Ÿ™×+Ñ+¨OÓ<ˆÜ˜M¨4°Ó6ˆ	ð ÐØˆIð !—}‘}Ð%>ÀÓEˆØÐ#ØÐð —‘×&Ñ& wÔ/Ø G§O¡OÑ3àð �?‰?×ÑÐ4°eÔ<Øô ‰wÑ2°7Ó;Ð;r&   c                  ó   — yrË   r±   r²   s     r#   rT   z4CrtS3SigV4AsymAuth._should_add_content_sha256_header¨  r½   r&   rÌ   rÎ   s   @r#   rÞ   rÞ   {  s   ø„ à"ÐØ!&Ðòô"<öHr&   rÞ   c                   óz   ‡ — e Zd ZdZej
                  j                  j                  Zefˆ fd„	Z	ˆ fd„Z
ˆ fd„Zˆ xZS )ÚCrtSigV4AsymQueryAuthé  c                 ó6   •— t         ‰| �  |||«       || _        y r   ©rÅ   r$   r   ©r    r   r!   r"   ÚexpiresrÉ   s        €r#   r$   zCrtSigV4AsymQueryAuth.__init__±  ó   ø€ ô 	‰Ñ˜ l°KÔ@Ø&-ˆÕ#r&   c                 óè  •— t         ‰| �  |«       |j                  j                  d«      }|dk(  r|j                  d= t	        |j
                  «      }t        |j                  d¬«      }|j                  «       D ��ci c]  \  }}||d   “Œ }}}|j                  r!|j                  t        |«      «       d|_	        t        |«      }|}	|	d   |	d   |	d   ||	d	   f}
t        |
«      |_        y c c}}w ©
Nzcontent-typez0application/x-www-form-urlencoded; charset=utf-8T)Úkeep_blank_valuesr   Ú é   é   é   )rÅ   rL   ru   r/   r   rx   r   r~   rz   ÚdataÚupdater   r   r   )r    r3   Úcontent_typer†   Úquery_string_partsÚkÚvÚ
query_dictÚnew_query_stringÚpÚnew_url_partsrÉ   s              €r#   rL   z4CrtSigV4AsymQueryAuth._modify_request_before_signing·  sñ   ø€ Ü‰Ñ.¨wÔ7ð —‘×*Ñ*¨>Ó:ˆØÐMÒMØ—‘ Ð/ô ˜WŸ[™[Ó)ˆ	ô & i§o¡oÈÔNÐØ*<×*BÑ*BÓ*D×E¡$ ! Q�a˜˜1™‘gÐEˆ
ÑEð �<Š<ð ×ÑÔ/°Ó8Ô9ØˆGŒLÜ2°:Ó>Ðð ˆØ˜1™˜q ™t Q q¡TÐ+;¸Q¸q¹TÐBˆÜ  Ó/ˆ�ùó1 Fs   Á=C.c                 óÐ   •— t         ‰| �  ||«       t        |j                  «      j                  }t        |j
                  «      }t        |d   |d   |d   ||d   f«      |_        y ©Nr   rî   rï   rð   ©rÅ   rb   r   rt   r~   rx   r   ©r    r…   r“   Úsigned_queryrù   rÉ   s        €r#   rb   z,CrtSigV4AsymQueryAuth._apply_signing_changesá  óa   ø€ ä‰Ñ& {Ð4FÔGäÐ 2× 7Ñ 7Ó8×>Ñ>ˆÜ�[—_‘_Ó%ˆô % a¨¡d¨A¨a©D°!°A±$¸ÀaÈÁdÐ%KÓLˆ�r&   ©r´   rµ   r¶   ÚDEFAULT_EXPIRESr   rM   r¸   ÚHTTP_REQUEST_QUERY_PARAMSr[   r$   rL   rb   rÍ   rÎ   s   @r#   rã   rã   ­  s:   ø„ Ø€OØ—k‘k×2Ñ2×LÑL€Oð ?Nõ.ô(0÷TMð Mr&   rã   c                   ó$   — e Zd ZdZdZdZd„ Zd„ Zy)ÚCrtS3SigV4AsymQueryAuthz¢S3 SigV4A auth using query parameters.
    This signer will sign a request using query parameters and signature
    version 4A, i.e a "presigned url" signer.
    Fc                  ó   — y©NFr±   r§   s     r#   rS   z3CrtS3SigV4AsymQueryAuth._should_sha256_sign_payloadü  ó   € ð
 r&   c                  ó   — yr  r±   r²   s     r#   rT   z9CrtS3SigV4AsymQueryAuth._should_add_content_sha256_header  ó   € àr&   N©r´   rµ   r¶   Ú__doc__r]   r^   rS   rT   r±   r&   r#   r  r  ò  s   „ ñð #ÐØ!&Ðòór&   r  c                   óz   ‡ — e Zd ZdZej
                  j                  j                  Zefˆ fd„	Z	ˆ fd„Z
ˆ fd„Zˆ xZS )ÚCrtSigV4QueryAuthrä   c                 ó6   •— t         ‰| �  |||«       || _        y r   ræ   rç   s        €r#   r$   zCrtSigV4QueryAuth.__init__  ré   r&   c                 ó@  •— t         ‰
| �  |«       |j                  j                  d«      }|dk(  r|j                  d= t	        |j
                  «      }t        |j                  d¬«      j                  «       D ��ci c]  \  }}||d   “Œ }}}|j                  r"|j                  |j                  «       i |_	        |j                  r!|j                  t        |«      «       d|_        t        |«      }|}|d   |d   |d   ||d	   f}	t        |	«      |_        y c c}}w rë   )rÅ   rL   ru   r/   r   rx   r   r~   rz   ry   rò   rñ   r   r   r   )r    r3   ró   r†   rõ   rö   r÷   rø   rù   rú   rÉ   s             €r#   rL   z0CrtSigV4QueryAuth._modify_request_before_signing  s  ø€ Ü‰Ñ.¨wÔ7ð —‘×*Ñ*¨>Ó:ˆØÐMÒMØ—‘ Ð/ô ˜WŸ[™[Ó)ˆ	ô !Ø—‘°4ôç‰e‹g÷	
á��1ð ˆq�‰t‰Gð
ˆ
ñ 
ð �>Š>Ø×Ñ˜gŸn™nÔ-ØˆGŒNð �<Š<ð ×ÑÔ/°Ó8Ô9ØˆGŒLÜ2°:Ó>Ðð ˆØ˜1™˜q ™t Q q¡TÐ+;¸Q¸q¹TÐBˆÜ  Ó/ˆ�ùó?
s   Á;Dc                 óÐ   •— t         ‰| �  ||«       t        |j                  «      j                  }t        |j
                  «      }t        |d   |d   |d   ||d   f«      |_        y rü   rý   rþ   s        €r#   rb   z(CrtSigV4QueryAuth._apply_signing_changesB  r   r&   r  rÎ   s   @r#   r  r    s:   ø„ Ø€OØ—k‘k×2Ñ2×LÑL€Oð ?Nõ.ô.0÷`Mð Mr&   r  c                   ó$   — e Zd ZdZdZdZd„ Zd„ Zy)ÚCrtS3SigV4QueryAutha  S3 SigV4 auth using query parameters.
    This signer will sign a request using query parameters and signature
    version 4, i.e a "presigned url" signer.
    Based off of:
    http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html
    Fc                  ó   — yr  r±   r§   s     r#   rS   z/CrtS3SigV4QueryAuth._should_sha256_sign_payload_  r  r&   c                  ó   — yr  r±   r²   s     r#   rT   z5CrtS3SigV4QueryAuth._should_add_content_sha256_headerf  r
  r&   Nr  r±   r&   r#   r  r  S  s   „ ñð #ÐØ!&Ðòór&   r  )Úv4zv4-queryÚv4aÚs3v4z
s3v4-queryÚs3v4azs3v4a-queryN)Úior   Úbotocore.authr   r   r   r   r   r	   Úbotocore.compatr
   r   r   r   r   r   Úbotocore.exceptionsr   Úbotocore.useragentr   Úbotocore.utilsr   r   r»   rÐ   rÞ   rã   r  r  r  ÚCRT_AUTH_TYPE_MAPSr±   r&   r#   ú<module>r!     s¾   ðõ ÷÷ ÷÷ õ 3Ý 2Ý 2ôL,�:ô L,ô^4�\ô 4ônM,�zô M,ô`/Ð)ô /ôdBMÐ,ô BMôJÐ3ô ô,HM˜ô HMôVÐ+ô ð6 Ø!ØØØ%ØØ*ñÑ r&   