private static PPMNode lookup(PPMNode node, byte[] bytes, int offset, int length) {
	if (length == 0) return node;
	for (PPMNode child = node._firstChild; length > 0 && child != null; ) {
	    if (bytes[offset]==child._byte) {
		if (length == 1) return child;
		node = child;
		child = child._firstChild;
		++offset;
		--length;
	    } else {
		child = child._nextSibling;
	    }
	}
	return (PPMNode) null;
    }