{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-4+qual-2+sec-2","generated_at":"2026-11-14T00:10:05.054097Z","repo":{"ref":{"host":"github.com","owner":"jgravelle","name":"jcodemunch-mcp"},"default_branch":"main","clone_url":"https://github.com/jgravelle/jcodemunch-mcp.git","html_url":"https://github.com/jgravelle/jcodemunch-mcp","description":"Symbol-level code retrieval for AI agents: fetch the function you need, not the whole file. Runs locally. 96.2% fewer tokens per lookup on average than grep-and-read on our 15-lookup benchmark. Works with Claude Code, Cursor, Codex and any MCP client. Free for non-commercial use; commercial use needs a one-time license.","stars":2850,"forks":373,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":45387,"primary_language":"Python","license_spdx":"NOASSERTION","created_at":"2026-02-09T01:58:27Z","pushed_at":"2026-11-13T12:23:51Z","security_policy_url":"https://github.com/jgravelle/jcodemunch-mcp/security/policy","distribution":{"owner_created_at":"2013-01-27T23:59:07Z","owner_type":"User","release_assets":[{"name":"jcodemunch_mcp-1.108.444-py3-none-any.whl","size":2097016,"download_count":2,"release_tag":"v1.108.444","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.444/jcodemunch_mcp-1.108.444-py3-none-any.whl"},{"name":"jcodemunch_mcp-1.108.444-py3-none-any.whl.sigstore.json","size":11190,"download_count":2,"release_tag":"v1.108.444","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.444/jcodemunch_mcp-1.108.444-py3-none-any.whl.sigstore.json"},{"name":"jcodemunch_mcp-1.108.444.tar.gz","size":7343413,"download_count":2,"release_tag":"v1.108.444","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.444/jcodemunch_mcp-1.108.444.tar.gz"},{"name":"jcodemunch_mcp-1.108.444.tar.gz.sigstore.json","size":11190,"download_count":2,"release_tag":"v1.108.444","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.444/jcodemunch_mcp-1.108.444.tar.gz.sigstore.json"},{"name":"jcodemunch_mcp-1.108.443-py3-none-any.whl","size":2096741,"download_count":4,"release_tag":"v1.108.443","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.443/jcodemunch_mcp-1.108.443-py3-none-any.whl"},{"name":"jcodemunch_mcp-1.108.443-py3-none-any.whl.sigstore.json","size":11370,"download_count":2,"release_tag":"v1.108.443","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.443/jcodemunch_mcp-1.108.443-py3-none-any.whl.sigstore.json"},{"name":"jcodemunch_mcp-1.108.443.tar.gz","size":7341145,"download_count":2,"release_tag":"v1.108.443","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.443/jcodemunch_mcp-1.108.443.tar.gz"},{"name":"jcodemunch_mcp-1.108.443.tar.gz.sigstore.json","size":11366,"download_count":2,"release_tag":"v1.108.443","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.443/jcodemunch_mcp-1.108.443.tar.gz.sigstore.json"},{"name":"jcodemunch_mcp-1.108.442-py3-none-any.whl","size":2095964,"download_count":1,"release_tag":"v1.108.442","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.442/jcodemunch_mcp-1.108.442-py3-none-any.whl"},{"name":"jcodemunch_mcp-1.108.442-py3-none-any.whl.sigstore.json","size":11182,"download_count":1,"release_tag":"v1.108.442","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.442/jcodemunch_mcp-1.108.442-py3-none-any.whl.sigstore.json"},{"name":"jcodemunch_mcp-1.108.442.tar.gz","size":7335019,"download_count":1,"release_tag":"v1.108.442","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.442/jcodemunch_mcp-1.108.442.tar.gz"},{"name":"jcodemunch_mcp-1.108.442.tar.gz.sigstore.json","size":11178,"download_count":1,"release_tag":"v1.108.442","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.442/jcodemunch_mcp-1.108.442.tar.gz.sigstore.json"},{"name":"jcodemunch_mcp-1.108.441-py3-none-any.whl","size":2095160,"download_count":1,"release_tag":"v1.108.441","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.441/jcodemunch_mcp-1.108.441-py3-none-any.whl"},{"name":"jcodemunch_mcp-1.108.441-py3-none-any.whl.sigstore.json","size":11002,"download_count":1,"release_tag":"v1.108.441","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.441/jcodemunch_mcp-1.108.441-py3-none-any.whl.sigstore.json"},{"name":"jcodemunch_mcp-1.108.441.tar.gz","size":7325333,"download_count":1,"release_tag":"v1.108.441","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.441/jcodemunch_mcp-1.108.441.tar.gz"},{"name":"jcodemunch_mcp-1.108.441.tar.gz.sigstore.json","size":11147,"download_count":1,"release_tag":"v1.108.441","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.441/jcodemunch_mcp-1.108.441.tar.gz.sigstore.json"},{"name":"jcodemunch_mcp-1.108.440-py3-none-any.whl","size":2094236,"download_count":2,"release_tag":"v1.108.440","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.440/jcodemunch_mcp-1.108.440-py3-none-any.whl"},{"name":"jcodemunch_mcp-1.108.440-py3-none-any.whl.sigstore.json","size":11237,"download_count":2,"release_tag":"v1.108.440","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.440/jcodemunch_mcp-1.108.440-py3-none-any.whl.sigstore.json"},{"name":"jcodemunch_mcp-1.108.440.tar.gz","size":7317371,"download_count":2,"release_tag":"v1.108.440","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.440/jcodemunch_mcp-1.108.440.tar.gz"},{"name":"jcodemunch_mcp-1.108.440.tar.gz.sigstore.json","size":11237,"download_count":2,"release_tag":"v1.108.440","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.440/jcodemunch_mcp-1.108.440.tar.gz.sigstore.json"},{"name":"jcodemunch_mcp-1.108.439-py3-none-any.whl","size":2093800,"download_count":1,"release_tag":"v1.108.439","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.439/jcodemunch_mcp-1.108.439-py3-none-any.whl"},{"name":"jcodemunch_mcp-1.108.439-py3-none-any.whl.sigstore.json","size":11037,"download_count":1,"release_tag":"v1.108.439","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.439/jcodemunch_mcp-1.108.439-py3-none-any.whl.sigstore.json"},{"name":"jcodemunch_mcp-1.108.439.tar.gz","size":7315159,"download_count":1,"release_tag":"v1.108.439","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.439/jcodemunch_mcp-1.108.439.tar.gz"},{"name":"jcodemunch_mcp-1.108.439.tar.gz.sigstore.json","size":11041,"download_count":1,"release_tag":"v1.108.439","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.439/jcodemunch_mcp-1.108.439.tar.gz.sigstore.json"},{"name":"jcodemunch_mcp-1.108.438-py3-none-any.whl","size":2080856,"download_count":1,"release_tag":"v1.108.438","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.438/jcodemunch_mcp-1.108.438-py3-none-any.whl"},{"name":"jcodemunch_mcp-1.108.438-py3-none-any.whl.sigstore.json","size":11178,"download_count":1,"release_tag":"v1.108.438","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.438/jcodemunch_mcp-1.108.438-py3-none-any.whl.sigstore.json"},{"name":"jcodemunch_mcp-1.108.438.tar.gz","size":7258580,"download_count":1,"release_tag":"v1.108.438","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.438/jcodemunch_mcp-1.108.438.tar.gz"},{"name":"jcodemunch_mcp-1.108.438.tar.gz.sigstore.json","size":11229,"download_count":1,"release_tag":"v1.108.438","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.438/jcodemunch_mcp-1.108.438.tar.gz.sigstore.json"},{"name":"jcodemunch_mcp-1.108.437-py3-none-any.whl","size":2078490,"download_count":1,"release_tag":"v1.108.437","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.437/jcodemunch_mcp-1.108.437-py3-none-any.whl"},{"name":"jcodemunch_mcp-1.108.437-py3-none-any.whl.sigstore.json","size":11182,"download_count":1,"release_tag":"v1.108.437","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.437/jcodemunch_mcp-1.108.437-py3-none-any.whl.sigstore.json"},{"name":"jcodemunch_mcp-1.108.437.tar.gz","size":7252610,"download_count":1,"release_tag":"v1.108.437","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.437/jcodemunch_mcp-1.108.437.tar.gz"},{"name":"jcodemunch_mcp-1.108.437.tar.gz.sigstore.json","size":11272,"download_count":1,"release_tag":"v1.108.437","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.437/jcodemunch_mcp-1.108.437.tar.gz.sigstore.json"},{"name":"jcodemunch_mcp-1.108.436-py3-none-any.whl","size":2075401,"download_count":3,"release_tag":"v1.108.436","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.436/jcodemunch_mcp-1.108.436-py3-none-any.whl"},{"name":"jcodemunch_mcp-1.108.436-py3-none-any.whl.sigstore.json","size":11178,"download_count":1,"release_tag":"v1.108.436","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.436/jcodemunch_mcp-1.108.436-py3-none-any.whl.sigstore.json"},{"name":"jcodemunch_mcp-1.108.436.tar.gz","size":7243688,"download_count":3,"release_tag":"v1.108.436","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.436/jcodemunch_mcp-1.108.436.tar.gz"},{"name":"jcodemunch_mcp-1.108.436.tar.gz.sigstore.json","size":11174,"download_count":1,"release_tag":"v1.108.436","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.436/jcodemunch_mcp-1.108.436.tar.gz.sigstore.json"},{"name":"jcodemunch_mcp-1.108.435-py3-none-any.whl","size":2073422,"download_count":2,"release_tag":"v1.108.435","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.435/jcodemunch_mcp-1.108.435-py3-none-any.whl"},{"name":"jcodemunch_mcp-1.108.435-py3-none-any.whl.sigstore.json","size":11131,"download_count":2,"release_tag":"v1.108.435","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.435/jcodemunch_mcp-1.108.435-py3-none-any.whl.sigstore.json"},{"name":"jcodemunch_mcp-1.108.435.tar.gz","size":7236373,"download_count":2,"release_tag":"v1.108.435","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.435/jcodemunch_mcp-1.108.435.tar.gz"},{"name":"jcodemunch_mcp-1.108.435.tar.gz.sigstore.json","size":11131,"download_count":2,"release_tag":"v1.108.435","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.435/jcodemunch_mcp-1.108.435.tar.gz.sigstore.json"}]}},"commit_sha":"30bbeb96a5a18dacdf0b49934397cde6b9283232","profile":{"lines_by_language":{"Python":424859,"SQL":13613,"TypeScript":866,"Rust":613,"PowerShell":370,"C#":209,"Shell":195,"PHP":192,"Go":78,"Elixir":56,"Ruby":46,"C++":44,"Dart":38,"Svelte":36,"C":34,"JavaScript":28,"Java":19},"files_by_category":{"test":1005,"source":484,"config":190,"docs":156,"other":78,"generated":2,"oversized":1,"binary":1},"source_lines":190354,"test_lines":250942},"pillars":{"ai_provenance":{"score":85.5,"confidence":0.95,"coverage":1.0,"label":"explicit","breakdown":{"attributed_share":0.855,"suspected_share":0.0535,"estimated_share":0.855,"ai_artifacts":34.0,"flagged_work_units":38.0,"flagged_releases":1.0},"summary":"Explicit AI attribution on 86% of first-party code added; an estimated 86% including velocity signals."},"quality":{"score":70.8,"confidence":0.9,"coverage":1.0,"label":"adequate","breakdown":{"complexity":26.9,"duplication":72.1,"lint":69.9,"testing":100.0,"docs":100.0,"type_safety":40.3,"process":null},"summary":"Code quality is adequate: test-to-source ratio 1.32, CI runs tests; 44% of function code in complex or long functions; 5% duplicated lines. Weakest area: complexity."},"security":{"score":74.8,"confidence":0.85,"coverage":1.0,"label":"adequate","breakdown":{"secrets":87.5,"sast":85.9,"dependencies":90.5,"ci_actions":1.0,"posture":100.0,"scorecard":null},"summary":"Security posture is adequate: 3 known vulnerabilities in 2 dependencies; 87 high-severity SAST findings; 24 high-severity workflow issues. Weakest area: ci actions."}},"analyzer_results":[{"analyzer":"sec-scorecard","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":"no published OpenSSF Scorecard result for this repo"},{"analyzer":"sec-registry","pillar":"security","status":"ok","tool_version":null,"metrics":{"declared":44.0,"checked":44.0,"missing":0.0,"recent":0.0,"lookup_errors":0.0},"findings":[],"evidence":[],"data":{"phantom":false},"error":null},{"analyzer":"ai-attribution","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"commits":2353.0,"attributed_commits":1941.0,"attributed_commit_share":0.8249043773905652,"effective_loc":475484.0,"attributed_loc":406544.0,"attributed_loc_share":0.8550108941625796,"tools_detected":3.0},"findings":[],"evidence":[{"kind":"attribution-summary","description":"Claude Code: 1929 attributed commits, 404,728 lines added","ref":null,"url":null,"weight":1.0},{"kind":"attribution-summary","description":"OpenAI Codex: 13 attributed commits, 3,540 lines added","ref":null,"url":null,"weight":1.0},{"kind":"attribution-summary","description":"GitHub Copilot coding agent: 2 attributed commits, 0 lines added","ref":null,"url":null,"weight":1.0},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"30bbeb96a5a18dacdf0b49934397cde6b9283232","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/30bbeb96a5a18dacdf0b49934397cde6b9283232","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"9811f30e58c3522a2aeac6aabd883e0996c572f6","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/9811f30e58c3522a2aeac6aabd883e0996c572f6","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"dcacf92cd1110c4c636a537bac5c9da5b277800d","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/dcacf92cd1110c4c636a537bac5c9da5b277800d","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"eea6882828d0e817c5e2d6efb8b0d0dca8b2f808","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/eea6882828d0e817c5e2d6efb8b0d0dca8b2f808","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"dae7d010a2d3352f7b83a020b33970645458488a","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/dae7d010a2d3352f7b83a020b33970645458488a","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"aa4271452ff675f0d7b99b707328a94de355c951","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/aa4271452ff675f0d7b99b707328a94de355c951","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"fad0a4f36897f24f7a81859903ccffdf5ff11ad3","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/fad0a4f36897f24f7a81859903ccffdf5ff11ad3","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"07c1af2ed54efbccc60307878e759c881defd6d5","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/07c1af2ed54efbccc60307878e759c881defd6d5","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"0924d5f0f571659448fd2a0d26539a848893bb16","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/0924d5f0f571659448fd2a0d26539a848893bb16","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"8c7cb527df166265cc132b961e5fd9f45eb08476","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/8c7cb527df166265cc132b961e5fd9f45eb08476","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"19766132495442f4502194e15bd1ae511d044407","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/19766132495442f4502194e15bd1ae511d044407","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"f7e9140da4c9824595a4e18b4adb2e7544b37d20","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/f7e9140da4c9824595a4e18b4adb2e7544b37d20","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"eab9c46d3dc917927a50cac6e579b71cd0c8be6e","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/eab9c46d3dc917927a50cac6e579b71cd0c8be6e","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"05c7fb69817cfbaea8aa2e6b5a494a88c303f8c9","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/05c7fb69817cfbaea8aa2e6b5a494a88c303f8c9","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"add647389eb4169fa50d115b5c4956e7b42070a1","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/add647389eb4169fa50d115b5c4956e7b42070a1","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"de95b4ec975786730e7fa99fbd0d55dd35a4d02d","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/de95b4ec975786730e7fa99fbd0d55dd35a4d02d","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"1b1b6b72ea4ccb1974cfef8afc94779508fdb00b","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/1b1b6b72ea4ccb1974cfef8afc94779508fdb00b","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"db9cc51f75b06b6bf9e20c373371ace74bab2cbd","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/db9cc51f75b06b6bf9e20c373371ace74bab2cbd","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"1660f739833d3533683173a88feca6e2571b45a5","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/1660f739833d3533683173a88feca6e2571b45a5","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"1b25a0e6ea36c2dde07dd28ac27079ab5d6c01bf","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/1b25a0e6ea36c2dde07dd28ac27079ab5d6c01bf","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"6d086875f3813ea9fb9d691966dbc8cdaa484d6b","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/6d086875f3813ea9fb9d691966dbc8cdaa484d6b","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"ce34bc0ad8fe60eb6503beffaaeb8d5e649ec765","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/ce34bc0ad8fe60eb6503beffaaeb8d5e649ec765","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"015fc1741f29f213bf43414fd44d896cbf948ac3","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/015fc1741f29f213bf43414fd44d896cbf948ac3","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"b180939570526deb9ec07b5c3a9e52e5c604b568","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/b180939570526deb9ec07b5c3a9e52e5c604b568","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"738fa13f0d3bbd932be56d477c14b0cd9d016117","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/738fa13f0d3bbd932be56d477c14b0cd9d016117","weight":0.9}],"data":{"attributed_loc_by_commit":{"927854ab0b40450618585c1f265558fba987bc06":2567,"7f937b20985c0270cddb3ba626c580397514f650":0,"a98dc214667266ce124f007314cda731dff6f569":170,"61d5e9a1d3c7acf2f2709f2839ce7945a2918533":0,"cb9ee906abbfc4bd9eef7c553b7fb49d2d2092cd":2,"9310adeb754ec0eb58644e2020152ef492f2af3b":0,"86059cd315d90dedd0867fd594c43c7871ac8bb3":138,"649993451419e8845fa7a1880633435267cc21e7":0,"ca0a162c6ee0d463421c475a917e20a32028c35b":162,"8283326201c9beddf06be8041778bf485a56dc53":0,"49f5752166a136e252c7ebd0877acaef5b6a6935":0,"f70e798827accaea3babc15cfeb1ee3d0f839400":191,"905208cc732dcde2ca6c498a37ee1731f07385f0":0,"bf52bad07c3c9dfe00162a5d2d344b69ca3685fb":0,"68e1adf2258ef24ba6d21019f9f9028594851521":144,"a198bde35fdd10a4da22e08e093e472f7cd671eb":0,"676700941054f1cf89ead91b919e53fe63c5d731":0,"2c64dd7653bbba05c9e1c8d7533c359bf67b1f6b":0,"913332bd42465b5d76794b543c118d91cd3c3a3c":49,"7990a68bdb257c726c2f7f27180a1945351a626f":0,"896fe1f0ed498c1efae1c70c1f332514a87a904c":39,"d51c1f1fcc81cd6af440be09276128042641c542":7,"d070582918cb8a40930e595625b97e4d9149bc6c":0,"b8582f5da4016110ff05714543c0111e10438fbb":0,"8fc243cd3db358a17d7283f7b01f54b6985c736d":0,"c9f4e8705c394a7ca4d4462fbbe581de231b2d89":0,"aa26af7eddde89d8b3f12eb170b394fbcabcdd74":33,"7e1b035e63a1e6890422420a25cb1cc68bfa011f":1,"285ccb13271b8a180a9737092d47c01c48ea4c89":5,"77a2c13b4a748df4a8b62ed044cf15e443b00f00":2,"a5d5fd17d8baec7608bb0644884069bcc4a10945":13,"66accdfcd1ff9db217c18200cc0d71541fe55da8":0,"2a89961b48b76b01380520e72266c1c853323f3e":0,"e92b350407131da3600165d489a73dbf4e53bd39":0,"7673e579ae2695351f16963030b238859ac6b2ef":0,"1802af0af2e1c45096b2ea5c8beeefa42c66a181":0,"212d17d334187aeab579f0d95c393a8020e2dd2f":1,"debc1938dcc06c9db4e72977f0db9a5d1fd6edd5":136,"8dacdbb2c22c10796d9e4cb7f5d86fb0e9d6506e":1,"4e40d249c70575b10e020fde881ed9b450b5c0d8":75,"1f575d4c25d0d1936c29fdc6f64c0cc2241b32de":310,"38a8a3eae93a0c10d2fb9f5b8f136520f63767f4":0,"4af920e166da190cb084077e3822aef7d843dc1d":33,"a666c2b17d6e942ac67b58704576816b64bc0a97":1,"f9e3c9c72dc0e4b7991a03c1311ef974974a3a73":0,"0f7452a16de45e79d493e83ad02e2be28613bc11":112,"7d952beb268f783e252557266cc7596c013f1f5e":45,"371d529b15d98b078efcab6bf4db9f050df132c1":225,"14aa0616824d7f8f357a59115b57baa56469f0d6":239,"47c7052c860dbf66c98f7658250ce6fbed556f7f":110,"67f1f470eb99394869e296632125593163dd8008":161,"ec659c00c83e1aee11b0bd6ee832299c4f62b5a9":0,"56d34b8257674b33f72ef20f808972f7735b5d4a":1017,"6e7af7f086c9537fd593d9ee670d4f0b1639690f":246,"4d67c3053ee851dd145001b716627b8734a07026":0,"87be09da29ae501b893277a3a51dd69e7d4f9c22":8,"dd4df023bd554f755f8ed17b99906c7118163040":18,"8a31e3d37c6ed5a7b1c92b2909a11892940618f9":156,"b6c54901910ea38757b968ea9559d1bf68ddac94":259,"2157d79e5ce60492ae10de671d0f086c139bae7a":0,"322082a3cdedcc92e850f5f544a7ef8437c969c9":0,"b5139d8396aedc86993d373934fe4575eafcfcea":254,"6df79d01fb3544038e4fc682e34e9df8f37ee485":640,"ee99818cb08c8546a2328d0591988a97c0def702":82,"919ee23b4f6b4dafac8774ba628956d09048c207":23,"0612c34498404cc86673103d076668c8785e3fd3":6,"9264038dc4db3080c8d6200b664a845af87a26fd":0,"2f929cffa3118247882ab25d45dc3d77dee954bd":203,"5b02976adc02099965758196f937212eb4c190b5":3,"706281f78d7637933ea79514b698a30cf1552643":0,"3d1105e8e6448bfd50c46982d86c25621414c8ab":52,"63fe59613cc500359d8501ad785184b9f4523aee":7,"a1c0c3d94a3afd2620c7ac99d1ce1bd1e44a67d9":110,"357dddeea97a30514456a93c356e2e245adf598a":0,"72028b80bb3b8ce5d5c1dca809135c5baa5e1e66":20,"6aea8712644d3c9d3fab5b02800886e02f6bb2a8":23,"ece87b0ab423e06491719e8e89dcf4daa44fe7b9":17,"babccb844bc40ccd9eba82e03d0cb75ba5433ec5":2,"3a3c515aa398f13398c3079c4cfef2f8f9b67872":1,"a66870f435994893b7a0b8ad3e95e6aca2e0ef39":0,"49f8a57e980e84f102fd20cb01bd383f4dcf9bc2":0,"ec19dacc24e62448e6972f04fd16b6e889cfb0ae":0,"b58f5cf90860c4b7955283e95310ee8c3b09f7ca":0,"64609eaaf7e5fa9534ee59d38703561777064d7f":0,"554702ae64ee1ce1ab0f80a598c79ad319dce126":0,"82e4d578a40d83efee18ca87e2380e9a485d0053":60,"50571175d24eea9d9c00c7aedbefef7211ae33fc":101,"cb57224b07899d8af420e8d894e645737d426121":279,"ffa0d7f5e9864218b87e207edbc569f3c1f98f66":0,"1f024e6608e9d36fc743238a3c5955e221b30387":0,"6f4af47855fa07907f572d268e2d3856eaa93e5f":0,"6013381c5ffce70e354fa9ce16d3beecedd086d5":140,"f363363e9e804710f2216465ba8bcc0a9b83cea3":303,"d387be418977e17ccd5f1f29e4a6356b51e7a94a":159,"f4dbab37bc651bfa49e5cd5cc409fb52369604b9":203,"e5a1efc0bedbf38e81d2d9c641d1e82d97524712":699,"ba03457cab10a885a2e67117cfe79525ccee1155":91,"83ee9991f6cdaeb67694a8caa05ff6b9892a32c2":0,"7c3e070f71333320ad168bc1ce6c37d5f518d740":0,"2e8c61097acff749522739b035ec9c0b928ba5ba":40,"9463ab05edcf5110f8279d685f576fdd38e39192":1,"842d4e6496edf8b34ec586336786c8b06733b089":118,"09ebfa249b4660a23246644168534dd1251926b5":33,"08e6d31aa2b08c4d98a9713534aafedbaf35d997":3,"ac9105322783508479e465d5012c9da6289515c5":190,"ea9785934d04f832adcffc2a2200ba3c8a4a854c":1067,"8f0c69b12ae3622d96f82522510df51ea3f6295c":6,"c11b9ef9c568485c174f48319cb6547f13e27712":201,"414982332225d97c28f81333838780b79d543ba9":712,"8d6cdae83d386baf7c70c04693876c647f11e787":12,"96f2cfbd54d78c25b781c05c6162e214819a0147":21,"a9758f03310369c802307e820a66a799ff982bbe":77,"4c98dec73962d3684d4a7abc9ad303f51d8d8471":409,"85ac0575d1add125d9dd3610f7c218ebf516a505":21,"fa63c53111ef8d944c41830f4fe3d4d8e234771e":76,"5ac10f8920a1af118d42bff75e3fedd314a6c151":12,"7363b7e82553dce9d1ecaa4ca1e5ca8c695d7a9b":0,"32a56b5610789c6b5f7cf77961478588740fa71a":54,"6eff8dc217d5154e2f913526cc09d329f8b0e925":15,"06ad278a3f30364d2e66fd0a344a3bd367cbb35f":130,"3400cd9dbf1528673dd8e75141c8239c3c73166d":49,"a0704c9b199cfa85d9a0e5fd7284546a421135f3":36,"971ae14cdcc0cb2a708b00871f055d7f2b05ce32":51,"cebc4267a22b7a19d203b360ad9a811e759f44dc":0,"bce07061f1d0f440aac9cca485a1a8b589abe18a":105,"fc695571fbebe19cef38e2bf1421cd2bd3cfd63f":0,"da8847677ec77d99457099c4a0e6f52038f3af5b":31,"afa34dcc626db1f2f7b14887c41e51df9d88785a":46,"fa67db71333df6c5dd2dcba52a77a64faf66638b":0,"81b8ce9d93121b6937f409a1d9a383f0e9ef75c9":0,"c6c24c93bebc2aefbe4324de56153f9443cd5537":0,"6223759874eeffe8517f86c6ec7a7290082455cf":850,"127eb1674f579749c33fb3cd2a484a02a882207f":0,"28b134cc98a5398965b057e6acda83f89f80590b":25,"d3e62ce18daf24d9b2363356be171d1bfd328273":109,"10ee69a06f9fd28bb9fd0e1344b57711bdfdeeb8":28,"20a2cc46c9a97d7f9917a531da02170c582d3d1a":155,"58cb6530bc11b0c4fee6acd95842d4091e679a4e":0,"51760c243e8de2d5f0c0876663d4876f31cdee75":350,"8f314f9d6f871c7f98c74b4de004a5fe22391e7d":74,"e09e48a2756a644be7d22253770b33b50470904f":85,"e67b3d182ccf384b18e12c2b262011416e0a3b68":389,"fd34f6bf50652be5dc6fabcef5a5ed6fd011e4e0":0,"23e4f104dd7da3c108bdb6095001df5e7348af43":0,"98d95352e15398028f6bee20d0d2c9cb23601dae":554,"b4b90c491b7e063f8c1caeeaad7eb1588b7868bd":0,"26c1cccc71b2d730e854000e3f0606ebb01acc87":253,"86687313b18fd86272e17247e967dbb7a72265cf":64,"c7f5ae68577708ec93ba7a8617e9a705d609dd1e":0,"89c2fb94914b131df9ade0ff2afe2151ab3f2083":16,"e6362cef2a8c156647d076ddf87e20930b5725c7":1,"6f7750e61babf71add20b6fad4016bbd47ab84bb":874,"bcdccd5c4a38ea671229ed0e88e5818f927d3f59":1,"238400e02b9cbbc8903a74e40cb99da68240864b":0,"13072fcb19e5740f669df7abc17e6c00db497603":869,"e03023ff52f1c610e69f99e40e9dcb99c88385d6":0,"7521a0cad2256889cfcc7f5f84e10fcfbd7ba2dd":331,"dc41a9584277c6900cce958834f8a910a26b7675":0,"e25436bbfc294c5cf4892435aa86b7dcc7248612":0,"24bb454336a9707114ee60bc4e32eb0e12ea24b1":0,"de6526d4ef756723f448351ea2e0356ba709250b":1,"a225406aeb93fc035fef13347b961bcbaa736573":15,"4af9842c330fabe7b76980ae69ca23ece023f9f6":0,"68e73ab0728e1339d3f7771124f2d5029b1a2262":1180,"85555c487d641058f127100b490cb3ecfc113c62":0,"fc2d7a9ccdc38a83aa3a880015ebdc1ca2cd297e":0,"ab2f1739acc0f7da1d319e1fdc329075b065f8d2":178,"50038e59537260f4720a2f1c0e11b164d048662c":193,"6d809ea98045aab6b2c25952048e350b96b8065b":111,"aa59d07922ae82f2b10a02575ac90f8ecd7c6c36":212,"b257f06f138fb30141a75c3645eeb6d032686f6c":155,"6cef679a35410a0a6a2e28ba49dd9db5b7e3c969":284,"e94ac3855df8d9e9f5a49a7da1cfca8be02a41f5":822,"d1437159684a65d77e451b9c3834b3ac18af0bb8":0,"742a0cf90d6097cf770f814bdf8fbe89d698054e":0,"3b913d9520b99a99865f592ac325793d232e457d":849,"2a565b59ad54155ca2fb3dae6e84196e27e7ad64":0,"7e3de25ff2b1a3602ce98c7c232a38976e2c7841":824,"20ce279056a238382be0debd698936e722ebcf07":0,"7575642a8909e48fa8b6d6dcb2959157c8bbc3dc":9,"cba6628dab65085e57cb4a948730a37f1d814fb4":0,"2eee0a37f2a25ac502ce8bc7aa66ff9b77719506":27,"16c7578763de880552280f5babda5895ec40d207":1076,"adf3724234dbdbc9f4931e36dea119f82c67e515":0,"97b00c139ba10f666fb07499b5147f1abd29ee0e":953,"2cc3aea335a1d36fead07e03931beab1f92375aa":0,"dc384cf5de7755e264a64d779665c5dc9fc685fe":0,"6ac333f13ebf53dcd2555c4b0f3f4803983165af":0,"c984804c54ccb409ce71c04b3f2af7797c4c2723":110,"66c86a39089781226f1f90a9094ca8ad9203bda8":0,"3aa139959f538aef5a760e597eff92be17186f97":40,"01b7062612e66b45cef56bba3cce02dec2ad6b21":28,"e142886f9bf1ad66430b1833ffe7b45f932e99b2":1,"384d9c906e49f785bf1b4ee6ec179ef65ab8de35":67,"3b6bd37cde4f096d56ac11c5188730bc21f5d96b":0,"62470299b2bcb36d77b9fa889ddb4aa1ec238fc1":0,"4fc781c91908b2350b19c323efd733c061535687":12,"60945c930d1b0bda6e40d2b3b162c6d06b126841":0,"e7be9fd23ed5eb16554838850d92466fab62ec77":0,"4ee325595608fb2bcd434f4bbddbee3fadeb70e6":0,"253284e3b61928003d889ea438eb53a7e87e632a":26,"abe7a19a6e8fbf286dc018491cde4855bfe32b87":0,"90ace1bf0e86ecf16db76bb54594e4cf44aff65e":0,"cacafd7b3b5498693eed2c2c77e3d6fce3a04835":560,"233ee3879ef954b98cfebd76b29d10f295639ea2":38,"4dbb95723e18bb9356507824adce56207a4ae7c2":70,"890ba47b43c2b60bc7df1c6339565bbc4c031ab9":70,"3bd9711ee755bdb489defffb93ff699dcd3cccb8":0,"65f7beb7828fe7ed0ecfb2e40295e8d341357145":87,"2cf134bc2bc65701124773c0ed09c6090425c578":26,"dcc1729094f55baec5c8465b37fbf7d6458412d7":185,"17230d62ec8f79d294a7c83b3ac9f52917139369":76,"22100ed7b41f6dfd5019251197d65a395b4dd127":26,"5247a74bd4b2cb6f479393701fd6da3f5fcbfdd3":132,"2ae9f07418453ff76d187ad7af8aa5ca2112da80":7,"45a67c0758df3fe2fc672d8c0701c044ed1b7e86":20,"1fd5d8f9a6928b63d75d675b2dbb5d9e0efa034d":181,"f302e623de3f386c1c093f807b892a84cd829367":0,"e2b812661d8a7ea937f66bf7defb2ced0a1ef2fe":0,"9b712c5b5c21c4fe253ada3a6fa350b291511ac1":41,"eb6b0a3acf447d75e97676519f0d6c7407bc7f1a":102,"f971f5d2277931ae519ae58e326e01629fdc35d3":175,"fced641c973c769fcd09c05391c0e276beaf5895":67,"07722d460d9a5c5fd491ea1a5feb4c982fb91119":43,"616f07a08b06ba8d6c51edb7c1cc91ef9a4e43c9":7,"5a8d29a1852a006c90ecff51386e1523223cb96d":30,"14610651a59e2ed5b700911d48ee7d487b9b9264":90,"e4cc65d6176c75bf7a8b67a4d7ca7abec029abfa":166,"c06a267bf50d7e980e44c8ada2d2e6f330664dc9":198,"db9ea1ba0e1069a2b9edfcd73bcd5b267f9f15c5":0,"6f3e05a33cd5c6b7d033a737501a180a27770a9c":451,"167bf1fc0df9e25a3809ad0941aa9243058bd2c7":0,"584e5c0b208bf1e78c67016427805ce001638a8c":2,"03838a6b3237a4c6b1dd7ed0437dbb09f9d2e9c8":20,"720049b44a5828e3396dc6fc0745ea28e9fedc96":512,"48ed86a64e9afe250caca306dd75ace3442fc050":11,"cb699e08f03526747d0fc1b32ec8ab71b72363a9":362,"f8fce4b935645095e05b8d94474c92c184a6e3c2":0,"58446ce2d6af29b5433d0cf8c33c1a61f633f8df":60,"ad87f31c34e1577ea153b235c8a9ab8d8f088d51":0,"9da2148fc6510d18acb0af006567fa73593144c0":0,"df7c91e64c658770cfcebe41c924562e3fd3b296":0,"57415d3799bf27378f15cd8dc1e7f1bebab571f7":101,"94e69b419701eed75b017cd0a42eacd37b933a45":3,"583ae7a4fbbea1b9b9aa566620b332e5c58601e5":87,"91a3d15429c98351cf6e87ddf0736c12edea51e1":6,"66a2017458b552e52333262c306b40154d957b12":58,"8c7f8f7db301d26e16a1fcef1c0ae33dbd1b6149":42,"cba5a9603f3e6a747f5843e8d27e06579935615e":23,"705d4ca614d30199ba6d7a19650667ed93b6be45":0,"95a89711b5a2801943177d1de4f870248747c5a0":30,"d04c111e4af69e162194bead1f45d2c134650893":45,"46f1afa4e5255dcfb003e6806d1f56802d61eeb0":3,"b4d2aa81dbec7f9a9aa93c83d24e535b996ef85d":0,"c5df6c5c369ad73ae1067299241f5ed7414b6bb3":267,"c5203fdd836e4110a8f18c0011a6a94daaf9e529":0,"735137f7bcb816663a1c5d906995f939a18e4a4d":43,"4123a3f62e8703f78436001ac9b34382e6e9ac60":0,"fdf40b478203580612a051ae4aaa1abf667f3080":0,"972e007290d6b73e266e5f3a8943c47c1a95b692":7,"17a0bbc73e196618e24c7d486e3b7c27960956f3":0,"2a6880c5b75445f2c82f13a93aaab2f35cee84fa":596,"c2782d6e73d527e3f739aaebd2caebcd9e46ccde":36,"121a266d37516d6104f5cee89fad083f05608e17":1,"d040bf11f941bf7ef951ecf9a10ef639729c8a1f":114,"a48feaf62765c22c87d652cb7f4c035150764c2b":0,"292c22bf674f42566aabd9bc1d0c855c92cd16be":26,"979f5b5f336f194b0c2a3430ccc4f7b5476fd1e6":0,"058e94714b0c2be44d1a02dad09210fe401ecd54":7,"850760b77a8379eda0fdcde0cf3b9e588be6c398":37,"bde93afe66d1a75088c9ef1683a5a5b1621a2767":40,"9b35ce0fdff6abc805d95772841fa2eeffc2f036":40,"2aedf574119bd70d6f03295ab10c2c8650b76c8b":0,"6361787f0027619ba3b2b8fda744566e4f99a4cc":0,"24b6c531788e71d6b477afaca111be28fadbbba6":19,"068c777f5664f566a7ac69a83b47cacdfcbd65b3":2,"7a418e30dd9523f92130ddc7ee7ff53a8c446ca8":0,"b855c1043fa65aa06cf04d394e880925acc1a2c0":23,"162b06528a9e3e43f6a49160ca0621a72ccac719":0,"673afb9b82e4a9f90ab9e23efe8c569e3753d892":256,"f33e2f0fe00e1fb3e3fad7a1663d82a8d727e730":95,"a6b054c475001d682cc43ae82f0d598af8b183cb":0,"1fc711a00d55b7230f5f98efe02293d5896c9001":0,"69396f414bc8e6b87b27cdf0c831257601a27a63":393,"574ca1564910e947cd3ff47d09c0db197d379db7":392,"752bce1015e4cd4b7cf16c243598783c9e6a6189":0,"6784c3b04ee42c3719aa318d032ce2ff0943a016":6,"3db3b931c2602f88ff283209b309e0f37e9d3a15":0,"c3abcf0cc50300916cfc46844f977df2f63982a5":0,"527371e97b111422d4342f301cbfc4b391e96b95":602,"7fb0850f6fcafdfa3264ab4a12738b2ca36d077a":344,"8265e3454c8a403bc7ae8a65acf94f768ca76f5a":0,"c0ad04809d90dd1b9e15006f0cdeed326153c3e9":640,"62f6164933bbed458e91af2bf00fdd5a7cd9c284":735,"cdbde73e9acadebf3abfd5af259fdd769bd0755e":646,"f91fb6576d607dd075cce196dc5033fe46339580":682,"a10383594140267300caf8d586228bcc9835d4b6":1179,"95ac026b8a989ce9a03642b075be82f81f1b72d9":0,"4b863f11970342942df09ee1855ba44d68142dea":287,"0d90e7656a53c5ba34ca786da465287c84d8682a":14,"845a2dfaa560d6a2d9f243f31aaa05fce5401beb":243,"c405ec7063f71ca16bb4072504568e4e5260aba9":0,"1bce33064563b98b1913f233d5ce16927673c789":0,"2bd979ec6d49d10f3d6c4e73af795b6bce46c5ee":0,"e456bac4d91d00ce4b0da9ce76bbf29ae77aacbb":199,"19500778e3943e962c750170e937e8b406811ae8":301,"760b89086ee89b5481544fe5a45cd191c4b18be9":0,"37e598a03351960c0bf5158dd8b9a256384a5357":0,"90958b365ac12b07cd955c852aedf0c85ebbc3b0":0,"88bcdc0aa9a4740d39295bc1f73d6b2c1df2955e":261,"582c05d9501e4d32cf1daa58e920a0258faf279d":51,"cb84e97342f1572ad1d74c9f6518f765cde08df1":0,"94b13fb3cfa8fb1d7f0e6b2a7146f9a71c18fa28":101,"3ca2e6e35761ea21ac1ee3d9d1a5d1e1ffe34d63":341,"bcf508bb8e635e6879cf12c306e41d4c1a90569e":446,"49cdc6aa7feedbf335406509b46d8eb1b7ef254c":928,"976545da47961fa24cb9ddfa283e0b31086995d6":60,"9f7d041b7a60d74728ec397fb10a58675a7e1313":33,"967dadb0805300eaaaf4d3b1a83b1ca85f45f08b":102,"e980f4c3b841230eab280f2b73f8528322c35017":28,"38cf88607a023eb1da4cb5f404a7ee9d7e84d525":197,"efc0d642341fe55a3d727e4f0c49f9a97ea6a09a":124,"63e12f56345c09952956f0a56b386f349e75f3ca":21,"ee22cdae5efdfec807ff4fd15e03f475612956f2":48,"9ed7ba2f59e6ce06eab92693c63859fcdddb052c":6,"d9a4b94c50cebc33fd6ef28d6630f93efebe15cb":28,"22cc70c931d9aace8f1514586e58e8aa2edec546":99,"72cbbb077dcc843fe360ccab0cbb521c33e60c52":26,"f56a49865773cd4c8c242f246d919697049de91c":28,"adedd840ee73dafe7efa756458abfbb1bdc4dedf":7,"4b9f5f347e366047be124ac47752476029e8d0c2":172,"b24c7dd678628b6cb403310e049777fd250ed7f4":284,"25e267bf6418b4561365fbdab4eb213d024b8ded":0,"ed525f04128d7af7c93a878da0c227d18808f209":0,"d9a1478941ab0b27a6521b6f6bc10270dad83e6c":1584,"b4b34adaa2ab4dc37fdd71b6f4d811f8c4e6aff2":21,"ab269adfaa5b2af8a182dd2669d0392f666a4b4c":0,"f7d5848e7c37ec92e07c5d98a2c3afdecdc94ee6":19,"097bc2a8a037a82db376efdf267d0a6053241a08":0,"6ffa7763b9241d0c426b4c1fed4bbc1e6387d915":0,"6831bf1829e6b156eade9c786caad2e0539b7eb2":0,"54a489f73f12e300a16da25629cb13954647b3d7":1197,"9976da7fb770d5916b93712e8a5f52c9735b3df0":0,"79cfd06f2d49bf0bb9767babaa82e584ceb4c0fd":868,"bf4d83957e5b07bab1be7b454a821d07514e41df":15,"25bf92d4a038f38efb2eca6e43795c3718133753":230,"55cf5d307560c95a03b4ef8bcf11d845847f9d76":275,"9a7b421916389229823eaf83c345cc5ebc01ca50":1177,"f782d7d62ac213cc2b7c15688522c09feee90a14":0,"6c8daefc8230364ea15226dad03de8fd11f21704":0,"072a49b361c4ba8eb492f8ce7e0f0981c0b847a0":1212,"afbf204f5f724190512f8b683bcb18d1ea8b3bcb":354,"3d500eba8964c5fd055c98722db885fbe436b2db":28,"f4f71fd16f12c3782fca7eae60fbee2fae1c303a":71,"4654a2fd033bf3d57395785fb3ef2f6b50f0da73":255,"48290c5c9f6a21ab548d70a5adc62e07a7d5bc1e":3,"e18db1f37f90c2dd47dbdf7c90d05d86cbae7a37":110,"db6b8d0aa5f7613dd4b999baea766f85176c3bc3":389,"8f886f225975ba0f3022386005dec42c6393bb10":210,"64c4cebeb476bbf5c3bf3899bf45c5ce429501a1":6,"4bff2e39d491182dbce2e8f97387424e7c48163e":0,"d5165393d6c00809adc2e51489b1d3d214fe32a4":1,"7f1dea743ddf949fc4cfe6865b604c31395b1803":40,"7d868727df189292eb546d6aa74c01745901327e":4,"d212abc62994f7b2a751287142c5b98434f191c6":63,"a4f2467e765ba3eb1e71b10c4f05917203fd5d84":23,"b20aa1c5df8c23751cf71050fc6bb185f284e437":345,"aef70780d44e2d9f8af3f552ef683fad967f0d2d":1423,"dd0653f19f92efd9a44dba6bd4ae0c7e64893b9d":2839,"f729c14be1a7dcc365c89d685048db5e3b3fe446":105,"41e35048b1bc97bbfadf331eff776d5a2207c72d":0,"4ceaff64ecbcf06919907bf923244f5043ab36ea":59,"05c7982ea5a6ce68f39d6cbcf2a7cc330400a301":0,"a17d0842a405374c091a893084f237bb7222aa40":71,"f7059530a6c95b216bc52c023cb08419455e4ebd":7,"22fe8baea95fbbd08b066ca57af433f75c450939":161,"94f9ed2d5a621f7d1dc6c1ced1eabbc62baa4ac7":1176,"b4db1525a6c909411e93087901d3653dfc9a67e7":454,"e2f43421c1b573870a97c572f4cbbdac5b1c2dc1":344,"d21fc884a1056e0d2b3f58ef324c6309e2c355a1":0,"16290eed62a9b59bbc1e350928bc6292f047eb34":24,"b2b9feabcd7dab4523ec4b6142cf312bdc365d62":0,"421a8b51f1bb74ffe8b9af103b31ef275cde91a1":19,"05e9338793bf9eb45ec8793cfb4a8e52d6fa4282":816,"53e636398ead8888623a754f7ac0e0f59e5fd9e8":0,"769986876bdad342e317d98c30f2e73f28fa4419":862,"b359a7e5d89e8ddecfe4dd4e7754de67dc5eb6cb":2,"8376c2dbaaede9fbaea0e3142dae21dc6e6b24dd":119,"5cd969bbb17b28f840aa673bc5f022ba60968671":0,"e176e7ac91773087c2c2e13568d4d2a9766695f8":342,"538487111545d4e46f486e8227c2bdc17564c435":0,"16f1016bc2417dade89fb7c6f34e99d5ed792cbe":0,"965f37e5ca6d6769fff5af8dfdfa63aa5fda69b5":568,"2fb56d835116ea9bf942a606032744e5d13face0":2823,"707621a4367ff8c687f3883bd8a653a1c5945fd3":1,"8c528b12bd513dd5eb7c4399a2ce4e9ad1cb0ee6":0,"3ff3441443854ce21a71f53169b3d3aa298613d4":0,"230ae607bf8c7a656de7296127e16d7a51735058":265,"36daa3cd948c72d71538a34e7232ba7f4cc1b195":179,"6db12c5ad51812b6761bd416d3fbe2128531f961":1,"a907129ad9cd74d81c0e2fcbd8b9667e1f233e75":0,"ee02a0b45ea4dbb3d9063cb88ce1f0fb536a7521":0,"bbbcc8e640b4955021e2be94efbec6b5cec2f11d":0,"196db3694c4735966233d4cd765f0273b42e9bcc":848,"9a5eba13676e8ad1e2f58b96115ecb46ecbe57ec":257,"45166402143afde66b777433034e38ca8cd9bfd1":88,"8fed1cd8710b3851860585ed29aadf3afcaaddae":0,"b60e466975956a23459126befc99ae211bb6f66c":94,"32eb018a002c2e69a8737cc5d2a16bdbb2425b6d":5360,"a029430a4c04bc1820123029763a0f5299135f1f":0,"945803803fe1e38a73ca0f7ee44b8ee551400002":3,"bd441344c87f768c4173e94dbffe11af88d9971a":0,"759537f16f44e91b7db85ed2173f48858307028b":12,"39fefbf4be6322ba893ccaffcb4913cdf09d5b75":0,"76f58e3947b51cec64f50f7f152bf556f27d4612":0,"eccafe5478a9f99b12acfaee03bfde3975be0cf7":0,"61952873d404ec21515a770b1b8688cd517cc835":0,"57b7455b27567dc2293653a08adbd9feeeca6982":967,"1f9ba3eec64884b25b72f026f44dbfd36fc18b8d":0,"623924a3d6fced6861a930995c719047eb9d8f04":105,"29434bb22a5f307b024256ac520ba4ce0a001e29":520,"8215859cadc26b9f0485852e4be8f997e68ef09f":0,"f3be2e4db0764b275502c630c8bb2c66ba2aa519":178,"5bb9e26381b280dee8961e2ae513799d493b5562":568,"3487aa1a88d73157f94a95d492cf515fd3db7c63":143,"ac1ee7e4980150d928296fad520374f1ac93ec49":364,"80c91be739443bf0aa5d13fd5b0faa50fa881bb8":0,"869994e13f064b8a4a283d3973920ebf67e44f53":1299,"3e07d8aaf9ad5ecb0f2f33167f391b3309f997f1":765,"889032b0e7e50625875063c2d0d19a57d1abfa97":1400,"7750d47d39629be769cfdf685a682d18c96fdfa6":1017,"9f54afdb931948e7f191ba1fb74148a7b70068e6":55,"eab59f5a1a84d235d05effdd7fe47e4863e34582":33,"3a2ff756bd50a7acd7942cba8a0cfb41cdbaf41f":908,"1971d2af5a09e57ee320e62d5109d2ddf27476e8":22,"58fe59774854d2ae276ee5a7b22efadb52285f0d":0,"d1929a3a02a9d92b8631d5bb83cfba12cb4d2c71":459,"c763c1096ec116b903a161138924295aa34a5bad":0,"3db0ad4bf68e30131333cb7a1c5f9f55cf63fe7d":58,"c463d66fa3485f74ed347961d6b28646dc80be78":4743,"cf6c61231d922f328d6a25e6aab1edbb0cd4e502":34,"9031d7d570427ce6f524f9ddb918cde815aa9ef2":51,"0fb5d2851a48608cc0fbd23fdaba4cd6c4b75de5":0,"3cb70c987d3d90bf1a436b2d49cb270e6c22bf8c":64,"d742adacceddece151014961528aeee30e6ad108":13,"2a8ad6bd8df4e337184a9104185124a74a9e689d":0,"3128f1d2f18bb8801c0d35aa368ce70ee263aec8":168,"9a8de827b25a7c369c8ff6206bc4ceda9041c841":745,"f0025be766520190022d3502e67885095189e61a":0,"b5699a5901bb0dd2295e32ec50c4f737fca0af12":229,"31084bdef148f92f7a43aedf45c29dd7d4063770":426,"1b9f2104d4b95e9085db986a4652ee1319240e18":623,"5dfc6e6b75f63bf864d6e7b36a2ec0c7e13d486c":19,"2983cf4140677795b26c5db6a756b3ffd83d3b24":1102,"1dc3de11419ec4aa520a5e127f018327f502dba5":1,"7f82e469fc0db850b12151f15fe264f5ddfcde33":1357,"1035fadb3249f08460dc9df6d400b13a51b5085c":0,"a5df17dc40cb88d494077ea440453cc43e961f85":1845,"ba817a437150563add86bd091acdb653958d2c34":1158,"2985ea2d0d0f099ac073b5cf41a156d3ac20862d":0,"17c514c61fa0a4cf1e8744621645f16190cf875f":277,"e086e9ac463caec17bcc2d89cfd6f05d56db4df6":195,"499f448f98354b32100c4b53b75f5e23ce725e1a":0,"9213983d96d0718aa40a576790bf6fabe75e4a0c":371,"e6fb764fb986f32cd5b7cb670417c7314304e7f9":6,"ee2d949d52a2f5cb5c92f3aa89411b09950c471e":0,"843adb83844346159357e09be4a275c00cd937d8":113,"ec1d7fc2846757aba8b68802cd5fe606fb13e27f":0,"bed6fb4856b1a20d0fd289f8c1450011a13815c1":0,"fe8ef1d7edb8b529c1c87a2cb54df0d89c06b388":0,"4a955df7df7df45a89313c3196fb69bd2ca62d48":840,"bf731470c52763fcafbdac3bf870ff0d31b58244":542,"bc42e8196df36d37531c569715209c356576448d":1754,"ef9f08e0a441f6319185bfb2f1a6aa7899f749fb":1943,"d5c1aa926fbfe9a220e9c1eb36d54d650df5b64b":1282,"88337c49f21c207d0439a3937f6b0715d5696e47":190,"3fb9f9900edfd9ea681dc8ba15166aa3612a88bc":1076,"d43a397eef7ba054b0e917d354e108ebf8a82d0a":1298,"96e484cfdafc9162796374736446282aafd65eb0":645,"1e983be44d590f9b37593d7d2b897e886bda7c03":400,"3947045335f9732ebac5e0b61da561432706c6cf":216,"8ae7486ff71a88bb44e5e05b6bcfdd1dbe2eb61e":301,"c584873ee9685e84a0e3b59371c135450b9e028c":624,"b920913e1efa3f24dc086cd89dd7f530b45d2d62":302,"100d98ee69739ae04cfeab02528accf369f2ea2b":4,"5ce84ebb2981c8ba51240dd7616468acc0d6ba06":0,"f18c13e663907e397004f3a5a6c21956620c955c":26,"a9d105e0792accb3071dd6d45e81a28cc18eb86a":34,"2ac94df7d5f4166f71272485b7cba7308e972d3f":0,"c2c132832052d7f53d211942130d5b494c98ba0e":164,"d7c3c0f57c34af5922bbc431f8dfb2b43a167bca":111,"dd8ce9506f8f3c9077a6d5aa6c3e74def481f8c0":0,"477abc40578464fee3c97380664298a34c95b14d":57,"97641ff29a1dc8403085430ff09588ca7bedddea":0,"044e54a452e49886f6e90aa6a322ebdbf5a20bdb":718,"d4d7809255c851d969e110cff512246cafd9654d":9,"72c0d4660cd3e05e4462b1e2177d14435a4ca615":0,"5f0abfdce7dd36cfe7c4a01ec3d87cb0e21b53c8":0,"7c385718f9a5d7d8f1aa8c03fb192eeae726cc95":0,"704bc2a4b9defec12aaf31a024cc8d45671d3231":0,"25062d4182eff57c32ae1e69f58f5674fdddb3c5":0,"aefda03af79fae6ea147e21be50373b5cfab8a22":99,"aede3b22ae670bc41b2424f57d3412250a5d37ec":536,"539b4043e3d13ac55b6cb29057f25a481291e74e":0,"743ba36dcd0e6ddb508de3d6de773a122f479933":0,"6cdc98ff044ab0c41b22210b2e0f2a452821ecd4":144,"67d636fd2f72303759fdde054acc04d10c397edb":135,"054d988b9eb3e204f35a2a86a7791186ed44a20a":212,"d79091c03a279592ada7c3e0113abf5b3f77a480":989,"010fab87c45ac32decc92ee90ab6351658cfac98":0,"a186255cb9d4c9d5b4f16fd2fbce6be51d28a8b5":780,"2fe7e3b0911541878479fc336ea3774d02331ac6":8,"ff6992c9725f9685c2afa7e11502865ad9dc3830":536,"24118719eaff61c6140ab650042983236e91e10d":1122,"e547e9ddf989625e321c82cf75bdaabf13be4cdb":12,"eb810c8523b80b373039ce5898d3d97139923241":264,"7fd87688abe0850c272f067a84328d0cabc363dd":610,"e2caa7c4b90315c768a6903d9c9cd901f87db73a":0,"867ff48eec7e3f034b717ef4427a6830d4a73a4b":123,"d5f0ff6f1660c6239a16dd08a9632b5474e6a085":11,"5544640fbed5ad2e380232507d7c9b28671585d9":7,"b0817abff37ef648f0486f238cbdc26e3d540bda":87,"b7c08ebdad91f799d74318e41f927e1eb5f2ba9c":77,"bcd406ebcc316dd3096166d95d476af2edf368f7":341,"f55ab6c94bffba0d0a6feb7b3ec87d7108fcaf52":177,"54ca08b53488739cdc4186853bf8f92df703171d":223,"f36d17783c3c3823f06881b3a838eec42f1b8705":162,"535b41439c1fa2bf89baea124fef160e1550085c":255,"5dc9cbdd199e99fd4a4ba722e4c0938c6e908619":185,"0bdda99133041604c89cdd93a59c3237b53b8a12":0,"1a7ca841726e5e3fbc35b0c634d046f54c6a6274":0,"fe5c9c9772e1bf79e1a8efaaf4025bd14d65d65a":0,"79d67e03ad3ab4cb7498bb6170903373985f1193":0,"b8cfe16e48cefb5180be6143748fc81fb4c6e9af":463,"dd1af5f058bb87601526606f8bdcc6d1953a6cbe":143,"5624d163bd578ee440cf7099e80434a769d7c440":0,"2ee398ed0b6eedee4bc0a304f511945e47c445ab":0,"c295a460f18075e2ae2a30f5d4aef2575beee09f":0,"e7c297204787a0731e6712123335f8ae3f91f8e5":0,"2c9708c0e153470e7a5d2e54497728bf2cec3ff3":0,"6881908f3117d2da1a583b4cb3ae8e0b36f9deb0":0,"d6ffcbd57d1e22089cfd6433f6ec34b6d1e27e9e":0,"7315c5ef2589b70bf28768caed03b6bf3adb19f8":0,"ab127d9c78afa9a5e3ec49339f048f74755c9ee2":199,"15a7b758a61fdf799447b2346aa72f6c87e928a5":0,"1879ea8d2bbd56b21e7c33c5010f99a8ad524e27":0,"f48ecb6f2ce97bb2407ce42136afbd4704a94c83":0,"29faf007f00de3ee9c5814c6d243c63a535929aa":0,"80ed9f492ff1becdf20784cafd1054e65308c8f2":308,"f008def94e4c0a8d22e5c9bd438a345046270f9f":46,"ead6dfc8693b70bb86d28fc77da3984b25e08a6b":70,"2f6979cdf24fe8672fd9985ae570cb6c61036896":29,"765f0bc99cb162f74afb9121a46e52895f636034":0,"b008e1980109e593b3f9021b931d1a087cf0b3f6":163,"96f2dae7018495ecd57ee1639099f2d85e26b015":0,"fb3b4ea73deffd5108ada2a7b9370e1fc8f6c5c5":158,"6d46177666d00a885c38653be64c1c97f6e45e79":0,"f2d45368ae3b8f682a3fc963e93dc404d23bddec":75,"104f2e1cd0d7c36ddfaceab00fbd69771dc01031":0,"e0ac2853e2ef5a61987604991da51aadda914016":90,"aee4c7cd02410548eea7c3e9fad590889fd91cd0":0,"8c6f85bbdf1bfc17de529cb50b1b3aba8aae7ace":6,"8b0f44f048bfa7f12d1da92440809fb1f1219325":0,"302b13836c5462b7f50c429bc1b439c008fc4630":104,"23486662f833063e90ff248dd2e54a5587a69a8c":0,"464318c837d07fe9f4506a0371cbe4a850444c71":3,"321d5e0e4f3a63acf1eba33c59b350b044d76cf8":0,"513d96b44075a0b7b8998c0ad1ba9ad7e6c0a238":262,"16088db067c5844e245f8362259d5f6e5c1c8f3a":0,"f85c860097f6dc921a6ee9a95124aa3cc1af1001":224,"4c891d2206593f7e9ddd020a7d587f04a58384fe":0,"c57b070dab856409d11bcd55466af43bd119f655":193,"98e675c182a61774cb9e9c245f43207842e527f9":0,"444925ed9fa0d24be0442b7302c0df0f1715823a":119,"2d055b01c3a217237cea8de75abf4921de07ad74":0,"b3f78b7436c4c4166f9aa1f44504946e92a9f118":392,"e9dc4888b5607cacdb262b01c05c7e6d0d09a4e8":0,"2b7bea71bccac1c9f432f176ada4c93d9be95fdf":60,"fc74deab3482bc9712bb50f90046c62b003cece8":0,"465e95241fecf6df936352a643772da9774c3dfa":0,"ac911679f43f4cc6ce11c5c0c5da5d8812fc426d":88,"de84f6f9deec63f638dc8b244dd039cea638dc4e":0,"ff4ca473cec6cfde63d5972f10250b623afb48a1":69,"b02e3f7fba4d57bb48f5b83622ced77aa93347b0":66,"581ff1a66d914345c7f3e787e1384aca3a05ae8a":219,"8d141abe29160f8d5ea8336740c99eff2448e7cf":330,"e317ec80e2f8cd983c9ab389bb282744baa50731":35,"26d365e759f0023f5797a085a8e86e8c92d300c2":94,"cedc629af6cbdf4be3196e381a6bc756c641922f":424,"bbe6bac5de658d7e4dd93195f1b4656819cfadf1":0,"e0f52101f7885b17b0eb64a1257696a9c20a9254":89,"3dbab7f1aa3fe590540898abe7cee76112b558a0":7,"c03f5246e396504a3669daec489d806b6b2fae88":342,"492010826dcd27c023642446afccb5820c8363cf":453,"44ff924d36436ac483588378a04c522008c03f90":494,"f0cdb6bcbb35be73d9eb99387d0bb481b3c1cf51":706,"ecf9c027ddf6f0f4e919fcb04245ac7c5809303a":3,"64027a400a008133278d6ac274369aa500f9e267":423,"3103ffa2c6160331176694e9aba5b16120d15a87":138,"e4fc151f5d65dfa96cdcd11a048b48035910c8b6":80,"431a68eb71c1711e9a87ab3a230bb2e427187aaf":0,"f405bee02bbec03c0f554212c43fd39801d80c2a":631,"9244b364199f930569d511c4ce1b613f164f0cce":0,"986f41951328afbc013c146747628b7d4dc191d6":0,"5e61a17affb1b1ef525f25127562744864b98df4":0,"7d0e9962bf116d769e773bbeec099bec0a2f2743":163,"4e857e86587d620f307b95d4b7a881b6e106ca23":0,"02145eaca1a30855f6aca90d21ab4289985c5174":109,"a284d4f2705d159a71d6a55140ac8953c11dbeb1":2,"b57f82ec13ecd2b637145617acf4e7e99999009e":693,"0b277970a93ffe4c623777ba870d706aec44caaf":54,"c472c293cbe1308db3374b1e20b045af8af3eec3":1031,"9de78a876b99e3bb3b5c4f866b4ef1f914e6ff67":1,"db4b5a4ef238cbd53c089eb440ce9236f30829ba":143,"4d80271c4c4756ddceba457626c53742c2a5523f":8,"e4ea9f6ae9f954be2f0920ae98747ab7a4973a8e":711,"8cfaaf40c943919307e9aef4674357232be4487f":483,"164bc93f68a2916af749f6f51afa7b3125b85932":127,"8cba807a41ec888de1cd8a51cc1583342118f02d":129,"e6a35fc9037e8d149e83964ec7e035a248b3dcfb":192,"b999670b9b00749fdd98c818000a65821f365f05":150,"7762b736d2074cb2bff7b1f279f6ec06bd5319db":5,"38a708056e29c8d16931976f93a71b7d54d1ef35":205,"ce8bb3f650861234ba9267cc44ae16baf3855274":33,"1f2efec4269c8eb3e56c4bae18208440679dd0ad":0,"8f9af84dac90a20cc3f6d64ba9a82c71ffa25985":0,"b888aeee4487657259653149df51bc7432aff812":0,"d66f399f86af689b9c29e95836e3dc43adf731ba":0,"32366d1009e5c9079da4858b219c2da056bf4efb":479,"a85901bf67bf4c9cf990fc1de49d9d47f4fbc07e":560,"c9e5e007651e5b8d3410326701b9f6dcb133269f":267,"b94e1a45f6c9dd7a5a805b824554bb967ccf7f03":0,"4b31df8b68f76ae092573120552e87a3cb864d28":0,"5d9199a5ac12558f8dcc6794dbc55e824606a46d":0,"eadd8b3ead5c6577d42ab1c84dcf45c4591a3134":89,"ccee60f35d031e4b4f2ee691a400873fbe6e1b66":30,"37ecc0928dd774b656d1c12f63a0968a4f3e8a72":152,"aca31613991ac076c1dd5fc14e5b4bbe893ceacc":0,"883b1156f0dc7e9eb9ff8ca136c04b5308723c16":0,"2a4d3d9291ac684d77462289cb96b5704e32e413":274,"b40142ef36beefe315fa16c6c46d98f45a1877cb":183,"5d2bdfc8d0c9cfde8fa3a449eaca527dfd819b9f":102,"defef4426e34148cf470a5840b65555764649c1d":0,"cf4dcb8e26d2eae1789287424c2cdcb925ddd51a":278,"71892589d00bdfa909eff6889be74ad2a930c1cb":39,"bdebb6399f07431d4b072582ff80f7639d8752c5":502,"789aa127513adb73c69d0a1fe9226ef49ec70f23":451,"08e012964f61a8a6bab04bee555158df79fcbe42":327,"8417eca7ea130bd1f116d26ef32082b3aacbf5d4":417,"eba3de7f4610fc08cce12fafd97c62f8c1aff7ed":733,"360fd2f032798b89f3bead16bd0cc14e1920f6af":274,"51dca4392e91534876b4c884e3a5c10e12e63b92":1450,"0764ebf701909aa941f36e92a116a3e3be551712":170,"04f8cebf129c01de1193916edeaa166e644b2c9c":107,"98f69758a30aec83b65149cfcc8134ba95c02a04":0,"c5e7814c633e4f83963c96b01be5d87480521f7c":147,"f0e59429aa9bdc74a46b3fee0c71e7c714bfbc61":71,"5873b9bc20d0d63e13b54b349c90e53bbb8bde1e":4,"a37b27f36e3e88fb0a58f29ff009f89f159c7a7e":159,"1e177b038c8510c7830e5eb979393541c4910e5a":107,"8a38bab49129af538d71266f359adf11716f3c43":160,"02d9b31b72d32d332613fca657aa0a355436a4b5":50,"f580cd4579141abae958455972b3031bb11081af":297,"0d5cb63f8ee25b5213273a2233ec1a64dada6514":113,"d9449599243a715b73eb533a4b9eff8fd5933884":156,"f46d76cb9d14807779b7017aae9bb558fea1480d":148,"cc49965907737d1c284d55e71ceccfeb249c48a8":0,"e8d5a3080de6bb034f5082bf540da49a76557a62":77,"07bbb0c38d1b5129f3f24346e9f8905c4025fe03":1020,"ce11160ac5500151f37f959d15119c4046715de6":464,"4d8a809fdb2e3ef78a17a44e85cc85922309cdef":448,"b2163fe6cc2e22a7f4aac5aa1b0abd1ca6aee448":0,"7f2bb1c163217201824be3e94e498b0387500f9f":158,"fbc14e40c7057ebc6d718fb48083d30522afe15f":0,"469763fd55641c6b97f0dc65a468d0107de32eeb":222,"a4cc927a924ec6f4c36f5322489b007a37dc5d5e":295,"fcdecba3d245ca4bcb0a25785c3333c78c2c15da":395,"d066d9ea6f2098578230f58fadc1aa9c9668534a":0,"f3c925c6c8d8da92b13a27ca808cd76867b6d746":0,"bea91bbf98eaced3597906260410c5a81eb53352":471,"35b6044d482c15e4ab9a3caf9f06907229ec04d8":247,"42ffec282d5e397f7acb436709c8013ca3e46404":312,"adf5382e731d8bb210da65c7bd8e619fab8e0300":67,"7222ec2cac55fb4e376ed5e640d8dfa2e8d2b5f6":77,"9981c45a90d5eadfa452a6271fa984fe7470cdd9":291,"0eeb65456271ae9334d6105d07440f2a186e219b":123,"bd9f89ac79088e9ce1a162554c8f5e15adc5c2d8":42,"2e84bfaee7b0dca829e5caeef65f0f77129547b8":0,"cbcff9e4f75028e2c752b8cee20c5758bdfa7a46":343,"8ea6360c6f8c0ab4f210ee6f3090847e8f2174e9":0,"03cd93feecdf5de0b689ffdbf1d446aee3fb9ba7":95,"a04df81ee63429b33dd4bc90367e34c8ecf07ca4":153,"c11a0a07859d4574a2278db91a5ffbaae1969bf9":383,"b130e049de7941e0fd6c34feae7485f5efe47d48":44,"c9bbae6ff07edffb50b94937d0114bc971279f7b":504,"64a9ca98586bc07fb1afa8ac2d8aa3862fab39b8":430,"981a74fdbc987576e1c806b3aafa803af61538ae":315,"63fd59823c1f1ba0015a0a8a19b09635915b5844":100,"c2e801aff509a4ef8e51da74a350ebf58aa13e61":429,"67fa70be00b16b6cbd010ea81fb03eb0b7eeb114":172,"a7c76d00dcb4579862da69b371c24a1460e4c1c2":397,"73bfa592a952a6d67b52c5f95715b0645107b076":0,"f5ecbbe2362973b811e74e0411e5c8944ed9cafa":0,"77bd0daf1a404779e05e18135b97d7910bdb909a":0,"b35fc2189ad5deed74a45cdeda9863a17b0f59ae":0,"92c65a6ec8dcb80fbc1c63bf7318dde10c62236f":0,"4cf9a45c3ef8f8356581c6bf38c3f767d2938cf7":0,"047fdfc91cdbdf03f1a20ca1f4ff2869bdf5e45a":373,"acd26328c488ec2b3e8b319d50b9b6dcb415fd30":0,"23862ca2ccb7b3001562ca04377c182800cb8f27":0,"4addf0e797bb334c4a7ea7439dd3c13b0864fa1e":399,"97f6ab2bc9ddee57e41453eab08d6d68edc3dbdb":313,"81c78c31184cff8ebe957aca90157b5e020c7883":0,"3f3c90284b1937c89f3680e00c415840c8872275":240,"41d7c7c66317f5f27a4a959ddf4a9cdac03e1e90":273,"e04dd830253c52ed281b290bd0ad5d7704be449d":180,"fead9ad72ae00a451cd2b10198b19b8fdc80c774":0,"22a71f12afc7c093298f13ca6c4990645fa58e71":245,"5a316af04339a98f91ad17abad07c8241388ecf5":112,"8f5fe8e25e5005013676ab9820ee91063832f297":0,"52968462cebb5c788daa4367f37a84de2b02f5c9":89,"018cb26cb1904093ad5527f783b8b4bb62b474ef":0,"2b0cb6d0b8a13cf652aa0b3f32d640ae8e4fd1e7":0,"76c920d5ec88dde24b85449450dae778763063f6":182,"05b0b691c0d684e48d3f643a09ce032580a5ad01":37,"7dec6201ffeded3d9bf613067496b07da9feae1b":192,"836fb28d766b6b3a5e40af3fe4b920012f8b98bc":0,"62c2ac7700ea7772a3b100a338ba52f1faa40924":168,"6e7041923ca5d091cb30d59595ac7ea7048f8a5d":4,"16958301d29d0d2d512c8465e8911bb43e73ccdb":0,"e50d08f0dfccd594c5a3915b49e7cbf74a453991":217,"e888ee9d7aa59e0e5c9926f3c17b840f90c57342":0,"b16090a46dd1e213842d42e130bc121c66e6905c":85,"c2dd3861193ebf580321ed444615276ab4dd0d60":0,"b12a9ab348ca169b30acea90093e44924598e5fd":593,"e3178e1fcbe36ffa573c4342e8429a5cadbd2fec":0,"d8bd888dd6f6fa978e4d5e739471c71c81b00cee":281,"76ad654f4ecf992829d8df5c8b52e44a69a15840":0,"c2e53092ac688cb7bf025cf71b329f9c0c509b61":0,"52bd24f69c317a5f01599f3fe1ba408c94f65884":144,"95f32ee1f7d643b26c5618206a0ccb3e0c169064":0,"45b7c1ae7b92d25de1728b77b783edfeafe5b4ec":417,"256ee56a342c28cf2ba27b7aa07c13409f484d32":533,"0cb72bdf265d0ce63e24407b13825f4368a6d86c":349,"3f116c3c0bf8f23d04481cc89e5eeb374fd34ef7":274,"f28b3cb132e36fb8ed55f38eea8b6e698f9d0728":260,"23346c8671039a7b7c2e33a9e7af4dc691448fec":204,"aa6bd8e53f03eb55b80add109d290319e3e8dcae":0,"f0eda7b9418cd227ec1474d3f56c4f84beb97fd9":98,"b02015e2ec6cfb605bd963884cd169bbb87a3e79":0,"1ff7c60c45ecebfb8eb414324f7c026e6734bee1":207,"2a18ccf99d9e601db1260b928c00cd42378a6e93":0,"ec47a62ab209135507d972221b2219cd3fbabcb9":557,"a249bd6da54bef665e1e163eef27ee5cbd894bc8":298,"19277b1890dfe070facb70668e4975639a4f5064":71,"2e83a68e71ae9d698e9615962e8b4f4b46bf8718":413,"e2eac184f5d98abaac96d8b4f08cd264ca09b13d":418,"4ccb7991ea374d95391ce8437a8fcb80fd9d8ef5":0,"ebc63d1d25003e68ee85b400e6d8d98c9d11c0a7":0,"bd8705396e21007ea1f6bf47f3f81c2c08200492":588,"1e2face4d089dd2bf242d324cd195bfd065e1769":513,"5ab28344d1deb13f0b6968114210d35b2d079491":397,"1ba02a033ebbc024cea99e491693c9661abef9db":401,"89f9042639f614aa0bef6abe5cd148b7d69ded64":568,"c41defe018e9dfdcb6ce5183d3565bed44421773":9,"db63d2c11b47027a36734fc33428fe85c90ff391":759,"aff932c55180b3ef3c8638ae9576d3769c4e51fa":2541,"54db05017c3ce1bb815b55abc4b8d78537adb7c5":65,"a11cad3b844ceacdcf6460f138180b180a390d97":754,"4e49d46fc6e41cb784af1a59ea4e55207e48e846":952,"2fd7db55626fd5b2d09fda101b8b388c77c092e9":565,"38b28f9fc9364ae69568b725a5a92ecd43367185":499,"32ede6820aabb7e68b72846d3566e17847c00a28":362,"9e1a11ba10b76af59784e873bc6975c7f2f98e4e":901,"f7b78e949f6ded385ad6c9342f652455c8a38d5e":221,"66c737111a70d1a65813aca1b21653e33c21b60f":353,"11be8c1acbf03b28a53562f6f0c51d3f3dd61727":456,"c1c891b74dd21be8d919d1d602808062cc1e545e":269,"e20a0b2615e22bbb7ea55ed014acf90fb7f9df8b":0,"4badd59ddf0206bf892d3fcab9167b30d2202f03":5,"75e876fd107f389aa7b43e8657b0b8570303f54e":330,"c6517225123a4bf42ac821b79d0d53e4349e051a":0,"1f4f2d9242b482a8370b44498e8b1ba481ec68cc":0,"84a270f8a40181e7c0a14a35fce7c722cc9f194b":57,"4e066a4a06b82156cf7e210fd94be4ea7d0313d2":0,"b577ce264405e84642999c281a3aa89d1451f3a7":36,"a294c3f6c681ba41d81fff753ed168061f53ff6b":88,"a4c9b59af39801874cad296565c747067f9b401b":0,"3dd3424cc605ed4f2b3cc5a1072a5397087d91c2":212,"0fa0e23d2820a4f54fc60b2145143ee8953255b7":4,"7fca17c2fb4807bca8ccddafadcd7f44493f1bd0":0,"cc8a31386d1e61a5d9923f5e3a63f0f2adc50f74":7,"6fd4b58dec98cf7bac9a2ec8ad9ed148234cc57d":0,"2d961d47d3ee7929c4c8d057d698f2e6e131597d":62,"19cf8e5d47392bbe35003809af3a710e454d440c":0,"99c5c5424c75cc3d4ccd1b50d11a42cd3a803195":0,"6b16b954c646e44e99edec8f38ad2e95eb38230e":0,"914c4aaea3ea1ca8c091f30f4339eadc090c0c23":0,"293e758a54317ca304d9a9c683b276b1a89a1fc0":189,"24ec17b466f3bb7575b995bc2759b3d2e5c947f4":456,"0ab83f8a5575de59fed695480199c45500cdaf82":63,"e858b1364a720374c3a033dcd4ef11969fc74a32":0,"2971bb236f7e4b6f25b0817411ea9bd70b733811":101,"b851c5d0911ee0ff8204c76bf8274dce51de8ade":0,"cc397e305b7819eddd41027a287c6c64acc8f5f0":529,"b82fac22ced14666acf8bc63e033f2c2b73ef83f":0,"82bb0b2b514ca189c1158c11639f712a2d1a4917":0,"6996cc08f8e14f702a266fd70f4869ceb36d0f14":0,"50b479b227a6d07dc2fba0b6c39f3d78c7700b84":0,"f63cbd102704adc8804372b7cdc2cc327e0fb3a4":0,"e89cb7478f4f001c22451247ef3dce6245d46928":0,"3ccf6b87c3e86edff57ee39aba7f799df2488bf7":311,"bb9d7c6c2ffd64321cfee881d4734785f1947ba7":0,"998fb877ba8ac88afc76f49f6a3e22632bbc49f2":0,"f933fe23388f59a19ce7bb7d97161155b83668fc":404,"09c82c013a1f2649b3ae84785c190a06d498492e":127,"ec8bc9746d3b5e797fa9cf7aa40ad7eb6eba9610":0,"f41d956d7f7533a4fed2ef2868fd3e564227dd60":73,"ceb3fdbaa901070853fb7fdf5de80615d182ed76":8,"9f5be8ffc0ddc19b7d1f11d0f82579483610b444":0,"73450f6214232e7cb6b5a8c26dfec72cae46e97c":42,"5adc084239d6b5fa0576c88bd36946af1e76327a":0,"fbd6fdebd8fb2e0e4d36b5095ba2ac39ba1279c1":51,"9fcca86bc80d85156edf3a807337f6ff47cf3992":287,"86d97e15d071a4eaba21e3d3a0fae5462eaed593":0,"c769f257c6474ca733cc2772cd44b9aba5d994fd":612,"d6aacda973cd9c74e79ec014a9ca41f7e4274570":0,"d7e3b172507ab741d0149fde2c69cec6be3183cc":479,"f9cc4d7c989e2d23c3d00245e9ba7041bfd84f03":201,"2b5b77d725a8094bd5015bd07506791a101225e7":26,"c2201a55b6e1b0ea38043c514ab7bc3a372bad13":34,"75eab1acf251b1c16da89457b0678b37ca3dfb6e":220,"99baeb0b85c7364361cf7355419d6da030deae9a":0,"3fb07d02d7dd98dc681224f0fe08c370a586f6fb":0,"7ceca0a2ddd19d031b44b2ba61d779ba7b49e8fc":254,"a03c2200d3edf5fb742095dd730043ae6befd56f":261,"f2ee2d8fb717e82c5f4ab7b5278fa6e99cb3f95c":340,"c78392cac0d50570d5cf86558d8d3674c0bea068":275,"3d634e61c59262b9ffae7ba716035bde906b7f5b":194,"16e66052fb0f8ed5b0ba6e3ebfae7a4e98bc9dde":45,"55645f29c7714054e19e385920b67de59d56a2f8":808,"32058aba8556eae7ae38829a6f638103e3983e81":618,"838bf4564ce3c91803ab320da0d6afb8361b4c71":715,"f690af856d65d73f4490e07f99635a89e10b529c":658,"556e92881d9364ec1f9ecb842b40642d5972c4df":0,"3075ffaec94c3419ee4ecdb08b7469ab46fdc729":213,"2a1cc2a74fbeb4d01e14ae14741aa33bc5128c1e":298,"569525b0d62bc913606c76a5b0d805be9d2bb52a":501,"c01dd243650459d8f9743199d5badea3d0624e0a":318,"415ca3300a9c098414e917b3a88b986f956d50ce":647,"b53b2a51aa2f8177a3052f4c59cbce9144d6f9fb":348,"269d5cb119121e8062844403820a8fdb6e315a00":84,"d79c22513dea00015f3d08631eaa8ea6678b34e4":388,"477d947e99cf128f244b9811fc588b93ad7c9622":0,"86928cff311b42412de7410e0bce7cd7f2533f6f":463,"9850d6f7775f49c73ba0b273716a8d3b0642c9b6":475,"ddc9504b9d7dd7f535832e569484ea8c41669148":155,"8bed872e9436093be9f89d35fb84e0cb58a293af":215,"a7ba4c64e4c1a5e51edec1ce57405e5f7d65732b":264,"992af0a4002308d056bc880a78113058d0960317":178,"8824d530e25f6c2029842e75b0e8497804061091":479,"c4523764d01db579ad5bb6c9e482ff3afe0032c7":257,"bf1a543641fcf6539cf99c1e3a6646882566bfff":199,"d7f8d22ddeae0315faeb1873147d4f0fcd75c0e2":405,"ec1ba3fdfff9327db01f83c27d05e8de97c85980":0,"caaafb951df5b6a339ff47bd4dc5c8262d30253d":0,"b9465a1e1c8a49703bc1e246c56a71c979c04521":0,"cd8885aeeb4f0057aa4fa79347a13267fc4704bc":137,"58998831bc3ebd13e8916f888a2e5857baecd39d":5,"5a3ee39731de0c7fd3e3b4b507452de96d373e4f":15,"dae26184b91e6fe8963717441a17ae7f48834064":0,"2d1d916b8f5b72bdd8158fd2da4395ad9322cbe0":0,"9d720c119a602a71e390dde52b8bd1ae3039383d":49,"a61a894557aeedc4b09676d713202e67b9f8168f":152,"46e8e9812ec39f503aec241721c746a533d402e2":210,"664d491691fe8fd3da73f139526173034774a679":365,"3c54843ae26ddcbc8db015a623607c54dad123f3":212,"1f9d6dd2cadafdb14c63c82d3a599f379abfc1e7":279,"d4616740a0e27d078559353ac3c53461ae874006":2267,"cbb2a72c5dd9d74144e321b9b45d8b0d376097f3":0,"f65349920bbc4b2c2c8a33d33a2dfc1415a94cfc":0,"41506029216933362d79661e29d282a0e1b2c5b2":0,"866ad15aae0ebe7321e8a18dd3c236b6518365c5":22,"7f4e3f923dca319f3086f0f7906d22c49b5c1144":0,"f22afd40b961b117a0c9f7f95c8142f28a355ee9":309,"1110312da7814e583bbbba02aa8d49a88ff8d078":560,"ed28e1877f4db892327381d5af6065a7e5432471":453,"978e6142ae7d1902562ac2335a4f2f2c553d7eba":421,"33bc3b7b3cffca9f67fc3c818f8e603286ed9a51":39,"6c22f5f54c3f604ad69d24c3610046987cb1c5e2":76,"5aae8338f2e5193fc2838502a2beb812f57a2cd3":120,"4c76d3ac273cd4f28515a655a6f9e370c7f86beb":79,"8725d8bc98ea1d60fc79707651ef9353729609b0":28,"3be11e6023aa74a4d13afb8dca8ee0d8d86ead54":147,"8c6515a22fd018b42aae1d750fef7a7e8db7a30b":472,"0a1ac295e845bb5ee6af008f6ddf3e6f2a2ca328":16,"cc8d87a3fab6cf1586beffcd9febac694ede44ce":678,"cb8b3ed7dedebbd76ca7382f6269f10e6335f8d1":313,"d6617e28b7e922c155b395f050514a8e1705ef54":0,"4c8e6381125d04998a6e032c2b0288b8ff3ee863":0,"2ae9e5ae62cc8704f91c801a9ff72f7a2da40fb2":384,"d130dbf408127e1b10b314c85ddac329b06159b8":40,"50c92bddbde641df3853892e65d7327a93a3237c":639,"14a1eaaa1e98e3594252bf1b782a1430d1cab88a":276,"40a5816fba7104ce10ded94eb4b326e557212496":107,"28e20a406ded68f381da38eeb61673cae5c249af":348,"f82dfc9b1c0c9b6344c53500a22ec9b9e0fbe3cb":147,"7a8e28e2c9d410608315cf33b0f64d4c1c5a180c":0,"1e461f0e31bcfab5ce7987b66f2e06528e568a84":0,"30376366094ad29c24c6e25780b75befb308cd14":360,"c4577a7f76efefb0778f2993d6d57a6ed91b0803":305,"9e2c638913b804ec5b68fcda68a423637b148e80":990,"6337d39ce6d093aca12112f59a8745705bf38557":250,"f9a552f223bf2dbc9de4746da54b3c3ccb922282":45,"1bb4cca6b7250bf0c211e21e10b5016d7b270090":252,"0a1f03ea669da9c1f4aadd5a7e03d72b50f36e06":74,"d9a952401a71eb5d4bde89f0f8e4f6fb50889b6c":238,"7d81cd184d11f148d155bf1cefac9e45c5dd31e9":119,"cb19e1217f40cc09e5116dcbcc3af10dea469bee":0,"dc57d205abb77c62ba6667155d9ffb2035fe807b":354,"d0a3e1455d0808d2050c5c736b8fb97a988f64ff":140,"8a993539f3cbe3ecff2c6ac22a447c714da3622f":0,"3b879003c0c7e9c65d9ad431ef90bbd985873f1d":309,"235860a73f241a634e05b5d3435e266fb44e4dec":0,"044c3c9de847c833cd16689ec96e3918e416fd31":261,"b5c5128abcdf0949095ab37f148cfc929a80cdaf":513,"5fc7e87d15bfd4bbf7f033f79ba5e2088991e6c8":421,"1a72f27df373b2c41eef5be954949d519db1c24f":521,"fa17065fa7c928798ce5609edb63803a3783ea52":295,"b680498d3bc09f18f7f057c9b83e0d9c00266e08":1,"9b7ce4cf806cd7cdf73b346c095de884fa3f59df":207,"aed5e791c79ee070b1b784cade7346ed70821b86":0,"8922e69615113d880493f0a464cba76e67bb4fe3":0,"52d07914db676251decaed9d5c91b60dba517f11":90,"17ff8c46b0bf8be7097b451beb562594166342c1":112,"58feefad378bf92aa85fe17ac6ea56a9bc930eaf":0,"7c69422e0156c9758b20b1f00555112064d350e6":0,"6ca91ef05e2fb68c5630ecde263131729bb57bfb":0,"f03bc6b1bd0d3ab662ba2c37a233924d768dbd7b":189,"2a097af971a2288c19f7e9ac1b7c3423a60f399a":395,"1649fbf857e79ef5bcd2cf23a4e44787a2dda14f":183,"9cfa6d21afc147def653324f1ded7d3680c2f2c8":293,"ce2c6678dea89a29f46c77dac5eb2a59e0c026c4":256,"1c7fa623f8bcabb39eeba068db76c3b3cc69eaf6":276,"0d6422b85f73fd3d6c6e4d8a494223a9cf4d13db":141,"186c5191c75b06cf3ac37561422ca672aa5c19ab":349,"51bea3ceaf23024365d848e653639d10e2a288e6":80,"1b2f46797c1a4076347f01f978765609c7d8829c":98,"e9d5995b3bb4d40def30dc25fecd9c0b3f7c288d":563,"d1617b84f6bb9daba332e9bceeed8129ae2fb6f4":55,"f94799ec1e39b9482d893dc3900653efe2d6fff9":44,"aee836b30e3d0024a574fd1b333c902d9a098c96":124,"3780cf5c1e1676e40a9ff264b37f52c38a543748":187,"ce34fbe8f7bbcd1e4c2cc22c8d527921e336dff9":0,"f1ba33ba4c507243325255b01b2118189c512e14":0,"642db549ea9feea9f0c7a499897c64245a849afa":145,"d737648a8ad7cdc075d15fa13f8c0de05cdbdaba":0,"41313987ac2cff816dd37c0848707cb74c867f74":21,"8cc01a0687c82726f496ee94e5ee5f0063183ece":0,"c297b2dceb14f0b09a5b71acc1c6835d51870225":187,"d6ecb4f712312ed4dc19d61315ac0ae4f264949b":137,"35eeb2d69fa3e15c65f557533af0687b2ae610e1":0,"139bd262f80fcd95ae321c818cdfaaded3e26b48":347,"a06ff151891b0b946dadd42a932b5fea0f20b318":0,"262ac343c17a25112e61a37678ac96e815be8ef2":0,"5e5e0e1fa222e529fcba61b0a306a487c62f309c":0,"2e3883ab50884c550e8533a439b57d81f52f6060":0,"d6cea516fb653f7d5cc25dbf5c819f1894aef6e4":0,"610306d1f3074d38be6910923805762b8382dbc1":103,"bc5a31e9348518f4b4987e7b55f456dfc5e19eb9":132,"ee487edbbc8c56fdcee388f934575107dbecff04":0,"3df3ae5534417a99722387fe4eb64424bfa6b8cc":361,"aa78b8c5f61a2a4f675f7e4e1042472167f1cf0d":0,"503ae0b66deabbd23b9db7ea6eadc68c3e5c72a6":68,"68fecb69bcc0d9a59ccccc237cb18038571af381":468,"9f6c8d385051be342681dcfd7ab0661618b3b58a":16,"1f2aebca17859623425fc1287f5b474774d35e71":86,"e3663c516174ed1c101694db74b938b649f90bc3":293,"9cf7c4f9796158d1ea4ee02ceef01ee2b81c886c":153,"83546c6f7bfabf2d7b1eaa22e00d4352bbe6a643":107,"38763bd08c95b757c26d5cd32abcdd9cdfd61b95":7,"e2a8524b163c84db33dc62b1530b066b12586571":0,"c0a82da552614be6a18680e3a998cd5fd1271a03":391,"8c7a6d849275ad2d70baf5e520df2d05b36a293f":210,"a1d03aa2952aab265bc7542520d8a0b5b66aef44":0,"04d90176ca815b709f4b052de271f540205d7bce":43,"9c6ac568f3a283fefe7a384bd4876ebd22c9134c":0,"505361df49402603e57a743c4e4d70f3e335d38a":0,"53fdfcdd8702e8f10288ef45e3751100503be013":182,"b85ef61ca767ff681fdc74e7f124e461e4829464":0,"378c485111f1a551b9e9c785523460fd86c85a34":303,"97a5c3bdc9121f33d2f0909e0f0382153a5d57ec":0,"499f52b94519170eae9144b167f09f6b82bf6f6b":338,"230bad65a35fb05b246d78d47e7fe2ebaf122509":322,"788a11f8271831e62336c496491a5f1cace24af4":0,"b906e4d6375b83b6c8e087d967f1c54827ff72ef":261,"57d19ab80af10b1327475fe2f45c9d1110be7528":288,"8f6a1999fd2afb6ce41cc8e36f7eb752def13c5b":0,"fb8bfec63ba26cb139b3d136d7ec843f595ded85":0,"6a436550b5ea0c2c2fc902936281477973bbb603":270,"98b249fa6930acafc498c632f0dc9fb904028ce5":0,"4c0567a5e28fdd5217fca1755e288ef6c4625746":209,"c1d316c12009dc7c004115df549c3f086e0ec8c2":0,"c8dd08512713eeb1963a2a4d9f67773ae6a2ee72":344,"7b4093e40cd262b4741fc8e3c6e711e40c3c9a06":0,"1006720b140244d7e054819f74ba63ca9d8588c6":0,"0e0a9ac28c8e0d194ebd52b96840cf0b22d703d0":0,"cb98488d1ade81b3a413db76dd40ad5930d8c819":148,"a2bd0934f811af52ccc17431db47fe6f994392b9":220,"054755d6a8dd398b1e5188c62c76ff5cc68694b3":220,"f700f521ef3b63779371933fb1411cf9f664f9be":0,"932209ef2f175e1d4e06b7efa8cf86ae40a05f0b":0,"337083aaba3f2f545f225bda58eba0079ee252a5":128,"48cc4c27054b771ea2b7318a6f2feae4b5ff4d3b":0,"0e1560415bd7046ec417287aa9aa4766d006d51c":129,"f26a2cbebc247c2f98abf79e63ce2cd2bdb5a62f":0,"fc64d9cfc7f267b742dfebebb81f2aff723243fe":106,"f0e4e506911387076cba91a609c5a272a23a3653":291,"b86a5e31824d01b1adf4671859816c8ca412b624":0,"b174ca2593ce567b0fc568d905914d115e1e3420":0,"a12acef26cca546a2b8c58c5f245230d6742e0f0":22,"40fab9d089d10f4fda786ad935a1f2d7fc04b13b":50,"a9857b24644c5a861d196ac8a5e65dd7037f6054":13,"e44fc11d77df5f19c92d3ca327ba857764976cfe":0,"0db6259f841d22c65acfc87bef143f1f7ae793a6":1,"c8558af08d0a5bcbc0e2d92c8d5e95503b14abd9":0,"7df39284a8b05901c2fe5b7da08c752da652041f":0,"71f8bef2d29a6be5b543f1040cd9653b01486f5f":0,"2b8541eaf802ee7c5d2788042b12883a3cb6e1fa":0,"b355de8b88bf55febf1b03804422a6dae6f5c6f8":167,"09e57617c32b6ee159232d6aeb16380282de2b9e":0,"1ad16c1ab37d91802ca5104608672145ad8d4adc":292,"2f68ae6e6116717a6a5e998ec32a2c109f62b89e":0,"87ee49d501b03a46935b8c4e746cc237f9b484c1":528,"9e76d6320c017b774d54bb31d79dd4b8a5876aff":0,"5328179883a05ea34991b2bdf4ef6735b62aaa6e":74,"cf34fb80ff4ee97953ee8733cb64b25b291d0267":0,"ee070baef62b4173967584b037929ea199f5241d":233,"c20692c3271dfbcf9f17efc8a4099d33ac452db4":0,"00cbe9f4cfa863b1b70dd1b01d7e50bbd03b351f":109,"a5dff27734db1a1dcdde5dcf582af99208456e4e":203,"31720d75b8a3ed3897aefc72c58b3fc3f2e5c265":164,"7470ec7fa850ea0e12b1935a0198a230fd7ca515":149,"9b375cda328b4617e11fbbef8bac5ff87787b04d":1200,"258eb52d4ad29bd844e1f0835aeb0657b1368ce6":72,"51c5e906c9d9b55d6835428251d0541ff7d81d22":1299,"ead73abc84e15bbecb613724f63bb3de40b04477":118,"385a46ea52571b908b41fe00dfa9ce76b5470469":37,"542e12c6719a09293f2c9cb67d9babcfa597a286":729,"b06ca14d316fbe85adc7914a014a4cc78a5f3eda":9,"94b93e90bd3fea42d868aca8b2302201f785ac03":224,"e2de7186b5a668b2edb6c4eb7d384bedb966211f":279,"80eaa81d235bb489c04baa007dc9f79a9f200747":0,"3e9b8a53746b59ef43441a31a8d8c699e7f80bd5":70,"5aa1aab2f89ea7014b926bd3ad526bb1e899863c":0,"d3b2d5389a15455f7c4a8a8f355ed4509120067f":0,"9661e0b79b54c52c6eced56ad6f0fe421f7d2cf4":281,"e1b5f490f843acf411042520d0fa162f8276863b":0,"2f924772d11e1226c86c89a5fb89b32da853a62a":150,"1b97759411aab935c27e08b30a7be7307acc729e":73,"1650270211cc48b009c48f4a9c551482d8f73873":5,"0db447849a968684d80f38795dfa864249078a8a":10,"0e1e9dbc59c60499cdaf2d464e876595f744eb8a":224,"60d8a32e5d29766d50f0e116007c8d0da9c14d42":0,"77e2798ac7e60574912c32ec1ab1702cf9592d62":0,"cda0181c2505f1855ed45d5890119e2480c17e95":0,"fe1cf31d50bab2ebec74e3d035b76c1deff2b5e3":258,"5bdebfd7f9a1bb9fa9cd58142c53a6424f4de260":108,"5d68324da822f0b5a1f712ee2c7583d611ca71c8":0,"0d951fb29aa0d39589320b993f0f0a95289d6679":208,"3acbe4b8eaa53b2e9363a4acb8b9f3a1f2da30f6":0,"a8f7d834cd9d95510e56711181201445056b8391":0,"9661abe6851352605a2abdd64bdaccfc0f2d027e":0,"f7507183169a9662be60156dfe309269f7ffdf8a":1748,"621c639c4dbfc738e3cf5a5e41ac848633fbc1cf":0,"37627f717e360c21634e0a7b619b5c05504c96f1":29,"bd6fbf624ce5cac9f5a97fb9cc5f41092d6e76a0":0,"e05d1ec6368342db030d6c7362c6e95504757de4":0,"5fd3e194dde3a8c727eb8b6c50c7bf42f1078bd6":0,"9b7f8ef46e35bb8f5ad22c3198c2bfb442898e07":0,"8a96f4be6a90350330422e149309b08942661c24":0,"6f2b03c11a9e2baba00097b92a92133142854ae5":237,"b98a90714fec533046f26b30bda63b2526b71b30":0,"01bd3572ccbaedf5021db91a9ef8d58660bac361":1390,"290dbec45966711ee81c68af5a8aee5579cc3300":3,"66196ca127a78f8cc07c66898f3ba1c7c7a645cc":0,"e8d416e64640d83632df75388aacf6acfecdf0cf":79,"10ad47967928117283b75a10a7cb32279990be64":0,"a198117ca1971f566783a8d334bcc0bc01a7db42":210,"c834b978ac05d1ec3ff15b8a71099a26fb42d755":78,"72ef602ce8289e6f8ce3aca346d77ab2681a630c":100,"93601da1244f8b11107224d3450cbc649595b8e7":18,"923c3d6a417c000ede521774a186ddaeae7a6933":451,"46ac45f6aa42af87153ddbf9e0980396357ecab6":18,"fd49ad0f887de10e99541a1d81e77b34560af81c":114,"b471cd3a1ba6c5397755885f93428adb52d7b0a7":204,"4fa46a12083654e96e66bb124669c254eb821621":317,"a9d31ccba34b387a15822291af3ece49c3dc8e5d":61,"0965117acbadc79d21d01c34efcd352b286c161b":0,"b49802cf250d66a8be428a206badf8c756d75987":160,"83dd803897761a4169c23168f0381712b9d90947":0,"c13b623d4a24158c5672e633741697721b4a011c":900,"5202792b1577bc565f968321893eb2b3a44bd9cb":237,"da23d936f077c0b1c935f6298b4052f0ad40d655":18,"0f194430e37a65d4399f2d79e4ff4b63d780033c":0,"4f82e9278d3ce0a3b22b767177a6b3f4968574c8":557,"672c5db35de57217e7421c8abccc5ecc033a229c":63,"c8be9a32390f7c45283284387bec5e450a44971b":259,"e6724c023a8dccb8d0dd592f4e8e7cfc53fb1b39":99,"5575022add4c02240f162a0aee8b38aa961f9e0e":136,"9c430dee4f62ef35bf25e7a52da5c6cfd5eda2c9":120,"5e1bdf0ab98b5315d7624facdb747b0ecd25eb30":118,"21df0a1d4881f3f93c63fd6f93bece7927111c91":316,"722a7f9858411ef716e7aa93314628d4d2118826":53,"d069b4eff33eba895c4d221be3a3530aa2a91566":245,"692f619f4e4c0a2cd195d501dc0d78492ffa51dc":247,"7294bb1147b0d3bae340179e0d8b6627f4573a22":29,"48c14c15825f6711d1dccfff0c41f6ef61dbe0e2":153,"9cf763e294dadeb973e5d0e3efad6907760b8b18":678,"7e9ed3a9a8332105e43671655788403babdeebe3":195,"b1ea94a480c08d6721e4896988736d8ecbe0cc29":0,"89aaa21cebd1aa189dd202af29951f338b20b2fe":430,"f3f424b5ce4789f6341dea1b9f5f2513d1505dd6":92,"a1b912f4bf8a60bed7f26c3c3aaf5d476c7e9028":1,"edc59add24777cbeafbf54f8dcd1dd119f487af0":228,"6ecc043776b2e52d0d082269f9d9ffa67e3acce7":212,"f0d5947795c6cef7cc2cc6f17abab1dd8e88a818":0,"c9cdbdadd189b4d1787c48735a9c9fe98125d685":213,"86a0c7ed95380fd3d61e1573a05ec0f338e6eb83":0,"fc5179d977d2ccf2c6272db27d0012f3f14b4a5b":638,"636744e687d64316c776b355048a5dc1590f5929":79,"54d8c5c328c17159e313799d5e6e55045b3a88fc":188,"79e4d0d694aadcaa255434ea1aab5514c578ef8e":1279,"f6bf0b545c882c203e82abbe3f6f15e6b618dcc5":0,"710b463fa23cedf881e2c05a834d7099cdc9ebe1":0,"1bdebe7a32f8f2a2a20894dc5e5486b3ab061e17":240,"7fa874cf6a5725cb82ed7cf3c54cce0a02e9faf1":0,"41872e663d5b7b0e34d9489e835e68fd0e1564f0":280,"3d1f95c92e4e22861412be599082914d12278c79":254,"47256994a8c676a0cbaaabb6ebe5e79c9ee7e71e":0,"a79fd0c5b21f08f6d33d01767ce0cf9fd67b60d5":626,"3e78f542265a07dbcd002c64c92ea6e863122e8b":20,"834d4db647cf7b8e39e1f6fa9adcc4144dc23762":1540,"8010e11a8de10cd09da47b57917532e4e8b41714":221,"8bd459b96ac7776f334ef6cc1036c796098b37bf":101,"4039b7342332c078426dd590c7706c5d2a0ddc14":38,"b21c0cc20f39f2f1b98a30aef0c0900667531799":2,"c3a350a09a4d4cff936dcdb61568e6e552e18f14":109,"3aa1c65c557b9cced30fc0e92edf88b833d0c0c4":12,"7e4ac9c4e53b89dde91739e84af489b8fdd66228":158,"de1d063f7f920c5a9002446ba8fb48788688cc1d":602,"c9fda11940cdec4e48d03a8ee4117047b3e0be5a":84,"d9851b5fddeb2fb641d72408bffe8e95782f3bd2":1419,"f9e10191f35dd97d665220f31c034817c7ca6476":207,"b3f4544eaa5adf80ad59d6fd1f43ffe3bc7aa5a4":35,"ca399521057661b215b0bb865ecaccd4f7e2be82":218,"da205875b6f8fb254d3510d54f56f1379d3e7141":204,"5597c427f6332b873477da575a77a32069de75ad":0,"85f3fb6a9ec4e3b51dff7bdc4a25c6959baee2b8":34,"d0223c4475d9445dbb2974cdc9f4011c27402fda":252,"1282ab512d82c4a70d2522b13a7f455f61fd6e7d":961,"9fb1568c46e81d5c053c53c7589567674fc1290d":0,"6ce53a04239f132ed2efcdfad717d5feb1ec5ec1":88,"3b1b001995e4b5a837a29ef64c6e80ff4f96c9a1":0,"ef259ce8acce86847f667493c709e50f3a92b707":181,"4a55e9fb41276f019724100febf17c05d3f168ae":53,"b95416b1a92588b82baf9e40cfd28c784fec1790":126,"7e9f490d2d8e40ef788715eda1d5aa0d5b127ab2":333,"63a621d639fe0a35100ba7335166dac584721e65":0,"999ea0d9d6f18751439babc68d7a48442fc7a240":0,"83ae9c33ad100d20d112b83b3484fc5286e2499d":0,"9322855c686fc07e0b2198637406cee1337a0705":0,"1516a5df81336b0cd5841086661531044848c3d3":0,"89bed9d32f1e618c099a39eef76eb4ef2d41d6a7":0,"d9a956d4199570cce5bcb4d95f659376647a8c26":0,"f68a72864dd45d327dd669a0db8109fecf650e0e":0,"457a75835f19992d669740e815de3004ad51c39d":0,"c24098cbdf530071e42802213e9d59d51e179445":0,"f42953cb90e4c142f176dd619117c6150748dea1":141,"a3dbe6bc06ebec826cb131ef9d0d2ac324c4ab5f":3,"c7fbd3a0b26e7327ea74c9fa876155f53f140fb2":9,"dcde95cea88c04cf8fd03c2fb313cf66ac343ef4":3,"4e993bdce0e91fa5f74b9c311ef7aad43a8ebb94":3,"3acb5f5456b94dc8e192867b024b52512fffad6d":2,"35f7bec0d6da15dd3d2f1a8c48814e6bd869b0e2":126,"4315d28b542cac1014309360b605d8e7008a453b":490,"502d98c8fa6b45e86ed118420cd4aef48fe96c6d":0,"1dbdf7050bf486f3ced8f3b0e1f93740ca3a9208":14,"30923dce227edcb97aa831ef2a50461a1175f286":162,"e7df9140959ff8e3c780dfe561a04731a4283e3f":309,"b73d8070f0f95ac697a121029c884d0d4a285671":30,"2be06cc66dbb58c73130b7689d8f560d8bfd5612":0,"db121576f3c282b40e653116b1a8a37a36c9bb30":170,"05402be4ff38798dad254f97afaad32d3fde5a4a":0,"e8147e559d64544aacd89938f326640159f6acd5":0,"f459fd6ca942d7b9becde626abdf9d15bb0aab03":0,"20cd077753950fe06b52a841789ea377c68505a0":3,"74e18593a01f4d4b918ee6bb23171f51c0ba2e25":15,"1c86d480435bedb48714a7ee8886890e1a8dfef8":0,"30f637658491c82afd6306aeebca80f2d34794eb":0,"c121e58bff147f03e2a75c30a2f06968486865f1":3,"762cd7d896dbd441a1fc5f82d595d66a067767be":0,"4109cbfec11abb2f2f1e6e60bc70fe5f604948c0":0,"c5668cbd331805db91a07df2b13809ed2d46f48c":76,"63f813438978672e9a660c2b9b018f54c403cf5c":12,"203e97621e78e8f58b6ec54ecf972550da0c856a":8,"79438488189a28bc7c07c3f60b3b5e1925b59b9c":0,"5daf6fe581d726028866515f274af22b83518581":406,"12116feed43ee7bf36b9c86d366188cd0289f130":3,"20e86e08a8ae3c2f8398fe75a9221d89f483b6d2":91,"e8fd4f45e9c813f0dc71452f008289725252f86f":90,"9b2123ddf3a05eba2872696761efa1575532d7a5":0,"a639909a2766018da69ecc7cb568f4ccec24ab65":0,"7372427b584f8756728230f79977dceb4d2c0e17":0,"086ab97c8ba0d364e72025c36b5fbb1bab2a0beb":0,"5157b28eed0cd3ac19e9e7e8262b211038d3e81f":851,"057c889c788c77605970b8689e7b2c67b3593b83":361,"325e66910f68b715649021aeecbc302f3874fe7a":0,"2fa1f8bcb7078005651eb55b9997c9046a949eea":76,"344d1a5e74f3a7624e9e23ca2d895dc5abf1ec01":24,"04654db67816f4dc63e655332b2490a8e62bf4e5":9,"db084a93279ca3e8811c8a03824bafe1d9c152b0":9,"a247cd901a9d5fe1abcb80ef5a25d10849b54b63":35,"ba7dcd6d23819f32b17d037dfbb70f65dd215e86":276,"4b16adbdab1b5456b74e05b6d1c00b7a602176f0":93,"5aeefaa6a6fb41ea255e8457aecb50722d075c47":44,"366021a84221f8d04af0941672023db31de3dfae":11,"6d3008fc55ced8a43c51b322347a1c02ec5ca70c":11,"cf43b63702b56c9fd9c65815ca79da77711757eb":0,"5fd332576c12a4a724713feac155ffb2c174150c":0,"399dab445e2075f43fb38859319f9209f4dd4fc8":0,"863f530c7214fcc86ac9869da9f0029b40289708":0,"7c005e74083e2ee6a779c05ebf533783cf8cc589":0,"54fbbafb0d65cecfe5fad6237a4740bcbf4d2ad7":60,"a2964836c921bdd4add30423e8133d7a0b486d0f":10,"d027acbdb00f967240691cfff91d0494d75a4150":148,"e2e368e770401ef32b0598810cf600be3b3c9a1c":117,"55f9892f35258eb41293209346af898cae0812b7":0,"f4be79af071cb0088e1910be0b4b2709078daee2":0,"6c3e24c3d4d5a7ecc9e22dcb6c04d8170ebb1189":0,"e09e1826c792bb83c88b2177ee0a7f25d7c2cb97":272,"0c22646a7e1494db3be00e1f4ee30330d42a1225":1597,"d7b647265f4b5e8f795e16707e5948f1fb317f7d":18,"5f84e945870d9fdff001462f635cfd0e163340ea":0,"5912feb9a09bc335e011d0acefd21ff4d61173f3":45,"f2f0a94db00e63b57e7c27b34e93a805bdc5642c":136,"5c76ad6cdb60129cf1fdd2aa8fae1cadc23e1b1f":0,"77c1d42c0a0f6d5356db8ac426159294b1faecff":0,"346b6cf4e797f0197bf25e061c0704d000126a59":0,"3bb59e8b6f512d492301576cc89fe86df3485e73":0,"aa6d2254feb027e9d71f715bd6a2ec951c739aad":1161,"45020811f8f5333784064ac70144ccbedcf972ca":28,"b22eefb63fbc762a0bb2de1ce7047c4ec97c6038":102,"0fa2352db66fde483a6743e53ccf88f0e5ca8c23":654,"7b2377921570e6212fab3529108f12b3ef4d6749":268,"efe6e3a5756310ae4050676663d2e12125e60d02":0,"6f2d4c36f33afcc167e2a3408e9e878fab96b17b":414,"43c95d6821d3276457b1425120e725e137fee91c":88,"3dc690cedd99a3b4d9f72517c1f7ce5fd62318dd":4,"363b17bf793380d9d4fe86f80542ceccc8c16086":579,"a62d49f36e98a92392f7a201df5dac3adeb90933":460,"669cdfb8c6b1d0e47795f275f62dc9e107f5f481":0,"a90d4f994831e5fdc7b40af25db063f8e3cac46a":299,"8e9031b6d3288df82098b85137d228b354acf384":82,"a5e917cecde9999346108832c55b1115756d9912":76,"2c06f9ef71e6510cf49d38b7db3cfff0dcde4b5a":9,"6671a16075abbe10eefd48ca3d965a85bf5c8a4e":409,"26cfaab70a4bd7c368ea40750194c1905a5d17bf":93,"ae369cd762ba7a92afce9fa44c0a6939b8ccf01f":15,"2891e478195602a47d808c793cd7fdce8c867ef3":416,"dce482446e61c03449d1c5c9154e7992157781f7":85,"9454fc2e3bd178ca75a4d8c253505a35046ade48":3,"8ddb371d26ee823870fd065d53f247cf6505dcc7":0,"c7743b043479f05f9187682d258623f233a9991a":0,"198cef1df321cac665c4d3f75fed46b1016003fb":8,"139eca4acf6c10d467a911b74611ab1925c8bfae":0,"6313d61b5e744e799707f1d3f14b756ae7640319":25,"8f2621ad8bcc67002a3ec08480d058c643dd3ebb":77,"a97e225354c66b156aecf76eeed40d1ccce4a6b9":9,"2575b053b874924b1b42eb5e823011d1472106ae":49,"1fc583890865ebf707081e23f891295a9e159855":79,"975fdf7cdc4875c3f6de107424eb766058c4cc8c":1,"36f8a059a4bf2260c15b2a3d22b72f1d58c6234d":23,"cdc654261bd4d0dadd7caef5adf41f3ab08e73d0":1067,"445bd73f5dc7705d3053c1abf3f7316fe732560f":64,"b70b439c0f012402e136c2d26de4b11762bd93ea":0,"e7d50a5372df99ef9549330a27a5f1ad934a89b7":673,"43ec96b92bad4a3b2e40d028aabfc8ff80285ea7":120,"d6e3d78e09b04c1f96623fee03495a69150d4d4c":0,"09373bcdda6407040496c499ecadc957c4908223":611,"73fbd7cfd3eb3ced42bd7902f498733df7ccd785":0,"0082615fd9a60d0970035b0c07472c804e9f2c82":0,"05e8fd0cc8ac0f877e860656518a068d330daca3":0,"95eb4a0005dd94c1928c5aa2c4d3967d43b07532":351,"3f09ca2c7b2e2d043274f18737942e41ac6e87dc":0,"cdee00eefec89c034f0b5c6d7eb1f609daabb46d":0,"12b12bd4d9e2913b836224a464b596479717d308":0,"e2f938f65af876ec6adca5ef19bf8f86d7738a9a":0,"2633908c07961ff40746739621e06c2bb773eb98":12,"72ed07aad687f96249b3e1b2bcbdfec4e42e5852":0,"8e41341027e6822c31f5c43d9efba224ebb838e0":5,"d8a677a3004275c528fe43738ad2170e61c29c2d":2,"f088130a167ff06a28eca50472b6fbe278e8c5c1":2,"d6070364d48cc870bdbf63607c8deeaf36e9add5":2,"64e590320bd5d172f7f4eca1546088ea09b9fbc8":374,"4087ee31d802fbe1e23afb41821269f65630d93a":0,"dc9c2da27e527b2ba6af182b0625a430d1dd4531":131,"705ad29c4d5640d9845d291e2efbe3fd49c15639":0,"76e7539898aaa0e6178f6bfabd2c3fced87055a6":22,"89be2fdcb58513d25bd96e5ce3fa3498f4eac5f6":0,"5fc783e94102f00632ddd5ae0ef6715b729fd7bf":343,"91a6e00e82ae9d30eea8edf36bb5d165f4441a2e":0,"9d4ed5fe8c5d50d43e65e65df73c06c5382973f1":0,"975e2a8379e6f3445f1852fe86743fef521bbcd7":338,"602fac6f5eaf5df1bd89bba4abb97e5a3c7f84d5":0,"6bfce2d64e90b776cecd8663a79cf196bed1a2e8":48,"02d961d385da4402c4d0aff2f0b4986af4a73d76":0,"cd9ad926dd43e8bea5a44feaed5611da76e9a528":32,"995226b1e750d2105ae235beabe8a5eadb3e9f4a":0,"b48d6eaf00aed6676c648d2b2e4208483c42450b":0,"6215a70cd5f792208cd5d0bdab630246adfb5229":300,"7e0187a409090bc7a1ace6a9daa26325d24af277":0,"0b6478899f72b96f6dae27d0e24803415e32a089":0,"825d2cc9ad4e8a0fb84af0a7e61e59dcee8b4bca":332,"1cdec3c56abf1caa8eaf71c3707f9aa421fc1d5e":0,"26912fb9a46308a878a1bbb163205105c5a17c98":0,"02e4d74a88ebbb93d9264077182c1527e172b9b2":1027,"0e3a1706ebfec064122d0de7c3742d8b7a8793cd":79,"ef694aeb8c5000e040342a6a942c82d45ee91683":1,"ae74d8ed461a3844b15213979a155a3c6be6609b":2,"101aa9e102f1fecb27b9f6bc59b70573ff83e6be":11,"534f557c2ae463cdf979226d00e6808d3f69ff43":7,"cedd5e3ad3a608bc3152bc05668abfd95e025592":325,"d1b465ed559154ee0dd186ada1ada97bde780f02":2,"06920d265dd5c5832c551262d6944ee3b7fdac40":473,"4f5f8caab9b1ea20c9b93d74bb2275318c3b3832":34,"129487777f7c57b73d57a8342afbc079a89c7f47":4,"b8a73e91a30089045e1c67a3e69b9acdcaff5f52":677,"59d2e405349791729ec2090c506faa6cccd75a6f":0,"4137064b4e82a3d4d8c179fbecd27ddcb539b065":171,"8d7b7e312a0080143fc628d3e70fc37e1f708df2":328,"12507bc4d293a09d3ee325dd4baac2eaebf82f28":155,"cbd7f4570c3048bbf601f39a2fef03df27d8dcd0":0,"195a33b66ba8cda362671a23a3ae01e5b8d42075":0,"51fcd90f50db68f4ff564bb7883112d37094e41a":0,"12d9538eb7285659ef3335d6d3cd64c776dafee2":0,"fad2fcdfc358bdb04717eb892e359fc75c25f5b0":0,"b512f2d09d5424387cbd1c87cd63e28e32565b7a":36,"ece3ae8a7638d1726a5bc51a4b4eaaedb6290ddc":44,"4e56fd59c1b6ba42cbe6514f21934ef1b8d26b48":149,"c8126dfff0d85d0b727fe416495e9280684cb6f4":20,"fb72eb25063ef8674f94b8238b722f5eef3a79bf":109,"c2f2ee28c882edcb85eb1e29272294a438f7a5bb":59,"a255b3e5a066268122d8c1453716be5582c90cf7":0,"9ce7460e43edac655acc65c611d3d626ca375d43":0,"c39260325e68e4d8ee384aa247274408bc1a88cb":0,"08a482355281e05fb0529cf087bfcd1621557af4":24,"d94eaca993b5d30dbd74599682fc453ff7dc995b":4,"4000e805d946852665fef0199f8a83f31d4f0899":322,"33158ebda6d372579927dfaccee11197709fb103":51,"bf77c6663f86fcc0ae9122533b738af228ff9ea6":0,"3e32d54251c5e7e0b61068733caf0dd5b81cca3d":139,"9ad4b10c0b8644cf3b68e4fdd349ebb9489fe653":16,"f737b987a06ecaffba4948d28434c147a13d7167":0,"a02eaf16a78ff1549f175ef405444fc0da61cb3c":6,"b485e2ddbfb2d2630a7204e9b94628248010cf68":5,"f779cbc1b0eca87b3e2b14dbcda146ca5ac75dff":93,"a1059262ab1ca6a16a4768b9e0cb47aee0da5715":103,"e35385f5f1eeb609ca970061e54151ef4541a3da":28,"357027dfc52c83ebcdce808fae42665e888a3d09":0,"121c151a9888bb35f5b32e7fc494ade025ba3cf9":57,"bd7f450f1e89abaa146ed66b78c7334c26ca24f5":4,"8239e088cde4e6a8525ed73967f84125cbeed024":27,"29952fe1cff56eef4bbf3f9887d7606e3ad3006a":8,"e98e5876b7ad7f610496dabc95baac5387d472ef":0,"fed6c2f299a16b244340a5293dd14550dc858c7d":0,"d9efa5c5aae32b843122fc9c6821d022bb4721a6":0,"a3d227d33acced7be134edb8b7d16ba9fd3b3308":0,"5df3b899eb4cb10b406927ee9f0783a361892ac7":0,"7a12bf8f91ac67004f75dc3f08314e3d860aec8b":0,"2c907b1584647984b6ef6a3a8a086153414635f8":0,"2d05abaa08a5f149be00373c0ed4757463afa0e1":85,"750874e755df6b8d9eafe13872dd9ea3218ff83a":5,"f878b94b4c77a0a7a5d71c07479c8a1cbd39d782":0,"6cc60197b3f3a5636888d650335cf0f6a72e8a4a":0,"bab30c9261999de2d4110e25b05065c3aafbf2a7":0,"bcdc4d9a2e257975d68f5821bf72572ebeb88563":0,"3b040ebfe8dece3d6f22cd70aee2e0e2a5377841":0,"9945695129b5f44bd4ab67d13e0e43a7d31ebd42":557,"068c086ea19d022c4171162621419dc3c8b777ab":378,"8b5958aa4399391cf4071ea12fa1d33a00ed9923":233,"f57ff6c5fa140f1ba33ba39b5ad0c80c477fd19b":33,"6edd8ebadb42e03a2de2b49f82139b147eb733d4":7,"2e95318d914316512921eecf5413c35a5812e5e5":118,"314e0edb083e185f22c287745442d20f81955be6":146,"e81f1c0b5f4fac0836dda5ecb073ec5a2818578f":157,"8b5583a2ba9a78e8bab03267e7075009aec1f99c":143,"10b739a39be3db972f5a4a5052085d05deba3cef":350,"78a20ae9533d40f3feac007d4ee8d75bba584b18":23,"5d336e5255eeb59373849e70dd5121d38acb3d14":41,"b5d6c9116a2d40937825ac0a574768a6252bc22b":117,"9e464eb3122f2912e5286916208e6db1a4764bc7":86,"9c09b44a245565b936f9ecc6838726f49f9d01f6":0,"27f30bb57d26553bf7c947da3a971c307435286e":290,"4dbc37bd03cebba6ce6415c2dd1249c19cceae2f":21,"1697df226c5c8e07e0ea1f1b4c92fff635eab61f":195,"7a50dda352e1a51274fe5c7cb1a0b8b48a278a19":0,"32e61b937f309d504efa9f95e395a4c9deb0e473":854,"40f6e34cda52b0512beb44a5edaa9f546170edc6":90,"f6072b15b28f26d7ee1640b3255055bdc756ceab":446,"44f84885a84c24203b1d5c52219e41f8ce0b2100":0,"2b4e4e33426e93bf6f0e64100d92434341b18dd2":0,"1429d2aeeb53165a6e8b0ad0d2cfc626733ff062":80,"f8fce48848ba0587d2dd4d5355a000a782ffdca3":0,"01d09cdf48db72e9496f5799e87be52d2a596332":1642,"9c7ed0bcbe7df02411d5b82211b4872b426ee205":94,"24e67638284b257dd7be32efaf501db02c0e6622":52,"0a1fc261162b677d8237f8783ae3b2d8c44958f0":10,"6774ed4ed5c0d4f7eefd2b377210de44040effb2":0,"95ee515d2b711b5b22d54ca8036d5e84aab36414":287,"abcba781adc46b9d746f7b54234752a98892bea4":0,"b9dfcb1935537b7f22c7407c0f34b96d2af8eaa7":288,"b2869b52e5ee61a2d26ec452a26552bccc2d9c36":437,"ea4c4b2d4a2ec28e093301f808b50a3261370fa2":60,"82ad90267ae24d10d5313bb5495d3a7c27762e76":0,"0b89d3b93ec8ac3a76558b8fc5f6ec4bf4a68532":278,"406a654b24410ff1da5f31f34c2349e787f3559c":105,"1bf251c5cafabe258d64b27135552e29de1a7aae":262,"c689d964640bcda5272f1fd9d7f353cdfe430652":168,"add226101b74ce160012a3f26eea898ed05e92ee":317,"e72f1504039f108224dcefcc02ba2fd2bdd1b7b6":289,"6d1258ea332a3104c4a4754ff58d7b0ab6fc4a52":196,"7c8cef6fa1b3cd486069e244ac2831d5a5a0017e":229,"4c47156fdc8cf2c27c8b33364ae7a556d671249c":538,"de21b637ba8f13f7b4bf76d1ae7034b5ff813710":0,"139f85c386c50b1c345776852f98de487252c1b8":165,"8f7b34abe16fb459e0bf1c04747d584216dfe32e":0,"7c90f432f9ee925c14b6f1063689cba752c79770":120,"bb16a674c83134131b28e5ba72ba2365cb695b51":418,"310c11e8b89f6074296dc091a0a353ed3ac400b8":0,"37e174f7b1efc1a3fc10bad8eb4e182412ee9125":747,"f2eaca2499a7a9dd84131ace16c3d70b2c89b197":241,"644d5775e6bdb763312fda706bc39243607656cd":484,"9f80fd4124ad269609d14e6996891beac07d6db1":343,"80476ed5c961aaff14ca9c63e496d1c89300b797":838,"4d2cfdf7b850d5173e5c4a1f12cc2831e7fc6b00":815,"c09993bef85f3f23e4a3c0e26a7407328256dcbf":211,"6420d7c019ff4a33e3fa6a766480493e56cf4167":509,"d98069bc05daf02fe38231cea04614563712de9a":898,"880a906148bb7ca3d1e0891fd8f5255070c78fab":659,"0d27657ac1b112110f0559b7ddb16995c1c9d6bf":421,"e70a65af2db2524312d747330ed4abea4d9d8d76":794,"9b3393049d88a29feaf1624ce1097b5587d62479":857,"2ea69c91f6f4ad4a4bbe816e2e21b5ee3676910d":923,"3e2bb873917c3a23f2b1dd2ded5762bfda8de247":616,"abf3d76ce5aab9ac75ca9ff37104778e822e620c":1117,"da5f4b41575c67a2f777de98711b60217f2b0373":936,"9853afb12c5e12ad1cb591f38b6021314d0ddccb":520,"db5f3a3a91e708d7c8a4febada6ad6c92590e020":0,"ea9c16b0dd594e0708bd2013b3fc5e923e6095b2":272,"51dea69d4cdf44dabda001ec114fa1494e39a366":501,"d2ff5a0b48a116ba629c7f35a863d0543f5c9b08":461,"82a6236f4cbee6281d3f5825c173bcfad974b287":165,"46bc145affe7405e3bfa14b37e60f045f9242193":0,"2709f950a79de45cbab745ad979e14bf0dc32c49":567,"5c97b0f0725e7decc90ddd61d8c4c09c7bd055c0":0,"fef8861f96b6f6a63072f312a73151b638eaba8e":453,"3b1e9e877d07eed64aefc3d0566fb48af0cf8728":305,"0741ace3b46bc310f8213ae3b9b41fe91541f399":325,"7228b543a86f0ffbc329377283b0a6a224497d6e":236,"15bc0c4e8269aee82d0a0a1e1092fb9f13611c54":542,"e83178e0b3007b72a526f9531fbb31b3e7373e22":585,"454c6b4226277cb61ae103683ca5d7fe639c07d0":680,"f7c56ca4d8b29469730457f3d8f8bf775a829df3":544,"81dc2db415aad75840c3734fcc4aae70792fb5ce":781,"6e8f687db898c172dddc37277c32a56d73346310":349,"fbff5f823c647eeff391193283cf40f14a8c45bb":571,"4e8afd57d64446ef0c6f919fd307ac8d45edcb9d":614,"6b8173af43933eaaa2abc57c356211ec88d295a3":223,"da2a25f97bb0403c6108a644bdcc38340655964a":247,"7756debd9e02f22ab9f011fd4cf24e49823ef835":232,"15c7b207c534821d63d8316d57f4a9911d3c0d41":173,"7ed7019ad2a2cc0a2176523bc3787e04f20ee2dc":206,"b6c0be6b0b67d6dd9e8afd3989a3f6a9bb329584":203,"f07419adb110fa2d0bb9ad620516c13a6adbe3a5":281,"58d915d912d3deca6e0028bf3e9b6855f6c591e6":415,"d8c8d40ad3c81cec67eda2289f4b1ef9d562f1d2":517,"e79e4a07260d1810d172c4cfc5057dc99c1c9824":192,"173b0ca0f251a9f3b6b2018411aff6b81eccd77c":260,"e48a88b23d1f1faff2d38d223db02b1b2c58fdba":216,"79deec05ffa16f9919428b74b0455b64eea96ba2":178,"7dfa8bb066d731f1e88baf75fff1c80235024af5":300,"6975b080dc7937ace9d87c0c6b3487ac638108f0":456,"1216e112580e9187caff11ff60ec540aa2b8487e":207,"292454a8ae7af32792eff4464309996d51320ed0":414,"c200c04d00a1490485dde662fa347003603307ee":271,"5c2b719df23d48ea37e0b62afd35cd462fa77415":130,"83cf47c3d9783e6b1fc1e714023549e8b57db716":648,"c7648224621264fe82888be75ab955616e3e6ae0":191,"64c62d12e2914a2502f321dbe0cc0aadaff3fb37":116,"a50967ca4c9a6eedcec7e3566499e4083dab7755":135,"857b608e0b471005864d65bbcfd6a42a562f4f13":403,"0882675d42edab46deb7d9a645e99391e6cc6337":621,"c36e73f72fc4ec7b327b44db9b1c3b371b3bbbc2":197,"8acc76dd7b8d8817fcf980c9d8056749f2e3702c":183,"a231c9d825291607186fa5a155daada344cf8971":323,"8dc524c5da729720de0f62f5392e2549f2e02704":125,"94d554d858ad3b9a2948e8c8d190981e5cd11672":221,"3e9849fa23c0c283a0279c5f2b7986fb3a8550f4":233,"b340cabcb2c344f10e7afeea10bb40dd0ddbc932":279,"c553a834390320947b411001db4150b2f235466a":293,"fdd245edcf54430fb7b89a237ce0b6deb1446e90":316,"919ccf64f5470eef883fe5b73b691943baef31ac":345,"ffe99fdee833435442a5ff506259f68cae872c39":125,"1e55313972798474fff160186781082580762f15":189,"db92ba9de824a86c585a4cbf91f8a525c3a5a0fd":0,"b8be652d47fc46bdbf9a908ad198359e2cad8a9d":616,"b4f989795353afdd08a0231f6b5699d445313567":443,"ba8cfa7ddfe8a72df551eebbf999e6a0c539718e":130,"a85af93211550b932a54cdf163c96e1294ecca80":101,"de38b88625e1e86e74dded4c6ccad3ae9fa7c256":424,"8de8dcb87d1ace7004b64c2db14038e763d6afae":256,"3efb0327ee47545038c7eed1f1c131911b0d2a94":98,"d3972752a4256f6475d0c4ef0d8f0c63bd76dab3":165,"678a7679bf7a87856ebd4adaf8cb3e2cadf6c591":140,"4c90a74fb6b5a49c406a40cc2e5f277621ac763b":0,"8a885a25d0e7d9b2de41c07cbad194f47a708e3b":260,"4d4a376ec008c12290e6db2f3721fd1e05608d3c":269,"adb6e0d431b3a51bc8bb9c75dbd08a9a231ea3b4":175,"1867c5d9e7acd7f13942a69ffbb5a6b395afb5a4":62,"c27d2d2fd4cd2bb7ac089a7884a353519e278ec5":408,"8e7c55837f3eafdbfed0220f818f313aee5ee3b5":229,"ce0e191d793295815f7b6658dc2a66dd4a79f8c7":246,"587cc7d314c0f15be33a43c616492de0de0c3a9f":323,"ac9efed1c0854c5fe1a3aa699334c5d0878da0e5":128,"18b5b97b1822ec54e658a9e87bc438f76e699bf5":520,"d7df858ad35f68a7ebf6d36699527d9abd3fcd55":187,"7cd62e10edd20c5fec73241869c902771035e24b":175,"b7c9932c728b8c7a8f116da800916e4e4932d71f":545,"08fdccfbe9741d5c843274bdd05795bffafef9f7":384,"02dda9454a6622397737972bcc23c5409214e842":283,"c1ad2b37835a79da892a2bc3837ee6b91258c2cf":235,"513f4078beef3be236f7c72fa9f15cb7357a3088":532,"96e74634c5420b1f1478d242f6322146300ab90a":282,"d7b013dd595fc64b5ab7921a8b08391da0cd8913":993,"04ee7dfd41451370c87ed489093e2552ccf9badc":0,"84809552594ffeb027828f99cf5cfee0b0ee3197":170,"44788fdeea38337b8dcde8ee50a5e84000d1a672":81,"10c3df74af5fd6b34797985e42e0482a7e3d0b9d":494,"2d6a1b3c998ecf03cea7ad8ef17d04f97bb1bc74":226,"1599c6e0d91b18960df394fd325138dc7097ec15":0,"16a1cf968ef91cc00cc34914070184392a829413":57,"1132a5dcd05c4a06f32c6d34c68d003460c868c5":203,"d38495a1478add23ad7f2cd6b9b9ae60b956ac0f":62,"c7dfcbfce72f2ac42a5143f73366c7feceb216ce":123,"953851cf4281cf1b5342b740b588bc2c05197d10":107,"205e2611c853734d2a0b166b9a12c05d8944e801":68,"fe8ee7713aff634ea528b6772ffb8938acab559c":177,"c547e5026e4592a0281444441e0f98bb877559e2":103,"306ae93592b60ecd0aaf4dfc9a01e61fbb75c205":222,"3d939cbe0afa360ad05285b5d2d4910d26034f5c":0,"42e1504c7848a8b397c93d3c9d9af30f9bbb8eb0":73,"4125ef1158ade48017b9926f52407255b7f53067":659,"ca64f5264bd309c1b4537d2eb8169f1c7fcfa566":162,"72311765c7eb920ea25294c4a8b69f7fc5a1f4a0":197,"a8f162d0326def3e71e90efd9d574017bd09e142":21,"76fafe0d6f1894430efd16dddbaf99570a572e64":0,"5311e47d4c1080f07faf3f1d4e39383a4fef1f55":139,"8282370d8bea4e4a13a71f8cf79ac861740672ea":0,"2a0acb56144841be65067a8c5635748c90251168":312,"c2a2348492077ce7c2eb3c70ef4c849dcc9e7e37":470,"5804d7e77b423f6dd22218adcba370d2ea0c7c9c":204,"8b85b6ad69fc9279f9c6448d157de88093081628":0,"c097c6e48a7410b678953941e7a068de5e872ec4":443,"f369cc36edaba815d3e6f004dde02290e94ddd2d":0,"1157da2fbab55806166364971f1944d27c1ec8dc":300,"c0f99654e55dcef34c855d7525ac987c66918953":0,"0998e513691d8491d173cacc0c27d2ff45c67242":253,"ea5f088fd4a3dbffc2a152550c06e708d0ef581c":0,"8f7dc64c13985d5d4bbe90fa72ecc1a51f78b456":477,"6d5ae86c130f96624e2ca2d797fa3b853c210b9d":0,"c3276130ad27e98e40a4f0cb06a3dcadceef9bf8":1258,"e2a2c6178ff801e582c3a079f5e51021f396a345":169,"b647cf599b4396dfd10829ea3c3225ffcbbed044":0,"2ba8b6ae12f0402db1be919785f0fb8af4ae4d3e":25,"c892fcb591034ce5926080310dd55f2186794385":926,"90b3dba4a499548b381c79bd67a5464eac54e4db":0,"e3a12cfa5ea248141125bba842476f87f41c2da3":1315,"3f5f9e7e5f76bdcd9fa5722cc7b094d7e88c1724":189,"288033668f0425ab0547f420dd647c14bd186c7f":0,"09902852b3ca84c5d2b11d79d10ec9a15790d40e":144,"34876c943cfdc7d51965f5899c60bdaa9ea3f593":184,"6e8f9d03f509c59937ca686eece546b0f379b301":191,"d94049d03e3ec21a90253c9a619598211157f00b":0,"95b0cd09652ac14b2806c12c01af7262ae125313":0,"5b82797329de9530a0eedc189582be65b0435d03":1061,"99c69508f30382aa7a4a615d1af9827dbd31aea5":211,"f610736b25fef9c5c47e84bb699ef4910244c305":0,"fcea0bfe69fbc2472dc170568adeb47b3956e69c":296,"c564e7ce67948311f5881ac363f467e40cc4a28f":168,"0a0d727f1a9aa30c96c34adecd5de1d597698428":149,"bbe30fa299c4f82251233f25b8a0c5c56e2d407a":0,"e039e2162bec82d8c19139ff4a82acd07a0ba9ef":14,"409103fa699add738c7633363fe78da38d619abc":0,"4301ca1092fb3ae3a7bf3a5e1c37146f2895c9e7":1010,"65c02c932cb53678028cac45e0f02f7cecc9ff55":0,"8f37125471871ba21fcea64193bf50d7fa403f17":241,"464b2a53fe951a9b8e60e428a93685acad79844c":0,"7fc2d3ba1a838c8aa62b90982e6cd5c708cb43a8":0,"2f0e3083dcc17e8fab4343e40a55ecf7c362fe11":78,"3416524a6d3ee6f120364d536c7505e9dd5071db":322,"51733f05a2c65587c307a225f83956d987de8d49":0,"308da3adccee3c92b50db66224d4f8490b5d0646":229,"403d3c85a73952cac29c706224e3b4e0e9238caa":0,"c1a63cfe0a023d20d7f4d43b677cbc00dfa25bad":948,"f363978d475729c3405f62e39af3e96604cc19c8":0,"7545f238ab7c63c575bfa47cec6fb1b52514a168":0,"e71a9eabfc889c198195b75d8aa552c1599e4832":0,"fafca1f120e2fb366a1f848c70d3696f776e2cea":339,"526da051d174eeb1339779d5e8272734f2e09d27":0,"23b511f4d1e1420a501ffef0527cb2d3730d189e":2283,"1a8d68a81e5f2e0ac9943e6fd7c9a00da6d3087a":0,"970c45728a06261043bc846b700164f3a54231bc":0,"8513bfadfc4eb744d790c171eaa23e5474cfa05d":302,"fae5690ab3762250a0645e3d34b797939cc06b44":0,"264b7fb224aa5e9378be14e06605b4e7f215e58d":0,"cdae43812d1ac145297727c3c55898e4243399e3":625,"2e9af12a89b122ba6ea6878c883bd169f6a86edd":1368,"f2ec2db81180b8717e596b192770b82865470a4d":0,"7bfc2e67924588e2da0ad157b4968ffd7a2cfbc5":818,"2989a40706b8238e3a92f118240cef7ac90a1dd1":0,"abc3196d8c1aac1fd9d639fb9abd09b257373072":838,"97bbd18284cdc1f0fdf9f34a378abc0a65d5542d":471,"e1fca27935f2f591c610c1b16bcecd8c92aecfbe":0,"ba8cc88d5881cbc0a4993a8e6adcda92481a2e25":621,"c68a6232c0a3fce48e202c51c8b22dc987b9d771":0,"dd92f965c615bd236eb91228261b4619d0c3b800":0,"166327dbdba0a647429723da912542b771c6666b":526,"1c59804a968b27ee600c57ffb558b0f7ed9b8cb5":0,"efaf3eb380d308d435ed2e88cc400d837dd5fa41":502,"2f66d618a11fc6fd2154c50fe4db3dda396e03ae":0,"fb3a65a71283f4abe3be80b1340f8832621a5acf":395,"1e986cdf17563b97a9fa43c1d4c0e70290e86138":0,"7a2642e54eac95e8dab388219245990f9c433187":233,"c9aecd87b9c79706cb091a48e6025bc7aaff5103":0,"fe2b999950490fdfaeccc9668d921de169befd4c":278,"2960460199715c45324189f2a574a9925e4c3947":0,"3060d23caf6d47bdffa581a8228672f0de6976a3":1037,"8c16e6c1ef892b87e6db64f6a86611a9ff0e46a8":0,"f7aff8b6712663ad1886474285f707db006ffbc8":528,"8ba0db46d48114db21d534f9c4ce04d43b8be1cb":0,"565138ba453e56da45101763675973574faddc6c":371,"8fa82beb763defde74c9a0ed139692206e53054a":0,"78fbd2d57a21515d8ae3330b1b251310a0909ed5":0,"2875921fb81cbdd23da78c51bcc1e71fd4d14c09":166,"d71d46b693d7b002c9d521377d0c97f764c2ede2":0,"3bba59d61395cae88c1e1622d3de9802d2fda39a":194,"4a1cd332464609d03e2da9e620f34a2d97f7c9ee":0,"57756d6af31daf15d70fa096dd129cc6a29696e8":368,"620e5ae3bf3444c0645410a6ac91233ba7ea905c":0,"599b0e694401de0a8537049de7bd04898a662ca3":0,"cd9405fa87f9b05662b1393a49e43f04d18c36ed":256,"99090c4cc5e4e1541a3ab91bfac5d420c3e40f8c":0,"306cb3cb66596c5627f319bb26e280a4f8a8559c":259,"18de48bfec93a7b3df837c1f52c5402eab1a805e":0,"ce01c176a6ceeaa8553887e02f03e62a6532dd58":0,"b0c84f59b59d02781fc6c4624d643fe98e8b841c":272,"a57c8f014e99e2862e38d2bf696ab5b8ea28f0c3":428,"002850eada89f8307fd39420069062c36deb3fe2":0,"014fc7bc7b03c80a1fe6b4083aaa1d5a818c44bb":1567,"03d88b8e0f6eabbc368d7b950667696b04afed40":0,"ab8edfe1d9ebe7eb20b9c319b16dc6a4289e1641":511,"6cc7d9352b4b0023d71bc3db8eb4d4f2171273f3":0,"59816038389c1259f62f4dee49bb4550e590fc0c":182,"fbe14dee0ab6666b9e36a15781f4e955fba48382":0,"c9731673d075538d1779e0406a7506ed22a0004f":846,"31a2d3d9736b194aada5fc97e44533e8c9a2a04d":0,"cf430bc48abe0eb5a47c901a5200eb27efe24bbc":818,"c6f8016dac5e27fc99cbf16630c332a8338456a0":0,"b5194b4fd86ec34010b4f0214150961e7dbaf71b":38,"85b0953462d1dc48b77103cc21a92edc42c0c65b":520,"b07c6d11b3451d0896b533a1a04955cddb89c326":207,"c298e1e5941b2f368a06558e8e05808b00a02eef":0,"365991ad73a3e43e05caa55d99bd350c88eb0174":0,"c497fc8b73cef870bd2908ff8532c7ae7792e823":484,"c6fd47c6e962096a4f9797fd3c84173789ef15ff":0,"6fcbfdbfda598c4f74fcf626487e90e62aa1b46e":0,"a7b3f6d4defee448387379b372bb4b9e23b5af21":1732,"49e47afdd39ac77d7366015c0e08cf3f6f829b15":15485,"0ebce63d87f6babf931fe9f81dcfacd823b4b4ce":309,"a8938dcc05ece9629469af10f7cd719db858604a":0,"dea6d95f2fbdfa70a255f6da596e0c29ecf59d07":83,"734bd55166e40b9b70c4dc256627f920e74f189b":190,"3917f390d3451697268e8202a37c6cc1c6c518d8":79,"444c9665f61a9a8f121b0f628056b3c5d473da31":57,"36a3c1831c9ee13016fa34856532a84329f3d516":0,"d372157b1554f901835f93d9f0555cea2458d491":0,"a1ca50f82b8dca48e76f1839cc70491321977d6a":98,"63006e5ad27d0c7591e87aa2d95f32f0dd909be5":0,"687cccfb4efc573fa28160f5a59742976eeb2093":0,"8064b5d91c1d5fe9be585c6dee9bf510926b3d3c":370,"fe819a24217326c4610586b18076e01ffed32d94":0,"a2d59d7db11f0b9c42ae627674d411917889f282":439,"be0b4cdd9e6e2ffcbc89c34fdc9f67f3cd4c3fe6":179,"fb3bcc95a3eae338c204797802e7ea1e396c61d2":0,"6f12f84e4a9431e78418ec4f1a51b1af88d2e4b4":262,"b4e28a0aece784bc4128a942e37c4662f2eb8c97":0,"7a15bb6dff8f005da01e49fbea71ebac455e4f7c":0,"2ce3ac5927240054f24cbc047ba6fed08dd2d828":435,"0aa8980cdfdff27af476e81def51a4c09954da02":0,"a4c793bf2b22b1083202fd0f279fc220fd4a558c":154,"f748af8338a6a6ec3d0e82c71cd5210df7421fe4":0,"6a83e35b0418402a41928ebb2355c3a831c96ec5":0,"b4461a19d285830eda8614855e8e5c9721d6d627":223,"7eeee2aec81266785e813e471010bca6b3e74811":0,"abeb004ee817bccac99358e778733faf160f6f16":399,"ad761c16aebc94f92dd7cb2bfcd09325fd1160d4":0,"fc20ce73931154927317422049fecc17065203e1":234,"03bdf84e669acd939df33d2e2935e56ef1cc9951":29,"8b763fecac72264fba5cc90391687f1d474c30b0":0,"d1280ced500ea8dd2794ee6bf5ee35b6f28f06ea":466,"de0a67e5cf63c49930b79777ba2c314d58060e77":0,"084a07947a0b4ec899a12757b05b20ff5f92cd33":170,"839110ce0ace4e99d795bbdded974717099eb3ed":0,"014aaac454ef9af61818fecd56f0611df5d0dd37":6,"5d62058c2f8a538b38a2e05951fa831d3d975ad6":148,"ae17a3ad441b6d20a3c89f8d01b040cf0cb0328c":134,"6f25082d7fc2f08b5cdd0901d3cf91d557b9aa94":91,"f762dbe5dc259d6f12bf1320c130e13572ed2a31":24,"3052184a3562f74c874f65b5d02ab1343f57ffc0":0,"e534bb4479508c045c3d0165d8d09de0b4c5b19e":1995,"9a42ffe54f0c2cd4a6be122f779d162a621760a2":0,"93338bcf3057907e87d29e4947e4040ea4917e1b":116,"a77993a92e0e010441274020a35375a1795b8c66":182,"581c50e18f8a3c0920b69b86bd39db01e0ea3883":0,"8d5e7d0de7b901cc3da226f3c2988a85a56c0c3a":187,"bf118f74190e0a8a6eef7756e43390ec8abcff4e":0,"4b5ee4be246d7dc0872ac099777ae5a53ec586e4":324,"5a7770d5c19b1d109e6451dd2ddc1d31f649ca5b":0,"e4b6f072393ff9b9190dd96f5c3b7f2adb980412":199,"b4766fd1a96d25f67346566e4033b4dafb93ddd8":0,"f92b01b33ea18da186306de0e297a975913eae57":0,"d437719ba3c217bdb05cbf3b4b5945199e4b35ad":491,"e0abe0254bfdb32b8b47e24b7360d5cc151158a9":0,"c04d061bfa4c9f292d0571efaa5c5998725e2d6b":344,"ed74c1cd9ff5521fd3217bc86ae5c99dcc0ed950":260,"704eb51d668794268c3ce6f60aaada5c5141adf4":239,"0e0833ac04f0044b810bf8f427a39205f596c844":0,"af2c03b73c803436edbd629895dbcf6667b86db7":290,"bab26b5106d46099dbe93bba6145e2efcf809e81":0,"24d503b5efc91767039e5490fc4496c2d2023a3c":0,"12b85f213b16b69217e5c010f6fbe243a90b1ad4":383,"50242d726cebfcc94832cdb40fb78bd3a96617ad":172,"dc7f3fb124dba5b4291933aed880b5f14f45b698":0,"4f5e517a4f82cef21883b9bd07196f9e705c2c5f":216,"9a8b8cc75ac3c17f1f97b85b84774dfaaa48be40":0,"f9e7a296b1804ae0ff75b177865b8a150b00fb07":63,"a27b77e3441496f9b30aa97406d8444cf1a99639":0,"80de71969ad857a01ebaa07c2e11f56c58d148e4":550,"8770caa72a3021aab07db4beb103b7acc6262c97":523,"84b56ec41bf6887b8a14dd840423c38c382a143c":261,"21960e64f1424c7574969f3318de0a3f0cf08dc3":452,"8a2879a66de6621c53b31bcb78bcc88f5fe6dfd4":0,"699ed1383d75bcebba35df843ec0c22106bdf8c3":0,"5442137479bf031cfe0e41c030c66519d4bd093c":0,"e1a890fff8fd4e086cbfbda4da07c3ff038dff60":0,"3c303169133de4ea0f087b2a568d2306d5ddaf17":191,"8517d040cd7284a61b9a70f3be1caf4b81aeb030":0,"e75e48c70f53811e33f8e85a78d0cded7718df70":1,"9b05698ac52fe2c1225d60ecdf57ef61a35b5c29":55,"14ddcfe9becfa37c93e8839498ad4ea78531aa76":0,"0389863bfc9d330d4e52697e1ba070431f48a00a":469,"6a7ec7884cfc84275f19b96705c3590f4b0a08ab":0,"829279282ac32cf7b035d208b34bf78fe6752e75":0,"a793458145a32475bcba9278ab330a35b1f099b0":221,"f2755f5b8dbe4a5452f420bf305cdd920911c739":0,"601ae435873bec3894823fee6ee8905ac2f9833a":0,"438ae7a207909d070978745e90e7b51e4d7f0cb3":91,"85ca4bc6aa519fbd7489f85947e5b0181a26a582":156,"4323925f322c47561ca8c9ef2f7fb2fea39d88e5":366,"cf2ba0bae84ddeb6b9b652c9bf474a6c5d05cc6e":443,"a4f394328a391e7b4d1599116939597d7b8e045f":62,"d8406dab4c92b8cf1ba903c09593572c8134148d":964,"3384446561146607e52bf62c08ae6c4d3d2722f9":261,"a9e24e661d7808084587bb83139a5de3402c5f42":0,"7f180147426df63a80acab540efc2d134675f9a7":0,"9fd7151a5173e357a4c9245dd4ee65252aef1a93":162,"726b742e261d3c44113d5c3949d5672429dbb3ee":9,"1aa0412d0c2a5fda0d4642b019df2e78cfe4f48c":90,"31645e19c6bb748f95534780aa8d6297800baac1":67,"f6b4d8269302e805765d7506ae363171f3a4fc82":0,"d4b63ebd2022263d6cd5d64b0515c0f32cb62a89":110,"bfbcea104efa7050428711eecdf264135a51ea77":332,"9035bf2787b085ea5923e5226731f331048e3f8f":0,"9a34807310e3fcaea0cf11505aaa91b00705260f":111,"983779f1093ecae6982973443a55cdc181abf90b":0,"80965eadd753df5150f3d049e69d5f9c80599fda":150,"f7722e93db9ef2e518e38c0c027ec303f5d5aa7a":1065,"4d361c67fd20a2b8b0774f6d559c4af075299a3d":0,"448ac237317cdc9cd082ab8300753c3838f1b03b":17,"7c3a9f2e1b89e9cca3d0ecc0bf64145f7626dde1":514,"981c9029b6decb6507a5277a3b17b932c5594e4a":133,"e7aebff3f0929ecd83444f29d679bbe4237522ab":160,"8f624ccb1e709b73aa88a52d007957b9ee0a8926":0,"4fea5bb8858ba46ff7ebcc449789b9768b22131a":73,"6acdd7461de6c0ddf4f474eb9b2434acaf93c37c":156,"738dbea0c8eadfdc8e372a3577f58afbaada8f13":974,"9a463392fe4c073454fc8651d1a43fce5c636bc5":0,"8bd5d22dbdf012db74244cbfe6c86b64cfde142d":194,"b7729d8d4ce9792ce8ffeef8e2750847be26584a":102,"b6810fb527192d1cb151f2c933608f4da49314ff":0,"79420ab74868241e5ddf9cc5782ba736017a46c2":360,"263954ba7a5c045753920e47685f5e946620272a":104,"44d3dba67cb4016c263489f36bbbfd10f38a6a01":0,"b481642c5280a22e2b64439eb8f2fd458a403b4a":113,"49a2eb3a41f7d73486ef8dabea40bbf74a34e1f3":86,"539b268c40a19d339fe0c69fce01780f7b97a5b7":403,"2af81ed0447f30e003d353af48afee7ff76b7581":0,"e1125cfd9b687e849741a2fecf19051f0c192df2":514,"6dba1240a2742e2bd7e19a4b828791f23b491fe9":0,"f817f6fc99cf7d8354f12767742850fb1ec5217a":5890,"45087a34544df75a674166715263adff23d04df0":831,"fa390e323280f246f76439e55dcb5267c0d47622":269,"af0fe6687bf88c0aa2f47a49cfbe1b0b74b13658":547,"b3cfdc61bf46e3f6fa22972fd6254a9bb9e3c919":0,"96980024033c5c99d73ffe35e6046a06836562d7":5,"ea17d8112619d0c71d1faa17fb690dc2bf72377b":0,"414a16a5e00ef2a742ca4196d32083b0153db8df":634,"ef3cd272e5b98e1fc21ec01fc6a441adf695ef70":0,"12fa0c801ddfb28a9d212f133bbf8671696cf613":105,"fe3dbfa3a92922e7a55c12613a20fe98b3ee0454":33,"1dd260206453669487e293d5ca11bd36d81694c4":356,"a969633128f515af9294a273854f47815417614e":0,"1e51d99a5aa3b6ba707be330c8e6464c3ae4a913":1456,"4affec989395e2abdebc50e9b104cd86874909ef":1608,"67f8ffbb9d6fa152c711be820a2d54238b9f0c85":74,"eaa97bf4916f551fb83f31d398be26de228dc2d0":0,"8421754a963c4f23cc16be5f7b728adfbd103e6e":458,"42315f3042617d1bec7ae155ea0c9ecbc2fc7b8f":279,"16a0c14c5cc93b991fe8a6a8a4fb9093a7fbf19e":0,"6720542baf134c9828292b007f7b518f77441a44":275,"a81dd5ab15024946ca30ccb3f8333ea1b7a97f27":402,"8f93271d83e2822a4446ad8a28867cbc14b88380":0,"96a54d26967734c9f6f810a41f167534777a7fc8":218,"32112d9f0a346d808257d3494b6358f1fe0a704e":0,"6be3a5ea0af5fd491c0d6d795f8a9409144e9253":275,"fd6062d8af96148dd879b638286b0104185336f1":219,"be991f5c25426992427a2514d8c5d71c393c3c9c":0,"f93c43793870943f7c2223727a7a032db1d6414f":218,"e6cd50a5536a31c8c91428a309350bdd36653f92":0,"ed765441374087a782063e5b237c69fa107c09d1":384,"6bf5545b20a4273c5367cffe55891a7d07d65c43":0,"5ff249a4b8d07b5c921ea9b40ed97453ec949270":402,"294c21979f407985a145abfbea701be29626ed37":0,"c808a3c648ac4011efad8314979e0b125482d13c":196,"603daa069d77ef96b442f8a2307d1e8137514f17":0,"398ba2e1ef0b6a6a2bf6003e0df1bd3a91ca5676":1524,"2e256997b9a695ff3ea9e70b1b90959de057dac5":551,"545df63de1ab20600a529b3a1500ec1a98a2c6a7":0,"42980eb74bebd4529a2481ad55b83a079b3f1298":138,"cfba8ad34172344988202a651120858683873e2d":0,"903e016cd3e9f748aa6b3da0c9f2053ab5381b67":267,"b0485ffa84396894adcce07e38a87c2a2f9d54ac":315,"d8dc3a916d633a3158776120ca896e2dabf61ae9":0,"5609ef950b4c74ca34d1fdba3b7a215f89b2db2a":208,"7681f3b9088ec55954a34547e35b8be7c3880bc4":0,"aca7b317b4bef04c8b934b83c6c8515233e88a48":211,"01282854fbbf75e5f2a752016c149ac38a1d302c":1388,"2d46726123314813cf9d8738e8f9c95e7e9ff154":436,"0eb8a080bb5f324d6cc26ca28112dffbcaf42870":0,"9c952f5a69da346c1255037025fa06f3fb8abbca":827,"17af90a0ae3e6083a2ba35b48c3aa934f5e9e1a6":0,"32c0b5d099f1c627cef649cfab943c58bf572525":161,"d82a95fbc227d4ae080babf8a305e84ab0c625cc":357,"3c81e7632a9db93285078b39ead64c60689a74e4":0,"3c8e8c994147625541fd5d86943992cf3776fc15":294,"c55219dcee2012504014c9ffa9ad5a40d245e6ed":0,"71d13fd1842baf20ee6d24136899bbfd8c146ec5":480,"aeecf7b22f91e466026f4063ba60bb82cdc0d780":395,"ea7051cb46c4cee18a44d609f9ca4c69bcc05cf9":136,"23b55455d2c5444c4fefdcc24db2141c60704f89":0,"db1fd3bc897e02905d7524f7311daf41f877060a":0,"cb285633def903023100c69d32346375c17c7a56":552,"cd8688250f2ba5c320205bce735177eac1e11cf4":703,"d2c0cf6de4090d34d67cc9cd50d36a641d525406":0,"6b804b63a8db3af4d748a4cf0c836781142c233e":202,"0cb4eb882824dc04ba1b51259a8dd86df0fff140":89,"c0f7b72775edf8083614ecf14add698ae5470818":0,"447a49ccd4c7c51e013884056b3803332b587d71":537,"ac65096c59e16abcfc0376319467549fe52897f0":0,"90c8a50b3e8462190b24cc2fdfd329e012771d43":388,"5eb8f26a28bcb3296e6f5f434c916476009d5822":113,"e6106dcade85af72bc76eb2840d7e248be79f263":145,"a5733256abbdcdc72b99ca340445155012b88ff6":442,"b37b7857b42c74a2bc0a10efbd0ceee7f03ab6fa":396,"be4e5e377988c568025070e7bd85d3bd74f41b12":296,"5be2f666a8a4e386cebf88521a222034f8505c6a":0,"fe8ef025ae406c987d9068ee8b9a3187cb236903":1233,"aa5944c04bd2c0e8cb2d370ae662bb7b3fb6040a":533,"d0a0541ffa5634d3421852766128c72da32b07e6":0,"72f5f559707780bec058b04bdd4b16fb801a2e8a":21,"4cf4b1d8890be2a74b06e32b1bbf3bbcbc5194c7":0,"937a2f10fe3278179b21cdd5a4831ec5cd1ac77d":384,"82a0ccf589f9c1ba815c9d1dc65653f0c3295855":0,"1c9cd4ad90143075e82c08219f5889a3325be982":135,"dc7ae13379c51a6d3d1314c1c5893f6e7a11896e":201,"03da533bfc0356fc96bd75427a7c7d7925ecca07":0,"09d560131bf5baa8d574b236412fd7c89a322cd1":209,"e0faaaa64c17f57836b1539e3e1c2adce5c78d1d":48,"92c401c0683814ed066de27816c7462c33a596a9":0,"46c6ee623e000cb9d2bd5308bbf9c466d4e23a74":227,"35c4b3188952a44f136c1f6f986184a10cff88c9":123,"ef97b1aea3eb58820e4a804f51dd73a9503bc39c":464,"f3ae5194967fc344c88b424aa047311b4e905ae9":0,"50c0d379ee197a3d60f9fcbb2cd6aa5dcf20d762":475,"e0d2dbd6ad90c76937ccd56bcaff06e5499dfaf8":0,"738fa13f0d3bbd932be56d477c14b0cd9d016117":508,"b180939570526deb9ec07b5c3a9e52e5c604b568":40,"015fc1741f29f213bf43414fd44d896cbf948ac3":50,"ce34bc0ad8fe60eb6503beffaaeb8d5e649ec765":0,"6d086875f3813ea9fb9d691966dbc8cdaa484d6b":393,"1b25a0e6ea36c2dde07dd28ac27079ab5d6c01bf":0,"1660f739833d3533683173a88feca6e2571b45a5":2032,"db9cc51f75b06b6bf9e20c373371ace74bab2cbd":0,"1b1b6b72ea4ccb1974cfef8afc94779508fdb00b":144,"de95b4ec975786730e7fa99fbd0d55dd35a4d02d":0,"add647389eb4169fa50d115b5c4956e7b42070a1":100,"05c7fb69817cfbaea8aa2e6b5a494a88c303f8c9":38,"eab9c46d3dc917927a50cac6e579b71cd0c8be6e":228,"f7e9140da4c9824595a4e18b4adb2e7544b37d20":260,"19766132495442f4502194e15bd1ae511d044407":0,"8c7cb527df166265cc132b961e5fd9f45eb08476":220,"0924d5f0f571659448fd2a0d26539a848893bb16":38,"07c1af2ed54efbccc60307878e759c881defd6d5":286,"fad0a4f36897f24f7a81859903ccffdf5ff11ad3":0,"aa4271452ff675f0d7b99b707328a94de355c951":109,"dae7d010a2d3352f7b83a020b33970645458488a":138,"eea6882828d0e817c5e2d6efb8b0d0dca8b2f808":130,"dcacf92cd1110c4c636a537bac5c9da5b277800d":0,"9811f30e58c3522a2aeac6aabd883e0996c572f6":186,"30bbeb96a5a18dacdf0b49934397cde6b9283232":0},"tools":{"claude-code":{"name":"Claude Code","commits":1929,"loc":404728,"first_seen":1771199922,"last_seen":1794572094},"openai-codex":{"name":"OpenAI Codex","commits":13,"loc":3540,"first_seen":1772485777,"last_seen":1794325279},"github-copilot":{"name":"GitHub Copilot coding agent","commits":2,"loc":0,"first_seen":1772849740,"last_seen":1772849932}},"monthly":{"2026-02":{"loc":5859,"attributed_loc":2567},"2026-03":{"loc":57683,"attributed_loc":40804},"2026-04":{"loc":74403,"attributed_loc":61135},"2026-05":{"loc":35026,"attributed_loc":7900},"2026-06":{"loc":14187,"attributed_loc":14187},"2026-07":{"loc":39455,"attributed_loc":37608},"2026-08":{"loc":63858,"attributed_loc":62036},"2026-09":{"loc":74931,"attributed_loc":74931},"2026-10":{"loc":73328,"attributed_loc":68622},"2026-11":{"loc":36754,"attributed_loc":36754}}},"error":null},{"analyzer":"ai-artifacts","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"artifacts":30.0,"workflow_agents":4.0,"tools_configured":2.0,"earliest_adoption":1773628941.0},"findings":[],"evidence":[{"kind":"ai-artifact","description":".claude/agents/reviewer.md (claude-code configuration)","ref":".claude/agents/reviewer.md","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/agents/reviewer.md","weight":0.5},{"kind":"ai-artifact","description":".claude/agents/spokesperson.md (claude-code configuration)","ref":".claude/agents/spokesperson.md","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/agents/spokesperson.md","weight":0.5},{"kind":"ai-artifact","description":".claude/commands/benchmark-compare.md (claude-code configuration)","ref":".claude/commands/benchmark-compare.md","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/commands/benchmark-compare.md","weight":0.5},{"kind":"ai-artifact","description":".claude/commands/competitive-compare.md (claude-code configuration)","ref":".claude/commands/competitive-compare.md","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/commands/competitive-compare.md","weight":0.5},{"kind":"ai-artifact","description":".claude/commands/feature.md (claude-code configuration)","ref":".claude/commands/feature.md","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/commands/feature.md","weight":0.5},{"kind":"ai-artifact","description":".claude/commands/fix-issue.md (claude-code configuration)","ref":".claude/commands/fix-issue.md","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/commands/fix-issue.md","weight":0.5},{"kind":"ai-artifact","description":".claude/commands/release.md (claude-code configuration)","ref":".claude/commands/release.md","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/commands/release.md","weight":0.5},{"kind":"ai-artifact","description":".claude/commands/review.md (claude-code configuration)","ref":".claude/commands/review.md","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/commands/review.md","weight":0.5},{"kind":"ai-artifact","description":".claude/commands/triage-issue.md (claude-code configuration)","ref":".claude/commands/triage-issue.md","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/commands/triage-issue.md","weight":0.5},{"kind":"ai-artifact","description":".claude/hooks/_common.py (claude-code configuration)","ref":".claude/hooks/_common.py","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/hooks/_common.py","weight":0.5},{"kind":"ai-artifact","description":".claude/hooks/deny_guard.py (claude-code configuration)","ref":".claude/hooks/deny_guard.py","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/hooks/deny_guard.py","weight":0.5},{"kind":"ai-artifact","description":".claude/hooks/dod_checklist.py (claude-code configuration)","ref":".claude/hooks/dod_checklist.py","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/hooks/dod_checklist.py","weight":0.5},{"kind":"ai-artifact","description":".claude/hooks/pre_commit.py (claude-code configuration)","ref":".claude/hooks/pre_commit.py","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/hooks/pre_commit.py","weight":0.5},{"kind":"ai-artifact","description":".claude/hooks/pre_pr.py (claude-code configuration)","ref":".claude/hooks/pre_pr.py","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/hooks/pre_pr.py","weight":0.5},{"kind":"ai-artifact","description":".claude/hooks/run_full.py (claude-code configuration)","ref":".claude/hooks/run_full.py","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/hooks/run_full.py","weight":0.5},{"kind":"ai-artifact","description":".claude/hooks/surface_guard.py (claude-code configuration)","ref":".claude/hooks/surface_guard.py","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/hooks/surface_guard.py","weight":0.5},{"kind":"ai-artifact","description":".claude/hooks/test_edit_guard.py (claude-code configuration)","ref":".claude/hooks/test_edit_guard.py","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/hooks/test_edit_guard.py","weight":0.5},{"kind":"ai-artifact","description":".claude/settings.json (claude-code configuration)","ref":".claude/settings.json","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/settings.json","weight":0.5},{"kind":"ai-artifact","description":".claude/skills/benchmark-methodology/SKILL.md (claude-code configuration)","ref":".claude/skills/benchmark-methodology/SKILL.md","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/skills/benchmark-methodology/SKILL.md","weight":0.5},{"kind":"ai-artifact","description":".claude/skills/changelog-format/SKILL.md (claude-code configuration)","ref":".claude/skills/changelog-format/SKILL.md","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/skills/changelog-format/SKILL.md","weight":0.5},{"kind":"ai-artifact","description":".claude/skills/claude-md-budget/SKILL.md (claude-code configuration)","ref":".claude/skills/claude-md-budget/SKILL.md","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/skills/claude-md-budget/SKILL.md","weight":0.5},{"kind":"ai-artifact","description":".claude/skills/mechanism-not-instance/SKILL.md (claude-code configuration)","ref":".claude/skills/mechanism-not-instance/SKILL.md","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/skills/mechanism-not-instance/SKILL.md","weight":0.5},{"kind":"ai-artifact","description":".claude/skills/observatory/SKILL.md (claude-code configuration)","ref":".claude/skills/observatory/SKILL.md","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/skills/observatory/SKILL.md","weight":0.5},{"kind":"ai-artifact","description":".claude/skills/pr-description/SKILL.md (claude-code configuration)","ref":".claude/skills/pr-description/SKILL.md","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/skills/pr-description/SKILL.md","weight":0.5},{"kind":"ai-artifact","description":".claude/skills/release/SKILL.md (claude-code configuration)","ref":".claude/skills/release/SKILL.md","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/skills/release/SKILL.md","weight":0.5},{"kind":"ai-artifact","description":".claude/skills/standard-axes/SKILL.md (claude-code configuration)","ref":".claude/skills/standard-axes/SKILL.md","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/skills/standard-axes/SKILL.md","weight":0.5},{"kind":"ai-artifact","description":".claude/skills/tool-surface-discipline/SKILL.md (claude-code configuration)","ref":".claude/skills/tool-surface-discipline/SKILL.md","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/skills/tool-surface-discipline/SKILL.md","weight":0.5},{"kind":"ai-artifact","description":".claude/skills/version-scheme/SKILL.md (claude-code configuration)","ref":".claude/skills/version-scheme/SKILL.md","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/skills/version-scheme/SKILL.md","weight":0.5},{"kind":"ai-artifact","description":"CLAUDE.md (claude-code configuration)","ref":"CLAUDE.md","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/CLAUDE.md","weight":0.5},{"kind":"ai-artifact","description":"AGENTS.md (generic-agent configuration)","ref":"AGENTS.md","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/AGENTS.md","weight":0.5},{"kind":"ai-workflow","description":".github/workflows/inbound-depeval.yml runs anthropics/claude-code-action","ref":".github/workflows/inbound-depeval.yml","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.github/workflows/inbound-depeval.yml","weight":0.6},{"kind":"ai-workflow","description":".github/workflows/inbound-digest.yml runs anthropics/claude-code-action","ref":".github/workflows/inbound-digest.yml","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.github/workflows/inbound-digest.yml","weight":0.6},{"kind":"ai-workflow","description":".github/workflows/inbound-fix.yml runs anthropics/claude-code-action","ref":".github/workflows/inbound-fix.yml","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.github/workflows/inbound-fix.yml","weight":0.6},{"kind":"ai-workflow","description":".github/workflows/inbound-triage.yml runs anthropics/claude-code-action","ref":".github/workflows/inbound-triage.yml","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.github/workflows/inbound-triage.yml","weight":0.6}],"data":{"artifacts":[{"tool":"claude-code","path":".claude/agents/reviewer.md","added_at":1788532080},{"tool":"claude-code","path":".claude/agents/spokesperson.md","added_at":1788532080},{"tool":"claude-code","path":".claude/commands/benchmark-compare.md","added_at":1788532080},{"tool":"claude-code","path":".claude/commands/competitive-compare.md","added_at":1788719196},{"tool":"claude-code","path":".claude/commands/feature.md","added_at":1788532080},{"tool":"claude-code","path":".claude/commands/fix-issue.md","added_at":1788532080},{"tool":"claude-code","path":".claude/commands/release.md","added_at":1788532080},{"tool":"claude-code","path":".claude/commands/review.md","added_at":1788532080},{"tool":"claude-code","path":".claude/commands/triage-issue.md","added_at":1788532080},{"tool":"claude-code","path":".claude/hooks/_common.py","added_at":1788532080},{"tool":"claude-code","path":".claude/hooks/deny_guard.py","added_at":1788532080},{"tool":"claude-code","path":".claude/hooks/dod_checklist.py","added_at":1788532080},{"tool":"claude-code","path":".claude/hooks/pre_commit.py","added_at":1788532080},{"tool":"claude-code","path":".claude/hooks/pre_pr.py","added_at":1788532080},{"tool":"claude-code","path":".claude/hooks/run_full.py","added_at":1788532080},{"tool":"claude-code","path":".claude/hooks/surface_guard.py","added_at":1788532080},{"tool":"claude-code","path":".claude/hooks/test_edit_guard.py","added_at":1788532080},{"tool":"claude-code","path":".claude/settings.json","added_at":1788532080},{"tool":"claude-code","path":".claude/skills/benchmark-methodology/SKILL.md","added_at":1788532080},{"tool":"claude-code","path":".claude/skills/changelog-format/SKILL.md","added_at":1788532080},{"tool":"claude-code","path":".claude/skills/claude-md-budget/SKILL.md","added_at":1788532080},{"tool":"claude-code","path":".claude/skills/mechanism-not-instance/SKILL.md","added_at":1788532080},{"tool":"claude-code","path":".claude/skills/observatory/SKILL.md","added_at":1788532080},{"tool":"claude-code","path":".claude/skills/pr-description/SKILL.md","added_at":1788532080},{"tool":"claude-code","path":".claude/skills/release/SKILL.md","added_at":1788532080},{"tool":"claude-code","path":".claude/skills/standard-axes/SKILL.md","added_at":1788532080},{"tool":"claude-code","path":".claude/skills/tool-surface-discipline/SKILL.md","added_at":1788532080},{"tool":"claude-code","path":".claude/skills/version-scheme/SKILL.md","added_at":1788532080},{"tool":"claude-code","path":"CLAUDE.md","added_at":1773628941},{"tool":"generic-agent","path":"AGENTS.md","added_at":1776610839}],"workflows":[{"tool":"claude-code","path":".github/workflows/inbound-depeval.yml","action":"anthropics/claude-code-action"},{"tool":"claude-code","path":".github/workflows/inbound-digest.yml","action":"anthropics/claude-code-action"},{"tool":"claude-code","path":".github/workflows/inbound-fix.yml","action":"anthropics/claude-code-action"},{"tool":"claude-code","path":".github/workflows/inbound-triage.yml","action":"anthropics/claude-code-action"}],"tools":["claude-code","generic-agent"]},"error":null},{"analyzer":"ai-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-4","metrics":{"work_units":1042.0,"flagged_units":38.0,"pre_ai_era_bursts":0.0,"pre_ai_era_measured_loc":0.0,"pre_ai_era_burst_loc":0.0,"measured_loc":461311.0,"flagged_loc":104575.0,"flagged_loc_share":0.22669088749238583,"max_loc_per_hour":2848.0,"median_loc_per_hour":124.35413642960812,"pr_timed_units":438.0,"excluded_import_loc":14173.0},"findings":[],"evidence":[{"kind":"velocity-burst","description":"1,424 lines of first-party code in ~0.5h (2,848 lines/hour, 4 commit session)","ref":"43c95d6821d3276457b1425120e725e137fee91c","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/43c95d6821d3276457b1425120e725e137fee91c","weight":0.6},{"kind":"velocity-burst","description":"3,697 lines of first-party code in ~1.7h (2,156 lines/hour, 2 commit session)","ref":"ef9f08e0a441f6319185bfb2f1a6aa7899f749fb","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/ef9f08e0a441f6319185bfb2f1a6aa7899f749fb","weight":0.6},{"kind":"velocity-burst","description":"8,119 lines of first-party code in ~4.4h (1,847 lines/hour, 7 commit session)","ref":"cb5cedf9dacb671f581744c4bd2d4de1b7ede51b","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/cb5cedf9dacb671f581744c4bd2d4de1b7ede51b","weight":0.554232981480311},{"kind":"velocity-burst","description":"1,298 lines of first-party code in ~0.8h (1,630 lines/hour, 1 commit session)","ref":"d43a397eef7ba054b0e917d354e108ebf8a82d0a","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/d43a397eef7ba054b0e917d354e108ebf8a82d0a","weight":0.48895709801185905},{"kind":"velocity-burst","description":"1,845 lines of first-party code in ~1.1h (1,611 lines/hour, 1 commit session)","ref":"a5df17dc40cb88d494077ea440453cc43e961f85","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/a5df17dc40cb88d494077ea440453cc43e961f85","weight":0.4834061135371178},{"kind":"velocity-burst","description":"1,282 lines of first-party code in ~0.8h (1,581 lines/hour, 1 commit session)","ref":"d5c1aa926fbfe9a220e9c1eb36d54d650df5b64b","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/d5c1aa926fbfe9a220e9c1eb36d54d650df5b64b","weight":0.4741643835616438},{"kind":"velocity-burst","description":"1,158 lines of first-party code in ~0.8h (1,499 lines/hour, 1 commit session)","ref":"ba817a437150563add86bd091acdb653958d2c34","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/ba817a437150563add86bd091acdb653958d2c34","weight":0.44970873786407767},{"kind":"velocity-burst","description":"2,630 lines of first-party code in ~1.9h (1,404 lines/hour, 2 commit session)","ref":"5ab77737d7d9617f3ff38485584dc67708e72c81","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/5ab77737d7d9617f3ff38485584dc67708e72c81","weight":0.4211119347664937},{"kind":"velocity-burst","description":"15,485 lines of first-party code in ~11.2h (1,379 lines/hour, PR #1081)","ref":"49e47afdd39ac77d7366015c0e08cf3f6f829b15","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/49e47afdd39ac77d7366015c0e08cf3f6f829b15","weight":0.41355622048022944},{"kind":"velocity-burst","description":"2,521 lines of first-party code in ~1.9h (1,351 lines/hour, 5 commit session)","ref":"ad4e916f3e7502aa40581ae33db704b6a3d6e53a","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/ad4e916f3e7502aa40581ae33db704b6a3d6e53a","weight":0.40528133373027686},{"kind":"velocity-burst","description":"1,173 lines of first-party code in ~0.9h (1,334 lines/hour, 1 commit session)","ref":"aa4cb54f83c12e2f0c6e1bb6ac75e83fc902807c","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/aa4cb54f83c12e2f0c6e1bb6ac75e83fc902807c","weight":0.40026540284360185},{"kind":"velocity-burst","description":"2,032 lines of first-party code in ~1.6h (1,278 lines/hour, PR #1413)","ref":"1660f739833d3533683173a88feca6e2571b45a5","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/1660f739833d3533683173a88feca6e2571b45a5","weight":0.38326231225986723},{"kind":"velocity-burst","description":"3,360 lines of first-party code in ~2.7h (1,260 lines/hour, 3 commit session)","ref":"a11cad3b844ceacdcf6460f138180b180a390d97","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/a11cad3b844ceacdcf6460f138180b180a390d97","weight":0.37799999999999995},{"kind":"velocity-burst","description":"3,441 lines of first-party code in ~2.8h (1,217 lines/hour, 5 commit session)","ref":"5775faab8104954dab419de276f6de3eb69f4ff7","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/5775faab8104954dab419de276f6de3eb69f4ff7","weight":0.36516458681340275},{"kind":"velocity-burst","description":"1,800 lines of first-party code in ~1.5h (1,181 lines/hour, 12 commit session)","ref":"6d3008fc55ced8a43c51b322347a1c02ec5ca70c","url":"https://github.com/jgravelle/jcodemunch-mcp/commit/6d3008fc55ced8a43c51b322347a1c02ec5ca70c","weight":0.35435654393000365}],"data":{"flagged_loc_by_commit":{"927854ab0b40450618585c1f265558fba987bc06":2567,"7fb0850f6fcafdfa3264ab4a12738b2ca36d077a":344,"c0ad04809d90dd1b9e15006f0cdeed326153c3e9":640,"62f6164933bbed458e91af2bf00fdd5a7cd9c284":735,"cdbde73e9acadebf3abfd5af259fdd769bd0755e":646,"f91fb6576d607dd075cce196dc5033fe46339580":682,"a10383594140267300caf8d586228bcc9835d4b6":1179,"9a7b421916389229823eaf83c345cc5ebc01ca50":1177,"072a49b361c4ba8eb492f8ce7e0f0981c0b847a0":1212,"afbf204f5f724190512f8b683bcb18d1ea8b3bcb":354,"3d500eba8964c5fd055c98722db885fbe436b2db":28,"aef70780d44e2d9f8af3f552ef683fad967f0d2d":1423,"ac1ee7e4980150d928296fad520374f1ac93ec49":364,"869994e13f064b8a4a283d3973920ebf67e44f53":1299,"3e07d8aaf9ad5ecb0f2f33167f391b3309f997f1":765,"889032b0e7e50625875063c2d0d19a57d1abfa97":1400,"7750d47d39629be769cfdf685a682d18c96fdfa6":1017,"9f54afdb931948e7f191ba1fb74148a7b70068e6":55,"7f82e469fc0db850b12151f15fe264f5ddfcde33":1357,"a5df17dc40cb88d494077ea440453cc43e961f85":1845,"ba817a437150563add86bd091acdb653958d2c34":1158,"bc42e8196df36d37531c569715209c356576448d":1754,"ef9f08e0a441f6319185bfb2f1a6aa7899f749fb":1943,"d5c1aa926fbfe9a220e9c1eb36d54d650df5b64b":1282,"d43a397eef7ba054b0e917d354e108ebf8a82d0a":1298,"9a703128be0aa5710eaea771a3d62ac67542da17":846,"fc7fd6ba0c61fc53036432e9f002a115753d2140":1040,"1e983be44d590f9b37593d7d2b897e886bda7c03":400,"d99f90027dd28747d23f5b7bb68d290df8e5ab53":539,"a3ac91765a7fb84f8d20b87ef5d5319c71b45c7f":464,"69a00c6598dffe1659cd4be4affbf540c862d0f6":391,"e486a8bb3d06bafd9dc8516ffd6d2b2df3c743fe":447,"4c3b3377f5af89fec56245778ffe0f89f7582f4c":520,"851977a2bdfd5ad856c284081f1d123ce0b506f0":620,"ad4e916f3e7502aa40581ae33db704b6a3d6e53a":543,"4e9a8a7006438c45b02fc6d54b921138002d256c":760,"cc17ae1b2eb3ff77bc2f7adb5580297f42746154":629,"90a3ec408ae6d15c574eb5d231bd4aba2e5c38e0":428,"25603e1df4ad90dfd0af3ec07660c8f4c5aedf74":807,"66bb6c9c1d894e90446359cd2186a9528302a24d":1060,"7890b8833be086bc9b3b37bb472ab7e1578f5ae6":833,"c72a6f7977a2ce8a3217081fa6b81b2d66c1fe41":1273,"f62c29164043eb338977c2e5b1560b8849b67afa":874,"584ab8aa63cb4a84c6f1fe7518a9e5c80561881f":917,"dd1d4e9fc45e5387a9ffd65f13185ddf30b58a9c":1599,"a72b47c3ed7cdffd56a9cedc4575b2005f4cfa5a":1393,"cb5cedf9dacb671f581744c4bd2d4de1b7ede51b":1230,"5b9e6c098a2c6c4982a371303f47c75e7a79e531":424,"37fb1d8a78d7c62e7507f4925d1e618a0f3a473f":845,"58901412a1b2e50350a67c8a5b79d9abb6471264":773,"07b8e5074c9ddc7f0f2b6ddf8e5cebe7e23ce684":1350,"5775faab8104954dab419de276f6de3eb69f4ff7":49,"aa4cb54f83c12e2f0c6e1bb6ac75e83fc902807c":1173,"c472c293cbe1308db3374b1e20b045af8af3eec3":1031,"9de78a876b99e3bb3b5c4f866b4ef1f914e6ff67":1,"1e2face4d089dd2bf242d324cd195bfd065e1769":513,"5ab28344d1deb13f0b6968114210d35b2d079491":397,"1ba02a033ebbc024cea99e491693c9661abef9db":401,"89f9042639f614aa0bef6abe5cd148b7d69ded64":568,"c41defe018e9dfdcb6ce5183d3565bed44421773":9,"aff932c55180b3ef3c8638ae9576d3769c4e51fa":2541,"54db05017c3ce1bb815b55abc4b8d78537adb7c5":65,"a11cad3b844ceacdcf6460f138180b180a390d97":754,"32058aba8556eae7ae38829a6f638103e3983e81":618,"838bf4564ce3c91803ab320da0d6afb8361b4c71":715,"f690af856d65d73f4490e07f99635a89e10b529c":658,"3075ffaec94c3419ee4ecdb08b7469ab46fdc729":213,"2a1cc2a74fbeb4d01e14ae14741aa33bc5128c1e":298,"569525b0d62bc913606c76a5b0d805be9d2bb52a":501,"d4616740a0e27d078559353ac3c53461ae874006":2267,"5157b28eed0cd3ac19e9e7e8262b211038d3e81f":851,"057c889c788c77605970b8689e7b2c67b3593b83":361,"2fa1f8bcb7078005651eb55b9997c9046a949eea":76,"344d1a5e74f3a7624e9e23ca2d895dc5abf1ec01":24,"04654db67816f4dc63e655332b2490a8e62bf4e5":9,"db084a93279ca3e8811c8a03824bafe1d9c152b0":9,"a247cd901a9d5fe1abcb80ef5a25d10849b54b63":35,"ba7dcd6d23819f32b17d037dfbb70f65dd215e86":276,"4b16adbdab1b5456b74e05b6d1c00b7a602176f0":93,"5aeefaa6a6fb41ea255e8457aecb50722d075c47":44,"366021a84221f8d04af0941672023db31de3dfae":11,"6d3008fc55ced8a43c51b322347a1c02ec5ca70c":11,"0fa2352db66fde483a6743e53ccf88f0e5ca8c23":654,"7b2377921570e6212fab3529108f12b3ef4d6749":268,"6f2d4c36f33afcc167e2a3408e9e878fab96b17b":414,"43c95d6821d3276457b1425120e725e137fee91c":88,"363b17bf793380d9d4fe86f80542ceccc8c16086":579,"a62d49f36e98a92392f7a201df5dac3adeb90933":460,"a90d4f994831e5fdc7b40af25db063f8e3cac46a":299,"8e9031b6d3288df82098b85137d228b354acf384":82,"a5e917cecde9999346108832c55b1115756d9912":76,"02e4d74a88ebbb93d9264077182c1527e172b9b2":1027,"5ab77737d7d9617f3ff38485584dc67708e72c81":1315,"c8b9ab584785aac04f3d3ad93083c8e7e48070e2":1315,"d37e10c9cde0416a5173d31991eb623f6e76cff0":185,"ae1286ad25b73396f495c8104a784dd43bb62b16":161,"48b8bf430ef6cf2816360345ced0da8d48c67f0b":118,"7d7797afb119904a684947e113bd342787d80588":364,"6fb7b382a0b775432dc3cf5fff1c75b3b0834f70":13,"c5202d6a58a0795a13e7ea3883016b6a6b76acd8":121,"890ba47b43c2b60bc7df1c6339565bbc4c031ab9":70,"6f3e05a33cd5c6b7d033a737501a180a27770a9c":451,"584e5c0b208bf1e78c67016427805ce001638a8c":2,"720049b44a5828e3396dc6fc0745ea28e9fedc96":512,"cb699e08f03526747d0fc1b32ec8ab71b72363a9":362,"2fb56d835116ea9bf942a606032744e5d13face0":2823,"707621a4367ff8c687f3883bd8a653a1c5945fd3":1,"c463d66fa3485f74ed347961d6b28646dc80be78":4743,"cf6c61231d922f328d6a25e6aab1edbb0cd4e502":34,"dd0653f19f92efd9a44dba6bd4ae0c7e64893b9d":2839,"9b375cda328b4617e11fbbef8bac5ff87787b04d":1200,"258eb52d4ad29bd844e1f0835aeb0657b1368ce6":72,"51c5e906c9d9b55d6835428251d0541ff7d81d22":1299,"ead73abc84e15bbecb613724f63bb3de40b04477":118,"2e9af12a89b122ba6ea6878c883bd169f6a86edd":1368,"398ba2e1ef0b6a6a2bf6003e0df1bd3a91ca5676":1524,"1660f739833d3533683173a88feca6e2571b45a5":2032,"49e47afdd39ac77d7366015c0e08cf3f6f829b15":15485},"excluded_import_commits":["32eb018a002c2e69a8737cc5d2a16bdbb2425b6d","d371e52e65bb23c47ad325c5c90954850ac3b5ba","f817f6fc99cf7d8354f12767742850fb1ec5217a"]},"error":null},{"analyzer":"ai-release-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-4","metrics":{"releases":99.0,"flagged_releases":1.0,"max_loc_per_day":78739.9},"findings":[],"evidence":[{"kind":"release-burst","description":"v1.108.363 → v1.108.364: 17,526 lines in 0.22 days (78,739.9 lines/day)","ref":"v1.108.363...v1.108.364","url":"https://github.com/jgravelle/jcodemunch-mcp/compare/v1.108.363...v1.108.364","weight":0.4}],"data":{"releases":[{"from":"v1.108.345","to":"v1.108.346","loc":502,"days":0.1,"loc_per_day":5241.4,"flagged":false},{"from":"v1.108.346","to":"v1.108.347","loc":395,"days":0.11,"loc_per_day":3749.5,"flagged":false},{"from":"v1.108.347","to":"v1.108.348","loc":233,"days":0.09,"loc_per_day":2719.0,"flagged":false},{"from":"v1.108.348","to":"v1.108.349","loc":278,"days":0.12,"loc_per_day":2234.6,"flagged":false},{"from":"v1.108.349","to":"v1.108.350","loc":1037,"days":0.18,"loc_per_day":5785.3,"flagged":false},{"from":"v1.108.350","to":"v1.108.351","loc":528,"days":0.18,"loc_per_day":3003.6,"flagged":false},{"from":"v1.108.351","to":"v1.108.352","loc":371,"days":0.16,"loc_per_day":2276.6,"flagged":false},{"from":"v1.108.352","to":"v1.108.353","loc":166,"days":0.1,"loc_per_day":1635.6,"flagged":false},{"from":"v1.108.353","to":"v1.108.354","loc":194,"days":0.1,"loc_per_day":2027.8,"flagged":false},{"from":"v1.108.354","to":"v1.108.355","loc":368,"days":0.11,"loc_per_day":3432.5,"flagged":false},{"from":"v1.108.355","to":"v1.108.356","loc":256,"days":0.15,"loc_per_day":1653.6,"flagged":false},{"from":"v1.108.356","to":"v1.108.357","loc":259,"days":0.14,"loc_per_day":1850.0,"flagged":false},{"from":"v1.108.357","to":"v1.108.358","loc":700,"days":0.16,"loc_per_day":4362.7,"flagged":false},{"from":"v1.108.358","to":"v1.108.359","loc":1567,"days":0.2,"loc_per_day":7920.3,"flagged":false},{"from":"v1.108.359","to":"v1.108.360","loc":511,"days":0.06,"loc_per_day":8589.6,"flagged":false},{"from":"v1.108.360","to":"v1.108.361","loc":1846,"days":0.59,"loc_per_day":3141.0,"flagged":false},{"from":"v1.108.361","to":"v1.108.362","loc":765,"days":0.25,"loc_per_day":3012.6,"flagged":false},{"from":"v1.108.362","to":"v1.108.363","loc":484,"days":0.15,"loc_per_day":3314.1,"flagged":false},{"from":"v1.108.363","to":"v1.108.364","loc":17526,"days":0.22,"loc_per_day":78739.9,"flagged":true},{"from":"v1.108.364","to":"v1.108.365","loc":409,"days":0.31,"loc_per_day":1324.2,"flagged":false},{"from":"v1.108.365","to":"v1.108.366","loc":98,"days":0.16,"loc_per_day":597.8,"flagged":false},{"from":"v1.108.366","to":"v1.108.367","loc":370,"days":0.21,"loc_per_day":1724.9,"flagged":false},{"from":"v1.108.367","to":"v1.108.368","loc":618,"days":0.09,"loc_per_day":6977.0,"flagged":false},{"from":"v1.108.368","to":"v1.108.369","loc":262,"days":0.13,"loc_per_day":2019.0,"flagged":false},{"from":"v1.108.369","to":"v1.108.370","loc":435,"days":0.15,"loc_per_day":2852.9,"flagged":false},{"from":"v1.108.370","to":"v1.108.371","loc":154,"days":0.14,"loc_per_day":1069.4,"flagged":false},{"from":"v1.108.371","to":"v1.108.372","loc":223,"days":0.15,"loc_per_day":1489.0,"flagged":false},{"from":"v1.108.372","to":"v1.108.373","loc":399,"days":0.26,"loc_per_day":1524.6,"flagged":false},{"from":"v1.108.373","to":"v1.108.374","loc":1935,"days":0.25,"loc_per_day":7837.6,"flagged":false},{"from":"v1.108.374","to":"v1.108.375","loc":170,"days":0.36,"loc_per_day":471.2,"flagged":false},{"from":"v1.108.375","to":"v1.108.376","loc":403,"days":0.2,"loc_per_day":2023.7,"flagged":false},{"from":"v1.108.376","to":"v1.108.377","loc":1995,"days":0.78,"loc_per_day":2567.3,"flagged":false},{"from":"v1.108.377","to":"v1.108.378","loc":298,"days":0.08,"loc_per_day":3961.1,"flagged":false},{"from":"v1.108.378","to":"v1.108.379","loc":511,"days":0.57,"loc_per_day":894.2,"flagged":false},{"from":"v1.108.379","to":"v1.108.380","loc":199,"days":0.36,"loc_per_day":547.2,"flagged":false},{"from":"v1.108.380","to":"v1.108.381","loc":491,"days":0.21,"loc_per_day":2320.8,"flagged":false},{"from":"v1.108.381","to":"v1.108.382","loc":843,"days":0.14,"loc_per_day":6136.6,"flagged":false},{"from":"v1.108.382","to":"v1.108.383","loc":290,"days":0.07,"loc_per_day":4117.0,"flagged":false},{"from":"v1.108.383","to":"v1.108.384","loc":555,"days":0.1,"loc_per_day":5520.0,"flagged":false},{"from":"v1.108.384","to":"v1.108.385","loc":279,"days":0.39,"loc_per_day":707.7,"flagged":false},{"from":"v1.108.385","to":"v1.108.386","loc":1786,"days":0.23,"loc_per_day":7623.7,"flagged":false},{"from":"v1.108.386","to":"v1.108.387","loc":191,"days":0.77,"loc_per_day":249.0,"flagged":false},{"from":"v1.108.387","to":"v1.108.388","loc":56,"days":0.08,"loc_per_day":684.8,"flagged":false},{"from":"v1.108.388","to":"v1.108.389","loc":746,"days":0.1,"loc_per_day":7825.9,"flagged":false},{"from":"v1.108.389","to":"v1.108.390","loc":312,"days":0.32,"loc_per_day":980.7,"flagged":false},{"from":"v1.108.390","to":"v1.108.391","loc":1042,"days":0.18,"loc_per_day":5655.1,"flagged":false},{"from":"v1.108.391","to":"v1.108.392","loc":1051,"days":0.45,"loc_per_day":2328.6,"flagged":false},{"from":"v1.108.392","to":"v1.108.393","loc":1047,"days":0.24,"loc_per_day":4283.2,"flagged":false},{"from":"v1.108.393","to":"v1.108.394","loc":964,"days":0.21,"loc_per_day":4587.4,"flagged":false},{"from":"v1.108.394","to":"v1.108.395","loc":261,"days":0.52,"loc_per_day":503.7,"flagged":false},{"from":"v1.108.395","to":"v1.108.396","loc":325,"days":0.33,"loc_per_day":984.5,"flagged":false},{"from":"v1.108.396","to":"v1.108.397","loc":459,"days":0.73,"loc_per_day":631.6,"flagged":false},{"from":"v1.108.397","to":"v1.108.398","loc":171,"days":1.85,"loc_per_day":92.7,"flagged":false},{"from":"v1.108.398","to":"v1.108.399","loc":157,"days":0.36,"loc_per_day":439.9,"flagged":false},{"from":"v1.108.399","to":"v1.108.400","loc":553,"days":1.64,"loc_per_day":337.1,"flagged":false},{"from":"v1.108.400","to":"v1.108.401","loc":1215,"days":0.21,"loc_per_day":5828.8,"flagged":false},{"from":"v1.108.401","to":"v1.108.402","loc":1223,"days":0.82,"loc_per_day":1485.0,"flagged":false},{"from":"v1.108.402","to":"v1.108.403","loc":1890,"days":3.47,"loc_per_day":544.2,"flagged":false},{"from":"v1.108.403","to":"v1.108.404","loc":602,"days":0.18,"loc_per_day":3351.6,"flagged":false},{"from":"v1.108.404","to":"v1.108.405","loc":514,"days":0.04,"loc_per_day":12336.0,"flagged":false},{"from":"v1.108.405","to":"v1.108.406","loc":0,"days":0.32,"loc_per_day":0.0,"flagged":false},{"from":"v1.108.406","to":"v1.108.407","loc":1652,"days":0.18,"loc_per_day":9206.8,"flagged":false},{"from":"v1.108.407","to":"v1.108.408","loc":634,"days":0.11,"loc_per_day":5695.3,"flagged":false},{"from":"v1.108.408","to":"v1.108.409","loc":494,"days":0.22,"loc_per_day":2198.6,"flagged":false},{"from":"v1.108.409","to":"v1.108.410","loc":3138,"days":0.61,"loc_per_day":5173.0,"flagged":false},{"from":"v1.108.410","to":"v1.108.411","loc":737,"days":0.1,"loc_per_day":7081.5,"flagged":false},{"from":"v1.108.411","to":"v1.108.412","loc":677,"days":0.17,"loc_per_day":3936.0,"flagged":false},{"from":"v1.108.412","to":"v1.108.413","loc":218,"days":0.13,"loc_per_day":1633.6,"flagged":false},{"from":"v1.108.413","to":"v1.108.414","loc":494,"days":0.49,"loc_per_day":1011.7,"flagged":false},{"from":"v1.108.414","to":"v1.108.415","loc":218,"days":0.1,"loc_per_day":2264.7,"flagged":false},{"from":"v1.108.415","to":"v1.108.416","loc":384,"days":0.23,"loc_per_day":1695.5,"flagged":false},{"from":"v1.108.416","to":"v1.108.417","loc":402,"days":0.17,"loc_per_day":2368.1,"flagged":false},{"from":"v1.108.417","to":"v1.108.418","loc":196,"days":0.49,"loc_per_day":397.5,"flagged":false},{"from":"v1.108.418","to":"v1.108.419","loc":2075,"days":0.46,"loc_per_day":4558.0,"flagged":false},{"from":"v1.108.419","to":"v1.108.420","loc":138,"days":0.73,"loc_per_day":188.9,"flagged":false},{"from":"v1.108.420","to":"v1.108.421","loc":582,"days":0.13,"loc_per_day":4633.3,"flagged":false},{"from":"v1.108.421","to":"v1.108.422","loc":208,"days":0.1,"loc_per_day":2070.9,"flagged":false},{"from":"v1.108.422","to":"v1.108.423","loc":2035,"days":0.8,"loc_per_day":2554.1,"flagged":false},{"from":"v1.108.423","to":"v1.108.424","loc":827,"days":0.22,"loc_per_day":3687.3,"flagged":false},{"from":"v1.108.424","to":"v1.108.425","loc":812,"days":0.78,"loc_per_day":1036.9,"flagged":false},{"from":"v1.108.425","to":"v1.108.426","loc":1011,"days":0.16,"loc_per_day":6441.3,"flagged":false},{"from":"v1.108.426","to":"v1.108.427","loc":1255,"days":0.18,"loc_per_day":7159.6,"flagged":false},{"from":"v1.108.427","to":"v1.108.428","loc":291,"days":0.12,"loc_per_day":2382.9,"flagged":false},{"from":"v1.108.428","to":"v1.108.429","loc":537,"days":0.42,"loc_per_day":1291.5,"flagged":false},{"from":"v1.108.429","to":"v1.108.430","loc":1780,"days":0.33,"loc_per_day":5436.5,"flagged":false},{"from":"v1.108.430","to":"v1.108.431","loc":1766,"days":0.26,"loc_per_day":6760.1,"flagged":false},{"from":"v1.108.431","to":"v1.108.432","loc":405,"days":0.4,"loc_per_day":1014.3,"flagged":false},{"from":"v1.108.432","to":"v1.108.433","loc":336,"days":0.13,"loc_per_day":2613.0,"flagged":false},{"from":"v1.108.433","to":"v1.108.434","loc":257,"days":0.33,"loc_per_day":773.7,"flagged":false},{"from":"v1.108.434","to":"v1.108.435","loc":814,"days":0.6,"loc_per_day":1358.1,"flagged":false},{"from":"v1.108.435","to":"v1.108.436","loc":475,"days":0.08,"loc_per_day":5935.8,"flagged":false},{"from":"v1.108.436","to":"v1.108.437","loc":598,"days":0.12,"loc_per_day":5011.4,"flagged":false},{"from":"v1.108.437","to":"v1.108.438","loc":393,"days":0.11,"loc_per_day":3580.6,"flagged":false},{"from":"v1.108.438","to":"v1.108.439","loc":2032,"days":0.13,"loc_per_day":15291.8,"flagged":false},{"from":"v1.108.439","to":"v1.108.440","loc":144,"days":0.09,"loc_per_day":1602.1,"flagged":false},{"from":"v1.108.440","to":"v1.108.441","loc":626,"days":0.66,"loc_per_day":944.7,"flagged":false},{"from":"v1.108.441","to":"v1.108.442","loc":544,"days":0.09,"loc_per_day":5957.1,"flagged":false},{"from":"v1.108.442","to":"v1.108.443","loc":377,"days":0.18,"loc_per_day":2100.9,"flagged":false},{"from":"v1.108.443","to":"v1.108.444","loc":186,"days":0.42,"loc_per_day":441.1,"flagged":false}]},"error":null},{"analyzer":"ai-stylometry","pillar":"ai_provenance","status":"ok","tool_version":null,"metrics":{"lines_scanned":157258.0,"index":3.602,"count:narrated_steps":18.0,"per_kloc:narrated_steps":0.114,"files:narrated_steps":6.0,"count:placeholder":0.0,"per_kloc:placeholder":0.0,"files:placeholder":0.0,"count:emoji_in_code":1097.0,"per_kloc:emoji_in_code":6.976,"files:emoji_in_code":166.0,"count:assistant_voice":0.0,"per_kloc:assistant_voice":0.0,"files:assistant_voice":0.0},"findings":[],"evidence":[{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: # first, so the claim above was false for its whole life. The working","ref":".claude/hooks/_common.py:387","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/hooks/_common.py#L387","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: # Step 1: stop every j*munch server, because a running one holds its .exe.","ref":"scripts/repair-munch-installs.ps1:99","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/scripts/repair-munch-installs.ps1#L99","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: **Then, for a task the index suits:**","ref":"src/jcodemunch_mcp/cli/policy.py:117","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/src/jcodemunch_mcp/cli/policy.py#L117","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: # Step 1: Find interface/trait symbols and their child methods","ref":"src/jcodemunch_mcp/enrichment/lsp_bridge.py:932","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/src/jcodemunch_mcp/enrichment/lsp_bridge.py#L932","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: # Step 2: For each interface, collect method positions","ref":"src/jcodemunch_mcp/enrichment/lsp_bridge.py:972","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/src/jcodemunch_mcp/enrichment/lsp_bridge.py#L972","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: # Step 3: Resolve via LSP","ref":"src/jcodemunch_mcp/enrichment/lsp_bridge.py:1040","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/src/jcodemunch_mcp/enrichment/lsp_bridge.py#L1040","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: # Step 4: Convert to relative paths and serializable dicts","ref":"src/jcodemunch_mcp/enrichment/lsp_bridge.py:1053","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/src/jcodemunch_mcp/enrichment/lsp_bridge.py#L1053","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: # Step 1: Gather repo information","ref":"src/jcodemunch_mcp/groq/explainer.py:401","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/src/jcodemunch_mcp/groq/explainer.py#L401","weight":0.0}],"data":{},"error":null},{"analyzer":"sec-secrets","pillar":"security","status":"ok","tool_version":"gitleaks 8.30.1","metrics":{"secrets_current":0.0,"secrets_history":0.0,"secrets_nonprod":4.0,"secrets_low_confidence":0.0},"findings":[{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in the current tree (test/docs/example file)","path":"tests/test_redact.py","line":65,"fingerprint":"tests/test_redact.py:generic-api-key:65"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in the current tree (test/docs/example file)","path":"tests/test_v1_108_121.py","line":42,"fingerprint":"tests/test_v1_108_121.py:generic-api-key:42"},{"rule_id":"gitleaks/jwt","severity":"low","message":"Possible jwt secret in the current tree (test/docs/example file)","path":"tests/test_runtime_phase0.py","line":228,"fingerprint":"tests/test_runtime_phase0.py:jwt:228"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in the current tree (test/docs/example file)","path":"tests/test_v1_108_73.py","line":112,"fingerprint":"tests/test_v1_108_73.py:generic-api-key:112"}],"evidence":[],"data":{},"error":null},{"analyzer":"sec-sast","pillar":"security","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":134.0,"findings_high":87.0,"findings_medium":44.0,"findings_low":3.0,"weighted_findings":82.575,"scanned_lines":189984.0,"parse_errors":0.0},"findings":[{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'Popen' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":".claude/hooks/_common.py","line":521,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:.claude/hooks/_common.py:521"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":".claude/hooks/dod_checklist.py","line":519,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:.claude/hooks/dod_checklist.py:519"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":".github/inbound/apply_depeval.py","line":112,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:.github/inbound/apply_depeval.py:112"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":".github/inbound/killswitch.py","line":43,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:.github/inbound/killswitch.py:43"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":".github/inbound/selfcheck.py","line":114,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:.github/inbound/selfcheck.py:114"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'Popen' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"benchmarks/ab-kit/run_lookups.py","line":41,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:benchmarks/ab-kit/run_lookups.py:41"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"benchmarks/ab-kit/run_lookups.py","line":193,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:benchmarks/ab-kit/run_lookups.py:193"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"benchmarks/ab-kit/run_lookups.py","line":263,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:benchmarks/ab-kit/run_lookups.py:263"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"benchmarks/ab-kit/run_lookups.py","line":270,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:benchmarks/ab-kit/run_lookups.py:270"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-tainted-env-args","severity":"high","message":"Detected subprocess function 'run' with user controlled data. A malicious actor could leverage this to perform command injection. You may consider using 'shlex.quote()'. [confidence medium]","path":"benchmarks/ab-kit/run_lookups.py","line":270,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-tainted-env-args:benchmarks/ab-kit/run_lookups.py:270"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"benchmarks/ab-kit/run_retrieval.py","line":31,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:benchmarks/ab-kit/run_retrieval.py:31"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-tainted-env-args","severity":"high","message":"Detected subprocess function 'run' with user controlled data. A malicious actor could leverage this to perform command injection. You may consider using 'shlex.quote()'. [confidence medium]","path":"benchmarks/ab-kit/run_retrieval.py","line":31,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-tainted-env-args:benchmarks/ab-kit/run_retrieval.py:31"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"benchmarks/ab-kit/run_retrieval.py","line":34,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:benchmarks/ab-kit/run_retrieval.py:34"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-tainted-env-args","severity":"high","message":"Detected subprocess function 'run' with user controlled data. A malicious actor could leverage this to perform command injection. You may consider using 'shlex.quote()'. [confidence medium]","path":"benchmarks/ab-kit/run_retrieval.py","line":34,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-tainted-env-args:benchmarks/ab-kit/run_retrieval.py:34"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"benchmarks/codex_surface/run_codex_arms.py","line":178,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:benchmarks/codex_surface/run_codex_arms.py:178"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'Popen' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"benchmarks/codex_surface/run_codex_arms.py","line":227,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:benchmarks/codex_surface/run_codex_arms.py:227"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"benchmarks/codex_surface/run_codex_arms.py","line":303,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:benchmarks/codex_surface/run_codex_arms.py:303"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"benchmarks/codex_surface/run_codex_arms.py","line":424,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:benchmarks/codex_surface/run_codex_arms.py:424"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"benchmarks/competitive/adapters/jcodemunch.py","line":125,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:benchmarks/competitive/adapters/jcodemunch.py:125"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"benchmarks/competitive/run.py","line":106,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:benchmarks/competitive/run.py:106"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"benchmarks/competitive/sandbox.py","line":200,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:benchmarks/competitive/sandbox.py:200"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'Popen' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"benchmarks/competitive/sandbox/mcp_driver.py","line":44,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:benchmarks/competitive/sandbox/mcp_driver.py:44"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"benchmarks/harness/run_benchmark.py","line":543,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:benchmarks/harness/run_benchmark.py:543"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"benchmarks/rust_fidelity/run_fidelity.py","line":106,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:benchmarks/rust_fidelity/run_fidelity.py:106"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"benchmarks/self_latency/measure.py","line":144,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:benchmarks/self_latency/measure.py:144"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'Popen' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"harness/__main__.py","line":255,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:harness/__main__.py:255"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"harness/__main__.py","line":279,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:harness/__main__.py:279"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"harness/__main__.py","line":542,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:harness/__main__.py:542"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"scripts/release_preflight.py","line":70,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:scripts/release_preflight.py:70"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"scripts/surface_diff.py","line":47,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:scripts/surface_diff.py:47"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/cli/hooks/_common.py","line":211,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/cli/hooks/_common.py:211"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'Popen' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"src/jcodemunch_mcp/cli/hooks/reindex.py","line":47,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:src/jcodemunch_mcp/cli/hooks/reindex.py:47"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"src/jcodemunch_mcp/cli/init.py","line":559,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:src/jcodemunch_mcp/cli/init.py:559"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"src/jcodemunch_mcp/cli/init.py","line":1907,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:src/jcodemunch_mcp/cli/init.py:1907"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"src/jcodemunch_mcp/cli/init.py","line":2568,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:src/jcodemunch_mcp/cli/init.py:2568"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"src/jcodemunch_mcp/cli/upgrade.py","line":110,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:src/jcodemunch_mcp/cli/upgrade.py:110"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"src/jcodemunch_mcp/cli/upgrade.py","line":161,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:src/jcodemunch_mcp/cli/upgrade.py:161"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'Popen' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"src/jcodemunch_mcp/enrichment/lsp_bridge.py","line":213,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:src/jcodemunch_mcp/enrichment/lsp_bridge.py:213"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/evidence/scip_ingest.py","line":339,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/evidence/scip_ingest.py:339"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"src/jcodemunch_mcp/groq/explainer.py","line":369,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:src/jcodemunch_mcp/groq/explainer.py:369"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/runtime/_calls_store.py","line":50,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/runtime/_calls_store.py:50"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/runtime/confidence.py","line":178,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/runtime/confidence.py:178"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/runtime/confidence.py","line":211,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/runtime/confidence.py:211"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/runtime/confidence.py","line":252,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/runtime/confidence.py:252"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/runtime/confidence.py","line":375,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/runtime/confidence.py:375"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/runtime/confidence.py","line":399,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/runtime/confidence.py:399"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/runtime/ingest.py","line":329,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/runtime/ingest.py:329"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/runtime/resolve.py","line":89,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/runtime/resolve.py:89"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/runtime/resolve.py","line":105,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/runtime/resolve.py:105"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/runtime/resolve.py","line":135,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/runtime/resolve.py:135"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/runtime/sql_ingest.py","line":504,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/runtime/sql_ingest.py:504"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/runtime/sql_ingest.py","line":508,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/runtime/sql_ingest.py:508"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/runtime/stack_ingest.py","line":327,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/runtime/stack_ingest.py:327"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/runtime/stack_ingest.py","line":331,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/runtime/stack_ingest.py:331"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"src/jcodemunch_mcp/service_installer.py","line":264,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:src/jcodemunch_mcp/service_installer.py:264"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/storage/bm25_stats.py","line":281,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/storage/bm25_stats.py:281"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/storage/bm25_stats.py","line":302,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/storage/bm25_stats.py:302"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/storage/bm25_stats.py","line":308,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/storage/bm25_stats.py:308"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/storage/bm25_stats.py","line":310,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/storage/bm25_stats.py:310"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/storage/bm25_stats.py","line":320,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/storage/bm25_stats.py:320"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/storage/embedding_store.py","line":613,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/storage/embedding_store.py:613"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/storage/sqlite_store.py","line":300,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/storage/sqlite_store.py:300"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/storage/sqlite_store.py","line":731,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/storage/sqlite_store.py:731"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/storage/sqlite_store.py","line":859,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/storage/sqlite_store.py:859"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/storage/sqlite_store.py","line":901,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/storage/sqlite_store.py:901"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/storage/sqlite_store.py","line":1580,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/storage/sqlite_store.py:1580"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/storage/sqlite_store.py","line":2341,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/storage/sqlite_store.py:2341"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/storage/sqlite_store.py","line":2351,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/storage/sqlite_store.py:2351"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/storage/sqlite_store.py","line":2420,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/storage/sqlite_store.py:2420"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/storage/sqlite_store.py","line":2902,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/storage/sqlite_store.py:2902"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/storage/sqlite_store.py","line":2908,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/storage/sqlite_store.py:2908"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/storage/sqlite_store.py","line":2918,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/storage/sqlite_store.py:2918"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/storage/text_filter.py","line":138,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/storage/text_filter.py:138"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/storage/text_filter.py","line":153,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/storage/text_filter.py:153"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/storage/token_tracker.py","line":1021,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/storage/token_tracker.py:1021"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/storage/token_tracker.py","line":1023,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/storage/token_tracker.py:1023"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"src/jcodemunch_mcp/tools/_git_history.py","line":58,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:src/jcodemunch_mcp/tools/_git_history.py:58"},{"rule_id":"opengrep/python.sqlalchemy.security.sqlalchemy-execute-raw-query","severity":"high","message":"Avoiding SQL string concatenation: untrusted input concatenated with raw SQL query can result in SQL Injection. In order to execute raw query safely, prepared statement should be used. SQLAlchemy provides TextualSQL to easily used prepared statement with named parameters. For complex SQL composition [confidence low]","path":"src/jcodemunch_mcp/tools/find_hot_paths.py","line":93,"fingerprint":"python.sqlalchemy.security.sqlalchemy-execute-raw-query:src/jcodemunch_mcp/tools/find_hot_paths.py:93"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"src/jcodemunch_mcp/tools/get_changed_symbols.py","line":23,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:src/jcodemunch_mcp/tools/get_changed_symbols.py:23"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"src/jcodemunch_mcp/tools/get_churn_rate.py","line":31,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:src/jcodemunch_mcp/tools/get_churn_rate.py:31"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"src/jcodemunch_mcp/tools/get_delivery_metrics.py","line":57,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:src/jcodemunch_mcp/tools/get_delivery_metrics.py:57"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"src/jcodemunch_mcp/tools/get_hotspots.py","line":34,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:src/jcodemunch_mcp/tools/get_hotspots.py:34"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"src/jcodemunch_mcp/tools/get_symbol_provenance.py","line":40,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:src/jcodemunch_mcp/tools/get_symbol_provenance.py:40"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'Popen' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"src/jcodemunch_mcp/tools/mermaid_viewer.py","line":129,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:src/jcodemunch_mcp/tools/mermaid_viewer.py:129"},{"rule_id":"opengrep/python.lang.security.use-defused-xml","severity":"high","message":"The Python documentation recommends using `defusedxml` instead of `xml` because the native Python `xml` library is vulnerable to XML External Entity (XXE) attacks. These attacks can leak confidential data and \"XML bombs\" can cause denial of service. [confidence low]","path":"src/jcodemunch_mcp/tools/observatory_render.py","line":15,"fingerprint":"python.lang.security.use-defused-xml:src/jcodemunch_mcp/tools/observatory_render.py:15"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"src/jcodemunch_mcp/tools/winnow_symbols.py","line":58,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:src/jcodemunch_mcp/tools/winnow_symbols.py:58"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'Popen' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"src/jcodemunch_mcp/windowless.py","line":157,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:src/jcodemunch_mcp/windowless.py:157"},{"rule_id":"opengrep/python.lang.security.audit.non-literal-import","severity":"medium","message":"Untrusted user input in `importlib.import_module()` function allows an attacker to load arbitrary code. Avoid dynamic values in `importlib.import_module()` or use a whitelist to prevent running untrusted code. [confidence low]","path":"benchmarks/competitive/feed.py","line":70,"fingerprint":"python.lang.security.audit.non-literal-import:benchmarks/competitive/feed.py:70"},{"rule_id":"opengrep/python.lang.security.audit.dynamic-urllib-use-detected","severity":"medium","message":"Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead. [confidence low]","path":"benchmarks/competitive/feed.py","line":101,"fingerprint":"python.lang.security.audit.dynamic-urllib-use-detected:benchmarks/competitive/feed.py:101"},{"rule_id":"opengrep/python.lang.security.audit.non-literal-import","severity":"medium","message":"Untrusted user input in `importlib.import_module()` function allows an attacker to load arbitrary code. Avoid dynamic values in `importlib.import_module()` or use a whitelist to prevent running untrusted code. [confidence low]","path":"benchmarks/competitive/run.py","line":71,"fingerprint":"python.lang.security.audit.non-literal-import:benchmarks/competitive/run.py:71"},{"rule_id":"opengrep/python.lang.security.audit.dynamic-urllib-use-detected","severity":"medium","message":"Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead. [confidence low]","path":"benchmarks/savings_tokenizer/lookups.py","line":74,"fingerprint":"python.lang.security.audit.dynamic-urllib-use-detected:benchmarks/savings_tokenizer/lookups.py:74"},{"rule_id":"opengrep/python.lang.security.audit.dynamic-urllib-use-detected","severity":"medium","message":"Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead. [confidence low]","path":"benchmarks/savings_tokenizer/measure.py","line":104,"fingerprint":"python.lang.security.audit.dynamic-urllib-use-detected:benchmarks/savings_tokenizer/measure.py:104"},{"rule_id":"opengrep/python.flask.security.xss.audit.direct-use-of-jinja2","severity":"medium","message":"Detected direct use of jinja2. If not done properly, this may bypass HTML escaping which opens up the application to cross-site scripting (XSS) vulnerabilities. Prefer using the Flask method 'render_template()' and templates with a '.html' extension in order to prevent XSS. [confidence low]","path":"munch-bench/munch_bench/leaderboard.py","line":211,"fingerprint":"python.flask.security.xss.audit.direct-use-of-jinja2:munch-bench/munch_bench/leaderboard.py:211"},{"rule_id":"opengrep/python.lang.security.audit.dynamic-urllib-use-detected","severity":"medium","message":"Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead. [confidence low]","path":"scripts/registry_verify.py","line":55,"fingerprint":"python.lang.security.audit.dynamic-urllib-use-detected:scripts/registry_verify.py:55"},{"rule_id":"opengrep/python.lang.security.audit.dynamic-urllib-use-detected","severity":"medium","message":"Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead. [confidence low]","path":"scripts/registry_verify.py","line":134,"fingerprint":"python.lang.security.audit.dynamic-urllib-use-detected:scripts/registry_verify.py:134"},{"rule_id":"opengrep/python.lang.security.audit.dynamic-urllib-use-detected","severity":"medium","message":"Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead. [confidence low]","path":"scripts/release_preflight.py","line":359,"fingerprint":"python.lang.security.audit.dynamic-urllib-use-detected:scripts/release_preflight.py:359"},{"rule_id":"opengrep/python.lang.security.audit.non-literal-import","severity":"medium","message":"Untrusted user input in `importlib.import_module()` function allows an attacker to load arbitrary code. Avoid dynamic values in `importlib.import_module()` or use a whitelist to prevent running untrusted code. [confidence low]","path":"src/jcodemunch_mcp/cli/init.py","line":2536,"fingerprint":"python.lang.security.audit.non-literal-import:src/jcodemunch_mcp/cli/init.py:2536"},{"rule_id":"opengrep/python.lang.security.audit.dynamic-urllib-use-detected","severity":"medium","message":"Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead. [confidence low]","path":"src/jcodemunch_mcp/embeddings/local_encoder.py","line":139,"fingerprint":"python.lang.security.audit.dynamic-urllib-use-detected:src/jcodemunch_mcp/embeddings/local_encoder.py:139"},{"rule_id":"opengrep/python.lang.security.audit.non-literal-import","severity":"medium","message":"Untrusted user input in `importlib.import_module()` function allows an attacker to load arbitrary code. Avoid dynamic values in `importlib.import_module()` or use a whitelist to prevent running untrusted code. [confidence low]","path":"src/jcodemunch_mcp/encoding/schemas/registry.py","line":22,"fingerprint":"python.lang.security.audit.non-literal-import:src/jcodemunch_mcp/encoding/schemas/registry.py:22"},{"rule_id":"opengrep/python.lang.security.audit.formatted-sql-query","severity":"medium","message":"Detected possible formatted SQL query. Use parameterized queries instead. [confidence low]","path":"src/jcodemunch_mcp/evidence/scip_ingest.py","line":339,"fingerprint":"python.lang.security.audit.formatted-sql-query:src/jcodemunch_mcp/evidence/scip_ingest.py:339"},{"rule_id":"opengrep/python.lang.security.audit.regex_dos","severity":"medium","message":"Detected usage of re.compile with an inefficient regular expression. This can lead to regular expression denial of service, which can result in service down time. Instead, check all regexes or use safer alternatives such as pyre2. [confidence low]","path":"src/jcodemunch_mcp/parser/extractor.py","line":12295,"fingerprint":"python.lang.security.audit.regex_dos:src/jcodemunch_mcp/parser/extractor.py:12295"},{"rule_id":"opengrep/python.lang.security.audit.regex_dos","severity":"medium","message":"Detected usage of re.compile with an inefficient regular expression. This can lead to regular expression denial of service, which can result in service down time. Instead, check all regexes or use safer alternatives such as pyre2. [confidence low]","path":"src/jcodemunch_mcp/parser/extractor.py","line":12304,"fingerprint":"python.lang.security.audit.regex_dos:src/jcodemunch_mcp/parser/extractor.py:12304"},{"rule_id":"opengrep/python.lang.security.audit.regex_dos","severity":"medium","message":"Detected usage of re.compile with an inefficient regular expression. This can lead to regular expression denial of service, which can result in service down time. Instead, check all regexes or use safer alternatives such as pyre2. [confidence low]","path":"src/jcodemunch_mcp/parser/extractor.py","line":12410,"fingerprint":"python.lang.security.audit.regex_dos:src/jcodemunch_mcp/parser/extractor.py:12410"},{"rule_id":"opengrep/python.lang.security.audit.regex_dos","severity":"medium","message":"Detected usage of re.compile with an inefficient regular expression. This can lead to regular expression denial of service, which can result in service down time. Instead, check all regexes or use safer alternatives such as pyre2. [confidence low]","path":"src/jcodemunch_mcp/parser/extractor.py","line":20091,"fingerprint":"python.lang.security.audit.regex_dos:src/jcodemunch_mcp/parser/extractor.py:20091"},{"rule_id":"opengrep/python.lang.security.audit.non-literal-import","severity":"medium","message":"Untrusted user input in `importlib.import_module()` function allows an attacker to load arbitrary code. Avoid dynamic values in `importlib.import_module()` or use a whitelist to prevent running untrusted code. [confidence low]","path":"src/jcodemunch_mcp/parser/grammar_pack.py","line":141,"fingerprint":"python.lang.security.audit.non-literal-import:src/jcodemunch_mcp/parser/grammar_pack.py:141"},{"rule_id":"opengrep/python.lang.security.audit.regex_dos","severity":"medium","message":"Detected usage of re.compile with an inefficient regular expression. This can lead to regular expression denial of service, which can result in service down time. Instead, check all regexes or use safer alternatives such as pyre2. [confidence low]","path":"src/jcodemunch_mcp/parser/imports.py","line":1368,"fingerprint":"python.lang.security.audit.regex_dos:src/jcodemunch_mcp/parser/imports.py:1368"},{"rule_id":"opengrep/python.lang.security.audit.formatted-sql-query","severity":"medium","message":"Detected possible formatted SQL query. Use parameterized queries instead. [confidence low]","path":"src/jcodemunch_mcp/runtime/_calls_store.py","line":50,"fingerprint":"python.lang.security.audit.formatted-sql-query:src/jcodemunch_mcp/runtime/_calls_store.py:50"},{"rule_id":"opengrep/python.lang.security.audit.formatted-sql-query","severity":"medium","message":"Detected possible formatted SQL query. Use parameterized queries instead. [confidence low]","path":"src/jcodemunch_mcp/runtime/ingest.py","line":329,"fingerprint":"python.lang.security.audit.formatted-sql-query:src/jcodemunch_mcp/runtime/ingest.py:329"},{"rule_id":"opengrep/python.lang.security.audit.formatted-sql-query","severity":"medium","message":"Detected possible formatted SQL query. Use parameterized queries instead. [confidence low]","path":"src/jcodemunch_mcp/runtime/sql_ingest.py","line":504,"fingerprint":"python.lang.security.audit.formatted-sql-query:src/jcodemunch_mcp/runtime/sql_ingest.py:504"},{"rule_id":"opengrep/python.lang.security.audit.formatted-sql-query","severity":"medium","message":"Detected possible formatted SQL query. Use parameterized queries instead. [confidence low]","path":"src/jcodemunch_mcp/runtime/stack_ingest.py","line":327,"fingerprint":"python.lang.security.audit.formatted-sql-query:src/jcodemunch_mcp/runtime/stack_ingest.py:327"},{"rule_id":"opengrep/python.lang.security.audit.logging.python-logger-credential-disclosure","severity":"medium","message":"Detected a python logger call with a potential hardcoded secret \"savings_tokenizer unreadable; using %s\" being logged. This may lead to secret credentials being exposed. Make sure that the logger is not logging  sensitive information. [confidence medium]","path":"src/jcodemunch_mcp/savings_tokenizer.py","line":211,"fingerprint":"python.lang.security.audit.logging.python-logger-credential-disclosure:src/jcodemunch_mcp/savings_tokenizer.py:211"},{"rule_id":"opengrep/python.lang.security.audit.logging.python-logger-credential-disclosure","severity":"medium","message":"Detected a python logger call with a potential hardcoded secret \"savings_tokenizer %r is not a table; using %s\" being logged. This may lead to secret credentials being exposed. Make sure that the logger is not logging  sensitive information. [confidence medium]","path":"src/jcodemunch_mcp/savings_tokenizer.py","line":216,"fingerprint":"python.lang.security.audit.logging.python-logger-credential-disclosure:src/jcodemunch_mcp/savings_tokenizer.py:216"},{"rule_id":"opengrep/python.lang.security.insecure-hash-algorithm-sha1","severity":"medium","message":"Detected SHA1 hash algorithm which is considered insecure. SHA1 is not collision resistant and is therefore not suitable as a cryptographic signature. Use SHA256 or SHA3 instead. [confidence medium]","path":"src/jcodemunch_mcp/savings_tokenizer.py","line":304,"fingerprint":"python.lang.security.insecure-hash-algorithm-sha1:src/jcodemunch_mcp/savings_tokenizer.py:304"},{"rule_id":"opengrep/python.lang.security.audit.regex_dos","severity":"medium","message":"Detected usage of re.compile with an inefficient regular expression. This can lead to regular expression denial of service, which can result in service down time. Instead, check all regexes or use safer alternatives such as pyre2. [confidence low]","path":"src/jcodemunch_mcp/security.py","line":734,"fingerprint":"python.lang.security.audit.regex_dos:src/jcodemunch_mcp/security.py:734"},{"rule_id":"opengrep/python.lang.security.insecure-hash-algorithm-sha1","severity":"medium","message":"Detected SHA1 hash algorithm which is considered insecure. SHA1 is not collision resistant and is therefore not suitable as a cryptographic signature. Use SHA256 or SHA3 instead. [confidence medium]","path":"src/jcodemunch_mcp/server.py","line":6331,"fingerprint":"python.lang.security.insecure-hash-algorithm-sha1:src/jcodemunch_mcp/server.py:6331"},{"rule_id":"opengrep/python.lang.security.audit.formatted-sql-query","severity":"medium","message":"Detected possible formatted SQL query. Use parameterized queries instead. [confidence low]","path":"src/jcodemunch_mcp/storage/bm25_stats.py","line":302,"fingerprint":"python.lang.security.audit.formatted-sql-query:src/jcodemunch_mcp/storage/bm25_stats.py:302"},{"rule_id":"opengrep/python.lang.security.audit.formatted-sql-query","severity":"medium","message":"Detected possible formatted SQL query. Use parameterized queries instead. [confidence low]","path":"src/jcodemunch_mcp/storage/bm25_stats.py","line":308,"fingerprint":"python.lang.security.audit.formatted-sql-query:src/jcodemunch_mcp/storage/bm25_stats.py:308"},{"rule_id":"opengrep/python.lang.security.audit.formatted-sql-query","severity":"medium","message":"Detected possible formatted SQL query. Use parameterized queries instead. [confidence low]","path":"src/jcodemunch_mcp/storage/bm25_stats.py","line":320,"fingerprint":"python.lang.security.audit.formatted-sql-query:src/jcodemunch_mcp/storage/bm25_stats.py:320"},{"rule_id":"opengrep/python.lang.security.insecure-hash-algorithm-sha1","severity":"medium","message":"Detected SHA1 hash algorithm which is considered insecure. SHA1 is not collision resistant and is therefore not suitable as a cryptographic signature. Use SHA256 or SHA3 instead. [confidence medium]","path":"src/jcodemunch_mcp/storage/git_root.py","line":58,"fingerprint":"python.lang.security.insecure-hash-algorithm-sha1:src/jcodemunch_mcp/storage/git_root.py:58"},{"rule_id":"opengrep/python.lang.security.audit.formatted-sql-query","severity":"medium","message":"Detected possible formatted SQL query. Use parameterized queries instead. [confidence low]","path":"src/jcodemunch_mcp/storage/sqlite_store.py","line":300,"fingerprint":"python.lang.security.audit.formatted-sql-query:src/jcodemunch_mcp/storage/sqlite_store.py:300"},{"rule_id":"opengrep/python.lang.security.audit.formatted-sql-query","severity":"medium","message":"Detected possible formatted SQL query. Use parameterized queries instead. [confidence low]","path":"src/jcodemunch_mcp/storage/sqlite_store.py","line":859,"fingerprint":"python.lang.security.audit.formatted-sql-query:src/jcodemunch_mcp/storage/sqlite_store.py:859"},{"rule_id":"opengrep/python.lang.security.audit.formatted-sql-query","severity":"medium","message":"Detected possible formatted SQL query. Use parameterized queries instead. [confidence low]","path":"src/jcodemunch_mcp/storage/sqlite_store.py","line":901,"fingerprint":"python.lang.security.audit.formatted-sql-query:src/jcodemunch_mcp/storage/sqlite_store.py:901"},{"rule_id":"opengrep/python.lang.security.audit.formatted-sql-query","severity":"medium","message":"Detected possible formatted SQL query. Use parameterized queries instead. [confidence low]","path":"src/jcodemunch_mcp/storage/text_filter.py","line":138,"fingerprint":"python.lang.security.audit.formatted-sql-query:src/jcodemunch_mcp/storage/text_filter.py:138"},{"rule_id":"opengrep/python.lang.security.audit.formatted-sql-query","severity":"medium","message":"Detected possible formatted SQL query. Use parameterized queries instead. [confidence low]","path":"src/jcodemunch_mcp/storage/text_filter.py","line":153,"fingerprint":"python.lang.security.audit.formatted-sql-query:src/jcodemunch_mcp/storage/text_filter.py:153"},{"rule_id":"opengrep/python.lang.security.audit.logging.python-logger-credential-disclosure","severity":"medium","message":"Detected a python logger call with a potential hardcoded secret \"token counts unreadable at %s\" being logged. This may lead to secret credentials being exposed. Make sure that the logger is not logging  sensitive information. [confidence medium]","path":"src/jcodemunch_mcp/storage/token_counts.py","line":205,"fingerprint":"python.lang.security.audit.logging.python-logger-credential-disclosure:src/jcodemunch_mcp/storage/token_counts.py:205"},{"rule_id":"opengrep/python.lang.security.audit.formatted-sql-query","severity":"medium","message":"Detected possible formatted SQL query. Use parameterized queries instead. [confidence low]","path":"src/jcodemunch_mcp/storage/token_tracker.py","line":1021,"fingerprint":"python.lang.security.audit.formatted-sql-query:src/jcodemunch_mcp/storage/token_tracker.py:1021"},{"rule_id":"opengrep/python.lang.security.audit.formatted-sql-query","severity":"medium","message":"Detected possible formatted SQL query. Use parameterized queries instead. [confidence low]","path":"src/jcodemunch_mcp/storage/token_tracker.py","line":1023,"fingerprint":"python.lang.security.audit.formatted-sql-query:src/jcodemunch_mcp/storage/token_tracker.py:1023"},{"rule_id":"opengrep/python.lang.security.insecure-hash-algorithm-sha1","severity":"medium","message":"Detected SHA1 hash algorithm which is considered insecure. SHA1 is not collision resistant and is therefore not suitable as a cryptographic signature. Use SHA256 or SHA3 instead. [confidence medium]","path":"src/jcodemunch_mcp/storage/token_tracker.py","line":1308,"fingerprint":"python.lang.security.insecure-hash-algorithm-sha1:src/jcodemunch_mcp/storage/token_tracker.py:1308"},{"rule_id":"opengrep/python.lang.security.insecure-hash-algorithm-sha1","severity":"medium","message":"Detected SHA1 hash algorithm which is considered insecure. SHA1 is not collision resistant and is therefore not suitable as a cryptographic signature. Use SHA256 or SHA3 instead. [confidence medium]","path":"src/jcodemunch_mcp/tools/index_folder.py","line":711,"fingerprint":"python.lang.security.insecure-hash-algorithm-sha1:src/jcodemunch_mcp/tools/index_folder.py:711"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-regexp","severity":"medium","message":"RegExp() called with a `glob` function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use hardcoded regexes instead. If your regex is run on user-controlled [confidence low]","path":"vscode-extension/src/extension.ts","line":50,"fingerprint":"javascript.lang.security.audit.detect-non-literal-regexp:vscode-extension/src/extension.ts:50"},{"rule_id":"opengrep/javascript.lang.security.html-in-template-string","severity":"medium","message":"This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS). [confidence low]","path":"vscode-extension/src/riskGutter.ts","line":79,"fingerprint":"javascript.lang.security.html-in-template-string:vscode-extension/src/riskGutter.ts:79"},{"rule_id":"opengrep/rust.lang.security.args","severity":"low","message":"args should not be used for security operations. From the docs: \"The first element is traditionally the path of the executable, but it can be set to arbitrary text, and might not even exist. This means this property should not be relied upon for security purposes.\" [confidence high]","path":"benchmarks/rust_fidelity/oracle/src/main.rs","line":288,"fingerprint":"rust.lang.security.args:benchmarks/rust_fidelity/oracle/src/main.rs:288"},{"rule_id":"opengrep/python.lang.security.use-defusedcsv","severity":"low","message":"Detected the generation of a CSV file using the built-in `csv` module. If user data is used to generate the data in this file, it is possible that an attacker could inject a formula when the CSV is imported into a spreadsheet application that runs an attacker script, which could steal data from the  [confidence low]","path":"src/jcodemunch_mcp/cli/receipt.py","line":764,"fingerprint":"python.lang.security.use-defusedcsv:src/jcodemunch_mcp/cli/receipt.py:764"},{"rule_id":"opengrep/python.lang.security.use-defusedcsv","severity":"low","message":"Detected the generation of a CSV file using the built-in `csv` module. If user data is used to generate the data in this file, it is possible that an attacker could inject a formula when the CSV is imported into a spreadsheet application that runs an attacker script, which could steal data from the  [confidence low]","path":"src/jcodemunch_mcp/encoding/format.py","line":287,"fingerprint":"python.lang.security.use-defusedcsv:src/jcodemunch_mcp/encoding/format.py:287"}],"evidence":[],"data":{"rulesets":["python","typescript","javascript","rust","bash","php","go","dockerfile"]},"error":null},{"analyzer":"sec-deps","pillar":"security","status":"ok","tool_version":"osv-scanner version: 2.7.1","metrics":{"vulnerable_packages":2.0,"vulnerabilities":3.0,"vulns_critical":0.0,"vulns_high":0.0,"vulns_medium":3.0,"vulns_low":0.0,"vulns_unknown":0.0,"penalty":6.0},"findings":[{"rule_id":"osv/GHSA-69hj-f68j-2879","severity":"medium","message":"filelock@3.20.3 (PyPI) is affected by GHSA-69hj-f68j-2879","path":"uv.lock","line":null,"fingerprint":"filelock@3.20.3 (PyPI):GHSA-69hj-f68j-2879"},{"rule_id":"osv/GHSA-8mx5-7m5m-r77g","severity":"medium","message":"filelock@3.20.3 (PyPI) is affected by GHSA-8mx5-7m5m-r77g","path":"uv.lock","line":null,"fingerprint":"filelock@3.20.3 (PyPI):GHSA-8mx5-7m5m-r77g"},{"rule_id":"osv/GHSA-g3hv-75wg-m249","severity":"medium","message":"minimatch@10.2.6 (npm) is affected by GHSA-g3hv-75wg-m249","path":"vscode-extension/package-lock.json","line":null,"fingerprint":"minimatch@10.2.6 (npm):GHSA-g3hv-75wg-m249"}],"evidence":[],"data":{"ecosystems":["PyPI","npm"]},"error":null},{"analyzer":"sec-actions","pillar":"security","status":"ok","tool_version":"zizmor 1.32.0","metrics":{"workflows":21.0,"findings":75.0,"findings_high":24.0,"findings_medium":31.0,"findings_low":20.0,"penalty":273.4},"findings":[{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/health-radar/action.yml","line":62,"fingerprint":"template-injection:.github/actions/health-radar/action.yml:62"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/health-radar/action.yml","line":65,"fingerprint":"template-injection:.github/actions/health-radar/action.yml:65"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/health-radar/action.yml","line":73,"fingerprint":"template-injection:.github/actions/health-radar/action.yml:73"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/actions/health-radar/action.yml","line":75,"fingerprint":"template-injection:.github/actions/health-radar/action.yml:75"},{"rule_id":"zizmor/dangerous-triggers","severity":"high","message":"use of fundamentally insecure workflow trigger [confidence medium]","path":".github/workflows/health-radar-comment.yml","line":12,"fingerprint":"dangerous-triggers:.github/workflows/health-radar-comment.yml:12"},{"rule_id":"zizmor/dangerous-triggers","severity":"high","message":"use of fundamentally insecure workflow trigger [confidence medium]","path":".github/workflows/inbound-depeval.yml","line":21,"fingerprint":"dangerous-triggers:.github/workflows/inbound-depeval.yml:21"},{"rule_id":"zizmor/github-env","severity":"high","message":"dangerous use of environment file [confidence low]","path":".github/workflows/inbound-depeval.yml","line":203,"fingerprint":"github-env:.github/workflows/inbound-depeval.yml:203"},{"rule_id":"zizmor/dangerous-triggers","severity":"high","message":"use of fundamentally insecure workflow trigger [confidence medium]","path":".github/workflows/inbound-fix-promote.yml","line":13,"fingerprint":"dangerous-triggers:.github/workflows/inbound-fix-promote.yml:13"},{"rule_id":"zizmor/dangerous-triggers","severity":"high","message":"use of fundamentally insecure workflow trigger [confidence medium]","path":".github/workflows/inbound-intake.yml","line":15,"fingerprint":"dangerous-triggers:.github/workflows/inbound-intake.yml:15"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/workflows/pr-gate.yml","line":338,"fingerprint":"template-injection:.github/workflows/pr-gate.yml:338"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/workflows/pr-gate.yml","line":339,"fingerprint":"template-injection:.github/workflows/pr-gate.yml:339"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/workflows/pr-gate.yml","line":355,"fingerprint":"template-injection:.github/workflows/pr-gate.yml:355"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/workflows/pr-gate.yml","line":356,"fingerprint":"template-injection:.github/workflows/pr-gate.yml:356"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/workflows/pr-gate.yml","line":369,"fingerprint":"template-injection:.github/workflows/pr-gate.yml:369"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/workflows/pr-gate.yml","line":370,"fingerprint":"template-injection:.github/workflows/pr-gate.yml:370"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/workflows/pr-gate.yml","line":391,"fingerprint":"template-injection:.github/workflows/pr-gate.yml:391"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/workflows/release.yml","line":102,"fingerprint":"template-injection:.github/workflows/release.yml:102"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/workflows/release.yml","line":103,"fingerprint":"template-injection:.github/workflows/release.yml:103"},{"rule_id":"zizmor/cache-poisoning","severity":"high","message":"runtime artifacts potentially vulnerable to a cache poisoning attack [confidence low]","path":".github/workflows/release.yml","line":85,"fingerprint":"cache-poisoning:.github/workflows/release.yml:85"},{"rule_id":"zizmor/cache-poisoning","severity":"high","message":"runtime artifacts potentially vulnerable to a cache poisoning attack [confidence low]","path":".github/workflows/release.yml","line":130,"fingerprint":"cache-poisoning:.github/workflows/release.yml:130"},{"rule_id":"zizmor/cache-poisoning","severity":"high","message":"runtime artifacts potentially vulnerable to a cache poisoning attack [confidence low]","path":".github/workflows/release.yml","line":206,"fingerprint":"cache-poisoning:.github/workflows/release.yml:206"},{"rule_id":"zizmor/cache-poisoning","severity":"high","message":"runtime artifacts potentially vulnerable to a cache poisoning attack [confidence low]","path":".github/workflows/release.yml","line":342,"fingerprint":"cache-poisoning:.github/workflows/release.yml:342"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":"speedreview/action.yml","line":55,"fingerprint":"unpinned-uses:speedreview/action.yml:55"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":"speedreview/action.yml","line":60,"fingerprint":"unpinned-uses:speedreview/action.yml:60"},{"rule_id":"zizmor/dependabot-cooldown","severity":"medium","message":"insufficient cooldown in Dependabot updates [confidence high]","path":".github/dependabot.yml","line":12,"fingerprint":"dependabot-cooldown:.github/dependabot.yml:12"},{"rule_id":"zizmor/dependabot-cooldown","severity":"medium","message":"insufficient cooldown in Dependabot updates [confidence high]","path":".github/dependabot.yml","line":35,"fingerprint":"dependabot-cooldown:.github/dependabot.yml:35"},{"rule_id":"zizmor/dependabot-cooldown","severity":"medium","message":"insufficient cooldown in Dependabot updates [confidence high]","path":".github/dependabot.yml","line":52,"fingerprint":"dependabot-cooldown:.github/dependabot.yml:52"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/benchmark.yml","line":51,"fingerprint":"artipacked:.github/workflows/benchmark.yml:51"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/health-radar.yml","line":22,"fingerprint":"artipacked:.github/workflows/health-radar.yml:22"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/main.yml","line":43,"fingerprint":"artipacked:.github/workflows/main.yml:43"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/main.yml","line":75,"fingerprint":"artipacked:.github/workflows/main.yml:75"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/main.yml","line":164,"fingerprint":"artipacked:.github/workflows/main.yml:164"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/nightly.yml","line":40,"fingerprint":"artipacked:.github/workflows/nightly.yml:40"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/nightly.yml","line":77,"fingerprint":"artipacked:.github/workflows/nightly.yml:77"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/nightly.yml","line":104,"fingerprint":"artipacked:.github/workflows/nightly.yml:104"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/pr-gate.yml","line":49,"fingerprint":"artipacked:.github/workflows/pr-gate.yml:49"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/pr-gate.yml","line":75,"fingerprint":"artipacked:.github/workflows/pr-gate.yml:75"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/pr-gate.yml","line":91,"fingerprint":"artipacked:.github/workflows/pr-gate.yml:91"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/pr-gate.yml","line":109,"fingerprint":"artipacked:.github/workflows/pr-gate.yml:109"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/pr-gate.yml","line":124,"fingerprint":"artipacked:.github/workflows/pr-gate.yml:124"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/pr-gate.yml","line":147,"fingerprint":"artipacked:.github/workflows/pr-gate.yml:147"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/pr-gate.yml","line":182,"fingerprint":"artipacked:.github/workflows/pr-gate.yml:182"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/pr-gate.yml","line":233,"fingerprint":"artipacked:.github/workflows/pr-gate.yml:233"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/pr-gate.yml","line":266,"fingerprint":"artipacked:.github/workflows/pr-gate.yml:266"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/pr-gate.yml","line":349,"fingerprint":"artipacked:.github/workflows/pr-gate.yml:349"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/pr-gate.yml","line":363,"fingerprint":"artipacked:.github/workflows/pr-gate.yml:363"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/pr-gate.yml","line":377,"fingerprint":"artipacked:.github/workflows/pr-gate.yml:377"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/release.yml","line":81,"fingerprint":"artipacked:.github/workflows/release.yml:81"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/release.yml","line":127,"fingerprint":"artipacked:.github/workflows/release.yml:127"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/release.yml","line":203,"fingerprint":"artipacked:.github/workflows/release.yml:203"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/release.yml","line":262,"fingerprint":"artipacked:.github/workflows/release.yml:262"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/release.yml","line":339,"fingerprint":"artipacked:.github/workflows/release.yml:339"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/release.yml","line":415,"fingerprint":"artipacked:.github/workflows/release.yml:415"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/release.yml","line":467,"fingerprint":"artipacked:.github/workflows/release.yml:467"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/security.yml","line":50,"fingerprint":"artipacked:.github/workflows/security.yml:50"},{"rule_id":"zizmor/self-repository","severity":"low","message":"use GitHub's dedicated self-repository syntax [confidence high]","path":".github/workflows/health-radar.yml","line":28,"fingerprint":"self-repository:.github/workflows/health-radar.yml:28"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/release.yml","line":220,"fingerprint":"template-injection:.github/workflows/release.yml:220"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/release.yml","line":223,"fingerprint":"template-injection:.github/workflows/release.yml:223"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/release.yml","line":270,"fingerprint":"template-injection:.github/workflows/release.yml:270"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/release.yml","line":270,"fingerprint":"template-injection:.github/workflows/release.yml:270"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/release.yml","line":273,"fingerprint":"template-injection:.github/workflows/release.yml:273"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/release.yml","line":357,"fingerprint":"template-injection:.github/workflows/release.yml:357"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/release.yml","line":360,"fingerprint":"template-injection:.github/workflows/release.yml:360"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/release.yml","line":381,"fingerprint":"template-injection:.github/workflows/release.yml:381"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/release.yml","line":381,"fingerprint":"template-injection:.github/workflows/release.yml:381"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/release.yml","line":381,"fingerprint":"template-injection:.github/workflows/release.yml:381"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/release.yml","line":389,"fingerprint":"template-injection:.github/workflows/release.yml:389"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/release.yml","line":435,"fingerprint":"template-injection:.github/workflows/release.yml:435"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/release.yml","line":438,"fingerprint":"template-injection:.github/workflows/release.yml:438"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/release.yml","line":440,"fingerprint":"template-injection:.github/workflows/release.yml:440"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/release.yml","line":484,"fingerprint":"template-injection:.github/workflows/release.yml:484"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/release.yml","line":498,"fingerprint":"template-injection:.github/workflows/release.yml:498"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/release.yml","line":508,"fingerprint":"template-injection:.github/workflows/release.yml:508"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/release.yml","line":510,"fingerprint":"template-injection:.github/workflows/release.yml:510"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/release.yml","line":514,"fingerprint":"template-injection:.github/workflows/release.yml:514"}],"evidence":[],"data":{},"error":null},{"analyzer":"sec-posture","pillar":"security","status":"ok","tool_version":null,"metrics":{"check:security_policy":1.0,"check:dependency_updates":1.0,"check:signed_commits":1.0,"check:lockfiles":0.0,"signed_commit_share":1.0,"unpinned_manifests":1.0},"findings":[],"evidence":[{"kind":"posture","description":"Security policy: SECURITY.md","ref":"SECURITY.md","url":null,"weight":0.0},{"kind":"posture","description":"Dependency updates: .github/dependabot.yml","ref":".github/dependabot.yml","url":null,"weight":0.0},{"kind":"posture","description":"benchmarks/rust_fidelity/oracle/Cargo.toml has no lockfile alongside it (unpinned dependencies)","ref":"benchmarks/rust_fidelity/oracle/Cargo.toml","url":null,"weight":0.3}],"data":{},"error":null},{"analyzer":"sec-distribution","pillar":"security","status":"ok","tool_version":null,"metrics":{"signals":1.0,"binary_assets":10.0,"suspicious":0.0},"findings":[],"evidence":[{"kind":"binary-release-asset","description":"release v1.108.444 ships jcodemunch_mcp-1.108.444.tar.gz (2 downloads)","ref":"jcodemunch_mcp-1.108.444.tar.gz","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.444/jcodemunch_mcp-1.108.444.tar.gz","weight":0.0},{"kind":"binary-release-asset","description":"release v1.108.443 ships jcodemunch_mcp-1.108.443.tar.gz (2 downloads)","ref":"jcodemunch_mcp-1.108.443.tar.gz","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.443/jcodemunch_mcp-1.108.443.tar.gz","weight":0.0},{"kind":"binary-release-asset","description":"release v1.108.442 ships jcodemunch_mcp-1.108.442.tar.gz (1 downloads)","ref":"jcodemunch_mcp-1.108.442.tar.gz","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.442/jcodemunch_mcp-1.108.442.tar.gz","weight":0.0},{"kind":"binary-release-asset","description":"release v1.108.441 ships jcodemunch_mcp-1.108.441.tar.gz (1 downloads)","ref":"jcodemunch_mcp-1.108.441.tar.gz","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.441/jcodemunch_mcp-1.108.441.tar.gz","weight":0.0},{"kind":"binary-release-asset","description":"release v1.108.440 ships jcodemunch_mcp-1.108.440.tar.gz (2 downloads)","ref":"jcodemunch_mcp-1.108.440.tar.gz","url":"https://github.com/jgravelle/jcodemunch-mcp/releases/download/v1.108.440/jcodemunch_mcp-1.108.440.tar.gz","weight":0.0}],"data":{"signals":["binary-release-assets"],"suspicious":false,"unusual_traction":false,"metadata":true},"error":null},{"analyzer":"qual-complexity","pillar":"quality","status":"ok","tool_version":"lizard 1.25.1","metrics":{"functions":5078.0,"function_nloc":109032.0,"mean_ccn":6.9,"p90_ccn":14.0,"complex_functions":430.0,"long_functions":118.0,"many_param_functions":84.0,"risky_nloc_share":0.4375},"findings":[],"evidence":[{"kind":"complex-function","description":"index_folder in src/jcodemunch_mcp/tools/index_folder.py: complexity 362, 1462 lines","ref":"src/jcodemunch_mcp/tools/index_folder.py","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/src/jcodemunch_mcp/tools/index_folder.py#L2243","weight":1.0},{"kind":"complex-function","description":"_call_tool_impl in src/jcodemunch_mcp/server.py: complexity 298, 1628 lines","ref":"src/jcodemunch_mcp/server.py","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/src/jcodemunch_mcp/server.py#L6257","weight":1.0},{"kind":"complex-function","description":"main in src/jcodemunch_mcp/server.py: complexity 219, 2008 lines","ref":"src/jcodemunch_mcp/server.py","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/src/jcodemunch_mcp/server.py#L9997","weight":1.0},{"kind":"complex-function","description":"_run_config in src/jcodemunch_mcp/server.py: complexity 146, 494 lines","ref":"src/jcodemunch_mcp/server.py","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/src/jcodemunch_mcp/server.py#L9142","weight":1.0},{"kind":"complex-function","description":"run_init in src/jcodemunch_mcp/cli/init.py: complexity 136, 318 lines","ref":"src/jcodemunch_mcp/cli/init.py","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/src/jcodemunch_mcp/cli/init.py#L1413","weight":1.0},{"kind":"complex-function","description":"search_symbols in src/jcodemunch_mcp/tools/search_symbols.py: complexity 135, 518 lines","ref":"src/jcodemunch_mcp/tools/search_symbols.py","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/src/jcodemunch_mcp/tools/search_symbols.py#L752","weight":1.0},{"kind":"complex-function","description":"_compute_new_import in src/jcodemunch_mcp/tools/plan_refactoring.py: complexity 123, 340 lines","ref":"src/jcodemunch_mcp/tools/plan_refactoring.py","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/src/jcodemunch_mcp/tools/plan_refactoring.py#L595","weight":1.0},{"kind":"complex-function","description":"_python_dynamic_imports in src/jcodemunch_mcp/parser/imports.py: complexity 119, 181 lines","ref":"src/jcodemunch_mcp/parser/imports.py","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/src/jcodemunch_mcp/parser/imports.py#L565","weight":1.0},{"kind":"complex-function","description":"find_implementations in src/jcodemunch_mcp/tools/find_implementations.py: complexity 113, 332 lines","ref":"src/jcodemunch_mcp/tools/find_implementations.py","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/src/jcodemunch_mcp/tools/find_implementations.py#L170","weight":1.0},{"kind":"complex-function","description":"get_blast_radius in src/jcodemunch_mcp/tools/get_blast_radius.py: complexity 107, 332 lines","ref":"src/jcodemunch_mcp/tools/get_blast_radius.py","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/src/jcodemunch_mcp/tools/get_blast_radius.py#L465","weight":1.0}],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":152403.0,"duplicated_lines":8300.0,"duplicated_share":0.0545,"files":484.0},"findings":[],"evidence":[{"kind":"duplicate-code","description":"6+ duplicated lines: .claude/hooks/_common.py:433 and .claude/hooks/_common.py:476","ref":".claude/hooks/_common.py","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.claude/hooks/_common.py#L433","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: .github/inbound/render_prompts.py:121 and .github/inbound/render_prompts.py:154","ref":".github/inbound/render_prompts.py","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/.github/inbound/render_prompts.py#L121","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: benchmarks/attic/profile_backpressure.py:211 and benchmarks/attic/profile_backpressure.py:235","ref":"benchmarks/attic/profile_backpressure.py","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/benchmarks/attic/profile_backpressure.py#L211","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: benchmarks/competitive/adapters/aider.py:111 and benchmarks/competitive/adapters/cymbal.py:143","ref":"benchmarks/competitive/adapters/aider.py","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/benchmarks/competitive/adapters/aider.py#L111","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: benchmarks/competitive/adapters/aider.py:113 and benchmarks/competitive/adapters/cocoindex.py:111","ref":"benchmarks/competitive/adapters/aider.py","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/benchmarks/competitive/adapters/aider.py#L113","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: benchmarks/competitive/adapters/aider.py:117 and benchmarks/competitive/adapters/codebase_memory.py:231","ref":"benchmarks/competitive/adapters/aider.py","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/benchmarks/competitive/adapters/aider.py#L117","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: benchmarks/competitive/adapters/cocoindex.py:93 and benchmarks/competitive/adapters/graft.py:113","ref":"benchmarks/competitive/adapters/cocoindex.py","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/benchmarks/competitive/adapters/cocoindex.py#L93","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: benchmarks/competitive/adapters/cocoindex.py:115 and benchmarks/competitive/adapters/codegraph.py:148","ref":"benchmarks/competitive/adapters/cocoindex.py","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/benchmarks/competitive/adapters/cocoindex.py#L115","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: benchmarks/competitive/adapters/cocoindex.py:122 and benchmarks/competitive/adapters/code_review_graph.py:166","ref":"benchmarks/competitive/adapters/cocoindex.py","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/benchmarks/competitive/adapters/cocoindex.py#L122","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: benchmarks/competitive/adapters/code_review_graph.py:65 and benchmarks/competitive/adapters/serena.py:72","ref":"benchmarks/competitive/adapters/code_review_graph.py","url":"https://github.com/jgravelle/jcodemunch-mcp/blob/30bbeb96a5a18dacdf0b49934397cde6b9283232/benchmarks/competitive/adapters/code_review_graph.py#L65","weight":0.3}],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":226.0,"weighted_findings":271.75,"scanned_lines":189984.0,"category:best-practice":18.0,"category:correctness":140.0,"category:maintainability":68.0},"findings":[{"rule_id":"opengrep/python.lang.correctness.no-strings-as-booleans","severity":"high","message":"Using strings as booleans in Python has unexpected results. `\"one\" and \"two\"` will return \"two\". `\"one\" or \"two\"` will return \"one\". In Python, strings are truthy, and strings with a non-zero length evaluate to True.","path":".claude/hooks/dod_checklist.py","line":955,"fingerprint":"python.lang.correctness.no-strings-as-booleans:.claude/hooks/dod_checklist.py:955"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"benchmarks/attic/profile_backpressure.py","line":78,"fingerprint":"python.lang.best-practice.arbitrary-sleep:benchmarks/attic/profile_backpressure.py:78"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"benchmarks/attic/profile_backpressure.py","line":146,"fingerprint":"python.lang.best-practice.arbitrary-sleep:benchmarks/attic/profile_backpressure.py:146"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"benchmarks/attic/profile_backpressure.py","line":394,"fingerprint":"python.lang.best-practice.arbitrary-sleep:benchmarks/attic/profile_backpressure.py:394"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/release_preflight.py","line":340,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/release_preflight.py:340"},{"rule_id":"opengrep/python.lang.correctness.tempfile.tempfile-without-flush","severity":"high","message":"Using 'tmp.name' without '.flush()' or '.close()' may cause an error because the file may not exist when 'tmp.name' is used. Use '.flush()' or close the file before using 'tmp.name'.","path":"src/jcodemunch_mcp/cli/install_pack.py","line":387,"fingerprint":"python.lang.correctness.tempfile.tempfile-without-flush:src/jcodemunch_mcp/cli/install_pack.py:387"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"src/jcodemunch_mcp/enrichment/lsp_bridge.py","line":539,"fingerprint":"python.lang.best-practice.arbitrary-sleep:src/jcodemunch_mcp/enrichment/lsp_bridge.py:539"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"src/jcodemunch_mcp/enrichment/lsp_bridge.py","line":642,"fingerprint":"python.lang.best-practice.arbitrary-sleep:src/jcodemunch_mcp/enrichment/lsp_bridge.py:642"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `_is_vue_reactive_call` is defined inside a function but never used","path":"src/jcodemunch_mcp/parser/extractor.py","line":8939,"fingerprint":"python.lang.maintainability.useless-inner-function:src/jcodemunch_mcp/parser/extractor.py:8939"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `_extract_options_object` is defined inside a function but never used","path":"src/jcodemunch_mcp/parser/extractor.py","line":9139,"fingerprint":"python.lang.maintainability.useless-inner-function:src/jcodemunch_mcp/parser/extractor.py:9139"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `_extract_lua_function` is defined inside a function but never used","path":"src/jcodemunch_mcp/parser/extractor.py","line":11289,"fingerprint":"python.lang.maintainability.useless-inner-function:src/jcodemunch_mcp/parser/extractor.py:11289"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `_extract_luau_function` is defined inside a function but never used","path":"src/jcodemunch_mcp/parser/extractor.py","line":11412,"fingerprint":"python.lang.maintainability.useless-inner-function:src/jcodemunch_mcp/parser/extractor.py:11412"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `_extract_luau_type` is defined inside a function but never used","path":"src/jcodemunch_mcp/parser/extractor.py","line":11485,"fingerprint":"python.lang.maintainability.useless-inner-function:src/jcodemunch_mcp/parser/extractor.py:11485"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `_declaration` is defined inside a function but never used","path":"src/jcodemunch_mcp/parser/extractor.py","line":11745,"fingerprint":"python.lang.maintainability.useless-inner-function:src/jcodemunch_mcp/parser/extractor.py:11745"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `_fs_defn_nodes` is defined inside a function but never used","path":"src/jcodemunch_mcp/parser/extractor.py","line":18726,"fingerprint":"python.lang.maintainability.useless-inner-function:src/jcodemunch_mcp/parser/extractor.py:18726"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `_walk_members` is defined inside a function but never used","path":"src/jcodemunch_mcp/parser/extractor.py","line":18880,"fingerprint":"python.lang.maintainability.useless-inner-function:src/jcodemunch_mcp/parser/extractor.py:18880"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `_use_is_a_read` is defined inside a function but never used","path":"src/jcodemunch_mcp/parser/imports.py","line":714,"fingerprint":"python.lang.maintainability.useless-inner-function:src/jcodemunch_mcp/parser/imports.py:714"},{"rule_id":"opengrep/python.lang.best-practice.open-never-closed","severity":"high","message":"file object opened without corresponding close","path":"src/jcodemunch_mcp/server.py","line":8241,"fingerprint":"python.lang.best-practice.open-never-closed:src/jcodemunch_mcp/server.py:8241"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.identical-is-comparison","severity":"high","message":"Found identical comparison using is. Ensure this is what you intended.","path":"src/jcodemunch_mcp/storage/process_locks.py","line":420,"fingerprint":"python.lang.correctness.common-mistakes.identical-is-comparison:src/jcodemunch_mcp/storage/process_locks.py:420"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.identical-is-comparison","severity":"high","message":"Found identical comparison using is. Ensure this is what you intended.","path":"src/jcodemunch_mcp/storage/process_locks.py","line":551,"fingerprint":"python.lang.correctness.common-mistakes.identical-is-comparison:src/jcodemunch_mcp/storage/process_locks.py:551"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"src/jcodemunch_mcp/storage/process_locks.py","line":603,"fingerprint":"python.lang.best-practice.arbitrary-sleep:src/jcodemunch_mcp/storage/process_locks.py:603"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"src/jcodemunch_mcp/storage/sqlite_store.py","line":1149,"fingerprint":"python.lang.best-practice.arbitrary-sleep:src/jcodemunch_mcp/storage/sqlite_store.py:1149"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"src/jcodemunch_mcp/storage/tool_counters.py","line":159,"fingerprint":"python.lang.best-practice.arbitrary-sleep:src/jcodemunch_mcp/storage/tool_counters.py:159"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"src/jcodemunch_mcp/tools/mermaid_viewer.py","line":163,"fingerprint":"python.lang.best-practice.arbitrary-sleep:src/jcodemunch_mcp/tools/mermaid_viewer.py:163"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":".claude/hooks/deny_guard.py","line":80,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:.claude/hooks/deny_guard.py:80"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":".claude/hooks/deny_guard.py","line":89,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:.claude/hooks/deny_guard.py:89"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":".claude/hooks/deny_guard.py","line":101,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:.claude/hooks/deny_guard.py:101"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":".github/inbound/scan.py","line":194,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:.github/inbound/scan.py:194"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":".github/inbound/scan.py","line":197,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:.github/inbound/scan.py:197"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"benchmarks/attic/ab_v1_70_0.py","line":184,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:benchmarks/attic/ab_v1_70_0.py:184"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"benchmarks/attic/ab_v1_70_0.py","line":200,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:benchmarks/attic/ab_v1_70_0.py:200"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"benchmarks/attic/ab_v1_70_0.py","line":204,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:benchmarks/attic/ab_v1_70_0.py:204"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"benchmarks/attic/ab_v1_70_0.py","line":214,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:benchmarks/attic/ab_v1_70_0.py:214"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"benchmarks/attic/ab_v1_70_0.py","line":220,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:benchmarks/attic/ab_v1_70_0.py:220"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"benchmarks/attic/ab_v1_70_0.py","line":235,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:benchmarks/attic/ab_v1_70_0.py:235"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"benchmarks/attic/ab_v1_70_0.py","line":237,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:benchmarks/attic/ab_v1_70_0.py:237"},{"rule_id":"opengrep/python.lang.correctness.sync-sleep-in-async-code","severity":"medium","message":"Synchronous time.sleep in async code will block the event loop and not allow other tasks to execute. Use asyncio.sleep() instead.","path":"benchmarks/attic/profile_backpressure.py","line":394,"fingerprint":"python.lang.correctness.sync-sleep-in-async-code:benchmarks/attic/profile_backpressure.py:394"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"benchmarks/attic/profile_language_filter.py","line":130,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:benchmarks/attic/profile_language_filter.py:130"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"benchmarks/codex_surface/run_codex_arms.py","line":159,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:benchmarks/codex_surface/run_codex_arms.py:159"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"benchmarks/harness/run_odysseus_compare.py","line":260,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:benchmarks/harness/run_odysseus_compare.py:260"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"benchmarks/harness/run_odysseus_compare.py","line":324,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:benchmarks/harness/run_odysseus_compare.py:324"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"benchmarks/harness/run_odysseus_compare.py","line":333,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:benchmarks/harness/run_odysseus_compare.py:333"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"benchmarks/harness/run_rag_baseline.py","line":793,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:benchmarks/harness/run_rag_baseline.py:793"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"benchmarks/harness/run_rag_baseline.py","line":833,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:benchmarks/harness/run_rag_baseline.py:833"},{"rule_id":"opengrep/python.lang.maintainability.return-not-in-function","severity":"medium","message":"`return` only makes sense inside a function","path":"benchmarks/savings_tokenizer/lookups.py","line":112,"fingerprint":"python.lang.maintainability.return-not-in-function:benchmarks/savings_tokenizer/lookups.py:112"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"benchmarks/savings_tokenizer/lookups.py","line":241,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:benchmarks/savings_tokenizer/lookups.py:241"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"speedreview/review.py","line":66,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:speedreview/review.py:66"},{"rule_id":"opengrep/python.lang.maintainability.return-not-in-function","severity":"medium","message":"`return` only makes sense inside a function","path":"src/jcodemunch_mcp/agent_selector.py","line":101,"fingerprint":"python.lang.maintainability.return-not-in-function:src/jcodemunch_mcp/agent_selector.py:101"},{"rule_id":"opengrep/python.lang.maintainability.return-not-in-function","severity":"medium","message":"`return` only makes sense inside a function","path":"src/jcodemunch_mcp/agent_selector.py","line":102,"fingerprint":"python.lang.maintainability.return-not-in-function:src/jcodemunch_mcp/agent_selector.py:102"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/cli/skills.py","line":74,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/cli/skills.py:74"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/cli/skills.py","line":81,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/cli/skills.py:81"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/cli/skills.py","line":97,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/cli/skills.py:97"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/cli/skills.py","line":104,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/cli/skills.py:104"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/cli/skills.py","line":112,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/cli/skills.py:112"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/cli/skills.py","line":114,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/cli/skills.py:114"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/cli/skills.py","line":119,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/cli/skills.py:119"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/cli/skills.py","line":129,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/cli/skills.py:129"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/cli/skills.py","line":149,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/cli/skills.py:149"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/cli/skills.py","line":159,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/cli/skills.py:159"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/cli/skills.py","line":162,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/cli/skills.py:162"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/cli/skills.py","line":168,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/cli/skills.py:168"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/cli/skills.py","line":174,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/cli/skills.py:174"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/cli/skills.py","line":176,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/cli/skills.py:176"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/cli/skills.py","line":181,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/cli/skills.py:181"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/cli/skills.py","line":188,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/cli/skills.py:188"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/cli/skills.py","line":196,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/cli/skills.py:196"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/counter.py","line":546,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/counter.py:546"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/counter.py","line":556,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/counter.py:556"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/counter.py","line":565,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/counter.py:565"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/counter.py","line":572,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/counter.py:572"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/counter.py","line":581,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/counter.py:581"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/counter.py","line":588,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/counter.py:588"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/counter.py","line":604,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/counter.py:604"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/counter.py","line":608,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/counter.py:608"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/counter.py","line":613,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/counter.py:613"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/counter.py","line":616,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/counter.py:616"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/counter.py","line":619,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/counter.py:619"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/counter.py","line":623,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/counter.py:623"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/counter.py","line":627,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/counter.py:627"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/counter.py","line":637,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/counter.py:637"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/counter.py","line":644,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/counter.py:644"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/counter.py","line":704,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/counter.py:704"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/counter.py","line":709,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/counter.py:709"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/counter.py","line":727,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/counter.py:727"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_running\" a function or an attribute? If it is a function, you may have meant self.is_running() because self.is_running is always true.","path":"src/jcodemunch_mcp/enrichment/lsp_bridge.py","line":209,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/enrichment/lsp_bridge.py:209"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_running\" a function or an attribute? If it is a function, you may have meant self.is_running() because self.is_running is always true.","path":"src/jcodemunch_mcp/enrichment/lsp_bridge.py","line":270,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/enrichment/lsp_bridge.py:270"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_running\" a function or an attribute? If it is a function, you may have meant self.is_running() because self.is_running is always true.","path":"src/jcodemunch_mcp/enrichment/lsp_bridge.py","line":297,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/enrichment/lsp_bridge.py:297"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_running\" a function or an attribute? If it is a function, you may have meant self.is_running() because self.is_running is always true.","path":"src/jcodemunch_mcp/enrichment/lsp_bridge.py","line":310,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/enrichment/lsp_bridge.py:310"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_running\" a function or an attribute? If it is a function, you may have meant server.is_running() because server.is_running is always true.","path":"src/jcodemunch_mcp/enrichment/lsp_bridge.py","line":460,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/enrichment/lsp_bridge.py:460"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_reference\" a function or an attribute? If it is a function, you may have meant rel.is_reference() because rel.is_reference is always true.","path":"src/jcodemunch_mcp/evidence/scip.py","line":195,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/evidence/scip.py:195"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_implementation\" a function or an attribute? If it is a function, you may have meant rel.is_implementation() because rel.is_implementation is always true.","path":"src/jcodemunch_mcp/evidence/scip.py","line":197,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/evidence/scip.py:197"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_type_definition\" a function or an attribute? If it is a function, you may have meant rel.is_type_definition() because rel.is_type_definition is always true.","path":"src/jcodemunch_mcp/evidence/scip.py","line":199,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/evidence/scip.py:199"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_implementation\" a function or an attribute? If it is a function, you may have meant rel.is_implementation() because rel.is_implementation is always true.","path":"src/jcodemunch_mcp/evidence/scip_ingest.py","line":188,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/evidence/scip_ingest.py:188"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_code\" a function or an attribute? If it is a function, you may have meant slide.is_code() because slide.is_code is always true.","path":"src/jcodemunch_mcp/groq/explainer.py","line":277,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/groq/explainer.py:277"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_code\" a function or an attribute? If it is a function, you may have meant slide.is_code() because slide.is_code is always true.","path":"src/jcodemunch_mcp/groq/explainer.py","line":277,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/groq/explainer.py:277"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_code\" a function or an attribute? If it is a function, you may have meant slide.is_code() because slide.is_code is always true.","path":"src/jcodemunch_mcp/groq/explainer.py","line":296,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/groq/explainer.py:296"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_code\" a function or an attribute? If it is a function, you may have meant slide.is_code() because slide.is_code is always true.","path":"src/jcodemunch_mcp/groq/explainer.py","line":306,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/groq/explainer.py:306"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_code\" a function or an attribute? If it is a function, you may have meant slide.is_code() because slide.is_code is always true.","path":"src/jcodemunch_mcp/groq/explainer.py","line":307,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/groq/explainer.py:307"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_code\" a function or an attribute? If it is a function, you may have meant seg.is_code() because seg.is_code is always true.","path":"src/jcodemunch_mcp/groq/explainer.py","line":445,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/groq/explainer.py:445"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/investigator/deletion_safety.py","line":246,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/investigator/deletion_safety.py:246"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/investigator/deletion_safety.py","line":383,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/investigator/deletion_safety.py:383"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/investigator/deletion_safety.py","line":429,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/investigator/deletion_safety.py:429"},{"rule_id":"opengrep/python.lang.maintainability.return-not-in-function","severity":"medium","message":"`return` only makes sense inside a function","path":"src/jcodemunch_mcp/parser/context/_route_utils.py","line":247,"fingerprint":"python.lang.maintainability.return-not-in-function:src/jcodemunch_mcp/parser/context/_route_utils.py:247"},{"rule_id":"opengrep/python.lang.maintainability.return-not-in-function","severity":"medium","message":"`return` only makes sense inside a function","path":"src/jcodemunch_mcp/parser/context/decorator_routes.py","line":34,"fingerprint":"python.lang.maintainability.return-not-in-function:src/jcodemunch_mcp/parser/context/decorator_routes.py:34"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_named\" a function or an attribute? If it is a function, you may have meant child.is_named() because child.is_named is always true.","path":"src/jcodemunch_mcp/parser/extractor.py","line":248,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/parser/extractor.py:248"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_named\" a function or an attribute? If it is a function, you may have meant child.is_named() because child.is_named is always true.","path":"src/jcodemunch_mcp/parser/extractor.py","line":256,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/parser/extractor.py:256"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_named\" a function or an attribute? If it is a function, you may have meant node.is_named() because node.is_named is always true.","path":"src/jcodemunch_mcp/parser/extractor.py","line":367,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/parser/extractor.py:367"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_named\" a function or an attribute? If it is a function, you may have meant child.is_named() because child.is_named is always true.","path":"src/jcodemunch_mcp/parser/extractor.py","line":483,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/parser/extractor.py:483"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_named\" a function or an attribute? If it is a function, you may have meant following.is_named() because following.is_named is always true.","path":"src/jcodemunch_mcp/parser/extractor.py","line":2486,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/parser/extractor.py:2486"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_named\" a function or an attribute? If it is a function, you may have meant c.is_named() because c.is_named is always true.","path":"src/jcodemunch_mcp/parser/extractor.py","line":3481,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/parser/extractor.py:3481"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_named\" a function or an attribute? If it is a function, you may have meant child.is_named() because child.is_named is always true.","path":"src/jcodemunch_mcp/parser/extractor.py","line":3931,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/parser/extractor.py:3931"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_named\" a function or an attribute? If it is a function, you may have meant child.is_named() because child.is_named is always true.","path":"src/jcodemunch_mcp/parser/extractor.py","line":3946,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/parser/extractor.py:3946"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_named\" a function or an attribute? If it is a function, you may have meant c.is_named() because c.is_named is always true.","path":"src/jcodemunch_mcp/parser/extractor.py","line":4169,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/parser/extractor.py:4169"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_named\" a function or an attribute? If it is a function, you may have meant c.is_named() because c.is_named is always true.","path":"src/jcodemunch_mcp/parser/extractor.py","line":5667,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/parser/extractor.py:5667"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_named\" a function or an attribute? If it is a function, you may have meant child.is_named() because child.is_named is always true.","path":"src/jcodemunch_mcp/parser/extractor.py","line":5675,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/parser/extractor.py:5675"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_named\" a function or an attribute? If it is a function, you may have meant c.is_named() because c.is_named is always true.","path":"src/jcodemunch_mcp/parser/extractor.py","line":6475,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/parser/extractor.py:6475"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_named\" a function or an attribute? If it is a function, you may have meant child.is_named() because child.is_named is always true.","path":"src/jcodemunch_mcp/parser/extractor.py","line":6778,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/parser/extractor.py:6778"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_named\" a function or an attribute? If it is a function, you may have meant c.is_named() because c.is_named is always true.","path":"src/jcodemunch_mcp/parser/extractor.py","line":8468,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/parser/extractor.py:8468"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_named\" a function or an attribute? If it is a function, you may have meant c.is_named() because c.is_named is always true.","path":"src/jcodemunch_mcp/parser/extractor.py","line":14634,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/parser/extractor.py:14634"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_named\" a function or an attribute? If it is a function, you may have meant c.is_named() because c.is_named is always true.","path":"src/jcodemunch_mcp/parser/extractor.py","line":14650,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/parser/extractor.py:14650"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_named\" a function or an attribute? If it is a function, you may have meant c.is_named() because c.is_named is always true.","path":"src/jcodemunch_mcp/parser/extractor.py","line":14711,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/parser/extractor.py:14711"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_named\" a function or an attribute? If it is a function, you may have meant c.is_named() because c.is_named is always true.","path":"src/jcodemunch_mcp/parser/extractor.py","line":14718,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/parser/extractor.py:14718"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_named\" a function or an attribute? If it is a function, you may have meant c.is_named() because c.is_named is always true.","path":"src/jcodemunch_mcp/parser/extractor.py","line":14757,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/parser/extractor.py:14757"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_named\" a function or an attribute? If it is a function, you may have meant node.is_named() because node.is_named is always true.","path":"src/jcodemunch_mcp/parser/extractor.py","line":18531,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/parser/extractor.py:18531"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_named\" a function or an attribute? If it is a function, you may have meant node.is_named() because node.is_named is always true.","path":"src/jcodemunch_mcp/parser/extractor.py","line":18550,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/parser/extractor.py:18550"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_named\" a function or an attribute? If it is a function, you may have meant c.is_named() because c.is_named is always true.","path":"src/jcodemunch_mcp/parser/extractor.py","line":18971,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/parser/extractor.py:18971"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_named\" a function or an attribute? If it is a function, you may have meant c.is_named() because c.is_named is always true.","path":"src/jcodemunch_mcp/parser/extractor.py","line":19350,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/parser/extractor.py:19350"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_named\" a function or an attribute? If it is a function, you may have meant c.is_named() because c.is_named is always true.","path":"src/jcodemunch_mcp/parser/extractor.py","line":19864,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/parser/extractor.py:19864"},{"rule_id":"opengrep/python.lang.maintainability.return-not-in-function","severity":"medium","message":"`return` only makes sense inside a function","path":"src/jcodemunch_mcp/parser/imports.py","line":2178,"fingerprint":"python.lang.maintainability.return-not-in-function:src/jcodemunch_mcp/parser/imports.py:2178"},{"rule_id":"opengrep/python.lang.maintainability.return-not-in-function","severity":"medium","message":"`return` only makes sense inside a function","path":"src/jcodemunch_mcp/parser/imports.py","line":2179,"fingerprint":"python.lang.maintainability.return-not-in-function:src/jcodemunch_mcp/parser/imports.py:2179"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/redact.py","line":42,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/redact.py:42"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/redact.py","line":51,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/redact.py:51"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/redact.py","line":56,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/redact.py:56"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/redact.py","line":103,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/redact.py:103"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/redact.py","line":108,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/redact.py:108"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_secret\" a function or an attribute? If it is a function, you may have meant classify_secret_file(\n        file_path,\n        disabled_groups=disabled,\n        allow_patterns=allow,\n    ).is_secret() because classify_secret_file(\n        file_path,\n        disabled_groups=disabled,\n        all","path":"src/jcodemunch_mcp/security.py","line":263,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:src/jcodemunch_mcp/security.py:263"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":476,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:476"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":505,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:505"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":528,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:528"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":544,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:544"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":1951,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:1951"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":2007,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:2007"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":2052,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:2052"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":2105,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:2105"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":2131,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:2131"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":2157,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:2157"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":2195,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:2195"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":2225,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:2225"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":2231,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:2231"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":2242,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:2242"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":2685,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:2685"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":2894,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:2894"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":2921,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:2921"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":2947,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:2947"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":3029,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:3029"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":3148,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:3148"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":3176,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:3176"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":3359,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:3359"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":3397,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:3397"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":3428,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:3428"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":3459,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:3459"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":3496,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:3496"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":3517,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:3517"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":3543,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:3543"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":3573,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:3573"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":3608,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:3608"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":3648,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:3648"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":3688,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:3688"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":3746,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:3746"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":3797,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:3797"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":3855,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:3855"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":3889,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:3889"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":3912,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:3912"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":3940,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:3940"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":3980,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:3980"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":4044,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:4044"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":4097,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:4097"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":4127,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:4127"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":4162,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:4162"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":4189,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:4189"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":4226,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:4226"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":4281,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:4281"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":4307,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:4307"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":4366,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:4366"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":4403,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:4403"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":4440,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:4440"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":4511,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:4511"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":4557,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:4557"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":4594,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:4594"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":4623,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:4623"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":4644,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:4644"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":4705,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:4705"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":4739,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:4739"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":4797,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:4797"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":4842,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:4842"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":4892,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:4892"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":4923,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:4923"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":4949,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:4949"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":5013,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:5013"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"src/jcodemunch_mcp/server.py","line":5034,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:src/jcodemunch_mcp/server.py:5034"}],"evidence":[],"data":{},"error":null},{"analyzer":"qual-testing","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:has_tests":1.0,"check:test_ratio":1.0,"check:ci_present":1.0,"check:ci_runs_tests":1.0,"check:ci_runs_lint":1.0,"check:tests_cochange":1.0,"test_lines":250942.0,"source_lines":190354.0,"test_ratio":1.3183,"ci_files":21.0,"cochange_share":0.9939,"cochange_commits":163.0},"findings":[],"evidence":[{"kind":"ci","description":"CI config: .github/workflows/benchmark.yml","ref":".github/workflows/benchmark.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/competitive-feed.yml","ref":".github/workflows/competitive-feed.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/competitive-post.yml","ref":".github/workflows/competitive-post.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/competitive-run.yml","ref":".github/workflows/competitive-run.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/health-radar-comment.yml","ref":".github/workflows/health-radar-comment.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/health-radar.yml","ref":".github/workflows/health-radar.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/inbound-bench-full.yml","ref":".github/workflows/inbound-bench-full.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/inbound-depeval.yml","ref":".github/workflows/inbound-depeval.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/inbound-digest.yml","ref":".github/workflows/inbound-digest.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/inbound-fix-promote.yml","ref":".github/workflows/inbound-fix-promote.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI runs tests (pytest)","ref":null,"url":null,"weight":0.0},{"kind":"ci","description":"CI runs linters (ruff, pyright)","ref":null,"url":null,"weight":0.0}],"data":{"test_commands":["pytest"],"lint_commands":["ruff","pyright"]},"error":null},{"analyzer":"qual-docs","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:readme":1.0,"check:license":1.0,"check:contributing":1.0,"check:changelog":1.0,"readme_lines":327.0},"findings":[],"evidence":[{"kind":"docs","description":"README.md","ref":"README.md","url":null,"weight":0.0},{"kind":"docs","description":"LICENSE","ref":"LICENSE","url":null,"weight":0.0},{"kind":"docs","description":"CONTRIBUTING.md","ref":"CONTRIBUTING.md","url":null,"weight":0.0},{"kind":"docs","description":"CHANGELOG.md","ref":"CHANGELOG.md","url":null,"weight":0.0}],"data":{},"error":null},{"analyzer":"qual-type-safety","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:strict_config":0.0042,"check:low_escape_density":1.0,"escapes":311.0,"escapes_per_kloc":1.643},"findings":[],"evidence":[{"kind":"typing","description":"TypeScript strict type checking: vscode-extension/tsconfig.json","ref":"vscode-extension/tsconfig.json","url":null,"weight":0.0}],"data":{},"error":null},{"analyzer":"x-blame","pillar":"ai_provenance","status":"ok","tool_version":"git-blame","metrics":{"ai_lines":159395.0,"other_lines":30959.0,"files_blamed":484.0,"blame_failures":0.0,"quality:ai_findings":174.0,"quality:ai_per_kloc":1.092,"quality:other_findings":26.0,"quality:other_per_kloc":0.84,"quality:ratio":1.3,"security:ai_findings":109.0,"security:ai_per_kloc":0.684,"security:other_findings":25.0,"security:other_per_kloc":0.808,"security:ratio":0.85},"findings":[],"evidence":[],"data":{"sampled":false,"comparable":true},"error":null}],"flags":[]}