注意溢出
#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <queue>
#include <stack>
#include <vector>
#include <map>
#include <set>
#include <iomanip>
using namespace std;
#define MOD 1000000007
//typedef long long LL
#define LL long long
LL mult_mod(LL a , LL b , LL mod)
{
a %= mod;
b %= mod;
LL res = 0L;
LL tmp = a;
while(b)
{
if(b & 1)
{
res += tmp;
if(res > mod) res -= mod;
}
tmp <<= 1;
if(tmp > mod) tmp -= mod;
b >>= 1;
}
return res;
}
LL Pow(LL a , LL b , LL mod)
{
LL res = 1L;
LL tmp = a % mod;
while(b)
{
if(b & 1)
{
res = mult_mod(res , tmp , mod);
}
tmp = mult_mod(tmp , tmp , mod);
b >>= 1;
}
return res;
}
LL mod_r(LL a , LL p)
{
return Pow(a , p - 2 , p);
}
int main()
{
LL d = mod_r(12 , MOD);
int t;
LL n ;
scanf("%d" , &t);
while(t--)
{
scanf("%lld" , &n);
LL ans = 0;
ans = (Pow(n , 4 , MOD) * 13) % MOD;
ans = (ans + (Pow(n , 3 , MOD) * 26) % MOD) % MOD;
ans = (ans + (Pow(n , 2 , MOD) * 17) % MOD) % MOD;
ans = (ans + 4 * n % MOD) % MOD;
ans = mult_mod(ans , d , MOD);
// ans = ans * d % MOD;
printf("%lld\n" , ans);
}
return 0 ;
}