losslessfingerprint first implementation