+
    }n j:  ã                   ó|  € ^ RI t ^ RIHtHtHtHtHt ^ RIHtH	t	H
t
HtHt ^ RIHt ^ RIHtHt ^ RIHtHtHt ]	P,                  ! 4       t] P0                  ! ]P2                  ! ]4      4      tRR/t ! R	 R
]P:                  4      t ! R R]4      t ! R R]4      t  ! R R]4      t! ! R R]4      t" ! R R]4      t#R# )é    N)ÚAnyÚDictÚOptionalÚTupleÚType)ÚaptÚevent_loggerÚmessagesÚsystemÚutil)Úrepo)ÚEntitlementWithMessageÚUAEntitlement)ÚMessagingOperationsÚMessagingOperationsDictÚStaticAffordanceÚGenuineIntelÚintelc                   ó  a € ] tR t^t o Rt]P                  t]P                  t	]P                  tRtRtRtRtRtV 3R lR ltV 3R lR	 lt]R
 4       t]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       tV 3R lR ltRtV tR# )ÚRealtimeKernelEntitlementzrealtime-kernelzubuntu-pro-realtime-kernel.gpgTFÚUbuntuRealtimeKernelc                ó    <€ V ^8„  d   QhRS[ /# ©é   Úreturn©Úbool)ÚformatÚ__classdict__s   "€Ú@/usr/lib/python3/dist-packages/uaclient/entitlements/realtime.pyÚ__annotate__Ú&RealtimeKernelEntitlement.__annotate__   s   ø€ ÷ ñ ¡4ñ ó    c                óš   € \         P                  ! \        V P                  4      \        R.4      R7      p\        P                  V4       V# )z%Check if system needs to be rebooted.zlinux-.*-realtime)Úinstalled_pkgsÚinstalled_pkgs_regex)r   Úshould_rebootÚsetÚpackagesÚeventÚneeds_reboot)ÚselfÚreboot_requireds   & r    Ú_check_for_rebootÚ+RealtimeKernelEntitlement._check_for_reboot   s@   € ä ×.Ò.Ü˜tŸ}™}Ó-Ü!$Ð&9Ð%:Ó!;ô
ˆô 	×Ñ˜?Ô+ØÐr#   c                óF   <€ V ^8„  d   QhRS[ S[S[S[,          3,          /# r   )r   Ústrr   r   )r   r   s   "€r    r!   r"   '   s#   ø€ ÷ 
ñ 
™t¡C©©mÕ)<Ð$<Õ=ñ 
r#   c                ó¦   € \         P                  \         \        P                  \        \        P                  \        \        P                  \        /# ©N)ÚGenericRealtimeÚvariant_nameÚNvidiaTegraRealtimeÚRaspberryPiRealtimeÚIntelIotgRealtime©r,   s   &r    Ú_get_variantsÚ'RealtimeKernelEntitlement._get_variants'   s;   € ä×(Ñ(¬/Ü×,Ñ,Ô.AÜ×,Ñ,Ô.AÜ×*Ñ*Ô,=ð	
ð 	
r#   c                ó6   € V P                   '       d   R # \        # r3   )Úaccess_onlyr4   r9   s   &r    Údefault_variantÚ)RealtimeKernelEntitlement.default_variant/   s   € à××ÐÙÜÐr#   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# ©r   r   .©r   r   )r   r   s   "€r    r!   r"   6   s   ø€ ÷ 
ñ 
¡uÑ-CÀSÐ-HÕ'Iñ 
r#   c                ó¸   € ^ RI HpHp ^ RIHp \        V\        P                  4      \        V\        P                  4      \        V\        P                  4      3# )r   )ÚFIPSEntitlementÚFIPSUpdatesEntitlement)ÚLivepatchEntitlement)
Úuaclient.entitlements.fipsrD   rE   Úuaclient.entitlements.livepatchrF   r   r
   ÚREALTIME_FIPS_INCOMPATIBLEÚ"REALTIME_FIPS_UPDATES_INCOMPATIBLEÚREALTIME_LIVEPATCH_INCOMPATIBLE)r,   rD   rE   rF   s   &   r    Úincompatible_servicesÚ/RealtimeKernelEntitlement.incompatible_services5   sW   € ÷	
õ 	Iô #Ø¤×!DÑ!Dóô #Ø&Ü×;Ñ;óô #Ø$¤h×&NÑ&Nóð
ð 	
r#   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# rA   )r   r   )r   r   s   "€r    r!   r"   K   s   ø€ ÷ 
ñ 
¡EÑ*:¸CÐ*?Õ$@ñ 
r#   c                ó,   € \         P                  R  R33# )c                  ó,   € \         P                  ! 4       # r3   )r   Úis_container© r#   r    Ú<lambda>Ú>RealtimeKernelEntitlement.static_affordances.<locals>.<lambda>O   s   € œ×+Ò+Ô-r#   F)r
   Ú#REALTIME_ERROR_INSTALL_ON_CONTAINERr9   s   &r    Ústatic_affordancesÚ,RealtimeKernelEntitlement.static_affordancesJ   s"   € ô ×<Ñ<Ù-Øðð
ð 	
r#   c                ó    <€ V ^8„  d   QhRS[ /# r   ©r   )r   r   s   "€r    r!   r"   U   s   ø€ ÷ 
ñ 
á	 ñ
r#   c                óî   € R pV P                   '       g&   \        P                  R\        P                  RR/3.pR pV P
                  '       g$   \        P                  R\        P                  /3.pRVRV/# )NÚmsgÚdefaultTÚ
pre_enableÚpre_disable)r=   r   Úprompt_for_confirmationr
   ÚREALTIME_PROMPTÚpurgeÚREALTIME_PRE_DISABLE_PROMPT)r,   r]   r^   s   &  r    Ú	messagingÚ#RealtimeKernelEntitlement.messagingT   sŽ   € ð ˆ
Ø××Ðô ×0Ñ0àœx×7Ñ7Ø! 4ðððˆJð ˆØ�z�zˆzô ×0Ñ0àœx×CÑCðððˆKð ˜*Ø˜;ð
ð 	
r#   c                ó   <€ V ^8„  d   QhRR/# )r   r   NrR   )r   r   s   "€r    r!   r"   t   s   ø€ ÷ ñ  ñ r#   c                ó*  € \        V P                  4      P                  \        \        P                  ! 4       4      4      pV'       dK   \        P
                  ! \        V4      \        P                  P                  V P                  R 7      4       R# R# ))ÚtitleN)r(   r)   Úintersectionr   Úget_installed_packages_namesÚremove_packagesÚlistr
   ÚDISABLE_FAILED_TMPLr   rg   )r,   r)   s   & r    rj   Ú)RealtimeKernelEntitlement.remove_packagest   sf   € Ü�t—}‘}Ó%×2Ñ2Ü”×0Ò0Ó2Ó3ó
ˆ÷ Ü×ÒÜ�X“Ü×,Ñ,×3Ñ3¸$¿*¹*Ð3ÓEöñ r#   rR   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Únamer
   ÚREALTIME_TITLErg   ÚREALTIME_DESCRIPTIONÚdescriptionÚREALTIME_HELP_TEXTÚ	help_textÚrepo_key_fileÚapt_noninteractiveÚsupports_access_onlyÚsupports_purgeÚoriginr.   r:   Úpropertyr>   rL   rV   rc   rj   Ú__static_attributes__Ú__classdictcell__©r   s   @r    r   r      s´   ø‡ € Ø€DØ×#Ñ#€EØ×/Ñ/€KØ×+Ñ+€IØ4€MØÐØÐØ€NØ#€F÷ð ÷
ð 
ð ñó ðð
 ÷
ó ð
ð( ÷
ó ð
ð ÷
ó ð
÷>ö r#   r   c                   óH   a a€ ] tR t^t o]V3R lV 3R ll4       tRtVtV ;t# )ÚRealtimeVariantc                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# rA   rB   )r   r   s   "€r    r!   ÚRealtimeVariant.__annotate__�   s"   ø€ ÷ Eñ E¡uÑ-CÀSÐ-HÕ'Iñ Er#   c                ó  <€ \        V P                  P                  4        UUu. uFD  w  r\        V\        P
                  P                  V P                  VP                  R 7      4      NKF  	  upp4      p\        SV `$  V,           # u uppi ))ÚserviceÚvariant)
ÚtupleÚother_variantsÚitemsr   r
   ÚREALTIME_VARIANT_INCOMPATIBLEr   rg   ÚsuperrL   )r,   rr   ÚclsÚincompatible_variantsÚ	__class__s   &   €r    rL   Ú%RealtimeVariant.incompatible_services€   s‡   ø€ ä %ð "&×!4Ñ!4×!:Ñ!:Ô!<ôñ "=‘I�Dô 'ØÜ×:Ñ:×AÑAØ $§
¡
°C·I±Ið Bó öñ "=òó
!
Ðô ‰wÑ,Ð/DÕDÐDùós   ¤A
B
rR   )	rn   ro   rp   rq   r}   rL   r~   r   Ú__classcell__©r�   r   s   @@r    r‚   r‚      s%   ù‡ € Ø÷Eò Eó ÷Eð Er#   r‚   c                   ó„   a a€ ] tR t^�t oRt]P                  t]P                  t	Rt
Rt]V3R lV 3R ll4       tRtVtV ;t# )r4   ÚgenericTc                ó    <€ V ^8„  d   QhRS[ /# r   rY   )r   r   s   "€r    r!   ÚGenericRealtime.__annotate__˜   s   ø€ ÷ ñ á	 ñr#   c                ón  <€ \         SV `  p\        P                  ! 4       P                  pVR 8w  d„   VP                  R4      ;'       g    . p\        P                  P                  V P                  V P                  R T;'       g    RR7      pVP                  \        P                  RV/34       W1R&   V# )r”   r]   Úunknown)r‡   r†   Úbase_flavorÚcurrent_flavorr[   )rŒ   rc   r   Úget_kernel_infoÚflavorÚgetr
   Ú#KERNEL_FLAVOR_CHANGE_WARNING_PROMPTr   r5   rr   Úappendr   r_   )r,   rc   rš   r]   r[   r�   s   &    €r    rc   ÚGenericRealtime.messaging—   s°   ø€ ô ‘GÑ%ˆ	Ü×/Ò/Ó1×8Ñ8ˆØ˜YÔ&Ø"Ÿ™ |Ó4×:Ð:¸ˆJÜ×>Ñ>×EÑEØ×)Ñ)ØŸ	™	Ø%Ø-×:Ð:°ð	 Fó ˆCð ×Ñä×0Ñ0Ø˜C�Lðôð '1�lÑ#ØÐr#   rR   )rn   ro   rp   rq   r5   r
   ÚREALTIME_GENERIC_TITLErg   ÚREALTIME_GENERIC_DESCRIPTIONru   Ú
is_variantÚcheck_packages_are_installedr}   rc   r~   r   r‘   r’   s   @@r    r4   r4   �   sG   ù‡ € Ø€LØ×+Ñ+€EØ×7Ñ7€KØ€JØ#'Ð à÷ò ó ÷ð r#   r4   c                   óR   € ] tR t^¯tRt]P                  t]P                  t	Rt
RtRtR# )r6   znvidia-tegraTrR   N)rn   ro   rp   rq   r5   r
   ÚREALTIME_NVIDIA_TITLErg   ÚREALTIME_NVIDIA_DESCRIPTIONru   r£   r¤   r~   rR   r#   r    r6   r6   ¯   s(   † Ø!€LØ×*Ñ*€EØ×6Ñ6€KØ€JØ#'Ô r#   r6   c                   ón   a € ] tR t^·t o Rt]P                  t]P                  t	Rt
RtV 3R lR ltRtV tR# )r7   ÚraspiTc                ó    <€ V ^8„  d   QhRS[ /# r   r   )r   r   s   "€r    r!   Ú RaspberryPiRealtime.__annotate__¾   s   ø€ ÷ ñ ¡Tñ r#   c                óî   € R p \         P                  ! V4      P                  4       P                  4       pRV9   ;'       g    RV9   #   \         d"   p\
        P                  RT4        Rp?R# Rp?ii ; i)z/proc/device-tree/modelzraspberry pi 4zraspberry pi 5z)Error while detecting if raspberry pi: %rNF)r   Ú	load_fileÚstripÚlowerÚ	ExceptionÚLOGÚinfo)r,   Úproc_file_pathÚmodelÚes   &   r    Úvariant_auto_selectÚ'RaspberryPiRealtime.variant_auto_select¾   si   € Ø2ˆð	Ü×$Ò$ ^Ó4×:Ñ:Ó<×BÑBÓDˆEØ# uÑ,×IÐIÐ0@ÀEÑ0IÐIøÜô 	Ü�H‰HÐ@À!ÔDÝûð	ús   „=A ÁA ÁA4ÁA/Á/A4rR   N)rn   ro   rp   rq   r5   r
   ÚREALTIME_RASPI_TITLErg   ÚREALTIME_RASPI_DESCRIPTIONru   r£   r¤   r¶   r~   r   r€   s   @r    r7   r7   ·   s5   ø‡ € Ø€LØ×)Ñ)€EØ×5Ñ5€KØ€JØ#'Ð ÷ö r#   r7   c                   ón   a € ] tR t^Èt o Rt]P                  t]P                  t	Rt
RtV 3R lR ltRtV tR# )r8   z
intel-iotgTc                óv   <€ V ^8„  d   QhRS[ S[S[3,          RS[S[S[S[P                  ,          3,          /# )r   Úplatform_checksr   )r   r1   r   r   r   r   r
   ÚNamedMessage)r   r   s   "€r    r!   ÚIntelIotgRealtime.__annotate__Ï   s:   ø€ ÷ ñ Ù#¡C© H�~ðá	‰t‘X™h×3Ñ3Õ4Ð4Õ	5ñr#   c                ó,  € \         P                  ! 4       P                  ;'       g    R p\        P	                  W"4      pVP	                  R. 4      pW#9   d   R# R\
        P                  P                  V P                  VRP                  V4      R7      3# )Ú Úcpu_vendor_idsFÚ,)rg   ÚvendorÚsupported_vendors)TN)
r   Úget_cpu_infoÚcpuinfo_vendor_idÚCPU_VENDOR_MAPr�   r
   ÚINAPPLICABLE_VENDOR_NAMEr   rg   Újoin)r,   r¼   Ú	vendor_idrÁ   s   &&  r    Úverify_platform_checksÚ(IntelIotgRealtime.verify_platform_checksÏ   s‹   € ô ×'Ò'Ó)×;Ñ;×AÐA¸rˆ	Ü"×&Ñ& yÓ<ˆ	Ø(×,Ñ,Ð-=¸rÓBˆØÔ&ØÐàœ(×;Ñ;×BÑBØ—j‘jØ Ø"%§(¡(¨>Ó":ð Có ð ð r#   rR   N)rn   ro   rp   rq   r5   r
   ÚREALTIME_INTEL_TITLErg   ÚREALTIME_INTEL_DESCRIPTIONru   r£   r¤   rË   r~   r   r€   s   @r    r8   r8   È   s5   ø‡ € Ø€LØ×)Ñ)€EØ×5Ñ5€KØ€JØ#'Ð ÷ö r#   r8   )$ÚloggingÚtypingr   r   r   r   r   Úuaclientr   r	   r
   r   r   Úuaclient.entitlementsr   Úuaclient.entitlements.baser   r   Úuaclient.typesr   r   r   Úget_event_loggerr*   Ú	getLoggerÚreplace_top_level_logger_namern   r±   rÇ   ÚRepoEntitlementr   r‚   r4   r6   r7   r8   rR   r#   r    Ú<module>rÙ      s­   ðÛ ß 3Õ 3ç >Õ >Ý &ß L÷ñ ð 	×%Ò%Ó'€Ø×Ò˜×:Ò:¸8ÓDÓE€à  'Ð*€ôi × 4Ñ 4ô iôXEÐ/ô Eô"�oô ô>(˜/ô (ô˜/ô ô"˜ö r#   