#include <bits/stdc++.h>
using namespace std;
int main() {
  int e = 1000000007;
  ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  long long l, r, ll = 0, lr = 0, l1, r1, sr1 = 0, sr2 = 0, sl1 = 0, sl2 = 0,
                  pw1, pw2;
  cin >> l >> r;
  l1 = l - 1;
  l--;
  r1 = r;
  while (l1 > 0) {
    ll++;
    l1 = l1 / 2;
  }
  while (r1 > 0) {
    lr++;
    r1 = r1 / 2;
  }
  long long kll1 = 0, kll2 = 0;
  for (int i = 0; i < ll - 1; i++) {
    if (i % 2 == 0) kll1 += pow(2, i);
    if (i % 2 == 1) kll2 += pow(2, i);
  }
  int u = ll;
  long long m = max(0, u - 1);
  pw1 = pow(2, m);
  if (ll % 2 == 1) kll1 += l + 1 - pw1;
  if (ll % 2 == 0) kll2 += l + 1 - pw1;
  long long klr1 = 0, klr2 = 0;
  for (int i = 0; i < lr - 1; i++) {
    if (i % 2 == 0) klr1 += pow(2, i);
    if (i % 2 == 1) klr2 += pow(2, i);
  }
  pw2 = pow(2, lr - 1);
  if (lr % 2 == 1) klr1 += r + 1 - pw2;
  if (lr % 2 == 0) klr2 += r + 1 - pw2;
  long long s1, s2;
  s1 = (((kll2 % e) * (kll2 % e + 1)) % e + ((kll1 % e) * (kll1 % e)) % e) % e;
  s2 = (((klr2 % e) * (klr2 % e + 1)) % e + ((klr1 % e) * (klr1 % e)) % e) % e;
  cout << (s2 - s1 + e) % e;
}
