zktest/src/main/webapp/test2/js/zk-3913-PDF417lib.js
/*The MIT License (MIT)
Copyright (c) 2014 James Liu j@jamesliu.info
*/
var libbcmath = {
PLUS: "+",
MINUS: "-",
BASE: 10,
scale: 0,
bc_num: function() {
this.n_value = this.n_scale = this.n_len = this.n_sign = null;
this.toString = function() {
var a, b;
b = this.n_value.join("");
a = (this.n_sign == libbcmath.PLUS ? "" : this.n_sign) + b.substr(0, this
.n_len);
0 < this.n_scale && (a += "." + b.substr(this.n_len, this.n_scale));
return a
};
this.setScale = function(a) {
for (; this.n_scale < a;) this.n_value.push(0), this.n_scale++;
for (; this.n_scale > a;) this.n_value.pop(), this.n_scale--;
return this
}
},
bc_new_num: function(a, b) {
var c;
c = new libbcmath.bc_num;
c.n_sign = libbcmath.PLUS;
c.n_len = a;
c.n_scale = b;
c.n_value = libbcmath.safe_emalloc(1, a + b, 0);
libbcmath.memset(c.n_value, 0, 0, a + b);
return c
},
safe_emalloc: function(a, b, c) {
return Array(a * b + c)
},
bc_init_num: function() {
return new libbcmath.bc_new_num(1, 0)
},
_bc_rm_leading_zeros: function(a) {
for (; 0 === a.n_value[0] && 1 < a.n_len;) a.n_value.shift(), a.n_len--
},
php_str2num: function(a) {
var b;
b = a.indexOf(".");
return -1 == b ? libbcmath.bc_str2num(a, 0) : libbcmath.bc_str2num(a, a.length -
b)
},
CH_VAL: function(a) {
return a -
0
},
BCD_CHAR: function(a) {
return a + "0"
},
isdigit: function(a) {
return isNaN(parseInt(a, 10)) ? !1 : !0
},
bc_str2num: function(a, b) {
var c, d, e, g, f, h, k;
c = a.split("");
f = g = e = 0;
h = !1;
for ("+" !== c[e] && "-" !== c[e] || e++;
"0" === c[e];) e++;
for (; 0 === c[e] % 1;) e++, g++;
for ("." === c[e] && e++; 0 === c[e] % 1;) e++, f++;
if (c[e] || 0 === g + f) return libbcmath.bc_init_num();
f = libbcmath.MIN(f, b);
0 === g && (h = !0, g = 1);
d = libbcmath.bc_new_num(g, f);
e = 0;
"-" === c[e] ? (d.n_sign = libbcmath.MINUS, e++) : (d.n_sign = libbcmath.PLUS,
"+" === c[e] && e++);
for (;
"0" === c[e];) e++;
k = 0;
h && (g = d.n_value[k++] = 0);
for (; 0 < g; g--) d.n_value[k++] = libbcmath.CH_VAL(c[e++]);
if (0 < f)
for (e++; 0 < f; f--) d.n_value[k++] = libbcmath.CH_VAL(c[e++]);
return d
},
cint: function(a) {
"undefined" == typeof a && (a = 0);
a = parseInt(a, 10);
isNaN(a) && (a = 0);
return a
},
MIN: function(a, b) {
return a > b ? b : a
},
MAX: function(a, b) {
return a > b ? a : b
},
ODD: function(a) {
return a & 1
},
memset: function(a, b, c, d) {
var e;
for (e = 0; e < d; e++) a[b + e] = c
},
memcpy: function(a, b, c, d, e) {
var g;
for (g = 0; g < e; g++) a[b + g] = c[d + g];
return !0
},
bc_is_zero: function(a) {
var b, c;
b =
a.n_len + a.n_scale;
for (c = 0; 0 < b && 0 === a.n_value[c++];) b--;
return 0 !== b ? !1 : !0
},
bc_out_of_memory: function() {
throw Error("(BC) Out of memory");
},
bc_add: function(a, b, c) {
var d, e;
if (a.n_sign === b.n_sign) d = libbcmath._bc_do_add(a, b, c), d.n_sign = a.n_sign;
else switch (e = libbcmath._bc_do_compare(a, b, !1, !1), e) {
case -1:
d = libbcmath._bc_do_sub(b, a, c);
d.n_sign = b.n_sign;
break;
case 0:
a = libbcmath.MAX(c, libbcmath.MAX(a.n_scale, b.n_scale));
d = libbcmath.bc_new_num(1, a);
libbcmath.memset(d.n_value, 0, 0, a + 1);
break;
case 1:
d = libbcmath._bc_do_sub(a,
b, c), d.n_sign = a.n_sign
}
return d
},
bc_compare: function(a, b) {
return libbcmath._bc_do_compare(a, b, !0, !1)
},
_bc_do_compare: function(a, b, c, d) {
var e, g, f;
if (c && a.n_sign != b.n_sign) return a.n_sign == libbcmath.PLUS ? 1 : -1;
if (a.n_len != b.n_len) return a.n_len > b.n_len ? c && a.n_sign !=
libbcmath.PLUS ? -1 : 1 : c && a.n_sign != libbcmath.PLUS ? 1 : -1;
f = a.n_len + Math.min(a.n_scale, b.n_scale);
for (g = e = 0; 0 < f && a.n_value[e] == b.n_value[g];) e++, g++, f--;
if (d && 1 == f && a.n_scale == b.n_scale) return 0;
if (0 !== f) return a.n_value[e] > b.n_value[g] ? c && a.n_sign !=
libbcmath.PLUS ? -1 : 1 : c && a.n_sign != libbcmath.PLUS ? 1 : -1;
if (a.n_scale != b.n_scale)
if (a.n_scale > b.n_scale)
for (f = a.n_scale - b.n_scale; 0 < f; f--) {
if (0 !== a.n_value[e++]) return c && a.n_sign != libbcmath.PLUS ? -1 :
1
} else
for (f = b.n_scale - a.n_scale; 0 < f; f--)
if (0 !== b.n_value[g++]) return c && a.n_sign != libbcmath.PLUS ? 1 :
-1;
return 0
},
_one_mult: function(a, b, c, d, e, g) {
var f;
if (0 === d) libbcmath.memset(e, 0, 0, c);
else if (1 == d) libbcmath.memcpy(e, g, a, b, c);
else {
b = b + c - 1;
g = g + c - 1;
for (f = 0; 0 < c--;) f = a[b--] * d + f, e[g--] = f % libbcmath.BASE, f =
Math.floor(f /
libbcmath.BASE);
0 != f && (e[g] = f)
}
},
bc_divide: function(a, b, c) {
var d, e, g, f, h, k, l, m, n, q, s, p, r, t;
if (libbcmath.bc_is_zero(b)) return -1;
if (libbcmath.bc_is_zero(a)) return libbcmath.bc_new_num(1, c);
0 === b.n_scale && 1 === b.n_len && 1 === b.n_value[0] && (d = libbcmath.bc_new_num(
a.n_len, c), d.n_sign = a.n_sign == b.n_sign ? libbcmath.PLUS :
libbcmath.MINUS, libbcmath.memset(d.n_value, a.n_len, 0, c), libbcmath.memcpy(
d.n_value, 0, a.n_value, 0, a.n_len + libbcmath.MIN(a.n_scale, c)));
n = b.n_scale;
for (h = b.n_len + n - 1; 0 < n && 0 === b.n_value[h--];) n--;
m = a.n_len + n;
g = a.n_scale - n;
f = g < c ? c - g : 0;
e = libbcmath.safe_emalloc(1, a.n_len + a.n_scale, f + 2);
null === e && libbcmath.bc_out_of_memory();
libbcmath.memset(e, 0, 0, a.n_len + a.n_scale + f + 2);
libbcmath.memcpy(e, 1, a.n_value, 0, a.n_len + a.n_scale);
n = b.n_len + n;
d = libbcmath.safe_emalloc(1, n, 1);
null === d && libbcmath.bc_out_of_memory();
libbcmath.memcpy(d, 0, b.n_value, 0, n);
for (h = d[n] = 0; 0 === d[h];) h++, n--;
n > m + c ? (q = c + 1, k = !0) : (k = !1, q = n > m ? c + 1 : m - n + c +
1);
d = libbcmath.bc_new_num(q - c, c);
libbcmath.memset(d.n_value, 0, 0, q);
q = libbcmath.safe_emalloc(1,
n, 1);
null === q && libbcmath.bc_out_of_memory();
if (!k)
for (k = Math.floor(10 / (b.n_value[h] + 1)), 1 != k && (libbcmath._one_mult(
e, 0, m + g + f + 1, k, e, 0), libbcmath._one_mult(b.n_value, h, n, k,
b.n_value, h)), p = 0, k = n > m ? n - m : 0; p <= m + c - n;) {
r = b.n_value[h] == e[p] ? 9 : Math.floor((10 * e[p] + e[p + 1]) / b.n_value[
h]);
b.n_value[h + 1] * r > 10 * (10 * e[p] + e[p + 1] - b.n_value[h] * r) + e[
p + 2] && (r--, b.n_value[h + 1] * r > 10 * (10 * e[p] + e[p + 1] - b.n_value[
h] * r) + e[p + 2] && r--);
t = 0;
if (0 !== r)
for (q[0] = 0, libbcmath._one_mult(b.n_value, h, n, r, q, 1), g = p + n,
f = n, s = 0; s < n + 1; s++) l = 0 > f ?
e[g] - 0 - t : e[g] - q[f--] - t, 0 > l ? (l += 10, t = 1) : t = 0, e[g--] =
l;
if (1 == t) {
r--;
g = p + n;
f = n - 1;
for (s = t = 0; s < n; s++) l = 0 > f ? e[g] + 0 + t : e[g] + b.n_value[
f--] + t, 9 < l ? (l -= 10, t = 1) : t = 0, e[g--] = l;
1 == t && (e[g] = (e[g] + 1) % 10)
}
d.n_value[k++] = r;
p++
}
d.n_sign = a.n_sign == b.n_sign ? libbcmath.PLUS : libbcmath.MINUS;
libbcmath.bc_is_zero(d) && (d.n_sign = libbcmath.PLUS);
libbcmath._bc_rm_leading_zeros(d);
return d
},
_bc_do_add: function(a, b, c) {
var d, e, g, f, h, k, l;
d = libbcmath.MAX(a.n_scale, b.n_scale);
e = libbcmath.MAX(a.n_len, b.n_len) + 1;
c = libbcmath.bc_new_num(e,
libbcmath.MAX(d, c));
h = a.n_scale;
k = b.n_scale;
g = a.n_len + h - 1;
f = b.n_len + k - 1;
d = d + e - 1;
if (h != k)
if (h > k)
for (; h > k;) c.n_value[d--] = a.n_value[g--], h--;
else
for (; k > h;) c.n_value[d--] = b.n_value[f--], k--;
h += a.n_len;
k += b.n_len;
for (e = 0; 0 < h && 0 < k;) l = a.n_value[g--] + b.n_value[f--] + e, l >=
libbcmath.BASE ? (e = 1, l -= libbcmath.BASE) : e = 0, c.n_value[d] = l, d--,
h--, k--;
if (0 === h)
for (; 0 < k--;) l = b.n_value[f--] + e, l >= libbcmath.BASE ? (e = 1, l -=
libbcmath.BASE) : e = 0, c.n_value[d--] = l;
else
for (; 0 < h--;) l = a.n_value[g--] + e, l >= libbcmath.BASE ? (e = 1, l -=
libbcmath.BASE) :
e = 0, c.n_value[d--] = l;
1 == e && (c.n_value[d] += 1);
libbcmath._bc_rm_leading_zeros(c);
return c
},
_bc_do_sub: function(a, b, c) {
var d, e, g, f, h, k, l, m, n;
e = libbcmath.MAX(a.n_len, b.n_len);
d = libbcmath.MAX(a.n_scale, b.n_scale);
f = libbcmath.MIN(a.n_len, b.n_len);
g = libbcmath.MIN(a.n_scale, b.n_scale);
c = libbcmath.bc_new_num(e, libbcmath.MAX(d, c));
h = a.n_len + a.n_scale - 1;
k = b.n_len + b.n_scale - 1;
d = e + d - 1;
l = 0;
if (a.n_scale != g)
for (m = a.n_scale - g; 0 < m; m--) c.n_value[d--] = a.n_value[h--];
else
for (m = b.n_scale - g; 0 < m; m--) n = 0 - b.n_value[k--] -
l, 0 > n ? l = 1 : (l = 0, c.n_value[d--] = n);
for (m = 0; m < f + g; m++) n = a.n_value[h--] - b.n_value[k--] - l, 0 > n ?
(n += libbcmath.BASE, l = 1) : l = 0, c.n_value[d--] = n;
if (e != f)
for (m = e - f; 0 < m; m--) n = a.n_value[h--] - l, 0 > n ? (n +=
libbcmath.BASE, l = 1) : l = 0, c.n_value[d--] = n;
libbcmath._bc_rm_leading_zeros(c);
return c
},
MUL_BASE_DIGITS: 80
};
libbcmath.MUL_SMALL_DIGITS = libbcmath.MUL_BASE_DIGITS / 4;
libbcmath.bc_multiply = function(a, b, c) {
var d, e, g, f;
d = a.n_len + a.n_scale;
e = b.n_len + b.n_scale;
g = a.n_scale + b.n_scale;
f = libbcmath.MIN(g, libbcmath.MAX(c, libbcmath.MAX(a.n_scale, b.n_scale)));
c = libbcmath._bc_rec_mul(a, d, b, e, g);
c.n_sign = a.n_sign == b.n_sign ? libbcmath.PLUS : libbcmath.MINUS;
c.n_len = e + d + 1 - g;
c.n_scale = f;
libbcmath._bc_rm_leading_zeros(c);
libbcmath.bc_is_zero(c) && (c.n_sign = libbcmath.PLUS);
return c
};
libbcmath.new_sub_num = function(a, b, c) {
var d = new libbcmath.bc_num;
d.n_sign = libbcmath.PLUS;
d.n_len = a;
d.n_scale = b;
d.n_value = c;
return d
};
libbcmath._bc_simp_mul = function(a, b, c, d, e) {
var g, f, h, k, l, m, n;
n = b + d + 1;
e = libbcmath.bc_new_num(n, 0);
h = b - 1;
k = d - 1;
f = n - 1;
for (l = m = 0; l < n - 1; l++) {
b = h - libbcmath.MAX(0, l - d + 1);
for (g = k - libbcmath.MIN(l, d - 1); 0 <= b && g <= k;) m += a.n_value[b--] *
c.n_value[g++];
e.n_value[f--] = Math.floor(m % libbcmath.BASE);
m = Math.floor(m / libbcmath.BASE)
}
e.n_value[f] = m;
return e
};
libbcmath._bc_shift_addsub = function(a, b, c, d) {
var e, g, f;
g = b.n_len;
0 === b.n_value[0] && g--;
if (!(a.n_len + a.n_scale >= c + g)) throw Error(
"len + scale < shift + count");
c = a.n_len + a.n_scale - c - 1;
e = b.n_len = 1;
f = 0;
if (d) {
for (; g--;) a.n_value[c] -= b.n_value[e--] + f, 0 > a.n_value[c] ? (f = 1,
a.n_value[c--] += libbcmath.BASE) : (f = 0, c--);
for (; f;) a.n_value[c] -= f, 0 > a.n_value[c] ? a.n_value[c--] += libbcmath
.BASE : f = 0
} else {
for (; g--;) a.n_value[c] += b.n_value[e--] + f, a.n_value[c] > libbcmath.BASE -
1 ? (f = 1, a.n_value[c--] -= libbcmath.BASE) : (f = 0, c--);
for (; f;) a.n_value[c] += f, a.n_value[c] > libbcmath.BASE - 1 ? a.n_value[
c--] -= libbcmath.BASE : f = 0
}
return !0
};
libbcmath._bc_rec_mul = function(a, b, c, d, e) {
var g, f, h, k, l, m, n;
if (b + d < libbcmath.MUL_BASE_DIGITS || b < libbcmath.MUL_SMALL_DIGITS || d <
libbcmath.MUL_SMALL_DIGITS) return libbcmath._bc_simp_mul(a, b, c, d, e);
e = Math.floor((libbcmath.MAX(b, d) + 1) / 2);
b < e ? (f = libbcmath.bc_init_num(), g = libbcmath.new_sub_num(b, 0, a.n_value)) :
(f = libbcmath.new_sub_num(b - e, 0, a.n_value), g = libbcmath.new_sub_num(e,
0, a.n_value + b - e));
d < e ? (k = libbcmath.bc_init_num(), h = libbcmath.new_sub_num(d, 0, c.n_value)) :
(k = libbcmath.new_sub_num(d - e, 0, c.n_value),
h = libbcmath.new_sub_num(e, 0, c.n_value + d - e));
libbcmath._bc_rm_leading_zeros(f);
libbcmath._bc_rm_leading_zeros(g);
libbcmath._bc_rm_leading_zeros(k);
libbcmath._bc_rm_leading_zeros(h);
l = libbcmath.bc_is_zero(f) || libbcmath.bc_is_zero(k);
libbcmath.bc_init_num();
libbcmath.bc_init_num();
c = libbcmath.bc_sub(f, g, 0);
m = c.n_len;
a = libbcmath.bc_sub(h, k, 0);
n = a.n_len;
f = l ? libbcmath.bc_init_num() : libbcmath._bc_rec_mul(f, f.n_len, k, k.n_len,
0);
k = libbcmath.bc_is_zero(c) || libbcmath.bc_is_zero(a) ? libbcmath.bc_init_num() :
libbcmath._bc_rec_mul(c,
m, a, n, 0);
g = libbcmath.bc_is_zero(g) || libbcmath.bc_is_zero(h) ? libbcmath.bc_init_num() :
libbcmath._bc_rec_mul(g, g.n_len, h, h.n_len, 0);
b = libbcmath.bc_new_num(b + d + 1, 0);
l || (libbcmath._bc_shift_addsub(b, f, 2 * e, 0), libbcmath._bc_shift_addsub(
b, f, e, 0));
libbcmath._bc_shift_addsub(b, g, e, 0);
libbcmath._bc_shift_addsub(b, g, 0, 0);
libbcmath._bc_shift_addsub(b, k, e, c.n_sign != a.n_sign);
return b
};
libbcmath.bc_sub = function(a, b, c) {
var d, e;
if (a.n_sign != b.n_sign) d = libbcmath._bc_do_add(a, b, c), d.n_sign = a.n_sign;
else switch (e = libbcmath._bc_do_compare(a, b, !1, !1), e) {
case -1:
d = libbcmath._bc_do_sub(b, a, c);
d.n_sign = b.n_sign == libbcmath.PLUS ? libbcmath.MINUS : libbcmath.PLUS;
break;
case 0:
a = libbcmath.MAX(c, libbcmath.MAX(a.n_scale, b.n_scale));
d = libbcmath.bc_new_num(1, a);
libbcmath.memset(d.n_value, 0, 0, a + 1);
break;
case 1:
d = libbcmath._bc_do_sub(a, b, c), d.n_sign = a.n_sign
}
return d
};
function bcadd(a, b, c) {
"undefined" == typeof c && (c = libbcmath.scale);
c = 0 > c ? 0 : c;
libbcmath.bc_init_num();
libbcmath.bc_init_num();
libbcmath.bc_init_num();
a = libbcmath.php_str2num(a.toString());
b = libbcmath.php_str2num(b.toString());
a.n_scale > b.n_scale && b.setScale(a.n_scale);
b.n_scale > a.n_scale && a.setScale(b.n_scale);
b = libbcmath.bc_add(a, b, c);
b.n_scale > c && (b.n_scale = c);
return b.toString()
}
function bcsub(a, b, c) {
"undefined" == typeof c && (c = libbcmath.scale);
c = 0 > c ? 0 : c;
libbcmath.bc_init_num();
libbcmath.bc_init_num();
libbcmath.bc_init_num();
a = libbcmath.php_str2num(a.toString());
b = libbcmath.php_str2num(b.toString());
a.n_scale > b.n_scale && b.setScale(a.n_scale);
b.n_scale > a.n_scale && a.setScale(b.n_scale);
b = libbcmath.bc_sub(a, b, c);
b.n_scale > c && (b.n_scale = c);
return b.toString()
}
function bccomp(a, b, c) {
"undefined" == typeof c && (c = libbcmath.scale);
c = 0 > c ? 0 : c;
libbcmath.bc_init_num();
libbcmath.bc_init_num();
a = libbcmath.bc_str2num(a.toString(), c);
b = libbcmath.bc_str2num(b.toString(), c);
return libbcmath.bc_compare(a, b, c)
}
function bcscale(a) {
a = parseInt(a, 10);
if (isNaN(a) || 0 > a) return !1;
libbcmath.scale = a;
return !0
}
function bcdiv(a, b, c) {
"undefined" == typeof c && (c = libbcmath.scale);
c = 0 > c ? 0 : c;
libbcmath.bc_init_num();
libbcmath.bc_init_num();
libbcmath.bc_init_num();
a = libbcmath.php_str2num(a.toString());
b = libbcmath.php_str2num(b.toString());
a.n_scale > b.n_scale && b.setScale(a.n_scale);
b.n_scale > a.n_scale && a.setScale(b.n_scale);
b = libbcmath.bc_divide(a, b, c);
if (-1 === b) throw Error(11, "(BC) Division by zero");
b.n_scale > c && (b.n_scale = c);
return b.toString()
}
function bcmul(a, b, c) {
"undefined" == typeof c && (c = libbcmath.scale);
c = 0 > c ? 0 : c;
libbcmath.bc_init_num();
libbcmath.bc_init_num();
libbcmath.bc_init_num();
a = libbcmath.php_str2num(a.toString());
b = libbcmath.php_str2num(b.toString());
a.n_scale > b.n_scale && b.setScale(a.n_scale);
b.n_scale > a.n_scale && a.setScale(b.n_scale);
b = libbcmath.bc_multiply(a, b, c);
b.n_scale > c && (b.n_scale = c);
return b.toString()
}
function bcround(a, b) {
var c;
c = "0." + Array(b + 1).join("0") + "5";
"-" == a.toString().substring(0, 1) && (c = "-" + c);
return bcadd(a, c, b)
}
var PDF417 = {
ROWHEIGHT: 4,
QUIETH: 2,
QUIETV: 2,
barcode_array: {},
start_pattern: "11111111010101000",
stop_pattern: "111111101000101001",
textsubmodes: [
[65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
84, 85, 86, 87, 88, 89, 90, 32, 253, 254, 255
],
[97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 32, 253, 254, 255
],
[48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 38, 13, 9, 44, 58, 35, 45, 46, 36,
47, 43, 37, 42, 61, 94, 251, 32, 253, 254, 255
],
[59, 60, 62, 64, 91, 92, 93, 95, 96, 126, 33, 13, 9, 44, 58, 10, 45,
46, 36, 47, 34, 124, 42, 40, 41, 63, 123, 125, 39, 255
]
],
textlatch: {
"01": [27],
"02": [28],
"03": [28, 25],
10: [28, 28],
12: [28],
13: [28, 25],
20: [28],
21: [27],
23: [25],
30: [29],
31: [29, 27],
32: [29, 28]
},
clusters: [
[120256, 125680, 128380, 120032, 125560, 128318, 108736, 119920, 108640,
86080, 108592, 86048, 110016, 120560, 125820, 109792, 120440, 125758,
88256, 109680, 88160, 89536, 110320, 120700, 89312, 110200, 120638, 89200,
110140, 89840, 110460, 89720, 110398, 89980, 128506, 119520, 125304,
128190, 107712, 119408, 125244, 107616, 119352, 84032, 107568, 119324,
84E3,
107544, 83984, 108256, 119672, 125374, 85184, 108144, 119612, 85088,
108088, 119582, 85040, 108060, 85728, 108408, 119742, 85616, 108348, 85560,
108318, 85880, 108478, 85820, 85790, 107200, 119152, 125116, 107104,
119096, 125086, 83008, 107056, 119068, 82976, 107032, 82960, 82952, 83648,
107376, 119228, 83552, 107320, 119198, 83504, 107292, 83480, 83468, 83824,
107452, 83768, 107422, 83740, 83900, 106848, 118968, 125022, 82496, 106800,
118940, 82464, 106776, 118926, 82448, 106764, 82440, 106758, 82784, 106936,
119006, 82736, 106908, 82712, 106894, 82700, 82694, 106974, 82830,
82240, 106672, 118876, 82208, 106648, 118862, 82192, 106636, 82184, 106630,
82180, 82352, 82328, 82316, 82080, 118830, 106572, 106566, 82050, 117472,
124280, 127678, 103616, 117360, 124220, 103520, 117304, 124190, 75840,
103472, 75808, 104160, 117624, 124350, 76992, 104048, 117564, 76896,
103992, 76848, 76824, 77536, 104312, 117694, 77424, 104252, 77368, 77340,
77688, 104382, 77628, 77758, 121536, 126320, 128700, 121440, 126264,
128670, 111680, 121392, 126236, 111648, 121368, 126222, 111632, 121356,
103104, 117104, 124092, 112320, 103008, 117048, 124062, 112224, 121656,
126366, 93248, 74784, 102936, 117006, 93216, 112152, 93200, 75456, 103280,
117180, 93888, 75360, 103224, 117150, 93792, 112440, 121758, 93744, 75288,
93720, 75632, 103356, 94064, 75576, 103326, 94008, 112542, 93980, 75708,
94140, 75678, 94110, 121184, 126136, 128606, 111168, 121136, 126108,
111136, 121112, 126094, 111120, 121100, 111112, 111108, 102752, 116920,
123998, 111456, 102704, 116892, 91712, 74272, 121244, 116878, 91680, 74256,
102668, 91664, 111372, 102662, 74244, 74592, 102840, 116958, 92E3, 74544,
102812, 91952, 111516, 102798, 91928, 74508, 74502, 74680, 102878,
92088, 74652, 92060, 74638, 92046, 92126, 110912, 121008, 126044, 110880,
120984, 126030, 110864, 120972, 110856, 120966, 110852, 110850, 74048,
102576, 116828, 90944, 74016, 102552, 116814, 90912, 111E3, 121038, 90896,
73992, 102534, 90888, 110982, 90884, 74160, 102620, 91056, 74136, 102606,
91032, 111054, 91020, 74118, 91014, 91100, 91086, 110752, 120920, 125998,
110736, 120908, 110728, 120902, 110724, 110722, 73888, 102488, 116782,
90528, 73872, 102476, 90512, 110796, 102470, 90504, 73860, 90500, 73858,
73944, 90584, 90572, 90566, 120876, 120870, 110658, 102444, 73800,
90312, 90308, 90306, 101056, 116080, 123580, 100960, 116024, 70720, 100912,
115996, 70688, 100888, 70672, 70664, 71360, 101232, 116156, 71264, 101176,
116126, 71216, 101148, 71192, 71180, 71536, 101308, 71480, 101278, 71452,
71612, 71582, 118112, 124600, 127838, 105024, 118064, 124572, 104992,
118040, 124558, 104976, 118028, 104968, 118022, 100704, 115896, 123486,
105312, 100656, 115868, 79424, 70176, 118172, 115854, 79392, 105240,
100620, 79376, 70152, 79368, 70496, 100792, 115934, 79712, 70448, 118238,
79664, 105372, 100750, 79640, 70412, 79628, 70584, 100830, 79800, 70556,
79772, 70542, 70622, 79838, 122176, 126640, 128860, 122144, 126616, 128846,
122128, 126604, 122120, 126598, 122116, 104768, 117936, 124508, 113472,
104736, 126684, 124494, 113440, 122264, 126670, 113424, 104712, 117894,
113416, 122246, 104706, 69952, 100528, 115804, 78656, 69920, 100504,
115790, 96064, 78624, 104856, 117966, 96032, 113560, 122318, 100486, 96016,
78600, 104838, 96008, 69890, 70064, 100572, 78768, 70040, 100558, 96176,
78744, 104910, 96152, 113614, 70022, 78726, 70108, 78812, 70094, 96220,
78798, 122016, 126552, 128814, 122E3, 126540, 121992, 126534, 121988,
121986, 104608, 117848, 124462, 113056, 104592, 126574, 113040, 122060,
117830, 113032, 104580, 113028, 104578, 113026, 69792, 100440, 115758,
78240, 69776, 100428, 95136, 78224, 104652, 100422, 95120, 113100, 69764,
95112, 78212, 69762, 78210, 69848, 100462, 78296, 69836, 95192, 78284,
69830, 95180, 78278, 69870, 95214, 121936, 126508, 121928, 126502, 121924,
121922, 104528, 117804, 112848, 104520, 117798, 112840, 121958, 112836,
104514, 112834, 69712, 100396, 78032, 69704, 100390, 94672, 78024, 104550,
94664, 112870, 69698, 94660, 78018, 94658, 78060, 94700, 94694, 126486,
121890, 117782, 104484, 104482, 69672, 77928, 94440, 69666, 77922, 99680,
68160, 99632, 68128, 99608, 115342, 68112, 99596, 68104, 99590, 68448,
99768, 115422, 68400, 99740, 68376, 99726, 68364, 68358, 68536, 99806,
68508, 68494, 68574, 101696, 116400, 123740, 101664, 116376, 101648,
116364, 101640, 116358, 101636, 67904, 99504, 115292, 72512, 67872, 116444,
115278, 72480, 101784, 116430, 72464, 67848, 99462, 72456, 101766, 67842,
68016, 99548, 72624, 67992, 99534, 72600, 101838, 72588, 67974, 68060,
72668, 68046, 72654, 118432, 124760, 127918, 118416, 124748, 118408,
124742,
118404, 118402, 101536, 116312, 105888, 101520, 116300, 105872, 118476,
116294, 105864, 101508, 105860, 101506, 105858, 67744, 99416, 72096, 67728,
116334, 80800, 72080, 101580, 99398, 80784, 105932, 67716, 80776, 72068,
67714, 72066, 67800, 99438, 72152, 67788, 80856, 72140, 67782, 80844,
72134, 67822, 72174, 80878, 126800, 128940, 126792, 128934, 126788, 126786,
118352, 124716, 122576, 126828, 124710, 122568, 126822, 122564, 118338,
122562, 101456, 116268, 105680, 101448, 116262, 114128, 105672, 118374,
114120, 122598, 101442, 114116, 105666, 114114, 67664, 99372, 71888,
67656, 99366, 80336, 71880, 101478, 97232, 80328, 105702, 67650, 97224,
114150, 71874, 97220, 67692, 71916, 67686, 80364, 71910, 97260, 80358,
97254, 126760, 128918, 126756, 126754, 118312, 124694, 122472, 126774,
122468, 118306, 122466, 101416, 116246, 105576, 101412, 113896, 105572,
101410, 113892, 105570, 113890, 67624, 99350, 71784, 101430, 80104, 71780,
67618, 96744, 80100, 71778, 96740, 80098, 96738, 71798, 96758, 126738,
122420, 122418, 105524, 113780, 113778, 71732, 79988, 96500, 96498, 66880,
66848, 98968, 66832, 66824, 66820, 66992, 66968, 66956, 66950, 67036,
67022,
1E5, 99984, 115532, 99976, 115526, 99972, 99970, 66720, 98904, 69024,
100056, 98892, 69008, 100044, 69E3, 100038, 68996, 66690, 68994, 66776,
98926, 69080, 100078, 69068, 66758, 69062, 66798, 69102, 116560, 116552,
116548, 116546, 99920, 102096, 116588, 115494, 102088, 116582, 102084,
99906, 102082, 66640, 68816, 66632, 98854, 73168, 68808, 66628, 73160,
68804, 66626, 73156, 68802, 66668, 68844, 66662, 73196, 68838, 73190,
124840, 124836, 124834, 116520, 118632, 124854, 118628, 116514, 118626,
99880, 115478, 101992, 116534, 106216, 101988, 99874, 106212, 101986,
106210, 66600,
98838, 68712, 99894, 72936, 68708, 66594, 81384, 72932, 68706, 81380,
72930, 66614, 68726, 72950, 81398, 128980, 128978, 124820, 126900, 124818,
126898, 116500, 118580, 116498, 122740, 118578, 122738, 99860, 101940,
99858, 106100, 101938, 114420
],
[128352, 129720, 125504, 128304, 129692, 125472, 128280, 129678, 125456,
128268, 125448, 128262, 125444, 125792, 128440, 129758, 120384, 125744,
128412, 120352, 125720, 128398, 120336, 125708, 120328, 125702, 120324,
120672, 125880, 128478, 110144, 120624, 125852, 110112, 120600, 125838,
110096, 120588, 110088, 120582, 110084,
110432, 120760, 125918, 89664, 110384, 120732, 89632, 110360, 120718,
89616, 110348, 89608, 110342, 89952, 110520, 120798, 89904, 110492, 89880,
110478, 89868, 90040, 110558, 90012, 89998, 125248, 128176, 129628, 125216,
128152, 129614, 125200, 128140, 125192, 128134, 125188, 125186, 119616,
125360, 128220, 119584, 125336, 128206, 119568, 125324, 119560, 125318,
119556, 119554, 108352, 119728, 125404, 108320, 119704, 125390, 108304,
119692, 108296, 119686, 108292, 108290, 85824, 108464, 119772, 85792,
108440, 119758, 85776, 108428, 85768, 108422, 85764, 85936, 108508,
85912, 108494, 85900, 85894, 85980, 85966, 125088, 128088, 129582, 125072,
128076, 125064, 128070, 125060, 125058, 119200, 125144, 128110, 119184,
125132, 119176, 125126, 119172, 119170, 107424, 119256, 125166, 107408,
119244, 107400, 119238, 107396, 107394, 83872, 107480, 119278, 83856,
107468, 83848, 107462, 83844, 83842, 83928, 107502, 83916, 83910, 83950,
125008, 128044, 125E3, 128038, 124996, 124994, 118992, 125036, 118984,
125030, 118980, 118978, 106960, 119020, 106952, 119014, 106948, 106946,
82896, 106988, 82888, 106982, 82884, 82882, 82924, 82918, 124968, 128022,
124964, 124962, 118888, 124982, 118884, 118882, 106728, 118902, 106724,
106722, 82408, 106742, 82404, 82402, 124948, 124946, 118836, 118834,
106612, 106610, 124224, 127664, 129372, 124192, 127640, 129358, 124176,
127628, 124168, 127622, 124164, 124162, 117568, 124336, 127708, 117536,
124312, 127694, 117520, 124300, 117512, 124294, 117508, 117506, 104256,
117680, 124380, 104224, 117656, 124366, 104208, 117644, 104200, 117638,
104196, 104194, 77632, 104368, 117724, 77600, 104344, 117710, 77584,
104332, 77576, 104326, 77572, 77744, 104412, 77720, 104398, 77708, 77702,
77788,
77774, 128672, 129880, 93168, 128656, 129868, 92664, 128648, 129862, 92412,
128644, 128642, 124064, 127576, 129326, 126368, 124048, 129902, 126352,
128716, 127558, 126344, 124036, 126340, 124034, 126338, 117152, 124120,
127598, 121760, 117136, 124108, 121744, 126412, 124102, 121736, 117124,
121732, 117122, 121730, 103328, 117208, 124142, 112544, 103312, 117196,
112528, 121804, 117190, 112520, 103300, 112516, 103298, 112514, 75680,
103384, 117230, 94112, 75664, 103372, 94096, 112588, 103366, 94088, 75652,
94084, 75650, 75736, 103406, 94168, 75724, 94156, 75718, 94150, 75758,
128592, 129836, 91640, 128584, 129830, 91388, 128580, 91262, 128578,
123984, 127532, 126160, 123976, 127526, 126152, 128614, 126148, 123970,
126146, 116944, 124012, 121296, 116936, 124006, 121288, 126182, 121284,
116930, 121282, 102864, 116972, 111568, 102856, 116966, 111560, 121318,
111556, 102850, 111554, 74704, 102892, 92112, 74696, 102886, 92104, 111590,
92100, 74690, 92098, 74732, 92140, 74726, 92134, 128552, 129814, 90876,
128548, 90750, 128546, 123944, 127510, 126056, 128566, 126052, 123938,
126050, 116840, 123958, 121064, 116836, 121060, 116834, 121058, 102632,
116854, 111080, 121078, 111076, 102626, 111074, 74216, 102646, 91112,
74212, 91108, 74210, 91106, 74230, 91126, 128532, 90494, 128530, 123924,
126004, 123922, 126002, 116788, 120948, 116786, 120946, 102516, 110836,
102514, 110834, 73972, 90612, 73970, 90610, 128522, 123914, 125978, 116762,
120890, 102458, 110714, 123552, 127320, 129198, 123536, 127308, 123528,
127302, 123524, 123522, 116128, 123608, 127342, 116112, 123596, 116104,
123590, 116100, 116098, 101280, 116184, 123630, 101264, 116172, 101256,
116166, 101252, 101250, 71584, 101336, 116206, 71568, 101324, 71560,
101318, 71556, 71554, 71640, 101358, 71628, 71622, 71662, 127824, 129452,
79352, 127816, 129446, 79100, 127812, 78974, 127810, 123472, 127276,
124624, 123464, 127270, 124616, 127846, 124612, 123458, 124610, 115920,
123500, 118224, 115912, 123494, 118216, 124646, 118212, 115906, 118210,
100816, 115948, 105424, 100808, 115942, 105416, 118246, 105412, 100802,
105410, 70608, 100844, 79824, 70600, 100838, 79816, 105446, 79812, 70594,
79810, 70636, 79852, 70630, 79846, 129960, 95728, 113404, 129956, 95480,
113278, 129954, 95356, 95294, 127784, 129430, 78588, 128872, 129974, 95996,
78462, 128868, 127778, 95870, 128866, 123432, 127254, 124520, 123428,
126696, 128886, 123426, 126692, 124514, 126690, 115816, 123446, 117992,
115812, 122344, 117988, 115810, 122340, 117986, 122338, 100584, 115830,
104936, 100580, 113640, 104932, 100578, 113636, 104930, 113634, 70120,
100598, 78824, 70116, 96232, 78820, 70114, 96228, 78818, 96226, 70134,
78838, 129940, 94968, 113022, 129938, 94844, 94782, 127764, 78206, 128820,
127762, 95102, 128818, 123412, 124468, 123410, 126580, 124466, 126578,
115764, 117876, 115762, 122100, 117874, 122098, 100468, 104692, 100466,
113140,
104690, 113138, 69876, 78324, 69874, 95220, 78322, 95218, 129930, 94588,
94526, 127754, 128794, 123402, 124442, 126522, 115738, 117818, 121978,
100410, 104570, 112890, 69754, 78074, 94714, 94398, 123216, 127148, 123208,
127142, 123204, 123202, 115408, 123244, 115400, 123238, 115396, 115394,
99792, 115436, 99784, 115430, 99780, 99778, 68560, 99820, 68552, 99814,
68548, 68546, 68588, 68582, 127400, 129238, 72444, 127396, 72318, 127394,
123176, 127126, 123752, 123172, 123748, 123170, 123746, 115304, 123190,
116456, 115300, 116452, 115298, 116450, 99560, 115318, 101864, 99556,
101860, 99554, 101858, 68072, 99574, 72680, 68068, 72676, 68066, 72674,
68086, 72694, 129492, 80632, 105854, 129490, 80508, 80446, 127380, 72062,
127924, 127378, 80766, 127922, 123156, 123700, 123154, 124788, 123698,
124786, 115252, 116340, 115250, 118516, 116338, 118514, 99444, 101620,
99442, 105972, 101618, 105970, 67828, 72180, 67826, 80884, 72178, 80882,
97008, 114044, 96888, 113982, 96828, 96798, 129482, 80252, 130010, 97148,
80190, 97086, 127370, 127898, 128954, 123146, 123674, 124730, 126842,
115226, 116282, 118394, 122618, 99386, 101498, 105722, 114170, 67706,
71930,
80378, 96632, 113854, 96572, 96542, 80062, 96702, 96444, 96414, 96350,
123048, 123044, 123042, 115048, 123062, 115044, 115042, 99048, 115062,
99044, 99042, 67048, 99062, 67044, 67042, 67062, 127188, 68990, 127186,
123028, 123316, 123026, 123314, 114996, 115572, 114994, 115570, 98932,
100084, 98930, 100082, 66804, 69108, 66802, 69106, 129258, 73084, 73022,
127178, 127450, 123018, 123290, 123834, 114970, 115514, 116602, 98874,
99962, 102138, 66682, 68858, 73210, 81272, 106174, 81212, 81182, 72894,
81342, 97648, 114364, 97592, 114334, 97564, 97550, 81084, 97724, 81054,
97694,
97464, 114270, 97436, 97422, 80990, 97502, 97372, 97358, 97326, 114868,
114866, 98676, 98674, 66292, 66290, 123098, 114842, 115130, 98618, 99194,
66170, 67322, 69310, 73404, 73374, 81592, 106334, 81564, 81550, 73310,
81630, 97968, 114524, 97944, 114510, 97932, 97926, 81500, 98012, 81486,
97998, 97880, 114478, 97868, 97862, 81454, 97902, 97836, 97830, 69470,
73564, 73550, 81752, 106414, 81740, 81734, 73518, 81774, 81708, 81702
],
[109536, 120312, 86976, 109040, 120060, 86496, 108792, 119934, 86256,
108668, 86136, 129744, 89056, 110072, 129736, 88560, 109820, 129732, 88312,
109694,
129730, 88188, 128464, 129772, 89592, 128456, 129766, 89340, 128452, 89214,
128450, 125904, 128492, 125896, 128486, 125892, 125890, 120784, 125932,
120776, 125926, 120772, 120770, 110544, 120812, 110536, 120806, 110532,
84928, 108016, 119548, 84448, 107768, 119422, 84208, 107644, 84088, 107582,
84028, 129640, 85488, 108284, 129636, 85240, 108158, 129634, 85116, 85054,
128232, 129654, 85756, 128228, 85630, 128226, 125416, 128246, 125412,
125410, 119784, 125430, 119780, 119778, 108520, 119798, 108516, 108514,
83424, 107256, 119166, 83184, 107132, 83064, 107070, 83004, 82974,
129588, 83704, 107390, 129586, 83580, 83518, 128116, 83838, 128114, 125172,
125170, 119284, 119282, 107508, 107506, 82672, 106876, 82552, 106814,
82492, 82462, 129562, 82812, 82750, 128058, 125050, 119034, 82296, 106686,
82236, 82206, 82366, 82108, 82078, 76736, 103920, 117500, 76256, 103672,
117374, 76016, 103548, 75896, 103486, 75836, 129384, 77296, 104188, 129380,
77048, 104062, 129378, 76924, 76862, 127720, 129398, 77564, 127716, 77438,
127714, 124392, 127734, 124388, 124386, 117736, 124406, 117732, 117730,
104424, 117750, 104420, 104418, 112096, 121592, 126334, 92608,
111856, 121468, 92384, 111736, 121406, 92272, 111676, 92216, 111646, 92188,
75232, 103160, 117118, 93664, 74992, 103036, 93424, 112252, 102974, 93304,
74812, 93244, 74782, 93214, 129332, 75512, 103294, 129908, 129330, 93944,
75388, 129906, 93820, 75326, 93758, 127604, 75646, 128756, 127602, 94078,
128754, 124148, 126452, 124146, 126450, 117236, 121844, 117234, 121842,
103412, 103410, 91584, 111344, 121212, 91360, 111224, 121150, 91248,
111164, 91192, 111134, 91164, 91150, 74480, 102780, 91888, 74360, 102718,
91768, 111422, 91708, 74270, 91678, 129306, 74620, 129850, 92028,
74558, 91966, 127546, 128634, 124026, 126202, 116986, 121338, 102906,
90848, 110968, 121022, 90736, 110908, 90680, 110878, 90652, 90638, 74104,
102590, 91E3, 74044, 90940, 74014, 90910, 74174, 91070, 90480, 110780,
90424, 110750, 90396, 90382, 73916, 90556, 73886, 90526, 90296, 110686,
90268, 90254, 73822, 90334, 90204, 90190, 71136, 101112, 116094, 70896,
100988, 70776, 100926, 70716, 70686, 129204, 71416, 101246, 129202, 71292,
71230, 127348, 71550, 127346, 123636, 123634, 116212, 116210, 101364,
101362, 79296, 105200, 118140, 79072, 105080, 118078, 78960, 105020, 78904,
104990, 78876, 78862, 70384, 100732, 79600, 70264, 100670, 79480, 105278,
79420, 70174, 79390, 129178, 70524, 129466, 79740, 70462, 79678, 127290,
127866, 123514, 124666, 115962, 118266, 100858, 113376, 122232, 126654,
95424, 113264, 122172, 95328, 113208, 122142, 95280, 113180, 95256, 113166,
95244, 78560, 104824, 117950, 95968, 78448, 104764, 95856, 113468, 104734,
95800, 78364, 95772, 78350, 95758, 70008, 100542, 78712, 69948, 96120,
78652, 69918, 96060, 78622, 96030, 70078, 78782, 96190, 94912, 113008,
122044, 94816, 112952, 122014, 94768, 112924, 94744, 112910, 94732,
94726, 78192, 104636, 95088, 78136, 104606, 95032, 113054, 95004, 78094,
94990, 69820, 78268, 69790, 95164, 78238, 95134, 94560, 112824, 121950,
94512, 112796, 94488, 112782, 94476, 94470, 78008, 104542, 94648, 77980,
94620, 77966, 94606, 69726, 78046, 94686, 94384, 112732, 94360, 112718,
94348, 94342, 77916, 94428, 77902, 94414, 94296, 112686, 94284, 94278,
77870, 94318, 94252, 94246, 68336, 99708, 68216, 99646, 68156, 68126,
68476, 68414, 127162, 123258, 115450, 99834, 72416, 101752, 116414, 72304,
101692, 72248, 101662, 72220, 72206, 67960, 99518, 72568, 67900, 72508,
67870,
72478, 68030, 72638, 80576, 105840, 118460, 80480, 105784, 118430, 80432,
105756, 80408, 105742, 80396, 80390, 72048, 101564, 80752, 71992, 101534,
80696, 71964, 80668, 71950, 80654, 67772, 72124, 67742, 80828, 72094,
80798, 114016, 122552, 126814, 96832, 113968, 122524, 96800, 113944,
122510, 96784, 113932, 96776, 113926, 96772, 80224, 105656, 118366, 97120,
80176, 105628, 97072, 114076, 105614, 97048, 80140, 97036, 80134, 97030,
71864, 101470, 80312, 71836, 97208, 80284, 71822, 97180, 80270, 97166,
67678, 71902, 80350, 97246, 96576, 113840, 122460, 96544, 113816, 122446,
96528, 113804, 96520, 113798, 96516, 96514, 80048, 105564, 96688, 80024,
105550, 96664, 113870, 96652, 80006, 96646, 71772, 80092, 71758, 96732,
80078, 96718, 96416, 113752, 122414, 96400, 113740, 96392, 113734, 96388,
96386, 79960, 105518, 96472, 79948, 96460, 79942, 96454, 71726, 79982,
96494, 96336, 113708, 96328, 113702, 96324, 96322, 79916, 96364, 79910,
96358, 96296, 113686, 96292, 96290, 79894, 96310, 66936, 99006, 66876,
66846, 67006, 68976, 100028, 68920, 99998, 68892, 68878, 66748, 69052,
66718, 69022, 73056, 102072, 116574, 73008, 102044, 72984, 102030, 72972,
72966,
68792, 99934, 73144, 68764, 73116, 68750, 73102, 66654, 68830, 73182,
81216, 106160, 118620, 81184, 106136, 118606, 81168, 106124, 81160, 106118,
81156, 81154, 72880, 101980, 81328, 72856, 101966, 81304, 106190, 81292,
72838, 81286, 68700, 72924, 68686, 81372, 72910, 81358, 114336, 122712,
126894, 114320, 122700, 114312, 122694, 114308, 114306, 81056, 106072,
118574, 97696, 81040, 106060, 97680, 114380, 106054, 97672, 81028, 97668,
81026, 97666, 72792, 101934, 81112, 72780, 97752, 81100, 72774, 97740,
81094, 97734, 68654, 72814, 81134, 97774, 114256, 122668, 114248, 122662,
114244, 114242, 80976, 106028, 97488, 80968, 106022, 97480, 114278, 97476,
80962, 97474, 72748, 81004, 72742, 97516, 80998, 97510, 114216, 122646,
114212, 114210, 80936, 106006, 97384, 80932, 97380, 80930, 97378, 72726,
80950, 97398, 114196, 114194, 80916, 97332, 80914, 97330, 66236, 66206,
67256, 99166, 67228, 67214, 66142, 67294, 69296, 100188, 69272, 100174,
69260, 69254, 67164, 69340, 67150, 69326, 73376, 102232, 116654, 73360,
102220, 73352, 102214, 73348, 73346, 69208, 100142, 73432, 102254, 73420,
69190, 73414, 67118, 69230, 73454, 106320, 118700, 106312, 118694, 106308,
106306, 73296, 102188, 81616, 106348, 102182, 81608, 73284, 81604, 73282,
81602, 69164, 73324, 69158, 81644, 73318, 81638, 122792, 126934, 122788,
122786, 106280, 118678, 114536, 106276, 114532, 106274, 114530, 73256,
102166, 81512, 73252, 98024, 81508, 73250, 98020, 81506, 98018, 69142,
73270, 81526, 98038, 122772, 122770, 106260, 114484, 106258, 114482, 73236,
81460, 73234, 97908, 81458, 97906, 122762, 106250, 114458, 73226, 81434,
97850, 66396, 66382, 67416, 99246, 67404, 67398, 66350, 67438, 69456,
100268, 69448, 100262, 69444, 69442, 67372, 69484, 67366, 69478, 102312,
116694, 102308, 102306, 69416, 100246, 73576, 102326, 73572, 69410, 73570,
67350, 69430, 73590, 118740, 118738, 102292, 106420, 102290, 106418, 69396,
73524, 69394, 81780, 73522, 81778, 118730, 102282, 106394, 69386, 73498,
81722, 66476, 66470, 67496, 99286, 67492, 67490, 66454, 67510, 100308,
100306, 67476, 69556, 67474, 69554, 116714
]
],
rsfactors: [
[27, 917],
[522, 568, 723, 809],
[237, 308, 436, 284, 646, 653, 428, 379],
[274, 562, 232, 755, 599, 524, 801, 132, 295, 116, 442, 428, 295, 42, 176,
65
],
[361, 575, 922, 525, 176, 586, 640, 321, 536, 742, 677, 742, 687, 284, 193,
517, 273, 494,
263, 147, 593, 800, 571, 320, 803, 133, 231, 390, 685, 330, 63, 410
],
[539, 422, 6, 93, 862, 771, 453, 106, 610, 287, 107, 505, 733, 877, 381,
612, 723, 476, 462, 172, 430, 609, 858, 822, 543, 376, 511, 400, 672, 762,
283, 184, 440, 35, 519, 31, 460, 594, 225, 535, 517, 352, 605, 158, 651,
201, 488, 502, 648, 733, 717, 83, 404, 97, 280, 771, 840, 629, 4, 381, 843,
623, 264, 543
],
[521, 310, 864, 547, 858, 580, 296, 379, 53, 779, 897, 444, 400, 925, 749,
415, 822, 93, 217, 208, 928, 244, 583, 620, 246, 148, 447, 631, 292, 908,
490, 704, 516, 258, 457, 907, 594, 723, 674, 292, 272, 96, 684, 432, 686,
606, 860, 569, 193, 219,
129, 186, 236, 287, 192, 775, 278, 173, 40, 379, 712, 463, 646, 776, 171,
491, 297, 763, 156, 732, 95, 270, 447, 90, 507, 48, 228, 821, 808, 898,
784, 663, 627, 378, 382, 262, 380, 602, 754, 336, 89, 614, 87, 432, 670,
616, 157, 374, 242, 726, 600, 269, 375, 898, 845, 454, 354, 130, 814, 587,
804, 34, 211, 330, 539, 297, 827, 865, 37, 517, 834, 315, 550, 86, 801, 4,
108, 539
],
[524, 894, 75, 766, 882, 857, 74, 204, 82, 586, 708, 250, 905, 786, 138,
720, 858, 194, 311, 913, 275, 190, 375, 850, 438, 733, 194, 280, 201, 280,
828, 757, 710, 814, 919, 89, 68, 569, 11, 204, 796, 605, 540, 913, 801,
700, 799, 137, 439, 418, 592,
668, 353, 859, 370, 694, 325, 240, 216, 257, 284, 549, 209, 884, 315, 70,
329, 793, 490, 274, 877, 162, 749, 812, 684, 461, 334, 376, 849, 521, 307,
291, 803, 712, 19, 358, 399, 908, 103, 511, 51, 8, 517, 225, 289, 470, 637,
731, 66, 255, 917, 269, 463, 830, 730, 433, 848, 585, 136, 538, 906, 90, 2,
290, 743, 199, 655, 903, 329, 49, 802, 580, 355, 588, 188, 462, 10, 134,
628, 320, 479, 130, 739, 71, 263, 318, 374, 601, 192, 605, 142, 673, 687,
234, 722, 384, 177, 752, 607, 640, 455, 193, 689, 707, 805, 641, 48, 60,
732, 621, 895, 544, 261, 852, 655, 309, 697, 755, 756, 60, 231, 773, 434,
421, 726, 528, 503, 118, 49, 795, 32,
144, 500, 238, 836, 394, 280, 566, 319, 9, 647, 550, 73, 914, 342, 126, 32,
681, 331, 792, 620, 60, 609, 441, 180, 791, 893, 754, 605, 383, 228, 749,
760, 213, 54, 297, 134, 54, 834, 299, 922, 191, 910, 532, 609, 829, 189,
20, 167, 29, 872, 449, 83, 402, 41, 656, 505, 579, 481, 173, 404, 251, 688,
95, 497, 555, 642, 543, 307, 159, 924, 558, 648, 55, 497, 10
],
[352, 77, 373, 504, 35, 599, 428, 207, 409, 574, 118, 498, 285, 380, 350,
492, 197, 265, 920, 155, 914, 299, 229, 643, 294, 871, 306, 88, 87, 193,
352, 781, 846, 75, 327, 520, 435, 543, 203, 666, 249, 346, 781, 621, 640,
268, 794, 534, 539, 781, 408, 390, 644, 102, 476,
499, 290, 632, 545, 37, 858, 916, 552, 41, 542, 289, 122, 272, 383, 800,
485, 98, 752, 472, 761, 107, 784, 860, 658, 741, 290, 204, 681, 407, 855,
85, 99, 62, 482, 180, 20, 297, 451, 593, 913, 142, 808, 684, 287, 536, 561,
76, 653, 899, 729, 567, 744, 390, 513, 192, 516, 258, 240, 518, 794, 395,
768, 848, 51, 610, 384, 168, 190, 826, 328, 596, 786, 303, 570, 381, 415,
641, 156, 237, 151, 429, 531, 207, 676, 710, 89, 168, 304, 402, 40, 708,
575, 162, 864, 229, 65, 861, 841, 512, 164, 477, 221, 92, 358, 785, 288,
357, 850, 836, 827, 736, 707, 94, 8, 494, 114, 521, 2, 499, 851, 543, 152,
729, 771, 95, 248, 361, 578, 323, 856,
797, 289, 51, 684, 466, 533, 820, 669, 45, 902, 452, 167, 342, 244, 173,
35, 463, 651, 51, 699, 591, 452, 578, 37, 124, 298, 332, 552, 43, 427, 119,
662, 777, 475, 850, 764, 364, 578, 911, 283, 711, 472, 420, 245, 288, 594,
394, 511, 327, 589, 777, 699, 688, 43, 408, 842, 383, 721, 521, 560, 644,
714, 559, 62, 145, 873, 663, 713, 159, 672, 729, 624, 59, 193, 417, 158,
209, 563, 564, 343, 693, 109, 608, 563, 365, 181, 772, 677, 310, 248, 353,
708, 410, 579, 870, 617, 841, 632, 860, 289, 536, 35, 777, 618, 586, 424,
833, 77, 597, 346, 269, 757, 632, 695, 751, 331, 247, 184, 45, 787, 680,
18, 66, 407, 369, 54, 492, 228, 613,
830, 922, 437, 519, 644, 905, 789, 420, 305, 441, 207, 300, 892, 827, 141,
537, 381, 662, 513, 56, 252, 341, 242, 797, 838, 837, 720, 224, 307, 631,
61, 87, 560, 310, 756, 665, 397, 808, 851, 309, 473, 795, 378, 31, 647,
915, 459, 806, 590, 731, 425, 216, 548, 249, 321, 881, 699, 535, 673, 782,
210, 815, 905, 303, 843, 922, 281, 73, 469, 791, 660, 162, 498, 308, 155,
422, 907, 817, 187, 62, 16, 425, 535, 336, 286, 437, 375, 273, 610, 296,
183, 923, 116, 667, 751, 353, 62, 366, 691, 379, 687, 842, 37, 357, 720,
742, 330, 5, 39, 923, 311, 424, 242, 749, 321, 54, 669, 316, 342, 299, 534,
105, 667, 488, 640, 672, 576, 540, 316,
486, 721, 610, 46, 656, 447, 171, 616, 464, 190, 531, 297, 321, 762, 752,
533, 175, 134, 14, 381, 433, 717, 45, 111, 20, 596, 284, 736, 138, 646,
411, 877, 669, 141, 919, 45, 780, 407, 164, 332, 899, 165, 726, 600, 325,
498, 655, 357, 752, 768, 223, 849, 647, 63, 310, 863, 251, 366, 304, 282,
738, 675, 410, 389, 244, 31, 121, 303, 263
]
],
init: function(a, b, c) {
a = unescape(encodeURIComponent(a));
b = b || -1;
c = c || 2;
this.barcode_array = {};
if ("" === a) return !1;
sequence = this.getInputSequences(a);
codewords = [];
for (var d = 0; d < sequence.length; d++) a = this.getCompaction(sequence[d]
[0], sequence[d][1], !0), codewords = codewords.concat(a);
900 == codewords[0] && codewords.shift();
a = codewords.length;
if (925 < a) return !1;
b = this.getErrorCorrectionLevel(b, a);
var e = 2 << b,
d = a + e + 1;
a = Math.round((Math.sqrt(4761 + 68 * c * this.ROWHEIGHT * d) - 69) / 34);
1 > a ? a = 1 : 30 < a && (a = 30);
var g = Math.ceil(d / a),
f = a * g;
if (3 > g || 90 < g) 3 > g ? g = 3 : 90 < g && (g = 90), a = Math.ceil(f /
g), f = a * g;
928 < f && (Math.abs(c - 15.40625) < Math.abs(c - 272 / 58) ? (a = 29, g =
32) : (a = 16, g = 58), f = 928);
c = f - d;
0 < c && (f - g == d ? (--g, f -= g) : codewords = codewords.concat(this._array_fill(
0, c, 900)));
codewords.unshift(f -
e);
c = this.getErrorCorrection(codewords, b);
codewords = codewords.concat(c);
c = this._str_repeat("0", this.QUIETH) + this.start_pattern;
e = this.stop_pattern + "" + this._str_repeat("0", this.QUIETH);
this.barcode_array.num_rows = g * this.ROWHEIGHT + 2 * this.QUIETV;
this.barcode_array.num_cols = 17 * (a + 2) + 35 + 2 * this.QUIETH;
this.barcode_array.bcode = [];
var h;
if (0 < this.QUIETV)
for (h = this._array_fill(0, this.barcode_array.num_cols, 0), d = 0; d <
this.QUIETV; ++d) this.barcode_array.bcode.push(h);
for (var k, l = f = d = 0; l < g; ++l) {
var m = c;
switch (f) {
case 0:
k =
30 * this._intval(l / 3) + this._intval((g - 1) / 3);
break;
case 1:
k = 30 * this._intval(l / 3) + 3 * b + (g - 1) % 3;
break;
case 2:
k = 30 * this._intval(l / 3) + (a - 1)
}
for (var m = m + this._sprintf("%17b", this.clusters[f][k]), n = 0; n < a; ++
n) m += this._sprintf("%17b", this.clusters[f][codewords[d]]), ++d;
switch (f) {
case 0:
k = 30 * this._intval(l / 3) + (a - 1);
break;
case 1:
k = 30 * this._intval(l / 3) + this._intval((g - 1) / 3);
break;
case 2:
k = 30 * this._intval(l / 3) + 3 * b + (g - 1) % 3
}
m += this._sprintf("%17b", this.clusters[f][k]);
m += e;
m = this._preg_split("//", m, -1, "PREG_SPLIT_NO_EMPTY");
for (n = 0; n < this.ROWHEIGHT; ++n) this.barcode_array.bcode.push(m);
++f;
2 < f && (f = 0)
}
if (0 < this.QUIETV)
for (d = 0; d < this.QUIETV; ++d) this.barcode_array.bcode.push(h)
},
getInputSequences: function(a) {
var b = [],
c = [],
c = a.match(/([0-9]{13,44})/g);
if (null == c) c = [];
else
for (var d = 0; d < c.length; d++) {
var e = a.indexOf(c[d]);
c[d] = [c[d], e]
}
c.push(["", a.length]);
for (var g = e = 0; g < c.length; g++) {
var f = c[g],
h = f[0].length;
if (0 < f[1]) {
var k = a.substr(e, f[1] - e),
l = [],
l = k.match(/([\x09\x0a\x0d\x20-\x7e]{5,})/g);
if (null == l) l = [];
else
for (d =
0; d < l.length; d++) e = k.indexOf(l[d]), l[d] = [l[d], e];
l.push(["", k.length]);
for (var m = 0, d = 0; d < l.length; d++) {
var e = l[d],
n = e[0].length;
0 < e[1] && (m = k.substr(m, e[1] - m), 0 < m.length && (1 == m.length &&
0 < b.length && 900 == b[b.length - 1][0] ? b.push([913, m]) : 0 == m
.length % 6 ? b.push([924, m]) : b.push([901, m])));
0 < n && b.push([900, e[0]]);
m = e[1] + n
}
}
0 < h && b.push([902, f[0]]);
e = f[1] + h
}
return b
},
getCompaction: function(a, b, c) {
c = c || !0;
var d = [];
switch (a) {
case 900:
for (var e = 0, g = [], f = b.length, h = 0; h < f; ++h) {
var k = this._ord(b.charAt(h)),
l;
if (!1 !==
(l = this._array_search(k, this.textsubmodes[e]))) g.push(l);
else
for (var m = 0; 4 > m; ++m)
if (m != e && !1 !== (l = this._array_search(k, this.textsubmodes[m]))) {
(h + 1 == f || h + 1 < f && !1 !== this._array_search(this._ord(b.charAt(
h + 1)), this.textsubmodes[e])) && (3 == m || 0 == m && 1 == e) ? 3
== m ? g.push(29) : g.push(27): (g = g.concat(this.textlatch["" + e +
m]), e = m);
g.push(l);
break
}
}
b = g.length;
0 != b % 2 && (g.push(29), ++b);
for (h = 0; h < b; h += 2) d.push(30 * parseInt(g[h]) + parseInt(g[h + 1]));
break;
case 901:
case 924:
for (; 0 < (f = b.length);) {
6 < f ? (g = b.substring(6),
b = b.substring(0, 6), e = 6) : (g = "", e = b.length);
if (6 == e) {
h = bcmul("" + this._ord(b.charAt(0)), "1099511627776");
h = bcadd(h, bcmul("" + this._ord(b.charAt(1)), "4294967296"));
h = bcadd(h, bcmul("" + this._ord(b.charAt(2)), "16777216"));
h = bcadd(h, bcmul("" + this._ord(b.charAt(3)), "65536"));
h = bcadd(h, bcmul("" + this._ord(b.charAt(4)), "256"));
h = bcadd(h, "" + this._ord(b.charAt(5)));
do b = this._my_bcmod(h, "900"), h = bcdiv(h, "900"), d.unshift(b); while (
"0" != h)
} else
for (h = 0; h < e; ++h) d.push(this._ord(b.charAt(h)));
b = g
}
break;
case 902:
for (; 0 <
(f = b.length);) {
44 < f ? (g = b.substring(44), b = b.substring(0, 44)) : g = "";
h = "1" + b;
do b = this._my_bcmod(h, "900"), h = bcdiv(h, "900"), d.unshift(b); while (
"0" != h);
b = g
}
break;
case 913:
d.push(this._ord(b))
}
c && d.unshift(a);
return d
},
getErrorCorrectionLevel: function(a, b) {
for (var c = 8, d = 928 - b; 0 < c && !(d >= 2 << a);) --c;
if (0 > a || 8 < a) a = 41 > b ? 2 : 161 > b ? 3 : 321 > b ? 4 : 864 > b ?
5 : c;
a > c && (a = c);
return a
},
getErrorCorrection: function(a, b) {
for (var c = this.rsfactors[b], d = 2 << b, e = d - 1, d = this._array_fill(
0, d, 0), g = 0; g < a.length; g++) {
for (var f = (a[g] + d[e]) %
929, h = e; 0 < h; --h) {
var k = f * c[h] % 929,
k = 929 - k;
d[h] = (d[h - 1] + k) % 929
}
k = f * c[0] % 929;
k = 929 - k;
d[0] = k % 929
}
for (h = 0; h < d.length; h++) 0 != d[h] && (d[h] = 929 - d[h]);
return d = d.reverse()
},
getBarcodeArray: function() {
return this.barcode_array
},
_array_fill: function(a, b, c) {
var d, e = {};
if (0 == a) {
a = [];
for (d = 0; d < b; d++) a.push(c);
return a
}
if (!isNaN(a) && !isNaN(b))
for (d = 0; d < b; d++) e[d + a] = c;
return e
},
_str_repeat: function(a, b) {
for (var c = "";;)
if (b & 1 && (c += a), b >>= 1) a += a;
else break;
return c
},
_intval: function(a, b) {
var c;
c = typeof a;
return "boolean" ===
c ? +a : "string" === c ? (c = parseInt(a, b || 10), isNaN(c) || !isFinite(
c) ? 0 : c) : "number" === c && isFinite(a) ? a | 0 : 0
},
_sprintf: function() {
var a = arguments,
b = 0,
c = function(a, b, c, d) {
c || (c = " ");
b = a.length >= b ? "" : Array(1 + b - a.length >>> 0).join(c);
return d ? a + b : b + a
},
d = function(a, b, d, e, l, m) {
var n = e - a.length;
0 < n && (a = d || !l ? c(a, e, m, d) : a.slice(0, b.length) + c("", n,
"0", !0) + a.slice(b.length));
return a
},
e = function(a, b, e, k, l, m, n) {
a >>>= 0;
e = e && a && {
2: "0b",
8: "0",
16: "0x"
}[b] || "";
a = e + c(a.toString(b), m || 0, "0", !1);
return d(a, e, k, l, n)
};
return a[b++].replace(
/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,
function(g, f, h, k, l, m, n) {
var q, s;
if ("%%" == g) return "%";
var p = !1;
s = "";
var r = l = !1;
q = " ";
for (var t = h.length, u = 0; h && u < t; u++) switch (h.charAt(u)) {
case " ":
s = " ";
break;
case "+":
s = "+";
break;
case "-":
p = !0;
break;
case "'":
q = h.charAt(u + 1);
break;
case "0":
l = !0;
break;
case "#":
r = !0
}
k = k ? "*" == k ? +a[b++] : "*" == k.charAt(0) ? +a[k.slice(1, -1)] : +
k : 0;
0 > k && (k = -k, p = !0);
if (!isFinite(k)) throw Error("sprintf: (minimum-)width must be finite");
m = m ? "*" == m ? +a[b++] : "*" == m.charAt(0) ? +a[m.slice(1, -1)] : +
m : -1 < "fFeE".indexOf(n) ? 6 : "d" == n ? 0 :
void 0;
f = f ? a[f.slice(0, -1)] : a[b++];
switch (n) {
case "s":
return n = String(f), null != m && (n = n.slice(0, m)), d(n, "", p, k,
l, q);
case "c":
return n = String.fromCharCode(+f), null != m && (n = n.slice(0, m)),
d(n, "", p, k, l, void 0);
case "b":
return e(f, 2, r, p, k, m, l);
case "o":
return e(f, 8, r, p, k, m, l);
case "x":
return e(f, 16, r, p, k, m, l);
case "X":
return e(f, 16, r, p, k, m, l).toUpperCase();
case "u":
return e(f, 10, r, p, k, m, l);
case "i":
case "d":
return q = +f || 0, q = Math.round(q - q % 1), g = 0 > q ? "-" : s, f =
g + c(String(Math.abs(q)), m, "0", !1), d(f, g, p, k, l);
case "e":
case "E":
case "f":
case "F":
case "g":
case "G":
return q = +f, g = 0 > q ? "-" : s, s = ["toExponential", "toFixed",
"toPrecision"
]["efg".indexOf(n.toLowerCase())], n = ["toString", "toUpperCase"][
"eEfFgG".indexOf(n) % 2
], f = g + Math.abs(q)[s](m), d(f, g, p, k, l)[n]();
default:
return g
}
})
},
_preg_split: function(a, b, c, d) {
c = c || 0;
d = d || "";
var e, g = [],
f = 0,
h = 0,
k = !1,
l = !1,
m = !1,
n = {},
l = 0;
e = /^\/(.*)\/\w*$/.exec(a.toString())[1];
h = /^\/.*\/(\w*)$/.exec(a.toString())[1];
a = a.global && "string" !== typeof a ? a : RegExp(e, h + (-1 !== h.indexOf(
"g") ? "" : "g"));
n = {
PREG_SPLIT_NO_EMPTY: 1,
PREG_SPLIT_DELIM_CAPTURE: 2,
PREG_SPLIT_OFFSET_CAPTURE: 4
};
if ("number" !== typeof d) {
d = [].concat(d);
for (h = 0; h < d.length; h++) n[d[h]] && (l |= n[d[h]]);
d = l
}
k = d & n.PREG_SPLIT_NO_EMPTY;
l = d & n.PREG_SPLIT_DELIM_CAPTURE;
m = d & n.PREG_SPLIT_OFFSET_CAPTURE;
d = function(a, b) {
if (!k || a.length) m && (a = [a, b]), g.push(a)
};
if (!e) {
e = b.split("");
for (h = 0; h < e.length; h++) d(e[h], h);
return g
}
for (;
(e = a.exec(b)) && 1 !== c;) {
d(b.slice(f, e.index), f);
f = e.index + e[0].length;
if (l)
for (n = Array.prototype.slice.call(e), h = 1; h < n.length; h++) void 0 !==
e[h] && d(e[h], e.index + e[0].indexOf(e[h]));
c--
}
d(b.slice(f, b.length),
f);
return g
},
_ord: function(a) {
return a.charCodeAt(0)
},
_array_search: function(a, b, c) {
var d = !!c,
e = "";
if (b && "object" === typeof b && b.change_key_case) return b.search(a, c);
if ("object" === typeof a && a.exec) {
d || (a = RegExp(a.source, "i" + (a.global ? "g" : "") + (a.multiline ?
"m" : "") + (a.sticky ? "y" : "")));
for (e in b)
if (a.test(b[e])) return e;
return !1
}
for (e in b)
if (d && b[e] === a || !d && b[e] == a) return e;
return !1
},
_my_bcmod: function(a, b) {
var c = "";
do c = parseInt(c + "" + a.substring(0, 5)), a = a.substring(5), c %= b; while (
a.length);
return parseInt(c)
}
};