Generated code from  356e26a5b6b8ce6095f761b2efc98d1f23374db1