Uu.p("doing a clear on: " + child_box);
    public static void layoutContent(Context c, Box box, List contentList, Box block) {        // prepare for the list items        int old_counter = c.getListCounter();        c.setListCounter(0);        Iterator contentIterator = contentList.iterator();        while (contentIterator.hasNext()) {            Object o = contentIterator.next();            if (o instanceof FirstLineStyle) {//can actually only be the first object in list                block.firstLineStyle = ((FirstLineStyle) o).getStyle();                //put it into the Context so it gets used on the first line                c.addFirstLineStyle(block.firstLineStyle);                continue;            }            if (o instanceof FirstLetterStyle) {//can actually only be the first or second object in list                block.firstLetterStyle = ((FirstLetterStyle) o).getStyle();                continue;            }            Content currentContent = (Content) o;            Box child_box = null;            //TODO:handle run-ins. For now, treat them as blocks            // update the counter for printing OL list items            //TODO:handle counters correctly            c.setListCounter(c.getListCounter() + 1);            // execute the layout and get the return bounds            //c.parent_box = box;            //c.placement_point = new Point(0, box.height);            c.translate(0, box.height);            child_box = Boxing.layout(c, currentContent);            c.translate(0, -box.height);						            child_box.list_count = c.getListCounter();            box.addChild(child_box);            // set the child_box location            child_box.x = 0;            child_box.y = box.height;			//Uu.p("set child box y to: " + child_box);						//JMM. new code to handle the 'clear' property			// if clear set			if(child_box.clear_left || child_box.clear_right) {				Uu.p("doing a clear on: " + child_box);				// get the distance we have to move it down				int down = 0;				Uu.p("down = " + down);				if(child_box.clear_left) {					Uu.p("left clear");					Uu.p("left down = " + c.getBlockFormattingContext().getLeftDownDistance(child_box));					down = Math.max(down,c.getBlockFormattingContext().getLeftDownDistance(child_box));				}				Uu.p("down = " + down);								if(child_box.clear_right) {					Uu.p("right clear");					Uu.p("right down = " + c.getBlockFormattingContext().getRightDownDistance(child_box));					down = Math.max(down,c.getBlockFormattingContext().getRightDownDistance(child_box));				}								Uu.p("down = " + down);				int diff = down-child_box.y;				Uu.p("child box.y = " + child_box.y);				Uu.p("diff = " + diff);				if(diff > 0) {					// move child box down					child_box.y = down;					// adjust parent box					box.height += diff;				}			}            //joshy fix the 'fixed' stuff later            // if fixed or abs then don't modify the final layout bounds            // because fixed elements are removed from normal flow            if (child_box.fixed) {                // put fixed positioning in later                Fixed.positionFixedChild(c, child_box);            }			            if (child_box.absolute) {                Absolute.positionAbsoluteChild(c, child_box);            }            // skip adjusting the parent box if the child            // doesn't affect flow layout            if (LayoutUtil.isOutsideNormalFlow(child_box)) {                continue;            }            // increase the final layout width if the child was greater            if (child_box.width > box.width) {                box.width = child_box.width;            }            // increase the final layout height by the height of the child            box.height += child_box.height;			if(c.shouldStop()) {				//System.out.println("doing a quick stop");				break;			}        }        c.addMaxWidth(box.width);        c.setListCounter(old_counter);        if (block.firstLineStyle != null) {            //pop it in case it wasn't used            c.popFirstLineStyle();        }    }