```json
{
  "sym_variables": [
    ("x0", "apple pies"),
    ("x1", "chicken thighs"),
    ("x2", "hamburgers"),
    ("x3", "eggs")
  ],
  "objective_function": "5.22*x0*x1 + 7.67*x0*x3 + 5.72*x1*x2 + 3.72*x1*x3 + 8.75*x0 + 4.07*x3",
  "constraints": [
    "2.59*x0 + 5.76*x1 + 4.74*x2 + 3.35*x3 <= 118",
    "9.41*x0 + 6.55*x1 + 0.76*x2 + 4.79*x3 <= 247",
    "5.76*x1 + 4.74*x2 >= 17",
    "(4.74*x2)**2 + (3.35*x3)**2 >= 26",
    "2.59*x0 + 5.76*x1 + 4.74*x2 + 3.35*x3 >= 26",
    "9.41*x0 + 6.55*x1 >= 41",
    "9.41*x0 + 0.76*x2 >= 53",
    "9.41*x0 + 4.79*x3 >= 51",
    "0.76*x2 + 4.79*x3 >= 42",
    "6.55*x1 + 0.76*x2 >= 27",
    "(6.55*x1)**2 + (4.79*x3)**2 >= 58",
    "(9.41*x0)**2 + (6.55*x1)**2 + (4.79*x3)**2 >= 32",
    "9.41*x0 + 6.55*x1 + 0.76*x2 + 4.79*x3 >= 32",
    "-3*x0 + 6*x3 >= 0",
    "-10*x0 + 6*x1 >= 0",
    "4.74*x2 + 3.35*x3 <= 33",
    "2.59*x0 + 5.76*x1 + 4.74*x2 <= 61",
    "2.59*x0 + 5.76*x1 + 3.35*x3 <= 48",
    "5.76*x1 + 4.74*x2 + 3.35*x3 <= 50",
    "9.41*x0 + 4.79*x3 <= 195"
  ]
}
```

```python
import gurobipy as gp

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

# Create variables
apple_pies = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="apple_pies")
chicken_thighs = m.addVar(lb=0, vtype=gp.GRB.INTEGER, name="chicken_thighs")
hamburgers = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="hamburgers")
eggs = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="eggs")

# Set objective function
m.setObjective(5.22*apple_pies*chicken_thighs + 7.67*apple_pies*eggs + 5.72*chicken_thighs*hamburgers + 3.72*chicken_thighs*eggs + 8.75*apple_pies + 4.07*eggs, gp.GRB.MINIMIZE)

# Add constraints
m.addConstr(2.59*apple_pies + 5.76*chicken_thighs + 4.74*hamburgers + 3.35*eggs <= 118, "c0")
m.addConstr(9.41*apple_pies + 6.55*chicken_thighs + 0.76*hamburgers + 4.79*eggs <= 247, "c1")
m.addConstr(5.76*chicken_thighs + 4.74*hamburgers >= 17, "c2")
m.addConstr((4.74*hamburgers)**2 + (3.35*eggs)**2 >= 26, "c3")
m.addConstr(2.59*apple_pies + 5.76*chicken_thighs + 4.74*hamburgers + 3.35*eggs >= 26, "c4")
m.addConstr(9.41*apple_pies + 6.55*chicken_thighs >= 41, "c5")
m.addConstr(9.41*apple_pies + 0.76*hamburgers >= 53, "c6")
m.addConstr(9.41*apple_pies + 4.79*eggs >= 51, "c7")
m.addConstr(0.76*hamburgers + 4.79*eggs >= 42, "c8")
m.addConstr(6.55*chicken_thighs + 0.76*hamburgers >= 27, "c9")
m.addConstr((6.55*chicken_thighs)**2 + (4.79*eggs)**2 >= 58, "c10")
m.addConstr((9.41*apple_pies)**2 + (6.55*chicken_thighs)**2 + (4.79*eggs)**2 >= 32, "c11")
m.addConstr(9.41*apple_pies + 6.55*chicken_thighs + 0.76*hamburgers + 4.79*eggs >= 32, "c12")
m.addConstr(-3*apple_pies + 6*eggs >= 0, "c13")
m.addConstr(-10*apple_pies + 6*chicken_thighs >= 0, "c14")
m.addConstr(4.74*hamburgers + 3.35*eggs <= 33, "c15")
m.addConstr(2.59*apple_pies + 5.76*chicken_thighs + 4.74*hamburgers <= 61, "c16")
m.addConstr(2.59*apple_pies + 5.76*chicken_thighs + 3.35*eggs <= 48, "c17")
m.addConstr(5.76*chicken_thighs + 4.74*hamburgers + 3.35*eggs <= 50, "c18")
m.addConstr(9.41*apple_pies + 4.79*eggs <= 195, "c19")


# Optimize model
m.optimize()

# Print solution
if m.status == gp.GRB.OPTIMAL:
    print('Obj: %g' % m.objVal)
    for v in m.getVars():
        print('%s %g' % (v.varName, v.x))
elif m.status == gp.GRB.INFEASIBLE:
    print("The model is infeasible.")
else:
    print("Optimization ended with status:", m.status)

```