# compiled by pythran
"""
#pythran export main2()
import numpy as np
i4 = np.int32
i8 = np.int64
MOD = 1000000007


def mod_inv(mod, a):

    old_s, s = 1, 0
    old_t, t = 0, 1
    old_r, r = mod, a

    while r != 0:
        quotient = old_r // r

        old_r, r = r, old_r - quotient * r
        old_s, s = s, old_s - quotient * s
        old_t, t = t, old_t - quotient * t

    return old_t % mod


def main(in_file):
    stdin = open(in_file)
    stdin.readline()
    A = np.array([int(x) for x in stdin.readline().split()])
    s1 = (np.sum(A) % MOD) ** 2 % MOD
    s2 = sum(A ** 2 % MOD) % MOD
    ans = (s1 - s2) % MOD * mod_inv(MOD, 2) % MOD
    print(ans)


def main2():
    main('/dev/stdin')
"""
import os, sys
p = os.path.dirname(__file__)
pymain = os.path.join(p, "a.out")
if len(sys.argv) == 1:
    import subprocess
    if p == "":
        pymain = "./" + pymain
    subprocess.call(pymain)
else:
    import gzip, base64, stat
    gz = b'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'
    bin = gzip.decompress(base64.b64decode(gz))
    with open(pymain, "wb") as f:
        f.write(bin)
    os.chmod(pymain, 0o775)


Measured memory_bytes: 23728