private static void Add(
byte[] a,
byte[] b,
int value)
{
int x = (b[b.Length - 1] & 0xff) + value;
a[b.Length - 1] = (byte)x;
x = (int) ((uint) x >>8);
for (int i = b.Length - 2; i >= 0; i--)
{
x += (b[i] & 0xff);
a[i] = (byte)x;
x = (int) ((uint) x >>8);
}
}