# bulk:1570
function pb_and(a, b, r, i, ai, bi, p) {
r = 0
p = 1
for (i = 0; i < 32; i++) {
ai = a % 2
a = int(a / 2)
bi = b % 2
b = int(b / 2)
if (ai && bi) {
r += p
}
p *= 2
if (a == 0 && b == 0) {
break
}
}
return r
}
function pb_or(a, b, r, i, ai, bi, p) {
r = 0
p = 1
for (i = 0; i < 32; i++) {
ai = a % 2
a = int(a / 2)
bi = b % 2
b = int(b / 2)
if (ai || bi) {
r += p
}
p *= 2
if (a == 0 && b == 0) {
break
}
}
return r
}
function pb_xor(a, b, r, i, ai, bi, p) {
r = 0
p = 1
for (i = 0; i < 32; i++) {
ai = a % 2
a = int(a / 2)
bi = b % 2
b = int(b / 2)
if ((ai && !bi) || (!ai && bi)) {
r += p
}
p *= 2
if (a == 0 && b == 0) {
break
}
}
return r
}
function pb_lshift(x, n, i) {
for (i = 0; i < n; i++) {
x *= 2
}
return x
}
function pb_rshift(x, n, i) {
for (i = 0; i < n; i++) {
x = int(x / 2)
}
return x
}
BEGIN {
printf "%d\n", pb_or(8, 1)
printf "%d\n", (30 < 31) + (31 < 65) * 2
printf "%s\n", substr("0123456789", 0, 4)
{ _s = ""; for (_i = 0; _i < 0 + 2; _i++) _s = _s "0"; printf "%d\n", length(_s) }
}