<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def find_blocked_biomass_precursors(reaction, model):
 """ Return a list of all biomass precursors that cannot be produced. Parameters reaction : cobra.core.reaction.Reaction The biomass reaction of the model under investigation. model : cobra.Model The metabolic model under investigation. Returns ------- list Metabolite objects that are reactants of the biomass reaction excluding ATP and H2O that cannot be produced by flux balance analysis. """

    LOGGER.debug("Finding blocked biomass precursors")
    precursors = find_biomass_precursors(model, reaction)
    blocked_precursors = list()
    _, ub = helpers.find_bounds(model)
    for precursor in precursors:
        with model:
            dm_rxn = model.add_boundary(
                precursor,
                type="safe-demand",
                reaction_id="safe_demand",
                lb=0,
                ub=ub
            )
            flux = helpers.run_fba(model, dm_rxn.id, direction='max')
            if np.isnan(flux) or abs(flux) < 1E-08:
                blocked_precursors.append(precursor)
    return blocked_precursors