## Problem Description and Formulation

The problem requires maximizing an objective function subject to several constraints. The objective function is:

\[ 1.28x_0^2 + 3.91x_1^2 + 8.56x_0 + 5.2x_1 \]

where \(x_0\) represents the quantity of strips of bacon and \(x_1\) represents the quantity of oranges.

The constraints are:

1. \(8x_0 + 3x_1 \geq 14\) (at least 14 grams of fiber from strips of bacon and oranges)
2. \(4x_0 - 6x_1 \geq 0\) (four times the number of strips of bacon, plus minus six times the number of oranges must be at least zero)
3. \(8^2x_0^2 + 3^2x_1^2 \leq 15\) (up to 15 grams of fiber from strips of bacon squared plus oranges squared)
4. \(8x_0 + 3x_1 \leq 15\) (at most 15 grams of fiber can come from strips of bacon plus oranges)
5. \(x_0\) must be an integer (an integer number of strips of bacon must be used)
6. \(x_1\) can be a non-integer (a non-integer number of oranges can be used)

## Gurobi Code Formulation

```python
import gurobi

def solve_optimization_problem():
    # Create a new Gurobi model
    model = gurobi.Model()

    # Define variables
    x0 = model.addVar(name="strips_of_bacon", vtype=gurobi.GRB.INTEGER)  # integer variable for strips of bacon
    x1 = model.addVar(name="oranges", vtype=gurobi.GRB.CONTINUOUS)  # continuous variable for oranges

    # Objective function
    model.setObjective(1.28 * x0**2 + 3.91 * x1**2 + 8.56 * x0 + 5.2 * x1, gurobi.GRB.MAXIMIZE)

    # Constraints
    model.addConstr(8 * x0 + 3 * x1 >= 14, name="fiber_min")  # at least 14 grams of fiber
    model.addConstr(4 * x0 - 6 * x1 >= 0, name="bacon_orange_balance")  # four times bacon - six times oranges >= 0
    model.addConstr(8**2 * x0**2 + 3**2 * x1**2 <= 15, name="fiber_squared_max")  # up to 15 grams of fiber squared
    model.addConstr(8 * x0 + 3 * x1 <= 15, name="fiber_max")  # at most 15 grams of fiber

    # Optimize the model
    model.optimize()

    # Print the solution
    if model.status == gurobi.GRB.OPTIMAL:
        print("Optimal Solution:")
        print(f"Strips of bacon: {x0.varValue}")
        print(f"Oranges: {x1.varValue}")
        print(f"Objective: {model.objVal}")
    elif model.status == gurobi.GRB.INFEASIBLE:
        print("The model is infeasible.")
    else:
        print("The model has a non-optimal status.")

solve_optimization_problem()
```