'Shrink the shared space
Will shrink all secondary clients above the specified index by an equal
share of the provided amount. After applying the shared amount to all
affected clients, any amount left over will be applied in a non-equal
manner with ``shrink_up``.
Any amount that was unable to be applied to the clients is returned.'

def shrink_up_shared(self, cidx, amt):

    per_amt = (amt / cidx)
    left = amt
    for idx in range(0, cidx):
        left -= (per_amt - self.shrink(idx, per_amt))
    left = self.shrink_up(cidx, left)
    return left
