def FairShareTax(c00100, MARS, ptax_was, setax, ptax_amc,
                 FST_AGI_trt, FST_AGI_thd_lo, FST_AGI_thd_hi,
                 fstax, iitax, combined, surtax):
    """
    Computes Fair Share Tax, or "Buffet Rule", types of reforms.

    Taxpayer Characteristics
    ------------------------

    c00100 : AGI

    MARS : filing (marital) status

    ptax_was : payroll tax on wages and salaries

    setax : self-employment tax

    ptax_amc : Additional Medicare Tax on high earnings

    Returns
    -------

    fstax : Fair Share Tax amount

    iitax : individual income tax augmented by fstax

    combined : individual income tax plus payroll taxes augmented by fstax

    surtax : individual income tax subtotal augmented by fstax
    """
    if FST_AGI_trt > 0. and c00100 >= FST_AGI_thd_lo[MARS - 1]:
        employee_share = 0.5 * ptax_was + 0.5 * setax + ptax_amc
        fstax = max(c00100 * FST_AGI_trt - iitax - employee_share, 0.)
        thd_gap = max(FST_AGI_thd_hi[MARS - 1] - FST_AGI_thd_lo[MARS - 1], 0.)
        if thd_gap > 0. and c00100 < FST_AGI_thd_hi[MARS - 1]:
            fstax *= (c00100 - FST_AGI_thd_lo[MARS - 1]) / thd_gap
        iitax += fstax
        combined += fstax
        surtax += fstax
    else:
        fstax = 0.
    return (fstax, iitax, combined, surtax)