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

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/requests/__pycache__/utils.cpython-314.pyc
+
�i���	��Rt^RIt^RIt^RIt^RIt^RIt^RIt^RIt^RIt^RI	t	^RI
t
^RIt^RIH
t
^RIHtHt^RIHt^RIHt^RIHtHtHtHt^RIHtHtHtHtHtHtH t ^RIH!t"^R	IH#t#H$t$H%t%H&t&H't'H(t(H)t)^R
I*H+t+^RI,H-t-H.t.H/t/H0t0^RI1H2t2RBt3]Ph!4t5R
^PRR/t6RPo]Pp!R]!RR7R,44t9]PtR8XdRt;Rt#Rt<Rt=RCRlt>Rt?Rt@]P�R4tBRtCRtDR tER!tFRCR"ltGR#tHR$tIR%tJR&tKR'tLR(tMR)tNR*tO]P!RD4tQR+tRR,tSR-tTR.tUR/tVR0tW]P�R14tXR2tYRER3ltZR4t[RFR5lt\RGR6lt]R7t^R8t_R9P�R:4ta]a^,tb]a^,tcR;tdR<teR=tfR>tgR?thR@tiRAtjR#)Hz�
requests.utils
~~~~~~~~~~~~~~

This module provides utility functions that are used within Requests
that are also useful for external consumption.
N)�OrderedDict)�make_headers�	parse_url)�certs��__version__)�_HEADER_VALIDATORS_BYTE�_HEADER_VALIDATORS_STR�HEADER_VALIDATORS�to_native_string)�Mapping�
basestring�bytes�
getproxies�getproxies_environment�
integer_types�is_urllib3_1)�parse_http_list)�proxy_bypass�proxy_bypass_environment�quote�str�unquote�urlparse�
urlunparse��cookiejar_from_dict)�FileModeWarning�
InvalidHeader�
InvalidURL�UnrewindableBodyError)�CaseInsensitiveDict�http�httpsi�z, z,\s*T)�accept_encodingzaccept-encoding�win32c�n�^RIpTPTPR4p\	TPTR4^,4pTPTR4^,pT'd	T'gR#TPR4p\RT4pTFxpTR8XdRT9dR	#TPRR
4pTPRR4pTPR
R4p\P!YP\P4'gKwR	#	R# \dR#i;i \\3dR#i;i)�NFz;Software\Microsoft\Windows\CurrentVersion\Internet Settings�ProxyEnable�
ProxyOverride�;z<local>�.Tz\.�*z.*�?)�winreg�ImportError�OpenKey�HKEY_CURRENT_USER�int�QueryValueEx�OSError�
ValueError�split�filter�replace�re�match�I)�hostr.�internetSettings�proxyEnable�
proxyOverride�tests&     �0/usr/lib/python3/dist-packages/requests/utils.py�proxy_bypass_registryrBMs!��	��
	�%�~�~��(�(�N� ��
�f�1�1�2B�M�R�ST�U�V�K�"�/�/�0@�/�R�ST�U�M��-��
&�+�+�C�0�
��t�]�3�
�!�D��y� ��d�?���<�<��U�+�D��<�<��U�+�D��<�<��T�*�D��x�x��B�D�D�)�)��"���C�	��	����$�	��	�s#�D
�AD�
D�D�D4�3D4c�N�\4'd\V4#\V4#)z�Return True, if the host should be bypassed.

Checks proxy settings gathered from the environment, if specified,
or the registry.
)rrrB)r<s&rArrss#��"�#�#�+�D�1�1�(��.�.�c�J�\VR4'dVP4pV#)z/Returns an internal sequence dictionary update.�items)�hasattrrF)�ds&rA�dict_to_sequencerIs!���q�'���
�G�G�I���HrDc�|�Rp^p\'g(\V\4'dVPR4p\	VR4'd
\V4pM�\	VR4'dVP
pMo\	VR4'd^VP
4p\P!V4PpRVP9d\P!R\4\	VR4'dfVP#4p\	VR4'dCVf?VP%^^4VP#4pTP%T;'g^4Vf^p\)^W,
4# \P\ 3dL�i;i \&d^pLHi;i \&d
TeTpL_i;i)	N�utf-8�__len__�len�fileno�ba%Requests has determined the content-length for this request using the binary size of the file: however, the file has been opened in text mode (i.e. without the 'b' flag in the mode). This may lead to an incorrect content-length. In Requests 3.0, support will be removed for files in text mode.�tell�seek)r�
isinstancer�encoderGrMrN�os�fstat�st_size�mode�warnings�warnr�io�UnsupportedOperation�AttributeErrorrPrQr4�max)�o�total_length�current_positionrNs&   rA�	super_lenra�s����L����<�J�q�#�.�.�
�H�H�W����q�)����1�v��	��E�	�	��u�u��	��H�	�	�	��X�X�Z�F��8�8�F�+�3�3�L��!�&�&� ��
�
�2�$�
��q�&���	%� �v�v�x���q�&�!�!�l�&:�	%��F�F�1�a�L�#$�6�6�8�L��F�F�+�0�0�q�1������q�,�1�2�2��e�'�'��8�	�
�		��X�%�#$�L�%��%�	0�
�'�#/� ��
	0�s<�E3�7F'�5F�F�3F�F�
F$�#F$�'F;�:F;c�R�\PPR4pVeV3pM
R\4p^RIHpHpRpVFKp\PPV4p\PPV4'gKITpM	VfR#\V4p	V	Pp
V!V4PV
4pV'd%V^,'d^M^pW�,V^,3#R# T\3dT'dhR#i;i \\3dR#i;i)z;Returns the Requests tuple auth for a given url from netrc.�NETRCNc3�,"�TF
pRV2x�K	R#5i)z~/N�)�.0�fs& rA�	<genexpr>�!get_netrc_auth.<locals>.<genexpr>�s���9�[��R��s�8�[�s�)�NetrcParseError�netrc)rT�environ�get�NETRC_FILESrkrj�path�
expanduser�existsr�hostname�authenticatorsr4r/r\)
�url�raise_errors�
netrc_file�netrc_locationsrjrk�
netrc_pathrg�loc�rir<�_netrc�login_is
&&           rA�get_netrc_authr}�s
��������(�J���%�-��9�[�9�� 
�0��
� �A��'�'�$�$�Q�'�C��w�w�~�~�c�"�"� �
��	!����
�c�]���{�{��
	��:�&�5�5�d�;�F��%�a�y�y�!�a�������3�3��� ��)�	����	��
��(�
��
�sH�AD�
D�D�/-C4�C4�4D�	D�
D�
D�D�D&�%D&c���\VRR4pV'dX\V\4'd@V^,R8wd0VR,R8wd \PPV4#R#R#R#R#)z0Tries to guess the filename of the given object.�nameN�<�>���)�getattrrRr
rTro�basename)�objrs& rA�guess_filenamer��sW���3���%�D��
�4��,�,��a��C��D��H�PS�O��w�w����%�%�ET��,�trDc��\PPV4'dV#\PPV4wrV'dd\PPV4'g?\PPV4wrV'gMRP	W2.4pKk\
P!V4'gV#\
P!V4pW$P49dV#\P!4p\PP	WRPR4R,4p\PPV4'g?\V4;_uu_4pVPVPV44RRR4V#V# +'giT#;i)z�Replace nonexistent paths that look like they refer to a member of a zip
archive with the location of an extracted copy of the target, or else
just return the provided path unchanged.
�/Nr�)rTrorqr6�join�zipfile�
is_zipfile�ZipFile�namelist�tempfile�
gettempdir�atomic_open�write�read)ro�archive�member�prefix�zip_file�tmp�extracted_path�file_handlers&       rA�extract_zipped_pathsr�s2��

�w�w�~�~�d������g�g�m�m�D�)�O�G�
�"�'�'�.�.��1�1��'�'�-�-��0����
����6�*�+�����g�&�&������w�'�H�
�&�&�(�(����
�
�
�C��W�W�\�\�#�|�|�C�'8��'<�=�N�
�7�7�>�>�.�)�)�
��
(�
(�L����x�}�}�V�4�5�)���>��)�
(���s�!F-�-F>	c#�r"�\P!\PP	V4R7wr\P
!VR4;_uu_4pVx�RRR4\P!W 4R# +'giL(;i \d\P!T4hi;i5i)z-Write a file to the disk in an atomic fashion)�dir�wbN)	r��mkstemprTro�dirname�fdopenr8�
BaseException�remove)�filename�tmp_descriptor�tmp_name�tmp_handlers&   rAr�r�'s}��� (�/�/�B�G�G�O�O�H�4M�N��N��
�Y�Y�~�t�
,�
,����-�
�
�
�8�&�-�
,����
�	�	�(��
��s4�7B7�B�A>�B�<B7�>B	�	B�#B4�4B7c��VfR#\V\\\\34'd\R4h\
V4#)a�Take an object and test to see if it can be represented as a
dictionary. Unless it can not be represented as such, return an
OrderedDict, e.g.,

::

    >>> from_key_val_list([('key', 'val')])
    OrderedDict([('key', 'val')])
    >>> from_key_val_list('string')
    Traceback (most recent call last):
    ...
    ValueError: cannot encode objects that are not 2-tuples
    >>> from_key_val_list({'key': 'val'})
    OrderedDict([('key', 'val')])

:rtype: OrderedDict
N�+cannot encode objects that are not 2-tuples)rRrr�boolr2r5r��values&rA�from_key_val_listr�4s9��$
�}���%�#�u�d�C�0�1�1��F�G�G��u��rDc���VfR#\V\\\\34'd\R4h\V\4'dVP4p\V4#)a�Take an object and test to see if it can be represented as a
dictionary. If it can be, return a list of tuples, e.g.,

::

    >>> to_key_val_list([('key', 'val')])
    [('key', 'val')]
    >>> to_key_val_list({'key': 'val'})
    [('key', 'val')]
    >>> to_key_val_list('string')
    Traceback (most recent call last):
    ...
    ValueError: cannot encode objects that are not 2-tuples

:rtype: list
Nr�)	rRrrr�r2r5rrF�listr�s&rA�to_key_val_listr�OsP��"
�}���%�#�u�d�C�0�1�1��F�G�G��%��!�!����
����;�rDc��.p\V4F>pVR,VRRu;8XdR8XdMM\V^R4pVPV4K@	V#)a�Parse lists as described by RFC 2068 Section 2.

In particular, parse comma-separated lists where the elements of
the list may include quoted-strings.  A quoted-string could
contain a comma.  A non-quoted string could have quotes in the
middle.  Quotes are removed automatically after parsing.

It basically works like :func:`parse_set_header` just that items
may appear multiple times and case sensitivity is preserved.

The return value is a standard :class:`list`:

>>> parse_list_header('token, "quoted value"')
['token', 'quoted value']

To create a header from the :class:`list` again, use the
:func:`dump_header` function.

:param value: a string with a list header.
:return: :class:`list`
:rtype: list
�N�NN�"r�)�_parse_list_header�unquote_header_value�append)r��result�items&  rA�parse_list_headerr�msR��.�F�"�5�)����8�t�B�C�y�'�C�'�'��Q�r�
�3�D��
�
�d��*��MrDc���/p\V4FRpRV9dRW&KVPR^4wr0VR,VRRu;8XdR8XdMM\V^R4pWV&KT	V#)a"Parse lists of key, value pairs as described by RFC 2068 Section 2 and
convert them into a python dict:

>>> d = parse_dict_header('foo="is a fish", bar="as well"')
>>> type(d) is dict
True
>>> sorted(d.items())
[('bar', 'as well'), ('foo', 'is a fish')]

If there is no value for a key it will be `None`:

>>> parse_dict_header('key_without_value')
{'key_without_value': None}

To create a header from the :class:`dict` again, use the
:func:`dump_header` function.

:param value: a string with a dict header.
:return: :class:`dict`
:rtype: dict
�=Nr�r�r�)r�r6r�)r�r�r�rs&   rA�parse_dict_headerr��sp��,�F�"�5�)���d�?��F�L���j�j��a�(�����9��b�c�
�)�c�)�(��q���5�E��t��*��MrDc���V'd_V^,VR,u;8XdR8XdBMV#V^RpV'dVR,R8wd#VPRR4PRR4#V#)z�Unquotes a header value.  (Reversal of :func:`quote_header_value`).
This does not use the real unquoting but what browsers are actually
using for quoting.

:param value: the header value to unquote.
:rtype: str
r��N�Nz\\�\z\"r�)r8)r��is_filenames&&rAr�r��sb��
��q��U�2�Y�-�#�-��L��a�����e�B�i�6�1��=�=���.�6�6�u�c�B�B��LrDc�Z�VUu/uFqPVPbK	ppV#uupi)ztReturns a key/value dictionary from a CookieJar.

:param cj: CookieJar object to extract cookies from.
:rtype: dict
)rr�)�cj�cookie�cookie_dicts&  rA�dict_from_cookiejarr��s.��<>�>�2��;�;����,�2�K�>����?s�(c��\W4#)z�Returns a CookieJar from a key/value dictionary.

:param cj: CookieJar to insert cookies into.
:param cookie_dict: Dict of key/values to insert into CookieJar.
:rtype: CookieJar
r)r�r�s&&rA�add_dict_to_cookiejarr��s���{�/�/rDc�v�\P!R\4\P!R\P
R7p\P!R\P
R7p\P!R4pVP
V4VP
V4,VP
V4,#)zdReturns encodings from given content string.

:param content: bytestring to extract encodings from.
z�In requests 3.0, get_encodings_from_content will be removed. For more information, please see the discussion on issue #2266. (This warning should only appear once.)z!<meta.*?charset=["\']*(.+?)["\'>])�flagsz+<meta.*?content=["\']*;?charset=(.+?)["\'>]z$^<\?xml.*?encoding=["\']*(.+?)["\'>])rXrY�DeprecationWarningr9�compiler;�findall)�content�
charset_re�	pragma_re�xml_res&   rA�get_encodings_from_contentr��s���

�M�M�
1�	�
����@����M�J��
�
�I�QS�QU�QU�V�I�
�Z�Z�?�
@�F�	���7�#�
�
�
�G�
$�	%�
�.�.��
!�	"�rDc�l�VPR4pV^,P4VR,r2/pRpVFxpVP4pV'gKTRr�VPR4p	V	R8wd/VRV	PV4pWi^,RPV4pW�VP4&Kz	W$3#)z�Returns content type and parameters from given header

:param header: string
:return: tuple containing content type and dictionary of
     parameters
r*�r�NNz"' Tr�Nr�)r6�strip�find�lower)
�header�tokens�content_type�params�params_dict�items_to_strip�param�keyr��index_of_equalss
&         rA�_parse_content_type_headerr��s����\�\�#�
�F�!�!�9�?�?�,�f�R�j�&��K��N������
���5����#�j�j��o�O��"�$��,�_�-�3�3�N�C����1�3�4�:�:�>�J��',��	�	��$���$�$rDc��VPR4pV'gR#\V4wrRV9dVR,PR4#RV9dR#RV9dR#R#)	zqReturns encodings from given HTTP Header Dict.

:param headers: dictionary to extract encoding from.
:rtype: str
zcontent-typeN�charsetz'"�textz
ISO-8859-1zapplication/jsonrK)rmr�r�)�headersr�r�s&  rA�get_encoding_from_headersr�s^���;�;�~�.�L���5�l�C��L��F���i� �&�&�u�-�-�
�����\�)��*rDc#�&"�VPf
TRjx�L
R#\P!VP4!RR7pVF"pVPV4pV'gKVx�K$	VPRRR7pV'dVx�R#R#Lx5i)zStream decodes an iterator.Nr8��errorsrDT)�final)�encoding�codecs�getincrementaldecoder�decode)�iterator�r�decoder�chunk�rvs&&   rA�stream_decode_response_unicoder�*s~���	�z�z�������*�*�1�:�:�6�i�H�G���
�^�^�E�
"��
�2��H��
����4��	(�B�	���
�	�s�B�B�AB�$"B�	Bc#�"�^pVeV^8:d\V4pV\V48dWW!,x�W!,
pK&R#5i)z Iterate over slices of a string.N)rM)�string�slice_length�poss&& rA�iter_slicesr�;sG���
�C���|�q�0��6�{��

��F��
��3�-�.�.�����s�AAc�T�\P!R\4.p\VP4pV'd\VPV4#\VPVRR7# \dTPT4L7i;i \dTPu#i;i)z�Returns the requested content back in unicode.

:param r: Response object to get unicode content from.

Tried:

1. charset from content-type
2. fall back and replace all unicode characters

:rtype: str
z�In requests 3.0, get_unicode_from_response will be removed. For more information, please see the discussion on issue #2266. (This warning should only appear once.)r8r�)
rXrYr�r�r�rr��UnicodeErrorr��	TypeError)r��tried_encodingsr�s&  rA�get_unicode_from_responser�Es���
�M�M�
1�	�
��O�)����3�H��	-��q�y�y�(�+�+�
��1�9�9�h�y�9�9���	-��"�"�8�,�	-�����y�y���s#�A+�B
�+B
�	B
�
B'�&B'c���VPR4p\^\V44F�pW,R,p\V4^8XdaVP4'dK\	\V^44pT\9dYAT,R,,Y&KsRY,2Y&K�RW,2W&K�	RPV4# \d\RTR24hi;i)z�Un-escape any percent-escape sequences in a URI that are unreserved
characters. This leaves all reserved, illegal and non-ASCII bytes encoded.

:rtype: str
�%:r'r�Nz"Invalid percent-escape sequence: '�':r�NN�)
r6�rangerM�isalnum�chrr2r5r�UNRESERVED_SETr�)�uri�parts�i�h�cs&    rA�unquote_unreservedrrs���
�I�I�c�N�E�
�1�c�%�j�
!���H�S�M���q�6�Q�;�1�9�9�;�;�
L���A�r�
�O���N�"��Q�x��|�+����u�x�j�>����5�8�*�~�E�H�"��7�7�5�>����
L� �#E�a�S��!J�K�K�
L�s� C�C&c�r�RpRp\\V4VR7# \d\YR7u#i;i)z�Re-quote the given URI.

This function passes the given URI through an unquote/quote cycle to
ensure that it is fully and consistently quoted.

:rtype: str
z!#$%&'()*+,/:;=?@[]~z!#$&'()*+,/:;=?@[]~)�safe)rrr)r�safe_with_percent�safe_without_percents&  rA�requote_urir�sG��/��0��	5��'��,�3D�E�E���5��S�4�4�	5�s��6�6c
��\P!R\P!V44^,pVP	R4wr4\P!R\P!\\
V4444^,p\P!R\P!V44^,V,pW%,We,8H#)z�This function allows you to check if an IP belongs to a network subnet

Example: returns True if ip = 192.168.1.1 and net = 192.168.1.0/24
         returns False if ip = 192.168.1.1 and net = 192.168.100.0/24

:rtype: bool
z=Lr�)�struct�unpack�socket�	inet_atonr6�dotted_netmaskr2)�ip�net�ipaddr�netaddr�bits�netmask�networks&&     rA�address_in_networkr�s����]�]�4��!1�!1�"�!5�
6�q�
9�F��I�I�c�N�M�G��m�m�D�&�"2�"2�>�#�d�)�3L�"M�N�q�Q�G��m�m�D�&�"2�"2�7�";�<�Q�?�'�I�G���'�"3�4�4rDc��R^^ V,
,^,
,p\P!\P!RV44#)zuConverts mask from /xx format to xxx.xxx.xxx.xxx

Example: if mask is 24 function returns 255.255.255.0

:rtype: str
l��z>I)r�	inet_ntoar�pack)�maskrs& rArr�s7����b�4�i��1�,�,�D����F�K�K��d�3�4�4rDc�X�\P!V4R# \dR#i;i)z
:rtype: bool
FT)rrr4)�	string_ips&rA�is_ipv4_addressr&�s.�������#�������s��)�)c�<�VPR4^8Xdb\VPR4^,4pT^8gT^ 8�dR#\P
!TPR4^,4R#R# \dR#i;i \dR#i;i)zJ
Very simple check of the cidr format in no_proxy variable.

:rtype: bool
r�FT)�countr2r6r5rrr4)�string_networkr#s& rA�
is_valid_cidrr*�s������C� �A�%�	��~�+�+�C�0��3�4�D��!�8�t�b�y��	����^�1�1�#�6�q�9�:�
����	��	���	��	�s#�!A:�
,B�:B	�B	�B�Bc#�j"�VRJpV'd3\PPV4pV\PV&Rx�V'd-Xf\PVR#V\PV&R#R# T'd+Xf\PTiT\PT&ii;i5i)z�Set the environment variable 'env_name' to 'value'

Save previous value, yield, and then restore the previous value stored in
the environment variable 'env_name'.

If 'value' is None, do nothingN)rTrlrm)�env_namer��
value_changed�	old_values&&  rA�set_environr/�s������%�M���J�J�N�N�8�,�	�$��
�
�8��1�
��� ��J�J�x�(�'0��
�
�8�$�	��=�� ��J�J�x�(�'0��
�
�8�$�	�s�?B3�A<�6B3�<4B0�0B3c�l�RpTpVf	V!R4p\V4pVPfR#V'EdRVPRR4PR44p\	VP4'dQVFIp\V4'd"\
VPV4'dR#K5VPV8XgKHR#	MxVPpVP'dVR	VP2,
pVF>pVPPV4'gVPV4'gK=R#	\RV4;_uu_4\VP4pRRR4X'dR#R
# \\P3dR
pL3i;i +'giL?;i)z@
Returns whether we should bypass proxies or not.

:rtype: bool
c��\PPV4;'g.\PPVP44#�N)rTrlrm�upper)r�s&rA�	get_proxy�(should_bypass_proxies.<locals>.get_proxy�s0���z�z�~�~�c�"�A�A�b�j�j�n�n�S�Y�Y�[�&A�ArDN�no_proxyTc3�8"�TFq'gKVx�K	R#5ir2re)rfr<s& rArh�(should_bypass_proxies.<locals>.<genexpr>
s���R�%I�T�T�D�D�%I�s�	�
� r�,�:F)rrrr8r6r&r*r�port�endswithr/rr�r�gaierror)	rtr6r4�no_proxy_arg�parsed�proxy_ip�host_with_portr<�bypasss	&&       rA�should_bypass_proxiesrD�se��B�
�L����Z�(��
�c�]�F�
������x�S�X�%5�%5�c�2�%>�%D�%D�S�%I�R���6�?�?�+�+�$�� ��*�*�)�&�/�/�8�D�D�#�E��_�_��0� �%�$�_�_�N��{�{�{��A�f�k�k�]�"3�3�� ���?�?�+�+�D�1�1�^�5L�5L�T�5R�5R� �	!�
�Z��	.�	.�	�!�&�/�/�2�F�
/�����
�6�?�?�+�	��F�	��	
/�	.�s*�F#�F�F �F#�F � F#�#F3	c�>�\WR7'd/#\4#)z5
Return a dict of environment proxies.

:rtype: dict
�r6)rDr)rtr6s&&rA�get_environ_proxiesrG0s���S�4�4��	��|�rDc�d�T;'g/p\V4pVPf,VPVPVPR44#VPR,VP,VPRVP,R.pRpVFpWQ9gKW,pV#	V#)z�Select a proxy for the url, if applicable.

:param url: The url being for the request
:param proxies: A dictionary of schemes or schemes and hosts to proxy URLs
N�allz://zall://)rrrrm�scheme)rt�proxies�urlparts�
proxy_keys�proxy�	proxy_keys&&    rA�select_proxyrP<s����m�m��G���}�H���� ��{�{�8�?�?�G�K�K��,>�?�?�	���%��(�"3�"3�3�����8�$�$�$�
�	�J�
�E��	����&�E���L� �
�LrDc�X�VeTM/pVPp\V4PpVPR4pVP	4pV'dX\W5R7'gF\
W5R7pVPWGPR44pV'dVPWH4V#)a�This method takes proxy information from a request and configuration
input to resolve a mapping of target proxies. This will consider settings
such as NO_PROXY to strip proxy configurations.

:param request: Request or PreparedRequest
:param proxies: A dictionary of schemes or schemes and hosts to proxy URLs
:param trust_env: Boolean declaring whether to trust environment configs

:rtype: dict
r6rFrI)rtrrJrm�copyrDrG�
setdefault)	�requestrK�	trust_envrtrJr6�new_proxies�environ_proxiesrNs	&&&      rA�resolve_proxiesrXVs���!�,�g�"�G�
�+�+�C�
�c�]�
!�
!�F��{�{�:�&�H��,�,�.�K��.�s�F�F�-�c�E���#�#�F�,?�,?��,F�G����"�"�6�1��rDc��VR\2#)zC
Return a string representing the default user agent.

:rtype: str
r�r)rs&rA�default_user_agentrZqs���V�1�[�M�"�"rDc
�@�\R\4R\RRRR/4#)z1
:rtype: requests.structures.CaseInsensitiveDict
z
User-AgentzAccept-Encoding�Acceptz*/*�
Connectionz
keep-alive)r!rZ�DEFAULT_ACCEPT_ENCODINGrerDrA�default_headersr_zs/����,�.��6��e��,�		
��rDc���.pRpVPV4pV'gV#\P!RV4F�pVPR^4wrERVPR4/pVPR4F9pVPR4wr�TPT4YhPT4&K;	VP	V4K�	V# \dTRrTL�i;i \dK:i;i)z�Return a list of parsed link headers proxies.

i.e. Link: <http:/.../front.jpeg>; rel=front; type="image/jpeg",<http://.../back.jpeg>; rel=back;type="image/jpeg"

:rtype: list
z '"z, *<r*rrtz<> '"r�)r�r9r6r5r�)	r��links�
replace_chars�valrtr��linkr�r�s	&        rA�parse_header_linksre�s���
�E��M��K�K�
�&�E�����x�x���&��	"��)�)�C��+�K�C��s�y�y��*�+���\�\�#�&�E�
�"�[�[��-�
��.3�[�[��-G�D���=�)�*�
'�	���T��!'�$�L���	"��r��	"���
��
�s#�C�7C�C�C�C+�*C+��asciic��VR,pV\P\P39dR#VR,\P8XdR#VR,\P\P
39dR#VP
\4pV^8XdR#V^8Xd)VR,\8XdR	#VR
,\8XdR#V^8Xd)VR,\8XdR#VR
,\8XdR#R#)z
:rtype: str
:N�Nzutf-32:N�Nz	utf-8-sigr�zutf-16rK:NNr�z	utf-16-be:r�Nr�z	utf-16-lez	utf-32-ber�z	utf-32-leN)
r��BOM_UTF32_LE�BOM_UTF32_BE�BOM_UTF8�BOM_UTF16_LE�BOM_UTF16_BEr(�_null�_null2�_null3)�data�sample�	nullcounts&  rA�guess_json_utfrv�s����"�X�F�
�&�%�%�v�':�':�;�;��
�b�z�V�_�_�$��
�b�z�f�)�)�6�+>�+>�?�?�����U�#�I��A�~���A�~��#�;�&� ���$�<�6�!���A�~��"�:�����"�:����rDc��\V4pVwr4rVrxp	VPp
V
'gYzrzV'dRPWJ.4p
VfTpVfRp\W:VRW�34#)z�Given a URL that may or may not have a scheme, prepend the given scheme.
Does not replace a present scheme with the one provided as an argument.

:rtype: str
�@r)r�netlocr�r)rt�
new_schemer@rJ�authr<r<ro�query�fragmentrys&&         rA�prepend_scheme_if_neededr~�sk���s�^�F�6<�3�F�$�d�8��]�]�F��������4�.�)��
�~����|����v�t�R��A�B�BrDc��\V4p\VP4\VP43pV# \\
3dRpT#i;i)zoGiven a url with authentication components, extract them into a tuple of
username,password.

:rtype: (str,str)
)rr)rr�username�passwordr\r�)rtr@r{s&  rA�get_auth_from_urlr��sU���c�]�F������(�'�&�/�/�*B�C���K��
�I�&�����K��s�*9�A�Ac�>�Vwr\W^4\W^4R#)z�Verifies that header parts don't contain leading whitespace
reserved characters, or return characters.

:param header: tuple, in the format (name, value).
N)�_validate_header_part)r�rr�s&  rA�check_header_validityr�s���K�D��&��*��&��+rDc
�:�\V\4'd\V,pMB\V\4'd\V,pM\RV:RVR\
V424hVPV4'gV^8XdRMRp\RVRV:24hR#)z
Header part (z) from z# must be of type str or bytes, not rr�zTInvalid leading whitespace, reserved character(s), or return character(s) in header z: N)rRrr	rrr�typer:)r��header_part�header_validator_index�	validator�header_kinds&&&  rAr�r�s����+�s�#�#�*�+A�B�	�	�K��	'�	'�+�,B�C�	���K�?�'�&��:1�15�k�1B�0C�
E�
�	
�
�?�?�;�'�'� 6�!� ;�f����&�&1�]�"�[�O�
E�
�	
�(rDc��\V4wrr4rVV'gY2r2VPR^4R,p\WW4VR34#)zK
Given a url remove the fragment and the authentication part.

:rtype: str
rxrr�)r�rsplitr)rtrJryror�r|r}s&      rA�
urldefragauthr�sG��5=�S�M�1�F�D�%����
�]�]�3��
"�2�
&�F��v�t�U�B�?�@�@rDc���\VPRR4pVe6\VP\4'dV!VP4R#\
R4h \
d
\
R4hi;i)z^Move file pointer back to its recorded starting position
so it can be read again on redirect.
rQNz;An error occurred when rewinding request body for redirect.z+Unable to rewind request body for redirect.)r��bodyrR�_body_positionrr4r )�prepared_request�	body_seeks& rA�rewind_bodyr�/sy���(�-�-�v�t�<�I�����'�'��"�"�	��&�5�5�6�$�$Q�R�R���	�'�M��
�	�s�A�A3)z.netrcr{)FzBABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~r2)T)zpython-requests)k�__doc__r��
contextlibrZrTr9rr�sysr�rXr��collectionsr�urllib3.utilrrrrr�_internal_utilsrr	r
r�compatrr
rrrrrrr�rrrrrrr�cookiesr�
exceptionsrrrr �
structuresr!rn�where�DEFAULT_CA_BUNDLE_PATH�
DEFAULT_PORTSr�r6r^�platformrBrIrar}r�r��contextmanagerr�r�r�r�r�r�r�r�r�r�r�r�r�r��	frozensetrrrrrr&r*r/rDrGrPrXrZr_rerSrprqrrrvr~r�r�r�r�r�rerDrA�<module>r�s�����	�	�	�
�
�
����#�0��$������:����)���,�"���������W�c�*�
��)�)��H�H�W�l�4�8�9J�K�L���
�<�<�7��$�L	/�
�D3�N)
�X&�"�J���	��	��6�<�@�F�2�0��2%�2�2�"�$�P�M���
�05�,5�5���0���1��1�*:�z	��4�6#��"�L	�
�
�g���	����	�����@C�:
� ,�
�&A�"SrD

Youez - 2016 - github.com/yon3zu
LinuXploit