<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def check_for_auto_backup(self, force=False):
 """ The method implements the checks for possible auto backup of the state-machine according duration till the last change together with the private method _check_for_dyn_timed_auto_backup. If the only_fix_interval is True this function is called ones in the beginning and is called by a timed- threads in a fix interval. :param force: is a flag that force the temporary backup of the state-machine to the tmp-folder :return: """

        if not self.timed_temp_storage_enabled:
            return

        sm = self.state_machine_model.state_machine
        current_time = time.time()

        if not self.only_fix_interval and not self.marked_dirty:
            # logger.info("adjust last_backup_time " + str(sm.state_machine_id))
            self.last_backup_time = current_time         # used as 'last-modification-not-backup-ed' time

        is_not_timed_or_reached_time_to_force = \
            current_time - self.last_backup_time > self.force_temp_storage_interval or self.only_fix_interval

        if (sm.marked_dirty and is_not_timed_or_reached_time_to_force) or force:
            if not self.only_fix_interval or self.marked_dirty:
                thread = threading.Thread(target=self.perform_temp_storage)
                thread.start()
                # self.last_backup_time = current_time  # used as 'last-backup' time
            if self.only_fix_interval:
                self.set_timed_thread(self.force_temp_storage_interval, self.check_for_auto_backup)
        else:
            if not self.only_fix_interval:
                self.timer_request_lock.acquire()
                if self._timer_request_time is None:
                    # logger.info('{0} start_thread {1}'.format(current_time, sm.state_machine_id))
                    self._timer_request_time = current_time
                    self.set_timed_thread(self.timed_temp_storage_interval, self._check_for_dyn_timed_auto_backup)
                else:
                    # logger.info('{0} update_thread {1}'.format(current_time, sm.state_machine_id))
                    self._timer_request_time = current_time
                self.timer_request_lock.release()
            else:
                self.set_timed_thread(self.force_temp_storage_interval, self.check_for_auto_backup)