Flora-2 Tutorial Problems Dealing with Updates 1. Complete the planner for the block-stacking robot from the end of Part1 of the tutorial. Use Flora-2's backtrackable update operations to implement that. Build a small database of 20 blocks and use your robot to construct pyramids of heights 5 and 15. Use object-oriented design. Each block should be represented as an object with single-valued attributes width, on, and a Boolean attribute clear. For instance, block1[width->5, on->block5, clear] and methods %stack and %unstack. For instance, executing block1[%stack(block3)] should result in block1 being on top of block3 and executing block1[%unstack] should result in block1 being lifted (from whatever block it is on) by the robot hand. The robot hand should also be an object with a single-valued attribute holding and a Boolean attribute empty. For instance, hand[holding->block3, empty]. 2. Given a list of integers (say, between 1 and 100), build a histogram that shows how many times each integer occurs in the list.