ó
    ¡7�jœ  ã                   óâ   • S SK r S SKrS SKrS SKrS SKrS SKJrJrJrJ	r	  S SK
Jr  S SKJrJr  SrSr\R"                  " \5      r\	\\\\4   4   r " S S\R,                  5      r " S	 S
5      rg)é    N)ÚDictÚListÚSequenceÚTuple)ÚAskpassHandler)ÚVariantÚbusz'/usr/lib/polkit-1/polkit-agent-helper-1z/PolkitAgentc                   óâ   ^ • \ rS rSrS\4U 4S jjr\R                  R                  S/ SQ5      S\	S\	S\	S	\
\	\	4   S
\	S\\   SS4S j5       rS\R                  R                   SS4S jrSrU =r$ )Ú.org_freedesktop_PolicyKit1_AuthenticationAgenté-   Ú	responderc                 ó.   >• [         TU ]  5         Xl        g ©N)ÚsuperÚ__init__r   )Úselfr   Ú	__class__s     €Ú0/usr/lib/python3/dist-packages/cockpit/polkit.pyr   Ú7org_freedesktop_PolicyKit1_AuthenticationAgent.__init__.   s   ø€ Ü‰ÑÔØ"�ó    Ú )Úsr   r   za{ss}r   z	a(sa{sv})Ú	action_idÚmessageÚ	icon_nameÚdetailsÚcookieÚ
identitiesÚreturnNc           	   ƒ   óˆ  #   • [         R                  SXX4XV5        [        R                  " 5       nU H@  u  p‰US:X  d  M  SU	;   d  M  U	S   R                  U:X  d  M*  [         R                  SX—5          O   [         R                  SU5        g [        R                  " U5      R                  n
[        R                  " [        X¥[        R                  R                  [        R                  R                  S9I S h  v•N n U R                  U5      I S h  v•N   UR#                  5       I S h  v•N n[         R                  SU5        g  NM N5! [        R                   a(    [         R                  S5        UR!                  5          Nnf = f N^! UR#                  5       I S h  v•N  n[         R                  SU5        f = f7f)	Nz[BeginAuthentication: action %s, message "%s", icon %s, details %s, cookie %s, identities %rz	unix-userÚuidz,Authentication subject %s matches our uid %dz*Not supporting authentication as any of %s)ÚstdinÚstdoutzCancelled authenticationzhelper exited with code %i)ÚloggerÚdebugÚosÚgeteuidÚvalueÚwarningÚpwdÚgetpwuidÚpw_nameÚasyncioÚcreate_subprocess_execÚHELPER_PATHÚ
subprocessÚPIPEÚ_communicateÚCancelledErrorÚ	terminateÚwait)r   r   r   r   r   r   r   Úmy_uidÚ	auth_typeÚsubjectÚ	user_nameÚprocessÚress                r   Úbegin_authenticationÚCorg_freedesktop_PolicyKit1_AuthenticationAgent.begin_authentication3   sb  é € ô 	�‰ÐrØ¨¸Vô	Qô —’“ˆÛ$.Ñ ˆYØ˜KÕ'¨E°WÕ,<ÀÈÁ×AUÑAUÐY_ÕA_Ü—‘ÐKÈWÔ]Ùñ %/ô
 �N‰NÐGÈÔTØä—L’L Ó(×0Ñ0ˆ	Ü×6Ò6´{ÀIÜ=D×=OÑ=O×=TÑ=TÜ>E×>PÑ>P×>UÑ>UñW÷ Wˆð	<Ø×#Ñ# GÓ,×,Ð,ð
  Ÿ™›×&ˆCÜ�L‰LÐ5°sÕ;ñWñ -øÜ×%Ñ%ó 	 Ü�L‰LÐ3Ô4Ø×ÑÖð	 úñ 'ø˜Ÿ™›×&Ð&ˆCÜ�L‰LÐ5°sÕ;üsƒ   ‚9G¿GÁGÁBGÃ;E	Ã<GÄE ÄEÄE ÄGÄ-FÄ.GÅE Å9F	ÆF ÆF	Æ	F ÆGÆF?Æ"F%Æ#F?Æ?Gr:   c              ƒ   óŠ  #   • UR                   (       d   eUR                  (       d   e/ nUR                    S h  v•N n[        R                  SU5        UR	                  5       R                  5       R                  S5      u  pEnUR                  S5      (       Ga   UR                  S5      (       a  SnU R                  R                  SR                  U5      US5      I S h  v•N nUR                  5         Uc,  [        R                  SU5        [        R                  " S5      e[        R                  S	U5        UR                   R                  UR                  5       5        UR                   R                  S
5        AUR                   R!                  5       I S h  v•N   [        R                  S5        GM†  US;   a  UR#                  U5        GM   US:X  a  [        R                  S5          g US:X  a  [        R%                  S5          g [        R%                  SU5        UR'                  5           g  GNþ GNX Nž
 g 7f)NzRead line from helper: %sÚ Ú
PAM_PROMPTÚPasswordr   Ú
z/got PAM_PROMPT %s, but do_askpass returned Nonezno password givenz1got PAM_PROMPT %s, do_askpass returned a passwordó   
z(got PAM_PROMPT, wrote password to helper)ÚPAM_TEXT_INFOÚ	PAM_ERRORÚSUCCESSzAuthentication succeededÚFAILUREzAuthentication failedz&Unknown line from helper, aborting: %s)r"   r#   r$   r%   ÚstripÚdecodeÚ	partitionÚ
startswithr   Ú
do_askpassÚjoinÚclearr-   r3   ÚwriteÚencodeÚdrainÚappendr)   r4   )r   r:   ÚmessagesÚlineÚcommandÚ_r(   Úpasswds           r   r2   Ú;org_freedesktop_PolicyKit1_AuthenticationAgent._communicateP   s¿  é € Ø�}�}Ðˆ}Ø�~�~Ðˆ~à ˆà!Ÿ.š.÷ "	�$Ü�L‰LÐ4°dÔ;Ø $§
¡
£× 3Ñ 3Ó 5× ?Ñ ?ÀÓ DÑˆG˜ð ×!Ñ! ,×/Ò/ð ×#Ñ# J×/Ñ/Ø�Eð  $Ÿ~™~×8Ñ8¸¿¹À8Ó9LÈeÐUWÓX×X�Ø—‘Ô Ø‘>Ü—L‘LÐ!RÐTYÔZÜ!×0Ò0Ð1DÓEÐEÜ—‘ÐPÐRWÔXØ—‘×#Ñ# F§M¡M£OÔ4Ø—‘×#Ñ# EÔ*ØØ—m‘m×)Ñ)Ó+×+Ð+Ü—‘ÐG×HØÐ:Ó:Ø—‘ ×&Ø˜IÓ%Ü—‘Ð7Ô8ÙØ˜IÓ%Ü—‘Ð6Ô7Ùä—‘ÐGÈÔNØ×!Ñ!Ô#ÙòE"	ò Yñ ,ñ+ )ùsL   ‚5I·I»H9¼I¿B%IÃ$H<Ã%B;IÆ H?Æ!BIÈ9IÈ<IÈ?IÉI)r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r	   Ú	InterfaceÚMethodÚstrr   r   ÚIdentityr<   r-   r0   ÚProcessr2   Ú__static_attributes__Ú__classcell__)r   s   @r   r   r   -   sž   ø† ð# .÷ #ð
 	‡]�]×Ñ˜"ÒHÓIð<°Cð <À#ð <ÐRUð <Ø,0°°c°©Nð<ØDGð<ØU]Ð^fÑUgð<Ølpó<ó Jð<ð8(¨'×*<Ñ*<×*DÑ*Dð (È÷ (ò (r   r   c                   ó2   • \ rS rSrSrS\4S jrS rS rSr	g)	ÚPolkitAgenté{   zuRegister polkit agent when required

Use this as a context manager to ensure that the agent gets unregistered again.
r   c                 ó   • Xl         S U l        g r   )r   Ú
agent_slot)r   r   s     r   r   ÚPolkitAgent.__init__€   s   € Ø"ŒØˆ�r   c           
   ƒ   óÄ  #   •  [         R                  R                  5       U l         SS[        [        R                  S   S5      04U l
        [        U R                  5      nU R                  R                  [         U5      U l        [$        R&                  " [$        R(                  S 5      nU R                  R+                  SSS	S
SU R                  U[         5      I S h  v•N   [
        R                  SU R                  U5        U $ ! [         a"  n[
        R                  SU5        U s S nA$ S nAff = f! [         a    [
        R                  S5        U s $ f = f N}7f)Nz>cannot connect to system bus, not registering polkit agent: %szunix-sessionz
session-idÚXDG_SESSION_IDr   z4XDG_SESSION_ID not set, not registering polkit agentúorg.freedesktop.PolicyKit1ú%/org/freedesktop/PolicyKit1/Authorityú$org.freedesktop.PolicyKit1.AuthorityÚRegisterAuthenticationAgentz
(sa{sv})ssz%Registered agent for %r and locale %s)r	   ÚBusÚdefault_systemÚ
system_busÚOSErrorr$   r)   r   r&   Úenvironr8   ÚKeyErrorr%   r   r   Ú
add_objectÚAGENT_DBUS_PATHrh   ÚlocaleÚ	setlocaleÚLC_MESSAGESÚcall_method_async)r   ÚeÚagent_objectÚlocale_names       r   Ú
__aenter__ÚPolkitAgent.__aenter__„   s)  é € ð	Ü!Ÿg™g×4Ñ4Ó6ˆDŒOð
	à*¨\¼7Ä2Ç:Á:ÐN^ÑC_ÐadÓ;eÐ,fÐgˆDŒLô
 FÀdÇnÁnÓUˆØŸ/™/×4Ñ4´_ÀlÓSˆŒô ×&Ò&¤v×'9Ñ'9¸4Ó@ˆØ�o‰o×/Ñ/Ø(Ø3Ø2Ø)ØØ�L‰L˜+¤ó8÷ 	8ð 	8ô 	�‰Ð<¸d¿l¹lÈKÔXØˆøô1 ó 	Ü�N‰NÐ[Ð]^Ô_Ø�Kûð	ûô ó 	Ü�L‰LÐOÔPØŠKð	úñ	8ùs^   ‚E „#D ¨&D7 ÁBE Ã EÃ!'E Ä
D4ÄD/Ä)D4Ä*E Ä/D4Ä4E Ä7!EÅE ÅEÅE c           	   ƒ   ó  #   • U R                   (       ar  U R                  R                  SSSSSU R                  [        5      I S h  v•N   U R                   R                  5         [        R                  SU R                  5        g g  N@7f)Nrl   rm   rn   ÚUnregisterAuthenticationAgentz	(sa{sv})szUnregistered agent for %r)rh   rr   r{   r8   rw   Úcancelr$   r%   )r   Ú	_exc_typeÚ
_exc_valueÚ
_tracebacks       r   Ú	__aexit__ÚPolkitAgent.__aexit__¡   so   é € Ø�?�?Ø—/‘/×3Ñ3Ø,Ø7Ø6Ø/ØØ—‘œoó/÷ /ð /ð �O‰O×"Ñ"Ô$Ü�L‰LÐ4°d·l±lÕCð ñ/ùs   ‚AB	ÁBÁAB	)rh   r   r8   rr   N)
rY   rZ   r[   r\   Ú__doc__r   r   r   r‡   rb   © r   r   re   re   {   s   † ñð .ô òõ:
Dr   re   )r-   rx   Úloggingr&   r*   Útypingr   r   r   r   Úcockpit._vendor.fernyr   Úcockpit._vendor.systemd_ctypesr   r	   r/   rw   Ú	getLoggerrY   r$   r_   r`   ÚObjectr   re   rŠ   r   r   Ú<module>r‘      su   ðó$ Û Û Û 	Û 
ß .Ó .å 0ß 7ð 8€à €à	×	Ò	˜8Ó	$€à��d˜3 ˜<Ñ(Ð(Ñ)€ôK°S·Z±Zô K÷\0Dò 0Dr   