anchor.diff:      false;
   ip_match(_IP, []) ->
       false;
  -ip_match(IP, local) ->
  +ip_match(IP, Local) when Local =:= local; Local =:= "local"; Local =:= <<"local">> ->
       {ok, IP1} = parse_address(IP),
       is_local(IP1);
  -ip_match(_IP, any) ->
  +ip_match(_IP, Any) when Any =:= any; Any =:= "any"; Any =:= <<"any">> ->
       true;
  -ip_match(_IP, none) ->
  +ip_match(_IP, None) when None =:= none; None =:= "none"; None =:= <<"none">> ->
       false;
   ip_match(IP, [IP|_IPs]) ->
       true;
  
positive.code:                 PeerAdr -> true;
                  _ -> ip_match(PeerAdr, IPs)
              end;
          [] -> 
              ip_match(PeerAdr, IPs)
      end.
  
  parse_address({_,_,_,_} = IP) -> {ok, IP};
  parse_address({_,_,_,_,_,_,_,_} = IP) -> {ok, IP};
  
negative.code:     false;
  ip_match_1(PeerAdr, [PeerAdr|_IPs]) ->
      true;
  ip_match_1(PeerAdr, [Local|IPs]) when Local =:= "local"; Local =:= local; Local =:= <<"local">> ->
      case is_local(PeerAdr) of
          true -> true;
          false -> ip_match_1(PeerAdr, IPs)
      end;
  ip_match_1(_PeerAdr, [Any|_]) when Any =:= "any"; Any =:= any; Any =:= <<"any">> ->
      true;
  ip_match_1(PeerAdr, [None|IPs]) when None =:= "none"; None =:= none; None =:= <<"none">> ->
      ip_match_1(PeerAdr, IPs);
  ip_match_1(PeerAdr, [{MatchAdr,BitsNr}|IPs]) when is_tuple(MatchAdr), is_integer(BitsNr) ->
      case ip_match_mask(PeerAdr, MatchAdr, BitsNr) of
          true -> true;
  