From roland.illig at gmx.de Thu Oct 1 08:41:21 2009 From: roland.illig at gmx.de (Roland Illig) Date: Thu, 01 Oct 2009 08:41:21 +0200 Subject: [M3devel] Mailing list archive In-Reply-To: <20090929232659.xvsqww0leccswck0@mail.elegosoft.com> References: <4AC24E30.5030304@gmx.de> <20090929232659.xvsqww0leccswck0@mail.elegosoft.com> Message-ID: <4AC44F11.5010506@gmx.de> Olaf Wagner schrieb: > Quoting Roland Illig : > >> Hi, >> >> I would like to fix a bug I found in 2005, but the bug's details are >> not in trac, but only in a mailing list archive, which isn't available >> anymore. >> >> https://projects.elego.de/cm3/ticket/640 >> >> Can anyone provide me with the details? > > Here is a copy of your old mail: Thank you. I cannot reproduce the bug anymore, so I think you can close the ticket. Roland From wagner at elegosoft.com Thu Oct 1 12:57:55 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Thu, 1 Oct 2009 12:57:55 +0200 (CEST) Subject: [M3devel] p007 still hangs on I386_OPENBSD Message-ID: <17871.192.100.130.228.1254394675.squirrel@mail.elegosoft.com> It seems to me that the thread test p007 still hangs at least on I386_OPENBSD: http://hudson.modula3.com:8080/job/cm3-test-m3tests-I386_OPENBSD/25/console Olaf -- Olaf Wagner -- elego Software Solutions GmbH Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95 http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194 From hosking at cs.purdue.edu Thu Oct 1 16:23:36 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 1 Oct 2009 10:23:36 -0400 Subject: [M3devel] p007 still hangs on I386_OPENBSD In-Reply-To: <17871.192.100.130.228.1254394675.squirrel@mail.elegosoft.com> References: <17871.192.100.130.228.1254394675.squirrel@mail.elegosoft.com> Message-ID: <0E0CFE4A-267A-4719-B85E-6FDBDECBB4A0@cs.purdue.edu> Weird. I don't have that platform to test on. Can you attach to the process in gdb, and get a backtrace for all the threads? On 1 Oct 2009, at 06:57, Olaf Wagner wrote: > It seems to me that the thread test p007 still hangs at least on > I386_OPENBSD: > > http://hudson.modula3.com:8080/job/cm3-test-m3tests-I386_OPENBSD/25/console > > Olaf > -- > Olaf Wagner -- elego Software Solutions GmbH > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, > Germany > phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 > 45 86 95 > http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: > Berlin > Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > DE163214194 -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Oct 5 16:27:14 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 5 Oct 2009 14:27:14 +0000 Subject: [M3devel] win32 threads/alert/race Message-ID: Tony can you clarify/confirm where you think the race is? Is it here: PROCEDURE InnerWait(m: Mutex; c: Condition; self: T) = (* LL = giant+m on entry; LL = m on exit *) BEGIN <* ASSERT( (self.waitingOn=NIL) AND (self.nextWaiter=NIL) ) *> self.waitingOn := c; self.nextWaiter := c.waiters; c.waiters := self; m.release(); LeaveCriticalSection_giant(); ** here ** ? IF perfOn THEN PerfChanged(State.waiting) END; IF WaitForSingleObject(self.waitSema, INFINITE) # 0 THEN Choke(ThisLine()); END; m.acquire(); END InnerWait; Btw..just in case.. alerted and alertable could be "interlocked", even share bits in the same long. If that helps. Another thing to consider is that Win32 reserves the lower two bits of handles for users. So you can imagine something even like where waitSema is in two places. One place where it isn't used, always there. Another place where if it is non-null it is going to be waited on. You could merge setting of that copy of waitSema with the two bits alerted and alertable. And set all three in one fell interlocked swoop. Does that help? I'm just mentioning random tricks, without understanding where the race is. I'm just hoping you don't need a lock free manipulation of the waiters list. That I have no good ideas on. There is the slist stuff but I'm not keen on it, and I don't think it buys anything. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Oct 5 16:33:05 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 5 Oct 2009 14:33:05 +0000 Subject: [M3devel] win32 threads/alert/race Message-ID: e.g. does this help: PROCEDURE Alert(t: T) = VAR prev, next: T; BEGIN IF t = NIL THEN Die(ThisLine(), "Alert called from non-Modula-3 thread") END; (* remove this *) EnterCriticalSection_giant(); (* make next two lines one interlocked *) t.alerted := TRUE; IF t.alertable THEN (* add this *) EnterCriticalSection_giant(); (* Dequeue from any CV and unblock from the semaphore *) IF t.waitingOn # NIL THEN next := t.waitingOn.waiters; prev := NIL; WHILE next # t DO <* ASSERT(next#NIL) *> prev := next; next := next.nextWaiter; END; IF prev = NIL THEN t.waitingOn.waiters := t.nextWaiter ELSE prev.nextWaiter := t.nextWaiter; END; t.nextWaiter := NIL; t.waitingOn := NIL; END; t.alertable := FALSE; IF ReleaseSemaphore(t.waitSema, 1, NIL) = 0 THEN Choke(ThisLine()); END; END; LeaveCriticalSection_giant(); (* this moves up obviously *) END Alert; From: jay.krell at cornell.edu To: hosking at cs.purdue.edu; m3devel at elegosoft.com Subject: win32 threads/alert/race Date: Mon, 5 Oct 2009 14:27:14 +0000 Tony can you clarify/confirm where you think the race is? Is it here: PROCEDURE InnerWait(m: Mutex; c: Condition; self: T) = (* LL = giant+m on entry; LL = m on exit *) BEGIN <* ASSERT( (self.waitingOn=NIL) AND (self.nextWaiter=NIL) ) *> self.waitingOn := c; self.nextWaiter := c.waiters; c.waiters := self; m.release(); LeaveCriticalSection_giant(); ** here ** ? IF perfOn THEN PerfChanged(State.waiting) END; IF WaitForSingleObject(self.waitSema, INFINITE) # 0 THEN Choke(ThisLine()); END; m.acquire(); END InnerWait; Btw..just in case.. alerted and alertable could be "interlocked", even share bits in the same long. If that helps. Another thing to consider is that Win32 reserves the lower two bits of handles for users. So you can imagine something even like where waitSema is in two places. One place where it isn't used, always there. Another place where if it is non-null it is going to be waited on. You could merge setting of that copy of waitSema with the two bits alerted and alertable. And set all three in one fell interlocked swoop. Does that help? I'm just mentioning random tricks, without understanding where the race is. I'm just hoping you don't need a lock free manipulation of the waiters list. That I have no good ideas on. There is the slist stuff but I'm not keen on it, and I don't think it buys anything. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Thu Oct 8 12:14:39 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Thu, 08 Oct 2009 12:14:39 +0200 Subject: [M3devel] Status of threads for RC4? Message-ID: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> Activity has ceased on the list and the CM3 repository, but I'm not sure about the state of the thread system on Windows and POSIX (here at least on OpenBSD). Are further improvements to be expected? Do we know the reason for the non-termination of p007 on OpenBSD? A short update would be great. TIA, Olaf -- Olaf Wagner -- elego Software Solutions GmbH Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95 http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194 From jay.krell at cornell.edu Thu Oct 8 13:58:37 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Thu, 8 Oct 2009 04:58:37 -0700 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> Message-ID: <7B398533-AB35-406B-846A-24F205D31EED@hotmail.com> Posix was thought good; but openbsd not looked at, Win32 can hang. I'm still thinking. Current ideas: try plugging in boost's condition variables, try "what java does". Boost looks inefficient but I'm willing to take that at this point; java looks deceptively simple - I looking at the right code and it has enough features? Win32 may also have been this way "forever"? - Jay (phone) On Oct 8, 2009, at 3:14 AM, Olaf Wagner wrote: > Activity has ceased on the list and the CM3 repository, but I'm not > sure about the state of the thread system on Windows and POSIX > (here at least on OpenBSD). > > Are further improvements to be expected? > Do we know the reason for the non-termination of p007 on OpenBSD? > > A short update would be great. > > TIA, > > Olaf > -- > Olaf Wagner -- elego Software Solutions GmbH > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germ > any > phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95 > http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Be > rlin > Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > DE163214194 > > From jay.krell at cornell.edu Thu Oct 8 15:32:13 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 8 Oct 2009 13:32:13 +0000 Subject: [M3devel] condition variables/win32 Message-ID: condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Oct 8 15:54:07 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 8 Oct 2009 09:54:07 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> Message-ID: <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> I need a stack dump from the hung OpenBSD p007 run to diagnose (attach to the process using gdb and grab a stack dump). Are we seeing this on any other pthread target? On 8 Oct 2009, at 06:14, Olaf Wagner wrote: > Activity has ceased on the list and the CM3 repository, but I'm not > sure about the state of the thread system on Windows and POSIX > (here at least on OpenBSD). > > Are further improvements to be expected? > Do we know the reason for the non-termination of p007 on OpenBSD? > > A short update would be great. > > TIA, > > Olaf > -- > Olaf Wagner -- elego Software Solutions GmbH > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, > Germany > phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 > 45 86 95 > http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: > Berlin > Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > DE163214194 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Oct 8 15:55:03 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 8 Oct 2009 09:55:03 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <7B398533-AB35-406B-846A-24F205D31EED@hotmail.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <7B398533-AB35-406B-846A-24F205D31EED@hotmail.com> Message-ID: <99BC9CEE-2E27-4C70-AE1C-DC8D1C832049@cs.purdue.edu> On 8 Oct 2009, at 07:58, jay.krell at cornell.edu wrote: > Posix was thought good; but openbsd not looked at, > Win32 can hang. I'm still thinking. Current ideas: try plugging in > boost's condition variables, try "what java does". Boost looks > inefficient but I'm willing to take that at this point; java looks > deceptively simple - I looking at the right code and it has enough > features? > Win32 may also have been this way "forever"? Jay, I haven't had time to consider you most recent proposal... Probably not until next week. > > - Jay (phone) > > On Oct 8, 2009, at 3:14 AM, Olaf Wagner wrote: > >> Activity has ceased on the list and the CM3 repository, but I'm not >> sure about the state of the thread system on Windows and POSIX >> (here at least on OpenBSD). >> >> Are further improvements to be expected? >> Do we know the reason for the non-termination of p007 on OpenBSD? >> >> A short update would be great. >> >> TIA, >> >> Olaf >> -- >> Olaf Wagner -- elego Software Solutions GmbH >> Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, >> Germany >> phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 >> 45 86 95 >> http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: >> Berlin >> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >> DE163214194 >> >> From hosking at cs.purdue.edu Thu Oct 8 16:09:31 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 8 Oct 2009 10:09:31 -0400 Subject: [M3devel] condition variables/win32 In-Reply-To: References: Message-ID: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> In general, it is OK in M3 to associate multiple conditions with the same mutex. But not vice versa. On 8 Oct 2009, at 09:32, Jay K wrote: > condition variables/win32 > > > So..one way I think about condition variables > is that you want to be woken when someone else > leaves the mutex that guards the data that you are dealing with. > You want to know when another thread modifies the data. > (If you have a reader/writer lock, you only want to be > woken when someone exits a write.) > > > Now, if you consider a producer/consumer queue. > There are two interesting occurences. > Transitions from empty to non-empty > and transitions from full to non-full (optionally, > if it is fixed size). > > > Consumers wait for empty to non-empty. > Consumers signal full to non-full. > Producers wait for full to non-full. > Producers signal non-empty to empty. > > > So, in this case, one mutex is likely used with with two condition > variables. > > > But, what if we take a simplifying deoptimization and assume that a > condition > variable is only ever associated with one mutex? > Anyone existing that mutex wakes up anyone waiting on any condition > associated with it? > Like, a condition variable I think becomes stateless and everything is > about the mutex? > > > What is the downside? > > > Condition variables are allowed to have spurious wakeups. > This would "just" increase them. Too much? > > > So, therefore, what would be wrong with the following design? > a mutex contains an event > and a number of waiters, zero or non-zero > if a mutex is exiting with a non-zero number of waiters, signal the > event > > > To handle Signal vs. Broadcast > method 1: > the number of waiters might be interlocked > the woken would decrement it > if it isn't zero, signal the event again > > > method 2: > the number of waiters is both an integer and a semaphore > and the lock exiter raises the semaphore by the the integer > > > method 3: > it is not an auto-reset event and there is a count > and when the count goes to 0, reset the event > I think in this case you have to maintain a "wait generation" > so that new waiters don't prevent the count from ever hitting 0. > I think this #3 is what Java might be doing, and is described here: > http://www.cs.wustl.edu/~schmidt/win32-cv-1.html > "3.3. The Generation Count Solution" > > > also: > http://www.cs.wustl.edu/~schmidt/win32-cv-1.html > 3.2. The SetEvent Solution > Evaluating the SetEvent Solution > Incorrectness -- > > > Is that incorrect case really necessarily incorrect? > It seems unfair, since first waiter should be first woken, but..? > > > Am I missing something? A lot? > > > - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Oct 8 16:22:51 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 8 Oct 2009 14:22:51 +0000 Subject: [M3devel] condition variables/win32 In-Reply-To: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> References: Message-ID: But, is it common? Ok to make it contribute significantly to spurious wakeups? That is, I have this crazy theory...really need to come back to this fresh, try coding it, testing it..where you can implement a condition variable simply by waking everyone whenever a mutex is exited. I had this thought that what a condition variable represents is, instead of telling the kernel, here is one bit, an event, I am waiting for, instead you are telling it, hey, I have some custom code to evaluate, but it is false currently, and can only change when some exits such and such a lock, so just let me know when that lock is exited. The guy releasing the lock, or signal or broadcast..if he is signaling or broadcasting, he knows more specifically what he changed, not everything computable based on data protected by the lock, just something specific, but you can just wake everyone waiting on any of the conditions associated with the lock and it isn't maximally efficient but it should be correct. Basically, condition variable equals "wake me when someone changes some data and exits its lock". A better condition variable is that when there are multiple "conditions" in the data, the code making the change can target the wakeup better. But it isn't requires. And sometimes might not even matter much -- if in fact the ratio of locks to conditions is close to or equal to 1. - Jay CC: m3devel at elegosoft.com From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Subject: Re: [M3devel] condition variables/win32 Date: Thu, 8 Oct 2009 10:09:31 -0400 In general, it is OK in M3 to associate multiple conditions with the same mutex. But not vice versa. On 8 Oct 2009, at 09:32, Jay K wrote: condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Oct 8 17:00:36 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 8 Oct 2009 11:00:36 -0400 Subject: [M3devel] condition variables/win32 In-Reply-To: <20091008143422.D91C01A207A@async.async.caltech.edu> References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> <20091008143422.D91C01A207A@async.async.caltech.edu> Message-ID: Sorry, yes, you are right of course! The Modula-3 spec (and the current pthreads-based implementation as also the win32 implementation I expect) do allow a condition variable being mediated by different mutexes. My comment was clouded by my recollection from the pthreads spec that for pthread mutex/cv behavior for other than 1 mutex per cv is undefined. This confusion may have been the source of prior bugs in the pthreads threading implementation, but those bugs are gone now. We support the M3 spec properly. On 8 Oct 2009, at 10:34, Mika Nystrom wrote: > Why can't you use the same condition variable with different mutexes? > > This is dynamic, up to the M3 programmer, no? > > Tony Hosking writes: >> >> --Apple-Mail-96--321618545 >> Content-Type: text/plain; >> charset=US-ASCII; >> format=flowed; >> delsp=yes >> Content-Transfer-Encoding: 7bit >> >> In general, it is OK in M3 to associate multiple conditions with the >> same mutex. But not vice versa. >> >> On 8 Oct 2009, at 09:32, Jay K wrote: >> >>> condition variables/win32 >>> >>> >>> So..one way I think about condition variables >>> is that you want to be woken when someone else >>> leaves the mutex that guards the data that you are dealing with. >>> You want to know when another thread modifies the data. >>> (If you have a reader/writer lock, you only want to be >>> woken when someone exits a write.) >>> >>> >>> Now, if you consider a producer/consumer queue. >>> There are two interesting occurences. >>> Transitions from empty to non-empty >>> and transitions from full to non-full (optionally, >>> if it is fixed size). >>> >>> >>> Consumers wait for empty to non-empty. >>> Consumers signal full to non-full. >>> Producers wait for full to non-full. >>> Producers signal non-empty to empty. >>> >>> >>> So, in this case, one mutex is likely used with with two condition >>> variables. >>> >>> >>> But, what if we take a simplifying deoptimization and assume that a >>> condition >>> variable is only ever associated with one mutex? >>> Anyone existing that mutex wakes up anyone waiting on any condition >>> associated with it? >>> Like, a condition variable I think becomes stateless and >>> everything is >>> about the mutex? >>> >>> >>> What is the downside? >>> >>> >>> Condition variables are allowed to have spurious wakeups. >>> This would "just" increase them. Too much? >>> >>> >>> So, therefore, what would be wrong with the following design? >>> a mutex contains an event >>> and a number of waiters, zero or non-zero >>> if a mutex is exiting with a non-zero number of waiters, signal the >>> event >>> >>> >>> To handle Signal vs. Broadcast >>> method 1: >>> the number of waiters might be interlocked >>> the woken would decrement it >>> if it isn't zero, signal the event again >>> >>> >>> method 2: >>> the number of waiters is both an integer and a semaphore >>> and the lock exiter raises the semaphore by the the integer >>> >>> >>> method 3: >>> it is not an auto-reset event and there is a count >>> and when the count goes to 0, reset the event >>> I think in this case you have to maintain a "wait generation" >>> so that new waiters don't prevent the count from ever hitting 0. >>> I think this #3 is what Java might be doing, and is described here: >>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>> "3.3. The Generation Count Solution" >>> >>> >>> also: >>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>> 3.2. The SetEvent Solution >>> Evaluating the SetEvent Solution >>> Incorrectness -- >>> >>> >>> Is that incorrect case really necessarily incorrect? >>> It seems unfair, since first waiter should be first woken, but..? >>> >>> >>> Am I missing something? A lot? >>> >>> >>> - Jay >> >> >> --Apple-Mail-96--321618545 >> Content-Type: text/html; >> charset=US-ASCII >> Content-Transfer-Encoding: quoted-printable >> >> > space; = >> -webkit-line-break: after-white-space; ">
> apple-content-edited=3D"true">> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >> family: = >> Helvetica; font-size: 12px; font-style: normal; font-variant: >> normal; = >> font-weight: normal; letter-spacing: normal; line-height: normal; = >> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >> none; = >> white-space: normal; widows: 2; word-spacing: 0px; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >> adjust: = >> auto; -webkit-text-stroke-width: 0; ">
> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >> after-white-space; ">> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">
> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >> -webkit-line-break: after-white-space; ">> span" = >> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >> Sans'">In = >> general, it is OK in M3 to associate multiple conditions with the >> same = >> mutex.  But not vice versa.
> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >> Sans'">> class=3D"Apple-style-span" style=3D"font-size: = >> medium;">
> span>>>
On 8 Oct >>> 2009, = >> at 09:32, Jay K wrote:

> class=3D"Apple-interchange-newline">
> class=3D"Apple-style-span" style=3D"border-collapse: separate; >> color: = >> rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font- >> style: = >> normal; font-variant: normal; font-weight: normal; letter-spacing: = >> normal; line-height: normal; orphans: 2; text-align: auto; text- >> indent: = >> 0px; text-transform: none; white-space: normal; widows: 2; word- >> spacing: = >> 0px; -webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: 0px; = >> -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = >> auto; -webkit-text-stroke-width: 0px; ">
> style=3D"font-size: 10pt; font-family: Verdana; ">condition = >> variables/win32
 

So..one way I think about >> condition = >> variables
is that you want to be woken when someone >> else
leaves = >> the mutex that guards the data that you are dealing with.
You >> want to = >> know when another thread modifies the data.
(If you have a = >> reader/writer lock, you only want to be
woken when someone exits >> a = >> write.)
 

Now, if you consider a producer/consumer = >> queue.
There are two interesting occurences.
Transitions from = >> empty to non-empty
and transitions from full to non-full = >> (optionally,
if it is fixed size).
 

Consumers >> wait = >> for empty to non-empty.
Consumers signal full to = >> non-full.
Producers wait for full to non-full.
Producers >> signal = >> non-empty to empty.
 

So, in this case, one mutex is = >> likely used with with two condition = >> variables.
 

But, what if we take a simplifying = >> deoptimization and assume that a condition
variable is only ever = >> associated with one mutex?
Anyone existing that mutex wakes up >> anyone = >> waiting on any condition associated with it?
Like, a condition = >> variable I think becomes stateless and everything is
about the = >> mutex?
 
 
What is the = >> downside?
 

Condition variables are allowed to have = >> spurious wakeups.
This would "just" increase them. Too = >> much?
 

So, therefore, what would be wrong with the = >> following design?
 a mutex contains an event> class=3D"Apple-converted-space"> 
 and a number >> of = >> waiters, zero or non-zero> class=3D"Apple-converted-space"> 
 if a mutex >> is = >> exiting with a non-zero number of waiters, signal the = >> event
 

To handle Signal vs. Broadcast
method = >> 1:
 the number of waiters might be interlocked
 the = >> woken would decrement it
 if it isn't zero, signal the >> event = >> again
 

method 2:
 the number of waiters is >> both = >> an integer and a semaphore
 and the lock exiter raises the = >> semaphore by the the integer

 
method 3:
 it >> is = >> not an auto-reset event and there is a count
  and when the = >> count goes to 0, reset the event
 I think in this case you >> have = >> to maintain a "wait generation"> class=3D"Apple-converted-space"> 
 so that new = >> waiters don't prevent the count from ever hitting 0.
 I >> think = >> this #3 is what Java might be doing, and is described here:
> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu >> = >> stl.edu/~schmidt/win32-cv-1.html
 "3.3. The Generation >> Count = >> Solution"

 
also:
> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu >> = >> stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = >> Solution
Evaluating the SetEvent Solution
Incorrectness -- >> > class=3D"Apple-converted-space"> 
 

Is >> that = >> incorrect case really necessarily incorrect?
It seems unfair, >> since = >> first waiter should be first woken, but..?

 
Am I >> missing = >> something? A lot?
 

 - = >> Jay

= >> >> --Apple-Mail-96--321618545-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcoleburn at scires.com Thu Oct 8 18:15:57 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Thu, 08 Oct 2009 12:15:57 -0400 Subject: [M3devel] condition variables/win32 In-Reply-To: References: Message-ID: <4ACDD77A.1E75.00D7.1@scires.com> Jay: I have written and extensively tested a number of modules using threading. For example, I have a nice multi-reader, single-writer lock implementation, a gatekeeper implementation, an object-database implementation, etc. All of these are built on top of the thread primitives in Modula-3. So there is no need to reinvent the wheel here. If you need to see some of the code for these, let me know. Perhaps I can contribute some of these to the community. At this point, do we have any concrete example of a failure in the Win32 threading implementation, other than something mysterious with Juno? Regards, Randy >>> Jay K 10/8/2009 9:32 AM >>> condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Oct 8 21:13:03 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 8 Oct 2009 19:13:03 +0000 Subject: [M3devel] condition variables/win32 In-Reply-To: References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> Message-ID: That seems a little strange to me but I guess I'll have to keep it in mind. - Jay From: hosking at cs.purdue.edu To: mika at async.async.caltech.edu Date: Thu, 8 Oct 2009 11:00:36 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] condition variables/win32 Sorry, yes, you are right of course! The Modula-3 spec (and the current pthreads-based implementation as also the win32 implementation I expect) do allow a condition variable being mediated by different mutexes. My comment was clouded by my recollection from the pthreads spec that for pthread mutex/cv behavior for other than 1 mutex per cv is undefined. This confusion may have been the source of prior bugs in the pthreads threading implementation, but those bugs are gone now. We support the M3 spec properly. On 8 Oct 2009, at 10:34, Mika Nystrom wrote: Why can't you use the same condition variable with different mutexes? This is dynamic, up to the M3 programmer, no? Tony Hosking writes: --Apple-Mail-96--321618545 Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit In general, it is OK in M3 to associate multiple conditions with the same mutex. But not vice versa. On 8 Oct 2009, at 09:32, Jay K wrote: condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay --Apple-Mail-96--321618545 Content-Type: text/html; charset=US-ASCII Content-Transfer-Encoding: quoted-printable
In = general, it is OK in M3 to associate multiple conditions with the same = mutex.  But not vice versa.

On 8 Oct 2009, = at 09:32, Jay K wrote:

condition = variables/win32
 

So..one way I think about condition = variables
is that you want to be woken when someone else
leaves = the mutex that guards the data that you are dealing with.
You want to = know when another thread modifies the data.
(If you have a = reader/writer lock, you only want to be
woken when someone exits a = write.)
 

Now, if you consider a producer/consumer = queue.
There are two interesting occurences.
Transitions from = empty to non-empty
and transitions from full to non-full = (optionally,
if it is fixed size).
 

Consumers wait = for empty to non-empty.
Consumers signal full to = non-full.
Producers wait for full to non-full.
Producers signal = non-empty to empty.
 

So, in this case, one mutex is = likely used with with two condition = variables.
 

But, what if we take a simplifying = deoptimization and assume that a condition
variable is only ever = associated with one mutex?
Anyone existing that mutex wakes up anyone = waiting on any condition associated with it?
Like, a condition = variable I think becomes stateless and everything is
about the = mutex?
 
 
What is the = downside?
 

Condition variables are allowed to have = spurious wakeups.
This would "just" increase them. Too = much?
 

So, therefore, what would be wrong with the = following design?
 a mutex contains an event 
 and a number of = waiters, zero or non-zero 
 if a mutex is = exiting with a non-zero number of waiters, signal the = event
 

To handle Signal vs. Broadcast
method = 1:
 the number of waiters might be interlocked
 the = woken would decrement it
 if it isn't zero, signal the event = again
 

method 2:
 the number of waiters is both = an integer and a semaphore
 and the lock exiter raises the = semaphore by the the integer

 
method 3:
 it is = not an auto-reset event and there is a count
  and when the = count goes to 0, reset the event
 I think in this case you have = to maintain a "wait generation" 
 so that new = waiters don't prevent the count from ever hitting 0.
 I think = this #3 is what Java might be doing, and is described here:
http://www.cs.wu= stl.edu/~schmidt/win32-cv-1.html
 "3.3. The Generation Count = Solution"

 
also:
http://www.cs.wu= stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = Solution
Evaluating the SetEvent Solution
Incorrectness -- 
 

Is that = incorrect case really necessarily incorrect?
It seems unfair, since = first waiter should be first woken, but..?

 
Am I missing = something? A lot?
 

 - = Jay

= --Apple-Mail-96--321618545-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Oct 8 21:16:58 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 8 Oct 2009 19:16:58 +0000 Subject: [M3devel] condition variables/win32 In-Reply-To: <4ACDD77A.1E75.00D7.1@scires.com> References: Message-ID: Randy, Juno hanging pretty consistently seems pretty concrete to me. Doesn't it? Granted it might be related to "alert" which maybe isn't an often used feature? Any testing/testcases you can contribute, please do. We should probably have more primitives instead of building on top of what we have, as the lower levels are already fairly inefficient and building on them is probably even more so. -Jay Date: Thu, 8 Oct 2009 12:15:57 -0400 From: rcoleburn at scires.com To: m3devel at elegosoft.com Subject: Re: [M3devel] condition variables/win32 Jay: I have written and extensively tested a number of modules using threading. For example, I have a nice multi-reader, single-writer lock implementation, a gatekeeper implementation, an object-database implementation, etc. All of these are built on top of the thread primitives in Modula-3. So there is no need to reinvent the wheel here. If you need to see some of the code for these, let me know. Perhaps I can contribute some of these to the community. At this point, do we have any concrete example of a failure in the Win32 threading implementation, other than something mysterious with Juno? Regards, Randy >>> Jay K 10/8/2009 9:32 AM >>> condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcoleburn at scires.com Fri Oct 9 00:47:03 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Thu, 08 Oct 2009 18:47:03 -0400 Subject: [M3devel] condition variables/win32 In-Reply-To: References: <4ACDD77A.1E75.00D7.1@scires.com> Message-ID: <4ACE2482.1E75.00D7.1@scires.com> I do make use of the alert mechanism and condition variables in my code. My concern is that if Juno is the only place where we have observed a problem, maybe the problem is with the Juno code and not with the threads implementation. That is why I was wondering if we had a non-Juno example that exhibits a problem. Having more than one exemplar may also help track down the problem. The modules I referenced in my prior message create higher-level abstractions. They are implemented using the primitives available in the language proper, no UNSAFE stuff. Of course, any efficiency improvement in the lower levels would be a benefit, and yes it is probable that recoding my abstractions at a lower level or making them features at a lower level would be more efficient. Note that I'm not suggesting that any of these abstractions be made features of the language or pushed down to the lower levels. I was just pointing out that I've got a lot of stuff that uses threading on Windows and I haven't observed that the threading implementation is broken. Perhaps I am not exercising it the same way as Juno, or perhaps Juno is doing something wrong. Regards, Randy >>> Jay K 10/8/2009 3:16 PM >>> Randy, Juno hanging pretty consistently seems pretty concrete to me. Doesn't it? Granted it might be related to "alert" which maybe isn't an often used feature? Any testing/testcases you can contribute, please do. We should probably have more primitives instead of building on top of what we have, as the lower levels are already fairly inefficient and building on them is probably even more so. -Jay Date: Thu, 8 Oct 2009 12:15:57 -0400 From: rcoleburn at scires.com To: m3devel at elegosoft.com Subject: Re: [M3devel] condition variables/win32 Jay: I have written and extensively tested a number of modules using threading. For example, I have a nice multi-reader, single-writer lock implementation, a gatekeeper implementation, an object-database implementation, etc. All of these are built on top of the thread primitives in Modula-3. So there is no need to reinvent the wheel here. If you need to see some of the code for these, let me know. Perhaps I can contribute some of these to the community. At this point, do we have any concrete example of a failure in the Win32 threading implementation, other than something mysterious with Juno? Regards, Randy >>> Jay K 10/8/2009 9:32 AM >>> condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Fri Oct 9 13:59:31 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Fri, 09 Oct 2009 13:59:31 +0200 Subject: [M3devel] condition variables/win32 In-Reply-To: <4ACE2482.1E75.00D7.1@scires.com> References: <4ACDD77A.1E75.00D7.1@scires.com> <4ACE2482.1E75.00D7.1@scires.com> Message-ID: <20091009135931.chei3435hcsgcwog@mail.elegosoft.com> Quoting Randy Coleburn : > I do make use of the alert mechanism and condition variables in my code. > > My concern is that if Juno is the only place where we have observed > a problem, maybe the problem is with the Juno code and not with the > threads implementation. That is why I was wondering if we had a > non-Juno example that exhibits a problem. Having more than one > exemplar may also help track down the problem. > > The modules I referenced in my prior message create higher-level > abstractions. They are implemented using the primitives available > in the language proper, no UNSAFE stuff. Of course, any efficiency > improvement in the lower levels would be a benefit, and yes it is > probable that recoding my abstractions at a lower level or making > them features at a lower level would be more efficient. > > Note that I'm not suggesting that any of these abstractions be made > features of the language or pushed down to the lower levels. I was > just pointing out that I've got a lot of stuff that uses threading > on Windows and I haven't observed that the threading implementation > is broken. Perhaps I am not exercising it the same way as Juno, or > perhaps Juno is doing something wrong. I would second Randy's concern insofar as we should be able to add a test that exhibits the failure and then test any new implementation against it. At least that would be the proper way to do it. If you have a theory what breaks or where a race may be hidden, it should be possible to write a simple test, or isn't it? This again is just me with my release engineer's hat on :-) Also, if you have any tests that can be added to m3tests, please do! Olaf -- Olaf Wagner -- elego Software Solutions GmbH Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95 http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194 From wagner at elegosoft.com Tue Oct 13 08:46:39 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Tue, 13 Oct 2009 08:46:39 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> Quoting Tony Hosking : > I need a stack dump from the hung OpenBSD p007 run to diagnose (attach > to the process using gdb and grab a stack dump). Are we seeing this > on any other pthread target? I just logged in quickly to Jay's OpenBSD system and started test 7. Output stops after line 8 and I had to hit Control-C. bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm GNU gdb plus Modula-3 6.4 Copyright 2005 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i686-openbsd"... (m3gdb) r Starting program: /home/hudson/workspace/cm3-test-m3tests-I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm 1: 1 2: 1 2 3: 1 2 3 4: 1 2 3 4 5: 1 2 3 4 5 6: 1 2 3 4 5 6 7: 1 2 3 4 5 6 7 8: 1 2 3 4 5 6 7 8 9: ^C Program received signal SIGINT, Interrupt. 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 (m3gdb) bt #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 #2 0x0910ee53 in _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 #3 0x0910f19f in _thread_kern_sched_state (state=688918728, fname=0x291010c8 "", lineno=688918728) at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, time_remaining=0x8544ec70) at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) at ../src/thread/PTHREAD/ThreadPThreadC.c:317 #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ThreadPThread.m3:740 #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ThreadPThread.m3:1253 #8 0x1c021041 in SuspendOthers () at ../src/thread/PTHREAD/ThreadPThread.m3:1029 #9 0x1c007ccb in CollectSomeInStateZero () at ../src/runtime/common/RTCollector.m3:735 #10 0x1c007c8a in CollectSome () at ../src/runtime/common/RTCollector.m3:709 #11 0x1c00773d in CollectEnough () at ../src/runtime/common/RTCollector.m3:643 #12 0x1c004de1 in AllocTraced (dataSize=Invalid C/C++ type code 40 in symbol table. ) at ../src/runtime/common/RTAllocator.m3:363 #13 0x1c004056 in GetTracedObj (def=Invalid C/C++ type code 29 in symbol table. ) at ../src/runtime/common/RTAllocator.m3:222 #14 0x1c0039ec in AllocateTracedObj (defn=Invalid C/C++ type code 35 in symbol table. ) at ../src/runtime/common/RTAllocator.m3:120 #15 0x1c002b82 in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:58 #16 0x1c01ed3e in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #17 0x1c01ea83 in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #18 0x0910637f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #19 0x0000002b in ?? () #20 0x00000000 in ?? () (m3gdb) set lang Modula-3 (m3gdb) bt #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 #2 0x0910ee53 in _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 #3 0x0910f19f in _thread_kern_sched_state (state=688918728, fname=0x291010c8 "\000", lineno=688918728) at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, time_remaining=0x8544ec70) at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) at ../src/thread/PTHREAD/ThreadPThreadC.c:317 #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ThreadPThread.m3:740 #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ThreadPThread.m3:1253 #8 0x1c021041 in SuspendOthers () at ../src/thread/PTHREAD/ThreadPThread.m3:1029 #9 0x1c007ccb in CollectSomeInStateZero () at ../src/runtime/common/RTCollector.m3:735 #10 0x1c007c8a in CollectSome () at ../src/runtime/common/RTCollector.m3:709 #11 0x1c00773d in CollectEnough () at ../src/runtime/common/RTCollector.m3:643 #12 0x1c004de1 in AllocTraced (dataSize=12, dataAlignment=4, thread= RECORD inCritical = 0; pool = RECORD note = Allocated; pure = FALSE; page = NIL; next = NIL; limit = NIL; END; END) at ../src/runtime/common/RTAllocator.m3:363 #13 0x1c004056 in GetTracedObj (def=16_3c001114) at ../src/runtime/common/RTAllocator.m3:222 #14 0x1c0039ec in AllocateTracedObj (defn=16_3c001114) at ../src/runtime/common/RTAllocator.m3:120 #15 0x1c002b82 in Task (self=16_8bc4a00c) at ../Main.m3:58 #16 0x1c01ed3e in RunThread (me=16_7faae480) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #17 0x1c01ea83 in ThreadBase (param=16_7faae480) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #18 0x0910637f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #19 0x0000002b in ?? () #20 0x00000000 in ?? () (m3gdb) Attaching to a running program doesn't yield anything useful: bash-3.2$ src/p0/p007/I386_OPENBSD/pgm & [1] 26756 bash-3.2$ 1: 1 2: 1 2 3: 1 2 3 4: 1 2 3 4 5: 1 2 3 4 5 6: 1 2 3 4 5 6 7: 1 2 3 4 5 6 7 8: 1 2 3 4 5 6 7 8 9: bash-3.2$ ps PID TT STAT TIME COMMAND 22500 p0 Is 0:00.00 -ksh (ksh) 18592 p0 S 0:00.04 bash 26756 p0 S 0:00.02 src/p0/p007/I386_OPENBSD/pgm 28998 p0 R+ 0:00.00 ps bash-3.2$ m3gdb GNU gdb plus Modula-3 6.4 Copyright 2005 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i686-openbsd". (m3gdb) attach 26756 Attaching to process 26756 0x0d35f8f1 in ?? () (m3gdb) set symbol-file src/p0/p007/I386_OPENBSD/pgm No symbol table is loaded. Use the "file" command. (m3gdb) symbol-file src/p0/p007/I386_OPENBSD/pgm Reading symbols from /home/hudson/workspace/cm3-test-m3tests-I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm...done. (m3gdb) bt #0 0x0d35f8f1 in ?? () #1 0x0a0c0314 in ?? () #2 0x84533000 in ?? () #3 0x00000001 in ?? () #4 0x00000001 in ?? () #5 0x00000001 in ?? () #6 0x00000000 in ?? () Does this help? Anything I should try this evening? Olaf -- Olaf Wagner -- elego Software Solutions GmbH Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95 http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194 From hosking at cs.purdue.edu Tue Oct 13 15:16:08 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 13 Oct 2009 09:16:08 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> Message-ID: <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> I need to see all the threads: thread apply all bt On 13 Oct 2009, at 02:46, Olaf Wagner wrote: > Quoting Tony Hosking : > >> I need a stack dump from the hung OpenBSD p007 run to diagnose >> (attach >> to the process using gdb and grab a stack dump). Are we seeing this >> on any other pthread target? > > I just logged in quickly to Jay's OpenBSD system and started test 7. > Output stops after line 8 and I had to hit Control-C. > > > bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > GNU gdb plus Modula-3 6.4 > Copyright 2005 Free Software Foundation, Inc. > GDB is free software, covered by the GNU General Public License, and > you are > welcome to change it and/or distribute copies of it under certain > conditions. > Type "show copying" to see the conditions. > There is absolutely no warranty for GDB. Type "show warranty" for > details. > This GDB was configured as "i686-openbsd"... > (m3gdb) r > Starting program: /home/hudson/workspace/cm3-test-m3tests- > I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > > 1: 1 > 2: 1 2 > 3: 1 2 3 > 4: 1 2 3 4 > 5: 1 2 3 4 5 > 6: 1 2 3 4 5 6 > 7: 1 2 3 4 5 6 7 > 8: 1 2 3 4 5 6 7 8 > 9: ^C > Program received signal SIGINT, Interrupt. > 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) bt > #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > fname=0x291010c8 "", lineno=688918728) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > time_remaining=0x8544ec70) > at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, > rem=0x8544ec70) > at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > ThreadPThread.m3:740 > #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > ThreadPThread.m3:1253 > #8 0x1c021041 in SuspendOthers () > at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > #9 0x1c007ccb in CollectSomeInStateZero () > at ../src/runtime/common/RTCollector.m3:735 > #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > RTCollector.m3:709 > #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > RTCollector.m3:643 > #12 0x1c004de1 in AllocTraced (dataSize=Invalid C/C++ type code 40 > in symbol table. > ) > at ../src/runtime/common/RTAllocator.m3:363 > #13 0x1c004056 in GetTracedObj (def=Invalid C/C++ type code 29 in > symbol table. > ) > at ../src/runtime/common/RTAllocator.m3:222 > #14 0x1c0039ec in AllocateTracedObj (defn=Invalid C/C++ type code 35 > in symbol table. > ) > at ../src/runtime/common/RTAllocator.m3:120 > #15 0x1c002b82 in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:58 > #16 0x1c01ed3e in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #17 0x1c01ea83 in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #18 0x0910637f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #19 0x0000002b in ?? () > #20 0x00000000 in ?? () > (m3gdb) set lang Modula-3 > (m3gdb) bt > #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > fname=0x291010c8 "\000", lineno=688918728) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > time_remaining=0x8544ec70) > at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, > rem=0x8544ec70) > at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > ThreadPThread.m3:740 > #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > ThreadPThread.m3:1253 > #8 0x1c021041 in SuspendOthers () > at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > #9 0x1c007ccb in CollectSomeInStateZero () > at ../src/runtime/common/RTCollector.m3:735 > #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > RTCollector.m3:709 > #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > RTCollector.m3:643 > #12 0x1c004de1 in AllocTraced (dataSize=12, dataAlignment=4, thread= > RECORD inCritical = 0; pool = RECORD note = Allocated; pure = > FALSE; page = NIL; next = NIL; limit = NIL; END; END) > at ../src/runtime/common/RTAllocator.m3:363 > #13 0x1c004056 in GetTracedObj (def=16_3c001114) > at ../src/runtime/common/RTAllocator.m3:222 > #14 0x1c0039ec in AllocateTracedObj (defn=16_3c001114) > at ../src/runtime/common/RTAllocator.m3:120 > #15 0x1c002b82 in Task (self=16_8bc4a00c) at ../Main.m3:58 > #16 0x1c01ed3e in RunThread (me=16_7faae480) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #17 0x1c01ea83 in ThreadBase (param=16_7faae480) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #18 0x0910637f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #19 0x0000002b in ?? () > #20 0x00000000 in ?? () > (m3gdb) > > Attaching to a running program doesn't yield anything useful: > > bash-3.2$ src/p0/p007/I386_OPENBSD/pgm & > [1] 26756 > bash-3.2$ > 1: 1 > 2: 1 2 > 3: 1 2 3 > 4: 1 2 3 4 > 5: 1 2 3 4 5 > 6: 1 2 3 4 5 6 > 7: 1 2 3 4 5 6 7 > 8: 1 2 3 4 5 6 7 8 > 9: > bash-3.2$ ps > PID TT STAT TIME COMMAND > 22500 p0 Is 0:00.00 -ksh (ksh) > 18592 p0 S 0:00.04 bash > 26756 p0 S 0:00.02 src/p0/p007/I386_OPENBSD/pgm > 28998 p0 R+ 0:00.00 ps > bash-3.2$ m3gdb > GNU gdb plus Modula-3 6.4 > Copyright 2005 Free Software Foundation, Inc. > GDB is free software, covered by the GNU General Public License, and > you are > welcome to change it and/or distribute copies of it under certain > conditions. > Type "show copying" to see the conditions. > There is absolutely no warranty for GDB. Type "show warranty" for > details. > This GDB was configured as "i686-openbsd". > (m3gdb) attach 26756 > Attaching to process 26756 > 0x0d35f8f1 in ?? () > (m3gdb) set symbol-file src/p0/p007/I386_OPENBSD/pgm > No symbol table is loaded. Use the "file" command. > (m3gdb) symbol-file src/p0/p007/I386_OPENBSD/pgm > Reading symbols from /home/hudson/workspace/cm3-test-m3tests- > I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm...done. > (m3gdb) bt > #0 0x0d35f8f1 in ?? () > #1 0x0a0c0314 in ?? () > #2 0x84533000 in ?? () > #3 0x00000001 in ?? () > #4 0x00000001 in ?? () > #5 0x00000001 in ?? () > #6 0x00000000 in ?? () > > Does this help? > Anything I should try this evening? > > Olaf > -- > Olaf Wagner -- elego Software Solutions GmbH > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, > Germany > phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 > 45 86 95 > http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: > Berlin > Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > DE163214194 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Wed Oct 14 08:09:56 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 14 Oct 2009 08:09:56 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> Message-ID: <20091014080956.nyzvwlbn4ow4k880@mail.elegosoft.com> Quoting Tony Hosking : > I need to see all the threads: > > thread apply all bt Well, of course you need all thread stacks to diagnose a deadlock, silly me. But I haven't been able to login again since then: Jay, is the OpenBSD server turned off? Could you either turn it on this evening CET or send Tony the needed traces? Thanks in advance, Olaf > On 13 Oct 2009, at 02:46, Olaf Wagner wrote: > >> Quoting Tony Hosking : >> >>> I need a stack dump from the hung OpenBSD p007 run to diagnose (attach >>> to the process using gdb and grab a stack dump). Are we seeing this >>> on any other pthread target? >> >> I just logged in quickly to Jay's OpenBSD system and started test 7. >> Output stops after line 8 and I had to hit Control-C. >> >> >> bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm >> GNU gdb plus Modula-3 6.4 >> Copyright 2005 Free Software Foundation, Inc. >> GDB is free software, covered by the GNU General Public License, >> and you are >> welcome to change it and/or distribute copies of it under certain >> conditions. >> Type "show copying" to see the conditions. >> There is absolutely no warranty for GDB. Type "show warranty" for details. >> This GDB was configured as "i686-openbsd"... >> (m3gdb) r >> Starting program: /home/hudson/workspace/cm3-test-m3tests- >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm >> >> 1: 1 >> 2: 1 2 >> 3: 1 2 3 >> 4: 1 2 3 4 >> 5: 1 2 3 4 5 >> 6: 1 2 3 4 5 6 >> 7: 1 2 3 4 5 6 7 >> 8: 1 2 3 4 5 6 7 8 >> 9: ^C >> Program received signal SIGINT, Interrupt. >> 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 >> (m3gdb) bt >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, >> fname=0x291010c8 "", lineno=688918728) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, >> time_remaining=0x8544ec70) >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ >> ThreadPThread.m3:740 >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ >> ThreadPThread.m3:1253 >> #8 0x1c021041 in SuspendOthers () >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 >> #9 0x1c007ccb in CollectSomeInStateZero () >> at ../src/runtime/common/RTCollector.m3:735 >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ >> RTCollector.m3:709 >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ >> RTCollector.m3:643 >> #12 0x1c004de1 in AllocTraced (dataSize=Invalid C/C++ type code 40 >> in symbol table. >> ) >> at ../src/runtime/common/RTAllocator.m3:363 >> #13 0x1c004056 in GetTracedObj (def=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/runtime/common/RTAllocator.m3:222 >> #14 0x1c0039ec in AllocateTracedObj (defn=Invalid C/C++ type code >> 35 in symbol table. >> ) >> at ../src/runtime/common/RTAllocator.m3:120 >> #15 0x1c002b82 in Task (self=Invalid C/C++ type code 26 in symbol table. >> ) at ../Main.m3:58 >> #16 0x1c01ed3e in RunThread (me=Invalid C/C++ type code 29 in symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #17 0x1c01ea83 in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #18 0x0910637f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #19 0x0000002b in ?? () >> #20 0x00000000 in ?? () >> (m3gdb) set lang Modula-3 >> (m3gdb) bt >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, >> fname=0x291010c8 "\000", lineno=688918728) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, >> time_remaining=0x8544ec70) >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ >> ThreadPThread.m3:740 >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ >> ThreadPThread.m3:1253 >> #8 0x1c021041 in SuspendOthers () >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 >> #9 0x1c007ccb in CollectSomeInStateZero () >> at ../src/runtime/common/RTCollector.m3:735 >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ >> RTCollector.m3:709 >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ >> RTCollector.m3:643 >> #12 0x1c004de1 in AllocTraced (dataSize=12, dataAlignment=4, thread= >> RECORD inCritical = 0; pool = RECORD note = Allocated; pure = >> FALSE; page = NIL; next = NIL; limit = NIL; END; END) >> at ../src/runtime/common/RTAllocator.m3:363 >> #13 0x1c004056 in GetTracedObj (def=16_3c001114) >> at ../src/runtime/common/RTAllocator.m3:222 >> #14 0x1c0039ec in AllocateTracedObj (defn=16_3c001114) >> at ../src/runtime/common/RTAllocator.m3:120 >> #15 0x1c002b82 in Task (self=16_8bc4a00c) at ../Main.m3:58 >> #16 0x1c01ed3e in RunThread (me=16_7faae480) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #17 0x1c01ea83 in ThreadBase (param=16_7faae480) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #18 0x0910637f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #19 0x0000002b in ?? () >> #20 0x00000000 in ?? () >> (m3gdb) >> >> Attaching to a running program doesn't yield anything useful: >> >> bash-3.2$ src/p0/p007/I386_OPENBSD/pgm & >> [1] 26756 >> bash-3.2$ >> 1: 1 >> 2: 1 2 >> 3: 1 2 3 >> 4: 1 2 3 4 >> 5: 1 2 3 4 5 >> 6: 1 2 3 4 5 6 >> 7: 1 2 3 4 5 6 7 >> 8: 1 2 3 4 5 6 7 8 >> 9: >> bash-3.2$ ps >> PID TT STAT TIME COMMAND >> 22500 p0 Is 0:00.00 -ksh (ksh) >> 18592 p0 S 0:00.04 bash >> 26756 p0 S 0:00.02 src/p0/p007/I386_OPENBSD/pgm >> 28998 p0 R+ 0:00.00 ps >> bash-3.2$ m3gdb >> GNU gdb plus Modula-3 6.4 >> Copyright 2005 Free Software Foundation, Inc. >> GDB is free software, covered by the GNU General Public License, >> and you are >> welcome to change it and/or distribute copies of it under certain >> conditions. >> Type "show copying" to see the conditions. >> There is absolutely no warranty for GDB. Type "show warranty" for details. >> This GDB was configured as "i686-openbsd". >> (m3gdb) attach 26756 >> Attaching to process 26756 >> 0x0d35f8f1 in ?? () >> (m3gdb) set symbol-file src/p0/p007/I386_OPENBSD/pgm >> No symbol table is loaded. Use the "file" command. >> (m3gdb) symbol-file src/p0/p007/I386_OPENBSD/pgm >> Reading symbols from /home/hudson/workspace/cm3-test-m3tests- >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm...done. >> (m3gdb) bt >> #0 0x0d35f8f1 in ?? () >> #1 0x0a0c0314 in ?? () >> #2 0x84533000 in ?? () >> #3 0x00000001 in ?? () >> #4 0x00000001 in ?? () >> #5 0x00000001 in ?? () >> #6 0x00000000 in ?? () >> >> Does this help? >> Anything I should try this evening? >> >> Olaf >> -- >> Olaf Wagner -- elego Software Solutions GmbH >> Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany >> phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 >> 45 86 95 >> http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin >> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >> DE163214194 >> -- Olaf Wagner -- elego Software Solutions GmbH Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95 http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194 From jay.krell at cornell.edu Thu Oct 15 01:13:57 2009 From: jay.krell at cornell.edu (Jay K) Date: Wed, 14 Oct 2009 23:13:57 +0000 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091014080956.nyzvwlbn4ow4k880@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: I didn't deliberately turn anything off but indeed I can see that some machines are not accessible and some are. I'll look at them later. - Jay > Date: Wed, 14 Oct 2009 08:09:56 +0200 > From: wagner at elegosoft.com > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Status of threads for RC4? > > Quoting Tony Hosking : > > > I need to see all the threads: > > > > thread apply all bt > > Well, of course you need all thread stacks to diagnose a deadlock, > silly me. But I haven't been able to login again since then: > Jay, is the OpenBSD server turned off? Could you either turn it on > this evening CET or send Tony the needed traces? > > Thanks in advance, > > Olaf > > > On 13 Oct 2009, at 02:46, Olaf Wagner wrote: > > > >> Quoting Tony Hosking : > >> > >>> I need a stack dump from the hung OpenBSD p007 run to diagnose (attach > >>> to the process using gdb and grab a stack dump). Are we seeing this > >>> on any other pthread target? > >> > >> I just logged in quickly to Jay's OpenBSD system and started test 7. > >> Output stops after line 8 and I had to hit Control-C. > >> > >> > >> bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 Free Software Foundation, Inc. > >> GDB is free software, covered by the GNU General Public License, > >> and you are > >> welcome to change it and/or distribute copies of it under certain > >> conditions. > >> Type "show copying" to see the conditions. > >> There is absolutely no warranty for GDB. Type "show warranty" for details. > >> This GDB was configured as "i686-openbsd"... > >> (m3gdb) r > >> Starting program: /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > >> > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: ^C > >> Program received signal SIGINT, Interrupt. > >> 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=Invalid C/C++ type code 40 > >> in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=Invalid C/C++ type code 29 in > >> symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=Invalid C/C++ type code > >> 35 in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=Invalid C/C++ type code 26 in symbol table. > >> ) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=Invalid C/C++ type code 29 in symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=Invalid C/C++ type code 35 in > >> symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) set lang Modula-3 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "\000", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=12, dataAlignment=4, thread= > >> RECORD inCritical = 0; pool = RECORD note = Allocated; pure = > >> FALSE; page = NIL; next = NIL; limit = NIL; END; END) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=16_8bc4a00c) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) > >> > >> Attaching to a running program doesn't yield anything useful: > >> > >> bash-3.2$ src/p0/p007/I386_OPENBSD/pgm & > >> [1] 26756 > >> bash-3.2$ > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: > >> bash-3.2$ ps > >> PID TT STAT TIME COMMAND > >> 22500 p0 Is 0:00.00 -ksh (ksh) > >> 18592 p0 S 0:00.04 bash > >> 26756 p0 S 0:00.02 src/p0/p007/I386_OPENBSD/pgm > >> 28998 p0 R+ 0:00.00 ps > >> bash-3.2$ m3gdb > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 Free Software Foundation, Inc. > >> GDB is free software, covered by the GNU General Public License, > >> and you are > >> welcome to change it and/or distribute copies of it under certain > >> conditions. > >> Type "show copying" to see the conditions. > >> There is absolutely no warranty for GDB. Type "show warranty" for details. > >> This GDB was configured as "i686-openbsd". > >> (m3gdb) attach 26756 > >> Attaching to process 26756 > >> 0x0d35f8f1 in ?? () > >> (m3gdb) set symbol-file src/p0/p007/I386_OPENBSD/pgm > >> No symbol table is loaded. Use the "file" command. > >> (m3gdb) symbol-file src/p0/p007/I386_OPENBSD/pgm > >> Reading symbols from /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm...done. > >> (m3gdb) bt > >> #0 0x0d35f8f1 in ?? () > >> #1 0x0a0c0314 in ?? () > >> #2 0x84533000 in ?? () > >> #3 0x00000001 in ?? () > >> #4 0x00000001 in ?? () > >> #5 0x00000001 in ?? () > >> #6 0x00000000 in ?? () > >> > >> Does this help? > >> Anything I should try this evening? > >> > >> Olaf > >> -- > >> Olaf Wagner -- elego Software Solutions GmbH > >> Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany > >> phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 > >> 45 86 95 > >> http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin > >> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > >> DE163214194 > >> > > > > -- > Olaf Wagner -- elego Software Solutions GmbH > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany > phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95 > http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin > Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Thu Oct 15 10:27:56 2009 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Thu, 15 Oct 2009 08:27:56 +0000 (GMT) Subject: [M3devel] Status of threads for RC4? In-Reply-To: Message-ID: <260188.52953.qm@web23603.mail.ird.yahoo.com> Hi all: I was merely thinking how we could mitigate the issue in threading. We could argue the current thread implementation issues on NT are worrisome but, the system performance is more important and I guess a release is waiting? for all platforms stability. I think we could make a work around to put some tests on the GUI subsystem on the test suite, using the sort of capability that Zeus Mentor Snapshot has to capture the screen shot and compare with others results with test already on: m3-ui/ui-tests m3-ui/ui/test Just getting some sort of difference between NT GUI subsystem and X implementation would allows to see where we can be missing something. Also integration on X implementation of Critical mass GUI upgrade would be highly appreciated: cm3-cvs/m3-ui/cmvbt Also I remember I saw the pm3 NT386GNU target implementation doing basic stuff with DEC SRC NT GUI, but? another doing advanced stuff with Mentor and others I think? the code you can get it by the package/src/ directories (http://www.1o0.de/wi-links/modula3/), but I?m not aware if it used the x/cygwin, I don?t think so, but even if so, would be an advance to have mentor running animation stuff until some point we could get better performance in the current NT GUI implementation (could be something in the garbage collection, Tony, as NT has its own garbage collector, has it been maintained after CM3 developed the new collector?) Another shot maybe for next release (7.0) is trying to develop tests on obliq framework and integration with pm3 documentation system, which seemed to be good. About Unix interfaces, Im thinking how to reuse the SPIN digital Unix interface so we can have a sort of a virtualization tool integrated in CM3 as a tool for deploying Unix apps on NT and getting some layers of Modula-3 runtime code based on a standarized Unix interface Sphinx.i3 (path in spin sources tree user/sphinx/src/IX86_SPIN/) something we could call "DECUnix.i3", we could also get some parts of the system running directly over Modula-3 runtime code rather than on bare Unix interfaces getting a more standarized behaviuor and maybe we could gain some knowledge to do experiments for system developers and users Thanks in advance --- El mi?, 14/10/09, Jay K escribi?: De: Jay K Asunto: Re: [M3devel] Status of threads for RC4? Para: "Olaf" , "Tony" CC: "m3devel" Fecha: mi?rcoles, 14 octubre, 2009 6:13 I didn't deliberately turn anything off but indeed I can see that some machines are not accessible and some are. I'll look at them later. ? ?- Jay ? > Date: Wed, 14 Oct 2009 08:09:56 +0200 > From: wagner at elegosoft.com > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Status of threads for RC4? > > Quoting Tony Hosking : > > > I need to see all the threads: > > > > thread apply all bt > > Well, of course you need all thread stacks to diagnose a deadlock, > silly me. But I haven't been able to login again since then: > Jay, is the OpenBSD server turned off? Could you either turn it on > this evening CET or send Tony the needed traces? > > Thanks in advance, > > Olaf > > > On 13 Oct 2009, at 02:46, Olaf Wagner wrote: > > > >> Quoting Tony Hosking : > >> > >>> I need a stack dump from the hung OpenBSD p007 run to diagnose (attach > >>> to the process using gdb and grab a stack dump). Are we seeing this > >>> on any other pthread target? > >> > >> I just logged in quickly to Jay's OpenBSD system and started test 7. > >> Output stops after line 8 and I had to hit Control-C. > >> > >> > >> bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 Free Software Foundation, Inc. > >> GDB is free software, covered by the GNU General Public License, > >> and you are > >> welcome to change it and/or distribute copies of it under certain > >> conditions. > >> Type "show copying" to see the conditions. > >> There is absolutely no warranty for GDB. Type "show warranty" for details. > >> This GDB was configured as "i686-openbsd"... > >> (m3gdb) r > >> Starting program: /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > >> > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: ^C > >> Program received signal SIGINT, Interrupt. > >> 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=Invalid C/C++ type code 40 > >> in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=Invalid C/C++ type code 29 in > >> symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=Invalid C/C++ type code > >> 35 in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=Invalid C/C++ type code 26 in symbol table. > >> ) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=Invalid C/C++ type code 29 in symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=Invalid C/C++ type code 35 in > >> symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) set lang Modula-3 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "\000", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=12, dataAlignment=4, thread= > >> RECORD inCritical = 0; pool = RECORD note = Allocated; pure = > >> FALSE; page = NIL; next = NIL; limit = NIL; END; END) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=16_8bc4a00c) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) > >> > >> Attaching to a running program doesn't yield anything useful: > >> > >> bash-3.2$ src/p0/p007/I386_OPENBSD/pgm & > >> [1] 26756 > >> bash-3.2$ > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: > >> bash-3.2$ ps > >> PID TT STAT TIME COMMAND > >> 22500 p0 Is 0:00.00 -ksh (ksh) > >> 18592 p0 S 0:00.04 bash > >> 26756 p0 S 0:00.02 src/p0/p007/I386_OPENBSD/pgm > >> 28998 p0 R+ 0:00.00 ps > >> bash-3.2$ m3gdb > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 Free Software Foundation, Inc. > >> GDB is free software, covered by the GNU General Public License, > >> and you are > >> welcome to change it and/or distribute copies of it under certain > >> conditions. > >> Type "show copying" to see the conditions. > >> There is absolutely no warranty for GDB. Type "show warranty" for details. > >> This GDB was configured as "i686-openbsd". > >> (m3gdb) attach 26756 > >> Attaching to process 26756 > >> 0x0d35f8f1 in ?? () > >> (m3gdb) set symbol-file src/p0/p007/I386_OPENBSD/pgm > >> No symbol table is loaded. Use the "file" command. > >> (m3gdb) symbol-file src/p0/p007/I386_OPENBSD/pgm > >> Reading symbols from /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm...done. > >> (m3gdb) bt > >> #0 0x0d35f8f1 in ?? () > >> #1 0x0a0c0314 in ?? () > >> #2 0x84533000 in ?? () > >> #3 0x00000001 in ?? () > >> #4 0x00000001 in ?? () > >> #5 0x00000001 in ?? () > >> #6 0x00000000 in ?? () > >> > >> Does this help? > >> Anything I should try this evening? > >> > >> Olaf > >> -- > >> Olaf Wagner -- elego Software Solutions GmbH > >> Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany > >> phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 > >> 45 86 95 > >> http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin > >> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > >> DE163214194 > >> > > > > -- > Olaf Wagner -- elego Software Solutions GmbH > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany > phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95 > http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin > Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Oct 15 16:30:22 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 15 Oct 2009 14:30:22 +0000 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091014080956.nyzvwlbn4ow4k880@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: Linux/x86 and OpenBSD/x86 are back on. I'll spend a few minutes see if I can get the stacks. - Jay From: jay.krell at cornell.edu To: wagner at elegosoft.com; hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Status of threads for RC4? Date: Wed, 14 Oct 2009 23:13:57 +0000 I didn't deliberately turn anything off but indeed I can see that some machines are not accessible and some are. I'll look at them later. - Jay > Date: Wed, 14 Oct 2009 08:09:56 +0200 > From: wagner at elegosoft.com > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Status of threads for RC4? > > Quoting Tony Hosking : > > > I need to see all the threads: > > > > thread apply all bt > > Well, of course you need all thread stacks to diagnose a deadlock, > silly me. But I haven't been able to login again since then: > Jay, is the OpenBSD server turned off? Could you either turn it on > this evening CET or send Tony the needed traces? > > Thanks in advance, > > Olaf > > > On 13 Oct 2009, at 02:46, Olaf Wagner wrote: > > > >> Quoting Tony Hosking : > >> > >>> I need a stack dump from the hung OpenBSD p007 run to diagnose (attach > >>> to the process using gdb and grab a stack dump). Are we seeing this > >>> on any other pthread target? > >> > >> I just logged in quickly to Jay's OpenBSD system and started test 7. > >> Output stops after line 8 and I had to hit Control-C. > >> > >> > >> bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 Free Software Foundation, Inc. > >> GDB is free software, covered by the GNU General Public License, > >> and you are > >> welcome to change it and/or distribute copies of it under certain > >> conditions. > >> Type "show copying" to see the conditions. > >> There is absolutely no warranty for GDB. Type "show warranty" for details. > >> This GDB was configured as "i686-openbsd"... > >> (m3gdb) r > >> Starting program: /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > >> > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: ^C > >> Program received signal SIGINT, Interrupt. > >> 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=Invalid C/C++ type code 40 > >> in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=Invalid C/C++ type code 29 in > >> symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=Invalid C/C++ type code > >> 35 in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=Invalid C/C++ type code 26 in symbol table. > >> ) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=Invalid C/C++ type code 29 in symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=Invalid C/C++ type code 35 in > >> symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) set lang Modula-3 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "\000", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=12, dataAlignment=4, thread= > >> RECORD inCritical = 0; pool = RECORD note = Allocated; pure = > >> FALSE; page = NIL; next = NIL; limit = NIL; END; END) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=16_8bc4a00c) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) > >> > >> Attaching to a running program doesn't yield anything useful: > >> > >> bash-3.2$ src/p0/p007/I386_OPENBSD/pgm & > >> [1] 26756 > >> bash-3.2$ > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: > >> bash-3.2$ ps > >> PID TT STAT TIME COMMAND > >> 22500 p0 Is 0:00.00 -ksh (ksh) > >> 18592 p0 S 0:00.04 bash > >> 26756 p0 S 0:00.02 src/p0/p007/I386_OPENBSD/pgm > >> 28998 p0 R+ 0:00.00 ps > >> bash-3.2$ m3gdb > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 Free Software Foundation, Inc. > >> GDB is free software, covered by the GNU General Public License, > >> and you are > >> welcome to change it and/or distribute copies of it under certain > >> conditions. > >> Type "show copying" to see the conditions. > >> There is absolutely no warranty for GDB. Type "show warranty" for details. > >> This GDB was configured as "i686-openbsd". > >> (m3gdb) attach 26756 > >> Attaching to process 26756 > >> 0x0d35f8f1 in ?? () > >> (m3gdb) set symbol-file src/p0/p007/I386_OPENBSD/pgm > >> No symbol table is loaded. Use the "file" command. > >> (m3gdb) symbol-file src/p0/p007/I386_OPENBSD/pgm > >> Reading symbols from /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm...done. > >> (m3gdb) bt > >> #0 0x0d35f8f1 in ?? () > >> #1 0x0a0c0314 in ?? () > >> #2 0x84533000 in ?? () > >> #3 0x00000001 in ?? () > >> #4 0x00000001 in ?? () > >> #5 0x00000001 in ?? () > >> #6 0x00000000 in ?? () > >> > >> Does this help? > >> Anything I should try this evening? > >> > >> Olaf > >> -- > >> Olaf Wagner -- elego Software Solutions GmbH > >> Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany > >> phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 > >> 45 86 95 > >> http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin > >> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > >> DE163214194 > >> > > > > -- > Olaf Wagner -- elego Software Solutions GmbH > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany > phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95 > http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin > Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Oct 15 16:49:51 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 15 Oct 2009 14:49:51 +0000 Subject: [M3devel] Status of threads for RC4? In-Reply-To: References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: In head, wierd. in gdb: 730: 716 717 718 719 720 721 722 723 724 725 726 727 728 729 7 30 731: [1] + Stopped (tty output) gdb ./I386_OPENBSD/pgm $ attach shows no stack. Maybe more later? -Jay From: jay.krell at cornell.edu To: wagner at elegosoft.com; hosking at cs.purdue.edu Date: Thu, 15 Oct 2009 14:30:22 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Status of threads for RC4? Linux/x86 and OpenBSD/x86 are back on. I'll spend a few minutes see if I can get the stacks. - Jay From: jay.krell at cornell.edu To: wagner at elegosoft.com; hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Status of threads for RC4? Date: Wed, 14 Oct 2009 23:13:57 +0000 I didn't deliberately turn anything off but indeed I can see that some machines are not accessible and some are. I'll look at them later. - Jay > Date: Wed, 14 Oct 2009 08:09:56 +0200 > From: wagner at elegosoft.com > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Status of threads for RC4? > > Quoting Tony Hosking : > > > I need to see all the threads: > > > > thread apply all bt > > Well, of course you need all thread stacks to diagnose a deadlock, > silly me. But I haven't been able to login again since then: > Jay, is the OpenBSD server turned off? Could you either turn it on > this evening CET or send Tony the needed traces? > > Thanks in advance, > > Olaf > > > On 13 Oct 2009, at 02:46, Olaf Wagner wrote: > > > >> Quoting Tony Hosking : > >> > >>> I need a stack dump from the hung OpenBSD p007 run to diagnose (attach > >>> to the process using gdb and grab a stack dump). Are we seeing this > >>> on any other pthread target? > >> > >> I just logged in quickly to Jay's OpenBSD system and started test 7. > >> Output stops after line 8 and I had to hit Control-C. > >> > >> > >> bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 Free Software Foundation, Inc. > >> GDB is free software, covered by the GNU General Public License, > >> and you are > >> welcome to change it and/or distribute copies of it under certain > >> conditions. > >> Type "show copying" to see the conditions. > >> There is absolutely no warranty for GDB. Type "show warranty" for details. > >> This GDB was configured as "i686-openbsd"... > >> (m3gdb) r > >> Starting program: /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > >> > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: ^C > >> Program received signal SIGINT, Interrupt. > >> 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=Invalid C/C++ type code 40 > >> in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=Invalid C/C++ type code 29 in > >> symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=Invalid C/C++ type code > >> 35 in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=Invalid C/C++ type code 26 in symbol table. > >> ) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=Invalid C/C++ type code 29 in symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=Invalid C/C++ type code 35 in > >> symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) set lang Modula-3 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "\000", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=12, dataAlignment=4, thread= > >> RECORD inCritical = 0; pool = RECORD note = Allocated; pure = > >> FALSE; page = NIL; next = NIL; limit = NIL; END; END) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=16_8bc4a00c) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) > >> > >> Attaching to a running program doesn't yield anything useful: > >> > >> bash-3.2$ src/p0/p007/I386_OPENBSD/pgm & > >> [1] 26756 > >> bash-3.2$ > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: > >> bash-3.2$ ps > >> PID TT STAT TIME COMMAND > >> 22500 p0 Is 0:00.00 -ksh (ksh) > >> 18592 p0 S 0:00.04 bash > >> 26756 p0 S 0:00.02 src/p0/p007/I386_OPENBSD/pgm > >> 28998 p0 R+ 0:00.00 ps > >> bash-3.2$ m3gdb > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 Free Software Foundation, Inc. > >> GDB is free software, covered by the GNU General Public License, > >> and you are > >> welcome to change it and/or distribute copies of it under certain > >> conditions. > >> Type "show copying" to see the conditions. > >> There is absolutely no warranty for GDB. Type "show warranty" for details. > >> This GDB was configured as "i686-openbsd". > >> (m3gdb) attach 26756 > >> Attaching to process 26756 > >> 0x0d35f8f1 in ?? () > >> (m3gdb) set symbol-file src/p0/p007/I386_OPENBSD/pgm > >> No symbol table is loaded. Use the "file" command. > >> (m3gdb) symbol-file src/p0/p007/I386_OPENBSD/pgm > >> Reading symbols from /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm...done. > >> (m3gdb) bt > >> #0 0x0d35f8f1 in ?? () > >> #1 0x0a0c0314 in ?? () > >> #2 0x84533000 in ?? () > >> #3 0x00000001 in ?? () > >> #4 0x00000001 in ?? () > >> #5 0x00000001 in ?? () > >> #6 0x00000000 in ?? () > >> > >> Does this help? > >> Anything I should try this evening? > >> > >> Olaf > >> -- > >> Olaf Wagner -- elego Software Solutions GmbH > >> Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany > >> phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 > >> 45 86 95 > >> http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin > >> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > >> DE163214194 > >> > > > > -- > Olaf Wagner -- elego Software Solutions GmbH > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany > phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95 > http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin > Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Thu Oct 15 23:45:04 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Thu, 15 Oct 2009 23:45:04 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> Message-ID: <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> Quoting Tony Hosking : > I need to see all the threads: > > thread apply all bt Here you are: bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm GNU gdb plus Modula-3 6.4 Copyright 2005 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i686-openbsd"... (m3gdb) r Starting program: /home/hudson/workspace/cm3-test-all-pkgs-I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm 1: 1 2: 1 2 3: 1 2 3 4: 1 2 3 4 5: 1 2 3 4 5 6: 1 2 3 4 5 6 7: 1 2 3 4 5 6 7 8: 1 2 3 4 5 6 7 8 9: ^C Program received signal SIGINT, Interrupt. 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 (m3gdb) set lang Modula-3 (m3gdb) thread apply all bt Thread 10 (process 23708, thread 0x821ff000): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x821ff0b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c9bc in XWait (self=16_83e7a00c, m=16_83e7a0b4, c=16_83e7a0a4, alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) at ../src/thread/PTHREAD/ThreadPThread.m3:280 #6 0x1c002efc in Main (mode=1) at ../Main.m3:75 #7 0x1c011ca0 in RunMainBody (m=16_3c0010e0) at ../src/runtime/common/RTLinker.m3:399 #8 0x1c01105a in AddUnitI (m=16_3c0010e0) at ../src/runtime/common/RTLinker.m3:113 #9 0x1c0110e8 in AddUnit (b={"Main_M3", Declared at: ../Main.m3:70}) at ../src/runtime/common/RTLinker.m3:122 #10 0x1c002806 in main (argc=1, argv=0xcfbc1fb4, envp=0xcfbc1fbc) at _m3main.mc:4 #11 0x1c00266c in ___start () #12 0x1c0025bf in _start () Warning: the current language does not match this frame. Thread 9 (process 23708, thread 0x821ff400): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x821ff4b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c9bc in XWait (self=16_83e7a0d0, m=16_83e7a0b4, c=16_83e7a0a4, alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) at ../src/thread/PTHREAD/ThreadPThread.m3:280 #6 0x1c0029c6 in Task (self=16_83e7a0c0) at ../Main.m3:42 #7 0x1c01ed3e in RunThread (me=16_7dbbb880) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #8 0x1c01ea83 in ThreadBase (param=16_7dbbb880) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #9 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #10 0x0000002b in ?? () #11 0x00000000 in ?? () Thread 8 (process 23708, thread 0x87b14c00): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x87b14cb0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d5e2d in pthread_cond_timedwait (cond=0x231ca0e0, mutex=0x231ca0dc, abstime=0x87731fa8) at /usr/src/lib/libpthread/uthread/uthread_cond.c:431 #3 0x031cf5a7 in _thread_gc (arg=0x0) at /usr/src/lib/libpthread/uthread/uthread_gc.c:181 #4 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #5 0x0000002b in ?? () #6 0x00000000 in ?? () Thread 7 (process 23708, thread 0x87b14800): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x87b148b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c9bc in XWait (self=16_83e7c01c, m=16_83e7a0b4, c=16_83e7a0a4, alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) at ../src/thread/PTHREAD/ThreadPThread.m3:280 #6 0x1c0029c6 in Task (self=16_83e7c00c) at ../Main.m3:42 #7 0x1c01ed3e in RunThread (me=16_7dbbba80) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #8 0x1c01ea83 in ThreadBase (param=16_7dbbba80) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #9 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #10 0x0000002b in ?? () #11 0x00000000 in ?? () Thread 6 (process 23708, thread 0x87b14000): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x87b140b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002918 in Task (self=16_83e7e00c) at ../Main.m3:41 #6 0x1c01ed3e in RunThread (me=16_7dbbbb80) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01ea83 in ThreadBase (param=16_7dbbbb80) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 5 (process 23708, thread 0x8b659800): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x8b6598b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002918 in Task (self=16_83e8000c) at ../Main.m3:41 #6 0x1c01ed3e in RunThread (me=16_7dbbb680) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01ea83 in ThreadBase (param=16_7dbbb680) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 4 (process 23708, thread 0x8b659000): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x8b6590b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002918 in Task (self=16_83e8200c) at ../Main.m3:41 #6 0x1c01ed3e in RunThread (me=16_7dbbb400) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01ea83 in ThreadBase (param=16_7dbbb400) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 3 (process 23708, thread 0x868d6400): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x868d64b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002918 in Task (self=16_83e8400c) at ../Main.m3:41 #6 0x1c01ed3e in RunThread (me=16_7dbbb180) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01ea83 in ThreadBase (param=16_7dbbb180) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 2 (process 23708, thread 0x868d6c00): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x868d6cb0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002918 in Task (self=16_83e8600c) at ../Main.m3:41 #6 0x1c01ed3e in RunThread (me=16_7dbbba00) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01ea83 in ThreadBase (param=16_7dbbba00) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 1 (process 23708, thread 0x862c9400): #0 _thread_kern_sched (scp=Cannot access memory at address 0xbb319 ) at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 Cannot access memory at address 0xbb315 #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 (m3gdb) I hope this helps, Olaf -- Olaf Wagner -- elego Software Solutions GmbH Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95 http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194 From hosking at cs.purdue.edu Fri Oct 16 00:23:20 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 15 Oct 2009 18:23:20 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> Message-ID: Hmm. This is very weird. All the threads are trying to acquire the same mutex (the global mutex in p007/src/Main.m3), but none of them is actually holding it. So, why can't one of them get it? Anyone else have any idea what's going on here? On 15 Oct 2009, at 17:45, Olaf Wagner wrote: > Quoting Tony Hosking : > >> I need to see all the threads: >> >> thread apply all bt > > Here you are: > > bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > GNU gdb plus Modula-3 6.4 > Copyright 2005 Free Software Foundation, Inc. > GDB is free software, covered by the GNU General Public License, and > you are > welcome to change it and/or distribute copies of it under certain > conditions. > Type "show copying" to see the conditions. > There is absolutely no warranty for GDB. Type "show warranty" for > details. > This GDB was configured as "i686-openbsd"... > (m3gdb) r > Starting program: /home/hudson/workspace/cm3-test-all-pkgs- > I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > > 1: 1 > 2: 1 2 > 3: 1 2 3 > 4: 1 2 3 4 > 5: 1 2 3 4 5 > 6: 1 2 3 4 5 6 > 7: 1 2 3 4 5 6 7 > 8: 1 2 3 4 5 6 7 8 > 9: ^C > Program received signal SIGINT, Interrupt. > 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) set lang Modula-3 > (m3gdb) thread apply all bt > > Thread 10 (process 23708, thread 0x821ff000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x821ff0b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c9bc in XWait (self=16_83e7a00c, m=16_83e7a0b4, > c=16_83e7a0a4, > alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) > at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c002efc in Main (mode=1) at ../Main.m3:75 > #7 0x1c011ca0 in RunMainBody (m=16_3c0010e0) > at ../src/runtime/common/RTLinker.m3:399 > #8 0x1c01105a in AddUnitI (m=16_3c0010e0) > at ../src/runtime/common/RTLinker.m3:113 > #9 0x1c0110e8 in AddUnit (b={"Main_M3", Declared at: ../Main.m3:70}) > at ../src/runtime/common/RTLinker.m3:122 > #10 0x1c002806 in main (argc=1, argv=0xcfbc1fb4, envp=0xcfbc1fbc) > at _m3main.mc:4 > #11 0x1c00266c in ___start () > #12 0x1c0025bf in _start () > Warning: the current language does not match this frame. > > Thread 9 (process 23708, thread 0x821ff400): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x821ff4b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c9bc in XWait (self=16_83e7a0d0, m=16_83e7a0b4, > c=16_83e7a0a4, > alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) > at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c0029c6 in Task (self=16_83e7a0c0) at ../Main.m3:42 > #7 0x1c01ed3e in RunThread (me=16_7dbbb880) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #8 0x1c01ea83 in ThreadBase (param=16_7dbbb880) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #9 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #10 0x0000002b in ?? () > #11 0x00000000 in ?? () > > Thread 8 (process 23708, thread 0x87b14c00): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x87b14cb0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d5e2d in pthread_cond_timedwait (cond=0x231ca0e0, > mutex=0x231ca0dc, > abstime=0x87731fa8) at /usr/src/lib/libpthread/uthread/ > uthread_cond.c:431 > #3 0x031cf5a7 in _thread_gc (arg=0x0) > at /usr/src/lib/libpthread/uthread/uthread_gc.c:181 > #4 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #5 0x0000002b in ?? () > #6 0x00000000 in ?? () > > Thread 7 (process 23708, thread 0x87b14800): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x87b148b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c9bc in XWait (self=16_83e7c01c, m=16_83e7a0b4, > c=16_83e7a0a4, > alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) > at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c0029c6 in Task (self=16_83e7c00c) at ../Main.m3:42 > #7 0x1c01ed3e in RunThread (me=16_7dbbba80) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #8 0x1c01ea83 in ThreadBase (param=16_7dbbba80) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #9 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #10 0x0000002b in ?? () > #11 0x00000000 in ?? () > > Thread 6 (process 23708, thread 0x87b14000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x87b140b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e7e00c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbbb80) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbbb80) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 5 (process 23708, thread 0x8b659800): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x8b6598b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8000c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbb680) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbb680) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 4 (process 23708, thread 0x8b659000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x8b6590b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8200c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbb400) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbb400) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 3 (process 23708, thread 0x868d6400): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x868d64b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8400c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbb180) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbb180) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 2 (process 23708, thread 0x868d6c00): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x868d6cb0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8600c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbba00) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbba00) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 1 (process 23708, thread 0x862c9400): > #0 _thread_kern_sched (scp=Cannot access memory at address 0xbb319 > ) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 > Cannot access memory at address 0xbb315 > #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) > > I hope this helps, > > Olaf > -- > Olaf Wagner -- elego Software Solutions GmbH > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, > Germany > phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 > 45 86 95 > http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: > Berlin > Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > DE163214194 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Oct 16 01:34:04 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 15 Oct 2009 19:34:04 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> Message-ID: > Thread 1 (process 23708, thread 0x862c9400): > #0 _thread_kern_sched (scp=Cannot access memory at address 0xbb319 > ) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 > Cannot access memory at address 0xbb315 > #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) So what is thread 1 up to? On 15 Oct 2009, at 17:45, Olaf Wagner wrote: > Quoting Tony Hosking : > >> I need to see all the threads: >> >> thread apply all bt > > Here you are: > > bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > GNU gdb plus Modula-3 6.4 > Copyright 2005 Free Software Foundation, Inc. > GDB is free software, covered by the GNU General Public License, and > you are > welcome to change it and/or distribute copies of it under certain > conditions. > Type "show copying" to see the conditions. > There is absolutely no warranty for GDB. Type "show warranty" for > details. > This GDB was configured as "i686-openbsd"... > (m3gdb) r > Starting program: /home/hudson/workspace/cm3-test-all-pkgs- > I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > > 1: 1 > 2: 1 2 > 3: 1 2 3 > 4: 1 2 3 4 > 5: 1 2 3 4 5 > 6: 1 2 3 4 5 6 > 7: 1 2 3 4 5 6 7 > 8: 1 2 3 4 5 6 7 8 > 9: ^C > Program received signal SIGINT, Interrupt. > 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) set lang Modula-3 > (m3gdb) thread apply all bt > > Thread 10 (process 23708, thread 0x821ff000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x821ff0b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c9bc in XWait (self=16_83e7a00c, m=16_83e7a0b4, > c=16_83e7a0a4, > alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) > at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c002efc in Main (mode=1) at ../Main.m3:75 > #7 0x1c011ca0 in RunMainBody (m=16_3c0010e0) > at ../src/runtime/common/RTLinker.m3:399 > #8 0x1c01105a in AddUnitI (m=16_3c0010e0) > at ../src/runtime/common/RTLinker.m3:113 > #9 0x1c0110e8 in AddUnit (b={"Main_M3", Declared at: ../Main.m3:70}) > at ../src/runtime/common/RTLinker.m3:122 > #10 0x1c002806 in main (argc=1, argv=0xcfbc1fb4, envp=0xcfbc1fbc) > at _m3main.mc:4 > #11 0x1c00266c in ___start () > #12 0x1c0025bf in _start () > Warning: the current language does not match this frame. > > Thread 9 (process 23708, thread 0x821ff400): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x821ff4b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c9bc in XWait (self=16_83e7a0d0, m=16_83e7a0b4, > c=16_83e7a0a4, > alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) > at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c0029c6 in Task (self=16_83e7a0c0) at ../Main.m3:42 > #7 0x1c01ed3e in RunThread (me=16_7dbbb880) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #8 0x1c01ea83 in ThreadBase (param=16_7dbbb880) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #9 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #10 0x0000002b in ?? () > #11 0x00000000 in ?? () > > Thread 8 (process 23708, thread 0x87b14c00): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x87b14cb0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d5e2d in pthread_cond_timedwait (cond=0x231ca0e0, > mutex=0x231ca0dc, > abstime=0x87731fa8) at /usr/src/lib/libpthread/uthread/ > uthread_cond.c:431 > #3 0x031cf5a7 in _thread_gc (arg=0x0) > at /usr/src/lib/libpthread/uthread/uthread_gc.c:181 > #4 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #5 0x0000002b in ?? () > #6 0x00000000 in ?? () > > Thread 7 (process 23708, thread 0x87b14800): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x87b148b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c9bc in XWait (self=16_83e7c01c, m=16_83e7a0b4, > c=16_83e7a0a4, > alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) > at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c0029c6 in Task (self=16_83e7c00c) at ../Main.m3:42 > #7 0x1c01ed3e in RunThread (me=16_7dbbba80) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #8 0x1c01ea83 in ThreadBase (param=16_7dbbba80) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #9 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #10 0x0000002b in ?? () > #11 0x00000000 in ?? () > > Thread 6 (process 23708, thread 0x87b14000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x87b140b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e7e00c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbbb80) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbbb80) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 5 (process 23708, thread 0x8b659800): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x8b6598b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8000c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbb680) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbb680) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 4 (process 23708, thread 0x8b659000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x8b6590b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8200c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbb400) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbb400) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 3 (process 23708, thread 0x868d6400): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x868d64b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8400c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbb180) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbb180) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 2 (process 23708, thread 0x868d6c00): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x868d6cb0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8600c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbba00) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbba00) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 1 (process 23708, thread 0x862c9400): > #0 _thread_kern_sched (scp=Cannot access memory at address 0xbb319 > ) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 > Cannot access memory at address 0xbb315 > #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) > > I hope this helps, > > Olaf > -- > Olaf Wagner -- elego Software Solutions GmbH > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, > Germany > phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 > 45 86 95 > http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: > Berlin > Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > DE163214194 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sun Oct 18 10:16:11 2009 From: jay.krell at cornell.edu (Jay K) Date: Sun, 18 Oct 2009 08:16:11 +0000 Subject: [M3devel] condition variables/win32 In-Reply-To: References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> Message-ID: I still have questions here. 1) Page 93 of the Nelson book: A monitor consists of some data, a mutex, and zero or more condition variables. A particular condition variable is always used in conjunction with the same mutex and its data. Doesn't this contradict the point made here? Does a condition variable always map to the same mutex or not? Or is this merely describing a typical usage pattern that is a subset of what interface Thread allows? 2) Can Wait only be satisfied by Signal/Broadcast, or also just via UnlockMutex? Depending on the answer to these questions, it seems you can largely merge mutex and condition variable. Condition variable is basically waiting for a thread to exit a mutex. Which is very very similar to LockMutex, except that it doesn't want to take the mutex in the uncontended case, it actually wants to wait for another thread to both acquire and release the mutex. I suspect I'm wrong on both of these. That condition variable really can use multiple mutexes. That exiting a mutex has no obligation to wake condition variables, though it might be in good faith to do so...er..if it is in good faith to not require programmer to use Signal/Broadcast. Thanks, - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu; mika at async.async.caltech.edu Date: Thu, 8 Oct 2009 19:13:03 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] condition variables/win32 That seems a little strange to me but I guess I'll have to keep it in mind. - Jay From: hosking at cs.purdue.edu To: mika at async.async.caltech.edu Date: Thu, 8 Oct 2009 11:00:36 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] condition variables/win32 Sorry, yes, you are right of course! The Modula-3 spec (and the current pthreads-based implementation as also the win32 implementation I expect) do allow a condition variable being mediated by different mutexes. My comment was clouded by my recollection from the pthreads spec that for pthread mutex/cv behavior for other than 1 mutex per cv is undefined. This confusion may have been the source of prior bugs in the pthreads threading implementation, but those bugs are gone now. We support the M3 spec properly. On 8 Oct 2009, at 10:34, Mika Nystrom wrote: Why can't you use the same condition variable with different mutexes? This is dynamic, up to the M3 programmer, no? Tony Hosking writes: --Apple-Mail-96--321618545 Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit In general, it is OK in M3 to associate multiple conditions with the same mutex. But not vice versa. On 8 Oct 2009, at 09:32, Jay K wrote: condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay --Apple-Mail-96--321618545 Content-Type: text/html; charset=US-ASCII Content-Transfer-Encoding: quoted-printable
In = general, it is OK in M3 to associate multiple conditions with the same = mutex.  But not vice versa.

On 8 Oct 2009, = at 09:32, Jay K wrote:

condition = variables/win32
 

So..one way I think about condition = variables
is that you want to be woken when someone else
leaves = the mutex that guards the data that you are dealing with.
You want to = know when another thread modifies the data.
(If you have a = reader/writer lock, you only want to be
woken when someone exits a = write.)
 

Now, if you consider a producer/consumer = queue.
There are two interesting occurences.
Transitions from = empty to non-empty
and transitions from full to non-full = (optionally,
if it is fixed size).
 

Consumers wait = for empty to non-empty.
Consumers signal full to = non-full.
Producers wait for full to non-full.
Producers signal = non-empty to empty.
 

So, in this case, one mutex is = likely used with with two condition = variables.
 

But, what if we take a simplifying = deoptimization and assume that a condition
variable is only ever = associated with one mutex?
Anyone existing that mutex wakes up anyone = waiting on any condition associated with it?
Like, a condition = variable I think becomes stateless and everything is
about the = mutex?
 
 
What is the = downside?
 

Condition variables are allowed to have = spurious wakeups.
This would "just" increase them. Too = much?
 

So, therefore, what would be wrong with the = following design?
 a mutex contains an event 
 and a number of = waiters, zero or non-zero 
 if a mutex is = exiting with a non-zero number of waiters, signal the = event
 

To handle Signal vs. Broadcast
method = 1:
 the number of waiters might be interlocked
 the = woken would decrement it
 if it isn't zero, signal the event = again
 

method 2:
 the number of waiters is both = an integer and a semaphore
 and the lock exiter raises the = semaphore by the the integer

 
method 3:
 it is = not an auto-reset event and there is a count
  and when the = count goes to 0, reset the event
 I think in this case you have = to maintain a "wait generation" 
 so that new = waiters don't prevent the count from ever hitting 0.
 I think = this #3 is what Java might be doing, and is described here:
http://www.cs.wu= stl.edu/~schmidt/win32-cv-1.html
 "3.3. The Generation Count = Solution"

 
also:
http://www.cs.wu= stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = Solution
Evaluating the SetEvent Solution
Incorrectness -- 
 

Is that = incorrect case really necessarily incorrect?
It seems unfair, since = first waiter should be first woken, but..?

 
Am I missing = something? A lot?
 

 - = Jay

= --Apple-Mail-96--321618545-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Sun Oct 18 12:30:28 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Sun, 18 Oct 2009 12:30:28 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> Message-ID: <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> Quoting Tony Hosking : >> Thread 1 (process 23708, thread 0x862c9400): >> #0 _thread_kern_sched (scp=Cannot access memory at address 0xbb319 >> ) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 >> Cannot access memory at address 0xbb315 >> #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 >> (m3gdb) > > So what is thread 1 up to? I don't really understand what's going on there. But I made another test which might or might not be helpful. I single-stepped in thread 1 until it blocks. We get actually no output from other threads then (though several have been started, but then thread 3 seems to be corrupt. Here is the debugger session: -- bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm GNU gdb plus Modula-3 6.4 Copyright 2005 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i686-openbsd"... (m3gdb) b Main Main Main.m3 Main_M3_tcb594446_LINK Main.i3 Main.mc Main.ic Main_M3_t9b50f823_INIT (m3gdb) b Main Main Main.m3 Main_M3_tcb594446_LINK Main.i3 Main.mc Main.ic Main_M3_t9b50f823_INIT (m3gdb) b Main Breakpoint 1 at 0x1c0031c9: file ../Main.m3, line 127. (m3gdb) r Starting program: /home/hudson/workspace/cm3-lastok-build-I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm Breakpoint 1 at 0x1c0031b5: file ../Main.m3, line 127. [Switching to process 15851, thread 0x85cc4800] Breakpoint 1, Main (mode=0) at ../Main.m3:127 127 BEGIN Current language: auto; currently Modula-3 (m3gdb) n 0x1c00283e in __i686.get_pc_thunk.bx () (m3gdb) Single stepping until exit from function __i686.get_pc_thunk.bx, which has no line number information. 0x1c003901 in Main (mode=1006721732) at ../Main.m3:157 157 RTIO.Flush (); (m3gdb) AddUnit (b={"Main_M3", Declared at: ../Main.m3:127}) at ../src/runtime/common/RTLinker.m3:121 121 IF (m = NIL) THEN RETURN END; (m3gdb) 122 AddUnitI(m); (m3gdb) Breakpoint 1, Main (mode=1) at ../Main.m3:127 127 BEGIN (m3gdb) 0x1c00283e in __i686.get_pc_thunk.bx () (m3gdb) finish Run till exit from #0 0x1c00283e in __i686.get_pc_thunk.bx () 0x1c0031c3 in Main (mode=2115735632) at ../Main.m3:127 127 BEGIN (m3gdb) n 131 iolock := NEW (MUTEX); (m3gdb) 132 stop := NEW (Thread.Condition); (m3gdb) l 127 BEGIN 128 129 (* Thread.MinDefaultStackSize (20000); *) 130 131 iolock := NEW (MUTEX); 132 stop := NEW (Thread.Condition); 133 134 com := NEW (A, limit := 2000); 135 com.done := NEW (Thread.Condition); 136 com.first := 1; (m3gdb) n 134 com := NEW (A, limit := 2000); (m3gdb) 135 com.done := NEW (Thread.Condition); (m3gdb) 136 com.first := 1; (m3gdb) 137 com.next := 1; (m3gdb) 138 com.last := 1; (m3gdb) 139 t := NEW (T, id := 1, limit := 15); (m3gdb) 141 INC (com.count); (m3gdb) 142 Int (com.count, 5, ": "); (m3gdb) 144 th := Thread.Fork (t); (m3gdb) 145 t.thread := th; (m3gdb) 146 LOCK com DO (m3gdb) 147 Thread.Broadcast (com.done); (m3gdb) 148 END; (m3gdb) 151 LOCK com DO (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) ^C[New process 15851] ^C Program received signal SIGINT, Interrupt. [Switching to process 15851] 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 (m3gdb) thread apply all bt Thread 11 (process 15851, thread 0x85cc4000): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x85cc40b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:91 #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #9 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #10 0x0000002b in ?? () #11 0x00000000 in ?? () Current language: auto; currently c Thread 10 (process 15851, thread 0x84895400): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x848954b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc28e2d in pthread_cond_timedwait (cond=0x2dc1d0e0, mutex=0x2dc1d0dc, abstime=0x8816efa8) at /usr/src/lib/libpthread/uthread/uthread_cond.c:431 #3 0x0dc225a7 in _thread_gc (arg=0x0) at /usr/src/lib/libpthread/uthread/uthread_gc.c:181 #4 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #5 0x0000002b in ?? () #6 0x00000000 in ?? () Thread 9 (process 15851, thread 0x84895c00): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x84895cb0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:91 #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #9 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #10 0x0000002b in ?? () #11 0x00000000 in ?? () Thread 8 (process 15851, thread 0x84895000): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x848950b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:90 #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 7 (process 15851, thread 0x88197400): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x881974b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:90 #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 6 (process 15851, thread 0x88197000): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x881970b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:90 #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 5 (process 15851, thread 0x8931f800): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x8931f8b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:90 #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 4 (process 15851, thread 0x8931f000): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x8931f0b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:90 #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 3 (process 15851, thread 0x856ab400): #0 _thread_kern_sched (scp=Cannot access memory at address 0x2e497 ) at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 Cannot access memory at address 0x2e493 Thread 2 (process 15851): #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 #1 0x0dc2b314 in _thread_kern_poll (wait_reqd=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 #2 0x0dc2ae53 in _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 #3 0x0dc2b19f in _thread_kern_sched_state (state=767676616, fname=0x2dc1d0c8 "", lineno=767676616) at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 #4 0x0dc25085 in nanosleep (time_to_sleep=0x7de7fc58, time_remaining=0x7de7fc60) at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 #5 0x1c023b69 in ThreadPThread__Nanosleep (req=0x7de7fc58, rem=0x7de7fc60) at ../src/thread/PTHREAD/ThreadPThreadC.c:317 #6 0x1c02053c in CommonSleep () at ../src/thread/PTHREAD/ThreadPThread.m3:740 #7 0x1c0223bb in StopWorld () at ../src/thread/PTHREAD/ThreadPThread.m3:1253 #8 0x1c021a29 in SuspendOthers () at ../src/thread/PTHREAD/ThreadPThread.m3:1029 #9 0x1c0086b3 in CollectSomeInStateZero () at ../src/runtime/common/RTCollector.m3:735 #10 0x1c008672 in CollectSome () at ../src/runtime/common/RTCollector.m3:709 #11 0x1c008125 in CollectEnough () at ../src/runtime/common/RTCollector.m3:643 #12 0x1c0057c9 in AllocTraced (dataSize=Invalid C/C++ type code 40 in symbol table. ) at ../src/runtime/common/RTAllocator.m3:363 #13 0x1c004a3e in GetTracedObj (def=Invalid C/C++ type code 29 in symbol table. ) at ../src/runtime/common/RTAllocator.m3:222 #14 0x1c0043d4 in AllocateTracedObj (defn=Invalid C/C++ type code 35 in symbol table. ) at ../src/runtime/common/RTAllocator.m3:120 #15 0x1c002f67 in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:110 #16 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #17 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #18 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #19 0x0000002b in ?? () #20 0x00000000 in ?? () Thread 1 (process 15851, thread 0x85cc4800): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x85cc48b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 #6 0x1c00387c in Main (mode=Invalid C/C++ type code 39 in symbol table. ) at ../Main.m3:153 #7 0x1c012688 in RunMainBody (m=Invalid C/C++ type code 29 in symbol table. ) at ../src/runtime/common/RTLinker.m3:399 #8 0x1c011a42 in AddUnitI (m=Invalid C/C++ type code 29 in symbol table. ) at ../src/runtime/common/RTLinker.m3:113 #9 0x1c011ad0 in AddUnit (b=Invalid C/C++ type code 31 in symbol table. ) at ../src/runtime/common/RTLinker.m3:122 #10 0x1c002826 in main (argc=1, argv=0xcfbc15ec, envp=0xcfbc15f4) at _m3main.mc:4 #11 0x1c00268c in ___start () #12 0x1c0025df in _start () #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 (m3gdb) I also tried increasing the default stack size; it didn't help. If you want me to test anything, I'll be happy to try it. Olaf -- Olaf Wagner -- elego Software Solutions GmbH Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95 http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194 From hosking at cs.purdue.edu Sun Oct 18 20:09:02 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 18 Oct 2009 14:09:02 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> Message-ID: <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> OK, now this is more interesting. We see that thread 2 is trying to get a GC cycle initiated by stopping the other threads. I am guessing that they are not responding to the thread signal being sent to them. Can you try with @M3debugthreads? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 18 Oct 2009, at 06:30, Olaf Wagner wrote: > Quoting Tony Hosking : > >>> Thread 1 (process 23708, thread 0x862c9400): >>> #0 _thread_kern_sched (scp=Cannot access memory at address 0xbb319 >>> ) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 >>> Cannot access memory at address 0xbb315 >>> #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 >>> (m3gdb) >> >> So what is thread 1 up to? > > I don't really understand what's going on there. But I made another > test which might or might not be helpful. I single-stepped in thread 1 > until it blocks. We get actually no output from other threads then > (though several have been started, but then thread 3 seems to be > corrupt. Here is the debugger session: > > > -- bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > GNU gdb plus Modula-3 6.4 > Copyright 2005 Free Software Foundation, Inc. > GDB is free software, covered by the GNU General Public License, and > you are > welcome to change it and/or distribute copies of it under certain > conditions. > Type "show copying" to see the conditions. > There is absolutely no warranty for GDB. Type "show warranty" for > details. > This GDB was configured as "i686-openbsd"... > (m3gdb) b Main > Main Main.m3 Main_M3_tcb594446_LINK > Main.i3 Main.mc > Main.ic Main_M3_t9b50f823_INIT > (m3gdb) b Main > Main Main.m3 Main_M3_tcb594446_LINK > Main.i3 Main.mc > Main.ic Main_M3_t9b50f823_INIT > (m3gdb) b Main > Breakpoint 1 at 0x1c0031c9: file ../Main.m3, line 127. > (m3gdb) r > Starting program: /home/hudson/workspace/cm3-lastok-build- > I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > Breakpoint 1 at 0x1c0031b5: file ../Main.m3, line 127. > [Switching to process 15851, thread 0x85cc4800] > > Breakpoint 1, Main (mode=0) at ../Main.m3:127 > 127 BEGIN > Current language: auto; currently Modula-3 > (m3gdb) n > 0x1c00283e in __i686.get_pc_thunk.bx () > (m3gdb) > Single stepping until exit from function __i686.get_pc_thunk.bx, > which has no line number information. > 0x1c003901 in Main (mode=1006721732) at ../Main.m3:157 > 157 RTIO.Flush (); > (m3gdb) > AddUnit (b={"Main_M3", Declared at: ../Main.m3:127}) > at ../src/runtime/common/RTLinker.m3:121 > 121 IF (m = NIL) THEN RETURN END; > (m3gdb) > 122 AddUnitI(m); > (m3gdb) > > Breakpoint 1, Main (mode=1) at ../Main.m3:127 > 127 BEGIN > (m3gdb) > 0x1c00283e in __i686.get_pc_thunk.bx () > (m3gdb) finish > Run till exit from #0 0x1c00283e in __i686.get_pc_thunk.bx () > 0x1c0031c3 in Main (mode=2115735632) at ../Main.m3:127 > 127 BEGIN > (m3gdb) n > 131 iolock := NEW (MUTEX); > (m3gdb) > 132 stop := NEW (Thread.Condition); > (m3gdb) l > 127 BEGIN > 128 > 129 (* Thread.MinDefaultStackSize (20000); *) > 130 > 131 iolock := NEW (MUTEX); > 132 stop := NEW (Thread.Condition); > 133 > 134 com := NEW (A, limit := 2000); > 135 com.done := NEW (Thread.Condition); > 136 com.first := 1; > (m3gdb) n > 134 com := NEW (A, limit := 2000); > (m3gdb) > 135 com.done := NEW (Thread.Condition); > (m3gdb) > 136 com.first := 1; > (m3gdb) > 137 com.next := 1; > (m3gdb) > 138 com.last := 1; > (m3gdb) > 139 t := NEW (T, id := 1, limit := 15); > (m3gdb) > 141 INC (com.count); > (m3gdb) > 142 Int (com.count, 5, ": "); > (m3gdb) > 144 th := Thread.Fork (t); > (m3gdb) > 145 t.thread := th; > (m3gdb) > 146 LOCK com DO > (m3gdb) > 147 Thread.Broadcast (com.done); > (m3gdb) > 148 END; > (m3gdb) > 151 LOCK com DO > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > > > ^C[New process 15851] > ^C > Program received signal SIGINT, Interrupt. > [Switching to process 15851] > 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) thread apply all bt > > Thread 11 (process 15851, thread 0x85cc4000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x85cc40b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:91 > #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #9 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #10 0x0000002b in ?? () > #11 0x00000000 in ?? () > Current language: auto; currently c > > Thread 10 (process 15851, thread 0x84895400): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x848954b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc28e2d in pthread_cond_timedwait (cond=0x2dc1d0e0, > mutex=0x2dc1d0dc, > abstime=0x8816efa8) at /usr/src/lib/libpthread/uthread/ > uthread_cond.c:431 > #3 0x0dc225a7 in _thread_gc (arg=0x0) > at /usr/src/lib/libpthread/uthread/uthread_gc.c:181 > #4 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #5 0x0000002b in ?? () > #6 0x00000000 in ?? () > > Thread 9 (process 15851, thread 0x84895c00): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x84895cb0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:91 > #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #9 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #10 0x0000002b in ?? () > #11 0x00000000 in ?? () > > Thread 8 (process 15851, thread 0x84895000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x848950b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:90 > #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 7 (process 15851, thread 0x88197400): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x881974b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:90 > #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 6 (process 15851, thread 0x88197000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x881970b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:90 > #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 5 (process 15851, thread 0x8931f800): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x8931f8b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:90 > #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 4 (process 15851, thread 0x8931f000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x8931f0b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:90 > #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 3 (process 15851, thread 0x856ab400): > #0 _thread_kern_sched (scp=Cannot access memory at address 0x2e497 > ) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 > Cannot access memory at address 0x2e493 > > Thread 2 (process 15851): > #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 > #1 0x0dc2b314 in _thread_kern_poll (wait_reqd=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > #2 0x0dc2ae53 in _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > #3 0x0dc2b19f in _thread_kern_sched_state (state=767676616, > fname=0x2dc1d0c8 "", lineno=767676616) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > #4 0x0dc25085 in nanosleep (time_to_sleep=0x7de7fc58, > time_remaining=0x7de7fc60) > at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > #5 0x1c023b69 in ThreadPThread__Nanosleep (req=0x7de7fc58, > rem=0x7de7fc60) > at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > #6 0x1c02053c in CommonSleep () at ../src/thread/PTHREAD/ > ThreadPThread.m3:740 > #7 0x1c0223bb in StopWorld () at ../src/thread/PTHREAD/ > ThreadPThread.m3:1253 > #8 0x1c021a29 in SuspendOthers () > at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > #9 0x1c0086b3 in CollectSomeInStateZero () > at ../src/runtime/common/RTCollector.m3:735 > #10 0x1c008672 in CollectSome () at ../src/runtime/common/ > RTCollector.m3:709 > #11 0x1c008125 in CollectEnough () at ../src/runtime/common/ > RTCollector.m3:643 > #12 0x1c0057c9 in AllocTraced (dataSize=Invalid C/C++ type code 40 > in symbol table. > ) > at ../src/runtime/common/RTAllocator.m3:363 > #13 0x1c004a3e in GetTracedObj (def=Invalid C/C++ type code 29 in > symbol table. > ) > at ../src/runtime/common/RTAllocator.m3:222 > #14 0x1c0043d4 in AllocateTracedObj (defn=Invalid C/C++ type code 35 > in symbol table. > ) > at ../src/runtime/common/RTAllocator.m3:120 > #15 0x1c002f67 in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:110 > #16 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #17 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #18 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #19 0x0000002b in ?? () > #20 0x00000000 in ?? () > > Thread 1 (process 15851, thread 0x85cc4800): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x85cc48b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c00387c in Main (mode=Invalid C/C++ type code 39 in symbol > table. > ) at ../Main.m3:153 > #7 0x1c012688 in RunMainBody (m=Invalid C/C++ type code 29 in > symbol table. > ) at ../src/runtime/common/RTLinker.m3:399 > #8 0x1c011a42 in AddUnitI (m=Invalid C/C++ type code 29 in symbol > table. > ) at ../src/runtime/common/RTLinker.m3:113 > #9 0x1c011ad0 in AddUnit (b=Invalid C/C++ type code 31 in symbol > table. > ) at ../src/runtime/common/RTLinker.m3:122 > #10 0x1c002826 in main (argc=1, argv=0xcfbc15ec, envp=0xcfbc15f4) > at _m3main.mc:4 > #11 0x1c00268c in ___start () > #12 0x1c0025df in _start () > #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) > > I also tried increasing the default stack size; it didn't help. > If you want me to test anything, I'll be happy to try it. > > Olaf > -- > Olaf Wagner -- elego Software Solutions GmbH > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, > Germany > phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 > 45 86 95 > http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: > Berlin > Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > DE163214194 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sun Oct 18 20:55:31 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 18 Oct 2009 14:55:31 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> Message-ID: <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> Do we have any idea when this problem started on OpenBSD? Has it always been there? On 18 Oct 2009, at 14:09, Tony Hosking wrote: > OK, now this is more interesting. We see that thread 2 is trying to > get a GC cycle initiated by stopping the other threads. I am > guessing that they are not responding to the thread signal being > sent to them. Can you try with @M3debugthreads? > > > > Antony Hosking | Associate Professor | Computer Science | Purdue > University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 | Mobile +1 765 427 5484 > > > > > On 18 Oct 2009, at 06:30, Olaf Wagner wrote: > >> Quoting Tony Hosking : >> >>>> Thread 1 (process 23708, thread 0x862c9400): >>>> #0 _thread_kern_sched (scp=Cannot access memory at address 0xbb319 >>>> ) >>>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 >>>> Cannot access memory at address 0xbb315 >>>> #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 >>>> (m3gdb) >>> >>> So what is thread 1 up to? >> >> I don't really understand what's going on there. But I made another >> test which might or might not be helpful. I single-stepped in >> thread 1 >> until it blocks. We get actually no output from other threads then >> (though several have been started, but then thread 3 seems to be >> corrupt. Here is the debugger session: >> >> >> -- bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm >> GNU gdb plus Modula-3 6.4 >> Copyright 2005 Free Software Foundation, Inc. >> GDB is free software, covered by the GNU General Public License, >> and you are >> welcome to change it and/or distribute copies of it under certain >> conditions. >> Type "show copying" to see the conditions. >> There is absolutely no warranty for GDB. Type "show warranty" for >> details. >> This GDB was configured as "i686-openbsd"... >> (m3gdb) b Main >> Main Main.m3 >> Main_M3_tcb594446_LINK >> Main.i3 Main.mc >> Main.ic Main_M3_t9b50f823_INIT >> (m3gdb) b Main >> Main Main.m3 >> Main_M3_tcb594446_LINK >> Main.i3 Main.mc >> Main.ic Main_M3_t9b50f823_INIT >> (m3gdb) b Main >> Breakpoint 1 at 0x1c0031c9: file ../Main.m3, line 127. >> (m3gdb) r >> Starting program: /home/hudson/workspace/cm3-lastok-build- >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm >> Breakpoint 1 at 0x1c0031b5: file ../Main.m3, line 127. >> [Switching to process 15851, thread 0x85cc4800] >> >> Breakpoint 1, Main (mode=0) at ../Main.m3:127 >> 127 BEGIN >> Current language: auto; currently Modula-3 >> (m3gdb) n >> 0x1c00283e in __i686.get_pc_thunk.bx () >> (m3gdb) >> Single stepping until exit from function __i686.get_pc_thunk.bx, >> which has no line number information. >> 0x1c003901 in Main (mode=1006721732) at ../Main.m3:157 >> 157 RTIO.Flush (); >> (m3gdb) >> AddUnit (b={"Main_M3", Declared at: ../Main.m3:127}) >> at ../src/runtime/common/RTLinker.m3:121 >> 121 IF (m = NIL) THEN RETURN END; >> (m3gdb) >> 122 AddUnitI(m); >> (m3gdb) >> >> Breakpoint 1, Main (mode=1) at ../Main.m3:127 >> 127 BEGIN >> (m3gdb) >> 0x1c00283e in __i686.get_pc_thunk.bx () >> (m3gdb) finish >> Run till exit from #0 0x1c00283e in __i686.get_pc_thunk.bx () >> 0x1c0031c3 in Main (mode=2115735632) at ../Main.m3:127 >> 127 BEGIN >> (m3gdb) n >> 131 iolock := NEW (MUTEX); >> (m3gdb) >> 132 stop := NEW (Thread.Condition); >> (m3gdb) l >> 127 BEGIN >> 128 >> 129 (* Thread.MinDefaultStackSize (20000); *) >> 130 >> 131 iolock := NEW (MUTEX); >> 132 stop := NEW (Thread.Condition); >> 133 >> 134 com := NEW (A, limit := 2000); >> 135 com.done := NEW (Thread.Condition); >> 136 com.first := 1; >> (m3gdb) n >> 134 com := NEW (A, limit := 2000); >> (m3gdb) >> 135 com.done := NEW (Thread.Condition); >> (m3gdb) >> 136 com.first := 1; >> (m3gdb) >> 137 com.next := 1; >> (m3gdb) >> 138 com.last := 1; >> (m3gdb) >> 139 t := NEW (T, id := 1, limit := 15); >> (m3gdb) >> 141 INC (com.count); >> (m3gdb) >> 142 Int (com.count, 5, ": "); >> (m3gdb) >> 144 th := Thread.Fork (t); >> (m3gdb) >> 145 t.thread := th; >> (m3gdb) >> 146 LOCK com DO >> (m3gdb) >> 147 Thread.Broadcast (com.done); >> (m3gdb) >> 148 END; >> (m3gdb) >> 151 LOCK com DO >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> >> >> ^C[New process 15851] >> ^C >> Program received signal SIGINT, Interrupt. >> [Switching to process 15851] >> 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 >> (m3gdb) thread apply all bt >> >> Thread 11 (process 15851, thread 0x85cc4000): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x85cc40b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 >> #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 >> #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:91 >> #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #9 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #10 0x0000002b in ?? () >> #11 0x00000000 in ?? () >> Current language: auto; currently c >> >> Thread 10 (process 15851, thread 0x84895400): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x848954b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc28e2d in pthread_cond_timedwait (cond=0x2dc1d0e0, >> mutex=0x2dc1d0dc, >> abstime=0x8816efa8) at /usr/src/lib/libpthread/uthread/ >> uthread_cond.c:431 >> #3 0x0dc225a7 in _thread_gc (arg=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_gc.c:181 >> #4 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #5 0x0000002b in ?? () >> #6 0x00000000 in ?? () >> >> Thread 9 (process 15851, thread 0x84895c00): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x84895cb0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 >> #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 >> #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:91 >> #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #9 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #10 0x0000002b in ?? () >> #11 0x00000000 in ?? () >> >> Thread 8 (process 15851, thread 0x84895000): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x848950b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:90 >> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #8 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #9 0x0000002b in ?? () >> #10 0x00000000 in ?? () >> >> Thread 7 (process 15851, thread 0x88197400): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x881974b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:90 >> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #8 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #9 0x0000002b in ?? () >> #10 0x00000000 in ?? () >> >> Thread 6 (process 15851, thread 0x88197000): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x881970b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:90 >> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #8 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #9 0x0000002b in ?? () >> #10 0x00000000 in ?? () >> >> Thread 5 (process 15851, thread 0x8931f800): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x8931f8b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:90 >> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #8 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #9 0x0000002b in ?? () >> #10 0x00000000 in ?? () >> >> Thread 4 (process 15851, thread 0x8931f000): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x8931f0b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:90 >> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #8 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #9 0x0000002b in ?? () >> #10 0x00000000 in ?? () >> >> Thread 3 (process 15851, thread 0x856ab400): >> #0 _thread_kern_sched (scp=Cannot access memory at address 0x2e497 >> ) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 >> Cannot access memory at address 0x2e493 >> >> Thread 2 (process 15851): >> #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 >> #1 0x0dc2b314 in _thread_kern_poll (wait_reqd=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 >> #2 0x0dc2ae53 in _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 >> #3 0x0dc2b19f in _thread_kern_sched_state (state=767676616, >> fname=0x2dc1d0c8 "", lineno=767676616) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 >> #4 0x0dc25085 in nanosleep (time_to_sleep=0x7de7fc58, >> time_remaining=0x7de7fc60) >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 >> #5 0x1c023b69 in ThreadPThread__Nanosleep (req=0x7de7fc58, >> rem=0x7de7fc60) >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 >> #6 0x1c02053c in CommonSleep () at ../src/thread/PTHREAD/ >> ThreadPThread.m3:740 >> #7 0x1c0223bb in StopWorld () at ../src/thread/PTHREAD/ >> ThreadPThread.m3:1253 >> #8 0x1c021a29 in SuspendOthers () >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 >> #9 0x1c0086b3 in CollectSomeInStateZero () >> at ../src/runtime/common/RTCollector.m3:735 >> #10 0x1c008672 in CollectSome () at ../src/runtime/common/ >> RTCollector.m3:709 >> #11 0x1c008125 in CollectEnough () at ../src/runtime/common/ >> RTCollector.m3:643 >> #12 0x1c0057c9 in AllocTraced (dataSize=Invalid C/C++ type code 40 >> in symbol table. >> ) >> at ../src/runtime/common/RTAllocator.m3:363 >> #13 0x1c004a3e in GetTracedObj (def=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/runtime/common/RTAllocator.m3:222 >> #14 0x1c0043d4 in AllocateTracedObj (defn=Invalid C/C++ type code >> 35 in symbol table. >> ) >> at ../src/runtime/common/RTAllocator.m3:120 >> #15 0x1c002f67 in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:110 >> #16 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #17 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #18 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #19 0x0000002b in ?? () >> #20 0x00000000 in ?? () >> >> Thread 1 (process 15851, thread 0x85cc4800): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x85cc48b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 >> #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 >> #6 0x1c00387c in Main (mode=Invalid C/C++ type code 39 in symbol >> table. >> ) at ../Main.m3:153 >> #7 0x1c012688 in RunMainBody (m=Invalid C/C++ type code 29 in >> symbol table. >> ) at ../src/runtime/common/RTLinker.m3:399 >> #8 0x1c011a42 in AddUnitI (m=Invalid C/C++ type code 29 in symbol >> table. >> ) at ../src/runtime/common/RTLinker.m3:113 >> #9 0x1c011ad0 in AddUnit (b=Invalid C/C++ type code 31 in symbol >> table. >> ) at ../src/runtime/common/RTLinker.m3:122 >> #10 0x1c002826 in main (argc=1, argv=0xcfbc15ec, envp=0xcfbc15f4) >> at _m3main.mc:4 >> #11 0x1c00268c in ___start () >> #12 0x1c0025df in _start () >> #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 >> (m3gdb) >> >> I also tried increasing the default stack size; it didn't help. >> If you want me to test anything, I'll be happy to try it. >> >> Olaf >> -- >> Olaf Wagner -- elego Software Solutions GmbH >> Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, >> Germany >> phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 >> 45 86 95 >> http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: >> Berlin >> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >> DE163214194 >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Mon Oct 19 00:59:48 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Mon, 19 Oct 2009 00:59:48 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> Message-ID: <20091019005948.wptblfr808sc8400@mail.elegosoft.com> Quoting Tony Hosking : > Do we have any idea when this problem started on OpenBSD? Has it > always been there? No. Look at http://hudson.modula3.com:8080/job/cm3-test-m3tests-I386_OPENBSD/ Build #22 on 27. September was the last good one. Build #23 on 29. September hangs at p007. > On 18 Oct 2009, at 14:09, Tony Hosking wrote: > >> OK, now this is more interesting. We see that thread 2 is trying >> to get a GC cycle initiated by stopping the other threads. I am >> guessing that they are not responding to the thread signal being >> sent to them. Can you try with @M3debugthreads? Jay's server is offline again. I'll try again tomorrow morning. I could have thought of @M3debugthreads myself :-/ Olaf -- Olaf Wagner -- elego Software Solutions GmbH Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95 http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194 From jay.krell at cornell.edu Mon Oct 19 00:27:12 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Sun, 18 Oct 2009 16:27:12 -0600 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> Message-ID: <25EDFCD1-6950-4911-9192-E6CCD84B702F@hotmail.com> We have no real history on OpenBSD, so assume always was this way. - Jay (phone) On Oct 18, 2009, at 12:55 PM, Tony Hosking wrote: > Do we have any idea when this problem started on OpenBSD? Has it > always been there? > > On 18 Oct 2009, at 14:09, Tony Hosking wrote: > >> OK, now this is more interesting. We see that thread 2 is trying >> to get a GC cycle initiated by stopping the other threads. I am >> guessing that they are not responding to the thread signal being >> sent to them. Can you try with @M3debugthreads? >> >> >> >> Antony Hosking | Associate Professor | Computer Science | Purdue >> University >> 305 N. University Street | West Lafayette | IN 47907 | USA >> Office +1 765 494 6001 | Mobile +1 765 427 5484 >> >> >> >> >> On 18 Oct 2009, at 06:30, Olaf Wagner wrote: >> >>> Quoting Tony Hosking : >>> >>>>> Thread 1 (process 23708, thread 0x862c9400): >>>>> #0 _thread_kern_sched (scp=Cannot access memory at address >>>>> 0xbb319 >>>>> ) >>>>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 >>>>> Cannot access memory at address 0xbb315 >>>>> #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 >>>>> (m3gdb) >>>> >>>> So what is thread 1 up to? >>> >>> I don't really understand what's going on there. But I made another >>> test which might or might not be helpful. I single-stepped in >>> thread 1 >>> until it blocks. We get actually no output from other threads then >>> (though several have been started, but then thread 3 seems to be >>> corrupt. Here is the debugger session: >>> >>> >>> -- bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm >>> GNU gdb plus Modula-3 6.4 >>> Copyright 2005 Free Software Foundation, Inc. >>> GDB is free software, covered by the GNU General Public License, >>> and you are >>> welcome to change it and/or distribute copies of it under certain >>> conditions. >>> Type "show copying" to see the conditions. >>> There is absolutely no warranty for GDB. Type "show warranty" for >>> details. >>> This GDB was configured as "i686-openbsd"... >>> (m3gdb) b Main >>> Main Main.m3 >>> Main_M3_tcb594446_LINK >>> Main.i3 Main.mc >>> Main.ic Main_M3_t9b50f823_INIT >>> (m3gdb) b Main >>> Main Main.m3 >>> Main_M3_tcb594446_LINK >>> Main.i3 Main.mc >>> Main.ic Main_M3_t9b50f823_INIT >>> (m3gdb) b Main >>> Breakpoint 1 at 0x1c0031c9: file ../Main.m3, line 127. >>> (m3gdb) r >>> Starting program: /home/hudson/workspace/cm3-lastok-build- >>> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm >>> Breakpoint 1 at 0x1c0031b5: file ../Main.m3, line 127. >>> [Switching to process 15851, thread 0x85cc4800] >>> >>> Breakpoint 1, Main (mode=0) at ../Main.m3:127 >>> 127 BEGIN >>> Current language: auto; currently Modula-3 >>> (m3gdb) n >>> 0x1c00283e in __i686.get_pc_thunk.bx () >>> (m3gdb) >>> Single stepping until exit from function __i686.get_pc_thunk.bx, >>> which has no line number information. >>> 0x1c003901 in Main (mode=1006721732) at ../Main.m3:157 >>> 157 RTIO.Flush (); >>> (m3gdb) >>> AddUnit (b={"Main_M3", Declared at: ../Main.m3:127}) >>> at ../src/runtime/common/RTLinker.m3:121 >>> 121 IF (m = NIL) THEN RETURN END; >>> (m3gdb) >>> 122 AddUnitI(m); >>> (m3gdb) >>> >>> Breakpoint 1, Main (mode=1) at ../Main.m3:127 >>> 127 BEGIN >>> (m3gdb) >>> 0x1c00283e in __i686.get_pc_thunk.bx () >>> (m3gdb) finish >>> Run till exit from #0 0x1c00283e in __i686.get_pc_thunk.bx () >>> 0x1c0031c3 in Main (mode=2115735632) at ../Main.m3:127 >>> 127 BEGIN >>> (m3gdb) n >>> 131 iolock := NEW (MUTEX); >>> (m3gdb) >>> 132 stop := NEW (Thread.Condition); >>> (m3gdb) l >>> 127 BEGIN >>> 128 >>> 129 (* Thread.MinDefaultStackSize (20000); *) >>> 130 >>> 131 iolock := NEW (MUTEX); >>> 132 stop := NEW (Thread.Condition); >>> 133 >>> 134 com := NEW (A, limit := 2000); >>> 135 com.done := NEW (Thread.Condition); >>> 136 com.first := 1; >>> (m3gdb) n >>> 134 com := NEW (A, limit := 2000); >>> (m3gdb) >>> 135 com.done := NEW (Thread.Condition); >>> (m3gdb) >>> 136 com.first := 1; >>> (m3gdb) >>> 137 com.next := 1; >>> (m3gdb) >>> 138 com.last := 1; >>> (m3gdb) >>> 139 t := NEW (T, id := 1, limit := 15); >>> (m3gdb) >>> 141 INC (com.count); >>> (m3gdb) >>> 142 Int (com.count, 5, ": "); >>> (m3gdb) >>> 144 th := Thread.Fork (t); >>> (m3gdb) >>> 145 t.thread := th; >>> (m3gdb) >>> 146 LOCK com DO >>> (m3gdb) >>> 147 Thread.Broadcast (com.done); >>> (m3gdb) >>> 148 END; >>> (m3gdb) >>> 151 LOCK com DO >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> >>> >>> ^C[New process 15851] >>> ^C >>> Program received signal SIGINT, Interrupt. >>> [Switching to process 15851] >>> 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 >>> (m3gdb) thread apply all bt >>> >>> Thread 11 (process 15851, thread 0x85cc4000): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x85cc40b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 >>> #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 >>> #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:91 >>> #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #9 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #10 0x0000002b in ?? () >>> #11 0x00000000 in ?? () >>> Current language: auto; currently c >>> >>> Thread 10 (process 15851, thread 0x84895400): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x848954b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc28e2d in pthread_cond_timedwait (cond=0x2dc1d0e0, >>> mutex=0x2dc1d0dc, >>> abstime=0x8816efa8) at /usr/src/lib/libpthread/uthread/ >>> uthread_cond.c:431 >>> #3 0x0dc225a7 in _thread_gc (arg=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_gc.c:181 >>> #4 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #5 0x0000002b in ?? () >>> #6 0x00000000 in ?? () >>> >>> Thread 9 (process 15851, thread 0x84895c00): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x84895cb0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 >>> #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 >>> #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:91 >>> #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #9 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #10 0x0000002b in ?? () >>> #11 0x00000000 in ?? () >>> >>> Thread 8 (process 15851, thread 0x84895000): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x848950b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >>> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:90 >>> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #8 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #9 0x0000002b in ?? () >>> #10 0x00000000 in ?? () >>> >>> Thread 7 (process 15851, thread 0x88197400): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x881974b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >>> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:90 >>> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #8 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #9 0x0000002b in ?? () >>> #10 0x00000000 in ?? () >>> >>> Thread 6 (process 15851, thread 0x88197000): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x881970b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >>> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:90 >>> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #8 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #9 0x0000002b in ?? () >>> #10 0x00000000 in ?? () >>> >>> Thread 5 (process 15851, thread 0x8931f800): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x8931f8b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >>> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:90 >>> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #8 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #9 0x0000002b in ?? () >>> #10 0x00000000 in ?? () >>> >>> Thread 4 (process 15851, thread 0x8931f000): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x8931f0b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >>> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:90 >>> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #8 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #9 0x0000002b in ?? () >>> #10 0x00000000 in ?? () >>> >>> Thread 3 (process 15851, thread 0x856ab400): >>> #0 _thread_kern_sched (scp=Cannot access memory at address 0x2e497 >>> ) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 >>> Cannot access memory at address 0x2e493 >>> >>> Thread 2 (process 15851): >>> #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 >>> #1 0x0dc2b314 in _thread_kern_poll (wait_reqd=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 >>> #2 0x0dc2ae53 in _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 >>> #3 0x0dc2b19f in _thread_kern_sched_state (state=767676616, >>> fname=0x2dc1d0c8 "", lineno=767676616) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 >>> #4 0x0dc25085 in nanosleep (time_to_sleep=0x7de7fc58, >>> time_remaining=0x7de7fc60) >>> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 >>> #5 0x1c023b69 in ThreadPThread__Nanosleep (req=0x7de7fc58, >>> rem=0x7de7fc60) >>> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 >>> #6 0x1c02053c in CommonSleep () at ../src/thread/PTHREAD/ >>> ThreadPThread.m3:740 >>> #7 0x1c0223bb in StopWorld () at ../src/thread/PTHREAD/ >>> ThreadPThread.m3:1253 >>> #8 0x1c021a29 in SuspendOthers () >>> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 >>> #9 0x1c0086b3 in CollectSomeInStateZero () >>> at ../src/runtime/common/RTCollector.m3:735 >>> #10 0x1c008672 in CollectSome () at ../src/runtime/common/ >>> RTCollector.m3:709 >>> #11 0x1c008125 in CollectEnough () at ../src/runtime/common/ >>> RTCollector.m3:643 >>> #12 0x1c0057c9 in AllocTraced (dataSize=Invalid C/C++ type code 40 >>> in symbol table. >>> ) >>> at ../src/runtime/common/RTAllocator.m3:363 >>> #13 0x1c004a3e in GetTracedObj (def=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/runtime/common/RTAllocator.m3:222 >>> #14 0x1c0043d4 in AllocateTracedObj (defn=Invalid C/C++ type code >>> 35 in symbol table. >>> ) >>> at ../src/runtime/common/RTAllocator.m3:120 >>> #15 0x1c002f67 in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:110 >>> #16 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #17 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #18 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #19 0x0000002b in ?? () >>> #20 0x00000000 in ?? () >>> >>> Thread 1 (process 15851, thread 0x85cc4800): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x85cc48b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 >>> #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 >>> #6 0x1c00387c in Main (mode=Invalid C/C++ type code 39 in symbol >>> table. >>> ) at ../Main.m3:153 >>> #7 0x1c012688 in RunMainBody (m=Invalid C/C++ type code 29 in >>> symbol table. >>> ) at ../src/runtime/common/RTLinker.m3:399 >>> #8 0x1c011a42 in AddUnitI (m=Invalid C/C++ type code 29 in symbol >>> table. >>> ) at ../src/runtime/common/RTLinker.m3:113 >>> #9 0x1c011ad0 in AddUnit (b=Invalid C/C++ type code 31 in symbol >>> table. >>> ) at ../src/runtime/common/RTLinker.m3:122 >>> #10 0x1c002826 in main (argc=1, argv=0xcfbc15ec, envp=0xcfbc15f4) >>> at _m3main.mc:4 >>> #11 0x1c00268c in ___start () >>> #12 0x1c0025df in _start () >>> #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 >>> (m3gdb) >>> >>> I also tried increasing the default stack size; it didn't help. >>> If you want me to test anything, I'll be happy to try it. >>> >>> Olaf >>> -- >>> Olaf Wagner -- elego Software Solutions GmbH >>> Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, >>> Germany >>> phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95 >>> http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz >>> : Berlin >>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>> DE163214194 >>> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Oct 19 03:57:57 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 18 Oct 2009 21:57:57 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091019005948.wptblfr808sc8400@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> <20091019005948.wptblfr808sc8400@mail.elegosoft.com> Message-ID: <732FCA85-29B9-4A05-8C21-358E4D78AB4E@cs.purdue.edu> Aha. That is helpful. I have a feeling it might be related to the changes I made to Thread.Fork. But wait, this is code on the RC path right? Which has a different history? On 18 Oct 2009, at 18:59, Olaf Wagner wrote: > Quoting Tony Hosking : > >> Do we have any idea when this problem started on OpenBSD? Has it >> always been there? > > No. Look at http://hudson.modula3.com:8080/job/cm3-test-m3tests-I386_OPENBSD/ > Build #22 on 27. September was the last good one. > Build #23 on 29. September hangs at p007. > >> On 18 Oct 2009, at 14:09, Tony Hosking wrote: >> >>> OK, now this is more interesting. We see that thread 2 is trying >>> to get a GC cycle initiated by stopping the other threads. I >>> am guessing that they are not responding to the thread signal >>> being sent to them. Can you try with @M3debugthreads? > > Jay's server is offline again. I'll try again tomorrow morning. > I could have thought of @M3debugthreads myself :-/ > > Olaf > -- > Olaf Wagner -- elego Software Solutions GmbH > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, > Germany > phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 > 45 86 95 > http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: > Berlin > Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > DE163214194 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Oct 19 04:04:52 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 18 Oct 2009 22:04:52 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <732FCA85-29B9-4A05-8C21-358E4D78AB4E@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> <20091019005948.wptblfr808sc8400@mail.elegosoft.com> <732FCA85-29B9-4A05-8C21-358E4D78AB4E@cs.purdue.edu> Message-ID: <5485957F-122E-4A43-8C01-CFF76AD0FEFB@cs.purdue.edu> I don't see anything that changed in the RC threads implementation between 9/27 and 9/29. Did something change in the wrappers? Or in the config file for OpenBSD? On 18 Oct 2009, at 21:57, Tony Hosking wrote: > Aha. That is helpful. I have a feeling it might be related to the > changes I made to Thread.Fork. But wait, this is code on the RC > path right? Which has a different history? > > On 18 Oct 2009, at 18:59, Olaf Wagner wrote: > >> Quoting Tony Hosking : >> >>> Do we have any idea when this problem started on OpenBSD? Has it >>> always been there? >> >> No. Look at http://hudson.modula3.com:8080/job/cm3-test-m3tests-I386_OPENBSD/ >> Build #22 on 27. September was the last good one. >> Build #23 on 29. September hangs at p007. >> >>> On 18 Oct 2009, at 14:09, Tony Hosking wrote: >>> >>>> OK, now this is more interesting. We see that thread 2 is >>>> trying to get a GC cycle initiated by stopping the other >>>> threads. I am guessing that they are not responding to the >>>> thread signal being sent to them. Can you try with >>>> @M3debugthreads? >> >> Jay's server is offline again. I'll try again tomorrow morning. >> I could have thought of @M3debugthreads myself :-/ >> >> Olaf >> -- >> Olaf Wagner -- elego Software Solutions GmbH >> Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, >> Germany >> phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 >> 45 86 95 >> http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: >> Berlin >> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >> DE163214194 >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hendrik at topoi.pooq.com Mon Oct 19 04:15:13 2009 From: hendrik at topoi.pooq.com (hendrik at topoi.pooq.com) Date: Sun, 18 Oct 2009 22:15:13 -0400 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 Message-ID: <20091019021513.GA27389@topoi.pooq.com> m3gdb doesn's seem to install. Is this a known problem? Has it been fixed in CVS and therefore should be OK in RC4? Or is it likely I've done something horribly wrong before now? (I have been doing a number of installations and ununstallations on this machine to provide you with error reports, so it's conceivable that there's some crud around somewhere.) hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls hendrik at notlookedfor:~/cm3/RC3/m3gdb$ script m3gdblog Script started, file is m3gdblog hendrik at notlookedfor:~/cm3/RC3/m3gdb$ tar -zxf /home/hendrik/Desktop/cm3-bin-ws-m3gdb-LINUXLIBC6-5.8.3-RC3.tgz hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls collection-m3gdb.html install.sh m3gdblog m3-sys setup.cmd setup.txt hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ./install.sh installing package m3-sys/m3gdb --- shipping from LINUXLIBC6 --- hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls /usr/local/cm3/bin cm3 cm3.cfg cm3cg cm3ide config formsedit m3bundle mklib hendrik at notlookedfor:~/cm3/RC3/m3gdb$ exit Script done, file is m3gdblog hendrik at notlookedfor:~/cm3/RC3/m3gdb$ -- hendrik From wagner at elegosoft.com Mon Oct 19 08:16:56 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Mon, 19 Oct 2009 08:16:56 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <5485957F-122E-4A43-8C01-CFF76AD0FEFB@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> <20091019005948.wptblfr808sc8400@mail.elegosoft.com> <732FCA85-29B9-4A05-8C21-358E4D78AB4E@cs.purdue.edu> <5485957F-122E-4A43-8C01-CFF76AD0FEFB@cs.purdue.edu> Message-ID: <20091019081656.izo994bns0gk48s0@mail.elegosoft.com> Quoting Tony Hosking : > I don't see anything that changed in the RC threads implementation > between 9/27 and 9/29. Did something change in the wrappers? Or in > the config file for OpenBSD? I just noticed that p007 seems to have been commented out in the test runs before 9/29 :-/ So Jay is probably right, and we have no reliable time frame for the bug. cd ../src/p0/p005 && cm3 -silent -DM3TESTS >I386_OPENBSD/stdout.build.raw 2>I386_OPENBSD/stderr.build.raw --- p006 --- a bit more complicated cd ../src/p0/p006 && cm3 -silent -DM3TESTS >I386_OPENBSD/stdout.build.raw 2>I386_OPENBSD/stderr.build.raw --- p008 --- thread alerts The test itself changed at that time, though. I'll attach the diffs nonetheless. > On 18 Oct 2009, at 21:57, Tony Hosking wrote: > >> Aha. That is helpful. I have a feeling it might be related to the >> changes I made to Thread.Fork. But wait, this is code on the RC >> path right? Which has a different history? Yes, it's in the release branch. I used this command, in case anybody wants to check, too. I slightly extended the time frame to be on the safe side: cvs diff -u -r release_branch_cm3_5_8:2009-09-26 \ -r release_branch_cm3_5_8:2009-09-30 \ m3-libs/*/src m3-sys/*/src > ~/tmp/p007-diffs Jay's system is still offline. I'll try again this evening. Olaf >> On 18 Oct 2009, at 18:59, Olaf Wagner wrote: >> >>> Quoting Tony Hosking : >>> >>>> Do we have any idea when this problem started on OpenBSD? Has it >>>> always been there? >>> >>> No. Look at >>> http://hudson.modula3.com:8080/job/cm3-test-m3tests-I386_OPENBSD/ >>> Build #22 on 27. September was the last good one. >>> Build #23 on 29. September hangs at p007. >>> >>>> On 18 Oct 2009, at 14:09, Tony Hosking wrote: >>>> >>>>> OK, now this is more interesting. We see that thread 2 is >>>>> trying to get a GC cycle initiated by stopping the other >>>>> threads. I am guessing that they are not responding to the >>>>> thread signal being sent to them. Can you try with >>>>> @M3debugthreads? >>> >>> Jay's server is offline again. I'll try again tomorrow morning. >>> I could have thought of @M3debugthreads myself :-/ >>> >>> Olaf -- Olaf Wagner -- elego Software Solutions GmbH Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95 http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194 -- Olaf Wagner -- elego Software Solutions GmbH Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95 http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194 -------------- next part -------------- ? m3-libs/bitvector/src/BitVector.i3.html ? m3-libs/libm3/src/pickle/ver2/Pickle2.m3+ ? m3-libs/m3core/src/solgnu-thread-diff ? m3-libs/m3core/src/runtime/common/RTLinker.i3+ ? m3-libs/m3core/src/runtime/common/RTLinker.m3+ ? m3-libs/sysutils/src/FSUtils.m3-new ? m3-sys/cm3/src/Makefile.m3.ps ? m3-sys/cm3/src/config/pdiffs ? m3-sys/cminstall/src/config/FreeBSD4x ? m3-sys/cminstall/src/config/pdiffs ? m3-sys/m3middle/src/M3ID.m3-2008-01-29 ? m3-sys/m3middle/src/TWord.m3-xxx ? m3-sys/m3scanner/src/M3Token.i3 ? m3-sys/m3scanner/src/M3Token.m3 ? m3-sys/m3tests-x/src/p0/p100 ? m3-sys/m3tests-x/src/p0/p007/Main.m3-hosking ? m3-sys/m3tests-x/src/p1/p116b ? m3-sys/m3tests-x/src/r0/r003/FreeBSD4 ? m3-sys/m3tests/src/Test.compile ? m3-sys/m3tests/src/p0/p007/Main.m3-hosking ? m3-sys/m3tests/src/p2/FreeBSD4 ? m3-sys/m3tests/src/p2/p223/FreeBSD4 Index: m3-libs/m3core/src/thread/WIN32/ThreadWin32.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/WIN32/ThreadWin32.m3,v retrieving revision 1.41.2.1 retrieving revision 1.41.2.2 diff -u -u -r1.41.2.1 -r1.41.2.2 --- m3-libs/m3core/src/thread/WIN32/ThreadWin32.m3 13 Sep 2009 01:26:41 -0000 1.41.2.1 +++ m3-libs/m3core/src/thread/WIN32/ThreadWin32.m3 29 Sep 2009 10:45:40 -0000 1.41.2.2 @@ -460,7 +460,7 @@ (*------------------------------------------------------------ Fork, Join ---*) CONST - MaxIdle = 10; + MaxIdle = 0; VAR (* LL=activeMu *) allThreads : Activation := NIL; (* global list of active threads *) @@ -588,7 +588,7 @@ (* Since we're no longer slotted, we cannot touch traced refs. *) (* remove ourself from the list of active threads *) - LeaveCriticalSection_activeMu(); + EnterCriticalSection_activeMu(); IF allThreads = me THEN allThreads := me.next; END; me.next.prev := me.prev; me.prev.next := me.next; @@ -636,7 +636,7 @@ act := t.act; act.handle := CreateThread(NIL, stack_size, ThreadBase, act, CREATE_SUSPENDED, ADR(id)); - LeaveCriticalSection_activeMu(); + EnterCriticalSection_activeMu(); act.next := allThreads; act.prev := allThreads.prev; allThreads.prev.next := act; @@ -801,7 +801,7 @@ VAR me := GetActivation(); BEGIN <*ASSERT me # NIL*> - LeaveCriticalSection_activeMu(); + EnterCriticalSection_activeMu(); INC (suspend_cnt); IF (suspend_cnt = 1) THEN StopWorld(me) END; Index: m3-sys/cm3/src/Main.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/cm3/src/Main.m3,v retrieving revision 1.19.2.1 retrieving revision 1.19.2.2 diff -u -u -r1.19.2.1 -r1.19.2.2 --- m3-sys/cm3/src/Main.m3 4 Sep 2009 10:26:39 -0000 1.19.2.1 +++ m3-sys/cm3/src/Main.m3 27 Sep 2009 01:15:22 -0000 1.19.2.2 @@ -9,7 +9,7 @@ IMPORT Builder, Dirs, M3Build, M3Options, Makefile, Msg, Utils, WebFile; IMPORT MxConfig(*, M3Config, CMKey, CMCurrent *); (* IMPORT Fmt, Time; only needed for key and expiration check *) -IMPORT Version; +(* IMPORT Version; *) VAR config : TEXT := NIL; Index: m3-sys/m3tests-x/src/p0/p007/Main.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3tests/src/p0/p007/Main.m3,v retrieving revision 1.3 retrieving revision 1.3.2.1 diff -u -u -r1.3 -r1.3.2.1 --- m3-sys/m3tests-x/src/p0/p007/Main.m3 13 Mar 2008 15:55:58 -0000 1.3 +++ m3-sys/m3tests-x/src/p0/p007/Main.m3 27 Sep 2009 12:35:09 -0000 1.3.2.1 @@ -6,154 +6,74 @@ UNSAFE MODULE Main; -IMPORT Thread, (* ThreadF, *) RTIO; +IMPORT Thread; +FROM RTIO IMPORT PutInt, PutText, Flush; TYPE T = Thread.Closure BRANDED "p007 T" OBJECT - id: INTEGER; - limit: INTEGER := 15; - thread: Thread.T; - OVERRIDES - apply := Task; END; - - A = MUTEX BRANDED "p007 common" OBJECT - first, last, next, limit: INTEGER; - done: Thread.Condition; - count: INTEGER := 0; - METHODS - Wait (c: Thread.Condition) := Thread.Wait; END; + id: INTEGER; + limit: INTEGER := 15; + OVERRIDES + apply := Task; + END; VAR - com: A; - stop: Thread.Condition; - iolock: MUTEX; + first, last, next: INTEGER := 1; + limit := 2000; + c := NEW(Thread.Condition); + m := NEW(Thread.Mutex); -PROCEDURE Txt (t: TEXT) = - BEGIN - (* ThreadF.SuspendOthers (); *) - LOCK iolock DO - RTIO.PutText (t); - END; - (* ThreadF.ResumeOthers (); *) - END Txt; -PROCEDURE Int (i: INTEGER; width: INTEGER; pad: TEXT) = +CONST Pad = 5; + +VAR count := 0; +PROCEDURE Inc() = BEGIN - LOCK iolock DO - RTIO.PutInt (i, width); - RTIO.PutText (pad); - END; - END Int; + INC(count); + PutText("\n"); + PutInt(count, Pad); + PutText(": "); + Flush(); + END Inc; -(******* PROCEDURE Task (self: T) : REFANY RAISES {} = -VAR next: T; BEGIN LOOP - TRY - LOCK com DO - WHILE (com.next # self.id) DO - com.Wait (com.done); END; - - Int (self.id, 0, "#\n"); - DEC (self.limit); - - IF self.limit <= 0 THEN - IF (self.id = com.limit) THEN - com.next := 0; - ELSE - com.first := self.id + 1; - com.next := com.first; END; - RETURN NIL; - - ELSIF (self.id = com.last) THEN - INC (com.count); - (*Txt ("\n");*) Int (com.count, 5, "####\n"); - IF (self.id # com.limit) THEN - com.last := self.id + 1; - next := NEW (T, id := com.last, limit := 15); - next.thread := Thread.Fork (next); - END; - com.next := com.first; - ELSE - com.next := self.id + 1; - END; END; - FINALLY - Thread.Broadcast (com.done); - END; END; -END Task; -*****) - -PROCEDURE Task (self: T) : REFANY RAISES {} = -VAR next: T; done := FALSE; -BEGIN - WHILE NOT done DO - LOCK com DO - WHILE (com.next # self.id) DO com.Wait (com.done); END; - - Int (self.id, 0, " "); + LOCK m DO + WHILE next # self.id DO Thread.Wait (m, c); END; + PutInt(self.id, Pad); DEC (self.limit); - IF self.limit <= 0 THEN - IF (self.id = com.limit) THEN - com.next := 0; + IF self.id = limit THEN + next := 0; ELSE - com.first := self.id + 1; - com.next := com.first; + first := self.id + 1; + next := first; END; - done := TRUE; - - ELSIF (self.id = com.last) THEN - INC (com.count); - Txt ("\n"); Int (com.count, 5, ": "); - IF (self.id # com.limit) THEN - com.last := self.id + 1; - next := NEW (T, id := com.last, limit := 15); - next.thread := Thread.Fork (next); + Thread.Broadcast(c); + RETURN NIL; + ELSIF self.id = last THEN + Inc(); + IF self.id # limit THEN + last := self.id + 1; + EVAL Thread.Fork(NEW(T, id := last, limit := 15)); END; - com.next := com.first; + next := first; + Thread.Broadcast(c); ELSE - com.next := self.id + 1; + next := self.id + 1; + Thread.Broadcast(c); END; - Thread.Broadcast (com.done); - END; (*LOCK*) + END; END; - RETURN NIL; END Task; -VAR - t: T; - th: Thread.T; - BEGIN - -(* Thread.MinDefaultStackSize (20000); *) - -iolock := NEW (MUTEX); -stop := NEW (Thread.Condition); - -com := NEW (A, limit := 2000); -com.done := NEW (Thread.Condition); -com.first := 1; -com.next := 1; -com.last := 1; -t := NEW (T, id := 1, limit := 15); - -INC (com.count); -Int (com.count, 5, ": "); - -th := Thread.Fork (t); -t.thread := th; -LOCK com DO - Thread.Broadcast (com.done); -END; - -LOOP - LOCK com DO - WHILE (com.next # 0) DO - com.Wait (com.done); END; - EXIT; END; END; - -Txt("\nDone.\n"); -RTIO.Flush (); - + LOCK m DO + Inc(); + EVAL Thread.Fork(NEW(T, id := 1, limit := 15)); + Thread.Broadcast(c); + WHILE next # 0 DO Thread.Wait(m, c) END; + PutText("\nDone.\n"); + Flush(); + END; END Main. Index: m3-sys/m3tests-x/src/p0/p007/stderr.pgm =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3tests/src/p0/p007/stderr.pgm,v retrieving revision 1.1 retrieving revision 1.1.8.1 diff -u -u -r1.1 -r1.1.8.1 --- m3-sys/m3tests-x/src/p0/p007/stderr.pgm 8 Mar 2003 22:36:16 -0000 1.1 +++ m3-sys/m3tests-x/src/p0/p007/stderr.pgm 27 Sep 2009 12:39:19 -0000 1.1.8.1 @@ -1,2015 +1,2016 @@ - 1: 1 - 2: 1 2 - 3: 1 2 3 - 4: 1 2 3 4 - 5: 1 2 3 4 5 - 6: 1 2 3 4 5 6 - 7: 1 2 3 4 5 6 7 - 8: 1 2 3 4 5 6 7 8 - 9: 1 2 3 4 5 6 7 8 9 - 10: 1 2 3 4 5 6 7 8 9 10 - 11: 1 2 3 4 5 6 7 8 9 10 11 - 12: 1 2 3 4 5 6 7 8 9 10 11 12 - 13: 1 2 3 4 5 6 7 8 9 10 11 12 13 - 14: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 - 15: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 - 16: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 - 17: 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 - 18: 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 - 19: 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 - 20: 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 - 21: 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 - 22: 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 - 23: 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 - 24: 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 - 25: 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 - 26: 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 - 27: 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 - 28: 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 - 29: 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 - 30: 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 - 31: 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - 32: 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 - 33: 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 - 34: 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 - 35: 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 - 36: 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 - 37: 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 - 38: 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 - 39: 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 - 40: 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 - 41: 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 - 42: 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 - 43: 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 - 44: 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 - 45: 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 - 46: 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 - 47: 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 - 48: 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 - 49: 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 - 50: 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 - 51: 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 - 52: 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 - 53: 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 - 54: 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 - 55: 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 - 56: 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 - 57: 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 - 58: 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 - 59: 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 - 60: 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 - 61: 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 - 62: 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 - 63: 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 - 64: 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 - 65: 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 - 66: 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 - 67: 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 - 68: 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 - 69: 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 - 70: 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 - 71: 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 - 72: 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 - 73: 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 - 74: 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 - 75: 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 - 76: 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 - 77: 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 - 78: 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 - 79: 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 - 80: 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 - 81: 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 - 82: 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 - 83: 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 - 84: 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 - 85: 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 - 86: 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 - 87: 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 - 88: 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 - 89: 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 - 90: 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 - 91: 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 - 92: 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 - 93: 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 - 94: 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 - 95: 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 - 96: 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 - 97: 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 - 98: 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 - 99: 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 - 100: 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 - 101: 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 - 102: 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 - 103: 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 - 104: 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 - 105: 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 - 106: 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 - 107: 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 - 108: 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 - 109: 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 - 110: 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 - 111: 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 - 112: 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 - 113: 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 - 114: 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 - 115: 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 - 116: 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 - 117: 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 - 118: 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 - 119: 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 - 120: 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 - 121: 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 - 122: 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 - 123: 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 - 124: 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 - 125: 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 - 126: 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 - 127: 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 - 128: 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 - 129: 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 - 130: 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 - 131: 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 - 132: 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 - 133: 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 - 134: 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 - 135: 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 - 136: 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 - 137: 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 - 138: 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 - 139: 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 - 140: 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 - 141: 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 - 142: 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 - 143: 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 - 144: 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 - 145: 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 - 146: 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 - 147: 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 - 148: 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 - 149: 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 - 150: 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 - 151: 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 - 152: 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 - 153: 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 - 154: 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 - 155: 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 - 156: 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 - 157: 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 - 158: 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 - 159: 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 - 160: 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 - 161: 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 - 162: 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 - 163: 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 - 164: 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 - 165: 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 - 166: 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 - 167: 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 - 168: 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 - 169: 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 - 170: 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 - 171: 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 - 172: 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 - 173: 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 - 174: 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 - 175: 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 - 176: 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 - 177: 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 - 178: 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 - 179: 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 - 180: 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 - 181: 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 - 182: 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 - 183: 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 - 184: 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 - 185: 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 - 186: 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 - 187: 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 - 188: 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 - 189: 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 - 190: 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 - 191: 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 - 192: 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 - 193: 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 - 194: 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 - 195: 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 - 196: 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 - 197: 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 - 198: 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 - 199: 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 - 200: 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 - 201: 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 - 202: 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 - 203: 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 - 204: 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 - 205: 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 - 206: 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 - 207: 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 - 208: 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 - 209: 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 - 210: 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 - 211: 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 - 212: 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 - 213: 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 - 214: 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 - 215: 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 - 216: 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 - 217: 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 - 218: 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 - 219: 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 - 220: 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 - 221: 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 - 222: 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 - 223: 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 - 224: 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 - 225: 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 - 226: 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 - 227: 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 - 228: 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 - 229: 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 - 230: 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 - 231: 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 - 232: 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 - 233: 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 - 234: 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 - 235: 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 - 236: 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 - 237: 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 - 238: 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 - 239: 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 - 240: 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 - 241: 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 - 242: 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 - 243: 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 - 244: 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 - 245: 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 - 246: 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 - 247: 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 - 248: 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 - 249: 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 - 250: 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 - 251: 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 - 252: 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 - 253: 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 - 254: 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 - 255: 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 - 256: 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 - 257: 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 - 258: 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 - 259: 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 - 260: 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 - 261: 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 - 262: 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 - 263: 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 - 264: 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 - 265: 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 - 266: 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 - 267: 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 - 268: 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 - 269: 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 - 270: 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 - 271: 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 - 272: 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 - 273: 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 - 274: 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 - 275: 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 - 276: 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 - 277: 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 - 278: 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 - 279: 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 - 280: 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 - 281: 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 - 282: 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 - 283: 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 - 284: 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 - 285: 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 - 286: 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 - 287: 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 - 288: 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 - 289: 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 - 290: 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 - 291: 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 - 292: 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 - 293: 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 - 294: 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 - 295: 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 - 296: 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 - 297: 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 - 298: 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 - 299: 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 - 300: 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 - 301: 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 - 302: 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 - 303: 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 - 304: 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 - 305: 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 - 306: 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 - 307: 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 - 308: 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 - 309: 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 - 310: 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 - 311: 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 - 312: 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 - 313: 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 - 314: 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 - 315: 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 - 316: 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 - 317: 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 - 318: 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 - 319: 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 - 320: 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 - 321: 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 - 322: 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 - 323: 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 - 324: 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 - 325: 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 - 326: 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 - 327: 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 - 328: 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 - 329: 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 - 330: 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 - 331: 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 - 332: 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 - 333: 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 - 334: 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 - 335: 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 - 336: 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 - 337: 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 - 338: 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 - 339: 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 - 340: 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 - 341: 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 - 342: 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 - 343: 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 - 344: 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 - 345: 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 - 346: 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 - 347: 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 - 348: 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 - 349: 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 - 350: 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 - 351: 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 - 352: 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 - 353: 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 - 354: 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 - 355: 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 - 356: 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 - 357: 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 - 358: 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 - 359: 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 - 360: 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 - 361: 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 - 362: 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 - 363: 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 - 364: 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 - 365: 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 - 366: 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 - 367: 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 - 368: 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 - 369: 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 - 370: 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 - 371: 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 - 372: 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 - 373: 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 - 374: 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 - 375: 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 - 376: 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 - 377: 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 - 378: 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 - 379: 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 - 380: 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 - 381: 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 - 382: 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 - 383: 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 - 384: 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 - 385: 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 - 386: 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 - 387: 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 - 388: 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 - 389: 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 - 390: 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 - 391: 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 - 392: 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 - 393: 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 - 394: 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 - 395: 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 - 396: 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 - 397: 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 - 398: 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 - 399: 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 - 400: 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 - 401: 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 - 402: 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 - 403: 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 - 404: 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 - 405: 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 - 406: 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 - 407: 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 - 408: 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 - 409: 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 - 410: 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 - 411: 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 - 412: 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 - 413: 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 - 414: 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 - 415: 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 - 416: 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 - 417: 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 - 418: 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 - 419: 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 - 420: 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 - 421: 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 - 422: 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 - 423: 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 - 424: 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 - 425: 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 - 426: 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 - 427: 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 - 428: 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 - 429: 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 - 430: 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 - 431: 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 - 432: 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 - 433: 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 - 434: 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 - 435: 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 - 436: 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 - 437: 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 - 438: 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 - 439: 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 - 440: 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 - 441: 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 - 442: 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 - 443: 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 - 444: 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 - 445: 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 - 446: 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 - 447: 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 - 448: 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 - 449: 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 - 450: 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 - 451: 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 - 452: 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 - 453: 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 - 454: 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 - 455: 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 - 456: 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 - 457: 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 - 458: 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 - 459: 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 - 460: 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 - 461: 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 - 462: 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 - 463: 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 - 464: 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 - 465: 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 - 466: 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 - 467: 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 - 468: 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 - 469: 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 - 470: 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 - 471: 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 - 472: 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 - 473: 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 - 474: 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 - 475: 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 - 476: 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 - 477: 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 - 478: 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 - 479: 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 - 480: 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 - 481: 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 - 482: 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 - 483: 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 - 484: 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 - 485: 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 - 486: 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 - 487: 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 - 488: 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 - 489: 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 - 490: 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 - 491: 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 - 492: 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 - 493: 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 - 494: 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 - 495: 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 - 496: 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 - 497: 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 - 498: 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 - 499: 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 - 500: 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 - 501: 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 - 502: 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 - 503: 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 - 504: 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 - 505: 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 - 506: 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 - 507: 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 - 508: 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 - 509: 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 - 510: 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 - 511: 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 - 512: 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 - 513: 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 - 514: 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 - 515: 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 - 516: 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 - 517: 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 - 518: 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 - 519: 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 - 520: 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 - 521: 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 - 522: 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 - 523: 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 - 524: 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 - 525: 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 - 526: 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 - 527: 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 - 528: 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 - 529: 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 - 530: 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 - 531: 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 - 532: 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 - 533: 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 - 534: 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 - 535: 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 - 536: 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 - 537: 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 - 538: 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 - 539: 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 - 540: 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 - 541: 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 - 542: 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 - 543: 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 - 544: 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 - 545: 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 - 546: 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 - 547: 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 - 548: 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 - 549: 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 - 550: 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 - 551: 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 - 552: 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 - 553: 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 - 554: 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 - 555: 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 - 556: 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 - 557: 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 - 558: 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 - 559: 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 - 560: 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 - 561: 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 - 562: 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 - 563: 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 - 564: 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 - 565: 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 - 566: 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 - 567: 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 - 568: 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 - 569: 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 - 570: 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 - 571: 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 - 572: 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 - 573: 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 - 574: 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 - 575: 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 - 576: 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 - 577: 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 - 578: 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 - 579: 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 - 580: 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 - 581: 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 - 582: 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 - 583: 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 - 584: 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 - 585: 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 - 586: 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 - 587: 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 - 588: 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 - 589: 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 - 590: 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 - 591: 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 - 592: 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 - 593: 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 - 594: 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 - 595: 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 - 596: 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 - 597: 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 - 598: 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 - 599: 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 - 600: 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 - 601: 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 - 602: 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 - 603: 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 - 604: 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 - 605: 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 - 606: 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 - 607: 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 - 608: 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 - 609: 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 - 610: 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 - 611: 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 - 612: 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 - 613: 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 - 614: 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 - 615: 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 - 616: 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 - 617: 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 - 618: 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 - 619: 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 - 620: 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 - 621: 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 - 622: 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 - 623: 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 - 624: 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 - 625: 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 - 626: 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 - 627: 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 - 628: 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 - 629: 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 - 630: 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 - 631: 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 - 632: 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 - 633: 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 - 634: 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 - 635: 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 - 636: 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 - 637: 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 - 638: 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 - 639: 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 - 640: 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 - 641: 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 - 642: 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 - 643: 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 - 644: 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 - 645: 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 - 646: 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 - 647: 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 - 648: 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 - 649: 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 - 650: 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 - 651: 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 - 652: 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 - 653: 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 - 654: 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 - 655: 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 - 656: 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 - 657: 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 - 658: 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 - 659: 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 - 660: 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 - 661: 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 - 662: 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 - 663: 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 - 664: 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 - 665: 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 - 666: 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 - 667: 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 - 668: 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 - 669: 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 - 670: 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 - 671: 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 - 672: 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 - 673: 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 - 674: 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 - 675: 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 - 676: 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 - 677: 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 - 678: 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 - 679: 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 - 680: 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 - 681: 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 - 682: 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 - 683: 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 - 684: 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 - 685: 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 - 686: 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 - 687: 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 - 688: 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 - 689: 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 - 690: 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 - 691: 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 - 692: 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 - 693: 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 - 694: 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 - 695: 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 - 696: 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 - 697: 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 - 698: 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 - 699: 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 - 700: 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 - 701: 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 - 702: 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 - 703: 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 - 704: 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 - 705: 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 - 706: 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 - 707: 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 - 708: 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 - 709: 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 - 710: 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 - 711: 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 - 712: 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 - 713: 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 - 714: 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 - 715: 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 - 716: 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 - 717: 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 - 718: 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 - 719: 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 - 720: 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 - 721: 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 - 722: 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 - 723: 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 - 724: 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 - 725: 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 - 726: 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 - 727: 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 - 728: 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 - 729: 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 - 730: 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 - 731: 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 - 732: 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 - 733: 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 - 734: 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 - 735: 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 - 736: 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 - 737: 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 - 738: 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 - 739: 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 - 740: 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 - 741: 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 - 742: 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 - 743: 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 - 744: 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 - 745: 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 - 746: 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 - 747: 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 - 748: 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 - 749: 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 - 750: 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 - 751: 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 - 752: 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 - 753: 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 - 754: 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 - 755: 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 - 756: 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 - 757: 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 - 758: 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 - 759: 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 - 760: 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 - 761: 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 - 762: 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 - 763: 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 - 764: 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 - 765: 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 - 766: 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 - 767: 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 - 768: 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 - 769: 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 - 770: 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 - 771: 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 - 772: 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 - 773: 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 - 774: 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 - 775: 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 - 776: 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 - 777: 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 - 778: 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 - 779: 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 - 780: 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 - 781: 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 - 782: 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 - 783: 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 - 784: 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 - 785: 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 - 786: 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 - 787: 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 - 788: 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 - 789: 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 - 790: 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 - 791: 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 - 792: 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 - 793: 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 - 794: 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 - 795: 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 - 796: 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 - 797: 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 - 798: 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 - 799: 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 - 800: 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 - 801: 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 - 802: 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 - 803: 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 - 804: 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 - 805: 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 - 806: 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 - 807: 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 - 808: 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 - 809: 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 - 810: 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 - 811: 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 - 812: 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 - 813: 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 - 814: 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 - 815: 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 - 816: 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 - 817: 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 - 818: 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 - 819: 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 - 820: 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 - 821: 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 - 822: 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 - 823: 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 - 824: 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 - 825: 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 - 826: 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 - 827: 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 - 828: 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 - 829: 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 - 830: 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 - 831: 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 - 832: 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 - 833: 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 - 834: 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 - 835: 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 - 836: 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 - 837: 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 - 838: 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 - 839: 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 - 840: 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 - 841: 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 - 842: 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 - 843: 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 - 844: 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 - 845: 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 - 846: 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 - 847: 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 - 848: 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 - 849: 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 - 850: 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 - 851: 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 - 852: 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 - 853: 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 - 854: 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 - 855: 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 - 856: 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 - 857: 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 - 858: 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 - 859: 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 - 860: 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 - 861: 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 - 862: 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 - 863: 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 - 864: 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 - 865: 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 - 866: 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 - 867: 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 - 868: 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 - 869: 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 - 870: 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 - 871: 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 - 872: 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 - 873: 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 - 874: 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 - 875: 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 - 876: 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 - 877: 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 - 878: 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 - 879: 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 - 880: 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 - 881: 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 - 882: 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 - 883: 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 - 884: 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 - 885: 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 - 886: 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 - 887: 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 - 888: 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 - 889: 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 - 890: 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 - 891: 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 - 892: 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 - 893: 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 - 894: 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 - 895: 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 - 896: 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 - 897: 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 - 898: 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 - 899: 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 - 900: 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 - 901: 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 - 902: 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 - 903: 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 - 904: 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 - 905: 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 - 906: 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 - 907: 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 - 908: 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 - 909: 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 - 910: 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 - 911: 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 - 912: 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 - 913: 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 - 914: 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 - 915: 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 - 916: 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 - 917: 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 - 918: 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 - 919: 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 - 920: 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 - 921: 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 - 922: 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 - 923: 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 - 924: 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 - 925: 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 - 926: 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 - 927: 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 - 928: 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 - 929: 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 - 930: 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 - 931: 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 - 932: 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 - 933: 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 - 934: 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 - 935: 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 - 936: 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 - 937: 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 - 938: 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 - 939: 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 - 940: 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 - 941: 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 - 942: 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 - 943: 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 - 944: 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 - 945: 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 - 946: 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 - 947: 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 - 948: 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 - 949: 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 - 950: 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 - 951: 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 - 952: 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 - 953: 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 - 954: 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 - 955: 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 - 956: 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 - 957: 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 - 958: 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 - 959: 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 - 960: 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 - 961: 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 - 962: 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 - 963: 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 - 964: 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 - 965: 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 - 966: 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 - 967: 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 - 968: 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 - 969: 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 - 970: 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 - 971: 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 - 972: 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 - 973: 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 - 974: 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 - 975: 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 - 976: 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 - 977: 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 - 978: 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 - 979: 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 - 980: 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 - 981: 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 - 982: 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 - 983: 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 - 984: 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 - 985: 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 - 986: 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 - 987: 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 - 988: 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 - 989: 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 - 990: 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 - 991: 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 - 992: 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 - 993: 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 - 994: 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 - 995: 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 - 996: 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 - 997: 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 - 998: 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 - 999: 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 - 1000: 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 - 1001: 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 - 1002: 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 - 1003: 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 - 1004: 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 - 1005: 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 - 1006: 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 - 1007: 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 - 1008: 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 - 1009: 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 - 1010: 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 - 1011: 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 - 1012: 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 - 1013: 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 - 1014: 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 - 1015: 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 - 1016: 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 - 1017: 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 - 1018: 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 - 1019: 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 - 1020: 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 - 1021: 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 - 1022: 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 - 1023: 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 - 1024: 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 - 1025: 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 - 1026: 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 - 1027: 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 - 1028: 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 - 1029: 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 - 1030: 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 - 1031: 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 - 1032: 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 - 1033: 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 - 1034: 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 - 1035: 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 - 1036: 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 - 1037: 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 - 1038: 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 - 1039: 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 - 1040: 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 - 1041: 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 - 1042: 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 - 1043: 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 - 1044: 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 - 1045: 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 - 1046: 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 - 1047: 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 - 1048: 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 - 1049: 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 - 1050: 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 - 1051: 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 - 1052: 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 - 1053: 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 - 1054: 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 - 1055: 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 - 1056: 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 - 1057: 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 - 1058: 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 - 1059: 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 - 1060: 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 - 1061: 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 - 1062: 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 - 1063: 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 - 1064: 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 - 1065: 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 - 1066: 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 - 1067: 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 - 1068: 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 - 1069: 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 - 1070: 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 - 1071: 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 - 1072: 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 - 1073: 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 - 1074: 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 - 1075: 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 - 1076: 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 - 1077: 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 - 1078: 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 - 1079: 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 - 1080: 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 - 1081: 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 - 1082: 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 - 1083: 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 - 1084: 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 - 1085: 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 - 1086: 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 - 1087: 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 - 1088: 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 - 1089: 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 - 1090: 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 - 1091: 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 - 1092: 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 - 1093: 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 - 1094: 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 - 1095: 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 - 1096: 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 - 1097: 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 - 1098: 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 - 1099: 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 - 1100: 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 - 1101: 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 - 1102: 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 - 1103: 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 - 1104: 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 - 1105: 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 - 1106: 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 - 1107: 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 - 1108: 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 - 1109: 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 - 1110: 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 - 1111: 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 - 1112: 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 - 1113: 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 - 1114: 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 - 1115: 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 - 1116: 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 - 1117: 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 - 1118: 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 - 1119: 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 - 1120: 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 - 1121: 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 - 1122: 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 - 1123: 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 - 1124: 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 - 1125: 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 - 1126: 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 - 1127: 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 - 1128: 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 - 1129: 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 - 1130: 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 - 1131: 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 - 1132: 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 - 1133: 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 - 1134: 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 - 1135: 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 - 1136: 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 - 1137: 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 - 1138: 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 - 1139: 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 - 1140: 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 - 1141: 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 - 1142: 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 - 1143: 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 - 1144: 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 - 1145: 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 - 1146: 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 - 1147: 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 - 1148: 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 - 1149: 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 - 1150: 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 - 1151: 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 - 1152: 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 - 1153: 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 - 1154: 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 - 1155: 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 - 1156: 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 - 1157: 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 - 1158: 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 - 1159: 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 - 1160: 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 - 1161: 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 - 1162: 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 - 1163: 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 - 1164: 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 - 1165: 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 - 1166: 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 - 1167: 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 - 1168: 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 - 1169: 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 - 1170: 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 - 1171: 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 - 1172: 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 - 1173: 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 - 1174: 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 - 1175: 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 - 1176: 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 - 1177: 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 - 1178: 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 - 1179: 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 - 1180: 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 - 1181: 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 - 1182: 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 - 1183: 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 - 1184: 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 - 1185: 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 - 1186: 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 - 1187: 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 - 1188: 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 - 1189: 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 - 1190: 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 - 1191: 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 - 1192: 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 - 1193: 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 - 1194: 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 - 1195: 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 - 1196: 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 - 1197: 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 - 1198: 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 - 1199: 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 - 1200: 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 - 1201: 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 - 1202: 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 - 1203: 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 - 1204: 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 - 1205: 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 - 1206: 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 - 1207: 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 - 1208: 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 - 1209: 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 - 1210: 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 - 1211: 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 - 1212: 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 - 1213: 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 - 1214: 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 - 1215: 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 - 1216: 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 - 1217: 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 - 1218: 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 - 1219: 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 - 1220: 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 - 1221: 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 - 1222: 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 - 1223: 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 - 1224: 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 - 1225: 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 - 1226: 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 - 1227: 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 - 1228: 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 - 1229: 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 - 1230: 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 - 1231: 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 - 1232: 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 - 1233: 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 - 1234: 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 - 1235: 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 - 1236: 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 - 1237: 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 - 1238: 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 - 1239: 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 - 1240: 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 - 1241: 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 - 1242: 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 - 1243: 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 - 1244: 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 - 1245: 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 - 1246: 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 - 1247: 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 - 1248: 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 - 1249: 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 - 1250: 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 - 1251: 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 - 1252: 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 - 1253: 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 - 1254: 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 - 1255: 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 - 1256: 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 - 1257: 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 - 1258: 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 - 1259: 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 - 1260: 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 - 1261: 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 - 1262: 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 - 1263: 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 - 1264: 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 - 1265: 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 - 1266: 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 - 1267: 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 - 1268: 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 - 1269: 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 - 1270: 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 - 1271: 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 - 1272: 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 - 1273: 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 - 1274: 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 - 1275: 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 - 1276: 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 - 1277: 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 - 1278: 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 - 1279: 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 - 1280: 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 - 1281: 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 - 1282: 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 - 1283: 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 - 1284: 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 - 1285: 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 - 1286: 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 - 1287: 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 - 1288: 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 - 1289: 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 - 1290: 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 - 1291: 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 - 1292: 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 - 1293: 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 - 1294: 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 - 1295: 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 - 1296: 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 - 1297: 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 - 1298: 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 - 1299: 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 - 1300: 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 - 1301: 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 - 1302: 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 - 1303: 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 - 1304: 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 - 1305: 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 - 1306: 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 - 1307: 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 - 1308: 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 - 1309: 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 - 1310: 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 - 1311: 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 - 1312: 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 - 1313: 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 - 1314: 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 - 1315: 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 - 1316: 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 - 1317: 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 - 1318: 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 - 1319: 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 - 1320: 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 - 1321: 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 - 1322: 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 - 1323: 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 - 1324: 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 - 1325: 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 - 1326: 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 - 1327: 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 - 1328: 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 - 1329: 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 - 1330: 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 - 1331: 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 - 1332: 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 - 1333: 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 - 1334: 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 - 1335: 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 - 1336: 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 - 1337: 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 - 1338: 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 - 1339: 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 - 1340: 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 - 1341: 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 - 1342: 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 - 1343: 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 - 1344: 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 - 1345: 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 - 1346: 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 - 1347: 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 - 1348: 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 - 1349: 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 - 1350: 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 - 1351: 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 - 1352: 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 - 1353: 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 - 1354: 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 - 1355: 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 - 1356: 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 - 1357: 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 - 1358: 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 - 1359: 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 - 1360: 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 - 1361: 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 - 1362: 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 - 1363: 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 - 1364: 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 - 1365: 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 - 1366: 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 - 1367: 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 - 1368: 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 - 1369: 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 - 1370: 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 - 1371: 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 - 1372: 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 - 1373: 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 - 1374: 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 - 1375: 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 - 1376: 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 - 1377: 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 - 1378: 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 - 1379: 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 - 1380: 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 - 1381: 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 - 1382: 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 - 1383: 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 - 1384: 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 - 1385: 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 - 1386: 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 - 1387: 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 - 1388: 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 - 1389: 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 - 1390: 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 - 1391: 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 - 1392: 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 - 1393: 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 - 1394: 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 - 1395: 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 - 1396: 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 - 1397: 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 - 1398: 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 - 1399: 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 - 1400: 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 - 1401: 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 - 1402: 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 - 1403: 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 - 1404: 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 - 1405: 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 - 1406: 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 - 1407: 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 - 1408: 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 - 1409: 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 - 1410: 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 - 1411: 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 - 1412: 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 - 1413: 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 - 1414: 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 - 1415: 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 - 1416: 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 - 1417: 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 - 1418: 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 - 1419: 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 - 1420: 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 - 1421: 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 - 1422: 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 - 1423: 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 - 1424: 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 - 1425: 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 - 1426: 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 - 1427: 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 - 1428: 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 - 1429: 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 - 1430: 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 - 1431: 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 - 1432: 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 - 1433: 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 - 1434: 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 - 1435: 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 - 1436: 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 - 1437: 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 - 1438: 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 - 1439: 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 - 1440: 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 - 1441: 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 - 1442: 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 - 1443: 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 - 1444: 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 - 1445: 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 - 1446: 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 - 1447: 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 - 1448: 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 - 1449: 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 - 1450: 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 - 1451: 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 - 1452: 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 - 1453: 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 - 1454: 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 - 1455: 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 - 1456: 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 - 1457: 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 - 1458: 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 - 1459: 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 - 1460: 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 - 1461: 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 - 1462: 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 - 1463: 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 - 1464: 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 - 1465: 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 - 1466: 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 - 1467: 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 - 1468: 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 - 1469: 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 - 1470: 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 - 1471: 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 - 1472: 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 - 1473: 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 - 1474: 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 - 1475: 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 - 1476: 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 - 1477: 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 - 1478: 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 - 1479: 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 - 1480: 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 - 1481: 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 - 1482: 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 - 1483: 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 - 1484: 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 - 1485: 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 - 1486: 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 - 1487: 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 - 1488: 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 - 1489: 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 - 1490: 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 - 1491: 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 - 1492: 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 - 1493: 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 - 1494: 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 - 1495: 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 - 1496: 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 - 1497: 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 - 1498: 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 - 1499: 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 - 1500: 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 - 1501: 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 - 1502: 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 - 1503: 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 - 1504: 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 - 1505: 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 - 1506: 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 - 1507: 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 - 1508: 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 - 1509: 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 - 1510: 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 - 1511: 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 - 1512: 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 - 1513: 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 - 1514: 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 - 1515: 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 - 1516: 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 - 1517: 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 - 1518: 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 - 1519: 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 - 1520: 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 - 1521: 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 - 1522: 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 - 1523: 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 - 1524: 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 - 1525: 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 - 1526: 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 - 1527: 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 - 1528: 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 - 1529: 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 - 1530: 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 - 1531: 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 - 1532: 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 - 1533: 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 - 1534: 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 - 1535: 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 - 1536: 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 - 1537: 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 - 1538: 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 - 1539: 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 - 1540: 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 - 1541: 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 - 1542: 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 - 1543: 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 - 1544: 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 - 1545: 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 - 1546: 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 - 1547: 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 - 1548: 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 - 1549: 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 - 1550: 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 - 1551: 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 - 1552: 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 - 1553: 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 - 1554: 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 - 1555: 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 - 1556: 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 - 1557: 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 - 1558: 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 - 1559: 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 - 1560: 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 - 1561: 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 - 1562: 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 - 1563: 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 - 1564: 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 - 1565: 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 - 1566: 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 - 1567: 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 - 1568: 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 - 1569: 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 - 1570: 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 - 1571: 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 - 1572: 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 - 1573: 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 - 1574: 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 - 1575: 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 - 1576: 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 - 1577: 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 - 1578: 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 - 1579: 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 - 1580: 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 - 1581: 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 - 1582: 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 - 1583: 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 - 1584: 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 - 1585: 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 - 1586: 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 - 1587: 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 - 1588: 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 - 1589: 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 - 1590: 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 - 1591: 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 - 1592: 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 - 1593: 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 - 1594: 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 - 1595: 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 - 1596: 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 - 1597: 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 - 1598: 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 - 1599: 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 - 1600: 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 - 1601: 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 - 1602: 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 - 1603: 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 - 1604: 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 - 1605: 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 - 1606: 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 - 1607: 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 - 1608: 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 - 1609: 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 - 1610: 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 - 1611: 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 - 1612: 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 - 1613: 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 - 1614: 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 - 1615: 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 - 1616: 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 - 1617: 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 - 1618: 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 - 1619: 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 - 1620: 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 - 1621: 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 - 1622: 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 - 1623: 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 - 1624: 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 - 1625: 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 - 1626: 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 - 1627: 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 - 1628: 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 - 1629: 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 - 1630: 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 - 1631: 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 - 1632: 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 - 1633: 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 - 1634: 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 - 1635: 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 - 1636: 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 - 1637: 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 - 1638: 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 - 1639: 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 - 1640: 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 - 1641: 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 - 1642: 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 - 1643: 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 - 1644: 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 - 1645: 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 - 1646: 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 - 1647: 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 - 1648: 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 - 1649: 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 - 1650: 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 - 1651: 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 - 1652: 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 - 1653: 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 - 1654: 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 - 1655: 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 - 1656: 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 - 1657: 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 - 1658: 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 - 1659: 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 - 1660: 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 - 1661: 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 - 1662: 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 - 1663: 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 - 1664: 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 - 1665: 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 - 1666: 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 - 1667: 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 - 1668: 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 - 1669: 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 - 1670: 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 - 1671: 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 - 1672: 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 - 1673: 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 - 1674: 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 - 1675: 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 - 1676: 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 - 1677: 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 - 1678: 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 - 1679: 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 - 1680: 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 - 1681: 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 - 1682: 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 - 1683: 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 - 1684: 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 - 1685: 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 - 1686: 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 - 1687: 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 - 1688: 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 - 1689: 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 - 1690: 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 - 1691: 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 - 1692: 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 - 1693: 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 - 1694: 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 - 1695: 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 - 1696: 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 - 1697: 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 - 1698: 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 - 1699: 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 - 1700: 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 - 1701: 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 - 1702: 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 - 1703: 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 - 1704: 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 - 1705: 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 - 1706: 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 - 1707: 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 - 1708: 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 - 1709: 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 - 1710: 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 - 1711: 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 - 1712: 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 - 1713: 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 - 1714: 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 - 1715: 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 - 1716: 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 - 1717: 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 - 1718: 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 - 1719: 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 - 1720: 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 - 1721: 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 - 1722: 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 - 1723: 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 - 1724: 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 - 1725: 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 - 1726: 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 - 1727: 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 - 1728: 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 - 1729: 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 - 1730: 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 - 1731: 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 - 1732: 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 - 1733: 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 - 1734: 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 - 1735: 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 - 1736: 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 - 1737: 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 - 1738: 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 - 1739: 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 - 1740: 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 - 1741: 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 - 1742: 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 - 1743: 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 - 1744: 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 - 1745: 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 - 1746: 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 - 1747: 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 - 1748: 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 - 1749: 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 - 1750: 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 - 1751: 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 - 1752: 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 - 1753: 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 - 1754: 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 - 1755: 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 - 1756: 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 - 1757: 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 - 1758: 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 - 1759: 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 - 1760: 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 - 1761: 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 - 1762: 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 - 1763: 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 - 1764: 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 - 1765: 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 - 1766: 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 - 1767: 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 - 1768: 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 - 1769: 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 - 1770: 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 - 1771: 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 - 1772: 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 - 1773: 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 - 1774: 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 - 1775: 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 - 1776: 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 - 1777: 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 - 1778: 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 - 1779: 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 - 1780: 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 - 1781: 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 - 1782: 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 - 1783: 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 - 1784: 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 - 1785: 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 - 1786: 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 - 1787: 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 - 1788: 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 - 1789: 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 - 1790: 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 - 1791: 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 - 1792: 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 - 1793: 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 - 1794: 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 - 1795: 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 - 1796: 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 - 1797: 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 - 1798: 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 - 1799: 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 - 1800: 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 - 1801: 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 - 1802: 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 - 1803: 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 - 1804: 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 - 1805: 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 - 1806: 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 - 1807: 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 - 1808: 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 - 1809: 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 - 1810: 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 - 1811: 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 - 1812: 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 - 1813: 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 - 1814: 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 - 1815: 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 - 1816: 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 - 1817: 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 - 1818: 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 - 1819: 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 - 1820: 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 - 1821: 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 - 1822: 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 - 1823: 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 - 1824: 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 - 1825: 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 - 1826: 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 - 1827: 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 - 1828: 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 - 1829: 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 - 1830: 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 - 1831: 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 - 1832: 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 - 1833: 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 - 1834: 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 - 1835: 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 - 1836: 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 - 1837: 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 - 1838: 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 - 1839: 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 - 1840: 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 - 1841: 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 - 1842: 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 - 1843: 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 - 1844: 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 - 1845: 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 - 1846: 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 - 1847: 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 - 1848: 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 - 1849: 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 - 1850: 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 - 1851: 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 - 1852: 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 - 1853: 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 - 1854: 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 - 1855: 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 - 1856: 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 - 1857: 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 - 1858: 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 - 1859: 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 - 1860: 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 - 1861: 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 - 1862: 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 - 1863: 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 - 1864: 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 - 1865: 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 - 1866: 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 - 1867: 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 - 1868: 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 - 1869: 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 - 1870: 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 - 1871: 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 - 1872: 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 - 1873: 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 - 1874: 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 - 1875: 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 - 1876: 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 - 1877: 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 - 1878: 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 - 1879: 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 - 1880: 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 - 1881: 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 - 1882: 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 - 1883: 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 - 1884: 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 - 1885: 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 - 1886: 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 - 1887: 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 - 1888: 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 - 1889: 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 - 1890: 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 - 1891: 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 - 1892: 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 - 1893: 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 - 1894: 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 - 1895: 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 - 1896: 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 - 1897: 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 - 1898: 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 - 1899: 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 - 1900: 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 - 1901: 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 - 1902: 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 - 1903: 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 - 1904: 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 - 1905: 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 - 1906: 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 - 1907: 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 - 1908: 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 - 1909: 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 - 1910: 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 - 1911: 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 - 1912: 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 - 1913: 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 - 1914: 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 - 1915: 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 - 1916: 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 - 1917: 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 - 1918: 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 - 1919: 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 - 1920: 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 - 1921: 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 - 1922: 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 - 1923: 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 - 1924: 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 - 1925: 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 - 1926: 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 - 1927: 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 - 1928: 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 - 1929: 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 - 1930: 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 - 1931: 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 - 1932: 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 - 1933: 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 - 1934: 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 - 1935: 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 - 1936: 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 - 1937: 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 - 1938: 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 - 1939: 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 - 1940: 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 - 1941: 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 - 1942: 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 - 1943: 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 - 1944: 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 - 1945: 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 - 1946: 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 - 1947: 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 - 1948: 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 - 1949: 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 - 1950: 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 - 1951: 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 - 1952: 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 - 1953: 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 - 1954: 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 - 1955: 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 - 1956: 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 - 1957: 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 - 1958: 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 - 1959: 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 - 1960: 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 - 1961: 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 - 1962: 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 - 1963: 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 - 1964: 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 - 1965: 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 - 1966: 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 - 1967: 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 - 1968: 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 - 1969: 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 - 1970: 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 - 1971: 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 - 1972: 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 - 1973: 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 - 1974: 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 - 1975: 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 - 1976: 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 - 1977: 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 - 1978: 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 - 1979: 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 - 1980: 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 - 1981: 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 - 1982: 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 - 1983: 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 - 1984: 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 - 1985: 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 - 1986: 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 - 1987: 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 - 1988: 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 - 1989: 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 - 1990: 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 - 1991: 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 - 1992: 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 - 1993: 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 - 1994: 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 - 1995: 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 - 1996: 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 - 1997: 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 - 1998: 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 - 1999: 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 - 2000: 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2001: 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2002: 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2003: 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2004: 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2005: 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2006: 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2007: 1993 1994 1995 1996 1997 1998 1999 2000 - 2008: 1994 1995 1996 1997 1998 1999 2000 - 2009: 1995 1996 1997 1998 1999 2000 - 2010: 1996 1997 1998 1999 2000 - 2011: 1997 1998 1999 2000 - 2012: 1998 1999 2000 - 2013: 1999 2000 - 2014: 2000 + + 1: 1 + 2: 1 2 + 3: 1 2 3 + 4: 1 2 3 4 + 5: 1 2 3 4 5 + 6: 1 2 3 4 5 6 + 7: 1 2 3 4 5 6 7 + 8: 1 2 3 4 5 6 7 8 + 9: 1 2 3 4 5 6 7 8 9 + 10: 1 2 3 4 5 6 7 8 9 10 + 11: 1 2 3 4 5 6 7 8 9 10 11 + 12: 1 2 3 4 5 6 7 8 9 10 11 12 + 13: 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 + 15: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + 16: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 17: 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18: 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 + 19: 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20: 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21: 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 + 22: 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 + 23: 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 + 24: 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 + 25: 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 + 26: 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 + 27: 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 + 28: 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 + 29: 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 + 30: 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 + 31: 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 + 32: 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33: 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 + 34: 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 + 35: 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 + 36: 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 + 37: 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 + 38: 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 + 39: 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 + 40: 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 + 41: 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 + 42: 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 + 43: 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 + 44: 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 + 45: 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 + 46: 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 + 47: 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48: 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 + 49: 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 + 50: 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 + 51: 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 + 52: 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 + 53: 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 + 54: 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 + 55: 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 + 56: 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 + 57: 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 + 58: 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 + 59: 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 + 60: 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 + 61: 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 + 62: 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63: 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 + 64: 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 + 65: 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 + 66: 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 + 67: 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 + 68: 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 + 69: 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 + 70: 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 + 71: 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 + 72: 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 + 73: 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 + 74: 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 + 75: 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 + 76: 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 + 77: 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78: 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 + 79: 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 + 80: 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 + 81: 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 + 82: 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 + 83: 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 + 84: 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 + 85: 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 + 86: 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 + 87: 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 + 88: 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 + 89: 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 + 90: 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 + 91: 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 + 92: 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93: 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 + 94: 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 + 95: 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 + 96: 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 + 97: 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 + 98: 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 + 99: 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 + 100: 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 + 101: 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 + 102: 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 + 103: 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 + 104: 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 + 105: 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 + 106: 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107: 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 + 108: 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 + 109: 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 + 110: 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 + 111: 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 + 112: 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 + 113: 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 + 114: 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 + 115: 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 + 116: 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 + 117: 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 + 118: 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 + 119: 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120: 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 + 121: 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 + 122: 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 + 123: 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 + 124: 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 + 125: 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 + 126: 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 + 127: 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 + 128: 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 + 129: 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 + 130: 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 + 131: 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 + 132: 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133: 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 + 134: 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 + 135: 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 + 136: 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 + 137: 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 + 138: 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 + 139: 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 + 140: 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 + 141: 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 + 142: 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 + 143: 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 + 144: 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 + 145: 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146: 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 + 147: 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 + 148: 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 + 149: 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 + 150: 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 + 151: 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 + 152: 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 + 153: 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 + 154: 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 + 155: 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 + 156: 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 + 157: 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 + 158: 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159: 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 + 160: 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 + 161: 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 + 162: 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 + 163: 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 + 164: 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 + 165: 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 + 166: 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 + 167: 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 + 168: 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 + 169: 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 + 170: 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 + 171: 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172: 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 + 173: 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 + 174: 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 + 175: 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 + 176: 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 + 177: 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 + 178: 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 + 179: 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 + 180: 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 + 181: 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 + 182: 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 + 183: 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 + 184: 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185: 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 + 186: 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 + 187: 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 + 188: 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 + 189: 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 + 190: 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 + 191: 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 + 192: 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 + 193: 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 + 194: 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 + 195: 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 + 196: 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 + 197: 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 + 198: 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 + 199: 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 + 200: 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 + 201: 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 + 202: 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 + 203: 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 + 204: 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 + 205: 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 + 206: 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 + 207: 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 + 208: 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 + 209: 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 + 210: 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 + 211: 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 + 212: 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 + 213: 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 + 214: 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 + 215: 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 + 216: 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 + 217: 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 + 218: 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 + 219: 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 + 220: 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 + 221: 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 + 222: 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 + 223: 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 + 224: 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 + 225: 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 + 226: 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 + 227: 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 + 228: 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 + 229: 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 + 230: 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 + 231: 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 + 232: 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 + 233: 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 + 234: 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 + 235: 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 + 236: 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 + 237: 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 + 238: 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 + 239: 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 + 240: 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 + 241: 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 + 242: 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 + 243: 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 + 244: 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 + 245: 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 + 246: 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 + 247: 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 + 248: 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 + 249: 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 + 250: 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 + 251: 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 + 252: 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 + 253: 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 + 254: 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 + 255: 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 + 256: 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 + 257: 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 + 258: 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 + 259: 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 + 260: 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 + 261: 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 + 262: 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 + 263: 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 + 264: 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 + 265: 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 + 266: 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 + 267: 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 + 268: 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 + 269: 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 + 270: 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 + 271: 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 + 272: 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 + 273: 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 + 274: 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 + 275: 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 + 276: 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 + 277: 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 + 278: 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 + 279: 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 + 280: 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 + 281: 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 + 282: 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 + 283: 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 + 284: 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 + 285: 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 + 286: 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 + 287: 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 + 288: 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 + 289: 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 + 290: 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 + 291: 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 + 292: 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 + 293: 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 + 294: 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 + 295: 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 + 296: 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 + 297: 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 + 298: 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 + 299: 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 + 300: 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 + 301: 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 + 302: 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 + 303: 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 + 304: 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 + 305: 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 + 306: 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 + 307: 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 + 308: 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 + 309: 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 + 310: 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 + 311: 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 + 312: 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 + 313: 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 + 314: 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 + 315: 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 + 316: 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 + 317: 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 + 318: 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 + 319: 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 + 320: 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 + 321: 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 + 322: 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 + 323: 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 + 324: 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 + 325: 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 + 326: 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 + 327: 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 + 328: 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 + 329: 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 + 330: 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 + 331: 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 + 332: 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 + 333: 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 + 334: 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 + 335: 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 + 336: 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 + 337: 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 + 338: 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 + 339: 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 + 340: 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 + 341: 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 + 342: 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 + 343: 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 + 344: 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 + 345: 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 + 346: 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 + 347: 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 + 348: 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 + 349: 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 + 350: 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 + 351: 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 + 352: 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 + 353: 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 + 354: 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 + 355: 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 + 356: 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 + 357: 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 + 358: 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 + 359: 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 + 360: 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 + 361: 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 + 362: 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 + 363: 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 + 364: 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 + 365: 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 + 366: 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 + 367: 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 + 368: 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 + 369: 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 + 370: 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 + 371: 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 + 372: 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 + 373: 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 + 374: 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 + 375: 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 + 376: 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 + 377: 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 + 378: 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 + 379: 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 + 380: 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 + 381: 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 + 382: 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 + 383: 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 + 384: 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 + 385: 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 + 386: 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 + 387: 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 + 388: 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 + 389: 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 + 390: 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 + 391: 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 + 392: 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 + 393: 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 + 394: 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 + 395: 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 + 396: 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 + 397: 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 + 398: 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 + 399: 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 + 400: 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 + 401: 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 + 402: 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 + 403: 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 + 404: 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 + 405: 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 + 406: 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 + 407: 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 + 408: 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 + 409: 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 + 410: 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 + 411: 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 + 412: 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 + 413: 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 + 414: 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 + 415: 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 + 416: 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 + 417: 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 + 418: 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 + 419: 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 + 420: 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 + 421: 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 + 422: 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 + 423: 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 + 424: 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 + 425: 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 + 426: 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 + 427: 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 + 428: 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 + 429: 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 + 430: 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 + 431: 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 + 432: 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 + 433: 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 + 434: 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 + 435: 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 + 436: 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 + 437: 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 + 438: 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 + 439: 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 + 440: 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 + 441: 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 + 442: 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 + 443: 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 + 444: 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 + 445: 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 + 446: 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 + 447: 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 + 448: 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 + 449: 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 + 450: 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 + 451: 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 + 452: 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 + 453: 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 + 454: 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 + 455: 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 + 456: 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 + 457: 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 + 458: 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 + 459: 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 + 460: 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 + 461: 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 + 462: 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 + 463: 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 + 464: 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 + 465: 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 + 466: 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 + 467: 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 + 468: 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 + 469: 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 + 470: 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 + 471: 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 + 472: 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 + 473: 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 + 474: 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 + 475: 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 + 476: 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 + 477: 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 + 478: 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 + 479: 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 + 480: 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 + 481: 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 + 482: 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 + 483: 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 + 484: 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 + 485: 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 + 486: 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 + 487: 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 + 488: 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 + 489: 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 + 490: 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 + 491: 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 + 492: 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 + 493: 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 + 494: 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 + 495: 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 + 496: 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 + 497: 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 + 498: 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 + 499: 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 + 500: 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 + 501: 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 + 502: 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 + 503: 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 + 504: 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 + 505: 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 + 506: 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 + 507: 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 + 508: 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 + 509: 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 + 510: 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 + 511: 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 + 512: 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 + 513: 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 + 514: 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 + 515: 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 + 516: 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 + 517: 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 + 518: 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 + 519: 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 + 520: 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 + 521: 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 + 522: 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 + 523: 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 + 524: 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 + 525: 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 + 526: 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 + 527: 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 + 528: 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 + 529: 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 + 530: 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 + 531: 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 + 532: 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 + 533: 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 + 534: 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 + 535: 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 + 536: 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 + 537: 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 + 538: 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 + 539: 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 + 540: 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 + 541: 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 + 542: 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 + 543: 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 + 544: 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 + 545: 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 + 546: 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 + 547: 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 + 548: 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 + 549: 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 + 550: 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 + 551: 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 + 552: 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 + 553: 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 + 554: 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 + 555: 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 + 556: 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 + 557: 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 + 558: 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 + 559: 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 + 560: 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 + 561: 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 + 562: 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 + 563: 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 + 564: 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 + 565: 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 + 566: 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 + 567: 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 + 568: 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 + 569: 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 + 570: 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 + 571: 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 + 572: 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 + 573: 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 + 574: 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 + 575: 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 + 576: 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 + 577: 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 + 578: 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 + 579: 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 + 580: 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 + 581: 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 + 582: 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 + 583: 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 + 584: 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 + 585: 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 + 586: 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 + 587: 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 + 588: 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 + 589: 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 + 590: 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 + 591: 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 + 592: 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 + 593: 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 + 594: 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 + 595: 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 + 596: 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 + 597: 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 + 598: 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 + 599: 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 + 600: 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 + 601: 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 + 602: 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 + 603: 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 + 604: 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 + 605: 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 + 606: 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 + 607: 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 + 608: 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 + 609: 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 + 610: 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 + 611: 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 + 612: 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 + 613: 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 + 614: 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 + 615: 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 + 616: 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 + 617: 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 + 618: 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 + 619: 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 + 620: 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 + 621: 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 + 622: 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 + 623: 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 + 624: 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 + 625: 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 + 626: 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 + 627: 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 + 628: 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 + 629: 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 + 630: 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 + 631: 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 + 632: 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 + 633: 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 + 634: 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 + 635: 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 + 636: 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 + 637: 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 + 638: 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 + 639: 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 + 640: 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 + 641: 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 + 642: 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 + 643: 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 + 644: 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 + 645: 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 + 646: 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 + 647: 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 + 648: 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 + 649: 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 + 650: 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 + 651: 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 + 652: 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 + 653: 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 + 654: 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 + 655: 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 + 656: 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 + 657: 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 + 658: 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 + 659: 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 + 660: 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 + 661: 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 + 662: 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 + 663: 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 + 664: 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 + 665: 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 + 666: 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 + 667: 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 + 668: 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 + 669: 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 + 670: 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 + 671: 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 + 672: 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 + 673: 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 + 674: 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 + 675: 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 + 676: 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 + 677: 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 + 678: 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 + 679: 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 + 680: 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 + 681: 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 + 682: 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 + 683: 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 + 684: 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 + 685: 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 + 686: 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 + 687: 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 + 688: 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 + 689: 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 + 690: 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 + 691: 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 + 692: 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 + 693: 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 + 694: 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 + 695: 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 + 696: 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 + 697: 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 + 698: 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 + 699: 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 + 700: 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 + 701: 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 + 702: 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 + 703: 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 + 704: 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 + 705: 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 + 706: 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 + 707: 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 + 708: 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 + 709: 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 + 710: 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 + 711: 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 + 712: 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 + 713: 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 + 714: 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 + 715: 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 + 716: 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 + 717: 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 + 718: 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 + 719: 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 + 720: 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 + 721: 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 + 722: 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 + 723: 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 + 724: 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 + 725: 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 + 726: 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 + 727: 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 + 728: 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 + 729: 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 + 730: 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 + 731: 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 + 732: 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 + 733: 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 + 734: 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 + 735: 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 + 736: 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 + 737: 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 + 738: 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 + 739: 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 + 740: 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 + 741: 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 + 742: 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 + 743: 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 + 744: 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 + 745: 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 + 746: 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 + 747: 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 + 748: 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 + 749: 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 + 750: 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 + 751: 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 + 752: 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 + 753: 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 + 754: 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 + 755: 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 + 756: 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 + 757: 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 + 758: 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 + 759: 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 + 760: 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 + 761: 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 + 762: 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 + 763: 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 + 764: 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 + 765: 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 + 766: 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 + 767: 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 + 768: 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 + 769: 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 + 770: 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 + 771: 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 + 772: 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 + 773: 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 + 774: 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 + 775: 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 + 776: 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 + 777: 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 + 778: 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 + 779: 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 + 780: 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 + 781: 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 + 782: 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 + 783: 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 + 784: 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 + 785: 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 + 786: 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 + 787: 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 + 788: 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 + 789: 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 + 790: 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 + 791: 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 + 792: 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 + 793: 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 + 794: 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 + 795: 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 + 796: 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 + 797: 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 + 798: 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 + 799: 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 + 800: 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 + 801: 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 + 802: 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 + 803: 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 + 804: 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 + 805: 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 + 806: 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 + 807: 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 + 808: 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 + 809: 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 + 810: 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 + 811: 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 + 812: 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 + 813: 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 + 814: 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 + 815: 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 + 816: 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 + 817: 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 + 818: 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 + 819: 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 + 820: 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 + 821: 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 + 822: 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 + 823: 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 + 824: 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 + 825: 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 + 826: 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 + 827: 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 + 828: 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 + 829: 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 + 830: 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 + 831: 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 + 832: 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 + 833: 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 + 834: 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 + 835: 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 + 836: 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 + 837: 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 + 838: 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 + 839: 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 + 840: 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 + 841: 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 + 842: 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 + 843: 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 + 844: 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 + 845: 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 + 846: 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 + 847: 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 + 848: 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 + 849: 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 + 850: 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 + 851: 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 + 852: 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 + 853: 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 + 854: 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 + 855: 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 + 856: 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 + 857: 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 + 858: 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 + 859: 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 + 860: 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 + 861: 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 + 862: 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 + 863: 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 + 864: 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 + 865: 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 + 866: 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 + 867: 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 + 868: 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 + 869: 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 + 870: 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 + 871: 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 + 872: 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 + 873: 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 + 874: 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 + 875: 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 + 876: 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 + 877: 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 + 878: 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 + 879: 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 + 880: 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 + 881: 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 + 882: 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 + 883: 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 + 884: 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 + 885: 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 + 886: 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 + 887: 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 + 888: 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 + 889: 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 + 890: 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 + 891: 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 + 892: 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 + 893: 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 + 894: 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 + 895: 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 + 896: 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 + 897: 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 + 898: 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 + 899: 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 + 900: 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 + 901: 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 + 902: 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 + 903: 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 + 904: 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 + 905: 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 + 906: 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 + 907: 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 + 908: 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 + 909: 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 + 910: 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 + 911: 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 + 912: 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 + 913: 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 + 914: 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 + 915: 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 + 916: 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 + 917: 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 + 918: 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 + 919: 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 + 920: 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 + 921: 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 + 922: 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 + 923: 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 + 924: 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 + 925: 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 + 926: 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 + 927: 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 + 928: 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 + 929: 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 + 930: 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 + 931: 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 + 932: 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 + 933: 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 + 934: 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 + 935: 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 + 936: 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 + 937: 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 + 938: 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 + 939: 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 + 940: 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 + 941: 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 + 942: 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 + 943: 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 + 944: 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 + 945: 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 + 946: 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 + 947: 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 + 948: 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 + 949: 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 + 950: 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 + 951: 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 + 952: 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 + 953: 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 + 954: 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 + 955: 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 + 956: 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 + 957: 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 + 958: 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 + 959: 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 + 960: 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 + 961: 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 + 962: 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 + 963: 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 + 964: 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 + 965: 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 + 966: 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 + 967: 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 + 968: 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 + 969: 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 + 970: 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 + 971: 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 + 972: 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 + 973: 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 + 974: 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 + 975: 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 + 976: 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 + 977: 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 + 978: 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 + 979: 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 + 980: 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 + 981: 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 + 982: 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 + 983: 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 + 984: 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 + 985: 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 + 986: 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 + 987: 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 + 988: 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 + 989: 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 + 990: 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 + 991: 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 + 992: 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 + 993: 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 + 994: 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 + 995: 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 + 996: 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 + 997: 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 + 998: 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 + 999: 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 + 1000: 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 + 1001: 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 + 1002: 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 + 1003: 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 + 1004: 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 + 1005: 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 + 1006: 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 + 1007: 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 + 1008: 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 + 1009: 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 + 1010: 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 + 1011: 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 + 1012: 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 + 1013: 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 + 1014: 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 + 1015: 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 + 1016: 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 + 1017: 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 + 1018: 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 + 1019: 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 + 1020: 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 + 1021: 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 + 1022: 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 + 1023: 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 + 1024: 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 + 1025: 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 + 1026: 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 + 1027: 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 + 1028: 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 + 1029: 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 + 1030: 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 + 1031: 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 + 1032: 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 + 1033: 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 + 1034: 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 + 1035: 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 + 1036: 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 + 1037: 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 + 1038: 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 + 1039: 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 + 1040: 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 + 1041: 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 + 1042: 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 + 1043: 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 + 1044: 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 + 1045: 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 + 1046: 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 + 1047: 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 + 1048: 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 + 1049: 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 + 1050: 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 + 1051: 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 + 1052: 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 + 1053: 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 + 1054: 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 + 1055: 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 + 1056: 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 + 1057: 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 + 1058: 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 + 1059: 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 + 1060: 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 + 1061: 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 + 1062: 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 + 1063: 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 + 1064: 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 + 1065: 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 + 1066: 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 + 1067: 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 + 1068: 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 + 1069: 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 + 1070: 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 + 1071: 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 + 1072: 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 + 1073: 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 + 1074: 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 + 1075: 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 + 1076: 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 + 1077: 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 + 1078: 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 + 1079: 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 + 1080: 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 + 1081: 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 + 1082: 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 + 1083: 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 + 1084: 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 + 1085: 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 + 1086: 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 + 1087: 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 + 1088: 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 + 1089: 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 + 1090: 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 + 1091: 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 + 1092: 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 + 1093: 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 + 1094: 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 + 1095: 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 + 1096: 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 + 1097: 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 + 1098: 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 + 1099: 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 + 1100: 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 + 1101: 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 + 1102: 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 + 1103: 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 + 1104: 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 + 1105: 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 + 1106: 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 + 1107: 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 + 1108: 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 + 1109: 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 + 1110: 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 + 1111: 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 + 1112: 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 + 1113: 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 + 1114: 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 + 1115: 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 + 1116: 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 + 1117: 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 + 1118: 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 + 1119: 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 + 1120: 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 + 1121: 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 + 1122: 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 + 1123: 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 + 1124: 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 + 1125: 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 + 1126: 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 + 1127: 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 + 1128: 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 + 1129: 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 + 1130: 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 + 1131: 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 + 1132: 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 + 1133: 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 + 1134: 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 + 1135: 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 + 1136: 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 + 1137: 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 + 1138: 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 + 1139: 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 + 1140: 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 + 1141: 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 + 1142: 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 + 1143: 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 + 1144: 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 + 1145: 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 + 1146: 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 + 1147: 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 + 1148: 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 + 1149: 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 + 1150: 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 + 1151: 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 + 1152: 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 + 1153: 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 + 1154: 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 + 1155: 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 + 1156: 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 + 1157: 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 + 1158: 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 + 1159: 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 + 1160: 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 + 1161: 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 + 1162: 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 + 1163: 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 + 1164: 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 + 1165: 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 + 1166: 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 + 1167: 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 + 1168: 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 + 1169: 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 + 1170: 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 + 1171: 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 + 1172: 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 + 1173: 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 + 1174: 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 + 1175: 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 + 1176: 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 + 1177: 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 + 1178: 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 + 1179: 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 + 1180: 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 + 1181: 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 + 1182: 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 + 1183: 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 + 1184: 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 + 1185: 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 + 1186: 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 + 1187: 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 + 1188: 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 + 1189: 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 + 1190: 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 + 1191: 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 + 1192: 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 + 1193: 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 + 1194: 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 + 1195: 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 + 1196: 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 + 1197: 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 + 1198: 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 + 1199: 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 + 1200: 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 + 1201: 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 + 1202: 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 + 1203: 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 + 1204: 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 + 1205: 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 + 1206: 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 + 1207: 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 + 1208: 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 + 1209: 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 + 1210: 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 + 1211: 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 + 1212: 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 + 1213: 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 + 1214: 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 + 1215: 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 + 1216: 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 + 1217: 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 + 1218: 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 + 1219: 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 + 1220: 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 + 1221: 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 + 1222: 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 + 1223: 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 + 1224: 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 + 1225: 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 + 1226: 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 + 1227: 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 + 1228: 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 + 1229: 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 + 1230: 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 + 1231: 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 + 1232: 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 + 1233: 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 + 1234: 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 + 1235: 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 + 1236: 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 + 1237: 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 + 1238: 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 + 1239: 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 + 1240: 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 + 1241: 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 + 1242: 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 + 1243: 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 + 1244: 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 + 1245: 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 + 1246: 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 + 1247: 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 + 1248: 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 + 1249: 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 + 1250: 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 + 1251: 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 + 1252: 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 + 1253: 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 + 1254: 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 + 1255: 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 + 1256: 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 + 1257: 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 + 1258: 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 + 1259: 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 + 1260: 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 + 1261: 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 + 1262: 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 + 1263: 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 + 1264: 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 + 1265: 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 + 1266: 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 + 1267: 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 + 1268: 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 + 1269: 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 + 1270: 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 + 1271: 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 + 1272: 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 + 1273: 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 + 1274: 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 + 1275: 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 + 1276: 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 + 1277: 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 + 1278: 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 + 1279: 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 + 1280: 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 + 1281: 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 + 1282: 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 + 1283: 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 + 1284: 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 + 1285: 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 + 1286: 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 + 1287: 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 + 1288: 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 + 1289: 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 + 1290: 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 + 1291: 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 + 1292: 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 + 1293: 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 + 1294: 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 + 1295: 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 + 1296: 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 + 1297: 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 + 1298: 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 + 1299: 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 + 1300: 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 + 1301: 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 + 1302: 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 + 1303: 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 + 1304: 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 + 1305: 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 + 1306: 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 + 1307: 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 + 1308: 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 + 1309: 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 + 1310: 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 + 1311: 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 + 1312: 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 + 1313: 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 + 1314: 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 + 1315: 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 + 1316: 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 + 1317: 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 + 1318: 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 + 1319: 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 + 1320: 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 + 1321: 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 + 1322: 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 + 1323: 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 + 1324: 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 + 1325: 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 + 1326: 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 + 1327: 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 + 1328: 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 + 1329: 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 + 1330: 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 + 1331: 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 + 1332: 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 + 1333: 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 + 1334: 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 + 1335: 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 + 1336: 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 + 1337: 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 + 1338: 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 + 1339: 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 + 1340: 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 + 1341: 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 + 1342: 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 + 1343: 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 + 1344: 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 + 1345: 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 + 1346: 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 + 1347: 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 + 1348: 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 + 1349: 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 + 1350: 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 + 1351: 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 + 1352: 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 + 1353: 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 + 1354: 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 + 1355: 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 + 1356: 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 + 1357: 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 + 1358: 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 + 1359: 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 + 1360: 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 + 1361: 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 + 1362: 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 + 1363: 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 + 1364: 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 + 1365: 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 + 1366: 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 + 1367: 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 + 1368: 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 + 1369: 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 + 1370: 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 + 1371: 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 + 1372: 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 + 1373: 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 + 1374: 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 + 1375: 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 + 1376: 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 + 1377: 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 + 1378: 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 + 1379: 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 + 1380: 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 + 1381: 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 + 1382: 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 + 1383: 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 + 1384: 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 + 1385: 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 + 1386: 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 + 1387: 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 + 1388: 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 + 1389: 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 + 1390: 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 + 1391: 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 + 1392: 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 + 1393: 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 + 1394: 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 + 1395: 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 + 1396: 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 + 1397: 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 + 1398: 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 + 1399: 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 + 1400: 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 + 1401: 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 + 1402: 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 + 1403: 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 + 1404: 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 + 1405: 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 + 1406: 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 + 1407: 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 + 1408: 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 + 1409: 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 + 1410: 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 + 1411: 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 + 1412: 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 + 1413: 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 + 1414: 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 + 1415: 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 + 1416: 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 + 1417: 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 + 1418: 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 + 1419: 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 + 1420: 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 + 1421: 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 + 1422: 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 + 1423: 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 + 1424: 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 + 1425: 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 + 1426: 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 + 1427: 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 + 1428: 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 + 1429: 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 + 1430: 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 + 1431: 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 + 1432: 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 + 1433: 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 + 1434: 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 + 1435: 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 + 1436: 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 + 1437: 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 + 1438: 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 + 1439: 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 + 1440: 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 + 1441: 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 + 1442: 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 + 1443: 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 + 1444: 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 + 1445: 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 + 1446: 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 + 1447: 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 + 1448: 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 + 1449: 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 + 1450: 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 + 1451: 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 + 1452: 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 + 1453: 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 + 1454: 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 + 1455: 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 + 1456: 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 + 1457: 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 + 1458: 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 + 1459: 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 + 1460: 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 + 1461: 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 + 1462: 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 + 1463: 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 + 1464: 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 + 1465: 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 + 1466: 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 + 1467: 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 + 1468: 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 + 1469: 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 + 1470: 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 + 1471: 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 + 1472: 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 + 1473: 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 + 1474: 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 + 1475: 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 + 1476: 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 + 1477: 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 + 1478: 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 + 1479: 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 + 1480: 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 + 1481: 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 + 1482: 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 + 1483: 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 + 1484: 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 + 1485: 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 + 1486: 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 + 1487: 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 + 1488: 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 + 1489: 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 + 1490: 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 + 1491: 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 + 1492: 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 + 1493: 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 + 1494: 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 + 1495: 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 + 1496: 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 + 1497: 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 + 1498: 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 + 1499: 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 + 1500: 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 + 1501: 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 + 1502: 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 + 1503: 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 + 1504: 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 + 1505: 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 + 1506: 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 + 1507: 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 + 1508: 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 + 1509: 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 + 1510: 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 + 1511: 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 + 1512: 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 + 1513: 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 + 1514: 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 + 1515: 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 + 1516: 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 + 1517: 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 + 1518: 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 + 1519: 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 + 1520: 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 + 1521: 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 + 1522: 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 + 1523: 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 + 1524: 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 + 1525: 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 + 1526: 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 + 1527: 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 + 1528: 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 + 1529: 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 + 1530: 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 + 1531: 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 + 1532: 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 + 1533: 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 + 1534: 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 + 1535: 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 + 1536: 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 + 1537: 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 + 1538: 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 + 1539: 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 + 1540: 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 + 1541: 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 + 1542: 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 + 1543: 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 + 1544: 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 + 1545: 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 + 1546: 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 + 1547: 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 + 1548: 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 + 1549: 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 + 1550: 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 + 1551: 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 + 1552: 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 + 1553: 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 + 1554: 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 + 1555: 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 + 1556: 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 + 1557: 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 + 1558: 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 + 1559: 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 + 1560: 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 + 1561: 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 + 1562: 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 + 1563: 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 + 1564: 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 + 1565: 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 + 1566: 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 + 1567: 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 + 1568: 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 + 1569: 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 + 1570: 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 + 1571: 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 + 1572: 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 + 1573: 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 + 1574: 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 + 1575: 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 + 1576: 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 + 1577: 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 + 1578: 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 + 1579: 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 + 1580: 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 + 1581: 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 + 1582: 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 + 1583: 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 + 1584: 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 + 1585: 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 + 1586: 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 + 1587: 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 + 1588: 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 + 1589: 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 + 1590: 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 + 1591: 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 + 1592: 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 + 1593: 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 + 1594: 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 + 1595: 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 + 1596: 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 + 1597: 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 + 1598: 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 + 1599: 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 + 1600: 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 + 1601: 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 + 1602: 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 + 1603: 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 + 1604: 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 + 1605: 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 + 1606: 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 + 1607: 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 + 1608: 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 + 1609: 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 + 1610: 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 + 1611: 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 + 1612: 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 + 1613: 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 + 1614: 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 + 1615: 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 + 1616: 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 + 1617: 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 + 1618: 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 + 1619: 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 + 1620: 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 + 1621: 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 + 1622: 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 + 1623: 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 + 1624: 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 + 1625: 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 + 1626: 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 + 1627: 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 + 1628: 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 + 1629: 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 + 1630: 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 + 1631: 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 + 1632: 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 + 1633: 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 + 1634: 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 + 1635: 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 + 1636: 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 + 1637: 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 + 1638: 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 + 1639: 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 + 1640: 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 + 1641: 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 + 1642: 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 + 1643: 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 + 1644: 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 + 1645: 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 + 1646: 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 + 1647: 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 + 1648: 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 + 1649: 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 + 1650: 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 + 1651: 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 + 1652: 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 + 1653: 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 + 1654: 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 + 1655: 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 + 1656: 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 + 1657: 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 + 1658: 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 + 1659: 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 + 1660: 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 + 1661: 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 + 1662: 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 + 1663: 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 + 1664: 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 + 1665: 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 + 1666: 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 + 1667: 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 + 1668: 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 + 1669: 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 + 1670: 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 + 1671: 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 + 1672: 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 + 1673: 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 + 1674: 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 + 1675: 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 + 1676: 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 + 1677: 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 + 1678: 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 + 1679: 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 + 1680: 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 + 1681: 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 + 1682: 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 + 1683: 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 + 1684: 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 + 1685: 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 + 1686: 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 + 1687: 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 + 1688: 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 + 1689: 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 + 1690: 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 + 1691: 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 + 1692: 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 + 1693: 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 + 1694: 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 + 1695: 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 + 1696: 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 + 1697: 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 + 1698: 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 + 1699: 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 + 1700: 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 + 1701: 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 + 1702: 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 + 1703: 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 + 1704: 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 + 1705: 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 + 1706: 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 + 1707: 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 + 1708: 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 + 1709: 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 + 1710: 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 + 1711: 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 + 1712: 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 + 1713: 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 + 1714: 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 + 1715: 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 + 1716: 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 + 1717: 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 + 1718: 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 + 1719: 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 + 1720: 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 + 1721: 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 + 1722: 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 + 1723: 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 + 1724: 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 + 1725: 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 + 1726: 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 + 1727: 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 + 1728: 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 + 1729: 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 + 1730: 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 + 1731: 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 + 1732: 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 + 1733: 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 + 1734: 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 + 1735: 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 + 1736: 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 + 1737: 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 + 1738: 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 + 1739: 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 + 1740: 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 + 1741: 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 + 1742: 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 + 1743: 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 + 1744: 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 + 1745: 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 + 1746: 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 + 1747: 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 + 1748: 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 + 1749: 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 + 1750: 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 + 1751: 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 + 1752: 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 + 1753: 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 + 1754: 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 + 1755: 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 + 1756: 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 + 1757: 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 + 1758: 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 + 1759: 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 + 1760: 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 + 1761: 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 + 1762: 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 + 1763: 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 + 1764: 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 + 1765: 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 + 1766: 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 + 1767: 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 + 1768: 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 + 1769: 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 + 1770: 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 + 1771: 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 + 1772: 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 + 1773: 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 + 1774: 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 + 1775: 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 + 1776: 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 + 1777: 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 + 1778: 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 + 1779: 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 + 1780: 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 + 1781: 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 + 1782: 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 + 1783: 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 + 1784: 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 + 1785: 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 + 1786: 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 + 1787: 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 + 1788: 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 + 1789: 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 + 1790: 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 + 1791: 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 + 1792: 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 + 1793: 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 + 1794: 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 + 1795: 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 + 1796: 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 + 1797: 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 + 1798: 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 + 1799: 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 + 1800: 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 + 1801: 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 + 1802: 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 + 1803: 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 + 1804: 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 + 1805: 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 + 1806: 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 + 1807: 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 + 1808: 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 + 1809: 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 + 1810: 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 + 1811: 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 + 1812: 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 + 1813: 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 + 1814: 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 + 1815: 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 + 1816: 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 + 1817: 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 + 1818: 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 + 1819: 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 + 1820: 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 + 1821: 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 + 1822: 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 + 1823: 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 + 1824: 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 + 1825: 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 + 1826: 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 + 1827: 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 + 1828: 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 + 1829: 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 + 1830: 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 + 1831: 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 + 1832: 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 + 1833: 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 + 1834: 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 + 1835: 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 + 1836: 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 + 1837: 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 + 1838: 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 + 1839: 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 + 1840: 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 + 1841: 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 + 1842: 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 + 1843: 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 + 1844: 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 + 1845: 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 + 1846: 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 + 1847: 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 + 1848: 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 + 1849: 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 + 1850: 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 + 1851: 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 + 1852: 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 + 1853: 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 + 1854: 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 + 1855: 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 + 1856: 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 + 1857: 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 + 1858: 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 + 1859: 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 + 1860: 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 + 1861: 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 + 1862: 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 + 1863: 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 + 1864: 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 + 1865: 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 + 1866: 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 + 1867: 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 + 1868: 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 + 1869: 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 + 1870: 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 + 1871: 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 + 1872: 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 + 1873: 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 + 1874: 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 + 1875: 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 + 1876: 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 + 1877: 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 + 1878: 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 + 1879: 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 + 1880: 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 + 1881: 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 + 1882: 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 + 1883: 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 + 1884: 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 + 1885: 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 + 1886: 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 + 1887: 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 + 1888: 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 + 1889: 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 + 1890: 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 + 1891: 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 + 1892: 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 + 1893: 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 + 1894: 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 + 1895: 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 + 1896: 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 + 1897: 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 + 1898: 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 + 1899: 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 + 1900: 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 + 1901: 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 + 1902: 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 + 1903: 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 + 1904: 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 + 1905: 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 + 1906: 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 + 1907: 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 + 1908: 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 + 1909: 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 + 1910: 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 + 1911: 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 + 1912: 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 + 1913: 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 + 1914: 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 + 1915: 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 + 1916: 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 + 1917: 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 + 1918: 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 + 1919: 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 + 1920: 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 + 1921: 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 + 1922: 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 + 1923: 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 + 1924: 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 + 1925: 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 + 1926: 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 + 1927: 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 + 1928: 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 + 1929: 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 + 1930: 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 + 1931: 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 + 1932: 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 + 1933: 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 + 1934: 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 + 1935: 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 + 1936: 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 + 1937: 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 + 1938: 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 + 1939: 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 + 1940: 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 + 1941: 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 + 1942: 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 + 1943: 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 + 1944: 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 + 1945: 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 + 1946: 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 + 1947: 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 + 1948: 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 + 1949: 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 + 1950: 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 + 1951: 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 + 1952: 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 + 1953: 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 + 1954: 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 + 1955: 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 + 1956: 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 + 1957: 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 + 1958: 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 + 1959: 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 + 1960: 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 + 1961: 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 + 1962: 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 + 1963: 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 + 1964: 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 + 1965: 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 + 1966: 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 + 1967: 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 + 1968: 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 + 1969: 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 + 1970: 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 + 1971: 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 + 1972: 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 + 1973: 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 + 1974: 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 + 1975: 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 + 1976: 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 + 1977: 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 + 1978: 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 + 1979: 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 + 1980: 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 + 1981: 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 + 1982: 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 + 1983: 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 + 1984: 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 + 1985: 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 + 1986: 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 + 1987: 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 + 1988: 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 + 1989: 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 + 1990: 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 + 1991: 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 + 1992: 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 + 1993: 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 + 1994: 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 + 1995: 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 + 1996: 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 + 1997: 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 + 1998: 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 + 1999: 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 + 2000: 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2001: 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2002: 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2003: 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2004: 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2005: 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2006: 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2007: 1993 1994 1995 1996 1997 1998 1999 2000 + 2008: 1994 1995 1996 1997 1998 1999 2000 + 2009: 1995 1996 1997 1998 1999 2000 + 2010: 1996 1997 1998 1999 2000 + 2011: 1997 1998 1999 2000 + 2012: 1998 1999 2000 + 2013: 1999 2000 + 2014: 2000 Done. Index: m3-sys/m3tests/src/p0/p007/Main.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3tests/src/p0/p007/Main.m3,v retrieving revision 1.3 retrieving revision 1.3.2.1 diff -u -u -r1.3 -r1.3.2.1 --- m3-sys/m3tests/src/p0/p007/Main.m3 13 Mar 2008 15:55:58 -0000 1.3 +++ m3-sys/m3tests/src/p0/p007/Main.m3 27 Sep 2009 12:35:09 -0000 1.3.2.1 @@ -6,154 +6,74 @@ UNSAFE MODULE Main; -IMPORT Thread, (* ThreadF, *) RTIO; +IMPORT Thread; +FROM RTIO IMPORT PutInt, PutText, Flush; TYPE T = Thread.Closure BRANDED "p007 T" OBJECT - id: INTEGER; - limit: INTEGER := 15; - thread: Thread.T; - OVERRIDES - apply := Task; END; - - A = MUTEX BRANDED "p007 common" OBJECT - first, last, next, limit: INTEGER; - done: Thread.Condition; - count: INTEGER := 0; - METHODS - Wait (c: Thread.Condition) := Thread.Wait; END; + id: INTEGER; + limit: INTEGER := 15; + OVERRIDES + apply := Task; + END; VAR - com: A; - stop: Thread.Condition; - iolock: MUTEX; + first, last, next: INTEGER := 1; + limit := 2000; + c := NEW(Thread.Condition); + m := NEW(Thread.Mutex); -PROCEDURE Txt (t: TEXT) = - BEGIN - (* ThreadF.SuspendOthers (); *) - LOCK iolock DO - RTIO.PutText (t); - END; - (* ThreadF.ResumeOthers (); *) - END Txt; -PROCEDURE Int (i: INTEGER; width: INTEGER; pad: TEXT) = +CONST Pad = 5; + +VAR count := 0; +PROCEDURE Inc() = BEGIN - LOCK iolock DO - RTIO.PutInt (i, width); - RTIO.PutText (pad); - END; - END Int; + INC(count); + PutText("\n"); + PutInt(count, Pad); + PutText(": "); + Flush(); + END Inc; -(******* PROCEDURE Task (self: T) : REFANY RAISES {} = -VAR next: T; BEGIN LOOP - TRY - LOCK com DO - WHILE (com.next # self.id) DO - com.Wait (com.done); END; - - Int (self.id, 0, "#\n"); - DEC (self.limit); - - IF self.limit <= 0 THEN - IF (self.id = com.limit) THEN - com.next := 0; - ELSE - com.first := self.id + 1; - com.next := com.first; END; - RETURN NIL; - - ELSIF (self.id = com.last) THEN - INC (com.count); - (*Txt ("\n");*) Int (com.count, 5, "####\n"); - IF (self.id # com.limit) THEN - com.last := self.id + 1; - next := NEW (T, id := com.last, limit := 15); - next.thread := Thread.Fork (next); - END; - com.next := com.first; - ELSE - com.next := self.id + 1; - END; END; - FINALLY - Thread.Broadcast (com.done); - END; END; -END Task; -*****) - -PROCEDURE Task (self: T) : REFANY RAISES {} = -VAR next: T; done := FALSE; -BEGIN - WHILE NOT done DO - LOCK com DO - WHILE (com.next # self.id) DO com.Wait (com.done); END; - - Int (self.id, 0, " "); + LOCK m DO + WHILE next # self.id DO Thread.Wait (m, c); END; + PutInt(self.id, Pad); DEC (self.limit); - IF self.limit <= 0 THEN - IF (self.id = com.limit) THEN - com.next := 0; + IF self.id = limit THEN + next := 0; ELSE - com.first := self.id + 1; - com.next := com.first; + first := self.id + 1; + next := first; END; - done := TRUE; - - ELSIF (self.id = com.last) THEN - INC (com.count); - Txt ("\n"); Int (com.count, 5, ": "); - IF (self.id # com.limit) THEN - com.last := self.id + 1; - next := NEW (T, id := com.last, limit := 15); - next.thread := Thread.Fork (next); + Thread.Broadcast(c); + RETURN NIL; + ELSIF self.id = last THEN + Inc(); + IF self.id # limit THEN + last := self.id + 1; + EVAL Thread.Fork(NEW(T, id := last, limit := 15)); END; - com.next := com.first; + next := first; + Thread.Broadcast(c); ELSE - com.next := self.id + 1; + next := self.id + 1; + Thread.Broadcast(c); END; - Thread.Broadcast (com.done); - END; (*LOCK*) + END; END; - RETURN NIL; END Task; -VAR - t: T; - th: Thread.T; - BEGIN - -(* Thread.MinDefaultStackSize (20000); *) - -iolock := NEW (MUTEX); -stop := NEW (Thread.Condition); - -com := NEW (A, limit := 2000); -com.done := NEW (Thread.Condition); -com.first := 1; -com.next := 1; -com.last := 1; -t := NEW (T, id := 1, limit := 15); - -INC (com.count); -Int (com.count, 5, ": "); - -th := Thread.Fork (t); -t.thread := th; -LOCK com DO - Thread.Broadcast (com.done); -END; - -LOOP - LOCK com DO - WHILE (com.next # 0) DO - com.Wait (com.done); END; - EXIT; END; END; - -Txt("\nDone.\n"); -RTIO.Flush (); - + LOCK m DO + Inc(); + EVAL Thread.Fork(NEW(T, id := 1, limit := 15)); + Thread.Broadcast(c); + WHILE next # 0 DO Thread.Wait(m, c) END; + PutText("\nDone.\n"); + Flush(); + END; END Main. Index: m3-sys/m3tests/src/p0/p007/stderr.pgm =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3tests/src/p0/p007/stderr.pgm,v retrieving revision 1.1 retrieving revision 1.1.8.1 diff -u -u -r1.1 -r1.1.8.1 --- m3-sys/m3tests/src/p0/p007/stderr.pgm 8 Mar 2003 22:36:16 -0000 1.1 +++ m3-sys/m3tests/src/p0/p007/stderr.pgm 27 Sep 2009 12:39:19 -0000 1.1.8.1 @@ -1,2015 +1,2016 @@ - 1: 1 - 2: 1 2 - 3: 1 2 3 - 4: 1 2 3 4 - 5: 1 2 3 4 5 - 6: 1 2 3 4 5 6 - 7: 1 2 3 4 5 6 7 - 8: 1 2 3 4 5 6 7 8 - 9: 1 2 3 4 5 6 7 8 9 - 10: 1 2 3 4 5 6 7 8 9 10 - 11: 1 2 3 4 5 6 7 8 9 10 11 - 12: 1 2 3 4 5 6 7 8 9 10 11 12 - 13: 1 2 3 4 5 6 7 8 9 10 11 12 13 - 14: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 - 15: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 - 16: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 - 17: 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 - 18: 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 - 19: 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 - 20: 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 - 21: 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 - 22: 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 - 23: 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 - 24: 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 - 25: 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 - 26: 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 - 27: 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 - 28: 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 - 29: 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 - 30: 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 - 31: 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - 32: 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 - 33: 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 - 34: 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 - 35: 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 - 36: 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 - 37: 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 - 38: 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 - 39: 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 - 40: 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 - 41: 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 - 42: 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 - 43: 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 - 44: 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 - 45: 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 - 46: 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 - 47: 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 - 48: 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 - 49: 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 - 50: 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 - 51: 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 - 52: 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 - 53: 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 - 54: 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 - 55: 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 - 56: 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 - 57: 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 - 58: 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 - 59: 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 - 60: 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 - 61: 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 - 62: 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 - 63: 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 - 64: 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 - 65: 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 - 66: 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 - 67: 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 - 68: 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 - 69: 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 - 70: 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 - 71: 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 - 72: 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 - 73: 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 - 74: 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 - 75: 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 - 76: 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 - 77: 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 - 78: 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 - 79: 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 - 80: 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 - 81: 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 - 82: 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 - 83: 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 - 84: 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 - 85: 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 - 86: 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 - 87: 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 - 88: 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 - 89: 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 - 90: 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 - 91: 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 - 92: 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 - 93: 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 - 94: 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 - 95: 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 - 96: 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 - 97: 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 - 98: 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 - 99: 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 - 100: 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 - 101: 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 - 102: 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 - 103: 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 - 104: 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 - 105: 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 - 106: 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 - 107: 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 - 108: 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 - 109: 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 - 110: 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 - 111: 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 - 112: 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 - 113: 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 - 114: 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 - 115: 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 - 116: 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 - 117: 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 - 118: 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 - 119: 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 - 120: 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 - 121: 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 - 122: 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 - 123: 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 - 124: 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 - 125: 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 - 126: 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 - 127: 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 - 128: 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 - 129: 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 - 130: 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 - 131: 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 - 132: 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 - 133: 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 - 134: 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 - 135: 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 - 136: 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 - 137: 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 - 138: 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 - 139: 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 - 140: 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 - 141: 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 - 142: 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 - 143: 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 - 144: 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 - 145: 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 - 146: 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 - 147: 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 - 148: 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 - 149: 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 - 150: 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 - 151: 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 - 152: 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 - 153: 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 - 154: 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 - 155: 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 - 156: 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 - 157: 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 - 158: 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 - 159: 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 - 160: 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 - 161: 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 - 162: 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 - 163: 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 - 164: 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 - 165: 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 - 166: 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 - 167: 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 - 168: 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 - 169: 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 - 170: 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 - 171: 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 - 172: 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 - 173: 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 - 174: 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 - 175: 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 - 176: 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 - 177: 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 - 178: 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 - 179: 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 - 180: 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 - 181: 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 - 182: 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 - 183: 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 - 184: 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 - 185: 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 - 186: 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 - 187: 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 - 188: 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 - 189: 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 - 190: 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 - 191: 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 - 192: 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 - 193: 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 - 194: 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 - 195: 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 - 196: 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 - 197: 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 - 198: 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 - 199: 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 - 200: 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 - 201: 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 - 202: 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 - 203: 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 - 204: 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 - 205: 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 - 206: 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 - 207: 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 - 208: 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 - 209: 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 - 210: 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 - 211: 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 - 212: 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 - 213: 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 - 214: 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 - 215: 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 - 216: 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 - 217: 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 - 218: 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 - 219: 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 - 220: 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 - 221: 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 - 222: 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 - 223: 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 - 224: 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 - 225: 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 - 226: 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 - 227: 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 - 228: 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 - 229: 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 - 230: 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 - 231: 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 - 232: 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 - 233: 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 - 234: 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 - 235: 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 - 236: 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 - 237: 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 - 238: 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 - 239: 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 - 240: 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 - 241: 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 - 242: 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 - 243: 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 - 244: 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 - 245: 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 - 246: 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 - 247: 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 - 248: 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 - 249: 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 - 250: 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 - 251: 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 - 252: 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 - 253: 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 - 254: 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 - 255: 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 - 256: 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 - 257: 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 - 258: 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 - 259: 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 - 260: 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 - 261: 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 - 262: 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 - 263: 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 - 264: 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 - 265: 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 - 266: 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 - 267: 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 - 268: 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 - 269: 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 - 270: 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 - 271: 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 - 272: 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 - 273: 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 - 274: 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 - 275: 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 - 276: 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 - 277: 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 - 278: 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 - 279: 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 - 280: 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 - 281: 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 - 282: 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 - 283: 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 - 284: 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 - 285: 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 - 286: 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 - 287: 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 - 288: 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 - 289: 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 - 290: 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 - 291: 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 - 292: 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 - 293: 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 - 294: 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 - 295: 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 - 296: 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 - 297: 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 - 298: 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 - 299: 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 - 300: 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 - 301: 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 - 302: 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 - 303: 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 - 304: 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 - 305: 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 - 306: 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 - 307: 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 - 308: 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 - 309: 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 - 310: 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 - 311: 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 - 312: 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 - 313: 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 - 314: 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 - 315: 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 - 316: 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 - 317: 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 - 318: 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 - 319: 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 - 320: 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 - 321: 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 - 322: 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 - 323: 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 - 324: 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 - 325: 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 - 326: 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 - 327: 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 - 328: 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 - 329: 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 - 330: 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 - 331: 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 - 332: 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 - 333: 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 - 334: 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 - 335: 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 - 336: 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 - 337: 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 - 338: 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 - 339: 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 - 340: 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 - 341: 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 - 342: 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 - 343: 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 - 344: 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 - 345: 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 - 346: 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 - 347: 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 - 348: 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 - 349: 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 - 350: 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 - 351: 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 - 352: 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 - 353: 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 - 354: 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 - 355: 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 - 356: 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 - 357: 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 - 358: 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 - 359: 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 - 360: 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 - 361: 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 - 362: 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 - 363: 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 - 364: 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 - 365: 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 - 366: 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 - 367: 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 - 368: 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 - 369: 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 - 370: 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 - 371: 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 - 372: 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 - 373: 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 - 374: 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 - 375: 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 - 376: 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 - 377: 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 - 378: 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 - 379: 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 - 380: 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 - 381: 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 - 382: 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 - 383: 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 - 384: 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 - 385: 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 - 386: 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 - 387: 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 - 388: 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 - 389: 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 - 390: 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 - 391: 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 - 392: 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 - 393: 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 - 394: 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 - 395: 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 - 396: 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 - 397: 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 - 398: 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 - 399: 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 - 400: 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 - 401: 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 - 402: 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 - 403: 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 - 404: 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 - 405: 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 - 406: 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 - 407: 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 - 408: 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 - 409: 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 - 410: 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 - 411: 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 - 412: 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 - 413: 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 - 414: 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 - 415: 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 - 416: 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 - 417: 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 - 418: 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 - 419: 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 - 420: 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 - 421: 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 - 422: 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 - 423: 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 - 424: 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 - 425: 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 - 426: 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 - 427: 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 - 428: 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 - 429: 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 - 430: 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 - 431: 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 - 432: 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 - 433: 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 - 434: 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 - 435: 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 - 436: 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 - 437: 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 - 438: 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 - 439: 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 - 440: 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 - 441: 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 - 442: 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 - 443: 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 - 444: 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 - 445: 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 - 446: 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 - 447: 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 - 448: 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 - 449: 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 - 450: 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 - 451: 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 - 452: 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 - 453: 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 - 454: 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 - 455: 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 - 456: 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 - 457: 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 - 458: 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 - 459: 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 - 460: 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 - 461: 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 - 462: 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 - 463: 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 - 464: 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 - 465: 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 - 466: 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 - 467: 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 - 468: 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 - 469: 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 - 470: 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 - 471: 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 - 472: 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 - 473: 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 - 474: 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 - 475: 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 - 476: 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 - 477: 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 - 478: 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 - 479: 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 - 480: 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 - 481: 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 - 482: 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 - 483: 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 - 484: 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 - 485: 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 - 486: 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 - 487: 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 - 488: 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 - 489: 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 - 490: 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 - 491: 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 - 492: 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 - 493: 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 - 494: 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 - 495: 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 - 496: 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 - 497: 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 - 498: 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 - 499: 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 - 500: 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 - 501: 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 - 502: 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 - 503: 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 - 504: 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 - 505: 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 - 506: 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 - 507: 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 - 508: 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 - 509: 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 - 510: 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 - 511: 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 - 512: 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 - 513: 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 - 514: 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 - 515: 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 - 516: 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 - 517: 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 - 518: 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 - 519: 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 - 520: 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 - 521: 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 - 522: 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 - 523: 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 - 524: 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 - 525: 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 - 526: 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 - 527: 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 - 528: 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 - 529: 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 - 530: 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 - 531: 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 - 532: 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 - 533: 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 - 534: 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 - 535: 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 - 536: 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 - 537: 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 - 538: 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 - 539: 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 - 540: 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 - 541: 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 - 542: 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 - 543: 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 - 544: 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 - 545: 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 - 546: 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 - 547: 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 - 548: 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 - 549: 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 - 550: 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 - 551: 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 - 552: 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 - 553: 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 - 554: 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 - 555: 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 - 556: 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 - 557: 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 - 558: 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 - 559: 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 - 560: 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 - 561: 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 - 562: 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 - 563: 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 - 564: 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 - 565: 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 - 566: 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 - 567: 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 - 568: 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 - 569: 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 - 570: 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 - 571: 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 - 572: 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 - 573: 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 - 574: 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 - 575: 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 - 576: 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 - 577: 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 - 578: 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 - 579: 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 - 580: 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 - 581: 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 - 582: 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 - 583: 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 - 584: 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 - 585: 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 - 586: 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 - 587: 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 - 588: 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 - 589: 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 - 590: 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 - 591: 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 - 592: 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 - 593: 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 - 594: 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 - 595: 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 - 596: 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 - 597: 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 - 598: 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 - 599: 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 - 600: 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 - 601: 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 - 602: 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 - 603: 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 - 604: 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 - 605: 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 - 606: 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 - 607: 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 - 608: 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 - 609: 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 - 610: 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 - 611: 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 - 612: 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 - 613: 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 - 614: 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 - 615: 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 - 616: 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 - 617: 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 - 618: 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 - 619: 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 - 620: 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 - 621: 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 - 622: 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 - 623: 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 - 624: 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 - 625: 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 - 626: 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 - 627: 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 - 628: 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 - 629: 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 - 630: 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 - 631: 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 - 632: 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 - 633: 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 - 634: 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 - 635: 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 - 636: 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 - 637: 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 - 638: 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 - 639: 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 - 640: 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 - 641: 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 - 642: 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 - 643: 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 - 644: 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 - 645: 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 - 646: 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 - 647: 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 - 648: 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 - 649: 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 - 650: 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 - 651: 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 - 652: 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 - 653: 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 - 654: 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 - 655: 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 - 656: 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 - 657: 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 - 658: 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 - 659: 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 - 660: 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 - 661: 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 - 662: 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 - 663: 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 - 664: 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 - 665: 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 - 666: 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 - 667: 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 - 668: 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 - 669: 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 - 670: 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 - 671: 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 - 672: 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 - 673: 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 - 674: 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 - 675: 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 - 676: 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 - 677: 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 - 678: 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 - 679: 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 - 680: 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 - 681: 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 - 682: 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 - 683: 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 - 684: 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 - 685: 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 - 686: 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 - 687: 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 - 688: 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 - 689: 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 - 690: 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 - 691: 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 - 692: 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 - 693: 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 - 694: 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 - 695: 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 - 696: 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 - 697: 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 - 698: 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 - 699: 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 - 700: 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 - 701: 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 - 702: 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 - 703: 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 - 704: 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 - 705: 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 - 706: 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 - 707: 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 - 708: 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 - 709: 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 - 710: 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 - 711: 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 - 712: 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 - 713: 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 - 714: 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 - 715: 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 - 716: 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 - 717: 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 - 718: 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 - 719: 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 - 720: 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 - 721: 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 - 722: 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 - 723: 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 - 724: 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 - 725: 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 - 726: 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 - 727: 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 - 728: 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 - 729: 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 - 730: 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 - 731: 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 - 732: 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 - 733: 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 - 734: 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 - 735: 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 - 736: 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 - 737: 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 - 738: 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 - 739: 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 - 740: 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 - 741: 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 - 742: 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 - 743: 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 - 744: 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 - 745: 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 - 746: 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 - 747: 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 - 748: 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 - 749: 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 - 750: 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 - 751: 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 - 752: 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 - 753: 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 - 754: 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 - 755: 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 - 756: 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 - 757: 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 - 758: 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 - 759: 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 - 760: 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 - 761: 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 - 762: 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 - 763: 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 - 764: 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 - 765: 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 - 766: 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 - 767: 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 - 768: 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 - 769: 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 - 770: 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 - 771: 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 - 772: 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 - 773: 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 - 774: 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 - 775: 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 - 776: 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 - 777: 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 - 778: 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 - 779: 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 - 780: 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 - 781: 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 - 782: 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 - 783: 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 - 784: 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 - 785: 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 - 786: 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 - 787: 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 - 788: 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 - 789: 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 - 790: 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 - 791: 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 - 792: 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 - 793: 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 - 794: 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 - 795: 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 - 796: 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 - 797: 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 - 798: 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 - 799: 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 - 800: 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 - 801: 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 - 802: 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 - 803: 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 - 804: 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 - 805: 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 - 806: 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 - 807: 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 - 808: 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 - 809: 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 - 810: 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 - 811: 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 - 812: 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 - 813: 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 - 814: 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 - 815: 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 - 816: 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 - 817: 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 - 818: 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 - 819: 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 - 820: 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 - 821: 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 - 822: 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 - 823: 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 - 824: 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 - 825: 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 - 826: 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 - 827: 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 - 828: 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 - 829: 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 - 830: 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 - 831: 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 - 832: 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 - 833: 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 - 834: 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 - 835: 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 - 836: 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 - 837: 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 - 838: 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 - 839: 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 - 840: 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 - 841: 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 - 842: 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 - 843: 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 - 844: 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 - 845: 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 - 846: 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 - 847: 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 - 848: 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 - 849: 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 - 850: 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 - 851: 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 - 852: 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 - 853: 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 - 854: 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 - 855: 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 - 856: 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 - 857: 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 - 858: 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 - 859: 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 - 860: 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 - 861: 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 - 862: 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 - 863: 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 - 864: 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 - 865: 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 - 866: 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 - 867: 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 - 868: 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 - 869: 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 - 870: 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 - 871: 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 - 872: 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 - 873: 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 - 874: 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 - 875: 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 - 876: 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 - 877: 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 - 878: 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 - 879: 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 - 880: 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 - 881: 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 - 882: 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 - 883: 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 - 884: 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 - 885: 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 - 886: 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 - 887: 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 - 888: 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 - 889: 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 - 890: 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 - 891: 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 - 892: 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 - 893: 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 - 894: 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 - 895: 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 - 896: 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 - 897: 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 - 898: 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 - 899: 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 - 900: 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 - 901: 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 - 902: 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 - 903: 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 - 904: 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 - 905: 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 - 906: 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 - 907: 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 - 908: 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 - 909: 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 - 910: 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 - 911: 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 - 912: 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 - 913: 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 - 914: 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 - 915: 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 - 916: 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 - 917: 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 - 918: 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 - 919: 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 - 920: 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 - 921: 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 - 922: 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 - 923: 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 - 924: 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 - 925: 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 - 926: 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 - 927: 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 - 928: 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 - 929: 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 - 930: 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 - 931: 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 - 932: 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 - 933: 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 - 934: 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 - 935: 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 - 936: 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 - 937: 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 - 938: 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 - 939: 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 - 940: 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 - 941: 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 - 942: 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 - 943: 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 - 944: 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 - 945: 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 - 946: 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 - 947: 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 - 948: 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 - 949: 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 - 950: 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 - 951: 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 - 952: 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 - 953: 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 - 954: 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 - 955: 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 - 956: 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 - 957: 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 - 958: 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 - 959: 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 - 960: 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 - 961: 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 - 962: 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 - 963: 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 - 964: 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 - 965: 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 - 966: 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 - 967: 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 - 968: 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 - 969: 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 - 970: 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 - 971: 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 - 972: 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 - 973: 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 - 974: 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 - 975: 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 - 976: 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 - 977: 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 - 978: 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 - 979: 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 - 980: 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 - 981: 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 - 982: 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 - 983: 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 - 984: 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 - 985: 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 - 986: 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 - 987: 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 - 988: 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 - 989: 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 - 990: 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 - 991: 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 - 992: 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 - 993: 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 - 994: 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 - 995: 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 - 996: 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 - 997: 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 - 998: 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 - 999: 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 - 1000: 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 - 1001: 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 - 1002: 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 - 1003: 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 - 1004: 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 - 1005: 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 - 1006: 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 - 1007: 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 - 1008: 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 - 1009: 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 - 1010: 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 - 1011: 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 - 1012: 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 - 1013: 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 - 1014: 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 - 1015: 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 - 1016: 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 - 1017: 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 - 1018: 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 - 1019: 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 - 1020: 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 - 1021: 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 - 1022: 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 - 1023: 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 - 1024: 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 - 1025: 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 - 1026: 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 - 1027: 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 - 1028: 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 - 1029: 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 - 1030: 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 - 1031: 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 - 1032: 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 - 1033: 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 - 1034: 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 - 1035: 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 - 1036: 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 - 1037: 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 - 1038: 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 - 1039: 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 - 1040: 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 - 1041: 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 - 1042: 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 - 1043: 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 - 1044: 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 - 1045: 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 - 1046: 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 - 1047: 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 - 1048: 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 - 1049: 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 - 1050: 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 - 1051: 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 - 1052: 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 - 1053: 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 - 1054: 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 - 1055: 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 - 1056: 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 - 1057: 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 - 1058: 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 - 1059: 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 - 1060: 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 - 1061: 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 - 1062: 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 - 1063: 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 - 1064: 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 - 1065: 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 - 1066: 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 - 1067: 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 - 1068: 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 - 1069: 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 - 1070: 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 - 1071: 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 - 1072: 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 - 1073: 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 - 1074: 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 - 1075: 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 - 1076: 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 - 1077: 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 - 1078: 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 - 1079: 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 - 1080: 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 - 1081: 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 - 1082: 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 - 1083: 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 - 1084: 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 - 1085: 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 - 1086: 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 - 1087: 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 - 1088: 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 - 1089: 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 - 1090: 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 - 1091: 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 - 1092: 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 - 1093: 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 - 1094: 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 - 1095: 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 - 1096: 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 - 1097: 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 - 1098: 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 - 1099: 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 - 1100: 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 - 1101: 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 - 1102: 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 - 1103: 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 - 1104: 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 - 1105: 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 - 1106: 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 - 1107: 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 - 1108: 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 - 1109: 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 - 1110: 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 - 1111: 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 - 1112: 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 - 1113: 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 - 1114: 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 - 1115: 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 - 1116: 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 - 1117: 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 - 1118: 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 - 1119: 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 - 1120: 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 - 1121: 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 - 1122: 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 - 1123: 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 - 1124: 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 - 1125: 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 - 1126: 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 - 1127: 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 - 1128: 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 - 1129: 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 - 1130: 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 - 1131: 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 - 1132: 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 - 1133: 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 - 1134: 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 - 1135: 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 - 1136: 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 - 1137: 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 - 1138: 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 - 1139: 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 - 1140: 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 - 1141: 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 - 1142: 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 - 1143: 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 - 1144: 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 - 1145: 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 - 1146: 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 - 1147: 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 - 1148: 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 - 1149: 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 - 1150: 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 - 1151: 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 - 1152: 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 - 1153: 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 - 1154: 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 - 1155: 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 - 1156: 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 - 1157: 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 - 1158: 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 - 1159: 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 - 1160: 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 - 1161: 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 - 1162: 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 - 1163: 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 - 1164: 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 - 1165: 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 - 1166: 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 - 1167: 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 - 1168: 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 - 1169: 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 - 1170: 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 - 1171: 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 - 1172: 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 - 1173: 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 - 1174: 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 - 1175: 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 - 1176: 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 - 1177: 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 - 1178: 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 - 1179: 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 - 1180: 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 - 1181: 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 - 1182: 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 - 1183: 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 - 1184: 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 - 1185: 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 - 1186: 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 - 1187: 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 - 1188: 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 - 1189: 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 - 1190: 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 - 1191: 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 - 1192: 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 - 1193: 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 - 1194: 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 - 1195: 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 - 1196: 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 - 1197: 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 - 1198: 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 - 1199: 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 - 1200: 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 - 1201: 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 - 1202: 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 - 1203: 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 - 1204: 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 - 1205: 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 - 1206: 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 - 1207: 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 - 1208: 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 - 1209: 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 - 1210: 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 - 1211: 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 - 1212: 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 - 1213: 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 - 1214: 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 - 1215: 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 - 1216: 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 - 1217: 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 - 1218: 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 - 1219: 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 - 1220: 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 - 1221: 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 - 1222: 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 - 1223: 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 - 1224: 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 - 1225: 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 - 1226: 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 - 1227: 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 - 1228: 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 - 1229: 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 - 1230: 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 - 1231: 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 - 1232: 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 - 1233: 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 - 1234: 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 - 1235: 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 - 1236: 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 - 1237: 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 - 1238: 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 - 1239: 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 - 1240: 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 - 1241: 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 - 1242: 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 - 1243: 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 - 1244: 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 - 1245: 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 - 1246: 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 - 1247: 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 - 1248: 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 - 1249: 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 - 1250: 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 - 1251: 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 - 1252: 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 - 1253: 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 - 1254: 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 - 1255: 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 - 1256: 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 - 1257: 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 - 1258: 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 - 1259: 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 - 1260: 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 - 1261: 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 - 1262: 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 - 1263: 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 - 1264: 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 - 1265: 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 - 1266: 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 - 1267: 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 - 1268: 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 - 1269: 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 - 1270: 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 - 1271: 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 - 1272: 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 - 1273: 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 - 1274: 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 - 1275: 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 - 1276: 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 - 1277: 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 - 1278: 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 - 1279: 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 - 1280: 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 - 1281: 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 - 1282: 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 - 1283: 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 - 1284: 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 - 1285: 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 - 1286: 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 - 1287: 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 - 1288: 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 - 1289: 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 - 1290: 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 - 1291: 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 - 1292: 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 - 1293: 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 - 1294: 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 - 1295: 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 - 1296: 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 - 1297: 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 - 1298: 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 - 1299: 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 - 1300: 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 - 1301: 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 - 1302: 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 - 1303: 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 - 1304: 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 - 1305: 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 - 1306: 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 - 1307: 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 - 1308: 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 - 1309: 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 - 1310: 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 - 1311: 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 - 1312: 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 - 1313: 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 - 1314: 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 - 1315: 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 - 1316: 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 - 1317: 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 - 1318: 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 - 1319: 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 - 1320: 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 - 1321: 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 - 1322: 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 - 1323: 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 - 1324: 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 - 1325: 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 - 1326: 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 - 1327: 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 - 1328: 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 - 1329: 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 - 1330: 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 - 1331: 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 - 1332: 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 - 1333: 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 - 1334: 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 - 1335: 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 - 1336: 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 - 1337: 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 - 1338: 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 - 1339: 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 - 1340: 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 - 1341: 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 - 1342: 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 - 1343: 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 - 1344: 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 - 1345: 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 - 1346: 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 - 1347: 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 - 1348: 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 - 1349: 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 - 1350: 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 - 1351: 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 - 1352: 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 - 1353: 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 - 1354: 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 - 1355: 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 - 1356: 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 - 1357: 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 - 1358: 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 - 1359: 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 - 1360: 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 - 1361: 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 - 1362: 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 - 1363: 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 - 1364: 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 - 1365: 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 - 1366: 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 - 1367: 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 - 1368: 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 - 1369: 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 - 1370: 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 - 1371: 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 - 1372: 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 - 1373: 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 - 1374: 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 - 1375: 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 - 1376: 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 - 1377: 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 - 1378: 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 - 1379: 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 - 1380: 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 - 1381: 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 - 1382: 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 - 1383: 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 - 1384: 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 - 1385: 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 - 1386: 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 - 1387: 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 - 1388: 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 - 1389: 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 - 1390: 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 - 1391: 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 - 1392: 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 - 1393: 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 - 1394: 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 - 1395: 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 - 1396: 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 - 1397: 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 - 1398: 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 - 1399: 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 - 1400: 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 - 1401: 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 - 1402: 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 - 1403: 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 - 1404: 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 - 1405: 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 - 1406: 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 - 1407: 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 - 1408: 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 - 1409: 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 - 1410: 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 - 1411: 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 - 1412: 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 - 1413: 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 - 1414: 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 - 1415: 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 - 1416: 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 - 1417: 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 - 1418: 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 - 1419: 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 - 1420: 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 - 1421: 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 - 1422: 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 - 1423: 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 - 1424: 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 - 1425: 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 - 1426: 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 - 1427: 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 - 1428: 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 - 1429: 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 - 1430: 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 - 1431: 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 - 1432: 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 - 1433: 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 - 1434: 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 - 1435: 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 - 1436: 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 - 1437: 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 - 1438: 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 - 1439: 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 - 1440: 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 - 1441: 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 - 1442: 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 - 1443: 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 - 1444: 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 - 1445: 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 - 1446: 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 - 1447: 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 - 1448: 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 - 1449: 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 - 1450: 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 - 1451: 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 - 1452: 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 - 1453: 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 - 1454: 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 - 1455: 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 - 1456: 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 - 1457: 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 - 1458: 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 - 1459: 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 - 1460: 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 - 1461: 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 - 1462: 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 - 1463: 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 - 1464: 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 - 1465: 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 - 1466: 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 - 1467: 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 - 1468: 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 - 1469: 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 - 1470: 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 - 1471: 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 - 1472: 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 - 1473: 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 - 1474: 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 - 1475: 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 - 1476: 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 - 1477: 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 - 1478: 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 - 1479: 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 - 1480: 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 - 1481: 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 - 1482: 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 - 1483: 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 - 1484: 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 - 1485: 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 - 1486: 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 - 1487: 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 - 1488: 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 - 1489: 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 - 1490: 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 - 1491: 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 - 1492: 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 - 1493: 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 - 1494: 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 - 1495: 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 - 1496: 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 - 1497: 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 - 1498: 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 - 1499: 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 - 1500: 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 - 1501: 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 - 1502: 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 - 1503: 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 - 1504: 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 - 1505: 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 - 1506: 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 - 1507: 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 - 1508: 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 - 1509: 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 - 1510: 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 - 1511: 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 - 1512: 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 - 1513: 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 - 1514: 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 - 1515: 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 - 1516: 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 - 1517: 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 - 1518: 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 - 1519: 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 - 1520: 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 - 1521: 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 - 1522: 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 - 1523: 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 - 1524: 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 - 1525: 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 - 1526: 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 - 1527: 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 - 1528: 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 - 1529: 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 - 1530: 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 - 1531: 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 - 1532: 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 - 1533: 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 - 1534: 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 - 1535: 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 - 1536: 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 - 1537: 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 - 1538: 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 - 1539: 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 - 1540: 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 - 1541: 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 - 1542: 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 - 1543: 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 - 1544: 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 - 1545: 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 - 1546: 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 - 1547: 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 - 1548: 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 - 1549: 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 - 1550: 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 - 1551: 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 - 1552: 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 - 1553: 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 - 1554: 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 - 1555: 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 - 1556: 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 - 1557: 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 - 1558: 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 - 1559: 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 - 1560: 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 - 1561: 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 - 1562: 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 - 1563: 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 - 1564: 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 - 1565: 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 - 1566: 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 - 1567: 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 - 1568: 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 - 1569: 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 - 1570: 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 - 1571: 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 - 1572: 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 - 1573: 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 - 1574: 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 - 1575: 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 - 1576: 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 - 1577: 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 - 1578: 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 - 1579: 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 - 1580: 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 - 1581: 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 - 1582: 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 - 1583: 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 - 1584: 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 - 1585: 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 - 1586: 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 - 1587: 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 - 1588: 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 - 1589: 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 - 1590: 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 - 1591: 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 - 1592: 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 - 1593: 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 - 1594: 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 - 1595: 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 - 1596: 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 - 1597: 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 - 1598: 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 - 1599: 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 - 1600: 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 - 1601: 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 - 1602: 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 - 1603: 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 - 1604: 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 - 1605: 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 - 1606: 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 - 1607: 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 - 1608: 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 - 1609: 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 - 1610: 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 - 1611: 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 - 1612: 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 - 1613: 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 - 1614: 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 - 1615: 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 - 1616: 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 - 1617: 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 - 1618: 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 - 1619: 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 - 1620: 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 - 1621: 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 - 1622: 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 - 1623: 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 - 1624: 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 - 1625: 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 - 1626: 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 - 1627: 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 - 1628: 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 - 1629: 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 - 1630: 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 - 1631: 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 - 1632: 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 - 1633: 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 - 1634: 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 - 1635: 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 - 1636: 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 - 1637: 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 - 1638: 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 - 1639: 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 - 1640: 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 - 1641: 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 - 1642: 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 - 1643: 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 - 1644: 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 - 1645: 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 - 1646: 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 - 1647: 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 - 1648: 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 - 1649: 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 - 1650: 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 - 1651: 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 - 1652: 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 - 1653: 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 - 1654: 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 - 1655: 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 - 1656: 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 - 1657: 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 - 1658: 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 - 1659: 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 - 1660: 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 - 1661: 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 - 1662: 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 - 1663: 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 - 1664: 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 - 1665: 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 - 1666: 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 - 1667: 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 - 1668: 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 - 1669: 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 - 1670: 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 - 1671: 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 - 1672: 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 - 1673: 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 - 1674: 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 - 1675: 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 - 1676: 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 - 1677: 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 - 1678: 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 - 1679: 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 - 1680: 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 - 1681: 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 - 1682: 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 - 1683: 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 - 1684: 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 - 1685: 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 - 1686: 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 - 1687: 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 - 1688: 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 - 1689: 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 - 1690: 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 - 1691: 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 - 1692: 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 - 1693: 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 - 1694: 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 - 1695: 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 - 1696: 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 - 1697: 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 - 1698: 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 - 1699: 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 - 1700: 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 - 1701: 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 - 1702: 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 - 1703: 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 - 1704: 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 - 1705: 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 - 1706: 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 - 1707: 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 - 1708: 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 - 1709: 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 - 1710: 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 - 1711: 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 - 1712: 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 - 1713: 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 - 1714: 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 - 1715: 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 - 1716: 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 - 1717: 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 - 1718: 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 - 1719: 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 - 1720: 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 - 1721: 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 - 1722: 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 - 1723: 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 - 1724: 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 - 1725: 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 - 1726: 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 - 1727: 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 - 1728: 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 - 1729: 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 - 1730: 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 - 1731: 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 - 1732: 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 - 1733: 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 - 1734: 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 - 1735: 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 - 1736: 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 - 1737: 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 - 1738: 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 - 1739: 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 - 1740: 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 - 1741: 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 - 1742: 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 - 1743: 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 - 1744: 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 - 1745: 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 - 1746: 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 - 1747: 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 - 1748: 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 - 1749: 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 - 1750: 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 - 1751: 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 - 1752: 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 - 1753: 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 - 1754: 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 - 1755: 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 - 1756: 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 - 1757: 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 - 1758: 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 - 1759: 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 - 1760: 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 - 1761: 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 - 1762: 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 - 1763: 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 - 1764: 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 - 1765: 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 - 1766: 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 - 1767: 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 - 1768: 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 - 1769: 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 - 1770: 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 - 1771: 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 - 1772: 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 - 1773: 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 - 1774: 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 - 1775: 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 - 1776: 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 - 1777: 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 - 1778: 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 - 1779: 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 - 1780: 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 - 1781: 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 - 1782: 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 - 1783: 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 - 1784: 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 - 1785: 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 - 1786: 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 - 1787: 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 - 1788: 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 - 1789: 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 - 1790: 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 - 1791: 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 - 1792: 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 - 1793: 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 - 1794: 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 - 1795: 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 - 1796: 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 - 1797: 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 - 1798: 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 - 1799: 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 - 1800: 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 - 1801: 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 - 1802: 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 - 1803: 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 - 1804: 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 - 1805: 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 - 1806: 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 - 1807: 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 - 1808: 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 - 1809: 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 - 1810: 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 - 1811: 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 - 1812: 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 - 1813: 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 - 1814: 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 - 1815: 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 - 1816: 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 - 1817: 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 - 1818: 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 - 1819: 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 - 1820: 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 - 1821: 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 - 1822: 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 - 1823: 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 - 1824: 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 - 1825: 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 - 1826: 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 - 1827: 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 - 1828: 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 - 1829: 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 - 1830: 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 - 1831: 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 - 1832: 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 - 1833: 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 - 1834: 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 - 1835: 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 - 1836: 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 - 1837: 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 - 1838: 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 - 1839: 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 - 1840: 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 - 1841: 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 - 1842: 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 - 1843: 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 - 1844: 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 - 1845: 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 - 1846: 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 - 1847: 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 - 1848: 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 - 1849: 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 - 1850: 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 - 1851: 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 - 1852: 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 - 1853: 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 - 1854: 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 - 1855: 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 - 1856: 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 - 1857: 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 - 1858: 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 - 1859: 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 - 1860: 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 - 1861: 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 - 1862: 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 - 1863: 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 - 1864: 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 - 1865: 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 - 1866: 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 - 1867: 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 - 1868: 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 - 1869: 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 - 1870: 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 - 1871: 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 - 1872: 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 - 1873: 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 - 1874: 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 - 1875: 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 - 1876: 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 - 1877: 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 - 1878: 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 - 1879: 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 - 1880: 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 - 1881: 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 - 1882: 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 - 1883: 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 - 1884: 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 - 1885: 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 - 1886: 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 - 1887: 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 - 1888: 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 - 1889: 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 - 1890: 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 - 1891: 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 - 1892: 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 - 1893: 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 - 1894: 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 - 1895: 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 - 1896: 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 - 1897: 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 - 1898: 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 - 1899: 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 - 1900: 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 - 1901: 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 - 1902: 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 - 1903: 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 - 1904: 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 - 1905: 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 - 1906: 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 - 1907: 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 - 1908: 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 - 1909: 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 - 1910: 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 - 1911: 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 - 1912: 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 - 1913: 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 - 1914: 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 - 1915: 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 - 1916: 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 - 1917: 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 - 1918: 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 - 1919: 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 - 1920: 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 - 1921: 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 - 1922: 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 - 1923: 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 - 1924: 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 - 1925: 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 - 1926: 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 - 1927: 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 - 1928: 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 - 1929: 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 - 1930: 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 - 1931: 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 - 1932: 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 - 1933: 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 - 1934: 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 - 1935: 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 - 1936: 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 - 1937: 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 - 1938: 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 - 1939: 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 - 1940: 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 - 1941: 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 - 1942: 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 - 1943: 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 - 1944: 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 - 1945: 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 - 1946: 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 - 1947: 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 - 1948: 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 - 1949: 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 - 1950: 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 - 1951: 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 - 1952: 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 - 1953: 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 - 1954: 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 - 1955: 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 - 1956: 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 - 1957: 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 - 1958: 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 - 1959: 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 - 1960: 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 - 1961: 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 - 1962: 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 - 1963: 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 - 1964: 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 - 1965: 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 - 1966: 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 - 1967: 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 - 1968: 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 - 1969: 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 - 1970: 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 - 1971: 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 - 1972: 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 - 1973: 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 - 1974: 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 - 1975: 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 - 1976: 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 - 1977: 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 - 1978: 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 - 1979: 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 - 1980: 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 - 1981: 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 - 1982: 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 - 1983: 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 - 1984: 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 - 1985: 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 - 1986: 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 - 1987: 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 - 1988: 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 - 1989: 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 - 1990: 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 - 1991: 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 - 1992: 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 - 1993: 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 - 1994: 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 - 1995: 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 - 1996: 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 - 1997: 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 - 1998: 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 - 1999: 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 - 2000: 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2001: 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2002: 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2003: 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2004: 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2005: 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2006: 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2007: 1993 1994 1995 1996 1997 1998 1999 2000 - 2008: 1994 1995 1996 1997 1998 1999 2000 - 2009: 1995 1996 1997 1998 1999 2000 - 2010: 1996 1997 1998 1999 2000 - 2011: 1997 1998 1999 2000 - 2012: 1998 1999 2000 - 2013: 1999 2000 - 2014: 2000 + + 1: 1 + 2: 1 2 + 3: 1 2 3 + 4: 1 2 3 4 + 5: 1 2 3 4 5 + 6: 1 2 3 4 5 6 + 7: 1 2 3 4 5 6 7 + 8: 1 2 3 4 5 6 7 8 + 9: 1 2 3 4 5 6 7 8 9 + 10: 1 2 3 4 5 6 7 8 9 10 + 11: 1 2 3 4 5 6 7 8 9 10 11 + 12: 1 2 3 4 5 6 7 8 9 10 11 12 + 13: 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 + 15: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + 16: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 17: 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18: 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 + 19: 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20: 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21: 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 + 22: 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 + 23: 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 + 24: 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 + 25: 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 + 26: 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 + 27: 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 + 28: 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 + 29: 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 + 30: 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 + 31: 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 + 32: 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33: 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 + 34: 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 + 35: 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 + 36: 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 + 37: 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 + 38: 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 + 39: 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 + 40: 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 + 41: 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 + 42: 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 + 43: 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 + 44: 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 + 45: 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 + 46: 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 + 47: 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48: 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 + 49: 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 + 50: 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 + 51: 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 + 52: 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 + 53: 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 + 54: 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 + 55: 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 + 56: 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 + 57: 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 + 58: 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 + 59: 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 + 60: 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 + 61: 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 + 62: 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63: 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 + 64: 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 + 65: 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 + 66: 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 + 67: 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 + 68: 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 + 69: 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 + 70: 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 + 71: 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 + 72: 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 + 73: 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 + 74: 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 + 75: 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 + 76: 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 + 77: 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78: 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 + 79: 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 + 80: 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 + 81: 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 + 82: 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 + 83: 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 + 84: 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 + 85: 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 + 86: 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 + 87: 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 + 88: 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 + 89: 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 + 90: 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 + 91: 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 + 92: 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93: 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 + 94: 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 + 95: 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 + 96: 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 + 97: 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 + 98: 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 + 99: 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 + 100: 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 + 101: 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 + 102: 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 + 103: 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 + 104: 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 + 105: 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 + 106: 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107: 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 + 108: 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 + 109: 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 + 110: 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 + 111: 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 + 112: 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 + 113: 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 + 114: 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 + 115: 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 + 116: 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 + 117: 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 + 118: 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 + 119: 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120: 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 + 121: 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 + 122: 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 + 123: 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 + 124: 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 + 125: 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 + 126: 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 + 127: 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 + 128: 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 + 129: 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 + 130: 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 + 131: 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 + 132: 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133: 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 + 134: 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 + 135: 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 + 136: 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 + 137: 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 + 138: 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 + 139: 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 + 140: 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 + 141: 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 + 142: 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 + 143: 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 + 144: 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 + 145: 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146: 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 + 147: 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 + 148: 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 + 149: 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 + 150: 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 + 151: 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 + 152: 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 + 153: 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 + 154: 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 + 155: 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 + 156: 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 + 157: 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 + 158: 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159: 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 + 160: 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 + 161: 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 + 162: 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 + 163: 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 + 164: 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 + 165: 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 + 166: 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 + 167: 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 + 168: 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 + 169: 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 + 170: 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 + 171: 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172: 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 + 173: 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 + 174: 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 + 175: 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 + 176: 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 + 177: 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 + 178: 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 + 179: 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 + 180: 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 + 181: 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 + 182: 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 + 183: 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 + 184: 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185: 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 + 186: 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 + 187: 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 + 188: 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 + 189: 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 + 190: 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 + 191: 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 + 192: 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 + 193: 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 + 194: 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 + 195: 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 + 196: 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 + 197: 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 + 198: 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 + 199: 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 + 200: 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 + 201: 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 + 202: 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 + 203: 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 + 204: 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 + 205: 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 + 206: 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 + 207: 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 + 208: 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 + 209: 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 + 210: 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 + 211: 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 + 212: 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 + 213: 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 + 214: 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 + 215: 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 + 216: 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 + 217: 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 + 218: 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 + 219: 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 + 220: 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 + 221: 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 + 222: 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 + 223: 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 + 224: 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 + 225: 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 + 226: 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 + 227: 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 + 228: 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 + 229: 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 + 230: 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 + 231: 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 + 232: 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 + 233: 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 + 234: 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 + 235: 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 + 236: 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 + 237: 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 + 238: 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 + 239: 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 + 240: 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 + 241: 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 + 242: 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 + 243: 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 + 244: 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 + 245: 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 + 246: 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 + 247: 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 + 248: 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 + 249: 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 + 250: 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 + 251: 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 + 252: 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 + 253: 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 + 254: 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 + 255: 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 + 256: 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 + 257: 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 + 258: 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 + 259: 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 + 260: 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 + 261: 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 + 262: 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 + 263: 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 + 264: 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 + 265: 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 + 266: 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 + 267: 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 + 268: 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 + 269: 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 + 270: 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 + 271: 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 + 272: 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 + 273: 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 + 274: 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 + 275: 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 + 276: 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 + 277: 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 + 278: 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 + 279: 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 + 280: 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 + 281: 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 + 282: 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 + 283: 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 + 284: 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 + 285: 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 + 286: 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 + 287: 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 + 288: 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 + 289: 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 + 290: 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 + 291: 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 + 292: 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 + 293: 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 + 294: 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 + 295: 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 + 296: 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 + 297: 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 + 298: 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 + 299: 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 + 300: 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 + 301: 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 + 302: 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 + 303: 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 + 304: 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 + 305: 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 + 306: 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 + 307: 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 + 308: 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 + 309: 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 + 310: 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 + 311: 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 + 312: 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 + 313: 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 + 314: 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 + 315: 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 + 316: 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 + 317: 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 + 318: 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 + 319: 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 + 320: 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 + 321: 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 + 322: 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 + 323: 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 + 324: 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 + 325: 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 + 326: 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 + 327: 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 + 328: 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 + 329: 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 + 330: 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 + 331: 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 + 332: 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 + 333: 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 + 334: 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 + 335: 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 + 336: 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 + 337: 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 + 338: 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 + 339: 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 + 340: 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 + 341: 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 + 342: 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 + 343: 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 + 344: 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 + 345: 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 + 346: 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 + 347: 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 + 348: 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 + 349: 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 + 350: 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 + 351: 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 + 352: 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 + 353: 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 + 354: 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 + 355: 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 + 356: 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 + 357: 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 + 358: 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 + 359: 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 + 360: 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 + 361: 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 + 362: 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 + 363: 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 + 364: 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 + 365: 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 + 366: 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 + 367: 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 + 368: 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 + 369: 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 + 370: 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 + 371: 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 + 372: 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 + 373: 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 + 374: 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 + 375: 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 + 376: 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 + 377: 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 + 378: 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 + 379: 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 + 380: 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 + 381: 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 + 382: 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 + 383: 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 + 384: 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 + 385: 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 + 386: 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 + 387: 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 + 388: 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 + 389: 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 + 390: 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 + 391: 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 + 392: 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 + 393: 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 + 394: 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 + 395: 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 + 396: 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 + 397: 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 + 398: 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 + 399: 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 + 400: 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 + 401: 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 + 402: 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 + 403: 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 + 404: 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 + 405: 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 + 406: 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 + 407: 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 + 408: 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 + 409: 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 + 410: 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 + 411: 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 + 412: 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 + 413: 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 + 414: 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 + 415: 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 + 416: 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 + 417: 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 + 418: 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 + 419: 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 + 420: 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 + 421: 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 + 422: 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 + 423: 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 + 424: 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 + 425: 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 + 426: 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 + 427: 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 + 428: 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 + 429: 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 + 430: 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 + 431: 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 + 432: 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 + 433: 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 + 434: 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 + 435: 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 + 436: 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 + 437: 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 + 438: 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 + 439: 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 + 440: 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 + 441: 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 + 442: 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 + 443: 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 + 444: 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 + 445: 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 + 446: 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 + 447: 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 + 448: 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 + 449: 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 + 450: 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 + 451: 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 + 452: 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 + 453: 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 + 454: 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 + 455: 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 + 456: 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 + 457: 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 + 458: 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 + 459: 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 + 460: 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 + 461: 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 + 462: 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 + 463: 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 + 464: 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 + 465: 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 + 466: 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 + 467: 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 + 468: 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 + 469: 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 + 470: 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 + 471: 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 + 472: 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 + 473: 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 + 474: 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 + 475: 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 + 476: 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 + 477: 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 + 478: 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 + 479: 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 + 480: 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 + 481: 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 + 482: 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 + 483: 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 + 484: 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 + 485: 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 + 486: 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 + 487: 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 + 488: 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 + 489: 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 + 490: 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 + 491: 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 + 492: 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 + 493: 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 + 494: 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 + 495: 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 + 496: 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 + 497: 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 + 498: 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 + 499: 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 + 500: 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 + 501: 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 + 502: 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 + 503: 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 + 504: 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 + 505: 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 + 506: 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 + 507: 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 + 508: 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 + 509: 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 + 510: 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 + 511: 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 + 512: 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 + 513: 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 + 514: 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 + 515: 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 + 516: 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 + 517: 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 + 518: 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 + 519: 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 + 520: 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 + 521: 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 + 522: 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 + 523: 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 + 524: 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 + 525: 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 + 526: 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 + 527: 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 + 528: 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 + 529: 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 + 530: 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 + 531: 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 + 532: 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 + 533: 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 + 534: 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 + 535: 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 + 536: 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 + 537: 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 + 538: 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 + 539: 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 + 540: 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 + 541: 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 + 542: 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 + 543: 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 + 544: 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 + 545: 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 + 546: 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 + 547: 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 + 548: 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 + 549: 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 + 550: 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 + 551: 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 + 552: 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 + 553: 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 + 554: 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 + 555: 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 + 556: 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 + 557: 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 + 558: 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 + 559: 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 + 560: 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 + 561: 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 + 562: 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 + 563: 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 + 564: 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 + 565: 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 + 566: 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 + 567: 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 + 568: 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 + 569: 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 + 570: 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 + 571: 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 + 572: 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 + 573: 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 + 574: 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 + 575: 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 + 576: 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 + 577: 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 + 578: 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 + 579: 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 + 580: 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 + 581: 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 + 582: 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 + 583: 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 + 584: 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 + 585: 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 + 586: 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 + 587: 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 + 588: 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 + 589: 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 + 590: 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 + 591: 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 + 592: 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 + 593: 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 + 594: 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 + 595: 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 + 596: 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 + 597: 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 + 598: 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 + 599: 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 + 600: 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 + 601: 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 + 602: 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 + 603: 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 + 604: 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 + 605: 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 + 606: 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 + 607: 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 + 608: 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 + 609: 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 + 610: 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 + 611: 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 + 612: 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 + 613: 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 + 614: 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 + 615: 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 + 616: 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 + 617: 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 + 618: 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 + 619: 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 + 620: 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 + 621: 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 + 622: 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 + 623: 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 + 624: 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 + 625: 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 + 626: 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 + 627: 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 + 628: 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 + 629: 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 + 630: 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 + 631: 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 + 632: 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 + 633: 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 + 634: 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 + 635: 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 + 636: 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 + 637: 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 + 638: 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 + 639: 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 + 640: 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 + 641: 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 + 642: 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 + 643: 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 + 644: 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 + 645: 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 + 646: 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 + 647: 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 + 648: 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 + 649: 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 + 650: 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 + 651: 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 + 652: 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 + 653: 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 + 654: 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 + 655: 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 + 656: 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 + 657: 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 + 658: 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 + 659: 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 + 660: 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 + 661: 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 + 662: 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 + 663: 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 + 664: 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 + 665: 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 + 666: 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 + 667: 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 + 668: 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 + 669: 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 + 670: 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 + 671: 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 + 672: 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 + 673: 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 + 674: 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 + 675: 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 + 676: 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 + 677: 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 + 678: 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 + 679: 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 + 680: 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 + 681: 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 + 682: 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 + 683: 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 + 684: 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 + 685: 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 + 686: 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 + 687: 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 + 688: 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 + 689: 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 + 690: 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 + 691: 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 + 692: 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 + 693: 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 + 694: 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 + 695: 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 + 696: 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 + 697: 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 + 698: 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 + 699: 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 + 700: 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 + 701: 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 + 702: 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 + 703: 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 + 704: 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 + 705: 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 + 706: 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 + 707: 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 + 708: 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 + 709: 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 + 710: 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 + 711: 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 + 712: 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 + 713: 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 + 714: 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 + 715: 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 + 716: 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 + 717: 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 + 718: 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 + 719: 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 + 720: 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 + 721: 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 + 722: 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 + 723: 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 + 724: 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 + 725: 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 + 726: 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 + 727: 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 + 728: 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 + 729: 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 + 730: 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 + 731: 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 + 732: 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 + 733: 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 + 734: 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 + 735: 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 + 736: 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 + 737: 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 + 738: 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 + 739: 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 + 740: 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 + 741: 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 + 742: 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 + 743: 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 + 744: 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 + 745: 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 + 746: 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 + 747: 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 + 748: 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 + 749: 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 + 750: 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 + 751: 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 + 752: 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 + 753: 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 + 754: 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 + 755: 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 + 756: 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 + 757: 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 + 758: 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 + 759: 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 + 760: 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 + 761: 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 + 762: 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 + 763: 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 + 764: 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 + 765: 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 + 766: 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 + 767: 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 + 768: 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 + 769: 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 + 770: 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 + 771: 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 + 772: 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 + 773: 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 + 774: 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 + 775: 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 + 776: 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 + 777: 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 + 778: 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 + 779: 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 + 780: 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 + 781: 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 + 782: 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 + 783: 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 + 784: 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 + 785: 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 + 786: 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 + 787: 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 + 788: 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 + 789: 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 + 790: 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 + 791: 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 + 792: 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 + 793: 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 + 794: 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 + 795: 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 + 796: 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 + 797: 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 + 798: 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 + 799: 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 + 800: 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 + 801: 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 + 802: 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 + 803: 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 + 804: 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 + 805: 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 + 806: 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 + 807: 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 + 808: 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 + 809: 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 + 810: 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 + 811: 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 + 812: 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 + 813: 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 + 814: 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 + 815: 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 + 816: 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 + 817: 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 + 818: 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 + 819: 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 + 820: 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 + 821: 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 + 822: 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 + 823: 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 + 824: 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 + 825: 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 + 826: 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 + 827: 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 + 828: 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 + 829: 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 + 830: 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 + 831: 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 + 832: 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 + 833: 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 + 834: 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 + 835: 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 + 836: 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 + 837: 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 + 838: 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 + 839: 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 + 840: 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 + 841: 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 + 842: 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 + 843: 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 + 844: 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 + 845: 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 + 846: 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 + 847: 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 + 848: 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 + 849: 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 + 850: 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 + 851: 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 + 852: 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 + 853: 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 + 854: 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 + 855: 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 + 856: 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 + 857: 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 + 858: 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 + 859: 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 + 860: 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 + 861: 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 + 862: 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 + 863: 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 + 864: 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 + 865: 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 + 866: 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 + 867: 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 + 868: 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 + 869: 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 + 870: 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 + 871: 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 + 872: 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 + 873: 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 + 874: 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 + 875: 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 + 876: 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 + 877: 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 + 878: 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 + 879: 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 + 880: 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 + 881: 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 + 882: 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 + 883: 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 + 884: 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 + 885: 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 + 886: 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 + 887: 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 + 888: 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 + 889: 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 + 890: 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 + 891: 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 + 892: 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 + 893: 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 + 894: 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 + 895: 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 + 896: 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 + 897: 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 + 898: 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 + 899: 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 + 900: 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 + 901: 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 + 902: 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 + 903: 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 + 904: 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 + 905: 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 + 906: 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 + 907: 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 + 908: 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 + 909: 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 + 910: 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 + 911: 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 + 912: 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 + 913: 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 + 914: 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 + 915: 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 + 916: 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 + 917: 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 + 918: 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 + 919: 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 + 920: 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 + 921: 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 + 922: 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 + 923: 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 + 924: 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 + 925: 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 + 926: 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 + 927: 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 + 928: 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 + 929: 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 + 930: 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 + 931: 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 + 932: 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 + 933: 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 + 934: 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 + 935: 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 + 936: 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 + 937: 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 + 938: 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 + 939: 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 + 940: 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 + 941: 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 + 942: 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 + 943: 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 + 944: 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 + 945: 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 + 946: 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 + 947: 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 + 948: 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 + 949: 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 + 950: 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 + 951: 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 + 952: 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 + 953: 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 + 954: 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 + 955: 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 + 956: 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 + 957: 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 + 958: 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 + 959: 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 + 960: 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 + 961: 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 + 962: 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 + 963: 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 + 964: 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 + 965: 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 + 966: 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 + 967: 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 + 968: 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 + 969: 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 + 970: 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 + 971: 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 + 972: 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 + 973: 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 + 974: 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 + 975: 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 + 976: 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 + 977: 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 + 978: 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 + 979: 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 + 980: 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 + 981: 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 + 982: 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 + 983: 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 + 984: 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 + 985: 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 + 986: 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 + 987: 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 + 988: 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 + 989: 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 + 990: 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 + 991: 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 + 992: 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 + 993: 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 + 994: 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 + 995: 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 + 996: 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 + 997: 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 + 998: 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 + 999: 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 + 1000: 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 + 1001: 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 + 1002: 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 + 1003: 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 + 1004: 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 + 1005: 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 + 1006: 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 + 1007: 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 + 1008: 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 + 1009: 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 + 1010: 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 + 1011: 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 + 1012: 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 + 1013: 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 + 1014: 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 + 1015: 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 + 1016: 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 + 1017: 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 + 1018: 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 + 1019: 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 + 1020: 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 + 1021: 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 + 1022: 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 + 1023: 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 + 1024: 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 + 1025: 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 + 1026: 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 + 1027: 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 + 1028: 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 + 1029: 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 + 1030: 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 + 1031: 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 + 1032: 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 + 1033: 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 + 1034: 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 + 1035: 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 + 1036: 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 + 1037: 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 + 1038: 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 + 1039: 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 + 1040: 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 + 1041: 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 + 1042: 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 + 1043: 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 + 1044: 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 + 1045: 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 + 1046: 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 + 1047: 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 + 1048: 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 + 1049: 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 + 1050: 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 + 1051: 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 + 1052: 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 + 1053: 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 + 1054: 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 + 1055: 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 + 1056: 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 + 1057: 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 + 1058: 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 + 1059: 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 + 1060: 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 + 1061: 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 + 1062: 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 + 1063: 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 + 1064: 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 + 1065: 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 + 1066: 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 + 1067: 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 + 1068: 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 + 1069: 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 + 1070: 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 + 1071: 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 + 1072: 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 + 1073: 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 + 1074: 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 + 1075: 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 + 1076: 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 + 1077: 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 + 1078: 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 + 1079: 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 + 1080: 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 + 1081: 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 + 1082: 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 + 1083: 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 + 1084: 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 + 1085: 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 + 1086: 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 + 1087: 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 + 1088: 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 + 1089: 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 + 1090: 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 + 1091: 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 + 1092: 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 + 1093: 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 + 1094: 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 + 1095: 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 + 1096: 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 + 1097: 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 + 1098: 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 + 1099: 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 + 1100: 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 + 1101: 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 + 1102: 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 + 1103: 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 + 1104: 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 + 1105: 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 + 1106: 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 + 1107: 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 + 1108: 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 + 1109: 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 + 1110: 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 + 1111: 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 + 1112: 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 + 1113: 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 + 1114: 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 + 1115: 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 + 1116: 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 + 1117: 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 + 1118: 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 + 1119: 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 + 1120: 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 + 1121: 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 + 1122: 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 + 1123: 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 + 1124: 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 + 1125: 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 + 1126: 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 + 1127: 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 + 1128: 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 + 1129: 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 + 1130: 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 + 1131: 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 + 1132: 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 + 1133: 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 + 1134: 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 + 1135: 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 + 1136: 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 + 1137: 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 + 1138: 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 + 1139: 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 + 1140: 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 + 1141: 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 + 1142: 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 + 1143: 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 + 1144: 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 + 1145: 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 + 1146: 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 + 1147: 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 + 1148: 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 + 1149: 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 + 1150: 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 + 1151: 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 + 1152: 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 + 1153: 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 + 1154: 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 + 1155: 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 + 1156: 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 + 1157: 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 + 1158: 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 + 1159: 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 + 1160: 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 + 1161: 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 + 1162: 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 + 1163: 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 + 1164: 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 + 1165: 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 + 1166: 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 + 1167: 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 + 1168: 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 + 1169: 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 + 1170: 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 + 1171: 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 + 1172: 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 + 1173: 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 + 1174: 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 + 1175: 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 + 1176: 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 + 1177: 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 + 1178: 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 + 1179: 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 + 1180: 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 + 1181: 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 + 1182: 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 + 1183: 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 + 1184: 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 + 1185: 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 + 1186: 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 + 1187: 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 + 1188: 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 + 1189: 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 + 1190: 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 + 1191: 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 + 1192: 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 + 1193: 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 + 1194: 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 + 1195: 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 + 1196: 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 + 1197: 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 + 1198: 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 + 1199: 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 + 1200: 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 + 1201: 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 + 1202: 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 + 1203: 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 + 1204: 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 + 1205: 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 + 1206: 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 + 1207: 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 + 1208: 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 + 1209: 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 + 1210: 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 + 1211: 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 + 1212: 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 + 1213: 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 + 1214: 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 + 1215: 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 + 1216: 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 + 1217: 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 + 1218: 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 + 1219: 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 + 1220: 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 + 1221: 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 + 1222: 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 + 1223: 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 + 1224: 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 + 1225: 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 + 1226: 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 + 1227: 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 + 1228: 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 + 1229: 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 + 1230: 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 + 1231: 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 + 1232: 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 + 1233: 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 + 1234: 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 + 1235: 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 + 1236: 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 + 1237: 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 + 1238: 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 + 1239: 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 + 1240: 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 + 1241: 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 + 1242: 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 + 1243: 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 + 1244: 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 + 1245: 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 + 1246: 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 + 1247: 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 + 1248: 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 + 1249: 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 + 1250: 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 + 1251: 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 + 1252: 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 + 1253: 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 + 1254: 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 + 1255: 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 + 1256: 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 + 1257: 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 + 1258: 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 + 1259: 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 + 1260: 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 + 1261: 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 + 1262: 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 + 1263: 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 + 1264: 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 + 1265: 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 + 1266: 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 + 1267: 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 + 1268: 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 + 1269: 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 + 1270: 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 + 1271: 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 + 1272: 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 + 1273: 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 + 1274: 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 + 1275: 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 + 1276: 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 + 1277: 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 + 1278: 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 + 1279: 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 + 1280: 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 + 1281: 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 + 1282: 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 + 1283: 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 + 1284: 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 + 1285: 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 + 1286: 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 + 1287: 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 + 1288: 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 + 1289: 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 + 1290: 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 + 1291: 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 + 1292: 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 + 1293: 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 + 1294: 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 + 1295: 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 + 1296: 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 + 1297: 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 + 1298: 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 + 1299: 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 + 1300: 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 + 1301: 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 + 1302: 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 + 1303: 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 + 1304: 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 + 1305: 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 + 1306: 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 + 1307: 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 + 1308: 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 + 1309: 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 + 1310: 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 + 1311: 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 + 1312: 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 + 1313: 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 + 1314: 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 + 1315: 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 + 1316: 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 + 1317: 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 + 1318: 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 + 1319: 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 + 1320: 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 + 1321: 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 + 1322: 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 + 1323: 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 + 1324: 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 + 1325: 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 + 1326: 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 + 1327: 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 + 1328: 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 + 1329: 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 + 1330: 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 + 1331: 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 + 1332: 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 + 1333: 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 + 1334: 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 + 1335: 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 + 1336: 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 + 1337: 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 + 1338: 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 + 1339: 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 + 1340: 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 + 1341: 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 + 1342: 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 + 1343: 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 + 1344: 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 + 1345: 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 + 1346: 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 + 1347: 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 + 1348: 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 + 1349: 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 + 1350: 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 + 1351: 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 + 1352: 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 + 1353: 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 + 1354: 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 + 1355: 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 + 1356: 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 + 1357: 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 + 1358: 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 + 1359: 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 + 1360: 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 + 1361: 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 + 1362: 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 + 1363: 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 + 1364: 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 + 1365: 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 + 1366: 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 + 1367: 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 + 1368: 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 + 1369: 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 + 1370: 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 + 1371: 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 + 1372: 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 + 1373: 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 + 1374: 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 + 1375: 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 + 1376: 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 + 1377: 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 + 1378: 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 + 1379: 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 + 1380: 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 + 1381: 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 + 1382: 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 + 1383: 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 + 1384: 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 + 1385: 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 + 1386: 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 + 1387: 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 + 1388: 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 + 1389: 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 + 1390: 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 + 1391: 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 + 1392: 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 + 1393: 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 + 1394: 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 + 1395: 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 + 1396: 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 + 1397: 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 + 1398: 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 + 1399: 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 + 1400: 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 + 1401: 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 + 1402: 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 + 1403: 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 + 1404: 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 + 1405: 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 + 1406: 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 + 1407: 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 + 1408: 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 + 1409: 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 + 1410: 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 + 1411: 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 + 1412: 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 + 1413: 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 + 1414: 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 + 1415: 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 + 1416: 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 + 1417: 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 + 1418: 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 + 1419: 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 + 1420: 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 + 1421: 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 + 1422: 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 + 1423: 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 + 1424: 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 + 1425: 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 + 1426: 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 + 1427: 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 + 1428: 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 + 1429: 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 + 1430: 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 + 1431: 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 + 1432: 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 + 1433: 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 + 1434: 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 + 1435: 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 + 1436: 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 + 1437: 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 + 1438: 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 + 1439: 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 + 1440: 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 + 1441: 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 + 1442: 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 + 1443: 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 + 1444: 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 + 1445: 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 + 1446: 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 + 1447: 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 + 1448: 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 + 1449: 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 + 1450: 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 + 1451: 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 + 1452: 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 + 1453: 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 + 1454: 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 + 1455: 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 + 1456: 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 + 1457: 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 + 1458: 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 + 1459: 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 + 1460: 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 + 1461: 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 + 1462: 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 + 1463: 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 + 1464: 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 + 1465: 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 + 1466: 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 + 1467: 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 + 1468: 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 + 1469: 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 + 1470: 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 + 1471: 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 + 1472: 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 + 1473: 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 + 1474: 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 + 1475: 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 + 1476: 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 + 1477: 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 + 1478: 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 + 1479: 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 + 1480: 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 + 1481: 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 + 1482: 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 + 1483: 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 + 1484: 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 + 1485: 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 + 1486: 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 + 1487: 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 + 1488: 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 + 1489: 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 + 1490: 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 + 1491: 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 + 1492: 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 + 1493: 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 + 1494: 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 + 1495: 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 + 1496: 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 + 1497: 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 + 1498: 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 + 1499: 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 + 1500: 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 + 1501: 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 + 1502: 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 + 1503: 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 + 1504: 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 + 1505: 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 + 1506: 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 + 1507: 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 + 1508: 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 + 1509: 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 + 1510: 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 + 1511: 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 + 1512: 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 + 1513: 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 + 1514: 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 + 1515: 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 + 1516: 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 + 1517: 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 + 1518: 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 + 1519: 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 + 1520: 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 + 1521: 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 + 1522: 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 + 1523: 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 + 1524: 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 + 1525: 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 + 1526: 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 + 1527: 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 + 1528: 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 + 1529: 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 + 1530: 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 + 1531: 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 + 1532: 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 + 1533: 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 + 1534: 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 + 1535: 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 + 1536: 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 + 1537: 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 + 1538: 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 + 1539: 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 + 1540: 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 + 1541: 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 + 1542: 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 + 1543: 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 + 1544: 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 + 1545: 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 + 1546: 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 + 1547: 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 + 1548: 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 + 1549: 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 + 1550: 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 + 1551: 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 + 1552: 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 + 1553: 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 + 1554: 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 + 1555: 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 + 1556: 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 + 1557: 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 + 1558: 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 + 1559: 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 + 1560: 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 + 1561: 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 + 1562: 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 + 1563: 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 + 1564: 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 + 1565: 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 + 1566: 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 + 1567: 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 + 1568: 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 + 1569: 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 + 1570: 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 + 1571: 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 + 1572: 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 + 1573: 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 + 1574: 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 + 1575: 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 + 1576: 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 + 1577: 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 + 1578: 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 + 1579: 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 + 1580: 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 + 1581: 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 + 1582: 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 + 1583: 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 + 1584: 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 + 1585: 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 + 1586: 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 + 1587: 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 + 1588: 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 + 1589: 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 + 1590: 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 + 1591: 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 + 1592: 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 + 1593: 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 + 1594: 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 + 1595: 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 + 1596: 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 + 1597: 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 + 1598: 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 + 1599: 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 + 1600: 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 + 1601: 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 + 1602: 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 + 1603: 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 + 1604: 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 + 1605: 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 + 1606: 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 + 1607: 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 + 1608: 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 + 1609: 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 + 1610: 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 + 1611: 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 + 1612: 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 + 1613: 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 + 1614: 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 + 1615: 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 + 1616: 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 + 1617: 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 + 1618: 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 + 1619: 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 + 1620: 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 + 1621: 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 + 1622: 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 + 1623: 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 + 1624: 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 + 1625: 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 + 1626: 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 + 1627: 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 + 1628: 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 + 1629: 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 + 1630: 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 + 1631: 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 + 1632: 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 + 1633: 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 + 1634: 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 + 1635: 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 + 1636: 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 + 1637: 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 + 1638: 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 + 1639: 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 + 1640: 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 + 1641: 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 + 1642: 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 + 1643: 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 + 1644: 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 + 1645: 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 + 1646: 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 + 1647: 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 + 1648: 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 + 1649: 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 + 1650: 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 + 1651: 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 + 1652: 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 + 1653: 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 + 1654: 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 + 1655: 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 + 1656: 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 + 1657: 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 + 1658: 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 + 1659: 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 + 1660: 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 + 1661: 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 + 1662: 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 + 1663: 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 + 1664: 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 + 1665: 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 + 1666: 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 + 1667: 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 + 1668: 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 + 1669: 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 + 1670: 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 + 1671: 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 + 1672: 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 + 1673: 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 + 1674: 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 + 1675: 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 + 1676: 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 + 1677: 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 + 1678: 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 + 1679: 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 + 1680: 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 + 1681: 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 + 1682: 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 + 1683: 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 + 1684: 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 + 1685: 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 + 1686: 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 + 1687: 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 + 1688: 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 + 1689: 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 + 1690: 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 + 1691: 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 + 1692: 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 + 1693: 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 + 1694: 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 + 1695: 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 + 1696: 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 + 1697: 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 + 1698: 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 + 1699: 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 + 1700: 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 + 1701: 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 + 1702: 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 + 1703: 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 + 1704: 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 + 1705: 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 + 1706: 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 + 1707: 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 + 1708: 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 + 1709: 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 + 1710: 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 + 1711: 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 + 1712: 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 + 1713: 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 + 1714: 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 + 1715: 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 + 1716: 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 + 1717: 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 + 1718: 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 + 1719: 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 + 1720: 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 + 1721: 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 + 1722: 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 + 1723: 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 + 1724: 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 + 1725: 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 + 1726: 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 + 1727: 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 + 1728: 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 + 1729: 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 + 1730: 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 + 1731: 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 + 1732: 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 + 1733: 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 + 1734: 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 + 1735: 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 + 1736: 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 + 1737: 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 + 1738: 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 + 1739: 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 + 1740: 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 + 1741: 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 + 1742: 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 + 1743: 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 + 1744: 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 + 1745: 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 + 1746: 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 + 1747: 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 + 1748: 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 + 1749: 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 + 1750: 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 + 1751: 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 + 1752: 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 + 1753: 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 + 1754: 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 + 1755: 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 + 1756: 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 + 1757: 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 + 1758: 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 + 1759: 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 + 1760: 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 + 1761: 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 + 1762: 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 + 1763: 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 + 1764: 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 + 1765: 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 + 1766: 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 + 1767: 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 + 1768: 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 + 1769: 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 + 1770: 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 + 1771: 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 + 1772: 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 + 1773: 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 + 1774: 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 + 1775: 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 + 1776: 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 + 1777: 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 + 1778: 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 + 1779: 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 + 1780: 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 + 1781: 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 + 1782: 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 + 1783: 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 + 1784: 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 + 1785: 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 + 1786: 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 + 1787: 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 + 1788: 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 + 1789: 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 + 1790: 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 + 1791: 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 + 1792: 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 + 1793: 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 + 1794: 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 + 1795: 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 + 1796: 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 + 1797: 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 + 1798: 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 + 1799: 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 + 1800: 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 + 1801: 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 + 1802: 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 + 1803: 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 + 1804: 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 + 1805: 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 + 1806: 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 + 1807: 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 + 1808: 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 + 1809: 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 + 1810: 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 + 1811: 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 + 1812: 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 + 1813: 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 + 1814: 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 + 1815: 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 + 1816: 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 + 1817: 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 + 1818: 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 + 1819: 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 + 1820: 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 + 1821: 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 + 1822: 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 + 1823: 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 + 1824: 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 + 1825: 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 + 1826: 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 + 1827: 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 + 1828: 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 + 1829: 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 + 1830: 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 + 1831: 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 + 1832: 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 + 1833: 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 + 1834: 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 + 1835: 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 + 1836: 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 + 1837: 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 + 1838: 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 + 1839: 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 + 1840: 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 + 1841: 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 + 1842: 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 + 1843: 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 + 1844: 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 + 1845: 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 + 1846: 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 + 1847: 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 + 1848: 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 + 1849: 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 + 1850: 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 + 1851: 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 + 1852: 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 + 1853: 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 + 1854: 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 + 1855: 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 + 1856: 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 + 1857: 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 + 1858: 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 + 1859: 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 + 1860: 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 + 1861: 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 + 1862: 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 + 1863: 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 + 1864: 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 + 1865: 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 + 1866: 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 + 1867: 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 + 1868: 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 + 1869: 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 + 1870: 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 + 1871: 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 + 1872: 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 + 1873: 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 + 1874: 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 + 1875: 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 + 1876: 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 + 1877: 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 + 1878: 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 + 1879: 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 + 1880: 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 + 1881: 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 + 1882: 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 + 1883: 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 + 1884: 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 + 1885: 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 + 1886: 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 + 1887: 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 + 1888: 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 + 1889: 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 + 1890: 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 + 1891: 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 + 1892: 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 + 1893: 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 + 1894: 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 + 1895: 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 + 1896: 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 + 1897: 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 + 1898: 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 + 1899: 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 + 1900: 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 + 1901: 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 + 1902: 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 + 1903: 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 + 1904: 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 + 1905: 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 + 1906: 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 + 1907: 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 + 1908: 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 + 1909: 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 + 1910: 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 + 1911: 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 + 1912: 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 + 1913: 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 + 1914: 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 + 1915: 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 + 1916: 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 + 1917: 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 + 1918: 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 + 1919: 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 + 1920: 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 + 1921: 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 + 1922: 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 + 1923: 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 + 1924: 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 + 1925: 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 + 1926: 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 + 1927: 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 + 1928: 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 + 1929: 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 + 1930: 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 + 1931: 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 + 1932: 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 + 1933: 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 + 1934: 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 + 1935: 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 + 1936: 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 + 1937: 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 + 1938: 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 + 1939: 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 + 1940: 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 + 1941: 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 + 1942: 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 + 1943: 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 + 1944: 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 + 1945: 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 + 1946: 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 + 1947: 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 + 1948: 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 + 1949: 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 + 1950: 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 + 1951: 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 + 1952: 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 + 1953: 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 + 1954: 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 + 1955: 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 + 1956: 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 + 1957: 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 + 1958: 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 + 1959: 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 + 1960: 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 + 1961: 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 + 1962: 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 + 1963: 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 + 1964: 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 + 1965: 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 + 1966: 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 + 1967: 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 + 1968: 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 + 1969: 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 + 1970: 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 + 1971: 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 + 1972: 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 + 1973: 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 + 1974: 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 + 1975: 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 + 1976: 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 + 1977: 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 + 1978: 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 + 1979: 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 + 1980: 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 + 1981: 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 + 1982: 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 + 1983: 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 + 1984: 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 + 1985: 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 + 1986: 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 + 1987: 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 + 1988: 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 + 1989: 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 + 1990: 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 + 1991: 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 + 1992: 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 + 1993: 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 + 1994: 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 + 1995: 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 + 1996: 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 + 1997: 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 + 1998: 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 + 1999: 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 + 2000: 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2001: 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2002: 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2003: 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2004: 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2005: 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2006: 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2007: 1993 1994 1995 1996 1997 1998 1999 2000 + 2008: 1994 1995 1996 1997 1998 1999 2000 + 2009: 1995 1996 1997 1998 1999 2000 + 2010: 1996 1997 1998 1999 2000 + 2011: 1997 1998 1999 2000 + 2012: 1998 1999 2000 + 2013: 1999 2000 + 2014: 2000 Done. From mbishop at esoteriq.org Mon Oct 19 21:28:12 2009 From: mbishop at esoteriq.org (Martin Bishop) Date: Mon, 19 Oct 2009 14:28:12 -0500 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 In-Reply-To: <20091019021513.GA27389@topoi.pooq.com> References: <20091019021513.GA27389@topoi.pooq.com> Message-ID: <4ADCBDCC.3020102@esoteriq.org> I don't think it's just you. I remember installing m3gdb (or trying to) and having it not work. I'm retrying now to see if I can get it installed. hendrik at topoi.pooq.com wrote: > m3gdb doesn's seem to install. > Is this a known problem? > Has it been fixed in CVS and therefore should be OK in RC4? > Or is it likely I've done something horribly wrong before now? > (I have been doing a number of installations and ununstallations on > this machine to provide you with error reports, so it's > conceivable that there's some crud around somewhere.) > > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ script m3gdblog > Script started, file is m3gdblog > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ tar -zxf > /home/hendrik/Desktop/cm3-bin-ws-m3gdb-LINUXLIBC6-5.8.3-RC3.tgz > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls > collection-m3gdb.html install.sh m3gdblog m3-sys setup.cmd > setup.txt > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ./install.sh > installing package m3-sys/m3gdb > --- shipping from LINUXLIBC6 --- > > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls /usr/local/cm3/bin > cm3 cm3.cfg cm3cg cm3ide config formsedit m3bundle mklib > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ exit > Script done, file is m3gdblog > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ > > -- hendrik > > > From mbishop at esoteriq.org Mon Oct 19 21:35:47 2009 From: mbishop at esoteriq.org (Martin Bishop) Date: Mon, 19 Oct 2009 14:35:47 -0500 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 In-Reply-To: <4ADCBDCC.3020102@esoteriq.org> References: <20091019021513.GA27389@topoi.pooq.com> <4ADCBDCC.3020102@esoteriq.org> Message-ID: <4ADCBF93.2040107@esoteriq.org> Yeah just tried installing again, all I get when I run the install.sh is: installing package m3-sys/m3gdb --- shipping from LINUXLIBC6 --- And that's it. No m3gdb binary anywhere, and the config.log in m3gdb/LINUXLIBC6 directory has no errors. Martin Bishop wrote: > I don't think it's just you. I remember installing m3gdb (or trying > to) and having it not work. I'm retrying now to see if I can get it > installed. > > hendrik at topoi.pooq.com wrote: >> m3gdb doesn's seem to install. >> Is this a known problem? >> Has it been fixed in CVS and therefore should be OK in RC4? >> Or is it likely I've done something horribly wrong before now? >> (I have been doing a number of installations and ununstallations on >> this machine to provide you with error reports, so it's conceivable >> that there's some crud around somewhere.) >> >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ script m3gdblog >> Script started, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ tar -zxf >> /home/hendrik/Desktop/cm3-bin-ws-m3gdb-LINUXLIBC6-5.8.3-RC3.tgz >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> collection-m3gdb.html install.sh m3gdblog m3-sys setup.cmd >> setup.txt >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ./install.sh installing package >> m3-sys/m3gdb >> --- shipping from LINUXLIBC6 --- >> >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls /usr/local/cm3/bin >> cm3 cm3.cfg cm3cg cm3ide config formsedit m3bundle mklib >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ exit >> Script done, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ >> -- hendrik >> >> >> > > From rodney.m.bates at cox.net Mon Oct 19 23:24:17 2009 From: rodney.m.bates at cox.net (Rodney M. Bates) Date: Mon, 19 Oct 2009 16:24:17 -0500 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 In-Reply-To: <20091019021513.GA27389@topoi.pooq.com> References: <20091019021513.GA27389@topoi.pooq.com> Message-ID: <4ADCD901.1010509@cox.net> Hmm, I've never seen this. I don't know where install.sh is coming from. The only thing in the repository I can find by that name is inside the copy of readline that is in gdb, and it is clearly not the script in question. I always use scripts/do-cm3-m3gdb.sh or do-cm3-.sh, with build or buildship, which runs cm3 in m3-sys/m3gdb, which uses m3-sys/m3gdb/src/m3makefile, which contains. starting at line 126: % build the exportable link and man page and export them cp_if ("gdb/gdb" & EXE, "m3gdb" & EXE) BindExport ("m3gdb" & EXE) ManPage ("m3gdb","1") Note that the compiled executable is in m3-sys/m3gdb/LINUXLIBC6/gdb/gdb, a different name than the one installed. This is no doubt a leftover from m3gdb's being derived from gdb. The line 127 above looks like it takes care of the rename. For me, both "do-cm3-m3gdb ship" (in scripts) and the cm3 -ship command it executes (in m3-sys/m3gdb) install a copy in /usr/local/cm3/bin, as expected. Where does install.sh come from? hendrik at topoi.pooq.com wrote: > m3gdb doesn's seem to install. > Is this a known problem? > Has it been fixed in CVS and therefore should be OK in RC4? > Or is it likely I've done something horribly wrong before now? > (I have been doing a number of installations and ununstallations on > this machine to provide you with error reports, so it's > conceivable that there's some crud around somewhere.) > > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ script m3gdblog > Script started, file is m3gdblog > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ tar -zxf > /home/hendrik/Desktop/cm3-bin-ws-m3gdb-LINUXLIBC6-5.8.3-RC3.tgz > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls > collection-m3gdb.html install.sh m3gdblog m3-sys setup.cmd > setup.txt > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ./install.sh > installing package m3-sys/m3gdb > --- shipping from LINUXLIBC6 --- > > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls /usr/local/cm3/bin > cm3 cm3.cfg cm3cg cm3ide config formsedit m3bundle mklib > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ exit > Script done, file is m3gdblog > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ > > -- hendrik > > > From jay.krell at cornell.edu Tue Oct 20 00:52:41 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Mon, 19 Oct 2009 16:52:41 -0600 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 In-Reply-To: <4ADCBDCC.3020102@esoteriq.org> References: <20091019021513.GA27389@topoi.pooq.com> <4ADCBDCC.3020102@esoteriq.org> Message-ID: <687825D2-21DD-40AF-84F0-E79F7B90A469@hotmail.com> Olaf did fix a problem here, something about hardlink vs. copyfile. - Jay (phone) On Oct 19, 2009, at 1:28 PM, Martin Bishop wrote: > I don't think it's just you. I remember installing m3gdb (or trying > to) and having it not work. I'm retrying now to see if I can get it > installed. > > hendrik at topoi.pooq.com wrote: >> m3gdb doesn's seem to install. >> Is this a known problem? >> Has it been fixed in CVS and therefore should be OK in RC4? >> Or is it likely I've done something horribly wrong before now? >> (I have been doing a number of installations and ununstallations on >> this machine to provide you with error reports, so it's conceivable >> that there's some crud around somewhere.) >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ script m3gdblog >> Script started, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ tar -zxf /home/hendrik/ >> Desktop/cm3-bin-ws-m3gdb-LINUXLIBC6-5.8.3-RC3.tgz >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> collection-m3gdb.html install.sh m3gdblog m3-sys setup.cmd >> setup.txt >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ./install.sh installing >> package m3-sys/m3gdb >> --- shipping from LINUXLIBC6 --- >> >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls /usr/local/cm3/bin >> cm3 cm3.cfg cm3cg cm3ide config formsedit m3bundle mklib >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ exit >> Script done, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ >> -- hendrik >> >> >> > > From jay.krell at cornell.edu Tue Oct 20 00:55:21 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Mon, 19 Oct 2009 16:55:21 -0600 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 In-Reply-To: <4ADCD901.1010509@cox.net> References: <20091019021513.GA27389@topoi.pooq.com> <4ADCD901.1010509@cox.net> Message-ID: cd scripts grep install.sh * It is there. - Jay (phone) On Oct 19, 2009, at 3:24 PM, "Rodney M. Bates" wrote: > Hmm, I've never seen this. I don't know where install.sh is > coming from. The only thing in the repository I can find by > that name is inside the copy of readline that is in gdb, and it > is clearly not the script in question. > I always use scripts/do-cm3-m3gdb.sh or do-cm3-.sh, > with build or buildship, which runs cm3 in m3-sys/m3gdb, which > uses m3-sys/m3gdb/src/m3makefile, which contains. starting at > line 126: > > % build the exportable link and man page and export them > cp_if ("gdb/gdb" & EXE, "m3gdb" & EXE) > BindExport ("m3gdb" & EXE) > ManPage ("m3gdb","1") > > Note that the compiled executable is in m3-sys/m3gdb/LINUXLIBC6/gdb/ > gdb, > a different name than the one installed. This is no doubt a > leftover from > m3gdb's being derived from gdb. The line 127 above looks like it > takes care > of the rename. > For me, both "do-cm3-m3gdb ship" (in scripts) and the cm3 -ship > command > it executes (in m3-sys/m3gdb) install a copy in /usr/local/cm3/bin, > as expected. > > Where does install.sh come from? > > > > hendrik at topoi.pooq.com wrote: >> m3gdb doesn's seem to install. >> Is this a known problem? >> Has it been fixed in CVS and therefore should be OK in RC4? >> Or is it likely I've done something horribly wrong before now? >> (I have been doing a number of installations and ununstallations on >> this machine to provide you with error reports, so it's conceivable >> that there's some crud around somewhere.) >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ script m3gdblog >> Script started, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ tar -zxf /home/hendrik/ >> Desktop/cm3-bin-ws-m3gdb-LINUXLIBC6-5.8.3-RC3.tgz >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> collection-m3gdb.html install.sh m3gdblog m3-sys setup.cmd >> setup.txt >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ./install.sh installing >> package m3-sys/m3gdb >> --- shipping from LINUXLIBC6 --- >> >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls /usr/local/cm3/bin >> cm3 cm3.cfg cm3cg cm3ide config formsedit m3bundle mklib >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ exit >> Script done, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ >> -- hendrik >> >> >> > > From wagner at elegosoft.com Tue Oct 20 10:20:23 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Tue, 20 Oct 2009 10:20:23 +0200 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 In-Reply-To: <4ADCD901.1010509@cox.net> References: <20091019021513.GA27389@topoi.pooq.com> <4ADCD901.1010509@cox.net> Message-ID: <20091020102023.53ogyzmtjc4kgwsg@mail.elegosoft.com> install.sh is the name of the installation script of each of the cm3-bin-ws-* packages. I seem to remember that m3dgb was just linked on several platforms and the actual installation failed. It will probably be fixed in the RC4 archives, as soon as the remaining thread problems are understood. As all the RC3 archives contain these thread problems they were never announced in the usenet. I had hoped that we would be able to replace them by RC4 (and a final release) soon, but matters are still unresolved. Help fixing the remaining thread problems or any of the other open issues at https://projects.elego.de/cm3/query?status=resolved&status=reopened&status=assigned&status=analyzed&status=new&status=accepted&group=status&milestone=CM3+Release+5.8+RC4 and https://projects.elego.de/cm3/query?status=resolved&status=reopened&status=assigned&status=analyzed&status=new&status=accepted&group=status&milestone=CM3+release+5.8 will be appreciated. Olaf Quoting "Rodney M. Bates" : > Hmm, I've never seen this. I don't know where install.sh is > coming from. The only thing in the repository I can find by > that name is inside the copy of readline that is in gdb, and it > is clearly not the script in question. I always use > scripts/do-cm3-m3gdb.sh or do-cm3-.sh, > with build or buildship, which runs cm3 in m3-sys/m3gdb, which > uses m3-sys/m3gdb/src/m3makefile, which contains. starting at > line 126: > > % build the exportable link and man page and export them > cp_if ("gdb/gdb" & EXE, "m3gdb" & EXE) > BindExport ("m3gdb" & EXE) > ManPage ("m3gdb","1") > > Note that the compiled executable is in m3-sys/m3gdb/LINUXLIBC6/gdb/gdb, > a different name than the one installed. This is no doubt a leftover from > m3gdb's being derived from gdb. The line 127 above looks like it takes care > of the rename. For me, both "do-cm3-m3gdb ship" (in scripts) and the > cm3 -ship command > it executes (in m3-sys/m3gdb) install a copy in /usr/local/cm3/bin, as > expected. > > Where does install.sh come from? > > > > hendrik at topoi.pooq.com wrote: >> m3gdb doesn's seem to install. >> Is this a known problem? >> Has it been fixed in CVS and therefore should be OK in RC4? >> Or is it likely I've done something horribly wrong before now? >> (I have been doing a number of installations and ununstallations on >> this machine to provide you with error reports, so it's conceivable >> that there's some crud around somewhere.) >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ script m3gdblog >> Script started, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ tar -zxf >> /home/hendrik/Desktop/cm3-bin-ws-m3gdb-LINUXLIBC6-5.8.3-RC3.tgz >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> collection-m3gdb.html install.sh m3gdblog m3-sys setup.cmd setup.txt >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ./install.sh installing >> package m3-sys/m3gdb >> --- shipping from LINUXLIBC6 --- >> >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls /usr/local/cm3/bin >> cm3 cm3.cfg cm3cg cm3ide config formsedit m3bundle mklib >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ exit >> Script done, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ -- hendrik >> >> >> -- Olaf Wagner -- elego Software Solutions GmbH Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95 http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194 From rcoleburn at scires.com Tue Oct 20 18:23:04 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Tue, 20 Oct 2009 12:23:04 -0400 Subject: [M3devel] condition variables/win32 In-Reply-To: References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> Message-ID: <4ADDAADA.1E75.00D7.1@scires.com> Jay: I think we would need to delve deep into the implementation to be able to answer all your questions precisely. I've attached a short paper by Andrew Birrell "Implementing Condition Variables with Semaphores" that you may find interesting / enlightening. My concern about using multiple mutex with same condition lies in the queuing operations. My recollection is that I've always associated only one mutex with a condition variable, but that you can have multiple conditions associated with the same mutex. I will go back and re-read Nelson again--its been a few years. Regards, Randy Coleburn >>> Jay K 10/18/2009 4:16 AM >>> I still have questions here. 1) Page 93 of the Nelson book: A monitor consists of some data, a mutex, and zero or more condition variables. A particular condition variable is always used in conjunction with the same mutex and its data. Doesn't this contradict the point made here? Does a condition variable always map to the same mutex or not? Or is this merely describing a typical usage pattern that is a subset of what interface Thread allows? 2) Can Wait only be satisfied by Signal/Broadcast, or also just via UnlockMutex? Depending on the answer to these questions, it seems you can largely merge mutex and condition variable. Condition variable is basically waiting for a thread to exit a mutex. Which is very very similar to LockMutex, except that it doesn't want to take the mutex in the uncontended case, it actually wants to wait for another thread to both acquire and release the mutex. I suspect I'm wrong on both of these. That condition variable really can use multiple mutexes. That exiting a mutex has no obligation to wake condition variables, though it might be in good faith to do so...er..if it is in good faith to not require programmer to use Signal/Broadcast. Thanks, - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu; mika at async.async.caltech.edu Date: Thu, 8 Oct 2009 19:13:03 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] condition variables/win32 That seems a little strange to me but I guess I'll have to keep it in mind. - Jay From: hosking at cs.purdue.edu To: mika at async.async.caltech.edu Date: Thu, 8 Oct 2009 11:00:36 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] condition variables/win32 Sorry, yes, you are right of course! The Modula-3 spec (and the current pthreads-based implementation as also the win32 implementation I expect) do allow a condition variable being mediated by different mutexes. My comment was clouded by my recollection from the pthreads spec that for pthread mutex/cv behavior for other than 1 mutex per cv is undefined. This confusion may have been the source of prior bugs in the pthreads threading implementation, but those bugs are gone now. We support the M3 spec properly. On 8 Oct 2009, at 10:34, Mika Nystrom wrote: Why can't you use the same condition variable with different mutexes? This is dynamic, up to the M3 programmer, no? Tony Hosking writes: --Apple-Mail-96--321618545 Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit In general, it is OK in M3 to associate multiple conditions with the same mutex. But not vice versa. On 8 Oct 2009, at 09:32, Jay K wrote: condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay --Apple-Mail-96--321618545 Content-Type: text/html; charset=US-ASCII Content-Transfer-Encoding: quoted-printable
In = general, it is OK in M3 to associate multiple conditions with the same = mutex.  But not vice versa.

On 8 Oct 2009, = at 09:32, Jay K wrote:

condition = variables/win32
 

So..one way I think about condition = variables
is that you want to be woken when someone else
leaves = the mutex that guards the data that you are dealing with.
You want to = know when another thread modifies the data.
(If you have a = reader/writer lock, you only want to be
woken when someone exits a = write.)
 

Now, if you consider a producer/consumer = queue.
There are two interesting occurences.
Transitions from = empty to non-empty
and transitions from full to non-full = (optionally,
if it is fixed size).
 

Consumers wait = for empty to non-empty.
Consumers signal full to = non-full.
Producers wait for full to non-full.
Producers signal = non-empty to empty.
 

So, in this case, one mutex is = likely used with with two condition = variables.
 

But, what if we take a simplifying = deoptimization and assume that a condition
variable is only ever = associated with one mutex?
Anyone existing that mutex wakes up anyone = waiting on any condition associated with it?
Like, a condition = variable I think becomes stateless and everything is
about the = mutex?
 
 
What is the = downside?
 

Condition variables are allowed to have = spurious wakeups.
This would "just" increase them. Too = much?
 

So, therefore, what would be wrong with the = following design?
 a mutex contains an event 
 and a number of = waiters, zero or non-zero 
 if a mutex is = exiting with a non-zero number of waiters, signal the = event
 

To handle Signal vs. Broadcast
method = 1:
 the number of waiters might be interlocked
 the = woken would decrement it
 if it isn't zero, signal the event = again
 

method 2:
 the number of waiters is both = an integer and a semaphore
 and the lock exiter raises the = semaphore by the the integer

 
method 3:
 it is = not an auto-reset event and there is a count
  and when the = count goes to 0, reset the event
 I think in this case you have = to maintain a "wait generation" 
 so that new = waiters don't prevent the count from ever hitting 0.
 I think = this #3 is what Java might be doing, and is described here:
http://www.cs.wu ( http://www.cs.wu/ )= stl.edu/~schmidt/win32-cv-1.html
 "3.3. The Generation Count = Solution"

 
also:
http://www.cs.wu ( http://www.cs.wu/ )= stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = Solution
Evaluating the SetEvent Solution
Incorrectness -- 
 

Is that = incorrect case really necessarily incorrect?
It seems unfair, since = first waiter should be first woken, but..?

 
Am I missing = something? A lot?
 

 - = Jay

= --Apple-Mail-96--321618545-- CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: ImplementingCVs.pdf Type: application/pdf Size: 155564 bytes Desc: not available URL: From hendrik at topoi.pooq.com Tue Oct 20 18:23:43 2009 From: hendrik at topoi.pooq.com (hendrik at topoi.pooq.com) Date: Tue, 20 Oct 2009 12:23:43 -0400 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 In-Reply-To: <20091020102023.53ogyzmtjc4kgwsg@mail.elegosoft.com> References: <20091019021513.GA27389@topoi.pooq.com> <4ADCD901.1010509@cox.net> <20091020102023.53ogyzmtjc4kgwsg@mail.elegosoft.com> Message-ID: <20091020162343.GA30861@topoi.pooq.com> On Tue, Oct 20, 2009 at 10:20:23AM +0200, Olaf Wagner wrote: > install.sh is the name of the installation script of each of > the > cm3-bin-ws-* packages. I seem to remember that m3dgb was just > linked > on several platforms and the actual installation failed. It > will probably > be fixed in the RC4 archives, as soon as the remaining thread > problems > are understood. > > As all the RC3 archives contain these thread problems they > were never > announced in the usenet. I had hoped that we would be able to > replace > them by RC4 (and a final release) soon, but matters are still > unresolved. It would be useful if there were a working cm3-bin-ws-m3gdb-I386_OPENBSD-5.8.3-RC3.tgz available, or mayme a cm3-bin-ws-m3gdb-I386_OPENBSD-5.8.3-RC3a.tgz before a definitive answer to the thread problems. If nothing else, it could tell us if the installation problem with m3gdb has indeed been solved. -- hendrik From hendrik at topoi.pooq.com Tue Oct 20 21:35:12 2009 From: hendrik at topoi.pooq.com (hendrik at topoi.pooq.com) Date: Tue, 20 Oct 2009 15:35:12 -0400 Subject: [M3devel] cvs size Message-ID: <20091020193512.GA31133@topoi.pooq.com> I just downloaded the entire CVS using cvsup and the control file with the non-comment lines *default host=modula3.elegosoft.com *default base=/farhome/hendrik/cm3/CVSUP/cvs *default prefix=/farhome/hendrik/cm3/CVSUP/cvs *default compress *default preserve and it ended up using a big pile of disk space: #cvsroot hendrik at lovesong:~/cm3/CVSUP$ du -s cvs 1390120 cvs hendrik at lovesong:~/cm3/CVSUP$ Is it likely that I've got everything that the m3 developers might want to have in a distributed versioning system? If so, I'll start experimenting with conversions. -- hendrik From jay.krell at cornell.edu Tue Oct 20 22:26:27 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Tue, 20 Oct 2009 13:26:27 -0700 Subject: [M3devel] condition variables/win32 In-Reply-To: <4ADDAADA.1E75.00D7.1@scires.com> References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> <4ADDAADA.1E75.00D7.1@scires.com> Message-ID: I will read the paper, thanks. The java code demonstrates I believe some important applicable methods. I hope to have a "new" ThreadWin32.m3 "soon". In particular, no per-thread event, no wait lists, and counter to help matching up condition waits and signals. And no giant lock. And stil an efficient mutex with no kernel involvement unless there is contention, could/ might use win32 criticalsection with little extra to avoid recursion, or could use something smaller. And no use of SignalObjectAndWait whose documentation recently changed to remove the atomicity claim! - Jay (phone) On Oct 20, 2009, at 9:23 AM, "Randy Coleburn" wrote: > Jay: > > I think we would need to delve deep into the implementation to be > able to answer all your questions precisely. > > I've attached a short paper by Andrew Birrell "Implementing > Condition Variables with Semaphores" that you may find interesting / > enlightening. > > My concern about using multiple mutex with same condition lies in > the queuing operations. My recollection is that I've always > associated only one mutex with a condition variable, but that you > can have multiple conditions associated with the same mutex. > > I will go back and re-read Nelson again--its been a few years. > > Regards, > Randy Coleburn > > >>> Jay K 10/18/2009 4:16 AM >>> > I still have questions here. > > 1) > Page 93 of the Nelson book: > A monitor consists of some data, a mutex, and zero or more condition > variables. A particular condition variable is always used > in conjunction with the same mutex and its data. > > Doesn't this contradict the point made here? > Does a condition variable always map to the same mutex > or not? > > Or is this merely describing a typical usage pattern that is > a subset of what interface Thread allows? > > > 2) > Can Wait only be satisfied by Signal/Broadcast, > or also just via UnlockMutex? > > > Depending on the answer to these questions, > it seems you can largely merge mutex and condition variable. > > > Condition variable is basically waiting for a > thread to exit a mutex. > Which is very very similar to LockMutex, except > that it doesn't want to take the mutex in the uncontended > case, it actually wants to wait for another thread > to both acquire and release the mutex. > > > I suspect I'm wrong on both of these. > That condition variable really can use multiple mutexes. > That exiting a mutex has no obligation to wake condition variables, > though it might be in good faith to do so...er..if it is > in good faith to not require programmer to use Signal/Broadcast. > > > Thanks, > - Jay > > > > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu; mika at async.async.caltech.edu > Date: Thu, 8 Oct 2009 19:13:03 +0000 > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] condition variables/win32 > > That seems a little strange to me but I guess I'll have to keep it > in mind. > > - Jay > > > From: hosking at cs.purdue.edu > To: mika at async.async.caltech.edu > Date: Thu, 8 Oct 2009 11:00:36 -0400 > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] condition variables/win32 > > Sorry, yes, you are right of course! The Modula-3 spec (and the > current pthreads-based implementation as also the win32 > implementation I expect) do allow a condition variable being > mediated by different mutexes. My comment was clouded by my > recollection from the pthreads spec that for pthread mutex/cv > behavior for other than 1 mutex per cv is undefined. This confusion > may have been the source of prior bugs in the pthreads threading > implementation, but those bugs are gone now. We support the M3 spec > properly. > > On 8 Oct 2009, at 10:34, Mika Nystrom wrote: > > Why can't you use the same condition variable with different mutexes? > > This is dynamic, up to the M3 programmer, no? > > Tony Hosking writes: > > --Apple-Mail-96--321618545 > Content-Type: text/plain; > charset=US-ASCII; > format=flowed; > delsp=yes > Content-Transfer-Encoding: 7bit > > In general, it is OK in M3 to associate multiple conditions with the > same mutex. But not vice versa. > > On 8 Oct 2009, at 09:32, Jay K wrote: > > condition variables/win32 > > > So..one way I think about condition variables > is that you want to be woken when someone else > leaves the mutex that guards the data that you are dealing with. > You want to know when another thread modifies the data. > (If you have a reader/writer lock, you only want to be > woken when someone exits a write.) > > > Now, if you consider a producer/consumer queue. > There are two interesting occurences. > Transitions from empty to non-empty > and transitions from full to non-full (optionally, > if it is fixed size). > > > Consumers wait for empty to non-empty. > Consumers signal full to non-full. > Producers wait for full to non-full. > Producers signal non-empty to empty. > > > So, in this case, one mutex is likely used with with two condition > variables. > > > But, what if we take a simplifying deoptimization and assume that a > condition > variable is only ever associated with one mutex? > Anyone existing that mutex wakes up anyone waiting on any condition > associated with it? > Like, a condition variable I think becomes stateless and everything is > about the mutex? > > > What is the downside? > > > Condition variables are allowed to have spurious wakeups. > This would "just" increase them. Too much? > > > So, therefore, what would be wrong with the following design? > a mutex contains an event > and a number of waiters, zero or non-zero > if a mutex is exiting with a non-zero number of waiters, signal the > event > > > To handle Signal vs. Broadcast > method 1: > the number of waiters might be interlocked > the woken would decrement it > if it isn't zero, signal the event again > > > method 2: > the number of waiters is both an integer and a semaphore > and the lock exiter raises the semaphore by the the integer > > > method 3: > it is not an auto-reset event and there is a count > and when the count goes to 0, reset the event > I think in this case you have to maintain a "wait generation" > so that new waiters don't prevent the count from ever hitting 0. > I think this #3 is what Java might be doing, and is described here: > http://www.cs.wustl.edu/~schmidt/win32-cv-1.html > "3.3. The Generation Count Solution" > > > also: > http://www.cs.wustl.edu/~schmidt/win32-cv-1.html > 3.2. The SetEvent Solution > Evaluating the SetEvent Solution > Incorrectness -- > > > Is that incorrect case really necessarily incorrect? > It seems unfair, since first waiter should be first woken, but..? > > > Am I missing something? A lot? > > > - Jay > > > --Apple-Mail-96--321618545 > Content-Type: text/html; > charset=US-ASCII > Content-Transfer-Encoding: quoted-printable > > space; = > -webkit-line-break: after-white-space; ">
apple-content-edited=3D"true"> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- > family: = > Helvetica; font-size: 12px; font-style: normal; font-variant: > normal; = > font-weight: normal; letter-spacing: normal; line-height: normal; = > orphans: 2; text-align: auto; text-indent: 0px; text-transform: > none; = > white-space: normal; widows: 2; word-spacing: 0px; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- > adjust: = > auto; -webkit-text-stroke-width: 0; ">
break-word; -webkit-nbsp-mode: space; -webkit-line-break: = > after-white-space; "> style=3D"border-collapse: separate; -webkit-border-horizontal- > spacing: = > 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = > font-family: Helvetica; font-size: 12px; font-style: normal; = > font-variant: normal; font-weight: normal; letter-spacing: normal; = > line-height: normal; -webkit-text-decorations-in-effect: none; = > text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: > none; = > orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; > ">
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = > -webkit-line-break: after-white-space; "> span" = > style=3D"border-collapse: separate; -webkit-border-horizontal- > spacing: = > 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = > font-family: Helvetica; font-size: 12px; font-style: normal; = > font-variant: normal; font-weight: normal; letter-spacing: normal; = > line-height: normal; -webkit-text-decorations-in-effect: none; = > text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: > none; = > orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; > "> class=3D"Apple-style-span" style=3D"border-collapse: separate; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = > font-style: normal; font-variant: normal; font-weight: normal; = > letter-spacing: normal; line-height: normal; = > -webkit-text-decorations-in-effect: none; text-indent: 0px; = > -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = > white-space: normal; widows: 2; word-spacing: 0px; "> class=3D"Apple-style-span" style=3D"border-collapse: separate; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = > font-style: normal; font-variant: normal; font-weight: normal; = > letter-spacing: normal; line-height: normal; = > -webkit-text-decorations-in-effect: none; text-indent: 0px; = > -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = > white-space: normal; widows: 2; word-spacing: 0px; "> class=3D"Apple-style-span" style=3D"border-collapse: separate; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = > font-style: normal; font-variant: normal; font-weight: normal; = > letter-spacing: normal; line-height: normal; = > -webkit-text-decorations-in-effect: none; text-indent: 0px; = > -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = > white-space: normal; widows: 2; word-spacing: 0px; "> class=3D"Apple-style-span" style=3D"border-collapse: separate; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = > font-style: normal; font-variant: normal; font-weight: normal; = > letter-spacing: normal; line-height: normal; = > -webkit-text-decorations-in-effect: none; text-indent: 0px; = > -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = > white-space: normal; widows: 2; word-spacing: 0px; "> class=3D"Apple-style-span" style=3D"border-collapse: separate; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = > font-style: normal; font-variant: normal; font-weight: normal; = > letter-spacing: normal; line-height: normal; = > -webkit-text-decorations-in-effect: none; text-indent: 0px; = > -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = > white-space: normal; widows: 2; word-spacing: 0px; "> class=3D"Apple-style-span" style=3D"border-collapse: separate; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = > font-style: normal; font-variant: normal; font-weight: normal; = > letter-spacing: normal; line-height: normal; = > -webkit-text-decorations-in-effect: none; text-indent: 0px; = > -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = > white-space: normal; widows: 2; word-spacing: 0px; "> class=3D"Apple-style-span" style=3D"border-collapse: separate; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = > font-style: normal; font-variant: normal; font-weight: normal; = > letter-spacing: normal; line-height: normal; = > -webkit-text-decorations-in-effect: none; text-indent: 0px; = > -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = > white-space: normal; widows: 2; word-spacing: 0px; ">
class=3D"Apple-style-span" style=3D"font-size: medium;"> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill Sans'">In = > general, it is OK in M3 to associate multiple conditions with the > same = > mutex.  But not vice versa.
class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill > Sans'"> class=3D"Apple-style-span" style=3D"font-size: = > medium;">
span>
On 8 Oct > 2009, = > at 09:32, Jay K wrote:

class=3D"Apple-interchange-newline">
class=3D"Apple-style-span" style=3D"border-collapse: separate; > color: = > rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font-style: = > normal; font-variant: normal; font-weight: normal; letter-spacing: = > normal; line-height: normal; orphans: 2; text-align: auto; text- > indent: = > 0px; text-transform: none; white-space: normal; widows: 2; word- > spacing: = > 0px; -webkit-border-horizontal-spacing: 0px; = > -webkit-border-vertical-spacing: 0px; = > -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = > auto; -webkit-text-stroke-width: 0px; ">
style=3D"font-size: 10pt; font-family: Verdana; ">condition = > variables/win32
 

So..one way I think about condition = > variables
is that you want to be woken when someone > else
leaves = > the mutex that guards the data that you are dealing with.
You > want to = > know when another thread modifies the data.
(If you have a = > reader/writer lock, you only want to be
woken when someone exits > a = > write.)
 

Now, if you consider a producer/consumer = > queue.
There are two interesting occurences.
Transitions from = > empty to non-empty
and transitions from full to non-full = > (optionally,
if it is fixed size).
 

Consumers > wait = > for empty to non-empty.
Consumers signal full to = > non-full.
Producers wait for full to non-full.
Producers > signal = > non-empty to empty.
 

So, in this case, one mutex is = > likely used with with two condition = > variables.
 

But, what if we take a simplifying = > deoptimization and assume that a condition
variable is only ever = > associated with one mutex?
Anyone existing that mutex wakes up > anyone = > waiting on any condition associated with it?
Like, a condition = > variable I think becomes stateless and everything is
about the = > mutex?
 
 
What is the = > downside?
 

Condition variables are allowed to have = > spurious wakeups.
This would "just" increase them. Too = > much?
 

So, therefore, what would be wrong with the = > following design?
 a mutex contains an event class=3D"Apple-converted-space"> 
 and a number > of = > waiters, zero or non-zero class=3D"Apple-converted-space"> 
 if a mutex is = > exiting with a non-zero number of waiters, signal the = > event
 

To handle Signal vs. Broadcast
method = > 1:
 the number of waiters might be interlocked
 the = > woken would decrement it
 if it isn't zero, signal the event = > again
 

method 2:
 the number of waiters is > both = > an integer and a semaphore
 and the lock exiter raises the = > semaphore by the the integer

 
method 3:
 it > is = > not an auto-reset event and there is a count
  and when the = > count goes to 0, reset the event
 I think in this case you > have = > to maintain a "wait generation" class=3D"Apple-converted-space"> 
 so that new = > waiters don't prevent the count from ever hitting 0.
 I > think = > this #3 is what Java might be doing, and is described here:
href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= > stl.edu/~schmidt/win32-cv-1.html
 "3.3. The Generation > Count = > Solution"

 
also:
href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= > stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = > Solution
Evaluating the SetEvent Solution
Incorrectness -- > class=3D"Apple-converted-space"> 
 

Is > that = > incorrect case really necessarily incorrect?
It seems unfair, > since = > first waiter should be first woken, but..?

 
Am I > missing = > something? A lot?
 

 - = > Jay

= > > --Apple-Mail-96--321618545-- > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Tue Oct 20 23:05:52 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 20 Oct 2009 17:05:52 -0400 Subject: [M3devel] condition variables/win32 In-Reply-To: References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> <4ADDAADA.1E75.00D7.1@scires.com> Message-ID: <76AC92FF-9896-4248-AD3A-25192E85C47D@cs.purdue.edu> Should we not also consider fixing any problems in the existing Win32 threading? That paper does give a very straightforward recipe for building Moulda-3 style mutex/condition semantics using semaphores, which Windows does provide. On 20 Oct 2009, at 16:26, jay.krell at cornell.edu wrote: > I will read the paper, thanks. > > The java code demonstrates I believe some important applicable > methods. I hope to have a "new" ThreadWin32.m3 "soon". In > particular, no per-thread event, no wait lists, and counter to help > matching up condition waits and signals. And no giant lock. And stil > an efficient mutex with no kernel involvement unless there is > contention, could/might use win32 criticalsection with little extra > to avoid recursion, or could use something smaller. And no use of > SignalObjectAndWait whose documentation recently changed to remove > the atomicity claim! > > - Jay (phone) > > On Oct 20, 2009, at 9:23 AM, "Randy Coleburn" > wrote: > >> Jay: >> >> I think we would need to delve deep into the implementation to be >> able to answer all your questions precisely. >> >> I've attached a short paper by Andrew Birrell "Implementing >> Condition Variables with Semaphores" that you may find >> interesting / enlightening. >> >> My concern about using multiple mutex with same condition lies in >> the queuing operations. My recollection is that I've always >> associated only one mutex with a condition variable, but that you >> can have multiple conditions associated with the same mutex. >> >> I will go back and re-read Nelson again--its been a few years. >> >> Regards, >> Randy Coleburn >> >> >>> Jay K 10/18/2009 4:16 AM >>> >> I still have questions here. >> >> 1) >> Page 93 of the Nelson book: >> A monitor consists of some data, a mutex, and zero or more condition >> variables. A particular condition variable is always used >> in conjunction with the same mutex and its data. >> >> Doesn't this contradict the point made here? >> Does a condition variable always map to the same mutex >> or not? >> >> Or is this merely describing a typical usage pattern that is >> a subset of what interface Thread allows? >> >> >> 2) >> Can Wait only be satisfied by Signal/Broadcast, >> or also just via UnlockMutex? >> >> >> Depending on the answer to these questions, >> it seems you can largely merge mutex and condition variable. >> >> >> Condition variable is basically waiting for a >> thread to exit a mutex. >> Which is very very similar to LockMutex, except >> that it doesn't want to take the mutex in the uncontended >> case, it actually wants to wait for another thread >> to both acquire and release the mutex. >> >> >> I suspect I'm wrong on both of these. >> That condition variable really can use multiple mutexes. >> That exiting a mutex has no obligation to wake condition variables, >> though it might be in good faith to do so...er..if it is >> in good faith to not require programmer to use Signal/Broadcast. >> >> >> Thanks, >> - Jay >> >> >> >> From: jay.krell at cornell.edu >> To: hosking at cs.purdue.edu; mika at async.async.caltech.edu >> Date: Thu, 8 Oct 2009 19:13:03 +0000 >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] condition variables/win32 >> >> That seems a little strange to me but I guess I'll have to keep it >> in mind. >> >> - Jay >> >> >> From: hosking at cs.purdue.edu >> To: mika at async.async.caltech.edu >> Date: Thu, 8 Oct 2009 11:00:36 -0400 >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] condition variables/win32 >> >> Sorry, yes, you are right of course! The Modula-3 spec (and the >> current pthreads-based implementation as also the win32 >> implementation I expect) do allow a condition variable being >> mediated by different mutexes. My comment was clouded by my >> recollection from the pthreads spec that for pthread mutex/cv >> behavior for other than 1 mutex per cv is undefined. This >> confusion may have been the source of prior bugs in the pthreads >> threading implementation, but those bugs are gone now. We support >> the M3 spec properly. >> >> On 8 Oct 2009, at 10:34, Mika Nystrom wrote: >> >> Why can't you use the same condition variable with different mutexes? >> >> This is dynamic, up to the M3 programmer, no? >> >> Tony Hosking writes: >> >> --Apple-Mail-96--321618545 >> Content-Type: text/plain; >> charset=US-ASCII; >> format=flowed; >> delsp=yes >> Content-Transfer-Encoding: 7bit >> >> In general, it is OK in M3 to associate multiple conditions with the >> same mutex. But not vice versa. >> >> On 8 Oct 2009, at 09:32, Jay K wrote: >> >> condition variables/win32 >> >> >> So..one way I think about condition variables >> is that you want to be woken when someone else >> leaves the mutex that guards the data that you are dealing with. >> You want to know when another thread modifies the data. >> (If you have a reader/writer lock, you only want to be >> woken when someone exits a write.) >> >> >> Now, if you consider a producer/consumer queue. >> There are two interesting occurences. >> Transitions from empty to non-empty >> and transitions from full to non-full (optionally, >> if it is fixed size). >> >> >> Consumers wait for empty to non-empty. >> Consumers signal full to non-full. >> Producers wait for full to non-full. >> Producers signal non-empty to empty. >> >> >> So, in this case, one mutex is likely used with with two condition >> variables. >> >> >> But, what if we take a simplifying deoptimization and assume that a >> condition >> variable is only ever associated with one mutex? >> Anyone existing that mutex wakes up anyone waiting on any condition >> associated with it? >> Like, a condition variable I think becomes stateless and everything >> is >> about the mutex? >> >> >> What is the downside? >> >> >> Condition variables are allowed to have spurious wakeups. >> This would "just" increase them. Too much? >> >> >> So, therefore, what would be wrong with the following design? >> a mutex contains an event >> and a number of waiters, zero or non-zero >> if a mutex is exiting with a non-zero number of waiters, signal the >> event >> >> >> To handle Signal vs. Broadcast >> method 1: >> the number of waiters might be interlocked >> the woken would decrement it >> if it isn't zero, signal the event again >> >> >> method 2: >> the number of waiters is both an integer and a semaphore >> and the lock exiter raises the semaphore by the the integer >> >> >> method 3: >> it is not an auto-reset event and there is a count >> and when the count goes to 0, reset the event >> I think in this case you have to maintain a "wait generation" >> so that new waiters don't prevent the count from ever hitting 0. >> I think this #3 is what Java might be doing, and is described here: >> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >> "3.3. The Generation Count Solution" >> >> >> also: >> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >> 3.2. The SetEvent Solution >> Evaluating the SetEvent Solution >> Incorrectness -- >> >> >> Is that incorrect case really necessarily incorrect? >> It seems unfair, since first waiter should be first woken, but..? >> >> >> Am I missing something? A lot? >> >> >> - Jay >> >> >> --Apple-Mail-96--321618545 >> Content-Type: text/html; >> charset=US-ASCII >> Content-Transfer-Encoding: quoted-printable >> >> > space; = >> -webkit-line-break: after-white-space; ">
> apple-content-edited=3D"true">> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >> family: = >> Helvetica; font-size: 12px; font-style: normal; font-variant: >> normal; = >> font-weight: normal; letter-spacing: normal; line-height: normal; = >> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >> none; = >> white-space: normal; widows: 2; word-spacing: 0px; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >> adjust: = >> auto; -webkit-text-stroke-width: 0; ">
> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >> after-white-space; ">> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">
> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >> -webkit-line-break: after-white-space; ">> span" = >> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >> Sans'">In = >> general, it is OK in M3 to associate multiple conditions with the >> same = >> mutex.  But not vice versa.
> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >> Sans'">> class=3D"Apple-style-span" style=3D"font-size: = >> medium;">
> span>>
On 8 Oct >> 2009, = >> at 09:32, Jay K wrote:

> class=3D"Apple-interchange-newline">
> class=3D"Apple-style-span" style=3D"border-collapse: separate; >> color: = >> rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font- >> style: = >> normal; font-variant: normal; font-weight: normal; letter-spacing: = >> normal; line-height: normal; orphans: 2; text-align: auto; text- >> indent: = >> 0px; text-transform: none; white-space: normal; widows: 2; word- >> spacing: = >> 0px; -webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: 0px; = >> -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = >> auto; -webkit-text-stroke-width: 0px; ">
> style=3D"font-size: 10pt; font-family: Verdana; ">condition = >> variables/win32
 

So..one way I think about >> condition = >> variables
is that you want to be woken when someone >> else
leaves = >> the mutex that guards the data that you are dealing with.
You >> want to = >> know when another thread modifies the data.
(If you have a = >> reader/writer lock, you only want to be
woken when someone exits >> a = >> write.)
 

Now, if you consider a producer/consumer = >> queue.
There are two interesting occurences.
Transitions from = >> empty to non-empty
and transitions from full to non-full = >> (optionally,
if it is fixed size).
 

Consumers >> wait = >> for empty to non-empty.
Consumers signal full to = >> non-full.
Producers wait for full to non-full.
Producers >> signal = >> non-empty to empty.
 

So, in this case, one mutex is = >> likely used with with two condition = >> variables.
 

But, what if we take a simplifying = >> deoptimization and assume that a condition
variable is only ever = >> associated with one mutex?
Anyone existing that mutex wakes up >> anyone = >> waiting on any condition associated with it?
Like, a condition = >> variable I think becomes stateless and everything is
about the = >> mutex?
 
 
What is the = >> downside?
 

Condition variables are allowed to have = >> spurious wakeups.
This would "just" increase them. Too = >> much?
 

So, therefore, what would be wrong with the = >> following design?
 a mutex contains an event> class=3D"Apple-converted-space"> 
 and a number >> of = >> waiters, zero or non-zero> class=3D"Apple-converted-space"> 
 if a mutex >> is = >> exiting with a non-zero number of waiters, signal the = >> event
 

To handle Signal vs. Broadcast
method = >> 1:
 the number of waiters might be interlocked
 the = >> woken would decrement it
 if it isn't zero, signal the >> event = >> again
 

method 2:
 the number of waiters is >> both = >> an integer and a semaphore
 and the lock exiter raises the = >> semaphore by the the integer

 
method 3:
 it >> is = >> not an auto-reset event and there is a count
  and when the = >> count goes to 0, reset the event
 I think in this case you >> have = >> to maintain a "wait generation"> class=3D"Apple-converted-space"> 
 so that new = >> waiters don't prevent the count from ever hitting 0.
 I >> think = >> this #3 is what Java might be doing, and is described here:
> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu >> = >> stl.edu/~schmidt/win32-cv-1.html
 "3.3. The Generation >> Count = >> Solution"

 
also:
> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu >> = >> stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = >> Solution
Evaluating the SetEvent Solution
Incorrectness -- >> > class=3D"Apple-converted-space"> 
 

Is >> that = >> incorrect case really necessarily incorrect?
It seems unfair, >> since = >> first waiter should be first woken, but..?

 
Am I >> missing = >> something? A lot?
 

 - = >> Jay

= >> >> --Apple-Mail-96--321618545-- >> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Wed Oct 21 03:04:27 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Tue, 20 Oct 2009 18:04:27 -0700 Subject: [M3devel] condition variables/win32 In-Reply-To: References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> <4ADDAADA.1E75.00D7.1@scires.com> <76AC92FF-9896-4248-AD3A-25192E85C47D@cs.purdue.edu> Message-ID: <2EFD7A27-D04B-4926-8354-31C8ACACC16A@hotmail.com> Also removing our giant lock would be good either way, if possible. - Jay (phone) On Oct 20, 2009, at 5:58 PM, jayk123 at hotmail.com wrote: > Something doesn't add up. I'll have to reread. The paper I think > assumes one mutex per condition, also clearly is talking about "our > library". I'll need to compare the paper and the library. Could be > the paper is wrong. A lot of literature here depends on atomic > SignalAndWait but the docs just changed and no longer claim atomicity. > > - Jay (phone) > > On Oct 20, 2009, at 2:05 PM, Tony Hosking > wrote: > >> Should we not also consider fixing any problems in the existing >> Win32 threading? That paper does give a very straightforward >> recipe for building Moulda-3 style mutex/condition semantics using >> semaphores, which Windows does provide. >> >> On 20 Oct 2009, at 16:26, jay.krell at cornell.edu wrote: >> >>> I will read the paper, thanks. >>> >>> The java code demonstrates I believe some important applicable >>> methods. I hope to have a "new" ThreadWin32.m3 "soon". In >>> particular, no per-thread event, no wait lists, and counter to >>> help matching up condition waits and signals. And no giant lock. >>> And stil an efficient mutex with no kernel involvement unless >>> there is contention, could/might use win32 criticalsection with >>> little extra to avoid recursion, or could use something smaller. >>> And no use of SignalObjectAndWait whose documentation recently >>> changed to remove the atomicity claim! >>> >>> - Jay (phone) >>> >>> On Oct 20, 2009, at 9:23 AM, "Randy Coleburn" >>> wrote: >>> >>>> Jay: >>>> >>>> I think we would need to delve deep into the implementation to be >>>> able to answer all your questions precisely. >>>> >>>> I've attached a short paper by Andrew Birrell "Implementing >>>> Condition Variables with Semaphores" that you may find >>>> interesting / enlightening. >>>> >>>> My concern about using multiple mutex with same condition lies in >>>> the queuing operations. My recollection is that I've always >>>> associated only one mutex with a condition variable, but that you >>>> can have multiple conditions associated with the same mutex. >>>> >>>> I will go back and re-read Nelson again--its been a few years. >>>> >>>> Regards, >>>> Randy Coleburn >>>> >>>> >>> Jay K 10/18/2009 4:16 AM >>> >>>> I still have questions here. >>>> >>>> 1) >>>> Page 93 of the Nelson book: >>>> A monitor consists of some data, a mutex, and zero or more >>>> condition >>>> variables. A particular condition variable is always used >>>> in conjunction with the same mutex and its data. >>>> >>>> Doesn't this contradict the point made here? >>>> Does a condition variable always map to the same mutex >>>> or not? >>>> >>>> Or is this merely describing a typical usage pattern that is >>>> a subset of what interface Thread allows? >>>> >>>> >>>> 2) >>>> Can Wait only be satisfied by Signal/Broadcast, >>>> or also just via UnlockMutex? >>>> >>>> >>>> Depending on the answer to these questions, >>>> it seems you can largely merge mutex and condition variable. >>>> >>>> >>>> Condition variable is basically waiting for a >>>> thread to exit a mutex. >>>> Which is very very similar to LockMutex, except >>>> that it doesn't want to take the mutex in the uncontended >>>> case, it actually wants to wait for another thread >>>> to both acquire and release the mutex. >>>> >>>> >>>> I suspect I'm wrong on both of these. >>>> That condition variable really can use multiple mutexes. >>>> That exiting a mutex has no obligation to wake condition variables, >>>> though it might be in good faith to do so...er..if it is >>>> in good faith to not require programmer to use Signal/Broadcast. >>>> >>>> >>>> Thanks, >>>> - Jay >>>> >>>> >>>> >>>> From: jay.krell at cornell.edu >>>> To: hosking at cs.purdue.edu; mika at async.async.caltech.edu >>>> Date: Thu, 8 Oct 2009 19:13:03 +0000 >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] condition variables/win32 >>>> >>>> That seems a little strange to me but I guess I'll have to keep >>>> it in mind. >>>> >>>> - Jay >>>> >>>> >>>> From: hosking at cs.purdue.edu >>>> To: mika at async.async.caltech.edu >>>> Date: Thu, 8 Oct 2009 11:00:36 -0400 >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] condition variables/win32 >>>> >>>> Sorry, yes, you are right of course! The Modula-3 spec (and the >>>> current pthreads-based implementation as also the win32 >>>> implementation I expect) do allow a condition variable being >>>> mediated by different mutexes. My comment was clouded by my >>>> recollection from the pthreads spec that for pthread mutex/cv >>>> behavior for other than 1 mutex per cv is undefined. This >>>> confusion may have been the source of prior bugs in the pthreads >>>> threading implementation, but those bugs are gone now. We >>>> support the M3 spec properly. >>>> >>>> On 8 Oct 2009, at 10:34, Mika Nystrom wrote: >>>> >>>> Why can't you use the same condition variable with different >>>> mutexes? >>>> >>>> This is dynamic, up to the M3 programmer, no? >>>> >>>> Tony Hosking writes: >>>> >>>> --Apple-Mail-96--321618545 >>>> Content-Type: text/plain; >>>> charset=US-ASCII; >>>> format=flowed; >>>> delsp=yes >>>> Content-Transfer-Encoding: 7bit >>>> >>>> In general, it is OK in M3 to associate multiple conditions with >>>> the >>>> same mutex. But not vice versa. >>>> >>>> On 8 Oct 2009, at 09:32, Jay K wrote: >>>> >>>> condition variables/win32 >>>> >>>> >>>> So..one way I think about condition variables >>>> is that you want to be woken when someone else >>>> leaves the mutex that guards the data that you are dealing with. >>>> You want to know when another thread modifies the data. >>>> (If you have a reader/writer lock, you only want to be >>>> woken when someone exits a write.) >>>> >>>> >>>> Now, if you consider a producer/consumer queue. >>>> There are two interesting occurences. >>>> Transitions from empty to non-empty >>>> and transitions from full to non-full (optionally, >>>> if it is fixed size). >>>> >>>> >>>> Consumers wait for empty to non-empty. >>>> Consumers signal full to non-full. >>>> Producers wait for full to non-full. >>>> Producers signal non-empty to empty. >>>> >>>> >>>> So, in this case, one mutex is likely used with with two condition >>>> variables. >>>> >>>> >>>> But, what if we take a simplifying deoptimization and assume that a >>>> condition >>>> variable is only ever associated with one mutex? >>>> Anyone existing that mutex wakes up anyone waiting on any condition >>>> associated with it? >>>> Like, a condition variable I think becomes stateless and >>>> everything is >>>> about the mutex? >>>> >>>> >>>> What is the downside? >>>> >>>> >>>> Condition variables are allowed to have spurious wakeups. >>>> This would "just" increase them. Too much? >>>> >>>> >>>> So, therefore, what would be wrong with the following design? >>>> a mutex contains an event >>>> and a number of waiters, zero or non-zero >>>> if a mutex is exiting with a non-zero number of waiters, signal the >>>> event >>>> >>>> >>>> To handle Signal vs. Broadcast >>>> method 1: >>>> the number of waiters might be interlocked >>>> the woken would decrement it >>>> if it isn't zero, signal the event again >>>> >>>> >>>> method 2: >>>> the number of waiters is both an integer and a semaphore >>>> and the lock exiter raises the semaphore by the the integer >>>> >>>> >>>> method 3: >>>> it is not an auto-reset event and there is a count >>>> and when the count goes to 0, reset the event >>>> I think in this case you have to maintain a "wait generation" >>>> so that new waiters don't prevent the count from ever hitting 0. >>>> I think this #3 is what Java might be doing, and is described here: >>>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>>> "3.3. The Generation Count Solution" >>>> >>>> >>>> also: >>>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>>> 3.2. The SetEvent Solution >>>> Evaluating the SetEvent Solution >>>> Incorrectness -- >>>> >>>> >>>> Is that incorrect case really necessarily incorrect? >>>> It seems unfair, since first waiter should be first woken, but..? >>>> >>>> >>>> Am I missing something? A lot? >>>> >>>> >>>> - Jay >>>> >>>> >>>> --Apple-Mail-96--321618545 >>>> Content-Type: text/html; >>>> charset=US-ASCII >>>> Content-Transfer-Encoding: quoted-printable >>>> >>>> >>> space; = >>>> -webkit-line-break: after-white-space; ">
>>> apple-content-edited=3D"true">>>> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >>>> family: = >>>> Helvetica; font-size: 12px; font-style: normal; font-variant: >>>> normal; = >>>> font-weight: normal; letter-spacing: normal; line-height: normal; = >>>> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >>>> none; = >>>> white-space: normal; widows: 2; word-spacing: 0px; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >>>> adjust: = >>>> auto; -webkit-text-stroke-width: 0; ">
>>> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >>>> after-white-space; ">>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>> spacing: = >>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>> font-variant: normal; font-weight: normal; letter-spacing: >>>> normal; = >>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>>> none; = >>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>> ">
>>> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >>>> -webkit-line-break: after-white-space; ">>>> style-span" = >>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>> spacing: = >>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>> font-variant: normal; font-weight: normal; letter-spacing: >>>> normal; = >>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>>> none; = >>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>> ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">
>>> class=3D"Apple-style-span" style=3D"font-size: medium;">>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>>> Sans'">In = >>>> general, it is OK in M3 to associate multiple conditions with the >>>> same = >>>> mutex.  But not vice versa.
>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>>> Sans'">>>> class=3D"Apple-style-span" style=3D"font-size: = >>>> medium;">
>>> span>>>>
On 8 Oct >>>> 2009, = >>>> at 09:32, Jay K wrote:

>>> class=3D"Apple-interchange-newline">
>>> type=3D"cite">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; >>>> color: = >>>> rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font- >>>> style: = >>>> normal; font-variant: normal; font-weight: normal; letter- >>>> spacing: = >>>> normal; line-height: normal; orphans: 2; text-align: auto; text- >>>> indent: = >>>> 0px; text-transform: none; white-space: normal; widows: 2; word- >>>> spacing: = >>>> 0px; -webkit-border-horizontal-spacing: 0px; = >>>> -webkit-border-vertical-spacing: 0px; = >>>> -webkit-text-decorations-in-effect: none; -webkit-text-size- >>>> adjust: = >>>> auto; -webkit-text-stroke-width: 0px; ">
>>> style=3D"font-size: 10pt; font-family: Verdana; ">condition = >>>> variables/win32
 

So..one way I think about >>>> condition = >>>> variables
is that you want to be woken when someone >>>> else
leaves = >>>> the mutex that guards the data that you are dealing with.
You >>>> want to = >>>> know when another thread modifies the data.
(If you have a = >>>> reader/writer lock, you only want to be
woken when someone >>>> exits a = >>>> write.)
 

Now, if you consider a producer/consumer = >>>> queue.
There are two interesting occurences.
Transitions >>>> from = >>>> empty to non-empty
and transitions from full to non-full = >>>> (optionally,
if it is fixed size).
 

Consumers >>>> wait = >>>> for empty to non-empty.
Consumers signal full to = >>>> non-full.
Producers wait for full to non-full.
Producers >>>> signal = >>>> non-empty to empty.
 

So, in this case, one mutex >>>> is = >>>> likely used with with two condition = >>>> variables.
 

But, what if we take a simplifying = >>>> deoptimization and assume that a condition
variable is only >>>> ever = >>>> associated with one mutex?
Anyone existing that mutex wakes up >>>> anyone = >>>> waiting on any condition associated with it?
Like, a condition = >>>> variable I think becomes stateless and everything is
about the = >>>> mutex?
 
 
What is the = >>>> downside?
 

Condition variables are allowed to >>>> have = >>>> spurious wakeups.
This would "just" increase them. Too = >>>> much?
 

So, therefore, what would be wrong with >>>> the = >>>> following design?
 a mutex contains an event>>> class=3D"Apple-converted-space"> 
 and a >>>> number of = >>>> waiters, zero or non-zero>>> class=3D"Apple-converted-space"> 
 if a mutex >>>> is = >>>> exiting with a non-zero number of waiters, signal the = >>>> event
 

To handle Signal vs. Broadcast
method = >>>> 1:
 the number of waiters might be >>>> interlocked
 the = >>>> woken would decrement it
 if it isn't zero, signal the >>>> event = >>>> again
 

method 2:
 the number of waiters >>>> is both = >>>> an integer and a semaphore
 and the lock exiter raises >>>> the = >>>> semaphore by the the integer

 
method >>>> 3:
 it is = >>>> not an auto-reset event and there is a count
  and when >>>> the = >>>> count goes to 0, reset the event
 I think in this case >>>> you have = >>>> to maintain a "wait generation">>> class=3D"Apple-converted-space"> 
 so that >>>> new = >>>> waiters don't prevent the count from ever hitting 0.
 I >>>> think = >>>> this #3 is what Java might be doing, and is described here:
>>> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= >>>> stl.edu/~schmidt/win32-cv-1.html
 "3.3. The >>>> Generation Count = >>>> Solution"

 
also:
>>> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= >>>> stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = >>>> Solution
Evaluating the SetEvent Solution
Incorrectness -- >>>> >>> class=3D"Apple-converted-space"> 
 

Is >>>> that = >>>> incorrect case really necessarily incorrect?
It seems unfair, >>>> since = >>>> first waiter should be first woken, but..?

 
Am I >>>> missing = >>>> something? A lot?
 

 - = >>>> Jay

= >>>> >>>> --Apple-Mail-96--321618545-- >>>> >>>> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Wed Oct 21 02:58:28 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Tue, 20 Oct 2009 17:58:28 -0700 Subject: [M3devel] condition variables/win32 In-Reply-To: <76AC92FF-9896-4248-AD3A-25192E85C47D@cs.purdue.edu> References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> <4ADDAADA.1E75.00D7.1@scires.com> <76AC92FF-9896-4248-AD3A-25192E85C47D@cs.purdue.edu> Message-ID: Something doesn't add up. I'll have to reread. The paper I think assumes one mutex per condition, also clearly is talking about "our library". I'll need to compare the paper and the library. Could be the paper is wrong. A lot of literature here depends on atomic SignalAndWait but the docs just changed and no longer claim atomicity. - Jay (phone) On Oct 20, 2009, at 2:05 PM, Tony Hosking wrote: > Should we not also consider fixing any problems in the existing > Win32 threading? That paper does give a very straightforward recipe > for building Moulda-3 style mutex/condition semantics using > semaphores, which Windows does provide. > > On 20 Oct 2009, at 16:26, jay.krell at cornell.edu wrote: > >> I will read the paper, thanks. >> >> The java code demonstrates I believe some important applicable >> methods. I hope to have a "new" ThreadWin32.m3 "soon". In >> particular, no per-thread event, no wait lists, and counter to help >> matching up condition waits and signals. And no giant lock. And >> stil an efficient mutex with no kernel involvement unless there is >> contention, could/might use win32 criticalsection with little extra >> to avoid recursion, or could use something smaller. And no use of >> SignalObjectAndWait whose documentation recently changed to remove >> the atomicity claim! >> >> - Jay (phone) >> >> On Oct 20, 2009, at 9:23 AM, "Randy Coleburn" >> wrote: >> >>> Jay: >>> >>> I think we would need to delve deep into the implementation to be >>> able to answer all your questions precisely. >>> >>> I've attached a short paper by Andrew Birrell "Implementing >>> Condition Variables with Semaphores" that you may find >>> interesting / enlightening. >>> >>> My concern about using multiple mutex with same condition lies in >>> the queuing operations. My recollection is that I've always >>> associated only one mutex with a condition variable, but that you >>> can have multiple conditions associated with the same mutex. >>> >>> I will go back and re-read Nelson again--its been a few years. >>> >>> Regards, >>> Randy Coleburn >>> >>> >>> Jay K 10/18/2009 4:16 AM >>> >>> I still have questions here. >>> >>> 1) >>> Page 93 of the Nelson book: >>> A monitor consists of some data, a mutex, and zero or more condition >>> variables. A particular condition variable is always used >>> in conjunction with the same mutex and its data. >>> >>> Doesn't this contradict the point made here? >>> Does a condition variable always map to the same mutex >>> or not? >>> >>> Or is this merely describing a typical usage pattern that is >>> a subset of what interface Thread allows? >>> >>> >>> 2) >>> Can Wait only be satisfied by Signal/Broadcast, >>> or also just via UnlockMutex? >>> >>> >>> Depending on the answer to these questions, >>> it seems you can largely merge mutex and condition variable. >>> >>> >>> Condition variable is basically waiting for a >>> thread to exit a mutex. >>> Which is very very similar to LockMutex, except >>> that it doesn't want to take the mutex in the uncontended >>> case, it actually wants to wait for another thread >>> to both acquire and release the mutex. >>> >>> >>> I suspect I'm wrong on both of these. >>> That condition variable really can use multiple mutexes. >>> That exiting a mutex has no obligation to wake condition variables, >>> though it might be in good faith to do so...er..if it is >>> in good faith to not require programmer to use Signal/Broadcast. >>> >>> >>> Thanks, >>> - Jay >>> >>> >>> >>> From: jay.krell at cornell.edu >>> To: hosking at cs.purdue.edu; mika at async.async.caltech.edu >>> Date: Thu, 8 Oct 2009 19:13:03 +0000 >>> CC: m3devel at elegosoft.com >>> Subject: Re: [M3devel] condition variables/win32 >>> >>> That seems a little strange to me but I guess I'll have to keep it >>> in mind. >>> >>> - Jay >>> >>> >>> From: hosking at cs.purdue.edu >>> To: mika at async.async.caltech.edu >>> Date: Thu, 8 Oct 2009 11:00:36 -0400 >>> CC: m3devel at elegosoft.com >>> Subject: Re: [M3devel] condition variables/win32 >>> >>> Sorry, yes, you are right of course! The Modula-3 spec (and the >>> current pthreads-based implementation as also the win32 >>> implementation I expect) do allow a condition variable being >>> mediated by different mutexes. My comment was clouded by my >>> recollection from the pthreads spec that for pthread mutex/cv >>> behavior for other than 1 mutex per cv is undefined. This >>> confusion may have been the source of prior bugs in the pthreads >>> threading implementation, but those bugs are gone now. We support >>> the M3 spec properly. >>> >>> On 8 Oct 2009, at 10:34, Mika Nystrom wrote: >>> >>> Why can't you use the same condition variable with different >>> mutexes? >>> >>> This is dynamic, up to the M3 programmer, no? >>> >>> Tony Hosking writes: >>> >>> --Apple-Mail-96--321618545 >>> Content-Type: text/plain; >>> charset=US-ASCII; >>> format=flowed; >>> delsp=yes >>> Content-Transfer-Encoding: 7bit >>> >>> In general, it is OK in M3 to associate multiple conditions with the >>> same mutex. But not vice versa. >>> >>> On 8 Oct 2009, at 09:32, Jay K wrote: >>> >>> condition variables/win32 >>> >>> >>> So..one way I think about condition variables >>> is that you want to be woken when someone else >>> leaves the mutex that guards the data that you are dealing with. >>> You want to know when another thread modifies the data. >>> (If you have a reader/writer lock, you only want to be >>> woken when someone exits a write.) >>> >>> >>> Now, if you consider a producer/consumer queue. >>> There are two interesting occurences. >>> Transitions from empty to non-empty >>> and transitions from full to non-full (optionally, >>> if it is fixed size). >>> >>> >>> Consumers wait for empty to non-empty. >>> Consumers signal full to non-full. >>> Producers wait for full to non-full. >>> Producers signal non-empty to empty. >>> >>> >>> So, in this case, one mutex is likely used with with two condition >>> variables. >>> >>> >>> But, what if we take a simplifying deoptimization and assume that a >>> condition >>> variable is only ever associated with one mutex? >>> Anyone existing that mutex wakes up anyone waiting on any condition >>> associated with it? >>> Like, a condition variable I think becomes stateless and >>> everything is >>> about the mutex? >>> >>> >>> What is the downside? >>> >>> >>> Condition variables are allowed to have spurious wakeups. >>> This would "just" increase them. Too much? >>> >>> >>> So, therefore, what would be wrong with the following design? >>> a mutex contains an event >>> and a number of waiters, zero or non-zero >>> if a mutex is exiting with a non-zero number of waiters, signal the >>> event >>> >>> >>> To handle Signal vs. Broadcast >>> method 1: >>> the number of waiters might be interlocked >>> the woken would decrement it >>> if it isn't zero, signal the event again >>> >>> >>> method 2: >>> the number of waiters is both an integer and a semaphore >>> and the lock exiter raises the semaphore by the the integer >>> >>> >>> method 3: >>> it is not an auto-reset event and there is a count >>> and when the count goes to 0, reset the event >>> I think in this case you have to maintain a "wait generation" >>> so that new waiters don't prevent the count from ever hitting 0. >>> I think this #3 is what Java might be doing, and is described here: >>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>> "3.3. The Generation Count Solution" >>> >>> >>> also: >>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>> 3.2. The SetEvent Solution >>> Evaluating the SetEvent Solution >>> Incorrectness -- >>> >>> >>> Is that incorrect case really necessarily incorrect? >>> It seems unfair, since first waiter should be first woken, but..? >>> >>> >>> Am I missing something? A lot? >>> >>> >>> - Jay >>> >>> >>> --Apple-Mail-96--321618545 >>> Content-Type: text/html; >>> charset=US-ASCII >>> Content-Transfer-Encoding: quoted-printable >>> >>> >> space; = >>> -webkit-line-break: after-white-space; ">
>> apple-content-edited=3D"true">>> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >>> family: = >>> Helvetica; font-size: 12px; font-style: normal; font-variant: >>> normal; = >>> font-weight: normal; letter-spacing: normal; line-height: normal; = >>> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >>> none; = >>> white-space: normal; widows: 2; word-spacing: 0px; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >>> adjust: = >>> auto; -webkit-text-stroke-width: 0; ">
>> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >>> after-white-space; ">>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>> spacing: = >>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>> font-variant: normal; font-weight: normal; letter-spacing: normal; = >>> line