a XC?h@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[2ddBdCZ3dDdEZ4ddFdGZ5dHdIZ6dJdKZ7dLdMZ8ddNdOZ9dPdQZ:dRdSZ;ddTdUZda?dYdZZ@eAd[ZBdd^d_ZCddbdcZDddddeZEddfdgZFeGdhZHeIeHZJiZKGdidjdjejLZMddldmZNddndoZOddpdqZPd`d@ddeOfdrdsZQdtduZRdvdwZSdxdyZTdzd{ZUdaVd|d}ZWd~dZXdaYddZZddZ[ddZ\ddZ]ddZ^ddZ_da`ddZadddZbdddZcddZdddZeddZfddZgddZhddZiddZjddZkdS)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)rrematchrn ipaddressZ ip_addressrPZ IPv4Address)rjZipr8r8r9rs      rc Cst||\}}}|t}|t}tD]}||d}||d}q(t|}|||t|t|f}t |d}|r|||St tt krt d}}} | d} | dkr|d| D]} | tvrqq|d| || dd}}|dddkrXt|d\}}d|vr d|vs4d|vrt|\}}}}}}t|||||df}nd}|}|t||S)Nrr)rTrrr) rrsrpaqZfragZdefragr8r8r9r{s 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)stringbitsresritemr8r8r9rs,      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)rrArBr8r8r9r7s rsBABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.-~c@s$eZdZddZddZddZdS)QuotercCst||_dSr4) _ALWAYS_SAFEunionsafe)rXrr8r8r9__init__OszQuoter.__init__cCsd|jjt|fS)Nz<%s %r>) __class__rYdictrbr8r8r9__repr__SszQuoter.__repr__cCs(||jvrt|nd|}|||<|S)Nz%{:02X})rchrformat)rXrrr8r8r9 __missing__WszQuoter.__missing__N)rYrZr[rrrr8r8r8r9rGsrrcCsbt|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 ]s' 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) hasattrr rrPrLrRsysexc_infowith_tracebackrrQrr)rZdoseqrrArBZ quote_viaZtyZvatblkrrHeltr8r8r9rsR                 rcCstjdtddt|S)Nz/urllib.parse.to_bytes() is deprecated as of 3.8r stacklevel)warningswarnDeprecationWarning _to_bytesrr8r8r9to_bytes srcCsHt|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   r!cCstjdtddt|S)NzUurllib.parse.splittype() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr)rrr _splittyperr8r8r9 splittype,sr#cCsDtdurtdtjat|}|r<|\}}||fSd|fS)Nz ([^/:]+):(.*)) _typeprogrcompileDOTALLrgroupsri)rrrdatar8r8r9r"4s   r"cCstjdtddt|S)NzUurllib.parse.splithost() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr)rrr _splithostrr8r8r9 splithostAsr*cCsXtdurtdtjat|}|rP|\}}|rH|ddkrHd|}||fSd|fS)Nz//([^/#?]*)(.*)rr) _hostprogrr%r&rr')rrZ host_portrr8r8r9r)Is  r)cCstjdtddt|S)NzUurllib.parse.splituser() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr)rrr _splituserhostr8r8r9 splituserXsr/cCs |d\}}}|r|nd|fS)Nrwr{)r.userrr8r8r9r,_sr,cCstjdtddt|S)NzWurllib.parse.splitpasswd() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr)rrr _splitpasswd)r1r8r8r9 splitpasswdesr3cCs |d\}}}||r|ndfSNrxrh)r1rZpasswdr8r8r9r2lsr2cCstjdtddt|S)NzUurllib.parse.splitport() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr)rrr _splitportr-r8r8r9 splitportrsr7cCsDtdurtdtjat|}|r<|\}}|r<||fS|dfS)Nz (.*):([0-9]*)) _portprogrr%r& fullmatchr')r.rror8r8r9r6{s  r6rcCstjdtddt||S)NzVurllib.parse.splitnport() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr)rrr _splitnport)r.defportr8r8r9 splitnportsr<cCsR|d\}}}|s|}n0|rJz t|}Wnty@d}Yn0||fS||fSr4)r{rmrn)r.r;rroZnportr8r8r9r:s   r:cCstjdtddt|S)NzVurllib.parse.splitquery() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr)rrr _splitqueryrr8r8r9 splitquerysr>cCs$|d\}}}|r||fS|dfS)Nrr0)rrrrr8r8r9r=sr=cCstjdtddt|S)NzTurllib.parse.splittag() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr)rrr _splittagrr8r8r9splittagsr@cCs$|d\}}}|r||fS|dfSrr0)rrrtagr8r8r9r?sr?cCstjdtddt|S)NzUurllib.parse.splitattr() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr)rrr _splitattrrr8r8r9 splitattrsrCcCs|d}|d|ddfS)NrrrO)r)rZwordsr8r8r9rBs rBcCstjdtddt|S)NzWurllib.parse.splitvalue() is deprecated as of 3.8, use urllib.parse.parse_qsl() insteadrr)rrr _splitvalue)attrr8r8r9 splitvaluesrFcCs |d\}}}||r|ndfS)Nrr5)rErrr8r8r9rDsrD)rT)r)rT)T)rr)FFrrNr)FFrrNr)rr)rNN)rNN)r)r)r)lrr rs collectionsrr__all__rrrZnon_hierarchicalZ uses_queryZ uses_fragmentrrrrr5r:Z_implicit_encodingZ_implicit_errorsr>rCrNrTobjectrUr]r_rvrrZ_DefragResultBaseZ_SplitResultBaseZ_ParseResultBase__doc__rrrrzrrrZ ResultBaserrrrrrrrrrrrrrrrrrrrrr%rrr r r frozensetrrrr7 defaultdictrr r r rrrr!r#r$r"r*r+r)r/r,r3r2r7r8r6r<r:r>r=r@r?rCrBrFrDr8r8r8r9"s    '           >  E   * C  6   Q