@Suppress(names = ["INCOMPATIBLE_MODIFIERS"])
open data class ValidatedProperties {
  constructor(test1: String, test2: String) /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  open val test1: String
    field = test1
    open get

  open val test2: String
    field = test2
    open get

  operator fun component1(): String {
    return <this>.<get-test1>()
  }

  operator fun component2(): String {
    return <this>.<get-test2>()
  }

  fun copy(test1: String = <this>.<get-test1>(), test2: String = <this>.<get-test2>()): ValidatedProperties {
    return ValidatedProperties(test1 = test1, test2 = test2)
  }

  override fun toString(): String {
    return "ValidatedProperties(" + "test1=" + <this>.<get-test1>() + ", " + "test2=" + <this>.<get-test2>() + ")"
  }

  override fun hashCode(): Int {
    var result: Int = <this>.<get-test1>().hashCode()
    result = result.times(other = 31).plus(other = <this>.<get-test2>().hashCode())
    return result
  }

  override operator fun equals(other: Any?): Boolean {
    when {
      EQEQEQ(arg0 = <this>, arg1 = other) -> return true
    }
    when {
      other !is ValidatedProperties -> return false
    }
    val tmp0_other_with_cast: ValidatedProperties = other as ValidatedProperties
    when {
      EQEQ(arg0 = <this>.<get-test1>(), arg1 = tmp0_other_with_cast.<get-test1>()).not() -> return false
    }
    when {
      EQEQ(arg0 = <this>.<get-test2>(), arg1 = tmp0_other_with_cast.<get-test2>()).not() -> return false
    }
    return true
  }

}
