docs: function hashUUID(hashFn, options, buffer, offset) {
  	var i, v;
  	var output = buffer || new Buffer(16);
  	offset = offset || 0;
  	options = options || {};
  
  	if (!options.data) {
  		for (i=0; i<16; i++) {
  			output[i] = 0;
  		}
  		return buffer || unparse(output);
  	}
  
  	if (typeof options.ns === 'string') {
  		options.ns = parse(options.ns, new Buffer(16));
  	}
  
  	var hasher = crypto.createHash(hashFn);
  	hasher.update(options.ns || '');
  	hasher.update(options.data || '');
  
  	switch (hashFn) {
  		case 'md5': v = 0x30; break;
  		case 'sha1': v = 0x50; break;
  	}
  	output.write(hasher.digest('binary'), offset, 16, 'binary');
  	output[offset + 8] = output[offset + 8] & 0x3f | 0x80; // set variant
  	output[offset + 6] = output[offset + 6] & 0x0f | v; // set version
  
  	return buffer || unparse(output);
  }