code: func (f *Finder) findRoot(ctx context.Context, root *list.Element, parts []string) bool {
  	if len(parts) == 0 {
  		return false
  	}
  
  	ix := len(parts) - 1
  
  	if parts[ix] != "..." {
  		return false
  	}
  
  	if ix == 0 {
  		return true // We already have the Object for root.Path
  	}
  
  	// Lookup the Object for the new root.Path
  	rootPath := path.Join(root.Path, path.Join(parts[:ix]...))
  
  	ref, err := f.si.FindByInventoryPath(ctx, rootPath)
  	if err != nil || ref == nil {
  		// If we get an error or fail to match, fall through to find() with the original root and path
  		return false
  	}
  
  	root.Path = rootPath
  	root.Object = ref
  
  	return true
  }
docs: // findRoot makes it possible to use "find" mode with a different root path.
  // Example: ResourcePoolList("/dc1/host/cluster1/...")