anchor.diff:      ?Info(lists:flatten(["URL https://",
                            if is_list(Ip) -> Ip;
                               true -> io_lib:format("~p",[Ip])
  -                         end, ":~p~s"]), [Port,UrlPathPrefix]),
  +                         end, ":~p~s"]), [Port,?URLSUFFIX]),
       SupRef = dderl_sup:start_link(),
       ?Info("DDERL STARTED"),
       ?Info("---------------------------------------------------"),
  
positive.code: %% Application Interface
  %%-----------------------------------------------------------------------------
  start(_Type, _Args) ->
      PrivDir = get_priv_dir(),
      % external routes
      {ok, MasterUrlRoutePaths} = application:get_env(dderl, master_paths),
      UrlPathPrefix = ?URLSUFFIX,
      % default routes
      NewRoutePaths = MasterUrlRoutePaths ++
          [{UrlPathPrefix++"/", dderl, []},
           {UrlPathPrefix++"/ws", bullet_handler, [{handler, dderl_stream}]},
           {UrlPathPrefix++"/app/[...]", dderl_resource, []},
           {UrlPathPrefix++"/bullet.js", cowboy_static, {priv_file, bullet, "bullet.js"}},
           {UrlPathPrefix++"/[...]", cowboy_static, {dir, PrivDir}}],
      ok = application:set_env(dderl, master_paths, NewRoutePaths),
      ?Info("DDerl started with route paths ~p", [[P||{P,_,_}<-NewRoutePaths]]),
      Dispatch = cowboy_router:compile([{'_', NewRoutePaths}]),
  
      {ok, Ip}   = application:get_env(dderl, interface),
      {ok, Port} = application:get_env(dderl, port),
  
negative.code: -export([init/3, handle/2, terminate/3]).
  
  %% Private interfaces
  -export([encrypt/1, decrypt/1, insert_mw/2, insert_routes/2, remove_mw/2,
           reset_routes/1]).
  
  %% OTP Application API
  -export([start/2, stop/1]).
  