/opt/cloudlinux/venv/lib/python3.11/site-packages/requests/__pycache__
NameSizeModeActions
adapters.cpython-311.pyc231510644editdlrm
api.cpython-311.pyc75120644editdlrm
auth.cpython-311.pyc146390644editdlrm
certs.cpython-311.pyc7290644editdlrm
compat.cpython-311.pyc21130644editdlrm
cookies.cpython-311.pyc271190644editdlrm
exceptions.cpython-311.pyc85210644editdlrm
help.cpython-311.pyc45460644editdlrm
hooks.cpython-311.pyc12590644editdlrm
models.cpython-311.pyc387090644editdlrm
packages.cpython-311.pyc13430644editdlrm
sessions.cpython-311.pyc297020644editdlrm
status_codes.cpython-311.pyc62460644editdlrm
structures.cpython-311.pyc62310644editdlrm
utils.cpython-311.pyc402530644editdlrm
_internal_utils.cpython-311.pyc21590644editdlrm
__init__.cpython-311.pyc63090644editdlrm
__version__.cpython-311.pyc5950644editdlrm
Edit: /opt/cloudlinux/venv/lib/python3.11/site-packages/requests/__pycache__/utils.cpython-311.pyc (40253B)
§ ëpÄÛ˜Åaaãóf—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/ddl0m1Z1dZ2ej3¦«Z4dddœZ5d 6ej7ded¬¦«d¦«¦«Z8ej9dkrd„Z:d„Z"d„Z;d„Zd „Z?ej@d!„¦«ZAd"„ZBd#„ZCd$„ZDd%„ZEdJd&„ZFd'„ZGd(„ZHd)„ZId*„ZJd+„ZKd,„ZLd-„ZMd.„ZNeOd/¦«ZPd0„ZQd1„ZRd2„ZSd3„ZTd4„ZUd5„ZVej@d6„¦«ZWd7„ZXdKd8„ZYd9„ZZdLd:„Z[dMd<„Z\d=„Z]d>„Z^d? _d@¦«Z`e`dAzZae`dBzZbdC„ZcdD„ZddE„ZedF„ZfdG„ZgdH„ZhdI„ZidS)Nz” 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)Úparse_http_list)Ú proxy_bypassÚproxy_bypass_environmentÚquoteÚstrÚunquoteÚurlparseÚ urlunparse©Úcookiejar_from_dict)ÚFileModeWarningÚ InvalidHeaderÚ InvalidURLÚUnrewindableBodyError)ÚCaseInsensitiveDict)z.netrcÚ_netrcéPi»)ÚhttpÚhttpsz, z,\s*T)Úaccept_encodingzaccept-encodingÚwin32cóL— ddl}n#t$rYdSwxYw | |jd¦«}t | |d¦«d¦«}| |d¦«d}n#t tf$rYdSwxYw|r|sdS| d¦«}|D]t}|dkrd|vrd S|  dd ¦«}|  d d ¦«}|  d d¦«}tj ||tj ¦«rd SŒudS)NrFz;Software\Microsoft\Windows\CurrentVersion\Internet SettingsÚ ProxyEnableÚ ProxyOverrideú;zú.Tz\.Ú*z.*ú?) ÚwinregÚ ImportErrorÚOpenKeyÚHKEY_CURRENT_USERÚintÚ QueryValueExÚOSErrorÚ ValueErrorÚsplitÚreplaceÚreÚmatchÚI)Úhostr0ÚinternetSettingsÚ proxyEnableÚ proxyOverrideÚtests ú`/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib/python3.11/site-packages/requests/utils.pyÚproxy_bypass_registryrCLsv€ð Ø ˆMˆMˆMˆMøÝð ð ð Ø�5�5ð øøøð Ø%Ÿ~š~ØÔ(ØNñ ô Ð õ ˜f×1Ò1Ð2BÀMÑRÔRÐSTÔUÑVÔVˆKà"×/Ò/Ð0@À/ÑRÔRÐSTÔUˆMˆMøÝ�Ð$ð ð ð Ø�5�5ð øøøàð  -ð Ø�5ð &×+Ò+¨CÑ0Ô0ˆ à!ð ð ˆDØ�yÒ Ð Ø˜d�?�?ؘ4˜4Ø—<’<  UÑ+Ô+ˆDØ—<’<  UÑ+Ô+ˆDØ—<’<  TÑ*Ô*ˆDÝŒx˜˜d¥B¤DÑ)Ô)ð Ø�t�tð àˆus‚‡ ”™A A:Á:BÂBcóZ—t¦«rt|¦«St|¦«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.€õ "Ñ #Ô #ð /Ý+¨DÑ1Ô1Ð 1å(¨Ñ.Ô.Ð .ócóN—t|d¦«r| ¦«}|S)z/Returns an internal sequence dictionary update.Úitems)ÚhasattrrG)Úds rBÚdict_to_sequencerJ|s(€õˆq�'ÑÔðØ �GŠG‰IŒIˆà €HrEcóæ—d}d}t|d¦«rt|¦«}n–t|d¦«r|j}n~t|d¦«rn | ¦«}tj|¦«j}d|jvrtjdt¦«n#tj tf$rYnwxYwt|d¦«r‘ |  ¦«}t|d¦«rW|€U | dd ¦«|  ¦«}| |pd¦«n'#t$rd}YnwxYwn#t$r|�|}YnwxYw|€d}t!d||z ¦«S) NrÚ__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é)rHrMrNÚosÚfstatÚst_sizeÚmodeÚwarningsÚwarnrÚioÚUnsupportedOperationÚAttributeErrorrPrQr6Úmax)ÚoÚ total_lengthÚcurrent_positionrNs rBÚ super_lenr`…s΀؀LØÐåˆq�)ÑÔðݘ1‘v”vˆ ˆ å ��EÑ Ô ðØ”uˆ ˆ å ��HÑ Ô ðð Ø—X’X‘Z”ZˆFõœ8 FÑ+Ô+Ô3ˆLð˜!œ&Ð Ð Ý” ð2õ$ñ ô ð øøõÔ'­Ð8ð ð ð ð ˆDð  øøøõ.ˆq�&ÑÔð%ð %Ø Ÿvšv™xœxÐ õ�q˜&Ñ!Ô!ð % lÐ&:ð %à—F’F˜1˜a‘L”L�LØ#$§6¢6¡8¤8�Lð—F’FÐ+Ð0¨qÑ1Ô1Ð1Ð1øÝð%ð%ð%Ø#$�L�L�Lð%øøøøøõ%ð 0ð 0ð 0ð Ð'Ø#/Ð øøð  0øøøð*ÐØˆ å ˆq�,Ð!1Ñ1Ñ 2Ô 2Ð2s7ÁBÂB8Â7B8à EÃ3AD5Ä5 EÅEÅEÅEFcóÒ—tj d¦«}|�|f}nd„tD¦«} ddlm}m}d}|D]X} tj |¦«}n#t$rYdSwxYwtj  |¦«r|}nŒY|€dSt|¦«} d} t|t¦«r|   d¦«} | j | ¦«d} ||¦« | ¦«} | r| drdnd} | | | d fSdS#|t"f$r|r‚YdSwxYw#t$t&f$rYdSwxYw) z;Returns the Requests tuple auth for a given url from netrc.ÚNETRCNc3ó K—|] }d|›�V—Œ dS)z~/N©)Ú.0Úfs rBú z!get_netrc_auth..Îs(èè€Ð9Ð9¨˜8 ˜8˜8Ð9Ð9Ð9Ð9Ð9Ð9rEr)ÚNetrcParseErrorÚnetrcó:ÚasciirrR)rSÚenvironÚgetÚ NETRC_FILESrirhÚpathÚ expanduserÚKeyErrorÚexistsrÚ isinstancerÚdecodeÚnetlocr8Úauthenticatorsr6r1r[)ÚurlÚ raise_errorsÚ netrc_fileÚnetrc_locationsrhriÚ netrc_pathrfÚlocÚriÚsplitstrr=r#Úlogin_is rBÚget_netrc_authr€Çsí€õ”—’ Ñ(Ô(€JØÐØ%˜-ˆˆà9Ð9­[Ð9Ñ9Ô9ˆð- Ø0Ð0Ð0Ð0Ð0Ð0Ð0Ð0àˆ à ð ð ˆAð Ý”g×(Ò(¨Ñ+Ô+��øÝð ð ð ð���ð  øøøõ Œw�~Š~˜cÑ"Ô"ð Ø � Ø�ð ð Ð Ø ˆFå �c‰]Œ]ˆðˆÝ �c�3Ñ Ô ð 0Ø—’ wÑ/Ô/ˆHØŒy�Š˜xÑ(Ô(¨Ô+ˆð Ø�U˜:Ñ&Ô&×5Ò5°dÑ;Ô;ˆFØð 4à% aœyÐ/˜!˜!¨a�ؘwœ¨°¬Ð3Ð3ð 4ð 4øð ¥Ð)ð ð ð ðð Øð ð ð ð øøøøõ �Ð (ð ð ð Ø ˆˆð øøøsZ¸EÁA'Á&EÁ' A6Á1EÁ5A6Á6)EÂ!AEÃ=;D;Ä;EÅ EÅ EÅEÅE&Å%E&cóЗt|dd¦«}|rLt|t¦«r9|ddkr/|ddkr%tj |¦«SdSdSdSdS)z0Tries to guess the filename of the given object.ÚnameNrú<éÿÿÿÿú>)ÚgetattrrsrrSroÚbasename)Úobjr‚s rBÚguess_filenamer‰sw€å �3˜ Ñ %Ô %€DØ ð&• ˜4¥Ñ,Ô,ð&°°a´¸C²°ÀDÈÄHÐPSÂOÀOÝŒw×Ò Ñ%Ô%Ð%ð&ð&ð&ð&°°ÀOÀOrEcó€—tj |¦«r|Stj |¦«\}}|r|tj |¦«s]tj |¦«\}}|sn8d ||g¦«}|rtj |¦«¯]t j|¦«s|St j|¦«}|| ¦«vr|Stj ¦«}tj || d¦«d¦«}tj |¦«sOt|¦«5}|  |  |¦«¦«ddd¦«n #1swxYwY|S)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. ú/r„N)rSrorrr8ÚjoinÚzipfileÚ is_zipfileÚZipFileÚnamelistÚtempfileÚ gettempdirÚ atomic_openÚwriteÚread)roÚarchiveÚmemberÚprefixÚzip_fileÚtmpÚextracted_pathÚ file_handlers rBÚextract_zipped_pathsr�sÅ€õ  „w‡~‚~�dÑÔðàˆ õ”g—m’m DÑ)Ô)�O€GˆVØ ð,�"œ'Ÿ.š.¨Ñ1Ô1ð,Ýœ'Ÿ-š-¨Ñ0Ô0‰ˆ�Øð ð Ø—’˜6 6Ð*Ñ+Ô+ˆð ð,�"œ'Ÿ.š.¨Ñ1Ô1ð,õ Ô ˜gÑ &Ô &ðØˆ åŒ˜wÑ'Ô'€HØ �X×&Ò&Ñ(Ô(Ð(Ð(؈ õ Ô Ñ Ô €CÝ”W—\’\ # v§|¢|°CÑ'8Ô'8¸Ô'<Ñ=Ô=€NÝ Œ7�>Š>˜.Ñ )Ô )ð6å ˜Ñ (Ô (ð 6¨LØ × Ò ˜xŸ}š}¨VÑ4Ô4Ñ 5Ô 5Ð 5ð 6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6à ÐsÅ>)F3Æ3F7Æ:F7c#óHK—tjtj |¦«¬¦«\}} tj|d¦«5}|V—ddd¦«n #1swxYwYtj||¦«dS#t$rtj|¦«‚wxYw)z-Write a file to the disk in an atomic fashion)ÚdirÚwbN) r‘ÚmkstemprSroÚdirnameÚfdopenr9Ú BaseExceptionÚremove)ÚfilenameÚtmp_descriptorÚtmp_nameÚ tmp_handlers rBr“r“,séèè€õ (Ô/µB´G·O²OÀHÑ4MÔ4MÐNÑNÔNÑ€N�HðÝ ŒY�~ tÑ ,Ô ,ð ° ØÐ Ð Ð ð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å Œ �8˜XÑ&Ô&Ð&Ð&Ð&øÝ ðððÝ Œ �(ÑÔÐØ ðøøøs/¹BÁAÁ BÁA#Á#BÁ&A#Á'B B!có–—|€dSt|ttttf¦«rt d¦«‚t |¦«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Úboolr4r7r©Úvalues rBÚfrom_key_val_listr¯9sG€ð$ €}؈tå�%�#�u¥d­CÐ0Ñ1Ô1ðHÝÐFÑGÔGÐGå �uÑ Ô ÐrEcóè—|€dSt|ttttf¦«rt d¦«‚t|t ¦«r| ¦«}t|¦«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«) rsrrr¬r4r7rrGÚlistr­s rBÚto_key_val_listr²Tsd€ð" €}؈tå�%�#�u¥d­CÐ0Ñ1Ô1ðHÝÐFÑGÔGÐGå�%�Ñ!Ô!ðØ— ’ ‘ ” ˆå �‰;Œ;ÐrEcóÆ—g}t|¦«D]N}|dd…|dd…cxkrdkrnnt|dd…¦«}| |¦«ŒO|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„ú")Ú_parse_list_headerÚunquote_header_valueÚappend)r®ÚresultÚitems rBÚparse_list_headerrºrs�€ð.€FÝ" 5Ñ)Ô)ððˆØ ���Œ8�t˜B˜C˜C”yÐ 'Ð 'Ò 'Ð ' CÒ 'Ð 'Ð 'Ð 'Ð 'Ý'¨¨Q¨r¨T¬ Ñ3Ô3ˆDØ� Š �dÑÔÐÐØ €MrEcóì—i}t|¦«D]a}d|vrd||<Œ | dd¦«\}}|dd…|dd…cxkrdkrnnt|dd…¦«}|||<Œb|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 ú=Nrr„r´)rµr8r¶)r®r¸r¹r‚s rBÚparse_dict_headerr½’s£€ð,€FÝ" 5Ñ)Ô)ððˆØ �dˆ?ˆ?؈F�4‰LØ Ø—j’j  aÑ(Ô(‰ ˆˆeØ ��!�Œ9˜˜b˜c˜cœ Ð )Ð )Ò )Ð ) cÒ )Ð )Ð )Ð )Ð )Ý(¨¨q°¨t¬Ñ5Ô5ˆE؈ˆt‰ ˆ Ø €MrEcóÊ—|r`|d|dcxkrdkrGnnD|dd…}|r|dd…dkr*| dd¦« d d¦«S|S) 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 rr„r´rNrRz\\ú\z\")r9)r®Ú is_filenames rBr¶r¶µs‹€ð ð C��q”˜U 2œYÐ-Ð-Ò-Ð-¨#Ò-Ð-Ð-Ð-Ð-ð �a˜�d” ˆðð C˜e B Q Bœi¨6Ò1Ð1Ø—=’= ¨Ñ.Ô.×6Ò6°u¸cÑBÔBÐ BØ €LrEcó2—i}|D]}|j||j<Œ|S)z€Returns a key/value dictionary from a CookieJar. :param cj: CookieJar object to extract cookies from. :rtype: dict )r®r‚)ÚcjÚ cookie_dictÚcookies rBÚdict_from_cookiejarrÅÎs/€ð€Kàð0ð0ˆØ#)¤<ˆ �F”KÑ Ð à ÐrEcó"—t||¦«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Úadd_dict_to_cookiejarrÇÝs€õ ˜{¨BÑ /Ô /Ð/rEcó`—tjdt¦«tjdtj¬¦«}tjdtj¬¦«}tjd¦«}| |¦«| |¦«z| |¦«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!])Úflagsz+]z$^<\?xml.*?encoding=["\']*(.+?)["\'>])rWrXÚDeprecationWarningr:Úcompiler<Úfindall)ÚcontentÚ charset_reÚ pragma_reÚxml_res rBÚget_encodings_from_contentrÑès¦€õ  „Mð 1õ ñ ôðõ”Ð@ÍÌÐMÑMÔM€JÝ” ÐIÕQSÔQUÐVÑVÔV€IÝ ŒZÐ?Ñ @Ô @€Fð ×Ò˜7Ñ#Ô#Ø × Ò ˜GÑ $Ô $ñ %à �.Š.˜Ñ !Ô !ñ "ðrEcó —| d¦«}|d ¦«|dd…}}i}d}|D]‹}| ¦«}|rs|d}}| d¦«} | dkr=|d| … |¦«}|| dzd… |¦«}||| ¦«<ŒŒ||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¼r„)r8ÚstripÚfindÚlower) ÚheaderÚtokensÚ content_typeÚparamsÚ params_dictÚitems_to_stripÚparamÚkeyr®Úindex_of_equalss rBÚ_parse_content_type_headerrßsä€ð�\Š\˜#Ñ Ô €FØ! !œ9Ÿ?š?Ñ,Ô,¨f°Q°R°R¬j�&€LØ€KØ€Nàð-ð-ˆØ— ’ ‘ ” ˆØ ð -Ø �ˆCØ#Ÿjšj¨™oœoˆOØ "Ò$Ð$ØÐ,˜_Ð,Ô-×3Ò3°NÑCÔC�ؘo°Ñ1Ð3Ð3Ô4×:Ò:¸>ÑJÔJ�Ø',ˆK˜Ÿ š ™ œ Ñ $øØ ˜Ð $Ð$rEcó²—| d¦«}|sdSt|¦«\}}d|vr|d d¦«Sd|vrdSd|vrdSdS) z}Returns encodings from given HTTP Header Dict. :param headers: dictionary to extract encoding from. :rtype: str z content-typeNÚcharsetz'"Útextz ISO-8859-1zapplication/jsonúutf-8)rmrßrÓ)ÚheadersrØrÙs rBÚget_encoding_from_headersrås€€ð—;’;˜~Ñ.Ô.€Là ð؈tå5°lÑCÔCÑ€L�&à�FÐÐØ�iÔ ×&Ò& uÑ-Ô-Ð-à �ÐÐØˆ|à˜\Ð)Ð)àˆwð*Ð)rEc#óðK—|j€ |Ed{V—†dStj|j¦«d¬¦«}|D]}| |¦«}|r|V—Œ| dd¬¦«}|r|V—dSdS)zStream decodes an iterator.Nr9©ÚerrorsrET)Úfinal)ÚencodingÚcodecsÚgetincrementaldecoderrt)ÚiteratorÚrÚdecoderÚchunkÚrvs rBÚstream_decode_response_unicoderò3s²èè€ð „zÐØÐÐÐÐÐÐÐØˆà6�fÔ*¨1¬:Ñ6Ô6¸iÐHÑHÔH€GØððˆØ �^Š^˜EÑ "Ô "ˆØ ð ØˆHˆHˆHøØ �Š˜ 4ˆÑ (Ô (€BØ ðØˆˆˆˆˆððrEc#ó´K—d}|�|dkrt|¦«}|t|¦«kr)||||z…V—||z }|t|¦«k°'dSdS)z Iterate over slices of a string.rN)rM)ÚstringÚ slice_lengthÚposs rBÚ iter_slicesr÷Ds{èè€à €CØÐ˜|¨qÒ0Ð0ݘ6‘{”{ˆ Ø •�F‘ ” Ò Ð Ø�S˜3 Ñ-Ð-Ô.Ð.Ð.Ð.Ø ˆ|шð •�F‘ ” Ò Ð Ð Ð Ð Ð rEcó:—tjdt¦«g}t|j¦«}|r; t |j|¦«S#t$r| |¦«YnwxYw t |j|d¬¦«S#t$r |jcYSwxYw)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ÍÚ UnicodeErrorr·Ú TypeError)rîÚtried_encodingsrês rBÚget_unicode_from_responserüNsÓ€õ „Mð 1õ ñ ôðð€Oõ)¨¬Ñ3Ô3€Hàð-ð -Ý�q”y (Ñ+Ô+Ð +øÝð -ð -ð -Ø × "Ò " 8Ñ ,Ô ,Ð ,Ð ,Ð ,ð -øøøðÝ�1”9˜h¨yÐ9Ñ9Ô9Ð9øÝ ðððØŒyÐÐÐðøøøs#´A Á A+Á*A+Á/BÂBÂBzBABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~cóþ—| d¦«}tdt|¦«¦«D]¶}||dd…}t|¦«dkrƒ| ¦«ro t t |d¦«¦«}n!#t $rtd|›d�¦«‚wxYw|tvr|||dd…z||<Œ™d||›�||<Œ¨d||›�||<Œ·d   |¦«S) 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 ú%rrrRéz"Invalid percent-escape sequence: 'ú'NÚ) r8ÚrangerMÚisalnumÚchrr4r7r ÚUNRESERVED_SETrŒ)ÚuriÚpartsÚiÚhÚcs rBÚunquote_unreservedr {s€ð �IŠI�c‰NŒN€EÝ �1•c˜%‘j”jÑ !Ô !ð &ð &ˆØ �!ŒH�Q�q�SŒMˆÝ ˆq‰6Œ6�QŠ;ˆ;˜1Ÿ9š9™;œ;ˆ;ð LÝ�˜A˜r™ œ ‘O”O��øÝð Lð Lð LÝ Ð!JÀaÐ!JÐ!JÐ!JÑKÔKÐKð Løøøð•NÐ"Ð"ؘu Qœx¨¨¨œ|Ñ+��a‘�à)˜u Qœx˜>˜>��a‘�à%˜5 œ8�~�~ˆE�!‰HˆHØ �7Š7�5‰>Œ>Ðs Á-B  B)cóŠ—d}d} tt|¦«|¬¦«S#t$rt||¬¦«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!#$&'()*+,/:;=?@[]~)Úsafe)rr r )rÚsafe_with_percentÚsafe_without_percents rBÚ requote_urir“sk€ð/ÐØ0Ðð 5õÕ'¨Ñ,Ô,Ð3DÐEÑEÔEÐEøÝ ð5ð5ð5õ�SÐ3Ð4Ñ4Ô4Ð4Ð4Ð4ð 5øøøs†$¤AÁAc ó’—tjdtj|¦«¦«d}| d¦«\}}tjdtjt t |¦«¦«¦«¦«d}tjdtj|¦«¦«d|z}||z||zkS)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‹)ÚstructÚunpackÚsocketÚ inet_atonr8Údotted_netmaskr4)ÚipÚnetÚipaddrÚnetaddrÚbitsÚnetmaskÚnetworks rBÚaddress_in_networkr©s¢€õŒ]˜4¥Ô!1°"Ñ!5Ô!5Ñ 6Ô 6°qÔ 9€FØ—I’I˜c‘N”N�M€GˆTÝŒm˜D¥&Ô"2µ>Å#ÀdÁ)Ä)Ñ3LÔ3LÑ"MÔ"MÑNÔNÈqÔQ€GÝŒm˜D¥&Ô"2°7Ñ";Ô";Ñ<Ô<¸QÔ?À'ÑI€GØ �WÑ  '¨GÑ"3Ò 4Ð4rEcól—ddd|z zdz z }tjtjd|¦«¦«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ÿÿré z>I)rÚ inet_ntoarÚpack)Úmaskrs rBrr¸s8€ð ˜˜b 4™i™¨1Ñ,Ñ ,€DÝ Ô �FœK¨¨dÑ3Ô3Ñ 4Ô 4Ð4rEcóT— tj|¦«n#t$rYdSwxYwdS)z :rtype: bool FT)rrr6)Ú string_ips rBÚis_ipv4_addressr&ÃsB€ðÝÔ˜Ñ#Ô#Ð#Ð#øÝ ððð؈uˆuðøøøà ˆ4s ‚— %¤%cóN—| d¦«dkr‰ t| d¦«d¦«}n#t$rYdSwxYw|dks|dkrdS t j| d¦«d¦«n#t $rYdSwxYwdSdS)zV Very simple check of the cidr format in no_proxy variable. :rtype: bool r‹rFr rT)Úcountr4r8r7rrr6)Ústring_networkr#s rBÚ is_valid_cidrr*ÎsØ€ð ×Ò˜CÑ Ô  AÒ%Ð%ð Ý�~×+Ò+¨CÑ0Ô0°Ô3Ñ4Ô4ˆDˆDøÝð ð ð Ø�5�5ð øøøð �!Š8ˆ8�t˜b’y�yØ�5ð Ý Ô ˜^×1Ò1°#Ñ6Ô6°qÔ9Ñ :Ô :Ð :Ð :øÝð ð ð Ø�5�5ð øøøðˆuØ ˆ4s#›(AÁ AÁAÁ$-B B ÂB c#óK—|du}|r.tj |¦«}|tj|< dV—|r"|€tj|=dS|tj|<dSdS#|r|€tj|=n|tj|<wxYw)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)Úenv_namer®Ú value_changedÚ old_values rBÚ set_environr/æs´èè€ð Ð%€MØð%Ý”J—N’N 8Ñ,Ô,ˆ Ø$�Œ �8Ñð1Ø ˆˆˆà ð 1ØÐ Ý”J˜xÐ(Ð(Ð(à'0•” ˜8Ñ$Ð$Ð$ð  1ð 1øˆ=ð 1ØÐ Ý”J˜xÐ(Ð(à'0•” ˜8Ñ$Ð0Ð0Ð0Ð0s ¸A"Á"#BcóÈ—d„}|}|€ |d¦«}t|¦«}|j€dS|rÕd„| dd¦« d¦«D¦«}t |j¦«r<|D]8}t |¦«rt |j|¦«rdSŒ*|j|krdSŒ9nR|j}|jr |d |j›�z }|D]4}|j |¦«s| |¦«rdSŒ5td|¦«5 t|j¦«}n#ttj f$rd }YnwxYwddd¦«n #1swxYwY|rdSd S) zL Returns whether we should bypass proxies or not. :rtype: bool có¢—tj |¦«p0tj | ¦«¦«S©N)rSrlrmÚupper)rÝs rBÚ get_proxyz(should_bypass_proxies..get_proxys1€ÝŒz�~Š~˜cÑ"Ô"ÐA¥b¤j§n¢n°S·Y²Y±[´[Ñ&AÔ&AÐArENÚno_proxyTc3óK—|]}|¯|V—Œ dSr2rd)rer=s rBrgz(should_bypass_proxies..s'èè€ÐRÐR˜TÈTÐR�DÐRÐRÐRÐRÐRÐRrEú rú,ú:F)rÚhostnamer9r8r&r*rÚportÚendswithr/rrúrÚgaierror) rwr5r4Ú no_proxy_argÚparsedÚproxy_ipÚhost_with_portr=Úbypasss rBÚshould_bypass_proxiesrCüs#€ðBðBðBð €LØÐØ�9˜ZÑ(Ô(ˆÝ �c‰]Œ]€Fà „Ðàˆtàð ðSÐR X×%5Ò%5°c¸2Ñ%>Ô%>×%DÒ%DÀSÑ%IÔ%IÐRÑRÔRˆå ˜6œ?Ñ +Ô +ð Ø$ð ð �Ý  Ñ*Ô*ð Ý)¨&¬/¸8ÑDÔDð$Ø#˜t˜tð$à”_¨Ò0Ð0ð ˜4˜4ð1ð  ð$œ_ˆNØŒ{ð 4ØÐ"3 f¤kÐ"3Ð"3Ñ3�à ð ð �Ø”?×+Ò+¨DÑ1Ô1ð °^×5LÒ5LÈTÑ5RÔ5Rð ð ˜4˜4ð õ �Z Ñ .Ô .ððð Ý! &¤/Ñ2Ô2ˆFˆFøÝ�6œ?Ð+ð ð ð ØˆFˆFˆFð øøøð ððñôððððððøøøðððððð؈tà ˆ5s6ÄEÄD)Ä(EÄ)EÅEÅEÅEÅEÅEcóD—t||¬¦«riSt¦«S)zA Return a dict of environment proxies. :rtype: dict ©r5)rCr)rwr5s rBÚget_environ_proxiesrF8s(€õ ˜S¨8Ð4Ñ4Ô4ðØˆ å‰|Œ|ÐrEcó—|pi}t|¦«}|j€.| |j| d¦«¦«S|jdz|jz|jd|jzdg}d}|D]}||vr ||}nŒ|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Úscheme)rwÚproxiesÚurlpartsÚ proxy_keysÚproxyÚ proxy_keys rBÚ select_proxyrODs­€ð ˆm˜€Gݘ‰}Œ}€HØÔÐ Ø�{Š{˜8œ?¨G¯KªK¸Ñ,>Ô,>Ñ?Ô?Ð?𠌘%Ñ (Ô"3Ñ3ØŒØ�8Ô$Ñ$Ø ð €Jð €EØððˆ Ø ˜Ð РؘIÔ&ˆEØ ˆEð ð €LrEcód—|�|ni}|j}t|¦«j}| d¦«}| ¦«}|rct ||¬¦«sRt ||¬¦«}| || d¦«¦«}|r| ||¦«|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 Nr5rErH)rwrrIrmÚcopyrCrFÚ setdefault) ÚrequestrJÚ trust_envrwrIr5Ú new_proxiesÚenviron_proxiesrMs rBÚresolve_proxiesrW^s»€ð!Ð,ˆgˆg°"€GØ Œ+€CÝ �c‰]Œ]Ô !€FØ�{Š{˜:Ñ&Ô&€HØ—,’,‘.”.€Kàð2Õ.¨s¸XÐFÑFÔFð2Ý-¨c¸HÐEÑEÔEˆà×#Ò# F¨O×,?Ò,?ÀÑ,FÔ,FÑGÔGˆà ð 2Ø × "Ò " 6¨5Ñ 1Ô 1Ð 1Ø ÐrEúpython-requestscó—|›dt›�S)zO Return a string representing the default user agent. :rtype: str r‹r)r‚s rBÚdefault_user_agentrZys€ð Ð "Ð "•[Ð "Ð "Ð"rEcóL—tt¦«tdddœ¦«S)z9 :rtype: requests.structures.CaseInsensitiveDict z*/*z keep-alive)z User-AgentzAccept-EncodingÚAcceptÚ Connection)r"rZÚDEFAULT_ACCEPT_ENCODINGrdrErBÚdefault_headersr_‚s2€õ å,Ñ.Ô.Ý6ØØ&ð  ð ñ ô ðrEcó—g}d}| |¦«}|s|Stjd|¦«D]Ë} | dd¦«\}}n#t$r|d}}YnwxYwd| d¦«i}| d¦«D]X} | d¦«\}}n#t$rYn0wxYw| |¦«|| |¦«<ŒY| |¦«ŒÌ|S) z¼Return a list of parsed link headers proxies. i.e. Link: ; rel=front; type="image/jpeg",; rel=back;type="image/jpeg" :rtype: list z '"z, * '"r¼)rÓr:r8r7r·) r®ÚlinksÚ replace_charsÚvalrwrÙÚlinkrÜrÝs rBÚparse_header_linksre�sA€ð €Eà€Mà �KŠK˜ Ñ &Ô &€EØ ðØˆ åŒx˜ Ñ&Ô&ððˆð "ØŸ)š) C¨Ñ+Ô+‰KˆC��øÝð "ð "ð "ؘr�ˆCˆCˆCð "øøøð�s—y’y Ñ*Ô*Ð+ˆà—\’\ #Ñ&Ô&ð Hð HˆEð Ø"Ÿ[š[¨Ñ-Ô-‘ ��U�UøÝð ð ð Ø��ð øøøð.3¯[ª[¸Ñ-GÔ-GˆD�—’˜=Ñ)Ô)Ñ *Ð *à � Š �TÑÔÐÐà €Ls#¶AÁA!Á A!ÂB,Â, B:Â9B:úrkrRécóÖ—|dd…}|tjtjfvrdS|dd…tjkrdS|dd…tjtjfvrdS| t¦«}|dkrd S|dkr,|ddd…tkrd S|d dd…tkrd S|dkr*|dd…tkrd S|d d…tkrdSdS)z :rtype: str Nézutf-32rgz utf-8-sigrRzutf-16rrãz utf-16-berz utf-16-lez utf-32-bez utf-32-le) rëÚ BOM_UTF32_LEÚ BOM_UTF32_BEÚBOM_UTF8Ú BOM_UTF16_LEÚ BOM_UTF16_BEr(Ú_nullÚ_null2Ú_null3)ÚdataÚsampleÚ nullcounts rBÚguess_json_utfru»s€ð�"�1�"ŒX€FØ •&Ô%¥vÔ':Ð;Ð;Ð;؈xØ ˆbˆqˆb„z•V”_Ò$Ð$؈{Ø ˆbˆqˆb„z•fÔ)­6Ô+>Ð?Ð?Ð?؈xØ— ’ �UÑ#Ô#€IØ�A‚~€~؈wØ�A‚~€~Ø �#�#�A�#Œ;�&Ò Ð Ø�;Ø �!�$�Q�$Œ<�6Ò !Ð !Ø�;à�A‚~€~Ø �"�1�"Œ:�Ò Ð Ø�;Ø �!�"�"Œ:�Ò Ð Ø�;à ˆ4rEcóº—t|¦«}|\}}}}}}} |j} | s|| }} |rd || g¦«} |€|}|€d}t|| |d|| f¦«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 ú@Nr)rrurŒr) rwÚ new_schemer?rIÚauthr=r;roÚqueryÚfragmentrus rBÚprepend_scheme_if_neededr|Ûs‹€õ �s‰^Œ^€FØ6<Ñ3€FˆD�$˜˜d E¨8ð Œ]€FØ ð$ؘV�ˆà ð*ð—’˜4 ˜.Ñ)Ô)ˆØ €~ØˆØ €|؈å �v˜v t¨R°¸ÐAÑ BÔ BÐBrEcóª—t|¦«} t|j¦«t|j¦«f}n#tt f$rd}YnwxYw|S)z{Given a url with authentication components, extract them into a tuple of username,password. :rtype: (str,str) )rr)rrÚusernameÚpasswordr[rú)rwr?rys rBÚget_auth_from_urlr€øsd€õ �c‰]Œ]€FðݘœÑ(Ô(­'°&´/Ñ*BÔ*BÐCˆˆøÝ �IÐ &ðððØˆˆˆðøøøð €Ks‘(:ºAÁAcóT—|\}}t||d¦«t||d¦«dS)z§Verifies that header parts don't contain leading whitespace reserved characters, or return characters. :param header: tuple, in the format (name, value). rrN)Ú_validate_header_part)rÖr‚r®s rBÚcheck_header_validityrƒs7€ð �K€Dˆ%ݘ& $¨Ñ*Ô*Ð*ݘ& %¨Ñ+Ô+Ð+Ð+Ð+rEc óD—t|t¦«rt|}nHt|t¦«rt|}n%t d|›d|›dt |¦«›�¦«‚| |¦«s|dkrdnd}t d|›d|›�¦«‚dS) 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Útyper;)rÖÚ header_partÚheader_validator_indexÚ validatorÚ header_kinds rBr‚r‚sô€Ý�+�sÑ#Ô#ð Ý*Ð+AÔBˆ ˆ Ý �K¥Ñ 'Ô 'ð Ý+Ð,BÔCˆ ˆ åð E˜Kð Eð E°&ð Eð EÝ15°kÑ1BÔ1Bð Eð Eñ ô ð ð �?Š?˜;Ñ 'Ô 'ð Ø 6¸!Ò ;Ð ;�f�fÀˆ Ýð EØ&1ð Eð EØ5@ð Eð Eñ ô ð ð ð rEcóœ—t|¦«\}}}}}}|s||}}| dd¦«d}t|||||df¦«S)zW Given a url remove the fragment and the authentication part. :rtype: str rwrr„r)rÚrsplitr)rwrIrurorÙrzr{s rBÚ urldefragauthrŒ&sb€õ 5=¸S±M´MÑ1€FˆF�D˜& %¨ð ð$ؘV�ˆà �]Š]˜3 Ñ "Ô " 2Ô &€Få �v˜v t¨V°U¸BÐ?Ñ @Ô @Ð@rEcóä—t|jdd¦«}|�Jt|jt¦«r0 ||j¦«dS#t $rt d¦«‚wxYwt d¦«‚)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†ÚbodyrsÚ_body_positionrr6r!)Úprepared_requestÚ body_seeks rBÚ rewind_bodyr’7s–€õÐ(Ô-¨v°tÑ<Ô<€IØÐ¥ØÔ'­ñ"ô"Ðð Ø ˆIÐ&Ô5Ñ 6Ô 6Ð 6Ð 6Ð 6øÝð ð ð Ý'ØMñôð ð øøøõ $Ð$QÑRÔRÐRs ´AÁA )Fr2)T)rX)jÚ__doc__rëÚ contextlibrYrSr:rrÚsysr‘rWr�Ú collectionsrÚ urllib3.utilrrrrr Ú_internal_utilsr r r r ÚcompatrrrrrrrrµrrrrrrrÚcookiesrÚ exceptionsrrr r!Ú structuresr"rnÚwhereÚDEFAULT_CA_BUNDLE_PATHÚ DEFAULT_PORTSrŒr8r^ÚplatformrCrJr`r€r‰r�Úcontextmanagerr“r¯r²rºr½r¶rÅrÇrÑrßråròr÷rüÚ frozensetrr rrrr&r*r/rCrFrOrWrZr_reÚencoderorprqrur|r€rƒr‚rŒr’rdrErBúr¤s•ðððð€ € € ØÐÐÐØ € € € Ø € € € Ø € € € Ø € € € Ø € € € Ø € € € Ø€€€Ø€€€Ø€€€Ø#Ð#Ð#Ð#Ð#Ð#à0Ð0Ð0Ð0Ð0Ð0Ð0Ð0àÐÐÐÐÐØ$Ð$Ð$Ð$Ð$Ð$ððððððððððððð ðððððððððððððððð:Ð9Ð9Ð9Ð9Ð9ððððððððððððððððððð)Ð(Ð(Ð(Ð(Ð(ððððððððððððð ,Ð+Ð+Ð+Ð+Ð+à"€ à$˜œ™œÐà cÐ*Ð*€ ðŸ)š)Ø €B„HˆW�l�l°4Ð8Ñ8Ô8Ð9JÔKÑLÔLñôÐð „<�7ÒÐð"ð"ð"ðH /ð /ð /ð ð ð ð?3ð?3ð?3ðD6 ð6 ð6 ð6 ðr&ð&ð&ð"ð"ð"ðJ Ôð ð ñÔð ðððð6ððð<ððð@ðððFðððð2 ð ð ð0ð0ð0ðððð2%ð%ð%ð2ððð2ððð"ððð$ð$ð$ðP�ØMñô€ð ððð05ð5ð5ð, 5ð 5ð 5ð5ð5ð5ððððððð0 Ôð1ð1ñÔð1ð*9ð9ð9ðx ð ð ð ðððð4ðððð6#ð#ð#ð#ð ð ð ð"ð"ð"ðL � Š �gÑÔ€Ø �‰€Ø �‰€ðððð@CðCðCð: ð ð ð ,ð,ð,ð ð ð ð&AðAðAð"SðSðSðSðSrE