From 8ccce5891d9f81aeff49852339f7f86230a77fba Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 21 Nov 2023 15:01:42 +0100 Subject: [PATCH] Ruby: Add tests illustrating missing flow --- .../dataflow/params/TypeTracker.expected | 1864 +++++++++++++++-- .../dataflow/params/params-flow.expected | 30 + .../dataflow/params/params_flow.rb | 70 + 3 files changed, 1785 insertions(+), 179 deletions(-) diff --git a/ruby/ql/test/library-tests/dataflow/params/TypeTracker.expected b/ruby/ql/test/library-tests/dataflow/params/TypeTracker.expected index ff3363a0ea37..58512c2e4784 100644 --- a/ruby/ql/test/library-tests/dataflow/params/TypeTracker.expected +++ b/ruby/ql/test/library-tests/dataflow/params/TypeTracker.expected @@ -3,20 +3,25 @@ track | params_flow.rb:1:1:3:3 | self in taint | type tracker without call steps | params_flow.rb:1:1:3:3 | self in taint | | params_flow.rb:1:1:3:3 | synthetic splat parameter | type tracker without call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | | params_flow.rb:1:1:3:3 | taint | type tracker without call steps | params_flow.rb:1:1:3:3 | taint | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:1:1:3:3 | self in taint | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:9:1:12:3 | self in positional | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:16:1:19:3 | self in keyword | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:25:1:31:3 | self in kwargs | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:49:1:53:3 | self in posargs | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:64:1:66:3 | self in splatstuff | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:69:1:76:3 | self in splatmid | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:83:1:91:3 | self in pos_many | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:98:1:103:3 | self in splatmidsmall | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:108:1:112:3 | self in splat_followed_by_keyword_param | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:120:1:126:3 | self in destruct | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:133:1:135:3 | self in splatall | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | type tracker without call steps | params_flow.rb:1:1:137:45 | self (params_flow.rb) | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:1:1:3:3 | self in taint | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:9:1:12:3 | self in positional | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:16:1:19:3 | self in keyword | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:25:1:31:3 | self in kwargs | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:49:1:53:3 | self in posargs | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:64:1:66:3 | self in splatstuff | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:69:1:76:3 | self in splatmid | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:83:1:91:3 | self in pos_many | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:98:1:103:3 | self in splatmidsmall | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:108:1:112:3 | self in splat_followed_by_keyword_param | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:120:1:126:3 | self in destruct | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:133:1:135:3 | self in splatall | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:139:1:141:3 | self in hashSplatSideEffect | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:153:1:155:3 | self in keywordSideEffect | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:167:1:169:3 | self in splatSideEffect | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:181:1:183:3 | self in positionSideEffect | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | type tracker with call steps | params_flow.rb:200:1:205:3 | self in foo | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | type tracker without call steps | params_flow.rb:1:1:207:15 | self (params_flow.rb) | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:5:10:5:10 | x | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:9:16:9:17 | p1 | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:9:20:9:21 | p2 | @@ -45,6 +50,11 @@ track | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:108:44:108:44 | c | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:110:10:110:13 | ...[...] | | params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:134:10:134:16 | ...[...] | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:140:27:140:37 | ...[...] | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:153:28:153:29 | p2 | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:168:26:168:35 | ...[...] | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:181:28:181:29 | p2 | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps | params_flow.rb:200:9:200:9 | x | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element | params_flow.rb:9:1:12:3 | synthetic splat parameter | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:9:1:12:3 | synthetic splat parameter | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:49:1:53:3 | synthetic splat parameter | @@ -52,17 +62,30 @@ track | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:83:1:91:3 | synthetic splat parameter | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:108:40:108:41 | *b | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:133:14:133:18 | *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 | params_flow.rb:200:1:205:3 | synthetic splat parameter | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:64:16:64:17 | *x | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:140:5:140:15 | [post] ...[...] | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:140:5:140:38 | call to insert | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:154:5:154:6 | [post] p1 | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:154:5:154:20 | call to insert | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:168:5:168:14 | [post] ...[...] | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:168:5:168:36 | call to insert | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:182:5:182:6 | [post] p1 | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 0 or unknown | params_flow.rb:182:5:182:20 | call to insert | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:9:1:12:3 | synthetic splat parameter | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:49:1:53:3 | synthetic splat parameter | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:83:1:91:3 | synthetic splat parameter | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:133:14:133:18 | *args | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:167:21:167:28 | *posargs | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 1 | params_flow.rb:181:1:183:3 | synthetic splat parameter | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element 2 | params_flow.rb:133:14:133:18 | *args | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :p1 | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :p1 | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :p1 | params_flow.rb:25:17:25:24 | **kwargs | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :p2 | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :p2 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :p2 | params_flow.rb:139:25:139:32 | **kwargs | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :p2 | params_flow.rb:153:1:155:3 | synthetic hash-splat parameter | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :p3 | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content element :p3 | params_flow.rb:25:17:25:24 | **kwargs | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content hash-splat position :c | params_flow.rb:108:1:112:3 | synthetic hash-splat parameter | @@ -72,6 +95,8 @@ track | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content hash-splat position :p2 | params_flow.rb:16:1:19:3 | synthetic hash-splat parameter | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content hash-splat position :p2 | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content hash-splat position :p2 | params_flow.rb:25:17:25:24 | **kwargs | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content hash-splat position :p2 | params_flow.rb:139:25:139:32 | **kwargs | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content hash-splat position :p2 | params_flow.rb:153:1:155:3 | synthetic hash-splat parameter | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content hash-splat position :p3 | params_flow.rb:25:1:31:3 | synthetic hash-splat parameter | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content hash-splat position :p3 | params_flow.rb:25:17:25:24 | **kwargs | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | @@ -115,6 +140,12 @@ track | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 1 | params_flow.rb:83:1:91:3 | synthetic splat parameter | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 1 | params_flow.rb:98:1:103:3 | synthetic splat parameter | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 1 | params_flow.rb:108:1:112:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 1 | params_flow.rb:140:5:140:38 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 1 | params_flow.rb:154:5:154:20 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 1 | params_flow.rb:167:21:167:28 | *posargs | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 1 | params_flow.rb:168:5:168:36 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 1 | params_flow.rb:181:1:183:3 | synthetic splat parameter | +| params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 1 | params_flow.rb:182:5:182:20 | synthetic splat argument | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 1 (shifted) | params_flow.rb:9:1:12:3 | synthetic splat parameter | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 1 (shifted) | params_flow.rb:49:1:53:3 | synthetic splat parameter | | params_flow.rb:1:11:1:11 | x | type tracker with call steps with content splat position 1 (shifted) | params_flow.rb:69:1:76:3 | synthetic splat parameter | @@ -206,6 +237,15 @@ track | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:137:12:137:20 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:137:23:137:31 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:137:34:137:42 | call to taint | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:143:24:143:32 | call to taint | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:150:33:150:41 | call to taint | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:157:24:157:32 | call to taint | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:164:31:164:39 | call to taint | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:171:17:171:25 | call to taint | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:178:21:178:29 | call to taint | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:185:14:185:22 | call to taint | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:192:24:192:32 | call to taint | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps | params_flow.rb:196:10:196:18 | call to taint | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content attribute [] | params_flow.rb:117:1:117:1 | [post] x | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element | params_flow.rb:117:1:117:1 | [post] x | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element | params_flow.rb:118:12:118:13 | * ... | @@ -243,6 +283,9 @@ track | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:137:10:137:43 | * ... | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:137:11:137:43 | call to [] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:137:11:137:43 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:195:12:198:1 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:195:12:198:1 | synthetic hash-splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 | params_flow.rb:207:5:207:13 | * ... | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 0 or unknown | params_flow.rb:67:12:67:16 | * ... | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:46:8:46:29 | call to [] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:46:8:46:29 | synthetic splat argument | @@ -272,6 +315,12 @@ track | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:137:10:137:43 | * ... | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:137:11:137:43 | call to [] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:137:11:137:43 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:171:11:171:27 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:171:11:171:27 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:173:17:173:24 | * ... | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:185:8:185:24 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:185:8:185:24 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 1 | params_flow.rb:187:20:187:24 | * ... | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:80:8:80:51 | call to [] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:80:8:80:51 | synthetic splat argument | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element 2 | params_flow.rb:81:21:81:25 | * ... | @@ -299,6 +348,12 @@ track | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p2 | params_flow.rb:37:8:37:44 | call to [] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p2 | params_flow.rb:37:8:37:44 | synthetic hash-splat argument | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p2 | params_flow.rb:38:8:38:13 | ** ... | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p2 | params_flow.rb:143:10:143:34 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p2 | params_flow.rb:143:10:143:34 | synthetic hash-splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p2 | params_flow.rb:145:21:145:28 | ** ... | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p2 | params_flow.rb:157:10:157:34 | call to [] | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p2 | params_flow.rb:157:10:157:34 | synthetic hash-splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p2 | params_flow.rb:159:19:159:26 | ** ... | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p3 | params_flow.rb:34:8:34:32 | call to [] | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p3 | params_flow.rb:34:8:34:32 | synthetic hash-splat argument | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content element :p3 | params_flow.rb:35:23:35:28 | ** ... | @@ -313,6 +368,8 @@ track | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content hash-splat position :p2 | params_flow.rb:23:1:23:41 | synthetic hash-splat argument | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content hash-splat position :p2 | params_flow.rb:33:1:33:58 | synthetic hash-splat argument | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content hash-splat position :p2 | params_flow.rb:41:1:41:30 | synthetic hash-splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content hash-splat position :p2 | params_flow.rb:150:1:150:42 | synthetic hash-splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content hash-splat position :p2 | params_flow.rb:164:1:164:40 | synthetic hash-splat argument | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content hash-splat position :p3 | params_flow.rb:33:1:33:58 | synthetic hash-splat argument | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 0 | params_flow.rb:14:1:14:30 | synthetic splat argument | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 0 | params_flow.rb:44:1:44:28 | synthetic splat argument | @@ -333,6 +390,8 @@ track | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 1 | params_flow.rb:106:1:106:46 | synthetic splat argument | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 1 | params_flow.rb:114:1:114:67 | synthetic splat argument | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 1 | params_flow.rb:117:1:117:15 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 1 | params_flow.rb:178:1:178:30 | synthetic splat argument | +| params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 1 | params_flow.rb:192:1:192:33 | synthetic splat argument | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 1 (shifted) | params_flow.rb:44:1:44:28 | synthetic splat argument | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 1 (shifted) | params_flow.rb:58:1:58:25 | synthetic splat argument | | params_flow.rb:1:11:1:11 | x | type tracker without call steps with content splat position 1 (shifted) | params_flow.rb:81:1:81:37 | synthetic splat argument | @@ -424,6 +483,27 @@ track | params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:131:1:131:46 | call to pos_many | | params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:134:5:134:16 | call to sink | | params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:137:1:137:44 | call to splatall | +| params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:144:1:144:20 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:146:1:146:20 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:149:1:149:11 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:151:1:151:11 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:158:1:158:20 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:160:1:160:20 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:163:1:163:11 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:165:1:165:11 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:172:1:172:19 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:174:1:174:19 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:177:1:177:11 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:179:1:179:11 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:186:1:186:16 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:188:1:188:16 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:191:1:191:11 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:193:1:193:11 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:201:5:201:15 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:202:5:202:15 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:203:5:203:15 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:204:5:204:15 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | type tracker without call steps | params_flow.rb:207:1:207:14 | call to foo | | params_flow.rb:6:5:6:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:9:1:12:3 | &block | type tracker without call steps | params_flow.rb:9:1:12:3 | &block | | params_flow.rb:9:1:12:3 | positional | type tracker without call steps | params_flow.rb:9:1:12:3 | positional | @@ -2902,176 +2982,925 @@ track | params_flow.rb:137:40:137:41 | 71 | type tracker without call steps with content element 2 | params_flow.rb:137:11:137:43 | call to [] | | params_flow.rb:137:40:137:41 | 71 | type tracker without call steps with content element 2 | params_flow.rb:137:11:137:43 | synthetic splat argument | | params_flow.rb:137:40:137:41 | 71 | type tracker without call steps with content splat position 0 | params_flow.rb:137:34:137:42 | synthetic splat argument | +| params_flow.rb:139:1:141:3 | &block | type tracker without call steps | params_flow.rb:139:1:141:3 | &block | +| params_flow.rb:139:1:141:3 | hashSplatSideEffect | type tracker without call steps | params_flow.rb:139:1:141:3 | hashSplatSideEffect | +| params_flow.rb:139:1:141:3 | self in hashSplatSideEffect | type tracker without call steps | params_flow.rb:139:1:141:3 | self in hashSplatSideEffect | +| params_flow.rb:139:25:139:32 | **kwargs | type tracker without call steps | params_flow.rb:139:25:139:32 | **kwargs | +| params_flow.rb:139:27:139:32 | kwargs | type tracker without call steps | params_flow.rb:139:27:139:32 | kwargs | +| params_flow.rb:140:5:140:15 | ...[...] | type tracker without call steps | params_flow.rb:140:5:140:15 | ...[...] | +| params_flow.rb:140:5:140:15 | [post] ...[...] | type tracker without call steps | params_flow.rb:140:5:140:15 | [post] ...[...] | +| params_flow.rb:140:5:140:15 | synthetic splat argument | type tracker without call steps | params_flow.rb:140:5:140:15 | synthetic splat argument | +| params_flow.rb:140:5:140:38 | call to insert | type tracker without call steps | params_flow.rb:140:5:140:38 | call to insert | +| params_flow.rb:140:5:140:38 | call to insert | type tracker without call steps | params_flow.rb:145:1:145:29 | call to hashSplatSideEffect | +| params_flow.rb:140:5:140:38 | call to insert | type tracker without call steps | params_flow.rb:150:1:150:42 | call to hashSplatSideEffect | +| params_flow.rb:140:5:140:38 | synthetic splat argument | type tracker without call steps | params_flow.rb:140:5:140:38 | synthetic splat argument | +| params_flow.rb:140:12:140:14 | :p1 | type tracker without call steps | params_flow.rb:140:12:140:14 | :p1 | +| params_flow.rb:140:12:140:14 | :p1 | type tracker without call steps with content splat position 0 | params_flow.rb:140:5:140:15 | synthetic splat argument | +| params_flow.rb:140:24:140:24 | 0 | type tracker without call steps | params_flow.rb:140:24:140:24 | 0 | +| params_flow.rb:140:24:140:24 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:140:5:140:38 | synthetic splat argument | +| params_flow.rb:140:27:140:37 | ...[...] | type tracker without call steps | params_flow.rb:140:27:140:37 | ...[...] | +| params_flow.rb:140:27:140:37 | ...[...] | type tracker without call steps with content element 0 or unknown | params_flow.rb:140:5:140:15 | [post] ...[...] | +| params_flow.rb:140:27:140:37 | ...[...] | type tracker without call steps with content element 0 or unknown | params_flow.rb:140:5:140:38 | call to insert | +| params_flow.rb:140:27:140:37 | ...[...] | type tracker without call steps with content element 0 or unknown | params_flow.rb:145:1:145:29 | call to hashSplatSideEffect | +| params_flow.rb:140:27:140:37 | ...[...] | type tracker without call steps with content element 0 or unknown | params_flow.rb:150:1:150:42 | call to hashSplatSideEffect | +| params_flow.rb:140:27:140:37 | ...[...] | type tracker without call steps with content splat position 1 | params_flow.rb:140:5:140:38 | synthetic splat argument | +| params_flow.rb:140:27:140:37 | synthetic splat argument | type tracker without call steps | params_flow.rb:140:27:140:37 | synthetic splat argument | +| params_flow.rb:140:34:140:36 | :p2 | type tracker without call steps | params_flow.rb:140:34:140:36 | :p2 | +| params_flow.rb:140:34:140:36 | :p2 | type tracker without call steps with content splat position 0 | params_flow.rb:140:27:140:37 | synthetic splat argument | +| params_flow.rb:143:1:143:6 | kwargs | type tracker without call steps | params_flow.rb:143:1:143:6 | kwargs | +| params_flow.rb:143:10:143:34 | Hash | type tracker without call steps | params_flow.rb:143:10:143:34 | Hash | +| params_flow.rb:143:10:143:34 | call to [] | type tracker without call steps | params_flow.rb:143:10:143:34 | call to [] | +| params_flow.rb:143:10:143:34 | synthetic hash-splat argument | type tracker without call steps | params_flow.rb:143:10:143:34 | call to [] | +| params_flow.rb:143:10:143:34 | synthetic hash-splat argument | type tracker without call steps | params_flow.rb:143:10:143:34 | synthetic hash-splat argument | +| params_flow.rb:143:12:143:13 | :p1 | type tracker without call steps | params_flow.rb:143:12:143:13 | :p1 | +| params_flow.rb:143:12:143:17 | Pair | type tracker without call steps | params_flow.rb:143:12:143:17 | Pair | +| params_flow.rb:143:16:143:17 | Array | type tracker without call steps | params_flow.rb:143:16:143:17 | Array | +| params_flow.rb:143:16:143:17 | call to [] | type tracker with call steps | params_flow.rb:140:5:140:15 | ...[...] | +| params_flow.rb:143:16:143:17 | call to [] | type tracker with call steps with content element :p1 | params_flow.rb:139:25:139:32 | **kwargs | +| params_flow.rb:143:16:143:17 | call to [] | type tracker without call steps | params_flow.rb:143:16:143:17 | call to [] | +| params_flow.rb:143:16:143:17 | call to [] | type tracker without call steps | params_flow.rb:144:6:144:16 | ...[...] | +| params_flow.rb:143:16:143:17 | call to [] | type tracker without call steps | params_flow.rb:146:6:146:16 | ...[...] | +| params_flow.rb:143:16:143:17 | call to [] | type tracker without call steps with content element :p1 | params_flow.rb:143:10:143:34 | call to [] | +| params_flow.rb:143:16:143:17 | call to [] | type tracker without call steps with content element :p1 | params_flow.rb:143:10:143:34 | synthetic hash-splat argument | +| params_flow.rb:143:16:143:17 | call to [] | type tracker without call steps with content element :p1 | params_flow.rb:145:21:145:28 | ** ... | +| params_flow.rb:143:20:143:21 | :p2 | type tracker without call steps | params_flow.rb:143:20:143:21 | :p2 | +| params_flow.rb:143:20:143:32 | Pair | type tracker without call steps | params_flow.rb:143:20:143:32 | Pair | +| params_flow.rb:143:24:143:32 | call to taint | type tracker with call steps | params_flow.rb:140:27:140:37 | ...[...] | +| params_flow.rb:143:24:143:32 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:140:5:140:15 | [post] ...[...] | +| params_flow.rb:143:24:143:32 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:140:5:140:38 | call to insert | +| params_flow.rb:143:24:143:32 | call to taint | type tracker with call steps with content element :p2 | params_flow.rb:139:25:139:32 | **kwargs | +| params_flow.rb:143:24:143:32 | call to taint | type tracker with call steps with content splat position 1 | params_flow.rb:140:5:140:38 | synthetic splat argument | +| params_flow.rb:143:24:143:32 | call to taint | type tracker without call steps | params_flow.rb:143:24:143:32 | call to taint | +| params_flow.rb:143:24:143:32 | call to taint | type tracker without call steps with content element :p2 | params_flow.rb:143:10:143:34 | call to [] | +| params_flow.rb:143:24:143:32 | call to taint | type tracker without call steps with content element :p2 | params_flow.rb:143:10:143:34 | synthetic hash-splat argument | +| params_flow.rb:143:24:143:32 | call to taint | type tracker without call steps with content element :p2 | params_flow.rb:145:21:145:28 | ** ... | +| params_flow.rb:143:24:143:32 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:143:24:143:32 | synthetic splat argument | type tracker without call steps | params_flow.rb:143:24:143:32 | synthetic splat argument | +| params_flow.rb:143:30:143:31 | 72 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:143:30:143:31 | 72 | type tracker with call steps | params_flow.rb:140:27:140:37 | ...[...] | +| params_flow.rb:143:30:143:31 | 72 | type tracker with call steps with content element 0 or unknown | params_flow.rb:140:5:140:15 | [post] ...[...] | +| params_flow.rb:143:30:143:31 | 72 | type tracker with call steps with content element 0 or unknown | params_flow.rb:140:5:140:38 | call to insert | +| params_flow.rb:143:30:143:31 | 72 | type tracker with call steps with content element :p2 | params_flow.rb:139:25:139:32 | **kwargs | +| params_flow.rb:143:30:143:31 | 72 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:143:30:143:31 | 72 | type tracker with call steps with content splat position 1 | params_flow.rb:140:5:140:38 | synthetic splat argument | +| params_flow.rb:143:30:143:31 | 72 | type tracker without call steps | params_flow.rb:143:24:143:32 | call to taint | +| params_flow.rb:143:30:143:31 | 72 | type tracker without call steps | params_flow.rb:143:30:143:31 | 72 | +| params_flow.rb:143:30:143:31 | 72 | type tracker without call steps with content element :p2 | params_flow.rb:143:10:143:34 | call to [] | +| params_flow.rb:143:30:143:31 | 72 | type tracker without call steps with content element :p2 | params_flow.rb:143:10:143:34 | synthetic hash-splat argument | +| params_flow.rb:143:30:143:31 | 72 | type tracker without call steps with content element :p2 | params_flow.rb:145:21:145:28 | ** ... | +| params_flow.rb:143:30:143:31 | 72 | type tracker without call steps with content splat position 0 | params_flow.rb:143:24:143:32 | synthetic splat argument | +| params_flow.rb:144:1:144:20 | call to sink | type tracker without call steps | params_flow.rb:144:1:144:20 | call to sink | +| params_flow.rb:144:1:144:20 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:144:1:144:20 | synthetic splat argument | type tracker without call steps | params_flow.rb:144:1:144:20 | synthetic splat argument | +| params_flow.rb:144:6:144:16 | ...[...] | type tracker without call steps | params_flow.rb:144:6:144:16 | ...[...] | +| params_flow.rb:144:6:144:16 | synthetic splat argument | type tracker without call steps | params_flow.rb:144:6:144:16 | synthetic splat argument | +| params_flow.rb:144:6:144:19 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:144:6:144:19 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:144:6:144:19 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:144:6:144:19 | ...[...] | type tracker without call steps | params_flow.rb:144:6:144:19 | ...[...] | +| params_flow.rb:144:6:144:19 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:144:1:144:20 | synthetic splat argument | +| params_flow.rb:144:6:144:19 | synthetic splat argument | type tracker without call steps | params_flow.rb:144:6:144:19 | synthetic splat argument | +| params_flow.rb:144:13:144:15 | :p1 | type tracker without call steps | params_flow.rb:144:13:144:15 | :p1 | +| params_flow.rb:144:13:144:15 | :p1 | type tracker without call steps with content splat position 0 | params_flow.rb:144:6:144:16 | synthetic splat argument | +| params_flow.rb:144:18:144:18 | 0 | type tracker without call steps | params_flow.rb:144:18:144:18 | 0 | +| params_flow.rb:144:18:144:18 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:144:6:144:19 | synthetic splat argument | +| params_flow.rb:145:1:145:29 | call to hashSplatSideEffect | type tracker without call steps | params_flow.rb:145:1:145:29 | call to hashSplatSideEffect | +| params_flow.rb:145:21:145:28 | ** ... | type tracker with call steps | params_flow.rb:139:25:139:32 | **kwargs | +| params_flow.rb:145:21:145:28 | ** ... | type tracker without call steps | params_flow.rb:145:21:145:28 | ** ... | +| params_flow.rb:146:1:146:20 | call to sink | type tracker without call steps | params_flow.rb:146:1:146:20 | call to sink | +| params_flow.rb:146:1:146:20 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:146:1:146:20 | synthetic splat argument | type tracker without call steps | params_flow.rb:146:1:146:20 | synthetic splat argument | +| params_flow.rb:146:6:146:16 | ...[...] | type tracker without call steps | params_flow.rb:146:6:146:16 | ...[...] | +| params_flow.rb:146:6:146:16 | synthetic splat argument | type tracker without call steps | params_flow.rb:146:6:146:16 | synthetic splat argument | +| params_flow.rb:146:6:146:19 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:146:6:146:19 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:146:6:146:19 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:146:6:146:19 | ...[...] | type tracker without call steps | params_flow.rb:146:6:146:19 | ...[...] | +| params_flow.rb:146:6:146:19 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:146:1:146:20 | synthetic splat argument | +| params_flow.rb:146:6:146:19 | synthetic splat argument | type tracker without call steps | params_flow.rb:146:6:146:19 | synthetic splat argument | +| params_flow.rb:146:13:146:15 | :p1 | type tracker without call steps | params_flow.rb:146:13:146:15 | :p1 | +| params_flow.rb:146:13:146:15 | :p1 | type tracker without call steps with content splat position 0 | params_flow.rb:146:6:146:16 | synthetic splat argument | +| params_flow.rb:146:18:146:18 | 0 | type tracker without call steps | params_flow.rb:146:18:146:18 | 0 | +| params_flow.rb:146:18:146:18 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:146:6:146:19 | synthetic splat argument | +| params_flow.rb:148:1:148:2 | p1 | type tracker without call steps | params_flow.rb:148:1:148:2 | p1 | +| params_flow.rb:148:6:148:7 | Array | type tracker without call steps | params_flow.rb:148:6:148:7 | Array | +| params_flow.rb:148:6:148:7 | call to [] | type tracker with call steps | params_flow.rb:140:5:140:15 | ...[...] | +| params_flow.rb:148:6:148:7 | call to [] | type tracker with call steps with content hash-splat position :p1 | params_flow.rb:139:25:139:32 | **kwargs | +| params_flow.rb:148:6:148:7 | call to [] | type tracker without call steps | params_flow.rb:148:6:148:7 | call to [] | +| params_flow.rb:148:6:148:7 | call to [] | type tracker without call steps with content hash-splat position :p1 | params_flow.rb:150:1:150:42 | synthetic hash-splat argument | +| params_flow.rb:149:1:149:11 | call to sink | type tracker without call steps | params_flow.rb:149:1:149:11 | call to sink | +| params_flow.rb:149:1:149:11 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:149:1:149:11 | synthetic splat argument | type tracker without call steps | params_flow.rb:149:1:149:11 | synthetic splat argument | +| params_flow.rb:149:6:149:10 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:149:6:149:10 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:149:6:149:10 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:149:6:149:10 | ...[...] | type tracker without call steps | params_flow.rb:149:6:149:10 | ...[...] | +| params_flow.rb:149:6:149:10 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:149:1:149:11 | synthetic splat argument | +| params_flow.rb:149:6:149:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:149:6:149:10 | synthetic splat argument | +| params_flow.rb:149:9:149:9 | 0 | type tracker without call steps | params_flow.rb:149:9:149:9 | 0 | +| params_flow.rb:149:9:149:9 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:149:6:149:10 | synthetic splat argument | +| params_flow.rb:150:1:150:42 | call to hashSplatSideEffect | type tracker without call steps | params_flow.rb:150:1:150:42 | call to hashSplatSideEffect | +| params_flow.rb:150:1:150:42 | synthetic hash-splat argument | type tracker with call steps | params_flow.rb:139:25:139:32 | **kwargs | +| params_flow.rb:150:1:150:42 | synthetic hash-splat argument | type tracker without call steps | params_flow.rb:150:1:150:42 | synthetic hash-splat argument | +| params_flow.rb:150:21:150:22 | :p1 | type tracker without call steps | params_flow.rb:150:21:150:22 | :p1 | +| params_flow.rb:150:21:150:26 | Pair | type tracker without call steps | params_flow.rb:150:21:150:26 | Pair | +| params_flow.rb:150:29:150:30 | :p2 | type tracker without call steps | params_flow.rb:150:29:150:30 | :p2 | +| params_flow.rb:150:29:150:41 | Pair | type tracker without call steps | params_flow.rb:150:29:150:41 | Pair | +| params_flow.rb:150:33:150:41 | call to taint | type tracker with call steps | params_flow.rb:140:27:140:37 | ...[...] | +| params_flow.rb:150:33:150:41 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:140:5:140:15 | [post] ...[...] | +| params_flow.rb:150:33:150:41 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:140:5:140:38 | call to insert | +| params_flow.rb:150:33:150:41 | call to taint | type tracker with call steps with content hash-splat position :p2 | params_flow.rb:139:25:139:32 | **kwargs | +| params_flow.rb:150:33:150:41 | call to taint | type tracker with call steps with content splat position 1 | params_flow.rb:140:5:140:38 | synthetic splat argument | +| params_flow.rb:150:33:150:41 | call to taint | type tracker without call steps | params_flow.rb:150:33:150:41 | call to taint | +| params_flow.rb:150:33:150:41 | call to taint | type tracker without call steps with content hash-splat position :p2 | params_flow.rb:150:1:150:42 | synthetic hash-splat argument | +| params_flow.rb:150:33:150:41 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:150:33:150:41 | synthetic splat argument | type tracker without call steps | params_flow.rb:150:33:150:41 | synthetic splat argument | +| params_flow.rb:150:39:150:40 | 73 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:150:39:150:40 | 73 | type tracker with call steps | params_flow.rb:140:27:140:37 | ...[...] | +| params_flow.rb:150:39:150:40 | 73 | type tracker with call steps with content element 0 or unknown | params_flow.rb:140:5:140:15 | [post] ...[...] | +| params_flow.rb:150:39:150:40 | 73 | type tracker with call steps with content element 0 or unknown | params_flow.rb:140:5:140:38 | call to insert | +| params_flow.rb:150:39:150:40 | 73 | type tracker with call steps with content hash-splat position :p2 | params_flow.rb:139:25:139:32 | **kwargs | +| params_flow.rb:150:39:150:40 | 73 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:150:39:150:40 | 73 | type tracker with call steps with content splat position 1 | params_flow.rb:140:5:140:38 | synthetic splat argument | +| params_flow.rb:150:39:150:40 | 73 | type tracker without call steps | params_flow.rb:150:33:150:41 | call to taint | +| params_flow.rb:150:39:150:40 | 73 | type tracker without call steps | params_flow.rb:150:39:150:40 | 73 | +| params_flow.rb:150:39:150:40 | 73 | type tracker without call steps with content hash-splat position :p2 | params_flow.rb:150:1:150:42 | synthetic hash-splat argument | +| params_flow.rb:150:39:150:40 | 73 | type tracker without call steps with content splat position 0 | params_flow.rb:150:33:150:41 | synthetic splat argument | +| params_flow.rb:151:1:151:11 | call to sink | type tracker without call steps | params_flow.rb:151:1:151:11 | call to sink | +| params_flow.rb:151:1:151:11 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:151:1:151:11 | synthetic splat argument | type tracker without call steps | params_flow.rb:151:1:151:11 | synthetic splat argument | +| params_flow.rb:151:6:151:10 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:151:6:151:10 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:151:6:151:10 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:151:6:151:10 | ...[...] | type tracker without call steps | params_flow.rb:151:6:151:10 | ...[...] | +| params_flow.rb:151:6:151:10 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:151:1:151:11 | synthetic splat argument | +| params_flow.rb:151:6:151:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:151:6:151:10 | synthetic splat argument | +| params_flow.rb:151:9:151:9 | 0 | type tracker without call steps | params_flow.rb:151:9:151:9 | 0 | +| params_flow.rb:151:9:151:9 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:151:6:151:10 | synthetic splat argument | +| params_flow.rb:153:1:155:3 | &block | type tracker without call steps | params_flow.rb:153:1:155:3 | &block | +| params_flow.rb:153:1:155:3 | keywordSideEffect | type tracker without call steps | params_flow.rb:153:1:155:3 | keywordSideEffect | +| params_flow.rb:153:1:155:3 | self in keywordSideEffect | type tracker without call steps | params_flow.rb:153:1:155:3 | self in keywordSideEffect | +| params_flow.rb:153:1:155:3 | synthetic hash-splat parameter | type tracker without call steps | params_flow.rb:153:1:155:3 | synthetic hash-splat parameter | +| params_flow.rb:153:23:153:24 | p1 | type tracker without call steps | params_flow.rb:153:23:153:24 | p1 | +| params_flow.rb:153:23:153:24 | p1 | type tracker without call steps | params_flow.rb:153:23:153:24 | p1 | +| params_flow.rb:153:28:153:29 | p2 | type tracker without call steps | params_flow.rb:153:28:153:29 | p2 | +| params_flow.rb:153:28:153:29 | p2 | type tracker without call steps | params_flow.rb:153:28:153:29 | p2 | +| params_flow.rb:153:28:153:29 | p2 | type tracker without call steps with content element 0 or unknown | params_flow.rb:154:5:154:6 | [post] p1 | +| params_flow.rb:153:28:153:29 | p2 | type tracker without call steps with content element 0 or unknown | params_flow.rb:154:5:154:20 | call to insert | +| params_flow.rb:153:28:153:29 | p2 | type tracker without call steps with content element 0 or unknown | params_flow.rb:159:1:159:27 | call to keywordSideEffect | +| params_flow.rb:153:28:153:29 | p2 | type tracker without call steps with content element 0 or unknown | params_flow.rb:164:1:164:40 | call to keywordSideEffect | +| params_flow.rb:153:28:153:29 | p2 | type tracker without call steps with content splat position 1 | params_flow.rb:154:5:154:20 | synthetic splat argument | +| params_flow.rb:154:5:154:6 | [post] p1 | type tracker without call steps | params_flow.rb:154:5:154:6 | [post] p1 | +| params_flow.rb:154:5:154:20 | call to insert | type tracker without call steps | params_flow.rb:154:5:154:20 | call to insert | +| params_flow.rb:154:5:154:20 | call to insert | type tracker without call steps | params_flow.rb:159:1:159:27 | call to keywordSideEffect | +| params_flow.rb:154:5:154:20 | call to insert | type tracker without call steps | params_flow.rb:164:1:164:40 | call to keywordSideEffect | +| params_flow.rb:154:5:154:20 | synthetic splat argument | type tracker without call steps | params_flow.rb:154:5:154:20 | synthetic splat argument | +| params_flow.rb:154:15:154:15 | 0 | type tracker without call steps | params_flow.rb:154:15:154:15 | 0 | +| params_flow.rb:154:15:154:15 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:154:5:154:20 | synthetic splat argument | +| params_flow.rb:157:1:157:6 | kwargs | type tracker without call steps | params_flow.rb:157:1:157:6 | kwargs | +| params_flow.rb:157:10:157:34 | Hash | type tracker without call steps | params_flow.rb:157:10:157:34 | Hash | +| params_flow.rb:157:10:157:34 | call to [] | type tracker without call steps | params_flow.rb:157:10:157:34 | call to [] | +| params_flow.rb:157:10:157:34 | synthetic hash-splat argument | type tracker without call steps | params_flow.rb:157:10:157:34 | call to [] | +| params_flow.rb:157:10:157:34 | synthetic hash-splat argument | type tracker without call steps | params_flow.rb:157:10:157:34 | synthetic hash-splat argument | +| params_flow.rb:157:12:157:13 | :p1 | type tracker without call steps | params_flow.rb:157:12:157:13 | :p1 | +| params_flow.rb:157:12:157:17 | Pair | type tracker without call steps | params_flow.rb:157:12:157:17 | Pair | +| params_flow.rb:157:16:157:17 | Array | type tracker without call steps | params_flow.rb:157:16:157:17 | Array | +| params_flow.rb:157:16:157:17 | call to [] | type tracker with call steps | params_flow.rb:153:23:153:24 | p1 | +| params_flow.rb:157:16:157:17 | call to [] | type tracker with call steps with content element :p1 | params_flow.rb:153:1:155:3 | synthetic hash-splat parameter | +| params_flow.rb:157:16:157:17 | call to [] | type tracker without call steps | params_flow.rb:157:16:157:17 | call to [] | +| params_flow.rb:157:16:157:17 | call to [] | type tracker without call steps | params_flow.rb:158:6:158:16 | ...[...] | +| params_flow.rb:157:16:157:17 | call to [] | type tracker without call steps | params_flow.rb:160:6:160:16 | ...[...] | +| params_flow.rb:157:16:157:17 | call to [] | type tracker without call steps with content element :p1 | params_flow.rb:157:10:157:34 | call to [] | +| params_flow.rb:157:16:157:17 | call to [] | type tracker without call steps with content element :p1 | params_flow.rb:157:10:157:34 | synthetic hash-splat argument | +| params_flow.rb:157:16:157:17 | call to [] | type tracker without call steps with content element :p1 | params_flow.rb:159:19:159:26 | ** ... | +| params_flow.rb:157:20:157:21 | :p2 | type tracker without call steps | params_flow.rb:157:20:157:21 | :p2 | +| params_flow.rb:157:20:157:32 | Pair | type tracker without call steps | params_flow.rb:157:20:157:32 | Pair | +| params_flow.rb:157:24:157:32 | call to taint | type tracker with call steps | params_flow.rb:153:28:153:29 | p2 | +| params_flow.rb:157:24:157:32 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:154:5:154:6 | [post] p1 | +| params_flow.rb:157:24:157:32 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:154:5:154:20 | call to insert | +| params_flow.rb:157:24:157:32 | call to taint | type tracker with call steps with content element :p2 | params_flow.rb:153:1:155:3 | synthetic hash-splat parameter | +| params_flow.rb:157:24:157:32 | call to taint | type tracker with call steps with content splat position 1 | params_flow.rb:154:5:154:20 | synthetic splat argument | +| params_flow.rb:157:24:157:32 | call to taint | type tracker without call steps | params_flow.rb:157:24:157:32 | call to taint | +| params_flow.rb:157:24:157:32 | call to taint | type tracker without call steps with content element :p2 | params_flow.rb:157:10:157:34 | call to [] | +| params_flow.rb:157:24:157:32 | call to taint | type tracker without call steps with content element :p2 | params_flow.rb:157:10:157:34 | synthetic hash-splat argument | +| params_flow.rb:157:24:157:32 | call to taint | type tracker without call steps with content element :p2 | params_flow.rb:159:19:159:26 | ** ... | +| params_flow.rb:157:24:157:32 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:157:24:157:32 | synthetic splat argument | type tracker without call steps | params_flow.rb:157:24:157:32 | synthetic splat argument | +| params_flow.rb:157:30:157:31 | 74 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:157:30:157:31 | 74 | type tracker with call steps | params_flow.rb:153:28:153:29 | p2 | +| params_flow.rb:157:30:157:31 | 74 | type tracker with call steps with content element 0 or unknown | params_flow.rb:154:5:154:6 | [post] p1 | +| params_flow.rb:157:30:157:31 | 74 | type tracker with call steps with content element 0 or unknown | params_flow.rb:154:5:154:20 | call to insert | +| params_flow.rb:157:30:157:31 | 74 | type tracker with call steps with content element :p2 | params_flow.rb:153:1:155:3 | synthetic hash-splat parameter | +| params_flow.rb:157:30:157:31 | 74 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:157:30:157:31 | 74 | type tracker with call steps with content splat position 1 | params_flow.rb:154:5:154:20 | synthetic splat argument | +| params_flow.rb:157:30:157:31 | 74 | type tracker without call steps | params_flow.rb:157:24:157:32 | call to taint | +| params_flow.rb:157:30:157:31 | 74 | type tracker without call steps | params_flow.rb:157:30:157:31 | 74 | +| params_flow.rb:157:30:157:31 | 74 | type tracker without call steps with content element :p2 | params_flow.rb:157:10:157:34 | call to [] | +| params_flow.rb:157:30:157:31 | 74 | type tracker without call steps with content element :p2 | params_flow.rb:157:10:157:34 | synthetic hash-splat argument | +| params_flow.rb:157:30:157:31 | 74 | type tracker without call steps with content element :p2 | params_flow.rb:159:19:159:26 | ** ... | +| params_flow.rb:157:30:157:31 | 74 | type tracker without call steps with content splat position 0 | params_flow.rb:157:24:157:32 | synthetic splat argument | +| params_flow.rb:158:1:158:20 | call to sink | type tracker without call steps | params_flow.rb:158:1:158:20 | call to sink | +| params_flow.rb:158:1:158:20 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:158:1:158:20 | synthetic splat argument | type tracker without call steps | params_flow.rb:158:1:158:20 | synthetic splat argument | +| params_flow.rb:158:6:158:16 | ...[...] | type tracker without call steps | params_flow.rb:158:6:158:16 | ...[...] | +| params_flow.rb:158:6:158:16 | synthetic splat argument | type tracker without call steps | params_flow.rb:158:6:158:16 | synthetic splat argument | +| params_flow.rb:158:6:158:19 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:158:6:158:19 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:158:6:158:19 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:158:6:158:19 | ...[...] | type tracker without call steps | params_flow.rb:158:6:158:19 | ...[...] | +| params_flow.rb:158:6:158:19 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:158:1:158:20 | synthetic splat argument | +| params_flow.rb:158:6:158:19 | synthetic splat argument | type tracker without call steps | params_flow.rb:158:6:158:19 | synthetic splat argument | +| params_flow.rb:158:13:158:15 | :p1 | type tracker without call steps | params_flow.rb:158:13:158:15 | :p1 | +| params_flow.rb:158:13:158:15 | :p1 | type tracker without call steps with content splat position 0 | params_flow.rb:158:6:158:16 | synthetic splat argument | +| params_flow.rb:158:18:158:18 | 0 | type tracker without call steps | params_flow.rb:158:18:158:18 | 0 | +| params_flow.rb:158:18:158:18 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:158:6:158:19 | synthetic splat argument | +| params_flow.rb:159:1:159:27 | call to keywordSideEffect | type tracker without call steps | params_flow.rb:159:1:159:27 | call to keywordSideEffect | +| params_flow.rb:159:19:159:26 | ** ... | type tracker with call steps | params_flow.rb:153:1:155:3 | synthetic hash-splat parameter | +| params_flow.rb:159:19:159:26 | ** ... | type tracker without call steps | params_flow.rb:159:19:159:26 | ** ... | +| params_flow.rb:160:1:160:20 | call to sink | type tracker without call steps | params_flow.rb:160:1:160:20 | call to sink | +| params_flow.rb:160:1:160:20 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:160:1:160:20 | synthetic splat argument | type tracker without call steps | params_flow.rb:160:1:160:20 | synthetic splat argument | +| params_flow.rb:160:6:160:16 | ...[...] | type tracker without call steps | params_flow.rb:160:6:160:16 | ...[...] | +| params_flow.rb:160:6:160:16 | synthetic splat argument | type tracker without call steps | params_flow.rb:160:6:160:16 | synthetic splat argument | +| params_flow.rb:160:6:160:19 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:160:6:160:19 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:160:6:160:19 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:160:6:160:19 | ...[...] | type tracker without call steps | params_flow.rb:160:6:160:19 | ...[...] | +| params_flow.rb:160:6:160:19 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:160:1:160:20 | synthetic splat argument | +| params_flow.rb:160:6:160:19 | synthetic splat argument | type tracker without call steps | params_flow.rb:160:6:160:19 | synthetic splat argument | +| params_flow.rb:160:13:160:15 | :p1 | type tracker without call steps | params_flow.rb:160:13:160:15 | :p1 | +| params_flow.rb:160:13:160:15 | :p1 | type tracker without call steps with content splat position 0 | params_flow.rb:160:6:160:16 | synthetic splat argument | +| params_flow.rb:160:18:160:18 | 0 | type tracker without call steps | params_flow.rb:160:18:160:18 | 0 | +| params_flow.rb:160:18:160:18 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:160:6:160:19 | synthetic splat argument | +| params_flow.rb:162:1:162:2 | p1 | type tracker without call steps | params_flow.rb:162:1:162:2 | p1 | +| params_flow.rb:162:6:162:7 | Array | type tracker without call steps | params_flow.rb:162:6:162:7 | Array | +| params_flow.rb:162:6:162:7 | call to [] | type tracker with call steps | params_flow.rb:153:23:153:24 | p1 | +| params_flow.rb:162:6:162:7 | call to [] | type tracker with call steps with content hash-splat position :p1 | params_flow.rb:153:1:155:3 | synthetic hash-splat parameter | +| params_flow.rb:162:6:162:7 | call to [] | type tracker without call steps | params_flow.rb:162:6:162:7 | call to [] | +| params_flow.rb:162:6:162:7 | call to [] | type tracker without call steps with content hash-splat position :p1 | params_flow.rb:164:1:164:40 | synthetic hash-splat argument | +| params_flow.rb:163:1:163:11 | call to sink | type tracker without call steps | params_flow.rb:163:1:163:11 | call to sink | +| params_flow.rb:163:1:163:11 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:163:1:163:11 | synthetic splat argument | type tracker without call steps | params_flow.rb:163:1:163:11 | synthetic splat argument | +| params_flow.rb:163:6:163:10 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:163:6:163:10 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:163:6:163:10 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:163:6:163:10 | ...[...] | type tracker without call steps | params_flow.rb:163:6:163:10 | ...[...] | +| params_flow.rb:163:6:163:10 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:163:1:163:11 | synthetic splat argument | +| params_flow.rb:163:6:163:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:163:6:163:10 | synthetic splat argument | +| params_flow.rb:163:9:163:9 | 0 | type tracker without call steps | params_flow.rb:163:9:163:9 | 0 | +| params_flow.rb:163:9:163:9 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:163:6:163:10 | synthetic splat argument | +| params_flow.rb:164:1:164:40 | call to keywordSideEffect | type tracker without call steps | params_flow.rb:164:1:164:40 | call to keywordSideEffect | +| params_flow.rb:164:1:164:40 | synthetic hash-splat argument | type tracker with call steps | params_flow.rb:153:1:155:3 | synthetic hash-splat parameter | +| params_flow.rb:164:1:164:40 | synthetic hash-splat argument | type tracker without call steps | params_flow.rb:164:1:164:40 | synthetic hash-splat argument | +| params_flow.rb:164:19:164:20 | :p1 | type tracker without call steps | params_flow.rb:164:19:164:20 | :p1 | +| params_flow.rb:164:19:164:24 | Pair | type tracker without call steps | params_flow.rb:164:19:164:24 | Pair | +| params_flow.rb:164:27:164:28 | :p2 | type tracker without call steps | params_flow.rb:164:27:164:28 | :p2 | +| params_flow.rb:164:27:164:39 | Pair | type tracker without call steps | params_flow.rb:164:27:164:39 | Pair | +| params_flow.rb:164:31:164:39 | call to taint | type tracker with call steps | params_flow.rb:153:28:153:29 | p2 | +| params_flow.rb:164:31:164:39 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:154:5:154:6 | [post] p1 | +| params_flow.rb:164:31:164:39 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:154:5:154:20 | call to insert | +| params_flow.rb:164:31:164:39 | call to taint | type tracker with call steps with content hash-splat position :p2 | params_flow.rb:153:1:155:3 | synthetic hash-splat parameter | +| params_flow.rb:164:31:164:39 | call to taint | type tracker with call steps with content splat position 1 | params_flow.rb:154:5:154:20 | synthetic splat argument | +| params_flow.rb:164:31:164:39 | call to taint | type tracker without call steps | params_flow.rb:164:31:164:39 | call to taint | +| params_flow.rb:164:31:164:39 | call to taint | type tracker without call steps with content hash-splat position :p2 | params_flow.rb:164:1:164:40 | synthetic hash-splat argument | +| params_flow.rb:164:31:164:39 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:164:31:164:39 | synthetic splat argument | type tracker without call steps | params_flow.rb:164:31:164:39 | synthetic splat argument | +| params_flow.rb:164:37:164:38 | 75 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:164:37:164:38 | 75 | type tracker with call steps | params_flow.rb:153:28:153:29 | p2 | +| params_flow.rb:164:37:164:38 | 75 | type tracker with call steps with content element 0 or unknown | params_flow.rb:154:5:154:6 | [post] p1 | +| params_flow.rb:164:37:164:38 | 75 | type tracker with call steps with content element 0 or unknown | params_flow.rb:154:5:154:20 | call to insert | +| params_flow.rb:164:37:164:38 | 75 | type tracker with call steps with content hash-splat position :p2 | params_flow.rb:153:1:155:3 | synthetic hash-splat parameter | +| params_flow.rb:164:37:164:38 | 75 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:164:37:164:38 | 75 | type tracker with call steps with content splat position 1 | params_flow.rb:154:5:154:20 | synthetic splat argument | +| params_flow.rb:164:37:164:38 | 75 | type tracker without call steps | params_flow.rb:164:31:164:39 | call to taint | +| params_flow.rb:164:37:164:38 | 75 | type tracker without call steps | params_flow.rb:164:37:164:38 | 75 | +| params_flow.rb:164:37:164:38 | 75 | type tracker without call steps with content hash-splat position :p2 | params_flow.rb:164:1:164:40 | synthetic hash-splat argument | +| params_flow.rb:164:37:164:38 | 75 | type tracker without call steps with content splat position 0 | params_flow.rb:164:31:164:39 | synthetic splat argument | +| params_flow.rb:165:1:165:11 | call to sink | type tracker without call steps | params_flow.rb:165:1:165:11 | call to sink | +| params_flow.rb:165:1:165:11 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:165:1:165:11 | synthetic splat argument | type tracker without call steps | params_flow.rb:165:1:165:11 | synthetic splat argument | +| params_flow.rb:165:6:165:10 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:165:6:165:10 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:165:6:165:10 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:165:6:165:10 | ...[...] | type tracker without call steps | params_flow.rb:165:6:165:10 | ...[...] | +| params_flow.rb:165:6:165:10 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:165:1:165:11 | synthetic splat argument | +| params_flow.rb:165:6:165:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:165:6:165:10 | synthetic splat argument | +| params_flow.rb:165:9:165:9 | 0 | type tracker without call steps | params_flow.rb:165:9:165:9 | 0 | +| params_flow.rb:165:9:165:9 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:165:6:165:10 | synthetic splat argument | +| params_flow.rb:167:1:169:3 | &block | type tracker without call steps | params_flow.rb:167:1:169:3 | &block | +| params_flow.rb:167:1:169:3 | self in splatSideEffect | type tracker without call steps | params_flow.rb:167:1:169:3 | self in splatSideEffect | +| params_flow.rb:167:1:169:3 | splatSideEffect | type tracker without call steps | params_flow.rb:167:1:169:3 | splatSideEffect | +| params_flow.rb:167:21:167:28 | *posargs | type tracker without call steps | params_flow.rb:167:21:167:28 | *posargs | +| params_flow.rb:167:22:167:28 | posargs | type tracker without call steps | params_flow.rb:167:22:167:28 | posargs | +| params_flow.rb:168:5:168:14 | ...[...] | type tracker without call steps | params_flow.rb:168:5:168:14 | ...[...] | +| params_flow.rb:168:5:168:14 | [post] ...[...] | type tracker without call steps | params_flow.rb:168:5:168:14 | [post] ...[...] | +| params_flow.rb:168:5:168:14 | synthetic splat argument | type tracker without call steps | params_flow.rb:168:5:168:14 | synthetic splat argument | +| params_flow.rb:168:5:168:36 | call to insert | type tracker without call steps | params_flow.rb:168:5:168:36 | call to insert | +| params_flow.rb:168:5:168:36 | call to insert | type tracker without call steps | params_flow.rb:173:1:173:25 | call to splatSideEffect | +| params_flow.rb:168:5:168:36 | call to insert | type tracker without call steps | params_flow.rb:178:1:178:30 | call to splatSideEffect | +| params_flow.rb:168:5:168:36 | synthetic splat argument | type tracker without call steps | params_flow.rb:168:5:168:36 | synthetic splat argument | +| params_flow.rb:168:13:168:13 | 0 | type tracker without call steps | params_flow.rb:168:13:168:13 | 0 | +| params_flow.rb:168:13:168:13 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:168:5:168:14 | synthetic splat argument | +| params_flow.rb:168:23:168:23 | 0 | type tracker without call steps | params_flow.rb:168:23:168:23 | 0 | +| params_flow.rb:168:23:168:23 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:168:5:168:36 | synthetic splat argument | +| params_flow.rb:168:26:168:35 | ...[...] | type tracker without call steps | params_flow.rb:168:26:168:35 | ...[...] | +| params_flow.rb:168:26:168:35 | ...[...] | type tracker without call steps with content element 0 or unknown | params_flow.rb:168:5:168:14 | [post] ...[...] | +| params_flow.rb:168:26:168:35 | ...[...] | type tracker without call steps with content element 0 or unknown | params_flow.rb:168:5:168:36 | call to insert | +| params_flow.rb:168:26:168:35 | ...[...] | type tracker without call steps with content element 0 or unknown | params_flow.rb:173:1:173:25 | call to splatSideEffect | +| params_flow.rb:168:26:168:35 | ...[...] | type tracker without call steps with content element 0 or unknown | params_flow.rb:178:1:178:30 | call to splatSideEffect | +| params_flow.rb:168:26:168:35 | ...[...] | type tracker without call steps with content splat position 1 | params_flow.rb:168:5:168:36 | synthetic splat argument | +| params_flow.rb:168:26:168:35 | synthetic splat argument | type tracker without call steps | params_flow.rb:168:26:168:35 | synthetic splat argument | +| params_flow.rb:168:34:168:34 | 1 | type tracker without call steps | params_flow.rb:168:34:168:34 | 1 | +| params_flow.rb:168:34:168:34 | 1 | type tracker without call steps with content splat position 0 | params_flow.rb:168:26:168:35 | synthetic splat argument | +| params_flow.rb:171:1:171:7 | posargs | type tracker without call steps | params_flow.rb:171:1:171:7 | posargs | +| params_flow.rb:171:11:171:27 | Array | type tracker without call steps | params_flow.rb:171:11:171:27 | Array | +| params_flow.rb:171:11:171:27 | call to [] | type tracker with call steps | params_flow.rb:168:5:168:14 | ...[...] | +| params_flow.rb:171:11:171:27 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:167:21:167:28 | *posargs | +| params_flow.rb:171:11:171:27 | call to [] | type tracker without call steps | params_flow.rb:171:11:171:27 | call to [] | +| params_flow.rb:171:11:171:27 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:173:17:173:24 | * ... | +| params_flow.rb:171:11:171:27 | synthetic splat argument | type tracker with call steps | params_flow.rb:168:5:168:14 | ...[...] | +| params_flow.rb:171:11:171:27 | synthetic splat argument | type tracker with call steps with content element 0 or unknown | params_flow.rb:167:21:167:28 | *posargs | +| params_flow.rb:171:11:171:27 | synthetic splat argument | type tracker without call steps | params_flow.rb:171:11:171:27 | call to [] | +| params_flow.rb:171:11:171:27 | synthetic splat argument | type tracker without call steps | params_flow.rb:171:11:171:27 | synthetic splat argument | +| params_flow.rb:171:11:171:27 | synthetic splat argument | type tracker without call steps with content element 0 or unknown | params_flow.rb:173:17:173:24 | * ... | +| params_flow.rb:171:13:171:14 | Array | type tracker without call steps | params_flow.rb:171:13:171:14 | Array | +| params_flow.rb:171:13:171:14 | call to [] | type tracker with call steps | params_flow.rb:168:5:168:14 | ...[...] | +| params_flow.rb:171:13:171:14 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:167:21:167:28 | *posargs | +| params_flow.rb:171:13:171:14 | call to [] | type tracker without call steps | params_flow.rb:171:13:171:14 | call to [] | +| params_flow.rb:171:13:171:14 | call to [] | type tracker without call steps | params_flow.rb:172:6:172:15 | ...[...] | +| params_flow.rb:171:13:171:14 | call to [] | type tracker without call steps | params_flow.rb:174:6:174:15 | ...[...] | +| params_flow.rb:171:13:171:14 | call to [] | type tracker without call steps with content element 0 | params_flow.rb:171:11:171:27 | call to [] | +| params_flow.rb:171:13:171:14 | call to [] | type tracker without call steps with content element 0 | params_flow.rb:171:11:171:27 | synthetic splat argument | +| params_flow.rb:171:13:171:14 | call to [] | type tracker without call steps with content element 0 | params_flow.rb:173:17:173:24 | * ... | +| params_flow.rb:171:17:171:25 | call to taint | type tracker with call steps | params_flow.rb:168:26:168:35 | ...[...] | +| params_flow.rb:171:17:171:25 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:168:5:168:14 | [post] ...[...] | +| params_flow.rb:171:17:171:25 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:168:5:168:36 | call to insert | +| params_flow.rb:171:17:171:25 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:167:21:167:28 | *posargs | +| params_flow.rb:171:17:171:25 | call to taint | type tracker with call steps with content splat position 1 | params_flow.rb:168:5:168:36 | synthetic splat argument | +| params_flow.rb:171:17:171:25 | call to taint | type tracker without call steps | params_flow.rb:171:17:171:25 | call to taint | +| params_flow.rb:171:17:171:25 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:171:11:171:27 | call to [] | +| params_flow.rb:171:17:171:25 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:171:11:171:27 | synthetic splat argument | +| params_flow.rb:171:17:171:25 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:173:17:173:24 | * ... | +| params_flow.rb:171:17:171:25 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:171:17:171:25 | synthetic splat argument | type tracker without call steps | params_flow.rb:171:17:171:25 | synthetic splat argument | +| params_flow.rb:171:23:171:24 | 76 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:171:23:171:24 | 76 | type tracker with call steps | params_flow.rb:168:26:168:35 | ...[...] | +| params_flow.rb:171:23:171:24 | 76 | type tracker with call steps with content element 0 or unknown | params_flow.rb:168:5:168:14 | [post] ...[...] | +| params_flow.rb:171:23:171:24 | 76 | type tracker with call steps with content element 0 or unknown | params_flow.rb:168:5:168:36 | call to insert | +| params_flow.rb:171:23:171:24 | 76 | type tracker with call steps with content element 1 | params_flow.rb:167:21:167:28 | *posargs | +| params_flow.rb:171:23:171:24 | 76 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:171:23:171:24 | 76 | type tracker with call steps with content splat position 1 | params_flow.rb:168:5:168:36 | synthetic splat argument | +| params_flow.rb:171:23:171:24 | 76 | type tracker without call steps | params_flow.rb:171:17:171:25 | call to taint | +| params_flow.rb:171:23:171:24 | 76 | type tracker without call steps | params_flow.rb:171:23:171:24 | 76 | +| params_flow.rb:171:23:171:24 | 76 | type tracker without call steps with content element 1 | params_flow.rb:171:11:171:27 | call to [] | +| params_flow.rb:171:23:171:24 | 76 | type tracker without call steps with content element 1 | params_flow.rb:171:11:171:27 | synthetic splat argument | +| params_flow.rb:171:23:171:24 | 76 | type tracker without call steps with content element 1 | params_flow.rb:173:17:173:24 | * ... | +| params_flow.rb:171:23:171:24 | 76 | type tracker without call steps with content splat position 0 | params_flow.rb:171:17:171:25 | synthetic splat argument | +| params_flow.rb:172:1:172:19 | call to sink | type tracker without call steps | params_flow.rb:172:1:172:19 | call to sink | +| params_flow.rb:172:1:172:19 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:172:1:172:19 | synthetic splat argument | type tracker without call steps | params_flow.rb:172:1:172:19 | synthetic splat argument | +| params_flow.rb:172:6:172:15 | ...[...] | type tracker without call steps | params_flow.rb:172:6:172:15 | ...[...] | +| params_flow.rb:172:6:172:15 | synthetic splat argument | type tracker without call steps | params_flow.rb:172:6:172:15 | synthetic splat argument | +| params_flow.rb:172:6:172:18 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:172:6:172:18 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:172:6:172:18 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:172:6:172:18 | ...[...] | type tracker without call steps | params_flow.rb:172:6:172:18 | ...[...] | +| params_flow.rb:172:6:172:18 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:172:1:172:19 | synthetic splat argument | +| params_flow.rb:172:6:172:18 | synthetic splat argument | type tracker without call steps | params_flow.rb:172:6:172:18 | synthetic splat argument | +| params_flow.rb:172:14:172:14 | 0 | type tracker without call steps | params_flow.rb:172:14:172:14 | 0 | +| params_flow.rb:172:14:172:14 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:172:6:172:15 | synthetic splat argument | +| params_flow.rb:172:17:172:17 | 0 | type tracker without call steps | params_flow.rb:172:17:172:17 | 0 | +| params_flow.rb:172:17:172:17 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:172:6:172:18 | synthetic splat argument | +| params_flow.rb:173:1:173:25 | call to splatSideEffect | type tracker without call steps | params_flow.rb:173:1:173:25 | call to splatSideEffect | +| params_flow.rb:173:17:173:24 | * ... | type tracker with call steps | params_flow.rb:167:21:167:28 | *posargs | +| params_flow.rb:173:17:173:24 | * ... | type tracker without call steps | params_flow.rb:173:17:173:24 | * ... | +| params_flow.rb:174:1:174:19 | call to sink | type tracker without call steps | params_flow.rb:174:1:174:19 | call to sink | +| params_flow.rb:174:1:174:19 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:174:1:174:19 | synthetic splat argument | type tracker without call steps | params_flow.rb:174:1:174:19 | synthetic splat argument | +| params_flow.rb:174:6:174:15 | ...[...] | type tracker without call steps | params_flow.rb:174:6:174:15 | ...[...] | +| params_flow.rb:174:6:174:15 | synthetic splat argument | type tracker without call steps | params_flow.rb:174:6:174:15 | synthetic splat argument | +| params_flow.rb:174:6:174:18 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:174:6:174:18 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:174:6:174:18 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:174:6:174:18 | ...[...] | type tracker without call steps | params_flow.rb:174:6:174:18 | ...[...] | +| params_flow.rb:174:6:174:18 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:174:1:174:19 | synthetic splat argument | +| params_flow.rb:174:6:174:18 | synthetic splat argument | type tracker without call steps | params_flow.rb:174:6:174:18 | synthetic splat argument | +| params_flow.rb:174:14:174:14 | 0 | type tracker without call steps | params_flow.rb:174:14:174:14 | 0 | +| params_flow.rb:174:14:174:14 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:174:6:174:15 | synthetic splat argument | +| params_flow.rb:174:17:174:17 | 0 | type tracker without call steps | params_flow.rb:174:17:174:17 | 0 | +| params_flow.rb:174:17:174:17 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:174:6:174:18 | synthetic splat argument | +| params_flow.rb:176:1:176:2 | p1 | type tracker without call steps | params_flow.rb:176:1:176:2 | p1 | +| params_flow.rb:176:6:176:7 | Array | type tracker without call steps | params_flow.rb:176:6:176:7 | Array | +| params_flow.rb:176:6:176:7 | call to [] | type tracker with call steps | params_flow.rb:168:5:168:14 | ...[...] | +| params_flow.rb:176:6:176:7 | call to [] | type tracker with call steps with content splat position 0 | params_flow.rb:167:21:167:28 | *posargs | +| params_flow.rb:176:6:176:7 | call to [] | type tracker without call steps | params_flow.rb:176:6:176:7 | call to [] | +| params_flow.rb:176:6:176:7 | call to [] | type tracker without call steps with content splat position 0 | params_flow.rb:178:1:178:30 | synthetic splat argument | +| params_flow.rb:177:1:177:11 | call to sink | type tracker without call steps | params_flow.rb:177:1:177:11 | call to sink | +| params_flow.rb:177:1:177:11 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:177:1:177:11 | synthetic splat argument | type tracker without call steps | params_flow.rb:177:1:177:11 | synthetic splat argument | +| params_flow.rb:177:6:177:10 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:177:6:177:10 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:177:6:177:10 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:177:6:177:10 | ...[...] | type tracker without call steps | params_flow.rb:177:6:177:10 | ...[...] | +| params_flow.rb:177:6:177:10 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:177:1:177:11 | synthetic splat argument | +| params_flow.rb:177:6:177:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:177:6:177:10 | synthetic splat argument | +| params_flow.rb:177:9:177:9 | 0 | type tracker without call steps | params_flow.rb:177:9:177:9 | 0 | +| params_flow.rb:177:9:177:9 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:177:6:177:10 | synthetic splat argument | +| params_flow.rb:178:1:178:30 | call to splatSideEffect | type tracker without call steps | params_flow.rb:178:1:178:30 | call to splatSideEffect | +| params_flow.rb:178:1:178:30 | synthetic splat argument | type tracker with call steps | params_flow.rb:167:21:167:28 | *posargs | +| params_flow.rb:178:1:178:30 | synthetic splat argument | type tracker without call steps | params_flow.rb:178:1:178:30 | synthetic splat argument | +| params_flow.rb:178:21:178:29 | call to taint | type tracker with call steps | params_flow.rb:168:26:168:35 | ...[...] | +| params_flow.rb:178:21:178:29 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:168:5:168:14 | [post] ...[...] | +| params_flow.rb:178:21:178:29 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:168:5:168:36 | call to insert | +| params_flow.rb:178:21:178:29 | call to taint | type tracker with call steps with content splat position 1 | params_flow.rb:167:21:167:28 | *posargs | +| params_flow.rb:178:21:178:29 | call to taint | type tracker with call steps with content splat position 1 | params_flow.rb:168:5:168:36 | synthetic splat argument | +| params_flow.rb:178:21:178:29 | call to taint | type tracker without call steps | params_flow.rb:178:21:178:29 | call to taint | +| params_flow.rb:178:21:178:29 | call to taint | type tracker without call steps with content splat position 1 | params_flow.rb:178:1:178:30 | synthetic splat argument | +| params_flow.rb:178:21:178:29 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:178:21:178:29 | synthetic splat argument | type tracker without call steps | params_flow.rb:178:21:178:29 | synthetic splat argument | +| params_flow.rb:178:27:178:28 | 77 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:178:27:178:28 | 77 | type tracker with call steps | params_flow.rb:168:26:168:35 | ...[...] | +| params_flow.rb:178:27:178:28 | 77 | type tracker with call steps with content element 0 or unknown | params_flow.rb:168:5:168:14 | [post] ...[...] | +| params_flow.rb:178:27:178:28 | 77 | type tracker with call steps with content element 0 or unknown | params_flow.rb:168:5:168:36 | call to insert | +| params_flow.rb:178:27:178:28 | 77 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:178:27:178:28 | 77 | type tracker with call steps with content splat position 1 | params_flow.rb:167:21:167:28 | *posargs | +| params_flow.rb:178:27:178:28 | 77 | type tracker with call steps with content splat position 1 | params_flow.rb:168:5:168:36 | synthetic splat argument | +| params_flow.rb:178:27:178:28 | 77 | type tracker without call steps | params_flow.rb:178:21:178:29 | call to taint | +| params_flow.rb:178:27:178:28 | 77 | type tracker without call steps | params_flow.rb:178:27:178:28 | 77 | +| params_flow.rb:178:27:178:28 | 77 | type tracker without call steps with content splat position 0 | params_flow.rb:178:21:178:29 | synthetic splat argument | +| params_flow.rb:178:27:178:28 | 77 | type tracker without call steps with content splat position 1 | params_flow.rb:178:1:178:30 | synthetic splat argument | +| params_flow.rb:179:1:179:11 | call to sink | type tracker without call steps | params_flow.rb:179:1:179:11 | call to sink | +| params_flow.rb:179:1:179:11 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:179:1:179:11 | synthetic splat argument | type tracker without call steps | params_flow.rb:179:1:179:11 | synthetic splat argument | +| params_flow.rb:179:6:179:10 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:179:6:179:10 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:179:6:179:10 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:179:6:179:10 | ...[...] | type tracker without call steps | params_flow.rb:179:6:179:10 | ...[...] | +| params_flow.rb:179:6:179:10 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:179:1:179:11 | synthetic splat argument | +| params_flow.rb:179:6:179:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:179:6:179:10 | synthetic splat argument | +| params_flow.rb:179:9:179:9 | 0 | type tracker without call steps | params_flow.rb:179:9:179:9 | 0 | +| params_flow.rb:179:9:179:9 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:179:6:179:10 | synthetic splat argument | +| params_flow.rb:181:1:183:3 | &block | type tracker without call steps | params_flow.rb:181:1:183:3 | &block | +| params_flow.rb:181:1:183:3 | positionSideEffect | type tracker without call steps | params_flow.rb:181:1:183:3 | positionSideEffect | +| params_flow.rb:181:1:183:3 | self in positionSideEffect | type tracker without call steps | params_flow.rb:181:1:183:3 | self in positionSideEffect | +| params_flow.rb:181:1:183:3 | synthetic splat parameter | type tracker without call steps | params_flow.rb:181:1:183:3 | synthetic splat parameter | +| params_flow.rb:181:24:181:25 | p1 | type tracker without call steps | params_flow.rb:181:24:181:25 | p1 | +| params_flow.rb:181:24:181:25 | p1 | type tracker without call steps | params_flow.rb:181:24:181:25 | p1 | +| params_flow.rb:181:28:181:29 | p2 | type tracker without call steps | params_flow.rb:181:28:181:29 | p2 | +| params_flow.rb:181:28:181:29 | p2 | type tracker without call steps | params_flow.rb:181:28:181:29 | p2 | +| params_flow.rb:181:28:181:29 | p2 | type tracker without call steps with content element 0 or unknown | params_flow.rb:182:5:182:6 | [post] p1 | +| params_flow.rb:181:28:181:29 | p2 | type tracker without call steps with content element 0 or unknown | params_flow.rb:182:5:182:20 | call to insert | +| params_flow.rb:181:28:181:29 | p2 | type tracker without call steps with content element 0 or unknown | params_flow.rb:187:1:187:25 | call to positionSideEffect | +| params_flow.rb:181:28:181:29 | p2 | type tracker without call steps with content element 0 or unknown | params_flow.rb:192:1:192:33 | call to positionSideEffect | +| params_flow.rb:181:28:181:29 | p2 | type tracker without call steps with content splat position 1 | params_flow.rb:182:5:182:20 | synthetic splat argument | +| params_flow.rb:182:5:182:6 | [post] p1 | type tracker without call steps | params_flow.rb:182:5:182:6 | [post] p1 | +| params_flow.rb:182:5:182:20 | call to insert | type tracker without call steps | params_flow.rb:182:5:182:20 | call to insert | +| params_flow.rb:182:5:182:20 | call to insert | type tracker without call steps | params_flow.rb:187:1:187:25 | call to positionSideEffect | +| params_flow.rb:182:5:182:20 | call to insert | type tracker without call steps | params_flow.rb:192:1:192:33 | call to positionSideEffect | +| params_flow.rb:182:5:182:20 | synthetic splat argument | type tracker without call steps | params_flow.rb:182:5:182:20 | synthetic splat argument | +| params_flow.rb:182:15:182:15 | 0 | type tracker without call steps | params_flow.rb:182:15:182:15 | 0 | +| params_flow.rb:182:15:182:15 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:182:5:182:20 | synthetic splat argument | +| params_flow.rb:185:1:185:4 | args | type tracker without call steps | params_flow.rb:185:1:185:4 | args | +| params_flow.rb:185:8:185:24 | Array | type tracker without call steps | params_flow.rb:185:8:185:24 | Array | +| params_flow.rb:185:8:185:24 | call to [] | type tracker with call steps | params_flow.rb:181:24:181:25 | p1 | +| params_flow.rb:185:8:185:24 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:181:1:183:3 | synthetic splat parameter | +| params_flow.rb:185:8:185:24 | call to [] | type tracker without call steps | params_flow.rb:185:8:185:24 | call to [] | +| params_flow.rb:185:8:185:24 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:187:20:187:24 | * ... | +| params_flow.rb:185:8:185:24 | synthetic splat argument | type tracker with call steps | params_flow.rb:181:24:181:25 | p1 | +| params_flow.rb:185:8:185:24 | synthetic splat argument | type tracker with call steps with content element 0 or unknown | params_flow.rb:181:1:183:3 | synthetic splat parameter | +| params_flow.rb:185:8:185:24 | synthetic splat argument | type tracker without call steps | params_flow.rb:185:8:185:24 | call to [] | +| params_flow.rb:185:8:185:24 | synthetic splat argument | type tracker without call steps | params_flow.rb:185:8:185:24 | synthetic splat argument | +| params_flow.rb:185:8:185:24 | synthetic splat argument | type tracker without call steps with content element 0 or unknown | params_flow.rb:187:20:187:24 | * ... | +| params_flow.rb:185:10:185:11 | Array | type tracker without call steps | params_flow.rb:185:10:185:11 | Array | +| params_flow.rb:185:10:185:11 | call to [] | type tracker with call steps | params_flow.rb:181:24:181:25 | p1 | +| params_flow.rb:185:10:185:11 | call to [] | type tracker with call steps with content element 0 | params_flow.rb:181:1:183:3 | synthetic splat parameter | +| params_flow.rb:185:10:185:11 | call to [] | type tracker without call steps | params_flow.rb:185:10:185:11 | call to [] | +| params_flow.rb:185:10:185:11 | call to [] | type tracker without call steps | params_flow.rb:186:6:186:12 | ...[...] | +| params_flow.rb:185:10:185:11 | call to [] | type tracker without call steps | params_flow.rb:188:6:188:12 | ...[...] | +| params_flow.rb:185:10:185:11 | call to [] | type tracker without call steps with content element 0 | params_flow.rb:185:8:185:24 | call to [] | +| params_flow.rb:185:10:185:11 | call to [] | type tracker without call steps with content element 0 | params_flow.rb:185:8:185:24 | synthetic splat argument | +| params_flow.rb:185:10:185:11 | call to [] | type tracker without call steps with content element 0 | params_flow.rb:187:20:187:24 | * ... | +| params_flow.rb:185:14:185:22 | call to taint | type tracker with call steps | params_flow.rb:181:28:181:29 | p2 | +| params_flow.rb:185:14:185:22 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:182:5:182:6 | [post] p1 | +| params_flow.rb:185:14:185:22 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:182:5:182:20 | call to insert | +| params_flow.rb:185:14:185:22 | call to taint | type tracker with call steps with content element 1 | params_flow.rb:181:1:183:3 | synthetic splat parameter | +| params_flow.rb:185:14:185:22 | call to taint | type tracker with call steps with content splat position 1 | params_flow.rb:182:5:182:20 | synthetic splat argument | +| params_flow.rb:185:14:185:22 | call to taint | type tracker without call steps | params_flow.rb:185:14:185:22 | call to taint | +| params_flow.rb:185:14:185:22 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:185:8:185:24 | call to [] | +| params_flow.rb:185:14:185:22 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:185:8:185:24 | synthetic splat argument | +| params_flow.rb:185:14:185:22 | call to taint | type tracker without call steps with content element 1 | params_flow.rb:187:20:187:24 | * ... | +| params_flow.rb:185:14:185:22 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:185:14:185:22 | synthetic splat argument | type tracker without call steps | params_flow.rb:185:14:185:22 | synthetic splat argument | +| params_flow.rb:185:20:185:21 | 78 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:185:20:185:21 | 78 | type tracker with call steps | params_flow.rb:181:28:181:29 | p2 | +| params_flow.rb:185:20:185:21 | 78 | type tracker with call steps with content element 0 or unknown | params_flow.rb:182:5:182:6 | [post] p1 | +| params_flow.rb:185:20:185:21 | 78 | type tracker with call steps with content element 0 or unknown | params_flow.rb:182:5:182:20 | call to insert | +| params_flow.rb:185:20:185:21 | 78 | type tracker with call steps with content element 1 | params_flow.rb:181:1:183:3 | synthetic splat parameter | +| params_flow.rb:185:20:185:21 | 78 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:185:20:185:21 | 78 | type tracker with call steps with content splat position 1 | params_flow.rb:182:5:182:20 | synthetic splat argument | +| params_flow.rb:185:20:185:21 | 78 | type tracker without call steps | params_flow.rb:185:14:185:22 | call to taint | +| params_flow.rb:185:20:185:21 | 78 | type tracker without call steps | params_flow.rb:185:20:185:21 | 78 | +| params_flow.rb:185:20:185:21 | 78 | type tracker without call steps with content element 1 | params_flow.rb:185:8:185:24 | call to [] | +| params_flow.rb:185:20:185:21 | 78 | type tracker without call steps with content element 1 | params_flow.rb:185:8:185:24 | synthetic splat argument | +| params_flow.rb:185:20:185:21 | 78 | type tracker without call steps with content element 1 | params_flow.rb:187:20:187:24 | * ... | +| params_flow.rb:185:20:185:21 | 78 | type tracker without call steps with content splat position 0 | params_flow.rb:185:14:185:22 | synthetic splat argument | +| params_flow.rb:186:1:186:16 | call to sink | type tracker without call steps | params_flow.rb:186:1:186:16 | call to sink | +| params_flow.rb:186:1:186:16 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:186:1:186:16 | synthetic splat argument | type tracker without call steps | params_flow.rb:186:1:186:16 | synthetic splat argument | +| params_flow.rb:186:6:186:12 | ...[...] | type tracker without call steps | params_flow.rb:186:6:186:12 | ...[...] | +| params_flow.rb:186:6:186:12 | synthetic splat argument | type tracker without call steps | params_flow.rb:186:6:186:12 | synthetic splat argument | +| params_flow.rb:186:6:186:15 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:186:6:186:15 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:186:6:186:15 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:186:6:186:15 | ...[...] | type tracker without call steps | params_flow.rb:186:6:186:15 | ...[...] | +| params_flow.rb:186:6:186:15 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:186:1:186:16 | synthetic splat argument | +| params_flow.rb:186:6:186:15 | synthetic splat argument | type tracker without call steps | params_flow.rb:186:6:186:15 | synthetic splat argument | +| params_flow.rb:186:11:186:11 | 0 | type tracker without call steps | params_flow.rb:186:11:186:11 | 0 | +| params_flow.rb:186:11:186:11 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:186:6:186:12 | synthetic splat argument | +| params_flow.rb:186:14:186:14 | 0 | type tracker without call steps | params_flow.rb:186:14:186:14 | 0 | +| params_flow.rb:186:14:186:14 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:186:6:186:15 | synthetic splat argument | +| params_flow.rb:187:1:187:25 | call to positionSideEffect | type tracker without call steps | params_flow.rb:187:1:187:25 | call to positionSideEffect | +| params_flow.rb:187:20:187:24 | * ... | type tracker with call steps | params_flow.rb:181:1:183:3 | synthetic splat parameter | +| params_flow.rb:187:20:187:24 | * ... | type tracker without call steps | params_flow.rb:187:20:187:24 | * ... | +| params_flow.rb:188:1:188:16 | call to sink | type tracker without call steps | params_flow.rb:188:1:188:16 | call to sink | +| params_flow.rb:188:1:188:16 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:188:1:188:16 | synthetic splat argument | type tracker without call steps | params_flow.rb:188:1:188:16 | synthetic splat argument | +| params_flow.rb:188:6:188:12 | ...[...] | type tracker without call steps | params_flow.rb:188:6:188:12 | ...[...] | +| params_flow.rb:188:6:188:12 | synthetic splat argument | type tracker without call steps | params_flow.rb:188:6:188:12 | synthetic splat argument | +| params_flow.rb:188:6:188:15 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:188:6:188:15 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:188:6:188:15 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:188:6:188:15 | ...[...] | type tracker without call steps | params_flow.rb:188:6:188:15 | ...[...] | +| params_flow.rb:188:6:188:15 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:188:1:188:16 | synthetic splat argument | +| params_flow.rb:188:6:188:15 | synthetic splat argument | type tracker without call steps | params_flow.rb:188:6:188:15 | synthetic splat argument | +| params_flow.rb:188:11:188:11 | 0 | type tracker without call steps | params_flow.rb:188:11:188:11 | 0 | +| params_flow.rb:188:11:188:11 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:188:6:188:12 | synthetic splat argument | +| params_flow.rb:188:14:188:14 | 0 | type tracker without call steps | params_flow.rb:188:14:188:14 | 0 | +| params_flow.rb:188:14:188:14 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:188:6:188:15 | synthetic splat argument | +| params_flow.rb:190:1:190:2 | p1 | type tracker without call steps | params_flow.rb:190:1:190:2 | p1 | +| params_flow.rb:190:6:190:7 | Array | type tracker without call steps | params_flow.rb:190:6:190:7 | Array | +| params_flow.rb:190:6:190:7 | call to [] | type tracker with call steps | params_flow.rb:181:24:181:25 | p1 | +| params_flow.rb:190:6:190:7 | call to [] | type tracker with call steps with content splat position 0 | params_flow.rb:181:1:183:3 | synthetic splat parameter | +| params_flow.rb:190:6:190:7 | call to [] | type tracker without call steps | params_flow.rb:190:6:190:7 | call to [] | +| params_flow.rb:190:6:190:7 | call to [] | type tracker without call steps with content splat position 0 | params_flow.rb:192:1:192:33 | synthetic splat argument | +| params_flow.rb:191:1:191:11 | call to sink | type tracker without call steps | params_flow.rb:191:1:191:11 | call to sink | +| params_flow.rb:191:1:191:11 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:191:1:191:11 | synthetic splat argument | type tracker without call steps | params_flow.rb:191:1:191:11 | synthetic splat argument | +| params_flow.rb:191:6:191:10 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:191:6:191:10 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:191:6:191:10 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:191:6:191:10 | ...[...] | type tracker without call steps | params_flow.rb:191:6:191:10 | ...[...] | +| params_flow.rb:191:6:191:10 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:191:1:191:11 | synthetic splat argument | +| params_flow.rb:191:6:191:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:191:6:191:10 | synthetic splat argument | +| params_flow.rb:191:9:191:9 | 0 | type tracker without call steps | params_flow.rb:191:9:191:9 | 0 | +| params_flow.rb:191:9:191:9 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:191:6:191:10 | synthetic splat argument | +| params_flow.rb:192:1:192:33 | call to positionSideEffect | type tracker without call steps | params_flow.rb:192:1:192:33 | call to positionSideEffect | +| params_flow.rb:192:1:192:33 | synthetic splat argument | type tracker with call steps | params_flow.rb:181:1:183:3 | synthetic splat parameter | +| params_flow.rb:192:1:192:33 | synthetic splat argument | type tracker without call steps | params_flow.rb:192:1:192:33 | synthetic splat argument | +| params_flow.rb:192:24:192:32 | call to taint | type tracker with call steps | params_flow.rb:181:28:181:29 | p2 | +| params_flow.rb:192:24:192:32 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:182:5:182:6 | [post] p1 | +| params_flow.rb:192:24:192:32 | call to taint | type tracker with call steps with content element 0 or unknown | params_flow.rb:182:5:182:20 | call to insert | +| params_flow.rb:192:24:192:32 | call to taint | type tracker with call steps with content splat position 1 | params_flow.rb:181:1:183:3 | synthetic splat parameter | +| params_flow.rb:192:24:192:32 | call to taint | type tracker with call steps with content splat position 1 | params_flow.rb:182:5:182:20 | synthetic splat argument | +| params_flow.rb:192:24:192:32 | call to taint | type tracker without call steps | params_flow.rb:192:24:192:32 | call to taint | +| params_flow.rb:192:24:192:32 | call to taint | type tracker without call steps with content splat position 1 | params_flow.rb:192:1:192:33 | synthetic splat argument | +| params_flow.rb:192:24:192:32 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:192:24:192:32 | synthetic splat argument | type tracker without call steps | params_flow.rb:192:24:192:32 | synthetic splat argument | +| params_flow.rb:192:30:192:31 | 79 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:192:30:192:31 | 79 | type tracker with call steps | params_flow.rb:181:28:181:29 | p2 | +| params_flow.rb:192:30:192:31 | 79 | type tracker with call steps with content element 0 or unknown | params_flow.rb:182:5:182:6 | [post] p1 | +| params_flow.rb:192:30:192:31 | 79 | type tracker with call steps with content element 0 or unknown | params_flow.rb:182:5:182:20 | call to insert | +| params_flow.rb:192:30:192:31 | 79 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:192:30:192:31 | 79 | type tracker with call steps with content splat position 1 | params_flow.rb:181:1:183:3 | synthetic splat parameter | +| params_flow.rb:192:30:192:31 | 79 | type tracker with call steps with content splat position 1 | params_flow.rb:182:5:182:20 | synthetic splat argument | +| params_flow.rb:192:30:192:31 | 79 | type tracker without call steps | params_flow.rb:192:24:192:32 | call to taint | +| params_flow.rb:192:30:192:31 | 79 | type tracker without call steps | params_flow.rb:192:30:192:31 | 79 | +| params_flow.rb:192:30:192:31 | 79 | type tracker without call steps with content splat position 0 | params_flow.rb:192:24:192:32 | synthetic splat argument | +| params_flow.rb:192:30:192:31 | 79 | type tracker without call steps with content splat position 1 | params_flow.rb:192:1:192:33 | synthetic splat argument | +| params_flow.rb:193:1:193:11 | call to sink | type tracker without call steps | params_flow.rb:193:1:193:11 | call to sink | +| params_flow.rb:193:1:193:11 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:193:1:193:11 | synthetic splat argument | type tracker without call steps | params_flow.rb:193:1:193:11 | synthetic splat argument | +| params_flow.rb:193:6:193:10 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:193:6:193:10 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:193:6:193:10 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:193:6:193:10 | ...[...] | type tracker without call steps | params_flow.rb:193:6:193:10 | ...[...] | +| params_flow.rb:193:6:193:10 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:193:1:193:11 | synthetic splat argument | +| params_flow.rb:193:6:193:10 | synthetic splat argument | type tracker without call steps | params_flow.rb:193:6:193:10 | synthetic splat argument | +| params_flow.rb:193:9:193:9 | 0 | type tracker without call steps | params_flow.rb:193:9:193:9 | 0 | +| params_flow.rb:193:9:193:9 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:193:6:193:10 | synthetic splat argument | +| params_flow.rb:195:1:195:8 | int_hash | type tracker without call steps | params_flow.rb:195:1:195:8 | int_hash | +| params_flow.rb:195:12:198:1 | Hash | type tracker without call steps | params_flow.rb:195:12:198:1 | Hash | +| params_flow.rb:195:12:198:1 | call to [] | type tracker with call steps | params_flow.rb:200:9:200:9 | x | +| params_flow.rb:195:12:198:1 | call to [] | type tracker with call steps with content element 0 or unknown | params_flow.rb:200:1:205:3 | synthetic splat parameter | +| params_flow.rb:195:12:198:1 | call to [] | type tracker without call steps | params_flow.rb:195:12:198:1 | call to [] | +| params_flow.rb:195:12:198:1 | call to [] | type tracker without call steps with content element 0 or unknown | params_flow.rb:207:5:207:13 | * ... | +| params_flow.rb:195:12:198:1 | synthetic hash-splat argument | type tracker with call steps | params_flow.rb:200:9:200:9 | x | +| params_flow.rb:195:12:198:1 | synthetic hash-splat argument | type tracker with call steps with content element 0 or unknown | params_flow.rb:200:1:205:3 | synthetic splat parameter | +| params_flow.rb:195:12:198:1 | synthetic hash-splat argument | type tracker without call steps | params_flow.rb:195:12:198:1 | call to [] | +| params_flow.rb:195:12:198:1 | synthetic hash-splat argument | type tracker without call steps | params_flow.rb:195:12:198:1 | synthetic hash-splat argument | +| params_flow.rb:195:12:198:1 | synthetic hash-splat argument | type tracker without call steps with content element 0 or unknown | params_flow.rb:207:5:207:13 | * ... | +| params_flow.rb:195:12:198:1 | synthetic splat argument | type tracker without call steps | params_flow.rb:195:12:198:1 | synthetic splat argument | +| params_flow.rb:196:5:196:5 | 0 | type tracker without call steps | params_flow.rb:196:5:196:5 | 0 | +| params_flow.rb:196:5:196:18 | Pair | type tracker without call steps | params_flow.rb:196:5:196:18 | Pair | +| params_flow.rb:196:5:196:18 | Pair | type tracker without call steps with content splat position 0 | params_flow.rb:195:12:198:1 | synthetic splat argument | +| params_flow.rb:196:10:196:18 | call to taint | type tracker with call steps | params_flow.rb:200:9:200:9 | x | +| params_flow.rb:196:10:196:18 | call to taint | type tracker with call steps with content element 0 | params_flow.rb:200:1:205:3 | synthetic splat parameter | +| params_flow.rb:196:10:196:18 | call to taint | type tracker without call steps | params_flow.rb:196:10:196:18 | call to taint | +| params_flow.rb:196:10:196:18 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:195:12:198:1 | call to [] | +| params_flow.rb:196:10:196:18 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:195:12:198:1 | synthetic hash-splat argument | +| params_flow.rb:196:10:196:18 | call to taint | type tracker without call steps with content element 0 | params_flow.rb:207:5:207:13 | * ... | +| params_flow.rb:196:10:196:18 | synthetic splat argument | type tracker with call steps | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:196:10:196:18 | synthetic splat argument | type tracker without call steps | params_flow.rb:196:10:196:18 | synthetic splat argument | +| params_flow.rb:196:16:196:17 | 80 | type tracker with call steps | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:196:16:196:17 | 80 | type tracker with call steps | params_flow.rb:200:9:200:9 | x | +| params_flow.rb:196:16:196:17 | 80 | type tracker with call steps with content element 0 | params_flow.rb:200:1:205:3 | synthetic splat parameter | +| params_flow.rb:196:16:196:17 | 80 | type tracker with call steps with content splat position 0 | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:196:16:196:17 | 80 | type tracker without call steps | params_flow.rb:196:10:196:18 | call to taint | +| params_flow.rb:196:16:196:17 | 80 | type tracker without call steps | params_flow.rb:196:16:196:17 | 80 | +| params_flow.rb:196:16:196:17 | 80 | type tracker without call steps with content element 0 | params_flow.rb:195:12:198:1 | call to [] | +| params_flow.rb:196:16:196:17 | 80 | type tracker without call steps with content element 0 | params_flow.rb:195:12:198:1 | synthetic hash-splat argument | +| params_flow.rb:196:16:196:17 | 80 | type tracker without call steps with content element 0 | params_flow.rb:207:5:207:13 | * ... | +| params_flow.rb:196:16:196:17 | 80 | type tracker without call steps with content splat position 0 | params_flow.rb:196:10:196:18 | synthetic splat argument | +| params_flow.rb:197:5:197:5 | 1 | type tracker without call steps | params_flow.rb:197:5:197:5 | 1 | +| params_flow.rb:197:5:197:12 | Pair | type tracker without call steps | params_flow.rb:197:5:197:12 | Pair | +| params_flow.rb:197:5:197:12 | Pair | type tracker without call steps with content splat position 1 | params_flow.rb:195:12:198:1 | synthetic splat argument | +| params_flow.rb:197:10:197:12 | "B" | type tracker with call steps | params_flow.rb:200:12:200:12 | y | +| params_flow.rb:197:10:197:12 | "B" | type tracker with call steps with content element 1 | params_flow.rb:200:1:205:3 | synthetic splat parameter | +| params_flow.rb:197:10:197:12 | "B" | type tracker without call steps | params_flow.rb:197:10:197:12 | "B" | +| params_flow.rb:197:10:197:12 | "B" | type tracker without call steps with content element 1 | params_flow.rb:195:12:198:1 | call to [] | +| params_flow.rb:197:10:197:12 | "B" | type tracker without call steps with content element 1 | params_flow.rb:195:12:198:1 | synthetic hash-splat argument | +| params_flow.rb:197:10:197:12 | "B" | type tracker without call steps with content element 1 | params_flow.rb:207:5:207:13 | * ... | +| params_flow.rb:200:1:205:3 | &block | type tracker without call steps | params_flow.rb:200:1:205:3 | &block | +| params_flow.rb:200:1:205:3 | foo | type tracker without call steps | params_flow.rb:200:1:205:3 | foo | +| params_flow.rb:200:1:205:3 | self in foo | type tracker with call steps | params_flow.rb:5:1:7:3 | self in sink | +| params_flow.rb:200:1:205:3 | self in foo | type tracker without call steps | params_flow.rb:200:1:205:3 | self in foo | +| params_flow.rb:200:1:205:3 | synthetic splat parameter | type tracker without call steps | params_flow.rb:200:1:205:3 | synthetic splat parameter | +| params_flow.rb:200:9:200:9 | x | type tracker without call steps | params_flow.rb:200:9:200:9 | x | +| params_flow.rb:200:9:200:9 | x | type tracker without call steps | params_flow.rb:200:9:200:9 | x | +| params_flow.rb:200:12:200:12 | y | type tracker without call steps | params_flow.rb:200:12:200:12 | y | +| params_flow.rb:200:12:200:12 | y | type tracker without call steps | params_flow.rb:200:12:200:12 | y | +| params_flow.rb:201:5:201:15 | call to sink | type tracker without call steps | params_flow.rb:201:5:201:15 | call to sink | +| params_flow.rb:201:5:201:15 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:201:5:201:15 | synthetic splat argument | type tracker without call steps | params_flow.rb:201:5:201:15 | synthetic splat argument | +| params_flow.rb:201:11:201:14 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:201:11:201:14 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:201:11:201:14 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:201:11:201:14 | ...[...] | type tracker without call steps | params_flow.rb:201:11:201:14 | ...[...] | +| params_flow.rb:201:11:201:14 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:201:5:201:15 | synthetic splat argument | +| params_flow.rb:201:11:201:14 | synthetic splat argument | type tracker without call steps | params_flow.rb:201:11:201:14 | synthetic splat argument | +| params_flow.rb:201:13:201:13 | 0 | type tracker without call steps | params_flow.rb:201:13:201:13 | 0 | +| params_flow.rb:201:13:201:13 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:201:11:201:14 | synthetic splat argument | +| params_flow.rb:202:5:202:15 | call to sink | type tracker without call steps | params_flow.rb:202:5:202:15 | call to sink | +| params_flow.rb:202:5:202:15 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:202:5:202:15 | synthetic splat argument | type tracker without call steps | params_flow.rb:202:5:202:15 | synthetic splat argument | +| params_flow.rb:202:11:202:14 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:202:11:202:14 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:202:11:202:14 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:202:11:202:14 | ...[...] | type tracker without call steps | params_flow.rb:202:11:202:14 | ...[...] | +| params_flow.rb:202:11:202:14 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:202:5:202:15 | synthetic splat argument | +| params_flow.rb:202:11:202:14 | synthetic splat argument | type tracker without call steps | params_flow.rb:202:11:202:14 | synthetic splat argument | +| params_flow.rb:202:13:202:13 | 1 | type tracker without call steps | params_flow.rb:202:13:202:13 | 1 | +| params_flow.rb:202:13:202:13 | 1 | type tracker without call steps with content splat position 0 | params_flow.rb:202:11:202:14 | synthetic splat argument | +| params_flow.rb:203:5:203:15 | call to sink | type tracker without call steps | params_flow.rb:203:5:203:15 | call to sink | +| params_flow.rb:203:5:203:15 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:203:5:203:15 | synthetic splat argument | type tracker without call steps | params_flow.rb:203:5:203:15 | synthetic splat argument | +| params_flow.rb:203:11:203:14 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:203:11:203:14 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:203:11:203:14 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:203:11:203:14 | ...[...] | type tracker without call steps | params_flow.rb:203:11:203:14 | ...[...] | +| params_flow.rb:203:11:203:14 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:203:5:203:15 | synthetic splat argument | +| params_flow.rb:203:11:203:14 | synthetic splat argument | type tracker without call steps | params_flow.rb:203:11:203:14 | synthetic splat argument | +| params_flow.rb:203:13:203:13 | 0 | type tracker without call steps | params_flow.rb:203:13:203:13 | 0 | +| params_flow.rb:203:13:203:13 | 0 | type tracker without call steps with content splat position 0 | params_flow.rb:203:11:203:14 | synthetic splat argument | +| params_flow.rb:204:5:204:15 | call to sink | type tracker without call steps | params_flow.rb:204:5:204:15 | call to sink | +| params_flow.rb:204:5:204:15 | call to sink | type tracker without call steps | params_flow.rb:207:1:207:14 | call to foo | +| params_flow.rb:204:5:204:15 | synthetic splat argument | type tracker with call steps | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:204:5:204:15 | synthetic splat argument | type tracker without call steps | params_flow.rb:204:5:204:15 | synthetic splat argument | +| params_flow.rb:204:11:204:14 | ...[...] | type tracker with call steps | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:204:11:204:14 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:204:11:204:14 | ...[...] | type tracker with call steps with content splat position 0 | params_flow.rb:6:5:6:10 | synthetic splat argument | +| params_flow.rb:204:11:204:14 | ...[...] | type tracker without call steps | params_flow.rb:204:11:204:14 | ...[...] | +| params_flow.rb:204:11:204:14 | ...[...] | type tracker without call steps with content splat position 0 | params_flow.rb:204:5:204:15 | synthetic splat argument | +| params_flow.rb:204:11:204:14 | synthetic splat argument | type tracker without call steps | params_flow.rb:204:11:204:14 | synthetic splat argument | +| params_flow.rb:204:13:204:13 | 1 | type tracker without call steps | params_flow.rb:204:13:204:13 | 1 | +| params_flow.rb:204:13:204:13 | 1 | type tracker without call steps with content splat position 0 | params_flow.rb:204:11:204:14 | synthetic splat argument | +| params_flow.rb:207:1:207:14 | call to foo | type tracker without call steps | params_flow.rb:207:1:207:14 | call to foo | +| params_flow.rb:207:5:207:13 | * ... | type tracker with call steps | params_flow.rb:200:1:205:3 | synthetic splat parameter | +| params_flow.rb:207:5:207:13 | * ... | type tracker without call steps | params_flow.rb:207:5:207:13 | * ... | trackEnd | params_flow.rb:1:1:3:3 | &block | params_flow.rb:1:1:3:3 | &block | | params_flow.rb:1:1:3:3 | self in taint | params_flow.rb:1:1:3:3 | self in taint | | params_flow.rb:1:1:3:3 | synthetic splat parameter | params_flow.rb:1:1:3:3 | synthetic splat parameter | | params_flow.rb:1:1:3:3 | taint | params_flow.rb:1:1:3:3 | taint | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:1:1:3:3 | self in taint | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:1:1:137:45 | self (params_flow.rb) | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:5:1:7:3 | self (sink) | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:5:1:7:3 | self in sink | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:6:5:6:10 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:9:1:12:3 | self (positional) | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:9:1:12:3 | self in positional | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:10:5:10:11 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:11:5:11:11 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:14:1:14:30 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:14:12:14:19 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:14:22:14:29 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:16:1:19:3 | self (keyword) | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:16:1:19:3 | self in keyword | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:17:5:17:11 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:18:5:18:11 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:21:1:21:35 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:21:13:21:20 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:21:27:21:34 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:22:1:22:35 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:22:13:22:20 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:22:27:22:34 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:23:1:23:41 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:23:16:23:23 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:23:33:23:40 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:25:1:31:3 | self (kwargs) | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:25:1:31:3 | self in kwargs | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:26:5:26:11 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:27:5:27:22 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:28:5:28:22 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:29:5:29:22 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:30:5:30:22 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:33:1:33:58 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:33:12:33:19 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:33:26:33:34 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:33:41:33:49 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:34:14:34:22 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:35:1:35:29 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:35:12:35:20 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:37:16:37:24 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:37:34:37:42 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:38:1:38:14 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:40:16:40:24 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:41:1:41:30 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:41:13:41:21 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:43:9:43:17 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:44:1:44:28 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:44:12:44:20 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:46:9:46:17 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:46:20:46:28 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:47:1:47:17 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:49:1:53:3 | self (posargs) | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:49:1:53:3 | self in posargs | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:50:5:50:11 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:51:5:51:21 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:52:5:52:21 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:55:1:55:29 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:55:9:55:17 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:55:20:55:28 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:57:9:57:17 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:58:1:58:25 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:58:9:58:17 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:60:9:60:17 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:60:20:60:28 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:61:1:61:14 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:63:8:63:16 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:64:1:66:3 | self (splatstuff) | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:64:1:66:3 | self in splatstuff | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:65:5:65:13 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:67:1:67:17 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:69:1:76:3 | self (splatmid) | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:69:1:76:3 | self in splatmid | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:70:5:70:10 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:71:5:71:10 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:72:5:72:13 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:73:5:73:13 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:74:5:74:10 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:75:5:75:10 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:78:1:78:63 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:78:10:78:18 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:78:21:78:29 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:78:32:78:40 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:78:43:78:51 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:78:54:78:62 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:80:9:80:17 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:80:20:80:28 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:80:31:80:39 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:80:42:80:50 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:81:1:81:37 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:81:10:81:18 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:81:28:81:36 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:83:1:91:3 | self (pos_many) | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:83:1:91:3 | self in pos_many | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:84:5:84:10 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:85:5:85:10 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:86:5:86:10 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:87:5:87:10 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:88:5:88:10 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:89:5:89:10 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:90:5:90:10 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:93:9:93:17 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:93:20:93:28 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:93:31:93:39 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:93:42:93:50 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:94:1:94:48 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:94:10:94:18 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:94:21:94:29 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:94:39:94:47 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:96:1:96:88 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:96:10:96:18 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:96:21:96:29 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:96:34:96:42 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:96:45:96:53 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:96:56:96:64 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:96:68:96:76 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:96:79:96:87 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:98:1:103:3 | self (splatmidsmall) | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:98:1:103:3 | self in splatmidsmall | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:99:5:99:10 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:100:5:100:18 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:101:5:101:18 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:102:5:102:10 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:105:1:105:49 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:105:15:105:23 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:105:28:105:36 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:105:39:105:47 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:106:1:106:46 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:106:15:106:23 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:106:26:106:34 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:106:37:106:45 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:108:1:112:3 | self (splat_followed_by_keyword_param) | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:108:1:112:3 | self in splat_followed_by_keyword_param | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:109:5:109:10 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:110:5:110:13 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:111:5:111:10 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:114:1:114:67 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:114:33:114:41 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:114:44:114:52 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:114:58:114:66 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:117:3:117:14 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:117:19:117:27 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:118:1:118:14 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:120:1:126:3 | self (destruct) | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:120:1:126:3 | self in destruct | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:121:5:121:10 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:122:5:122:10 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:123:5:123:10 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:124:5:124:10 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:125:5:125:10 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:128:1:128:61 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:128:11:128:19 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:128:22:128:30 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:128:35:128:43 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:128:50:128:58 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:130:9:130:17 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:130:20:130:28 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:131:1:131:46 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:131:17:131:25 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:133:1:135:3 | self (splatall) | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:133:1:135:3 | self in splatall | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:134:5:134:16 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:137:1:137:44 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:137:12:137:20 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:137:23:137:31 | self | -| params_flow.rb:1:1:137:45 | self (params_flow.rb) | params_flow.rb:137:34:137:42 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:1:1:3:3 | self in taint | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:1:1:207:15 | self (params_flow.rb) | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:5:1:7:3 | self (sink) | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:5:1:7:3 | self in sink | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:6:5:6:10 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:9:1:12:3 | self (positional) | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:9:1:12:3 | self in positional | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:10:5:10:11 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:11:5:11:11 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:14:1:14:30 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:14:12:14:19 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:14:22:14:29 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:16:1:19:3 | self (keyword) | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:16:1:19:3 | self in keyword | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:17:5:17:11 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:18:5:18:11 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:21:1:21:35 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:21:13:21:20 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:21:27:21:34 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:22:1:22:35 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:22:13:22:20 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:22:27:22:34 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:23:1:23:41 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:23:16:23:23 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:23:33:23:40 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:25:1:31:3 | self (kwargs) | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:25:1:31:3 | self in kwargs | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:26:5:26:11 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:27:5:27:22 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:28:5:28:22 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:29:5:29:22 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:30:5:30:22 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:33:1:33:58 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:33:12:33:19 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:33:26:33:34 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:33:41:33:49 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:34:14:34:22 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:35:1:35:29 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:35:12:35:20 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:37:16:37:24 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:37:34:37:42 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:38:1:38:14 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:40:16:40:24 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:41:1:41:30 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:41:13:41:21 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:43:9:43:17 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:44:1:44:28 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:44:12:44:20 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:46:9:46:17 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:46:20:46:28 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:47:1:47:17 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:49:1:53:3 | self (posargs) | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:49:1:53:3 | self in posargs | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:50:5:50:11 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:51:5:51:21 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:52:5:52:21 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:55:1:55:29 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:55:9:55:17 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:55:20:55:28 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:57:9:57:17 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:58:1:58:25 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:58:9:58:17 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:60:9:60:17 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:60:20:60:28 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:61:1:61:14 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:63:8:63:16 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:64:1:66:3 | self (splatstuff) | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:64:1:66:3 | self in splatstuff | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:65:5:65:13 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:67:1:67:17 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:69:1:76:3 | self (splatmid) | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:69:1:76:3 | self in splatmid | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:70:5:70:10 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:71:5:71:10 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:72:5:72:13 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:73:5:73:13 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:74:5:74:10 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:75:5:75:10 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:78:1:78:63 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:78:10:78:18 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:78:21:78:29 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:78:32:78:40 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:78:43:78:51 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:78:54:78:62 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:80:9:80:17 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:80:20:80:28 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:80:31:80:39 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:80:42:80:50 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:81:1:81:37 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:81:10:81:18 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:81:28:81:36 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:83:1:91:3 | self (pos_many) | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:83:1:91:3 | self in pos_many | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:84:5:84:10 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:85:5:85:10 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:86:5:86:10 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:87:5:87:10 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:88:5:88:10 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:89:5:89:10 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:90:5:90:10 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:93:9:93:17 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:93:20:93:28 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:93:31:93:39 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:93:42:93:50 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:94:1:94:48 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:94:10:94:18 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:94:21:94:29 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:94:39:94:47 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:96:1:96:88 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:96:10:96:18 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:96:21:96:29 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:96:34:96:42 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:96:45:96:53 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:96:56:96:64 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:96:68:96:76 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:96:79:96:87 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:98:1:103:3 | self (splatmidsmall) | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:98:1:103:3 | self in splatmidsmall | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:99:5:99:10 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:100:5:100:18 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:101:5:101:18 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:102:5:102:10 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:105:1:105:49 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:105:15:105:23 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:105:28:105:36 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:105:39:105:47 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:106:1:106:46 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:106:15:106:23 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:106:26:106:34 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:106:37:106:45 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:108:1:112:3 | self (splat_followed_by_keyword_param) | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:108:1:112:3 | self in splat_followed_by_keyword_param | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:109:5:109:10 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:110:5:110:13 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:111:5:111:10 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:114:1:114:67 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:114:33:114:41 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:114:44:114:52 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:114:58:114:66 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:117:3:117:14 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:117:19:117:27 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:118:1:118:14 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:120:1:126:3 | self (destruct) | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:120:1:126:3 | self in destruct | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:121:5:121:10 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:122:5:122:10 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:123:5:123:10 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:124:5:124:10 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:125:5:125:10 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:128:1:128:61 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:128:11:128:19 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:128:22:128:30 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:128:35:128:43 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:128:50:128:58 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:130:9:130:17 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:130:20:130:28 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:131:1:131:46 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:131:17:131:25 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:133:1:135:3 | self (splatall) | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:133:1:135:3 | self in splatall | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:134:5:134:16 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:137:1:137:44 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:137:12:137:20 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:137:23:137:31 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:137:34:137:42 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:139:1:141:3 | self in hashSplatSideEffect | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:143:24:143:32 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:144:1:144:20 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:145:1:145:29 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:146:1:146:20 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:149:1:149:11 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:150:1:150:42 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:150:33:150:41 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:151:1:151:11 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:153:1:155:3 | self in keywordSideEffect | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:157:24:157:32 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:158:1:158:20 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:159:1:159:27 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:160:1:160:20 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:163:1:163:11 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:164:1:164:40 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:164:31:164:39 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:165:1:165:11 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:167:1:169:3 | self in splatSideEffect | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:171:17:171:25 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:172:1:172:19 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:173:1:173:25 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:174:1:174:19 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:177:1:177:11 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:178:1:178:30 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:178:21:178:29 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:179:1:179:11 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:181:1:183:3 | self in positionSideEffect | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:185:14:185:22 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:186:1:186:16 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:187:1:187:25 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:188:1:188:16 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:191:1:191:11 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:192:1:192:33 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:192:24:192:32 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:193:1:193:11 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:196:10:196:18 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:200:1:205:3 | self (foo) | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:200:1:205:3 | self in foo | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:201:5:201:15 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:202:5:202:15 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:203:5:203:15 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:204:5:204:15 | self | +| params_flow.rb:1:1:207:15 | self (params_flow.rb) | params_flow.rb:207:1:207:14 | self | | params_flow.rb:1:11:1:11 | x | params_flow.rb:1:11:1:11 | x | | params_flow.rb:1:11:1:11 | x | params_flow.rb:1:11:1:11 | x | | params_flow.rb:1:11:1:11 | x | params_flow.rb:1:11:1:11 | x | @@ -3230,6 +4059,27 @@ trackEnd | params_flow.rb:1:11:1:11 | x | params_flow.rb:137:12:137:20 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:137:23:137:31 | call to taint | | params_flow.rb:1:11:1:11 | x | params_flow.rb:137:34:137:42 | call to taint | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:140:27:140:37 | ...[...] | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:143:24:143:32 | call to taint | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:150:33:150:41 | call to taint | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:153:28:153:29 | p2 | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:153:28:153:29 | p2 | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:154:18:154:19 | p2 | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:157:24:157:32 | call to taint | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:164:31:164:39 | call to taint | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:168:26:168:35 | ...[...] | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:171:17:171:25 | call to taint | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:178:21:178:29 | call to taint | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:181:28:181:29 | p2 | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:181:28:181:29 | p2 | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:182:18:182:19 | p2 | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:185:14:185:22 | call to taint | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:192:24:192:32 | call to taint | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:196:10:196:18 | call to taint | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:200:9:200:9 | x | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:200:9:200:9 | x | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:201:11:201:11 | x | +| params_flow.rb:1:11:1:11 | x | params_flow.rb:202:11:202:11 | x | | params_flow.rb:5:1:7:3 | &block | params_flow.rb:5:1:7:3 | &block | | params_flow.rb:5:1:7:3 | self in sink | params_flow.rb:5:1:7:3 | self (sink) | | params_flow.rb:5:1:7:3 | self in sink | params_flow.rb:5:1:7:3 | self in sink | @@ -3305,6 +4155,27 @@ trackEnd | params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:131:1:131:46 | call to pos_many | | params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:134:5:134:16 | call to sink | | params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:137:1:137:44 | call to splatall | +| params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:144:1:144:20 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:146:1:146:20 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:149:1:149:11 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:151:1:151:11 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:158:1:158:20 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:160:1:160:20 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:163:1:163:11 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:165:1:165:11 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:172:1:172:19 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:174:1:174:19 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:177:1:177:11 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:179:1:179:11 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:186:1:186:16 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:188:1:188:16 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:191:1:191:11 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:193:1:193:11 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:201:5:201:15 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:202:5:202:15 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:203:5:203:15 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:204:5:204:15 | call to sink | +| params_flow.rb:6:5:6:10 | call to puts | params_flow.rb:207:1:207:14 | call to foo | | params_flow.rb:6:5:6:10 | synthetic splat argument | params_flow.rb:6:5:6:10 | synthetic splat argument | | params_flow.rb:9:1:12:3 | &block | params_flow.rb:9:1:12:3 | &block | | params_flow.rb:9:1:12:3 | positional | params_flow.rb:9:1:12:3 | positional | @@ -5562,5 +6433,640 @@ trackEnd | params_flow.rb:137:40:137:41 | 71 | params_flow.rb:2:5:2:5 | x | | params_flow.rb:137:40:137:41 | 71 | params_flow.rb:137:34:137:42 | call to taint | | params_flow.rb:137:40:137:41 | 71 | params_flow.rb:137:40:137:41 | 71 | +| params_flow.rb:139:1:141:3 | &block | params_flow.rb:139:1:141:3 | &block | +| params_flow.rb:139:1:141:3 | hashSplatSideEffect | params_flow.rb:139:1:141:3 | hashSplatSideEffect | +| params_flow.rb:139:1:141:3 | self in hashSplatSideEffect | params_flow.rb:139:1:141:3 | self in hashSplatSideEffect | +| params_flow.rb:139:25:139:32 | **kwargs | params_flow.rb:139:25:139:32 | **kwargs | +| params_flow.rb:139:25:139:32 | **kwargs | params_flow.rb:139:27:139:32 | kwargs | +| params_flow.rb:139:25:139:32 | **kwargs | params_flow.rb:140:5:140:10 | kwargs | +| params_flow.rb:139:25:139:32 | **kwargs | params_flow.rb:140:27:140:32 | kwargs | +| params_flow.rb:139:27:139:32 | kwargs | params_flow.rb:139:27:139:32 | kwargs | +| params_flow.rb:140:5:140:15 | ...[...] | params_flow.rb:140:5:140:15 | ...[...] | +| params_flow.rb:140:5:140:15 | [post] ...[...] | params_flow.rb:140:5:140:15 | [post] ...[...] | +| params_flow.rb:140:5:140:15 | synthetic splat argument | params_flow.rb:140:5:140:15 | synthetic splat argument | +| params_flow.rb:140:5:140:38 | call to insert | params_flow.rb:140:5:140:38 | call to insert | +| params_flow.rb:140:5:140:38 | call to insert | params_flow.rb:145:1:145:29 | call to hashSplatSideEffect | +| params_flow.rb:140:5:140:38 | call to insert | params_flow.rb:150:1:150:42 | call to hashSplatSideEffect | +| params_flow.rb:140:5:140:38 | synthetic splat argument | params_flow.rb:140:5:140:38 | synthetic splat argument | +| params_flow.rb:140:12:140:14 | :p1 | params_flow.rb:140:12:140:14 | :p1 | +| params_flow.rb:140:24:140:24 | 0 | params_flow.rb:140:24:140:24 | 0 | +| params_flow.rb:140:27:140:37 | ...[...] | params_flow.rb:140:27:140:37 | ...[...] | +| params_flow.rb:140:27:140:37 | synthetic splat argument | params_flow.rb:140:27:140:37 | synthetic splat argument | +| params_flow.rb:140:34:140:36 | :p2 | params_flow.rb:140:34:140:36 | :p2 | +| params_flow.rb:143:1:143:6 | kwargs | params_flow.rb:143:1:143:6 | kwargs | +| params_flow.rb:143:10:143:34 | Hash | params_flow.rb:143:10:143:34 | Hash | +| params_flow.rb:143:10:143:34 | call to [] | params_flow.rb:143:1:143:6 | kwargs | +| params_flow.rb:143:10:143:34 | call to [] | params_flow.rb:143:1:143:34 | ... = ... | +| params_flow.rb:143:10:143:34 | call to [] | params_flow.rb:143:10:143:34 | call to [] | +| params_flow.rb:143:10:143:34 | call to [] | params_flow.rb:144:6:144:11 | kwargs | +| params_flow.rb:143:10:143:34 | call to [] | params_flow.rb:145:23:145:28 | kwargs | +| params_flow.rb:143:10:143:34 | call to [] | params_flow.rb:146:6:146:11 | kwargs | +| params_flow.rb:143:10:143:34 | synthetic hash-splat argument | params_flow.rb:143:1:143:6 | kwargs | +| params_flow.rb:143:10:143:34 | synthetic hash-splat argument | params_flow.rb:143:1:143:34 | ... = ... | +| params_flow.rb:143:10:143:34 | synthetic hash-splat argument | params_flow.rb:143:10:143:34 | call to [] | +| params_flow.rb:143:10:143:34 | synthetic hash-splat argument | params_flow.rb:143:10:143:34 | synthetic hash-splat argument | +| params_flow.rb:143:10:143:34 | synthetic hash-splat argument | params_flow.rb:144:6:144:11 | kwargs | +| params_flow.rb:143:10:143:34 | synthetic hash-splat argument | params_flow.rb:145:23:145:28 | kwargs | +| params_flow.rb:143:10:143:34 | synthetic hash-splat argument | params_flow.rb:146:6:146:11 | kwargs | +| params_flow.rb:143:12:143:13 | :p1 | params_flow.rb:143:12:143:13 | :p1 | +| params_flow.rb:143:12:143:17 | Pair | params_flow.rb:143:12:143:17 | Pair | +| params_flow.rb:143:16:143:17 | Array | params_flow.rb:143:16:143:17 | Array | +| params_flow.rb:143:16:143:17 | call to [] | params_flow.rb:140:5:140:15 | ...[...] | +| params_flow.rb:143:16:143:17 | call to [] | params_flow.rb:143:16:143:17 | call to [] | +| params_flow.rb:143:16:143:17 | call to [] | params_flow.rb:144:6:144:16 | ...[...] | +| params_flow.rb:143:16:143:17 | call to [] | params_flow.rb:146:6:146:16 | ...[...] | +| params_flow.rb:143:20:143:21 | :p2 | params_flow.rb:143:20:143:21 | :p2 | +| params_flow.rb:143:20:143:32 | Pair | params_flow.rb:143:20:143:32 | Pair | +| params_flow.rb:143:24:143:32 | call to taint | params_flow.rb:140:27:140:37 | ...[...] | +| params_flow.rb:143:24:143:32 | call to taint | params_flow.rb:143:24:143:32 | call to taint | +| params_flow.rb:143:24:143:32 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:143:24:143:32 | synthetic splat argument | params_flow.rb:143:24:143:32 | synthetic splat argument | +| params_flow.rb:143:30:143:31 | 72 | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:143:30:143:31 | 72 | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:143:30:143:31 | 72 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:143:30:143:31 | 72 | params_flow.rb:140:27:140:37 | ...[...] | +| params_flow.rb:143:30:143:31 | 72 | params_flow.rb:143:24:143:32 | call to taint | +| params_flow.rb:143:30:143:31 | 72 | params_flow.rb:143:30:143:31 | 72 | +| params_flow.rb:144:1:144:20 | call to sink | params_flow.rb:144:1:144:20 | call to sink | +| params_flow.rb:144:1:144:20 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:144:1:144:20 | synthetic splat argument | params_flow.rb:144:1:144:20 | synthetic splat argument | +| params_flow.rb:144:6:144:16 | ...[...] | params_flow.rb:144:6:144:16 | ...[...] | +| params_flow.rb:144:6:144:16 | synthetic splat argument | params_flow.rb:144:6:144:16 | synthetic splat argument | +| params_flow.rb:144:6:144:19 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:144:6:144:19 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:144:6:144:19 | ...[...] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:144:6:144:19 | ...[...] | params_flow.rb:144:6:144:19 | ...[...] | +| params_flow.rb:144:6:144:19 | synthetic splat argument | params_flow.rb:144:6:144:19 | synthetic splat argument | +| params_flow.rb:144:13:144:15 | :p1 | params_flow.rb:144:13:144:15 | :p1 | +| params_flow.rb:144:18:144:18 | 0 | params_flow.rb:144:18:144:18 | 0 | +| params_flow.rb:145:1:145:29 | call to hashSplatSideEffect | params_flow.rb:145:1:145:29 | call to hashSplatSideEffect | +| params_flow.rb:145:21:145:28 | ** ... | params_flow.rb:139:25:139:32 | **kwargs | +| params_flow.rb:145:21:145:28 | ** ... | params_flow.rb:139:27:139:32 | kwargs | +| params_flow.rb:145:21:145:28 | ** ... | params_flow.rb:140:5:140:10 | kwargs | +| params_flow.rb:145:21:145:28 | ** ... | params_flow.rb:140:27:140:32 | kwargs | +| params_flow.rb:145:21:145:28 | ** ... | params_flow.rb:145:21:145:28 | ** ... | +| params_flow.rb:146:1:146:20 | call to sink | params_flow.rb:146:1:146:20 | call to sink | +| params_flow.rb:146:1:146:20 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:146:1:146:20 | synthetic splat argument | params_flow.rb:146:1:146:20 | synthetic splat argument | +| params_flow.rb:146:6:146:16 | ...[...] | params_flow.rb:146:6:146:16 | ...[...] | +| params_flow.rb:146:6:146:16 | synthetic splat argument | params_flow.rb:146:6:146:16 | synthetic splat argument | +| params_flow.rb:146:6:146:19 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:146:6:146:19 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:146:6:146:19 | ...[...] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:146:6:146:19 | ...[...] | params_flow.rb:146:6:146:19 | ...[...] | +| params_flow.rb:146:6:146:19 | synthetic splat argument | params_flow.rb:146:6:146:19 | synthetic splat argument | +| params_flow.rb:146:13:146:15 | :p1 | params_flow.rb:146:13:146:15 | :p1 | +| params_flow.rb:146:18:146:18 | 0 | params_flow.rb:146:18:146:18 | 0 | +| params_flow.rb:148:1:148:2 | p1 | params_flow.rb:148:1:148:2 | p1 | +| params_flow.rb:148:6:148:7 | Array | params_flow.rb:148:6:148:7 | Array | +| params_flow.rb:148:6:148:7 | call to [] | params_flow.rb:140:5:140:15 | ...[...] | +| params_flow.rb:148:6:148:7 | call to [] | params_flow.rb:148:1:148:2 | p1 | +| params_flow.rb:148:6:148:7 | call to [] | params_flow.rb:148:1:148:7 | ... = ... | +| params_flow.rb:148:6:148:7 | call to [] | params_flow.rb:148:6:148:7 | call to [] | +| params_flow.rb:148:6:148:7 | call to [] | params_flow.rb:149:6:149:7 | p1 | +| params_flow.rb:148:6:148:7 | call to [] | params_flow.rb:150:25:150:26 | p1 | +| params_flow.rb:148:6:148:7 | call to [] | params_flow.rb:151:6:151:7 | p1 | +| params_flow.rb:149:1:149:11 | call to sink | params_flow.rb:149:1:149:11 | call to sink | +| params_flow.rb:149:1:149:11 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:149:1:149:11 | synthetic splat argument | params_flow.rb:149:1:149:11 | synthetic splat argument | +| params_flow.rb:149:6:149:10 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:149:6:149:10 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:149:6:149:10 | ...[...] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:149:6:149:10 | ...[...] | params_flow.rb:149:6:149:10 | ...[...] | +| params_flow.rb:149:6:149:10 | synthetic splat argument | params_flow.rb:149:6:149:10 | synthetic splat argument | +| params_flow.rb:149:9:149:9 | 0 | params_flow.rb:149:9:149:9 | 0 | +| params_flow.rb:150:1:150:42 | call to hashSplatSideEffect | params_flow.rb:150:1:150:42 | call to hashSplatSideEffect | +| params_flow.rb:150:1:150:42 | synthetic hash-splat argument | params_flow.rb:139:25:139:32 | **kwargs | +| params_flow.rb:150:1:150:42 | synthetic hash-splat argument | params_flow.rb:139:27:139:32 | kwargs | +| params_flow.rb:150:1:150:42 | synthetic hash-splat argument | params_flow.rb:140:5:140:10 | kwargs | +| params_flow.rb:150:1:150:42 | synthetic hash-splat argument | params_flow.rb:140:27:140:32 | kwargs | +| params_flow.rb:150:1:150:42 | synthetic hash-splat argument | params_flow.rb:150:1:150:42 | synthetic hash-splat argument | +| params_flow.rb:150:21:150:22 | :p1 | params_flow.rb:150:21:150:22 | :p1 | +| params_flow.rb:150:21:150:26 | Pair | params_flow.rb:150:21:150:26 | Pair | +| params_flow.rb:150:29:150:30 | :p2 | params_flow.rb:150:29:150:30 | :p2 | +| params_flow.rb:150:29:150:41 | Pair | params_flow.rb:150:29:150:41 | Pair | +| params_flow.rb:150:33:150:41 | call to taint | params_flow.rb:140:27:140:37 | ...[...] | +| params_flow.rb:150:33:150:41 | call to taint | params_flow.rb:150:33:150:41 | call to taint | +| params_flow.rb:150:33:150:41 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:150:33:150:41 | synthetic splat argument | params_flow.rb:150:33:150:41 | synthetic splat argument | +| params_flow.rb:150:39:150:40 | 73 | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:150:39:150:40 | 73 | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:150:39:150:40 | 73 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:150:39:150:40 | 73 | params_flow.rb:140:27:140:37 | ...[...] | +| params_flow.rb:150:39:150:40 | 73 | params_flow.rb:150:33:150:41 | call to taint | +| params_flow.rb:150:39:150:40 | 73 | params_flow.rb:150:39:150:40 | 73 | +| params_flow.rb:151:1:151:11 | call to sink | params_flow.rb:151:1:151:11 | call to sink | +| params_flow.rb:151:1:151:11 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:151:1:151:11 | synthetic splat argument | params_flow.rb:151:1:151:11 | synthetic splat argument | +| params_flow.rb:151:6:151:10 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:151:6:151:10 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:151:6:151:10 | ...[...] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:151:6:151:10 | ...[...] | params_flow.rb:151:6:151:10 | ...[...] | +| params_flow.rb:151:6:151:10 | synthetic splat argument | params_flow.rb:151:6:151:10 | synthetic splat argument | +| params_flow.rb:151:9:151:9 | 0 | params_flow.rb:151:9:151:9 | 0 | +| params_flow.rb:153:1:155:3 | &block | params_flow.rb:153:1:155:3 | &block | +| params_flow.rb:153:1:155:3 | keywordSideEffect | params_flow.rb:153:1:155:3 | keywordSideEffect | +| params_flow.rb:153:1:155:3 | self in keywordSideEffect | params_flow.rb:153:1:155:3 | self in keywordSideEffect | +| params_flow.rb:153:1:155:3 | synthetic hash-splat parameter | params_flow.rb:153:1:155:3 | synthetic hash-splat parameter | +| params_flow.rb:153:23:153:24 | p1 | params_flow.rb:153:23:153:24 | p1 | +| params_flow.rb:153:23:153:24 | p1 | params_flow.rb:153:23:153:24 | p1 | +| params_flow.rb:153:23:153:24 | p1 | params_flow.rb:153:23:153:24 | p1 | +| params_flow.rb:153:23:153:24 | p1 | params_flow.rb:154:5:154:6 | p1 | +| params_flow.rb:153:28:153:29 | p2 | params_flow.rb:153:28:153:29 | p2 | +| params_flow.rb:153:28:153:29 | p2 | params_flow.rb:153:28:153:29 | p2 | +| params_flow.rb:153:28:153:29 | p2 | params_flow.rb:153:28:153:29 | p2 | +| params_flow.rb:153:28:153:29 | p2 | params_flow.rb:154:18:154:19 | p2 | +| params_flow.rb:154:5:154:6 | [post] p1 | params_flow.rb:154:5:154:6 | [post] p1 | +| params_flow.rb:154:5:154:20 | call to insert | params_flow.rb:154:5:154:20 | call to insert | +| params_flow.rb:154:5:154:20 | call to insert | params_flow.rb:159:1:159:27 | call to keywordSideEffect | +| params_flow.rb:154:5:154:20 | call to insert | params_flow.rb:164:1:164:40 | call to keywordSideEffect | +| params_flow.rb:154:5:154:20 | synthetic splat argument | params_flow.rb:154:5:154:20 | synthetic splat argument | +| params_flow.rb:154:15:154:15 | 0 | params_flow.rb:154:15:154:15 | 0 | +| params_flow.rb:157:1:157:6 | kwargs | params_flow.rb:157:1:157:6 | kwargs | +| params_flow.rb:157:10:157:34 | Hash | params_flow.rb:157:10:157:34 | Hash | +| params_flow.rb:157:10:157:34 | call to [] | params_flow.rb:157:1:157:6 | kwargs | +| params_flow.rb:157:10:157:34 | call to [] | params_flow.rb:157:1:157:34 | ... = ... | +| params_flow.rb:157:10:157:34 | call to [] | params_flow.rb:157:10:157:34 | call to [] | +| params_flow.rb:157:10:157:34 | call to [] | params_flow.rb:158:6:158:11 | kwargs | +| params_flow.rb:157:10:157:34 | call to [] | params_flow.rb:159:21:159:26 | kwargs | +| params_flow.rb:157:10:157:34 | call to [] | params_flow.rb:160:6:160:11 | kwargs | +| params_flow.rb:157:10:157:34 | synthetic hash-splat argument | params_flow.rb:157:1:157:6 | kwargs | +| params_flow.rb:157:10:157:34 | synthetic hash-splat argument | params_flow.rb:157:1:157:34 | ... = ... | +| params_flow.rb:157:10:157:34 | synthetic hash-splat argument | params_flow.rb:157:10:157:34 | call to [] | +| params_flow.rb:157:10:157:34 | synthetic hash-splat argument | params_flow.rb:157:10:157:34 | synthetic hash-splat argument | +| params_flow.rb:157:10:157:34 | synthetic hash-splat argument | params_flow.rb:158:6:158:11 | kwargs | +| params_flow.rb:157:10:157:34 | synthetic hash-splat argument | params_flow.rb:159:21:159:26 | kwargs | +| params_flow.rb:157:10:157:34 | synthetic hash-splat argument | params_flow.rb:160:6:160:11 | kwargs | +| params_flow.rb:157:12:157:13 | :p1 | params_flow.rb:157:12:157:13 | :p1 | +| params_flow.rb:157:12:157:17 | Pair | params_flow.rb:157:12:157:17 | Pair | +| params_flow.rb:157:16:157:17 | Array | params_flow.rb:157:16:157:17 | Array | +| params_flow.rb:157:16:157:17 | call to [] | params_flow.rb:153:23:153:24 | p1 | +| params_flow.rb:157:16:157:17 | call to [] | params_flow.rb:153:23:153:24 | p1 | +| params_flow.rb:157:16:157:17 | call to [] | params_flow.rb:154:5:154:6 | p1 | +| params_flow.rb:157:16:157:17 | call to [] | params_flow.rb:157:16:157:17 | call to [] | +| params_flow.rb:157:16:157:17 | call to [] | params_flow.rb:158:6:158:16 | ...[...] | +| params_flow.rb:157:16:157:17 | call to [] | params_flow.rb:160:6:160:16 | ...[...] | +| params_flow.rb:157:20:157:21 | :p2 | params_flow.rb:157:20:157:21 | :p2 | +| params_flow.rb:157:20:157:32 | Pair | params_flow.rb:157:20:157:32 | Pair | +| params_flow.rb:157:24:157:32 | call to taint | params_flow.rb:153:28:153:29 | p2 | +| params_flow.rb:157:24:157:32 | call to taint | params_flow.rb:153:28:153:29 | p2 | +| params_flow.rb:157:24:157:32 | call to taint | params_flow.rb:154:18:154:19 | p2 | +| params_flow.rb:157:24:157:32 | call to taint | params_flow.rb:157:24:157:32 | call to taint | +| params_flow.rb:157:24:157:32 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:157:24:157:32 | synthetic splat argument | params_flow.rb:157:24:157:32 | synthetic splat argument | +| params_flow.rb:157:30:157:31 | 74 | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:157:30:157:31 | 74 | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:157:30:157:31 | 74 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:157:30:157:31 | 74 | params_flow.rb:153:28:153:29 | p2 | +| params_flow.rb:157:30:157:31 | 74 | params_flow.rb:153:28:153:29 | p2 | +| params_flow.rb:157:30:157:31 | 74 | params_flow.rb:154:18:154:19 | p2 | +| params_flow.rb:157:30:157:31 | 74 | params_flow.rb:157:24:157:32 | call to taint | +| params_flow.rb:157:30:157:31 | 74 | params_flow.rb:157:30:157:31 | 74 | +| params_flow.rb:158:1:158:20 | call to sink | params_flow.rb:158:1:158:20 | call to sink | +| params_flow.rb:158:1:158:20 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:158:1:158:20 | synthetic splat argument | params_flow.rb:158:1:158:20 | synthetic splat argument | +| params_flow.rb:158:6:158:16 | ...[...] | params_flow.rb:158:6:158:16 | ...[...] | +| params_flow.rb:158:6:158:16 | synthetic splat argument | params_flow.rb:158:6:158:16 | synthetic splat argument | +| params_flow.rb:158:6:158:19 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:158:6:158:19 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:158:6:158:19 | ...[...] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:158:6:158:19 | ...[...] | params_flow.rb:158:6:158:19 | ...[...] | +| params_flow.rb:158:6:158:19 | synthetic splat argument | params_flow.rb:158:6:158:19 | synthetic splat argument | +| params_flow.rb:158:13:158:15 | :p1 | params_flow.rb:158:13:158:15 | :p1 | +| params_flow.rb:158:18:158:18 | 0 | params_flow.rb:158:18:158:18 | 0 | +| params_flow.rb:159:1:159:27 | call to keywordSideEffect | params_flow.rb:159:1:159:27 | call to keywordSideEffect | +| params_flow.rb:159:19:159:26 | ** ... | params_flow.rb:153:1:155:3 | synthetic hash-splat parameter | +| params_flow.rb:159:19:159:26 | ** ... | params_flow.rb:159:19:159:26 | ** ... | +| params_flow.rb:160:1:160:20 | call to sink | params_flow.rb:160:1:160:20 | call to sink | +| params_flow.rb:160:1:160:20 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:160:1:160:20 | synthetic splat argument | params_flow.rb:160:1:160:20 | synthetic splat argument | +| params_flow.rb:160:6:160:16 | ...[...] | params_flow.rb:160:6:160:16 | ...[...] | +| params_flow.rb:160:6:160:16 | synthetic splat argument | params_flow.rb:160:6:160:16 | synthetic splat argument | +| params_flow.rb:160:6:160:19 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:160:6:160:19 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:160:6:160:19 | ...[...] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:160:6:160:19 | ...[...] | params_flow.rb:160:6:160:19 | ...[...] | +| params_flow.rb:160:6:160:19 | synthetic splat argument | params_flow.rb:160:6:160:19 | synthetic splat argument | +| params_flow.rb:160:13:160:15 | :p1 | params_flow.rb:160:13:160:15 | :p1 | +| params_flow.rb:160:18:160:18 | 0 | params_flow.rb:160:18:160:18 | 0 | +| params_flow.rb:162:1:162:2 | p1 | params_flow.rb:162:1:162:2 | p1 | +| params_flow.rb:162:6:162:7 | Array | params_flow.rb:162:6:162:7 | Array | +| params_flow.rb:162:6:162:7 | call to [] | params_flow.rb:153:23:153:24 | p1 | +| params_flow.rb:162:6:162:7 | call to [] | params_flow.rb:153:23:153:24 | p1 | +| params_flow.rb:162:6:162:7 | call to [] | params_flow.rb:154:5:154:6 | p1 | +| params_flow.rb:162:6:162:7 | call to [] | params_flow.rb:162:1:162:2 | p1 | +| params_flow.rb:162:6:162:7 | call to [] | params_flow.rb:162:1:162:7 | ... = ... | +| params_flow.rb:162:6:162:7 | call to [] | params_flow.rb:162:6:162:7 | call to [] | +| params_flow.rb:162:6:162:7 | call to [] | params_flow.rb:163:6:163:7 | p1 | +| params_flow.rb:162:6:162:7 | call to [] | params_flow.rb:164:23:164:24 | p1 | +| params_flow.rb:162:6:162:7 | call to [] | params_flow.rb:165:6:165:7 | p1 | +| params_flow.rb:163:1:163:11 | call to sink | params_flow.rb:163:1:163:11 | call to sink | +| params_flow.rb:163:1:163:11 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:163:1:163:11 | synthetic splat argument | params_flow.rb:163:1:163:11 | synthetic splat argument | +| params_flow.rb:163:6:163:10 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:163:6:163:10 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:163:6:163:10 | ...[...] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:163:6:163:10 | ...[...] | params_flow.rb:163:6:163:10 | ...[...] | +| params_flow.rb:163:6:163:10 | synthetic splat argument | params_flow.rb:163:6:163:10 | synthetic splat argument | +| params_flow.rb:163:9:163:9 | 0 | params_flow.rb:163:9:163:9 | 0 | +| params_flow.rb:164:1:164:40 | call to keywordSideEffect | params_flow.rb:164:1:164:40 | call to keywordSideEffect | +| params_flow.rb:164:1:164:40 | synthetic hash-splat argument | params_flow.rb:153:1:155:3 | synthetic hash-splat parameter | +| params_flow.rb:164:1:164:40 | synthetic hash-splat argument | params_flow.rb:164:1:164:40 | synthetic hash-splat argument | +| params_flow.rb:164:19:164:20 | :p1 | params_flow.rb:164:19:164:20 | :p1 | +| params_flow.rb:164:19:164:24 | Pair | params_flow.rb:164:19:164:24 | Pair | +| params_flow.rb:164:27:164:28 | :p2 | params_flow.rb:164:27:164:28 | :p2 | +| params_flow.rb:164:27:164:39 | Pair | params_flow.rb:164:27:164:39 | Pair | +| params_flow.rb:164:31:164:39 | call to taint | params_flow.rb:153:28:153:29 | p2 | +| params_flow.rb:164:31:164:39 | call to taint | params_flow.rb:153:28:153:29 | p2 | +| params_flow.rb:164:31:164:39 | call to taint | params_flow.rb:154:18:154:19 | p2 | +| params_flow.rb:164:31:164:39 | call to taint | params_flow.rb:164:31:164:39 | call to taint | +| params_flow.rb:164:31:164:39 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:164:31:164:39 | synthetic splat argument | params_flow.rb:164:31:164:39 | synthetic splat argument | +| params_flow.rb:164:37:164:38 | 75 | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:164:37:164:38 | 75 | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:164:37:164:38 | 75 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:164:37:164:38 | 75 | params_flow.rb:153:28:153:29 | p2 | +| params_flow.rb:164:37:164:38 | 75 | params_flow.rb:153:28:153:29 | p2 | +| params_flow.rb:164:37:164:38 | 75 | params_flow.rb:154:18:154:19 | p2 | +| params_flow.rb:164:37:164:38 | 75 | params_flow.rb:164:31:164:39 | call to taint | +| params_flow.rb:164:37:164:38 | 75 | params_flow.rb:164:37:164:38 | 75 | +| params_flow.rb:165:1:165:11 | call to sink | params_flow.rb:165:1:165:11 | call to sink | +| params_flow.rb:165:1:165:11 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:165:1:165:11 | synthetic splat argument | params_flow.rb:165:1:165:11 | synthetic splat argument | +| params_flow.rb:165:6:165:10 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:165:6:165:10 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:165:6:165:10 | ...[...] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:165:6:165:10 | ...[...] | params_flow.rb:165:6:165:10 | ...[...] | +| params_flow.rb:165:6:165:10 | synthetic splat argument | params_flow.rb:165:6:165:10 | synthetic splat argument | +| params_flow.rb:165:9:165:9 | 0 | params_flow.rb:165:9:165:9 | 0 | +| params_flow.rb:167:1:169:3 | &block | params_flow.rb:167:1:169:3 | &block | +| params_flow.rb:167:1:169:3 | self in splatSideEffect | params_flow.rb:167:1:169:3 | self in splatSideEffect | +| params_flow.rb:167:1:169:3 | splatSideEffect | params_flow.rb:167:1:169:3 | splatSideEffect | +| params_flow.rb:167:21:167:28 | *posargs | params_flow.rb:167:21:167:28 | *posargs | +| params_flow.rb:167:21:167:28 | *posargs | params_flow.rb:167:22:167:28 | posargs | +| params_flow.rb:167:21:167:28 | *posargs | params_flow.rb:168:5:168:11 | posargs | +| params_flow.rb:167:21:167:28 | *posargs | params_flow.rb:168:26:168:32 | posargs | +| params_flow.rb:167:22:167:28 | posargs | params_flow.rb:167:22:167:28 | posargs | +| params_flow.rb:168:5:168:14 | ...[...] | params_flow.rb:168:5:168:14 | ...[...] | +| params_flow.rb:168:5:168:14 | [post] ...[...] | params_flow.rb:168:5:168:14 | [post] ...[...] | +| params_flow.rb:168:5:168:14 | synthetic splat argument | params_flow.rb:168:5:168:14 | synthetic splat argument | +| params_flow.rb:168:5:168:36 | call to insert | params_flow.rb:168:5:168:36 | call to insert | +| params_flow.rb:168:5:168:36 | call to insert | params_flow.rb:173:1:173:25 | call to splatSideEffect | +| params_flow.rb:168:5:168:36 | call to insert | params_flow.rb:178:1:178:30 | call to splatSideEffect | +| params_flow.rb:168:5:168:36 | synthetic splat argument | params_flow.rb:168:5:168:36 | synthetic splat argument | +| params_flow.rb:168:13:168:13 | 0 | params_flow.rb:168:13:168:13 | 0 | +| params_flow.rb:168:23:168:23 | 0 | params_flow.rb:168:23:168:23 | 0 | +| params_flow.rb:168:26:168:35 | ...[...] | params_flow.rb:168:26:168:35 | ...[...] | +| params_flow.rb:168:26:168:35 | synthetic splat argument | params_flow.rb:168:26:168:35 | synthetic splat argument | +| params_flow.rb:168:34:168:34 | 1 | params_flow.rb:168:34:168:34 | 1 | +| params_flow.rb:171:1:171:7 | posargs | params_flow.rb:171:1:171:7 | posargs | +| params_flow.rb:171:11:171:27 | Array | params_flow.rb:171:11:171:27 | Array | +| params_flow.rb:171:11:171:27 | call to [] | params_flow.rb:168:5:168:14 | ...[...] | +| params_flow.rb:171:11:171:27 | call to [] | params_flow.rb:171:1:171:7 | posargs | +| params_flow.rb:171:11:171:27 | call to [] | params_flow.rb:171:1:171:27 | ... = ... | +| params_flow.rb:171:11:171:27 | call to [] | params_flow.rb:171:11:171:27 | call to [] | +| params_flow.rb:171:11:171:27 | call to [] | params_flow.rb:172:6:172:12 | posargs | +| params_flow.rb:171:11:171:27 | call to [] | params_flow.rb:173:18:173:24 | posargs | +| params_flow.rb:171:11:171:27 | call to [] | params_flow.rb:174:6:174:12 | posargs | +| params_flow.rb:171:11:171:27 | synthetic splat argument | params_flow.rb:168:5:168:14 | ...[...] | +| params_flow.rb:171:11:171:27 | synthetic splat argument | params_flow.rb:171:1:171:7 | posargs | +| params_flow.rb:171:11:171:27 | synthetic splat argument | params_flow.rb:171:1:171:27 | ... = ... | +| params_flow.rb:171:11:171:27 | synthetic splat argument | params_flow.rb:171:11:171:27 | call to [] | +| params_flow.rb:171:11:171:27 | synthetic splat argument | params_flow.rb:171:11:171:27 | synthetic splat argument | +| params_flow.rb:171:11:171:27 | synthetic splat argument | params_flow.rb:172:6:172:12 | posargs | +| params_flow.rb:171:11:171:27 | synthetic splat argument | params_flow.rb:173:18:173:24 | posargs | +| params_flow.rb:171:11:171:27 | synthetic splat argument | params_flow.rb:174:6:174:12 | posargs | +| params_flow.rb:171:13:171:14 | Array | params_flow.rb:171:13:171:14 | Array | +| params_flow.rb:171:13:171:14 | call to [] | params_flow.rb:168:5:168:14 | ...[...] | +| params_flow.rb:171:13:171:14 | call to [] | params_flow.rb:171:13:171:14 | call to [] | +| params_flow.rb:171:13:171:14 | call to [] | params_flow.rb:172:6:172:15 | ...[...] | +| params_flow.rb:171:13:171:14 | call to [] | params_flow.rb:174:6:174:15 | ...[...] | +| params_flow.rb:171:17:171:25 | call to taint | params_flow.rb:168:26:168:35 | ...[...] | +| params_flow.rb:171:17:171:25 | call to taint | params_flow.rb:171:17:171:25 | call to taint | +| params_flow.rb:171:17:171:25 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:171:17:171:25 | synthetic splat argument | params_flow.rb:171:17:171:25 | synthetic splat argument | +| params_flow.rb:171:23:171:24 | 76 | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:171:23:171:24 | 76 | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:171:23:171:24 | 76 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:171:23:171:24 | 76 | params_flow.rb:168:26:168:35 | ...[...] | +| params_flow.rb:171:23:171:24 | 76 | params_flow.rb:171:17:171:25 | call to taint | +| params_flow.rb:171:23:171:24 | 76 | params_flow.rb:171:23:171:24 | 76 | +| params_flow.rb:172:1:172:19 | call to sink | params_flow.rb:172:1:172:19 | call to sink | +| params_flow.rb:172:1:172:19 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:172:1:172:19 | synthetic splat argument | params_flow.rb:172:1:172:19 | synthetic splat argument | +| params_flow.rb:172:6:172:15 | ...[...] | params_flow.rb:172:6:172:15 | ...[...] | +| params_flow.rb:172:6:172:15 | synthetic splat argument | params_flow.rb:172:6:172:15 | synthetic splat argument | +| params_flow.rb:172:6:172:18 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:172:6:172:18 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:172:6:172:18 | ...[...] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:172:6:172:18 | ...[...] | params_flow.rb:172:6:172:18 | ...[...] | +| params_flow.rb:172:6:172:18 | synthetic splat argument | params_flow.rb:172:6:172:18 | synthetic splat argument | +| params_flow.rb:172:14:172:14 | 0 | params_flow.rb:172:14:172:14 | 0 | +| params_flow.rb:172:17:172:17 | 0 | params_flow.rb:172:17:172:17 | 0 | +| params_flow.rb:173:1:173:25 | call to splatSideEffect | params_flow.rb:173:1:173:25 | call to splatSideEffect | +| params_flow.rb:173:17:173:24 | * ... | params_flow.rb:167:21:167:28 | *posargs | +| params_flow.rb:173:17:173:24 | * ... | params_flow.rb:167:22:167:28 | posargs | +| params_flow.rb:173:17:173:24 | * ... | params_flow.rb:168:5:168:11 | posargs | +| params_flow.rb:173:17:173:24 | * ... | params_flow.rb:168:26:168:32 | posargs | +| params_flow.rb:173:17:173:24 | * ... | params_flow.rb:173:17:173:24 | * ... | +| params_flow.rb:174:1:174:19 | call to sink | params_flow.rb:174:1:174:19 | call to sink | +| params_flow.rb:174:1:174:19 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:174:1:174:19 | synthetic splat argument | params_flow.rb:174:1:174:19 | synthetic splat argument | +| params_flow.rb:174:6:174:15 | ...[...] | params_flow.rb:174:6:174:15 | ...[...] | +| params_flow.rb:174:6:174:15 | synthetic splat argument | params_flow.rb:174:6:174:15 | synthetic splat argument | +| params_flow.rb:174:6:174:18 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:174:6:174:18 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:174:6:174:18 | ...[...] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:174:6:174:18 | ...[...] | params_flow.rb:174:6:174:18 | ...[...] | +| params_flow.rb:174:6:174:18 | synthetic splat argument | params_flow.rb:174:6:174:18 | synthetic splat argument | +| params_flow.rb:174:14:174:14 | 0 | params_flow.rb:174:14:174:14 | 0 | +| params_flow.rb:174:17:174:17 | 0 | params_flow.rb:174:17:174:17 | 0 | +| params_flow.rb:176:1:176:2 | p1 | params_flow.rb:176:1:176:2 | p1 | +| params_flow.rb:176:6:176:7 | Array | params_flow.rb:176:6:176:7 | Array | +| params_flow.rb:176:6:176:7 | call to [] | params_flow.rb:168:5:168:14 | ...[...] | +| params_flow.rb:176:6:176:7 | call to [] | params_flow.rb:176:1:176:2 | p1 | +| params_flow.rb:176:6:176:7 | call to [] | params_flow.rb:176:1:176:7 | ... = ... | +| params_flow.rb:176:6:176:7 | call to [] | params_flow.rb:176:6:176:7 | call to [] | +| params_flow.rb:176:6:176:7 | call to [] | params_flow.rb:177:6:177:7 | p1 | +| params_flow.rb:176:6:176:7 | call to [] | params_flow.rb:178:17:178:18 | p1 | +| params_flow.rb:176:6:176:7 | call to [] | params_flow.rb:179:6:179:7 | p1 | +| params_flow.rb:177:1:177:11 | call to sink | params_flow.rb:177:1:177:11 | call to sink | +| params_flow.rb:177:1:177:11 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:177:1:177:11 | synthetic splat argument | params_flow.rb:177:1:177:11 | synthetic splat argument | +| params_flow.rb:177:6:177:10 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:177:6:177:10 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:177:6:177:10 | ...[...] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:177:6:177:10 | ...[...] | params_flow.rb:177:6:177:10 | ...[...] | +| params_flow.rb:177:6:177:10 | synthetic splat argument | params_flow.rb:177:6:177:10 | synthetic splat argument | +| params_flow.rb:177:9:177:9 | 0 | params_flow.rb:177:9:177:9 | 0 | +| params_flow.rb:178:1:178:30 | call to splatSideEffect | params_flow.rb:178:1:178:30 | call to splatSideEffect | +| params_flow.rb:178:1:178:30 | synthetic splat argument | params_flow.rb:167:21:167:28 | *posargs | +| params_flow.rb:178:1:178:30 | synthetic splat argument | params_flow.rb:167:22:167:28 | posargs | +| params_flow.rb:178:1:178:30 | synthetic splat argument | params_flow.rb:168:5:168:11 | posargs | +| params_flow.rb:178:1:178:30 | synthetic splat argument | params_flow.rb:168:26:168:32 | posargs | +| params_flow.rb:178:1:178:30 | synthetic splat argument | params_flow.rb:178:1:178:30 | synthetic splat argument | +| params_flow.rb:178:21:178:29 | call to taint | params_flow.rb:168:26:168:35 | ...[...] | +| params_flow.rb:178:21:178:29 | call to taint | params_flow.rb:178:21:178:29 | call to taint | +| params_flow.rb:178:21:178:29 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:178:21:178:29 | synthetic splat argument | params_flow.rb:178:21:178:29 | synthetic splat argument | +| params_flow.rb:178:27:178:28 | 77 | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:178:27:178:28 | 77 | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:178:27:178:28 | 77 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:178:27:178:28 | 77 | params_flow.rb:168:26:168:35 | ...[...] | +| params_flow.rb:178:27:178:28 | 77 | params_flow.rb:178:21:178:29 | call to taint | +| params_flow.rb:178:27:178:28 | 77 | params_flow.rb:178:27:178:28 | 77 | +| params_flow.rb:179:1:179:11 | call to sink | params_flow.rb:179:1:179:11 | call to sink | +| params_flow.rb:179:1:179:11 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:179:1:179:11 | synthetic splat argument | params_flow.rb:179:1:179:11 | synthetic splat argument | +| params_flow.rb:179:6:179:10 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:179:6:179:10 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:179:6:179:10 | ...[...] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:179:6:179:10 | ...[...] | params_flow.rb:179:6:179:10 | ...[...] | +| params_flow.rb:179:6:179:10 | synthetic splat argument | params_flow.rb:179:6:179:10 | synthetic splat argument | +| params_flow.rb:179:9:179:9 | 0 | params_flow.rb:179:9:179:9 | 0 | +| params_flow.rb:181:1:183:3 | &block | params_flow.rb:181:1:183:3 | &block | +| params_flow.rb:181:1:183:3 | positionSideEffect | params_flow.rb:181:1:183:3 | positionSideEffect | +| params_flow.rb:181:1:183:3 | self in positionSideEffect | params_flow.rb:181:1:183:3 | self in positionSideEffect | +| params_flow.rb:181:1:183:3 | synthetic splat parameter | params_flow.rb:181:1:183:3 | synthetic splat parameter | +| params_flow.rb:181:24:181:25 | p1 | params_flow.rb:181:24:181:25 | p1 | +| params_flow.rb:181:24:181:25 | p1 | params_flow.rb:181:24:181:25 | p1 | +| params_flow.rb:181:24:181:25 | p1 | params_flow.rb:181:24:181:25 | p1 | +| params_flow.rb:181:24:181:25 | p1 | params_flow.rb:182:5:182:6 | p1 | +| params_flow.rb:181:28:181:29 | p2 | params_flow.rb:181:28:181:29 | p2 | +| params_flow.rb:181:28:181:29 | p2 | params_flow.rb:181:28:181:29 | p2 | +| params_flow.rb:181:28:181:29 | p2 | params_flow.rb:181:28:181:29 | p2 | +| params_flow.rb:181:28:181:29 | p2 | params_flow.rb:182:18:182:19 | p2 | +| params_flow.rb:182:5:182:6 | [post] p1 | params_flow.rb:182:5:182:6 | [post] p1 | +| params_flow.rb:182:5:182:20 | call to insert | params_flow.rb:182:5:182:20 | call to insert | +| params_flow.rb:182:5:182:20 | call to insert | params_flow.rb:187:1:187:25 | call to positionSideEffect | +| params_flow.rb:182:5:182:20 | call to insert | params_flow.rb:192:1:192:33 | call to positionSideEffect | +| params_flow.rb:182:5:182:20 | synthetic splat argument | params_flow.rb:182:5:182:20 | synthetic splat argument | +| params_flow.rb:182:15:182:15 | 0 | params_flow.rb:182:15:182:15 | 0 | +| params_flow.rb:185:1:185:4 | args | params_flow.rb:185:1:185:4 | args | +| params_flow.rb:185:8:185:24 | Array | params_flow.rb:185:8:185:24 | Array | +| params_flow.rb:185:8:185:24 | call to [] | params_flow.rb:181:24:181:25 | p1 | +| params_flow.rb:185:8:185:24 | call to [] | params_flow.rb:181:24:181:25 | p1 | +| params_flow.rb:185:8:185:24 | call to [] | params_flow.rb:182:5:182:6 | p1 | +| params_flow.rb:185:8:185:24 | call to [] | params_flow.rb:185:1:185:4 | args | +| params_flow.rb:185:8:185:24 | call to [] | params_flow.rb:185:1:185:24 | ... = ... | +| params_flow.rb:185:8:185:24 | call to [] | params_flow.rb:185:8:185:24 | call to [] | +| params_flow.rb:185:8:185:24 | call to [] | params_flow.rb:186:6:186:9 | args | +| params_flow.rb:185:8:185:24 | call to [] | params_flow.rb:187:21:187:24 | args | +| params_flow.rb:185:8:185:24 | call to [] | params_flow.rb:188:6:188:9 | args | +| params_flow.rb:185:8:185:24 | synthetic splat argument | params_flow.rb:181:24:181:25 | p1 | +| params_flow.rb:185:8:185:24 | synthetic splat argument | params_flow.rb:181:24:181:25 | p1 | +| params_flow.rb:185:8:185:24 | synthetic splat argument | params_flow.rb:182:5:182:6 | p1 | +| params_flow.rb:185:8:185:24 | synthetic splat argument | params_flow.rb:185:1:185:4 | args | +| params_flow.rb:185:8:185:24 | synthetic splat argument | params_flow.rb:185:1:185:24 | ... = ... | +| params_flow.rb:185:8:185:24 | synthetic splat argument | params_flow.rb:185:8:185:24 | call to [] | +| params_flow.rb:185:8:185:24 | synthetic splat argument | params_flow.rb:185:8:185:24 | synthetic splat argument | +| params_flow.rb:185:8:185:24 | synthetic splat argument | params_flow.rb:186:6:186:9 | args | +| params_flow.rb:185:8:185:24 | synthetic splat argument | params_flow.rb:187:21:187:24 | args | +| params_flow.rb:185:8:185:24 | synthetic splat argument | params_flow.rb:188:6:188:9 | args | +| params_flow.rb:185:10:185:11 | Array | params_flow.rb:185:10:185:11 | Array | +| params_flow.rb:185:10:185:11 | call to [] | params_flow.rb:181:24:181:25 | p1 | +| params_flow.rb:185:10:185:11 | call to [] | params_flow.rb:181:24:181:25 | p1 | +| params_flow.rb:185:10:185:11 | call to [] | params_flow.rb:182:5:182:6 | p1 | +| params_flow.rb:185:10:185:11 | call to [] | params_flow.rb:185:10:185:11 | call to [] | +| params_flow.rb:185:10:185:11 | call to [] | params_flow.rb:186:6:186:12 | ...[...] | +| params_flow.rb:185:10:185:11 | call to [] | params_flow.rb:188:6:188:12 | ...[...] | +| params_flow.rb:185:14:185:22 | call to taint | params_flow.rb:181:28:181:29 | p2 | +| params_flow.rb:185:14:185:22 | call to taint | params_flow.rb:181:28:181:29 | p2 | +| params_flow.rb:185:14:185:22 | call to taint | params_flow.rb:182:18:182:19 | p2 | +| params_flow.rb:185:14:185:22 | call to taint | params_flow.rb:185:14:185:22 | call to taint | +| params_flow.rb:185:14:185:22 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:185:14:185:22 | synthetic splat argument | params_flow.rb:185:14:185:22 | synthetic splat argument | +| params_flow.rb:185:20:185:21 | 78 | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:185:20:185:21 | 78 | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:185:20:185:21 | 78 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:185:20:185:21 | 78 | params_flow.rb:181:28:181:29 | p2 | +| params_flow.rb:185:20:185:21 | 78 | params_flow.rb:181:28:181:29 | p2 | +| params_flow.rb:185:20:185:21 | 78 | params_flow.rb:182:18:182:19 | p2 | +| params_flow.rb:185:20:185:21 | 78 | params_flow.rb:185:14:185:22 | call to taint | +| params_flow.rb:185:20:185:21 | 78 | params_flow.rb:185:20:185:21 | 78 | +| params_flow.rb:186:1:186:16 | call to sink | params_flow.rb:186:1:186:16 | call to sink | +| params_flow.rb:186:1:186:16 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:186:1:186:16 | synthetic splat argument | params_flow.rb:186:1:186:16 | synthetic splat argument | +| params_flow.rb:186:6:186:12 | ...[...] | params_flow.rb:186:6:186:12 | ...[...] | +| params_flow.rb:186:6:186:12 | synthetic splat argument | params_flow.rb:186:6:186:12 | synthetic splat argument | +| params_flow.rb:186:6:186:15 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:186:6:186:15 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:186:6:186:15 | ...[...] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:186:6:186:15 | ...[...] | params_flow.rb:186:6:186:15 | ...[...] | +| params_flow.rb:186:6:186:15 | synthetic splat argument | params_flow.rb:186:6:186:15 | synthetic splat argument | +| params_flow.rb:186:11:186:11 | 0 | params_flow.rb:186:11:186:11 | 0 | +| params_flow.rb:186:14:186:14 | 0 | params_flow.rb:186:14:186:14 | 0 | +| params_flow.rb:187:1:187:25 | call to positionSideEffect | params_flow.rb:187:1:187:25 | call to positionSideEffect | +| params_flow.rb:187:20:187:24 | * ... | params_flow.rb:181:1:183:3 | synthetic splat parameter | +| params_flow.rb:187:20:187:24 | * ... | params_flow.rb:187:20:187:24 | * ... | +| params_flow.rb:188:1:188:16 | call to sink | params_flow.rb:188:1:188:16 | call to sink | +| params_flow.rb:188:1:188:16 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:188:1:188:16 | synthetic splat argument | params_flow.rb:188:1:188:16 | synthetic splat argument | +| params_flow.rb:188:6:188:12 | ...[...] | params_flow.rb:188:6:188:12 | ...[...] | +| params_flow.rb:188:6:188:12 | synthetic splat argument | params_flow.rb:188:6:188:12 | synthetic splat argument | +| params_flow.rb:188:6:188:15 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:188:6:188:15 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:188:6:188:15 | ...[...] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:188:6:188:15 | ...[...] | params_flow.rb:188:6:188:15 | ...[...] | +| params_flow.rb:188:6:188:15 | synthetic splat argument | params_flow.rb:188:6:188:15 | synthetic splat argument | +| params_flow.rb:188:11:188:11 | 0 | params_flow.rb:188:11:188:11 | 0 | +| params_flow.rb:188:14:188:14 | 0 | params_flow.rb:188:14:188:14 | 0 | +| params_flow.rb:190:1:190:2 | p1 | params_flow.rb:190:1:190:2 | p1 | +| params_flow.rb:190:6:190:7 | Array | params_flow.rb:190:6:190:7 | Array | +| params_flow.rb:190:6:190:7 | call to [] | params_flow.rb:181:24:181:25 | p1 | +| params_flow.rb:190:6:190:7 | call to [] | params_flow.rb:181:24:181:25 | p1 | +| params_flow.rb:190:6:190:7 | call to [] | params_flow.rb:182:5:182:6 | p1 | +| params_flow.rb:190:6:190:7 | call to [] | params_flow.rb:190:1:190:2 | p1 | +| params_flow.rb:190:6:190:7 | call to [] | params_flow.rb:190:1:190:7 | ... = ... | +| params_flow.rb:190:6:190:7 | call to [] | params_flow.rb:190:6:190:7 | call to [] | +| params_flow.rb:190:6:190:7 | call to [] | params_flow.rb:191:6:191:7 | p1 | +| params_flow.rb:190:6:190:7 | call to [] | params_flow.rb:192:20:192:21 | p1 | +| params_flow.rb:190:6:190:7 | call to [] | params_flow.rb:193:6:193:7 | p1 | +| params_flow.rb:191:1:191:11 | call to sink | params_flow.rb:191:1:191:11 | call to sink | +| params_flow.rb:191:1:191:11 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:191:1:191:11 | synthetic splat argument | params_flow.rb:191:1:191:11 | synthetic splat argument | +| params_flow.rb:191:6:191:10 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:191:6:191:10 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:191:6:191:10 | ...[...] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:191:6:191:10 | ...[...] | params_flow.rb:191:6:191:10 | ...[...] | +| params_flow.rb:191:6:191:10 | synthetic splat argument | params_flow.rb:191:6:191:10 | synthetic splat argument | +| params_flow.rb:191:9:191:9 | 0 | params_flow.rb:191:9:191:9 | 0 | +| params_flow.rb:192:1:192:33 | call to positionSideEffect | params_flow.rb:192:1:192:33 | call to positionSideEffect | +| params_flow.rb:192:1:192:33 | synthetic splat argument | params_flow.rb:181:1:183:3 | synthetic splat parameter | +| params_flow.rb:192:1:192:33 | synthetic splat argument | params_flow.rb:192:1:192:33 | synthetic splat argument | +| params_flow.rb:192:24:192:32 | call to taint | params_flow.rb:181:28:181:29 | p2 | +| params_flow.rb:192:24:192:32 | call to taint | params_flow.rb:181:28:181:29 | p2 | +| params_flow.rb:192:24:192:32 | call to taint | params_flow.rb:182:18:182:19 | p2 | +| params_flow.rb:192:24:192:32 | call to taint | params_flow.rb:192:24:192:32 | call to taint | +| params_flow.rb:192:24:192:32 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:192:24:192:32 | synthetic splat argument | params_flow.rb:192:24:192:32 | synthetic splat argument | +| params_flow.rb:192:30:192:31 | 79 | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:192:30:192:31 | 79 | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:192:30:192:31 | 79 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:192:30:192:31 | 79 | params_flow.rb:181:28:181:29 | p2 | +| params_flow.rb:192:30:192:31 | 79 | params_flow.rb:181:28:181:29 | p2 | +| params_flow.rb:192:30:192:31 | 79 | params_flow.rb:182:18:182:19 | p2 | +| params_flow.rb:192:30:192:31 | 79 | params_flow.rb:192:24:192:32 | call to taint | +| params_flow.rb:192:30:192:31 | 79 | params_flow.rb:192:30:192:31 | 79 | +| params_flow.rb:193:1:193:11 | call to sink | params_flow.rb:193:1:193:11 | call to sink | +| params_flow.rb:193:1:193:11 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:193:1:193:11 | synthetic splat argument | params_flow.rb:193:1:193:11 | synthetic splat argument | +| params_flow.rb:193:6:193:10 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:193:6:193:10 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:193:6:193:10 | ...[...] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:193:6:193:10 | ...[...] | params_flow.rb:193:6:193:10 | ...[...] | +| params_flow.rb:193:6:193:10 | synthetic splat argument | params_flow.rb:193:6:193:10 | synthetic splat argument | +| params_flow.rb:193:9:193:9 | 0 | params_flow.rb:193:9:193:9 | 0 | +| params_flow.rb:195:1:195:8 | int_hash | params_flow.rb:195:1:195:8 | int_hash | +| params_flow.rb:195:12:198:1 | Hash | params_flow.rb:195:12:198:1 | Hash | +| params_flow.rb:195:12:198:1 | call to [] | params_flow.rb:195:1:195:8 | int_hash | +| params_flow.rb:195:12:198:1 | call to [] | params_flow.rb:195:1:198:1 | ... = ... | +| params_flow.rb:195:12:198:1 | call to [] | params_flow.rb:195:12:198:1 | call to [] | +| params_flow.rb:195:12:198:1 | call to [] | params_flow.rb:200:9:200:9 | x | +| params_flow.rb:195:12:198:1 | call to [] | params_flow.rb:200:9:200:9 | x | +| params_flow.rb:195:12:198:1 | call to [] | params_flow.rb:201:11:201:11 | x | +| params_flow.rb:195:12:198:1 | call to [] | params_flow.rb:202:11:202:11 | x | +| params_flow.rb:195:12:198:1 | call to [] | params_flow.rb:207:6:207:13 | int_hash | +| params_flow.rb:195:12:198:1 | synthetic hash-splat argument | params_flow.rb:195:1:195:8 | int_hash | +| params_flow.rb:195:12:198:1 | synthetic hash-splat argument | params_flow.rb:195:1:198:1 | ... = ... | +| params_flow.rb:195:12:198:1 | synthetic hash-splat argument | params_flow.rb:195:12:198:1 | call to [] | +| params_flow.rb:195:12:198:1 | synthetic hash-splat argument | params_flow.rb:195:12:198:1 | synthetic hash-splat argument | +| params_flow.rb:195:12:198:1 | synthetic hash-splat argument | params_flow.rb:200:9:200:9 | x | +| params_flow.rb:195:12:198:1 | synthetic hash-splat argument | params_flow.rb:200:9:200:9 | x | +| params_flow.rb:195:12:198:1 | synthetic hash-splat argument | params_flow.rb:201:11:201:11 | x | +| params_flow.rb:195:12:198:1 | synthetic hash-splat argument | params_flow.rb:202:11:202:11 | x | +| params_flow.rb:195:12:198:1 | synthetic hash-splat argument | params_flow.rb:207:6:207:13 | int_hash | +| params_flow.rb:195:12:198:1 | synthetic splat argument | params_flow.rb:195:12:198:1 | synthetic splat argument | +| params_flow.rb:196:5:196:5 | 0 | params_flow.rb:196:5:196:5 | 0 | +| params_flow.rb:196:5:196:18 | Pair | params_flow.rb:196:5:196:18 | Pair | +| params_flow.rb:196:10:196:18 | call to taint | params_flow.rb:196:10:196:18 | call to taint | +| params_flow.rb:196:10:196:18 | call to taint | params_flow.rb:200:9:200:9 | x | +| params_flow.rb:196:10:196:18 | call to taint | params_flow.rb:200:9:200:9 | x | +| params_flow.rb:196:10:196:18 | call to taint | params_flow.rb:201:11:201:11 | x | +| params_flow.rb:196:10:196:18 | call to taint | params_flow.rb:202:11:202:11 | x | +| params_flow.rb:196:10:196:18 | synthetic splat argument | params_flow.rb:1:1:3:3 | synthetic splat parameter | +| params_flow.rb:196:10:196:18 | synthetic splat argument | params_flow.rb:196:10:196:18 | synthetic splat argument | +| params_flow.rb:196:16:196:17 | 80 | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:196:16:196:17 | 80 | params_flow.rb:1:11:1:11 | x | +| params_flow.rb:196:16:196:17 | 80 | params_flow.rb:2:5:2:5 | x | +| params_flow.rb:196:16:196:17 | 80 | params_flow.rb:196:10:196:18 | call to taint | +| params_flow.rb:196:16:196:17 | 80 | params_flow.rb:196:16:196:17 | 80 | +| params_flow.rb:196:16:196:17 | 80 | params_flow.rb:200:9:200:9 | x | +| params_flow.rb:196:16:196:17 | 80 | params_flow.rb:200:9:200:9 | x | +| params_flow.rb:196:16:196:17 | 80 | params_flow.rb:201:11:201:11 | x | +| params_flow.rb:196:16:196:17 | 80 | params_flow.rb:202:11:202:11 | x | +| params_flow.rb:197:5:197:5 | 1 | params_flow.rb:197:5:197:5 | 1 | +| params_flow.rb:197:5:197:12 | Pair | params_flow.rb:197:5:197:12 | Pair | +| params_flow.rb:197:10:197:12 | "B" | params_flow.rb:197:10:197:12 | "B" | +| params_flow.rb:197:10:197:12 | "B" | params_flow.rb:200:12:200:12 | y | +| params_flow.rb:197:10:197:12 | "B" | params_flow.rb:200:12:200:12 | y | +| params_flow.rb:197:10:197:12 | "B" | params_flow.rb:203:11:203:11 | y | +| params_flow.rb:197:10:197:12 | "B" | params_flow.rb:204:11:204:11 | y | +| params_flow.rb:200:1:205:3 | &block | params_flow.rb:200:1:205:3 | &block | +| params_flow.rb:200:1:205:3 | foo | params_flow.rb:200:1:205:3 | foo | +| params_flow.rb:200:1:205:3 | self in foo | params_flow.rb:5:1:7:3 | self (sink) | +| params_flow.rb:200:1:205:3 | self in foo | params_flow.rb:5:1:7:3 | self in sink | +| params_flow.rb:200:1:205:3 | self in foo | params_flow.rb:6:5:6:10 | self | +| params_flow.rb:200:1:205:3 | self in foo | params_flow.rb:200:1:205:3 | self (foo) | +| params_flow.rb:200:1:205:3 | self in foo | params_flow.rb:200:1:205:3 | self in foo | +| params_flow.rb:200:1:205:3 | self in foo | params_flow.rb:201:5:201:15 | self | +| params_flow.rb:200:1:205:3 | self in foo | params_flow.rb:202:5:202:15 | self | +| params_flow.rb:200:1:205:3 | self in foo | params_flow.rb:203:5:203:15 | self | +| params_flow.rb:200:1:205:3 | self in foo | params_flow.rb:204:5:204:15 | self | +| params_flow.rb:200:1:205:3 | synthetic splat parameter | params_flow.rb:200:1:205:3 | synthetic splat parameter | +| params_flow.rb:200:9:200:9 | x | params_flow.rb:200:9:200:9 | x | +| params_flow.rb:200:9:200:9 | x | params_flow.rb:200:9:200:9 | x | +| params_flow.rb:200:9:200:9 | x | params_flow.rb:200:9:200:9 | x | +| params_flow.rb:200:9:200:9 | x | params_flow.rb:201:11:201:11 | x | +| params_flow.rb:200:9:200:9 | x | params_flow.rb:202:11:202:11 | x | +| params_flow.rb:200:12:200:12 | y | params_flow.rb:200:12:200:12 | y | +| params_flow.rb:200:12:200:12 | y | params_flow.rb:200:12:200:12 | y | +| params_flow.rb:200:12:200:12 | y | params_flow.rb:200:12:200:12 | y | +| params_flow.rb:200:12:200:12 | y | params_flow.rb:203:11:203:11 | y | +| params_flow.rb:200:12:200:12 | y | params_flow.rb:204:11:204:11 | y | +| params_flow.rb:201:5:201:15 | call to sink | params_flow.rb:201:5:201:15 | call to sink | +| params_flow.rb:201:5:201:15 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:201:5:201:15 | synthetic splat argument | params_flow.rb:201:5:201:15 | synthetic splat argument | +| params_flow.rb:201:11:201:14 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:201:11:201:14 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:201:11:201:14 | ...[...] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:201:11:201:14 | ...[...] | params_flow.rb:201:10:201:15 | ( ... ) | +| params_flow.rb:201:11:201:14 | ...[...] | params_flow.rb:201:11:201:14 | ...[...] | +| params_flow.rb:201:11:201:14 | synthetic splat argument | params_flow.rb:201:11:201:14 | synthetic splat argument | +| params_flow.rb:201:13:201:13 | 0 | params_flow.rb:201:13:201:13 | 0 | +| params_flow.rb:202:5:202:15 | call to sink | params_flow.rb:202:5:202:15 | call to sink | +| params_flow.rb:202:5:202:15 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:202:5:202:15 | synthetic splat argument | params_flow.rb:202:5:202:15 | synthetic splat argument | +| params_flow.rb:202:11:202:14 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:202:11:202:14 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:202:11:202:14 | ...[...] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:202:11:202:14 | ...[...] | params_flow.rb:202:10:202:15 | ( ... ) | +| params_flow.rb:202:11:202:14 | ...[...] | params_flow.rb:202:11:202:14 | ...[...] | +| params_flow.rb:202:11:202:14 | synthetic splat argument | params_flow.rb:202:11:202:14 | synthetic splat argument | +| params_flow.rb:202:13:202:13 | 1 | params_flow.rb:202:13:202:13 | 1 | +| params_flow.rb:203:5:203:15 | call to sink | params_flow.rb:203:5:203:15 | call to sink | +| params_flow.rb:203:5:203:15 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:203:5:203:15 | synthetic splat argument | params_flow.rb:203:5:203:15 | synthetic splat argument | +| params_flow.rb:203:11:203:14 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:203:11:203:14 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:203:11:203:14 | ...[...] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:203:11:203:14 | ...[...] | params_flow.rb:203:10:203:15 | ( ... ) | +| params_flow.rb:203:11:203:14 | ...[...] | params_flow.rb:203:11:203:14 | ...[...] | +| params_flow.rb:203:11:203:14 | synthetic splat argument | params_flow.rb:203:11:203:14 | synthetic splat argument | +| params_flow.rb:203:13:203:13 | 0 | params_flow.rb:203:13:203:13 | 0 | +| params_flow.rb:204:5:204:15 | call to sink | params_flow.rb:204:5:204:15 | call to sink | +| params_flow.rb:204:5:204:15 | call to sink | params_flow.rb:207:1:207:14 | call to foo | +| params_flow.rb:204:5:204:15 | synthetic splat argument | params_flow.rb:5:1:7:3 | synthetic splat parameter | +| params_flow.rb:204:5:204:15 | synthetic splat argument | params_flow.rb:204:5:204:15 | synthetic splat argument | +| params_flow.rb:204:11:204:14 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:204:11:204:14 | ...[...] | params_flow.rb:5:10:5:10 | x | +| params_flow.rb:204:11:204:14 | ...[...] | params_flow.rb:6:10:6:10 | x | +| params_flow.rb:204:11:204:14 | ...[...] | params_flow.rb:204:10:204:15 | ( ... ) | +| params_flow.rb:204:11:204:14 | ...[...] | params_flow.rb:204:11:204:14 | ...[...] | +| params_flow.rb:204:11:204:14 | synthetic splat argument | params_flow.rb:204:11:204:14 | synthetic splat argument | +| params_flow.rb:204:13:204:13 | 1 | params_flow.rb:204:13:204:13 | 1 | +| params_flow.rb:207:1:207:14 | call to foo | params_flow.rb:207:1:207:14 | call to foo | +| params_flow.rb:207:5:207:13 | * ... | params_flow.rb:200:1:205:3 | synthetic splat parameter | +| params_flow.rb:207:5:207:13 | * ... | params_flow.rb:207:5:207:13 | * ... | forwardButNoBackwardFlow backwardButNoForwardFlow diff --git a/ruby/ql/test/library-tests/dataflow/params/params-flow.expected b/ruby/ql/test/library-tests/dataflow/params/params-flow.expected index 07a3bc076971..7ed1f7586822 100644 --- a/ruby/ql/test/library-tests/dataflow/params/params-flow.expected +++ b/ruby/ql/test/library-tests/dataflow/params/params-flow.expected @@ -157,6 +157,18 @@ edges | params_flow.rb:134:10:134:13 | args [element 1] | params_flow.rb:134:10:134:16 | ...[...] | | params_flow.rb:137:10:137:43 | * ... [element 1] | params_flow.rb:133:14:133:18 | *args [element 1] | | params_flow.rb:137:23:137:31 | call to taint | params_flow.rb:137:10:137:43 | * ... [element 1] | +| params_flow.rb:153:28:153:29 | p2 | params_flow.rb:154:18:154:19 | p2 | +| params_flow.rb:154:18:154:19 | p2 | params_flow.rb:154:5:154:6 | [post] p1 [element 0] | +| params_flow.rb:164:23:164:24 | [post] p1 [element 0] | params_flow.rb:165:6:165:7 | p1 [element 0] | +| params_flow.rb:164:31:164:39 | call to taint | params_flow.rb:153:28:153:29 | p2 | +| params_flow.rb:164:31:164:39 | call to taint | params_flow.rb:164:23:164:24 | [post] p1 [element 0] | +| params_flow.rb:165:6:165:7 | p1 [element 0] | params_flow.rb:165:6:165:10 | ...[...] | +| params_flow.rb:181:28:181:29 | p2 | params_flow.rb:182:18:182:19 | p2 | +| params_flow.rb:182:18:182:19 | p2 | params_flow.rb:182:5:182:6 | [post] p1 [element 0] | +| params_flow.rb:192:20:192:21 | [post] p1 [element 0] | params_flow.rb:193:6:193:7 | p1 [element 0] | +| params_flow.rb:192:24:192:32 | call to taint | params_flow.rb:181:28:181:29 | p2 | +| params_flow.rb:192:24:192:32 | call to taint | params_flow.rb:192:20:192:21 | [post] p1 [element 0] | +| params_flow.rb:193:6:193:7 | p1 [element 0] | params_flow.rb:193:6:193:10 | ...[...] | nodes | params_flow.rb:9:16:9:17 | p1 | semmle.label | p1 | | params_flow.rb:9:20:9:21 | p2 | semmle.label | p2 | @@ -339,7 +351,23 @@ nodes | params_flow.rb:134:10:134:16 | ...[...] | semmle.label | ...[...] | | params_flow.rb:137:10:137:43 | * ... [element 1] | semmle.label | * ... [element 1] | | params_flow.rb:137:23:137:31 | call to taint | semmle.label | call to taint | +| params_flow.rb:153:28:153:29 | p2 | semmle.label | p2 | +| params_flow.rb:154:5:154:6 | [post] p1 [element 0] | semmle.label | [post] p1 [element 0] | +| params_flow.rb:154:18:154:19 | p2 | semmle.label | p2 | +| params_flow.rb:164:23:164:24 | [post] p1 [element 0] | semmle.label | [post] p1 [element 0] | +| params_flow.rb:164:31:164:39 | call to taint | semmle.label | call to taint | +| params_flow.rb:165:6:165:7 | p1 [element 0] | semmle.label | p1 [element 0] | +| params_flow.rb:165:6:165:10 | ...[...] | semmle.label | ...[...] | +| params_flow.rb:181:28:181:29 | p2 | semmle.label | p2 | +| params_flow.rb:182:5:182:6 | [post] p1 [element 0] | semmle.label | [post] p1 [element 0] | +| params_flow.rb:182:18:182:19 | p2 | semmle.label | p2 | +| params_flow.rb:192:20:192:21 | [post] p1 [element 0] | semmle.label | [post] p1 [element 0] | +| params_flow.rb:192:24:192:32 | call to taint | semmle.label | call to taint | +| params_flow.rb:193:6:193:7 | p1 [element 0] | semmle.label | p1 [element 0] | +| params_flow.rb:193:6:193:10 | ...[...] | semmle.label | ...[...] | subpaths +| params_flow.rb:164:31:164:39 | call to taint | params_flow.rb:153:28:153:29 | p2 | params_flow.rb:154:5:154:6 | [post] p1 [element 0] | params_flow.rb:164:23:164:24 | [post] p1 [element 0] | +| params_flow.rb:192:24:192:32 | call to taint | params_flow.rb:181:28:181:29 | p2 | params_flow.rb:182:5:182:6 | [post] p1 [element 0] | params_flow.rb:192:20:192:21 | [post] p1 [element 0] | #select | params_flow.rb:10:10:10:11 | p1 | params_flow.rb:14:12:14:19 | call to taint | params_flow.rb:10:10:10:11 | p1 | $@ | params_flow.rb:14:12:14:19 | call to taint | call to taint | | params_flow.rb:10:10:10:11 | p1 | params_flow.rb:44:12:44:20 | call to taint | params_flow.rb:10:10:10:11 | p1 | $@ | params_flow.rb:44:12:44:20 | call to taint | call to taint | @@ -398,3 +426,5 @@ subpaths | params_flow.rb:110:10:110:13 | ...[...] | params_flow.rb:114:44:114:52 | call to taint | params_flow.rb:110:10:110:13 | ...[...] | $@ | params_flow.rb:114:44:114:52 | call to taint | call to taint | | params_flow.rb:111:10:111:10 | c | params_flow.rb:114:58:114:66 | call to taint | params_flow.rb:111:10:111:10 | c | $@ | params_flow.rb:114:58:114:66 | call to taint | call to taint | | params_flow.rb:134:10:134:16 | ...[...] | params_flow.rb:137:23:137:31 | call to taint | params_flow.rb:134:10:134:16 | ...[...] | $@ | params_flow.rb:137:23:137:31 | call to taint | call to taint | +| params_flow.rb:165:6:165:10 | ...[...] | params_flow.rb:164:31:164:39 | call to taint | params_flow.rb:165:6:165:10 | ...[...] | $@ | params_flow.rb:164:31:164:39 | call to taint | call to taint | +| params_flow.rb:193:6:193:10 | ...[...] | params_flow.rb:192:24:192:32 | call to taint | params_flow.rb:193:6:193:10 | ...[...] | $@ | params_flow.rb:192:24:192:32 | call to taint | call to taint | diff --git a/ruby/ql/test/library-tests/dataflow/params/params_flow.rb b/ruby/ql/test/library-tests/dataflow/params/params_flow.rb index c1b1da0563fc..34599eb35a90 100644 --- a/ruby/ql/test/library-tests/dataflow/params/params_flow.rb +++ b/ruby/ql/test/library-tests/dataflow/params/params_flow.rb @@ -135,3 +135,73 @@ def splatall(*args) end splatall(*[taint(69), taint(70), taint(71)]) + +def hashSplatSideEffect(**kwargs) + kwargs[:p1].insert(0, kwargs[:p2]) +end + +kwargs = { p1: [], p2: taint(72) } +sink(kwargs[:p1][0]) +hashSplatSideEffect(**kwargs) +sink(kwargs[:p1][0]) # $ MISSING: hasValueFlow=72 + +p1 = [] +sink(p1[0]) +hashSplatSideEffect(p1: p1, p2: taint(73)) +sink(p1[0]) # $ MISSING: hasValueFlow=73 + +def keywordSideEffect(p1:, p2:) + p1.insert(0, p2) +end + +kwargs = { p1: [], p2: taint(74) } +sink(kwargs[:p1][0]) +keywordSideEffect(**kwargs) +sink(kwargs[:p1][0]) # $ MISSING: hasValueFlow=74 + +p1 = [] +sink(p1[0]) +keywordSideEffect(p1: p1, p2: taint(75)) +sink(p1[0]) # $ hasValueFlow=75 + +def splatSideEffect(*posargs) + posargs[0].insert(0, posargs[1]) +end + +posargs = [ [], taint(76) ] +sink(posargs[0][0]) +splatSideEffect(*posargs) +sink(posargs[0][0]) # $ MISSING: hasValueFlow=76 + +p1 = [] +sink(p1[0]) +splatSideEffect(p1, taint(77)) +sink(p1[0]) # $ MISSING: hasValueFlow=77 + +def positionSideEffect(p1, p2) + p1.insert(0, p2) +end + +args = [ [], taint(78) ] +sink(args[0][0]) +positionSideEffect(*args) +sink(args[0][0]) # $ MISSING: hasValueFlow=78 + +p1 = [] +sink(p1[0]) +positionSideEffect(p1, taint(79)) +sink(p1[0]) # $ hasValueFlow=79 + +int_hash = { + 0 => taint(80), + 1 => "B" +} + +def foo(x, y) + sink (x[0]) + sink (x[1]) # $ MISSING: hasValueFlow=80 + sink (y[0]) + sink (y[1]) +end + +foo(*int_hash)