+
    üÐj�%  ã                   óŒ  € R t ^ RIHt ^ RIHtHt ^ RIHt ^ RIH	t	 ^ RI
Ht ^ RIHtHt ^ RIHtHtHt  ! R R	]P&                  4      t]! ]P*                  4       ! R
 R]P,                  4      4       t ! R R]P0                  ]P2                  4      tR]RR/t]! ]P8                  4       ! R R]P:                  4      4       tR# )z2
L{twisted.words} support for Instance Messenger.
)Úimplementer)ÚdeferÚerror)Úlog)ÚFailure)Úpb)ÚbasesupportÚ
interfaces)ÚAWAYÚOFFLINEÚONLINEc                   óH   a € ] tR t^t o RtR tR tR tR tR t	R t
RtV tR	# )
ÚTwistedWordsPersonzHI a facade for a person you can talk to through a twisted.words service.c                ó\   € \         P                  P                  WV4       \        V n        R # ©N)r   ÚAbstractPersonÚ__init__r   Ústatus)ÚselfÚnameÚwordsAccounts   &&&Ú</usr/lib/python3/dist-packages/twisted/words/im/pbsupport.pyr   ÚTwistedWordsPerson.__init__   s   € Ü×"Ñ"×+Ñ+¨D¸ÔEÜˆŽó    c                ó^   € V P                   \        8H  ;'       g    V P                   \        8H  # r   )r   r   r
   ©r   s   &r   ÚisOnlineÚTwistedWordsPerson.isOnline   s"   € Ø—‘œvÑ%×?Ð?¨4¯;©;¼$Ñ+>Ð?r   c                ó   € V P                   # r   ©r   r   s   &r   Ú	getStatusÚTwistedWordsPerson.getStatus   s   € Ø�{‰{Ðr   c                óF  € V'       d`   V P                   P                  P                  P                  V P                  W4      pVP                  V P                  RV,           4       V# V P                   P                  P                  P                  RV P                  V4      # )zReturn a deferred...ú* ÚdirectMessage)ÚaccountÚclientÚperspectiver$   r   Ú
addErrbackÚmetadataFailedÚ
callRemote©r   ÚtextÚmetadataÚds   &&& r   ÚsendMessageÚTwistedWordsPerson.sendMessage!   sv   € çØ—‘×#Ñ#×/Ñ/×=Ñ=¸d¿i¹iÈÓXˆAØ�L‰L˜×,Ñ,¨d°T­kÔ:ØˆHà—<‘<×&Ñ&×2Ñ2×=Ñ=Ø §¡¨Dóð r   c                ó’   € \        R VRV4       V P                  P                  P                  P	                  V P
                  V4      # )úresult:útext:)Úprintr%   r&   r'   r$   r   ©r   Úresultr,   s   &&&r   r)   Ú!TwistedWordsPerson.metadataFailed,   s7   € Üˆi˜ ¨$Ô/Ø�|‰|×"Ñ"×.Ñ.×<Ñ<¸T¿Y¹YÈÓMÐMr   c                ód   € Wn         V P                  P                  4       P                  V 4       R # r   )r   ÚchatÚgetContactsListÚsetContactStatus)r   r   s   &&r   Ú	setStatusÚTwistedWordsPerson.setStatus0   s"   € ØŒØ�	‰	×!Ñ!Ó#×4Ñ4°TÖ:r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r    r/   r)   r<   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r   r      s-   ø‡ € ÙRòò@òò	òN÷;ð ;r   r   c                   óN   a € ] tR t^5t o R tR
R ltR tR tR tR t	R t
R	tV tR# )ÚTwistedWordsGroupc                óT   € \         P                  P                  WV4       ^ V n        R# ©é    N)r   ÚAbstractGroupr   Újoined)r   r   ÚwordsClients   &&&r   r   ÚTwistedWordsGroup.__init__7   s   € Ü×!Ñ!×*Ñ*¨4°{ÔCØˆŽr   Nc                óH  € V'       da   V P                   P                  P                  P                  RV P                  W4      pVP                  V P                  RV,           4       V# V P                   P                  P                  P                  RV P                  V4      # )zReturn a deferred.ÚgroupMessager#   )r%   r&   r'   r*   r   r(   r)   r+   s   &&& r   ÚsendGroupMessageÚ"TwistedWordsGroup.sendGroupMessage;   s   € ÷ Ø—‘×#Ñ#×/Ñ/×:Ñ:Ø §	¡	¨4óˆAð �L‰L˜×,Ñ,¨d°T­kÔ:ØˆHà—<‘<×&Ñ&×2Ñ2×=Ñ=Ø §	¡	¨4óð r   c                ó¬   € V P                   P                  P                  P                  R RVRV P                  P                  /V P                  4       R# )ÚsetGroupMetadataÚtopicÚtopic_authorN©r%   r&   r'   r*   r   )r   r,   s   &&r   ÚsetTopicÚTwistedWordsGroup.setTopicI   s@   € Ø�‰×Ñ×'Ñ'×2Ñ2ØØ�d˜N¨D¯K©K×,<Ñ,<Ð=Ø�I‰Iö	
r   c                ó”   € \        R VRV4       V P                  P                  P                  P	                  RV P
                  V4      # )r2   r3   rQ   )r4   r%   r&   r'   r*   r   r5   s   &&&r   r)   Ú TwistedWordsGroup.metadataFailedP   s>   € Üˆi˜ ¨$Ô/Ø�|‰|×"Ñ"×.Ñ.×9Ñ9Ø˜DŸI™I tó
ð 	
r   c                ó   € ^V n         R# )é   N©rM   r   s   &r   ÚjoiningÚTwistedWordsGroup.joiningV   ó	   € ØˆŽr   c                ó   € ^ V n         R# rJ   r_   r   s   &r   ÚleavingÚTwistedWordsGroup.leavingY   rb   r   c                óv   € V P                   P                  P                  P                  R V P                  4      # ©Ú
leaveGrouprX   r   s   &r   ÚleaveÚTwistedWordsGroup.leave\   s)   € Ø�|‰|×"Ñ"×.Ñ.×9Ñ9¸,ÈÏ	É	ÓRÐRr   r_   r   )r>   r?   r@   rA   r   rR   rY   r)   r`   rd   ri   rC   rD   rE   s   @r   rH   rH   5   s/   ø‡ € òôò
ò
òò÷Sð Sr   rH   c                   óœ   a € ] tR t^`t o RtRR ltR tR tR tR t	R t
RR	 ltR
 tR tR tRR ltR tR tR tR tR tR tR tRtV tR# )ÚTwistedWordsClientz‡In some cases, this acts as an Account, since it a source of text
messages (multiple Words instances may be on a single PB connection)
Nc                ó’   € R P                  VP                  VV4      V n        W0n        \        RW#4       W@n        Wn        WPn        R# )z
{} ({}:{})zHELLO I AM A PB SERVICEN)ÚformatÚaccountNamer   r4   r9   r%   Ú_logonDeferred)r   ÚacctÚserviceNameÚperspectiveNameÚchatuirp   s   &&&&&&r   r   ÚTwistedWordsClient.__init__e   sF   € Ø'×.Ñ.Ø×ÑØØó
ˆÔð
 $Œ	ÜÐ'¨ÔFØŒ	ØŒØ,Ör   c                ó8   € V P                   P                  W4      # r   )r9   Ú	getPerson©r   r   s   &&r   rw   ÚTwistedWordsClient.getPersonq   s   € Ø�y‰y×"Ñ" 4Ó.Ð.r   c                ó8   € V P                   P                  W4      # r   )r9   ÚgetGrouprx   s   &&r   r{   ÚTwistedWordsClient.getGroupt   s   € Ø�y‰y×!Ñ! $Ó-Ð-r   c                óV   € V P                   P                  V P                  V4      4      # r   )r9   ÚgetGroupConversationr{   rx   s   &&r   r~   Ú'TwistedWordsClient.getGroupConversationw   s    € Ø�y‰y×-Ñ-¨d¯m©m¸DÓ.AÓBÐBr   c                ó>   € V P                   P                  R V4       R# )Ú
addContactN)r'   r*   rx   s   &&r   r�   ÚTwistedWordsClient.addContactz   s   € Ø×Ñ×#Ñ# L°$Ö7r   c                ó^   € \        R W4       V P                  V4      P                  V4       R# )zreceived group members:N)r4   r~   ÚsetGroupMembers)r   ÚnamesÚgroups   &&&r   Úremote_receiveGroupMembersÚ-TwistedWordsClient.remote_receiveGroupMembers}   s&   € ÜÐ'¨Ô6Ø×!Ñ! %Ó(×8Ñ8¸Ö?r   c                ób   € \        R WW44       V P                  V4      P                  WV4       R# )zreceived a group messageN)r4   r~   ÚshowGroupMessage)r   Úsenderr†   Úmessager-   s   &&&&&r   Úremote_receiveGroupMessageÚ-TwistedWordsClient.remote_receiveGroupMessage�   s*   € ÜÐ(¨&¸ÔKØ×!Ñ! %Ó(×9Ñ9¸&È8ÖTr   c                ó^   € \        R W4       V P                  V4      P                  V4       R# )zmember joinedN)r4   r~   ÚmemberJoined©r   Úmemberr†   s   &&&r   Úremote_memberJoinedÚ&TwistedWordsClient.remote_memberJoined…   s%   € Üˆo˜vÔ-Ø×!Ñ! %Ó(×5Ñ5°fÖ=r   c                ó\   € \        R 4       V P                  V4      P                  V4       R# )zmember leftN)r4   r~   Ú
memberLeftr‘   s   &&&r   Úremote_memberLeftÚ$TwistedWordsClient.remote_memberLeft‰   s#   € ÜˆmÔØ×!Ñ! %Ó(×3Ñ3°FÖ;r   c                óZ   € V P                   P                  W4      P                  V4       R # r   ©r9   rw   r<   )r   r   r   s   &&&r   Úremote_notifyStatusChangedÚ-TwistedWordsClient.remote_notifyStatusChanged�   s   € Ø�	‰	×Ñ˜DÓ'×1Ñ1°&Ö9r   c                óŒ   € V P                   P                  V P                   P                  W4      4      P                  W#4       R # r   )r9   ÚgetConversationrw   ÚshowMessage)r   r   rŒ   r-   s   &&&&r   Úremote_receiveDirectMessageÚ.TwistedWordsClient.remote_receiveDirectMessage�   s1   € Ø�	‰	×!Ñ! $§)¡)×"5Ñ"5°dÓ"AÓB×NÑNØö	
r   c                óp   € V F/  w  r#V P                   P                  W 4      P                  V4       K1  	  R # r   rš   )r   Úclistr   r   s   &&  r   Úremote_receiveContactListÚ,TwistedWordsClient.remote_receiveContactList•   s+   € Û!‰LˆDØ�I‰I×Ñ Ó+×5Ñ5°fÖ=ó "r   c                óˆ   € R V9   d;   V P                  V4      P                  VR ,          VP                  RR4      4       R# R# )rV   rW   N)r~   rY   Úget)r   Údict_Ú	groupNames   &&&r   Úremote_setGroupMetadataÚ*TwistedWordsClient.remote_setGroupMetadata™   s<   € Ø�eÔØ×%Ñ% iÓ0×9Ñ9Ø�g• §	¡	¨.¸$Ó ?öñ r   c                ó¬   € V P                  V4      P                  4        V P                  P                  R V4      P	                  V P
                  V4      # )Ú	joinGroup)r{   r`   r'   r*   ÚaddCallbackÚ_cbGroupJoinedrx   s   &&r   r­   ÚTwistedWordsClient.joinGroupŸ   sH   € Ø�‰�dÓ×#Ñ#Ô%Ø×Ñ×*Ñ*¨;¸Ó=×IÑIØ×Ñ ó
ð 	
r   c                ó¬   € V P                  V4      P                  4        V P                  P                  R V4      P	                  V P
                  V4      # rg   )r{   rd   r'   r*   r®   Ú_cbGroupLeftrx   s   &&r   rh   ÚTwistedWordsClient.leaveGroup¥   sH   € Ø�‰�dÓ×#Ñ#Ô%Ø×Ñ×*Ñ*¨<¸Ó>×JÑJØ×Ñ˜tó
ð 	
r   c                ó¶   € V P                   P                  V P                  V4      4      pVP                  R R4       V P                  P                  RV4       R# )Úsysz
you joinedÚgetGroupMembersN)r9   r~   r{   rŠ   r'   r*   ©r   r6   r   Ú	groupConvs   &&& r   r¯   Ú!TwistedWordsClient._cbGroupJoined«   sF   € Ø—I‘I×2Ñ2°4·=±=ÀÓ3FÓGˆ	Ø×"Ñ" 5¨,Ô7Ø×Ñ×#Ñ#Ð$5°tÖ<r   c                ó˜   € \        R V4       V P                  P                  V P                  V4      ^4      pVP	                  RR4       R# )Úleftrµ   zyou leftN)r4   r9   r~   r{   rŠ   r·   s   &&& r   r²   ÚTwistedWordsClient._cbGroupLeft°   s;   € Üˆf�dÔØ—I‘I×2Ñ2°4·=±=ÀÓ3FÈÓJˆ	Ø×"Ñ" 5¨*Ö5r   c                ó°   € \        R V4       V P                  e   V P                  P                  V 4       Wn        V P                  P                  4        R# )zConnected Words Client!N)r4   rp   Úcallbackr'   r9   r:   )r   r'   s   &&r   Ú	connectedÚTwistedWordsClient.connectedµ   sC   € ÜÐ'¨Ô5Ø×ÑÒ*Ø×Ñ×(Ñ(¨Ô.Ø&ÔØ�	‰	×!Ñ!Ö#r   )rp   r%   ro   r9   r   r'   r   )r>   r?   r@   rA   rB   r   rw   r{   r~   r�   r‡   r�   r“   r—   r›   r    r¤   rª   r­   rh   r¯   r²   r¿   rC   rD   rE   s   @r   rl   rl   `   sl   ø‡ € ñô
-ò/ò.òCò8ò@ôUò>ò<ò:ô
ò
>òò
ò
ò=ò
6÷
$ð $r   rl   útwisted.wordsztwisted.realityNc                   óZ   a € ] tR t^Àt o Rt]t]tRR lt	R t
R tR tR tR tR	 tR
tV tR# )Ú	PBAccountÚPBNc           	     óÜ   € \         P                  P                  WW#WEV4       . V n        V'       g   RRV3.pV F.  w  r‰p
V P                  P	                  \
        V,          Wš.4       K0  	  R# )zG
@param username: The name of your PB Identity.
@type username: string
rÁ   N)r   ÚAbstractAccountr   ÚservicesÚappendÚpbFrontEnds)r   ro   Ú	autoLoginÚusernameÚpasswordÚhostÚportrÇ   ÚserviceTyperr   rs   s   &&&&&&&&   r   r   ÚPBAccount.__init__Æ   sk   € ô 	×#Ñ#×,Ñ,Ø˜y°HÀDô	
ð ˆŒßØ(¨/¸8ÐDÐEˆHÛ9AÑ5ˆK oØ�M‰M× Ñ Ü˜[Õ)¨;ÐHöó :Br   c                ó  a a€ S P                   '       g`   S P                  '       gN   ^S n         S P                  S4      pVP                  S P                  4       VV 3R lpVP                  V4       V# \        P                  ! R4      h)zg
@returns: this breaks with L{interfaces.IAccount}
@returntype: DeferredList of L{interfaces.IClient}s
c                 ó¢   <€ V  FG  w  rV'       d%   SP                  V4       SP                  V4       K1  \        P                  ! V4       KI  	  R # r   )ÚregisterAccountClientÚ	_cb_logOnr   Úerr)ÚresultsÚsuccessr6   rt   r   s   &  €€r   ÚregisterManyÚ%PBAccount.logOn.<locals>.registerManyå   s7   ø€ Û'.‘O�GßØ×4Ñ4°VÔ<ØŸ™ vÖ.äŸš žó (/r   zConnection in progress)Ú_isConnectingÚ	_isOnlineÚ_startLogOnr(   Ú_loginFailedr®   r   ÚConnectionError)r   rt   r.   rØ   s   ff  r   ÚlogOnÚPBAccount.logOnØ   sm   ù€ ð ×"×"Ð"¨T¯^¯^¨^Ø!"ˆDÔØ× Ñ  Ó(ˆAØ�L‰L˜×*Ñ*Ô+ö(ð �M‰M˜,Ô'ØˆHä×'Ò'Ð(@ÓAÐAr   c                ó   € R # r   © r   s   &r   ÚlogOffÚPBAccount.logOffò   s   € ár   c                óÈ   € \        R RR7       \        P                  ! V P                  V P                  4      pVP                  V P                  V P                  V3R7       V# )zConnecting...Ú ©Úend©ÚcallbackArgs)r4   r   ÚgetObjectAtrÍ   rÎ   ÚaddCallbacksÚ_cbConnectedÚ_ebConnected)r   rt   r.   s   && r   rÜ   ÚPBAccount._startLogOnö   sI   € Üˆo 3Õ'Ü�NŠN˜4Ÿ9™9 d§i¡iÓ0ˆØ	�‰�t×(Ñ(¨$×*;Ñ*;È6È)ˆÔTØˆr   c                óÞ   € \        R 4       \        RRR7       \        P                  ! WP                  V P                  4      pVP                  V P                  V P                  V3R7       V# )z
Connected!zIdentifying...ræ   rç   ré   )r4   r   ÚauthIdentityrË   rÌ   rì   Ú_cbIdentrî   )r   Úrootrt   r.   s   &&& r   rí   ÚPBAccount._cbConnectedü   sP   € ÜˆlÔÜÐ CÕ(Ü�OŠO˜D§-¡-°·±Ó?ˆØ	�‰�t—}‘} d×&7Ñ&7ÀvÀiˆÔPØˆr   c                ó˜  € V'       g/   \        R 4       V P                  \        \        R4      4      4      # \        R4       . pV P                   Fb  w  rEp\
        P                  ! 4       pVP                  V4       V! WWbV4      pVP                  RWVV4      P                  VP                  4       Kd  	  \
        P                  ! V4      # )zfalsely identified.zusername or password incorrectzIdentified!Úattach)r4   rî   r   Ú	ExceptionrÇ   r   ÚDeferredrÈ   r*   r®   r¿   ÚDeferredList)	r   Úidentrt   ÚdlÚhandlerClassÚsnameÚpnamer.   Úhandlers	   &&&      r   rò   ÚPBAccount._cbIdent  s¯   € ßÜÐ'Ô(Ø×$Ñ$Üœ	Ð"BÓCÓDóð ô 	ˆmÔØˆØ*.¯-¬-Ñ&ˆL Ü—’Ó ˆAØ�I‰I�aŒLÙ" 4°¸qÓAˆGØ×Ñ˜X u°WÓ=×IÑIØ×!Ñ!öñ	 +8ô ×!Ò! "Ó%Ð%r   c                ó   € \        R 4       V# )zNot connected.)r4   )r   r   s   &&r   rî   ÚPBAccount._ebConnected  s   € ÜÐÔØˆr   )rÚ   rÇ   r   )r>   r?   r@   rA   ÚgatewayTyperH   Ú_groupFactoryr   Ú_personFactoryr   rß   rã   rÜ   rí   rò   rî   rC   rD   rE   s   @r   rÃ   rÃ   À   s=   ø‡ € à€KØ%€MØ'€Nôò$Bò4òòò&÷"ð r   rÃ   )rB   Úzope.interfacer   Útwisted.internetr   r   Útwisted.pythonr   Útwisted.python.failurer   Útwisted.spreadr   Útwisted.words.imr   r	   Útwisted.words.im.localsr
   r   r   r   r   ÚIGrouprL   rH   ÚReferenceableÚAbstractClientMixinrl   rÉ   ÚIAccountrÆ   rÃ   râ   r   r   Ú<module>r     sÅ   ðñ
õ
 'ç )Ý Ý *Ý ß 4ß 9Ñ 9ô;˜×3Ñ3ô ;ñB ˆZ×ÑÓô'S˜×1Ñ1ó 'Só  ð'SôTZ$˜×)Ñ)¨;×+JÑ+Jô Z$ðz Ð 2Ð4EÀtÐL€ñ ˆZ× Ñ Ó!ôU�×+Ñ+ó Uó "òUr   