+
     GiE  c                   s   ^ RI t ^ RIt^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^ RIt^ RIt^ RIHt R tR tR tR t ! R R	]P*                  P,                  4      tR
 t ! R R] P2                  4      tR tR tR tR# )    N)helpers)GLibc                 s    \         P                  P                  V P                  4      ;'       d?    \         P                  P	                  \
        P                  P                  R ,          4      # )rootfs)ospathisfileconfigisdirtoolsdefaults)args   &./usr/lib/waydroid/tools/actions/initializer.pyis_initializedr      s=    77>>$++&YY277==9N9Nx9X+YY    c                 s    \         P                  P                  V R 4      pRpVR8w  dN   \        V4      pV^8  d<   V^,
          pV^8  d
   V^,          pR\	        V4      ,           pV^ 8X  d
   VR,          pV# )zro.vndk.versionZMAINLINE ZHALIUM_ZL)r   propshost_getZintstr)r   Zvndk_strZretZvndkZ
halium_ver   &    r   get_vendor_typer      sq    }}%%d,=>H
C2~8}"9Jbya
c*o-Crzs
Jr   c                 s   \         P                  P                  V 4      p\        P                  P                  4       V n        V P                  VR ,          R&   \        V 4      V n        V P                  VR ,          R&   \        P                  P                  V 4       V P                  VR ,          R&   V P                  VR ,          R&   V P                  VR ,          R&   Rp\         P                  P                  R,          pV EF2  p\        P                  P!                  V4      '       g   K+  VR,           pVR	,           p\        P                  P#                  V4      ;'       g5    \$        P&                  ! \        P$                  ! V4      P(                  4      p\        P                  P#                  V4      ;'       g5    \$        P&                  ! \        P$                  ! V4      P(                  4      pV'       d   V'       d   R
pW@n         M*\,        P.                  ! RP1                  V4      4       EK5  	  V P*                  '       g'   \         P                  P                  R,          V n        V P*                  VR ,          R&   V'       d   R;VR ,          R&   V n        R;VR ,          R&   V n        \         P                  P                  R,          VR ,          R&   \         P                  P                  R,          VR ,          R&   \         P                  P7                  W4       R
# \         P                  P9                  4       p	V P:                  '       g   V	R,          R,          V n        V P<                  '       g   V	R,          R,          V n        V P>                  '       g   V	R,          R,          V n        V P@                  '       g   V	R,          R,          V n         V P:                  '       d   V P<                  '       g   \,        PB                  ! R4       R# V P:                  R,           V P>                  ,           R,           V P                  ,           R,           V P@                  ,           R,           V n        \        PD                  PG                  V P2                  4      p
V
^ ,          ^8w  d-   \I        RP1                  V P2                  V
^ ,          4      4      h\        PJ                  PM                  V R4      pRV n        V\        V 4      3 F  pV P<                  R,           V P                  ,           R,           VPO                  RR4      ,           R,           p\        PD                  PG                  V4      pV^ ,          ^8X  g   K{  Wn        Wn         M	  V P                  '       g   \I        R P1                  X4      4      hV P2                  VR ,          PQ                  R4      8w  d,   \         P                  P                  R,          VR ,          R&   V P4                  VR ,          PQ                  R4      8w  d,   \         P                  P                  R,          VR ,          R&   V P                  VR ,          R&   V P2                  VR ,          R&   V P4                  VR ,          R&   \         P                  P7                  W4       R
# )!waydroidarchvendor_typeZbinderZ	vndbinderZhwbinderFpreinstalled_images_pathsz/system.imgz/vendor.imgTzBFound directory {} but missing system or vendor image, ignoring...images_pathZNone
system_ota
vendor_otaZsystem_datetimeZvendor_datetimechannelssystem_channelvendor_channelrom_typesystem_typez;ERROR: You must provide 'System OTA' and 'Vendor OTA' URLs.Z/z
/waydroid_z.jsonz/Failed to get system OTA channel: {}, error: {}zro.product.deviceNZ _z$Failed to get vendor OTA channel: {}))r	   r   Zloadr   r   Zhostr   r   driversZsetupBinderNodesZBINDER_DRIVERZVNDBINDER_DRIVERZHWBINDER_DRIVERr
   r   r   r   r   statZS_ISBLKZst_moder   loggingZwarningformatr   r   Zsaveload_channelsr   r   r    r!   errorZhttpZretrieveZ
ValueErrorr   r   Zreplaceget)r   ZcfgZhas_preinstalled_imagesr   Zpreinstalled_imagesZsystem_pathZvendor_pathZsystem_existsZvendor_existschannels_cfgZsystem_requestZdevice_codenameZvendorr   Zvendor_requests   &              r   setup_configr+   %   s*   
,,

D
!C!!#DI"iiC
OF&t,D%)%5%5C
OM"OO$$T* $ 2 2C
OH#'#8#8C
OK "&"6"6C
OJ# % 5 56Q R877==,---=K-=KGGNN;7ee4<<P[H\HdHd;eMGGNN;7ee4<<P[H\HdHd;eM*.'#6  d k kl  !A  B  9  <<00?%)%5%5C
OM":@@J%:@@J%-2\\-B-BCT-UJ)*-2\\-B-BCT-UJ)*$$<<--/L*:67GH*:67GH===$Z0<'
3MBd&9&9&9ST))C/$--?yy!#&')-)9)9:<CDDO\\**4??;NaC=DDT__VdefVghj 	j mm,,T3FGOD"OD$9:((<7II$nnS#679@A
 ..z:!#%(O ; 299*EG 	G #j/--l;;-2\\-B-BCT-UJ)*#j/--l;;-2\\-B-BCT-UJ)*%)%5%5C
OM"$(OOC
OL!$(OOC
OL!	LLd r   c                 s
   \        V 4      '       d)   V P                  '       g   \        P                  ! R 4       \	        V 4      '       g   R# RpRp\
        P                  P                  \        P                  P                  R,          R,           4      '       d    \        P                  P                  V 4      pVR8w  d   RV 9   d8   V P                  p\        P                  P                   P#                  V R4       M`\        P                  ! R4        \        P                  P$                  P'                  4       pVP)                  4       pVP+                  R4       V P0                  \        P                  P                  R,          9  d!   \        P2                  P5                  V 4       M\        P2                  P7                  V 4       \
        P                  P9                  \        P                  P                  R	,          4      '       g6   \
        P:                  ! \        P                  P                  R	,          4       \
        P                  P9                  \        P                  P                  R
,          4      '       gr   \
        P:                  ! \        P                  P                  R
,          4       \
        P:                  ! \        P                  P                  R
,          R,           4       \
        P                  P9                  \        P                  P                  R,          4      '       g   \
        P:                  ! \        P                  P                  R,          4       \
        P:                  ! \        P                  P                  R,          R,           4       \
        P:                  ! \        P                  P                  R,          R,           4       \        P<                  P?                  V 4       \        P                  PA                  V 4       \        P                  PC                  V 4       \        P                  PE                  V 4       VR8w  d]    RV 9   d,   \        P                  P                   PG                  W4       R# \        P                  ! R4       XPI                  V4       R# R#   \,         dL   p\        P.                  ! T4       \        P                  P                   P#                  T R4        Rp?ELRp?ii ; i  \,         d8   p\        P.                  ! T4       \        PJ                  ! R4        Rp?R# Rp?ii ; i)zAlready initializedNZSTOPPEDlxcz	/waydroidrunning_init_in_serviceFzStopping containerr   r   Zoverlayz/vendorZ
overlay_rwz/systemzStarting containerz3Failed to restart container. Please do so manually.)&r   forcer%   Zinfor+   r   r   Zexistsr	   r   r
   r   r,   statussessionZactionsZcontainer_managerZstopipcDBusContainerServiceZ
GetSessionZStop	ExceptionZdebugr   Zimagesr)   Zremove_overlayr   Zmkdirr#   ZprobeAshmemDriverZsetup_host_permsZset_lxc_configZmake_base_propsZdo_startZStartr(   )r   r/   r0   Z	containerer   r   initr5   |   sH   dDJJJ*+FG	ww~~ell++E2[@AA##D)$,llGMM++00u=LL-.B!MM--BBD	#..0u% u||445PQQ4 %%d+77==..x899
&&x0177==..y9::
&&y12
&&y1);<77==..|<==
&&|45
&&|4Y>?
&&|4Y>?OO%%d+KK  &KKt$KK%	Q(D0//88G12( )  Ba //44T5AAB6  	QMM!MMOPP	Qs8   A	S 20T( $'T( T%A T  T%(U*3,U%%U*c            	       s  a  ] tR t^t o R t]P                  P                  ]P                  P                  RRRRRR7      RR	 l4       4       t]P                  P                  ]P                  P                  RRRR
7      R 4       4       t]P                  P                  RRR7      R 4       t]P                  P                  RRR7      R 4       t]P                  P                  RRR7      R 4       tRtV tR# )DbusInitializerc                s    W@n         Wn        R V n        \        P                  P
                  P                  WV4       R # N)r   looperworker_threaddbusserviceObject__init__)selfr8   ZbusZobject_pathr   s   &&&&&r   r=   ZDbusInitializer.__init__   s.    	!$$T<r   id.waydro.Initializerza{ss}r   senderconn)in_signatureout_signatureZsender_keywordZconnection_keywordNc                s   V P                   e5   V P                   P                  4        V P                   P                  4        \        P                  P                  4       pVR,          VR,          R,          8H  ;'       d    VR,          VR,          R,          8H  pV'       g   \        W#R4      '       d   \        V P                  W4      V n         R # \        R4      h)Nr   r   r   zid.waydro.Initializer.InitzPolkit: Authentication failed)
r9   killjoinr	   r   r'   ensure_polkit_authremote_init_serverr   PermissionError)r>   paramsr@   rA   r*   Zno_auths   &&&&  r   InitZDbusInitializer.Init   s     )##%##%||113)*l:.FGW.XX Y Y)*l:.FGW.XX 	(7STT!3DIIt!LD!"ABBr   )rB   rC   c                s    V P                   e7   V P                   P                  4        V P                   P                  4        R # R # r7   )r9   rD   rE   r>   r   r   CancelZDbusInitializer.Cancel   s9     )##%##% *r   s)Z	signaturec                    R # r7    r>   Zmessage   &&r   ProgressChangedZDbusInitializer.ProgressChanged       r   c                rN   r7   rO   rK   r   r   FinishedZDbusInitializer.Finished   rS   r   c                rN   r7   rO   rK   r   r   InterruptedZDbusInitializer.Interrupted   rS   r   )r   r8   r9   )NN)__name__
__module____qualname____firstlineno__r=   r   r%   Zlog_exceptionsr:   r;   ZmethodrJ   rL   signalrR   rT   rU   __static_attributes____classdictcell____classdict__   @r   r6   r6      s    = __##	\\0wVXiq  GM  NC N $C __##	\\0rQST& U $&
 
\\0C@ A 
\\0B? @ 
\\0B? @r   r6   c                 s   \         P                  ! VP                  R RR4      R 4      pVP                  V 4      p\         P                  ! \         P                  ! 4       P                  RRR4      R4      p VP                  RR\         P                  ! V^R7      R	\         P                  ! ^ ^R7      /3VR
R/\         P                  ! ^4      RRR7      w  p pV#   \         P                   d    \        R4      hi ; i)zorg.freedesktop.DBusz/org/freedesktop/DBus/BusFzorg.freedesktop.PolicyKit1z%/org/freedesktop/PolicyKit1/Authorityz$org.freedesktop.PolicyKit1.Authorityzunix-processpid)Zvariant_levelz
start-timeZAllowUserInteractionZtruer   i,  )Ztimeoutz Polkit: Authentication timed out)
r:   Z	InterfaceZ
get_objectZGetConnectionUnixProcessIDZ	SystemBusZCheckAuthorizationZUInt32ZUInt64DBusExceptionrH   )r@   rA   Z	privilegeZ	dbus_infor`   ZpolkitZis_authr"   s   &&&     r   rF   rF      s	   t/EGbdij  mC  DI

.
.v
6C^^DNN,778TV}  @E  F  Hn  oFB 33t{{3a8dkk!1=? @ .7KKN 4 !Q  B@AABs   6A$C !C<c                   s8   a  ] tR t^t o R tR tR tR tRtV t	R# )StdoutRedirectc                sP    \         P                  P                  V 4       Wn        R # r7   )r%   StreamHandlerr=   pipe)r>   rd   rQ   r   r=   ZStdoutRedirect.__init__   s    &&t,	r   c                s<    V P                   P                  V4       R # r7   )rd   Zsend)r>   rM   rQ   r   writeZStdoutRedirect.write   s    		qr   c                rN   r7   rO   rK   r   r   flushZStdoutRedirect.flush   s    r   c                s    VP                   \        P                  8  d4   V P                  V P	                  V4      V P
                  ,           4       R # R # r7   )Zlevelnor%   ZINFOre   r&   Z
terminator)r>   ZrecordrQ   r   emitZStdoutRedirect.emit   s5    >>W\\)JJt{{6*T__<= *r   )rd   N)
rV   rW   rX   rY   r=   re   rf   rg   r[   r\   r]   r_   r   rb   rb      s     > >r   rb   c                 s&   \        V4      pV;\        n        \        n        \        P
                  P                  4        \
        P                  ! 4       P                  V4        \        V 4       \        P                  ! ^ 4       VP                  4        R#   \         d    \        P                  ! ^4        L5\         d7   p\
        P                  ! R4       \        P                  ! ^4        Rp?LpRp?ii ; i  TP                  4        i ; i)r    zException during initN)rb   sysZstdoutZstderrr   r%   Zadd_verbose_log_levelZ	getLoggerZ
addHandlerr5   ZexitZKeyboardInterruptr3   Z	exceptionZclose)r   rd   Zoutr4   s   &&  r   remote_init_proc_entryri      s    

C!!CJOO))+""3'	T
 	

   12 	

s<   %!B !C;9C> ;C;C;,C61C> 6C;;C> >Dc                 sV  aa \         P                  ! 4       p\        P                  ! V4       V P                  Vn        V P
                  Vn        V P                  Vn        R Vn        RVn        RVn	        VR,          Vn
        VR,          Vn        VR,          Vn        R Vn        \        P                  ! R4      w  rE\        P                   ! \"        W53R R7      oSP%                  4        V3R lp\&        P(                  ! VSV3R R7      pV3R lVn        VP%                  4        V# )	Tr   r   r   r!   F)Ztargetr   Zdaemonc                 s6  <   SP                  VP                  4       4       K"    \         d     Mi ; iT P                  4        T P                  ^ 8X  d#   \
        P                  ! SP                  4       R# \
        P                  ! SP                  4       R# TN)	rR   ZrecvZEOFErrorrE   Zexitcoder   Zidle_addrT   rU   )prd   dbus_obj   &&r   monitor_initZ(remote_init_server.<locals>.monitor_init  sk    	((5 		 	
::?MM(++,MM(../s   "% 33c                  s$   < S P                  4       # r7   )rD   )rk   s   r   <lambda>Z$remote_init_server.<locals>.<lambda>(  s    QVVXr   )argparseZ	Namespacer	   Z	prep_argsZdetails_to_stdoutZverboseZquietr.   r   r    r   r   r!   r-   multiprocessingZPipeZProcessri   Zstart	threadingZThreadrD   )	Z_argsrl   rI   r   Zparent_connZ
child_connrn   Ztrk   s	   &f&     @r   rG   rG     s    D	OOD"44D==DLDJDJDDM !12D !12Dm,D#'D -2259K'=TDW`deAGGI0 	A{3DTRAAFGGIHr   c                 sV  a a ^ RI pVP                  RR4       ^ RIHo  ! VV 3R lRSP                  4      p\
        P                  ! R4       V! 4       pVP                  4        VP                  P                  4        VP                  P                  4        SP                  4        R# )r    NGtkz3.0)rs   c                   s~   <a a ] tR tRt oVV 3R ltR tR tR tR tV3R lt	R t
R	 tR
 tV3R ltR tRtVtV ;t# ).remote_init_client.<locals>.WaydroidInitWindowi3  c                s	  <a  \         SS `  R R7       \        P                  P	                  4       pS P                  R^4       S P                  R4       SP                  ^^^
RR7      pVP                  R4       VP                  R4       S P                  V4       SP                  R4      pSP                  4       pVP                  VR,          R,          4       VP                  V^ ^ ^^4       VP                  WCSP                   P"                  ^^4       VP%                  4       S n        SP                  R	4      pSP                  4       pVP                  VR,          R
,          4       VP                  V^ ^^^4       VP                  WeSP                   P"                  ^^4       VP%                  4       S n        SP                  R4      pSP+                  \,        \,        4      pVP/                  RR.4       VP/                  RR.4       SP0                  P3                  V4      p	SP5                  4       p
V	P7                  V
R4       V	P9                  V
R^4       V	P;                  ^ 4       VP                  V^ ^^^4       VP                  WSP                   P"                  ^^4       V	S n        SP?                  R4      pVPA                  RS PB                  4       VP                  V^^^^4       VS n"        SP?                  R4      pVPA                  RV 3R l4       VPG                  4       PI                  R4       VP                  WSP                   P"                  ^^4       VS n%        SPM                  4       pVP                  R4       VP                  R4       SPO                  4       pVPQ                  RR4       VPQ                  RR4       VP                  V4       VP                  V^ ^^^4       VS n)        VS n*        VP%                  4       S n+        S PV                  PY                  RS PV                  P[                  4       R4       . S n.        RS n/        S PA                  RS P`                  4       R# )zInitialize Waydroid)ZtitleiX  r   T)Zrow_spacingZcolumn_spacingZmarginZcolumn_homogeneousz
System OTAr   r   z
Vendor OTAr   zAndroid TypeZVANILLAzMinimal AndroidZGAPPSzAndroid with Google AppsZtextZDownloadZclickedZDonec                 s$   < SP                  4       # r7   )destroy)Zxr>      &r   ro   ZIremote_init_client.<locals>.WaydroidInitWindow.__init__.<locals>.<lambda>b  s    r   zsuggested-actionZeditableFzcursor-visibleendru   N)1Zsuperr=   r	   r   r'   Zset_default_sizeZset_icon_nameZGridZset_hexpandZset_vexpandZaddZLabelZEntryZset_textZattachZattach_next_toZPositionTypeZRIGHTZ
get_buffersysOtavndOtaZ	ListStorer   appendZComboBoxZnew_with_modelZCellRendererTextZ
pack_startZadd_attributeZ
set_activesysTypeZButtonZconnecton_download_btn_clickeddownloadBtnZget_style_contextZ	add_classdoneBtnZScrolledWindowZTextViewZset_propertyoutScrolledWindowoutTextView	outBufferZcreate_markget_end_iterbus_signalsinitializing
on_destroy)r>   r*   ZgridZsysOtaLabelZsysOtaEntryZvndOtaLabelZvndOtaEntryZsysTypeLabelZsysTypesStoreZsysTypeComboZrenderer_textr}   r~   r   r   rs   	__class__s   f              r   r=   Z7remote_init_client.<locals>.WaydroidInitWindow.__init__4  s   G#89 <<557L!!#s+z*88!B[_8`DT"T"HHTN))L1K))+K  j!9:J!KLKKQ1a0#:J:J:P:PRSUVW%002DK))L1K))+K  j!9:J!KLKKQ1a0#:J:J:P:PRSUVW%002DK99^4LMM#s3M  )->!?@  '+E!FG<<66}EL002M##M48&&}fa@##A&KKaAq1C<L<L<R<RTUWXY'DL**Z0K	4+G+GHKKQq1-*Djj(GOOI'?@%%'112DEc6F6F6L6LaQRS"DL # 2 2 4))$/))$/,,.K$$Z7$$%5u=!!+.KK)1aA6%6D"*D(335DNNN&&udnn.I.I.KUS!D %DLLDOO4r   c                sn    V P                   P                  V P                  P                  R 4      4       R# )rw   N)r   Zscroll_mark_onscreenr   Zget_markrK   r   r   scroll_to_bottomZ?remote_init_client.<locals>.WaydroidInitWindow.scroll_to_bottomy  s%    11$..2I2I%2PQr   c                s   VP                  R 4       V P                  P                  4        V P                  P	                  4        V P
                  P                  4       V P
                  P                  4       ,          ^ ,          pV P                  V P                  P                  4       V P                  P                  4       V4       R# )FN)set_sensitiver~   hider   showr{   Z	get_modelZget_active_iterrun_initrx   Zget_textry   )r>   Zwidgetr{      && r   r|   ZFremote_init_client.<locals>.WaydroidInitWindow.on_download_btn_clicked|  s      'LL!!#ll,,.t||/K/K/MNqQGMM$++..0$++2F2F2H'Rr   c                s   VP                  R 4      '       d~   V P                  P                  V P                  P                  4       ^,
          4      pVP	                  4        V P                  P                  W P                  P                  4       4       V P                  P                  V P                  P                  4       V4       V P                  4        R# )ZN)	Z
startswithr   Zget_iter_at_lineZget_line_countZbackward_charZdeleter   Zinsertr   )r>   rM   Zlastr   r   drawZ3remote_init_client.<locals>.WaydroidInitWindow.draw  s    ||D!!~~66t~~7T7T7VWX7XY""$%%dNN,G,G,IJNN!!$.."="="?C!!#r   c                s(    V P                  V4       R # r7   )r   rP   rQ   r   on_progressZ:remote_init_client.<locals>.WaydroidInitWindow.on_progress  s    IIgr   c                s   < R V n         \        S4      '       d.   V P                  P                  4        V P	                  R4       R# R# )Fz
Done
N)r   r   r~   r   r   )r>   r   rv   r   on_finishedZ:remote_init_client.<locals>.WaydroidInitWindow.on_finished  s7     %Dd##!!#		*% $r   c                s6    R V n         V P                  R4       R# )Fz
Interrupted
N)r   r   rK   r   r   on_interruptedZ=remote_init_client.<locals>.WaydroidInitWindow.on_interrupted  s     %DII'(r   c                s<    V P                   P                  R 4       R# rj   )r}   r   rK   r   r   on_replyZ7remote_init_client.<locals>.WaydroidInitWindow.on_reply  s    **40r   c                s   VP                  4       R 8X  d=   V P                  VP                  4       P                  4       R,          R,           4       MV P                  \	        V4      4       V P
                  P                  R4       R# )z+org.freedesktop.DBus.Python.PermissionError
TNi)Zget_dbus_namer   Zget_dbus_messageZ
splitlinesr   r}   r   )r>   r4   rQ   r   on_bus_errorZ;remote_init_client.<locals>.WaydroidInitWindow.on_bus_error  s^     $QQ		!,,.99;B?$FG		#a&!**40r   c                s   < V P                   '       d:    \        P                  P                  P	                  R R4      P                  4        SP                  4        R#     L; i)/Initializerr?   N)r   r	   r   r1   r2   rL   Z	main_quit)r>   r"   rs   rm   r   r   Z9remote_init_client.<locals>.WaydroidInitWindow.on_destroy  sM       MM%%::>Kbcjjl MMOs   8A A#c                s4   V P                    F  pVP                  4        K  	  V P                  R 4       . V n         RV n         \        P
                  P                  P                  RR4      pV P                   P                  VP                  RV P                  4      4       V P                   P                  VP                  RV P                  4      4       V P                   P                  VP                  RV P                  4      4       RVRVR	V/pVP                  W`P                  V P                  R
7       R#   \         P"                   d   pT P                  T4        Rp?R# Rp?i\$         d    pT P                  T R24        Rp?R# Rp?ii ; i)z+
Waiting for waydroid container service...
Tr   r?   rR   rT   rU   r   r   r!   )Zreply_handlerZerror_handlerNr   )r   Zremover   r   r	   r   r1   r2   rz   Zconnect_to_signalr   r   r   rJ   r   r   r:   ra   r3   )r>   Z	systemOtaZ	vendorOtaZ
systemTyperZ   ZinitializerrI   r4   s   &&&&    r   r   Z7remote_init_client.<locals>.WaydroidInitWindow.run_init  sR   ** + IIEF!D $D$#mm//DD^Ulm  ''(E(EFWY]YiYi(jk  ''(E(EjRVRbRb(cd  ''(E(EmUYUhUh(ij %i$i!:
   }}TXTeTe f%% %!!!$$ $		QCr(##$s+   C8D> >FE**F7F8FF)
r   r~   r}   r   r   r   r   rx   r{   ry   )rV   rW   rX   rY   r=   r   r|   r   r   r   r   r   r   r   r   r[   r\   Z__classcell__)r   r^   rs   r   s   @@r   WaydroidInitWindowrt   3  sE     C	5J	R	S	$		&	)	1	1		$ 	$r   r   ZWaydroid)giZrequire_versiongi.repositoryrs   ZWindowr   Zset_prgnameZshow_allr   r   r~   Zmain)r   r   r   Zwinrs   s   f   @r   remote_init_clientr   -  s|    ue$!O$ O$SZZ O$b 	Z 

CLLNOOKKHHJr   )r%   r   r	   r   Ztools.configr$   rh   rr   rq   ZselectZqueueZtimer:   Zdbus.servicerp   r   r   r   r   r+   r5   r;   r<   r6   rF   rc   rb   ri   rG   r   rO   r   r   <module>r      s     	    
         ZUn2Qh'dll)) 'RB"
>W** 
>$"J^r   