3 Õì2ao˜ã@s\ddlZddlZddlZdddddddd d d d d dddddddddgZdddddddddd d!d"d#d$d%d&d'd(d)gZdddddd*dddd!dd d+d"d#d$d,d&d'd%d-d.d/d(d)gZddd0d"dddd d#d$d1d2d!d%d3gZdd0d4d5d*ddd+d1d2g Zdddddd d!dd#d$d1d2g Zddd0ddd5dddd d+dd"g Z d6Z d7d8d9gZ d:Z iZ d;d<„Zd=Zd>Zd?d@„ZeefdAdB„ZeefdCdD„ZdEdF„ZGdGdH„dHeƒZGdIdJ„dJeƒZGdKdL„dLeƒZGdMdN„dNeeƒZGdOdP„dPeeƒZddQlmZeddRƒZeddSƒZeddTƒZdUe_dVej _dWej!_dXe_dYej"_dZej#_d[ej$_d\ej%_d]ej!_d^e_ej"jej"_ej#jej#_ej$jej$_d_ej&_ej%jej%_ej!jej!_eZ'Gd`d„deeƒZ(Gdad„deeƒZ)Gdbd„deeƒZ*Gdcd„deeƒZ+Gddd„deeƒZ,Gded„deeƒZ-dfdg„Z.e.ƒ[.d£did„Z/djdk„Z0d¤dldm„Z1dndo„Z2dpdq„Z3d¥drd„Z4dsd„Z5dtd„Z6d¦dud„Z7dvd„Z8dwZ9da:dxd„Z;ejd¨dd „Z?d©d€d „Z@dªd�d„ZAeBd‚ƒZCeDeCƒZEiZFGdƒd„„d„ejGƒZHd«d†d „ZId¬d‡d „ZJd­dˆd „ZKd}dddeJfd‰d„ZLdŠd‹„ZMdŒd�„ZNdaOdŽd�„ZPdaQd�d‘„ZRd’d“„ZSd”d•„ZTdaUd–d—„ZVd¯d™dš„ZWd›dœ„ZXd�dž„ZYdŸd „ZZd¡d¢„Z[dS)°éNÚurlparseÚ urlunparseÚurljoinÚ urldefragÚurlsplitÚ urlunsplitÚ urlencodeÚparse_qsÚ parse_qslÚquoteÚ quote_plusÚquote_from_bytesÚunquoteÚ unquote_plusÚunquote_to_bytesÚ DefragResultÚ ParseResultÚ SplitResultÚDefragResultBytesÚParseResultBytesÚSplitResultBytesÚZftpÚhttpZgopherZnntpZimapZwaisÚfileZhttpsZshttpZmmsZprosperoZrtspZrtspuZsftpZsvnzsvn+sshZwsZwssZtelnetZsnewsZrsyncZnfsZgitzgit+sshZhdlZsipZsipsZtelZmailtoZnewszAabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+-.ú ú Ú écCstjƒtjƒdS)N)Ú _parse_cacheÚclearÚ _safe_quoters©r!r!ú*/opt/alt/python36/lib64/python3.6/parse.pyÚ clear_cacheVsr#ÚasciiÚstrictcCs|S)Nr!)Úobjr!r!r"Ú_noopesr'cCs |j||ƒS)N)Úencode)r&ÚencodingÚerrorsr!r!r"Ú_encode_resulthsr+cst‡‡fdd„|DƒƒS)Nc3s"|]}|r|jˆˆƒndVqdS)rN)Údecode)Ú.0Úx)r)r*r!r"ú nsz_decode_args..)Útuple)Úargsr)r*r!)r)r*r"Ú _decode_argslsr2cGsZt|dtƒ}x.|dd…D]}|rt|tƒ|krtdƒ‚qW|rL|tfSt|ƒtfS)Nréz$Cannot mix str and non-str arguments)Ú isinstanceÚstrÚ TypeErrorr'r2r+)r1Z str_inputÚargr!r!r"Ú _coerce_argsps  r8c@seZdZfZddd„ZdS)Ú_ResultMixinStrr$r%cs|j‡‡fdd„|DƒŽS)Nc3s|]}|jˆˆƒVqdS)N)r()r-r.)r)r*r!r"r/†sz)_ResultMixinStr.encode..)Ú_encoded_counterpart)Úselfr)r*r!)r)r*r"r(…sz_ResultMixinStr.encodeN)r$r%)Ú__name__Ú __module__Ú __qualname__Ú __slots__r(r!r!r!r"r9�sr9c@seZdZfZddd„ZdS)Ú_ResultMixinBytesr$r%cs|j‡‡fdd„|DƒŽS)Nc3s|]}|jˆˆƒVqdS)N)r,)r-r.)r)r*r!r"r/Žsz+_ResultMixinBytes.decode..)Ú_decoded_counterpart)r;r)r*r!)r)r*r"r,�sz_ResultMixinBytes.decodeN)r$r%)r<r=r>r?r,r!r!r!r"r@‰sr@c@s@eZdZfZedd„ƒZedd„ƒZedd„ƒZedd„ƒZd S) Ú_NetlocResultMixinBasecCs |jdS)Nr)Ú _userinfo)r;r!r!r"Úusername•sz_NetlocResultMixinBase.usernamecCs |jdS)Nr3)rC)r;r!r!r"Úpassword™sz_NetlocResultMixinBase.passwordcCsD|jd}|sdSt|tƒr dnd}|j|ƒ\}}}|jƒ||S)Nrú%ó%)Ú _hostinfor4r5Ú partitionÚlower)r;ÚhostnameÚ separatorÚpercentZzoner!r!r"rK�s  z_NetlocResultMixinBase.hostnamecCs@|jd}|dk rr?ÚpropertyrDrErKrQr!r!r!r"rB‘s    rBc@s(eZdZfZedd„ƒZedd„ƒZdS)Ú_NetlocResultMixinStrcCsD|j}|jdƒ\}}}|r4|jdƒ\}}}|sr?rRrCrHr!r!r!r"rS²s rSc@s(eZdZfZedd„ƒZedd„ƒZdS)Ú_NetlocResultMixinBytescCsD|j}|jdƒ\}}}|r4|jdƒ\}}}|sr?rRrCrHr!r!r!r"raÐs ra)Ú namedtuplez url fragmentz!scheme netloc path query fragmentz(scheme netloc path params query fragmentzŽ DefragResult(url, fragment) A 2-tuple that contains the url without fragment identifier and the fragment identifier as a separate argument. z$The URL with no fragment identifier.z° Fragment identifier separated from URL, that allows indirect identification of a secondary resource by reference to a primary resource and additional identifying information. z£ SplitResult(scheme, netloc, path, query, fragment) A 5-tuple that contains the different components of a URL. Similar to ParseResult, but does not split params. z%Specifies URL scheme for the request.z0 Network location where the request is made to. z@ The hierarchical path, such as the path to a file to download. z¬ The query component, that contains non-hierarchical data, that along with data in path component, identifies a resource in the scope of URI's scheme and network location. z� Fragment identifier, that allows indirect identification of a secondary resource by reference to a primary resource and additional identifying information. zr ParseResult(scheme, netloc, path, params, query, fragment) A 6-tuple that contains components of a parsed URL. z„ Parameters for last path element used to dereference the URI in order to provide access to perform some operation on the resource. c@seZdZfZdd„ZdS)rcCs |jr|jd|jS|jSdS)Nú#)ÚfragmentÚurl)r;r!r!r"Úgeturl;szDefragResult.geturlN)r<r=r>r?rjr!r!r!r"r9sc@seZdZfZdd„ZdS)rcCst|ƒS)N)r)r;r!r!r"rjCszSplitResult.geturlN)r<r=r>r?rjr!r!r!r"rAsc@seZdZfZdd„ZdS)rcCst|ƒS)N)r)r;r!r!r"rjHszParseResult.geturlN)r<r=r>r?rjr!r!r!r"rFsc@seZdZfZdd„ZdS)rcCs |jr|jd|jS|jSdS)Nó#)rhri)r;r!r!r"rjNszDefragResultBytes.geturlN)r<r=r>r?rjr!r!r!r"rLsc@seZdZfZdd„ZdS)rcCst|ƒS)N)r)r;r!r!r"rjVszSplitResultBytes.geturlN)r<r=r>r?rjr!r!r!r"rTsc@seZdZfZdd„ZdS)rcCst|ƒS)N)r)r;r!r!r"rj[szParseResultBytes.geturlN)r<r=r>r?rjr!r!r!r"rYscCs8ttfttfttff}x|D]\}}||_||_qWdS)N)rrrrrrr:rA)Z _result_pairsZ_decodedZ_encodedr!r!r"Ú_fix_result_transcoding_s  rlTc Csft||ƒ\}}}t|||ƒ}|\}}}}}|tkrHd|krHt|ƒ\}}nd}t||||||ƒ} || ƒS)Nú;r)r8rÚ uses_paramsÚ _splitparamsr) riÚschemeÚallow_fragmentsÚ_coerce_resultZ splitresultrVÚqueryrhÚparamsÚresultr!r!r"rls cCsRd|kr,|jd|jdƒƒ}|dkr6|dfSn |jdƒ}|d|…||dd…fS)Nú/rmrrr3)ÚfindÚrfind)riÚir!r!r"ro|s   rocCsLt|ƒ}x*dD]"}|j||ƒ}|dkrt||ƒ}qW|||…||d…fS)Nz/?#r)ÚlenrwÚmin)riÚstartÚdelimÚcZwdelimr!r!r"Ú _splitnetloc…s   rcCsœ| stdd„|Dƒƒ rdSddl}|jddƒ}|jddƒ}|jddƒ}|jddƒ}|jd |ƒ}||krndSx(d D] }||krttd |d d ƒ‚qtWdS)Ncss|]}t|ƒdkVqdS)éN)Úord)r-r~r!r!r"r/Žsz_checknetloc..rrTrrUrgú?ÚNFKCz/?#@:znetloc 'z' contains invalid z#characters under NFKC normalization)ÚanyÚ unicodedataÚreplaceÚ normalizerP)rVr…ÚnZnetloc2r~r!r!r"Ú _checknetloc�s       r‰cCsxtD]}|j|dƒ}qW|S)Nr)Ú_UNSAFE_URL_BYTES_TO_REMOVEr†)riÚbr!r!r"Ú_remove_unsafe_bytes_from_urlŸs rŒc Cs~t||ƒ\}}}t|ƒ}t|ƒ}t|ƒ}|||t|ƒt|ƒf}tj|dƒ}|rV||ƒSttƒtkrhtƒd}}}|j dƒ} | dk�rÌ|d| …dk�rf|d| …j ƒ}|| dd…}|dd…dk�rt |dƒ\}}d|krêd |ksüd |koød|k�rt d ƒ‚|�r$d |k�r$|j d dƒ\}}d |k�r>|j d dƒ\}}t|ƒt|||||ƒ} | t|<|| ƒSxd|d| …D]} | tk�rtP�qtW|| dd…} | �s¶td d„| Dƒƒ�rÌ|d| …j ƒ| }}|dd…dk�rt |dƒ\}}d|k�rd |k�sd |k�rd|k�rt d ƒ‚|�r.)r8rŒÚboolÚtyperÚgetrzÚMAX_CACHE_SIZEr#rwrJrrPÚsplitr‰rÚ scheme_charsr„) rirprqrrÚkeyÚcachedrVrsrhryÚvr~Úrestr!r!r"r¤s`        cCs<t|Ž\}}}}}}}|r&d||f}|t|||||fƒƒS)Nz%s;%s)r8r)Ú componentsrprVrirtrsrhrrr!r!r"ràs cCs˜t|Ž\}}}}}}|s4|r`|tkr`|dd…dkr`|rP|dd…dkrPd|}d|pXd|}|rp|d|}|r€|d|}|r�|d|}||ƒS) Nr�z//r3rvrrUr‚rg)r8Ú uses_netloc)r™rprVrirsrhrrr!r!r"rës    c CsÀ|s|S|s|St||ƒ\}}}t|d|ƒ\}}}}}} t|||ƒ\} } } } }}| |ks`| tkrh||ƒS| tkr�| rŒ|t| | | | ||fƒƒS|} | rÄ| rÄ|} |} |s¬|}|t| | | | ||fƒƒS|jdƒ}|ddkrà|d=| dd…dk�rþ| jdƒ}n(|| jdƒ}td|dd…ƒ|dd …<g}xX|D]P}|dk�rdy |jƒWntk �r`YnXn|dk�rt�q0n |j |ƒ�q0W|d d k�rœ|j dƒ|t| | dj |ƒ�p²d| ||fƒƒS) Nrrvr3ú..Ú.éÿÿÿÿr�r�r�r�)rœr›) r8rÚ uses_relativeršrr“ÚfilterÚpopÚ IndexErrorÚappendÚjoin)ÚbaserirqrrZbschemeZbnetlocZbpathZbparamsZbqueryZ bfragmentrprVÚpathrtrsrhZ base_partsZsegmentsZ resolved_pathZsegr!r!r"rþsT            c CsTt|ƒ\}}d|kr>t|ƒ\}}}}}}t|||||dfƒ}nd}|}|t||ƒƒS)Nrgr)r8rrr) rirrÚsrˆÚpÚaÚqZfragZdefragr!r!r"rCs Z0123456789ABCDEFabcdefc CsÐ|s|jdSt|tƒr"|jdƒ}|jdƒ}t|ƒdkr<|S|dg}|j}tdkrbdd„tDƒaxb|dd…D]R}y(|t|dd…ƒ||dd…ƒWqptk rÀ|dƒ||ƒYqpXqpWdj |ƒS) Nózutf-8rGr3rcSs4i|],}tD]"}tt||dƒgƒ||jƒ“q qS)é)Ú_hexdigÚbytesrOr()r-r¨r‹r!r!r"ú isz$unquote_to_bytes..r�) r“r4r5r(rzr¢Ú _hextobyter¬ÚKeyErrorr£)ÚstringÚbitsÚresr¢Úitemr!r!r"rVs*     z([-]+)úutf-8r†cCs�d|kr|j|S|dkrd}|dkr*d}tj|ƒ}|dg}|j}x@tdt|ƒdƒD],}|t||ƒj||ƒƒ|||dƒqVWdj|ƒS)NrFzutf-8r†rr3r�r)r“Ú_asciirer¢Úrangerzrr,r£)r±r)r*r²r³r¢ryr!r!r"rvs   Fú&c CsRi}t|||||||d�}x2|D]*\} } | |kr@|| j| ƒq | g|| <q W|S)N)r)r*Úmax_num_fieldsrL)r r¢) ÚqsÚkeep_blank_valuesÚstrict_parsingr)r*r¹rLZ parsed_resultÚpairsÚnameÚvaluer!r!r"r �s cCs.t|ƒ\}}| s"t|ttfƒ r*tdƒ‚|dk rPd|j|ƒ}||krPtdƒ‚dd„|j|ƒDƒ} g} xÀ| D]¸} | r€| r€qn| jddƒ} t| ƒdkr¼|rªtd| fƒ‚|rn| jd ƒnqnt| dƒsÌ|rn| d j d d ƒ} t | ||d �} || ƒ} | dj d d ƒ}t |||d �}||ƒ}| j| |fƒqnW| S)Nz*Separator must be of type string or bytes.r3zMax number of fields exceededcSsg|]}|‘qSr!r!)r-Ús1r!r!r"ú äszparse_qsl..ú=r�zbad query field: %rrrú+ú )r)r*) r8r4r5r­rPÚcountr“rzr¢r†r)rºr»r¼r)r*r¹rLrrÚ num_fieldsr½ÚrZ name_valueZnvr¾r¿r!r!r"r ºs8      cCs|jddƒ}t|||ƒS)NrÃrÄ)r†r)r±r)r*r!r!r"rüs sAABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.-c@s$eZdZdd„Zdd„Zdd„ZdS)ÚQuotercCstj|ƒ|_dS)N)Ú _ALWAYS_SAFEÚunionÚsafe)r;rËr!r!r"Ú__init__szQuoter.__init__cCsd|jjt|ƒfS)Nz<%s %r>)Ú __class__r<Údict)r;r!r!r"Ú__repr__szQuoter.__repr__cCs(||jkrt|ƒndj|ƒ}|||<|S)Nz%{:02X})rËÚchrÚformat)r;r‹r³r!r!r"Ú __missing__szQuoter.__missing__N)r<r=r>rÌrÏrÒr!r!r!r"rÈ srÈrvcCsbt|tƒr8|s|S|dkrd}|dkr*d}|j||ƒ}n |dk rHtdƒ‚|dk rXtdƒ‚t||ƒS)Nzutf-8r%z,quote() doesn't support 'encoding' for bytesz*quote() doesn't support 'errors' for bytes)r4r5r(r6r )r±rËr)r*r!r!r"r "s cCsdt|tƒrd|ks$t|tƒr2d|kr2t||||ƒSt|tƒrBd}nd}t|||||ƒ}|jddƒS)NrÄó rÃ)r4r5r­r r†)r±rËr)r*Zspacer!r!r"r Ns c sªt|ttfƒstdƒ‚|sdSt|tƒr6|jddƒ}ntdd„|Dƒƒ}|jt|ƒs^|jƒSy t |‰Wn&t k r�t |ƒj t |<‰YnXdj ‡fdd„|DƒƒS)Nz!quote_from_bytes() expected bytesrr$ÚignorecSsg|]}|dkr|‘qS)é€r!)r-r~r!r!r"rÁlsz$quote_from_bytes..csg|] }ˆ|ƒ‘qSr!r!)r-Úchar)Úquoterr!r"rÁss)r4r­Ú bytearrayr6r5r(ÚrstripÚ_ALWAYS_SAFE_BYTESr,r r°rÈÚ __getitem__r£)ÚbsrËr!)r×r"r _s  cCst|dƒr|jƒ}nRy t|ƒr2t|dtƒ r2t‚Wn0tk rdtjƒ\}}}tdƒj|ƒ‚YnXg} |sæxr|D]j\} } t| t ƒr’|| |ƒ} n|t | ƒ|||ƒ} t| t ƒrº|| |ƒ} n|t | ƒ|||ƒ} | j | d| ƒqtW�n,�x(|D�]\} } t| t ƒ�r|| |ƒ} n|t | ƒ|||ƒ} t| t ƒ�rL|| |ƒ} | j | d| ƒqît| t ƒ�rz|| |||ƒ} | j | d| ƒqîy t| ƒ} Wn:tk �rÀ|t | ƒ|||ƒ} | j | d| ƒYqîXxJ| D]B} t| t ƒ�rä|| |ƒ} n|t | ƒ|||ƒ} | j | d| ƒ�qÈWqîWdj | ƒS)NÚitemsrz1not a valid non-string sequence or mapping objectrÂr¸) ÚhasattrrÝrzr4r0r6ÚsysÚexc_infoÚwith_tracebackr­r5r¢r£)rsZdoseqrËr)r*Z quote_viaZtyZvaÚtbÚlÚkr—r.Zeltr!r!r"rusP                c CsJt|tƒrFy|jdƒjƒ}Wn(tk rDtdt|ƒdƒ‚YnX|S)NÚASCIIzURL z contains non-ASCII characters)r4r5r(r,Ú UnicodeErrorÚrepr)rir!r!r"Úto_bytesÅs  rècCs`t|ƒjƒ}|dd…dkr<|dd…dkr<|dd…jƒ}|dd…dkr\|dd…jƒ}|S)Nr3ú<ú>ézURL:r�r�)r5Ústrip)rir!r!r"ÚunwrapÒs   rícCsDtdkrtjdtjƒatj|ƒ}|r<|jƒ\}}|jƒ|fSd|fS)Nz ([^/:]+):(.*))Ú _typeprogÚreÚcompileÚDOTALLÚmatchÚgroupsrJ)riròrpÚdatar!r!r"Ú splittypeÛs   rõcCsXtdkrtjdtjƒatj|ƒ}|rP|jƒ\}}|rH|ddkrHd|}||fSd|fS)Nz//([^/#?]*)(.*)rrv)Ú _hostprogrïrðrñròró)riròZ host_portr¥r!r!r"Ú splithostès  r÷cCs |jdƒ\}}}|r|nd|fS)NrT)rW)ÚhostÚuserr}r!r!r"Ú splituserösrúcCs |jdƒ\}}}||r|ndfS)NrU)rI)rùr}Zpasswdr!r!r"Ú splitpasswdûsrûcCsDtdkrtjdtjƒatj|ƒ}|r<|jƒ\}}|r<||fS|dfS)Nz(.*):([0-9]*)$)Ú _portprogrïrðrñròró)røròrQr!r!r"Ú splitports  rýr3c CsT|jdƒ\}}}|s|}n2|rLy t|ƒ}Wntk rBd}YnX||fS||fS)NrU)rWrOrP)røZdefportr}rQZnportr!r!r"Ú splitnports  rþcCs$|jdƒ\}}}|r||fS|dfS)Nr‚)rW)rir¥r}rsr!r!r"Ú splitquerysrÿcCs$|jdƒ\}}}|r||fS|dfS)Nrg)rW)rir¥r}Útagr!r!r"Úsplittag&srcCs|jdƒ}|d|dd…fS)Nrmrr3)r“)riZwordsr!r!r"Ú splitattr-s rcCs |jdƒ\}}}||r|ndfS)NrÂ)rI)Úattrr}r¿r!r!r"Ú splitvalue3sr)rT)r)rT)T)rµr†)FFrµr†Nr¸)FFrµr†Nr¸)rµr†)rvNN)rNN)rvr�)r�)\rïrßÚ collectionsÚ__all__ržršrnZnon_hierarchicalZ uses_queryZ uses_fragmentr”rŠr’rr#Z_implicit_encodingZ_implicit_errorsr'r+r2r8Úobjectr9r@rBrSrarfZ_DefragResultBaseZ_SplitResultBaseZ_ParseResultBaseÚ__doc__rirhrprVr¥rsrtZ ResultBaserrrrrrrlrrorr‰rŒrrrrrr¬r¯rrðr¶rr r rÚ frozensetrÉr­rÚr Ú defaultdictrÈr r r rrèrírîrõrör÷rúrûrürýrþrÿrrrr!r!r!r"Úsò                 !           <  E   ) A  ,   O