anchor.diff:  		[#bucket{units = Type, termination_date = Expires,
   		remain_amount = Remain, reservations = Reservations} = B | T],
   		Charged, Acc) ->
  -erlang:display({?MODULE, ?LINE, Acc}),
   	case lists:keytake(SessionId, 3, Reservations) of
   		{value, {_, Amount, _}, NewReservations} when Amount >= Charge,
   				((Expires == undefined) or (Now < Expires)) ->
  
positive.code: 					rate6(Subscriber#subscriber{buckets = Buckets3}, interim,
  							DebitAmount, UnitsCharged + (PriceCharged div UnitPrice),
  							0, 0, SessionAttributes)
  ; Other -> erlang:display({?MODULE, ?LINE, Other})
  			end
  ; Other -> erlang:display({?MODULE, ?LINE, Other})
  	end;
  rate5(#subscriber{buckets = Buckets1} = Subscriber,
  		#price{units = Units, size = UnitSize, amount = UnitPrice},
  		_Validity, interim, DebitAmount, ReserveAmount, SessionAttributes) ->
  	SessionId = get_session_id(SessionAttributes),
  erlang:display({?MODULE, ?LINE, DebitAmount, ReserveAmount, Units}),
  	case update_session(Units, DebitAmount, ReserveAmount,
  			SessionId, Buckets1) of
  		{DebitAmount, ReserveAmount, Buckets2} ->
  erlang:display({?MODULE, ?LINE, DebitAmount, ReserveAmount, Buckets2}),
  			rate6(Subscriber#subscriber{buckets = Buckets2}, interim,
  					DebitAmount, DebitAmount, ReserveAmount, ReserveAmount,
  					SessionAttributes);
  		{DebitAmount, UnitsReserved, Buckets2} ->
  erlang:display({?MODULE, ?LINE, DebitAmount, UnitsReserved, Buckets2}),
  			PriceReserveUnits = ReserveAmount - UnitsReserved,
  			{UnitReserve, PriceReserve} = price_units(PriceReserveUnits,
  					UnitSize, UnitPrice),
  			case update_session(cents, 0, PriceReserve, SessionId, Buckets2) of
  				{0, PriceReserve, Buckets3} ->
  erlang:display({?MODULE, ?LINE, PriceReserve, Buckets3}),
  					rate6(Subscriber#subscriber{buckets = Buckets3}, interim,
  							DebitAmount, DebitAmount, ReserveAmount,
  							UnitReserve, SessionAttributes);
  				{0, PriceReserved, Buckets3} ->
  erlang:display({?MODULE, ?LINE, PriceReserve, Buckets3}),
  					rate6(Subscriber#subscriber{buckets = Buckets3}, interim,
  							DebitAmount, DebitAmount, ReserveAmount,
  							UnitsReserved + PriceReserved div UnitPrice,
  							SessionAttributes)
  			end;
  		{UnitsCharged, 0, Buckets2} ->
  erlang:display({?MODULE, ?LINE, UnitsCharged, Buckets2}),
  			PriceChargeUnits = DebitAmount - UnitsCharged,
  			{UnitCharge, PriceCharge} = price_units(PriceChargeUnits,
  					UnitSize, UnitPrice),
  
negative.code: rate4(_Protocol, #subscriber{enabled = false} = Subscriber, _Price,
  		_Validity, initial, _DebitAmounts, _ReserveAmounts,
  		SessionAttributes) ->
  	rate6(Subscriber, initial, 0, 0, 0, 0, SessionAttributes);
  rate4(radius, Subscriber, Price, Validity,
  		initial, [], [], SessionAttributes) ->
  	rate5(Subscriber, Price, Validity, initial,
  			0, get_reserve(Price), SessionAttributes);
  rate4(radius, Subscriber, #price{units = Units} = Price, Validity,
  