docs: function(blob, length) {
  	var end = blob.l + length;
  	var sVer = blob.read_shift(4);
  	if(sVer !== 2) throw new Error("Unrecognized streamVersion: " + sVer);
  	var flags = blob.read_shift(2);
  	blob.l += 2;
  	var displayName, targetFrameName, moniker, oleMoniker, location, guid, fileTime;
  	if(flags & 0x0010) displayName = parse_HyperlinkString(blob, end - blob.l);
  	if(flags & 0x0080) targetFrameName = parse_HyperlinkString(blob, end - blob.l);
  	if((flags & 0x0101) === 0x0101) moniker = parse_HyperlinkString(blob, end - blob.l);
  	if((flags & 0x0101) === 0x0001) oleMoniker = parse_HyperlinkMoniker(blob, end - blob.l);
  	if(flags & 0x0008) location = parse_HyperlinkString(blob, end - blob.l);
  	if(flags & 0x0020) guid = blob.read_shift(16);
  	if(flags & 0x0040) fileTime = parse_FILETIME(blob, 8);
  	blob.l = end;
  	var target = (targetFrameName||moniker||oleMoniker);
  	if(location) target+="#"+location;
  	return {Target: target};
  }