anchor.diff:                  _sendPingMessage(response, version, checkConfig, checkLog);
                   return;
               }
  -
               //check if the originalUri is encoded then decode it
               if (originalUri.toLowerCase().startsWith("http%3a%2f%2f") || originalUri.toLowerCase().startsWith("https%3a%2f%2f")) originalUri = URLDecoder.decode(originalUri, "UTF-8");
  -
               //check the Referer in request header against the allowedReferer in proxy.config
               String[] allowedReferers = getConfig().getAllowedReferers();
               if (allowedReferers != null && allowedReferers.length > 0 && request.getHeader("referer") != null){
  
positive.code:                 "\"details\": [" +
                  "\"" + errorDetails + "\"" +
                  "], \"message\": \"" + errorMessage + "\"}}";
  
          response.setStatus(errorCode);
          OutputStream output = response.getOutputStream();
  
          output.write(message.getBytes());
  
          output.flush();
      }
  
      private static void _sendURLMismatchError(HttpServletResponse response, String attemptedUri) throws IOException{
          sendErrorResponse(response, "Proxy has not been set up for this URL. Make sure there is a serverUrl in the configuration file that matches: " + attemptedUri,
                  "Proxy has not been set up for this URL.", HttpServletResponse.SC_FORBIDDEN);
      }
  
      private static void _sendPingMessage(HttpServletResponse response, String version, String config, String log) throws IOException{
          response.setStatus(HttpServletResponse.SC_OK);
          response.setHeader("Content-Type", "application/json");
  
negative.code:             if (found){
                  match = m.group(1);
              }
              return match;
          }
          private static ProxyConfig appConfig;
          public static ProxyConfig getCurrentConfig() throws IOException{
              ProxyConfig config = appConfig;
              if (config == null) {
                  config = loadProxyConfig();
                  if (config != null) {
                      appConfig = config;
                  }
              }
              return config;
          }
          ServerUrl[] serverUrls;
          boolean mustMatch;
          String logFile;
          String logLevel;
          String[] allowedReferers;
          public ServerUrl[] getServerUrls() {
              return this.serverUrls;
          }
          public void setServerUrls(ServerUrl[] value){
              this.serverUrls = value;
          }
          public boolean getMustMatch(){
              return this.mustMatch;
          }
          public void setMustMatch(boolean value){
              this.mustMatch = value;
          }
          public String[] getAllowedReferers(){
              return this.allowedReferers;
          }
          public void setAllowedReferers(String[] value){
              this.allowedReferers = value;
          }
          public String getLogFile(){
              return this.logFile;
          }
          public void setLogFile(String value){
              this.logFile = value;
          }
          public String getLogLevel(){
              return this.logLevel;
          }
          public void setLogLevel(String value){
              this.logLevel = value;
          }
          public ServerUrl getConfigServerUrl(String uri) {
              //split request URL to compare with allowed server URLs
              String[] uriParts = uri.split("(/)|(\\?)");
              String[] configUriParts;
              for (ServerUrl su : serverUrls) {
                  //if a relative path is specified in the proxy configuration file, append what's in the request itself
                  if (!su.getUrl().startsWith("http"))
                      su.setUrl(new StringBuilder(su.getUrl()).insert(0, uriParts[0]).toString());
                  configUriParts = su.getUrl().split("/");
                  //if the request has less parts than the config, don't allow
                  if (configUriParts.length > uriParts.length) continue;
                  int i;
                  //try to match configUrl to the requested url, including protocol
                  for (i = 0; i < configUriParts.length; i++)
  