function stepfinal()
{
    $sock = new sockets();
    $sock->GET_INFO("FireHolConfigured", 1);
    $sock->SET_INFO("FireHolEnable", 1);
    $sock->SET_INFO("FireHolRouter", 0);
    $FireHolConf = unserialize(base64_decode($sock->GET_INFO("FireHolConf")));
    $eth = new system_nic($FireHolConf["IF_LAN"]);
    $eth->firewall_policy = $FireHolConf["IF_LAN_BEHAVIOR"];
    $eth->isFW = 1;
    $eth->SaveNic();
    $servs[] = "artica";
    $servs[] = "http";
    $servs[] = "https";
    $servs[] = "dns";
    $servs[] = "ping";
    $servs[] = "ssh";
    $servs[] = "squid";
    $servs[] = "snmp";
    $servs[] = "snmptrap";
    $servs[] = "icmp";
    $servs[] = "dhcp";
    $f = new firehol();
    if ($FireHolConf["IF_LAN_BEHAVIOR"] == "reject") {
        if (!$f->checkTables()) {
            echo "FAILED";
            return false;
        }
        while (list($a, $service) = each($servs)) {
            if (!$f->edit_service($FireHolConf["IF_LAN"], $service, 1, 1)) {
                echo "edit_service({$service}) FAILED";
                return;
            }
        }
    }
    $servs = array();
    $servs1[] = "http";
    $servs1[] = "https";
    $servs1[] = "ftp";
    $servs1[] = "dns";
    $servs1[] = "ping";
    $servs1[] = "icmp";
    if (!$f->checkTables()) {
        echo "FAILED";
        return false;
    }
    while (list($a, $service) = each($servs1)) {
        if (!$f->edit_client_service($FireHolConf["IF_LAN"], $service, 1, 1)) {
            echo "edit_client_service({$service}) FAILED";
            return;
        }
        if ($GLOBALS["VERBOSE"]) {
            echo "edit_client_service({$service}) TRUE<br>\n";
        }
    }
    $sock->SET_INFO("FireHolConfigured", 1);
    echo "<script>Loadjs('firehol.progress.php');</script>";
}