package puzzle; public interface Mask { record Masker(long lo, long hi,int index,byte d) implements Mask { } default Mask or(Mask o) { return new Masker(o.lo() | lo(), o.hi() | hi(), 0, (byte) 0); } default Mask and(Mask o) { return new Masker(o.lo() & lo(), o.hi() & hi(), 0, (byte) 0); } long hi(); long lo(); int index(); byte d(); }