code: def ReadSerializableArray(self, class_name, max=sys.maxsize):
          
          module = '.'.join(class_name.split('.')[:-1])
          klassname = class_name.split('.')[-1]
          klass = getattr(importlib.import_module(module), klassname)
          length = self.ReadVarInt(max=max)
          items = []
          #        logger.info("READING ITEM %s %s " % (length, class_name))
          try:
              for i in range(0, length):
                  item = klass()
                  item.Deserialize(self)
                  #                logger.info("deserialized item %s %s " % ( i, item))
                  items.append(item)
          except Exception as e:
              logger.error("Couldn't deserialize %s " % e)
  
          return items
docs: Deserialize a stream into the object specific by `class_name`.
  
          Args:
              class_name (str): a full path to the class to be deserialized into. e.g. 'neo.Core.Block.Block'
              max (int): (Optional) maximum number of bytes to read.
  
          Returns:
              list: list of `class_name` objects deserialized from the stream.