code: @Override protected void processAutoFilters(byte[] data)
     {
        //System.out.println(ByteArrayHelper.hexdump(data, true, 16, ""));
  
        //
        // 16 byte block header containing the filter count
        //
        int filterCount = MPPUtility.getShort(data, 8);
        int offset = 16;
        CriteriaReader criteria = new FilterCriteriaReader9();
        List<FieldType> fields = new LinkedList<FieldType>();
  
        //
        // Filter data: 24 byte header, plus 80 byte criteria blocks,
        // plus var data. Total block size is specified at the start of the
        // block.
        //
        for (int loop = 0; loop < filterCount; loop++)
        {
           int blockSize = MPPUtility.getShort(data, offset);
  
           //
           // Steelray 12335: the block size may be zero
           //
           if (blockSize == 0)
           {
              break;
           }
  
           //System.out.println(ByteArrayHelper.hexdump(data, offset, blockSize, true, 16, ""));
  
           int entryOffset = MPPUtility.getShort(data, offset + 12);
           fields.clear();
           GenericCriteria c = criteria.process(m_properties, data, offset + 4, entryOffset, null, fields, null);
           //System.out.println(c);
  
           if (!fields.isEmpty())
           {
              Filter filter = new Filter();
              filter.setCriteria(c);
              m_autoFilters.add(filter);
              m_autoFiltersByType.put(fields.get(0), filter);
           }
  
           //
           // Move to the next filter
           //
           offset += blockSize;
        }
     }
docs: {@inheritDoc}