f ddlZddlZddlZddgZGddeZGddZGddZedkre edSdS) NnetrcNetrcParseErrorceZdZ ddZdZdS)rNcf||_||_||_t||dSN)filenamelinenomsg Exception__init__)selfr rr s ,/opt/alt/python311/lib64/python3.11/netrc.pyr zNetrcParseError.__init__ s3   4%%%%%c6|jd|jd|jdS)Nz (z, line ))r rr )r s r__str__zNetrcParseError.__str__s!%)XXXt}}}dkkkJJr)NN)__name__ __module__ __qualname__r rrrrr s??&&&& KKKKKrc&eZdZdZdZdZdZdS) _netrclexc>d|_||_d|_g|_dS)Nz )r instream whitespacepushback)r fps rr z_netrclex.__init__s"  # rcf|jd}|dkr|xjdz c_|S)Nr )rreadr )r chs r _read_charz_netrclex._read_chars5 ]   " " :: KK1 KK rc|jr|jdSd}t|jd}|D]}||jvr |dkr1|D]-}|dkr|ccS|dkr|}||z }.C|dkr|}||z }|D]0}||jvr|ccS|dkr|}||z }1|S)Nr"\)rpopiterr#r)r tokenfiterr"s r get_tokenz_netrclex.get_token#s( = (=$$Q'' 'T_b))  BT_$$Syy  BSyy$ t!__..RKEE  ::**B   BT_,,$ t!__..RKEE   rc:|j|dSr)rappend)r r*s r push_tokenz_netrclex.push_token>s U#####rN)rrrr r#r,r/rrrrrsP  6$$$$$rrc.eZdZddZdZdZdZdZdS)rNc|du}|=tjtjdd}i|_i|_ t |d5}||||ddddS#1swxYwYdS#t$rFt |d5}||||dddYdS#1swxYwYYdSwxYw)N~z.netrczutf-8)encodinglocale) ospathjoin expanduserhostsmacrosopen_parseUnicodeDecodeError)r file default_netrcrs rr znetrc.__init__Cs <7<< 2 23 7 7BBD   5dW--- 5 D"m444 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5! 5 5 5dX... 5" D"m444 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5sZB$B < B B  BB BC&1C C&C C&C C&%C&ct|} |j}|x}}|sdS|ddkr8|j|kr,t|dkr|jf|dkr|}n|dkrd}n|dkrz|}g|j|< |j} | std||j| dkrn!|j|| Y td |z||j|std |z||jd x} x} } i|j |< |j} |}| dr%|j| kr|jV|d vr#| | | f|j |<| |nq|d ks|dkr|} nO|dkr|} n4|dkr|} ntd|z||j| |||j |de)Nrr#machinedefaultmacdefz.Macro definition missing null line terminator.r zbad toplevel token %rzmissing %r namer%>r%rDrCrBloginuseraccountpasswordzbad follower token %r) rr r,lenrreadliner:rr.r9 startswithr/_security_check)r r>rr?lexer saved_linenotopleveltt entrynamelinerErGrH prev_linenos rr<z netrc._parsePs" < N 2244D0-L %,000t||K *11$777 8%+b0$ FFF R%&7"&#l __&&==%%|{22//111===-2GX,FDJy)$$R(((7]]bFll!OO--EE9__#oo//GG:%%$00HH)*AB*F*. >>>% >(  ]DJy4I!4L M M My< Nrctjdkr&|r%|dkr tj|}|jtjkrddl} ||jd}n#t$r d|jz}YnwxYw |tjd}n&#t$rdtjz}YnwxYwtd|d|d|j tj tj zzrtddSdSdSdS) Nposix anonymousrzuid %sz~/.netrc file owner (z, z) does not match current userzY~/.netrc access too permissive: access permissions must restrict access to only the owner)r5namefstatfilenost_uidgetuidpwdgetpwuidKeyErrorrst_modestatS_IRWXGS_IRWXO)r rr?rEpropr\fownerrFs rrLznetrc._security_checksp 7g  - E[4H4H8BIIKK((D{bikk)) 4 \\$+66q9FF444% 3FFF42<< 44Q7DD222#bikk1DDD2%%V%%t%%%'''  t| ;< "%!"""!    4H4H " "s$# BBB,C C/.C/c` ||jvr |j|Sd|jvr |jdSdS)NrC)r9)r hosts rauthenticatorsznetrc.authenticatorss>F 4:  :d# # $* $ $:i( (4rcL d}|jD]G}|j|}|d|d|ddz }|dr|d|ddz }|d|d dz }H|jD]%}|d |dz }|j|D]}||z }|dz }&|S) Nr%zmachine z login rr rz account z password zmacdef )r9keysr:)r reprfattrsmacrorRs r__repr__znetrc.__repr__sAJOO%% . .DJt$E :d::eAh::: :CQx 10E!H0000 -q--- -CC[%%''  E &U&&& &C E*  t  4KCC rr)rrrr r<rLrgrnrrrrrBsh 5 5 5 5>N>N>N@""",r__main__) r5shlexr`__all__r rrrrprintrrrrss3 % & K K K K Ki K K K)$)$)$)$)$)$)$)$X{{{{{{{{z z E%%''NNNNNr