§
    ÂiÐ  ã                   óÎ   — d Z ddlmZ ddlmZ ddlmZ ddlmZ 	 ddlmZ n# e$ r dZY nw xY w G d„ d	ej	        ¦  «        Z	d
„ Z
 G d„ dej        ej        ej        ¦  «        ZdS )a  Google App Engine standard environment support.

This module provides authentication and signing for applications running on App
Engine in the standard environment using the `App Identity API`_.


.. _App Identity API:
    https://cloud.google.com/appengine/docs/python/appidentity/
é    )Ú_helpers)Úcredentials)Úcrypt)Ú
exceptions)Úapp_identityNc                   ód   — e Zd ZdZed„ ¦   «         Z ej        ej	        ¦  «        d„ ¦   «         Z
dS )ÚSignerz»Signs messages using the App Engine App Identity service.

    This can be used in place of :class:`google.auth.crypt.Signer` when
    running in the App Engine standard environment.
    c                 ó   — dS )zÖOptional[str]: The key ID used to identify this private key.

        .. warning::
           This is always ``None``. The key ID used by App Engine can not
           be reliably determined ahead of time.
        N© ©Úselfs    ú`/var/www/html/jarvis.com/web/backend/venv/lib/python3.11/site-packages/google/auth/app_engine.pyÚkey_idzSigner.key_id.   s	   € ð ˆtó    c                 ó\   — t          j        |¦  «        }t          j        |¦  «        \  }}|S ©N)r   Úto_bytesr   Ú	sign_blob)r   ÚmessageÚ_Ú	signatures       r   ÚsignzSigner.sign8   s,   € åÔ# GÑ,Ô,ˆÝ#Ô-¨gÑ6Ô6‰ˆˆ9ØÐr   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úpropertyr   r   Úcopy_docstringr   r	   r   r   r   r   r	   r	   '   sd   € € € € € ðð ð ðð ñ „Xðð €XÔ˜Uœ\Ñ*Ô*ðð ñ +Ô*ðð ð r   r	   c                  ó^   — t           €t          j        d¦  «        ‚t          j        ¦   «         S )zÇGets the project ID for the current App Engine application.

    Returns:
        str: The project ID

    Raises:
        google.auth.exceptions.OSError: If the App Engine APIs are unavailable.
    Nú&The App Engine APIs are not available.)r   r   ÚOSErrorÚget_application_idr   r   r   Úget_project_idr#   ?   s+   € õ ÐÝÔ Ð!IÑJÔJÐJÝÔ*Ñ,Ô,Ð,r   c                   óâ  ‡ — e Zd ZdZ	 	 	 	 dˆ fd„	Z ej        ej        ¦  «        d„ ¦   «         Z	e
d„ ¦   «         Ze
d„ ¦   «         Z ej        ej        ¦  «        dd„¦   «         Z ej        ej        ¦  «        d„ ¦   «         Z ej        ej        ¦  «        d	„ ¦   «         Ze
 ej        ej        ¦  «        d
„ ¦   «         ¦   «         Ze
 ej        ej        ¦  «        d„ ¦   «         ¦   «         Zˆ xZS )ÚCredentialsz‰App Engine standard environment credentials.

    These credentials use the App Engine App Identity API to obtain access
    tokens.
    Nc                 óê   •— t           €t          j        d¦  «        ‚t          t          | ¦  «                             ¦   «          || _        || _        || _        t          ¦   «         | _
        || _        dS )aÚ  
        Args:
            scopes (Sequence[str]): Scopes to request from the App Identity
                API.
            default_scopes (Sequence[str]): Default scopes passed by a
                Google client library. Use 'scopes' for user-defined scopes.
            service_account_id (str): The service account ID passed into
                :func:`google.appengine.api.app_identity.get_access_token`.
                If not specified, the default application service account
                ID will be used.
            quota_project_id (Optional[str]): The project ID used for quota
                and billing.

        Raises:
            google.auth.exceptions.OSError: If the App Engine APIs are unavailable.
        Nr    )r   r   r!   Úsuperr%   Ú__init__Ú_scopesÚ_default_scopesÚ_service_account_idr	   Ú_signerÚ_quota_project_id)r   ÚscopesÚdefault_scopesÚservice_account_idÚquota_project_idÚ	__class__s        €r   r(   zCredentials.__init__Y   si   ø€ õ4 ÐÝÔ$Ð%MÑNÔNÐNå�k˜4Ñ Ô ×)Ò)Ñ+Ô+Ð+ØˆŒØ-ˆÔØ#5ˆÔ Ý‘x”xˆŒØ!1ˆÔÐÐr   c                 ó°   — | j         �| j         n| j        }t          j        || j        ¦  «        \  }}t          j        |¦  «        }||c| _        | _        d S r   )	r)   r*   r   Úget_access_tokenr+   r   ÚutcfromtimestampÚtokenÚexpiry)r   Úrequestr.   r6   Úttlr7   s         r   ÚrefreshzCredentials.refresh}   sT   € à!%¤Ð!9�”�¸tÔ?Sˆå!Ô2°6¸4Ô;SÑTÔT‰
ˆˆsÝÔ*¨3Ñ/Ô/ˆà"'¨ÐˆŒ
�D”K�K�Kr   c                 óN   — | j         €t          j        ¦   «         | _         | j         S )zThe service account email.)r+   r   Úget_service_account_namer   s    r   Úservice_account_emailz!Credentials.service_account_email†   s'   € ð Ô#Ð+Ý'3Ô'LÑ'NÔ'NˆDÔ$ØÔ'Ð'r   c                 ó"   — | j          o| j         S )zˆChecks if the credentials requires scopes.

        Returns:
            bool: True if there are no scopes set otherwise False.
        )r)   r*   r   s    r   Úrequires_scopeszCredentials.requires_scopes�   s   € ð ”<ÐÐ<¨Ô(<Ð$<Ð<r   c                 óH   — |                       ||| j        | j        ¬¦  «        S )N)r.   r/   r0   r1   )r2   r+   r1   )r   r.   r/   s      r   Úwith_scopeszCredentials.with_scopes–   s/   € à�~Š~ØØ)Ø#Ô7Ø!Ô2ð	 ñ 
ô 
ð 	
r   c                 óF   — |                       | j        | j        |¬¦  «        S )N)r.   r0   r1   )r2   r)   r+   )r   r1   s     r   Úwith_quota_projectzCredentials.with_quota_projectŸ   s+   € à�~Š~Ø”<Ø#Ô7Ø-ð ñ 
ô 
ð 	
r   c                 ó6   — | j                              |¦  «        S r   )r,   r   )r   r   s     r   Ú
sign_byteszCredentials.sign_bytes§   s   € àŒ|× Ò  Ñ)Ô)Ð)r   c                 ó   — | j         S r   )r=   r   s    r   Úsigner_emailzCredentials.signer_email«   s   € ð Ô)Ð)r   c                 ó   — | j         S r   )r,   r   s    r   ÚsignerzCredentials.signer°   s   € ð Œ|Ðr   )NNNNr   )r   r   r   r   r(   r   r   r   r%   r:   r   r=   r?   ÚScopedrA   ÚCredentialsWithQuotaProjectrC   ÚSigningrE   rG   rI   Ú__classcell__)r2   s   @r   r%   r%   P   s®  ø€ € € € € ðð ð ØØØð"2ð "2ð "2ð "2ð "2ð "2ðH €XÔ˜[Ô4Ñ5Ô5ð0ð 0ñ 6Ô5ð0ð ð(ð (ñ „Xð(ð ð=ð =ñ „Xð=ð €XÔ˜[Ô/Ñ0Ô0ð
ð 
ð 
ñ 1Ô0ð
ð €XÔ˜[ÔDÑEÔEð
ð 
ñ FÔEð
ð €XÔ˜[Ô0Ñ1Ô1ð*ð *ñ 2Ô1ð*ð Ø€XÔ˜[Ô0Ñ1Ô1ð*ð *ñ 2Ô1ñ „Xð*ð Ø€XÔ˜[Ô0Ñ1Ô1ðð ñ 2Ô1ñ „Xðð ð ð ð r   r%   )r   Úgoogle.authr   r   r   r   Úgoogle.appengine.apir   ÚImportErrorr	   r#   rJ   rL   rK   r%   r   r   r   ú<module>rQ      s  ððð ð !Ð  Ð  Ð  Ð  Ð  Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "ðØ1Ð1Ð1Ð1Ð1Ð1Ð1øØð ð ð Ø€L€L€Lðøøøð
ð ð ð ð ˆUŒ\ñ ô ð ð0-ð -ð -ð"cð cð cð cð cØÔ˜Ô+¨[Ô-Tñcô cð cð cð cs   œ# £-¬-