Help Trump build the wall! Trump needs the wall constructed and you are going to do it! To most efficiently build his wall I have created a simple, repeatable pattern for you to use:

    __   __    
   |  |_|  |   
___|       |___
-   -   -   -  
 - - - - - - - 
- - - - - - - -
———————————————


Trump will tell you how many wall segments he needs and you will build them to look just like this.

Here is the pattern:

    __   __     &lt;-- 4-2-3-2-4          ' _ _ '
   |  |_|  |    &lt;-- 3-1-2-1-1-1-2-1-3  ' | |_| | '
___|       |___ &lt;-- 3-1-7-1-3          '_| |_'
-   -   -   -   &lt;-- 1-3-1-3-1-3-1-1    '- - - - '
 - - - - - - -  &lt;-- 1-1-...-1-1        ' - -...- - '
- - - - - - - - &lt;-- 1-1-...-1-1        '- - ... - -'
——————————————— &lt;-- 15                 Unicode U+2014


Input will always be an integer >0.

Test cases:

1
    __   __    
   |  |_|  |   
___|       |___
-   -   -   -  
 - - - - - - - 
- - - - - - - -
———————————————

2
    __   __        __   __    
   |  |_|  |      |  |_|  |   
___|       |______|       |___
-   -   -   -  -   -   -   -  
 - - - - - - -  - - - - - - - 
- - - - - - - -- - - - - - - -
——————————————————————————————

5
    __   __        __   __        __   __        __   __        __   __
   |  |_|  |      |  |_|  |      |  |_|  |      |  |_|  |      |  |_|  |
___|       |______|       |______|       |______|       |______|       |___
-   -   -   -  -   -   -   -  -   -   -   -  -   -   -   -  -   -   -   -
 - - - - - - -  - - - - - - -  - - - - - - -  - - - - - - -  - - - - - - - 
- - - - - - - -- - - - - - - -- - - - - - - -- - - - - - - -- - - - - - - -
———————————————————————————————————————————————————————————————————————————


Since you need to do this fast, write the shortest program possible!

If it helps, I wrote the challenge first, title last ;)
CJam, 52 bytes

F,ri*"s@;b6(MBZF,fu"128b6b"_ 
|-—"f=N/ff=zN*


Includes a bunch of unprintable ASCII characters. The hexdump of the first string literal pushed is:

01 73 06 40 3B 62 36 28 1E 4D 07 42 5A 14 1B 46 2C 66 75


Try it here!

Explanation

The above hexdump is interpreted as a base-128 number, then converted to base 6, to get this list:

[1 1 1 1 0 0 1 1 1 0 0 2
 1 1 1 3 1 1 3 0 3 1 1 3 2
 0 0 0 3 1 1 1 1 1 1 1 3 2
 4 1 1 1 2
 1 4 2
 4 1 2
 5]


To this, we apply the mapping 0 → _, 1 → space, 2 → \n, 3 → |, 4 → -, 5 → —. This gets us the string:

    __   __
   |  |_|  |
___|       |
-   
 -
- 
—


It consists of the "period" of each line; i.e. we can cycle the fifth line " -" to get " - - - - - - - ".

Then, we execute this subprogram:

N/               Split into lines.
  Ff*            Repeat each line 15 times (to cycle it).
     Ff&lt;         Take the first 15 chars of each line.
        rif*     Repeat these chars input() times.
            N*   Join lines.


(The new version does this in a slightly different way that I actually can't wrap my head around myself very well, because it uses ff=.)