#include <bits/stdc++.h>

using namespace std;

const int mod = 1000000007;

int a , b , Q , i , answer;
vector < int > arr;

int get(int from , int to)
{
    if (from > to) return 0;
    int len = to - from + 1;
    int p = len;
    int q = len + 1;
    if (p % 2 == 0) p /= 2;
    else q /= 2;

    return (1LL * p * q) % mod;
}

int main()
{

//freopen("input" , "r" , stdin);
//freopen("output" , "w" , stdout);

cin >> Q;
while (Q--)
{
    cin >> a >> b;
    i = 1;
    answer = 0;
    arr.clear();

    while (i <= b)
    {
        if (a < i) arr.push_back(i);
        i *= 2;
    }
    arr.push_back(a);
    arr.push_back(b);
    sort(arr.begin() , arr.end());

    for (i = 1 ; i < arr.size() ; ++i)
    if (i == arr.size() - 1)
    answer = (answer + get(arr[i - 1] , arr[i])) % mod;
    else answer = (answer + get(arr[i - 1] , arr[i] - 1)) % mod;

    cout << answer << '\n';
}

return 0;
}