# [Jelly], <s>119</s> 114 [bytes] ### WHAM “ƭHGE94=ẠĊỴI>ạȧⱮṅƇṾ'Ñɦȥ⁴7?6ụ\ĖḂẆṾƇṗyZḣ&c%~Œ’ṃ“ |\_”s7;€“| |”µṚ“\/”y;µ€s6U4¦ “ŒUỴ2,Ɠ’ṃ“|'-. ”s4µṪẋ7ṭµ€m€0s3ṚjЀ¢Y€Y **[Try it online!]** ### How? The general idea is to choose letters which have left-right symmetry with minimal character translation so as to (a) reduce the base in which the data may be encoded and (b) keep the "reflection" function small. The letter `H` has left-right symmetry with no need for translation. The letters `W` and `A` also have left-right symmetry if the `/`s on the left become `\`s on the right. Unfortunately there are not four such letters (with the same sides having the same slopes of slashes). Letters such as `O` introduce more characters, which increases the base needed for encryption making for a far larger number and hence more bytes. `M`, however, only introduces the other slash - if the half rows for the `M` are stored in reverse *and* with the wrong slashes, the base is kept at four and a post-decryption, post-reflection reversal of just these rows puts everything right again (this is the `U4¦` in Link 1). This also means the character translation only needs to cater for `\` becoming `/` and not the other way around too (i.e. `Ṛ“\/”y;` rather than `Ṛ“\/“/\”y;`). “...’ṃ“ |\_”s7;€“| |”µṚ“\/”y;µ€s6U4¦ - Link 1: middle rows of blocks: no arguments “...’ - base 250 number ṃ“ |\_” - convert to base 4 with digits [0-3]="_ |\" s7 - split into sevens “| |” - literal "| |" ;€ - concatenate €ach µ - monadic chain separation (call that rhs) µ€ - for each r in rhs: Ṛ - reverse r “\/”y - convert any '\'s to '/'s ; - concatenate with r s6 - split into sixes ¦ - apply to indexes... 4 - four (the M) U - upend “ŒUỴ2,Ɠ’ṃ“|'-. ”s4µṪẋ7ṭµ€m€0s3ṚjЀ¢Y€Y - Main link: no arguments “ŒUỴ2,Ɠ’ - base 250 number ṃ“ -|.'” - convert to base 5 with digits [0-4]="' -|." s4 - split into fours µ - monadic chain separation (call that lhs) µ€ - for each l in lhs: Ṫ - tail l ẋ7 - repeat (the tail) seven times ṭ - tack to l m€0 - reflect €ach s3 - split into threes Ṛ - reverse ¢ - call last link (1) as a nilad jЀ - join mapped over right Y€ - join each with newlines Y - join with newlines - implicit print [Jelly]: https://github.com/DennisMitchell/jelly [bytes]: https://github.com/DennisMitchell/jelly/wiki/Code-page [Try it online!]: https://tio.run/nexus/jelly#@/@oYc6xtR7urpYmtg93LTjS9XD3Fk@7h7sWnlj@aOO6hztbj7U/3LlP/fDEk8tOLH3UuMXc3uzh7qUxR6Y93NH0cFcbUA6kYHpl1MMdi9WSVeuOTnrUMPPhzmagsQo1MfGPGuYWm1s/aloD5Nco1AC5h7Y@3DkLyIvRB3IqrQ9tBUoWm4WaHFrGBRQ9OikU6AAjnWOT4cbUqOvqKYDMMQFpXfVwV7f5w51rwfpygdig2BhoYNbhCUD2oUWRQDLy/38A