+
    ju                       ^ 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t^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^RIHt ^RIHtHtHt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* ])PV                  ]*n+        ^ RI,H-t-H.t.H/t/H0t0 ^RI1H2t3 ^RI1H4t4 ^ RI2t2^RI#H5t5H6t6H7t7 ^RI8H9t9 Rt:R t;R t<R t= ! R R]>4      t?R# )    N)NoOptionError)ConfigParser)get)url_downloadablecheck_and_fix_xbitiptables_activeinside_chroot)get_string_with_no_auth_from_source_entryis_child_of_process_nameinhibit_sleep)urlsplit)Step)MyCache)DistUpgradeConfig)DistUpgradeQuirks)distinfo)sourceslist)SourcesListSourceEntryDeb822SourceEntry	is_mirror)gettext)ngettext)CacheExceptionDpkgInterruptedCacheExceptionLockingFailedNotEnoughFreeSpaceError)
run_apportz/var/run/reboot-requiredc                t    . ROp VP                  V 4      #   \         d    \        T4      ^,           u # i ; i)zAkey() function for sorted to ensure "correct" component ordering main
restricteduniverse
multiverse)index
ValueErrorlen)aorderings   & C/usr/lib/python3/dist-packages/DistUpgrade/DistUpgradeController.pycomponent_ordering_keyr*   Q   s:    ?H~~a    8}Qs    77c                    . ROpV P                  R4      ^,          p VP                  V4      #   \         d    \        T4      ^,           u # i ; i)z=key() function for sorted to ensure "correct" suite ordering -) updatessecurity	backportsproposed)	partitionr$   r%   r&   )r'   r(   pockets   &  r)   suite_ordering_keyr4   [   sK    CH[[a F~~f%% 8}Qs   / AAc                    . pVP                  R 4       VP                  R4       \        V R4      ;_uu_ 4       p\        P                  ! VP	                  4       4      pRRR4       T\        ^ \        X4      ^@4       Uu. uF  qCWD^@,            P                  R4      NK  	  up,          pVP                  R4       V#   + '       g   i     Lg; iu upi )z$-----BEGIN PGP PUBLIC KEY BLOCK-----r-   rbNzus-asciiz"-----END PGP PUBLIC KEY BLOCK-----)appendopenbase64	b64encodereadranger&   decode)keyring_pathoutfdatais   &    r)   gpg_keyring_to_asciirC   e   s    
CJJ56JJrN	lD	!	!Q) 
" U1c$i5LM5LR4L
+5LMMCJJ34J 
"	! Ns   %B=?"C=C	c                   l  a  ] tR t^tt o RtR8R ltR9R ltR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR tR 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!R  t"R! t#R" t$R# t%R$ t&R% t'R& t(R' t)R( t*R) t+R* t,R+ t-R, t.R- t/R. t0R/ t1R0 t2R1 t3R2 t4R3 t5R4 t6R;R5 lt7R6 t8R7t9V t:R# )<DistUpgradeControllerz2this is the controller that does most of the work Nc           
        R pVR8X  g   VR8X  d6   \         P                  ! 4       p\         P                  P                  VR4      pW0n        W n         \        P                  ! \        \         P                  ! R\         P                  ! R4      4      4      4      V n
        \        P                  ! RV4       \        P                   ! R4       \        P                  ! RVP"                  P$                  ,          4       Wn        V P&                  P)                  \+        R	4      4       RV n        RV n        \1        V4      V n        RV P2                  P5                  R
R4      ,           V n        V P2                  P9                  R4       V P2                  P;                  RRR4       V P
                  '       d:   V P
                  P<                  '       d   V P2                  P;                  RRR4       \>        P@                  ! 4       pVP5                  R4      V n!        VP5                  R4      V n"        \F        PH                  ! 4       pV P2                  P5                  RR4      V n%        VPM                  V PJ                  4      ;'       g    RPO                  R4      ^ ,          V n(        VPS                  V PJ                  4      '       d   V PP                  '       g   V P
                  P<                  '       d0   V P&                  PU                  \+        R4      \+        R4      4       M.V P&                  PU                  \+        R4      \+        R4      4       \V        PX                  ! ^4       V PB                  VP[                  4       9  V n.        V P2                  P_                  RR4      V n0        \         P                  P                  \b        P2                  Pe                  R4      R4      V n3        \b        P2                  Pi                  R4      V n5        V Pj                  R89   d   RV n6        RV n7        MRV n6        RV n7        R \         Pp                  9  d7   \        P                  ! R!4       \b        P2                  P;                  R"R#4       R$V n9        \u        W P2                  4      V n;        \y        4       V n=        R%\         Pp                  R&&   R%\         Pp                  R'&   V P2                  P}                  R(R)4      p\b        P2                  P;                  R*\        V4      4       \b        P2                  P;                  R+\        R94      4       \b        P2                  P;                  R,\        R:4      4       \b        P2                  P;                  R-R.4       \b        P2                  P;                  R/R.4       \b        P2                  P;                  R0R14       \b        P2                  P;                  R2R34       V P2                  P_                  R4R54      V n@        V P2                  P                  RR64      V nB        . V nC        V P2                  P                  R74      '       d7   V P2                  P                  R74       Uu. uF  q^,          NK  	  upV nC        RV nF        \;        4       V nG        \        4       V nI        \        4       V nJ        R#   \         d"    \        P                  ! R4       RT n
         ELZi ; iu upi );z/usr/share/locale/N.moSUDO_UID
PKEXEC_UIDzKFailed to determine invoking user, environment variables may be incomplete.ubuntu-release-upgraderzUsing '%s' viewzReading cacheFiles	BackupExtOptions
devReleaseFalseTrueVERSION_CODENAME
VERSION_IDSourcesTor-    zDistribution data outdatedzAn updated distro-info-data package is required before upgrading to the development release.

Try again after the distro-info-data update is available.zDPlease ensure all package updates are installed, and then try again.FromDir::Etc::sourcepartsubuntu.sourceszAPT::Architecturez http://archive.ubuntu.com/ubuntuz!http://security.ubuntu.com/ubuntuz$http://ports.ubuntu.com/ubuntu-ports"RELEASE_UPGRADE_NO_FORCE_OVERWRITEzenable dpkg --force-overwritezDPkg::Options::z--force-overwriteF1RELEASE_UPGRADE_IN_PROGRESSPYCENTRAL_FORCE_OVERWRITENetwork
MaxRetrieszAcquire::RetrieszDpkg::MaxArgszDpkg::MaxArgByteszAcquire::http::Timeout20zAcquire::ftp::TimeoutzApt::Get::List-Cleanupfalsez'APT::Get::Always-Include-Phased-UpdatesyesDistroForcedObsoletesValidMirrorsThirdPartyMirrors)amd64arm64i386i   i   )Kosgetcwdpathjoindatadiroptionspwdgetpwuidintgetenv_invoking_user_pwd	TypeErrorloggingdebugr   bindtextdomain
textdomain	__class____name___viewupdateStatus_cachefetcherr   configr   sources_backup_extadd_sectionsetdevel_releaseplatformfreedesktop_os_releasefromDistfromVersiondistro_infoUbuntuDistroInfotoDistversionr2   	toVersionvaliderrorsysexit	supportedisFromDistEOLgetlistsupportedFromDistsapt_pkgfind_dirdefault_sources_filepathfindarchdefault_source_urisecurity_source_urienviron_partialUpgrader   quirksr   inhibitor_fdgetintstrforced_obsoletesgetListFromFilevalid_mirrorsvalid_3p_mirrorshas_sectionitems_session_bus_generated_sources_filesdict_foreign_packages_pre_rewrite_foreign_packages_post_rewrite)	selfdistUpgradeViewro   rn   	localedir
os_releasedi
maxRetriespairs	   &&&&     r)   __init__DistUpgradeController.__init__w   s(   (	d?gniikGWT2I		+&)llBIIj"))L*ABC'D# 	8C45 	'/*C*C*L*LLM$


/ 23
 (0"%dkkoogk&J"J 		*	,8<<<||)))	,? 446
"'9:%>>,7))+kkooi6**T[[177RBB3GJxx$$DNNN||)))

  23 # $ 

  23 , - HHQK!]]",,.@"&++"5"5i"H )+NN##$;<)
%
 NN''(;<	9922&HD#'JD$&LD#'MD$ 0rzzAMM9:NN01DE  % (kk: *O 58

0125

./ [[''	,?
-s:? 	?CL9.H> 	3D9248 	3W= 	DeL !% 3 3H=N O![[88>R ";;""#677%)[[%6%67J%K%M%K 26!WW%K%MD! ! ),% .2V*.2f+K  	+MM; '+D#	+p%Ms   A[  [>([;:[;c                   \         P                  ! R 4       V P                  f   V P                  P	                  4        M4V P                  P                  4        V P                  P                  4        ^p^ p  V P                  V4      #   \         d   pT^,          pT P                  P                  4        \        P                  ! R4       \         P                  ! RT,          4       YC8  d   \         P                  ! RT,          4       T P                  P                  \        R4      \        R4      4       T'       d   T P                  4         Rp?K  \         P"                  ! ^4        Rp?K   Rp?EK  Rp?ii ; i)zopenCache()Ng?z'failed to lock the cache, retrying (%i)zCache can not be locked (%s)zUnable to get exclusive lockzThis usually means that another package management application (like apt-get or aptitude) already running. Please close that application first.)rv   rw   r   r   PreCacheOpenrelease_lockunlock_lists_dir
_openCacher   r|   processEventstimesleepr   r~   abortr   r   )r   lockrestore_sources_list_on_failMAX_LOCK_RETRIES
lock_retryes   &&&   r)   	openCacheDistUpgradeController.openCache  s   m$::KK$$&JJ##%JJ'')
$t,,. $a


((*

3=
JL 0MM"@1"DEJJ$$Q'E%F%& (< &=> 4

 1$s   :B FB?E>E>>Fc           
     V    \        V P                  V P                  V P                  V P                  P	                  4       VV P
                  V P                  R 7      V n        V P                  V n        V P$                  V P                  n        \        P(                  ! R\+        V P                  4      ,          4       R#   \         d    \        P                  ! R4       . ROp\        P                  P                  R4      R8X  d   TP                  R4       T P                  P!                  4       P#                  T4       \        T P                  T P                  T P                  T P                  P	                  4       T P
                  T P                  R 7      T n         EL3i ; i))	from_distto_distz-dpkg interrupted, calling dpkg --configure -aDEBIAN_FRONTENDnoninteractive--force-confoldz/openCache(), new cache size %iNz/usr/bin/dpkgz--configurez-a)r   r   r|   r   getOpCacheProgressr   r   r   	apt_cacher   rv   warningrj   r   r   r7   getTerminalcallr   partialUpgraderw   r&   )r   r   cmds   && r)   r    DistUpgradeController._openCache.  s#   	6 !%!%!%!>!>!@!%+/==)-6DJ "ZZDN %)$8$8

!7#djj/IJ - 	6OOKL6Czz~~/04DD

,-JJ""$))#. !%!%!%!>!>!@+/==)-6DJ	6s   A2C C#F('F(c                    V P                   P                  RR4      pV P                  P                  P                  V9   d   R# R# )z
Returns True if this view support upgrades over ssh.
In theory all views should support it, but for savety
we do only allow text ssh upgrades (see LP: #322482)
View
SupportSSHTF)r   r   r|   rz   r{   )r   r   s   & r)   _viewSupportsSSH&DistUpgradeController._viewSupportsSSHK  s8     ++%%f\:i				&	&)	3    c           	        \         P                  P                  R4      p\         P                  P                  V4      '       Eg   \         P                  P	                  R4      '       Edu   \        R4      '       Edc   V P                  4       '       g]   \        P                  ! R4       V P                  P                  \        R4      \        R4      4       \        P                  ! ^4       R# RpV P                  P                  \        R	4      \        R
4      V,          4      pVR8X  d   \        P                  ! ^4       \        P                  ! RRRV,          R\!        V4      .4      pV^ 8X  dk   \        R4      p\        R4      V,          p\#        4       '       d#   RV,          pV\        R4      V,          ,          pV P                  P%                  WE4       R# )zthis will check for server mode and if we run over ssh.
if this is the case, we will ask and spawn a additional
daemon (to be sure we have a spare one around in case
of trouble)
z"/var/run/release-upgrader-sshd.pidz/procsshdzupgrade over ssh not allowedz.Upgrading over remote connection not supportedzYou are running the upgrade over a remote ssh connection with a frontend that does not support this. Please try a text mode upgrade with 'do-release-upgrade'.

The upgrade will abort now. Please try without ssh.Fi  zContinue running under SSH?a  This session appears to be running under ssh. It is not recommended to perform a upgrade over ssh currently because in case of failure it is harder to recover.

If you continue, an additional ssh daemon will be started at port '%s'.
Do you want to continue?z/usr/sbin/sshdz-oz
PidFile=%sz-pzStarting additional sshdzTo make recovery in case of failure easier, an additional sshd will be started on port '%s'. If anything goes wrong with the running ssh you can still connect to the additional one.
z-iptables -I INPUT -p tcp --dport %s -j ACCEPTzIf you run a firewall, you may need to temporarily open this port. As this is potentially dangerous it's not done automatically. You can open the port with e.g.:
'%s'T)rj   rl   rm   existsisdirr   r   rv   r   r|   r~   r   r   askYesNoQuestion
subprocessr   r   r   information)r   pidfileportressummarydescrr   s   &      r)   	_sshMagicDistUpgradeController._sshMagicV  s    '',,CDw''GGMM'""$V,,((**<=

  #S!T!" $H "I	# D**--/0 - . 1556C e|//#3#')?#'D	#3 4C ax67 L   $	$
 #$$IDPCQAB EH	H HE
 

&&w6r   c                d   \         P                  ! R4       R.pV EF  w  r#RV,          p\        P                  P	                  V4      '       g   K6  \        4       p\        V4      ;_uu_ 4       pVP                  V4       RRR4        VP                  RR4      p \        P                  P                  R
T,          4      pY\        P                  P                  RT4      39   d   K  \         P                  ! T: RT: RT: R\        P                  P                  RT4      : R24        R	# 	  R#   + '       g   i     L; i  \         d%    \         P                  ! RT: RT: R24         R	# i ; i  \         d*   p	\         P                  ! RT	,          4        Rp	?	 R	# Rp	?	ii ; i)zcheck that /usr/bin/python3 points to the default python version.
Users tend to modify this symlink, which breaks stuff in obscure
ways (Ubuntu #75557).
z_pythonSymlinkCheck runz/usr/share/%s/debian_defaultsNDEFAULTzdefault-versionzno default version for z found in ''Fz/usr/bin/%szos.path.realpath failed (%s)z/usr/binz symlink points to: 'z', but expected is 'z' or 'T)python3r   )rv   rw   rj   rl   r   SafeConfigParserr8   	read_filer   r   realpathOSErrorr   rm   )
r   binaries_and_dirnamesbinarydirnamedebian_defaultsr   r@   expected_defaultfs_default_versionr   s
   &         r)   _pythonSymlinkCheck)DistUpgradeController._pythonSymlinkCheck  sR   
 	/0!7 84OF=GOww~~o..)+/**a$$Q' +!'-zz)=N'O$
!)+)9)9-&:P)Q& *ZYi@j-kkMM#)+=?OQSQXQXQ]Q]^hjzQ{#} ~ )  5* # +* % !MM#)6#3 4 !  !MM"@1"DE !s6   /D6
E	&E;6E	*E87E8;F/F**F/c           
     j   V P                   V P                  9   g}   V P                   V P                  8X  gb   V P                  P	                  \        R4      \        RV P                   : RV P                  : R24      4       \        P                  ! ^4       \        P                  ! RP                  V P                   V P                  '       d   RMR,           V P                  4      4       V P                  4        V P                  4       '       g[   \        P                  ! R4       V P                  P	                  \        R4      \        R	4      4       \        P                  ! ^4        V P                  4        T P                   P#                  T P                  4      '       g   R# T P                   P%                  4       T n        T P&                  '       d   R\(        P*                  R&   MR\(        P*                  R&   T P-                  4       '       g   \        P                  ! R4       R# ^RIHp T F  p\(        P2                  P5                  T4      '       g   K*  \(        P6                  ! T\(        P8                  4      '       d   KW  \        P                  ! RT,          4       T P                  P	                  \        R4      T,          \        R4      T,          4       T P;                  4        K  	  R#   \         d)   p\        P                  ! R
T,          4        Rp?R# Rp?ii ; i)z<initial cache opening, coherence checking, network checking zCan not upgradezAn upgrade from 'z' to 'z"' is not supported with this tool.zUpgrading from {} to {}z (EOL)r-   z%pythonSymlinkCheck() failed, abortingzMYour python3 install is corrupted. Please fix the '/usr/bin/python3' symlink.zopenCache() failed: '%s'NFserverRELEASE_UPGRADE_MODEdesktopzcheckViewDepends() failed)SYSTEM_DIRSz%s not writablezCan not write to '%s'zIts not possible to write to the system directory '%s' on your system. The upgrade can not continue.
Please make sure that the system directory is writable.T)r   r   r   r|   r   r~   r   r   rv   rw   formatr   r   r   r   SystemErrorr   coherence_checkneed_server_mode
serverModerj   r   checkViewDependsDistUpgradeMainr   rl   r   accessW_OKr   )r   r   r   	systemdirs   &   r)   prepareDistUpgradeController.prepare  s?    !8!88DMMT[[<XJJQ01>BmmT[[ Z [\ HHQK%,,T-?-?-?RH	
 	''))MMABJJQ01  L MN HHQK	NN zz))$**55 **557???19BJJ-.1:BJJ-.$$&&MM560$Iww~~i((9bgg1N1N/);<

  -.: " # &/	/0 

 % ?  	MM4q89	s   .K? ?L2
L--L2c                $   \         P                  ! RV,          4       . pRpVP                   F]  pVP                   FJ  pRP	                  WE4      p\        V\         P                  4      '       d   RpK8  VP                  WE34       KL  	  K_  	  W23# )a  
Check if deb822 source points to downloadable archive(s).
Returns a tuple (bool, list).

The bool is True if any combination of URI and suite was downloadable,
or False if no combination was.

The list contains tuples of URI and suite that were not downloadable
together.
zverifySourcesListEntry: %sFz{}/dists/{}/ReleaseT)rv   rw   urissuitesr   r   r7   )r   entryfaileddownloadableurisuiterelease_files   &&     r)   _deb822SourceEntryDownloadable4DistUpgradeController._deb822SourceEntryDownloadable  s{     	2U:;::C4;;CG#L'--@@#'LMM3+. &  %%r   c                ^   \        V P                  RR7      pV Uu. uF  p\        V\        4      '       g   K  VNK  	  ppV Uu. uF  p\        V\        4      '       d   K  VNK  	  pp\        P
                  P                  \        P                  P                  R4      \        P                  P                  R4      4      pV Uu. uF*  pVP                  V8X  d   VP                  '       d   K(  VNK,  	  ppV'       d   V'       g   ^# V'       d   V'       d   ^ # R# u upi u upi u upi )z
Return an integer indicating if sources are migrated to deb822.
Possible return values are:

    -1: not migrated to deb822 sources
     0: partially migrated to deb822 sources
     1: fully migrated to deb822 sources
TmatcherPathdeb822Dir::EtcDir::Etc::sourcelist)r   rn   
isinstancer   rj   rl   rm   r   r   r   r   fileinvalid)r   sourcessr  	nondeb822sourcelist_files   &     r)   migratedToDeb822&DistUpgradeController.migratedToDeb822  s     $,,tD$IW
16G(H!!WI 'P1z!=N/OQQ	P '',,NN##J/NN 67
 !* G	1VV6199 Q		 G )	 I) JPGs"   D D D%"D%%D*2D*c           
        \         P                  ! R4       \        P                  P	                  \
        P                  P                  R4      \
        P                  P                  R4      4      p\
        P                  P                  R4      p\
        P                  P                  R4      pRp/ p\        V P                  R7      V n        V P                  P                  R4       / pV P                   EF  p\        V\        4      '       g   K  VP                  '       d^   \         P                  ! R	\!        V4       R
VP"                   R24        WWP"                  ,          P%                  \!        V4      4       K  VP(                  R8X  d   VP*                  '       d   K  VP"                  V8X  df   RpV P-                  VP.                  4      '       d"   \        P                  P	                  VR4      pMX\        P                  P	                  VR4      pM7\        P                  P1                  VP"                  4      ^ ,          R,           pWP*                  VP(                  VP.                  VP2                  3p	 Wi,          p
\5        \7        V
R,          VP8                  ,           4      4      V
R&   V
R,          P;                  \<        R7       EK  	  VP?                  4        Uu. uF  qR-,          NK  	  up F  pVP?                  4        Uu. uF  qR-,          V8w  g   K  VNK  	  up Fs  p V. VRR- OVN5,          p
V
R,          Wk,          R,          8X  dD   V
R;;,          Wk,          R,          ,          uu&   V
R,          P;                  \@        R7       Wk Ks  Ku  	  K  	  VPC                  4        UU
u. uF  w  rV^,          R8X  g   K  W3NK  	  up
p F  w  rVPC                  4        UU
u. uF  w  rV^,          R8X  g   K  W3NK  	  up
p F  w  ppRpVVR,          VR,          8H  ,          pVVR,          VR,          8H  ,          pVVR,          VR,          8H  ,          pVVR,          VR,          8H  ,          pVVR,          VR,          8H  ,          pV'       g   K  RR.VR&   Wm K  	  K  	  VPE                  4        EF  pVR,          pV\        P                  P	                  VR4      8X  d   RVR&   K9  \        P                  PG                  \        P                  P1                  V4      ^ ,          4      p\        P                  P	                  VVR,           4      p\        P                  PI                  V4      '       g   \        P                  PG                  \        P                  P1                  V4      ^ ,          4      pVPK                  R^4      ^ ,          R,           p\        P                  P	                  VV4      p\        P                  PI                  V4      '       g   EKs  VPM                  R4      '       d   EK  \O        V4      pV Uu. uF$  pRVPQ                  4       '       d   TMR,           NK&  	  ppR R P	                  V4      ,           VR&   EK  	  \7        VPE                  4        U
u. uF  qR,          NK  	  up
4       EF  p. pVPE                  4        U
u. uF  qR,          V8X  g   K  V
NK  	  up
 EF  p
R!pV
R,          '       d
   VR",          pVR#PS                  RP	                  V
R,          4      4      ,          pVR$PS                  RP	                  V
R,          4      4      ,          pVR%PS                  RP	                  V
R,          4      4      ,          pVR&PS                  RP	                  V
R,          4      4      ,          pV
PM                  R4      '       d    VR'PS                  V
R,          4      ,          pVP%                  V4       EK   	  \U        VR(4      ;_uu_ 4       pVPW                  R P	                  V4      4       RRR4       V PX                  P[                  V4       EK  	  V P                   U
u. uF  p
\        V
\        4      '       g   K  V
NK  	  up
 F  pVP"                  V8X  d   V'       g   K  \        P                  PI                  VP"                  4      '       d!   \        P\                  ! VP"                  4       V P                  P]                  V4       K  	  V P                  P_                  4        V'       d\   \U        VR(4      ;_uu_ 4       pVPW                  R)PS                  \        P                  P	                  VR4      4      4       RRR4       VPC                  4        FU  w  pp\U        V R*2R(4      ;_uu_ 4       pVPW                  R+4       V F  pVPW                  R,V R 24       K  	  RRR4       KW  	  R#   \&         d    \!        T4      .YWP"                  &    ELi ; i  \&         d    / p
YR&   TP*                  T
R&   TP(                  .T
R&   TP.                  .T
R&   TP2                  .T
R&   \5        \7        TP8                  4      4      T
R&   T
R,          P;                  \<        R7       YT	&    E
K  i ; iu upi u upi   \&         d     EK  i ; iu up
pi u up
pi u upi u up
i u up
i   + '       g   i     EL; iu up
i   + '       g   i     EL; i  + '       g   i     EK  ; i).z6
Migrate .list files to corresponding .sources files.
zmigrateToDeb822Sources()r  r  rX   zDir::Etc::trustedpartsF)r  .migratezCould not migrate z from z, disabling instead.zdeb-srcTrY   zthird-party.sourcesz.sourcescompskeyfilepathdisabledtypesr  r  Ndebz/ /usr/share/keyrings/ubuntu-archive-keyring.gpgz	signed-byz.gpgr,   rV   rG   
r-   zEnabled: no
z
Types: {}
z	URIs: {}
zSuites: {}
zComponents: {}
zSigned-By:{}
wz"# Ubuntu sources have moved to {}
z	.disabledz# This file could not be automatically migrated to a .sources file during the upgrade.
# Please see sources.list(5) (or https://manpages.ubuntu.com/manpages/man5/sources.list.5.html)
# for details on how to migrate manually.

z# r  )0rv   rw   rj   rl   rm   r   r   r   r   r   rn   r!  backupr  r   r   r   r  r7   KeyErrortyper-  isMirrorr  splitextdistlistr   r)  sortr*   keysr4   r   valuesbasenamer   rsplitr   rC   stripr   r8   writer   addremovesave)r   r$  sourceparts_dirtrustedparts_dirmigrated_sources_listcannot_migrater$   r  new_filepathr+  r   kr  kssekbbecan_combiner,  keyringlineslrl   stanzasstanzar@   r  entriess   &                           r)   migrateToDeb822Sources,DistUpgradeController.migrateToDeb822Sources'  s    	01'',,NN##J/NN 67
 "..112IJ">>223KL %"t||<J'\\Ee[11}}}(UF5::,*+>"::.55c%jA 
 zzY&5>>> zz_,(,%==++#%77<<AQ#RL $&77<<AV#WL  "ww//

;A>K  UYY

SCJ!#aj5;;&>"?@'
'
$:;i "@ &+ZZ\2\ee\2E!&@A2%aa@	.#2../AzUXg%66(ux'99(((-?(@!H	 7	 A 3 -2KKMOM5AQqTY=N!MOHR05Ou1UaUOR"r*~J??r*~J??r&zRZ77r(|r(|;;r'{bk99;#()"4BwK	 P P \\^EZ(H277<<9IJJ%Vk" ''**277+;+;H+Ea+HI'',,'769IJww~~g.. !gg..rww/?/?/I!/LMG%nnS!4Q7&@G ggll+;WEG77>>'**599[3I3I09EFKLeSA<<eEL)-		%0@)@E+&+ $4 ?1:?@DG!&IAZ=D3HaaIZ==o-F-..sxx'
/CDD,--chhqy.ABB.//80EFF,33CHHQwZ4HII55%%.55anEEFv& J dCA		'*+ ! ))--d3+ A0 "&LAA{1KaaLEzz_,5J ww~~ejj))		%**%LL& M 	  os++q=_>N OPR ,  .335OT7i(#..!G %EGGbrN+ % /.  6[   >25e*N::.>@  	 ,* %*#jj\'
"YYK&	$zzl(!#ekk"23'
'
$:;c
	 3@    PO@ M @ J ! M" ,++
 /..s   *iAi0.l
l+l8A-ll'l'<l-l-/l3l3l8l=l=!m,m	m?m0m/#i-,i-0Blll$#l$mm,	/nc                   V P                   '       g   R # \        P                  P                  \        P
                  P                  R4      \        P
                  P                  R4      4      p\        P
                  P                  R4      p\        P                  ! V R24       F)  p \        P                  ! W3P                  R4      4       K+  	   \        P                  ! V R2V4       V P                    F  p \        P                  ! V4       K  	  R #   \         d(   p\        P                  ! RT RT 24        R p?K  R p?ii ; i  \         d     Ln\         d'   p\        P                  ! RT RT 24        R p?LR p?ii ; i  \         d(   p\        P                  ! RT RT 24        R p?K  R p?ii ; i)	Nr  r  rX   
/*.migrater(  zFailed to restore z: zFailed to remove )r   rj   rl   rm   r   r   r   r   globrenameremovesuffixr   rv   rw   FileNotFoundErrorrA  )r   r$  rC  rl   r   s   &    r)   restoreMigratedSources,DistUpgradeController.restoreMigratedSources  st   ,,,'',,NN##J/NN 67
 "..112IJII 1<=D@		$ 1 1* => >	GII"#8, 11D?		$ 2  @ 24&1#>??@ ! 	 	GMM..?r!EFF	G  ? 1$r!=>>?sT   +%DE ?FE&EEFF&F'FFGF==Gc                   \         P                  P                  \        P                  P                  R 4      \        P                  P                  R4      4      p\        P                  P                  R4      pV V P                   2V R2.pV\        P                  ! V RV P                   24      ,          pV\        P                  ! V R24      ,          pV F  p \         P                  ! V4       K  	  R#   \         d     K.  i ; i)r  r  rX   r(  z/*rW  N)rj   rl   rm   r   r   r   r   r   rX  rA  r   )r   r$  rC  pathsrl   s   &    r)   cleanBackupSources(DistUpgradeController.cleanBackupSources	  s    '',,NN##J/NN 67
 "..112IJ  7 789x(
 	o.b1H1H0IJKKo.j9::D		$   s   !C==DDc                
   V P                   P                  V P                  R V P                  V P                  . ROR7      p\        V P                  V P                  R,           .\        R7      Vn        RVP                  R&   R# )r/  r  r4  r  r7  
orig_compsz-updatesr*  ./usr/share/keyrings/ubuntu-archive-keyring.gpg	Signed-ByNr   )	r!  r@  r   r   r   sortedr4   r  sectionr   r   s   & r)   _addDefaultSources(DistUpgradeController._addDefaultSources  sm    LL..''G  
 4;;j(@A02!Q		+r   c                    V P                   P                  V P                  R V P                  V P                  R,           . ROR7      pRVP
                  R&   R# )r/  	-securityrc  re  rf  Nr   )r!  r@  r   r   r   rh  ri  s   & r)   _addSecuritySources)DistUpgradeController._addSecuritySources)  sP    LL..(({*G  
 "R		+r   c                t    \        V P                  P                  R RR4      R\        P                  9   34      # )rT   AllowThirdPartyF"RELEASE_UPGRADER_ALLOW_THIRD_PARTY)anyr   getWithDefaultrj   r   r   s   &r)   _allowThirdParty&DistUpgradeController._allowThirdParty3  s7    KK&&y1B5I0BJJ>
  	r   c                   V P                  4       '       d   \        P                  ! R 4       R# \        P                  ! V P                  P                  RR4      4       V P                  P                  RR4       EFB  p\        P                  ! RV,          4       WP                  9   d   V P                  V,          P                  '       d   \        V P                  V,          P                  P                  4      ^ 8X  g   V P                  V,          P                  '       g   K  \        V P                  V,          P                  P                  4      ^8X  g   K  V P                  V,          P                  P                  ^ ,          P                  R8X  g   EK%  \        P                  ! RV,          4        R# 	  R# )z,mirror check skipped, *overriden* via configTrc   BaseMetaPkgszChecking pkg: %snowz)BaseMetaPkg '%s' has no candidate.originsF)rv  rv   r   rw   r   r   r   	candidater&   originsarchive)r   pkgnames   & r)   _mirrorCheck"DistUpgradeController._mirrorCheck9  s*      ""OOJK 	dkk))(NCD{{**8^DGMM,w67

*ZZ(222TZZ(22::;q@G$...TZZ(22::;q@G$..66q9AAUJIGST E r   c                  a / p. p. p. pV P                   V P                  /pV P                  P                  RR4       F?  pRP	                  V P                   V4      pRP	                  V P                  V4      pWV&   KA  	  V P
                   U	u. uFB  p	\        V	P                  V	P                  \        V	\        4      '       * 34      '       d   K@  V	NKD  	  p
p	V
 EF  pV P                  '       d   V P                  P                  '       de   \        P                  ! R4       \        VP                   4      \        V P                   R,           .4      ,
          pV'       g
   RVn        K  Wn        \        VP"                   Uu. uF  pRV9  g   K  VNK  	  up4      Vn        VP"                  '       g`   VP                    Uu. uF  qP%                  R4      '       g   K  VNK  	  up'       d   V P&                  .Vn        MV P(                  .Vn        V P*                  R	8X  d   V P                  R
8X  g   V P                   R
8X  d   \,        ;QJ d&    R VP                    4       F  '       d   K   RM	  RM! R VP                    4       4      pV'       d   V P&                  MV P(                  o\        V3R lVP"                   4       4      Vn        \        P                  ! R\/        \0        P2                  ! V4      4      ,          4       VP"                   Uu. uFG  p\        V P5                  V4      V P7                  V4      V P9                  4       34      '       g   KE  VNKI  	  ppV'       gV   RVn        VP;                  V4       \        P                  ! R\/        \0        P2                  ! V4      4      ,          4       EK  . pVP                    F  p VP;                  W^,          4       K  	  V'       gV   RVn        VP;                  V4       \        P                  ! R\/        \0        P2                  ! V4      4      ,          4       EKw  \A        \C        \        V4      4      \D        R7      Vn        VP"                   Uu. uF  pRV9  g   K  VNK  	  ppVP                    Uu. uF%  pVPG                  R^4      R!,          R"9  g   K#  VNK'  	  ppRVPH                  9   ;'       d    T;'       d    TpV'       g   EK,  V PK                  V4      w  ppV'       gV   RVn        VP;                  V4       \        P                  ! R\/        \0        P2                  ! V4      4      ,          4       EK  V'       d>   \        P                  ! R\/        \0        P2                  ! V4      4      ,          4       EK  VP                    F,  p VV;;,          \        VPL                  4      ,          uu&   K.  	  EK!  	  RVPO                  V P                  \        4       4      9  EdO   V'       d5   \Q        R4      pVRPS                  \A        R V 4       4      4      ,          pMV'       d5   \Q        R4      pVRPS                  \A        R V 4       4      4      ,          pMu\Q        R4      pV'       dc   V\Q        R4      ,          pTRPS                  \A        \        4       PT                  ! V U	u. uF  qPV                  NK  	  up	!  4      4      ,          pV\Q        R4      ,          pV PX                  P[                  \Q        R 4      V4      pV'       g   R# V P]                  4        V P_                  4        R# u up	i u upi u upi u upi   \<         d/    YP?                  4       9   d   TP;                  T4        EK   EK  i ; iu upi u upi   \<         d    \        TPL                  4      TT&    EK0  i ; iu up	i )#z
deb822-aware version of rewriteSourcesList()

Return True if we found a valid dist to ugprade to, and return False
otherwise.
rT   Pocketsz{}-{}z2upgrade to development release, disabling proposedz	-proposedTzold-releases.ubuntu.com/rm  rh   resolutec              3   B   "   T F  qP                  R 4      x  K  	  R# 5i)rm  N)endswith).0r"  s   & r)   	<genexpr>=DistUpgradeController.rewriteDeb822Sources.<locals>.<genexpr>  s      $5AJJ{++\s   Fc              3   v   <"   T F.  pVP                  R SP                  R^4      ^,          4      x  K0  	  R# 5i)zports.ubuntu.com/ubuntu-ports://N)replacesplit)r  unew_uris   & r)   r  r    s@      !
 (	 II7eQ/2  (s   69zexamining: '%s'z(entry '%s' was disabled (unknown mirror)z&entry '%s' was disabled (unknown dist)r*  z/security.ubuntu.comr,   r/  z)entry '%s' was disabled (no Release file)z0some Release files were not downloadable for '%sr    z_This is probably because one or more of the following mirrors are out-of-date or unreachable:

r0  c              3   8   "   T F  qP                   x  K  	  R # 5iNr  r  r   s   & r)   r  r    s     C*BQ55*B   z\This is probably because of one or more of the following unsupported mirrors was disabled:

c              3   8   "   T F  qP                   x  K  	  R # 5ir  r  r  s   & r)   r  r    s     B*AQ55*Ar  zNThis is probably because the current apt sources configuration is unsupported.zO

The following suites were disabled because they are out-of-date or unknown:

zp

Would you like to continue the upgrade using default sources? If you select 'No', the upgrade will be aborted.z Required apt sources are missingr  )r0   r/   )0r   r   r   r   r   r!  rs  r   r-  r  r   ro   r   rv   rw   r   r  r  r  r   r   r   allr
   copydeepcopyr5  isThirdPartyMirrorrv  r7   r3  r;  rg  r8  r4   r=  r.  r  r)  r   r~   rm   unionr  r|   r   rj  rn  )r   found_componentsdisabled_unknown_mirrordisabled_no_release_filedisabled_unknown_distsuite_mappingr3   r@   tr   r!  r  no_proposedr  r"  security_onlyknown_mirrors
new_suites
valid_urisvalid_suitesvalid_tor  r  r  detailsr   r  s   &                         @r)   rewriteDeb822Sources*DistUpgradeController.rewriteDeb822SourcesU  s    "$#%  " 4kk)))Y?Ft}}f5At{{F3A ! @ ||
#!		

q"344  A| 	 
 E||| : : :RS!%,,/#t}}{7R6S2TT" &*EN $/L  FA!;1!D  a F GEJ:::$||G|!zz+/FAA|GG"&":":!;EJ"&"9"9!:EJ yyG#z)T]]j-H # $5:\\$ $5:\\$ !
 % ,,00 
 ! !
 #ZZ! 
 MM+CDMMRWDXYZ [
 !::%aMM!$++A.))+  :   !!%'..u5H I$--X]J^ _` a J\\-%%m&67 " !%%,,U3F I$--X]J^ _` a%d3z?&;AST &+ZZ >Z31< !ZJ >',|| V|! xxQ/3;TT A|L V+KK
KK|H &*%H%H%O"\6!%(//6I I$--X]J^ _` aP I$--X]J^ _` a #\\EC(/3u{{3CC/ *e p )--dkk35AA'B 499C*BCC  )< 499B*ABB 
 4
 )q6  G tyy5J%K5Jee5J%KL*   G qN G
 **--45C
 ##%$$&g
0F HL(   -0022"))!,, 3-">V, $ C25ekk2B(/CD &Lss   =]8]8	]=
]=
^!^A^#^^	__, __(_._=0__#_:9_:c                &   \         P                  ! R4       \        V P                  RR7      V n        V P                  P                  V P                  4       V P                  4       '       g   V P                  4        V P                   Fi  pVP                  '       g   VP                  '       d   K)  \        VP                  \        R7      Vn        \        VP                  \        R7      Vn        Kk  	  V P                  P!                  4        R# )z-
deb822-aware version of updateSourcesList()
zupdateDeb822Sources()Tr  r*  )rv   rw   r   rn   r!  r2  r   r  r   r-  r   rg  r)  r*   r  r4   rB  )r   r  s   & r)   updateDeb822Sources)DistUpgradeController.updateDeb822Sources  s     	-."t||DID334((**JJL \\E~~~ 2HIEK!%,,4FGEL " 	r   c                J   \         P                  ! R 4       . p. p. p. p. pV P                   EF  pVP                  '       d   VP	                  VP
                  4       K3  VP                  '       d   VP	                  VP
                  4       Kb  VP                  '       d   VP	                  VP
                  4       K  VP                  '       d0   VP                  '       d   VP	                  VP
                  4       K  VP                  '       g   K  VP                  '       g   K  VP	                  VP
                  4       EK  	  \         P                  ! RRP                  V4      ,          4       \         P                  ! RRP                  V4      ,          4       \         P                  ! RRP                  V4      ,          4       \         P                  ! RRP                  V4      ,          4       \         P                  ! RRP                  V4      ,          4       R# )z$About to apply the following changeszKeep at same version: %srV   zUpgradable, but held- back: %sz
Remove: %szInstall: %szUpgrade: %sN)rv   rw   r   marked_installr7   namemarked_upgrademarked_deleteis_installedis_upgradablemarked_keeprm   )r   instuprmheldkeeppkgs   &      r)   _logChanges!DistUpgradeController._logChanges4  sQ   <=::C!!!4;;sxx#8###RYYsxx%8"""BIIchh$7"""s'8'8'84;;sxx;P!!!cooot{{3887L  	0388D>AB6$GHlSXXb\12mchhtn45mchhrl23r   c                   \         P                  ! R 4       V P                  P                  4        V P                  '       g   R# V P                  P                  4       V n        \        V P                  P                  4      ^ 8  dL   \         P                  ! R4       V P                  P                  V P                  4       V P                  4        \        V P                  P                  4      ^ 8  dv   V P                  P                  p\        RR\        V4      4      p\        RR\        V4      4      RP                  V4      ,          pV P                  P                  W#4       R# . pV P                   P#                  RR	4       FK  pWPP                  9   g   K  V P                  V,          P$                  '       g   K:  VP'                  V4       KM  	  \         P                  ! R
RP                  \)        V4      4      ,          4       V P                  P+                  4       V n        \         P                  ! RRP                  \)        V P,                  4      4      ,          4       R# )doPostInitialUpdateFz-packages in reqReinstall state, trying to fixzPackage in inconsistent statezPackages in inconsistent statezThe package '%s' is in an inconsistent state and needs to be reinstalled, but no archive can be found for it. Please reinstall the package manually or remove it from the system.zThe packages '%s' are in an inconsistent state and need to be reinstalled, but no archive can be found for them. Please reinstall the packages manually or remove them from the system.z, rc   MetaPkgszMetaPkgs: %srV   Obsolete: %sT)rv   rw   r   PostInitialUpdater   foreign_packagesr   r&   req_reinstall_pkgsr   fix_req_reinstr|   r   r   rm   r   r   r   r  r7   rg  _getObsoletesPkgsobsolete_pkgs)r   	reqreinstheaderr   	meta_pkgsr  s   &     r)   r  )DistUpgradeController.doPostInitialUpdateH  s    	+,%%'zzz
 .2ZZ-H-H-J*tzz,,-1OOKLJJ%%djj1NNtzz,,-1

55I=>!)n.F   ?
 A
  #9~
/ 2691E
FG JJV-	;;&&x
;Cjj TZZ_%A%A%A  % < 	nsxxy0A'BBC "ZZ99;nsxxt7I7I0J'KKLr   c                   \         P                  ! R V,          4       V P                  P                  P	                  4        V P
                  P                  4       p^ pVe   TpMV P                  P                  RR4      pRpWE8  d    V P                  P                  V4       R# \         P                  ! R	4       V'       d7   V P
                  P                  \        R
4      \        R4      RV,          4       R#   \        \        3 d?   p\        T4      p\         P                  ! RT: RT: R24       T^,          p Rp?K  Rp?ii ; i)z"running doUpdate() (showErrors=%s)Nr^   r_   r-   z(IOError/SystemError in cache.update(): 'z'. Retrying (currentRetry: )TzdoUpdate() failed completelyzError during updatezA problem occurred during the update. This is usually some sort of network problem, please check your network connection and retry.%sF)rv   rw   r   _listread_main_listr|   getAcquireProgressr   r   updater  IOErrorr   r   r~   )r   
showErrorsforceRetriesprogresscurrentRetryr   	error_msgr   s   &&&     r)   doUpdateDistUpgradeController.doUpdatew  s   :ZGH

'')::002##J++IlCJ	'

!!(+ 45JJQ45  7 8 :>	9I	K
   ) F	lmnz{|!	s   
C= =E3EEc                  a  \         P                  P                  R4      '       g   \        P                  ! R4       R# . ROp\
        ;QJ d    V 3R lV 4       F  '       g   K   RM	  RM! V 3R lV 4       4      '       g   \        P                  ! R4       R# Rp\        R4      ;_uu_ 4       pV Fk  pVP                  4       p VP                  4       w  rVrxrTR8w  d   K1  RpRTP                  R4      9   g   KK  \        P                  ! RT4        RRR4       R# 	  RRR4       V'       g1   S P                  P                  \        R4      \        R4      4       R# S P                  P                  \        R4      \        R4      4       R#   \         d,   p\        P                  ! RT: R	T: R
24        Rp?EK  Rp?ii ; i  + '       g   i     L; i)z<check that /boot/efi is a mounted partition on an EFI systemz/sys/firmware/efizNot an UEFI systemTc              3      <"   T F8  qSP                   9   ;'       d    SP                   V,          P                  x  K:  	  R # 5ir  )r   r  )r  blr   s   & r)   r  6DistUpgradeController._checkBootEfi.<locals>.<genexpr>  s1     Zk#CC

2(C(CCks
   A&AFz'UEFI system, but no UEFI grub installedz/proc/mountszline 'z"' in /proc/mounts not understood (r  Nz	/boot/efirw,zFound writable ESP %sz%EFI System Partition (ESP) not usablezxYour EFI System Partition (ESP) is not mounted at /boot/efi. Please ensure that it is properly configured and try again.zzThe EFI System Partition (ESP) mounted at /boot/efi is not writable. Please mount this partition read-write and try again.)zshim-signedzgrub-efi-amd64zgrub-efi-ia32zgrub-efi-armzgrub-efi-arm64
sicherboot)rj   rl   r   rv   rw   rs  r8   r>  r  r%   r|   r   r~   )r   bootloadersmountedmountslinewhatwherefsro   r'   br   s   f           r)   _checkBootEfi#DistUpgradeController._checkBootEfi  sv    ww~~122MM./ ysZkZsssZkZZZMMCD.!!VZZ\7;zz|4T"q
 K'7==--MM"94@! "! "$ JJQFG  J KL 	 JJQFG  J KL / " MMUY[\"]^ "!sB   0GFG>G GG	G	<GG	GG	c                   \        R4      p\        R4      p\        R4      p\        R4      p\        R4      p\        R4      p\        R4      pV P                  P                  RR	R
4      '       d   \        P                  ! R4       R# V P                  4       p V P                  P                  V4       R#   \         Ed   p	\        P                  P                  R4      p
RpYRTRTRTRTRT/pT	P                   F  pTR8w  d
   TR,          pTP                  T9   dL   YP                  TP                  TP                  TP                  YP                  ,          R7      ,          pKo  YP                  TP                  TP                  TP                  RR7      ,          pK  	  T P                   P#                  Y4        Rp	?	R
# Rp	?	ii ; i)z9this checks if we have enough free space on /var and /usrzNot enough free disk spacezThe upgrade has aborted. The upgrade needs a total of {str_total} free space on disk '{str_dir}'. Please free at least an additional {str_needed} of disk space on '{str_dir}'. {str_remedy}zIRemove temporary packages of former installations using 'sudo apt clean'.zYou can remove old kernels using 'sudo apt autoremove' and you could also set COMPRESS=xz in /etc/initramfs-tools/initramfs.conf to reduce the size of your initramfs.zbEmpty your trash and remove temporary packages of former installations using 'sudo apt-get clean'.z!Reboot to clean up files in /tmp.r-   	FreeSpace	SkipCheckFz,free space check skipped via config overrideTDir::Cache::archivesz/varz/boot/z/tmpz/usrrV   )	str_totalstr_dir
str_needed
str_remedyN)r~   r   rt  rv   r    _is_apt_btrfs_snapshot_supportedr   checkFreeSpacer   r   r   free_space_required_listdirr   
size_totalsize_neededr|   r   )r   err_sumerr_msgremedy_archivedirremedy_bootremedy_root
remedy_tmp
remedy_usrwith_snapshotsr   
archivedirerr_longremedyreqs   &             r)   _checkFreeSpace%DistUpgradeController._checkFreeSpace  s   01  9 :
  F G = >
  0 1 :;
rU
;;%%k+eDDOOJK>>@	JJ%%n54 3 ' 	 !001GHJH /{;jj*F 11r>_X77f$QTQXQX:=//:@/ !/ !K KH QTQXQX:=//:< !/ !> >H 2 JJW/1	s   B7 7GDG

Gc                   V P                   P                  \        R 4      4       V P                  P	                  V P                   V P
                  V P                  4      '       g   R# V P
                  '       d8   V P                  P                  V P                  P                  4      '       g   R# V P                  P                  4       pV P                   P                  4        V P                  4        V P                   P                  4        V P                  4       '       g   R# V P                  4       '       g   R# V P                   P                  4        V P                   P                  4        V# )Calculating the changesF)r|   r}   r~   r   distUpgrader  r   installTasksinstalledTasksget_changesr   r  r  r  )r   changess   & r)   calcDistUpgrade%DistUpgradeController.calcDistUpgrade  s    

"; <=zz%%djj$//4CWCWXX???::**4::+D+DEE **((*

  " 	

  " ##%% !!##

  " 	

  "r   c                    V P                  4       pV'       g   R # V P                  P                  \        R4      VV P                  P
                  4      pV# )Fz!Do you want to start the upgrade?)r  r|   confirmChangesr~   r   required_download)r   r  r   s   &  r)   askDistUpgrade$DistUpgradeController.askDistUpgrade   sL    &&( jj''*M(N(/(,

(D(DF 
r   c                    \         P                  ! 4       pVP                  V P                  4      ;'       d     \        P
                  P                  R 4      # )z2/var/snap/canonical-livepatch/common/machine-token)r   r   is_ltsr   rj   rl   isfile)r   r   s   & r)   _isLivepatchEnabled)DistUpgradeController._isLivepatchEnabled,  s9    ))+yy'ppBGGNN;o,ppr   c                Z  a  \         P                  ! 4       pS P                  4       '       d"   VP                  S P                  4      '       d   R # \        V 3R lVP                  R4       4       S P                  4      pS P                  P                  R\        R4      V,          4      pV# )Tc              3   t   <"   T F-  qP                   SP                  8X  g   K  VP                  x  K/  	  R # 5ir  )seriesr   r   )r  rr   s   & r)   r  5DistUpgradeController.askLivepatch.<locals>.<genexpr>6  s&     [+?a88t{{CZ			+?s   88objectNzdLivepatch security updates are not available for Ubuntu %s. If you upgrade, Livepatch will turn off.)
r   r   r  r  r   nextget_allr|   askCancelContinueQuestionr~   )r   r   r   r   s   f   r)   askLivepatch"DistUpgradeController.askLivepatch0  s    ))+''))RYYt{{-C-C[2::h+?[]a]h]hijj224 9 :<CDE 
r   c                   ^ pV P                   P                  4       pV P                  P                  RRR4      pV'       dd    \        P
                  ! 4       ^ ,          P                  R4      ^ ,          pT P                   P                  4       P                  T: RT: 24       V P                  P                  RR	4      pR
pRpW8  do    \        P                  ! V P                  P                  4      p\        P                   ! V4      V n        V P                  P%                  V P"                  V4       R# V'       d0   V P                   P1                  \3        R4      \3        R4      4       ML\        P.                  ! R4       V P                   P/                  \3        R4      \3        R4      RV,          4       V P5                  4        R#    \        P                  ! R4       Rp ELv; i  \&        P                  P(                   d&   p	\        P*                  ! R4       RpT	p Rp	?	K  Rp	?	i\,         d7   p	\        P.                  ! RT	: RT: R24       T^,          pT	p Rp	?	EK  Rp	?	ii ; i)r   rc   SlideshowUrlNr~   getdefaultlocaleenz#locale=r^   r_   Fzuser canceledTIOError in cache.commit(): ''. Retrying (currentTry: r  zUpgrade canceledzwThe upgrade will cancel now and the original system state will be restored. You can resume the upgrade at a later time.+giving up on fetching after maximum retriesCould not download the upgradeszThe upgrade has aborted. Please check your Internet connection or installation media and try again. All files downloaded so far have been kept.r  )r|   r  r   rt  localer(  r  rv   	exceptiongetHtmlViewr8   r   r   PackageManagerr   	_depcacheAcquirer   _fetch_archivesaptFetchCancelledExceptioninfor  r   r   r~   r   )
r   r  	fprogressurllangr   user_canceledr/  pmr   s
   &         r)   doDistUpgradeFetching+DistUpgradeController.doDistUpgradeFetching=  s   JJ113	 kk((.F..0399#>qA JJ""$))C*FG[[''	,?
 
 	'++DJJ,@,@A&y9

**4<<<  JJ""1%7#8#$ &- $./ MMGHJJQ@A  C D "I-/ 	

w!!"458 9944 _- $	 ^_`lmn!	s7   2G A+G. G+.I1H--I1:I1;*I,,I1c                     ^ RI p TP                  4       pTP                  4       p\        P                  ! RT,          4       T#   \         d     R# i ; i   \        P
                  ! R4        R# ; i)z&check if apt-btrfs-snapshot is usable Nzfailed to check btrfs supportFz!apt btrfs snapshots supported: %s)apt_btrfs_snapshotImportErrorAptBtrfsSnapshotsnapshots_supportedrv   r/  rw   )r   r@  	apt_btrfsr   s   &   r)   r  6DistUpgradeController._is_apt_btrfs_snapshot_supported  sp    	%	*;;=I//1C 	9C?@
  		
	=>s   A  A AAA3c                    V P                  4       '       g   R# ^ RIpVP                  4       pRV P                  ,          pVP	                  V4      p\
        P                  ! RV: RV: R24       R# )z1create btrfs snapshot (if btrfs layout is there) Nzrelease-upgrade-%s-zcreating snapshot 'z' (success=r  )r  r@  rB  r   create_btrfs_root_snapshotrv   r7  )r   r@  rD  prefixr   s   &    r)    _maybe_create_apt_btrfs_snapshot6DistUpgradeController._maybe_create_apt_btrfs_snapshot  sT    4466!&779	&4226:fcJKr   c           
        / p\         P                  R ,          .VR &   R\         P                  R &   \         P                  R,          .VR&   \        P                  ! RR7      ;_uu_ 4       pVP                  \         P                  R&   R FJ  p\         P                  P                  V4      WR,           &   \         P                  P                  V4       KL  	   V P                  4       V F1  pW,           F"  p\         P                  P                  W44       K$  	  K3  	  uuRRR4       #   T F1  pY,           F"  p\         P                  P                  Y44       K$  	  K3  	  i ; i  + '       g   i     R# ; i)zdir::bin::dpkgz	/bin/truezDir::State::extended_statesapt_extended_states_)rH  z::N)zdpkg::pre-invokezdpkg::pre-install-pkgszdpkg::post-invokezdpkg::post-install-pkgs)	r   r   tempfileNamedTemporaryFiler  
value_listcleardoDistUpgrader   )r   backupsr@   lstitems   &    r)   doDistUpgradeSimulation-DistUpgradeController.doDistUpgradeSimulation  s&   %,^^4D%E$F !+6'(
 3:..A^2_1`-.((0FGG1<=FFGNN89s&-nn&?&?&Dd
#$$S) t6))+"C '**35 !- # HG #C '**35 !- # HGGs%   +A.E'D+)7E'+9E$$E''E8	c                   ^ pV P                   P                  4       pV P                   P                  V P                  4      pV P                  P                  RR4      pV P                  '       g+   V P                  P                  4        V P                  4        RpRpW8  d<    V P                  P                  W#4      p\        P                  ! RV,          4       R# \        P                  ! R4       V P                   P                  \-        R4      \-        R4      RV,          4       V P/                  4        R#   \         Ed+   p\        P                  ! RT,          4       Tp\        P                   P#                  R4      '       Ed   \%        R4      ;_uu_ 4       pTP'                  4       pRRR4       M  + '       g   i     M; i\        P                  ! RT,          4       R	R
.p	T	 F  p
\)        T4      P+                  T
4      '       g   K%  \        P                  ! R4       \-        R4      pTR\)        T4      ,          ,          pT\-        R4      ,          pT P                   P                  \-        R4      T4       T P/                  4        K  	  \-        R4      pT P                  '       g*   \1        4       '       g   T\-        RT,          4      ,          pT P                   P                  \-        R4      T4       . ROp\        P2                  P5                  R4      R8X  d   TP7                  R4       T P                   P9                  4       P;                  T4        Rp?R# Rp?i\<         d7   p\        P                  ! RT: RT: R24       T^,          pTp Rp?EK  Rp?i\>         d   p\        P@                  ! R4       TpTPB                  ^8X  dl   \-        R4      pTR\)        T4      ,          ,          pT\-        R4      ,          pT P                   P                  \-        R4      T4       T P/                  4         Rp?R# Rp?ii ; i)r   r^   r_   FNzcache.commit() returned %sz#SystemError from cache.commit(): %sz./var/run/ubuntu-release-upgrader-apt-exceptionzfound exception: '%s'z;E:Internal Error, Could not perform immediate configurationz E:Couldn't configure pre-depend z-detected preconfigure error, restorting stateError during commitz
'%s'
Restoring original system statezCould not install the upgradeszrThe upgrade has aborted. Your system could be in an unusable state. A recovery will run now (dpkg --configure -a).z

Please report this bug in a browser at http://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+filebug and attach the files in /var/log/dist-upgrade/ to the bug report.
%sr   r   r   r*  r+  r  zcache.commit()Tr,  r-  zdThe upgrade has aborted. Please check your Internet connection or installation media and try again. r  r   )"r|   r  getInstallProgressr   r   r   r   r   StartUpgraderI  commitrv   rw   r  r   rj   rl   r   r8   r;   r   
startswithr~   r   r   r   r   r7   r   r   r  r   r/  errno)r   r  r8  	iprogressr   r   r/  r   r@   pre_configure_errorspreconf_errormsgr   s   &            r)   rQ  #DistUpgradeController.doDistUpgrade  se    JJ113	JJ11$**=	[[''	,?
###KK$$&113	'A!jj''	<:S@AB  	CD

<= @ A  )+		- 	

U  ,CaGH	 77>>"RSSNOOSTFFH POOOMM"9A"=> V:,<( *>q6,,];;#MM*YZ #$$9":C:A#66C1%F#GGC JJ,,Q/O-PRUV JJL *>  > ? +++%<<q "& )*	"*  + +
 

  #C!DcJ:::>>"348HHJJ01

&&(--c2 ^_`lmn!	 !!!"23 	77b=12C:A..C1>??CJJ$$Q'G%H#NJJL!s^   %8D= =Q	AM.!F;2	M.;GAM.EM..Q;Q<*N--Q:Q;BQQc                   \        4       P                  R 4       \        P                  P	                  \
        P                  P                  R4      4      pV P                  P                   Fq  p\        P                  P	                  \        P                  P                  VP                  4      4      V8X  g   KP   \        P                  ! VP                  4       Ks  	  V P                  4        V P                  P!                  4        V P"                  P%                  \&        P(                  4       V P"                  P+                  \-        R4      4       V P.                  P1                  4       p\2        P4                  ! RRP7                  \9        V4      4      ,          4       V P                  P;                  RR4       F2  pWC9   g   K  \2        P<                  ! RV,          4       \?        4       p M	  V P                  PA                  RRR	4      '       g   \2        P4                  ! R
4       R	# V P                  P;                  RR4       Fo  pW@P.                  9   g   K  V P.                  V,          PB                  '       g   K:  V PD                  PG                  V P                  P;                  VR4      4       Kq  	  \2        P4                  ! RV PD                  ,          4       W0PH                  ,
          pV\?        V PD                  4      ,          pV P.                  PK                  4       p\2        P4                  ! RRP7                  V4      ,          4       V\?        V4      ,          pV P                  PA                  RRR	4      '       g!   \2        P4                  ! R4       \?        4       p\2        P4                  ! RV,          4       \2        P4                  ! R4       V P"                  PM                  4       p\?        4       p\O        V4       FA  p	V P.                  PQ                  WPR                  4      '       d   K0  VPU                  V	4       KC  	  V P.                  PW                  4       ;_uu_ 4        \Y        V4       F  w  rVP[                  V
\]        \_        V4      4      ,          R,          ^,          4       WPD                  9   g   KO  V P"                  Pa                  4        V P.                  Pc                  WV PD                  R	R7      '       g   \2        P4                  ! RV	4       K  VPe                  V	4       K  	  \Y        V4       F  w  rVP[                  V
\]        \_        V4      4      ,          R,          ^,          ^2,           4       V P"                  Pa                  4        V P.                  Pc                  WV PD                  RR7      '       g   \2        P4                  ! RV	4       K  VPe                  V	4       K  	  V P.                  Pg                  4        \h        Pj                  ! V P.                  4      p VPm                  4        V P.                  Pq                  4        V P.                  Pr                  ^ 8  Ed   \2        P4                  ! R4       V P.                  Pu                  4        \?        4       pV P.                  PW                  4       ;_uu_ 4        \Y        V4       F  w  rVP[                  V
\]        \_        V4      4      ,          R,          4       V P"                  Pa                  4        V P.                  Pc                  WV PD                  R	R7      '       g   \2        P4                  ! RV	4       K  VPe                  V	4       K  	  RRR4       V FQ  p	WP.                  9   g   K  V P.                  V	,          Pv                  '       d   K:  \2        P4                  ! RV	4       KS  	  RRR4       \2        P4                  ! R4       VPy                  4        V P.                  P{                  4       p\2        P4                  ! RRP7                  V Uu. uF  qDP|                  NK  	  up4      ,          4       \-        R4      p\-        R4      \-        R4      .p\_        V4      ^ 8  d   V P"                  P                  W^ VR4      '       d]   V P"                  P                  4       pV P"                  P                  V P.                  4      p V P.                  P                  VV4       V P                  4        V P                  P                  4        V P                  '       g   V P                  4        R	#   \         d     E	K5  i ; i  \n         d     ELVi ; i  + '       g   i     EL; i  + '       g   i     EL; iu upi   \        \        3 d_   p\2        P<                  ! RT,          4       T P"                  P=                  \-        R4      \-        R 4      R!T,          4        Rp?EL
Rp?ii ; i)"POSTUPGRADEr  zSearching for obsolete softwarer  rV   rc   ry  zXthe BaseMetaPkg '%s' is in the obsolete list, something is wrong, ignoring the obsoletesRemoveObsoletesTzSkipping obsolete Removalr  rd   zforced_obsoletes: %szUnused dependencies: %sz0Skipping RemoveObsoletes as stated in the configzremove_candidates: '%s'z Start checking for obsolete pkgsg      Y@)auto_fixz:'%s' scheduled for remove but not safe to remove, skippingFzuresolve_by_keep() failed to resolve conflicts from removing obsolete packages, falling back to slower implementation.Nz*obsolete package '%s' could not be removedz!Finish checking for obsolete pkgsz1The following packages are marked for removal: %szRemove obsolete packages?_Keep_Removez,cache.commit() in doPostUpgrade() failed: %srX  z[A problem occurred during the clean-up. Please see the below message for more information. r  )Iget_telemetry	add_stagerj   rl   r   r   r   r   r   r   abspathdestfileunlinkr   r   r   PostUpgrader|   setStepr   CLEANUPr}   r~   r   r  rv   rw   rm   rg  r   r   r   rt  r  r   extendr  _getUnusedDependenciesr   r8  isRemoveCandidater   rA  actiongroup	enumerater  floatr&   r   tryMarkObsoleteForRemovalr@  _startAptResolverLogr5  ProblemResolverresolve_by_keep	Exception_stopAptResolverLogbroken_countrP  r  doner  r  r  r  rZ  r\  r  r  r`  PostCleanupr   runPostInstallScripts)r   r  rT  now_obsoleter  remove_candidatesunused_dependenciesr  scheduled_remover~  rB   prr  r   actionsr8  r_  r   s   &                 r)   doPostUpgrade#DistUpgradeController.doPostUpgrade  sz   !!-0WW__NN##$:;=
LL&&Dwwrwwt}}=>*LIIdmm, ' 	 	!

4<<(

"C DEzz335nsxx|0D'EEF
 ;;&&x?C"x{~~"u	 @ {{))(3DdKKMM56 ;;&&x
;Cjj TZZ_%A%A%A%%,,T[[-@-@EV-WX < 	,t/D/DDE )+=+==S!6!677 #jj??A/:M1NNOS!455 {{))(3DdKKMMLM #/2CCD89::0025 -.G:://9[9[\\!((1 / ZZ##%% )*; <5->)?#@!@% G! KL333JJ,,.::??\`\q\q  }A?  B  B&bdkl(,,W5 != !**; <5->)?#@!@% G! Kb PQ

((*zz;;GX\XmXmx};~~MM"^`gh$((1 != JJ++-$$TZZ0B""$ JJ**,zz&&*  V  W

  "#&5 ZZ++--(12C(D 55F1G+H)H%(OP

002#zzCCG`d`u`u  AEC   F   F#MM*fhop,009 )E . ,zz)

7+999MM"NPWX ,Y &f 	9: **((*ICHHjqUrjqcfV^V^jqUrLsst/0W:q|, L1JJ%%g7EJJ

557I

55djjAI-

!!)I6 	! 	! ###&&(]  h   .--E &%%p Vs  ) -LqPQ

  #8!9!" $3 "4 $(!8	- --s   = f<AgE5gf%Bg/B8f7	'g g+g.g(g$ f"!f"%f40g3f44g7g	gg	$i5Aiic           	        V P                   '       d5   V P                   P                  4        V P                   P                  4        V P                  P	                  RR4       F  p\
        P                  P                  V4      '       g    \        P                  ! RV,          4       KG  \        P                  ! RV,          4        \        V4       V P                  P                  4       P                  V.RR7       K  	  V P                   '       d   V P                   P#                  4        R
# R
#   \         d,   p\        P                   ! RT: RT: R	24        R
p?EK  R
p?ii ; i)z
scripts that are run in any case after the distupgrade finished
whether or not it was successful

Cache lock is released during script runs in the event that the
PostInstallScripts require apt or dpkg changes.
rc   PostInstallScriptsz!PostInstallScript: '%s' not foundzRunning PostInstallScript: '%s'T)hiddenz!got error from PostInstallScript z (r  N)r   r   r   r   r   rj   rl   r   rv   r   rw   r   r|   r   r   r|  r   get_lock)r   scriptr   s   &  r)   r  +DistUpgradeController.runPostInstallScripts  s     :::JJ##%JJ'')kk))(3GHF77>>&)) Cf LMMM;fDEX"6*

&&(--vht-D I :::JJ!   XFTUVWWXs   7D33E)>E$$E)c                   \         P                  ! R4       \        V R4      '       dF   V P                  P	                  V P
                  4       V P                  4        V P                  4        V P                  P                  \        R4      4       V P                  P                  4        V P                  4        \        P                  ! ^4       R# )z1abort the upgrade, cleanup (as much as possible) zabort calledr!  rY  N)rv   rw   hasattrr!  restore_backupr   r\  r`  r|   r}   r~   r   r   r   r   ru  s   &r)   r   DistUpgradeController.abort  s    n%4##LL''(?(?@'')##% 	

"C DE

r   c                   \         P                  ! V4       F  p\        P                  ! RV,          4       V F  pV^ ,          pV^,          pV^,          pW@P                  9  d"   \        P
                  ! RV,          4         R# V P                  V,          p\        VP                  RR4      pVR8w  g   K  \         P                  ! WV4      R8X  g   K    R# 	  K  	  \        P
                  ! RV,          4       R# )z*check if a given depends can be satisfied zchecking: '%s' z_checkDep: '%s' not in cacheFr   NTzdepends '%s' is not satisfied)	r   parse_dependsrv   rw   r   r   getattr	installed	check_dep)	r   depstror_groupdepdepnameveroperr  instvers	   &&       r)   	_checkDepDistUpgradeController._checkDep  s    --f5HMM+h67a&!f1v**,MM"@7"JK zz'*!$..)TBtO%%g374?   6 	5>?r   c                   \         P                  ! R4       RpV P                  P                  RR4      pVP	                  V P                  P                  V P
                  P                  P                  R4      4       V F  p\         P                  ! RV4       WP                  V4      ,          pV'       d   K;  V P
                  P                  \        R4      \        RV,          4      4       \        P                  ! ^4       K  	  V# )zcheck if depends are satisfied zcheckViewDepends()Tr   Dependszdepends: '%s'z!Required depends is not installedz/The required dependency '%s' is not installed. )rv   rw   r   r   rr  r|   rz   r{   r  r   r~   r   r   )r   r   dependsr  s   &   r)   r  &DistUpgradeController.checkViewDepends  s    *+++%%fY7t{{**4::+?+?+H+H+46 	7CMM/3/>>#&&C3 

  #F!G!" $136$7 "89   
r   c                   VP                  R4      p\        V4      w  r4rVpRV9   d   VP                  R4      ^,          pV: RV: V: 2pV P                   Fw  pVP                  R4      p\	        W4      '       d    R# VP                  R4      ^,          p	VP                  V	4      '       g   KY  \        P                  ! RV,          4        R# 	  R# )zcheck if uri is a known mirror r  @r  Tz//z)found apt-cacher/apt-torrent style uri %sF)rstripr   r  r   r   r  rv   rw   )
r   r  raw_urischemenetlocrl   queryfragmentmirrormirror_host_parts
   &&        r)   r5  DistUpgradeController.isMirror  s     **S/080A-X&=\\#&q)F#VT2((F]]3'F%%  &||D1!4||,--ICOP ) r   c                    VP                  R4      pV P                   F(  pVP                  R4      p\        W!4      '       g   K'   R# 	  R# )z.check if uri is an allowed third-party mirror r  TF)r  r   r   )r   r  r  s   && r)   r  (DistUpgradeController.isThirdPartyMirror  s@    jjo++F]]3'F%% , r   c                \   V P                   P                  \        R 4      4       V P                   P                  \        P
                  4       V P                  4       '       g   \        P                  ! R4       \        P                  P                  R4      '       dH   V P                   P                  \        R4      \        R4      4       \        P                  ! RR.4       MDV P                   P                  \        R4      \        R4      4       \        P                  ! R4       V P                  4        V P                  4       '       g   V P                  4        V P!                  R	^R
7       V P#                  4        V P%                  4       '       g   V P                  4         V P                   P                  \        P&                  4       V P                   P                  \        R4      4       V P)                  4       ^ 8:  d   V P+                  4        V P-                  4       '       g   V P                  4        V P!                  4       '       g   V P                  4        V P                   P                  \        R 4      4       V P#                  RR7       V P.                  P1                  4       V n        V P5                  4        V P6                  '       d    V P.                  P9                  4       V n        V P:                  P=                  4        V P>                  PA                  RR4       EF{  pWP.                  9  g5   V P.                  PC                  V P.                  V,          4      '       d   KH  \        P                  ! RV,          4       WP.                  9  d   \        P                  ! RV,          4       MOV P.                  PC                  V P.                  V,          4      '       g   \        P                  ! RV,          4       V P                   P                  \        R4      \        R4      V,          4       \        P                  P                  R4      '       d   \        P                  ! RR.4       M\        P                  ! R4       V P                  4        EK~  	  V P                   P                  \        R4      4       V PE                  4       '       g   V P                  4        V PG                  4        V P                   P                  \        PH                  4       V P                   P                  \        R4      4       V PK                  4       '       g   V P                  4        V P                   P                  \        PL                  4       V P                   P                  \        R4      4       V PO                  4       '       g?   V P                   P                  \        R4      \        R4      4       V P                  4        T P#                  RR7       T P.                  P9                  4       T n        T P:                  P=                  4        T P                   P                  \        R4      4       T PS                  4       '       g   T P                  4        T P                   P                  \        PL                  4       T P                   P                  \        R4      4       T PU                  4       '       gU   T PW                  4        T P                   PY                  \        R4      \        R4      4       \Z        P\                  ! ^4       T P_                  4        \        P                  P                  R4      '       d   \        P`                  ! R4       T P                   P                  \        Pb                  4       T P                   P                  \        R4      4       \e        4       Pg                  4        \i        4       '       g   T Pk                  4       '       df   T P                   Pm                  4        \o        RRR R!7      ;_uu_ 4       pTPq                  R"4       R#R#R#4       T P                   Ps                  4        M8T P                   Pu                  4       '       d   \        P                  ! . R$O4       \Z        P\                  ! ^ 4       R#   \P         d    T P                  4         ELi ; i  + '       g   i     L; i)%zChecking package managerzself.prepare() failedz/usr/bin/apport-bugzPreparing the upgrade failedzXPreparing the system for the upgrade failed so a bug reporting process is being started.z
apport-bugzubuntu-release-upgrader-corezPreparing the system for the upgrade failed. To report a bug install apport and then execute 'apport-bug ubuntu-release-upgrader'.z.Missing apport-bug, bug report not autocreatedF)r  r  zUpdating repository informationT)r   rc   ry  z@No '%s' available/downloadable after sources.list rewrite+updatez'%s' was not in the cachez'%s' was not downloadablezInvalid package informationa  After updating your package information, the essential package '%s' could not be located. This may be because you have no official mirrors listed in your software sources, or because of excessive load on the mirror you are using. See /etc/apt/sources.list for the current list of configured software sources.
In the case of an overloaded mirror, you may want to try the upgrade again later.r	  Fetching	UpgradingzUpgrade infeasiblezQThe upgrade could not be completed, there were errors during the upgrade process.Upgrade completeKThe upgrade has completed but there were errors during the upgrade process.z:/var/lib/ubuntu-release-upgrader/release-upgrade-availablezSystem upgrade is complete.z/run/launcher-commandzw+zutf-8)encodingzaction: reboot
Nz/usr/bin/systemctlrebootz--check-inhibitors=no);r|   r}   r~   rp  r   PREPAREr
  rv   r   rj   rl   r   r   Popenr   r$  r  r   r  MODIFY_SOURCESr%  rT  r  r   r  r   _warn_about_foreign_packagesr  r  r   +ensure_recommends_are_installed_on_desktopsr   r   anyVersionDownloadabler  _inhibitIdleFETCHr=  INSTALLrU  KeyboardInterruptr  rQ  r  r   r   r   r  rn  REBOOTrj  r  r	   _inside_WSLadviseExitOtherWSLr8   r?  adviseRestartWSLconfirmRestart)r   r  r@   s   &  r)   fullUpgrade!DistUpgradeController.fullUpgrade  s<   

"< =>

4<<(||~~MM12ww~~344

  #A!B!" $4 "56   ,0N!OP

  #A!B!" $? "@A
  , -JJL  ""JJL 	Q7 ''))JJLc	JJt223JJ##A&G$HI
 $$&!+++-++--

 ==??

 JJ##A&@$AB NNN=
 37**2M2M2OD/--/ "&**"="="?KKCCE
 {{**8NCzz)

99$**S/JJ
 MM"dgj"jk**,&AC&GH!ZZ>>tzz#OO&AC&GHJJ$$Q'D%E%& (R &S *-&-. ww~~&;<<"((,8V)WX '4 5JJL? DF JJ##A&?$@A&&((

 JJtzz*JJ##AjM2--//

 JJt||,JJ##AkN3//11

  #7!8!" $. "/0 

 	D9**557??A

"; <=##%%JJL 	

4<<(

+/!!##&&(JJ""1%7#8#$ &0 $12
 HHQK 	 77>>VWWIIRS 	

4;;'

"? @A!!

--/14'JJaGG./ K

++-**,,  !Z[HHQK_ ! 	JJL	R KJs:   *Bc9 2%c9 Dc9 <A<c9 9H)c9 4d9ddd+	c                V    V P                   P                  4        V P                  4       # r  )r|   r   r  ru  s   &r)   runDistUpgradeController.run  s!    

  "!!r   c                (   V P                   P                  \        P                  4       V P                   P	                  \        P
                  4       V P                   P	                  \        P                  4       RV n        V P                  4        V P                  4       '       g   R# V P                  4       '       g   R# V P                   P                  \        P                  4       V P                   P                  \        R4      4       V P                  4       '       g   R# V P                   P                  \        P                  4       V P                   P                  \        R4      4       V P!                  4       '       g1   V P                   P#                  \        R4      \        R4      4       R# V P%                  4       '       g1   V P                   P#                  \        R4      \        R4      4       R# \&        P(                  P+                  \,        4      '       d;   V P                   P/                  4       '       d   \0        P2                  ! . RO4       R# V P                   P#                  \        R4      \        R4      4       R# )	z+partial upgrade mode, useful for repairing TFr  r  r  r  z"The partial upgrade was completed.r  )r|   rp  r   r  hideStepr  r  r   r
  r  r  r  r}   r~   r=  r  rQ  r   r  rj   rl   r   REBOOT_REQUIRED_FILEr  r   r  ru  s   &r)   doPartialUpgrade&DistUpgradeController.doPartialUpgrade  s   

4<<(

D//0

DKK(#''))""$$

4::&

*.))++

4<<(

+/!!##JJ""1%7#8#$ &0 $12 !!##JJ""1%7#8#$ &0 $12 77>>.//zz((**  !Z[  JJ""1%7#8#$%I#JLr   c                   \         P                  ! R 4        ^ RIp\        P                  ! RR4      pV P                  RV4      pV\        P                  R&   V P                  RR4      p\        P                  ! 4       ^ 8X  d+   V P                  4       ;pe   \        P                  ! V4       VP                  4       V n        V P                  P                  RR4      pVP                  VRR7      pVP                  RR	4       \        R
4      p\        R4      p	X\        P                  R&   \        P                  ! \        P                  ! 4       4       V P$                  P'                  W4       R#   \          d   p
XR9   dC    Rp
?
X\        P                  R&   \        P                  ! \        P                  ! 4       4       R# \         P                  ! R\#        T
4      ,           4       \        R4      p\        R4      p	 Rp
?
LRp
?
ii ; i  X\        P                  R&   \        P                  ! \        P                  ! 4       4       i ; i)zinhibit screensaverNDBUS_SESSION_BUS_ADDRESSr-   XDG_SESSION_TYPEzorg.freedesktop.ScreenSaverz/org/freedesktop/ScreenSaver)dbus_interfacerK   zUpgrading UbuntuzLock screen disabledzOYour lock screen has been disabled and will remain disabled during the upgrade.zfailed to inhibit screensaver: zUnable to disable lock screenzIt is highly recommended that the lock screen be disabled during the upgrade to prevent later issues. Please ensure your screen lock is disabled before continuing.)r-   tty)rv   rw   dbusrj   rs   get_user_envr   getuidget_user_uidseteuid
SessionBusr   
get_object	InterfaceInhibitr~   r|  r   r|   r   )r   r  bus_address_copybus_address_userxdg_session_typeuidproxyscreensaverr   messager   s   &          r)   r  "DistUpgradeController._inhibitIdle  s   +,/	$  "yy)CRH#00*   6FBJJ12#001CRH 		q ))++8

3 !% 1D%%001N1OQE..?\.]K 9;MN./G 7 8G 6FBJJ12JJryy{#

w0  
	7;. 6FBJJ12JJryy{# MM;c!fDE78G 6 7G
	7 6FBJJ12JJryy{#s6   DE3 3H>HH <HH HH >Ic                @    \         P                  P                  R 4      # )z#/proc/sys/fs/binfmt_misc/WSLInterop)rj   rl   r   ru  s   &r)   r  !DistUpgradeController._inside_WSL=  s    ww~~CDDr   c                   \         P                  ! R P                  RP                  V P                  4      4      4       \         P                  ! RP                  RP                  V P
                  4      4      4       V P
                  '       g   R# \        R4      p\        R4      pV P
                  P                  4        FY  w  r4Vf   V P                  P                  V4      pVe   VP                  pM\        R4      pV\        VR RV R	24      ,          pK[  	  V\        R
4      ,          pV P                  P                  W4      '       d   R# V P                  4        R# )z&Foreign (before rewriting sources): {}rV   z%Foreign (after rewriting sources): {}NzForeign Packages Installedz<The following unofficial packages are currently installed:

zunknown originz.<25zInstalled from: r0  z

It is recommended to install supported versions from the Ubuntu archive, and try the upgrade again.

Do you want to continue the upgrade anyways?)rv   rw   r   rm   r   r   r~   r   r   originr|   r   r   )r   r  bodyr  pkg_filer  s   &     r)   r  2DistUpgradeController._warn_about_foreign_packages@  s.   4VCHHT??@A	
 	3VCHHT@@AB	

 222/0L
 !% C C I I KT ==AA$G#!+,Ad#3F82>??D !L 	;
 	
 ::&&v44JJLr   c                N    V P                   f   R # V P                   P                  # r  )rt   pw_uidru  s   &r)   r  "DistUpgradeController.get_user_uidk  #    ""*&&---r   c                N    V P                   f   R # V P                   P                  # r  )rt   pw_gidru  s   &r)   get_user_gid"DistUpgradeController.get_user_gidq  r  r   c                N    V P                   f   R # V P                   P                  # r  )rt   pw_nameru  s   &r)   get_user_name#DistUpgradeController.get_user_namew  s#    ""*&&...r   c                N    V P                   f   R # V P                   P                  # r  )rt   pw_dirru  s   &r)   get_user_home#DistUpgradeController.get_user_home}  r  r   c           
         V P                  4       pVf=   \        \        P                  \        P
                  ! \        P                  4      4      h\        P                  ! RRRV R2RRRR.VO3/ VB # )	Nzsystemd-run--user-M@.hostz--waitz--pipez-qz--r  r   r^  EINVALrj   strerrorr   r  )r   argskwargsusers   &&, r)   run_as_user!DistUpgradeController.run_as_user  sz    !!#<%,,ELL(ABB~~fo	 	
 
 	
r   c                     V P                  RRV 2.\        P                  R7      P                  P	                  4       P                  4       pV'       g   V# V#   \         d    Tu # i ; i)zB
Helper to access variables from the invoking user's environment.
echo$)stdout)r  r   PIPEr  r=   r>  r   )r   r+  defaultvs   &&& r)   r  "DistUpgradeController.get_user_env  sj    	  1SE#! !  fVVXeeg  H 	N	s   AA A A A*)A*c                    V P                  4       pVf=   \        \        P                  \        P
                  ! \        P                  4      4      h\        P                  ! RRRV R2.VO4      # )N	systemctlr  r  r  r  )r   r  r
  s   && r)   systemctl_as_user'DistUpgradeController.systemctl_as_user  sd    !!#<%,,ELL(ABB~~fo 	
 	
r   ) r   r   r   rt   r   r   r|   r   r   r   r   rn   r   r   r   r   r   r   r   r   r  ro   r   r   r  r!  r   r   r   r   r   r   )NN)TF)TNr  );r{   
__module____qualname____firstlineno____doc__r   r   r   r   r   r   r
  r  r%  rT  r\  r`  rj  rn  rv  r  r  r  r  r  r  r  r  r  r  r  r$  r=  r  rI  rU  rQ  r  r  r   r  r  r5  r  r  r  r  r  r  r  r  r  r  r  r  r  r  __static_attributes____classdictcell__)__classdict__s   @r)   rE   rE   t   s1    =R5h!$FK:	9v>;z&4@,D?@(
RR8FP.4(-^B-^7t>
qENL60`DWr"4&(,{z"%N41lE)V../.
&"
 
r   rE   )@r5  r   r9   r   rX  r   rj   r   r.  rv   rM  r   r  r   rp   r^  configparserr   r   r   	telemetryr   rj  utilsr   r   r   r	   r
   r   r   urllib.parser   DistUpgradeViewr   DistUpgradeCacher   DistUpgradeConfigParserr   r   
aptsourcesr   r   DistInfoaptsources.sourceslistr   r   r   r   DistUpgradeGettextr   r~   r   r   r   r   DistUpgradeApportr   r  r*   r4   rC   r   rE    r   r)   <module>r-     s   .      
 	        
  & 9 +# # # " ! % 6 0   "(( / /
 - ( 8 8 *1  
F  
r   