New Upstream Release - awstats

Ready changes

Summary

Merged new upstream version: 7.9 (was: 7.8).

Resulting package

Built on 2023-08-23T01:31 (took 7m1s)

The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:

apt install -t fresh-releases awstats

Diff

diff --git a/README.md b/README.md
index e7951df..27060bc 100644
--- a/README.md
+++ b/README.md
@@ -9,8 +9,8 @@ It works with IIS 5.0+, Apache and all major web, wap, proxy, streaming
 server log files (and even ftp servers or mail logs) on all Operating Systems.
 
 - License: GNU GPL v3+ (GNU General Public License. See LICENSE file), OSI Certified Open Source Software license.
-- Version: 7.8
-- Release date: April 2020
+- Version: 7.9
+- Release date: January 2023
 - Platforms: All (Linux, NT, BSD, Solaris and other *NIX's, BeOS, OS/2...)
 - Author: Laurent Destailleur <eldy@users.sourceforge.net>
 
diff --git a/debian/changelog b/debian/changelog
index f72dd87..e71b947 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+awstats (7.9-1) UNRELEASED; urgency=low
+
+  * New upstream release.
+  * Drop patch 0013-Only-look-for-configuration-in-dedicated-awstats-dir.patch,
+    present upstream.
+  * Drop patch fix-cross-site-scripting.patch, present upstream.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Wed, 23 Aug 2023 01:25:26 -0000
+
 awstats (7.8-4) unstable; urgency=medium
 
   * QA upload.
diff --git a/debian/patches/0013-Only-look-for-configuration-in-dedicated-awstats-dir.patch b/debian/patches/0013-Only-look-for-configuration-in-dedicated-awstats-dir.patch
deleted file mode 100644
index 2318e08..0000000
--- a/debian/patches/0013-Only-look-for-configuration-in-dedicated-awstats-dir.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From: Beuc <beuc@beuc.net>
-Date: Thu, 17 Dec 2020 18:14:43 +0100
-Subject: Only look for configuration in dedicated awstats directories
-
-Fixes #195/CVE-2020-35176
----
- wwwroot/cgi-bin/awstats.pl | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/wwwroot/cgi-bin/awstats.pl b/wwwroot/cgi-bin/awstats.pl
-index a003993..598d6b7 100755
---- a/wwwroot/cgi-bin/awstats.pl
-+++ b/wwwroot/cgi-bin/awstats.pl
-@@ -1677,13 +1677,13 @@ sub Read_Config {
- 	# Check config file in common possible directories :
- 	# Windows :                   				"$DIR" (same dir than awstats.pl)
- 	# Standard, Mandrake and Debian package :	"/etc/awstats"
--	# Other possible directories :				"/usr/local/etc/awstats", "/etc"
-+	# Other possible directories :				"/usr/local/etc/awstats",
- 	# FHS standard, Suse package : 				"/etc/opt/awstats"
- 	my $configdir         = shift;
- 	my @PossibleConfigDir = (
- 			"$DIR",
- 			"/etc/awstats",
--			"/usr/local/etc/awstats", "/etc",
-+			"/usr/local/etc/awstats",
- 			"/etc/opt/awstats"
- 		); 
- 
diff --git a/debian/patches/1008_extrasections_with_top.patch b/debian/patches/1008_extrasections_with_top.patch
index 5c3abe0..189adcf 100644
--- a/debian/patches/1008_extrasections_with_top.patch
+++ b/debian/patches/1008_extrasections_with_top.patch
@@ -6,11 +6,11 @@ Bug: https://sourceforge.net/p/awstats/patches/135
  wwwroot/cgi-bin/awstats.pl |    4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
-Index: awstats-debian/wwwroot/cgi-bin/awstats.pl
+Index: awstats.git/wwwroot/cgi-bin/awstats.pl
 ===================================================================
---- awstats-debian.orig/wwwroot/cgi-bin/awstats.pl
-+++ awstats-debian/wwwroot/cgi-bin/awstats.pl
-@@ -11807,7 +11807,7 @@ sub HTMLShowExtraSections{
+--- awstats.git.orig/wwwroot/cgi-bin/awstats.pl
++++ awstats.git/wwwroot/cgi-bin/awstats.pl
+@@ -12012,7 +12012,7 @@ sub HTMLShowExtraSections{
  			if ($Debug) { debug( "ExtraName$extranum", 2 ); }
  			print "$Center<a name=\"extra$extranum\">&nbsp;</a><br />";
  			my $title = $ExtraName[$extranum];
@@ -19,7 +19,7 @@ Index: awstats-debian/wwwroot/cgi-bin/awstats.pl
  			print "<tr bgcolor=\"#$color_TableBGRowTitle\">";
  			print "<th>" . $ExtraFirstColumnTitle[$extranum] . "</th>";
  
-@@ -16905,7 +16905,7 @@ sub HTMLMainExtra{
+@@ -17110,7 +17110,7 @@ sub HTMLMainExtra{
  	if ($Debug) { debug( "ExtraName$extranum", 2 ); }
  	print "$Center<a name=\"extra$extranum\">&nbsp;</a><br />";
  	my $title = $ExtraName[$extranum];
diff --git a/debian/patches/1009_german_lang.patch b/debian/patches/1009_german_lang.patch
index 2815dc7..99f4ca0 100644
--- a/debian/patches/1009_german_lang.patch
+++ b/debian/patches/1009_german_lang.patch
@@ -6,8 +6,10 @@ Forwarded: no
  wwwroot/cgi-bin/lang/awstats-de.txt |    2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
---- a/wwwroot/cgi-bin/lang/awstats-de.txt
-+++ b/wwwroot/cgi-bin/lang/awstats-de.txt
+Index: awstats.git/wwwroot/cgi-bin/lang/awstats-de.txt
+===================================================================
+--- awstats.git.orig/wwwroot/cgi-bin/lang/awstats-de.txt
++++ awstats.git/wwwroot/cgi-bin/lang/awstats-de.txt
 @@ -1,6 +1,6 @@
  # German message file
  # $Revision$ - $Date$
diff --git a/debian/patches/1010_dirdata_permissions.patch b/debian/patches/1010_dirdata_permissions.patch
index 85d5974..06c0431 100644
--- a/debian/patches/1010_dirdata_permissions.patch
+++ b/debian/patches/1010_dirdata_permissions.patch
@@ -7,11 +7,11 @@ Forwarded: https://sourceforge.net/p/awstats/patches/204
  wwwroot/cgi-bin/awstats.pl |    2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
-Index: awstats-debian/wwwroot/cgi-bin/awstats.pl
+Index: awstats.git/wwwroot/cgi-bin/awstats.pl
 ===================================================================
---- awstats-debian.orig/wwwroot/cgi-bin/awstats.pl
-+++ awstats-debian/wwwroot/cgi-bin/awstats.pl
-@@ -3021,7 +3021,7 @@ sub Check_Config {
+--- awstats.git.orig/wwwroot/cgi-bin/awstats.pl
++++ awstats.git/wwwroot/cgi-bin/awstats.pl
+@@ -3056,7 +3056,7 @@ sub Check_Config {
  	if ( !$MigrateStats && !-d $DirData ) {
  		if ($CreateDirDataIfNotExists) {
  			if ($Debug) { debug( " Make directory $DirData", 2 ); }
diff --git a/debian/patches/1014_websec_robot.patch b/debian/patches/1014_websec_robot.patch
index e646139..f00b468 100644
--- a/debian/patches/1014_websec_robot.patch
+++ b/debian/patches/1014_websec_robot.patch
@@ -7,9 +7,11 @@ Forwarded: https://sourceforge.net/p/awstats/feature-requests/618
  wwwroot/cgi-bin/lib/browsers.pm |    6 ++++--
  1 file changed, 4 insertions(+), 2 deletions(-)
 
---- a/wwwroot/cgi-bin/lib/browsers.pm
-+++ b/wwwroot/cgi-bin/lib/browsers.pm
-@@ -255,7 +255,8 @@
+Index: awstats.git/wwwroot/cgi-bin/lib/browsers.pm
+===================================================================
+--- awstats.git.orig/wwwroot/cgi-bin/lib/browsers.pm
++++ awstats.git/wwwroot/cgi-bin/lib/browsers.pm
+@@ -256,7 +256,8 @@
  'POE\-Component\-Client\-HTTP',
  'mozilla',				# Must be at end because a lot of browsers contains mozilla in string
  'libwww',				# Must be at end because some browser have both 'browser id' and 'libwww'
@@ -19,7 +21,7 @@ Forwarded: https://sourceforge.net/p/awstats/feature-requests/618
  );
  
  # BrowsersHashIDLib
-@@ -484,7 +485,8 @@
+@@ -485,7 +486,8 @@
  'POE\-Component\-Client\-HTTP','HTTP user-agent for POE (portable networking framework for Perl)',
  'mozilla','Mozilla',
  'libwww','LibWWW',
diff --git a/debian/patches/1019_allow_frame_resize.patch b/debian/patches/1019_allow_frame_resize.patch
index b1e6827..31b8ffa 100644
--- a/debian/patches/1019_allow_frame_resize.patch
+++ b/debian/patches/1019_allow_frame_resize.patch
@@ -7,11 +7,11 @@ Forwarded: https://sourceforge.net/p/awstats/feature-requests/646
  wwwroot/cgi-bin/awstats.pl |    4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
-Index: awstats-debian/wwwroot/cgi-bin/awstats.pl
+Index: awstats.git/wwwroot/cgi-bin/awstats.pl
 ===================================================================
---- awstats-debian.orig/wwwroot/cgi-bin/awstats.pl
-+++ awstats-debian/wwwroot/cgi-bin/awstats.pl
-@@ -17810,10 +17810,10 @@ if ( $FrameName eq 'index' ) {
+--- awstats.git.orig/wwwroot/cgi-bin/awstats.pl
++++ awstats.git/wwwroot/cgi-bin/awstats.pl
+@@ -18015,10 +18015,10 @@ if ( $FrameName eq 'index' ) {
  	print "<frameset cols=\"$FRAMEWIDTH,*\">\n";
  	print "<frame name=\"mainleft\" src=\""
  	  . XMLEncode("$AWScript${NewLinkParams}framename=mainleft")
diff --git a/debian/patches/2003_awstats.conf.patch b/debian/patches/2003_awstats.conf.patch
index 3fe07fc..b4e793d 100644
--- a/debian/patches/2003_awstats.conf.patch
+++ b/debian/patches/2003_awstats.conf.patch
@@ -6,10 +6,10 @@ Forwarded: not-needed
  wwwroot/cgi-bin/awstats.model.conf |   28 ++++++++++++++--------------
  1 file changed, 14 insertions(+), 14 deletions(-)
 
-Index: awstats-debian/wwwroot/cgi-bin/awstats.model.conf
+Index: awstats.git/wwwroot/cgi-bin/awstats.model.conf
 ===================================================================
---- awstats-debian.orig/wwwroot/cgi-bin/awstats.model.conf
-+++ awstats-debian/wwwroot/cgi-bin/awstats.model.conf
+--- awstats.git.orig/wwwroot/cgi-bin/awstats.model.conf
++++ awstats.git/wwwroot/cgi-bin/awstats.model.conf
 @@ -47,7 +47,7 @@
  # If there are several log files from load balancing servers :
  # Example: "/pathtotools/logresolvemerge.pl *.log |"
diff --git a/debian/patches/2004_build.xml.patch b/debian/patches/2004_build.xml.patch
index aaaf52f..5d68a4b 100644
--- a/debian/patches/2004_build.xml.patch
+++ b/debian/patches/2004_build.xml.patch
@@ -5,8 +5,10 @@ Author: Jonas Smedegaard <dr@jones.dk>
  wwwroot/classes/build.xml |   35 +++++++++++++++++++++++++++++++++++
  1 file changed, 35 insertions(+)
 
+Index: awstats.git/wwwroot/classes/build.xml
+===================================================================
 --- /dev/null
-+++ b/wwwroot/classes/build.xml
++++ awstats.git/wwwroot/classes/build.xml
 @@ -0,0 +1,35 @@
 +<?xml version="1.0" encoding="UTF-8"?>
 +
diff --git a/debian/patches/2005_remove_donation.patch b/debian/patches/2005_remove_donation.patch
index a4ebe3f..5a8ab29 100644
--- a/debian/patches/2005_remove_donation.patch
+++ b/debian/patches/2005_remove_donation.patch
@@ -7,10 +7,10 @@ Forwarded: no
  docs/index.html |    3 +--
  1 file changed, 1 insertion(+), 2 deletions(-)
 
-Index: awstats-debian/docs/index.html
+Index: awstats.git/docs/index.html
 ===================================================================
---- awstats-debian.orig/docs/index.html
-+++ awstats-debian/docs/index.html
+--- awstats.git.orig/docs/index.html
++++ awstats.git/docs/index.html
 @@ -151,8 +151,7 @@
  <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
  <input type="hidden" name="cmd" value="_s-xclick">
@@ -21,10 +21,10 @@ Index: awstats-debian/docs/index.html
  </form>
  <!-- END_PAYPAL_LINK -->
  
-Index: awstats-debian/docs/awstats_contrib.html
+Index: awstats.git/docs/awstats_contrib.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_contrib.html
-+++ awstats-debian/docs/awstats_contrib.html
+--- awstats.git.orig/docs/awstats_contrib.html
++++ awstats.git/docs/awstats_contrib.html
 @@ -400,8 +400,7 @@ You can make a donation to support AWSta
  <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
  <input type="hidden" name="cmd" value="_s-xclick">
diff --git a/debian/patches/2006_remove_facebook.patch b/debian/patches/2006_remove_facebook.patch
index b0885ea..eec4154 100644
--- a/debian/patches/2006_remove_facebook.patch
+++ b/debian/patches/2006_remove_facebook.patch
@@ -24,8 +24,10 @@ Forwarded: no
  docs/awstats_what.html               |   11 -----------
  18 files changed, 5 insertions(+), 203 deletions(-)
 
---- a/docs/awstats_benchmark.html
-+++ b/docs/awstats_benchmark.html
+Index: awstats.git/docs/awstats_benchmark.html
+===================================================================
+--- awstats.git.orig/docs/awstats_benchmark.html
++++ awstats.git/docs/awstats_benchmark.html
 @@ -177,17 +177,6 @@ For example, it seems that the "use64bit
  <br>
  <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
@@ -44,8 +46,10 @@ Forwarded: no
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
---- a/docs/awstats_compare.html
-+++ b/docs/awstats_compare.html
+Index: awstats.git/docs/awstats_compare.html
+===================================================================
+--- awstats.git.orig/docs/awstats_compare.html
++++ awstats.git/docs/awstats_compare.html
 @@ -730,17 +730,6 @@ format). </font>
  <br>
  <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
@@ -64,8 +68,10 @@ Forwarded: no
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
---- a/docs/awstats_config.html
-+++ b/docs/awstats_config.html
+Index: awstats.git/docs/awstats_config.html
+===================================================================
+--- awstats.git.orig/docs/awstats_config.html
++++ awstats.git/docs/awstats_config.html
 @@ -1853,17 +1853,6 @@ all ExtraSection...X directives and how
  <br>
  <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
@@ -84,9 +90,11 @@ Forwarded: no
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
---- a/docs/awstats_contrib.html
-+++ b/docs/awstats_contrib.html
-@@ -424,21 +424,10 @@ Special thanks goes to the following spo
+Index: awstats.git/docs/awstats_contrib.html
+===================================================================
+--- awstats.git.orig/docs/awstats_contrib.html
++++ awstats.git/docs/awstats_contrib.html
+@@ -423,21 +423,10 @@ Special thanks goes to the following spo
  <br>
  <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
  <g:plusone></g:plusone>
@@ -110,8 +118,10 @@ Forwarded: no
 -</body></html>
 \ No newline at end of file
 +</body></html>
---- a/docs/awstats_dev_plugins.html
-+++ b/docs/awstats_dev_plugins.html
+Index: awstats.git/docs/awstats_dev_plugins.html
+===================================================================
+--- awstats.git.orig/docs/awstats_dev_plugins.html
++++ awstats.git/docs/awstats_dev_plugins.html
 @@ -176,21 +176,10 @@ numbers for easier reading.<br>
  <br>
  <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
@@ -136,8 +146,10 @@ Forwarded: no
 -</body></html>
 \ No newline at end of file
 +</body></html>
---- a/docs/awstats_dev_plugins_graphs.html
-+++ b/docs/awstats_dev_plugins_graphs.html
+Index: awstats.git/docs/awstats_dev_plugins_graphs.html
+===================================================================
+--- awstats.git.orig/docs/awstats_dev_plugins_graphs.html
++++ awstats.git/docs/awstats_dev_plugins_graphs.html
 @@ -202,21 +202,10 @@ which data appears in the associated arr
  <br>
  <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
@@ -162,8 +174,10 @@ Forwarded: no
 -</body></html>
 \ No newline at end of file
 +</body></html>
---- a/docs/awstats_dev_plugins_hooks.html
-+++ b/docs/awstats_dev_plugins_hooks.html
+Index: awstats.git/docs/awstats_dev_plugins_hooks.html
+===================================================================
+--- awstats.git.orig/docs/awstats_dev_plugins_hooks.html
++++ awstats.git/docs/awstats_dev_plugins_hooks.html
 @@ -386,21 +386,10 @@ total or averages<br>
  <br>
  <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
@@ -188,8 +202,10 @@ Forwarded: no
 -</body></html>
 \ No newline at end of file
 +</body></html>
---- a/docs/awstats_dolibarr.html
-+++ b/docs/awstats_dolibarr.html
+Index: awstats.git/docs/awstats_dolibarr.html
+===================================================================
+--- awstats.git.orig/docs/awstats_dolibarr.html
++++ awstats.git/docs/awstats_dolibarr.html
 @@ -54,17 +54,6 @@ This is links to have more informations:
  <br>
  <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
@@ -208,8 +224,10 @@ Forwarded: no
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
---- a/docs/awstats_extra.html
-+++ b/docs/awstats_extra.html
+Index: awstats.git/docs/awstats_extra.html
+===================================================================
+--- awstats.git.orig/docs/awstats_extra.html
++++ awstats.git/docs/awstats_extra.html
 @@ -350,17 +350,6 @@ Return to <a href="#examples">examples</
  <br>
  <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
@@ -228,8 +246,10 @@ Forwarded: no
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
---- a/docs/awstats_faq.html
-+++ b/docs/awstats_faq.html
+Index: awstats.git/docs/awstats_faq.html
+===================================================================
+--- awstats.git.orig/docs/awstats_faq.html
++++ awstats.git/docs/awstats_faq.html
 @@ -1722,17 +1722,6 @@ SkipFiles="REGEX[^\/default\.ida] REGEX[
  <br>
  <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
@@ -248,8 +268,10 @@ Forwarded: no
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
---- a/docs/awstats_glossary.html
-+++ b/docs/awstats_glossary.html
+Index: awstats.git/docs/awstats_glossary.html
+===================================================================
+--- awstats.git.orig/docs/awstats_glossary.html
++++ awstats.git/docs/awstats_glossary.html
 @@ -801,21 +801,10 @@ anti-spam system on the mail server.</fo
  <br>
  <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
@@ -274,8 +296,10 @@ Forwarded: no
 -</body></html>
 \ No newline at end of file
 +</body></html>
---- a/docs/awstats_license.html
-+++ b/docs/awstats_license.html
+Index: awstats.git/docs/awstats_license.html
+===================================================================
+--- awstats.git.orig/docs/awstats_license.html
++++ awstats.git/docs/awstats_license.html
 @@ -54,17 +54,6 @@ So you must follow the line "Free softwa
  <br>
  <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
@@ -294,8 +318,10 @@ Forwarded: no
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
---- a/docs/awstats_security.html
-+++ b/docs/awstats_security.html
+Index: awstats.git/docs/awstats_security.html
+===================================================================
+--- awstats.git.orig/docs/awstats_security.html
++++ awstats.git/docs/awstats_security.html
 @@ -150,17 +150,6 @@ systems security features. Just use the
  <br>
  <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
@@ -314,8 +340,10 @@ Forwarded: no
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
---- a/docs/awstats_setup.html
-+++ b/docs/awstats_setup.html
+Index: awstats.git/docs/awstats_setup.html
+===================================================================
+--- awstats.git.orig/docs/awstats_setup.html
++++ awstats.git/docs/awstats_setup.html
 @@ -584,17 +584,6 @@ click on the link "Update now".<br>
  <br>
  <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
@@ -334,8 +362,10 @@ Forwarded: no
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
---- a/docs/awstats_tools.html
-+++ b/docs/awstats_tools.html
+Index: awstats.git/docs/awstats_tools.html
+===================================================================
+--- awstats.git.orig/docs/awstats_tools.html
++++ awstats.git/docs/awstats_tools.html
 @@ -204,17 +204,6 @@ message-id=&lt;20030905131913.EOVH11393.
  <br>
  <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
@@ -354,8 +384,10 @@ Forwarded: no
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
---- a/docs/awstats_upgrade.html
-+++ b/docs/awstats_upgrade.html
+Index: awstats.git/docs/awstats_upgrade.html
+===================================================================
+--- awstats.git.orig/docs/awstats_upgrade.html
++++ awstats.git/docs/awstats_upgrade.html
 @@ -130,17 +130,6 @@ behavior.<br>
  <br>
  <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
@@ -374,8 +406,10 @@ Forwarded: no
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
---- a/docs/awstats_webmin.html
-+++ b/docs/awstats_webmin.html
+Index: awstats.git/docs/awstats_webmin.html
+===================================================================
+--- awstats.git.orig/docs/awstats_webmin.html
++++ awstats.git/docs/awstats_webmin.html
 @@ -87,17 +87,6 @@ In most cases it must be <i>/etc/awstats
  <br>
  <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
@@ -394,8 +428,10 @@ Forwarded: no
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
---- a/docs/awstats_what.html
-+++ b/docs/awstats_what.html
+Index: awstats.git/docs/awstats_what.html
+===================================================================
+--- awstats.git.orig/docs/awstats_what.html
++++ awstats.git/docs/awstats_what.html
 @@ -196,17 +196,6 @@ examples of supported OS and Web servers
  <br>
  <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
diff --git a/debian/patches/2007_googleplus.patch b/debian/patches/2007_googleplus.patch
index 5d7264e..bf02750 100644
--- a/debian/patches/2007_googleplus.patch
+++ b/debian/patches/2007_googleplus.patch
@@ -23,10 +23,10 @@ Forwarded: no
  docs/awstats_what.html               |    2 --
  18 files changed, 36 deletions(-)
 
-Index: awstats-debian/docs/awstats_benchmark.html
+Index: awstats.git/docs/awstats_benchmark.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_benchmark.html
-+++ awstats-debian/docs/awstats_benchmark.html
+--- awstats.git.orig/docs/awstats_benchmark.html
++++ awstats.git/docs/awstats_benchmark.html
 @@ -8,7 +8,6 @@
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <title>AWStats Documentation - Benchmark page</title>
@@ -47,10 +47,10 @@ Index: awstats-debian/docs/awstats_benchmark.html
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
-Index: awstats-debian/docs/awstats_compare.html
+Index: awstats.git/docs/awstats_compare.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_compare.html
-+++ awstats-debian/docs/awstats_compare.html
+--- awstats.git.orig/docs/awstats_compare.html
++++ awstats.git/docs/awstats_compare.html
 @@ -6,7 +6,6 @@
  <meta name="title" content="AWStats Documentation - Log File analyzer comparison"><title>AWStats Documentation - Log File analyzer comparison</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
@@ -71,10 +71,10 @@ Index: awstats-debian/docs/awstats_compare.html
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
-Index: awstats-debian/docs/awstats_config.html
+Index: awstats.git/docs/awstats_config.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_config.html
-+++ awstats-debian/docs/awstats_config.html
+--- awstats.git.orig/docs/awstats_config.html
++++ awstats.git/docs/awstats_config.html
 @@ -7,7 +7,6 @@
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <title>AWStats Documentation - Configuration directives and parameters</title>
@@ -95,10 +95,10 @@ Index: awstats-debian/docs/awstats_config.html
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
-Index: awstats-debian/docs/awstats_contrib.html
+Index: awstats.git/docs/awstats_contrib.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_contrib.html
-+++ awstats-debian/docs/awstats_contrib.html
+--- awstats.git.orig/docs/awstats_contrib.html
++++ awstats.git/docs/awstats_contrib.html
 @@ -7,7 +7,6 @@
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <title>AWStats Documentation - Contrib and resource page</title>
@@ -119,10 +119,10 @@ Index: awstats-debian/docs/awstats_contrib.html
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
-Index: awstats-debian/docs/awstats_dev_plugins.html
+Index: awstats.git/docs/awstats_dev_plugins.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_dev_plugins.html
-+++ awstats-debian/docs/awstats_dev_plugins.html
+--- awstats.git.orig/docs/awstats_dev_plugins.html
++++ awstats.git/docs/awstats_dev_plugins.html
 @@ -7,7 +7,6 @@
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <title>AWStats Documentation - Plugins Development</title>
@@ -143,10 +143,10 @@ Index: awstats-debian/docs/awstats_dev_plugins.html
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
-Index: awstats-debian/docs/awstats_dev_plugins_graphs.html
+Index: awstats.git/docs/awstats_dev_plugins_graphs.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_dev_plugins_graphs.html
-+++ awstats-debian/docs/awstats_dev_plugins_graphs.html
+--- awstats.git.orig/docs/awstats_dev_plugins_graphs.html
++++ awstats.git/docs/awstats_dev_plugins_graphs.html
 @@ -8,7 +8,6 @@
  <title>AWStats Documentation - Plugins Development - Graphs</title>
  <link rel="stylesheet" href="styles.css" type="text/css">
@@ -167,10 +167,10 @@ Index: awstats-debian/docs/awstats_dev_plugins_graphs.html
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
-Index: awstats-debian/docs/awstats_dev_plugins_hooks.html
+Index: awstats.git/docs/awstats_dev_plugins_hooks.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_dev_plugins_hooks.html
-+++ awstats-debian/docs/awstats_dev_plugins_hooks.html
+--- awstats.git.orig/docs/awstats_dev_plugins_hooks.html
++++ awstats.git/docs/awstats_dev_plugins_hooks.html
 @@ -7,7 +7,6 @@
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <title>AWStats Documentation - Plugins Development - Hooks</title>
@@ -191,10 +191,10 @@ Index: awstats-debian/docs/awstats_dev_plugins_hooks.html
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
-Index: awstats-debian/docs/awstats_dolibarr.html
+Index: awstats.git/docs/awstats_dolibarr.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_dolibarr.html
-+++ awstats-debian/docs/awstats_dolibarr.html
+--- awstats.git.orig/docs/awstats_dolibarr.html
++++ awstats.git/docs/awstats_dolibarr.html
 @@ -8,7 +8,6 @@
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <title>AWStats Documentation - AWStats Dolibarr module</title>
@@ -215,10 +215,10 @@ Index: awstats-debian/docs/awstats_dolibarr.html
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
-Index: awstats-debian/docs/awstats_extra.html
+Index: awstats.git/docs/awstats_extra.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_extra.html
-+++ awstats-debian/docs/awstats_extra.html
+--- awstats.git.orig/docs/awstats_extra.html
++++ awstats.git/docs/awstats_extra.html
 @@ -8,7 +8,6 @@
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <title>AWStats Documentation - Using the Extra Sections features</title>
@@ -239,10 +239,10 @@ Index: awstats-debian/docs/awstats_extra.html
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
-Index: awstats-debian/docs/awstats_faq.html
+Index: awstats.git/docs/awstats_faq.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_faq.html
-+++ awstats-debian/docs/awstats_faq.html
+--- awstats.git.orig/docs/awstats_faq.html
++++ awstats.git/docs/awstats_faq.html
 @@ -8,7 +8,6 @@
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <title>AWStats Documentation - FAQs</title>
@@ -263,10 +263,10 @@ Index: awstats-debian/docs/awstats_faq.html
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
-Index: awstats-debian/docs/awstats_glossary.html
+Index: awstats.git/docs/awstats_glossary.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_glossary.html
-+++ awstats-debian/docs/awstats_glossary.html
+--- awstats.git.orig/docs/awstats_glossary.html
++++ awstats.git/docs/awstats_glossary.html
 @@ -6,7 +6,6 @@
  <meta name="title" content="AWStats Documentation - Glossary"><title>AWStats Documentation - Glossary</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
@@ -287,10 +287,10 @@ Index: awstats-debian/docs/awstats_glossary.html
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
-Index: awstats-debian/docs/awstats_license.html
+Index: awstats.git/docs/awstats_license.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_license.html
-+++ awstats-debian/docs/awstats_license.html
+--- awstats.git.orig/docs/awstats_license.html
++++ awstats.git/docs/awstats_license.html
 @@ -8,7 +8,6 @@
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <title>AWStats Documentation - License description</title>
@@ -311,10 +311,10 @@ Index: awstats-debian/docs/awstats_license.html
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
-Index: awstats-debian/docs/awstats_security.html
+Index: awstats.git/docs/awstats_security.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_security.html
-+++ awstats-debian/docs/awstats_security.html
+--- awstats.git.orig/docs/awstats_security.html
++++ awstats.git/docs/awstats_security.html
 @@ -8,7 +8,6 @@
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <title>AWStats Documentation - Security page</title>
@@ -335,10 +335,10 @@ Index: awstats-debian/docs/awstats_security.html
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
-Index: awstats-debian/docs/awstats_setup.html
+Index: awstats.git/docs/awstats_setup.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_setup.html
-+++ awstats-debian/docs/awstats_setup.html
+--- awstats.git.orig/docs/awstats_setup.html
++++ awstats.git/docs/awstats_setup.html
 @@ -8,7 +8,6 @@
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <title>AWStats Documentation - Setup page</title>
@@ -359,10 +359,10 @@ Index: awstats-debian/docs/awstats_setup.html
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
-Index: awstats-debian/docs/awstats_tools.html
+Index: awstats.git/docs/awstats_tools.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_tools.html
-+++ awstats-debian/docs/awstats_tools.html
+--- awstats.git.orig/docs/awstats_tools.html
++++ awstats.git/docs/awstats_tools.html
 @@ -7,7 +7,6 @@
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <title>AWStats Documentation - Other tools</title>
@@ -383,10 +383,10 @@ Index: awstats-debian/docs/awstats_tools.html
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
-Index: awstats-debian/docs/awstats_upgrade.html
+Index: awstats.git/docs/awstats_upgrade.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_upgrade.html
-+++ awstats-debian/docs/awstats_upgrade.html
+--- awstats.git.orig/docs/awstats_upgrade.html
++++ awstats.git/docs/awstats_upgrade.html
 @@ -8,7 +8,6 @@
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <title>AWStats Documentation - Upgrade setup</title>
@@ -407,10 +407,10 @@ Index: awstats-debian/docs/awstats_upgrade.html
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
-Index: awstats-debian/docs/awstats_webmin.html
+Index: awstats.git/docs/awstats_webmin.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_webmin.html
-+++ awstats-debian/docs/awstats_webmin.html
+--- awstats.git.orig/docs/awstats_webmin.html
++++ awstats.git/docs/awstats_webmin.html
 @@ -8,7 +8,6 @@
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <title>AWStats Documentation - AWStats Webmin module</title>
@@ -431,10 +431,10 @@ Index: awstats-debian/docs/awstats_webmin.html
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
-Index: awstats-debian/docs/awstats_what.html
+Index: awstats.git/docs/awstats_what.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_what.html
-+++ awstats-debian/docs/awstats_what.html
+--- awstats.git.orig/docs/awstats_what.html
++++ awstats.git/docs/awstats_what.html
 @@ -192,10 +192,8 @@ examples of supported OS and Web servers
  <!-- BEGIN_SOCIAL_NETWORKS -->
  <div class="htmldoc-ignore">
@@ -447,10 +447,10 @@ Index: awstats-debian/docs/awstats_what.html
  <!-- twitter -->
  <a href="https://twitter.com/awstats_project" class="twitter-follow-button" data-show-count="false">Follow @awstats_project</a>
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
-Index: awstats-debian/docs/index.html
+Index: awstats.git/docs/index.html
 ===================================================================
---- awstats-debian.orig/docs/index.html
-+++ awstats-debian/docs/index.html
+--- awstats.git.orig/docs/index.html
++++ awstats.git/docs/index.html
 @@ -8,7 +8,6 @@
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <title>AWStats logfile analyzer Documentation</title>
diff --git a/debian/patches/2008_twitter.patch b/debian/patches/2008_twitter.patch
index 1ee9521..566f18d 100644
--- a/debian/patches/2008_twitter.patch
+++ b/debian/patches/2008_twitter.patch
@@ -23,10 +23,10 @@ Forwarded: no
  docs/awstats_what.html               |    1 -
  18 files changed, 18 deletions(-)
 
-Index: awstats-debian/docs/awstats_benchmark.html
+Index: awstats.git/docs/awstats_benchmark.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_benchmark.html
-+++ awstats-debian/docs/awstats_benchmark.html
+--- awstats.git.orig/docs/awstats_benchmark.html
++++ awstats.git/docs/awstats_benchmark.html
 @@ -176,7 +176,6 @@ For example, it seems that the "use64bit
  <br>
  <!-- twitter -->
@@ -35,10 +35,10 @@ Index: awstats-debian/docs/awstats_benchmark.html
  </div>
  <!-- END_SOCIAL_NETWORKS -->
  
-Index: awstats-debian/docs/awstats_compare.html
+Index: awstats.git/docs/awstats_compare.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_compare.html
-+++ awstats-debian/docs/awstats_compare.html
+--- awstats.git.orig/docs/awstats_compare.html
++++ awstats.git/docs/awstats_compare.html
 @@ -729,7 +729,6 @@ format). </font>
  <br>
  <!-- twitter -->
@@ -47,10 +47,10 @@ Index: awstats-debian/docs/awstats_compare.html
  </div>
  <br>
  <!-- Link from 2016-05-11 to 2017-05-11 -->
-Index: awstats-debian/docs/awstats_config.html
+Index: awstats.git/docs/awstats_config.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_config.html
-+++ awstats-debian/docs/awstats_config.html
+--- awstats.git.orig/docs/awstats_config.html
++++ awstats.git/docs/awstats_config.html
 @@ -1852,7 +1852,6 @@ all ExtraSection...X directives and how
  <br>
  <!-- twitter -->
@@ -59,10 +59,10 @@ Index: awstats-debian/docs/awstats_config.html
  </div>
  <!-- END_SOCIAL_NETWORKS -->
  
-Index: awstats-debian/docs/awstats_contrib.html
+Index: awstats.git/docs/awstats_contrib.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_contrib.html
-+++ awstats-debian/docs/awstats_contrib.html
+--- awstats.git.orig/docs/awstats_contrib.html
++++ awstats.git/docs/awstats_contrib.html
 @@ -422,7 +422,6 @@ Special thanks goes to the following spo
  <br>
  <!-- twitter -->
@@ -71,10 +71,10 @@ Index: awstats-debian/docs/awstats_contrib.html
  </div>
  <!-- END_SOCIAL_NETWORKS -->
  
-Index: awstats-debian/docs/awstats_dev_plugins.html
+Index: awstats.git/docs/awstats_dev_plugins.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_dev_plugins.html
-+++ awstats-debian/docs/awstats_dev_plugins.html
+--- awstats.git.orig/docs/awstats_dev_plugins.html
++++ awstats.git/docs/awstats_dev_plugins.html
 @@ -175,7 +175,6 @@ numbers for easier reading.<br>
  <br>
  <!-- twitter -->
@@ -83,10 +83,10 @@ Index: awstats-debian/docs/awstats_dev_plugins.html
  </div>
  <!-- END_SOCIAL_NETWORKS -->
  
-Index: awstats-debian/docs/awstats_dev_plugins_graphs.html
+Index: awstats.git/docs/awstats_dev_plugins_graphs.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_dev_plugins_graphs.html
-+++ awstats-debian/docs/awstats_dev_plugins_graphs.html
+--- awstats.git.orig/docs/awstats_dev_plugins_graphs.html
++++ awstats.git/docs/awstats_dev_plugins_graphs.html
 @@ -201,7 +201,6 @@ which data appears in the associated arr
  <br>
  <!-- twitter -->
@@ -95,10 +95,10 @@ Index: awstats-debian/docs/awstats_dev_plugins_graphs.html
  </div>
  <!-- END_SOCIAL_NETWORKS -->
  
-Index: awstats-debian/docs/awstats_dev_plugins_hooks.html
+Index: awstats.git/docs/awstats_dev_plugins_hooks.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_dev_plugins_hooks.html
-+++ awstats-debian/docs/awstats_dev_plugins_hooks.html
+--- awstats.git.orig/docs/awstats_dev_plugins_hooks.html
++++ awstats.git/docs/awstats_dev_plugins_hooks.html
 @@ -385,7 +385,6 @@ total or averages<br>
  <br>
  <!-- twitter -->
@@ -107,10 +107,10 @@ Index: awstats-debian/docs/awstats_dev_plugins_hooks.html
  </div>
  <!-- END_SOCIAL_NETWORKS -->
  
-Index: awstats-debian/docs/awstats_dolibarr.html
+Index: awstats.git/docs/awstats_dolibarr.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_dolibarr.html
-+++ awstats-debian/docs/awstats_dolibarr.html
+--- awstats.git.orig/docs/awstats_dolibarr.html
++++ awstats.git/docs/awstats_dolibarr.html
 @@ -53,7 +53,6 @@ This is links to have more informations:
  <br>
  <!-- twitter -->
@@ -119,10 +119,10 @@ Index: awstats-debian/docs/awstats_dolibarr.html
  </div>
  <!-- END_SOCIAL_NETWORKS -->
  
-Index: awstats-debian/docs/awstats_extra.html
+Index: awstats.git/docs/awstats_extra.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_extra.html
-+++ awstats-debian/docs/awstats_extra.html
+--- awstats.git.orig/docs/awstats_extra.html
++++ awstats.git/docs/awstats_extra.html
 @@ -349,7 +349,6 @@ Return to <a href="#examples">examples</
  <br>
  <!-- twitter -->
@@ -131,10 +131,10 @@ Index: awstats-debian/docs/awstats_extra.html
  </div>
  <!-- END_SOCIAL_NETWORKS -->
  
-Index: awstats-debian/docs/awstats_faq.html
+Index: awstats.git/docs/awstats_faq.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_faq.html
-+++ awstats-debian/docs/awstats_faq.html
+--- awstats.git.orig/docs/awstats_faq.html
++++ awstats.git/docs/awstats_faq.html
 @@ -1721,7 +1721,6 @@ SkipFiles="REGEX[^\/default\.ida] REGEX[
  <br>
  <!-- twitter -->
@@ -143,10 +143,10 @@ Index: awstats-debian/docs/awstats_faq.html
  </div>
  <!-- END_SOCIAL_NETWORKS -->
  
-Index: awstats-debian/docs/awstats_glossary.html
+Index: awstats.git/docs/awstats_glossary.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_glossary.html
-+++ awstats-debian/docs/awstats_glossary.html
+--- awstats.git.orig/docs/awstats_glossary.html
++++ awstats.git/docs/awstats_glossary.html
 @@ -800,7 +800,6 @@ anti-spam system on the mail server.</fo
  <br>
  <!-- twitter -->
@@ -155,10 +155,10 @@ Index: awstats-debian/docs/awstats_glossary.html
  </div>
  <!-- END_SOCIAL_NETWORKS -->
  
-Index: awstats-debian/docs/awstats_license.html
+Index: awstats.git/docs/awstats_license.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_license.html
-+++ awstats-debian/docs/awstats_license.html
+--- awstats.git.orig/docs/awstats_license.html
++++ awstats.git/docs/awstats_license.html
 @@ -53,7 +53,6 @@ So you must follow the line "Free softwa
  <br>
  <!-- twitter -->
@@ -167,10 +167,10 @@ Index: awstats-debian/docs/awstats_license.html
  </div>
  <!-- END_SOCIAL_NETWORKS -->
  
-Index: awstats-debian/docs/awstats_security.html
+Index: awstats.git/docs/awstats_security.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_security.html
-+++ awstats-debian/docs/awstats_security.html
+--- awstats.git.orig/docs/awstats_security.html
++++ awstats.git/docs/awstats_security.html
 @@ -149,7 +149,6 @@ systems security features. Just use the
  <br>
  <!-- twitter -->
@@ -179,10 +179,10 @@ Index: awstats-debian/docs/awstats_security.html
  </div>
  <!-- END_SOCIAL_NETWORKS -->
  
-Index: awstats-debian/docs/awstats_setup.html
+Index: awstats.git/docs/awstats_setup.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_setup.html
-+++ awstats-debian/docs/awstats_setup.html
+--- awstats.git.orig/docs/awstats_setup.html
++++ awstats.git/docs/awstats_setup.html
 @@ -583,7 +583,6 @@ click on the link "Update now".<br>
  <br>
  <!-- twitter -->
@@ -191,10 +191,10 @@ Index: awstats-debian/docs/awstats_setup.html
  </div>
  <!-- END_SOCIAL_NETWORKS -->
  
-Index: awstats-debian/docs/awstats_tools.html
+Index: awstats.git/docs/awstats_tools.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_tools.html
-+++ awstats-debian/docs/awstats_tools.html
+--- awstats.git.orig/docs/awstats_tools.html
++++ awstats.git/docs/awstats_tools.html
 @@ -203,7 +203,6 @@ message-id=&lt;20030905131913.EOVH11393.
  <br>
  <!-- twitter -->
@@ -203,10 +203,10 @@ Index: awstats-debian/docs/awstats_tools.html
  </div>
  <!-- END_SOCIAL_NETWORKS -->
  
-Index: awstats-debian/docs/awstats_upgrade.html
+Index: awstats.git/docs/awstats_upgrade.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_upgrade.html
-+++ awstats-debian/docs/awstats_upgrade.html
+--- awstats.git.orig/docs/awstats_upgrade.html
++++ awstats.git/docs/awstats_upgrade.html
 @@ -129,7 +129,6 @@ behavior.<br>
  <br>
  <!-- twitter -->
@@ -215,10 +215,10 @@ Index: awstats-debian/docs/awstats_upgrade.html
  </div>
  <!-- END_SOCIAL_NETWORKS -->
  
-Index: awstats-debian/docs/awstats_webmin.html
+Index: awstats.git/docs/awstats_webmin.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_webmin.html
-+++ awstats-debian/docs/awstats_webmin.html
+--- awstats.git.orig/docs/awstats_webmin.html
++++ awstats.git/docs/awstats_webmin.html
 @@ -86,7 +86,6 @@ In most cases it must be <i>/etc/awstats
  <br>
  <!-- twitter -->
@@ -227,10 +227,10 @@ Index: awstats-debian/docs/awstats_webmin.html
  </div>
  <!-- END_SOCIAL_NETWORKS -->
  
-Index: awstats-debian/docs/awstats_what.html
+Index: awstats.git/docs/awstats_what.html
 ===================================================================
---- awstats-debian.orig/docs/awstats_what.html
-+++ awstats-debian/docs/awstats_what.html
+--- awstats.git.orig/docs/awstats_what.html
++++ awstats.git/docs/awstats_what.html
 @@ -196,7 +196,6 @@ examples of supported OS and Web servers
  <br>
  <!-- twitter -->
diff --git a/debian/patches/2009_googlesearch.patch b/debian/patches/2009_googlesearch.patch
index 3ceeae6..6cd261b 100644
--- a/debian/patches/2009_googlesearch.patch
+++ b/debian/patches/2009_googlesearch.patch
@@ -6,10 +6,10 @@ Forwarded: no
  docs/index.html |    3 ---
  1 file changed, 3 deletions(-)
 
-Index: awstats-debian/docs/index.html
+Index: awstats.git/docs/index.html
 ===================================================================
---- awstats-debian.orig/docs/index.html
-+++ awstats-debian/docs/index.html
+--- awstats.git.orig/docs/index.html
++++ awstats.git/docs/index.html
 @@ -39,14 +39,11 @@
  <!-- SiteSearch Google -->
  <form action="https://www.google.com" id="cse-search-box">
diff --git a/debian/patches/fix-cross-site-scripting.patch b/debian/patches/fix-cross-site-scripting.patch
deleted file mode 100644
index 1f56328..0000000
--- a/debian/patches/fix-cross-site-scripting.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From: rekter0 <58881147+rekter0@users.noreply.github.com>
-Date: Mon, 7 Nov 2022 15:12:03 +0100
-Subject: fix cross site scripting
-Origin: https://github.com/eldy/AWStats/commit/38682330e1ec3f3af95f9436640358b2d9e4a965
-Bug: https://github.com/eldy/AWStats/pull/226
-Bug-Debian: https://bugs.debian.org/1025410
-Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2022-46391
-
-xss due to printing response from Net::XWhois without proper checks
----
- wwwroot/cgi-bin/plugins/hostinfo.pm | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/wwwroot/cgi-bin/plugins/hostinfo.pm b/wwwroot/cgi-bin/plugins/hostinfo.pm
-index 95b2c20b7b91..1f0ac699459d 100644
---- a/wwwroot/cgi-bin/plugins/hostinfo.pm
-+++ b/wwwroot/cgi-bin/plugins/hostinfo.pm
-@@ -181,7 +181,7 @@ sub BuildFullHTMLOutput_hostinfo {
- 
- 	&tab_head("Full Whois Field",0,0,'whois');
- 	if ($w && $w->response()) {
--		print "<tr><td class=\"aws\"><pre>".($w->response())."</pre></td></tr>\n";
-+		print "<tr><td class=\"aws\"><pre>".CleanXSS($w->response())."</pre></td></tr>\n";
- 	}
- 	else {
- 		print "<tr><td><br />The Whois command failed.<br />Did the server running AWStats is allowed to send WhoIs queries (If a firewall is running, port 43 should be opened from inside to outside) ?<br /><br /></td></tr>\n";
--- 
-2.38.1
-
diff --git a/debian/patches/series b/debian/patches/series
index 8c7b288..9af07eb 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -10,5 +10,3 @@
 2007_googleplus.patch
 2008_twitter.patch
 2009_googlesearch.patch
-0013-Only-look-for-configuration-in-dedicated-awstats-dir.patch
-fix-cross-site-scripting.patch
diff --git a/docs/awstats_changelog.txt b/docs/awstats_changelog.txt
index 044e1e6..83fad9f 100644
--- a/docs/awstats_changelog.txt
+++ b/docs/awstats_changelog.txt
@@ -1,6 +1,113 @@
 AWStats Changelog
 -----------------
 
+***** 7.9 *****
+
+Add Windows 11 and Android 13 operating systems
+Update Hungarian translation and migrate it to UTF-8.
+fix cross site scripting
+Replace hard coded text with $Message ( Monthly, Daily, Hourly )
+Android 11 + 12, MacOS 11 ( Big Sur ) + 12 ( Monterey )
+Catch up german translations
+Change the substitution that replaces newlines with BR elements so that the syntax works for both HTML and XHTML.
+Added a few robots and 1 phone browser. Also corrected some errors in devlop robots.pm
+Only look for configuration in dedicated awstats directories
+Unwrap SRS e-mail addresses
+Fixes #195/CVE-2020-35176
+As geoip2_country doesn't have AddHTMLGraph_geoip2_country, it should only generate subpage for geoip2_city.
+added support for HaikuOS and Safari based WebPositive browser
+Adding missing td-tag opening
+Tajik Language Support
+
+
+***** 7.8 *****
+
+NEW Add SelectBox for DatabaseBreak Mode: month,day and hour.
+Update http status codes
+Add more file types
+Update README.md
+Fix geoip2 formatting problem
+corner case 99
+Fix some incoherent entries in search_engines.pm
+Fix geoip2 plugin on windows by renaming it
+Update robots.pm with PR118 data. Add:
+    - PiplBot bot
+    - um-IC & um-LN bot
+    - arcemedia
+    - bit.ly
+    - bidswitchbot
+    - bnf.fr_bot
+    - contxbot
+    - flamingo
+    - getintent (variant)
+    - laserlikebot
+    - mappy
+    - mojeek (variant)
+    - serendeputy
+    - trendiction
+    - yak (linkinfluence)
+    - zoominfobot
+Fixes #104
+Change markdown to better readability
+Update Copyright year
+Change to https links
+Fix links for perl download
+NEW add %time6 tag in log format to support some IIS log format
+geoip2: Fix table formatting error. Missing "<td>" item tag.
+Changes to robots.pm
+Add support for macOS DMG and PKG files
+Fix browser detection with HTTP 206 status code
+Support for macOS 10.13/10.14 + improved image compression of icons
+Fix use the 5 top hits as base 100 for graph to show the top 5 hits.
+Clean up geoip2 and geoip2 city modules
+    * Correctly convert dns names to ip4 and ip6 address using getaddrinfo
+      (fixes #120, #121, obsoletes #115)
+    * Only lookup if the IP is of type public (fixes #122)
+      and catch further lookup errors (obsoletes #123)
+    * Store and display the GeoIP City output HTML escaped (fixes #127)
+    * Code to perform and cache the actual lookup is consolidated
+    * General code improvement and readability
+Losslessly reduced size of PNG images by about 33% using zopfli, pngout and oxipng. Also added os icons for macOS 10.13 and 10.14.
+Add Robot: The Knowledge AI
+Fix Error: Not same number of records of RobotsSearchIDOrder_listx
+Robots, Search Engine and Web Page Tracking Modifications
+Optimize OptimizeArray
+Added UptimeRobot https://uptimerobot.com/
+Fix a few grammar errors in the model config
+Ignore search phrases longer than 80 characters.
+Fix 404 detail page not updating
+Decode RFC 3986 "unreserved chars" in URLs.
+Fix #80
+Disable nested includes warnings for Perl > 5.6.
+Update domains.pm
+Fix two invalid entries in search_engines.pm
+Format Tera Bytes
+Fix "Illegal division by zero" error.
+Fix #79
+Improving error handling in awstats_buildstaticpages.pl
+FIX #90
+Exclude private IP addresses since GeoIP2::Reader doesn't support them
+Ignore search phrases longer than 80 characters.
+Only purge data for the saved section.
+Make city plugin more functional
+Fix issue with ShowHost section when address is resolved.
+Initial implementation of GeoIP2 City lookup.
+Fix a few issues with Country lookup.
+Initial implementation. Looksup only Country code for IPv4 and IPv6
+Update hebrew file
+Quite a few additions and modifications. Especially yahoo detection.
+Added device pixel ratio ( dpr ) to awstats_misc_tracker.js.
+added 37 new robots to robots.pm file using v 7.7 robots.pm file as base file.
+Move oBot entry lower as to not incorrectly get picked for other *obot robots.
+Decode RFC 3986 "unreserved chars" in URLs.  This makes awstats treat "/foo" and "/%66%6f%6f" as equivalent.
+Missing Sint Maarten  flag
+Wrong label cf. https://dev.maxmind.com/geoip/legacy/codes/iso3166/
+Fix Issue #76 - country name not correct
+Fix utf bom files
+Fix another vulnerability reported by cPanel Security Team (can execute arbitraty code)
+Add more tests
+
+
 ***** 7.7 *****
 
 Security fix: CVE-2017-1000501
diff --git a/tools/awstats_buildstaticpages.pl b/tools/awstats_buildstaticpages.pl
index 3ca62b2..ad5a7de 100755
--- a/tools/awstats_buildstaticpages.pl
+++ b/tools/awstats_buildstaticpages.pl
@@ -370,6 +370,7 @@ foreach my $extranum (1..@ExtraName-1) {
 #Add plugins
 foreach ( @PluginsToLoad ) {
 	if ($_ =~ /^(geoip_[_a-z]+)\s/) { push @OutputList,'plugin_'.$1; }	# Add geoip maxmind subpages
+	if ($_ =~ /^(geoip2_city)\s/) { push @OutputList,'plugin_'.$1; }	# Add geoip2 maxmind subpages
 }
 
 
diff --git a/tools/maillogconvert.pl b/tools/maillogconvert.pl
index d5f7b06..6fb3a8b 100755
--- a/tools/maillogconvert.pl
+++ b/tools/maillogconvert.pl
@@ -76,9 +76,15 @@ sub CleanVadminUser { $_=shift||'';
 	return $_;
 }
 
+sub UnwrapSRS { $_=shift||'';
+	s/^SRS1=.*=([^=]+)=([^@]+)@.*$/\2@\1/g;
+	s/^SRS0=[^=]+=[^=]+=([^=]+)=([^@]+)@.*$/\2@\1/g;
+	return $_;
+}
+
 sub CleanEmail { $_=shift||'';
 	s/[#<|>\[\]]//g;	# Remove unwanted characters first
-	return $_;
+	return &UnwrapSRS($_);
 }
 
 # Clean host addresses
diff --git a/wwwroot/cgi-bin/awstats.model.conf b/wwwroot/cgi-bin/awstats.model.conf
index d0108b2..51bbb0d 100644
--- a/wwwroot/cgi-bin/awstats.model.conf
+++ b/wwwroot/cgi-bin/awstats.model.conf
@@ -1049,9 +1049,9 @@ ShowPagesStats=PBEX
 # Default: HB, Possible column codes: HBC
 ShowFileTypesStats=HB
 
-# Show file size chart (Not yet available)
+# Show file size chart.
 # Context: Web, Streaming, Mail, Ftp
-# Default: 1, Possible column codes: None
+# Default: 0, Possible column codes: None
 ShowFileSizesStats=0
 
 # Show downloads chart.
diff --git a/wwwroot/cgi-bin/awstats.pl b/wwwroot/cgi-bin/awstats.pl
index 3a3d4c6..a5e9857 100755
--- a/wwwroot/cgi-bin/awstats.pl
+++ b/wwwroot/cgi-bin/awstats.pl
@@ -36,8 +36,8 @@ use File::Spec;
 # Defines
 #------------------------------------------------------------------------------
 use vars qw/ $REVISION $VERSION /;
-$REVISION = '20200416';
-$VERSION  = "7.8 (build $REVISION)";
+$REVISION = '20230108';
+$VERSION  = "7.9 (build $REVISION)";
 
 # ----- Constants -----
 use vars qw/
@@ -373,6 +373,7 @@ use vars qw/
 use vars qw/
   @MiscListOrder %MiscListCalc
   %OSFamily %BrowsersFamily @SessionsRange %SessionsAverage
+  @PayloadRange %PayloadAverage
   %LangBrowserToLangAwstats %LangAWStatsToFlagAwstats %BrowsersSafariBuildToVersionHash
   @HostAliases @AllowAccessFromWebToFollowingAuthenticatedUsers
   @DefaultFile @SkipDNSLookupFor
@@ -413,6 +414,12 @@ use vars qw/
 	'1h+',      3600
 );
 
+@PayloadRange = ('0-44', '44-100', '100-500', '500-1K', '1K-2K', '2K-5K', '5K+');
+%PayloadAverage = (
+        '0-44', 44, '44-100', 100, '100-500', 500, '500-1K', 1024,
+        '1K-2K', 2048, '2K-5K', 5120, '5K+', 5121
+);
+
 # HTTP-Accept or Lang parameter => AWStats code to use for lang
 # ISO-639-1 or 2 or other       => awstats-xx.txt where xx is ISO-639-1
 %LangBrowserToLangAwstats = (
@@ -526,6 +533,7 @@ use vars qw/
   %MonthPages %MonthHits %MonthBytes
   %MonthNotViewedPages %MonthNotViewedHits %MonthNotViewedBytes
   %_session %_browser_h %_browser_p
+  %_filesize
   %_domener_p %_domener_h %_domener_k %_errors_h %_errors_k
   %_filetypes_h %_filetypes_k %_filetypes_gz_in %_filetypes_gz_out
   %_host_p %_host_h %_host_k %_host_l %_host_s %_host_u
@@ -739,7 +747,14 @@ use vars qw/ @Message /;
 	'Konqueror versions',
 	',',
  	'Downloads',
- 	'Export CSV'
+ 	'Export CSV',
+        'TB',
+        'Frequency[/s]',
+        'Number of requests',
+        'Period',
+        's',
+        'Request average frequency [/s]',
+        'Request size'
 );
 
 #------------------------------------------------------------------------------
@@ -1298,7 +1313,7 @@ sub warning {
 		if ( !$HeaderHTTPSent && $ENV{'GATEWAY_INTERFACE'} ) { http_head(); }
 		if ( !$HeaderHTMLSent )        { html_head(); }
 		if ( scalar keys %HTMLOutput ) {
-			$messagestring =~ s/\n/\<br\>/g;
+			$messagestring =~ s,\n,<br />,g;
 			print "$messagestring<br />\n";
 		}
 		else {
@@ -1615,6 +1630,25 @@ sub Get_Filename{
 	return $temp;
 }
 
+#------------------------------------------------------------------------------
+# Function:     Return string of Bandwidth Range
+# Parameters:   $starttime $endtime
+# Input:        None
+# Output:       None
+# Return:       A string that identify the bandwidth range
+#------------------------------------------------------------------------------
+sub GetBandwidthRange {
+        my $payload = shift;
+        if ($Debug) { debug("GetPayloadRange $payload",4); }
+        if ($payload <= 44)   { return $PayloadRange[0]; }
+        if ($payload <= 100)  { return $PayloadRange[1]; }
+        if ($payload <= 500)  { return $PayloadRange[2]; }
+        if ($payload <= 1024) { return $PayloadRange[3]; }
+        if ($payload <= 2048) { return $PayloadRange[4]; }
+        if ($payload <= 5120) { return $PayloadRange[5]; }
+        return $PayloadRange[6];
+}
+
 #------------------------------------------------------------------------------
 # Function:     Compare two browsers version
 # Parameters:	$a
@@ -1677,13 +1711,13 @@ sub Read_Config {
 	# Check config file in common possible directories :
 	# Windows :                   				"$DIR" (same dir than awstats.pl)
 	# Standard, Mandrake and Debian package :	"/etc/awstats"
-	# Other possible directories :				"/usr/local/etc/awstats", "/etc"
+	# Other possible directories :				"/usr/local/etc/awstats",
 	# FHS standard, Suse package : 				"/etc/opt/awstats"
 	my $configdir         = shift;
 	my @PossibleConfigDir = (
 			"$DIR",
 			"/etc/awstats",
-			"/usr/local/etc/awstats", "/etc",
+			"/usr/local/etc/awstats",
 			"/etc/opt/awstats"
 		); 
 
@@ -1789,7 +1823,8 @@ sub Read_Config {
 			'png'   => 1,
 			'bmp'   => 1,
 			'ico'   => 1,
-			'swf'   => 1
+			'swf'   => 1,
+			'webp'  => 1
 		);
 	}
 
@@ -3393,6 +3428,7 @@ sub Read_History_With_TmpUpdate {
 		'searchwords'           => 25,
 		'keywords'              => 26,
 		'errors'                => 27,
+                'filesize'              => 28,
 	);
 
 	my $order = ( scalar keys %allsections ) + 1;
@@ -3501,6 +3537,13 @@ sub Read_History_With_TmpUpdate {
 		{
 			$SectionsToLoad{'session'} = $order++;
 		}
+                if (   $UpdateStats
+                        || $MigrateStats
+                        || ($HTMLOutput{'main'} && $ShowFileSizesStats)
+                        || $HTMLOutput{'filesizes'} )
+                {
+                        $SectionsToLoad{'filesize'} = $order++;
+                }
 		if (   $UpdateStats
 			|| $MigrateStats
 			|| ( $HTMLOutput{'main'} && $ShowPagesStats )
@@ -3847,6 +3890,52 @@ sub Read_History_With_TmpUpdate {
 				next;
 			}
 
+                        # BEGIN_FILESIZE
+                        if ( $field[0] eq 'BEGIN_FILESIZE' ) {
+                                if ($Debug) { debug(" Begin of FILESIZE section"); }
+                                $field[0] = '';
+                                my $count = 0;
+                                my $countloaded = 0;
+                                do {
+                                        if ( $field[0] ) {
+                                                $count++;
+                                                if ( $SectionsToLoad{'filesize'} ) {
+                                                        $countloaded++;
+                                                        if ($field[1]) {
+                                                               $_filesize{ $field[0] } += $field[1];
+                                                        }
+                                                }
+                                        }
+                                        $_ = <HISTORY>;
+                                        chomp $_;
+                                        s/\r//;
+                                        @field =
+                                          split( /\s+/,
+                                                ( $readxml ? CleanFromTags($_) : $_) );
+                                        $countlines++;
+                                } until ( $field[0] eq 'END_FILESIZE'
+                                           || $field[0] eq "${xmleb}END_FILESIZE"
+                                           || ! $_ );
+                                if (   $field[0] ne 'END_FILESIZE'
+                                        && $field[0] ne "${xmleb}END_FILESIZE")
+                                {
+                                        error(
+"History file \"$filetoread\" is corrupted (End of section FILESIZE not found).\nRestore a recent backup of this file (data for this month will be restored to backup date), remove it (data for month will be lost), or remove the corrupted section in file (data for at least this section will be lost).","","",1
+                                        );
+                                }
+                                if ($Debug) {
+                                        debug(
+" End of FILESIZE section ($count entries, $countloaded loaded)"
+                                        );
+                                }
+                                delete $SectionsToLoad{'filesize'};
+                                if ( !scalar %SectionsToLoad ) {
+                                        debug(" Stop reading history file. Got all we need.");
+                                        last;
+                                }
+                                next;
+                        }
+
 			# BEGIN_MISC
 			if ( $field[0] eq 'BEGIN_MISC' ) {
 				if ($Debug) { debug(" Begin of MISC section"); }
@@ -6340,6 +6429,9 @@ sub Save_History {
 		print HISTORYTMP "${xmlrb}POS_SESSION${xmlrs}";
 		$PosInFile{"session"} = tell HISTORYTMP;
 		print HISTORYTMP "$spacebar${xmlre}\n";
+                print HISTORYTMP "${xmlrb}POS_FILESIZE${xmlrs}";
+                $PosInFile{"filesize"} = tell HISTORYTMP;
+                print HISTORYTMP "$spacebar${xmlre}\n";
 		print HISTORYTMP "${xmlrb}POS_SIDER${xmlrs}";
 		$PosInFile{"sider"} = tell HISTORYTMP;
 		print HISTORYTMP "$spacebar${xmlre}\n";
@@ -6870,6 +6962,25 @@ sub Save_History {
 		}
 		print HISTORYTMP "${xmleb}END_SESSION${xmlee}\n";
 	}
+        if ($sectiontosave eq 'filesize')
+        {   # This section must be saved after VISITOR section is read
+                print HISTORYTMP "\n";
+                if ($xml) {
+                        print HISTORYTMP "<section id='$sectiontosave'><comment>\n";
+                }
+                print HISTORYTMP "# Payload Range - Payload Frequency\n";
+                $ValueInFile{$sectiontosave} = tell HISTORYTMP;
+                print HISTORYTMP "${xmlbb}BEGIN_FILESIZE${xmlbs}"
+                  . ( scalar keys %_filesize )
+                  . "${xmlbe}\n";
+                foreach ( keys %_filesize) {
+                        print HISTORYTMP "${xmlrb}$_${xmlrs}"
+                          . int( $_filesize{$_} )
+                          . "${xmlre}\n";
+                }
+                print HISTORYTMP "${xmleb}END_FILESIZE${xmlee}\n";
+
+        }
 	if ( $sectiontosave eq 'sider' )
 	{    # This section must be saved after VISITOR section is read
 		print HISTORYTMP "\n";
@@ -7746,6 +7857,7 @@ sub Init_HashArray {
 
 	# Reset all hash arrays with name beginning by _
 	%_session     = %_browser_h   = %_browser_p   = ();
+        %_filesize = ();
 	%_domener_p   = %_domener_h   = %_domener_k = %_errors_h = %_errors_k = ();
 	%_filetypes_h = %_filetypes_k = %_filetypes_gz_in = %_filetypes_gz_out = ();
 	%_host_p = %_host_h = %_host_k = %_host_l = %_host_s = %_host_u = ();
@@ -8093,7 +8205,7 @@ sub Format_Bytes {
 
 # Do not use exp/log function to calculate 1024power, function make segfault on some unix/perl versions
 	if ( $bytes >= ( $fudge << 40 ) ) {
-		return sprintf( "%.2f", $bytes / 1099511627776 ) . " $Message[179]";
+		return sprintf( "%.2f", $bytes / 1099511627776 ) . " $Message[180]";
 	}
 	if ( $bytes >= ( $fudge << 30 ) ) {
 		return sprintf( "%.2f", $bytes / 1073741824 ) . " $Message[110]";
@@ -8378,7 +8490,6 @@ sub BuildKeyList {
 			3
 		);
 	}
-	delete $hashforselect->{0};
 	delete $hashforselect->{ ''
 	  }; # Those is to protect from infinite loop when hash array has an incorrect null key
 	my $count = 0;
@@ -8549,7 +8660,7 @@ sub PrintCLIHelp{
 		'browsers',       'domains', 'operating_systems', 'robots',
 		'search_engines', 'worms'
 	);
-	print "----- $PROG $VERSION (c) 2000-2018 Laurent Destailleur -----\n";
+	print "----- $PROG $VERSION (c) 2000-2023 Laurent Destailleur -----\n";
 	print
 "AWStats is a free web server logfile analyzer to show you advanced web\n";
 	print "statistics.\n";
@@ -8782,6 +8893,15 @@ sub HTMLShowFormFilter {
 		if ( $QueryString =~ /(^|&|&amp;)framename=(\w+)/i ) {
 			print "<input type=\"hidden\" name=\"framename\" value=\"$2\" />\n";
 		}
+                if ( $QueryString =~ /(^|&|&amp;)databasebreak=(\w+)/i) {
+                        print "<input type=\"hidden\" name=\"databasebreak\" value=\"$2\" />\n";
+                }
+                if ( $QueryString =~ /(^|&|&amp;)day=(\d\d)/i) {
+                        print "<input type=\"hidden\" name=\"day\" value=\"$2\" />\n";
+                }
+                if ( $QueryString =~ /(^|&|&amp;)hour=(\d\d)/i) {
+                        print "<input type=\"hidden\" name=\"hour\" value=\"$2\" />\n";
+                }
 		print
 "<input type=\"submit\" value=\" $Message[115] \" class=\"aws_button\" /></td>\n";
 		print "<td> &nbsp; </td>";
@@ -10004,13 +10124,13 @@ sub HTMLTopBanner{
 			print "<select class=\"aws_formfield\" name=\"databasebreak\">\n";
 			print "<option"
 			  . ( $DatabaseBreak eq "month" ? " selected=\"selected\"" : "" )
-			  . " value=\"month\">Monthly</option>\n";
+			  . " value=\"month\">$Message[5]</option>\n";
 			print "<option"
 			  . ( $DatabaseBreak eq "day" ? " selected=\"selected\"" : "" )
-			  . " value=\"day\">Daily</option>\n";
+			  . " value=\"day\">$Message[4]</option>\n";
 			print "<option"
 			  . ( $DatabaseBreak eq "hour" ? " selected=\"selected\"" : "" )
-			  . " value=\"hour\">Hourly</option>\n";
+			  . " value=\"hour\">$Message[187]</option>\n";
 			print "</select>\n";
 
 			print "<select class=\"aws_formfield\" name=\"month\">\n";
@@ -10059,8 +10179,8 @@ sub HTMLTopBanner{
 				if (!$HourRequired) {
 					$HourRequired = $nowhour; 
 				}
-				print "<select class=\"aws_formfield\" name=\"day\">\n";
-				foreach ( 1 .. 31 ) {
+				print "<select class=\"aws_formfield\" name=\"hour\">\n";
+				foreach ( 0 .. 23 ) {
 					print "<option"
 					  . ( $HourRequired eq "$_" ? " selected=\"selected\"" : "" )
 					  . " value=\"$_\">$_</option>\n";
@@ -10301,6 +10421,12 @@ sub HTMLMenu{
 "<a href=\"$linkanchor#sessions\"$targetpage>$Message[117]</a>";
 				print( $frame? "</td></tr>\n" : " &nbsp; " );
 			}
+                        if ($ShowFileSizesStats) {
+                                print ( $frame? "<tr><td class=\"awsm\">" : "" );
+                                print
+"<a href=\"$linkanchor#filesizes\"$targetpage>$Message[186]</a>";
+                                print ( $frame? "</td></tr>\n" : " &nbsp; ");
+                        }
 			if ($ShowFileTypesStats && $LevelForFileTypesDetection > 0) {
 				print( $frame? "<tr><td class=\"awsm\">" : "" );
 				print
@@ -10772,6 +10898,85 @@ sub HTMLMainFileType{
 	&tab_end();
 }
 
+#------------------------------------------------------------------------------
+# Function:     Prints the File Size Table
+# Parameters:   _
+# Input:        _
+# Output:       HTML
+# Return:       -
+#------------------------------------------------------------------------------
+sub HTMLMainFileSize{
+        if ($Debug) { debug("ShowFileSizesStats",2); }
+        my $FirstTime = 0;
+        my $LastTime  = 0;
+        foreach my $key ( keys %FirstTime ) {
+                my $keyqualified = 0;
+                if ( $MonthRequired eq 'all' ) { $keyqualified = 1; }
+                if ( $key =~ /^$YearRequired$MonthRequired/ ) { $keyqualified = 1; }
+                if ($keyqualified) {
+                        if ( $FirstTime{$key}
+                                && ( $FirstTime == 0 || $FirstTime > $FirstTime{$key} ) )
+                        {
+                                $FirstTime = $FirstTime{$key};
+                        }
+                        if ( $LastTime < ( $LastTime{$key} || 0 ) ) {
+                                $LastTime = $LastTime{$key};
+                        }
+                }
+        }
+
+        my $inicio = 0;
+        my $fim = 0;
+        if ($FirstTime =~ /$regdate/o) { $inicio = Time::Local::timelocal($6, $5, $4, $3, $2-1, $1); }
+        if ($LastTime =~ /$regdate/o) { $fim = Time::Local::timelocal($6, $5, $4, $3, $2-1, $1); }
+        my $periodo = $fim - $inicio;
+        my $number_of_requests = 0;
+        my $request_frequency_average = 0;
+        foreach my $key (@PayloadRange) {
+                $number_of_requests += $_filesize{$key};
+        }
+        if ($periodo) { $request_frequency_average = $number_of_requests/$periodo;}
+        else { $request_frequency_average = 0 };
+        print "$Center<a name=\"filesizes\">&nbsp;</a><br />\n";
+        my $title = "$Message[186]";
+        &tab_head($title, 19, 0, 'filesizes');
+        my $Totals = 0;
+        my $average_s = 0;
+        foreach (@PayloadRange) {
+                $average_s += ( $_filesize{$_} || 0 ) * $PayloadAverage{$_};
+                $Totals += $_filesize{$_} || 0;
+        }
+        if ($Totals) { $average_s = int($average_s / $Totals); }
+        else { $average_s = '?'; }
+        print "<tr bgcolor=\"#$color_TableBGRowTitle\"".Tooltip(1)."><th>$Message[182]: $number_of_requests - $Message[183]: $periodo $Message[184] - $Message[185]: ".sprintf ("%.6f",$request_frequency_average)."</th><th bgcolor=\"#$color_s\" width=\"80\">$Message[181]</th><th bgcolor=\"#$color_s\" width=\"80\">$Message[57]</th><th bgcolor=\"#$color_s\" width=\"80\">$Message[15]</th></tr>\n";
+        my $total_s = 0;
+        my $count = 0;
+        foreach my $key (@PayloadRange) {
+                my $p = 0;
+                my $f = 0;
+                if ($Totals) { $p = int($_filesize{$key} / $Totals * 1000) / 10; }
+                if ($periodo) { $f = $_filesize{$key} / $periodo; }
+                $total_s += $_filesize{$key} || 0;
+                print "<tr><td class=\"aws\">$key</td>";
+                print "<td>".($_filesize{$key}? sprintf("%.5f",$f):"&nbsp;")."</td>";
+                print "<td>".($_filesize{$key}? $_filesize{$key}:"&nbsp;")."</td>";
+                print "<td>".($_filesize{$key}? "$p %":"&nbsp;")."</td>";
+                print "</tr>\n";
+                $count++;
+        }
+        my $rest_s = $TotalVisits-$total_s;
+        if ($rest_s > 0) {
+                my $p = 0;
+                if ($TotalVisits) { $p = int($rest_s / $TotalVisits * 1000) / 10; }
+                print "<tr".Tooltip(20)."><td class=\"aws\"><span style=\"color: #$color_other\">$Message[0]</span></td>";
+                print "<td>$rest_s</td>";
+                print "<td>".($rest_s?"$p %":"&nbsp;")."</td>";
+                print "</tr>\n";
+        }
+
+        &tab_end();
+}
+
 #------------------------------------------------------------------------------
 # Function:     Prints the Browser Detail frame or static page
 # Parameters:   _
@@ -18124,7 +18329,7 @@ if ( $UpdateStats && $FrameName ne 'index' && $FrameName ne 'mainleft' )
 	my $regnotie          = qr/webtv|omniweb|opera/i;
 	my $regnotnetscape    = qr/gecko|compatible|opera|galeon|safari|charon/i;
 	my $regnotfirefox     = qr/flock/i;
-	my $regnotsafari      = qr/android|arora|chrome|shiira/i;
+	my $regnotsafari      = qr/android|arora|chrome|shiira|webpositive/i;
 	my $regreferer        = qr/^(\w+):\/\/([^\/:]+)(:\d+|)/;
 	my $regreferernoquery = qr/^([^$URLQuerySeparators]+)/;
 	my $reglocal          = qr/^(www\.|)$sitewithoutwww/i;
@@ -20243,6 +20448,12 @@ s/^(cache|related):[^\+]+//
 			  int( $field[$pos_size] );}    #Count accesses for page (kb)
 		}
 
+                # Check size frequency
+                #---------------------
+                if ( $pos_size >= 0 ) {
+                        $_filesize{ GetBandwidthRange(int($field[$pos_size])) }++;
+                }
+
 		# Analyze: Extra
 		#---------------
 		foreach my $extranum ( 1 .. @ExtraName - 1 ) {
@@ -20501,7 +20712,7 @@ s/^(cache|related):[^\+]+//
 				}
 			}
 			if ( !$rowkeyok ) { next; }    # End for this section
-			if ( !$rowkeyval ) { $rowkeyval = 'Failed to extract key'; }
+			if ( !defined($rowkeyval) ) { $rowkeyval = 'Failed to extract key'; }
 			if ($Debug) { debug( "  Key val found: $rowkeyval", 5 ); }
 
 			# Apply function on $rowkeyval
@@ -21345,7 +21556,7 @@ if ( scalar keys %HTMLOutput ) {
 		# BY FILE SIZE
 		#-------------------------
 		if ($ShowFileSizesStats) {
-			# TODO
+			&HTMLMainFileSize();
 		}
 		
 		# BY DOWNLOADS
diff --git a/wwwroot/cgi-bin/lang/awstats-de.txt b/wwwroot/cgi-bin/lang/awstats-de.txt
index bd0783b..08cdc02 100644
--- a/wwwroot/cgi-bin/lang/awstats-de.txt
+++ b/wwwroot/cgi-bin/lang/awstats-de.txt
@@ -180,3 +180,12 @@ message175=Chrome Versionen
 message176=Konqueror Versionen
 message177=.
 message178=Downloads
+message179=CSV exportieren
+message180=TB
+message181=Rate [/s]
+message182=Anzahl der Requests
+message183=Zeitraum
+message184=s
+message185=Durchschnittliche Requestrate [/s]
+message186=Requestgr&ouml;&szlig;e
+message187=Stunde
diff --git a/wwwroot/cgi-bin/lang/awstats-dk.txt b/wwwroot/cgi-bin/lang/awstats-dk.txt
index f0f731d..10a0431 100644
--- a/wwwroot/cgi-bin/lang/awstats-dk.txt
+++ b/wwwroot/cgi-bin/lang/awstats-dk.txt
@@ -1,6 +1,5 @@
-# Danish message file by Ole Stanstrup (revised and amended by soren@dacafe.com)
+# Danish message file by Michael Andreassen (revised michael@the-exterminator.dk)
 # $Revision$ - $Date$
-# Danish message file Update by Michael Andreassen (revised michael@the-exterminator.dk)
 PageCode=iso-8859-1
 message0=Ukendt
 message1=Ukendt (uopl&oslash;st IP-adresse)
@@ -8,7 +7,7 @@ message2=Andre
 message3=Se detaljer
 message4=Dag
 message5=M&aring;ned
-message6=�r
+message6=&Aring;r
 message7=Statistik for
 message8=F&oslash;rste bes&oslash;g
 message9=Sidste bes&oslash;g
@@ -175,3 +174,20 @@ message169=Lavet af
 message170=plugins
 message171=Regioner
 message172=Byer
+message173=Opera versioner
+message174=Safari versioner
+message175=Chrome versioner
+message176=Konqueror versioner
+message177=,
+message178=Downloads
+message179=Eksport CSV
+message180=TB
+message181=Frekvens[/s]
+message182=Antal anmodninger
+message183=Periode
+message184=s
+message185=Anmod om gennemsnitsfrekvens [/s]
+message186=Anmodningsst&oslash;rrelse
+message187=M&aring;nedlige
+message188=Daglige
+message189=Hver time
diff --git a/wwwroot/cgi-bin/lang/awstats-en.txt b/wwwroot/cgi-bin/lang/awstats-en.txt
index f8f4d56..ee3d9c7 100644
--- a/wwwroot/cgi-bin/lang/awstats-en.txt
+++ b/wwwroot/cgi-bin/lang/awstats-en.txt
@@ -180,4 +180,12 @@ message175=Chrome versions
 message176=Konqueror versions
 message177=,
 message178=Downloads
-message179=TB
\ No newline at end of file
+message179=Export CSV
+message180=TB
+message181=Frequency[/s]
+message182=Number of requests
+message183=Period
+message184=s
+message185=Request average frequency [/s]
+message186=Request size
+message187=Hour
diff --git a/wwwroot/cgi-bin/lang/awstats-hu.txt b/wwwroot/cgi-bin/lang/awstats-hu.txt
index 12c9315..949f1ad 100644
--- a/wwwroot/cgi-bin/lang/awstats-hu.txt
+++ b/wwwroot/cgi-bin/lang/awstats-hu.txt
@@ -1,86 +1,86 @@
 # Hungarian message file (gabor.funk@hunetkft.hu)
 # based on $Revision$ - $Date$
-PageCode=iso-8859-2
+PageCode=utf-8
 message0=Ismeretlen
 message1=Ismeretlen (feloldatlan ip)
 message2=Egyebek
-message3=R�szletek
+message3=Részletek
 message4=Nap
-message5=H�nap
-message6=�v
+message5=Hónap
+message6=Év
 message7=Statisztikai alap
-message8=Els� l�togat�s
-message9=Utols� l�togat�s
-message10=L�togat�sok sz�ma
-message11=Egyedi l�togat�
-message12=L�togat�s
-message13=K�l�nb�z� kulcssz�
-message14=Keres�s
-message15=Sz�zal�k
+message8=Első látogatás
+message9=Utolsó látogatás
+message10=Látogatások száma
+message11=Egyedi látogató
+message12=Látogatás
+message13=Különböző kulcsszó
+message14=Keresés
+message15=Százalék
 message16=Forgalom
-message17=Tartom�nyok-Orsz�gok
-message18=L�togat�k
+message17=Tartományok-Országok
+message18=Látogatók
 message19=Oldalak/URL
-message20=�r�nk�nti bont�s
-message21=B�ng�sz�k
+message20=Óránkénti bontás
+message21=Böngészők
 message22=
-message23=Hivatkoz�sok
-message24=Nem friss�tett (L�sd 'Build/Update' fejezet az awstats_setup.html oldalon)
-message25=L�togat�k tartom�nyok/orsz�gok szerint
+message23=Hivatkozások
+message24=Nem frissített (Lásd 'Build/Update' fejezet az awstats_setup.html oldalon)
+message25=Látogatók tartományok/országok szerint
 message26=host
 message27=oldal
-message28=k�l�nb�z� oldalak-url
-message29=let�lt�tt oldalak
-message30=Egy�b szavak
-message31=Nem tal�lt oldalak
-message32=HTTP st�tuszk�dok
-message33=Netscape verzi�k
-message34=IE verzi�k
-message35=Utols� friss�t�s
-message36=Csatlakoz�sok sz�rmaz�si helyei
-message37=Sz�rmaz�si hely
-message38=Direkt el�r�s / k�nyvjelz�
-message39=Ismeretlen eredet�
-message40=Internet keres�kb�l
-message41=Linkek k�ls� oldalakr�l (a keres�ket kiv�ve)
-message42=Bels� linkek (oldalon bel�l)
-message43=Keres�motorokban haszn�lt kifejez�sek
-message44=Keres�motorokban haszn�lt kulcsszavak
-message45=Feloldatlan IP c�mek
-message46=Ismeretlen OS (Hivatkoz� mez�)
-message47=Ig�nyelt, de nem tal�lt URL-ek (HTTP code 404)
-message48=IP c�m
-message49=Hib�s&nbsp;k�r�sek
-message50=Ismeretlen b�ng�sz�k (Hivatkoz� mez�)
-message51=L�togat� robot
-message52=l�togat�s/l�togat�
-message53=Robot/Spider l�togat�k
-message54=Ingyenes, val�sidej� napl�f�jl analiz�tor fejlett web statisztik�k k�sz�t�s�hez
+message28=különböző oldalak-url
+message29=letöltött oldalak
+message30=Egyéb szavak
+message31=Nem talált oldalak
+message32=HTTP státuszkódok
+message33=Netscape verziók
+message34=IE verziók
+message35=Utolsó frissítés
+message36=Csatlakozások származási helyei
+message37=Származási hely
+message38=Direkt elérés / könyvjelző
+message39=Ismeretlen eredetű
+message40=Internet keresőkből
+message41=Linkek külső oldalakról (a keresőket kivéve)
+message42=Belső linkek (oldalon belül)
+message43=Keresőmotorokban használt kifejezések
+message44=Keresőmotorokban használt kulcsszavak
+message45=Feloldatlan IP címek
+message46=Ismeretlen OS (Hivatkozó mező)
+message47=Igényelt, de nem talált URL-ek (HTTP code 404)
+message48=IP cím
+message49=Hibás&nbsp;kérések
+message50=Ismeretlen böngészők (Hivatkozó mező)
+message51=Látogató robot
+message52=látogatás/látogató
+message53=Robot/Spider látogatók
+message54=Ingyenes, valósidejű naplófájl analizátor fejlett web statisztikák készítéséhez
 message55=/
 message56=Oldalak
-message57=Tal�latok
-message58=Verzi�k
-message59=Oper�ci�s Rendszerek
+message57=Találatok
+message58=Verziók
+message59=Operációs Rendszerek
 message60=Jan
 message61=Feb
-message62=M�r
-message63=�pr
-message64=M�j
-message65=J�n
-message66=J�l
+message62=Már
+message63=Ápr
+message64=Máj
+message65=Jún
+message66=Júl
 message67=Aug
 message68=Szept
 message69=Okt
 message70=Nov
 message71=Dec
-message72=Navig�ci�
-message73=F�jlt�pus
-message74=Friss�t�s
-message75=Adatmennyis�g
-message76=Vissza a f�oldalra
+message72=Navigáció
+message73=Fájltípus
+message74=Frissítés
+message75=Adatmennyiség
+message76=Vissza a főoldalra
 message77=TOP
 message78=yyyy mmm dd - HH:MM
-message79=Sz�r�
+message79=Szűrő
 message80=Teljes lista
 message81=Host-ok
 message82=ismert
@@ -92,85 +92,100 @@ message87=Sze
 message88=Cs
 message89=P
 message90=Szo
-message91=Heti bont�s
+message91=Heti bontás
 message92=Ki
 message93=Mikor
-message94=Bejelentkezett felhaszn�l�k
+message94=Bejelentkezett felhasználók
 message95=Min
-message96=�tlag
+message96=Átlag
 message97=Max
-message98=Web t�m�r�t�s
-message99=Nyert s�vsz�less�g
-message100=T�m�r�t�s bekapcsolva
-message101=T�m�r�t�s eredm�nye
-message102=�sszesen
-message103=k�l�nb�z� kifejez�s
-message104=Bel�p� oldalak
-message105=K�d
-message106=�tlagm�ret
-message107=Kapcsol�d�s h�rcsoportb�l
+message98=Web tömörítés
+message99=Nyert sávszélesség
+message100=Tömörítés bekapcsolva
+message101=Tömörítés eredménye
+message102=Összesen
+message103=különböző kifejezés
+message104=Belépő oldalak
+message105=Kód
+message106=Átlagméret
+message107=Kapcsolódás hírcsoportból
 message108=KB
 message109=MB
 message110=GB
 message111=Grabber
 message112=Igen
 message113=Nem
-message114=inform�ci�k
+message114=információk
 message115=OK
-message116=Kil�p� oldalak
-message117=L�togat�sok hossza
-message118=Ablak bez�r�sa
-message119=B�jt
-message120=Kifejez�sek&nbsp;keres�se
-message121=Kulcsszavak&nbsp;keres�se
-message122=k�l�nb�z� hivatkoz� keres�motor
-message123=k�l�nb�z� hivatkoz� oldal
-message124=Egy�b kifejez�sek
-message125=Egy�b, vagy "Anonymous" l�togat�k
-message126=Hivatkoz� keres�motorok
-message127=Hivatkoz� oldalak
-message128=�sszes�t�s
-message129=Pontos �rt�k nem �ll rendelkez�sre "�ves" n�zetben
-message130=Adat �rt�k t�mb�k
-message131=K�ld� E-Mail c�me
-message132=Fogad� E-Mail c�me
-message133=Statisztikai id�szak
+message116=Kilépő oldalak
+message117=Látogatások hossza
+message118=Ablak bezárása
+message119=Bájt
+message120=Kifejezések&nbsp;keresése
+message121=Kulcsszavak&nbsp;keresése
+message122=különböző hivatkozó keresőmotor
+message123=különböző hivatkozó oldal
+message124=Egyéb kifejezések
+message125=Egyéb, vagy "Anonymous" látogatók
+message126=Hivatkozó keresőmotorok
+message127=Hivatkozó oldalak
+message128=Összesítés
+message129=Pontos érték nem áll rendelkezésre "éves" nézetben
+message130=Adat érték tömbök
+message131=Küldő E-Mail címe
+message132=Fogadó E-Mail címe
+message133=Statisztikai időszak
 message134=Extra/Marketing
-message135=K�perny�m�retek
-message136=Worm/Virus k�r�sek
-message137=Hozz�ad�s a kedvencekhez (becsl�s)
-message138=Napi bont�s
+message135=Képernyőméretek
+message136=Worm/Virus kérések
+message137=Hozzáadás a kedvencekhez (becslés)
+message138=Napi bontás
 message139=Vegyes
-message140=B�ng�sz�k Java t�mogat�ssal
-message141=B�ng�sz�k Macromedia Director t�mogat�ssal
-message142=B�ng�sz�k Flash t�mogat�ssal
-message143=B�ng�sz�k Real audio t�mogat�ssal
-message144=B�ng�sz�k Quicktime audio t�mogat�ssal
-message145=B�ng�sz�k Windows Media audio t�mogat�ssal
-message146=B�ng�sz�k PDF t�mogat�ssal
-message147=SMTP hibak�dok
-message148=Orsz�gok
+message140=Böngészők Java támogatással
+message141=Böngészők Macromedia Director támogatással
+message142=Böngészők Flash támogatással
+message143=Böngészők Real audio támogatással
+message144=Böngészők Quicktime audio támogatással
+message145=Böngészők Windows Media audio támogatással
+message146=Böngészők PDF támogatással
+message147=SMTP hibakódok
+message148=Országok
 message149=Levelek
-message150=M�ret
-message151=Els�
-message152=Utols�
-message153=Sz�r� (kiz�r�s)
-message154=Az itt list�zott speci�lis HTTP statuszk�dot gener�lt k�r�sek forgalma csak a "nem n�zett forgalom" alatt szerepel, m�s statisztik�ba nincs belesz�m�tva.
+message150=Méret
+message151=Első
+message152=Utolsó
+message153=Szűrő (kizárás)
+message154=Az itt listázott speciális HTTP statuszkódot generált kérések forgalma csak a "nem nézett forgalom" alatt szerepel, más statisztikába nincs beleszámítva.
 message155=Cluster
-message156=Az itt list�zott robotok forgalma csak a "nem n�zett forgalom" alatt szerepel, m�s statisztik�ba nincs belesz�m�tva
-message157=A pluszjel ut�ni sz�mok a sikeres "robots.txt" f�jllek�r�seket jelentik.
-message158=Az itt list�zott f�rgek forgalma csak a "nem n�zett forgalom" alatt szerepel, m�s statisztik�ba nincs belesz�m�tva.
-message159=A "nem n�zett forgalom" tartalmazza a robotok, f�rgek �ltal lek�rt oldalakat illetve a speci�lis HTTP statuszk�dot gener�lt k�r�sek forgalm�t.
-message160=N�zett forgalom
-message161=Nem n�zett forgalom
-message162=Havi bont�s
-message163=F�rgek
-message164=k�l�nf�le f�reg
-message165=Sikeresen elk�ld�tt levelek
-message166=Sikertelen/visszapattan� levelek
-message167=�rz�keny tartalom
+message156=Az itt listázott robotok forgalma csak a "nem nézett forgalom" alatt szerepel, más statisztikába nincs beleszámítva
+message157=A pluszjel utáni számok a sikeres "robots.txt" fájllekéréseket jelentik.
+message158=Az itt listázott férgek forgalma csak a "nem nézett forgalom" alatt szerepel, más statisztikába nincs beleszámítva.
+message159=A "nem nézett forgalom" tartalmazza a robotok, férgek által lekért oldalakat illetve a speciális HTTP statuszkódot generált kérések forgalmát.
+message160=Nézett forgalom
+message161=Nem nézett forgalom
+message162=Havi bontás
+message163=Férgek
+message164=különféle féreg
+message165=Sikeresen elküldött levelek
+message166=Sikertelen/visszapattanó levelek
+message167=Érzékeny tartalom
 message168=Javascript kikapcsolva
-message169=K�sz�tette az
-message170=be�p�l� modulok
-message171=R�gi�k
-message172=V�rosok
\ No newline at end of file
+message169=Készítette az
+message170=beépülő modulok
+message171=Régiók
+message172=Városok
+message173=Opera verziók
+message174=Safari verziók
+message175=Chrome verziók
+message176=Konqueror verziók
+message177=,
+message178=Letöltések
+message179=CSV export
+message180=TB
+message181=Gyakoriság (másodpercenként)
+message182=Kérések száma
+message183=Időtartam
+message184=s
+message185=Kérések átlagos gyakorisága (másodpercenként)
+message186=Kérések mérete
+message187=Óra
diff --git a/wwwroot/cgi-bin/lang/awstats-ru.txt b/wwwroot/cgi-bin/lang/awstats-ru.txt
index e0e7fbe..67b8776 100644
--- a/wwwroot/cgi-bin/lang/awstats-ru.txt
+++ b/wwwroot/cgi-bin/lang/awstats-ru.txt
@@ -8,7 +8,7 @@ message3=Показать подробности
 message4=День
 message5=Месяц
 message6=Год
-message7=Статистика за
+message7=Статистика для
 message8=Первый визит
 message9=Последний визит
 message10=Количество визитов
@@ -29,7 +29,7 @@ message24=Необновленный (Смотрите 'Создать/Обно
 message25=Посетители домены/страны
 message26=хосты
 message27=страницы
-message28=Различные url
+message28=различные страницы-url
 message29=Просмотров
 message30=Остальные слова
 message31=Страницы не найдены
@@ -138,7 +138,7 @@ message133=Отчетный период
 message134=Дополнительно/Маркетинг
 message135=Разрешение экрана
 message136=Атаки вредоностных программ
-message137=Добавить в закладки (предполагаемый)
+message137=Успешные хиты для favicon.ico
 message138=День месяца
 message139=Смешанные
 message140=Браузеры с поддержкой Java support
@@ -174,3 +174,11 @@ message169=Создано
 message170=плагины
 message171=Регионы
 message172=Города
+message173=Версии Opera
+message174=Версии Safari
+message175=Версии Chrome
+message176=Версии Konqueror
+message177=,
+message178=Скачивания
+message179=Export CSV
+message180=TБ
diff --git a/wwwroot/cgi-bin/lang/awstats-tg.txt b/wwwroot/cgi-bin/lang/awstats-tg.txt
new file mode 100644
index 0000000..1c3208a
--- /dev/null
+++ b/wwwroot/cgi-bin/lang/awstats-tg.txt
@@ -0,0 +1,184 @@
+# Tajik message file (Translated by Victor Ibragimov. For more info, please, contact victor.ibragimov@gmail.com)
+# $Revision$ - $Date$
+PageCode=utf-8
+message0=Номаълум
+message1=Номаълум (нишонии IP-и беқарор)
+message2=Дигар
+message3=Нишон додани тафсилот
+message4=Рӯз
+message5=Моҳ
+message6=Сол
+message7=Омори сомона
+message8=Ташрифи нахустин
+message9=Боздиди охирин
+message10=Шумораи боздидҳо
+message11=Меҳмонони беҳамто
+message12=Боздид
+message13=калимаҳои калидии гуногун
+message14=Ҷустуҷӯ
+message15=Дарсад
+message16=Ҷараён
+message17=Доменҳо/Кишварҳо
+message18=Меҳмонон
+message19=Нишонии саҳифа
+message20=Соатҳо
+message21=Браузерҳо
+message22=
+message23=Истинодкунанда
+message24=Навнашуда (Ба 'Эҷод кардан/Навсозӣ кардан' дар саҳифаи awstats_setup.html нигаред)
+message25=Меҳмонони доменҳо/кишварҳо
+message26=мизбон
+message27=саҳифа
+message28=нишониҳои гуногун (URL)
+message29=Тамошоҳо
+message30=Калимаҳои дигар
+message31=Саҳифаҳое, ки  ёфт нашуданд
+message32=Рамзҳои вазъияти HTTP
+message33=Гунаҳои Netscape
+message34=Гунаҳои IE
+message35=Навсозии охирин
+message36=Пайваст бо сомона аз
+message37=Асл
+message38=Нишонии бевосита / Хатбарак / Пайванд ба почтаи электронӣ...
+message39=Асли номаълум
+message40=Истинодҳо аз низомҳои ҷустуҷӯии интернетӣ
+message41=Истинод аз саҳифаи берунӣ (сомонаҳои дигар, ба ғайр аз низомҳои ҷустуҷӯӣ)
+message42=Истинод аз саҳифаи дохилӣ (саҳифаҳои дигар дар ҳамон сомона)
+message43=Ибораҳои калидие, ки бо низомҳои ҷустуҷӯи истифода мешаванд
+message44=Калимаҳои калидие, ки бо низомҳои ҷустуҷӯи истифода мешаванд
+message45=Нишонии IP-и беқарор
+message46=Низомҳои омилии номаълум (фазои useragent)
+message47=Пайвандҳои URL-и дархостшудае, ки ёфт нашуданд (HTTP бо рамзи 404)
+message48=Нишонии IP
+message49=Хатоҳои &nbsp;боздидҳо
+message50=Браузерҳои номаълум (фазои useragent)
+message51=роботҳои гуногун
+message52=боздид/меҳмон
+message53=Меҳмонони роботҳо/тортанак
+message54=Таҳлилкунандаи файлҳои сабти рӯйдодҳои ҷорӣ барои омори ботафсили сомона (Ройгон аст)
+message55=аз
+message56=Саҳифаҳо
+message57=Боздидҳо
+message58=Гунаҳо
+message59=Низомҳои омилӣ
+message60=Янв
+message61=Фев
+message62=Мар
+message63=Апр
+message64=Май
+message65=Июн
+message66=Июл
+message67=Авг
+message68=Сен
+message69=Окт
+message70=Ноя
+message71=Дек
+message72=Паймоиш
+message73=Навъи файл
+message74=Ҳозир нав кардан
+message75=Ҳаҷми қобилияти интиқол
+message76=Бозгашт ба саҳифаи асосӣ
+message77=Роиҷ
+message78=dd mmm yyyy - HH:MM
+message79=Поло
+message80=Рӯйхати пурра
+message81=Мизбонҳо
+message82=Маълум
+message83=Роботҳо
+message84=Яшб
+message85=Дшб
+message86=Сшб
+message87=Чшб
+message88=Пшб
+message89=Ҷум
+message90=Шнб
+message91=Рӯзи ҳафта
+message92=Кӣ
+message93=Кай
+message94=Корбарони саҳеҳгардонидашуда
+message95=Ҳадди ақал
+message96=Миёна
+message97=Ҳадди аксар
+message98=Фишурдасозии сомона
+message99=Ҳаҷми қобилияти интиқоли сарфашуда
+message100=Фишурдасозӣ фаъол аст
+message101=Натиҷаи фишурдасозӣ
+message102=Умумӣ
+message103=ибораҳои калидии гуногун
+message104=Воридшавӣ
+message105=Рамз
+message106=Андозаи миёна
+message107=Истинодҳо аз гурӯҳҳои ахборӣ
+message108=КБ
+message109=МБ
+message110=ГБ
+message111=Ковишгар
+message112=Ҳа
+message113=Не
+message114=Иттилоъ
+message115=Хуб
+message116=Хориҷшавӣ
+message117=Давомнокии боздидҳо
+message118=Пӯшидани равзана
+message119=Байтҳо
+message120=Ибораҳои калидӣ ва&nbsp;ҷустуҷӯӣ
+message121=Калимаҳои калидӣ ва&nbsp;ҷустуҷӯӣ
+message122=низомҳои ҷустуҷӯии гуногун бо истинод ба сомонаи ҷорӣ
+message123=сомонаҳои гуногун бо истинод ба сомонаи ҷорӣ
+message124=Ибораҳои дигар
+message125=Вурудҳои дигар (ва/ё корбарони номаълум)
+message126=Низомҳои ҷустуҷӯие, ки истинод мекунанд
+message127=Сомонаҳое, ки истинод мекунанд
+message128=Ҷамъбаст
+message129=Қимати дақиқ дар навъи 'Year' дастнорас аст
+message130=Миқдори бисёри додаҳо
+message131=Фиристандаи почтаи электронӣ (EMail)
+message132=Қабулкунандаи почтаи электронӣ (EMail)
+message133=Давраи гузоришдиҳӣ
+message134=Иловагӣ/Бозоршиносӣ
+message135=Андозҳои экран
+message136=Ҳамлаҳои барномаҳои зараровар
+message137=Боздидҳои муваффақ дар favicon.ico
+message138=Рӯзи моҳ
+message139=Ҳамаҷиҳата
+message140=Браузерҳо бо дастгирии «Java Support»
+message141=Браузерҳо бо дастгирии «Macromedia Director»
+message142=Браузерҳо бо дастгирии «Flash Support»
+message143=Браузерҳо бо дастгирии «Real audio playing»
+message144=Браузерҳо бо дастгирии «Quicktime audio playing»
+message145=Браузерҳо бо дастгирии «Windows Media audio playing»
+message146=Браузерҳо бо дастгирии «PDF»
+message147=Рамзҳои хатои SMTP
+message148=Кишварҳо
+message149=Почта
+message150=Андоза
+message151=Нахустин
+message152=Охирин
+message153=Полои истисноҳо
+message154=Рамзҳое, ки дар ин ҷо нишон дода шудаанд, боздидҳо ё ҷараёнро эҷод мекунанд, аммо онҳо аз ҷониби меҳмонон намебошанд, бинобар ин онҳо ба омори боқимонда илова намешаванд.
+message155=Хӯша
+message156=Роботҳое, ки дар ин ҷо нишон дода шудаанд, боздидҳо ё ҷараёнро эҷод мекунанд, аммо онҳо аз ҷониби меҳмонон намебошанд, бинобар ин онҳо ба омори боқимонда илова намешаванд.
+message157=Шумораҳо пас аз аломати + ҳамчун боздидҳои муваффақ барои файли "robots.txt" ҳисоб мешаванд
+message158=Вирусҳое, ки дар ин ҷо нишон дода шудаанд, боздидҳо ё ҷараёнро эҷод мекунанд, аммо онҳо аз ҷониби меҳмонон намебошанд, бинобар ин онҳо ба омори боқимонда илова намешаванд.
+message159=Ҷараёни тамошоҳои носаҳеҳ ҷараёнҳои эҷодшудаеро дар бар мегирад, ки бо роботҳо, вирусҳо ё посухҳои сервер бо рамзи махсуси HTTP эҷод шудаанд.
+message160=Ҷараёни тамошоҳо
+message161=Ҷараёни тамошоҳои носаҳеҳ
+message162=Таърихи моҳ
+message163=Вирусҳо
+message164=вирусҳои гуногун
+message165=Ирсоли почта бо муваффақият иҷро шуд
+message166=Ирсоли почта иҷро нашуд
+message167=Ҳадафҳои ҳассос
+message168=JavaScript хомӯш аст
+message169=Омодакунанда
+message170=васлкунак
+message171=Минтақаҳо
+message172=Шаҳрҳо
+message173=Гунаҳои Opera
+message174=Гунаҳои Safari
+message175=Гунаҳои Chrome
+message176=Гунаҳои Konqueror
+message177=,
+message178=Боргириҳо
+message179=Export CSV
+message180=ТБ
diff --git a/wwwroot/cgi-bin/lib/browsers.pm b/wwwroot/cgi-bin/lib/browsers.pm
index fdf3dfb..e213442 100644
--- a/wwwroot/cgi-bin/lib/browsers.pm
+++ b/wwwroot/cgi-bin/lib/browsers.pm
@@ -122,6 +122,7 @@
 'webfetcher',
 'webexplorer',
 'webmirror',
+'webpositive',          # Must be before safari
 'webvcr',
 'qnx\svoyager',
 # Site grabbers
@@ -273,7 +274,6 @@
 'msie','MS Internet Explorer',
 'edge','Edge',
 'netscape','Netscape',
-
 'elinks','ELinks',
 'firebird','Firebird (Old Firefox)',
 'go!zilla','Go!Zilla',
@@ -351,6 +351,7 @@
 'webfetcher','WebFetcher',
 'webexplorer','IBM-WebExplorer',
 'webmirror','WebMirror',
+'webpositive','WebPositive',
 'webvcr','WebVCR',
 'qnx\svoyager','QNX Voyager',
 # Site grabbers
@@ -578,6 +579,7 @@
 'ncsa_mosaic','ncsa_mosaic',
 'netpositive','netpositive',
 'phoenix','phoenix',
+'webpositive','safari',
 # Site grabbers
 'grabber','grabber',
 'teleport','teleport',
diff --git a/wwwroot/cgi-bin/lib/browsers_phone.pm b/wwwroot/cgi-bin/lib/browsers_phone.pm
index 384536b..22ad5e1 100644
--- a/wwwroot/cgi-bin/lib/browsers_phone.pm
+++ b/wwwroot/cgi-bin/lib/browsers_phone.pm
@@ -24,6 +24,9 @@
 		
 #package AWSUA;
 
+# RJC added from 2021-05-05
+# baidu\sogo\.uc.UCBrowser
+
 # Relocated from main file for easier editing
 %BrowsersFamily = (
     'msie'      => 1,
@@ -124,6 +127,7 @@
 'webmirror',
 'webvcr',
 'qnx\svoyager',
+'baidu\.sogo\.uc\.UCBrowser',
 # Site grabbers
 'teleport',
 'webcapture',
@@ -734,6 +738,7 @@
 'webmirror','WebMirror',
 'webvcr','WebVCR',
 'qnx\svoyager','QNX Voyager',
+'baidu\.sogo\.uc\.UCBrowser','baidu.sogo.uc.UCBrowser',
 # Site grabbers
 'teleport','TelePort Pro',
 'webcapture','Acrobat Webcapture',
diff --git a/wwwroot/cgi-bin/lib/mime.pm b/wwwroot/cgi-bin/lib/mime.pm
index bb9aa6c..2fe1e49 100644
--- a/wwwroot/cgi-bin/lib/mime.pm
+++ b/wwwroot/cgi-bin/lib/mime.pm
@@ -126,6 +126,7 @@
 'heic',['image','i'],
 'tif',['image','i'],
 'tiff',['image','i'],
+'webp',['image','i'],
 # Document
 'ai',['document','d'],
 'doc',['document','d'],
diff --git a/wwwroot/cgi-bin/lib/operating_systems.pm b/wwwroot/cgi-bin/lib/operating_systems.pm
index eeaea1b..48f32ee 100644
--- a/wwwroot/cgi-bin/lib/operating_systems.pm
+++ b/wwwroot/cgi-bin/lib/operating_systems.pm
@@ -36,6 +36,7 @@
 'windows[_+ ]?2008', 'windows[_+ ]nt[_+ ]6\.1', # Must be before windows_nt_6
 'windows[_+ ]?2012', 'windows[_+ ]nt[_+ ]6\.2', # Must be before windows_nt_6 = windows 8
 'windows[_+ ]nt[_+ ]6\.3', # Must be before windows_nt_6 = windows 8.1 
+'windows[_+ ]nt[_+ ]11', # Windows 11
 'windows[_+ ]nt[_+ ]10', # Windows 10
 'windows[_+ ]?vista', 'windows[_+ ]nt[_+ ]6',
 'windows[_+ ]?2003','windows[_+ ]nt[_+ ]5\.2',	# Must be before windows_nt_5
@@ -56,6 +57,8 @@
 'ipad',
 'ipod',
 # Macintosh OS family
+'mac[_+ ]os[_+ ]x[_+ ]12',
+'mac[_+ ]os[_+ ]x[_+ ]11',
 'mac[_+ ]os[_+ ]x[_+ ]10[_\.]15',
 'mac[_+ ]os[_+ ]x[_+ ]10[_\.]14',
 'mac[_+ ]os[_+ ]x[_+ ]10[_\.]13',
@@ -72,8 +75,12 @@
 'mac[_+ ]?p',									# This works for macppc and mac_ppc and mac_powerpc
 'mac[_+ ]68',									# This works for mac_6800 and mac_68k
 'macweb',
+'haiku',
 'macintosh',
 # Android family
+'android[_+ ]13',       # Android 13
+'android[_+ ]12',       # Android 12
+'android[_+ ]11',       # Android 11
 'android[_+ ]10',       # Android 10
 'android[_+ ]9',        # Pie
 'android[_+ ]8',        # Oreo
@@ -177,6 +184,7 @@
 'windows[_+ ]?2008','win2008','windows[_+ ]nt[_+ ]6\.1','win7',
 'windows[_+ ]?2012','win2012','windows[_+ ]nt[_+ ]6\.2','win8',
 'windows[_+ ]nt[_+ ]6\.3','win8.1',
+'windows[_+ ]nt[_+ ]11','win11',
 'windows[_+ ]nt[_+ ]10','win10',
 'windows[_+ ]?vista','winvista','windows[_+ ]nt[_+ ]6','winvista',
 'windows[_+ ]?2003','win2003','windows[_+ ]nt[_+ ]5\.2','win2003',
@@ -200,6 +208,8 @@
 'ipad','ios_ipad', #Must be Before Mac OS Family
 'ipod','ios_ipod',  #Must be Before Mac OS Family
 # Macintosh OS family
+'mac[_+ ]os[_+ ]x[_+ ]12','macos12',
+'mac[_+ ]os[_+ ]x[_+ ]11','macos11',
 'mac[_+ ]os[_+ ]x[_+ ]10[_\.]15','macosx15',
 'mac[_+ ]os[_+ ]x[_+ ]10[_\.]14','macosx14',
 'mac[_+ ]os[_+ ]x[_+ ]10[_\.]13','macosx13',
@@ -214,7 +224,11 @@
 'mac[_+ ]os[_+ ]x[_+ ]10[_\.]4','macosx4',
 'mac[_+ ]os[_+ ]x','macosx', 'vienna', 'macosx', 'newsfire', 'macosx', 'applesyndication', 'macosx',
 'mac[_+ ]?p','macintosh','mac[_+ ]68','macintosh','macweb','macintosh','macintosh','macintosh',
+'haiku', 'haiku',
 # Android family (androidyyy)
+'android[_+ ]13','android13',              # Android 13
+'android[_+ ]12','android12',              # Android 12
+'android[_+ ]11','android11',              # Android 11
 'android[_+ ]10','android10',              # Android 10
 'android[_+ ]9','androidpie',              # Pie
 'android[_+ ]8','androidoreo',              # Oreo
@@ -305,6 +319,7 @@
 #-----------------------------------------------------------
 %OSHashLib      = (
 # Windows family OS
+'win11','<a href="http://www.microsoft.com/windows11/" title="Windows 11 home page [new window]" target="_blank" rel="noopener noreferrer">Windows 11</a>',
 'win10','<a href="http://www.microsoft.com/windows10/" title="Windows 10 home page [new window]" target="_blank" rel="noopener noreferrer">Windows 10</a>',
 'win8.1','<a href="https://technet.microsoft.com/en-us/library/hh832030(v=ws.11).aspx" title="Windows 8.1 home page [new window]" target="_blank" rel="noopener noreferrer">Windows 8.1</a>',
 'win8','<a href="https://technet.microsoft.com/en-us/library/hh832030(v=ws.11).aspx" title="Windows 8 home page [new window]" target="_blank" rel="noopener noreferrer">Windows 8</a>',
@@ -326,6 +341,8 @@
 'winunknown','Windows (unknown version)',
 'winxbox','<a href="http://www.xbox.com/" title="Microsoft XBOX home page [new window]" target="_blank" rel="noopener noreferrer">Microsoft XBOX</a>',
 # Macintosh OS
+'macos12','<a href="https://www.apple.com/macos/" title="macOS home page [new window]" target="_blank" rel="noopener noreferrer">macOS 12 Monterey</a>',
+'macos11','<a href="https://www.apple.com/macos/" title="macOS home page [new window]" target="_blank" rel="noopener noreferrer">macOS 11 Big Sur</a>',
 'macosx15','<a href="https://www.apple.com/macos/" title="macOS home page [new window]" target="_blank" rel="noopener noreferrer">macOS 10.15 Catalina</a>',
 'macosx14','<a href="https://www.apple.com/macos/" title="macOS home page [new window]" target="_blank" rel="noopener noreferrer">macOS 10.14 Mojave</a>',
 'macosx13','<a href="https://www.apple.com/macos/" title="macOS home page [new window]" target="_blank" rel="noopener noreferrer">macOS 10.13 High Sierra</a>',
@@ -340,7 +357,11 @@
 'macosx4','<a href="https://www.apple.com/macos/" title="macOS home page [new window]" target="_blank" rel="noopener noreferrer">Mac OS X 10.4 Tiger</a>',
 'macosx','<a href="https://www.apple.com/macos/" title="macOS home page [new window]" target="_blank" rel="noopener noreferrer">Mac OS X others</a>',
 'macintosh','<a href="https://www.apple.com/" title="Mac OS home page [new window]" target="_blank" rel="noopener noreferrer">Mac OS</a>',
+'Haiku', '<a href="http://www.haiku-os.org" title="Haiku home page [new window]" target="_blank" rel="noopener noreferrer">Haiku</a>',
 # Android
+'android13','<a href="https://developer.android.com/about/versions/13" title="Google Android 13.x home page [new window]" target="_blank" rel="noopener noreferrer">Google Android 13.x</a>',
+'android12','<a href="https://developer.android.com/about/versions/12" title="Google Android 12.x home page [new window]" target="_blank" rel="noopener noreferrer">Google Android 12.x</a>',
+'android11','<a href="https://developer.android.com/about/versions/11" title="Google Android 11.x home page [new window]" target="_blank" rel="noopener noreferrer">Google Android 11.x</a>',
 'android10','<a href="https://developer.android.com/about/versions/10" title="Google Android 10.x home page [new window]" target="_blank" rel="noopener noreferrer">Google Android 10.x</a>',
 'androidpie','<a href="https://developer.android.com/about/versions/pie/" title="Google Android 9.x Pie home page [new window]" target="_blank" rel="noopener noreferrer">Google Android 9.x Pie</a>',
 'androidoreo','<a href="https://developer.android.com/about/versions/oreo/" title="Google Android 8.x Oreo home page [new window]" target="_blank" rel="noopener noreferrer">Google Android 8.x Oreo</a>',
diff --git a/wwwroot/cgi-bin/lib/robots.pm b/wwwroot/cgi-bin/lib/robots.pm
index 19a9590..31e6a2a 100644
--- a/wwwroot/cgi-bin/lib/robots.pm
+++ b/wwwroot/cgi-bin/lib/robots.pm
@@ -43,6 +43,26 @@
 #
 #-------------------------------------------------------
 
+# 2021-05--05 RobC
+
+# Removed Baidu catchall because its picking up baidu.sogo.uc.UCBrowser which is a phone browser
+# Added baiduspider- catchall instead
+
+# Newly added from 2021-05-05
+# Adsbot
+# BW/
+# Bytespider
+# CheckMarkNetwork/
+# DuckDuckBot
+# # Foregenix Web Scan
+# IonCrawl
+# Linguee Bot
+# Neevabot
+# PetalBot
+# TkBot
+# vuhuvBot
+
+
 # 2018-03-13 RobC 
 #              Added 36 robots and one generic ( survey ) using v 7.7 robots file as base. 
 #              Also moved robot "Obot" into generics so that it is singled out as an individual Robot.         
@@ -121,7 +141,7 @@
 # 2005-12-15
 #		added FAST Enteprise Crawler/6 (www dot fastsearch dot com). Note spelling Enteprise not Enterprise.
 #		added findlinks http://wortschatz.uni-leipzig.de/findlinks/
-#		added IBM Almaden Research Center WebFountain� http://www.almaden.ibm.com/cs/crawler [hc3]
+#		added IBM Almaden Research Center WebFountain™ http://www.almaden.ibm.com/cs/crawler [hc3]
 #		added INFOMINE/8.0 VLCrawler (http://infomine.ucr.edu/useragents)
 #		added lmspider (lmspider@scansoft.com) http://www.nuance.com/
 #		added noxtrumbot http://www.noxtrum.com/
@@ -418,6 +438,7 @@
 'Googlebot\-Video/',
 'AdsBot\-Google[\x20]\(',
 'AdsBot\-Google\-Mobile\-Apps',
+'Adsbot',
 'Mediapartners-Google',
 'Feedfetcher\-Google',
 'Google\-Adwords\-Instant',
@@ -426,7 +447,7 @@
 'Yahoo![\x20]Slurp',
 'Baiduspider/',
 'Baiduspider\-image',
-'baidu',
+'Baiduspider-',
 'YandexBot/',
 'YandexImages/',
 'YandexImageResizer',
@@ -471,9 +492,12 @@
 'boitho\.com\-dc/',
 'BoogleBot',
 'BusinessBot:',
+'BW/',
+'Bytespider',
 'CatchBot/',
 'CB/Nutch',
 'CCBot/',
+'CheckMarkNetwork/',
 'Cliqzbot/',
 'CMS[\x20]Crawler',
 'Companybook\-Crawler',
@@ -508,6 +532,7 @@
 'DomainStatsBot/',
 'DotBot/',
 'DuckDuckBot-Https',
+'DuckDuckBot',
 'DuckDuckGo\-Favicons\-Bot/',
 'ELinks/',
 'ELinks[\x20]\(',
@@ -531,6 +556,7 @@
 'flamingo',
 'FlippyBearBot/',
 '^foo$',
+'Foregenix[\x20]Web[\x20]Scan',
 'FreeWebMonitoring[\x20]SiteChecker/',
 'fujilabol',
 'FurlBot/',
@@ -566,6 +592,7 @@
 'Incutio[\x20]XML',
 'IndeedBot',
 'InfluenceBot',
+'IonCrawl',
 'IRLbot/',
 'IssueCrawler',
 'istellabot/',
@@ -579,6 +606,7 @@
 'Lightspeed',
 'linkapediabot',
 'metager\-linkchecker',
+'Linguee[\x20]Bot',
 'linkchecker',
 'LinkCheck',
 'linkdexbot/',
@@ -608,6 +636,7 @@
 'My[\x20]Nutch[\x20]Spider/',
 'myse/Nutch',
 'Naaraa',
+'Neevabot',
 'NerdyBot',
 'netEstate[\x20]NE[\x20]Crawler',
 'NetResearchServer/',
@@ -629,6 +658,7 @@
 'Pcore',
 'pdffillerbot/',
 'peopleman',
+'PetalBot',
 'PhantomJS',
 'PHP/5\.2\.8',
 'Pinterestbot',
@@ -696,6 +726,7 @@
 'Test[\x20]Spider',
 'TestCrawler',
 'The[\x20]Knowledge[\x20]AI',
+'TkBot',
 'tracemyfile',
 'trendiction',
 'TurnitinBot/',
@@ -717,6 +748,7 @@
 'VoilaBot',
 'VORTEX/',
 'voyager/',
+'vuhuvBot',
 'W3C_Validator/',
 'W3C\-checklink/',
 'WBSearchBot/',
@@ -1588,6 +1620,7 @@
 'Googlebot\-Video/','Googlebot-Video',
 'AdsBot\-Google[\x20]\(','AdsBot-Google',
 'AdsBot\-Google\-Mobile\-Apps','AdsBot-Google-Mobile-Apps',
+'Adsbot','Adsbot',
 'Mediapartners\-Google','Mediapartners-Google',
 'Feedfetcher\-Google','Feedfetcher-Google',
 'Google\-Adwords\-Instant','Google-Adwords-Instant',
@@ -1596,7 +1629,7 @@
 'Yahoo![\x20]Slurp','Yahoo! Slurp',
 'Baiduspider/','Baiduspider',
 'Baiduspider\-image','Baiduspider-image',
-'baidu','Baidu ( catchall )',
+'Baiduspider-','Baiduspider ( catchall )',
 'YandexBot/','YandexBot',
 'YandexImages/','YandexImages',
 'YandexImageResizer','YandexImageResizer',
@@ -1641,9 +1674,12 @@
 'boitho\.com\-dc/','boitho.com-dc',
 'BoogleBot','BoogleBot',
 'BusinessBot:','BusinessBot:',
+'BW/','BW',
+'Bytespider','Bytespider',
 'CatchBot/','CatchBot',
 'CB/Nutch','CB/Nutch',
 'CCBot/','CCBot',
+'CheckMarkNetwork/','CheckMarkNetwork',
 'Cliqzbot/','Cliqzbot',
 'CMS[\x20]Crawler','CMS Crawler',
 'Companybook\-Crawler','Companybook-Crawler',
@@ -1678,6 +1714,7 @@
 'DomainStatsBot/','DomainStatsBot',
 'DotBot/','DotBot',
 'DuckDuckBot-Https','DuckDuckBot-Https',
+'DuckDuckBot','DuckDuckBot',
 'DuckDuckGo\-Favicons\-Bot/','DuckDuckGo-Favicons-Bot',
 'ELinks/','ELinks',
 'ELinks[\x20]\(','ELinks (',
@@ -1701,6 +1738,7 @@
 'flamingo','Flamingo_SearchEngine',
 'FlippyBearBot/','FlippyBearBot',
 '^foo$','foo',
+'Foregenix[\x20]Web[\x20]Scan','Foregenix Web Scan',
 'FreeWebMonitoring[\x20]SiteChecker/','FreeWebMonitoring SiteChecker',
 'fujilabol','fujilabol',
 'FurlBot/','FurlBot',
@@ -1736,6 +1774,7 @@
 'Incutio[\x20]XML','Incutio XML',
 'IndeedBot','IndeedBot',
 'InfluenceBot','InfluenceBot',
+'IonCrawl','IonCrawl',
 'IRLbot/','IRLbot',
 'IssueCrawler','IssueCrawler',
 'istellabot/','istellabot',
@@ -1748,6 +1787,7 @@
 'Lightspeed','Lightspeed',
 'linkapediabot','linkapediabot',
 'metager\-linkchecker','metager-linkchecker',
+'Linguee[\x20]Bot','Linguee Bot',
 'linkchecker','linkchecker',
 'LinkCheck','LinkCheck',
 'linkdexbot/','linkdexbot',
@@ -1778,6 +1818,7 @@
 'My[\x20]Nutch[\x20]Spider/','My Nutch Spider',
 'myse/Nutch','myse/Nutch',
 'Naaraa','Naaraa',
+'Neevabot','Neevabot',
 'NerdyBot','NerdyBot',
 'netEstate[\x20]NE[\x20]Crawler','netEstate NE Crawler',
 'NetResearchServer/','NetResearchServer',
@@ -1799,6 +1840,7 @@
 'Pcore','Pcore',
 'pdffillerbot/','pdffillerbot',
 'peopleman','peopleman',
+'PetalBot','PetalBot',
 'PhantomJS','PhantomJS',
 'PHP/5\.2\.8','PHP/5.2.8',
 'Pinterestbot','Pinterestbot',
@@ -1866,6 +1908,7 @@
 'Test[\x20]Spider','Test Spider',
 'TestCrawler','TestCrawler',
 'The[\x20]Knowledge[\x20]AI', 'The Knowledge AI',
+'TkBot','TkBot',
 'tracemyfile','tracemyfile',
 'trendiction','trendiction',
 'TurnitinBot/','TurnitinBot',
@@ -1887,6 +1930,7 @@
 'VoilaBot','VoilaBot',
 'VORTEX/','VORTEX',
 'voyager/','voyager',
+'vuhuvBot','vuhuvBot',
 'W3C_Validator/','W3C_Validator',
 'W3C\-checklink/','W3C-checklink',
 'WBSearchBot/','WBSearchBot',
diff --git a/wwwroot/cgi-bin/lib/search_engines.pm b/wwwroot/cgi-bin/lib/search_engines.pm
index 2ddd13b..e2bcd17 100644
--- a/wwwroot/cgi-bin/lib/search_engines.pm
+++ b/wwwroot/cgi-bin/lib/search_engines.pm
@@ -249,6 +249,8 @@
 '^cn\.bing\.com$',
 '^global\.bing\.com$',
 'bing\.com$',
+'bing\.com/search$',
+'bing\.com/images/search$',
 
 '^(www\.|)yandex\.ru$',
 '^(www\.|)yandex\.com\.tr$',
@@ -1615,6 +1617,8 @@
 '^cn\.bing\.com$','cn_bing_com',
 '^global\.bing\.com$','global_bing_com',
 'bing\.com$','bing_com_catchall',
+'bing\.com/search$','bing_com_catchall',
+'bing\.com/images/search$','images_bing_com',
 
 '^(www\.|)yandex\.ru$','yandexru',
 '^(www\.|)yandex\.com\.tr$','yandexcomtr',
@@ -3829,6 +3833,7 @@
 'cn_bing_com','q(|pvt)=',
 'global_bing_com','q(|pvt)=',
 'bing_com_catchall','q(|pvt)=',
+'images_bing_com','q(|pvt)=',
 
 'blekko','q=',
 'blingo','q=',
@@ -5171,6 +5176,7 @@
 'cn_bing_com','<a href="http://cn.bing.com/" title="Search Engine Home Page [new window]" rel="nofollow" target="_blank">Bing : cn.bing.com</a>',
 'global_bing_com','<a href="http://global.bing.com/" title="Search Engine Home Page [new window]" rel="nofollow" target="_blank">Bing : global.bing.com</a>',
 'bing_com_catchall','<a href="http://www.bing.com/" title="Search Engine Home Page [new window]" rel="nofollow" target="_blank">Bing : bing.com ( catchall )</a>',
+'images_bing_com','<a href="http://www.bing.com/images" title="Search Engine Home Page [new window]" rel="nofollow" target="_blank">Bing : www.bing.com ( images )</a>',
 
 'blekko','blekko',
 'blingo','<a href="http://www.blingo.com/" title="Search Engine Home Page [new window]" rel="nofollow" target="_blank">Blingo</a>',
diff --git a/wwwroot/cgi-bin/plugins/geoip2_country.pm b/wwwroot/cgi-bin/plugins/geoip2_country.pm
index 85f0e29..e3e1573 100644
--- a/wwwroot/cgi-bin/plugins/geoip2_country.pm
+++ b/wwwroot/cgi-bin/plugins/geoip2_country.pm
@@ -142,6 +142,7 @@ sub ShowInfoHost_geoip2_country {
         print "</th>";
 	}
 	elsif ($param) {
+		print "<td>";
 		my $res = Lookup_geoip2_country($param);
 		if ($res) {
 				$res = lc($res);
diff --git a/wwwroot/cgi-bin/plugins/hostinfo.pm b/wwwroot/cgi-bin/plugins/hostinfo.pm
index 95b2c20..1f0ac69 100644
--- a/wwwroot/cgi-bin/plugins/hostinfo.pm
+++ b/wwwroot/cgi-bin/plugins/hostinfo.pm
@@ -181,7 +181,7 @@ sub BuildFullHTMLOutput_hostinfo {
 
 	&tab_head("Full Whois Field",0,0,'whois');
 	if ($w && $w->response()) {
-		print "<tr><td class=\"aws\"><pre>".($w->response())."</pre></td></tr>\n";
+		print "<tr><td class=\"aws\"><pre>".CleanXSS($w->response())."</pre></td></tr>\n";
 	}
 	else {
 		print "<tr><td><br />The Whois command failed.<br />Did the server running AWStats is allowed to send WhoIs queries (If a firewall is running, port 43 should be opened from inside to outside) ?<br /><br /></td></tr>\n";
diff --git a/wwwroot/icon/flags/cd.png b/wwwroot/icon/flags/cd.png
index 7d1a116..fce4d17 100644
Binary files a/wwwroot/icon/flags/cd.png and b/wwwroot/icon/flags/cd.png differ
diff --git a/wwwroot/icon/os/android11.png b/wwwroot/icon/os/android11.png
new file mode 100644
index 0000000..07d266f
Binary files /dev/null and b/wwwroot/icon/os/android11.png differ
diff --git a/wwwroot/icon/os/android12.png b/wwwroot/icon/os/android12.png
new file mode 100644
index 0000000..07d266f
Binary files /dev/null and b/wwwroot/icon/os/android12.png differ
diff --git a/wwwroot/icon/os/android13.png b/wwwroot/icon/os/android13.png
new file mode 100644
index 0000000..07d266f
Binary files /dev/null and b/wwwroot/icon/os/android13.png differ
diff --git a/wwwroot/icon/os/haiku.png b/wwwroot/icon/os/haiku.png
new file mode 100644
index 0000000..ff2b5ea
Binary files /dev/null and b/wwwroot/icon/os/haiku.png differ
diff --git a/wwwroot/icon/os/macos11.png b/wwwroot/icon/os/macos11.png
new file mode 100644
index 0000000..777f350
Binary files /dev/null and b/wwwroot/icon/os/macos11.png differ
diff --git a/wwwroot/icon/os/macos12.png b/wwwroot/icon/os/macos12.png
new file mode 100644
index 0000000..777f350
Binary files /dev/null and b/wwwroot/icon/os/macos12.png differ
diff --git a/wwwroot/icon/os/win11.png b/wwwroot/icon/os/win11.png
new file mode 100644
index 0000000..8ebeb7b
Binary files /dev/null and b/wwwroot/icon/os/win11.png differ

Debdiff

[The following lists of changes regard files as different if they have different names, permissions or owners.]

Files in second set of .debs but not in first

-rw-r--r--  root/root   /usr/share/awstats/icon/os/android11.png
-rw-r--r--  root/root   /usr/share/awstats/icon/os/android12.png
-rw-r--r--  root/root   /usr/share/awstats/icon/os/android13.png
-rw-r--r--  root/root   /usr/share/awstats/icon/os/haiku.png
-rw-r--r--  root/root   /usr/share/awstats/icon/os/macos11.png
-rw-r--r--  root/root   /usr/share/awstats/icon/os/macos12.png
-rw-r--r--  root/root   /usr/share/awstats/icon/os/win11.png
-rw-r--r--  root/root   /usr/share/awstats/lang/awstats-tg.txt
-rw-r--r--  root/root   /usr/share/java/awstats/awgraphapplet-7.9-1~jan.jar
lrwxrwxrwx  root/root   /usr/share/java/awstats/awgraphapplet.jar -> awgraphapplet-7.9-1~jan.jar

Files in first set of .debs but not in second

-rw-r--r--  root/root   /usr/share/java/awstats/awgraphapplet-7.8-4~jan.jar
lrwxrwxrwx  root/root   /usr/share/java/awstats/awgraphapplet.jar -> awgraphapplet-7.8-4~jan.jar

No differences were encountered in the control files

More details

Full run details