docs: public static List<AvPair> decode ( byte[] data ) throws CIFSException {
          List<AvPair> pairs = new LinkedList<>();
          int pos = 0;
          boolean foundEnd = false;
          while ( pos + 4 <= data.length ) {
              int avId = SMBUtil.readInt2(data, pos);
              int avLen = SMBUtil.readInt2(data, pos + 2);
              pos += 4;
  
              if ( avId == AvPair.MsvAvEOL ) {
                  if ( avLen != 0 ) {
                      throw new CIFSException("Invalid avLen for AvEOL");
                  }
                  foundEnd = true;
                  break;
              }
  
              byte[] raw = new byte[avLen];
              System.arraycopy(data, pos, raw, 0, avLen);
              pairs.add(parseAvPair(avId, raw));
  
              pos += avLen;
          }
          if ( !foundEnd ) {
              throw new CIFSException("Missing AvEOL");
          }
          return pairs;
      }