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/softwareproperties/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/softwareproperties/__pycache__/shortcuthandler.cpython-314.pyc
+
5|Ai�q����^RIt^RIt^RIt^RIt^RIt^RIHt^RIHtH	t	H
t
^RIHt^RI
H
t^RIHt^RIHtHtHt]P*!4Rt!R	R
]4t!RR]4t!R
R]4tR#)�N)�
get_distro)�SourceEntry�SourcesList�Deb822SourceEntry)�suppress)�gettext)�urlparse)�get_source_entry_from_list�copy_source_entry�deb822_source_entry_containsz=gpg -q --no-options --no-default-keyring --batch --keyring %sc�4a�]tRt^+toRtR.Rlt]R4t]R4t]R4t	]R4t
]R4t]R	4t
]R
4t]R4t]R4t]R
4tR/Rlt]R4t]R4tRtRtRtRtRtRt]R4t]R4t]R4t]R4tRtRt ]R4t!]R4t"]R4t#]R 4t$]R!4t%R"t&R#t']R$4t(]R%4t)]R&4t*]R'4t+]R(4t,R)t-R/R*lt.R/R+lt/R,t0R-t1Vt2R#)0�ShortcutHandlera#Superclass for shortcut handler implementations.

This provides a way to take a apt repository reference, in various forms,
and write the specific apt configuration to local files.  This also can
remove previously written configuration from local files.

This class and any subclasses should never modify any main apt configuration
files, only specifically named files in '.d' subdirs (e.g. sources.list.d, etc)
should be modified.  The only exception to that rule is adding or removing
sourceslist lines or components of existing source entries.
Nc��WnT;'g.VnW0n\4VnT;'gVPP
VnWPnW`nWpnRVn	RVn
RVnRVnR#�N)
�shortcut�
components�
enable_sourcer�distro�codename�pocket�dry_run�deb822�
_source_entry�	_filebase�	_username�	_password)	�selfrrrrrrr�kwargss	&&&&&&&&,�D/usr/lib/python3/dist-packages/softwareproperties/shortcuthandler.py�__init__�ShortcutHandler.__init__7sn�� �
�$�*�*����*�� �l��� �8�8�D�K�K�$8�$8��
�������"������������c�X�\V4pVP;'d
VP#)z(Return if the uri is in valid uri format)r	�scheme�netloc��cls�uri�parseds&& r�is_valid_uri�ShortcutHandler.is_valid_uriKs#���#����}�}�.�.����.r"c��\V4pVPVPPR4^,R7P	4#)z6Return the uri with the username and password stripped�@�r%)r	�_replacer%�
rpartition�geturlr&s&& r�uri_strip_auth�ShortcutHandler.uri_strip_authQs=���#������f�m�m�&>�&>�s�&C�A�&F��G�N�N�P�Pr"c��\VPV44pV:RV:RVP:2pVPVR7P	4#)z6Return the uri with the username and password included�:r-r.)r	r2r%r/r1)r'r(�username�passwordr)r%s&&&&  r�uri_insert_auth�ShortcutHandler.uri_insert_authYsC���#�,�,�S�1�2��%�x����?�����f��-�4�4�6�6r"c	��RpVR
,
p\P!4;_uu_4pVRV2,
p\V\4'gVP	4p\
P!VP4RV\
PR7PP4pRRR4XP4Uu.uF3qfPR4'gKTPR4^	,NK5	up# +'giL_;i \
Pd(p\\R4T,4.uRp?#Rp?ii;iuupi \ d!\\R	4X,4.u#i;i)z�Return an array of fingerprint(s) for provided key(s).

The 'keys' parameter should be in text (str) or binary (bytes) format;
it is converted to bytes if needed, and then passed to the 'gpg' program.
zBgpg --show-keys -q --no-options --no-keyring --batch --with-colons� --homedir T)�check�input�stdoutNz,Warning: gpg error while processing keys:
%s�fprr5zWarning: invalid gpg output:
%sz& --with-fingerprint --with-fingerprint)�tempfile�TemporaryDirectory�
isinstance�bytes�encode�
subprocess�run�split�PIPEr>�decode�CalledProcessError�print�_�
splitlines�
startswith�KeyError)r'�keys�cmd�homedirr>�e�ls&&     r�fingerprints�ShortcutHandler.fingerprints`s,��S���(�(��		��,�,�.�.�'���W�I�.�.��!�$��.�.��;�;�=�D�#����	�	��4�t�/9���@�@F��v�v�x��	/�	�-3�->�->�-@�X�-@��L�L�QV�DW�O�A�G�G�C�L��O�O�-@�X�X�/�.���,�,�	��!�C�D�q�H�I��I��	��Y���	��!�6�7�&�@�A��I�	�se�D�BD�+D�4E�E�#E�?E�D	�
D�D�E�*E�E�E�E�(F�Fc	��\RVP4P:RRPVP4P4:24#)zArchive for codename: z
 components: �,)rLr�dist�join�comps�rs&r�description�ShortcutHandler.description|sA����#�#�%�*�*��8�8�D�,�,�.�4�4�5�7�8�	9r"c��VP#r)�archive_linkr\s&r�web_link�ShortcutHandler.web_link�s��� � � r"c�6�VP4P#r)rr(r\s&rr`�ShortcutHandler.archive_link�s�����!�%�%�%r"c�x�VP'dVP:RVP:2#VP#)�-)rrr\s&rrY�ShortcutHandler.dist�s(���;�;�;�"�m�m�T�[�[�9�9��}�}�r"c�.�VPP#)z*Text indicating a binary-type SourceEntry.)r�binary_typer\s&rri�ShortcutHandler.binary_type�����{�{�&�&�&r"c�.�VPP#)z*Text indicating a source-type SourceEntry.)r�source_typer\s&rrm�ShortcutHandler.source_type�rkr"c��VP'g\R4h\VP4pV'gV#WP8XdVP	R4M>WP
8XdVP	VP4M\RV,4h\V\4'd
V.Vn
MWn\V4#)a�Get the SourceEntry representing this archive/shortcut.

This should never include any authentication data; if required,
the username and password should only be available from the
username and password properties, as well as from the
netrcparts_content property.

If pkgtype is provided, it must be either binary_type or source_type,
in which case this returns a SourceEntry with the requested type.
If pkgtype is not specified, this returns a SourceEntry with an
implementation-dependent type (in most cases, implementations should
default to binary_type).

Note that the default SourceEntry will be returned without modification,
and the implementation will determine if it is enabled or disabled;
while the source-type SourceEntry will be enabled or disabled based on
self.enable_source.  The binary-type SourceEntry will always be enabled.

The SourceEntry 'file' field should always be set to the value of
sourceparts_file.
z3Implementation class did not set self._source_entryTzInvalid pkgtype: %s)r�NotImplementedErrorrri�set_enabledrmr�
ValueErrorrBr�types�type)r�pkgtyperSs&& rr�ShortcutHandler.SourceEntry�s���,�!�!�!�%�&[�\�\��d�0�0�1����H��&�&�&�
�M�M�$��
�(�(�
(�
�M�M�$�,�,�-��2�W�<�=�=��a�*�+�+��i�A�G��F� ��#�#r"c��VP#)a/Return the username used for authentication

If authentication is used, return the username; otherwise return None.

By default, this returns the private variable self._username, which
defaults to None.  Subclasses should override this method and/or
set self._username if they have authentication data.
)rr\s&rr6�ShortcutHandler.username�����~�~�r"c��VP#)a/Return the password used for authentication

If authentication is used, return the password; otherwise return None.

By default, this returns the private variable self._password, which
defaults to None.  Subclasses should override this method and/or
set self._password if they have authentication data.
)rr\s&rr7�ShortcutHandler.password�ryr"c�f�VP4VP4VP4R#)z�Save all data for this shortcut to file(s).

This writes everything to the relevant files.  By default, it
calls add_source(), add_key(), and add_login().  Subclasses
should override it if other actions are required.
N)�
add_source�add_key�	add_loginr\s&r�add�ShortcutHandler.add�s!��	
�����������r"c�F�VP4VP4R#)aRemove all data for this shortcut from file(s).

This removes everything from the relevant files.  By default, it
only calls remove_source() and remove_login().  Subclasses
should override it if other actions are required.  Note that by
default is does not call remove_key().
N)�
remove_source�remove_loginr\s&r�remove�ShortcutHandler.remove�s��	
�������r"c�(�\RR7pRpVPVP4pVF0p\V\4'gK\WC4'gK.TpM	Ve3\
\R4VPVP3,4M�VPRRR.VPR7pVPVnVPVnVPVn
VPVnVP'dpVPP!4pVUu.uF$pRVP#4'dTMR,NK&	ppRRP%V4,VP&R	&TpVP('d�VP*\-VP49d�RpVPVP*4pVF0p\V\4'gK\WG4'gK.TpM	Ve3\
\R4VP*VP3,4MVPVP*.VnVP.'Eg\0P2P5VP4'g�VPP7VP84'dQ\0P2P5VP84'g"\0P:!VP8R
4\=VPR4;_uu_4\0P>!VPVP@4RRR4VPC4R#R#uupi +'giL);i)T�rN�Found existing %s entry in %s���file� �.�
z	Signed-By���w)"rrrirBrrrKrLr�r��sourceparts_filers�uris�suitesr[�trustedparts_contentrM�striprZ�sectionrrm�setr�os�path�existsrN�sourceparts_path�mkdir�open�chmod�sourceparts_mode�save)r�sourceslist�newentry�binentry�s�linesrT�srcentrys&       r�_add_deb822_source�"ShortcutHandler._add_deb822_source�s���!��.�����#�#�D�$4�$4�5���A��a�!2�3�3��+�A�8�8����
����!�3�4��8H�8H�8@�
�
�8G�G�
H�#���r�2�r�2�,0�,A�,A�'�C�H�%�^�^�H�N�$�M�M�H�M�&�o�o�H�O�%�^�^�H�N��(�(�(��1�1�<�<�>��BG�H�%�Q��Q�W�W�Y�Y��C�8�8�%��H�04�t�y�y��7G�0G�� � ��-�������$�"2�"2�#�h�n�n�:M�"M��H��'�'��(8�(8�9�H� ��!�!�%6�7�7��/��<�<� �H��
!��#��a�7�8�D�<L�<L�<D�M�M�<K�K�L�#'�"2�"2�D�4D�4D�!E����|�|�|��7�7�>�>�(�-�-�0�0��M�M�,�,�T�-B�-B�C�C��G�G�N�N�4�+@�+@�A�A��H�H�T�2�2�E�:��(�-�-��-�-��H�H�X�]�]�D�,A�,A�B�.�������/I�:.�-�s�*M<�M<�4,N�N	c�L	�VP'dVP4R#VPVP4pVPVP4pVP
p\
4p\WA4pVe3\\R4VPVP3,4MYVPVPVPVPVPVPR7pVP VnVPVP8wd'\\R4VP,4M�VP"'dA\R4PVn\\R4VP,4MuVP 'd3\\R4VPVP3,4M1\\R4VPVP3,4TpVPVn\WB4pVe3\\R4VPVP3,4MYVPVPVPVPVPVPR7pVP VnVPVP8wd'\\R4VP,4MuVP 'd3\\R4VPVP3,4M1\\R4VPVP3,4TpVP$'Eg\'VPVP.4F�p\(P*P-V4'dK*VP/VP04'dQ\(P*P-VP04'g"\(P2!VP0R	4\5VR
4;_uu_4\(P6!Wc4RRR4K�	VP94R#R# +'giK�;i)a�Add the apt SourceEntries.

This uses SourcesList to add the binary-type and source-type
SourceEntries.

If the SourceEntry matches a known apt template, this will ignore
the sourceparts_file and instead place the SourceEntries into
the main/default sources.list file.  Otherwise, this will add
the SourceEntries into the sourceparts_file.

If either the binary-type or source-type entry exist in the current
SourcesList, the existing entries are updated instead of placing
the entries in the sourceparts_file.
Nr�)r(rYr�rt�
orig_compsz+Updating existing entry instead of using %sr�z!Archive has template, updating %szAdding disabled %s entry to %szAdding %s entry to %sr�r�)rr�rrirmr�rr
rKrLrtr�r�r(rYr[�disabled�templaterr�r�r�r�rNr�r�r�r�r�)rr�r��moder�r��	entryfiles&      rr}�ShortcutHandler.add_source,s4���;�;�;��#�#�%���#�#�D�$4�$4�5���#�#�D�$4�$4�5���$�$��!�m��-�k�D�����!�3�4��
�
�x�}�}�7U�U�V�"����L�L��]�]��]�]��]�]�#�>�>�'��H�!)� 1� 1�H���=�=�H�M�M�)��!�A�B�X�]�]�R�S�
�
�
�
�'��O�0�0�H�M��!�7�8�8�=�=�H�I�
�
�
�
��!�4�5�����
�
�8V�V�W��!�+�,��
�
�x�}�}�/M�M�N���!�
�
��
�-�k�D�����!�3�4��
�
�x�}�}�7U�U�V�"����L�L��]�]��]�]��]�]�#�>�>�'��H�!)� 1� 1�H���=�=�H�M�M�)��!�A�B�X�]�]�R�S�
�
�
�
��!�4�5�����
�
�8V�V�W��!�+�,��
�
�x�}�}�/M�M�N����|�|�|� �(�-�-����!?�@�	��w�w�~�~�i�0�0�!�,�,�T�-B�-B�C�C� "�����t�/D�/D� E� E�����!6�!6��>��i��-�-�����1�.�-�
A�
�����.�-�-�s�R�R#c�\�\RR7pVPVP4pVFfp\V\4'gK\W24'gK.\
\R4VP,4TpVPV4M	VP'gjVP4VUu.uF!q3PVP8XgKVNK#	up'g$\P!VP4R#R#R#uupi \\3dR#i;i)Tr�zRemoving entry from %sN)rrrirBrrrKrLr�r�rr�r��OSError�IOError)rr�r�r�s&   r�_remove_deb822_source�%ShortcutHandler._remove_deb822_source�s���!��.���#�#�D�$4�$4�5���A��a�!2�3�3��+�A�8�8��a�0�1�Q�V�V�<�=����"�"�8�,����|�|�|�����*�F�{�!�f�f��
�
�.E�A�A�{�F�F���I�I�h�m�m�,�G���F�� ��)����s�:D�D�+ D�D+�*D+c��VP'dVP4R#\4p\VUu.uFq"PNK	up4pVPVP4pVPVP4pRVnRVnVFLp\WE.V4fK\\R4VPVP3,4RVnKN	VUu.uF!qfPVP8XgKVNK#	ppVUu.uF,q"P'dKVP'dK*VNK.	up'g^VFWpVP'g2\\R4VPVP3,4VPV4KY	VP 'g\VP#4T\VUu.uFq"PNK	up4,
Fp\$P!V4K	R#R#uupiuupiuupiuupi \&\(3dKJi;i)a.Remove the apt SourceEntries.

This uses SourcesList to remove the binary-type and source-type
SourceEntries.

This must disable the corresponding SourceEntries, from whatever file(s)
they are located in.  This must not disable more than matches, e.g.
if the existing SourceEntry line contains more components this must
edit the existing line to remove this SourceEntry's component(s).

After disabling all matching SourceEntries, if the sourceparts_file is
empty or contains only invalid and/or disabled SourceEntries, this
may remove the sourceparts_file.
NFzDisabling %s entry in %sTz"Removing disabled %s entry from %s)rr�rr�r�rrirmr�r
rKrLrtr��invalidr�rr�r�r�r�)	rr�rS�
orig_filesr�r�r��file_entriesr�s	&        rr��ShortcutHandler.remove_source�s����;�;�;��&�&�(��!�m���+�6�+�Q�&�&�+�6�7�
��#�#�D�$4�$4�5���#�#�D�$4�$4�5��!���!����A�)�8�*=�q�A�M��a�2�3�q�v�v�q�v�v�6F�F�G�!��
��
$/�R�;�a�&�&�D�<Q�<Q�2Q���;��R�'�L�<�a�y�y�������<�L�L�!���y�y�y��!�@�A�Q�V�V�Q�V�V�DT�T�U��"�"�1�%�"�
�|�|�|�����"�S�+�)F�+�Q�&�&�+�)F�%G�G�G����I�I�d�O�H���+7��S��L��*G�� ��)����s;�H!�-H&�H&�H+�2H+�H+�H0
�H5�5I
�	I
c�@�\PPR4#)zAReturn result of apt_pkg.config.find_dir("Dir::Etc::sourceparts")zDir::Etc::sourceparts��apt_pkg�config�find_dirr\s&rr�� ShortcutHandler.sourceparts_path�s���~�~�&�&�'>�?�?r"c�f�VP'dRMRpVPWPR7#)aAGet the sources.list.d filename, without the leading path.

By default, this combines the filebase with the codename, and uses a
extension of 'list' if deb822 is not enabled, and 'sources' if deb822
is enabled.  This is different than the trustedparts or
netrcparts filenames, which use only the filebase plus extension.
�sources�list��suffix)r�_filebase_to_filenamer)r�exts& r�sourceparts_filename�$ShortcutHandler.sourceparts_filename�s+�� �;�;�;�i�F���)�)�#�m�m�)�D�Dr"c�N�VPVPVP4#)a�Get the sources.list.d absolute-path filename.

Note that the add_source() function will not use this file if this shortcut's
SourceEntry matches a known apt template; instead the entries will be placed
in the main sources.list file.  Also, if the SourceEntry already exists in
the SourcesList, it will be edited in place, instead of using this file.
See add_source() for more details.
)�_filename_to_filer�r�r\s&rr�� ShortcutHandler.sourceparts_file�s#���%�%�d�&;�&;�T�=V�=V�W�Wr"c��R#)z�Mode of sourceparts file.

Note that add_source() will only use this mode if it creates a new file
for sourceparts_file; if the file already exists or if the SourceEntry is
saved in a different file, this mode is not used.
��r\s&rr�� ShortcutHandler.sourceparts_mode�s��r"c���VP'dR#\VPVP34'gR#VPpVPp\	V\
4'gVP
4pVPV4p\\R4VRPV43,4\V,pRpVP'EgF\PPV4'g�VP!VP"4'dR\PPVP"4'g#\P$!VP"RR7VP&'d>\)VR4;_uu_4\P*!WP&4RRR4\,P.!4;_uu_4pVRVR	V2,
p\0P2!VP54R
VR7RRR4R#R# +'giLq;i +'giR#;i \0P6dp\9T4hRp?ii;i)a+Add the GPG key(s) corresponding to this repo.

By default, if self.trustedparts_content contains content,
and self.trustedparts_file points to a file, the key(s) will
be added to the file.

If the file does not yet exist, and self.trustedparts_mode is set,
the file will be created with that mode.
Nz$Adding key to %s with fingerprint %srXz--importr��r��wbr;r�T)r<r=)r�all�trustedparts_filer�rBrCrDrUrKrLrZ�GPG_KEYRING_CMDrr�r�r�rN�trustedparts_pathr��trustedparts_moder�r�r@rArErFrGrJ�ShortcutException)r�destrP�fprQ�actionrRrSs&       rr~�ShortcutHandler.add_key�s����;�;�;���D�*�*�D�,E�,E�F�G�G���%�%���(�(���$��&�&��;�;�=�D�
�
�
�t�
$��
�a�6�7�4����"��:N�N�O���$�����|�|�|��7�7�>�>�$�'�'��O�O�D�$:�$:�;�;��G�G�N�N�4�+A�+A�B�B��H�H�T�3�3�%�@��)�)�)��d�D�)�)�����'=�'=�>�*�
+��0�0�2�2�g��[��	��6�(�;�;�C��N�N�3�9�9�;�d�$�G�3�2��*�)��3�2�2���0�0�
+�'��*�*��
+�sB�!H"�I	�7H5�I	�"H2	�5I	�I	�I	�	I.�I)�)I.c���\VPVP34'gR#VPpVPVP4p\P
P
V4'gR#\\R4VRPV43,4\V,pRRPV4,pVP'g�\P!4;_uu_4pVRVRV2,
p\P!VP!4RR7RRR4\'TR	4;_uu_4pTPTP)44'*pRRR4X'd\P*!T4R#R#R# +'giLu;i \P"dp\%T4hRp?ii;i +'giLo;i)
a�Remove the GPG key(s) corresponding to this repo.

By default, if self.trustedparts_content contains content,
and self.trustedparts_file points to a file, the key(s) will
be removed from the file.

If the file contains no more keys after removal, the file will
be removed.

This does not consider other files; multiple repositories may
use the same signing key.  This only modifies/removes
self.trustedparts_file.
Nz(Removing key from %s with fingerprint %srXz--delete-keys %sr�r;T)r<�rb)r�r�r�rUr�r�r�rKrLrZr�rr@rArErFrGrJr�r��readr�)	rr�r�rQr�rRrS�f�emptys	&        r�
remove_key�ShortcutHandler.remove_keys^���D�*�*�D�,E�,E�F�G�G���%�%��
�
�
�t�8�8�
9���w�w�~�~�d�#�#��
�a�:�;�t�S�X�X�b�\�>R�R�S���$��#�c�h�h�r�l�2���|�|�|�
+��0�0�2�2�g��[��	��6�(�;�;�C��N�N�3�9�9�;�d�;�3��d�D�!�!�Q� �-�-�a�f�f�h�7�7��"���	�	�$����2�2���0�0�
+�'��*�*��
+��"�!�sB�F/�96F�/F/�%G�F,	�'F/�,F/�/G�G�G�G'	c�@�\PPR4#)zBReturn result of apt_pkg.config.find_dir("Dir::Etc::trustedparts")zDir::Etc::trustedpartsr�r\s&rr��!ShortcutHandler.trustedparts_pathGs���~�~�&�&�'?�@�@r"c�$�VPR4#)z9Get the trusted.gpg.d filename, without the leading path.�gpg�r�r\s&r�trustedparts_filename�%ShortcutHandler.trustedparts_filenameLs���)�)�%�0�0r"c�N�VPVPVP4#)z-Get the trusted.gpg.d absolute-path filename.)r�r�r�r\s&rr��!ShortcutHandler.trustedparts_fileQs#���%�%�d�&<�&<�d�>X�>X�Y�Yr"c��R#)z&Content to put into trusted.gpg.d fileNr�r\s&rr��$ShortcutHandler.trustedparts_contentVs��r"c��R#)zMode of trustedparts filer�r�r\s&rr��!ShortcutHandler.trustedparts_mode[���r"c���\VPVP34'gR#VPpVPp\PPV4'*pRpV'g�\
VR4;_uu_4pVP4Uu.uFqfP4NK	ppRRR4\\4;_uu_4XR
,R
,pRRR4\VP4Uu.uFqfP4X9NK	up4'd\\R4V,4R#\\R4V,4VP'EgV'd�VPVP 4'dR\PPVP 4'g#\P"!VP RR7VP$'d>\
VR4;_uu_4\P&!WP$4RRR4\
VR	4;_uu_4pVR8wdVP)R4VP)VP4RRR4R#R#uupi +'giEL�;i +'giEL�;iuupi +'giL�;i +'giR#;i)z�Add the login credentials corresponding to this repo.

By default, if self.netrcparts_content contains content,
and self.netrcparts_file points to a file, the file will be
created and content placed into it.
Nr��rz!Authentication data already in %sz Adding authentication data to %sr�r�r��a���)r��netrcparts_file�netrcparts_contentr�r�r�r��	readlinesr�rrOrMrKrLrrN�netrcparts_pathr��netrcparts_moder��write)rr��content�newfile�	finalcharr�rTr�s&       rr�ShortcutHandler.add_login`s����D�(�(�$�*A�*A�B�C�C���#�#���)�)���g�g�n�n�T�*�*���	���d�C���A�,-�K�K�M�:�M�q����M��:�!��(�#�#�!�"�I�b�M�	�$���0B�0B�0D�E�0D�1�G�G�I��&�0D�E�F�F��a�;�<�t�C�D��
�a�2�3�d�:�;��|�|�|���O�O�D�$8�$8�9�9��G�G�N�N�4�+?�+?�@�@��H�H�T�1�1��>��'�'�'��d�C�������';�';�<�)��d�C���A���$��G�G�D�M�����/�/�0�	!����;�!����#�#�#��E�)��� ���sH�J�J�/J�J)�J=�!K�4K�J�J&	�)J:	�K	�K&	c	��\VPVP34'gR#VPp\VPP	4Uu.uFq"P4NK	up4p\PPV4'gR#\VR4;_uu_4p\VP4Uu.uFq"P4NK	up4pRRR4XV,'g\\R4V,4Mp\\R4V,4VP'gD\VR4;_uu_4pVPRPWS,
44RRR4VP'gc\VR4;_uu_4pVP!4P4'*pRRR4X'd\P"!V4R#R#R#uupiuupi +'giEL,;i +'giL�;i +'giLe;i)avRemove the login credentials corresponding to this repo.

By default, if self.netrcparts_content contains content,
and self.netrcparts_file points to a file, the content will
be removed from the file.

If the file is empty (other than whitespace) after removal, the file
will be removed.

This does not consider other files; this only modifies/removes
self.netrcparts_file.
Nr�z'Authentication data not contained in %sz$Removing authentication data from %sr�r�)r�r�r�r�rMr�r�r�r�r�r�rKrLrr�rZr�r�)rr�rTr�r��filecontentr�s&      rr��ShortcutHandler.remove_login�s{���D�(�(�$�*A�*A�B�C�C���#�#���$�*A�*A�*L�*L�*N�O�*N�Q�w�w�y�*N�O�P���w�w�~�~�d�#�#��
�$��_�_���!�+�+�-�@�-�Q�w�w�y�-�@�A�K���W�$�$��!�=�>��E�F��!�:�;�d�B�C��<�<�<��$��_�_���G�G�D�I�I�k�&;�<�=�%��|�|�|��d�C���A��F�F�H�N�N�,�,��!���	�	�$�����P��A��_�_��%�_��!��s<�H�1H�	H�!H�'H�1$H2�H�H	�H/	�2I	c�@�\PPR4#)z@Return result of apt_pkg.config.find_dir("Dir::Etc::netrcparts")zDir::Etc::netrcpartsr�r\s&rr��ShortcutHandler.netrcparts_path�s���~�~�&�&�'=�>�>r"c�$�VPR4#)z7Get the auth.conf.d filename, without the leading path.�confr�r\s&r�netrcparts_filename�#ShortcutHandler.netrcparts_filename�s���)�)�&�1�1r"c�N�VPVPVP4#)z+Get the auth.conf.d absolute-path filename.)r�r�rr\s&rr��ShortcutHandler.netrcparts_file�s#���%�%�d�&:�&:�D�<T�<T�U�Ur"c�J�\VPVP34'gR#\VP	4P
4Pp\VP	4P
4PpRVVRVPRVP2#)z�Content to put into auth.conf.d file

By default, if both username and password are set, this will return a proper
netrc-formatted line with the authentication information, including the
hostname and path.
Nzmachine z login z
 password )r�r6r7r	rr(�hostnamer�)rr
r�s&  rr��"ShortcutHandler.netrcparts_content�s����D�M�M�4�=�=�1�2�2���D�,�,�.�2�2�3�<�<����(�(�*�.�.�/�4�4���(��D�6������z�$�-�-��Y�Yr"c��R#)zMode of netrcparts filei�r�r\s&rr��ShortcutHandler.netrcparts_mode�r�r"c��VP'd\WPR7pM\WPR7p\	\VP4\VP4,4Vn\V4Vn	R#)z�Set the SourceEntry.

This should be called from subclasses to set the SourceEntry.
The SourceEntry file will be set to the sourceparts_file value.

The self.components, if any, will be added to the line's component(s).
r�N)
rrr�rr�r�r[rrr)r�linerSs&& r�_set_source_entry�!ShortcutHandler._set_source_entry�s\���;�;�;�!�$�-B�-B�C�A��D�'<�'<�=�A��s�1�7�7�|�c�$�/�/�&:�:�;���.�q�1��r"c��VPpV'gR#V'dVRV,,
p\P!RRVP44#)Nz-%sz[^a-z0-9_-]+rL)r�re�sub�lower)rr��bases&& r�_encode_filebase� ShortcutHandler._encode_filebase�s;���~�~������E�F�N�"�D��v�v�n�c�4�:�:�<�8�8r"c�L�VPVR7pV'gR#V:RV:2#)r�Nr�)r)rr�r�rs&&& rr��%ShortcutHandler._filebase_to_filename�s&���$�$�F�$�3������$�$r"c�T�V'gR#\PPW4#r)r�r�rZ)rr��names&&&rr��!ShortcutHandler._filename_to_file�s�����w�w�|�|�D�'�'r")rrrrrrrrrrrr)NFNNFFr)3�__name__�
__module__�__qualname__�__firstlineno__�__doc__r �classmethodr*r2r8rU�propertyr]rar`rYrirmrr6r7r�r�r�r}r�r�r�r�r�r�r~r�r�r�r�r�r�rr�r�rr�r�r�rrr�r��__static_attributes__�__classdictcell__)�
__classdict__s@rrr+s�����
��(�/��/�
�Q��Q��7��7�����6�9��9�
�!��!��&��&�����
�'��'��'��'�'$�R�	��	��	��	�	�	�9�vX�t�,/�b�@��@��	E��	E��	X��	X�����)+�V& �P�A��A��1��1��Z��Z���������&1�P$ �L�?��?��2��2��V��V��Z��Z�����2� 9�%�(�(r"rc��]tRtRtRtRtR#)r�i�z-General Exception during shortcut processing.r�N�r!r"r#r$r%r(r�r"rr�r��s��7�r"r�c��]tRtRtRtRtR#)�InvalidShortcutExceptioni�z�Invalid shortcut.

This should only be thrown from the constructor of a ShortcutHandler
subclass, and only to indicate that the provided shortcut is invalid
for that ShortcutHandler class.
r�Nr,r�r"rr.r.�s���	r"r.)r�r�rrEr@�aptsources.distror�aptsources.sourceslistrrr�
contextlibrrrL�urllib.parser	�softwareproperties.sourceutilsr
rr�initr��objectr�	Exceptionr�r.r�r"r�<module>r7sl��$�	�	���(�P�P�� �!�J�J�
����Q��G(�f�G(�T	�	�	�
	�0�	r"

Youez - 2016 - github.com/yon3zu
LinuXploit