| line |
true |
false |
branch |
|
14
|
34 |
0 |
exists &Errno::EPROTO ? : |
|
153
|
0 |
4 |
if (exists $arg{'Timeout'}) |
|
157
|
0 |
4 |
unless scalar %arg |
|
161
|
0 |
4 |
unless $sock->configure(\%arg) or not $sock->blocking |
|
173
|
0 |
4 |
if (exists $arg{'Timeout'}) |
|
180
|
4 |
0 |
$sock->command(%arg) ? : |
|
186
|
4 |
160 |
unless $CAN_CHANGE_SOCKET |
|
194
|
0 |
164 |
unless $self->_configure($args) |
|
200
|
97 |
67 |
exists $args->{'ProxyAddr'} ? : |
|
206
|
97 |
67 |
exists $args->{'ProxyPort'} ? : |
|
211
|
67 |
97 |
if (exists $args->{'Listen'}) { } |
|
|
97 |
0 |
elsif (${*$self;}->{'SOCKS'}{'ProxyAddr'} and ${*$self;}->{'SOCKS'}{'ProxyPort'}) { } |
|
222
|
164 |
0 |
if (not defined ${*$self;}->{'SOCKS'}{'TCP'}) { } |
|
|
0 |
0 |
elsif (not defined $args->{'Proto'}) { } |
|
232
|
8 |
156 |
unless ($self->SUPER::configure($args)) |
|
233
|
0 |
8 |
if ($IO::Socket::Socks::SOCKS_ERROR == undef) |
|
255
|
146 |
0 |
$args->{'SocksVersion'} == 4 || $args->{'SocksVersion'} == 5 || exists $args->{'Listen'} && ref $args->{'SocksVersion'} eq 'ARRAY' && _validate_multi_version($args->{'SocksVersion'}) ? : |
|
|
146 |
22 |
exists $args->{'SocksVersion'} ? : |
|
263
|
26 |
142 |
exists $args->{'AuthType'} ? : |
|
269
|
62 |
106 |
exists $args->{'RequireAuth'} ? : |
|
275
|
62 |
106 |
exists $args->{'UserAuth'} ? : |
|
281
|
142 |
0 |
${*$self;}->{'SOCKS'}{'AuthType'} eq 'none' ? : |
|
|
26 |
142 |
exists $args->{'Username'} ? : |
|
289
|
142 |
0 |
${*$self;}->{'SOCKS'}{'AuthType'} eq 'none' ? : |
|
|
26 |
142 |
exists $args->{'Password'} ? : |
|
297
|
0 |
168 |
exists $args->{'SocksDebug'} ? : |
|
303
|
26 |
142 |
exists $args->{'SocksResolve'} ? : |
|
308
|
153 |
15 |
unless ${*$self;}->{'SOCKS'}{'RequireAuth'} |
|
316
|
88 |
80 |
if not exists $args->{'Listen'} and ${*$self;}->{'SOCKS'}{'AuthType'} eq 'userpass' or exists $args->{'Listen'} and defined ${*$self;}->{'SOCKS'}{'UserAuth'} |
|
319
|
0 |
168 |
if (exists $args->{'BindAddr'} and exists $args->{'BindPort'}) { } |
|
|
0 |
168 |
elsif (exists $args->{'UdpAddr'} and exists $args->{'UdpPort'}) { } |
|
|
101 |
67 |
elsif (exists $args->{'ConnectAddr'} and exists $args->{'ConnectPort'}) { } |
|
325
|
0 |
0 |
if (${*$self;}->{'SOCKS'}{'Version'} == 4) |
|
336
|
0 |
0 |
exists $args->{'Blocking'} ? : |
|
|
0 |
0 |
unless ${*$self;}->{'SOCKS'}{'TCP'} = 'IO::Socket::Socks'->new('Timeout', $args->{'Timeout'}, 'Proto', 'tcp', 'PeerAddr', $args->{'ProxyAddr'}, 'PeerPort', $args->{'ProxyPort'}, exists $args->{'Blocking'} ? ('Blocking', $args->{'Blocking'}) : ()) |
|
355
|
0 |
97 |
unless defined $self |
|
360
|
0 |
97 |
defined ${*$self;}->{'SOCKS'}{'TCP'} ? : |
|
363
|
47 |
50 |
if ($! == 115 || $! == 11 and (${*$self;}->{'SOCKS'}{'TCP'} || $self)->blocking == 0) { } |
|
|
0 |
50 |
elsif (not $ok) { } |
|
378
|
0 |
97 |
unless ${*$self;}->{'SOCKS'}{'ProxyAddr'} and ${*$self;}->{'SOCKS'}{'ProxyPort'} |
|
387
|
39 |
62 |
if (${*$self;}->{'SOCKS'}{'Version'} == 4) { } |
|
391
|
0 |
39 |
${*$self;}->{'SOCKS'}{'Bind'} ? : |
|
403
|
0 |
62 |
${*$self;}->{'SOCKS'}{'TCP'} ? : |
|
|
0 |
62 |
${*$self;}->{'SOCKS'}{'Bind'} ? : |
|
414
|
47 |
54 |
if (delete ${*$self;}->{'SOCKS'}{'_in_progress'}) { } |
|
415
|
47 |
0 |
if ($self->isa('IO::Socket::IP')) |
|
427
|
8 |
46 |
unless defined $self->_run_queue |
|
438
|
47 |
0 |
if $sock->SUPER::connect |
|
439
|
0 |
0 |
if ($! == 115 or $! == 11) |
|
459
|
13 |
702 |
unless (defined $retval) |
|
465
|
205 |
497 |
if $retval == -1 |
|
467
|
0 |
497 |
if ($elt->[5]) |
|
473
|
157 |
236 |
if (defined $retval and not @{${*$self;}->{'SOCKS'}{'queue'};}) |
|
475
|
0 |
157 |
$IO::Socket::Socks::SOCKS_ERROR ? : |
|
490
|
0 |
106 |
if ${*$self;}->{'SOCKS'}{'Debug'} |
|
495
|
0 |
106 |
defined ${*$self;}->{'SOCKS'}{'TCP'} ? : |
|
509
|
162 |
156 |
if (${*$self;}->{'SOCKS'}{'AuthMethods'}[$method] == 1) |
|
516
|
0 |
106 |
unless $reply = $sock->_socks_send(pack('CCa*', 5, $nmethods, $methods), ++$sends) |
|
519
|
0 |
106 |
if ($debug and not $self->_debugged(++$debugs)) |
|
537
|
47 |
59 |
unless $reply = $sock->_socks_read(2, ++$reads) |
|
542
|
0 |
59 |
if ($debug and not $self->_debugged(++$debugs)) |
|
550
|
0 |
59 |
if ($auth_method == 255) |
|
561
|
26 |
36 |
if (${*$self;}->{'SOCKS'}{'queue_results'}{'_socks5_connect'} != 0) |
|
572
|
0 |
36 |
if ${*$self;}->{'SOCKS'}{'Debug'} |
|
577
|
0 |
36 |
defined ${*$self;}->{'SOCKS'}{'TCP'} ? : |
|
593
|
0 |
36 |
unless $reply = $sock->_socks_send(pack("CCa${ulen}Ca*", 1, $ulen, $uname, $plen, $passwd), ++$sends) |
|
596
|
0 |
36 |
if ($debug and not $self->_debugged(++$debugs)) |
|
616
|
10 |
26 |
unless $reply = $sock->_socks_read(2, ++$reads) |
|
621
|
0 |
26 |
if ($debug and not $self->_debugged(++$debugs)) |
|
629
|
13 |
13 |
if ($status != 0) |
|
641
|
0 |
49 |
if ${*$self;}->{'SOCKS'}{'Debug'} |
|
643
|
6 |
43 |
defined ${*$self;}->{'SOCKS'}{'Resolve'} ? : |
|
647
|
0 |
49 |
defined ${*$self;}->{'SOCKS'}{'TCP'} ? : |
|
659
|
49 |
0 |
$resolve ? : |
|
|
0 |
49 |
unless my($atyp, $dstaddr) = $resolve ? (3, ${*$self;}->{'SOCKS'}{'CmdAddr'}) : _resolve(${*$self;}->{'SOCKS'}{'CmdAddr'}) |
|
660
|
49 |
0 |
if $resolve |
|
663
|
49 |
0 |
defined $hlen ? : |
|
|
0 |
49 |
unless $reply = $sock->_socks_send(pack('C4', 5, $command, 0, $atyp) . (defined $hlen ? pack('C', $hlen) : '') . $dstaddr . $dstport, ++$sends) |
|
666
|
0 |
49 |
if ($debug and not $self->_debugged(++$debugs)) |
|
673
|
0 |
0 |
if defined $hlen |
|
677
|
0 |
0 |
$resolve ? : |
|
686
|
0 |
73 |
if ${*$self;}->{'SOCKS'}{'Debug'} |
|
691
|
0 |
73 |
defined ${*$self;}->{'SOCKS'}{'TCP'} ? : |
|
703
|
40 |
33 |
unless $reply = $sock->_socks_read(4, ++$reads) |
|
708
|
0 |
33 |
if ($debug) |
|
719
|
0 |
33 |
if ($atyp == 3) { } |
|
|
33 |
0 |
elsif ($atyp == 1) { } |
|
|
0 |
0 |
elsif ($atyp == 4) { } |
|
720
|
0 |
0 |
unless length($reply = $sock->_socks_read(1, ++$reads)) |
|
724
|
0 |
0 |
unless $bndaddr = $sock->_socks_read($hlen, ++$reads) |
|
727
|
0 |
0 |
if ($debug) |
|
732
|
0 |
33 |
unless $bndaddr = $sock->_socks_read(4, ++$reads) |
|
736
|
0 |
0 |
unless $bndaddr = $sock->_socks_read(16, ++$reads) |
|
745
|
0 |
33 |
unless $reply = $sock->_socks_read(2, ++$reads) |
|
753
|
0 |
33 |
if ($debug and not $self->_debugged(++$debugs)) |
|
762
|
0 |
33 |
if ($rep != 0) |
|
764
|
0 |
0 |
unless (exists $IO::Socket::Socks::CODES{'REPLY'}{$rep}) |
|
780
|
0 |
36 |
if ${*$self;}->{'SOCKS'}{'Debug'} |
|
782
|
14 |
22 |
defined ${*$self;}->{'SOCKS'}{'Resolve'} ? : |
|
794
|
14 |
22 |
$resolve ? : |
|
|
0 |
36 |
unless my $dstaddr = $resolve ? inet_aton('0.0.0.1') : inet_aton(${*$self;}->{'SOCKS'}{'CmdAddr'}) |
|
798
|
14 |
22 |
if ($resolve) |
|
803
|
0 |
36 |
unless $reply = $self->_socks_send(pack('CC', 4, $command) . $dstport . $dstaddr . $userid . "\000" . $dsthost, ++$sends) |
|
806
|
0 |
36 |
if ($debug and not $self->_debugged(++$debugs)) |
|
811
|
0 |
0 |
length $dstaddr == 4 ? : |
|
815
|
0 |
0 |
if ($dsthost) |
|
829
|
0 |
67 |
if ${*$self;}->{'SOCKS'}{'Debug'} |
|
842
|
38 |
29 |
unless $reply = $self->_socks_read(8, ++$reads) |
|
852
|
0 |
29 |
if ($debug and not $self->_debugged(++$debugs)) |
|
864
|
0 |
29 |
if ($rep != 90) |
|
866
|
0 |
0 |
unless (exists $IO::Socket::Socks::CODES{'REPLY'}{$rep}) |
|
879
|
0 |
49 |
unless defined $self |
|
882
|
49 |
0 |
if (${*$self;}->{'SOCKS'}{'Listen'}) { } |
|
885
|
0 |
49 |
unless ($client) |
|
886
|
0 |
0 |
if ($! == 11 or $! == 11) { } |
|
900
|
10 |
0 |
@{${*$self;}->{'SOCKS'}{'Version'};} > 1 ? : |
|
|
10 |
39 |
ref ${*$self;}->{'SOCKS'}{'Version'} ? : |
|
911
|
10 |
39 |
if (ref $ver) { } |
|
|
17 |
22 |
elsif ($ver == 4) { } |
|
926
|
0 |
49 |
unless defined $client->_run_queue |
|
934
|
0 |
0 |
if ({*$self}->{'SOCKS'}{'Version'} == 4) { } |
|
941
|
0 |
0 |
unless defined $self->_run_queue |
|
953
|
10 |
10 |
unless $request = $self->_socks_read(1, 0) |
|
957
|
4 |
6 |
if ($ver == 4) { } |
|
|
6 |
0 |
elsif ($ver == 5) { } |
|
979
|
0 |
45 |
if ${*$self;}->{'SOCKS'}{'Debug'} |
|
992
|
6 |
39 |
$ver ? : |
|
|
12 |
33 |
unless $request = $self->_socks_read($ver ? 1 : 2, ++$reads) |
|
995
|
27 |
6 |
unless ($ver) |
|
1000
|
5 |
28 |
unless $request = $self->_socks_read($nmethods, ++$reads) |
|
1005
|
0 |
28 |
if ($debug and not $self->_debugged(++$debugs)) |
|
1014
|
0 |
28 |
if ($ver != 5) |
|
1020
|
0 |
28 |
if ($nmethods == 0) |
|
1029
|
28 |
2 |
if (${*$self;}->{'SOCKS'}{'AuthMethods'}[$method] == 1) |
|
1035
|
0 |
28 |
unless (defined $authmech) |
|
1048
|
0 |
28 |
unless $request = $self->_socks_send(pack('CC', 5, $authmech), ++$sends) |
|
1051
|
0 |
28 |
if ($debug and not $self->_debugged(++$debugs)) |
|
1059
|
0 |
28 |
if ($authmech == 255) |
|
1071
|
2 |
26 |
if (${*$self;}->{'SOCKS'}{'queue_results'}{'_socks5_accept'} == 2) |
|
1081
|
0 |
2 |
if ${*$self;}->{'SOCKS'}{'Debug'} |
|
1094
|
0 |
2 |
unless $request = $self->_socks_read(2, ++$reads) |
|
1098
|
0 |
2 |
unless $request = $self->_socks_read($ulen + 1, ++$reads) |
|
1104
|
0 |
2 |
unless $passwd = $self->_socks_read($plen, ++$reads) |
|
1107
|
0 |
2 |
if ($debug and not $self->_debugged(++$debugs)) |
|
1119
|
2 |
0 |
if (defined ${*$self;}->{'SOCKS'}{'UserAuth'}) |
|
1132
|
2 |
0 |
$status ? : |
|
1133
|
0 |
2 |
unless $request = $self->_socks_send(pack('CC', 1, $status), ++$sends) |
|
1136
|
0 |
2 |
if ($debug and not $self->_debugged(++$debugs)) |
|
1144
|
0 |
2 |
if ($status != 0) |
|
1155
|
0 |
44 |
if ${*$self;}->{'SOCKS'}{'Debug'} |
|
1170
|
16 |
28 |
unless $request = $self->_socks_read(4, ++$reads) |
|
1174
|
0 |
28 |
if ($debug and not $self->_debugged(++$debugs)) |
|
1184
|
28 |
0 |
if ($atyp == 3) { } |
|
|
0 |
0 |
elsif ($atyp == 1) { } |
|
|
0 |
0 |
elsif ($atyp == 4) { } |
|
1185
|
0 |
28 |
unless length($request = $self->_socks_read(1, ++$reads)) |
|
1189
|
0 |
28 |
unless $dstaddr = $self->_socks_read($hlen, ++$reads) |
|
1192
|
0 |
28 |
if ($debug and not $self->_debugged(++$debugs)) |
|
1197
|
0 |
0 |
unless $request = $self->_socks_read(4, ++$reads) |
|
1200
|
0 |
0 |
length $request == 4 ? : |
|
1203
|
0 |
0 |
unless $request = $self->_socks_read(16, ++$reads) |
|
1206
|
0 |
0 |
length $request == 16 ? : |
|
1220
|
0 |
28 |
unless $request = $self->_socks_read(2, ++$reads) |
|
1225
|
0 |
28 |
if ($debug and not $self->_debugged(++$debugs)) |
|
1243
|
0 |
26 |
if ${*$self;}->{'SOCKS'}{'Debug'} |
|
1244
|
6 |
20 |
defined ${*$self;}->{'SOCKS'}{'Resolve'} ? : |
|
1247
|
0 |
26 |
unless (defined $reply and defined $host and defined $port) |
|
1260
|
26 |
0 |
$resolve ? : |
|
|
0 |
26 |
unless my($atyp, $bndaddr) = $resolve ? _resolve($host) : (3, $host) |
|
1262
|
26 |
0 |
$resolve ? : |
|
1264
|
26 |
0 |
$resolve ? : |
|
|
0 |
26 |
unless $rc = $self->_socks_send(pack('CCCC', 5, $reply, 0, $atyp) . ($resolve ? '' : pack('C', $hlen)) . $bndaddr . pack('n', $port), ++$sends) |
|
1267
|
0 |
26 |
if ($debug and not $self->_debugged(++$debugs)) |
|
1274
|
0 |
0 |
unless $resolve |
|
1275
|
0 |
0 |
$resolve ? : |
|
1287
|
0 |
48 |
if ${*$self;}->{'SOCKS'}{'Debug'} |
|
1288
|
44 |
4 |
defined ${*$self;}->{'SOCKS'}{'Resolve'} ? : |
|
1303
|
4 |
44 |
$ver ? : |
|
|
17 |
31 |
unless $request = $self->_socks_read($ver ? 7 : 8, ++$reads) |
|
1306
|
27 |
4 |
unless ($ver) |
|
1313
|
31 |
0 |
length $request == 4 ? : |
|
1319
|
3 |
28 |
unless length($c = $self->_socks_read(1, ++$reads)) |
|
1322
|
0 |
28 |
if ($c ne "\000") { } |
|
1330
|
0 |
28 |
if ($debug and not $self->_debugged(++$debugs)) |
|
1343
|
24 |
4 |
if ($resolve and $dstaddr =~ /^0\.0\.0\.[1-9]/) |
|
1348
|
7 |
198 |
unless length($c = $self->_socks_read(1, ++$reads)) |
|
1351
|
181 |
17 |
if ($c ne "\000") { } |
|
1359
|
0 |
17 |
if ($debug and not $self->_debugged(++$debugs)) |
|
1367
|
0 |
21 |
if ($debug and not $self->_debugged(++$debugs)) |
|
1371
|
4 |
17 |
if (defined ${*$self;}->{'SOCKS'}{'UserAuth'}) |
|
1372
|
0 |
4 |
unless (&{${*$self;}->{'SOCKS'}{'UserAuth'};}($userid)) |
|
1385
|
0 |
21 |
if ($ver != 4) |
|
1401
|
0 |
20 |
if ${*$self;}->{'SOCKS'}{'Debug'} |
|
1404
|
0 |
20 |
unless (defined $reply and defined $host and defined $port) |
|
1417
|
0 |
20 |
unless my $bndaddr = inet_aton($host) |
|
1420
|
0 |
20 |
unless $rc = $self->_socks_send(pack('CCna*', 0, $reply, $port, $bndaddr), ++$sends) |
|
1423
|
0 |
20 |
if ($debug and not $self->_debugged(++$debugs)) |
|
1424
|
0 |
0 |
length $bndaddr == 4 ? : |
|
1439
|
22 |
4 |
if (not exists ${*$self;}->{'SOCKS'}{'RequireAuth'}) { } |
|
1453
|
4 |
0 |
if ($self->_connect) |
|
1466
|
20 |
26 |
if (${*$self;}->{'SOCKS'}{'Version'} == 4) { } |
|
1485
|
0 |
0 |
unless (defined ${*$self;}->{'SOCKS'}{'TCP'}) |
|
1490
|
0 |
0 |
if ${*$self;}->{'SOCKS'}{'Debug'} |
|
1491
|
0 |
0 |
defined ${*$self;}->{'SOCKS'}{'Resolve'} ? : |
|
1493
|
0 |
0 |
unless defined $peer |
|
1497
|
0 |
0 |
if (ref $peer eq 'ARRAY') { } |
|
1503
|
0 |
0 |
unless (($dstport, $dstaddr, $dstaddr_type) = eval {
do {
unpack_sockaddr_in($peer), 1
}
}) |
|
1509
|
0 |
0 |
if ($sndaddr eq '0.0.0.0' and $sndaddr_type == 1 or $sndaddr eq '::' and $sndaddr_type == 4) |
|
1513
|
0 |
0 |
if ($sndaddr_type == 3) { } |
|
1514
|
0 |
0 |
unless ($sndaddr_type, $sndaddr) = _resolve($sndaddr) |
|
1521
|
0 |
0 |
$sndaddr_type == 1 ? : |
|
1524
|
0 |
0 |
if ($dstaddr_type == 3) |
|
1525
|
0 |
0 |
if ($resolve) { } |
|
1529
|
0 |
0 |
unless ($dstaddr_type, $dstaddr) = _resolve($dstaddr) |
|
1534
|
0 |
0 |
$debug ? : |
|
1542
|
0 |
0 |
defined $hlen ? : |
|
1544
|
0 |
0 |
if ($debug) |
|
1550
|
0 |
0 |
if defined $hlen |
|
1551
|
0 |
0 |
defined $hlen ? : |
|
1565
|
0 |
0 |
unless (defined ${*$self;}->{'SOCKS'}{'TCP'}) |
|
1569
|
0 |
0 |
if ${*$self;}->{'SOCKS'}{'Debug'} |
|
1571
|
0 |
0 |
unless defined $self->SUPER::recv($_[0], $_[1] + 262, $_[2]) |
|
1586
|
0 |
0 |
if ($debug) |
|
1595
|
0 |
0 |
if ($atyp == 3) { } |
|
|
0 |
0 |
elsif ($atyp == 1) { } |
|
|
0 |
0 |
elsif ($atyp == 4) { } |
|
1600
|
0 |
0 |
if ($debug) |
|
1621
|
0 |
0 |
if ($debug) |
|
1630
|
0 |
0 |
if $atyp == 1 |
|
1631
|
0 |
0 |
if $atyp == 4 |
|
1648
|
0 |
325 |
do {
*$self
}->{'io_socket_timeout'} ? : |
|
1650
|
193 |
0 |
unless ($blocking or do {
*$self
}->{'io_socket_timeout'}) |
|
1651
|
57 |
136 |
if (${*$self;}->{'SOCKS'}{'queue'}[0][4] >= $numb) |
|
1655
|
0 |
136 |
if (defined ${*$self;}->{'SOCKS'}{'queue'}[0][2]) |
|
1661
|
136 |
0 |
if (defined $rc) { } |
|
|
0 |
0 |
elsif ($! == 11 or $! == 11) { } |
|
1662
|
136 |
0 |
if ($rc > 0) { } |
|
1690
|
0 |
132 |
if (do {
*$self
}->{'io_socket_timeout'} and time - $start >= do {
*$self
}->{'io_socket_timeout'}) |
|
1695
|
0 |
132 |
unless ($selector->can_write(1)) |
|
1700
|
132 |
0 |
if ($rc > 0) { } |
|
1703
|
132 |
0 |
if (length $data == 0) |
|
1708
|
0 |
0 |
unless defined $rc |
|
1713
|
132 |
0 |
if $blocking |
|
1729
|
652 |
0 |
unless ($blocking or do {
*$self
}->{'io_socket_timeout'}) |
|
1730
|
63 |
589 |
if (defined ${*$self;}->{'SOCKS'}{'queue'}[0][3][$numb]) |
|
1734
|
5 |
584 |
if (defined ${*$self;}->{'SOCKS'}{'queue'}[0][2]) |
|
1741
|
387 |
205 |
if (defined $rc) { } |
|
|
205 |
0 |
elsif ($! == 11 or $! == 11) { } |
|
1742
|
387 |
0 |
if ($rc > 0) { } |
|
1751
|
5 |
200 |
if (length $data) |
|
1773
|
0 |
239 |
if (do {
*$self
}->{'io_socket_timeout'} and time - $start >= do {
*$self
}->{'io_socket_timeout'}) |
|
1778
|
24 |
215 |
unless ($selector->can_read(1)) |
|
1783
|
215 |
0 |
if (defined $rc and $rc > 0) { } |
|
1788
|
0 |
0 |
unless defined $rc |
|
1800
|
0 |
0 |
if (${*$self;}->{'SOCKS'}{'queue'}[0][6] >= $debugs) |
|
1809
|
0 |
205 |
if (not @_ or defined $_[0]) |
|
1810
|
0 |
0 |
if $IO::Socket::Socks::SOCKS_ERROR == undef |
|
1820
|
0 |
1 |
if (@$multi_ver == 1) |
|
1824
|
1 |
0 |
if (@$multi_ver == 2) |
|
1837
|
0 |
26 |
if $err |
|
1840
|
26 |
0 |
if ($r->{'family'} == 2) |
|
1851
|
19 |
0 |
if $atype == 1 |
|
1852
|
0 |
0 |
if $atype == 4 |
|
1884
|
266 |
1410 |
defined $num ? : |
|
1901
|
8 |
186 |
unless (defined $num) |
|
1948
|
0 |
34 |
unless eval "use $class; 1" |
|
2000
|
0 |
0 |
$row1_len > $row2_len ? : |
|
2019
|
0 |
0 |
$row1_len > $row2_len ? : |