//be name khoda :) // #include <ext/pb_ds/assoc_container.hpp> // Common file // #include <ext/pb_ds/tree_policy.hpp> // Including tree_order_statistics_node_update #include <bits/stdc++.h> using namespace std; // typedef tree< int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; #define sz(x) ((int)x.size()) #define rep(i, n) for(int i = 0; i < (n); i++) #define res(i, s) for(int i = 0; i < (sz(s)); i++) #define pii pair<int, int> #define all(v) v.begin(), v.end() #define vi vector <int> #define pb push_back #define mp make_pair #define INF 0x3f3f3f3f typedef long long ll; const int N = 11221; ll a[N], ys, yt, ms, mt, ds, dt; ll f(int ms, int ds) { ll sum = ds; rep(i, ms - 1) sum += a[i]; return sum; } int main() { int tests; cin >> tests; while(tests--) { int n; cin >> n; ll sum = 0, year = 0; rep(i, n) { cin >> a[i]; year += a[i]; } ll ys, ms, ds, mt, dt, yt; cin >> ys >> ms >> ds; cin >> yt >> mt >> dt; sum += max(0LL, (yt - ys - 1)) * (ll)year; for(int i = ys + 1; i < yt; i++) sum += (i % 4 == 0); sum += -f(ms, ds) + 1 + year + (ys % 4 == 0); if(ys == yt) sum -= year - f(mt, dt) + (yt % 4 == 0); else sum += f(mt, dt); cout << sum << endl; } return 0; }