#include <bits/stdc++.h> 
#include<math.h> 
#include <vector> 
using  namespace  std; 
 
typedef  long  long  int  ll; 
 
ll M =  1000000007 ; 
 
map< ll, ll>  mp; 
 
long  long  fibonacci( long  long  n)  { 
	if  ( mp.count ( n) ) 
	{ 
		printf ( "return for n=%lld f[n]=%lld\n " ,n,mp[ n] ) ; 
		return  mp[ n] ; 
 
	} long  long  k= n/ 2 ; 
	printf ( "k=%lld\n " ,k) ; 
	if  ( n% 2 == 0 )  {  
		printf ( "calling k=%lld  k+1=%lld  and f[n]=%lld n=%lld" ,k,( k+ 1 ) ,mp[ n] ,n) ; 
		return  mp[ n]  =  fibonacci( k) * ( fibonacci( k+ 1 ) + fibonacci( k- 1 ) )  %  M; 
	}  else  {  
			printf ( "odd calling k=%lld  k+1=%lld  and f[n]=%lld n=%lld\n " ,k,( k+ 1 ) ,mp[ n] ,n) ; 
		return  mp[ n]  =  ( fibonacci( k+ 1 ) * fibonacci( k+ 1 )  +  fibonacci( k) * fibonacci( k) )  %  M; 
	} 
} 
 
 
 
 
int  main( ) 
{ 
    mp[ 0 ] = mp[ 1 ] = 1 ; 
    ll t; 
    scanf ( "%lld" ,& t) ; 
    while ( t-- ) 
    { 
        long  long  n; 
        scanf ( "%lld" ,& n) ; 
        printf ( "%lld\n " ,fibonacci( n) ) ; 
    } 
    return  0 ; 
} 
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlPG1hdGguaD4KI2luY2x1ZGUgPHZlY3Rvcj4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnR5cGVkZWYgbG9uZyBsb25nIGludCBsbDsKCmxsIE0gPSAxMDAwMDAwMDA3OwoKbWFwPGxsLCBsbD4gbXA7Cgpsb25nIGxvbmcgZmlib25hY2NpKGxvbmcgbG9uZyBuKSB7CglpZiAobXAuY291bnQobikpCgl7CgkJcHJpbnRmKCJyZXR1cm4gZm9yIG49JWxsZCBmW25dPSVsbGRcbiIsbixtcFtuXSk7CgkJcmV0dXJuIG1wW25dOwoJCgl9bG9uZyBsb25nIGs9bi8yOwoJcHJpbnRmKCJrPSVsbGRcbiIsayk7CglpZiAobiUyPT0wKSB7IAoJCXByaW50ZigiY2FsbGluZyBrPSVsbGQgIGsrMT0lbGxkICBhbmQgZltuXT0lbGxkIG49JWxsZCIsaywoaysxKSxtcFtuXSxuKTsKCQlyZXR1cm4gbXBbbl0gPSBmaWJvbmFjY2koaykqKGZpYm9uYWNjaShrKzEpK2ZpYm9uYWNjaShrLTEpKSAlIE07Cgl9IGVsc2UgeyAKCQkJcHJpbnRmKCJvZGQgY2FsbGluZyBrPSVsbGQgIGsrMT0lbGxkICBhbmQgZltuXT0lbGxkIG49JWxsZFxuIixrLChrKzEpLG1wW25dLG4pOwoJCXJldHVybiBtcFtuXSA9IChmaWJvbmFjY2koaysxKSpmaWJvbmFjY2koaysxKSArIGZpYm9uYWNjaShrKSpmaWJvbmFjY2koaykpICUgTTsKCX0KfQoKCgoKaW50IG1haW4oKQp7CiAgICBtcFswXT1tcFsxXT0xOwogICAgbGwgdDsKICAgIHNjYW5mKCIlbGxkIiwmdCk7CiAgICB3aGlsZSh0LS0pCiAgICB7CiAgICAgICAgbG9uZyBsb25nIG47CiAgICAgICAgc2NhbmYoIiVsbGQiLCZuKTsKICAgICAgICBwcmludGYoIiVsbGRcbiIsZmlib25hY2NpKG4pKTsKICAgIH0KICAgIHJldHVybiAwOwp9