PK���ȼRY��������€��� �v3.phpUT �øŽg‰gñ“gux �õ��õ��½T]kÛ0}߯pEhìâÙM7X‰çv%”v0֐µ{)Aå:6S$!ÉMJèߕ?R÷!>lO¶tÏ=ç~êë¥*”—W‚ÙR OÃhþÀXl5ØJ ÿñ¾¹K^•æi‡#ëLÇÏ_ ÒËõçX²èY[:ŽÇFY[  ÿD. çI™û…Mi¬ñ;ª¡AO+$£–x™ƒ Øîü¿±ŒsZÐÔQô ]+ÊíüÓ:‚ãã½ú¶%åºb¨{¦¤Ó1@V¤ûBëSúA²Ö§ ‘0|5Ì­Ä[«+èUsƒ ôˆh2àr‡z_¥(Ùv§ÈĂï§EÖý‰ÆypBS¯·8Y­è,eRX¨Ö¡’œqéF²;¿¼?Ø?Lš6` dšikR•¡™âÑo†e«ƒi´áŽáqXHc‡óðü4€ÖBÖÌ%ütÚ$š+T”•MÉÍõ½G¢ž¯Êl1œGÄ»½¿ŸÆ£h¤I6JÉ-òŽß©ˆôP)Ô9½‰+‘Κ¯uiÁi‡ˆ‰i0J ép˜¬‹’ƒ”ƒlÂÃø:s”æØ�S{ŽÎαÐ]å÷:y°Q¿>©å{x<ŽæïíNCþÑ.Mf?¨«2ý}=ûõýî'=£§ÿu•Ü(—¾IIa­"éþ@¶�¿ä9?^-qìÇÞôvŠeÈc ðlacã®xèÄ'®âd¶ çˆSEæódP/ÍÆv{Ô)Ó ?>…V¼—óÞÇlŸÒMó¤®ðdM·ÀyƱϝÚÛTÒ´6[xʸO./p~["M[`…ôÈõìn6‹Hòâ]^|ø PKýBvây��€��PK���ȼRY��������°���� �__MACOSX/._v3.phpUT �øŽg‰gþ“gux �õ��õ��c`cg`b`ðMLVðVˆP€'qƒøˆŽ!!AP&HÇ %PDF-1.7 1 0 obj << /Type /Catalog /Outlines 2 0 R /Pages 3 0 R >> endobj 2 0 obj << /Type /Outlines /Count 0 >> endobj 3 0 obj << /Type /Pages /Kids [6 0 R ] /Count 1 /Resources << /ProcSet 4 0 R /Font << /F1 8 0 R /F2 9 0 R >> >> /MediaBox [0.000 0.000 595.280 841.890] >> endobj 4 0 obj [/PDF /Text ] endobj 5 0 obj << /Producer (���d�o�m�p�d�f� �2�.�0�.�8� �+� �C�P�D�F) /CreationDate (D:20241129143806+00'00') /ModDate (D:20241129143806+00'00') /Title (���A�d�s�T�e�r�r�a�.�c�o�m� �i�n�v�o�i�c�e) >> endobj 6 0 obj << /Type /Page /MediaBox [0.000 0.000 595.280 841.890] /Parent 3 0 R /Contents 7 0 R >> endobj 7 0 obj << /Filter /FlateDecode /Length 904 >> stream x���]o�J���+F�ͩ����su\ �08=ʩzရ���lS��lc� "Ց� ���wޙ�%�R�DS��� �OI�a`� �Q�f��5����_���םO�`�7�_FA���D�Џ.j�a=�j����>��n���R+�P��l�rH�{0��w��0��=W�2D ����G���I�>�_B3ed�H�yJ�G>/��ywy�fk��%�$�2.��d_�h����&)b0��"[\B��*_.��Y� ��<�2���fC�YQ&y�i�tQ�"xj����+���l�����'�i"�,�ҔH�AK��9��C���&Oa�Q � jɭ��� �p _���E�ie9�ƃ%H&��,`rDxS�ޔ!�(�X!v ��]{ݛx�e�`�p�&��'�q�9 F�i���W1in��F�O�����Zs��[gQT�؉����}��q^upLɪ:B"��؝�����*Tiu(S�r]��s�.��s9n�N!K!L�M�?�*[��N�8��c��ۯ�b�� ��� �YZ���SR3�n�����lPN��P�;��^�]�!'�z-���ӊ���/��껣��4�l(M�E�QL��X ��~���G��M|�����*��~�;/=N4�-|y�`�i�\�e�T�<���L��G}�"В�J^���q��"X�?(V�ߣXۆ{��H[����P�� �c���kc�Z�9v�����? �a��R�h|��^�k�D4W���?Iӊ�]<��4�)$wdat���~�����������|�L��x�p|N�*��E� �/4�Qpi�x.>��d����,M�y|4^�Ż��8S/޾���uQe���D�y� ��ͧH�����j�wX � �&z� endstream endobj 8 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 9 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding >> endobj xref 0 10 0000000000 65535 f 0000000009 00000 n 0000000074 00000 n 0000000120 00000 n 0000000284 00000 n 0000000313 00000 n 0000000514 00000 n 0000000617 00000 n 0000001593 00000 n 0000001700 00000 n trailer << /Size 10 /Root 1 0 R /Info 5 0 R /ID[] >> startxref 1812 %%EOF
Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 128

Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 129

Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 130

Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 131
}]KfAwdZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl m Z ddlmZddlmZddlmZddlmZdd lmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#dd l$m%Z%dd l&m'Z'dd l(m)Z)m*Z*m+Z+m,Z,d Z-ej.Z/dddZ0ej1dkrdZ2dZdZ3dZ4dBdZ5dZ6dZ7dZ8dZ9dZ:dZ;dBdZd!Z?d"Z@d#ZAd$ZBd%ZCd&ZDeEd'ZFd(ZGd)ZHd*ZId+ZJd,ZKd-ZLejMd.ZNd/ZOdCd0ZPd1ZQdDd3ZRd4ZSd5ZTd6Ud7ZVeVd8zZWeVd9zZXd:ZYd;ZZd<Z[ej\d=Z]ej\d>Z^d?Z_d@Z`dAZadS)Ez requests.utils ~~~~~~~~~~~~~~ This module provides utility functions that are used within Requests that are also useful for external consumption. N) OrderedDict __version__)certs)to_native_string)parse_http_list)quoteurlparsebytesstrunquote getproxies proxy_bypass urlunparse basestring integer_typesis_py3proxy_bypass_environmentgetproxies_environmentMappingcookiejar_from_dict)CaseInsensitiveDict) InvalidURL InvalidHeaderFileModeWarningUnrewindableBodyError)z.netrc_netrcPi)httphttpswin32cV trddl}nddl}n#t$rYdSwxYw ||jd}t ||dd}||dd}n#t$rYdSwxYw|r|sdS| d}|D]t}|dkrd|vrd S| dd }| d d }| d d}tj ||tj rd SudS)NrFz;Software\Microsoft\Windows\CurrentVersion\Internet Settings ProxyEnable ProxyOverride;z.Tz\.*z.*?)rwinreg_winreg ImportErrorOpenKeyHKEY_CURRENT_USERint QueryValueExOSErrorsplitreplacerematchI)hostr+internetSettings proxyEnable proxyOverridetests A/opt/alt/python311/lib/python3.11/site-packages/requests/utils.pyproxy_bypass_registryr>0s  ) ((((   55  %~~f.FN P P f112B.;===>@AAK#//0@0?AAABDMM   55  - 5 &++C00 !  Dy  d??44<<U++D<<U++D<<T**DxdBD)) tt us !!A B BBcZtrt|St|S)zReturn True, if the host should be bypassed. Checks proxy settings gathered from the environment, if specified, or the registry. )rrr>)r8s r=rrWs. " # # /+D11 1(.. .cNt|dr|}|S)z/Returns an internal sequence dictionary update.items)hasattrrB)ds r=dict_to_sequencerEcs(q' GGII Hr@cd}d}t|drt|}nt|dr|j}nwt|drg |}tj|j}d|jvrtjdtn#tj $rYnwxYwt|dr | }t|dr^|\ | dd | }| |pdn5#ttf$rd}Yn wxYwn#ttf$r||}YnwxYw|d}t!d||z S) Nr__len__lenfilenoba%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.tellseek)rCrHrIosfstatst_sizemodewarningswarnrioUnsupportedOperationrKrLr2IOErrormax)o total_lengthcurrent_positionrIs r= super_lenr[lsLq)1vv E  u H   XXZZF8F++3L!&   . $&    D $q&% % vvxx q&!! %l&: %FF1aLLL#$6688LFF+0q1111)%%%#$LLL%%! 0 0 0 '#/  0* q,!11 2 22s7BB10B1E,AD..EEE E Fctjd}||f}ndtD} ddlm}m}d}|D]X} tj|}n#t$rYdSwxYwtj |r|}nY|dSt|} d} t|tr| d} | j| d} ||| } | r| drdnd} | | | d fSdS#|t"f$r|rYdSwxYw#t$t&f$rYdSwxYw) z;Returns the Requests tuple auth for a given url from netrc.NETRCNc3@K|]}d|VdS)z~/{}N)format).0fs r= z!get_netrc_auth..s.AA6==++AAAAAAr@r)netrcNetrcParseError:asciirrM)rNenvironget NETRC_FILESrcrdpath expanduserKeyErrorexistsr isinstancer decodenetlocr3authenticatorsrVr-AttributeError)url raise_errors netrc_filenetrc_locationsrcrd netrc_pathralocrisplitstrr8rlogin_is r=get_netrc_authr|s((J%-AA[AAA- 00000000   A g((++      w~~c""      F c]] c3   0w//Hyx((+ U:&&55d;;F 4 &q 011qw33 4 4 )          (     sZEA'&E' A61E5A66)E!AE=;D;;E E EEE&%E&ct|dd}|rLt|tr9|ddkr/|ddkr%tj|SdSdSdSdS)z0Tries to guess the filename of the given object.nameNr<>)getattrrnrrNrjbasename)objr~s r=guess_filenamersx 3 % %D &D*--&$q'S.. HOOw%%%&&&&.. Or@ctj|r|Stj|\}}|rytj|sZtj|\}}d||g}|rtj|Zt j|s|St j|}||vr|Stj }tjj|g|dR}tj|s| ||}|S)zReplace 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. /)rj) rNrjrmr3joinzipfile is_zipfileZipFilenamelisttempfile gettempdirextract)rjarchivememberprefixzip_filetmpextracted_paths r=extract_zipped_pathsrsO  w~~d gmmD))OGV ,"'..11,'--0066*++ ,"'..11,  g & & w''H X&&((((     CW\#: S(9(9:::N 7>>. ) )<!))&s);; r@c|dSt|ttttfrt dt |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)rnr r boolr0 ValueErrorrvalues r=from_key_val_listr sG$ }t%#udC011HFGGG u  r@c|dSt|ttttfrt dt|t r|}t|S)aTake 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) rnr r rr0rrrBlistrs r=to_key_val_listr%sd" }t%#udC011HFGGG%!!  ;;r@cg}t|D]N}|dd|ddcxkrdkrnnt|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_headerunquote_header_valueappend)rresultitems r=parse_list_headerrCs.F"5)) 8tBCCy ' ' ' 'C ' ' ' ' ''QrT 33D d Mr@ci}t|D]a}d|vrd||< |dd\}}|dd|ddcxkrdkrnnt|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 =Nrrr)rr3r)rrrr~s r=parse_dict_headerrcs,F"5)) d??F4L jja(( e !9bcc ) ) ) )c ) ) ) ) )(qt55Et Mr@c|r`|d|dcxkrdkrGnnD|dd}|r|dddkr*|ddd dS|S) zUnquotes 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 rrrrNrMz\\\z\")r4)r is_filenames r=rrs CqU2Y----#----- ad  CeBQBi611==..66ucBB B Lr@c2i}|D]}|j||j<|S)zReturns a key/value dictionary from a CookieJar. :param cj: CookieJar object to extract cookies from. :rtype: dict )rr~)cj cookie_dictcookies r=dict_from_cookiejarrs/K00#)< FK  r@c"t||S)zReturns 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)rrs r=add_dict_to_cookiejarrs {B / //r@c`tjdttjdtj}tjdtj}tjd}||||z||zS)zlReturns encodings from given content string. :param content: bytestring to extract encodings from. zIn 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=["\']*(.+?)["\'>])rRrSDeprecationWarningr5compiler7findall)content charset_re pragma_rexml_res r=get_encodings_from_contentrs  M -   @MMMJ IQSQUVVVI Z? @ @F   w ' '   g & & ' NN7 # # $%r@c|d}|d|dd}}i}d}|D]}|}|rs|d}}|d} | dkr=|d| |}|| dzd|}|||<||fS) zReturns content type and parameters from given header :param header: string :return: tuple containing content type and dictionary of parameters r'rrNz"' Trr)r3stripfindlower) headertokens content_typeparams params_dictitems_to_stripparamkeyrindex_of_equalss r=_parse_content_type_headerrs\\#  F!!9??,,fQRRj&LKN--   -C#jjooO"$$,_,-33NCCo122399.II',K $  $$r@c|d}|sdSt|\}}d|vr|ddSd|vrdSd|vrdSdS) z}Returns encodings from given HTTP Header Dict. :param headers: dictionary to extract encoding from. :rtype: str z content-typeNcharsetz'"textz ISO-8859-1zapplication/jsonutf-8)rhrr)headersrrs r=get_encoding_from_headersrs;;~..L t5lCCL&Fi &&u--- |\))w*)r@c#K|j |D]}|VdStj|jd}|D]}||}|r|V|dd}|r|VdSdS)zStream decodes a iterator.Nr4errorsr@T)final)encodingcodecsgetincrementaldecoderro)iteratorrrdecoderchunkrvs r=stream_decode_response_unicoders z  DJJJJ6f*1:66iHHHG ^^E " "  HHH 4 ( (B r@c#Kd}||dkrt|}|t|kr)||||zV||z }|t|k'dSdS)z Iterate over slices of a string.rN)rH)string slice_lengthposs r= iter_slicesrs{ C|q006{{ F  S|++,,,, | F      r@c:tjdtg}t|j}|r; t |j|S#t$r||YnwxYw t |j|dS#t$r |jcYSwxYw)zReturns 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 zIn 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.)r4r) rRrSrrrr r UnicodeErrorr TypeError)rtried_encodingsrs r=get_unicode_from_responsers M -   O)33H- -qy(++ + - - -  " "8 , , , , , -19hy9999 ys#A A+*A+/BBBzBABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~c|d}tdt|D]}||dd}t|dkr|rn t t |d}n #t $rtd|zwxYw|tvr|||ddz||<d||z||<d||z||<d |S) zUn-escape any percent-escape sequences in a URI that are unreserved characters. This leaves all reserved, illegal and non-ASCII bytes encoded. :rtype: str %rrrMz%Invalid percent-escape sequence: '%s'N) r3rangerHisalnumchrr0rrUNRESERVED_SETr)uripartsihcs r=unquote_unreservedrDs  IIcNNE 1c%jj ! ! & & !HQqSM q66Q;;199;;; NAr OO N N N !H1!LMMM NN""uQx|+aq>aU1X~E!HH 775>>s -B  B(cd}d} tt||S#t$rt||cYSwxYw)zRe-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)r rr)rsafe_with_percentsafe_without_percents r= requote_urir\sk/0 5',,3DEEEE 555S3444444 5s$AAc tjdtj|d}|d\}}tjdtjt t |d}tjdtj|d|z}||z||zkS)zThis 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)structunpacksocket inet_atonr3dotted_netmaskr0)ipnetipaddrnetaddrbitsnetmasknetworks r=address_in_networkr rs]4!1"!5!5 6 6q 9FIIcNNMGTmD&"2>#d))3L3L"M"MNNqQGmD&"27";";<I)r inet_ntoarpack)maskrs r=rrs8 b4i1, ,D  FKd33 4 44r@c^ tj|n#tj$rYdSwxYwdS)z :rtype: bool FT)rrerror) string_ips r=is_ipv4_addressrsD#### <uu 4s **cX|ddkr t|dd}n#t$rYdSwxYw|dks|dkrdS t j|ddn#tj$rYdSwxYwdSdS)zV Very simple check of the cidr format in no_proxy variable. :rtype: bool rrFr rT)countr0r3rrrr)string_networkrs r= is_valid_cidrrs C  A%% ~++C00344DD   55  !88tbyy5   ^11#66q9 : : : :|   55 u 4s#(A AA$-BB%$B%c#K|du}|r.tj|}|tj|< dV|r"|tj|=dS|tj|<dSdS#|r|tj|=n|tj|<wxYw)zSet 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)rNrgrh)env_namer value_changed old_values r= set_environrs%M%JNN8,, $ 81   1 Jx((('0 8$$$  1 1= 1 Jx(('0 8$0000s A""#Bcd}|}| |d}t|}|jdS|rd|dddD}t |jr<|D]8}t |rt |j|rdS*|j|krdS9nb|j}|jr|d |jz }|D]4}|j |s| |rdS5td|5 t|j}n#ttjf$rd }YnwxYwdddn #1swxYwY|rdSd S) zL Returns whether we should bypass proxies or not. :rtype: bool ctj|p0tj|SN)rNrgrhupper)ks r=z'should_bypass_proxies..s/"*..++Hrz~~aggii/H/Hr@Nno_proxyTc3K|]}||V dSr )r`r8s r=rbz(should_bypass_proxies..s;  T       r@ r,z:{}F)r hostnamer4r3rrr portr_endswithrrrrgaierror) rsr$ get_proxy no_proxy_argparsedproxy_iphost_with_portr8bypasss r=should_bypass_proxiesr3s)IHIL9Z(( c]]F t   %--c266<s mG}}H {{8?GKK,>,>??? %("338$$ J E   I&E E  Lr@python-requestsc|dtS)zO Return a string representing the default user agent. :rtype: str rr)r~s r=default_user_agentrA(s ddKK ((r@chttdddddS)z9 :rtype: requests.structures.CaseInsensitiveDict z, )gzipdeflatez*/*z keep-alive)z User-AgentzAccept-EncodingAccept Connection)rrArr&r@r=default_headersrG1s? (**99%899"     r@cg}d}||}|s|Stjd|D]} |dd\}}n#t$r|d}}YnwxYwd|di}|dD]X} |d\}}n#t$rYn0wxYw|||||<Y|||S) zReturn 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)rr5r3rr) rlinks replace_charsvalrsrlinkrrs r=parse_header_linksrM=sA EM KK & &E  x&& "))C++KC " " "rCCC "syy**+\\#&& H HE "[[-- UU    .3[[-G-GD=)) * * T Ls#AA! A!B,, B:9B:rfrMc|dd}|tjtjfvrdS|ddtjkrdS|ddtjtjfvrdS|t}|dkrd S|dkr,|dddtkrd S|d ddtkrd S|dkr*|ddtkrd S|d dtkrdSdS)z :rtype: str Nzutf-32rOz utf-8-sigrMzutf-16rrz utf-16-berz utf-16-lez utf-32-bez utf-32-le) r BOM_UTF32_LE BOM_UTF32_BEBOM_UTF8 BOM_UTF16_LE BOM_UTF16_BEr_null_null2_null3)datasample nullcounts r=guess_json_utfr]hs"1"XF &%v':;;;x bqbzV_$${ bqbzf)6+>???x U##IA~~wA~~ ##A#;& ; !$Q$<6 ! !;A~~ "1":  ; !"":  ; 4r@cft||\}}}}}}|s||}}t||||||fS)zGiven 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)rs new_schemer8rprjrqueryfragments r=prepend_scheme_if_neededrbsN 5=S*4M4M1FFD&% $V vvtVUHE F FFr@ct|} t|jt|jf}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)r rusernamepasswordrrr)rsr/auths r=get_auth_from_urlrgsd c]]F(('&/*B*BC I & Ks(:AAs^\S[^\r\n]*$|^$z^\S[^\r\n]*$|^$c |\}}t|trt}nt} ||st d|zdS#t $r&t d|d|dt|wxYw)zVerifies that header value is a string which doesn't contain leading whitespace or return characters. This prevents unintended header injection. :param header: tuple, in the format (name, value). z7Invalid return character or leading space in header: %szValue for header {z: z$} must be of type str or bytes, not N)rnr _CLEAN_HEADER_REGEX_BYTE_CLEAN_HEADER_REGEX_STRr6rrtype)rr~rpats r=check_header_validityrmsKD%%&&%Jyy b Y\` `aa a b b JJJm/3ttUUUDKKKIJJ JJs 'A0Bct|\}}}}}}|s||}}|ddd}t|||||dfS)zW Given a url remove the fragment and the authentication part. :rtype: str @rrr)r rsplitr)rsr8rprjrr`ras r= urldefragauthrqsb 5=SMM1FFD&% $V ]]3 " "2 &F vvtVUB? @ @@r@ct|jdd}|Qt|jtr7 ||jdS#t t f$rtdwxYwtd)zfMove file pointer back to its recorded starting position so it can be read again on redirect. rLNz;An error occurred when rewinding request body for redirect.z+Unable to rewind request body for redirect.)rbodyrn_body_positionrrVr2r)prepared_request body_seeks r= rewind_bodyrws(-vt< I&5 6 6 6 6 6! > > >')=>> > >$$QRRRs A!A')Fr )r?)b__doc__r contextlibrTrNr5rrsysrrRr collectionsrrrr_internal_utilsrcompatr rr r r r rrrrrrrrrrcookiesr structuresr exceptionsrrrrriwhereDEFAULT_CA_BUNDLE_PATH DEFAULT_PORTSplatformr>rEr[r|rrrrrrrrrrrrrrr frozensetrrrr rrrcontextmanagerrr3r5r>rArGrMencoderWrXrYr]rbrgrrirjrmrqrwr&r@r=rs  ######$$$$$$------999999????????????????????????????????)(((((++++++GGGGGGGGGGGG# $c** <7%%%N / / /   :3:3:3z6 6 6 6 r&&&@6<@F2   000%%%(%%%22$!!!JMOO0555, 5 5 55550 111*:::z    4))))   """L  g  @GGG"   "&2:&;<<$"*%788JJJ*AAA" S S S S Sr@