'Decompress the message data from signed_message_list.
Args:
signed_message_list: A SignedMessageList rdfvalue with some data in it.
Returns:
a MessageList rdfvalue.
Raises:
DecodingError: If decompression fails.'

def DecompressMessageList(self, signed_message_list):

    compression = signed_message_list.compression
    if (compression == rdf_flows.SignedMessageList.CompressionType.UNCOMPRESSED):
        data = signed_message_list.message_list
    elif (compression == rdf_flows.SignedMessageList.CompressionType.ZCOMPRESSION):
        try:
            data = zlib.decompress(signed_message_list.message_list)
        except zlib.error as e:
            raise DecodingError(('Failed    to    decompress:    %s' % e))
    else:
        raise DecodingError('Compression    scheme    not    supported')
    try:
        result = rdf_flows.MessageList.FromSerializedString(data)
    except rdfvalue.DecodeError:
        raise DecodingError('RDFValue    parsing    failed.')
    return result
