anchor.diff:  					charging_key => ChargingKey}} | Reservations2],
   			{0, B1#bucket{remain_amount = R - Price1,
   					last_modified = {Now, erlang:unique_integer([positive])},
  -					attributes = Attributes#{reservations => maps:from_list(NewReservations)}}};
  +					attributes = Attributes#{reservations => maps:from_list(NewReservations)}}, FromBucket};
   		{[{_, #{debit := DebitedAmount, reserve := ReservedAmount}}], Reservations2}
   				when R < Price1 ->
   			NewReservations = [{SessionId, #{ts => Now, debit => DebitedAmount + R,
  
positive.code: 			NewChargeUnits = Amount - UnitsCharged,
  			{UnitCharge, PriceCharge} = price_units(NewChargeUnits,
  					UnitSize, UnitPrice),
  			case convert(PriceCharge, Units, UnitCharge,
  					ServiceId, ChargingKey, SessionId, Buckets2) of
  				{ok, Buckets3} ->
  					case update_session(Units, NewChargeUnits, 0,
  
negative.code: %% 	Tops up existing bucket for session if found,
  %% 	otherwise creates session bucket(s) of `Type'.
  %% @private
  convert(Price, Type, UnitPrice, UnitSize, TotalSize,
  		ServiceId, ChargingKey, SessionId, Buckets) ->
  	Buckets1 = sort(Buckets),
  	Fcents = fun(#bucket{units = cents}) ->
  				true;
  