boolean (final Object o) { if (o == this) return true; if (!(o instanceof EqualsAndHashCode)) return false; final EqualsAndHashCode other = (EqualsAndHashCode) o; if (!other.canEqual((Object) this)) return false; if (this.x != other.x) return false; if (!java.util.Arrays.equals(this.y, other.y)) return false; if (!java.util.Arrays.deepEquals(this.z, other.z)) return false; final Object this$a = this.a; final Object other$a = other.a; if (this$a == null ? other$a != null : !this$a.equals(other$a)) return false; final Object this$b = this.b; final Object other$b = other.b; if (this$b == null ? other$b != null : !this$b.equals(other$b)) return false; return true; }