docs: function parse_xlsxcfb(cfb, opts) {
  	var f = 'Version';
  	var data = cfb.find(f);
  	if(!data) throw new Error("ECMA-376 Encrypted file missing " + f);
  	var version = parse_DataSpaceVersionInfo(data.content);
  
  	/* 2.3.4.1 */
  	f = 'DataSpaceMap';
  	data = cfb.find(f);
  	if(!data) throw new Error("ECMA-376 Encrypted file missing " + f);
  	var dsm = parse_DataSpaceMap(data.content);
  	if(dsm.length != 1 || dsm[0].comps.length != 1 || dsm[0].comps[0].t != 0 || dsm[0].name != "StrongEncryptionDataSpace" || dsm[0].comps[0].v != "EncryptedPackage")
  		throw new Error("ECMA-376 Encrypted file bad " + f);
  
  	f = 'StrongEncryptionDataSpace';
  	data = cfb.find(f);
  	if(!data) throw new Error("ECMA-376 Encrypted file missing " + f);
  	var seds = parse_DataSpaceDefinition(data.content);
  	if(seds.length != 1 || seds[0] != "StrongEncryptionTransform")
  		throw new Error("ECMA-376 Encrypted file bad " + f);
  
  	/* 2.3.4.3 */
  	f = '!Primary';
  	data = cfb.find(f);
  	if(!data) throw new Error("ECMA-376 Encrypted file missing " + f);
  	var hdr = parse_Primary(data.content);
  
  	f = 'EncryptionInfo';
  	data = cfb.find(f);
  	if(!data) throw new Error("ECMA-376 Encrypted file missing " + f);
  	var einfo = parse_EncryptionInfo(data.content);
  
  	throw new Error("File is password-protected");
  }