Ë
    GKÕië  ã                   ó°  — d dl Z d dlZd dlmZ d dlmZmZmZmZm	Z	 d dl
mZ d dlmZmZmZ d dlmZ d dlmZ d dlmZmZmZ d d	lmZ d d
lmZ d dlmZ  edg d¢«      Z ej>                  ej@                  ¬«      defd„«       Z!d„ Z"d„ Z#d„ Z$ edejJ                  ejL                  e$ejN                  d e edejP                  ¬«      g¬«      g¬«      Z)y)é    N)Ú
namedtuple)ÚdefaultsÚ
exceptionsÚmessagesÚsystemÚutil)ÚVulnerabilityData)ÚCVEInfoÚCVEsOptionsÚ_cves)Ú#query_installed_source_pkg_versions)Úcli_util)ÚProArgumentÚProArgumentGroupÚ
ProCommand)ÚTable)ÚHelpCategory)ÚUAConfigÚAffectedPackage©ÚnameÚ
fix_statusÚ
fix_originÚfix_version)ÚmsgÚcfgc                ój   — 	 t        t        «       |¬«      }|S # t        j                  $ r d }Y |S w xY w)N)Úoptionsr   )r   r   r   ÚVulnerabilityDataNotFound)Úargsr   ÚkwargsÚresults       ú2/usr/lib/python3/dist-packages/uaclient/cli/cve.pyÚ_get_cve_vulnerabilitiesr$      s=   € ðÜœ{›}°#Ô6ˆð €Møô ×/Ñ/ò Ø‰à€Mðús   ‚ ™2±2c                 ó˜  — g }t        «       }|j                  D ]®  }|j                  |i «      j                  «       }t	        |«      D ]~  }| j
                  j                  |«      }|sŒ!|j                  D ]O  }	|	j                  |k(  sŒ|j                  t        ||	j                  |	j                  |	j                  ¬«      «        Œ~ Œ€ Œ° |S )Nr   )r   Úrelated_packagesÚgetÚkeysÚsortedÚpackagesÚcvesr   Úappendr   r   r   r   )
Úcve_vulnerabilitiesÚcve_infoÚcve_nameÚrowsÚinstalled_pkgs_by_sourceÚ
source_pkgÚbinary_pkgsÚ
binary_pkgÚbinary_pkg_infoÚcves
             r#   Ú_get_affected_pkgsr7       sÆ   € Ø€DÜBÓDÐà×/Ñ/ò ˆ
Ø.×2Ñ2°:¸rÓB×GÑGÓIˆä  Ó-ò 	ˆJØ1×:Ñ:×>Ñ>¸zÓJˆOâØ*×/Ñ/ò 
�CØ—x‘x 8Ó+ØŸ™Ü+Ø%/Ø+.¯>©>Ø+.¯>©>Ø,/¯O©Oô	ôñ ñ
ñ		ðð& €Kó    c                 ó^  — g }| D ]¥  }|j                   dk(  r\|j                  dj                  |j                  «      |j                   dj                  |j                  «      |j
                  g«       Œn|j                  dj                  |j                  «      |j                   ddg«       Œ§ |S )NÚfixedz{}:z({})Ú )r   r,   Úformatr   r   r   )Úaffected_pkgsÚformatted_rowsÚaffected_pkgs      r#   Ú_format_affected_pkgsr@   :   s«   € Ø€Nà%ò ˆØ×"Ñ" gÒ-Ø×!Ñ!à—L‘L ×!2Ñ!2Ó3Ø ×+Ñ+Ø—M‘M ,×"9Ñ"9Ó:Ø ×,Ñ,ð	õð ×!Ñ!à—L‘L ×!2Ñ!2Ó3Ø ×+Ñ+ØØð	õðð( Ðr8   c                ó	  — | j                   j                  «       }t        | |¬«      }|st        j                  «       ‚||j
                  v�rt        |«      j                  «       j                  di «      j                  di «      j                  |«      }|s‚t        j                  «       j                  }t        t        j                  j                  | j                   |dj                  t        j                   |«      ¬«      t"        j$                  ¬«       y t'        |d   t)        j*                  |d   «      |d	   |d
   |d   |d   g ¬«      }d}nI|j
                  |   }t-        t/        ||| j                   «      «      }	t1        |	¬«      j3                  «       }t        dj                  |«      «       t        dj                  t        j                   |«      «       t        dj                  |j4                  j7                  d«      «      «       t        dj                  |j8                  j7                  d«      «      «       t        dj                  |j:                  j7                  d«      «      «       t        dj                  t=        j>                  |j@                  «      «      «       |jB                  r$t        dj                  |jB                  «      «       |jD                  r$t        dj                  |jD                  «      «       t        d«       t        dj                  djG                  tI        jJ                  |jL                  t        jN                  dddd¬«      «      «      «       |jP                  rNt        d«       |jP                  D ]4  }
t        tI        jR                  |
t        jN                  ddd d!¬«      «       Œ6 |r/t        d"«       |jU                  «       D ]  }t        d|z   «       Œ nt        d#«       |jV                  rj|jV                  D �cg c]4  }|jX                  r&d$j                  |jZ                  |jX                  «      ‘Œ6 }}|rt        d%«       |D ]  }t        |«       Œ y y y c c}w )&N)r   Úsecurity_issuesr+   z{}/{})ÚissueÚreleaseÚurl)ÚfileÚdescriptionÚpublished_atÚubuntu_priorityÚnotesÚ
cvss_scoreÚcvss_severity)rG   rH   ÚpriorityrJ   rK   rL   Úrelated_usnsr;   )r0   zname:            {}zpublic-url:      {}/{}zpublished-at:    {}z%Y-%m-%dzcve-cache-date:  {}zapt-cache-date:  {}zpriority:        {}zcvss-score:      {}zcvss-severity:   {}zdescription: |z{}ú
Fz  )ÚwidthÚbreak_long_wordsÚbreak_on_hyphensÚinitial_indentÚsubsequent_indentznotes:z  - z    zaffected_packages:zaffected_packages: []z  {}: {}zrelated_usns:).r6   Úupperr$   r   r   r+   r	   r'   r   Úget_release_inforD   Úprintr   ÚCLI_CVE_NOT_FOUND_IN_DATAr<   r   ÚBASE_SECURITY_URLÚsysÚstderrr
   r   Úparse_rfc3339_dater@   r7   r   Ú	to_stringrH   ÚstrftimeÚvulnerability_data_published_atÚapt_updated_atr   Úcolorize_priorityrM   rK   rL   ÚjoinÚtextwrapÚwraprG   ÚPRINT_WRAP_WIDTHrJ   ÚfillÚ
splitlinesrN   Útitler   )r    r   r!   r/   r-   Úcve_datarD   r.   Úaffected_pkgs_tableÚaffected_pkgs_rowsÚnoteÚlineÚusnrN   Úrelated_usns                  r#   Ú
action_cverp   T   sø  € Ø�x‰x�~‰~Ó€HÜ2°4¸SÔAÐáÜ×2Ñ2Ó4Ð4àÐ*×/Ñ/Ò/ä˜cÓ"ß‰S‹Uß‰SÐ" BÓ'ß‰S�˜‹_ß‰S�‹]ð 	ñ Ü×-Ñ-Ó/×7Ñ7ˆGÜÜ×2Ñ2×9Ñ9ØŸ(™(Ø#ØŸ™¤x×'AÑ'AÀ8ÓLð :ó ô
 —Z‘Zõð äØ  Ñ/Ü×0Ñ0°¸.Ñ1IÓJØÐ/Ñ0Ø˜7Ñ#Ø Ñ-Ø" ?Ñ3Øô
ˆð !Ñà&×+Ñ+¨HÑ5ˆä2ÜÐ2°H¸d¿h¹hÓGó
Ðô $Ð);Ô<×FÑFÓHÐä	Ð
×
&Ñ
& xÓ
0Ô1Ü	Ø ×'Ñ'¬×(BÑ(BÀHÓMôô 
Ø×$Ñ$Ø×!Ñ!×*Ñ*¨:Ó6ó	
ôô
 
Ø×$Ñ$Ø×?Ñ?×HÑHØóó	
ôô 
Ø×$Ñ$Ø×.Ñ.×7Ñ7¸
ÓCó	
ôô
 
Ø×$Ñ$Ü×&Ñ& x×'8Ñ'8Ó9ó	
ôð ×ÒÜÐ#×*Ñ*¨8×+>Ñ+>Ó?Ô@à×ÒÜÐ#×*Ñ*¨8×+AÑ+AÓBÔCä	Ð
ÔÜ	Ø�‰Ø�I‰IÜ—‘Ø×(Ñ(Ü"×3Ñ3Ø%*Ø%*Ø#'Ø&*ôó	ó	
ôð ‡~‚~ÜˆhŒØ—N‘Nò 
	ˆDÜÜ—‘ØÜ"×3Ñ3Ø%*Ø%*Ø#)Ø&,ôõ	ð
	ñ ÜÐ"Ô#Ø'×2Ñ2Ó4ò 	ˆDÜ�$˜‘+Õñ	ô 	Ð%Ô&à×Òð  ×,Ñ,ö
àØ�yŠyð ×Ñ˜cŸh™h¨¯	©	Õ2ð
ˆð 
ñ Ü�/Ô"Ø+ò #�Ü�kÕ"ñ#ð ð ùò
s   Ð$9Rr6   T)Úhelp)Ú	arguments)rq   rG   ÚactionÚhelp_categoryÚpreserve_descriptionÚargument_groups)*rZ   rc   Úcollectionsr   Úuaclientr   r   r   r   r   Ú+uaclient.api.u.pro.security.cves._common.v1r	   Ú#uaclient.api.u.pro.security.cves.v1r
   r   r   Ú'uaclient.api.u.pro.security.fix._commonr   Úuaclient.clir   Úuaclient.cli.commandsr   r   r   Úuaclient.cli.formatterr   Úuaclient.cli.parserr   Úuaclient.configr   r   Úwith_spinnerÚCLI_CVES_SPINNER_MSGr$   r7   r@   rp   ÚCLI_CVEÚCLI_CVE_DESCÚSECURITYÚCLI_CVE_ISSUEÚcve_command© r8   r#   ú<module>r‰      sÛ   ðÛ 
Û Ý "ç AÕ AÝ Iß KÑ Kõõ "ß KÑ KÝ (Ý ,Ý $áØÒJó€ð
 €×Ñ˜8×8Ñ8Ô9ð¨8ò ó :ðòò4ò4~#ñB Ø	Ø	×	Ñ	Ø×%Ñ%ØØ×'Ñ'ØááØØ!×/Ñ/ôðô	
ð	ô�r8   