Generated code from  e90677c6a4510952ec7980b7f9a9e6d013faab0e