code: def FilterList(l, offset, count=0, filter_value=None):
    
  
    if offset < 0:
      raise ValueError("Offset needs to be greater than or equal to zero")
  
    if count < 0:
      raise ValueError("Count needs to be greater than or equal to zero")
  
    count = count or sys.maxsize
    if not filter_value:
      return l[offset:offset + count]
  
    index = 0
    items = []
    for item in l:
      serialized_item = item.SerializeToString()
      if re.search(re.escape(filter_value), serialized_item, re.I):
        if index >= offset:
          items.append(item)
        index += 1
  
        if len(items) >= count:
          break
  
    return items
docs: Filters a list, getting count elements, starting at offset.