&e2ddlZddlZGddeZddZy)NceZdZdZy) PatchErrorz Error during the patch process N)__name__ __module__ __qualname____doc__@/usr/lib/python3/dist-packages/DistUpgrade/DistUpgradePatcher.pyrrs*r rctd\}}t|d5}|j}ddddx}}|} t|d5}|j} ddd D]'} | |k(r| j} | j dra| dd} | j dd\} } | r t d | jd\}}}tj|||d \}}|||<| d }| dd jd \}}}t|}|dz}|d k(r|dz}n t|}|dk(r ||=|} |dz}|dk(r|} |dk(r||=t d| z| |k(s| dk(r|} |dz }j|| *d j}|rRtj}|j|j!d|j#|k7r t dt|dd5}|j%|dddy#1swYxYw#1swYxYw#1swYyxYw)z python implementation of enough "ed" to apply ed-style patches. Note that this patches in memory so its *not* suitable for big files zUTF-8)encodingNrzs//zflags for s// not supported yet)count,cadzunknown command: '%s'z. z(the md5sum after patching is not correctwT)rangeopen readlinesstrip startswithrsplitr partitionresubnintinsertjoinhashlibmd5updateencode hexdigestwrite)origedpatch result_md5sumSTATE_EXPECT_COMMANDSTATE_EXPECT_DATAf orig_linesstartendstatelineslinesubsflagsregexpsepreplnewrcommand start_strend_strresultr&s r patchrAsp ( dW %#[[] #OEC !E g (A 1/ ( (::rCs,   Or