gitextract_rp99wxvr/ ├── .claude/ │ └── skills/ │ ├── java-tdd-guide/ │ │ └── SKILL.md │ └── tdd/ │ └── SKILL.md ├── .github/ │ ├── dependabot.yml │ └── workflows/ │ ├── assembly.yml │ ├── claude-code-review.yml │ ├── claude.yml │ ├── codeql.yml │ ├── coverage.yml │ └── matrixci.yml ├── .gitignore ├── .mvn/ │ └── jvm.config ├── CLAUDE.md ├── CODE_OF_CONDUCT.md ├── CODE_WRITING_GUIDE.md ├── LICENSE ├── README.md ├── TEST_WRITING_GUIDE.md ├── build.bat ├── examples/ │ ├── addresses/ │ │ ├── fileContainingAddresses0.txt │ │ ├── fileContainingAddresses1.tsv │ │ └── fileContainingAddresses2.csv │ ├── config_AddressFilesToLMDB.json │ ├── config_Find_1OpenCLDevice.json │ ├── config_Find_1OpenCLDeviceAnd2CPUProducer.json │ ├── config_Find_8CPUProducer.json │ ├── config_Find_SecretsFile.json │ ├── config_LMDBToAddressFile.json │ ├── config_OpenCLInfo.json │ ├── logbackConfiguration.xml │ ├── run_AddressFilesToLMDB.bat │ ├── run_Find_1OpenCLDevice.bat │ ├── run_Find_1OpenCLDeviceAnd2CPUProducer.bat │ ├── run_Find_8CPUProducer.bat │ ├── run_Find_SecretsFile.bat │ ├── run_LMDBToAddressFile.bat │ ├── run_OpenCLInfo.bat │ ├── secrets/ │ │ ├── fileContainingSecrets_BIG_INTEGER.txt │ │ ├── fileContainingSecrets_DUMPED_RIVATE_KEY.txt │ │ ├── fileContainingSecrets_SHA256.txt │ │ └── fileContainingSecrets_STRING_DO_SHA256.txt │ └── websocket.html ├── helper/ │ ├── bitinfocharts_com_scraping/ │ │ ├── scraping.py │ │ └── start.bat │ └── dumpwallet/ │ └── dumpwallet.py ├── pom.xml ├── skills/ │ └── tdd.md ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── net/ │ │ │ └── ladenthin/ │ │ │ └── bitcoinaddressfinder/ │ │ │ ├── AbstractPlaintextFile.java │ │ │ ├── AbstractProducer.java │ │ │ ├── AddressFile.java │ │ │ ├── AddressFilesToLMDB.java │ │ │ ├── AddressFormatNotAcceptedException.java │ │ │ ├── AddressToCoin.java │ │ │ ├── AddressTxtLine.java │ │ │ ├── AddressType.java │ │ │ ├── BIP39KeyProducer.java │ │ │ ├── BIP39Wordlist.java │ │ │ ├── Base36Decoder.java │ │ │ ├── Bech32Helper.java │ │ │ ├── BitHelper.java │ │ │ ├── ByteBufferUtility.java │ │ │ ├── ByteConversion.java │ │ │ ├── Consumer.java │ │ │ ├── ConsumerJava.java │ │ │ ├── EndiannessConverter.java │ │ │ ├── FileHelper.java │ │ │ ├── Finder.java │ │ │ ├── Interruptable.java │ │ │ ├── KeyUtility.java │ │ │ ├── LMDBToAddressFile.java │ │ │ ├── NetworkParameterFactory.java │ │ │ ├── OpenCLContext.java │ │ │ ├── OpenCLGridResult.java │ │ │ ├── OpenClTask.java │ │ │ ├── PrivateKeyTooLargeException.java │ │ │ ├── PrivateKeyValidator.java │ │ │ ├── Producer.java │ │ │ ├── ProducerJava.java │ │ │ ├── ProducerJavaSecretsFiles.java │ │ │ ├── ProducerOpenCL.java │ │ │ ├── ProducerState.java │ │ │ ├── ProducerStateProvider.java │ │ │ ├── PublicKeyBytes.java │ │ │ ├── RandomSecretSupplier.java │ │ │ ├── ReadStatistic.java │ │ │ ├── ReleaseCLObject.java │ │ │ ├── SecretSupplier.java │ │ │ ├── SecretsFile.java │ │ │ ├── SeparatorFormat.java │ │ │ ├── Shutdown.java │ │ │ ├── Statistics.java │ │ │ ├── cli/ │ │ │ │ └── Main.java │ │ │ ├── configuration/ │ │ │ │ ├── CAddressFileOutputFormat.java │ │ │ │ ├── CAddressFilesToLMDB.java │ │ │ │ ├── CCommand.java │ │ │ │ ├── CConfiguration.java │ │ │ │ ├── CConsumerJava.java │ │ │ │ ├── CFinder.java │ │ │ │ ├── CKeyProducerJava.java │ │ │ │ ├── CKeyProducerJavaBip39.java │ │ │ │ ├── CKeyProducerJavaIncremental.java │ │ │ │ ├── CKeyProducerJavaRandom.java │ │ │ │ ├── CKeyProducerJavaRandomInstance.java │ │ │ │ ├── CKeyProducerJavaReceiver.java │ │ │ │ ├── CKeyProducerJavaSocket.java │ │ │ │ ├── CKeyProducerJavaWebSocket.java │ │ │ │ ├── CKeyProducerJavaZmq.java │ │ │ │ ├── CLMDBConfigurationReadOnly.java │ │ │ │ ├── CLMDBConfigurationWrite.java │ │ │ │ ├── CLMDBToAddressFile.java │ │ │ │ ├── CProducer.java │ │ │ │ ├── CProducerJava.java │ │ │ │ ├── CProducerJavaSecretsFiles.java │ │ │ │ ├── CProducerOpenCL.java │ │ │ │ ├── CSecretFormat.java │ │ │ │ └── UnknownSecretFormatException.java │ │ │ ├── eckey/ │ │ │ │ └── Secp256k1.java │ │ │ ├── keyproducer/ │ │ │ │ ├── AbstractKeyProducer.java │ │ │ │ ├── AbstractKeyProducerQueueBuffered.java │ │ │ │ ├── ConnectionUtils.java │ │ │ │ ├── KeyProducer.java │ │ │ │ ├── KeyProducerIdIsNotUniqueException.java │ │ │ │ ├── KeyProducerIdNullException.java │ │ │ │ ├── KeyProducerIdUnknownException.java │ │ │ │ ├── KeyProducerJava.java │ │ │ │ ├── KeyProducerJavaBip39.java │ │ │ │ ├── KeyProducerJavaIncremental.java │ │ │ │ ├── KeyProducerJavaRandom.java │ │ │ │ ├── KeyProducerJavaSocket.java │ │ │ │ ├── KeyProducerJavaWebSocket.java │ │ │ │ ├── KeyProducerJavaZmq.java │ │ │ │ └── NoMoreSecretsAvailableException.java │ │ │ ├── opencl/ │ │ │ │ ├── OpenCLBuilder.java │ │ │ │ ├── OpenCLDevice.java │ │ │ │ ├── OpenCLDeviceSelection.java │ │ │ │ ├── OpenCLPlatform.java │ │ │ │ └── OpenCLPlatformSelector.java │ │ │ └── persistence/ │ │ │ ├── Persistence.java │ │ │ ├── PersistenceUtils.java │ │ │ └── lmdb/ │ │ │ └── LMDBPersistence.java │ │ └── resources/ │ │ ├── copyfromhashcat/ │ │ │ ├── inc_common.cl │ │ │ ├── inc_common.h │ │ │ ├── inc_ecc_secp256k1.cl │ │ │ ├── inc_ecc_secp256k1.h │ │ │ ├── inc_hash_ripemd160.cl │ │ │ ├── inc_hash_ripemd160.h │ │ │ ├── inc_hash_sha256.cl │ │ │ ├── inc_hash_sha256.h │ │ │ ├── inc_platform.cl │ │ │ ├── inc_platform.h │ │ │ ├── inc_types.h │ │ │ └── inc_vendor.h │ │ ├── inc_defines.h │ │ ├── inc_ecc_secp256k1custom.cl │ │ ├── mnemonic/ │ │ │ └── wordlist/ │ │ │ ├── chinese_simplified.txt │ │ │ ├── chinese_traditional.txt │ │ │ ├── czech.txt │ │ │ ├── english.txt │ │ │ ├── french.txt │ │ │ ├── italian.txt │ │ │ ├── japanese.txt │ │ │ ├── korean.txt │ │ │ ├── portuguese.txt │ │ │ ├── russian.txt │ │ │ ├── spanish.txt │ │ │ └── turkish.txt │ │ ├── simplelogger.properties │ │ └── unused/ │ │ ├── calc_addrs.cl │ │ ├── calc_addrs_fix_zero.cl │ │ └── gpu.cl │ └── test/ │ ├── java/ │ │ └── net/ │ │ └── ladenthin/ │ │ └── bitcoinaddressfinder/ │ │ ├── AbstractPlaintextFileTest.java │ │ ├── AbstractProducerTest.java │ │ ├── AbstractProducerTestImpl.java │ │ ├── AddressFileTest.java │ │ ├── AddressFilesToLMDBTest.java │ │ ├── AddressFormatNotAcceptedExceptionTest.java │ │ ├── AddressToCoinTest.java │ │ ├── AddressTxtLineTest.java │ │ ├── AddressTypeTest.java │ │ ├── AwaitTimeTest.java │ │ ├── AwaitTimeTests.java │ │ ├── BIP39DataProvider.java │ │ ├── BIP39KeyProducerTest.java │ │ ├── BIP39WordlistTest.java │ │ ├── Base36DecoderTest.java │ │ ├── Bech32HelperTest.java │ │ ├── BitHelperTest.java │ │ ├── ByteBufferUtilityTest.java │ │ ├── ByteConversionTest.java │ │ ├── CommonDataProvider.java │ │ ├── ConsumerJavaTest.java │ │ ├── EndiannessConverterTest.java │ │ ├── EqualHashCodeToStringTestHelper.java │ │ ├── FileHelperTest.java │ │ ├── FinderTest.java │ │ ├── HexEncodeTest.java │ │ ├── KeyUtilityTest.java │ │ ├── LMDBBase.java │ │ ├── LMDBPersistencePerformanceTest.java │ │ ├── LMDBPersistenceTest.java │ │ ├── LMDBPlatformAssume.java │ │ ├── LMDBToAddressFileTest.java │ │ ├── LogLevelChange.java │ │ ├── MainTest.java │ │ ├── ManualDebugConstants.java │ │ ├── MockConsumer.java │ │ ├── MockKeyProducer.java │ │ ├── MockKeyProducerTest.java │ │ ├── NetworkParameterFactoryTest.java │ │ ├── OpenCLBuilderTest.java │ │ ├── OpenCLContextTest.java │ │ ├── OpenCLDeviceTest.java │ │ ├── OpenCLGridResultTest.java │ │ ├── OpenCLPlatformAssume.java │ │ ├── OpenCLPlatformSelectorTest.java │ │ ├── OpenCLPlatformTest.java │ │ ├── OpenCLTest.java │ │ ├── PlatformAssume.java │ │ ├── PrivateKeyTooLargeExceptionTest.java │ │ ├── PrivateKeyValidatorTest.java │ │ ├── ProbeAddressesOpenCLTest.java │ │ ├── ProducerJavaSecretsFilesTest.java │ │ ├── ProducerJavaTest.java │ │ ├── ProducerOpenCLTest.java │ │ ├── ProducerStateTest.java │ │ ├── PublicKeyBytesTest.java │ │ ├── RandomSecretSupplierTest.java │ │ ├── ReadStatisticTest.java │ │ ├── SecretsFileTest.java │ │ ├── SeparatorFormatTest.java │ │ ├── StatisticsTest.java │ │ ├── ToStringTest.java │ │ ├── configuration/ │ │ │ ├── CKeyProducerJavaIncrementalTest.java │ │ │ ├── CProducerTest.java │ │ │ └── UnknownSecretFormatExceptionTest.java │ │ ├── eckey/ │ │ │ └── Secp256k1Test.java │ │ ├── keyproducer/ │ │ │ ├── AbstractKeyProducerQueueBufferedTest.java │ │ │ ├── ConnectionUtilsTest.java │ │ │ ├── KeyProducerIdIsNotUniqueExceptionTest.java │ │ │ ├── KeyProducerIdNullExceptionTest.java │ │ │ ├── KeyProducerIdUnknownExceptionTest.java │ │ │ ├── KeyProducerJavaBip39Test.java │ │ │ ├── KeyProducerJavaIncrementalTest.java │ │ │ ├── KeyProducerJavaRandomTest.java │ │ │ ├── KeyProducerJavaSocketTest.java │ │ │ ├── KeyProducerJavaTest.java │ │ │ ├── KeyProducerJavaWebSocketTest.java │ │ │ ├── KeyProducerJavaZmqTest.java │ │ │ ├── KeyProducerTestUtility.java │ │ │ ├── NoMoreSecretsAvailableExceptionTest.java │ │ │ └── TestTimeProvider.java │ │ ├── persistence/ │ │ │ └── PersistenceUtilsTest.java │ │ └── staticaddresses/ │ │ ├── AbstractTestAddresses.java │ │ ├── AddressesFileSpecialUsecases.java │ │ ├── AddressesFiles.java │ │ ├── StaticAddressesFiles.java │ │ ├── StaticKey.java │ │ ├── TestAddresses.java │ │ ├── TestAddresses1337.java │ │ ├── TestAddresses42.java │ │ ├── TestAddressesFiles.java │ │ ├── TestAddressesLMDB.java │ │ └── enums/ │ │ ├── P2PKH.java │ │ ├── P2SH.java │ │ ├── P2WPKH.java │ │ ├── PublicAddress.java │ │ └── StaticUnsupportedAddress.java │ └── resources/ │ ├── testOpenCLInfo/ │ │ ├── config_OpenCLInfo.js │ │ ├── config_OpenCLInfo.json │ │ ├── config_OpenCLInfo.yaml │ │ └── config_OpenCLInfo.yml │ ├── testRoundtrip/ │ │ ├── addresses/ │ │ │ ├── fileContainingAddresses0.txt │ │ │ ├── fileContainingAddresses1.tsv │ │ │ └── fileContainingAddresses2.csv │ │ ├── config_AddressFilesToLMDB.json │ │ ├── config_Find_1OpenCLDevice.json │ │ ├── config_Find_SecretsFile.json │ │ ├── config_LMDBToAddressFile.json │ │ └── secrets/ │ │ ├── fileContainingSecrets_BIG_INTEGER.txt │ │ ├── fileContainingSecrets_DUMPED_RIVATE_KEY.txt │ │ ├── fileContainingSecrets_SHA256.txt │ │ └── fileContainingSecrets_STRING_DO_SHA256.txt │ └── vectors.json ├── testAddressTxtLineTest.bat └── update.bat