anchor.diff:  				end
   	end,
   	case mnesia:transaction(F) of
  -		{atomic, {PSK, Attributes}} ->
  -			{ok, PSK, Attributes};
  +		{atomic, #subscriber{} = S} ->
  +			{ok, S};
   		{aborted, {throw, Reason}} ->
   			{error, Reason};
   		{aborted, Reason} ->
  
positive.code: 							true ->
  								case {Enabled, Disconnect, Entry#subscriber.password} of
  									{true, false, Password} ->
  										{Password, Attributes};
  									{true, true, Password} ->
  										NewEntry = Entry#subscriber{disconnect = false},
  										mnesia:write(subscriber, NewEntry, write),
  										{Password, Attributes};
  									{true, false, MTPassword} when
  											Password == <<>>,
  											MTPassword =/= Password ->
  										{MTPassword, Attributes};
  									{true, true, MTPassword} when
  											Password == <<>>,
  											MTPassword =/= Password ->
  										NewEntry = Entry#subscriber{disconnect = false},
  										mnesia:write(subscriber, NewEntry, write),
  										{MTPassword, Attributes};
  									{false, _, Password} ->
  										throw(disabled);
  									{_, _, _} ->
  
negative.code: 	when
  		Identity :: string() | binary(),
  		Password :: string() | binary(),
  		Result :: {ok, #subscriber{}} | {error, Reason},
  		Reason :: out_of_credit | disabled | bad_password | not_found | term().
  %% @doc Authorize a subscriber.
  %%
  %% 	If the subscriber `enabled' field is `true' and have sufficient balance
  %%		set `disconnect' field to `false' and return {ok, #subscriber{password = `PSK'}}
  %% 	where `PSK' is used for `Mikrotik-Wireless-Psk' and `Attributes' are
  %% 	additional attributes to be returned in an `Access-Accept' response.
  %% @private
  