Print the American Flag! Special Independence Day (USA) themed challenge for you today. You must write a program that prints this ascii-art representation of The American Flag.

0
|---------------------------------------------------------
| *   *   *   *   *   * #################################|
|   *   *   *   *   *                                    |
| *   *   *   *   *   *                                  |
|   *   *   *   *   *   #################################|
| *   *   *   *   *   *                                  |
|   *   *   *   *   *                                    |
| *   *   *   *   *   * #################################|
|   *   *   *   *   *                                    |
| *   *   *   *   *   *                                  |
|########################################################|
|                                                        |
|                                                        |
|########################################################|
|                                                        |
|                                                        |
|########################################################|
|                                                        |
|                                                        |
|########################################################|
|---------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|


Trailing spaces on each line, as well as one trailing newline, are allowed.

Note that this isn't quite the way the flag should look, but it's the closest I could get with ASCII. 

As usual, this is code-golf so standard loopholes apply and shortest answer in bytes wins!
Python 2, 113 bytes
for i in range(38):print i and&quot;|&quot;+[&quot;-&quot;*57,(&quot; *  &quot;*7)[i%2*2:][:(i&lt;11)*23].ljust(56,&quot;  #&quot;[i%3])+&quot;|&quot;][1&lt;i&lt;21]*(i&lt;22)

String slicing and modulo checks galore.