32. Octave, 324 bytes
New requirement: All printable ASCII that are not previously forbidden must be part of the code. The complete list is: !"%&'()*+,-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`abcdefghijklmnopqrstuvwxyz{|}~
.
.6;%+<-?|" "|?-<+%;6.
f=@(x)all(ismember(horzcat(33,34,46,' %&''()*+,=/0123456789:;<->?@ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`abcdefghijklmnopqrstuvwxyz{|}~'),x));
% >>
% V'quQ9g8u'@f/&'A)eLS;p`t'{ZYv4R3aaa
% bb
% c
% dd
%Henry Jams?Hi, Retina!
% e
% ff
% g
% hh
% i
% jj
% k
% ll
% m
% nn
% o
% pp
% q
% rr
% s
% tt
% u
% vvv
% a~
- It contains an
e
. - Its length is even.
- Its length is a perfect square.
- It contains an
a
. - It contains a
>
character. - Contains the exact string
->
. - Contains the exact string
Hi, Retina!
. - The sum of the first two Unicode code points is a multiple of 5.
- The 10-th character is a
"
. - The last non-empty line does not have any duplicate characters.
- The first line is a palindrome of length > 5.
- The first line is exactly 21 characters long (not including newline).
- It contains a
?
. - It contains a
|
. - Contains a
+
. - It is at least 28 lines long.
- The following characters are used five times in total:
!"#$.[\]
and the codepoint of the second character is less than 60. - Contains
Henry Jams?
as a continuous substring. - The last character is
~
. - It contains a
C
- Each line contains a tab character.
- The ninth line contains at least 22 characters, excluding the newline.
- The tab character can't be the first character on a line
- The third-to-last character is a tab.
- There are at least 28 lines, and they are all distinct.
- There must be a
>
in the code and angle braces must be balanced. - There must be more than 88 distinct code points in the program.
- The third-to-last character is a tab (#26) AND adjacent lines must have different lengths
- The first 4 hexadecimal characters of the MD5 hash of the program source must agree with the first 4 characters of the MD5 hash of the sentence: "And you call them steamed hams despite the fact that they are obviously grilled" (i.e. 86a6) as given by the GNU coreutils md5sum utility
- All printable ASCII characters that are not previously forbidden must be part of the code. The complete list is:
!"%&'()*+,-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`abcdefghijklmnopqrstuvwxyz{|}~
For future answers:
- The first line is a palindrome matching
.␣␣␣␣␣␣␣␣"␣"␣␣␣␣␣␣␣␣.
(you are free to fill in the ␣s). - The second character is one of
',16;
, or a tab, or one of\x04\x0e\x13\x18\x1d
. - Its length is an even perfect square.
- There are at least 28 lines, and all lines are distinct.
- The ninth line must have at least 22 characters (excluding the newline).
- The last line does not have any duplicate characters.
- Contains the exact strings
->
,Hi, Retina!
, andHenry Jams?
. - Each line contains at least one tab character, but it can't be the first character on a line.
!".
are banned except where necessary:- Only
!
inHi, Retina!
and the two.
and two"
in the first line are allowed.
- Only
#$[\]
may not appear in the program.- The program ends with:
tab
, (whatever),~
. - Angle braces must be balanced.
- There must be more than 88 distinct code points in the program.
- Adjacent lines must have different lengths
- The first 4 hexadecimal characters of the MD5 hash of the program source must be: 86a6 (as given by the GNU coreutils implementation)
- It contains all printable ASCII that are not previously forbidden. The characters are:
!"%&'()*+,-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`abcdefghijklmnopqrstuvwxyz{|}~
.
I used this to make the program have the correct hash-code, whilst ensuring that the other requirements were also met.