if (box.absolute) {
if (box.getStyle().isAbsolute()) {
    public static Box findElementBox2(Box box, int x, int y, BlockFormattingContext bfc) {        //Uu.p("find element box: " + x + " " + y + " " + box + " " + bfc);        //if(box.element != null) { Uu.p("elem : " + box.element.getNodeName()); }        // skip if no box to look at        if (box == null) {            return null;        }        int dx = 0;        int dy = 0;        // adjust for own absolute positioning        if (bfc != null) {            if (box.absolute) {                dx += bfc.getX();                dy += bfc.getY();                int[] adj = adjustForAbsolute2(box, x, y, bfc);                dx += adj[0];                dy += adj[1];                //Uu.p("abs: " + dx+","+dy);            }        }        // skip null box        // adjust for own x,y        dx += box.x;        dy += box.y;        //Uu.p(dx+","+dy);//Uu.p("box = " + box);        if (box instanceof LineBox) {//Uu.p("line box: " + box);        }        // adjust for own insets (margin + border + padding)        dx += box.tx;        dy += box.ty;        //Uu.p(dx+","+dy);        int ttx = x - dx + box.tx;        int tty = y - dy + box.ty;        //Uu.p("bfc = " + bfc);// go down to the next bfc        if (box.getPersistentBFC() != null) {            bfc = new BlockFormattingContext(box.getPersistentBFC());            //Uu.p("new bfc = " + bfc);        }        // if no way it could be inside this box, then return null        if (!box.contains(ttx, tty)) {            if (!box.isChildrenExceedBounds()) {                //System.out.println("it's outside: " + box + " " + x + " " + y);                //Uu.p("outside so skipping");                return null;            } else {                //Uu.p("outside but exceeding children");            }        }        // next test the children        Iterator it = box.getChildIterator();        while (it.hasNext()) {            Box bx = (Box) it.next();            // if returned something, then return it            // shift the bfc            bfc.translate(dx, dy);//box.x,box.y);            Box retbox = findElementBox2(bx, x - dx, y - dy, bfc);            bfc.translate(-dx, -dy);//-box.x,-box.y);            //Uu.p("returned: " + retbox);            if (retbox != null) {                return retbox;            }        }        // if this box matches, then return it        //Uu.p("here you go");        //Uu.p(x+","+y);        //Uu.p(dx+","+dy);        //Uu.p(box.tx+","+box.ty);        //Uu.p(ttx+","+tty);        if (box.contains(ttx, tty)) {            //if(box.contains(x-dx+box.tx,y-dy+box.ty)) {            //Uu.p("matched: " + box);            return box;        }        return null;    }