anchor.diff:  		TimeStamp :: integer(),
   		SessionAttributes :: [tuple()],
   		Reason :: out_of_credit | bad_password | not_found | term().
  -%% @doc Authorize a subscriber.
  +%% @doc Authorize a service.
   %%
  -%% 	If the subscriber `enabled' field is `true' and have sufficient balance
  +%% 	If the service `enabled' field is `true' and have sufficient balance
   %%		set `disconnect' field to `false' and return {ok, #service{password = `PSK'}}
   %% 	where `PSK' is used for `Mikrotik-Wireless-Psk' and `Attributes' are
   %% 	additional attributes to be returned in an `Access-Accept' response.
  
positive.code: 				lists:flatten(lists:reverse(Acc));
  			(_F, {error, Reason}, _Acc) ->
  				{error, Reason};
  			(F,{Subscribers, Cont}, Acc) ->
  				F(F, mnesia:select(Cont), [Subscribers | Acc])
  	end,
  	case mnesia:transaction(F, [F, start, []]) of
  		{aborted, Reason} ->
  
negative.code: 		Identity :: string() | binary(),
  		Result :: {ok, #service{}} | {error, Reason},
  		Reason :: not_found | term().
  %% @doc Look up an entry in the service table.
  find_service(Identity) when is_list(Identity) ->
  	find_service(list_to_binary(Identity));
  find_service(Identity) when is_binary(Identity) ->
  