modified util.c