
    &=d                        d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
mZ 	 d dlZn# e$ r dZY nw xY wd dlmZmZ d dlmZmZmZmZmZ d dlmZ d dlZe j                                        ZdZ	  ej        d                                          \  Z Z! e"e           pd e"e!          pd	cZ#Z$n# e%$ r d
\  Z#Z$Y nw xY wd Z&e&Z'e&Z(d Z)d,dZ*e- ej+        d           	  ej,        d           n# e%$ r Y nw xY wd Z- G d de.          Z/d-dZ0d.dZ1d/dZ2d Z3e3Z4	 	 d0dZ5d Z6d1dZ7d Z8d2dZ9d-dZ:	 	 d3d Z;	 	 d4d"Z<	 	 	 	 d5d#Z=d$ Z>d% Z?d& Z@d/d'ZAd6d)ZBd* ZCd+ ZDdS )7    N)suppress)debbugs	hiermatch)NoReport	NoPackageNoBugsQuertBTSErrorInvalidRegex)launch_browserzus-asciiz	stty size   O   )r   r   c                     t           sd S |r| |z  } t          j                            |            t          j                                         d S N)ISATTYsysstderrwriteflush)messageargss     6/usr/lib/python3/dist-packages/reportbug/ui/text_ui.pyewriter   8   sP      !D.JWJ    c                     	 t          j                    }n$# t          $ r t          j        d           Y nw xY wt          j        |           S )N/)osgetcwdOSErrorchdirsystem)cmdline_s     r   r    r    G   sP    IKK   
9Ws    77 c                     |s
t           dz
  }|rd|z  }nd}d                    |                                           } | s|dz   S t          j        | |||          }|                    d          r|S |dz   S )z.Wrapper for textwrap.fill to the existing API.    r#   
)widthinitial_indentsubsequent_indent)columnsjoinsplittextwrapfillendswith)text	starttextindentlinelensioutputs         r   indent_wrap_textr7   O   s     A+ 6\88DJJLL!!D  4]4wy-/1 1 1Ft D=r   ztab: completer&   c	           
      0   	 t          |          }||vr(d|cxk    rt          |          k    rn n||dz
           }t          j                            | t          j        |||||          ||           d S # t          $ r t          d|           Y d S w xY w)Nr%   Invalid report number: %s
)	intlen	reportbugutilslaunch_mbox_readerr   get_report_url
ValueErrorr   )	mbox_reader_cmdbtsbugsnumbermirrorsarchivedmbox
http_proxytimeouts	            r   _launch_mbox_readerrJ   n   s    	V!v":":":":T":":":":":&1*%F**?+2+A#vwX`bf+g+g+5w	@ 	@ 	@ 	@ 	@    ,	 	 	 	 	 	s   A3A7 7BBc                       e Zd ZddZd ZdS )our_completerNc                 j    d | _         |r)t          t          t          |                    | _         d S d S r   )completionstuplemapstr)selfrN   s     r   __init__zour_completer.__init__}   s<     	<$Sk%:%:;;D	< 	<r   c                 v    | j         sd S fd| j         D             }|t          |          k     r||         S d S )Nc                 >    g | ]}|                               |S  
startswith).0xr1   s     r   
<listcomp>z*our_completer.complete.<locals>.<listcomp>   s*    FFF!1<<3E3EFAFFFr   )rN   r;   )rR   r1   imatchings    `  r   completezour_completer.complete   sO     	4FFFFt/FFFs8}}A;4r   r   )__name__
__module____qualname__rS   r^   rV   r   r   rL   rL   |   s7        < < < <
    r   rL   c                    t           j                                        }|st           j                            |            t           j                                         t          r.|r|st          |          j        }|rt          j	        |           	 |rt          |           }nt                      }n$# t          $ r t          d           t          w xY wt          rt          j	        d            |                                S )Nz
User interrupt (^D).
)r   stdoutisattyr   r   r   readlinerL   r^   set_completerinputEOFErrorr   
SystemExitstrip)promptrN   	completeristtyrets        r   our_raw_inputro      s   JE !
   J . 	<y 	<%k22;I 	."9--- 	--CC''C   )***  %t$$$99;;s    B5 5!CFc           	         d}|D ]}|t           j        v r|} n|si }d|vr|dz   }|                                 } | d         dk    r
| d d         } |r"| dz   d                    |          z   dz   dz   }n@t	          | dz   d                    |          z   dz                                             dz   }t          ||          }	|r|	r$|	d         d	k    r|	d
d          }	|	r|	d         d	k    t          |t                    r-	 t          t          |	                    S # t          $ r Y nw xY w	 t          |	          }
|
|v rt          |
          S t          |          }|                                 dd                    t          t          |                    z   }n# t          t          f$ r Y nw xY w|	s|}	|	d         }	|	dk    rd|d<   |D ]x}	|	t           j        v rd}nd}||                    |	|                    |	                                d                    z  }t#          t	          |dz   d|	z  d                     yt%          | ||||          S |	                                |v s|	                                |v r|	                                S |rt#          t	          |                     nt#          d           t%          | ||||          S )Nr#   ? [|z]?r&   r   #r%   z(Only the following entries are allowed: , zDisplay this help.z
(default) zNo help for this option.r'   z%s -    zInvalid selection.
)stringascii_uppercaserstripr,   r7   rj   ro   
isinstancer:   rQ   r@   listsortrP   	TypeErrorgetlowerr   select_optionsupper)msgokhelpallow_numbersnowraperr_messageoptiondefaultlongmsgchrD   numsdescs                r   r   r      sG   K  V+++GE ,  
"}}#X
**,,C
2w#~~#2#h S*sxx||+d2S8"3:#<t#CDDJJLLsR	w	.	.B  	RUc\\ABBB  	RUc\\mS)) 	3r77||#   
R]**v;;&..DIIKKK"L"&))CTNN";";#<KK	*     	AB	Syy(S	 	C 	CBV+++#DHHR"((***D"F "F G G GD#D4K2qAABBBBc2t]FCCC
((**



b 0 0xxzz	 ',,----%&&&#r4???s+   D 
D,+D,0!F! AF! !F54F5Tc                 d    |rd}nd}t          | |||dd|          }|dk    rt          |dk    S )z"Return True for yes, False for no.YnqyNqzQuit.)ynq)r   r   r   )r   ri   )r   yeshelpnohelpr   r   r   ress          r   yes_nor      sV     
bf7"K"K &( ( (C
czz3Jr   c                     |r| |z  }n| }t           dz
  d                    fd|                                D                       }|                                dz   }t	          |           d S )Nr%   r'   c              3   D   K   | ]}t          j        |           V  dS ))r(   N)r.   r/   )rY   parr4   s     r   	<genexpr>zlong_message.<locals>.<genexpr>   s2      VVChmCw777VVVVVVr   )r+   r,   
splitlinesrz   r   )r1   r   mtextr4   s      @r   long_messager      sw     tkGIIVVVV5CSCSCUCUVVVVVELLNNT!E
5MMMMMr   c                 :   | rPt          |           dt          z  dz  k     r2|s0|r| d|d} t          | ||          p|}nZt          | ||          }nH| rt          t	          |                      |rt          d|z  ||          p|}nt          d||          }|S )N      rs   z]: z[%s]> z> )r;   r+   ro   r   r7   )rk   optionstitleempty_okforce_promptr   rl   responses           r   
get_stringr     s     ?3v;;Wq00,0 	A$*FFGGG4F$VWi@@KGHH$VWi@@HH 	-#F++,,, 	?$X%7)LLWPWHH$T7I>>HOr   c                     t          d           t          t          | dz                        g }	 t          dd                                          }|sn|                    |           <t          d           |S )Nr'   z+  Press ENTER on a blank line to continue.
r%   r#   T)r   )r   r7   r   rj   append)rk   rn   entrys      r   get_multiliner     s    
4LLL
F%SSTTUUU
C2D1117799 	

5	
 4LLLJr   c                 *    t          j         |           S r   )getpass)rk   s    r   get_passwordr   (  s    ?6"""r   c                 :   t           j                            |           } t           j                            |           } t	          j        | dz             }|sd S |t          |          k     r.||         }t           j                            |          r|dz   S |S d S )N*r   )r   path
expanduser
expandvarsglobr;   isdir)r1   r\   pathsr   s       r   FilenameCompleterr   ,  s    7d##D7d##DIdSj!!E t3u::~~a7== 	3;tr   c                 4    t          | |||t                    S )N)r   r   r   rl   )r   r   )rk   r   r   r   s       r   get_filenamer   <  s)    fE%1BD D D Dr   c           
      0    t          | |||||dd          S )NTF)r   orderextrasmultipler   )menu)r   r   rk   r   r   r   s         r   select_multipler   A  s*    WfEv/ / / /r   c
                    i }
|sg }nt          |          }|rt          |dz              t          t          | t                    dz              t	          |t
                    r|                                }|r}g }|D ]&}||v r |                    |||         f           ||= 't          |                                          }|	                                 |D ]}|                    |           |}n5t          |                                          }|	                                 |r|                    d           d}|dgz  }d |D             }||z   }t          t          t          t          t          |                              t          dz            }t          t          j        t          j        t          |          d	z                                 }d	}|D ][\  }}t          |||z   dz   d
|||||fz            }t          |           t          |          dk     rt          d           |d	z  }\t          |          dk    rt          d           |r|dz  }	 |r	|d|z  z   }n|}t%          ||          }|s|}	 t          |          }d	|cxk    rt          |          k    rn n||d	z
           d         }n# t&          t(          f$ r Y nw xY w||v s||k    r|r|r|dk    r!t          |
                                          S |dk    rt          |
          dk    rg S i }
n|
                    |          r|
|= nd	|
|<   t          dd                    t          |
                                                    z             t          |
          rd}nd}C|S |r|r|S |	r|sd S t          d           a)N

)r4   r'   )noner#   r   donec                     g | ]
}|d          S )r   rV   rY   rZ   s     r   r[   zmenu.<locals>.<listcomp>m  s    %%%qt%%%r   r   r%   z%*d %-*.*s  )r3   r2      z(one at a time) z[%s] r   z- selected: %s
rv   zInvalid entry.
)r|   r   r7   r+   r{   dictcopyr   itemsr}   minmaxrP   r;   r:   mathceillog10ro   r@   r~   keysr   r,   )r   r   rk   r   r   any_okr   r   r   r   selectedolistkeyr   allowedmaxlen_namedigitsr\   namer   r1   apromptr   nums                           r   r   r   F  s]   H f uv~
C111D8999'4   ,,.. 	E % %'>>LL#ws|!4555 7==??++GLLNNN! % %V$$$$GG7==??++GLLNNN |$$$6(%%W%%%GGc$s3001122GqLAAK4:c'llQ&6778899F	A  
dkF.BQ.F+9VQU`bf<g+gj j jtw<<!4LLL	Q
7||qt %$$,# 	w00GGG '22 	H	h--CC''''3w<<'''''"37+A.I& 	 	 	D	 w8w#6#68#6  v%%000''8}}))!	#%\\(++ + **)*HX&)DIId8==??6K6K,L,LLMMMx== %$GG$G 	h 	O 	h 	F!"""Y,#s   =K K$#K$noc
                    t           j        |         }
t          d| |
d                    	 t          j        | |||d||          }n# t          $ r d }Y nw xY w|st          d|            t
          |\  }}|j        s*|j        r#t          d           t          j	        d           d}d	}	 |rd
||j
        ||         fz  }nd|j
        d|d         }|szt          t                    5  t          j        dt          j        d          5 }|                    |           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d	}d}|dz   t#          |          k     rd|                                z   }|rd|z   }t'          d|dddddddddt)          t+          dt#          |          dz                                 }|dk    r|S |dk    rt,          |d k    r't/          t          j        || ||                     d!}n_|d"k    r;t2          j                            |	t          j        || ||d!          ||           d!}n|d#k    rn|d$k    r|dz  }n|dk    r|dz  }d S )%Nz5Retrieving report #%d from %s bug tracking system...
r   r%   )rE   	followupsrH   rF   zNo report available: #%s
z*Cannot retrieve bug's package, exiting...
rr   r   FzFollowup %d - %s

%szOriginal report - r   sensible-pagerignorestdinerrorsxOrbeqNpzWhat do you want to do now?zProvide extra information.z/Show other bug reports (return to bug listing).zShow next message (followup).z!Show previous message (followup).zRedisplay this message.z&Launch e-mail client to read full log.z$Launch web browser to read full log.I'm bored; quit please.)rZ   or   r   rebr   r   rZ   r   r   Tr   r   r   )r   SYSTEMSr   
get_report	Exceptionr   packagesourcer   exitsubjectr   BrokenPipeError
subprocessPopenPIPEcommunicater;   r   r   r|   ranger   r   r?   r<   r=   r>   )rD   r    rE   rH   rI   screen	queryonlyr   rF   rA   sysinfoinfobuginfomessagescurrent_message
skip_pagerr1   fdr   rZ   s                       r   show_reportr    s    of%G
C76?$ $ $!&'67,-*xY Y Y     +V444GX O 7> =>>>OJ0! 	Q+/7/H/J JDD	Q 4;???HQKKPD 	)/** ) )%&6joV^___ )ceNN4((() ) ) ) ) ) ) ) ) ) ) ) ) ) )) ) ) ) ) ) ) ) ) ) ) ) ) ) ) 
a3x==00GMMOO+G 	$GmG8'!=!R!@!D!:!I!G!:< < *.eAs8}}q7H.I.I)J)J	L 	L 	L 88N#XXN#XX713 3 4 4 4JJ#XXO../6/EffV]_gim/n/n/97D D D JJ#XX#XXq OO#XXq Oa0!b FsG   A AA,"ED0$E0D4	4E7D4	8EEEc                     t           j        |                             d          }|s(t          dt           j        |         d                    d S d}|	rd}t	          | t
                    r)t          dt           j        |         d         | |           nEt          dt           j        |         d         d                    d | D                       |           g }	 t          j        | ||||
|	||	          \  }}}nM# t          $ r@}d
t           j        |         d         dt          |          d}t          |          d }~ww xY w	 |s|t          t          g }|r.g }|D ]'}|d         D ]}|                    |j                   (|S |rD|D ]-}|d         D ]"}d|j        |j        fz  }t#          |           #.t%          j        d           |D ]}|d         }i |d         D ]$}d}|j        dk    rd}|j        ||j        <   %t+                                          |          }|                    |fd|D             f           |                    |           |}|s|t          t          |dk    rt          d|           nt          d|           t	          | t0                    rd | D             d         } d}	t3          ||||||||||| |	|          S # t          $ r t          d           t          w xY w)Nbtsrootz7%s bug tracking system has no web URL; bypassing query
r   r#   z	 (source)z'Querying %s BTS for reports on %s%s...
r&   c                 ,    g | ]}t          |          S rV   )rQ   r   s     r   r[   z$handle_bts_query.<locals>.<listcomp>  s    777!s1vv777r   )rE   versionr   rH   rF   zUnable to connect to z BTS (error: "z"); r%   z#%d  %sr   r   z  [RESOLVED])reversec                 N    g | ]!}d                      d| |                   "S )z	{:>8}  {}ru   )format)rY   kbugs_news     r   r[   z$handle_bts_query.<locals>.<listcomp>H  sJ     .E .E .E23 /:.@.@Q(ST+.V.V .E .E .Er   z%d bug report found:

z%d bug reports found:

c                 L    g | ]!}|                     d           |dd         "S )zsrc:rw   NrW   )rY   r   s     r   r[   z$handle_bts_query.<locals>.<listcomp>[  s1    FFFf1E1EFquFFFr   Tz No record of this package found.)r   r   r   r   r{   rQ   r   r,   get_reportsr   reprr	   r   r   r   bug_numr   printr   r   pendingsortedr   extendr|   browse_bugs)r   rB   rI   rE   rH   r   r   r   rF   r   r  rG   buglistrA   latest_firstrootsrcstrrC   count	hierarchyr   errmsghierarchy_newmboxbuglistr   bugr   	entry_newr   bugs_numbersr  s                                 @r   handle_bts_queryr!    s'    ?3##I..D Is#F+	- 	- 	-F '3 B?_S)&17F	D 	D 	D 	D 	?_S)&1XX77w77788&	B 	B 	B D$$+$7Wc7Gj8%E %E %E!yy  $ $ $ $BI/RUBVW]B^B^B^`def`g`g`g`ghF###$D 	  	K" 4 4 8 4 4C&&s{33334 	"   8  C#s{CK&@@C#JJJJ HQKKK 	& 	&EaIHQx E E;&(()D 36++tt(D%%!(--//<HHHL  ) .E .E .E .E7C.E .E .E "F G G GKK%%%% "	 	7 aZZ-u5555.666 gt$$ 	FFgFFFqIGF9eT3	"J"FO= = 	=    7888s,    C> >
E;EEAK, EK, ,!Lc                 
   	 t          j                    }n?# t           j        $ r-}t          |           t	          j        d           Y d }~nd }~ww xY wdx}}dx}}| d         }g }t          t          t          |                              }dt          |          z   dz   }|r|dz  }|dd         \  }}|                    d          r|d d         }|                    d          t          |          r|d t          dz
           }|t          dz
  d          }t          |          }d}|dk    rd	}|r|
                    d
|||fz             n|
                    |dz              |D ]9}|dz   }|dz   }|
                    |||d t          |z
  dz
           fz             :|| d         k    s.|t          t          | |dz            d                   z
  dz
  k    rd}||k    rd	}d}|rd}d|||fz  }|dz   } |r|dz   } |t          t          d|dz                       z   }!dddddddddd	}"|r|"d         d d         dz   |"d<   	 |D ]!}#t          j                            |#           "t!          | ||"|!          }$|$dk    rg }nb|$d k    r(|rt#          d!|
z             nt#          d"|
z             p|$d#k    rw|$d$k    rt$          |$dk    rd S |$d%k    r|rd S t          |          dk    rd&}%nt'          d'|!          }%|%r$|%d         d(k    r|%dd          }%|%r|%d         d(k    |%rx	 t)          |%          }%|%|vr(d|%cxk    rt          |          k    rn n||%dz
           }%t+          j        |%|          d         S # t.          $ r t1          d)|%           Y nJw xY wt$          |$d*k    r5t3          | |||||||	|
|
  
        }&t5          |&t                    r|&d+v r|&S |$d,k    r(t'          d-|!          }%t7          ||||%|d.d/||	  	         n|$d0k    s|$d1k    r't          |          dk    rd&}%nt'          d2|!          }%n|$}%|%r$|%d         d(k    r|%dd          }%|%r|%d         d(k    |%ry	 t)          |%          }%|%|vr(d|%cxk    rt          |          k    rn n||%dz
           }%t9          |%|||||||	|3	  	        }'|'r|'S n # t.          $ r t1          d)|%           Y nw xY w|dz   }d}t          |          || d         k    rd S |dz   }| |         }|r|
                    d           |dz   }|d S d S )4Nr%   r     %d) %s
r   :rr   sr#   z %s: %d remain%s
r'   r    (s to skip rest)	yNbmrqsfeNbmrqfe(%d-%d/%d) !Is the bug you found listed aboveWhat would you like to do next;Problem already reported; optionally add extra information..Problem not listed above; possibly check more.-Open the complete bugs list in a web browser.`Get more information about a bug (you can also enter a number
     without selecting "m" first).Redisplay the last bugs shown.r   7Skip remaining problems; file a new report immediately.'Open the report using an e-mail client.z Filter bug list using a pattern.)	r   r   r   mr   r   r&  r   fr    (skip to Next page).r   r   zhttps://bugs.debian.org/src:%shttps://bugs.debian.org/%sr   r   r   1[Enter the number of the bug report you want to give more info on,
or press ENTER to exit: #ru   r9   r5  	FilterEndTopr   <Please enter the number of the bug you would like to view: #r   Tr4  r\   APlease enter the number of the bug you would like more info on: #)r   r   r   rA   )localegetpreferredencodingErrorr  r   r   r;   rQ   r0   rowsr   r+   r|   r   r   r   r   r   r   ro   r:   r   r   r@   r   search_bugsr{   rJ   r  )(r  r  rC   rB   r   rE   rH   rI   r   r   r   r   rA   r"   r   endcountcatcountscount
startcountcategorylastpager   linefmtcatnamereportstheseremainrpluralreportskipmsgr   rstrpstrr   helptextlinerZ   rD   retvalr   s(                                           r   r  r  g  s   '))<   c


 HxFZ|HHSYY  Fc&kk!I-G
 Z !#AaC=s## 	#crclG s## 	# 'll I	ITAXI&EdQhii(G\\FG{{ 0 4!(&' :!; < < < < $/// U U!#a<8V<QWv=MPQ=Q<Q5R*S STTTT9R=((4#i1&=a&@"A"AAAEFF-u$$ G% ('G$
He'DDAA C"BBDeAuqy&9&9!:!::VIH>92RB;
= 
=  Q$,SM#2#$69P$PHSMU/ ( / /
((....&tWh5<> > >ACxx#%c! S*+Kg+UVVVV*+G'+QRRR c c&cc$ #"Ft99>>%(FF%2!<=D&F &FF % 0c)9)9%+ABBZF % 0c)9)9! 
+/),V#)#5#5!v:R:R:R:RT:R:R:R:R:R-1&1*-=F'.'9&''J'J1'M M#- / / / &'D'-!/ !/ !/ !/ !// #+Nc!,YYQ[]dflns-4o"G "G%fc22 *vAU7U7U$#)Mc!./mov!w!w+OS$,3T4,35 5 5 5 88qCxx"4yyA~~),)6 8XY`*b *b &'F$ 0c)9)9%+ABBZF % 0c)9)9 " //),V#)#5#5!v:R:R:R:RT:R:R:R:R:R-1&1*-=F&1&#w2<g<E9?8=BQ'S 'S 'S $' !/+.J!/#- / / / &'D'-!/ !/ !/ !/ !//gU/n &\
S 'll I	Z y}$$Ea<X& 	 OOD!!!aZFu  Z  Z  Z  Z  Z s:    A#AA7AN N+*N+<AS S10S1c           	      2   d | D             }|rt          |          }ndS g }t          j        d          }| pg D ]Y}|d         D ]N}|                    |          }|r5|                    t          |                    d                               OZ||fS )z.Find out bug count and bug # in the hierarchy.c                 8    g | ]}t          |d                    S )r%   )r;   )rY   r\   s     r   r[   z"proc_hierarchy.<locals>.<listcomp>  s"    ,,,Qs1Q4yy,,,r   )r   r   z\ *\#(\d+)[ :]r%   )sumrecompilematchr   r:   group)r  lenlistr  rC   expr   r  r\  s           r   proc_hierarchyr`    s     -,),,,G Gt D
*&
'
'Cb 1 18 	1 	1CIIcNNE 1CA//000	1 $;r   c
                 z   	 	 t          j                    }
n?# t           j        $ r-}t          |           t	          j        d           Y d}~nd}~ww xY wt          d          }|sdS 	 t          j        | |          }n # t          $ r t          d           Y dS w xY wt          |          \  }}|st          d           dS dx}}dx}}|d         }g }t          t          t          |                              }dt          |          z   d	z   }|r|dz   }|dd
         \  }}|                    d          r|dd         }|                    d          t          |          }t          |          r|dt          d
z
           }|t          d
z
  d         }t          |          }dx}}|dk    rd}|dk    rd}|r|                    d|||||fz             n|                    d|||fz             |D ]9}|dz   }|dz   }|                    |||dt           |z
  dz
           fz             :||d         k    s.|t          t          ||dz            d                   z
  dz
  k    rd} ||k    rd} d}!|rd}!d|||fz  }"|"dz   }#|r|"dz   }#|t#          t%          d|dz                       z   }$ddddddddd d!d"d#}%| r|%d$         dd         d%z   |%d$<   	 |D ]!}&t          j                            |&           "t+          |#|!|%|$&          }'|'d$k    rg }nG|'d'k    rt-          d(|z             n+|'d)k    rc|'d*k    rt.          |'dk    rdS |'d+k    r|rdS t          |          dk    rd,}(nt          d-|$          }(|(r$|(d         d.k    r|(dd         }(|(r|(d         d.k    |(rx	 t1          |(          }(|(|vr(d|(cxk    rt          |          k    rn n||(dz
           }(t3          j        |(|          d         S # t6          $ r t9          d/|(           Y nCw xY wt.          |'d0k    r5t;          ||||||||||	
  
        })t=          |)t                    r|)d1v r|)S |'d2k    rdS |'d3k    rd4S |'d5k    r(t          d6|$          }(t?          |	|||(|d7d8||	  	         n|'d9k    s|'d:k    rt          d;|$          }(n|'}(|(r$|(d         d.k    r|(dd         }(|(r|(d         d.k    |(rx	 t1          |(          }(|(|vr(d|(cxk    rt          |          k    rn n||(dz
           }(tA          |(|||||||<          }*|*r|*S n # t6          $ r t9          d/|(           Y nw xY w|dz   }d}t          |          ||d         k    rn,|dz  }||         }|r|                    d=           |dz  }|dS )>z(Search for the bug list using a pattern.r%   NzXEnter the search pattern (a Perl-compatible regular expression)
or press ENTER to exit: r;  z4Invalid regular expression, press ENTER to continue.z(No match found, press ENTER to continue.r   r#  r$  r   r%  rr   r&  r#   z %s: %d report%s (%d remain%s)
z %s: %d report%s
r   r'  yNbmrqsfute	Nmbrqfuter*  r+  r,  r-  r.  r/  r0  r1  r   r2  z)Filter (search) bug list using a pattern.zUp one level of filter.r3  z)Top of the bug list (remove all filters).)r   r   r   r4  r   r   r&  r5  ur   tr   r6  r   r   r7  r   r   r   r8  r9  ru   r9   r5  r:  rd  re  r<  r   r=  r   Tr4  r\   r>  )r   r   r   r'   )!r?  r@  rA  r  r   r   ro   r   matched_hierarchyr
   r`  r;   rQ   r0   rB  r   r+   r|   r   r   r   r   r   r   r:   r   r   r@   r   rC  r{   rJ   r  )+hierarchyfullrB   r   rE   rH   rI   r   r   r   rA   r"   r   patternr  r  rC   rD  rE  rF  rG  rH  rI  r   rJ  rK  rL  totalrM  rN  tpluralrO  rP  rQ  r   rR  rS  r   rT  rU  rZ   rD   rV  r   s+                                              r   rC  rC  &  sM    B'))<   c


  7 8 8G {/wGG		   LMMM{{ !++KE4 @AAA{HxFZ|HHSYY  Fc&kk!I-G  _!#AaC=s## 	#crclG s## 	#G'll M	ITAXI&EdQhii(G\\F ##Ggzz{{ ; B!(%&' J!K L L L L  4!(% 9!: ; ; ;   U U!#a<8V<QWv=MPQ=Q<Q5R*S STTTT9R=((4#i1&=a&@"A"AAAEFF-u$$ G' *)G$
He'DDAA C"BBDeAuqy&9&9!:!::VIH>92RD2BDF F  Q$,SM#2#$69P$PHSMTN ( / /
((....&tWh5<> > >ACxx#%c&'Cg'MNNNNc c&cc$ #"Ft99>>%(FF%2!<=D&F &FF % 0c)9)9%+ABBZF % 0c)9)9! 
+/),V#)#5#5!v:R:R:R:RT:R:R:R:R:R-1&1*-=F'.'9&''J'J1'M M#- / / / &'D'-!/ !/ !/ !/ !// #+Nc!,YYQ[]dfl-2G_"N "N%fc22 *vAU7U7U$#)Mc*{c$uc!. 0OPW"Y "Y+OS$,3T4WV V V V 88qCxx%2!A '&) &)FF
 &'F$ 0c)9)9%+ABBZF % 0c)9)9 " NN),V#)#5#5!v:R:R:R:RT:R:R:R:R:R-1&1*-=F&1&#w2<g<E9?8=	'? '? '?
 $' !/+.J!/#- N N N &'Df M M M M MNgTNl &\
[ 'll M	b y}$$AX& 	OOD!!!aKF  _@ ;sL    A#AA*B   BB3AP	 	P'&P'2AU	 	U&%U&c                 p   |st          |            d S |r| dz  } t          j                            dd          }t	          t
                    5  t          j        |t          j        d          5 }|	                    |            d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nz[
(You may need to press 'q' to exit your pager and continue using
reportbug at this point.)PAGERr   r   r   )
r   r   environr   r   r   r   r   r   r   )r1   	use_pagerpresubjpagerr   s        r   display_reportrq    s6    pt	 pooJNN7$455E	'		    e:?8LLL 	 PQMM$	  	  	  	  	  	  	  	  	  	  	  	  	  	  	                                    s6   "B+1BB+B	B+B	B++B/2B/utf-8c                    |st          d           | dfS t          j                            |                                d                   }d}t          |d          5 }t          |          D ]\  }}|dk    r|s|dz   }	 d d d            n# 1 swxY w Y   d}	d|v rd	}	|r-|d
v rd|z  }	n#|dv sd|v rd|z  }	n|dv rd|z  }	n|dk    rd|z  }	d|v s|dk    rt          d|           nt          d|           t          j        |d|	d|d          }
|
rt          d||
           t          j                            |          s$t          d|           t          j
        d           d|v rdS t          |d          5 }|                                }d d d            n# 1 swxY w Y   || k    rt          d           ||| k    fS )NzNo editor found!
r   backslashreplace)r   r'   r   r#   vimz-f )vinviru  elvisgvimkvimz-c :%d)z
elvis-tiny	gnuclienteepiconanozileemacsz+%d)jedxjedz-g %dkatez	--line %d&zASpawning %s in background; please press Enter when done editing.
zSpawning %s...
r&   z ''z)Warning: possible error exit from %s: %d
zBug report file %s removed!r%   )Nr%   z$No changes were made in the editor.
)r   r   r   basenamer-   open	enumerater    existsr   r   read)r   filenameeditorcharsetednameourliner5  linenorU  optsresult
newmessages               r   spawn_editorr    s    #$$$|WfllnnQ/00F G	h1	2	2	2 %a'll 	% 	%NVTt||G| 1*	%% % % % % % % % % % % % % % %
 D 	)BBBg%DDQQQF""7?DD&&W$DDv(D
f}}&(( #	% 	% 	% 	% 	!6***YvvvtttXXX>??F M;VVLLL7>>(## ,h777
f}}y	h1	2	2	2 aVVXX
               W6777
g-..s$    #BBBF((F,/F,c                      dS )NTrV   rV   r   r   
initializer  4  s    4r   c                  >    t           j                                        S r   )r   r   rd   rV   r   r   	can_inputr  8  s    9r   )r#   r   N)NNN)NF)TF)NNFFr#   Nr   )NFr#   )NNFNNFF)NFr#   r   N)Nr#   Fr#   Nr   FNFNNF)rr  )Er   r   r   rZ  r   rx   r   r   r.   r?  
contextlibr   re   ImportErrorr<   r   r   reportbug.exceptionsr   r   r   r	   r
   reportbug.urlutilsr   reportbug.utilsr   rd   r   r  	getoutputr-   r   cr:   rB  r+   r   r   log_messagedisplay_failurer    r7   parse_and_bindset_completer_delimsrJ   objectrL   ro   r   r   r   final_messager   r   r   r   r   r   r   r  r!  r  r`  rC  rq  r  r  r  rV   r   r   <module>r     sO  , 


 				     				            OOOO   HHH ) ( ( ( ( ( ( (              . - - - - -    					
:,,2244DAqCFFLb##a&&,BMD''   MD'''        , HO,,,%%c****         F   "   2A@ A@ A@ A@H   
 
 
  OT%)   &
 
 
# # # #   D D D D
/ / / /
 AF;@h h h hZ JL/3L L L L^ FHFJEI8=c c c cLh  h  h V  (E E EP
  
  
  
 6/ 6/ 6/ 6/r      s1   5 ??>A B? ?
CC0D D	D	