duplicated block id: 1 size: 50 cleaned lines of code in 2 files: - frontend/app/browse/BrowseFilter.tsx (36:85) - frontend/app/search/NewBasicSearch.tsx (88:137) duplicated block id: 2 size: 22 cleaned lines of code in 2 files: - frontend/app/ProxyHealth/ProxyHealthDash.jsx (143:164) - frontend/app/ProxyHealthDetail/ByCollectionChart.jsx (76:97) duplicated block id: 3 size: 18 cleaned lines of code in 2 files: - conf/logback-deployment.xml (75:93) - conf/logback.xml (75:93) duplicated block id: 4 size: 17 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (688:704) - cloudformation/bucketmonitor.yaml (86:102) duplicated block id: 5 size: 16 cleaned lines of code in 2 files: - frontend/app/ProxyHealth/ProxyHealthDash.jsx (106:121) - frontend/app/ProxyHealth/ProxyHealthDash.jsx (145:160) duplicated block id: 6 size: 16 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (3:18) - cloudformation/bucketmonitor.yaml (3:18) duplicated block id: 7 size: 16 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (3:18) - cloudformation/proxy-stats-gathering.yaml (3:18) duplicated block id: 8 size: 16 cleaned lines of code in 2 files: - frontend/app/ProxyHealth/ProxyHealthDash.jsx (106:121) - frontend/app/ProxyHealthDetail/ByCollectionChart.jsx (78:93) duplicated block id: 9 size: 16 cleaned lines of code in 2 files: - cloudformation/bucketmonitor.yaml (3:18) - cloudformation/proxy-stats-gathering.yaml (3:18) duplicated block id: 10 size: 14 cleaned lines of code in 2 files: - frontend/app/Entry/details/MetadataTable.tsx (53:67) - frontend/app/ItemView/FlexMetadata.tsx (42:56) duplicated block id: 11 size: 14 cleaned lines of code in 2 files: - frontend/app/browse/BrowsePathSummary.jsx (16:29) - frontend/app/browse/BrowseSummaryDisplay.tsx (23:36) duplicated block id: 12 size: 14 cleaned lines of code in 2 files: - frontend/app/ProxyHealthDetail/ByCollectionChart.jsx (61:74) - frontend/app/ProxyHealthDetail/GeneralOverviewChart.jsx (65:78) duplicated block id: 13 size: 14 cleaned lines of code in 2 files: - testscripts/hmac_client.py (95:111) - testscripts/request-move-file.py (83:99) duplicated block id: 14 size: 13 cleaned lines of code in 2 files: - app/controllers/ImportController.scala (57:74) - lambda/input/src/main/scala/InputLambdaMain.scala (98:115) duplicated block id: 15 size: 12 cleaned lines of code in 2 files: - frontend/app/DeletedItems/DeletedItems.tsx (216:227) - frontend/app/browse/NewBrowseComponent.tsx (264:275) duplicated block id: 16 size: 12 cleaned lines of code in 2 files: - frontend/app/DeletedItems/DeletedItems.tsx (22:33) - frontend/app/browse/NewBrowseComponent.tsx (23:34) duplicated block id: 17 size: 11 cleaned lines of code in 2 files: - frontend/app/ProxyHealthDetail/ByCollectionChart.jsx (22:35) - frontend/app/ProxyHealthDetail/GeneralOverviewChart.jsx (22:35) duplicated block id: 18 size: 10 cleaned lines of code in 2 files: - frontend/app/ProxyHealth/ProxyHealthDash.jsx (123:132) - frontend/app/ProxyHealth/ProxyHealthDash.jsx (162:171) duplicated block id: 19 size: 10 cleaned lines of code in 2 files: - lambda/input/src/main/scala/InputLambdaMain.scala (364:373) - lambda/input/src/main/scala/InputLambdaMain.scala (389:398) duplicated block id: 20 size: 10 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (241:250) - cloudformation/appstack.yaml (422:431) duplicated block id: 21 size: 10 cleaned lines of code in 2 files: - app/controllers/Auth.scala (154:163) - app/controllers/Auth.scala (169:178) duplicated block id: 22 size: 10 cleaned lines of code in 2 files: - frontend/app/ProxyHealthDetail/ByCollectionChart.jsx (8:18) - frontend/app/ProxyHealthDetail/GeneralOverviewChart.jsx (8:18) duplicated block id: 23 size: 9 cleaned lines of code in 2 files: - conf/logback-deployment.xml (43:52) - conf/logback.xml (45:54) duplicated block id: 24 size: 9 cleaned lines of code in 2 files: - frontend/app/DeletedItems/DeletedItems.tsx (33:41) - frontend/app/browse/NewBrowseComponent.tsx (42:50) duplicated block id: 25 size: 9 cleaned lines of code in 2 files: - frontend/app/ProxyHealth/ProxyHealthDash.jsx (165:175) - frontend/app/ProxyHealthDetail/ByCollectionChart.jsx (99:107) duplicated block id: 26 size: 9 cleaned lines of code in 2 files: - testscripts/hmac-search.py (17:43) - testscripts/request-move-file.py (34:60) duplicated block id: 27 size: 9 cleaned lines of code in 2 files: - app/services/IngestProxyQueue.scala (115:124) - app/services/IngestProxyQueue.scala (159:168) duplicated block id: 28 size: 9 cleaned lines of code in 2 files: - ProxyStatsGathering/src/main/scala/StreamComponents/IsDotFileBranch.scala (27:39) - ProxyStatsGathering/src/main/scala/StreamComponents/IsGlacierBranch.scala (66:78) duplicated block id: 29 size: 9 cleaned lines of code in 2 files: - app/helpers/LightboxStreamComponents/SaveLightboxEntryFlow.scala (35:46) - app/helpers/LightboxStreamComponents/UpdateLightboxIndexInfoSink.scala (36:47) duplicated block id: 30 size: 8 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (752:759) - cloudformation/bucketmonitor.yaml (64:71) duplicated block id: 31 size: 8 cleaned lines of code in 2 files: - testscripts/hmac-search.py (17:41) - testscripts/hmac_client.py (33:57) duplicated block id: 32 size: 8 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (362:369) - cloudformation/appstack.yaml (373:380) duplicated block id: 33 size: 8 cleaned lines of code in 2 files: - common/src/main/scala/com/theguardian/multimedia/archivehunter/common/ArchiveEntry.scala (45:53) - common/src/main/scala/com/theguardian/multimedia/archivehunter/common/ProxyLocation.scala (81:89) duplicated block id: 34 size: 8 cleaned lines of code in 2 files: - app/services/ProxyFrameworkQueue.scala (487:494) - app/services/ProxyFrameworkQueue.scala (514:521) duplicated block id: 35 size: 8 cleaned lines of code in 2 files: - frontend/app/ProxyHealth/ProxyHealthDash.jsx (28:35) - frontend/app/ProxyHealthDetail/ByCollectionChart.jsx (11:18) duplicated block id: 36 size: 8 cleaned lines of code in 2 files: - testscripts/hmac_client.py (33:57) - testscripts/request-move-file.py (34:58) duplicated block id: 37 size: 8 cleaned lines of code in 2 files: - frontend/app/ProxyHealth/ProxyHealthDash.jsx (28:35) - frontend/app/ProxyHealthDetail/GeneralOverviewChart.jsx (11:18) duplicated block id: 38 size: 8 cleaned lines of code in 2 files: - app/services/ProxyFrameworkQueue.scala (440:447) - app/services/ProxyFrameworkQueue.scala (514:521) duplicated block id: 39 size: 8 cleaned lines of code in 2 files: - app/services/ProxyFrameworkQueue.scala (440:447) - app/services/ProxyFrameworkQueue.scala (487:494) duplicated block id: 40 size: 7 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (425:431) - cloudformation/appstack.yaml (531:537) duplicated block id: 41 size: 7 cleaned lines of code in 2 files: - ProxyStatsGathering/src/main/scala/StreamComponents/SearchHitToArchiveEntryFlow.scala (8:17) - app/helpers/SearchHitToArchiveEntryFlow.scala (11:20) duplicated block id: 42 size: 7 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (224:230) - cloudformation/appstack.yaml (531:537) duplicated block id: 43 size: 7 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (244:250) - cloudformation/appstack.yaml (531:537) duplicated block id: 44 size: 7 cleaned lines of code in 2 files: - app/services/FileMove/ImprovedLargeFileCopier.scala (416:422) - app/services/FileMove/ImprovedLargeFileCopier.scala (471:477) duplicated block id: 45 size: 7 cleaned lines of code in 2 files: - common/src/main/scala/com/theguardian/multimedia/archivehunter/common/Indexer.scala (125:133) - common/src/main/scala/com/theguardian/multimedia/archivehunter/common/ProblemItemIndexer.scala (126:134) duplicated block id: 46 size: 7 cleaned lines of code in 2 files: - lambda/input/src/main/scala/InputLambdaMain.scala (198:205) - lambda/input/src/main/scala/InputLambdaMain.scala (275:282) duplicated block id: 47 size: 7 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (908:914) - cloudformation/appstack.yaml (938:944) duplicated block id: 48 size: 7 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (224:230) - cloudformation/appstack.yaml (425:431) duplicated block id: 49 size: 7 cleaned lines of code in 2 files: - app/helpers/LightboxStreamComponents/InitiateRestoreSink.scala (28:36) - app/helpers/LightboxStreamComponents/UpdateLightboxIndexInfoSink.scala (39:47) duplicated block id: 50 size: 7 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (892:898) - cloudformation/appstack.yaml (938:944) duplicated block id: 51 size: 7 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (224:230) - cloudformation/appstack.yaml (456:462) duplicated block id: 52 size: 7 cleaned lines of code in 2 files: - app/helpers/ArchiveEntryVerifyFlow.scala (35:42) - app/helpers/SearchHitToArchiveEntryFlow.scala (19:26) duplicated block id: 53 size: 7 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (456:462) - cloudformation/appstack.yaml (531:537) duplicated block id: 54 size: 7 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (244:250) - cloudformation/appstack.yaml (456:462) duplicated block id: 55 size: 7 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (381:387) - cloudformation/appstack.yaml (456:462) duplicated block id: 56 size: 7 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (892:898) - cloudformation/appstack.yaml (908:914) duplicated block id: 57 size: 7 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (425:431) - cloudformation/appstack.yaml (456:462) duplicated block id: 58 size: 7 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (381:387) - cloudformation/appstack.yaml (401:407) duplicated block id: 59 size: 7 cleaned lines of code in 2 files: - frontend/app/Lightbox/NewLightbox.tsx (257:263) - frontend/app/browse/NewBrowseComponent.tsx (258:264) duplicated block id: 60 size: 7 cleaned lines of code in 2 files: - app/services/ProxyFrameworkQueue.scala (287:293) - app/services/ProxyFrameworkQueue.scala (455:461) duplicated block id: 61 size: 7 cleaned lines of code in 2 files: - app/helpers/DDBSink.scala (57:63) - app/helpers/DDBSink.scala (78:84) duplicated block id: 62 size: 7 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (199:205) - cloudformation/appstack.yaml (753:759) duplicated block id: 63 size: 7 cleaned lines of code in 2 files: - app/helpers/LightboxStreamComponents/InitiateRestoreSink.scala (28:36) - app/helpers/LightboxStreamComponents/SaveLightboxEntryFlow.scala (38:46) duplicated block id: 64 size: 7 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (401:407) - cloudformation/appstack.yaml (531:537) duplicated block id: 65 size: 7 cleaned lines of code in 2 files: - frontend/app/Lightbox/BulkSelectionsScroll.tsx (28:34) - frontend/app/search/EntryView.tsx (19:25) duplicated block id: 66 size: 7 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (401:407) - cloudformation/appstack.yaml (425:431) duplicated block id: 67 size: 7 cleaned lines of code in 2 files: - frontend/app/ProxyHealth/ProxyHealthDash.jsx (126:132) - frontend/app/ProxyHealthDetail/ByCollectionChart.jsx (99:105) duplicated block id: 68 size: 7 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (224:230) - cloudformation/appstack.yaml (244:250) duplicated block id: 69 size: 7 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (762:768) - cloudformation/proxy-stats-gathering.yaml (42:48) duplicated block id: 70 size: 7 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (381:387) - cloudformation/appstack.yaml (531:537) duplicated block id: 71 size: 7 cleaned lines of code in 2 files: - frontend/app/Lightbox/BulkSelectionsScroll.tsx (45:51) - frontend/app/search/EntryView.tsx (36:42) duplicated block id: 72 size: 7 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (224:230) - cloudformation/appstack.yaml (401:407) duplicated block id: 73 size: 7 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (541:547) - cloudformation/proxy-stats-gathering.yaml (42:48) duplicated block id: 74 size: 7 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (224:230) - cloudformation/appstack.yaml (381:387) duplicated block id: 75 size: 7 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (244:250) - cloudformation/appstack.yaml (381:387) duplicated block id: 76 size: 7 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (381:387) - cloudformation/appstack.yaml (425:431) duplicated block id: 77 size: 7 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (401:407) - cloudformation/appstack.yaml (456:462) duplicated block id: 78 size: 7 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (199:205) - cloudformation/bucketmonitor.yaml (65:71) duplicated block id: 79 size: 7 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (244:250) - cloudformation/appstack.yaml (401:407) duplicated block id: 80 size: 7 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (541:547) - cloudformation/appstack.yaml (762:768) duplicated block id: 81 size: 6 cleaned lines of code in 2 files: - lambda/input/src/main/scala/InputLambdaMain.scala (215:221) - lambda/input/src/main/scala/InputLambdaMain.scala (292:298) duplicated block id: 82 size: 6 cleaned lines of code in 2 files: - ProxyStatsGathering/src/main/scala/StreamComponents/SearchHitToArchiveEntryFlow.scala (28:38) - app/helpers/ProblemItemToArchiveEntryFlow.scala (34:42) duplicated block id: 83 size: 6 cleaned lines of code in 2 files: - frontend/app/ProxyHealthDetail/ByCollectionChart.jsx (99:104) - frontend/app/ProxyHealthDetail/GeneralOverviewChart.jsx (86:91) duplicated block id: 84 size: 6 cleaned lines of code in 2 files: - frontend/app/Entry/EntryJobs.jsx (16:23) - frontend/app/browse/BrowsePathSummary.jsx (47:54) duplicated block id: 85 size: 6 cleaned lines of code in 2 files: - frontend/app/Entry/EntryJobs.jsx (17:24) - frontend/app/JobsList/ResubmitComponent.jsx (34:41) duplicated block id: 86 size: 6 cleaned lines of code in 2 files: - frontend/app/ProxyHealth/ProxyHealthDash.jsx (81:87) - frontend/app/admin/QuickRestore.jsx (138:144) duplicated block id: 87 size: 6 cleaned lines of code in 2 files: - ProxyStatsGathering/src/main/scala/StreamComponents/ProxyResultGroup.scala (31:41) - app/helpers/HasThumbnailFilter.scala (48:57) duplicated block id: 88 size: 6 cleaned lines of code in 2 files: - frontend/app/Entry/EntryJobs.jsx (16:23) - frontend/app/browse/BulkLightboxAdd.jsx (11:18) duplicated block id: 89 size: 6 cleaned lines of code in 2 files: - app/services/FileMove/ImprovedLargeFileCopier.scala (418:423) - app/services/FileMove/ImprovedLargeFileCopier.scala (521:526) duplicated block id: 90 size: 6 cleaned lines of code in 2 files: - frontend/app/browse/BrowsePathSummary.jsx (47:54) - frontend/app/browse/BulkLightboxAdd.jsx (11:18) duplicated block id: 91 size: 6 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (862:867) - cloudformation/proxy-stats-gathering.yaml (78:83) duplicated block id: 92 size: 6 cleaned lines of code in 2 files: - frontend/app/Entry/EntryJobs.jsx (17:24) - frontend/app/common/JobEntry.jsx (12:19) duplicated block id: 93 size: 6 cleaned lines of code in 2 files: - frontend/app/common/JobEntry.jsx (12:19) - frontend/app/common/RegionSelector.jsx (10:17) duplicated block id: 94 size: 6 cleaned lines of code in 2 files: - conf/logback-deployment.xml (1:13) - lambda/input/src/main/resources/logback.xml (1:9) duplicated block id: 95 size: 6 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (712:717) - cloudformation/bucketmonitor.yaml (122:127) duplicated block id: 96 size: 6 cleaned lines of code in 2 files: - frontend/app/ProxyHealth/ProxyHealthDash.jsx (10:15) - frontend/app/ProxyHealthDetail/ProxyHealthStyles.tsx (5:10) duplicated block id: 97 size: 6 cleaned lines of code in 2 files: - ProxyStatsGathering/src/main/scala/MainContent.scala (28:33) - lambda/input/src/main/scala/InputLambdaMain.scala (240:245) duplicated block id: 98 size: 6 cleaned lines of code in 2 files: - app/controllers/LightboxController.scala (71:76) - app/controllers/LightboxController.scala (488:493) duplicated block id: 99 size: 6 cleaned lines of code in 2 files: - app/helpers/S3ToArchiveEntryFlow.scala (120:127) - app/helpers/SearchHitToArchiveEntryFlow.scala (37:44) duplicated block id: 100 size: 6 cleaned lines of code in 2 files: - frontend/app/Entry/EntryDetails.tsx (24:29) - frontend/app/Entry/MediaPreview.tsx (40:45) duplicated block id: 101 size: 6 cleaned lines of code in 2 files: - frontend/app/JobsList/JobsList.jsx (91:96) - frontend/app/JobsList/JobsList.jsx (101:106) duplicated block id: 102 size: 6 cleaned lines of code in 2 files: - testscripts/hmac_client.py (130:135) - testscripts/request-move-file.py (103:108) duplicated block id: 103 size: 6 cleaned lines of code in 2 files: - lambda/autodowning/src/main/resources/log4j2.yaml (9:14) - lambda/input/src/main/resources/log4j2.yaml (8:13) duplicated block id: 104 size: 6 cleaned lines of code in 2 files: - conf/logback.xml (1:13) - lambda/input/src/main/resources/logback.xml (1:9) duplicated block id: 105 size: 6 cleaned lines of code in 2 files: - lambda/input/src/main/scala/InputLambdaMain.scala (207:213) - lambda/input/src/main/scala/InputLambdaMain.scala (284:290) duplicated block id: 106 size: 6 cleaned lines of code in 2 files: - app/services/JobPurgerActor.scala (72:77) - app/services/JobPurgerActor.scala (88:93) duplicated block id: 107 size: 6 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (353:358) - cloudformation/appstack.yaml (364:369) duplicated block id: 108 size: 6 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (353:358) - cloudformation/appstack.yaml (375:380) duplicated block id: 109 size: 6 cleaned lines of code in 2 files: - frontend/app/Entry/EntryJobs.jsx (17:24) - frontend/app/common/RegionSelector.jsx (10:17) duplicated block id: 110 size: 6 cleaned lines of code in 2 files: - cloudformation/appstack.yaml (220:225) - cloudformation/appstack.yaml (661:666) duplicated block id: 111 size: 6 cleaned lines of code in 2 files: - frontend/app/ProxyHealth/ProxyHealthDash.jsx (165:170) - frontend/app/ProxyHealthDetail/GeneralOverviewChart.jsx (86:91) duplicated block id: 112 size: 6 cleaned lines of code in 2 files: - frontend/app/JobsList/ResubmitComponent.jsx (34:41) - frontend/app/common/RegionSelector.jsx (10:17) duplicated block id: 113 size: 6 cleaned lines of code in 2 files: - app/helpers/HasThumbnailFilter.scala (48:57) - app/helpers/ProxyVerifyFlow.scala (56:65) duplicated block id: 114 size: 6 cleaned lines of code in 2 files: - ProxyStatsGathering/src/main/scala/StreamComponents/ProxyResultGroup.scala (31:41) - app/helpers/ProxyVerifyFlow.scala (56:65) duplicated block id: 115 size: 6 cleaned lines of code in 2 files: - frontend/app/ProxyHealth/ProxyHealthDash.jsx (126:131) - frontend/app/ProxyHealthDetail/GeneralOverviewChart.jsx (86:91) duplicated block id: 116 size: 6 cleaned lines of code in 2 files: - conf/logback-deployment.xml (1:13) - conf/logback.xml (1:13) duplicated block id: 117 size: 6 cleaned lines of code in 2 files: - frontend/app/JobsList/ResubmitComponent.jsx (34:41) - frontend/app/common/JobEntry.jsx (12:19) duplicated block id: 118 size: 6 cleaned lines of code in 2 files: - frontend/app/ProxyHealthDetail/ByCollectionChart.jsx (52:59) - frontend/app/ProxyHealthDetail/GeneralOverviewChart.jsx (56:63) duplicated block id: 119 size: 6 cleaned lines of code in 2 files: - app/services/ProxiesRelinker.scala (108:113) - app/services/ProxiesRelinker.scala (135:140)