|  line  | 
 true  | 
 false  | 
 branch  | 
 
| 
24
 | 
 2  | 
 0  | 
 if not defined &Parse::HTTP::UserAgent::DEBUG  | 
 
| 
49
 | 
 0  | 
 554  | 
 if ref $opt ne 'HASH'  | 
 
| 
53
 | 
 0  | 
 554  | 
 exists $opt->{'extended'} ? :  | 
 
| 
54
 | 
 0  | 
 554  | 
 if $opt->{'normalize'}  | 
 
| 
72
 | 
 0  | 
 1352  | 
 unless $s  | 
 
| 
84
 | 
 0  | 
 0  | 
 $type eq 'ARRAY' ? :  | 
 
| 
 | 
 0  | 
 0  | 
 !$type ? :  | 
 
| 
89
 | 
 0  | 
 0  | 
 if delete $mode{':all'}  | 
 
| 
92
 | 
 0  | 
 0  | 
 if $mode{'plus_to_space'}  | 
 
| 
93
 | 
 0  | 
 0  | 
 if $mode{'trim_spaces'}  | 
 
| 
99
 | 
 0  | 
 554  | 
 if $self->[2]  | 
 
| 
102
 | 
 554  | 
 0  | 
 unless $self->[23]  | 
 
| 
119
 | 
 680  | 
 2320  | 
 if ($token eq '(')  | 
 
| 
120
 | 
 656  | 
 24  | 
 if ++$depth == 1  | 
 
| 
123
 | 
 678  | 
 1642  | 
 if ($token eq ')')  | 
 
| 
124
 | 
 652  | 
 26  | 
 if --$depth == 0  | 
 
| 
132
 | 
 0  | 
 554  | 
 unless shift @parts  | 
 
| 
133
 | 
 36  | 
 518  | 
 unless shift @parts  | 
 
| 
134
 | 
 282  | 
 272  | 
 unless shift @parts  | 
 
| 
137
 | 
 518  | 
 36  | 
 $thing ? :  | 
 
| 
138
 | 
 272  | 
 282  | 
 if $extra  | 
 
| 
149
 | 
 150  | 
 62  | 
 if ($c and shift @{$t;} and !$e || $self->[3] and not $self->[1])  | 
 
| 
155
 | 
 120  | 
 30  | 
 if ($n eq 'MSIE' and index($m, ' ') == -1)  | 
 
| 
160
 | 
 26  | 
 408  | 
 if ($self->[3])  | 
 
| 
163
 | 
 12  | 
 98  | 
 index($_, 'rv:') != -1 ? :  | 
 
| 
 | 
 26  | 
 110  | 
 index($_, 'Trident/') != -1 ? :  | 
 
| 
 | 
 28  | 
 136  | 
 index($_, 'Windows') != -1 ? :  | 
 
| 
170
 | 
 12  | 
 14  | 
 if ($msie_matched == 3) { }  | 
 
| 
 | 
 2  | 
 12  | 
 elsif (not $self->[1] and $msie_matched == 2 and not $msie11{'version'}) { }  | 
 
| 
177
 | 
 2  | 
 6  | 
 if (index($junk, 'MSIE') != -1)  | 
 
| 
190
 | 
 2  | 
 186  | 
 $self->_is_suspicious_ff($e) ? :  | 
 
| 
 | 
 42  | 
 188  | 
 $self->_is_android($t, \@o) ? :  | 
 
| 
 | 
 16  | 
 230  | 
 $self->_is_chrome($e, \@o) ? :  | 
 
| 
 | 
 34  | 
 246  | 
 $self->_is_safari($e, \@o) ? :  | 
 
| 
 | 
 46  | 
 280  | 
 $self->_is_ff($e) ? :  | 
 
| 
 | 
 2  | 
 326  | 
 $self->_is_opera_ff($e) ? :  | 
 
| 
 | 
 14  | 
 328  | 
 $self->_is_opera_post($e) ? :  | 
 
| 
 | 
 34  | 
 342  | 
 $self->_is_opera_pre($m) ? :  | 
 
| 
 | 
 44  | 
 376  | 
 $self->[1] ? :  | 
 
| 
201
 | 
 234  | 
 186  | 
 if ($rv)  | 
 
| 
205
 | 
 232  | 
 2  | 
 if ($rvx)  | 
 
| 
211
 | 
 188  | 
 0  | 
 if $self->[0]  | 
 
| 
219
 | 
 538  | 
 16  | 
 if $self->[25]  | 
 
| 
224
 | 
 76  | 
 784  | 
 if ($self->_is_strength($e))  | 
 
| 
231
 | 
 400  | 
 154  | 
 @buf ? :  | 
 
| 
233
 | 
 258  | 
 296  | 
 if ($self->[21])  | 
 
| 
235
 | 
 256  | 
 2  | 
 defined $v ? :  | 
 
| 
238
 | 
 88  | 
 466  | 
 if ($self->[10])  | 
 
| 
244
 | 
 490  | 
 64  | 
 if ($self->[14])  | 
 
| 
249
 | 
 4890  | 
 18  | 
 if lc $robo ne lc $self->[11]  | 
 
| 
259
 | 
 50  | 
 138  | 
 if $self->_is_gecko and $self->_parse_gecko(@args)  | 
 
| 
260
 | 
 26  | 
 112  | 
 if $self->_is_netscape(@args) and $self->_parse_netscape(@args)  | 
 
| 
261
 | 
 2  | 
 110  | 
 if $self->_is_docomo(@args) and $self->_parse_docomo(@args)  | 
 
| 
262
 | 
 84  | 
 26  | 
 if $self->_is_generic(@args)  | 
 
| 
263
 | 
 4  | 
 22  | 
 if $self->_is_emacs(@args) and $self->_parse_emacs(@args)  | 
 
| 
264
 | 
 20  | 
 2  | 
 if $self->_is_moz_only(@args) and $self->_parse_moz_only(@args)  | 
 
| 
265
 | 
 2  | 
 0  | 
 if $self->_is_hotjava(@args) and $self->_parse_hotjava(@args)  | 
 
| 
280
 | 
 46  | 
 870  | 
 if ($v =~ s/(
                pre      |
                rel      |
                alpha    |
                beta     |
                \-stable |
                gold     |
                [ab]\d+  |
                a\-XXXX  |
                dev      |
                [+]
               )//gimsx)  | 
 
| 
297
 | 
 2  | 
 914  | 
 if ($v =~ s/(
                (?:[^0-9]+)? # usually dash
                rc           # nonsense
                [\-_.]?      # usually dash
                ([0-9])      # teh candidate revision
            )/.0.$2/imsx)  | 
 
| 
309
 | 
 2  | 
 914  | 
 if (my $rc = $v =~ tr/\-/./)  | 
 
| 
316
 | 
 2  | 
 914  | 
 if (my $rc = $v =~ tr/_/./)  | 
 
| 
323
 | 
 2  | 
 914  | 
 if ($v =~ s/([^0-9._v])/./gmsx)  | 
 
| 
327
 | 
 0  | 
 916  | 
 if ($v =~ s/([.]{2,})/./gmsx)  | 
 
| 
343
 | 
 0  | 
 2  | 
 if not $msg =~ / Integer\ overflow\ in\ version       /msx || $msg =~ / Version\ string .+? contains\ invalid\ data\;\ ignoring\:/msx  | 
 
| 
347
 | 
 112  | 
 804  | 
 if index($v, '.') == -1  | 
 
| 
349
 | 
 0  | 
 916  | 
 unless $check  | 
 
| 
354
 | 
 0  | 
 916  | 
 unless (eval {
	do {
	$rv = 'version'->new("$v")->numify;
1
}
})  |