return true;
}
if (($Qreq->update || $Qreq->submitfinal) && check_post($Qreq)) {
    // choose action
    $action = "update";
    if ($Qreq->submitfinal && !$newPaper) {
        $action = "final";
    } else {
        if ($Qreq->submitpaper && ($prow && $prow->size > 0 || $Qreq->_FILES->paperUpload || opt("noPapers"))) {
            $action = "submit";
        }
    }
    $ps = new PaperStatus($Me);
    $opj = $prow ? $ps->paper_json($prow) : null;
    $pj = PaperStatus::clone_json($opj);
    PaperSaver::apply_all($Me, $pj, $opj, $Qreq, $action);
    $diffs = PaperSaver::all_diffs($pj, $opj);
    // check deadlines
    if ($newPaper) {
        // we know that can_start_paper implies can_finalize_paper
        $whyNot = $Me->perm_start_paper();
    } else {
        if ($action == "final") {
            $whyNot = $Me->perm_submit_final_paper($prow);
        } else {
            $whyNot = $Me->perm_update_paper($prow);
            if ($whyNot && $action == "submit" && empty($diffs)) {
                $whyNot = $Me->perm_finalize_paper($prow);
            }
        }
    }