Jelly, 235 225 bytes
“¤ßȷŒȷddðdẎeȤdƤƬddƲdƝ‘s2⁵+€⁴¤żẎṣjƭƒ“Ç=ÇgƲȷ€çfȤeƲ€fƈiÆf¿fÐɦÇÞµÞÇe2jÑصؿg8i€ØµØ½ð4Ɲ5Ɲ2fƲµÞµÞ½Ʋ;æ½f¿f½Ʋ5¤6Ʋ€g¬g½i¬ⱮvðɓȷeðɓȷeðɓȷeḳƁḳeƤııeƤııeƤııⱮp×ædɓædɓædɓd×⁾×eƝçıçeƝçıçeƝçıçd×⁾¤o‘b50U+Ø0U‘Œṙṁ1xⱮ“&ðẏṪ¶ẏ×Ṙ⁷Ƈ⁾1Ẓṁn#’b64¤¤ị“ *#.-”Y
Uses a combination of run-length encoding and replacement of common length-2 sequences with a single digit. Does not use any standard compression library like gzip. Overall has 182 bytes of compressed data and 43 of code.
Explanation
Step 1: replace values in the data between 17 and 26 with prestored pairs of bytes
“¤...Ɲ‘ | Base-250 integer list 3, 21, 26, 19, 26, 100, 100, 24, 100, 209, 101, 154, 100, 151, 152, 100, 100, 153, 100, 150
s2 | Split into twos
¤ż | Zip the following as a nilad with this:
⁵ | - 10
+€⁴ | - Add 16 to implicit range from 1 to 10
Ẏ | Tighten (join outermost lists)
ƒ“Ç...o‘ | Reduce using the following, and starting with the base-250 integer list 14, 61, 14, 103, 153, 26, 12, 23, 102, 154, 101, 153, 12, 102, 156, 105, 13, 102, 11, 102, 15, 160, 14, 20, 9, 20, 14, 101, 50, 106, 16, 18, 9, 18, 11, 103, 56, 105, 12, 18, 9, 18, 10, 24, 52, 150, 53, 150, 50, 102, 153, 9, 20, 9, 20, 10, 153, 59, 22, 10, 102, 11, 102, 10, 153, 53, 3, 54, 153, 12, 103, 7, 103, 10, 105, 7, 149, 118, 24, 155, 26, 101, 24, 155, 26, 101, 24, 155, 26, 101, 217, 143, 217, 101, 151, 25, 25, 101, 151, 25, 25, 101, 151, 25, 25, 149, 112, 17, 22, 100, 155, 22, 100, 155, 22, 100, 155, 100, 17, 142, 17, 101, 150, 23, 25, 23, 101, 150, 23, 25, 23, 101, 150, 23, 25, 23, 100, 17, 142, 3, 111
ƭ | - Alternate between:
ṣ | - Splitting
j | - And joining
Step 2: Run-length decode and convert to string
b50 | Convert to base 50
U | Reverse order of bytes
+Ø0 | Add 0,0
U | Reverse order again (effectively the last three links add in leading zeros where needed)
‘ | Increment by 1
Œṙ | Run length decode
ṁ ¤ | Mould like the following as a nilad:
1xⱮ ¤ | - 1 repeated each of the following as a nilad:
“&...#’ | - Base-250 integer 36418435425519061363927141799858777786
b64 | - Convert to base 64
ị“ *#.-” | Index into " *#.-"
Y | Join ith newlines