/*
数学是硬伤。。。。。。推了半小时推出来一个错误的公式
*/
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <string.h>
#define mod 1000000007
using namespace std;
int n,t;
/*
推出来的错误公式。。。。。。。
f[n]=f[n-1]+(n-1)*(f[n-1]-1);
*/
long long a[];
int main()
{
//freopen("C:\\Users\\acer\\Desktop\\in.txt","r",stdin);
//freopen("C:\\Users\\acer\\Desktop\\out.doc","w",stdout);
a[]=;
a[]=;
for(int i=;i<=;i++)
{
a[i]=i*a[i-]+(i-)*a[i-];
a[i]%=mod;
}
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
printf("%lld\n",a[n-]);
}
return ;
}