{"subroutine":[[3,"BEGIN"],[4,"BEGIN"],[6,"BEGIN"],[7,"BEGIN"],[8,"BEGIN"],[10,"BEGIN"],[17,"new"],[27,"create"],[54,"get"],[70,"delete"],[81,"from_cookie"],[105,"_session_file"],[114,"_session_file_candidates"],[123,"_now_iso8601"],[132,"_iso8601_after"],[143,"_iso8601_to_epoch"]],"condition":[[18,{"left":"$args{'paths'}","type":"or_2","op":"||","right":"die('Missing path registry')"}],[28,{"right":"die('Missing username')","op":"||","type":"or_2","left":"$args{'username'}"}],[29,{"type":"or_2","left":"$args{'role'}","right":"'helper'","op":"||"}],[30,{"type":"or_2","left":"$args{'ttl_seconds'}","right":43200,"op":"||"}],[36,{"right":"''","op":"||","left":"$args{'remote_addr'}","type":"or_2"}],[55,{"left":"not defined $session_id","type":"or_3","right":"$session_id eq \"\"","op":"or"}],[71,{"right":"$session_id eq \"\"","op":"or","left":"not defined $session_id","type":"or_3"}],[82,{"type":"or_3","left":"not defined $cookie","op":"or","right":"$cookie eq \"\""}],[86,{"op":"or","right":"$k eq \"\"","type":"or_3","left":"not defined $k"}],[90,{"op":"and","right":"_iso8601_to_epoch($session->{'expires_at'}) <= time","type":"and_3","left":"$session->{'expires_at'}"}],[94,{"right":"defined $session->{'remote_addr'}","op":"and","type":"and_3","left":"defined $args{'remote_addr'}"}],[94,{"right":"$session->{'remote_addr'} ne \"\"","op":"and","left":"defined $args{'remote_addr'} and defined $session->{'remote_addr'}","type":"and_3"}],[133,{"op":"||","right":0,"left":"$seconds","type":"or_2"}],[144,{"type":"and_3","left":"defined $text","right":"$text =~ /\\A(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})Z\\z/","op":"and"}]],"start":{"3":{"BEGIN":[{"condition":null,"subroutine":null,"statement":null,"time":null,"branch":null}]},"114":{"_session_file_candidates":[{"time":null,"statement":63,"branch":12,"condition":12,"subroutine":12}]},"7":{"BEGIN":[{"branch":null,"time":null,"statement":9,"subroutine":3,"condition":null}]},"27":{"create":[{"condition":1,"subroutine":7,"statement":21,"time":null,"branch":null}]},"17":{"new":[{"condition":null,"subroutine":6,"statement":18,"time":null,"branch":null}]},"54":{"get":[{"condition":5,"subroutine":8,"statement":34,"time":null,"branch":1}]},"10":{"BEGIN":[{"subroutine":5,"condition":null,"branch":null,"time":null,"statement":15}]},"-1":{"__COVER__":[{"statement":76,"time":null,"branch":13,"condition":14,"subroutine":16}]},"8":{"BEGIN":[{"statement":12,"time":null,"branch":null,"condition":null,"subroutine":4}]},"143":{"_iso8601_to_epoch":[{"branch":12,"time":null,"statement":72,"subroutine":15,"condition":13}]},"70":{"delete":[{"statement":42,"time":null,"branch":4,"condition":6,"subroutine":9}]},"6":{"BEGIN":[{"subroutine":2,"condition":null,"branch":null,"statement":6,"time":null}]},"4":{"BEGIN":[{"subroutine":1,"condition":null,"branch":null,"statement":3,"time":null}]},"132":{"_iso8601_after":[{"statement":68,"time":null,"branch":12,"condition":12,"subroutine":14}]},"123":{"_now_iso8601":[{"branch":12,"statement":66,"time":null,"subroutine":13,"condition":12}]},"105":{"_session_file":[{"statement":61,"time":null,"branch":12,"condition":12,"subroutine":11}]},"81":{"from_cookie":[{"subroutine":10,"condition":7,"branch":5,"time":null,"statement":47}]}},"file":"lib/Developer/Dashboard/SessionStore.pm","digest":"eab87367e7896c5d7d9731a39f42f208","branch":[[42,{"text":"unless open my $fh, \">\", $file"}],[55,{"text":"if not defined $session_id or $session_id eq \"\""}],[57,{"text":"unless -f $file"}],[58,{"text":"unless open my $fh, \"<\", $file"}],[71,{"text":"if not defined $session_id or $session_id eq \"\""}],[82,{"text":"if not defined $cookie or $cookie eq \"\""}],[86,{"text":"if not defined $k or $k eq \"\""}],[87,{"text":"defined $v ? :"}],[89,{"text":"unless my $session = $self->get($pairs{'dashboard_session'})"}],[90,{"text":"if ($session->{'expires_at'} and _iso8601_to_epoch($session->{'expires_at'}) <= time)"}],[95,{"text":"if $session->{'remote_addr'} ne $args{'remote_addr'}"}],[94,{"text":"if (defined $args{'remote_addr'} and defined $session->{'remote_addr'} and $session->{'remote_addr'} ne \"\")"}],[144,{"text":"unless defined $text and $text =~ /\\A(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})Z\\z/"}]],"statement":[3,3,3,4,4,4,6,6,6,7,7,7,8,8,8,10,10,10,17,18,19,27,28,29,30,31,36,41,42,43,43,44,45,46,54,55,56,57,58,59,60,62,70,71,72,72,73,81,82,83,84,85,86,87,89,90,91,92,94,95,97,105,106,114,115,115,123,124,132,133,134,135,143,144,145,146]}