403Webshell
Server IP : 178.105.222.151  /  Your IP : 216.73.216.38
Web Server : nginx/1.28.3
System : Linux MNK 7.0.0-15-generic #15-Ubuntu SMP PREEMPT_DYNAMIC Wed Apr 22 16:06:43 UTC 2026 x86_64
User : www-data ( 33)
PHP Version : 8.5.4
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/launchpadlib/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/launchpadlib/__pycache__/credentials.cpython-314.pyc
+
Z4i�v���Rt.R7Ot^RIHtHt^RIt^R	IHt^RIt^RI	t	^R
I
H
t
^RIt^RIH
t
^RIt^RIHtHtHt^RIt^R
IHt^RIHtHtHtHt^RIHtRtRtRt ^t!R8t"]#]$]%3t&Rt'Rt(!RR]4t)!RR]4t!RR]4t*!RR4t+!RR]+4t,!RR]+4t-!RR]+4t.!RR4t/!R R!]/4t0!R"R]04t1!R#R$]24t3!R%R&]34t4!R'R(]34t5!R)R*]54t6!R+R,]54t7!R-R.]74t8!R/R0]34t9!R1R2]34t:!R3R4]34t;!R5R6]34t<R#)9z4launchpadlib credentials and authentication support.�AccessToken�AnonymousAccessToken� AuthorizeRequestTokenWithBrowser�CredentialStore�RequestTokenAuthorizationEngine�Credentials)�	b64decode�	b64encodeN)�StringIO)�select)�stdin)�	urlencode�urljoin�parse_qs)�	HTTPError)r�Consumer�OAuthAuthorizer�SystemWideConsumer)�urisz+request-tokenz
+access-tokenz+authorize-tokenc�T�\\PPRR44#)z�Whether the user has disabled SSL certificate connection.

Some testing servers have broken certificates.  Rather than raising an
error, we allow an environment variable,
``LP_DISABLE_SSL_CERTIFICATE_VALIDATION`` to disable the check.
�%LP_DISABLE_SSL_CERTIFICATE_VALIDATIONF)�bool�os�environ�get���:/usr/lib/python3/dist-packages/launchpadlib/credentials.py�$_ssl_certificate_validation_disabledr?s����
�
���F��N�O�Orc��\4p\P!VR7PVRV\	V4R7wrEVP
^�8wd\
WE4hWE3#)z�POST to ``url`` with ``headers`` and a body of urlencoded ``params``.

Wraps it up to make sure we avoid the SSL certificate validation if our
environment tells us to.  Also, raises an error on non-200 statuses.
)�"disable_ssl_certificate_validation�POST)�method�headers�body)r�httplib2�Http�requestr
�statusr)�urlr#�params�
cert_disabled�response�contents&&&   r�
_http_postr.Ls[��9�:�M� �
�
�+8��
�g�c�&�'�	�&�8I�g�J��H����#����*�*���rc�a�]tRt^[toRtRtRtRtRtRt	Rt
]R4tR]
P]3R	lt]
P3R
ltRtVtR#)rz�Standard credentials storage and usage class.

:ivar consumer: The consumer (application)
:type consumer: `Consumer`
:ivar access_token: Access information on behalf of the user
:type access_token: `AccessToken`
N�uri�dictz<BR>�
c��\4pVPV4VP4p\V\4'dVPR4pV#)zUTurn this object into a string.

This should probably be moved into OAuthAuthorizer.
�utf-8)r
�save�getvalue�
isinstance�str�encode)�self�sio�
serializeds&  r�	serialize�Credentials.serializeksD��
�j���	�	�#���\�\�^�
��j�#�&�&�#�*�*�7�3�J��rc��V!4p\V\4'gVPR4pVP\	V44V#)zmCreate a `Credentials` object from a serialized string.

This should probably be moved into OAuthAuthorizer.
r4)r7r8�decode�loadr
)�cls�value�credentialss&& r�from_string�Credentials.from_stringws>���e���%��%�%��L�L��)�E�����%��)��rc���VPfQR4hVPeQR4h\P!V4p\	VPP
RRR7pV\,pRV/pW0P8XdRVR&\WVV4wrx\V\4'dVPR	4pW0P8Xd;\P!V4pVeWR
&\PV4VnV#\P#V4VnV:\$:RVP P
:2pVe!WP nVRV,,
pV#)
a[Request an OAuth token to Launchpad.

Also store the token in self._request_token.

This method must not be called on an object with no consumer
specified or if an access token has already been obtained.

:param context: The context of this token, that is, its scope of
    validity within Launchpad.
:param web_root: The URL of the website on which the token
    should be requested.
:token_format: How the token should be
    presented. URI_TOKEN_FORMAT means just return the URL to
    the page that authorizes the token.  DICT_TOKEN_FORMAT
    means return a dictionary describing the token
    and the site's authentication policy.

:return: If token_format is URI_TOKEN_FORMAT, the URL for the
    user to authorize the `AccessToken` provided by
    Launchpad. If token_format is DICT_TOKEN_FORMAT, a dict of
    information about the new access token.
zConsumer not specified.zAccess token already obtained.�	PLAINTEXT�&)�oauth_consumer_key�oauth_signature_method�oauth_signature�Refererzapplication/json�Acceptr4�
lp.context�
?oauth_token=z&lp.context=%s)�consumer�access_tokenr�lookup_web_rootr1�key�request_token_page�DICT_TOKEN_FORMATr.r7�bytesr@�json�loadsr�from_params�_request_tokenrE�authorize_token_page�context)	r:r]�web_root�token_formatr*r)r#r,r-s	&&&&     r�get_request_token�Credentials.get_request_token�sN��8�}�}�(�C�*C�C�(�� � �(�J�*J�J�(��'�'��1���#�}�}�0�0�#.��
��
�+�+���h�'���1�1�1� 2�G�H��&�s�V�<����g�u�%�%��n�n�W�-�G��1�1�1��Z�Z��(�F��"�'.�|�$�"-�"9�"9�&�"A�D���M�"-�"9�"9�'�"B�D���$��#�#�'�'��C�
�"�.5�#�#�+��'�'�1�1���Jrc�r�VPfQR4h\P!V4p\VPP
RVPP
RVPP,R7pV\,pRV/p\W4V4wrV\PV4VnR#)a4Exchange the previously obtained request token for an access token.

This method must not be called unless get_request_token() has been
called and completed successfully.

The access token will be stored as self.access_token.

:param web_root: The base URL of the website that granted the
    request token.
Nz5get_request_token() doesn't seem to have been called.rHz&%s)rJrK�oauth_tokenrLrM)r[rrSr1rQrT�secret�access_token_pager.rrErR)r:r^r*r)r#r,r-s&&     r�'exchange_request_token_for_access_token�3Credentials.exchange_request_token_for_access_token�s���
���+�	C�B�	C�+��'�'��1���#�}�}�0�0�#.��+�+�/�/�!�D�$7�$7�$>�$>�>�	
���*�*���h�'��&�s�V�<���'�3�3�G�<��r)r[rR)�__name__�
__module__�__qualname__�__firstlineno__�__doc__r[�URI_TOKEN_FORMATrV�ITEM_SEPARATOR�NEWLINEr=�classmethodrEr�STAGING_WEB_ROOTr`rf�__static_attributes__�__classdictcell__��
__classdict__s@rrr[sl������N������N��G�
��	��	���&�&�%�	;�|�,�,�=�=rc�Da�]tRt^�toRt]R4t]R4tRtVt	R#)rzAn OAuth access token.c�Z�VR,pVR,pVPR4pV!W#V4#)z:Create and return a new `AccessToken` from the given dict.rc�oauth_token_secretrO)r)rBr*rTrdr]s&&   rrZ�AccessToken.from_params�s4���]�#���,�-���*�*�\�*���3��(�(rc��\V\4'gVPR4p\VRR7pVR,p\	V4^8XgQR4hV^,pVR,p\	V4^8XgQR4hV^,pVPR4pVe!\	V4^8XgQR	4hV^,pV!W4V4#)
z<Create and return a new `AccessToken` from the given string.r4F)�keep_blank_valuesrcz/Query string must have exactly one oauth_token.rxz*Query string must have exactly one secret.rOz*Query string must have exactly one context)r7r8r@r�lenr)rB�query_stringr*rTrdr]s&&    rrE�AccessToken.from_string�s����,��,�,�'�.�.�w�7�L��,�%�@���]�#���3�x�1�}�O�O�O�}��!�f���,�-���6�{�a��M�!M�M�������*�*�\�*�����G���!�
<�;�
<�!��a�j�G��3��(�(rrN)
rhrirjrkrlrprZrErrrsrts@rrr�s.���� ��)��)��)��)rc�6aa�]tRt^�toRtV3RltRtVtV;t#)rzgAn OAuth access token that doesn't authenticate anybody.

This token can be used for anonymous access.
c�(<�\SV`RR4R#)�N��super�__init__)r:�	__class__s&�rr��AnonymousAccessToken.__init__s���
����R� rr)	rhrirjrkrlr�rrrs�
__classcell__�r�rus@@rrr�s�����
!�!rc�Fa�]tRtRtoRtR
RltRtRtRtRt	R	t
VtR#)riz�Store OAuth credentials locally.

This is a generic superclass. To implement a specific way of
storing credentials locally you'll need to subclass this class,
and implement `do_save` and `do_load`.
Nc��WnR#)z�Constructor.

:param credential_save_failed: A callback to be invoked if the
    save to local storage fails. You should never invoke this
    callback yourself! Instead, you should raise an exception
    from do_save().
N��credential_save_failed)r:r�s&&rr��CredentialStore.__init__s
��'=�#rc��VPW4V# \dh\d,pTPfThTP4Rp?T#Rp?ii;i)z�Save the credentials and invoke the callback on failure.

Do not override this method when subclassing. Override
do_save() instead.
N)�do_save�EXPLOSIVE_ERRORS�	Exceptionr�)r:rD�unique_consumer_id�es&&& rr5�CredentialStore.saves^��	*��L�L��9����
 �	���	*��*�*�2����'�'�)�)����		*�s��A�A� A�Ac��\4h)z�Store newly-authorized credentials locally for later use.

:param credentials: A Credentials object to save.
:param unique_consumer_id: A string uniquely identifying an
    OAuth consumer on a Launchpad instance.
��NotImplementedError)r:rDr�s&&&rr��CredentialStore.do_save)s
��"�#�#rc�$�VPV4#)a�Retrieve credentials from a local store.

This method is the inverse of `save`.

There's no special behavior in this method--it just calls
`do_load`. There _is_ special behavior in `save`, and this
way, developers can remember to implement `do_save` and
`do_load`, not `do_save` and `load`.

:param unique_key: A string uniquely identifying an OAuth consumer
    on a Launchpad instance.

:return: A `Credentials` object if one is found in the local
    store, and None otherise.
)�do_load�r:�
unique_keys&&rrA�CredentialStore.load2s�� �|�|�J�'�'rc��\4h)aRetrieve credentials from a local store.

This method is the inverse of `do_save`.

:param unique_key: A string uniquely identifying an OAuth consumer
    on a Launchpad instance.

:return: A `Credentials` object if one is found in the local
    store, and None otherise.
r�r�s&&rr��CredentialStore.do_loadDs
��"�#�#rr��N)rhrirjrkrlr�r5r�rAr�rrrsrts@rrrs(�����=�� $�(�$$�$rc�Zaa�]tRtRtoRtRtR	V3Rllt]R4tRt	Rt
RtVtV;t
#)
�KeyringCredentialStoreiRz�Store credentials in the GNOME keyring or KDE wallet.

This is a good solution for desktop applications and interactive
scripts. It doesn't work for non-interactive scripts, or for
integrating third-party websites into Launchpad.
s<B64>c�h<�\SV`V4RVnV'd\V4VnR#R#r�)r�r��	_fallback�MemoryCredentialStore)r:r��fallbackr�s&&&�rr��KeyringCredentialStore.__init__\s-���
���/�0�����2�3I�J�D�N�rc��R\49d^RIsR\49d
^RIHsR#R# \d\
sR#i;i)aEnsure the keyring module is imported (postponing side effects).

The keyring module initializes the environment-dependent backend at
import time (nasty).  We want to avoid that initialization because it
may do things like prompt the user to unlock their password store
(e.g., KWallet).
�keyringN�NoKeyringError)r�)�globalsr��keyring.errorsr��ImportError�RuntimeErrorrrr�_ensure_keyring_imported�/KeyringCredentialStore._ensure_keyring_importedbs>���G�I�%���7�9�,�
.�9�-���
.�!-��
.�s�.�A�Ac��VP4VP4pVP\V4,p\PRW#P
R44R# \dZp\\8XdR\T49dhTP'd"TPPY4Rp?R#hRp?ii;i)z2Store newly-authorized credentials in the keyring.�launchpadlibr4�$No recommended backend was availableN)r�r=�	B64MARKERr	r��set_passwordr@r�r�r8r�r5)r:rDr�r<r�s&&&  rr��KeyringCredentialStore.do_saveus����%�%�'� �*�*�,�
��^�^�i�
�&;�;�
�	�� � ��
�,=�,=�g�,F�
���	��,�.�:�#�a�&�H���~�~�~����#�#�K�<�<���	�s#�%A%�%C	�01C�"C�C�C	c�t�VP4\PRV4pTe�\T\
4'dTPR4pTPTP4'd#\T\TP4R4p\P!T4pT#R# \dYp\\8XdR\T49dhTP'd!TPPT4uRp?#hRp?ii;i \dR#i;i \"dR#i;i)z&Retrieve credentials from the keyring.r�r�N�utf8)r�r��get_passwordr�r�r8r�rAr7r9�
startswithr�rr|�	TypeErrorrrEr�)r:r��credential_stringr�rDs&&   rr��KeyringCredentialStore.do_load�s!���%�%�'�	� '� 4� 4��
�!���(��+�S�1�1�$5�$<�$<�V�$D�!� �+�+�D�N�N�;�;� �(1�)�#�d�n�n�*=�*?�@�)�%�
�)�5�5�6G�H��"�"���A�	��,�.�:�#�a�&�H���~�~�~��~�~�*�*�:�6�6���	��(!� � � ���
��	
�sM�B0�5!D�D(�0D�;1D�-D�D�
D�D�D%�$D%�(D7�6D7)r�)NF)rhrirjrkrlr�r��staticmethodr�r�r�rrrsr�r�s@@rr�r�Rs:������I�K��.��.�$�2'�'rr�c�Faa�]tRtRtoRtRV3RlltRtRtRtVt	V;t
#)�UnencryptedFileCredentialStorei�z�Store credentials unencrypted in a file on disk.

This is a good solution for scripts that need to run without any
user interaction.
c�2<�\SV`V4WnR#r�)r�r��filename)r:r�r�r�s&&&�rr��'UnencryptedFileCredentialStore.__init__�s���
���/�0� �
rc�<�VPVP4R#)zSave the credentials to disk.N)�save_to_pathr��r:rDr�s&&&rr��&UnencryptedFileCredentialStore.do_save�s��� � ����/rc��\PPVP4'dZ\P!VP4\P
,^8Xg \PVP4#R#)zLoad the credentials from disk.N)r�path�existsr��stat�ST_SIZEr�load_from_pathr�s&&rr��&UnencryptedFileCredentialStore.do_load�sQ��
�G�G�N�N�4�=�=�)�)��G�G�D�M�M�*�4�<�<�8�A�=��-�-�d�m�m�<�<�r)r�r��rhrirjrkrlr�r�r�rrrsr�r�s@@rr�r��s�����!�0��rr�c�Faa�]tRtRtoRtRV3RlltRtRtRtVt	V;t
#)r�i�z�CredentialStore that stores keys only in memory.

This can be used to provide a CredentialStore instance without
actually saving any key to persistent storage.
c�4<�\SV`V4/VnR#r�)r�r��_credentials)r:r�r�s&&�rr��MemoryCredentialStore.__init__�s���
���/�0���rc�"�WPV&R#)z!Store the credentials in our dictN�r�r�s&&&rr��MemoryCredentialStore.do_save�s��(3���*�%rc�8�VPPV4#)z&Retrieve the credentials from our dict)r�rr�s&&rr��MemoryCredentialStore.do_load�s��� � �$�$�Z�0�0rr�r�r�r�s@@rr�r��s������4�1�1rr�c�Za�]tRtRtoRtRtRRlt]R4tRt	Rt
R	tR
tRt
VtR#)
ri�aThe superclass of all request token authorizers.

This base class does not implement request token authorization,
since that varies depending on how you want the end-user to
authorize a request token. You'll need to subclass this class and
implement `make_end_user_authorize_token`.
�UNAUTHORIZEDNc�J�\P!V4Vn\P!V4VnVfVf\R4hVeVe\RV:RV:R24hVfR.p\
V4pM
\V4pTpWPnW n	T;'g.Vn
R#)a�Base class initialization.

:param service_root: The root of the Launchpad instance being
    used.

:param application_name: The name of the application that
    wants to use launchpadlib. This is used in conjunction
    with a desktop-wide integration.

    If you specify this argument, your values for
    consumer_name and allow_access_levels are ignored.

:param consumer_name: The OAuth consumer name, for an
    application that wants its own point of integration into
    Launchpad. In almost all cases, you want to specify
    application_name instead and do a desktop-wide
    integration. The exception is when you're integrating a
    third-party website into Launchpad.

:param allow_access_levels: A list of the Launchpad access
    levels to present to the user. ('READ_PUBLIC' and so on.)
    Your value for this argument will be ignored during a
    desktop-wide integration.
:type allow_access_levels: A list of strings.
Nz:You must provide either application_name or consumer_name.zOYou must provide only one of application_name and consumer_name. (You provided z and z.)�DESKTOP_INTEGRATION)r�lookup_service_root�service_root�web_root_for_service_rootr^�
ValueErrorrrrQ�application_name�allow_access_levels)r:r�r��
consumer_namer�rQs&&&&& rr��(RequestTokenAuthorizationEngine.__init__�s���@!�4�4�\�B����6�6�|�D��
��#�
�(=��L��
��'�M�,E��$�]�4��
�� �$9�"9��)�*:�;�H� �
�.�H�,�� �
� 0��#6�#<�#<�"�� rc�^�VPPR,VP,#)z7Return a string identifying this consumer on this host.�@)rQrTr�)r:s&rr��2RequestTokenAuthorizationEngine.unique_consumer_id0s$���}�}� � �3�&��):�):�:�:rc���\:RV:2pRp\VP4^8�d)W#VPVP4,,
p\	VP
V4#)z�Return the authorization URL for a request token.

This is the URL the end-user must visit to authorize the
token. How exactly does this happen? That depends on the
subclass implementation.
rPz&allow_permission=)r\r|r��joinrr^)r:�
request_token�page�allow_permissions&&  r�authorization_url�1RequestTokenAuthorizationEngine.authorization_url5s`��';�M�J��/���t�'�'�(�1�,��'7�'<�'<��(�(�(��
�D��t�}�}�d�+�+rc��VPV4pVPW4VPfR#VPWP4V#)a�Authorize a token and associate it with the given credentials.

If the credential store runs into a problem storing the
credential locally, the `credential_save_failed` callback will
be invoked. The callback will not be invoked if there's a
problem authorizing the credentials.

:param credentials: A `Credentials` object. If the end-user
    authorizes these credentials, this object will have its
    .access_token property set.

:param credential_store: A `CredentialStore` object. If the
    end-user authorizes the credentials, they will be
    persisted locally using this object.

:return: If the credentials are successfully authorized, the
    return value is the `Credentials` object originally passed
    in. Otherwise the return value is None.
N)r`�make_end_user_authorize_tokenrRr5r�)r:rD�credential_store�request_token_strings&&& r�__call__�(RequestTokenAuthorizationEngine.__call__DsL��( $�5�5�k�B���*�*�;�M��#�#�+�����k�+B�+B�C��rc�j�VPVP\PR7pVR,#)zLGet a new request token from the server.

:param return: The request token.
)r^r_rc)r`r^rrV)r:rD�authorization_jsons&& rr`�1RequestTokenAuthorizationEngine.get_request_tokenbs6��
)�:�:��]�]��1N�1N�;�
��"�-�0�0rc��\4h)a�Authorize the given request token using the given credentials.

Your subclass must implement this method: it has no default
implementation.

Because an access token may expire or be revoked in the middle
of a session, this method may be called at arbitrary points in
a launchpadlib session, or even multiple times during a single
session (with a different request token each time).

In most cases, however, this method will be called at the
beginning of a launchpadlib session, or not at all.
r�)r:rDr�s&&&rr��=RequestTokenAuthorizationEngine.make_end_user_authorize_tokenls
��"�#�#r)r�r�rQr�r^�NNN)rhrirjrkrl�UNAUTHORIZED_ACCESS_LEVELr��propertyr�r�r�r`r�rrrsrts@rrr�sE�����!/��>=�@�;��;�
,��<1�$�$rc�Ja�]tRtRtoRtRtRtRtRtRt	Rt
R	tR
tVt
R#)�AuthorizeRequestTokenWithURLi}z�Authorize using a URL.

This authorizer simply shows the URL for the user to open for
authorization, and waits until the server responds.
z�Please open this authorization page:
 (%s)
in your browser. Use your browser to authorize
this program to access Launchpad on your behalf.z.Press Enter after authorizing in your browser.c��\V4R#)z�Display a message.

By default, prints the message to standard output. The message
does not require any user interaction--it's solely
informative.
N)�print)r:�messages&&r�output�#AuthorizeRequestTokenWithURL.output�s��	�g�rc�J�VPVPV,4R#)�Notify the end-user of the URL.N)r�WAITING_FOR_USER)r:r�s&&r�!notify_end_user_authorization_url�>AuthorizeRequestTokenWithURL.notify_end_user_authorization_url�s�����D�)�)�,=�=�>rc�h�VPVP4TPRJ# \d|pTPPR8Xd\TP4hTPPR8wd\R4\T4\TP4hRp?ii;i)z Check if the end-user authorizedi�i�z#Unexpected response from Launchpad:N)
rfr^rr,r(�EndUserDeclinedAuthorizationr-r�EndUserNoAuthorizationrR)r:rDr�s&& r�check_end_user_authorization�9AuthorizeRequestTokenWithURL.check_end_user_authorization�s���
	8��?�?��
�
�N��'�'�t�3�3���	8��z�z� � �C�'�3�1�9�9�=�=��:�:�$�$��+��?�@��!�H�,�Q�Y�Y�7�7��	8�s�+�B1�A6B,�,B1c��VPVP4\P!4VP	V4R#)�"Wait for the end-user to authorizeN)r�WAITING_FOR_LAUNCHPADr�readliner)r:rDs&&r�wait_for_end_user_authorization�<AuthorizeRequestTokenWithURL.wait_for_end_user_authorization�s,�����D�.�.�/�
�����)�)�+�6rc�l�VPV4pVPV4VPV4R#)z2Have the end-user authorize the token using a URL.N)r�rr)r:rDr�r�s&&& rr��:AuthorizeRequestTokenWithURL.make_end_user_authorize_token�s0�� �2�2�=�A���.�.�/@�A��,�,�[�9rrN)rhrirjrkrlrrrrrrr�rrrsrts@rr�r�}s;�����	;��M���?�4�$7�:�:rr�c�`aa�]tRtRtoRtRtRt^tR
tRt	RV3Rllt
V3RltRtR	t
VtV;t#)ri�a;Authorize using a URL that pops-up automatically in a browser.

This authorizer simply opens up the end-user's web browser to a
Launchpad URL and lets the end-user authorize the request token
themselves.

This is the same as its superclass, except this class also
performs the browser automatic opening of the URL.
z�The authorization page:
 (%s)
should be opening in your browser. Use your browser to authorize
this program to access Launchpad on your behalf.z/Press Enter to continue or wait (%d) seconds...z5Waiting to hear from Launchpad about your decision...c�*<�\SV`WRV4R#)aConstructor.

:param service_root: See `RequestTokenAuthorizationEngine`.
:param application_name: See `RequestTokenAuthorizationEngine`.
:param consumer_name: The value of this argument is
    ignored. If we have the capability to open the end-user's
    web browser, we must be running on the end-user's computer,
    so we should do a full desktop integration.
:param credential_save_failed: See `RequestTokenAuthorizationEngine`.
:param allow_access_levels: The value of this argument is
    ignored, for the same reason as consumer_name.
Nr�)r:r�r�r�r�r�r�s&&&&&&�rr��)AuthorizeRequestTokenWithBrowser.__init__�s���.	����D�2H�	
rc��<�\SV`V4\P!4p\	VRR4pW0P
9pV'dkVPVPVP,4\\...VP4wppV'd\P!4Ve\P!V4R#R# \PdRpRpL�i;i)r�basenameNF)r�r�
webbrowserr�getattr�TERMINAL_BROWSERS�Errorr�TIMEOUT_MESSAGE�TIMEOUTrrr�open)r:r��browser_obj�browser�console_browser�rlist�_r�s&&     �rr�BAuthorizeRequestTokenWithBrowser.notify_end_user_authorization_url�s����
��1�2C�D�	$�$�.�.�*�K��k�:�t�<�G�%�)?�)?�?�O�
��K�K��,�,�t�|�|�;�<�!�%��"�b�$�,�,�?�K�E�1�a����� ��"��O�O�-�.�#�����	$��K�#�O�	$�s�0C�C.�-C.c��VPVP4\P!4pVPfs\P!\
4VP
V4'dR#\P!4V\,8�gKj\R\,4hR# \dLLi;i)rNzTimed out after %d seconds.)
rr�timerR�sleep�access_token_poll_timerr�access_token_poll_timeout�TokenAuthorizationTimedOut)r:rD�
start_times&& rr�@AuthorizeRequestTokenWithBrowser.wait_for_end_user_authorizations������D�.�.�/��Y�Y�[�
��&�&�.��J�J�-�.�
��4�4�[�A�A��B��y�y�{�j�+D�D�D�0�1�4M�M���/��
*�
��
�s�B3�3C�Cr)zwww-browser�links�links2�lynx�elinkszelinks-lite�netrik�w3mr�)rhrirjrkrlrrr rrr�rrrrrsr�r�s@@rrr�sH�����	;��H�O��G�	��	@��
�6/�.�rc��]tRtRtRtR#)�TokenAuthorizationExceptionirN�rhrirjrkrrrrrr7r7���rr7c��]tRtRtRtR#)�RequestTokenAlreadyAuthorizedi rNr8rrrr;r; r9rr;c��]tRtRtRtRtR#)�EndUserAuthorizationFailedi$z?Superclass exception for all failures of end-user authorizationrN�rhrirjrkrlrrrrrr=r=$s��I�rr=c��]tRtRtRtRtR#)r
i*zEnd-user declined authorizationrNr>rrrr
r
*s��)�rr
c��]tRtRtRtRtR#)ri0z*End-user did not perform any authorizationrNr>rrrrr0s��4�rrc��]tRtRtRtRtR#)r-i6z<End-user did not perform any authorization in timeout periodrNr>rrrr-r-6s��F�rr-c��]tRtRtRtR#)�ClientErrori<rNr8rrrrCrC<r9rrCc��]tRtRtRtR#)�ServerErrori@rNr8rrrrErE@r9rrEc��]tRtRtRtR#)�NoLaunchpadAccountiDrNr8rrrrGrGDr9rrGc��]tRtRtRtR#)�TooManyAuthenticationFailuresiHrNr8rrrrIrIHr9rrI)rrrrrrri�)=rl�__all__�base64rr	r%�ior
rXrrr��sysrr)�urllib.parser
rrr�lazr.restfulclient.errorsr�"lazr.restfulclient.authorize.oauthr�_AccessTokenrrrr�rrUrer\r+r,�MemoryError�KeyboardInterrupt�
SystemExitr�rr.rrrr�r�r�rr�rr�r7r;r=r
rr-rCrErGrIrrr�<module>rUs���";�������	�����5�5��/����%��#��)����#���!2�J�?��
P��=�/�=�D)�,�)�@!�<�!�H$�H$�Vc�_�c�L�_��21�O�1�(U$�U$�p8:�#B�8:�va�'C�a�H	�)�	�	�$?�	�	�!<�	�	�#=�	�	�7�	�	�!7�	�	�-�	�	�-�	�	�4�	�	�$?�	r

Youez - 2016 - github.com/yon3zu
LinuXploit