diff --git a/app/folder/folder-map-search.php b/app/folder/folder-map-search.php
index 6513bee993606c9454aa6aca5cabca719f927a3d..3c10718471da4c5896904c2abe8104bf403cb3f7 100755
--- a/app/folder/folder-map-search.php
+++ b/app/folder/folder-map-search.php
@@ -7,6 +7,9 @@ $biggest_subnet_mask = 32;
 # set type
 $type = "";
 
+// count subnets
+$cnt = [];
+
 foreach($subnets as $id=>$subnet) {
 	if($subnet->isFolder!=1) {
 		// identify address
@@ -21,6 +24,9 @@ foreach($subnets as $id=>$subnet) {
 			if($subnet->mask<$biggest_subnet_mask)  { $biggest_subnet_mask = $subnet->mask; }
 		}
 
+		// first ?
+		if(!isset($cnt[$subnet->mask])) { $cnt[$subnet->mask]=0; }
+
 		// size
 		$cnt[$subnet->mask]++;
 	}
@@ -36,7 +42,7 @@ $masks = [];
 print "<h4>"._("Select mask").":</h4><hr>";
 for($m=$biggest_subnet_mask+1; $m<=$pow; $m++) {
 	// active
-	$active = $m==$_GET['ipaddrid'] ? "btn-success" : "";
+	$active = $m==@$_GET['ipaddrid'] ? "btn-success" : "";
 
 	// number of subnets
 	$subnet_num = 0;
diff --git a/app/folder/folder-map.php b/app/folder/folder-map.php
index 3a06b7258a3834e5ac5a04df1e2f8ece5531717b..9ec794a192fa8ae3130f392287b0b7027fb9f2bf 100755
--- a/app/folder/folder-map.php
+++ b/app/folder/folder-map.php
@@ -60,7 +60,7 @@ if($slaves) {
 				# create free objects
 				for($searchmask=$subnet['mask']+1; $searchmask<$smallest_subnet_mask+1; $searchmask++) {
 					// search ?
-					if((@$from_search==true && $searchmask==$from_search_mask) ||  $from_search==false) {
+					if((@$from_search==true && $searchmask==$from_search_mask) ||  @$from_search==false) {
 						// search
 						$found = $Subnets->search_available_subnets ($subnet['id'], $searchmask, $count = Subnets::SEARCH_FIND_ALL, $direction = Subnets::SEARCH_FIND_FIRST);
 
@@ -138,7 +138,7 @@ if($slaves) {
 					print "<div class='ip_vis_subnet'>";
 					for($m=1; $m<=$max_subnets;$m++) {
 						if(in_array($Subnets->transform_address($subnet_start, "dotted")."/".$free_mask, $items)) {
-							print "<span class='subnet_map subnet_map_$pow subnet_map_found'><a href='' data-sectionid='{$section->id}' data-mastersubnetid='{$subnet[id]}' class='createfromfree' data-cidr='".$Subnets->transform_address($subnet_start, "dotted")."/".$free_mask."' rel='tooltip' title='"._("Create subnet")."'>".$Subnets->transform_address($subnet_start, "dotted")."/".$free_mask."</a></span>";
+							print "<span class='subnet_map subnet_map_$pow subnet_map_found'><a href='' data-sectionid='{$section->id}' data-mastersubnetid='".$subnet['id']."' class='createfromfree' data-cidr='".$Subnets->transform_address($subnet_start, "dotted")."/".$free_mask."' rel='tooltip' title='"._("Create subnet")."'>".$Subnets->transform_address($subnet_start, "dotted")."/".$free_mask."</a></span>";
 						}
 						else {
 							print "<span class='subnet_map subnet_map_$pow subnet_map_notfound'>".$Subnets->transform_address($subnet_start, "dotted")."/".$free_mask."</span>";
diff --git a/app/folder/index.php b/app/folder/index.php
index 3ec65c8a985e63e4a1d74b6fcc08850451775021..07a190c133abf72d924ad3ab446baefd72b0f85c 100644
--- a/app/folder/index.php
+++ b/app/folder/index.php
@@ -27,7 +27,7 @@ if($folder_permission == 0)			{ $Result->show("danger", _('You do not have permi
 
 # get all slaves and addresses
 $slaves = $Subnets->fetch_subnet_slaves ($folderId);
-$addresses = $Addresses->fetch_subnet_addresses ($folder['id'], $sort['field'], $sort['direction']);
+$addresses = $Addresses->fetch_subnet_addresses ($folder['id'], @$sort['field'], @$sort['direction']);
 
 # print Folder details
 print "<div class='subnetDetails'>";
diff --git a/app/login/captcha b/app/login/captcha
index 1ecb884797c66e01a875c058def46c85aecea45b..2be13fddff68a72dee2c68196dbce7c8f825bcc1 160000
--- a/app/login/captcha
+++ b/app/login/captcha
@@ -1 +1 @@
-Subproject commit 1ecb884797c66e01a875c058def46c85aecea45b
+Subproject commit 2be13fddff68a72dee2c68196dbce7c8f825bcc1
diff --git a/app/subnets/addresses/address-details/address-details.php b/app/subnets/addresses/address-details/address-details.php
index f434b1371271b019fd69df4ab9452b46344603ef..03c25e1505bb6b2a765615ea8f40cbcc17598559 100644
--- a/app/subnets/addresses/address-details/address-details.php
+++ b/app/subnets/addresses/address-details/address-details.php
@@ -345,7 +345,7 @@ if(sizeof($address)>1) {
     			print "		<a class='ping_ipaddress   btn btn-default btn-xs' data-subnetId='".$address['subnetId']."' data-id='".$address['id']."' href='#' 						   													rel='tooltip' data-container='body' title='"._('Check availability')."'>							<i class='fa fa-gray fa-cogs'></i></a>";
     			print "		<a class='search_ipaddress btn btn-default btn-xs         "; if(is_blank($resolve['name'])) { print "disabled"; } print "' href='".create_link("tools","search",$resolve['name'])."' "; if(!is_blank($resolve['name']))   { print "rel='tooltip' data-container='body' title='"._('Search same hostnames in db')."'"; } print ">	<i class='fa fa-gray fa-search'></i></a>";
     			print "		<a class='mail_ipaddress   btn btn-default btn-xs          ' href='#' data-id='".$address['id']."' rel='tooltip' data-container='body' title='"._('Send mail notification')."'>																																<i class='fa fa-gray fa-envelope-o'></i></a>";
-    			if($zone) {
+    			if(isset($zone)) {
     			print "		<a class='fw_autogen	   btn btn-default btn-xs          ' href='#' data-subnetid='".$subnet['id']."' data-action='adr' data-ipid='".$address['id']."' data-dnsname='".((preg_match('/\//i',$address['hostname'])) ? '':$address['hostname'])."' rel='tooltip' data-container='body' title='"._('Regenerate firewall address object.')."'><i class='fa fa-gray fa-fire'></i></a>";
     			}
     			print "		<a class='delete_ipaddress btn btn-default btn-xs modIPaddr' data-action='delete' data-subnetId='".$address['subnetId']."' data-id='".$address['id']."' href='#' id2='$address[ip]' rel='tooltip' data-container='body' title='"._('Delete IP address')."'>													<i class='fa fa-gray fa-times'></i></a>";
diff --git a/app/subnets/addresses/print-address-table.php b/app/subnets/addresses/print-address-table.php
index 4e4f09e7f1a58913ef73df847e3f07d9e1c2c403..b56ddc76428def290f324b2589aa751bc20e76e5 100644
--- a/app/subnets/addresses/print-address-table.php
+++ b/app/subnets/addresses/print-address-table.php
@@ -165,7 +165,7 @@ else 				{ print _("IP addresses belonging to ALL nested subnets"); }
 	if(in_array('port', $selected_ip_fields)) 	{ print "<th class='hidden-xs hidden-sm hidden-md'>"._('Port')."</th>"; }
 	if(in_array('location', $selected_ip_fields) && $User->get_module_permissions ("locations")>=User::ACCESS_R) 	{ print "<th class='hidden-xs hidden-sm hidden-md'>"._('Location')."</th>"; }
 	if(in_array('owner', $selected_ip_fields)) 	{ print "<th class='hidden-xs hidden-sm'>"._('Owner')."</th>"; }
-	if($User->settings->enableCustomers=="1" && $cnt_obj["customer_id"]>0 && $User->get_module_permissions ("customers")>=User::ACCESS_R)	{ print "<th class='hidden-xs hidden-sm'>"._('Customer')."</th>"; }
+	if($User->settings->enableCustomers=="1" && @$cnt_obj["customer_id"]>0 && $User->get_module_permissions ("customers")>=User::ACCESS_R)	{ print "<th class='hidden-xs hidden-sm'>"._('Customer')."</th>"; }
 	// custom fields
 	if(sizeof($custom_fields) > 0) {
 		foreach($custom_fields as $myField) 	{
@@ -480,7 +480,7 @@ else {
 				}
 
 				# customer_id
-				if($User->settings->enableCustomers=="1" && $cnt_obj["customer_id"] && $User->get_module_permissions ("customers")>=User::ACCESS_R) {
+				if($User->settings->enableCustomers=="1" && @$cnt_obj["customer_id"] && $User->get_module_permissions ("customers")>=User::ACCESS_R) {
 					$customer = $Tools->fetch_object ("customers", "id", $addresses[$n]->customer_id);
 					print $customer===false ? "<td></td>" : "<td>$customer->title <a target='_blank' href='".create_link("tools","customers",$customer->title)."'><i class='fa fa-external-link'></i></a></td>";
 				}
diff --git a/app/subnets/subnet-details/subnet-changelog.php b/app/subnets/subnet-details/subnet-changelog.php
index e36abd47c6a4b96ffecd9739d1bf906755ec10cf..073030dbea2f0fe4ba477e90bb5a794da8534fe5 100755
--- a/app/subnets/subnet-details/subnet-changelog.php
+++ b/app/subnets/subnet-details/subnet-changelog.php
@@ -153,6 +153,7 @@ if($clogsAddresses) {
 	foreach($clogsAddresses as $l) {
 		$l = (array) $l;
 		# format diff
+		if(!is_null($l['cdiff']))
 		$l['cdiff'] = str_replace("\n", "<br>", $l['cdiff']);
 
 		print "<tr>";
diff --git a/app/subnets/subnet-details/subnet-map-search.php b/app/subnets/subnet-details/subnet-map-search.php
index ddd67e304c233947fd461c5f296166e893b18557..2c1ade92e979c81411436064a1968e41c625cfe4 100644
--- a/app/subnets/subnet-details/subnet-map-search.php
+++ b/app/subnets/subnet-details/subnet-map-search.php
@@ -1,29 +1,14 @@
 <?php
 
-
-# max mask possible
-$biggest_subnet_mask = 32;
-
-# set type
-$type = "";
-
-// ipv6
-if($Tools->identify_address($subnet['subnet'])=="IPv6") {
-	$biggest_subnet_mask = $subnet['mask']+10>128 ? 128 : $subnet['mask'];
-	$pow = 128;
-}
-else {
-	$biggest_subnet_mask = $subnet['mask']+10>32 ? 32 : $subnet['mask'];
-	$pow = 32;
-}
-
+// max mask possible
+$pow = $Tools->identify_address($subnet['subnet'])=="IPv6" ? 128 : 32;
 
 //
 // Select mask
 //
 $masks = [];
 print "<h4>"._("Select mask").":</h4><hr>";
-for($m=$biggest_subnet_mask+1; $m<=$pow; $m++) {
+for($m=$subnet['mask']+1; $m<=$pow; $m++) {
 	// active
 	$active = $m==@$_GET['ipaddrid'] ? "btn-success" : "";
 
@@ -36,12 +21,6 @@ for($m=$biggest_subnet_mask+1; $m<=$pow; $m++) {
 	$masks[] = $m;
 }
 
-
-// validate
-
-
-
-
 //
 // include
 //
diff --git a/app/tools/nat/all_nats.php b/app/tools/nat/all_nats.php
index 1bd601ad7950061c8a1b30269d80c5ff1cef906f..39906ff2a49d4f528da54b5346d9ca7ce246afd6 100644
--- a/app/tools/nat/all_nats.php
+++ b/app/tools/nat/all_nats.php
@@ -127,7 +127,7 @@ else {
                 $policy_dst = $n->policy=="Yes" ? $n->policy_dst : "/";
 
                 // description
-                $n->description = str_replace("\n", "<br>", $n->description);
+                $n->description = is_null($n->description) ? "" : str_replace("\n", "<br>", $n->description);
 
                 // port
                 if(is_blank($n->src_port)) $n->src_port = "/";
diff --git a/app/tools/powerDNS/domain-records.php b/app/tools/powerDNS/domain-records.php
index 0c7ef09b84744638a67037224df17b1c1ca43fc0..eb7b1da7af5d4a530d71d835f374a927dff4496a 100644
--- a/app/tools/powerDNS/domain-records.php
+++ b/app/tools/powerDNS/domain-records.php
@@ -30,12 +30,12 @@ if ($domain === false) {
             // SOA, NS
             if ($r->type == "SOA") {
                 $r->order = 1;
-                $records_default[] = $r;
+                $records_default[] = (array) $r;
                 unset($records[$k]);
             }
             if ($r->type == "NS") {
                 $r->order = 2;
-                $records_default[] = $r;
+                $records_default[] = (array) $r;
                 unset($records[$k]);
             }
             // split to $origins ?
@@ -46,7 +46,7 @@ if ($domain === false) {
         $order = array();
         if(isset($records_default)) {
             foreach ($records_default as $key => $row) {
-                $order[$key] = $row->order;
+                $order[$key] = $row['order'];
             }
             array_multisort($records_default, SORT_ASC, SORT_NUMERIC, $order);
         }
@@ -178,7 +178,7 @@ if (isset($records_default)) {
 
     // defaults
     foreach ($records_default as $r) {
-        print_record($r);
+        print_record((object) $r);
     }
 }
 
diff --git a/app/tools/vlan/domains.php b/app/tools/vlan/domains.php
index cd78e53140d4c83d8f0a5d0732a936b951d2ad0e..fef1c38b43ece96e448e97bf997e7c1078a141e2 100644
--- a/app/tools/vlan/domains.php
+++ b/app/tools/vlan/domains.php
@@ -56,7 +56,7 @@ foreach($vlan_domains as $domain) {
 	}
 	else {
 		//explode
-		unset($sec);
+		$sec = [];
 		$sections_tmp = pf_explode(";", $domain->permissions);
 		foreach($sections_tmp as $t) {
 			//fetch section
diff --git a/functions/GoogleAuthenticator b/functions/GoogleAuthenticator
index 3baa997f399d4afd5d6a81d42244ec9cc3eeb080..505c2af8337b559b33557f37cda38e5f843f3768 160000
--- a/functions/GoogleAuthenticator
+++ b/functions/GoogleAuthenticator
@@ -1 +1 @@
-Subproject commit 3baa997f399d4afd5d6a81d42244ec9cc3eeb080
+Subproject commit 505c2af8337b559b33557f37cda38e5f843f3768
diff --git a/functions/PHPMailer b/functions/PHPMailer
index df16b615e371d81fb79e506277faea67a1be18f1..ee4090bd62ad3ded3eac19d6fd0213abbe3596f1 160000
--- a/functions/PHPMailer
+++ b/functions/PHPMailer
@@ -1 +1 @@
-Subproject commit df16b615e371d81fb79e506277faea67a1be18f1
+Subproject commit ee4090bd62ad3ded3eac19d6fd0213abbe3596f1
diff --git a/functions/classes/class.Common.php b/functions/classes/class.Common.php
index 2c22f7c1ba50ab75de0c11ebfb71e40720699bba..9835e99ef6802f537b7726c6752c93b182794663 100644
--- a/functions/classes/class.Common.php
+++ b/functions/classes/class.Common.php
@@ -1098,7 +1098,7 @@ class Common_functions  {
 	 */
 	public function create_links ($text, $field_type = "varchar") {
 		if (!is_string($text))
-			return '';
+			return $text;
 
 		// create links only for varchar fields
 		if (strpos($field_type, "varchar")!==false) {
diff --git a/functions/classes/class.Subnets.php b/functions/classes/class.Subnets.php
index e3fbc146bbb5a580cef8a2f96d396a8f49f5941d..6d5f3d5b5840fc4f4883996ed02bd451e7ab05f0 100644
--- a/functions/classes/class.Subnets.php
+++ b/functions/classes/class.Subnets.php
@@ -761,7 +761,7 @@ class Subnets extends Common_functions {
 		try {
 			$query = "SELECT s.* FROM subnets AS s
 				INNER JOIN (SELECT subnet,mask,COUNT(*) AS cnt FROM subnets GROUP BY subnet,mask HAVING cnt >1) dups ON s.subnet=dups.subnet AND s.mask=dups.mask
-				ORDER BY s.subnet,s.mask,s.id;";
+				and.s.isFolder=0 ORDER BY s.subnet,s.mask,s.id;";
 
 			$subnets = $this->Database->getObjectsQuery($query);
 
diff --git a/functions/classes/class.Tools.php b/functions/classes/class.Tools.php
index f42310e13f6fe12aae819259128af199846ac1ee..4435d3d54ae8ed7c21b37a3b18a0d301b7333695 100644
--- a/functions/classes/class.Tools.php
+++ b/functions/classes/class.Tools.php
@@ -1956,7 +1956,9 @@ class Tools extends Common_functions {
                                     // append status
                                     if ($snet->pingSubnet=="1") {
                                         //calculate
-                                        $tDiff = time() - strtotime($item->lastSeen);
+                                    	if(!is_null($item->lastSeen)) {
+	                                        $tDiff = time() - strtotime($item->lastSeen);
+    									}
                                         if($item->excludePing=="1" )    { $hStatus = "padded"; $hTooltip = ""; }
                                         elseif(is_null($item->lastSeen)) { $hStatus = "neutral"; $hTooltip = "rel='tooltip' data-container='body' data-html='true' data-placement='left' title='"._("Address was never online")."'"; }
                                         elseif($item->lastSeen == "0000-00-00 00:00:00") { $hStatus = "neutral"; 	$hTooltip = "rel='tooltip' data-container='body' data-html='true' data-placement='left' title='"._("Address is offline")."<hr>"._("Last seen").": "._("Never")."'";}
diff --git a/functions/parsedown b/functions/parsedown
index cb17b6477dfff935958ba01325f2e8a2bfa6dab3..77947eda2fdaf06b181c63a7db13e38968306aee 160000
--- a/functions/parsedown
+++ b/functions/parsedown
@@ -1 +1 @@
-Subproject commit cb17b6477dfff935958ba01325f2e8a2bfa6dab3
+Subproject commit 77947eda2fdaf06b181c63a7db13e38968306aee
diff --git a/functions/php-saml b/functions/php-saml
index a7328b11887660ad248ea10952dd67a5aa73ba3b..5fbf3486704ac9835b68184023ab54862c95f213 160000
--- a/functions/php-saml
+++ b/functions/php-saml
@@ -1 +1 @@
-Subproject commit a7328b11887660ad248ea10952dd67a5aa73ba3b
+Subproject commit 5fbf3486704ac9835b68184023ab54862c95f213
diff --git a/functions/xmlseclibs b/functions/xmlseclibs
index f8f19e58f26cdb42c54b214ff8a820760292f8df..cf50b5023964550d714df76ba9adf21eb6fdaa35 160000
--- a/functions/xmlseclibs
+++ b/functions/xmlseclibs
@@ -1 +1 @@
-Subproject commit f8f19e58f26cdb42c54b214ff8a820760292f8df
+Subproject commit cf50b5023964550d714df76ba9adf21eb6fdaa35