a DOg@sddlZddlZddlZddlZddlZddlZgdZgdZgdZgdZ gdZ gdZ gdZ d Z d Zgd Zd ZiZd dZdZdZddZeefddZeefddZddZGdddeZGdddeZGdddeZGdd d eeZGd!d"d"eeZdd#lmZed$d%Z ed&d'Z!ed(d)Z"d*e _#d+e j$_#d,e j%_#d-e!_#d.e!j&_#d/e!j'_#d0e!j(_#d1e!j)_#d2e!j%_#d3e"_#e!j&j#e"j&_#e!j'j#e"j'_#e!j(j#e"j(_#d4e"j*_#e!j)j#e"j)_#e!j%j#e"j%_#eZ+Gd5d$d$e eZ,Gd6d&d&e!eZ-Gd7d(d(e"eZ.Gd8d9d9e eZ/Gd:d;d;e!eZ0Gdd?Z2e2[2ddBdCZ3dDdEZ4ddFdGZ5dHdIZ6dJdKZ7ddLdMZ8dNdOZ9dPdQZ:ddRdSZ;dTdUZdWdXZ?e@dYZAdd\d]ZBdd`daZCddbdcZDddddeZEeFdfZGeHeGZIiZJGdgdhdhejKZLddjdkZMddldmZNddndoZOd^d@ddeNfdpdqZPdrdsZQdtduZRdvdwZSdxdyZTdaUdzd{ZVd|d}ZWdaXd~dZYddZZddZ[ddZ\ddZ]ddZ^da_ddZ`dddZadddZbddZcddZdddZeddZfddZgddZhddZiddZjdS)N)urlparse urlunparseurljoin urldefragurlsplit urlunsplit urlencodeparse_qs parse_qslquote quote_plusquote_from_bytesunquote unquote_plusunquote_to_bytes DefragResult ParseResult SplitResultDefragResultBytesParseResultBytesSplitResultBytes)ftphttpgophernntpimapwaisfilehttpsshttpmmsprosperortsprtspusftpsvnsvn+sshwswss)rrrrrtelnetrrrr!rr snewsr"r#r$Zrsyncr&r'r%ZnfsZgitzgit+sshr(r))rrhdlr"rrrr r#r$sipsipsr!r%Ztel) rr,Zmailtonewsr*rrr+r-r.) rrrrrr r!rr#r$r-r.) rrr,rrr/rrrr r+rr"zAabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+-.z!  )   cCsttdSN) _parse_cacheclear _safe_quotersr8r81/opt/alt/python39/lib64/python3.9/urllib/parse.py clear_cacheasr:asciistrictcCs|Sr4r8)objr8r8r9_nooppsr>cCs |||Sr4encode)r=encodingerrorsr8r8r9_encode_resultssrCcstfdd|DS)Nc3s"|]}|r|ndVqdS)rNdecode.0xrArBr8r9 yz_decode_args..)tuple)argsrArBr8rIr9 _decode_argswsrNcGsVt|dt}|ddD]}|rt|t|krtdq|rH|tfSt|tfS)Nrz$Cannot mix str and non-str arguments) isinstancestr TypeErrorr>rNrC)rMZ str_inputargr8r8r9 _coerce_args{s  rTc@seZdZdZdddZdS)_ResultMixinStrr8r;r<cs|jfdd|DS)Nc3s|]}|VqdSr4r?rFrIr8r9rJrKz)_ResultMixinStr.encode..)_encoded_counterpartselfrArBr8rIr9r@sz_ResultMixinStr.encodeN)r;r<)__name__ __module__ __qualname__ __slots__r@r8r8r8r9rUsrUc@seZdZdZdddZdS)_ResultMixinBytesr8r;r<cs|jfdd|DS)Nc3s|]}|VqdSr4rDrFrIr8r9rJrKz+_ResultMixinBytes.decode..)_decoded_counterpartrWr8rIr9rEsz_ResultMixinBytes.decodeN)r;r<)rYrZr[r\rEr8r8r8r9r]sr]c@sJeZdZdZeddZeddZeddZedd Ze e j Z d S) _NetlocResultMixinBaser8cCs |jdS)Nr _userinforXr8r8r9usernamesz_NetlocResultMixinBase.usernamecCs |jdS)NrOr`rbr8r8r9passwordsz_NetlocResultMixinBase.passwordcCsD|jd}|sdSt|tr dnd}||\}}}|||S)Nr%%) _hostinforPrQ partitionlower)rXhostname separatorZpercentZzoner8r8r9rjs  z_NetlocResultMixinBase.hostnamecCsj|jd}|durfzt|d}Wn&tyFd|}t|dYn0d|kr\dksfntd|S)NrO z+Port could not be cast to integer value as rizPort out of range 0-65535)rgint ValueError)rXportmessager8r8r9ros   z_NetlocResultMixinBase.portN) rYrZr[r\propertyrcrdrjro classmethodtypes GenericAlias__class_getitem__r8r8r8r9r_s    r_c@s(eZdZdZeddZeddZdS)_NetlocResultMixinStrr8cCsD|j}|d\}}}|r4|d\}}}|stdnt|}t|tjr>tddS)Nvz\Av[a-fA-F0-9]+\..+\ZzIPvFuture address is invalidz%An IPv4 address cannot be in brackets) startswithrematchrn ipaddressZ ip_addressrPZ IPv4Address)rjZipr8r8r9_check_bracketed_hosts      rcCst||\}}}|t}|t}tD]}||d}||d}q(t|}|||t|t|f}t |d}|r|||St tt krt d}}} | d} | dkr|d| D]} | tvrqq|d| || dd}}|dddkrpt|d\}}d|vr d|vs4d|vrt|\}}}}}}t|||||df}nd}|}|t||S)Nrr)rTrrr) rrsrpaqZfragZdefragr8r8r9rks rZ0123456789ABCDEFabcdefc Cs|s|jdSt|tr"|d}|d}t|dkr<|S|dg}|j}tdurbddtDa|ddD]P}z(|t|dd||ddWqnty|d||Yqn0qnd |S) NrKutf-8rfrOrcSs.i|]&}tD]}||t||q qSr8)_hexdigr@bytesfromhex)rGrrr8r8r9 s z$unquote_to_bytes..r) rrPrQr@rr _hextobyterKeyErrorr)stringbitsresritemr8r8r9r~s,      rz([-]+)rrcCst|trt|||Sd|vr,|j|S|dur8d}|durDd}t|}|dg}|j}tdt|dD],}|t|||||||dqnd |S)NrerrrrOrr) rPrrrEr_asciirerrangerr)rrArBrrrrr8r8r9rs   rF&c CsNi}t|||||||d}|D]*\} } | |vr>|| | q| g|| <q|S)N)rArBmax_num_fieldsrk)r r) qskeep_blank_valuesstrict_parsingrArBrrkZ parsed_resultpairsnamevaluer8r8r9r s  r cCs.t|\}}t|\}}|r*t|ttfs2td|durXd||} || krXtddd||D} g} | D]} | s|sqt| dd} t| dkr|rtd| f|rt| d nqtt| ds|rt| d  d d }t |||d }||}| d d d }t |||d }||}| ||fqt| S)Nz*Separator must be of type string or bytes.rOzMax number of fields exceededcSsg|]}|qSr8r8)rGs1r8r8r9 rKzparse_qsl..=rzbad query field: %rrr+ rI) rTrPrQrrncountrrrrr)rrrrArBrrkrr num_fieldsrrZ name_valueZnvrrr8r8r9r s:     r cCs|dd}t|||S)Nrr)rr)rrArBr8r8r9r's rsBABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.-~c@s$eZdZddZddZddZdS)QuotercCst||_dSr4) _ALWAYS_SAFEunionsafe)rXrr8r8r9__init__?szQuoter.__init__cCsd|jjt|fS)Nz<%s %r>) __class__rYdictrbr8r8r9__repr__CszQuoter.__repr__cCs(||jvrt|nd|}|||<|S)Nz%{:02X})rchrformat)rXrrr8r8r9 __missing__GszQuoter.__missing__N)rYrZr[rrrr8r8r8r9r7srrcCsbt|tr8|s|S|durd}|dur*d}|||}n |durHtd|durXtdt||S)Nrr<z,quote() doesn't support 'encoding' for bytesz*quote() doesn't support 'errors' for bytes)rPrQr@rRr )rrrArBr8r8r9r Ms' r cCsdt|trd|vs$t|tr2d|vr2t||||St|trBd}nd}t|||||}|ddS)Nr r)rPrQrr r)rrrArBZspacer8r8r9r s r cst|ttfstd|sdSt|tr6|dd}ntdd|D}|t|s^|Sz t |Wn$t yt |j t |<Yn0d fdd|DS)Nz!quote_from_bytes() expected bytesrr;ignorecSsg|]}|dkr|qS)r8)rGrr8r8r9rrKz$quote_from_bytes..csg|] }|qSr8r8)rGcharZquoterr8r9rrK)rPr bytearrayrRrQr@rstrip_ALWAYS_SAFE_BYTESrEr7rr __getitem__r)Zbsrr8rr9r s   r c Cst|dr|}nNzt|r0t|dts0tWn.ty`t\}}}td|Yn0g} |s|D]j\} } t| t r|| |} n|t | |||} t| t r|| |} n|t | |||} | | d| qnn |D]\} } t| t r|| |} n|t | |||} t| t r@|| |} | | d| qt| t rn|| |||} | | d| qz t| } Wn8ty|t | |||} | | d| Yq0| D]B} t| t r|| |} n|t | |||} | | d| qqd | S)Nitemsrz1not a valid non-string sequence or mapping objectrr) hasattrrrrPrLrRsysexc_infowith_tracebackrrQrr)rZdoseqrrArBZ quote_viaZtyZvatblkrrHeltr8r8r9rsR                 rcCstjdtddt|S)Nz/urllib.parse.to_bytes() is deprecated as of 3.8r stacklevel)warningswarnDeprecationWarning _to_bytesrr8r8r9to_bytessrcCsHt|trDz|d}Wn&tyBtdt|dYn0|S)NASCIIzURL z contains non-ASCII characters)rPrQr@rE UnicodeErrorreprrr8r8r9rs    rcCs`t|}|dddkr<|dddkr<|dd}|dddkr\|dd}|S)NrOzURL:)rQrrr8r8r9unwraps   rcCstjdtddt|S)NzUurllib.parse.splittype() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr)rrr _splittyperr8r8r9 splittypesrcCsDtdurtdtjat|}|r<|\}}||fSd|fS)Nz ([^/:]+):(.*)) _typeprogrcompileDOTALLrgroupsri)rrrdatar8r8r9r$s   rcCstjdtddt|S)NzUurllib.parse.splithost() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr)rrr _splithostrr8r8r9 splithost1sr&cCsXtdurtdtjat|}|rP|\}}|rH|ddkrHd|}||fSd|fS)Nz//([^/#?]*)(.*)rr) _hostprogrr!r"rr#)rrZ host_portrr8r8r9r%9s  r%cCstjdtddt|S)NzUurllib.parse.splituser() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr)rrr _splituserhostr8r8r9 splituserHsr+cCs |d\}}}|r|nd|fS)Nrwr{)r*userrr8r8r9r(Osr(cCstjdtddt|S)NzWurllib.parse.splitpasswd() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr)rrr _splitpasswd)r-r8r8r9 splitpasswdUsr/cCs |d\}}}||r|ndfSNrxrh)r-rZpasswdr8r8r9r.\sr.cCstjdtddt|S)NzUurllib.parse.splitport() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr)rrr _splitportr)r8r8r9 splitportbsr3cCsDtdurtdtjat|}|r<|\}}|r<||fS|dfS)Nz (.*):([0-9]*)) _portprogrr!r" fullmatchr#)r*rror8r8r9r2ks  r2rcCstjdtddt||S)NzVurllib.parse.splitnport() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr)rrr _splitnport)r*defportr8r8r9 splitnportysr8cCsR|d\}}}|s|}n0|rJz t|}Wnty@d}Yn0||fS||fSr0)r{rmrn)r*r7rroZnportr8r8r9r6s   r6cCstjdtddt|S)NzVurllib.parse.splitquery() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr)rrr _splitqueryrr8r8r9 splitquerysr:cCs$|d\}}}|r||fS|dfS)Nrr,)rrrrr8r8r9r9sr9cCstjdtddt|S)NzTurllib.parse.splittag() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr)rrr _splittagrr8r8r9splittagsr<cCs$|d\}}}|r||fS|dfSrr,)rrrtagr8r8r9r;sr;cCstjdtddt|S)NzUurllib.parse.splitattr() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr)rrr _splitattrrr8r8r9 splitattrsr?cCs|d}|d|ddfS)NrrrO)r)rZwordsr8r8r9r>s r>cCstjdtddt|S)NzWurllib.parse.splitvalue() is deprecated as of 3.8, use urllib.parse.parse_qsl() insteadrr)rrr _splitvalue)attrr8r8r9 splitvaluesrBcCs |d\}}}||r|ndfS)Nrr1)rArrr8r8r9r@sr@)rT)r)rT)T)rr)FFrrNr)FFrrNr)rr)rNN)rNN)r)r)r)krrrs collectionsrr__all__rrrZnon_hierarchicalZ uses_queryZ uses_fragmentrrrrr5r:Z_implicit_encodingZ_implicit_errorsr>rCrNrTobjectrUr]r_rvrrZ_DefragResultBaseZ_SplitResultBaseZ_ParseResultBase__doc__rrrrzrrrZ ResultBaserrrrrrrrrrrrrrrrrrrrr!rrr r r frozensetrrrr7 defaultdictrr r r rrrrrr rr&r'r%r+r(r/r.r3r4r2r8r6r:r9r<r;r?r>rBr@r8r8r8r9"s    '           ?  E   * C  6   Q