public override int Read(byte[] buffer, int offset, int count)
{
var bufread = bufferStream.Read(buffer, offset, count);
if (bufread>=count) {
return bufread;
}
var buf = new byte[bufferStream.Capacity];
var baseread = baseStream.Read(buf, 0, buf.Length);
bufferStream.Write(buf, 0, baseread);
var bufread2 = bufferStream.Read(buffer, bufread+offset, count-bufread);
return bufread + bufread2;
}