<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def run_decider_state(self, decider_state, child_errors, final_outcomes_dict):
 """ Runs the decider state of the barrier concurrency state. The decider state decides on which outcome the barrier concurrency is left. :param decider_state: the decider state of the barrier concurrency state :param child_errors: error of the concurrent branches :param final_outcomes_dict: dictionary of all outcomes of the concurrent branches :return: """

        decider_state.state_execution_status = StateExecutionStatus.ACTIVE
        # forward the decider specific data
        decider_state.child_errors = child_errors
        decider_state.final_outcomes_dict = final_outcomes_dict
        # standard state execution
        decider_state.input_data = self.get_inputs_for_state(decider_state)
        decider_state.output_data = self.create_output_dictionary_for_state(decider_state)
        decider_state.start(self.execution_history, backward_execution=False)
        decider_state.join()
        decider_state_error = None
        if decider_state.final_outcome.outcome_id == -1:
            if 'error' in decider_state.output_data:
                decider_state_error = decider_state.output_data['error']
        # standard output data processing
        self.add_state_execution_output_to_scoped_data(decider_state.output_data, decider_state)
        self.update_scoped_variables_with_output_dictionary(decider_state.output_data, decider_state)
        return decider_state_error