e)4SrSSKrSSKrSSKrSSKJr SSKJr /SQr"SS5r SSjr S r \R"S \R5RrS rS r\S :XaT\"\R(5S:Xa\"\ "55 g\R(Sr\"\5r\"\ "\\55 SSS5 gg!,(df  g=f)8A lexical analyzer class for simple shell-like syntaxes.N)deque)StringIO)shlexsplitquotejoinct\rSrSrSrSSjr\S5rSrSSjr Sr S r S r S r SS jrS rSrSrg)rrNc&[U[5(a [U5nUb XlX lO[ R UlSUlX0lU(aSUlOSUlSUl SUl UR(aU=RS- sl SUl SUl SUl SUlS UlS Ul[#5UlS UlS UlSUl[#5UlSUlU(dSnOUS LaSnX@lU(as[#5UlU=RS- sl URR5[6R9U55nURR;U5Ul gg)N#?abcdfeghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_u|ßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞz Fz'"\" rTz();<>|&z~-./*?=) isinstancestrrinstreaminfilesysstdinposixeof commenters wordchars whitespacewhitespace_splitquotesescape escapedquotesstaterpushbacklinenodebugtoken filestacksource_punctuation_chars_pushback_chars maketransdictfromkeys translate)selfrrrpunctuation_charsts +/opt/imh/python3.13/lib/python3.13/shlex.py__init__shlex.__init__sI h $ $)H  $M KIIDMDK DHDHB :: NN ^ _N# %          "  $ & ) "3 #(7D NNi 'N((7H)IJA!^^55a8DN cUR$N)r*r0s r3r1shlex.punctuation_charsDs&&&r6cURS:a[S[U5-5 URR U5 g)z:Push a token onto the stack popped by the get_token methodrzshlex: pushing token N)r&printreprr$ appendleft)r0toks r3 push_tokenshlex.push_tokenHs1 ::? )DI5 6   %r6cr[U[5(a [U5nURR UR UR UR45 X lXlSUlUR(a7Ub[SUR <35 g[SUR <35 gg)z9Push an input source onto the lexer's input source stack.rNzshlex: pushing to file zshlex: pushing to stream ) rrrr(r>rrr%r&r<)r0 newstreamnewfiles r3 push_sourceshlex.push_sourceNs i % % +I !!4;; t{{"KL !  ::"T[[BCt}}FG r6c URR5 URR5uUlUlUlUR (a$[SURUR 4-5 SUlg)zPop the input source stack.zshlex: popping to %s, line %drN) rcloser(popleftrr%r&r<r#r9s r3 pop_sourceshlex.pop_source\s_ 48NN4J4J4L1dmT[ :: 1]]DKK01 2 r6cUR(aCURR5nURS:a[S[ U5-5 U$UR 5nUR bkX R :Xa\URUR 55nU(aUupEURXT5 UR5nX R :XaM\X R:XaNUR(d UR$UR5 UR5nX R:XaMNURS:a3X R:wa[S[ U5-5 U$[S5 U$)zBGet a token from the input stream (or from stack if it's nonempty)rzshlex: popping token z shlex: token=zshlex: token=EOF) r$rIr&r<r= read_tokenr) sourcehookrE get_tokenrr(rJ)r0r?rawspecrDrCs r3rOshlex.get_tokenes ==--'')CzzQ-S 9:Joo ;; "$t'89+/(W$$Y8nn& $XXo>>xx!nn& XXo ::?hhoS 12 () r6c,SnSnUR(a,UR(aURR5nOURR S5nUS:XaU=R S- slUR S:a[SUR<SU<35 URc S Ul GOURS:XGaU(d SUlGOX0R;aIUR S :a [S 5 UR(dUR(a U(aGOtGM0X0R;a1URR5 U=R S- slGO.UR(aX0R;a S nX0lGOX0R;aX0l S UlGOX0R;aX0l S UlGOX0R ;aUR(dX0l X0lGOUR"(aX0l S UlGOzX0l UR(dUR(a U(aGOLGMXURUR ;aSnU(d&UR S :a [S5 [%S5eX0R:Xa8UR(dU=RU- sl SUlGOS UlGOUR(a=X0R;a.URUR&;aURnX0lGOhU=RU- sl GOQURUR;aU(d&UR S :a [S5 [%S5eX R ;a3X0R:wa$X2:waU=RUR- sl U=RU- sl X lGOURS;GaU(d SUlGOX0R;aPUR S :a [S5 SUlUR(dUR(a U(aGO1GMsX0R;awURR5 U=R S- slUR(a5SUlUR(dUR(a U(aGOGMGOURS :XaYX0R;aU=RU- sl GOoX0R;aURR)U5 SUlGO?UR(aX0R ;aX0lGOUR(aX0R;a S nX0lOX0R;d/X0R ;d UR"(a%X0R;aU=RU- sl OUR(aURR)U5 OUR*R-U5 UR S :a [S5 SUlUR(dUR(aU(aOGMGMURnS Ul UR(aU(dUS :XaSnUR S:a+U(a[S[/U5-5 U$[S5 U$)NFrTr zshlex: in state z I see character: r z+shlex: I see whitespace in whitespace stateacz shlex: I see EOF in quotes statezNo closing quotationz shlex: I see EOF in escape statezNo escaped character)rWrXz%shlex: I see whitespace in word statez&shlex: I see punctuation in word statezshlex: raw token=zshlex: raw token=EOF)r1r+poprreadr%r&r<r#r'rrrreadliner!rr r ValueErrorr"appendr$r>r=)r0quoted escapedstatenextcharresults r3rMshlex.read_tokens %%$*>*>//335==--a04 q zzQ$**BJLMzz! s"!%DJ0zzQKLzzdjjV 0MM**,KK1$KZZH $;#&L!)J/!)J!$DJ!7!77!)J!$DJ,::%- !)J**!)J!$DJ!)JzzdjjV t{{*zzQ@A$%;<<zz):: h. %( %( jjX%<++B,#'::L!)JJJ(*Jt{{*zzQ@A$%;<<!KK/ JJ.83KJJ$**,J h& ) z)!%DJ0zzQEF!$DJzzdjjV 0MM**,KK1$Kzz%( ::$**!$ " ZZ3&#9#99 h. #??: 0077A%( ZZH $;!)JZZH $;#&L!)J..0H 4K//"*@*@@JJ(*J--,,33H= 00:zzQFG!$DJzzdjjV GH ::f2F ::>)DL89 ,- r6cNUSS:XaUSSn[UR[5(ak[RR U5(dG[RR [RRUR5U5nU[US54$)z(Hook called on a filename to be sourced.rrrr) rrrospathisabsr dirnameopen)r0rDs r3rNshlex.sourcehookss 1: amG dkk3 ' ' g0F0Fggll277??4;;#?IGgs+,,r6cJUc URnUc URnSX4-$)z[[F >[[F"f%555r6cU$r8r9s r3__iter__shlex.__iter__(s r6cPUR5nXR:Xa[eU$r8)rOr StopIteration)r0r's r3__next__shlex.__next__+s#  HH   r6)r*r+rr&rr!r"r(rrr%rr$r r)r#r'rrr)NNFFr8)NN)__name__ __module__ __qualname____firstlineno____doc__r4propertyr1r@rErJrOrMrNrmrqru__static_attributes__rpr6r3rrsV>9>#(-9^''& H@Pd-6r6rcpUc [S5e[XS9nSUlU(dSUl[ U5$)z-Split the string *s* using shell-like syntax.zs argument must not be None)rTr )r\rrrlist)scommentsrlexs r3rr1s9y677  CC  9r6c2SRSU55$)z3Return a shell-escaped string from *split_command*.rc38# UHn[U5v M g7fr8)r).0args r3 join..>s8-3E#JJ-s)r ) split_commands r3r r <s 888-8 88r6z[^\w@%+=:,./-]c^U(dg[U5cU$SURSS5-S-$)z1Return a shell-escaped version of the string *s*.z'''z'"'"') _find_unsafereplace)rs r3rrCs4 A 3 * *S 00r6cUR5=n(a1[S[U5-5 UR5=n(aM0gg)NzToken: )rOr<r=)lexertts r3 _print_tokensrOs<! !" ! i$r("#! !" ! !r6__main__r)FT)r{rfrer collectionsrior__all__rrr compileASCIIsearchrrrrwlenargvfnrjfrpr6r3rs>  -\\|9 zz+RXX6==  1$ z 388}eg XXa[ "X %2, 'X  Xs B99 C