code: func (im *importer) bestNode(res *search.SearchResult) (*Object, error) {
  	if len(res.Blobs) == 0 {
  		// let the caller create a fresh node
  		return nil, nil
  	}
  	var best *Object
  	for _, desb := range res.Blobs {
  		o, err := im.host.ObjectFromRef(desb.Blob)
  		if err != nil {
  			return nil, err
  		}
  		if best == nil {
  			best = o
  			continue
  		}
  		if best.Attr(attrClientID) == "" && o.Attr(attrClientID) != "" {
  			best = o
  			continue
  		}
  		if best.Attr(attrClientSecret) == "" && o.Attr(attrClientSecret) != "" {
  			best = o
  			continue
  		}
  		if best.Attr("title") == "" && o.Attr("title") != "" {
  			best = o
  			continue
  		}
  		// all other things being equal, pick the most recent one, as it's more likely
  		// to be a sha224 than a sha1
  		if best.modtime.Before(o.modtime) {
  			best = o
  			continue
  		}
  	}
  	return best, nil
  }
docs: // bestNode picks the most populated importer node amongst res.Blobs, or nil if
  // len(res.Blobs) == 0
  // It is the caller's responsibility to create the correct request so that
  // res.Blobs are all importer nodes.