<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def project_geometry(geometry, crs=None, to_crs=None, to_latlong=False):
 """ Project a shapely Polygon or MultiPolygon from lat-long to UTM, or vice-versa Parameters geometry : shapely Polygon or MultiPolygon the geometry to project crs : dict the starting coordinate reference system of the passed-in geometry, default value (None) will set settings.default_crs as the CRS to_crs : dict if not None, just project to this CRS instead of to UTM to_latlong : bool if True, project from crs to lat-long, if False, project from crs to local UTM zone Returns ------- tuple (geometry_proj, crs), the projected shapely geometry and the crs of the projected geometry """


    if crs is None:
        crs = settings.default_crs

    gdf = gpd.GeoDataFrame()
    gdf.crs = crs
    gdf.gdf_name = 'geometry to project'
    gdf['geometry'] = None
    gdf.loc[0, 'geometry'] = geometry
    gdf_proj = project_gdf(gdf, to_crs=to_crs, to_latlong=to_latlong)
    geometry_proj = gdf_proj['geometry'].iloc[0]
    return geometry_proj, gdf_proj.crs