Ë
    Õ+fv  ã                  óT  — d dl m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
mZmZ  G d„ de«      Z G d„ de«      Zd	\  ZZZZ G d
„ d«      Z G d„ de«      Zdej,                  v rej,                  d   dk7  rdZndZddœdd„Zedk(  r™ ed¬«        e«       Zej7                  ed«       ej9                  «        ej;                  d«      Zej?                  d«      Z ejC                  «         e"ejF                  «        e"ejH                  «        e"e«        e"e «       yy)é    )ÚannotationsN)ÚTracebackType)ÚIOÚProtocolc                  ó   — e Zd Zdd„Zy)ÚCommandc                 ó   — y ©N© )ÚselfÚparamss     ú)/usr/lib/python3/dist-packages/debconf.pyÚ__call__zCommand.__call__'   s   € Øó    N)r   ú	str | intÚreturnÚstr)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   &   s   „ ôr   r   c                  ó   — e Zd Zy)ÚDebconfErrorN)r   r   r   r   r   r   r   r   +   s   „ Ør   r   )ÚlowÚmediumÚhighÚcriticalc                  óV  — e Zd ZU dZded<   ded<   ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   	 	 	 	 d"	 	 	 	 	 	 	 	 	 d#d„Zd$d„Zd%d„Zd&d„Zd'd„Z	d(d„Z
d)d„Zd*d„Zd+d „Z	 	 	 	 	 	 	 	 d,d!„Zy)-ÚDebconfaT  A class that speaks the debconf protocol.

    The simplest way to use this is as a context manager:

        import debconf

        with debconf.Debconf(run_frontend=True) as db:
            print(db.get('debconf/frontend'))

    Note that this will send the STOP command on exiting the context
    manager, so you shouldn't expect to be able to use the same frontend
    again after this.  If you need to do that, then you should instantiate
    the class directly instead:

        import debconf

        db = debconf.Debconf(run_frontend=True)
        print(db.get('debconf/frontend'))
    r   Ú
beginblockÚcapbÚendblockÚexistÚfsetÚgetÚgoÚinfoÚinputÚprogressÚpurgeÚregisterÚresetÚsetÚsettitleÚsubstÚtitleÚ
unregisterÚversion_ÚvisibleNc                ó   — dj                  «       D ]  }| j                  |«       Œ |xs t        j                  | _        |xs t        j
                  | _        t        j                  t        _        |r
t        «        | j                  |«       y )Nzšcapb set reset title input beginblock endblock go get register unregister subst fset fget visible purge metaget exist version_ settitle info progress data)
ÚsplitÚ
setCommandÚsysÚstdinÚreadÚstdoutÚwriteÚstderrÚrunFrontEndÚsetUp)r   r/   r8   r:   Úrun_frontendÚcommands         r   Ú__init__zDebconf.__init__\   sk   € ð"÷ ‰%‹'ò	%ˆGð �O‰O˜GÕ$ð	%ð Ò%œCŸI™IˆŒ	ØÒ(œcŸj™jˆŒ
Ü—Z‘ZŒŒ
ÙÜŒMØ�
‰
�5Õr   c                óô   — | j                  d«      | _        | j                  d d dk7  rt        dd| j                  z  «      ‚| j                  «       j	                  «       | _        |r| j                  |«       y y )Né   z2.é   zwrong version: %s)r1   Úversionr   r    r4   Úcapabilitiesr/   )r   r/   s     r   r=   zDebconf.setUpq   sg   € Ø—}‘} QÓ'ˆŒØ�<‰<˜˜Ð˜tÒ#Ü˜sÐ$7¸$¿,¹,Ñ$FÓGÐGØ ŸI™I›K×-Ñ-Ó/ˆÔÙØ�J‰J�uÕð r   c                ó*   ‡ ‡— t        ‰ ‰ˆˆ fd„«       y )Nc                 ó0   •—  ‰j                   ‰g| ¢­i |¤ŽS r
   )r?   )ÚargsÚkwr?   r   s     €€r   ú<lambda>z$Debconf.setCommand.<locals>.<lambda>}   s   ø€   §¡¨WÐ B°tÒ B¸rÑ B€ r   )Úsetattr)r   r?   s   ``r   r5   zDebconf.setCommandy   s   ù€ ÜØØÜBõ	
r   c                óê  — |dk(  rd}|j                  «       }| j                  j                  dj                  |dj                  t	        t
        |«      «      «      «       | j                  j                  «        	 	 | j                  j                  «       j                  d«      }	 d|v r|j                  dd«      \  }}n|d}}t        |«      }|dk(  r|S |dk(  rZd}t        j                  d	|«      D ]=  }	|	j!                  d
«      r%t#        |	«      dk(  r|	d   dk(  r|dz  }Œ0||	d   z  }Œ9||	z  }Œ? |S t%        ||«      ‚# t        $ r(}|j                  t        j                  k(  rY d }~Œò‚ d }~ww xY w)Nr1   rD   z{} {}
ú ú
é   Ú r   z(\\.)ú\rB   Ún)Úupperr:   ÚformatÚjoinÚmapr   Úflushr8   ÚreadlineÚrstripÚOSErrorÚerrnoÚEINTRr4   ÚintÚreÚ
startswithÚlenr   )
r   r?   r   ÚrespÚeÚstatus_ÚdataÚstatusÚ	unescapedÚchunks
             r   r?   zDebconf.command€   sd  € Ø�jÒ ØˆGØ—-‘-“/ˆØ�
‰
×Ñ˜×)Ñ)¨'°3·8±8¼CÄÀVÓ<LÓ3MÓNÔOØ�
‰
×ÑÔàðØ—y‘y×)Ñ)Ó+×2Ñ2°4Ó8�Øð �$‰;Ø ŸJ™J s¨AÓ.‰MˆG‘Tà  "�TˆGÜ�W“ˆØ�QŠ;ØˆKØ�qŠ[ØˆIÜŸ™ (¨DÓ1ò '�Ø×#Ñ# DÔ)¬c°%«j¸AªoØ˜Q‘x 3’Ø! TÑ)™	à! U¨1¡XÑ-™	à Ñ&‘Ið'ð Ðä˜v tÓ,Ð,øô3 ò Ø—7‘7œeŸk™kÒ)Üàûð	ús   Á<)E Å	E2Å
E-Å,E-Å-E2c                ón   — | j                   j                  d«       | j                   j                  «        y )NzSTOP
)r:   rW   ©r   s    r   ÚstopzDebconf.stop¦   s$   € Ø�
‰
×Ñ˜Ô"Ø�
‰
×ÑÕr   c                ó|   — 	 | j                  ||«       y# t        $ r}|j                  d   dk7  r‚ Y d }~yd }~ww xY w)NrO   r   é   )r'   r   rH   )r   ÚpriorityÚquestionrb   s       r   Ú
forceInputzDebconf.forceInputª   sB   € ð	Ø�J‰J�x Ô*ØøÜò 	Ø�v‰v�a‰y˜BŠØó àûð	ús   ‚ •	;ž6¶;c                ó.   — | j                  |«      }|dk(  S )NÚtrue©r$   )r   rn   Úresults      r   Ú
getBooleanzDebconf.getBoolean³   s   € Ø—‘˜(Ó#ˆØ˜ÑÐr   c                ó$   — | j                  |«      S r
   rr   )r   rn   s     r   Ú	getStringzDebconf.getString·   s   € Ø�x‰x˜Ó!Ð!r   c                ó   — | S r
   r   ri   s    r   Ú	__enter__zDebconf.__enter__º   s   € Øˆr   c                ó$   — | j                  «        y r
   )rj   )r   Úexc_typeÚ	exc_valueÚexc_tbs       r   Ú__exit__zDebconf.__exit__½   s   € ð 	�	‰	�r   )NNNF)
r/   ú
str | Noner8   úIO[str] | Noner:   r   r>   Úboolr   ÚNone)r/   r~   r   r�   )r?   r   r   r�   )r?   r   r   r   r   r   ©r   r�   )rm   r   rn   r   r   r]   )rn   r   r   r€   )rn   r   r   r   )r   r   )rz   ztype[BaseException] | Noner{   zBaseException | Noner|   zTracebackType | Noner   r�   )r   r   r   Ú__doc__Ú__annotations__r@   r=   r5   r?   rj   ro   rt   rv   rx   r}   r   r   r   r   r   2   s  … ñð( ÓØ
ƒMØÓØƒNØ
ƒMØ	ƒLØƒKØ
ƒMØƒNØÓØƒNØÓØƒNØ	ƒLØÓØƒNØƒNØÓØÓØÓð !Ø#Ø $Ø"ðàðð ðð ð	ð
 ðð 
óó*ó
ó$-óLóó ó"óðà,ðð (ðð %ð	ð
 
ôr   r   c                  óB   ‡ — e Zd Z	 d	 	 	 	 	 	 	 dˆ fd„Zdd„Zdd„Zˆ xZS )ÚDebconfCommunicatorc                ó,  •— dd|g}t        j                  |t         j                  t         j                  dd¬«      | _        t        ‰| �  || j                  j                  | j                  j                  ¬«       |r—t        j                  | j                  j                  «       t        j                  t        j                  «       t        j                  | j                  j                  «       t        j                  t        j                  «       y y )Nzdebconf-communicatez-fnoninteractiveT)r7   r9   Ú	close_fdsÚuniversal_newlines)r/   r8   r:   )Ú
subprocessÚPopenÚPIPEÚdccommÚsuperr@   r9   r7   Úfcntlr8   ÚfilenoÚF_SETFDÚ
FD_CLOEXECr:   )r   Úownerr/   ÚcloexecrH   Ú	__class__s        €r   r@   zDebconfCommunicator.__init__Ç   sÂ   ø€ ð &Ð'9¸5ÐAˆÜ4>×4DÑ4DØÜ—/‘/Ü—?‘?ØØ#ô5
ˆŒô 	‰ÑØ˜dŸk™k×0Ñ0¸¿¹×8IÑ8Ið 	ô 	
ñ Ü�K‰K˜Ÿ	™	×(Ñ(Ó*¬E¯M©M¼5×;KÑ;KÔLÜ�K‰K˜Ÿ
™
×)Ñ)Ó+¬U¯]©]¼E×<LÑ<LÕMð r   c                óP  — | j                   �š| j                   j                  €J ‚| j                   j                  €J ‚| j                   j                  j                  «        | j                   j                  j                  «        | j                   j	                  «        d | _         y y r
   )r�   r7   r9   ÚcloseÚwaitri   s    r   ÚshutdownzDebconfCommunicator.shutdownÙ   s€   € Ø�;‰;Ð"Ø—;‘;×$Ñ$Ð0Ð0Ð0Ø—;‘;×%Ñ%Ð1Ð1Ð1Ø�K‰K×Ñ×#Ñ#Ô%Ø�K‰K×Ñ×$Ñ$Ô&Ø�K‰K×ÑÔØˆD�Kð #r   c                óD   — 	 | j                  «        y # t        $ r Y y w xY wr
   )r™   ÚAttributeErrorri   s    r   Ú__del__zDebconfCommunicator.__del__ã   s"   € ð	Ø�M‰M�OøÜò 	Ùð	ús   ‚ “	ž)NF)r“   r   r/   r~   r”   r€   r   r�   r‚   )r   r   r   r@   r™   rœ   Ú__classcell__)r•   s   @r   r†   r†   Æ   s:   ø„ àDIðNØðNØ!+ðNØ=AðNà	õNó$÷r   r†   ÚDEBCONF_USE_CDEBCONFrP   z/usr/lib/cdebconf/debconfz/usr/share/debconf/frontendF)Úpass_sys_executablec                ó  — dt         j                  vrudt         j                  d<   t        g}| r|j                  t        j
                  «       |j                  t        j                  «       t        j                  t        |«       y y )NÚDEBIAN_HAS_FRONTENDÚ1ÚPERL_DL_NONLAZY)	ÚosÚenvironÚ_frontEndProgramÚappendr6   Ú
executableÚextendÚargvÚexecv)rŸ   rH   s     r   r<   r<   ó   s\   € Ø¤B§J¡JÑ.Ø(+Œ�
‰
Ð$Ñ%Ü Ð!ˆÙØ�K‰KœŸ™Ô'Ø�‰”C—H‘HÔÜ
�‰Ô! 4Õ(ð /r   Ú__main__Tz&bsdmainutils/calendar_lib_is_not_emptyzless/add_mime_handlerzapt-listchanges/email-address)rŸ   r€   r   r�   )%Ú
__future__r   r[   r�   r¤   r^   rŠ   r6   Útypesr   Útypingr   r   r   Ú	Exceptionr   ÚLOWÚMEDIUMÚHIGHÚCRITICALr   r†   r¥   r¦   r<   r   Údbro   r%   rt   Úlessrv   Úaptlcrj   ÚprintrD   rE   r   r   r   ú<module>r¹      s  ðõ4 #ã Û Û 	Û 	Û Û 
Ý ß ôˆhô ô
	�9ô 	ð BÑ €€VˆT�8÷Qñ Qôh!˜'ô !ðJ ˜bŸj™jÑ(Ø
�
‰
Ð)Ñ*¨bÒ0à2Ñà4Ðð 05õ )ð ˆzÒÙ DÕ)Ù	‹€BØ‡M�M�(ÐDÔEØ‡E�E„GØ�=‰=Ð0Ó1€DØ�L‰LÐ8Ó9€EØ‡G�G„IÙ	ˆ"�*‰*ÔÙ	ˆ"�/‰/ÔÙ	ˆ$„KÙ	ˆ%…Lð r   