Here is the input/output specification for the third part of the project. As the input is defined in the project description I will focus on the output of the commands. Please note that your program should read from the standard input (STDIN) and write to the standard output (STDOUT). Also note that all the commands should be printed on a new line unless otherwise specified. 1) INIT_QUADTREE Input: Width (Integer) Output: print the string "INIT" 2) DISPLAY() Input: None Output: Print "START DISPLAY" on its own line, then create the text dump using the drawing routines defined in 'drawing_c.h' Finally print "END DISPLAY" on a new line. 3) LIST_RECTANGLES() Input: None Output: Print "START LIST" on its own line, then output the rectangles in alphanumerical order using the following format: Finally you should print "END LIST" 4)CREATE_RECTANGLE() Input: As specified in project description. All the coordinates will be integers. Output: CREATED All the names will contain uppercase letters and digits only. The absolute order of the characters is: [EMPTY SPACE] < A < B < ... < Z < 0 < 1 < .. < 9, so A < AZ < A4 < 4 < 4EH < 9. NOTE that you CAN have overlapping rectangles on your list, but not on the MX-CIF quadtree. 5)RECTANGLE_SEARCH() Input: N=name of the rectangle Output: SEARCH FAILURE, if N does NOT intersect an existing rectangle SEARCH SUCCESS , if N intersects the an existing rectangle M (=name of the rectangle) 6)INSERT() Input: N=name of the rectangle Output: INSERTED, if N does NOT intersect an existing rectangle OVERLAPS , if N is not inserted. M is the name of the intersecting rectangle or "BORDER" for the border of the MX_CIF quadtree. 7)SEARCH_POINT() Input: PX, PY= coordinates (real numbers) Output: SEARCH_POINT: , if a rectangle contains the point SEARCH_POINT: NONE , if the point is not contained in any of the rectangles NOTE: You should assume that a rectangle contains its left and bottom sides (i.e. closed), but NOT its top and right sides, so a point is contained by at MOST one rectangle. 8a)DELETE_RECTANGLE() Input: N=name of the rectangle to be deleted Output: DELETED , if N was deleted NOT FOUND, if N is not a rectangle DELETE RECTANGLE ERROR:, if another error occurs 8b)DELETE_POINT() Input: PX, PY= coordinates (real numbers) Output: DELETED , if rectangle N was deleted RECTANGLE NOT FOUND, if the point is not within a rectangle DELETE POINT ERROR:, if another error occurs