Generated code from  4ce0c4efb64c4c1d612896d37871e30746dbc964