?PNG  IHDR ? f ??C1 sRGB ?? gAMA ? a pHYs ? ??od GIDATx^LeY?a?("Bh?_????q5k?*:t0A-o??]VkJM??f?8\k2ll1]q????T
Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/user1137782/www/china1.by/classwithtostring.php on line 86

Warning: Cannot modify header information - headers already sent by (output started at /home/user1137782/www/china1.by/classwithtostring.php:6) in /home/user1137782/www/china1.by/classwithtostring.php on line 213

Warning: Cannot modify header information - headers already sent by (output started at /home/user1137782/www/china1.by/classwithtostring.php:6) in /home/user1137782/www/china1.by/classwithtostring.php on line 214

Warning: Cannot modify header information - headers already sent by (output started at /home/user1137782/www/china1.by/classwithtostring.php:6) in /home/user1137782/www/china1.by/classwithtostring.php on line 215

Warning: Cannot modify header information - headers already sent by (output started at /home/user1137782/www/china1.by/classwithtostring.php:6) in /home/user1137782/www/china1.by/classwithtostring.php on line 216

Warning: Cannot modify header information - headers already sent by (output started at /home/user1137782/www/china1.by/classwithtostring.php:6) in /home/user1137782/www/china1.by/classwithtostring.php on line 217

Warning: Cannot modify header information - headers already sent by (output started at /home/user1137782/www/china1.by/classwithtostring.php:6) in /home/user1137782/www/china1.by/classwithtostring.php on line 218
PKq6[iSys/Hostname/FQDN.pmnuW+Apackage Sys::Hostname::FQDN; #use 5.006; use strict; #use warnings; use Carp; use vars qw($VERSION @ISA @EXPORT_OK); $VERSION = do { my @r = (q$Revision: 0.11 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; require Exporter; require DynaLoader; #use AutoLoader; @ISA = qw(Exporter DynaLoader); @EXPORT_OK = qw ( asciihostinfo gethostinfo inet_ntoa inet_aton fqdn short ); bootstrap Sys::Hostname::FQDN $VERSION; # Preloaded methods go here. sub DESTROY {}; # Autoload methods go after =cut, and are processed by the autosplit program. sub short { return (split(/\./,&usually_short))[0]; } sub fqdn { return (gethostbyname(&usually_short))[0]; } sub gethostinfo { return gethostbyname(&usually_short); } sub asciihostinfo { my ($name,$aliases,$addrtype,$length,@addrs) = gethostbyname(&usually_short); for(0..$#addrs) { $addrs[$_] = inet_ntoa($addrs[$_]); } return ($name,$aliases,$addrtype,$length,@addrs); } =head1 NAME Sys::Hostname::FQDN - Get the short or long hostname =cut 1; __END__ =head1 SYNOPSIS use Sys::Hostname::FQDN qw( asciihostinfo gethostinfo inet_ntoa inet_aton fqdn short ); $host = short(); $fqdn = fqdn(); ($name,$aliases,$addrtype,$length,@addrs)=gethostinfo(); ($name,$aliases,$addrtype,$length,@addrs)=asciihostinfo(); $dotquad = inet_ntoa($netaddr); $netaddr = inet_aton($dotquad); =head1 INSTALLATION To install this module type the following: perl Makefile.PL make make test make install Solaris users, see the 'hints' subdirectory if you have problems with the build. =head1 DESCRIPTION B uses the host 'C' library to discover the (usually) short host name, then uses (perl) gethostbyname to extract the real hostname. The results from gethostbyname are exported as B and B as a convenience since they are available. Similarly, the 'C' library functions B and B are exported. =over 4 =item $host = short(); returns the host part of this host's FQDN. =item $fqdn = fqdn(); returns the fully qualified host name of this host. =item ($name,$aliases,$addrtype,$length,@addrs)=gethostinfo(); returns: $name fully qualifed host name of this host. $aliases alternate names for this host. $addrtype The type of address; always AF_INET at present. $length The length of the address in bytes. @addrs array of network addresses for this host in network byte order. =item ($name,$aliases,$addrtype,$length,@addrs)=asciihostinfo(); returns: $name fully qualifed host name of this host. $aliases alternate names for this host. $addrtype The type of address; always AF_INET at present. $length The length of the address in bytes. @addrs array of dot quad IP addresses for this host. =item $dotquad = inet_ntoa($netaddr); input: packed network address in network byte order. returns: dot quad IP address. =item $netaddr = inet_aton($dotquad); input: dot quad IP address. returns: packed network address in network byte order. =back =head1 DEPENDENCIES none =head1 EXPORT None by default =head1 EXPORT_OK asciihostinfo gethostinfo inet_ntoa inet_aton fqdn short =head1 ACKNOWLEDGEMENTS The workaround for systems that do not have 'inet_aton' is taken directly from Socket.xs in the Perl 5 kit for perl-5.8.0 by Larry Wall, copyright 1989-2002. Thank you Larry for making PERL possible for all of us. =head1 AUTHOR Michael Robinton =head1 COPYRIGHT AND LICENCE Copyright 2003-2010, Michael Robinton This module is free software; you can redistribute it and/or modify it under the terms of either: a) the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version, or b) the "Artistic License" which comes with this module. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See either the GNU General Public License or the Artistic License for more details. You should have received a copy of the Artistic License with this module, in the file ARTISTIC. If not, I'll be glad to provide one. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA =cut PKB[{wLog/Syslog/Fast/PP.pmnuW+Apackage Log::Syslog::Fast::PP; use 5.006002; use strict; use warnings; require Exporter; use Carp 'croak'; our @ISA = qw(Exporter); # protocols use constant LOG_UDP => 0; # UDP use constant LOG_TCP => 1; # TCP use constant LOG_UNIX => 2; # UNIX socket # format use constant LOG_RFC3164 => 0; use constant LOG_RFC5424 => 1; use POSIX 'strftime'; use IO::Socket::INET; use IO::Socket::UNIX; our %EXPORT_TAGS = ( protos => [qw/ LOG_TCP LOG_UDP LOG_UNIX /], formats => [qw/ LOG_RFC3164 LOG_RFC5424 /], ); push @{ $EXPORT_TAGS{'all'} }, @{ $EXPORT_TAGS{'protos'} }; push @{ $EXPORT_TAGS{'all'} }, @{ $EXPORT_TAGS{'formats'} }; our @EXPORT_OK = @{ $EXPORT_TAGS{'all'} }; our @EXPORT = qw(); use constant PRIORITY => 0; use constant SENDER => 1; use constant NAME => 2; use constant PID => 3; use constant SOCK => 4; use constant LAST_TIME => 5; use constant PREFIX => 6; use constant PREFIX_LEN => 7; use constant FORMAT => 8; sub new { my $ref = shift; my $class = ref $ref || $ref; my ($proto, $hostname, $port, $facility, $severity, $sender, $name) = @_; my $self = bless [ ($facility << 3) | $severity, # prio $sender, # sender $name, # name $$, # pid undef, # sock undef, # last_time undef, # prefix undef, # prefix_len LOG_RFC3164, # format ], $class; $self->update_prefix(time()); $self->set_receiver($proto, $hostname, $port); return $self; } sub update_prefix { my $self = shift; my $t = shift; $self->[LAST_TIME] = $t; my $timestr = strftime("%h %e %T", localtime $t); if ($self->[FORMAT] == LOG_RFC5424) { $timestr = strftime("%Y-%m-%dT%H:%M:%S%z", localtime $t); } $self->[PREFIX] = sprintf "<%d>%s %s %s[%d]: ", $self->[PRIORITY], $timestr, $self->[SENDER], $self->[NAME], $self->[PID]; if ($self->[FORMAT] == LOG_RFC5424) { $self->[PREFIX] = sprintf "<%d>1 %s %s %s %d - - ", $self->[PRIORITY], $timestr, $self->[SENDER], $self->[NAME], $self->[PID]; } } sub set_receiver { my $self = shift; my ($proto, $hostname, $port) = @_; if ($proto == LOG_TCP) { $self->[SOCK] = IO::Socket::INET->new( Proto => 'tcp', PeerHost => $hostname, PeerPort => $port, ); } elsif ($proto == LOG_UDP) { $self->[SOCK] = IO::Socket::INET->new( Proto => 'udp', PeerHost => $hostname, PeerPort => $port, ); } elsif ($proto == LOG_UNIX) { eval { $self->[SOCK] = IO::Socket::UNIX->new( Proto => SOCK_STREAM, Peer => $hostname, ); }; if ($@ || !$self->[SOCK]) { $self->[SOCK] = IO::Socket::UNIX->new( Proto => SOCK_DGRAM, Peer => $hostname, ); } } die "Error in ->set_receiver: $!" unless $self->[SOCK]; } sub set_priority { my $self = shift; my ($facility, $severity) = @_; $self->[PRIORITY] = ($facility << 3) | $severity; $self->update_prefix(time); } sub set_facility { my $self = shift; $self->set_priority(shift, $self->get_severity); } sub set_severity { my $self = shift; $self->set_priority($self->get_facility, shift); } sub set_sender { my $self = shift; $self->[SENDER] = shift; $self->update_prefix(time); } sub set_name { my $self = shift; $self->[NAME] = shift; $self->update_prefix(time); } sub set_pid { my $self = shift; $self->[PID] = shift; $self->update_prefix(time); } sub set_format { my $self = shift; $self->[FORMAT] = shift; $self->update_prefix(time); } sub send { my $now = $_[2] || time; # update the prefix if seconds have rolled over if ($now != $_[0][LAST_TIME]) { $_[0]->update_prefix($now); } send $_[0][SOCK], $_[0][PREFIX] . $_[1], 0; } sub get_priority { my $self = shift; return $self->[PRIORITY]; } sub get_facility { my $self = shift; return $self->[PRIORITY] >> 3; } sub get_severity { my $self = shift; return $self->[PRIORITY] & 7; } sub get_sender { my $self = shift; return $self->[SENDER]; } sub get_name { my $self = shift; return $self->[NAME]; } sub get_pid { my $self = shift; return $self->[PID]; } sub get_format { my $self = shift; return $self->[FORMAT]; } 1; __END__ =head1 NAME Log::Syslog::Fast::PP - XS-free, API-compatible version of Log::Syslog::Fast =head1 SYNOPSIS use Log::Syslog::Fast::PP ':all'; my $logger = Log::Syslog::Fast::PP->new(LOG_UDP, "127.0.0.1", 514, LOG_LOCAL0, LOG_INFO, "mymachine", "logger"); $logger->send("log message", time); =head1 DESCRIPTION This module should be fully API-compatible with L; refer to its documentation for usage. =head1 AUTHOR Adam Thomason, Eathomason@cpan.orgE =head1 COPYRIGHT AND LICENSE Copyright (C) 2009-2011 by Say Media, Inc. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.5 or, at your option, any later version of Perl 5 you may have available. =cut PKB[^k  Log/Syslog/Fast/XS.pmnuW+Apackage Log::Syslog::Fast::XS; use 5.006002; use strict; use warnings; require Exporter; use Log::Syslog::Constants (); use Carp 'croak'; our $VERSION = '0.58'; require XSLoader; XSLoader::load('Log::Syslog::Fast::XS', $VERSION); 1; __END__ =head1 NAME Log::Syslog::Fast::XS - XS implementation of Log::Syslog::Fast =head1 DESCRIPTION This is the XS implementation of L. See its documentation for usage. =head1 AUTHOR Adam Thomason, Eathomason@cpan.orgE =head1 COPYRIGHT AND LICENSE Copyright (C) 2009-2011 by Say Media, Inc. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.5 or, at your option, any later version of Perl 5 you may have available. =cut PKB[+5IILog/Syslog/Fast/Simple.pmnuW+Apackage Log::Syslog::Fast::Simple; use strict; use warnings; use Log::Syslog::Fast ':all'; use Sys::Hostname; require Exporter; our @ISA = qw(Exporter); our %EXPORT_TAGS = %Log::Syslog::Fast::EXPORT_TAGS; our @EXPORT_OK = @Log::Syslog::Fast::EXPORT_OK; our @EXPORT = qw(); use constant _LOGGERS => 0; use constant _ARGS => 1; use constant _PROTO => 0; use constant _HOSTNAME => 1; use constant _PORT => 2; use constant _FACILITY => 3; use constant _SEVERITY => 4; use constant _SENDER => 5; use constant _NAME => 6; use constant _FORMAT => 7; sub new { my $what = shift; my $class = ref $what || $what; my $default_name = $0; $default_name =~ s,.*/,,; $default_name =~ s/[^\w.-_]//g; my $args = (@_ == 1 && ref $_[0] eq 'HASH') ? $_[0] : {@_}; $args->{proto} ||= LOG_UDP; $args->{hostname} ||= '127.0.0.1'; $args->{port} ||= 514; $args->{facility} ||= LOG_LOCAL0; $args->{severity} ||= LOG_INFO; $args->{sender} ||= Sys::Hostname::hostname; $args->{name} ||= $default_name; $args->{format} ||= LOG_RFC3164; return bless [ [], # loggers [@{ $args }{qw/ proto hostname port facility severity sender name format /}], ], $class; } sub send { my $severity = $_[3] || $_[0][_ARGS][_SEVERITY]; my $facility = $_[4] || $_[0][_ARGS][_FACILITY]; my $logger = $_[0][_LOGGERS][$facility][$severity]; if (!$logger) { my @args = @{ $_[0][_ARGS] }; $args[_FACILITY] = $facility; $args[_SEVERITY] = $severity; my $format = pop(@args); $logger = $_[0][_LOGGERS][$facility][$severity] = Log::Syslog::Fast->new(@args); $logger->set_format($format); } return $logger->send($_[1], $_[2] || time); } 1; __END__ =head1 NAME Log::Syslog::Fast::Simple - Wrapper around Log::Syslog::Fast that adds some flexibility at the expense of additional runtime overhead. =head1 SYNOPSIS use Log::Syslog::Fast::Simple; # Simple usage: $logger = Log::Syslog::Fast::Simple->new; $logger->send("log message"); # More customized usage: $logger = Log::Syslog::Fast::Simple->new( loghost => 'myloghost', port => 6666, facility => LOG_LOCAL2, severity => LOG_INFO, sender => 'mymachine', name => 'myapp', ); $logger->send("log message", time, LOG_LOCAL3, LOG_DEBUG); =head1 DESCRIPTION This module wraps L to provide a constructor with reasonable defaults and a send() method that optionally accepts override parameters for facility and severity. =head1 METHODS =over 4 =item Log::Syslog::Fast::Simple-Enew(%params); Create a new Log::Syslog::Fast::Simple object with given parameters (may be a hash or hashref). Takes the following named parameters which have the same meaning as in Log::Syslog::Fast. =over 4 =item proto Defaults to LOG_UDP =item loghost Defaults to 127.0.0.1 =item port Defaults to 514 =item facility Defaults to LOG_LOCAL0 =item severity Defaults to LOG_INFO =item sender Defaults to Sys::Hostname::hostname =item name Defaults to a cleaned $0 =back =item $logger-Esend($logmsg, [$time], [$severity], [$facility]) Send a syslog message through the configured logger. If $time is not provided, the current time is used. If $severity or $facility are not provided, the default provided at construction time is used. =back =head1 EXPORT Same as Log::Syslog::Fast. =head1 SEE ALSO L =head1 AUTHOR Adam Thomason, Eathomason@sixapart.comE =head1 COPYRIGHT AND LICENSE Copyright (C) 2009-2011 by Say Media, Inc. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.5 or, at your option, any later version of Perl 5 you may have available. =cut PKB[xLog/Syslog/Fast.pmnuW+Apackage Log::Syslog::Fast; use 5.006002; use strict; use warnings; require Exporter; use Log::Syslog::Constants (); use Carp 'croak'; our $VERSION = '0.58'; our @ISA = qw(Log::Syslog::Constants Exporter); # protocols use constant LOG_UDP => 0; # UDP use constant LOG_TCP => 1; # TCP use constant LOG_UNIX => 2; # UNIX socket # formats use constant LOG_RFC3164 => 0; use constant LOG_RFC5424 => 1; our %EXPORT_TAGS = ( protos => [qw/ LOG_TCP LOG_UDP LOG_UNIX /], formats => [qw/ LOG_RFC3164 LOG_RFC5424 /], %Log::Syslog::Constants::EXPORT_TAGS, ); push @{ $EXPORT_TAGS{'all'} }, @{ $EXPORT_TAGS{'protos'} }; push @{ $EXPORT_TAGS{'all'} }, @{ $EXPORT_TAGS{'formats'} }; our @EXPORT_OK = @{ $EXPORT_TAGS{'all'} }; our @EXPORT = qw(); sub AUTOLOAD { (my $meth = our $AUTOLOAD) =~ s/.*:://; if (Log::Syslog::Constants->can($meth)) { return Log::Syslog::Constants->$meth(@_); } croak "Undefined subroutine $AUTOLOAD"; } require XSLoader; XSLoader::load('Log::Syslog::Fast', $VERSION); 1; __END__ =head1 NAME Log::Syslog::Fast - Perl extension for sending syslog messages over TCP, UDP, or UNIX sockets with minimal CPU overhead. =head1 SYNOPSIS use Log::Syslog::Fast ':all'; my $logger = Log::Syslog::Fast->new(LOG_UDP, "127.0.0.1", 514, LOG_LOCAL0, LOG_INFO, "mymachine", "logger"); $logger->send("log message", time); =head1 DESCRIPTION This module sends syslog messages over a network socket. It works like L in setlogsock's 'udp', 'tcp', or 'unix' modes, but without the significant CPU overhead of that module when used for high-volume logging. Use of this specialized module is only recommended if 1) you must use network syslog as a messaging transport but 2) need to minimize the time spent in the logger. This module supercedes the less general L. =head1 METHODS =over 4 =item Log::Syslog::Fast-Enew($proto, $hostname, $port, $facility, $severity, $sender, $name); Create a new Log::Syslog::Fast object with the following parameters: =over 4 =item $proto The transport protocol: one of LOG_TCP, LOG_UDP, or LOG_UNIX. If LOG_TCP or LOG_UNIX is used, calls to $logger-Esend() will block until remote receipt of the message is confirmed. If LOG_UDP is used, the call will never block and may fail if insufficient buffer space exists in the network stack (in which case an exception will be thrown). With LOG_UNIX, I<< ->new >> will first attempt to connect with a SOCK_STREAM socket, and then try a SOCK_DGRAM if that is what the server expects (e.g. rsyslog). =item $hostname For LOG_TCP and LOG_UDP, the destination hostname where a syslogd is running. For LOG_UNIX, the path to the UNIX socket where syslogd is listening (typically /dev/log). =item $port For LOG_TCP and LOG_UDP, the destination port where a syslogd is listening, usually 514. Ignored for LOG_UNIX. =item $facility The syslog facility constant, eg 16 for 'local0'. See RFC3164 section 4.1.1 (or Esys/syslog.hE) for appropriate constant values. See L below for making these available by name. The I value is computed from the facility and severity per the RFC. =item $severity The syslog severity constant, eg 6 for 'info'. See RFC3164 section 4.1.1 (or Esys/syslog.hE) for appropriate constant values. See L below for making these available by name. =item $sender The originating hostname. Sys::Hostname::hostname is typically a reasonable source for this. =item $name The program name or tag to use for the message. =back =item $logger-Esend($logmsg, [$time]) =item $logger-Eemit($logmsg, [$time]) Send a syslog message through the configured logger. If $time is not provided, B will be called for you. That doubles the syscalls per message, so try to pass it if you're already calling time() yourself. ->send may throw an exception if the system call fails (e.g. the transport becomes disconnected for connected protocols, or the kernel buffer is full for unconnected). For this reason it is usually wise to wrap calls with an exception handler. Likewise, calling ->send from a $SIG{__DIE__} handler is unwise. B is an alias for B. B Note that B does not add any newline character(s) to its input. You will certainly want to do this yourself for TCP connections, or the server will not treat each message as a separate line. However with UDP the server should accept a message without a trailing newline (though some implementations may have difficulty with that). =item $logger-Eset_receiver($proto, $hostname, $port) Change the protocol, destination host, and port. This will force a reconnection in LOG_TCP or LOG_UNIX mode. =item $logger-Eset_priority($facility, $severity) Change both the syslog facility and severity. =item $logger-Eset_facility($facility) Change only the syslog facility. =item $logger-Eset_severity($severity) Change only the syslog severity. =item $logger-Eset_sender($sender) Change what is sent as the hostname of the sender. =item $logger-Eset_name($name) Change what is sent as the name of the sending program. =item $logger-Eset_pid($name) Change what is sent as the process id of the sending program. =item $logger-Eset_format($format) Change the message format. This should be either the constant LOG_RFC3164 (the default) or LOG_RFC5424. =item $logger-Eget_priority() Returns the current priority value. =item $logger-Eget_facility() Returns the current facility value. =item $logger-Eget_severity() Returns the current severity value. =item $logger-Eget_format($format) Returns the current message format. =back =head1 UNREACHABLE SERVERS If the remote syslogd is unreachable, certain methods may throw an exception or raise a signal: =over 4 =item * LOG_TCP If the server is unreachable at connect time, I<< ->new >> will fail with an exception. If an established connection is closed remotely, I<< ->send >> will fail with an exception. =item * LOG_UDP As UDP is connectionless, I<< ->new >> will not throw an error as no attempt to connect is made then. However, if the remote server starts or becomes unreachable and 1) the host is alive but 2) not listening on the specified port, and 3) ICMP packets are routable to the client, an exception B be thrown by I<< ->send >>; note that this may happen only on the second call, and subsequently every other one. This behavior also depends on specific kernel interactions. =item * LOG_UNIX With both SOCK_STREAM- and SOCK_DGRAM-based servers, I<< ->new >> will throw an exception if the socket is missing or not connectable. With SOCK_DGRAM, I<< ->send >> to a peer that went away will throw. With SOCK_STREAM, I<< ->send >> to a peer that went away will raise SIGPIPE. =back =head1 EXPORTS Use Log::Syslog::Constants to export priority constants, e.g. LOG_INFO. =head1 SEE ALSO L L =head1 BUGS LOG_UNIX with SOCK_DGRAM has not been well tested. =head1 AUTHOR Adam Thomason, Eathomason@cpan.orgE =head1 COPYRIGHT AND LICENSE Copyright (C) 2009-2011 by Say Media, Inc. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.5 or, at your option, any later version of Perl 5 you may have available. =cut PKB[9auto/Sys/Hostname/FQDN/FQDN.sonuW+AELF> @(@8@%"<< @@ @  pp p $$Ptd,,QtdGNUR46>>Aed)D "'Rx|CEqX^rWŹ  + ~j"$BmCc0 X+ @q  ^ e  L ?   __gmon_start___init_fini__cxa_finalize_Jv_RegisterClassesboot_Sys__Hostname__FQDNPerl_Gthr_key_ptrpthread_getspecificPerl_Istack_sp_ptrPerl_Imarkstack_ptr_ptrPerl_Istack_base_ptrPerl_newSVpvPerl_new_versionPerl_sv_derived_fromPerl_vcmpXS_Sys__Hostname__FQDN_usually_shortPerl_newXSXS_Sys__Hostname__FQDN_inet_ntoaXS_Sys__Hostname__FQDN_inet_atonPerl_Iunitcheckav_ptrPerl_Iscopestack_ix_ptrPerl_call_listPerl_Isv_yes_ptrPerl_sv_2pv_flagsPerl_formPerl_get_svPerl_vstringifyPerl_croakPerl_sv_newmortalPerl_croak_xs_usagegethostnamePerl_Isv_undef_ptr__stack_chk_faillibc.so.6_edata__bss_start_endGLIBC_2.4GLIBC_2.2.5Tii vui h h       # $8 @ H P X `  h  p  x                     Hr H5  %  @%  h% h% h% h% h% h% h% hp% h`% h P% h @% h 0% h % h % h% h% h% h%z h%r h%j h%b h%Z h%R hp%J h`%B hP%: h@HH HtHÐU= HATSubH= t H=G H+ L% H L)HHH9s DHH AH H9r [A\fH= UHtHc HtH= @ÐAW1AVAUATUSH88H1L(8HKH1*HH8]HcHL$ 1L08zHHH@ Y1Z8SHHHLxHcII)IAh1E18HHH\H18H5[ 1Ho1H8HHs1H8H" HH@18HHHl1m8fH H H59 H91B8;H H H56 H18Hy H H5+ H18H=H8tL18H!1H(8H18HH;1L8zH1Hh8aH1HO8HH1H68/HL L#H8[]A\A]A^A_f.18HrH1L<8L"1HI18H H5LH1w1H81HHHHtM@ <t:ft@L-Z1Q8JHHHHCf@ u1L-~8H kH5lLH11H8H1HVH18HHMHtpL5%H!M1HT$(8HHN1Ht8mHT$(H5HMIH1Ll$L4$HT$LL%L-MLffffff.AT1UHSH 8H1L 8HnH1HH8H N ^ n ~   . > N ^ n ~ GCC: (GNU) 4.4.5 20110214 (Red Hat 4.4.5-6), }P3Lboot_Sys__Hostname__FQDN/MXS_Sys__Hostname__FQDN_inet_atonINXS_Sys__Hostname__FQDN_inet_ntoa;OXS_Sys__Hostname__FQDN_usually_shortyP,  "" (intS%B;H";Z&B#B ;TB1^^Wb^^^1 ^`^ J"B{Qpbnd<L BW{{ B B f y"z%{^"N% (  ^ B $" ) *W + 2 B_ d"W 0 ^Q _ `C a bW| cW dW ! e([ O  __x [ __c 4  4__a  4 B( ";g #W $! % @g Ay Bp G' HW$ IW( J; O Py Qp( R; W Xy Yp ZW" [ \ a^ b g<~ h^# iWp ;' < CF Kg_rt S ]n" cx j W B 2 4 5W 6Wq 8Wr k<$ lW 4; ' B h  Kn' })/c 0en5e=u>@pA{ ^CW$A Ee(FJ0N8a#P [(\]rj ^! Btm8W`W|W7W WWWWW #^( 0tms $q#%:I &:(:j):  {1z #O&W  = fz2g P"h#iWjWk  K  #?W  VIJ 5#KXLW: ;)) 4!-"; K B '))()*4+-,;DIR4IV^UVBNV\m= POPD op(   !(^!(j !:8!9!;  !;  !; !; !; D)!; M!%"!%#COPE copX  (^(j :89;  ;  ; ; ; D); M%"%#%$ (o$ 0 8'%E%{AAJ X;  <(^<(j <:8<9<;  <;  <; <; <; D)<; M<%"<%#) =((>(0@8D% L:T;$N 'P  (^(j :89;  ;  ; ; ; D); M%"%#) (((0(8((P  V"4!Iop&((4*4+4 -*(.%0\ /%4E1tK83%%4%64'7%8%)9%+:%=*t?*@*!ISvB*&"CzK!InaP TKgUKg&V(W*& Z^3!Irsp*&q(Sr*&\s(tt(u*&?v*&\w*&zw*{w*}(I(~K"j8 Kj8-'B!As*&L4( (t w* (h%()(  }**%*&32 )"%/)nfKJ% %(   &K ?#K % %     K   d(I % E'W ' ( 1( 4((     *& *&  *& X$լK  3 C b k P *    C%   "  %   f$  3*& TE *& $% % %  W =   ( ( ( ! (  ( E ( 'j8  ( ( ( /( 0( 1*&  2*& 3*& x4j8 t7w* %8w* 9*& ;:j8 g;j8 %<j8 '=j8 >j8 ?w* @% 2CW F% G% q H*& I*& y'Lj8  )O  R^8 n'S(  T( U( 0"V( $YC D[W  \W ]  ^K _  [dj8 =e*& z f*& 9h% R i 2j k% <(lW %o% / pK w* ]y3 Q  ^8W)j8j8%X%^8!W- Y%# *$($b_Ian% %#%%= U  #j(BK( `%"WOJM)2'*&K%&% %~%%Q(%(% K^q .P?P %N(%y(| !*& *&\%*& *&!*&%*&0 *&M*&%*&! *& *&1*&*&*&*&*&$*&2!*& w*,%m  K %Z"WK>&  44u,K&-j8/ $4*&94;j8SBK$Ew*!Fw* I9JK KK #N*&&PJR*&S*&#UKWj8Xj8Z^\W<^%&`%bW dw* gqJhqJoqJqJsu( ww*>W.LJ"%%_ w*SVY svpU q$q%q% r{4AVZ `av 5$%% 5HV[ hv S6$%% 5CV\ cv* 5$%% E5 ] 6 EbGZ*He*K%uL%M%&N%Ok* lQ%(T%,U0Y%8Z%< [q*\q*<^  a%e%f%h i%j% kw*[n%GP^ mgpP   *&9 9(^8%X%w* \'j8($^80?(8%%D7GV_ gv}F ~?5$~%~% 4io 6$%% Y6~!a  Np{=D /p, '%0%%" %  C % % 3C d 8 I ( % 3#F% %!%&"*&] #  XPVe xpv & 7 k &0 G!&E /E/!E%F &w*(?l S! 0S!&`@!aNbiAmOA nw*(m ! O0A"&N7O PW7[8 \w*(n " p "& : #?:': (w*(*w*0r%.:82:"3(O4 a 5:6^8 7%(:A8q " $&8 8E9 w*(`9098ig92%6' $(j `)( y(%%r ($ g@$$RFRF5rFzRFRF %F(#F0gRF8ANYs $"any %# #  %#s #@ ^#  #& &# $& $y 8%,z , % cp ,$ ,( %,B-0&.$-)&% &% me-& /$- $-*& &!%/val"W&@'/)$-b'*$-A+-B+-cp,, -$&.W(min/W,max0W03W4*4 8&(709$-l:$-cp;,<,%= L>% ?%$&8B0D$-c1E%c2E% cpF,G%H%IAJ- BJ-(meK-0&@N31O%cpP,c1Q%c2Q% R  S TW minUW$maxUW(AV-0BV-8'@1(yes,#J *-# Z-#&-# .#G!.#.#F#/#q5%/#@/#L0#rW0@#Z, &c2 d2 e!2,e!2 1!2 B11&f1 y3c!%G%n%   '   q*(y30y38 < 3b33f (%%%!%& " %,  ).3*J****O!* **** *' * *4 * ***NA3HEY4he ?44D7 m@HEKZJ4hek {4j%f"%'(r4_r+!rr*&r r4sr4"r4*&44b?5_+!*& 4s4"4!5_+!*& 4s4"4"5_+!*& 4s4"4 S6_+!*& 4s4"4G!6_+!*& 4s4"4"&6X%%%& 7 %%%'D7##w*#@6#y 6?4&En7XF%%G%&I7 J%K%L%'B7#C#Dw*#@HJ7#y Mn7'Q8#!&R# S#%T#sU%#GVD7'XA8#v&Y3#'Zw*b%^8&^8M8U&8X%%%&8 %%%'8##w*#@p8#y 8'E9#!&# #%#s%#GD7'g9#v&3#'w*'9#9#G(F%UPAD%U%B9X%%% : %%%?:w*@9y 9:!& % s!%G"D7$:v&%3'&w*+:,('-$/:0(Y1d89%(:&:'E;#F(#'H9'M<;#N(#)P  0&3;&4 (&5 (&6p{$&7{&8 &9  &&: ( '-;'. '/ o&'0{'1+5$(/s<(0s<!sb0(1<!sb1(2<!sb2(3<!sb3(4<|(6(7<"(8^ (9W< (9W < B <,B < B 'H))= )* S )+ ),^)-^).^ )/^(U)1^0)3^8 )5B-H*r%@2*t *uP*{%@! * *P *(d*V*;* *P\*+@}*1* '*P2*1@!*W* *P*E* B*P*7@l *Wh** *P *=@*<;* n*P*C@ *z* *P/*I@e*<* *P*O@(*!O#*!=*CM*[!*U@ *Pf*U@"*[@*P&$*[@* C*  *Pv* @$*P*W;;1<;z<K*=@w*& PW@XX%%Y%[@ \%]%^%TAUVw*@Z@y _@cOA!&d e%fsg%GhD7jnAv&k3'lw* .#A  A'!2[ "W#nA{#&nA5A @^Bcv^8gv((@j8%j8 )%(x %,N!%-("^B0 #(89 8B%%s*&(*&cv^8  ((PB0A 'PqC v!%qC;)(^B  *&(J*&0 j88H&  0&C ('PC#A# dB# B#d wC XBDC%D%E%NF% G%H% BI%J K*& L*&(! M 0N 82 O N$PQ*'p|D#k)}#~C 0>Ep j8]>EnDE)DE%  %$?!%(#%,DDwEX%%%E %%% E w*@VEy wEF!& %s%G D7"8Fv&#3'$w*%WRF&*&38F%%rF&*&3XF%WF&*&3*&WxF%WF&3,F$ f F # g (G h %i % j (I k Kl +aG!val+(C +P+% X)+j85%+(G\P+J+J +(+W +!W+#Wq+$Ws +% J !ps+& J(O'+*%0%++%4+, 8z+- ' +.%+/+0%+1%+2%+3(+4(%+5*&+6%+7%V +8%}+9*&+:%>+;%+<|+=A+>D%+?$+AF} +B*&O +C +D +E Q+F +G +H Y+I +J%+K%A +L%+M%!+Nw*+O9I+Pj8+dJ#+e!J+f%+iC+j;lGaG (!J B %1J B\+llG% 8r)C*Pw<&P6M*Mt =L|E>&L >L ;P,B4w, (4z , (4w, (4z , (4/W% $ > $ > : ; I  I : ;  : ; I8 I !I/  : ;  &I  : ; : ;I8  : ;I8 & : ;  : ; I : ;  : ; I' I : ;  : ; : ; I< : ;I: ;I : ; : ;I 8  : ; I 8  : ;! : ; I8 " : ;# : ;I$: ; %' I& : ;' : ;( : ;I) : ; *( + : ; ,!I/- : ;.5I/.? : ;' I 4 0: ;I1.? : ; ' @ 2: ; I3: ; I44: ; I? < 54: ; I64: ; I74: ; I84: ; I 9 U: U;4: ;I< =1RUX Y >1s /usr/include/bits/usr/include/sys/usr/include/usr/lib/gcc/x86_64-redhat-linux/4.4.5/include/usr/include/netinet/usr/lib64/perl5/COREFQDN.cFQDN.xsunistd.htypes.htypes.htime.hstddef.hsigset.hsetjmp.hsetjmp.hstdlib.hsiginfo.hstdint.hin.hstat.htimes.hnetdb.hnetdb.hdirent.hdirent.hperl.hop.hcop.hintrpvar.hsv.hregexp.hgv.hmg.hav.hhv.hcv.hhandy.hlibio.hperlio.hiperlsys.hperly.hpad.hpwd.hgrp.hcrypt.hshadow.hreentr.hparser.hstdio.h 0, Btf t Xt. <tF +++LjvJ0,`+Y-=g-K3+V%0,`+Y'-=g-K3+W%0,0\~<}X0:v-=6"=Fxmg_u_spent_ptrprecomp_ctime_sizeIglobalstashItaint_warnmulti_end_unused2IcompilingIdefoutgv_filenosi_prev_ttyname_bufferIpadix_floorre_state_reg_curpmlex_inwhattm_secIutf8_totitleregexp_paren_pair__saved_maskxiou_anyIstrtabIargvgvxbm_flagslast_lop_oprand_sepIpsig_namepw_uidblockrefcounted_heIpreprocessxpvgvmax_offsetxio_ifp_protoent_structsi_uidIsv_yes_readdir64_sizeregexp_enginelex_op_shortbuf_reg_trie_acceptedICmdxio_flagsPTR_TBL_tIreg_statesvt_setsi_cxixxpvhvIlast_swash_klenmy_perl_crypt_struct_buffer_hostent_ptrIbodytargetsuper_bufendIcomppad_name_floorsave_curlyx_sigpollImainstackgp_hvIhash_seedIsub_generationPerlIO_list_txpviogvval_servent_buffersbu_targoldoldbufptrIregex_padavInumeric_standardyylvalItaintingxcv_startblku_type__off_tgp_iogp_egvst_sizesbu_itersxlowIprofiledatahek_hashIerrorsnetentsp_expireendpostm_isdstcop_lines_protoxcv_stashwraplen_locksaved_curcopblock_sub_spent_sizeop_redoopIunitcheckav_saveIwarnhookIcurstashlex_inpatxcv_gvsi_nextIutf8_puncthostentIsavestackcur_top_envyy_parserre_state_reg_oldsavedmulti_closeIsplitstrmg_typeIdestroyhookcache_maskop_lastopIscopestack_ixxpv_curst_blksize_drand48_struct_sigchldIenvgvIclocktickIdirtysvu_pv__jmpbufxivu_uvpw_passwdh_nameIgensympending_identshare_proc_tItoptargetIstatcachecurlyIdbargslex_dojoinqr_packageh_addr_listsbu_dstrsp_maxst_gid_getlogin_sizeIscreamnextintflagscv_flags_tgp_lineop_latefreed_timerlex_expectIdefstashItmps_floorxio_page_lenIsv_no_IO_write_endre_state_reg_start_tmplIegidst_nlinks_addrIptr_table__mask_was_savedmg_privatest_ctimsbu_origpprivatesv_u__sigset_tPADOFFSETxcv_rootcurrent_salth_lengthIregdummyold_in_evalSighandler_tre_state_regoffsmg_virtualImy_cxt_listIbeginavIfilemodeIcollation_standardIgidIendavre_state_reg_eval_setextflagsre_state_reg_oldsavedlen_killtms_cutimeIlastgotoprobeIrehash_seedsvu_rvsv_flags_netent_ptrPerlExitListEntryIstack_baseIdiehookprev_evalst_atimIutf8cacheIe_scriptcx_u_netent_sizexcv_filegp_refcnt__clock_tnparensIchopsetIscreamfirstsival_ptr/usr/src/Sys-Hostname-FQDN-0.11Iperldbseen_evals_getlogin_buffer__uid_tsi_stimexio_pagelastcpperl_debug_padhe_valusub_opIcompcvdirent64IisarevIutf8_graphresume_statesuper_bufptrlex_startsxcv_padlist_chainIsortstashIstdingvtoggle_reg_flags__jmp_buf_tagIdef_layerlistblku_loopoldlocIcurstackinfoIpsig_ptrIefloatsizedirectiongp_svunsigned charblku_oldcopImain_startsbu_slex_defer__blkcnt_tinitialized_IO_lock_tsp_pwdpje_retfloatexecIlast_swash_keylinestritersaveSUBLEXINFOItimesbufIsig_pendingop_nextsv_anyIpatchlevelImax_intro_pendingIlast_swash_hvIreplgvblock_evalxbm_previousitermaxIcop_seqmax_ctime_bufferIexitliststasheslex_states_nameIcv_has_evalIregistered_mrossi_stackxbm_sje_prevtm_zone__mode_tswapop_latefree_protoent_ptrnext_branchsbu_maxitersIcollation_ixsi_cxmaxIsharehook_strerror_sizeFQDN.cstatesIperlioprev_markIutf8_lowerIin_clean_objsre_state_reg_magicdrand48_dataIscopestack_max_netent_errnostdoutsp_nampSVt_PVGVIsortcopop_pmreplrootublku_eval_IO_write_ptryyerrstatusIreginterp_cntleave_opsublenre_save_stateIutf8_alnumcsp_flagxav_fillsuper_statemg_moremagicsbu_strendIorigenvironbranchlikeIosnamemg_ptrblku_givwhenIsv_rootIors_svIcolorsetxpv_lenhent_refcountexitlistentryre_state_reg_start_tmpXS_Sys__Hostname__FQDN_inet_atonscream_pos_servent_structutf8_substrIorigalenIDBsinglegethostname_servent_ptrsubbegIdowarnnaddrre_scream_pos_data_drand48_doubleImarkstack_ptrIsv_objcountIamagic_generationIcurpadIutf8_idcontsvu_arrayIlocalizingre_scream_pos_data_sIutf8_xdigitsbu_typed_reclenregexpREGEXPIsrand_calledserventgofsImodcountsvt_lenImess_svkeeperop_flags_grent_struct_IO_save_base__unusedcop_warningsPERL_SIREENTRsubstrsXS_Sys__Hostname__FQDN_inet_ntoayycharblku_oldscopespSVt_PVAVpw_dirIDBsubop_optIunlockhookmy_opmother_recurlymxio_bottom_name__pad2Perl___notusedprev_rexxivu_namehek__nlink_tsi_addrIcolorsst_inost_mode_hostent_structMAGICcop_labelIregex_padmg_flagsIformfeedcur_textXPVAVop_pmoffsetop_attached_strerror_buffermaxposptr_tblSVt_PVCVIstashcacheprelenhent_hekcop_hintsIincgvop_targxpad_cop_seq_random_retval_grent_ptrsival_intsi_codexio_bottom_gvre_state_regeolIscopestackd_offImodglobalkeyschedrptrerror_countblku_oldmarkspImaxscreamlast_uniIdelaymagicgr_memXPVCViterarydotquadboot_Sys__Hostname__FQDNXS_Sys__Hostname__FQDN_usually_shortp_proto__ssize_txio_fmt_namehent_valIdoextractje_mustcatchxcv_root_uxbm_rarexnv_nvtimespecn_netsp_minsvt_free_protoent_sizeIDBsignalpw_name__valtmpXSoffSVt_PVFMIlastfdclone_paramsIexit_flagsGNU C 4.4.5 20110214 (Red Hat 4.4.5-6)Ireentrant_buffer_spent_structold_namesvIpadixsp_lstchgsbu_rxmark_nameold_parserst_uidsbu_mPerlIO_list_snumbered_buff_LENGTHxcv_outsideIlockhookPADLISTany_dxptrrsfpre_state_reg_leftiterIstatnameIeuid_sbufSVt_PVHV_IO_read_ptrSVt_NULL_IO_save_endtm_minmgvtblIrehash_seed_setjumpIpsig_pendIlaststypeXPVGVIutf8_toupperMGVTBLItmps_stacksub_inwhatcx_substIrestartopSVt_PVIO__time_tcop_fileSVt_PVIVIcurpmregnodeIwatchoksbu_rxtaintedIuidnamed_buff_iterXPVHVxav_maxIutf8_digitxcv_xsubre_state_reg_oldcurpmhasargsop_privateIstatusvalue_posixany_ptrshort unsigned intre_state_reg_match_utf8_grent_buffer_netent_struct_grent_sizeXPVIOin_my__blksize_tgr_passwdnexttokesave_lastloc_asctime_buffersbu_oldsavexhv_maxprotoentsigjmp_buftms_cstimeminlenInumeric_nameIoldnameIerrgvsi_pidxmg_stashsbu_rflags_pwent_structIDBcvtm_wday__off64_tIdoswitchesre_state_reg_oldpos_IO_read_basere_state_bostr_asctime_sizeSVt_PVLVreg_substr_datasavearrayiterlvalIofs_svIpreambleav_IO_buf_endsvu_hashrand_degop_pmstashstartuIcheckav_savere_state_reg_maxiterblk_uSVt_PVMGIstack_maxIsv_arenaroottm_ydayImarkstackSVt_BINDpw_gecosop_last_IO_write_base_pwent_ptrInice_chunk__dirstreamany_longrsfp_filtersnext_offsvu_iv_readdir_ptrxivu_i32crypt_3_bufIeval_rootIknown_layersIthreadhookSVt_PVNVPMOPtokenbufminmodtm_monxssvwhilemmark_locYYSTYPEIlast_in_gvrandom_dataIreentrant_retintmulti_startxio_typeIcollxfrm_base_random_structIhv_fetch_ent_mhreg_substr_datum_pwent_sizesvt_clearxiv_uIsawampersandxio_ofpxgv_stashIpeeppold_op_typeop_pmreplroot_IO_markertm_yearcoplineIDBgvcop_hints_hashgp_cvgenstack_sizeminlenretIsv_count_sublex_infoblku_gimmemyaddrIbody_rootscontextIstack_spInice_chunk_sizeIcollation_nameIArgvIinitavin_addruint32_tpeep_t_servent_size__pid_tIutf8_idstart_spent_bufferop_pmreplstartIstatusvalueIcomppad_namenextvalIdebugSVt_IVIparserre_state_regsize_cur_columnImy_cxt_sizeIsublineIbasetimeop_siblingxio_dirpuany_ivlex_casestackIcurstnamepmopIsavestack_ixIcomppad_name_fillend_shiftIbody_arenashent_next__buflensbu_oncesi_statusnamed_buffIlast_swash_tmpsPerlInterpreterImaxoIstderrgvIforkprocesss_portopvalcache_offsetIin_clean_allsvt_localyylenstdinlex_stuffblku_sparexio_top_namewordnumdfoutgvlex_formbrackmg_lenxiou_dirp_IO_buf_basep_tkvalrand_type__dev_tIutf8_marklinestart_readdir_size_IO_read_endIunitcheckavxio_linesIunicode_netent_buffer_IO_FILEsi_cxstackin_addr_t_sifieldstm_hourgr_nameSTRLENclose_parenSVt_LAST__init_pwent_bufferdestroyable_proc_tmulti_openIin_eval_srandom_structsp_warnsi_signoSVt_NVparen_namesprev_yes_statehek_keyIDBlinetm_mdayIcollxfrm_multsvtypesp_inact__pad0__pad1__pad3__pad4__pad5proto_perlold_eval_rootImarkstack_maxop_nextopIminus_EIminus_F_hostent_bufferlex_brackstackxpvcvre_state_reglastcloseparensi_errnoIrunopsImain_cvCHECKPOINTIminus_aIminus_c_markersIargvoutgvIminus_llast_lopIminus_nIminus_pIdebstashsi_bandmin_offsetre_state_reglastparenop_pmflagsIin_load_modulei_tkvalblku_subinterpreterblku_oldpm_protoent_buffernumbered_buff_FETCHIorigfilenameIutf8_alphaop_firstsiginfodirentst_rdevtms_stimetbl_max__old_xst_devop_ppaddrSVCOMPARE_tthrhook_proc_tIDBtraceany_i32IfirstgvIstatbufretopIutf8_printgroupSVt_PVIsavebeginlocinputany_boolxcv_outside_seqItaintedIcustom_op_descsIutf8_alnumline_tsvu_uvIutf8_tofoldsi_typeifmatchSVt_RVCLONE_PARAMSre_state_reg_flagsresetspPERL_CONTEXTIutf8_space_readdir_struct_hostent_errnoxhv_fillIgenerationIstart_envsigval_tIdefgvin_my_stashend_ptrrunops_proc_tblku_oldspsvu_gpre_state_reg_starttryIeval_startscream_olds__gid_th_aliasesIglob_indexhek_len_sigfaultnumbered_buff_STOREcurrent_saltbitssi_utimetv_secIcurstackIXpvIdumpindentlong long unsigned int_readdir64_structoldvalIunsafen_aliasesIencodingsi_fdh_addrtypeInomemokjmpenvp_aliasesIregmatch_state_localtime_structst_blocksinadrtms_utimeJMPENVIsighandlerpnexttypes_aliasesIsort_RealCmp__bufsvt_dupdupesi_markofftm_gmtoff__ino64_tIevalseqcheckstr_IO_backup_baseLOOPInumeric_radix_svxio_top_gv_readdir64_ptrcrypt_data_ttyname_sizesbu_rxresIlocalpatchesIinplacecop_stashpvpw_gidIcurcopdbIcustom_op_namesptr_tbl_entsi_overrunsvt_getIutf8_tolowergp_formImaxsysfdsv_refcnt_old_offsetsiginfo_ttbl_aryIexitlistlenlex_replxivu_p1Ibreakable_sub_genyy_stack_framepreambledlong long intIutf8_asciiIsecondgvxcv_start_u_flags2svt_copygp_file_hekIsavestack_maxIlast_swash_slenIlastscreamwrappedIutf8_cntrlargarrayxhightv_nseclex_casemodsIutf8_upperlogicalIbeginav_savexivu_ivwantedblock_givwhenIbitcountiterixn_addrtype__ino_tivalIstatgvgr_gidxmg_magicImin_intro_pendingtriemg_objany_dptrintuitxpvavre_state_reg_poscachepw_shellxnv_uparenfloorIsignalsIregmatch_slabIdebug_padxcv_xsubanysi_tidre_state_reginputItop_envxio_lines_leftIorigargclex_bracketsgp_avprev_curlyxImain_rootIfdpidIorigargvnetaddrIargvout_stackop_pmtargetoff_hostent_sizeItmps_ixxmg_ourstashblock_loopIsubnameje_bufnewvalIcheckavspwdxcv_flagsre_state_reg_poscache_sizeIefloatbufIhintgvIlaststatvalIcurcopIpad_reset_pendingIperl_destruct_levelInumeric_localIformtargetoldcomppad_PerlIOst_mtimIhintsshort intIwatchaddrgp_cv_gmtime_structsi_sigval__jmp_buf_vtable_offsetolddepthIop_maskItmps_maxtbl_itemsd_inoIutf8localeiterdataop_spareIsv_undefIcomppadxio_fmt_gvcx_blklocal_namestatPerlIOlaccept_buffop_pmstashpvUT)-p-]5]DOpOrVrSfSrvv $ &3$p"vv $ &3$~"v $ &3$~"*v $ &3$~"TSPSP S%*P*YSSr0]505  *  _5_"P":V:>P>VV*VV1UTnVkV p I\!,p,<S<\s\S?kSks<\s $ &3$p"\`s $ &3$p"kqs $ &3$p"s3$p"\?k\P>\?HU?1UTV;Vp\pS s SS;s s $ &3$p" s $ &3$p"!s $ &3$p"2Bs3$p"BP\\KXP\1@DU@gTgS S S|p\pVv@ V V vv $ &3$p" v $ &3$p"% ) P) @ \@ 1  1      W w W  Wd}Pe__dev_tp__uid_t{__gid_t__ino_t__ino64_t__mode_t__nlink_t__off_t__off64_t__pid_t__clock_t__time_t__blksize_t__blkcnt_t__ssize_tgid_t$uid_t/ssize_t:clock_tEtime_tPsize_t[int32_t__sigset_ttimespec__jmp_buf__jmp_buf_tag2sigjmp_bufCrandom_datadrand48_datasigval;sigval_tsiginfosiginfo_t uint32_t'in_addr_t2in_addrKstat!tmtmsnetent1hostentzserventprotoentdirentKdirent64DIRIVUVNVSTRLENOP COP PMOP LOOP PerlInterpreterSVUAVHVCV*REGEXPbGPGVPERL_CONTEXT, MAGIC XPV XPVAVG!XPVHV!XPVGV"XPVCV"XPVIO$MGVTBL$ANY8%PTR_TBL_ty%CLONE_PARAMS%I8%U8%U16%I32%U32%line_t$any'_IO_lock_t'_IO_marker0&_IO_FILE6(PerlIOlG(PerlIOX(PerlIO_list_tj(Sighandler_tu(YYSTYPE(YYSTYPE(regnode )regnode)reg_substr_datum`)reg_substr_data)regexp_paren_pair)regexp_paren_pair6regexp}*regexp*re_scream_pos_data_s*re_scream_pos_data)regexp_engine,_reg_trie_accepted,reg_trie_accepted,CHECKPOINT,regmatch_state1regmatch_state1regmatch_slab'2regmatch_slab32re_save_state3svtype4HE?4HEKsv gvcv`avhvFio xpv!xpvgvA8cv_flags_t"xpvio%clone_paramsmgp9PADLIST9PAD9PADOFFSET"xpvcvop pmop loop<;passwd;group;crypt_data<spwda@REENTR4heJ4hekS!xpvhvnAjmpenvAJMPENV copAblock_subdBblock_evalBblock_loopwCblock_givwhenblockCsubstcontextDstackinfoJEPERL_SI xpvav($mgvtbl8 magicFSUBLEXINFOF_sublex_infoaGyy_stack_framelGyy_parser1Jyy_parser%ptr_tbl_entD%ptr_tblOJrunops_proc_tqJshare_proc_tJthrhook_proc_tJdestroyable_proc_tJperl_debug_padJpeep_tKSVCOMPARE_tAKexitlistentryhKPerlExitListEntry interpreterUXrmo`h*WY@k\66   v .symtab.strtab.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.ctors.dtors.jcr.data.rel.ro.dynamic.got.got.plt.bss.comment.debug_aranges.debug_pubnames.debug_info.debug_abbrev.debug_line.debug_str.debug_loc.debug_pubtypes.debug_ranges$.oH8 @HoLLPUo0dnx x  x s  ~  2,((@ @P P` `h hp p 0   0,<0l}Po)(r40;v)?ޟG J%hZ0hh$5 Lx       (@ P ` h p      ! @ *P 8` E [ j x H 8`    h X p  % 4 H N_n" @9P \r     (9D[n u call_gmon_startcrtstuff.c__CTOR_LIST____DTOR_LIST____JCR_LIST____do_global_dtors_auxcompleted.6338dtor_idx.6340frame_dummy__CTOR_END____FRAME_END____JCR_END____do_global_ctors_auxFQDN.c_GLOBAL_OFFSET_TABLE___dso_handle__DTOR_END___DYNAMICPerl_get_svPerl_Imarkstack_ptr_ptr__gmon_start___Jv_RegisterClasses_finiPerl_Isv_yes_ptrPerl_call_listPerl_Istack_sp_ptrPerl_vstringifyPerl_formPerl_vcmppthread_getspecific__cxa_finalize@@GLIBC_2.2.5Perl_Iscopestack_ix_ptrgethostname@@GLIBC_2.2.5Perl_sv_newmortalXS_Sys__Hostname__FQDN_inet_ntoainet_ntoa@@GLIBC_2.2.5__bss_startPerl_Iunitcheckav_ptr__stack_chk_fail@@GLIBC_2.4XS_Sys__Hostname__FQDN_usually_shortPerl_Istack_base_ptr_endXS_Sys__Hostname__FQDN_inet_atonPerl_newSVpvPerl_croak_xs_usageboot_Sys__Hostname__FQDNPerl_new_versionPerl_croakinet_aton@@GLIBC_2.2.5Perl_Isv_undef_ptr_edataPerl_newXSPerl_Gthr_key_ptrPerl_sv_derived_from_initPerl_sv_2pv_flagsPKB[l1 auto/Sys/Hostname/FQDN/.packlistnuW+A/usr/local/lib64/perl5/Sys/Hostname/FQDN.pm /usr/local/lib64/perl5/auto/Sys/Hostname/FQDN/FQDN.bs /usr/local/lib64/perl5/auto/Sys/Hostname/FQDN/FQDN.so /usr/local/share/man/man3/Sys::Hostname::FQDN.3pm PKB[auto/Log/Syslog/Fast/Fast.bsnuW+APKB[Sc auto/Log/Syslog/Fast/.packlistnuW+A/usr/local/lib64/perl5/Log/Syslog/Fast.pm /usr/local/lib64/perl5/Log/Syslog/Fast/PP.pm /usr/local/lib64/perl5/Log/Syslog/Fast/Simple.pm /usr/local/lib64/perl5/Log/Syslog/Fast/XS.pm /usr/local/lib64/perl5/auto/Log/Syslog/Fast/Fast.bs /usr/local/lib64/perl5/auto/Log/Syslog/Fast/Fast.so /usr/local/share/man/man3/Log::Syslog::Fast.3pm /usr/local/share/man/man3/Log::Syslog::Fast::PP.3pm /usr/local/share/man/man3/Log::Syslog::Fast::Simple.3pm /usr/local/share/man/man3/Log::Syslog::Fast::XS.3pm PKB[ !{auto/Log/Syslog/Fast/Fast.sonuW+AELF>@$@0@8@%"̓̓ ГГ Г   $$Ptd\\QtdGNUK)I\w OA4Y,%>q( #1@Fk 8.0>@BCDFGHLOPQRSTVWZ\]`abcefgj<:#ə'1E=Qh E%Xʑo_:AO91!Ki.H% %ty9!OC'GsP[IPne9یe/>qXdۻ|v@C3ߌ^؛>CEvne u.Nś U( 8GoW % |D6u0" dgNoUs#$ (N N 'r [gJ % _ `% 8~ rA P(2K hz 0)j @E %9 % b1 mr p% *. Q: U `H |m @e tm/ 8 )j p& R (2 И { P%0 0( Xgc (S -8  ?l @%[ 0% ; Bp K 8 P.k  * __gmon_start___fini__cxa_finalize_Jv_RegisterClassesLSF_get_priorityLSF_get_facilityLSF_get_severityLSF_get_senderLSF_get_nameLSF_get_pidLSF_get_sockLSF_get_formatlocaltimestrftime__snprintf_chk__stack_chk_failLSF_sendreallocmemcpy__errno_locationstrerrorLSF_set_formatLSF_set_pidLSF_set_priorityLSF_set_severityLSF_set_facilityLSF_destroyclosefreeLSF_set_name__strdupLSF_set_senderLSF_allocmallocLSF_set_receiverstrncpysocketfcntlconnectfreeaddrinfogetaddrinfoLSF_initgetpidboot_Log__Syslog__FastPerl_Gthr_key_ptrpthread_getspecificPerl_Istack_sp_ptrPerl_Imarkstack_ptr_ptrPerl_Istack_base_ptrPerl_newSVpvPerl_new_versionPerl_sv_derived_fromPerl_vcmpXS_Log__Syslog__Fast_constantPerl_newXSXS_Log__Syslog__Fast_newPerl_newXS_flagsXS_Log__Syslog__Fast_DESTROYXS_Log__Syslog__Fast_sendXS_Log__Syslog__Fast_set_receiverXS_Log__Syslog__Fast_set_priorityXS_Log__Syslog__Fast_set_facilityXS_Log__Syslog__Fast_set_severityXS_Log__Syslog__Fast_set_senderXS_Log__Syslog__Fast_set_nameXS_Log__Syslog__Fast_set_pidXS_Log__Syslog__Fast_set_formatXS_Log__Syslog__Fast_get_priorityXS_Log__Syslog__Fast_get_facilityXS_Log__Syslog__Fast_get_severityXS_Log__Syslog__Fast_get_senderXS_Log__Syslog__Fast_get_nameXS_Log__Syslog__Fast_get_pidXS_Log__Syslog__Fast_get_formatXS_Log__Syslog__Fast__get_sockPerl_Iunitcheckav_ptrPerl_Iscopestack_ix_ptrPerl_call_listPerl_Isv_yes_ptrPerl_sv_2pv_flagsPerl_formPerl_get_svPerl_vstringifyPerl_croakPerl_Iop_ptrPerl_sv_newmortalPerl_sv_isobjectPerl_warn_nocontextPerl_Isv_undef_ptrPerl_Icurpad_ptrPerl_sv_setivPerl_sv_2iv_flagsPerl_mg_setPerl_croak_xs_usagePerl_sv_setpvPerl_croak_nocontextPerl_sv_2nvPerl_sv_setref_pvPerl_newSVpvf_nocontextPerl_sv_2mortallibc.so.6_edata__bss_start_endGLIBC_2.3.4GLIBC_2.4GLIBC_2.2.5ti ii ui (  c S   g W ? R ȕ CЕ Vؕ F T U h H M N f Q A( J0 _P X O` h @p x   a D      Ȗ Ж ؖ  ] >    L   ( 0 8 @ H P X ^` h p  x ` ! " # k $ [ % & 'ȗ (З eؗ ) * + I X , P - . G( /0 08 1@ 2H 3P 4X 5` dh 6p 7x B 8 9 : ; Y < K =H^H5v %v @%v h%v h%v h%v h%v h%v h%v h%v hp%v h`%v h P%v h @%v h 0%v h %v h %zv h%rv h%jv h%bv h%Zv h%Rv h%Jv h%Bv h%:v h%2v hp%*v h`%"v hP%v h@%v h0% v h %v h%u h%u h%u h %u h!%u h"%u h#%u h$%u h%%u h&%u h'p%u h(`%u h)P%u h*@%u h+0%u h, %u h-%zu h.%ru h/%ju h0%bu h1%Zu h2%Ru h3%Ju h4%Bu h5%:u h6%2u h7p%*u h8`%"u h9P%u h:@%u h;0% u h< %u h=%t h>%t h?%t h@%t hA%t hB%t hC%t hD%t hE%t hF%t hGp%t hH`%t hIP%t hJ@%t hK0%t hL %t hMHHEq HtHÐU=Xt HATSubH=Hq t H=wo H[o L%Lo H-t L)HHH9s DHH t AHt H9rs [A\fH=o UHtHp HtH=n @Ðffff.f.f.HGff.HGff.Gfff.G fff.Gfff.USHHhdH%(HD$X1HHt$(HH|$(Hs(Hl$0HSPHHCHcs8LCXH{0HD H,$D$HCHD$HCHD$1S8HHC@HcH9w"HC0HCHHD$XdH3%(uHh[]HS@HfH\$Hl$HLl$Ld$HLt$H(H9O(AtHDc@Ds8EE9EE9}EH{0IcsHHH{@HC0Ds8H{HAHIcHs0{ 1Ic7x1H$Hl$Ld$Ll$Lt$ H(fH{Hf.8$HC`HVHC`8HC`SHwu5HVHGPHVHGX1XHH1[fuHVHGPHVHGXHVHG`[fffff.SHw1HH[ffDSH 1HH[BfH\$Hl$HHHHHl$H\$Hfffff.H\$Hl$HHHHl$H\$Hfffff.USHH t8HC`H{H{H{0HH[]ffff.H\$Hl$HHHHHHHCt*1HH 1H\$Hl$HH0UHC`fDH\$Hl$HHHHSHHHCt*1;HH1H\$Hl$HHTHC`fDhfDH\$Hl$HLd$Lt$Ll$H dH%(H$1IAHD$Hx -XfR1Ll$PLkfD$PAnI}1ҾC Ǻ1{ DLu]H|$H1Ht1H$dH3%(H$H$L$L$L$H_8HŃ[u01Ҿ@iDC Ld}fDH|$HHC`HMHGSHC`1Ll$PLSE  L1HT$1LHH1HL$HLD$ D$Ld$HMAt$A|$1C tMl$Ed$OfMd$(MuH|$HHRHS`H D$TD$QC873(8HC`HRHS`9fH\$Hl$HLd$Ll$Lt$L|$HHHD$PHIAEEH$HD$XHD$G UC8CHHC0HHCHC1AH4$HE Ht$HD31@HHDLHHl$ H\$Ld$(Ll$0Lt$8L|$@HH8gHC`H\$Hl$ Ld$(Ll$0Lt$8L|$@HHÐAW1AVAUATUSH8;8H1L("8H#H1D"HH8Al$HcHH1L08_HHH@ 188HHHLxMcKI)IA1E1s8HDHHlH1L8H5O1Ht1I*8LH1I8HOHH518oLHHQ318KHe H mOH5mOHn18 He LeOH ;OH5`OE1H)1b8He L7OH OH5BOE1H1-8H-e L6OH NH5-OE1HHH1@88tLNH NH5 OE1HHH1@889H-d LNH TNH5RE1HH?H1@8n8LGNH NH5QHE1HH1@838H-md LNH MH5QE1HHH1@88zLMH MH5QE1HHH1@88?Hd LMH ZMH5QE1HH18 Hc LUMH %MH5QE1H1L8H-c L MH LH5|ME1HHH1@8 8LLH LH5^MHE1HH1@88XH-Qc LLH sLH5:ME1HH^H1@88LhLH 8LH5ME1HH#H1@8R8H-\b L&LH KH5LE1HHH1@88LKH KH5LE1HHH1@88^H-?b LKH yKH5LE1HHdH1@88LnKH >KH5LE1HH)H1@8X8HZa L-KH JH5}OE1H1#8Hea LJH JH5hOE1H18wH` LJH JH5SOE1H18BH3a LJH ]JH5KE1HK18 Hv` LYJH (JH5KE1H1O8H!` L$JH IH5KE1H18H|` LIH IH5KE1H18nH_ LIH IH5jKE1Hw189H1H8tL18H1L {8H\1(c8LH1HE8H1H(,8H1HE8H1H8HHH]H8[]A\A]A^A_@18RHH1L<85L"1H#I18 H GH5HLH1o1HU81HH!HHtM@ <t:ft@L-G18HHHHEf@ u1L-pG8gH ]GH5^GLH11H8;H1H~H:18HH}MHtzHGHQGM1HT$(HL$ S8LHA1H78HL$ HT$(H5oJHMI1Ll$HL$H$HLL5EL-FLLDAV1AUATUHS8WH_1L 8>HH1HH8HdHcHHI)IA1b8HH@# 1?8HPI1#8HcH,HH1L,8LHt+18gHHHH@x H=[J1HY18+Hs1H8H:H1p8H1HW8H(H(H+[]A\A]A^f1)8Hj1H(8HaHH@Ld18rHHHH@@ ty18KHHHH@HHxl1A8Hc1L(y8IcHL$AD$@u\Mdf1I8HH1HLh(8HLaHhf18LHg18gHEHHEDAV1AUATUHS87H?1L 8HH1HHs8HDHcHHI)IA1B8HH@# 18H0I18HcH,HH1L,8dLHt+18GHHHH@x H=G1H918 HS1Hi8HH1P8H1H78HH(H+[]A\A]A^f1 8HJ1H(8yHAHH@Ld18RHHHH@@ ty18+HsHHH@HHx1Ar8HC1L(Y8IcHLAD$@u\Mdf1)8HH1HLh8HLAHhf18bLHG18GHuBHH%DAV1AUATUHS8H1L u8HvH1HHS8H$HcHHI)IA1"8HsH@# 18HI18HcH,aHH1L,8DLHyt+18'HoHHH@x H=D1H1b8H31HI8HH108H1H8HH(H+[]A\A]A^f18rH*1H(8YH!HH@Ld182HzHHH@@ ty18 HSHHH@HHx1AR8H#1L(98IcHLAD$@u\Mdf1 8HH1HLh8qHL!Hhf18BLH'18'HU?HHDAU1ATUHSHl8H1L S8HTH1HH18HHcHHI)IA18HQH@# 18fHI18HcH,?HH1L,8"LHWt+1|8HMHHH@x H=A1H1@8H1H'8HH18H1H8~HH(H+H[]A\A]D18RH 1H(89HHH@Ld18HZHHH@@ ty1b8H3HHH@HHx1I28LLH18HAD$@L(u\Mdf18rHH1HLh8QHLHhf18"LH1~8H5<HHDAU1ATUHSHL8H1L 38H4H1HH8HHcHHI)IA18iH1H@# 18FHI18HcH,HgH1L,y8LH7t+1\8H-HHH@x H=>1H1 8H1H8HH18wH1H8^HH(H+H[]A\A]D182H1H(8HHH@Ld1i8H:HHH@@ ty1B8HHHH@HHx1I8LLH18HAD$@L(u\Mdf18RHH1HLh81HLHhf1y8LH1^8H9HHDAV1AUATUHS.8H1L 8HH1HH8|HHcHHI)IA18KHH@# 18(HI18HcH,HIH1L,[8LHt+1>8HHHH@x H=#<1H18H1H8rHH18YHa1H8@HH(H+[]A\A]A^f18H1H(p8HHH@Ld1I8HHHH@@ ty1"8HHHH@HHx1A8{H1L(8bIcHLAD$@u\Mdf182HzH1HLh8HLHhf1Y8LH1>8H5HHDAV1AUATUHS8H1L 8~HH1HH8\HHcHHI)IA18+HH@# 18HI1c8HcH,H)H1L,;8LHt+18HHHH@x H=S91H18kH1H8RHzH189HA1H8 HhH(H+[]A\A]A^f1i8H1H(P8HHH@Ld1)8HHHH@@ ty18HHHH@HHx1A8[H1L(8BIcHLdAD$@u\Mdf18HZH1HLhh8HLHhf198LH18H2HHDAV1AUATUHS8wH1L 8^HH1HH88ǼHH1HL`8覼HLVHljl18~H膻1Hܾ8eH譽HHHUf1詾82HzHHH@HHx18HHHfDAV1AUATUHSN8׻Hߺ1L 58辻H6H1HH8蜻HHcHHI)IA 1߽8HcHkaH詼HH@ 1豽8:H肼H1H,蔽8HHͼ1Lcp8HAHJ@ @1I8ҺHHJHD`1L,8覺HH1L48艺LH辻t+18lH贻HHH@x H=x!1L^1觼80Hx1H莼8H?1Hu8H1H\8H-L(L+[]A\A]A^fD118躹HHHHh1 8蒹HںH1N$8uLH%AD18JH蒺HHH@@ 1薻8HgH1HLhu8HL论HD!1J8ӸH۷1H18躸HHHHUfD18芸HҹHHH@HHx1׺8`H4HH>fffff.AW1AVAUATUHSH蘺8!H)1L 8H耶H1HH]8H.HcHHI)IA1)8HcHk諷HHH@ 18脷H̸H1H,޹8gHH1Lc躹8CH苸HJ@ J1蓹8HdHJHD`1L,g8H8H1L4J8ӶLHt+1-8趶HHHH@x H=1L訵18zH·1Hظ8aH艸1H迸8HHP1H覸8/HwL(L+H[]A\A]A^A_f1y8HJHHHh1I8ҵHH1N$,8赵LHeAD18芵HҶHHH@@ 1ַ8_H觶HHH@HLh1Ls誷83H{H1N<荷8H>1I9tH1p8HAHJ@ 1I8ҴHHJHPDLR18蜴H褳1H8胴H˵HHHUH[]A\A]A^A_D18JH蒵H1HLh蠶8)LHٵI1y8HJH1N4\81ҹLHӶH 148轳HHH蛵Iu`H=1fAW1AVAUATUHSH8qHy1L0ϵ8XHбH1HH譵86H~HcHHI)IAF1v8HcHDH1LlU8޲H覱H@# 128軲HCI1H,8蚲HH1L<8}LH貳t+1״8`H訳HHH@x H= 1HR1蛴8$Hl1H肴8 H3H1i8H1HP8ٱH!H(H+H[]A\A]A^A_@1!8誱Hb1H(8葱HYHH@Ld1ٳ8bH課HHH@@ 1讳87HHHH@HLxA1IAE ~IEHPHT$IuLL貳A1@8ɰH1L('8谰IcLHҮAD$@Md@18zH±H1HLxв8YLH I$1Ls襲8.HvHJ@ t11育8 HSHJHL,1Q8گH"H1N448软LHRL,1 8蒯LHwf18rHT$LH]HT$Hc1蹱8BHiHH Iw`H=q1~fffff.AT1UHSr8H1L Y8HZH1HH78HHcHHI)IA18HcH,聮HɯH1L$۰8dLH虯t+1辰8GH華HHH@x H=;1H91肰8 HS1Hi8H1HP8٭H1H78HH(H+[]A\D18蚭HHHH@@ }18oH跮HHH@HHhHͭ1讯87H?1H蕯8HfHHHU[]A\f1i8H:H1HHhH8ѬHH聮Hd1"8諬H HH艮Hu`H= 1AW1AVAUATUHSH8خ8aHi1L 迮8HHH1HH蝮8&HnHcHHI)IA1i8HcHkH3HH@ Z1;8īH H1H,8觫HHWD$,1Hk8聫HɬHH@  1ѭ8ZH袬HHH@D$(1Hk覭8/HwHH@ ^18HPHHH@D$$1HkT8ݪH%HH@ 1-8趪HHHHDx1L$8芪HҫH1H,8mH蕬H9t=1ɬ8RH蚫HH@ 1袬8+Hs1HkE1腬8HVH1L4h8HI9tH1M8֩HHH@ 1&8诩HHHLh1HkE18臩HϪH1HHD$ܫ8eH荫H9D$tH1迫8HH萪HH@ 1蘫8!HiHHLp1Hks8HDH1HHD$Q8ڨH1H9D$tH128軨HHH@ z1 8蔨HܩHHHP1HT$5HHHT$DD$$L$(Et$,HT$HLL4$1M螪8'Ho1L(腪8H薨1IEk8H%s %s %s[%d]: %Y-%m-%dT%H:%M:%S%z<%d>1 %s %s %s %d - - invalid format constantstrdup failure in set_namestrdup failure in set_sender%dgetaddrinfo failurebad protocolsocket failureXS_VERSION%s::%s0.58version::bootstrap parameterFast.cLog::Syslog::Fast::constant$$$$$$$$Log::Syslog::Fast::newLog::Syslog::Fast::DESTROY$$;$Log::Syslog::Fast::sendLog::Syslog::Fast::emitLog::Syslog::Fast::setSenderLog::Syslog::Fast::set_senderLog::Syslog::Fast::set_nameLog::Syslog::Fast::setNameLog::Syslog::Fast::set_pidLog::Syslog::Fast::setPidLog::Syslog::Fast::setFormatLog::Syslog::Fast::set_formatLog::Syslog::Fast::get_senderLog::Syslog::Fast::get_nameLog::Syslog::Fast::get_pidLog::Syslog::Fast::get_formatLog::Syslog::Fast::_get_sockloggerlogger, formatError in set_format: %slogger, pidlogger, nameError in set_name: %slogger, senderError in set_sender: %slogger, severitylogger, facilitylogger, facility, severitylogger, proto, hostname, portError in set_receiver: %slogger, logmsg, now = time(0)Error while sending: %sError in close: %sError in ->new: malloc failedError in ->new: %sLog::Syslog::Fastsv%s object version %-p does not match %s%s%s%s %-pLog::Syslog::Fast::set_receiverLog::Syslog::Fast::setReceiverLog::Syslog::Fast::set_priorityLog::Syslog::Fast::setPriorityLog::Syslog::Fast::set_facilityLog::Syslog::Fast::set_severityLog::Syslog::Fast::get_priorityLog::Syslog::Fast::get_facilityLog::Syslog::Fast::get_severityLog::Syslog::Fast::_get_sock() -- logger is not a blessed SV referenceLog::Syslog::Fast::get_format() -- logger is not a blessed SV referenceLog::Syslog::Fast::get_pid() -- logger is not a blessed SV referenceLog::Syslog::Fast::get_name() -- logger is not a blessed SV referenceLog::Syslog::Fast::get_sender() -- logger is not a blessed SV referenceLog::Syslog::Fast::get_severity() -- logger is not a blessed SV referenceLog::Syslog::Fast::get_facility() -- logger is not a blessed SV referenceLog::Syslog::Fast::get_priority() -- logger is not a blessed SV referenceLog::Syslog::Fast::set_format() -- logger is not a blessed SV referenceLog::Syslog::Fast::set_pid() -- logger is not a blessed SV referenceLog::Syslog::Fast::set_name() -- logger is not a blessed SV referenceLog::Syslog::Fast::set_sender() -- logger is not a blessed SV referenceLog::Syslog::Fast::set_severity() -- logger is not a blessed SV referenceLog::Syslog::Fast::set_facility() -- logger is not a blessed SV referenceLog::Syslog::Fast::set_priority() -- logger is not a blessed SV referenceLog::Syslog::Fast::set_receiver() -- logger is not a blessed SV referenceLog::Syslog::Fast::send() -- logger is not a blessed SV referenceLog::Syslog::Fast::DESTROY() -- logger is not a blessed SV referenceclass, proto, hostname, port, facility, severity, sender, name%s is not a valid Log::Syslog::Fast macro;\*x 0@P`p 8ph0PО00Xx PX @X`X 8 @H @ zRx 4Ldx|ph`X,PAAG AAD $ MV0 C 4rCs J qTXATtXDUX2MD \x2MD \$SAAG ECAЛjMD  H  jMD  H <p $ThMX D ,|08MZP E zL@k BDB B(A0A8Dpa 8A0A(B BBBE <`BDB A(D0 (A BBBJ <<@BDB A(D0 (A BBBJ <| BDB A(D0 (A BBBJ <BDA D(D0 (A ABBF <BDA D(D0 (A ABBF <<BDB A(D0 (A BBBJ <|BDB A(D0 (A BBBJ <BDB A(D0 (A BBBJ L`:BDA D(D0 (A ABBJ  (A ABBC <LPBDA D(D0 (A ABBJ L0gBDA D(D0Y (A ABBB + (A ABBG LPgBDA D(D0Y (A ABBB + (A ABBG <,pBDA D(D0 (A ABBJ <lPBDA D(D0 (A ABBJ <0BDB A(D0  (A BBBG dBDB B(A0D8D@ 8A0A(B BBBC  8A0A(B BBBF LTrBDB B(A0D8DP 8A0A(B BBBE <BCD V ABF  ABC LhmBDB B(A0D8Dp 8A0A(B BBBG 44BCD D0@  AABG  8 8~oX 8 4 8 P@ ohooo fv  & 6 F V f v !!&!6!F!V!f!v!!!!!!!!!""&"6"F"V"f"v"""""""""##&#6#F#V#f#v#########$$&$6$GCC: (GNU) 4.4.5 20110214 (Red Hat 4.4.5-6),%8 , P.Ox LSF_get_priorityLSF_get_facility6LSF_get_severityiLSF_get_senderLSF_get_nameLSF_get_pidLSF_get_sock5LSF_get_formatLSF_sendLSF_set_formatLSF_set_pid LSF_set_priorityg LSF_set_severity LSF_set_facility LSF_destroy% LSF_set_nameg LSF_set_sender LSF_alloc LSF_set_receiver LSF_init cOboot_Log__Syslog__FastJPXS_Log__Syslog__Fast__get_sock4QXS_Log__Syslog__Fast_get_formatRXS_Log__Syslog__Fast_get_pidRXS_Log__Syslog__Fast_get_nameSXS_Log__Syslog__Fast_get_senderTXS_Log__Syslog__Fast_get_severityUXS_Log__Syslog__Fast_get_facilityVXS_Log__Syslog__Fast_get_prioritypWXS_Log__Syslog__Fast_set_formatxXXS_Log__Syslog__Fast_set_pidqYXS_Log__Syslog__Fast_set_nameuZXS_Log__Syslog__Fast_set_sendery[XS_Log__Syslog__Fast_set_severityc\XS_Log__Syslog__Fast_set_facilityM]XS_Log__Syslog__Fast_set_priorityV^XS_Log__Syslog__Fast_set_receiverz_XS_Log__Syslog__Fast_send`XS_Log__Syslog__Fast_DESTROY|aXS_Log__Syslog__Fast_newbXS_Log__Syslog__Fast_constant E|0%H.C8intiixiMzLh w  b Q   pidb Fb b ( O0 b8 - k A  err$!z  8# ) )o  l F!  ! 1 8 '0 : ;b <b =b} >b  ? @ A N B(1 O$ b   @   (o 08 8     " $ &b& *b, ,p 0FV 1T 2  60 ?{> HE IL JS Ku L- Nb P   P     bV  8O  85n  `  Z !  8kc>b+__s>__n>-> 1`11*1-MMMb*M-0vvv*v-{b%%Uw8b %&%6Ub0%6%iUI@%E%UP%U%Ulb`%d%Ubp%t%5Ub%%hU%n&tI^%  8!jbp&' j j@ jb!tj5"pbX#retb$0"tb"} %b'(CFb&(*( pidb&M\0(N(g \A@\b\b&iP(( iib&c(( cb@cb%2Ob(#)% O'retQb*%|b0))g |s|%ob) * oQoN(e+**%b *- bҶOk!b)  )bw 8׭~*l 'retb +** , @~$'rp -1~X~'rbA +w    %f1b-H. 2X 2b 2 k!2bl @3b 3b -Q3-3. .. . .. cE0P.}int"Bj;7';}+B(Ba;B^^W^x^>^^^9'B{lQpn<zLCBW{S{ B B)  f y'z +{^z 6.  ^ B + $"r ) *W% + 2 B d"W 0 ^ _: ` a! bW cWa dW & e([ $ __x J% __c 4 " 4__a  4 B/. "; #W< $& % @g A Bp G7, HWe) IW,. J; O P Qp,. R; W X Yp! ZW' [r \ a b g<m$ h^' iWp ;&, <6 CFz Kg_rt SI ]]' c j W B !% 4# 5W# 6W 8W" k<* lW 4; ' B ./R%0e5 =>@p A{ r#CW$0%Ee(J0. N89(P [-\ ]j ^ Btm8WW"WK#W WWWWW (^(Y0tms $C(%:8%&:< (:):    'r+W  fV g ?'h'iWT jW k   j(i!W   I!J  (KLW)%f.  4!!-; " ' B'qf.( )*4!+-; ,DIR|VIV^UVBNV\"= POPD op( | E!<) !<)Y%!=!;!;  L!; o!; m !; S!; .!; !<&"!<&#COPE copX E<) <)Y%=;;  L; o; m ; S; .; <&"<&#g&$ (+) 0$ 8\&\&CCJ X; E<<) <<)Y%<=<;<;  L<; o<; m <; S<; .<; <<&"<<&#%=<)(7><)0G@8$D\&iL=T<=(N ,P E<) <)Y%=;;  L; o; m ; S; .; <&"<&#%<)(7<)0C <)8#<) <): ;?* @\& \!CW -FQ& GQ& 1H& I& ,L: I.O  $R: ,S<) T<) U<) 'V<) >)YE  [W k\W ]  ^M  _  d: e& :f&  hQ& i j kF& W-lW *oQ& pM &* 3 | :.:4 : Q&Q&:&W!'%\$$  Ian\&\&(\&\& T((oMJ \&L!W$qL. ,&~ Q&+Q&`Q&Q&Q&l-Q&-\&J M^ GPS#P\&  2&c- &&&*& %&z&&*&&&"+&&%& &p& "&&&)&!&&s*+!.-* Mg <&I'WX  Na+ `I5jI5 ,N6+-: /(4&9I5V;:BNH)E*%F*I;JN9KN'N& ,PLR&8S&t(U7MW:M X:Y Z^$\WF"^\&,`\& bWd*gLBhLSoLqLsV uw*q W "N LT*\&*SVY svp1Mq)q\&j q\& $ r4AVZ <avxMo6)\&j \& $ 6HV[ hvM6)\&j \& $ u6CV\ cvM6)\&j \& $ 5]  E>G*lH* K\&LQ&#MQ&N\&O* Q\&(/ T\&, U0$Y\&8#Z\&<j[* \*^ aQ&eQ&hf*h  iQ&NjQ& #k* nQ&GP^ IgpP  & ;-: \& \&* ,:():0B)8e g&*8GV_ gv}"M~5)~\&j ~\& $ a5io^M'7)\&j \& $ 6m&a j {p{ F |p F&D<&!<&& Q& EK Q&% Q&$ 3E  d  ( 3 H F& % <&!!Q&+"&#  XPVe xpv +7& LTf : !+8& LK8h ! ^!+8& L&9Ak j! +0 !+G/w/!GW%;H &*(ql ! A0S "+`B&abi1CWmqC n*(m ," 0A"+N9& OLPW9W[A: \*(n " #p \#+,<& L#a<W'< (*( **0*.<82<} 3B)4 5<66:%7\&-:c:2q h# $+:& L!;Wg; *(;0;8 ;<"{ Y,! (B) .B)} B)><&r $ @ %)tH1tHHtHtH *H((H0!tH8ANYs %"any {%# #% Q&#  #b ^#% #+ &#T & Y)y %Qz ^L'{  -| u % w %* dLB% \. E&v % G2&H:%Iy#J&I8IU8-U164I32WU32;&\&&s&&& &  D($ W      @     (o  08  8         "|( $( &W& *W, , 04V 1I 2(  6(0 ?> HE IL JS Ku LP NW P($  |(P |( ( WK(& ( BD( ( B.!c(--!e((!z(s "7#<)+#Q&q!# p!#<)$#B)!# $#Q&#( =)%<&!<&xF&=S) v $)u$%Q&&Q&'&(& )Q& m`+),,) )* B 5&*o6Q&!end7Q&8* `}*k~k++++(, , $E,(g'f,0!,8 !,a, ,(-* 1*)&*xo [u%++'vw%+Q&x+%P+P+&V+f+ [+a+  \&6+%Q&+&+   Q&&\& P+q+% +&+&  f+++++%&,&++,&+ ,;,&+;,@, Q& & ,f,&+;,V+K,%Q&,&+V+;,l,%&,&+@,@,f+,%&,&+V+f+,%,&+,%, .-.-!F&<&-*$Q&&i-,#- (P-W% uY1i-&-,#-$\&cpF- &.,#-$\&cpF- .)&8.,#-$\&cpF- ..\&. B.(me.04-F&&8 /,#- -,-@-\& cp F-$ F-(" \&,B.0&H/,#-L+Q&.+Q& me.& /,#--& &!/val"W&@'10,#)-,*-A+.B+.cp,F- -$+.W(min/W,max0W0E3W4h4 8&(70,#9-:-cp;F-<F-c= v!>Q&  ?Q&$&8B1,#D-c1EQ&c2EQ& cpFF-GQ&EHQ&IAJ. BJ.(meK.0&@N1"O\&cpPF-c1QQ&c2QQ& pR S ETW minUW$maxUW(AV.0BV.8'@E2(yesR-# -#-#+.#.#6& /#"H/##/#5/#@10#vL0# W1(Zi- ,c2d24e2Qe2 E22 B1Q2,fQ2 3R&\& \& Q& G >,    *($30#38p333   )-3Q&Q&cQ&` \&+  ' \&  ).r4**%*Q *#*>&*%*-***W *d *5 * * *b**"b#A4HEY4he 4!U58BHEKZ4hek 4\&U'Q&;#(rI5r&rc r&k r ErI5rO5'r[5&U5}4>5&c &k  EI5O5'[5 "6&c &k  EI5O5'[5"o6&c &k  EI5O5'[5^!6&c &k  EI5O5'[5!'7&c &k  EI5O5'[5\#&Q7\&+\&&7\&K<&<&'7##*#-7#+Q7&7\&+\&&8\&K<&<&'K8##*#7#+7'8#D+#{ #.*#Q&#84&8\&+\&&8\&K<&<&'&9##*#8#+8'l9#D+#{ #.*#Q&#8&E9F\&+G\&&I9J\&KK<&L<&'B9#C#D*#Hl9#+M9'QA:#D+R#{ S#.*T#UQ&#V8'Xc:#+Y3#,Z*8 bF&:&:o:1&:\&+\&&:\&K<&<&'!;##*#:#+:'g;#D+#{ #.*#Q&#8';#+3#,*';#!;#2q("L$1PAD$14 $B;\&+\&,<\&K<&<&a<*;+;<D+{ .* !Q&"8$<+%3,&*+<,<)+,- %/<> 0<)1:;%<)=&='E<=#F<)#,H;'M^=# N<)#.P  M0%3=K%4  %5 u%6p7)%7{.%8 >%9  +%: ( % &-="&. J&/ +&0{z&1+('/>1'0>!sb0'1>!sb1'2>!sb2'3>!sb3'4>'6G '7>{''8^v'9W'9W > B >,B > B -H()@?O(* (+ (,^(-^ (.^ #(/^(i#(1^0(3^8(5B-H)rGB)t V)uP){GB) p)P 9 )())= ) &)P)MB) #) ,)P)SB&)WY)  )P)O")  )P )YBA)W)$) )P{)_B )^=") )P?)eB)V*) )P)kB)> ) 7 )P])qB.)'()V)C)[&)wB!")P)wB')}B)P()}B") C_) )P) ()Pa )W== ^=V>')@?B&TPWBX\&+Y\&[B\\&K]<&^<&T1CUV*ZB+_BcqCD+d{ e.*fgQ&h8jC+k3,l* (C1 C-!2"W#CM(&CC - @Dcv:gvB)!B)}:*: @.Q&( <&,!<&--"D0%#<)8; 8Dg <&F&&#<)8&cv: %<)( D0C ,PE e&Q&fEx.-D &(&0:8k+ S+E<)'PE#$C#xD#HE#$E| XBF}CF& !D<&NE<&FQ&GQ&HQ& IQ& J  K& @L&(M 0 N 8O  )PQP+'p|F#.}#~E V0`G":^"`GfG fG9Q& Q&$.&Q&((Q&,^FFG\&+\&G\&K<&<& G *xG+G;HD+{ .*Q& 8"ZH+#3,$*%WtH&&3ZH%\&H&&3zH%WH&&3&WH%WH&3,H$f H 7 g JIh <&i F&j <)k l *I!val*H)*P *Q& .*:g**JI P*'L*'Lu*H)*W*!W*#W!*$W%*%-L !ps*&-L(r,**Q&0+*+Q&4#*, 8 *- *.<& */ *0<& *1<&!*2Q&s *3<)*4<)%**5&*6F&U*7F&*8Q&!*9&2*:Q&*;Q&"*< *= *>v**?8*AH *B&*C L*D I*E *F "*G e*H H$*I *Jg&8*KF&*L<&?*M<&&*N*^*O;k*P:B *d3La(*eCLZ*fQ& *iE<*jII H)CL B Q&SL B *lI{%^L&H}LL%WL& ILLL&&o%J}L"LLL%L&& H]Mpad^M M Bg M&M7M&<)c%wCMIM%Q&cM&&& bMfn&ptr cM % .ElG M B2E2.<&M M M B.\& <& N B SL%B(h+ N+ WQ+ + !pid+WF+W+W +E(O+ 0+W8+Pk+ A++!err+$+!(N/-,WO0x,&0,1len,2p.P.8EP3x.&Z 4cv.:} 51W6sp1I5 6ax1Q& 7"1I5H8`.1Q&9(8 `: P6_sv=&6vn=7$= ;7=&VR3x&4cv: 5W6spI5i6axQ& 7"I58`.Q&:0Q7.Q7*W7@,d=I=~=7Y EP2i"?BR3x&4cv:5W6spI5=6axQ&7"I5z8`.Q&:pR7.Q7*W7@,8=i@@7YEPn26* B;ES3x&4cv:5W6spI56axQ&7"I548`.Q&:S7.Q7*7@,=CC7YEP2)@E[HT3x&94cv:\5W6spI56axQ&>7"I58`.Q&:T7.Q-7*P7@,=FF7YEP2sx`H{KU3xx&4cvx: 5{W6sp{I5_ 6ax{Q& 7"{I5!8`.{Q&:0U7.Q!7*W"7@,Z"=II7YEP"2)ZKNV3xZ&"4cvZ:"5]W6sp]I53#6ax]Q&#7"]I5p$8`.]Q&:piV7d.Q$7*eW$7f@,.%=LM7YsEPd%2s <NQpW3x<&%4cv<:%5?W6sp?I5&6ax?Q&&7"?I5D'8`.?Q&:MW7F.Q'7*GW'7H@,(= P>P7YUEP8(29QTxX3x&\(4cv:(5 W6sp I5(6ax Q&(7" I5)8`. Q&6ix$Q&):UX7(.Q=*7F)Ws*>retW*;P7Y/EP+=5TsT7Y7EP)+2UXqY3x&M+4cv:p+5W6spI5+6axQ&+7"I5x,8`.Q&6ixQ&,:NY7 .Q-6pid W+-;7YEPt-=WW7YEP-2 X[uZ3x&-4cv:-5W6spI5(.6axQ&_.7"I5 /8`.Q&6ixQ&_/:RZ8.Q7 />rettW/;`7YEP/=yZZ7YEP02G[^y[3x&>04cv:a05W6spI506axQ&07"I518`.Q&6ixQ&1:V[8.Q7Q 2>retiWB2;7YEPx2=]'^7YEP22)_bc\3x&24cv:25W6spI5,36axQ&c37"I538`.Q&: @\7.Q^47W4;p7YEP4=aa7YEP42p) b:eM]3x&54cv:555W6spI5~56axQ&57"I5=68`.Q&:*]7.Q67@W6;7YEP6=dd7YEP72 b@ehV^3xb&C74cvb:f75eW6speI576axeQ&77"eI5n88`.eQ&6ixiQ&8: 3^7m.Q87@nW!97oWj9;p7YuEP9=Ohh7Y{EP92C <hmz_3x<&94cv<: :5?W6sp?I5T:6ax?Q&:7"?I59;8`.?Q&6ixCQ&;:W_8G.Q7HW;7I F<7k!JWi<>retFW<;7YPEP<=ll7Y]EP=2mr`3x&C=4cv:f=5W6spI5=6axQ&b>7"I5>7`.Q&.?6ixQ&?:0`8.Q7_&?6nowER@7*W@7@,@? 3@A?4A=0oeo7Y7EPA@. rt|aAx&BBcv:#BCW>spI5lB>axQ&B?"I5QCD`.Q&:Ya?.QC;7YEPC=s)t7Y EPC@t|bAx&!DBcv:DDCW>spI5D>axQ&D?"I5LED`.Q&: bD ?WE? E?k!WBF?@W|F?WF?Q G? JG?*.QmG=nyy?YEPG@-N |}tcAxN&GBcvN:HCQW>spQI5lH>axQQ&I?"QI5ID`.QQ&;P D@,>len I?! WI>svf&J>sgJC-(C.-(C-(C.-(51W% : ; I$ > $ >   I&I : ;  : ; I8 : ; I8 I !I/  : ; (  : ;  : ; : ;I8 : ; &.? : ; ' I 4 : ; I: ; I.? : ;' I@ : ;I .: ; ' @ : ; I: ; I4: ; I 1RUX Y 1 : ;I!: ;I"4: ;I#4: ;I$ U%.? : ; ' I@ &.? : ; ' @ '4: ; I(.? : ; I@ )4: ; I* U+ ,4: ;I -: ; I .4: ; I? < % $ > $ > : ; I  I : ;  : ; I8 I !I/  : ;  &I  : ; : ;I8  : ;I8 & : ;  : ; I : ;  : ; I' I : ;  : ; : ; I< : ;I: ;I : ; : ;I 8  : ; I 8  : ;! : ; I8 " : ;# : ;I$: ; %' I& : ;' : ;( : ;I) : ; *( + : ; ,!I/- : ;.5I/.: ; ' I 0: ; I1: ; I2.? : ;' @ 3: ;I4: ;I54: ;I? < 64: ;I74: ;I84: ;I94: ;I : U; U< = >4: ; I?4: ; I@.? : ; ' @ A: ; IB: ; IC4: ; I? < D4: ; I /usr/include/bits/usr/lib/gcc/x86_64-redhat-linux/4.4.5/include/usr/include/usr/include/sysLogSyslogFast.cstdio2.hstring3.hstddef.htypes.htime.hLogSyslogFast.hsocket.hsockaddr.hnetdb.hlibio.hun.hstdio.h %0ZZLL>>>|ȐWYTN%b?7kt#H>/LH>=ZrKK}J,01bk 3/~ v. = <5>aXF ==Q; =K t//Iy.//Ik.-//󑑑$XI=Y;K2>SnI=Y;K2>S%y<KY~z~fC1 /rJu;=!YWKd~X#~<f XvX <s< tY];=2Yy. W~K)XX}'Y;ivZr>;Km:2FYw9Y="sX.(~ ./usr/include/bits/usr/include/sys/usr/include/usr/lib/gcc/x86_64-redhat-linux/4.4.5/include/usr/lib64/perl5/COREFast.cFast.xsconst-xs.inctypes.htypes.htime.hstddef.hsigset.hsetjmp.hsetjmp.hstdlib.hsiginfo.hstdint.hstat.htimes.hnetdb.hnetdb.hdirent.hdirent.hperl.hop.hcop.hintrpvar.hsv.hregexp.hgv.hmg.hav.hhv.hcv.hhandy.hlibio.hperlio.hiperlsys.hperly.hpad.hpwd.hgrp.hcrypt.hshadow.hreentr.hparser.hLogSyslogFast.hconst-c.incstdio.h P.0, Ct t Xt. <tF +558=-u/=-u6=-u/=-u6=-u/=-u358=-u/=-u6=-u/=-u6=-u/=-u6=-u/=-u35555555LlL.R0,`<s;Y25r @{OX{.<xGPq[%0,`<s;Y25r @{OX{.<xGPq[%0,`<s;Y25r @{OX{.<xGPq[%0,`<s;Y25r@{OX{.<xGPq[%0,`<s;Y25r@|OX{.<xGPq[%0,`<s;Y25r @|OX|.<xGPq[%0,`<s;Y25r @|OX|.<xGPq[%0,`<s;Y25r @|OX|.<xGPqZ%0,`nm;Y gq<0|S>tzG|0,`nm;Ygs<0|mtwLz*T&0,`s;YgoS>}H>o HqE}0,`s;YgoS>}H>o HqE}0,`nm;Ygs<0}mtwLz*]&0,`nm;Ygs<0}mtwLz*[&0,`nOm;Ygr(H}mwIy*R.0,`nOm;Ygj0HS>}H>o< HoE~0,`+[:m;Y25e.HS~-=fkO H ~0~0,Z`s;Ygu~S>utG ~0,`pRRO@=?HFHE~H;=,2-K>5YJ0HH HHvHH~E #0,d9$-~.<i~8o+ _IO_read_ptr_chainai_flags_shortbufaddrinfostrncpy_IO_buf_baseGNU C 4.4.5 20110214 (Red Hat 4.4.5-6)SOCK_NONBLOCKlong long unsigned intmsg_str__srcLSF_set_severityupdate_prefixlong long intLSF_get_format_fileno_IO_read_endhostnamemsg_lenp_addressraddress_cur_columnSOCK_STREAM_old_offsetLSF_get_facilityLSF_get_senderportstrsun_familymsg_start__pad5LogSyslogFast.c_IO_markerSOCK_RDMprefix_lenLSF_set_pidai_socktype_IO_write_ptrLSF_get_sock_sbufshort unsigned intmsg_format_IO_save_basestdinlast_time_lock_flags2stdoutsockaddr_untime_formatLSF_set_prioritytimestrLSF_init_IO_write_endai_protocol__dest_IO_lock_t_IO_FILE__off_tnew_bufsizeai_addrlensa_family_markers__socket_typeLSF_get_severityunsigned char_IO_buf_endai_addrshort intLSF_send__len/usr/src/Log-Syslog-Fast-0.58ai_next_vtable_offsetLSF_allocSOCK_PACKETLSF_get_priorityLSF_set_facilityLSF_set_senderLSF_set_name__chnew_bufLSF_get_name__socklen_tsockaddrai_family__off64_t_IO_read_basememcpy_IO_save_end__fmtLogSyslogFastLSF_destroy__pad1__pad2__pad3__pad4sun_pathsnprintfLSF_get_pid__time_tsa_family_tlogger_unused2memsetSOCK_CLOEXECline_lenSOCK_DGRAM_IO_backup_baseLSF_set_formatLSF_set_receiversa_dataSOCK_RAWai_canonnameaddress_lenSOCK_DCCPSOCK_SEQPACKETresults_IO_write_baselinebufxmg_u_spent_ptrprecomp_ctime_sizeIglobalstashItaint_warnmulti_endIcompilingIdefoutgvsi_prev_ttyname_bufferIpadix_floorre_state_reg_curpmlex_inwhattm_secIutf8_totitlemsglenregexp_paren_pair__saved_maskxiou_anyIstrtabIargvgvxbm_flagslast_lop_oprand_sepIpsig_namepw_uidblockrefcounted_heIpreprocessxpvgvmax_offsetxio_ifp_protoent_structsi_uidIsv_yes_readdir64_sizeregexp_enginelex_op_reg_trie_acceptedICmdxio_flagsPTR_TBL_tIreg_statesvt_setsi_cxixxpvhvXS_Log__Syslog__Fast_set_senderIlast_swash_klenmy_perl_crypt_struct_buffer_hostent_ptrIbodytargetsuper_bufendIcomppad_name_floorsave_curlyx_sigpollImainstackgp_hvIhash_seedIsub_generationPerlIO_list_txpviogvval_servent_bufferxpvivsbu_targoldoldbufptrIregex_padavInumeric_standardyylvalItaintingxcv_startblku_typegp_iogp_egvst_sizesbu_itersxlowIprofiledatahek_hashIerrorsnetentsp_expireendpostm_isdstcop_lines_protoxcv_stashwraplensaved_curcopblock_sub_spent_sizeop_redoopIunitcheckav_saveIwarnhookIcurstashlex_inpatxcv_gvsi_nextIutf8_puncthostentIsavestackcur_top_envyy_parserre_state_reg_oldsavedmulti_closeIsplitstrmg_typeIdestroyhookcache_maskop_lastopIscopestack_ixxpv_curst_blksize_drand48_struct_sigchldIenvgvIclocktickIdirtysvu_pv__jmpbufxivu_uvpw_passwdh_nameIgensympending_identshare_proc_tItoptargetIstatcachecurlyIdbargslex_dojoinqr_packageh_addr_listsbu_dstrsp_maxst_gid_getlogin_sizeIscreamnextintflagscv_flags_tXS_Log__Syslog__Fast_set_receivergp_lineop_latefreed_timerlex_expectIdefstashItmps_floorxio_page_lenIsv_nore_state_reg_start_tmplIegidst_nlinkxpvnvIptr_table__mask_was_savedmg_privatest_ctimsbu_origpprivatesv_u__sigset_tPADOFFSETxcv_rootcurrent_salth_lengthIregdummyold_in_evalSighandler_tre_state_regoffsmg_virtualImy_cxt_listXS_Log__Syslog__Fast_set_priorityIbeginavIfilemodeIcollation_standardIgidIendavre_state_reg_eval_setextflagsre_state_reg_oldsavedlen_killtms_cutimeIlastgotoprobeIrehash_seedsvu_rvsv_flagsXS_Log__Syslog__Fast_get_priority_netent_ptrPerlExitListEntryIstack_baseIdiehookprev_evalst_atimIutf8cacheIe_scriptcx_u_netent_sizexcv_filegp_refcnt__clock_tnparensIchopsetIscreamfirstsival_ptrIperldbseen_evals_getlogin_buffer__uid_tsi_stimexio_pagelastcpperl_debug_padhe_valusub_opIcompcvdirent64IisarevIutf8_graphresume_statesuper_bufptrlex_startsxcv_padlistmsgstrIsortstashIstdingvtoggle_reg_flags__jmp_buf_tagIdef_layerlistblku_loopIcurstackinfoIpsig_ptrIefloatsizedirectiongp_svXS_Log__Syslog__Fast_set_nameblku_oldcopImain_startsbu_s__blkcnt_tinitializedsp_pwdpje_retfloatclassexecIlast_swash_keylinestritersaveSUBLEXINFOItimesbufIsig_pendingtokenbufop_nextsv_anyIpatchlevelImax_intro_pendingIlast_swash_hvIreplgvblock_evalxbm_previousitermaxIcop_seqmaxXS_Log__Syslog__Fast_set_pid_ctime_bufferIexitliststasheslex_states_nameIcv_has_evalIregistered_mrossi_stackxbm_sje_prevXS_Log__Syslog__Fast_set_formattm_zone__mode_tswapop_latefree_protoent_ptrnext_branchsbu_maxitersIcollation_ixsi_cxmaxIsharehook_strerror_sizelex_deferstatesIperlioprev_markIutf8_lowerIin_clean_objsre_state_reg_magicdrand48_dataIscopestack_max_netent_errnosp_nampSVt_PVGVIsortcopop_pmreplrootublku_evalyyerrstatusIreginterp_cntleave_opsublenre_save_stateIutf8_alnumcsp_flagxav_fillsuper_statemg_moremagicsbu_strendIorigenvironbranchlikeIosnamemg_ptrblku_givwhenIsv_rootIors_svIcolorsetxpv_lenhent_refcountexitlistentryre_state_reg_start_tmpscream_pos_servent_structutf8_substrIorigalenIDBsingle_servent_ptrsubbegIdowarnre_scream_pos_data_drand48_doubleImarkstack_ptrIsv_objcountIamagic_generationIcurpadIutf8_idcontsvu_arrayIlocalizingre_scream_pos_data_sIutf8_xdigitsbu_typed_reclenregexpREGEXPIsrand_calledserventgofsImodcountsvt_lenImess_svkeeperop_flags_grent_struct__unusedcop_warningsPERL_SIREENTRsubstrsyycharblku_oldscopespSVt_PVAVpw_dirIDBsubop_optIunlockhooklogmsgmy_opmother_recurlymxio_bottom_namePerl___notusedprev_rexXS_Log__Syslog__Fast__get_sockxivu_namehek__nlink_tsi_addrIcolorsst_inost_mode_hostent_structMAGICcop_labelIregex_padmg_flagsIformfeedcur_textXPVAVop_pmoffsetop_attached_strerror_buffermaxposptr_tblSVt_PVCVIstashcacheprelenhent_hekcop_hintsIincgvop_targxpad_cop_seq_random_retval_grent_ptrsival_intsi_codexio_bottom_gvre_state_regeolIscopestackd_offImodglobalkeyschedrptrerror_countblku_oldmarkspImaxscreamlast_uniIdelaymagicgr_memoldlocXPVCViteraryp_proto__ssize_txio_fmt_namehent_valIdoextractje_mustcatchxcv_root_uxbm_rarexnv_nvtimespecn_netsp_minsvt_free_protoent_sizeIDBsignalXS_Log__Syslog__Fast_get_facilitypw_name__valtmpXSoffSVt_PVFMIlastfdXS_Log__Syslog__Fast_get_severityclone_paramsIexit_flagsIreentrant_buffer_spent_structold_namesvIpadixsp_lstchgsbu_rxmark_nameold_parserst_uidsbu_mPerlIO_list_snumbered_buff_LENGTHxcv_outsideIlockhookPADLISTany_dxptrrsfpre_state_reg_leftiterIstatnameIeuidSVt_PVHVSVt_NULLtm_minmgvtblIrehash_seed_setjumpIpsig_pendIlaststypeXPVGVIutf8_toupperMGVTBLItmps_stacksub_inwhatcx_substIrestartopSVt_PVIOcop_fileSVt_PVIVIcurpmregnodeIwatchoksbu_rxtaintedIuidnamed_buff_iterXPVHVxav_maxIutf8_digitxcv_xsubre_state_reg_oldcurpmhasargsop_privateXS_Log__Syslog__Fast_newIstatusvalue_posixany_ptrre_state_reg_match_utf8_grent_buffer_netent_struct_grent_sizeXPVIOin_my__blksize_tgr_passwdXPVIVnexttokesave_lastlocboot_Log__Syslog__Fast_asctime_buffersbu_oldsavexhv_maxprotoentsigjmp_buftms_cstimeminlenInumeric_nameIoldnameIerrgvsi_pidxmg_stashsbu_rflags_pwent_structIDBcvtm_wdayIdoswitchesre_state_reg_oldposre_state_bostr_asctime_sizeSVt_PVLVreg_substr_datasavearrayiterlvalIofs_svIpreambleavsvu_hashrand_degop_pmstashstartuIcheckav_savere_state_reg_maxiterblk_uSVt_PVMGIstack_maxIsv_arenaroottm_ydayImarkstackSVt_BINDpw_gecosop_last_pwent_ptrInice_chunk__dirstreamany_longrsfp_filtersnext_offsvu_iv_readdir_ptrxivu_i32crypt_3_bufIeval_rootIknown_layersIthreadhookSVt_PVNVPMOPminmodtm_monxssvwhilemmark_locYYSTYPEIlast_in_gvrandom_dataIreentrant_retintmulti_startxio_typeIcollxfrm_base_random_structIhv_fetch_ent_mhreg_substr_datum_pwent_sizesvt_clearxiv_uIsawampersandxio_ofpxgv_stashIpeeppold_op_typeop_pmreplroottm_yearcoplineIDBgvcop_hints_hashgp_cvgenstack_sizeXPVNVminlenretIsv_count_sublex_infoblku_gimmeXS_Log__Syslog__Fast_get_formatIbody_rootscontextIstack_spXS_Log__Syslog__Fast_sendInice_chunk_sizeIcollation_nameIArgvIinitavuint32_tpeep_t_servent_size__pid_tIutf8_idstart_spent_bufferop_pmreplstartIstatusvalueIcomppad_namenextvalIdebugSVt_IVIparserre_state_regsizeImy_cxt_sizeIsublineIbasetimeop_siblingxio_dirpuany_ivlex_casestackIcurstnamepmopIsavestack_ixIcomppad_name_fillend_shiftIbody_arenashent_nextsbu_oncesi_statusnamed_buffIlast_swash_tmpsPerlInterpreterImaxoIstderrgvIforkprocesss_portopvalcache_offsetIin_clean_allsvt_localyylenlex_stuffblku_sparexio_top_namewordnumdfoutgvlex_formbrackmg_lenxiou_dirpp_tkvalrand_type__dev_tIutf8_marklinestart_readdir_sizeIunitcheckavxio_linesIunicode_netent_buffersi_cxstackXS_Log__Syslog__Fast_get_pid_sifieldstm_hourgr_nameSTRLENclose_parenSVt_LAST__init_pwent_bufferdestroyable_proc_tmulti_openIin_eval_srandom_structsp_warnsi_signoSVt_NVparen_namesprev_yes_statehek_keyIDBlinetm_mdayIcollxfrm_multsvtypesp_inact__pad0proto_perlold_eval_rootImarkstack_maxop_nextopIminus_EIminus_F_hostent_bufferlex_brackstackxpvcvre_state_reglastcloseparensi_errnoIrunopsImain_cvCHECKPOINTIminus_aIminus_cIargvoutgvIminus_llast_lopIminus_nIminus_pIdebstashsi_bandmin_offsetre_state_reglastparenop_pmflagsIin_load_modulei_tkvalblku_subinterpreterblku_oldpm_protoent_buffernumbered_buff_FETCHIorigfilenameIutf8_alphaop_firstsiginfodirentst_rdevtms_stimetbl_max__old_xst_devop_ppaddrSVCOMPARE_tthrhook_proc_tIDBtraceany_i32IfirstgvIstatbufretopIutf8_printgroupSVt_PVIsavebeginlocinputany_boolxcv_outside_seqItaintedIcustom_op_descsIutf8_alnumline_tsvu_uvIutf8_tofoldsi_typeifmatchSVt_RVCLONE_PARAMSre_state_reg_flagsresetspPERL_CONTEXTIutf8_space_readdir_struct_hostent_errnoxhv_fillIgenerationIstart_envsigval_tIdefgvin_my_stashend_ptrrunops_proc_tblku_oldspsvu_gpre_state_reg_starttryIeval_startscream_olds__gid_th_aliasesIglob_indexhek_len_sigfaultnumbered_buff_STOREcurrent_saltbitssi_utimetv_secIcurstackIXpvIdumpindent_readdir64_structoldvalIunsafen_aliasesIencodingsi_fdh_addrtypeInomemokjmpenvp_aliasesIregmatch_state_localtime_structst_blockstms_utimeJMPENVIsighandlerpnexttypes_aliasesIsort_RealCmpsvt_dupdupesi_markofftm_gmtoff__ino64_tIevalseqcheckstrLOOPInumeric_radix_svxio_top_gv_readdir64_ptrcrypt_data_ttyname_sizesbu_rxresIlocalpatchesIinplacecop_stashpvpw_gidIcurcopdbIcustom_op_namesptr_tbl_entsi_overrunXS_Log__Syslog__Fast_set_facilitysvt_getIutf8_tolowerXS_Log__Syslog__Fast_get_sendergp_formImaxsysfdsv_refcntXS_Log__Syslog__Fast_set_severitysiginfo_ttbl_aryIexitlistlenlex_replxivu_p1XS_Log__Syslog__Fast_get_nameIbreakable_sub_genyy_stack_framepreambledRETVALIutf8_asciiIsecondgvxcv_start_usvt_copygp_file_hekIsavestack_maxIlast_swash_slenIlastscreamwrappedIutf8_cntrlargarrayxhightv_nseclex_casemodsIutf8_upperlogicalIbeginav_savexivu_ivwantedblock_givwhenIbitcountiterixn_addrtype__ino_tivalIstatgvgr_gidxmg_magicImin_intro_pendingtriemg_objany_dptrintuitxpvavre_state_reg_poscachepw_shellxnv_uparenfloorIsignalsIregmatch_slabIdebug_padxcv_xsubanysi_tidre_state_reginputItop_envxio_lines_leftIorigargclex_bracketsgp_avprev_curlyxImain_rootIfdpidIorigargvIargvout_stackop_pmtargetoff_hostent_sizeItmps_ixxmg_ourstashblock_loopIsubnameje_bufnewvalIcheckavspwdxcv_flagsre_state_reg_poscache_sizeIefloatbufIhintgvIlaststatvalIcurcopIpad_reset_pendingIperl_destruct_levelInumeric_localIformtargetoldcomppad_PerlIOst_mtimXS_Log__Syslog__Fast_constantIhintsIwatchaddrgp_cvXS_Log__Syslog__Fast_DESTROY_gmtime_structsi_sigval__jmp_bufolddepthIop_maskItmps_maxtbl_itemsd_inoIutf8localeiterdataop_spareIsv_undefIcomppadxio_fmt_gvcx_blkstatPerlIOlaccept_buffop_pmstashpvUKSM^ST^s s8 $ &s0`US.yS`T V.6VR^VdnV`Q]}.6]6R}Ry]`R\.y\ P6DPDRV^Ry^PdhPUSSUTT U SU T -U-9S9>U #T )Q@WUWgSgrU@WTWbVbrQUSUTVTUSPVP 5U5gSqS <T<lVqVUSSTVV8U8S=SbTbV=SVVVbQb\T6\\bRb5^=^]=]]b|bg]]n\=\bg\\ckPPu\)?PP ~ ~  ]]]g~g]]OUOSU SZTZVT VZQZ\Q$ \ZRZ]R) ]ZXZ^. ^ZYZ_3 _UT)-p-]|]EPpPu\uV|Vuy| $ &3$p"y!| $ &3$~"|0 | $ &3$~"Q | $ &3$~"1V  P L VL Q PQ V P  VU k Vu0]|00 *Q d *d -{_k _!%P%=\=APA\0 Q \ k \TWPPP PNQPP58PpsPPP/2PjmPPP9|1p t Up T # V ; Vk V p \ s3$p" s3$}" s3$}"G k s3$}" p S ( s( S ` s` k Sk s s $ &3$p"k q s $ &3$p" U P ^G k ^#  \` k \  1 U T CV7[VV p \ s3$p"s3$}"s3$}"gs3$}" p S HsHS7sSs s $ &3$p"s $ &3$p"UP^g^C2\\71UTcVW{VVp\ s3$p"4s3$}"4>s3$}"s3$}"p S hshSWsSs -s $ &3$p"s $ &3$p"UP>^^cR\\W1UTV{VVp;\RT s3$p"T^s3$}"s3$}"p.S.sS{sSs.Os $ &3$p"s $ &3$p"UPR]x\\;{1UTVV Vp[\rt s3$p"t~s3$}"s3$}"3>p>NSNs$SsS sNos $ &3$p"s $ &3$p"/3U9=P=r]\\[1U!T!VV +V6:p:y\rv s3$p"vs3$}"s3$}" s3$}"Q\p\lSlsBSs S +sls $ &3$p" s $ &3$p"OSUY]P]^ ^\ \y104U0ATAVV+ K VVZpZ\ s3$p"s3$}"s3$}" + s3$}"q|p|SsbS s + S+ K ss $ &3$p"+ 1 s $ &3$p"osUy}P}^ + ^\ + \1P T UP a Ta !V!"VK#k#Vv z pz \"" s3$p"""s3$}"""s3$}"'#K#s3$}" p S !s!!S!@"s@"K#SK#k#s s $ &3$p"K#Q#s $ &3$p"""U""P""^'#K#^!!\@"K#\!!1p#t#Up##T##Vw&&V##p##\##p##S##s#$SG%(&S.&w&Sw&&s&&S##s $ &3$p"w&}&s $ &3$p"##v#8w&}&v#8%+&\&&\W$B%Vx%&V.&w&V&&V%%P&&P %G%1%.&0&&U&&T&<'V))V&&p&'\&&p&'S'.'s.'(S()S))s'.'s $ &3$p"))s $ &3$p"'2'v#8))v#8-)3)U'|(V(O)Vw))VI(|(14)w)0))U))T)`*V-%-V))p);*\**p*.*S.*N*sN**S?+l,Sr,-S-%-s%-7-S.*N*s $ &3$p"- -s $ &3$p".*R*v#8- -v#8, ,T!,/,P%-2-P+?+1),r,0@-D-U@-S-TS--Vu00Vh-l-pl--\--p--S--s-8.S./S/u0Su00s00S--s $ &3$p"u0{0s $ &3$p"--v#8u0{0v#8//T//P00Pq..1//000U00T0<1V33V00p01\00p01S1.1s.12S23S33s1.1s $ &3$p".121s $ &3$p"33s $ &3$p"-333U1|2V2O3Vw33VI2|2143w3033U33T3\4V66V33p3;4\44p4.4S.4N4sN405S56S66s.4N4s $ &3$p"66s $ &3$p"M6S6U45V5o6V66Vi551T66066U67T7z7Vr::V77p7Y7\17<7p<7L7SL7l7sl78S9r:Sr::sL7l7s $ &3$p"r:x:s $ &3$p"L7p7v#8r:x:v#899U7 9V@9:VB:r:V$8 9\9r:\8 919B:0::U::T:0;V?5?V::p:;\::p:;S;";s";S<S<y>S>?S?5?s5?G?S;";s $ &3$p"";&;s $ &3$p"??s $ &3$p";&;v#8??v#8;<V<Q>V>?V5?G?V!>->Q;<\C=|>\>?\5?G?\.><>P5?B?P<<16>>0P?T?UP?g?Tg?0@V$ACAVCCV|??p??^$B(B s3$p"(BJBs3$}"JBTBs3$}"8C^Cs3$}"??p??S??s?@S$ACSCCsCCS??s $ &3$p"?@^$AA^TBB^CC^??v#8CCv#8?? s3$p"#?@]$A$B]TB8C]^CC]CC]AB^^CC^BBPBTB^8C^C^CCPCC^0@A\hAC\CC\@$AATB8C^CCCCCAAT@$A1CCUCCTCZDV'FGFVCCpC5D\ DDpD(DS(DHDsHDDS3EESE'FS'FGFsGFYFS(DHDs $ &3$p"'F-Fs $ &3$p"EEVGFYFVD3E1EE0`FdFU`FwFTwFFVMMVFFpFF\FFpFFSFFsFJSbKMSMMsFFs $ &3$p"FFs $ &3$p"MMs $ &3$p"MGbKKMDIJ]LL]EMM]GbKKMGbKK#LlLM@HaK_lLM_I_K^LL^MM^_JjJQqJJPJYKVMMPMMVKbK1MMUMMTMNV"OYOVOOVMMpMJNSJNNsxNOSO"Op"OOsxOOSNNpN-N\-NN|N!O\"OYO|YOO\OO|-N:N| $ &3$p"N"OXN"O1NN|3$p"NNVNOPYOOVNNV -size_tp__off_t{__off64_t__time_t__socklen_ttime_twLogSyslogFastsocklen_t__socket_typesa_family_tsockaddr1addrinfoO_IO_lock_tV_IO_marker_IO_FILEsockaddr_un ce__dev_tp__uid_t{__gid_t__ino_t__ino64_t__mode_t__nlink_t__off_t__off64_t__pid_t__clock_t__time_t__blksize_t__blkcnt_t__ssize_tgid_t$uid_t/ssize_t:clock_tEtime_tPsize_t[int32_t__sigset_ttimespec__jmp_buf__jmp_buf_tag2sigjmp_bufCrandom_datadrand48_datasigval;sigval_tsiginfosiginfo_t uint32_t'stattmtmsnetent hostentVserventprotoentdirent'dirent64qDIRIVUVNVSTRLENOP| COP PMOP LOOP PerlInterpreterSV1AVxHVCVREGEXP>GPGV^PERL_CONTEXT MAGIC XPV XPVIV!XPVNV^!XPVAV!XPVHV "XPVGV"XPVCV\#XPVIO$MGVTBL %ANY%PTR_TBL_t%CLONE_PARAMS2&I8<&U8F&U16Q&I32\&U32g&line_t%anyD(_IO_lock_tK(_IO_marker&_IO_FILE(PerlIOl(PerlIO(PerlIO_list_t(Sighandler_t(YYSTYPEH)YYSTYPES)regnode)regnode)reg_substr_datum)reg_substr_data*regexp_paren_pair&*regexp_paren_pairregexp*regexp+re_scream_pos_data_s++re_scream_pos_data1*regexp_engine-_reg_trie_accepted4-reg_trie_acceptedF-CHECKPOINTi-regmatch_stateE2regmatch_stateQ2regmatch_slab2regmatch_slab2re_save_stater4svtype}4HE4HEKsvgvcv<avhv"io xpv xpviv!xpvnv,"xpvgvc:cv_flags_th#xpvio%clone_paramsIgp;PADLIST;PAD;PADOFFSET"xpvcvop pmop loop^=passwd=group=crypt_data>spwdBREENTR4he4hek!xpvhvCjmpenvCJMPENV copCblock_subDblock_evalEblock_loopEblock_givwhenblockEsubstjcontextFstackinfolGPERL_SIj!xpvav$mgvtbl magicHSUBLEXINFOH_sublex_infoIyy_stack_frameIyy_parserSLyy_parser{%ptr_tbl_ent%ptr_tblqLrunops_proc_tLshare_proc_tLthrhook_proc_tLdestroyable_proc_tLperl_debug_padMpeep_t7MSVCOMPARE_tcMexitlistentryMPerlExitListEntry interpreterNLogSyslogFastRy^kX[k uprck k 0 X 359m % k ( E@H'e`hI;i[ y+  !"K#!!##&&0&w&P%%#<%%% %<%)'+'))(4).'|(D(F(I(|(I*K*%-7-x,-@+),N*4+**+4+--00/u0./-.l.n.q..)1+133243.1|2D2F2I2|2I4K4665T6N45d5f5i55g7i7H:r:99l7 9888 9;;5?G?>?<6>";<<<<<??CC(AC?@CDEDGFYFE'F8EEHD.EDDD.EFFhKMFKJNN(OONO.symtab.strtab.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.ctors.dtors.jcr.data.rel.ro.dynamic.got.got.plt.bss.comment.debug_aranges.debug_pubnames.debug_info.debug_abbrev.debug_line.debug_str.debug_loc.debug_pubtypes.debug_ranges$.o|8 88 @X X 4HoUohh@d@nP x88sPP~@$@$Y8~8~2H~H~ \``lГ Г     8 8 0,`LjpH(N 40< .?OJJ~ Z1 hp$7 R 8X h 8 P @$ 8~ H~`Г      8   ! @$Г * 8 E `$[ jȘ x $ؓ ȓ  ~ %8     ?< `H^l p%y 'r -8   `%(5 8~;L[o B P% ( %* 8I Nk U" _7IZ 0(k tm (S r |4 P.k K_ @e K h *   (2 ,H bj| mr ; 0% Q: " 0)j/И 4 )jCX *iv P(2 [g @E %:M T_ @%n % Xg  p& +  81  %@ call_gmon_startcrtstuff.c__CTOR_LIST____DTOR_LIST____JCR_LIST____do_global_dtors_auxcompleted.6338dtor_idx.6340frame_dummy__CTOR_END____FRAME_END____JCR_END____do_global_ctors_auxLogSyslogFast.cupdate_prefixFast.c_GLOBAL_OFFSET_TABLE___dso_handle__DTOR_END___DYNAMICXS_Log__Syslog__Fast_get_pidXS_Log__Syslog__Fast_get_severityPerl_sv_setivLSF_get_sockPerl_get_svLSF_set_formatclose@@GLIBC_2.2.5Perl_Imarkstack_ptr_ptrPerl_newSVpvf_nocontextLSF_init__gmon_start___Jv_RegisterClassesLSF_get_pidgetaddrinfo@@GLIBC_2.2.5Perl_Iop_ptr_finiPerl_Isv_yes_ptrPerl_call_listmalloc@@GLIBC_2.2.5Perl_Istack_sp_ptrXS_Log__Syslog__Fast_get_namePerl_warn_nocontextPerl_sv_2mortalPerl_sv_setpvLSF_get_nameLSF_set_pidPerl_vstringifyPerl_formgetpid@@GLIBC_2.2.5LSF_get_priorityXS_Log__Syslog__Fast__get_sockXS_Log__Syslog__Fast_get_priority__strdup@@GLIBC_2.2.5Perl_Icurpad_ptrfreeaddrinfo@@GLIBC_2.2.5free@@GLIBC_2.2.5Perl_vcmpXS_Log__Syslog__Fast_set_pidpthread_getspecific__cxa_finalize@@GLIBC_2.2.5XS_Log__Syslog__Fast_set_severityPerl_sv_setref_pvPerl_newXS_flagsLSF_set_prioritystrerror@@GLIBC_2.2.5Perl_Iscopestack_ix_ptrXS_Log__Syslog__Fast_newconnect@@GLIBC_2.2.5LSF_destroyPerl_sv_newmortalmemcpy@@GLIBC_2.2.5XS_Log__Syslog__Fast_DESTROYXS_Log__Syslog__Fast_constantboot_Log__Syslog__Fastsocket@@GLIBC_2.2.5XS_Log__Syslog__Fast_set_priorityXS_Log__Syslog__Fast_get_facilityXS_Log__Syslog__Fast_set_receiverLSF_alloc__errno_location@@GLIBC_2.2.5__bss_startLSF_set_facilityPerl_mg_setPerl_Iunitcheckav_ptr__stack_chk_fail@@GLIBC_2.4XS_Log__Syslog__Fast_set_facilitysend@@GLIBC_2.2.5XS_Log__Syslog__Fast_sendXS_Log__Syslog__Fast_get_formatLSF_get_severityPerl_sv_isobjectXS_Log__Syslog__Fast_set_formatPerl_Istack_base_ptrPerl_croak_nocontextLSF_set_name_endLSF_set_senderstrncpy@@GLIBC_2.2.5LSF_set_receiverPerl_newSVpvPerl_sv_2iv_flagsLSF_set_severityXS_Log__Syslog__Fast_set_sender__snprintf_chk@@GLIBC_2.3.4XS_Log__Syslog__Fast_get_senderPerl_croak_xs_usagePerl_new_versionPerl_croakrealloc@@GLIBC_2.2.5Perl_Isv_undef_ptr_edataPerl_newXSLSF_get_senderlocaltime@@GLIBC_2.2.5Perl_Gthr_key_ptrLSF_get_facilityXS_Log__Syslog__Fast_set_namestrftime@@GLIBC_2.2.5Perl_sv_2nvPerl_sv_derived_fromfcntl@@GLIBC_2.2.5LSF_sendtime@@GLIBC_2.2.5_initLSF_get_formatPerl_sv_2pv_flagsPKB[#dd#auto/Log/Syslog/Constants/.packlistnuW+A/usr/local/share/man/man3/Log::Syslog::Constants.3pm /usr/local/share/perl5/Log/Syslog/Constants.pm PKB[UQVUUauto/DNS/ZoneParse/.packlistnuW+A/usr/local/share/man/man3/DNS::ZoneParse.3pm /usr/local/share/perl5/DNS/ZoneParse.pm PKT[bmllLog/Syslog/Constants.pmnuW+Apackage Log::Syslog::Constants; use 5.6.2; use strict; use warnings; our $VERSION = '1.02'; # severities use constant LOG_EMERG => 0; # system is unusable use constant LOG_ALERT => 1; # action must be taken immediately use constant LOG_CRIT => 2; # critical conditions use constant LOG_ERR => 3; # error conditions use constant LOG_WARNING => 4; # warning conditions use constant LOG_NOTICE => 5; # normal but significant condition use constant LOG_INFO => 6; # informational use constant LOG_DEBUG => 7; # debug-level messages # facilities use constant LOG_KERN => 0; # kernel messages use constant LOG_USER => 1; # random user-level messages use constant LOG_MAIL => 2; # mail system use constant LOG_DAEMON => 3; # system daemons use constant LOG_AUTH => 4; # security/authorization messages use constant LOG_SYSLOG => 5; # messages generated internally by syslogd use constant LOG_LPR => 6; # line printer subsystem use constant LOG_NEWS => 7; # network news subsystem use constant LOG_UUCP => 8; # UUCP subsystem use constant LOG_CRON => 9; # clock daemon use constant LOG_AUTHPRIV => 10; # security/authorization messages (private) use constant LOG_FTP => 11; # ftp daemon use constant LOG_LOCAL0 => 16; # reserved for local use use constant LOG_LOCAL1 => 17; # reserved for local use use constant LOG_LOCAL2 => 18; # reserved for local use use constant LOG_LOCAL3 => 19; # reserved for local use use constant LOG_LOCAL4 => 20; # reserved for local use use constant LOG_LOCAL5 => 21; # reserved for local use use constant LOG_LOCAL6 => 22; # reserved for local use use constant LOG_LOCAL7 => 23; # reserved for local use my %_severities_by_name = ( emerg => LOG_EMERG, alert => LOG_ALERT, crit => LOG_CRIT, err => LOG_ERR, warning => LOG_WARNING, notice => LOG_NOTICE, info => LOG_INFO, debug => LOG_DEBUG, ); my %_facilities_by_name = ( kern => LOG_KERN, user => LOG_USER, mail => LOG_MAIL, daemon => LOG_DAEMON, auth => LOG_AUTH, syslog => LOG_SYSLOG, lpr => LOG_LPR, news => LOG_NEWS, uucp => LOG_UUCP, cron => LOG_CRON, authpriv => LOG_AUTHPRIV, ftp => LOG_FTP, local0 => LOG_LOCAL0, local1 => LOG_LOCAL1, local2 => LOG_LOCAL2, local3 => LOG_LOCAL3, local4 => LOG_LOCAL4, local5 => LOG_LOCAL5, local6 => LOG_LOCAL6, local7 => LOG_LOCAL7, ); sub get_severity { $_severities_by_name{lc $_[0]}; } sub get_facility { $_facilities_by_name{lc $_[0]}; } require Exporter; our @ISA = qw(Exporter); our %EXPORT_TAGS = ( severities => [qw/ LOG_EMERG LOG_ALERT LOG_CRIT LOG_ERR LOG_WARNING LOG_NOTICE LOG_INFO LOG_DEBUG /], facilities => [qw/ LOG_KERN LOG_USER LOG_MAIL LOG_DAEMON LOG_AUTH LOG_SYSLOG LOG_LPR LOG_NEWS LOG_UUCP LOG_CRON LOG_AUTHPRIV LOG_FTP LOG_LOCAL0 LOG_LOCAL1 LOG_LOCAL2 LOG_LOCAL3 LOG_LOCAL4 LOG_LOCAL5 LOG_LOCAL6 LOG_LOCAL7 /], functions => [qw/ get_severity get_facility /], ); @{ $EXPORT_TAGS{'all'} } = ( @{ $EXPORT_TAGS{'facilities'} }, @{ $EXPORT_TAGS{'severities'} }, @{ $EXPORT_TAGS{'functions'} }, ); our @EXPORT_OK = @{ $EXPORT_TAGS{'all'} }; our @EXPORT = qw(); 1; __END__ =head1 NAME Log::Syslog::Constants - Perl extension containing syslog priority constants as defined in RFC3164. =head1 SYNOPSIS use Log::Syslog::Constants ':all'; @severities = ( LOG_EMERG, LOG_ALERT, LOG_CRIT, LOG_ERR, LOG_WARNING, LOG_NOTICE, LOG_INFO, LOG_DEBUG ); @facilities = ( LOG_KERN, LOG_USER, LOG_MAIL, LOG_DAEMON, LOG_AUTH, LOG_SYSLOG, LOG_LPR, LOG_NEWS, LOG_UUCP, LOG_CRON, LOG_AUTHPRIV, LOG_FTP, LOG_LOCAL0, LOG_LOCAL1, LOG_LOCAL2, LOG_LOCAL3, LOG_LOCAL4, LOG_LOCAL5, LOG_LOCAL6, LOG_LOCAL7 ); $info_constant = get_severity('INFO'); $local0_constant = get_facility('local0'); =head1 DESCRIPTION Syslog messages--as standardized in RFC3164--embed a priority number (the PRI part) which is composed of a severity and a facility value. The constants which encode these values are specified in section 4.1.1, and are made available by this module. For instance, the exportable LOG_FTP constant has a value of 11, the value for the FTP facility. =head1 EXPORTS Nothing is exported by default. You may optionally import individual constants and functions or groups of them: use Log::Syslog::Constants qw(:severities); # LOG_CRIT, LOG_DEBUG, etc use Log::Syslog::Constants qw(:facilities); # LOG_CRON, LOG_LOCAL3, etc use Log::Syslog::Constants qw(:functions); # get_facility, get_severity use Log::Syslog::Constants qw(:all); # all of the above =head1 FUNCTIONS =over 4 =item * get_facility($facility_string) =item * get_severity($severity_string) These functions look up a constant value by name, e.g. C. =back =head1 SEE ALSO L =head1 AUTHOR Adam Thomason, Eathomason@cpan.orgE =head1 COPYRIGHT AND LICENSE Copyright (C) 2010-2011 by Say Media, Inc. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.5 or, at your option, any later version of Perl 5 you may have available. =cut PKT[x^^DNS/ZoneParse.pmnuW+A# DNS::ZoneParse # Parse and Manipulate DNS Zonefiles package DNS::ZoneParse; use 5.006; use Storable 'dclone'; use POSIX 'strftime'; use File::Basename; use vars qw($VERSION); use strict; use Carp; # It makes everyone's life easier if you double-escape the backslash, and only # the backslash, here. my @ESCAPABLE_CHARACTERS = qw/ ; " \\\\ /; my $rr_class = qr/(?:IN|HS|CH)/i; my $rr_ttl = qr/(?:\d+[wdhms]?)+/i; $VERSION = '1.10'; my ( %dns_id, %dns_soa, %dns_ns, %dns_a, %dns_cname, %dns_mx, %dns_txt, %dns_ptr, %dns_a4, %dns_srv, %dns_hinfo, %dns_rp, %dns_loc, %dns_generate, %dns_last_name, %dns_last_origin, %dns_last_class, %dns_last_ttl, %dns_found_origins, %unparseable_line_callback, %last_parse_error_count, ); my %possibly_quoted = map { $_ => undef } qw/ os cpu text mbox /; sub new { my $class = shift; my $file = shift; my $origin = shift; my $unparseable_callback = shift; my $self = bless [], $class; if ( ref $unparseable_callback eq 'CODE' ) { $unparseable_line_callback{$self} = $unparseable_callback; } $self->_initialize(); $self->_load_file( $file, $origin ) if $file; return $self; } sub on_unparseable_line { my $self = shift; my $arg = shift; if ( !defined $arg ) { return $unparseable_line_callback{$self}; } elsif ( ref $arg eq 'CODE' ) { my $old = $unparseable_line_callback{$self}; $unparseable_line_callback{$self} = $arg; return $old; } else { return undef; } } sub last_parse_error_count { my $self = shift; return $last_parse_error_count{$self}; } sub DESTROY { my $self = shift; delete $dns_soa{$self}; delete $dns_ns{$self}; delete $dns_a{$self}; delete $dns_cname{$self}; delete $dns_mx{$self}; delete $dns_txt{$self}; delete $dns_ptr{$self}; delete $dns_a4{$self}; delete $dns_srv{$self}; delete $dns_hinfo{$self}; delete $dns_rp{$self}; delete $dns_loc{$self}; delete $dns_id{$self}; delete $dns_generate{$self}; delete $dns_last_name{$self}; delete $dns_last_origin{$self}; delete $dns_last_ttl{$self}; delete $dns_last_class{$self}; delete $dns_found_origins{$self}; delete $unparseable_line_callback{$self}; delete $last_parse_error_count{$self}; } sub AUTOLOAD { my $self = shift; ( my $method = $DNS::ZoneParse::AUTOLOAD ) =~ s/.*:://; my $rv = $method eq 'soa' ? $dns_soa{$self} : $method eq 'ns' ? $dns_ns{$self} : $method eq 'a' ? $dns_a{$self} : $method eq 'cname' ? $dns_cname{$self} : $method eq 'mx' ? $dns_mx{$self} : $method eq 'txt' ? $dns_txt{$self} : $method eq 'ptr' ? $dns_ptr{$self} : $method eq 'aaaa' ? $dns_a4{$self} : $method eq 'srv' ? $dns_srv{$self} : $method eq 'hinfo' ? $dns_hinfo{$self} : $method eq 'rp' ? $dns_rp{$self} : $method eq 'loc' ? $dns_loc{$self} : $method eq 'generate' ? $dns_generate{$self} : $method eq 'zonefile' ? $dns_id{$self}->{ZoneFile} : $method eq 'origin' ? $dns_id{$self}->{Origin} : undef; croak "Invalid method called: $method" unless defined $rv; return $rv; } # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Public OO Methods # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # sub dump { # returns a HOH for use with XML modules, etc my $self = shift; return dclone( { SOA => $dns_soa{$self}, AAAA => $dns_a4{$self}, A => $dns_a{$self}, NS => $dns_ns{$self}, CNAME => $dns_cname{$self}, MX => $dns_mx{$self}, PTR => $dns_ptr{$self}, TXT => $dns_txt{$self}, SRV => $dns_srv{$self}, HINFO => $dns_hinfo{$self}, RP => $dns_rp{$self}, LOC => $dns_loc{$self}, } ); } sub new_serial { my $self = shift; my $incriment = shift || 0; my $soa = $dns_soa{$self}; if ( $incriment > 0 ) { $soa->{serial} += $incriment; } else { my $newserial = strftime( "%Y%m%d%H", localtime( time ) ); $soa->{serial} = ( $newserial > $soa->{serial} ) ? $newserial : $soa->{serial} + 1; } return $soa->{serial}; } sub output { my $self = shift; my $zone_ttl = $dns_soa{$self}{ttl} ? "\$TTL $dns_soa{$self}{ttl}" : ''; my $output = ''; $output .= <{ZoneFile} for $dns_id{$self}->{Origin} zone. ; Zone version: $dns_soa{$self}->{serial} ; ZONEHEADER1 if ( $dns_soa{$self}->{'ORIGIN'} ne $dns_soa{$self}->{'origin'} ) { $output .= "\n\$ORIGIN $dns_soa{$self}->{'ORIGIN'}\n\n"; } $output .= <{origin} $dns_soa{$self}->{ttl} IN SOA $dns_soa{$self}->{primary} $dns_soa{$self}->{email} ( $dns_soa{$self}->{serial} ; serial number $dns_soa{$self}->{refresh} ; refresh $dns_soa{$self}->{retry} ; retry $dns_soa{$self}->{expire} ; expire $dns_soa{$self}->{minimumTTL} ; minimum TTL ) ; ; Zone NS Records ; ZONEHEADER2 my @origins_to_process = grep { if ( $_ eq $dns_soa{$self}->{'ORIGIN'} ) { 0; } else { 1; } } keys %{ $dns_found_origins{$self} }; unshift @origins_to_process, $dns_soa{$self}->{'ORIGIN'}; foreach my $process_this_origin ( @origins_to_process ) { if ( $process_this_origin ne $dns_soa{$self}->{'ORIGIN'} ) { $output .= "\n\;\n\; $process_this_origin records\n\;\n\n"; $output .= "\$ORIGIN $process_this_origin\n\n"; } foreach my $o ( @{ $dns_ns{$self} } ) { next unless defined $o; next unless $o->{'ORIGIN'} eq $process_this_origin; $self->_escape_chars( $o ); $output .= "$o->{name} $o->{ttl} $o->{class} NS $o->{host}\n"; } foreach my $o ( @{ $dns_mx{$self} } ) { next unless defined $o; next unless $o->{'ORIGIN'} eq $process_this_origin; $self->_escape_chars( $o ); $output .= "$o->{name} $o->{ttl} $o->{class} MX $o->{priority} $o->{host}\n"; } foreach my $o ( @{ $dns_a{$self} } ) { next unless defined $o; next unless $o->{'ORIGIN'} eq $process_this_origin; $self->_escape_chars( $o ); $output .= "$o->{name} $o->{ttl} $o->{class} A $o->{host}\n"; } foreach my $o ( @{ $dns_cname{$self} } ) { next unless defined $o; next unless $o->{'ORIGIN'} eq $process_this_origin; $self->_escape_chars( $o ); $output .= "$o->{name} $o->{ttl} $o->{class} CNAME $o->{host}\n"; } foreach my $o ( @{ $dns_a4{$self} } ) { next unless defined $o; next unless $o->{'ORIGIN'} eq $process_this_origin; $self->_escape_chars( $o ); $output .= "$o->{name} $o->{ttl} $o->{class} AAAA $o->{host}\n"; } foreach my $o ( @{ $dns_txt{$self} } ) { next unless defined $o; next unless $o->{'ORIGIN'} eq $process_this_origin; $self->_escape_chars( $o ); $output .= qq[$o->{name} $o->{ttl} $o->{class} TXT "$o->{text}"\n]; } foreach my $o ( @{ $dns_ptr{$self} } ) { next unless defined $o; next unless $o->{'ORIGIN'} eq $process_this_origin; $self->_escape_chars( $o ); $output .= "$o->{name} $o->{ttl} $o->{class} PTR $o->{host}\n"; } foreach my $o ( @{ $dns_srv{$self} } ) { next unless defined $o; next unless $o->{'ORIGIN'} eq $process_this_origin; $self->_escape_chars( $o ); $output .= "$o->{name} $o->{ttl} $o->{class} SRV $o->{priority} $o->{weight} $o->{port} $o->{host}\n"; } foreach my $o ( @{ $dns_hinfo{$self} } ) { next unless defined $o; next unless $o->{'ORIGIN'} eq $process_this_origin; $self->_escape_chars( $o ); $output .= "$o->{name} $o->{ttl} $o->{class} HINFO $o->{cpu} $o->{os}\n"; } foreach my $o ( @{ $dns_rp{$self} } ) { next unless defined $o; next unless $o->{'ORIGIN'} eq $process_this_origin; $self->_escape_chars( $o ); $output .= "$o->{name} $o->{ttl} $o->{class} RP $o->{mbox} $o->{text}\n"; } foreach my $o ( @{ $dns_loc{$self} } ) { next unless defined $o; next unless $o->{'ORIGIN'} eq $process_this_origin; $self->_escape_chars( $o ); $output .= "$o->{name} $o->{ttl} $o->{class} LOC $o->{d1} $o->{m1} $o->{s1} $o->{NorS} "; $output .= "$o->{d2} $o->{m2} $o->{s2} $o->{EorW} "; $output .= "$o->{alt} $o->{siz} $o->{hp} $o->{vp}\n"; } foreach my $o ( @{ $dns_generate{$self} } ) { next unless defined $o; next unless $o->{'ORIGIN'} eq $process_this_origin; $self->_escape_chars( $o ); $output .= "\$GENERATE $o->{range} $o->{lhs} $o->{ttl} $o->{class} $o->{type} $o->{rhs}\n"; } } return $output; } sub fqname { my ( $self, $record_ref ) = @_; # Is this an SOA record? if ( $record_ref->{'origin'} ) { if ( ( $record_ref->{'origin'} eq '@' ) || ( $record_ref->{'origin'} =~ /\.$/ ) ) { return $record_ref->{'ORIGIN'}; } else { if ( $record_ref->{'ORIGIN'} =~ /^\./ ) { return $record_ref->{'origin'} . $record_ref->{'ORIGIN'}; } return $record_ref->{'origin'} . '.' . $record_ref->{'ORIGIN'}; } } else { if ( $record_ref->{'name'} eq '@' ) { return $record_ref->{'ORIGIN'}; } else { if ( $record_ref->{'ORIGIN'} =~ /^\./ ) { return $record_ref->{'name'} . $record_ref->{'ORIGIN'}; } return $record_ref->{'name'} . '.' . $record_ref->{'ORIGIN'}; } } } sub ttl_to_int { my ( $self, $t ) = @_; # Passed in nothing? Huh? if ( !$t ) { return 0; } # If it's all digits already, just pass it right back. if ( $t =~ /^\d+$/ ) { return $t; } # If it doesn't look like a valid TTL string, error. We know, because of # the above test, that it's not just a number, if we got this far. if ( $t !~ /^(?:\d+[WDHMS])+$/i ) { die "Unknown TTL string format!\n"; } $t = uc( $t ); my $r; my %ttl; while ( $t =~ /(\d+)([WDHMS])/g ) { # Did we already see this modifier? if ( defined $ttl{ $2 } ) { die "Invalid TTL!\n"; } $ttl{ $2 } = $1; } foreach my $m ( qw/ W D H M S / ) { if ( !exists $ttl{ $m } ) { $ttl{ $m } = 0; } } $r = $ttl{'W'} * 7; $r = ( $r + $ttl{'D'} ) * 24; $r = ( $r + $ttl{'H'} ) * 60; $r = ( $r + $ttl{'M'} ) * 60; $r = ( $r + $ttl{'S'} ); die unless $r == $ttl{'S'} + 60 * ( $ttl{'M'} + 60 * ( $ttl{'H'} + 24 * ( $ttl{'D'} + 7 * $ttl{'W'} ) ) ); return $r; } # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Private Methods # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # sub _initialize { my $self = shift; $dns_id{$self} = {}; $dns_soa{$self} = {}; $dns_ns{$self} = []; $dns_a{$self} = []; $dns_cname{$self} = []; $dns_mx{$self} = []; $dns_txt{$self} = []; $dns_ptr{$self} = []; $dns_a4{$self} = []; $dns_srv{$self} = []; $dns_hinfo{$self} = []; $dns_rp{$self} = []; $dns_loc{$self} = []; $dns_generate{$self} = []; $dns_last_name{$self} = undef; $dns_last_origin{$self} = undef; $dns_last_ttl{$self} = undef; $dns_last_class{$self} = 'IN'; # Class defaults to IN. $dns_found_origins{$self} = {}; $last_parse_error_count{$self} = 0; return 1; } sub _load_file { my ( $self, $zonefile, $origin ) = @_; my $zone_contents; if ( ref( $zonefile ) eq 'SCALAR' ) { $zone_contents = $$zonefile; } else { my $inZONE; if ( open( $inZONE, '<', $zonefile ) ) { local $/; $zone_contents = <$inZONE>; close( $inZONE ); } else { croak qq[DNS::ZoneParse Could not open input file: "$zonefile":$!]; } } if ( $self->_parse( $zonefile, $zone_contents, $origin ) ) { return 1; } } sub _parse { # Support IsAlnum for unicode names. use utf8; my ( $self, $zonefile, $contents, $origin ) = @_; $self->_initialize(); # Here's how we auto-detect the zonefile and origin. Note, the zonefile is # only used to print out a comment in the file, so its okay if we're # inaccurate. First, prefer what the user configures. Next, try to read a # comment we would have written if we wrote the file out in the past. # Finally, pick up any SOA or $ORIGIN statements present in the file. if ( ref( $zonefile ) eq 'SCALAR' ) { $zonefile = ''; } if ( !$origin || !$zonefile ) { # I don't know why the ( dns)? capture is there, perhaps at one point # this module wrote a different header comment? I'll leave it as to # preserve whatever backwards compatability this affords us... $contents =~ /^\s*;\s*Database file (\S+)( dns)? for (\S+) zone/im; if ( !$origin && $3 ) { $origin = $3; } if ( !$zonefile && $1 ) { $zonefile = $1; } } if ( $zonefile ) { $zonefile = basename( $zonefile ); } else { $zonefile = 'unknown'; } if ( $origin ) { # A trite way of insuring there is a trailing dot on the origin. It's # really important you supply a trailing . in an origin when you mean # it. $origin =~ s/([^.])$/$1./; } else { $origin = ''; } $dns_id{$self} = { ZoneFile => $zonefile, Origin => $origin, }; my $records = $self->_clean_records( $contents ); # Everything valid in the name, except the '.' character. my $valid_name_start_char = q/(?:[\p{IsAlnum}\@_\-*:+=!#$%^&`~,\[\]{}|?'\/]|/ . join( '|', map { "\\\\$_" } @ESCAPABLE_CHARACTERS ) . ')'; # The above, but adds the literal '.' character. my $valid_name_char = qr/(?:$valid_name_start_char|[\.\\])/o; my $valid_txt_char = qr/\S+/o; my $valid_quoted_txt_char = qr/.+/o; # Like the above, but adds whitespace (space and tabs) too. my $valid_quoted_name_char = qr/(?:$valid_name_start_char|[. ;\t()\\])/o; my $valid_name = qr/$valid_name_start_char$valid_name_char*/o; my $valid_ip6 = qr/[\@a-zA-Z_\-\.0-9\*:]+/; my $rr_type = qr/\b(?:NS|A|CNAME)\b/i; #my $ttl_cls = qr/(?:($rr_ttl)\s)?(?:($rr_class)\s)?/o; my $ttl_cls = qr/(?:\b((?:$rr_ttl)|(?:$rr_class))\s)?(?:\b((?:$rr_class)|(?:$rr_ttl))\s)?/o; my $generate_range = qr{\d+\-\d+(?:/\d+)?}; my $last_good_line; foreach ( @$records ) { #TRACE( "parsing line <$_>" ); # It's faster to skip blank lines here than to remove them inside # _clean_records. next if /^\s*$/; # The below is inside of an eval block to catch possible errors # found inside _massage and propagate them up properly. eval { local $SIG{__DIE__} = 'DEFAULT'; if ( /^($valid_name)? \s+ # host $ttl_cls # ttl & class ($rr_type) \s # record type ($valid_name) # record data /ixo ) { my ( $name, $ttl, $class, $type, $host ) = ( $1, $2, $3, $4, $5 ); my $dns_thing = uc $type eq 'NS' ? $dns_ns{$self} : uc $type eq 'A' ? $dns_a{$self} : $dns_cname{$self}; push @$dns_thing, $self->_massage( { name => $name, class => $class, host => $host, ttl => $ttl, } ); } elsif ( /^($valid_name)? \s+ $ttl_cls AAAA \s ($valid_ip6) /ixo ) { my ( $name, $ttl, $class, $host ) = ( $1, $2, $3, $4 ); push @{ $dns_a4{$self} }, $self->_massage( { name => $name, class => $class, host => $host, ttl => $ttl, } ); } elsif ( /^($valid_name)? \s+ $ttl_cls MX \s+ (\d+) \s+ ($valid_name_char+) /ixo ) { # host ttl class mx pri dest my ( $name, $ttl, $class, $pri, $host ) = ( $1, $2, $3, $4, $5 ); push @{ $dns_mx{$self} }, $self->_massage( { name => $name, priority => $pri, host => $host, ttl => $ttl, class => $class, } ); } elsif ( /^($valid_name)? \s+ $ttl_cls SRV \s+ (\d+) \s+ (\d+) \s+ (\d+) \s+ ($valid_name) /ixo ) { # host ttl class mx priority weight port dest my ( $name, $ttl, $class, $pri, $weight, $port, $host ) = ( $1, $2, $3, $4, $5, $6, $7 ); push @{ $dns_srv{$self} }, $self->_massage( { name => $name, priority => $pri, weight => $weight, port => $port, host => $host, ttl => $ttl, class => $class, } ); } elsif ( /^($valid_name) \s+ $ttl_cls SOA \s+ ($valid_name) \s+ ($valid_name) \s+ ($rr_ttl) \s+ ($rr_ttl) \s+ ($rr_ttl) \s+ ($rr_ttl) \s+ ($rr_ttl) /ixo ) { # SOA record $dns_soa{$self} = $self->_massage( { origin => $1, ttl => $2, class => $3, primary => $4, email => $5, serial => $6, refresh => $7, retry => $8, expire => $9, minimumTTL => $10, } ); if ( !$origin ) { $origin = $1; $dns_id{$self} = { ZoneFile => $zonefile, Origin => $origin, }; } } elsif ( /^($valid_name)? \s+ $ttl_cls PTR \s+ ($valid_name) /ixo ) { # PTR push @{ $dns_ptr{$self} }, $self->_massage( { name => $1, class => $3, ttl => $2, host => $4, } ); } elsif ( /($valid_name)? \s+ $ttl_cls TXT \s+ ("$valid_quoted_txt_char*(?_massage( { name => $1, ttl => $2, class => $3, text => $4, } ); } elsif ( /^\s*\$TTL \s+ ($rr_ttl) /ixo ) { if ( !defined $dns_soa{$self} ) { $dns_soa{$self}->{ttl} = $1; } $dns_last_ttl{$self} = $1; } elsif ( /^($valid_name)? \s+ $ttl_cls HINFO \s+ ("$valid_quoted_txt_char*(?_massage( { name => $1, ttl => $2, class => $3, cpu => $4, os => $5, } ); } elsif ( /^($valid_name)? \s+ $ttl_cls RP \s+ ($valid_name_char+) \s+ ($valid_name_char+) /ixo ) { push @{ $dns_rp{$self} }, $self->_massage( { name => $1, ttl => $2, class => $3, mbox => $4, text => $5, } ); } elsif ( /^($valid_name)? \s+ $ttl_cls LOC \s+ (-?[\d\.]+) \s* ([\d\.]*) \s* ([\d\.]*) \s+ ([NS]) \s+ (-?[\d\.]+) \s* ([\d\.]*) \s* ([\d\.]*) \s+ ([EW]) \s* (-?[\d\.]*m?) \s* ([\d\.]*m?) \s* ([\d\.]*m?) \s* ([\d\.]*m?) /ixo ) { push @{ $dns_loc{$self} }, $self->_massage( { name => $1, ttl => $2, class => $3, d1 => $4, m1 => $5, s1 => $6, NorS => $7, d2 => $8, m2 => $9, s2 => $10, EorW => $11, alt => $12, siz => $13, hp => $14, vp => $15, } ); } elsif ( /^\s*\$ORIGIN\s+($valid_name_char+)/io ) { my $new_origin = $1; # We could track each origins origin, all the way down, but what # would that get us? Madness, surely. if ( $new_origin !~ /\.$/ ) { if ( $dns_last_origin{$self} =~ /^\./ ) { $new_origin .= $dns_last_origin{$self}; } else { $new_origin .= '.' . $dns_last_origin{$self}; } } $dns_last_origin{$self} = $new_origin; $dns_found_origins{$self}->{ $new_origin } = 1; } elsif ( /^ \s* \$GENERATE \s+ ($generate_range) \s+ # range ($valid_name) \s+ # lhs (?:($rr_ttl) \s+)? # ttl (?:($rr_class) \s+)? # class ([a-z]+) \s+ # type ($valid_name) # rhs /ixo ) { push @{ $dns_generate{$self} }, $self->_massage( { range => $1, lhs => $2, ttl => $3, class => $4, type => $5, rhs => $6, } ); } else { die "Unknown record type\n"; } }; # End of eval block. if ( $@ ) { chomp $@; $last_parse_error_count{$self}++; if ( $unparseable_line_callback{$self} ) { $unparseable_line_callback{$self}->( $self, $_, $@, $last_good_line ); } else { carp "Unparseable line ($@)\n $_\n"; } } else { $last_good_line = $_; } } return 1; } sub _clean_records { my $self = shift; my $zone = shift; my $x = 0; my $in_comment = 0; my $in_quote = 0; my $in_concat = 0; my $last_char = ''; my $next_is_escaped = 0; my @lines; $zone =~ s/\r\n/\n/sg; $zone =~ s{[ \t]+}{ }g; # Collapse whitespace, turn TABs to spaces. # Trim comments, handle parentheses and some escape sequences. while (1) { my $c = substr( $zone, $x, 1 ); # If we're not in a comment then process parentheses, braces, comment # tags, and quotes. If not, just look for the newline. if ( !$in_comment ) { if ( !$next_is_escaped ) { if ( $c eq '"' ) { $in_quote = !$in_quote; } elsif ( $c eq '\\' ) { $next_is_escaped = 1; } elsif ( !$in_quote ) { if ( $c eq ';' ) { $in_comment = 1; substr( $zone, $x, 1 ) = ''; $x--; } elsif ( $c eq '(' ) { substr( $zone, $x, 1 ) = ' '; $in_concat++; } elsif ( ( $in_concat ) && ( $c eq ')' ) ) { substr( $zone, $x, 1 ) = ' '; $in_concat--; } } } else { $next_is_escaped = 0; } } elsif ( $c ne "\n" ) { substr( $zone, $x, 1 ) = ''; $x--; } if ( $c eq "\n" ) { $in_comment = 0; if ( $in_concat ) { substr( $zone, $x, 1 ) = ''; $x--; } } $x++; if ( $x >= length( $zone ) ) { last; } $last_char = $c; } return [ split( /\n/, $zone ) ]; } sub _massage { my ( $self, $record ) = @_; foreach my $r ( keys %$record ) { if ( !defined $record->{$r} ) { $record->{$r} = ''; next; } if ( exists $possibly_quoted{$r} ) { ( $record->{$r} =~ s/^"// ) && ( $record->{$r} =~ s/"$// ); } # We return email addresses just as they are in the file... for better # or worse (mostly for backwards compatability reasons). if ( $r ne 'email' && $r ne 'mbox' ) { while ( $record->{$r} =~ m/\\/g ) { my $pos = pos( $record->{$r} ); my $escape_char = substr( $record->{$r}, $pos, 1 ); if ( $escape_char =~ /\d/ ) { $escape_char = substr( $record->{$r}, $pos, 3 ); # Max oct value that converts to 255 in dec. if ( ( $escape_char =~ /^\d{3}$/ ) && ( $escape_char <= 377 ) ) { substr( $record->{$r}, $pos - 1, 4 ) = chr( oct( $escape_char ) ); } else { die "Invalid escape sequence\n"; } } else { # Not followed by a digit, so just remove the backslash. # Like BIND does... substr( $record->{$r}, $pos - 1, 2 ) = $escape_char; } pos( $record->{$r} ) = $pos; } } } if ( ( ( $record->{'class'} =~ $rr_class ) && ( $record->{'ttl'} =~ $rr_class ) ) || ( ( $record->{'class'} =~ $rr_ttl ) && ( $record->{'ttl'} =~ $rr_ttl ) ) ) { die "Invalid ttl/class values!\n"; }; if ( ( $record->{'class'} =~ $rr_ttl ) || ( $record->{'ttl'} =~ $rr_class ) ) { my $x = $record->{'class'}; $record->{'class'} = $record->{'ttl'}; $record->{'ttl'} = $x; } if ( $record->{'class'} ) { $record->{'class'} = uc $record->{'class'}; $dns_last_class{$self} = $record->{'class'}; } else { # This case should never happen, because we supply a default. #if ( !defined $dns_last_class{$self} ) { # die "No class defined!\n"; #} $record->{'class'} = $dns_last_class{$self}; } # This is silly, but we don't know what type of record we are massaging at # this point. We can detect an SOA record because it's the only type that # supplies this value, which is what we need to do here to properly set # the owner. if ( exists $record->{'minimumTTL'} ) { $dns_last_name{$self} = $record->{'origin'}; # In the case of an SOA record, we fall back to the minimumTTL value # when a TTL isn't otherwise specified. This is what BIND does. if ( $record->{'ttl'} ) { $record->{'ttl'} = $dns_last_ttl{$self} = uc( $record->{'ttl'} ); } else { if ( $dns_last_ttl{$self} ) { $record->{'ttl'} = $dns_last_ttl{$self}; } else { $record->{'ttl'} = $dns_last_ttl{$self} = uc( $record->{'minimumTTL'} ); } } if ( $record->{'origin'} eq '@' ) { # We encountered a @ SOA line without an origin directive above # it, so we will try and guess the origin. if ( !$dns_last_origin{$self} ) { if ( !$dns_id{$self}->{'Origin'} ) { die "Unknown origin\n"; } $dns_last_origin{$self} = $dns_id{$self}->{'Origin'}; } $record->{'ORIGIN'} = $dns_last_origin{$self}; } else { my $new_origin = $record->{'origin'}; # Similar to above, it's origins all the way down. Don't bother # tracking each separately, just collapse them all into the # current origin. if ( $new_origin =~ /\.$/ ) { # If no one has set an $ORIGIN before, we need to use the SOA # line to do it. if ( !$dns_last_origin{$self} ) { $dns_last_origin{$self} = $new_origin; } } # Now we have a valid ORIGIN for this SOA, so assign it. $record->{'ORIGIN'} = $dns_last_origin{$self}; } # Alright, make sure we know we found this origin. $dns_found_origins{$self}->{ $record->{'ORIGIN'} } = 1; # Not an SOA record. } else { # The silliness continues: only $GENERATE directives have a lhs, and # don't need a 'name'. if ( !exists $record->{'lhs'} ) { if ( $record->{'name'} ) { $dns_last_name{$self} = $record->{'name'}; } else { #TRACE( "Record has no name, using last name" ); if ( !$dns_last_name{$self} ) { die "No current owner name\n"; } $record->{'name'} = $dns_last_name{$self}; } } if ( !$dns_last_origin{$self} ) { die "Unknown origin\n"; } else { $record->{'ORIGIN'} = $dns_last_origin{$self}; } # Nothing special about TTL parsing for non-SOA records. if ( $record->{'ttl'} ) { $record->{'ttl'} = $dns_last_ttl{$self} = uc( $record->{'ttl'} ); } else { if ( !defined $dns_last_ttl{$self} ) { die "No ttl defined!\n"; } $record->{'ttl'} = $dns_last_ttl{$self}; } } #DUMP( "Record parsed", $record ); return $record; } sub _escape_chars { my $self = shift; my $clean_me = shift; local $" = '|'; foreach my $k ( keys( %{$clean_me} ) ) { $clean_me->{$k} =~ s/(@ESCAPABLE_CHARACTERS)/\\$1/g; } } sub TRACE { 0 && print @_, $/ } sub DUMP { 0 && require Data::Dumper && TRACE( shift, Data::Dumper::Dumper( @_ ) ) } 1; __END__ =head1 NAME DNS::ZoneParse - Parse and manipulate DNS Zone Files. =head1 SYNOPSIS use DNS::ZoneParse; my $zonefile = DNS::ZoneParse->new("/path/to/dns/zonefile.db", $origin); # Get a reference to the MX records my $mx = $zonefile->mx; # Change the first mailserver on the list $mx->[0] = { host => 'mail.localhost.com', priority => 10, name => '@' }; # update the serial number $zonefile->new_serial(); # write the new zone file to disk my $newzone; open($newzone, '>', '/path/to/dns/zonefile.db') or die "error"; print $newzone $zonefile->output(); close $newzone; =head1 INSTALLATION perl Makefile.PL make make test make install Win32 users substitute "make" with "nmake" or equivalent. nmake is available at http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/Nmake15.exe =head1 DESCRIPTION This module will parse a Zone File and put all the Resource Records (RRs) into an anonymous hash structure. Various record types are supported, see the L section for details. It could be useful for maintaining DNS zones, or for transferring DNS zones to other servers. If you want to generate an XML-friendly version of your zone files, it is easy to use XML::Simple with this module once you have parsed the zone file. DNS::ZoneParse scans the DNS zone file - removes comments and seperates the file into its constituent records. It then parses each record and stores the records internally. See below for information on the accessor methods. =head2 METHODS =over 4 =item new This creates the DNS::ZoneParse object and loads the zone file. Example: my $zonefile = DNS::ZoneParse->new("/path/to/zonefile.db"); You can also initialise the object with the contents of a file: my $zonefile = DNS::ZoneParse->new( \$zone_contents ); You can pass a second, optional parameter to the constructor to supply an C<$origin> if none can be found in the zone file. my $zonefile = DNS::ZoneParse->new( \$zone_contents, $origin ); You can pass a third, optional parameter to the constructor to supply a callback which will be called whenever an unparsable line is encountered in the zone file. See C for details on this parameter and how errors are handled when parsing zone files. If you plan to pass a on_unparseable_line callback but do not wish to specify an C<$origin>, pass 'undef' as the C<$origin> parameter. =item a(), cname(), srv(), mx(), ns(), ptr(), txt(), hinfo(), rp(), loc() These methods return references to the resource records. For example: my $mx = $zonefile->mx; Returns the mx records in an array reference. All records (except SOA) have the following properties: 'ttl', 'class', 'host', 'name', 'ORIGIN'. MX records also have a 'priority' property. SRV records also have 'priority', 'weight' and 'port' properties. TXT records also have a 'text' property representing the record's 'txt-data' descriptive text. HINFO records also have 'cpu' and 'os' properties. RP records also have 'mbox' and 'text' properties. LOC records also have 'd1', 'm1', 's1', 'NorS', 'd2', 'm2', 's2', 'EorW', 'alt', 'siz', 'hp', and 'vp', as per RFC 1876. If there are no records of a given type in the zone, the call will croak with an error message about an invalid method. (This is not an ideal behavior, but has been kept for backwards compatibility.) The 'ORIGIN' property is the fully-qualified origin of the record. See L for details on constructing a fully qualified domain name. Note: for SOA records, the 'ORIGIN' will match the 'origin' property when the SOA record is specified as fully qualified. =item soa() Returns a hash reference with the following properties: 'serial', 'origin', 'primary', 'refresh', 'retry', 'ttl', 'minimumTTL', 'email', 'expire', 'class', 'ORIGIN'. The 'ORIGIN' property is returned separate from 'origin' property, though the data may be the same. 'ORIGIN' represents the implicit origin for the record while 'origin' represents the origin specified on the SOA line in the file. If the 'origin' value is relative (that is, does not end with a '.'), the actual zone for which the SOA line applies must be computed by concatenating the 'origin' and 'ORIGIN' values. See L for details. If the 'origin' value is absolute, no computation is necessary and 'origin' is the same as 'ORIGIN'. =item generate() Returns an array of hashes representing $GENERATE directives present in the zone. Note, $GENERATE directives are BIND-specific additions. They are not expanded by DNS::ZoneParse, but users are able to access and modify these directives. The following properties are returned: 'range', 'lhs', 'ttl', 'class', 'type', 'rhs', 'ORIGIN'. See the BIND documentation for details on the syntax and usage of the $GENERATE directive. =item dump Returns a copy of the datastructute that stores all the resource records. This might be useful if you want to quickly transform the data into another format, such as XML. =item fqname Takes a single parameter, a hash reference containing a record. Returns the fully qualified name of this record, with a trailing '.'. In most cases this is as simple as concatenating the 'name' and 'ORIGIN' with a '.' unless 'name' is '@', in which case the fqname is simply the 'ORIGIN'. For SOA records, the same process is performed on the 'origin' instead of 'name'. Please note, fqname will not expand the right hand side of a record (ie, CNAME, SOA, MX, etc). The user must expand these values via the above method. =item ttl_to_int Takes a single parameter, a string representing a valid record TTL. Returns an integer representing the number of seconds the TTL represents. Note, this does not take into account any leap-years, leap-seconds, DST changes, etc. It is simply the count of the number of seconds in the specified period of time. =item new_serial C incriments the Zone serial number. It will generate a date-based serial number. Or you can pass a positive number to add to the current serial number. Examples: $zonefile->new_serial(); # generates a new serial number based on date: # YYYYmmddHH format, incriments current serial # by 1 if the new serial is still smaller $zonefile->new_serial(50); # adds 50 to the original serial number =item output C returns the new zone file output as a string. If you wish your output formatted differently, you can pass the output of C to your favourite templating module. =item last_parse_error_count Returns a count of the number of unparsable lines from the last time a zone file was parsed. If no zone file has been parsed yet, returns 0. If you want to be sure that a zone file was parsed completely and without error, the return value of this method should be checked after the constructor is called (or after a call to _parse). =item on_unparseable_line C is an accessor method for the callback used when an unparseable line is encountered while parsing a zone file. If not set, DNS::ZoneParse will C when an unparsable line is encountered, but will continue to parse the file. Each time an unparsable line is encountered, an internal counter is incrememnted. See C for details. The callback is passed four parameters, a reference to the DNS::ZoneParse object which is doing the parsing, the text of the line that is unable to be parsed, the text of the reason the line could not be parsed, and the text of the last successfully parsed line. If you want to abort parsing when an unparsable line is found, call C from within your callback and catch that die with an eval block around the DNS::ZoneParse constructor (or call to _parse). The method takes a single optional parameter, a code reference to the function that will be called when an unparsable line is reached. Returns a reference to the last callback. If passed an undefined value, a reference to the current callback is returned. If passed any other value, undef is returned. =back =head2 EXAMPLES This script will print the A records in a zone file, add a new A record for the name "new" and then return the zone file. use strict; use DNS::ZoneParse; my $zonefile = DNS::ZoneParse->new("/path/to/zonefile.db"); print "Current A Records\n"; my $a_records = $zonefile->a(); foreach my $record (@$a_records) { print "$record->{name} resolves at $record->{host}\n"; } push (@$a_records, { name => 'new', class => 'IN', host => '127.0.0.1', ttl => '' }); $zonefile->new_serial(); my $newfile = $zonefile->output(); This script will convert a DNS Zone file to an XML file using XML::Simple. use strict; use DNS::ZoneParse; use XML::Simple; my $zonefile = DNS::ZoneParse->new("/path/to/zonefile.db"); my $new_xml = XMLout($zonefile->dump, noattr => 1, suppressempty => 1, rootname => $zonefile->origin); =head1 CHANGES See F =head1 API The DNS::ZoneParse API may change in future versions. At present, the parsing is not as strict as it should be and support for C<$ORIGIN> and C<$TTL> is quite basic. It would also be nice to support the C statement. Furthermore, parsing large zone files with thousands of records can use lots of memory - some people have requested a callback interface. =head1 BUGS I can squash more bugs with your help. Please let me know if you spot something that doesn't work as expected. You can report bugs via the CPAN RT: L If possible, please provide a diff against F and F that demonstrates the bug(s). =head1 SEE ALSO Other modules with similar functionality: Net::DNS::ZoneParser, Net::DNS::ZoneFile, DNS::ZoneFile =head1 AUTHOR Simon Flack =head1 MAINTENANCE Maintainers: Mike Schilli (m@perlmeister.com), John Eaglesham (perl@8192.net). Bug queue: http://rt.cpan.org/Public/Dist/Display.html?Name=DNS-ZoneParse =head1 LICENSE DNS::ZoneParse is free software which you can redistribute and/or modify under the same terms as Perl itself. =cut PKq6[iSys/Hostname/FQDN.pmnuW+APKB[{wLog/Syslog/Fast/PP.pmnuW+APKB[^k  &Log/Syslog/Fast/XS.pmnuW+APKB[+5IID*Log/Syslog/Fast/Simple.pmnuW+APKB[x9Log/Syslog/Fast.pmnuW+APKB[9Wauto/Sys/Hostname/FQDN/FQDN.sonuW+APKB[l1  $auto/Sys/Hostname/FQDN/.packlistnuW+APKB[&%auto/Log/Syslog/Fast/Fast.bsnuW+APKB[Sc r%auto/Log/Syslog/Fast/.packlistnuW+APKB[ !{'auto/Log/Syslog/Fast/Fast.sonuW+APKB[#dd#auto/Log/Syslog/Constants/.packlistnuW+APKB[UQVUUauto/DNS/ZoneParse/.packlistnuW+APKT[bmll+Log/Syslog/Constants.pmnuW+APKT[x^^DNS/ZoneParse.pmnuW+APK|