0) { foreach ($DirectoriesToScan as $DirectoryKey => $startingdir) { if ($dir = @opendir($startingdir)) { while (($file = readdir($dir)) !== false) { if (($file != '.') && ($file != '..')) { $RealPathName = realpath($startingdir.'/'.$file); $DirInDir[] = dirname($RealPathName); if (is_dir($RealPathName)) { if (!in_array($RealPathName, $DirectoriesScanned) && !in_array($RealPathName, $DirectoriesToScan)) { $DirectoriesToScan[] = $RealPathName; } } elseif (is_file($RealPathName)) { $FilesInDir[] = $RealPathName; } } } closedir($dir); } $DirectoriesScanned[] = $startingdir; unset($DirectoriesToScan[$DirectoryKey]); } } $FilesInDir = array_unique($FilesInDir); sort($FilesInDir); $DirInDir = array_unique($DirInDir); sort($DirInDir); echo "Permissions Key" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "
ValueDefinition
0No Access
1Execute Access
2Write Access
3Execute & Write Access
4Read Access
5Execute & Read Access
6Write & Read Access
7Execute, Write, & Read Access
" . "
"; echo "Owner, Group, All" . "" . "" . "" . "" . "" . "" . "" . "" . "
Explanation
A bold three digit number will be displayed below after each directory and file listing (resource).
The leftmost digit signifies the Owner of the resource.
The middle digit signifies the Group the resource belongs to.
Lastly, the rightmost digit signifies the rest of the world, or All.
Example: 777 = Owner, Group, and All have full Execute, Write, & Read Access.
Example: 541 = Owner has Execute & Read Access, Group has Read Access, and All others have only Execute Access.
Example: 644 = Owner has Write & Read Access, both Group and All others have only Read Access.
" . "
"; echo "

Non-Empty Directories Listing Section...

"; foreach ($DirInDir as $dirname) { $perms = decoct(fileperms($dirname)) % 1000; echo $dirname." | ".$perms."
"; } echo "

Files Listing Section...

"; foreach ($FilesInDir as $filename) { $perms = decoct(fileperms($filename)) % 1000; echo $filename." | ".$perms."
"; } } else { echo "Feature disabled for $SERVER_NAME
"; } } function analyzerImage() { $img_width = $str_width + 381; $img_height = $str_height + 201; $im = ImageCreate($img_width,$img_height); $black = ImageColorAllocate($im, 0, 0, 0); $white = ImageColorAllocate($im, 255, 255, 255); $grey = ImageColorAllocate($im, 204, 204, 204); $red = ImageColorAllocate($im, 225, 0, 0); $blue = ImageColorAllocate($im, 0, 0, 155); ImageFill($im, 0,0,$white); $y = 0; for ($j = 2; $j < 32; $j++) { if (($j%2) == 0) { ImageFilledRectangle($im, 0, $y, 380, $y + 15.384615384615384615384615384615, $red); } $y = $y + 15.384615384615384615384615384615; } ImageFilledRectangle($im, 0, 0, 152, 107.69230769230769230769230769231, $blue); $corners = 10; $dphi = 6.265/$corners; $r[0] = 6.265; $r[1] = 2; for ($up = 15; $up < 152; $up++) { $j = 0; $ir = 0; if (($up%25) == 15) { for ($i = 0, $phi = 0; $i < $corners; $i++, $phi += $dphi) { $points[$j] = $up+$r[$ir]*sin($phi); $j++; $points[$j] = 15-$r[$ir]*cos($phi); $j++; $ir = 1-$ir; } ImageFilledPolygon($im, $points, $corners, $white); ImagePolygon($im, $points, $corners, $white); } } for ($up = 15; $up < 152; $up++) { $j = 0; $ir = 0; if (($up%25) == 15) { for ($i = 0, $phi = 0; $i < $corners; $i++, $phi += $dphi) { $points[$j] = $up+$r[$ir]*sin($phi); $j++; $points[$j] = 34.423076923076923076923076923075-$r[$ir]*cos($phi); $j++; $ir = 1-$ir; } ImageFilledPolygon($im, $points, $corners, $white); ImagePolygon($im, $points, $corners, $white); } } for ($up = 15; $up < 152; $up++) { $j = 0; $ir = 0; if (($up%25) == 15) { for ($i = 0, $phi = 0; $i < $corners; $i++, $phi += $dphi) { $points[$j] = $up+$r[$ir]*sin($phi); $j++; $points[$j] = 53.84615384615384615384615384615-$r[$ir]*cos($phi); $j++; $ir = 1-$ir; } ImageFilledPolygon($im, $points, $corners, $white); ImagePolygon($im, $points, $corners, $white); } } for ($up = 15; $up < 152; $up++) { $j = 0; $ir = 0; if (($up%25) == 15) { for ($i = 0, $phi = 0; $i < $corners; $i++, $phi += $dphi) { $points[$j] = $up+$r[$ir]*sin($phi); $j++; $points[$j] = 73.269230769230769230769230769225-$r[$ir]*cos($phi); $j++; $ir = 1-$ir; } ImageFilledPolygon($im, $points, $corners, $white); ImagePolygon($im, $points, $corners, $white); } } for ($up = 15; $up < 152; $up++) { $j = 0; $ir = 0; if (($up%25) == 15) { for ($i = 0, $phi = 0; $i < $corners; $i++, $phi += $dphi) { $points[$j] = $up+$r[$ir]*sin($phi); $j++; $points[$j] = 92.6923076923076923076923076923-$r[$ir]*cos($phi); $j++; $ir = 1-$ir; } ImageFilledPolygon($im, $points, $corners, $white); ImagePolygon($im, $points, $corners, $white); } } for ($up = 27; $up < 152; $up++) { $j = 0; $ir = 0; if (($up%25) == 2) { for ($i = 0, $phi = 0; $i < $corners; $i++, $phi += $dphi) { $points[$j] = $up+$r[$ir]*sin($phi); $j++; $points[$j] = 24.711538461538461538461538461535-$r[$ir]*cos($phi); $j++; $ir = 1-$ir; } ImageFilledPolygon($im, $points, $corners, $white); ImagePolygon($im, $points, $corners, $white); } } for ($up = 27; $up < 152; $up++) { $j = 0; $ir = 0; if (($up%25) == 2) { for ($i = 0, $phi = 0; $i < $corners; $i++, $phi += $dphi) { $points[$j] = $up+$r[$ir]*sin($phi); $j++; $points[$j] = 44.13461538461538461538461538461-$r[$ir]*cos($phi); $j++; $ir = 1-$ir; } ImageFilledPolygon($im, $points, $corners, $white); ImagePolygon($im, $points, $corners, $white); } } for ($up = 27; $up < 152; $up++) { $j = 0; $ir = 0; if (($up%25) == 2) { for ($i = 0, $phi = 0; $i < $corners; $i++, $phi += $dphi) { $points[$j] = $up+$r[$ir]*sin($phi); $j++; $points[$j] = 63.557692307692307692307692307685-$r[$ir]*cos($phi); $j++; $ir = 1-$ir; } ImageFilledPolygon($im, $points, $corners, $white); ImagePolygon($im, $points, $corners, $white); } } for ($up = 27; $up < 152; $up++) { $j = 0; $ir = 0; if (($up%25) == 2) { for ($i = 0, $phi = 0; $i < $corners; $i++, $phi += $dphi) { $points[$j] = $up+$r[$ir]*sin($phi); $j++; $points[$j] = 82.98076923076923076923076923076-$r[$ir]*cos($phi); $j++; $ir = 1-$ir; } ImageFilledPolygon($im, $points, $corners, $white); ImagePolygon($im, $points, $corners, $white); } } Header("Content-type: image/jpeg"); $text_color = imagecolorallocate ($im, 70, 70, 70); imagejpeg($im, '', 100); imagedestroy($im); # Proportions obtained from http://www.math.grin.edu/~stone/courses/scheme/exercises/American-flag.xhtml # - The ratio between the long dimension of the flag (its ``fly'') and its short dimension (its ``hoist'') is 19/10. # - The ratio between the hoist of any of the red or white stripes and the hoist of the whole flag is 1/13. # - The ratio between the hoist of the Union (the blue rectangle in the upper left-hand corner) and the hoist of the whole flag is 7/13. # - The ratio between the fly of the Union and the hoist of the whole flag is 76/100. # - The ratio between the diameter of a circle circumscribing any of the white stars and the hoist of the whole flag is 616/10000. } function main() { global $prefix, $user_prefix, $dbtype, $dbname, $dbuname, $dbpass, $dbhost, $Default_Theme, $language, $locale, $Version_Num, $sitekey; global $NCsitename, $NCVersion_Num, $SERVER_NAME, $NClanguage, $NClocale, $NCsitekey, $dbi, $NCDefault_Theme, $appname; $sitekey = 0; require("config.php"); $NClocale = $locale; $NClanguage = $language; $NCDefault_Theme = $Default_Theme; $NCVersion_Num = $Version_Num; $SERVER_NAME = getenv("SERVER_NAME"); $NCsitekey = $sitekey; echo "Click here for a recursive listing of your current working directory: ". getcwd() ."

"; $dbi = @mysql_connect("$dbhost", "$dbuname", "$dbpass") or die(" Your config.php values
TypeValue
dbhost$dbhost
dbname$dbname
dbuname$dbuname
prefix$prefix
user_prefix$user_prefix
dbtype$dbtype


Could not connect to your MySQL Database, visit Nuke Cops for support..

MySQL Error: ".mysql_error().""); mysql_select_db("$dbname") or die(" Your config.php values
TypeValue
dbhost$dbhost
dbname$dbname
dbuname$dbuname
prefix$prefix
user_prefix$user_prefix
dbtype$dbtype


Could not select your database. Visit Nuke Cops for support..

MySQL Error: ".mysql_error().""); } function secchk() { global $prefix, $user_prefix, $dbtype, $dbname, $dbuname, $dbpass, $dbhost, $Default_Theme, $language, $locale, $Version_Num, $sitekey; global $NCsitename, $NCVersion_Num, $SERVER_NAME, $NClanguage, $NClocale, $NCsitekey, $dbi, $NCFver; if (phpversion() == "3.0" || phpversion() == "4.06" || phpversion() == "4.10" || phpversion() == "4.11") { echo "

WARNING! WARNING! WARNING! Vulnerable PHP On Your Server!

" . "" . "" . "" . "
PHP VersionReason For Vulnerability
". phpversion() ."This PHP version contains a vulnerability in \"php_mime_split\" function allowing arbitrary code execution. Tell your host to read the CERT/CC Vulnerability Note VU#297363 by clicking --> here. Until that is resolved, PHP-Nuke should be the least of your worries.


"; } elseif (preg_match ("/3.0.1/", phpversion()) || preg_match ("/4.0./", phpversion()) || phpversion() == "4.1.0" || phpversion() == "4.1.1") { echo "

WARNING! WARNING! WARNING! Vulnerable PHP On Your Server!

" . "" . "" . "" . "
PHP VersionReason For Vulnerability
". phpversion() ."This PHP version contains a file uploads vulnerability. Tell your host to read the e-matters Advisory 01/2002 by clicking --> here. Until that is resolved, PHP-Nuke should be the least of your worries.


"; } elseif (phpversion() == "4.2.0" || phpversion() == "4.2.1") { echo "

WARNING! WARNING! WARNING! Vulnerable PHP On Your Server!

" . "" . "" . "" . "
PHP VersionReason For Vulnerability
". phpversion() ."This PHP version fails to properly parse the headers of HTTP POST requests. Tell your host to read the CERT/CC Vulnerability Note VU#929115 by clicking --> here. Until that is resolved, PHP-Nuke should be the least of your worries. Please reference PHP.net directly for a full review of this serious vulnerability: --> click here.


"; } elseif (phpversion() == "4.3.0") { echo "

WARNING! WARNING! WARNING! Vulnerable PHP On Your Server!

" . "" . "" . "" . "
PHP VersionReason For Vulnerability
". phpversion() ."PHP Security Advisory: CGI vulnerability in PHP version 4.3.0.

PHP contains code for preventing direct access to the CGI binary with configure option \"--enable-force-cgi-redirect\" and php.ini option \"cgi.force_redirect\". In PHP 4.3.0 there is a bug which renders these options useless. For a full report go here --> here.

Solution is to upgrade to PHP 4.3.1 as there are no other workarounds.

The impact: \"Anyone with access to websites hosted on a web server which employs the CGI module may exploit this vulnerability to gain access to any file readable by the user under which the webserver runs. A remote attacker could also trick PHP into executing arbitrary PHP code if attacker is able to inject the code into files accessible by the CGI. This could be for example the web server access-logs.\"

Until that is resolved, PHP-Nuke should be the least of your worries.
.


"; } if (mysql_get_server_info() < "3.23.55") { echo "

WARNING! WARNING! WARNING! Vulnerable MySQL Server On Your Server!

" . "" . "" . "" . "
MySQL Server VersionReason For Vulnerability
". mysql_get_server_info() ."A vulnerability has been discovered in MySQL that may cause a denial of service. It has been reported that, under certain circumstances, a malicious MySQL client may be able to trigger a condition in which MySQL attempts to free the same memory twice. MySQL Daemon can be crashed unless upgraded. Details can be found by clicking --> here. Until that is resolved, PHP-Nuke should be the least of your worries.

"; } if (mysql_get_server_info() < "3.23.33") { echo "

WARNING! WARNING! WARNING! Vulnerable MySQL Server On Your Server!

" . "" . "" . "" . "
MySQL Server VersionReason For Vulnerability
". mysql_get_server_info() ."This MySQL Server version monitor drop database command contains buffer overflow. Tell your host to read the CERT/CC Vulnerability Note VU#367320 by clicking --> here. Until that is resolved, PHP-Nuke should be the least of your worries.

"; } if ( $NCsitekey ) { if ($NCsitekey == "SdFk*fa28367-dm56w69.3a2fDS+e9") { echo "

WARNING! WARNING! WARNING! Your config.php \$sitekey has the default value!

" . "" . "" . "" . "
\$sitekey valueReason For Vulnerability
". $sitekey ."PHP-Nuke has a default \$sitekey value as distributed in config.php. You should change this immediately to a unique value only you know.

"; } } if (get_cfg_var('magic_quotes_gpc') == "0") { echo "

WARNING! WARNING! WARNING! Your PHP-Nuke Site is open to SQL Injection Attack!

" . "" . "" . "" . "
php.ini magic_quotes.gpc valueReason For Vulnerability
Not Enabled (Not \"On\")If your magic_quotes_gpc is not On, as it currently isn't, you should change this immediately to the On value. If left disabled then your site is susceptible to member password retrieval and member admin escalation. For full details and exploits for testing go here. For details on exactly what code to insert if you cannot enable magic_quotes_gpc read here.

"; } if (file_exists("modules/WebMail/mailattach.php")) { echo "

WARNING! WARNING! WARNING! Your PHP-Nuke Site is open to a WebMail Attack!

" . "" . "" . "" . "
path/filenameReason For Vulnerability
modules/WebMail/mailattach.phpHighly advised by Francisco Burzi (nukelite) and Nuke Cops, this file should be removed completely from your system regardless of WebMail activation. This file can be used to copy any file on your system and make it available for download. You don't want your config.php file downloaded do you? Remove this file immediately!

"; } // nukesql.php check added by recommendation from chatserv if (file_exists("nukesql.php")) { echo "

WARNING! WARNING! WARNING! Your PHP-Nuke Database Tables are at Risk!

" . "" . "" . "" . "
path/filenameReason For Vulnerability
nukesql.phpThis Web Browser based tables installer should have been deleted after it was used. This file can be used to run a Replace Tables which will empty your site's database tables, thus allowing anyone to restart your site and become a Superuser. You wouldn't want to have to start all over again do you? Remove this file immediately!

"; } if ($NCVersion_Num < "6.5") { echo "

WARNING! WARNING! WARNING! Your PHP-Nuke CMS Is Old!

" . "" . "" . "" . "
Your VersionReason For Vulnerability
$NCVersion_NumPHP-Nuke, with each new release (currently at 6.5), fixes vulnerabilities and exploits that older versions are susceptible to. This is a general alert for you to be aware that running older PHP-Nuke versions may leave it open to such attacks. It is your choice whether to upgrade or not to the newest version (regardless of status: gold, release candidate, or beta). But if you do decide to upgrade, for your sake make sure you backup 100% your MySQL database and all of your filesystem files.

"; } if ($NCFver < ".0.4") { echo "

WARNING! WARNING! WARNING! Your phpbb2 forums are at Risk!

" . "" . "" . "" . "
VersionReason For Vulnerability
2$NCFverThe phpBB group at phpBB.com frequently update their forums software to eliminate known vulnerabilities and exploits. Analyzer has found that your forums port is not the newest release: 2.0.4. Please visit http://nukecops.com in order to obtain an upgrade package to 2.0.4. By not staying current in phpBB upgrades you leave your forums open to attack. The choice to upgrade, backup, or stay at current version is 100% completely yours, all we have done is alerted you to it.

"; } } function configconn() { global $prefix, $user_prefix, $dbtype, $dbname, $dbuname, $dbpass, $dbhost, $Default_Theme, $language, $locale, $Version_Num, $sitekey; global $NCsitename, $NCVersion_Num, $SERVER_NAME, $NClanguage, $NClocale, $NCsitekey, $dbi; if ($SERVER_NAME != "www.nukecops.com" && $SERVER_NAME != "www.computercops.biz") { echo "Your config.php values" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "
TypeValue
dbhost$dbhost
dbname$dbname
dbuname$dbuname
prefix$prefix
user_prefix$user_prefix
dbtype$dbtype
" . "
"; } } // Begin Raven's code block contribution from Nuke Cops function my_gd_info() { $array = Array( "GD Version" => "", "FreeType Support"=> 0, "FreeType Support" => 0, "FreeType Linkage" => "", "T1Lib Support" => 0, "GIF Read Support" => 0, "GIF Create Support" => 0, "JPG Support" => 0, "PNG Support" => 0, "WBMP Support" => 0, "XBM Support" => 0 ); $gif_support = 0; ob_start(); eval("phpinfo();"); $info = ob_get_contents(); ob_end_clean(); foreach(explode("\n", $info) as $line) { if(strpos($line, "GD Version")!==false) $array["GD Version"] = trim(str_replace("GD Version", "", strip_tags($line))); if(strpos($line, "FreeType Support")!==false) $array["FreeType Support"] = trim(str_replace("FreeType Support", "", strip_tags($line))); if(strpos($line, "FreeType Linkage")!==false) $array["FreeType Linkage"] = trim(str_replace("FreeType Linkage", "", strip_tags($line))); if(strpos($line, "T1Lib Support")!==false) $array["T1Lib Support"] = trim(str_replace("T1Lib Support", "", strip_tags($line))); if(strpos($line, "GIF Read Support")!==false) $array["GIF Read Support"] = trim(str_replace("GIF Read Support", "", strip_tags($line))); if(strpos($line, "GIF Create Support")!==false) $array["GIF Create Support"] = trim(str_replace("GIF Create Support", "", strip_tags($line))); if(strpos($line, "GIF Support")!==false) $gif_support = trim(str_replace("GIF Support", "", strip_tags($line))); if(strpos($line, "JPG Support")!==false) $array["JPG Support"] = trim(str_replace("JPG Support", "", strip_tags($line))); if(strpos($line, "PNG Support")!==false) $array["PNG Support"] = trim(str_replace("PNG Support", "", strip_tags($line))); if(strpos($line, "WBMP Support")!==false) $array["WBMP Support"] = trim(str_replace("WBMP Support", "", strip_tags($line))); if(strpos($line, "XBM Support")!==false) $array["XBM Support"] = trim(str_replace("XBM Support", "", strip_tags($line))); } if($gif_support==="enabled") { $array["GIF Read Support"] = 1; $array["GIF Create Support"] = 1; } if($array["FreeType Support"]==="enabled"){ $array["FreeType Support"] = 1; } if($array["T1Lib Support"]==="enabled") $array["T1Lib Support"] = 1; if($array["GIF Read Support"]==="enabled"){ $array["GIF Read Support"] = 1; } if($array["GIF Create Support"]==="enabled") $array["GIF Create Support"] = 1; if($array["JPG Support"]==="enabled") $array["JPG Support"] = 1; if($array["PNG Support"]==="enabled") $array["PNG Support"] = 1; if($array["WBMP Support"]==="enabled") $array["WBMP Support"] = 1; if($array["XBM Support"]==="enabled") $array["XBM Support"] = 1; return $array; } // End Raven's Contribution function gdchk() { global $prefix, $user_prefix, $dbtype, $dbname, $dbuname, $dbpass, $dbhost, $Default_Theme, $language, $locale, $Version_Num, $sitekey; global $NCsitename, $NCVersion_Num, $SERVER_NAME, $NClanguage, $NClocale, $NCsitekey, $dbi; if (extension_loaded("gd")) { if (phpversion() >= "4.3.0") { $gi = gd_info(); $gi1 = $gi['GD Version']; $gi2 = $gi['FreeType Support']; if ($gi2) { $gi2 = "Yes"; } else { $gi2 = "No"; } $gi3 = $gi['T1Lib Support']; if ($gi3) { $gi3 = "Yes"; } else { $gi3 = "No"; } $gi4 = $gi['GIF Read Support']; if ($gi4) { $gi4 = "Yes"; } else { $gi4 = "No"; } $gi5 = $gi['GIF Create Support']; if ($gi5) { $gi5 = "Yes"; } else { $gi5 = "No"; } $gi6 = $gi['JPG Support']; if ($gi6) { $gi6 = "Yes"; } else { $gi6 = "No"; } $gi7 = $gi['PNG Support']; if ($gi7) { $gi7 = "Yes"; } else { $gi7 = "No"; } $gi8 = $gi['WBMP Support']; if ($gi8) { $gi8 = "Yes"; } else { $gi8 = "No"; } $gi9 = $gi['XBM Support']; if ($gi9) { $gi9 = "Yes"; } else { $gi9 = "No"; } // Begin Raven's code block contribution } else { $gi = my_gd_info(); $gi1 = $gi['GD Version']; $gi2 = $gi['FreeType Support']; if ($gi2) { $gi2 = "Yes"; } else { $gi2 = "No"; } $gi3 = $gi['T1Lib Support']; if ($gi3) { $gi3 = "Yes"; } else { $gi3 = "No"; } $gi4 = $gi['GIF Read Support']; if ($gi4) { $gi4 = "Yes"; } else { $gi4 = "No"; } $gi5 = $gi['GIF Create Support']; if ($gi5) { $gi5 = "Yes"; } else { $gi5 = "No"; } $gi6 = $gi['JPG Support']; if ($gi6) { $gi6 = "Yes"; } else { $gi6 = "No"; } $gi7 = $gi['PNG Support']; if ($gi7) { $gi7 = "Yes"; } else { $gi7 = "No"; } $gi8 = $gi['WBMP Support']; if ($gi8) { $gi8 = "Yes"; } else { $gi8 = "No"; } $gi9 = $gi['XBM Support']; if ($gi9) { $gi9 = "Yes"; } else { $gi9 = "No"; } } // End Raven's code block contribution ?> GD Library Information
TypeValue
GD Version
FreeType Support
T1Lib Support
GIF Read Support
GIF Create Support
JPG Support
PNG Support
WBMP Support
XBM Support

GD Library Information
Extension Status
Not-Loaded

2) { $sql = "select sitename, Default_Theme, Version_Num, locale, language from ".$prefix."_config"; $result = mysql_query($sql); if (mysql_num_rows($result)) { while (list($sitename, $Default_Theme, $Version_Num, $locale, $language) = mysql_fetch_row($result)) { $NCsitename = $sitename; $NCDefault_Theme = $Default_Theme; $NCVersion_Num = $Version_Num; $NClocale = $locale; $NClanguage = $language; } } mysql_free_result($result); } elseif ($NCresult = 2) { $sql = "select config_value from ".$prefix."_config where config_name='sitename'"; $result = mysql_query($sql); if (mysql_num_rows($result)) { while (list($config_value) = mysql_fetch_row($result)) { $NCsitename = $config_value; } } mysql_free_result($result); $sql = "select config_value from ".$prefix."_config where config_name='default_lang'"; $result = mysql_query($sql); if (mysql_num_rows($result)) { while (list($config_value) = mysql_fetch_row($result)) { $NClanguage = $config_value; } } mysql_free_result($result); } $sqlNew = "select config_value from ".$prefix."_config where config_name='version'"; $resultNew = mysql_query($sqlNew); if ($resultNew) { while (list($config_value) = mysql_fetch_row(mysql_query($sqlNew))) { $NCFver = $config_value; } } else { $sqlToo = "select config_value from ".$prefix."_bbconfig where config_name='version'"; $resultToo = mysql_query($sqlToo); if ($resultToo) { list($config_value) = mysql_fetch_row(mysql_query($sqlToo)); $NCFver = $config_value; } } } function bulk() { global $prefix, $user_prefix, $dbtype, $dbname, $dbuname, $dbpass, $dbhost, $Default_Theme, $language, $locale, $Version_Num, $sitekey; global $NCsitename, $NCVersion_Num, $SERVER_NAME, $NClanguage, $NClocale, $NCsitekey, $dbi, $NCDefault_Theme, $NCFver; $sql = "select bc.config_value, bt.style_name, bt.template_name from ".$prefix."_bbthemes bt, ".$prefix."_bbconfig bc where bc.config_name='default_style' and bc.config_value=bt.themes_id"; $result = mysql_query($sql); echo "MySQL Connection Transcript for $NCsitename" . "" . "" . "" . "" . ""; if ($SERVER_NAME != "www.nukecops.com" && $SERVER_NAME != "www.computercops.biz") { echo "" . "" . "" . "" . "" . "" . "" . "" . "" . "
DestinationResult
MySQL Health CheckSuccessful
MySQL Server: $dbhostSuccessful
MySQL Datbase: $dbnameSuccessful
MySQL Username: $dbunameSuccessful
" . "
"; } else { echo "
"; } if ($SERVER_NAME != "www.nukecops.com" && $SERVER_NAME != "www.computercops.biz") { echo "PHP Specific Values for $NCsitename" . "" . "" . "" . "
CategoryValue
PHP Version". phpversion() ."

"; } if ($SERVER_NAME != "www.nukecops.com" && $SERVER_NAME != "www.computercops.biz") { if (phpversion() >= "4.0.2") { echo "Operating System Data for $NCsitename" . "" . "" . "" . "" . "" . "
TypeValue
OS Type".php_uname()."
" . "
"; } elseif (phpversion() >= "3.0.10") { $pu = posix_uname(); echo "Operating System Data for $NCsitename (Values may be blank)" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "
TypeValue
OS".$pu['sysname']."
Node Name".$pu['nodename']."
Build Release".$pu['release']."
Version".$pu['version']."
Machine Platform".$pu['machine']."
Domain Name".$pu['domainname']."
" . "
"; } } if ($SERVER_NAME != "www.nukecops.com" && $SERVER_NAME != "www.computercops.biz") { if (phpversion() >= "4.0.5") { echo "MySQL Specific Values for $NCsitename" . "" . "" . "" . "" . "" . "" . "
CategoryValue
" . "Server Version". mysql_get_server_info() ."" . "
" . "Client Version". mysql_get_client_info() ."" . "
" . "Host Information". mysql_get_host_info() ."" . "
" . "Protocol Information". mysql_get_proto_info() ."" . "

"; } } if ($result) { echo "phpBB2 Port Values for $NCsitename" . "" . ""; while (list($config_value, $style_name, $template_name) = mysql_fetch_row($result)) { $NCconfig_value = $config_value; $NCstyle_name = $style_name; $NCtemplate_name =$template_name; } mysql_free_result($result); echo "" . "" . "" . "
Theme IDStyle NameTemplate NameVersion
$NCconfig_value$NCstyle_name$NCtemplate_name2$NCFver
" . "
"; } echo "PHP-Nuke Values for $NCsitename" . "" . "" . "" . "" . "" . "
Default_ThemeVersionLocaleLanguage
$NCDefault_Theme$NCVersion_Num$NClocale$NClanguage
" . "
"; } function listdbs() { global $prefix, $user_prefix, $dbtype, $dbname, $dbuname, $dbpass, $dbhost, $Default_Theme, $language, $locale, $Version_Num, $sitekey; global $NCsitename, $NCVersion_Num, $SERVER_NAME, $NClanguage, $NClocale, $NCsitekey, $dbi; if ($SERVER_NAME != "www.nukecops.com" && $SERVER_NAME != "www.computercops.biz") { $db_list = mysql_list_dbs($dbi); echo "All Available MySQL Databases" . "" . "" . ""; while ($row = mysql_fetch_object($db_list)) { if ($row->Database == $dbname) { echo "" . "" . ""; } else { echo "" . "" . ""; } } echo "
Database Name
" . $row->Database . "
" . $row->Database . "

"; } } function modchk() { global $prefix, $user_prefix, $dbtype, $dbname, $dbuname, $dbpass, $dbhost, $Default_Theme, $language, $locale, $Version_Num, $sitekey; global $NCsitename, $NCVersion_Num, $SERVER_NAME, $NClanguage, $NClocale, $NCsitekey, $dbi; $sql = "select main_module from ".$prefix."_main"; $result = mysql_query($sql); while (list($main_module) = mysql_fetch_row($result)) { $NCmain_module = $main_module; } mysql_free_result($result); $sql = "select title, active, view from ".$prefix."_modules group by title asc"; $result = mysql_query($sql); if ($result) { echo "Module Data for $NCsitename" . "" . ""; while (list($title, $active, $view) = mysql_fetch_row($result)) { $NCtitle = $title; $NCactive = $active; $NCview = $view; if ($view > '2') { $NCview = $NCview - 2; $sql2 = "select groupName from ".$prefix."_users_groups where groupID = $NCview"; $result2 = mysql_query($sql2); if ($result2) { while (list($groupName) = mysql_fetch_row($result2)) { $NCview = "$groupName"; } mysql_free_result($result2); } } elseif ($view) { $NCview = "Registered Users"; } elseif ($view == '2') { $NCview = "Administrators"; } else { $NCview = "All Visitors"; } if ($NCactive) { $NCactive = "active"; } else { $NCactive = "disabled"; } if ($NCmain_module == $NCtitle) {$NCtitle = "$NCtitle";} echo ""; } mysql_free_result($result); echo "
ModuleActive CodeView Code
$NCtitle$NCactive$NCview
" . "
"; } } function blkchk() { global $prefix, $user_prefix, $dbtype, $dbname, $dbuname, $dbpass, $dbhost, $Default_Theme, $language, $locale, $Version_Num, $sitekey; global $NCsitename, $NCVersion_Num, $SERVER_NAME, $NClanguage, $NClocale, $NCsitekey, $dbi; // Following code for Block Data was supplied by chatserv but I adapted it to work with NSN_Groups permissions if exist. $sql = "select title, active, view from ".$prefix."_blocks group by title asc"; $result = mysql_query($sql); if ($result) { echo "Block Data for $NCsitename" . "" . ""; while (list($title, $active, $view) = mysql_fetch_row($result)) { $NCTitle = $title; $NCActive = $active; $NCView = $view; if ($view > '3') { $NCView = $NCView - 3; $sql2 = "select groupName from ".$prefix."_users_groups where groupID = $NCView"; $result2 = mysql_query($sql2); if ($result2) { while (list($groupName) = mysql_fetch_row($result2)) { $NCView = "$groupName"; } mysql_free_result($result2); } } elseif ($view == '1') { $NCView = "Registered Users"; } elseif ($view == '2') { $NCView = "Administrators"; } elseif ($view == '3') { $NCView = "Anonymous"; } else { $NCView = "All Visitors"; } if ($NCActive) { $NCActive = "active"; } else { $NCActive = "disabled"; } echo ""; } mysql_free_result($result); echo "
BlockActive CodeView Code
$NCTitle$NCActive$NCView
" . "
"; } } function ranks() { global $prefix, $user_prefix, $dbtype, $dbname, $dbuname, $dbpass, $dbhost, $Default_Theme, $language, $locale, $Version_Num, $sitekey; global $NCsitename, $NCVersion_Num, $SERVER_NAME, $NClanguage, $NClocale, $NCsitekey, $dbi; $sql = "select u.username, u.user_id, r.rank_title, u.user_level from ".$prefix."_users u, ".$prefix."_bbranks r where r.rank_id=u.user_rank"; $result = mysql_query($sql); if ($result) { echo "Member Special Ranks for $NCsitename" . "" . ""; while (list($username, $user_id, $rank_title, $user_level) = mysql_fetch_row($result)) { $NCuname = $username; $NCuid = $user_id; $NCrank_title = $rank_title; $NCuser_level = $user_level; if ($NCuser_level == '2') {$NCuser_level="2: Admin/Author";} elseif ($NCuser_level == '3') {$NCuser_level="3: Forum Moderator";} else {$NCuser_level="1: Regular Member";} echo ""; } mysql_free_result($result); echo "
phpBB2 Rank TitlePHP-Nuke Rank LevelMember NameMember UID
$NCrank_title$NCuser_level$NCuname$NCuid
" . "
"; } $sql = "select u.uname, u.uid, r.rank_title, u.user_level from ".$prefix."_users u, ".$prefix."_bbranks r where r.rank_id=u.user_rank"; $result = mysql_query($sql); if ($result) { echo "Member Special Ranks for $NCsitename" . "" . ""; while (list($uname, $uid, $rank_title, $user_level) = mysql_fetch_row($result)) { $NCuname = $uname; $NCuid = $uid; $NCrank_title = $rank_title; $NCuser_level = $user_level; if ($NCuser_level == '2') {$NCuser_level="2: Admin/Author";} elseif ($NCuser_level == '3') {$NCuser_level="3: Forum Moderator";} else {$NCuser_level="1: Regular Member";} echo ""; } mysql_free_result($result); echo "
phpBB2 Rank TitlePHP-Nuke Rank LevelMember NameMember UID
$NCrank_title$NCuser_level$NCuname$NCuid
" . "
"; } } function admins() { global $prefix, $user_prefix, $dbtype, $dbname, $dbuname, $dbpass, $dbhost, $Default_Theme, $language, $locale, $Version_Num, $sitekey; global $NCsitename, $NCVersion_Num, $SERVER_NAME, $NClanguage, $NClocale, $NCsitekey, $dbi; $sql = "select uname, uid, user_level from ".$prefix."_users where user_level = '2'"; $result = mysql_query($sql); if ($result) { echo "Catch-All Administrators for $NCsitename" . "" . ""; while (list($uname, $uid, $user_level) = mysql_fetch_row($result)) { $NCuname = $uname; $NCuid = $uid; $NCuser_level = $user_level; if ($NCuser_level == '2') {$NCuser_level="2: Admin/Author";} echo ""; } mysql_free_result($result); echo "
PHP-Nuke Rank LevelMember NameMember UID
$NCuser_level$NCuname$NCuid
" . "
"; } $sql = "select username, user_id, user_level from ".$prefix."_users where user_level = '2'"; $result = mysql_query($sql); if ($result) { echo "Catch-All Administrators for $NCsitename" . "" . ""; while (list($username, $user_id, $user_level) = mysql_fetch_row($result)) { $NCuname = $username; $NCuid = $user_id; $NCuser_level = $user_level; if ($NCuser_level == '2') {$NCuser_level="2: Admin/Author";} echo ""; } mysql_free_result($result); echo "
PHP-Nuke Rank LevelMember NameMember UID
$NCuser_level$NCuname$NCuid
" . "
"; } } function mods() { global $prefix, $user_prefix, $dbtype, $dbname, $dbuname, $dbpass, $dbhost, $Default_Theme, $language, $locale, $Version_Num, $sitekey; global $NCsitename, $NCVersion_Num, $SERVER_NAME, $NClanguage, $NClocale, $NCsitekey, $dbi; $sql = "select uname, uid, user_level from ".$prefix."_users where user_level = '3'"; $result = mysql_query($sql); if ($result) { echo "Catch-All Moderators for $NCsitename" . "" . ""; while (list($uname, $uid, $user_level) = mysql_fetch_row($result)) { $NCuname = $uname; $NCuid = $uid; $NCuser_level = $user_level; if ($NCuser_level == '3') {$NCuser_level="3: Forum Moderator";} echo ""; } mysql_free_result($result); echo "
PHP-Nuke Rank LevelMember NameMember UID
$NCuser_level$NCuname$NCuid
" . "
"; } $sql = "select username, user_id, user_level from ".$prefix."_users where user_level = '3'"; $result = mysql_query($sql); if ($result) { echo "Catch-All Moderators for $NCsitename" . "" . ""; while (list($username, $user_id, $user_level) = mysql_fetch_row($result)) { $NCuname = $username; $NCuid = $user_id; $NCuser_level = $user_level; if ($NCuser_level == '3') {$NCuser_level="3: Forum Moderator";} echo ""; } mysql_free_result($result); echo "
PHP-Nuke Rank LevelMember NameMember UID
$NCuser_level$NCuname$NCuid
" . "
"; } } function tables() { global $prefix, $user_prefix, $dbtype, $dbname, $dbuname, $dbpass, $dbhost, $Default_Theme, $language, $locale, $Version_Num, $sitekey; global $NCsitename, $NCVersion_Num, $SERVER_NAME, $NClanguage, $NClocale, $NCsitekey, $dbi; $result = mysql_list_tables($dbname); if (!$result) { print "DB Error, could not list tables\n"; print 'MySQL Error: ' . mysql_error(); } if ($result) { echo "PHP-Nuke Show Tables for $NCsitename" . "" . ""; $i=1; while ($row = mysql_fetch_row($result)) { echo ""; $sql2 = "DESCRIBE $row[0]"; $result2 = mysql_num_rows(mysql_query($sql2)); if ($result2) { echo ""; } else { $result2 = "0"; } $sql3 = "SELECT COUNT(*) as nccount FROM ".$row[0]; $result3 = mysql_query($sql3); while (list($nccount) = mysql_fetch_row($result3)) { if ($nccount) { echo ""; } else { $nccount = 0; echo ""; } } $i++; } echo "
NumberTable NameFieldsRecords
$i$row[0]$result2$nccount$nccount
" . "
"; } } function phpini() { global $prefix, $user_prefix, $dbtype, $dbname, $dbuname, $dbpass, $dbhost, $Default_Theme, $language, $locale, $Version_Num, $sitekey; global $NCsitename, $NCVersion_Num, $SERVER_NAME, $NClanguage, $NClocale, $NCsitekey, $dbi; if ($SERVER_NAME != "www.nukecops.com" && $SERVER_NAME != "www.computercops.biz") { if (phpversion() < "4.2.0") { echo "php.ini Configuration for $NCsitename" . "" . "" . "
";
			print_r(parse_ini_file(get_cfg_var('cfg_file_path')));
			echo "

"; } else { $cfgOut = ini_get_all(); echo "php.ini Configuration for $NCsitename" . "" . "" . "" . "" . "" . "" . "" . "" . "" . "
Global / Local / Access : php.ini data
The Key for [access]
ConstantValueMeaning
PHP_INI_USER1Entry can be set in user scripts
PHP_INI_PERDIR2Entry can be set in php.ini, .htaccess, or httpd.conf
PHP_INI_SYSTEM4Entry can be set in php.ini, or httpd.conf
PHP_INI_ALL7Entry can be set anywhere
";
			print_r($cfgOut);
			echo "

"; } } if (phpversion() >= "4.3.0") { echo "MySQL Status for $NCsitename" . "" . "" . "
";
	         print_r(mysql_stat($dbi));
        	 echo "

"; } } function ncimg() { ?> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################
######################################################################################################

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

"Error", 2 => "Warning", 4 => "Parsing Error", 8 => "Notice", 16 => "Core Error", 32 => "Core Warning", 64 => "Compile Error", 128 => "Compile Warning", 256 => "User Error", 512 => "User Warning", 1024=> "User Notice" ); $user_errors = array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE); $err = "\n"; $err .= "\t".$dt."\n"; $err .= "\t".$errno."\n"; $err .= "\t".$errortype[$errno]."\n"; $err .= "\t".$errmsg."\n"; $err .= "\t".$filename."\n"; $err .= "\t".$linenum."\n"; if (in_array($errno, $user_errors)) $err .= "\t".wddx_serialize_value($vars,"Variables")."\n"; $err .= "\n\n"; echo "NCNOTICE: ".$err."

"; //// error_log($err, 3, "/usr/local/php4/error.log"); if ($errno == E_USER_ERROR) echo "Critical User Error: ".$err; //// mail("phpdev@example.com","Critical User Error",$err); } /*function distance ($vect1, $vect2) { if (!is_array($vect1) || !is_array($vect2)) { trigger_error("Incorrect parameters, arrays expected", E_USER_ERROR); return NULL; } if (count($vect1) != count($vect2)) { trigger_error("Vectors need to be of the same size", E_USER_ERROR); return NULL; } for ($i=0; $i"; $admintoken = 1; } else { echo "· Admin Security Image Not Found: $adminbg ·
"; } echo "
"; if (file_exists($yabg)) { echo "· Your_Account Security Image Found: $yabg ·
"; $yatoken = 1; } else { echo "· Your_Account Security Image Not Found: $yabg ·
"; } echo "
"; if (extension_loaded("gd") && $admintoken) { echo "Security Code Graphic for $NCsitename" . "" . "" . "" . "
Security Code Image with Random Number
" . "
"._SECURITYCODE."" . "

"; } elseif (extension_loaded("gd") && $yatoken) { echo "Security Code Graphic for $NCsitename" . "" . "" . "" . "
Security Code Image with Random Number
" . "
"._SECURITYCODE."" . "

"; } elseif (extension_loaded("gd")) { ?> GD & Security Image Data
Status
GD Loaded but security images are not present.

GD Library Information
Extension Status
Not-Loaded

php.ini location for $NCsitename" . "" . "" . "" . "
php.ini location
" . get_cfg_var("cfg_file_path") . "

"; } } ## SMTP Test block start by disgruntledtech function testmailstart() { if(!$to) { echo "Test Your SMTP Server"; echo "
"; echo ""; echo "
"; echo "Notice: leaving this script online may bring unwanted intruders using it for SPAM. Use at your own risk.

"; } } function testmail($to){ if ($_SERVER['SERVER_NAME'] != "www.nukecops.com" && $SERVER_NAME != "www.computercops.biz") { $message = "This is a test Message Sent from ".$_SERVER['SERVER_NAME']." initiated by a user at ".$_SERVER['REMOTE_ADDR'] . ". \n\n" . "Notice: leaving this script running on your server may expose it to unwanted intruders sending SPAM" . ", use at your own risk!\n\n" . "The Nuke Cops Analyzer tool is available from http://www.nukecops.com, the premiere and official member" . " of the PHP-Nuke development team. And our most excellent support and system hardening team is " . "available in the forums to help you any time. They are known as the \"Elite Nukers\". " . " This tester was developed by our Elite Nuker: disgruntledtech."; mail($to, "Nuke Cops SMTP Test Script", $message, "From: Nuke Cops SMTP Tester\r\n" ."X-Mailer: PHP/" . phpversion()); echo "Sent mail to: ".$to; echo "

"; } } ## SMTP Test block end by disgruntledtech switch($zx) { case "testmailstart": shorttop(); testmailstart(); shortend(); break; case "testmail": shorttop(); testmail($_POST[to]); shortend(); break; case "ls": global $appname; head(); ncimg(); echo "Click here for Analyzer home.

"; DirectoryListing(); echo "
Click here for Analyzer home.

"; foot(); break; case "logo": if (extension_loaded("gd")) { analyzerImage(); } else { foot(); } break; case "gfx": gfx($random_num); break; case "gfx2": gfx2($random_num); break; case "configconn": shorttop(); configconn(); shortend(); break; case "secchk": shorttop(); secchk(); shortend(); break; case "gdchk": shorttop(); gdchk(); shortend(); break; case "bulk": shorttop(); bulk(); shortend(); break; case "listdbs": shorttop(); listdbs(); shortend(); break; case "modchk": shorttop(); modchk(); shortend(); break; case "blkchk": shorttop(); blkchk(); shortend(); break; case "ranks": shorttop(); ranks(); shortend(); break; case "admins": shorttop(); admins(); shortend(); break; case "mods": shorttop(); mods(); shortend(); break; case "phpini": shorttop(); phpini(); shortend(); break; case "gfximg": shorttop(); gfximg(); shortend(); break; case "tables": shorttop(); tables(); shortend(); break; case "errchk": errorchk(); all(); break; case "power": shorttop(); enimg(); shortend(); break; case "phploc": shorttop(); phploc(); shortend(); break; default: all(); break; } function shorttop() { head(); ncimg(); main(); menu(); verchk(); } function shortend() { foot(); } function all(){ head(); ncimg(); main(); menu(); verchk(); secchk(); configconn(); gdchk(); bulk(); listdbs(); modchk(); blkchk(); ranks(); admins(); mods(); tables(); phploc(); phpini(); gfximg(); foot(); } function menu() { global $appname; echo "
"; echo "
"; } function foot() { global $appname, $total_time, $start_time; $mtime = microtime(); $mtime = explode(" ",$mtime); $mtime = $mtime[1] + $mtime[0]; $end_time = $mtime; $total_time = ($end_time - $start_time); $total_time = "Page Generation: ".substr($total_time,0,5)." seconds."; ?> Notice: leaving this script online may bring unwanted intruders using it for security attacks at your server. Use at your own risk.

Copyright 2003 Nuke Cops, Computer Cops, Paul Laudanski (AKA Zhen-Xjell).
PHP-Nuke/phpBB2 Portal Checker Version 1.89.9-a (analyze.php). For support visit Nuke Cops.
Download Analyzer - PHP Generated Logo - Rate this Resource