I have a shapefile with a bunch of features inside. some of these features overlap each other. I need to essentially do a union and maintain attributes of all features. e.g. burn in all linework and where there is overlap have the feature values for all features in overlap. How can this be done?