ports/90222: [PATCH] net/abills: update to 0.24b_2

Michael Lednev liettneff at bk.ru
Sat Dec 10 23:20:15 UTC 2005


>Number:         90222
>Category:       ports
>Synopsis:       [PATCH] net/abills: update to 0.24b_2
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Sat Dec 10 23:20:03 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     Michael Lednev
>Release:        FreeBSD 6.0-RC1 i386
>Organization:
>Environment:
System: FreeBSD mail.vibrators.ru 6.0-RC1 FreeBSD 6.0-RC1 #0: Sat Oct 15 15:30:45 MSD 2005
>Description:
- Update to 0.24b_2

Added file(s):
- files/patch-abills.sql
- files/patch-cgi-bin_admin_Abdocs.pm
- files/patch-cgi-bin_admin_Abwconf.pm.default
- files/patch-cgi-bin_admin_docs.cgi
- files/patch-cgi-bin_admin_networks.cgi
- files/patch-cgi-bin_admin_users.cgi
- files/patch-cgi-bin_manager.cgi
- files/patch-cgi-bin_templates_account.tpl
- files/patch-cgi-bin_users.cgi
- files/patch-docs_index.htm
- files/patch-language_bulgarian.pl
- files/patch-language_russian.pl
- files/patch-libexec_config.pl.default
- files/patch-libexec_periodic
- files/patch-libexec_racct.pl
- files/patch-libexec_radtest.sh
- files/patch-libexec_rauth.pl

Port maintainer (liettneff at bk.ru) is cc'd.

Generated with FreeBSD Port Tools 0.63
>How-To-Repeat:
>Fix:

--- abills-0.24b_2.patch begins here ---
diff -ruN --exclude=CVS /home/reaper/temp//net/abills/Makefile /usr/ports/net/abills/Makefile
--- /home/reaper/temp//net/abills/Makefile	Sat Dec 10 22:23:01 2005
+++ /usr/ports/net/abills/Makefile	Sat Dec 10 23:43:32 2005
@@ -6,7 +6,8 @@
 #
 
 PORTNAME=	abills
-PORTVERSION=	0.23b
+PORTVERSION=	0.24b
+PORTREVISION=	2
 CATEGORIES=	net
 MASTER_SITES=	${MASTER_SITE_SOURCEFORGE}
 MASTER_SITE_SUBDIR=	abills
@@ -39,10 +40,15 @@
 	@ ${ECHO} ""
 
 post-extract:
+	@ ${MKDIR} ${WRKSRC}/var/log/q ${WRKSRC}/var/log/devices ${WRKSRC}/cgi-bin/admin/nets ${WRKSRC}/cgi-bin/admin/graphics ${WRKSRC}/backup
+
+post-patch:
+	@ ${FIND} ${WRKSRC} -type f -name '*.orig' -exec ${RM} {} \;
 	@ ${FIND} ${WRKSRC} -type f -exec ${REINPLACE_CMD} -i '' -e 's,/usr/abills,${PREFIX}/abills,g' {} \;
 
 do-install:
 	@ ${CP} -R ${WRKSRC} ${PREFIX}
+	@ ${CHOWN} -R www ${PREFIX}/abills/cgi-bin
 
 post-install:
 	@ ${CAT} ${PKGMESSAGE}
diff -ruN --exclude=CVS /home/reaper/temp//net/abills/distinfo /usr/ports/net/abills/distinfo
--- /home/reaper/temp//net/abills/distinfo	Sat Dec 10 22:23:01 2005
+++ /usr/ports/net/abills/distinfo	Sat Dec 10 22:56:18 2005
@@ -1,2 +1,3 @@
-MD5 (abills-0.23b.tgz) = c9f97794263edaa16205dc6aae5cc07f
-SIZE (abills-0.23b.tgz) = 1239040
+MD5 (abills-0.24b.tgz) = 80da63f60a8c259b0603e7183f499b0b
+SHA256 (abills-0.24b.tgz) = 23d63e538043b20920b65094c6c939ec494fef55ae0d2f01c66833315f1c232b
+SIZE (abills-0.24b.tgz) = 1259520
diff -ruN --exclude=CVS /home/reaper/temp//net/abills/files/patch-abills.sql /usr/ports/net/abills/files/patch-abills.sql
--- /home/reaper/temp//net/abills/files/patch-abills.sql	Thu Jan  1 03:00:00 1970
+++ /usr/ports/net/abills/files/patch-abills.sql	Sat Dec 10 23:28:54 2005
@@ -0,0 +1,389 @@
+
+$FreeBSD$
+
+--- abills.sql.orig
++++ abills.sql
+@@ -1,11 +1,11 @@
+--- MySQL dump 8.22
++-- MySQL dump 9.11
+ --
+ -- Host: localhost    Database: stats
+----------------------------------------------------------
+--- Server version	3.23.53-log
++-- ------------------------------------------------------
++-- Server version	4.0.24
+ 
+ --
+--- Table structure for table 'accounts'
++-- Table structure for table `accounts`
+ --
+ 
+ CREATE TABLE accounts (
+@@ -23,7 +23,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'acct_orders'
++-- Table structure for table `acct_orders`
+ --
+ 
+ CREATE TABLE acct_orders (
+@@ -36,7 +36,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'actions'
++-- Table structure for table `actions`
+ --
+ 
+ CREATE TABLE actions (
+@@ -51,7 +51,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'admin_permits'
++-- Table structure for table `admin_permits`
+ --
+ 
+ CREATE TABLE admin_permits (
+@@ -61,7 +61,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'admins'
++-- Table structure for table `admins`
+ --
+ 
+ CREATE TABLE admins (
+@@ -73,12 +73,12 @@
+   aid smallint(6) unsigned NOT NULL auto_increment,
+   permissions varchar(60) NOT NULL default '',
+   PRIMARY KEY  (aid),
+-  UNIQUE KEY id (id),
+-  UNIQUE KEY aid (aid)
++  UNIQUE KEY aid (aid),
++  UNIQUE KEY id (id)
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'bill'
++-- Table structure for table `bill`
+ --
+ 
+ CREATE TABLE bill (
+@@ -87,7 +87,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'calls'
++-- Table structure for table `calls`
+ --
+ 
+ CREATE TABLE calls (
+@@ -112,7 +112,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'config'
++-- Table structure for table `config`
+ --
+ 
+ CREATE TABLE config (
+@@ -122,7 +122,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'docs_acct'
++-- Table structure for table `docs_acct`
+ --
+ 
+ CREATE TABLE docs_acct (
+@@ -139,7 +139,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'dunes'
++-- Table structure for table `dunes`
+ --
+ 
+ CREATE TABLE dunes (
+@@ -151,7 +151,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'exchange_rate'
++-- Table structure for table `exchange_rate`
+ --
+ 
+ CREATE TABLE exchange_rate (
+@@ -164,7 +164,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'fees'
++-- Table structure for table `fees`
+ --
+ 
+ CREATE TABLE fees (
+@@ -184,7 +184,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'filters'
++-- Table structure for table `filters`
+ --
+ 
+ CREATE TABLE filters (
+@@ -196,7 +196,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'groups'
++-- Table structure for table `groups`
+ --
+ 
+ CREATE TABLE groups (
+@@ -209,7 +209,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'holidays'
++-- Table structure for table `holidays`
+ --
+ 
+ CREATE TABLE holidays (
+@@ -219,7 +219,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'icards'
++-- Table structure for table `icards`
+ --
+ 
+ CREATE TABLE icards (
+@@ -235,7 +235,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'intervals'
++-- Table structure for table `intervals`
+ --
+ 
+ CREATE TABLE intervals (
+@@ -248,7 +248,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'ippools'
++-- Table structure for table `ippools`
+ --
+ 
+ CREATE TABLE ippools (
+@@ -260,7 +260,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'log'
++-- Table structure for table `log`
+ --
+ 
+ CREATE TABLE log (
+@@ -285,7 +285,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'mail_access'
++-- Table structure for table `mail_access`
+ --
+ 
+ CREATE TABLE mail_access (
+@@ -297,7 +297,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'mail_aliases'
++-- Table structure for table `mail_aliases`
+ --
+ 
+ CREATE TABLE mail_aliases (
+@@ -313,7 +313,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'mail_boxes'
++-- Table structure for table `mail_boxes`
+ --
+ 
+ CREATE TABLE mail_boxes (
+@@ -338,7 +338,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'mail_domains'
++-- Table structure for table `mail_domains`
+ --
+ 
+ CREATE TABLE mail_domains (
+@@ -353,7 +353,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'mail_transport'
++-- Table structure for table `mail_transport`
+ --
+ 
+ CREATE TABLE mail_transport (
+@@ -363,7 +363,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'message_types'
++-- Table structure for table `message_types`
+ --
+ 
+ CREATE TABLE message_types (
+@@ -374,7 +374,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'messages'
++-- Table structure for table `messages`
+ --
+ 
+ CREATE TABLE messages (
+@@ -393,7 +393,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'nas'
++-- Table structure for table `nas`
+ --
+ 
+ CREATE TABLE nas (
+@@ -412,7 +412,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'networks'
++-- Table structure for table `networks`
+ --
+ 
+ CREATE TABLE networks (
+@@ -426,12 +426,13 @@
+   mac varchar(18) NOT NULL default '',
+   id int(11) unsigned NOT NULL auto_increment,
+   status tinyint(2) unsigned NOT NULL default '0',
++  web_control varchar(21) default NULL,
+   PRIMARY KEY  (ip,netmask),
+   UNIQUE KEY id (id)
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'payment'
++-- Table structure for table `payment`
+ --
+ 
+ CREATE TABLE payment (
+@@ -451,7 +452,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 's_detail'
++-- Table structure for table `s_detail`
+ --
+ 
+ CREATE TABLE s_detail (
+@@ -470,7 +471,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'shedule'
++-- Table structure for table `shedule`
+ --
+ 
+ CREATE TABLE shedule (
+@@ -491,7 +492,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'trafic_tarifs'
++-- Table structure for table `trafic_tarifs`
+ --
+ 
+ CREATE TABLE trafic_tarifs (
+@@ -509,7 +510,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'userlog'
++-- Table structure for table `userlog`
+ --
+ 
+ CREATE TABLE userlog (
+@@ -526,7 +527,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'users'
++-- Table structure for table `users`
+ --
+ 
+ CREATE TABLE users (
+@@ -564,7 +565,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'users_nas'
++-- Table structure for table `users_nas`
+ --
+ 
+ CREATE TABLE users_nas (
+@@ -574,17 +575,17 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'variant'
++-- Table structure for table `variant`
+ --
+ 
+ CREATE TABLE variant (
+   vrnt smallint(5) unsigned NOT NULL default '0',
+-  hourp float(10,5) default '0.00000',
+-  abon float(10,2) default '0.00',
+-  kb float(10,5) default '0.00000',
++  hourp float(10,5) unsigned NOT NULL default '0.00000',
++  abon float(10,2) unsigned NOT NULL default '0.00',
++  kb float(10,5) unsigned default '0.00000',
+   uplimit float(10,2) default '0.00',
+   name varchar(40) NOT NULL default 'ÂÅÚ¦ÍÅÎÎÉÊ',
+-  df float(10,2) default NULL,
++  df float(10,2) unsigned default NULL,
+   ut time NOT NULL default '24:00:00',
+   dt time NOT NULL default '00:00:00',
+   logins tinyint(4) NOT NULL default '0',
+@@ -597,14 +598,14 @@
+   prepaid_trafic int(10) unsigned NOT NULL default '0',
+   change_price float(8,2) unsigned NOT NULL default '0.00',
+   activate_price float(8,2) unsigned NOT NULL default '0.00',
+-  credit_tresshold double(6,2) NOT NULL default '0.00',
++  credit_tresshold double(6,2) unsigned NOT NULL default '0.00',
+   PRIMARY KEY  (vrnt),
+   UNIQUE KEY name (name),
+   UNIQUE KEY vrnt (vrnt)
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'vid_nas'
++-- Table structure for table `vid_nas`
+ --
+ 
+ CREATE TABLE vid_nas (
+@@ -614,7 +615,7 @@
+ ) TYPE=MyISAM;
+ 
+ --
+--- Table structure for table 'web_online'
++-- Table structure for table `web_online`
+ --
+ 
+ CREATE TABLE web_online (
diff -ruN --exclude=CVS /home/reaper/temp//net/abills/files/patch-cgi-bin_admin_Abdocs.pm /usr/ports/net/abills/files/patch-cgi-bin_admin_Abdocs.pm
--- /home/reaper/temp//net/abills/files/patch-cgi-bin_admin_Abdocs.pm	Thu Jan  1 03:00:00 1970
+++ /usr/ports/net/abills/files/patch-cgi-bin_admin_Abdocs.pm	Sat Dec 10 23:29:58 2005
@@ -0,0 +1,47 @@
+
+$FreeBSD$
+
+--- cgi-bin/admin/Abdocs.pm.orig
++++ cgi-bin/admin/Abdocs.pm
+@@ -281,10 +281,10 @@
+     $TPL_INFO{SUM}=$FORM{sum};
+   
+     $TPL_INFO{DATE}=$date;
+-    $TPL_INFO{ORDER}= "<tr><td align=right>1</td><td>$orders[$FORM{orders}]</td><td align=center>$unit</td><td align=right>$count</td><td  align=right>$FORM{sum}</td><td  align=right>$FORM{sum}</td></tr>".
++    $TPL_INFO{ORDER}= "<table><tr><td align=right>1</td><td>$orders[$FORM{orders}]</td><td align=center>$unit</td><td align=right>$count</td><td  align=right>$FORM{sum}</td><td  align=right>$FORM{sum}</td></tr>".
+                    "<tr><td align=right colspan=2 rowspan=3> </td><td colspan=2>Ðàçîì áåç ÏÄÂ</td><td  colspan=2 align=right>$FORM{sum}</td></tr>".
+-                   "<td colspan=2>ÏÄÂ:</td><td  colspan=2 align=right>-</td></tr>".
+-                   "<td colspan=2>Âñüîãî ç ÏÄÂ:</td><td colspan=2 align=right>$FORM{sum}</td></tr>";
++                   "<td colspan=2>ÏÄÂ:</td><td  colspan=2 align=right>-</td></tr>\n".
++                   "<td colspan=2>Âñüîãî ç ÏÄÂ:</td><td colspan=2 align=right>$FORM{sum}</td></tr></table>\n";
+ 
+     $TPL_INFO{EXPIRE_DATE}=strftime("%d.%m.%Y", localtime(time  + 86400 * $expire_time ));
+     $mn = strftime("%m", localtime(time)) -1;
+@@ -365,7 +365,10 @@
+ # templates($type)
+ #*******************************************************************
+ sub templates  {
+-  my $type = shift;
++  my ($attr) = @_;
++  
++  my $tpl_path = ($attr->{PATH}) ? $attr->{PATH} . $tpl_path  : $tpl_path;
++  
+   my $template = '';
+   
+   
+@@ -387,7 +390,7 @@
+     close(FILE);
+   }
+  else {
+-    message('info', _INFO, "$_NOT_EXIST");
++    message('info', _INFO, "$_NOT_EXIST '$tpl_path/$FORM{show}.tpl'");
+    }
+ }
+ 
+@@ -540,4 +543,4 @@
+ 
+ =cut
+ 
+-1;
+\ No newline at end of file
++1;
diff -ruN --exclude=CVS /home/reaper/temp//net/abills/files/patch-cgi-bin_admin_Abwconf.pm.default /usr/ports/net/abills/files/patch-cgi-bin_admin_Abwconf.pm.default
--- /home/reaper/temp//net/abills/files/patch-cgi-bin_admin_Abwconf.pm.default	Thu Jan  1 03:00:00 1970
+++ /usr/ports/net/abills/files/patch-cgi-bin_admin_Abwconf.pm.default	Sat Dec 10 23:30:39 2005
@@ -0,0 +1,14 @@
+
+$FreeBSD$
+
+--- cgi-bin/admin/Abwconf.pm.default.orig
++++ cgi-bin/admin/Abwconf.pm.default
+@@ -354,7 +354,7 @@
+ $result .= '</select>';
+ 
+ $result  .= "<SELECT name=". $base_name ."y>";
+-for ($i=2001; $i<=$year; $i++) {
++for ($i=2001; $i<=$year+1; $i++) {
+    $result .= "<option value=$i";
+    $result .= ' selected' if($year eq $i ) ;
+    $result .= ">$i\n";
diff -ruN --exclude=CVS /home/reaper/temp//net/abills/files/patch-cgi-bin_admin_docs.cgi /usr/ports/net/abills/files/patch-cgi-bin_admin_docs.cgi
--- /home/reaper/temp//net/abills/files/patch-cgi-bin_admin_docs.cgi	Thu Jan  1 03:00:00 1970
+++ /usr/ports/net/abills/files/patch-cgi-bin_admin_docs.cgi	Sat Dec 10 23:30:54 2005
@@ -0,0 +1,14 @@
+
+$FreeBSD$
+
+--- cgi-bin/admin/docs.cgi.orig
++++ cgi-bin/admin/docs.cgi
+@@ -50,7 +50,7 @@
+ print "<center>\n";
+ 
+ 
+-if ($docs eq 'templates') {  templates(); }
++if ($docs eq 'templates') {  templates({ PATH => $path }); }
+ elsif ($docs eq 'accts')  {  accounts("$uid", "$login"); }
+ elsif ($docs eq 'params') {  params(); }
+ else  { params();  }
diff -ruN --exclude=CVS /home/reaper/temp//net/abills/files/patch-cgi-bin_admin_networks.cgi /usr/ports/net/abills/files/patch-cgi-bin_admin_networks.cgi
--- /home/reaper/temp//net/abills/files/patch-cgi-bin_admin_networks.cgi	Thu Jan  1 03:00:00 1970
+++ /usr/ports/net/abills/files/patch-cgi-bin_admin_networks.cgi	Sat Dec 10 23:31:19 2005
@@ -0,0 +1,88 @@
+
+$FreeBSD$
+
+--- cgi-bin/admin/networks.cgi.orig
++++ cgi-bin/admin/networks.cgi
+@@ -173,7 +173,7 @@
+  my $type = $FORM{type} || 0;
+  my $mac = $FORM{mac} || '';
+  my $status = $FORM{status} || 0;
+-
++ my $web_control =  $FORM{web_control} || '';
+ 
+  show_networks();
+  
+@@ -181,8 +181,8 @@
+ 
+ if ($FORM{add}) {
+   $sql = "INSERT INTO networks 
+-   (ip, netmask, domainname, hostname,  descr, changed, type, mac, status) values
+-   (INET_ATON('$ip'), INET_ATON('$netmask'), '$domainname', '$hostname', '$descr', now(), '$type', '$mac', '$status');";
++   (ip, netmask, domainname, hostname,  descr, changed, type, mac, status, web_control) values
++   (INET_ATON('$ip'), INET_ATON('$netmask'), '$domainname', '$hostname', '$descr', now(), '$type', '$mac', '$status', '$web_control');";
+   $q = $db->do($sql);
+     
+   if ($db->err == 1062) {
+@@ -206,7 +206,8 @@
+    changed=now(), 
+    type='$type', 
+    mac='$mac',
+-   status='$status'
++   status='$status',
++   web_control='$web_control'
+    WHERE id='$FORM{chg}';";
+   $q = $db->do($sql);
+ 	
+@@ -214,12 +215,12 @@
+ }
+ elsif($FORM{chg}) {
+ 
+-  $sql = "SELECT INET_NTOA(ip), INET_NTOA(netmask), domainname, hostname,  descr, changed, type, mac, status 
++  $sql = "SELECT INET_NTOA(ip), INET_NTOA(netmask), domainname, hostname,  descr, changed, type, mac, status, web_control 
+      FROM networks WHERE id='$FORM{chg}';";
+   my $q = $db->prepare("$sql");
+ 
+   $q->execute();
+-  ($ip, $netmask, $domainname, $hostname, $descr, $changed, $type, $mac, $status)  = $q->fetchrow_array();
++  ($ip, $netmask, $domainname, $hostname, $descr, $changed, $type, $mac, $status, $web_control)  = $q->fetchrow_array();
+   @action = ('change', "$_CHANGE");
+   message('info', $_INFO, "$_CHANGING [$ip/$netmask]");
+ }
+@@ -269,6 +270,7 @@
+ <tr><td rowspan=2>DNS</td><td>name</td><td><input type=text name=hostname value="$hostname"></td></tr>
+ <tr><td>domain</td><td><input type=text name=domainname value="$domainname"></td></tr>
+ <tr><td colspan=2>MAC:</td><td><input type=text name=mac value="$mac"></td></tr>
++<tr><td colspan=2>WEB Control (IP:PORT):</td><td><input type=text name=web_control value='$web_control'></td></tr>
+ <tr><td colspan=2>$_CHANGED:</td><td>$changed</td></tr>
+ <tr><th colspan=3 bgcolor=$_BG0>$_DESCRIBE:</th></tr>
+ <tr><td colspan=3><textarea name=descr cols=70 rows=10>$descr</textarea></td></tr>
+@@ -376,7 +378,7 @@
+ 
+ print "<h3>$_HOSTS</h3>\n";
+ $sql = "SELECT id, INET_NTOA(ip), INET_NTOA(netmask), hostname, domainname,   descr, 
+-     status, changed, type, mac 
++     status, web_control, changed, type, mac 
+      FROM networks WHERE ip>INET_ATON('$host') and ip<INET_ATON('$host')+4294967295-INET_ATON('$netmask')-1
+      ORDER BY $sort $desc;";
+ 
+@@ -395,15 +397,17 @@
+     <COL align=center span=2>
+   </COLGROUP>\n";
+ 
+- my @caption = ("-", "IP", "NETMASK", "Hostname", "Domain", "$_DESCRIBE", "$_STATUS", "-", "-");
++ my @caption = ("-", "IP", "NETMASK", "Hostname", "Domain", "$_DESCRIBE", "$_STATUS", "-", "-", "-");
+  show_title($sort, $desc, "$pg", "$op&$qs", \@caption);
+ 
+-while(($id, $ip, $netmask, $hostname, $domainname,  $descr, $status, $changed, $htype,) = $q->fetchrow_array()) {
++while(($id, $ip, $netmask, $hostname, $domainname,  $descr, $status, $web_control, $changed, $htype,) = $q->fetchrow_array()) {
+   $bg = ($bg eq $_BG1) ? $_BG2 : $_BG1;
+   my $del_button = "<A href='$SELF?op=networks&del=$id'
+         onclick=\"return confirmLink(this, '$_DELETE $host_types[$htype] $ip/$netmask?')\">$_DEL</a>";
+   print "<tr bgcolor=$bg><th><img src='../img/$host_types[$htype].gif'></th><td>$ip</td><td>$netmask</td><td><b>$hostname</b></td><td>$domainname</td>".
+-   "<td>$descr</td><td bgcolor=$scolors[$status]>$status_types[$status]</td><td><a href='$SELF?op=networks&chg=$id'>$_CHANGE</a></td><td>$del_button</td></tr>\n";
++   "<td>$descr</td><td bgcolor=$scolors[$status]>$status_types[$status]</td>
++   <th>(<a href='http://$web_control' title='WEB control'>W</a>)</th>
++   <td><a href='$SELF?op=networks&chg=$id'>$_CHANGE</a></td><td>$del_button</td></tr>\n";
+ }
+ 
+ print "</table>
diff -ruN --exclude=CVS /home/reaper/temp//net/abills/files/patch-cgi-bin_admin_users.cgi /usr/ports/net/abills/files/patch-cgi-bin_admin_users.cgi
--- /home/reaper/temp//net/abills/files/patch-cgi-bin_admin_users.cgi	Thu Jan  1 03:00:00 1970
+++ /usr/ports/net/abills/files/patch-cgi-bin_admin_users.cgi	Sat Dec 10 23:31:39 2005
@@ -0,0 +1,151 @@
+
+$FreeBSD$
+
+--- cgi-bin/admin/users.cgi.orig
++++ cgi-bin/admin/users.cgi
+@@ -3,6 +3,7 @@
+ # ~AsmodeuS~ (2004-12-05)
+ # asm at asmodeus.com.ua
+ 
++
+ use vars qw($begin_time);
+ BEGIN {
+ #Check the Time::HiRes module (available from CPAN)
+@@ -19,6 +20,7 @@
+ require 'config.pl';
+ #$foreground=1;
+ use Abwconf;
++use Abdocs;
+ $db=$Abwconf::db;
+ use Base; # Modul with base tools
+ require 'messages.pl';
+@@ -4036,7 +4038,7 @@
+     message('info', $_INFO,  "Ping  $FORM{ping}<br>Result:<br><pre>$res</pre>");
+    }
+  elsif ($FORM{hangup}) {
+-     my ($nas_ip_address, $nas_port_id, $acct_session_id) = split(/ /, $FORM{hangup}, 3);
++     my ($nas_ip_address, $nas_port_id, $acct_session_id, $user) = split(/ /, $FORM{hangup}, 4);
+ 
+      require "nas.pl";
+      my $ret = hangup("$nas_ip_address", "$nas_port_id", "", "$acct_session_id");
+@@ -4049,6 +4051,10 @@
+          "<tr><td>SESSION_ID:</td><td>$acct_session_id</td></tr>".
+          "</table>\n";
+          sleep 3;
++        open(FILE, ">>$conf{hanguplog}" ) || print "Can't open file '$conf{hanguplog}' $!";
++          print FILE "$DATE:$admin_name:$admin_ip:$user\n";
++        close(FILE);
++        
+       }
+      elsif ($ret == 1) {
+      	$msg = 'NOT supported yet';
+@@ -4130,29 +4136,54 @@
+         #print "$sum, $variant, $time_t, $traf_t // $login, $started, $duration,  $input_octets, $output_octets,  
+      	# $ex_input_octets, $ex_output_octets,  $connect_term_reason, $framed_ip_address, $lupdated";
+         
+-        if ($sum < 0) {
+-        	 message('err', 'Error', 'Wrong end data. Contact admin');
++        my $session_info = "<table width=100%>
++        <tr><td>USER_NAME</td><td>$username</td></tr>
++        <tr><td>START:</td><td> $started</td></tr>
++        <tr><td>DURATION:</td><td> $duration</td></tr>
++        <tr><td>INPUT:</td><td> $input_octets</td></tr>
++        <tr><td>OUTPUT:</td><td> $output_octets</td></tr>
++     	<tr><td>EX_INPUT:</td><td> $ex_input_octets</td></tr>
++     	<tr><td>EX_OUTPUT:</td><td>$ex_output_octets</td></tr>
++     	<tr><td>IP:</td><td> $framed_ip_address</td></tr>
++     	<tr><td>LAST_UPDATES:</td><td> $lupdated</td></tr>
++  	<tr><td>PORT_ID:</td><td> $nas_port_id</td></tr>
++  	<tr><td>NAS_IP:</td><td> $nas_ip_address</td></tr>
++  	<tr><td>CID:</td><td> $CID</td></tr>
++        <tr><td>$_SUM:</td><td>$sum</td></tr>
++        <tr><td>$_TARIF_PLAN:</td><td>$variant</td></tr>
++       </table>\n";
++        
++        if($sum == -1) {
++           message('info', $_INFO, 'Short session');
++         }
++        elsif ($sum < 0) {
++        	 message('err', 'Error', 'Wrong end data. Contact admin<br>'. $session_info);
+         	 return 0;
+          }
+-        
+-        log_print('LOG_SQL', "$sql");
+-        $nas_num = $NAS_INFO->{$nas_ip_address};
+-        $sql = "INSERT INTO log (id, login, variant, duration, sent, recv, minp, kb,  sum, nas_id, port_id, ".
+-          "ip, CID, sent2, recv2, acct_session_id) VALUES ('$username', FROM_UNIXTIME($started), ".
+-          "'$variant', '$ACCT_INFO{ACCT_SESSION_TIME}', '$ACCT_INFO{OUTBYTE}', '$ACCT_INFO{INBYTE}', ".
+-          "'$time_t', '$traf_t', '$sum', '$nas_num', ".
+-          "'$nas_port_id', INET_ATON('$framed_ip_address'), '$CID', ".
+-          "'$ACCT_INFO{OUTBYTE2}', '$ACCT_INFO{INBYTE2}',  \"$FORM{tolog}\");";
++        else {
++          log_print('LOG_SQL', "$sql");
++          $nas_num = $NAS_INFO->{$nas_ip_address};
++          $sql = "INSERT INTO log (id, login, variant, duration, sent, recv, minp, kb,  sum, nas_id, port_id, ".
++            "ip, CID, sent2, recv2, acct_session_id) VALUES ('$username', FROM_UNIXTIME($started), ".
++            "'$variant', '$ACCT_INFO{ACCT_SESSION_TIME}', '$ACCT_INFO{OUTBYTE}', '$ACCT_INFO{INBYTE}', ".
++            "'$time_t', '$traf_t', '$sum', '$nas_num', ".
++            "'$nas_port_id', INET_ATON('$framed_ip_address'), '$CID', ".
++            "'$ACCT_INFO{OUTBYTE2}', '$ACCT_INFO{INBYTE2}',  \"$FORM{tolog}\");";
++
++          log_print('LOG_SQL', "$sql");
++          $q = $db->do($sql) || die $db->errstr;
++         } 
++
++         if ($sum > 0) {
++           $sql = "UPDATE users SET deposit=deposit-$sum WHERE id='$username';";
++           log_print('LOG_SQL', "$sql");
++           $q = $db->do($sql) || die $db->errstr;
++          }
++
++
++       $message = "$_ADED to log $session_info";
++       message('info', $_INFO, $message);
+ 
+-       log_print('LOG_SQL', "$sql");
+-       $q = $db->do($sql) || die $db->errstr;
+-       
+- 
+-       if ($sum > 0) {
+-         $sql = "UPDATE users SET deposit=deposit-$sum WHERE id='$username';";
+-         log_print('LOG_SQL', "$sql");
+-         $q = $db->do($sql) || die $db->errstr;
+-        }
+       
+        }
+ 
+@@ -4160,10 +4191,11 @@
+             and nas_port_id='$FORM{nas_port_id}' and acct_session_id='$FORM{tolog}'";
+         log_print('LOG_SQL', "$sql");
+         $q = $db->do($sql) || die $db->errstr;
+-      }
+ 
+-    $message = 'added';
+-    message('info', $_INFO, $message);
++      $message = "$_DELETED";
++      message('info', $_INFO, $message);
++
++      }
+   }
+  
+  
+@@ -4229,7 +4261,7 @@
+      my $zap_button = "<a href='$SELF?op=sql_online&zap=$nas_ip_address+$nas_port_id+$acct_session_id' title='Radzap $user_name'>Z</a>";
+      $nas{$nas_ip_address} .= "<th>(<a href='$SELF?op=sql_online&ping=$framed_ip_address' title='ping'>P</a>)</th>".
+       "<th>($zap_button)</th>".
+-      "<th>(<a href='$SELF?op=sql_online&hangup=$nas_ip_address+$nas_port_id+$acct_session_id' title='hangup'>H</a>)</th></tr>\n";
++      "<th>(<a href='$SELF?op=sql_online&hangup=$nas_ip_address+$nas_port_id+$acct_session_id+$user_name' title='hangup'>H</a>)</th></tr>\n";
+      $users_count{$nas_ip_address}++ ; # = (defined($users{$nas_ip_address})) ? $users_count{$nas_ip_address}+1 : 1;
+     }
+ 
+@@ -4272,8 +4304,9 @@
+ <tr><td bgcolor=#FFFF00 width=16> </td><td>Simultaneously logins</td></tr>
+ </table> 
+ [END]
+-
+ }
++
++
+ 
+ #*******************************************************************
+ # Internet card manager
diff -ruN --exclude=CVS /home/reaper/temp//net/abills/files/patch-cgi-bin_manager.cgi /usr/ports/net/abills/files/patch-cgi-bin_manager.cgi
--- /home/reaper/temp//net/abills/files/patch-cgi-bin_manager.cgi	Thu Jan  1 03:00:00 1970
+++ /usr/ports/net/abills/files/patch-cgi-bin_manager.cgi	Sat Dec 10 23:31:56 2005
@@ -0,0 +1,352 @@
+
+$FreeBSD$
+
+--- cgi-bin/manager.cgi.orig
++++ cgi-bin/manager.cgi
+@@ -89,7 +89,8 @@
+   $login_link = "<a href=\"$SELF?op=users&chg=$uid\">$login</a>";
+ }
+ 
+-my %main_menu = ('1::users', $_USERS);
++my %main_menu = ('1::users' => $_USERS,
++                 '6::sql_online' => 'Online');
+ 
+ print "<table width=100% border=0 cellspacing=0 cellpadding=0>
+ <tr><td bgcolor=$_COLORS[9]>
+@@ -110,17 +111,24 @@
+ <center>\n";
+ 
+ 
+-if ($op eq 'payments') { form_payments();   }
+-elsif($op eq 'stats')  { stats();           }
+-elsif($op eq 'errlog') { errlog();      }
+-elsif($op eq 'chg_uvariant') { form_chg_vid();   }
+-elsif ($op eq 'profile') { profile();     }
++if ($op eq 'payments')      { form_payments(); }
++elsif($op eq 'stats')       { stats();         }
++elsif($op eq 'errlog')      { errlog();        }
++elsif($op eq 'sql_online')  { sql_online();    }
++elsif($op eq 'chg_uvariant'){ form_chg_vid();  }
++elsif ($op eq 'profile') { profile();          }
+ else {
+  users();
+ }
+ 
+ 
+ 
++if ($begin_time > 0) {
++  my $end_time = gettimeofday;
++  my $gen_time = $end_time - $begin_time;
++  $conf{version} .= " (Generation time: $gen_time)";
++}
++footer("v. $conf{version}");
+ 
+ 
+ 
+@@ -1382,9 +1390,298 @@
+ 
+ 
+ 
+-sub login_form {
+-	
+ 
++#*******************************************************************
++# Show online users
++# sql_online()
++#*******************************************************************
++sub sql_online {
++ print "<h3>". $_ONLINE ."</h3>\n";	
++ my $year = strftime("%Y", localtime(time));
++ 
++ my $NAS_INFO = nas_params();
++ if ($FORM{ping}) {
++    my $res = `ping -c 5 $FORM{ping}`;
++    message('info', $_INFO,  "Ping  $FORM{ping}<br>Result:<br><pre>$res</pre>");
++   }
++ elsif ($FORM{hangup}) {
++     my ($nas_ip_address, $nas_port_id, $acct_session_id) = split(/ /, $FORM{hangup}, 3);
++
++     require "nas.pl";
++     my $ret = hangup("$nas_ip_address", "$nas_port_id", "", "$acct_session_id");
++     
++     if ($ret == 0) {
++        $msg = "<table width=100%>\n".
++         "<tr><th colspan=2 align=left>$_HANGUPED</th></tr>".
++         "<tr><td>$_NAS:</td><td>$nas_ip_address</td></tr>".
++         "<tr><td>$_PORT:</td><td>$nas_port_id</td></tr>".
++         "<tr><td>SESSION_ID:</td><td>$acct_session_id</td></tr>".
++         "</table>\n";
++         sleep 3;
++      }
++     elsif ($ret == 1) {
++     	$msg = 'NOT supported yet';
++      }
++     message('info', $_INFO, "$msg");
++   }
++  elsif ($FORM{zap}) {
++     ($nas_ip_address, $nas_port_id, $acct_session_id)=split(/ /, $FORM{zap}, 3);
++     $sql = "UPDATE calls SET status=2 
++       WHERE nas_ip_address=INET_ATON('$nas_ip_address')
++       and nas_port_id='$nas_port_id' and acct_session_id='$acct_session_id';";
++
++     log_print('LOG_SQL', "$sql");
++     $q = $db->do($sql) || die $db->errstr;
++     $message = "<table width=100%>\n".
++     "<tr><th colspan=2 align=left>$_CLOSED</th></tr>".
++     "<tr><td>$_NAS:</td><td>$nas_ip_address</td></tr>".
++     "<tr><td>$_PORT:</td><td>$nas_port_id</td></tr>".
++     "<tr><td>SESSION_ID:</td><td>$acct_session_id</td></tr>".
++     "</table>\n";
++
++     my $nas_id = $NAS_INFO->{"$nas_ip_address"};
++     $sql = "SELECT id FROM log WHERE acct_session_id='$acct_session_id'
++       and port_id='$nas_port_id' and nas_id='$nas_id';";
++
++     log_print('LOG_SQL', "$sql");
++     $q = $db->prepare($sql) || die $db->errstr;
++     $q ->execute();
++     if ($q->rows() < 1) {
++        $message .= "<p align=center>[<a href='$SELF?op=sql_online&tolog=$acct_session_id&nas_ip_address=$nas_ip_address&nas_port_id=$nas_port_id'>add to log</a>]
++           [<a href='$SELF?op=sql_online&del=y&tolog=$acct_session_id&nas_ip_address=$nas_ip_address&nas_port_id=$nas_port_id'>$_DEL</a>]</p>";
++       }
++     else {
++     	my($sid)=$q->fetchrow();
++        print "$sid \n";
++        #my ($sum, $variant, $time_t, $traf_t) = session_sum("$RAD{USER_NAME}", $ACCT_INFO{LOGIN}, $ACCT_INFO{ACCT_SESSION_TIME}, \%ACCT_INFO);
++       }
++
++     message('info', $_INFO, $message);
++   }
++ elsif($FORM{tolog}) {
++   $sql = "SELECT user_name, UNIX_TIMESTAMP(started), acct_session_time, 
++   acct_input_octets,
++   acct_output_octets,
++   ex_input_octets,
++   ex_output_octets,
++   connect_term_reason,
++   INET_NTOA(framed_ip_address),
++   lupdated,
++   nas_port_id,
++   INET_NTOA(nas_ip_address),
++      CID
++      FROM calls 
++      WHERE nas_ip_address=INET_ATON('$FORM{nas_ip_address}')
++       and nas_port_id='$FORM{nas_port_id}' and acct_session_id='$FORM{tolog}';";
++
++
++   log_print('LOG_SQL', "$sql");
++   $q = $db->prepare($sql) || die $db->errstr;
++   $q ->execute();
++   if ($q -> rows() < 1) {
++        message('err', $_ERROR, 'NO records');
++       }
++   else {
++      if(! defined($FORM{del})) {
++     	my $ACCT_INFO = ();
++     	my($username, $started, $duration,  $input_octets, $output_octets,  
++     	  $ex_input_octets, $ex_output_octets,  $connect_term_reason, $framed_ip_address, $lupdated,
++  	  $nas_port_id, $nas_ip_address, $CID)=$q->fetchrow();
++
++
++          $ACCT_INFO{INBYTE} = $input_octets || 0;
++          $ACCT_INFO{OUTBYTE} = $output_octets || 0;
++          $ACCT_INFO{INBYTE2} = $ex_input_octets || 0;
++          $ACCT_INFO{OUTBYTE2} =  $ex_output_octets || 0;
++          $ACCT_INFO{ACCT_SESSION_TIME}  = $lupdated - $started;
++          
++        my ($sum, $variant, $time_t, $traf_t) = session_sum("$username", $started, $ACCT_INFO{ACCT_SESSION_TIME}, \%ACCT_INFO);
++        #print "$sum, $variant, $time_t, $traf_t // $login, $started, $duration,  $input_octets, $output_octets,  
++     	# $ex_input_octets, $ex_output_octets,  $connect_term_reason, $framed_ip_address, $lupdated";
++        
++        my $session_info = "<table width=100%>
++        <tr><td>USER_NAME</td><td>$username</td></tr>
++        <tr><td>START:</td><td> $started</td></tr>
++        <tr><td>DURATION:</td><td> $duration</td></tr>
++        <tr><td>INPUT:</td><td> $input_octets</td></tr>
++        <tr><td>OUTPUT:</td><td> $output_octets</td></tr>
++     	  <tr><td>EX_INPUT:</td><td> $ex_input_octets</td></tr>
++     	  <tr><td>EX_OUTPUT:</td><td>$ex_output_octets</td></tr>
++     	  <tr><td>IP:</td><td> $framed_ip_address</td></tr>
++     	  <tr><td>LAST_UPDATES:</td><td> $lupdated</td></tr>
++  	    <tr><td>PORT_ID:</td><td> $nas_port_id</td></tr>
++  	    <tr><td>NAS_IP:</td><td> $nas_ip_address</td></tr>
++  	    <tr><td>CID:</td><td> $CID</td></tr>
++        <tr><td>$_SUM:</td><td>$sum</td></tr>
++        <tr><td>$_TARIF_PLAN:</td><td>$variant</td></tr>
++       </table>\n";
++        
++        
++        if ($sum < 0) {
++        	 message('err', 'Error', 'Wrong end data. Contact admin<br>'. $session_info);
++        	 return 0;
++         }
++        
++        log_print('LOG_SQL', "$sql");
++        $nas_num = $NAS_INFO->{$nas_ip_address};
++        $sql = "INSERT INTO log (id, login, variant, duration, sent, recv, minp, kb,  sum, nas_id, port_id, ".
++          "ip, CID, sent2, recv2, acct_session_id) VALUES ('$username', FROM_UNIXTIME($started), ".
++          "'$variant', '$ACCT_INFO{ACCT_SESSION_TIME}', '$ACCT_INFO{OUTBYTE}', '$ACCT_INFO{INBYTE}', ".
++          "'$time_t', '$traf_t', '$sum', '$nas_num', ".
++          "'$nas_port_id', INET_ATON('$framed_ip_address'), '$CID', ".
++          "'$ACCT_INFO{OUTBYTE2}', '$ACCT_INFO{INBYTE2}',  \"$FORM{tolog}\");";
++
++       log_print('LOG_SQL', "$sql");
++       $q = $db->do($sql) || die $db->errstr;
++       
++ 
++       if ($sum > 0) {
++         $sql = "UPDATE users SET deposit=deposit-$sum WHERE id='$username';";
++         log_print('LOG_SQL', "$sql");
++         $q = $db->do($sql) || die $db->errstr;
++        }
++
++       $message = "$_ADED to log $session_info";
++       message('info', $_INFO, $message);
++
++      
++       }
++
++     	$sql = "DELETE FROM calls WHERE nas_ip_address=INET_ATON('$FORM{nas_ip_address}')
++            and nas_port_id='$FORM{nas_port_id}' and acct_session_id='$FORM{tolog}'";
++        log_print('LOG_SQL', "$sql");
++        $q = $db->do($sql) || die $db->errstr;
++
++      $message = "$_DELETED";
++      message('info', $_INFO, $message);
++
++      }
++  }
++ 
++ 
++ 
++ $sql = "SELECT c.user_name, if(date_format(c.started, '%Y-%m-%d')=curdate(), date_format(c.started, '%H:%i:%s'), c.started),
++ INET_NTOA(c.nas_ip_address),
++ c.nas_port_id, c.acct_session_id, SEC_TO_TIME(UNIX_TIMESTAMP() - UNIX_TIMESTAMP(c.started)),
++ c.acct_input_octets, c.acct_output_octets, c.ex_input_octets, c.ex_output_octets,
++ INET_NTOA(c.framed_ip_address), c.status,
++ u.fio, u.phone, u.variant, u.deposit, u.credit, u.speed, u.uid, c.CID, c.CONNECT_INFO
++ FROM calls c
++  LEFT JOIN users u ON u.id=user_name
++ WHERE c.status=1 or c.status>=3
++ ORDER BY c.nas_ip_address, c.nas_port_id;";
++
++ log_print('LOG_SQL', "$sql");
++
++ $q = $db->prepare($sql)   || die $db->errstr;
++ $q ->execute();
++ 
++ $total = $q->rows;
++ my %dub_logins = ();
++ my %dub_ports = ();
++ 
++  while(my($user_name, $started, $nas_ip_address, $nas_port_id, $acct_session_id, $acct_session_time,
++     $acct_input_octets, $acct_output_octets, $ex_input_octets, $ex_output_octets, $framed_ip_address, 
++     $status,
++     $fio, $phone, $variant, $deposit, $credit, $speed, $uid, $CID, $CONNECT_INFO) = $q->fetchrow()) {
++     $acct_input_octets = int2byte($acct_input_octets);
++     $acct_output_octets = int2byte($acct_output_octets);
++
++    if (defined($dub_logins{"$user_name"})) {
++      $bg='#FFFF00';
++       }
++    elsif (defined($dub_ports{$nas_ip_address}{$nas_port_id}) && $nas_port_id != 0) {
++       $bg='#00FF40';
++      }
++    elsif ($status > 3) {
++       $bg='#FF0000';
++      }
++    else {
++      $bg = ($bg eq $_BG1) ? $_BG2 : $_BG1;
++     }
++    
++     $dub_ports{$nas_ip_address}{$nas_port_id}=$user_name;
++     $dub_logins{"$user_name"}++;
++
++     $nas{$nas_ip_address} .= "<tr bgcolor=$bg><td><a href='$SELF?op=users&uid=$uid' ".
++     "title='$_FIO: $fio\n$_PHONE: $phone\n$_VARIANT: $variant\n$_DEPOSIT: $deposit\n".
++     "$_CREDIT: $credit\n$_SPEED: $speed\nSESSION_ID: $acct_session_id\nCID: $CID\nCONNECT_INFO: $CONNECT_INFO'>$user_name</a></td>
++     <td>$fio</td>
++     <td>$nas_port_id</td>
++     <td>$framed_ip_address</td>
++     <td>$acct_session_time</td><td>$acct_input_octets</td><td>$acct_output_octets</td>".
++     "<!-- <td>$acct_session_id</td>-->";
++    
++      if ($conf{ex_trafic} eq 'yes') {
++         $ex_input_octets = int2byte($ex_input_octets);
++         $ex_output_octets = int2byte($ex_output_octets);
++         $nas{$nas_ip_address} .= "<td>$ex_input_octets</td><td>$ex_output_octets</td>";
++       }
++    
++     my $zap_button = "<a href='$SELF?op=sql_online&zap=$nas_ip_address+$nas_port_id+$acct_session_id' title='Radzap $user_name'>Z</a>";
++     $nas{$nas_ip_address} .= "<th>(<a href='$SELF?op=sql_online&ping=$framed_ip_address' title='ping'>P</a>)</th>".
++      "<th>($zap_button)</th>".
++      "<th>(<a href='$SELF?op=sql_online&hangup=$nas_ip_address+$nas_port_id+$acct_session_id' title='hangup'>H</a>)</th></tr>\n";
++     $users_count{$nas_ip_address}++ ; # = (defined($users{$nas_ip_address})) ? $users_count{$nas_ip_address}+1 : 1;
++    }
++
++print "$_TOTAL: $total<br>
++ <TABLE width=95% cellspacing=0 cellpadding=0 border=0>
++ <TR><TD bgcolor=$_BG4>
++ <TABLE width=100% cellspacing=1 cellpadding=0 border=0>
++ <tr bgcolor=$_BG0><th>$_LOGIN</th><th>$_FIO</th><th>PORT</th><th>IPs</th><th>$_DURATION</th><th width=50>IN</th><th width=50>OUT</th>";
++
++     if ($conf{ex_trafic} eq 'yes') {
++       print "<th>exIN</th><th>exOUT</th>";
++       $colspan = 9;
++       $align=7;
++      }
++    else {
++       $colspan = 7;
++       $align=5;
++     }
++print "<!-- <th>SID</th> --><th>-</th><th>-</th><th>-</th></tr>\n".
++ "<COLGROUP width=20>
++    <COL align=left span=2>
++    <COL align=right span=$align>
++    <COL align=center span=3>
++  </COLGROUP>\n";
++
++my $names = $NAS_INFO->{name};
++my %NAS_IDS = reverse %$NAS_INFO;
++
++while(($k, $v)=each %$names) {
++   print  "<tr><th align=left class=small colspan=$colspan bgcolor=$_BG0>  $k:$NAS_INFO->{name}{$k} / $NAS_IDS{$k} / $NAS_INFO->{nt}{$k} / $users_count{$NAS_IDS{$k}}</th></tr>\n".
++       "$nas{$NAS_IDS{$k}}\n";
++ }
++
++ print "</table></td></tr></table>\n";
++
++print << "[END]";
++<table>
++<tr><td bgcolor=#FF0000 width=16> </td><td>Suspicion session</td></tr>
++<tr><td bgcolor=#00FF00 width=16> </td><td>Dublicate ports</td></tr>
++<tr><td bgcolor=#FFFF00 width=16> </td><td>Simultaneously logins</td></tr>
++</table> 
++[END]
++}
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++sub login_form {
+ print << "[END]"
+ <form action=$SELF_URL>
+ <TABLE width=400 cellspacing=0 cellpadding=0 border=0><TR><TD bgcolor=$_BG4>
+@@ -1407,5 +1704,4 @@
+ </td></tr></table>
+ </form>
+ [END]
+-
+ }
diff -ruN --exclude=CVS /home/reaper/temp//net/abills/files/patch-cgi-bin_templates_account.tpl /usr/ports/net/abills/files/patch-cgi-bin_templates_account.tpl
--- /home/reaper/temp//net/abills/files/patch-cgi-bin_templates_account.tpl	Thu Jan  1 03:00:00 1970
+++ /usr/ports/net/abills/files/patch-cgi-bin_templates_account.tpl	Sat Dec 10 23:32:15 2005
@@ -0,0 +1,103 @@
+
+$FreeBSD$
+
+--- cgi-bin/templates/account.tpl.orig
++++ cgi-bin/templates/account.tpl
+@@ -1,20 +1,18 @@
+-<table width=640>
+-<tr><td>
+-<table width=100%>
+-<tr><td valign=top><b>Ïîñòà÷àëüíèê</b></td><td>  </td><td colspan=2>ϳäïðèºìåöü Çâºðºâ ßê³â Âîëîäèìèðîâè÷<br> 
+-                             ªÄÐÏÎÓ 2680610255, òåë. (03478) 20358<br>
+-		             Ð/ð 26007559082001 â ÊÁ ÏðèâàòÁàíê ²âàíî-Ôðàíê³âñüêèé ô³ë³àë ÌÔÎ 336677<br>
+-		             ²ÏÍ 2680610255, íîìåð ñâ³äîöòâà 65991451<br>
+-		             Àäðåñà: Êóòè, âóë. Êîñ³âñüêà, 1<br>
+-		             </td></tr>
+-<tr><td><b>Îäåðæóâà÷</b></td><td>  </td><td colspan=2>%CUSTOMER%</td></tr>
+-<tr><td> </td><td>  </td><td>Òåë. %PHONE%</td><td>Âàëþòà  Ãðèâíÿ</td></tr>
+-<tr><td><b>Ïëàòíèê</b></td><td>  </td><td>%CUSTOMER%</td><td>Íà äàòó  %DATE%</td></tr>
+-<tr><td><b>Óìîâà ïðîäàæó</b></td><td>  </td><td>Ïîïåðåäíÿ îïëàòà</td><td> </td></tr>
+-</table>
++
<pre>
++Ïîñòà÷àëüíèꠠϳäïðèºìåöü Çâºðºâ ßê³â Âîëîäèìèðîâè÷ 
++		     ªÄÐÏÎÓ 2680610255, òåë. (03478) 20358
++		     Ð/ð 26007559082001 â ÊÁ ÏðèâàòÁàíê ²âàíî-Ôðàíê³âñüêèé ô³ë³àë ÌÔÎ 336677
++		     ²ÏÍ 2680610255, íîìåð ñâ³äîöòâà 65991451
++		     Àäðåñà: Êóòè, âóë. Êîñ³âñüêà, 1
++		     
++Îäåðæóâà÷  %CUSTOMER%
++   Òåë. %PHONE%Âàëþòà  Ãðèâíÿ
++Ïëàòíèê  %CUSTOMER%Íà äàòó  %DATE%
++Óìîâà ïðîäàæó  Ïîïåðåäíÿ îïëàòà 
+ 
+-<h3 align=center>Ðàõóíîê-ôàêòóðà ¹ I-%NUM%<br>
+-â³ä %FROM_LIT_DATE%.</h3>
++
++Ðàõóíîê-ôàêòóðà ¹ I-%NUM%
++â³ä %FROM_LIT_DATE%.
+ 
+ 
+ 
+@@ -22,46 +20,37 @@
+ 
+ 
+ 
+-<table width=100% border=1>
+-<tr bgcolor=EEEEEE><th>¹</th><th>Òîâàð</th><th>Îä.</th><th>ʳëüê³ñòü</th><th>Ö³íà</th><th>Ñóìà</th></tr>
++
++¹ÒîâàðÎä.ʳëüê³ñòüÖ³íàÑóìà
+ 
+ %ORDER%
+-</table>
+-<table width=100%>
+-<tr><td colspan=3>
+-<p>
+-<br><b>Âñüîãî íà ñóìó:</b>
+-<br>%SUM_LITERAL%
+-<br><b>ÏÄÂ:</b>      0.00 UAH
+-</td></tr>
+-<tr><td><b>Âèïèñàâ(ëà)</b></td><td colspan=2 align=right>
++
++
++
++
++
++Âñüîãî íà ñóìó:
++%SUM_LITERAL%
++ÏÄÂ:      0.00 UAH
+ 
+-<p class=MsoNormal style='margin-left:50.4pt'><span style='position:absolute;
+-z-index:-1;left:0px;margin-left:549px;margin-top:-50px;width:85px;height:85px'><img
+-width=85 height=85 src="/billing/img/signature.jpg"></span></p>
++Âèïèñàâ(ëà)
+ 
+ 
+-<span style='position:absolute;z-index:-2;left:0px;margin-left:450px;margin-top:-10px;width:124px;height:124px'>
+-<img width=124 height=124 src="/billing/img/stamp.jpg">
+-</span>
+ 
+ 
+-  ________________________
+ 
+-</td></tr>
+-<tr><td> </td><td colspan=2 align=right>Çâºðºâ ßê³â Âîëîäèìèðîâè÷</td></tr>
+-<tr><td colspan=3 align=right>Ðàõóíîê ä³éñíèé äî ñïëàòè äî %EXPIRE_DATE%</td></tr>
+-</table>
+ 
+-</td></tr>
+-</table>
+ 
+ 
+ 
++  ________________________
++
+ 
++ Çâºðºâ ßê³â Âîëîäèìèðîâè÷
++Ðàõóíîê ä³éñíèé äî ñïëàòè äî %EXPIRE_DATE%
+ 
+ 
+ 
+ 
+ 
+-
++</pre>
diff -ruN --exclude=CVS /home/reaper/temp//net/abills/files/patch-cgi-bin_users.cgi /usr/ports/net/abills/files/patch-cgi-bin_users.cgi
--- /home/reaper/temp//net/abills/files/patch-cgi-bin_users.cgi	Thu Jan  1 03:00:00 1970
+++ /usr/ports/net/abills/files/patch-cgi-bin_users.cgi	Sat Dec 10 23:32:38 2005
@@ -0,0 +1,150 @@
+
+$FreeBSD$
+
+--- cgi-bin/users.cgi.orig
++++ cgi-bin/users.cgi
+@@ -124,6 +124,13 @@
+    '2:msgs', $_MESSAGES,
+    '1:stats', $_STATS
+    );
++ 
++ 
++
++ 
++ if ($conf{user_chg_passwd} eq 'yes') {
++ 	 $main_menu{'5:passwd'}="$_PASSWD";
++  }
+ 
+  my @menu_keys = sort keys %main_menu;
+ 
+@@ -156,6 +163,9 @@
+       	show_user_accounts($uid);
+        }
+    }
++  elsif($op eq 'passwd') {
++  	 chg_password($uid);
++   }
+   else {
+     #$login = get_login($uid);
+     user_stats($login);
+@@ -165,24 +175,72 @@
+ 
+ 
+ #*******************************************************************
++# chg_password($uid);
++#*******************************************************************
++sub chg_password {
++ my ($uid) = @_;
++
++print "<h3>$_PASSWD</h3>\n";
++
++
++if ($FORM{change}) {
++  if (length($FORM{password}) < $conf{passwd_length}) {
++     message('err', $_ERROR, "$ERR_SHORT_PASSWD");
++   }
++  elsif ($FORM{password} ne $FORM{confirm}) {
++     message('err', $_ERROR, "$ERR_WRONG_CONFIRM");
++   }
++  else {
++    my $sql = "UPDATE users SET password=ENCODE('$FORM{password}', '$conf{secretkey}')
++       WHERE uid='$uid';";
++    log_print('LOG_SQL', $sql);
++     $q = $db->do($sql) || die $db->strerr;
++    message('info', $_CHANGE_PASSWD, "$_CHANGED");
++   }
++  return 0;	
++}
++
++
++print << "[END]";
++<form action=$SELF METHOD=POST>
++<input type=hidden name=op value=passwd>
++<input type=hidden name=uid value=$uid>
++<input type=hidden name=sid value=$sid>
++
++<TABLE width=400 cellspacing=0 cellpadding=0 border=0><TR><TD bgcolor=$_BG4>
++<TABLE width=100% cellspacing=1 cellpadding=0 border=0><TR><TD bgcolor=$_BG1>
++<TABLE width=100% cellspacing=0 cellpadding=0 border=0>
++<tr><td>$_PASSWD:</td><td><input type=password name=password value=''></td></tr>
++<tr><td>$_CONFIRM:</td><td><input type=password name=confirm value=''></td></tr>
++</table>
++</td></tr></table>
++</td></tr></table>
++</table>
++<input type=submit name=change value='$_CHANGE'>
++</form>
++[END]
++}
++
++#*******************************************************************
+ # user_stats($uid)
+ #*******************************************************************
+ sub user_stats {
+- my $uid = shift;
++ my $u_name = shift;
+  my $show = '';
+  
+-$sql = "select u.variant, u.credit, u.deposit, u.speed, v.name, u.activate, u.expire
++$sql = "select u.uid, u.variant, u.credit, u.deposit, u.speed, v.name, u.activate, u.expire
+  from users u,  variant v 
+- where u.variant=v.vrnt and u.id='$uid'";
++ where u.variant=v.vrnt and u.id='$u_name'";
+ 
+ my $q = $db->prepare("$sql");
+ $q->execute();
+-my ($variant, $debt, $money, $speed, $v_name, $activate, $expire) = $q->fetchrow_array();
++my ($uid, $variant, $debt, $money, $speed, $v_name, $activate, $expire) = $q->fetchrow_array();
+ $q->finish;
+ 
+ my $q = $db->prepare("select date, sum from payment where uid='$uid' ORDER BY date DESC LIMIT 1;");
+ $q->execute();
+ my ($pdate, $psum) = $q->fetchrow_array() if ($q->rows > 0);
++
+ $q->finish;
+ 
+ my $speed = ($speed > 0) ? "<tr bgcolor=$_BG1><td><b>$_SPEED:</b></td><td>$speed Kbit/set</td></tr>\n" : '' ;
+@@ -190,7 +248,7 @@
+ print "<TABLE width=400 cellspacing=0 cellpadding=0 border=0>
+   <TR><TD bgcolor=$_BG4>
+   <TABLE width=100% cellspacing=1 cellpadding=0 border=0>
+-<tr bgcolor=$_BG1><td><b>$_USER:</b></td><td>$uid</td></tr>
++<tr bgcolor=$_BG1><td><b>$_USER:</b></td><td>$u_name</td></tr>
+ <tr bgcolor=$_BG1><td><b>$_CREDIT:</b></td><td align=right><!--CREDIT_BEGIN-->$debt<!--CREDIT_END--></td></tr>
+ <tr bgcolor=$_BG1><td><b>$_BALANCE:</b></td><td align=right><!--DEPOSIT_BEGIN-->$money<!--DEPOSIT_END--></td></tr>
+ <tr bgcolor=$_BG1><td><b>$_VARIANT:</b></td><td>$variant ($v_name)</td></tr>
+@@ -213,7 +271,7 @@
+  INET_NTOA(framed_ip_address),
+  CID
+  from calls 
+- WHERE user_name='$uid' and (status=1 or status>=3);";
++ WHERE user_name='$u_name' and (status=1 or status>=3);";
+  
+ $q = $db->prepare("$sql");
+ $q->execute();
+@@ -261,7 +319,7 @@
+   SEC_TO_TIME(sum(if(date_format(login, '%Y-%m')=date_format(curdate(), '%Y-%m'), duration, 0))),
+   
+   sum(sent), sum(recv), SEC_TO_TIME(sum(duration))
+-FROM log WHERE id='$uid';") || die $db->strerr;
++FROM log WHERE id='$u_name';") || die $db->strerr;
+   $q -> execute ();
+  print "<table width=640 border=0 cellspacing=0 cellpadding=0><tr><td bgcolor=000000>
+  <table width=100% border=0 cellspacing=1 cellpadding=2><tr><td bgcolor=FFFFFF>\n";
+@@ -325,7 +383,7 @@
+  <td><input type=submit name=show value=$_SHOW></td></tr></table>
+  </form>\n";
+ 
+-my $WHERE = "WHERE id='$uid' ";
++my $WHERE = "WHERE id='$u_name' ";
+ 
+ if (defined($FORM{show})) {
+   $show = "&show=y&rows=$max_recs&fromd=$FORM{fromd}&fromm=$FORM{fromm}&fromy=$FORM{fromy}&tod=$FORM{tod}&tom=$FORM{tom}&toy=$FORM{toy}";
+@@ -469,6 +527,7 @@
+   return 0;
+  }
+ elsif (length($sid) > 1) {
++
+   if (defined($h{$sid})) {
+     ($uid, $time, $login, $ip)=split(/:/, $h{$sid});
+     my $cur_time = time;
diff -ruN --exclude=CVS /home/reaper/temp//net/abills/files/patch-docs_index.htm /usr/ports/net/abills/files/patch-docs_index.htm
--- /home/reaper/temp//net/abills/files/patch-docs_index.htm	Thu Jan  1 03:00:00 1970
+++ /usr/ports/net/abills/files/patch-docs_index.htm	Sat Dec 10 23:33:02 2005
@@ -0,0 +1,48 @@
+
+$FreeBSD$
+
+--- docs/index.htm.orig
++++ docs/index.htm
+@@ -343,12 +343,14 @@
+      RewriteRule ^(.*) - [E=HTTP_CGI_AUTHORIZATION:%1]<br />
+      Options Indexes ExecCGI SymLinksIfOwnerMatch<br />
+   </span>
+-  <IfModule><br />
++  </IfModule><br />
+ 
+   Options Indexes ExecCGI FollowSymLinks<br />
+   AllowOverride none<br />
+   DirectoryIndex users.cgi<br />
+   AddHandler cgi-script .cgi<br />
++  Order allow,deny<br />
++  Allow from all<br />
+ </span>
+ </Directory><br />
+ <br />
+@@ -356,7 +358,7 @@
+ <br />
+ <Directory "/usr/abills/cgi-bin/admin"><br />
+ <span class="indent">
+-  Options Indexes ExecCGI<br />
++  Options Indexes ExecCGI SymLinksIfOwnerMatch<br />
+   AllowOverride none<br />
+   DirectoryIndex users.cgi<br />
+   order deny,allow<br />
+@@ -499,7 +501,7 @@
+ <p>
+ <code>
+ MYADDR:<br />
+- !bg /usr/abills/libexec/linkupdown up INTERFACE USER HISADDR<br />
++  !bg /usr/abills/libexec/linkupdown up INTERFACE USER HISADDR<br />
+ </code></p></div>
+ 
+ 
+@@ -507,7 +509,7 @@
+ <div class="example">
+ <p>
+ <code>
+-MYADDR:
++MYADDR:<br />
+  !bg /usr/abills/libexec/linkupdown down INTERFACE USER HISADDR
+ </code></p></div>
+ 
diff -ruN --exclude=CVS /home/reaper/temp//net/abills/files/patch-language_bulgarian.pl /usr/ports/net/abills/files/patch-language_bulgarian.pl
--- /home/reaper/temp//net/abills/files/patch-language_bulgarian.pl	Thu Jan  1 03:00:00 1970
+++ /usr/ports/net/abills/files/patch-language_bulgarian.pl	Sat Dec 10 23:33:24 2005
@@ -0,0 +1,522 @@
+
+$FreeBSD$
+
+--- language/bulgarian.pl.orig
++++ language/bulgarian.pl
+@@ -1,245 +1,271 @@
+-# Charset Windows-1251
+- at PERIODS=('Äíåñ', 'Â÷åðà', 'Ñåäìèöà', 'Ìåñåö', 'Âñè÷êè ñåñèè', 'Îò àêòèâàöèÿòà');
+- at MONTHES=('ßíóàðè', 'Ôåâðóàðè', 'Ìàðò', 'Àïðèë', 'Ìàé', 'Þíè', 'Þëè', 'Àâãóñò',  'Ñåïòåìâðè', 'Îêòîìâðè', 'Íîåìâðè', 'Äåêåìâðè');
+- at WEEKDAYS=('Ïî÷èâêè', 'Ïîí', 'Âò', 'Ñð', '×åò', 'Ïåò', 'Ñúá', 'Íåä');
+-
+-$_ADD='Äîáàâè';
+-$_GET='Âçåìè';
+-$_GETED='Âçåòî';
+-$_DEL='Èçòðèé';
+-$_CHANGE='Ïðîìåíè';
+-$_CHANGING='Ïðîìÿíà';
+-$_ADDED='Äîáàâåí';
+-$_DELETED='Èçòðèò';
+-$_CHANGED='Ïðîìåíåí';
+-$_ROWS='Ðåä';
+-$_FEES='Õîíîðàð';
+-$_SIMULTANEOUSLY='Åäíîâðåìåííî';
+-$_MONETARY_UNIT='Ïàðè÷íà åäèíèöà';
+-$_INPAYMENTS ='Âçåòè ïëàùàíèÿ';
+-$_BACK_PAY='Âúðíè ñå';
+-$_BACK_MONEY='Âðúùàíå íà ïàðè';
+-$_NOT_EXIST='Íå ñúùåñòâóâà';
+-$_SEND_MAIL='Ïðàòè ìåéë';
+-$_MESSAGE='Òåêñò';
+-$_MESSAGES='Ñúîáùåíèÿ';
+-$_MESSAGES_DESCRIBE='Âñè÷êè ïèòàíèÿ ìîæåòå äà èçïðàùàòå äî àäìèíèñòðàòîðà.';
+-$_SUBJECT='Òåìà';
+-$_DEPOSIT='Äåïîçèò';
+-$_ACTIVATE='Àêòèâàöèÿ';
+-$_ACTIV='Àêòèâåí';
+-$_SEND='Èçïðàòè';
+-$_SENDED='Èçïðàòåí';
+-$_TO_USER='Äî ïîòðåáèòåë';
+-$_MAIL_BOX='Ïîùåíñêà êóòèÿ';
+-$_WRONG_EMAIL='Ãðåøåí ìåéë';
+-$_ERROR_LOG='Ëîã ñ ãðåøêèòå';
+-$_FIO='Èìå , Ôàìèëèÿ';
+-$_ADDRESS='Àäðåñ';
+-$_PHONE='Òåëåôîí';
+-$_COMMENTS='Êîìåíòàðè';
+-$_REGISTRATION='Ðåãèñòðàöèÿ';
+-$_EXPIRE='Èçòè÷à';
+-
+-$_USER_INFO='Èíôîðìàöèÿ çà ïîòðåáèòåë';
+-$_TOTAL='Îáùî';
+-$_USERS='Ïîòðåáèòåëè';
+-$_USER='Ïîòðåáèòåë';
+-$_NAME='Èìå';
+-$_VARIANT='Ïàêåò';
+-$_VARIANTS='Ïàêåòè';
+-$_PREPAID='Ïðåäïëàòåí';
+-$_TRAFIC_TARIFS='Òàðèôè çà òðàôèê';
+-$_YEAR='Ãîäèíà';
+-$_DAY='Äåí';
+-$_WEEK='Ñåäìèöà';
+-$_MONTH='Ìåñåö';
+-$_CREDIT='Êðåäèò';
+-$_SUM='Îáùî';
+-$_NO_SUM='Ïîñòàâè ñóìà';
+-$_PAYMENTS='Ïëàùàíèÿ';
+-$_NUM='Íîìåð';
+-$_DESCRIBE='Îïèøè';
+-$_OPERATOR='Îïåðàòîð';
+-$_DATE='Äàòà';
+-$_OPTIONS='Îïöèè';
+-$_STATS='Ñòàòèñòèêè';
+-$_FROM='Îò';
+-$_TO='Äî';
+-$_DELETE_USER='Èçòðèé ïîòðåáèòåë';
+-$_DELETED_USER='Ïîòðåáèòåëÿò å èçòðèò';
+-$_PAYMENT_DELETED='Ïëàùàíèÿòà ñà èçòðèòè';
+-$_PAYMENT_ADDED='Ïëàùàíåòî å äîáàâåíî';
+-$_PAYMENT_NOTEXIST='Íå ñúùåñòâóâà ïëàùàíå';
+-$_USER_EXIST='Ïîòðåáèòåëÿò âå÷å ñúùåñòâóâà';
+-$_USER_NOT_EXIST='Ïîòðåáèòåëÿò íå ñúùåñòâóâà';
+-$_SELECT_USER='Èçáåðè ïîòðåáèòåë';
+-$_RECORDS='Çàïèñêè';
+-$_WRONG_PASSWD='Ãðåøíà ïàðîëà ';
+-$_LOGOUT='Èçëåç';
+-$_TRAFFIC='Òðàôèê';
+-$_DURATION='Âðåìåòðàåíå';
+-$_DAY_DURATION='Ëèìèò íà äåí';
+-$_LOGIN='Ëîãèí';
+-$_LOGINS='Ñåñèè';
+-$_PASSWD='Ïàðîëà';
+-$_CONFIRM='Ïîòâúðæäåíèå';
+-
+-$_ENTER='Ïîñòàâè';
+-$_BALANCE='Áàëàíñ';
+-$_PERIOD='Ïåðèîä';
+-$_SENT='Èçïðàòåíè';
+-$_RECV='Ïðèåòè';
+-$_LAST_PAYMENT='Ïîñëåäíî ïëàùàíå';
+-$_LAST_LOGIN='Ïîñëåäíà ñåñèÿ';
+-$_LAST='Ïîñëåäíè ñåñèè';
+-$_NOT_LOGINED='Íå ñå å ëîãâàë';
+-$_WELCOME='Äîáðå äîøëè';
+-$_SHOW='Ïîêàæè';
+-$_SESSIONS='Ñåñèè';
+-$_SESSION_ID='Ñåñèÿ ID';
+-$_PER_MONTH='Íà ìåñåö';
+-
+-$_HOUR_TARIF='Âðåìåâà òàðèôà';
+-$_BYTE_TARIF='Òðàôèê òàðèôà';
+-$_TRAFFIC='Òðàôèê';
+-$_MONTH_FEE='Ìåñå÷íà ñìåòêà';
+-$_DAY_FEE='Äíåâêà ñìåòêà';
+-$_UPLIMIT='Ïðåäóïðåæäåíèå';
+-$_BEGIN='Íà÷àëî';
+-$_END='Êðàé';
+-
+-$_EXIST='Ñúùåñòâóâà';
+-$_COUNT='áðîé';
+-$_CREDITORS='Êðåäèòîðè';
+-$_PERMISSION='Ïðàâîìîùèÿ';
+-
+-#Online
+-$_HANGUP='Çàòâîðè';
+-$_HANGUPED='Çàòâîðèë';
+-#Other
+-$_OTHER='Äðóãè';
+-$_SQL_BACKUP='SQL backup';
+-$_ADMINS='Àäìèíèñòðàòîðè';
+-$_GROUPS='Ãðóïè';
+-$_CHANGE_PASSWD='Ñìåíè ïàðîëà';
+-$_GEN_PASSWD='Ãåíåðèðàíà ïàðîëà';
+-$_CONFIRM_PASSWD='Ïîòâúðäè ïàðîëà';
+-$_MAKE_BACKAUP='Íàïðàâè áàêúï';
+-$_SIZE='Ðàçìåð';
+-
+-$_MIN='Ìèí.';
+-$_AVG='Ñðåäíî';
+-$_MAX='Ìàêñèìàëíî';
+-$_INTERVALS='Èíòåðâàëè';
+-$_NO_RECORD='Çàïèñêèòå íå ñúùåñòâóâàò';
+-
+-#leased
+-
+-$_TIME_LIMIT='Ëèìèò íà âðåìå';
+-$_TRAF_LIMIT='Ëèìèò íà òðàôèê';
+-
+-$_LIMIT = 'Ëèìèò';
+-$_SPEED = 'Ñêîðîñò';
+-$_STATUS = 'Ñòàòóñ';
+-$_TIME = 'Âðåìå';
+-$_USED='Ïîëçâàíî';
+-$_REMAIN='Îñòàâà';
+-$_SET='Äîáàâè';
+-$_RESET='Îòêàæè';
+-$_RESETED='Îòêàçàíî';
+-$_FILTERS='Ôèëòðè';
+-$_DOCS='Äîêóìåíòè';
+-$_NAS_CONFIG='Êîíôèãóðàöèÿ íà ÍÀÑ';
+-$_NAS_STATISTIC='Ñòàòèñòèêè íà ÍÀÑ';
+-$_NAS='ÍÀÑ';
+-$_NASS='ÍÀÑ';
+-$_PORT='Ïîðò';
+-$_REDUCTION='Íàìàëåíèå';
+-
+-
+-$_SEARCH='Òúðñè';
+-$_TEXT='Òåêñò';
+-$_TYPE='Òèï';
+-$_RESULT='Ðåçóëòàò';
+-$_PARAM='Ïàðàìåòúð';
+-$_PARAMS='Ïàðàìåòðè';
+-$_VALUE='Ñòîéíîñò';
+-$_FILE='Ôàéë';
+-$_TEMPLATES='Òåìïëåéò';
+-
+-
+-$_ERROR = 'Ãðåøêà';
+-$_INFO = 'Èíôîðìàöèÿ';
+-$_ACCOUNTS= 'Àêàóíòè';
+-$_ACCOUNT='Àêàóíò';
+-$_CREATE='Ñúçäàé';
+-$_CREATED='Ñúçäàäåí';
+-$_CUSTOMER='Êëèåíò';
+-$_PRE='Ïðåãëåä';
+-$_ORDER='Ïîðú÷àé';
+-$_PRINT='Ïðèíòèðàé';
+-$_ACCOUNT_EXIST='Àêàóíòà ñúùåñòâóâà';
+-$_SDETAIL='Äåòàéëè íà ñåñèèòå';
+-
+-$_AUTH='Àâòîðèçàöèÿ';
+-$_SHORT_NAME="Êðàòêî èìå";
+-$_MANAGE = 'Ïîïðàâè';
+-
+-$_SHOW_ALL = 'Ïîêàæè âñè÷êè';
+-$_CARD_SERVICE = 'Êàðòè';
+-$_ICARDS= 'Èíòåðíåò êàðòè';
+-$_PAY_CARDS = 'Ïëàòåæíè êàðòè';
+-$_PREFIX = 'Prefix';
+-$_AGE='Âúçðàñò';
+-$_DAYS='Äíè';
+-$_HOURS='×àñîâå';
+-$_ALL='Âñè÷êè';
+-$_STATE = 'Ñòàòóò';
+-$_EXCHANGE_RATE = "Îáìåíåí õîä";
+-$_MONEY = 'Ïàðè';
+-$_REPLY = 'Îòãîâîðè';
+-
+-$_BANK_INFO='Áàíêà';
+-$_TAX_NUMBER='Èäåíòèôèêàòîð';
+-$_BANK_NAME='Èìå íà áàíêàòà';
+-$_COR_BANK_ACCOUNT='Cor acct';
+-$_BANK_BIC='BIK';
+-$_PROFILE='Ïðîôèë';
+-
+-#Day of week
+-$_HOSTS='Hosts';
+-$_NETWORKS='Ìðåæè';
+-$_HOLIDAYS = 'Ïðàçíèöè/Ïî÷èâêè';
+-$_DUNES='Windows Error codes (DUNES)';
+-$_ALLOW_NAS = 'Ðàçðåøè ÍÀÑ';
+-$_ALLOW = 'Ðàçðåøè';
+-$_ALLOW_ALL = 'Ðàçðåøè âñè÷êè';
+-$_DEFAULT='Ïî ïîäðàçáèðàíå';
+-$_GO = 'Äàâàé';
+-$_LANGUAGE='åçèê';
+-$_REVISION='Ðåâèçèÿ';
+-$_LOG='Èñòîðèÿ';
+-$_SHEDULE='Shedule';
+-
+-$ERR_SELECT_VARIANT='Èçáåðè âàðèàíò';
+-$ERR_WRONG_NAME='Ãðåøíî èìå';
+-$ERR_ENTER_USER_NAME='Ïîñòàâè ïîòðåáèòåëñêè ëîãèí';
+-$ERR_SHORT_PASSWD='Êðàòêà ïàðîëà.Ìèíèìóì 6 ñèìâîëà';
+-$ERR_WRONG_CONFIRM='Ãðåøíî ïîòâúðæäåíèå';
+-$ERR_NAME_TOOLONG='Ëîãèíà å òâúðäå äúëúã';
+-
+-
+-#Mail section
+-$_MAILBOXES='Êóòèè';
+-$_ALIASES = 'Àëèàñè';
+-$_DOMAINS = 'Äîìåéíè';
+-$_DOMAIN = 'Äîìåéí';
+-$_RELAYS = 'Ðèëåè',
+-$_ACCESS = 'Äîñòúï';
+-$_TRANSPORT = 'Òðàíñïîðòèðàíå';
+-$_BILLING = 'Ðàçïëàùàíå';
+-$_ANTIVIRUS='Àíòèâèðóñ';
+-$_ANTISPAM='Àíòèñïàì';
+-$_FOLDER='Ïàïêà';
+-
++# 0.24
++#
++# edited by Andman (andman at ppnnet.net)
++#
++$CHARSET = 'windows1251';
++
++ at PERIODS=('Äíåñ', 'Â÷åðà', 'Ñåäìèöà', 'Ìåñåö', 'Âñè÷êè ñåñèè', 'Îò àêòèâàöèÿòà');
++ at MONTHES=('ßíóàðè', 'Ôåâðóàðè', 'Màðò', 'Aïðèë', 'Màé', 'Þíè', 'Þëè', 'Àâãóñò',  'Ñåïòåìâðè', 'Îêòîìâðè', 'Íîåìâðè', 'Äåêåìâðè');
++ at WEEKDAYS=('Ïðàçíèöè', 'Ïîí', 'Âò', 'Ñð', '×åò', 'Ïåò', 'Ñúá', 'Íåä');
++
++$_ADD='Äîáàâÿíå';
++$_GET='Ïîëó÷àâàíå';
++$_GETED='Ïîëó÷åíî';
++$_DEL='Èçòðèâàíå';
++$_CHANGE='Ïðîìåíè';
++$_CHANGING='Ïðîìÿíà';
++$_ADDED='Äîáàâåí';
++$_DELETED='Èçòðèò';
++$_CHANGED='Ïðîìåíåí';
++$_ROWS='Ðåä';
++$_FEES='Òàêñè';
++$_SIMULTANEOUSLY='Åäíîâðåìåííè ñåñèè';
++$_MONETARY_UNIT='Ïàðè÷íà åäèíèöà';
++$_INPAYMENTS ='Ïîëó÷åíè ïëàùàíèÿ';
++$_BACK_PAY='Íàçàä';
++$_BACK_MONEY='Âðúùàíå íà ïàðè';
++$_NOT_EXIST='Íå ñúùåñòâóâà';
++$_SEND_MAIL='Èçïðàòè e-mail';
++$_MESSAGE='Òåêñò';
++$_MESSAGES='Ñúîáùåíèÿ';
++$_MESSAGES_DESCRIBE='Çà âúïðîñè è êîìåíòàðè - îáúðíåòå ñå êúì Àäìèíèñòðàòîðà.';
++$_SUBJECT='Îòíîñíî';
++$_DEPOSIT='Äåïîçèò';
++$_ACTIVATE='Àêòèâàöèÿ';
++$_ACTIV='Àêòèâåí';
++$_SEND='Èçïðàùàíå';
++$_SENDED='Èçïðàòåíî';
++$_TO_USER='Äî ïîòðåáèòåë';
++$_MAIL_BOX='Ïîùåíñêà êóòèÿ';
++$_WRONG_EMAIL='Ãðåøåí E-mail';
++$_ERROR_LOG='Çàïèñàíè ãðåøêè';
++$_FIO='Èìå, Ôàìèëèÿ ';
++$_ADDRESS='Àäðåñ';
++$_PHONE='Òåëåôîí';
++$_COMMENTS='Êîìåíòàðè';
++$_REGISTRATION='Ðåãèñòðàöèÿ';
++$_EXPIRE='Èçòè÷à';
++
++$_USER_INFO='Èíôîðìàöèÿ çà ïîòðåáèòåë';
++$_TOTAL='Îáùî';
++$_USERS='Ïîòðåáèòåëè';
++$_USER='Ïîòðåáèòåë';
++$_NAME='Îïèñàíèå';
++$_VARIANT='Òàðèôåí ïëàí';
++$_VARIANTS='Òàðèôíè ïëàíîâå';
++$_PREPAID='Ïðåäïëàòåíî';
++$_TRAFIC_TARIFS='Òàðèôè çà òðàôèê';
++$_YEAR='Ãîäèíà';
++$_DAY='Äåí';
++$_WEEK='Ñåäìèöà';
++$_MONTH='Ìåñåö';
++$_CREDIT='Êðåäèò';
++$_SUM='Îáùî';
++$_NO_SUM='Âúâåäåòå ñóìà';
++$_PAYMENTS='Ïëàùàíèÿ';
++$_NUM='Íîìåð';
++$_DESCRIBE='Îïèñàíèå';
++$_OPERATOR='Îïåðàòîð';
++$_DATE='Äàòà';
++$_OPTIONS='Îïöèè';
++$_STATS='Ñòàòèñòèêè';
++$_FROM='Îò';
++$_TO='Êúì';
++$_DELETE_USER='Èçòðèâàíå íà ïîòðåáèòåë';
++$_DELETED_USER='Ïîòðåáèòåëÿ å èçòðèò';
++$_PAYMENT_DELETED='Ïëàùàíèÿòà ñà èçòðèòè';
++$_PAYMENT_ADDED='Ïëàùàíåòî å äîáàâåíî';
++$_PAYMENT_NOTEXIST='Ïëàùàíåòî íå ñúùåñòâóâà';
++$_USER_EXIST='Âå÷å ñúùåñòâóâà òàêúâ ïîòðåáèòåë';
++$_USER_NOT_EXIST='Íå ñúùåñòâóâà òàêúâ ïîòðåáèòåë';
++$_SELECT_USER='Èçáåðè ïîòðåáèòåë';
++$_RECORDS='Çàïèñè';
++$_WRONG_PASSWD='Ãðåøíà ïàðîëà ';
++$_LOGOUT='Èçõîä';
++$_TRAFFIC='Òðàôèê';
++$_DURATION='Âðåìåòðàåíå';
++$_DAY_DURATION='Äíåâíî îãðàíè÷åíèå';
++$_LOGIN='Ïîòðåáèòåë';
++$_LOGINS='Ñåñèè';
++$_PASSWD='Ïàðîëà';
++$_CONFIRM='Ïîòâúðæäåíèå';
++
++$_ENTER='Âõîä';
++$_BALANCE='Áàëàíñ';
++$_PERIOD='Ïåðèîä';
++$_SENT='Èçïðàòåíè';
++$_RECV='Ïðèåòè';
++$_LAST_PAYMENT='Ïîñëåäíî ïëàùàíå';
++$_LAST_LOGIN='Ïîñëåäíà ñåñèÿ';
++$_LAST='Ïîñëåäíè ñåñèè';
++$_NOT_LOGINED='Íå å âëèçàë';
++$_WELCOME='Äîáðå äîøëè';
++$_SHOW='Ïîêàæè';
++$_SESSIONS='Ñåñèè';
++$_SESSION_ID='Ñåñèÿ ID';
++$_PER_MONTH='Çà ìåñåö';
++
++$_HOUR_TARIF='Âðåìåâà òàðèôà';
++$_BYTE_TARIF='Tðàôèê òàðèôà';
++$_TRAFFIC='Tðàôèê';
++$_MONTH_FEE='Måñå÷íà ñìåòêà';
++$_DAY_FEE='Äíåâíà ñìåòêà';
++$_UPLIMIT='Ïðåäóïðåæäåíèå';
++$_BEGIN='Íà÷àëî';
++$_END='Êðàé';
++
++$_EXIST='Ñúùåñòâóâà';
++$_COUNT='Áðîé';
++$_CREDITORS='Êðåäèòîðè';
++$_PERMISSION='Ïðàâîìîùèÿ';
++
++#Online
++$_HANGUP='Çàòâîðè';
++$_HANGUPED='Çàòâîðåí';
++#Other
++$_OTHER='Äðóãè';
++$_SQL_BACKUP='SQL ðåçåðâíî êîïèå';
++$_ADMIN='Àäìèíèñòðàòîð';
++$_ADMINS='Àäìèíèñòðàòîðè';
++$_GROUPS='Ãðóïè';
++$_CHANGE_PASSWD='Ñìÿíà íà ïàðîëà';
++$_GEN_PASSWD='Ãåíåðèðàíà ïàðîëà';
++$_CONFIRM_PASSWD='Ïîòâúðäè ïàðîëà';
++$_MAKE_BACKAUP='Íàïðàâè ðåçåðâíî êîïèå';
++$_SIZE='Ðàçìåð';
++
++$_MIN='Ìèí.';
++$_AVG='Ñðåäíî';
++$_MAX='Ìàêñèìàëíî';
++$_INTERVALS='Èíòåðâàëè';
++$_NO_RECORD='Íÿìà òàêèâà çàïèñè';
++
++#leased
++
++$_TIME_LIMIT='Îãðàíè÷åíèå ïî âðåìå';
++$_TRAF_LIMIT='Îãðàíè÷åíèå ïî òðàôèê';
++
++$_LIMIT = 'Îãðàíè÷åíèå';
++$_SPEED = 'Ñêîðîñò';
++$_STATUS = 'Ñúñòîÿíèå';
++$_TIME = 'Âðåìå';
++$_USED='Èçïîëçâàíî';
++$_REMAIN='Îñòàâà';
++$_SET='Äîáàâè';
++$_RESET='Èç÷èñòè';
++$_RESETED='Èç÷èñòåíî';
++$_FILTERS='Ôèëòðè';
++$_DOCS='Äîêóìåíòàöèÿ';
++$_NAS_CONFIG='NAS êîíôèãóðàöèÿ';
++$_NAS_STATISTIC='NAS ñòàòèñòèêà';
++$_NAS='NAS';
++$_NASS='NAS';
++$_PORT='Ïîðò';
++$_REDUCTION='Íàìàëåíèå';
++
++
++$_SEARCH='Òúðñåíå';
++$_TEXT='Òåêñò';
++$_TYPE='Òèï';
++$_RESULT='Ðåçóëòàò';
++$_PARAM='Ïàðàìåòúð';
++$_PARAMS='Ïàðàìåòðè';
++$_VALUE='Ñòîéíîñò';
++$_FILE='Ôàéë';
++$_TEMPLATES='Âúíøåí âèä';
++
++
++$_ERROR = 'Ãðåøêà';
++$_INFO = 'Èíôîðìàöèÿ';
++$_CUSTOMERS='Êëèåíòè';
++$_ACCOUNTS= 'Àêàóíòè';
++$_ACCOUNT='Àêàóíò';
++$_CREATE='Ñúçäàâàíå';
++$_CREATED='Ñúçäàäåí';
++$_CUSTOMER='Êëèåíò';
++$_PRE='Ïðåãëåä';
++$_ORDER='Ïîðú÷êà';
++$_PRINT='Ïðèíòèðàé';
++$_ACCOUNT_EXIST='Àêàóíòà âå÷å ñúùåñòâóâà';
++$_SDETAIL='Ïîäðîáíè ñåñèè';
++
++$_AUTH='Îòîðèçàöèÿ';
++$_SHORT_NAME="Êàòêî èìå";
++$_MANAGE = 'Ïîïðàâè';
++
++$_SHOW_ALL = 'Ïîêàæè âñè÷êè';
++$_CARD_SERVICE = 'Êàðòè';
++$_ICARDS= 'Èíòåðíåò êàðòè';
++$_PAY_CARDS = 'Ïëàòåæíè êàðòè';
++$_PREFIX = 'Ïðåäñòàâêà';
++$_AGE='Âúçðàñò';
++$_DAYS='Äíè';
++$_HOURS='×àñîâå';
++$_ALL='Âñè÷êè';
++$_STATE = 'Ñòàòóò';
++$_EXCHANGE_RATE = "Îáìåíåí êóðñ";
++$_MONEY = 'Èìå íà âàëóòà';
++$_REPLY = 'Îòãîâîðè';
++
++$_BANK_INFO='Áàíêà';
++$_TAX_NUMBER='Èäåíòèôèêàòîð';
++$_BANK_NAME='Èìå íà áàíêàòà';
++$_COR_BANK_ACCOUNT='Áàíêîâà ñìåòêà';
++$_BANK_BIC='Áàíêîâ êîä';
++$_PROFILE='Ïðîôèë';
++
++#Day of week
++$_HOSTS='Õîñòîâå';
++$_NETWORKS='Ìðåæè';
++$_HOLIDAYS = 'Ïðàçíèöè';
++$_DUNES='Windows Error codes (DUNES)';
++$_ALLOW_NAS = 'Ðàçðåøè NAS';
++$_ALLOW = 'Ðàçðåøè';
++$_ALLOW_ALL = 'Ðàçðåøè âñè÷êè';
++$_DEFAULT='Ïî ïîäðàçáèðàíå';
++$_GO = 'Íàïðåä';
++$_LANGUAGE='Åçèê';
++$_REVISION='Îò÷åò';
++$_LOG='Íàïðàâåíè ïðîìåíè';
++$_SHEDULE='Ðàçïèñàíèå';
++
++$ERR_SELECT_VARIANT='Èçáåðè âàðèàíò';
++$ERR_WRONG_NAME='Ãðåøíî èìå';
++$ERR_ENTER_USER_NAME='Âúâåäåòå ïîòðåáèòåëñêîòî ñè èìå';
++$ERR_SHORT_PASSWD='Òâúðäå êðàòêà ïàðîëà. Òðÿáâà äà èçïîëçâàòå ìèíèìóì 6 ñèìâîëà.';
++$ERR_WRONG_CONFIRM='Ãðåøêà ïðè ïîòâúðæäàâàíå';
++$ERR_NAME_TOOLONG='Òâúðäå äúëãî ïîòðåáèòåëñêî èìå';
++
++
++#Mail section
++$_MAILBOXES='Ïîùåíñêè êóòèè';
++$_ALIASES = 'Ïñåâäîíèìè';
++$_DOMAINS = 'Äîìåéíè';
++$_DOMAIN = 'Äîìåéí';
++$_RELAYS = 'Ñâðúçêè',
++$_ACCESS = 'Äîñòúï';
++$_TRANSPORT = 'Òðàíñïîðòèðàíå';
++$_BILLING = 'Ðàçïëàùàíå';
++$_ANTIVIRUS='Àíòèâèðóñ';
++$_ANTISPAM='Àíòèñïàì';
++$_FOLDER='Ïàïêà';
++
++#==new
++$_LIST='Ñïèñúê';
++$_SA_ONLY = 'Ñàìîñòîÿòåëíî äîáàâåí';
++$_REPORTS = 'Äîêëàäè';
++$_MODULES = 'Mîäóëè';
++$_SYSTEM = 'Ñèñòåìíà êîíôèãóðàöèÿ';
++$_GENERED_PARRWORD = 'Ãåíåðèðàíà ïàðîëà';
++$_TARIF_PLANS='Òàðèôíè ïëàíîâå';
++$_TARIF_PLAN='Òàðèôåí ïëàí';
++$_DISABLE='Íåàêòèâåí';
++$_COMPANY='Ôèðìà';
++$_ADD_USER='Äîáàâÿíå íà ïîòðåáèòåë';
++$_CREDIT_TRESSHOLD='Íåñíèæàåì äåïîçèò';
++$_SERVICES='Óñëóãè';
++$_FUNCTIONS_LIST='Ñïèñúê ñ ôóíêöèè';
++$_COMPANY='Ôèðìà';
++$_OCTETS_DIRECTION='Íàïðàâëåíèå';
++$_PAYMENT_METHOD='Íà÷èí íà ïëàùàíå';
++$_TEST='Òåñò';
diff -ruN --exclude=CVS /home/reaper/temp//net/abills/files/patch-language_russian.pl /usr/ports/net/abills/files/patch-language_russian.pl
--- /home/reaper/temp//net/abills/files/patch-language_russian.pl	Thu Jan  1 03:00:00 1970
+++ /usr/ports/net/abills/files/patch-language_russian.pl	Sat Dec 10 23:33:43 2005
@@ -0,0 +1,539 @@
+
+$FreeBSD$
+
+--- language/russian.pl.orig
++++ language/russian.pl
+@@ -1,266 +1,266 @@
+-# 0.24
+-$CHARSET = 'windows1251';
+-
+- at PERIODS=('Ñåãîäíÿ', 'Â÷åðà', 'Íåäåëÿ', 'Ìåñÿö', 'Âñå çàõîäè', 'Âèä àêòèâàöèè');
+- at MONTHES=('ßíâàðü', 'Ôåâðàëü', 'Ìàðò', 'Àïðåëü', 'Ìàé', 'Èþíü', 'Èþëü', 'Àâãóñò', 
+- 'Ñåíòÿáðü', 'Îêòÿáðü', 'Íîÿáðü', 'Äåêàáðü');
+- at WEEKDAYS=('Ïðàçäíè÷íûå', 'Ïí', 'Âò', 'Ñð', '×ò', 'Ïò', 'Ñóá', 'Âñ');
+-
+-$_ADD='Äîáàâèòü';
+-$_GET='Ñíÿòü';
+-$_GETED='Ñíÿòî';
+-$_DEL='Óäàëèòü';
+-$_CHANGE='Èçìåíåíèÿ';
+-$_CHANGING='Âíåñåíèå èçìåíåíèé';
+-$_ADDED='Äîáàâëåíî';
+-$_DELETED='Óäàëåíî';
+-$_CHANGED='Èçìåíåíèÿ âíåñåíû';
+-$_ROWS='Ðÿäîâ';
+-$_FEES='Ñíÿòèå äåíåã';
+-$_SIMULTANEOUSLY='Îäíîâðåìåííî';
+-$_MONETARY_UNIT='Äåíåæíàÿ åäèíèöà';
+-$_INPAYMENTS ='Ïëàòåæè';
+-$_BACK_PAY='Âîçâðàò';
+-$_BACK_MONEY='Âåðíóòü äåíüãè';
+-$_NOT_EXIST='Íå ñóùåñòâóåò';
+-$_SEND_MAIL='Îòïðàâèòü e-mail';
+-$_MESSAGE='Òåêñò';
+-$_MESSAGES='Ñîîáùåíèå';
+-$_MESSAGES_DESCRIBE='Ïî âñåì âîïðîñàì êîòîðûå âàñ èíòåðåñóþò ìîæåòå îòïðàâëÿòü ñîîáùåíèÿ
+-àäìèíèñòðàòîðó.';
+-$_SUBJECT='Òåìà';
+-$_DEPOSIT='Äåïîçèò';
+-$_ACTIVATE='Àêòèâàöèè';
+-$_ACTIV='Àêòèâíèé';
+-$_SEND='Îòïðàâèòü';
+-$_SENDED='Îòïðàâëåíî';
+-$_TO_USER='Êîìó';
+-$_MAIL_BOX='Ïî÷òîâûé ÿùèê';
+-$_WRONG_EMAIL='Íåïðàâèëüíûé E-mail àäðåñ';
+-$_ERROR_LOG='Ëîã îøèáîê';
+-$_FIO='ÔÈÎ';
+-$_ADDRESS='Àäðåñ';
+-$_PHONE='Òåëåôîí';
+-$_COMMENTS='Êîìåíòàðèè';
+-$_REGISTRATION='Ðåãèñòðàöèÿ';
+-$_EXPIRE='Îêîí÷àíèå';
+-
+-$_USER_INFO='Èíôîðìàöèÿ î ïîëüçîâàòåëå';
+-$_TOTAL='Âñåãî';
+-$_USERS='Ïîëüçîâàòåëè';
+-$_USER='Ïîëüçîâàòåëü';
+-$_NAME='Íàçâàíèå';
+-$_VARIANT='Òàðèôíûé ïëàí';
+-$_VARIANTS='Òàðèôíûå ïëàíû';
+-$_PREPAID='Ïðåäîïëà÷åííî';
+-$_TRAFIC_TARIFS='Òàðèôû òðàôèêà';
+-$_YEAR='Ãîä';
+-$_DAY='Äåíü';
+-$_WEEK='Íåäåëÿ';
+-$_MONTH='Ìåñÿö';
+-$_CREDIT='Êðåäèò';
+-$_SUM='Ñóììà';
+-$_PAYMENTS='Îïëàòû';
+-$_NUM='Íîìåð';
+-$_DESCRIBE='Îïèñ';
+-$_OPERATOR='Îïåðàòîð';
+-$_DATE='Äàòà';
+-$_OPTIONS='Íàëàøòóâàííÿ';
+-$_STATS='Ñòàòèñòèêà';
+-$_FROM='Ç';
+-$_TO='Ïî';
+-$_DELETE_USER='Óäàëèòü ïîëüçîâàòåëÿ èç áàçû';
+-$_DELETED_USER='Óäàëåíèå ïîëüçîâàòåëÿ';
+-$_PAYMENT_DELETED='Îïëàòà óäàëåíà';
+-$_PAYMENT_ADDED='Óêàçàííàÿ ñóììà äîáàâëåíà íà ñ÷åò';
+-$_PAYMENT_NOTEXIST='Îïëàòû íå ñóùåñòâóåò';
+-$_USER_EXIST='Òàêîé ïîëüçîâàòåëü óæå ñóùåñòâóåò';
+-$_SELECT_USER='Âèáåðèòå ïîëüçîâàòåëÿ';
+-$_USER_NOT_EXIST='Òàêîãî ïîëüçîâàòåëÿ íå ñóùåñòâóåò';
+-$_RECORDS='Çàïèñè';
+-$_WRONG_PASSWD='Íåïðàâèëüíûé ïàðîëü ïîïðîáóéòå åùå ðàç ';
+-$_LOGOUT='Âûõîä';
+-$_TRAFFIC='Òðàôèê';
+-$_DURATION='Äëèòåëüíîñòü';
+-$_DAY_DURATION='Äíåâíîå âðåìÿ';
+-$_LOGIN='Ëîãèí';
+-$_LOGINS='Ñåññèè';
+-$_PASSWD='Ïàðîëü';
+-$_CONFIRM='Ïîäòâåðæäåíèå';
+-
+-$_ENTER='Ââåñòè';
+-$_BALANCE='Áàëàíñ';
+-$_PERIOD='Ïåðèîä';
+-$_SENT='Îòïðàâëåííî';
+-$_RECV='Ïîëó÷åíî';
+-$_LAST_PAYMENT='Ïîñëåäíÿÿ îïëàòà';
+-$_LAST_LOGIN='Ïîñëåäíåå ïîäêëþ÷åíèå';
+-$_LAST='Ïîñëåäíèå çàõîäû';
+-$_NOT_LOGINED='Âû íå â ñåòè';
+-$_WELCOME='Çäðàâñòâóéòå';
+-$_SHOW='Ïîêàçàòü';
+-$_SESSIONS='Ñåññèé';
+-$_SESSION_ID='Ýäèíòèôèêàòîð ñåññèé';
+-$_PER_MONTH='Ïî ìåñÿöàì';
+-
+-$_HOUR_TARIF='×àñîâîé ò';
+-$_BYTE_TARIF='Òðàôèê ò';
+-$_TRAFFIC='Òðàôèê';
+-$_MONTH_FEE='Àáîí.îïëàòà çà ìåñÿö';
+-$_DAY_FEE='Äíåâíàÿ àáîí.';
+-$_UPLIMIT='Ïðåäóïðåæäåíèå';
+-$_BEGIN='Íà÷àëî';
+-$_END='Êîíåö';
+-
+-$_EXIST='Çàïèñü óæå ñóùåñòâóåò';
+-$_COUNT='Êîëè÷åñòâî';
+-$_CREDITORS='Äîëæíèêè';
+-
+-$_PERMISSION='Ïðàâà';
+-
+-#Online
+-$_HANGUP='Îòêëþ÷èòü';
+-$_HANGUPED='Îòêëþ÷åíî';
+-#Other
+-$_OTHER='Äðóãîå';
+-$_SQL_BACKUP='Àðõèâàöèÿ áàçû';
+-$_NAS_STATISTIC='Ñòàòèñòèêà ñåðâåðîâ äîñòóïà';
+-$_ADMINS='Àäìèíèñòðàòîðû';
+-$_GROUPS='Ãðóïïû';
+-$_CHANGE_PASSWD='Èçìåíèòü ïàðîëü';
+-$_GEN_PASSWD='Ñãåíåðèðîâàííûé ïàðîëü';
+-$_CONFIRM_PASSWD='Ïîäòâåðäèòü ïàðîëü';
+-$_MAKE_BACKAUP='Çäåëàòü backaup';
+-$_SIZE='Ðàçìåð';
+-
+-$_MIN='Ìèíèìàëüíî';
+-$_AVG='Â ñðåäíåì';
+-$_MAX='Ìàêñèìàëüíî';
+-$_INTERVALS='²íòåðâàëû';
+-$_NO_RECORD='Çàïèñè îòñóòñòâóþò';
+-
+-#leased
+-
+-$_TIME_LIMIT='Ëèìèò âðåìåíè';
+-$_TRAF_LIMIT='Ëèìèò òðàôèêà';
+-
+-$_LIMIT = 'Ëèìèò';
+-$_SPEED = 'Ñêîðîñòü';
+-$_STATUS = 'Ñòàòóñ';
+-$_TIME = 'Âðåìÿ';
+-$_USED='Èñïîëüçîâàííî';
+-$_REMAIN='Îñòàëîñü';
+-$_SET='Óñòàíîâèòü';
+-$_RESET='Ñáðîñèòü';
+-$_RESETED='Ñáðîøåííî';
+-$_FILTERS='Ôèëüòðû';
+-$_DOCS='Äîêóìåíòû';
+-$_NAS_CONFIG='Êîíôèãóðàöèÿ ñåðâåðîâ äîñòóïà';
+-$_NAS='Ñåðâåð äîñòóïà';
+-$_NASS='Ñåðâåðà äîñòóïà';
+-$_PORT='Ïîðò';
+-$_REDUCTION='Ñêèäêà';
+-
+-
+-$_SEARCH='Ïîèñê';
+-$_TEXT='Ïîèñê';
+-$_TYPE='Òèï';
+-$_RESULT='Ðåçóëüòàò';
+-$_PARAM='Ïàðàìåòð';
+-$_VALUE='Çíà÷åíèå';
+-$_FILE='Ôàéë';
+-$_TEMPLATES='Øàáëîíû';
+-$_PARAMS='Ïàðàìåòðû';
+-
+-$_ERROR = 'Îøèáêà';
+-$_INFO = 'Âûïîëíåíî';
+-$_ACCOUNTS= 'Ñ÷åòà';
+-$_ACCOUNT='Ñ÷åò';
+-$_CREATE='Ñîçäàòü';
+-$_CREATED='Ñîçäàííî';
+-$_CUSTOMER='Êëèåíò';
+-$_PRE='Ïðåäûäóùèé ïðîñìîòð';
+-$_ORDER='Ñ÷åò';
+-$_PRINT='Ïå÷àòü';
+-$_ACCOUNT_EXIST='Ñ÷åò óæå ñóùåñòâóåò';
+-$_SDETAIL='Äåòàëèçàöèÿ ñåññèè';
+-
+-$_AUTH='Àâòîðèçàöèÿ';
+-$_SHORT_NAME="Ëîãèí";
+-$_MANAGE = 'Óïðàâëåíèå';
+-
+-$_SHOW_ALL = 'Ïîêàçàòü âñå';
+-$_CARD_SERVICE = 'Êàðò ñåðâ³ñ';
+-$_ICARDS= 'Èíòåðíåò êàðòî÷êè';
+-$_PAY_CARDS = 'Êàðòû ïîïîëíåíèÿ';
+-$_PREFIX = 'Ïðåôèêñ';
+-$_AGE='Âðåìÿ ñóùåñòâîâàíèÿ';
+-$_DAYS='Äíè';
+-$_HOURS='×àñû';
+-$_ALL='Âñå';
+-$_STATE = 'Ñîñòîÿíèå';
+-$_EXCHANGE_RATE = "Êóðñ îáìåíà";
+-$_MONEY = 'Äåíåæíàÿ åäèíèöà';
+-$_REPLY = 'Îòâåò';
+-
+-$_BANK_INFO='Áàíê';
+-$_TAX_NUMBER='Ýäèíòèôèêàòîð';
+-$_BANK_NAME='Íàçâàíèå áàíêà';
+-$_COR_BANK_ACCOUNT='Êîðåñï. ñ÷åò';
+-$_BANK_BIC='Á²Ê';
+-$_PROFILE='Ïðîôèëü';
+-$_HOSTS='Õîñòû';
+-$_NETWORKS='Ñåòêè';
+-$_REVISION='Ðåâèçèÿ';
+-
+-#Day of week
+-$_HOLIDAYS = 'Ïðàçäíè÷íûå';
+-$_DUNES='Êîäè êîìóòèðîâàíîãî ïîäêë';
+-$_ALLOW_NAS = 'Äîçâîëåííûå ñåðâåðà äîñòóïà';
+-$_ALLOW = 'Ðàçðåøåíî';
+-$_ALLOW_ALL = 'Ðàçðåøèòü âñå';
+-$_DEFAULT='Ïî óìîë÷àíèþ';
+-$_GO = 'Ïåðåéòè';
+-$_LANGUAGE='ßçûê';
+-
+-
+-$ERR_SELECT_VARIANT='Âûáåðèòå âàðèàíò';
+-$ERR_WRONG_NAME='Íåïðàâèëüíîå èìÿ';
+-$ERR_ENTER_USER_NAME='Ââåäèòå èìÿ ïîëüçîâàòåëÿ';
+-$ERR_SHORT_PASSWD='Êîðîòêèé ïàðîëü. Äëèíà íå ìåíüøå 6 ñèìâîëîâ';
+-$ERR_WRONG_CONFIRM='Íåïðàâèëüíîå ïîäòâåðæäåíèå ïàðîëÿ';
+-$ERR_NAME_TOOLONG='Ëîãèí ïîëüçîâàòåëÿ äëèíåå ÷åì äîïóñòèìàÿ äëèíà';
+-
+-#Mail section
+-$_MAILBOXES='Ïî÷òîâûå ÿùèêè';
+-$_ALIASES = 'Aliases';
+-$_DOMAINS = 'Äîìåíû';
+-$_DOMAIN = 'Äîìåí';
+-$_RELAYS = 'Relay',
+-$_ACCESS = 'Äîñòóï';
+-$_TRANSPORT = 'Òðàíñïîðò';
+-$_BILLING = 'Áèëèíã';
+-$_ANTIVIRUS='Àíòèâèðóñ';
+-$_ANTISPAM='Àíòèñïàì';
+-$_FOLDER='Êàòàëîã';
+-
+-
+-#==new
+-$_LIST='Ñïèñîê';
+-$_SA_ONLY = 'Òîëüêî ñâîè ';
+-$_REPORTS = 'Îò÷¸ò';
+-$_MODULES = 'Ìîäóëè';
+-$_SYSTEM = 'Ñèñòåìà';
+-$_GENERED_PARRWORD = 'Ñãåíåðèðîâàòü ïàðîëü';
+-$_TARIF_PLANS='Òàðèôíûå ïëàíû';
+-$_TARIF_PLAN='Òàðèôíûé ïëàí';
+-$_DISABLE='Îòêëþ÷åíî';
+-$_COMPANY='Êîðïîðàòèâíûé ñ÷¸ò';
+-$_ADD_USER='Äîáàâèòü ïîëüçîâàòåëÿ';
+-$_CREDIT_TRESSHOLD='Íåñú¸ìíûé ìèíèìóì';
+-$_SERVICES='Ñåðâèñû';
+-$_FUNCTIONS_LIST='Îïåðàöèè';
+-$_COMPANY='Êîìïàíèè';
+-$_OCTETS_DIRECTION='Íàïðàâëåíèå òðàôèêà';
+-$_PAYMENT_METHOD='Âèä îïëàòû';
+-$_TEST='Òåñò';
+\ No newline at end of file
++# 0.24
++$CHARSET = 'windows1251';
++
++ at PERIODS=('Ñåãîäíÿ', 'Â÷åðà', 'Íåäåëÿ', 'Ìåñÿö', 'Âñå ñåàíñû', 'Âèä àêòèâàöèè');
++ at MONTHES=('ßíâàðü', 'Ôåâðàëü', 'Ìàðò', 'Àïðåëü', 'Ìàé', 'Èþíü', 'Èþëü', 'Àâãóñò', 
++ 'Ñåíòÿáðü', 'Îêòÿáðü', 'Íîÿáðü', 'Äåêàáðü');
++ at WEEKDAYS=('Ïðàçäíè÷íûå', 'Ïí', 'Âò', 'Ñð', '×ò', 'Ïò', 'Ñóá', 'Âñ');
++
++$_ADD='Äîáàâèòü';
++$_GET='Ñíÿòü';
++$_GETED='Ñíÿòî';
++$_DEL='Óäàëèòü';
++$_CHANGE='Èçìåíåíèòü';
++$_CHANGING='Âíåñòè èçìåíåíèÿ';
++$_ADDED='Äîáàâëåíî';
++$_DELETED='Óäàëåíî';
++$_CHANGED='Èçìåíåíèÿ âíåñåíû';
++$_ROWS='Ðÿäîâ';
++$_FEES='Ñíÿòèå äåíåã';
++$_SIMULTANEOUSLY='Îäíîâðåìåííî';
++$_MONETARY_UNIT='Äåíåæíàÿ åäèíèöà';
++$_INPAYMENTS ='Ïëàòåæè';
++$_BACK_PAY='Âîçâðàò';
++$_BACK_MONEY='Âåðíóòü äåíüãè';
++$_NOT_EXIST='Íå ñóùåñòâóåò';
++$_SEND_MAIL='Îòïðàâèòü e-mail';
++$_MESSAGE='Òåêñò';
++$_MESSAGES='Ñîîáùåíèå';
++$_MESSAGES_DESCRIBE='Ïî âñåì âîïðîñàì, êîòîðûå âàñ èíòåðåñóþò ìîæåòå îòïðàâëÿòü ñîîáùåíèÿ
++àäìèíèñòðàòîðó.';
++$_SUBJECT='Òåìà';
++$_DEPOSIT='Äåïîçèò';
++$_ACTIVATE='Àêòèâàöèè';
++$_ACTIV='Àêòèâíûé';
++$_SEND='Îòïðàâèòü';
++$_SENDED='Îòïðàâëåíî';
++$_TO_USER='Êîìó';
++$_MAIL_BOX='Ïî÷òîâûé ÿùèê';
++$_WRONG_EMAIL='Íåïðàâèëüíûé e-mail àäðåñ';
++$_ERROR_LOG='Ëîã îøèáîê';
++$_FIO='ÔÈÎ';
++$_ADDRESS='Àäðåñ';
++$_PHONE='Òåëåôîí';
++$_COMMENTS='Êîìåíòàðèè';
++$_REGISTRATION='Ðåãèñòðàöèÿ';
++$_EXPIRE='Îêîí÷àíèå';
++
++$_USER_INFO='Èíôîðìàöèÿ î ïîëüçîâàòåëå';
++$_TOTAL='Âñåãî';
++$_USERS='Ïîëüçîâàòåëè';
++$_USER='Ïîëüçîâàòåëü';
++$_NAME='Íàçâàíèå';
++$_VARIANT='Òàðèôíûé ïëàí';
++$_VARIANTS='Òàðèôíûå ïëàíû';
++$_PREPAID='Ïðåäîïëà÷åííî';
++$_TRAFIC_TARIFS='Òàðèôû òðàôèêà';
++$_YEAR='Ãîä';
++$_DAY='Äåíü';
++$_WEEK='Íåäåëÿ';
++$_MONTH='Ìåñÿö';
++$_CREDIT='Êðåäèò';
++$_SUM='Ñóììà';
++$_PAYMENTS='Îïëàòû';
++$_NUM='Íîìåð';
++$_DESCRIBE='Îïèñ';
++$_OPERATOR='Îïåðàòîð';
++$_DATE='Äàòà';
++$_OPTIONS='Íàñòðîéêè';
++$_STATS='Ñòàòèñòèêà';
++$_FROM='Îò';
++$_TO='Ê';
++$_DELETE_USER='Óäàëèòü ïîëüçîâàòåëÿ èç áàçû';
++$_DELETED_USER='Óäàëåíèå ïîëüçîâàòåëÿ';
++$_PAYMENT_DELETED='Îïëàòà óäàëåíà';
++$_PAYMENT_ADDED='Óêàçàííàÿ ñóììà äîáàâëåíà íà ñ÷åò';
++$_PAYMENT_NOTEXIST='Îïëàòû íå ñóùåñòâóåò';
++$_USER_EXIST='Òàêîé ïîëüçîâàòåëü óæå ñóùåñòâóåò';
++$_SELECT_USER='Âûáåðèòå ïîëüçîâàòåëÿ';
++$_USER_NOT_EXIST='Òàêîãî ïîëüçîâàòåëÿ íå ñóùåñòâóåò';
++$_RECORDS='Çàïèñè';
++$_WRONG_PASSWD='Íåïðàâèëüíûé ïàðîëü ïîïðîáóéòå åùå ðàç ';
++$_LOGOUT='Âûõîä';
++$_TRAFFIC='Òðàôèê';
++$_DURATION='Äëèòåëüíîñòü';
++$_DAY_DURATION='Äíåâíîå âðåìÿ';
++$_LOGIN='Ëîãèí';
++$_LOGINS='Ñåññèè';
++$_PASSWD='Ïàðîëü';
++$_CONFIRM='Ïîäòâåðäèòü';
++
++$_ENTER='Ââåñòè';
++$_BALANCE='Áàëàíñ';
++$_PERIOD='Ïåðèîä';
++$_SENT='Îòïðàâëåííî';
++$_RECV='Ïîëó÷åíî';
++$_LAST_PAYMENT='Ïîñëåäíÿÿ îïëàòà';
++$_LAST_LOGIN='Ïîñëåäíåå ïîäêëþ÷åíèå';
++$_LAST='Ïîñëåäíèå çàõîäû';
++$_NOT_LOGINED='Âû íå â ñåòè';
++$_WELCOME='Çäðàâñòâóéòå';
++$_SHOW='Ïîêàçàòü';
++$_SESSIONS='Ñåññèé';
++$_SESSION_ID='Èäåíòèôèêàòîð ñåññèé';
++$_PER_MONTH='Ïî ìåñÿöàì';
++
++$_HOUR_TARIF='×àñîâîé ò';
++$_BYTE_TARIF='Òðàôèê ò';
++$_TRAFFIC='Òðàôèê';
++$_MONTH_FEE='Àáîí. ïëàòà çà ìåñÿö';
++$_DAY_FEE='Äíåâíàÿ à/ï';
++$_UPLIMIT='Ïðåäóïðåæäåíèå';
++$_BEGIN='Íà÷àëî';
++$_END='Êîíåö';
++
++$_EXIST='Çàïèñü óæå ñóùåñòâóåò';
++$_COUNT='Êîëè÷åñòâî';
++$_CREDITORS='Äîëæíèêè';
++
++$_PERMISSION='Ïðàâà';
++
++#Online
++$_HANGUP='Îòêëþ÷èòü';
++$_HANGUPED='Îòêëþ÷åí';
++#Other
++$_OTHER='Äðóãîå';
++$_SQL_BACKUP='Àðõèâàöèÿ áàçû';
++$_NAS_STATISTIC='Ñòàòèñòèêà ñåðâåðîâ äîñòóïà';
++$_ADMINS='Àäìèíèñòðàòîðû';
++$_GROUPS='Ãðóïïû';
++$_CHANGE_PASSWD='Èçìåíèòü ïàðîëü';
++$_GEN_PASSWD='Ñãåíåðèðîâàííûé ïàðîëü';
++$_CONFIRM_PASSWD='Ïîäòâåðäèòü ïàðîëü';
++$_MAKE_BACKAUP='Ñäåëàòü backaup';
++$_SIZE='Ðàçìåð';
++
++$_MIN='Ìèíèìàëüíî';
++$_AVG='Â ñðåäíåì';
++$_MAX='Ìàêñèìàëüíî';
++$_INTERVALS='Èíòåðâàëû';
++$_NO_RECORD='Çàïèñè îòñóòñòâóþò';
++
++#leased
++
++$_TIME_LIMIT='Ëèìèò âðåìåíè';
++$_TRAF_LIMIT='Ëèìèò òðàôèêà';
++
++$_LIMIT = 'Ëèìèò';
++$_SPEED = 'Ñêîðîñòü';
++$_STATUS = 'Ñòàòóñ';
++$_TIME = 'Âðåìÿ';
++$_USED='Èñïîëüçîâàííî';
++$_REMAIN='Îñòàëîñü';
++$_SET='Óñòàíîâèòü';
++$_RESET='Ñáðîñèòü';
++$_RESETED='Ñáðîøåííî';
++$_FILTERS='Ôèëüòðû';
++$_DOCS='Äîêóìåíòû';
++$_NAS_CONFIG='Êîíôèãóðàöèÿ ñåðâåðîâ äîñòóïà';
++$_NAS='Ñåðâåð äîñòóïà';
++$_NASS='Ñåðâåðà äîñòóïà';
++$_PORT='Ïîðò';
++$_REDUCTION='Ñêèäêà';
++
++
++$_SEARCH='Ïîèñê';
++$_TEXT='Ïîèñê';
++$_TYPE='Òèï';
++$_RESULT='Ðåçóëüòàò';
++$_PARAM='Ïàðàìåòð';
++$_VALUE='Çíà÷åíèå';
++$_FILE='Ôàéë';
++$_TEMPLATES='Øàáëîíû';
++$_PARAMS='Ïàðàìåòðû';
++
++$_ERROR = 'Îøèáêà';
++$_INFO = 'Âûïîëíåíî';
++$_ACCOUNTS= 'Ñ÷åòà';
++$_ACCOUNT='Ñ÷åò';
++$_CREATE='Ñîçäàòü';
++$_CREATED='Ñîçäàííî';
++$_CUSTOMER='Êëèåíò';
++$_PRE='Ïðåäûäóùèé ïðîñìîòð';
++$_ORDER='Ñ÷åò';
++$_PRINT='Ïå÷àòü';
++$_ACCOUNT_EXIST='Ñ÷åò óæå ñóùåñòâóåò';
++$_SDETAIL='Äåòàëèçàöèÿ ñåññèè';
++
++$_AUTH='Àâòîðèçàöèÿ';
++$_SHORT_NAME='Ëîãèí';
++$_MANAGE = 'Óïðàâëåíèå';
++
++$_SHOW_ALL = 'Ïîêàçàòü âñå';
++$_CARD_SERVICE = 'Êàðò ñåðâ³ñ';
++$_ICARDS= 'Èíòåðíåò êàðòî÷êè';
++$_PAY_CARDS = 'Êàðòû ïîïîëíåíèÿ';
++$_PREFIX = 'Ïðåôèêñ';
++$_AGE='Âðåìÿ ñóùåñòâîâàíèÿ';
++$_DAYS='Äíè';
++$_HOURS='×àñû';
++$_ALL='Âñå';
++$_STATE = 'Ñîñòîÿíèå';
++$_EXCHANGE_RATE = 'Êóðñ îáìåíà';
++$_MONEY = 'Äåíåæíàÿ åäèíèöà';
++$_REPLY = 'Îòâåò';
++
++$_BANK_INFO='Áàíê';
++$_TAX_NUMBER='Èäåíòèôèêàòîð';
++$_BANK_NAME='Íàçâàíèå áàíêà';
++$_COR_BANK_ACCOUNT='Êîðåñï. ñ÷åò';
++$_BANK_BIC='ÁÈÊ';
++$_PROFILE='Ïðîôèëü';
++$_HOSTS='Õîñòû';
++$_NETWORKS='Ñåòêè';
++$_REVISION='Ðåâèçèÿ';
++
++#Day of week
++$_HOLIDAYS = 'Ïðàçäíè÷íûå';
++$_DUNES='Êîäû êîìóòèðîâàííîãî ïîäêë';
++$_ALLOW_NAS = 'Ðàçðåøåííûå ñåðâåðà äîñòóïà';
++$_ALLOW = 'Ðàçðåøåíî';
++$_ALLOW_ALL = 'Ðàçðåøèòü âñå';
++$_DEFAULT='Ïî óìîë÷àíèþ';
++$_GO = 'Ïåðåéòè';
++$_LANGUAGE='ßçûê';
++
++
++$ERR_SELECT_VARIANT='Âûáåðèòå âàðèàíò';
++$ERR_WRONG_NAME='Íåïðàâèëüíîå èìÿ';
++$ERR_ENTER_USER_NAME='Ââåäèòå èìÿ ïîëüçîâàòåëÿ';
++$ERR_SHORT_PASSWD='Êîðîòêèé ïàðîëü. Äëèíà íå ìåíüøå 6 ñèìâîëîâ';
++$ERR_WRONG_CONFIRM='Íåïðàâèëüíîå ïîäòâåðæäåíèå ïàðîëÿ';
++$ERR_NAME_TOOLONG='Ëîãèí ïîëüçîâàòåëÿ äëèíåå ÷åì äîïóñòèìàÿ äëèíà';
++
++#Mail section
++$_MAILBOXES='Ïî÷òîâûå ÿùèêè';
++$_ALIASES = 'Àëèàñ';
++$_DOMAINS = 'Äîìåíû';
++$_DOMAIN = 'Äîìåí';
++$_RELAYS = 'Relay',
++$_ACCESS = 'Äîñòóï';
++$_TRANSPORT = 'Òðàíñïîðò';
++$_BILLING = 'Áèëëèíã';
++$_ANTIVIRUS='Àíòèâèðóñ';
++$_ANTISPAM='Àíòèñïàì';
++$_FOLDER='Êàòàëîã';
++
++
++#==new
++$_LIST='Ñïèñîê';
++$_SA_ONLY = 'Òîëüêî ñâîè ';
++$_REPORTS = 'Îò÷¸ò';
++$_MODULES = 'Ìîäóëè';
++$_SYSTEM = 'Ñèñòåìà';
++$_GENERED_PARRWORD = 'Ñãåíåðèðîâàòü ïàðîëü';
++$_TARIF_PLANS='Òàðèôíûå ïëàíû';
++$_TARIF_PLAN='Òàðèôíûé ïëàí';
++$_DISABLE='Îòêëþ÷åíî';
++$_COMPANY='Êîðïîðàòèâíûé ñ÷¸ò';
++$_ADD_USER='Äîáàâèòü ïîëüçîâàòåëÿ';
++$_CREDIT_TRESSHOLD='Íåñú¸ìíûé ìèíèìóì';
++$_SERVICES='Ñåðâèñû';
++$_FUNCTIONS_LIST='Îïåðàöèè';
++$_COMPANY='Êîìïàíèè';
++$_OCTETS_DIRECTION='Íàïðàâëåíèå òðàôèêà';
++$_PAYMENT_METHOD='Âèä îïëàòû';
++$_TEST='Òåñò';
diff -ruN --exclude=CVS /home/reaper/temp//net/abills/files/patch-libexec_config.pl.default /usr/ports/net/abills/files/patch-libexec_config.pl.default
--- /home/reaper/temp//net/abills/files/patch-libexec_config.pl.default	Thu Jan  1 03:00:00 1970
+++ /usr/ports/net/abills/files/patch-libexec_config.pl.default	Sat Dec 10 23:34:06 2005
@@ -0,0 +1,23 @@
+
+$FreeBSD$
+
+--- libexec/config.pl.default.orig
++++ libexec/config.pl.default
+@@ -23,7 +23,7 @@
+ # chap encryption decription key
+ $conf{secretkey}="test12345678901234567890";
+ $conf{s_detalization}='yes'; #make session detalization recomended for vpn leathed lines
+-$conf{version}='0.24b'; #23.02.2005
++$conf{version}='0.24b'; #26.07.2005
+ 
+ #Minimum session costs
+ $conf{MINIMUM_SESSION_TIME}=10; # minimum session time for push session to db
+@@ -33,6 +33,8 @@
+ $conf{MINIMUM_SESSION_COST}=0.01; 
+ #Take month and day fees from users with negative deposit too
+ $conf{negative_deposit}='no';
++#User can modify self password if using SQL auth
++$conf{user_chg_passwd}='yes';
+ 
+ 
+ # Exppp options
diff -ruN --exclude=CVS /home/reaper/temp//net/abills/files/patch-libexec_periodic /usr/ports/net/abills/files/patch-libexec_periodic
--- /home/reaper/temp//net/abills/files/patch-libexec_periodic	Thu Jan  1 03:00:00 1970
+++ /usr/ports/net/abills/files/patch-libexec_periodic	Sat Dec 10 23:34:23 2005
@@ -0,0 +1,65 @@
+
+$FreeBSD$
+
+--- libexec/periodic.orig
++++ libexec/periodic
+@@ -55,7 +55,7 @@
+ }
+ 
+ $message .= "\n  Ðóõ êîøò³â ïî ðàõóíêàõ ê볺íò³â: \n".
+-"=== Íà ðàõóíêè ==========================================\n";
++"=== $_PAYMENTS ==========================================\n";
+ 
+ $q = $db -> prepare ( qq{SELECT count(id), sum(sum), min(sum), avg(sum), max(sum)  FROM payment
+  WHERE date_format(date, '%Y-%m')=date_format(curdate() - INTERVAL 1 MONTH, '%Y-%m')
+@@ -66,7 +66,7 @@
+  $message .= "$_COUNT:\t$count\n$_SUM:\t$sum\n\n$_MIN: $min /$_AVG: $avg /$_MAX: $max\n";
+ $q -> finish ();
+ 
+-$message .= "\n=== Ç ðàõóíê³â ===========================================\n";
++$message .= "\n=== $_FEES ===========================================\n";
+ $q = $db -> prepare ( qq{
+  SELECT count(id), sum(sum), min(sum), avg(sum), max(sum) FROM fees
+  WHERE date_format(date, '%Y-%m')=date_format(curdate() - INTERVAL 1 MONTH, '%Y-%m')
+@@ -143,7 +143,7 @@
+ my %ACTIVATE=();
+ my %LAST_DEPOSIT=();
+ 
+-while(my($login, $uid, $m_abon, $bill_sum, $activate) = $q -> fetchrow_array()) {
++while(my($login, $uid, $m_abon, $activate) = $q -> fetchrow_array()) {
+   $USERS{$uid}=$m_abon;
+   $ACTIVATE{$uid} = $activate;
+   $LAST_DEPOSIT{$uid} = $activate;
+@@ -244,7 +244,7 @@
+ 
+ $message .= "\n  Ðóõ êîøò³â ïî ðàõóíêàõ ê볺íò³â: \n".
+ "=== $_PAYMENTS ==========================================\n";
+-$message .= sprintf ("%-14s| %8.4f| %20s| %8s| %15s| %19s|\n", $_LOGIN, $_SUM, 
++$message .= sprintf ("%-14s| %8s| %20s| %8s| %15s| %19s|\n", $_LOGIN, $_SUM, 
+     $_DESCRIBE, $_ADMIN, 'IP', $_DATE);
+ $message .= "-----------------------------------------------------------------------------------------------\n";
+ 
+@@ -263,7 +263,7 @@
+ 
+ # Daily fees
+ $message .= "\n=== $_FEES ===========================================\n";
+-$message .= sprintf ("%-14s| %8.4f| %20s| %16s| %15s\n", $_LOGIN, $_SUM, $_DESCRIBE, $_ADMIN, 'IP');
++$message .= sprintf ("%-14s| %6s| %20s| %16s| %15s\n", $_LOGIN, $_SUM, $_DESCRIBE, $_ADMIN, 'IP');
+ $message .= "---------------------------------------------------------------------------------\n";
+ 
+ $q = $db -> prepare ( qq{
+@@ -282,6 +282,7 @@
+ #$q -> finish ();
+ 
+ 
++
+ # using today
+ $q = $db -> prepare ( qq{
+ select id, count(id), sum(sent + recv), sec_to_time(sum(duration)), sum(sum), sum(duration)
+@@ -572,4 +573,4 @@
+ 
+ 
+  return 1;
+-}
+\ No newline at end of file
++}
diff -ruN --exclude=CVS /home/reaper/temp//net/abills/files/patch-libexec_racct.pl /usr/ports/net/abills/files/patch-libexec_racct.pl
--- /home/reaper/temp//net/abills/files/patch-libexec_racct.pl	Thu Jan  1 03:00:00 1970
+++ /usr/ports/net/abills/files/patch-libexec_racct.pl	Sat Dec 10 23:34:55 2005
@@ -0,0 +1,41 @@
+
+$FreeBSD$
+
+--- libexec/racct.pl.orig
++++ libexec/racct.pl
+@@ -14,10 +14,8 @@
+ 
+ 
+ ############################################################
+-
+ get_radius_params();
+ 
+-
+ #if ($RAD{USER_NAME} eq 'petya') {
+ #  $conf{debug}=10;
+ #  $logfile=$base_dir . 'var/log/abills_petya.log';
+@@ -94,7 +92,7 @@
+ 
+ # Exppp VENDOR params           
+ if ($NAS_INFO->{nt}{$nas_num} eq 'exppp') {
+-#reverse byte parameters
++#reverse byte parameters for old version of exppp
+   $ACCT_INFO{INBYTE} = $RAD{ACCT_OUTPUT_OCTETS} || 0;             # From client
+   $ACCT_INFO{OUTBYTE} =  $RAD{ACCT_INPUT_OCTETS} || 0;            # To client
+ 
+@@ -102,7 +100,6 @@
+   $ACCT_INFO{INBYTE2}  = $RAD{EXPPP_ACCT_LOCALOUTPUT_OCTETS} || 0;
+   $ACCT_INFO{OUTBYTE2} = $RAD{EXPPP_ACCT_LOCALINPUT_OCTETS} || 0;
+ 
+-
+   $ACCT_INFO{INTERIUM_INBYTE} = $RAD{EXPPP_ACCT_ITERIUMIN_OCTETS} || 0;
+   $ACCT_INFO{INTERIUM_OUTBYTE} = $RAD{EXPPP_ACCT_ITERIUMOUT_OCTETS} || 0;
+   $ACCT_INFO{INTERIUM_INBYTE2} = $RAD{EXPPP_ACCT_LOCALITERIUMIN_OCTETS} || 0;
+@@ -123,6 +120,7 @@
+       my $res = "";
+       foreach my $file (@contents) {
+          if (-x "$extern_acct_dir/$file") {
++           # ACCT_STATUS IP_ADDRESS NAS_PORT
+            $res = `$extern_acct_dir/$file $acct_status_type $ACCT_INFO{NAS_IP_ADDRESS} $ACCT_INFO{NAS_PORT}`;
+            log_print('LOG_DEBUG', "External accounting program '$file' pairs '$res'");
+           }
diff -ruN --exclude=CVS /home/reaper/temp//net/abills/files/patch-libexec_radtest.sh /usr/ports/net/abills/files/patch-libexec_radtest.sh
--- /home/reaper/temp//net/abills/files/patch-libexec_radtest.sh	Thu Jan  1 03:00:00 1970
+++ /usr/ports/net/abills/files/patch-libexec_radtest.sh	Sat Dec 10 23:35:17 2005
@@ -0,0 +1,20 @@
+
+$FreeBSD$
+
+--- libexec/radtest.sh.orig
++++ libexec/radtest.sh
+@@ -11,11 +11,11 @@
+ if [ t$1 = 'tauth' ] ; then
+ 
+   ./rauth.pl \
+-     USER_NAME="fisha" \
+-     NAS_IP_ADDRESS=192.168.101.130 \
++     USER_NAME="aa1" \
++     NAS_IP_ADDRESS=192.168.101.17 \
+      SERVICE_TYPE=Framed-User \
+      USER_PASSWORD="test123" \
+-#     CALLING_STATION_ID="00:d:61:79:ed:d1"
++#     CALLING_STATION_ID="00:20:ed:9c:c3:43"
+ 
+ #     MS_CHAP_CHALLENGE=0x32323738343134393536353333333635 \
+ #     MS_CHAP2_RESPONSE=0x010017550ce222cfa39d348b93e93cd26f1a000000000000000026fe1a5e39097393b8a4ade5a466790bbefab075383ec58b \
diff -ruN --exclude=CVS /home/reaper/temp//net/abills/files/patch-libexec_rauth.pl /usr/ports/net/abills/files/patch-libexec_rauth.pl
--- /home/reaper/temp//net/abills/files/patch-libexec_rauth.pl	Thu Jan  1 03:00:00 1970
+++ /usr/ports/net/abills/files/patch-libexec_rauth.pl	Sat Dec 10 23:35:37 2005
@@ -0,0 +1,133 @@
+
+$FreeBSD$
+
+--- libexec/rauth.pl.orig
++++ libexec/rauth.pl
+@@ -115,11 +115,13 @@
+   v.month_time_limit,
+   if(v.day_time_limit=0 and v.dt='0:00:00' AND v.ut='24:00:00',
+    UNIX_TIMESTAMP(DATE_FORMAT(DATE_ADD(curdate(), INTERVAL 1 MONTH), '%Y-%m-01')) - UNIX_TIMESTAMP(),
+-  TIME_TO_SEC(v.ut)-TIME_TO_SEC(curtime())) as today_limit,
++  if(curtime() < v.ut, TIME_TO_SEC(v.ut)-TIME_TO_SEC(curtime()), TIME_TO_SEC('23:00:00')-TIME_TO_SEC(curtime())) 
++    ) as today_limit,
++    
+   day_traf_limit,
+   week_traf_limit,
+   month_traf_limit,
+-  if(v.hourp + v.df + v.abon=0 and sum(tt.in_price + tt.out_price)=0, 0, 1),
++  if(v.hourp + v.df + v.abon=0 and (sum(tt.in_price + tt.out_price)=0 or sum(tt.in_price + tt.out_price)IS NULL), 0, 1),
+   if (count(un.uid) + count(vn.vid) = 0, 0,
+     if (count(un.uid)>0, 1, 2)),
+   count(tt.id),
+@@ -128,17 +130,21 @@
+   UNIX_TIMESTAMP(),
+   UNIX_TIMESTAMP(DATE_FORMAT(FROM_UNIXTIME(UNIX_TIMESTAMP()), '%Y-%m-%d')),
+   DAYOFWEEK(FROM_UNIXTIME(UNIX_TIMESTAMP())),
+-  DAYOFYEAR(FROM_UNIXTIME(UNIX_TIMESTAMP()))
+-     FROM users u, variant v
++  DAYOFYEAR(FROM_UNIXTIME(UNIX_TIMESTAMP())),
++  if(v.dt < v.ut,
++    if(v.dt < CURTIME() and v.ut > CURTIME(), 1, 0),
++      if((v.dt < CURTIME() or (CURTIME() > '0:00:00' and CURTIME() < v.ut ))
++       and
++       (CURTIME() < '23:00:00' or v.ut > CURTIME()  ),
++     1, 0 ))
++     FROM ( users u, variant v )
+      LEFT JOIN  trafic_tarifs tt ON (tt.vid=u.variant)
+      LEFT JOIN users_nas un ON (un.uid = u.uid)
+      LEFT JOIN vid_nas vn ON (vn.vid = v.vrnt)
+      WHERE u.variant=v.vrnt
+         AND u.id='$USER'
+         AND (u.expire='0000-00-00' or u.expire > CURDATE())
+-        AND (u.activate='0000-00-00' or u.activate =< CURDATE())
+-        AND v.dt < CURTIME()
+-        AND CURTIME() < v.ut
++        AND (u.activate='0000-00-00' or u.activate <= CURDATE())
+        GROUP BY u.id
+ };
+ 
+@@ -156,7 +162,15 @@
+    $day_traf_limit,  $week_traf_limit,  $month_traf_limit, 
+    $tp_payment,
+    $nas, $traf_tarif, $time_tarif, $filter_id,
+-   $session_start, $day_begin, $day_of_week, $day_of_year) = $q -> fetchrow();
++   $session_start, $day_begin, $day_of_week, $day_of_year, $allow_period) = $q -> fetchrow();
++
++#Check allow period
++# 1 - allow
++# 0 - deny
++if ($allow_period == 0) {
++   $message = "Not allow period";
++   return 1;
++}
+ 
+ #Check allow nas server
+ # $nas 1 - See user nas
+@@ -208,7 +222,7 @@
+ #Auth chap
+ if (defined($RAD{CHAP_PASSWORD}) && defined($RAD{CHAP_CHALLENGE})) {
+   if (check_chap("$RAD{CHAP_PASSWORD}", "$passwd", "$RAD{CHAP_CHALLENGE}", 0) == 0) {
+-    $message = "Wrong CHAP password '$passwd'";
++    $message = "Wrong CHAP password";
+     return 1;
+    }      	 	
+  }
+@@ -287,7 +301,7 @@
+ 
+ #Check deposit
+ if($tp_payment > 0 && $deposit <= 0) {
+-  $message = "User don't have money account '$deposit'. Rejected!";
++  $message = "User don't have money on account '$deposit'. Rejected!";
+   return 1;
+  }
+ 
+@@ -406,6 +420,9 @@
+                                                   time_limit  => $today_limit  } 
+                                           )
+             );
++
++
++
+       }
+ 
+ #set time limit
+@@ -641,14 +658,15 @@
+   	$trafic_limit = $traf_limit;
+    }
+ 
+-  $EX_PARAMS{traf_limit} = int($trafic_limit);
++  $EX_PARAMS{traf_limit} = ($trafic_limit < 1 && $trafic_limit > 0) ? 1 : int($trafic_limit);
++
+ }
+ 
+ #Local Traffic limit
+ if ($trafic_limits{1} > 0) {
+   #10Gb - (10240 * 1024 * 1024) - local traffic session limit
+   $trafic_limit = ($trafic_limits{1} > 10240) ? 10240 :  $trafic_limits{1};
+-  $EX_PARAMS{traf_limit_lo} = int($trafic_limit);
++  $EX_PARAMS{traf_limit_lo} = ($trafic_limit < 1 && $trafic_limit > 0) ? 1 : int($trafic_limit);
+  }
+ 
+  return \%EX_PARAMS;
+@@ -740,7 +758,7 @@
+            }
+           #print "Int Begin: $int_begin Int duration: $int_duration Int prepaid: $int_prepaid Prise: $price\n";
+ 
+-
++ 
+ 
+           if ($int_prepaid >= $int_duration) {
+             $deposit -= ($int_duration / 3600 * $price);
+@@ -751,9 +769,11 @@
+           elsif($int_prepaid <= $int_duration) {
+             $deposit =  0;          	
+             $session_start += $int_prepaid;
+-            $remaining_time += $int_duration;
++            $remaining_time += $int_prepaid;
++            #print "-!! $remaining_time $int_prepaid $int_duration  \n";
+             #print "DL '$deposit' ($int_prepaid <= $int_duration) $session_start\n";
+            }
++          
+          
+         }
+ 
diff -ruN --exclude=CVS /home/reaper/temp//net/abills/files/pkg-message.in /usr/ports/net/abills/files/pkg-message.in
--- /home/reaper/temp//net/abills/files/pkg-message.in	Sat Dec 10 22:23:01 2005
+++ /usr/ports/net/abills/files/pkg-message.in	Sat Dec 10 22:43:35 2005
@@ -1,8 +1,10 @@
 
-************************************************************
+*************************************************************
 
 For configuration and upgrade, please read file:
 %%PREFIX%%/abills/docs/index.html
 
-************************************************************
+NOTE: please look for abills.sql file changes when upgrading!
+
+*************************************************************
 
diff -ruN --exclude=CVS /home/reaper/temp//net/abills/pkg-plist /usr/ports/net/abills/pkg-plist
--- /home/reaper/temp//net/abills/pkg-plist	Sat Dec 10 22:23:01 2005
+++ /usr/ports/net/abills/pkg-plist	Sat Dec 10 22:36:47 2005
@@ -1,11 +1,11 @@
- at exec mkdir -p %D/abills/cgi-bin/admin/tmp
+ at exec mkdir -p %D/abills/backup
 @exec mkdir -p %D/abills/cgi-bin/admin/graphics
 @exec mkdir -p %D/abills/cgi-bin/admin/nets
- at exec mkdir -p %D/abills/backup
 @exec mkdir -p %D/abills/libexec/ext_acct
 @exec mkdir -p %D/abills/var/q
- at exec mkdir -p %D/abills/var/log/back
+ at exec mkdir -p %D/abills/var/log/q
 @exec mkdir -p %D/abills/var/devices
+ at exec mkdir -p %D/abills/var/log/devices
 @exec mkdir -p %D/abills/miniserv/var
 abills/abills.sql
 abills/bin/abcm
@@ -14,7 +14,7 @@
 abills/bin/uc.conf
 abills/bin/urdiff
 abills/cgi-bin/admin/Abdocs.pm
-abills/cgi-bin/admin/Abwconf.pm
+abills/cgi-bin/admin/Abwconf.pm.default
 abills/cgi-bin/admin/docs.cgi
 abills/cgi-bin/admin/grapher.cgi
 abills/cgi-bin/admin/messages.pl
@@ -40,6 +40,7 @@
 abills/cgi-bin/img/vertgreen.gif
 abills/cgi-bin/img/vertred.gif
 abills/cgi-bin/img/vertyellow.gif
+abills/cgi-bin/manager.cgi
 abills/cgi-bin/templates/account.tpl
 abills/cgi-bin/users.cgi
 abills/cgi-bin/win_dunes.cgi
@@ -47,21 +48,31 @@
 abills/docs/img/nas_servers.gif
 abills/docs/img/online.gif
 abills/docs/img/payments.gif
+abills/docs/img/user_fees.gif
 abills/docs/img/user_interface.gif
 abills/docs/img/user_manag.gif
 abills/docs/img/user_stats.gif
 abills/docs/img/users_list.gif
 abills/docs/index.htm
+abills/docs/mail.htm
+abills/docs/misc.htm
+abills/docs/mpd.htm
+abills/docs/nas.htm
 abills/dunes.sql
+abills/language/bulgarian.pl
 abills/language/english.pl
+abills/language/russian-koi8-r.pl
 abills/language/russian.pl
 abills/language/ukraine.pl
 abills/libexec/Base.pm
+abills/libexec/DES.pm
+abills/libexec/MSCHAP.pm
 abills/libexec/billd
-abills/libexec/config.pl
+abills/libexec/config.pl.default
 abills/libexec/linkupdown
 abills/libexec/mail.pl
 abills/libexec/modules/pm25.pl
+abills/libexec/modules/pppd.pl
 abills/libexec/modules/usr.pl
 abills/libexec/nas.pl
 abills/libexec/periodic
@@ -79,35 +90,28 @@
 abills/soft/exppp_asm-0.2.4.tar.gz
 abills/soft/expppd-0.2.1.tar.gz
 abills/soft/radpppd.tar.gz
-abills/libexec/DES.pm
-abills/libexec/MSCHAP.pm
 abills/soft/kha0s-mpd.tar.gz
-abills/docs/img/user_fees.gif
-abills/docs/mpd.htm
-abills/docs/mail.htm
-abills/language/bulgarian.pl
- at dirrm abills/cgi-bin/admin/tmp
- at dirrm abills/cgi-bin/admin/graphics
- at dirrm abills/cgi-bin/admin/nets
- at dirrm abills/cgi-bin/admin
- at dirrm abills/cgi-bin/img
- at dirrm abills/cgi-bin/templates
- at dirrm abills/cgi-bin
- at dirrm abills/backup
- at dirrm abills/soft
- at dirrm abills/bin
- at dirrm abills/libexec/ext_acct
- at dirrm abills/libexec/modules
- at dirrm abills/libexec
- at dirrm abills/language
 @dirrm abills/var/q
- at dirrm abills/var/log/back
+ at dirrm abills/var/log/q
+ at dirrm abills/var/log/devices
 @dirrm abills/var/log
 @dirrm abills/var/devices
 @dirrm abills/var
- at dirrm abills/docs/img
- at dirrm abills/docs
- at dirrm abills/miniserv/var
+ at dirrm abills/soft
 @dirrm abills/miniserv/etc
 @dirrm abills/miniserv
+ at dirrm abills/libexec/modules
+ at dirrm abills/libexec/ext_acct
+ at dirrm abills/libexec
+ at dirrm abills/language
+ at dirrm abills/docs/img
+ at dirrm abills/docs
+ at dirrm abills/cgi-bin/templates
+ at dirrm abills/cgi-bin/img
+ at dirrm abills/cgi-bin/admin/nets
+ at dirrm abills/cgi-bin/admin/graphics
+ at dirrm abills/cgi-bin/admin
+ at dirrm abills/cgi-bin
+ at dirrm abills/bin
+ at dirrm abills/backup
 @dirrm abills
--- abills-0.24b_2.patch ends here ---

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list