<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def parse_conf(self, keys=[]):
 """Parse configuration values from the database. The extension must have been previously initialized. If a key is not found in the database, it will be created with the default value specified. Arguments: keys (list[str]):
 list of keys to parse. If the list is empty, then all the keys known to the application will be used. Returns: dict of the parsed config values. """

        confs = self.app.config.get('WAFFLE_CONFS', {})
        if not keys:
            keys = confs.keys()

        result = {}

        for key in keys:
            # Some things cannot be changed...
            if key.startswith('WAFFLE_'):
                continue

            # No arbitrary keys
            if key not in confs.keys():
                continue

            stored_conf = self.configstore.get(key)

            if not stored_conf:
                # Store new record in database
                value = confs[key].get('default', '')
                stored_conf = self.configstore.put(key, util.serialize(value))
                self.configstore.commit()

            else:
                # Get stored value
                value = util.deserialize(stored_conf.get_value())

            result[stored_conf.get_key()] = value

        return result