Files
order/.venv/Lib/site-packages/requests/__pycache__/utils.cpython-312.pyc

336 lines
35 KiB
Plaintext
Raw Normal View History

2025-08-27 21:11:48 +08:00
<EFBFBD>
C{<7B>g<EFBFBD><67><00><00>Z<00>dZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl
Z
ddl Z ddl m Z ddlmZmZddlmZddlmZddlmZmZmZmZdd lmZmZmZmZmZmZdd
lm Z!dd lm"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(dd l)m*Z*dd l+m,Z,m-Z-m.Z.m/Z/ddl0m1Z1dZ2ejf<00>Z4ddd<12>Z5djmejnded<15><16>d<00><00>Z8ejrdk(rd<19>Z:d<1A>Z"d<1B>Z;d<1C>Z<dHd<1D>Z=d<1E>Z>d<1F>Z?ej<>d <20><00>ZAd!<21>ZBd"<22>ZCd#<23>ZDd$<24>ZEdHd%<25>ZFd&<26>ZGd'<27>ZHd(<28>ZId)<29>ZJd*<2A>ZKd+<2B>ZLd,<2C>ZMd-<2D>ZNeOd.<2E>ZPd/<2F>ZQd0<64>ZRd1<64>ZSd2<64>ZTd3<64>ZUd4<64>ZVej<>d5<64><00>ZWd6<64>ZXdId7<64>ZYd8<64>ZZdJd9<64>Z[dKd:<3A>Z\d;<3B>Z]d<<3C>Z^d=j<>d><3E>Z`e`d?zZae`d@zZbdA<64>ZcdB<64>ZddC<64>ZedD<64>ZfdE<64>ZgdF<64>ZhdG<64>Ziy)Lz<4C>
requests.utils
~~~~~~~~~~~~~~
This module provides utility functions that are used within Requests
that are also useful for external consumption.
<EFBFBD>N)<01> OrderedDict)<02> make_headers<72> parse_url<72>)<01>certs<74><01> __version__)<04>_HEADER_VALIDATORS_BYTE<54>_HEADER_VALIDATORS_STR<54>HEADER_VALIDATORS<52>to_native_string)<06>Mapping<6E>
basestring<EFBFBD>bytes<65>
getproxies<EFBFBD>getproxies_environment<6E> integer_types)<01>parse_http_list)<07> proxy_bypass<73>proxy_bypass_environment<6E>quote<74>str<74>unquote<74>urlparse<73>
urlunparse<EFBFBD><01>cookiejar_from_dict)<04>FileModeWarning<6E> InvalidHeader<65>
InvalidURL<EFBFBD>UnrewindableBodyError)<01>CaseInsensitiveDict)z.netrc<72>_netrc<72>Pi<>)<02>http<74>httpsz, z,\s*T)<01>accept_encodingzaccept-encoding<6E>win32c<00><00> ddl} |j|jd<03>}t |j |d<04>d<00>}|j |d<05>d}|r|sy|jd<06>}|D]j}|dk(rd|vry |jdd
<EFBFBD>}|jd d <0C>}|jd d<08>}tj||tj<00>s<01>jy y#t$rYywxYw#t tf$rYywxYw)NrFz;Software\Microsoft\Windows\CurrentVersion\Internet Settings<67> ProxyEnable<6C> ProxyOverride<64>;z<local><3E>.Tz\.<2E>*z.*<2A>?) <0A>winreg<65> ImportError<6F>OpenKey<65>HKEY_CURRENT_USER<45>int<6E> QueryValueEx<45>OSError<6F>
ValueError<EFBFBD>split<69>replace<63>re<72>match<63>I)<06>hostr0<00>internetSettings<67> proxyEnable<6C> proxyOverride<64>tests <20>7D:\mooc\order\.venv\Lib\site-packages\requests/utils.py<70>proxy_bypass_registryrCLs<00><00> <19> <19>
<19>%<25>~<7E>~<7E><16>(<28>(<28>N<> <0E> <1C>
<1E>f<EFBFBD>1<>1<>2B<32>M<EFBFBD>R<>ST<53>U<>V<>K<EFBFBD>"<22>/<2F>/<2F>0@<40>/<2F>R<>ST<53>U<>M<EFBFBD><1B>-<2D><18>
&<26>+<2B>+<2B>C<EFBFBD>0<> <0A>!<21>D<EFBFBD><13>y<EFBFBD> <20><16>d<EFBFBD>?<3F><1F><17><<3C><<3C><03>U<EFBFBD>+<2B>D<EFBFBD><17><<3C><<3C><03>U<EFBFBD>+<2B>D<EFBFBD><17><<3C><<3C><03>T<EFBFBD>*<2A>D<EFBFBD><11>x<EFBFBD>x<EFBFBD><04>d<EFBFBD>B<EFBFBD>D<EFBFBD>D<EFBFBD>)<29><1B>"<22><15><>?<1B> <19><18> <19><><18><1A>$<24> <19><18> <19>s#<00>C<00>AC+<00> C(<03>'C(<03>+C=<03><C=c<00>B<00>t<00>r t|<00>St|<00>S)z<>Return True, if the host should be bypassed.
Checks proxy settings gathered from the environment, if specified,
or the registry.
)rrrC)r=s rBrrps <00><00> "<22> #<23>+<2B>D<EFBFBD>1<> 1<>(<28><14>.<2E> .<2E>c<00>><00>t|d<01>r|j<00>}|S)z/Returns an internal sequence dictionary update.<2E>items)<02>hasattrrG)<01>ds rB<00>dict_to_sequencerJ|s<00><00><0F>q<EFBFBD>'<27><1A> <0A>G<EFBFBD>G<EFBFBD>I<EFBFBD><01> <0C>HrEc<00><><00>d}d}t|d<02>r t|<00>}n~t|d<03>r |j}net|d<04>rY |j<00>}tj|<03>j
}d|j vrtjdt<00> t|d<07>rW |j<00>}t|d<08>r:|<01>8 |jdd <09>|j<00>}|j|xsd<01>|<01>d}t!d||z
<00>S#tjtf$rY<00><>wxYw#t$rd}Y<00>?wxYw#t$r|<01>|}Y<00>RwxYw)
Nr<00>__len__<5F>len<65>fileno<6E>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.<2E>tell<6C>seek<65>)rHrMrN<00>os<6F>fstat<61>st_size<7A>mode<64>warnings<67>warnr<00>io<69>UnsupportedOperation<6F>AttributeErrorrPrQr6<00>max)<04>o<> total_length<74>current_positionrNs rB<00> super_lenr`<00>s]<00><00><17>L<EFBFBD><18><14><0E>q<EFBFBD>)<29><1C><1A>1<EFBFBD>v<EFBFBD> <0C> <10><11>E<EFBFBD> <1A><18>u<EFBFBD>u<EFBFBD> <0C> <10><11>H<EFBFBD> <1D> <12><16>X<EFBFBD>X<EFBFBD>Z<EFBFBD>F<EFBFBD><1E>8<EFBFBD>8<EFBFBD>F<EFBFBD>+<2B>3<>3<>L<EFBFBD><13>!<21>&<26>&<26> <20><18> <0A> <0A>2<>$<24>
<12><0F>q<EFBFBD>&<26><19> %<25> <20>v<EFBFBD>v<EFBFBD>x<EFBFBD> <1C><17>q<EFBFBD>&<26>!<21>l<EFBFBD>&:<3A> %<25><15>F<EFBFBD>F<EFBFBD>1<EFBFBD>a<EFBFBD>L<EFBFBD>#$<24>6<EFBFBD>6<EFBFBD>8<EFBFBD>L<EFBFBD><16>F<EFBFBD>F<EFBFBD>+<2B>0<>q<EFBFBD>1<><14><1B><18> <0C> <0E>q<EFBFBD>,<2C>!1<>1<> 2<>2<><32>e<13>'<27>'<27><1E>8<> <11> <11>  <11><>X<1F>%<25>#$<24>L<EFBFBD>%<25><>%<17> 0<>
<1C>'<27>#/<2F> <20><>  0<>s6<00>D<00>(E<00>7D0<00>D-<03>,D-<03>0 D><03>=D><03> E<03>Ec<00>|<00>tjjd<01>}|<02>|f}n d<03>tD<00>} ddlm}m}d}|D]E} tj j|<07>}tj j|<08>s<01>C|}n|<06>yt|<00>} d}
t|t<00>r|
jd<07>}
| jj|
<EFBFBD>d} ||<06>j!| <0B>} | r| drdnd} | | | d fSy#t$rYywxYw#|t"f$r|r<01>YywxYw#t$t&f$rYywxYw)
z;Returns the Requests tuple auth for a given url from netrc.<2E>NETRCNc3<00>&K<00>|] }d|<01><00><02><01><00> y<01>w)z~/N<>)<02>.0<EFBFBD>fs rB<00> <genexpr>z!get_netrc_auth.<locals>.<genexpr><3E>s<00><00><><00>9<>[<5B><01>R<EFBFBD><01>s<EFBFBD>8<EFBFBD>[<5B>s<00>r)<02>NetrcParseError<6F>netrc<72>:<3A>asciirrR)rS<00>environ<6F>get<65> NETRC_FILESrirh<00>path<74>
expanduser<EFBFBD>KeyError<6F>existsr<00>
isinstancer<00>decode<64>netlocr8<00>authenticatorsr6r1r[)<0E>url<72> raise_errors<72>
netrc_file<EFBFBD>netrc_locationsrhri<00>
netrc_pathrf<00>loc<6F>ri<72>splitstrr=r#<00>login_is rB<00>get_netrc_authr<68><00>sS<00><00><14><1A><1A><1E><1E><07>(<28>J<EFBFBD><11><1D>%<25>-<2D><0F>9<>[<5B>9<><0F>- <0A>0<><19>
<EFBFBD> <20>A<EFBFBD> <17><18>g<EFBFBD>g<EFBFBD>(<28>(<28><11>+<2B><03><12>w<EFBFBD>w<EFBFBD>~<7E>~<7E>c<EFBFBD>"<22> <20>
<EFBFBD><15>!<21> <16> <1D> <12> <15>c<EFBFBD>]<5D><02><18><08> <15>c<EFBFBD>3<EFBFBD> <1F><1F><EFBFBD><EFBFBD>w<EFBFBD>/<2F>H<EFBFBD><11>y<EFBFBD>y<EFBFBD><EFBFBD><EFBFBD>x<EFBFBD>(<28><11>+<2B><04>
<16><1A>:<3A>&<26>5<>5<>d<EFBFBD>;<3B>F<EFBFBD><15>%<25>a<EFBFBD>y<EFBFBD>!<21>a<EFBFBD><07><1E>w<EFBFBD><0F><16><01><19>3<>3<><16><>3<1C> <17><17>  <17><>: <20><17>)<29> <16><1C><15><1C> <16><> <18><1E> (<28> <0A> <0C> <0A>s`<00>D)<00>D<02>#D)<00>D)<00> A D)<00>+D<00> D<05>D)<00>D<05>D)<00>D&<03>#D)<00>%D&<03>&D)<00>)D;<03>:D;c<00><><00>t|dd<02>}|rBt|t<00>r1|ddk7r(|ddk7rtjj |<01>Syyyy)z0Tries to guess the filename of the given object.<2E>nameNr<00><<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>)<06>getattrrsrrSro<00>basename)<02>objr<6A>s rB<00>guess_filenamer<65>sT<00><00> <12>3<EFBFBD><06><04> %<25>D<EFBFBD> <0B>
<EFBFBD>4<EFBFBD><1A>,<2C><14>a<EFBFBD><17>C<EFBFBD><1E>D<EFBFBD><12>H<EFBFBD>PS<50>O<EFBFBD><11>w<EFBFBD>w<EFBFBD><1F><1F><04>%<25>%<25>ET<01><1E>,<2C>trEc<00>R<00>tjj|<00>r|Stjj|<00>\}}|rytjj|<01>sZtjj|<01>\}}|sn5dj ||g<02>}|r tjj|<01>s<01>Zt j |<01>s|St j|<01>}||j<00>vr|Stj<00>}tjj ||jd<01>d<00>}tjj|<06>s6t|<06>5}|j|j|<02><00>ddd<03>|S|S#1swY|SxYw)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.
<20>/r<>N)rSrorrr8<00>join<69>zipfile<6C>
is_zipfile<EFBFBD>ZipFile<6C>namelist<73>tempfile<6C>
gettempdir<EFBFBD> atomic_open<65>write<74>read)ro<00>archive<76>member<65>prefix<69>zip_file<6C>tmp<6D>extracted_path<74> file_handlers rB<00>extract_zipped_pathsr<73>s@<00><00>

<EFBFBD>w<EFBFBD>w<EFBFBD>~<7E>~<7E>d<EFBFBD><1B><13> <0B><19>g<EFBFBD>g<EFBFBD>m<EFBFBD>m<EFBFBD>D<EFBFBD>)<29>O<EFBFBD>G<EFBFBD>V<EFBFBD>
<11>"<22>'<27>'<27>.<2E>.<2E><17>1<><1C>'<27>'<27>-<2D>-<2D><07>0<><0F><07><16><15> <12><14><18><18>6<EFBFBD>6<EFBFBD>*<2A>+<2B><06> <12>"<22>'<27>'<27>.<2E>.<2E><17>1<> <13> <1D> <1D>g<EFBFBD> &<26><13> <0B><16><EFBFBD><EFBFBD>w<EFBFBD>'<27>H<EFBFBD> <0A>X<EFBFBD>&<26>&<26>(<28>(<28><13> <0B> <13>
<1D>
<1D>
<1F>C<EFBFBD><17>W<EFBFBD>W<EFBFBD>\<5C>\<5C>#<23>v<EFBFBD>|<7C>|<7C>C<EFBFBD>'8<><12>'<<3C>=<3D>N<EFBFBD> <0A>7<EFBFBD>7<EFBFBD>><3E>><3E>.<2E> )<29> <18><1E> (<28>L<EFBFBD> <18> <1E> <1E>x<EFBFBD>}<7D>}<7D>V<EFBFBD>4<> 5<>)<29> <19><19>><3E><19>)<29> <19><19>s <00>/!F<03>F&c#<00>JK<00>tjtjj |<00><00><01>\}} tj
|d<02>5}|<03><03>ddd<03>tj ||<00>y#1swY<00> xYw#t$rtj|<02><00>wxYw<01>w)z-Write a file to the disk in an atomic fashion)<01>dir<69>wbN) r<><00>mkstemprSro<00>dirname<6D>fdopenr9<00> BaseException<6F>remove)<04>filename<6D>tmp_descriptor<6F>tmp_name<6D> tmp_handlers rBr<>r<>,s<00><00><><00> (<28>/<2F>/<2F>B<EFBFBD>G<EFBFBD>G<EFBFBD>O<EFBFBD>O<EFBFBD>H<EFBFBD>4M<34>N<><1C>N<EFBFBD>H<EFBFBD><0E> <0F>Y<EFBFBD>Y<EFBFBD>~<7E>t<EFBFBD> ,<2C> <0B><1D> <1D>-<2D>
<EFBFBD>
<EFBFBD>
<EFBFBD>8<EFBFBD>X<EFBFBD>&<26>-<2D> ,<2C><> <19><0E>
<EFBFBD> <09> <09>(<28><1B> <0A><0E>s4<00>7B#<01>B<00>A4<03>B<00>3B#<01>4A=<07>9B<00> B <03> B#c<00>t<00>|<00>yt|ttttf<04>r t d<02><00>t |<00>S)aTake 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)rsrr<00>boolr4r7r<00><01>values rB<00>from_key_val_listr<74>9s6<00><00>$ <0A>}<7D><13><11>%<25>#<23>u<EFBFBD>d<EFBFBD>C<EFBFBD>0<>1<><18>F<>G<>G<> <16>u<EFBFBD> <1D>rEc<00><><00>|<00>yt|ttttf<04>r t d<02><00>t|t <00>r|j<00>}t|<00>S)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<4E>) rsrrr<>r4r7rrG<00>listr<74>s rB<00>to_key_val_listr<74>TsJ<00><00>" <0A>}<7D><13><11>%<25>#<23>u<EFBFBD>d<EFBFBD>C<EFBFBD>0<>1<><18>F<>G<>G<><11>%<25><17>!<21><15> <0B> <0B> <0A><05> <0F><05>;<3B>rEc<00><><00>g}t|<00>D]5}|dd|ddcxk(rdk(rnnt|dd<00>}|j|<02><00>7|S)aParse 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
Nrr<><00>")<03>_parse_list_header<65>unquote_header_value<75>append)r<><00>result<6C>items rB<00>parse_list_headerr<72>rsT<00><00>.<10>F<EFBFBD>"<22>5<EFBFBD>)<29><04> <0F><02><11>8<EFBFBD>t<EFBFBD>B<EFBFBD>C<EFBFBD>y<EFBFBD> '<27>C<EFBFBD> '<27>'<27><04>Q<EFBFBD>r<EFBFBD>
<EFBFBD>3<>D<EFBFBD><0E> <0A> <0A>d<EFBFBD><1B>*<2A> <12>MrEc<00><><00>i}t|<00>D]H}d|vrd||<<00> |jdd<03>\}}|dd|ddcxk(rdk(rnnt|dd<00>}|||<<00>J|S)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
<20>=Nrr<>r<>)r<>r8r<>)r<>r<>r<>r<>s rB<00>parse_dict_headerr<72><00>sx<00><00>,<10>F<EFBFBD>"<22>5<EFBFBD>)<29><04> <0E>d<EFBFBD>?<3F><1F>F<EFBFBD>4<EFBFBD>L<EFBFBD> <14><1A>j<EFBFBD>j<EFBFBD><13>a<EFBFBD>(<28> <0B><04>e<EFBFBD> <10><12>!<21>9<EFBFBD><05>b<EFBFBD>c<EFBFBD>
<EFBFBD> )<29>c<EFBFBD> )<29>(<28><15>q<EFBFBD><12><1B>5<>E<EFBFBD><1C><06>t<EFBFBD> <0C>*<2A> <12>MrEc<00><><00>|rF|d|dcxk(rdk(r5n|S|dd}|r|dddk7r"|jdd<08>jd d<03>S|S)
z<EFBFBD>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
rr<>r<>rNrRz\\<5C>\z\")r9)r<><00> is_filenames rBr<>r<><00>sd<00><00> <0A><15>q<EFBFBD><18>U<EFBFBD>2<EFBFBD>Y<EFBFBD>-<2D>#<23>-<2D> <11>L<EFBFBD><16>a<EFBFBD><02> <0B><05><1B>e<EFBFBD>B<EFBFBD>Q<EFBFBD>i<EFBFBD>6<EFBFBD>1<><18>=<3D>=<3D><16><14>.<2E>6<>6<>u<EFBFBD>c<EFBFBD>B<> B<> <10>LrEc<00>J<00>i}|D]}|j||j<<00>|S)z<>Returns a key/value dictionary from a CookieJar.
:param cj: CookieJar object to extract cookies from.
:rtype: dict
)r<>r<>)<03>cj<63> cookie_dict<63>cookies rB<00>dict_from_cookiejarr<72><00>s-<00><00><15>K<EFBFBD><14><06>#)<29><<3C><<3C> <0B>F<EFBFBD>K<EFBFBD>K<EFBFBD> <20><15> <17>rEc<00><00>t||<00>S)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 rB<00>add_dict_to_cookiejarr<72><00>s<00><00> <1F>{<7B>B<EFBFBD> /<2F>/rEc<00>^<00>tjdt<00>tjdtj
<00><03>}tjdtj
<00><03>}tjd<05>}|j |<00>|j |<00>z|j |<00>zS)zlReturns 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=["\']*(.+?)["\'>])<01>flagsz+<meta.*?content=["\']*;?charset=(.+?)["\'>]z$^<\?xml.*?encoding=["\']*(.+?)["\'>])rWrX<00>DeprecationWarningr:<00>compiler<<00>findall)<04>content<6E>
charset_re<EFBFBD> pragma_re<72>xml_res rB<00>get_encodings_from_contentr<74><00>s<><00><00>
 <0A>M<EFBFBD>M<EFBFBD> 1<> <1B> <06><14><1A><1A>@<40><02><04><04>M<>J<EFBFBD><12>
<EFBFBD>
<EFBFBD>I<>QS<51>QU<51>QU<51>V<>I<EFBFBD> <0F>Z<EFBFBD>Z<EFBFBD>?<3F> @<40>F<EFBFBD> <13><1A><1A>7<EFBFBD>#<23>
<13>
<1B>
<1B>G<EFBFBD>
$<24> %<25>
<10>.<2E>.<2E><17>
!<21> "<22>rEc<00>H<00>|jd<01>}|dj<00>|dd}}i}d}|D]m}|j<00>}|s<01>|d}}|jd<07>} | dk7r+|d| j|<05>}|| dzdj|<05>}|||j<00><<00>o||fS) z<>Returns content type and parameters from given header
:param header: string
:return: tuple containing content type and dictionary of
parameters
r,rrNz"' Tr<54>r<>)r8<00>strip<69>find<6E>lower)
<EFBFBD>header<65>tokens<6E> content_type<70>params<6D> params_dict<63>items_to_strip<69>param<61>keyr<79><00>index_of_equalss
rB<00>_parse_content_type_headerr<72>s<><00><00><14>\<5C>\<5C>#<23> <1E>F<EFBFBD>!<21>!<21>9<EFBFBD>?<3F>?<3F>,<2C>f<EFBFBD>Q<EFBFBD>R<EFBFBD>j<EFBFBD>&<26>L<EFBFBD><14>K<EFBFBD><1B>N<EFBFBD><17><05><15> <0B> <0B> <0A><05> <10><1E><04><15>C<EFBFBD>#<23>j<EFBFBD>j<EFBFBD><13>o<EFBFBD>O<EFBFBD><1E>"<22>$<24><1B>,<2C>_<EFBFBD>-<2D>3<>3<>N<EFBFBD>C<><03><1D>o<EFBFBD><01>1<>3<>4<>:<3A>:<3A>><3E>J<><05>',<2C>K<EFBFBD><03> <09> <09> <0B> $<24><18> <18><1B> $<24>$rEc<00><><00>|jd<01>}|syt|<01>\}}d|vr|djd<04>Sd|vryd|vryy) z}Returns encodings from given HTTP Header Dict.
:param headers: dictionary to extract encoding from.
:rtype: str
z content-typeN<65>charsetz'"<22>textz
ISO-8859-1zapplication/json<6F>utf-8)rmr<>r<>)<03>headersr<73>r<>s rB<00>get_encoding_from_headersr<73>s`<00><00><1B>;<3B>;<3B>~<7E>.<2E>L<EFBFBD> <17><13>5<>l<EFBFBD>C<><18>L<EFBFBD>&<26><10>F<EFBFBD><1A><15>i<EFBFBD> <20>&<26>&<26>u<EFBFBD>-<2D>-<2D> <0A><1C><1D><1B><19>\<5C>)<29><16>*rEc#<00><>K<00>|j<00> |Ed{<00><02><02>ytj|j<00>d<02><03>}|D]}|j|<03>}|s<01>|<04><01><00>|jdd<05><06>}|r|<04><01>yy7<00>e<EFBFBD>w)zStream decodes an iterator.Nr9<00><01>errorsrET)<01>final)<04>encoding<6E>codecs<63>getincrementaldecoderrt)<05>iterator<6F>r<>decoder<65>chunk<6E>rvs rB<00>stream_decode_response_unicoder<65>3s<00><00><><00> <09>z<EFBFBD>z<EFBFBD><19><1B><1B><1B><0E>6<>f<EFBFBD>*<2A>*<2A>1<EFBFBD>:<3A>:<3A>6<>i<EFBFBD>H<>G<EFBFBD><19><05> <14>^<5E>^<5E>E<EFBFBD> "<22><02> <0A><14>H<EFBFBD><1A>
<11><1E><1E><03>4<EFBFBD><1E> (<28>B<EFBFBD> <09><10><08>
<EFBFBD> <1C>s<00>A<<01>A:<04>AA<<01>"A<c#<00><>K<00>d}|<01>|dkr t|<00>}|t|<00>kr||||z<00><01>||z }|t|<00>kr<01>yy<02>w)z Iterate over slices of a string.rN)rM)<03>string<6E> slice_length<74>poss rB<00> iter_slicesr<73>DsW<00><00><><00>
<0B>C<EFBFBD><13><1B>|<7C>q<EFBFBD>0<><1A>6<EFBFBD>{<7B> <0C>
<0A><03>F<EFBFBD> <0B>
<1B><14>S<EFBFBD>3<EFBFBD><1C>-<2D>.<2E>.<2E> <0B>|<7C><1B><03> <0E><03>F<EFBFBD> <0B>
<1B>s <00>AA<01>Ac<00>><00>tjdt<00>g}t|j<00>}|r t |j |<02>S t |j |d<02><03>S#t$r|j|<02>Y<00>5wxYw#t$r|j cYSwxYw)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.)r9r<>)
rWrXr<>r<>r<>rr<><00> UnicodeErrorr<72><00> TypeError)r<><00>tried_encodingsr<73>s rB<00>get_unicode_from_responser<65>Ns<><00><00> <0A>M<EFBFBD>M<EFBFBD> 1<> <1B> <06><19>O<EFBFBD>)<29><11><19><19>3<>H<EFBFBD><0F> -<2D><16>q<EFBFBD>y<EFBFBD>y<EFBFBD>(<28>+<2B> +<2B>
<19><12>1<EFBFBD>9<EFBFBD>9<EFBFBD>h<EFBFBD>y<EFBFBD>9<>9<><39> <1C> -<2D> <1B> "<22> "<22>8<EFBFBD> ,<2C> -<2D><> <15><19><10>y<EFBFBD>y<EFBFBD><18><19>s#<00>A$<00> B<00>$B<03>B<03>B<03>BzBABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~c<00><><00>|jd<01>}tdt|<01><00>D]l}||dd}t|<03>dk(rI|j<00>r9 t t |d<05><00>}|tvr|||ddz||<<00>Vd||<00><00>||<<00>bd||<00><00>||<<00>nd j|<01>S#t $rtd|<03>d<07><03><00>wxYw)
z<EFBFBD>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
<20>%rrrR<00>z"Invalid percent-escape sequence: '<27>'N<>)
r8<00>rangerM<00>isalnum<75>chrr4r7r <00>UNRESERVED_SETr<54>)<05>uri<72>parts<74>i<>h<>cs rB<00>unquote_unreservedr {s<><00><00> <10>I<EFBFBD>I<EFBFBD>c<EFBFBD>N<EFBFBD>E<EFBFBD> <12>1<EFBFBD>c<EFBFBD>%<25>j<EFBFBD> !<21><01> <11>!<21>H<EFBFBD>Q<EFBFBD>q<EFBFBD>M<EFBFBD><01> <0E>q<EFBFBD>6<EFBFBD>Q<EFBFBD>;<3B>1<EFBFBD>9<EFBFBD>9<EFBFBD>;<3B> L<01><17><03>A<EFBFBD>r<EFBFBD>
<EFBFBD>O<EFBFBD><01><11>N<EFBFBD>"<22><1C>u<EFBFBD>Q<EFBFBD>x<EFBFBD><01><02>|<7C>+<2B><05>a<EFBFBD><08><1E>u<EFBFBD>Q<EFBFBD>x<EFBFBD>j<EFBFBD>><3E><05>a<EFBFBD><08><1A>5<EFBFBD><11>8<EFBFBD>*<2A>~<7E>E<EFBFBD>!<21>H<EFBFBD>"<22> <0E>7<EFBFBD>7<EFBFBD>5<EFBFBD>><3E><19><><1E> L<01> <20>#E<>a<EFBFBD>S<EFBFBD><01>!J<>K<>K<> L<01>s <00>B'<02>'Cc<00>p<00>d}d} tt|<00>|<01><03>S#t$rt||<02><03>cYSwxYw)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!#$&'()*+,/:;=?@[]~)<01>safe)rr r )r<00>safe_with_percent<6E>safe_without_percents rB<00> requote_urir<00>sJ<00><00>/<2F><15>0<><18> 5<><15>'<27><03>,<2C>3D<33>E<>E<><45> <15>5<><15>S<EFBFBD>3<>4<>4<> 5<>s <00><00>5<03>5c
<00>r<00>tjdtj|<00><00>d}|j d<03>\}}tjdtjt t |<04><00><00><00>d}tjdtj|<03><00>d|z}||z||zk(S)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=Lrr<>)<07>struct<63>unpack<63>socket<65> inet_atonr8<00>dotted_netmaskr4)<07>ip<69>net<65>ipaddr<64>netaddr<64>bits<74>netmask<73>networks rB<00>address_in_networkr<00>s<><00><00><14>]<5D>]<5D>4<EFBFBD><16>!1<>!1<>"<22>!5<> 6<>q<EFBFBD> 9<>F<EFBFBD><17>I<EFBFBD>I<EFBFBD>c<EFBFBD>N<EFBFBD>M<EFBFBD>G<EFBFBD>T<EFBFBD><14>m<EFBFBD>m<EFBFBD>D<EFBFBD>&<26>"2<>"2<>><3E>#<23>d<EFBFBD>)<29>3L<33>"M<>N<>q<EFBFBD>Q<>G<EFBFBD><14>m<EFBFBD>m<EFBFBD>D<EFBFBD>&<26>"2<>"2<>7<EFBFBD>";<3B><<3C>Q<EFBFBD>?<3F>'<27>I<>G<EFBFBD> <12>W<EFBFBD> <1C>'<27>G<EFBFBD>"3<> 4<>4rEc<00>p<00>ddd|z
zdz
z }tjtjd|<01><00>S)z<>Converts mask from /xx format to xxx.xxx.xxx.xxx
Example: if mask is 24 function returns 255.255.255.0
:rtype: str
l<00><EFBFBD>r<00> z>I)r<00> inet_ntoar<00>pack)<02>maskrs rBrr<00>s7<00><00> <16><11>b<EFBFBD>4<EFBFBD>i<EFBFBD><1E>1<EFBFBD>,<2C> ,<2C>D<EFBFBD> <11> <1B> <1B>F<EFBFBD>K<EFBFBD>K<EFBFBD><04>d<EFBFBD>3<> 4<>4rEc<00>N<00> tj|<00>y#t$rYywxYw)z
:rtype: bool
FT)rrr6)<01> string_ips rB<00>is_ipv4_addressr&<00>s.<00><00><15><0E><18><18><19>#<23> <10><> <13><15><14><15>s <00><00> $<03>$c<00> <00>|jd<01>dk(rR t|jd<01>d<00>}|dks|dkDry t j
|jd<01>d<00>yy#t$rYywxYw#t $rYywxYw)zV
Very simple check of the cidr format in no_proxy variable.
:rtype: bool
r<>rFr rT)<07>countr4r8r7rrr6)<02>string_networkr#s rB<00> is_valid_cidrr*<00>s<><00><00> <16><1B><1B>C<EFBFBD> <20>A<EFBFBD>%<25> <19><16>~<7E>+<2B>+<2B>C<EFBFBD>0<><11>3<>4<>D<EFBFBD> <10>!<21>8<EFBFBD>t<EFBFBD>b<EFBFBD>y<EFBFBD><18> <19> <12> <1C> <1C>^<5E>1<>1<>#<23>6<>q<EFBFBD>9<> :<3A>
<10><15><><1A> <19><18> <19><><17> <19><18> <19>s"<00>A(<00>'A7<00>( A4<03>3A4<03>7 B<03>Bc#<00>8K<00>|du}|r2tjj|<00>}|tj|< d<01><02>|r(<03>tj|=y|tj|<yy#|r(<03>tj|=w|tj|<wwxYw<01>w)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)rSrlrm)<04>env_namer<65><00> value_changed<65> old_values rB<00> set_environr/<00>s<><00><00><><00><1A><14>%<25>M<EFBFBD><14><16>J<EFBFBD>J<EFBFBD>N<EFBFBD>N<EFBFBD>8<EFBFBD>,<2C> <09>$<24><02>
<EFBFBD>
<EFBFBD>8<EFBFBD><1C>1<> <0A> <18><18> <20><16>J<EFBFBD>J<EFBFBD>x<EFBFBD>(<28>'0<><02>
<EFBFBD>
<EFBFBD>8<EFBFBD>$<24> <19><>=<3D><18> <20><16>J<EFBFBD>J<EFBFBD>x<EFBFBD>(<28>'0<><02>
<EFBFBD>
<EFBFBD>8<EFBFBD>$<24> <19>s<00>9B<01>A+<00>+B<01>+,B<03>Bc<00><><00>d<01>}|}|<01>|d<03>}t|<00>}|j<00>y|r<>d<05>|jdd<07>jd<08>D<00>}t |j<00>r=|D]7}t |<05>rt |j|<05>s<01>%y|j|k(s<01>7yn_|j}|jr|d |j<00><00>z }|D]0}|jj|<07>s|j|<07>s<01>0ytd|<03>5 t|j<00>}ddd<02>ryy
#ttjf$rd
}Y<00>)wxYw#1swY<00>.xYw) zL
Returns whether we should bypass proxies or not.
:rtype: bool
c<00><><00>tjj|<00>xs-tjj|j<00><00>S<00>N)rSrlrm<00>upper)r<>s rB<00> get_proxyz(should_bypass_proxies.<locals>.get_proxys-<00><00><11>z<EFBFBD>z<EFBFBD>~<7E>~<7E>c<EFBFBD>"<22>A<>b<EFBFBD>j<EFBFBD>j<EFBFBD>n<EFBFBD>n<EFBFBD>S<EFBFBD>Y<EFBFBD>Y<EFBFBD>[<5B>&A<>ArEN<>no_proxyTc3<00>&K<00>|] }|s<01>|<01><01><00> y<00>wr2rd)rer=s rBrgz(should_bypass_proxies.<locals>.<genexpr>s<00><00><><00>R<>%I<>T<EFBFBD>T<EFBFBD>D<EFBFBD>%I<>s<00><01><01> r<00>,<2C>:F)r<00>hostnamer9r8r&r*r<00>port<72>endswithr/rr<>r<00>gaierror) rwr5r4<00> no_proxy_arg<72>parsed<65>proxy_ip<69>host_with_portr=<00>bypasss rB<00>should_bypass_proxiesrC<00>sI<00><00>B<01>
<1C>L<EFBFBD><0F><17><1C>Z<EFBFBD>(<28><08> <15>c<EFBFBD>]<5D>F<EFBFBD> <0A><EFBFBD><EFBFBD><1E><13><0F>S<01>X<EFBFBD>%5<>%5<>c<EFBFBD>2<EFBFBD>%><3E>%D<>%D<>S<EFBFBD>%I<>R<><08> <1A>6<EFBFBD>?<3F>?<3F> +<2B>$<24><08> <20><18>*<2A>)<29>&<26>/<2F>/<2F>8<EFBFBD>D<>#<23><1B>_<EFBFBD>_<EFBFBD><08>0<> <20>%<25>$<24>_<EFBFBD>_<EFBFBD>N<EFBFBD><15>{<7B>{<7B><1E>A<EFBFBD>f<EFBFBD>k<EFBFBD>k<EFBFBD>]<5D>"3<>3<><0E> <20><04><19>?<3F>?<3F>+<2B>+<2B>D<EFBFBD>1<>^<5E>5L<35>5L<35>T<EFBFBD>5R<35> <20> !<21>
<15>Z<EFBFBD><1C> .<2E> <1B>!<21>&<26>/<2F>/<2F>2<>F<EFBFBD>
/<2F><0E><13> <10><> <1A>6<EFBFBD>?<3F>?<3F>+<2B> <1B><1A>F<EFBFBD> <1B><>
/<2F> .<2E>s*<00>E<03>D2<02>2E<05> E<03>E<05>E<03>Ec<00>4<00>t||<01><01>riSt<00>S)zA
Return a dict of environment proxies.
:rtype: dict
<20>r5)rCr)rwr5s rB<00>get_environ_proxiesrF8s<00><00> <1D>S<EFBFBD>8<EFBFBD>4<><11> <09><19>|<7C>rEc<00>.<00>|xsi}t|<00>}|j<00>+|j|j|jd<02><00>S|jdz|jz|jd|jzdg}d}|D]}||vs<01>||}|S|S)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://)rr:rm<00>scheme)rw<00>proxies<65>urlparts<74>
proxy_keys<EFBFBD>proxy<78> proxy_keys rB<00> select_proxyrODs<><00><00> <16>m<EFBFBD><12>G<EFBFBD><17><03>}<7D>H<EFBFBD><0F><18><18> <20><16>{<7B>{<7B>8<EFBFBD>?<3F>?<3F>G<EFBFBD>K<EFBFBD>K<EFBFBD><05>,><3E>?<3F>?<3F> <11><0F><0F>%<25><1F>(<28>"3<>"3<>3<><10><0F><0F><10>8<EFBFBD>$<24>$<24>$<24> <0A> <06>J<EFBFBD> <11>E<EFBFBD><1F> <09> <14><07> <1F><1B>I<EFBFBD>&<26>E<EFBFBD> <11> <10>L<EFBFBD>  <20>
<11>LrEc<00>8<00>|<01>|ni}|j}t|<03>j}|jd<01>}|j <00>}|rOt ||<05><02>sBt ||<05><02>}|j||jd<03><00>}|r|j||<08>|S)a<>This method takes proxy information from a request and configuration
input to resolve a mapping of target proxies. This will consider settings
such a 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
r5rErH)rwrrIrm<00>copyrCrF<00>
setdefault) <09>requestrJ<00> trust_envrwrIr5<00> new_proxies<65>environ_proxiesrMs rB<00>resolve_proxiesrW^s<><00><00>!<21>,<2C>g<EFBFBD>"<22>G<EFBFBD>
<11>+<2B>+<2B>C<EFBFBD> <15>c<EFBFBD>]<5D> !<21> !<21>F<EFBFBD><16>{<7B>{<7B>:<3A>&<26>H<EFBFBD><19>,<2C>,<2C>.<2E>K<EFBFBD><10>.<2E>s<EFBFBD>X<EFBFBD>F<>-<2D>c<EFBFBD>H<EFBFBD>E<><0F><1F>#<23>#<23>F<EFBFBD>O<EFBFBD>,?<3F>,?<3F><05>,F<>G<><05> <10> <17> "<22> "<22>6<EFBFBD>5<EFBFBD> 1<> <16>rEc<00><00>|<00>dt<00><00>S)zO
Return a string representing the default user agent.
:rtype: str
r<>r)r<>s rB<00>default_user_agentrYys<00><00> <13>V<EFBFBD>1<EFBFBD>[<5B>M<EFBFBD> "<22>"rEc<00>:<00>tt<00>tddd<03><04>S)z9
:rtype: requests.structures.CaseInsensitiveDict
z*/*z
keep-alive)z
User-AgentzAccept-Encoding<6E>Accept<70>
Connection)r"rY<00>DEFAULT_ACCEPT_ENCODINGrdrErB<00>default_headersr^<00>s%<00><00> <1F>,<2C>.<2E>6<><1B>&<26> 
<EFBFBD> <06>rEc<00><><00>g}d}|j|<02>}|s|Stjd|<00>D]<5D>} |jdd<04>\}}d|jd<07>i}|jd<03>D]:} |jd<08>\}}|j|<02>||j|<02><<00><|j |<06><00><>|S#t$r|d}}Y<00><>wxYw#t$rY<00>4wxYw) 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,rrrwz<> '"r<>)r<>r:r8r7r<>) r<><00>links<6B> replace_chars<72>valrwr<><00>linkr<6B>r<>s rB<00>parse_header_linksrd<00>s<><00><00> <0F>E<EFBFBD><1A>M<EFBFBD> <11>K<EFBFBD>K<EFBFBD> <0A> &<26>E<EFBFBD> <10><14> <0C><11>x<EFBFBD>x<EFBFBD><06><05>&<26><03> "<22><1D>)<29>)<29>C<EFBFBD><11>+<2B>K<EFBFBD>C<EFBFBD><16><16>s<EFBFBD>y<EFBFBD>y<EFBFBD><18>*<2A>+<2B><04><1B>\<5C>\<5C>#<23>&<26>E<EFBFBD> <16>"<22>[<5B>[<5B><13>-<2D>
<EFBFBD><03>U<EFBFBD>.3<EFBFBD>[<5B>[<5B><1D>-G<>D<EFBFBD><13><19><19>=<3D>)<29> *<2A> '<27> <0E> <0C> <0C>T<EFBFBD><1A>!'<27>$ <11>L<EFBFBD><4C><1A> "<22><1D>r<EFBFBD><16>C<EFBFBD> "<22><><1E> <16><15> <16>s#<00>B?<02>1C<04>? C<05>C<05> C<07>C<07>rkrR<00>c<00><><00>|dd}|tjtjfvry|ddtjk(ry|ddtjtj
fvry|j t<00>}|dk(ry |dk(r |ddd<06>tk(ry
|d dd<06>tk(ry |dk(r|ddtk(ry |d dtk(ryy)z
:rtype: str
N<>zutf-32rfz utf-8-sigrRzutf-16rr<>z utf-16-berz utf-16-lez utf-32-bez utf-32-le)
r<EFBFBD><00> BOM_UTF32_LE<4C> BOM_UTF32_BE<42>BOM_UTF8<46> BOM_UTF16_LE<4C> BOM_UTF16_BEr(<00>_null<6C>_null2<6C>_null3)<03>data<74>sample<6C> nullcounts rB<00>guess_json_utfrt<00>s<><00><00><12>"<22>1<EFBFBD>X<EFBFBD>F<EFBFBD> <0A>&<26>%<25>%<25>v<EFBFBD>':<3A>':<3A>;<3B>;<3B><17> <0A>b<EFBFBD>q<EFBFBD>z<EFBFBD>V<EFBFBD>_<EFBFBD>_<EFBFBD>$<24><1A> <0A>b<EFBFBD>q<EFBFBD>z<EFBFBD>f<EFBFBD>)<29>)<29>6<EFBFBD>+><3E>+><3E>?<3F>?<3F><17><16> <0C> <0C>U<EFBFBD>#<23>I<EFBFBD><10>A<EFBFBD>~<7E><16><10>A<EFBFBD>~<7E> <11>#<23>A<EFBFBD>#<23>;<3B>&<26> <20><1E> <11>!<21>$<24>Q<EFBFBD>$<24><<3C>6<EFBFBD> !<21><1E><10>A<EFBFBD>~<7E> <11>"<22>1<EFBFBD>:<3A><16> <1F><1E> <11>!<21>"<22>:<3A><16> <1F><1E> rEc<00><><00>t|<00>}|\}}}}}}} |j}
|
s||
}}
|rdj||
g<02>}
|<03>|}|<07>d}t||
|d|| f<06>S)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
<20>@r)rrur<>r) rw<00>
new_schemer?rI<00>authr=r;ro<00>query<72>fragmentrus rB<00>prepend_scheme_if_neededr{<00>s{<00><00> <17>s<EFBFBD>^<5E>F<EFBFBD>6<<3C>3<>F<EFBFBD>D<EFBFBD>$<24><04>d<EFBFBD>E<EFBFBD>8<EFBFBD> <14>]<5D>]<5D>F<EFBFBD> <11><1B>V<EFBFBD><04><06> <0B><15><18><18>4<EFBFBD><16>.<2E>)<29><06> <0A>~<7E><1B><06> <0B>|<7C><11><04> <15>v<EFBFBD>v<EFBFBD>t<EFBFBD>R<EFBFBD><15><08>A<> B<>BrEc<00><><00>t|<00>} t|j<00>t|j<00>f}|S#tt
f$rd}Y|SwxYw)z{Given a url with authentication components, extract them into a tuple of
username,password.
:rtype: (str,str)
)rr)rr<00>username<6D>passwordr[r<>)rwr?rxs rB<00>get_auth_from_urlr<00>sU<00><00> <16>c<EFBFBD>]<5D>F<EFBFBD><18><17><06><0F><0F>(<28>'<27>&<26>/<2F>/<2F>*B<>C<><04> <10>K<EFBFBD><4B> <1B>I<EFBFBD> &<26><18><17><04> <0F>K<EFBFBD><18>s<00>*9<00>A<03> Ac<00>B<00>|\}}t||d<01>t||d<02>y)z<>Verifies that header parts don't contain leading whitespace
reserved characters, or return characters.
:param header: tuple, in the format (name, value).
rrN)<01>_validate_header_part)r<>r<>r<>s rB<00>check_header_validityr<79>s%<00><00> <19>K<EFBFBD>D<EFBFBD>%<25><19>&<26>$<24><01>*<2A><19>&<26>%<25><11>+rEc
<00><><00>t|t<00>r
t|}n7t|t<00>r
t|}nt d|<01>d|<00>dt |<01><00><00><06><00>|j|<01>s|dk(rdnd}t d|<04>d|<01><02><04><00>y) Nz Header part (z) from z# must be of type str or bytes, not rr<>r<>zSInvalid leading whitespace, reserved character(s), or returncharacter(s) in header z: )rsrr rr
r<00>typer;)r<><00> header_part<72>header_validator_index<65> validator<6F> header_kinds rBr<>r<>s<><00><00><11>+<2B>s<EFBFBD>#<23>*<2A>+A<>B<> <09> <13>K<EFBFBD><15> '<27>+<2B>,B<>C<> <09><1B><1B>K<EFBFBD>?<3F>'<27>&<26><18>:1<>15<31>k<EFBFBD>1B<31>0C<30> E<01>
<EFBFBD>
<EFBFBD>
<15>?<3F>?<3F>;<3B> '<27> 6<>!<21> ;<3B>f<EFBFBD><17> <0B><1B>&<26>&1<>]<5D>"<22>[<5B>O<EFBFBD> E<01>
<EFBFBD>
<EFBFBD> (rEc<00>~<00>t|<00>\}}}}}}|s||}}|jdd<02>d}t|||||df<06>S)zW
Given a url remove the fragment and the authentication part.
:rtype: str
rvrr<>r)r<00>rsplitr)rwrIruror<>ryrzs rB<00> urldefragauthr<68>&sU<00><00> 5=<3D>S<EFBFBD>M<EFBFBD>1<>F<EFBFBD>F<EFBFBD>D<EFBFBD>&<26>%<25><18> <12><1B>V<EFBFBD><04><06> <13>]<5D>]<5D>3<EFBFBD><01> "<22>2<EFBFBD> &<26>F<EFBFBD> <15>v<EFBFBD>v<EFBFBD>t<EFBFBD>V<EFBFBD>U<EFBFBD>B<EFBFBD>?<3F> @<40>@rEc<00><><00>t|jdd<02>}|<01>.t|jt<00>r ||j<00>yt d<04><00>#t
$r t d<03><00>wxYw)zfMove 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<><00>bodyrs<00>_body_positionrr6r!)<02>prepared_request<73> body_seeks rB<00> rewind_bodyr<79>7st<00><00><18>(<28>-<2D>-<2D>v<EFBFBD>t<EFBFBD><<3C>I<EFBFBD><10><1C><1A><18>'<27>'<27><1D>"<06> <0E> <15>&<26>5<>5<> 6<> $<24>$Q<>R<>R<><52> <17> <0E>'<27>M<><0E> <0E> <0E>s <00>A<00>A()Fr2)T)zpython-requests)j<>__doc__r<5F><00>
contextlibrYrSr:rr<00>sysr<73>rWr<><00> collectionsr<00> urllib3.utilrrrrr <00>_internal_utilsr
r r r <00>compatrrrrrrrr<>rrrrrrr<00>cookiesr<00>
exceptionsrrr r!<00>
structuresr"rn<00>where<72>DEFAULT_CA_BUNDLE_PATH<54> DEFAULT_PORTSr<53>r8r]<00>platformrCrJr`r<>r<>r<><00>contextmanagerr<72>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<><00> frozensetrr rrrr&r*r/rCrFrOrWrYr^rd<00>encodernrorprtr{rr<>r<>r<>r<>rdrErB<00><module>r<>s<00><01><04><0E><11> <09> <09> <09> <0A> <0A>
<EFBFBD><0F><0F><0E>#<23>0<><13>$<24><02><02> <02><02>:<3A><02><02><02>)<29><02><02> ,<2C>"<22> <0B>$<24><15><1B><1B><1D><16><1B>c<EFBFBD>*<2A> <0A><1F>)<29>)<29> <0C>B<EFBFBD>H<EFBFBD>H<EFBFBD>W<EFBFBD>l<EFBFBD>4<EFBFBD>8<>9J<39>K<>L<><02><17>
<07><<3C><<3C>7<EFBFBD><1A>"<15>H /<2F> <0A>?3<>D6 <0A>r&<26>"<1A>J <0C><1A><1A> <0E><1B> <0E><1E>6<17><<12>@<12>F<11>2 <17>0<><06>2%<25>2<17>2<11>"<1C>$<19>P<1B>M<><02><0E>
<1A>05<>, 5<>5<><10><10>0 <0C><1A><1A>1<><1B>1<>*9<11>x <1C><11>4<17>6#<23> <06>"<11>L <0F> <0A> <0A>g<EFBFBD><1E><05> <0E><11><19><06> <0E><11><19><06><10>@C<01>: <10> ,<2C>
<EFBFBD>&A<01>"SrE