#include<bits/stdc++.h>
#define MOD 1000000007
using namespace std;
typedef long long ll;
vector<vector<ll>> multiply(vector<vector<ll>> A, vector<vector<ll>> B){
vector<vector<ll>> C(2+1,vector<ll>(2+1));
for(ll i = 0; i <= 2; i++){
for(ll j = 0; j <= 2; j++){
for(ll x = 0; x <= 2; x++){
C[i][j] = (C[i][j] + (A[i][x]*B[x][j])%MOD)%MOD;
}
}
}
return C;
}
vector<vector<ll>> pow(vector<vector<ll>> T, ll n){
if(n == 1)
return T;
if(n&1){
return multiply(T,pow(T,n-1));
}
vector<vector<ll>> X = pow(T,n/2);
return multiply(X,X);
}
ll compute(ll n){
if(n == 0)
return 0;
if(n == 1 || n == 2)
return 1;
/* sum = F[0] + F[1] */
ll sum = 1ll;
vector<ll> F1(2+1);
F1[0] = sum;
F1[1] = 0;
F1[2] = 1;
vector<vector<ll>> T(2+1,vector<ll>(2+1));
T[0][0] = 1;
T[0][1] = 1;
T[0][2] = 1;
T[1][0] = 0;
T[1][1] = 0;
T[1][2] = 1;
T[2][0] = 0;
T[2][1] = 1;
T[2][2] = 1;
T = pow(T,n-2);
sum = 0;
for(ll i = 0; i <= 2; i++){
sum = (sum + (T[0][i]*F1[i])%MOD)%MOD;
}
return sum;
}
int main(){
int t;
cin >> t;
while(t--){
ll n,m;
cin >> m >> n;
ll result = (compute(n)%MOD-compute(m-1)%MOD+MOD)%MOD;
cout << result << endl;
}
return 0;
}