public void mergeKnownSalts(int currentTime, KnownSalt[] salts)
 {
     KnownSalt[] knownSalts = readKnownSalts();
     Dictionary<long, KnownSalt> ids = new Dictionary<long, KnownSalt>();
     foreach (KnownSalt s in knownSalts) {
     if (s.getValidUntil() < currentTime) {
         continue;
     }
     ids.Add(s.getSalt(), s);
     }
     foreach (KnownSalt s in salts) {
     if (s.getValidUntil() < currentTime) {
         continue;
     }
     ids.Add(s.getSalt(), s);
     }
     writeKnownSalts((KnownSalt[]) ids.Values.ToArray());
 }
 override protected void writeKnownSalts(KnownSalt[] salts) {
     knownSalts = salts;
 }
 protected abstract void writeKnownSalts(KnownSalt[] salts);