§ ^½]¶ÆL_ãóX—dZddgZddlZddlmZddlmZddlmZddl m Z ej d ¦«Z ej d ¦«Z ej d ¦«Zej d ¦«Zej d ¦«Zd ZdZe¦«ZGd„de¦«ZGd„d¦«ZGd„de¦«ZdS)aFeedParser - An email feed parser. The feed parser implements an interface for incrementally parsing an email message, line by line. This has advantages for certain applications, such as those reading email messages off a socket. FeedParser.feed() is the primary interface for pushing new data into the parser. It returns when there's nothing more it can do with the available data. When you have no more data to push into the parser, call .close(). This completes the parsing and returns the root message object. The other advantage of this parser is that it will never raise a parsing exception. Instead, when it finds something unexpected, it adds a 'defect' to the current message. Defects are just instances that live on the message object's .defects attribute. Ú FeedParserÚBytesFeedParseréN)Úerrors)Úcompat32)Údeque)ÚStringIOz \r\n|\r|\nz (\r\n|\r|\n)z(\r\n|\r|\n)\Zz%^(From |[\041-\071\073-\176]*:|[\t ])Úú cóN—eZdZdZd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d S) ÚBufferedSubFileakA file-ish object that can have new data loaded into it. You can also push and pop line-matching predicates onto a stack. When the current predicate matches the current line, a false EOF response (i.e. empty string) is returned instead. This lets the parser adhere to a simple abstraction -- it parses until EOF closes the current message. cór—td¬¦«|_t¦«|_g|_d|_dS)Nr )ÚnewlineF)rÚ_partialrÚ_linesÚ _eofstackÚ_closed©Úselfs ú=/opt/alt/python-internal/lib64/python3.11/email/feedparser.pyÚ__init__zBufferedSubFile.__init__4s3€õ!¨Ð,Ñ,Ô,ˆŒ å‘g”gˆŒ àˆŒàˆŒ ˆ ˆ ócó:—|j |¦«dS©N)rÚappend)rÚpreds rÚpush_eof_matcherz BufferedSubFile.push_eof_matcher?s€Ø Œ×Ò˜dÑ#Ô#Ð#Ð#Ð#rcó4—|j ¦«Sr)rÚpoprs rÚpop_eof_matcherzBufferedSubFile.pop_eof_matcherBs€ØŒ~×!Ò!Ñ#Ô#Ð#rcó—|j d¦«| |j ¦«¦«|j d¦«|j ¦«d|_dS)NrT)rÚseekÚ pushlinesÚ readlinesÚtruncaterrs rÚclosezBufferedSubFile.closeEsm€à Œ ×Ò˜1ÑÔÐØ �Š�t”}×.Ò.Ñ0Ô0Ñ1Ô1Ð1Ø Œ ×Ò˜1ÑÔÐØ Œ ×ÒÑ Ô Ð ØˆŒ ˆ ˆ rcóä—|js|jrdStS|j ¦«}t |j¦«D]*}||¦«r|j |¦«dSŒ+|S©Nr )rrÚ NeedMoreDataÚpopleftÚreversedrÚ appendleft)rÚlineÚateofs rÚreadlinezBufferedSubFile.readlineMsŠ€ØŒ{ð ØŒ|ð Ø�rÝÐ ðŒ{×"Ò"Ñ$Ô$ˆõ˜dœnÑ-Ô-ð ð ˆE؈u�T‰{Œ{ð à” ×&Ò& tÑ,Ô,Ð,Ø�r�rð ðˆ rcó:—|j |¦«dSr)rr+©rr,s rÚ unreadlinezBufferedSubFile.unreadline_s €ð Œ ×Ò˜tÑ$Ô$Ð$Ð$Ð$rcóÒ—|j |¦«d|vrd|vrdS|j d¦«|j ¦«}|j d¦«|j ¦«|d d¦«s,|j | ¦«¦«| |¦«dS)z$Push some new data into this object.r ú Nréÿÿÿÿ)rÚwriter!r#r$Úendswithrr")rÚdataÚpartss rÚpushzBufferedSubFile.pushdsÙ€à Œ ×Ò˜DÑ!Ô!Ð!Ø �tÐ Ð  ¨DÐ 0Ð 0à ˆFð Œ ×Ò˜1ÑÔÐØ” ×'Ò'Ñ)Ô)ˆØ Œ ×Ò˜1ÑÔÐØ Œ ×ÒÑ Ô Ð ð �RŒy×!Ò! $Ñ'Ô'ð -Ø ŒM× Ò  § ¢ ¡ ¤ Ñ ,Ô ,Ð ,Ø �Š�uÑÔÐÐÐrcó:—|j |¦«dSr)rÚextend)rÚliness rr"zBufferedSubFile.pushlinesys€Ø Œ ×Ò˜5Ñ!Ô!Ð!Ð!Ð!rcó—|Sr©rs rÚ__iter__zBufferedSubFile.__iter__|s€Øˆ rcóH—| ¦«}|dkrt‚|Sr')r.Ú StopIterationr0s rÚ__next__zBufferedSubFile.__next__s#€Ø�}Š}‰ŒˆØ �2Š:ˆ:ÝР؈ rN)Ú__name__Ú __module__Ú __qualname__Ú__doc__rrrr%r.r1r9r"r?rBr>rrr r ,s´€€€€€ððð ð ð ð$ð$ð$ð$ð$ð$ððððððð$%ð%ð%ð ððð*"ð"ð"ððððððððrr cóP—eZdZdZd edœd„Zd„Zd„Zd„Zd„Z d „Z d „Z d „Z d „Z dS)rzA feed-style parser of email.N©Úpolicycóf—||_d|_|€"|j€ddlm}||_n>|j|_n1||_ ||j¬¦«n#t $r d|_YnwxYwt¦«|_g|_ |  ¦«j |_ d|_ d|_d|_dS)a_factory is called with no arguments to create a new message obj The policy keyword specifies a policy object that controls a number of aspects of the parser's operation. The default policy maintains backward compatibility. FNr)ÚMessagerHT)rIÚ_old_style_factoryÚmessage_factoryÚ email.messagerKÚ_factoryÚ TypeErrorr Ú_inputÚ _msgstackÚ _parsegenrBÚ_parseÚ_curÚ_lastÚ _headersonly)rrOrIrKs rrzFeedParser.__init__‰sÜ€ðˆŒ Ø"'ˆÔØ Ð ØÔ%Ð-Ø1Ð1Ð1Ð1Ð1Ð1Ø '�” � à &Ô 6�” � à$ˆDŒMð /Ø� ¤ Ð,Ñ,Ô,Ð,Ð,øÝð /ð /ð /à*.�Ô'Ð'Ð'ð /øøøõ&Ñ'Ô'ˆŒ ؈ŒØ—n’nÑ&Ô&Ô/ˆŒ ؈Œ ؈Œ Ø!ˆÔÐÐs»A Á A!Á A!có—d|_dS)NT)rWrs rÚ_set_headersonlyzFeedParser._set_headersonly¨s€Ø ˆÔÐÐrcób—|j |¦«| ¦«dS)zPush more data into the parser.N)rQr9Ú _call_parse)rr7s rÚfeedzFeedParser.feed«s0€à Œ ×Ò˜ÑÔÐØ ×ÒÑÔÐÐÐrcóR— | ¦«dS#t$rYdSwxYwr)rTrArs rr[zFeedParser._call_parse°s:€ð Ø �KŠK‰MŒMˆMˆMˆMøÝð ð ð Ø ˆDˆDð øøøs ‚˜ &¥&cóJ—|j ¦«| ¦«| ¦«}| ¦«dkrI| ¦«s5|js.tj¦«}|j   ||¦«|S)zð +Ø ŒN˜2Ô × %Ò % cÑ *Ô *Ð *Ø Œ×Ò˜cÑ"Ô"Ð"؈Œ ؈Œ ˆ ˆ rcóz—|j ¦«}|jr|jd|_nd|_|S)Nr4)rRrrU)rÚretvals rr`zFeedParser._pop_messageÐs;€Ø”×#Ò#Ñ%Ô%ˆØ Œ>ð Øœ rÔ*ˆDŒIˆIàˆDŒI؈ rc#óÚK—| ¦«g}|jD]­}|tur tV—Œt |¦«sit  |¦«sMt j¦«}|j  |j |¦«|j  |¦«n|  |¦«Œ®|  |¦«|jr€g} |j ¦«}|tur tV—Œ-|dkrn|  |¦«ŒI|j  t" |¦«¦«dS|j  ¦«dkrü |j t j¦«| ¦«D]}|tur tV—Œ| ¦«}|j ¦« |j ¦«}|tur tV—Œ- |j ¦«}|tur tV—Œ- |dkrn|j  |¦«ŒùdS|j  ¦«dkr@| ¦«D]}|tur tV—Œ| ¦«dS|j  ¦«dk�r|j  ¦«}|€›t j¦«}|j  |j |¦«g}|jD]*}|tur tV—Œ|  |¦«Œ+|j  t" |¦«¦«dSt7|j  dd¦«¦« ¦«dvr3t j¦«}|j  |j |¦«d |z}t?j d t?j!|¦«zd z¦«} d} g} d } d } |j ¦«}|tur tV—Œ-|dkr�nÞ|  |¦«}|�r¯| "d ¦«rd} | "d¦«} �n˜| r–| rv| d}tF $|¦«}|r.|dtK| "d¦«¦« …| d<t" | ¦«|j _&d } |j  |¦«�Œ |j ¦«}|tur tV—Œ-|  |¦«}|s|j  |¦«nŒ_|j | j¦«| ¦«D]}|tur tV—Œ|j' ¦«dkru|j'j(}|dkr d|j'_(nÊ|�StF $|¦«}|r7tK| "d¦«¦«}|d| …|j'_(nt|j'j)}tU|t6¦«rStF $|¦«}|r7|dtK| "d¦«¦« …}||j'_)|j ¦«| ¦«|j |_'n|   |¦«�Œ| rªt j+¦«}|j  |j |¦«|j  t" | ¦«¦«g}|jD]}|tur tV—ŒŒt" |¦«|j _(dS| s5t j,¦«}|j  |j |¦«dS| rdg}ng}|jD]*}|tur tV—Œ|  |¦«Œ+|rQ|d}tZ |¦«}|r-|tK| "d¦«¦«d…|d<t" |¦«|j _(dSg}|jD]*}|tur tV—Œ|  |¦«Œ+|j  t" |¦«¦«dS)NTr zmessage/delivery-statusÚmessager_zcontent-transfer-encodingÚ8bit)Ú7bitrqÚbinaryz--z(?Pz4)(?P--)?(?P[ \t]*)(?P\r\n|\r|\n)?$FÚendÚlinesepr4r).rlrQr(ÚheaderREÚmatchÚNLCRErÚ MissingHeaderBodySeparatorDefectrIrdrUr1rÚ_parse_headersrWr.Ú set_payloadÚ EMPTYSTRINGÚjoinrhrrSr`rraÚ get_boundaryÚNoBoundaryInMultipartDefectÚstrÚgetÚlowerÚ-InvalidMultipartContentTransferEncodingDefectÚreÚcompileÚescapeÚgroupÚ NLCRE_eolÚsearchÚlenÚpreamblerVÚepilogueÚ_payloadÚ isinstanceÚStartBoundaryNotFoundDefectÚCloseBoundaryNotFoundDefectÚ NLCRE_bol)rÚheadersr,rfr<rnrkÚboundaryÚ separatorÚ boundaryreÚcapturing_preambler‹ruÚclose_boundary_seenÚmoÚlastlineÚeolmorŒrtÚpayloadÚ firstlineÚbolmos rrSzFeedParser._parsegenØs· èè€à ×ÒÑÔÐØˆð”Kð !ð !ˆDØ•|Ð#Ð#Ý"Ð"Ð"Ð"ØÝ—>’> $Ñ'Ô'ð õ—{’{ 4Ñ(Ô(ð1Ý#ÔDÑFÔF�FØ”K×-Ò-¨d¬i¸Ñ@Ô@Ð@Ø”K×*Ò*¨4Ñ0Ô0Ð0Ø�Ø �NŠN˜4Ñ Ô Ð Ð ð ×Ò˜GÑ$Ô$Ð$ð Ô ð ØˆEð #Ø”{×+Ò+Ñ-Ô-�Ø�<Ð'Ð'Ý&Ð&Ð&Ð&ØØ˜2’:�:ØØ— ’ ˜TÑ"Ô"Ð"ð #ð ŒI× !Ò !¥+×"2Ò"2°5Ñ"9Ô"9Ñ :Ô :Ð :Ø ˆFØ Œ9× %Ò %Ñ 'Ô 'Ð+DÒ DÐ Dð  -Ø” ×,Ò,­U¬[Ñ9Ô9Ð9Ø"ŸnšnÑ.Ô.ðð�FØ¥Ð-Ð-Ý*Ð*Ð*Ð*Ø ØØ×'Ò'Ñ)Ô)�ð” ×+Ò+Ñ-Ô-Ð-ð Øœ;×/Ò/Ñ1Ô1�DØ�|Ð+Ð+Ý*Ð*Ð*Ð*Ø ØðØœ;×/Ò/Ñ1Ô1�DØ�|Ð+Ð+Ý*Ð*Ð*Ð*Ø ØØ˜2’:�:Øà” ×&Ò& tÑ,Ô,Ð,ð? -ð@ ˆFØ Œ9× )Ò )Ñ +Ô +¨yÒ 8Ð 8ðŸ.š.Ñ*Ô*ð ð �Ø�\Ð)Ð)Ý&Ð&Ð&Ð&ØØØ × Ò Ñ Ô Ð Ø ˆFØ Œ9× )Ò )Ñ +Ô +¨{Ò :Ñ :Ø”y×-Ò-Ñ/Ô/ˆHØÐõ  Ô;Ñ=Ô=�Ø” ×)Ò)¨$¬)°VÑ<Ô<Ð<Ø�Ø œKð'ð'�DØ�|Ð+Ð+Ý*Ð*Ð*Ð*Ø Ø—L’L Ñ&Ô&Ð&Ð&Ø” ×%Ò%¥k×&6Ò&6°uÑ&=Ô&=Ñ>Ô>Ð>Ø�å�D”I—M’MÐ"=¸vÑFÔFÑGÔG×MÒMÑOÔOØ5ð6ð6åÔMÑOÔO�Ø” ×)Ò)¨$¬)°VÑ<Ô<Ð<ð ˜x™ˆIÝœØ�RœY yÑ1Ô1Ñ1ØGñHñIôIˆJð"&Р؈H؈GØ"'Ð ðO *Ø”{×+Ò+Ñ-Ô-�Ø�<Ð'Ð'Ý&Ð&Ð&Ð&ØØ˜2’:�:ÙØ×%Ò% dÑ+Ô+�ØñG*ð —x’x ‘”ðØ.2Ð+Ø"$§(¢(¨9Ñ"5Ô"5˜Ùà)ð !Ø#ðLð(0°¤|˜HÝ$-×$4Ò$4°XÑ$>Ô$>˜EØ$ðOØ/7Ð8M½#¸e¿kºkÈ!¹n¼nÑ:MÔ:MÐ9MÐ8MÔ/N ¨¡ Ý1<×1AÒ1AÀ(Ñ1KÔ1K˜DœIÔ.Ø-2Ð*Øœ ×.Ò.¨tÑ4Ô4Ð4Ù ð "Ø#œ{×3Ò3Ñ5Ô5˜Ø¥<Ð/Ð/Ý".Ð.Ð.Ð.Ø$Ø'×-Ò-¨dÑ3Ô3˜Ø!ð"Ø œK×2Ò2°4Ñ8Ô8Ð8Ø!ð"ð”K×0Ò0°Ô1AÑBÔBÐBØ"&§.¢.Ñ"2Ô"2ðð˜Ø!¥\Ð1Ð1Ý".Ð.Ð.Ð.Ø$Øð ”z×6Ò6Ñ8Ô8¸KÒGÐGØ#'¤:Ô#6˜Ø# rš>˜>Ø26˜DœJÔ/Ð/Ø%Ð1Ý!*×!1Ò!1°(Ñ!;Ô!;˜BØ!ðFÝ&)¨"¯(ª(°1©+¬+Ñ&6Ô&6 Ø6>¸uÀÀ¸u´o ¤ Ô 3øà"&¤*Ô"5˜Ý% g­sÑ3Ô3ð>Ý!*×!1Ò!1°'Ñ!:Ô!:˜BØ!ð>Ø*1Ð2DµC¸¿ºÀ¹ ¼ Ñ4DÔ4DÐ3DÐ2DÔ*E Ø6= ¤ Ô 3Ø”K×/Ò/Ñ1Ô1Ð1Ø×%Ò%Ñ'Ô'Ð'ð"&¤�D”J�Jð—O’O DÑ)Ô)Ð)ñ_O *ðf"ð ÝÔ;Ñ=Ô=�Ø” ×)Ò)¨$¬)°VÑ<Ô<Ð<Ø” ×%Ò%¥k×&6Ò&6°xÑ&@Ô&@ÑAÔAÐAØ�Ø œKð!ð!�DØ�|Ð+Ð+Ý*Ð*Ð*Ð*Ø ð,õ&1×%5Ò%5°hÑ%?Ô%?�” Ô"Ø�ð'ð ÝÔ;Ñ=Ô=�Ø” ×)Ò)¨$¬)°VÑ<Ô<Ð<Ø�ðð Ø˜4��à�Øœ ð &ð &�Ø�<Ð'Ð'Ý&Ð&Ð&Ð&ØØ—’ Ñ%Ô%Ð%Ð%ðð BØ$ QœK� Ý!Ÿš¨ Ñ2Ô2�ØðBØ"+­C°· ² ¸A±´Ñ,?Ô,?Ð,@Ð,@Ô"A�H˜Q‘KÝ!,×!1Ò!1°(Ñ!;Ô!;ˆDŒIÔ Ø ˆFðˆØ”Kð ð ˆDØ•|Ð#Ð#Ý"Ð"Ð"Ð"ØØ �LŠL˜Ñ Ô Ð Ð Ø Œ ×Ò�k×.Ò.¨uÑ5Ô5Ñ6Ô6Ð6Ð6Ð6rcó —d}g}t|¦«D�]Í\}}|ddvrM|s5tj|¦«}|j |j|¦«ŒG| |¦«Œ]|r+|jj|j |¦«Ždg}}|  d¦«rÑ|dkrct  |¦«}|r+|dt|  d¦«¦« …}|j |¦«�Œ|t|¦«dz kr|j |¦«dStj|¦«}|jj |¦«�Œp| d¦«}|dkr5tjd¦«}|jj |¦«�ŒÀ|d|…}|g}�ŒÏ|r)|jj|j |¦«ŽdSdS)Nr rz zFrom éú:zMissing header name.)Ú enumeraterÚ#FirstHeaderLineIsContinuationDefectrIrdrUrÚset_rawÚheader_source_parseÚ startswithrˆr‰rŠr‡Ú set_unixfromrQr1ÚMisplacedEnvelopeHeaderDefectÚdefectsÚfindÚInvalidHeaderDefect) rr<Ú lastheaderÚ lastvalueÚlinenor,rfr˜Úis rrzzFeedParser._parse_headersÕs-€àˆ ؈ Ý% eÑ,Ô,ð3 ñ3 ‰LˆF�Dà�AŒw˜%ÐÐØ!ðõ$ÔGÈÑMÔM�FØ”K×-Ò-¨d¬i¸Ñ@Ô@Ð@ØØ× Ò  Ñ&Ô&Ð&ØØð /Ø!�” Ô! 4¤;×#BÒ#BÀ9Ñ#MÔ#MÐNÐNØ(*¨B˜I� à�Š˜wÑ'Ô'ð Ø˜Q’;�;å"×)Ò)¨$Ñ/Ô/�BØð8Ø#Ð$6¥c¨"¯(ª(°1©+¬+Ñ&6Ô&6Ð%6Ð$6Ô7˜Ø”I×*Ò*¨4Ñ0Ô0Ð0ÙØ�s 5™zœz¨A™~Ò-Ð-ð”K×*Ò*¨4Ñ0Ô0Ð0Ø�F�Fõ$ÔAÀ$ÑGÔG�FØ”IÔ%×,Ò,¨VÑ4Ô4Ð4Ùð— ’ ˜#‘”ˆAð �AŠvˆvÝÔ3Ð4JÑKÔK�Ø” Ô!×(Ò(¨Ñ0Ô0Ð0Ùð˜b˜q˜bœˆJؘˆI‰Ià ð KØ ˆDŒIÔ ˜tœ{×>Ò>¸yÑIÔIÐ JÐ JÐ JÐ Jð Kð Krr)rCrDrErFrrrYr\r[r%rlr`rSrzr>rrrr†s»€€€€€Ø'Ð'ð"°ð"ð"ð"ð"ð"ð>!ð!ð!ðððð ððð ð ð ð ð ð ðððð{7ð{7ð{7ðz:Kð:Kð:Kð:Kð:Krcó"‡—eZdZdZˆfd„ZˆxZS)rz(Like FeedParser, but feed accepts bytes.cór•—t¦« | dd¦«¦«dS)NÚasciiÚsurrogateescape)Úsuperr\Údecode)rr7Ú __class__s €rr\zBytesFeedParser.feeds.ø€Ý ‰Œ� Š �T—[’[ Ð*;Ñ<Ô<Ñ=Ô=Ð=Ð=Ð=r)rCrDrErFr\Ú __classcell__)rµs@rrrs>ø€€€€€Ø2Ð2ð>ð>ð>ð>ð>ð>ð>ð>ð>r)rFÚ__all__r„ÚemailrÚemail._policybaserÚ collectionsrÚiorr…rxr‘rˆÚ NLCRE_crackrvr|ÚNLÚobjectr(r rrr>rrúr¿s{ðð ðð" Ð*Ð +€à € € € àÐÐÐÐÐØ&Ð&Ð&Ð&Ð&Ð&ØÐÐÐÐÐØÐÐÐÐÐàˆŒ �=Ñ!Ô!€Ø ˆBŒJ�Ñ 'Ô '€ Ø ˆBŒJÐ(Ñ )Ô )€ ؈bŒj˜Ñ)Ô)€ ð ˆ2Œ:Ð>Ñ ?Ô ?€Ø€ Ø €àˆv‰xŒx€ ðWðWðWðWðW�fñWôWðWðtIKðIKðIKðIKðIKñIKôIKðIKðX >ð>ð>ð>ð>�jñ>ô>ð>ð>ð>r