| line | !l | l&&!r | l&&r | condition | 
 
| 492 | 0 | 0 | 0 | exists $options->{'enable_first_run'} and $options->{'enable_first_run'} | 
 
| 519 | 0 | 0 | 0 | exists $options->{'default_browser_check'} and $options->{'default_browser_check'} | 
 
| 556 | 0 | 0 | 0 | $^O =~ /mswin/i && $program =~ /[\s|<>&]/ | 
 
| 813 | 0 | 0 | 0 | $lines-- and not defined $devtools_url | 
 
|  | 0 | 0 | 0 | $lines-- and not defined $devtools_url and not eof $fh | 
 
| 914 | 1 | 0 | 0 | $options{'tab'} and $options{'tab'} eq "current" | 
 
| 942 | 1 | 0 | 0 | $options{'driver'} and $options{'driver_transport'} | 
 
| 1117 | 0 | 0 | 0 | $self->{'kill_pid'} and my $pid = delete $self->{'pid'} | 
 
| 1271 | 1 | 0 | 0 | &blessed($self) and $self->target | 
 
| 1440 | 0 | 0 | 0 | $targetInfo->{'params'}{'targetInfo'}{'type'} eq "page" and not $known_targets{$id} | 
 
| 1973 | 0 | 1 | 0 | $_[0]{'autoclose'} and $_[0]->target | 
 
|  | 1 | 0 | 0 | $_[0]{'autoclose'} and $_[0]->target and $_[0]->tab | 
 
| 1995 | 0 | 1 | 0 | $_[0]{'autoclose'} and $_[0]{'kill_pid'} | 
 
| 2001 | 0 | 0 | 0 | $pid and kill 0, $pid | 
 
| 2017 | 0 | 0 | 0 | $res != -1 and $res != $pid | 
 
| 2246 | 0 | 0 | 0 | $ev->{'method'} eq 'Page.navigatedWithinDocument' && $requestId && (!exists $ev->{'params'}{'requestId'} || $ev->{'params'}{'requestId'} eq $requestId) | 
 
| 2248 | 0 | 0 | 0 | $ev->{'method'} eq 'Page.frameClearedScheduledNavigation' && $ev->{'params'}{'frameId'} eq $frameId | 
 
| 2261 | 0 | 0 | 0 | $ev->{'method'} eq 'Network.loadingFailed' && $requestId && $ev->{'params'}{'requestId'} eq $requestId | 
 
| 2266 | 0 | 0 | 0 | $ev->{'method'} eq 'Network.responseReceived' && $requestId && $ev->{'params'}{'requestId'} eq $requestId && exists $ev->{'params'}{'response'}{'headers'}{'Content-Disposition'} && $ev->{'params'}{'response'}{'headers'}{'Content-Disposition'} =~ /^attachment\b/ | 
 
| 2298 | 0 | 0 | 0 | $ev->{'method'} eq "Page.frameResized" and 0 + keys(%{$$ev{"params"};}) == 0 | 
 
| 2371 | 0 | 0 | 0 | not $options{'intrapage'} and $navigated | 
 
| 2608 | 0 | 0 | 0 | defined $frameId and $_->{'method'} eq "Network.requestWillBeSent" | 
 
|  | 0 | 0 | 0 | defined $frameId and $_->{'method'} eq "Network.requestWillBeSent" and $_->{'params'}{'frameId'} eq $frameId | 
 
| 2611 | 0 | 0 | 0 | $url and $_->{'params'}{'request'}{'url'} eq $url | 
 
| 2631 | 0 | 0 | 0 | exists $_->{'params'}{'requestId'} and $_->{'params'}{'requestId'} eq $requestId | 
 
|  | 0 | 0 | 0 | not exists $_->{'params'}{'requestId'} and $this_frame eq $frameId | 
 
| 2647 | 0 | 0 | 0 | $_->{'method'} eq "Network.requestWillBeSent" and $rfi eq $fi | 
 
| 2666 | 0 | 0 | 0 | $events{'Page.frameNavigated'} && $events{'Page.frameNavigated'}{'params'}{'frame'}{'url'} eq 'about:blank' | 
 
| 2667 | 0 | 0 | 0 | $res = $events{'Page.frameNavigated'} and $res->{'params'}{'frame'}{'unreachableUrl'} | 
 
|  | 0 | 0 | 0 | $res = $events{'Page.frameNavigated'} and $res->{'params'}{'frame'}{'url'} =~ m[^file://] | 
 
|  | 0 | 0 | 0 | $res = $events{'Page.frameClearedScheduledNavigation'} and $res->{'params'}{'frameId'} eq $frameId | 
 
|  | 0 | 0 | 0 | $res = $events{'Page.frameStoppedLoading'} and $res->{'params'}{'frameId'} eq $frameId | 
 
| 3033 | 0 | 0 | 0 | $self->status and not $self->status =~ /^2/ | 
 
|  | 0 | 0 | 0 | $self->status and not $self->status =~ /^2/ and $self->status != 0 | 
 
| 3492 | 0 | 0 | 0 | not $ct and my $r = $self->response | 
 
| 3517 | 0 | 0 | 0 | defined $self->ct && $self->ct eq 'text/html' | 
 
| 3729 | 0 | 0 | 0 | defined $p->{'url'} and not $link->url eq $p->{'url'} | 
 
| 3730 | 0 | 0 | 0 | defined $p->{'url_regex'} and not $link->url =~ /$p->{'url_regex'}/ | 
 
| 3731 | 0 | 0 | 0 | defined $p->{'url_abs'} and not $link->url_abs eq $p->{'url_abs'} | 
 
| 3732 | 0 | 0 | 0 | defined $p->{'url_abs_regex'} and not $link->url_abs =~ /$p->{'url_abs_regex'}/ | 
 
| 3733 | 0 | 0 | 0 | defined $link->text && $link->text eq $p->{'text'} | 
 
|  | 0 | 0 | 0 | defined $p->{'text'} and not defined $link->text && $link->text eq $p->{'text'} | 
 
| 3734 | 0 | 0 | 0 | defined $link->text && $link->text =~ /$p->{'text_regex'}/ | 
 
|  | 0 | 0 | 0 | defined $p->{'text_regex'} and not defined $link->text && $link->text =~ /$p->{'text_regex'}/ | 
 
| 3735 | 0 | 0 | 0 | defined $link->name && $link->name eq $p->{'name'} | 
 
|  | 0 | 0 | 0 | defined $p->{'name'} and not defined $link->name && $link->name eq $p->{'name'} | 
 
| 3736 | 0 | 0 | 0 | defined $link->name && $link->name =~ /$p->{'name_regex'}/ | 
 
|  | 0 | 0 | 0 | defined $p->{'name_regex'} and not defined $link->name && $link->name =~ /$p->{'name_regex'}/ | 
 
| 3737 | 0 | 0 | 0 | $link->tag && $link->tag eq $p->{'tag'} | 
 
|  | 0 | 0 | 0 | defined $p->{'tag'} and not $link->tag && $link->tag eq $p->{'tag'} | 
 
| 3738 | 0 | 0 | 0 | $link->tag && $link->tag =~ /$p->{'tag_regex'}/ | 
 
|  | 0 | 0 | 0 | defined $p->{'tag_regex'} and not $link->tag && $link->tag =~ /$p->{'tag_regex'}/ | 
 
| 3740 | 0 | 0 | 0 | $link->attrs->{'id'} && $link->attrs->{'id'} eq $p->{'id'} | 
 
|  | 0 | 0 | 0 | defined $p->{'id'} and not $link->attrs->{'id'} && $link->attrs->{'id'} eq $p->{'id'} | 
 
| 3741 | 0 | 0 | 0 | $link->attrs->{'id'} && $link->attrs->{'id'} =~ /$p->{'id_regex'}/ | 
 
|  | 0 | 0 | 0 | defined $p->{'id_regex'} and not $link->attrs->{'id'} && $link->attrs->{'id'} =~ /$p->{'id_regex'}/ | 
 
| 3742 | 0 | 0 | 0 | $link->attrs->{'class'} && $link->attrs->{'class'} eq $p->{'class'} | 
 
|  | 0 | 0 | 0 | defined $p->{'class'} and not $link->attrs->{'class'} && $link->attrs->{'class'} eq $p->{'class'} | 
 
| 3743 | 0 | 0 | 0 | $link->attrs->{'class'} && $link->attrs->{'class'} =~ /$p->{'class_regex'}/ | 
 
|  | 0 | 0 | 0 | defined $p->{'class_regex'} and not $link->attrs->{'class'} && $link->attrs->{'class'} =~ /$p->{'class_regex'}/ | 
 
| 3765 | 0 | 0 | 0 | $single and exists $opts{'n'} | 
 
| 3984 | 0 | 0 | 0 | "html" ne $tag and "" ne $tag | 
 
| 4130 | 0 | 0 | 0 | $nodeGeneration != $s->{'_currentNodeGeneration'} && $retries-- | 
 
| 4322 | 0 | 0 | 0 | $inSubTree and exists $foundNodes{$node->{'nodeId'}} | 
 
| 4374 | 0 | 0 | 0 | defined wantarray and not wantarray | 
 
| 4421 | 0 | 0 | 0 | not $zero_allowed and @res == 0 | 
 
| 4424 | 0 | 0 | 0 | not $two_allowed and @res > 1 | 
 
| 4530 | 0 | 0 | 0 | ref $name and &blessed($name) | 
 
|  | 0 | 0 | 0 | ref $name and &blessed($name) and $name->isa("WWW::Mechanize::Chrome::Node") | 
 
| 5047 | 0 | 0 | 0 | defined $index and not $index =~ /^\d+$/ | 
 
| 5118 | 0 | 0 | 0 | defined $pre and not ref $pre | 
 
| 5121 | 0 | 0 | 0 | defined $post and not ref $post | 
 
| 5135 | 0 | 0 | 0 | lc $tag eq "input" and $obj->get_attribute("type", "live", 1) eq "radio" | 
 
| 5234 | 0 | 0 | 0 | defined $pre and not ref $pre | 
 
| 5237 | 0 | 0 | 0 | defined $post and not ref $post | 
 
| 5426 | 0 | 0 | 0 | ref $name and &blessed($name) | 
 
| 5831 | 0 | 0 | 0 | $v and !$timeout || time < $timeout_after | 
 
| 5844 | 0 | 0 | 0 | $v and $timeout | 
 
|  | 0 | 0 | 0 | $v and $timeout and time >= $timeout_after | 
 
| 6463 | 0 | 0 | 0 | @{$_->{'trace'};} && $_->{'trace'}[-1]{'function'} | 
| line | l | !l | condition | 
 
| 438 | 0 | 0 | $options->{'launch_arg'} ||= [] | 
 
| 451 | 0 | 0 | $options->{'port'} //= 9222 | 
 
| 454 | 0 | 0 | $options->{'port'} ||= 0 | 
 
| 841 | 0 | 0 | $self->_generation || 0 | 
 
| 870 | 1 | 0 | $t->new->type || 'websocket' | 
 
| 892 | 0 | 1 | $options{'startup_timeout'} //= 20 | 
 
| 894 | 0 | 1 | $options{'js_events'} ||= [] | 
 
| 902 | 0 | 1 | $options{'host'} || '127.0.0.1' | 
 
| 905 | 0 | 1 | $options{'extra_headers'} ||= {} | 
 
| 908 | 0 | 0 | $options{'tab'} ||= undef | 
 
| 910 | 0 | 1 | $options{'tab'} ||= 0 | 
 
| 944 | 0 | 0 | $options{'port'} //= 9222 | 
 
| 1506 | 0 | 0 | $options{'latency'} //= -1 | 
 
|  | 0 | 0 | $options{'downloadThroughput'} //= -1 | 
 
|  | 0 | 0 | $options{'uploadThroughput'} //= -1 | 
 
| 1745 | 0 | 0 | $_->{'type'} || '' | 
 
| 2170 | 0 | 0 | $frameId || '-' | 
 
| 2185 | 0 | 0 | $frameId || '-' | 
 
| 2216 | 0 | 0 | $frameId || '-' | 
 
| 2544 | 0 | 0 | $res->{'params'}{'response'}{'status'} || 200 | 
 
| 2566 | 0 | 0 | $ct ||= "text/plain" | 
 
| 2589 | 0 | 0 | $res->{'params'}{'response'}{'status'} || 599 | 
 
| 2645 | 0 | 0 | $frameId || '' | 
 
| 2646 | 0 | 0 | $_->{'params'}{'frameId'} || '' | 
 
| 2738 | 0 | 0 | $res->{'params'}{'response'}{'status'} || 200 | 
 
| 3176 | 0 | 0 | shift() || 20 | 
 
| 3261 | 0 | 0 | $self->ct || 'text/html' | 
 
| 3318 | 0 | 0 | $options{'format'} ||= "html" | 
 
| 3627 | 0 | 0 | ref $query || '' | 
 
| 3768 | 0 | 0 | delete $opts{'n'} || 1 | 
 
| 3868 | 0 | 0 | $opts{'n'} || '' | 
 
| 4110 | 0 | 0 | $s->{'_currentNodeGeneration'} //= 0 | 
 
| 4349 | 0 | 0 | ref $query || '' | 
 
| 4360 | 0 | 0 | $options{'index'} || 0 | 
 
| 4426 | 0 | 0 | $_->get_text || '<no text>' | 
 
| 4452 | 0 | 0 | ref $query || '' | 
 
| 4545 | 0 | 0 | $options{'name'} || '' | 
 
| 4747 | 0 | 0 | shift() || \*STDOUT | 
 
| 4750 | 0 | 0 | $form->get_attribute('name', 'live', 1) || '<no name>' | 
 
| 4756 | 0 | 0 | $f->get_attribute('type', 'live', 1) || '' | 
 
| 4760 | 0 | 0 | $f->get_attribute('name') || '<no name>' | 
 
| 4953 | 0 | 0 | $options{'keys'} ||= [map({"type", "char", "text", $_}, split(//, $options{'string'}, 0))] | 
 
| 5123 | 0 | 0 | $pre ||= ["focus"] | 
 
| 5124 | 0 | 0 | $post ||= ["change"] | 
 
| 5239 | 0 | 0 | $pre ||= ["focus"] | 
 
| 5240 | 0 | 0 | $post ||= ["change"] | 
 
| 5363 | 0 | 0 | "HASH" eq ref $value or "" | 
 
|  | 0 | 0 | "ARRAY" eq ref $value or "" | 
 
| 5475 | 0 | 0 | $target->get_attribute('checked', 'live', 1) || '' | 
 
| 5594 | 0 | 0 | delete $options{'fields'} || {} | 
 
| 5609 | 0 | 0 | $options{'x'} || 0 | 
 
|  | 0 | 0 | $options{'y'} || 0 | 
 
| 5818 | 0 | 0 | delete $options{'sleep'} || 0.3 | 
 
| 5819 | 0 | 0 | delete $options{'timeout'} || 0 | 
 
| 5820 | 0 | 0 | delete $options{'max_wait'} || 0 | 
 
| 5887 | 0 | 0 | delete $options{'sleep'} || 0.3 | 
 
| 5888 | 0 | 0 | delete $options{'timeout'} || 0 | 
 
| 6072 | 0 | 0 | $options{'save'} ||= undef | 
 
| 6073 | 0 | 0 | $options{'seen'} ||= {} | 
 
| 6074 | 0 | 0 | $options{'names'} ||= {} | 
 
| 6075 | 0 | 0 | $options{'target_dir'} ||= "." | 
 
| 6076 | 0 | 0 | $options{'wanted'} ||= sub ($res) { | 
 
| 6341 | 0 | 0 | $options{'format'} ||= "png" | 
 
| 6507 | 0 | 0 | $options{'format'} ||= "png" | 
 
| 6508 | 0 | 0 | $options{'everyNthFrame'} ||= 1 | 
| line | l | !l&&r | !l&&!r | condition | 
 
| 436 | 0 | 0 | 0 | 'File::Spec'->rel2abs($program) || $program | 
 
| 459 | 0 | 0 | 0 | $options->{'listen_host'} or $options->{'host'} | 
 
| 460 | 0 | 0 | 0 | $options->{'listen_host'} || $options->{'host'} | 
 
| 488 | 0 | 0 | 0 | not exists $options->{'enable_automation'} or $options->{'enable_automation'} | 
 
| 496 | 0 | 0 | 0 | not exists $options->{'mute_audio'} or $options->{'mute_audio'} | 
 
| 500 | 0 | 0 | 0 | $options->{'no_sandbox'} || !exists $options->{'no_zygote'} | 
 
| 859 | 0 | 1 | 3 | ref $options->{'transport'} or $options->{'transport'} | 
 
|  | 1 | 0 | 3 | ref $options->{'transport'} or $options->{'transport'} or $ENV{'WWW_MECHANIZE_CHROME_TRANSPORT'} | 
 
| 912 | 0 | 1 | 0 | $options{'existing_tab'} ||= defined $options{'tab'} | 
 
| 921 | 0 | 1 | 0 | $options{'connection_style'} || $ENV{'WWW_MECHANIZE_CHROME_CONNECTION_STYLE'} || $class->connection_style(\%options) | 
 
| 922 | 0 | 0 | 1 | $options{'port'} or $options{'pid'} | 
 
| 934 | 0 | 1 | 0 | $options{'cleanup_signal'} ||= $^O =~ /mswin32/i ? "SIGKILL" : ($^O =~ /darwin/i ? "SIGKILL" : "SIGTERM") | 
 
| 938 | 0 | 1 | 0 | ref $class || $class | 
 
| 940 | 0 | 1 | 0 | $self->{'log'} ||= $self->_build_log | 
 
| 1000 | 0 | 0 | 0 | $options{'driver_transport'} ||= "Chrome::DevToolsProtocol"->new(@connection, "transport", $options{'transport'}, "log", $options{'log'}, &maybe("json_log_fh", scalar delete $options{'json_log_fh'})) | 
 
| 1016 | 0 | 0 | 0 | $options{'target'} ||= "Chrome::DevToolsProtocol::Target"->new("auto_close", 0, "transport", delete $options{'driver_transport'}, "error_handler", sub { | 
 
| 1103 | 0 | 0 | 0 | !$options{'existing_tab'} || $options{'new_tab'} | 
 
| 1298 | 0 | 0 | 0 | $self->{'chrome_version'} ||= do { | 
 
| 1506 | 0 | 0 | 0 | $options{'offline'} //= JSON::false() | 
 
| 2180 | 0 | 0 | 0 | $ev->{'method'} eq "Page.frameStartedLoading" or $ev->{'method'} eq "Page.frameScheduledNavigation" | 
 
|  | 0 | 0 | 0 | $ev->{'method'} eq "Page.frameStartedLoading" or $ev->{'method'} eq "Page.frameScheduledNavigation" or $ev->{'method'} eq "Network.requestWillBeSent" | 
 
| 2191 | 0 | 0 | 0 | $ev->{'method'} eq "Page.frameStartedLoading" or $ev->{'method'} eq "Page.frameScheduledNavigation" | 
 
|  | 0 | 0 | 0 | $ev->{'method'} eq "Page.frameStartedLoading" or $ev->{'method'} eq "Page.frameScheduledNavigation" or $ev->{'method'} eq "Network.requestWillBeSent" | 
 
| 2211 | 0 | 0 | 0 | $options{'frameId'} || $self->frameId | 
 
| 2212 | 0 | 0 | 0 | $options{'requestId'} || $self->requestId | 
 
| 2232 | 0 | 0 | 0 | $frameId ||= $s->_fetchFrameId($ev) | 
 
| 2233 | 0 | 0 | 0 | $requestId ||= $s->_fetchRequestId($ev) | 
 
| 2240 | 0 | 0 | 0 | $ev->{'method'} eq 'Page.frameStoppedLoading' && $ev->{'params'}{'frameId'} eq $frameId || $ev->{'method'} eq 'Network.loadingFinished' && (!$ev->{'params'}{'frameId'} || $ev->{'params'}{'frameId'} eq ($frameId || '')) && (!$ev->{'params'}{'requestId'} || $ev->{'params'}{'requestId'} eq ($requestId || '')) | 
 
| 2248 | 0 | 0 | 0 | $internal_navigation ||= $ev->{'method'} eq 'Page.frameClearedScheduledNavigation' && $ev->{'params'}{'frameId'} eq $frameId | 
 
| 2268 | 0 | 0 | 0 | $stopped || $internal_navigation || $failed || $download | 
 
| 2329 | 0 | 0 | 0 | $frameId ||= $s->_fetchFrameId($ev) | 
 
| 2345 | 0 | 0 | 0 | $frameId ||= $s->_fetchFrameId($ev) | 
 
| 2346 | 0 | 0 | 0 | $requestId ||= $s->_fetchRequestId($ev) | 
 
| 2381 | 0 | 0 | 0 | $self->{'frameId'} ||= $nav->{'frameId'} | 
 
| 2614 | 0 | 0 | 0 | $requestId ||= $_->{'params'}{'requestId'} | 
 
| 2630 | 0 | 0 | 0 | exists $_->{'params'}{'frameId'} && $_->{'params'}{'frameId'} || exists $_->{'params'}{'frame'}{'id'} && $_->{'params'}{'frame'}{'id'} | 
 
| 2648 | 0 | 0 | 0 | $requestId ||= $_->{'params'}{'requestId'} | 
 
| 2649 | 0 | 0 | 0 | $loaderId ||= $_->{'params'}{'loaderId'} | 
 
| 2650 | 0 | 0 | 0 | $requestId ||= $_->{'params'}{'requestId'} | 
 
| 2658 | 0 | 0 | 0 | $events{$_->{'method'}} ||= $_ | 
 
| 2911 | 0 | 0 | 0 | $self->{'cookie_jar'} ||= do { | 
 
| 3035 | 0 | 0 | 0 | $self->response->message || sprintf('Got status code %d', $self->status) | 
 
| 3471 | 0 | 0 | 0 | $base ||= $self->uri | 
 
| 3626 | 0 | 0 | 0 | $options{'user_info'} ||= "CSS selector '${query}'" | 
 
| 3764 | 0 | 0 | 0 | delete $opts{'one'} || $single | 
 
| 3785 | 0 | 0 | 0 | $lefthand{$lvalue} || '@' . $lvalue | 
 
| 4364 | 0 | 0 | 0 | $single || $first || $maybe || $any | 
 
| 4365 | 0 | 0 | 0 | $options{'user_info'} ||= join("|", @$query) | 
 
| 4368 | 0 | 0 | 0 | $single || $first | 
 
| 4369 | 0 | 0 | 0 | !($single || $maybe) || defined $options{'index'} | 
 
| 4373 | 0 | 0 | 0 | exists $options{'all'} or $return_first_element | 
 
| 4456 | 0 | 0 | 0 | $options{'user_info'} ||= "id " . join(" or ", map({"'${_}'";} @$query)) . " found" | 
 
| 4592 | 0 | 0 | 0 | $rename{$meth} || $meth | 
 
| 4671 | 0 | 0 | 0 | $node ||= $self->xpath($xpath, "node", $self->current_form, "single", 1, "user_message", $user_message) | 
 
| 5246 | 0 | 0 | 0 | $index == 1 or $index =~ /[^1]1$/ | 
 
|  | 0 | 0 | 0 | $index == 2 or $index =~ /[^1]2$/ | 
 
|  | 0 | 0 | 0 | $index == 3 or $index =~ /[^1]3$/ | 
 
| 5821 | 0 | 0 | 0 | $timeout ||= $wait | 
 
| 5831 | 0 | 0 | 0 | !$timeout || time < $timeout_after | 
 
| 5896 | 0 | 0 | 0 | not $timeout_after or time < $timeout_after | 
 
| 5954 | 0 | 0 | 0 | $target->{'scalex'} || $target->{'scaley'} | 
 
| 6133 | 0 | 0 | 0 | $names{$resource->{'url'}} ||= "File::Spec"->catfile($target_dir, $names{$resource->{'url'}}) |