upgrade.sh: fix a real, significant bug -- an unescaped double-quote inside the '-opt-out-of-security-update' help text ("'p4d -r <P4ROOT> "-cset security=<value>"'") broke bash's parsing of the entire multi-hundred-line DESCRIPTION+OPTIONS msg() call in the -man handler.
Since that whole block is one giant quoted string argument, the embedded unescaped quote caused the WHOLE call to fail as a bash syntax error (silently, since gen_script_man_pages.sh redirects stderr to /dev/null and only checks the output file is non-empty). The result: 'upgrade.sh -man' has produced almost no real content (just the short usage banner, ~8 lines) since the SDP-1350 Secure By Default text was added -- confirmed via 'bash -x' showing the parser choking right at the broken quote. '-h' was unaffected since it exits before reaching this code path.
Escaped the embedded quotes; 'upgrade.sh -man' now produces its full, real ~580 lines of documentation, verified directly. Regenerated doc/gen/upgrade.sh.man.txt accordingly. Also deleted doc/gen/get_helix_binaries.sh.man.txt, an orphaned leftover from before the get_p4_binaries.sh rename -- the source script no longer exists and it's not in gen_script_man_pages.sh's ScriptList; main never had this stale file.
Agent: Claude Sonnet 5 (claude-sonnet-5), via Claude Code.