code: func (t StaticToken) Parse() (*services.ProvisionTokenV1, error) {
  	parts := strings.Split(string(t), ":")
  	if len(parts) != 2 {
  		return nil, trace.BadParameter("invalid static token spec: %q", t)
  	}
  
  	roles, err := teleport.ParseRoles(parts[0])
  	if err != nil {
  		return nil, trace.Wrap(err)
  	}
  
  	return &services.ProvisionTokenV1{
  		Token:   parts[1],
  		Roles:   roles,
  		Expires: time.Unix(0, 0).UTC(),
  	}, nil
  }
docs: // Parse is applied to a string in "role,role,role:token" format. It breaks it
  // apart and constructs a services.ProvisionToken which contains the token,
  // role, and expiry (infinite).