def rev(n: int): return int(str(n)[::-1]) MOD = 7 * 10 ** 9 + 1 pow10 = [1] * 20 for i in range(1, 20): pow10[i] = (pow10[i - 1] * 10) % MOD memo = {} def solve(n: int): assert n >= 0 if n in memo: return memo[n] if n < 100: res = 0 for i in range(1, n + 1): res += rev(i) memo[n] = res return res s = str(n) L = len(s) res = 45 for i in range(2, L): x = pow10[i - 1] - 1 y = pow10[i - 2] - 1 res += 45 * pow10[i - 1] * (x - y) res %= MOD x = int(s[:-1]) y = pow10[L - 2] - 1 res += 10 * solve(x - 1) res += 45 * pow10[L - 1] * (x - 1 - y) res %= MOD v = int(s[-1]) res += (v + 1) * rev(x) res += v * (v + 1) // 2 * pow10[L - 1] res %= MOD memo[n] = res return res N = int(input()) for i in range(N): l, r = map(int, input().split()) res = solve(r) - solve(l - 1) res %= MOD # print(i) print(res)