Generated code from  8c7228eb7e8de348a119013f5b97ed2ecc672e48