#include 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; }