available():...and (self.index == 0 or len(self.data) > self.buflen)