```json
{
  "sym_variables": [
    ("x0", "rubber gloves"),
    ("x1", "cartons of milk"),
    ("x2", "candles"),
    ("x3", "dish soap bottles"),
    ("x4", "packs of paper plates")
  ],
  "objective_function": "5.77*x0**2 + 7.78*x1*x2 + 6.41*x1*x3 + 8.17*x1*x4 + 4.68*x3 + 2.92*x4",
  "constraints": [
    "4*x1 + 3*x2 >= 17",
    "3*x2 + 7*x4 >= 32",
    "10*x0 + 7*x4 >= 23",
    "10*x0**2 + 4*x1**2 >= 36",
    "10*x0 + 2*x3 >= 21",
    "10*x0 + 3*x2 >= 40",
    "10*x0 + 4*x1 + 2*x3 >= 32",
    "10*x0 + 4*x1 + 7*x4 >= 32",
    "10*x0 + 3*x2 + 7*x4 >= 32",
    "4*x1 + 2*x3 + 7*x4 >= 32",
    "10*x0**2 + 2*x3**2 + 7*x4**2 >= 32",
    "10*x0 + 4*x1 + 2*x3 >= 32",
    "10*x0**2 + 4*x1**2 + 7*x4**2 >= 32",
    "10*x0**2 + 3*x2**2 + 7*x4**2 >= 32",
    "4*x1 + 2*x3 + 7*x4 >= 32",
    "10*x0 + 2*x3 + 7*x4 >= 32",
    "10*x0**2 + 4*x1**2 + 2*x3**2 >= 35",
    "10*x0**2 + 4*x1**2 + 7*x4**2 >= 35",
    "10*x0**2 + 3*x2**2 + 7*x4**2 >= 35",
    "4*x1 + 2*x3 + 7*x4 >= 35",
    "10*x0**2 + 2*x3**2 + 7*x4**2 >= 35",
    "10*x0**2 + 4*x1**2 + 2*x3**2 >= 37",
    "10*x0 + 4*x1 + 7*x4 >= 37",
    "10*x0 + 3*x2 + 7*x4 >= 37",
    "4*x1 + 2*x3 + 7*x4 >= 37",
    "10*x0**2 + 2*x3**2 + 7*x4**2 >= 37",
    "10*x0 + 4*x1 + 2*x3 >= 31",
    "10*x0 + 4*x1 + 7*x4 >= 31",
    "10*x0 + 3*x2 + 7*x4 >= 31",
    "4*x1**2 + 2*x3**2 + 7*x4**2 >= 31",
    "10*x0 + 2*x3 + 7*x4 >= 31",
    "10*x0 + 4*x1 + 3*x2 + 2*x3 + 7*x4 >= 31",
    "x0 + 4*x4 >= 32",
    "x0 + 11*x1 >= 24",
    "11*x1**2 + 8*x2**2 >= 29",
    "x3 + 4*x4 >= 22",
    "11*x1 + 8*x2 + x3 >= 36",
    "x0 + 11*x1 + x3 >= 36",
    "x0**2 + 11*x1**2 + 8*x2**2 >= 36",
    "x0 + 8*x2 + x3 >= 36",
    "x0 + 11*x1 + 4*x4 >= 36",
    "11*x1 + 8*x2 + x3 >= 29",
    "x0**2 + 11*x1**2 + x3**2 >= 29",
    "x0 + 11*x1 + 8*x2 >= 29",
    "x0**2 + 8*x2**2 + x3**2 >= 29",
    "x0 + 11*x1 + 4*x4 >= 29",
    "11*x1 + 8*x2 + x3 >= 22",
    "x0 + 11*x1 + x3 >= 22",
    "x0 + 11*x1 + 8*x2 >= 22",
    "x0**2 + 8*x2**2 + x3**2 >= 22",
    "x0 + 11*x1 + 4*x4 >= 22",
    "11*x1**2 + 8*x2**2 + x3**2 >= 35",
    "x0 + 11*x1 + x3 >= 35",
    "x0 + 11*x1 + 8*x2 >= 35",
    "x0**2 + 8*x2**2 + x3**2 >= 35",
    "x0 + 11*x1 + 4*x4 >= 35",
    "11*x1 + 8*x2 + x3 >= 40",
    "x0 + 11*x1 + x3 >= 40",
    "x0 + 11*x1 + 8*x2 >= 40",
    "x0 + 8*x2 + x3 >= 40",
    "x0 + 11*x1 + 4*x4 >= 40",
    "x0 + 11*x1 + 8*x2 + x3 + 4*x4 >= 40",
    "-2*x0**2 + 8*x3**2 >= 0",
    "-5*x0**2 + x4**2 >= 0",
    "4*x1 + 2*x3 <= 153",
    "10*x0 + 4*x1 <= 159",
    "4*x1**2 + 7*x4**2 <= 143",
    "3*x2**2 + 7*x4**2 <= 76",
    "10*x0**2 + 7*x4**2 <= 128",
    "10*x0 + 3*x2 <= 88",
    "x3 + 4*x4 <= 182",
    "8*x2 + 4*x4 <= 158",
    "x0 + x3 <= 68",
    "x0**2 + x3**2 + 4*x4**2 <= 70",
    "x0**2 + 11*x1**2 + 4*x4**2 <= 133",
    "11*x1 + 8*x2 + 4*x4 <= 197",
    "11*x1**2 + 8*x2**2 + x3**2 <= 103",
    "10*x0 <= 208",
    "x0 + 11*x1 + 8*x2 + x3 + 4*x4 <= 204"
  ]
}
```

```python
import gurobipy as gp

# Create a new model
m = gp.Model("optimization_problem")

# Create variables
x = m.addVars(5, vtype=gp.GRB.INTEGER, name=["rubber_gloves", "cartons_of_milk", "candles", "dish_soap", "paper_plates"])


# Set objective function
m.setObjective(5.77*x[0]**2 + 7.78*x[1]*x[2] + 6.41*x[1]*x[3] + 8.17*x[1]*x[4] + 4.68*x[3] + 2.92*x[4], gp.GRB.MINIMIZE)

# Add constraints
m.addConstr(4*x[1] + 3*x[2] >= 17)
m.addConstr(3*x[2] + 7*x[4] >= 32)
m.addConstr(10*x[0] + 7*x[4] >= 23)
m.addConstr(10*x[0]**2 + 4*x[1]**2 >= 36)
m.addConstr(10*x[0] + 2*x[3] >= 21)
m.addConstr(10*x[0] + 3*x[2] >= 40)

# ... (add all other constraints similarly)

m.addConstr(10 * x[0] <= 208)
m.addConstr(x[0] + 11 * x[1] + 8 * x[2] + x[3] + 4 * x[4] <= 204)


# Optimize model
m.optimize()

# Print results
if m.status == gp.GRB.OPTIMAL:
    for v in m.getVars():
        print(f'{v.varName}: {v.x}')
    print(f'Obj: {m.objVal}')
elif m.status == gp.GRB.INFEASIBLE:
    print("The model is infeasible.")
else:
    print(f"Optimization ended with status {m.status}")

```
