```json
{
  "sym_variables": [
    ("x0", "milligrams of vitamin A"),
    ("x1", "milligrams of vitamin B6"),
    ("x2", "milligrams of zinc"),
    ("x3", "milligrams of vitamin B1"),
    ("x4", "milligrams of vitamin D")
  ],
  "objective_function": "2*x0 + 7*x1 + 5*x2 + 7*x3 + 3*x4",
  "constraints": [
    "6*x3 + 6*x4 >= 17",
    "1*x2 + 6*x4 >= 24",
    "1*x2 + 6*x3 >= 34",
    "4*x1 + 1*x2 + 6*x4 >= 31",
    "4*x0 + 4*x1 + 6*x3 >= 31",
    "4*x0 + 1*x2 + 6*x3 >= 31",
    "4*x1 + 6*x3 + 6*x4 >= 31",
    "4*x0 + 1*x2 + 6*x4 >= 31",
    "4*x0 + 4*x1 + 6*x4 >= 31",
    "1*x2 + 6*x3 + 6*x4 >= 31",
    "4*x1 + 1*x2 + 6*x4 >= 33",
    "4*x0 + 4*x1 + 6*x3 >= 33",
    "4*x0 + 1*x2 + 6*x3 >= 33",
    "4*x1 + 6*x3 + 6*x4 >= 33",
    "4*x0 + 1*x2 + 6*x4 >= 33",
    "4*x0 + 4*x1 + 6*x4 >= 33",
    "1*x2 + 6*x3 + 6*x4 >= 33",
    "4*x1 + 1*x2 + 6*x4 >= 48",
    "4*x0 + 4*x1 + 6*x3 >= 48",
    "4*x0 + 1*x2 + 6*x3 >= 48",
    "4*x1 + 6*x3 + 6*x4 >= 48",
    "4*x0 + 1*x2 + 6*x4 >= 48",
    "4*x0 + 4*x1 + 6*x4 >= 48",
    "1*x2 + 6*x3 + 6*x4 >= 48",
    "4*x1 + 1*x2 + 6*x4 >= 26",
    "4*x0 + 4*x1 + 6*x3 >= 26",
    "4*x0 + 1*x2 + 6*x3 >= 26",
    "4*x1 + 6*x3 + 6*x4 >= 26",
    "4*x0 + 1*x2 + 6*x4 >= 26",
    "4*x0 + 4*x1 + 6*x4 >= 26",
    "1*x2 + 6*x3 + 6*x4 >= 26",
    "4*x1 + 1*x2 + 6*x4 >= 45",
    "4*x0 + 4*x1 + 6*x3 >= 45",
    "4*x0 + 1*x2 + 6*x3 >= 45",
    "4*x1 + 6*x3 + 6*x4 >= 45",
    "4*x0 + 1*x2 + 6*x4 >= 45",
    "4*x0 + 4*x1 + 6*x4 >= 45",
    "1*x2 + 6*x3 + 6*x4 >= 45",
    "4*x1 + 1*x2 + 6*x4 >= 34",
    "4*x0 + 4*x1 + 6*x3 >= 34",
    "4*x0 + 1*x2 + 6*x3 >= 34",
    "4*x1 + 6*x3 + 6*x4 >= 34",
    "4*x0 + 1*x2 + 6*x4 >= 34",
    "4*x0 + 4*x1 + 6*x4 >= 34",
    "1*x2 + 6*x3 + 6*x4 >= 34",
    "4*x1 + 1*x2 + 6*x4 >= 27",
    "4*x0 + 4*x1 + 6*x3 >= 27",
    "4*x0 + 1*x2 + 6*x3 >= 27",
    "4*x1 + 6*x3 + 6*x4 >= 27",
    "4*x0 + 1*x2 + 6*x4 >= 27",
    "4*x0 + 4*x1 + 6*x4 >= 27",
    "1*x2 + 6*x3 + 6*x4 >= 27",
    "4*x1 + 1*x2 <= 221",
    "4*x1 + 6*x4 <= 55",
    "1*x2 + 6*x3 <= 229",
    "6*x3 + 6*x4 <= 98",
    "4*x0 + 4*x1 + 6*x3 <= 161",
    "4*x0 + 1*x2 + 6*x3 <= 95",
    "4*x0 + 4*x1 + 1*x2 <= 244",
    "4*x0 + 4*x1 + 1*x2 + 6*x3 + 6*x4 <= 244",
    "4*x0 + 4*x1 + 1*x2 + 6*x3 + 6*x4 <= 253"  
  ]
}
```

```python
import gurobipy as gp

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

# Create variables
vitamin_a = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="vitamin_a")
vitamin_b6 = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="vitamin_b6")
zinc = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="zinc")
vitamin_b1 = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="vitamin_b1")
vitamin_d = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="vitamin_d")


# Set objective function
m.setObjective(2 * vitamin_a + 7 * vitamin_b6 + 5 * zinc + 7 * vitamin_b1 + 3 * vitamin_d, gp.GRB.MAXIMIZE)

# Add constraints

m.addConstr(6 * vitamin_b1 + 6 * vitamin_d >= 17)
m.addConstr(zinc + 6 * vitamin_d >= 24)
m.addConstr(zinc + 6 * vitamin_b1 >= 34)


kidney_support_constraints = [
    (4, 4, 1, 6, 6)
]

thresholds = [26, 27, 31, 33, 34, 45, 48]

variables = [vitamin_a, vitamin_b6, zinc, vitamin_b1, vitamin_d]

for ksc in kidney_support_constraints:
    for t in thresholds:
        m.addConstr(ksc[0] * vitamin_a + ksc[1] * vitamin_b6 + ksc[2] * zinc + ksc[3] * vitamin_b1 + ksc[4] * vitamin_d >= t)

m.addConstr(4 * vitamin_b6 + zinc <= 221)
m.addConstr(4 * vitamin_b6 + 6 * vitamin_d <= 55)
m.addConstr(zinc + 6 * vitamin_b1 <= 229)
m.addConstr(6 * vitamin_b1 + 6 * vitamin_d <= 98)
m.addConstr(4 * vitamin_a + 4 * vitamin_b6 + 6 * vitamin_b1 <= 161)
m.addConstr(4 * vitamin_a + zinc + 6 * vitamin_b1 <= 95)
m.addConstr(4 * vitamin_a + 4 * vitamin_b6 + zinc <= 244)
m.addConstr(4 * vitamin_a + 4 * vitamin_b6 + zinc + 6 * vitamin_b1 + 6 * vitamin_d <= 244)
m.addConstr(4 * vitamin_a + 4 * vitamin_b6 + zinc + 6 * vitamin_b1 + 6 * vitamin_d <= 253)


# Optimize model
m.optimize()

# Print results
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("Model is infeasible")
else:
    print("Optimization ended with status %d" % m.status)

```