Raindrops are falling on my... glasses? I live in the UK, where it rains. A lot. I also have the unfortunate necessity to need to wear glasses to see, which means that when it rains (as it is now), I can barely see out of them. This challenge is so that you can all experience the same!

Task

Output ASCII art glasses with a drop of water added each second.

Input

None

Output

A pair of glasses with drops of water on them.

Glasses

 ________________________
|          /__\          |
|         /    \         |
|        /      \        |
\_______/        \_______/


Raindrops

A raindrop is denoted by a .. A raindrop is randomly placed on the glasses' lenses. So when a raindrop is placed, the glasses might look like this

 ________________________
|          /__\          |
|    .    /    \         |
|        /      \        |
\_______/        \_______/


If it is placed on a blank space (), an . is placed on the image. If it is placed on a square which already has a raindrop, the drop graduates.

The steps on drops are


no drops placed: 
1 drop placed: .
2 drops placed: o
3 drops placed: O
4+ drops placed: @


Rules


The image should look as though it stays in place. This means that you can either clear the screen or print enough newlines to "clear" the screen. You cannot return a list of steps. Sorry about this, but you should be able to work around that.
When outputting newlines to "clear" the screen, you must have at least 3 newlines between the glasses.
The code runs until the glasses are full of fully graduated drops i.e. until the output looks like this:



     ________________________
    |@@@@@@@@@@/__\@@@@@@@@@@|
    |@@@@@@@@@/    \@@@@@@@@@|
    |@@@@@@@@/      \@@@@@@@@|
    \_______/        \_______/



Shortest code in bytes wins.
JavaScript (ES6), 269 267 265 bytes



document.write('&lt;pre id=o&gt;')
a=[...` _8_8_8
| 9 /__\\  9|
| 9/ 4\\ 9|
| 8/ 6\\ 8|
\\_7/ 8\\_7/`.replace(/.\d/g,s=&gt;s[0].repeat(s[1]))]
s=" .oO@@"
g=_=&gt;o.innerHTML=a.join``
f=(i=s.indexOf(a[j=Math.random()*a.length|0])+1)=&gt;i?g(a[j]=s[i]):f()
g()
setInterval(f,1e3)




Edit: Saved 2 4 bytes thanks to @Shaggy.