#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define FOR(i, a, n) for (int i = a; i <= n; ++i) #define FORN(a, n) for (int i = a; i < n; ++i) #define ROF(i, n, a) for (int i = n; i >= a; i--) #define ROFN(n, a) for (int i = n - 1; i >= a; i--) #define FIT(i, v) for (auto &i : v) #define pb push_back #define mp make_pair #define mt make_touple #define all(x) (x).begin(), (x).end() #define fi first #define se second #define sz(x) ((int)(x).size()) #define log log2 typedef long long ll; typedef pair pii; typedef pair pll; const long long mod = 1000000007; ll powmod(ll a, ll b) { ll res = 1; a %= mod; assert(b >= 0); for (; b; b >>= 1) { if (b & 1) res = res * a % mod; a = a * a % mod; } return res; } int main() { ios_base::sync_with_stdio(0), cin.tie(0); int pw[33]; pw[0] = 1; FOR(i, 1, 30) { pw[i] = 2 * pw[i - 1]; } int Q; cin >> Q; while (Q--) { int x, y; ll ans = 0LL; cin >> x >> y; ans = 0LL; FOR(i, 0, 30) { ll X = max(x, pw[i]); ll Y = min(y, pw[i + 1] - 1); if (X <= Y) { ans = (ans + (long long)((long long)(Y - X + 1) * (long long) (Y - X + 2)) / 2) % 1000000007; } } cout << ans << '\n'; } return 0; }