anchor.diff:  	{disabled, SessionList};
   rate6(#subscriber{session_attributes = SessionList,
   		buckets = Buckets} = Subscriber1, _Flag,
  -		Charge, Charged, Reserve, Reserved, SessionId)
  +		Charge, Charged, Reserve, Reserved, SessionId, _Rated)
   		when Charged < Charge; Reserved <  Reserve ->
   	NewBuckets = refund(SessionId, Buckets),
   	Subscriber2 = Subscriber1#subscriber{buckets = NewBuckets,
  
positive.code: 	FilteredPrices1 = lists:filter(F, Prices),
  	case filter_prices_tod(Timestamp, FilteredPrices1) of
  		[Price | _] ->
  			rate4(Protocol, Subscriber, Price, Validity,
  				Flag, DebitAmounts, ReserveAmounts, SessionAttributes);
  		_ ->
  			throw(price_not_found)
  	end.
  %% @hidden
  rate3(Protocol, Subscriber, Address,
  		#price{type = tariff, char_value_use = CharValueUse} = Price,
  		Validity, Flag, DebitAmounts, ReserveAmounts, SessionAttributes) ->
  	case lists:keyfind("destPrefixTariffTable", #char_value_use.name, CharValueUse) of
  		#char_value_use{values = [#char_value{value = TariffTable}]} ->
  			Table = list_to_existing_atom(TariffTable),
  			case catch ocs_gtt:lookup_last(Table, Address) of
  				{_Description, Amount} ->
  					case Amount of
  						N when N >= 0 ->
  							rate4(Protocol, Subscriber, Price#price{amount = N},
  									Validity, Flag, DebitAmounts, ReserveAmounts,
  									SessionAttributes);
  						_N ->
  							throw(negative_amount)
  					end;
  
negative.code: -export([session_attributes/1]).
  
  -include("ocs.hrl").
  -include("ocs_log.hrl").
  -include_lib("radius/include/radius.hrl").
  
  %% support deprecated_time_unit()
  