#include <bits/stdc++.h>
using namespace std;
template <class T>
bool inside(T a, T b, T c) {
  return a <= b && b <= c;
}
template <class T>
bool odd(T a) {
  return a & 1;
}
template <class T>
bool even(T a) {
  return !(a & 1);
}
int main() {
  ios_base::sync_with_stdio(false);
  ;
  cin.tie(NULL);
  cout.tie(NULL);
  ;
  long long n;
  cin >> n;
  map<pair<long long, long long>, long long> m;
  for (int i = 0; i < n; i++) {
    long long typ, u, v;
    cin >> typ >> u >> v;
    if (typ == 1) {
      long long w;
      cin >> w;
      while (u != v) {
        if (u < v) {
          swap(u, v);
        }
        m[make_pair(u, u / 2)] += w;
        u /= 2;
      }
    } else {
      long long ans = 0;
      while (u != v) {
        if (u < v) {
          swap(u, v);
        }
        ans += m[make_pair(u, u / 2)];
        u /= 2;
      }
      cout << ans << '\n';
    }
  }
  return 0;
}
