called with [4, 5, 5, 5] called with [4, 5] called with [4] called with [5] returning [4, 5] 0 called with [5, 5] called with [5] called with [5] returning [5, 5] 0 returning [4, 5, 5, 5] 0 0