import java.io.*; import java.util.*; import java.math.*; class Main { public static void out (Object o) { System.out.println(o); } public static BigDecimal opt (String s) { long l = Long.valueOf(s); int i = s.charAt(s.length() - 1) - '0'; if (i % 2 == 0) { l = l >>> 1; } else { l = (l >>> 1) + 1; } return new BigDecimal(l); } public static void main (String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); BigDecimal ans = BigDecimal.ZERO; BigDecimal two = BigDecimal.valueOf(2); BigDecimal m = BigDecimal.valueOf(100000007); for (int i = 0; i < n; i++) { String[] line = br.readLine().split(" "); BigDecimal c = opt(line[0]); BigDecimal d = new BigDecimal(line[1]); ans = ans.add(c.multiply(d)); } out(ans.remainder(m)); } }