+
    }n jä"  ã                   ó<  € ^ RI t ^ RIt^ RIHt ^ RIHtHtHtHt ^ RI	H
t
 ^ RIHt ^ RIHt ^ RIHt ^ RI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 ^ RIH t  ^ RI!H"t" ^ RI#H$t$ ^ RI%H&t& ^ RI'H(t(H)t) ^ RI*H+t+ ]]]]]]]]PX                  ]PZ                  ]P\                  ] ]"]$](]).t/R,R R llt0R-R R llt1R R lt2] Pf                   ! R R] Ph                  4      4       t5R R lt6R R lt7R  R! lt8R" R# lt9R$ R% lt:R& R' lt;R( R) lt<R.R* R+ llt=R# )/é    N)Údefaultdict)ÚDictÚListÚOptionalÚType)Ú
exceptions)ÚUAConfig)Úfips)ÚAnboxEntitlement)ÚUAEntitlement)ÚCommonCriteriaEntitlement)ÚCISEntitlement)ÚApplicabilityStatus)ÚESMAppsEntitlementÚESMInfraEntitlement)ÚESMAppsLegacyEntitlementÚESMInfraLegacyEntitlement)ÚLandscapeEntitlement)ÚLivepatchEntitlement)ÚRealtimeKernelEntitlement)ÚRepoEntitlement)ÚROSEntitlementÚROSUpdatesEntitlement)ÚEntitlementNotFoundErrorc                ó˜   € V ^8„  d   QhR\         R\        R\        R\        R\        R\        \        \        ,          ,          R\
        /# )é   ÚcfgÚnameÚvariantÚpurgeÚaccess_onlyÚ
extra_argsÚreturn)r	   ÚstrÚboolr   r   r   )Úformats   "Ú@/usr/lib/python3/dist-packages/uaclient/entitlements/__init__.pyÚ__annotate__r(   -   sW   € ÷ *:ñ *:Ü	ð*:ä
ð*:ô ð*:ô ð	*:ô
 ð*:ô œœc�Õ#ð*:ô ñ*:ó    c           	     óü   € \          Fg  pV! V VVVVR7      pWP                  9   g   K"  V'       g   Vu # W'P                  9   d    VP                  V,          ! V VVVR7      u # \        VR7      h	  \        VR7      h)a	  Returns a UAEntitlement object based on the provided name.

:param cfg: UAConfig instance
:param name: The name of the entitlement to return
:param variant: The variant name to be used
:param purge: If purge operation is enabled
:param access_only: If entitlement should be set with access only
:param extra_args: Extra parameters to create the entitlement

:raise EntitlementNotFoundError: If no entitlement with the given name is
  found, or if the entitlement exists but no variant with the specified
  name is found.
)r   r!   Úcalled_namer    r"   )r   r+   r    r"   )Úentitlement_name)ÚENTITLEMENT_CLASSESÚvalid_namesÚvariantsr   )r   r   r   r    r!   r"   ÚentitlementÚents   &&&&&&  r'   Úentitlement_factoryr2   -   s�   € ÷, +ˆÙØØ#ØØØ!ô
ˆð —?‘?Ö"ßØ’
ØŸL™LÔ(Ø—|‘| GÖ,ØØ $ØØ)ô	ò ô /ÀÔHÐHñ' +ô( #°DÔ
9Ð9r)   c                óR   € V ^8„  d   QhR\         R\        R\        \        ,          /# )r   r   Ú	all_namesr#   )r	   r%   r   r$   )r&   s   "r'   r(   r(   Z   s%   € ÷ ñ œð ¬Tð ¼dÄ3½iñ r)   c           	     óð   € \         pV'       d9   . pV F%  pVP                  V! V R7      P                  4       K'  	  \        V4      # \        V Uu. uF  pV! V R7      P                  NK  	  up4      # u upi )z¬Return a list of valid services.

:param cfg: UAConfig instance
:param all_names: if we should return all the names for a service instead
    of just the presentation_name
©r   )r-   Úextendr.   ÚsortedÚpresentation_name)r   r4   ÚentitlementsÚnamesÚentitlement_clss   &&   r'   Úvalid_servicesr=   Z   sx   € ô '€LßØˆÛ+ˆOØ�L‰L™¨SÔ1×=Ñ=Ö>ñ  ,ô �e‹}Ðäñ $0ó	
á#/�ñ  Ô$×6Ô6Ù#/ñ	
óð ùò	
s   ÁA3c                óh   € V ^8„  d   QhR\         R\        \        ,          R\        \        ,          /# )r   r   Úentsr#   ©r	   r   r$   )r&   s   "r'   r(   r(   q   s1   € ÷ Oñ OÜ	ðOÜœc�ðOä	Œ#…YñOr)   c                óJ   aa€ \        V 4      oV3R lo\        VV3R lR7      # )zJ
A function to sort entitlments for enabling that preserves invalid names
c                 ó`   <€  SP                  V 4      #   \         d    \        S4      u # i ; i©N)ÚindexÚ
ValueErrorÚlen)r1   Úvalid_ents_ordereds   &€r'   Ú sort_order_with_nonexistent_lastÚIorder_entitlements_for_enabling.<locals>.sort_order_with_nonexistent_lasty   s4   ø€ ð	+Ø%×+Ñ+¨CÓ0Ð0øÜô 	+ÜÐ)Ó*Ò*ð	+ús   ƒ ”-¬-c                 ó   <€ S! V 4      # rC   © )r1   rH   s   &€r'   Ú<lambda>Ú1order_entitlements_for_enabling.<locals>.<lambda>   s   ø€ Ñ(HÈÔ(Mr)   )Úkey)Úentitlements_enable_orderr8   )r   r?   rH   rG   s   &&@@r'   Úorder_entitlements_for_enablingrP   q   s%   ù€ ô 3°3Ó7Ðõ+ô �$ÔMÔNÐNr)   c                   ó2   € ] tR t^‚t]! 4       t]! 4       tRtR# )Ú	SortOrderrK   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚobjectÚREQUIRED_SERVICESÚDEPENDENT_SERVICESÚ__static_attributes__rK   r)   r'   rR   rR   ‚   s   † á›ÐÙ›Ôr)   rR   c                óF   € V ^8„  d   QhR\         R\        \        ,          /# ©r   r   r#   r@   )r&   s   "r'   r(   r(   ˆ   s"   € ÷ Pñ P¤Hð P´´cµñ Pr)   c                ó8   € \        V \        P                  R7      # )zJ
Return the entitlements disable order based on dependent services logic.
©r   Ú
sort_order)Ú_sort_entitlementsrR   rY   r6   s   &r'   Úentitlements_disable_orderra   ˆ   s   € ô  #´)×2NÑ2NÔOÐOr)   c                óF   € V ^8„  d   QhR\         R\        \        ,          /# r\   r@   )r&   s   "r'   r(   r(   �   s"   € ÷ Oñ O¤8ð O´´Sµ	ñ Or)   c                ó8   € \        V \        P                  R7      # )zH
Return the entitlements enable order based on required services logic.
r^   )r`   rR   rX   r6   s   &r'   rO   rO   �   s   € ô  #´)×2MÑ2MÔNÐNr)   c                ó¢   € V ^8„  d   QhR\         R\        \        ,          R\        R\        \
        \        3,          R\        \
        ,          /# )r   r   Úent_clsr_   ÚvisitedÚorder)r	   r   r   rR   r   r$   r%   r   )r&   s   "r'   r(   r(   –   sK   € ÷ &ñ &Ü	ð&ä”-Õ ð&ô ð&ô ”#”t�)�_ð	&ô
 ”�9ñ&r)   c           	      ó´  € VP                   V9   d   R # V! V 4      pV\        P                  8X  d&   VP                   Uu. uF  qfP                  NK  	  ppM\        VP                  4      pV F&  pVP                   V9  g   K  \        V VVVVR7       K(  	  VP                  \        VP                   4      4       RV\        VP                   4      &   R # u upi )N©r   re   r_   rf   rg   T)
r   rR   rX   Úrequired_servicesr0   ÚlistÚdependent_servicesÚ_sort_entitlements_visitÚappendr$   )	r   re   r_   rf   rg   r1   ÚeÚcls_listÚcls_dependencys	   &&&&&    r'   rm   rm   –   s·   € ð ‡|�|�wÔÙá
�#‹,€Cà”Y×0Ñ0Ô0Ø+.×+@Ò+@ÓAÑ+@ a—M”MÑ+@ˆÐAˆä˜×.Ñ.Ó/ˆã"ˆØ�<‰<˜wÖ&Ü$ØØ&Ø%ØØ÷ñ #ð 
‡L�L”�W—\‘\Ó"Ô#Ø!%€GŒC�—‘ÓÓùò Bs   ¿Cc                óR   € V ^8„  d   QhR\         R\        R\        \        ,          /# )r   r   r_   r#   )r	   rR   r   r$   )r&   s   "r'   r(   r(   µ   s%   € ÷ ñ œHð ´)ð ÄÄSÅ	ñ r)   c           	      óH   € . p/ p\          F  p\        V VVVVR 7       K  	  V# )ri   )r-   rm   )r   r_   rg   rf   re   s   &&   r'   r`   r`   µ   s4   € Ø€EØ€Gç&ˆÜ ØØØ!ØØ÷	
ñ 'ð €Lr)   c                óF   € V ^8„  d   QhR\         \        ,          R\        /# )r   r;   r   )r   r$   r	   )r&   s   "r'   r(   r(   Å   s   € ÷ 6ñ 6¤t¬C¥yð 6´xñ 6r)   c                ó°   € . pV  F(  pV\        VRR7      9   g   K  VP                  V4       K*  	  \        \        V 4      \        V4      ,
          4      pW$3# )z¡Return a list of valid entitlement names.

:param names: List of entitlements to validate
:return: a tuple of List containing the valid and invalid entitlements
T)r   r4   )r=   rn   r8   Úset)r;   r   Úentitlements_foundÚent_nameÚentitlements_not_founds   &&   r'   Úget_valid_entitlement_namesrz   Å   sV   € ð ÐãˆØ”~¨#¸Ô>Ö>Ø×%Ñ% hÖ/ñ ô $¤C¨£J´Ð5GÓ1HÕ$HÓIÐàÐ5Ð5r)   c                óD   € V ^8„  d   QhR\         R\        P                  /# r\   )r	   r   ÚUbuntuProError)r&   s   "r'   r(   r(   Ö   s"   € ÷ ñ Ü!)ðä×Ññr)   c           	     óú   € \        VR7      pRP                  V4      pRP                  \        P                  ! RV,           R,           ^PRRR7      4      p\        P
                  ! RRP                  V 4      VR	7      # )
zo
Constructs the MESSAGE_INVALID_SERVICE_OP_FAILURE message
based on the attempted services and valid services.
r6   ú, Ú
zTry Ú.F)ÚwidthÚbreak_long_wordsÚbreak_on_hyphensÚenable)Ú	operationÚinvalid_serviceÚservice_msg)r=   ÚjoinÚtextwrapÚwrapr   ÚInvalidServiceOpError)ry   r   Úvalid_services_namesr.   r‡   s   &&   r'   Ú*create_enable_entitlements_not_found_errorr�   Ö   sv   € ô *¨cÔ2ÐØ—)‘)Ð0Ó1€KØ—)‘)Ü�ŠØ�[Õ  3Õ&ØØ"Ø"ô		
ó€Kô ×+Ò+ØØŸ	™	Ð"8Ó9Øôð r)   c                ó0   € V ^8„  d   QhR\         R\        /# r\   )r	   r%   )r&   s   "r'   r(   r(   î   s   € ÷ +ñ +Ü	ð+ä	ñ+r)   c                 ó¾  € \        \        4      p\        V 4       EF=  p\        W4      p\	        V\
        4      '       g   K'  VP                  4       w  rEV\        P                  8X  dd   VP                  pVP                  ;'       g    RpV F;  pVP                  P                  Wh4      p	W,          P                  R VRVRV/4       K=  	  VP                  4        Fx  w  rZ\        V
4      ^8”  g   K  V
^ ,          R,          pV
^ ,          R,          p\         P"                  ! V P$                  RP'                  \)        R V
 4       4      4      VVR7      h	  EK@  	  R# )ÚfromÚapt_urlÚsuiter~   c              3   óF   "  € T F  p\        VR ,          4      x € K  	  R# 5i)r�   N)r$   )Ú.0r1   s   & r'   Ú	<genexpr>Ú>check_entitlement_apt_directives_are_unique.<locals>.<genexpr>  s   é € ÐI¹=°Cœs 3 v¥;×/Ð/»=ùs   ‚!)Úurlr;   r‘   r’   TrK   )r   rk   r=   r2   Ú
isinstancer   Úapplicability_statusr   Ú
APPLICABLEr‘   Ú
apt_suitesÚrepo_policy_check_tmplr&   rn   ÚitemsrF   r   Ú%EntitlementsAPTDirectivesAreNotUniqueÚcontract_urlrˆ   r8   )r   Úentitlement_directivesrx   r1   r™   Ú_r‘   r›   r’   Úentitlement_directiveÚent_directiveÚent_apt_urlÚ	ent_suites   &            r'   Ú+check_entitlement_apt_directives_are_uniquer¦   î   sE  € ô )¬Ó.Ðä" 3×'ˆÜ! #Ó0ˆä˜#œ×/Ò/Ùà"%×":Ñ":Ó"<ÑÐàÔ#6×#AÑ#AÔAØ—k‘kˆGØŸ™×-Ð-¨2ˆJã#�Ø(+×(BÑ(B×(IÑ(IØó)Ð%ð 'Õ=×DÑDà Ø! 7Ø ðöñ	 $ð !7× <Ñ <Ö >ÑˆAÜ�=Ó! AÖ%Ø+¨AÕ.¨yÕ9�Ø)¨!Õ,¨WÕ5�	ä ×FÒFØ×(Ñ(ØŸ)™)ÜÑI¹=ÓIÓIóð (Ø#ôð ô !?ñ1 (ñL r)   c                ó0   € V ^8„  d   QhR\         R\        /# )r   r   rx   )r	   r$   )r&   s   "r'   r(   r(     s   € ÷ ñ ”8ð ¤sñ r)   c                 ól   €  \        WVR 7      P                  #   \        P                   d    Tu # i ; i))r   )r2   Útitler   r|   )r   rx   r   s   &&&r'   Ú	get_titlerª     s4   € ðÜ" 3¸'ÔB×HÑHÐHøÜ×$Ñ$ô ØŠðús   ‚ ™3²3)Ú FFN)F)r«   )>Úenumr‰   Úcollectionsr   Útypingr   r   r   r   Úuaclientr   Úuaclient.configr	   Úuaclient.entitlementsr
   Úuaclient.entitlements.anboxr   Úuaclient.entitlements.baser   Úuaclient.entitlements.ccr   Úuaclient.entitlements.cisr   Ú(uaclient.entitlements.entitlement_statusr   Úuaclient.entitlements.esmr   r   Ú uaclient.entitlements.esm_legacyr   r   Úuaclient.entitlements.landscaper   Úuaclient.entitlements.livepatchr   Úuaclient.entitlements.realtimer   Úuaclient.entitlements.repor   Úuaclient.entitlements.rosr   r   Úuaclient.exceptionsr   ÚFIPSEntitlementÚFIPSUpdatesEntitlementÚFIPSPreviewEntitlementr-   r2   r=   rP   ÚuniqueÚEnumrR   ra   rO   rm   r`   rz   r�   r¦   rª   rK   r)   r'   Ú<module>rÄ      sö   ðÛ Û Ý #ß -Ó -å Ý $Ý &Ý 8Ý 4Ý >Ý 4Ý Hß M÷õ AÝ @Ý DÝ 6ß KÝ 8ð ØØØØØØØ×ÑØ×ÑØ×ÑØØØØØðÐ ÷&*:÷Zõ.Oð" ‡�ô"�—	‘	ó "ó ð"õ
PõOõ&õ>õ 6õ"õ0+÷\ñ r)   