Generated code from  c1f82185c03bceb2c02ad24eb0ec33579cf5c396