anchor.diff:  		| {ok, StateName :: atom(), StateData :: #statedata{}, hibernate}
   		| {stop, Reason :: term()} | ignore.
   %% @doc Initialize the {@module} finite state machine.
  -%% 	Args :: [Socket :: socket(), Module :: atom(),
  -%% 	Address :: inet:ip_address(), Port :: non_neg_integer(),
  -%% 	Identifier = non_neg_integer()].
   %% @see //stdlib/gen_fsm:init/1
   %% @private
   %%
  -init([Socket, Module, Address, Port, Identifier] = _Args) ->
  -	process_flag(trap_exit, true),
  -	StateData = #statedata{socket = Socket, module = Module,
  -			address = Address, port = Port, identifier = Identifier},
  -	{ok, idle, StateData, ?WAITSTART}.
  -
  --spec idle(Event :: timeout | term(), StateData :: #statedata{}) ->
  -	Result :: {next_state, NextStateName :: atom(), NewStateData :: #statedata{}}
  -		| {next_state, NextStateName :: atom(), NewStateData :: #statedata{}, Timeout :: non_neg_integer() | infinity}
  -		| {next_state, NextStateName :: atom(), NewStateData :: #statedata{}, hibernate}
  -		| {stop, Reason :: normal | term(), NewStateData :: #statedata{}}.
  -%% @doc Handle events sent with {@link //stdlib/gen_fsm:send_event/2.
  -%% 	gen_fsm:send_event/2} in the <b>idle</b> state.
  -%% @@see //stdlib/gen_fsm:StateName/2
  -%% @private
  -%%
  -idle(<<_Code, Identifier, Authenticator:168/binary, _/binary>> = _Event,
  -		#statedata{identifier = Identifier, authenticator = Authenticator,
  -				response = ignore} = StateData) ->
  -		{next_state, idle, StateData, ?WAITRETRIES};
  -idle(<<_Code, Identifier, Authenticator:16/binary, _/binary>> = Event,
  -		#statedata{identifier = Identifier, authenticator = CachedAuthenticator,
  -		socket = Socket, module = Module, address = Address,
  -		port = Port} = StateData) when Authenticator /= CachedAuthenticator ->
  -	case Module:request(Address, Port, Event) of
  -		{error, ignore} ->
  -			NewStateData = StateData#statedata{authenticator = Authenticator,
  -					response = ignore},
  -			{next_state, idle, NewStateData, ?WAITRETRIES};
  -		{error, Reason} ->
  -			NewStateData = StateData#statedata{authenticator = Authenticator},
  -			{stop, Reason, NewStateData};
  -		RadiusResponse ->
  -			NewStateData = StateData#statedata{authenticator = Authenticator,
  -					response = RadiusResponse},
  -			case gen_udp:send(Socket, Address, Port, RadiusResponse) of
  -				ok ->
  -					{next_state, idle, NewStateData, ?WAITRETRIES};
  -				{error, Reason} ->
  -					{stop, Reason, NewStateData}
  -			end
  -	end;
  -idle(<<_Code, Identifier, Authenticator:16/binary, _/binary>> = _Event,
  -		#statedata{identifier = Identifier, authenticator = Authenticator,
  -				response = Response, socket = Socket,
  -				address = Address, port = Port} = StateData) ->
  -	case gen_udp:send(Socket, Address, Port, Response) of
  -		ok ->
  -			{next_state, idle, StateData, ?WAITRETRIES};
  -		{error, Reason} ->
  -			{stop, Reason, StateData}
  -	end;
  -idle(timeout, #statedata{address = Address, port = Port,
  -		identifier = Identifier} = StateData) ->
  -	Id = {Address, Port, Identifier},
  -	{stop, {shutdown, Id}, StateData}.
  +init(_Args) ->
  +	{stop, not_implemented}.
   
   -spec handle_event(Event :: term(), StateName :: atom(),
   		StateData :: #statedata{}) ->
  
positive.code: -export([init/1, handle_event/3, handle_sync_event/4, handle_info/3,
  			terminate/3, code_change/4]).
  
  %% export the gen_fsm state call backs
  -export([idle/2]).
  
  %% @headerfile "include/radius.hrl"
  -include_lib("radius/include/radius.hrl").
  
  
negative.code: 		identifier :: non_neg_integer(),
  		authenticator :: binary(),
  		response :: ignore | undefined | term()}).
  
  %%----------------------------------------------------------------------
  %%  The radius_fsm API
  