+
    é
4i™$  ã                   ó&  € ^ RI t ^ RIt ^ RIt^ RIt^ RIt^ RIHt ^ RIHtH	t	H
t
HtHtHtHtHtHtHt ^ RIHt ^ RIHtHtHt ]]
]	]]3,          ,          .]
]	]]3,          ,          3,          t]'       d   ^ RIHt ^ RIHt R^R	R/R
 ltRR/R lt]P>                  R8¼  g	   ]'       d   ] P
                  P                  ],          t M( ! R R] P
                  P                  ]],          ]4      t  ! R R] ],          ]],          4      t!RR lt"R# )é    N)ÚABC)
ÚOptionalÚUnionÚIterableÚCallableÚTYPE_CHECKINGÚIteratorÚTypeÚcastÚListÚGeneric)ÚT)ÚTEÚRÚTokenOrElement©ÚDeb822Element)ÚDeb822TokenÚend_marker_afterÚoutput_functionc          	     óÞ  € ^ RI Hp Rp\        W4      '       d   V .p ^ R\        V 4      3.p^ pVf   \        P
                  pV'       Ed#   VR,          w  rxp	V	 F°  p
V^,          pVf   R\        V4      ,          p\        W£4      '       df   VP                  WjP                  P                  \        V
P                  4       4      34       V! WJP                  P                  ,           4       Rp K¯  V! V\        V
4      ,           4       K²  	  VP                  4        RpVf   Kã  Wq,           V8:  g   Kò  V'       g   Kü  Vf   R\        V4      ,          pV! VR,           V,           4       EK+  R# )aN  Debugging aid, which can dump a Deb822Element or a list of tokens/elements

:param ast_tree: Either a Deb822Element or an iterable Deb822Token/Deb822Element entries
  (both types may be mixed in the same iterable, which enable it to dump the
  ast tree at different stages of parse_deb822_file method)
:param end_marker_after: The dump will add "end of element" markers if a
  given element spans at least this many tokens/elements. Can be disabled
  with by passing None as value. Use 0 for unconditionally marking all
  elements (note that tokens never get an "end of element" marker as they
  are not an elements).
:param output_function: Callable that receives a single str argument and is responsible
  for "displaying" that line. The callable may be invoked multiple times (one per line
  of output).  Defaults to logging.info if omitted.

r   NÚ z  z# <-- END OF éÿÿÿÿ)Údebian._deb822_repro.parsingr   Ú
isinstanceÚiterÚloggingÚinfoÚlenÚappendÚ	__class__Ú__name__Ú
iter_partsÚstrÚpop)Úast_treer   r   r   ÚprefixÚstackÚ
current_noÚstart_noÚnameÚcurrent_iterÚcurrents   &$$        Ú</usr/lib/python3/dist-packages/debian/_deb822_repro/_util.pyÚ	print_astr/      s4  € õ. ;Ø€FÜ�(×*Ò*Ø�:ˆØ�”T˜(“^Ð$Ð%€EØ€JØÒÜ!Ÿ,™,ˆß
ˆ%Ø',¨R¥yÑ$ˆ˜Û#ˆGØ˜!�OˆJØŠ~Ø¤ E£
Õ*�Ü˜'×1Ò1Ø—‘˜j×*;Ñ*;×*DÑ*DÄdÈ7×K]ÑK]ÓK_ÓF`ÐaÔbÙ ×):Ñ):×)CÑ)CÕ CÔDØ�ÚÙ˜F¤S¨£\Õ1Ö2ñ $ð �I‰IŒKØˆFØÔ+°Õ0KÈzÖ0Y×^bÑ^bØ’>Ø!¤C¨£JÕ.�FÙ ¨Õ 8¸4Õ ?×@ñ' ó    Úconstructorc               ó>   a a€ Vf   \        RV4      oMVoVV 3R lpV# )z­Combines runs of one type into another type

This is primarily useful for transforming tokens (e.g, Comment tokens) into
the relevant element (such as the Comment element).
zCallable[[List[TE]], R]c              3   óö   <"  € . pV  FW  p\        VS4      '       d   VP                  V4       K(  V'       d$   S! \        V4      4      x € VP                  4        Vx € KY  	  V'       d   S! V4      x € R # R # 5i©N)r   r    ÚlistÚclear)Útoken_streamÚtokensÚtokenÚ_constructorÚsource_classs   &  €€r.   Ú_implÚ'combine_into_replacement.<locals>._impl_   sf   øé € àˆÛ!ˆEÜ˜% ×.Ò.Ø—‘˜eÔ$ÙçÙ"¤4¨£<Ó0Ò0Ø—‘”ØŒKñ "÷ Ù˜vÓ&Ô&ñ ùs   ƒ4A9¸2A9Á+A9)r   )r;   Úreplacement_classr1   r<   r:   s   f&$ @r.   Úcombine_into_replacementr?   N   s,   ù€ ð ÒÜÐ5Ð7HÓI‰ð #ˆö'ð  €Lr0   c                   ó   € ] tR t^wtRtR# )Ú_bufferingIterator_Base© N)r"   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__rB   r0   r.   rA   rA   w   s   † Ûr0   rA   c                   ó`   a € ] tR t^{t o R tR tR tR tR tRR lt	R t
R	 tR
 tR tRtV tR# )ÚBufferingIteratorc                óh   € \        V4      V n        \        P                  ! 4       V n        R V n        R# )FN)r   Ú_streamÚcollectionsÚdequeÚ_bufferÚ_expired)ÚselfÚstreams   &&r.   Ú__init__ÚBufferingIterator.__init__}   s$   € ä˜F“|ˆŒÜ"×(Ò(Ó*ˆŒØˆŽr0   c                ó´   € V P                   '       d   V P                   P                  4       # V P                  '       d   \        h\	        V P
                  4      # r4   )rM   ÚpopleftrN   ÚStopIterationÚnextrJ   ©rO   s   &r.   Ú__next__ÚBufferingIterator.__next__ƒ   s<   € à�<�<ˆ<Ø—<‘<×'Ñ'Ó)Ð)Ø�=�=ˆ=ÜÐÜ�D—L‘LÓ!Ð!r0   c              #  óÂ   "  € V P                   pV'       g   V P                  ^4      '       d0   V^ ,          pV! V4      '       d   VP                  4        Vx € KL  R# R# 5i)zVVariant of itertools.takewhile except it does not discard the first non-matching tokenN)rM   Ú_fill_bufferrT   )rO   Ú	predicateÚbufferÚvs   &&  r.   Ú	takewhileÚBufferingIterator.takewhile‹   sL   é € ð —‘ˆß˜×)Ñ)¨!×,Ò,Ø�q•	ˆAÙ˜�|Š|Ø—‘Ô Ø”áñ -ùs   ‚A—A®AÁAc                ó  € V P                  V4       V P                  p\        V4      V8X  d   \        V4      pVP	                  4        V# . pV'       d3   V'       d+   VP                  VP                  4       4       V^,          pK:  V# ©é   )r[   rM   r   r5   r6   r    rT   )rO   Úcountr]   Úrets   &&  r.   Úconsume_manyÚBufferingIterator.consume_many—   sk   € à×Ñ˜%Ô Ø—‘ˆÜˆv‹;˜%ÔÜ�v“,ˆCØ�L‰LŒNð ˆ
ð	 ˆCßŸUØ—
‘
˜6Ÿ>™>Ó+Ô,Ø˜•
’Øˆ
r0   c                ó,   € \        V P                  4      # r4   )r5   rM   rW   s   &r.   Úpeek_bufferÚBufferingIterator.peek_buffer¥   s   € ä�D—L‘LÓ!Ð!r0   Nc                óþ   € V P                   p^ pVe   WB8  de   V\        V4      8¼  d+   V P                  V^,           4       V\        V4      8¼  d   R# W4,          pV! V4      '       d
   V^,           # V^,          pKn  R# )r   N)rM   r   r[   )rO   r\   Úlimitr]   Úir^   s   &&&   r.   Ú	peek_findÚBufferingIterator.peek_find©   sm   € ð
 —‘ˆØˆØŠm˜qœyØ”C˜“KÔØ×!Ñ! ! a¥%Ô(Øœ˜F›Ô#ÙØ•	ˆAÙ˜�|Š|Ø˜1•u�Ø��FŠAÙr0   c                ó  € V P                   '       gL   \        V P                  4      V8  d2    V P                  P                  \	        V P
                  4      4       KK  \        V P                  4      #   \         d    R T n          K*  i ; i)T)rN   r   rM   r    rV   rJ   rU   Úbool)rO   Únumbers   &&r.   r[   ÚBufferingIterator._fill_buffer»   sh   € à�}�}ˆ}Ü�d—l‘lÓ# fÔ,ðØ—L‘L×'Ñ'¬¨T¯\©\Ó(:Ö;ô �D—L‘LÓ!Ð!øô %ô Ø$(�D”MÚðús   ®.A3 Á3B	ÂB	c                ó$   € V P                  ^4      # rb   )Úpeek_atrW   s   &r.   ÚpeekÚBufferingIterator.peekÆ   s   € à�|‰|˜A‹Ðr0   c                ó�   € V P                  V4       \        V P                  4      V8¼  d   V P                  V^,
          ,          # R# )rc   N)r[   r   rM   )rO   Útokens_aheads   &&r.   ru   ÚBufferingIterator.peek_atÊ   s:   € à×Ñ˜,Ô'Ü14°T·\±\Ó1BÀlÔ1Rˆt�|‰|˜L¨1Õ,Õ-Ð\ÐX\Ð\r0   c                óô   € V P                  V4       V P                  p\        V4      V8X  d   \        V4      pV# V'       d4   . pV F(  pVP	                  V4       V^,          pV'       d   K'   V# 	   V# . pV# rb   )r[   rM   r   r5   r    )rO   rr   r]   re   Úts   &&   r.   Ú	peek_manyÚBufferingIterator.peek_manyÏ   s   € à×Ñ˜&Ô!Ø—‘ˆÜˆv‹;˜&Ô Ü�v“,ˆCð ˆ
÷ ØˆCÛ�Ø—
‘
˜1”Ø˜!•�ß‘vØð ˆ
ò ð ˆ
ð ˆCØˆ
r0   )rM   rN   rJ   r4   )r"   rC   rD   rE   rQ   rX   r_   rf   ri   rn   r[   rv   ru   r}   rF   Ú__classdictcell__)Ú__classdict__s   @r.   rH   rH   {   s=   ø‡ € òò"ò
òò"ôò$	"òò]÷
ð r0   rH   c              #  ó  "  € Vf   \        V 4      p^ pV FG  p \        RV4      P                  4       pV F  pV\        VP                  4      ,          pK!  	  Vx € KI  	  W28w  dk   W28  d3   \
        P                  ! R4      P                  W2V R7      p\        V4      h\
        P                  ! R4      P                  W2V R7      p\        V4      hR#   \         d,    \        RT4      pT\        TP                  4      ,          p L¯i ; i5i)zOFlatten a parser's output into tokens and verify it covers the entire line/textNr   r   z¯            Value parser did not fully cover the entire line with tokens (
            missing range {covered}..{content_len}).  Occurred when parsing "{content}"
            )ÚcoveredÚcontent_lenÚcontentzî                    Value parser emitted tokens for more text than was present?  Should have
                     emitted {content_len} characters, got {covered}. Occurred when parsing
                     "{content}"
                    )	r   r   Úiter_tokensÚtextÚAttributeErrorÚtextwrapÚdedentÚformatÚ
ValueError)r„   rP   rƒ   r‚   Útoken_or_elementr8   r9   Úmsgs   &&&     r.   Úlen_check_iteratorrŽ   á   s  é € ð ÒÜ˜'“lˆà€GÛ"Ðð	+Ü˜/Ð+;Ó<×HÑHÓJˆFó
  �Øœ3˜uŸz™z›?Õ*’ñ  àÔñ #ð ÔØÔ Ü—/’/ð #ó ÷ ‘ È'�ÓRð ô ˜S“/Ð!Ü�oŠoð ó ÷  ™¨ÐRY˜ÓZð	 	ô
 ˜‹oÐñ øô ô 	'Ü˜Ð(8Ó9ˆEØ”s˜5Ÿ:™:“Õ&ŠGð	'üs(   ‚DšC´BDÃ3D	ÄDÄD	Ä	D)é   é	   r4   )#rK   Úcollections.abcr   Úsysrˆ   Úabcr   Útypingr   r   r   r   r   r	   r
   r   r   r   Údebian._utilr   Údebian._deb822_repro.typesr   r   r   Ú_combine_parts_ret_typer   r   Údebian._deb822_repro.tokensr   r/   r?   Úversion_inforA   rH   rŽ   rB   r0   r.   Ú<module>rš      s  ðÛ Û Û Û 
Û Ý ÷÷ ÷ õ ß <Ñ <à"Øˆe�N BÐ&Õ'Õ(Ð)ØˆU�> 1Ð$Õ%Õ&ð'õÐ ÷
 Ý:Ý7ð2Aà ð2Að #ô2Aðj!ð *.ô!ðH ×Ñ�vÔ§Ø)Ÿo™o×6Ñ6°qÕ9Ñô +§/¡/×":Ñ":¸GÀA½JÈô ôcÐ/°Õ2°G¸AµJô cöL"r0   