code: func (c *EvalContext) GetNewState() m.AlertStateType {
  	ns := getNewStateInternal(c)
  	if ns != m.AlertStateAlerting || c.Rule.For == 0 {
  		return ns
  	}
  
  	since := time.Since(c.Rule.LastStateChange)
  	if c.PrevAlertState == m.AlertStatePending && since > c.Rule.For {
  		return m.AlertStateAlerting
  	}
  
  	if c.PrevAlertState == m.AlertStateAlerting {
  		return m.AlertStateAlerting
  	}
  
  	return m.AlertStatePending
  }
docs: // GetNewState returns the new state from the alert rule evaluation