protected static int ReadVLQ(Stream input) { int value = 0; for (var i = 0; i < 4; ++i) { var str = input.ReadByte(); value = (value << 7) | (str & 0x7F); if ((str & 0x80) == 0) break; } return value; }