* udevd on very large systems: again
@ 2007-05-01 23:42 George Beshers
2007-05-02 19:37 ` Kay Sievers
` (7 more replies)
0 siblings, 8 replies; 9+ messages in thread
From: George Beshers @ 2007-05-01 23:42 UTC (permalink / raw)
To: linux-hotplug
[-- Attachment #1: Type: text/plain, Size: 388 bytes --]
After some testing the following patch seems safe for dealing with computers
with more than 500 processors. It occurred to me that it might be
easier and
just as useful to note when udev is running on a large computer (e.g., >= 8p
and >= 16Gb of memory) and simply not worry about throttling at that point.
The patch should apply cleanly against udev-110.
Comments welcome.
George
[-- Attachment #2: patch --]
[-- Type: text/plain, Size: 2344 bytes --]
diff -Naur udev-110.Orig/udevd.c udev-110.new/udevd.c
--- udev-110.Orig/udevd.c 2007-05-01 08:33:39.000000000 -0400
+++ udev-110.new/udevd.c 2007-05-01 12:49:38.000000000 -0400
@@ -347,31 +347,21 @@
static int cpu_count(void)
{
- int f;
- char buf[65536];
+ FILE* f;
+ char buf[1024];
int len;
const char *pos;
int count = 0;
- f = open("/proc/stat", O_RDONLY);
- if (f == -1)
+ f = fopen("/proc/stat", "r");
+ if (f == NULL)
return -1;
- len = read(f, buf, sizeof(buf)-1);
- close(f);
- if (len <= 0)
- return -1;
- buf[len] = '\0';
-
- pos = strstr(buf, "cpu");
- if (pos == NULL)
- return -1;
-
- while (pos != NULL) {
- if (strncmp(pos, "cpu", 3) == 0 &&isdigit(pos[3]))
+ while (fgets(buf, 1024, f) != NULL) {
+ if (strncmp(buf, "cpu", 3) == 0 && isdigit(buf[3]))
count++;
- pos = strstr(&pos[3], "cpu");
}
+ fclose(f);
if (count == 0)
return -1;
@@ -380,30 +370,46 @@
static int running_processes(void)
{
- int f;
- char buf[32768];
+ FILE* f;
+ char buf[1024];
int len;
- int running;
+ int running = -1;
const char *pos;
+ int retries = 3;
- f = open("/proc/stat", O_RDONLY);
- if (f == -1)
- return -1;
-
- len = read(f, buf, sizeof(buf)-1);
- close(f);
- if (len <= 0)
- return -1;
- buf[len] = '\0';
-
- pos = strstr(buf, "procs_running ");
- if (pos == NULL)
- return -1;
+ /*
+ * The retries is probably overkill but the text display is
+ * changing rapidly.on large systems (>= 512p) and so, while
+ * I have not actually recorded an instance where the retry
+ * was used I would rather not have it fail.
+ *
+ * An alternative approach would be to note when we are on
+ * a fairly large system (8cpus and 16Gbytes say) at which
+ * point throttling is probably not really necessary.
+ */
+ do {
+ f = fopen("/proc/stat", "r");
+ if (f == NULL)
+ return -1;
+
+ while (fgets(buf, 1024, f) != NULL) {
+ pos = strstr(buf, "procs_running ");
+ if (pos != NULL) {
+ int res;
+ res = sscanf(pos, "procs_running %u",
+ &running);
+ if (res == 1) {
+ fclose(f);
+ return running;
+ }
+ break;
+ }
+ }
- if (sscanf(pos, "procs_running %u", &running) != 1)
- return -1;
+ fclose(f);
+ } while (retries-- > 0);
- return running;
+ return -1;
}
/* return the number of process es in our session, count only until limit */
[-- Attachment #3: Type: text/plain, Size: 286 bytes --]
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
[-- Attachment #4: Type: text/plain, Size: 226 bytes --]
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: udevd on very large systems: again
2007-05-01 23:42 udevd on very large systems: again George Beshers
@ 2007-05-02 19:37 ` Kay Sievers
2007-05-02 21:11 ` Kay Sievers
` (6 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Kay Sievers @ 2007-05-02 19:37 UTC (permalink / raw)
To: linux-hotplug
On 5/2/07, George Beshers <gbeshers@sgi.com> wrote:
>
> After some testing the following patch seems safe for dealing with computers
> with more than 500 processors. It occurred to me that it might be
> easier and
> just as useful to note when udev is running on a large computer (e.g., >= 8p
> and >= 16Gb of memory) and simply not worry about throttling at that point.
>
> The patch should apply cleanly against udev-110.
>
> Comments welcome.
Looks fine so far, but I still don't see how reading a seq-proc-file
could miss entries. Are you expecting this to happen? Did you ever see
this for any of these files?
Thanks,
Kay
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: udevd on very large systems: again
2007-05-01 23:42 udevd on very large systems: again George Beshers
2007-05-02 19:37 ` Kay Sievers
@ 2007-05-02 21:11 ` Kay Sievers
2007-05-02 21:26 ` George Beshers
` (5 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Kay Sievers @ 2007-05-02 21:11 UTC (permalink / raw)
To: linux-hotplug
On 5/2/07, Kay Sievers <kay.sievers@vrfy.org> wrote:
> On 5/2/07, George Beshers <gbeshers@sgi.com> wrote:
> >
> > After some testing the following patch seems safe for dealing with computers
> > with more than 500 processors. It occurred to me that it might be
> > easier and
> > just as useful to note when udev is running on a large computer (e.g., >= 8p
> > and >= 16Gb of memory) and simply not worry about throttling at that point.
> >
> > The patch should apply cleanly against udev-110.
> >
> > Comments welcome.
>
> Looks fine so far, but I still don't see how reading a seq-proc-file
> could miss entries. Are you expecting this to happen? Did you ever see
> this for any of these files?
If I read linux/fs/proc/proc_misc.c correctly, /proc/stat fills a
buffer of 128kB in one call and passes the data to the file.
I wonder how long it will take, that you guys hit the 128k limit. :)
Thanks,
Kay
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: udevd on very large systems: again
2007-05-01 23:42 udevd on very large systems: again George Beshers
2007-05-02 19:37 ` Kay Sievers
2007-05-02 21:11 ` Kay Sievers
@ 2007-05-02 21:26 ` George Beshers
2007-05-02 21:39 ` George Beshers
` (4 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: George Beshers @ 2007-05-02 21:26 UTC (permalink / raw)
To: linux-hotplug
[-- Attachment #1: Type: text/plain, Size: 1019 bytes --]
Kay Sievers wrote:
> Looks fine so far, but I still don't see how reading a seq-proc-file
> could miss entries. Are you expecting this to happen? Did you ever see
> this for any of these files?
>
Hi Kay,
The answer is slightly complex. No I never saw it happen, but I am
concerned about it. To illustrate that, consider the following test
program and the output log attached. Basically, the /proc/stat file
does seem to be changing dynamically and an open file does not
present a stable snapshot. So the danger is that the procs_running
might get split at a 4k boundary and the split changes by the time
the next read occurs so procs_running is corrupted.
All of this said, I am not really happy with the retries strategy.
From my perspective it would be better simply not to throttle
if the procs_running isn't found and let the process scheduler
cope --- at least if the system has a fair bit of memory. But I
have not been in on the throttling discussions and so apply a
large grain of salt :-).
George
[-- Attachment #2: udev_test1.c --]
[-- Type: text/x-csrc, Size: 1797 bytes --]
#include <sys/types.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
int
run_test(int count)
{
int fd;
FILE* f;
char buf[1024];
char record[1024 * 128];
size_t len;
int running = -1;
int running1 = -1;
char* pos;
char* spos;
int result = -1;
fd = open("/proc/stat", O_RDONLY);
if (fd < 0) {
perror("Can't open /proc/stat????\n");
exit(1);
}
len = read(fd, record, 1024 * 128);
pos = strstr(record, "procs_running ");
if (pos == NULL) {
printf("procs_running not found in block read\n");
close(fd);
return -1;
}
if (sscanf(pos, "procs_running %u", &running) != 1) {
printf("sscanf failed on block read '%s'\n", pos);
return -1;
}
lseek(fd, 0, SEEK_SET);
f = fdopen(fd, "r");
while (fgets(buf, 1024, f) != NULL) {
if ((spos = strstr(buf, "procs_running")) != NULL) {
if (sscanf(spos, "procs_running %u", &running1) != 1) {
printf("Found procs_running but sscanf failed\n\t'%s'\n", buf);
result = -1;
break;
}
result = 1;
if (running != running1) {
printf("%d: results unequal %d != %d\n", count, running, running1);
result = 0;
}
break;
}
}
fclose(f);
close(fd);
return result;
}
main(int argc, char* argv[])
{
int count = 0;
int failures = 0;
int goods = 0;
int uneqs = 0;
struct timespec delay;
printf("udef_test start...\n");
delay.tv_sec = 0;
delay.tv_nsec = 10000000l;
while (count < 10000) {
int i = run_test(count);
if (i == 0)
uneqs++;
else if (i < 0)
failures++;
else
goods++;
nanosleep(&delay, 0);
count ++;
}
printf("failures=%d goods=%d uneqs=%d\n", failures, goods, uneqs);
printf("... udev_test end\n");
}
[-- Attachment #3: udev_test.log --]
[-- Type: text/x-log, Size: 86253 bytes --]
udef_test start...
9: results unequal 2 != 1
132: results unequal 1 != 2
162: results unequal 3 != 1
213: results unequal 2 != 1
240: results unequal 4 != 1
288: results unequal 2 != 1
296: results unequal 2 != 1
316: results unequal 1 != 2
391: results unequal 1 != 2
393: results unequal 2 != 3
394: results unequal 2 != 4
396: results unequal 4 != 3
423: results unequal 1 != 2
495: results unequal 1 != 2
566: results unequal 2 != 1
589: results unequal 1 != 3
593: results unequal 1 != 2
603: results unequal 2 != 1
613: results unequal 1 != 2
625: results unequal 2 != 1
633: results unequal 3 != 1
638: results unequal 2 != 1
650: results unequal 1 != 2
655: results unequal 2 != 1
690: results unequal 3 != 2
694: results unequal 2 != 1
700: results unequal 2 != 7
726: results unequal 2 != 3
737: results unequal 3 != 2
747: results unequal 3 != 2
748: results unequal 2 != 3
754: results unequal 3 != 2
760: results unequal 2 != 3
765: results unequal 3 != 2
770: results unequal 2 != 3
775: results unequal 2 != 3
777: results unequal 4 != 5
780: results unequal 3 != 2
781: results unequal 2 != 3
813: results unequal 1 != 2
818: results unequal 3 != 2
820: results unequal 3 != 2
840: results unequal 3 != 2
844: results unequal 3 != 2
853: results unequal 3 != 2
854: results unequal 5 != 3
872: results unequal 2 != 1
876: results unequal 3 != 2
877: results unequal 2 != 3
880: results unequal 2 != 3
897: results unequal 3 != 2
901: results unequal 3 != 2
904: results unequal 2 != 3
909: results unequal 3 != 2
926: results unequal 2 != 3
930: results unequal 3 != 2
967: results unequal 3 != 2
970: results unequal 2 != 5
979: results unequal 2 != 3
988: results unequal 3 != 2
991: results unequal 2 != 3
997: results unequal 2 != 1
1043: results unequal 2 != 3
1062: results unequal 3 != 2
1063: results unequal 2 != 3
1069: results unequal 2 != 3
1072: results unequal 2 != 3
1081: results unequal 2 != 3
1082: results unequal 2 != 3
1106: results unequal 3 != 2
1111: results unequal 3 != 2
1119: results unequal 2 != 3
1121: results unequal 3 != 2
1124: results unequal 3 != 2
1133: results unequal 3 != 2
1138: results unequal 2 != 3
1155: results unequal 2 != 3
1160: results unequal 3 != 2
1185: results unequal 1 != 2
1188: results unequal 2 != 1
1191: results unequal 3 != 2
1193: results unequal 3 != 2
1197: results unequal 2 != 3
1198: results unequal 2 != 3
1202: results unequal 3 != 2
1204: results unequal 3 != 2
1211: results unequal 2 != 3
1214: results unequal 3 != 2
1228: results unequal 2 != 3
1232: results unequal 3 != 2
1236: results unequal 3 != 2
1241: results unequal 2 != 3
1258: results unequal 2 != 1
1263: results unequal 3 != 2
1268: results unequal 4 != 3
1290: results unequal 2 != 3
1295: results unequal 3 != 2
1299: results unequal 2 != 3
1309: results unequal 2 != 3
1322: results unequal 2 != 3
1339: results unequal 1 != 2
1342: results unequal 5 != 3
1352: results unequal 3 != 2
1356: results unequal 2 != 3
1374: results unequal 3 != 2
1392: results unequal 2 != 3
1428: results unequal 3 != 2
1432: results unequal 3 != 2
1441: results unequal 2 != 3
1445: results unequal 2 != 3
1446: results unequal 2 != 3
1450: results unequal 3 != 2
1467: results unequal 3 != 2
1468: results unequal 2 != 3
1470: results unequal 6 != 3
1488: results unequal 3 != 2
1489: results unequal 2 != 3
1493: results unequal 2 != 3
1498: results unequal 3 != 2
1508: results unequal 3 != 2
1512: results unequal 2 != 3
1516: results unequal 2 != 3
1525: results unequal 3 != 2
1547: results unequal 2 != 5
1549: results unequal 3 != 2
1585: results unequal 3 != 2
1594: results unequal 3 != 2
1597: results unequal 2 != 3
1598: results unequal 3 != 2
1606: results unequal 2 != 3
1613: results unequal 3 != 2
1614: results unequal 3 != 2
1618: results unequal 3 != 2
1647: results unequal 2 != 5
1648: results unequal 4 != 2
1655: results unequal 3 != 2
1660: results unequal 3 != 2
1668: results unequal 2 != 3
1677: results unequal 2 != 3
1686: results unequal 2 != 3
1695: results unequal 3 != 2
1703: results unequal 2 != 1
1730: results unequal 2 != 3
1742: results unequal 3 != 2
1754: results unequal 3 != 2
1758: results unequal 3 != 2
1780: results unequal 2 != 3
1781: results unequal 3 != 2
1807: results unequal 2 != 3
1813: results unequal 2 != 3
1814: results unequal 2 != 3
1819: results unequal 3 != 2
1820: results unequal 3 != 2
1846: results unequal 2 != 3
1870: results unequal 1 != 2
1903: results unequal 2 != 3
1922: results unequal 2 != 3
1923: results unequal 2 != 3
1928: results unequal 3 != 2
1936: results unequal 2 != 3
1958: results unequal 2 != 3
1986: results unequal 2 != 3
1995: results unequal 3 != 2
2001: results unequal 2 != 3
2004: results unequal 3 != 2
2005: results unequal 3 != 2
2026: results unequal 1 != 2
2030: results unequal 3 != 2
2031: results unequal 2 != 3
2032: results unequal 2 != 3
2036: results unequal 3 != 2
2044: results unequal 2 != 3
2045: results unequal 2 != 3
2067: results unequal 2 != 3
2075: results unequal 2 != 3
2079: results unequal 2 != 3
2084: results unequal 2 != 3
2092: results unequal 3 != 2
2116: results unequal 2 != 4
2128: results unequal 2 != 3
2144: results unequal 3 != 2
2148: results unequal 3 != 2
2165: results unequal 2 != 3
2177: results unequal 3 != 2
2191: results unequal 2 != 3
2214: results unequal 3 != 2
2230: results unequal 3 != 2
2274: results unequal 2 != 1
2275: results unequal 2 != 1
2280: results unequal 3 != 2
2281: results unequal 2 != 1
2287: results unequal 2 != 3
2289: results unequal 3 != 2
2311: results unequal 1 != 2
2345: results unequal 2 != 1
2350: results unequal 2 != 1
2359: results unequal 2 != 3
2389: results unequal 2 != 3
2413: results unequal 1 != 2
2416: results unequal 2 != 1
2419: results unequal 2 != 3
2421: results unequal 2 != 3
2431: results unequal 3 != 2
2435: results unequal 2 != 3
2462: results unequal 2 != 1
2539: results unequal 2 != 1
2545: results unequal 2 != 3
2550: results unequal 2 != 3
2577: results unequal 5 != 3
2584: results unequal 2 != 3
2601: results unequal 1 != 2
2615: results unequal 1 != 2
2626: results unequal 2 != 3
2646: results unequal 5 != 4
2664: results unequal 2 != 3
2675: results unequal 2 != 3
2687: results unequal 3 != 2
2690: results unequal 3 != 2
2698: results unequal 3 != 2
2700: results unequal 3 != 2
2701: results unequal 1 != 2
2703: results unequal 2 != 5
2728: results unequal 2 != 1
2736: results unequal 1 != 2
2739: results unequal 2 != 3
2747: results unequal 2 != 1
2751: results unequal 3 != 2
2758: results unequal 3 != 2
2781: results unequal 2 != 3
2799: results unequal 2 != 1
2811: results unequal 2 != 1
2812: results unequal 1 != 2
2817: results unequal 2 != 1
2825: results unequal 3 != 2
2831: results unequal 1 != 2
2833: results unequal 2 != 1
2943: results unequal 2 != 1
2972: results unequal 1 != 2
3012: results unequal 2 != 1
3038: results unequal 2 != 1
3154: results unequal 4 != 1
3158: results unequal 2 != 1
3166: results unequal 6 != 4
3247: results unequal 3 != 2
3273: results unequal 3 != 2
3310: results unequal 3 != 2
3324: results unequal 2 != 4
3336: results unequal 2 != 3
3349: results unequal 3 != 2
3350: results unequal 2 != 3
3367: results unequal 2 != 3
3459: results unequal 2 != 1
3464: results unequal 4 != 3
3466: results unequal 4 != 3
3467: results unequal 4 != 3
3468: results unequal 7 != 4
3471: results unequal 2 != 1
3504: results unequal 3 != 2
3506: results unequal 3 != 2
3541: results unequal 2 != 3
3546: results unequal 3 != 2
3567: results unequal 1 != 2
3579: results unequal 3 != 2
3595: results unequal 3 != 2
3617: results unequal 3 != 2
3629: results unequal 5 != 3
3638: results unequal 2 != 4
3659: results unequal 2 != 3
3684: results unequal 3 != 2
3691: results unequal 3 != 2
3715: results unequal 2 != 1
3742: results unequal 2 != 1
3798: results unequal 2 != 1
3814: results unequal 1 != 2
3818: results unequal 2 != 1
3843: results unequal 2 != 1
4003: results unequal 1 != 2
4016: results unequal 4 != 3
4057: results unequal 1 != 2
4095: results unequal 3 != 1
4117: results unequal 1 != 2
4123: results unequal 1 != 2
4138: results unequal 1 != 2
4170: results unequal 1 != 4
4359: results unequal 2 != 1
4433: results unequal 2 != 1
4570: results unequal 1 != 2
4579: results unequal 1 != 2
4582: results unequal 2 != 1
4584: results unequal 1 != 2
4632: results unequal 2 != 1
4881: results unequal 2 != 1
4882: results unequal 1 != 2
4896: results unequal 2 != 1
4899: results unequal 1 != 2
4923: results unequal 2 != 1
5007: results unequal 1 != 2
5165: results unequal 1 != 2
5227: results unequal 1 != 2
5236: results unequal 2 != 1
5392: results unequal 2 != 3
5393: results unequal 3 != 2
5439: results unequal 4 != 5
5443: results unequal 2 != 3
5450: results unequal 2 != 3
5458: results unequal 1 != 2
5461: results unequal 2 != 3
5463: results unequal 2 != 3
5468: results unequal 2 != 3
5472: results unequal 12 != 11
5489: results unequal 12 != 11
5540: results unequal 7 != 4
5551: results unequal 3 != 2
5552: results unequal 2 != 3
5556: results unequal 2 != 3
5561: results unequal 3 != 4
5562: results unequal 7 != 8
5563: results unequal 15 != 17
5566: results unequal 43 != 42
5567: results unequal 50 != 51
5569: results unequal 62 != 63
5570: results unequal 74 != 75
5572: results unequal 96 != 97
5575: results unequal 122 != 117
5576: results unequal 120 != 122
5577: results unequal 123 != 125
5578: results unequal 120 != 122
5579: results unequal 123 != 124
5580: results unequal 126 != 130
5583: results unequal 134 != 131
5585: results unequal 133 != 132
5588: results unequal 136 != 135
5590: results unequal 135 != 134
5592: results unequal 128 != 127
5593: results unequal 124 != 125
5594: results unequal 129 != 130
5595: results unequal 126 != 125
5597: results unequal 125 != 131
5599: results unequal 126 != 125
5600: results unequal 127 != 126
5601: results unequal 127 != 128
5605: results unequal 123 != 126
5608: results unequal 120 != 121
5611: results unequal 111 != 112
5612: results unequal 112 != 111
5616: results unequal 117 != 118
5618: results unequal 120 != 121
5620: results unequal 111 != 114
5621: results unequal 116 != 115
5622: results unequal 123 != 126
5624: results unequal 145 != 144
5625: results unequal 143 != 145
5626: results unequal 147 != 148
5628: results unequal 154 != 155
5629: results unequal 158 != 159
5630: results unequal 159 != 161
5631: results unequal 162 != 159
5632: results unequal 158 != 160
5633: results unequal 152 != 150
5634: results unequal 150 != 149
5636: results unequal 151 != 150
5637: results unequal 143 != 144
5638: results unequal 153 != 154
5639: results unequal 147 != 143
5640: results unequal 151 != 150
5641: results unequal 149 != 150
5643: results unequal 150 != 148
5644: results unequal 139 != 137
5645: results unequal 144 != 145
5646: results unequal 137 != 139
5647: results unequal 135 != 131
5648: results unequal 140 != 137
5649: results unequal 135 != 133
5650: results unequal 130 != 129
5652: results unequal 141 != 138
5654: results unequal 125 != 129
5655: results unequal 135 != 132
5656: results unequal 132 != 131
5657: results unequal 139 != 136
5658: results unequal 131 != 134
5659: results unequal 126 != 125
5661: results unequal 131 != 130
5662: results unequal 129 != 124
5663: results unequal 117 != 119
5664: results unequal 120 != 119
5666: results unequal 138 != 130
5667: results unequal 127 != 129
5668: results unequal 120 != 127
5669: results unequal 137 != 136
5670: results unequal 133 != 137
5671: results unequal 135 != 144
5672: results unequal 129 != 125
5673: results unequal 126 != 124
5674: results unequal 134 != 133
5676: results unequal 133 != 139
5677: results unequal 131 != 129
5679: results unequal 140 != 143
5680: results unequal 148 != 150
5681: results unequal 143 != 144
5682: results unequal 157 != 159
5683: results unequal 143 != 142
5684: results unequal 161 != 158
5685: results unequal 128 != 144
5686: results unequal 143 != 146
5688: results unequal 141 != 143
5690: results unequal 139 != 137
5691: results unequal 134 != 138
5692: results unequal 146 != 143
5693: results unequal 134 != 135
5694: results unequal 133 != 134
5695: results unequal 134 != 136
5697: results unequal 138 != 139
5698: results unequal 138 != 136
5699: results unequal 141 != 139
5701: results unequal 131 != 129
5702: results unequal 126 != 128
5703: results unequal 129 != 130
5704: results unequal 131 != 130
5705: results unequal 127 != 126
5708: results unequal 126 != 127
5712: results unequal 123 != 122
5713: results unequal 127 != 129
5714: results unequal 132 != 131
5715: results unequal 132 != 131
5717: results unequal 130 != 131
5718: results unequal 133 != 134
5719: results unequal 144 != 143
5720: results unequal 138 != 141
5721: results unequal 128 != 129
5723: results unequal 130 != 131
5724: results unequal 140 != 139
5725: results unequal 135 != 134
5726: results unequal 138 != 140
5727: results unequal 148 != 154
5728: results unequal 147 != 146
5730: results unequal 150 != 151
5731: results unequal 145 != 146
5734: results unequal 134 != 132
5735: results unequal 134 != 133
5736: results unequal 135 != 132
5737: results unequal 137 != 136
5738: results unequal 142 != 143
5740: results unequal 144 != 142
5741: results unequal 143 != 142
5742: results unequal 146 != 149
5743: results unequal 145 != 142
5744: results unequal 150 != 147
5746: results unequal 142 != 140
5748: results unequal 149 != 144
5749: results unequal 140 != 139
5750: results unequal 150 != 145
5751: results unequal 141 != 139
5752: results unequal 149 != 144
5754: results unequal 138 != 137
5755: results unequal 131 != 130
5756: results unequal 130 != 131
5758: results unequal 145 != 144
5761: results unequal 136 != 135
5764: results unequal 139 != 137
5766: results unequal 139 != 138
5767: results unequal 137 != 139
5768: results unequal 140 != 139
5769: results unequal 145 != 147
5770: results unequal 143 != 146
5771: results unequal 153 != 155
5772: results unequal 148 != 146
5773: results unequal 128 != 126
5774: results unequal 160 != 162
5775: results unequal 143 != 142
5776: results unequal 146 != 165
5777: results unequal 140 != 144
5778: results unequal 133 != 140
5780: results unequal 146 != 145
5782: results unequal 145 != 144
5783: results unequal 140 != 141
5784: results unequal 155 != 158
5785: results unequal 156 != 154
5786: results unequal 134 != 136
5787: results unequal 161 != 158
5788: results unequal 149 != 150
5789: results unequal 145 != 142
5790: results unequal 140 != 141
5792: results unequal 142 != 140
5794: results unequal 136 != 135
5795: results unequal 136 != 137
5796: results unequal 139 != 140
5798: results unequal 141 != 145
5801: results unequal 55 != 46
5802: results unequal 136 != 137
5803: results unequal 85 != 82
5804: results unequal 137 != 136
5805: results unequal 155 != 156
5806: results unequal 147 != 144
5807: results unequal 146 != 144
5809: results unequal 143 != 144
5810: results unequal 143 != 142
5811: results unequal 137 != 138
5812: results unequal 149 != 147
5813: results unequal 139 != 140
5814: results unequal 138 != 136
5815: results unequal 138 != 140
5816: results unequal 136 != 137
5817: results unequal 138 != 139
5818: results unequal 135 != 136
5819: results unequal 143 != 141
5822: results unequal 139 != 140
5823: results unequal 151 != 148
5824: results unequal 139 != 138
5825: results unequal 162 != 154
5826: results unequal 149 != 148
5827: results unequal 143 != 144
5828: results unequal 148 != 147
5829: results unequal 141 != 142
5832: results unequal 144 != 142
5833: results unequal 140 != 141
5835: results unequal 146 != 144
5837: results unequal 146 != 145
5838: results unequal 140 != 138
5840: results unequal 140 != 139
5841: results unequal 121 != 120
5842: results unequal 129 != 132
5843: results unequal 135 != 136
5844: results unequal 140 != 142
5845: results unequal 144 != 146
5846: results unequal 142 != 141
5847: results unequal 138 != 135
5848: results unequal 144 != 143
5850: results unequal 147 != 148
5852: results unequal 145 != 159
5853: results unequal 154 != 156
5854: results unequal 148 != 145
5855: results unequal 136 != 135
5856: results unequal 154 != 150
5859: results unequal 146 != 145
5860: results unequal 155 != 141
5861: results unequal 138 != 136
5862: results unequal 141 != 140
5864: results unequal 144 != 143
5867: results unequal 137 != 138
5868: results unequal 139 != 137
5869: results unequal 134 != 136
5870: results unequal 135 != 136
5871: results unequal 131 != 132
5872: results unequal 137 != 136
5873: results unequal 140 != 138
5875: results unequal 133 != 135
5876: results unequal 146 != 147
5878: results unequal 142 != 145
5879: results unequal 153 != 150
5880: results unequal 143 != 142
5881: results unequal 143 != 144
5882: results unequal 136 != 134
5883: results unequal 133 != 131
5884: results unequal 148 != 146
5886: results unequal 135 != 134
5887: results unequal 147 != 175
5888: results unequal 166 != 168
5889: results unequal 147 != 146
5890: results unequal 141 != 143
5891: results unequal 147 != 146
5892: results unequal 146 != 143
5893: results unequal 141 != 142
5894: results unequal 137 != 138
5895: results unequal 137 != 136
5896: results unequal 148 != 147
5897: results unequal 152 != 151
5899: results unequal 142 != 141
5900: results unequal 137 != 139
5902: results unequal 134 != 133
5903: results unequal 138 != 137
5904: results unequal 150 != 149
5905: results unequal 164 != 161
5907: results unequal 138 != 136
5908: results unequal 148 != 149
5909: results unequal 146 != 148
5910: results unequal 156 != 154
5911: results unequal 143 != 142
5913: results unequal 141 != 138
5914: results unequal 152 != 149
5915: results unequal 148 != 145
5916: results unequal 146 != 148
5917: results unequal 152 != 151
5918: results unequal 149 != 148
5919: results unequal 151 != 150
5920: results unequal 145 != 143
5921: results unequal 149 != 147
5922: results unequal 150 != 149
5924: results unequal 145 != 144
5926: results unequal 144 != 145
5927: results unequal 139 != 137
5933: results unequal 146 != 145
5934: results unequal 150 != 148
5935: results unequal 142 != 143
5936: results unequal 146 != 147
5937: results unequal 145 != 147
5938: results unequal 138 != 139
5939: results unequal 141 != 140
5940: results unequal 147 != 148
5941: results unequal 176 != 167
5942: results unequal 143 != 144
5944: results unequal 152 != 150
5945: results unequal 136 != 135
5946: results unequal 147 != 144
5947: results unequal 141 != 140
5948: results unequal 145 != 143
5949: results unequal 143 != 144
5950: results unequal 141 != 138
5951: results unequal 143 != 139
5952: results unequal 144 != 143
5953: results unequal 129 != 128
5955: results unequal 147 != 146
5956: results unequal 151 != 150
5958: results unequal 148 != 146
5959: results unequal 145 != 144
5961: results unequal 158 != 159
5962: results unequal 163 != 162
5965: results unequal 146 != 145
5966: results unequal 140 != 143
5969: results unequal 156 != 154
5970: results unequal 146 != 143
5971: results unequal 145 != 143
5974: results unequal 140 != 139
5975: results unequal 144 != 143
5976: results unequal 148 != 142
5977: results unequal 139 != 138
5978: results unequal 146 != 148
5979: results unequal 159 != 150
5980: results unequal 144 != 143
5982: results unequal 161 != 156
5983: results unequal 140 != 141
5984: results unequal 141 != 142
5989: results unequal 164 != 159
5990: results unequal 146 != 154
5992: results unequal 141 != 144
5994: results unequal 150 != 149
5996: results unequal 132 != 135
5997: results unequal 137 != 139
5999: results unequal 139 != 138
6000: results unequal 155 != 153
6003: results unequal 153 != 154
6005: results unequal 134 != 135
6006: results unequal 143 != 145
6007: results unequal 133 != 135
6008: results unequal 142 != 141
6009: results unequal 129 != 128
6011: results unequal 131 != 130
6012: results unequal 134 != 132
6013: results unequal 132 != 133
6014: results unequal 138 != 139
6015: results unequal 145 != 143
6016: results unequal 144 != 142
6019: results unequal 155 != 149
6020: results unequal 141 != 142
6022: results unequal 144 != 143
6023: results unequal 146 != 148
6024: results unequal 133 != 134
6025: results unequal 146 != 148
6026: results unequal 144 != 142
6027: results unequal 137 != 136
6028: results unequal 136 != 134
6029: results unequal 130 != 129
6030: results unequal 153 != 141
6031: results unequal 141 != 140
6032: results unequal 132 != 133
6033: results unequal 130 != 134
6034: results unequal 135 != 136
6035: results unequal 137 != 136
6037: results unequal 136 != 138
6038: results unequal 133 != 134
6039: results unequal 167 != 165
6041: results unequal 151 != 144
6042: results unequal 141 != 142
6044: results unequal 143 != 170
6045: results unequal 133 != 135
6047: results unequal 141 != 140
6048: results unequal 149 != 147
6049: results unequal 139 != 165
6051: results unequal 137 != 136
6052: results unequal 145 != 143
6053: results unequal 152 != 149
6054: results unequal 142 != 141
6055: results unequal 143 != 142
6057: results unequal 163 != 153
6058: results unequal 143 != 141
6059: results unequal 138 != 167
6060: results unequal 151 != 149
6061: results unequal 137 != 138
6063: results unequal 156 != 152
6064: results unequal 147 != 148
6065: results unequal 137 != 138
6069: results unequal 144 != 147
6072: results unequal 137 != 138
6073: results unequal 134 != 133
6074: results unequal 132 != 133
6075: results unequal 135 != 133
6077: results unequal 138 != 137
6078: results unequal 141 != 139
6079: results unequal 142 != 141
6081: results unequal 143 != 140
6082: results unequal 146 != 143
6084: results unequal 155 != 152
6085: results unequal 141 != 140
6086: results unequal 132 != 133
6087: results unequal 137 != 139
6088: results unequal 139 != 137
6089: results unequal 141 != 142
6091: results unequal 142 != 145
6092: results unequal 147 != 145
6093: results unequal 134 != 135
6094: results unequal 138 != 140
6097: results unequal 136 != 138
6098: results unequal 143 != 142
6099: results unequal 136 != 137
6101: results unequal 151 != 145
6102: results unequal 158 != 157
6104: results unequal 125 != 128
6105: results unequal 133 != 134
6106: results unequal 146 != 166
6107: results unequal 145 != 146
6108: results unequal 163 != 157
6109: results unequal 160 != 158
6110: results unequal 142 != 141
6111: results unequal 144 != 141
6112: results unequal 131 != 132
6113: results unequal 151 != 147
6114: results unequal 162 != 157
6115: results unequal 144 != 143
6117: results unequal 168 != 158
6119: results unequal 147 != 144
6120: results unequal 146 != 147
6121: results unequal 122 != 123
6122: results unequal 125 != 126
6123: results unequal 134 != 132
6124: results unequal 131 != 130
6125: results unequal 148 != 143
6126: results unequal 158 != 159
6127: results unequal 145 != 144
6128: results unequal 145 != 146
6129: results unequal 155 != 151
6130: results unequal 150 != 149
6131: results unequal 144 != 142
6133: results unequal 146 != 147
6134: results unequal 158 != 168
6135: results unequal 147 != 146
6136: results unequal 154 != 156
6137: results unequal 141 != 142
6139: results unequal 142 != 143
6140: results unequal 149 != 146
6142: results unequal 139 != 141
6144: results unequal 165 != 159
6148: results unequal 156 != 153
6151: results unequal 141 != 142
6152: results unequal 150 != 152
6153: results unequal 161 != 159
6154: results unequal 149 != 151
6155: results unequal 170 != 167
6158: results unequal 130 != 129
6159: results unequal 136 != 138
6160: results unequal 136 != 135
6161: results unequal 146 != 145
6162: results unequal 156 != 161
6163: results unequal 137 != 138
6165: results unequal 144 != 146
6166: results unequal 146 != 145
6167: results unequal 145 != 147
6168: results unequal 142 != 143
6171: results unequal 147 != 149
6172: results unequal 146 != 144
6173: results unequal 148 != 147
6174: results unequal 141 != 142
6175: results unequal 137 != 138
6176: results unequal 142 != 144
6177: results unequal 152 != 149
6178: results unequal 143 != 144
6180: results unequal 145 != 142
6181: results unequal 142 != 143
6182: results unequal 169 != 166
6186: results unequal 139 != 138
6187: results unequal 135 != 136
6188: results unequal 135 != 134
6189: results unequal 138 != 139
6190: results unequal 135 != 137
6191: results unequal 137 != 136
6192: results unequal 136 != 137
6194: results unequal 136 != 137
6196: results unequal 158 != 156
6197: results unequal 151 != 149
6198: results unequal 155 != 151
6199: results unequal 149 != 148
6200: results unequal 136 != 140
6201: results unequal 164 != 160
6204: results unequal 134 != 132
6205: results unequal 158 != 152
6206: results unequal 147 != 149
6207: results unequal 141 != 140
6208: results unequal 138 != 134
6209: results unequal 130 != 129
6210: results unequal 170 != 165
6212: results unequal 151 != 153
6213: results unequal 150 != 145
6214: results unequal 144 != 139
6215: results unequal 171 != 167
6217: results unequal 142 != 141
6218: results unequal 138 != 140
6219: results unequal 141 != 142
6222: results unequal 138 != 159
6223: results unequal 139 != 140
6225: results unequal 139 != 140
6226: results unequal 142 != 139
6227: results unequal 145 != 146
6228: results unequal 143 != 141
6229: results unequal 157 != 155
6230: results unequal 146 != 144
6232: results unequal 143 != 142
6234: results unequal 142 != 141
6235: results unequal 138 != 139
6236: results unequal 139 != 138
6237: results unequal 136 != 135
6238: results unequal 139 != 138
6239: results unequal 143 != 142
6241: results unequal 139 != 140
6242: results unequal 158 != 154
6243: results unequal 150 != 145
6247: results unequal 140 != 142
6248: results unequal 138 != 137
6249: results unequal 138 != 137
6250: results unequal 139 != 140
6251: results unequal 139 != 140
6253: results unequal 160 != 159
6254: results unequal 166 != 163
6255: results unequal 150 != 153
6256: results unequal 151 != 150
6257: results unequal 143 != 144
6258: results unequal 143 != 141
6259: results unequal 149 != 151
6260: results unequal 141 != 139
6261: results unequal 142 != 139
6263: results unequal 140 != 139
6265: results unequal 138 != 140
6266: results unequal 129 != 130
6269: results unequal 143 != 144
6270: results unequal 149 != 146
6271: results unequal 157 != 154
6272: results unequal 140 != 141
6273: results unequal 139 != 140
6274: results unequal 143 != 146
6275: results unequal 151 != 150
6276: results unequal 161 != 165
6277: results unequal 149 != 145
6278: results unequal 145 != 146
6279: results unequal 148 != 147
6280: results unequal 151 != 152
6281: results unequal 152 != 150
6282: results unequal 154 != 155
6283: results unequal 148 != 150
6288: results unequal 164 != 166
6289: results unequal 145 != 142
6290: results unequal 146 != 143
6291: results unequal 141 != 140
6293: results unequal 159 != 163
6294: results unequal 146 != 147
6295: results unequal 140 != 142
6299: results unequal 139 != 136
6300: results unequal 154 != 155
6301: results unequal 139 != 138
6303: results unequal 134 != 136
6304: results unequal 147 != 145
6306: results unequal 150 != 148
6307: results unequal 144 != 145
6308: results unequal 139 != 143
6311: results unequal 136 != 138
6312: results unequal 149 != 146
6313: results unequal 150 != 149
6314: results unequal 146 != 145
6315: results unequal 171 != 161
6316: results unequal 139 != 141
6317: results unequal 146 != 145
6318: results unequal 149 != 147
6319: results unequal 141 != 140
6320: results unequal 140 != 138
6321: results unequal 139 != 140
6322: results unequal 157 != 151
6323: results unequal 147 != 145
6324: results unequal 143 != 141
6325: results unequal 143 != 142
6326: results unequal 171 != 173
6327: results unequal 156 != 157
6330: results unequal 138 != 139
6334: results unequal 164 != 160
6338: results unequal 136 != 134
6339: results unequal 146 != 148
6340: results unequal 135 != 136
6342: results unequal 141 != 140
6343: results unequal 148 != 145
6345: results unequal 154 != 144
6346: results unequal 132 != 131
6348: results unequal 153 != 150
6349: results unequal 146 != 145
6351: results unequal 160 != 153
6352: results unequal 153 != 149
6353: results unequal 144 != 145
6354: results unequal 145 != 144
6357: results unequal 133 != 135
6361: results unequal 137 != 138
6362: results unequal 139 != 141
6363: results unequal 140 != 141
6364: results unequal 139 != 137
6365: results unequal 163 != 152
6366: results unequal 138 != 137
6369: results unequal 153 != 152
6370: results unequal 137 != 138
6371: results unequal 152 != 149
6372: results unequal 157 != 156
6373: results unequal 145 != 143
6375: results unequal 143 != 142
6376: results unequal 148 != 150
6377: results unequal 144 != 141
6378: results unequal 146 != 148
6379: results unequal 141 != 139
6380: results unequal 142 != 139
6381: results unequal 141 != 139
6383: results unequal 140 != 136
6384: results unequal 133 != 134
6385: results unequal 138 != 139
6386: results unequal 145 != 144
6388: results unequal 153 != 148
6389: results unequal 141 != 142
6390: results unequal 139 != 138
6391: results unequal 147 != 146
6392: results unequal 153 != 150
6393: results unequal 136 != 150
6394: results unequal 150 != 148
6396: results unequal 142 != 161
6397: results unequal 140 != 139
6399: results unequal 148 != 150
6400: results unequal 143 != 145
6402: results unequal 143 != 142
6404: results unequal 151 != 150
6405: results unequal 140 != 141
6406: results unequal 141 != 140
6407: results unequal 137 != 139
6408: results unequal 160 != 161
6409: results unequal 143 != 141
6410: results unequal 138 != 162
6412: results unequal 142 != 141
6414: results unequal 140 != 142
6415: results unequal 159 != 156
6416: results unequal 153 != 150
6417: results unequal 139 != 141
6418: results unequal 140 != 141
6419: results unequal 151 != 149
6420: results unequal 142 != 143
6421: results unequal 134 != 136
6422: results unequal 137 != 140
6423: results unequal 160 != 150
6424: results unequal 153 != 154
6425: results unequal 156 != 142
6426: results unequal 142 != 140
6427: results unequal 137 != 138
6428: results unequal 134 != 131
6429: results unequal 135 != 149
6430: results unequal 134 != 132
6431: results unequal 137 != 139
6432: results unequal 134 != 135
6434: results unequal 146 != 148
6435: results unequal 154 != 157
6436: results unequal 141 != 142
6437: results unequal 136 != 135
6438: results unequal 136 != 139
6440: results unequal 145 != 144
6442: results unequal 132 != 133
6443: results unequal 134 != 133
6444: results unequal 134 != 136
6446: results unequal 139 != 136
6447: results unequal 138 != 140
6448: results unequal 134 != 132
6449: results unequal 138 != 137
6450: results unequal 168 != 166
6451: results unequal 138 != 140
6452: results unequal 143 != 172
6453: results unequal 159 != 156
6455: results unequal 137 != 139
6456: results unequal 162 != 160
6457: results unequal 141 != 142
6458: results unequal 143 != 144
6461: results unequal 143 != 144
6462: results unequal 148 != 159
6463: results unequal 152 != 151
6464: results unequal 145 != 144
6465: results unequal 142 != 143
6468: results unequal 140 != 139
6470: results unequal 142 != 141
6472: results unequal 146 != 143
6473: results unequal 137 != 134
6474: results unequal 136 != 138
6477: results unequal 141 != 140
6478: results unequal 147 != 150
6479: results unequal 146 != 142
6480: results unequal 145 != 146
6481: results unequal 146 != 145
6482: results unequal 168 != 171
6483: results unequal 150 != 153
6484: results unequal 148 != 146
6485: results unequal 147 != 148
6486: results unequal 139 != 140
6487: results unequal 141 != 143
6488: results unequal 143 != 142
6489: results unequal 140 != 142
6490: results unequal 142 != 143
6491: results unequal 148 != 147
6493: results unequal 148 != 143
6495: results unequal 143 != 145
6496: results unequal 147 != 143
6497: results unequal 153 != 152
6498: results unequal 149 != 148
6500: results unequal 147 != 143
6502: results unequal 160 != 161
6503: results unequal 154 != 155
6504: results unequal 155 != 154
6505: results unequal 147 != 142
6509: results unequal 149 != 146
6512: results unequal 141 != 139
6513: results unequal 141 != 142
6514: results unequal 140 != 143
6516: results unequal 129 != 131
6518: results unequal 132 != 134
6519: results unequal 126 != 124
6522: results unequal 118 != 119
6523: results unequal 131 != 133
6524: results unequal 126 != 124
6527: results unequal 127 != 126
6528: results unequal 125 != 124
6530: results unequal 124 != 122
6531: results unequal 136 != 129
6533: results unequal 136 != 135
6534: results unequal 138 != 137
6535: results unequal 138 != 139
6536: results unequal 127 != 130
6537: results unequal 148 != 143
6539: results unequal 140 != 139
6543: results unequal 142 != 143
6544: results unequal 135 != 134
6546: results unequal 139 != 140
6547: results unequal 152 != 150
6549: results unequal 148 != 146
6550: results unequal 148 != 145
6552: results unequal 141 != 142
6553: results unequal 141 != 142
6554: results unequal 156 != 154
6555: results unequal 142 != 141
6556: results unequal 156 != 155
6557: results unequal 147 != 143
6559: results unequal 146 != 145
6560: results unequal 136 != 138
6562: results unequal 140 != 139
6564: results unequal 139 != 140
6566: results unequal 134 != 135
6568: results unequal 152 != 150
6569: results unequal 134 != 139
6570: results unequal 136 != 137
6575: results unequal 131 != 133
6576: results unequal 131 != 129
6578: results unequal 130 != 127
6579: results unequal 136 != 133
6580: results unequal 129 != 127
6581: results unequal 125 != 126
6586: results unequal 120 != 122
6588: results unequal 129 != 130
6590: results unequal 130 != 133
6592: results unequal 127 != 126
6593: results unequal 127 != 128
6594: results unequal 125 != 136
6595: results unequal 148 != 145
6596: results unequal 132 != 136
6597: results unequal 129 != 127
6598: results unequal 138 != 139
6599: results unequal 144 != 140
6600: results unequal 136 != 135
6603: results unequal 137 != 140
6604: results unequal 144 != 145
6605: results unequal 153 != 146
6606: results unequal 117 != 119
6607: results unequal 129 != 131
6608: results unequal 134 != 135
6609: results unequal 150 != 149
6611: results unequal 154 != 149
6612: results unequal 150 != 149
6613: results unequal 153 != 152
6614: results unequal 144 != 143
6615: results unequal 152 != 150
6616: results unequal 149 != 151
6617: results unequal 149 != 147
6618: results unequal 143 != 165
6619: results unequal 148 != 143
6620: results unequal 151 != 152
6622: results unequal 148 != 147
6623: results unequal 146 != 148
6624: results unequal 138 != 134
6625: results unequal 134 != 135
6626: results unequal 139 != 140
6628: results unequal 142 != 143
6630: results unequal 143 != 142
6631: results unequal 144 != 145
6632: results unequal 143 != 142
6633: results unequal 140 != 141
6634: results unequal 142 != 140
6635: results unequal 140 != 138
6636: results unequal 134 != 132
6638: results unequal 143 != 142
6639: results unequal 133 != 135
6640: results unequal 141 != 142
6641: results unequal 137 != 139
6643: results unequal 140 != 139
6644: results unequal 142 != 141
6645: results unequal 141 != 140
6646: results unequal 153 != 155
6647: results unequal 169 != 159
6650: results unequal 141 != 140
6651: results unequal 138 != 137
6653: results unequal 175 != 165
6654: results unequal 158 != 156
6655: results unequal 147 != 150
6656: results unequal 159 != 158
6657: results unequal 151 != 150
6658: results unequal 147 != 143
6659: results unequal 141 != 144
6660: results unequal 146 != 147
6661: results unequal 146 != 147
6662: results unequal 142 != 141
6663: results unequal 139 != 140
6665: results unequal 155 != 154
6666: results unequal 147 != 145
6667: results unequal 137 != 135
6668: results unequal 135 != 137
6669: results unequal 141 != 142
6670: results unequal 176 != 167
6671: results unequal 139 != 138
6673: results unequal 142 != 144
6674: results unequal 140 != 139
6676: results unequal 148 != 146
6678: results unequal 144 != 146
6679: results unequal 151 != 148
6680: results unequal 136 != 144
6681: results unequal 146 != 147
6682: results unequal 144 != 145
6683: results unequal 142 != 141
6685: results unequal 138 != 136
6686: results unequal 134 != 136
6688: results unequal 142 != 144
6689: results unequal 151 != 149
6690: results unequal 147 != 143
6691: results unequal 143 != 146
6694: results unequal 136 != 135
6695: results unequal 136 != 138
6696: results unequal 132 != 133
6699: results unequal 119 != 118
6700: results unequal 124 != 126
6701: results unequal 142 != 139
6702: results unequal 127 != 126
6703: results unequal 161 != 157
6705: results unequal 127 != 128
6708: results unequal 131 != 132
6711: results unequal 134 != 135
6712: results unequal 140 != 138
6713: results unequal 133 != 135
6714: results unequal 152 != 150
6716: results unequal 141 != 140
6717: results unequal 137 != 135
6718: results unequal 154 != 153
6719: results unequal 136 != 138
6721: results unequal 141 != 143
6722: results unequal 136 != 135
6724: results unequal 135 != 136
6725: results unequal 135 != 136
6727: results unequal 141 != 142
6728: results unequal 138 != 133
6729: results unequal 149 != 148
6731: results unequal 140 != 141
6732: results unequal 154 != 153
6734: results unequal 143 != 141
6735: results unequal 136 != 133
6736: results unequal 138 != 139
6737: results unequal 140 != 138
6739: results unequal 136 != 137
6740: results unequal 141 != 138
6742: results unequal 133 != 132
6743: results unequal 134 != 133
6744: results unequal 142 != 141
6745: results unequal 137 != 135
6746: results unequal 142 != 138
6747: results unequal 140 != 139
6750: results unequal 154 != 151
6751: results unequal 136 != 135
6753: results unequal 128 != 129
6754: results unequal 133 != 132
6756: results unequal 133 != 132
6757: results unequal 143 != 145
6758: results unequal 151 != 152
6759: results unequal 148 != 145
6761: results unequal 147 != 148
6762: results unequal 139 != 141
6763: results unequal 155 != 153
6764: results unequal 155 != 156
6765: results unequal 171 != 170
6766: results unequal 142 != 166
6767: results unequal 143 != 142
6768: results unequal 135 != 134
6770: results unequal 136 != 137
6772: results unequal 136 != 138
6773: results unequal 139 != 140
6775: results unequal 144 != 145
6776: results unequal 133 != 130
6778: results unequal 134 != 133
6779: results unequal 151 != 149
6780: results unequal 138 != 137
6781: results unequal 142 != 143
6782: results unequal 158 != 157
6784: results unequal 141 != 143
6787: results unequal 140 != 139
6789: results unequal 143 != 144
6790: results unequal 140 != 141
6791: results unequal 138 != 139
6794: results unequal 133 != 132
6796: results unequal 149 != 147
6797: results unequal 166 != 161
6798: results unequal 136 != 135
6799: results unequal 155 != 151
6800: results unequal 149 != 159
6802: results unequal 136 != 131
6803: results unequal 151 != 150
6805: results unequal 140 != 138
6806: results unequal 140 != 139
6807: results unequal 135 != 136
6808: results unequal 140 != 139
6809: results unequal 140 != 137
6810: results unequal 137 != 138
6811: results unequal 136 != 137
6812: results unequal 137 != 138
6813: results unequal 136 != 135
6814: results unequal 141 != 143
6815: results unequal 137 != 136
6816: results unequal 152 != 149
6817: results unequal 146 != 145
6819: results unequal 135 != 134
6822: results unequal 132 != 131
6827: results unequal 141 != 139
6828: results unequal 132 != 133
6829: results unequal 146 != 145
6830: results unequal 137 != 152
6831: results unequal 137 != 153
6832: results unequal 138 != 137
6834: results unequal 135 != 134
6836: results unequal 137 != 135
6837: results unequal 135 != 133
6838: results unequal 134 != 135
6839: results unequal 154 != 144
6841: results unequal 140 != 136
6842: results unequal 142 != 143
6843: results unequal 154 != 150
6844: results unequal 140 != 139
6845: results unequal 135 != 136
6847: results unequal 142 != 141
6851: results unequal 135 != 134
6852: results unequal 136 != 137
6853: results unequal 149 != 161
6854: results unequal 137 != 136
6856: results unequal 137 != 138
6857: results unequal 139 != 140
6858: results unequal 142 != 143
6859: results unequal 175 != 163
6860: results unequal 142 != 141
6861: results unequal 138 != 137
6863: results unequal 140 != 139
6864: results unequal 132 != 131
6866: results unequal 135 != 137
6867: results unequal 136 != 167
6868: results unequal 141 != 139
6869: results unequal 136 != 137
6870: results unequal 137 != 138
6872: results unequal 138 != 139
6873: results unequal 130 != 127
6875: results unequal 136 != 135
6876: results unequal 154 != 153
6877: results unequal 145 != 142
6878: results unequal 141 != 139
6879: results unequal 134 != 133
6880: results unequal 136 != 135
6881: results unequal 145 != 142
6882: results unequal 138 != 137
6884: results unequal 137 != 136
6885: results unequal 152 != 149
6886: results unequal 144 != 143
6888: results unequal 148 != 151
6889: results unequal 148 != 147
6890: results unequal 139 != 142
6891: results unequal 143 != 142
6892: results unequal 154 != 155
6893: results unequal 144 != 143
6894: results unequal 153 != 145
6895: results unequal 147 != 150
6897: results unequal 158 != 153
6898: results unequal 148 != 145
6899: results unequal 144 != 145
6900: results unequal 145 != 143
6902: results unequal 135 != 138
6903: results unequal 145 != 143
6904: results unequal 138 != 137
6905: results unequal 151 != 152
6906: results unequal 153 != 152
6907: results unequal 139 != 138
6911: results unequal 137 != 138
6912: results unequal 136 != 135
6913: results unequal 136 != 137
6916: results unequal 155 != 152
6917: results unequal 135 != 132
6918: results unequal 137 != 135
6920: results unequal 154 != 152
6921: results unequal 150 != 144
6922: results unequal 144 != 142
6923: results unequal 147 != 144
6924: results unequal 143 != 144
6925: results unequal 139 != 138
6926: results unequal 130 != 138
6927: results unequal 143 != 141
6928: results unequal 140 != 142
6930: results unequal 138 != 137
6931: results unequal 162 != 157
6936: results unequal 144 != 143
6938: results unequal 147 != 145
6939: results unequal 140 != 139
6940: results unequal 141 != 140
6942: results unequal 138 != 136
6943: results unequal 138 != 140
6945: results unequal 139 != 140
6946: results unequal 141 != 139
6947: results unequal 140 != 141
6948: results unequal 138 != 140
6949: results unequal 138 != 137
6950: results unequal 137 != 136
6951: results unequal 138 != 137
6952: results unequal 140 != 144
6953: results unequal 142 != 143
6954: results unequal 138 != 139
6955: results unequal 147 != 144
6956: results unequal 144 != 143
6957: results unequal 140 != 139
6958: results unequal 148 != 147
6959: results unequal 131 != 130
6960: results unequal 146 != 145
6961: results unequal 135 != 138
6962: results unequal 143 != 142
6963: results unequal 133 != 132
6964: results unequal 129 != 130
6965: results unequal 136 != 137
6966: results unequal 153 != 145
6969: results unequal 149 != 148
6970: results unequal 133 != 134
6972: results unequal 141 != 140
6973: results unequal 134 != 133
6974: results unequal 131 != 129
6975: results unequal 149 != 154
6976: results unequal 134 != 152
6977: results unequal 137 != 136
6978: results unequal 148 != 146
6980: results unequal 134 != 133
6981: results unequal 149 != 146
6982: results unequal 149 != 153
6984: results unequal 151 != 148
6985: results unequal 149 != 147
6986: results unequal 140 != 138
6987: results unequal 142 != 140
6988: results unequal 139 != 140
6989: results unequal 148 != 143
6991: results unequal 144 != 143
6992: results unequal 138 != 139
6993: results unequal 142 != 143
6994: results unequal 144 != 142
6995: results unequal 147 != 167
6996: results unequal 139 != 140
6997: results unequal 136 != 137
6998: results unequal 150 != 146
7000: results unequal 142 != 141
7002: results unequal 152 != 149
7003: results unequal 142 != 143
7004: results unequal 151 != 148
7005: results unequal 151 != 149
7006: results unequal 143 != 141
7008: results unequal 151 != 150
7009: results unequal 148 != 149
7010: results unequal 135 != 137
7012: results unequal 147 != 146
7013: results unequal 143 != 144
7014: results unequal 146 != 147
7015: results unequal 152 != 150
7017: results unequal 147 != 144
7018: results unequal 143 != 144
7020: results unequal 140 != 143
7021: results unequal 144 != 142
7022: results unequal 164 != 160
7023: results unequal 145 != 148
7024: results unequal 145 != 142
7025: results unequal 138 != 135
7027: results unequal 130 != 128
7028: results unequal 127 != 129
7029: results unequal 130 != 127
7030: results unequal 132 != 135
7032: results unequal 129 != 128
7033: results unequal 140 != 142
7034: results unequal 133 != 134
7036: results unequal 138 != 136
7038: results unequal 136 != 137
7039: results unequal 142 != 141
7040: results unequal 143 != 140
7041: results unequal 135 != 137
7042: results unequal 139 != 141
7043: results unequal 146 != 147
7044: results unequal 144 != 145
7045: results unequal 160 != 157
7047: results unequal 155 != 154
7048: results unequal 170 != 157
7049: results unequal 134 != 132
7050: results unequal 131 != 133
7051: results unequal 136 != 137
7052: results unequal 151 != 150
7053: results unequal 136 != 131
7054: results unequal 138 != 140
7055: results unequal 131 != 127
7056: results unequal 128 != 131
7057: results unequal 140 != 133
7061: results unequal 130 != 128
7062: results unequal 124 != 123
7064: results unequal 125 != 123
7065: results unequal 119 != 116
7069: results unequal 112 != 108
7070: results unequal 116 != 111
7072: results unequal 107 != 106
7073: results unequal 107 != 108
7075: results unequal 109 != 111
7076: results unequal 108 != 106
7077: results unequal 109 != 108
7078: results unequal 109 != 111
7079: results unequal 112 != 110
7080: results unequal 111 != 115
7081: results unequal 119 != 121
7083: results unequal 123 != 120
7084: results unequal 127 != 125
7086: results unequal 133 != 132
7087: results unequal 140 != 139
7088: results unequal 136 != 139
7089: results unequal 149 != 148
7093: results unequal 149 != 146
7094: results unequal 142 != 143
7095: results unequal 154 != 157
7096: results unequal 145 != 144
7097: results unequal 151 != 152
7098: results unequal 149 != 148
7100: results unequal 149 != 146
7102: results unequal 144 != 148
7103: results unequal 154 != 153
7104: results unequal 141 != 142
7105: results unequal 152 != 150
7109: results unequal 145 != 144
7110: results unequal 155 != 152
7111: results unequal 143 != 142
7113: results unequal 144 != 139
7114: results unequal 136 != 137
7115: results unequal 139 != 137
7116: results unequal 144 != 146
7117: results unequal 150 != 147
7118: results unequal 149 != 148
7120: results unequal 141 != 147
7121: results unequal 150 != 146
7122: results unequal 142 != 139
7123: results unequal 146 != 144
7124: results unequal 148 != 147
7125: results unequal 143 != 142
7126: results unequal 145 != 143
7127: results unequal 143 != 144
7128: results unequal 142 != 140
7129: results unequal 144 != 145
7130: results unequal 147 != 149
7131: results unequal 145 != 144
7132: results unequal 147 != 148
7133: results unequal 151 != 150
7134: results unequal 143 != 144
7135: results unequal 148 != 149
7136: results unequal 142 != 144
7137: results unequal 158 != 157
7138: results unequal 151 != 150
7140: results unequal 143 != 142
7141: results unequal 141 != 143
7142: results unequal 144 != 145
7143: results unequal 151 != 154
7145: results unequal 156 != 164
7147: results unequal 159 != 158
7149: results unequal 153 != 168
7150: results unequal 151 != 152
7151: results unequal 154 != 151
7152: results unequal 149 != 150
7153: results unequal 158 != 157
7154: results unequal 144 != 149
7155: results unequal 146 != 148
7156: results unequal 146 != 147
7158: results unequal 145 != 157
7159: results unequal 151 != 148
7161: results unequal 150 != 148
7162: results unequal 141 != 144
7163: results unequal 140 != 139
7165: results unequal 127 != 126
7166: results unequal 129 != 130
7167: results unequal 118 != 119
7168: results unequal 125 != 122
7169: results unequal 121 != 125
7170: results unequal 125 != 128
7171: results unequal 128 != 126
7172: results unequal 127 != 126
7173: results unequal 121 != 120
7174: results unequal 122 != 123
7176: results unequal 114 != 117
7177: results unequal 114 != 115
7178: results unequal 116 != 118
7179: results unequal 116 != 117
7181: results unequal 113 != 117
7183: results unequal 126 != 124
7186: results unequal 120 != 121
7187: results unequal 134 != 131
7188: results unequal 124 != 121
7189: results unequal 125 != 120
7190: results unequal 118 != 119
7192: results unequal 112 != 116
7193: results unequal 112 != 113
7194: results unequal 121 != 120
7197: results unequal 122 != 121
7198: results unequal 124 != 123
7199: results unequal 128 != 130
7200: results unequal 119 != 118
7202: results unequal 124 != 122
7203: results unequal 120 != 121
7204: results unequal 119 != 118
7205: results unequal 120 != 121
7206: results unequal 121 != 122
7208: results unequal 128 != 122
7209: results unequal 118 != 124
7210: results unequal 122 != 121
7211: results unequal 121 != 120
7212: results unequal 118 != 117
7213: results unequal 118 != 119
7214: results unequal 119 != 117
7217: results unequal 133 != 135
7219: results unequal 132 != 129
7220: results unequal 129 != 135
7223: results unequal 131 != 132
7224: results unequal 143 != 144
7225: results unequal 132 != 133
7226: results unequal 130 != 129
7228: results unequal 133 != 134
7229: results unequal 132 != 134
7231: results unequal 138 != 136
7232: results unequal 142 != 143
7233: results unequal 134 != 137
7234: results unequal 152 != 147
7235: results unequal 151 != 154
7238: results unequal 139 != 138
7239: results unequal 149 != 143
7240: results unequal 145 != 142
7241: results unequal 148 != 147
7242: results unequal 144 != 143
7243: results unequal 143 != 142
7244: results unequal 137 != 140
7246: results unequal 141 != 140
7248: results unequal 146 != 139
7249: results unequal 138 != 135
7251: results unequal 143 != 139
7252: results unequal 143 != 141
7253: results unequal 148 != 149
7254: results unequal 137 != 136
7255: results unequal 132 != 136
7256: results unequal 137 != 135
7257: results unequal 137 != 138
7258: results unequal 133 != 135
7259: results unequal 133 != 135
7261: results unequal 143 != 137
7263: results unequal 138 != 134
7264: results unequal 140 != 137
7265: results unequal 146 != 148
7266: results unequal 143 != 142
7268: results unequal 143 != 145
7269: results unequal 143 != 149
7270: results unequal 138 != 139
7271: results unequal 148 != 138
7272: results unequal 142 != 143
7274: results unequal 149 != 150
7275: results unequal 143 != 144
7276: results unequal 145 != 144
7278: results unequal 144 != 145
7279: results unequal 138 != 140
7280: results unequal 140 != 141
7282: results unequal 147 != 143
7283: results unequal 144 != 146
7284: results unequal 148 != 147
7285: results unequal 149 != 146
7286: results unequal 153 != 154
7287: results unequal 147 != 146
7288: results unequal 143 != 145
7289: results unequal 149 != 146
7290: results unequal 143 != 147
7291: results unequal 146 != 147
7292: results unequal 146 != 150
7294: results unequal 149 != 147
7296: results unequal 151 != 154
7297: results unequal 147 != 144
7298: results unequal 138 != 141
7299: results unequal 149 != 146
7301: results unequal 146 != 151
7303: results unequal 140 != 138
7304: results unequal 147 != 142
7305: results unequal 147 != 145
7308: results unequal 149 != 152
7309: results unequal 145 != 144
7310: results unequal 146 != 150
7311: results unequal 152 != 150
7312: results unequal 146 != 147
7313: results unequal 141 != 147
7314: results unequal 142 != 143
7316: results unequal 143 != 142
7318: results unequal 151 != 142
7319: results unequal 140 != 142
7320: results unequal 139 != 143
7321: results unequal 154 != 152
7322: results unequal 146 != 147
7323: results unequal 140 != 142
7324: results unequal 137 != 135
7325: results unequal 138 != 135
7326: results unequal 132 != 133
7327: results unequal 134 != 138
7328: results unequal 144 != 143
7329: results unequal 144 != 143
7330: results unequal 142 != 139
7331: results unequal 135 != 134
7332: results unequal 142 != 139
7333: results unequal 146 != 144
7335: results unequal 143 != 146
7336: results unequal 144 != 146
7338: results unequal 144 != 143
7339: results unequal 139 != 141
7340: results unequal 143 != 145
7342: results unequal 146 != 149
7343: results unequal 145 != 151
7344: results unequal 151 != 152
7345: results unequal 151 != 152
7346: results unequal 141 != 142
7347: results unequal 146 != 148
7348: results unequal 141 != 144
7349: results unequal 143 != 146
7350: results unequal 138 != 137
7352: results unequal 146 != 147
7353: results unequal 148 != 149
7355: results unequal 149 != 148
7356: results unequal 149 != 150
7358: results unequal 147 != 145
7359: results unequal 139 != 137
7361: results unequal 139 != 149
7362: results unequal 148 != 146
7363: results unequal 145 != 144
7364: results unequal 138 != 140
7365: results unequal 137 != 138
7366: results unequal 139 != 140
7367: results unequal 138 != 137
7368: results unequal 156 != 157
7369: results unequal 147 != 145
7370: results unequal 150 != 149
7373: results unequal 144 != 147
7374: results unequal 133 != 135
7375: results unequal 144 != 141
7377: results unequal 144 != 143
7378: results unequal 143 != 142
7379: results unequal 133 != 135
7380: results unequal 143 != 142
7381: results unequal 142 != 143
7382: results unequal 153 != 150
7383: results unequal 146 != 145
7384: results unequal 145 != 148
7385: results unequal 149 != 144
7386: results unequal 141 != 142
7387: results unequal 147 != 145
7388: results unequal 143 != 139
7391: results unequal 141 != 142
7392: results unequal 142 != 145
7393: results unequal 148 != 147
7394: results unequal 149 != 148
7395: results unequal 156 != 151
7397: results unequal 151 != 152
7399: results unequal 156 != 154
7400: results unequal 140 != 141
7402: results unequal 142 != 144
7404: results unequal 140 != 141
7406: results unequal 145 != 148
7407: results unequal 142 != 140
7408: results unequal 137 != 134
7409: results unequal 142 != 141
7410: results unequal 143 != 139
7411: results unequal 147 != 145
7412: results unequal 144 != 147
7413: results unequal 143 != 155
7414: results unequal 150 != 149
7415: results unequal 152 != 151
7416: results unequal 147 != 146
7417: results unequal 159 != 153
7418: results unequal 151 != 152
7419: results unequal 149 != 145
7420: results unequal 151 != 150
7421: results unequal 142 != 143
7422: results unequal 142 != 143
7425: results unequal 156 != 158
7426: results unequal 144 != 142
7428: results unequal 143 != 151
7429: results unequal 146 != 147
7432: results unequal 148 != 147
7433: results unequal 146 != 148
7434: results unequal 154 != 151
7435: results unequal 139 != 138
7436: results unequal 144 != 142
7437: results unequal 145 != 146
7438: results unequal 141 != 146
7440: results unequal 148 != 144
7441: results unequal 147 != 143
7443: results unequal 145 != 147
7444: results unequal 151 != 149
7446: results unequal 152 != 153
7448: results unequal 143 != 144
7449: results unequal 148 != 149
7450: results unequal 151 != 148
7451: results unequal 147 != 145
7452: results unequal 143 != 140
7453: results unequal 141 != 142
7454: results unequal 142 != 140
7457: results unequal 145 != 143
7458: results unequal 140 != 143
7459: results unequal 145 != 146
7461: results unequal 146 != 150
7462: results unequal 144 != 140
7463: results unequal 150 != 149
7465: results unequal 156 != 149
7466: results unequal 143 != 142
7467: results unequal 149 != 159
7468: results unequal 143 != 147
7469: results unequal 154 != 153
7470: results unequal 147 != 149
7471: results unequal 145 != 149
7473: results unequal 144 != 148
7475: results unequal 143 != 147
7476: results unequal 146 != 145
7478: results unequal 154 != 150
7479: results unequal 148 != 151
7480: results unequal 150 != 148
7481: results unequal 148 != 145
7483: results unequal 141 != 143
7484: results unequal 146 != 144
7486: results unequal 150 != 151
7487: results unequal 149 != 151
7488: results unequal 144 != 145
7489: results unequal 142 != 143
7490: results unequal 148 != 150
7491: results unequal 155 != 157
7493: results unequal 159 != 160
7494: results unequal 160 != 157
7495: results unequal 158 != 155
7496: results unequal 149 != 148
7497: results unequal 150 != 153
7498: results unequal 150 != 148
7499: results unequal 149 != 150
7500: results unequal 142 != 144
7501: results unequal 149 != 148
7502: results unequal 148 != 145
7503: results unequal 148 != 146
7504: results unequal 143 != 152
7505: results unequal 139 != 140
7506: results unequal 145 != 149
7507: results unequal 146 != 149
7508: results unequal 151 != 152
7509: results unequal 145 != 142
7510: results unequal 142 != 141
7511: results unequal 145 != 143
7512: results unequal 135 != 136
7513: results unequal 138 != 137
7514: results unequal 139 != 138
7515: results unequal 140 != 138
7516: results unequal 141 != 137
7517: results unequal 142 != 141
7519: results unequal 142 != 141
7520: results unequal 141 != 139
7521: results unequal 138 != 139
7522: results unequal 143 != 145
7523: results unequal 145 != 146
7527: results unequal 138 != 141
7528: results unequal 137 != 139
7530: results unequal 140 != 141
7531: results unequal 141 != 140
7534: results unequal 146 != 145
7535: results unequal 142 != 143
7536: results unequal 151 != 153
7537: results unequal 144 != 143
7538: results unequal 144 != 142
7540: results unequal 146 != 148
7542: results unequal 140 != 141
7544: results unequal 150 != 149
7545: results unequal 140 != 142
7547: results unequal 140 != 141
7548: results unequal 147 != 145
7549: results unequal 142 != 151
7551: results unequal 152 != 150
7552: results unequal 145 != 147
7553: results unequal 151 != 147
7554: results unequal 151 != 149
7556: results unequal 150 != 144
7557: results unequal 146 != 147
7560: results unequal 146 != 147
7561: results unequal 149 != 151
7562: results unequal 143 != 141
7563: results unequal 155 != 149
7564: results unequal 143 != 142
7567: results unequal 145 != 146
7568: results unequal 146 != 147
7570: results unequal 147 != 144
7571: results unequal 149 != 144
7572: results unequal 142 != 141
7575: results unequal 149 != 151
7576: results unequal 154 != 151
7578: results unequal 141 != 140
7579: results unequal 144 != 146
7580: results unequal 144 != 145
7582: results unequal 158 != 157
7583: results unequal 153 != 154
7584: results unequal 147 != 148
7585: results unequal 142 != 141
7586: results unequal 141 != 139
7587: results unequal 150 != 148
7588: results unequal 143 != 149
7589: results unequal 148 != 147
7591: results unequal 147 != 146
7592: results unequal 148 != 150
7593: results unequal 152 != 155
7594: results unequal 150 != 149
7595: results unequal 143 != 144
7596: results unequal 143 != 141
7597: results unequal 151 != 147
7600: results unequal 147 != 151
7602: results unequal 138 != 139
7603: results unequal 149 != 142
7604: results unequal 146 != 148
7605: results unequal 147 != 149
7606: results unequal 150 != 149
7609: results unequal 140 != 141
7610: results unequal 137 != 138
7611: results unequal 139 != 135
7612: results unequal 140 != 137
7614: results unequal 150 != 142
7615: results unequal 144 != 145
7617: results unequal 149 != 146
7618: results unequal 150 != 143
7619: results unequal 159 != 156
7622: results unequal 143 != 144
7623: results unequal 148 != 146
7624: results unequal 151 != 152
7625: results unequal 148 != 144
7628: results unequal 143 != 141
7630: results unequal 151 != 146
7631: results unequal 153 != 152
7632: results unequal 153 != 154
7633: results unequal 156 != 154
7634: results unequal 149 != 151
7635: results unequal 152 != 148
7636: results unequal 153 != 152
7637: results unequal 149 != 151
7638: results unequal 151 != 149
7639: results unequal 140 != 141
7640: results unequal 146 != 143
7641: results unequal 150 != 153
7642: results unequal 159 != 157
7643: results unequal 162 != 161
7644: results unequal 148 != 151
7645: results unequal 141 != 144
7646: results unequal 142 != 141
7647: results unequal 145 != 150
7648: results unequal 137 != 144
7649: results unequal 143 != 142
7650: results unequal 145 != 153
7651: results unequal 148 != 149
7652: results unequal 140 != 141
7653: results unequal 141 != 143
7654: results unequal 141 != 139
7656: results unequal 151 != 141
7657: results unequal 144 != 143
7658: results unequal 138 != 136
7660: results unequal 145 != 143
7662: results unequal 150 != 149
7663: results unequal 145 != 144
7664: results unequal 148 != 147
7666: results unequal 145 != 143
7667: results unequal 150 != 145
7669: results unequal 144 != 145
7670: results unequal 151 != 152
7671: results unequal 142 != 144
7672: results unequal 161 != 155
7673: results unequal 151 != 147
7674: results unequal 145 != 146
7675: results unequal 144 != 143
7676: results unequal 142 != 144
7677: results unequal 141 != 140
7679: results unequal 139 != 143
7680: results unequal 137 != 138
7681: results unequal 143 != 141
7682: results unequal 138 != 139
7683: results unequal 143 != 146
7684: results unequal 144 != 141
7685: results unequal 151 != 149
7686: results unequal 150 != 149
7687: results unequal 149 != 147
7688: results unequal 146 != 148
7689: results unequal 148 != 145
7690: results unequal 152 != 149
7691: results unequal 146 != 142
7692: results unequal 149 != 144
7694: results unequal 147 != 148
7695: results unequal 153 != 151
7696: results unequal 155 != 154
7697: results unequal 155 != 149
7699: results unequal 155 != 152
7700: results unequal 149 != 151
7701: results unequal 144 != 143
7704: results unequal 147 != 145
7705: results unequal 148 != 150
7706: results unequal 150 != 146
7707: results unequal 146 != 147
7708: results unequal 147 != 150
7709: results unequal 138 != 137
7710: results unequal 145 != 144
7712: results unequal 140 != 143
7713: results unequal 139 != 140
7714: results unequal 153 != 152
7715: results unequal 151 != 148
7716: results unequal 148 != 149
7717: results unequal 151 != 162
7718: results unequal 152 != 151
7719: results unequal 152 != 159
7720: results unequal 146 != 153
7721: results unequal 156 != 155
7722: results unequal 155 != 154
7723: results unequal 150 != 147
7725: results unequal 152 != 154
7726: results unequal 167 != 164
7727: results unequal 156 != 159
7729: results unequal 148 != 147
7730: results unequal 142 != 144
7732: results unequal 151 != 148
7733: results unequal 147 != 155
7734: results unequal 151 != 153
7735: results unequal 143 != 150
7736: results unequal 143 != 142
7737: results unequal 140 != 139
7738: results unequal 149 != 148
7739: results unequal 147 != 148
7740: results unequal 149 != 152
7741: results unequal 147 != 146
7742: results unequal 143 != 142
7744: results unequal 137 != 144
7745: results unequal 151 != 150
7747: results unequal 141 != 140
7748: results unequal 142 != 144
7749: results unequal 141 != 140
7750: results unequal 142 != 140
7751: results unequal 143 != 144
7752: results unequal 140 != 142
7753: results unequal 141 != 142
7754: results unequal 143 != 144
7755: results unequal 143 != 141
7758: results unequal 150 != 147
7759: results unequal 142 != 143
7761: results unequal 155 != 152
7763: results unequal 144 != 145
7764: results unequal 157 != 156
7765: results unequal 149 != 148
7766: results unequal 131 != 129
7767: results unequal 138 != 140
7768: results unequal 146 != 147
7771: results unequal 147 != 146
7772: results unequal 142 != 141
7773: results unequal 149 != 148
7774: results unequal 138 != 139
7776: results unequal 140 != 141
7778: results unequal 144 != 145
7779: results unequal 139 != 138
7780: results unequal 137 != 136
7781: results unequal 140 != 137
7782: results unequal 148 != 159
7783: results unequal 155 != 156
7784: results unequal 133 != 135
7785: results unequal 148 != 147
7786: results unequal 147 != 148
7788: results unequal 143 != 142
7790: results unequal 146 != 148
7791: results unequal 149 != 148
7794: results unequal 145 != 144
7797: results unequal 156 != 160
7798: results unequal 146 != 147
7799: results unequal 138 != 139
7801: results unequal 141 != 142
7802: results unequal 148 != 147
7803: results unequal 153 != 155
7804: results unequal 160 != 159
7805: results unequal 152 != 154
7806: results unequal 148 != 147
7807: results unequal 145 != 143
7809: results unequal 144 != 146
7813: results unequal 144 != 143
7814: results unequal 139 != 138
7815: results unequal 137 != 153
7816: results unequal 142 != 139
7817: results unequal 156 != 149
7819: results unequal 155 != 144
7821: results unequal 142 != 141
7822: results unequal 143 != 141
7823: results unequal 128 != 130
7824: results unequal 125 != 126
7825: results unequal 135 != 136
7826: results unequal 138 != 137
7827: results unequal 146 != 145
7828: results unequal 162 != 157
7829: results unequal 154 != 152
7830: results unequal 148 != 162
7831: results unequal 151 != 150
7832: results unequal 152 != 149
7833: results unequal 148 != 145
7834: results unequal 146 != 147
7835: results unequal 152 != 151
7837: results unequal 148 != 149
7838: results unequal 152 != 148
7839: results unequal 145 != 143
7840: results unequal 145 != 143
7841: results unequal 163 != 156
7842: results unequal 144 != 145
7843: results unequal 146 != 147
7844: results unequal 143 != 140
7845: results unequal 140 != 139
7846: results unequal 146 != 145
7849: results unequal 138 != 154
7850: results unequal 130 != 129
7851: results unequal 133 != 134
7852: results unequal 136 != 137
7853: results unequal 157 != 152
7855: results unequal 137 != 138
7856: results unequal 148 != 147
7857: results unequal 150 != 151
7858: results unequal 147 != 167
7859: results unequal 152 != 150
7860: results unequal 144 != 142
7862: results unequal 145 != 146
7863: results unequal 140 != 142
7864: results unequal 142 != 141
7865: results unequal 144 != 140
7866: results unequal 143 != 145
7868: results unequal 146 != 143
7869: results unequal 137 != 136
7870: results unequal 137 != 135
7872: results unequal 143 != 142
7874: results unequal 151 != 149
7875: results unequal 138 != 137
7877: results unequal 149 != 147
7878: results unequal 142 != 140
7880: results unequal 143 != 140
7881: results unequal 124 != 123
7882: results unequal 125 != 127
7884: results unequal 133 != 134
7886: results unequal 140 != 144
7887: results unequal 136 != 134
7889: results unequal 147 != 146
7891: results unequal 144 != 142
7893: results unequal 136 != 137
7894: results unequal 137 != 139
7895: results unequal 143 != 144
7897: results unequal 134 != 132
7899: results unequal 142 != 139
7900: results unequal 145 != 146
7901: results unequal 145 != 146
7903: results unequal 137 != 138
7904: results unequal 146 != 157
7905: results unequal 143 != 144
7906: results unequal 148 != 145
7907: results unequal 141 != 140
7909: results unequal 145 != 147
7912: results unequal 153 != 151
7913: results unequal 168 != 166
7914: results unequal 134 != 135
7915: results unequal 134 != 133
7917: results unequal 141 != 142
7918: results unequal 145 != 142
7919: results unequal 144 != 143
7920: results unequal 148 != 146
7921: results unequal 142 != 141
7922: results unequal 133 != 136
7923: results unequal 136 != 135
7924: results unequal 142 != 141
7925: results unequal 142 != 140
7927: results unequal 143 != 144
7928: results unequal 144 != 142
7929: results unequal 141 != 142
7930: results unequal 139 != 140
7931: results unequal 136 != 137
7933: results unequal 133 != 144
7935: results unequal 139 != 141
7937: results unequal 139 != 142
7939: results unequal 145 != 146
7941: results unequal 140 != 139
7942: results unequal 143 != 145
7944: results unequal 137 != 157
7948: results unequal 138 != 141
7949: results unequal 141 != 138
7950: results unequal 138 != 140
7951: results unequal 140 != 141
7954: results unequal 151 != 152
7955: results unequal 144 != 143
7956: results unequal 162 != 154
7957: results unequal 147 != 146
7958: results unequal 148 != 149
7959: results unequal 150 != 151
7960: results unequal 151 != 147
7962: results unequal 138 != 139
7963: results unequal 151 != 148
7964: results unequal 147 != 146
7965: results unequal 149 != 144
7970: results unequal 144 != 145
7971: results unequal 147 != 146
7972: results unequal 147 != 145
7973: results unequal 141 != 140
7974: results unequal 141 != 158
7976: results unequal 147 != 148
7977: results unequal 142 != 156
7978: results unequal 140 != 142
7979: results unequal 163 != 157
7980: results unequal 151 != 154
7982: results unequal 143 != 144
7986: results unequal 139 != 137
7987: results unequal 138 != 139
7988: results unequal 139 != 140
7989: results unequal 140 != 142
7990: results unequal 145 != 146
7993: results unequal 139 != 138
7998: results unequal 144 != 141
7999: results unequal 138 != 140
8000: results unequal 136 != 137
8002: results unequal 141 != 140
8003: results unequal 149 != 143
8004: results unequal 145 != 148
8005: results unequal 136 != 138
8006: results unequal 146 != 143
8007: results unequal 157 != 154
8009: results unequal 141 != 140
8011: results unequal 147 != 146
8012: results unequal 145 != 144
8014: results unequal 141 != 143
8016: results unequal 139 != 140
8017: results unequal 136 != 139
8018: results unequal 156 != 152
8019: results unequal 145 != 144
8021: results unequal 143 != 144
8022: results unequal 167 != 155
8023: results unequal 149 != 147
8024: results unequal 145 != 144
8027: results unequal 145 != 144
8028: results unequal 147 != 146
8029: results unequal 145 != 143
8031: results unequal 145 != 151
8034: results unequal 144 != 143
8035: results unequal 143 != 140
8036: results unequal 153 != 150
8037: results unequal 136 != 151
8038: results unequal 150 != 154
8039: results unequal 133 != 132
8042: results unequal 141 != 140
8043: results unequal 144 != 143
8045: results unequal 140 != 138
8046: results unequal 139 != 140
8048: results unequal 147 != 143
8049: results unequal 136 != 135
8050: results unequal 146 != 144
8052: results unequal 140 != 142
8053: results unequal 146 != 144
8054: results unequal 144 != 141
8055: results unequal 138 != 137
8056: results unequal 146 != 145
8057: results unequal 142 != 143
8058: results unequal 142 != 144
8059: results unequal 144 != 143
8060: results unequal 144 != 143
8061: results unequal 142 != 139
8065: results unequal 142 != 141
8066: results unequal 146 != 145
8067: results unequal 155 != 156
8068: results unequal 141 != 142
8069: results unequal 152 != 150
8072: results unequal 143 != 144
8073: results unequal 149 != 151
8074: results unequal 153 != 152
8075: results unequal 142 != 143
8080: results unequal 144 != 145
8081: results unequal 144 != 146
8083: results unequal 149 != 148
8084: results unequal 153 != 150
8086: results unequal 144 != 146
8087: results unequal 152 != 155
8088: results unequal 147 != 148
8089: results unequal 141 != 142
8092: results unequal 144 != 146
8094: results unequal 156 != 155
8095: results unequal 144 != 143
8096: results unequal 151 != 149
8098: results unequal 144 != 143
8099: results unequal 144 != 145
8100: results unequal 142 != 153
8102: results unequal 140 != 141
8104: results unequal 140 != 141
8105: results unequal 137 != 138
8107: results unequal 120 != 123
8108: results unequal 131 != 134
8109: results unequal 138 != 139
8110: results unequal 147 != 143
8111: results unequal 140 != 138
8112: results unequal 141 != 142
8119: results unequal 150 != 147
8120: results unequal 140 != 141
8121: results unequal 145 != 144
8122: results unequal 147 != 151
8123: results unequal 146 != 148
8124: results unequal 148 != 149
8125: results unequal 154 != 157
8126: results unequal 153 != 152
8127: results unequal 149 != 146
8128: results unequal 144 != 145
8129: results unequal 147 != 148
8130: results unequal 144 != 145
8131: results unequal 141 != 142
8132: results unequal 139 != 138
8133: results unequal 145 != 144
8134: results unequal 145 != 142
8137: results unequal 135 != 134
8138: results unequal 138 != 136
8139: results unequal 139 != 140
8140: results unequal 147 != 146
8141: results unequal 146 != 149
8142: results unequal 143 != 144
8143: results unequal 158 != 157
8144: results unequal 141 != 140
8145: results unequal 144 != 143
8146: results unequal 145 != 143
8147: results unequal 135 != 134
8149: results unequal 150 != 146
8150: results unequal 146 != 143
8151: results unequal 142 != 141
8152: results unequal 144 != 145
8154: results unequal 144 != 140
8155: results unequal 140 != 154
8156: results unequal 141 != 142
8159: results unequal 139 != 136
8160: results unequal 135 != 136
8161: results unequal 129 != 130
8163: results unequal 135 != 133
8164: results unequal 138 != 140
8165: results unequal 138 != 137
8166: results unequal 132 != 131
8167: results unequal 137 != 135
8168: results unequal 137 != 136
8169: results unequal 137 != 138
8170: results unequal 139 != 138
8173: results unequal 144 != 143
8174: results unequal 142 != 144
8175: results unequal 143 != 144
8178: results unequal 139 != 137
8179: results unequal 142 != 141
8180: results unequal 145 != 147
8181: results unequal 148 != 149
8182: results unequal 139 != 138
8183: results unequal 138 != 137
8184: results unequal 142 != 145
8185: results unequal 140 != 154
8187: results unequal 142 != 144
8188: results unequal 145 != 147
8192: results unequal 141 != 143
8193: results unequal 140 != 143
8194: results unequal 143 != 150
8195: results unequal 132 != 133
8196: results unequal 134 != 136
8198: results unequal 151 != 146
8199: results unequal 138 != 139
8200: results unequal 139 != 138
8201: results unequal 137 != 149
8202: results unequal 137 != 139
8203: results unequal 137 != 138
8204: results unequal 139 != 138
8205: results unequal 142 != 144
8206: results unequal 131 != 130
8208: results unequal 141 != 140
8209: results unequal 133 != 134
8211: results unequal 138 != 137
8212: results unequal 135 != 136
8216: results unequal 136 != 139
8217: results unequal 142 != 143
8218: results unequal 143 != 141
8220: results unequal 143 != 142
8221: results unequal 139 != 140
8222: results unequal 142 != 140
8223: results unequal 144 != 142
8224: results unequal 137 != 148
8226: results unequal 140 != 136
8228: results unequal 140 != 143
8229: results unequal 143 != 139
8230: results unequal 137 != 138
8231: results unequal 139 != 141
8233: results unequal 147 != 145
8234: results unequal 142 != 141
8235: results unequal 143 != 142
8239: results unequal 142 != 143
8240: results unequal 144 != 145
8241: results unequal 144 != 142
8242: results unequal 142 != 139
8243: results unequal 140 != 141
8245: results unequal 154 != 152
8246: results unequal 142 != 140
8247: results unequal 143 != 142
8248: results unequal 136 != 137
8249: results unequal 143 != 141
8251: results unequal 140 != 144
8252: results unequal 146 != 143
8253: results unequal 139 != 140
8254: results unequal 138 != 137
8255: results unequal 141 != 142
8256: results unequal 144 != 143
8257: results unequal 136 != 138
8259: results unequal 151 != 149
8260: results unequal 147 != 146
8261: results unequal 144 != 142
8264: results unequal 139 != 140
8265: results unequal 144 != 142
8266: results unequal 142 != 153
8267: results unequal 143 != 141
8268: results unequal 139 != 137
8269: results unequal 140 != 143
8270: results unequal 142 != 149
8272: results unequal 149 != 150
8273: results unequal 152 != 151
8275: results unequal 143 != 142
8277: results unequal 148 != 146
8278: results unequal 143 != 145
8280: results unequal 150 != 149
8281: results unequal 142 != 143
8282: results unequal 142 != 138
8284: results unequal 148 != 145
8285: results unequal 145 != 146
8286: results unequal 151 != 147
8287: results unequal 143 != 142
8288: results unequal 143 != 146
8289: results unequal 146 != 144
8290: results unequal 138 != 139
8291: results unequal 144 != 145
8292: results unequal 139 != 137
8293: results unequal 147 != 148
8294: results unequal 143 != 142
8297: results unequal 146 != 144
8298: results unequal 148 != 145
8299: results unequal 142 != 143
8300: results unequal 145 != 146
8301: results unequal 138 != 143
8303: results unequal 150 != 149
8304: results unequal 154 != 155
8308: results unequal 159 != 157
8309: results unequal 161 != 162
8310: results unequal 167 != 166
8311: results unequal 156 != 155
8314: results unequal 153 != 159
8315: results unequal 153 != 151
8316: results unequal 155 != 153
8318: results unequal 151 != 150
8319: results unequal 141 != 142
8320: results unequal 148 != 157
8322: results unequal 153 != 151
8323: results unequal 155 != 152
8324: results unequal 151 != 152
8325: results unequal 144 != 143
8326: results unequal 140 != 142
8329: results unequal 145 != 144
8334: results unequal 142 != 146
8336: results unequal 144 != 145
8337: results unequal 144 != 142
8339: results unequal 140 != 141
8341: results unequal 143 != 146
8344: results unequal 150 != 151
8345: results unequal 150 != 149
8347: results unequal 145 != 144
8348: results unequal 140 != 138
8350: results unequal 141 != 140
8351: results unequal 141 != 143
8352: results unequal 144 != 143
8353: results unequal 144 != 146
8354: results unequal 144 != 143
8355: results unequal 137 != 138
8356: results unequal 136 != 138
8357: results unequal 142 != 147
8358: results unequal 160 != 162
8359: results unequal 154 != 151
8360: results unequal 156 != 157
8361: results unequal 150 != 148
8362: results unequal 147 != 146
8365: results unequal 129 != 138
8366: results unequal 143 != 142
8367: results unequal 147 != 146
8368: results unequal 146 != 147
8369: results unequal 143 != 144
8370: results unequal 148 != 146
8371: results unequal 149 != 146
8374: results unequal 146 != 154
8376: results unequal 141 != 140
8377: results unequal 141 != 140
8379: results unequal 139 != 143
8380: results unequal 137 != 138
8381: results unequal 141 != 143
8383: results unequal 139 != 138
8384: results unequal 139 != 138
8385: results unequal 139 != 142
8386: results unequal 144 != 145
8388: results unequal 143 != 142
8389: results unequal 144 != 145
8391: results unequal 145 != 146
8392: results unequal 142 != 145
8393: results unequal 144 != 142
8394: results unequal 138 != 139
8395: results unequal 142 != 141
8396: results unequal 142 != 143
8397: results unequal 144 != 143
8398: results unequal 145 != 143
8399: results unequal 147 != 146
8400: results unequal 147 != 146
8401: results unequal 147 != 144
8402: results unequal 147 != 146
8403: results unequal 145 != 146
8407: results unequal 135 != 136
8412: results unequal 149 != 145
8413: results unequal 142 != 141
8415: results unequal 139 != 137
8416: results unequal 141 != 143
8418: results unequal 140 != 141
8419: results unequal 138 != 139
8420: results unequal 141 != 140
8421: results unequal 138 != 139
8422: results unequal 138 != 140
8423: results unequal 141 != 142
8424: results unequal 145 != 143
8425: results unequal 141 != 145
8427: results unequal 135 != 136
8428: results unequal 143 != 148
8429: results unequal 152 != 151
8430: results unequal 148 != 144
8431: results unequal 146 != 156
8433: results unequal 146 != 147
8435: results unequal 143 != 142
8436: results unequal 142 != 140
8437: results unequal 150 != 151
8438: results unequal 147 != 146
8440: results unequal 142 != 140
8441: results unequal 135 != 136
8442: results unequal 145 != 148
8443: results unequal 139 != 141
8444: results unequal 137 != 139
8446: results unequal 138 != 139
8447: results unequal 143 != 142
8448: results unequal 149 != 148
8449: results unequal 137 != 139
8450: results unequal 140 != 139
8451: results unequal 146 != 145
8452: results unequal 140 != 141
8453: results unequal 140 != 139
8454: results unequal 138 != 136
8456: results unequal 138 != 140
8457: results unequal 136 != 138
8460: results unequal 137 != 138
8461: results unequal 138 != 139
8462: results unequal 140 != 139
8467: results unequal 134 != 135
8468: results unequal 133 != 131
8469: results unequal 142 != 141
8471: results unequal 143 != 141
8473: results unequal 140 != 139
8475: results unequal 146 != 144
8476: results unequal 137 != 140
8477: results unequal 138 != 136
8478: results unequal 139 != 138
8479: results unequal 141 != 137
8480: results unequal 140 != 139
8481: results unequal 135 != 138
8482: results unequal 139 != 137
8483: results unequal 139 != 141
8484: results unequal 141 != 142
8485: results unequal 140 != 141
8486: results unequal 144 != 146
8487: results unequal 142 != 139
8488: results unequal 137 != 136
8489: results unequal 136 != 135
8490: results unequal 131 != 132
8491: results unequal 134 != 133
8494: results unequal 129 != 128
8495: results unequal 119 != 120
8496: results unequal 122 != 121
8498: results unequal 122 != 119
8499: results unequal 115 != 118
8500: results unequal 114 != 113
8501: results unequal 112 != 113
8503: results unequal 108 != 107
8504: results unequal 111 != 109
8509: results unequal 102 != 103
8511: results unequal 104 != 102
8514: results unequal 93 != 89
8517: results unequal 92 != 93
8518: results unequal 83 != 84
8519: results unequal 86 != 87
8520: results unequal 84 != 85
8521: results unequal 83 != 82
8522: results unequal 80 != 79
8523: results unequal 83 != 82
8524: results unequal 77 != 79
8525: results unequal 75 != 74
8526: results unequal 69 != 74
8527: results unequal 64 != 63
8529: results unequal 48 != 49
8530: results unequal 47 != 45
8531: results unequal 45 != 46
8532: results unequal 44 != 46
8533: results unequal 44 != 42
8534: results unequal 43 != 41
8537: results unequal 39 != 40
8538: results unequal 38 != 39
8543: results unequal 35 != 34
8545: results unequal 32 != 33
8547: results unequal 37 != 36
8550: results unequal 32 != 33
8551: results unequal 36 != 34
8553: results unequal 32 != 31
8554: results unequal 32 != 31
8555: results unequal 31 != 32
8557: results unequal 26 != 27
8558: results unequal 27 != 25
8559: results unequal 26 != 24
8568: results unequal 22 != 23
8569: results unequal 25 != 23
8570: results unequal 22 != 23
8571: results unequal 22 != 23
8575: results unequal 25 != 24
8579: results unequal 20 != 19
8580: results unequal 21 != 22
8586: results unequal 22 != 23
8587: results unequal 19 != 20
8589: results unequal 22 != 20
8590: results unequal 21 != 20
8593: results unequal 17 != 18
8594: results unequal 16 != 17
8595: results unequal 18 != 16
8597: results unequal 14 != 15
8601: results unequal 16 != 15
8610: results unequal 13 != 14
8615: results unequal 12 != 13
8621: results unequal 10 != 11
8625: results unequal 11 != 12
8627: results unequal 11 != 12
8628: results unequal 13 != 12
8629: results unequal 10 != 11
8633: results unequal 10 != 9
8644: results unequal 10 != 9
8648: results unequal 8 != 9
8649: results unequal 9 != 8
8652: results unequal 6 != 7
8654: results unequal 6 != 7
8655: results unequal 7 != 6
8658: results unequal 5 != 6
8665: results unequal 4 != 5
8668: results unequal 4 != 5
8670: results unequal 4 != 5
8673: results unequal 3 != 4
8683: results unequal 4 != 3
8698: results unequal 4 != 5
8729: results unequal 3 != 4
8730: results unequal 4 != 5
8736: results unequal 4 != 3
8737: results unequal 3 != 4
8738: results unequal 4 != 3
8739: results unequal 3 != 4
8744: results unequal 3 != 4
8754: results unequal 2 != 3
8756: results unequal 2 != 3
8767: results unequal 2 != 3
8794: results unequal 2 != 3
8845: results unequal 3 != 2
8865: results unequal 2 != 3
8871: results unequal 2 != 3
8930: results unequal 3 != 2
8933: results unequal 2 != 3
8936: results unequal 2 != 3
8950: results unequal 2 != 3
8969: results unequal 2 != 1
8977: results unequal 3 != 2
8997: results unequal 3 != 2
9018: results unequal 2 != 3
9034: results unequal 2 != 3
9054: results unequal 4 != 3
9090: results unequal 3 != 2
9109: results unequal 2 != 3
9113: results unequal 3 != 2
9120: results unequal 2 != 3
9130: results unequal 2 != 3
9131: results unequal 2 != 3
9134: results unequal 3 != 2
9135: results unequal 2 != 3
9138: results unequal 2 != 3
9140: results unequal 2 != 3
9150: results unequal 2 != 3
9152: results unequal 3 != 2
9207: results unequal 2 != 3
9215: results unequal 3 != 2
9251: results unequal 2 != 3
9292: results unequal 2 != 1
9294: results unequal 1 != 2
9295: results unequal 1 != 2
9298: results unequal 1 != 2
9302: results unequal 2 != 1
9316: results unequal 2 != 1
9383: results unequal 2 != 3
9387: results unequal 2 != 3
9440: results unequal 2 != 3
9441: results unequal 2 != 3
9463: results unequal 2 != 3
9464: results unequal 2 != 3
9491: results unequal 2 != 3
9554: results unequal 3 != 2
9607: results unequal 3 != 4
9618: results unequal 3 != 2
9625: results unequal 2 != 3
9672: results unequal 1 != 2
9699: results unequal 4 != 5
9705: results unequal 3 != 2
9717: results unequal 3 != 2
9725: results unequal 3 != 5
9726: results unequal 2 != 3
9727: results unequal 2 != 5
9734: results unequal 3 != 2
9738: results unequal 2 != 4
9739: results unequal 2 != 4
9744: results unequal 2 != 4
9757: results unequal 3 != 2
9764: results unequal 3 != 2
9771: results unequal 3 != 2
9806: results unequal 3 != 2
9807: results unequal 5 != 4
9889: results unequal 2 != 1
9895: results unequal 1 != 2
9915: results unequal 4 != 3
9921: results unequal 4 != 3
9935: results unequal 3 != 2
9941: results unequal 2 != 3
9944: results unequal 4 != 2
9951: results unequal 3 != 2
9997: results unequal 3 != 2
failures=0 goods=7333 uneqs=2667
... udev_test end
[-- Attachment #4: Type: text/plain, Size: 286 bytes --]
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
[-- Attachment #5: Type: text/plain, Size: 226 bytes --]
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: udevd on very large systems: again
2007-05-01 23:42 udevd on very large systems: again George Beshers
` (2 preceding siblings ...)
2007-05-02 21:26 ` George Beshers
@ 2007-05-02 21:39 ` George Beshers
2007-05-02 23:42 ` Kay Sievers
` (3 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: George Beshers @ 2007-05-02 21:39 UTC (permalink / raw)
To: linux-hotplug
Kay Sievers wrote:
> On 5/2/07, Kay Sievers <kay.sievers@vrfy.org> wrote:
>> On 5/2/07, George Beshers <gbeshers@sgi.com> wrote:
>> >
>> > After some testing the following patch seems safe for dealing with
>> computers
>> > with more than 500 processors. It occurred to me that it might be
>> > easier and
>> > just as useful to note when udev is running on a large computer
>> (e.g., >= 8p
>> > and >= 16Gb of memory) and simply not worry about throttling at
>> that point.
>> >
>> > The patch should apply cleanly against udev-110.
>> >
>> > Comments welcome.
>>
>> Looks fine so far, but I still don't see how reading a seq-proc-file
>> could miss entries. Are you expecting this to happen? Did you ever see
>> this for any of these files?
>
> If I read linux/fs/proc/proc_misc.c correctly, /proc/stat fills a
> buffer of 128kB in one call and passes the data to the file.
>
> I wonder how long it will take, that you guys hit the 128k limit. :)
>
> Thanks,
> Kay
Hmmm... well on the 128p system where I did my testing the size of
/proc/stat ranged from 5317 to 5451 (that was with 151 active procs).
At that scale 2048 should be OK.
BTW. I should have said that the log was generated with a kernel
build (make -j 128 or something like that) going.
George
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: udevd on very large systems: again
2007-05-01 23:42 udevd on very large systems: again George Beshers
` (3 preceding siblings ...)
2007-05-02 21:39 ` George Beshers
@ 2007-05-02 23:42 ` Kay Sievers
2007-05-02 23:51 ` Kay Sievers
` (2 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Kay Sievers @ 2007-05-02 23:42 UTC (permalink / raw)
To: linux-hotplug
On Wed, 2007-05-02 at 17:26 -0400, George Beshers wrote:
> Kay Sievers wrote:
> > Looks fine so far, but I still don't see how reading a seq-proc-file
> > could miss entries. Are you expecting this to happen? Did you ever see
> > this for any of these files?
> The answer is slightly complex. No I never saw it happen, but I am
> concerned about it. To illustrate that, consider the following test
> program and the output log attached. Basically, the /proc/stat file
> does seem to be changing dynamically and an open file does not
> present a stable snapshot.
Looking at the seq_file code, calling lseek() causes the buffer to be
repopulated:
seq_lseek() -> traverse() -> m->op->show()
while show() is the method of the "stat" file that fills the buffer.
A simple read() should not do that, and just copy the content (up to
128kB) of the kernel seq_file file buffer to the user-process:
seq_read() -> copy_to_user(buf, m->buf + m->from, n)
> So the danger is that the procs_running
> might get split at a 4k boundary and the split changes by the time
> the next read occurs so procs_running is corrupted.
I'm pretty sure, that this doesn't happen, if you don't seek(). Here is
a test, that opens /proc/stat, reads a single byte (which fills the
buffer), forks a ton of processes and reads the rest of the buffer. You
see that the "processes" value did not increase:
$ ./seq
processes 57425
processes 57425
processes 58203
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
int main(int argc, char *argv[])
{
FILE* f;
char buf[1024];
int i;
system("grep processes /proc/stat");
f = fopen("/proc/stat", "r");
fread(buf, 1, 1, f);
for (i = 0; i < 777; i++)
system("/bin/true");
while (fgets(buf, sizeof(buf), f))
if (strncmp(buf, "processes", 9) = 0)
printf("%s", buf);
fclose(f);
system("grep processes /proc/stat");
return 0;
}
Thanks,
Kay
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: udevd on very large systems: again
2007-05-01 23:42 udevd on very large systems: again George Beshers
` (4 preceding siblings ...)
2007-05-02 23:42 ` Kay Sievers
@ 2007-05-02 23:51 ` Kay Sievers
2007-05-03 19:49 ` George Beshers
2007-05-03 21:12 ` Kay Sievers
7 siblings, 0 replies; 9+ messages in thread
From: Kay Sievers @ 2007-05-02 23:51 UTC (permalink / raw)
To: linux-hotplug
[-- Attachment #1: Type: text/plain, Size: 1634 bytes --]
On Thu, 2007-05-03 at 01:42 +0200, Kay Sievers wrote:
> On Wed, 2007-05-02 at 17:26 -0400, George Beshers wrote:
> > Kay Sievers wrote:
> > > Looks fine so far, but I still don't see how reading a seq-proc-file
> > > could miss entries. Are you expecting this to happen? Did you ever see
> > > this for any of these files?
>
> > The answer is slightly complex. No I never saw it happen, but I am
> > concerned about it. To illustrate that, consider the following test
> > program and the output log attached. Basically, the /proc/stat file
> > does seem to be changing dynamically and an open file does not
> > present a stable snapshot.
>
> Looking at the seq_file code, calling lseek() causes the buffer to be
> repopulated:
> seq_lseek() -> traverse() -> m->op->show()
> while show() is the method of the "stat" file that fills the buffer.
>
> A simple read() should not do that, and just copy the content (up to
> 128kB) of the kernel seq_file file buffer to the user-process:
> seq_read() -> copy_to_user(buf, m->buf + m->from, n)
>
> > So the danger is that the procs_running
> > might get split at a 4k boundary and the split changes by the time
> > the next read occurs so procs_running is corrupted.
>
> I'm pretty sure, that this doesn't happen, if you don't seek(). Here is
> a test, that opens /proc/stat, reads a single byte (which fills the
> buffer), forks a ton of processes and reads the rest of the buffer. You
> see that the "processes" value did not increase:
> $ ./seq
> processes 57425
> processes 57425
> processes 58203
The patch should be as simple as this now, I hope. :)
Thanks,
Kay
[-- Attachment #2: udev-proc-buffer.patch --]
[-- Type: text/x-patch, Size: 2382 bytes --]
diff --git a/udevd.c b/udevd.c
index 645b068..4086b96 100644
--- a/udevd.c
+++ b/udevd.c
@@ -318,61 +318,42 @@ static void msg_queue_insert(struct udev
static int mem_size_mb(void)
{
- int f;
- char buf[8192];
- long int len;
- const char *pos;
- long int memsize;
-
- f = open("/proc/meminfo", O_RDONLY);
- if (f == -1)
- return -1;
-
- len = read(f, buf, sizeof(buf)-1);
- close(f);
+ FILE* f;
+ char buf[1024];
+ long int memsize = -1;
- if (len <= 0)
+ f = fopen("/proc/meminfo", "r");
+ if (f == NULL)
return -1;
- buf[len] = '\0';
- pos = strstr(buf, "MemTotal: ");
- if (pos == NULL)
- return -1;
+ while (fgets(buf, sizeof(buf), f) != NULL) {
+ long int value;
- if (sscanf(pos, "MemTotal: %ld kB", &memsize) != 1)
- return -1;
+ if (sscanf(buf, "MemTotal: %ld kB", &value) == 1) {
+ memsize = value / 1024;
+ break;
+ }
+ }
- return memsize / 1024;
+ return memsize;
}
static int cpu_count(void)
{
- int f;
- char buf[65536];
- int len;
- const char *pos;
+ FILE* f;
+ char buf[1024];
int count = 0;
- f = open("/proc/stat", O_RDONLY);
- if (f == -1)
+ f = fopen("/proc/stat", "r");
+ if (f == NULL)
return -1;
- len = read(f, buf, sizeof(buf)-1);
- close(f);
- if (len <= 0)
- return -1;
- buf[len] = '\0';
-
- pos = strstr(buf, "cpu");
- if (pos == NULL)
- return -1;
-
- while (pos != NULL) {
- if (strncmp(pos, "cpu", 3) == 0 &&isdigit(pos[3]))
+ while (fgets(buf, sizeof(buf), f) != NULL) {
+ if (strncmp(buf, "cpu", 3) == 0 && isdigit(buf[3]))
count++;
- pos = strstr(&pos[3], "cpu");
}
+ fclose(f);
if (count == 0)
return -1;
return count;
@@ -380,29 +361,24 @@ static int cpu_count(void)
static int running_processes(void)
{
- int f;
- char buf[32768];
- int len;
- int running;
- const char *pos;
+ FILE* f;
+ char buf[1024];
+ int running = -1;
- f = open("/proc/stat", O_RDONLY);
- if (f == -1)
+ f = fopen("/proc/stat", "r");
+ if (f == NULL)
return -1;
- len = read(f, buf, sizeof(buf)-1);
- close(f);
- if (len <= 0)
- return -1;
- buf[len] = '\0';
-
- pos = strstr(buf, "procs_running ");
- if (pos == NULL)
- return -1;
+ while (fgets(buf, sizeof(buf), f) != NULL) {
+ int value;
- if (sscanf(pos, "procs_running %u", &running) != 1)
- return -1;
+ if (sscanf(buf, "procs_running %u", &value) == 1) {
+ running = value;
+ break;
+ }
+ }
+ fclose(f);
return running;
}
[-- Attachment #3: Type: text/plain, Size: 286 bytes --]
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
[-- Attachment #4: Type: text/plain, Size: 226 bytes --]
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: udevd on very large systems: again
2007-05-01 23:42 udevd on very large systems: again George Beshers
` (5 preceding siblings ...)
2007-05-02 23:51 ` Kay Sievers
@ 2007-05-03 19:49 ` George Beshers
2007-05-03 21:12 ` Kay Sievers
7 siblings, 0 replies; 9+ messages in thread
From: George Beshers @ 2007-05-03 19:49 UTC (permalink / raw)
To: linux-hotplug
Yes your right --- I am guilty of not reading the source
in sufficient detail.
The patch you proposed works fine, may it appear soon :-).
George
Kay Sievers wrote:
> On Wed, 2007-05-02 at 17:26 -0400, George Beshers wrote:
>
>
>
> Looking at the seq_file code, calling lseek() causes the buffer to be
> repopulated:
> seq_lseek() -> traverse() -> m->op->show()
> while show() is the method of the "stat" file that fills the buffer.
>
> A simple read() should not do that, and just copy the content (up to
> 128kB) of the kernel seq_file file buffer to the user-process:
> seq_read() -> copy_to_user(buf, m->buf + m->from, n)
>
>
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: udevd on very large systems: again
2007-05-01 23:42 udevd on very large systems: again George Beshers
` (6 preceding siblings ...)
2007-05-03 19:49 ` George Beshers
@ 2007-05-03 21:12 ` Kay Sievers
7 siblings, 0 replies; 9+ messages in thread
From: Kay Sievers @ 2007-05-03 21:12 UTC (permalink / raw)
To: linux-hotplug
On Thu, 2007-05-03 at 15:49 -0400, George Beshers wrote:
> Yes your right --- I am guilty of not reading the source
> in sufficient detail.
>
> The patch you proposed works fine, may it appear soon :-).
Oh, great. Thanks for testing, I'll apply it now.
Kay
> Kay Sievers wrote:
> > On Wed, 2007-05-02 at 17:26 -0400, George Beshers wrote:
> >
> >
> >
> > Looking at the seq_file code, calling lseek() causes the buffer to be
> > repopulated:
> > seq_lseek() -> traverse() -> m->op->show()
> > while show() is the method of the "stat" file that fills the buffer.
> >
> > A simple read() should not do that, and just copy the content (up to
> > 128kB) of the kernel seq_file file buffer to the user-process:
> > seq_read() -> copy_to_user(buf, m->buf + m->from, n)
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2007-05-03 21:12 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-01 23:42 udevd on very large systems: again George Beshers
2007-05-02 19:37 ` Kay Sievers
2007-05-02 21:11 ` Kay Sievers
2007-05-02 21:26 ` George Beshers
2007-05-02 21:39 ` George Beshers
2007-05-02 23:42 ` Kay Sievers
2007-05-02 23:51 ` Kay Sievers
2007-05-03 19:49 ` George Beshers
2007-05-03 21:12 ` Kay Sievers
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).