{"$schema":"https://json.schemastore.org/sarif-2.1.0.json","version":"2.1.0","runs":[{"tool":{"driver":{"name":"codehealth","informationUri":"https://codehealth.canine.dev","rules":[{"id":"D1","name":"Cyclomatic Complexity","shortDescription":{"text":"Cyclomatic Complexity"},"helpUri":"https://codehealth.canine.dev/dimensions/D1"},{"id":"D2","name":"Cognitive Complexity","shortDescription":{"text":"Cognitive Complexity"},"helpUri":"https://codehealth.canine.dev/dimensions/D2"},{"id":"D3","name":"God Classes","shortDescription":{"text":"God Classes"},"helpUri":"https://codehealth.canine.dev/dimensions/D3"},{"id":"D4","name":"Code Duplication","shortDescription":{"text":"Code Duplication"},"helpUri":"https://codehealth.canine.dev/dimensions/D4"},{"id":"D5","name":"Coupling","shortDescription":{"text":"Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D5"},{"id":"D8","name":"Code Coverage","shortDescription":{"text":"Code Coverage"},"helpUri":"https://codehealth.canine.dev/dimensions/D8"},{"id":"D9","name":"Test Distribution","shortDescription":{"text":"Test Distribution"},"helpUri":"https://codehealth.canine.dev/dimensions/D9"},{"id":"D12","name":"Dependency Hygiene","shortDescription":{"text":"Dependency Hygiene"},"helpUri":"https://codehealth.canine.dev/dimensions/D12"},{"id":"D13","name":"Secret Scanning","shortDescription":{"text":"Secret Scanning"},"helpUri":"https://codehealth.canine.dev/dimensions/D13","relationships":[{"target":{"id":"CWE-798","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-798","CWE-259"]}},{"id":"D16","name":"Bus Factor","shortDescription":{"text":"Bus Factor"},"helpUri":"https://codehealth.canine.dev/dimensions/D16"},{"id":"D19","name":"Documentation Quality","shortDescription":{"text":"Documentation Quality"},"helpUri":"https://codehealth.canine.dev/dimensions/D19"},{"id":"D21","name":"Naming Consistency","shortDescription":{"text":"Naming Consistency"},"helpUri":"https://codehealth.canine.dev/dimensions/D21"},{"id":"D26","name":"Project Cohesion","shortDescription":{"text":"Project Cohesion"},"helpUri":"https://codehealth.canine.dev/dimensions/D26"},{"id":"D27","name":"Navigability","shortDescription":{"text":"Navigability"},"helpUri":"https://codehealth.canine.dev/dimensions/D27"},{"id":"D28","name":"Secrets (history)","shortDescription":{"text":"Secrets (history)"},"helpUri":"https://codehealth.canine.dev/dimensions/D28","relationships":[{"target":{"id":"CWE-798","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-798","CWE-259"]}},{"id":"D29","name":"Static Analysis (SAST)","shortDescription":{"text":"Static Analysis (SAST)"},"helpUri":"https://codehealth.canine.dev/dimensions/D29","relationships":[{"target":{"id":"CWE-79","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-89","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-78","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-94","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-77","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-79","CWE-89","CWE-78","CWE-94","CWE-77"]}},{"id":"D36","name":"Supply-chain Provenance \u0026 Signing","shortDescription":{"text":"Supply-chain Provenance \u0026 Signing"},"helpUri":"https://codehealth.canine.dev/dimensions/D36","relationships":[{"target":{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-494","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-1357","CWE-494"]}}]}},"results":[{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (37 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/components/Chip.kt:282-318 | app/src/main/java/eu/kanade/presentation/components/Chip.kt:362-398"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/components/Chip.kt"},"region":{"startLine":282}}}],"partialFingerprints":{"codehealthFindingId/v1":"607b095008871ac4904f364c68ee476dde1198aae202c7c15c76ebc7d28b5d6e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (32 lines \u00D7 2): app/src/main/java/exh/eh/tags/Artist.kt:1976-2007 | app/src/main/java/exh/eh/tags/Artist.kt:3979-4010"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/exh/eh/tags/Artist.kt"},"region":{"startLine":1976}}}],"partialFingerprints":{"codehealthFindingId/v1":"e1f6dd463b8020da188d48b1467085670036c9dab3b87d9dc6679c9115dd5f4e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (32 lines \u00D7 2): app/src/main/java/exh/eh/tags/Artist2.kt:1976-2007 | app/src/main/java/exh/eh/tags/Artist2.kt:3979-4010"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/exh/eh/tags/Artist2.kt"},"region":{"startLine":1976}}}],"partialFingerprints":{"codehealthFindingId/v1":"1db4abc4a495ec52e803a6c08462c90d9f66f2504d4185d558f1ee2c902d7ce3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (32 lines \u00D7 2): app/src/main/java/exh/eh/tags/Character.kt:1976-2007 | app/src/main/java/exh/eh/tags/Character.kt:3979-4010"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/exh/eh/tags/Character.kt"},"region":{"startLine":1976}}}],"partialFingerprints":{"codehealthFindingId/v1":"43e1c2b61d29c9d86cb1c29adeb5665acd8d4c017426ae695bd8648de081282a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (32 lines \u00D7 2): app/src/main/java/exh/eh/tags/Group.kt:1976-2007 | app/src/main/java/exh/eh/tags/Group.kt:3979-4010"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/exh/eh/tags/Group.kt"},"region":{"startLine":1976}}}],"partialFingerprints":{"codehealthFindingId/v1":"c63d3ded9bf13d83e1a2592d6ee538b880ebcb365db439c5c06354dbab6e39d2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (32 lines \u00D7 2): data/src/main/java/tachiyomi/data/manga/MangaMapper.kt:112-143 | data/src/main/java/tachiyomi/data/manga/MangaMapper.kt:188-219"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"data/src/main/java/tachiyomi/data/manga/MangaMapper.kt"},"region":{"startLine":112}}}],"partialFingerprints":{"codehealthFindingId/v1":"5cfc61b7455125e0f372511253a6de3efc5db0a7dd9dc148fd753586255279f9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (32 lines \u00D7 2): presentation-core/src/main/java/tachiyomi/presentation/core/icons/FlagEmoji.kt:176-207 | presentation-core/src/main/java/tachiyomi/presentation/core/icons/FlagEmoji.kt:303-333"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"presentation-core/src/main/java/tachiyomi/presentation/core/icons/FlagEmoji.kt"},"region":{"startLine":176}}}],"partialFingerprints":{"codehealthFindingId/v1":"f95031b61f3040de0a030a72b913c941d94a436fd0018c9ca84ff1b52e0668a4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (31 lines \u00D7 25): app/src/main/java/exh/eh/tags/Group2.kt:5-35 | app/src/main/java/exh/eh/tags/Group2.kt:36-66 | app/src/main/java/exh/eh/tags/Group2.kt:67-97 | app/src/main/java/exh/eh/tags/Group2.kt:98-128 | app/src/main/java/exh/eh/tags/Group2.kt:129-159 | app/src/main/java/exh/eh/tags/Group2.kt:160-190 | app/src/main/java/exh/eh/tags/Group2.kt:191-221 | app/src/main/java/exh/eh/tags/Group2.kt:222-252 | app/src/main/java/exh/eh/tags/Group2.kt:253-283 | app/src/main/java/exh/eh/tags/Group2.kt:284-314 | app/src/main/java/exh/eh/tags/Group2.kt:315-345 | app/src/main/java/exh/eh/tags/Group2.kt:346-376 | app/src/main/java/exh/eh/tags/Group2.kt:377-407 | app/src/main/java/exh/eh/tags/Group2.kt:408-438 | app/src/main/java/exh/eh/tags/Group2.kt:439-469 | app/src/main/java/exh/eh/tags/Group2.kt:470-500 | app/src/main/java/exh/eh/tags/Group2.kt:501-531 | app/src/main/java/exh/eh/tags/Group2.kt:532-562 | app/src/main/java/exh/eh/tags/Group2.kt:563-593 | app/src/main/java/exh/eh/tags/Group2.kt:594-624 | app/src/main/java/exh/eh/tags/Group2.kt:625-655 | app/src/main/java/exh/eh/tags/Group2.kt:656-686 | app/src/main/java/exh/eh/tags/Group2.kt:687-717 | app/src/main/java/exh/eh/tags/Group2.kt:718-748 | app/src/main/java/exh/eh/tags/Group2.kt:749-779"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/exh/eh/tags/Group2.kt"},"region":{"startLine":5}}}],"partialFingerprints":{"codehealthFindingId/v1":"96555d7845d06b4f50d5dfe92adb858bf5cff1bd7b2c8c5d77f42d49cc4d3427"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (31 lines \u00D7 19): app/src/main/java/exh/eh/tags/Female.kt:5-35 | app/src/main/java/exh/eh/tags/Female.kt:36-66 | app/src/main/java/exh/eh/tags/Female.kt:67-97 | app/src/main/java/exh/eh/tags/Female.kt:98-128 | app/src/main/java/exh/eh/tags/Female.kt:129-159 | app/src/main/java/exh/eh/tags/Female.kt:160-190 | app/src/main/java/exh/eh/tags/Female.kt:191-221 | app/src/main/java/exh/eh/tags/Female.kt:222-252 | app/src/main/java/exh/eh/tags/Female.kt:253-283 | app/src/main/java/exh/eh/tags/Female.kt:284-314 | app/src/main/java/exh/eh/tags/Female.kt:315-345 | app/src/main/java/exh/eh/tags/Female.kt:346-376 | app/src/main/java/exh/eh/tags/Female.kt:377-407 | app/src/main/java/exh/eh/tags/Female.kt:408-438 | app/src/main/java/exh/eh/tags/Female.kt:439-469 | app/src/main/java/exh/eh/tags/Female.kt:470-500 | app/src/main/java/exh/eh/tags/Female.kt:501-531 | app/src/main/java/exh/eh/tags/Female.kt:532-562 | app/src/main/java/exh/eh/tags/Female.kt:563-593"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/exh/eh/tags/Female.kt"},"region":{"startLine":5}}}],"partialFingerprints":{"codehealthFindingId/v1":"ebe0526a3a27af0cdfc521888b2d334d2974776fb18c8e8b38d0eaf0894c1200"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (31 lines \u00D7 18): app/src/main/java/exh/eh/tags/Male.kt:5-35 | app/src/main/java/exh/eh/tags/Male.kt:36-66 | app/src/main/java/exh/eh/tags/Male.kt:67-97 | app/src/main/java/exh/eh/tags/Male.kt:98-128 | app/src/main/java/exh/eh/tags/Male.kt:129-159 | app/src/main/java/exh/eh/tags/Male.kt:160-190 | app/src/main/java/exh/eh/tags/Male.kt:191-221 | app/src/main/java/exh/eh/tags/Male.kt:222-252 | app/src/main/java/exh/eh/tags/Male.kt:253-283 | app/src/main/java/exh/eh/tags/Male.kt:284-314 | app/src/main/java/exh/eh/tags/Male.kt:315-345 | app/src/main/java/exh/eh/tags/Male.kt:346-376 | app/src/main/java/exh/eh/tags/Male.kt:377-407 | app/src/main/java/exh/eh/tags/Male.kt:408-438 | app/src/main/java/exh/eh/tags/Male.kt:439-469 | app/src/main/java/exh/eh/tags/Male.kt:470-500 | app/src/main/java/exh/eh/tags/Male.kt:501-531 | app/src/main/java/exh/eh/tags/Male.kt:532-562"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/exh/eh/tags/Male.kt"},"region":{"startLine":5}}}],"partialFingerprints":{"codehealthFindingId/v1":"c2ada91de6849ceb8bceef393f9d4c503384bcffd9c171b54c4cf0e4a28413d4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (31 lines \u00D7 17): app/src/main/java/exh/eh/tags/Cosplayer.kt:5-35 | app/src/main/java/exh/eh/tags/Cosplayer.kt:36-66 | app/src/main/java/exh/eh/tags/Cosplayer.kt:67-97 | app/src/main/java/exh/eh/tags/Cosplayer.kt:98-128 | app/src/main/java/exh/eh/tags/Cosplayer.kt:129-159 | app/src/main/java/exh/eh/tags/Cosplayer.kt:160-190 | app/src/main/java/exh/eh/tags/Cosplayer.kt:191-221 | app/src/main/java/exh/eh/tags/Cosplayer.kt:222-252 | app/src/main/java/exh/eh/tags/Cosplayer.kt:253-283 | app/src/main/java/exh/eh/tags/Cosplayer.kt:284-314 | app/src/main/java/exh/eh/tags/Cosplayer.kt:315-345 | app/src/main/java/exh/eh/tags/Cosplayer.kt:346-376 | app/src/main/java/exh/eh/tags/Cosplayer.kt:377-407 | app/src/main/java/exh/eh/tags/Cosplayer.kt:408-438 | app/src/main/java/exh/eh/tags/Cosplayer.kt:439-469 | app/src/main/java/exh/eh/tags/Cosplayer.kt:470-500 | app/src/main/java/exh/eh/tags/Cosplayer.kt:501-531"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/exh/eh/tags/Cosplayer.kt"},"region":{"startLine":5}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf8b802a9926c0e20fee6c7533d22a5e6ce003a1683a373aee2ccfc37a95c22f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (31 lines \u00D7 4): app/src/main/java/eu/kanade/domain/extension/interactor/GetExtensionLanguages.kt:182-212 | app/src/main/java/eu/kanade/domain/extension/interactor/GetExtensionLanguages.kt:213-243 | app/src/main/java/eu/kanade/domain/extension/interactor/GetExtensionLanguages.kt:244-274 | app/src/main/java/eu/kanade/domain/extension/interactor/GetExtensionLanguages.kt:275-305"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/domain/extension/interactor/GetExtensionLanguages.kt"},"region":{"startLine":182}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f6022cb52fd94000d91dcea6819fb008e5b9f47123974ab677b95cf55cff597"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (31 lines \u00D7 4): app/src/main/java/exh/eh/tags/Artist3.kt:5-35 | app/src/main/java/exh/eh/tags/Artist3.kt:36-66 | app/src/main/java/exh/eh/tags/Artist3.kt:67-97 | app/src/main/java/exh/eh/tags/Artist3.kt:98-128"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/exh/eh/tags/Artist3.kt"},"region":{"startLine":5}}}],"partialFingerprints":{"codehealthFindingId/v1":"4930f89b001da2f055cdbdcc48b8755821d91d2ca7c2bcd0a55a2f3eff364b5d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (31 lines \u00D7 3): app/src/main/java/eu/kanade/presentation/browse/ExtensionFilterScreen.kt:119-149 | app/src/main/java/eu/kanade/presentation/browse/ExtensionFilterScreen.kt:150-180 | app/src/main/java/eu/kanade/presentation/browse/ExtensionFilterScreen.kt:181-211"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/browse/ExtensionFilterScreen.kt"},"region":{"startLine":119}}}],"partialFingerprints":{"codehealthFindingId/v1":"752b00082e370b171d53db1096008dfb89b8ec51e06c99d6945678abe28eeb83"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (31 lines \u00D7 3): app/src/main/java/exh/eh/tags/Artist.kt:4-34 | app/src/main/java/exh/eh/tags/Artist.kt:2007-2037 | app/src/main/java/exh/eh/tags/Artist.kt:4010-4040"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/exh/eh/tags/Artist.kt"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"df7682c2022b246f1ab024b7a0b15384d88578023e6729e8e46903c572fdaebe"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (31 lines \u00D7 3): app/src/main/java/exh/eh/tags/Artist2.kt:4-34 | app/src/main/java/exh/eh/tags/Artist2.kt:2007-2037 | app/src/main/java/exh/eh/tags/Artist2.kt:4010-4040"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/exh/eh/tags/Artist2.kt"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f551ca8b2f2c51f163fdd99eabdf28dc9a272f2e38bdc13b81c52f78ab7e722"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (31 lines \u00D7 3): app/src/main/java/exh/eh/tags/Character.kt:4-34 | app/src/main/java/exh/eh/tags/Character.kt:2007-2037 | app/src/main/java/exh/eh/tags/Character.kt:4010-4040"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/exh/eh/tags/Character.kt"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"e07d3536ab67b08c6a6196ff48022ed57de0dc181519bda505937a83e17b064f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (31 lines \u00D7 3): app/src/main/java/exh/eh/tags/Group.kt:4-34 | app/src/main/java/exh/eh/tags/Group.kt:2007-2037 | app/src/main/java/exh/eh/tags/Group.kt:4010-4040"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/exh/eh/tags/Group.kt"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"5847abf27baeb7c28339a95f84b3bd5e4671aed761030f227b77d55943e0a902"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (31 lines \u00D7 2): app/src/main/java/exh/eh/tags/Parody.kt:4-34 | app/src/main/java/exh/eh/tags/Parody.kt:2007-2037"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/exh/eh/tags/Parody.kt"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"e3052d027829c813647949c55e92d063e1a406c9c95f36c4b5ef9348b295ed48"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (31 lines \u00D7 2): app/src/main/java/exh/eh/tags/Parody.kt:1975-2005 | app/src/main/java/exh/eh/tags/Parody.kt:2869-2899"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/exh/eh/tags/Parody.kt"},"region":{"startLine":1975}}}],"partialFingerprints":{"codehealthFindingId/v1":"e3052d027829c813647949c55e92d063e1a406c9c95f36c4b5ef9348b295ed48"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (31 lines \u00D7 2): presentation-core/src/main/java/tachiyomi/presentation/core/icons/FlagEmoji.kt:271-301 | presentation-core/src/main/java/tachiyomi/presentation/core/icons/FlagEmoji.kt:528-558"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"presentation-core/src/main/java/tachiyomi/presentation/core/icons/FlagEmoji.kt"},"region":{"startLine":271}}}],"partialFingerprints":{"codehealthFindingId/v1":"d81bff676af71b557b2bacb6d600eb6fe8efda254a6bcf2d603ffb4701cc77bd"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (27 lines \u00D7 3): core/common/src/main/kotlin/eu/kanade/tachiyomi/network/DohProviders.kt:87-103 | core/common/src/main/kotlin/eu/kanade/tachiyomi/network/DohProviders.kt:123-149 | core/common/src/main/kotlin/eu/kanade/tachiyomi/network/DohProviders.kt:155-178"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"core/common/src/main/kotlin/eu/kanade/tachiyomi/network/DohProviders.kt"},"region":{"startLine":87}}}],"partialFingerprints":{"codehealthFindingId/v1":"7866e26483bf0238fccddffe954f227a2138b8da21b3dcd91823037e458abdb6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (26 lines \u00D7 2): app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt:485-510 | app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt:512-532"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt"},"region":{"startLine":485}}}],"partialFingerprints":{"codehealthFindingId/v1":"086a33bb18ca5a91f0fd0ac10ec26a982dcad2c4324b747864d2f0be5a284b17"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (26 lines \u00D7 2): app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackInfoDialog.kt:459-484 | app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackInfoDialog.kt:518-543"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackInfoDialog.kt"},"region":{"startLine":459}}}],"partialFingerprints":{"codehealthFindingId/v1":"91fd122d1a5b3578644f1089d32e72ce9a8b66d917ca41765db695e353dca550"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (25 lines \u00D7 3): app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt:1183-1198 | app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt:1300-1324 | app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt:1378-1393"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt"},"region":{"startLine":1183}}}],"partialFingerprints":{"codehealthFindingId/v1":"396c03aff0da56ce8e0ac979c06aef847a24faa28536887cef290f0fbf3951aa"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (23 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/reader/ChapterTransition.kt:138-160 | app/src/main/java/eu/kanade/presentation/reader/ChapterTransition.kt:167-188"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/reader/ChapterTransition.kt"},"region":{"startLine":138}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa9dfd23bf3b1214614eb06f7f4c2b6cc2194b5872e9832046edaedb5f767c79"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (23 lines \u00D7 2): app/src/main/java/eu/kanade/tachiyomi/ui/home/HomeScreen.kt:229-251 | app/src/main/java/eu/kanade/tachiyomi/ui/home/HomeScreen.kt:262-279"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/tachiyomi/ui/home/HomeScreen.kt"},"region":{"startLine":229}}}],"partialFingerprints":{"codehealthFindingId/v1":"847055260a51085ae4240d246d2b85dc86af84dfab560ca2941dadb5cd56ff52"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (22 lines \u00D7 2): app/src/main/java/exh/md/service/MangaDexService.kt:45-65 | app/src/main/java/exh/md/service/MangaDexService.kt:88-109"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/exh/md/service/MangaDexService.kt"},"region":{"startLine":45}}}],"partialFingerprints":{"codehealthFindingId/v1":"5f3723446c749a695c0967b5c1300ecb01390cef930afb81cfa9146987ea003a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (21 lines \u00D7 2): app/src/main/java/exh/md/service/MangaDexAuthService.kt:100-120 | app/src/main/java/exh/md/service/MangaDexAuthService.kt:125-145"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/exh/md/service/MangaDexAuthService.kt"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"f928bb315a9b9163a98cdab80af887b647bec510b114307a3acb95a4373ddfc6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (19 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt:264-282 | app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt:326-344"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt"},"region":{"startLine":264}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e127798f6b306c3ca8f32a00ea6bca50f97f8c828da9eb05c8f76b3edf9fd6c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (19 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt:572-590 | app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt:1034-1052"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt"},"region":{"startLine":572}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e127798f6b306c3ca8f32a00ea6bca50f97f8c828da9eb05c8f76b3edf9fd6c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (19 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt:721-739 | app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt:1188-1206"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt"},"region":{"startLine":721}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e127798f6b306c3ca8f32a00ea6bca50f97f8c828da9eb05c8f76b3edf9fd6c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (19 lines \u00D7 2): presentation-core/src/main/java/tachiyomi/presentation/core/components/VerticalFastScroller.kt:194-212 | presentation-core/src/main/java/tachiyomi/presentation/core/components/VerticalFastScroller.kt:384-402"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"presentation-core/src/main/java/tachiyomi/presentation/core/components/VerticalFastScroller.kt"},"region":{"startLine":194}}}],"partialFingerprints":{"codehealthFindingId/v1":"f5dcf8f08d64a25856d45db046eee2d24e8cd3c028a4effdeb8fe400068c8c37"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18 lines \u00D7 5): core/common/src/main/kotlin/eu/kanade/tachiyomi/network/DohProviders.kt:36-48 | core/common/src/main/kotlin/eu/kanade/tachiyomi/network/DohProviders.kt:62-74 | core/common/src/main/kotlin/eu/kanade/tachiyomi/network/DohProviders.kt:96-108 | core/common/src/main/kotlin/eu/kanade/tachiyomi/network/DohProviders.kt:111-123 | core/common/src/main/kotlin/eu/kanade/tachiyomi/network/DohProviders.kt:137-154"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"core/common/src/main/kotlin/eu/kanade/tachiyomi/network/DohProviders.kt"},"region":{"startLine":36}}}],"partialFingerprints":{"codehealthFindingId/v1":"99ac2fd056a408f7b3e531a05e2a5ba951e0a54c6ebe496ed8275bab8f044150"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt:786-803 | app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt:1225-1242"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt"},"region":{"startLine":786}}}],"partialFingerprints":{"codehealthFindingId/v1":"d2cd9c227d7e2c90a9ecbd64300a5b7f7c20ef884a482bc1fe0ef35446ab1b93"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsEhScreen.kt:620-637 | app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsEhScreen.kt:786-803"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsEhScreen.kt"},"region":{"startLine":620}}}],"partialFingerprints":{"codehealthFindingId/v1":"73bc485ced38ed3fde81b3f47781cb51ba975972a89f696634f1febcc8831149"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/more/settings/screen/browse/components/ExtensionStoresScreen.kt:128-145 | app/src/main/java/eu/kanade/presentation/more/settings/screen/browse/components/ExtensionStoresScreen.kt:150-167"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/more/settings/screen/browse/components/ExtensionStoresScreen.kt"},"region":{"startLine":128}}}],"partialFingerprints":{"codehealthFindingId/v1":"0bf69a9d94e5ec7fa9e14b8686672ab84ab72d72f67c984ae806fd3fc98ddaf3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18 lines \u00D7 2): app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt:921-938 | app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt:971-988"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt"},"region":{"startLine":921}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d4b233adacf9b4da12b0a9af04a58ecd7f854e6713283f1ca786b7688e5a3ea"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18 lines \u00D7 2): app/src/main/java/mihon/feature/upcoming/UpcomingScreenContent.kt:243-260 | app/src/main/java/mihon/feature/upcoming/UpcomingScreenContent.kt:298-315"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/mihon/feature/upcoming/UpcomingScreenContent.kt"},"region":{"startLine":243}}}],"partialFingerprints":{"codehealthFindingId/v1":"772c40a304a321870a6812898b0f633fc3448a830f2cbd8c33dafef0a4a06a44"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 7): presentation-core/src/main/java/tachiyomi/presentation/core/icons/FlagEmoji.kt:40-56 | presentation-core/src/main/java/tachiyomi/presentation/core/icons/FlagEmoji.kt:57-73 | presentation-core/src/main/java/tachiyomi/presentation/core/icons/FlagEmoji.kt:74-89 | presentation-core/src/main/java/tachiyomi/presentation/core/icons/FlagEmoji.kt:90-106 | presentation-core/src/main/java/tachiyomi/presentation/core/icons/FlagEmoji.kt:107-122 | presentation-core/src/main/java/tachiyomi/presentation/core/icons/FlagEmoji.kt:123-138 | presentation-core/src/main/java/tachiyomi/presentation/core/icons/FlagEmoji.kt:139-155"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"presentation-core/src/main/java/tachiyomi/presentation/core/icons/FlagEmoji.kt"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"c334a37e58461b44045a57a0e58b01f9ab41458a0be0b1c572a73cae18df671b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/history/components/HistoryItem.kt:104-120 | app/src/main/java/eu/kanade/presentation/history/components/HistoryItem.kt:128-144"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/history/components/HistoryItem.kt"},"region":{"startLine":104}}}],"partialFingerprints":{"codehealthFindingId/v1":"6fa323a7ecfc8d8b7e44ff6d3205ea9cc7647d5cae8ea369e2a9960fe38968ef"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/more/settings/screen/browse/components/ExtensionStoresDialogs.kt:77-93 | app/src/main/java/eu/kanade/presentation/more/settings/screen/browse/components/ExtensionStoresDialogs.kt:174-190"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/more/settings/screen/browse/components/ExtensionStoresDialogs.kt"},"region":{"startLine":77}}}],"partialFingerprints":{"codehealthFindingId/v1":"7cbe4c9ea378d6a4069417d792fd10e8ce57bc47467ae8bd41a70f4655fcb535"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt:645-659 | app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt:1095-1109"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt"},"region":{"startLine":645}}}],"partialFingerprints":{"codehealthFindingId/v1":"81e6ed190009445c66e8dd7c93ae7fee1a76b807280774d1faa474f930b15a3f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/manga/components/MangaInfoHeader.kt:406-420 | app/src/main/java/eu/kanade/presentation/manga/components/MangaInfoHeader.kt:694-706"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/manga/components/MangaInfoHeader.kt"},"region":{"startLine":406}}}],"partialFingerprints":{"codehealthFindingId/v1":"21da7aadca8d5f083549256da10a7772d25def11b41c9c88b46b40ef4d2c8aa0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/manga/components/MangaInfoHeader.kt:519-532 | app/src/main/java/eu/kanade/presentation/manga/components/MangaInfoHeader.kt:608-622"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/manga/components/MangaInfoHeader.kt"},"region":{"startLine":519}}}],"partialFingerprints":{"codehealthFindingId/v1":"21da7aadca8d5f083549256da10a7772d25def11b41c9c88b46b40ef4d2c8aa0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): app/src/main/java/eu/kanade/tachiyomi/data/track/kitsu/KitsuApi.kt:169-183 | app/src/main/java/eu/kanade/tachiyomi/data/track/kitsu/KitsuApi.kt:190-204"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/tachiyomi/data/track/kitsu/KitsuApi.kt"},"region":{"startLine":169}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d0b4e3dc686bcb31fd0a974e7c1cf0fc8f19de1fcd7444c5feb2668b35dd6da"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt:1019-1033 | app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt:1038-1052"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt"},"region":{"startLine":1019}}}],"partialFingerprints":{"codehealthFindingId/v1":"e6e1247f03d49fcdc606583f8c44da00d0af4717258a0b5b3dde703599d2cf32"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 3): app/src/main/java/exh/util/MangaType.kt:86-99 | app/src/main/java/exh/util/MangaType.kt:109-119 | app/src/main/java/exh/util/MangaType.kt:145-154"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/exh/util/MangaType.kt"},"region":{"startLine":86}}}],"partialFingerprints":{"codehealthFindingId/v1":"75b619e8bb4da3f34b976b3271ecda971474c48b9fee5218f1c5bbc4fe5f23a4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/library/components/CommonMangaItem.kt:249-262 | app/src/main/java/eu/kanade/presentation/library/components/CommonMangaItem.kt:268-281"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/library/components/CommonMangaItem.kt"},"region":{"startLine":249}}}],"partialFingerprints":{"codehealthFindingId/v1":"f9f18e376fffe37bd5997085de3e8fb6b51e3d1f083cd9223699cd03e4445cfa"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt:489-502 | app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt:945-958"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt"},"region":{"startLine":489}}}],"partialFingerprints":{"codehealthFindingId/v1":"0685d7a7bf683bcd13ae534322edeb622fd657c5f866876f083b81760a4b4504"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt:624-637 | app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt:1080-1093"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt"},"region":{"startLine":624}}}],"partialFingerprints":{"codehealthFindingId/v1":"0685d7a7bf683bcd13ae534322edeb622fd657c5f866876f083b81760a4b4504"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/manga/components/MangaCover.kt:128-141 | app/src/main/java/eu/kanade/presentation/manga/components/MangaCover.kt:205-218"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/manga/components/MangaCover.kt"},"region":{"startLine":128}}}],"partialFingerprints":{"codehealthFindingId/v1":"b17ccfd5ffe0449c8dcbb68d7bad04aa85fb0af0655b1e6b4c8b7199a53682bf"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt:351-364 | app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt:456-469"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt"},"region":{"startLine":351}}}],"partialFingerprints":{"codehealthFindingId/v1":"823c1f479b46386b77440ebcb06bfd42126dc7ae530fca7dbf0fa1d318d58c9d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/updates/UpdatesUiItem.kt:320-333 | app/src/main/java/eu/kanade/presentation/updates/UpdatesUiItem.kt:338-351"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/updates/UpdatesUiItem.kt"},"region":{"startLine":320}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e407ca28bac014b11802428dd0334040fcfa1bee8e303d6895f3f9ec94e9064"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt:1026-1039 | app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt:1062-1075"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt"},"region":{"startLine":1026}}}],"partialFingerprints":{"codehealthFindingId/v1":"838498df584c1293ac6f94361f65790777943339f9b335d5b1cc909c7cee6810"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): presentation-core/src/main/java/tachiyomi/presentation/core/components/VerticalFastScroller.kt:86-99 | presentation-core/src/main/java/tachiyomi/presentation/core/components/VerticalFastScroller.kt:306-318"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"presentation-core/src/main/java/tachiyomi/presentation/core/components/VerticalFastScroller.kt"},"region":{"startLine":86}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f9d5e2650b4e5ac43b10efb8b3d2556f5ae38522a12191d29fc00ca5c90b957"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/browse/components/SourceFeedDialogs.kt:45-57 | app/src/main/java/eu/kanade/presentation/browse/components/SourceFeedDialogs.kt:71-83"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/browse/components/SourceFeedDialogs.kt"},"region":{"startLine":45}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa222e24ccdf48724b1f672652667eb773e8366c8db2245b941b18f80460215d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): core/common/src/main/kotlin/tachiyomi/core/common/util/system/UrlUtils.kt:14-26 | core/common/src/main/kotlin/tachiyomi/core/common/util/system/UrlUtils.kt:40-50"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"core/common/src/main/kotlin/tachiyomi/core/common/util/system/UrlUtils.kt"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"796f6ebccef696858c448d5aa437e21e940279a6d702700cc29129342c9f0c06"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): presentation-core/src/main/java/tachiyomi/presentation/core/components/VerticalFastScroller.kt:225-237 | presentation-core/src/main/java/tachiyomi/presentation/core/components/VerticalFastScroller.kt:414-426"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"presentation-core/src/main/java/tachiyomi/presentation/core/components/VerticalFastScroller.kt"},"region":{"startLine":225}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff933e32cdb2071b16129cbb1ab7d78fc73a5949e5412847effc0c5106836e91"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/UrlImportableSource.kt:24-36 | source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/UrlImportableSource.kt:40-52"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/UrlImportableSource.kt"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"5411ae8d348542f07439dbaae514c9593742fa17733daebebd8cd1793b9ec16c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/more/onboarding/PermissionStep.kt:139-150 | app/src/main/java/eu/kanade/presentation/more/onboarding/PermissionStep.kt:152-163"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/more/onboarding/PermissionStep.kt"},"region":{"startLine":139}}}],"partialFingerprints":{"codehealthFindingId/v1":"3593b0cf773a4a75cdc4e7aa754ad01f28290da99dcefd6c467ee30992390a5e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt:111-122 | app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt:174-185"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt"},"region":{"startLine":111}}}],"partialFingerprints":{"codehealthFindingId/v1":"af218b1edd98838bd9de25b266d70b53824159b9a8b186e895571a6b4d5623e4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt:274-284 | app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt:400-411"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt"},"region":{"startLine":274}}}],"partialFingerprints":{"codehealthFindingId/v1":"93cb3fd68c5932cc25d534a32360d2f544dce4445db9449a873db7ecd74772f0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): app/src/main/java/eu/kanade/tachiyomi/ui/manga/merged/EditMergedSettingsDialog.kt:141-152 | app/src/main/java/eu/kanade/tachiyomi/ui/manga/merged/EditMergedSettingsDialog.kt:171-182"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/tachiyomi/ui/manga/merged/EditMergedSettingsDialog.kt"},"region":{"startLine":141}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b0c4df2f826c0bd128ac170b58fd92f3cdf432a491598797ac3a59d55a04c3d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt:689-699 | app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt:1125-1135"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt"},"region":{"startLine":689}}}],"partialFingerprints":{"codehealthFindingId/v1":"54fe746051ba45be7ca65bd61fcb0751842c9af465da65540a516b0d92e2cbc8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/manga/components/MangaBottomActionMenu.kt:101-111 | app/src/main/java/eu/kanade/presentation/manga/components/MangaBottomActionMenu.kt:293-303"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/manga/components/MangaBottomActionMenu.kt"},"region":{"startLine":101}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ad98cb8a5efd77ff9f68fdbfac13973b7c5c70f672824d3321fd20e750bd455"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): app/src/main/java/eu/kanade/tachiyomi/data/sync/service/GoogleDriveSyncService.kt:316-326 | app/src/main/java/eu/kanade/tachiyomi/data/sync/service/GoogleDriveSyncService.kt:367-377"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/tachiyomi/data/sync/service/GoogleDriveSyncService.kt"},"region":{"startLine":316}}}],"partialFingerprints":{"codehealthFindingId/v1":"e2f45b014fe8ce3f74bf8cd2636a8fab7221eb1c44211717acfe182ec976ac5f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 7): app/src/main/java/exh/md/handlers/FilterHandler.kt:74-83 | app/src/main/java/exh/md/handlers/FilterHandler.kt:84-93 | app/src/main/java/exh/md/handlers/FilterHandler.kt:94-103 | app/src/main/java/exh/md/handlers/FilterHandler.kt:104-113 | app/src/main/java/exh/md/handlers/FilterHandler.kt:114-123 | app/src/main/java/exh/md/handlers/FilterHandler.kt:124-133 | app/src/main/java/exh/md/handlers/FilterHandler.kt:134-143"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/exh/md/handlers/FilterHandler.kt"},"region":{"startLine":74}}}],"partialFingerprints":{"codehealthFindingId/v1":"f7c088bf3e4670d33e8f63e29fea4805425c554bf0922df522093922bb365656"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/browse/FeedScreen.kt:306-315 | app/src/main/java/eu/kanade/presentation/browse/FeedScreen.kt:343-352"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/browse/FeedScreen.kt"},"region":{"startLine":306}}}],"partialFingerprints":{"codehealthFindingId/v1":"9c9515b2ccec902d8b08ac3d3512c2e72c04546200d659fbc1ff8211389e9abe"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/components/Chip.kt:61-70 | app/src/main/java/eu/kanade/presentation/components/Chip.kt:97-106"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/components/Chip.kt"},"region":{"startLine":61}}}],"partialFingerprints":{"codehealthFindingId/v1":"9d88fd9272b373809b968d53b8486ae3939be8e7b2a942d8a1176404446af682"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsLibraryScreen.kt:249-258 | app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsLibraryScreen.kt:263-272"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsLibraryScreen.kt"},"region":{"startLine":249}}}],"partialFingerprints":{"codehealthFindingId/v1":"6aa8799c611204cc88c475808d7b7ee0212e84027051eb37fa107a1f91a19c13"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt:1238-1247 | app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt:1352-1360"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt"},"region":{"startLine":1238}}}],"partialFingerprints":{"codehealthFindingId/v1":"320354c0a7aba7d0766558edad1f6efaf19fe51e83616c7d814945d9393d049a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): data/src/main/java/tachiyomi/data/manga/MangaMergeRepositoryImpl.kt:77-86 | data/src/main/java/tachiyomi/data/manga/MangaMergeRepositoryImpl.kt:96-105"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"data/src/main/java/tachiyomi/data/manga/MangaMergeRepositoryImpl.kt"},"region":{"startLine":77}}}],"partialFingerprints":{"codehealthFindingId/v1":"5f404075391cf52c3e88d6f5951131eaa8035533bdf63f6410ef3f2598bcad05"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): presentation-core/src/main/java/tachiyomi/presentation/core/components/VerticalFastScroller.kt:426-435 | presentation-core/src/main/java/tachiyomi/presentation/core/components/VerticalFastScroller.kt:441-448"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"presentation-core/src/main/java/tachiyomi/presentation/core/components/VerticalFastScroller.kt"},"region":{"startLine":426}}}],"partialFingerprints":{"codehealthFindingId/v1":"64bf1f7868c97e3861c445f0b9f8e0ea7421886457d1cf5dedc9881397d4e988"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt:441-448 | app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt:904-911"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt"},"region":{"startLine":441}}}],"partialFingerprints":{"codehealthFindingId/v1":"102a3e0e296db37a2c331a6097d4db750ced92e69ef755c7e0ed99b5ea9e1142"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDataScreen.kt:310-317 | app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDataScreen.kt:898-905"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDataScreen.kt"},"region":{"startLine":310}}}],"partialFingerprints":{"codehealthFindingId/v1":"47296c801080c12c5d243b089f323875c0d7f76a4166cb1486d6992ddc022217"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/BangumiApi.kt:45-52 | app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/BangumiApi.kt:63-70"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/BangumiApi.kt"},"region":{"startLine":45}}}],"partialFingerprints":{"codehealthFindingId/v1":"b3100e8e30f5283d189ffc61faab388ee7478df472b2bde032c1f749cd7e5f29"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): app/src/main/java/exh/md/handlers/BilibiliHandler.kt:82-88 | app/src/main/java/exh/md/handlers/BilibiliHandler.kt:129-136"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/exh/md/handlers/BilibiliHandler.kt"},"region":{"startLine":82}}}],"partialFingerprints":{"codehealthFindingId/v1":"a9121e7cd36827c6f4ec1af9e5f9e94687f9e41cbfe13243bbafb9ab6c1fdd1c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 3): app/src/main/java/exh/util/LewdMangaChecker.kt:39-45 | app/src/main/java/exh/util/LewdMangaChecker.kt:46-52 | app/src/main/java/exh/util/LewdMangaChecker.kt:53-59"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/exh/util/LewdMangaChecker.kt"},"region":{"startLine":39}}}],"partialFingerprints":{"codehealthFindingId/v1":"dff724b45b063c84b13b8e6c0dbc836b063765d1257beef945f2f52c425ee37c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 3): presentation-core/src/main/java/tachiyomi/presentation/core/components/VerticalFastScroller.kt:333-339 | presentation-core/src/main/java/tachiyomi/presentation/core/components/VerticalFastScroller.kt:433-439 | presentation-core/src/main/java/tachiyomi/presentation/core/components/VerticalFastScroller.kt:446-452"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"presentation-core/src/main/java/tachiyomi/presentation/core/components/VerticalFastScroller.kt"},"region":{"startLine":333}}}],"partialFingerprints":{"codehealthFindingId/v1":"970394d1a790e7b57eac2726a85957490147f1381f0a48bea88a5c8afc57ef46"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt:99-105 | app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt:111-117"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt"},"region":{"startLine":99}}}],"partialFingerprints":{"codehealthFindingId/v1":"32c3226f844707dc24360e40fc17bd103c4eb9584c3b54e754f3f1d9b7c1c507"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt:131-137 | app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt:149-155"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt"},"region":{"startLine":131}}}],"partialFingerprints":{"codehealthFindingId/v1":"36fceacc33a695f26c29a453251417efe97ad5f734a84fda33e7b0bc9f3405fb"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): app/src/main/java/exh/util/SourceTagsUtil.kt:131-137 | app/src/main/java/exh/util/SourceTagsUtil.kt:138-144"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/exh/util/SourceTagsUtil.kt"},"region":{"startLine":131}}}],"partialFingerprints":{"codehealthFindingId/v1":"f7cf69377fe298d638c66f97359d3b3e5e0e5cf2cc018042e80af8a9551ee591"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): presentation-core/src/main/java/tachiyomi/presentation/core/components/VerticalFastScroller.kt:77-83 | presentation-core/src/main/java/tachiyomi/presentation/core/components/VerticalFastScroller.kt:295-301"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"presentation-core/src/main/java/tachiyomi/presentation/core/components/VerticalFastScroller.kt"},"region":{"startLine":77}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ea78885fc74f838736187901f35918d3211b9e801c4766733b24d196b7fa6c2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): app/src/main/java/exh/util/DataSaver.kt:60-65 | app/src/main/java/exh/util/DataSaver.kt:86-91"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"app/src/main/java/exh/util/DataSaver.kt"},"region":{"startLine":60}}}],"partialFingerprints":{"codehealthFindingId/v1":"65a50bfe1b836ae7e520d653e5765bfd4772772b91587bc45c7c475a39c0c5e5"}},{"ruleId":"D8","level":"warning","message":{"text":"Coverage not measured \u2014 test suite did not build: Coverage NOT MEASURED: the repo\u0027s own test suite did not build (a C#/MSBuild compiler error in the test code), so no coverage could be collected. It is excluded from the score rather than counted as a near-zero defect. Fix the test build, or commit the Cobertura/OpenCover/lcov report your CI already produces, and real coverage will be measured."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"8beb176c604706486df63d2215f767f50520c8d949b1d464345de14ded442c69"}},{"ruleId":"D9","level":"note","message":{"text":"No tests found: No test projects found in the repository."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c9bf64cbb5a4ae13d6bcd01fa3bc8d2879d860c73bc67f176ee3c2cecb8adce3"}},{"ruleId":"D16","level":"warning","message":{"text":"single-maintainer \u2014 knowledge-concentration (bus factor) risk: single-maintainer \u2014 knowledge-concentration (bus factor) risk (0 author(s) across 0 commit(s) sampled)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b4b49d961df742f0e507f4cc5c8094fb077ba0391a27fd015d18320865187719"}},{"ruleId":"D19","level":"note","message":{"text":"The i18n README is thin: only a brief \u0027string resources and translations\u0027 line plus a link to Weblate, with no guidance on localizing new features or handling missing strings.: Add a short section explaining how to localize new components (e.g. the search bar) and what happens when a string is missing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"i18n/README.md"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"121835517623e9ba536a15d3a16017b0e02fd44a1c0f1bb8c5a72d005051c0f0"}},{"ruleId":"D28","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"9ac9cb1377aafef68132b04d5c852b5156b7ec0bb498a97898f9b24740be6f66"}},{"ruleId":"D28","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"d267b33d7fb0e5e08963e529602c064162bcd8bad5139843c68fd0618901067d"}},{"ruleId":"D28","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"d267b33d7fb0e5e08963e529602c064162bcd8bad5139843c68fd0618901067d"}},{"ruleId":"D28","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"b242e52b52998a1b3bdfd77c3bbcc8324f6da738694310f1b52072c391644353"}},{"ruleId":"D28","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"b242e52b52998a1b3bdfd77c3bbcc8324f6da738694310f1b52072c391644353"}},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"d5b8f11381d61a58459ffc7c595fd52d09c03c711894a63a9578043d2338412b"},"taxa":[{"id":"CWE-829","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"85a8d3e589b7eb1b5791742efbcf053da7c9c89880a2846e53b3c0e4b2d96357"},"taxa":[{"id":"CWE-78","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"e622d1561db72c346ffb73883eb84130203b7457c960d44ebacabfc7d727996d"},"taxa":[{"id":"CWE-78","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3b0367e7ea9bdd389991714fe83002077989c3eac9db9d8bdc3becd4dd073aee"},"taxa":[{"id":"CWE-926","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3b0367e7ea9bdd389991714fe83002077989c3eac9db9d8bdc3becd4dd073aee"},"taxa":[{"id":"CWE-926","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3b0367e7ea9bdd389991714fe83002077989c3eac9db9d8bdc3becd4dd073aee"},"taxa":[{"id":"CWE-926","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3b0367e7ea9bdd389991714fe83002077989c3eac9db9d8bdc3becd4dd073aee"},"taxa":[{"id":"CWE-926","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3b0367e7ea9bdd389991714fe83002077989c3eac9db9d8bdc3becd4dd073aee"},"taxa":[{"id":"CWE-926","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3b0367e7ea9bdd389991714fe83002077989c3eac9db9d8bdc3becd4dd073aee"},"taxa":[{"id":"CWE-926","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"2430fc8bbcdb58075a7f5ecd1e46889189459b6797792efebda8aa11e08d5cf8"},"taxa":[{"id":"CWE-328","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"5810ede3dcae75f4c046758f38591f0cad406e7abec71d4dc134c475949bdb40"},"taxa":[{"id":"CWE-328","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D36","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"1b213f6eedd4b140d0bc37bdf1496f72811a643f34064f12518b32e9e83bcfc7"}},{"ruleId":"D36","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"0e17f71490e4d120a48b2b2881ab866c93b272bef2febb673a3e8e42b2c288ab"}},{"ruleId":"D36","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"eb00976a698a5d68999b7ee6d27206fd374e916853e7ff1ead5eed42386f043f"}}],"taxonomies":[{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d","organization":"MITRE","informationUri":"https://cwe.mitre.org/","isComprehensive":false,"shortDescription":{"text":"The MITRE Common Weakness Enumeration (CWE)."},"taxa":[{"id":"CWE-1357","guid":"e4d2e772-757e-0a5c-bd7d-77052949d866","name":"Reliance on Insufficiently Trustworthy Component","shortDescription":{"text":"Reliance on Insufficiently Trustworthy Component"},"helpUri":"https://cwe.mitre.org/data/definitions/1357.html"},{"id":"CWE-259","guid":"ae9ad959-fbb6-9d5e-892d-3dca66da0b69","name":"Use of Hard-coded Password","shortDescription":{"text":"Use of Hard-coded Password"},"helpUri":"https://cwe.mitre.org/data/definitions/259.html"},{"id":"CWE-328","guid":"f0ffc869-97c3-dc5c-8825-be1159f1fc5f","name":"CWE-328","shortDescription":{"text":"CWE-328"},"helpUri":"https://cwe.mitre.org/data/definitions/328.html"},{"id":"CWE-494","guid":"b8a65e0d-e459-4a55-a931-fc1136482375","name":"Download of Code Without Integrity Check","shortDescription":{"text":"Download of Code Without Integrity Check"},"helpUri":"https://cwe.mitre.org/data/definitions/494.html"},{"id":"CWE-77","guid":"332c8ade-6612-9f56-a06b-d8d90b1a8750","name":"Command Injection","shortDescription":{"text":"Command Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/77.html"},{"id":"CWE-78","guid":"2e31ceaf-c7ae-2e5e-9661-cfb1362789cf","name":"OS Command Injection","shortDescription":{"text":"OS Command Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/78.html"},{"id":"CWE-79","guid":"fd45580b-e8c4-fc5e-8c2f-aa8fab0b4dbf","name":"Cross-site Scripting (XSS)","shortDescription":{"text":"Cross-site Scripting (XSS)"},"helpUri":"https://cwe.mitre.org/data/definitions/79.html"},{"id":"CWE-798","guid":"5e8f057d-fee3-995a-a0cb-9fc5b0d174d1","name":"Use of Hard-coded Credentials","shortDescription":{"text":"Use of Hard-coded Credentials"},"helpUri":"https://cwe.mitre.org/data/definitions/798.html"},{"id":"CWE-829","guid":"13c33925-97fb-5a5e-b40c-56d328b8a4d7","name":"CWE-829","shortDescription":{"text":"CWE-829"},"helpUri":"https://cwe.mitre.org/data/definitions/829.html"},{"id":"CWE-89","guid":"6d08fdad-37eb-c150-bbf0-d7d946863407","name":"SQL Injection","shortDescription":{"text":"SQL Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/89.html"},{"id":"CWE-926","guid":"0d9b5579-5549-555a-8a97-f9cc14f3ad4a","name":"CWE-926","shortDescription":{"text":"CWE-926"},"helpUri":"https://cwe.mitre.org/data/definitions/926.html"},{"id":"CWE-94","guid":"75e7f50c-6c2f-dd52-bf40-bf6c52b861fd","name":"Code Injection","shortDescription":{"text":"Code Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/94.html"}]}],"properties":{"codehealthPublication":{"public":true,"notice":"This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings \u2014 which rule fired, in which file, on which line, and how to fix it \u2014 are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.","securityFindingsRedacted":19,"secretScannerRunsExcluded":0}},"redactionTokens":["A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."]}]}