📄 b.java
字号:
{
a2 = c1.a();
break label0;
}
}
a2 = c1.b();
}
int k = (new jp.sourceforge.qrcode.geom.c(a1, a2)).e();
int ai[];
(ai = new int[2])[0] = (a2.b - a1.b << jp.sourceforge.qrcode.reader.b.a) / k;
ai[1] = (a2.a - a1.a << jp.sourceforge.qrcode.reader.b.a) / k;
return ai;
}
private static a[] b(jp.sourceforge.qrcode.geom.c ac[])
throws jp.sourceforge.qrcode.exception.b
{
Vector vector = new Vector();
for(int i = 0; i < ac.length - 1; i++)
{
jp.sourceforge.qrcode.geom.c c1 = ac[i];
for(int k = i + 1; k < ac.length; k++)
{
jp.sourceforge.qrcode.geom.c c2 = ac[k];
if(!jp.sourceforge.qrcode.geom.c.b(c1, c2))
continue;
int l;
int i1;
if(c1.c())
{
l = c1.d().a;
i1 = c2.d().b;
} else
{
l = c2.d().a;
i1 = c1.d().b;
}
vector.addElement(new a(l, i1));
}
}
a aa[] = new a[vector.size()];
for(int j = 0; j < aa.length; j++)
aa[j] = (a)vector.elementAt(j);
if(aa.length == 3)
return aa;
else
throw new jp.sourceforge.qrcode.exception.b();
}
private static a[] a(a aa[], int ai[])
{
a aa1[] = new a[3];
int i;
switch(i = a(ai))
{
case 1: // '\001'
aa1[1] = a(aa, 1, 2);
aa1[2] = a(aa, 2, 4);
break;
case 2: // '\002'
aa1[1] = a(aa, 2, 4);
aa1[2] = a(aa, 8, 4);
break;
case 3: // '\003'
aa1[1] = a(aa, 4, 8);
aa1[2] = a(aa, 1, 8);
break;
case 4: // '\004'
aa1[1] = a(aa, 8, 1);
aa1[2] = a(aa, 2, 1);
break;
}
for(int j = 0; j < aa.length; j++)
if(!aa[j].a(aa1[1]) && !aa[j].a(aa1[2]))
aa1[0] = aa[j];
return aa1;
}
private static int a(int ai[])
{
int i = ai[0];
int j = ai[1];
if(i >= 0 && j > 0)
return 1;
if(i > 0 && j <= 0)
return 2;
if(i <= 0 && j < 0)
return 3;
return i >= 0 || j < 0 ? 0 : 4;
}
private static a a(a aa[], int i, int j)
{
new a();
a a1 = null;
int k = i != 1 && j != 1 ? 0x7fffffff : 0;
int l = i != 2 && j != 2 ? 0x7fffffff : 0;
a1 = new a(k, l);
for(int i1 = 0; i1 < aa.length; i1++)
switch(i)
{
case 3: // '\003'
case 5: // '\005'
case 6: // '\006'
case 7: // '\007'
default:
break;
case 1: // '\001'
if(a1.a < aa[i1].a)
{
a1 = aa[i1];
break;
}
if(a1.a != aa[i1].a)
break;
if(j == 2)
{
if(a1.b < aa[i1].b)
a1 = aa[i1];
break;
}
if(a1.b > aa[i1].b)
a1 = aa[i1];
break;
case 2: // '\002'
if(a1.b < aa[i1].b)
{
a1 = aa[i1];
break;
}
if(a1.b != aa[i1].b)
break;
if(j == 1)
{
if(a1.a < aa[i1].a)
a1 = aa[i1];
break;
}
if(a1.a > aa[i1].a)
a1 = aa[i1];
break;
case 4: // '\004'
if(a1.a > aa[i1].a)
{
a1 = aa[i1];
break;
}
if(a1.a != aa[i1].a)
break;
if(j == 2)
{
if(a1.b < aa[i1].b)
a1 = aa[i1];
break;
}
if(a1.b > aa[i1].b)
a1 = aa[i1];
break;
case 8: // '\b'
if(a1.b > aa[i1].b)
{
a1 = aa[i1];
break;
}
if(a1.b != aa[i1].b)
break;
if(j == 1)
{
if(a1.a < aa[i1].a)
a1 = aa[i1];
break;
}
if(a1.a > aa[i1].a)
a1 = aa[i1];
break;
}
return a1;
}
private static int[] a(boolean aflag[][], a aa[])
{
int ai[] = new int[3];
for(int i = 0; i < 3; i++)
{
boolean flag = false;
int l = aa[i].b;
int j;
for(j = aa[i].a; j >= 0; j--)
{
if(!aflag[j][l] || aflag[j - 1][l])
continue;
if(flag)
break;
flag = true;
}
flag = false;
int k;
for(k = aa[i].a; k < aflag.length; k++)
{
if(!aflag[k][l] || aflag[k + 1][l])
continue;
if(flag)
break;
flag = true;
}
ai[i] = (k - j) + 1;
}
return ai;
}
private static int b(a aa[], int ai[])
{
int i = jp.sourceforge.qrcode.reader.b.a;
int j = (new jp.sourceforge.qrcode.geom.c(aa[0], aa[1])).e() << i;
int k = (ai[0] + ai[1] << i) / 14;
int l = (j / k - 10) / 4;
if((j / k - 10) % 4 >= 2)
l++;
return l;
}
private static int a(a aa[], int ai[], int ai1[], boolean aflag[][])
throws e, d
{
boolean aflag1[] = new boolean[18];
a aa1[] = new a[18];
int i1 = ai[0];
int j1 = ai[1];
jp.sourceforge.qrcode.geom.b b1;
(b1 = new jp.sourceforge.qrcode.geom.b(i1, j1, ai1[0])).d = aa[1];
for(int k1 = 0; k1 < 6; k1++)
{
for(int i2 = 0; i2 < 3; i2++)
{
int i = b1.a(i2 - 7, 0).a;
int k = b1.a(0, k1 - 3).b;
aflag1[i2 + k1 * 3] = aflag[i][k];
aa1[i2 + k1 * 3] = new a(i, k);
}
}
int l1;
try
{
l1 = a(aflag1);
}
catch(c c1)
{
b1.d = aa[2];
b1.c = ai1[1];
for(int j2 = 0; j2 < 6; j2++)
{
for(int k2 = 0; k2 < 3; k2++)
{
int j = b1.a(j2 - 3, 0).a;
int l = b1.a(0, k2 - 7).b;
aflag1[k2 + j2 * 3] = aflag[j][l];
aa1[j2 + k2 * 3] = new a(j, l);
}
}
try
{
l1 = a(aflag1);
}
catch(c c2)
{
c1.printStackTrace();
throw c2;
}
}
return l1;
}
private static int a(boolean aflag[])
throws e
{
int i = 0;
int j = 0;
do
{
if(j >= a.length)
break;
i = 0;
for(int k = 0; k < 18; k++)
if(aflag[k] ^ ((a[j] >> k) % 2 == 1))
i++;
if(i <= 3)
break;
j++;
} while(true);
if(i <= 3)
return 7 + j;
else
throw new e();
}
static final int a[] = {
31892, 34236, 39577, 42195, 48118, 51042, 55367, 58893, 63784, 0x10b78,
0x1145d, 0x12a17, 0x13532, 0x149a6, 0x15683, 0x168c9, 0x177ec, 0x18ec4, 0x191e1, 0x1afab,
0x1b08e, 0x1cc1a, 0x1d33f, 0x1ed75, 0x1f250, 0x209d5, 0x216f0, 0x228ba, 0x2379f, 0x24b0b,
0x2542e, 0x26a64, 0x27541, 0x28c69
};
a b[];
int c;
int d[];
int e;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -