In the Santa's Office beside Tinsel Upatree on the table is the Naught/Nice List.
The SHA256 of Jack's altered block is: 58a3b9335a6ceb0234c12d35a0564c4e f0e90152d0eb2ce2082383b38028a90f. If you're clever, you can recreate the original version of that block by changing the values of only 4 bytes. Once you've recreated the original block, what is the SHA256 of that block?
Digging through the doc, I see that two pages are defined, but the second page (obj 3) is never referenced in the page tree, so its content (object 15) is never displayed.
So I changed the page reference in the initial catalog (obj 1) in byte 62 from 2 (0x32) to 3 (0x33).
Displaying this PDF shows very different content! Wow, Jack is a douche!
So I need to change that byte from a 2 to a 3. Looking through the other block content, points being added or removed were with a single value (sign).
At this point, I know two bytes that I need change, leaving two more. After reading through some of the documentation on UniColl, I decided the easiest would be to just hammer it.
So I wrote a python script available here that just brute forces through the first bunch of blocks to figure out the two that need to be changed to balance things out.
An overview of all people, places, and events can be learned in the Introduction.