<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def set_initial_condition(self, initial_condition):
 """ Set the initial conditions of the integration. Parameters initial_condition : <string> or <tuple> Takes on one of the following sets of values: * 'original'/'o' : Reset to the model-file specified initial condition. * 'current'/'c' : Use the current state of the system to start the next simulation. This includes the simulation time, so this initial condition must be paired with new return timestamps * (t, {state}) : Lets the user specify a starting time and list of stock values. See Also -------- PySD.set_state() """


        if isinstance(initial_condition, tuple):
            # Todo: check the values more than just seeing if they are a tuple.
            self.set_state(*initial_condition)
        elif isinstance(initial_condition, str):
            if initial_condition.lower() in ['original', 'o']:
                self.initialize()
            elif initial_condition.lower() in ['current', 'c']:
                pass
            else:
                raise ValueError('Valid initial condition strings include:  \n' +
                                 '    "original"/"o",                       \n' +
                                 '    "current"/"c"')
        else:
            raise TypeError('Check documentation for valid entries')