code: func (s *Server) Start(ctx context.Context) (*lucictx.LocalAuth, error) {
  	la, err := s.initLocalAuth(ctx)
  	if err != nil {
  		return nil, errors.Annotate(err, "failed to initialize LocalAuth").Err()
  	}
  
  	addr, err := s.srv.Start(ctx, "local_auth", s.Port, func(c context.Context, l net.Listener, wg *sync.WaitGroup) error {
  		return s.serve(c, l, wg, la.Secret)
  	})
  	if err != nil {
  		return nil, errors.Annotate(err, "failed to start the local server").Err()
  	}
  
  	la.RPCPort = uint32(addr.Port)
  	return la, nil
  }
docs: // Start launches background goroutine with the serving loop.
  //
  // The provided context is used as base context for request handlers and for
  // logging.
  //
  // Returns a copy of lucictx.LocalAuth structure that specifies how to contact
  // the server. It should be put into "local_auth" section of LUCI_CONTEXT where
  // clients can discover it.
  //
  // The server must be eventually stopped with Stop().