code: func (process *TeleportProcess) importListener(listenerType, address string) (net.Listener, error) {
  	process.Lock()
  	defer process.Unlock()
  
  	for i := range process.importedDescriptors {
  		d := process.importedDescriptors[i]
  		if d.Type == listenerType && d.Address == address {
  			l, err := d.ToListener()
  			if err != nil {
  				return nil, trace.Wrap(err)
  			}
  			process.importedDescriptors = append(process.importedDescriptors[:i], process.importedDescriptors[i+1:]...)
  			process.registeredListeners = append(process.registeredListeners, RegisteredListener{Type: listenerType, Address: address, Listener: l})
  			return l, nil
  		}
  	}
  
  	return nil, trace.NotFound("no file descriptor for type %v and address %v has been imported", listenerType, address)
  }
docs: // importListener imports listener passed by the parent process, if no listener is found
  // returns NotFound, otherwise removes the file from the list