= election_timeout->period_ms * 3 * 100;
= (election_timeout->period_ms + election_trigger->period_ms) * 32;
do_read_config(long long action,	       enum crmd_fsa_cause cause,	       enum crmd_fsa_state cur_state,	       enum crmd_fsa_input current_input,	       fsa_data_t *msg_data){	crm_data_t *cib_copy = get_cib_copy(fsa_cib_conn);	crm_data_t *config   = get_object_root(XML_CIB_TAG_CRMCONFIG, cib_copy);	xml_child_iter(		config, iter, XML_CIB_TAG_NVPAIR,		const char *name  = crm_element_value(iter, XML_NVPAIR_ATTR_NAME);		const char *value = crm_element_value(iter, XML_NVPAIR_ATTR_VALUE);		if(name == NULL || value == NULL) {			continue;					} else if(safe_str_eq(name, XML_CONFIG_ATTR_DC_BEAT)) {			dc_heartbeat->period_ms = atoi(value);					} else if(safe_str_eq(name, XML_CONFIG_ATTR_DC_DEADTIME)) {			election_trigger->period_ms = atoi(value);		} else if(safe_str_eq(name, XML_CONFIG_ATTR_FORCE_QUIT)) {			shutdown_escalation_timer->period_ms = atoi(value);		} else if(safe_str_eq(name, XML_CONFIG_ATTR_REANNOUNCE)) {			fsa_join_reannouce = atoi(value);		}		);			if(dc_heartbeat->period_ms < 1) {		/* sensible default */		dc_heartbeat->period_ms = 1000;			}	if(fsa_join_reannouce < 0) {		fsa_join_reannouce = 100; /* how many times should we let					   * go by before reannoucning					   * ourselves to the DC					   */	}		election_timeout->period_ms   = dc_heartbeat->period_ms * 6;	integration_timer->period_ms  = dc_heartbeat->period_ms * 6;	finalization_timer->period_ms = dc_heartbeat->period_ms * 6;		if(election_trigger->period_ms < 1	   || election_trigger->period_ms > election_timeout->period_ms) {		/* sensible default */		election_trigger->period_ms = election_timeout->period_ms * 2;	}		if(shutdown_escalation_timer->period_ms < 1	   || election_timeout->period_ms > shutdown_escalation_timer->period_ms) {		/* sensible default */		shutdown_escalation_timer->period_ms			= election_timeout->period_ms * 3 * 100;	}	return I_NULL;}